diff --git a/README.md b/README.md
index 0b01ab0d8..f102225a4 100644
--- a/README.md
+++ b/README.md
@@ -611,6 +611,7 @@ _(these methods are on the main `nlp` object)_
- **[.verbs().toFutureTense()](https://observablehq.com/@spencermountain/verbs)** - `'walked' → 'will walk'`
- **[.verbs().toInfinitive()](https://observablehq.com/@spencermountain/verbs)** - `'walks' → 'walk'`
- **[.verbs().toGerund()](https://observablehq.com/@spencermountain/verbs)** - `'walks' → 'walking'`
+ - **[.verbs().toPastParticiple()](https://observablehq.com/@spencermountain/verbs)** - `'drive' → 'had driven'`
- **[.verbs().conjugate()](https://observablehq.com/@spencermountain/verbs)** - return all conjugations of these verbs
- **[.verbs().isNegative()](https://observablehq.com/@spencermountain/verbs)** - return verbs with 'not', 'never' or 'no'
- **[.verbs().isPositive()](https://observablehq.com/@spencermountain/verbs)** - only verbs without 'not', 'never' or 'no'
@@ -1052,6 +1053,7 @@ nlpEx('This is type safe!').ngrams({ min: 1 })
- **[spaCy](https://spacy.io/)** - speedy, multilingual tagger in C/python
- **[Prose](https://github.com/jdkato/prose/)** - quick tagger in Go by Joseph Kato
+- **[TextBlob](https://github.com/sloria/TextBlob)** - python tagger
diff --git a/builds/compromise.js b/builds/compromise.js
index bd7e66404..536a02b74 100644
--- a/builds/compromise.js
+++ b/builds/compromise.js
@@ -1 +1 @@
-var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t,r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)},isFull:function(){let e=this.pointer;if(!e)return!0;let t=this.document;for(let n=0;no)return!1}return!0},getNth:function(e){return"number"==typeof e?this.eq(e):"string"==typeof e?this.if(e):this}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var p=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e)return new t(r.one.tokenize.fromString(e,n));if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let m=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=p(e,l,m);return e&&n.compute(m.hooks),n};Object.defineProperty(f,"_world",{value:m,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=p(e,l,m);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.8.2";var v=f,b=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},I=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},N=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},j=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?I(n):(I(n),I([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!P(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||P(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,(e=>e.toLowerCase())))}(e,o,n),A(e,o,n)};let x=0;const E=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var T=function(e){let[t,n]=e.index||[0,0];x+=1,x=x>46655?0:x,t=t>46655?0:t,n=n>1294?0:n;let r=E(x.toString(36));r+=E(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const C=function(e){e.has("@hasContraction")&&"function"==typeof e.contractions&&e.grow("@hasContraction").contractions().expand()},D=e=>"[object Array]"===Object.prototype.toString.call(e),O=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:D(e)?D(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=T(e),e)))}(d),n?(C(t.update([u]).firstTerm()),j(h,u,d,r)):(C(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(G,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let a=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(a.docs[0]||[]).map((e=>Array.from(e.tags)));"string"==typeof e&&(e=this.fromText(e).compute("id")),r.insertAfter(e),a.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?(this.soften(),r.replaceWith(t,n)):this}};var z=B,$=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const L={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e));let a=!n.ptrs;r.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction").contractions().expand();let o=n.fullPointer,i=r.fullPointer.reverse(),s=$(this.document,i);return o=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(o,t(i)),n.ptrs=o,n.document=s,n.compute("index"),a&&(n.ptrs=void 0),e?n.toView(o):(this.ptrs=[],n.none())}};L.delete=L.remove;var S=L;const M={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};M.deHyphenate=M.dehyphenate,M.toQuotation=M.toQuotations;var H=M,J={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),K=new Set(["freq","frequency","topk","repeats"]),q=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return W.has(e)&&(e="sequential"),q.has(e)&&(e="alpha"),K.has(e)?(a=J.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof J[e]?(a=a.sort(J[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){if(e.length>0){let t=e[e.length-1],n=t[t.length-1];!1===/ /.test(n.post)&&(n.post+=" ")}return e=e.concat(t)};var Q={concat:function(e){if("string"==typeof e){let t=this.fromText(e);if(this.found&&this.ptrs){let e=this.fullPointer,n=e[e.length-1][0];this.document.splice(n,0,...t.document)}else this.document=this.document.concat(t.document);return this.all().compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.docs),e.all()}(this,e);if(t=e,"[object Array]"===Object.prototype.toString.call(t)){let t=R(this.document,e);return this.document=t,this.all()}var t;return this}},_={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const Y=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},F,z,S,H,U,Q,_);var Z=function(e){Object.assign(e.prototype,Y)};const X={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const re=/'/,ae=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(re)[0];if(ae.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null},le=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ge=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,pe=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,me=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],r=n.text.match(ge);return null!==r?!0===n.tags.has("PhoneNumber")||me.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(pe),null!==r?[r[1],"to",r[4]]:null)};const ve=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,be=new Set(["st","nd","rd","th","am","pm","max","°","s","e"]);var ye=function(e,t){let n=e[t].text.match(ve);if(null!==n){let e=n[2].toLowerCase().trim();return be.has(e)?null:[n[1],e]}return null};const we=/'/,ke=/^[0-9][^-–—]*[-–—].*?[0-9]/,Pe=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},Ie={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},Ne=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=Ne(o,r[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](r,s,t)),!c&&Ie.hasOwnProperty(l)&&(c=Ie[l](r,s)),c?(c=je(c,e),ne(n,[i,s],c),Pe(n[i],e,s,c.length)):ke.test(r[s].normal)?(c=fe(r,s),c&&(c=je(c,e),ne(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),Pe(n[i],e,s,c.length))):(c=ye(r,s),c&&(c=je(c,e),ne(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))},Ee={model:te,compute:{contractions:xe},hooks:["contractions"]},Te=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===Ce.test(l)){let e=l.replace(Ce,"");if(i.hasOwnProperty(e)&&e.length>3&&De.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Ve={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}},Ge={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},Be={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Fe}},compute:Ve,lib:Ge,hooks:["lexicon"]},ze=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;let a=n.one.tokenize.splitTerms(e,r).map((e=>n.one.tokenize.splitWhitespace(e,r)));return a.map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const $e=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Me=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var He=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Me(e.goNext,void 0),e.failTo=Me(e.failTo,0),e.endAs=Me(e.endAs,null),e};const Je={buildTrie:function(e){const t=ze(e,this.world());return He(t)}};Je.compile=Je.buildTrie;var We={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:ze(e,this.world));var r;let a=Se(this,n,t);return a=a.settle(),a}},lib:Je};const Ke=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},qe=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Ke(n,t),Object.keys(r).forEach((e=>{r[e]=Ke(r[e],t)})),{ptrs:n,byGroup:r}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,Qe=e=>e&&Ue(e)&&!0===e.isNet,_e=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Ye={matchOne:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(Qe(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=_e(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=qe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e);if(Qe(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=_e(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=qe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Re(e))return e.fullPointer.length>0;if(Qe(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=_e(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=_e(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=_e(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}},Ze={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Xe=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},tt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Xe(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Xe(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var rt=nt;const at=Object.assign({},Ye,Ze,rt);at.lookBehind=at.before,at.lookBefore=at.before,at.lookAhead=at.after,at.lookAfter=at.after,at.notIf=at.ifNo;var ot=function(e){Object.assign(e.prototype,at)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?r.push(e):r=r.concat(e.split(lt))})),r=ct(r),r};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,gt=/&&/,pt=new RegExp(/^<\s*(\S+)\s*>/),mt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),vt=e=>e.charAt(0),bt=e=>e.substring(1),yt=e=>e.substring(0,e.length-1),wt=function(e){return e=bt(e),e=yt(e)},kt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ft(e)&&(n.end=!0,e=yt(e)),"^"===vt(e)&&(n.start=!0,e=bt(e)),("["===vt(e)||"]"===ft(e))&&(n.group=null,"["===vt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===vt(e))){const t=pt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=yt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=yt(e)),"?"===ft(e)&&(n.optional=!0,e=yt(e)),"!"===vt(e)&&(n.negative=!0,e=bt(e)),"~"===vt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===vt(e)&&")"===ft(e)){gt.test(e)?(n.choices=e.split(gt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=bt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=yt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>kt(e,t))))),e=""}if("/"===vt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===vt(e)&&"}"===ft(e)){if(e=wt(e),n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.sense=e[2])}return n}if("<"===vt(e)&&">"===ft(e))return e=wt(e),n.chunk=mt(e),n.greedy=!0,n;if("%"===vt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===vt(e)?(n.tag=bt(e),n.tag=mt(n.tag),n):"@"===vt(e)?(n.method=bt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var Pt=kt;const At=/[a-z0-9][-–—][a-z]/i;var It=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&At.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e};const Nt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},jt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},xt=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var Et=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(Nt(e,t)):"Noun"===e.pos?n=n.concat(jt(e,t)):"Adjective"===e.pos&&(n=n.concat(xt(e,t))):(n=n.concat(Nt(e,t)),n=n.concat(jt(e,t)),n=n.concat(xt(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))},Tt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e},Ct=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=ht(e);return r=r.map((e=>Pt(e,t))),r=It(r,n),r=Et(r,n),r=Tt(r),r};const Dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ot=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),Lt=(e,t)=>-1!==e.pre.indexOf(t),St={hasQuote:e=>Ft.test(e.pre)||Gt.test(e.post),hasComma:e=>$t(e,","),hasPeriod:e=>!0===$t(e,".")&&!1===$t(e,"..."),hasExclamation:e=>$t(e,"!"),hasQuestionMark:e=>$t(e,"?")||$t(e,"¿"),hasEllipses:e=>$t(e,"..")||$t(e,"…")||Lt(e,"..")||Lt(e,"…"),hasSemicolon:e=>$t(e,";"),hasColon:e=>$t(e,":"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Bt.test(e.post)||Bt.test(e.pre),hasDash:e=>zt.test(e.post)||zt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};St.hasQuotation=St.hasQuote;var Mt=St;let Ht=function(){};Ht=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.id&&t.id===e.id)return!0;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Vt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Mt[t.method]&&!0===Mt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}if(void 0!==t.chunk)return e.chunk===t.chunk;if(void 0!==t.switch)return e.switch===t.switch;if(void 0!==t.machine)return e.normal===t.machine||e.machine===t.machine||e.root===t.machine;if(void 0!==t.sense)return e.sense===t.sense;if(void 0!==t.fastOr){if(t.pos&&!e.tags.has(t.pos))return null;let n=e.root||e.implicit||e.machine||e.normal;return t.fastOr.has(n)||t.fastOr.has(e.text)}return void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Ht(e,t,n,r))):t.choices.some((t=>Ht(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Jt=Ht;const Wt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(Kt(e,e.t).length=r-e.t),e.t=r,!0)};const Ut=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Jt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Jt(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(Kt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},_t=function(e,t,n){let r=0;for(let a=e.t;ar||(e.t+=r,0))},Yt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Jt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];n&&(Jt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)?e.r+=1:n.optional&&t[e.r+2]&&Jt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?_t(e,r,t[e.r+1]):(e.t+=1,!0)},Zt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Jt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Jt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Xt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null},en=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},tn=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Zt(e),r.implicit&&e.terms[e.t+1]&&en(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Xt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Kt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},nn=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything){if(!0!==Wt(e,a)){if(e.negative){if(!Yt(a))return null}else if(!0!==Jt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else if(!tn(a))return null}else if(!tn(a))return null}else{if(e.negative&&e.anything)return null;if(!tn(a))return null}else if(!Qt(a))return null}else if(!Rt(a))return null}else if(!qt(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}},rn=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}},an=function(e,t,n){return e=e.filter((e=>{let[r,a,o]=e.pointer,i=n[r].slice(a,o);for(let e=0;e{e.groups[n][0]=t})),e},sn=function(e,t,n){let r=nn(e,t,0,e.length);return r?(r=on(r,n),r):null};var ln=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=sn(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),t.notIf&&(i=an(i,t.notIf,e)),i=rn(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i},un={api:ot,methods:{one:{termMethods:Mt,parseMatch:Ct,match:ln}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const cn=/^\../,hn=/^#./,dn=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),cn.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var gn={html:function(e){let{starts:t,ends:n}=dn(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(mn,""),vn.test(a)&&(a=" "),a=a.replace(fn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(mn,""),a="-"===a?" ":a.replace(pn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&bn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},wn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};wn.clean=wn.normal,wn.reduced=wn.root;var kn=wn;let Pn=[],An=0;for(;An<64;)Pn[An]=0|4294967296*Math.sin(++An%Math.PI);function In(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(An=i=0;An>4]+Pn[i]+~~o[An|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const Nn={text:!0,terms:!0};let jn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const xn=function(e,t){return Object.assign({},e,t)},En={text:e=>yn(e,{keepPunct:!0},!1),normal:e=>yn(e,xn(kn.normal,{keepPunct:!0}),!1),implicit:e=>yn(e,xn(kn.implicit,{keepPunct:!0}),!1),machine:e=>yn(e,jn,!1),root:e=>yn(e,xn(jn,{form:"root"}),!1),hash:e=>In(yn(e,{keepPunct:!0},!1)),offset:e=>{let t=En.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};En.sentences=En.sentence,En.clean=En.normal,En.reduced=En.root;const Tn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Nn,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&En[o]&&(a[o]=En[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};Tn.data=Tn.json;var Cn=Tn,Dn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};const On="[0m";var Vn={green:e=>"[32m"+e+On,red:e=>"[31m"+e+On,blue:e=>"[34m"+e+On,magenta:e=>"[35m"+e+On,cyan:e=>"[36m"+e+On,yellow:e=>"[33m"+e+On,black:e=>"[30m"+e+On,dim:e=>"[2m"+e+On,i:e=>"[3m"+e+On},Fn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Vn.blue("\n ──────")),t.forEach((t=>{console.log(Vn.blue("\n ┌─────────")),t.forEach((t=>{let r=[...t.tags||[]],a=t.text||"-";t.sense&&(a=`{${t.normal}/${t.sense}}`),t.implicit&&(a="["+t.implicit+"]"),a=Vn.yellow(a);let o="'"+a+"'";if(t.reference){let n=e.update([t.reference]).text("normal");o+=` - ${Vn.dim(Vn.i("["+n+"]"))}`}o=o.padEnd(18);let i=Vn.blue(" │ ")+Vn.i(o)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Vn[n](e)}))),e.join(", ")}(r,n);console.log(i)}))}))},Gn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Vn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Vn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Vn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Vn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))},Bn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${Vn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))},zn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(Dn(t),t):(!1!==e.tags&&(Fn(t),console.log("\n")),!0===e.chunks&&(Gn(t),console.log("\n")),!0===e.highlight&&(Bn(t),console.log("\n")),t)};const $n=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Ln=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()},wrap:function(e){return Ln(this,e)}};var Mn=Sn,Hn={text:function(e){let t={};var n;if(e&&"string"==typeof e&&kn.hasOwnProperty(e)?t=Object.assign({},kn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e)),void 0===t.keepSpace&&this.pointer&&(t.keepSpace=!1),void 0===t.keepPunct&&this.pointer){let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}return void 0===t.keepPunct&&(t.keepPunct=!0),void 0===t.keepSpace&&(t.keepSpace=!0),function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Un=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Rn=function(e,t){let n=Un(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r},Qn=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n},_n={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>qn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n},Xn=function(e,t){let n=Un(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>qn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},tr=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},nr={union:function(e){e=er(e,this);let t=Yn(this.fullPointer,e.fullPointer);return t=tr(t,this.document),this.toView(t)}};nr.and=nr.union,nr.intersection=function(e){e=er(e,this);let t=Xn(this.fullPointer,e.fullPointer);return t=tr(t,this.document),this.toView(t)},nr.not=function(e){e=er(e,this);let t=Zn(this.fullPointer,e.fullPointer);return t=tr(t,this.document),this.toView(t)},nr.difference=nr.not,nr.complement=function(){let e=this.all(),t=Zn(e.fullPointer,this.fullPointer);return t=tr(t,this.document),this.toView(t)},nr.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=Yn(e,[t])})),e=tr(e,this.document),this.update(e)};var rr=function(e){Object.assign(e.prototype,nr)},ar={methods:_n,api:rr},or=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const ir=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var sr=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.notIf&&(e.notIf=n(e.notIf,{},t)),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(ir(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(ir(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=ir(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e},lr=function(e,t){e=sr(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}},ur=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))},cr=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>r.has(e))).length>=e.minWant))}))},hr=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o},dr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=ur(a,t.hooks);return o=cr(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),hr(o,e,a,n,r)},gr=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===gr(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag&&l)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))})))},mr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:or,methods:{one:{buildNet:lr,bulkMatch:dr,bulkTagger:pr}}};const fr=/ /,vr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},br=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,"[33m[3m"+a+"[0m").padEnd(24)} [32m→[0m #${t.padEnd(22)} ${(e=>"[3m"+e+"[0m")(n)}`)})(e,t,a),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),fr.test(t))!function(e,t,n,r){let a=t.split(fr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),br(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nyr(e,t,n,r)))};var wr=yr,kr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>Pr({id:e}))),t}return[Pr({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},jr=e=>"[object Array]"===Object.prototype.toString.call(e),xr=e=>(e=e||"").trim(),Er=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||Ar.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Ir(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=Pr({});return e.forEach((e=>{if((e=Pr(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(Nr(t=e).forEach(Pr),t);var t},Tr=function(e,t){let n="-> ";t&&(n=(e=>"[2m"+e+"[0m")("→ "));let r="";return Nr(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>"[31m"+e+"[0m")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},Cr=function(e){let t=Nr(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Dr={text:Tr,txt:Tr,array:Cr,flat:Cr},Or=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Tr(e,!0)),null):Dr.hasOwnProperty(t)?Dr[t](e):e},Vr=e=>{Nr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Fr=/\//;let Gr=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=xr(e),!Fr.test(e)){let t=this.json.children.find((t=>t.id===e));return new Gr(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||Pr({});return new Gr(t)}add(e,t={}){if(jr(e))return e.forEach((e=>this.add(xr(e),t))),this;e=xr(e);let n=Pr({id:e,props:t});return this.json.children.push(n),new Gr(n)}remove(e){return e=xr(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Nr(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Nr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return Nr(this.json)}fillDown(){var e;return e=this.json,Nr(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else jr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Vr(this.json);let e=Nr(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Vr(this.json),Or(this.json,e)}debug(){return Vr(this.json),Or(this.json,"debug"),this}};const Br=function(e){let t=Er(e);return new Gr(t)};Br.prototype.plugin=function(e){e(this)};var zr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Hyphenated:"cyan",Adverb:"cyan"};const $r=function(e){if(zr.hasOwnProperty(e.id))return zr[e.id];if(zr.hasOwnProperty(e.is))return zr[e.is];let t=e._cache.parents.find((e=>zr[e]));return zr[t]};var Lr=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:$r(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const Sr=function(e){return e?"string"==typeof e?[e]:e:[]};var Mr=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=Sr(e[t].children),e[t].not=Sr(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e},Hr=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Mr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Br(t).cache().fillDown().out("array")}(Object.assign({},t,e));return Lr(n)},Jr={one:{setTag:wr,unTag:kr,addTags:Hr}};const Wr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Kr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Wr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Wr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){e=e.replace(/^#/,"");let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var qr=Kr,Ur=function(e){Object.assign(e.prototype,qr)},Rr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const Qr=new Set(["Auxiliary","Possessive"]);var _r=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Qr.has(e)||!t.hasOwnProperty(n))return 1;if(Qr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},Yr={model:{one:{tagSet:{}}},compute:{tagRank:_r},methods:Jr,api:Ur,lib:Rr};const Zr=/([.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s)/g,Xr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s$/,ea=/((?:\r?\n|\r)+)/;var ta=function(e){let t=[],n=e.split(ea);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const ia={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},sa=RegExp("("+Object.keys(ia).join("|")+")","g"),la=RegExp("("+Object.values(ia).join("|")+")","g"),ua=function(e){if(!e)return!1;let t=e.match(la);return null!==t&&1===t.length};var ca=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var ja=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Ia);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=ka(n),n=ya(n),n=n.filter((e=>e)),n};const xa=/\p{Letter}/u,Ea=/[\p{Number}\p{Currency_Symbol}]/u,Ta=/^[a-z]\.([a-z]\.)+/i,Ca=/[sn]['’]$/;var Da=function(e,t){let{prePunctuation:n,postPunctuation:r,emoticons:a}=t.one,o=e,i="",s="",l=Array.from(e);if(a.hasOwnProperty(e.trim()))return{str:e.trim(),pre:i,post:" "};let u=l.length;for(let e=0;e(s=e||"",""))),e=o,i=""),{str:e,pre:i,post:s}},Oa=(e,t)=>{let{str:n,pre:r,post:a}=Da(e,t);return{text:n,pre:r,post:a,tags:new Set}},Va=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")},Fa=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Ga=/([A-Z]\.)+[A-Z]?,?$/,Ba=/^[A-Z]\.,?$/,za=/[A-Z]{2,}('s|,)?$/,$a=/([a-z]\.)+[a-z]\.?$/;var La=function(e){return function(e){return!0===Ga.test(e)||!0===$a.test(e)||!0===Ba.test(e)||!0===za.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Sa=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Fa(r),r=n(r,t),r=La(r),e.normal=r},Ma=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map((e=>i(e,r))),n.forEach((e=>{Sa(e,t)})),n})),e};const Ha=/[ .][A-Z]\.? *$/i,Ja=/(?:\u2026|\.{2,}) *$/,Wa=/\p{L}/u,Ka=/^[A-Z]\. $/;var qa=function(e,t){if(!1===Wa.test(e))return!1;if(!0===Ha.test(e))return!1;if(3===e.length&&Ka.test(e))return!1;if(!0===Ja.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},Ua={one:{killUnicode:Va,tokenize:{splitSentences:fa,isSentence:qa,splitTerms:ja,splitWhitespace:Oa,fromString:Ma}}},Ra={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qa={},_a={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Qa[t]=!0,_a[t]="Abbreviation",void 0!==e[1]&&(_a[t]=[_a[t],e[1]])}))}));var Ya=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out","ex"].reduce(((e,t)=>(e[t]=!0,e)),{});let Za={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Xa={};Object.keys(Za).forEach((function(e){Za[e].split("").forEach((function(t){Xa[t]=e}))}));const eo=/\//,to=/[a-z]\.[a-z]/i,no=/[0-9]/;var ro=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),eo.test(n)&&!to.test(n)&&!no.test(n)){let t=n.split(eo);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const ao=/^\p{Letter}+-\p{Letter}+$/u;var oo=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),ao.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},io=function(e){let t=e.docs,n={};for(let e=0;eco(e,ro),machine:e=>co(e,oo),normal:e=>co(e,Sa),freq:io,offset:so,index:lo,wordCount:uo},methods:Ua,model:{one:{aliases:Ra,abbreviations:Qa,prefixes:Ya,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},prePunctuation:{"#":!0,"@":!0,_:!0,"°":!0,"":!0,"":!0,"":!0,"\ufeff":!0},postPunctuation:{"%":!0,_:!0,"°":!0,"":!0,"":!0,"":!0,"\ufeff":!0},lexicon:_a,unicode:Xa,emoticons:{"<3":!0,"3":!0,"<\\3":!0,":^P":!0,":^p":!0,":^O":!0,":^3":!0}}},hooks:["alias","machine","index","id"]},go={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const po=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var mo=function(e){e.prototype.autoFill=po},fo=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const vo={safe:!0,min:3};var bo={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},vo,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=fo(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}},yo={model:{one:{typeahead:{}}},api:mo,lib:bo,compute:go,hooks:["typeahead"]};v.extend(ee),v.extend(Kn),v.extend(un),v.extend(ar),v.extend(Yr),v.plugin(Ee),v.extend(ho),v.plugin(k),v.extend(We),v.extend(yo),v.extend(Be),v.extend(mr);var wo={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},ko={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Tb0Pc0Nd0Je0Hg0BhWjeez,lTmSnQoKpHshGtFuCvoi0Vw6y0;a4e3i1u0;ck,p;k00p0;ee,pee;ah,p,s;!a,y;ahoo,h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;gh,h0;! 0h,m;huh,oh;here nOsk,ut tut;eesh,hh,it,oo;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;! 0h;h1my go0w1;d,sh;ell;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBeAi8o2u0;h,mph,rra0zzB;h,y;ly1o0;r5y8;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww,xcuse me;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;mon,o0;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh,ye;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦dick0gre0ones,records;ens","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦its,my,none,our0;!s","Noun|Verb":"true¦0:94;1:8F;2:7M;3:8Z;4:99;5:8S;6:7Y;7:6Y;8:8T;9:8C;A:9E;a8Ub80c6Ud65e5Vf58g4Zh4Qi4Ij4Fk4Cl40m3On3Ko3Hp2Hques8Wr1Ss0FtZuXvSwEyDzB;ip,oB;ne,om;awn,e5Uie5N;aLeJhGiEoCrB;ap,e8U;nd0rB;k,ry,sh4Yth;ck,nBpe,re,sh;!d,g;e7IiB;p,sB;k,t1;aBed;r,th0;it,lk,rCsBt3ve,x;h,te;!ehou2raA;aEiDoB;iBm9te,w;ce,d;be,ew,s9;cuum,l3X;pBr6;da5gra5Tlo5P;aOeNhrMiLoJrEuCwiBy5E;n,st;nBrn;e,n70;aDeCiBot,u8;bu5ck44gg0m,p;at,k,nd;ck,de,in,nsBp,v6W;f0i7Z;ll,ne,p,r4Gss,t8CuB;ch,r;ck,de,e,le,me,p,re;e5Cow,u8;ar,e,ll,mp0st,xt;g,lBng1rg70s5x;k,ly;a0Lc0Ge0Dh08i06k04l02m01n00ou7CpUqua6UtIuDwB;ea7HiB;ng,pe,t3;bEit,m,ppCrB;ge,pri2v2J;lBo65;e62y;!je7;aKeJiIoFrCuBy1;dy,ff,mb1;a7DeCiBo55ugg1;ke,ng;am,ss,t3;ckCop,p,rB;e,m;ing,pi1;ck,nk,t3;m,p;ck,ge,in,ke,ll,mp,nd,p1rBte,y;!e,t;aFeed,iElDot,rBur;ay,e4NinBu4;g,k1;a6Dit;ll,n,r7Hte;n,rk;ap,ee1Oow;a69e41i1o4O;eep,iBou3;ce,p,t;ateboa6WiB;!p;de,gnBp,ze;!al;aEeDiCoBuff1;ck,p,re,t,w;ft,p,v0;d,i3K;ck,de,pe,re,ve;aCed,nBrv1Et;se,t2F;l,r3t;aEhedu1o5OrB;aCeBo3L;en,w;pe,t3;le,n,r0O;cBil;k,rifi4;aXeFiEoCuB;b,in,le,n,s5E;a8ck,ll,oBpe,u5;f,t;de,ng,p,s1O;aRcQdo,el,fOgNje7lMmKnJo12pHque8sDturn,vBwa68;eBi1Z;al,r2;er6HoDpe7tCuB;lt,me;!a4N;l6Ert;air,eaBly,o4L;l,t;dezvo2Mt;aBedy;ke,rk;ea2i56;a5Vist0r53;act6Ber1No6EuB;nd,se;a2Uo5S;ch,s5T;c15ge,i2ke,lly,nBpYtY;ge,k;a03eZhXiVlRoLrCsy3uB;mp,n3rcha2sh;aIeGiFoBu48;be,ceDdu4fi1grBje7mi2p,te8;amBe69;!me;ed,ss;ce,de,nt;sBy;er5Rs;cti4i2;iFlDoCp,re,sBw0;e,i5Dt;l,p;iBl;ce,sh;nt,s5A;aCce,e2PuB;g,mp,n6;ce,nBy;!t;ck,le,nBpe,t,vot;!e;a2oB;ne,tograph;ak,eDnCrBt;fu4Lm9;!c2O;!l,r;ckGiFnErtDsCtBu2;ch,eA;s,te;!y;!ic;nt,r;!a6;bje7ff0il,oCrButli3A;b9d0ieA;ze;a48eDoB;d,tB;e,i4;ed,gle7t;aIeGiFoCuB;rd0;ck,d3Cld,nBp,uth,ve;it4VkB;ey;lk,n3Vrr4Tss,x;asu3Fn4CrBss;ge,it;il,nDp,rk3HsCtB;ch,t0;h,k;da5n0oeuv3A;aJeHiFoCuB;mp,st;aCbby,ck,g,oBve;k,t;d,n;cBft,m9nFst;en2k;aBc0He3vH;ch,d,k,p,se;bCcBnd,p,t3un3;e,k;el,o2I;eCiBno3X;ck,ll,ss;el,y;aCo1FuB;i4mp;m,zz;mpHnCr3PssB;ue;cr1Hdex,fluEha1k,se25teBvoi4;nt,rB;e8fa4viB;ew;en4;a7le1Y;aGeEiDoCuB;g,nt;l2Wno21ok,p,r2u2;ghlight,ke,re,t;aBd6lp;d,t;ck,m,ndCrBsh,te;b3Im,ne3Xve8;!le;aIloHossGrDuB;arBe3Un;antee,d;aCiBou2Pumb1;nd,p;de,sp;ip;ss,w;in,me,ng,s,te,ze;aWeTiOlLoHrDuB;ck,el,nBss,zz;c2Wd;aCoBy;st,wn;cBgme,me;tu1V;cDg,il,ld,rB;ce,e20mB;!at;us;aCe1Wip,oBy;at,ck,od,w;g,ke,me,re,sh,vo18;eEgDlCnBre,sh,t,x;an4i1S;e,m,t0;ht,u1K;ld;aCeBn4;d,l;r,tu1G;ce,il,ll,rm,v2L;cho,d6ffe7nJsHxDyeB;!baB;ll;cDerci2hib9pBtra7;eriBo0Q;en4meA;el,han6u2;caBtima5;pe;count0d,vy;aXeQiKoHrCuBye;b,el,mp,plica5;aEeDiCoB;ne,p;ft,nk,p,ve;am,ss;ft,g,in;cCd6ubt,wnloB;ad;k,u09;p,sDt3vB;e,iBor4;de;char6h,liCpB;at3lFu5;ke;al,ba5cFfeElDma16pos9siCtaB;il;gn,re;ay;at,ct;li01rB;ea2;b,ma6n4rBte;e,t;a0Bent0Ah03irc1l00oHrDuB;be,e,rBt;e,l,ve;aDeCoBu0Iy;p,ss,wd;d9ep;ck,ft,sh;at,de,in,lRmKnDpy,re,st,uBv0;gh,nBp1;sZt;ceFdu7fli7glomeGsDtBveL;a7rB;a8ol;eAtru7;ct;ntBrn;ra5;bFfoEmDpB;leBou0Fromi2;meA;a0DeAit,u5;rt;at,iB;ne;lap2oB;r,ur;aCiB;ck,p;im,w;aCeBip;at,ck,er;iEllen6nCrB;ge,m,t;ge,nB;el;n,r;er,re;ke,ll,mp,noe,pDrTsCt3u2ve;se;h,t;!tuB;re;aYeUiTlQoMrEuBypa0U;bb1ck1dgCff0mp,rBst,zz;den,n;et;anHeFiDoadCuB;sh;ca8;be,d6;ge;aBed;ch,k;ch,d;aDg,mb,nCoBtt1x,ycott;k,st,t;d,e;rd,st;aCeBitz,oTur;nd;me;as,d,ke,nd,opsy,te;aDef,lt,nBt;d,ef9;it;r,t;ck,il,l04nFrgDsCtt1;le;e,h;aBe;in;!d,g,k;c01dXge,iWlTnRppOrKsGttEucCwaB;rd;tiB;on;aBempt;ck;k,sB;i8ocia5;te;st;chCmB;our;!iB;ve;eCroa3;ch;al;chBg0sw0;or;aCt0;er;rm;d,m,r;dreDvB;an4;ce;ss;cBe,he,t;eDoB;rd,uA;nt;nt,ss",Actor:"true¦0:44;1:3A;2:4C;3:45;4:4B;a3Rb38c2Fd23e20f1Sg1Ih1Di19journa3Ml16m0Un0Po0Np04qu02rXsGtCunBvAw6yo5;gi,utub0;e7i6o5r1O;m1rk0;nn0t10;atherm1ld0;eterina19ip;c3Wder1I;aoisea0We6herapi3iktok0r5;anscriRo20;chn5st0;i1RoU;aiKcJeIhowHiFki0oDpCt9u6wee5;p0theart;lt1per6r5;f0ge2Y;intenWv3V;aff0ep6r5;ang0eam0;fa12mo12;ecia32okesp2S;l5me3Kn;di0oi3;ng0s5;sy,t0;girl,m1runn0;cretary,rgea3V;hol2OiQreen0Yulpt2;l2nt;a8e5oof0unningA;c5port0searJver2Q;e5ru0V;ptio1W;bbi,pp0;arter5een;back;aMerform0hLlIoEr6sycho5;logi3;actit1Oe9i7o5;duc0fess2gramm0s5;pe12titu2T;est2Lme miniVnce5;!ss;a6si5;de3D;ch0;dcaQet,li5rnst25;c10tic5;al sci5i1;enti3;a5umb0;nn0y5;er,wright;armaci3otograph0ysi0L;i1Nnel24st2tL;ffic0p5rganiz0;er4tometri3;anny,e7o6u5;n,rse;bo2Jvi6;i5phew;ce;aCeBi8o6u5;m6si0B;m5nk,th0;!my;ni6s5;sus,t0;st0;chan0Lrcha2O;gi7k0nag0t5y2;riar5;ch;ci1stra1W;a6e0Wieutena2Jo5;rd,s0;bor0dy,urea1Twy0;dol,llu29n5;s5vestig4;peZt5;a0EruY;air8ero7isto6o5ygie0J;ste29usekE;ri1;!ine;dress0sty19;arden0eDhostBirl15o8rand5uru;fa6m5pa;a,o5;th0;al5d,lf0;ie,k5te16;eep0;wr5;it0;isha,ntlO;aBella,i7ore6r5;eela1Ii0V;m1st0;g7lmm0Fnanci0r5tt0;e5st la1E; marsh1Kfig5m1;ht0;rm0th0;dit2lectri6mcee,x5;amin0cellency;ci1;aEe9i6riv0u5;de,tche1J;eti6re5;ct2;ci1ti1;a8cor4fenc7put6sign0tecDvel5;op0;ee,y;em1;c05l0;d5nc0rling;!dy;aSeRfo,hLlIo8rit7u5;r4stomer representa5;tive;ic;lCm9n6ordin4rpor0Yu5wboy;nciKri0;gressKs6tro5;ll0;tab0Kul11;edi1m5pos0;a04iss5;ion0;onel,um5;ni3;e5own;an0r5;ic,k;a7e5;erle5f;ad0;ir6nce5plC;ll2;m1wE;lebrity,o;det,pt8r5shi0;et6pe5;nt0;ak0;ain;aJeatbox0iHlogg0oyFrCu5;ddhi3ild0rglAsiness5;m1p6w5;om1;ers5;on;an;ar;i6o5;!k0th0;cklay0de,gadi0;!fri5;end;cyc5sL;li3;nk0r5;b0on6te5;nd0;!eX;cUdNgeYnHpostGrDsBt7u5yatullah;nt5th2;!ie;h6t5;endaUorney;ie3le5;te;sisQtron5;aut,om0;chbis6tis5;an,t;hop;le;aly3im4nou7y5;bo5;dy;nc0;er;st;mi6v5;is2;ni6r5;al;str4;at2;or;coun7t5;or,re5;ss;ta5;nt",Uncountable:"true¦0:28;1:2R;2:2F;3:35;4:2W;a2Qb2Hc26d1Xe1Nf1Hg19h12i0Xjewel15k0Vl0Qm0Gn0Eo0Dp04rZsMtBv9w5you guys;a7hisky,i6oo5;d,l;ldlife,ne;rmAt2;ernacul25i5;neg24ol1Ktae;eEhCime off,oBr6un5yranny;a,gst15;aff2Jea1Go6ue nor5;th;o07u5;ble5se1Ot;!shoot1;night,othpas1P;er5und2;e,mod2O;a,nnis;aFcEeDhBilk,kiAo9p8t6u5weepstak0;g1Rnshi2Dshi;ati08e5;am,el;ace2Geci0;ap,cc2meth1;n,ttl0;eep,ingl0o5;pp1r18;lf,na1Cri0;ene0Disso18;d0Sfe4l5nd,t0F;m1St;a8e6ic5;e,ke12;c5ins,laxa0Zsearch;ogni0Yrea0Y;bi0in;aBeAhys9last1So7re5;amble,mis0s5ten1W;en1Vsu0H;l5rk;i24yH; 14i3;a20tr0A;nt5ti0J;i0s;bstetri3vercrowd1xyg04;a5ews;il polXtional securi4;aCeAo7u5;m5s1F;ps;n5o1I;ey,o5;gamy;a5cha0Drchandi1Ftallurgy;sl0t;chine5thema1O; learn1ry;aught2e8i7ogi6u5;ck,g11;c,s1K;ce,ghtn1nguis1JteraTv2;ath2isuTss;ara0CindergartMn5;icke08owled0X;ce,gnor8mp7n5;forma02ter5;net,sta08;atiUort5rov;an19;a8eListo7o5ung2;ckey,mework,ne5rserad9spitali4use arrest;s4y;ry;ir,lib03ppiJs5;h5te;ish;ene9l7o6r5um,ymnas13;aGe03;lf,re;ut5yce0J;en; 5ti3;edit1po5;ol;aQicJlour,o7urni5;tu5;re;od,rgive5uri2wl;ne5;ss;cono0MducaDlectrBn9quipAthi3very8x5;ist6per5;ti0C;en0K;body,o09th1;joy5tertain5;ment;ici4o5;ni3;tiU;eBi8o6raugh5ynas4;ts;pe,wnstai5;rs;abet0s5;hon01repu5;te;b5miX;ut;aEelciDhBivi3l9o5urrency;al,ld w7n5ral,ttJuscoC;fusiIt 5;ed;ar;assi3oth0;es;aos,e5;eNw1;us;d,rP;aAi8lood,read7u5;nt1tt2;er;!th;lliarKs5;on;g5ss;ga5;ge;cLdviKeroHirGmCn7ppeal court,rithmet6spi5thleM;rin;ic;i8y5;o6th1;ing;ne;se;en7n5;es4;ty;ds;craft;bi3d5nau9;yna5;mi3;ce;id,ous5;ti3;cs","Person|Noun":"true¦a07b01cYdRePfOgMhJjFkiElDmBolive,p7r4s3trini00v1wa0;ng,rd;an,enus,iol0;a,et;ky,on5umm02;ay,e1o0uby;bin,d,se;ed,x;a2e0ol;aHn0;ny;ge,tM;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4O;1:4M;2:3Y;3:47;4:42;5:4Q;6:4C;a46b3Qc2Wd2Ie2Cf25g1Zh1Oin1Lj1Kk1Jl1Dm17n15o10p0Iqu0Hr07sUtIuFvAw7x 4B;a7ha2Y;f2i3Vt08y7;! arou2M;arAe8o7;cabu3Ol4F;gKr7;di43t1F;iety,n3S;p2Dr8s 7;do3As4H;bani1in0; rex,aHeGhingFiDoCr9u8v7;! show;m23n4rntIto0Y;agedy,ib7o3K;e,u7;n0ta3D;p4rq2V;c,er,m7;etC;!y;am,mp2Q;ct4le5x return;aIcHeGhor3Wi1kEoDpin off,tBu9y7;ll7n1Rst3Z;ab29;b7nri13per bowl,rro1I;st2Vtot0;at2Mipe1Wo14rate3Oudent7;! lo09;ft ser3Smeo12;elet6i7;ll,rm33;ab0Scurity gu22min2N;e5ho2C;la2Undwi0Fpi6;av6eBhetor4i8o7;de5om,w;t8v7;erb0M;e,u0;bAc9f7publ4r0Mspi1;er7orm2;e5r0;it0ord label;a1u3G;estion mark,ot1V;aMeJhotocoSiGlEoCr8u7yram11;ddi2SpCrpo0Hs2U;e9o7;bl39s7;pe2Uta1;diction,mi0Droga35ss relea0D;p7rt0;py;a7ebisci1;q1Ste;cn4e8g7;!gy;!r;anut,d8r7t0;cen2Usp2V;al,est0;nop3r28t7;e,hog6;bj2Rc8pia1rde0thers,ve7wn2;n,rview;cu8e7;an;pi2;arra2Nit1Oot7umb2;a1Uhi25;aAe9i8o7ur0é07;nopo3pOrni23sq1Bti2L;li0On03tt6;d4nu,t0;mm0nd0Tte7yf3;ri0;aAegBi9u7;ddi1n7;ch;ght bulb,p03ving room;bor0Ty7; up;eyno1itt6;el3ourn0;c8dices,itia27ni1Qse1Vtel0Dvert7;eb17;en25i2E;aGeaDighBo7uman right;me8sp15tb7;ed;! r7;un; scho0Ori7;se;d7v6; start,pho7;ne;ndful,sh brown,v6ze;aAelat09laci2r8u7;l3y;an7enadi2id;a0Yd slam;df3r7;l4n12;aCet11iref3lBol3r8un7;er0;ee market,i8on7;ti2;ga1;ow2u1;br4mi3n0Q;conoBffi1Bgg,lecto0Hmbas11nApidem4s1Lth4ven9x8yel7;id;ampRempl0Dte5;i0Wt;er17;my;eHiCo9r7ump truck;agonf3i7;er,ve thru;c8g12i3or,ssi2wn7;side;to06umenA;aAgni9nn2s8vide7;nd;conte5incen12tri0Q;ta09;le0O;ath,c8f7ni0terre5;ault Zerr0;al,im0;aSeQhJiIlHoBr7;edit c9uc7;ib7;le;ard;efficBke,lAmmuniqIns8pi2rr0t0Pus7yo1;in;erv7uF;atoW;ic,lM;ie5;er0Gie5;ty,vil wJ;aBeqAick6oco9r7;istmas car7ysanthemum;ol;la1;ue;ndeli2racter7;ist4;iliVllBr7;e0tifica1;hi2naDpCrAt7ucus;erpi7hedr0;ll7;ar;!bohyd7ri2;ra1;it0;l,ry;aIeHlemGoEreakCu7;nAr7tterf3;g7i0;la7;ry;ny;fa7thro9;st;dy,ro7wl;ugh;ish;an,l3;nki9r7;!ri2;er;ng;cPdJlFnCppeti1rBs9tt4utop7;sy;ic;ce5pe7;ct;ray;ec8oma3ti8;ly;do1;i6l7;er7y;gy;en; hominBj8van7;tage;ec7;ti7;ve;em;cAe8qui7;tt0;ta1;te;i8ru0;al;de5;nt",Preposition:"true¦-,aPbMcLdKexcept,fIinGmid,notwithstandiWoDpXqua,sCt7u4v2w0;/o,hereSith0;! whHin,oW;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h1ill,oward0;!s;an,r0;ough0u;!oM;ans,ince,o that,uch G;f1n0ut;!to;!f;! 0to;effect,part;or,r0;om;espite,own,u3;hez,irca;ar1e0oBy;sides,tween;ri7;bo8cross,ft7lo6m4propos,round,s1t0;!op;! 0;a whole,long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:13;1:1A;a13b0Xc0Mde0Le0Gf0Ag09h08i06ju05l03mXnVoTpOrKsDt9u6v3w2;atershed,elcome;a2ision0P;gabo5nilla,ria2;b0Mnt;ndergr2pstairs;adua0Tou2;nd;a4e2oken,ri0;en,r2;min0rori0S;boo,n;e6ilv08o4quat,ta3u2well;bordina0Mper6;b0Cndard;ciali0Nl2vereign;e,ve1;cret,n2ri0;ior;a4e2outiSubbiL;ar,bCla0Mnt0p2side1;resenta0Lublican;ci0Gsh;a5eriodic0otenti0r2;emi3incip0o2;!fession0;er,um;rall5st,tie1;ff2pposi07v0;ensi0Ei03;aggTov2;el;aUe5in4o2;biTderYr2;al,t0;iature,or;di2tr0C;an,um;attIiber0u2;sh;stice,veniM;de0mpressioQn2;cumbe1dividu0no04sta1;alf,omelBumdrum;enious,old,raZ;a5e3i2luid;ne;llow,m2;aEiJ;ir,t,vo2;riLuriL;l4pXx2;c2ecuQpeS;ess;d2iH;er;mographSrivaM;hiFlassRo3rude,unn2;ing;m5n2operaJ;creBstitue1tempor3vertab2;le;ary;m3p2;anion,lex;er3u2;ni8;ci0;e6lank,o5r2;i3u2;te;ef;ttom,urgeois;st;cademAd7l3nim0rab;al;e4terna2;ti2;ve;rt;oles2ult;ce1;nt;ic","Noun|Gerund":"true¦0:26;1:25;2:1W;3:1I;4:1Y;5:1O;a25b1Oc1Cd17en15f0Zg0Xh0Ui0Sjog20k0Ql0Mm0Jn0Ho0Dp06ques09rXsHtCuAvolunt16w6yEzo2;a8ed5i3or7r6;ap1Oest1Ci1;ki0r1O;i1r2s1Utc1U;nder6pri23;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",PhrasalVerb:"true¦0:93;1:97;2:8I;3:8W;4:8B;5:84;6:86;7:99;8:91;9:8H;A:8Y;B:8S;C:8V;D:8T;E:71;F:98;G:8Z;H:82;I:7I;J:7A;K:4H;a9Hb7Wc6Td6Ne6Lf5Jg52h4Diron0j49k42l3Gm33n30o2Yp2Equiet Hr1Zs0Lt00uYvacuu6SwOyammerBzL;ero Dip MonL;e0k0;by,ov9up;aReNhMiLor0Nrit1B;mp0n3Hpe0r5s5;ackAeel Di0U;aMiLn35;gh 3Yrd0;n Dr L;do1in,oJ;it 7Bk5lk Mrm 6Bsh Lt85v61;aw3do1o7up;aw3in,oC;rgeBsL;e 2herE;a01eZhWiSoRrNuLypQ;ckErn L;do1in,oJup;aMiLot0y 32;ckl81p F;ck HdL;e 60;n7Yp 3Gs5L;ck NdMe Lghten 6me0p o0Tre0;aw3ba4do1in,up;e Iy 2;by,oG;ink Mrow L;aw3ba4in,up;ba4ov9up;aLe 79ll64;m 2r 5O;ckBke Mlk L;ov9shit,u49;aLba4do1in,leave,o67up;ba4ft9pa6Bw3;a0Xc0Ve0Oh0Ki0Hl0Bm0An09o08p03quar5ItRuPwL;earNiL;ngMtch L;aw3ba4o8M; by;cLi6Dm 2ss0;k 66;aTeSiRoPrMuL;cKd36;aigh2Eet76iL;ke 7Tng L;al6Zup;p Lrm2G;by,in,oG;nKr 2tc4O;p F;cKmp0nd MrLveAy 2P;e Ht 2M;ba4do1up;arKeOiNlMrLurB;ead0ingBuc5;a49it 6I;c5ll o3Dn 2;ak Fe73ll0;aKber 2rt0und like;ap 5Wow Duggl5;ash 6Ooke0;eep OiLow 6;cMp L;o6Eup;e 69;in,oL;ff,v9;de1Agn 4OnLt 6Hz5;gLkE; al6Ble0;aNoLu5X;ot Lut0w 7N;aw3ba4f48oC;cKdeEk6FveA;e Qll1Ond Prv5tL; Ltl5K;do1foMin,o7upL;!on;ot,r60;aw3ba4do1in,o4Wup;oCto;al67out0rL;ap66ew 6K;ilAv5;aYeViToPuL;b 5Zle0n Lstl5;aMba4do1inLo2Jth4Ou5Q;!to;c2Xr8w3;ll Not MuL;g3IndA;a2Wf3Po7;ar8in,o7up;ng 69p oLs5;ff,p19;aLelAinEnt0;c6Id L;o3Oup;cKt0;a00eZiXlUoRrPsyc35uL;ll Nn5Lt L;aLba4do1in,oJto48up;pa4Ew3;a3Kdo1in,o22to46up;attleBess LiOop 2;ah2Fon;iMp Lr50u1Hwer 6O;do1in,o6Oup;nt0;aMuL;gEmp 6;ce u21y 6E;ck Lg0le 4Bn 6p5C;oJup;el 5OncilE;c54ir 3An0ss NtMy L;ba4oG; Hc2R;aw3ba4in,oJ;pLw4Z;e4Yt D;aMerd0oL;dAt54;il Hrrow H;aUeRiQoMuL;ddl5ll I;cKnkeyNp 6uthAve L;aLdo1in,o4Mup;l4Ow3; wi4L;ss0x 2;asur5e3TlMss L;a21up;t 6;ke Mn 6rLs2Ax0;k 6ryA;do,fun,oCsure,up;a03eWiRoMuL;ck0st I;aOc4Gg NoLse0;k Lse4E;aft9ba4do1forw38in57o10u47;in,oJ;d 6;e OghtNnMsLve 01;ten F;e 2k 2; 2e47;ar8do1in;aNt MvelL; oC;do1go,in,o7up;nEve L;in,oL;pLut;en;c5p 2sh MtchBughAy L;do1o5A;in4Qo7;eNick Mnock L;do1oCup;oCup;eMy L;in,up;l Ip L;aw3ba4do1f05in,oJto,up;aNoMuL;ic5mpE;ke3Tt H;c44zz 2;a02eXiUoQuL;nMrrLsh 6;y 2;keMt L;ar8do1;r H;lLneErse3L;d Le 2;ba4dLfast,o25up;ear,o1;de Mt L;ba4on,up;aw3o7;aLlp0;d Nl Ir Lt 2;fLof;rom;f11in,o1WuX;cKm 2nMsh0ve Lz2Q;at,it,to;d Mg LkerQ;do1in,o2Uup;do1in,oL;ut,v9;k 2;aZeUive Sloss IoNrMunL; f0S;ab hold,in44ow 2V; Lof 2J;aNb1Nit,oMr8th1JuL;nd9;ff,n,v9;bo7ft9hQw3;aw3bLdo1in,oJrise,up,w3;a4ir2I;ar 6ek0t L;aLb1Gdo1in,o1Dr8up;cMhLl2Hr8t,w3;ead;ross;d aLng 2;bo7;a0Fe08iZlVoRrNuL;ck Le2P;ar8up;eMighten LownBy 2;aw3oG;eLshe29; 2z5;g 2lNol Lrk I;aLwi22;bo7r8;d 6low 2;aMeLip0;sh0;g 6ke0mLrLtten H;e F;gSlQnOrMsLzzle0;h F;e Lm 2;aw3ba4up;d0isL;h 2;e Ll 1V;aw3fQin,o7;ht ba4ure0;eQnMsL;s 2;cNd L;fLoG;or;e D;d06l 2;cPll Lrm0t1I;aNbMdo1in,oLsho0Gth0Avictim;ff,ut,v9;a4ehi2P;pa0D;e L;do1oGup;at Ldge0nd 13y5;in,o7up;aPi1IoOrL;aMess 6op L;aw3b04in,oC;gBwB; Iubl1C;m 2;a0Bh06l03oPrMut L;aw3ba4do1oCup;ackBeep MoLy0;ss Dwd0;by,do1in,o0Vup;me OoMuntL; o2B;k 6l L;do1oG;aSbRforPin,oOtLu0P;hMoLrue;geth9;rough;ff,n,ut,v9;th,wL;ard;a4y;paLr8w3;rt;eaMose L;in,oCup;n 6r F;aOeMiL;ll0pE;ck Der Lw F;on,up;t 2;lSncel0rPsNtch MveE; in;o1Oup;h Dt L;doubt,oG;ry MvL;e 09;aw3oJ;l Lm H;aMba4do1oJup;ff,n,ut;r8w3;a0We0NiteAl0Go05rRuL;bblOckl06il0Elk 6ndl06rMsLtNy FzzA;t 01;n 0IsL;t D;e I;ov9;anXeaViMush L;oGup;ghRng L;aOba4do1forNin,oMuL;nd9p;n,ut;th;bo7lLr8w3;ong;teL;n 2;k L;do1in,o7up;ch0;arUg 6iSn5oQrOssNttlMunce Lx D;aw3ba4;e 6; ar8;e H;do1;k Dt 2;e 2;l 6;do1up;d 2;aQeed0oLurt0;cNw L;aw3ba4do1o7up;ck;k L;in,oC;ck0nk0stA; oRaOef 2lt0nd L;do1ov9up;er;up;r Mt L;do1in,oCup;do1o7;ff,nL;to;ck Qil0nNrgMsL;h D;ainBe D;g DkB; on;in,o7;aw3do1in,oCup;ff,ut;ay;ct FdRir0sk NuctionA; oG;ff;ar8o7;ouL;nd; o7;d L;do1oLup;ff,n;wn;o7up;ut",ProperNoun:"true¦barbie,c4diego,e3f2iron maiden,kirby,m0nis,riel,stevens;ercedes,i0;ckey,ssy;inn,lorence,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:76;1:64;2:6J;3:6M;4:5V;a6Bb56c4Ld4Be47f3Zg3Kh3Ci33j2Yk2Hl25m1Nn1Do1Ap0Xq0Vr0Os05tRuQvLwDxiBy9z5;a7h5i4Puri4R;a5e5ongsh0;ng3K;greb,nzib5J;ang2e5okoha3Vunfu;katerin3Krev0;a5n0R;m5Kn;arsBeAi6roclBu5;h0xi,zh5S;c7n5;d5nipeg,terth4;hoek,s1N;hi62kl3D;l66xford;aw;a8e6i5ladivost5Polgogr6N;en3lni6U;ni24r5;n2o3saill4Q;lenc4Zncouv3Vr3ughn;lan bat1Erumqi,trecht;aFbilisi,eEheDiBo9r7u5;l23n66r5;in,ku;i5ondh65;es54poli;kyo,m32ron1Rulo5;n,uS;an5jua3l2Wmisoa6Dra3;j4Wshui; hag64ssaloni2K;gucigal28hr0l av1W;briz,i6llinn,mpe59ng5rtu,shk2U;i3Hsh0;an,chu1n0p2Hyu0;aEeDh8kopje,owe1It7u5;ra5zh50;ba0It;aten is58ockholm,rasbou69uttga2Y;an8e6i5;jiazhua1llo1m5Zy0;f53n5;ya1zh4K;gh3Nt4T;att48o1Yv47;cramen18int ClBn5o paulo,ppo3Urajevo; 7aa,t5;a 5o domin3H;a3fe,m1O;antonBdie3Ffrancisco,j5ped3Qsalvad0L;o5u0;se;em,z28;lou5Bpeters27;aAe9i7o5;me,sar5t5C;io;ga,o5yadh;! de janei3H;cife,ims,nn3Lykjavik;b4Uip4lei2Knc2Rwalpindi;ingdao,u5;ez2i0R;aFeEhDiCo9r7u6yong5;ya1;eb5Aya1;a5etor3O;g53to;rt5zn0; 5la4Eo;au prin0Nelizabe26sa04;ls3Rrae5Btts28;iladelph3Inom pe1Coenix;r23tah tik3G;dua,lerZnaji,r4Qt5;na,r34;ak46des0Lm1Or6s5ttawa;a3Xlo;an,d07;a7ew5ing2Hovosibir1Lyc; 5cast38;del26orlea46taip16;g8iro4Xn5pl2Yshv35v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0Y;aFeCi9o6u5;mb2Cni28sc40;gadishu,nt6s5;c15ul;evideo,pelli1Tre31;ami,l6n16s5;kolc,sissauga;an,waukee;cca,d5lbour2Omph43ndo1Essi3;an,ell5i3;in,ín;cau,drAkass2Tl9n8r5shh4A;aca6ib5rakesh,se2M;or;i1Ty;a4EchFdal10i47;mo;id;aDeAi8o6u5vSy2;anMckn0Pdhia3;n5s angel27;d2g bea1O;brev2Ce3Mma5nz,sb2verpo29;!ss28; ma3Ai5;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Fn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd36rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Yi2H;che2d5;ianap2Mo20;aAe7o5yder2V; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Nupe;ld coa1Bthen5;bu2R;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal28es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,nkirk,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Yr es sala1KugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1P;lo7n6penhag0Ar5;do1Nk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr14;ch8sha,zh07;gliari,i9lga8mayenJn6pe town,r5tanO;acCdiff;ber19c5;un;ry;ro;aWeNhKirmingh0WoJr9u5;chareTdapeTenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iCl9ng8r5;g6l5n;in;en;aluru,hazi;fa6grade,o horizon5;te;st;ji1rut;ghd0AkFn9ot8r7s6yan n4;ur;el,r06;celo3i,ranquil08;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a04b01cc00ddis abaZgartaYhmedWizawl,lSmPnHqaZrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a8c5kaNtwerp;hora6o3;na;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aVbTcPdOeNfMgIhHiFjfk,kDlBm9new eng8or7p5s4t2u1vostok,wake is8y0;akutDyz;laanbaatar,pP;ahiti,he 0;bronx,hamptons;akhalGfo,oho,under3yd;acifUek,h0itcairn;l,x;ange county,d;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IS;1:IW;2:I5;3:I4;4:IM;5:I9;6:JD;7:GQ;8:J9;9:J5;A:HD;B:HN;C:IE;D:J2;E:II;F:H2;G:C4;H:HP;aGIbFDcDJdCSeBIfB0gAAh9Qi9Dj8Ck7Cl5Wm46n3Ko3Gp34qu33r2Bs16t0Fu0Dv03wWxiUyPzI;aMeJineb,oIsof2;e3Rf2la,ra;h3iLlJna,ynI;ab,ep;da,ma;da,h3iIra;nab;aLeKi0GolB3uJvI;etAonDH;i0na;le0sen2;el,gm3Gn,rGAs8T;aoIme0nyi;m5YyAA;aNendDRhiD8iI;dele9lKnI;if45niIo0;e,f44;a,helmi0lIma;a,ow;ka0nB;aOeLiIusa5;ck82kJlAole7viI;anGenIQ;ky,toriBE;da,lA5rIs0;a,nIoniGV;a,iFH;leInesGV;nI7rI;i1y;g9rIxGW;su5te;aZeVhSiOoMrJuIy3;i,la;acIPiIu0L;c2na,sI;hGta;nIr0H;iGya;aKffaEGnIs6;a,gtiI;ng;!nFHra;aJeIomasi0;a,l9Lo87res1;l2ndolwethu;g9Co85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe3iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlett,e0ChYiUkye,neza0oStOuJyI;bI2lvi1;ha,mayI5ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHQr5;b2fiA3m0MnIphi1;d3ia,ja,ya;er3lKmon1nJobh8MtI;a,i;dy;lEHv2;aNeJirIo0risEZy5;a,lDD;ba,e0i5lKrI;iIr6Gyl;!d8Efa;ia,lDP;hd,iNki3nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7YvI;da,inj;e0ife;en1i0ma;anA0bMd3Kh1PiBkLlKmJnd3rIs6vannaC;aCi0;ant6i3;lDEma,ome;ee0in8Ou3;in1ri0;a05e00hYiVoIuthDC;bTcSghRl8GnQsKwJxI;anAUie,y;an,e0;aJeIie,lD; merBIann8ll1marD6t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8B;hel63io;bDFer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG7oI;da,n1L;an0bKemGgi0iJnIta,y0;a86ee;han81na;a,eI;cE5kaC;bi0chJe,i0mo0nIquEFy0;di,ia;aEDelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCL;scil3LyamvaB;lly,rt2;ilome0oebe,ylI;is,lis;ggy,nelope,r5t3;ige,m0UnLo5rvaDBtJulI;a,etAin1;ricIt4T;a,e,ia;do3i07;ctav2dJfCUis6lIphCUumBYyunbileg;a,ga,iv2;eIvA9;l2tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBJkLlaKna,sIta,vi;anIha;ur;!y;a,iDNki;hoHk9SolI;a,eDE;!mh;hir,lIna,risFsreE;!a,lBO;asuMdLh2i6CnKomi8rgEJtIzanin zah3;aIhal4;li1s6;cy,etA;e9iEP;nngu30;a0Ackenz4e02iNoKrignayani,uriD8yI;a,rI;a,lOna,tH;bi0i3llBDnI;a,iI;ca,ka,qCY;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEI;!l,nB;dy,eIh,n4;nhHrva;aLdKiCKlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5EgOi,lLrI;edi77iJjem,on,yI;em,l;em,sF;an4iIliF;nIsC9;a,da;!an,han;b0DcANd0Be,g09ha,i08ja,l06n04rMsoum5YtLuJv80x9FyIz4;bell,ra,soB4;de,rI;a,eE;h8Cild1t4;a,cYgUiLjor4l7Qn4s6tKwa,yI;!aIbe6Uja9lA9;m,nBC;a,ha,in1;!aKbC6eJja,lDna,sIt62;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliACcJeduarBfern5EjIlui5W;o6Dul2;ecil2la3;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Vi75y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD6on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d2la,nI;!a,dJeBCnIsCG;!a,eBB;a,sCE;aCRcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a84i8;lIn1t7;ei;!in1;aTbb98dSepa,lNnKsJv2zI;!a,be5KetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9We;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c2t2;e2NlCB;la,nIra;a,ie,o3;a,or1;a,gh,laI;!ni;!h,nI;a,d3e,n5O;cPdon93iOkes6mi96na,rNtKurJvIxmi,y5;ern1in2;a,e53ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAFoOrKyI;lIra;a,ee,ie;istIy6B;a,en,iJyI;!na;!e,n58;nul,ri,urtnAV;aPerOlAUmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei3ongordzol;dij1w5;el7MiLjsi,lKnJrI;a,i,ri;d3na,za;ey,i,lB8s4y;ra,s6;bi7cAEdiat7EeAXiSlRmQnyakuma1BrOss6HtLvi7yI;!e,lI;a,eI;e,i8H;a6BeJhIi4MlDri0y;ar69er69ie,leErAXy;!lyn8Cri0;a,en,iIl5Qoli0yn;!ma,nGsF;a5il1;ei8Ai,l4;a,tl6I;a09eZiWoOuI;anMdLliIst61;a8DeIsF;!n9tI;!a,te;e5Hi3Iy;a,i7;!anOcelDdNelHhan7NleMni,sJva0yI;a,ce;eIie;fIlDph5S;a,in1;en,n1;i8y;!a,e,n40;lIng;!i1DlI;!i1C;anOle0nLrKsI;i88sI;!e,i87;i,ri;!a,elHif2AnI;a,etAiIy;!e,f28;a,e89iJnI;a,e88iI;e,n1;cNda,mi,nJque4UsminGvie3y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob7Z;!n9H;do3;belIdo3;!a,e,l37;a72en1i0ma;di3es,gr6Tji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin29;da,ll4rten21snI;a,i9K;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1AiKlJnriet7rmi9sI;sa,t19;en2Qga,mi;di;bi2Bil8ClOnNrKsJtIwa,yl8C;i5Nt4;n5Tti;iImo4Xri4Y;etI;!te;aCnaC;a,ey,l4;a03eXiSlQoOrLunKwI;enIyne1O;!dolD;ay,el;acieJetIiselB;a,chE;!la;ld19ogooI;sh;adys,enIor2yn2G;a,da,na;aLgi,lJna,ov84selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Ni,m3Atru86;etAi4S;a,eIna;s25vieve;ma;bJle,mIrnet,yH;al5Ji5;i5BrielI;a,l1;aUeRiQlorPoz2rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0N;n1s5X;!ca;a,enc2;en,o0;lJn0rnI;anB;ec2ic2;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no3oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c2da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh2iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr2nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d3nI;!a,e;hl2i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th2;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat3;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a3er3ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d3elHtI;al,elH;cJlI;esAi42;el2ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a3o3ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el2;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar2;el;aMberLeliKiIy;e,l2naI;!ta;a,ja;!ly;hHiJl2nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c2sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c2is6jaLksaLna,sKxI;aIia;!nd3;ia,saI;nd3;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",Person:"true¦a0Ob0Hc08d05e02g01hZinez,jYkVlSmMnKoJpHr9s7t4v2w0xzibit,yanni;ar0ednesday adams,ill.i.am,oode;hol,rO;a0oltaiO;lentino rossi,n go7;a1heresa may,i0yra banks;ger woods,mbaQ;tum,ylor;a0carlett johanss03hakespeaJinbad,lobodan milosevic,ocratM;ddam hussain,ntigold;a6e5i4o2u0za;mi,n dmc,paul,sh limbau0;gh;d stewart,nald0thko;inho,o;hanYvaldo;ese witherspoVil9mbrandt;ffi,y roma03;a0e08ip07lato,oe,uff daddy;lm06ris hiltS;prah winfrWra;as,e0iles crane,ostradamP; yo,l3ttI;acklemo4essia3i1o0ubarek;by,lie3net,rrissS;randa ju0tt romnR;ly;en;re;ady gaga,e0iberaT;bron jam0e;es;anye west,e1iefer suther0obe bryant;land;ats,ndall,sha;aime,effersCk rowling;a0itlPulk hogan;lle berry,rrisA;ast9otye;ff1m0nya,zekiel;eril lagasse,inem;ie;a1e0ick wolf,rake;gas,nzel washingt4;lt3nB;ar5h3lint2o0;nfuci0olio;us;on;aucCy0;na;dinal wols1son0;! palm9;ey;a5e3o2ro0;ck,n0;te;no;ck,yon0;ce;nksy,rack obama;ristot1shton kutch0;er;le",LastName:"true¦0:9G;1:9W;2:9Y;3:9O;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s2;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi3j6ka3IoGrFsui,uD;om50rD;c3n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps2s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv3zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins2;!on;bei0LcEes,vDzzo;as,e8;ci,hards2;ag3es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss2;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym3;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx2;ic,ov6X;ls1miD;!n1;ils2mD;co42ec;gy,kaEray3varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h3lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h3iSlQnez48oJrGuEvar3woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss2;anEnsD;en,on,t2;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks2obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m3ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers2;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw2;o,staf2Utierr7zm3;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m3;calv9zale0H;aj,i;bs2l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm3uD;cDent9ji3E;hs;ntaDrt6urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s2;er,is2wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g3he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w3;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e2uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em3liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm3tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder2mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy3;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss2;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl3yD;aEd6;in;la;aEsl3;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s2;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DN;1:CO;2:D6;3:AJ;4:CK;5:BZ;6:CF;7:D2;8:BS;9:AR;A:DA;B:D3;C:94;D:BM;aC9bB7cA7d98e8If82g7Fh6Si6Cj5Ek52l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Jkaria,n0C;hFkE;!aC7;ar5UeC6;aMoGuE;sEu2LvBJ;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB8ssY;avi3ho4;aNeLiGoEyaBN;jcie87lfgang,odrow,utE;!er;lEnst1;bGey,fredAlE;aAZiE;am,e,s;e97ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Xy;aHiEladimir,ojte7U;cFha0kt67nceErgA5va0;!nt;e3Xt65;lentEn9S;inE;!e;ghBElyss59nax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r59;avAHeEist0oy,um0;ntA9v5Wy;bGd8RmEny;!as,mEoharu;aCBie,y;iCy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8G;!de5;dHrE;en98rE;an97eEy;ll,n96;!dy;dgh,ha,iEnn3req,tsu4R;cAPka;aUcotSeQhMiKoIpenc3tEur1Xylve96zym1;anGeEua85;f0phBCvEwa84;e5Zie;!islaw,l8;lom1uE;leyma6ta;dElCm1yabonga;!dhart74n8;aGeE;lErm0;d1t1;h7Kne,qu11un,wn,y6;aEbasti0k2Cl4Prg4Mth,ymoAE;m5n;!tE;!ie,y;lFmEnti2Gq58ul;!ke5JmDu4;ik,vato7O;aZeVhe9ViRoIuFyE;an,ou;b7DdFf5pe7KssE;!elBI;ol3Fy;an,bLc62dJel,geIh0landAmHnGry,sFyE;!ce;coe,s;!aA1nD;an,eo;l45r;er78g3n8olfo,riE;go;bDeAQ;cEl8;ar6Ic6HhFkEo;!ey,ie,y;a8Vie;gFid,ubByEza;an1KnZ;g9SiE;na9Os;ch6Qfa4lImHndGpha4sFul,wi2HyE;an,mo6U;h7Jm5;alAWol2U;iACon;f,ph;ent2inE;cy,t1;aJeHhilGier6TrE;aka18eE;m,st1;!ip,lip;dA4rcy,tE;ar,e3Er1Y;b4Hdra73tr6JulE;!o19;ctav3Di3liv3m9Yndrej,rIsFtEum7wB;is,to;aFc7k7m0vE;al5S;ma;i,vM;aMeKiGoEu38;aEel,j5l0ma0r3I;h,m;cFg4i46kEl2R;!au,h7Gola;hEkEolC;olC;al,d,il,ls1vE;il8J;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Gr1;hamFr6KstaE;fa,p54;ed,mI;di0Xe,hamGis2CntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Uik;house,o0Ct1;ae5Oe9MolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2AlSmadXnRrLs1tGuricFxE;imilianAwe9;e,io;eHhFiCtEus,yC;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Ysha9tEv2;iEy;!m,n;in,on;el,oQus;!el90oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5G;ou;aXeRiPlo39oLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7BrenGuEv81we9;!iE;e,s;!zo;am,oE;n4r;a7Uevi,la4AnIonHst3thaGvE;eEi;nte;bo;!a6Del;!ny;mFnd1rEur54wr54;ry,s;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubCnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdBkJmIrGsFvi3yE;dBs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dB;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdA;ffr8rge;brFlBrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymBzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estAie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydCy29;!lC;!a2HnEov0;e9ie,y;go,iFykC;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdA;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndA;!el,ki;ie;ta;aq;as,dIgelAtE;hony,oE;i6nE;!iAy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdBeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtA;ni;dBm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfAri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Honorific:"true¦director1field marsh2lieutenant1rear0sergeant major,vice0; admir1; gener0;al",Adjective:"true¦0:8H;1:9N;2:8E;3:9E;4:8B;5:98;6:8M;7:8T;8:86;9:99;A:8W;B:7Z;C:60;D:9D;E:7J;a80b7Ic6Wd6Fe5Xf5Cg54h4Ui3Ujuni49k3Rl3Hm34n2Uo2Fp20quart6Ar1Qs0Ut0MuRvNwFye1M;ast58eKhIiHoF;man4oFrthwhi7u0I;dBzy;despr8Zn w7Cs6N;acked0XoleF;!sa7;ather14eFll o5Pste2Q;!k4;aHeGiFola5J;b9Qce versa,gi2Qle;ng4Yrsa5H;ca1lu8U;lt08nLpHrGsFttermo9I;efEu5;b7Age1; Hb2ApGsFti8H;ca7et,ide d3P;er,i4O;f3Xto da3;aYbecom2cXdSeRfPiOkn3MmNpMrJsGto49us0wF;a08iel2N;eBi2Fo47pGuF;pervis0spect2;e1okB;eFu4;cognTgul0NlFsolv0;at0ent2;aArecede01;arri0et;que,vers5;air,orF;eseBtun7S;mploy0nd2xpect0;eFisclos0ue;cid0rF;!a75covCly2sJwF;aFei7W;tCy;heck0onvinc2;ppeal2ssum2tteGuthorF;iz0;nd0;im4Bra;aKeHhough5Jip 1RoGrF;anspare1i3;gethCle8Qp notch,rpA;ena6UmpGrF;r3Ktia8;e9o76;leFst3V;nt0;a09c05e02h01iZkiYle5Mmug,nobbi46oTpQqueami46tKuFymb7L;bHi generis,pFr4;erFre69;! dupCb,vi00;du0p5HsFurb65;eq7Rtanda8C;atu6OeJi0WrFy3Z;aightGin4LungF; o25; fFfF;or6C;adfa84ri7;arGeFirit0lendAot on;c33e1F;k4se; call0lub7mbCphisticIrHuFviT;ndFth10;proof;dAry;at0;ll0n d6C;g22nF;ce5Mg7;am36eC;co1Lem4lfGnFre6;so8; suf45i3G;aGholFient2P;ar4;rlFth2;et;cr0me,tisfac5Z;aNeIheumatoAiGoF;bu7IttBy5;ghtFv5;-w2fE;cIdu79lHnown0sFtard0;is3JoF;lu3na1;e1Duc3H;e1ondi3;bAci5;aQeOicayu6laNopuli79rGuF;bl6Fnjabi;eKiIoF;b6HfGmi3IpFvBx23;er,ort6N;a6u6Q;maFor,sti6va3;!ry;ci6Nexist2ma1UpaA;cAid;ac2Dnt2XrFti3;feDma3Ati3Av6J;i2DrtFss6F;-4RiF;al,s4P;bQffOkNld MnKrJthCutIverF;!aGni5Vseas,t,wF;ei5Urou5U;ll;do14er,si51;d34g1U; bFbFe on o6go2li6;oa6P;fashion0school;!ay; gua6MbFli6;eat;eGsF;ce6er0Io0Z;dia1se;aNeMiLoFuanc0; mo47nHrthFt5P;!eF;rn;chaGdescri6Aprof2JsF;top;la1;ght4;arby,cessa8ighbor4xt;k0usiat2;aNeMiKoGuF;dHltip7;deHlGnFot,st;ochro3Yth4;dy;rn,st;ddle ag0nF;dblVi;ga,nac2re;cHgenta,in,j0Akeshift,mmGnFscu50;da4Ay;ali3Ooth;ab3Mho;aNeKiIoFumber2;ngFuti1I;stand2tF;erm,i3L;ghtwei4QteraF;l,te;ft-w2gFssCth5;al,eFit0I;nda8;nguAps0te4;apGind4nF;ow2;ut;ce co0Dgno5Kll09m01nHpso 2ErF;a3releF;va1; WaVcoSdPe2MfOgrNhibi3Ri02nMoLsHtFvalu4N;aDeF;n4Wrdep24;a6iGolFuboI;ub7ve1;de,gF;nifica1;rdi4O;a3er;own;eriGluenSreq4J;eGiIoFul1E;or;fini3p1Ttermi4I;mpGnside9rF;reD;le3;ccu9deq4Jppropr3Q;fFsitu,vitro;ro1;mJpF;arHeGl0YoFropC;li3r0V;nd2rfeD;ti5;aGeFi0Z;d3Hn48;tu2E;egGiF;c0Rte9;al,itF;ima3;ld;aMelLiJoFuma6;meHnGrrFs0Bur4;if3K;e4Co30; ma2Msick;ghfalut1VspF;an3G;liZpfE;i8llow0ndFrd05tL;sy,y;aiLener3Ciga2Jlob5oKraHuF;ilFng ho;ty;cGtF;efEis;efE;ldBod;nfE;aWeTiRlPoIrF;aGeFil4ozB;q3CtfE;gi7nt31;lk0WoJrF; keeps,eHge0OmCtunFwa3U;ateF;!ly;go2i1Os2Z;liF;sh;ag3Rowe8uF;e1oresce1;e8nF;al,i3;dGmini6rF;ti7; up;bl0l31mili0Lr Fux;oFreach2;ff;aTfSlQmNnLqu5reDthere5veryday,xF;aDem3AplIquisi3traHuF;be3FlF;ta1;!va1V;icF;it; Fti0Y;rou3sui3;erGiF;ne1;ge1;dFe1N;er4;ficie1;gCsF;t,ygo2;er;aUeMiHoGrFue;ea8owW;mina1ne,rma1ubO;dact1Yfficult,m,sGverF;ge1se;creGeNjoi1pa9tF;a1inD;et,te; Ladp0GceKfiJgene9liHpGreliDspe9voF;id,ut;ende1;ca3ghF;tfE;a1ni3;as0;facto;i4ngero05;arZeXhWivil,oMrHuF;stoma8teF;sy;aIeHu0WystalF; cleFli6;ar;epy;vBz0;erNgniza1loMmLnGrpo9veF;rt;cIduLgr1KjHsGtraF;dic0Hry;eq1Ita1;oi1ug5;a1Ci1L;mensu9pass1G;ni5ss5;ci19;ee8intzy;leba3rtaF;in;diac,efE;aUeOiJliSoGrFuck nak0;and new,isk,on1U;gGldface,naF; fiZfiZ;us;gHpartisGzarF;re;an;tiF;me;autifEhiIloHnFsiSyoI;e01iFt;gn;v0w;nd;ul;ckwards,rF;e,rB; priori,b12c0Zd0Tf0Ng0Ih0Hl0Amp7nt07pZrSsPttracti0MuLvIwF;aGkF;wa19;ke,re;ant garGeraF;ge;de;diHtF;heFoimmu6;nt07;to8;hBlF;eep;en;bitJchiv5roItF;iFsy;fiF;ci5;ga1;ra8;ry;pFt;aJetiz2roF;prHximF;ate4;ly;ia3;ll2re1;ing;iquFsy;at0e;ed;cohJiQkaHl,oGriFterW;ght;ne,of;li6;ne;olF;ic;ead;ain05ed,gressiIrF;eeF;ab7;le;ve;fGraA;id;ectGlF;ue1;ioF;na3; JeHvF;erF;se;pt,qF;ua3;hoc,infinitum;cu9tu5u3;al;ra3;erQlOoMrJsGuF;nda1;e1olu3traD;ct;te;eaGuF;pt;st;aFve;rd;aFe;ze;ra1;nt",Adverb:"true¦a08b05d01eXfRhePinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6;en,us;eldom,o0uch;!me1rt0; of;how,times,w0A;a1e0;alT;ndomSthN;ar excellenEer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag03moX; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboV;deed,steW;lla,n0;ce;or2u0;lArther0;!moK; 0ev3;examp0good,suI;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;ju9trop;ackward,y 0;far,no0; means,w; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aVbRcuz,eNhowMiEjustYnoBo9p8supposing,t5wh0yet;e1il0o3;e,st;n1re0thN; if,vM;evL;h0o;erefMo0;!uS;lus,rovided th9;r0therwiK;! not; mattEr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mGcaDorder t0;h0o;at;! 0;only,t0w0;hen;!ev3;ith2ven0;! 0;if,t9;er;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s",Determiner:"true¦aAboth,d8e5few,le4mu7neiCplenty,s3th2various,wh0;at0ich0;evB;at,e3is,ose;everal,ome;!ast,s;a1l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er","Adj|Present":"true¦a07b04cVdQeOfKhollJidRlFmDnarrJoCpAqua9r8s4t2utt3w0;aLet,ound,ro0;ng,ug08;end0hin;er;e2hort,l1mooth,our,pa9tray,u0;re,speT;i2ow;cu6da01leRpaM;eplica00ig01;ck;aGr0;eseTime,omU;bscu1pen,wn;atu0e3odeG;re;a2e1i0;gTve;an;st,y;ow;a2i1oul,r0;ee,inge;rm;iHke,ncy,st;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry,ull;le;ffu9re6;fu8libe0;raE;alm,l5o0;mpleCn3ol,rr1unterfe0;it;e0u7;ct;juga8sum7;ea1o0;se;n,r;ankru1lu0;nt;pt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:38;1:3M;2:3B;3:2E;a3Qb39c30d2Re2Kf28g1Wh1Mi1Gj1Fk1Cl15m0Zn0Uo0Tp0Kqu0Ir09sJtEuDvBw5y4za0S;el12ouP;a8e6hi1Ii4ry;ck0Ede,l4n1ry,se;d,y;a4i3P;k,ry;ntiJry;a4erda2ulgar;gue,in,st;g0pcomiG;a7en2Thi6i5ough,r4;anqu29en1ue;dy,g32me0ny,r04;ck,rs25;ll,me,rt,wd3E;aScarReQhOiNkin0ClJmHoFpEt7u5w4;eet,ift;b4dd0Wperfi1Xrre25;sta23t3;a9e8iff,r5u4;pVr1;a5ict,o4;ng;ig2Rn0N;a1ep,rn;le,rk,te0;e1Oi2Rright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Im4;!y;ek,nd2O;ck,l0mp3;a4iRrill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1BlAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;bb0ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Xte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o11u4ve0w0Vy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui16;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng19;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd10ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue0X;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiR;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0N;!ny;aDesh,iend0;a4rmE;my;erce5nan4;ciB;! ;le;r,ul4;ty;a7erie,sse5v4xtre0B;il;nti4;al;r5s4;tern,y;ly,th0;aBe8i5ru4umb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppRrk;agey,h9l8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;evLou1;e4il0;ap,e4;sy;aIiGlDoBr6u4;r0sy;ly;a7i4oad;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd","Person|Adj":"true¦brown,du2earnest,frank,mi2r0sa1;a0ich,u1;ndy;sty",Infinitive:"true¦0:8V;1:8G;2:9D;3:80;4:7N;5:91;6:9H;7:99;8:82;9:9G;A:92;B:8X;C:7K;D:7U;E:7Q;F:87;G:7V;H:7H;a82b7Jc6Sd5Le4Gf45g41h3Wi3Cj39k37l2Ym2Rnou3Vo2Lp25qu24r19s0AtYuTvRwI;aOeNiLors4rI;eJiI;ng,te;ak,st3;d4e7HthI;draw,er;a2d,ep;i2ke,nIrn;d0t;aIie;li9Eni9ry;nIplift;cov0dJear7JlIplug,tie,ve85;ea9o3K;erIo;cut,go,sta9Gval96whelm;aRePhMoLrI;aIemb3;ffi3Fmp3nsI;aDpi8;pp3ugh4;aJiJrIwaE;eat4i2;nk;aIm92;ch,se;ck3ilor,keImp0r7N;! paE;a0Fc0Ee0Ch08i06l04mugg3n03o01pYquXtQuKwI;all71eeIim;p,t4;bKccumb,ffJggeBmm93p2FrI;mouFvi2;er,i5;li80mJsiIveE;de,st;erAit;aMe7SiKrI;ang3eIi2;ng20w;fIng;f4le;gg0rI;t3ve;a3Ui9;a4DeJit,l6KoI;il,of;ak,nd;lIot6Nw;icCve;eak,i0L;aIi6;m,y;ft,nIt;g,k;aKi5LoJriIun;nk,v5X;ot,rt4;ke,rp4tt0;eIll,nd,que7Nv0w;!k,m;avenAul81;dd4tis1Ay;a0BeJip4oI;am,ut;a07b05c03d02fZgroup,heaYiXlVmUnTpRq36sNtLup,vI;amp,eJiIo2V;sCve;l,rt;i8rI;ie2ofC;eFiKtIurfa5;o1XrI;aHiDuctu8;de,gn,st;el,hra1lIreseF;a5e69;d0ew,o05;aHe31o2;a7eFiIoad,y;e2nq3Mve;mbur1nf2U;r1t;inJleDocus,re9uI;el,rbi9;an5e;aDu5;ei2k7Jla3OoIyc3;gni2Wnci3up,v0;oot,uI;ff;ct,d,liI;se,ze;tt3vi9;a9enGit,o7;aVerTinpoiFlumm0VoSrKuI;b3Oke,ni9rIt;poEs6W;eMoI;cKd,fe4BhibCnoJpo1sp0tru6vI;e,i6o4W;un5;la39u8;aGclu6dJf0occupy,sup0FvI;a5LeF;etermi47iD;aGrtr4Vsse44;cei2fo3Hi9mea7plex,sIva6;eve8iB;mp0rItrol,ve,y;a5St5O;bMccuLpKutJverIwe;lap,s19tu6Au1;gr4Pnu22pa5;era7i3Ypo1;py,r;ser2taH;aMe09iJoIultiply;leBu64;micJnIspla5;ce,g3us;!k;iIke,naA;m,ntaH;aPeLiIo1u39;e,ke,ng0quIv4;eIi66;fy;aKnIss4;d,gI;th4;rn,ve;ng26u1E;eep,nI;e3Row;oHuI;gg3xtaI;po1;gno8mWnIrk;cUdSfRgeBhQitia7ju8q14sOtKun5TvI;eIo0T;nt,st;erJimi5QoxiQrI;odu5u6;aDn,prIru5Q;et;iBpi8tIu8;il,ruD;abCibC;eBo2Bu1;iIulA;ca7;i7lu6;b5Cmer1pI;aEer47ly,oJrI;e2Ris5No2;rt,se,veI;ri9;aLeKiIoiBuE;de,jaInd0;ck;ar,iQ;mp0ng,pp4st4ve;ath0et,i2le1UoKrI;aIow;b,pp3ze;!ve4S;ast4er3Li58lRorMrJuI;lf3Tr3P;eJiIolic;ght4;e0Lsh4;b3DeKfeCgIs4B;eIi2;!t;clo1go,sIwa4J;had2Y;ee,i2Q;a0KdCl0Im0CnUquip,rTsStGvQxI;cNeEha3iMpJtI;ing0Uol;eJi8lIo1unA;aHoC;ct,di7;st,t;e2MlI;a0Xu6;alua7oI;ke,l2;chew,pou1tab13;a1u4G;aYcVdTfSgQhan5joy,lPqOrNsuMtKvI;e0VisI;aAi4L;er,i5rI;aHenGuB;e,re;iGol;ui8;arAiB;aAeIra2ulf;nd0;or5;ang0oIu8;r1w;lo1ou0CrJuI;mb0;oaGy3Z;b3ct;bKerApI;hasiIow0;ze;a0Tody,rI;a5oiI;d0l;ap1eDuI;ci3Ode;rIt;ma0Nn;a0Ne02iKo,rIwind3;aw,edAoI;wn;agno1e,ff0g,mi27sLvI;eIulA;rIst;ge,t;ab3bUcPlodAmant3pNru3GsMtI;iIoEu2W;lJngI;ui9;!l;ol2ua6;eIla5o1ro2;n1r1;a2Ne2WlKoIu0K;uIv0;raA;aIo1;im;a38ur1;af4bZcTduDep4fRliQmNnLpKra1TtaGvI;eIol2;lop;aEiDoE;oIy;te,un5;eJoI;li9;an;mCv0;a5i06oIraud,y;rm;ei2iMoKrI;ee,yI;!pt;de,mIup3;missi2Upo1;de,ma7ph0;aJrief,uI;g,nk;rk;mp4rk4uF;a06ea1h04i03l02oJrIurta17;a2ea7ipp3;ales5eZhabCinci6llYmWnIrro6;cTdQfNju8no7qu0sLtKvI;eIin5;ne,rA;aHin25ribu7;er2iIoli27pi8titu7ult;d0st;eJiIroFu1;de,gu8rm;ss;eJoI;ne;mn,n1;eIlu6ur;al,i2;buBe,men5pI;e7i3ly;eDi6u6;r5xiB;ean1iS;rcumveFte;eIoo1;ri9w;ncIre4t0ulk;el;aXeRi6lPoOrLuI;iJrIy;st,y;ld;aJeastfeMiIoad4;ng;ke;il,l12mba0XrrMth0;eIow;ed;!come,gHha2liLqueaKstJtrIwild0;ay;ow;th;e2tt3;in;bysCckfi8ff3tI;he;it;b17c0Vd0Mff0Kgr0Jl0Fm0Bn05pp01rZsSttPuNvKwaI;it,k4;en;eEoI;id;rt;gIto08;meF;aGeBraD;ct;ch;pi8sJtoI;ni9;aKeIi05u8;mb3rt,ss;le;il;re;g0Ji1ou1rI;anAi2;eaKly,oiFrI;ai1o2;nt;r,se;aMiQnJtI;icipa7;eJoIul;un5y;al;ly1;aJu1;se;lgaIze;ma7;iKlI;eAoIu6;t,w;gn;ee;ix,oI;rd;a01jNmiKoJsoI;rb;pt,rn;niIt;st0;er;ouJuB;st;rn;cLhie2knowledAquiItiva7;es5re;ce;ge;eOomKrJusI;e,tom;ue;moJpI;any,li9;da7;te;pt;andOet,i6oKsI;coKol2;ve;li9rt,uI;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Verb:"true¦born,cannot,gonna,has,keep tabs,msg",Participle:"true¦fl3g1s0writt2;e1h2;iv0one;en;own","Actor|Verb":"true¦aIbDcAd8engineFfool,g6host,judge,m4nerd,p3recruit,s1ushFvolunteFwi0;mp,tneF;cout,p0;ons6y;arent,ilot;a0ime;n,st9;eek,oof,r0uide;aduCoom;elegBoct0;or;ha1o0;a5nscript,ok;mpion,uffeur;it3o2u0;lly,tch0;er;ss;ch;d0ffili1rchite2;di1voc0;ate;ct","Adj|Gerund":"true¦0:2F;1:2H;2:25;3:23;4:20;5:2D;6:27;7:22;a24b1Zc1Hd14e0Yf0Og0Ih0Hi0Ajud1Xl07m04o00pWrQsFtAup9v8w0Pyiel4;ar5eY;lif0s01;aWeBhr9i3ouc7r8wis0;e01oub2us0yi1;ea0Mi8;l2vi1;l2mp0;atisf5creec7hoc0Ekyrocke0lo13oGpFtBu9we8;e12l2;pp1Kr8;gi1pri6roun4;a9ea23i8ri0Aun1C;mula0r3;gge3r8;t2vi1;ark2ee4;a8ot7;ki1ri1;aCe9ive0o8us7;a3l2;defi13fres7ig13laEmai13s0v8war4;ea2itali8ol0Q;si1zi1;gi1ll5mb2vi1;a5erpleAier1Dlun18r8un1J;e8o11;ce4s6vai2;xi1;ffsApNut9ver8wi1;arc7lap0Hp09ri4whel1L;goi1l5st0Y;et0;eande3i9o0Fu8;mb2;s6tiga0;a9i8o0C;fesa0Bmi0vi1;cKg0Vs0;mDn8rri0C;cBsAt9vi8;go1Gti1;e15imida0;pi3ul0;orpo1Drea6;po6;arrowi1ea2orrif5umilia0;lCr8;a0ipZo9uel8;i1li1;undbrea8wi1;ki1;a3ea0Z;aGetc7it0lDoBr9ulf8;il2;ee0Yigh8ust12;te04;r8un4;ebo4th0H;a9o8;a0we3;mi1tte3;di1scina0;mBn9x8;ac0ci0is0plo4;ab2c8du3ga04sT;han0oura03;barras6er02p8;owe3;aJeCi8;s8zz5;appoin0gus0sen0t8;r8u0N;ac0es6;biliDcCfiMgra4mBpres6serAv8;asCelo8;pi1;vi1;an4eaI;a5liH;ta0;maOri1s7un0;aOhLlo6o8ripp2ut0;mEn8rrespon4;cerCfBspi3t8vinQ;in9r8;as0ibu0ol2;ui1;lic0u6;ni1;fCmBp8;e9ro8;mi6;l2ti1;an4;or0;a8ea0il2;llen8rQ;gi1;lOptiva0ri1;eBin4lin4o9rui6u8;d4st2;i2oLri1un8;ci1;coJ;bsoQcLgonJlarImGppea2rEs8;pi3su3to8;n9un4;di1;is7;hi1;ri1;res0;li1;aBu6;si1;mi1;i8zi1;zi1;c8hi1;ele9ompan5;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:30;1:2R;2:2U;a2Jb2Dc1Ud1Be15f10gift0h0Xi0Qj0Pknown,l0Mm0Hn0Fo0Cp05qua04rVsEtAu7v5w3;arp0ea3or5;kIth2T;a3e0W;ri0;n3pd1s0;derstood,i3;fi0t0;ar5hreatCr3wi2R;a3ou19;ck0in0pp0;get0ni1N;aHcaGeEhDimCm01oak0pAt6u3;bsid28gge2Ms3;pe3ta1S;ct0nd0;at0e5r3uV;ength3ip0;en0;am0reotyp0;eci3ik0ott0;al20fi0;pIul1;ar0ut;a3c1Jle2t1S;l0t0;r0tt25;t3ut0;is1Jur1;aAe3;c7duc0f1Cg6l1new0qu5s3;pe2t3;or0ri2;e22ir0;ist1Xul1;eiv0o3;mme09rd0v1V;lli0ti1A;li19;arallel0i0Kl7o6r3ump0;e4o3;ce0Ilo0Hnou1Tpos0te2;fe0Loc8pY;i1Gli0R;a3e19;nn0;c4rgan1Bverlo3;ok0;cupi0;e3ot0;ed0gle2;a5e4ix0o3ut0;di0Vt0G;as0Qlt0;n3rk0;ag0ufact0O;eft,i4o3;ad0st;cens0mit0st0;agg0us0N;mp8n3sol1;br0debt0f6t3volv0;e3ox0F;gr1n3re18;d0si0J;e2l1oX;li0oLrov0;amm10e1o3;ok0r3;ri0E;aNe6i5lavo09oc05r3;a3i0;ct07g0Mm0;niXx0;ar0;duc1l1mbarraKn7quipp0stabliVx3;agger1p3te5;a4e3;ct0rie0S;nd0;ha0QsZ;aJeAi3;gni01miniOre2s3;a7c5grun05t3;o3reBurb0;rt0;iplSou3;nt0rE;bl0;cenVdOf8l7pre6ra5t3velop0;a3ermO;il0;ng0;ss0;ay0ight0;e4o3;rm0;rr0;m3t0;ag0;alcul1eHharg0lGo8r5u3;lt3stomS;iv1;a4owd0u3;sh0;ck0mp0;d0lo9m6n3ok0vX;centr1f4s3troll0;idVolid1;us0;b4pl3;ic1;in0;ur0;assi5os0;lebr1n5r3;ti3;fi0;tralB;a7i6o4roken,urn3;ed,t;il0r0t3und;tl0;as0;k0laIs0;bandon0cJdGffe2lDnBpp9ss7u3ward0;g4thor3;iz0;me3;nt0;o5u3;m0r0;li0re3;ci1;im1ticip1;at0;leg0t3;er0;ct0;ju4o6va3;nc0;st0;ce3knowledg0;pt0;ed","Person|Verb":"true¦b8ch7dr6foster,gra5hope,ja9lan4ma2ni9ollie,p1rob,s0tra4wade;pike,t5ue;at,eg,ier2;ck,r0;k,shal;ce;ce,nt;ew;ase,u1;iff,l1ob,u0;ck;aze,ossom","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Po=36,Ao="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Io=Ao.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var No=function(e){if(void 0!==Io[e])return Io[e];let t=0,n=1,r=Po,a=1;for(;n=0;n--,a*=Po){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},jo=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=Eo(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=To(ko[e]);Fo.test(e)?Object.keys(t).forEach((t=>{if(Bo[t]=e,"Noun|Verb"===e){let e=Vo(t,zo);Bo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Go[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","3","<\\3","=("].forEach((e=>Go[e]="Emoticon")),delete Go[""],delete Go.null,delete Go[" "];const $o="Singular";var Lo={beforeTags:{Determiner:$o,Possessive:$o,Acronym:$o,Noun:$o,Adjective:$o,PresentTense:$o,Gerund:$o,PastTense:$o,Infinitive:$o,Date:$o,Ordinal:$o,Demonym:$o},afterTags:{Value:$o,Modal:$o,Copula:$o,PresentTense:$o,PastTense:$o,Demonym:$o,Actor:$o},beforeWords:{the:$o,with:$o,without:$o,of:$o,for:$o,any:$o,all:$o,on:$o,cut:$o,cuts:$o,increase:$o,decrease:$o,raise:$o,drop:$o,save:$o,saved:$o,saves:$o,make:$o,makes:$o,made:$o,minus:$o,plus:$o,than:$o,another:$o,versus:$o,neither:$o,about:$o,favorite:$o,best:$o,daily:$o,weekly:$o,linear:$o,binary:$o,mobile:$o,lexical:$o,technical:$o,computer:$o,scientific:$o,security:$o,government:$o,popular:$o,formal:$o,no:$o,more:$o,one:$o},afterWords:{of:$o,system:$o,aid:$o,method:$o,utility:$o,tool:$o,reform:$o,therapy:$o,philosophy:$o,room:$o,authority:$o,says:$o,said:$o,wants:$o,wanted:$o,is:$o,can:$o,wise:$o}};const So="Infinitive";var Mo={beforeTags:{Modal:So,Adverb:So,Negative:So,Plural:So},afterTags:{Determiner:So,Adverb:So,Possessive:So,Reflexive:So,Preposition:So,Cardinal:So,Comparative:So,Superlative:So},beforeWords:{i:So,we:So,you:So,they:So,to:So,please:So,will:So,have:So,had:So,would:So,could:So,should:So,do:So,did:So,does:So,can:So,must:So,us:So,me:So,let:So,even:So,when:So,help:So,he:So,she:So,it:So,being:So,bi:So,co:So,contra:So,de:So,inter:So,intra:So,mis:So,pre:So,out:So,counter:So,nobody:So,somebody:So,anybody:So,everybody:So},afterWords:{the:So,me:So,you:So,him:So,us:So,her:So,them:So,it:So,himself:So,herself:So,itself:So,myself:So,ourselves:So,themselves:So,something:So,anything:So,a:So,an:So,up:So,down:So,by:So,out:So,off:So,under:So,what:So,all:So,to:So,because:So,although:So,after:So,before:So,how:So,otherwise:So,together:So,though:So,into:So,yet:So,more:So,here:So,there:So}},Ho={beforeTags:Object.assign({},Mo.beforeTags,Lo.beforeTags,{}),afterTags:Object.assign({},Mo.afterTags,Lo.afterTags,{}),beforeWords:Object.assign({},Mo.beforeWords,Lo.beforeWords,{}),afterWords:Object.assign({},Mo.afterWords,Lo.afterWords,{})};const Jo="Adjective";var Wo={beforeTags:{Determiner:Jo,Possessive:Jo,Hyphenated:Jo},afterTags:{Adjective:Jo},beforeWords:{seem:Jo,seemed:Jo,seems:Jo,feel:Jo,feels:Jo,felt:Jo,stay:Jo,appear:Jo,appears:Jo,appeared:Jo,also:Jo,over:Jo,under:Jo,too:Jo,it:Jo,but:Jo,still:Jo,really:Jo,quite:Jo,well:Jo,very:Jo,how:Jo,deeply:Jo,hella:Jo,profoundly:Jo,extremely:Jo,so:Jo,badly:Jo,mostly:Jo,totally:Jo,awfully:Jo,rather:Jo,nothing:Jo,something:Jo,anything:Jo,not:Jo,me:Jo,is:Jo},afterWords:{too:Jo,also:Jo,or:Jo}};const Ko="Gerund";var qo={beforeTags:{Adverb:Ko,Preposition:Ko,Conjunction:Ko},afterTags:{Adverb:Ko,Possessive:Ko,Person:Ko,Pronoun:Ko,Determiner:Ko,Copula:Ko,Preposition:Ko,Conjunction:Ko,Comparative:Ko},beforeWords:{been:Ko,keep:Ko,continue:Ko,stop:Ko,am:Ko,be:Ko,me:Ko,began:Ko,start:Ko,starts:Ko,started:Ko,stops:Ko,stopped:Ko,help:Ko,helps:Ko,avoid:Ko,avoids:Ko,love:Ko,loves:Ko,loved:Ko,hate:Ko,hates:Ko,hated:Ko},afterWords:{you:Ko,me:Ko,her:Ko,him:Ko,them:Ko,their:Ko,it:Ko,this:Ko,there:Ko,on:Ko,about:Ko,for:Ko}},Uo={beforeTags:Object.assign({},Wo.beforeTags,qo.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Wo.afterTags,qo.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Wo.beforeWords,qo.beforeWords,{is:"Adjective",was:"Adjective",of:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Wo.afterWords,qo.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ro={beforeTags:{Determiner:void 0,Cardinal:"Noun",PhrasalVerb:"Adjective"}};var Qo={beforeTags:Object.assign({},Wo.beforeTags,Lo.beforeTags,Ro.beforeTags),afterTags:Object.assign({},Wo.afterTags,Lo.afterTags),beforeWords:Object.assign({},Wo.beforeWords,Lo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective",off:"Adjective",out:"Adjective"}),afterWords:Object.assign({},Wo.afterWords,Lo.afterWords)};let _o="PastTense";const Yo={beforeTags:{Adverb:_o,Pronoun:_o,ProperNoun:_o,Auxiliary:_o,Noun:_o},afterTags:{Possessive:_o,Pronoun:_o,Determiner:_o,Adverb:_o,Comparative:_o,Date:_o,Gerund:_o},beforeWords:{be:_o,who:_o,get:"Adjective",had:_o,has:_o,have:_o,been:_o,it:_o,as:_o,for:"Adjective"},afterWords:{by:_o,back:_o,out:_o,in:_o,up:_o,down:_o,before:_o,after:_o,for:_o,the:_o,with:_o,as:_o,on:_o,at:_o,between:_o,to:_o,into:_o,us:_o,them:_o,me:_o}};var Zo={beforeTags:Object.assign({},Wo.beforeTags,Yo.beforeTags),afterTags:Object.assign({},Wo.afterTags,Yo.afterTags),beforeWords:Object.assign({},Wo.beforeWords,Yo.beforeWords),afterWords:Object.assign({},Wo.afterWords,Yo.afterWords)};const Xo={afterTags:{Noun:"Adjective",Conjunction:void 0}};var ei={beforeTags:Object.assign({},Wo.beforeTags,Mo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Wo.afterTags,Mo.afterTags,Xo.afterTags),beforeWords:Object.assign({},Wo.beforeWords,Mo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Wo.afterWords,Mo.afterWords,{to:void 0,as:"Adjective"})};const ti={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ni={},ri={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ai={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var oi={beforeTags:Object.assign({},qo.beforeTags,Lo.beforeTags,ti),afterTags:Object.assign({},qo.afterTags,Lo.afterTags,ni),beforeWords:Object.assign({},qo.beforeWords,Lo.beforeWords,ri),afterWords:Object.assign({},qo.afterWords,Lo.afterWords,ai)};const ii="Singular",si="Infinitive";var li={beforeTags:Object.assign({},Mo.beforeTags,Lo.beforeTags,{Adjective:ii,Particle:ii}),afterTags:Object.assign({},Mo.afterTags,Lo.afterTags,{ProperNoun:si,Gerund:si,Adjective:si,Copula:ii}),beforeWords:Object.assign({},Mo.beforeWords,Lo.beforeWords,{is:ii,was:ii,of:ii,have:null}),afterWords:Object.assign({},Mo.afterWords,Lo.afterWords,{instead:si,about:si,his:si,her:si,to:null,by:null,in:null})};const ui="Person";var ci={beforeTags:{Honorific:ui,Person:ui},afterTags:{Person:ui,ProperNoun:ui,Verb:ui},ownTags:{ProperNoun:ui},beforeWords:{hi:ui,hey:ui,yo:ui,dear:ui,hello:ui},afterWords:{said:ui,says:ui,told:ui,tells:ui,feels:ui,felt:ui,seems:ui,thinks:ui,thought:ui,spends:ui,spendt:ui,plays:ui,played:ui,sing:ui,sang:ui,learn:ui,learned:ui,wants:ui,wanted:ui}};const hi="Month",di={beforeTags:{Date:hi,Value:hi},afterTags:{Date:hi,Value:hi},beforeWords:{by:hi,in:hi,on:hi,during:hi,after:hi,before:hi,between:hi,until:hi,til:hi,sometime:hi,of:hi,this:hi,next:hi,last:hi,previous:hi,following:hi},afterWords:{sometime:hi,in:hi,of:hi,until:hi,the:hi}};var gi={beforeTags:Object.assign({},ci.beforeTags,di.beforeTags),afterTags:Object.assign({},ci.afterTags,di.afterTags),beforeWords:Object.assign({},ci.beforeWords,di.beforeWords),afterWords:Object.assign({},ci.afterWords,di.afterWords)};const pi="Place",mi={beforeTags:{Place:pi},afterTags:{Place:pi,Abbreviation:pi},beforeWords:{in:pi,by:pi,near:pi,from:pi,to:pi},afterWords:{in:pi,by:pi,near:pi,from:pi,to:pi,government:pi,council:pi,region:pi,city:pi}};let fi="Unit";const vi={"Actor|Verb":Ho,"Adj|Gerund":Uo,"Adj|Noun":Qo,"Adj|Past":Zo,"Adj|Present":ei,"Noun|Verb":li,"Noun|Gerund":oi,"Person|Noun":{beforeTags:Object.assign({},Lo.beforeTags,ci.beforeTags),afterTags:Object.assign({},Lo.afterTags,ci.afterTags),beforeWords:Object.assign({},Lo.beforeWords,ci.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Lo.afterWords,ci.afterWords)},"Person|Date":gi,"Person|Verb":{beforeTags:Object.assign({},Lo.beforeTags,ci.beforeTags,Mo.beforeTags),afterTags:Object.assign({},Lo.afterTags,ci.afterTags,Mo.afterTags),beforeWords:Object.assign({},Lo.beforeWords,ci.beforeWords,Mo.beforeWords),afterWords:Object.assign({},Lo.afterWords,ci.afterWords,Mo.afterWords)},"Person|Place":{beforeTags:Object.assign({},mi.beforeTags,ci.beforeTags),afterTags:Object.assign({},mi.afterTags,ci.afterTags),beforeWords:Object.assign({},mi.beforeWords,ci.beforeWords),afterWords:Object.assign({},mi.afterWords,ci.afterWords)},"Person|Adj":{beforeTags:Object.assign({},ci.beforeTags,Wo.beforeTags),afterTags:Object.assign({},ci.afterTags,Wo.afterTags),beforeWords:Object.assign({},ci.beforeWords,Wo.beforeWords),afterWords:Object.assign({},ci.afterWords,Wo.afterWords)},"Unit|Noun":{beforeTags:{Value:fi},afterTags:{},beforeWords:{per:fi,every:fi,each:fi,square:fi,cubic:fi,sq:fi,metric:fi},afterWords:{per:fi,squared:fi,cubed:fi,long:fi}}},bi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};vi["Plural|Verb"]={beforeWords:bi(vi["Noun|Verb"].beforeWords,{had:"Plural",have:"Plural"}),afterWords:bi(vi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null,is:"PresentTense",by:"PresentTense"}),beforeTags:bi(vi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:bi(vi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var yi=vi;const wi="Adjective",ki="Infinitive",Pi="PresentTense",Ai="Singular",Ii="PastTense",Ni="Adverb",ji="Plural",xi="Actor",Ei="Verb",Ti="Noun",Ci="LastName",Di="Modal",Oi="Participle";var Vi=[null,null,{ea:Ai,ia:Ti,ic:wi,ly:Ni,"'n":Ei,"'t":Ei},{oed:Ii,ued:Ii,xed:Ii," so":Ni,"'ll":Di,"'re":"Copula",azy:wi,eer:Ti,end:Ei,ped:Ii,ffy:wi,ify:ki,ing:"Gerund",ize:ki,ibe:ki,lar:wi,mum:wi,nes:Pi,nny:wi,ous:wi,que:wi,ger:Ti,ber:Ti,rol:Ai,sis:Ai,ogy:Ai,oid:Ai,ian:Ai,zes:Pi,eld:Ii,ken:Oi,ven:Oi,ten:Oi,ect:ki,ict:ki,ign:ki,ful:wi,bal:wi},{amed:Ii,aped:Ii,ched:Ii,lked:Ii,rked:Ii,reed:Ii,nded:Ii,mned:wi,cted:Ii,dged:Ii,ield:Ai,akis:Ci,cede:ki,chuk:Ci,czyk:Ci,ects:Pi,ends:Ei,enko:Ci,ette:Ai,iary:Ai,wner:Ai,fies:Pi,fore:Ni,gate:ki,gone:wi,ices:ji,ints:ji,ruct:ki,ines:ji,ions:ji,ners:ji,pers:ji,lers:ji,less:wi,llen:wi,made:wi,nsen:Ci,oses:Pi,ould:Di,some:wi,sson:Ci,ians:ji,tion:Ai,tage:Ti,ique:Ai,tive:wi,tors:Ti,vice:Ai,lier:Ai,fier:Ai,wned:Ii,gent:Ai,tist:xi,pist:xi,rist:xi,mist:xi,yist:xi,vist:xi,ists:xi,lite:Ai,site:Ai,rite:Ai,mite:Ai,bite:Ai,mate:Ai,date:Ai,ndal:Ai,vent:Ai,uist:xi,gist:xi,note:Ai,cide:Ai,ence:Ai,wide:wi,vide:ki,ract:ki,duce:ki,pose:ki,eive:ki,lyze:ki,lyse:ki,iant:wi,nary:wi,erer:xi},{elist:xi,holic:Ai,phite:Ai,tized:Ii,urned:Ii,eased:Ii,ances:ji,bound:wi,ettes:ji,fully:Ni,ishes:Pi,ities:ji,marek:Ci,nssen:Ci,ology:Ti,osome:Ai,tment:Ai,ports:ji,rough:wi,tches:Pi,tieth:"Ordinal",tures:ji,wards:Ni,where:Ni,archy:Ti,pathy:Ti,opoly:Ti,embly:Ti,phate:Ti,ndent:Ai,scent:Ai,onist:xi,anist:xi,alist:xi,olist:xi,icist:xi,ounce:ki,iable:wi,borne:wi,gnant:wi,inant:wi,igent:wi,atory:wi,rient:Ai,dient:Ai,maker:xi},{auskas:Ci,parent:Ai,cedent:Ai,ionary:Ai,cklist:Ai,keeper:xi,logist:xi,teenth:"Value",worker:xi,master:xi,writer:xi},{logists:xi,opoulos:Ci,borough:"Place",sdottir:Ci}];const Fi="Adjective",Gi="Noun",Bi="Verb";var zi=[null,null,{},{neo:Gi,bio:Gi,"de-":Bi,"re-":Bi,"un-":Bi},{anti:Gi,auto:Gi,faux:Fi,hexa:Gi,kilo:Gi,mono:Gi,nano:Gi,octa:Gi,poly:Gi,semi:Fi,tele:Gi,"pro-":Fi,"mis-":Bi,"dis-":Bi,"pre-":Fi},{anglo:Gi,centi:Gi,ethno:Gi,ferro:Gi,grand:Gi,hepta:Gi,hydro:Gi,intro:Gi,macro:Gi,micro:Gi,milli:Gi,nitro:Gi,penta:Gi,quasi:Fi,radio:Gi,tetra:Gi,"omni-":Fi,"post-":Fi},{pseudo:Fi,"extra-":Fi,"hyper-":Fi,"inter-":Fi,"intra-":Fi,"deca-":Fi},{electro:Gi}];const $i="Adjective",Li="Infinitive",Si="PresentTense",Mi="Singular",Hi="PastTense",Ji="Adverb",Wi="Expression",Ki="Actor",qi="Verb",Ui="Noun",Ri="LastName";var Qi={a:[[/.[aeiou]na$/,Ui,"tuna"],[/.[oau][wvl]ska$/,Ri],[/.[^aeiou]ica$/,Mi,"harmonica"],[/^([hyj]a+)+$/,Wi,"haha"]],c:[[/.[^aeiou]ic$/,$i]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Hi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Hi,"rammed"],[/.[aeiou][sg]hed$/,Hi,"gushed"],[/.[aeiou]red$/,Hi,"hired"],[/.[aeiou]r?ried$/,Hi,"hurried"],[/[^aeiou]ard$/,Mi,"steward"],[/[aeiou][^aeiou]id$/,$i,""],[/.[vrl]id$/,$i,"livid"],[/..led$/,Hi,"hurled"],[/.[iao]sed$/,Hi,""],[/[aeiou]n?[cs]ed$/,Hi,""],[/[aeiou][rl]?[mnf]ed$/,Hi,""],[/[aeiou][ns]?c?ked$/,Hi,"bunked"],[/[aeiou]gned$/,Hi],[/[aeiou][nl]?ged$/,Hi],[/.[tdbwxyz]ed$/,Hi],[/[^aeiou][aeiou][tvx]ed$/,Hi],[/.[cdflmnprstv]ied$/,Hi,"emptied"]],e:[[/.[lnr]ize$/,Li,"antagonize"],[/.[^aeiou]ise$/,Li,"antagonise"],[/.[aeiou]te$/,Li,"bite"],[/.[^aeiou][ai]ble$/,$i,"fixable"],[/.[^aeiou]eable$/,$i,"maleable"],[/.[ts]ive$/,$i,"festive"],[/[a-z]-like$/,$i,"woman-like"]],h:[[/.[^aeiouf]ish$/,$i,"cornish"],[/.v[iy]ch$/,Ri,"..ovich"],[/^ug?h+$/,Wi,"ughh"],[/^uh[ -]?oh$/,Wi,"uhoh"],[/[a-z]-ish$/,$i,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Ri,"polish-male"]],k:[[/^(k){2}$/,Wi,"kkkk"]],l:[[/.[gl]ial$/,$i,"familial"],[/.[^aeiou]ful$/,$i,"fitful"],[/.[nrtumcd]al$/,$i,"natal"],[/.[^aeiou][ei]al$/,$i,"familial"]],m:[[/.[^aeiou]ium$/,Mi,"magnesium"],[/[^aeiou]ism$/,Mi,"schism"],[/^[hu]m+$/,Wi,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,$i,"republican"],[/[^aeiou]ician$/,Ki,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Wi,"noooo"],[/^(yo)+$/,Wi,"yoo"],[/^wo{2,}[pt]?$/,Wi,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Mi],[/[^i]fer$/,Li],[/.[^aeiou][ao]pher$/,Ki],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,$i],[/[aeiou].*ist$/,$i],[/^[a-z]et$/,qi]],s:[[/.[^aeiou]ises$/,Si],[/.[rln]ates$/,Si],[/.[^z]ens$/,qi],[/.[lstrn]us$/,Mi],[/.[aeiou]sks$/,Si],[/.[aeiou]kes$/,Si],[/[aeiou][^aeiou]is$/,Mi],[/[a-z]'s$/,Ui],[/^yes+$/,Wi]],v:[[/.[^aeiou][ai][kln]ov$/,Ri]],y:[[/.[cts]hy$/,$i],[/.[st]ty$/,$i],[/.[tnl]ary$/,$i],[/.[oe]ry$/,Mi],[/[rdntkbhs]ly$/,Ji],[/.(gg|bb|zz)ly$/,$i],[/...lly$/,Ji],[/.[gk]y$/,$i],[/[bszmp]{2}y$/,$i],[/.[ai]my$/,$i],[/[ea]{2}zy$/,$i],[/.[^aeiou]ity$/,Mi]]};const _i="Verb",Yi="Noun";var Zi={leftTags:[["Adjective",Yi],["Possessive",Yi],["Determiner",Yi],["Adverb",_i],["Pronoun",_i],["Value",Yi],["Ordinal",Yi],["Modal",_i],["Superlative",Yi],["Demonym",Yi],["Honorific","Person"]],leftWords:[["i",_i],["first",Yi],["it",_i],["there",_i],["not",_i],["because",Yi],["if",Yi],["but",Yi],["who",_i],["this",Yi],["his",Yi],["when",Yi],["you",_i],["very","Adjective"],["old",Yi],["never",_i],["before",Yi],["a",Yi],["the",Yi],["been",_i]],rightTags:[["Copula",Yi],["PastTense",Yi],["Conjunction",Yi],["Modal",Yi]],rightWords:[["there",_i],["me",_i],["man","Adjective"],["him",_i],["it",_i],["were",Yi],["took",Yi],["himself",_i],["went",Yi],["who",Yi],["jr","Person"]]},Xi={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},es={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},ts={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},ns={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},rs={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const as=/^.([0-9]+)/;var os=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(as);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(as,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)})),t},ss=/^([0-9]+)/,ls=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ss);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(ss,"")]}(n[0],n[1])}))};var us=function(e={}){return(e=Object.assign({},e)).rules=ls(e.rules),e.rules=is(e.rules),e.rev&&(e.rev=ls(e.rev),e.rev=is(e.rev)),e.exceptions=ls(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e},cs=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const hs=us({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),ds=us(ns),gs=us(es),ps=us(ts),ms=cs(hs),fs=cs(ds),vs=cs(gs),bs=cs(ps),ys=us(Xi),ws=us(rs);var ks={fromPast:hs,fromPresent:ds,fromGerund:gs,fromParticiple:ps,toPast:ms,toPresent:fs,toGerund:vs,toParticiple:bs,toComparative:ys,toSuperlative:ws,fromComparative:cs(ys),fromSuperlative:cs(ws)},Ps=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),As=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],Is=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(js[t].forEach((n=>e[n]=t)),e)),{});var xs=js,Es=function(e){let t=e.substring(e.length-3);if(!0===xs.hasOwnProperty(t))return xs[t];let n=e.substring(e.length-2);return!0===xs.hasOwnProperty(n)?xs[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ts={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Cs=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=Es(e)),Ts.hasOwnProperty(e))c=Ts[e];else if("Participle"===n)c=os(l,i);else if("PastTense"===n)c=os(l,r);else if("PresentTense"===n)c=os(l,a);else{if("Gerund"!==n)return e;c=os(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Ds=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:os(i,n),PresentTense:os(i,r),Gerund:os(i,a),FutureTense:"will "+e},u=os(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l},Os={toInfinitive:Cs,conjugate:Ds,all:function(e,t){let n=Ds(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}};const Vs=function(e,t){const n=t.two.models.toSuperlative;return os(e,n)},Fs=function(e,t){const n=t.two.models.toComparative;return os(e,n)};var Gs=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a))return e.slice(0,n-r)+t[a.length][a]}return null};const Bs="ically",zs=new Set(["analyt"+Bs,"chem"+Bs,"class"+Bs,"clin"+Bs,"crit"+Bs,"ecolog"+Bs,"electr"+Bs,"empir"+Bs,"frant"+Bs,"grammat"+Bs,"ident"+Bs,"ideolog"+Bs,"log"+Bs,"mag"+Bs,"mathemat"+Bs,"mechan"+Bs,"med"+Bs,"method"+Bs,"method"+Bs,"mus"+Bs,"phys"+Bs,"phys"+Bs,"polit"+Bs,"pract"+Bs,"rad"+Bs,"satir"+Bs,"statist"+Bs,"techn"+Bs,"technolog"+Bs,"theoret"+Bs,"typ"+Bs,"vert"+Bs,"whims"+Bs]),$s=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Ls=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ss={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Ms=function(e){return e.endsWith("ly")?zs.has(e)?e.replace(/ically/,"ical"):Ls.has(e)?null:Ss.hasOwnProperty(e)?Ss[e]:Gs(e,$s)||e:null};const Hs=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Js={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Ws=function(e){if(Js.hasOwnProperty(e))return Js[e];let t=Gs(e,Hs);return t||e+"ly"};const Ks=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],qs={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Us=new Set(["terrible","annoying"]);var Rs={toSuperlative:Vs,toComparative:Fs,toAdverb:Ws,toNoun:function(e){if(qs.hasOwnProperty(e))return qs[e];if(Us.has(e))return null;let t=Gs(e,Ks);return t||e+"ness"},fromAdverb:Ms,fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return os(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return os(e,n)},all:function(e,t){let n=[e];return n.push(Vs(e,t)),n.push(Fs(e,t)),n.push(Ws(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},Qs={noun:Ns,verb:Os,adjective:Rs},_s={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Actor:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||["Plural","Actor"])},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,r);delete l.FutureTense,Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},Ys=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===_s.hasOwnProperty(i)&&_s[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},Zs=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]){let n=e[t-1];if(n.tags.has("Date")||a.has(n.normal))return!1;if(n.tags.has("Adjective")||r.tags.has("Adjective"))return!1}let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!tl.find((t=>e.endsWith(t)))},rl={two:{quickSplit:Zs,expandLexicon:Ys,transform:Qs,looksPlural:nl}},al=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const ol=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e)),{})};var il=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=ol(n,"Infinitive","PastTense"),Object.assign(s,l),l=ol(r,"Infinitive","Verb"),Object.assign(s,l),l=ol(a,"Infinitive","Gerund"),Object.assign(s,l),l=ol(o,"Adjective","Superlative"),Object.assign(s,l),l=ol(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let sl={two:{models:ks}};const ll={"Actor|Verb":"Actor","Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"FirstName","Person|Place":"Person","Person|Adj":"Adjective","Plural|Verb":"Plural","Unit|Noun":"Noun"},ul=function(e,t){const n={model:t,methods:rl};let{lex:r,_multi:a}=rl.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},cl=function(e,t,n){let r=Ds(e,sl);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},hl=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=ll[o],"Noun|Verb"!==o&&"Person|Verb"!==o&&"Actor|Verb"!==o||cl(a,r,!1),"Adj|Present"===o&&(cl(a,r,!0),function(e,t,n){let r=Vs(e,n);t[r]=t[r]||"Superlative";let a=Fs(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Cs(a,sl,"Gerund");r[e]||(n[e]="Infinitive")}if("Noun|Gerund"!==o&&"Adj|Noun"!==o&&"Person|Noun"!==o||function(e,t,n){let r=Vo(e,n);t[r]=t[r]||"Plural"}(a,r,t),"Adj|Past"===o){let e=Cs(a,sl,"PastTense");r[e]||(n[e]="Infinitive")}})),t=ul(n,t)};var dl=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=ul(e.one.lexicon,e)).one.lexicon,e),e=hl(e.two.switches,e),e=il(e),e=al(e)};let gl={one:{_multiCache:{},lexicon:Go},two:{irregularPlurals:wo,models:ks,suffixPatterns:Vi,prefixPatterns:zi,endsWith:Qi,neighbours:Zi,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z°]{1,4})$/,"NumericValue","9km"]],switches:Bo,clues:yi,uncountable:{},orgWords:Ps}};gl=dl(gl);var pl=gl,ml=function(e,t,n,r){const a=r.methods.one.setTag;if(0===t&&e.length>=3){const t=/:/;if(e[0].post.match(t)){let t=e[1];if(t.tags.has("Value")||t.tags.has("Email")||t.tags.has("PhoneNumber"))return;a([e[0]],"Expression",r,null,"2-punct-colon''")}}},fl=function(e,t,n,r){const a=r.methods.one.setTag;"-"===e[t].post&&e[t+1]&&a([e[t],e[t+1]],"Hyphenated",r,null,"1-punct-hyphen''")};const vl=/^(under|over|mis|re|un|dis|semi)-?/;var bl=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(vl.test(a.normal)){let e=a.normal.replace(vl,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},yl=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,"[33m[3m"+a+"[0m").padEnd(24)} [32m→[0m #${t.padEnd(22)} ${(e=>"[3m"+e+"[0m")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const wl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var kl=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(nl(e.normal)?yl(e,"Plural","3-plural-guess"):yl(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Es(e.normal);t&&yl(e,t,"3-verb-tense-guess")}}(r)};const Pl=/^\p{Lu}[\p{Ll}'’]/u,Al=/[0-9]/,Il=["Date","Month","WeekDay","Unit","Expression"],Nl=/[IVX]/,jl=/^[IVXLCDM]{2,}$/,xl=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,El={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Tl=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===Pl.test(o)&&!1===Al.test(o)?Il.find((e=>r.tags.has(e)))||r.pre.match(/["']$/)||"the"===r.normal?null:(kl(e,t,n),r.tags.has("Noun")||r.tags.clear(),yl(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&jl.test(o)&&Nl.test(o)&&xl.test(o)&&!El[r.normal]?(yl(r,"RomanNumeral","2-xvii"),!0):null};const Cl=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null};var Dl=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=Cl(r.normal,n.two.suffixPatterns);if(null!==e)return yl(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=Cl(r.implicit,n.two.suffixPatterns),null!==e))return yl(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const Ol=/['‘’‛‵′`´]/,Vl=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return yl(r,e,"2-prefix"),r.confidence=.5,!0}return null};const Bl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),zl=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Bl.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},$l=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Ll=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Sl=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(zl(a)||zl(o))return yl(n,"Year","2-tagYear");if(r>=1920&&r<2025){if($l(a)||$l(o))return yl(n,"Year","2-tagYear-close");if(Ll(e[t-2])||Ll(e[t+2]))return yl(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return yl(n,"Year","2-tagYear-noun")}}}return null},Ml=function(e,t,n,r){const a=r.methods.one.setTag,o=e[t],i=["PastTense","PresentTense","Auxiliary","Modal","Particle"];o.tags.has("Verb")&&(i.find((e=>o.tags.has(e)))||a([o],"Infinitive",r,null,"2-verb-type''"))};const Hl=/^[A-Z]('s|,)?$/,Jl=/^[A-Z-]+$/,Wl=/^[A-Z]+s$/,Kl=/([A-Z]\.)+[A-Z]?,?$/,ql=/[A-Z]{2,}('s|,)?$/,Ul=/([a-z]\.)+[a-z]\.?$/,Rl={I:!0,A:!0},Ql={la:!0,ny:!0,us:!0,dc:!0,gb:!0};var _l=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;if(!1===Jl.test(n)){if(!(n.length>3&&!0===Wl.test(n)))return!1;n=n.replace(/s$/,"")}return!(n.length>5||Rl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Kl.test(n)&&!0!==Ul.test(n)&&!0!==Hl.test(n)&&!0!==ql.test(n))}(r,n)?(r.tags.clear(),yl(r,["Acronym","Noun"],"3-no-period-acronym"),!0===Ql[r.normal]&&yl(r,"Place","3-place-acronym"),!0===Wl.test(r.text)&&yl(r,"Plural","3-plural-acronym"),!0):!Rl.hasOwnProperty(r.text)&&Hl.test(r.text)?(r.tags.clear(),yl(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(yl(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Jl.test(r.text)&&r.text.length<=6?(yl(r,"Acronym","3-titlecase-acronym"),!0):null};const Yl=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Zl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var Xl=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Yl(e[t-1],a),l=l||Yl(e[t+1],o),l=l||Zl(e[t-1],r),l=l||Zl(e[t+1],i),l)return yl(s,l,"3-[neighbour]"),kl(e,t,n),e[t].confidence=.2,!0}return null};const eu=function(e,t,n){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||!(n||(r=e.text,!/^\p{Lu}[\p{Ll}'’]/u.test(r)))&&(0!==t||e.tags.has("Singular")));var r};var tu=function(e,t,n,r){const a=n.model.two.orgWords,o=n.methods.one.setTag;let i=e[t];if(!0===a[i.machine||i.normal]&&eu(e[t-1],t-1,r)){o([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&eu(e[a],a,r);a-=1)o([e[a]],"Organization",n,null,"3-[org-word]")}return null},nu=function(e,t,n){let r=!1,a=e[t].tags;(0===a.size||1===a.size&&(a.has("Hyphenated")||a.has("HashTag")||a.has("Prefix")))&&(r=!0),r&&(yl(e[t],"Noun","3-[fallback]"),kl(e,t,n),e[t].confidence=.1)};const ru=/^[A-Z][a-z]/,au=(e,t)=>e[t].tags.has("ProperNoun")&&ru.test(e[t].text)?"Noun":null,ou=(e,t,n)=>0!==t||e[1]?null:n,iu={"Adj|Gerund":(e,t)=>au(e,t),"Adj|Noun":(e,t)=>au(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Actor|Verb":(e,t)=>au(e,t),"Adj|Past":(e,t)=>au(e,t),"Adj|Present":(e,t)=>au(e,t),"Noun|Gerund":(e,t)=>au(e,t),"Noun|Verb":(e,t)=>au(e,t)||ou(e,t,"Infinitive"),"Plural|Verb":(e,t)=>au(e,t)||ou(e,t,"PresentTense")||function(e,t,n){return 0===t&&e.length>3?n:null}(e,t,"Plural"),"Person|Noun":(e,t)=>au(e,t),"Person|Verb":(e,t)=>0!==t?au(e,t):null,"Person|Adj":(e,t)=>0===t&&e.length>1||au(e,t)?"Person":null};var su=iu;const lu="undefined"!=typeof process&&process.env?process.env:self.env||{},uu=/^(under|over|mis|re|un|dis|semi)-?/,cu=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&lu.DEBUG_TAGS&&console.log(`\n [2m[3m ↓ - '${n}' [0m`),r},hu=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&lu.DEBUG_TAGS&&console.log(` [2m[3m ↓ - '${e.normal||e.implicit}' (#${a}) [0m`),a=t[a],a};var du=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(uu.test(l)&&!o[l]&&(l=l.replace(uu,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=cu(e[t+1],n.afterWords);return o=o||cu(e[t-1],n.beforeWords),o=o||hu(e[t-1],n.beforeTags,a),o=o||hu(e[t+1],n.afterTags,a),o}(e,t,i[o],r);su[o]&&(u=su[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),kl(e,t,r)):lu.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}};const gu={there:!0,this:!0,it:!0,him:!0,her:!0,us:!0};var pu=function(e,t){const n=t.methods.one.setTag,r=t.model.one._multiCache||{};let a=e[0];if(("Noun|Verb"===a.switch||a.tags.has("Infinitive"))&&e.length>=2){if(e.length<4&&!gu[e[1].normal])return;if(!a.tags.has("PhrasalVerb")&&r.hasOwnProperty(a.normal))return;(e[1].tags.has("Noun")||e[1].tags.has("Determiner"))&&(e.slice(1,3).some((e=>e.tags.has("Verb")))&&!a.tags.has("#PhrasalVerb")||n([a],"Imperative",t,null,"3-[imperative]"))}};const mu=function(e){if(e.filter((e=>!e.tags.has("ProperNoun"))).length<=3)return!1;const t=/^[a-z]/;return e.every((e=>!t.test(e.text)))},fu=function(e,t,n,r){for(let a=0;a{ml(e,0,t,n);for(let t=0;t{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var wu=function(e){const t=e.world,n=Object.keys(yu);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=Ou.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=Du},Fu=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const Gu=/'/;var Bu=function(e,t){let n=e[t].normal.split(Gu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const zu=/'/;var $u=function(e,t){let n=e[t].normal.split(zu)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>!(!e[t+1]||"better"!=e[t+1].normal)||e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]},Lu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){if(e[t+1]&&"never"===e[t+1].normal)return["have"];let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if("i"===n.normal)return["am","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const Su={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Mu={in:!0,by:!0,for:!0};var Hu=(e,t)=>{let n=e[t];if(Su.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("QuestionWord"))return!1;if("he's"===n.normal||"she's"===n.normal)return!1;let r=e[t+1];if(!r)return!0;if("it's"===n.normal)return!!r.tags.has("#Noun");if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return!("here"===e||"there"===e||"everywhere"===e||r.tags.has("Possessive")||r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===Mu[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const Ju=/'/,Wu=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Ku={d:(e,t)=>$u(e,t),t:(e,t)=>Lu(e,t),s:(e,t,n)=>Hu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Bu(e,t)},qu=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Uu={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===Ju.test(r[o].normal)&&([,i]=r[o].normal.split(Ju));let s=null;Ku.hasOwnProperty(i)&&(s=Ku[i](r,o,t)),s&&(s=qu(s,e),Fu(n,[a,o],s),Wu(n[a],e,o,s.length))}}))}},Ru={compute:Uu,api:Vu,hooks:["contractionTwo"]};const Qu="(i|we|they)";let _u=[].concat([{match:"(got|were|was|is|are|am) (#PastTense|#Participle)",tag:"Passive",reason:"got-walked"},{match:"(was|were|is|are|am) being (#PastTense|#Participle)",tag:"Passive",reason:"was-being"},{match:"(had|have|has) been (#PastTense|#Participle)",tag:"Passive",reason:"had-been"},{match:"will be being? (#PastTense|#Participle)",tag:"Passive",reason:"will-be-cleaned"},{match:"#Noun [(#PastTense|#Participle)] by (the|a) #Noun",group:0,tag:"Passive",reason:"suffered-by"}],[{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,notIf:"(all|even)",tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"[#Hyphenated (#Hyphenated && #PastTense)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"faith-based"},{match:"[#Hyphenated (#Hyphenated && #Gerund)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"self-driving"},{match:"[#PastTense (#Hyphenated && #PhrasalVerb)] (#Noun|#Conjunction)",group:0,tag:"Adjective",reason:"dammed-up"},{match:"(#Hyphenated && #Value) fold",tag:"Adjective",reason:"two-fold"},{match:"must (#Hyphenated && #Infinitive)",tag:"Adjective",reason:"must-win"},{match:"(#Hyphenated && #Infinitive) #Hyphenated",tag:"Adjective",notIf:"#PhrasalVerb",reason:"vacuum-sealed"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"},{match:"[(un|contra|extra|inter|intra|macro|micro|mid|mis|mono|multi|pre|sub|tri|ex)] #Adjective",group:0,tag:["Adjective","Prefix"],reason:"un-skilled"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"},{match:"#Copula [far too] #Adjective",group:0,tag:"Adverb",reason:"far-too"},{match:"#Copula [still] (in|#Gerund|#Adjective)",group:0,tag:"Adverb",reason:"was-still-walking"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"},{match:"#Gerund [#Gerund]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looking-annoying"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",notIf:"#Hyphenated",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"},{match:"no [#Adjective] #Modal",group:0,tag:"Noun",reason:"no-golden"},{match:"[brand #Gerund?] new",group:0,tag:"Adverb",reason:"brand-new"},{match:"(#Determiner|#Comparative|new|different) [kind]",group:0,tag:"Noun",reason:"some-kind"},{match:"#Possessive [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"her-favourite"},{match:"must && #Hyphenated .",tag:"Adjective",reason:"must-win"},{match:"#Determiner [#Adjective]$",tag:"Noun",notIf:"(this|that|#Comparative|#Superlative)",reason:"the-south"},{match:"(#Noun && #Hyphenated) (#Adjective && #Hyphenated)",tag:"Adjective",notIf:"(this|that|#Comparative|#Superlative)",reason:"company-wide"},{match:"#Determiner [#Adjective] (#Copula|#Determiner)",notIf:"(#Comparative|#Superlative)",group:0,tag:"Noun",reason:"the-poor"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,notIf:"(#Modal|#PhrasalVerb)",tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] #Comparative",group:0,tag:"Adverb",reason:"even-worse"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",notIf:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",notIf:"(#PhrasalVerb|#Copula)",reason:"charge-back"},{match:"#Verb [around]",group:0,tag:"Adverb",notIf:"#PhrasalVerb",reason:"send-around"},{match:"[later] #PresentTense",group:0,tag:"Adverb",reason:"later-say"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) (march|may) !#Infinitive",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"(the|any) [more]",group:0,tag:"Singular",reason:"more-noun"},{match:"[more] #Noun",group:0,tag:"Adjective",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Singular",reason:"bit-2"},{match:"a [must]",group:0,tag:"Singular",reason:"must-2"},{match:"(we|us) [all]",group:0,tag:"Noun",reason:"we all"},{match:"due to [#Verb]",group:0,tag:"Noun",reason:"due-to"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",notIf:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"(a|an|the) [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",notIf:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,notIf:"#Gerund",tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense #Particle?]",group:0,tag:"Noun",notIf:"(seem|appear|include|#Gerund|#Copula)",reason:"det-inf"},{match:"#Noun #Actor",tag:"Actor",notIf:"#Person",reason:"thing-doer"},{match:"#Gerund #Actor",tag:"Actor",reason:"gerund-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"[#Noun+] #Actor",group:0,tag:"Actor",notIf:"#Honorific",reason:"air-traffic-controller"},{match:"(urban|cardiac|cardiovascular|respiratory|medical|clinical|visual|graphic|creative|dental|exotic|fine|certified|registered|technical|virtual|professional|amateur|junior|senior|special|pharmaceutical|theoretical)+ #Noun? #Actor",tag:"Actor",reason:"fine-artist"},{match:"#Noun+ (coach|chef|king|engineer|fellow|personality|boy|girl|man|woman)",tag:"Actor",reason:"dance-coach"},{match:"chief . officer",tag:"Actor",reason:"chief-x-officer"},{match:"chief of #Noun+",tag:"Actor",reason:"chief-of-police"},{match:"senior? vice? president of #Noun+",tag:"Actor",reason:"president-of"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]$",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense #Particle?",notIf:"(#Gerund|her)",tag:"Noun",reason:"possessive-verb"},{match:"(my|our|their|her|his|its) [(#Plural && #Actor)] #Noun",tag:"Possessive",reason:"my-dads"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"},{match:"i #Verb [me] #Noun",group:0,tag:"Possessive",reason:"scottish-me"},{match:"[#PresentTense] (music|class|lesson|night|party|festival|league|ceremony)",group:0,tag:"Noun",reason:"dance-music"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,ifNo:"#Copula",tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",notIf:"(still|even|just)",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"},{match:"#Singular for [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"noun-for-gerund"},{match:"#Comparative (for|at) [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"better-for-gerund"},{match:"#PresentTense the [#Gerund]",group:0,tag:"Noun",reason:"keep-the-touching"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner (only|further|just|more|backward) [#Infinitive]",group:0,tag:"Noun",reason:"the-only-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"#Plural on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb #Particle?]",notIf:"(#Copula|#Noun|sure|fun|up)",group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",notIf:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",notIf:"#Preposition",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",notIf:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"better",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",notIf:"(#Copula|better)",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"many-poses"},{match:"#Determiner #Adverb #Adjective [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Copula",reason:"very-big-dream"},{match:"from #Noun to [%Noun|Verb%]",group:0,tag:"Noun",reason:"start-to-finish"},{match:"(for|with|of) #Noun (and|or|not) [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Pronoun",reason:"for-food-and-gas"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #Particle #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense] of",group:0,notIf:"(one|1|#Copula|#Infinitive)",tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",notIf:"#Copula",reason:"our-full-support"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",notIf:"going",reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"},{match:"how to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"how-to-noun"},{match:"which [%Noun|Verb%] #Noun",group:0,tag:"Infinitive",reason:"which-boost-it"},{match:"#Gerund [%Plural|Verb%]",group:0,tag:"Plural",reason:"asking-questions"},{match:"(ready|available|difficult|hard|easy|made|attempt|try) to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"ready-to-noun"},{match:"(bring|went|go|drive|run|bike) to [%Noun|Verb%]",group:0,tag:"Noun",reason:"bring-to-noun"},{match:"#Modal #Noun [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"would-you-look"},{match:"#Copula just [#Infinitive]",group:0,tag:"Noun",reason:"is-just-spam"},{match:"^%Noun|Verb% %Plural|Verb%",tag:"Imperative #Plural",reason:"request-copies"},{match:"#Adjective #Plural and [%Plural|Verb%]",group:0,tag:"#Plural",reason:"pickles-and-drinks"},{match:"#Determiner #Year [#Verb]",group:0,tag:"Noun",reason:"the-1968-film"},{match:"#Determiner [#PhrasalVerb #Particle]",group:0,tag:"Noun",reason:"the-break-up"},{match:"#Determiner [%Adj|Noun%] #Noun",group:0,tag:"Adjective",notIf:"(#Pronoun|#Possessive|#ProperNoun)",reason:"the-individual-goals"},{match:"[%Noun|Verb%] or #Infinitive",group:0,tag:"Infinitive",reason:"work-or-prepare"},{match:"to #Infinitive [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|#Copula|help)",reason:"to-give-thanks"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"},{match:"^[#Value] (#Determiner|#Gerund)",group:0,tag:"Expression",unTag:"Value",reason:"numbered-list"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|brother|father|aunt|uncle|grandpa|grandfather|grandma) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",notIf:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",notIf:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[#Actor+] #Person",group:0,tag:"Person",reason:"baker-sam-smith"},{match:"[(lieutenant|corporal|sergeant|captain|qeen|king|admiral|major|colonel|marshal|president|queen|king)+] #ProperNoun",group:0,tag:"Honorific",reason:"seargeant-john"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:["Honorific","Person"],reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",notIf:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"#Honorific #Actor",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) #Actor",tag:"Honorific",reason:"first lady"},{match:"#Person #RomanNumeral",tag:"Person",reason:"louis-IV"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun",ifNo:"#Actor"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"},{match:"(#FirstName && !#Possessive) [#Singular] #Verb",group:0,safe:!0,tag:"LastName",reason:"jack-layton"},{match:"^[#Singular] #Person #Verb",group:0,safe:!0,tag:"Person",reason:"sherwood-anderson"},{match:"(a|an) [#Person]$",group:0,unTag:"Person",reason:"a-warhol"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:"#Date",group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",notIf:"(come|gotten)",reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(have|had) read",tag:"Modal #PastTense",reason:"read-read"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"},{match:"as #Pronoun [please]",group:0,tag:"Infinitive",reason:"as-we-please"},{match:"[(co|mis|de|inter|intra|pre|re|un|out|under|over|counter)] #Verb",group:0,tag:["Verb","Prefix"],notIf:"(#Copula|#PhrasalVerb)",reason:"co-write"},{match:"#PastTense and [%Adj|Past%]",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"[%Adj|Past%] and #PastTense",group:0,tag:"PastTense",reason:"dressed-and-left"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Copula [#Adjective] (well|badly|quickly|slowly)",group:0,tag:"Verb",reason:"done-well"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"a-bit-confused"},{match:"not be [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"do-not-be-confused"},{match:"#Copula just [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"is-just-right"},{match:"as [#Infinitive] as",group:0,tag:"Adjective",reason:"as-pale-as"},{match:"[%Adj|Past%] and #Adjective",group:0,tag:"Adjective",reason:"faled-and-oppressive"},{match:"or [#PastTense] #Noun",group:0,tag:"Adjective",notIf:"(#Copula|#Pronoun)",reason:"or-heightened-emotion"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"[(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"},{match:"[(been|had|became|came)] #PastTense",group:0,notIf:"#PhrasalVerb",tag:"Auxiliary",reason:"been-told"},{match:"[(being|having|getting)] #Verb",group:0,tag:"Auxiliary",reason:"being-born"},{match:"[be] #Gerund",group:0,tag:"Auxiliary",reason:"be-walking"},{match:"[better] #PresentTense",group:0,tag:"Modal",notIf:"(#Copula|#Gerund)",reason:"better-go"},{match:"even better",tag:"Adverb #Comparative",reason:"even-better"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",notIf:"#Copula",tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"#Verb (up|down|in|on|for)$",tag:"PhrasalVerb #Particle",notIf:"#PhrasalVerb",reason:"come-down$"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Qu,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Qu,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Qu,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",notIf:"(so|such|rather|enough)",reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|a|an|any|each|every|some|more|with|on)",group:0,notIf:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me|there)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^[#Infinitive] (#Adjective|#Adverb)? and #Infinitive",group:0,tag:"Imperative",reason:"call-and-reserve"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^come #Infinitive",tag:"Imperative",notIf:"on",reason:"come-have"},{match:"^come and? #Infinitive",tag:"Imperative . Imperative",notIf:"#PhrasalVerb",reason:"come-and-have"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[(stay|be|keep)] #Adjective",group:0,tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"},{match:"[#Infinitive] what .",group:0,tag:"Imperative",reason:"look-what"},{match:"^[#Infinitive] #Gerund",group:0,tag:"Imperative",reason:"keep-playing"},{match:"^[#Infinitive] (to|for|into|toward|here|there)",group:0,tag:"Imperative",reason:"go-to"},{match:"^[#Infinitive] (and|or) #Infinitive",group:0,tag:"Imperative",reason:"inf-and-inf"},{match:"^[%Noun|Verb%] to",group:0,tag:"Imperative",reason:"commit-to"},{match:"^[#Infinitive] #Adjective? #Singular #Singular",group:0,tag:"Imperative",reason:"maintain-eye-contact"},{match:"do not (forget|omit|neglect) to [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-forget"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"},{match:"#Gerund [#Gerund] #Plural",group:0,tag:"Adjective",reason:"hard-working-fam"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"[right] (before|after|in|into|to|toward)",group:0,tag:"#Adverb",reason:"right-into"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"(are|#Modal|see|do|for) [ya]",group:0,tag:"Pronoun",reason:"are-ya"},{match:"[long live] .",group:0,tag:"#Adjective #Infinitive",reason:"long-live"},{match:"[plenty] of",group:0,tag:"#Uncountable",reason:"plenty-of"},{match:"(always|nearly|barely|practically) [there]",group:0,tag:"Adjective",reason:"always-there"},{match:"[there] (#Adverb|#Pronoun)? #Copula",group:0,tag:"There",reason:"there-is"},{match:"#Copula [there] .",group:0,tag:"There",reason:"is-there"},{match:"#Modal #Adverb? [there]",group:0,tag:"There",reason:"should-there"},{match:"^[do] (you|we|they)",group:0,tag:"QuestionWord",reason:"do-you"},{match:"^[does] (he|she|it|#ProperNoun)",group:0,tag:"QuestionWord",reason:"does-he"},{match:"a [while]",group:0,tag:"Noun",reason:"a-while"},{match:"guess who",tag:"#Infinitive #QuestionWord",reason:"guess-who"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"a #Noun [like] (#Noun|#Determiner)",group:0,tag:"Preposition",reason:"a-noun-like"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Infinitive #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}],[{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^[(well|so|okay|now)] !#Adjective?",group:0,tag:"Expression",reason:"well-"},{match:"^come on",tag:"Expression",reason:"come-on"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"^(ok|alright|shoot|hell|anyways)",tag:"Expression",reason:"ok-"},{match:"^(say && @hasComma)",tag:"Expression",reason:"say-"},{match:"^(like && @hasComma)",tag:"Expression",reason:"like-"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}]),Yu=null;var Zu={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Yu=Yu||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep(Yu),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const Xu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Zu,model:{two:{matches:_u}},hooks:["postTagger"]};var ec=Xu,tc=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))},nc=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=tc(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},rc={lib:{lazy:nc}},ac=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e},oc=function(e,t,n){let r=e.split(/ /g).map((e=>`{${e}}`)).join(" "),a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?ac(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model)),e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this},ic={api:function(e){e.prototype.swap=oc}};v.plugin(Eu),v.plugin(Ru),v.plugin(ec),v.plugin(rc),v.plugin(ic);var sc=function(e){let t=this;return t=function(e){let t=e.parentheses();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.quotations();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.match("@hasComma");return t=t.filter((e=>{if(1===e.growLeft(".").wordCount())return!1;if(1===e.growRight(". .").wordCount())return!1;let t=e.grow(".");return t=t.ifNo("@hasComma @hasComma"),t=t.ifNo("@hasComma (and|or) ."),t=t.ifNo("(#City && @hasComma) #Country"),t=t.ifNo("(#WeekDay && @hasComma) #Date"),t=t.ifNo("(#Date+ && @hasComma) #Value"),t=t.ifNo("(#Adjective && @hasComma) #Adjective"),t.found})),e.splitAfter(t)}(t),t=t.splitAfter("(@hasEllipses|@hasSemicolon|@hasDash|@hasColon)"),t=t.splitAfter("^#Pronoun (said|says)"),t=t.splitBefore("(said|says) #ProperNoun$"),t=t.splitBefore(". . if .{4}"),t=t.splitBefore("and while"),t=t.splitBefore("now that"),t=t.splitBefore("ever since"),t=t.splitBefore("(supposing|although)"),t=t.splitBefore("even (while|if|though)"),t=t.splitBefore("(whereas|whose)"),t=t.splitBefore("as (though|if)"),t=t.splitBefore("(til|until)"),"number"==typeof e&&(t=t.get(e)),t},lc=function(e){let t=[],n=null,r=null;e.docs.forEach((e=>{e.forEach((e=>{e.chunk!==r&&(n&&(n[2]=e.index[1],t.push(n)),r=e.chunk,n=[e.index[0],e.index[1]])}))})),n&&t.push(n);let a=e.update(t);return a=a.map((e=>e.has("")?e.nouns():e)),a},uc=function(e){class Chunks extends e{constructor(e,t,n){super(e,t,n),this.viewType="Chunks"}isVerb(){return this.filter((e=>e.has("")))}isNoun(){return this.filter((e=>e.has("")))}isAdjective(){return this.filter((e=>e.has("")))}isPivot(){return this.filter((e=>e.has("")))}debug(){return this.toView().debug("chunks"),this}update(e){let t=new Chunks(this.document,e);return t._cache=this._cache,t}}e.prototype.chunks=function(e){let t=lc(this);return t=t.getNth(e),new Chunks(this.document,t.pointer)},e.prototype.clauses=sc};const cc={this:"Noun",then:"Pivot"};var hc=function(e){for(let t=0;t",group:0,chunk:"Verb"},{match:"#Noun of #Determiner? #Noun",chunk:"Noun"},{match:"#Value+ #Adverb? #Adjective",chunk:"Noun"},{match:"the [#Adjective] #Noun",chunk:"Noun"},{match:"#Singular in #Determiner? #Singular",chunk:"Noun"},{match:"#Plural [in] #Determiner? #Noun",group:0,chunk:"Pivot"},{match:"#Noun and #Determiner? #Noun",notIf:"(#Possessive|#Pronoun)",chunk:"Noun"}];let pc=null;var mc=function(e,t,n){const{methods:r}=n;pc=pc||r.one.buildNet(gc,n),e.sweep(pc)};const fc=function(e,t){if(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_CHUNKS){let n=(e.normal+"'").padEnd(8);console.log(` | '${n} → [34m${t.padEnd(12)}[0m [2m -fallback- [0m`)}e.chunk=t};var vc=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){const t=e.terms.find((e=>e.tags.has("Verb")));t||e.terms.forEach((e=>e.chunk=null))}}))},yc={chunks:function(e){const{document:t,world:n}=e;hc(t),dc(t),mc(e,t,n),vc(t),bc(t)}},wc={compute:yc,api:uc,hooks:["chunks"]};const kc=/\./g;var Pc=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(kc,""),e.normal=e.normal.replace(kc,"")}))})),this}addPeriods(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(kc,""),e.normal=e.normal.replace(kc,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."}))})),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=t.getNth(e),new Acronyms(t.document,t.pointer)}};const Ac=function(e){const{fromComparative:t,fromSuperlative:n}=e.methods.two.transform.adjective;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var Ic=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{toAdverb:t,toNoun:n,toSuperlative:r,toComparative:a}=this.methods.two.transform.adjective;return e.normal=!0,this.map((o=>{let i=o.toView().json(e)[0]||{},s=Ac(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i}),[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(e){const{toComparative:t,toSuperlative:n,toNoun:r,toAdverb:a}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let o=Ac(e);return{Adjective:o,Comparative:t(o,this.model),Superlative:n(o,this.model),Noun:r(o,this.model),Adverb:a(o,this.model)}}),[])}toComparative(e){const{toComparative:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Ac(e),r=t(n,this.model);return e.replaceWith(r)}))}toSuperlative(e){const{toSuperlative:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Ac(e),r=t(n,this.model);return e.replaceWith(r)}))}toAdverb(e){const{toAdverb:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Ac(e),r=t(n,this.model);return e.replaceWith(r)}))}toNoun(e){const{toNoun:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Ac(e),r=t(n,this.model);return e.replaceWith(r)}))}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=t.getNth(e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=t.getNth(e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=t.getNth(e),new Adjectives(t.document,t.pointer)}},Nc=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.adjective.fromAdverb;return e.normal=!0,this.map((n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r}),[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=t.getNth(e),new Adverbs(t.document,t.pointer)}};const jc=/\(/,xc=/\)/,Ec=function(e,t){for(;t{e[0].pre=e[0].pre.replace(jc,"");let t=e[e.length-1];t.post=t.post.replace(xc,"")})),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n{e.forEach((e=>{e.text=e.text.replace(Cc,""),e.normal=e.normal.replace(Cc,"")}))})),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=t.getNth(e),new Possessives(t.document,t.pointer)}};const Oc={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Vc=RegExp("("+Object.keys(Oc).join("|")+")"),Fc=RegExp("("+Object.values(Oc).join("|")+")"),Gc=function(e,t){const n=e[t].pre.match(Vc)[0]||"";if(!n||!Oc[n])return null;const r=Oc[n];for(;t{e[0].pre=e[0].pre.replace(Vc,"");let t=e[e.length-1];t.post=t.post.replace(Fc,"")}))}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}})),e.prototype.phoneNumbers=zc,Lc.forEach((t=>{e.prototype[t[0]]=e.prototype[t[1]]}))},Mc={api:function(e){Pc(e),Ic(e),Nc(e),Tc(e),Dc(e),Bc(e),Sc(e)}};const Hc=function(e,t){e.docs.forEach((e=>{e.forEach(t)}))};var Jc={case:e=>{Hc(e,(e=>{e.text=e.text.toLowerCase()}))},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;Hc(e,(e=>e.text=n(e.text,t)))},whitespace:e=>{Hc(e,(e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")}))},punctuation:e=>{Hc(e,(e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")}));let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const Wc=e=>e.split("|").reduce(((e,t)=>(e[t]=!0,e)),{}),Kc="unicode|punctuation|whitespace|acronyms",qc="|case|contractions|parentheses|quotations|emoji|honorifics",Uc={light:Wc(Kc),medium:Wc(Kc+qc),heavy:Wc(Kc+qc+"|possessives|adverbs|nouns|verbs")};var Rc={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=Uc[e]),Object.keys(e).forEach((t=>{Jc.hasOwnProperty(t)&&Jc[t](this,e[t])})),this}}},Qc=function(e){let t=e.clauses().match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they|i)"),t=t.splitOn("(#Noun|#Adjective) [(he|him|she|it)]",0),t=t.splitOn("[(he|him|she|it)] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.splitBefore("(our|my|their|your)"),t=t.splitOn("#Noun [#Determiner]",0),t=t.if("#Noun"),t};const _c=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var Yc=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t<_c.length;t+=1)if(e.has(_c[t]))return!0;return!1},Zc=function(e,t){if(e.has("#Plural"))return!0;if(e.has("#Noun and #Noun"))return!0;if(e.has("(we|they)"))return!0;if(!0===t.has("(#Pronoun|#Place|#Value|#Person|#Uncountable|#Month|#WeekDay|#Holiday|#Possessive)"))return!1;if(e.has("#Singular"))return!1;let n=t.text("normal");return n.length>3&&n.endsWith("s")&&!n.endsWith("ss")},Xc=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t=t.first(),t.found?t:e}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Zc(e,t),isSubordinate:Yc(e),root:t}};const eh=e=>e.text(),th=e=>e.json({terms:!1,normal:!0}).map((e=>e.normal)),nh=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var rh=function(e){let t=Xc(e);return{root:eh(t.root),number:nh(t.number),determiner:eh(t.determiner),adjectives:th(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const ah={tags:!0};var oh=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun|#Acronym)+$")}(t))return e;const{methods:n,model:r}=e.world,{toPlural:a}=n.two.transform.noun;let o=a(t.root.text({keepPunct:!1}),r);e.match(t.root).replaceWith(o,ah).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.remove(t.determiner);let i=t.root.after("not? #Adverb+? [#Copula]",0);return i.found&&(i.has("is")?e.replace(i,"are"):i.has("was")&&e.replace(i,"were")),e};const ih={tags:!0};var sh=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{toSingular:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,ih).tag("Singular","toPlural"),e},lh=function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return this.getNth(e).map(Xc)}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0]||{};return t&&!0!==t.noun&&(n.noun=rh(e)),n}),[])}isPlural(e){let t=this.filter((e=>Xc(e).isPlural));return t.getNth(e)}isSingular(e){let t=this.filter((e=>!Xc(e).isPlural));return t.getNth(e)}adjectives(e){let t=this.update([]);return this.forEach((e=>{let n=Xc(e).adjectives;n.found&&(t=t.concat(n))})),t.getNth(e)}toPlural(e){return this.getNth(e).map((e=>oh(e,Xc(e))))}toSingular(e){return this.getNth(e).map((e=>{let t=Xc(e);return sh(e,t)}))}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Qc(this);return t=t.getNth(e),new Nouns(this.document,t.pointer)}},uh={api:lh},ch=function(e,t){let n=e.match("#Fraction+");return n=n.filter((e=>!e.lookBehind("#Value and$").found)),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n},hh=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(dh.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(dh.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(dh.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},ph=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const fh=/^([0-9,. ]+)\/([0-9,. ]+)$/,vh={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},bh=e=>Object.keys(e).reduce(((t,n)=>t+=e[n]),0);var yh=function(e){if(!0===vh.hasOwnProperty(e))return vh[e];if("a"===e||"an"===e)return 1;const t=hh(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=kh(n),r=kh(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:kh(n);let a=r.text("reduced");return wh.test(a)&&(a=a.replace(wh,""),r=r.replaceWith(a)),r=Ph.hasOwnProperty(a)?Ph[a]:kh(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:kh(t)}:null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t},Ih=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const Nh=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],jh=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],xh=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],Eh=function(e){let t=[];if(e>100)return t;for(let n=0;n=Nh[n][1]&&(e-=Nh[n][1],t.push(Nh[n][0]));return jh[e]&&t.push(jh[e]),t};var Th=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Ih(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return xh.forEach((r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}})),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(Eh(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=Ih(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee)),0===n.length&&(n[0]=""),n.join(" ")},Ch=function(e){return e.numerator&&e.denominator?`${Th({num:e.numerator})} out of ${Th({num:e.denominator})}`:""};const Dh={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var Oh=e=>{let t=Th(e).split(" "),n=t[t.length-1];return Dh.hasOwnProperty(n)?t[t.length-1]=Dh[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},Vh=function(e){if(!e.numerator||!e.denominator)return"";let t=Th({num:e.numerator}),n=Oh({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""},Fh=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return this.getNth(e).map(Ah)}get(e){return this.getNth(e).map(Ah)}json(e){return this.getNth(e).map((t=>{let n=t.toView().json(e)[0],r=Ah(t);return n.fraction=r,n}),[])}toDecimal(e){return this.getNth(e).forEach((e=>{let{decimal:t}=Ah(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")})),this}toFraction(e){return this.getNth(e).forEach((e=>{let t=Ah(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}})),this}toOrdinal(e){return this.getNth(e).forEach((e=>{let t=Ah(e),n=Vh(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)})),this}toCardinal(e){return this.getNth(e).forEach((e=>{let t=Ah(e),n=Ch(t);e.replaceWith(n)})),this}toPercentage(e){return this.getNth(e).forEach((e=>{let{decimal:t}=Ah(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(`${n}%`)})),this}}e.prototype.fractions=function(e){let t=ch(this);return t=t.getNth(e),new Fractions(this.document,t.pointer)}};const Gh="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var Bh=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+Gh+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+Gh+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+Gh+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+Gh+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${Gh})`),r=e.has("("+Gh+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach((e=>{t=t.splitOn(e)}))}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+Gh+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+Gh+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},zh=function(e){if("string"==typeof e)return{num:yh(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=Ah(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=yh(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}},$h=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=Ih(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const Lh={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},Sh={"%":"percent","°":"degrees"};var Mh=function(e){let t={suffix:"",prefix:e.prefix};return Lh.hasOwnProperty(e.prefix)&&(t.suffix+=" "+Lh[e.prefix],t.prefix=""),Sh.hasOwnProperty(e.suffix)&&(t.suffix+=" "+Sh[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},Hh=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=Mh(e);return t+Oh(e)+n}if("Ordinal"===t)return e.prefix+$h(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=Mh(e);return t+Th(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix},Jh=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return this.getNth(e).map(zh)}get(e){return this.getNth(e).map(zh).map((e=>e.num))}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0],r=zh(e);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n}),[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach((e=>{let t=zh(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=Hh(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")})),this}toLocaleString(){return this.forEach((e=>{let t=zh(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=Hh(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})})),this}toText(){let e=this.map((e=>{if(e.has("#TextValue"))return e;let t=zh(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=Hh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e}));return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map((e=>{if(!e.has("#Ordinal"))return e;let t=zh(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=Hh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e}));return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map((e=>{if(e.has("#Ordinal"))return e;let t=zh(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=Hh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e}));return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter((t=>zh(t).num===e))}greaterThan(e){return this.filter((t=>zh(t).num>e))}lessThan(e){return this.filter((t=>zh(t).num{let r=zh(n).num;return r>e&&r{let n=zh(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Hh(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=zh(e).num);let t=this.map((t=>{let n=zh(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Hh(n,r);return t.replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=Bh(this);return t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=Bh(this);return t=t.filter((e=>e.has("#Percent")||e.after("^percent"))),t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=Bh(this);return t=t.filter((e=>e.has("#Money")||e.after("^#Currency"))),t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},Wh={api:function(e){Fh(e),Jh(e)}};const Kh={people:!0,emails:!0,phoneNumbers:!0,places:!0},qh=function(e={}){return!1!==(e=Object.assign({},Kh,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this},Uh={api:function(e){e.prototype.redact=qh}};var Rh=Uh,Qh=function(e){const t=/\?/,{document:n}=e;return e.filter((e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))}))},_h=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))};const Yh=function(e){let t=null;return e.has("#PastTense")?t="PastTense":e.has("#FutureTense")?t="FutureTense":e.has("#PresentTense")&&(t="PresentTense"),{tense:t}};var Zh=function(e){let t=e.clauses(),n=_h(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach(((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e})),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o,grammar:Yh(a)}},Xh=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e},ed=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e},td=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let e=t.filter((e=>!(e.lookBehind("to$").found||!e.has("#Copula #Gerund")&&(e.has("#Gerund")||!e.has("#Copula")&&e.has("#PresentTense")&&!e.has("#Infinitive")&&e.lookBefore("(he|she|it|that|which)$").found))));e.found&&e.forEach((e=>{if(e.has("#Copula"))return e.match("was").replaceWith("is"),void e.match("is").replaceWith("will be");e.toInfinitive()}))}return e},nd=function(e){return e.verbs().toInfinitive(),e},rd=function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o,grammar:i}=Zh(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal"),grammar:i},n}),[])}toPastTense(e){return this.getNth(e).map((e=>(Zh(e),Xh(e))))}toPresentTense(e){return this.getNth(e).map((e=>(Zh(e),ed(e))))}toFutureTense(e){return this.getNth(e).map((e=>(Zh(e),e=td(e))))}toInfinitive(e){return this.getNth(e).map((e=>(Zh(e),nd(e))))}toNegative(e){return this.getNth(e).map((e=>(Zh(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e))))}toPositive(e){return this.getNth(e).map((e=>(Zh(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e))))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter((e=>e.lastTerm().has("@hasExclamation")));return t.getNth(e)}isStatement(e){let t=this.filter((e=>!e.isExclamation().found&&!e.isQuestion().found));return t.getNth(e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map((e=>e.fullSentence()));return t=t.getNth(e),new Sentences(this.document,t.pointer)},questions:function(e){return Qh(this).getNth(e)}};Object.assign(e.prototype,t)},ad={api:rd},od=function(e){return e.match("#Honorific+? #Person+")},id=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const sd="male",ld="female",ud={mr:sd,mrs:ld,miss:ld,madam:ld,king:sd,queen:ld,duke:sd,duchess:ld,baron:sd,baroness:ld,count:sd,countess:ld,prince:sd,princess:ld,sire:sd,dame:ld,lady:ld,ayatullah:sd,congressman:sd,congresswoman:ld,"first lady":ld,mx:null};var cd=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return ld;if(n.has("#MaleName"))return sd;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),ud.hasOwnProperty(e))return ud[e];if(/^her /.test(e))return ld;if(/^his /.test(e))return sd}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return sd;if(n&&!t)return ld}return null},hd=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return this.getNth(e).map(id)}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0],r=id(e);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:cd(r,e)},n}),[])}presumedMale(){return this.filter((e=>e.has("(#MaleName|mr|mister|sr|jr|king|pope|prince|sir)")))}presumedFemale(){return this.filter((e=>e.has("(#FemaleName|mrs|miss|queen|princess|madam)")))}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=od(this);return t=t.getNth(e),new People(this.document,t.pointer)}},dd=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter((e=>!!e.has("(asia|africa|europe|america)$")||!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found)),t=t.splitAfter(n),t},gd=function(e){e.prototype.places=function(t){let n=dd(this);return n=n.getNth(t),new e(this.document,n.pointer)}},pd=function(e){e.prototype.organizations=function(e){return this.match("#Organization+").getNth(e)}};const md=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=n.getNth(e),n};var fd=function(e){e.prototype.topics=md},vd={api:function(e){hd(e),gd(e),pd(e),fd(e)}},bd=function(e){let t=e.match("");return t=t.not("(#Conjunction && !to)"),t=t.not("#Preposition"),t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0),t=t.not("#Reflexive$"),t=t.splitAfter("[#PastTense] #PastTense",0),t=t.splitAfter("[#PastTense] #Auxiliary+ #PastTense",0),t=t.splitAfter("#Copula [#Gerund] #PastTense",0),t=t.if("#Verb"),t.has("(#Verb && !#Auxiliary) #Adverb+? #Copula")&&(t=t.splitBefore("#Copula")),t},yd=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t},wd=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const kd=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},Pd=function(e){return e.match("#Negative")},Ad=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Id=function(e){let t=e.clone();t.contractions().expand();const n=yd(t);return{root:n,prefix:t.match("#Prefix"),adverbs:wd(t,n),auxiliary:kd(t,n),negative:Pd(t),phrasal:Ad(n)}};const Nd={tense:"PresentTense"},jd={conditional:!0},xd={tense:"FutureTense"},Ed={progressive:!0},Td={tense:"PastTense"},Cd={complete:!0,progressive:!1},Dd={passive:!0},Od=function(e){let t={};return e.forEach((e=>{Object.assign(t,e)})),t},Vd={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Nd]],["^wanted to #Infinitive$",[Td]],["^will want to #Infinitive$",[xd]]],"gerund-phrase":[["^#PastTense #Gerund$",[Td]],["^#PresentTense #Gerund$",[Nd]],["^#Infinitive #Gerund$",[Nd]],["^will #Infinitive #Gerund$",[xd]],["^have #PastTense #Gerund$",[Td]],["^will have #PastTense #Gerund$",[Td]]],"simple-present":[["^#PresentTense$",[Nd]],["^#Infinitive$",[Nd]]],"simple-past":[["^#PastTense$",[Td]]],"simple-future":[["^will #Adverb? #Infinitive",[xd]]],"present-progressive":[["^(is|are|am) #Gerund$",[Nd,Ed]]],"past-progressive":[["^(was|were) #Gerund$",[Td,Ed]]],"future-progressive":[["^will be #Gerund$",[xd,Ed]]],"present-perfect":[["^(has|have) #PastTense$",[Td,Cd]]],"past-perfect":[["^had #PastTense$",[Td,Cd]],["^had #PastTense to #Infinitive",[Td,Cd]]],"future-perfect":[["^will have #PastTense$",[xd,Cd]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Td,Ed]]],"past-perfect-progressive":[["^had been #Gerund$",[Td,Ed]]],"future-perfect-progressive":[["^will have been #Gerund$",[xd,Ed]]],"passive-past":[["(got|were|was) #Passive",[Td,Dd]],["^(was|were) being #Passive",[Td,Dd]],["^(had|have) been #Passive",[Td,Dd]]],"passive-present":[["^(is|are|am) #Passive",[Nd,Dd]],["^(is|are|am) being #Passive",[Nd,Dd]],["^has been #Passive",[Nd,Dd]]],"passive-future":[["will have been #Passive",[xd,Dd,jd]],["will be being? #Passive",[xd,Dd,jd]]],"present-conditional":[["would be #PastTense",[Nd,jd]]],"past-conditional":[["would have been #PastTense",[Td,jd]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[xd]]],"auxiliary-past":[["^did #Infinitive$",[Td,{plural:!1}]],["^used to #Infinitive$",[Td,Cd]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Nd,Cd,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Td]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let Fd=[];Object.keys(Vd).map((e=>{Vd[e].forEach((t=>{Fd.push({name:e,match:t[0],data:Od(t[1])})}))}));var Gd=Fd,Bd=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb")))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),zd(r)&&(n.remove(r),r=n.last()),zd(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:$d(t,e)}};const Sd=e=>e,Md=(e,t)=>{let n=Ld(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Hd=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Ld(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Jd=function(e,t){let n=Ld(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Wd=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},Kd=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Wd(e)),r&&e.replace(t.root,r),e},qd=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),Ud=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map((e=>e.normal)):[]},Rd=function(e){return e&&e.isView?e.text("normal"):""},Qd=function(e){const{toInfinitive:t}=e.methods.two.transform.verb;return t(e.text("normal"),e.model,Wd(e))};var _d=function(e){let t=Id(e);e=e.clone().toView();const n=Bd(e,t);return{root:t.root.text(),preAdverbs:Ud(t.adverbs.pre),postAdverbs:Ud(t.adverbs.post),auxiliary:Rd(t.auxiliary),negative:t.negative.found,prefix:Rd(t.prefix),infinitive:Qd(t.root),grammar:n}};const Yd={tags:!0};var Zd=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Wd(r)),i&&e.replace(r,i,Yd).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Jd(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Xd={tags:!0},eg={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Wd(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Ld(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Xd),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=eg.simple(e,t),e=eg.noAux(e,t))},hasHad:e=>(e.replace("has","had",Xd),e),hasParticiple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Wd(a)),n(o,e.model).Participle}},tg={infinitive:eg.simple,"simple-present":eg.simple,"simple-past":Sd,"simple-future":eg.both,"present-progressive":e=>(e.replace("are","were",Xd),e.replace("(is|are|am)","was",Xd),e),"past-progressive":Sd,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":eg.hasHad,"past-perfect":Sd,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=qd(e)),e.remove("have"),e),"present-perfect-progressive":eg.hasHad,"past-perfect-progressive":Sd,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Xd),e),"passive-past":e=>(e.replace("have","had",Xd),e),"passive-present":e=>(e.replace("(is|are)","was",Xd),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",Xd),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Sd,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Xd),e),"auxiliary-past":Sd,"auxiliary-present":e=>(e.replace("(do|does)","did",Xd),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Xd):(eg.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Sd,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Xd),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),eg.simple(e,t),qd(e),e)};var ng=function(e,t,n){return tg.hasOwnProperty(n)?((e=tg[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const rg={tags:!0},ag=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Wd(a)),!1===Md(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Hd(e)),o&&(e=e.replace(a,o,rg)).not("#Particle").tag("PresentTense"),e},og=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Wd(a)),!1===Md(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,rg)).not("#Particle").tag("Gerund"),e},ig={infinitive:ag,"simple-present":(e,t)=>{const{conjugate:n}=e.methods.two.transform.verb;let{root:r}=t;if(!r.has("#Infinitive"))return ag(e,t);{let t=Ld(e).subject;if(Md(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,rg)}return e},"simple-past":ag,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Hd(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else ag(e,t),e=e.remove("will");return e},"present-progressive":Sd,"past-progressive":(e,t)=>{let n=Hd(e);return e.replace("(were|was)",n,rg)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(ag(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Ld(e).subject;return Md(e)||n.has("i")?((e=Kd(e,t)).remove("had"),e):(e.replace("had","has",rg),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Sd,"past-perfect-progressive":e=>e.replace("had","has",rg),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Hd(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,rg),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Sd,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Sd,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(og(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=Jd(e);return e.replace(t.auxiliary,n),e}return og(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Sd,"modal-infinitive":Sd,"modal-past":(e,t)=>(((e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Wd(r)),a&&(e=e.replace(t.root,a,rg))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),ag(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Md(e)&&(n="want"),e.replace("(want|wanted|wants)",n,rg),e.remove("will"),e}};var sg=function(e,t,n){return ig.hasOwnProperty(n)?((e=ig[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const lg={tags:!0},ug=(e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Wd(r)),o&&(e=e.replace(r,o,lg)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},cg=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Wd(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,lg),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},hg={infinitive:ug,"simple-present":ug,"simple-past":ug,"simple-future":Sd,"present-progressive":cg,"past-progressive":cg,"future-progressive":Sd,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Sd,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Sd,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":Sd,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Sd,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":Sd,"modal-past":Sd,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),ug(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var dg=function(e,t,n){return e.has("will")||e.has("going to")?e:hg.hasOwnProperty(n)?((e=hg[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const gg={tags:!0};var pg=function(e,t){const{toInfinitive:n,conjugate:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Wd(a));let s=r(i,e.model).Gerund;return s&&(s=`${Hd(e)} ${s}`,e.replace(a,s,gg)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const mg={tags:!0},fg=function(e,t){let n=Jd(e);return e.prepend(n+" not"),e},vg=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},bg=e=>e.has("(is|was|am|are|will|were|be)"),yg={"simple-present":(e,t)=>!0===bg(e)?vg(e):(e=Kd(e,t),e=fg(e)),"simple-past":(e,t)=>!0===bg(e)?vg(e):((e=Kd(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===bg(e)?vg(e):fg(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",mg),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=fg(e)).replace("wants","want",mg)};var wg=function(e,t,n){if(e.has("#Negative"))return e;if(yg.hasOwnProperty(n))return e=yg[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===bg(e)?vg(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)},kg=function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return this.getNth(e).map(Id)}json(e,t){let n=this.getNth(t).map((t=>{let n=t.toView().json(e)[0]||{};return n.verb=_d(t),n}),[]);return n}subjects(e){return this.getNth(e).map((e=>(Id(e),Ld(e).subject)))}adverbs(e){return this.getNth(e).map((e=>e.match("#Adverb")))}isSingular(e){return this.getNth(e).filter((e=>!0!==Ld(e).plural))}isPlural(e){return this.getNth(e).filter((e=>!0===Ld(e).plural))}isImperative(e){return this.getNth(e).filter((e=>e.has("#Imperative")))}toInfinitive(e){return this.getNth(e).map((e=>{let t=Id(e),n=Bd(e,t);return Zd(e,t,n.form)}))}toPresentTense(e){return this.getNth(e).map((e=>{let t=Id(e),n=Bd(e,t);return sg(e,t,n.form)}))}toPastTense(e){return this.getNth(e).map((e=>{let t=Id(e),n=Bd(e,t);return ng(e,t,n.form)}))}toFutureTense(e){return this.getNth(e).map((e=>{let t=Id(e),n=Bd(e,t);return dg(e,t,n.form)}))}toGerund(e){return this.getNth(e).map((e=>{let t=Id(e),n=Bd(e,t);return pg(e,t,n.form)}))}conjugate(e){return this.getNth(e).map((e=>{let t=Id(e),n=Bd(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:Zd(e.clone(),t,n.form).text("normal"),PastTense:ng(e.clone(),t,n.form).text("normal"),PresentTense:sg(e.clone(),t,n.form).text("normal"),FutureTense:dg(e.clone(),t,n.form).text("normal")}}),[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return this.getNth(e).map((e=>{let t=Id(e),n=Bd(e,t);return wg(e,t,n.form)}))}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=bd(this);return t=t.getNth(e),new Verbs(this.document,t.pointer)}},Pg={api:kg};const Ag=function(e,t){let n=t.match(e);if(n.found){let e=n.pronouns().refersTo();if(e.found)return e}return t.none()},Ig=function(e){if(!e.found)return e;let[t]=e.fullPointer[0];return t&&t>0?e.update([[t-1]]):e.none()};var Ng=function(e,t){let n=e.people();return n=function(e,t){return"m"===t?e.filter((e=>!e.presumedFemale().found)):"f"===t?e.filter((e=>!e.presumedMale().found)):e}(n,t),n.found?n.last():(n=e.nouns("#Actor"),n.found?n.last():"f"===t?Ag("(she|her|hers)",e):"m"===t?Ag("(he|him|his)",e):e.none())},jg=function(e){let t=e.nouns(),n=t.isPlural().notIf("#Pronoun");if(n.found)return n.last();let r=Ag("(they|their|theirs)",e);return r.found?r:(n=t.match("(somebody|nobody|everybody|anybody|someone|noone|everyone|anyone)"),n.found?n.last():e.none())};const xg=function(e,t){let n=e.before(),r=t(n);return r.found?r:(n=Ig(e),r=t(n),r.found?r:(n=Ig(n),r=t(n),r.found?r:e.none()))};var Eg=function(e){e.pronouns().if("(he|him|his|she|her|hers|they|their|theirs|it|its)").forEach((e=>{let t=null;e.has("(he|him|his)")?t=xg(e,(e=>Ng(e,"m"))):e.has("(she|her|hers)")?t=xg(e,(e=>Ng(e,"f"))):e.has("(they|their|theirs)")&&(t=xg(e,jg)),t&&t.found&&function(e,t){t&&t.found&&(e.docs[0][0].reference=t.ptrs[0])}(e,t)}))},Tg=function(e){class Pronouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Pronouns"}hasReference(){return this.compute("coreference"),this.filter((e=>e.docs[0][0].reference))}refersTo(){return this.compute("coreference"),this.map((e=>{if(!e.found)return e.none();let t=e.docs[0][0];return t.reference?e.update([t.reference]):e.none()}))}update(e){let t=new Pronouns(this.document,e);return t._cache=this._cache,t}}e.prototype.pronouns=function(e){let t=this.match("#Pronoun");return t=t.getNth(e),new Pronouns(t.document,t.pointer)}},Cg={compute:{coreference:Eg},api:Tg};return v.plugin(wc),v.plugin(Cg),v.plugin(Mc),v.plugin(Rc),v.plugin(uh),v.plugin(Wh),v.plugin(Rh),v.plugin(ad),v.plugin(vd),v.plugin(Pg),v},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t();
+var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t,r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)},isFull:function(){let e=this.pointer;if(!e)return!0;let t=this.document;for(let n=0;no)return!1}return!0},getNth:function(e){return"number"==typeof e?this.eq(e):"string"==typeof e?this.if(e):this}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.ex[e]=t[e].pastTense),n.fromPast&&(n.fromPast.ex[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.ex[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.ex[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.ex[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.ex[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.ex[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.ex[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.ex[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.ex[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var p=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e)return new t(r.one.tokenize.fromString(e,n));if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let m=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=p(e,l,m);return e&&n.compute(m.hooks),n};Object.defineProperty(f,"_world",{value:m,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=p(e,l,m);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.9.0";var v=f,b=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},N=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},j=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},I=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?N(n):(N(n),N([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!P(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||P(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,(e=>e.toLowerCase())))}(e,o,n),A(e,o,n)};let x=0;const E=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var C=function(e){let[t,n]=e.index||[0,0];x+=1,x=x>46655?0:x,t=t>46655?0:t,n=n>1294?0:n;let r=E(x.toString(36));r+=E(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const T=function(e){e.has("@hasContraction")&&"function"==typeof e.contractions&&e.grow("@hasContraction").contractions().expand()},D=e=>"[object Array]"===Object.prototype.toString.call(e),O=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:D(e)?D(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=C(e),e)))}(d),n?(T(t.update([u]).firstTerm()),I(h,u,d,r)):(T(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);let a=r.docs[0],o=t.possessives&&a[a.length-1].tags.has("Possessive");e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(G,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let i=this.update(n);n=n.map((e=>e.slice(0,3)));let s=(i.docs[0]||[]).map((e=>Array.from(e.tags)));if("string"==typeof e&&(e=this.fromText(e).compute("id")),r.insertAfter(e),i.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(i),o){let e=r.docs[0],t=e[e.length-1];t.tags.has("Possessive")||(t.text+="'s",t.normal+="'s",t.tags.add("Possessive"))}let l=r.toView(n).compute(["index","lexicon"]);return l.world.compute.preTagger&&l.compute("preTagger"),t.tags&&l.terms().forEach(((e,t)=>{e.tagSafe(s[t])})),t.case&&l.docs[0]&&l.docs[0][0]&&0===l.docs[0][0].index[1]&&(l.docs[0][0].text=l.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),l},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?(this.soften(),r.replaceWith(t,n)):this}};var z=B,H=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const L={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e));let a=!n.ptrs;r.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction").contractions().expand();let o=n.fullPointer,i=r.fullPointer.reverse(),s=H(this.document,i);return o=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(o,t(i)),n.ptrs=o,n.document=s,n.compute("index"),a&&(n.ptrs=void 0),e?n.toView(o):(this.ptrs=[],n.none())}};L.delete=L.remove;var $=L;const S={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};S.deHyphenate=S.dehyphenate,S.toQuotation=S.toQuotations;var M=S,J={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),q=new Set(["freq","frequency","topk","repeats"]),K=new Set(["alpha","alphabetical"]);var R={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return W.has(e)&&(e="sequential"),K.has(e)&&(e="alpha"),q.has(e)?(a=J.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof J[e]?(a=a.sort(J[e]),this.update(a.map((e=>e.pointer)))):this}};const U=function(e,t){if(e.length>0){let t=e[e.length-1],n=t[t.length-1];!1===/ /.test(n.post)&&(n.post+=" ")}return e=e.concat(t)};var Q={concat:function(e){if("string"==typeof e){let t=this.fromText(e);if(this.found&&this.ptrs){let e=this.fullPointer,n=e[e.length-1][0];this.document.splice(n,0,...t.document)}else this.document=this.document.concat(t.document);return this.all().compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=U(e.document,t.docs),e.all()}(this,e);if(t=e,"[object Array]"===Object.prototype.toString.call(t)){let t=U(this.document,e);return this.document=t,this.all()}var t;return this}},_={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const Z=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},V,z,$,M,R,Q,_);var X=function(e){Object.assign(e.prototype,Z)};const Y={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const ae=/'/,oe=new Set(["what","how","when","where","why"]),ie=new Set(["be","go","start","think","need"]),se=new Set(["been","gone"]);var le=function(e,t){let n=e[t].normal.split(ae)[0];if(oe.has(n))return[n,"did"];if(e[t+1]){if(se.has(e[t+1].normal))return[n,"had"];if(ie.has(e[t+1].normal))return[n,"would"]}return null},ue=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ce=/'/;var he=(e,t)=>["je",e[t].normal.split(ce)[1]],de=(e,t)=>{let n=e[t].normal.split(ce)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},ge=(e,t)=>{let n=e[t].normal.split(ce)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const pe=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,me=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,fe=/^[0-9]{3}-[0-9]{4}$/;var ve=function(e,t){let n=e[t],r=n.text.match(pe);return null!==r?!0===n.tags.has("PhoneNumber")||fe.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(me),null!==r?[r[1],"to",r[4]]:null)};const be=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/;var ye=function(e,t,n){const r=n.model.one.numberSuffixes||{};let a=e[t].text.match(be);if(null!==a){let e=a[2].toLowerCase().trim();return r.hasOwnProperty(e)?null:[a[1],e]}return null};const we=/'/,ke=/^[0-9][^-–—]*[-–—].*?[0-9]/,Pe=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ae={t:(e,t)=>ue(e,t),d:(e,t)=>le(e,t)},Ne={j:(e,t)=>he(e,t),l:(e,t)=>de(e,t),d:(e,t)=>ge(e,t)},je=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=je(o,r[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](r,s,t)),!c&&Ne.hasOwnProperty(l)&&(c=Ne[l](r,s)),"there"===l&&"s"===u&&(c=xe(r,s)),c?(c=Ie(c,e),re(n,[i,s],c),Pe(n[i],e,s,c.length)):ke.test(r[s].normal)?(c=ve(r,s),c&&(c=Ie(c,e),re(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),Pe(n[i],e,s,c.length))):(c=ye(r,s,t),c&&(c=Ie(c,e),re(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))},Ce={model:ne,compute:{contractions:Ee},hooks:["contractions"]},Te=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===De.test(l)){let e=l.replace(De,"");if(i.hasOwnProperty(e)&&e.length>3&&Oe.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Ve={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}},Be={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},ze={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Ge}},compute:Ve,lib:Be,hooks:["lexicon"]},He=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;let a=n.one.tokenize.splitTerms(e,r).map((e=>n.one.tokenize.splitWhitespace(e,r)));return a.map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Le=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Me=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Je=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Me(e.goNext,void 0),e.failTo=Me(e.failTo,0),e.endAs=Me(e.endAs,null),e};const We={buildTrie:function(e){const t=He(e,this.world());return Je(t)}};We.compile=We.buildTrie;var qe={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:He(e,this.world));var r;let a=Se(this,n,t);return a=a.settle(),a}},lib:We};const Ke=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},Re=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Ke(n,t),Object.keys(r).forEach((e=>{r[e]=Ke(r[e],t)})),{ptrs:n,byGroup:r}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Qe=e=>e&&Ue(e)&&!0===e.isView,_e=e=>e&&Ue(e)&&!0===e.isNet,Ze=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Xe={matchOne:function(e,t,n){const r=this.methods.one;if(Qe(e))return this.intersection(e).eq(0);if(_e(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Ze(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Re(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Qe(e))return this.intersection(e);if(_e(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Ze(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Re(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Qe(e))return e.fullPointer.length>0;if(_e(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Ze(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Qe(e))return this.filter((t=>t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Ze(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Qe(e))return this.filter((t=>!t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Ze(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}},Ye={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const et=function(e,t){return[e[0],e[1],t[2]]},tt=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},nt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},rt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=tt(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>nt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=tt(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(et(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>nt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=tt(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(et(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>nt(e,this))),this.update(o)}};rt.split=rt.splitAfter;var at=rt;const ot=Object.assign({},Xe,Ye,at);ot.lookBehind=ot.before,ot.lookBefore=ot.before,ot.lookAhead=ot.after,ot.lookAfter=ot.after,ot.notIf=ot.ifNo;var it=function(e){Object.assign(e.prototype,ot)};const st=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,lt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,ut=/ /g,ct=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ht=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var dt=function(e){let t=e.split(st),n=[];t.forEach((e=>{ct(e)?n.push(e):n=n.concat(e.split(lt))})),n=ht(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ct(e)?r.push(e):r=r.concat(e.split(ut))})),r=ht(r),r};const gt=/\{([0-9]+)?(, *[0-9]*)?\}/,pt=/&&/,mt=new RegExp(/^<\s*(\S+)\s*>/),ft=e=>e.charAt(0).toUpperCase()+e.substring(1),vt=e=>e.charAt(e.length-1),bt=e=>e.charAt(0),yt=e=>e.substring(1),wt=e=>e.substring(0,e.length-1),kt=function(e){return e=yt(e),e=wt(e)},Pt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===vt(e)&&(n.end=!0,e=wt(e)),"^"===bt(e)&&(n.start=!0,e=yt(e)),("["===bt(e)||"]"===vt(e))&&(n.group=null,"["===bt(e)&&(n.groupStart=!0),"]"===vt(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===bt(e))){const t=mt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===vt(e)&&(n.greedy=!0,e=wt(e)),"*"!==e&&"*"===vt(e)&&"\\*"!==e&&(n.greedy=!0,e=wt(e)),"?"===vt(e)&&(n.optional=!0,e=wt(e)),"!"===bt(e)&&(n.negative=!0,e=yt(e)),"~"===bt(e)&&"~"===vt(e)&&e.length>2&&(e=kt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("/"===bt(e)&&"/"===vt(e))return e=kt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if(!0===gt.test(e)&&(e=e.replace(gt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"("===bt(e)&&")"===vt(e)){pt.test(e)?(n.choices=e.split(pt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=yt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=wt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>Pt(e,t))))),e=""}if("{"===bt(e)&&"}"===vt(e)){if(e=kt(e),n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.sense=e[2])}return n}if("<"===bt(e)&&">"===vt(e))return e=kt(e),n.chunk=ft(e),n.greedy=!0,n;if("%"===bt(e)&&"%"===vt(e))return e=kt(e),n.switch=e,n}return"#"===bt(e)?(n.tag=yt(e),n.tag=ft(n.tag),n):"@"===bt(e)?(n.method=yt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var At=Pt;const Nt=/[a-z0-9][-–—][a-z]/i;var jt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&Nt.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e};const It=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},xt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Et=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var Ct=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(It(e,t)):"Noun"===e.pos?n=n.concat(xt(e,t)):"Adjective"===e.pos&&(n=n.concat(Et(e,t))):(n=n.concat(It(e,t)),n=n.concat(xt(e,t)),n=n.concat(Et(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))},Tt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e},Dt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=dt(e);return r=r.map((e=>At(e,t))),r=jt(r,n),r=Ct(r,n),r=Tt(r),r};const Ot=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ft=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),$t=(e,t)=>-1!==e.pre.indexOf(t),St={hasQuote:e=>Gt.test(e.pre)||Bt.test(e.post),hasComma:e=>Lt(e,","),hasPeriod:e=>!0===Lt(e,".")&&!1===Lt(e,"..."),hasExclamation:e=>Lt(e,"!"),hasQuestionMark:e=>Lt(e,"?")||Lt(e,"¿"),hasEllipses:e=>Lt(e,"..")||Lt(e,"…")||$t(e,"..")||$t(e,"…"),hasSemicolon:e=>Lt(e,";"),hasColon:e=>Lt(e,":"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>zt.test(e.post)||zt.test(e.pre),hasDash:e=>Ht.test(e.post)||Ht.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};St.hasQuotation=St.hasQuote;var Mt=St;let Jt=function(){};Jt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.id&&t.id===e.id)return!0;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Vt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Mt[t.method]&&!0===Mt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}if(void 0!==t.chunk)return e.chunk===t.chunk;if(void 0!==t.switch)return e.switch===t.switch;if(void 0!==t.machine)return e.normal===t.machine||e.machine===t.machine||e.root===t.machine;if(void 0!==t.sense)return e.sense===t.sense;if(void 0!==t.fastOr){if(t.pos&&!e.tags.has(t.pos))return null;let n=e.root||e.implicit||e.machine||e.normal;return t.fastOr.has(n)||t.fastOr.has(e.text)}return void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Jt(e,t,n,r))):t.choices.some((t=>Jt(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Wt=Jt;const qt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(Kt(e,e.t).length=r-e.t),e.t=r,!0)};const Ut=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Wt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Wt(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(Kt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},Zt=function(e,t,n){let r=0;for(let a=e.t;ar||(e.t+=r,0))},Xt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Wt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];n&&(Wt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)?e.r+=1:n.optional&&t[e.r+2]&&Wt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?Zt(e,r,t[e.r+1]):(e.t+=1,!0)},Yt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Wt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Wt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},en=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null},tn=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},nn=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Yt(e),r.implicit&&e.terms[e.t+1]&&tn(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||en(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Kt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},rn=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything){if(!0!==qt(e,a)){if(e.negative){if(!Xt(a))return null}else if(!0!==Wt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else if(!nn(a))return null}else if(!nn(a))return null}else{if(e.negative&&e.anything)return null;if(!nn(a))return null}else if(!_t(a))return null}else if(!Qt(a))return null}else if(!Rt(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}},an=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}},on=function(e,t,n){return e=e.filter((e=>{let[r,a,o]=e.pointer,i=n[r].slice(a,o);for(let e=0;e{e.groups[n][0]=t})),e},ln=function(e,t,n){let r=rn(e,t,0,e.length);return r?(r=sn(r,n),r):null};var un=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=ln(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),t.notIf&&(i=on(i,t.notIf,e)),i=an(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i},cn={api:it,methods:{one:{termMethods:Mt,parseMatch:Dt,match:un}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const hn=/^\../,dn=/^#./,gn=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),hn.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var pn={html:function(e){let{starts:t,ends:n}=gn(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(fn,""),bn.test(a)&&(a=" "),a=a.replace(vn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(fn,""),a="-"===a?" ":a.replace(mn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&yn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},kn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};kn.clean=kn.normal,kn.reduced=kn.root;var Pn=kn;let An=[],Nn=0;for(;Nn<64;)An[Nn]=0|4294967296*Math.sin(++Nn%Math.PI);function jn(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(Nn=i=0;Nn>4]+An[i]+~~o[Nn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const In={text:!0,terms:!0};let xn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const En=function(e,t){return Object.assign({},e,t)},Cn={text:e=>wn(e,{keepPunct:!0},!1),normal:e=>wn(e,En(Pn.normal,{keepPunct:!0}),!1),implicit:e=>wn(e,En(Pn.implicit,{keepPunct:!0}),!1),machine:e=>wn(e,xn,!1),root:e=>wn(e,En(xn,{form:"root"}),!1),hash:e=>jn(wn(e,{keepPunct:!0},!1)),offset:e=>{let t=Cn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};Cn.sentences=Cn.sentence,Cn.clean=Cn.normal,Cn.reduced=Cn.root;const Tn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},In,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&Cn[o]&&(a[o]=Cn[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};Tn.data=Tn.json;var Dn=Tn,On=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};const Fn="[0m";var Vn={green:e=>"[32m"+e+Fn,red:e=>"[31m"+e+Fn,blue:e=>"[34m"+e+Fn,magenta:e=>"[35m"+e+Fn,cyan:e=>"[36m"+e+Fn,yellow:e=>"[33m"+e+Fn,black:e=>"[30m"+e+Fn,dim:e=>"[2m"+e+Fn,i:e=>"[3m"+e+Fn},Gn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Vn.blue("\n ──────")),t.forEach((t=>{console.log(Vn.blue("\n ┌─────────")),t.forEach((t=>{let r=[...t.tags||[]],a=t.text||"-";t.sense&&(a=`{${t.normal}/${t.sense}}`),t.implicit&&(a="["+t.implicit+"]"),a=Vn.yellow(a);let o="'"+a+"'";if(t.reference){let n=e.update([t.reference]).text("normal");o+=` - ${Vn.dim(Vn.i("["+n+"]"))}`}o=o.padEnd(18);let i=Vn.blue(" │ ")+Vn.i(o)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Vn[n](e)}))),e.join(", ")}(r,n);console.log(i)}))}))},Bn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Vn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Vn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Vn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Vn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))},zn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${Vn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))},Hn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(On(t),t):(!1!==e.tags&&(Gn(t),console.log("\n")),!0===e.chunks&&(Bn(t),console.log("\n")),!0===e.highlight&&(zn(t),console.log("\n")),t)};const Ln=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var $n=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()},wrap:function(e){return $n(this,e)}};var Mn=Sn,Jn={text:function(e){let t={};var n;if(e&&"string"==typeof e&&Pn.hasOwnProperty(e)?t=Object.assign({},Pn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e)),void 0===t.keepSpace&&this.pointer&&(t.keepSpace=!1),void 0===t.keepPunct&&this.pointer){let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}return void 0===t.keepPunct&&(t.keepPunct=!0),void 0===t.keepSpace&&(t.keepSpace=!0),function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Un=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Qn=function(e,t){let n=Un(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r},_n=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n},Zn={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>Rn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n},er=function(e,t){let n=Un(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>Rn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},nr=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},rr={union:function(e){e=tr(e,this);let t=Xn(this.fullPointer,e.fullPointer);return t=nr(t,this.document),this.toView(t)}};rr.and=rr.union,rr.intersection=function(e){e=tr(e,this);let t=er(this.fullPointer,e.fullPointer);return t=nr(t,this.document),this.toView(t)},rr.not=function(e){e=tr(e,this);let t=Yn(this.fullPointer,e.fullPointer);return t=nr(t,this.document),this.toView(t)},rr.difference=rr.not,rr.complement=function(){let e=this.all(),t=Yn(e.fullPointer,this.fullPointer);return t=nr(t,this.document),this.toView(t)},rr.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=Xn(e,[t])})),e=nr(e,this.document),this.update(e)};var ar=function(e){Object.assign(e.prototype,rr)},or={methods:Zn,api:ar},ir=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const sr=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var lr=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.notIf&&(e.notIf=n(e.notIf,{},t)),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(sr(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(sr(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=sr(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e},ur=function(e,t){e=lr(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}},cr=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))},hr=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>r.has(e))).length>=e.minWant))}))},dr=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o},gr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=cr(a,t.hooks);return o=hr(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),dr(o,e,a,n,r)},pr=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===pr(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag&&l)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))})))},fr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:ir,methods:{one:{buildNet:ur,bulkMatch:gr,bulkTagger:mr}}};const vr=/ /,br=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},yr=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,"[33m[3m"+a+"[0m").padEnd(24)} [32m→[0m #${t.padEnd(22)} ${(e=>"[3m"+e+"[0m")(n)}`)})(e,t,a),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),vr.test(t))!function(e,t,n,r){let a=t.split(vr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),yr(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nwr(e,t,n,r)))};var kr=wr,Pr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>Ar({id:e}))),t}return[Ar({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},xr=e=>"[object Array]"===Object.prototype.toString.call(e),Er=e=>(e=e||"").trim(),Cr=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||Nr.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:jr(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=Ar({});return e.forEach((e=>{if((e=Ar(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(Ir(t=e).forEach(Ar),t);var t},Tr=function(e,t){let n="-> ";t&&(n=(e=>"[2m"+e+"[0m")("→ "));let r="";return Ir(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>"[31m"+e+"[0m")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},Dr=function(e){let t=Ir(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Or={text:Tr,txt:Tr,array:Dr,flat:Dr},Fr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Tr(e,!0)),null):Or.hasOwnProperty(t)?Or[t](e):e},Vr=e=>{Ir(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Gr=/\//;let Br=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Er(e),!Gr.test(e)){let t=this.json.children.find((t=>t.id===e));return new Br(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||Ar({});return new Br(t)}add(e,t={}){if(xr(e))return e.forEach((e=>this.add(Er(e),t))),this;e=Er(e);let n=Ar({id:e,props:t});return this.json.children.push(n),new Br(n)}remove(e){return e=Er(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Ir(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Ir(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return Ir(this.json)}fillDown(){var e;return e=this.json,Ir(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else xr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Vr(this.json);let e=Ir(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Vr(this.json),Fr(this.json,e)}debug(){return Vr(this.json),Fr(this.json,"debug"),this}};const zr=function(e){let t=Cr(e);return new Br(t)};zr.prototype.plugin=function(e){e(this)};var Hr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Hyphenated:"cyan",Adverb:"cyan"};const Lr=function(e){if(Hr.hasOwnProperty(e.id))return Hr[e.id];if(Hr.hasOwnProperty(e.is))return Hr[e.is];let t=e._cache.parents.find((e=>Hr[e]));return Hr[t]};var $r=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:Lr(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const Sr=function(e){return e?"string"==typeof e?[e]:e:[]};var Mr=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=Sr(e[t].children),e[t].not=Sr(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e},Jr=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Mr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return zr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return $r(n)},Wr={one:{setTag:kr,unTag:Pr,addTags:Jr}};const qr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Kr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),qr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return qr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){e=e.replace(/^#/,"");let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var Rr=Kr,Ur=function(e){Object.assign(e.prototype,Rr)},Qr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const _r=new Set(["Auxiliary","Possessive"]);var Zr=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(_r.has(e)||!t.hasOwnProperty(n))return 1;if(_r.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},Xr={model:{one:{tagSet:{}}},compute:{tagRank:Zr},methods:Wr,api:Ur,lib:Qr};const Yr=/([.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s)/g,ea=/^[.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s$/,ta=/((?:\r?\n|\r)+)/;var na=function(e){let t=[],n=e.split(ta);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const sa={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},la=RegExp("["+Object.keys(sa).join("")+"]","g"),ua=RegExp("["+Object.values(sa).join("")+"]","g"),ca=function(e){if(!e)return!1;let t=e.match(ua);return null!==t&&1===t.length};var ha=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var xa=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(ja);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=Pa(n),n=wa(n),n=n.filter((e=>e)),n};const Ea=/\p{Letter}/u,Ca=/[\p{Number}\p{Currency_Symbol}]/u,Ta=/^[a-z]\.([a-z]\.)+/i,Da=/[sn]['’]$/;var Oa=function(e,t){let{prePunctuation:n,postPunctuation:r,emoticons:a}=t.one,o=e,i="",s="",l=Array.from(e);if(a.hasOwnProperty(e.trim()))return{str:e.trim(),pre:i,post:" "};let u=l.length;for(let e=0;e(s=e||"",""))),e=o,i=""),{str:e,pre:i,post:s}},Fa=(e,t)=>{let{str:n,pre:r,post:a}=Oa(e,t);return{text:n,pre:r,post:a,tags:new Set}},Va=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")},Ga=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Ba=/([A-Z]\.)+[A-Z]?,?$/,za=/^[A-Z]\.,?$/,Ha=/[A-Z]{2,}('s|,)?$/,La=/([a-z]\.)+[a-z]\.?$/;var $a=function(e){return function(e){return!0===Ba.test(e)||!0===La.test(e)||!0===za.test(e)||!0===Ha.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Sa=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Ga(r),r=n(r,t),r=$a(r),e.normal=r},Ma=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map((e=>i(e,r))),n.forEach((e=>{Sa(e,t)})),n})),e};const Ja=/[ .][A-Z]\.? *$/i,Wa=/(?:\u2026|\.{2,}) *$/,qa=/\p{L}/u,Ka=/^[A-Z]\. $/;var Ra=function(e,t){if(!1===qa.test(e))return!1;if(!0===Ja.test(e))return!1;if(3===e.length&&Ka.test(e))return!1;if(!0===Wa.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},Ua={one:{killUnicode:Va,tokenize:{splitSentences:va,isSentence:Ra,splitTerms:xa,splitWhitespace:Fa,fromString:Ma}}},Qa={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let _a={},Za={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{_a[t]=!0,Za[t]="Abbreviation",void 0!==e[1]&&(Za[t]=[Za[t],e[1]])}))}));var Xa=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out","ex"].reduce(((e,t)=>(e[t]=!0,e)),{});let Ya={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},eo={};Object.keys(Ya).forEach((function(e){Ya[e].split("").forEach((function(t){eo[t]=e}))}));const to=/\//,no=/[a-z]\.[a-z]/i,ro=/[0-9]/;var ao=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),to.test(n)&&!no.test(n)&&!ro.test(n)){let t=n.split(to);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const oo=/^\p{Letter}+-\p{Letter}+$/u;var io=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),oo.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},so=function(e){let t=e.docs,n={};for(let e=0;eho(e,ao),machine:e=>ho(e,io),normal:e=>ho(e,Sa),freq:so,offset:lo,index:uo,wordCount:co},methods:Ua,model:{one:{aliases:Qa,abbreviations:_a,prefixes:Xa,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},prePunctuation:{"#":!0,"@":!0,_:!0,"°":!0,"":!0,"":!0,"":!0,"\ufeff":!0},postPunctuation:{"%":!0,_:!0,"°":!0,"":!0,"":!0,"":!0,"\ufeff":!0},lexicon:Za,unicode:eo,emoticons:{"<3":!0,"3":!0,"<\\3":!0,":^P":!0,":^p":!0,":^O":!0,":^3":!0}}},hooks:["alias","machine","index","id"]},po={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const mo=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var fo=function(e){e.prototype.autoFill=mo},vo=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const bo={safe:!0,min:3};var yo={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},bo,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=vo(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}},wo={model:{one:{typeahead:{}}},api:fo,lib:yo,compute:po,hooks:["typeahead"]};v.extend(ee),v.extend(Kn),v.extend(cn),v.extend(or),v.extend(Xr),v.plugin(Ce),v.extend(go),v.plugin(k),v.extend(qe),v.extend(wo),v.extend(ze),v.extend(fr);var ko={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos",volcano:"volcanoes"},Po={Comparative:"true¦bett1f0;arth0ew0in0;er",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦began,came,d1had,lied,mea0sa1we0;nt;id",Participle:"true¦0:0A;a07b02c00dXeat0fSgQhPoJprov0rHs7t6u4w1;ak0ithdra03o2r1;i03uZ;k0rn,v0;nd1pr05;ergoJoJ;ak0hHo3;e9h7lain,o6p5t4un3w1;o1um;rn;g,k;ol0reT;iRok0;ught,wn;ak0o1ruL;ne,wn;en,wn;ewriOi1uK;dd0s0;ut3ver1;do4se0t1;ak0h2;do2g1;roH;ne;ast0i7;iv0o1roE;ne,tt0;all0loCor1roz0;bi3g2s1;ak0e0;iv0oA;dd0;ove,r1;a6eamt,iv0u1;nk;hos0lu1;ng;e4i3lo2ui1;lt;wn;tt0;at0en,gun;r2w1;ak0ok0;is0;en",Gerund:"true¦accord0be0doin,go0result0stain0;ing",Expression:"true¦a0Wb0Sc0Qd0Me0Kg0EhYjeez,lVmUnSoMpJsHtGuDvoi0Yw6y0;a4e3i1u0;ck,p;k03p0;ee,pee;ah,p,s;!a,y;a5h2o1t0;af,f;rd up,w;atsoever,e1o0;a,ops;e,w;hoo,t;gh,h0;! 0h,m;huh,oh;here nQsk,ut tut;h0ic;eesh,hh,it,oo;ff,h1l0ow,sst;ease,s,z;ew,ooey;h1i,mg,o0uch,w,y;h,o,ps;! 0h;h1my go0w1;d,sh;ell;ah,evertheless,o0;!pe;eh,mm;ah,eh,m1ol0;!s;ao,fao;aCeBi9o2u0;h,mph,rra0zzC;h,y;l1o0;r6y9;la,y0;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww,xcuse me;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;mon,o0;ngratulations,wabunga;a2oo1r0tw,ye;avo,r;!ya;h,m; 1h0ka,las,men,rgh,ye;!a,em,h,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦dick0gre0ones,records;ens","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦bewa0come he0;re",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦its,my,none,our0thy;!s","Noun|Verb":"true¦0:9D;1:8N;2:81;3:9I;4:98;5:91;6:84;7:72;8:92;9:8K;A:9N;a93b84c6Xd68e5Yf5Bg52h4Si4Kj4Hk4El42m3Qn3Mo3Jp2Jqu2Ir1Ts0FtZuXvSwEyDzB;ip,oB;ne,om;awn,e5Xie5Q;aLeJhGiEoCrB;ap,e93;nd0rBu8I;k,ry,sh51th;ck,nBpe,re,sh;!d,g;e7MiB;p,sB;k,p0t1;aBed;r,th0;it,lk,rCsBt4ve,x;h,te;!ehou2raA;aEiDoB;iBm9te,w;ce,d;be,ew,s9;cuum,l3Z;pBr6;da5gra5Wlo5S;aOeNhrMiLoJrEuCwiBy5H;n,st;nBrn;e,n74;aDeCiBot,u8;bu5ck46gg0m,p;at,k,nd;ck,de,in,nsBp,v70;f0i88;ll,ne,p,r4Jss,t8LuB;ch,r;ck,de,e,le,me,p,re;e5Fow,u8;ar,e,ll,mp0st,xt;g,lBng1rg75s5x;k,ly;a0Mc0He0Eh09i07k05l03m02n01ou7JpVqua6YtIuDwB;ea7PiB;ng,pe,t4;bEit,m,ppCrB;ge,pri2v2L;lBo69;e66y;!je7;aKeJiIoFrCuBy1;dy,ff,mb1;a7MeCiBo58ugg1;ke,ng;am,ss,t4;ckCop,p,rB;e,m;ing,pi1;ck,nk,t4;m,p;ck,ge,in,ke,lCmp,nd,p1rBte,y;!e,t;k,l;aFeed,iElDot,rBur;ay,e4PinBu3;g,k1;a58it;ll,n,r7Pte;n,rk;ap,ee1Pow;a54e43i1o4Q;eep,iBou4;ce,p,t;ateboa74iB;!p;de,gnBp,ze;!al;aEeDiCoBuff1;ck,p,re,w;ft,p,v0;d,i3M;ck,de,pe,re,ve;aCed,nBrv1Ft;se,t2G;l,r4t;aEhedu1o5RrB;aCeBibb1o3N;en,w;pe,t4;le,n,r0P;cBil;k,rifi3;aXeFiEoCuB;b,in,le,n,s5H;a8ck,ll,oBpe,u5;f,t;de,ng,p,s1P;aRcQdo,el,fOgNje7lMmKnJo13pHque8sDturn,vBwa6G;eBi20;al,r2;er6PoDpe7tCuB;lt,me;!a4Q;l6Mrt;air,eaBly,o4O;l,t;dezvo2Ot;aBedy;ke,rk;ea2i41;a63ist0r57;act6Jer1Oo6MuB;nd,se;a2Wo60;ch,s61;c16ge,i2ke,lly,nBpZtZ;ge,k,t;es5Xiv0;a03eZhXiVlRoLrCsy4uB;mp,n4rcha2sh;aIeGiFoBu4A;be,ceDdu3fi1grBje7mi2p,te8;amBe6G;!me;ed,ss;ce,de,nt;sBy;er5Ys;cti3i2;iFlDoCp,re,sBw0;e,i5Kt;l,p;iBl;ce,sh;nt,s5H;aCce,e2QuB;g,mp,n6;ce,nBy;!t;ck,le,nBpe,t,vot;!e;a2oB;ne,tograph;ak,eDnCrBt;fu4Qm9;!c2P;!l,r;ckGiFnErtDsCtBu2;ch,eA;s,te;!y;!ic;nt,r,se;!a6;bje7ff0il,oCrButli3Cver3W;b9d0ieA;ze;a4DeDoB;d,tB;e,i3;ed,gle7t;aIeGiFoCuB;rd0;ck,d3Eld,nBp,uth,ve;it52kB;ey;lk,n3Zrr50ss,x;asu3Hn4JrBss;ge,it;il,nDp,rk3KsCtB;ch,t0;h,k;da5n0oeuv3C;aJeHiFoCuB;mp,st;aCbby,ck,g,oBve;k,t;d,n;cBft,m9nFst;en2k;aBc0Ie4vH;ch,d,k,p,se;bCcBnd,p,t4un4;e,k;el,o2K;eCiBno44;ck,ll,ss;el,y;aCo1GuB;i3mp;m,zz;mpHnCr3WssB;ue;cr1Idex,fluEha1k,se27teBvoi3;nt,rB;e8fa3viB;ew;en3;a7le20;aGeEiDoCuB;g,nt;l30no23ok,p,r2u2;ghlight,ke,nt,re,t;aBd6lp;d,t;ck,mDndCrBsh,t33;b3Pm,ne44ve8;!le;!m0;aIloHossGrDuB;arBe40n;antee,d;aCiBou2Tumb1;nd,p;de,sp;ip;ss,w;g,in,me,ng,s,te,ze;aWeTiOlLoHrDuB;ck,el,nBss,zz;c32d;aCoBy;st,wn;cBgme,me;tu1W;cDg,il,ld,rB;ce,e23mB;!at;us;aCe0Pip,oBy;at,ck,od,w;g,ke,me,re,sh,vo19;eEgDlCnBre,sh,t,x;an3i0L;e,m,t0;ht,u1L;ld;aCeBn3;d,l;r,tu1H;ce,il,ll,rm,v2R;cho,d6ffe7nJsHxDyeB;!baB;ll;cDerci2hib9pBtra7;eriBo0R;en3meA;el,han6u2;caBtima5;pe;count0d,vy;aXeQiKoHrCuBye;b,el,mp,plica5;aEeDiCoB;ne,p;ft,nk,p,ve;am,ss;ft,g,in;cCd6ubt,wnloB;ad;k,u0A;p,sDt4vB;e,iBor3;de;char6gui2h,liCpB;at4lFu5;ke;al,ba5cFfeElDma1Apos9siCtaB;il;gn,re;ay;at,ct;li02rB;ea2;b,ma6n3rBte;e,t;a0Cent0Bh04irc1l01oIrDuB;be,e,rBt;e,l,ve;aEeDoCuBy;sh;p,ss,wd;d9ep;ck,ft,sh;at,de,in,lRmKnDpy,re,st,uBv0;gh,nBp1;sZt;ceFdu7fli7glomeGsDtBveL;a7rB;a8ol;eAtru7;ct;ntBrn;ra5;bFfoEmDpB;leBou0Iromi2;meA;a0GeAit,u5;rt;at,iB;ne;lap2oB;r,ur;aCiB;ck,p;im,w;aCeBip;at,ck,er;iEllen6nCrB;ge,m,t;ge,nB;el;n,r;er,re;ke,ll,mp,noe,pDrVsCtBu2ve;alog,ch;h,t;!tuB;re;a02eYiWlSoOrFuCyB;pa0Y;bb1ck1dgCff0mp,rBst,zz;den,n;et;anIeGiEoadDuB;i2sh;se;ca8;be,d6;ge;aBed;ch,k;ch,d;aDg,mb,nCoBtt1x,ycott;k,st,t;d,e;rd,st;aDeCiBoWur;nk,tz;nd;me;as,d,ke,nd,opsy,tB;ch,e;aDef,lt,nBt;d,ef9;it;r,t;ck,il,l05nGrDsCtt1;le;e,h;gBk;aBe;in;!d,g,k;c01dXge,iWlTnRppOrKsGttEucCwaB;rd;tiB;on;aBempt;ck;k,sB;i8ocia5;te;st;chCmB;our;!iB;ve;eCroa4;ch;al;chBg0sw0;or;aCt0;er;rm;d,m,r;dreDvB;an3;ce;ss;cBe,he,t;eDoB;rd,uA;nt;nt,ss",Actor:"true¦0:7E;1:7J;2:6D;3:7I;4:7R;5:7N;6:74;a6Rb66c4Zd4Fe45f3Vg3Eh33i2Xj2Tki2Rl2Mm28n20o1Tp0Wqu0Ur0KsRtKuIvFw9yo7;gi,ut7;h,ub0;aBeAi9o8r7;estl0it0;m2rk0;fe,nn0t2Dza2J;atherm2ld0;ge earn0it0nder0rri1;eter8i7oyG;ll5Up,s43;an,ina2X;n7s0;c6Yder04;aoisea25eAherapi5iktok0o9r7ut1yco6;a7endseMo47;d0mp,nscri0Cvel0;ddl0u1H;a0Rchn8en7na4st0;ag0;i3So0E;aiYcVeShQiNki0mu29oKpHquaGtCu8wee7;p0theart;lt2per8r7;f0ge6viv1;h7inten0Jst5Mvis1;ero,um2;a9ep8r7;ang0eam0;bro2Qc2Rfa2Qmo2Qsi23;ff0tesm2;tt0;ec8ir2Go7;kesp5Du0N;ia5Nt3;l8me6En,rcere7ul;r,ss;di0oi5;n8s7;sy,t0;g0n0;am2ephe1Kow7;girl,m2r2T;cretJnior cit3Jr7;gea4v7;a4it1;hol51i8reen7ulpt1;wr2F;e02on;l1nt;aFeAo9u7;l0nn7;er up,ingF;g44le mod43of0;a53c9fug2Tpo36searRv7;ere4Yolution7;ary;e7luZru25;ptio3X;bbi,dic5Zpp0;arter7e33;back;aZeXhTiSlPoLr9sycho8u7;nk,p36;logi5;aHeEiCo7;dAfess1g8ph4Bs7;pe2Otitu55;en7ramm0;it1y;igy,uc0;est4Rme mini0Xnce7s3I;!ss;a8si7;de4;ch0;ctiti3Dnk0S;dca0Ret,li7pula54rnst46;c2Mtic7;al scie7i2;nti5;a7umb0;nn0y7;er,ma4Pwright;lgrim,one0;a9iloso8otogra8ra7ysi1Z;se;ph0;ntom,rmaci5;r7ssi1X;form0s6;i3Il,nel42r9st1tr7wn;i7on;arYot;ent50i46tn0;ccupa4ffCp9r8ut7;ca5l0E;ac4Mganiz0ig2Jph2;er3t7;i1Nomet7;ri5;ic0spring;aDeBie51o9u7;n,rse7;!r3M;b7mad,vi4Y;le2Yo4G;i7mesis,phew;ce,ghb1;nny,rr3t21;aFeEiBo8u7yst22;m9si19;der3gul,m8n7th0;arEk;!my;ni8s7;f04s0Lt0;on,st0;chan1Unt1rcha4;giAk0n9rtyr,t7y1;e,riar7;ch;ag0iac;ci2stra3L;a8e2Dieutena4o7;rd,s0v0;bor0d8ndlo7ss,urea3Iwy0ym2;rd;!y;d,n7;!s2A;anitor ,e9o8u7;ggl0;gg0urna2W;st0;c6dol,llu3Wmmigra4n7;-lAc1Sfa4habi44nov3s8ve7;nt1stig3;pe0Pt7;a1Hig3ru0O;aw;airGeCistoBo9u7ygie1M;man7nt0sba2J;!ita9;bo,st7usekO;age,e3R;ri2;ir,r7;m8o7;!ine;it;dress0sty2E;aMeJhostHirl28ladi3oDrand8u7;e5ru;cAdaugTfa9m8pa7s6;!re4;a,o7;th0;hi1D;al8d7lf0;!de3C;ie,k7te28;eep0;!wr7;it0;isha,n7;i7tl06;us;mbl0rden0;aFella,iBo8r7;eela2Pie1R;e,re7ster pare4;be1Jm2r7st0;unn0;an31g9lmm19nanci0r7tt0;e7st la2J; marsh2Qfig7m2;ht0;rm0th0;conoFdElectriDm9n8x7;amin0cellency,i2B;emy,trepreneur,vironmenta1K;c9p7;er1loye7;e,r;ee;ci2;it1;mi5;aLeCi9ork,ri8u7we03;de,tche2I;ft0vK;ct3eti8plom2Ire7va;ct1;ci2ti2;aEcor3fencDi0JnBputAs8tectNvel7;op0;ce1He7ign0;rt0;ee,y;iz7;en;em2;c6l0;dAnc0redev9ught7;er7;! ;il;!dy;a06e04fo,hXitizenWlToCrAu7;r3stomer7;! representat7;ive;e3it7;ic;-work0lJmGnAord9rpor1Nu7wboy;n7ri0sin ;ciUte1R;in3;fidantBgressTsAt7;e0Lr7;ibut1o7;ll0;tab14ul1P;!e;edi2m7pos0rade;a0FeRissi7;on0;leag9on8um7;ni5;el;ue;e7own;an0r7;ic,k;!s;aAe8i7um;ld;erle7f;ad0;ir8nce7plGract0;ll1;m2wJ;lebri7o;ty;dCptBr7shi0;e8pe7;nt0;r,t7;ak0;ain;et;aNeMiKlogg0oFrCu7;dd0Gild0rglAsiness7;m2p8w7;om2;ers6;ar;i8o7;!k0th0;cklay0de,gadi0;hemi2oge9y7;!frie7;nd;ym2;an;cyc7sS;li5;atbox0ings;by,nk0r7;b0on8te7;nd0;!e08;c05dXge4nRpMrIsGtBu8yatull7;ah;nt8t7;h1oH;!ie;h9t7;e7orney;nda4;ie5le7;te;sis01tron7;aut,om0;chbis9isto8tis7;an,t;crV;hop;ostAp7;ari7rentiT;ti6;on;le;aAcest1im3nou9y7;bo7;dy;nc0;ly5rc7;hi5;mi9v7;entur0is1;er;ni8r7;al;str3;at1;or;counCquaintanBrobAt7;ivi5or,re7;ss;st;at;ce;ta4;nt","Adj|Noun":"true¦0:18;a15b0Zc0Od0Me0Hf0Bg0Ah08i06ju05l03mWnUoSpNrJsCt8u5v2w1;atershed,elcome;a1ision0R;gabo4nilla,ria1;b0Ont;ndergr1pstairs;adua0Vou1;nd;a3e1oken,ri0;en,r1;min0rori0U;boo,n;age,e5ilv09lack,o3quat,ta2u1well;bordina0Oper5;b0Endard;ciali0Pl1vereign;e,ve0Z;cret,n1ri0;ior;a3e1outiTubbiL;ar,bBla0Qnt0p1side0V;resenta0Publican;ci0Ish;a4eriodic0otenti0r1;emi2incip0o1;!fession0;er,um;rall4st,tie0O;ff1pposi09v0;ensi0Ii05;aggVov1;el;a6e4in3o1;biVder00r1;al,t0;iature,or;di1tr0G;an,um;le,riA;attIiber0u1;sh;stice,veniN;de0mpressioRn1;cumbe08dividu0no07sta08terim;alf,o1umdrum;bby,melA;enious,old,ra01;a4e2i1luid,ugiZ;ne;llow,m1;aEiJ;ir,t,vo1;riLuriL;l3pZx1;c1ecuSpeU;ess;d1iH;er;arl3e1;mographTrivaN;hiElassSo2rude,unn1;ing;m4n1operaK;creAstitueOtempor2vertab1;le;ary;m2p1;anion,lex;er2u1;ni7;ci0;e5lank,o4r1;i2u1;te;ef;ttom,urgeois;st;cademBd8l4n2r1;ab,ctA;im0tarct9;al;e3terna1;ti1;ve;rt;oles1ult;ce1;nt;ic","Adj|Past":"true¦0:30;1:2R;2:2U;a2Jb2Dc1Ud1Be15f10gift0h0Xi0Qj0Pknown,l0Mm0Hn0Fo0Cp05qua04rVsEtAu7v5w3;arp0ea3or5;kIth2T;a3e0W;ri0;n3pd1s0;derstood,i3;fi0t0;ar5hreatCr3wi2R;a3ou19;ck0in0pp0;get0ni1N;aHcaGeEhDimCm01oak0pAt6u3;bsid28gge2Ms3;pe3ta1S;ct0nd0;at0e5r3uV;ength3ip0;en0;am0reotyp0;eci3ik0ott0;al20fi0;pIul1;ar0ut;a3c1Jle2t1S;l0t0;r0tt25;t3ut0;is1Jur1;aAe3;c7duc0f1Cg6l1new0qu5s3;pe2t3;or0ri2;e22ir0;ist1Xul1;eiv0o3ycl0;mme09rd0v1V;lli0ti1A;li19;arallel0i0Kl7o6r3ump0;e4o3;ce0Ilo0Hnou1Tpos0te2;fe0Loc8pY;i1Gli0R;a3e19;nn0;c4rgan1Bverlo3;ok0;cupi0;e3ot0;ed0gle2;a5e4ix0o3ut0;di0Vt0G;as0Qlt0;n3rk0;ag0ufact0O;eft,i4o3;ad0st;cens0mit0st0;agg0us0N;mp8n3sol1;br0debt0f6t3volv0;e3ox0F;gr1n3re18;d0si0J;e2l1oX;li0oLrov0;amm10e1o3;ok0r3;ri0E;aNe6i5lavo09oc05r3;a3i0;ct07g0Mm0;niXx0;ar0;duc1l1mbarraKn7quipp0stabliVx3;agger1p3te5;a4e3;ct0rie0S;nd0;ha0QsZ;aJeAi3;gni01miniOre2s3;a7c5grun05t3;o3reBurb0;rt0;iplSou3;nt0rE;bl0;cenVdOf8l7pre6ra5t3velop0;a3ermO;il0;ng0;ss0;ay0ight0;e4o3;rm0;rr0;m3t0;ag0;alcul1eHharg0lGo8r5u3;lt3stomS;iv1;a4owd0u3;sh0;ck0mp0;d0lo9m6n3ok0vX;centr1f4s3troll0;idVolid1;us0;b4pl3;ic1;in0;ur0;assi5os0;lebr1n5r3;ti3;fi0;tralB;a7i6o4roken,urn3;ed,t;il0r0t3und;tl0;as0;k0laIs0;bandon0cJdGffe2lDnBpp9ss7u3ward0;g4thor3;iz0;me3;nt0;o5u3;m0r0;li0re3;ci1;im1ticip1;at0;leg0t3;er0;ct0;ju4o6va3;nc0;st0;ce3knowledg0;pt0;ed",Singular:"true¦0:5I;1:5G;2:4V;3:4R;4:51;5:56;6:5K;a4Zb4Ic3Ld33e2Vf2Kg2Eh23in1Zj1Yk1Xl1Qm1In1Eo18p0Pqu0Or0DsXtKuFvAw7x r55yo yo;a7ha3N;f3i4Nt0Ey7;! arou37;arAe8o7;cabu4Gl59;gMr7t;di4Wt1T;iety,ni4L;n9p2Yr8s 7;do41s5B;bani1in0;coordinat38der7;estima1to1Zwe3Z; rex,aIeHhFiDoCr9u8v7;! show;m2Mn2rntJto19;agedy,ib7o4A;e,u7;n0ta43;ni1p2rq3J;c,er,m7;etD;ing7ree23;!y;am,mp3D;ct2le6x return;aLcKeIhor4NiHkFoEpin off,tBu9y7;ll7ner4Jst4Q;ab2V;b7i1n26per bowl,rro1U;st3Jtot0;at8ipe2Eo1Grate4Fudent7;! lo0F;i37u1;ft ser4Imeo1D;elet5i7;ll,r3R;b36gn2Rte;ab2Hc7min39;t,urity gu2L;e6ho2W;bbatic0la3Gndwi0Mpi5;av5eBhetor2i8o7;de6om,w;t8v7;erb2A;e,u0;bBc9f7publ2r0Vspi1;er7orm3;e6r0;i7ord label;p2Ft0;a1u43;estion mark,ot2D;aMeJhotocoUiGlEoCr8u7yram1D;ddi3EpCrpo1Hs3G;e9o7;bl3Ws7;pe3Gta1;dic1Pmi1Dp1Oroga3Sss relea1D;p7rt0;py;a7ebisci1;q2Bte;cn2e8g7;!gy;!r;anut,d8r7t0yo1;cen3Hsp3I;al,est0;nop4r8t7;e,hog5;adi10i2S;atme0bj3Dc9pia1rde0thers,utspok5ve7wn3;n,r7;ti0Nview;cu8e7;an;pi3;ar9it8ot7umb3;a2Dhi2P;e,ra1;cot2ra35;aCeAi8o7ur0é0B;nopo4p17rni2Lsq1Qti34uld;c,li10n07s7tt5;chief,si32;d7nu,t0;al,ic;gna1mm0nd15rsupi0te7yf4;ri0;aBegAi9u7;ddi1n7;ch;ght bulb,me,p09ving room; 8e0M;bor14y 7;up;eyno1itt5;el4ourn0;c9dices,itia2Nni25s8tel0Mvert7;eb1K;e28titu1;en2Ki2T;aGeCighBo8u7;man right,s22;me7rmoDsp1Gtb0L;! r7;un; scho0ZriZ;a7i1M;d7v5; start,pho7;ne;ndful,sh brown,v5ze;aAelat0Jlaci3r8u7yp1S;l4y;an7enadi3id;a1Bd slam,ny;df4r7;l2ni1G;aGeti1FiFlEoBr8un7;er0;ee market,i8on7;ti3;ga1;l4ur7;so7;me;ow3u1;eNref4;br2mi4n0Z;conoDffi1Mgg,lecto0Pmbas1BnApidem2s1Wth2ven9x8yel7;id;ampXempl0Lte6;i16t;er1Iterp7;ri7;se;my;eJiCo9r7ump truck;agonf4i7;er,ve thru;c8g1Bi4or,ssi3wn7;side;to0CumenC;aCgniBnn3s8vide7;nd;conte6incen1Bp7tri0Y;osi7;tion;ta0E;le0U;ath9c8f7ni0terre6;ault 03err0;al,im0;!b7;ed;aUeRhKiJlHoBr7;edit c9uc7;ib7;le;ard;efficBke,lAmmuniqJns8pi3rr0t0Uus7yo1;in;erv7uG;atoZ;ic,lO;ie6;er0Li7oth;e6n2;ty,vil wK;aBeqAick5oco9r7;istmas car7ysanthemum;ol;la1;ue;ndeli3racteri7;st2;i8llCr7;e0tifica1;liW;hi3nDpCrAt7ucus;erpi7hedr0;ll7;ar;!bohyd7ri3;ra1;it0;a7e;l,ry;aJeIiop2leGoEreakCu7;nAr7tterf4;g7i0;la7;ry;ny;fa7thro9;st;dy,ro7wl;ugh;mi7;sh;an,l4;nki9r7;!ri3;er;ng;cQdKlGnDppeti1rBs9tt2utop7;sy;ic;ce6pe7;ct;r7sen0;ay;ec8oma4ti8;ly;do1;i5l7;er7y;gy;en; hominBj8van7;tage;ec7;ti7;ve;em;cAe8qui7;tt0;ta1;te;i8ru0;al;de6;nt","Person|Noun":"true¦a07b01cYdRePfOgMhJjFkiElDmBolive,p7r4s3trini00v1wa0;ng,rd;an,enus,iol0;a,et;ky,on5umm02;ay,e1o0uby;bin,d,se;ed,x;a2e0ol;aHn0;ny;ge,tM;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Actor|Verb":"true¦aHbDcAd8engineFfool,g6host,judge,m4nerd,p3recruit,s1ushFvolunteFwi0;mp,tneF;cout,p0;ons6y;arent,ilot;a0ime;n,st9;eek,oof,r0uide;aduBoom;elegAoct0;or;ha1o0;ach,nscript,ok;mpion,uffeur;o2u0;lly,tch0;er;ss;d0ffili1rchite2;di1voc0;ate;ct",MaleName:"true¦0:DO;1:CO;2:D7;3:AJ;4:CK;5:BZ;6:CF;7:D3;8:BS;9:AR;A:DB;B:D4;C:94;D:BM;aC9bB7cA7d98e8If82g7Fh6Si6Cj5Ek52l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Jkaria,n0C;hFkE;!aC7;ar5UeC6;aMoGuE;sEu2LvBJ;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB8ssY;avi3ho4;aNeLiGoEyaBN;jcie87lfgang,odrow,utE;!er;lEnst1;bGey,fredAlE;aAZiE;am,e,s;e97ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Xy;aHiEladimir,ojte7U;cFha0kt67nceErgA5va0;!nt;e3Xt65;lentEn9S;inE;!e;ghBElyss59nax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r59;avAHeEist0oy,um0;ntA9v5Wy;bGd8RmEny;!as,mEoharu;aCCie,y;iCy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8G;!de5;dHrE;en98rE;an97eEy;ll,n96;!dy;dgh,ha,iEnn3req,tsu4R;cAPka;aUcotSeQhMiKoIpenc3tEur1Xylve96zym1;anGeEua85;f0phBCvEwa84;e5Zie;!islaw,l8;lom1uE;leyma6ta;dElCm1yabonga;!dhart74n8;aGeE;lErm0;d1t1;h7Kne,qu11un,wn,y6;aEbasti0k2Cl4Prg4Mth,ymoAE;m5n;!tE;!ie,y;lFmEnti2Gq58ul;!ke5JmDu4;ik,vato7O;aZeVhe9ViRoIuFyE;an,ou;b7DdFf5pe7KssE;!elBJ;ol3Fy;an,bLc62dJel,geIh0landAmHnGry,sFyE;!ce;coe,s;!aA1nD;an,eo;l45r;er78g3n8olfo,riE;go;bDeAQ;cEl8;ar6Ic6HhFkEo;!ey,ie,y;a8Vie;gFid,ubByEza;an1KnZ;g9SiE;na9Os;ch6Qfa4lImHndGpha4sFul,wi2HyE;an,mo6U;h7Jm5;alAXol2U;iACon;f,ph;ent2inE;cy,t1;aJeHhilGier6TrE;aka18eE;m,st1;!ip,lip;dA4rcy,tE;ar,e3Er1Y;b4Hdra73tr6JulE;!o19;ctav3Di3liv3m9Yndrej,rIsFtEum7wB;is,to;aFc7k7m0vE;al5S;ma;i,vM;aMeKiGoEu38;aEel,j5l0ma0r3I;h,m;cFg4i46kEl2R;!au,h7Gola;hEkEolC;olC;al,d,il,ls1vE;il8J;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Gr1;hamFr6KstaE;fa,p54;ed,mI;di0Xe,hamGis2CntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Uik;house,o0Ct1;ae5Oe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2AlSmadXnRrLs1tGuricFxE;imilianAwe9;e,io;eHhFiCtEus,yC;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Ysha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5G;ou;aXeRiPlo39oLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7BrenGuEv81we9;!iE;e,s;!zo;am,oE;n4r;a7Uevi,la4AnIonHst3thaGvE;eEi;nte;bo;!a6Del;!ny;mFnd1rEur54wr54;ry,s;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubCnJrHsE;eFhEi7Wue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Gy;!e5OrE;ey,y;cLdBkJmIrGsFvi3yE;dBs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i70maEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dB;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5K;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4Y;oGrE;aEry;ld,rdA;ffr8rge;brFlBrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymBzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estAie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4FsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydCy29;!lC;!a2HnEov0;e9ie,y;go,iFykC;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l36n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1C;aEie;rdA;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar17b0Vd0Rf0Pgust2hm0Mi0Jja0Il03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndA;!el,ki;ie;ta;aq;as,dIgelAtE;hony,oE;i6nE;!iAy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;aRbeQdBeKfIi,lHonGphZt1vE;aOin;on;so,zo;an,en;onVrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtA;dd2n;ni;dBm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfAri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Uncountable:"true¦0:33;1:2J;2:2Q;3:38;4:3H;a31b2Sc2Gd27e1Wf1Sg1Jh1Bi16j13k11l0Wm0Mn0Io0Hp07r03sOtBuran2Qv9w5you gu0J;a7his1Ci6oo5;d,l;ldlife,ne;rmAt2;apor,ernacul2Gi5;neg2Fol1Ttae;eGhEiDoBr6un5yranny;a,gst1G;aff2Vea1Po6ue nor5;th;o0Du5;ble5se1Yt;!shoot0;night,othpas1Zwn5;foGsfoG;me off,n;er5und2;e,mod2Y;a,nnis;aGcFeEhCiBkiAo9p8t6u5weepstak1;g20nshi2Nshi;ati0Ce5;am,el;ace2Qeci1;ap,cc2meth0;n,ttl1;lk;eep,ingl1o5;pp0r1F;lf,na1Jri1;ene1Pisso1F;d0Zfe3l6nd,t5;i0Lurn;m1Zt;abi1e6ic5;e,ke18;c5i04laxa14search;ogni13rea13;aCeBhysAl9o7re5ut3;amble,mis1s5ten25;en24s0O;l5rk;i2Dl0HyK;ast1Wuto; 1Ai4;a28tr0H;nt5rk0ti0O;i1s;bstetri4vercrowd0xyg0B;a7e6owada5utella;ys;ptu1Sws;il poli01tional securi3;aCeAo7u5;m5s1L;ps;n5o1O;ey,o5;gamy;a5cha0Glancholy,rchandi1Ltallurgy;sl1t;chine5g1Ej1Lrs,thema1U; learn0ry;aught2e8i7ogi6u5;ck,g16;c,s1Q;ce,ghtn0nguis1PteratYv2;ath2isXss;ara0GindergartRn5;icke0Cowled12;e5upit2;a5llyfiIwel0K;ns;ce,gnor8mp7n5;forma02ter5;net,sta09;atiUort5rov;an1C;a9e8isto0Do5ung2;ckey,mework,ne6o5rseradiAspitali3use arrest;ky;s3y;adquarteZre;ir,lib03ppiJs5;hi5te;sh;eneAl8o7r5um,ymnas15;a5e03;niWss;lf,re;ut5yce0J;en; 5ti4;edit0po5;ol;aPeel0icHlour,o6urnit5;ure;od,rgive5uri2wl;ness;arEcono0PducaDlectrBn9quipAthi4very8x5;ist6per5;ti0F;en0N;body,o0Cth0;joy5tertain5;ment;ici3o5;ni4;tiW;nings,th;eBi8o6raugh5ynas3;ts;pe,wnstai5;rs;abet1ce,s5;hon03repu5;te;b5miZ;ut;aFelciEhCivi4lAo5urrency;al,ld w8mmenta7n5ral,ttKuscoD;fusiJt 5;ed;ry;ar;assi4oth1;es;aos,e5;eOw0;us;d,rQ;aAi8lood,owl0read7u5;nt0tt2;er;!th;lliarLs5;on;g5ss;ga5;ge;cMdviLeroIirHmDn8ppeal court,r6spi5thleN;rin;ithmet5sen5;ic;i8y5;o6th0;ing;ne;se;en7n5;es3;ty;ds;craft;bi4d5nau9;yna5;mi4;ce;id,ous5;ti4;cs",Infinitive:"true¦0:8W;1:99;2:9T;3:8G;4:7M;5:9F;6:9X;7:8I;8:9P;9:9G;A:9W;B:9B;C:83;D:8A;E:86;F:8N;G:8B;a8Ib7Xc72d5We4Qf4Dg48h43i3Jj3Gk3El35m2Ynou41o2Rp2Aqu29r1Cs0BtXuSvQwH;aNeMiKors4rH;eIiH;ng,te;ak,st3;d4e7VthH;draw,er;a2d,ep;i2ke,nHrn;d1t;aHie;li9SniAry;nHplift;cov1dIear80found7WlHplug,rav7Jtie,ve8K;eaAo3R;erHo;cut,go,sta9Vval9Jwhelm;aSeQhNoMrHuI;aIeH;mb3;ffi3Lmp3nsH;aDpH;i7oE;pp3ugh4;aIiIrHwaE;eat4i2;nk;aHm9F;ch,se;ck3ilor,keHmp1r80;! paE;a0Gc0Fe0Dh09i07l05mugg3n04o02pZquYtRuJwH;all7GeeHim;p,t4;bLccKffJggeBmmIp2KrH;mouFvi2;ari0on;er,i5;e77umb;li91mIsiHveE;de,st;er9it;aLe83iJrH;ang3eHi2;ng23w;fHng;f4le;gg1rH;t3ve;a41iA;a4KeIit,l6XoH;il,of;ak,nd;lHot70w;icCve;atGeak,i0M;aHi6;m,y;ft,nHt;g,k;aJi5UoIriHun;nk,v67;ot,rt4;ke,rp4tt1;eHll,nd,que7Wv1w;!k,m;aven9ul8C;dd4tis1Dy;a0CeJiIoH;am,ut;d,p4;a07b05c03d02fZgroup,heaYiXlVmUnTpRq3CsNtLup,vH;amp,eIiHo31;sCve;l,rH;e,t;i7rH;ie2ofC;eFiJpo85tHurfa5;o1YrH;a51iDuctu7;de,gn,st;el,hra0lHreseF;a5e6I;d1ew,o05;a4We36o2;a8eFiHoad,y;e2nq3Rve;mbur0nf2Z;r0t;inIleDocus,reAuH;el,rbiA;an5e;aDu5;ei2k7Sla3ToHyc3;gni31nci3up,v1;oot,uH;ff;ct,d,liH;se,ze;tt3viA;aAenGit,o8;aVerTinpoiFlumm1GoSrKuH;b3Tke,niArHt;poEsuH;aFe;eLoH;cJd,fe4HhibCnoIpo0sp1tru6vH;e,i6o55;un5;la3Du7;aGclu6dIf1occupy,sup0FvH;a5TeF;etermi4DiD;aGrtr55sse4A;cei2fo47iAmea8plex,sHva6;eve7iBua6;mp1rHtrol,ve,y;a60t5W;bMccuLmCpKutJverHwe;lap,sHtu6Gu0;ee,h1A;gr4Ynu25pa5;era8i43po0;py,r;ser2ta3S;aLe0SiIoHultiply;leBu69;micInHspla5;ce,g3us;!k;iHke,na9;m,nta3L;aOeKiHo0u3B;e,ke,ng1quHv4;eHi6C;fy;aJnHss4;d,gH;th4;rn,ve;ng29u1H;eep,nH;e3Xow;o39uH;gg3xtaH;po0;gno7mUnHrk;cSdQfPgeBhOitia8ju7q17sMtJun5ZvH;a6eHo0W;nt,rt,st;erIimi5WoxiOrH;odu5u6;aDn,pr01ru5X;iBpi7tHu7;il,ruD;abCibC;eBo31u0;iHul9;ca8;i8lu6;b5Imer0pH;aKer4Fin9ly,oIrH;e2Xis5Vo2;rt,se,veH;riA;le,rt;aKeJiHoiBuE;de,jaHnd1;ck;ar,iQ;mp1ng,pp4rang58ve;ath1et,i2le1XoKrH;aIeHow;et;b,pp3ze;!ve4W;aSer3Ri5ElRorLrIuH;lf3Zndrai0r3V;eIiHolic;ght4;e0Nsh4;b3JeKfeCgIsH;a32ee;eHi2;!t;clo0go,shHwa4M;ad35;ee,i2V;lt1st4;a0KdCl0Im0CnUquip,rTsStGvQxH;a20cNeEhMiLpItHu6;ing0Uol;eIi7lHo0un9;a1VoC;ct,di8l;st,t;a3oE;e2RlH;a0Wu6;alua8oH;ke,l2;chew,pou0tab12;a0u4J;aXcUdSfRgPhan5joy,lOqNrMsuLtJvH;e0UisH;a9i4O;er,i5rH;a1HenGuB;e,re;iGol;ui7;ar9iB;a9eHra2ulf;nd1;or5;ang1oHu7;r0w;irc3lo0ou0BrIuH;mb1;oaGy42;b3ct;bJer9pH;hasiHow1;ze;a0Rody,rH;a5oiH;d1l;ap0eDuH;ci3Qde;rHt;ma0Ln;a0Le01iJo,rHwind3;aw,ed9oH;wn;agno0e,ff1g,mi2AsKvH;eHul9;rHst;ge,t;ab3bTcOlod9mant3pMru3JsLtH;iHoEu2X;lIngH;uiA;!l;ol2ua6;eHla5o0ro2;n0r0;a2Oe2XlJoHu0L;uHv1;ra9;aHo0;im;a3Bur0;af4bXcRduDep4fQliPmMnKpJra1WsiBtaGvH;eHol2;lop;aEiDlo7oE;oHy;te,un5;eIoH;liA;an;mCv1;a5i07o03raud,y;ei2iLla7oJrH;ee,yH;!pt;de,mHup3;missi2Ypo0;de,ma8ph1;aIrief,uH;g,nk;rk;mp4rk4uF;a09ea0h06i05l04oIrHurta1B;a2ea8ipp3;ales5e01habCinci6ll00mYnHrro6;cVdSfOju7no8qu1sLtJvH;eHin5;ne,r9;aHin27ribu8;in;er2iIoli29pi7titu8uH;lt;d1st;eJiIoHroFu0;rm;de,gu7rm;ss;eIoH;ne;mn,n0;eHlu6ur;al,i2;buBe,men5pH;e8i3ly;eDi6u6;r5xiB;ean0iT;rcumveFte;eIirp,oH;o0p;riAw;ncHre4t1ulk;el;aZeTi6lRoPrKuH;iIrHy;st,y;ld;aKeaJiIoad4;en;ng;stfeLtT;ke;il,l0Ymba0TrHth1;ne,rL;eHow;ed;!come,gLha2liKqueaJstItrHwild1;ay;ow;th;e2tt3;in,ui3;bysCckfi7ff3tH;he;b15c0Rd0Iff0Ggree,l0Cm09n03ppZrXsQttNuLvIwaC;it;eEoH;id;rt;gHto0X;meF;aGeBraD;ct;ch;pi7sItoH;niA;aJeHi03u7;mb3rt,ss;le;il;re;g0Gi0ou0rH;an9i2;eaJly,oiFrH;ai0o2;nt;r,se;aLi0FnItH;icipa8;eIoHul;un5y;al;ly0;aIu0;se;lga07ze;iJlH;e9oHu6;t,w;gn;ix,oH;rd;a02jMmiJoIsoH;rb;pt,rn;niHt;st1;er;ouIuB;st;rn;cKhie2knowled9quiHtiva8;es5re;ce;ge;ePliNoJrIusH;e,tom;ue;mHst;moIpH;any,liA;da8;ma8;te;pt;andNet,i6oJsH;coJol2;ve;liArt,uH;nd;sh;de;on",Adjective:"true¦0:A7;1:BH;2:A4;3:B7;4:AZ;5:9Y;6:7W;7:AK;8:AC;9:BF;A:79;B:AN;C:B1;D:B6;E:9N;a9Rb94c87d7Oe72f6Ig6Ah5Xi4Uj4Tk4Ql4Fm3Zn3Oo35p2Oquart7Ir2Ds1Dt14uSvOwFye29;aMeKhIiHoF;man6oFrth79u10;dA2zy;despreAQn w8Xs7Y;acked1HoleF;!sa7;ather1ReFll o6Uste1D;!k6;nt1Jst65te5;aHeGiFola5P;bBJce versa,gi3Kle;ng62rsa5N;ca1gBHluAK;lt0PnLpHrGsFttermoBA;ef99u4;b8Wge1; Hb31pGsFtiA6;ca7et,ide d4O;er,i7X;f4Yto da3;a0Fbecom2c0Bd04e02f01gu1XheaB5iXkn4LmUnTopp06pRrNsJtHus0wF;aFiel3I;nt0rra0P;app0eXoF;ld,uS;eHi36o56pGuF;perv06spect2;e1ok9D;en,ttl0;eFu6;cogn06gul2QlGqu0YsF;erv0olv0;at0ent2;aFrecede0E;id,rallel0;am0otic0;aFet;rri0tF;ch0;nFq25vers4;sur0terFv0O;eFrupt0;st0;air,inish0orese8X;mploy0nd2v8WxpF;ect0lain0;eHisFocume01ue;clFput0;os0;cid0rF;!a8HcovAha88ly2nea85privileg0sMwF;aFei97;tAy;hGircumcFonvinc2;is0;aFeck0;lleng0rt0;b1Zppeal2ssum2tteGuthorF;iz0;nd0;i46ra;aLeIhoHip 24oGrF;anspare1encha1i3;gethAleA2p notch,rpB;rny,ugh69;ena82mpGrF;r45tia5;eCo8F;leFst4H;nt0;a0Dc09e07h06i04ki03l01mug,nobbi4SoXpSqueami4StKuFymb8T;bHccin9i generis,pFr6;erFre7D;! dupAb,vi6R;du0li7Bp6AsFurb79;eq8Ztanda9M;aLeKi15o2NrGubboFy4L;rn;aightGin59ungF; o2K; fFfF;or7J;adfa9Dri7;lwa66tu7Q;arIeHirGlendBot Fry;on;it0;c3Ke1O;k6se; call0lub7mbAphistic13rHuFviT;ndFth18;proof;dBry;e5SipF;pe5shod;ll0n d7G;g2EnF;ceEg7istA;am3NeA;co1Wem6lfFn61re8; suf4Qi3Y;aGholFient36;ar6;rlFth2;et;cr0me,tisfac74;aOeIheumatoBiGoF;bu8Ott75y4;ghtFv4;-w2f6M;cJdu8ElInown0pro5ZsGtF;ard0;is40oF;lu3na1;e1Puc3Y;alcit8Me1ondi3;bBci4mpa1;aReOicayu8laNopuli8ErGuF;bl7Injabi,zzl0;eKiIoF;b7KfGmi42pFxi2I;er,ort7Q;a8uD;maFor,sti8va3;!ry;ciDexist2ma28paB;cBid;ac2Unt 3ErFti3;fe9ma3UtFv7M;!i3T;i2UrFss7H;anoBtF;-5OiF;al,s5M;bSffQkPld OnMrLthAutKverF;!aIbMdHhGni6Vseas,t,wF;ei6Urou6U;a5Te70;ue;ll;do1Der,si60;d3Kg27otu5P; bFbFe on o8go2li8;oa7Q;fashion0school;!ay; gua7NbFha5Kli8;eat;eHligGsF;ce8er0Qo19;at0;diFse;a1e1;aOeNiMoGuF;anc0de; moEnHrthFt6L;!eFwe7B;a7Arn;chaGdescri78prof2UsF;top;la1;ght6;arby,cessa5ighbor6xt;k0usiat2v4;aPeNiLoHuF;dIltiF;facet0p7;deHlGnFot,rbBst;ochro4Pth6;dy;rn,st;ddle ag0nF;dblYi;agAdiocEga,nac2rFtropolit4I;e,ry;cIgenta,inHj0Ekeshift,mmGnFri4Hscu5Tver17;da55y;ali4Eo4M;!stream;abEho;aOeLiIoFumber2;ngFuti1P;sta3MtF;erm,i4A;ghtGteraF;l,ry,te;heart0wei5G;ft-w2gFssAth4;al,eFi0L;nda5;nguBps0te6;apGind6nF;ow2;ut;itte5uniV;ce co0Ggno6Ell0Bm03nHpso 2PrF;a3releF;va1; YaXcoVdQePfOgrNhibi4Ji04nMoLsHtFvalu5E;a9eF;nDrdepe2F;a8iGolFuboI;ub7ve1;de,gF;nifica1;rdi5F;a3er;own;eriHiKluenUreq5A;pt,rt;eHiGoFul1L;or;e,re9;fiFpe22termi57;ni3;mpFnsideCrre9;le3;ccuCdeq57ne,ppr4D;fFsitu,vitro;ro1;mJpF;arHeGl12oFropA;li3r0Y;nd2rfe9;ti4;aGeFi15;d45nD;tuE;egGiF;c0VteC;al,iF;tiF;ma3;ld;aOelNiLoFuma8;a5meInHrrGsFur6;ti7;if47;e51o3O; ma39sF;ick;ghfalut2BspF;an42;liZpf2W;i5llow0ndGrdFtL; 04coEwork2;sy,y;aKener3Xiga34lob4oJraGuF;il1Jng ho;cGtF;ef2Pis;ef2O;ld34od;iFuc28;nf2L;aVeSiQlOoJrF;aGeFil6ug4;q3Xtf2I;gFnt3M;i7ra1;lk10oHrF; keeps,eFge0SmAtu3Vwa4G;go2i27s3L;liF;sh;ag4Gowe5uF;e1or3Z;e5nF;al,i3;d Gmini8rF;ti7ve1;up;bl0lDmili0Sr Fux;oFreach2;ff;aXfVlTmQnOqu4rMthere4veryday,xF;a9em3YpIquisi3traHuF;be44lF;ta1;!va2I;edRlF;icF;it;e9stF;whi7; Fough,tiE;rou3sui3;erGiF;ne1;ge1;dFe27oq30;er6;ficF;ie1;gAsF;t,ygo2;er;aWeMiHoGrFue;ea5owY;ci7mina1ne,r2Yt2ubQ;dact2Gfficult,m,sGverF;ge1se;creGePjoi1paCtF;a1in9;et,te; Nadp0UceMfiLgeneCliJmuEpeIreli9sGvoF;id,ut;pFtitu3ul1I;eCoF;nde1;ca3ghF;tf10;a1ni3;as0;facto;i6ngero0G;ar0Ae07h06i05l04oOrIuF;rmudgeon6stoma5teF;sy;ly;aIeHu1CystalF; cleFli8;ar;epy;fFv14z0;ty;erTgSloRmOnGrpoCunterclUveFy;rt;cLdJgr1YjIsHtrF;aFi3;dic0Vry;eq1Vta1;oi1ug4;esceFuM;nd2;a1NiD;atoDmensuCpF;ass1QulF;so5;ni4ss4;e1niza1;ci1H;ockwiD;rcumspe9vil;ee5intzy;leGrtaF;in;ba3;diac,efZ;aZePiLliJoGrFuck nak0;and new,eathtak2isk,on21;gGldface,naF; fi04fi04;us;nd,tF;he;gGpartisFzarE;an;tiF;me;autifNhiMlKnGsFyoM;iVtsell2;eGiFt;gn;aFfi04;th;at0oF;v0w;nd;ul;ckwards,rF;e,rT; priori,b13c0Zd0Tf0Ng0Ihe0Hl09mp7nt06p00rTsQttracti0MuLvIwF;aGkF;wa1B;ke,re;ant garGeraF;ge;de;diIsteEtF;heFoimmu8;nt07;re;to5;hGlFtu3;eep;en;bitJchiv4roItF;iFsy;cula3fiF;ci4;ga1;ra5;ry;pFt;aHetiz2rF;oprF;ia3;ll2re1;ing;iquFsy;at0e;ed;cohKiJkaHl,oGriFterX;ght;ne,of;li8;ne;ke,ve;olF;ic;ad;ain07ed,gressiIi7rF;eeF;ab7;le;ve;fGraB;id;ectGlF;ue1;ioF;na3; JaIeGvF;erD;pt,qF;ua3;ma1;hoc,infinitum;cuCquiGtu4u3;al;esce1;ra3;erSje9lPoNrKsGuF;nda1;e1olu3trF;a9uD;se;te;eaGuF;pt;st;aFve;rd;aFe;ze;ct;ra1;nt",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;e,m,y;!l,t;e0im;!'s",Preposition:"true¦-,aPbMcLdKexcept,fIinGmid,notwithstandiWoDpXqua,sCt7u4v2w0;/o,hereSith0;! whHin,oW;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h1ill,oward0;!s;an,ereby,r0;ough0u;!oM;ans,ince,o that,uch G;f1n0ut;!to;!f;! 0to;effect,part;or,r0;om;espite,own,u3;hez,irca;ar1e0oBy;sides,tween;ri7;bo8cross,ft7lo6m4propos,round,s1t0;!op;! 0;a whole,long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s",PhrasalVerb:"true¦0:92;1:96;2:8H;3:8V;4:8A;5:83;6:85;7:98;8:90;9:8G;A:8X;B:8R;C:8U;D:8S;E:70;F:97;G:8Y;H:81;I:7H;J:79;K:4G;a9Gb7Vc6Sd6Me6Kf5Ig51h4Ciron0j48k41l3Fm32n2Zo2Xp2Dquiet Hr1Ys0Lt00uYvacuu6RwOyammerBzL;ero Dip MonL;e0k0;by,ov9up;aReNhMiLor0Nrit1A;mp0n3Gpe0r5s5;ackAeel Di0T;aMiLn34;gh 3Xrd0;n Dr L;do1in,oJ;it 7Ak5lk Mrm 6Ash Lt84v60;aw3do1o7up;aw3in,oC;rgeBsL;e 2herE;a01eZhWiSoRrNuLypQ;ckErn L;do1in,oJup;aMiLot0y 31;ckl80p F;ck HdL;e 5Z;n7Xp 3Fs5K;ck NdMe Lghten 6me0p o0Sre0;aw3ba4do1in,up;e Iy 2;by,oG;ink Mrow L;aw3ba4in,up;ba4ov9up;aLe 78ll63;m 2r 5N;ckBke Mlk L;ov9shit,u48;aLba4do1in,leave,o66up;ba4ft9pa6Aw3;a0Wc0Ue0Nh0Ji0Gl0Am09n08o07p02quar5HtRuPwL;earNiL;ngMtch L;aw3ba4o8L; by;cLi6Cm 2ss0;k 65;aSeRiQoOrLud36;aigh2Eet76iL;ke 7Tng L;al6Zup;p Lrm2G;by,in,oG;cKnKr 2tc4O;p F;cKmp0nd MrLveAy 2P;e Ht 2M;ba4do1up;arKeOiNlMrLurB;ead0ingBuc5;a49it 6I;c5ll o3Dn 2;ak Fe73ll0;aKber 2rt0und like;ap 5Wow Duggl5;ash 6Ooke0;eep OiLow 6;cMp L;o6Eup;e 69;in,oL;ff,v9;de1Agn 4OnLt 6Hz5;gLkE; al6Ble0;aNoLu5X;ot Lut0w 7N;aw3ba4f48oC;cKdeEk6FveA;e Qll1Ond Prv5tL; Ltl5K;do1foMin,o7upL;!on;ot,r60;aw3ba4do1in,o4Wup;oCto;al67out0rL;ap66ew 6K;ilAv5;aYeViToPuL;b 5Zle0n Lstl5;aMba4do1inLo2Jth4Ou5Q;!to;c2Xr8w3;ll Not MuL;g3IndA;a2Wf3Po7;ar8in,o7up;ng 69p oLs5;ff,p19;aLelAinEnt0;c6Id L;o3Oup;cKt0;a00eZiXlUoRrPsyc35uL;ll Nn5Lt L;aLba4do1in,oJto48up;pa4Ew3;a3Kdo1in,o22to46up;attleBess LiOop 2;ah2Fon;iMp Lr50u1Hwer 6O;do1in,o6Oup;nt0;aMuL;gEmp 6;ce u21y 6E;ck Lg0le 4Bn 6p5C;oJup;el 5OncilE;c54ir 3An0ss NtMy L;ba4oG; Hc2R;aw3ba4in,oJ;pLw4Z;e4Yt D;aMerd0oL;dAt54;il Hrrow H;aUeRiQoMuL;ddl5ll I;cKnkeyNp 6uthAve L;aLdo1in,o4Mup;l4Ow3; wi4L;ss0x 2;asur5e3TlMss L;a21up;t 6;ke Mn 6rLs2Ax0;k 6ryA;do,fun,oCsure,up;a03eWiRoMuL;ck0st I;aOc4Gg NoLse0;k Lse4E;aft9ba4do1forw38in57o10u47;in,oJ;d 6;e OghtNnMsLve 01;ten F;e 2k 2; 2e47;ar8do1in;aNt MvelL; oC;do1go,in,o7up;nEve L;in,oL;pLut;en;c5p 2sh MtchBughAy L;do1o5A;in4Qo7;eNick Mnock L;do1oCup;oCup;eMy L;in,up;l Ip L;aw3ba4do1f05in,oJto,up;aNoMuL;ic5mpE;ke3Tt H;c44zz 2;a02eXiUoQuL;nMrrLsh 6;y 2;keMt L;ar8do1;r H;lLneErse3L;d Le 2;ba4dLfast,o25up;ear,o1;de Mt L;ba4on,up;aw3o7;aLlp0;d Nl Ir Lt 2;fLof;rom;f11in,o1WuX;cKm 2nMsh0ve Lz2Q;at,it,to;d Mg LkerQ;do1in,o2Uup;do1in,oL;ut,v9;k 2;aZeUive Sloss IoNrMunL; f0S;ab hold,in44ow 2V; Lof 2J;aNb1Nit,oMr8th1JuL;nd9;ff,n,v9;bo7ft9hQw3;aw3bLdo1in,oJrise,up,w3;a4ir2I;ar 6ek0t L;aLb1Gdo1in,o1Dr8up;cMhLl2Hr8t,w3;ead;ross;d aLng 2;bo7;a0Fe08iZlVoRrNuL;ck Le2P;ar8up;eMighten LownBy 2;aw3oG;eLshe29; 2z5;g 2lNol Lrk I;aLwi22;bo7r8;d 6low 2;aMeLip0;sh0;g 6ke0mLrLtten H;e F;gSlQnOrMsLzzle0;h F;e Lm 2;aw3ba4up;d0isL;h 2;e Ll 1V;aw3fQin,o7;ht ba4ure0;eQnMsL;s 2;cNd L;fLoG;or;e D;d06l 2;cPll Lrm0t1I;aNbMdo1in,oLsho0Gth0Avictim;ff,ut,v9;a4ehi2P;pa0D;e L;do1oGup;at Ldge0nd 13y5;in,o7up;aPi1IoOrL;aMess 6op LuO;aw3b04in,oC;gBwB; Iubl1C;m 2;a0Bh06l03oPrMut L;aw3ba4do1oCup;ackBeep MoLy0;ss Dwd0;by,do1in,o0Vup;me OoMuntL; o2B;k 6l L;do1oG;aSbRforPin,oOtLu0P;hMoLrue;geth9;rough;ff,n,ut,v9;th,wL;ard;a4y;paLr8w3;rt;eaMose L;in,oCup;n 6r F;aOeMiL;ll0pE;ck Der Lw F;on,up;t 2;lSncel0rPsNtch MveE; in;o1Oup;h Dt L;doubt,oG;ry MvL;e 09;aw3oJ;l Lm H;aMba4do1oJup;ff,n,ut;r8w3;a0We0NiteAl0Go05rRuL;bblOckl06il0Elk 6ndl06rMsLtNy FzzA;t 01;n 0IsL;t D;e I;ov9;anXeaViMush L;oGup;ghRng L;aOba4do1forNin,oMuL;nd9p;n,ut;th;bo7lLr8w3;ong;teL;n 2;k L;do1in,o7up;ch0;arUg 6iSn5oQrOssNttlMunce Lx D;aw3ba4;e 6; ar8;e H;do1;k Dt 2;e 2;l 6;do1up;d 2;aQeed0oLurt0;cNw L;aw3ba4do1o7up;ck;k L;in,oC;ck0nk0stA; oRaOef 2lt0nd L;do1ov9up;er;up;r Mt L;do1in,oCup;do1o7;ff,nL;to;ck Qil0nNrgMsL;h D;ainBe D;g DkB; on;in,o7;aw3do1in,oCup;ff,ut;ay;ct FdRir0sk NuctionA; oG;ff;ar8o7;ouL;nd; o7;d L;do1oLup;ff,n;wn;o7up;ut","Noun|Gerund":"true¦0:27;1:26;2:1X;3:1J;4:1Z;a25b1Oc1Cd16en14f0Yg0Wh0Ti0Rjog20k0Pl0Lm0In0Go0Cp05ques08rWsFtBu9volunt15w5y17zo2;a7ed1Si3or6r5;ap1Oest1Ci1;ki0r1O;i1r2s1Utc1U;nder5pri23;st1Mta4;al4e7hin4i6ra5y1J;c4di0i2v0Z;mi0p1H;a1Ys1;aKcHeGhEin1PkatClZmo4nowBpeAt8u6w5;ea3im1U;f02r5;fi0vi0J;a1Lretc1Ju5;d1BfJ;l0Xn1C;b6i0;eb5i0;oar19;ip15o5;rte2u1;a1r0At1;h6o3re5;a1He2;edu0Ooo0O;i0Nyi0;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1oub1r6umOw5;elB;awi0es04i5;n4vi0;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng",ProperNoun:"true¦barbie,c4diego,e3f2iron maiden,kirby,m0nis,riel,stevens;ercedes,i0;ckey,ssy;inn,lorence,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:77;1:64;2:6J;3:6M;4:5V;a6Bb56c4Ld4Be47f3Zg3Kh3Ci33j2Yk2Hl25m1Nn1Do1Ap0Xq0Vr0Os05tRuQvLwDxiBy9z5;a7h5i4Puri4R;a5e5ongsh0;ng3K;greb,nzib5J;ang2e5okoha3Vunfu;katerin3Krev0;a5n0R;m5Kn;arsBeAi6roclBu5;h0xi,zh5S;c7n5;d5nipeg,terth4;hoek,s1N;hi62kl3D;l66xford;aw;a8e6i5ladivost5Polgogr6O;en3lni6V;ni24r5;n2o3saill4Q;lenc4Zncouv3Vr3ughn;lan bat1Erumqi,trecht;aFbilisi,eEheDiBo9r7u5;l23n66r5;in,ku;i5ondh65;es54poli;kyo,m32ron1Rulo5;n,uS;an5jua3l2Wmisoa6Era3;j4Wshui; hag65ssaloni2K;gucigal28hr0l av1W;briz,i6llinn,mpe59ng5rtu,shk2U;i3Hsh0;an,chu1n0p2Hyu0;aEeDh8kopje,owe1It7u5;ra5zh50;ba0It;aten is58ockholm,rasbou6Auttga2Y;an8e6i5;jiazhua1llo1m60y0;f53n5;ya1zh4K;gh3Nt4T;att48o1Yv47;cramen18int ClBn5o paulo,ppo3Urajevo; 7aa,t5;a 5o domin3H;a3fe,m1O;antonBdie3Ffrancisco,j5ped3Qsalvad0L;o5u0;se;em,t lake ci5Iz28;lou5Bpeters27;aAe9i7o5;me,sar5t5C;io;ga,o5yadh;! de janei3H;cife,ims,nn3Lykjavik;b4Uip4lei2Knc2Rwalpindi;ingdao,u5;ez2i0R;aFeEhDiCo9r7u6yong5;ya1;eb5Bya1;a5etor3O;g54to;rt5zn0; 5la4Eo;au prin0Nelizabe26sa04;ls3Rrae5Ctts28;iladelph3Inom pe1Coenix;ki1r23tah tik3G;dua,lerZnaji,r4Qt5;na,r34;ak46des0Lm1Or6s5ttawa;a3Xlo;an,d07;a7ew5ing2Hovosibir1Lyc; 5cast38;del26orlea46taip16;g8iro4Yn5pl2Yshv35v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0Y;aFeCi9o6u5;mb2Cni28sc40;gadishu,nt6s5;c15ul;evideo,pelli1Tre31;ami,l6n16s5;kolc,sissauga;an,waukee;cca,d5lbour2Omph43ndo1Essi3;an,ell5i3;in,ín;cau,drAkass2Tl9n8r5shh4B;aca6ib5rakesh,se2M;or;i1Ty;a4FchFdal10i48;mo;id;aDeAi8o6u5vSy2;anMckn0Pdhia3;n5s angel27;d2g bea1O;brev2Ce3Mma5nz,sb2verpo29;!ss28; ma3Ai5;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Gn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd37rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Zi2H;che2d5;ianap2Mo20;aAe7o5yder2W; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Oupe;ld coa1Bthen5;bu2S;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal29es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,nkirk,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Zr es sala1KugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1Q;lo7n6penhag0Ar5;do1Ok;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr14;ch8sha,zh07;gliari,i9lga8mayenJn6pe town,r5tanO;acCdiff;ber1Ac5;un;ry;ro;aWeNhKirmingh0WoJr9u5;chareTdapeTenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iCl9ng8r5;g6l5n;in;en;aluru,hazi;fa6grade,o horizon5;te;st;ji1rut;ghd0BkFn9ot8r7s6yan n4;ur;el,r07;celo3i,ranquil09;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a05b02cc01ddis aba00gartaZhmedXizawl,lSmPnHqa00rEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a8c5kaOtwerp;hora6o3;na;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 7buquerq6eppo,giers,ma5;ty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦a00bYcUdTeSfRgMhLiJjfk,kHlFmDnBorAp8r7s6t3u2vostok,wake isCy0;a0yz;kutGngtze;laanbaatar,pT;ahiti,h0;amWe 0;bronx,hamptons;akhalIeine,fo,oho,under5yd;ed sea,io grande;acifWek,h0itcairn;l,x;ange county,d,inoco;ew eng0ile;land;a0co,ekong,idIuc;gadSlibu,nhattS;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianLochina;arlem,kg,nd,ovd;a3odavari,re0;at 0enwich;brita0lakC;in;ngAy village;co,ra;urope,verglad8;anube,en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;driadic,frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,on3som3t0week end,yesterd4;mr1o0;d2morrow;!w;ed0;ay",Duration:"true¦centurAd8h7m5q4se3w1y0;ear8r8;eek0k7;!end,s;ason,c5;tr,uarter;i0onth3;llisecond2nute2;our1r1;ay0ecade0;!s;ies,y",FemaleName:"true¦0:IS;1:IW;2:I5;3:I4;4:IM;5:I9;6:JD;7:GQ;8:J9;9:J5;A:HD;B:HN;C:IE;D:J2;E:II;F:H2;G:C4;H:HP;aGIbFDcDJdCSeBIfB0gAAh9Qi9Dj8Ck7Cl5Wm46n3Ko3Gp34qu33r2Bs16t0Fu0Dv03wWxiUyPzI;aMeJineb,oIsof2;e3Rf2la,ra;h3iLlJna,ynI;ab,ep;da,ma;da,h3iIra;nab;aLeKi0GolB3uJvI;etAonDH;i0na;le0sen2;el,gm3Gn,rGAs8T;aoIme0nyi;m5YyAA;aNendDRhiD8iI;dele9lKnI;if45niIo0;e,f44;a,helmi0lIma;a,ow;ka0nB;aOeLiIusa5;ck82kJlAole7viI;anGenIQ;ky,toriBE;da,lA5rIs0;a,nIoniGV;a,iFH;leInesGV;nI7rI;i1y;g9rIxGW;su5te;aZeVhSiOoMrJuIy3;i,la;acIPiIu0L;c2na,sI;hGta;nIr0H;iGya;aKffaEGnIs6;a,gtiI;ng;!nFHra;aJeIomasi0;a,l9Lo87res1;l2ndolwethu;g9Co85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe3iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlett,e0ChYiUkye,neza0oStOuJyI;bI2lvi1;ha,mayI5ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHQr5;b2fiA3m0MnIphi1;d3ia,ja,ya;er3lKmon1nJobh8MtI;a,i;dy;lEHv2;aNeJirIo0risEZy5;a,lDD;ba,e0i5lKrI;iIr6Gyl;!d8Efa;ia,lDP;hd,iNki3nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7YvI;da,inj;e0ife;en1i0ma;anA0bMd3Kh1PiBkLlKmJnd3rIs6vannaC;aCi0;ant6i3;lDEma,ome;ee0in8Ou3;in1ri0;a05e00hYiVoIuthDC;bTcSghRl8GnQsKwJxI;anAUie,y;an,e0;aJeIie,lD; merBIann8ll1marD6t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8B;hel63io;bDFer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG7oI;da,n1L;an0bKemGgi0iJnIta,y0;a86ee;han81na;a,eI;cE5kaC;bi0chJe,i0mo0nIquEFy0;di,ia;aEDelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCL;scil3LyamvaB;lly,rt2;ilome0oebe,ylI;is,lis;ggy,nelope,r5t3;ige,m0UnLo5rvaDBtJulI;a,etAin1;ricIt4T;a,e,ia;do3i07;ctav2dJfCUis6lIphCUumBYyunbileg;a,ga,iv2;eIvA9;l2tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBJkLlaKna,sIta,vi;anIha;ur;!y;a,iDNki;hoHk9SolI;a,eDE;!mh;hir,lIna,risFsreE;!a,lBO;asuMdLh2i6Cl5nKomi8rgEJtIzanin zah3;aIhal4;li1s6;cy,etA;e9iEP;nngu30;a0Ackenz4e02iNoKrignayani,uriD8yI;a,rI;a,lOna,tH;bi0i3llBDnI;a,iI;ca,ka,qCY;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEI;!l,nB;dy,eIh,n4;nhHrva;aLdKiCKlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5EgOi,lLrI;edi77iJjem,on,yI;em,l;em,sF;an4iIliF;nIsC9;a,da;!an,han;b0DcANd0Be,g09ha,i08ja,l06n04rMsoum5YtLuJv80x9FyIz4;bell,ra,soB4;de,rI;a,eE;h8Cild1t4;a,cYgUiLjor4l7Qn4s6tKwa,yI;!aIbe6Uja9lA9;m,nBC;a,ha,in1;!aKbC6eJja,lDna,sIt62;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliACcJeduarBfern5EjIlui5W;o6Dul2;ecil2la3;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Vi75y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD6on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d2la,nI;!a,dJeBCnIsCG;!a,eBB;a,sCE;aCRcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a84i8;lIn1t7;ei;!in1;aTbb98dSepa,lNnKsJv2zI;!a,be5KetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9We;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c2t2;e2NlCB;la,nIra;a,ie,o3;a,or1;a,gh,laI;!ni;!h,nI;a,d3e,n5O;cPdon93iOkes6mi96na,rNtKurJvIxmi,y5;ern1in2;a,e53ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAFoOrKyI;lIra;a,ee,ie;istIy6B;a,en,iJyI;!na;!e,n58;nul,ri,urtnAV;aPerOlAUmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei3ongordzol;dij1w5;el7MiLjsi,lKnJrI;a,i,ri;d3na,za;ey,i,lB8s4y;ra,s6;bi7cAEdiat7EeAXiSlRmQnyakuma1BrOss6HtLvi7yI;!e,lI;a,eI;e,i8H;a6BeJhIi4MlDri0y;ar69er69ie,leErAXy;!lyn8Cri0;a,en,iIl5Qoli0yn;!ma,nGsF;a5il1;ei8Ai,l4;a,tl6I;a09eZiWoOuI;anMdLliIst61;a8DeIsF;!n9tI;!a,te;e5Hi3Iy;a,i7;!anOcelDdNelHhan7NleMni,sJva0yI;a,ce;eIie;fIlDph5S;a,in1;en,n1;i8y;!a,e,n40;lIng;!i1DlI;!i1C;anOle0nLrKsI;i88sI;!e,i87;i,ri;!a,elHif2AnI;a,etAiIy;!e,f28;a,e89iJnI;a,e88iI;e,n1;cNda,mi,nJque4UsminGvie3y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob7Z;!n9H;do3;belIdo3;!a,e,l37;a72en1i0ma;di3es,gr6Tji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin29;da,ll4rten21snI;a,i9K;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1AiKlJnriet7rmi9sI;sa,t19;en2Qga,mi;di;bi2Bil8ClOnNrKsJtIwa,yl8C;i5Nt4;n5Tti;iImo4Xri4Y;etI;!te;aCnaC;a,ey,l4;a03eXiSlQoOrLunKwI;enIyne1O;!dolD;ay,el;acieJetIiselB;a,chE;!la;ld19ogooI;sh;adys,enIor2yn2G;a,da,na;aLgi,lJna,ov84selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Ni,m3Atru86;etAi4S;a,eIna;s25vieve;ma;bJle,mIrnet,yH;al5Ji5;i5BrielI;a,l1;aUeRiQlorPoz2rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0N;n1s5X;!ca;a,enc2;en,o0;lJn0rnI;anB;ec2ic2;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no3oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c2da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh2iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr2nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d3nI;!a,e;hl2i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th2;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat3;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a3er3ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d3elHtI;al,elH;cJlI;esAi42;el2ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a3o3ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el2;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!l1;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar2;el;aMberLeliKiIy;e,l2naI;!ta;a,ja;!ly;hHiJl2nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c2sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c2is6jaLksaLna,sKxI;aIia;!nd3;ia,saI;nd3;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",Person:"true¦a0Ob0Hc08d05e02g01hZinez,jYkVlSmMnKoJpHr9s7t4v2w0xzibit,yanni;ar0ednesday adams,ill.i.am,oode;hol,rO;a0oltaiO;lentino rossi,n go7;a1heresa may,i0yra banks;ger woods,mbaQ;tum,ylor;a0carlett johanss03hakespeaJinbad,lobodan milosevic,ocratM;ddam hussain,ntigold;a6e5i4o2u0za;mi,n dmc,paul,sh limbau0;gh;d stewart,nald0thko;inho,o;hanYvaldo;ese witherspoVil9mbrandt;ffi,y roma03;a0e08ip07lato,oe,uff daddy;lm06ris hiltS;prah winfrWra;as,e0iles crane,ostradamP; yo,l3ttI;acklemo4essia3i1o0ubarek;by,lie3net,rrissS;randa ju0tt romnR;ly;en;re;ady gaga,e0iberaT;bron jam0e;es;anye west,e1iefer suther0obe bryant;land;ats,ndall,sha;aime,effersCk rowling;a0itlPulk hogan;lle berry,rrisA;ast9otye;ff1m0nya,zekiel;eril lagasse,inem;ie;a1e0ick wolf,rake;gas,nzel washingt4;lt3nB;ar5h3lint2o0;nfuci0olio;us;on;aucCy0;na;dinal wols1son0;! palm9;ey;a5e3o2ro0;ck,n0;te;no;ck,yon0;ce;nksy,rack obama;ristot1shton kutch0;er;le",LastName:"true¦0:9G;1:9W;2:9Y;3:9O;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s2;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi3j6ka3IoGrFsui,uD;om50rD;c3n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps2s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv3zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8infeld,mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins2;!on;bei0LcEes,vDzzo;as,e8;ci,hards2;ag3es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss2;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym3;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx2;ic,ov6X;ls1miD;!n1;ils2mD;co42ec;gy,kaEray3varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h3lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h3iSlQnez48oJrGuEvar3woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss2;anEnsD;en,on,t2;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks2obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m3ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers2;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw2;o,staf2Utierr7zm3;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m3;calv9zale0H;aj,i;bs2l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm3uD;cDent9ji3E;hs;ntaDrt6urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s2;er,is2wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g3he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w3;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e2uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em3liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm3tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder2mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy3;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss2;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl3tchis2yD;aEd6;in;la;aEsl3;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s2;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",Honorific:"true¦director1field marsh2lieutenant1rear0sergeant major,vice0; admir1; gener0;al",Adverb:"true¦a07b04dZeXfSheQinPjustOkinda,likewiYmMnJoEpCquite,r9s5t2u0very,well;ltima00p0; to,wards5;h1iny bit,o0wiO;o,t6;en,us;eldom,o0uch;!me1rt0; of;how,times,w0B;a1e0;alR;ndomQth04;ar excellenEer0oint blank; Khaps;f3n0utright;ce0ly;! 0;ag04moW; courFten;ewIo0; longVt 0;onGwithstanding;aybe,eanwhiMore0;!ovS;! aboW;deed,steX;lla,n0;ce;or2u0;l8rther0;!moJ; 0evK;exampCgood,suH;n mas0vI;se;e0irect2; 2fini0;te0;ly;juAtrop;ackward,y 0;far,no0; means,w; GbroFd nauseam,gEl7ny5part,s4t 2w0;ay,hi0;le;be7l0mo7wor7;arge,ea6; soon,i4;mo0way;re;l 3mo2ongsi1ready,so,togeth0ways;er;de;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aXbTcReNhowMiEjust00noBo9p8supposing,t5wh0yet;e1il0o3;e,st;n1re0thN; if,by,vM;evL;h0il,o;erefOo0;!uU;lus,rovided th9;r0therwiM;! not; mattEr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mIcaForder t0;h0o;at;! 0;only,t0w0;hen;!ev3;ith2ven0;! 0;if,tB;er;o0uz;s,z;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s",Determiner:"true¦aBboth,d9e6few,le5mu8neiDplenty,s4th2various,wh0;at0ich0;evC;a0e4is,ose;!t;everal,ome;!ast,s;a1l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er","Adj|Present":"true¦a07b04cVdQeOfKhollJidRlFmDnarrJoCpAqua9r8s4t2utt3w0;aLet,ro0;ng,ug08;end0hin;er;e2hort,l1mooth,our,pa9tray,u0;re,speT;i2ow;cu6da01leRpaM;eplica00ig01;ck;aGr0;eseTime,omU;bscu1pen,wn;atu0e3odeG;re;a2e1i0;gTve;an;st,y;ow;a2i1oul,r0;ee,inge;rm;iHke,ncy,st;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry,ull;le;ffu9re6;fu8libe0;raE;alm,l5o0;mpleCn3ol,rr1unterfe0;it;e0u7;ct;juga8sum7;ea1o0;se;n,r;ankru1lu0;nt;pt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3D;1:3R;2:3G;3:2I;a3Vb3Ec35d2Ve2Of2Bg1Xh1Mi1Gj1Fk1Cl14m0Yn0To0Sp0Jqu0Hr08sItDug0vBw5y4za0R;el11ouO;ary,e7hi6i4ry;ck0Dde,l4n1ry,se;d,y;ny,te;a4i3T;k,ry;a4erda2ulgar;gue,in,st;a7en2Zhi6i5ough,r4;anqu2Een1ue;dy,g38me0ny,r04;ck,rs2A;ll,me,rt,wd3K;aScaQePhNiMkin0ClJmHoFpEt7u5w4;eet,ift;b4dd0Xperfi22rre2A;sta28t3;a9e8iff,r5u4;pVr1;a5ict,o4;ng;ig2Xn0O;a1ep,rn;le,rk,te0;e1Ti2Xright0;ci20ft,l4on,re;emn,id;a4el0;ll,rt;e5i4y;g2Om10;ek,nd2V;ck25l0mp3;a4iSrill,y;dy,l02rp;ve0Kxy;n1Lr4;ce,y;d,fe,int0l1Jv0W;a9e7i6o4ude;mantic,o1Asy,u4;gh,nd;pe,t1Q;a4d,mo0B;dy,l;gg5iGndom,p4re,w;id;ed;ai2i4;ck,et;hoBink,lAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouTud;ey,k0;liYor;ain,easa2;ny;dd,i0ld,ranM;aive,e6i5o4u16;b3isy,rm10sy;bb0ce,mb3;a4r1w;r,t;ad,e6ild,o5u4;nda13te;ist,o1;a5ek,l4;low;s0ty;a9e8i7o4ucky;f0Ln5o17u4ve0w11y0P;d,sy;e0g;ke0l,mp,tt3ve0;e1Swd;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fZsita2;dy,rYv4;en0y;nd15ppy,r4;d4sh;!y;aGenFhDiClBoofy,r4;a9e7i6o4ue11;o4ss;vy;m,s0;at,e4y;dy,n;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiT;u1y;aEeeb3iAl9o7r6u4;ll,n4r0P;!ny;aEesh,iend0;a4nd,rmF;my;at,ir9;erce5nan4;ciB;! ;le;r,ul4;ty;a7erie,sse5v4xtre0C;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i5u4;mb;r6vi5z4;zy;ne;e,ty;a4ep,nB;d4f,r;!ly;ppRrk;agey,h9l8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;evLou1;e4il0;ap,e4;sy;aIiGlDoBr6u4;ff,r0sy;ly;a7i4oad;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd","Person|Adj":"true¦brown,du2earnest,frank,mi2r0sa1;a0ich,u1;ndy;sty",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Verb:"true¦born,cannot,gonna,has,keep tabs,msg","Adj|Gerund":"true¦0:2G;1:2I;2:26;3:24;4:21;5:2E;6:28;7:23;a25b20c1Id15e0Zf0Pg0Jh0Ii0Bjud1Yl08m05o01pWrQsFtAup9v8w0Qyiel4;ar5eZ;lif0s02;aXeBhr9i3ouc7r8wis0;e02oub2us0yi1;ea0Ni8;l2vi1;l2mp0;atisf5creec7enten1Vhoc0Fkyrocke0lo14oGpFtBu9we8;e13l2;pp1Lr8;gi1pri6roun4;a9ea24i8ri0Bun1D;mula0r3;gge3r8;t2vi1;ark2ee4;a8ot7;ki1ri1;aCe9ive0o8us7;a3l2;defi14fres7ig14laFmai14s0v8war4;ea2itali8ol0R;si1zi1;gi1ll5mb2vi1;a5eAier1Elun19r8un1K;e8o12;ce4s6vai2;n4rple8;xi1;ffsApNut9ver8wi1;arc7lap0Hp09ri4whel1L;goi1l5st0Y;et0;eande3i9o0Fu8;mb2;s6tiga0;a9i8o0C;fesa0Bmi0vi1;cKg0Vs0;mDn8rri0C;cBsAt9vi8;go1Gti1;e15imida0;pi3ul0;orpo1Drea6;po6;arrowi1ea2orrif5umilia0;lCr8;a0ipZo9uel8;i1li1;undbrea8wi1;ki1;a3ea0Z;aGetc7it0lDoBr9ulf8;il2;ee0Yigh8ust12;te04;r8un4;ebo4th0H;a9o8;a0we3;mi1tte3;di1scina0;mBn9x8;ac0ci0is0plo4;ab2c8du3ga04sT;han0oura03;barras6er02p8;owe3;aJeCi8;s8zz5;appoin0gus0sen0t8;r8u0N;ac0es6;biliDcCfiMgra4mBpres6serAv8;asCelo8;pi1;vi1;an4eaI;a5liH;ta0;maOri1s7un0;aOhLlo6o8ripp2ut0;mEn8rrespon4;cerCfBspi3t8vinQ;in9r8;as0ibu0ol2;ui1;lic0u6;ni1;fCmBp8;e9ro8;mi6;l2ti1;an4;or0;a8il2;llen8rQ;gi1;lOptiva0ri1;eBin4lin4o9rui6u8;d4st2;i2oLri1un8;ci1;coJ;bsoQcLgonJlarImGppea2rEs8;pi3su3to8;n9un4;di1;is7;hi1;ri1;res0;li1;aBu6;si1;mi1;i8zi1;zi1;c8hi1;ele9ompan5;yi1;ra0;ti1;rbi1;ng","Person|Verb":"true¦b8ch7dr6foster,gra5hope,ja9lan4ma2ni9ollie,p1rob,s0wade;pike,t5ue;at,eg,ier2;ck,r0;k,shal;ce;ce,nt;ew;ase,u1;iff,l1ob,u0;ck;aze,ossom","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Ao=36,No="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",jo=No.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Io=function(e){if(void 0!==jo[e])return jo[e];let t=0,n=1,r=Ao,a=1;for(;n=0;n--,a*=Ao){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},xo=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=Co(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=To(Po[e]);Go.test(e)?Object.keys(t).forEach((t=>{if(zo[t]=e,"Noun|Verb"===e){let e=Vo(t,Ho);zo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Bo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","3","<\\3","=("].forEach((e=>Bo[e]="Emoticon")),delete Bo[""],delete Bo.null,delete Bo[" "];const Lo="Singular";var $o={beforeTags:{Determiner:Lo,Possessive:Lo,Acronym:Lo,Noun:Lo,Adjective:Lo,PresentTense:Lo,Gerund:Lo,PastTense:Lo,Infinitive:Lo,Date:Lo,Ordinal:Lo,Demonym:Lo},afterTags:{Value:Lo,Modal:Lo,Copula:Lo,PresentTense:Lo,PastTense:Lo,Demonym:Lo,Actor:Lo},beforeWords:{the:Lo,with:Lo,without:Lo,of:Lo,for:Lo,any:Lo,all:Lo,on:Lo,cut:Lo,cuts:Lo,increase:Lo,decrease:Lo,raise:Lo,drop:Lo,save:Lo,saved:Lo,saves:Lo,make:Lo,makes:Lo,made:Lo,minus:Lo,plus:Lo,than:Lo,another:Lo,versus:Lo,neither:Lo,about:Lo,favorite:Lo,best:Lo,daily:Lo,weekly:Lo,linear:Lo,binary:Lo,mobile:Lo,lexical:Lo,technical:Lo,computer:Lo,scientific:Lo,security:Lo,government:Lo,popular:Lo,formal:Lo,no:Lo,more:Lo,one:Lo},afterWords:{of:Lo,system:Lo,aid:Lo,method:Lo,utility:Lo,tool:Lo,reform:Lo,therapy:Lo,philosophy:Lo,room:Lo,authority:Lo,says:Lo,said:Lo,wants:Lo,wanted:Lo,is:Lo,can:Lo,wise:Lo}};const So="Infinitive";var Mo={beforeTags:{Modal:So,Adverb:So,Negative:So,Plural:So},afterTags:{Determiner:So,Adverb:So,Possessive:So,Reflexive:So,Preposition:So,Cardinal:So,Comparative:So,Superlative:So},beforeWords:{i:So,we:So,you:So,they:So,to:So,please:So,will:So,have:So,had:So,would:So,could:So,should:So,do:So,did:So,does:So,can:So,must:So,us:So,me:So,let:So,even:So,when:So,help:So,he:So,she:So,it:So,being:So,bi:So,co:So,contra:So,de:So,inter:So,intra:So,mis:So,pre:So,out:So,counter:So,nobody:So,somebody:So,anybody:So,everybody:So},afterWords:{the:So,me:So,you:So,him:So,us:So,her:So,them:So,it:So,himself:So,herself:So,itself:So,myself:So,ourselves:So,themselves:So,something:So,anything:So,a:So,an:So,up:So,down:So,by:So,out:So,off:So,under:So,what:So,all:So,to:So,because:So,although:So,after:So,before:So,how:So,otherwise:So,together:So,though:So,into:So,yet:So,more:So,here:So,there:So}},Jo={beforeTags:Object.assign({},Mo.beforeTags,$o.beforeTags,{}),afterTags:Object.assign({},Mo.afterTags,$o.afterTags,{}),beforeWords:Object.assign({},Mo.beforeWords,$o.beforeWords,{}),afterWords:Object.assign({},Mo.afterWords,$o.afterWords,{})};const Wo="Adjective";var qo={beforeTags:{Determiner:Wo,Possessive:Wo,Hyphenated:Wo},afterTags:{Adjective:Wo},beforeWords:{seem:Wo,seemed:Wo,seems:Wo,feel:Wo,feels:Wo,felt:Wo,stay:Wo,appear:Wo,appears:Wo,appeared:Wo,also:Wo,over:Wo,under:Wo,too:Wo,it:Wo,but:Wo,still:Wo,really:Wo,quite:Wo,well:Wo,very:Wo,how:Wo,deeply:Wo,hella:Wo,profoundly:Wo,extremely:Wo,so:Wo,badly:Wo,mostly:Wo,totally:Wo,awfully:Wo,rather:Wo,nothing:Wo,something:Wo,anything:Wo,not:Wo,me:Wo,is:Wo},afterWords:{too:Wo,also:Wo,or:Wo}};const Ko="Gerund";var Ro={beforeTags:{Adverb:Ko,Preposition:Ko,Conjunction:Ko},afterTags:{Adverb:Ko,Possessive:Ko,Person:Ko,Pronoun:Ko,Determiner:Ko,Copula:Ko,Preposition:Ko,Conjunction:Ko,Comparative:Ko},beforeWords:{been:Ko,keep:Ko,continue:Ko,stop:Ko,am:Ko,be:Ko,me:Ko,began:Ko,start:Ko,starts:Ko,started:Ko,stops:Ko,stopped:Ko,help:Ko,helps:Ko,avoid:Ko,avoids:Ko,love:Ko,loves:Ko,loved:Ko,hate:Ko,hates:Ko,hated:Ko},afterWords:{you:Ko,me:Ko,her:Ko,him:Ko,them:Ko,their:Ko,it:Ko,this:Ko,there:Ko,on:Ko,about:Ko,for:Ko}},Uo={beforeTags:Object.assign({},qo.beforeTags,Ro.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},qo.afterTags,Ro.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},qo.beforeWords,Ro.beforeWords,{is:"Adjective",was:"Adjective",of:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},qo.afterWords,Ro.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Qo={beforeTags:{Determiner:void 0,Cardinal:"Noun",PhrasalVerb:"Adjective"}};var _o={beforeTags:Object.assign({},qo.beforeTags,$o.beforeTags,Qo.beforeTags),afterTags:Object.assign({},qo.afterTags,$o.afterTags),beforeWords:Object.assign({},qo.beforeWords,$o.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective",off:"Adjective",out:"Adjective"}),afterWords:Object.assign({},qo.afterWords,$o.afterWords)};let Zo="PastTense";const Xo={beforeTags:{Adverb:Zo,Pronoun:Zo,ProperNoun:Zo,Auxiliary:Zo,Noun:Zo},afterTags:{Possessive:Zo,Pronoun:Zo,Determiner:Zo,Adverb:Zo,Comparative:Zo,Date:Zo,Gerund:Zo},beforeWords:{be:Zo,who:Zo,get:"Adjective",had:Zo,has:Zo,have:Zo,been:Zo,it:Zo,as:Zo,for:"Adjective",more:"Adjective"},afterWords:{by:Zo,back:Zo,out:Zo,in:Zo,up:Zo,down:Zo,before:Zo,after:Zo,for:Zo,the:Zo,with:Zo,as:Zo,on:Zo,at:Zo,between:Zo,to:Zo,into:Zo,us:Zo,them:Zo,me:Zo}};var Yo={beforeTags:Object.assign({},qo.beforeTags,Xo.beforeTags),afterTags:Object.assign({},qo.afterTags,Xo.afterTags),beforeWords:Object.assign({},qo.beforeWords,Xo.beforeWords),afterWords:Object.assign({},qo.afterWords,Xo.afterWords)};const ei={afterTags:{Noun:"Adjective",Conjunction:void 0}};var ti={beforeTags:Object.assign({},qo.beforeTags,Mo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},qo.afterTags,Mo.afterTags,ei.afterTags),beforeWords:Object.assign({},qo.beforeWords,Mo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},qo.afterWords,Mo.afterWords,{to:void 0,as:"Adjective"})};const ni={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ri={},ai={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},oi={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ii={beforeTags:Object.assign({},Ro.beforeTags,$o.beforeTags,ni),afterTags:Object.assign({},Ro.afterTags,$o.afterTags,ri),beforeWords:Object.assign({},Ro.beforeWords,$o.beforeWords,ai),afterWords:Object.assign({},Ro.afterWords,$o.afterWords,oi)};const si="Singular",li="Infinitive";var ui={beforeTags:Object.assign({},Mo.beforeTags,$o.beforeTags,{Adjective:si,Particle:si}),afterTags:Object.assign({},Mo.afterTags,$o.afterTags,{ProperNoun:li,Gerund:li,Adjective:li,Copula:si}),beforeWords:Object.assign({},Mo.beforeWords,$o.beforeWords,{is:si,was:si,of:si,have:null}),afterWords:Object.assign({},Mo.afterWords,$o.afterWords,{instead:li,about:li,his:li,her:li,to:null,by:null,in:null})};const ci="Person";var hi={beforeTags:{Honorific:ci,Person:ci},afterTags:{Person:ci,ProperNoun:ci,Verb:ci},ownTags:{ProperNoun:ci},beforeWords:{hi:ci,hey:ci,yo:ci,dear:ci,hello:ci},afterWords:{said:ci,says:ci,told:ci,tells:ci,feels:ci,felt:ci,seems:ci,thinks:ci,thought:ci,spends:ci,spendt:ci,plays:ci,played:ci,sing:ci,sang:ci,learn:ci,learned:ci,wants:ci,wanted:ci}};const di="Month",gi={beforeTags:{Date:di,Value:di},afterTags:{Date:di,Value:di},beforeWords:{by:di,in:di,on:di,during:di,after:di,before:di,between:di,until:di,til:di,sometime:di,of:di,this:di,next:di,last:di,previous:di,following:di},afterWords:{sometime:di,in:di,of:di,until:di,the:di}};var pi={beforeTags:Object.assign({},hi.beforeTags,gi.beforeTags),afterTags:Object.assign({},hi.afterTags,gi.afterTags),beforeWords:Object.assign({},hi.beforeWords,gi.beforeWords),afterWords:Object.assign({},hi.afterWords,gi.afterWords)};const mi="Place",fi={beforeTags:{Place:mi},afterTags:{Place:mi,Abbreviation:mi},beforeWords:{in:mi,by:mi,near:mi,from:mi,to:mi},afterWords:{in:mi,by:mi,near:mi,from:mi,to:mi,government:mi,council:mi,region:mi,city:mi}};let vi="Unit";const bi={"Actor|Verb":Jo,"Adj|Gerund":Uo,"Adj|Noun":_o,"Adj|Past":Yo,"Adj|Present":ti,"Noun|Verb":ui,"Noun|Gerund":ii,"Person|Noun":{beforeTags:Object.assign({},$o.beforeTags,hi.beforeTags),afterTags:Object.assign({},$o.afterTags,hi.afterTags),beforeWords:Object.assign({},$o.beforeWords,hi.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},$o.afterWords,hi.afterWords)},"Person|Date":pi,"Person|Verb":{beforeTags:Object.assign({},$o.beforeTags,hi.beforeTags,Mo.beforeTags),afterTags:Object.assign({},$o.afterTags,hi.afterTags,Mo.afterTags),beforeWords:Object.assign({},$o.beforeWords,hi.beforeWords,Mo.beforeWords),afterWords:Object.assign({},$o.afterWords,hi.afterWords,Mo.afterWords)},"Person|Place":{beforeTags:Object.assign({},fi.beforeTags,hi.beforeTags),afterTags:Object.assign({},fi.afterTags,hi.afterTags),beforeWords:Object.assign({},fi.beforeWords,hi.beforeWords),afterWords:Object.assign({},fi.afterWords,hi.afterWords)},"Person|Adj":{beforeTags:Object.assign({},hi.beforeTags,qo.beforeTags),afterTags:Object.assign({},hi.afterTags,qo.afterTags),beforeWords:Object.assign({},hi.beforeWords,qo.beforeWords),afterWords:Object.assign({},hi.afterWords,qo.afterWords)},"Unit|Noun":{beforeTags:{Value:vi},afterTags:{},beforeWords:{per:vi,every:vi,each:vi,square:vi,cubic:vi,sq:vi,metric:vi},afterWords:{per:vi,squared:vi,cubed:vi,long:vi}}},yi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};bi["Plural|Verb"]={beforeWords:yi(bi["Noun|Verb"].beforeWords,{had:"Plural",have:"Plural"}),afterWords:yi(bi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null,is:"PresentTense",by:"PresentTense"}),beforeTags:yi(bi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:yi(bi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var wi=bi;const ki="Adjective",Pi="Infinitive",Ai="PresentTense",Ni="Singular",ji="PastTense",Ii="Adverb",xi="Plural",Ei="Actor",Ci="Verb",Ti="Noun",Di="LastName",Oi="Modal",Fi="Place",Vi="Participle";var Gi=[null,null,{ea:Ni,ia:Ti,ic:ki,ly:Ii,"'n":Ci,"'t":Ci},{oed:ji,ued:ji,xed:ji," so":Ii,"'ll":Oi,"'re":"Copula",azy:ki,eer:Ti,end:Ci,ped:ji,ffy:ki,ify:Pi,ing:"Gerund",ize:Pi,ibe:Pi,lar:ki,mum:ki,nes:Ai,nny:ki,ous:ki,que:ki,ger:Ti,ber:Ti,rol:Ni,sis:Ni,ogy:Ni,oid:Ni,ian:Ni,zes:Ai,eld:ji,ken:Vi,ven:Vi,ten:Vi,ect:Pi,ict:Pi,ign:Pi,ful:ki,bal:ki,ton:Ti},{amed:ji,aped:ji,ched:ji,lked:ji,rked:ji,reed:ji,nded:ji,mned:ki,cted:ji,dged:ji,ield:Ni,akis:Di,cede:Pi,chuk:Di,czyk:Di,ects:Ai,ends:Ci,enko:Di,ette:Ni,iary:Ni,wner:Ni,fies:Ai,fore:Ii,gate:Pi,gone:ki,ices:xi,ints:xi,ruct:Pi,ines:xi,ions:xi,ners:xi,pers:xi,lers:xi,less:ki,llen:ki,made:ki,nsen:Di,oses:Ai,ould:Oi,some:ki,sson:Di,ians:xi,tion:Ni,tage:Ti,ique:Ni,tive:ki,tors:Ti,vice:Ni,lier:Ni,fier:Ni,wned:ji,gent:Ni,tist:Ei,pist:Ei,rist:Ei,mist:Ei,yist:Ei,vist:Ei,ists:Ei,lite:Ni,site:Ni,rite:Ni,mite:Ni,bite:Ni,mate:Ni,date:Ni,ndal:Ni,vent:Ni,uist:Ei,gist:Ei,note:Ni,cide:Ni,ence:Ni,wide:ki,vide:Pi,ract:Pi,duce:Pi,pose:Pi,eive:Pi,lyze:Pi,lyse:Pi,iant:ki,nary:ki,ghty:ki,uent:ki,erer:Ei,bury:Fi,dorf:Ti,esty:Ti,wych:Fi,dale:Fi,folk:Fi},{elist:Ei,holic:Ni,phite:Ni,tized:ji,urned:ji,eased:ji,ances:xi,bound:ki,ettes:xi,fully:Ii,ishes:Ai,ities:xi,marek:Di,nssen:Di,ology:Ti,osome:Ni,tment:Ni,ports:xi,rough:ki,tches:Ai,tieth:"Ordinal",tures:xi,wards:Ii,where:Ii,archy:Ti,pathy:Ti,opoly:Ti,embly:Ti,phate:Ti,ndent:Ni,scent:Ni,onist:Ei,anist:Ei,alist:Ei,olist:Ei,icist:Ei,ounce:Pi,iable:ki,borne:ki,gnant:ki,inant:ki,igent:ki,atory:ki,rient:Ni,dient:Ni,maker:Ei,burgh:Fi,mouth:Fi,ceter:Fi,ville:Fi,worth:Ti},{auskas:Di,parent:Ni,cedent:Ni,ionary:Ni,cklist:Ni,keeper:Ei,logist:Ei,teenth:"Value",worker:Ei,master:Ei,writer:Ei,brough:Fi,cester:Fi},{logists:Ei,opoulos:Di,borough:Fi,sdottir:Di}];const Bi="Adjective",zi="Noun",Hi="Verb";var Li=[null,null,{},{neo:zi,bio:zi,"de-":Hi,"re-":Hi,"un-":Hi},{anti:zi,auto:zi,faux:Bi,hexa:zi,kilo:zi,mono:zi,nano:zi,octa:zi,poly:zi,semi:Bi,tele:zi,"pro-":Bi,"mis-":Hi,"dis-":Hi,"pre-":Bi},{anglo:zi,centi:zi,ethno:zi,ferro:zi,grand:zi,hepta:zi,hydro:zi,intro:zi,macro:zi,micro:zi,milli:zi,nitro:zi,penta:zi,quasi:Bi,radio:zi,tetra:zi,"omni-":Bi,"post-":Bi},{pseudo:Bi,"extra-":Bi,"hyper-":Bi,"inter-":Bi,"intra-":Bi,"deca-":Bi},{electro:zi}];const $i="Adjective",Si="Infinitive",Mi="PresentTense",Ji="Singular",Wi="PastTense",qi="Adverb",Ki="Expression",Ri="Actor",Ui="Verb",Qi="Noun",_i="LastName";var Zi={a:[[/.[aeiou]na$/,Qi,"tuna"],[/.[oau][wvl]ska$/,_i],[/.[^aeiou]ica$/,Ji,"harmonica"],[/^([hyj]a+)+$/,Ki,"haha"]],c:[[/.[^aeiou]ic$/,$i]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Wi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Wi,"rammed"],[/.[aeiou][sg]hed$/,Wi,"gushed"],[/.[aeiou]red$/,Wi,"hired"],[/.[aeiou]r?ried$/,Wi,"hurried"],[/[^aeiou]ard$/,Ji,"steward"],[/[aeiou][^aeiou]id$/,$i,""],[/.[vrl]id$/,$i,"livid"],[/..led$/,Wi,"hurled"],[/.[iao]sed$/,Wi,""],[/[aeiou]n?[cs]ed$/,Wi,""],[/[aeiou][rl]?[mnf]ed$/,Wi,""],[/[aeiou][ns]?c?ked$/,Wi,"bunked"],[/[aeiou]gned$/,Wi],[/[aeiou][nl]?ged$/,Wi],[/.[tdbwxyz]ed$/,Wi],[/[^aeiou][aeiou][tvx]ed$/,Wi],[/.[cdflmnprstv]ied$/,Wi,"emptied"]],e:[[/.[lnr]ize$/,Si,"antagonize"],[/.[^aeiou]ise$/,Si,"antagonise"],[/.[aeiou]te$/,Si,"bite"],[/.[^aeiou][ai]ble$/,$i,"fixable"],[/.[^aeiou]eable$/,$i,"maleable"],[/.[ts]ive$/,$i,"festive"],[/[a-z]-like$/,$i,"woman-like"]],h:[[/.[^aeiouf]ish$/,$i,"cornish"],[/.v[iy]ch$/,_i,"..ovich"],[/^ug?h+$/,Ki,"ughh"],[/^uh[ -]?oh$/,Ki,"uhoh"],[/[a-z]-ish$/,$i,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,_i,"polish-male"]],k:[[/^(k){2}$/,Ki,"kkkk"]],l:[[/.[gl]ial$/,$i,"familial"],[/.[^aeiou]ful$/,$i,"fitful"],[/.[nrtumcd]al$/,$i,"natal"],[/.[^aeiou][ei]al$/,$i,"familial"]],m:[[/.[^aeiou]ium$/,Ji,"magnesium"],[/[^aeiou]ism$/,Ji,"schism"],[/^[hu]m+$/,Ki,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,$i,"republican"],[/[^aeiou]ician$/,Ri,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Ki,"noooo"],[/^(yo)+$/,Ki,"yoo"],[/^wo{2,}[pt]?$/,Ki,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Ji],[/[^i]fer$/,Si],[/.[^aeiou][ao]pher$/,Ri],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,$i],[/[aeiou].*ist$/,$i],[/^[a-z]et$/,Ui]],s:[[/.[^aeiou]ises$/,Mi],[/.[rln]ates$/,Mi],[/.[^z]ens$/,Ui],[/.[lstrn]us$/,Ji],[/.[aeiou]sks$/,Mi],[/.[aeiou]kes$/,Mi],[/[aeiou][^aeiou]is$/,Ji],[/[a-z]'s$/,Qi],[/^yes+$/,Ki]],v:[[/.[^aeiou][ai][kln]ov$/,_i]],y:[[/.[cts]hy$/,$i],[/.[st]ty$/,$i],[/.[tnl]ary$/,$i],[/.[oe]ry$/,Ji],[/[rdntkbhs]ly$/,qi],[/.(gg|bb|zz)ly$/,$i],[/...lly$/,qi],[/.[gk]y$/,$i],[/[bszmp]{2}y$/,$i],[/.[ai]my$/,$i],[/[ea]{2}zy$/,$i],[/.[^aeiou]ity$/,Ji]]};const Xi="Verb",Yi="Noun";var es={leftTags:[["Adjective",Yi],["Possessive",Yi],["Determiner",Yi],["Adverb",Xi],["Pronoun",Xi],["Value",Yi],["Ordinal",Yi],["Modal",Xi],["Superlative",Yi],["Demonym",Yi],["Honorific","Person"]],leftWords:[["i",Xi],["first",Yi],["it",Xi],["there",Xi],["not",Xi],["because",Yi],["if",Yi],["but",Yi],["who",Xi],["this",Yi],["his",Yi],["when",Yi],["you",Xi],["very","Adjective"],["old",Yi],["never",Xi],["before",Yi],["a",Yi],["the",Yi],["been",Xi]],rightTags:[["Copula",Yi],["PastTense",Yi],["Conjunction",Yi],["Modal",Yi]],rightWords:[["there",Xi],["me",Xi],["man","Adjective"],["him",Xi],["it",Xi],["were",Yi],["took",Yi],["himself",Xi],["went",Yi],["who",Yi],["jr","Person"]]},ts={fwd:"3:ser,ier¦1er:h,t,f,l,n¦1r:e¦2er:ss,or,om",both:"3er:ver,ear,alm¦3ner:hin¦3ter:lat¦2mer:im¦2er:ng,rm,mb¦2ber:ib¦2ger:ig¦1er:w,p,k,d¦ier:y",rev:"1:tter,yer¦2:uer,ver,ffer,oner,eler,ller,iler,ster,cer,uler,sher,ener,gher,aner,adder,nter,eter,rter,hter,rner,fter¦3:oser,ooler,eafer,user,airer,bler,maler,tler,eater,uger,rger,ainer,urer,ealer,icher,pler,emner,icter,nser,iser¦4:arser,viner,ucher,rosser,somer,ndomer,moter,oother,uarer,hiter¦5:nuiner,esser,emier¦ar:urther",ex:"worse:bad¦better:good¦4er:fair,gray,poor¦1urther:far¦3ter:fat,hot,wet¦3er:lay,shy,fun¦3der:mad,sad¦4der:glad¦:¦4r:cute,dire,fake,fine,free,lame,late,pale,rare,ripe,rude,safe,sore,tame,wide¦5r:eerie,stale"},ns={fwd:"1:nning,tting,rring,pping,eing,mming,gging,dding,bbing,kking¦2:eking,oling,eling,eming¦3:velling,siting,uiting,fiting,loting,geting,ialing¦4:graming",both:"1:iing,fing,xing,ying,oing,hing,wing¦2:tzing,rping,izzing,bting,mning,sping,wling,rling,wding,rbing,uping,lming,wning,mping,oning,lting,mbing,lking,fting,hting,sking,gning,pting,cking,ening,nking,iling,eping,ering,rting,rming,cting,lping,ssing,nting,nding,lding,sting,rning,rding,rking¦3:yaking,uaking,oaning,auling,valing,aiding,naping,euring,tolling,uzzing,ganing,haning,ualing,halling,iasing,auding,ieting,ceting,ouling,voring,ralling,ooding,garing,joring,ooping,oaking,roring,oaming,uelling,nelling,eaping,eeting,ooting,ooming,xiting,keting,ooking,ulling,airing,oaring,biting,outing,oiting,eeding,naling,eaming,oading,earing,delling,ouring,eaking,aiming,illing,oining,eaning,onging,ealing,aining,eading¦4:melling,aboring,ivoting,weating,dfilling,onoring,eriting,imiting,heating,tialling,rgining,otoring,linging,winging,lleting,louding,spelling,looring,mpelling,xcelling,feating,opelling,choring,welling,ymaking,ctoring,calling,peating,iloring,laiting,utoring,uditing,nmaking,mmaking,loating,iciting,waiting,mbating,voiding,otalling,nsoring,nselling,ocusing,itoring,eloping¦5:rselling,umpeting,atrolling,treating,tselling,rpreting,pringing,ummeting,ossoming,elmaking,eselling,rediting,defining,totyping,rfeiting,ntrolling¦5e:chmaking,orsaking,severing,erouting,ecreting,ephoning,uthoring,reathing,pediting,erfering,eotyping,fringing,entoring,ombining,ompeting¦4e:emaking,eething,dmiring,chuting,xciting,rseding,scoping,edoring,pinging,lunging,agining,craping,pleting,eleting,nciting,nfining,ncoding,tponing,ecoding,writing,esaling,gnoring,evoting,mpeding,dhering,mpiling,storing,nviting,ploring¦3e:tining,wining,nuring,ruling,haling,ceding,xuding,rining,nuting,caring,miling,riding,hoking,piring,lading,laking,curing,uading,noting,taping,futing,paring,raking,vening,loding,siring,guring,vading,voking,niting,laning,coring,caping,luting,muting,ruding,ciding,juring,laming,caling,hining,uoting,liding,ciling,duling,tuting,puting,cuting,laring,uiding,tiring,turing,siding,rading,enging,haping,buting,lining,taking,anging,haring,uiring,coming,mining,moting,suring,viding,luding¦2e:tring,zling,uging,oging,gling,iging,vring,fling,lging,iping,obing,psing,pling,ubing,cling,dling,wsing,iking,rsing,dging,kling,ysing,tling,rging,eging,nsing,uning,osing,uming,using,ibing,bling,aging,ising,asing,ating¦2ie:rlying¦1e:zing,uing,cing,ving",rev:"ying:ie¦1ing:se,ke,te,we,ne,re,de,pe,me,le,c,he¦2ing:ll,ng,dd,ee,ye,oe,or,rg,us¦2ning:un¦2ging:og,ag,ug,ig,eg¦2ming:um¦2ping:ip¦2bing:ub,ab,eb,ob¦3ning:lan,can,hin,pin,win¦3ring:cur,lur,tir,tar,pur,car¦3ing:eat,dit,ool,eel,oat,eem,lel¦3ping:rop,rap,wap,hop,lap,cap¦3ming:tem,wim,rim,kim¦3ting:mat,cut,pot,lit,nit,hat,set,pit,rot¦3ding:hed,bed,bid,red¦3king:rek¦3bing:rib¦3ling:pel¦4ning:egin¦4ing:isit,ruit,ilot,nsit,dget,rkel,rcel¦4ring:efer,nfer¦4ling:abel,evel,ncil,ivel¦4ting:rmit,mmit,ysit,dmit,emit,bmit,tfit,gret,llot¦5ing:arget,posit,rofit¦5ring:nsfer¦5ting:nsmit,orget,cquit¦5ling:ancel,istil",ex:"3:adding,eating,aiming,aiding,airing,outing,gassing,setting,getting,putting,cutting,winning,sitting,betting,mapping,tapping,letting,bidding,hitting,tanning,netting,popping,fitting,capping,lapping,barring,banning,vetting,topping,rotting,potting,wetting,pitting,budding,hemming,pinning,jetting,kidding,padding,podding,wedding,bedding,donning,warring,penning,gutting,cueing,wadding,petting,napping,matting,tinning¦4:selling,falling,calling,waiting,editing,telling,rolling,heating,boating,hanging,beating,coating,singing,mooring,tolling,felling,polling,discing,seating,voiding,gelling,yelling,seeking,stopping,spanning,stepping,emitting,quitting,dialing,omitting,plotting,clotting,shutting,skinning,slotting,abutting,cramming¦5:bringing,treating,labelling,spelling,stalling,trolling,expelling,wringing,deterring,singeing,befitting,refitting¦6:enrolling,cancelling,distilling,scrolling,strolling,caucusing,travelling¦7:installing,stencilling,recharging,overeating,benefiting,unraveling,programing¦9:reprogramming¦is:being¦2e:using,aging,owing¦3e:making,taking,coming,noting,hiring,filing,coding,citing,doping,baking,coping,hoping,lading,caring,naming,voting,riding,mining,curing,lining,ruling,typing,boring,dining,firing,hiding,piling,taping,waning,baling,boning,faring,honing,luring,timing,wading,fading,biting,zoning,daring,waking,gaming,raking,ceding,tiring,coking,wining,joking,paring,gaping,poking,pining,coring,liming,toting,roping,wiring,aching¦4e:writing,storing,eroding,framing,smoking,tasting,wasting,phoning,shaking,shading,abiding,pasting,priming,shoring,sloping,withing¦5e:defining,refining,enduring,renaming,swathing,fringing,reciting¦1ie:dying,tying,lying,vying¦7e:sunbathing¦10e:recordkeeping"},rs={fwd:"1:mt¦2:llen¦3:iven,aken¦:ne¦y:in",both:"1:wn¦2:me,aten¦3:seen,bidden,isen¦4:roven,asten¦3l:pilt¦3d:uilt¦2e:itten¦1im:wum¦1eak:poken¦1ine:hone¦1ose:osen¦1in:gun¦1ake:woken¦ear:orn¦eal:olen¦eeze:ozen¦et:otten¦ink:unk¦ing:ung",rev:"2:un¦oken:eak¦ought:eek¦oven:eave¦1ne:o¦1own:ly¦1den:de¦1in:ay¦2t:am¦2n:ee¦3en:all¦4n:rive,sake,take¦5n:rgive",ex:"2:been¦3:seen,run¦4:given,taken¦5:shaken¦2eak:broken¦1ive:dove¦2y:flown¦3e:hidden,ridden¦1eek:sought¦1ake:woken¦1eave:woven"},as={fwd:"1:oes¦1ve:as",both:"1:xes¦2:zzes,ches,shes,sses¦2y:llies,plies¦1y:bies,ties,vies,nies,pies,dies,ries,fies¦:s",rev:"1ies:ly¦2es:us,go¦2ses:as¦3es:cho",ex:"2:does,goes¦3:gasses¦5:focuses¦is:are¦3y:relies¦2y:flies¦2ve:has"},os={fwd:"1st:e¦1est:l,m,f,s¦1iest:cey¦2est:or,ir¦3est:ver",both:"4:east¦5:hwest¦5lest:erful¦4est:weet,lgar,tter,oung¦4most:uter¦3est:ger,der,rey,iet,ong,ear¦3test:lat¦3most:ner¦2est:pt,ft,nt,ct,rt,ht¦2test:it¦2gest:ig¦1est:b,k,n,p,h,d,w¦iest:y",rev:"1:ttest,nnest,yest¦2:sest,stest,rmest,cest,vest,lmest,olest,ilest,ulest,ssest,imest,uest¦3:rgest,eatest,oorest,plest,allest,urest,iefest,uelest,blest,ugest,amest,yalest,ealest,illest,tlest,itest¦4:cerest,eriest,somest,rmalest,ndomest,motest,uarest,tiffest¦5:leverest,rangest¦ar:urthest¦3ey:riciest",ex:"best:good¦worst:bad¦5est:great¦4est:fast,full,fair,dull¦3test:hot,wet,fat¦4nest:thin¦1urthest:far¦3est:gay,shy,ill¦4test:neat¦4st:late,wide,fine,safe,cute,fake,pale,rare,rude,sore,ripe,dire¦6st:severe"},is={fwd:"1:tistic,eable,lful,sful,ting,tty¦2:onate,rtable,geous,ced,seful,ctful¦3:ortive,ented¦arity:ear¦y:etic¦fulness:begone¦1ity:re¦1y:tiful,gic¦2ity:ile,imous,ilous,ime¦2ion:ated¦2eness:iving¦2y:trious¦2ation:iring¦2tion:vant¦3ion:ect¦3ce:mant,mantic¦3tion:irable¦3y:est,estic¦3m:mistic,listic¦3ess:ning¦4n:utious¦4on:rative,native,vative,ective¦4ce:erant",both:"1:king,wing¦2:alous,ltuous,oyful,rdous¦3:gorous,ectable,werful,amatic¦4:oised,usical,agical,raceful,ocused,lined,ightful¦5ness:stful,lding,itous,nuous,ulous,otous,nable,gious,ayful,rvous,ntous,lsive,peful,entle,ciful,osive,leful,isive,ncise,reful,mious¦5ty:ivacious¦5ties:ubtle¦5ce:ilient,adiant,atient¦5cy:icient¦5sm:gmatic¦5on:sessive,dictive¦5ity:pular,sonal,eative,entic¦5sity:uminous¦5ism:conic¦5nce:mperate¦5ility:mitable¦5ment:xcited¦5n:bitious¦4cy:brant,etent,curate¦4ility:erable,acable,icable,ptable¦4ty:nacious,aive,oyal,dacious¦4n:icious¦4ce:vient,erent,stent,ndent,dient,quent,ident¦4ness:adic,ound,hing,pant,sant,oing,oist,tute¦4icity:imple¦4ment:fined,mused¦4ism:otic¦4ry:dantic¦4ity:tund,eral¦4edness:hand¦4on:uitive¦4lity:pitable¦4sm:eroic,namic¦4sity:nerous¦3th:arm¦3ility:pable,bable,dable,iable¦3cy:hant,nant,icate¦3ness:red,hin,nse,ict,iet,ite,oud,ind,ied,rce¦3ion:lute¦3ity:ual,gal,volous,ial¦3ce:sent,fensive,lant,gant,gent,lent,dant¦3on:asive¦3m:fist,sistic,iastic¦3y:terious,xurious,ronic,tastic¦3ur:amorous¦3e:tunate¦3ation:mined¦3sy:rteous¦3ty:ain¦3ry:ave¦3ment:azed¦2ness:de,on,ue,rn,ur,ft,rp,pe,om,ge,rd,od,ay,ss,er,ll,oy,ap,ht,ld,ad,rt¦2inousness:umous¦2ity:neous,ene,id,ane¦2cy:bate,late¦2ation:ized¦2ility:oble,ible¦2y:odic¦2e:oving,aring¦2s:ost¦2itude:pt¦2dom:ee¦2ance:uring¦2tion:reet¦2ion:oted¦2sion:ending¦2liness:an¦2or:rdent¦1th:ung¦1e:uable¦1ness:w,h,k,f¦1ility:mble¦1or:vent¦1ement:ging¦1tiquity:ncient¦1ment:hed¦verty:or¦ength:ong¦eat:ot¦pth:ep¦iness:y",rev:"",ex:"5:forceful,humorous¦8:charismatic¦13:understanding¦5ity:active¦11ness:adventurous,inquisitive,resourceful¦8on:aggressive,automatic,perceptive¦7ness:amorous,fatuous,furtive,ominous,serious¦5ness:ample,sweet¦12ness:apprehensive,cantankerous,contemptuous,ostentatious¦13ness:argumentative,conscientious¦9ness:assertive,facetious,imperious,inventive,oblivious,rapacious,receptive,seditious,whimsical¦10ness:attractive,expressive,impressive,loquacious,salubrious,thoughtful¦3edom:boring¦4ness:calm,fast,keen,tame¦8ness:cheerful,gracious,specious,spurious,timorous,unctuous¦5sity:curious¦9ion:deliberate¦8ion:desperate¦6e:expensive¦7ce:fragrant¦3y:furious¦9ility:ineluctable¦6ism:mystical¦8ity:physical,proactive,sensitive,vertical¦5cy:pliant¦7ity:positive¦9ity:practical¦12ism:professional¦6ce:prudent¦3ness:red¦6cy:vagrant¦3dom:wise"},ss=function(e="",t={}){let n=function(e,t={}){return t.hasOwnProperty(e)?t[e]:null}(e,t.ex);return n=n||function(e,t=[]){for(let n=0;n=1;r-=1){let a=e.length-r,o=e.substring(a,e.length);if(!0===t.hasOwnProperty(o))return e.slice(0,a)+t[o];if(!0===n.hasOwnProperty(o))return e.slice(0,a)+n[o]}return t.hasOwnProperty("")?e+t[""]:n.hasOwnProperty("")?e+n[""]:null}(e,t.fwd,t.both),n=n||e,n};const ls=function(e){return Object.entries(e).reduce(((e,t)=>(e[t[1]]=t[0],e)),{})};var us=function(e={}){return{reversed:!0,both:ls(e.both),ex:ls(e.ex),fwd:e.rev||{}}};const cs=/^([0-9]+)/,hs=function(e){let t=function(e){let t={};return e.split("¦").forEach((e=>{let[n,r]=e.split(":");r=(r||"").split(","),r.forEach((e=>{t[e]=n}))})),t}(e);return Object.keys(t).reduce(((e,n)=>(e[n]=function(e="",t=""){let n=(t=String(t)).match(cs);if(null===n)return t;let r=Number(n[1])||0;return e.substring(0,r)+t.replace(cs,"")}(n,t[n]),e)),{})};var ds=function(e={}){return"string"==typeof e&&(e=JSON.parse(e)),e.fwd=hs(e.fwd||""),e.both=hs(e.both||""),e.rev=hs(e.rev||""),e.ex=hs(e.ex||""),e};const gs=ds({fwd:"1:tted,wed,gged,nned,een,rred,pped,yed,bbed,oed,dded,rd,s,wn,mmed¦2:eed,nded,et,hted,st,oled,ut,emed,eled,lded,ken,rt,nked,apt,ant,eped,eked¦3:eared,eat,eaded,nelled,ealt,eeded,ooted,eaked,eaned,eeted,mited,bid,uit,ead,uited,ealed,geted,velled¦4:ebuted,hined,taked,comed¦y:ied¦ome:ame¦ear:ore¦ind:ound¦ep:pt¦ink:ank,unk¦all:ell¦ee:aw¦ive:ave¦eeze:oze¦old:eld¦ave:ft¦ake:ook¦ing:ang¦ell:old¦ite:ote¦ide:ode¦ine:one¦in:un,on¦eal:ole¦im:am¦ie:ay¦and:ood¦1ise:rose¦1eak:roke¦1ing:rought,rung¦1ive:rove¦1id:bade¦1et:got¦1y:aid¦3e:lid¦3d:pent",both:"1:fed,xed,hed¦2:rped,lked,kied,lmed,lped,uped,bted,rbed,rked,wned,rled,mped,fted,mned,mbed,zzed,ened,cked,gned,lted,sked,ued,zed,nted,ered,rted,rmed,ced,sted,rned,ssed,rded,pted,ved,cted¦3:oomed,iped,oided,eiled,yped,taled,moned,yled,lit,kled,oaked,gled,naled,fled,outed,uined,oared,valled,koned,soned,aided,obed,ibed,meted,nicked,rored,micked,keted,vred,ooped,oaded,rited,aired,auled,filled,ouled,ooded,ceted,tolled,oited,bited,tled,vored,dled,eamed,nsed,rsed,sited,owded,pled,sored,rged,osed,oured,psed,oated,loned,aimed,illed,eured,tred,ioned,celled,bled,wsed,ooked,oiled,itzed,iked,iased,onged,ased,ailed,uned,umed,ained,auded,nulled,ysed,eged,ised,aged,oined,ated,used,dged,doned¦4:honed,tuted,pited,naked,miled,helled,haped,cored,caled,tired,peated,futed,ciled,called,tined,moted,filed,sided,poned,iloted,uaded,lleted,huted,ruled,cured,named,preted,voked,vaded,sured,pired,haled,peded,gined,nited,uided,ramed,feited,laked,gured,ctored,unged,loded,xpelled,cuted,caped,eloped,ralled,rined,coded,icited,vided,spelled,voted,mined,sired,noted,lined,nselled,luted,vened,jured,fided,puted,piled,pared,olored,cided,hoked,enged,tured,geoned,cotted,lamed,uiled,waited,udited,anged,luded,mired,uired,raded¦5:umpeted,ailored,rseded,quared,treated,eduled,ecited,rammed,eceded,atrolled,nitored,basted,nvited,rfered,itialled,ncited,gnored,truded,xcited,nrolled,namelled,plored,clared,redited,nfined,pleted,ompelled,llided,ircled,lcined,eathed,nefited,ibuted,lloted,dhered,cceded¦2aw:drew¦2ot:hot¦2ke:made¦2ow:hrew,grew¦2ose:hose¦2d:ilt¦2in:egan¦1go:rwent¦1ink:hought¦1ick:tuck¦1ike:ruck¦1eak:poke,nuck¦1it:pat¦1o:did¦1ow:new¦1el:elt¦1ing:lung¦1ake:woke¦ig:ug",rev:"3:rst,urt,set,ous,hed,hut,cut¦4:tbid¦5:dcast,eread,pread,erbid¦ought:uy,eek¦ung:ang¦1ied:ny,ly,dy,ry,fy,py,vy,by¦1pt:eep¦1ank:rink¦1ore:bear,wear¦1ave:give¦1oze:reeze¦1ound:rind¦1ook:take,hake¦1aw:see¦1old:sell¦1ote:rite¦1ole:teal¦1unk:tink¦1am:wim¦1ay:lie¦1ood:tand¦1eld:hold¦2d:he,ge,re,le,leed,ne,reed,be,ye,lee,pe¦2ed:dd,oy,or,ey,ho,gg,rr¦2ame:ecome,rcome¦2ped:ip¦2ged:ag,og,ug¦2bed:ub,ab,ib,ob¦2id:pay¦2ang:pring¦2ove:trive¦2med:um¦3ted:mit,hat,mat,lat,pot¦3ed:low,tow,und,ool,ond,eem,lay,dow,xit,eld,cus,ald,iew,bel,oan,del,uld,law,lel,eat,ray,ull,ank,fin,oam,oll,how,iek,tay,haw,ait¦3d:ste,ede,ode,ete,ree,ame,tee,oke,ote,ime¦3red:lur,cur,pur¦3ped:hop,rop,tep,top,rap¦3ded:bed,rod,kid¦3ade:orbid¦3led:uel¦3ned:lan,can,kin,pan,tun¦3med:rim¦4ted:quit,llot¦4ed:peal,cend,lend,rrow,rand,lean,mand,ceal,tend,fend,pear,anel,pand,reet,link,evel,imit,lead,mend,enew,cind,crew,head,pell,tall,well,rend,mell¦4led:nnel,qual¦4n:sake,trew¦4red:nfer,efer,sfer¦4ded:hred¦4ned:rpin¦5ed:ppend,light,epend,ndear,xceed,xpend,oceed,cruit,emind,cceed,spend,arget,hread,eight¦5led:ntrol,ravel¦5ped:erlap",ex:"2:been,upped¦3:added,aged,aided,aimed,aired,bid,died,dyed,egged,erred,eyed,fit,gassed,hit,lied,owed,pent,pied,tied,used,vied,banned,barred,bet,canned,capped,cut,donned,ended,feed,inked,jarred,let,manned,mapped,mowed,napped,netted,padded,panned,pitted,popped,potted,put,set,sewn,sowed,tanned,tapped,topped,vowed,weed¦4:ached,baked,baled,boned,bored,called,caned,cared,ceded,cited,coded,cored,cubed,cured,dared,dined,edited,exited,faked,fared,filed,fined,fired,fuelled,gamed,gelled,hired,hoped,joked,lined,loaned,mined,named,noted,piled,poked,polled,pored,pulled,reaped,roamed,rolled,ruled,seated,shed,sided,taped,timed,tolled,toned,voted,waited,walled,waned,winged,wired,zoned,banded,beat,brewed,cast,cost,dealt,feared,folded,footed,handed,headed,heard,knitted,landed,leaked,leapt,linked,meant,minded,molded,neared,needed,peaked,plodded,plotted,quit,read,rooted,sealed,seeded,seeped,shunned,skimmed,slammed,sparred,stemmed,stirred,suited,tended,thinned,twinned¦5:basted,cheated,equalled,eroded,exiled,focused,opined,pleated,primed,quoted,shared,shored,sloped,smoked,spelled,stalled,stored,swelled,tasted,treated,wasted,smelled,breaded,cleared,debuted,deterred,freaked,rebutted,speeded,staked¦6:anchored,defeated,defined,endured,impaled,propelled,refined,revered,strolled,recast,regretted,revealed,thrust,unfolded¦7:authored,combined,competed,conceded,controlled,entwined,excreted,installed,redefined,restored,welcomed¦8:expedited,infringed¦9:persevered,copyrighted¦10:intertwined¦eat:ate¦is:was¦go:went¦are:were¦3d:bent,lent,rent,sent¦3e:bit,fled,hid,lost¦3ed:bled,bred¦2ow:blew,grew¦1uy:bought¦2tch:caught¦1o:did¦1ive:dove,gave¦2aw:drew¦2ed:fed¦2y:flew,laid,paid,said¦1ight:fought¦1et:got¦2ve:had¦1ang:hung¦2ad:led¦2ght:lit¦2ke:made¦2et:met¦1un:ran¦1ise:rose¦1it:sat¦1eek:sought¦1each:taught¦1ake:woke,took¦1eave:wove¦2ise:arose¦1ear:bore,tore,wore¦1ind:bound,found,wound¦2eak:broke¦2ing:brought,wrung¦1ome:came¦2ive:drove¦1all:fell¦4et:forgot¦1old:held¦2ave:left¦1ing:rang,sang¦1ide:rode¦1ink:sank¦1ee:saw¦2ine:shone¦4e:slid¦1ell:sold,told¦4d:spent¦2in:spun¦1in:won"}),ps=ds(as),ms=ds(ns),fs=ds(rs),vs=us(gs),bs=us(ps),ys=us(ms),ws=us(fs),ks=ds(ts),Ps=ds(os);var As={fromPast:gs,fromPresent:ps,fromGerund:ms,fromParticiple:fs,toPast:vs,toPresent:bs,toGerund:ys,toParticiple:ws,toComparative:ks,toSuperlative:Ps,fromComparative:us(ks),fromSuperlative:us(Ps),adjToNoun:ds(is)},Ns=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),js=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..ase)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],Is=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(Es[t].forEach((n=>e[n]=t)),e)),{});var Cs=Es,Ts=function(e){let t=e.substring(e.length-3);if(!0===Cs.hasOwnProperty(t))return Cs[t];let n=e.substring(e.length-2);return!0===Cs.hasOwnProperty(n)?Cs[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ds={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Os=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=Ts(e)),Ds.hasOwnProperty(e))c=Ds[e];else if("Participle"===n)c=ss(l,i);else if("PastTense"===n)c=ss(l,r);else if("PresentTense"===n)c=ss(l,a);else{if("Gerund"!==n)return e;c=ss(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Fs=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:ss(i,n),PresentTense:ss(i,r),Gerund:ss(i,a),FutureTense:"will "+e},u=ss(i,o);if(u!==e&&u!==l.PastTense){let n=t.one.lexicon||{};"Participle"!==n[u]&&"Adjective"!==n[u]||("play"===e&&(u="played"),l.Participle=u)}return s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l},Vs={toInfinitive:Os,conjugate:Fs,all:function(e,t){let n=Fs(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}};const Gs=function(e,t){const n=t.two.models.toSuperlative;return ss(e,n)},Bs=function(e,t){const n=t.two.models.toComparative;return ss(e,n)};var zs=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a))return e.slice(0,n-r)+t[a.length][a]}return null};const Hs="ically",Ls=new Set(["analyt"+Hs,"chem"+Hs,"class"+Hs,"clin"+Hs,"crit"+Hs,"ecolog"+Hs,"electr"+Hs,"empir"+Hs,"frant"+Hs,"grammat"+Hs,"ident"+Hs,"ideolog"+Hs,"log"+Hs,"mag"+Hs,"mathemat"+Hs,"mechan"+Hs,"med"+Hs,"method"+Hs,"method"+Hs,"mus"+Hs,"phys"+Hs,"phys"+Hs,"polit"+Hs,"pract"+Hs,"rad"+Hs,"satir"+Hs,"statist"+Hs,"techn"+Hs,"technolog"+Hs,"theoret"+Hs,"typ"+Hs,"vert"+Hs,"whims"+Hs]),$s=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Ss=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ms={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"quick",superbly:"superb",cynically:"cynical",well:"good"},Js=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Ws={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var qs=function(e){if(Ws.hasOwnProperty(e))return Ws[e];let t=zs(e,Js);return t||(t=e+"ly"),t},Ks={toSuperlative:Gs,toComparative:Bs,toAdverb:qs,toNoun:function(e,t){const n=t.two.models.adjToNoun;return ss(e,n)},fromAdverb:function(e){return e.endsWith("ly")?Ls.has(e)?e.replace(/ically/,"ical"):Ss.has(e)?null:Ms.hasOwnProperty(e)?Ms[e]:zs(e,$s)||e:null},fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ss(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return ss(e,n)},all:function(e,t){let n=[e];return n.push(Gs(e,t)),n.push(Bs(e,t)),n.push(qs(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},Rs={noun:xs,verb:Vs,adjective:Ks},Us={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Actor:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||["Plural","Actor"])},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,r);delete l.FutureTense,Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]},Place:(e,t)=>{t[e]=["Place","ProperNoun"]},Region:(e,t)=>{t[e]=["Region","ProperNoun"]}},Qs=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Us.hasOwnProperty(i)&&Us[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},_s=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]){let n=e[t-1];if(n.tags.has("Date")||a.has(n.normal))return!1;if(n.tags.has("Adjective")||r.tags.has("Adjective"))return!1}let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!Ys.find((t=>e.endsWith(t)))},tl={two:{quickSplit:_s,expandLexicon:Qs,transform:Rs,looksPlural:el}},nl=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};let rl={one:{lexicon:{}},two:{models:As}};const al={"Actor|Verb":"Actor","Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"FirstName","Person|Place":"Person","Person|Adj":"Comparative","Plural|Verb":"Plural","Unit|Noun":"Noun"},ol=function(e,t){const n={model:t,methods:tl};let{lex:r,_multi:a}=tl.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},il=function(e,t,n){let r=Fs(e,rl);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},sl=function(e,t,n){let r=Gs(e,n);t[r]=t[r]||"Superlative";let a=Bs(e,n);t[a]=t[a]||"Comparative"},ll=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=al[o],"Noun|Verb"!==o&&"Person|Verb"!==o&&"Actor|Verb"!==o||il(a,r,!1),"Adj|Present"===o&&(il(a,r,!0),sl(a,r,t)),"Person|Adj"===o&&sl(a,r,t),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Os(a,rl,"Gerund");r[e]||(n[e]="Infinitive")}if("Noun|Gerund"!==o&&"Adj|Noun"!==o&&"Person|Noun"!==o||function(e,t,n){let r=Vo(e,n);t[r]=t[r]||"Plural"}(a,r,t),"Adj|Past"===o){let e=Os(a,rl,"PastTense");r[e]||(n[e]="Infinitive")}})),t=ol(n,t)};var ul=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=ol(e.one.lexicon,e)).one.lexicon,e),e=ll(e.two.switches,e),e=nl(e)};let cl={one:{_multiCache:{},lexicon:Bo},two:{irregularPlurals:ko,models:As,suffixPatterns:Gi,prefixPatterns:Li,endsWith:Zi,neighbours:es,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z°]{1,4})$/,"NumericValue","9km"]],switches:zo,clues:wi,uncountable:{},orgWords:Ns}};cl=ul(cl);var hl=cl,dl=function(e,t,n,r){const a=r.methods.one.setTag;if(0===t&&e.length>=3){const t=/:/;if(e[0].post.match(t)){let t=e[1];if(t.tags.has("Value")||t.tags.has("Email")||t.tags.has("PhoneNumber"))return;a([e[0]],"Expression",r,null,"2-punct-colon''")}}},gl=function(e,t,n,r){const a=r.methods.one.setTag;"-"===e[t].post&&e[t+1]&&a([e[t],e[t+1]],"Hyphenated",r,null,"1-punct-hyphen''")};const pl=/^(under|over|mis|re|un|dis|semi)-?/;var ml=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(pl.test(a.normal)){let e=a.normal.replace(pl,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},fl=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,"[33m[3m"+a+"[0m").padEnd(24)} [32m→[0m #${t.padEnd(22)} ${(e=>"[3m"+e+"[0m")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const vl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific","Month"];var bl=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(el(e.normal)?fl(e,"Plural","3-plural-guess"):fl(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ts(e.normal);t&&fl(e,t,"3-verb-tense-guess")}}(r)};const yl=/^\p{Lu}[\p{Ll}'’]/u,wl=/[0-9]/,kl=["Date","Month","WeekDay","Unit","Expression"],Pl=/[IVX]/,Al=/^[IVXLCDM]{2,}$/,Nl=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,jl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Il=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===yl.test(o)&&!1===wl.test(o)?kl.find((e=>r.tags.has(e)))||r.pre.match(/["']$/)||"the"===r.normal?null:(bl(e,t,n),r.tags.has("Noun")||r.tags.clear(),fl(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&Al.test(o)&&Pl.test(o)&&Nl.test(o)&&!jl[r.normal]?(fl(r,"RomanNumeral","2-xvii"),!0):null};const xl=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null};var El=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=xl(r.normal,n.two.suffixPatterns);if(null!==e)return fl(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=xl(r.implicit,n.two.suffixPatterns),null!==e))return fl(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const Cl=/['‘’‛‵′`´]/,Tl=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return fl(r,e,"2-prefix"),r.confidence=.5,!0}return null};const Fl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Vl=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Fl.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Gl=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Bl=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var zl=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(Vl(a)||Vl(o))return fl(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Gl(a)||Gl(o))return fl(n,"Year","2-tagYear-close");if(Bl(e[t-2])||Bl(e[t+2]))return fl(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return fl(n,"Year","2-tagYear-noun")}}}return null},Hl=function(e,t,n,r){const a=r.methods.one.setTag,o=e[t],i=["PastTense","PresentTense","Auxiliary","Modal","Particle"];o.tags.has("Verb")&&(i.find((e=>o.tags.has(e)))||a([o],"Infinitive",r,null,"2-verb-type''"))};const Ll=/^[A-Z]('s|,)?$/,$l=/^[A-Z-]+$/,Sl=/^[A-Z]+s$/,Ml=/([A-Z]\.)+[A-Z]?,?$/,Jl=/[A-Z]{2,}('s|,)?$/,Wl=/([a-z]\.)+[a-z]\.?$/,ql={I:!0,A:!0},Kl={la:!0,ny:!0,us:!0,dc:!0,gb:!0};var Rl=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;if(!1===$l.test(n)){if(!(n.length>3&&!0===Sl.test(n)))return!1;n=n.replace(/s$/,"")}return!(n.length>5||ql.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Ml.test(n)&&!0!==Wl.test(n)&&!0!==Ll.test(n)&&!0!==Jl.test(n))}(r,n)?(r.tags.clear(),fl(r,["Acronym","Noun"],"3-no-period-acronym"),!0===Kl[r.normal]&&fl(r,"Place","3-place-acronym"),!0===Sl.test(r.text)&&fl(r,"Plural","3-plural-acronym"),!0):!ql.hasOwnProperty(r.text)&&Ll.test(r.text)?(r.tags.clear(),fl(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(fl(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&$l.test(r.text)&&r.text.length<=6?(fl(r,"Acronym","3-titlecase-acronym"),!0):null};const Ul=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Ql=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var _l=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Ul(e[t-1],a),l=l||Ul(e[t+1],o),l=l||Ql(e[t-1],r),l=l||Ql(e[t+1],i),l)return fl(s,l,"3-[neighbour]"),bl(e,t,n),e[t].confidence=.2,!0}return null};const Zl=function(e,t,n){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||!(n||(r=e.text,!/^\p{Lu}[\p{Ll}'’]/u.test(r)))&&(0!==t||e.tags.has("Singular")));var r};var Xl=function(e,t,n,r){const a=n.model.two.orgWords,o=n.methods.one.setTag;let i=e[t];if(!0===a[i.machine||i.normal]&&Zl(e[t-1],t-1,r)){o([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&Zl(e[a],a,r);a-=1)o([e[a]],"Organization",n,null,"3-[org-word]")}return null},Yl=function(e,t,n){let r=!1,a=e[t].tags;(0===a.size||1===a.size&&(a.has("Hyphenated")||a.has("HashTag")||a.has("Prefix")))&&(r=!0),r&&(fl(e[t],"Noun","3-[fallback]"),bl(e,t,n),e[t].confidence=.1)};const eu=/^[A-Z][a-z]/,tu=(e,t)=>e[t].tags.has("ProperNoun")&&eu.test(e[t].text)?"Noun":null,nu=(e,t,n)=>0!==t||e[1]?null:n,ru={"Adj|Gerund":(e,t)=>tu(e,t),"Adj|Noun":(e,t)=>tu(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Actor|Verb":(e,t)=>tu(e,t),"Adj|Past":(e,t)=>tu(e,t),"Adj|Present":(e,t)=>tu(e,t),"Noun|Gerund":(e,t)=>tu(e,t),"Noun|Verb":(e,t)=>t>0&&tu(e,t)||nu(e,t,"Infinitive"),"Plural|Verb":(e,t)=>tu(e,t)||nu(e,t,"PresentTense")||function(e,t,n){return 0===t&&e.length>3?n:null}(e,t,"Plural"),"Person|Noun":(e,t)=>tu(e,t),"Person|Verb":(e,t)=>0!==t?tu(e,t):null,"Person|Adj":(e,t)=>0===t&&e.length>1||tu(e,t)?"Person":null};var au=ru;const ou="undefined"!=typeof process&&process.env?process.env:self.env||{},iu=/^(under|over|mis|re|un|dis|semi)-?/,su=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&ou.DEBUG_TAGS&&console.log(`\n [2m[3m ↓ - '${n}' [0m`),r},lu=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&ou.DEBUG_TAGS&&console.log(` [2m[3m ↓ - '${e.normal||e.implicit}' (#${a}) [0m`),a=t[a],a};var uu=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(iu.test(l)&&!o[l]&&(l=l.replace(iu,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=su(e[t+1],n.afterWords);return o=o||su(e[t-1],n.beforeWords),o=o||lu(e[t-1],n.beforeTags,a),o=o||lu(e[t+1],n.afterTags,a),o}(e,t,i[o],r);au[o]&&(u=au[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),bl(e,t,r)):ou.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}};const cu={there:!0,this:!0,it:!0,him:!0,her:!0,us:!0};var hu=function(e,t){const n=t.methods.one.setTag,r=t.model.one._multiCache||{};let a=e[0];if(("Noun|Verb"===a.switch||a.tags.has("Infinitive"))&&e.length>=2){if(e.length<4&&!cu[e[1].normal])return;if(!a.tags.has("PhrasalVerb")&&r.hasOwnProperty(a.normal))return;(e[1].tags.has("Noun")||e[1].tags.has("Determiner"))&&(e.slice(1,3).some((e=>e.tags.has("Verb")))&&!a.tags.has("#PhrasalVerb")||n([a],"Imperative",t,null,"3-[imperative]"))}};const du=function(e){if(e.filter((e=>!e.tags.has("ProperNoun"))).length<=3)return!1;const t=/^[a-z]/;return e.every((e=>!t.test(e.text)))},gu=function(e,t,n,r){for(let a=0;a{dl(e,0,t,n);for(let t=0;t{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var vu=function(e){const t=e.world,n=Object.keys(fu);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=Cu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=Eu},Du=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const Ou=/'/;var Fu=function(e,t){let n=e[t].normal.split(Ou)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const Vu=/'/;var Gu=function(e,t){let n=e[t].normal.split(Vu)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>!(!e[t+1]||"better"!=e[t+1].normal)||e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]},Bu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){if(e[t+1]&&"never"===e[t+1].normal)return["have"];let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if("i"===n.normal)return["am","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const zu={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Hu={in:!0,by:!0,for:!0};var Lu=(e,t)=>{let n=e[t];if(zu.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("QuestionWord"))return!1;if("he's"===n.normal||"she's"===n.normal)return!1;let r=e[t+1];if(!r)return!0;if("it's"===n.normal)return!!r.tags.has("#Noun");if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return!("here"===e||"there"===e||"everywhere"===e||r.tags.has("Possessive")||r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===Hu[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const $u=/'/,Su=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Mu={d:(e,t)=>Gu(e,t),t:(e,t)=>Bu(e,t),s:(e,t,n)=>Lu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Fu(e,t)},Ju=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Wu={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===$u.test(r[o].normal)&&([,i]=r[o].normal.split($u));let s=null;Mu.hasOwnProperty(i)&&(s=Mu[i](r,o,t)),s&&(s=Ju(s,e),Du(n,[a,o],s),Su(n[a],e,o,s.length))}}))}},qu={compute:Wu,api:Tu,hooks:["contractionTwo"]};const Ku="(i|we|they)";let Ru=[].concat([{match:"(got|were|was|is|are|am) (#PastTense|#Participle)",tag:"Passive",reason:"got-walked"},{match:"(was|were|is|are|am) being (#PastTense|#Participle)",tag:"Passive",reason:"was-being"},{match:"(had|have|has) been (#PastTense|#Participle)",tag:"Passive",reason:"had-been"},{match:"will be being? (#PastTense|#Participle)",tag:"Passive",reason:"will-be-cleaned"},{match:"#Noun [(#PastTense|#Participle)] by (the|a) #Noun",group:0,tag:"Passive",reason:"suffered-by"}],[{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,notIf:"(all|even)",tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"[#Hyphenated (#Hyphenated && #PastTense)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"faith-based"},{match:"[#Hyphenated (#Hyphenated && #Gerund)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"self-driving"},{match:"[#PastTense (#Hyphenated && #PhrasalVerb)] (#Noun|#Conjunction)",group:0,tag:"Adjective",reason:"dammed-up"},{match:"(#Hyphenated && #Value) fold",tag:"Adjective",reason:"two-fold"},{match:"must (#Hyphenated && #Infinitive)",tag:"Adjective",reason:"must-win"},{match:"(#Hyphenated && #Infinitive) #Hyphenated",tag:"Adjective",notIf:"#PhrasalVerb",reason:"vacuum-sealed"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"},{match:"[(un|contra|extra|inter|intra|macro|micro|mid|mis|mono|multi|pre|sub|tri|ex)] #Adjective",group:0,tag:["Adjective","Prefix"],reason:"un-skilled"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"},{match:"#Copula [far too] #Adjective",group:0,tag:"Adverb",reason:"far-too"},{match:"#Copula [still] (in|#Gerund|#Adjective)",group:0,tag:"Adverb",reason:"was-still-walking"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"},{match:"#Gerund [#Gerund]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looking-annoying"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",notIf:"#Hyphenated",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"},{match:"no [#Adjective] #Modal",group:0,tag:"Noun",reason:"no-golden"},{match:"[brand #Gerund?] new",group:0,tag:"Adverb",reason:"brand-new"},{match:"(#Determiner|#Comparative|new|different) [kind]",group:0,tag:"Noun",reason:"some-kind"},{match:"#Possessive [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"her-favourite"},{match:"must && #Hyphenated .",tag:"Adjective",reason:"must-win"},{match:"#Determiner [#Adjective]$",tag:"Noun",notIf:"(this|that|#Comparative|#Superlative)",reason:"the-south"},{match:"(#Noun && #Hyphenated) (#Adjective && #Hyphenated)",tag:"Adjective",notIf:"(this|that|#Comparative|#Superlative)",reason:"company-wide"},{match:"#Determiner [#Adjective] (#Copula|#Determiner)",notIf:"(#Comparative|#Superlative)",group:0,tag:"Noun",reason:"the-poor"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,notIf:"(#Modal|#PhrasalVerb)",tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] #Comparative",group:0,tag:"Adverb",reason:"even-worse"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",notIf:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",notIf:"(#PhrasalVerb|#Copula)",reason:"charge-back"},{match:"#Verb [around]",group:0,tag:"Adverb",notIf:"#PhrasalVerb",reason:"send-around"},{match:"[later] #PresentTense",group:0,tag:"Adverb",reason:"later-say"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) (march|may) !#Infinitive",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"(the|any) [more]",group:0,tag:"Singular",reason:"more-noun"},{match:"[more] #Noun",group:0,tag:"Adjective",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Singular",reason:"bit-2"},{match:"a [must]",group:0,tag:"Singular",reason:"must-2"},{match:"(we|us) [all]",group:0,tag:"Noun",reason:"we all"},{match:"due to [#Verb]",group:0,tag:"Noun",reason:"due-to"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",notIf:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"(a|an|the) [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",notIf:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,notIf:"#Gerund",tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense #Particle?]",group:0,tag:"Noun",notIf:"(seem|appear|include|#Gerund|#Copula)",reason:"det-inf"},{match:"#Noun #Actor",tag:"Actor",notIf:"(#Person|#Pronoun)",reason:"thing-doer"},{match:"#Gerund #Actor",tag:"Actor",reason:"gerund-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"[#Noun+] #Actor",group:0,tag:"Actor",notIf:"(#Honorific|#Pronoun|#Possessive)",reason:"air-traffic-controller"},{match:"(urban|cardiac|cardiovascular|respiratory|medical|clinical|visual|graphic|creative|dental|exotic|fine|certified|registered|technical|virtual|professional|amateur|junior|senior|special|pharmaceutical|theoretical)+ #Noun? #Actor",tag:"Actor",reason:"fine-artist"},{match:"#Noun+ (coach|chef|king|engineer|fellow|personality|boy|girl|man|woman)",tag:"Actor",reason:"dance-coach"},{match:"chief . officer",tag:"Actor",reason:"chief-x-officer"},{match:"chief of #Noun+",tag:"Actor",reason:"chief-of-police"},{match:"senior? vice? president of #Noun+",tag:"Actor",reason:"president-of"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]$",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense #Particle?",notIf:"(#Gerund|her)",tag:"Noun",reason:"possessive-verb"},{match:"(my|our|their|her|his|its) [(#Plural && #Actor)] #Noun",tag:"Possessive",reason:"my-dads"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"},{match:"i #Verb [me] #Noun",group:0,tag:"Possessive",reason:"scottish-me"},{match:"[#PresentTense] (music|class|lesson|night|party|festival|league|ceremony)",group:0,tag:"Noun",reason:"dance-music"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,ifNo:"#Copula",tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",notIf:"(still|even|just)",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"#Copula [(#Gerund|#Activity)] #Copula",group:0,tag:"Gerund",reason:"are-doing-is"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"},{match:"#Singular for [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"noun-for-gerund"},{match:"#Comparative (for|at) [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"better-for-gerund"},{match:"#PresentTense the [#Gerund]",group:0,tag:"Noun",reason:"keep-the-touching"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner (only|further|just|more|backward) [#Infinitive]",group:0,tag:"Noun",reason:"the-only-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"#Plural on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb #Particle?]",notIf:"(#Copula|#Noun|sure|fun|up)",group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",notIf:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",notIf:"#Preposition",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",notIf:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"better",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",notIf:"(#Copula|better)",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"many-poses"},{match:"#Determiner #Adverb #Adjective [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Copula",reason:"very-big-dream"},{match:"from #Noun to [%Noun|Verb%]",group:0,tag:"Noun",reason:"start-to-finish"},{match:"(for|with|of) #Noun (and|or|not) [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Pronoun",reason:"for-food-and-gas"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #Particle #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense] of",group:0,notIf:"(one|1|#Copula|#Infinitive)",tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",notIf:"#Copula",reason:"our-full-support"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",notIf:"going",reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"},{match:"how to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"how-to-noun"},{match:"which [%Noun|Verb%] #Noun",group:0,tag:"Infinitive",reason:"which-boost-it"},{match:"#Gerund [%Plural|Verb%]",group:0,tag:"Plural",reason:"asking-questions"},{match:"(ready|available|difficult|hard|easy|made|attempt|try) to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"ready-to-noun"},{match:"(bring|went|go|drive|run|bike) to [%Noun|Verb%]",group:0,tag:"Noun",reason:"bring-to-noun"},{match:"#Modal #Noun [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"would-you-look"},{match:"#Copula just [#Infinitive]",group:0,tag:"Noun",reason:"is-just-spam"},{match:"^%Noun|Verb% %Plural|Verb%",tag:"Imperative #Plural",reason:"request-copies"},{match:"#Adjective #Plural and [%Plural|Verb%]",group:0,tag:"#Plural",reason:"pickles-and-drinks"},{match:"#Determiner #Year [#Verb]",group:0,tag:"Noun",reason:"the-1968-film"},{match:"#Determiner [#PhrasalVerb #Particle]",group:0,tag:"Noun",reason:"the-break-up"},{match:"#Determiner [%Adj|Noun%] #Noun",group:0,tag:"Adjective",notIf:"(#Pronoun|#Possessive|#ProperNoun)",reason:"the-individual-goals"},{match:"[%Noun|Verb%] or #Infinitive",group:0,tag:"Infinitive",reason:"work-or-prepare"},{match:"to #Infinitive [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|#Copula|help)",reason:"to-give-thanks"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"},{match:"^[#Value] (#Determiner|#Gerund)",group:0,tag:"Expression",unTag:"Value",reason:"numbered-list"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|brother|father|aunt|uncle|grandpa|grandfather|grandma) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",notIf:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",notIf:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(lieutenant|corporal|sergeant|captain|qeen|king|admiral|major|colonel|marshal|president|queen|king)+] #ProperNoun",group:0,tag:"Honorific",reason:"seargeant-john"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:["Honorific","Person"],reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",notIf:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"#Honorific #Actor",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) #Actor",tag:"Honorific",reason:"first lady"},{match:"#Person #RomanNumeral",tag:"Person",reason:"louis-IV"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun",ifNo:"#Actor"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"},{match:"(#FirstName && !#Possessive) [#Singular] #Verb",group:0,safe:!0,tag:"LastName",reason:"jack-layton"},{match:"^[#Singular] #Person #Verb",group:0,safe:!0,tag:"Person",reason:"sherwood-anderson"},{match:"(a|an) [#Person]$",group:0,unTag:"Person",reason:"a-warhol"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:"#Date",group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",notIf:"(come|gotten)",reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(have|had) read",tag:"Modal #PastTense",reason:"read-read"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"},{match:"as #Pronoun [please]",group:0,tag:"Infinitive",reason:"as-we-please"},{match:"[(co|mis|de|inter|intra|pre|re|un|out|under|over|counter)] #Verb",group:0,tag:["Verb","Prefix"],notIf:"(#Copula|#PhrasalVerb)",reason:"co-write"},{match:"#PastTense and [%Adj|Past%]",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"[%Adj|Past%] and #PastTense",group:0,tag:"PastTense",reason:"dressed-and-left"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Copula [#Adjective] (well|badly|quickly|slowly)",group:0,tag:"Verb",reason:"done-well"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"a-bit-confused"},{match:"not be [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"do-not-be-confused"},{match:"#Copula just [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"is-just-right"},{match:"as [#Infinitive] as",group:0,tag:"Adjective",reason:"as-pale-as"},{match:"[%Adj|Past%] and #Adjective",group:0,tag:"Adjective",reason:"faled-and-oppressive"},{match:"or [#PastTense] #Noun",group:0,tag:"Adjective",notIf:"(#Copula|#Pronoun)",reason:"or-heightened-emotion"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"[(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"},{match:"[(been|had|became|came)] #PastTense",group:0,notIf:"#PhrasalVerb",tag:"Auxiliary",reason:"been-told"},{match:"[(being|having|getting)] #Verb",group:0,tag:"Auxiliary",reason:"being-born"},{match:"[be] #Gerund",group:0,tag:"Auxiliary",reason:"be-walking"},{match:"[better] #PresentTense",group:0,tag:"Modal",notIf:"(#Copula|#Gerund)",reason:"better-go"},{match:"even better",tag:"Adverb #Comparative",reason:"even-better"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",notIf:"#Copula",tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"#Verb (up|down|in|on|for)$",tag:"PhrasalVerb #Particle",notIf:"#PhrasalVerb",reason:"come-down$"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Ku,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Ku,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Ku,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",notIf:"(so|such|rather|enough)",reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|a|an|any|each|every|some|more|with|on)",group:0,notIf:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me|there)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^[#Infinitive] (#Adjective|#Adverb)? and #Infinitive",group:0,tag:"Imperative",reason:"call-and-reserve"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^come #Infinitive",tag:"Imperative",notIf:"on",reason:"come-have"},{match:"^come and? #Infinitive",tag:"Imperative . Imperative",notIf:"#PhrasalVerb",reason:"come-and-have"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[(stay|be|keep)] #Adjective",group:0,tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"},{match:"[#Infinitive] what .",group:0,tag:"Imperative",reason:"look-what"},{match:"^[#Infinitive] #Gerund",group:0,tag:"Imperative",reason:"keep-playing"},{match:"^[#Infinitive] (to|for|into|toward|here|there)",group:0,tag:"Imperative",reason:"go-to"},{match:"^[#Infinitive] (and|or) #Infinitive",group:0,tag:"Imperative",reason:"inf-and-inf"},{match:"^[%Noun|Verb%] to",group:0,tag:"Imperative",reason:"commit-to"},{match:"^[#Infinitive] #Adjective? #Singular #Singular",group:0,tag:"Imperative",reason:"maintain-eye-contact"},{match:"do not (forget|omit|neglect) to [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-forget"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"},{match:"#Gerund [#Gerund] #Plural",group:0,tag:"Adjective",reason:"hard-working-fam"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"[right] (before|after|in|into|to|toward)",group:0,tag:"#Adverb",reason:"right-into"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"(are|#Modal|see|do|for) [ya]",group:0,tag:"Pronoun",reason:"are-ya"},{match:"[long live] .",group:0,tag:"#Adjective #Infinitive",reason:"long-live"},{match:"[plenty] of",group:0,tag:"#Uncountable",reason:"plenty-of"},{match:"(always|nearly|barely|practically) [there]",group:0,tag:"Adjective",reason:"always-there"},{match:"[there] (#Adverb|#Pronoun)? #Copula",group:0,tag:"There",reason:"there-is"},{match:"#Copula [there] .",group:0,tag:"There",reason:"is-there"},{match:"#Modal #Adverb? [there]",group:0,tag:"There",reason:"should-there"},{match:"^[do] (you|we|they)",group:0,tag:"QuestionWord",reason:"do-you"},{match:"^[does] (he|she|it|#ProperNoun)",group:0,tag:"QuestionWord",reason:"does-he"},{match:"a [while]",group:0,tag:"Noun",reason:"a-while"},{match:"guess who",tag:"#Infinitive #QuestionWord",reason:"guess-who"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"#ProperNoun+ (river|lake|bay|inlet|creek|narrows|cove|dune|coast|lagoon|beach|peninsula|hill|mountain|canyon|marsh|island|trail|valley|glacier|estuary|desert|escarpment|gorge|plains|waterfall)",tag:"Place",reason:"foo-river"},{match:"(river|gulf|lake) of? #ProperNoun+",tag:"Place",reason:"river-foo"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"a #Noun [like] (#Noun|#Determiner)",group:0,tag:"Preposition",reason:"a-noun-like"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Infinitive #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}],[{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^[(well|so|okay|now)] !#Adjective?",group:0,tag:"Expression",reason:"well-"},{match:"^come on",tag:"Expression",reason:"come-on"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"^(ok|alright|shoot|hell|anyways)",tag:"Expression",reason:"ok-"},{match:"^(say && @hasComma)",tag:"Expression",reason:"say-"},{match:"^(like && @hasComma)",tag:"Expression",reason:"like-"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}]),Uu=null;var Qu={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Uu=Uu||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep(Uu),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const _u={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Qu,model:{two:{matches:Ru}},hooks:["postTagger"]};var Zu=_u,Xu=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))},Yu=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Xu(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},ec={lib:{lazy:Yu}},tc=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e},nc=function(e,t,n){let r=e.split(/ /g).map((e=>e.toLowerCase().trim()));r=r.filter((e=>e)),r=r.map((e=>`{${e}}`)).join(" ");let a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?tc(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model)),e.replaceWith(n,{possessives:!0})}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this},rc={api:function(e){e.prototype.swap=nc}};v.plugin(ju),v.plugin(qu),v.plugin(Zu),v.plugin(ec),v.plugin(rc);const ac=function(e){const{fromComparative:t,fromSuperlative:n}=e.methods.two.transform.adjective;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var oc={api:function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{toAdverb:t,toNoun:n,toSuperlative:r,toComparative:a}=this.methods.two.transform.adjective;return e.normal=!0,this.map((o=>{let i=o.toView().json(e)[0]||{},s=ac(o);return i.adjective={adverb:t(s,this.model),noun:n(s,this.model),superlative:r(s,this.model),comparative:a(s,this.model)},i}),[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(e){const{toComparative:t,toSuperlative:n,toNoun:r,toAdverb:a}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let o=ac(e);return{Adjective:o,Comparative:t(o,this.model),Superlative:n(o,this.model),Noun:r(o,this.model),Adverb:a(o,this.model)}}),[])}toComparative(e){const{toComparative:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=ac(e),r=t(n,this.model);return e.replaceWith(r)}))}toSuperlative(e){const{toSuperlative:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=ac(e),r=t(n,this.model);return e.replaceWith(r)}))}toAdverb(e){const{toAdverb:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=ac(e),r=t(n,this.model);return e.replaceWith(r)}))}toNoun(e){const{toNoun:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=ac(e),r=t(n,this.model);return e.replaceWith(r)}))}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=t.getNth(e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=t.getNth(e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=t.getNth(e),new Adjectives(t.document,t.pointer)}}},ic={api:function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}conjugate(e){return this.getNth(e).map((e=>{let t=function(e){return e.compute("root").text("root")}(e);return{Adverb:e.text("normal"),Adjective:t}}),[])}json(e={}){const t=this.methods.two.transform.adjective.fromAdverb;return e.normal=!0,this.map((n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r}),[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=t.getNth(e),new Adverbs(t.document,t.pointer)}}},sc=function(e){let t=this;return t=function(e){let t=e.parentheses();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.quotations();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.match("@hasComma");return t=t.filter((e=>{if(1===e.growLeft(".").wordCount())return!1;if(1===e.growRight(". .").wordCount())return!1;let t=e.grow(".");return t=t.ifNo("@hasComma @hasComma"),t=t.ifNo("@hasComma (and|or) ."),t=t.ifNo("(#City && @hasComma) #Country"),t=t.ifNo("(#WeekDay && @hasComma) #Date"),t=t.ifNo("(#Date+ && @hasComma) #Value"),t=t.ifNo("(#Adjective && @hasComma) #Adjective"),t.found})),e.splitAfter(t)}(t),t=t.splitAfter("(@hasEllipses|@hasSemicolon|@hasDash|@hasColon)"),t=t.splitAfter("^#Pronoun (said|says)"),t=t.splitBefore("(said|says) #ProperNoun$"),t=t.splitBefore(". . if .{4}"),t=t.splitBefore("and while"),t=t.splitBefore("now that"),t=t.splitBefore("ever since"),t=t.splitBefore("(supposing|although)"),t=t.splitBefore("even (while|if|though)"),t=t.splitBefore("(whereas|whose)"),t=t.splitBefore("as (though|if)"),t=t.splitBefore("(til|until)"),"number"==typeof e&&(t=t.get(e)),t},lc=function(e){let t=[],n=null;return e.clauses().docs.forEach((e=>{e.forEach((e=>{e.chunk&&e.chunk===n?t[t.length-1][2]=e.index[1]+1:(n=e.chunk,t.push([e.index[0],e.index[1],e.index[1]+1]))})),n=null})),e.update(t)},uc=function(e){class Chunks extends e{constructor(e,t,n){super(e,t,n),this.viewType="Chunks"}isVerb(){return this.filter((e=>e.has("")))}isNoun(){return this.filter((e=>e.has("")))}isAdjective(){return this.filter((e=>e.has("")))}isPivot(){return this.filter((e=>e.has("")))}debug(){return this.toView().debug("chunks"),this}update(e){let t=new Chunks(this.document,e);return t._cache=this._cache,t}}e.prototype.chunks=function(e){let t=lc(this);return t=t.getNth(e),new Chunks(this.document,t.pointer)},e.prototype.clauses=sc};const cc={this:"Noun",then:"Pivot"};var hc=function(e){for(let t=0;t",group:0,chunk:"Verb"},{match:"#Noun of #Determiner? #Noun",chunk:"Noun"},{match:"#Value+ #Adverb? #Adjective",chunk:"Noun"},{match:"the [#Adjective] #Noun",chunk:"Noun"},{match:"#Singular in #Determiner? #Singular",chunk:"Noun"},{match:"#Plural [in] #Determiner? #Noun",group:0,chunk:"Pivot"},{match:"#Noun and #Determiner? #Noun",notIf:"(#Possessive|#Pronoun)",chunk:"Noun"}];let pc=null;var mc=function(e,t,n){const{methods:r}=n;pc=pc||r.one.buildNet(gc,n),e.sweep(pc)};const fc=function(e,t){if(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_CHUNKS){let n=(e.normal+"'").padEnd(8);console.log(` | '${n} → [34m${t.padEnd(12)}[0m [2m -fallback- [0m`)}e.chunk=t};var vc=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){const t=e.terms.find((e=>e.tags.has("Verb")));t||e.terms.forEach((e=>e.chunk=null))}}))},yc={chunks:function(e){const{document:t,world:n}=e;hc(t),dc(t),mc(e,t,n),vc(t),bc(t)}},wc={compute:yc,api:uc,hooks:["chunks"]};const kc=/\./g;var Pc=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(kc,""),e.normal=e.normal.replace(kc,"")}))})),this}addPeriods(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(kc,""),e.normal=e.normal.replace(kc,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."}))})),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=t.getNth(e),new Acronyms(t.document,t.pointer)}};const Ac=/\(/,Nc=/\)/,jc=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Ac,"");let t=e[e.length-1];t.post=t.post.replace(Nc,"")})),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n{e.forEach((e=>{e.text=e.text.replace(xc,""),e.normal=e.normal.replace(xc,"")}))})),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=t.getNth(e),new Possessives(t.document,t.pointer)}};const Cc={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Tc=RegExp("["+Object.keys(Cc).join("")+"]"),Dc=RegExp("["+Object.values(Cc).join("")+"]"),Oc=function(e,t){const n=e[t].pre.match(Tc)[0]||"";if(!n||!Cc[n])return null;const r=Cc[n];for(;t{e[0].pre=e[0].pre.replace(Tc,"");let t=e[e.length-1];t.post=t.post.replace(Dc,"")}))}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}})),e.prototype.phoneNumbers=Vc,Bc.forEach((t=>{e.prototype[t[0]]=e.prototype[t[1]]}))},Hc={api:function(e){Pc(e),Ic(e),Ec(e),Fc(e),zc(e)}};const Lc=function(e,t){e.docs.forEach((e=>{e.forEach(t)}))};var $c={case:e=>{Lc(e,(e=>{e.text=e.text.toLowerCase()}))},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;Lc(e,(e=>e.text=n(e.text,t)))},whitespace:e=>{Lc(e,(e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")}))},punctuation:e=>{Lc(e,(e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")}));let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()},debullet:e=>{const t=/^\s*([-–—*•])\s*$/;return e.docs.forEach((e=>{t.test(e[0].pre)&&(e[0].pre=e[0].pre.replace(t,""))})),e}};const Sc=e=>e.split("|").reduce(((e,t)=>(e[t]=!0,e)),{}),Mc="unicode|punctuation|whitespace|acronyms",Jc="|case|contractions|parentheses|quotations|emoji|honorifics|debullet",Wc={light:Sc(Mc),medium:Sc(Mc+Jc),heavy:Sc(Mc+Jc+"|possessives|adverbs|nouns|verbs")};var qc={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=Wc[e]),Object.keys(e).forEach((t=>{$c.hasOwnProperty(t)&&$c[t](this,e[t])})),this}}},Kc=function(e){let t=e.clauses().match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they|i)"),t=t.splitOn("(#Noun|#Adjective) [(he|him|she|it)]",0),t=t.splitOn("[(he|him|she|it)] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.splitBefore("(our|my|their|your)"),t=t.splitOn("#Noun [#Determiner]",0),t=t.if("#Noun"),t};const Rc=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var Uc=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")},_c=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t=t.first(),t.found?t:e}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Qc(e,t),isSubordinate:Uc(e),root:t}};const Zc=e=>e.text(),Xc=e=>e.json({terms:!1,normal:!0}).map((e=>e.normal)),Yc=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var eh=function(e){let t=_c(e);return{root:Zc(t.root),number:Yc(t.number),determiner:Zc(t.determiner),adjectives:Xc(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}},th=function(e){return!e.has("^(#Uncountable|#ProperNoun|#Place|#Pronoun|#Acronym)+$")};const nh={tags:!0};var rh=function(e,t){if(!0===t.isPlural)return e;if(t.root.has("#Possessive")&&(t.root=t.root.possessives().strip()),!th(t.root))return e;const{methods:n,model:r}=e.world,{toPlural:a}=n.two.transform.noun;let o=a(t.root.text({keepPunct:!1}),r);e.match(t.root).replaceWith(o,nh).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.remove(t.determiner);let i=t.root.after("not? #Adverb+? [#Copula]",0);return i.found&&(i.has("is")?e.replace(i,"are"):i.has("was")&&e.replace(i,"were")),e};const ah={tags:!0};var oh=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{toSingular:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,ah).tag("Singular","toPlural"),e},ih=function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return this.getNth(e).map(_c)}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0]||{};return t&&!0!==t.noun&&(n.noun=eh(e)),n}),[])}conjugate(e){const t=this.world.methods.two.transform.noun;return this.getNth(e).map((e=>{let n=_c(e),r=n.root.compute("root").text("root"),a={Singular:r};return th(n.root)&&(a.Plural=t.toPlural(r,this.model)),a.Singular===a.Plural&&delete a.Plural,a}),[])}isPlural(e){let t=this.filter((e=>_c(e).isPlural));return t.getNth(e)}isSingular(e){let t=this.filter((e=>!_c(e).isPlural));return t.getNth(e)}adjectives(e){let t=this.update([]);return this.forEach((e=>{let n=_c(e).adjectives;n.found&&(t=t.concat(n))})),t.getNth(e)}toPlural(e){return this.getNth(e).map((e=>rh(e,_c(e))))}toSingular(e){return this.getNth(e).map((e=>{let t=_c(e);return oh(e,t)}))}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Kc(this);return t=t.getNth(e),new Nouns(this.document,t.pointer)}},sh={api:ih},lh=function(e,t){let n=e.match("#Fraction+");return n=n.filter((e=>!e.lookBehind("#Value and$").found)),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n},uh=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(ch.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(ch.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(ch.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},dh=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const ph=/^([0-9,. ]+)\/([0-9,. ]+)$/,mh={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},fh=e=>Object.keys(e).reduce(((t,n)=>t+=e[n]),0);var vh=function(e){if(!0===mh.hasOwnProperty(e))return mh[e];if("a"===e||"an"===e)return 1;const t=uh(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=yh(n),r=yh(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:yh(n);let a=r.text("reduced");return bh.test(a)&&(a=a.replace(bh,""),r=r.replaceWith(a)),r=wh.hasOwnProperty(a)?wh[a]:yh(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:yh(t)}:null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t},Ph=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const Ah=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Nh=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],jh=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],Ih=function(e){let t=[];if(e>100)return t;for(let n=0;n=Ah[n][1]&&(e-=Ah[n][1],t.push(Ah[n][0]));return Nh[e]&&t.push(Nh[e]),t};var xh=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Ph(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return jh.forEach((r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}})),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(Ih(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=Ph(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee)),0===n.length&&(n[0]=""),n.join(" ")},Eh=function(e){return e.numerator&&e.denominator?`${xh({num:e.numerator})} out of ${xh({num:e.denominator})}`:""};const Ch={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var Th=e=>{let t=xh(e).split(" "),n=t[t.length-1];return Ch.hasOwnProperty(n)?t[t.length-1]=Ch[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},Dh=function(e){if(!e.numerator||!e.denominator)return"";let t=xh({num:e.numerator}),n=Th({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""},Oh=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return this.getNth(e).map(kh)}get(e){return this.getNth(e).map(kh)}json(e){return this.getNth(e).map((t=>{let n=t.toView().json(e)[0],r=kh(t);return n.fraction=r,n}),[])}toDecimal(e){return this.getNth(e).forEach((e=>{let{decimal:t}=kh(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")})),this}toFraction(e){return this.getNth(e).forEach((e=>{let t=kh(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}})),this}toOrdinal(e){return this.getNth(e).forEach((e=>{let t=kh(e),n=Dh(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)})),this}toCardinal(e){return this.getNth(e).forEach((e=>{let t=kh(e),n=Eh(t);e.replaceWith(n)})),this}toPercentage(e){return this.getNth(e).forEach((e=>{let{decimal:t}=kh(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(`${n}%`)})),this}}e.prototype.fractions=function(e){let t=lh(this);return t=t.getNth(e),new Fractions(this.document,t.pointer)}};const Fh="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var Vh=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+Fh+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+Fh+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+Fh+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+Fh+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${Fh})`),r=e.has("("+Fh+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach((e=>{t=t.splitOn(e)}))}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+Fh+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+Fh+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},Gh=function(e){if("string"==typeof e)return{num:vh(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=kh(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=vh(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}},Bh=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=Ph(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const zh={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},Hh={"%":"percent","°":"degrees"};var Lh=function(e){let t={suffix:"",prefix:e.prefix};return zh.hasOwnProperty(e.prefix)&&(t.suffix+=" "+zh[e.prefix],t.prefix=""),Hh.hasOwnProperty(e.suffix)&&(t.suffix+=" "+Hh[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},$h=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=Lh(e);return t+Th(e)+n}if("Ordinal"===t)return e.prefix+Bh(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=Lh(e);return t+xh(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix},Sh=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return this.getNth(e).map(Gh)}get(e){return this.getNth(e).map(Gh).map((e=>e.num))}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0],r=Gh(e);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n}),[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach((e=>{let t=Gh(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=$h(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")})),this}toLocaleString(){return this.forEach((e=>{let t=Gh(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=$h(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})})),this}toText(){let e=this.map((e=>{if(e.has("#TextValue"))return e;let t=Gh(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=$h(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e}));return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map((e=>{if(!e.has("#Ordinal"))return e;let t=Gh(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=$h(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e}));return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map((e=>{if(e.has("#Ordinal"))return e;let t=Gh(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=$h(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e}));return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter((t=>Gh(t).num===e))}greaterThan(e){return this.filter((t=>Gh(t).num>e))}lessThan(e){return this.filter((t=>Gh(t).num{let r=Gh(n).num;return r>e&&r{let n=Gh(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=$h(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=Gh(e).num);let t=this.map((t=>{let n=Gh(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=$h(n,r);return t.replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=Vh(this);return t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=Vh(this);return t=t.filter((e=>e.has("#Percent")||e.after("^percent"))),t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=Vh(this);return t=t.filter((e=>e.has("#Money")||e.after("^#Currency"))),t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},Mh={api:function(e){Oh(e),Sh(e)}};const Jh={people:!0,emails:!0,phoneNumbers:!0,places:!0},Wh=function(e={}){return!1!==(e=Object.assign({},Jh,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this},qh={api:function(e){e.prototype.redact=Wh}};var Kh=qh,Rh=function(e){const t=/\?/,{document:n}=e;return e.filter((e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))}))},Uh=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))};const Qh=function(e){let t=null;return e.has("#PastTense")?t="PastTense":e.has("#FutureTense")?t="FutureTense":e.has("#PresentTense")&&(t="PresentTense"),{tense:t}};var _h=function(e){let t=e.clauses(),n=Uh(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach(((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e})),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o,grammar:Qh(a)}},Zh=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e},Xh=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e},Yh=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let e=t.filter((e=>!(e.lookBehind("to$").found||!e.has("#Copula #Gerund")&&(e.has("#Gerund")||!e.has("#Copula")&&e.has("#PresentTense")&&!e.has("#Infinitive")&&e.lookBefore("(he|she|it|that|which)$").found))));e.found&&e.forEach((e=>{if(e.has("#Copula"))return e.match("was").replaceWith("is"),void e.match("is").replaceWith("will be");e.toInfinitive()}))}return e},ed=function(e){return e.verbs().toInfinitive(),e},td=function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o,grammar:i}=_h(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal"),grammar:i},n}),[])}toPastTense(e){return this.getNth(e).map((e=>(_h(e),Zh(e))))}toPresentTense(e){return this.getNth(e).map((e=>(_h(e),Xh(e))))}toFutureTense(e){return this.getNth(e).map((e=>(_h(e),e=Yh(e))))}toInfinitive(e){return this.getNth(e).map((e=>(_h(e),ed(e))))}toNegative(e){return this.getNth(e).map((e=>(_h(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e))))}toPositive(e){return this.getNth(e).map((e=>(_h(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e))))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter((e=>e.lastTerm().has("@hasExclamation")));return t.getNth(e)}isStatement(e){let t=this.filter((e=>!e.isExclamation().found&&!e.isQuestion().found));return t.getNth(e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map((e=>e.fullSentence()));return t=t.getNth(e),new Sentences(this.document,t.pointer)},questions:function(e){return Rh(this).getNth(e)}};Object.assign(e.prototype,t)},nd={api:td},rd=function(e){return e.match("#Honorific+? #Person+")},ad=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const od="male",id="female",sd={mr:od,mrs:id,miss:id,madam:id,king:od,queen:id,duke:od,duchess:id,baron:od,baroness:id,count:od,countess:id,prince:od,princess:id,sire:od,dame:id,lady:id,ayatullah:od,congressman:od,congresswoman:id,"first lady":id,mx:null};var ld=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return id;if(n.has("#MaleName"))return od;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),sd.hasOwnProperty(e))return sd[e];if(/^her /.test(e))return id;if(/^his /.test(e))return od}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return od;if(n&&!t)return id}return null},ud=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return this.getNth(e).map(ad)}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0],r=ad(e);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:ld(r,e)},n}),[])}presumedMale(){return this.filter((e=>e.has("(#MaleName|mr|mister|sr|jr|king|pope|prince|sir)")))}presumedFemale(){return this.filter((e=>e.has("(#FemaleName|mrs|miss|queen|princess|madam)")))}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=rd(this);return t=t.getNth(e),new People(this.document,t.pointer)}},cd=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter((e=>!!e.has("(asia|africa|europe|america)$")||!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found)),t=t.splitAfter(n),t},hd=function(e){e.prototype.places=function(t){let n=cd(this);return n=n.getNth(t),new e(this.document,n.pointer)}},dd=function(e){e.prototype.organizations=function(e){return this.match("#Organization+").getNth(e)}};const gd=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=n.getNth(e),n};var pd=function(e){e.prototype.topics=gd},md={api:function(e){ud(e),hd(e),dd(e),pd(e)}},fd=function(e){let t=e.match("");return t=t.not("(#Conjunction && !to)"),t=t.not("#Preposition"),t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0),t=t.not("#Reflexive$"),t=t.splitAfter("[#PastTense] #PastTense",0),t=t.splitAfter("[#PastTense] #Auxiliary+ #PastTense",0),t=t.splitAfter("#Copula [#Gerund] #PastTense",0),t=t.if("#Verb"),t.has("(#Verb && !#Auxiliary) #Adverb+? #Copula")&&(t=t.splitBefore("#Copula")),t},vd=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t},bd=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const yd=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},wd=function(e){return e.match("#Negative")},kd=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Pd=function(e){let t=e.clone();t.contractions().expand();const n=vd(t);return{root:n,prefix:t.match("#Prefix"),adverbs:bd(t,n),auxiliary:yd(t,n),negative:wd(t),phrasal:kd(n)}};const Ad={tense:"PresentTense"},Nd={conditional:!0},jd={tense:"FutureTense"},Id={progressive:!0},xd={tense:"PastTense"},Ed={complete:!0,progressive:!1},Cd={passive:!0},Td=function(e){let t={};return e.forEach((e=>{Object.assign(t,e)})),t},Dd={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Ad]],["^wanted to #Infinitive$",[xd]],["^will want to #Infinitive$",[jd]]],"gerund-phrase":[["^#PastTense #Gerund$",[xd]],["^#PresentTense #Gerund$",[Ad]],["^#Infinitive #Gerund$",[Ad]],["^will #Infinitive #Gerund$",[jd]],["^have #PastTense #Gerund$",[xd]],["^will have #PastTense #Gerund$",[xd]]],"simple-present":[["^#PresentTense$",[Ad]],["^#Infinitive$",[Ad]]],"simple-past":[["^#PastTense$",[xd]]],"simple-future":[["^will #Adverb? #Infinitive",[jd]]],"present-progressive":[["^(is|are|am) #Gerund$",[Ad,Id]]],"past-progressive":[["^(was|were) #Gerund$",[xd,Id]]],"future-progressive":[["^will be #Gerund$",[jd,Id]]],"present-perfect":[["^(has|have) #PastTense$",[xd,Ed]]],"past-perfect":[["^had #PastTense$",[xd,Ed]],["^had #PastTense to #Infinitive",[xd,Ed]]],"future-perfect":[["^will have #PastTense$",[jd,Ed]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[xd,Id]]],"past-perfect-progressive":[["^had been #Gerund$",[xd,Id]]],"future-perfect-progressive":[["^will have been #Gerund$",[jd,Id]]],"passive-past":[["(got|were|was) #Passive",[xd,Cd]],["^(was|were) being #Passive",[xd,Cd]],["^(had|have) been #Passive",[xd,Cd]]],"passive-present":[["^(is|are|am) #Passive",[Ad,Cd]],["^(is|are|am) being #Passive",[Ad,Cd]],["^has been #Passive",[Ad,Cd]]],"passive-future":[["will have been #Passive",[jd,Cd,Nd]],["will be being? #Passive",[jd,Cd,Nd]]],"present-conditional":[["would be #PastTense",[Ad,Nd]]],"past-conditional":[["would have been #PastTense",[xd,Nd]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[jd]]],"auxiliary-past":[["^did #Infinitive$",[xd,{plural:!1}]],["^used to #Infinitive$",[xd,Ed]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Ad,Ed,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[xd]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let Od=[];Object.keys(Dd).map((e=>{Dd[e].forEach((t=>{Od.push({name:e,match:t[0],data:Td(t[1])})}))}));var Fd=Od,Vd=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb")))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),Gd(r)&&(n.remove(r),r=n.last()),Gd(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:Bd(t,e)}};const Hd=e=>e,Ld=(e,t)=>{let n=zd(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},$d=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=zd(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Sd=function(e,t){let n=zd(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Md=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},Jd=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Md(e)),r&&e.replace(t.root,r),e},Wd=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),qd=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map((e=>e.normal)):[]},Kd=function(e){return e&&e.isView?e.text("normal"):""},Rd=function(e){const{toInfinitive:t}=e.methods.two.transform.verb;return t(e.text("normal"),e.model,Md(e))};var Ud=function(e){let t=Pd(e);e=e.clone().toView();const n=Vd(e,t);return{root:t.root.text(),preAdverbs:qd(t.adverbs.pre),postAdverbs:qd(t.adverbs.post),auxiliary:Kd(t.auxiliary),negative:t.negative.found,prefix:Kd(t.prefix),infinitive:Rd(t.root),grammar:n}};const Qd={tags:!0};var _d=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Md(r)),i&&e.replace(r,i,Qd).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Sd(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Zd={tags:!0},Xd={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Md(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=zd(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Zd),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Xd.simple(e,t),e=Xd.noAux(e,t))},hasHad:e=>(e.replace("has","had",Zd),e),hasParticiple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Md(a)),n(o,e.model).Participle}},Yd={infinitive:Xd.simple,"simple-present":Xd.simple,"simple-past":Hd,"simple-future":Xd.both,"present-progressive":e=>(e.replace("are","were",Zd),e.replace("(is|are|am)","was",Zd),e),"past-progressive":Hd,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Xd.hasHad,"past-perfect":Hd,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=Wd(e)),e.remove("have"),e),"present-perfect-progressive":Xd.hasHad,"past-perfect-progressive":Hd,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Zd),e),"passive-past":e=>(e.replace("have","had",Zd),e),"passive-present":e=>(e.replace("(is|are)","was",Zd),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",Zd),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Hd,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Zd),e),"auxiliary-past":Hd,"auxiliary-present":e=>(e.replace("(do|does)","did",Zd),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Zd):(Xd.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Hd,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Zd),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Xd.simple(e,t),Wd(e),e)};var eg=function(e,t,n){return Yd.hasOwnProperty(n)?((e=Yd[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const tg=function(e,t){let n=zd(e),r=n.subject;return r.has("(i|we|you)")?"have":!1===n.plural||r.has("he")||r.has("she")||r.has("#Person")?"has":"have"},ng=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(a.has("#Modal"))return e;let i=a.text({keepPunct:!1});i=r(i,e.model,Md(a));let s=n(i,e.model);if(i=s.Participle||s.PastTense,i){e=e.replace(a,i);let t=tg(e);e.prepend(t).match(t).tag("Auxiliary"),e.remove(o)}return e},rg={infinitive:ng,"simple-present":ng,"simple-future":(e,t)=>e.replace("will",tg(e)),"present-perfect":Hd,"past-perfect":Hd,"future-perfect":(e,t)=>e.replace("will have",tg(e)),"present-perfect-progressive":Hd,"past-perfect-progressive":Hd,"future-perfect-progressive":Hd};var ag=function(e,t,n){return rg.hasOwnProperty(n)?((e=rg[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):((e=ng(e,t)).fullSentence().compute(["tagger","chunks"]),e)};const og={tags:!0},ig=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Md(a)),!1===Ld(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=$d(e)),o&&(e=e.replace(a,o,og)).not("#Particle").tag("PresentTense"),e},sg=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Md(a)),!1===Ld(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,og)).not("#Particle").tag("Gerund"),e},lg={infinitive:ig,"simple-present":(e,t)=>{const{conjugate:n}=e.methods.two.transform.verb;let{root:r}=t;if(!r.has("#Infinitive"))return ig(e,t);{let t=zd(e).subject;if(Ld(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,og)}return e},"simple-past":ig,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=$d(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else ig(e,t),e=e.remove("will");return e},"present-progressive":Hd,"past-progressive":(e,t)=>{let n=$d(e);return e.replace("(were|was)",n,og)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(ig(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=zd(e).subject;return Ld(e)||n.has("i")?((e=Jd(e,t)).remove("had"),e):(e.replace("had","has",og),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Hd,"past-perfect-progressive":e=>e.replace("had","has",og),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=$d(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,og),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Hd,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Hd,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(sg(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=Sd(e);return e.replace(t.auxiliary,n),e}return sg(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Hd,"modal-infinitive":Hd,"modal-past":(e,t)=>(((e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Md(r)),a&&(e=e.replace(t.root,a,og))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),ig(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Ld(e)&&(n="want"),e.replace("(want|wanted|wants)",n,og),e.remove("will"),e}};var ug=function(e,t,n){return lg.hasOwnProperty(n)?((e=lg[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const cg={tags:!0},hg=(e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Md(r)),o&&(e=e.replace(r,o,cg)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},dg=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Md(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,cg),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},gg={infinitive:hg,"simple-present":hg,"simple-past":hg,"simple-future":Hd,"present-progressive":dg,"past-progressive":dg,"future-progressive":Hd,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Hd,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Hd,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":Hd,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Hd,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":Hd,"modal-past":Hd,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),hg(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var pg=function(e,t,n){return e.has("will")||e.has("going to")?e:gg.hasOwnProperty(n)?((e=gg[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const mg={tags:!0};var fg=function(e,t){const{toInfinitive:n,conjugate:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Md(a));let s=r(i,e.model).Gerund;if(s){let t=$d(e);e.replace(a,s,mg),e.remove(o),e.prepend(t)}return e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const vg={tags:!0},bg=function(e,t){let n=Sd(e);return e.prepend(n+" not"),e},yg=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},wg=e=>e.has("(is|was|am|are|will|were|be)"),kg={"simple-present":(e,t)=>!0===wg(e)?yg(e):(e=Jd(e,t),e=bg(e)),"simple-past":(e,t)=>!0===wg(e)?yg(e):((e=Jd(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===wg(e)?yg(e):bg(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",vg),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=bg(e)).replace("wants","want",vg)};var Pg=function(e,t,n){if(e.has("#Negative"))return e;if(kg.hasOwnProperty(n))return e=kg[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===wg(e)?yg(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)},Ag=function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return this.getNth(e).map(Pd)}json(e,t){let n=this.getNth(t).map((t=>{let n=t.toView().json(e)[0]||{};return n.verb=Ud(t),n}),[]);return n}subjects(e){return this.getNth(e).map((e=>(Pd(e),zd(e).subject)))}adverbs(e){return this.getNth(e).map((e=>e.match("#Adverb")))}isSingular(e){return this.getNth(e).filter((e=>!0!==zd(e).plural))}isPlural(e){return this.getNth(e).filter((e=>!0===zd(e).plural))}isImperative(e){return this.getNth(e).filter((e=>e.has("#Imperative")))}toInfinitive(e){return this.getNth(e).map((e=>{let t=Pd(e),n=Vd(e,t);return _d(e,t,n.form)}))}toPresentTense(e){return this.getNth(e).map((e=>{let t=Pd(e),n=Vd(e,t);return ug(e,t,n.form)}))}toPastTense(e){return this.getNth(e).map((e=>{let t=Pd(e),n=Vd(e,t);return eg(e,t,n.form)}))}toFutureTense(e){return this.getNth(e).map((e=>{let t=Pd(e),n=Vd(e,t);return pg(e,t,n.form)}))}toGerund(e){return this.getNth(e).map((e=>{let t=Pd(e),n=Vd(e,t);return fg(e,t,n.form)}))}toPastParticiple(e){return this.getNth(e).map((e=>{let t=Pd(e),n=Vd(e,t);return ag(e,t,n.form)}))}conjugate(e){const{conjugate:t,toInfinitive:n}=this.world.methods.two.transform.verb;return this.getNth(e).map((e=>{let r=Pd(e),a=Vd(e,r);"imperative"===a.form&&(a.form="simple-present");let o=r.root.text("normal");if(!r.root.has("#Infinitive")){let t=Md(r.root);o=n(o,e.model,t)||o}return t(o,e.model)}),[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return this.getNth(e).map((e=>{let t=Pd(e),n=Vd(e,t);return Pg(e,t,n.form)}))}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=fd(this);return t=t.getNth(e),new Verbs(this.document,t.pointer)}},Ng={api:Ag};const jg=function(e,t){let n=t.match(e);if(n.found){let e=n.pronouns().refersTo();if(e.found)return e}return t.none()},Ig=function(e){if(!e.found)return e;let[t]=e.fullPointer[0];return t&&t>0?e.update([[t-1]]):e.none()};var xg=function(e,t){let n=e.people();return n=function(e,t){return"m"===t?e.filter((e=>!e.presumedFemale().found)):"f"===t?e.filter((e=>!e.presumedMale().found)):e}(n,t),n.found?n.last():(n=e.nouns("#Actor"),n.found?n.last():"f"===t?jg("(she|her|hers)",e):"m"===t?jg("(he|him|his)",e):e.none())},Eg=function(e){let t=e.nouns(),n=t.isPlural().notIf("#Pronoun");if(n.found)return n.last();let r=jg("(they|their|theirs)",e);return r.found?r:(n=t.match("(somebody|nobody|everybody|anybody|someone|noone|everyone|anyone)"),n.found?n.last():e.none())};const Cg=function(e,t){let n=e.before(),r=t(n);return r.found?r:(n=Ig(e),r=t(n),r.found?r:(n=Ig(n),r=t(n),r.found?r:e.none()))};var Tg=function(e){e.pronouns().if("(he|him|his|she|her|hers|they|their|theirs|it|its)").forEach((e=>{let t=null;e.has("(he|him|his)")?t=Cg(e,(e=>xg(e,"m"))):e.has("(she|her|hers)")?t=Cg(e,(e=>xg(e,"f"))):e.has("(they|their|theirs)")&&(t=Cg(e,Eg)),t&&t.found&&function(e,t){t&&t.found&&(e.docs[0][0].reference=t.ptrs[0])}(e,t)}))},Dg=function(e){class Pronouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Pronouns"}hasReference(){return this.compute("coreference"),this.filter((e=>e.docs[0][0].reference))}refersTo(){return this.compute("coreference"),this.map((e=>{if(!e.found)return e.none();let t=e.docs[0][0];return t.reference?e.update([t.reference]):e.none()}))}update(e){let t=new Pronouns(this.document,e);return t._cache=this._cache,t}}e.prototype.pronouns=function(e){let t=this.match("#Pronoun");return t=t.getNth(e),new Pronouns(t.document,t.pointer)}},Og={compute:{coreference:Tg},api:Dg};return v.plugin(oc),v.plugin(ic),v.plugin(wc),v.plugin(Og),v.plugin(Hc),v.plugin(qc),v.plugin(sh),v.plugin(Mh),v.plugin(Kh),v.plugin(nd),v.plugin(md),v.plugin(Ng),v},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t();
diff --git a/builds/one/compromise-one.cjs b/builds/one/compromise-one.cjs
index d619b52e3..7c07fabdb 100644
--- a/builds/one/compromise-one.cjs
+++ b/builds/one/compromise-one.cjs
@@ -1 +1 @@
-var t,e;t=this,e=function(){var t={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const e={compute:function(t){const{world:e}=this,n=e.compute;return"string"==typeof t&&n.hasOwnProperty(t)?n[t](this):(t=>"[object Array]"===Object.prototype.toString.call(t))(t)?t.forEach((r=>{e.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",t)})):"function"==typeof t?t(this):console.warn("no compute:",t),this}};var n=e,r={forEach:function(t){return this.fullPointer.forEach(((e,n)=>{let r=this.update([e]);t(r,n)})),this},map:function(t,e){let n=this.fullPointer.map(((e,n)=>{let r=this.update([e]),o=t(r,n);return void 0===o?this.none():o}));if(0===n.length)return e||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((t=>{r=r.concat(t.fullPointer)})),this.toView(r)},filter:function(t){let e=this.fullPointer;return e=e.filter(((e,n)=>{let r=this.update([e]);return t(r,n)})),this.update(e)},find:function(t){let e=this.fullPointer.find(((e,n)=>{let r=this.update([e]);return t(r,n)}));return this.update([e])},some:function(t){return this.fullPointer.some(((e,n)=>{let r=this.update([e]);return t(r,n)}))},random:function(t=1){let e=this.fullPointer,n=Math.floor(Math.random()*e.length);return n+t>this.length&&(n=this.length-t,n=n<0?0:n),e=e.slice(n,n+t),this.update(e)}};const o={termList:function(){return this.methods.one.termList(this.docs)},terms:function(t){let e=this.match(".");return"number"==typeof t?e.eq(t):e},groups:function(t){if(t||0===t)return this.update(this._groups[t]||[]);let e={};return Object.keys(this._groups).forEach((t=>{e[t]=this.update(this._groups[t])})),e},eq:function(t){let e=this.pointer;return e||(e=this.docs.map(((t,e)=>[e]))),e[t]?this.update([e[t]]):this.none()},first:function(){return this.eq(0)},last:function(){let t=this.fullPointer.length-1;return this.eq(t)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(t,e){let n=this.pointer||this.docs.map(((t,e)=>[e]));return n=n.slice(t,e),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let t=this.fullPointer.map((t=>[t[0]]));return this.update(t).toView()},none:function(){return this.update([])},isDoc:function(t){if(!t||!t.isView)return!1;let e=this.fullPointer,n=t.fullPointer;return!e.length!==n.length&&e.every(((t,e)=>!!n[e]&&t[0]===n[e][0]&&t[1]===n[e][1]&&t[2]===n[e][2]))},wordCount:function(){return this.docs.reduce(((t,e)=>(t+=e.filter((t=>""!==t.text)).length,t)),0)},isFull:function(){let t=this.pointer;if(!t)return!0;let e=this.document;for(let n=0;ni)return!1}return!0},getNth:function(t){return"number"==typeof t?this.eq(t):"string"==typeof t?this.if(t):this}};o.group=o.groups,o.fullSentence=o.fullSentences,o.sentence=o.fullSentences,o.lastTerm=o.lastTerms,o.firstTerm=o.firstTerms;var i=o;const s=Object.assign({},i,n,r);s.get=s.eq;var l=s;class View{constructor(e,n,r={}){[["document",e],["world",t],["_groups",r],["_cache",null],["viewType","View"]].forEach((t=>{Object.defineProperty(this,t[0],{value:t[1],writable:!0})})),this.ptrs=n}get docs(){let e=this.document;return this.ptrs&&(e=t.methods.one.getDoc(this.ptrs,this.document)),e}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:t,ptrs:e,document:n}=this,r=e||t.map(((t,e)=>[e]));return r.map((t=>{let[e,r,o,i,s]=t;return r=r||0,o=o||(n[e]||[]).length,n[e]&&n[e][r]&&(i=i||n[e][r].id,n[e][o-1]&&(s=s||n[e][o-1].id)),[e,r,o,i,s]}))}update(t){let e=new View(this.document,t);if(this._cache&&t&&t.length>0){let n=[];t.forEach(((t,e)=>{let[r,o,i]=t;(1===t.length||0===o&&this.document[r].length===i)&&(n[e]=this._cache[r])})),n.length>0&&(e._cache=n)}return e.world=this.world,e}toView(t){return new View(this.document,t||this.pointer)}fromText(t){const{methods:e}=this;let n=e.one.tokenize.fromString(t,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let t=this.document.slice(0);t=t.map((t=>t.map((t=>((t=Object.assign({},t)).tags=new Set(t.tags),t)))));let e=this.update(this.pointer);return e.document=t,e._cache=this._cache,e}}Object.assign(View.prototype,l);var a=View;const c=function(t){return t&&"object"==typeof t&&!Array.isArray(t)};function u(t,e){if(c(e))for(const n in e)c(e[n])?(t[n]||Object.assign(t,{[n]:{}}),u(t[n],e[n])):Object.assign(t,{[n]:e[n]});return t}var h=function(t,e,n,r){const{methods:o,model:i,compute:s,hooks:l}=e;t.methods&&function(t,e){for(const n in e)t[n]=t[n]||{},Object.assign(t[n],e[n])}(o,t.methods),t.model&&u(i,t.model),t.irregulars&&function(t,e){let n=t.two.models||{};Object.keys(e).forEach((t=>{e[t].pastTense&&(n.toPast&&(n.toPast.exceptions[t]=e[t].pastTense),n.fromPast&&(n.fromPast.exceptions[e[t].pastTense]=t)),e[t].presentTense&&(n.toPresent&&(n.toPresent.exceptions[t]=e[t].presentTense),n.fromPresent&&(n.fromPresent.exceptions[e[t].presentTense]=t)),e[t].gerund&&(n.toGerund&&(n.toGerund.exceptions[t]=e[t].gerund),n.fromGerund&&(n.fromGerund.exceptions[e[t].gerund]=t)),e[t].comparative&&(n.toComparative&&(n.toComparative.exceptions[t]=e[t].comparative),n.fromComparative&&(n.fromComparative.exceptions[e[t].comparative]=t)),e[t].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[t]=e[t].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[e[t].superlative]=t))}))}(i,t.irregulars),t.compute&&Object.assign(s,t.compute),l&&(e.hooks=l.concat(t.hooks||[])),t.api&&t.api(n),t.lib&&Object.keys(t.lib).forEach((e=>r[e]=t.lib[e])),t.tags&&r.addTags(t.tags),t.words&&r.addWords(t.words),t.mutate&&t.mutate(e)};const f=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var p=function(t,e,n){const{methods:r}=n;let o=new e([]);if(o.world=n,"number"==typeof t&&(t=String(t)),!t)return o;if("string"==typeof t)return new e(r.one.tokenize.fromString(t,n));if(i=t,"[object Object]"===Object.prototype.toString.call(i)&&t.isView)return new e(t.document,t.ptrs);var i;if(f(t)){if(f(t[0])){let n=t.map((t=>t.map((t=>({text:t,normal:t,pre:"",post:" ",tags:new Set})))));return new e(n)}let n=function(t){return t.map((t=>t.terms.map((t=>(f(t.tags)&&(t.tags=new Set(t.tags)),t)))))}(t);return new e(n)}return o};let d=Object.assign({},t);const m=function(t,e){e&&m.addWords(e);let n=p(t,a,d);return t&&n.compute(d.hooks),n};Object.defineProperty(m,"_world",{value:d,writable:!0}),m.tokenize=function(t,e){const{compute:n}=this._world;e&&m.addWords(e);let r=p(t,a,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},m.plugin=function(t){return h(t,this._world,a,this),this},m.extend=m.plugin,m.world=function(){return this._world},m.model=function(){return this._world.model},m.methods=function(){return this._world.methods},m.hooks=function(){return this._world.hooks},m.verbose=function(t){const e="undefined"!=typeof process&&process.env?process.env:self.env||{};return e.DEBUG_TAGS="tagger"===t||!0===t||"",e.DEBUG_MATCH="match"===t||!0===t||"",e.DEBUG_CHUNKS="chunker"===t||!0===t||"",this},m.version="14.8.2";var w=m,y=function(t){let e=t.map((t=>{let e=new Set;return t.forEach((t=>{""!==t.normal&&e.add(t.normal),t.switch&&e.add(`%${t.switch}%`),t.implicit&&e.add(t.implicit),t.machine&&e.add(t.machine),t.root&&e.add(t.root),t.alias&&t.alias.forEach((t=>e.add(t)));let n=Array.from(t.tags);for(let t=0;t/^\p{Lu}[\p{Ll}'’]/u.test(t)||/^\p{Lu}$/u.test(t),E=(t,e,n)=>{if(n.forEach((t=>t.dirty=!0)),t){let r=[e,0].concat(n);Array.prototype.splice.apply(t,r)}return t},O=function(t){let e=t[t.length-1];!e||/ $/.test(e.post)||/[-–—]/.test(e.post)||(e.post+=" ")},k=(t,e,n)=>{const r=/[-.?!,;:)–—'"]/g;let o=t[e-1];if(!o)return;let i=o.post;if(r.test(i)){let t=i.match(r).join(""),e=n[n.length-1];e.post=t+e.post,o.post=o.post.replace(r,"")}},P=function(t,e,n,r){let[o,i,s]=e;0===i||s===r[o].length?O(n):(O(n),O([t[e[1]]])),function(t,e,n){let r=t[e];if(0!==e||!j(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(t=>t.toUpperCase()));let o=t[e];o.tags.has("ProperNoun")||o.tags.has("Acronym")||j(o.text)&&o.text.length>1&&(o.text=o.text.replace(/^\p{Lu}/u,(t=>t.toLowerCase())))}(t,i,n),E(t,i,n)};let _=0;const S=t=>(t=t.length<3?"0"+t:t).length<3?"0"+t:t;var A=function(t){let[e,n]=t.index||[0,0];_+=1,_=_>46655?0:_,e=e>46655?0:e,n=n>1294?0:n;let r=S(_.toString(36));r+=S(e.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,r+=o,r+=parseInt(36*Math.random(),10).toString(36),t.normal+"|"+r.toUpperCase()};const T=function(t){t.has("@hasContraction")&&"function"==typeof t.contractions&&t.grow("@hasContraction").contractions().expand()},$=t=>"[object Array]"===Object.prototype.toString.call(t),C=function(t,e,n){const{document:r,world:o}=e;e.uncache();let i=e.fullPointer,s=e.fullPointer;e.forEach(((l,a)=>{let c=l.fullPointer[0],[u]=c,h=r[u],f=function(t,e){const{methods:n}=e;return"string"==typeof t?n.one.tokenize.fromString(t,e)[0]:"object"==typeof t&&t.isView?t.clone().docs[0]||[]:$(t)?$(t[0])?t[0]:t:[]}(t,o);0!==f.length&&(f=function(t){return t.map((t=>(t.id=A(t),t)))}(f),n?(T(e.update([c]).firstTerm()),P(h,c,f,r)):(T(e.update([c]).lastTerm()),function(t,e,n,r){let[o,,i]=e,s=(r[o]||[]).length;i{let n=e(t);t.replaceWith(n)})),t}(r,t);t=function(t,e){if("string"!=typeof t)return t;let n=e.groups();return t=t.replace(L,(t=>{let e=t.replace(/\$/,"");return n.hasOwnProperty(e)?n[e].text():t})),t}(t,r);let o=this.update(n);n=n.map((t=>t.slice(0,3)));let i=(o.docs[0]||[]).map((t=>Array.from(t.tags)));"string"==typeof t&&(t=this.fromText(t).compute("id")),r.insertAfter(t),o.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(o);let s=r.toView(n).compute(["index","lexicon"]);return s.world.compute.preTagger&&s.compute("preTagger"),e.tags&&s.terms().forEach(((t,e)=>{t.tagSafe(i[e])})),e.case&&s.docs[0]&&s.docs[0][0]&&0===s.docs[0][0].index[1]&&(s.docs[0][0].text=s.docs[0][0].text.replace(/\w\S*/g,(t=>t.charAt(0).toUpperCase()+t.substring(1).toLowerCase()))),s},replace:function(t,e,n){if(t&&!e)return this.replaceWith(t,n);let r=this.match(t);return r.found?(this.soften(),r.replaceWith(e,n)):this}};var q=V,F=function(t,e){e.forEach((e=>{let[n,r,o]=e,i=o-r;t[n]&&(o===t[n].length&&o>1&&function(t,e){let n=t.length-1,r=t[n],o=t[n-e];o&&r&&(o.post+=r.post,o.post=o.post.replace(/ +([.?!,;:])/,"$1"),o.post=o.post.replace(/[,;:]+([.?!])/,"$1"))}(t[n],i),t[n].splice(r,i))}));for(let e=t.length-1;e>=0;e-=1)if(0===t[e].length&&(t.splice(e,1),e===t.length&&t[e-1])){let n=t[e-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return t};const G={remove:function(t){const{indexN:e}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;t&&(n=this,r=this.match(t));let o=!n.ptrs;r.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction").contractions().expand();let i=n.fullPointer,s=r.fullPointer.reverse(),l=F(this.document,s);return i=function(t,e){return t=t.map((t=>{let[n]=t;return e[n]?(e[n].forEach((e=>{let n=e[2]-e[1];t[1]<=e[1]&&t[2]>=e[2]&&(t[2]-=n)})),t):t})),t.forEach(((e,n)=>{if(0===e[1]&&0==e[2])for(let e=n+1;et[2]-t[1]>0))).map((t=>(t[3]=null,t[4]=null,t)))}(i,e(s)),n.ptrs=i,n.document=l,n.compute("index"),o&&(n.ptrs=void 0),t?n.toView(i):(this.ptrs=[],n.none())}};G.delete=G.remove;var D=G;const B={pre:function(t,e){return void 0===t&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===e?r.pre+=t:r.pre=t})),this)},post:function(t,e){if(void 0===t){let t=this.docs[this.docs.length-1];return t[t.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===e?r.post+=t:r.post=t})),this},trim:function(){if(!this.found)return this;let t=this.docs,e=t[0][0];e.pre=e.pre.trimStart();let n=t[t.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((t=>{t.forEach(((e,n)=>{0!==n&&(e.pre=""),t[n+1]&&(e.post="-")}))})),this},dehyphenate:function(){const t=/[-–—]/;return this.docs.forEach((e=>{e.forEach((e=>{t.test(e.post)&&(e.post=" ")}))})),this},toQuotations:function(t,e){return t=t||'"',e=e||'"',this.docs.forEach((n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post})),this},toParentheses:function(t,e){return t=t||"(",e=e||")",this.docs.forEach((n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post})),this}};B.deHyphenate=B.dehyphenate,B.toQuotation=B.toQuotations;var U=B,M={alpha:(t,e)=>t.normale.normal?1:0,length:(t,e)=>{let n=t.normal.trim().length,r=e.normal.trim().length;return nr?-1:0},wordCount:(t,e)=>t.wordse.words?-1:0,sequential:(t,e)=>t[0]e[0]?-1:t[1]>e[1]?1:-1,byFreq:function(t){let e={};return t.forEach((t=>{e[t.normal]=e[t.normal]||0,e[t.normal]+=1})),t.sort(((t,n)=>{let r=e[t.normal],o=e[n.normal];return ro?-1:0})),t}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),I=new Set(["freq","frequency","topk","repeats"]),R=new Set(["alpha","alphabetical"]);var Q={unique:function(){let t=new Set;return this.filter((e=>{let n=e.text("machine");return!t.has(n)&&(t.add(n),!0)}))},reverse:function(){let t=this.pointer||this.docs.map(((t,e)=>[e]));return t=[].concat(t),t=t.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(t)},sort:function(t){let{docs:e,pointer:n}=this;if(this.uncache(),"function"==typeof t)return function(t,e){let n=t.fullPointer;return n=n.sort(((n,r)=>(n=t.update([n]),r=t.update([r]),e(n,r)))),t.ptrs=n,t}(this,t);t=t||"alpha";let r=n||e.map(((t,e)=>[e])),o=e.map(((t,e)=>({index:e,words:t.length,normal:t.map((t=>t.machine||t.normal||"")).join(" "),pointer:r[e]})));return W.has(t)&&(t="sequential"),R.has(t)&&(t="alpha"),I.has(t)?(o=M.byFreq(o),this.update(o.map((t=>t.pointer)))):"function"==typeof M[t]?(o=o.sort(M[t]),this.update(o.map((t=>t.pointer)))):this}};const H=function(t,e){if(t.length>0){let e=t[t.length-1],n=e[e.length-1];!1===/ /.test(n.post)&&(n.post+=" ")}return t=t.concat(e)};var Z={concat:function(t){if("string"==typeof t){let e=this.fromText(t);if(this.found&&this.ptrs){let t=this.fullPointer,n=t[t.length-1][0];this.document.splice(n,0,...e.document)}else this.document=this.document.concat(e.document);return this.all().compute("index")}if("object"==typeof t&&t.isView)return function(t,e){if(t.document===e.document){let n=t.fullPointer.concat(e.fullPointer);return t.toView(n).compute("index")}return e.fullPointer.forEach((e=>{e[0]+=t.document.length})),t.document=H(t.document,e.docs),t.all()}(this,t);if(e=t,"[object Array]"===Object.prototype.toString.call(e)){let e=H(this.document,t);return this.document=e,this.all()}var e;return this}},K={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let t=this.ptrs;return!t||t.length<1||(t=t.map((t=>t.slice(0,3))),this.ptrs=t),this}};const J=Object.assign({},{toLowerCase:function(){return this.termList().forEach((t=>{t.text=t.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((t=>{t.text=t.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((t=>{t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(t=>t.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((t=>{t.forEach(((e,n)=>{0!==n&&(e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(t=>t.toUpperCase()))),n!==t.length-1&&(e.post="")}))})),this}},N,q,D,U,Q,Z,K);var X=function(t){Object.assign(t.prototype,J)};const Y={id:function(t){let e=t.docs;for(let t=0;t(t.implicit=t.text,t.machine=t.text,t.pre="",t.post="",t.text="",t.normal="",t.index=[r,o+e],t))),n[0]&&(n[0].pre=t[r][o].pre,n[n.length-1].post=t[r][o].post,n[0].text=t[r][o].text,n[0].normal=t[r][o].normal),t[r].splice(o,1,...n))};const rt=/'/,ot=new Set(["what","how","when","where","why"]),it=new Set(["be","go","start","think","need"]),st=new Set(["been","gone"]);var lt=function(t,e){let n=t[e].normal.split(rt)[0];if(ot.has(n))return[n,"did"];if(t[e+1]){if(st.has(t[e+1].normal))return[n,"had"];if(it.has(t[e+1].normal))return[n,"would"]}return null},at=function(t,e){return"ain't"===t[e].normal||"aint"===t[e].normal?null:[t[e].normal.replace(/n't/,""),"not"]};const ct=/'/;var ut=(t,e)=>["je",t[e].normal.split(ct)[1]],ht=(t,e)=>{let n=t[e].normal.split(ct)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},ft=(t,e)=>{let n=t[e].normal.split(ct)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const pt=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,dt=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,mt=/^[0-9]{3}-[0-9]{4}$/;var gt=function(t,e){let n=t[e],r=n.text.match(pt);return null!==r?!0===n.tags.has("PhoneNumber")||mt.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(dt),null!==r?[r[1],"to",r[4]]:null)};const wt=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,yt=new Set(["st","nd","rd","th","am","pm","max","°","s","e"]);var bt=function(t,e){let n=t[e].text.match(wt);if(null!==n){let t=n[2].toLowerCase().trim();return yt.has(t)?null:[n[1],t]}return null};const vt=/'/,xt=/^[0-9][^-–—]*[-–—].*?[0-9]/,jt=function(t,e,n,r){let o=e.update();o.document=[t];let i=n+r;n>0&&(n-=1),t[i]&&(i+=1),o.ptrs=[[0,n,i]]},Et={t:(t,e)=>at(t,e),d:(t,e)=>lt(t,e)},Ot={j:(t,e)=>ut(t,e),l:(t,e)=>ht(t,e),d:(t,e)=>ft(t,e)},kt=function(t,e,n,r){for(let o=0;o{let{world:e,document:n}=t;const{model:r,methods:o}=e;let i=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,s)=>{for(let l=r.length-1;l>=0;l-=1){let a=null,c=null;!0===vt.test(r[l].normal)&&([a,c]=r[l].normal.split(vt));let u=kt(i,r[l],a,c);!u&&Et.hasOwnProperty(c)&&(u=Et[c](r,l,e)),!u&&Ot.hasOwnProperty(a)&&(u=Ot[a](r,l)),u?(u=Pt(u,t),nt(n,[s,l],u),jt(n[s],t,l,u.length)):xt.test(r[l].normal)?(u=gt(r,l),u&&(u=Pt(u,t),nt(n,[s,l],u),o.one.setTag(u,"NumberRange",e),u[2]&&u[2].tags.has("Time")&&o.one.setTag([u[0]],"Time",e,null,"time-range"),jt(n[s],t,l,u.length))):(u=bt(r,l),u&&(u=Pt(u,t),nt(n,[s,l],u),o.one.setTag([u[1]],"Unit",e,null,"contraction-unit")))}}))},St={model:et,compute:{contractions:_t},hooks:["contractions"]},At=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,s=r.one._multiCache||{},l=r.one.lexicon||{};let a=t[e],c=a.machine||a.normal;return void 0!==t[e+1]&&!0===s[c]?function(t,e,n,r,o){let i=e+4>t.length?t.length-e:4,s=t[e].machine||t[e].normal;for(let l=1;ls.hasOwnProperty(t)));if(t)return i([l],s[t],n,!1,"1-lexicon-alias"),!0}if(!0===Tt.test(a)){let t=a.replace(Tt,"");if(s.hasOwnProperty(t)&&t.length>3&&$t.has(s[t]))return i([l],s[t],n,!1,"1-lexicon-prefix"),!0}return null},zt={lexicon:function(t){const e=t.world;t.docs.forEach((t=>{for(let n=0;n{let o=t[r],i=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);i.length>1&&(n[i[0]]=!0),e[r]=e[r]||o})),delete e[""],delete e.null,delete e[" "],{lex:e,_multi:n}},Lt={addWords:function(t){const e=this.world(),{methods:n,model:r}=e;if(t)if(Object.keys(t).forEach((e=>{"string"==typeof t[e]&&t[e].startsWith("#")&&(t[e]=t[e].replace(/^#/,""))})),n.two.expandLexicon){let{lex:o,_multi:i}=n.two.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else if(n.one.expandLexicon){let{lex:o,_multi:i}=n.one.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else Object.assign(r.one.lexicon,t)}},Vt={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Nt}},compute:zt,lib:Lt,hooks:["lexicon"]},qt=function(t,e){let n=[{}],r=[null],o=[0],i=[],s=0;t.forEach((function(t){let o=0,i=function(t,e){const{methods:n,model:r}=e;let o=n.one.tokenize.splitTerms(t,r).map((t=>n.one.tokenize.splitWhitespace(t,r)));return o.map((t=>t.text.toLowerCase()))}(t,e);for(let t=0;t0&&!n[s].hasOwnProperty(a);)s=o[s];if(n.hasOwnProperty(s)){let t=n[s][a];o[c]=t,r[t]&&(r[c]=r[c]||[],r[c]=r[c].concat(r[t]))}else o[c]=0}}return{goNext:n,endAs:r,failTo:o}};const Ft=function(t,e,n){let r=0,o=[];for(let i=0;i0&&(void 0===e.goNext[r]||!e.goNext[r].hasOwnProperty(s));)r=e.failTo[r]||0;if(e.goNext[r].hasOwnProperty(s)&&(r=e.goNext[r][s],e.endAs[r])){let n=e.endAs[r];for(let e=0;e0&&(r=r.concat(a))}return t.update(r)};const Bt=(t,e)=>{for(let n=t.length-1;n>=0;n-=1)if(t[n]!==e)return t=t.slice(0,n+1),t;return t};var Ut=function(t){return t.goNext=t.goNext.map((t=>{if(0!==Object.keys(t).length)return t})),t.goNext=Bt(t.goNext,void 0),t.failTo=Bt(t.failTo,0),t.endAs=Bt(t.endAs,null),t};const Mt={buildTrie:function(t){const e=qt(t,this.world());return Ut(e)}};Mt.compile=Mt.buildTrie;var Wt={api:function(t){t.prototype.lookup=function(t,e={}){if(!t)return this.none();"string"==typeof t&&(t=[t]);let n=(r=t,"[object Object]"===Object.prototype.toString.call(r)?t:qt(t,this.world));var r;let o=Dt(this,n,e);return o=o.settle(),o}},lib:Mt};const It=function(t,e){return e?(t.forEach((t=>{let n=t[0];e[n]&&(t[0]=e[n][0],t[1]+=e[n][1],t[2]+=e[n][1])})),t):t},Rt=function(t,e){let{ptrs:n,byGroup:r}=t;return n=It(n,e),Object.keys(r).forEach((t=>{r[t]=It(r[t],e)})),{ptrs:n,byGroup:r}},Qt=t=>"[object Object]"===Object.prototype.toString.call(t),Ht=t=>t&&Qt(t)&&!0===t.isView,Zt=t=>t&&Qt(t)&&!0===t.isNet,Kt=function(t,e,n){const r=n.methods.one;return"number"==typeof t&&(t=String(t)),"string"==typeof t&&(t=r.killUnicode(t,n),t=r.parseMatch(t,e,n)),t};var Jt={matchOne:function(t,e,n){const r=this.methods.one;if(Ht(t))return this.intersection(t).eq(0);if(Zt(t))return this.sweep(t,{tagger:!1,matchOne:!0}).view;let o={regs:t=Kt(t,n,this.world),group:e,justOne:!0},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Rt(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},match:function(t,e,n){const r=this.methods.one;if(Ht(t))return this.intersection(t);if(Zt(t))return this.sweep(t,{tagger:!1}).view.settle();let o={regs:t=Kt(t,n,this.world),group:e},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Rt(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},has:function(t,e,n){const r=this.methods.one;if(Ht(t))return t.fullPointer.length>0;if(Zt(t))return this.sweep(t,{tagger:!1}).view.found;let o={regs:t=Kt(t,n,this.world),group:e,justOne:!0};return r.match(this.docs,o,this._cache).ptrs.length>0},if:function(t,e,n){const r=this.methods.one;if(Ht(t))return this.filter((e=>e.intersection(t).found));if(Zt(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.if(e)}let o={regs:t=Kt(t,n,this.world),group:e,justOne:!0},i=this.fullPointer,s=this._cache||[];i=i.filter(((t,e)=>{let n=this.update([t]);return r.match(n.docs,o,s[e]).ptrs.length>0}));let l=this.update(i);return this._cache&&(l._cache=i.map((t=>s[t[0]]))),l},ifNo:function(t,e,n){const{methods:r}=this,o=r.one;if(Ht(t))return this.filter((e=>!e.intersection(t).found));if(Zt(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.ifNo(e)}t=Kt(t,n,this.world);let i=this._cache||[],s=this.filter(((n,r)=>{let s={regs:t,group:e,justOne:!0};return 0===o.match(n.docs,s,i[r]).ptrs.length}));return this._cache&&(s._cache=s.ptrs.map((t=>i[t[0]]))),s}},Xt={before:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer);Object.keys(i).forEach((t=>{let e=i[t].sort(((t,e)=>t[1]>e[1]?1:-1))[0];e[1]>0&&o.push([e[0],0,e[1]])}));let s=this.toView(o);return t?s.match(t,e,n):s},after:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer),s=this.document;Object.keys(i).forEach((t=>{let e=i[t].sort(((t,e)=>t[1]>e[1]?-1:1))[0],[n,,r]=e;r{let i=n.before(t,e);if(i.found){let t=i.terms();r[o][1]-=t.length,r[o][3]=t.docs[0][0].id}})),this.update(r)},growRight:function(t,e,n){"string"==typeof t&&(t=this.world.methods.one.parseMatch(t,n,this.world)),t[0].start=!0;let r=this.fullPointer;return this.forEach(((n,o)=>{let i=n.after(t,e);if(i.found){let t=i.terms();r[o][2]+=t.length,r[o][4]=null}})),this.update(r)},grow:function(t,e,n){return this.growRight(t,e,n).growLeft(t,e,n)}};const Yt=function(t,e){return[t[0],t[1],e[2]]},te=(t,e,n)=>{return"string"==typeof t||(r=t,"[object Array]"===Object.prototype.toString.call(r))?e.match(t,n):t||e.none();var r},ee=function(t,e){let[n,r,o]=t;return e.document[n]&&e.document[n][r]&&(t[3]=t[3]||e.document[n][r].id,e.document[n][o-1]&&(t[4]=t[4]||e.document[n][o-1].id)),t},ne={splitOn:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=te(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),i.push(t.before),i.push(t.match),i.push(t.after)})),i=i.filter((t=>t)),i=i.map((t=>ee(t,this))),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=te(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),i.push(t.before),t.match&&t.after?i.push(Yt(t.match,t.after)):(i.push(t.match),i.push(t.after))})),i=i.filter((t=>t)),i=i.map((t=>ee(t,this))),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=te(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),t.before&&t.match?i.push(Yt(t.before,t.match)):(i.push(t.before),i.push(t.match)),i.push(t.after)})),i=i.filter((t=>t)),i=i.map((t=>ee(t,this))),this.update(i)}};ne.split=ne.splitAfter;var re=ne;const oe=Object.assign({},Jt,Xt,re);oe.lookBehind=oe.before,oe.lookBefore=oe.before,oe.lookAhead=oe.after,oe.lookAfter=oe.after,oe.notIf=oe.ifNo;var ie=function(t){Object.assign(t.prototype,oe)};const se=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,le=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,ae=/ /g,ce=t=>/^[![^]*(<[^<]*>)?\//.test(t)&&/\/[?\]+*$~]*$/.test(t),ue=function(t){return t=(t=t.map((t=>t.trim()))).filter((t=>t))};var he=function(t){let e=t.split(se),n=[];e.forEach((t=>{ce(t)?n.push(t):n=n.concat(t.split(le))})),n=ue(n);let r=[];return n.forEach((t=>{(t=>/^[![^]*(<[^<]*>)?\(/.test(t)&&/\)[?\]+*$~]*$/.test(t))(t)||ce(t)?r.push(t):r=r.concat(t.split(ae))})),r=ue(r),r};const fe=/\{([0-9]+)?(, *[0-9]*)?\}/,pe=/&&/,de=new RegExp(/^<\s*(\S+)\s*>/),me=t=>t.charAt(0).toUpperCase()+t.substring(1),ge=t=>t.charAt(t.length-1),we=t=>t.charAt(0),ye=t=>t.substring(1),be=t=>t.substring(0,t.length-1),ve=function(t){return t=ye(t),t=be(t)},xe=function(t,e){let n={};for(let r=0;r<2;r+=1){if("$"===ge(t)&&(n.end=!0,t=be(t)),"^"===we(t)&&(n.start=!0,t=ye(t)),("["===we(t)||"]"===ge(t))&&(n.group=null,"["===we(t)&&(n.groupStart=!0),"]"===ge(t)&&(n.groupEnd=!0),t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===we(t))){const e=de.exec(t);e.length>=2&&(n.group=e[1],t=t.replace(e[0],""))}if("+"===ge(t)&&(n.greedy=!0,t=be(t)),"*"!==t&&"*"===ge(t)&&"\\*"!==t&&(n.greedy=!0,t=be(t)),"?"===ge(t)&&(n.optional=!0,t=be(t)),"!"===we(t)&&(n.negative=!0,t=ye(t)),"~"===we(t)&&"~"===ge(t)&&t.length>2&&(t=ve(t),n.fuzzy=!0,n.min=e.fuzzy||.85,!1===/\(/.test(t)))return n.word=t,n;if("("===we(t)&&")"===ge(t)){pe.test(t)?(n.choices=t.split(pe),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=ye(n.choices[0]);let r=n.choices.length-1;n.choices[r]=be(n.choices[r]),n.choices=n.choices.map((t=>t.trim())),n.choices=n.choices.filter((t=>t)),n.choices=n.choices.map((t=>t.split(/ /g).map((t=>xe(t,e))))),t=""}if("/"===we(t)&&"/"===ge(t))return t=ve(t),e.caseSensitive&&(n.use="text"),n.regex=new RegExp(t),n;if("{"===we(t)&&"}"===ge(t)){if(t=ve(t),n.root=t,/\//.test(t)){let t=n.root.split(/\//);n.root=t[0],n.pos=t[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==t[2]&&(n.sense=t[2])}return n}if("<"===we(t)&&">"===ge(t))return t=ve(t),n.chunk=me(t),n.greedy=!0,n;if("%"===we(t)&&"%"===ge(t))return t=ve(t),n.switch=t,n}return!0===fe.test(t)&&(t=t.replace(fe,((t,e,r)=>(void 0===r?(n.min=Number(e),n.max=Number(e)):(r=r.replace(/, */,""),void 0===e?(n.min=0,n.max=Number(r)):(n.min=Number(e),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===we(t)?(n.tag=ye(t),n.tag=me(n.tag),n):"@"===we(t)?(n.method=ye(t),n):"."===t?(n.anything=!0,n):"*"===t?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(t&&(t=(t=t.replace("\\*","*")).replace("\\.","."),e.caseSensitive?n.use="text":t=t.toLowerCase(),n.word=t),n)};var je=xe;const Ee=/[a-z0-9][-–—][a-z]/i;var Oe=function(t,e){let n=e.model.one.prefixes;for(let e=t.length-1;e>=0;e-=1){let r=t[e];if(r.word&&Ee.test(r.word)){let o=r.word.split(/[-–—]/g);if(n.hasOwnProperty(o[0]))continue;o=o.filter((t=>t)).reverse(),t.splice(e,1),o.forEach((n=>{let o=Object.assign({},r);o.word=n,t.splice(e,0,o)}))}}return t};const ke=function(t,e){let{all:n}=e.methods.two.transform.verb||{},r=t.root;return n?n(r,e.model):[]},Pe=function(t,e){let{all:n}=e.methods.two.transform.noun||{};return n?n(t.root,e.model):[t.root]},_e=function(t,e){let{all:n}=e.methods.two.transform.adjective||{};return n?n(t.root,e.model):[t.root]};var Se=function(t,e){return t=t.map((t=>{if(t.root)if(e.methods.two&&e.methods.two.transform){let n=[];t.pos?"Verb"===t.pos?n=n.concat(ke(t,e)):"Noun"===t.pos?n=n.concat(Pe(t,e)):"Adjective"===t.pos&&(n=n.concat(_e(t,e))):(n=n.concat(ke(t,e)),n=n.concat(Pe(t,e)),n=n.concat(_e(t,e))),n=n.filter((t=>t)),n.length>0&&(t.operator="or",t.fastOr=new Set(n))}else t.machine=t.root,delete t.id,delete t.root;return t}))},Ae=function(t){return t=function(t){let e=0,n=null;for(let r=0;r(t.fuzzy&&t.choices&&t.choices.forEach((e=>{1===e.length&&e[0].word&&(e[0].fuzzy=!0,e[0].min=t.min)})),t)))}(t=t.map((t=>{if(void 0!==t.choices){if("or"!==t.operator)return t;if(!0===t.fuzzy)return t;!0===t.choices.every((t=>{if(1!==t.length)return!1;let e=t[0];return!0!==e.fuzzy&&!e.start&&!e.end&&void 0!==e.word&&!0!==e.negative&&!0!==e.optional&&!0!==e.method}))&&(t.fastOr=new Set,t.choices.forEach((e=>{t.fastOr.add(e[0].word)})),delete t.choices)}return t}))),t},Te=function(t,e,n){if(null==t||""===t)return[];e=e||{},"number"==typeof t&&(t=String(t));let r=he(t);return r=r.map((t=>je(t,e))),r=Oe(r,n),r=Se(r,n),r=Ae(r),r};const $e=function(t,e){for(let n of e)if(t.has(n))return!0;return!1};var Ce=function(t,e){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(o||100))return o||100;let i,s,l,a,c,u,h=[];for(let t=0;t4)return n;l=e[i-1],a=s===l?0:1,c=h[o-1][i]+1,(u=h[o][i-1]+1)1&&i>1&&s===e[i-2]&&t[o-2]===l&&(u=h[o-2][i-2]+a)-1!==t.post.indexOf(e),Ge=(t,e)=>-1!==t.pre.indexOf(e),De={hasQuote:t=>Ne.test(t.pre)||Le.test(t.post),hasComma:t=>Fe(t,","),hasPeriod:t=>!0===Fe(t,".")&&!1===Fe(t,"..."),hasExclamation:t=>Fe(t,"!"),hasQuestionMark:t=>Fe(t,"?")||Fe(t,"¿"),hasEllipses:t=>Fe(t,"..")||Fe(t,"…")||Ge(t,"..")||Ge(t,"…"),hasSemicolon:t=>Fe(t,";"),hasColon:t=>Fe(t,":"),hasSlash:t=>/\//.test(t.text),hasHyphen:t=>Ve.test(t.post)||Ve.test(t.pre),hasDash:t=>qe.test(t.post)||qe.test(t.pre),hasContraction:t=>Boolean(t.implicit),isAcronym:t=>t.tags.has("Acronym"),isKnown:t=>t.tags.size>0,isTitleCase:t=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(t.text),isUpperCase:t=>/^\p{Lu}+$/u.test(t.text)};De.hasQuotation=De.hasQuote;var Be=De;let Ue=function(){};Ue=function(t,e,n,r){let o=function(t,e,n,r){if(!0===e.anything)return!0;if(!0===e.start&&0!==n)return!1;if(!0===e.end&&n!==r-1)return!1;if(void 0!==e.id&&e.id===t.id)return!0;if(void 0!==e.word){if(e.use)return e.word===t[e.use];if(null!==t.machine&&t.machine===e.word)return!0;if(void 0!==t.alias&&t.alias.hasOwnProperty(e.word))return!0;if(!0===e.fuzzy){if(e.word===t.root)return!0;if(ze(e.word,t.normal)>=e.min)return!0}return!(!t.alias||!t.alias.some((t=>t===e.word)))||e.word===t.text||e.word===t.normal}if(void 0!==e.tag)return!0===t.tags.has(e.tag);if(void 0!==e.method)return"function"==typeof Be[e.method]&&!0===Be[e.method](t);if(void 0!==e.pre)return t.pre&&t.pre.includes(e.pre);if(void 0!==e.post)return t.post&&t.post.includes(e.post);if(void 0!==e.regex){let n=t.normal;return e.use&&(n=t[e.use]),e.regex.test(n)}if(void 0!==e.chunk)return t.chunk===e.chunk;if(void 0!==e.switch)return t.switch===e.switch;if(void 0!==e.machine)return t.normal===e.machine||t.machine===e.machine||t.root===e.machine;if(void 0!==e.sense)return t.sense===e.sense;if(void 0!==e.fastOr){if(e.pos&&!t.tags.has(e.pos))return null;let n=t.root||t.implicit||t.machine||t.normal;return e.fastOr.has(n)||e.fastOr.has(t.text)}return void 0!==e.choices&&("and"===e.operator?e.choices.every((e=>Ue(t,e,n,r))):e.choices.some((e=>Ue(t,e,n,r))))}(t,e,n,r);return!0===e.negative?!o:o};var Me=Ue;const We=function(t,e){if(!0===t.end&&!0===t.greedy&&e.start_i+e.tn.max?(t.t=t.t+n.max,!0):(!0===t.hasGroup&&(Ie(t,t.t).length=r-t.t),t.t=r,!0)};const Qe=function(t,e=0){let n=t.regs[t.r],r=!1;for(let i=0;i{let o=0,i=t.t+r+e+o;if(void 0===t.terms[i])return!1;let s=Me(t.terms[i],n,i+t.start_i,t.phrase_length);if(!0===s&&!0===n.greedy)for(let e=1;e{let r=n.every(((e,n)=>{let r=t.t+n;return void 0!==t.terms[r]&&Me(t.terms[r],e,r,t.phrase_length)}));return!0===r&&n.length>e&&(e=n.length),r}))&&e}(t);if(r){if(!0===n.negative)return null;if(!0===t.hasGroup&&(Ie(t,t.t).length+=r),!0===n.end){let e=t.phrase_length-1;if(t.t+t.start_i!==e)return null}return t.t+=r,!0}return!!n.optional||null},Ke=function(t,e,n){let r=0;for(let o=t.t;or||(t.t+=r,0))},Je=function(t){const{regs:e}=t;let n=e[t.r],r=Object.assign({},n);if(r.negative=!1,Me(t.terms[t.t],r,t.start_i+t.t,t.phrase_length))return!1;if(n.optional){let n=e[t.r+1];n&&(Me(t.terms[t.t],n,t.start_i+t.t,t.phrase_length)?t.r+=1:n.optional&&e[t.r+2]&&Me(t.terms[t.t],e[t.r+2],t.start_i+t.t,t.phrase_length)&&(t.r+=2))}return n.greedy?Ke(t,r,e[t.r+1]):(t.t+=1,!0)},Xe=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=Me(r,e[t.r+1],t.start_i+t.t,t.phrase_length);if(n.negative||o){let n=t.terms[t.t+1];n&&Me(n,e[t.r+1],t.start_i+t.t,t.phrase_length)||(t.r+=1)}},Ye=function(t){const{regs:e,phrase_length:n}=t;let r=e[t.r];return t.t=function(t,e){let n=Object.assign({},t.regs[t.r],{start:!1,end:!1}),r=t.t;for(;t.tt.t?null:!0!==r.end||t.start_i+t.t===n||null},tn=function(t){let e=t.terms[t.t],n=t.regs[t.r];if(e.implicit&&t.terms[t.t+1]){if(!t.terms[t.t+1].implicit)return;n.word===e.normal&&(t.t+=1),"hasContraction"===n.method&&(t.t+=1)}},en=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=t.t;return!!(n.optional&&e[t.r+1]&&n.negative)||(n.optional&&e[t.r+1]&&Xe(t),r.implicit&&t.terms[t.t+1]&&tn(t),t.t+=1,!0===n.end&&t.t!==t.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Ye(t)?(!0===t.hasGroup&&function(t,e){let n=t.regs[t.r];const r=Ie(t,e);t.t>1&&n.greedy?r.length+=t.t-e:r.length++}(t,o),!0):null)},nn=function(t,e,n,r){if(0===t.length||0===e.length)return null;let o={t:0,terms:t,r:0,regs:e,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;o.r!t.optional)))break;return null}if(!0!==t.anything||!0!==t.greedy){if(void 0===t.choices||"or"!==t.operator){if(void 0===t.choices||"and"!==t.operator)if(!0!==t.anything){if(!0!==We(t,o)){if(t.negative){if(!Je(o))return null}else if(!0!==Me(o.terms[o.t],t,o.start_i+o.t,o.phrase_length)){if(!0!==t.optional)return null}else if(!en(o))return null}else if(!en(o))return null}else{if(t.negative&&t.anything)return null;if(!en(o))return null}else if(!Ze(o))return null}else if(!He(o))return null}else if(!Re(o))return null}let i=[null,n,o.t+n];if(i[1]===i[2])return null;let s={};return Object.keys(o.groups).forEach((t=>{let e=o.groups[t],r=n+e.start;s[t]=[null,r,r+e.length]})),{pointer:i,groups:s}},rn=function(t,e){let n=[],r={};return 0===t.length||("number"==typeof e&&(e=String(e)),e?t.forEach((t=>{t.groups[e]&&n.push(t.groups[e])})):t.forEach((t=>{n.push(t.pointer),Object.keys(t.groups).forEach((e=>{r[e]=r[e]||[],r[e].push(t.groups[e])}))}))),{ptrs:n,byGroup:r}},on=function(t,e,n){return t=t.filter((t=>{let[r,o,i]=t.pointer,s=n[r].slice(o,i);for(let t=0;t{t.groups[n][0]=e})),t},ln=function(t,e,n){let r=nn(t,e,0,t.length);return r?(r=sn(r,n),r):null};var an=function(t,e,n){n=n||[];let{regs:r,group:o,justOne:i}=e,s=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const l=r.filter((t=>!0!==t.optional&&!0!==t.negative)).length;t:for(let e=0;et&&(t=Math.abs(n-1))}}else{let t=ln(o,r,e);t&&s.push(t)}}return!0===r[r.length-1].end&&(s=s.filter((e=>{let n=e.pointer[0];return t[n].length===e.pointer[2]}))),e.notIf&&(s=on(s,e.notIf,t)),s=rn(s,o),s.ptrs.forEach((e=>{let[n,r,o]=e;e[3]=t[n][r].id,e[4]=t[n][o-1].id})),s},cn={api:ie,methods:{one:{termMethods:Be,parseMatch:Te,match:an}},lib:{parseMatch:function(t,e){const n=this.world();let r=n.methods.one.killUnicode;return r&&(t=r(t,n)),n.methods.one.parseMatch(t,e,n)}}};const un=/^\../,hn=/^#./,fn=function(t,e){let n={},r={};return Object.keys(e).forEach((o=>{let i=e[o],s=function(t){let e="",n="";return t=t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),un.test(t)?e=``),e+=">",{start:e,end:n}}(o);"string"==typeof i&&(i=t.match(i)),i.docs.forEach((t=>{if(t.every((t=>t.implicit)))return;let e=t[0].id;n[e]=n[e]||[],n[e].push(s.start);let o=t[t.length-1].id;r[o]=r[o]||[],r[o].push(s.end)}))})),{starts:n,ends:r}};var pn={html:function(t){let{starts:e,ends:n}=fn(this,t),r="";return this.docs.forEach((t=>{for(let o=0;o{let n=t.pre||"",o=t.post||"";"some"===e.punctuation&&(n=n.replace(mn,""),wn.test(o)&&(o=" "),o=o.replace(gn,""),o=o.replace(/\?!+/,"?"),o=o.replace(/!+/,"!"),o=o.replace(/\?+/,"?"),o=o.replace(/\.{2,}/,""),t.tags.has("Abbreviation")&&(o=o.replace(/\./,""))),"some"===e.whitespace&&(n=n.replace(/\s/,""),o=o.replace(/\s+/," ")),e.keepPunct||(n=n.replace(mn,""),o="-"===o?" ":o.replace(dn,""));let i=t[e.form||"text"]||t.normal||"";"implicit"===e.form&&(i=t.implicit||t.text),"root"===e.form&&t.implicit&&(i=t.root||t.implicit||t.normal),"machine"!==e.form&&"implicit"!==e.form&&"root"!==e.form||!t.implicit||o&&yn.test(o)||(o+=" "),r+=n+i+o})),!1===n&&(r=r.trim()),!0===e.lowerCase&&(r=r.toLowerCase()),r},vn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};vn.clean=vn.normal,vn.reduced=vn.root;var xn=vn;let jn=[],En=0;for(;En<64;)jn[En]=0|4294967296*Math.sin(++En%Math.PI);function On(t){let e,n,r,o=[e=1732584193,n=4023233417,~e,~n],i=[],s=decodeURI(encodeURI(t))+"",l=s.length;for(t=--l/4+2|15,i[--t]=8*l;~l;)i[l>>2]|=s.charCodeAt(l)<<8*l--;for(En=s=0;En>4]+jn[s]+~~i[En|15&[s,5*s+1,3*s+5,7*s][l]])<<(l=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*l+s++%4])|r>>>-l),e,n])e=0|l[1],n=l[2];for(s=4;s;)o[--s]+=l[s]}for(t="";s<32;)t+=(o[s>>3]>>4*(1^s++)&15).toString(16);return t}const kn={text:!0,terms:!0};let Pn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const _n=function(t,e){return Object.assign({},t,e)},Sn={text:t=>bn(t,{keepPunct:!0},!1),normal:t=>bn(t,_n(xn.normal,{keepPunct:!0}),!1),implicit:t=>bn(t,_n(xn.implicit,{keepPunct:!0}),!1),machine:t=>bn(t,Pn,!1),root:t=>bn(t,_n(Pn,{form:"root"}),!1),hash:t=>On(bn(t,{keepPunct:!0},!1)),offset:t=>{let e=Sn.text(t).length;return{index:t[0].offset.index,start:t[0].offset.start,length:e}},terms:t=>t.map((t=>{let e=Object.assign({},t);return e.tags=Array.from(t.tags),e})),confidence:(t,e,n)=>e.eq(n).confidence(),syllables:(t,e,n)=>e.eq(n).syllables(),sentence:(t,e,n)=>e.eq(n).fullSentence().text(),dirty:t=>t.some((t=>!0===t.dirty))};Sn.sentences=Sn.sentence,Sn.clean=Sn.normal,Sn.reduced=Sn.root;const An={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},kn,r)).offset&&n.compute("offset"),n.docs.map(((t,e)=>{let o={};return Object.keys(r).forEach((i=>{r[i]&&Sn[i]&&(o[i]=Sn[i](t,n,e))})),o})));var n,r;return"number"==typeof t?e[t]:e}};An.data=An.json;var Tn=An,$n=function(t){console.log("%c -=-=- ","background-color:#6699cc;"),t.forEach((t=>{console.groupCollapsed(t.text());let e=t.docs[0].map((t=>{let e=t.text||"-";return t.implicit&&(e="["+t.implicit+"]"),{text:e,tags:"["+Array.from(t.tags).join(", ")+"]"}}));console.table(e,["text","tags"]),console.groupEnd()}))};const Cn="[0m";var zn={green:t=>"[32m"+t+Cn,red:t=>"[31m"+t+Cn,blue:t=>"[34m"+t+Cn,magenta:t=>"[35m"+t+Cn,cyan:t=>"[36m"+t+Cn,yellow:t=>"[33m"+t+Cn,black:t=>"[30m"+t+Cn,dim:t=>"[2m"+t+Cn,i:t=>"[3m"+t+Cn},Nn=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(zn.blue("\n ──────")),e.forEach((e=>{console.log(zn.blue("\n ┌─────────")),e.forEach((e=>{let r=[...e.tags||[]],o=e.text||"-";e.sense&&(o=`{${e.normal}/${e.sense}}`),e.implicit&&(o="["+e.implicit+"]"),o=zn.yellow(o);let i="'"+o+"'";if(e.reference){let n=t.update([e.reference]).text("normal");i+=` - ${zn.dim(zn.i("["+n+"]"))}`}i=i.padEnd(18);let s=zn.blue(" │ ")+zn.i(i)+" - "+function(t,e){return e.one.tagSet&&(t=t.map((t=>{if(!e.one.tagSet.hasOwnProperty(t))return t;const n=e.one.tagSet[t].color||"blue";return zn[n](t)}))),t.join(", ")}(r,n);console.log(s)}))}))},Ln=function(t){let{docs:e}=t;console.log(""),e.forEach((t=>{let e=[];t.forEach((t=>{"Noun"===t.chunk?e.push(zn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(zn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(zn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(zn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)})),console.log(e.join(" "),"\n")}))},Vn=function(t){if(!t.found)return;let e={};t.fullPointer.forEach((t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)})),Object.keys(e).forEach((n=>{let r=t.update([[Number(n)]]).text();t.update(e[n]).json({offset:!0}).forEach(((t,e)=>{r=function(t,e,n){let r=((t,e,n)=>{let r=9*n,o=e.start+r,i=o+e.length;return[t.substring(0,o),t.substring(o,i),t.substring(i,t.length)]})(t,e,n);return`${r[0]}${zn.blue(r[1])}${r[2]}`}(r,t.offset,e)})),console.log(r)}))},qn=function(t={}){let e=this;if("string"==typeof t){let e={};e[t]=!0,t=e}return"undefined"!=typeof window&&window.document?($n(e),e):(!1!==t.tags&&(Nn(e),console.log("\n")),!0===t.chunks&&(Ln(e),console.log("\n")),!0===t.highlight&&(Vn(e),console.log("\n")),e)};const Fn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var Gn=function(t,e){let n=function(t,e){let n={};return Object.keys(e).forEach((r=>{t.match(r).fullPointer.forEach((t=>{n[t[3]]={fn:e[r],end:t[2]}}))})),n}(t,e),r="";return t.docs.forEach(((e,o)=>{for(let i=0;it.reduce(((t,e)=>t+e.pre+e.text+e.post),"").trim()));return t.filter((t=>t))}if("freq"===t||"frequency"===t||"topk"===t)return function(t){let e={};t.forEach((t=>{e[t]=e[t]||0,e[t]+=1}));let n=Object.keys(e).map((t=>({normal:t,count:e[t]})));return n.sort(((t,e)=>t.count>e.count?-1:0))}(this.json({normal:!0}).map((t=>t.normal)));if("terms"===t){let t=[];return this.docs.forEach((e=>{let n=e.terms.map((t=>t.text));n=n.filter((t=>t)),t=t.concat(n)})),t}return"tags"===t?this.docs.map((t=>t.reduce(((t,e)=>(t[e.implicit||e.normal]=Array.from(e.tags),t)),{}))):"debug"===t?this.debug():this.text()},wrap:function(t){return Gn(this,t)}};var Bn=Dn,Un={text:function(t){let e={};var n;if(t&&"string"==typeof t&&xn.hasOwnProperty(t)?e=Object.assign({},xn[t]):t&&(n=t,"[object Object]"===Object.prototype.toString.call(n))&&(e=Object.assign({},t)),void 0===e.keepSpace&&this.pointer&&(e.keepSpace=!1),void 0===e.keepPunct&&this.pointer){let t=this.pointer[0];t&&t[1]?e.keepPunct=!1:e.keepPunct=!0}return void 0===e.keepPunct&&(e.keepPunct=!0),void 0===e.keepSpace&&(e.keepSpace=!0),function(t,e){let n="";if(!t||!t[0]||!t[0][0])return n;for(let r=0;ro||o<=n&&i>n},Qn=function(t){let e={};return t.forEach((t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)})),e};var Hn=function(t,e){let n=Qn(e),r=[];return t.forEach((t=>{let[e]=t,o=n[e]||[];if(o=o.filter((e=>function(t,e){return t[1]<=e[1]&&e[2]<=t[2]}(t,e))),0===o.length)return void r.push({passthrough:t});o=o.sort(((t,e)=>t[1]-e[1]));let i=t;o.forEach(((t,e)=>{let n=function(t,e){let[n,r]=t,o=e[1],i=e[2],s={};if(ri&&(s.after=[n,i,t[2]]),s}(i,t);o[e+1]?(r.push({before:n.before,match:n.match}),n.after&&(i=n.after)):r.push(n)}))})),r},Zn=function(t,e){let n=[];return t.forEach(((r,o)=>{if(!r)return;let[i,s,l,a,c]=r,u=e[i]||[];if(void 0===s&&(s=0),void 0===l&&(l=u.length),!a||u[s]&&u[s].id===a)u=u.slice(s,l);else{let n=function(t,e,n){for(let r=0;r<20;r+=1){if(e[n-r]){let o=e[n-r].findIndex((e=>e.id===t));if(-1!==o)return[n-r,o]}if(e[n+r]){let o=e[n+r].findIndex((e=>e.id===t));if(-1!==o)return[n+r,o]}}return null}(a,e,i);if(null!==n){let r=l-s;u=e[n[0]].slice(n[1],n[1]+r);let i=u[0]?u[0].id:null;t[o]=[n[0],n[1],n[1]+r,i]}}0!==u.length&&s!==l&&(c&&u[u.length-1].id!==c&&(u=function(t,e){let[n,r,,,o]=t,i=e[n],s=i.findIndex((t=>t.id===o));return-1===s?(t[2]=e[n].length,t[4]=i.length?i[i.length-1].id:null):t[2]=s,e[n].slice(r,t[2]+1)}(r,e)),n.push(u))})),n=n.filter((t=>t.length>0)),n},Kn={one:{termList:function(t){let e=[];for(let n=0;n{let[e]=t;if(1===r[e].length)return void o.push(t);let n=r[e].filter((e=>Rn(t,e)));n.push(t);let i=function(t){let e=t[0][1],n=t[0][2];return t.forEach((t=>{t[1]n&&(n=t[2])})),[t[0][0],e,n]}(n);o.push(i)})),o=function(t){let e={};for(let n=0;n{t.passthrough&&n.push(t.passthrough),t.before&&n.push(t.before),t.after&&n.push(t.after)})),n},Yn=function(t,e){let n=Qn(e),r=[];return t.forEach((t=>{let e=n[t[0]]||[];e=e.filter((e=>Rn(t,e))),0!==e.length&&e.forEach((e=>{let n=function(t,e){let n=t[1]e[2]?e[2]:t[2];return n{return"string"==typeof t||(n=t,"[object Array]"===Object.prototype.toString.call(n))?e.match(t):t||e.none();var n},er=function(t,e){return t.map((t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t}))},nr={union:function(t){t=tr(t,this);let e=Jn(this.fullPointer,t.fullPointer);return e=er(e,this.document),this.toView(e)}};nr.and=nr.union,nr.intersection=function(t){t=tr(t,this);let e=Yn(this.fullPointer,t.fullPointer);return e=er(e,this.document),this.toView(e)},nr.not=function(t){t=tr(t,this);let e=Xn(this.fullPointer,t.fullPointer);return e=er(e,this.document),this.toView(e)},nr.difference=nr.not,nr.complement=function(){let t=this.all(),e=Xn(t.fullPointer,this.fullPointer);return e=er(e,this.document),this.toView(e)},nr.settle=function(){let t=this.fullPointer;return t.forEach((e=>{t=Jn(t,[e])})),t=er(t,this.document),this.update(t)};var rr=function(t){Object.assign(t.prototype,nr)},or={methods:Kn,api:rr},ir=function(t){t.prototype.sweep=function(t,e={}){const{world:n,docs:r}=this,{methods:o}=n;let i=o.one.bulkMatch(r,t,this.methods,e);!1!==e.tagger&&o.one.bulkTagger(i,r,this.world),i=i.map((t=>{let e=t.pointer,n=r[e[0]][e[1]],o=e[2]-e[1];return n.index&&(t.pointer=[n.index[0],n.index[1],e[1]+o]),t}));let s=i.map((t=>t.pointer));return i=i.map((t=>(t.view=this.update([t.pointer]),delete t.regs,delete t.needs,delete t.pointer,delete t._expanded,t))),{view:this.update(s),found:i}}};const sr=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var lr=function(t,e){const n=e.methods.one.parseMatch;return t.forEach((t=>{t.regs=n(t.match,{},e),"string"==typeof t.ifNo&&(t.ifNo=[t.ifNo]),t.notIf&&(t.notIf=n(t.notIf,{},e)),t.needs=function(t){let e=[];return t.forEach((t=>{e.push(sr(t)),"and"===t.operator&&t.choices&&t.choices.forEach((t=>{t.forEach((t=>{e.push(sr(t))}))}))})),e.filter((t=>t))}(t.regs);let{wants:r,count:o}=function(t){let e=[],n=0;return t.forEach((t=>{"or"!==t.operator||t.optional||t.negative||(t.fastOr&&Array.from(t.fastOr).forEach((t=>{e.push(t)})),t.choices&&t.choices.forEach((t=>{t.forEach((t=>{let n=sr(t);n&&e.push(n)}))})),n+=1)})),{wants:e,count:n}}(t.regs);t.wants=r,t.minWant=o,t.minWords=t.regs.filter((t=>!t.optional)).length})),t},ar=function(t,e){t=lr(t,e);let n={};t.forEach((t=>{t.needs.forEach((e=>{n[e]=n[e]||[],n[e].push(t)})),t.wants.forEach((e=>{n[e]=n[e]||[],n[e].push(t)}))})),Object.keys(n).forEach((t=>{let e={};n[t]=n[t].filter((t=>!e[t.match]&&(e[t.match]=!0,!0)))}));let r=t.filter((t=>0===t.needs.length&&0===t.wants.length));return{hooks:n,always:r}},cr=function(t,e){return t.map(((n,r)=>{let o=[];Object.keys(e).forEach((n=>{t[r].has(n)&&(o=o.concat(e[n]))}));let i={};return o=o.filter((t=>!i[t.match]&&(i[t.match]=!0,!0))),o}))},ur=function(t,e){return t.map(((t,n)=>{let r=e[n];return t=(t=(t=t.filter((t=>t.needs.every((t=>r.has(t)))))).filter((t=>void 0===t.ifNo||!0!==t.ifNo.some((t=>r.has(t)))))).filter((t=>0===t.wants.length||t.wants.filter((t=>r.has(t))).length>=t.minWant))}))},hr=function(t,e,n,r,o){let i=[];for(let n=0;n0&&(a.ptrs.forEach((t=>{t[0]=n;let e=Object.assign({},l,{pointer:t});void 0!==l.unTag&&(e.unTag=l.unTag),i.push(e)})),!0===o.matchOne))return[i[0]]}return i},fr=function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=cr(o,e.hooks);return i=ur(i,o),e.always.length>0&&(i=i.map((t=>t.concat(e.always)))),i=function(t,e){return t.map(((t,n)=>{let r=e[n].length;return t=t.filter((t=>r>=t.minWords)),t}))}(i,t),hr(i,t,o,n,r)},pr=function(t,e,n){let r=n.one.tagSet;if(!r.hasOwnProperty(e))return!0;let o=r[e].not||[];for(let e=0;e{if(!t.tag&&!t.chunk&&!t.unTag)return;let o=t.reason||t.match,c=i([t.pointer],e)[0];if(!0===t.safe){if(!1===pr(c,t.tag,r))return;if("-"===c[c.length-1].post)return}if(void 0!==t.tag&&(s(c,t.tag,n,t.safe,`[post] '${o}'`),"Noun"===t.tag&&a)){let e=c[c.length-1];a(e.text)?s([e],"Plural",n,t.safe,"quick-plural"):s([e],"Singular",n,t.safe,"quick-singular")}void 0!==t.unTag&&l(c,t.unTag,n,t.safe,o),t.chunk&&c.forEach((e=>e.chunk=t.chunk))})))},mr={lib:{buildNet:function(t){let e=this.methods().one.buildNet(t,this.world());return e.isNet=!0,e}},api:ir,methods:{one:{buildNet:ar,bulkMatch:fr,bulkTagger:dr}}};const gr=/ /,wr=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},yr=function(t,e,n,r){if(!0===t.tags.has(e))return null;if("."===e)return null;let o=n[e];if(o){if(o.not&&o.not.length>0)for(let e=0;e0)for(let e=0;e{let r=t.map((t=>t.text||"["+t.implicit+"]")).join(" ");var o;"string"!=typeof e&&e.length>2&&(e=e.slice(0,2).join(", #")+" +"),e="string"!=typeof e?e.join(", #"):e,console.log(` ${(o=r,"[33m[3m"+o+"[0m").padEnd(24)} [32m→[0m #${e.padEnd(22)} ${(t=>"[3m"+t+"[0m")(n)}`)})(t,e,o),1!=(l=e,"[object Array]"===Object.prototype.toString.call(l)))if("string"==typeof e)if(e=e.trim(),gr.test(e))!function(t,e,n,r){let o=e.split(gr);t.forEach(((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),yr(t,i,n,r))}))}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nbr(t,e,n,r)))};var vr=br,xr=function(t,e,n){e=e.trim().replace(/^#/,"");for(let r=0;r0)for(let t=0;t/),n=[];e.forEach((t=>{n=n.concat(function(t){if(!(t=t.trim()))return null;if(/^\[/.test(t)&&/\]$/.test(t)){let e=(t=(t=t.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return e=e.map((t=>t.trim())).filter((t=>t)),e=e.map((t=>jr({id:t}))),e}return[jr({id:t})]}(t))})),n=n.filter((t=>t));let r=n[0];for(let t=1;t{let n=[],r=[t];for(;r.length>0;){let t=r.pop();n.push(t),t.children&&t.children.forEach((n=>{e&&e(t,n),r.push(n)}))}return n},Pr=t=>"[object Array]"===Object.prototype.toString.call(t),_r=t=>(t=t||"").trim(),Sr=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach((t=>{if(!t.trim()||Er.test(t))return;let e=(t=>{const e=/^( {2}|\t)/;let n=0;for(;e.test(t);)t=t.replace(e,""),n+=1;return n})(t);n.push({indent:e,node:Or(t)})}));let r=function(t){let e={children:[]};return t.forEach(((n,r)=>{0===n.indent?e.children=e.children.concat(n.node):t[r-1]&&function(t,e){let n=t[e].indent;for(;e>=0;e-=1)if(t[e].indent{e[t.id]=t}));let n=jr({});return t.forEach((t=>{if((t=jr(t)).parent)if(e.hasOwnProperty(t.parent)){let n=e[t.parent];delete t.parent,n.children.push(t)}else console.warn(`[Grad] - missing node '${t.parent}'`);else n.children.push(t)})),n}(t):(kr(e=t).forEach(jr),e);var e},Ar=function(t,e){let n="-> ";e&&(n=(t=>"[2m"+t+"[0m")("→ "));let r="";return kr(t).forEach(((t,o)=>{let i=t.id||"";if(e&&(i=(t=>"[31m"+t+"[0m")(i)),0===o&&!t.id)return;let s=t._cache.parents.length;r+=" ".repeat(s)+n+i+"\n"})),r},Tr=function(t){let e=kr(t);e.forEach((t=>{delete(t=Object.assign({},t)).children}));let n=e[0];return n&&!n.id&&0===Object.keys(n.props).length&&e.shift(),e},$r={text:Ar,txt:Ar,array:Tr,flat:Tr},Cr=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Ar(t,!0)),null):$r.hasOwnProperty(e)?$r[e](t):t},zr=t=>{kr(t,((t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))}))},Nr=/\//;class g{constructor(t={}){Object.defineProperty(this,"json",{enumerable:!1,value:t,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(t={}){let e=this.json.props||{};return"string"==typeof t&&(e[t]=!0),this.json.props=Object.assign(e,t),this}get(t){if(t=_r(t),!Nr.test(t)){let e=this.json.children.find((e=>e.id===t));return new g(e)}let e=((t,e)=>{let n=(t=>"string"!=typeof t?t:(t=t.replace(/^\//,"")).split(/\//))(e=e||"");for(let e=0;et.id===n[e]));if(!r)return null;t=r}return t})(this.json,t)||jr({});return new g(e)}add(t,e={}){if(Pr(t))return t.forEach((t=>this.add(_r(t),e))),this;t=_r(t);let n=jr({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=_r(t),this.json.children=this.json.children.filter((e=>e.id!==t)),this}nodes(){return kr(this.json).map((t=>(delete(t=Object.assign({},t)).children,t)))}cache(){return(t=>{let e=kr(t,((t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],t._cache.children=t._cache.children||[],e._cache.parents=t._cache.parents.concat([t.id]))})),n={};e.forEach((t=>{t.id&&(n[t.id]=t)})),e.forEach((t=>{t._cache.parents.forEach((e=>{n.hasOwnProperty(e)&&n[e]._cache.children.push(t.id)}))})),t._cache.children=Object.keys(n)})(this.json),this}list(){return kr(this.json)}fillDown(){var t;return t=this.json,kr(t,((t,e)=>{e.props=((t,e)=>(Object.keys(e).forEach((n=>{if(e[n]instanceof Set){let r=t[n]||new Set;t[n]=new Set([...r,...e[n]])}else if((t=>t&&"object"==typeof t&&!Array.isArray(t))(e[n])){let r=t[n]||{};t[n]=Object.assign({},e[n],r)}else Pr(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])})),t))(e.props,t.props)})),this}depth(){zr(this.json);let t=kr(this.json),e=t.length>1?1:0;return t.forEach((t=>{if(0===t._cache.parents.length)return;let n=t._cache.parents.length+1;n>e&&(e=n)})),e}out(t){return zr(this.json),Cr(this.json,t)}debug(){return zr(this.json),Cr(this.json,"debug"),this}}const Lr=function(t){let e=Sr(t);return new g(e)};Lr.prototype.plugin=function(t){t(this)};var Vr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Hyphenated:"cyan",Adverb:"cyan"};const qr=function(t){if(Vr.hasOwnProperty(t.id))return Vr[t.id];if(Vr.hasOwnProperty(t.is))return Vr[t.is];let e=t._cache.parents.find((t=>Vr[t]));return Vr[e]};var Fr=function(t){const e={};return t.forEach((t=>{let{not:n,also:r,is:o,novel:i}=t.props,s=t._cache.parents;r&&(s=s.concat(r)),e[t.id]={is:o,not:n,novel:i,also:r,parents:s,children:t._cache.children,color:qr(t)}})),Object.keys(e).forEach((t=>{let n=new Set(e[t].not);e[t].not.forEach((t=>{e[t]&&e[t].children.forEach((t=>n.add(t)))})),e[t].not=Array.from(n)})),e};const Gr=function(t){return t?"string"==typeof t?[t]:t:[]};var Dr=function(t,e){return t=function(t,e){return Object.keys(t).forEach((n=>{t[n].isA&&(t[n].is=t[n].isA),t[n].notA&&(t[n].not=t[n].notA),t[n].is&&"string"==typeof t[n].is&&(e.hasOwnProperty(t[n].is)||t.hasOwnProperty(t[n].is)||(t[t[n].is]={})),t[n].not&&"string"==typeof t[n].not&&!t.hasOwnProperty(t[n].not)&&(e.hasOwnProperty(t[n].not)||t.hasOwnProperty(t[n].not)||(t[t[n].not]={}))})),t}(t,e),Object.keys(t).forEach((e=>{t[e].children=Gr(t[e].children),t[e].not=Gr(t[e].not)})),Object.keys(t).forEach((e=>{(t[e].not||[]).forEach((n=>{t[n]&&t[n].not&&t[n].not.push(e)}))})),t},Br=function(t,e){Object.keys(e).length>0&&(t=function(t){return Object.keys(t).forEach((e=>{t[e]=Object.assign({},t[e]),t[e].novel=!0})),t}(t)),t=Dr(t,e);const n=function(t){const e=Object.keys(t).map((e=>{let n=t[e];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:e,parent:n.is,props:r,children:[]}}));return Lr(e).cache().fillDown().out("array")}(Object.assign({},e,t));return Fr(n)},Ur={one:{setTag:vr,unTag:xr,addTags:Br}};const Mr=function(t){return"[object Array]"===Object.prototype.toString.call(t)},Wr={tag:function(t,e="",n){if(!this.found||!t)return this;let r=this.termList();if(0===r.length)return this;const{methods:o,verbose:i,world:s}=this;return!0===i&&console.log(" + ",t,e||""),Mr(t)?t.forEach((t=>o.one.setTag(r,t,s,n,e))):o.one.setTag(r,t,s,n,e),this.uncache(),this},tagSafe:function(t,e=""){return this.tag(t,e,!0)},unTag:function(t,e){if(!this.found||!t)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:o,model:i}=this;!0===o&&console.log(" - ",t,e||"");let s=i.one.tagSet;return Mr(t)?t.forEach((t=>r.one.unTag(n,t,s))):r.one.unTag(n,t,s),this.uncache(),this},canBe:function(t){t=t.replace(/^#/,"");let e=this.model.one.tagSet;if(!e.hasOwnProperty(t))return this;let n=e[t].not||[],r=[];this.document.forEach(((t,e)=>{t.forEach(((t,o)=>{n.find((e=>t.tags.has(e)))&&r.push([e,o,o+1])}))}));let o=this.update(r);return this.difference(o)}};var Ir=Wr,Rr=function(t){Object.assign(t.prototype,Ir)},Qr={addTags:function(t){const{model:e,methods:n}=this.world(),r=e.one.tagSet;let o=(0,n.one.addTags)(t,r);return e.one.tagSet=o,this}};const Hr=new Set(["Auxiliary","Possessive"]);var Zr=function(t){const{document:e,world:n}=t,r=n.model.one.tagSet;e.forEach((t=>{t.forEach((t=>{let e=Array.from(t.tags);t.tagRank=function(t,e){return t=t.sort(((t,n)=>{if(Hr.has(t)||!e.hasOwnProperty(n))return 1;if(Hr.has(n)||!e.hasOwnProperty(t))return-1;let r=e[t].children||[],o=r.length;return r=e[n].children||[],o-r.length})),t}(e,r)}))}))},Kr={model:{one:{tagSet:{}}},compute:{tagRank:Zr},methods:Ur,api:Rr,lib:Qr};const Jr=/([.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s)/g,Xr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s$/,Yr=/((?:\r?\n|\r)+)/;var to=function(t){let e=[],n=t.split(Yr);for(let t=0;t0&&(o.push(i),t[e]="")}return o};const io={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},so=RegExp("("+Object.keys(io).join("|")+")","g"),lo=RegExp("("+Object.values(io).join("|")+")","g"),ao=function(t){if(!t)return!1;let e=t.match(lo);return null!==e&&1===e.length};var co=function(t){let e=[];for(let n=0;n(t[e]=!0,t)),{});var Po=function(t,e){let n=[],r=[];if("number"==typeof(t=t||"")&&(t=String(t)),function(t){return"[object Array]"===Object.prototype.toString.call(t)}(t))return t;const o=t.split(Oo);for(let t=0;t0?(n[n.length-1]+=i,n.push(e)):n.push(i+e),i=""):i+=e}return i&&(0===n.length&&(n[0]=""),n[n.length-1]+=i),n=xo(n),n=bo(n),n=n.filter((t=>t)),n};const _o=/\p{Letter}/u,So=/[\p{Number}\p{Currency_Symbol}]/u,Ao=/^[a-z]\.([a-z]\.)+/i,To=/[sn]['’]$/;var $o=function(t,e){let{prePunctuation:n,postPunctuation:r,emoticons:o}=e.one,i=t,s="",l="",a=Array.from(t);if(o.hasOwnProperty(t.trim()))return{str:t.trim(),pre:s,post:" "};let c=a.length;for(let t=0;t(l=t||"",""))),t=i,s=""),{str:t,pre:s,post:l}},Co=(t,e)=>{let{str:n,pre:r,post:o}=$o(t,e);return{text:n,pre:r,post:o,tags:new Set}},zo=function(t,e){const n=e.model.one.unicode||{};let r=(t=t||"").split("");return r.forEach(((t,e)=>{n[t]&&(r[e]=n[t])})),r.join("")},No=function(t){let e=t=(t=(t=t||"").toLowerCase()).trim();return t=(t=(t=t.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(t)&&(t=(t=(t=t.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(t=(t=t.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(t=e),t=t.replace(/([0-9]),([0-9])/g,"$1$2")};const Lo=/([A-Z]\.)+[A-Z]?,?$/,Vo=/^[A-Z]\.,?$/,qo=/[A-Z]{2,}('s|,)?$/,Fo=/([a-z]\.)+[a-z]\.?$/;var Go=function(t){return function(t){return!0===Lo.test(t)||!0===Fo.test(t)||!0===Vo.test(t)||!0===qo.test(t)}(t)&&(t=t.replace(/\./g,"")),t},Do=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=No(r),r=n(r,e),r=Go(r),t.normal=r},Bo=function(t,e){const{methods:n,model:r}=e,{splitSentences:o,splitTerms:i,splitWhitespace:s}=n.one.tokenize;return t=o(t=t||"",e).map((t=>{let n=i(t,r);return n=n.map((t=>s(t,r))),n.forEach((t=>{Do(t,e)})),n})),t};const Uo=/[ .][A-Z]\.? *$/i,Mo=/(?:\u2026|\.{2,}) *$/,Wo=/\p{L}/u,Io=/^[A-Z]\. $/;var Ro={one:{killUnicode:zo,tokenize:{splitSentences:go,isSentence:function(t,e){if(!1===Wo.test(t))return!1;if(!0===Uo.test(t))return!1;if(3===t.length&&Io.test(t))return!1;if(!0===Mo.test(t))return!1;let n=t.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==e.hasOwnProperty(r)},splitTerms:Po,splitWhitespace:Co,fromString:Bo}}},Qo={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Ho={},Zo={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((t=>{t[0].forEach((e=>{Ho[e]=!0,Zo[e]="Abbreviation",void 0!==t[1]&&(Zo[e]=[Zo[e],t[1]])}))}));var Ko=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out","ex"].reduce(((t,e)=>(t[e]=!0,t)),{});let Jo={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Xo={};Object.keys(Jo).forEach((function(t){Jo[t].split("").forEach((function(e){Xo[e]=t}))}));const Yo=/\//,ti=/[a-z]\.[a-z]/i,ei=/[0-9]/;var ni=function(t,e){let n=t.normal||t.text||t.machine;const r=e.model.one.aliases;if(r.hasOwnProperty(n)&&(t.alias=t.alias||[],t.alias.push(r[n])),Yo.test(n)&&!ti.test(n)&&!ei.test(n)){let e=n.split(Yo);e.length<=2&&e.forEach((e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))}))}return t};const ri=/^\p{Letter}+-\p{Letter}+$/u;var oi=function(t){let e=t.implicit||t.normal||t.text;e=e.replace(/['’]s$/,""),e=e.replace(/s['’]$/,"s"),e=e.replace(/([aeiou][ktrp])in'$/,"$1ing"),ri.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)},ii=function(t){let e=t.docs,n={};for(let t=0;tci(t,ni),machine:t=>ci(t,oi),normal:t=>ci(t,Do),freq:ii,offset:si,index:li,wordCount:ai},methods:Ro,model:{one:{aliases:Qo,abbreviations:Ho,prefixes:Ko,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},prePunctuation:{"#":!0,"@":!0,_:!0,"°":!0,"":!0,"":!0,"":!0,"\ufeff":!0},postPunctuation:{"%":!0,_:!0,"°":!0,"":!0,"":!0,"":!0,"\ufeff":!0},lexicon:Zo,unicode:Xo,emoticons:{"<3":!0,"3":!0,"<\\3":!0,":^P":!0,":^p":!0,":^O":!0,":^3":!0}}},hooks:["alias","machine","index","id"]},hi={typeahead:function(t){const e=t.model.one.typeahead,n=t.docs;if(0===n.length||0===Object.keys(e).length)return;let r=n[n.length-1]||[],o=r[r.length-1];if(!o.post&&e.hasOwnProperty(o.normal)){let n=e[o.normal];o.implicit=n,o.machine=n,o.typeahead=!0,t.compute.preTagger&&t.last().unTag("*").compute(["lexicon","preTagger"])}}};const fi=function(){const t=this.docs;if(0===t.length)return this;let e=t[t.length-1]||[],n=e[e.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var pi=function(t){t.prototype.autoFill=fi},di=function(t,e,n){let r={},o=[],i=n.prefixes||{};return t.forEach((t=>{let s=(t=t.toLowerCase().trim()).length;e.max&&s>e.max&&(s=e.max);for(let l=e.min;l{delete r[t]})),r};const mi={safe:!0,min:3};var gi={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},mi,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=di(t,e,this.world());return Object.keys(o).forEach((t=>{n.one.typeahead.hasOwnProperty(t)?delete n.one.typeahead[t]:n.one.typeahead[t]=o[t]})),this}},wi={model:{one:{typeahead:{}}},api:pi,lib:gi,compute:hi,hooks:["typeahead"]};return w.extend(tt),w.extend(In),w.extend(cn),w.extend(or),w.extend(Kr),w.plugin(St),w.extend(ui),w.plugin(x),w.extend(Wt),w.extend(wi),w.extend(Vt),w.extend(mr),w},"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).nlp=e();
+var t,e;t=this,e=function(){var t={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const e={compute:function(t){const{world:e}=this,n=e.compute;return"string"==typeof t&&n.hasOwnProperty(t)?n[t](this):(t=>"[object Array]"===Object.prototype.toString.call(t))(t)?t.forEach((r=>{e.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",t)})):"function"==typeof t?t(this):console.warn("no compute:",t),this}};var n=e,r={forEach:function(t){return this.fullPointer.forEach(((e,n)=>{let r=this.update([e]);t(r,n)})),this},map:function(t,e){let n=this.fullPointer.map(((e,n)=>{let r=this.update([e]),o=t(r,n);return void 0===o?this.none():o}));if(0===n.length)return e||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((t=>{r=r.concat(t.fullPointer)})),this.toView(r)},filter:function(t){let e=this.fullPointer;return e=e.filter(((e,n)=>{let r=this.update([e]);return t(r,n)})),this.update(e)},find:function(t){let e=this.fullPointer.find(((e,n)=>{let r=this.update([e]);return t(r,n)}));return this.update([e])},some:function(t){return this.fullPointer.some(((e,n)=>{let r=this.update([e]);return t(r,n)}))},random:function(t=1){let e=this.fullPointer,n=Math.floor(Math.random()*e.length);return n+t>this.length&&(n=this.length-t,n=n<0?0:n),e=e.slice(n,n+t),this.update(e)}};const o={termList:function(){return this.methods.one.termList(this.docs)},terms:function(t){let e=this.match(".");return"number"==typeof t?e.eq(t):e},groups:function(t){if(t||0===t)return this.update(this._groups[t]||[]);let e={};return Object.keys(this._groups).forEach((t=>{e[t]=this.update(this._groups[t])})),e},eq:function(t){let e=this.pointer;return e||(e=this.docs.map(((t,e)=>[e]))),e[t]?this.update([e[t]]):this.none()},first:function(){return this.eq(0)},last:function(){let t=this.fullPointer.length-1;return this.eq(t)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(t,e){let n=this.pointer||this.docs.map(((t,e)=>[e]));return n=n.slice(t,e),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let t=this.fullPointer.map((t=>[t[0]]));return this.update(t).toView()},none:function(){return this.update([])},isDoc:function(t){if(!t||!t.isView)return!1;let e=this.fullPointer,n=t.fullPointer;return!e.length!==n.length&&e.every(((t,e)=>!!n[e]&&t[0]===n[e][0]&&t[1]===n[e][1]&&t[2]===n[e][2]))},wordCount:function(){return this.docs.reduce(((t,e)=>(t+=e.filter((t=>""!==t.text)).length,t)),0)},isFull:function(){let t=this.pointer;if(!t)return!0;let e=this.document;for(let n=0;ni)return!1}return!0},getNth:function(t){return"number"==typeof t?this.eq(t):"string"==typeof t?this.if(t):this}};o.group=o.groups,o.fullSentence=o.fullSentences,o.sentence=o.fullSentences,o.lastTerm=o.lastTerms,o.firstTerm=o.firstTerms;var i=o;const s=Object.assign({},i,n,r);s.get=s.eq;var l=s;class View{constructor(e,n,r={}){[["document",e],["world",t],["_groups",r],["_cache",null],["viewType","View"]].forEach((t=>{Object.defineProperty(this,t[0],{value:t[1],writable:!0})})),this.ptrs=n}get docs(){let e=this.document;return this.ptrs&&(e=t.methods.one.getDoc(this.ptrs,this.document)),e}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:t,ptrs:e,document:n}=this,r=e||t.map(((t,e)=>[e]));return r.map((t=>{let[e,r,o,i,s]=t;return r=r||0,o=o||(n[e]||[]).length,n[e]&&n[e][r]&&(i=i||n[e][r].id,n[e][o-1]&&(s=s||n[e][o-1].id)),[e,r,o,i,s]}))}update(t){let e=new View(this.document,t);if(this._cache&&t&&t.length>0){let n=[];t.forEach(((t,e)=>{let[r,o,i]=t;(1===t.length||0===o&&this.document[r].length===i)&&(n[e]=this._cache[r])})),n.length>0&&(e._cache=n)}return e.world=this.world,e}toView(t){return new View(this.document,t||this.pointer)}fromText(t){const{methods:e}=this;let n=e.one.tokenize.fromString(t,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let t=this.document.slice(0);t=t.map((t=>t.map((t=>((t=Object.assign({},t)).tags=new Set(t.tags),t)))));let e=this.update(this.pointer);return e.document=t,e._cache=this._cache,e}}Object.assign(View.prototype,l);var a=View;const c=function(t){return t&&"object"==typeof t&&!Array.isArray(t)};function u(t,e){if(c(e))for(const n in e)c(e[n])?(t[n]||Object.assign(t,{[n]:{}}),u(t[n],e[n])):Object.assign(t,{[n]:e[n]});return t}var h=function(t,e,n,r){const{methods:o,model:i,compute:s,hooks:l}=e;t.methods&&function(t,e){for(const n in e)t[n]=t[n]||{},Object.assign(t[n],e[n])}(o,t.methods),t.model&&u(i,t.model),t.irregulars&&function(t,e){let n=t.two.models||{};Object.keys(e).forEach((t=>{e[t].pastTense&&(n.toPast&&(n.toPast.ex[t]=e[t].pastTense),n.fromPast&&(n.fromPast.ex[e[t].pastTense]=t)),e[t].presentTense&&(n.toPresent&&(n.toPresent.ex[t]=e[t].presentTense),n.fromPresent&&(n.fromPresent.ex[e[t].presentTense]=t)),e[t].gerund&&(n.toGerund&&(n.toGerund.ex[t]=e[t].gerund),n.fromGerund&&(n.fromGerund.ex[e[t].gerund]=t)),e[t].comparative&&(n.toComparative&&(n.toComparative.ex[t]=e[t].comparative),n.fromComparative&&(n.fromComparative.ex[e[t].comparative]=t)),e[t].superlative&&(n.toSuperlative&&(n.toSuperlative.ex[t]=e[t].superlative),n.fromSuperlative&&(n.fromSuperlative.ex[e[t].superlative]=t))}))}(i,t.irregulars),t.compute&&Object.assign(s,t.compute),l&&(e.hooks=l.concat(t.hooks||[])),t.api&&t.api(n),t.lib&&Object.keys(t.lib).forEach((e=>r[e]=t.lib[e])),t.tags&&r.addTags(t.tags),t.words&&r.addWords(t.words),t.mutate&&t.mutate(e)};const f=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var p=function(t,e,n){const{methods:r}=n;let o=new e([]);if(o.world=n,"number"==typeof t&&(t=String(t)),!t)return o;if("string"==typeof t)return new e(r.one.tokenize.fromString(t,n));if(i=t,"[object Object]"===Object.prototype.toString.call(i)&&t.isView)return new e(t.document,t.ptrs);var i;if(f(t)){if(f(t[0])){let n=t.map((t=>t.map((t=>({text:t,normal:t,pre:"",post:" ",tags:new Set})))));return new e(n)}let n=function(t){return t.map((t=>t.terms.map((t=>(f(t.tags)&&(t.tags=new Set(t.tags)),t)))))}(t);return new e(n)}return o};let d=Object.assign({},t);const m=function(t,e){e&&m.addWords(e);let n=p(t,a,d);return t&&n.compute(d.hooks),n};Object.defineProperty(m,"_world",{value:d,writable:!0}),m.tokenize=function(t,e){const{compute:n}=this._world;e&&m.addWords(e);let r=p(t,a,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},m.plugin=function(t){return h(t,this._world,a,this),this},m.extend=m.plugin,m.world=function(){return this._world},m.model=function(){return this._world.model},m.methods=function(){return this._world.methods},m.hooks=function(){return this._world.hooks},m.verbose=function(t){const e="undefined"!=typeof process&&process.env?process.env:self.env||{};return e.DEBUG_TAGS="tagger"===t||!0===t||"",e.DEBUG_MATCH="match"===t||!0===t||"",e.DEBUG_CHUNKS="chunker"===t||!0===t||"",this},m.version="14.9.0";var w=m,b=function(t){let e=t.map((t=>{let e=new Set;return t.forEach((t=>{""!==t.normal&&e.add(t.normal),t.switch&&e.add(`%${t.switch}%`),t.implicit&&e.add(t.implicit),t.machine&&e.add(t.machine),t.root&&e.add(t.root),t.alias&&t.alias.forEach((t=>e.add(t)));let n=Array.from(t.tags);for(let t=0;t/^\p{Lu}[\p{Ll}'’]/u.test(t)||/^\p{Lu}$/u.test(t),O=(t,e,n)=>{if(n.forEach((t=>t.dirty=!0)),t){let r=[e,0].concat(n);Array.prototype.splice.apply(t,r)}return t},E=function(t){let e=t[t.length-1];!e||/ $/.test(e.post)||/[-–—]/.test(e.post)||(e.post+=" ")},k=(t,e,n)=>{const r=/[-.?!,;:)–—'"]/g;let o=t[e-1];if(!o)return;let i=o.post;if(r.test(i)){let t=i.match(r).join(""),e=n[n.length-1];e.post=t+e.post,o.post=o.post.replace(r,"")}},P=function(t,e,n,r){let[o,i,s]=e;0===i||s===r[o].length?E(n):(E(n),E([t[e[1]]])),function(t,e,n){let r=t[e];if(0!==e||!j(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(t=>t.toUpperCase()));let o=t[e];o.tags.has("ProperNoun")||o.tags.has("Acronym")||j(o.text)&&o.text.length>1&&(o.text=o.text.replace(/^\p{Lu}/u,(t=>t.toLowerCase())))}(t,i,n),O(t,i,n)};let _=0;const S=t=>(t=t.length<3?"0"+t:t).length<3?"0"+t:t;var A=function(t){let[e,n]=t.index||[0,0];_+=1,_=_>46655?0:_,e=e>46655?0:e,n=n>1294?0:n;let r=S(_.toString(36));r+=S(e.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,r+=o,r+=parseInt(36*Math.random(),10).toString(36),t.normal+"|"+r.toUpperCase()};const T=function(t){t.has("@hasContraction")&&"function"==typeof t.contractions&&t.grow("@hasContraction").contractions().expand()},$=t=>"[object Array]"===Object.prototype.toString.call(t),C=function(t,e,n){const{document:r,world:o}=e;e.uncache();let i=e.fullPointer,s=e.fullPointer;e.forEach(((l,a)=>{let c=l.fullPointer[0],[u]=c,h=r[u],f=function(t,e){const{methods:n}=e;return"string"==typeof t?n.one.tokenize.fromString(t,e)[0]:"object"==typeof t&&t.isView?t.clone().docs[0]||[]:$(t)?$(t[0])?t[0]:t:[]}(t,o);0!==f.length&&(f=function(t){return t.map((t=>(t.id=A(t),t)))}(f),n?(T(e.update([c]).firstTerm()),P(h,c,f,r)):(T(e.update([c]).lastTerm()),function(t,e,n,r){let[o,,i]=e,s=(r[o]||[]).length;i{let n=e(t);t.replaceWith(n)})),t}(r,t);let o=r.docs[0],i=e.possessives&&o[o.length-1].tags.has("Possessive");t=function(t,e){if("string"!=typeof t)return t;let n=e.groups();return t=t.replace(L,(t=>{let e=t.replace(/\$/,"");return n.hasOwnProperty(e)?n[e].text():t})),t}(t,r);let s=this.update(n);n=n.map((t=>t.slice(0,3)));let l=(s.docs[0]||[]).map((t=>Array.from(t.tags)));if("string"==typeof t&&(t=this.fromText(t).compute("id")),r.insertAfter(t),s.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(s),i){let t=r.docs[0],e=t[t.length-1];e.tags.has("Possessive")||(e.text+="'s",e.normal+="'s",e.tags.add("Possessive"))}let a=r.toView(n).compute(["index","lexicon"]);return a.world.compute.preTagger&&a.compute("preTagger"),e.tags&&a.terms().forEach(((t,e)=>{t.tagSafe(l[e])})),e.case&&a.docs[0]&&a.docs[0][0]&&0===a.docs[0][0].index[1]&&(a.docs[0][0].text=a.docs[0][0].text.replace(/\w\S*/g,(t=>t.charAt(0).toUpperCase()+t.substring(1).toLowerCase()))),a},replace:function(t,e,n){if(t&&!e)return this.replaceWith(t,n);let r=this.match(t);return r.found?(this.soften(),r.replaceWith(e,n)):this}};var q=V,F=function(t,e){e.forEach((e=>{let[n,r,o]=e,i=o-r;t[n]&&(o===t[n].length&&o>1&&function(t,e){let n=t.length-1,r=t[n],o=t[n-e];o&&r&&(o.post+=r.post,o.post=o.post.replace(/ +([.?!,;:])/,"$1"),o.post=o.post.replace(/[,;:]+([.?!])/,"$1"))}(t[n],i),t[n].splice(r,i))}));for(let e=t.length-1;e>=0;e-=1)if(0===t[e].length&&(t.splice(e,1),e===t.length&&t[e-1])){let n=t[e-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return t};const G={remove:function(t){const{indexN:e}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;t&&(n=this,r=this.match(t));let o=!n.ptrs;r.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction").contractions().expand();let i=n.fullPointer,s=r.fullPointer.reverse(),l=F(this.document,s);return i=function(t,e){return t=t.map((t=>{let[n]=t;return e[n]?(e[n].forEach((e=>{let n=e[2]-e[1];t[1]<=e[1]&&t[2]>=e[2]&&(t[2]-=n)})),t):t})),t.forEach(((e,n)=>{if(0===e[1]&&0==e[2])for(let e=n+1;et[2]-t[1]>0))).map((t=>(t[3]=null,t[4]=null,t)))}(i,e(s)),n.ptrs=i,n.document=l,n.compute("index"),o&&(n.ptrs=void 0),t?n.toView(i):(this.ptrs=[],n.none())}};G.delete=G.remove;var D=G;const B={pre:function(t,e){return void 0===t&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===e?r.pre+=t:r.pre=t})),this)},post:function(t,e){if(void 0===t){let t=this.docs[this.docs.length-1];return t[t.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===e?r.post+=t:r.post=t})),this},trim:function(){if(!this.found)return this;let t=this.docs,e=t[0][0];e.pre=e.pre.trimStart();let n=t[t.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((t=>{t.forEach(((e,n)=>{0!==n&&(e.pre=""),t[n+1]&&(e.post="-")}))})),this},dehyphenate:function(){const t=/[-–—]/;return this.docs.forEach((e=>{e.forEach((e=>{t.test(e.post)&&(e.post=" ")}))})),this},toQuotations:function(t,e){return t=t||'"',e=e||'"',this.docs.forEach((n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post})),this},toParentheses:function(t,e){return t=t||"(",e=e||")",this.docs.forEach((n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post})),this}};B.deHyphenate=B.dehyphenate,B.toQuotation=B.toQuotations;var U=B,M={alpha:(t,e)=>t.normale.normal?1:0,length:(t,e)=>{let n=t.normal.trim().length,r=e.normal.trim().length;return nr?-1:0},wordCount:(t,e)=>t.wordse.words?-1:0,sequential:(t,e)=>t[0]e[0]?-1:t[1]>e[1]?1:-1,byFreq:function(t){let e={};return t.forEach((t=>{e[t.normal]=e[t.normal]||0,e[t.normal]+=1})),t.sort(((t,n)=>{let r=e[t.normal],o=e[n.normal];return ro?-1:0})),t}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),I=new Set(["freq","frequency","topk","repeats"]),R=new Set(["alpha","alphabetical"]);var Q={unique:function(){let t=new Set;return this.filter((e=>{let n=e.text("machine");return!t.has(n)&&(t.add(n),!0)}))},reverse:function(){let t=this.pointer||this.docs.map(((t,e)=>[e]));return t=[].concat(t),t=t.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(t)},sort:function(t){let{docs:e,pointer:n}=this;if(this.uncache(),"function"==typeof t)return function(t,e){let n=t.fullPointer;return n=n.sort(((n,r)=>(n=t.update([n]),r=t.update([r]),e(n,r)))),t.ptrs=n,t}(this,t);t=t||"alpha";let r=n||e.map(((t,e)=>[e])),o=e.map(((t,e)=>({index:e,words:t.length,normal:t.map((t=>t.machine||t.normal||"")).join(" "),pointer:r[e]})));return W.has(t)&&(t="sequential"),R.has(t)&&(t="alpha"),I.has(t)?(o=M.byFreq(o),this.update(o.map((t=>t.pointer)))):"function"==typeof M[t]?(o=o.sort(M[t]),this.update(o.map((t=>t.pointer)))):this}};const H=function(t,e){if(t.length>0){let e=t[t.length-1],n=e[e.length-1];!1===/ /.test(n.post)&&(n.post+=" ")}return t=t.concat(e)};var Z={concat:function(t){if("string"==typeof t){let e=this.fromText(t);if(this.found&&this.ptrs){let t=this.fullPointer,n=t[t.length-1][0];this.document.splice(n,0,...e.document)}else this.document=this.document.concat(e.document);return this.all().compute("index")}if("object"==typeof t&&t.isView)return function(t,e){if(t.document===e.document){let n=t.fullPointer.concat(e.fullPointer);return t.toView(n).compute("index")}return e.fullPointer.forEach((e=>{e[0]+=t.document.length})),t.document=H(t.document,e.docs),t.all()}(this,t);if(e=t,"[object Array]"===Object.prototype.toString.call(e)){let e=H(this.document,t);return this.document=e,this.all()}var e;return this}},K={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let t=this.ptrs;return!t||t.length<1||(t=t.map((t=>t.slice(0,3))),this.ptrs=t),this}};const J=Object.assign({},{toLowerCase:function(){return this.termList().forEach((t=>{t.text=t.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((t=>{t.text=t.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((t=>{t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(t=>t.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((t=>{t.forEach(((e,n)=>{0!==n&&(e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(t=>t.toUpperCase()))),n!==t.length-1&&(e.post="")}))})),this}},N,q,D,U,Q,Z,K);var X=function(t){Object.assign(t.prototype,J)};const Y={id:function(t){let e=t.docs;for(let t=0;t(t.implicit=t.text,t.machine=t.text,t.pre="",t.post="",t.text="",t.normal="",t.index=[r,o+e],t))),n[0]&&(n[0].pre=t[r][o].pre,n[n.length-1].post=t[r][o].post,n[0].text=t[r][o].text,n[0].normal=t[r][o].normal),t[r].splice(o,1,...n))};const ot=/'/,it=new Set(["what","how","when","where","why"]),st=new Set(["be","go","start","think","need"]),lt=new Set(["been","gone"]);var at=function(t,e){let n=t[e].normal.split(ot)[0];if(it.has(n))return[n,"did"];if(t[e+1]){if(lt.has(t[e+1].normal))return[n,"had"];if(st.has(t[e+1].normal))return[n,"would"]}return null},ct=function(t,e){return"ain't"===t[e].normal||"aint"===t[e].normal?null:[t[e].normal.replace(/n't/,""),"not"]};const ut=/'/;var ht=(t,e)=>["je",t[e].normal.split(ut)[1]],ft=(t,e)=>{let n=t[e].normal.split(ut)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},pt=(t,e)=>{let n=t[e].normal.split(ut)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const dt=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,mt=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,gt=/^[0-9]{3}-[0-9]{4}$/;var wt=function(t,e){let n=t[e],r=n.text.match(dt);return null!==r?!0===n.tags.has("PhoneNumber")||gt.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(mt),null!==r?[r[1],"to",r[4]]:null)};const bt=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/;var yt=function(t,e,n){const r=n.model.one.numberSuffixes||{};let o=t[e].text.match(bt);if(null!==o){let t=o[2].toLowerCase().trim();return r.hasOwnProperty(t)?null:[o[1],t]}return null};const vt=/'/,xt=/^[0-9][^-–—]*[-–—].*?[0-9]/,jt=function(t,e,n,r){let o=e.update();o.document=[t];let i=n+r;n>0&&(n-=1),t[i]&&(i+=1),o.ptrs=[[0,n,i]]},Ot={t:(t,e)=>ct(t,e),d:(t,e)=>at(t,e)},Et={j:(t,e)=>ht(t,e),l:(t,e)=>ft(t,e),d:(t,e)=>pt(t,e)},kt=function(t,e,n,r){for(let o=0;o{let{world:e,document:n}=t;const{model:r,methods:o}=e;let i=r.one.contractions||[];n.forEach(((r,s)=>{for(let l=r.length-1;l>=0;l-=1){let a=null,c=null;!0===vt.test(r[l].normal)&&([a,c]=r[l].normal.split(vt));let u=kt(i,r[l],a,c);!u&&Ot.hasOwnProperty(c)&&(u=Ot[c](r,l,e)),!u&&Et.hasOwnProperty(a)&&(u=Et[a](r,l)),"there"===a&&"s"===c&&(u=_t(r,l)),u?(u=Pt(u,t),rt(n,[s,l],u),jt(n[s],t,l,u.length)):xt.test(r[l].normal)?(u=wt(r,l),u&&(u=Pt(u,t),rt(n,[s,l],u),o.one.setTag(u,"NumberRange",e),u[2]&&u[2].tags.has("Time")&&o.one.setTag([u[0]],"Time",e,null,"time-range"),jt(n[s],t,l,u.length))):(u=yt(r,l,e),u&&(u=Pt(u,t),rt(n,[s,l],u),o.one.setTag([u[1]],"Unit",e,null,"contraction-unit")))}}))},At={model:nt,compute:{contractions:St},hooks:["contractions"]},Tt=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,s=r.one._multiCache||{},l=r.one.lexicon||{};let a=t[e],c=a.machine||a.normal;return void 0!==t[e+1]&&!0===s[c]?function(t,e,n,r,o){let i=e+4>t.length?t.length-e:4,s=t[e].machine||t[e].normal;for(let l=1;ls.hasOwnProperty(t)));if(t)return i([l],s[t],n,!1,"1-lexicon-alias"),!0}if(!0===$t.test(a)){let t=a.replace($t,"");if(s.hasOwnProperty(t)&&t.length>3&&Ct.has(s[t]))return i([l],s[t],n,!1,"1-lexicon-prefix"),!0}return null},Nt={lexicon:function(t){const e=t.world;t.docs.forEach((t=>{for(let n=0;n{let o=t[r],i=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);i.length>1&&(n[i[0]]=!0),e[r]=e[r]||o})),delete e[""],delete e.null,delete e[" "],{lex:e,_multi:n}},Vt={addWords:function(t){const e=this.world(),{methods:n,model:r}=e;if(t)if(Object.keys(t).forEach((e=>{"string"==typeof t[e]&&t[e].startsWith("#")&&(t[e]=t[e].replace(/^#/,""))})),n.two.expandLexicon){let{lex:o,_multi:i}=n.two.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else if(n.one.expandLexicon){let{lex:o,_multi:i}=n.one.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else Object.assign(r.one.lexicon,t)}},qt={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Lt}},compute:Nt,lib:Vt,hooks:["lexicon"]},Ft=function(t,e){let n=[{}],r=[null],o=[0],i=[],s=0;t.forEach((function(t){let o=0,i=function(t,e){const{methods:n,model:r}=e;let o=n.one.tokenize.splitTerms(t,r).map((t=>n.one.tokenize.splitWhitespace(t,r)));return o.map((t=>t.text.toLowerCase()))}(t,e);for(let t=0;t0&&!n[s].hasOwnProperty(a);)s=o[s];if(n.hasOwnProperty(s)){let t=n[s][a];o[c]=t,r[t]&&(r[c]=r[c]||[],r[c]=r[c].concat(r[t]))}else o[c]=0}}return{goNext:n,endAs:r,failTo:o}};const Gt=function(t,e,n){let r=0,o=[];for(let i=0;i0&&(void 0===e.goNext[r]||!e.goNext[r].hasOwnProperty(s));)r=e.failTo[r]||0;if(e.goNext[r].hasOwnProperty(s)&&(r=e.goNext[r][s],e.endAs[r])){let n=e.endAs[r];for(let e=0;e0&&(r=r.concat(a))}return t.update(r)};const Ut=(t,e)=>{for(let n=t.length-1;n>=0;n-=1)if(t[n]!==e)return t=t.slice(0,n+1),t;return t};var Mt=function(t){return t.goNext=t.goNext.map((t=>{if(0!==Object.keys(t).length)return t})),t.goNext=Ut(t.goNext,void 0),t.failTo=Ut(t.failTo,0),t.endAs=Ut(t.endAs,null),t};const Wt={buildTrie:function(t){const e=Ft(t,this.world());return Mt(e)}};Wt.compile=Wt.buildTrie;var It={api:function(t){t.prototype.lookup=function(t,e={}){if(!t)return this.none();"string"==typeof t&&(t=[t]);let n=(r=t,"[object Object]"===Object.prototype.toString.call(r)?t:Ft(t,this.world));var r;let o=Bt(this,n,e);return o=o.settle(),o}},lib:Wt};const Rt=function(t,e){return e?(t.forEach((t=>{let n=t[0];e[n]&&(t[0]=e[n][0],t[1]+=e[n][1],t[2]+=e[n][1])})),t):t},Qt=function(t,e){let{ptrs:n,byGroup:r}=t;return n=Rt(n,e),Object.keys(r).forEach((t=>{r[t]=Rt(r[t],e)})),{ptrs:n,byGroup:r}},Ht=t=>"[object Object]"===Object.prototype.toString.call(t),Zt=t=>t&&Ht(t)&&!0===t.isView,Kt=t=>t&&Ht(t)&&!0===t.isNet,Jt=function(t,e,n){const r=n.methods.one;return"number"==typeof t&&(t=String(t)),"string"==typeof t&&(t=r.killUnicode(t,n),t=r.parseMatch(t,e,n)),t};var Xt={matchOne:function(t,e,n){const r=this.methods.one;if(Zt(t))return this.intersection(t).eq(0);if(Kt(t))return this.sweep(t,{tagger:!1,matchOne:!0}).view;let o={regs:t=Jt(t,n,this.world),group:e,justOne:!0},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Qt(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},match:function(t,e,n){const r=this.methods.one;if(Zt(t))return this.intersection(t);if(Kt(t))return this.sweep(t,{tagger:!1}).view.settle();let o={regs:t=Jt(t,n,this.world),group:e},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Qt(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},has:function(t,e,n){const r=this.methods.one;if(Zt(t))return t.fullPointer.length>0;if(Kt(t))return this.sweep(t,{tagger:!1}).view.found;let o={regs:t=Jt(t,n,this.world),group:e,justOne:!0};return r.match(this.docs,o,this._cache).ptrs.length>0},if:function(t,e,n){const r=this.methods.one;if(Zt(t))return this.filter((e=>e.intersection(t).found));if(Kt(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.if(e)}let o={regs:t=Jt(t,n,this.world),group:e,justOne:!0},i=this.fullPointer,s=this._cache||[];i=i.filter(((t,e)=>{let n=this.update([t]);return r.match(n.docs,o,s[e]).ptrs.length>0}));let l=this.update(i);return this._cache&&(l._cache=i.map((t=>s[t[0]]))),l},ifNo:function(t,e,n){const{methods:r}=this,o=r.one;if(Zt(t))return this.filter((e=>!e.intersection(t).found));if(Kt(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.ifNo(e)}t=Jt(t,n,this.world);let i=this._cache||[],s=this.filter(((n,r)=>{let s={regs:t,group:e,justOne:!0};return 0===o.match(n.docs,s,i[r]).ptrs.length}));return this._cache&&(s._cache=s.ptrs.map((t=>i[t[0]]))),s}},Yt={before:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer);Object.keys(i).forEach((t=>{let e=i[t].sort(((t,e)=>t[1]>e[1]?1:-1))[0];e[1]>0&&o.push([e[0],0,e[1]])}));let s=this.toView(o);return t?s.match(t,e,n):s},after:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer),s=this.document;Object.keys(i).forEach((t=>{let e=i[t].sort(((t,e)=>t[1]>e[1]?-1:1))[0],[n,,r]=e;r{let i=n.before(t,e);if(i.found){let t=i.terms();r[o][1]-=t.length,r[o][3]=t.docs[0][0].id}})),this.update(r)},growRight:function(t,e,n){"string"==typeof t&&(t=this.world.methods.one.parseMatch(t,n,this.world)),t[0].start=!0;let r=this.fullPointer;return this.forEach(((n,o)=>{let i=n.after(t,e);if(i.found){let t=i.terms();r[o][2]+=t.length,r[o][4]=null}})),this.update(r)},grow:function(t,e,n){return this.growRight(t,e,n).growLeft(t,e,n)}};const te=function(t,e){return[t[0],t[1],e[2]]},ee=(t,e,n)=>{return"string"==typeof t||(r=t,"[object Array]"===Object.prototype.toString.call(r))?e.match(t,n):t||e.none();var r},ne=function(t,e){let[n,r,o]=t;return e.document[n]&&e.document[n][r]&&(t[3]=t[3]||e.document[n][r].id,e.document[n][o-1]&&(t[4]=t[4]||e.document[n][o-1].id)),t},re={splitOn:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=ee(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),i.push(t.before),i.push(t.match),i.push(t.after)})),i=i.filter((t=>t)),i=i.map((t=>ne(t,this))),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=ee(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),i.push(t.before),t.match&&t.after?i.push(te(t.match,t.after)):(i.push(t.match),i.push(t.after))})),i=i.filter((t=>t)),i=i.map((t=>ne(t,this))),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=ee(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),t.before&&t.match?i.push(te(t.before,t.match)):(i.push(t.before),i.push(t.match)),i.push(t.after)})),i=i.filter((t=>t)),i=i.map((t=>ne(t,this))),this.update(i)}};re.split=re.splitAfter;var oe=re;const ie=Object.assign({},Xt,Yt,oe);ie.lookBehind=ie.before,ie.lookBefore=ie.before,ie.lookAhead=ie.after,ie.lookAfter=ie.after,ie.notIf=ie.ifNo;var se=function(t){Object.assign(t.prototype,ie)};const le=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,ae=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,ce=/ /g,ue=t=>/^[![^]*(<[^<]*>)?\//.test(t)&&/\/[?\]+*$~]*$/.test(t),he=function(t){return t=(t=t.map((t=>t.trim()))).filter((t=>t))};var fe=function(t){let e=t.split(le),n=[];e.forEach((t=>{ue(t)?n.push(t):n=n.concat(t.split(ae))})),n=he(n);let r=[];return n.forEach((t=>{(t=>/^[![^]*(<[^<]*>)?\(/.test(t)&&/\)[?\]+*$~]*$/.test(t))(t)||ue(t)?r.push(t):r=r.concat(t.split(ce))})),r=he(r),r};const pe=/\{([0-9]+)?(, *[0-9]*)?\}/,de=/&&/,me=new RegExp(/^<\s*(\S+)\s*>/),ge=t=>t.charAt(0).toUpperCase()+t.substring(1),we=t=>t.charAt(t.length-1),be=t=>t.charAt(0),ye=t=>t.substring(1),ve=t=>t.substring(0,t.length-1),xe=function(t){return t=ye(t),t=ve(t)},je=function(t,e){let n={};for(let r=0;r<2;r+=1){if("$"===we(t)&&(n.end=!0,t=ve(t)),"^"===be(t)&&(n.start=!0,t=ye(t)),("["===be(t)||"]"===we(t))&&(n.group=null,"["===be(t)&&(n.groupStart=!0),"]"===we(t)&&(n.groupEnd=!0),t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===be(t))){const e=me.exec(t);e.length>=2&&(n.group=e[1],t=t.replace(e[0],""))}if("+"===we(t)&&(n.greedy=!0,t=ve(t)),"*"!==t&&"*"===we(t)&&"\\*"!==t&&(n.greedy=!0,t=ve(t)),"?"===we(t)&&(n.optional=!0,t=ve(t)),"!"===be(t)&&(n.negative=!0,t=ye(t)),"~"===be(t)&&"~"===we(t)&&t.length>2&&(t=xe(t),n.fuzzy=!0,n.min=e.fuzzy||.85,!1===/\(/.test(t)))return n.word=t,n;if("/"===be(t)&&"/"===we(t))return t=xe(t),e.caseSensitive&&(n.use="text"),n.regex=new RegExp(t),n;if(!0===pe.test(t)&&(t=t.replace(pe,((t,e,r)=>(void 0===r?(n.min=Number(e),n.max=Number(e)):(r=r.replace(/, */,""),void 0===e?(n.min=0,n.max=Number(r)):(n.min=Number(e),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"("===be(t)&&")"===we(t)){de.test(t)?(n.choices=t.split(de),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=ye(n.choices[0]);let r=n.choices.length-1;n.choices[r]=ve(n.choices[r]),n.choices=n.choices.map((t=>t.trim())),n.choices=n.choices.filter((t=>t)),n.choices=n.choices.map((t=>t.split(/ /g).map((t=>je(t,e))))),t=""}if("{"===be(t)&&"}"===we(t)){if(t=xe(t),n.root=t,/\//.test(t)){let t=n.root.split(/\//);n.root=t[0],n.pos=t[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==t[2]&&(n.sense=t[2])}return n}if("<"===be(t)&&">"===we(t))return t=xe(t),n.chunk=ge(t),n.greedy=!0,n;if("%"===be(t)&&"%"===we(t))return t=xe(t),n.switch=t,n}return"#"===be(t)?(n.tag=ye(t),n.tag=ge(n.tag),n):"@"===be(t)?(n.method=ye(t),n):"."===t?(n.anything=!0,n):"*"===t?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(t&&(t=(t=t.replace("\\*","*")).replace("\\.","."),e.caseSensitive?n.use="text":t=t.toLowerCase(),n.word=t),n)};var Oe=je;const Ee=/[a-z0-9][-–—][a-z]/i;var ke=function(t,e){let n=e.model.one.prefixes;for(let e=t.length-1;e>=0;e-=1){let r=t[e];if(r.word&&Ee.test(r.word)){let o=r.word.split(/[-–—]/g);if(n.hasOwnProperty(o[0]))continue;o=o.filter((t=>t)).reverse(),t.splice(e,1),o.forEach((n=>{let o=Object.assign({},r);o.word=n,t.splice(e,0,o)}))}}return t};const Pe=function(t,e){let{all:n}=e.methods.two.transform.verb||{},r=t.root;return n?n(r,e.model):[]},_e=function(t,e){let{all:n}=e.methods.two.transform.noun||{};return n?n(t.root,e.model):[t.root]},Se=function(t,e){let{all:n}=e.methods.two.transform.adjective||{};return n?n(t.root,e.model):[t.root]};var Ae=function(t,e){return t=t.map((t=>{if(t.root)if(e.methods.two&&e.methods.two.transform){let n=[];t.pos?"Verb"===t.pos?n=n.concat(Pe(t,e)):"Noun"===t.pos?n=n.concat(_e(t,e)):"Adjective"===t.pos&&(n=n.concat(Se(t,e))):(n=n.concat(Pe(t,e)),n=n.concat(_e(t,e)),n=n.concat(Se(t,e))),n=n.filter((t=>t)),n.length>0&&(t.operator="or",t.fastOr=new Set(n))}else t.machine=t.root,delete t.id,delete t.root;return t}))},Te=function(t){return t=function(t){let e=0,n=null;for(let r=0;r(t.fuzzy&&t.choices&&t.choices.forEach((e=>{1===e.length&&e[0].word&&(e[0].fuzzy=!0,e[0].min=t.min)})),t)))}(t=t.map((t=>{if(void 0!==t.choices){if("or"!==t.operator)return t;if(!0===t.fuzzy)return t;!0===t.choices.every((t=>{if(1!==t.length)return!1;let e=t[0];return!0!==e.fuzzy&&!e.start&&!e.end&&void 0!==e.word&&!0!==e.negative&&!0!==e.optional&&!0!==e.method}))&&(t.fastOr=new Set,t.choices.forEach((e=>{t.fastOr.add(e[0].word)})),delete t.choices)}return t}))),t},$e=function(t,e,n){if(null==t||""===t)return[];e=e||{},"number"==typeof t&&(t=String(t));let r=fe(t);return r=r.map((t=>Oe(t,e))),r=ke(r,n),r=Ae(r,n),r=Te(r),r};const Ce=function(t,e){for(let n of e)if(t.has(n))return!0;return!1};var ze=function(t,e){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(o||100))return o||100;let i,s,l,a,c,u,h=[];for(let t=0;t4)return n;l=e[i-1],a=s===l?0:1,c=h[o-1][i]+1,(u=h[o][i-1]+1)1&&i>1&&s===e[i-2]&&t[o-2]===l&&(u=h[o-2][i-2]+a)-1!==t.post.indexOf(e),De=(t,e)=>-1!==t.pre.indexOf(e),Be={hasQuote:t=>Le.test(t.pre)||Ve.test(t.post),hasComma:t=>Ge(t,","),hasPeriod:t=>!0===Ge(t,".")&&!1===Ge(t,"..."),hasExclamation:t=>Ge(t,"!"),hasQuestionMark:t=>Ge(t,"?")||Ge(t,"¿"),hasEllipses:t=>Ge(t,"..")||Ge(t,"…")||De(t,"..")||De(t,"…"),hasSemicolon:t=>Ge(t,";"),hasColon:t=>Ge(t,":"),hasSlash:t=>/\//.test(t.text),hasHyphen:t=>qe.test(t.post)||qe.test(t.pre),hasDash:t=>Fe.test(t.post)||Fe.test(t.pre),hasContraction:t=>Boolean(t.implicit),isAcronym:t=>t.tags.has("Acronym"),isKnown:t=>t.tags.size>0,isTitleCase:t=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(t.text),isUpperCase:t=>/^\p{Lu}+$/u.test(t.text)};Be.hasQuotation=Be.hasQuote;var Ue=Be;let Me=function(){};Me=function(t,e,n,r){let o=function(t,e,n,r){if(!0===e.anything)return!0;if(!0===e.start&&0!==n)return!1;if(!0===e.end&&n!==r-1)return!1;if(void 0!==e.id&&e.id===t.id)return!0;if(void 0!==e.word){if(e.use)return e.word===t[e.use];if(null!==t.machine&&t.machine===e.word)return!0;if(void 0!==t.alias&&t.alias.hasOwnProperty(e.word))return!0;if(!0===e.fuzzy){if(e.word===t.root)return!0;if(Ne(e.word,t.normal)>=e.min)return!0}return!(!t.alias||!t.alias.some((t=>t===e.word)))||e.word===t.text||e.word===t.normal}if(void 0!==e.tag)return!0===t.tags.has(e.tag);if(void 0!==e.method)return"function"==typeof Ue[e.method]&&!0===Ue[e.method](t);if(void 0!==e.pre)return t.pre&&t.pre.includes(e.pre);if(void 0!==e.post)return t.post&&t.post.includes(e.post);if(void 0!==e.regex){let n=t.normal;return e.use&&(n=t[e.use]),e.regex.test(n)}if(void 0!==e.chunk)return t.chunk===e.chunk;if(void 0!==e.switch)return t.switch===e.switch;if(void 0!==e.machine)return t.normal===e.machine||t.machine===e.machine||t.root===e.machine;if(void 0!==e.sense)return t.sense===e.sense;if(void 0!==e.fastOr){if(e.pos&&!t.tags.has(e.pos))return null;let n=t.root||t.implicit||t.machine||t.normal;return e.fastOr.has(n)||e.fastOr.has(t.text)}return void 0!==e.choices&&("and"===e.operator?e.choices.every((e=>Me(t,e,n,r))):e.choices.some((e=>Me(t,e,n,r))))}(t,e,n,r);return!0===e.negative?!o:o};var We=Me;const Ie=function(t,e){if(!0===t.end&&!0===t.greedy&&e.start_i+e.tn.max?(t.t=t.t+n.max,!0):(!0===t.hasGroup&&(Re(t,t.t).length=r-t.t),t.t=r,!0)};const He=function(t,e=0){let n=t.regs[t.r],r=!1;for(let i=0;i{let o=0,i=t.t+r+e+o;if(void 0===t.terms[i])return!1;let s=We(t.terms[i],n,i+t.start_i,t.phrase_length);if(!0===s&&!0===n.greedy)for(let e=1;e{let r=n.every(((e,n)=>{let r=t.t+n;return void 0!==t.terms[r]&&We(t.terms[r],e,r,t.phrase_length)}));return!0===r&&n.length>e&&(e=n.length),r}))&&e}(t);if(r){if(!0===n.negative)return null;if(!0===t.hasGroup&&(Re(t,t.t).length+=r),!0===n.end){let e=t.phrase_length-1;if(t.t+t.start_i!==e)return null}return t.t+=r,!0}return!!n.optional||null},Je=function(t,e,n){let r=0;for(let o=t.t;or||(t.t+=r,0))},Xe=function(t){const{regs:e}=t;let n=e[t.r],r=Object.assign({},n);if(r.negative=!1,We(t.terms[t.t],r,t.start_i+t.t,t.phrase_length))return!1;if(n.optional){let n=e[t.r+1];n&&(We(t.terms[t.t],n,t.start_i+t.t,t.phrase_length)?t.r+=1:n.optional&&e[t.r+2]&&We(t.terms[t.t],e[t.r+2],t.start_i+t.t,t.phrase_length)&&(t.r+=2))}return n.greedy?Je(t,r,e[t.r+1]):(t.t+=1,!0)},Ye=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=We(r,e[t.r+1],t.start_i+t.t,t.phrase_length);if(n.negative||o){let n=t.terms[t.t+1];n&&We(n,e[t.r+1],t.start_i+t.t,t.phrase_length)||(t.r+=1)}},tn=function(t){const{regs:e,phrase_length:n}=t;let r=e[t.r];return t.t=function(t,e){let n=Object.assign({},t.regs[t.r],{start:!1,end:!1}),r=t.t;for(;t.tt.t?null:!0!==r.end||t.start_i+t.t===n||null},en=function(t){let e=t.terms[t.t],n=t.regs[t.r];if(e.implicit&&t.terms[t.t+1]){if(!t.terms[t.t+1].implicit)return;n.word===e.normal&&(t.t+=1),"hasContraction"===n.method&&(t.t+=1)}},nn=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=t.t;return!!(n.optional&&e[t.r+1]&&n.negative)||(n.optional&&e[t.r+1]&&Ye(t),r.implicit&&t.terms[t.t+1]&&en(t),t.t+=1,!0===n.end&&t.t!==t.terms.length&&!0!==n.greedy?null:!0!==n.greedy||tn(t)?(!0===t.hasGroup&&function(t,e){let n=t.regs[t.r];const r=Re(t,e);t.t>1&&n.greedy?r.length+=t.t-e:r.length++}(t,o),!0):null)},rn=function(t,e,n,r){if(0===t.length||0===e.length)return null;let o={t:0,terms:t,r:0,regs:e,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;o.r!t.optional)))break;return null}if(!0!==t.anything||!0!==t.greedy){if(void 0===t.choices||"or"!==t.operator){if(void 0===t.choices||"and"!==t.operator)if(!0!==t.anything){if(!0!==Ie(t,o)){if(t.negative){if(!Xe(o))return null}else if(!0!==We(o.terms[o.t],t,o.start_i+o.t,o.phrase_length)){if(!0!==t.optional)return null}else if(!nn(o))return null}else if(!nn(o))return null}else{if(t.negative&&t.anything)return null;if(!nn(o))return null}else if(!Ke(o))return null}else if(!Ze(o))return null}else if(!Qe(o))return null}let i=[null,n,o.t+n];if(i[1]===i[2])return null;let s={};return Object.keys(o.groups).forEach((t=>{let e=o.groups[t],r=n+e.start;s[t]=[null,r,r+e.length]})),{pointer:i,groups:s}},on=function(t,e){let n=[],r={};return 0===t.length||("number"==typeof e&&(e=String(e)),e?t.forEach((t=>{t.groups[e]&&n.push(t.groups[e])})):t.forEach((t=>{n.push(t.pointer),Object.keys(t.groups).forEach((e=>{r[e]=r[e]||[],r[e].push(t.groups[e])}))}))),{ptrs:n,byGroup:r}},sn=function(t,e,n){return t=t.filter((t=>{let[r,o,i]=t.pointer,s=n[r].slice(o,i);for(let t=0;t{t.groups[n][0]=e})),t},an=function(t,e,n){let r=rn(t,e,0,t.length);return r?(r=ln(r,n),r):null};var cn=function(t,e,n){n=n||[];let{regs:r,group:o,justOne:i}=e,s=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const l=r.filter((t=>!0!==t.optional&&!0!==t.negative)).length;t:for(let e=0;et&&(t=Math.abs(n-1))}}else{let t=an(o,r,e);t&&s.push(t)}}return!0===r[r.length-1].end&&(s=s.filter((e=>{let n=e.pointer[0];return t[n].length===e.pointer[2]}))),e.notIf&&(s=sn(s,e.notIf,t)),s=on(s,o),s.ptrs.forEach((e=>{let[n,r,o]=e;e[3]=t[n][r].id,e[4]=t[n][o-1].id})),s},un={api:se,methods:{one:{termMethods:Ue,parseMatch:$e,match:cn}},lib:{parseMatch:function(t,e){const n=this.world();let r=n.methods.one.killUnicode;return r&&(t=r(t,n)),n.methods.one.parseMatch(t,e,n)}}};const hn=/^\../,fn=/^#./,pn=function(t,e){let n={},r={};return Object.keys(e).forEach((o=>{let i=e[o],s=function(t){let e="",n="";return t=t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),hn.test(t)?e=``),e+=">",{start:e,end:n}}(o);"string"==typeof i&&(i=t.match(i)),i.docs.forEach((t=>{if(t.every((t=>t.implicit)))return;let e=t[0].id;n[e]=n[e]||[],n[e].push(s.start);let o=t[t.length-1].id;r[o]=r[o]||[],r[o].push(s.end)}))})),{starts:n,ends:r}};var dn={html:function(t){let{starts:e,ends:n}=pn(this,t),r="";return this.docs.forEach((t=>{for(let o=0;o{let n=t.pre||"",o=t.post||"";"some"===e.punctuation&&(n=n.replace(gn,""),bn.test(o)&&(o=" "),o=o.replace(wn,""),o=o.replace(/\?!+/,"?"),o=o.replace(/!+/,"!"),o=o.replace(/\?+/,"?"),o=o.replace(/\.{2,}/,""),t.tags.has("Abbreviation")&&(o=o.replace(/\./,""))),"some"===e.whitespace&&(n=n.replace(/\s/,""),o=o.replace(/\s+/," ")),e.keepPunct||(n=n.replace(gn,""),o="-"===o?" ":o.replace(mn,""));let i=t[e.form||"text"]||t.normal||"";"implicit"===e.form&&(i=t.implicit||t.text),"root"===e.form&&t.implicit&&(i=t.root||t.implicit||t.normal),"machine"!==e.form&&"implicit"!==e.form&&"root"!==e.form||!t.implicit||o&&yn.test(o)||(o+=" "),r+=n+i+o})),!1===n&&(r=r.trim()),!0===e.lowerCase&&(r=r.toLowerCase()),r},xn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};xn.clean=xn.normal,xn.reduced=xn.root;var jn=xn;let On=[],En=0;for(;En<64;)On[En]=0|4294967296*Math.sin(++En%Math.PI);function kn(t){let e,n,r,o=[e=1732584193,n=4023233417,~e,~n],i=[],s=decodeURI(encodeURI(t))+"",l=s.length;for(t=--l/4+2|15,i[--t]=8*l;~l;)i[l>>2]|=s.charCodeAt(l)<<8*l--;for(En=s=0;En>4]+On[s]+~~i[En|15&[s,5*s+1,3*s+5,7*s][l]])<<(l=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*l+s++%4])|r>>>-l),e,n])e=0|l[1],n=l[2];for(s=4;s;)o[--s]+=l[s]}for(t="";s<32;)t+=(o[s>>3]>>4*(1^s++)&15).toString(16);return t}const Pn={text:!0,terms:!0};let _n={case:"none",unicode:"some",form:"machine",punctuation:"some"};const Sn=function(t,e){return Object.assign({},t,e)},An={text:t=>vn(t,{keepPunct:!0},!1),normal:t=>vn(t,Sn(jn.normal,{keepPunct:!0}),!1),implicit:t=>vn(t,Sn(jn.implicit,{keepPunct:!0}),!1),machine:t=>vn(t,_n,!1),root:t=>vn(t,Sn(_n,{form:"root"}),!1),hash:t=>kn(vn(t,{keepPunct:!0},!1)),offset:t=>{let e=An.text(t).length;return{index:t[0].offset.index,start:t[0].offset.start,length:e}},terms:t=>t.map((t=>{let e=Object.assign({},t);return e.tags=Array.from(t.tags),e})),confidence:(t,e,n)=>e.eq(n).confidence(),syllables:(t,e,n)=>e.eq(n).syllables(),sentence:(t,e,n)=>e.eq(n).fullSentence().text(),dirty:t=>t.some((t=>!0===t.dirty))};An.sentences=An.sentence,An.clean=An.normal,An.reduced=An.root;const Tn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},Pn,r)).offset&&n.compute("offset"),n.docs.map(((t,e)=>{let o={};return Object.keys(r).forEach((i=>{r[i]&&An[i]&&(o[i]=An[i](t,n,e))})),o})));var n,r;return"number"==typeof t?e[t]:e}};Tn.data=Tn.json;var $n=Tn,Cn=function(t){console.log("%c -=-=- ","background-color:#6699cc;"),t.forEach((t=>{console.groupCollapsed(t.text());let e=t.docs[0].map((t=>{let e=t.text||"-";return t.implicit&&(e="["+t.implicit+"]"),{text:e,tags:"["+Array.from(t.tags).join(", ")+"]"}}));console.table(e,["text","tags"]),console.groupEnd()}))};const zn="[0m";var Nn={green:t=>"[32m"+t+zn,red:t=>"[31m"+t+zn,blue:t=>"[34m"+t+zn,magenta:t=>"[35m"+t+zn,cyan:t=>"[36m"+t+zn,yellow:t=>"[33m"+t+zn,black:t=>"[30m"+t+zn,dim:t=>"[2m"+t+zn,i:t=>"[3m"+t+zn},Ln=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(Nn.blue("\n ──────")),e.forEach((e=>{console.log(Nn.blue("\n ┌─────────")),e.forEach((e=>{let r=[...e.tags||[]],o=e.text||"-";e.sense&&(o=`{${e.normal}/${e.sense}}`),e.implicit&&(o="["+e.implicit+"]"),o=Nn.yellow(o);let i="'"+o+"'";if(e.reference){let n=t.update([e.reference]).text("normal");i+=` - ${Nn.dim(Nn.i("["+n+"]"))}`}i=i.padEnd(18);let s=Nn.blue(" │ ")+Nn.i(i)+" - "+function(t,e){return e.one.tagSet&&(t=t.map((t=>{if(!e.one.tagSet.hasOwnProperty(t))return t;const n=e.one.tagSet[t].color||"blue";return Nn[n](t)}))),t.join(", ")}(r,n);console.log(s)}))}))},Vn=function(t){let{docs:e}=t;console.log(""),e.forEach((t=>{let e=[];t.forEach((t=>{"Noun"===t.chunk?e.push(Nn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(Nn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(Nn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(Nn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)})),console.log(e.join(" "),"\n")}))},qn=function(t){if(!t.found)return;let e={};t.fullPointer.forEach((t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)})),Object.keys(e).forEach((n=>{let r=t.update([[Number(n)]]).text();t.update(e[n]).json({offset:!0}).forEach(((t,e)=>{r=function(t,e,n){let r=((t,e,n)=>{let r=9*n,o=e.start+r,i=o+e.length;return[t.substring(0,o),t.substring(o,i),t.substring(i,t.length)]})(t,e,n);return`${r[0]}${Nn.blue(r[1])}${r[2]}`}(r,t.offset,e)})),console.log(r)}))},Fn=function(t={}){let e=this;if("string"==typeof t){let e={};e[t]=!0,t=e}return"undefined"!=typeof window&&window.document?(Cn(e),e):(!1!==t.tags&&(Ln(e),console.log("\n")),!0===t.chunks&&(Vn(e),console.log("\n")),!0===t.highlight&&(qn(e),console.log("\n")),e)};const Gn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var Dn=function(t,e){let n=function(t,e){let n={};return Object.keys(e).forEach((r=>{t.match(r).fullPointer.forEach((t=>{n[t[3]]={fn:e[r],end:t[2]}}))})),n}(t,e),r="";return t.docs.forEach(((e,o)=>{for(let i=0;it.reduce(((t,e)=>t+e.pre+e.text+e.post),"").trim()));return t.filter((t=>t))}if("freq"===t||"frequency"===t||"topk"===t)return function(t){let e={};t.forEach((t=>{e[t]=e[t]||0,e[t]+=1}));let n=Object.keys(e).map((t=>({normal:t,count:e[t]})));return n.sort(((t,e)=>t.count>e.count?-1:0))}(this.json({normal:!0}).map((t=>t.normal)));if("terms"===t){let t=[];return this.docs.forEach((e=>{let n=e.terms.map((t=>t.text));n=n.filter((t=>t)),t=t.concat(n)})),t}return"tags"===t?this.docs.map((t=>t.reduce(((t,e)=>(t[e.implicit||e.normal]=Array.from(e.tags),t)),{}))):"debug"===t?this.debug():this.text()},wrap:function(t){return Dn(this,t)}};var Un=Bn,Mn={text:function(t){let e={};var n;if(t&&"string"==typeof t&&jn.hasOwnProperty(t)?e=Object.assign({},jn[t]):t&&(n=t,"[object Object]"===Object.prototype.toString.call(n))&&(e=Object.assign({},t)),void 0===e.keepSpace&&this.pointer&&(e.keepSpace=!1),void 0===e.keepPunct&&this.pointer){let t=this.pointer[0];t&&t[1]?e.keepPunct=!1:e.keepPunct=!0}return void 0===e.keepPunct&&(e.keepPunct=!0),void 0===e.keepSpace&&(e.keepSpace=!0),function(t,e){let n="";if(!t||!t[0]||!t[0][0])return n;for(let r=0;ro||o<=n&&i>n},Hn=function(t){let e={};return t.forEach((t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)})),e};var Zn=function(t,e){let n=Hn(e),r=[];return t.forEach((t=>{let[e]=t,o=n[e]||[];if(o=o.filter((e=>function(t,e){return t[1]<=e[1]&&e[2]<=t[2]}(t,e))),0===o.length)return void r.push({passthrough:t});o=o.sort(((t,e)=>t[1]-e[1]));let i=t;o.forEach(((t,e)=>{let n=function(t,e){let[n,r]=t,o=e[1],i=e[2],s={};if(ri&&(s.after=[n,i,t[2]]),s}(i,t);o[e+1]?(r.push({before:n.before,match:n.match}),n.after&&(i=n.after)):r.push(n)}))})),r},Kn=function(t,e){let n=[];return t.forEach(((r,o)=>{if(!r)return;let[i,s,l,a,c]=r,u=e[i]||[];if(void 0===s&&(s=0),void 0===l&&(l=u.length),!a||u[s]&&u[s].id===a)u=u.slice(s,l);else{let n=function(t,e,n){for(let r=0;r<20;r+=1){if(e[n-r]){let o=e[n-r].findIndex((e=>e.id===t));if(-1!==o)return[n-r,o]}if(e[n+r]){let o=e[n+r].findIndex((e=>e.id===t));if(-1!==o)return[n+r,o]}}return null}(a,e,i);if(null!==n){let r=l-s;u=e[n[0]].slice(n[1],n[1]+r);let i=u[0]?u[0].id:null;t[o]=[n[0],n[1],n[1]+r,i]}}0!==u.length&&s!==l&&(c&&u[u.length-1].id!==c&&(u=function(t,e){let[n,r,,,o]=t,i=e[n],s=i.findIndex((t=>t.id===o));return-1===s?(t[2]=e[n].length,t[4]=i.length?i[i.length-1].id:null):t[2]=s,e[n].slice(r,t[2]+1)}(r,e)),n.push(u))})),n=n.filter((t=>t.length>0)),n},Jn={one:{termList:function(t){let e=[];for(let n=0;n{let[e]=t;if(1===r[e].length)return void o.push(t);let n=r[e].filter((e=>Qn(t,e)));n.push(t);let i=function(t){let e=t[0][1],n=t[0][2];return t.forEach((t=>{t[1]n&&(n=t[2])})),[t[0][0],e,n]}(n);o.push(i)})),o=function(t){let e={};for(let n=0;n{t.passthrough&&n.push(t.passthrough),t.before&&n.push(t.before),t.after&&n.push(t.after)})),n},tr=function(t,e){let n=Hn(e),r=[];return t.forEach((t=>{let e=n[t[0]]||[];e=e.filter((e=>Qn(t,e))),0!==e.length&&e.forEach((e=>{let n=function(t,e){let n=t[1]e[2]?e[2]:t[2];return n{return"string"==typeof t||(n=t,"[object Array]"===Object.prototype.toString.call(n))?e.match(t):t||e.none();var n},nr=function(t,e){return t.map((t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t}))},rr={union:function(t){t=er(t,this);let e=Xn(this.fullPointer,t.fullPointer);return e=nr(e,this.document),this.toView(e)}};rr.and=rr.union,rr.intersection=function(t){t=er(t,this);let e=tr(this.fullPointer,t.fullPointer);return e=nr(e,this.document),this.toView(e)},rr.not=function(t){t=er(t,this);let e=Yn(this.fullPointer,t.fullPointer);return e=nr(e,this.document),this.toView(e)},rr.difference=rr.not,rr.complement=function(){let t=this.all(),e=Yn(t.fullPointer,this.fullPointer);return e=nr(e,this.document),this.toView(e)},rr.settle=function(){let t=this.fullPointer;return t.forEach((e=>{t=Xn(t,[e])})),t=nr(t,this.document),this.update(t)};var or=function(t){Object.assign(t.prototype,rr)},ir={methods:Jn,api:or},sr=function(t){t.prototype.sweep=function(t,e={}){const{world:n,docs:r}=this,{methods:o}=n;let i=o.one.bulkMatch(r,t,this.methods,e);!1!==e.tagger&&o.one.bulkTagger(i,r,this.world),i=i.map((t=>{let e=t.pointer,n=r[e[0]][e[1]],o=e[2]-e[1];return n.index&&(t.pointer=[n.index[0],n.index[1],e[1]+o]),t}));let s=i.map((t=>t.pointer));return i=i.map((t=>(t.view=this.update([t.pointer]),delete t.regs,delete t.needs,delete t.pointer,delete t._expanded,t))),{view:this.update(s),found:i}}};const lr=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var ar=function(t,e){const n=e.methods.one.parseMatch;return t.forEach((t=>{t.regs=n(t.match,{},e),"string"==typeof t.ifNo&&(t.ifNo=[t.ifNo]),t.notIf&&(t.notIf=n(t.notIf,{},e)),t.needs=function(t){let e=[];return t.forEach((t=>{e.push(lr(t)),"and"===t.operator&&t.choices&&t.choices.forEach((t=>{t.forEach((t=>{e.push(lr(t))}))}))})),e.filter((t=>t))}(t.regs);let{wants:r,count:o}=function(t){let e=[],n=0;return t.forEach((t=>{"or"!==t.operator||t.optional||t.negative||(t.fastOr&&Array.from(t.fastOr).forEach((t=>{e.push(t)})),t.choices&&t.choices.forEach((t=>{t.forEach((t=>{let n=lr(t);n&&e.push(n)}))})),n+=1)})),{wants:e,count:n}}(t.regs);t.wants=r,t.minWant=o,t.minWords=t.regs.filter((t=>!t.optional)).length})),t},cr=function(t,e){t=ar(t,e);let n={};t.forEach((t=>{t.needs.forEach((e=>{n[e]=n[e]||[],n[e].push(t)})),t.wants.forEach((e=>{n[e]=n[e]||[],n[e].push(t)}))})),Object.keys(n).forEach((t=>{let e={};n[t]=n[t].filter((t=>!e[t.match]&&(e[t.match]=!0,!0)))}));let r=t.filter((t=>0===t.needs.length&&0===t.wants.length));return{hooks:n,always:r}},ur=function(t,e){return t.map(((n,r)=>{let o=[];Object.keys(e).forEach((n=>{t[r].has(n)&&(o=o.concat(e[n]))}));let i={};return o=o.filter((t=>!i[t.match]&&(i[t.match]=!0,!0))),o}))},hr=function(t,e){return t.map(((t,n)=>{let r=e[n];return t=(t=(t=t.filter((t=>t.needs.every((t=>r.has(t)))))).filter((t=>void 0===t.ifNo||!0!==t.ifNo.some((t=>r.has(t)))))).filter((t=>0===t.wants.length||t.wants.filter((t=>r.has(t))).length>=t.minWant))}))},fr=function(t,e,n,r,o){let i=[];for(let n=0;n0&&(a.ptrs.forEach((t=>{t[0]=n;let e=Object.assign({},l,{pointer:t});void 0!==l.unTag&&(e.unTag=l.unTag),i.push(e)})),!0===o.matchOne))return[i[0]]}return i},pr=function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=ur(o,e.hooks);return i=hr(i,o),e.always.length>0&&(i=i.map((t=>t.concat(e.always)))),i=function(t,e){return t.map(((t,n)=>{let r=e[n].length;return t=t.filter((t=>r>=t.minWords)),t}))}(i,t),fr(i,t,o,n,r)},dr=function(t,e,n){let r=n.one.tagSet;if(!r.hasOwnProperty(e))return!0;let o=r[e].not||[];for(let e=0;e{if(!t.tag&&!t.chunk&&!t.unTag)return;let o=t.reason||t.match,c=i([t.pointer],e)[0];if(!0===t.safe){if(!1===dr(c,t.tag,r))return;if("-"===c[c.length-1].post)return}if(void 0!==t.tag&&(s(c,t.tag,n,t.safe,`[post] '${o}'`),"Noun"===t.tag&&a)){let e=c[c.length-1];a(e.text)?s([e],"Plural",n,t.safe,"quick-plural"):s([e],"Singular",n,t.safe,"quick-singular")}void 0!==t.unTag&&l(c,t.unTag,n,t.safe,o),t.chunk&&c.forEach((e=>e.chunk=t.chunk))})))},gr={lib:{buildNet:function(t){let e=this.methods().one.buildNet(t,this.world());return e.isNet=!0,e}},api:sr,methods:{one:{buildNet:cr,bulkMatch:pr,bulkTagger:mr}}};const wr=/ /,br=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},yr=function(t,e,n,r){if(!0===t.tags.has(e))return null;if("."===e)return null;let o=n[e];if(o){if(o.not&&o.not.length>0)for(let e=0;e0)for(let e=0;e{let r=t.map((t=>t.text||"["+t.implicit+"]")).join(" ");var o;"string"!=typeof e&&e.length>2&&(e=e.slice(0,2).join(", #")+" +"),e="string"!=typeof e?e.join(", #"):e,console.log(` ${(o=r,"[33m[3m"+o+"[0m").padEnd(24)} [32m→[0m #${e.padEnd(22)} ${(t=>"[3m"+t+"[0m")(n)}`)})(t,e,o),1!=(l=e,"[object Array]"===Object.prototype.toString.call(l)))if("string"==typeof e)if(e=e.trim(),wr.test(e))!function(t,e,n,r){let o=e.split(wr);t.forEach(((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),yr(t,i,n,r))}))}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nvr(t,e,n,r)))};var xr=vr,jr=function(t,e,n){e=e.trim().replace(/^#/,"");for(let r=0;r0)for(let t=0;t/),n=[];e.forEach((t=>{n=n.concat(function(t){if(!(t=t.trim()))return null;if(/^\[/.test(t)&&/\]$/.test(t)){let e=(t=(t=t.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return e=e.map((t=>t.trim())).filter((t=>t)),e=e.map((t=>Or({id:t}))),e}return[Or({id:t})]}(t))})),n=n.filter((t=>t));let r=n[0];for(let t=1;t{let n=[],r=[t];for(;r.length>0;){let t=r.pop();n.push(t),t.children&&t.children.forEach((n=>{e&&e(t,n),r.push(n)}))}return n},_r=t=>"[object Array]"===Object.prototype.toString.call(t),Sr=t=>(t=t||"").trim(),Ar=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach((t=>{if(!t.trim()||Er.test(t))return;let e=(t=>{const e=/^( {2}|\t)/;let n=0;for(;e.test(t);)t=t.replace(e,""),n+=1;return n})(t);n.push({indent:e,node:kr(t)})}));let r=function(t){let e={children:[]};return t.forEach(((n,r)=>{0===n.indent?e.children=e.children.concat(n.node):t[r-1]&&function(t,e){let n=t[e].indent;for(;e>=0;e-=1)if(t[e].indent{e[t.id]=t}));let n=Or({});return t.forEach((t=>{if((t=Or(t)).parent)if(e.hasOwnProperty(t.parent)){let n=e[t.parent];delete t.parent,n.children.push(t)}else console.warn(`[Grad] - missing node '${t.parent}'`);else n.children.push(t)})),n}(t):(Pr(e=t).forEach(Or),e);var e},Tr=function(t,e){let n="-> ";e&&(n=(t=>"[2m"+t+"[0m")("→ "));let r="";return Pr(t).forEach(((t,o)=>{let i=t.id||"";if(e&&(i=(t=>"[31m"+t+"[0m")(i)),0===o&&!t.id)return;let s=t._cache.parents.length;r+=" ".repeat(s)+n+i+"\n"})),r},$r=function(t){let e=Pr(t);e.forEach((t=>{delete(t=Object.assign({},t)).children}));let n=e[0];return n&&!n.id&&0===Object.keys(n.props).length&&e.shift(),e},Cr={text:Tr,txt:Tr,array:$r,flat:$r},zr=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Tr(t,!0)),null):Cr.hasOwnProperty(e)?Cr[e](t):t},Nr=t=>{Pr(t,((t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))}))},Lr=/\//;class g{constructor(t={}){Object.defineProperty(this,"json",{enumerable:!1,value:t,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(t={}){let e=this.json.props||{};return"string"==typeof t&&(e[t]=!0),this.json.props=Object.assign(e,t),this}get(t){if(t=Sr(t),!Lr.test(t)){let e=this.json.children.find((e=>e.id===t));return new g(e)}let e=((t,e)=>{let n=(t=>"string"!=typeof t?t:(t=t.replace(/^\//,"")).split(/\//))(e=e||"");for(let e=0;et.id===n[e]));if(!r)return null;t=r}return t})(this.json,t)||Or({});return new g(e)}add(t,e={}){if(_r(t))return t.forEach((t=>this.add(Sr(t),e))),this;t=Sr(t);let n=Or({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=Sr(t),this.json.children=this.json.children.filter((e=>e.id!==t)),this}nodes(){return Pr(this.json).map((t=>(delete(t=Object.assign({},t)).children,t)))}cache(){return(t=>{let e=Pr(t,((t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],t._cache.children=t._cache.children||[],e._cache.parents=t._cache.parents.concat([t.id]))})),n={};e.forEach((t=>{t.id&&(n[t.id]=t)})),e.forEach((t=>{t._cache.parents.forEach((e=>{n.hasOwnProperty(e)&&n[e]._cache.children.push(t.id)}))})),t._cache.children=Object.keys(n)})(this.json),this}list(){return Pr(this.json)}fillDown(){var t;return t=this.json,Pr(t,((t,e)=>{e.props=((t,e)=>(Object.keys(e).forEach((n=>{if(e[n]instanceof Set){let r=t[n]||new Set;t[n]=new Set([...r,...e[n]])}else if((t=>t&&"object"==typeof t&&!Array.isArray(t))(e[n])){let r=t[n]||{};t[n]=Object.assign({},e[n],r)}else _r(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])})),t))(e.props,t.props)})),this}depth(){Nr(this.json);let t=Pr(this.json),e=t.length>1?1:0;return t.forEach((t=>{if(0===t._cache.parents.length)return;let n=t._cache.parents.length+1;n>e&&(e=n)})),e}out(t){return Nr(this.json),zr(this.json,t)}debug(){return Nr(this.json),zr(this.json,"debug"),this}}const Vr=function(t){let e=Ar(t);return new g(e)};Vr.prototype.plugin=function(t){t(this)};var qr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Hyphenated:"cyan",Adverb:"cyan"};const Fr=function(t){if(qr.hasOwnProperty(t.id))return qr[t.id];if(qr.hasOwnProperty(t.is))return qr[t.is];let e=t._cache.parents.find((t=>qr[t]));return qr[e]};var Gr=function(t){const e={};return t.forEach((t=>{let{not:n,also:r,is:o,novel:i}=t.props,s=t._cache.parents;r&&(s=s.concat(r)),e[t.id]={is:o,not:n,novel:i,also:r,parents:s,children:t._cache.children,color:Fr(t)}})),Object.keys(e).forEach((t=>{let n=new Set(e[t].not);e[t].not.forEach((t=>{e[t]&&e[t].children.forEach((t=>n.add(t)))})),e[t].not=Array.from(n)})),e};const Dr=function(t){return t?"string"==typeof t?[t]:t:[]};var Br=function(t,e){return t=function(t,e){return Object.keys(t).forEach((n=>{t[n].isA&&(t[n].is=t[n].isA),t[n].notA&&(t[n].not=t[n].notA),t[n].is&&"string"==typeof t[n].is&&(e.hasOwnProperty(t[n].is)||t.hasOwnProperty(t[n].is)||(t[t[n].is]={})),t[n].not&&"string"==typeof t[n].not&&!t.hasOwnProperty(t[n].not)&&(e.hasOwnProperty(t[n].not)||t.hasOwnProperty(t[n].not)||(t[t[n].not]={}))})),t}(t,e),Object.keys(t).forEach((e=>{t[e].children=Dr(t[e].children),t[e].not=Dr(t[e].not)})),Object.keys(t).forEach((e=>{(t[e].not||[]).forEach((n=>{t[n]&&t[n].not&&t[n].not.push(e)}))})),t},Ur=function(t,e){Object.keys(e).length>0&&(t=function(t){return Object.keys(t).forEach((e=>{t[e]=Object.assign({},t[e]),t[e].novel=!0})),t}(t)),t=Br(t,e);const n=function(t){const e=Object.keys(t).map((e=>{let n=t[e];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:e,parent:n.is,props:r,children:[]}}));return Vr(e).cache().fillDown().out("array")}(Object.assign({},e,t));return Gr(n)},Mr={one:{setTag:xr,unTag:jr,addTags:Ur}};const Wr=function(t){return"[object Array]"===Object.prototype.toString.call(t)},Ir={tag:function(t,e="",n){if(!this.found||!t)return this;let r=this.termList();if(0===r.length)return this;const{methods:o,verbose:i,world:s}=this;return!0===i&&console.log(" + ",t,e||""),Wr(t)?t.forEach((t=>o.one.setTag(r,t,s,n,e))):o.one.setTag(r,t,s,n,e),this.uncache(),this},tagSafe:function(t,e=""){return this.tag(t,e,!0)},unTag:function(t,e){if(!this.found||!t)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:o,model:i}=this;!0===o&&console.log(" - ",t,e||"");let s=i.one.tagSet;return Wr(t)?t.forEach((t=>r.one.unTag(n,t,s))):r.one.unTag(n,t,s),this.uncache(),this},canBe:function(t){t=t.replace(/^#/,"");let e=this.model.one.tagSet;if(!e.hasOwnProperty(t))return this;let n=e[t].not||[],r=[];this.document.forEach(((t,e)=>{t.forEach(((t,o)=>{n.find((e=>t.tags.has(e)))&&r.push([e,o,o+1])}))}));let o=this.update(r);return this.difference(o)}};var Rr=Ir,Qr=function(t){Object.assign(t.prototype,Rr)},Hr={addTags:function(t){const{model:e,methods:n}=this.world(),r=e.one.tagSet;let o=(0,n.one.addTags)(t,r);return e.one.tagSet=o,this}};const Zr=new Set(["Auxiliary","Possessive"]);var Kr=function(t){const{document:e,world:n}=t,r=n.model.one.tagSet;e.forEach((t=>{t.forEach((t=>{let e=Array.from(t.tags);t.tagRank=function(t,e){return t=t.sort(((t,n)=>{if(Zr.has(t)||!e.hasOwnProperty(n))return 1;if(Zr.has(n)||!e.hasOwnProperty(t))return-1;let r=e[t].children||[],o=r.length;return r=e[n].children||[],o-r.length})),t}(e,r)}))}))},Jr={model:{one:{tagSet:{}}},compute:{tagRank:Kr},methods:Mr,api:Qr,lib:Hr};const Xr=/([.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s)/g,Yr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s$/,to=/((?:\r?\n|\r)+)/;var eo=function(t){let e=[],n=t.split(to);for(let t=0;t0&&(o.push(i),t[e]="")}return o};const so={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},lo=RegExp("["+Object.keys(so).join("")+"]","g"),ao=RegExp("["+Object.values(so).join("")+"]","g"),co=function(t){if(!t)return!1;let e=t.match(ao);return null!==e&&1===e.length};var uo=function(t){let e=[];for(let n=0;n(t[e]=!0,t)),{});var _o=function(t,e){let n=[],r=[];if("number"==typeof(t=t||"")&&(t=String(t)),function(t){return"[object Array]"===Object.prototype.toString.call(t)}(t))return t;const o=t.split(ko);for(let t=0;t0?(n[n.length-1]+=i,n.push(e)):n.push(i+e),i=""):i+=e}return i&&(0===n.length&&(n[0]=""),n[n.length-1]+=i),n=jo(n),n=vo(n),n=n.filter((t=>t)),n};const So=/\p{Letter}/u,Ao=/[\p{Number}\p{Currency_Symbol}]/u,To=/^[a-z]\.([a-z]\.)+/i,$o=/[sn]['’]$/;var Co=function(t,e){let{prePunctuation:n,postPunctuation:r,emoticons:o}=e.one,i=t,s="",l="",a=Array.from(t);if(o.hasOwnProperty(t.trim()))return{str:t.trim(),pre:s,post:" "};let c=a.length;for(let t=0;t(l=t||"",""))),t=i,s=""),{str:t,pre:s,post:l}},zo=(t,e)=>{let{str:n,pre:r,post:o}=Co(t,e);return{text:n,pre:r,post:o,tags:new Set}},No=function(t,e){const n=e.model.one.unicode||{};let r=(t=t||"").split("");return r.forEach(((t,e)=>{n[t]&&(r[e]=n[t])})),r.join("")},Lo=function(t){let e=t=(t=(t=t||"").toLowerCase()).trim();return t=(t=(t=t.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(t)&&(t=(t=(t=t.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(t=(t=t.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(t=e),t=t.replace(/([0-9]),([0-9])/g,"$1$2")};const Vo=/([A-Z]\.)+[A-Z]?,?$/,qo=/^[A-Z]\.,?$/,Fo=/[A-Z]{2,}('s|,)?$/,Go=/([a-z]\.)+[a-z]\.?$/;var Do=function(t){return function(t){return!0===Vo.test(t)||!0===Go.test(t)||!0===qo.test(t)||!0===Fo.test(t)}(t)&&(t=t.replace(/\./g,"")),t},Bo=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Lo(r),r=n(r,e),r=Do(r),t.normal=r},Uo=function(t,e){const{methods:n,model:r}=e,{splitSentences:o,splitTerms:i,splitWhitespace:s}=n.one.tokenize;return t=o(t=t||"",e).map((t=>{let n=i(t,r);return n=n.map((t=>s(t,r))),n.forEach((t=>{Bo(t,e)})),n})),t};const Mo=/[ .][A-Z]\.? *$/i,Wo=/(?:\u2026|\.{2,}) *$/,Io=/\p{L}/u,Ro=/^[A-Z]\. $/;var Qo={one:{killUnicode:No,tokenize:{splitSentences:wo,isSentence:function(t,e){if(!1===Io.test(t))return!1;if(!0===Mo.test(t))return!1;if(3===t.length&&Ro.test(t))return!1;if(!0===Wo.test(t))return!1;let n=t.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==e.hasOwnProperty(r)},splitTerms:_o,splitWhitespace:zo,fromString:Uo}}},Ho={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Zo={},Ko={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((t=>{t[0].forEach((e=>{Zo[e]=!0,Ko[e]="Abbreviation",void 0!==t[1]&&(Ko[e]=[Ko[e],t[1]])}))}));var Jo=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out","ex"].reduce(((t,e)=>(t[e]=!0,t)),{});let Xo={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Yo={};Object.keys(Xo).forEach((function(t){Xo[t].split("").forEach((function(e){Yo[e]=t}))}));const ti=/\//,ei=/[a-z]\.[a-z]/i,ni=/[0-9]/;var ri=function(t,e){let n=t.normal||t.text||t.machine;const r=e.model.one.aliases;if(r.hasOwnProperty(n)&&(t.alias=t.alias||[],t.alias.push(r[n])),ti.test(n)&&!ei.test(n)&&!ni.test(n)){let e=n.split(ti);e.length<=2&&e.forEach((e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))}))}return t};const oi=/^\p{Letter}+-\p{Letter}+$/u;var ii=function(t){let e=t.implicit||t.normal||t.text;e=e.replace(/['’]s$/,""),e=e.replace(/s['’]$/,"s"),e=e.replace(/([aeiou][ktrp])in'$/,"$1ing"),oi.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)},si=function(t){let e=t.docs,n={};for(let t=0;tui(t,ri),machine:t=>ui(t,ii),normal:t=>ui(t,Bo),freq:si,offset:li,index:ai,wordCount:ci},methods:Qo,model:{one:{aliases:Ho,abbreviations:Zo,prefixes:Jo,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},prePunctuation:{"#":!0,"@":!0,_:!0,"°":!0,"":!0,"":!0,"":!0,"\ufeff":!0},postPunctuation:{"%":!0,_:!0,"°":!0,"":!0,"":!0,"":!0,"\ufeff":!0},lexicon:Ko,unicode:Yo,emoticons:{"<3":!0,"3":!0,"<\\3":!0,":^P":!0,":^p":!0,":^O":!0,":^3":!0}}},hooks:["alias","machine","index","id"]},fi={typeahead:function(t){const e=t.model.one.typeahead,n=t.docs;if(0===n.length||0===Object.keys(e).length)return;let r=n[n.length-1]||[],o=r[r.length-1];if(!o.post&&e.hasOwnProperty(o.normal)){let n=e[o.normal];o.implicit=n,o.machine=n,o.typeahead=!0,t.compute.preTagger&&t.last().unTag("*").compute(["lexicon","preTagger"])}}};const pi=function(){const t=this.docs;if(0===t.length)return this;let e=t[t.length-1]||[],n=e[e.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var di=function(t){t.prototype.autoFill=pi},mi=function(t,e,n){let r={},o=[],i=n.prefixes||{};return t.forEach((t=>{let s=(t=t.toLowerCase().trim()).length;e.max&&s>e.max&&(s=e.max);for(let l=e.min;l{delete r[t]})),r};const gi={safe:!0,min:3};var wi={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},gi,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=mi(t,e,this.world());return Object.keys(o).forEach((t=>{n.one.typeahead.hasOwnProperty(t)?delete n.one.typeahead[t]:n.one.typeahead[t]=o[t]})),this}},bi={model:{one:{typeahead:{}}},api:di,lib:wi,compute:fi,hooks:["typeahead"]};return w.extend(tt),w.extend(Rn),w.extend(un),w.extend(ir),w.extend(Jr),w.plugin(At),w.extend(hi),w.plugin(x),w.extend(It),w.extend(bi),w.extend(qt),w.extend(gr),w},"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).nlp=e();
diff --git a/builds/one/compromise-one.mjs b/builds/one/compromise-one.mjs
index 0bf91b5b9..e2bf4ae8c 100644
--- a/builds/one/compromise-one.mjs
+++ b/builds/one/compromise-one.mjs
@@ -1 +1 @@
-var t={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const e={compute:function(t){const{world:e}=this,n=e.compute;return"string"==typeof t&&n.hasOwnProperty(t)?n[t](this):(t=>"[object Array]"===Object.prototype.toString.call(t))(t)?t.forEach((r=>{e.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",t)})):"function"==typeof t?t(this):console.warn("no compute:",t),this}};var n=e;var r={forEach:function(t){return this.fullPointer.forEach(((e,n)=>{let r=this.update([e]);t(r,n)})),this},map:function(t,e){let n=this.fullPointer.map(((e,n)=>{let r=this.update([e]),o=t(r,n);return void 0===o?this.none():o}));if(0===n.length)return e||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((t=>{r=r.concat(t.fullPointer)})),this.toView(r)},filter:function(t){let e=this.fullPointer;return e=e.filter(((e,n)=>{let r=this.update([e]);return t(r,n)})),this.update(e)},find:function(t){let e=this.fullPointer.find(((e,n)=>{let r=this.update([e]);return t(r,n)}));return this.update([e])},some:function(t){return this.fullPointer.some(((e,n)=>{let r=this.update([e]);return t(r,n)}))},random:function(t=1){let e=this.fullPointer,n=Math.floor(Math.random()*e.length);return n+t>this.length&&(n=this.length-t,n=n<0?0:n),e=e.slice(n,n+t),this.update(e)}};const o={termList:function(){return this.methods.one.termList(this.docs)},terms:function(t){let e=this.match(".");return"number"==typeof t?e.eq(t):e},groups:function(t){if(t||0===t)return this.update(this._groups[t]||[]);let e={};return Object.keys(this._groups).forEach((t=>{e[t]=this.update(this._groups[t])})),e},eq:function(t){let e=this.pointer;return e||(e=this.docs.map(((t,e)=>[e]))),e[t]?this.update([e[t]]):this.none()},first:function(){return this.eq(0)},last:function(){let t=this.fullPointer.length-1;return this.eq(t)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(t,e){let n=this.pointer||this.docs.map(((t,e)=>[e]));return n=n.slice(t,e),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let t=this.fullPointer.map((t=>[t[0]]));return this.update(t).toView()},none:function(){return this.update([])},isDoc:function(t){if(!t||!t.isView)return!1;let e=this.fullPointer,n=t.fullPointer;return!e.length!==n.length&&e.every(((t,e)=>!!n[e]&&(t[0]===n[e][0]&&t[1]===n[e][1]&&t[2]===n[e][2])))},wordCount:function(){return this.docs.reduce(((t,e)=>(t+=e.filter((t=>""!==t.text)).length,t)),0)},isFull:function(){let t=this.pointer;if(!t)return!0;let e=this.document;for(let n=0;ni)return!1}return!0},getNth:function(t){return"number"==typeof t?this.eq(t):"string"==typeof t?this.if(t):this}};o.group=o.groups,o.fullSentence=o.fullSentences,o.sentence=o.fullSentences,o.lastTerm=o.lastTerms,o.firstTerm=o.firstTerms;var i=o;const s=Object.assign({},i,n,r);s.get=s.eq;var l=s;class View{constructor(e,n,r={}){[["document",e],["world",t],["_groups",r],["_cache",null],["viewType","View"]].forEach((t=>{Object.defineProperty(this,t[0],{value:t[1],writable:!0})})),this.ptrs=n}get docs(){let e=this.document;return this.ptrs&&(e=t.methods.one.getDoc(this.ptrs,this.document)),e}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:t,ptrs:e,document:n}=this,r=e||t.map(((t,e)=>[e]));return r.map((t=>{let[e,r,o,i,s]=t;return r=r||0,o=o||(n[e]||[]).length,n[e]&&n[e][r]&&(i=i||n[e][r].id,n[e][o-1]&&(s=s||n[e][o-1].id)),[e,r,o,i,s]}))}update(t){let e=new View(this.document,t);if(this._cache&&t&&t.length>0){let n=[];t.forEach(((t,e)=>{let[r,o,i]=t;(1===t.length||0===o&&this.document[r].length===i)&&(n[e]=this._cache[r])})),n.length>0&&(e._cache=n)}return e.world=this.world,e}toView(t){return new View(this.document,t||this.pointer)}fromText(t){const{methods:e}=this;let n=e.one.tokenize.fromString(t,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let t=this.document.slice(0);t=t.map((t=>t.map((t=>((t=Object.assign({},t)).tags=new Set(t.tags),t)))));let e=this.update(this.pointer);return e.document=t,e._cache=this._cache,e}}Object.assign(View.prototype,l);var a=View;const c=function(t){return t&&"object"==typeof t&&!Array.isArray(t)};function u(t,e){if(c(e))for(const n in e)c(e[n])?(t[n]||Object.assign(t,{[n]:{}}),u(t[n],e[n])):Object.assign(t,{[n]:e[n]});return t}var h=function(t,e,n,r){const{methods:o,model:i,compute:s,hooks:l}=e;t.methods&&function(t,e){for(const n in e)t[n]=t[n]||{},Object.assign(t[n],e[n])}(o,t.methods),t.model&&u(i,t.model),t.irregulars&&function(t,e){let n=t.two.models||{};Object.keys(e).forEach((t=>{e[t].pastTense&&(n.toPast&&(n.toPast.exceptions[t]=e[t].pastTense),n.fromPast&&(n.fromPast.exceptions[e[t].pastTense]=t)),e[t].presentTense&&(n.toPresent&&(n.toPresent.exceptions[t]=e[t].presentTense),n.fromPresent&&(n.fromPresent.exceptions[e[t].presentTense]=t)),e[t].gerund&&(n.toGerund&&(n.toGerund.exceptions[t]=e[t].gerund),n.fromGerund&&(n.fromGerund.exceptions[e[t].gerund]=t)),e[t].comparative&&(n.toComparative&&(n.toComparative.exceptions[t]=e[t].comparative),n.fromComparative&&(n.fromComparative.exceptions[e[t].comparative]=t)),e[t].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[t]=e[t].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[e[t].superlative]=t))}))}(i,t.irregulars),t.compute&&Object.assign(s,t.compute),l&&(e.hooks=l.concat(t.hooks||[])),t.api&&t.api(n),t.lib&&Object.keys(t.lib).forEach((e=>r[e]=t.lib[e])),t.tags&&r.addTags(t.tags),t.words&&r.addWords(t.words),t.mutate&&t.mutate(e)};const f=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var p=function(t,e,n){const{methods:r}=n;let o=new e([]);if(o.world=n,"number"==typeof t&&(t=String(t)),!t)return o;if("string"==typeof t){return new e(r.one.tokenize.fromString(t,n))}if(i=t,"[object Object]"===Object.prototype.toString.call(i)&&t.isView)return new e(t.document,t.ptrs);var i;if(f(t)){if(f(t[0])){let n=t.map((t=>t.map((t=>({text:t,normal:t,pre:"",post:" ",tags:new Set})))));return new e(n)}let n=function(t){return t.map((t=>t.terms.map((t=>(f(t.tags)&&(t.tags=new Set(t.tags)),t)))))}(t);return new e(n)}return o};let d=Object.assign({},t);const m=function(t,e){e&&m.addWords(e);let n=p(t,a,d);return t&&n.compute(d.hooks),n};Object.defineProperty(m,"_world",{value:d,writable:!0}),m.tokenize=function(t,e){const{compute:n}=this._world;e&&m.addWords(e);let r=p(t,a,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},m.plugin=function(t){return h(t,this._world,a,this),this},m.extend=m.plugin,m.world=function(){return this._world},m.model=function(){return this._world.model},m.methods=function(){return this._world.methods},m.hooks=function(){return this._world.hooks},m.verbose=function(t){const e="undefined"!=typeof process&&process.env?process.env:self.env||{};return e.DEBUG_TAGS="tagger"===t||!0===t||"",e.DEBUG_MATCH="match"===t||!0===t||"",e.DEBUG_CHUNKS="chunker"===t||!0===t||"",this},m.version="14.8.2";var w=m;var v=function(t){let e=t.map((t=>{let e=new Set;return t.forEach((t=>{""!==t.normal&&e.add(t.normal),t.switch&&e.add(`%${t.switch}%`),t.implicit&&e.add(t.implicit),t.machine&&e.add(t.machine),t.root&&e.add(t.root),t.alias&&t.alias.forEach((t=>e.add(t)));let n=Array.from(t.tags);for(let t=0;t/^\p{Lu}[\p{Ll}'’]/u.test(t)||/^\p{Lu}$/u.test(t),E=(t,e,n)=>{if(n.forEach((t=>t.dirty=!0)),t){let r=[e,0].concat(n);Array.prototype.splice.apply(t,r)}return t},O=function(t){let e=t[t.length-1];!e||/ $/.test(e.post)||/[-–—]/.test(e.post)||(e.post+=" ")},k=(t,e,n)=>{const r=/[-.?!,;:)–—'"]/g;let o=t[e-1];if(!o)return;let i=o.post;if(r.test(i)){let t=i.match(r).join(""),e=n[n.length-1];e.post=t+e.post,o.post=o.post.replace(r,"")}},P=function(t,e,n,r){let[o,i,s]=e;0===i||s===r[o].length?O(n):(O(n),O([t[e[1]]])),function(t,e,n){let r=t[e];if(0!==e||!j(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(t=>t.toUpperCase()));let o=t[e];o.tags.has("ProperNoun")||o.tags.has("Acronym")||j(o.text)&&o.text.length>1&&(o.text=(i=o.text,i.replace(/^\p{Lu}/u,(t=>t.toLowerCase()))));var i}(t,i,n),E(t,i,n)};let _=0;const S=t=>(t=t.length<3?"0"+t:t).length<3?"0"+t:t;var A=function(t){let[e,n]=t.index||[0,0];_+=1,_=_>46655?0:_,e=e>46655?0:e,n=n>1294?0:n;let r=S(_.toString(36));r+=S(e.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,r+=o,r+=parseInt(36*Math.random(),10).toString(36),t.normal+"|"+r.toUpperCase()};const T=function(t){if(t.has("@hasContraction")&&"function"==typeof t.contractions){t.grow("@hasContraction").contractions().expand()}},$=t=>"[object Array]"===Object.prototype.toString.call(t),C=function(t,e,n){const{document:r,world:o}=e;e.uncache();let i=e.fullPointer,s=e.fullPointer;e.forEach(((l,a)=>{let c=l.fullPointer[0],[u]=c,h=r[u],f=function(t,e){const{methods:n}=e;return"string"==typeof t?n.one.tokenize.fromString(t,e)[0]:"object"==typeof t&&t.isView?t.clone().docs[0]||[]:$(t)?$(t[0])?t[0]:t:[]}(t,o);0!==f.length&&(f=function(t){return t.map((t=>(t.id=A(t),t)))}(f),n?(T(e.update([c]).firstTerm()),P(h,c,f,r)):(T(e.update([c]).lastTerm()),function(t,e,n,r){let[o,,i]=e,s=(r[o]||[]).length;i{let n=e(t);t.replaceWith(n)})),t}(r,t);t=function(t,e){if("string"!=typeof t)return t;let n=e.groups();return t=t.replace(L,(t=>{let e=t.replace(/\$/,"");return n.hasOwnProperty(e)?n[e].text():t})),t}(t,r);let o=this.update(n);n=n.map((t=>t.slice(0,3)));let i=(o.docs[0]||[]).map((t=>Array.from(t.tags)));if("string"==typeof t&&(t=this.fromText(t).compute("id")),r.insertAfter(t),o.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(o);let s=r.toView(n).compute(["index","lexicon"]);return s.world.compute.preTagger&&s.compute("preTagger"),e.tags&&s.terms().forEach(((t,e)=>{t.tagSafe(i[e])})),e.case&&s.docs[0]&&s.docs[0][0]&&0===s.docs[0][0].index[1]&&(s.docs[0][0].text=s.docs[0][0].text.replace(/\w\S*/g,(t=>t.charAt(0).toUpperCase()+t.substring(1).toLowerCase()))),s},V.replace=function(t,e,n){if(t&&!e)return this.replaceWith(t,n);let r=this.match(t);return r.found?(this.soften(),r.replaceWith(e,n)):this};var q=V;var F=function(t,e){e.forEach((e=>{let[n,r,o]=e,i=o-r;t[n]&&(o===t[n].length&&o>1&&function(t,e){let n=t.length-1,r=t[n],o=t[n-e];o&&r&&(o.post+=r.post,o.post=o.post.replace(/ +([.?!,;:])/,"$1"),o.post=o.post.replace(/[,;:]+([.?!])/,"$1"))}(t[n],i),t[n].splice(r,i))}));for(let e=t.length-1;e>=0;e-=1)if(0===t[e].length&&(t.splice(e,1),e===t.length&&t[e-1])){let n=t[e-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return t};const G={remove:function(t){const{indexN:e}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;t&&(n=this,r=this.match(t));let o=!n.ptrs;if(r.has("@hasContraction")&&r.contractions){r.grow("@hasContraction").contractions().expand()}let i=n.fullPointer,s=r.fullPointer.reverse(),l=F(this.document,s);return i=function(t,e){return t=t.map((t=>{let[n]=t;return e[n]?(e[n].forEach((e=>{let n=e[2]-e[1];t[1]<=e[1]&&t[2]>=e[2]&&(t[2]-=n)})),t):t})),t.forEach(((e,n)=>{if(0===e[1]&&0==e[2])for(let e=n+1;et[2]-t[1]>0))).map((t=>(t[3]=null,t[4]=null,t)))}(i,e(s)),n.ptrs=i,n.document=l,n.compute("index"),o&&(n.ptrs=void 0),t?n.toView(i):(this.ptrs=[],n.none())}};G.delete=G.remove;var D=G;const B={pre:function(t,e){return void 0===t&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===e?r.pre+=t:r.pre=t})),this)},post:function(t,e){if(void 0===t){let t=this.docs[this.docs.length-1];return t[t.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===e?r.post+=t:r.post=t})),this},trim:function(){if(!this.found)return this;let t=this.docs,e=t[0][0];e.pre=e.pre.trimStart();let n=t[t.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((t=>{t.forEach(((e,n)=>{0!==n&&(e.pre=""),t[n+1]&&(e.post="-")}))})),this},dehyphenate:function(){const t=/[-–—]/;return this.docs.forEach((e=>{e.forEach((e=>{t.test(e.post)&&(e.post=" ")}))})),this},toQuotations:function(t,e){return t=t||'"',e=e||'"',this.docs.forEach((n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post})),this},toParentheses:function(t,e){return t=t||"(",e=e||")",this.docs.forEach((n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post})),this}};B.deHyphenate=B.dehyphenate,B.toQuotation=B.toQuotations;var U=B;var M={alpha:(t,e)=>t.normale.normal?1:0,length:(t,e)=>{let n=t.normal.trim().length,r=e.normal.trim().length;return nr?-1:0},wordCount:(t,e)=>t.wordse.words?-1:0,sequential:(t,e)=>t[0]e[0]?-1:t[1]>e[1]?1:-1,byFreq:function(t){let e={};return t.forEach((t=>{e[t.normal]=e[t.normal]||0,e[t.normal]+=1})),t.sort(((t,n)=>{let r=e[t.normal],o=e[n.normal];return ro?-1:0})),t}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),I=new Set(["freq","frequency","topk","repeats"]),R=new Set(["alpha","alphabetical"]);var Q={unique:function(){let t=new Set;return this.filter((e=>{let n=e.text("machine");return!t.has(n)&&(t.add(n),!0)}))},reverse:function(){let t=this.pointer||this.docs.map(((t,e)=>[e]));return t=[].concat(t),t=t.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(t)},sort:function(t){let{docs:e,pointer:n}=this;if(this.uncache(),"function"==typeof t)return function(t,e){let n=t.fullPointer;return n=n.sort(((n,r)=>(n=t.update([n]),r=t.update([r]),e(n,r)))),t.ptrs=n,t}(this,t);t=t||"alpha";let r=n||e.map(((t,e)=>[e])),o=e.map(((t,e)=>({index:e,words:t.length,normal:t.map((t=>t.machine||t.normal||"")).join(" "),pointer:r[e]})));return W.has(t)&&(t="sequential"),R.has(t)&&(t="alpha"),I.has(t)?(o=M.byFreq(o),this.update(o.map((t=>t.pointer)))):"function"==typeof M[t]?(o=o.sort(M[t]),this.update(o.map((t=>t.pointer)))):this}};const H=function(t,e){if(t.length>0){let e=t[t.length-1],n=e[e.length-1];!1===/ /.test(n.post)&&(n.post+=" ")}return t=t.concat(e)};var Z={concat:function(t){if("string"==typeof t){let e=this.fromText(t);if(this.found&&this.ptrs){let t=this.fullPointer,n=t[t.length-1][0];this.document.splice(n,0,...e.document)}else this.document=this.document.concat(e.document);return this.all().compute("index")}if("object"==typeof t&&t.isView)return function(t,e){if(t.document===e.document){let n=t.fullPointer.concat(e.fullPointer);return t.toView(n).compute("index")}return e.fullPointer.forEach((e=>{e[0]+=t.document.length})),t.document=H(t.document,e.docs),t.all()}(this,t);if(e=t,"[object Array]"===Object.prototype.toString.call(e)){let e=H(this.document,t);return this.document=e,this.all()}var e;return this}};var K={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let t=this.ptrs;return!t||t.length<1||(t=t.map((t=>t.slice(0,3))),this.ptrs=t),this}};const J=Object.assign({},{toLowerCase:function(){return this.termList().forEach((t=>{t.text=t.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((t=>{t.text=t.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((t=>{t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(t=>t.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((t=>{t.forEach(((e,n)=>{0!==n&&(e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(t=>t.toUpperCase()))),n!==t.length-1&&(e.post="")}))})),this}},N,q,D,U,Q,Z,K);var X=function(t){Object.assign(t.prototype,J)};const Y={id:function(t){let e=t.docs;for(let t=0;t(t.implicit=t.text,t.machine=t.text,t.pre="",t.post="",t.text="",t.normal="",t.index=[r,o+e],t))),n[0]&&(n[0].pre=t[r][o].pre,n[n.length-1].post=t[r][o].post,n[0].text=t[r][o].text,n[0].normal=t[r][o].normal),t[r].splice(o,1,...n))};const rt=/'/,ot=new Set(["what","how","when","where","why"]),it=new Set(["be","go","start","think","need"]),st=new Set(["been","gone"]);var lt=function(t,e){let n=t[e].normal.split(rt)[0];if(ot.has(n))return[n,"did"];if(t[e+1]){if(st.has(t[e+1].normal))return[n,"had"];if(it.has(t[e+1].normal))return[n,"would"]}return null};var at=function(t,e){if("ain't"===t[e].normal||"aint"===t[e].normal)return null;return[t[e].normal.replace(/n't/,""),"not"]};const ct=/'/;var ut=(t,e)=>["je",t[e].normal.split(ct)[1]],ht=(t,e)=>{let n=t[e].normal.split(ct)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},ft=(t,e)=>{let n=t[e].normal.split(ct)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const pt=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,dt=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,mt=/^[0-9]{3}-[0-9]{4}$/;var gt=function(t,e){let n=t[e],r=n.text.match(pt);return null!==r?!0===n.tags.has("PhoneNumber")||mt.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(dt),null!==r?[r[1],"to",r[4]]:null)};const wt=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,vt=new Set(["st","nd","rd","th","am","pm","max","°","s","e"]);var yt=function(t,e){let n=t[e].text.match(wt);if(null!==n){let t=n[2].toLowerCase().trim();return vt.has(t)?null:[n[1],t]}return null};const bt=/'/,xt=/^[0-9][^-–—]*[-–—].*?[0-9]/,jt=function(t,e,n,r){let o=e.update();o.document=[t];let i=n+r;n>0&&(n-=1),t[i]&&(i+=1),o.ptrs=[[0,n,i]]},Et={t:(t,e)=>at(t,e),d:(t,e)=>lt(t,e)},Ot={j:(t,e)=>ut(t,e),l:(t,e)=>ht(t,e),d:(t,e)=>ft(t,e)},kt=function(t,e,n,r){for(let o=0;o{let{world:e,document:n}=t;const{model:r,methods:o}=e;let i=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,s)=>{for(let l=r.length-1;l>=0;l-=1){let a=null,c=null;!0===bt.test(r[l].normal)&&([a,c]=r[l].normal.split(bt));let u=kt(i,r[l],a,c);!u&&Et.hasOwnProperty(c)&&(u=Et[c](r,l,e)),!u&&Ot.hasOwnProperty(a)&&(u=Ot[a](r,l)),u?(u=Pt(u,t),nt(n,[s,l],u),jt(n[s],t,l,u.length)):xt.test(r[l].normal)?(u=gt(r,l),u&&(u=Pt(u,t),nt(n,[s,l],u),o.one.setTag(u,"NumberRange",e),u[2]&&u[2].tags.has("Time")&&o.one.setTag([u[0]],"Time",e,null,"time-range"),jt(n[s],t,l,u.length))):(u=yt(r,l),u&&(u=Pt(u,t),nt(n,[s,l],u),o.one.setTag([u[1]],"Unit",e,null,"contraction-unit")))}}))};var St={model:et,compute:{contractions:_t},hooks:["contractions"]};var At=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,s=r.one._multiCache||{},l=r.one.lexicon||{};let a=t[e],c=a.machine||a.normal;return void 0!==t[e+1]&&!0===s[c]?function(t,e,n,r,o){let i=e+4>t.length?t.length-e:4,s=t[e].machine||t[e].normal;for(let l=1;ls.hasOwnProperty(t)));if(t){return i([l],s[t],n,!1,"1-lexicon-alias"),!0}}if(!0===Tt.test(a)){let t=a.replace(Tt,"");if(s.hasOwnProperty(t)&&t.length>3&&$t.has(s[t]))return i([l],s[t],n,!1,"1-lexicon-prefix"),!0}return null};var zt={lexicon:function(t){const e=t.world;t.docs.forEach((t=>{for(let n=0;n{let o=t[r],i=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);i.length>1&&(n[i[0]]=!0),e[r]=e[r]||o})),delete e[""],delete e.null,delete e[" "],{lex:e,_multi:n}};var Lt={addWords:function(t){const e=this.world(),{methods:n,model:r}=e;if(t)if(Object.keys(t).forEach((e=>{"string"==typeof t[e]&&t[e].startsWith("#")&&(t[e]=t[e].replace(/^#/,""))})),n.two.expandLexicon){let{lex:o,_multi:i}=n.two.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else if(n.one.expandLexicon){let{lex:o,_multi:i}=n.one.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else Object.assign(r.one.lexicon,t)}};var Vt={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Nt}},compute:zt,lib:Lt,hooks:["lexicon"]};var qt=function(t,e){let n=[{}],r=[null],o=[0],i=[],s=0;t.forEach((function(t){let o=0,i=function(t,e){const{methods:n,model:r}=e;let o=n.one.tokenize.splitTerms(t,r).map((t=>n.one.tokenize.splitWhitespace(t,r)));return o.map((t=>t.text.toLowerCase()))}(t,e);for(let t=0;t0&&!n[s].hasOwnProperty(a);)s=o[s];if(n.hasOwnProperty(s)){let t=n[s][a];o[c]=t,r[t]&&(r[c]=r[c]||[],r[c]=r[c].concat(r[t]))}else o[c]=0}}return{goNext:n,endAs:r,failTo:o}};const Ft=function(t,e,n){let r=0,o=[];for(let i=0;i0&&(void 0===e.goNext[r]||!e.goNext[r].hasOwnProperty(s));)r=e.failTo[r]||0;if(e.goNext[r].hasOwnProperty(s)&&(r=e.goNext[r][s],e.endAs[r])){let n=e.endAs[r];for(let e=0;e0&&(r=r.concat(a))}return t.update(r)};const Bt=(t,e)=>{for(let n=t.length-1;n>=0;n-=1)if(t[n]!==e)return t=t.slice(0,n+1),t;return t};var Ut=function(t){return t.goNext=t.goNext.map((t=>{if(0!==Object.keys(t).length)return t})),t.goNext=Bt(t.goNext,void 0),t.failTo=Bt(t.failTo,0),t.endAs=Bt(t.endAs,null),t};const Mt={buildTrie:function(t){const e=qt(t,this.world());return Ut(e)}};Mt.compile=Mt.buildTrie;var Wt={api:function(t){t.prototype.lookup=function(t,e={}){if(!t)return this.none();"string"==typeof t&&(t=[t]);let n=(r=t,"[object Object]"===Object.prototype.toString.call(r)?t:qt(t,this.world));var r;let o=Dt(this,n,e);return o=o.settle(),o}},lib:Mt};const It=function(t,e){return e?(t.forEach((t=>{let n=t[0];e[n]&&(t[0]=e[n][0],t[1]+=e[n][1],t[2]+=e[n][1])})),t):t},Rt=function(t,e){let{ptrs:n,byGroup:r}=t;return n=It(n,e),Object.keys(r).forEach((t=>{r[t]=It(r[t],e)})),{ptrs:n,byGroup:r}},Qt=t=>"[object Object]"===Object.prototype.toString.call(t),Ht=t=>t&&Qt(t)&&!0===t.isView,Zt=t=>t&&Qt(t)&&!0===t.isNet,Kt=function(t,e,n){const r=n.methods.one;return"number"==typeof t&&(t=String(t)),"string"==typeof t&&(t=r.killUnicode(t,n),t=r.parseMatch(t,e,n)),t};var Jt={matchOne:function(t,e,n){const r=this.methods.one;if(Ht(t))return this.intersection(t).eq(0);if(Zt(t))return this.sweep(t,{tagger:!1,matchOne:!0}).view;let o={regs:t=Kt(t,n,this.world),group:e,justOne:!0},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Rt(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},match:function(t,e,n){const r=this.methods.one;if(Ht(t))return this.intersection(t);if(Zt(t))return this.sweep(t,{tagger:!1}).view.settle();let o={regs:t=Kt(t,n,this.world),group:e},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Rt(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},has:function(t,e,n){const r=this.methods.one;if(Ht(t)){return t.fullPointer.length>0}if(Zt(t))return this.sweep(t,{tagger:!1}).view.found;let o={regs:t=Kt(t,n,this.world),group:e,justOne:!0};return r.match(this.docs,o,this._cache).ptrs.length>0},if:function(t,e,n){const r=this.methods.one;if(Ht(t))return this.filter((e=>e.intersection(t).found));if(Zt(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.if(e)}let o={regs:t=Kt(t,n,this.world),group:e,justOne:!0},i=this.fullPointer,s=this._cache||[];i=i.filter(((t,e)=>{let n=this.update([t]);return r.match(n.docs,o,s[e]).ptrs.length>0}));let l=this.update(i);return this._cache&&(l._cache=i.map((t=>s[t[0]]))),l},ifNo:function(t,e,n){const{methods:r}=this,o=r.one;if(Ht(t))return this.filter((e=>!e.intersection(t).found));if(Zt(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.ifNo(e)}t=Kt(t,n,this.world);let i=this._cache||[],s=this.filter(((n,r)=>{let s={regs:t,group:e,justOne:!0};return 0===o.match(n.docs,s,i[r]).ptrs.length}));return this._cache&&(s._cache=s.ptrs.map((t=>i[t[0]]))),s}};var Xt={before:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer);Object.keys(i).forEach((t=>{let e=i[t].sort(((t,e)=>t[1]>e[1]?1:-1))[0];e[1]>0&&o.push([e[0],0,e[1]])}));let s=this.toView(o);return t?s.match(t,e,n):s},after:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer),s=this.document;Object.keys(i).forEach((t=>{let e=i[t].sort(((t,e)=>t[1]>e[1]?-1:1))[0],[n,,r]=e;r{let i=n.before(t,e);if(i.found){let t=i.terms();r[o][1]-=t.length,r[o][3]=t.docs[0][0].id}})),this.update(r)},growRight:function(t,e,n){"string"==typeof t&&(t=this.world.methods.one.parseMatch(t,n,this.world)),t[0].start=!0;let r=this.fullPointer;return this.forEach(((n,o)=>{let i=n.after(t,e);if(i.found){let t=i.terms();r[o][2]+=t.length,r[o][4]=null}})),this.update(r)},grow:function(t,e,n){return this.growRight(t,e,n).growLeft(t,e,n)}};const Yt=function(t,e){return[t[0],t[1],e[2]]},te=(t,e,n)=>{return"string"==typeof t||(r=t,"[object Array]"===Object.prototype.toString.call(r))?e.match(t,n):t||e.none();var r},ee=function(t,e){let[n,r,o]=t;return e.document[n]&&e.document[n][r]&&(t[3]=t[3]||e.document[n][r].id,e.document[n][o-1]&&(t[4]=t[4]||e.document[n][o-1].id)),t},ne={splitOn:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=te(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),i.push(t.before),i.push(t.match),i.push(t.after)})),i=i.filter((t=>t)),i=i.map((t=>ee(t,this))),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=te(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),i.push(t.before),t.match&&t.after?i.push(Yt(t.match,t.after)):(i.push(t.match),i.push(t.after))})),i=i.filter((t=>t)),i=i.map((t=>ee(t,this))),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=te(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),t.before&&t.match?i.push(Yt(t.before,t.match)):(i.push(t.before),i.push(t.match)),i.push(t.after)})),i=i.filter((t=>t)),i=i.map((t=>ee(t,this))),this.update(i)}};ne.split=ne.splitAfter;var re=ne;const oe=Object.assign({},Jt,Xt,re);oe.lookBehind=oe.before,oe.lookBefore=oe.before,oe.lookAhead=oe.after,oe.lookAfter=oe.after,oe.notIf=oe.ifNo;var ie=function(t){Object.assign(t.prototype,oe)};const se=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,le=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,ae=/ /g,ce=t=>/^[![^]*(<[^<]*>)?\//.test(t)&&/\/[?\]+*$~]*$/.test(t),ue=function(t){return t=(t=t.map((t=>t.trim()))).filter((t=>t))};var he=function(t){let e=t.split(se),n=[];e.forEach((t=>{ce(t)?n.push(t):n=n.concat(t.split(le))})),n=ue(n);let r=[];return n.forEach((t=>{(t=>/^[![^]*(<[^<]*>)?\(/.test(t)&&/\)[?\]+*$~]*$/.test(t))(t)||ce(t)?r.push(t):r=r.concat(t.split(ae))})),r=ue(r),r};const fe=/\{([0-9]+)?(, *[0-9]*)?\}/,pe=/&&/,de=new RegExp(/^<\s*(\S+)\s*>/),me=t=>t.charAt(0).toUpperCase()+t.substring(1),ge=t=>t.charAt(t.length-1),we=t=>t.charAt(0),ve=t=>t.substring(1),ye=t=>t.substring(0,t.length-1),be=function(t){return t=ve(t),t=ye(t)},xe=function(t,e){let n={};for(let r=0;r<2;r+=1){if("$"===ge(t)&&(n.end=!0,t=ye(t)),"^"===we(t)&&(n.start=!0,t=ve(t)),("["===we(t)||"]"===ge(t))&&(n.group=null,"["===we(t)&&(n.groupStart=!0),"]"===ge(t)&&(n.groupEnd=!0),t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===we(t))){const e=de.exec(t);e.length>=2&&(n.group=e[1],t=t.replace(e[0],""))}if("+"===ge(t)&&(n.greedy=!0,t=ye(t)),"*"!==t&&"*"===ge(t)&&"\\*"!==t&&(n.greedy=!0,t=ye(t)),"?"===ge(t)&&(n.optional=!0,t=ye(t)),"!"===we(t)&&(n.negative=!0,t=ve(t)),"~"===we(t)&&"~"===ge(t)&&t.length>2&&(t=be(t),n.fuzzy=!0,n.min=e.fuzzy||.85,!1===/\(/.test(t)))return n.word=t,n;if("("===we(t)&&")"===ge(t)){pe.test(t)?(n.choices=t.split(pe),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=ve(n.choices[0]);let r=n.choices.length-1;n.choices[r]=ye(n.choices[r]),n.choices=n.choices.map((t=>t.trim())),n.choices=n.choices.filter((t=>t)),n.choices=n.choices.map((t=>t.split(/ /g).map((t=>xe(t,e))))),t=""}if("/"===we(t)&&"/"===ge(t))return t=be(t),e.caseSensitive&&(n.use="text"),n.regex=new RegExp(t),n;if("{"===we(t)&&"}"===ge(t)){if(t=be(t),n.root=t,/\//.test(t)){let t=n.root.split(/\//);n.root=t[0],n.pos=t[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==t[2]&&(n.sense=t[2])}return n}if("<"===we(t)&&">"===ge(t))return t=be(t),n.chunk=me(t),n.greedy=!0,n;if("%"===we(t)&&"%"===ge(t))return t=be(t),n.switch=t,n}return!0===fe.test(t)&&(t=t.replace(fe,((t,e,r)=>(void 0===r?(n.min=Number(e),n.max=Number(e)):(r=r.replace(/, */,""),void 0===e?(n.min=0,n.max=Number(r)):(n.min=Number(e),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===we(t)?(n.tag=ve(t),n.tag=me(n.tag),n):"@"===we(t)?(n.method=ve(t),n):"."===t?(n.anything=!0,n):"*"===t?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(t&&(t=(t=t.replace("\\*","*")).replace("\\.","."),e.caseSensitive?n.use="text":t=t.toLowerCase(),n.word=t),n)};var je=xe;const Ee=/[a-z0-9][-–—][a-z]/i;var Oe=function(t,e){let n=e.model.one.prefixes;for(let e=t.length-1;e>=0;e-=1){let r=t[e];if(r.word&&Ee.test(r.word)){let o=r.word.split(/[-–—]/g);if(n.hasOwnProperty(o[0]))continue;o=o.filter((t=>t)).reverse(),t.splice(e,1),o.forEach((n=>{let o=Object.assign({},r);o.word=n,t.splice(e,0,o)}))}}return t};const ke=function(t,e){let{all:n}=e.methods.two.transform.verb||{},r=t.root;return n?n(r,e.model):[]},Pe=function(t,e){let{all:n}=e.methods.two.transform.noun||{};return n?n(t.root,e.model):[t.root]},_e=function(t,e){let{all:n}=e.methods.two.transform.adjective||{};return n?n(t.root,e.model):[t.root]};var Se=function(t,e){return t=t.map((t=>{if(t.root)if(e.methods.two&&e.methods.two.transform){let n=[];t.pos?"Verb"===t.pos?n=n.concat(ke(t,e)):"Noun"===t.pos?n=n.concat(Pe(t,e)):"Adjective"===t.pos&&(n=n.concat(_e(t,e))):(n=n.concat(ke(t,e)),n=n.concat(Pe(t,e)),n=n.concat(_e(t,e))),n=n.filter((t=>t)),n.length>0&&(t.operator="or",t.fastOr=new Set(n))}else t.machine=t.root,delete t.id,delete t.root;return t}))};var Ae=function(t){return t=function(t){let e=0,n=null;for(let r=0;r(t.fuzzy&&t.choices&&t.choices.forEach((e=>{1===e.length&&e[0].word&&(e[0].fuzzy=!0,e[0].min=t.min)})),t)))}(t=t.map((t=>{if(void 0!==t.choices){if("or"!==t.operator)return t;if(!0===t.fuzzy)return t;!0===t.choices.every((t=>{if(1!==t.length)return!1;let e=t[0];return!0!==e.fuzzy&&!e.start&&!e.end&&void 0!==e.word&&!0!==e.negative&&!0!==e.optional&&!0!==e.method}))&&(t.fastOr=new Set,t.choices.forEach((e=>{t.fastOr.add(e[0].word)})),delete t.choices)}return t}))),t};var Te=function(t,e,n){if(null==t||""===t)return[];e=e||{},"number"==typeof t&&(t=String(t));let r=he(t);return r=r.map((t=>je(t,e))),r=Oe(r,n),r=Se(r,n),r=Ae(r),r};const $e=function(t,e){for(let n of e)if(t.has(n))return!0;return!1};var Ce=function(t,e){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(o||100))return o||100;let i,s,l,a,c,u,h=[];for(let t=0;t4)return n;l=e[i-1],a=s===l?0:1,c=h[o-1][i]+1,(u=h[o][i-1]+1)1&&i>1&&s===e[i-2]&&t[o-2]===l&&(u=h[o-2][i-2]+a)-1!==t.post.indexOf(e),Ge=(t,e)=>-1!==t.pre.indexOf(e),De={hasQuote:t=>Ne.test(t.pre)||Le.test(t.post),hasComma:t=>Fe(t,","),hasPeriod:t=>!0===Fe(t,".")&&!1===Fe(t,"..."),hasExclamation:t=>Fe(t,"!"),hasQuestionMark:t=>Fe(t,"?")||Fe(t,"¿"),hasEllipses:t=>Fe(t,"..")||Fe(t,"…")||Ge(t,"..")||Ge(t,"…"),hasSemicolon:t=>Fe(t,";"),hasColon:t=>Fe(t,":"),hasSlash:t=>/\//.test(t.text),hasHyphen:t=>Ve.test(t.post)||Ve.test(t.pre),hasDash:t=>qe.test(t.post)||qe.test(t.pre),hasContraction:t=>Boolean(t.implicit),isAcronym:t=>t.tags.has("Acronym"),isKnown:t=>t.tags.size>0,isTitleCase:t=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(t.text),isUpperCase:t=>/^\p{Lu}+$/u.test(t.text)};De.hasQuotation=De.hasQuote;var Be=De;let Ue=function(){};Ue=function(t,e,n,r){let o=function(t,e,n,r){if(!0===e.anything)return!0;if(!0===e.start&&0!==n)return!1;if(!0===e.end&&n!==r-1)return!1;if(void 0!==e.id&&e.id===t.id)return!0;if(void 0!==e.word){if(e.use)return e.word===t[e.use];if(null!==t.machine&&t.machine===e.word)return!0;if(void 0!==t.alias&&t.alias.hasOwnProperty(e.word))return!0;if(!0===e.fuzzy){if(e.word===t.root)return!0;if(ze(e.word,t.normal)>=e.min)return!0}return!(!t.alias||!t.alias.some((t=>t===e.word)))||e.word===t.text||e.word===t.normal}if(void 0!==e.tag)return!0===t.tags.has(e.tag);if(void 0!==e.method)return"function"==typeof Be[e.method]&&!0===Be[e.method](t);if(void 0!==e.pre)return t.pre&&t.pre.includes(e.pre);if(void 0!==e.post)return t.post&&t.post.includes(e.post);if(void 0!==e.regex){let n=t.normal;return e.use&&(n=t[e.use]),e.regex.test(n)}if(void 0!==e.chunk)return t.chunk===e.chunk;if(void 0!==e.switch)return t.switch===e.switch;if(void 0!==e.machine)return t.normal===e.machine||t.machine===e.machine||t.root===e.machine;if(void 0!==e.sense)return t.sense===e.sense;if(void 0!==e.fastOr){if(e.pos&&!t.tags.has(e.pos))return null;let n=t.root||t.implicit||t.machine||t.normal;return e.fastOr.has(n)||e.fastOr.has(t.text)}return void 0!==e.choices&&("and"===e.operator?e.choices.every((e=>Ue(t,e,n,r))):e.choices.some((e=>Ue(t,e,n,r))))}(t,e,n,r);return!0===e.negative?!o:o};var Me=Ue;const We=function(t,e){if(!0===t.end&&!0===t.greedy&&e.start_i+e.tn.max)return t.t=t.t+n.max,!0;if(!0===t.hasGroup){Ie(t,t.t).length=r-t.t}return t.t=r,!0};const Qe=function(t,e=0){let n=t.regs[t.r],r=!1;for(let i=0;i{let o=0,i=t.t+r+e+o;if(void 0===t.terms[i])return!1;let s=Me(t.terms[i],n,i+t.start_i,t.phrase_length);if(!0===s&&!0===n.greedy)for(let e=1;e{let r=n.every(((e,n)=>{let r=t.t+n;return void 0!==t.terms[r]&&Me(t.terms[r],e,r,t.phrase_length)}));return!0===r&&n.length>e&&(e=n.length),r}))&&e}(t);if(r){if(!0===n.negative)return null;if(!0===t.hasGroup){Ie(t,t.t).length+=r}if(!0===n.end){let e=t.phrase_length-1;if(t.t+t.start_i!==e)return null}return t.t+=r,!0}return!!n.optional||null};var Ke=function(t,e,n){let r=0;for(let o=t.t;or)&&(t.t+=r,!0))};var Je=function(t){const{regs:e}=t;let n=e[t.r],r=Object.assign({},n);if(r.negative=!1,Me(t.terms[t.t],r,t.start_i+t.t,t.phrase_length))return!1;if(n.optional){let n=e[t.r+1];if(n){if(Me(t.terms[t.t],n,t.start_i+t.t,t.phrase_length))t.r+=1;else if(n.optional&&e[t.r+2]){Me(t.terms[t.t],e[t.r+2],t.start_i+t.t,t.phrase_length)&&(t.r+=2)}}}return n.greedy?Ke(t,r,e[t.r+1]):(t.t+=1,!0)};var Xe=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=Me(r,e[t.r+1],t.start_i+t.t,t.phrase_length);if(n.negative||o){let n=t.terms[t.t+1];n&&Me(n,e[t.r+1],t.start_i+t.t,t.phrase_length)||(t.r+=1)}};var Ye=function(t){const{regs:e,phrase_length:n}=t;let r=e[t.r];return t.t=function(t,e){let n=Object.assign({},t.regs[t.r],{start:!1,end:!1}),r=t.t;for(;t.tt.t?null:!0!==r.end||t.start_i+t.t===n||null};var tn=function(t){let e=t.terms[t.t],n=t.regs[t.r];if(e.implicit&&t.terms[t.t+1]){if(!t.terms[t.t+1].implicit)return;n.word===e.normal&&(t.t+=1),"hasContraction"===n.method&&(t.t+=1)}};var en=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=t.t;if(n.optional&&e[t.r+1]&&n.negative)return!0;if(n.optional&&e[t.r+1]&&Xe(t),r.implicit&&t.terms[t.t+1]&&tn(t),t.t+=1,!0===n.end&&t.t!==t.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Ye(t))return null}return!0===t.hasGroup&&function(t,e){let n=t.regs[t.r];const r=Ie(t,e);t.t>1&&n.greedy?r.length+=t.t-e:r.length++}(t,o),!0};var nn=function(t,e,n,r){if(0===t.length||0===e.length)return null;let o={t:0,terms:t,r:0,regs:e,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;o.r!t.optional)))break;return null}if(!0!==t.anything||!0!==t.greedy)if(void 0===t.choices||"or"!==t.operator)if(void 0===t.choices||"and"!==t.operator)if(!0!==t.anything)if(!0!==We(t,o))if(t.negative){if(!Je(o))return null}else if(!0!==Me(o.terms[o.t],t,o.start_i+o.t,o.phrase_length)){if(!0!==t.optional)return null}else{if(!en(o))return null}else{if(!en(o))return null}else{if(t.negative&&t.anything)return null;if(!en(o))return null}else{if(!Ze(o))return null}else{if(!He(o))return null}else{if(!Re(o))return null}}let i=[null,n,o.t+n];if(i[1]===i[2])return null;let s={};return Object.keys(o.groups).forEach((t=>{let e=o.groups[t],r=n+e.start;s[t]=[null,r,r+e.length]})),{pointer:i,groups:s}};var rn=function(t,e){let n=[],r={};return 0===t.length||("number"==typeof e&&(e=String(e)),e?t.forEach((t=>{t.groups[e]&&n.push(t.groups[e])})):t.forEach((t=>{n.push(t.pointer),Object.keys(t.groups).forEach((e=>{r[e]=r[e]||[],r[e].push(t.groups[e])}))}))),{ptrs:n,byGroup:r}};var on=function(t,e,n){return t=t.filter((t=>{let[r,o,i]=t.pointer,s=n[r].slice(o,i);for(let t=0;t{t.groups[n][0]=e})),t},ln=function(t,e,n){let r=nn(t,e,0,t.length);return r?(r=sn(r,n),r):null};var an=function(t,e,n){n=n||[];let{regs:r,group:o,justOne:i}=e,s=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const l=r.filter((t=>!0!==t.optional&&!0!==t.negative)).length;t:for(let e=0;et&&(t=Math.abs(n-1))}}else{let t=ln(o,r,e);t&&s.push(t)}}return!0===r[r.length-1].end&&(s=s.filter((e=>{let n=e.pointer[0];return t[n].length===e.pointer[2]}))),e.notIf&&(s=on(s,e.notIf,t)),s=rn(s,o),s.ptrs.forEach((e=>{let[n,r,o]=e;e[3]=t[n][r].id,e[4]=t[n][o-1].id})),s};var cn={api:ie,methods:{one:{termMethods:Be,parseMatch:Te,match:an}},lib:{parseMatch:function(t,e){const n=this.world();let r=n.methods.one.killUnicode;return r&&(t=r(t,n)),n.methods.one.parseMatch(t,e,n)}}};const un=/^\../,hn=/^#./,fn=function(t,e){let n={},r={};return Object.keys(e).forEach((o=>{let i=e[o],s=function(t){let e="",n="";return t=t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),un.test(t)?e=``),e+=">",{start:e,end:n}}(o);"string"==typeof i&&(i=t.match(i)),i.docs.forEach((t=>{if(t.every((t=>t.implicit)))return;let e=t[0].id;n[e]=n[e]||[],n[e].push(s.start);let o=t[t.length-1].id;r[o]=r[o]||[],r[o].push(s.end)}))})),{starts:n,ends:r}};var pn={html:function(t){let{starts:e,ends:n}=fn(this,t),r="";return this.docs.forEach((t=>{for(let o=0;o{let n=t.pre||"",o=t.post||"";"some"===e.punctuation&&(n=n.replace(mn,""),wn.test(o)&&(o=" "),o=o.replace(gn,""),o=o.replace(/\?!+/,"?"),o=o.replace(/!+/,"!"),o=o.replace(/\?+/,"?"),o=o.replace(/\.{2,}/,""),t.tags.has("Abbreviation")&&(o=o.replace(/\./,""))),"some"===e.whitespace&&(n=n.replace(/\s/,""),o=o.replace(/\s+/," ")),e.keepPunct||(n=n.replace(mn,""),o="-"===o?" ":o.replace(dn,""));let i=t[e.form||"text"]||t.normal||"";"implicit"===e.form&&(i=t.implicit||t.text),"root"===e.form&&t.implicit&&(i=t.root||t.implicit||t.normal),"machine"!==e.form&&"implicit"!==e.form&&"root"!==e.form||!t.implicit||o&&vn.test(o)||(o+=" "),r+=n+i+o})),!1===n&&(r=r.trim()),!0===e.lowerCase&&(r=r.toLowerCase()),r},bn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};bn.clean=bn.normal,bn.reduced=bn.root;var xn=bn;let jn=[],En=0;for(;En<64;)jn[En]=0|4294967296*Math.sin(++En%Math.PI);function On(t){let e,n,r,o=[e=1732584193,n=4023233417,~e,~n],i=[],s=decodeURI(encodeURI(t))+"",l=s.length;for(t=--l/4+2|15,i[--t]=8*l;~l;)i[l>>2]|=s.charCodeAt(l)<<8*l--;for(En=s=0;En>4]+jn[s]+~~i[En|15&[s,5*s+1,3*s+5,7*s][l]])<<(l=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*l+s++%4])|r>>>-l),e,n])e=0|l[1],n=l[2];for(s=4;s;)o[--s]+=l[s]}for(t="";s<32;)t+=(o[s>>3]>>4*(1^s++)&15).toString(16);return t}const kn={text:!0,terms:!0};let Pn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const _n=function(t,e){return Object.assign({},t,e)},Sn={text:t=>yn(t,{keepPunct:!0},!1),normal:t=>yn(t,_n(xn.normal,{keepPunct:!0}),!1),implicit:t=>yn(t,_n(xn.implicit,{keepPunct:!0}),!1),machine:t=>yn(t,Pn,!1),root:t=>yn(t,_n(Pn,{form:"root"}),!1),hash:t=>On(yn(t,{keepPunct:!0},!1)),offset:t=>{let e=Sn.text(t).length;return{index:t[0].offset.index,start:t[0].offset.start,length:e}},terms:t=>t.map((t=>{let e=Object.assign({},t);return e.tags=Array.from(t.tags),e})),confidence:(t,e,n)=>e.eq(n).confidence(),syllables:(t,e,n)=>e.eq(n).syllables(),sentence:(t,e,n)=>e.eq(n).fullSentence().text(),dirty:t=>t.some((t=>!0===t.dirty))};Sn.sentences=Sn.sentence,Sn.clean=Sn.normal,Sn.reduced=Sn.root;const An={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},kn,r)).offset&&n.compute("offset"),n.docs.map(((t,e)=>{let o={};return Object.keys(r).forEach((i=>{r[i]&&Sn[i]&&(o[i]=Sn[i](t,n,e))})),o})));var n,r;return"number"==typeof t?e[t]:e}};An.data=An.json;var Tn=An;var $n=function(t){console.log("%c -=-=- ","background-color:#6699cc;"),t.forEach((t=>{console.groupCollapsed(t.text());let e=t.docs[0].map((t=>{let e=t.text||"-";return t.implicit&&(e="["+t.implicit+"]"),{text:e,tags:"["+Array.from(t.tags).join(", ")+"]"}}));console.table(e,["text","tags"]),console.groupEnd()}))};var Cn={green:t=>"[32m"+t+"[0m",red:t=>"[31m"+t+"[0m",blue:t=>"[34m"+t+"[0m",magenta:t=>"[35m"+t+"[0m",cyan:t=>"[36m"+t+"[0m",yellow:t=>"[33m"+t+"[0m",black:t=>"[30m"+t+"[0m",dim:t=>"[2m"+t+"[0m",i:t=>"[3m"+t+"[0m"};var zn=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(Cn.blue("\n ──────")),e.forEach((e=>{console.log(Cn.blue("\n ┌─────────")),e.forEach((e=>{let r=[...e.tags||[]],o=e.text||"-";e.sense&&(o=`{${e.normal}/${e.sense}}`),e.implicit&&(o="["+e.implicit+"]"),o=Cn.yellow(o);let i="'"+o+"'";if(e.reference){let n=t.update([e.reference]).text("normal");i+=` - ${Cn.dim(Cn.i("["+n+"]"))}`}i=i.padEnd(18);let s=Cn.blue(" │ ")+Cn.i(i)+" - "+function(t,e){return e.one.tagSet&&(t=t.map((t=>{if(!e.one.tagSet.hasOwnProperty(t))return t;const n=e.one.tagSet[t].color||"blue";return Cn[n](t)}))),t.join(", ")}(r,n);console.log(s)}))}))};var Nn=function(t){let{docs:e}=t;console.log(""),e.forEach((t=>{let e=[];t.forEach((t=>{"Noun"===t.chunk?e.push(Cn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(Cn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(Cn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(Cn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)})),console.log(e.join(" "),"\n")}))};var Ln=function(t){if(!t.found)return;let e={};t.fullPointer.forEach((t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)})),Object.keys(e).forEach((n=>{let r=t.update([[Number(n)]]).text();t.update(e[n]).json({offset:!0}).forEach(((t,e)=>{r=function(t,e,n){let r=((t,e,n)=>{let r=9*n,o=e.start+r,i=o+e.length;return[t.substring(0,o),t.substring(o,i),t.substring(i,t.length)]})(t,e,n);return`${r[0]}${Cn.blue(r[1])}${r[2]}`}(r,t.offset,e)})),console.log(r)}))};var Vn=function(t={}){let e=this;if("string"==typeof t){let e={};e[t]=!0,t=e}return"undefined"!=typeof window&&window.document?($n(e),e):(!1!==t.tags&&(zn(e),console.log("\n")),!0===t.chunks&&(Nn(e),console.log("\n")),!0===t.highlight&&(Ln(e),console.log("\n")),e)};const qn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var Fn=function(t,e){let n=function(t,e){let n={};return Object.keys(e).forEach((r=>{t.match(r).fullPointer.forEach((t=>{n[t[3]]={fn:e[r],end:t[2]}}))})),n}(t,e),r="";return t.docs.forEach(((e,o)=>{for(let i=0;it.reduce(((t,e)=>t+e.pre+e.text+e.post),"").trim()));return t.filter((t=>t))}if("freq"===t||"frequency"===t||"topk"===t)return function(t){let e={};t.forEach((t=>{e[t]=e[t]||0,e[t]+=1}));let n=Object.keys(e).map((t=>({normal:t,count:e[t]})));return n.sort(((t,e)=>t.count>e.count?-1:0))}(this.json({normal:!0}).map((t=>t.normal)));if("terms"===t){let t=[];return this.docs.forEach((e=>{let n=e.terms.map((t=>t.text));n=n.filter((t=>t)),t=t.concat(n)})),t}return"tags"===t?this.docs.map((t=>t.reduce(((t,e)=>(t[e.implicit||e.normal]=Array.from(e.tags),t)),{}))):"debug"===t?this.debug():this.text()},wrap:function(t){return Fn(this,t)}};var Dn=Gn;var Bn={text:function(t){let e={};var n;if(t&&"string"==typeof t&&xn.hasOwnProperty(t)?e=Object.assign({},xn[t]):t&&(n=t,"[object Object]"===Object.prototype.toString.call(n))&&(e=Object.assign({},t)),void 0===e.keepSpace&&this.pointer&&(e.keepSpace=!1),void 0===e.keepPunct&&this.pointer){let t=this.pointer[0];t&&t[1]?e.keepPunct=!1:e.keepPunct=!0}return void 0===e.keepPunct&&(e.keepPunct=!0),void 0===e.keepSpace&&(e.keepSpace=!0),function(t,e){let n="";if(!t||!t[0]||!t[0][0])return n;for(let r=0;ro||o<=n&&i>n},Rn=function(t){let e={};return t.forEach((t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)})),e};var Qn=function(t,e){let n=Rn(e),r=[];return t.forEach((t=>{let[e]=t,o=n[e]||[];if(o=o.filter((e=>function(t,e){return t[1]<=e[1]&&e[2]<=t[2]}(t,e))),0===o.length)return void r.push({passthrough:t});o=o.sort(((t,e)=>t[1]-e[1]));let i=t;o.forEach(((t,e)=>{let n=function(t,e){let[n,r]=t,o=e[1],i=e[2],s={};if(ri&&(s.after=[n,i,t[2]]),s}(i,t);o[e+1]?(r.push({before:n.before,match:n.match}),n.after&&(i=n.after)):r.push(n)}))})),r};var Hn=function(t,e){let n=[];return t.forEach(((r,o)=>{if(!r)return;let[i,s,l,a,c]=r,u=e[i]||[];if(void 0===s&&(s=0),void 0===l&&(l=u.length),!a||u[s]&&u[s].id===a)u=u.slice(s,l);else{let n=function(t,e,n){for(let r=0;r<20;r+=1){if(e[n-r]){let o=e[n-r].findIndex((e=>e.id===t));if(-1!==o)return[n-r,o]}if(e[n+r]){let o=e[n+r].findIndex((e=>e.id===t));if(-1!==o)return[n+r,o]}}return null}(a,e,i);if(null!==n){let r=l-s;u=e[n[0]].slice(n[1],n[1]+r);let i=u[0]?u[0].id:null;t[o]=[n[0],n[1],n[1]+r,i]}}0!==u.length&&s!==l&&(c&&u[u.length-1].id!==c&&(u=function(t,e){let[n,r,,,o]=t,i=e[n],s=i.findIndex((t=>t.id===o));return-1===s?(t[2]=e[n].length,t[4]=i.length?i[i.length-1].id:null):t[2]=s,e[n].slice(r,t[2]+1)}(r,e)),n.push(u))})),n=n.filter((t=>t.length>0)),n};var Zn={one:{termList:function(t){let e=[];for(let n=0;n{let[e]=t;if(1===r[e].length)return void o.push(t);let n=r[e].filter((e=>In(t,e)));n.push(t);let i=function(t){let e=t[0][1],n=t[0][2];return t.forEach((t=>{t[1]n&&(n=t[2])})),[t[0][0],e,n]}(n);o.push(i)})),o=function(t){let e={};for(let n=0;n{t.passthrough&&n.push(t.passthrough),t.before&&n.push(t.before),t.after&&n.push(t.after)})),n};var Xn=function(t,e){let n=Rn(e),r=[];return t.forEach((t=>{let e=n[t[0]]||[];e=e.filter((e=>In(t,e))),0!==e.length&&e.forEach((e=>{let n=function(t,e){let n=t[1]e[2]?e[2]:t[2];return n{return"string"==typeof t||(n=t,"[object Array]"===Object.prototype.toString.call(n))?e.match(t):t||e.none();var n},tr=function(t,e){return t.map((t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t}))},er={union:function(t){t=Yn(t,this);let e=Kn(this.fullPointer,t.fullPointer);return e=tr(e,this.document),this.toView(e)}};er.and=er.union,er.intersection=function(t){t=Yn(t,this);let e=Xn(this.fullPointer,t.fullPointer);return e=tr(e,this.document),this.toView(e)},er.not=function(t){t=Yn(t,this);let e=Jn(this.fullPointer,t.fullPointer);return e=tr(e,this.document),this.toView(e)},er.difference=er.not,er.complement=function(){let t=this.all(),e=Jn(t.fullPointer,this.fullPointer);return e=tr(e,this.document),this.toView(e)},er.settle=function(){let t=this.fullPointer;return t.forEach((e=>{t=Kn(t,[e])})),t=tr(t,this.document),this.update(t)};var nr=function(t){Object.assign(t.prototype,er)},rr={methods:Zn,api:nr};var or=function(t){t.prototype.sweep=function(t,e={}){const{world:n,docs:r}=this,{methods:o}=n;let i=o.one.bulkMatch(r,t,this.methods,e);!1!==e.tagger&&o.one.bulkTagger(i,r,this.world),i=i.map((t=>{let e=t.pointer,n=r[e[0]][e[1]],o=e[2]-e[1];return n.index&&(t.pointer=[n.index[0],n.index[1],e[1]+o]),t}));let s=i.map((t=>t.pointer));return i=i.map((t=>(t.view=this.update([t.pointer]),delete t.regs,delete t.needs,delete t.pointer,delete t._expanded,t))),{view:this.update(s),found:i}}};const ir=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var sr=function(t,e){const n=e.methods.one.parseMatch;return t.forEach((t=>{t.regs=n(t.match,{},e),"string"==typeof t.ifNo&&(t.ifNo=[t.ifNo]),t.notIf&&(t.notIf=n(t.notIf,{},e)),t.needs=function(t){let e=[];return t.forEach((t=>{e.push(ir(t)),"and"===t.operator&&t.choices&&t.choices.forEach((t=>{t.forEach((t=>{e.push(ir(t))}))}))})),e.filter((t=>t))}(t.regs);let{wants:r,count:o}=function(t){let e=[],n=0;return t.forEach((t=>{"or"!==t.operator||t.optional||t.negative||(t.fastOr&&Array.from(t.fastOr).forEach((t=>{e.push(t)})),t.choices&&t.choices.forEach((t=>{t.forEach((t=>{let n=ir(t);n&&e.push(n)}))})),n+=1)})),{wants:e,count:n}}(t.regs);t.wants=r,t.minWant=o,t.minWords=t.regs.filter((t=>!t.optional)).length})),t};var lr=function(t,e){t=sr(t,e);let n={};t.forEach((t=>{t.needs.forEach((e=>{n[e]=n[e]||[],n[e].push(t)})),t.wants.forEach((e=>{n[e]=n[e]||[],n[e].push(t)}))})),Object.keys(n).forEach((t=>{let e={};n[t]=n[t].filter((t=>!e[t.match]&&(e[t.match]=!0,!0)))}));let r=t.filter((t=>0===t.needs.length&&0===t.wants.length));return{hooks:n,always:r}};var ar=function(t,e){return t.map(((n,r)=>{let o=[];Object.keys(e).forEach((n=>{t[r].has(n)&&(o=o.concat(e[n]))}));let i={};return o=o.filter((t=>!i[t.match]&&(i[t.match]=!0,!0))),o}))};var cr=function(t,e){return t.map(((t,n)=>{let r=e[n];return t=(t=(t=t.filter((t=>t.needs.every((t=>r.has(t)))))).filter((t=>void 0===t.ifNo||!0!==t.ifNo.some((t=>r.has(t)))))).filter((t=>{if(0===t.wants.length)return!0;return t.wants.filter((t=>r.has(t))).length>=t.minWant}))}))};var ur=function(t,e,n,r,o){let i=[];for(let n=0;n0&&(a.ptrs.forEach((t=>{t[0]=n;let e=Object.assign({},l,{pointer:t});void 0!==l.unTag&&(e.unTag=l.unTag),i.push(e)})),!0===o.matchOne))return[i[0]]}return i};var hr=function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=ar(o,e.hooks);return i=cr(i,o),e.always.length>0&&(i=i.map((t=>t.concat(e.always)))),i=function(t,e){return t.map(((t,n)=>{let r=e[n].length;return t=t.filter((t=>r>=t.minWords)),t}))}(i,t),ur(i,t,o,n,r)};var fr=function(t,e,n){let r=n.one.tagSet;if(!r.hasOwnProperty(e))return!0;let o=r[e].not||[];for(let e=0;e{if(!t.tag&&!t.chunk&&!t.unTag)return;let o=t.reason||t.match,c=i([t.pointer],e)[0];if(!0===t.safe){if(!1===fr(c,t.tag,r))return;if("-"===c[c.length-1].post)return}if(void 0!==t.tag&&(s(c,t.tag,n,t.safe,`[post] '${o}'`),"Noun"===t.tag&&a)){let e=c[c.length-1];a(e.text)?s([e],"Plural",n,t.safe,"quick-plural"):s([e],"Singular",n,t.safe,"quick-singular")}void 0!==t.unTag&&l(c,t.unTag,n,t.safe,o),t.chunk&&c.forEach((e=>e.chunk=t.chunk))}))},dr={lib:{buildNet:function(t){let e=this.methods().one.buildNet(t,this.world());return e.isNet=!0,e}},api:or,methods:{one:{buildNet:lr,bulkMatch:hr,bulkTagger:pr}}};const mr=/ /,gr=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},wr=function(t,e,n,r){if(!0===t.tags.has(e))return null;if("."===e)return null;let o=n[e];if(o){if(o.not&&o.not.length>0)for(let e=0;e0)for(let e=0;e{let r=t.map((t=>t.text||"["+t.implicit+"]")).join(" ");var o;"string"!=typeof e&&e.length>2&&(e=e.slice(0,2).join(", #")+" +"),e="string"!=typeof e?e.join(", #"):e,console.log(` ${(o=r,"[33m[3m"+o+"[0m").padEnd(24)} [32m→[0m #${e.padEnd(22)} ${(t=>"[3m"+t+"[0m")(n)}`)})(t,e,o),!0!=(l=e,"[object Array]"===Object.prototype.toString.call(l)))if("string"==typeof e)if(e=e.trim(),mr.test(e))!function(t,e,n,r){let o=e.split(mr);t.forEach(((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),wr(t,i,n,r))}))}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nvr(t,e,n,r)))};var yr=vr;var br=function(t,e,n){e=e.trim().replace(/^#/,"");for(let r=0;r0)for(let t=0;t/),n=[];e.forEach((t=>{n=n.concat(function(t){if(!(t=t.trim()))return null;if(/^\[/.test(t)&&/\]$/.test(t)){let e=(t=(t=t.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return e=e.map((t=>t.trim())).filter((t=>t)),e=e.map((t=>xr({id:t}))),e}return[xr({id:t})]}(t))})),n=n.filter((t=>t));let r=n[0];for(let t=1;t{let n=[],r=[t];for(;r.length>0;){let t=r.pop();n.push(t),t.children&&t.children.forEach((n=>{e&&e(t,n),r.push(n)}))}return n},kr=t=>"[object Array]"===Object.prototype.toString.call(t),Pr=t=>(t=t||"").trim(),_r=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach((t=>{if(!t.trim()||jr.test(t))return;let e=(t=>{const e=/^( {2}|\t)/;let n=0;for(;e.test(t);)t=t.replace(e,""),n+=1;return n})(t);n.push({indent:e,node:Er(t)})}));let r=function(t){let e={children:[]};return t.forEach(((n,r)=>{0===n.indent?e.children=e.children.concat(n.node):t[r-1]&&function(t,e){let n=t[e].indent;for(;e>=0;e-=1)if(t[e].indent{e[t.id]=t}));let n=xr({});return t.forEach((t=>{if((t=xr(t)).parent)if(e.hasOwnProperty(t.parent)){let n=e[t.parent];delete t.parent,n.children.push(t)}else console.warn(`[Grad] - missing node '${t.parent}'`);else n.children.push(t)})),n}(t):(Or(e=t).forEach(xr),e);var e},Sr=function(t,e){let n="-> ";e&&(n=(t=>"[2m"+t+"[0m")("→ "));let r="";return Or(t).forEach(((t,o)=>{let i=t.id||"";if(e&&(i=(t=>"[31m"+t+"[0m")(i)),0===o&&!t.id)return;let s=t._cache.parents.length;r+=" ".repeat(s)+n+i+"\n"})),r},Ar=function(t){let e=Or(t);e.forEach((t=>{delete(t=Object.assign({},t)).children}));let n=e[0];return n&&!n.id&&0===Object.keys(n.props).length&&e.shift(),e},Tr={text:Sr,txt:Sr,array:Ar,flat:Ar},$r=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Sr(t,!0)),null):Tr.hasOwnProperty(e)?Tr[e](t):t},Cr=t=>{Or(t,((t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))}))},zr=/\//;class g{constructor(t={}){Object.defineProperty(this,"json",{enumerable:!1,value:t,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(t={}){let e=this.json.props||{};return"string"==typeof t&&(e[t]=!0),this.json.props=Object.assign(e,t),this}get(t){if(t=Pr(t),!zr.test(t)){let e=this.json.children.find((e=>e.id===t));return new g(e)}let e=((t,e)=>{let n=(t=>"string"!=typeof t?t:(t=t.replace(/^\//,"")).split(/\//))(e=e||"");for(let e=0;et.id===n[e]));if(!r)return null;t=r}return t})(this.json,t)||xr({});return new g(e)}add(t,e={}){if(kr(t))return t.forEach((t=>this.add(Pr(t),e))),this;t=Pr(t);let n=xr({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=Pr(t),this.json.children=this.json.children.filter((e=>e.id!==t)),this}nodes(){return Or(this.json).map((t=>(delete(t=Object.assign({},t)).children,t)))}cache(){return(t=>{let e=Or(t,((t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],t._cache.children=t._cache.children||[],e._cache.parents=t._cache.parents.concat([t.id]))})),n={};e.forEach((t=>{t.id&&(n[t.id]=t)})),e.forEach((t=>{t._cache.parents.forEach((e=>{n.hasOwnProperty(e)&&n[e]._cache.children.push(t.id)}))})),t._cache.children=Object.keys(n)})(this.json),this}list(){return Or(this.json)}fillDown(){var t;return t=this.json,Or(t,((t,e)=>{e.props=((t,e)=>(Object.keys(e).forEach((n=>{if(e[n]instanceof Set){let r=t[n]||new Set;t[n]=new Set([...r,...e[n]])}else if((t=>t&&"object"==typeof t&&!Array.isArray(t))(e[n])){let r=t[n]||{};t[n]=Object.assign({},e[n],r)}else kr(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])})),t))(e.props,t.props)})),this}depth(){Cr(this.json);let t=Or(this.json),e=t.length>1?1:0;return t.forEach((t=>{if(0===t._cache.parents.length)return;let n=t._cache.parents.length+1;n>e&&(e=n)})),e}out(t){return Cr(this.json),$r(this.json,t)}debug(){return Cr(this.json),$r(this.json,"debug"),this}}const Nr=function(t){let e=_r(t);return new g(e)};Nr.prototype.plugin=function(t){t(this)};var Lr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Hyphenated:"cyan",Adverb:"cyan"};const Vr=function(t){if(Lr.hasOwnProperty(t.id))return Lr[t.id];if(Lr.hasOwnProperty(t.is))return Lr[t.is];let e=t._cache.parents.find((t=>Lr[t]));return Lr[e]};var qr=function(t){const e={};return t.forEach((t=>{let{not:n,also:r,is:o,novel:i}=t.props,s=t._cache.parents;r&&(s=s.concat(r)),e[t.id]={is:o,not:n,novel:i,also:r,parents:s,children:t._cache.children,color:Vr(t)}})),Object.keys(e).forEach((t=>{let n=new Set(e[t].not);e[t].not.forEach((t=>{e[t]&&e[t].children.forEach((t=>n.add(t)))})),e[t].not=Array.from(n)})),e};const Fr=function(t){return t?"string"==typeof t?[t]:t:[]};var Gr=function(t,e){return t=function(t,e){return Object.keys(t).forEach((n=>{t[n].isA&&(t[n].is=t[n].isA),t[n].notA&&(t[n].not=t[n].notA),t[n].is&&"string"==typeof t[n].is&&(e.hasOwnProperty(t[n].is)||t.hasOwnProperty(t[n].is)||(t[t[n].is]={})),t[n].not&&"string"==typeof t[n].not&&!t.hasOwnProperty(t[n].not)&&(e.hasOwnProperty(t[n].not)||t.hasOwnProperty(t[n].not)||(t[t[n].not]={}))})),t}(t,e),Object.keys(t).forEach((e=>{t[e].children=Fr(t[e].children),t[e].not=Fr(t[e].not)})),Object.keys(t).forEach((e=>{(t[e].not||[]).forEach((n=>{t[n]&&t[n].not&&t[n].not.push(e)}))})),t};var Dr=function(t,e){Object.keys(e).length>0&&(t=function(t){return Object.keys(t).forEach((e=>{t[e]=Object.assign({},t[e]),t[e].novel=!0})),t}(t)),t=Gr(t,e);const n=function(t){const e=Object.keys(t).map((e=>{let n=t[e];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:e,parent:n.is,props:r,children:[]}}));return Nr(e).cache().fillDown().out("array")}(Object.assign({},e,t));return qr(n)},Br={one:{setTag:yr,unTag:br,addTags:Dr}};const Ur=function(t){return"[object Array]"===Object.prototype.toString.call(t)},Mr={tag:function(t,e="",n){if(!this.found||!t)return this;let r=this.termList();if(0===r.length)return this;const{methods:o,verbose:i,world:s}=this;return!0===i&&console.log(" + ",t,e||""),Ur(t)?t.forEach((t=>o.one.setTag(r,t,s,n,e))):o.one.setTag(r,t,s,n,e),this.uncache(),this},tagSafe:function(t,e=""){return this.tag(t,e,!0)},unTag:function(t,e){if(!this.found||!t)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:o,model:i}=this;!0===o&&console.log(" - ",t,e||"");let s=i.one.tagSet;return Ur(t)?t.forEach((t=>r.one.unTag(n,t,s))):r.one.unTag(n,t,s),this.uncache(),this},canBe:function(t){t=t.replace(/^#/,"");let e=this.model.one.tagSet;if(!e.hasOwnProperty(t))return this;let n=e[t].not||[],r=[];this.document.forEach(((t,e)=>{t.forEach(((t,o)=>{n.find((e=>t.tags.has(e)))&&r.push([e,o,o+1])}))}));let o=this.update(r);return this.difference(o)}};var Wr=Mr;var Ir=function(t){Object.assign(t.prototype,Wr)};var Rr={addTags:function(t){const{model:e,methods:n}=this.world(),r=e.one.tagSet;let o=(0,n.one.addTags)(t,r);return e.one.tagSet=o,this}};const Qr=new Set(["Auxiliary","Possessive"]);var Hr=function(t){const{document:e,world:n}=t,r=n.model.one.tagSet;e.forEach((t=>{t.forEach((t=>{let e=Array.from(t.tags);t.tagRank=function(t,e){return t=t.sort(((t,n)=>{if(Qr.has(t)||!e.hasOwnProperty(n))return 1;if(Qr.has(n)||!e.hasOwnProperty(t))return-1;let r=e[t].children||[],o=r.length;return r=e[n].children||[],o-r.length})),t}(e,r)}))}))},Zr={model:{one:{tagSet:{}}},compute:{tagRank:Hr},methods:Br,api:Ir,lib:Rr};const Kr=/([.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s)/g,Jr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s$/,Xr=/((?:\r?\n|\r)+)/;var Yr=function(t){let e=[],n=t.split(Xr);for(let t=0;t0&&(o.push(i),t[e]="")}return o};const oo={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},io=RegExp("("+Object.keys(oo).join("|")+")","g"),so=RegExp("("+Object.values(oo).join("|")+")","g"),lo=function(t){if(!t)return!1;let e=t.match(so);return null!==e&&1===e.length};var ao=function(t){let e=[];for(let n=0;n(t[e]=!0,t)),{});var ko=function(t,e){let n=[],r=[];if("number"==typeof(t=t||"")&&(t=String(t)),function(t){return"[object Array]"===Object.prototype.toString.call(t)}(t))return t;const o=t.split(Eo);for(let t=0;t0?(n[n.length-1]+=i,n.push(e)):n.push(i+e),i=""):i+=e}return i&&(0===n.length&&(n[0]=""),n[n.length-1]+=i),n=bo(n),n=vo(n),n=n.filter((t=>t)),n};const Po=/\p{Letter}/u,_o=/[\p{Number}\p{Currency_Symbol}]/u,So=/^[a-z]\.([a-z]\.)+/i,Ao=/[sn]['’]$/;var To=function(t,e){let{prePunctuation:n,postPunctuation:r,emoticons:o}=e.one,i=t,s="",l="",a=Array.from(t);if(o.hasOwnProperty(t.trim()))return{str:t.trim(),pre:s,post:" "};let c=a.length;for(let t=0;t(l=t||"",""))),t=i,s=""),{str:t,pre:s,post:l}};var $o=(t,e)=>{let{str:n,pre:r,post:o}=To(t,e);return{text:n,pre:r,post:o,tags:new Set}};var Co=function(t,e){const n=e.model.one.unicode||{};let r=(t=t||"").split("");return r.forEach(((t,e)=>{n[t]&&(r[e]=n[t])})),r.join("")};var zo=function(t){let e=t=(t=(t=t||"").toLowerCase()).trim();return t=(t=(t=t.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(t)&&(t=(t=(t=t.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(t=(t=t.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(t=e),t=t.replace(/([0-9]),([0-9])/g,"$1$2")};const No=/([A-Z]\.)+[A-Z]?,?$/,Lo=/^[A-Z]\.,?$/,Vo=/[A-Z]{2,}('s|,)?$/,qo=/([a-z]\.)+[a-z]\.?$/;var Fo=function(t){return function(t){return!0===No.test(t)||!0===qo.test(t)||!0===Lo.test(t)||!0===Vo.test(t)}(t)&&(t=t.replace(/\./g,"")),t};var Go=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=zo(r),r=n(r,e),r=Fo(r),t.normal=r};var Do=function(t,e){const{methods:n,model:r}=e,{splitSentences:o,splitTerms:i,splitWhitespace:s}=n.one.tokenize;return t=o(t=t||"",e).map((t=>{let n=i(t,r);return n=n.map((t=>s(t,r))),n.forEach((t=>{Go(t,e)})),n})),t};const Bo=/[ .][A-Z]\.? *$/i,Uo=/(?:\u2026|\.{2,}) *$/,Mo=/\p{L}/u,Wo=/^[A-Z]\. $/;var Io={one:{killUnicode:Co,tokenize:{splitSentences:mo,isSentence:function(t,e){if(!1===Mo.test(t))return!1;if(!0===Bo.test(t))return!1;if(3===t.length&&Wo.test(t))return!1;if(!0===Uo.test(t))return!1;let n=t.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==e.hasOwnProperty(r)},splitTerms:ko,splitWhitespace:$o,fromString:Do}}};var Ro={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qo={},Ho={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((t=>{t[0].forEach((e=>{Qo[e]=!0,Ho[e]="Abbreviation",void 0!==t[1]&&(Ho[e]=[Ho[e],t[1]])}))}));var Zo=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out","ex"].reduce(((t,e)=>(t[e]=!0,t)),{});let Ko={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Jo={};Object.keys(Ko).forEach((function(t){Ko[t].split("").forEach((function(e){Jo[e]=t}))}));const Xo=/\//,Yo=/[a-z]\.[a-z]/i,ti=/[0-9]/;var ei=function(t,e){let n=t.normal||t.text||t.machine;const r=e.model.one.aliases;if(r.hasOwnProperty(n)&&(t.alias=t.alias||[],t.alias.push(r[n])),Xo.test(n)&&!Yo.test(n)&&!ti.test(n)){let e=n.split(Xo);e.length<=2&&e.forEach((e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))}))}return t};const ni=/^\p{Letter}+-\p{Letter}+$/u;var ri=function(t){let e=t.implicit||t.normal||t.text;e=e.replace(/['’]s$/,""),e=e.replace(/s['’]$/,"s"),e=e.replace(/([aeiou][ktrp])in'$/,"$1ing"),ni.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)};var oi=function(t){let e=t.docs,n={};for(let t=0;tai(t,ei),machine:t=>ai(t,ri),normal:t=>ai(t,Go),freq:oi,offset:ii,index:si,wordCount:li},methods:Io,model:{one:{aliases:Ro,abbreviations:Qo,prefixes:Zo,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},prePunctuation:{"#":!0,"@":!0,_:!0,"°":!0,"":!0,"":!0,"":!0,"\ufeff":!0},postPunctuation:{"%":!0,_:!0,"°":!0,"":!0,"":!0,"":!0,"\ufeff":!0},lexicon:Ho,unicode:Jo,emoticons:{"<3":!0,"3":!0,"<\\3":!0,":^P":!0,":^p":!0,":^O":!0,":^3":!0}}},hooks:["alias","machine","index","id"]};var ui={typeahead:function(t){const e=t.model.one.typeahead,n=t.docs;if(0===n.length||0===Object.keys(e).length)return;let r=n[n.length-1]||[],o=r[r.length-1];if(!o.post&&e.hasOwnProperty(o.normal)){let n=e[o.normal];o.implicit=n,o.machine=n,o.typeahead=!0,t.compute.preTagger&&t.last().unTag("*").compute(["lexicon","preTagger"])}}};const hi=function(){const t=this.docs;if(0===t.length)return this;let e=t[t.length-1]||[],n=e[e.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var fi=function(t){t.prototype.autoFill=hi};var pi=function(t,e,n){let r={},o=[],i=n.prefixes||{};return t.forEach((t=>{let s=(t=t.toLowerCase().trim()).length;e.max&&s>e.max&&(s=e.max);for(let l=e.min;l{delete r[t]})),r};const di={safe:!0,min:3};var mi={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},di,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=pi(t,e,this.world());return Object.keys(o).forEach((t=>{n.one.typeahead.hasOwnProperty(t)?delete n.one.typeahead[t]:n.one.typeahead[t]=o[t]})),this}};var gi={model:{one:{typeahead:{}}},api:fi,lib:mi,compute:ui,hooks:["typeahead"]};w.extend(tt),w.extend(Wn),w.extend(cn),w.extend(rr),w.extend(Zr),w.plugin(St),w.extend(ci),w.plugin(x),w.extend(Wt),w.extend(gi),w.extend(Vt),w.extend(dr);export{w as default};
+var t={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const e={compute:function(t){const{world:e}=this,n=e.compute;return"string"==typeof t&&n.hasOwnProperty(t)?n[t](this):(t=>"[object Array]"===Object.prototype.toString.call(t))(t)?t.forEach((r=>{e.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",t)})):"function"==typeof t?t(this):console.warn("no compute:",t),this}};var n=e;var r={forEach:function(t){return this.fullPointer.forEach(((e,n)=>{let r=this.update([e]);t(r,n)})),this},map:function(t,e){let n=this.fullPointer.map(((e,n)=>{let r=this.update([e]),o=t(r,n);return void 0===o?this.none():o}));if(0===n.length)return e||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((t=>{r=r.concat(t.fullPointer)})),this.toView(r)},filter:function(t){let e=this.fullPointer;return e=e.filter(((e,n)=>{let r=this.update([e]);return t(r,n)})),this.update(e)},find:function(t){let e=this.fullPointer.find(((e,n)=>{let r=this.update([e]);return t(r,n)}));return this.update([e])},some:function(t){return this.fullPointer.some(((e,n)=>{let r=this.update([e]);return t(r,n)}))},random:function(t=1){let e=this.fullPointer,n=Math.floor(Math.random()*e.length);return n+t>this.length&&(n=this.length-t,n=n<0?0:n),e=e.slice(n,n+t),this.update(e)}};const o={termList:function(){return this.methods.one.termList(this.docs)},terms:function(t){let e=this.match(".");return"number"==typeof t?e.eq(t):e},groups:function(t){if(t||0===t)return this.update(this._groups[t]||[]);let e={};return Object.keys(this._groups).forEach((t=>{e[t]=this.update(this._groups[t])})),e},eq:function(t){let e=this.pointer;return e||(e=this.docs.map(((t,e)=>[e]))),e[t]?this.update([e[t]]):this.none()},first:function(){return this.eq(0)},last:function(){let t=this.fullPointer.length-1;return this.eq(t)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(t,e){let n=this.pointer||this.docs.map(((t,e)=>[e]));return n=n.slice(t,e),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let t=this.fullPointer.map((t=>[t[0]]));return this.update(t).toView()},none:function(){return this.update([])},isDoc:function(t){if(!t||!t.isView)return!1;let e=this.fullPointer,n=t.fullPointer;return!e.length!==n.length&&e.every(((t,e)=>!!n[e]&&(t[0]===n[e][0]&&t[1]===n[e][1]&&t[2]===n[e][2])))},wordCount:function(){return this.docs.reduce(((t,e)=>(t+=e.filter((t=>""!==t.text)).length,t)),0)},isFull:function(){let t=this.pointer;if(!t)return!0;let e=this.document;for(let n=0;ni)return!1}return!0},getNth:function(t){return"number"==typeof t?this.eq(t):"string"==typeof t?this.if(t):this}};o.group=o.groups,o.fullSentence=o.fullSentences,o.sentence=o.fullSentences,o.lastTerm=o.lastTerms,o.firstTerm=o.firstTerms;var i=o;const s=Object.assign({},i,n,r);s.get=s.eq;var l=s;class View{constructor(e,n,r={}){[["document",e],["world",t],["_groups",r],["_cache",null],["viewType","View"]].forEach((t=>{Object.defineProperty(this,t[0],{value:t[1],writable:!0})})),this.ptrs=n}get docs(){let e=this.document;return this.ptrs&&(e=t.methods.one.getDoc(this.ptrs,this.document)),e}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:t,ptrs:e,document:n}=this,r=e||t.map(((t,e)=>[e]));return r.map((t=>{let[e,r,o,i,s]=t;return r=r||0,o=o||(n[e]||[]).length,n[e]&&n[e][r]&&(i=i||n[e][r].id,n[e][o-1]&&(s=s||n[e][o-1].id)),[e,r,o,i,s]}))}update(t){let e=new View(this.document,t);if(this._cache&&t&&t.length>0){let n=[];t.forEach(((t,e)=>{let[r,o,i]=t;(1===t.length||0===o&&this.document[r].length===i)&&(n[e]=this._cache[r])})),n.length>0&&(e._cache=n)}return e.world=this.world,e}toView(t){return new View(this.document,t||this.pointer)}fromText(t){const{methods:e}=this;let n=e.one.tokenize.fromString(t,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let t=this.document.slice(0);t=t.map((t=>t.map((t=>((t=Object.assign({},t)).tags=new Set(t.tags),t)))));let e=this.update(this.pointer);return e.document=t,e._cache=this._cache,e}}Object.assign(View.prototype,l);var a=View;const c=function(t){return t&&"object"==typeof t&&!Array.isArray(t)};function u(t,e){if(c(e))for(const n in e)c(e[n])?(t[n]||Object.assign(t,{[n]:{}}),u(t[n],e[n])):Object.assign(t,{[n]:e[n]});return t}var h=function(t,e,n,r){const{methods:o,model:i,compute:s,hooks:l}=e;t.methods&&function(t,e){for(const n in e)t[n]=t[n]||{},Object.assign(t[n],e[n])}(o,t.methods),t.model&&u(i,t.model),t.irregulars&&function(t,e){let n=t.two.models||{};Object.keys(e).forEach((t=>{e[t].pastTense&&(n.toPast&&(n.toPast.ex[t]=e[t].pastTense),n.fromPast&&(n.fromPast.ex[e[t].pastTense]=t)),e[t].presentTense&&(n.toPresent&&(n.toPresent.ex[t]=e[t].presentTense),n.fromPresent&&(n.fromPresent.ex[e[t].presentTense]=t)),e[t].gerund&&(n.toGerund&&(n.toGerund.ex[t]=e[t].gerund),n.fromGerund&&(n.fromGerund.ex[e[t].gerund]=t)),e[t].comparative&&(n.toComparative&&(n.toComparative.ex[t]=e[t].comparative),n.fromComparative&&(n.fromComparative.ex[e[t].comparative]=t)),e[t].superlative&&(n.toSuperlative&&(n.toSuperlative.ex[t]=e[t].superlative),n.fromSuperlative&&(n.fromSuperlative.ex[e[t].superlative]=t))}))}(i,t.irregulars),t.compute&&Object.assign(s,t.compute),l&&(e.hooks=l.concat(t.hooks||[])),t.api&&t.api(n),t.lib&&Object.keys(t.lib).forEach((e=>r[e]=t.lib[e])),t.tags&&r.addTags(t.tags),t.words&&r.addWords(t.words),t.mutate&&t.mutate(e)};const f=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var p=function(t,e,n){const{methods:r}=n;let o=new e([]);if(o.world=n,"number"==typeof t&&(t=String(t)),!t)return o;if("string"==typeof t){return new e(r.one.tokenize.fromString(t,n))}if(i=t,"[object Object]"===Object.prototype.toString.call(i)&&t.isView)return new e(t.document,t.ptrs);var i;if(f(t)){if(f(t[0])){let n=t.map((t=>t.map((t=>({text:t,normal:t,pre:"",post:" ",tags:new Set})))));return new e(n)}let n=function(t){return t.map((t=>t.terms.map((t=>(f(t.tags)&&(t.tags=new Set(t.tags)),t)))))}(t);return new e(n)}return o};let d=Object.assign({},t);const m=function(t,e){e&&m.addWords(e);let n=p(t,a,d);return t&&n.compute(d.hooks),n};Object.defineProperty(m,"_world",{value:d,writable:!0}),m.tokenize=function(t,e){const{compute:n}=this._world;e&&m.addWords(e);let r=p(t,a,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},m.plugin=function(t){return h(t,this._world,a,this),this},m.extend=m.plugin,m.world=function(){return this._world},m.model=function(){return this._world.model},m.methods=function(){return this._world.methods},m.hooks=function(){return this._world.hooks},m.verbose=function(t){const e="undefined"!=typeof process&&process.env?process.env:self.env||{};return e.DEBUG_TAGS="tagger"===t||!0===t||"",e.DEBUG_MATCH="match"===t||!0===t||"",e.DEBUG_CHUNKS="chunker"===t||!0===t||"",this},m.version="14.9.0";var w=m;var v=function(t){let e=t.map((t=>{let e=new Set;return t.forEach((t=>{""!==t.normal&&e.add(t.normal),t.switch&&e.add(`%${t.switch}%`),t.implicit&&e.add(t.implicit),t.machine&&e.add(t.machine),t.root&&e.add(t.root),t.alias&&t.alias.forEach((t=>e.add(t)));let n=Array.from(t.tags);for(let t=0;t/^\p{Lu}[\p{Ll}'’]/u.test(t)||/^\p{Lu}$/u.test(t),O=(t,e,n)=>{if(n.forEach((t=>t.dirty=!0)),t){let r=[e,0].concat(n);Array.prototype.splice.apply(t,r)}return t},E=function(t){let e=t[t.length-1];!e||/ $/.test(e.post)||/[-–—]/.test(e.post)||(e.post+=" ")},k=(t,e,n)=>{const r=/[-.?!,;:)–—'"]/g;let o=t[e-1];if(!o)return;let i=o.post;if(r.test(i)){let t=i.match(r).join(""),e=n[n.length-1];e.post=t+e.post,o.post=o.post.replace(r,"")}},P=function(t,e,n,r){let[o,i,s]=e;0===i||s===r[o].length?E(n):(E(n),E([t[e[1]]])),function(t,e,n){let r=t[e];if(0!==e||!j(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(t=>t.toUpperCase()));let o=t[e];o.tags.has("ProperNoun")||o.tags.has("Acronym")||j(o.text)&&o.text.length>1&&(o.text=(i=o.text,i.replace(/^\p{Lu}/u,(t=>t.toLowerCase()))));var i}(t,i,n),O(t,i,n)};let _=0;const S=t=>(t=t.length<3?"0"+t:t).length<3?"0"+t:t;var A=function(t){let[e,n]=t.index||[0,0];_+=1,_=_>46655?0:_,e=e>46655?0:e,n=n>1294?0:n;let r=S(_.toString(36));r+=S(e.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,r+=o,r+=parseInt(36*Math.random(),10).toString(36),t.normal+"|"+r.toUpperCase()};const T=function(t){if(t.has("@hasContraction")&&"function"==typeof t.contractions){t.grow("@hasContraction").contractions().expand()}},$=t=>"[object Array]"===Object.prototype.toString.call(t),C=function(t,e,n){const{document:r,world:o}=e;e.uncache();let i=e.fullPointer,s=e.fullPointer;e.forEach(((l,a)=>{let c=l.fullPointer[0],[u]=c,h=r[u],f=function(t,e){const{methods:n}=e;return"string"==typeof t?n.one.tokenize.fromString(t,e)[0]:"object"==typeof t&&t.isView?t.clone().docs[0]||[]:$(t)?$(t[0])?t[0]:t:[]}(t,o);0!==f.length&&(f=function(t){return t.map((t=>(t.id=A(t),t)))}(f),n?(T(e.update([c]).firstTerm()),P(h,c,f,r)):(T(e.update([c]).lastTerm()),function(t,e,n,r){let[o,,i]=e,s=(r[o]||[]).length;i{let n=e(t);t.replaceWith(n)})),t}(r,t);let o=r.docs[0],i=e.possessives&&o[o.length-1].tags.has("Possessive");t=function(t,e){if("string"!=typeof t)return t;let n=e.groups();return t=t.replace(L,(t=>{let e=t.replace(/\$/,"");return n.hasOwnProperty(e)?n[e].text():t})),t}(t,r);let s=this.update(n);n=n.map((t=>t.slice(0,3)));let l=(s.docs[0]||[]).map((t=>Array.from(t.tags)));if("string"==typeof t&&(t=this.fromText(t).compute("id")),r.insertAfter(t),s.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}if(r.delete(s),i){let t=r.docs[0],e=t[t.length-1];e.tags.has("Possessive")||(e.text+="'s",e.normal+="'s",e.tags.add("Possessive"))}let a=r.toView(n).compute(["index","lexicon"]);return a.world.compute.preTagger&&a.compute("preTagger"),e.tags&&a.terms().forEach(((t,e)=>{t.tagSafe(l[e])})),e.case&&a.docs[0]&&a.docs[0][0]&&0===a.docs[0][0].index[1]&&(a.docs[0][0].text=a.docs[0][0].text.replace(/\w\S*/g,(t=>t.charAt(0).toUpperCase()+t.substring(1).toLowerCase()))),a},V.replace=function(t,e,n){if(t&&!e)return this.replaceWith(t,n);let r=this.match(t);return r.found?(this.soften(),r.replaceWith(e,n)):this};var q=V;var F=function(t,e){e.forEach((e=>{let[n,r,o]=e,i=o-r;t[n]&&(o===t[n].length&&o>1&&function(t,e){let n=t.length-1,r=t[n],o=t[n-e];o&&r&&(o.post+=r.post,o.post=o.post.replace(/ +([.?!,;:])/,"$1"),o.post=o.post.replace(/[,;:]+([.?!])/,"$1"))}(t[n],i),t[n].splice(r,i))}));for(let e=t.length-1;e>=0;e-=1)if(0===t[e].length&&(t.splice(e,1),e===t.length&&t[e-1])){let n=t[e-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return t};const G={remove:function(t){const{indexN:e}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;t&&(n=this,r=this.match(t));let o=!n.ptrs;if(r.has("@hasContraction")&&r.contractions){r.grow("@hasContraction").contractions().expand()}let i=n.fullPointer,s=r.fullPointer.reverse(),l=F(this.document,s);return i=function(t,e){return t=t.map((t=>{let[n]=t;return e[n]?(e[n].forEach((e=>{let n=e[2]-e[1];t[1]<=e[1]&&t[2]>=e[2]&&(t[2]-=n)})),t):t})),t.forEach(((e,n)=>{if(0===e[1]&&0==e[2])for(let e=n+1;et[2]-t[1]>0))).map((t=>(t[3]=null,t[4]=null,t)))}(i,e(s)),n.ptrs=i,n.document=l,n.compute("index"),o&&(n.ptrs=void 0),t?n.toView(i):(this.ptrs=[],n.none())}};G.delete=G.remove;var D=G;const B={pre:function(t,e){return void 0===t&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===e?r.pre+=t:r.pre=t})),this)},post:function(t,e){if(void 0===t){let t=this.docs[this.docs.length-1];return t[t.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===e?r.post+=t:r.post=t})),this},trim:function(){if(!this.found)return this;let t=this.docs,e=t[0][0];e.pre=e.pre.trimStart();let n=t[t.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((t=>{t.forEach(((e,n)=>{0!==n&&(e.pre=""),t[n+1]&&(e.post="-")}))})),this},dehyphenate:function(){const t=/[-–—]/;return this.docs.forEach((e=>{e.forEach((e=>{t.test(e.post)&&(e.post=" ")}))})),this},toQuotations:function(t,e){return t=t||'"',e=e||'"',this.docs.forEach((n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post})),this},toParentheses:function(t,e){return t=t||"(",e=e||")",this.docs.forEach((n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post})),this}};B.deHyphenate=B.dehyphenate,B.toQuotation=B.toQuotations;var U=B;var M={alpha:(t,e)=>t.normale.normal?1:0,length:(t,e)=>{let n=t.normal.trim().length,r=e.normal.trim().length;return nr?-1:0},wordCount:(t,e)=>t.wordse.words?-1:0,sequential:(t,e)=>t[0]e[0]?-1:t[1]>e[1]?1:-1,byFreq:function(t){let e={};return t.forEach((t=>{e[t.normal]=e[t.normal]||0,e[t.normal]+=1})),t.sort(((t,n)=>{let r=e[t.normal],o=e[n.normal];return ro?-1:0})),t}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),I=new Set(["freq","frequency","topk","repeats"]),R=new Set(["alpha","alphabetical"]);var Q={unique:function(){let t=new Set;return this.filter((e=>{let n=e.text("machine");return!t.has(n)&&(t.add(n),!0)}))},reverse:function(){let t=this.pointer||this.docs.map(((t,e)=>[e]));return t=[].concat(t),t=t.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(t)},sort:function(t){let{docs:e,pointer:n}=this;if(this.uncache(),"function"==typeof t)return function(t,e){let n=t.fullPointer;return n=n.sort(((n,r)=>(n=t.update([n]),r=t.update([r]),e(n,r)))),t.ptrs=n,t}(this,t);t=t||"alpha";let r=n||e.map(((t,e)=>[e])),o=e.map(((t,e)=>({index:e,words:t.length,normal:t.map((t=>t.machine||t.normal||"")).join(" "),pointer:r[e]})));return W.has(t)&&(t="sequential"),R.has(t)&&(t="alpha"),I.has(t)?(o=M.byFreq(o),this.update(o.map((t=>t.pointer)))):"function"==typeof M[t]?(o=o.sort(M[t]),this.update(o.map((t=>t.pointer)))):this}};const H=function(t,e){if(t.length>0){let e=t[t.length-1],n=e[e.length-1];!1===/ /.test(n.post)&&(n.post+=" ")}return t=t.concat(e)};var Z={concat:function(t){if("string"==typeof t){let e=this.fromText(t);if(this.found&&this.ptrs){let t=this.fullPointer,n=t[t.length-1][0];this.document.splice(n,0,...e.document)}else this.document=this.document.concat(e.document);return this.all().compute("index")}if("object"==typeof t&&t.isView)return function(t,e){if(t.document===e.document){let n=t.fullPointer.concat(e.fullPointer);return t.toView(n).compute("index")}return e.fullPointer.forEach((e=>{e[0]+=t.document.length})),t.document=H(t.document,e.docs),t.all()}(this,t);if(e=t,"[object Array]"===Object.prototype.toString.call(e)){let e=H(this.document,t);return this.document=e,this.all()}var e;return this}};var K={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let t=this.ptrs;return!t||t.length<1||(t=t.map((t=>t.slice(0,3))),this.ptrs=t),this}};const J=Object.assign({},{toLowerCase:function(){return this.termList().forEach((t=>{t.text=t.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((t=>{t.text=t.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((t=>{t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(t=>t.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((t=>{t.forEach(((e,n)=>{0!==n&&(e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(t=>t.toUpperCase()))),n!==t.length-1&&(e.post="")}))})),this}},N,q,D,U,Q,Z,K);var X=function(t){Object.assign(t.prototype,J)};const Y={id:function(t){let e=t.docs;for(let t=0;t(t.implicit=t.text,t.machine=t.text,t.pre="",t.post="",t.text="",t.normal="",t.index=[r,o+e],t))),n[0]&&(n[0].pre=t[r][o].pre,n[n.length-1].post=t[r][o].post,n[0].text=t[r][o].text,n[0].normal=t[r][o].normal),t[r].splice(o,1,...n))};const ot=/'/,it=new Set(["what","how","when","where","why"]),st=new Set(["be","go","start","think","need"]),lt=new Set(["been","gone"]);var at=function(t,e){let n=t[e].normal.split(ot)[0];if(it.has(n))return[n,"did"];if(t[e+1]){if(lt.has(t[e+1].normal))return[n,"had"];if(st.has(t[e+1].normal))return[n,"would"]}return null};var ct=function(t,e){if("ain't"===t[e].normal||"aint"===t[e].normal)return null;return[t[e].normal.replace(/n't/,""),"not"]};const ut=/'/;var ht=(t,e)=>["je",t[e].normal.split(ut)[1]],ft=(t,e)=>{let n=t[e].normal.split(ut)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},pt=(t,e)=>{let n=t[e].normal.split(ut)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const dt=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,mt=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,gt=/^[0-9]{3}-[0-9]{4}$/;var wt=function(t,e){let n=t[e],r=n.text.match(dt);return null!==r?!0===n.tags.has("PhoneNumber")||gt.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(mt),null!==r?[r[1],"to",r[4]]:null)};const vt=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/;var bt=function(t,e,n){const r=n.model.one.numberSuffixes||{};let o=t[e].text.match(vt);if(null!==o){let t=o[2].toLowerCase().trim();return r.hasOwnProperty(t)?null:[o[1],t]}return null};const yt=/'/,xt=/^[0-9][^-–—]*[-–—].*?[0-9]/,jt=function(t,e,n,r){let o=e.update();o.document=[t];let i=n+r;n>0&&(n-=1),t[i]&&(i+=1),o.ptrs=[[0,n,i]]},Ot={t:(t,e)=>ct(t,e),d:(t,e)=>at(t,e)},Et={j:(t,e)=>ht(t,e),l:(t,e)=>ft(t,e),d:(t,e)=>pt(t,e)},kt=function(t,e,n,r){for(let o=0;o{let{world:e,document:n}=t;const{model:r,methods:o}=e;let i=r.one.contractions||[];n.forEach(((r,s)=>{for(let l=r.length-1;l>=0;l-=1){let a=null,c=null;!0===yt.test(r[l].normal)&&([a,c]=r[l].normal.split(yt));let u=kt(i,r[l],a,c);!u&&Ot.hasOwnProperty(c)&&(u=Ot[c](r,l,e)),!u&&Et.hasOwnProperty(a)&&(u=Et[a](r,l)),"there"===a&&"s"===c&&(u=_t(r,l)),u?(u=Pt(u,t),rt(n,[s,l],u),jt(n[s],t,l,u.length)):xt.test(r[l].normal)?(u=wt(r,l),u&&(u=Pt(u,t),rt(n,[s,l],u),o.one.setTag(u,"NumberRange",e),u[2]&&u[2].tags.has("Time")&&o.one.setTag([u[0]],"Time",e,null,"time-range"),jt(n[s],t,l,u.length))):(u=bt(r,l,e),u&&(u=Pt(u,t),rt(n,[s,l],u),o.one.setTag([u[1]],"Unit",e,null,"contraction-unit")))}}))};var At={model:nt,compute:{contractions:St},hooks:["contractions"]};var Tt=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,s=r.one._multiCache||{},l=r.one.lexicon||{};let a=t[e],c=a.machine||a.normal;return void 0!==t[e+1]&&!0===s[c]?function(t,e,n,r,o){let i=e+4>t.length?t.length-e:4,s=t[e].machine||t[e].normal;for(let l=1;ls.hasOwnProperty(t)));if(t){return i([l],s[t],n,!1,"1-lexicon-alias"),!0}}if(!0===$t.test(a)){let t=a.replace($t,"");if(s.hasOwnProperty(t)&&t.length>3&&Ct.has(s[t]))return i([l],s[t],n,!1,"1-lexicon-prefix"),!0}return null};var Nt={lexicon:function(t){const e=t.world;t.docs.forEach((t=>{for(let n=0;n{let o=t[r],i=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);i.length>1&&(n[i[0]]=!0),e[r]=e[r]||o})),delete e[""],delete e.null,delete e[" "],{lex:e,_multi:n}};var Vt={addWords:function(t){const e=this.world(),{methods:n,model:r}=e;if(t)if(Object.keys(t).forEach((e=>{"string"==typeof t[e]&&t[e].startsWith("#")&&(t[e]=t[e].replace(/^#/,""))})),n.two.expandLexicon){let{lex:o,_multi:i}=n.two.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else if(n.one.expandLexicon){let{lex:o,_multi:i}=n.one.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else Object.assign(r.one.lexicon,t)}};var qt={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Lt}},compute:Nt,lib:Vt,hooks:["lexicon"]};var Ft=function(t,e){let n=[{}],r=[null],o=[0],i=[],s=0;t.forEach((function(t){let o=0,i=function(t,e){const{methods:n,model:r}=e;let o=n.one.tokenize.splitTerms(t,r).map((t=>n.one.tokenize.splitWhitespace(t,r)));return o.map((t=>t.text.toLowerCase()))}(t,e);for(let t=0;t0&&!n[s].hasOwnProperty(a);)s=o[s];if(n.hasOwnProperty(s)){let t=n[s][a];o[c]=t,r[t]&&(r[c]=r[c]||[],r[c]=r[c].concat(r[t]))}else o[c]=0}}return{goNext:n,endAs:r,failTo:o}};const Gt=function(t,e,n){let r=0,o=[];for(let i=0;i0&&(void 0===e.goNext[r]||!e.goNext[r].hasOwnProperty(s));)r=e.failTo[r]||0;if(e.goNext[r].hasOwnProperty(s)&&(r=e.goNext[r][s],e.endAs[r])){let n=e.endAs[r];for(let e=0;e0&&(r=r.concat(a))}return t.update(r)};const Ut=(t,e)=>{for(let n=t.length-1;n>=0;n-=1)if(t[n]!==e)return t=t.slice(0,n+1),t;return t};var Mt=function(t){return t.goNext=t.goNext.map((t=>{if(0!==Object.keys(t).length)return t})),t.goNext=Ut(t.goNext,void 0),t.failTo=Ut(t.failTo,0),t.endAs=Ut(t.endAs,null),t};const Wt={buildTrie:function(t){const e=Ft(t,this.world());return Mt(e)}};Wt.compile=Wt.buildTrie;var It={api:function(t){t.prototype.lookup=function(t,e={}){if(!t)return this.none();"string"==typeof t&&(t=[t]);let n=(r=t,"[object Object]"===Object.prototype.toString.call(r)?t:Ft(t,this.world));var r;let o=Bt(this,n,e);return o=o.settle(),o}},lib:Wt};const Rt=function(t,e){return e?(t.forEach((t=>{let n=t[0];e[n]&&(t[0]=e[n][0],t[1]+=e[n][1],t[2]+=e[n][1])})),t):t},Qt=function(t,e){let{ptrs:n,byGroup:r}=t;return n=Rt(n,e),Object.keys(r).forEach((t=>{r[t]=Rt(r[t],e)})),{ptrs:n,byGroup:r}},Ht=t=>"[object Object]"===Object.prototype.toString.call(t),Zt=t=>t&&Ht(t)&&!0===t.isView,Kt=t=>t&&Ht(t)&&!0===t.isNet,Jt=function(t,e,n){const r=n.methods.one;return"number"==typeof t&&(t=String(t)),"string"==typeof t&&(t=r.killUnicode(t,n),t=r.parseMatch(t,e,n)),t};var Xt={matchOne:function(t,e,n){const r=this.methods.one;if(Zt(t))return this.intersection(t).eq(0);if(Kt(t))return this.sweep(t,{tagger:!1,matchOne:!0}).view;let o={regs:t=Jt(t,n,this.world),group:e,justOne:!0},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Qt(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},match:function(t,e,n){const r=this.methods.one;if(Zt(t))return this.intersection(t);if(Kt(t))return this.sweep(t,{tagger:!1}).view.settle();let o={regs:t=Jt(t,n,this.world),group:e},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Qt(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},has:function(t,e,n){const r=this.methods.one;if(Zt(t)){return t.fullPointer.length>0}if(Kt(t))return this.sweep(t,{tagger:!1}).view.found;let o={regs:t=Jt(t,n,this.world),group:e,justOne:!0};return r.match(this.docs,o,this._cache).ptrs.length>0},if:function(t,e,n){const r=this.methods.one;if(Zt(t))return this.filter((e=>e.intersection(t).found));if(Kt(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.if(e)}let o={regs:t=Jt(t,n,this.world),group:e,justOne:!0},i=this.fullPointer,s=this._cache||[];i=i.filter(((t,e)=>{let n=this.update([t]);return r.match(n.docs,o,s[e]).ptrs.length>0}));let l=this.update(i);return this._cache&&(l._cache=i.map((t=>s[t[0]]))),l},ifNo:function(t,e,n){const{methods:r}=this,o=r.one;if(Zt(t))return this.filter((e=>!e.intersection(t).found));if(Kt(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.ifNo(e)}t=Jt(t,n,this.world);let i=this._cache||[],s=this.filter(((n,r)=>{let s={regs:t,group:e,justOne:!0};return 0===o.match(n.docs,s,i[r]).ptrs.length}));return this._cache&&(s._cache=s.ptrs.map((t=>i[t[0]]))),s}};var Yt={before:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer);Object.keys(i).forEach((t=>{let e=i[t].sort(((t,e)=>t[1]>e[1]?1:-1))[0];e[1]>0&&o.push([e[0],0,e[1]])}));let s=this.toView(o);return t?s.match(t,e,n):s},after:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer),s=this.document;Object.keys(i).forEach((t=>{let e=i[t].sort(((t,e)=>t[1]>e[1]?-1:1))[0],[n,,r]=e;r{let i=n.before(t,e);if(i.found){let t=i.terms();r[o][1]-=t.length,r[o][3]=t.docs[0][0].id}})),this.update(r)},growRight:function(t,e,n){"string"==typeof t&&(t=this.world.methods.one.parseMatch(t,n,this.world)),t[0].start=!0;let r=this.fullPointer;return this.forEach(((n,o)=>{let i=n.after(t,e);if(i.found){let t=i.terms();r[o][2]+=t.length,r[o][4]=null}})),this.update(r)},grow:function(t,e,n){return this.growRight(t,e,n).growLeft(t,e,n)}};const te=function(t,e){return[t[0],t[1],e[2]]},ee=(t,e,n)=>{return"string"==typeof t||(r=t,"[object Array]"===Object.prototype.toString.call(r))?e.match(t,n):t||e.none();var r},ne=function(t,e){let[n,r,o]=t;return e.document[n]&&e.document[n][r]&&(t[3]=t[3]||e.document[n][r].id,e.document[n][o-1]&&(t[4]=t[4]||e.document[n][o-1].id)),t},re={splitOn:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=ee(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),i.push(t.before),i.push(t.match),i.push(t.after)})),i=i.filter((t=>t)),i=i.map((t=>ne(t,this))),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=ee(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),i.push(t.before),t.match&&t.after?i.push(te(t.match,t.after)):(i.push(t.match),i.push(t.after))})),i=i.filter((t=>t)),i=i.map((t=>ne(t,this))),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=ee(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),t.before&&t.match?i.push(te(t.before,t.match)):(i.push(t.before),i.push(t.match)),i.push(t.after)})),i=i.filter((t=>t)),i=i.map((t=>ne(t,this))),this.update(i)}};re.split=re.splitAfter;var oe=re;const ie=Object.assign({},Xt,Yt,oe);ie.lookBehind=ie.before,ie.lookBefore=ie.before,ie.lookAhead=ie.after,ie.lookAfter=ie.after,ie.notIf=ie.ifNo;var se=function(t){Object.assign(t.prototype,ie)};const le=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,ae=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,ce=/ /g,ue=t=>/^[![^]*(<[^<]*>)?\//.test(t)&&/\/[?\]+*$~]*$/.test(t),he=function(t){return t=(t=t.map((t=>t.trim()))).filter((t=>t))};var fe=function(t){let e=t.split(le),n=[];e.forEach((t=>{ue(t)?n.push(t):n=n.concat(t.split(ae))})),n=he(n);let r=[];return n.forEach((t=>{(t=>/^[![^]*(<[^<]*>)?\(/.test(t)&&/\)[?\]+*$~]*$/.test(t))(t)||ue(t)?r.push(t):r=r.concat(t.split(ce))})),r=he(r),r};const pe=/\{([0-9]+)?(, *[0-9]*)?\}/,de=/&&/,me=new RegExp(/^<\s*(\S+)\s*>/),ge=t=>t.charAt(0).toUpperCase()+t.substring(1),we=t=>t.charAt(t.length-1),ve=t=>t.charAt(0),be=t=>t.substring(1),ye=t=>t.substring(0,t.length-1),xe=function(t){return t=be(t),t=ye(t)},je=function(t,e){let n={};for(let r=0;r<2;r+=1){if("$"===we(t)&&(n.end=!0,t=ye(t)),"^"===ve(t)&&(n.start=!0,t=be(t)),("["===ve(t)||"]"===we(t))&&(n.group=null,"["===ve(t)&&(n.groupStart=!0),"]"===we(t)&&(n.groupEnd=!0),t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===ve(t))){const e=me.exec(t);e.length>=2&&(n.group=e[1],t=t.replace(e[0],""))}if("+"===we(t)&&(n.greedy=!0,t=ye(t)),"*"!==t&&"*"===we(t)&&"\\*"!==t&&(n.greedy=!0,t=ye(t)),"?"===we(t)&&(n.optional=!0,t=ye(t)),"!"===ve(t)&&(n.negative=!0,t=be(t)),"~"===ve(t)&&"~"===we(t)&&t.length>2&&(t=xe(t),n.fuzzy=!0,n.min=e.fuzzy||.85,!1===/\(/.test(t)))return n.word=t,n;if("/"===ve(t)&&"/"===we(t))return t=xe(t),e.caseSensitive&&(n.use="text"),n.regex=new RegExp(t),n;if(!0===pe.test(t)&&(t=t.replace(pe,((t,e,r)=>(void 0===r?(n.min=Number(e),n.max=Number(e)):(r=r.replace(/, */,""),void 0===e?(n.min=0,n.max=Number(r)):(n.min=Number(e),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"("===ve(t)&&")"===we(t)){de.test(t)?(n.choices=t.split(de),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=be(n.choices[0]);let r=n.choices.length-1;n.choices[r]=ye(n.choices[r]),n.choices=n.choices.map((t=>t.trim())),n.choices=n.choices.filter((t=>t)),n.choices=n.choices.map((t=>t.split(/ /g).map((t=>je(t,e))))),t=""}if("{"===ve(t)&&"}"===we(t)){if(t=xe(t),n.root=t,/\//.test(t)){let t=n.root.split(/\//);n.root=t[0],n.pos=t[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==t[2]&&(n.sense=t[2])}return n}if("<"===ve(t)&&">"===we(t))return t=xe(t),n.chunk=ge(t),n.greedy=!0,n;if("%"===ve(t)&&"%"===we(t))return t=xe(t),n.switch=t,n}return"#"===ve(t)?(n.tag=be(t),n.tag=ge(n.tag),n):"@"===ve(t)?(n.method=be(t),n):"."===t?(n.anything=!0,n):"*"===t?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(t&&(t=(t=t.replace("\\*","*")).replace("\\.","."),e.caseSensitive?n.use="text":t=t.toLowerCase(),n.word=t),n)};var Oe=je;const Ee=/[a-z0-9][-–—][a-z]/i;var ke=function(t,e){let n=e.model.one.prefixes;for(let e=t.length-1;e>=0;e-=1){let r=t[e];if(r.word&&Ee.test(r.word)){let o=r.word.split(/[-–—]/g);if(n.hasOwnProperty(o[0]))continue;o=o.filter((t=>t)).reverse(),t.splice(e,1),o.forEach((n=>{let o=Object.assign({},r);o.word=n,t.splice(e,0,o)}))}}return t};const Pe=function(t,e){let{all:n}=e.methods.two.transform.verb||{},r=t.root;return n?n(r,e.model):[]},_e=function(t,e){let{all:n}=e.methods.two.transform.noun||{};return n?n(t.root,e.model):[t.root]},Se=function(t,e){let{all:n}=e.methods.two.transform.adjective||{};return n?n(t.root,e.model):[t.root]};var Ae=function(t,e){return t=t.map((t=>{if(t.root)if(e.methods.two&&e.methods.two.transform){let n=[];t.pos?"Verb"===t.pos?n=n.concat(Pe(t,e)):"Noun"===t.pos?n=n.concat(_e(t,e)):"Adjective"===t.pos&&(n=n.concat(Se(t,e))):(n=n.concat(Pe(t,e)),n=n.concat(_e(t,e)),n=n.concat(Se(t,e))),n=n.filter((t=>t)),n.length>0&&(t.operator="or",t.fastOr=new Set(n))}else t.machine=t.root,delete t.id,delete t.root;return t}))};var Te=function(t){return t=function(t){let e=0,n=null;for(let r=0;r(t.fuzzy&&t.choices&&t.choices.forEach((e=>{1===e.length&&e[0].word&&(e[0].fuzzy=!0,e[0].min=t.min)})),t)))}(t=t.map((t=>{if(void 0!==t.choices){if("or"!==t.operator)return t;if(!0===t.fuzzy)return t;!0===t.choices.every((t=>{if(1!==t.length)return!1;let e=t[0];return!0!==e.fuzzy&&!e.start&&!e.end&&void 0!==e.word&&!0!==e.negative&&!0!==e.optional&&!0!==e.method}))&&(t.fastOr=new Set,t.choices.forEach((e=>{t.fastOr.add(e[0].word)})),delete t.choices)}return t}))),t};var $e=function(t,e,n){if(null==t||""===t)return[];e=e||{},"number"==typeof t&&(t=String(t));let r=fe(t);return r=r.map((t=>Oe(t,e))),r=ke(r,n),r=Ae(r,n),r=Te(r),r};const Ce=function(t,e){for(let n of e)if(t.has(n))return!0;return!1};var ze=function(t,e){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(o||100))return o||100;let i,s,l,a,c,u,h=[];for(let t=0;t4)return n;l=e[i-1],a=s===l?0:1,c=h[o-1][i]+1,(u=h[o][i-1]+1)1&&i>1&&s===e[i-2]&&t[o-2]===l&&(u=h[o-2][i-2]+a)-1!==t.post.indexOf(e),De=(t,e)=>-1!==t.pre.indexOf(e),Be={hasQuote:t=>Le.test(t.pre)||Ve.test(t.post),hasComma:t=>Ge(t,","),hasPeriod:t=>!0===Ge(t,".")&&!1===Ge(t,"..."),hasExclamation:t=>Ge(t,"!"),hasQuestionMark:t=>Ge(t,"?")||Ge(t,"¿"),hasEllipses:t=>Ge(t,"..")||Ge(t,"…")||De(t,"..")||De(t,"…"),hasSemicolon:t=>Ge(t,";"),hasColon:t=>Ge(t,":"),hasSlash:t=>/\//.test(t.text),hasHyphen:t=>qe.test(t.post)||qe.test(t.pre),hasDash:t=>Fe.test(t.post)||Fe.test(t.pre),hasContraction:t=>Boolean(t.implicit),isAcronym:t=>t.tags.has("Acronym"),isKnown:t=>t.tags.size>0,isTitleCase:t=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(t.text),isUpperCase:t=>/^\p{Lu}+$/u.test(t.text)};Be.hasQuotation=Be.hasQuote;var Ue=Be;let Me=function(){};Me=function(t,e,n,r){let o=function(t,e,n,r){if(!0===e.anything)return!0;if(!0===e.start&&0!==n)return!1;if(!0===e.end&&n!==r-1)return!1;if(void 0!==e.id&&e.id===t.id)return!0;if(void 0!==e.word){if(e.use)return e.word===t[e.use];if(null!==t.machine&&t.machine===e.word)return!0;if(void 0!==t.alias&&t.alias.hasOwnProperty(e.word))return!0;if(!0===e.fuzzy){if(e.word===t.root)return!0;if(Ne(e.word,t.normal)>=e.min)return!0}return!(!t.alias||!t.alias.some((t=>t===e.word)))||e.word===t.text||e.word===t.normal}if(void 0!==e.tag)return!0===t.tags.has(e.tag);if(void 0!==e.method)return"function"==typeof Ue[e.method]&&!0===Ue[e.method](t);if(void 0!==e.pre)return t.pre&&t.pre.includes(e.pre);if(void 0!==e.post)return t.post&&t.post.includes(e.post);if(void 0!==e.regex){let n=t.normal;return e.use&&(n=t[e.use]),e.regex.test(n)}if(void 0!==e.chunk)return t.chunk===e.chunk;if(void 0!==e.switch)return t.switch===e.switch;if(void 0!==e.machine)return t.normal===e.machine||t.machine===e.machine||t.root===e.machine;if(void 0!==e.sense)return t.sense===e.sense;if(void 0!==e.fastOr){if(e.pos&&!t.tags.has(e.pos))return null;let n=t.root||t.implicit||t.machine||t.normal;return e.fastOr.has(n)||e.fastOr.has(t.text)}return void 0!==e.choices&&("and"===e.operator?e.choices.every((e=>Me(t,e,n,r))):e.choices.some((e=>Me(t,e,n,r))))}(t,e,n,r);return!0===e.negative?!o:o};var We=Me;const Ie=function(t,e){if(!0===t.end&&!0===t.greedy&&e.start_i+e.tn.max)return t.t=t.t+n.max,!0;if(!0===t.hasGroup){Re(t,t.t).length=r-t.t}return t.t=r,!0};const He=function(t,e=0){let n=t.regs[t.r],r=!1;for(let i=0;i{let o=0,i=t.t+r+e+o;if(void 0===t.terms[i])return!1;let s=We(t.terms[i],n,i+t.start_i,t.phrase_length);if(!0===s&&!0===n.greedy)for(let e=1;e{let r=n.every(((e,n)=>{let r=t.t+n;return void 0!==t.terms[r]&&We(t.terms[r],e,r,t.phrase_length)}));return!0===r&&n.length>e&&(e=n.length),r}))&&e}(t);if(r){if(!0===n.negative)return null;if(!0===t.hasGroup){Re(t,t.t).length+=r}if(!0===n.end){let e=t.phrase_length-1;if(t.t+t.start_i!==e)return null}return t.t+=r,!0}return!!n.optional||null};var Je=function(t,e,n){let r=0;for(let o=t.t;or)&&(t.t+=r,!0))};var Xe=function(t){const{regs:e}=t;let n=e[t.r],r=Object.assign({},n);if(r.negative=!1,We(t.terms[t.t],r,t.start_i+t.t,t.phrase_length))return!1;if(n.optional){let n=e[t.r+1];if(n){if(We(t.terms[t.t],n,t.start_i+t.t,t.phrase_length))t.r+=1;else if(n.optional&&e[t.r+2]){We(t.terms[t.t],e[t.r+2],t.start_i+t.t,t.phrase_length)&&(t.r+=2)}}}return n.greedy?Je(t,r,e[t.r+1]):(t.t+=1,!0)};var Ye=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=We(r,e[t.r+1],t.start_i+t.t,t.phrase_length);if(n.negative||o){let n=t.terms[t.t+1];n&&We(n,e[t.r+1],t.start_i+t.t,t.phrase_length)||(t.r+=1)}};var tn=function(t){const{regs:e,phrase_length:n}=t;let r=e[t.r];return t.t=function(t,e){let n=Object.assign({},t.regs[t.r],{start:!1,end:!1}),r=t.t;for(;t.tt.t?null:!0!==r.end||t.start_i+t.t===n||null};var en=function(t){let e=t.terms[t.t],n=t.regs[t.r];if(e.implicit&&t.terms[t.t+1]){if(!t.terms[t.t+1].implicit)return;n.word===e.normal&&(t.t+=1),"hasContraction"===n.method&&(t.t+=1)}};var nn=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=t.t;if(n.optional&&e[t.r+1]&&n.negative)return!0;if(n.optional&&e[t.r+1]&&Ye(t),r.implicit&&t.terms[t.t+1]&&en(t),t.t+=1,!0===n.end&&t.t!==t.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!tn(t))return null}return!0===t.hasGroup&&function(t,e){let n=t.regs[t.r];const r=Re(t,e);t.t>1&&n.greedy?r.length+=t.t-e:r.length++}(t,o),!0};var rn=function(t,e,n,r){if(0===t.length||0===e.length)return null;let o={t:0,terms:t,r:0,regs:e,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;o.r!t.optional)))break;return null}if(!0!==t.anything||!0!==t.greedy)if(void 0===t.choices||"or"!==t.operator)if(void 0===t.choices||"and"!==t.operator)if(!0!==t.anything)if(!0!==Ie(t,o))if(t.negative){if(!Xe(o))return null}else if(!0!==We(o.terms[o.t],t,o.start_i+o.t,o.phrase_length)){if(!0!==t.optional)return null}else{if(!nn(o))return null}else{if(!nn(o))return null}else{if(t.negative&&t.anything)return null;if(!nn(o))return null}else{if(!Ke(o))return null}else{if(!Ze(o))return null}else{if(!Qe(o))return null}}let i=[null,n,o.t+n];if(i[1]===i[2])return null;let s={};return Object.keys(o.groups).forEach((t=>{let e=o.groups[t],r=n+e.start;s[t]=[null,r,r+e.length]})),{pointer:i,groups:s}};var on=function(t,e){let n=[],r={};return 0===t.length||("number"==typeof e&&(e=String(e)),e?t.forEach((t=>{t.groups[e]&&n.push(t.groups[e])})):t.forEach((t=>{n.push(t.pointer),Object.keys(t.groups).forEach((e=>{r[e]=r[e]||[],r[e].push(t.groups[e])}))}))),{ptrs:n,byGroup:r}};var sn=function(t,e,n){return t=t.filter((t=>{let[r,o,i]=t.pointer,s=n[r].slice(o,i);for(let t=0;t{t.groups[n][0]=e})),t},an=function(t,e,n){let r=rn(t,e,0,t.length);return r?(r=ln(r,n),r):null};var cn=function(t,e,n){n=n||[];let{regs:r,group:o,justOne:i}=e,s=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const l=r.filter((t=>!0!==t.optional&&!0!==t.negative)).length;t:for(let e=0;et&&(t=Math.abs(n-1))}}else{let t=an(o,r,e);t&&s.push(t)}}return!0===r[r.length-1].end&&(s=s.filter((e=>{let n=e.pointer[0];return t[n].length===e.pointer[2]}))),e.notIf&&(s=sn(s,e.notIf,t)),s=on(s,o),s.ptrs.forEach((e=>{let[n,r,o]=e;e[3]=t[n][r].id,e[4]=t[n][o-1].id})),s};var un={api:se,methods:{one:{termMethods:Ue,parseMatch:$e,match:cn}},lib:{parseMatch:function(t,e){const n=this.world();let r=n.methods.one.killUnicode;return r&&(t=r(t,n)),n.methods.one.parseMatch(t,e,n)}}};const hn=/^\../,fn=/^#./,pn=function(t,e){let n={},r={};return Object.keys(e).forEach((o=>{let i=e[o],s=function(t){let e="",n="";return t=t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),hn.test(t)?e=``),e+=">",{start:e,end:n}}(o);"string"==typeof i&&(i=t.match(i)),i.docs.forEach((t=>{if(t.every((t=>t.implicit)))return;let e=t[0].id;n[e]=n[e]||[],n[e].push(s.start);let o=t[t.length-1].id;r[o]=r[o]||[],r[o].push(s.end)}))})),{starts:n,ends:r}};var dn={html:function(t){let{starts:e,ends:n}=pn(this,t),r="";return this.docs.forEach((t=>{for(let o=0;o{let n=t.pre||"",o=t.post||"";"some"===e.punctuation&&(n=n.replace(gn,""),vn.test(o)&&(o=" "),o=o.replace(wn,""),o=o.replace(/\?!+/,"?"),o=o.replace(/!+/,"!"),o=o.replace(/\?+/,"?"),o=o.replace(/\.{2,}/,""),t.tags.has("Abbreviation")&&(o=o.replace(/\./,""))),"some"===e.whitespace&&(n=n.replace(/\s/,""),o=o.replace(/\s+/," ")),e.keepPunct||(n=n.replace(gn,""),o="-"===o?" ":o.replace(mn,""));let i=t[e.form||"text"]||t.normal||"";"implicit"===e.form&&(i=t.implicit||t.text),"root"===e.form&&t.implicit&&(i=t.root||t.implicit||t.normal),"machine"!==e.form&&"implicit"!==e.form&&"root"!==e.form||!t.implicit||o&&bn.test(o)||(o+=" "),r+=n+i+o})),!1===n&&(r=r.trim()),!0===e.lowerCase&&(r=r.toLowerCase()),r},xn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};xn.clean=xn.normal,xn.reduced=xn.root;var jn=xn;let On=[],En=0;for(;En<64;)On[En]=0|4294967296*Math.sin(++En%Math.PI);function kn(t){let e,n,r,o=[e=1732584193,n=4023233417,~e,~n],i=[],s=decodeURI(encodeURI(t))+"",l=s.length;for(t=--l/4+2|15,i[--t]=8*l;~l;)i[l>>2]|=s.charCodeAt(l)<<8*l--;for(En=s=0;En>4]+On[s]+~~i[En|15&[s,5*s+1,3*s+5,7*s][l]])<<(l=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*l+s++%4])|r>>>-l),e,n])e=0|l[1],n=l[2];for(s=4;s;)o[--s]+=l[s]}for(t="";s<32;)t+=(o[s>>3]>>4*(1^s++)&15).toString(16);return t}const Pn={text:!0,terms:!0};let _n={case:"none",unicode:"some",form:"machine",punctuation:"some"};const Sn=function(t,e){return Object.assign({},t,e)},An={text:t=>yn(t,{keepPunct:!0},!1),normal:t=>yn(t,Sn(jn.normal,{keepPunct:!0}),!1),implicit:t=>yn(t,Sn(jn.implicit,{keepPunct:!0}),!1),machine:t=>yn(t,_n,!1),root:t=>yn(t,Sn(_n,{form:"root"}),!1),hash:t=>kn(yn(t,{keepPunct:!0},!1)),offset:t=>{let e=An.text(t).length;return{index:t[0].offset.index,start:t[0].offset.start,length:e}},terms:t=>t.map((t=>{let e=Object.assign({},t);return e.tags=Array.from(t.tags),e})),confidence:(t,e,n)=>e.eq(n).confidence(),syllables:(t,e,n)=>e.eq(n).syllables(),sentence:(t,e,n)=>e.eq(n).fullSentence().text(),dirty:t=>t.some((t=>!0===t.dirty))};An.sentences=An.sentence,An.clean=An.normal,An.reduced=An.root;const Tn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},Pn,r)).offset&&n.compute("offset"),n.docs.map(((t,e)=>{let o={};return Object.keys(r).forEach((i=>{r[i]&&An[i]&&(o[i]=An[i](t,n,e))})),o})));var n,r;return"number"==typeof t?e[t]:e}};Tn.data=Tn.json;var $n=Tn;var Cn=function(t){console.log("%c -=-=- ","background-color:#6699cc;"),t.forEach((t=>{console.groupCollapsed(t.text());let e=t.docs[0].map((t=>{let e=t.text||"-";return t.implicit&&(e="["+t.implicit+"]"),{text:e,tags:"["+Array.from(t.tags).join(", ")+"]"}}));console.table(e,["text","tags"]),console.groupEnd()}))};var zn={green:t=>"[32m"+t+"[0m",red:t=>"[31m"+t+"[0m",blue:t=>"[34m"+t+"[0m",magenta:t=>"[35m"+t+"[0m",cyan:t=>"[36m"+t+"[0m",yellow:t=>"[33m"+t+"[0m",black:t=>"[30m"+t+"[0m",dim:t=>"[2m"+t+"[0m",i:t=>"[3m"+t+"[0m"};var Nn=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(zn.blue("\n ──────")),e.forEach((e=>{console.log(zn.blue("\n ┌─────────")),e.forEach((e=>{let r=[...e.tags||[]],o=e.text||"-";e.sense&&(o=`{${e.normal}/${e.sense}}`),e.implicit&&(o="["+e.implicit+"]"),o=zn.yellow(o);let i="'"+o+"'";if(e.reference){let n=t.update([e.reference]).text("normal");i+=` - ${zn.dim(zn.i("["+n+"]"))}`}i=i.padEnd(18);let s=zn.blue(" │ ")+zn.i(i)+" - "+function(t,e){return e.one.tagSet&&(t=t.map((t=>{if(!e.one.tagSet.hasOwnProperty(t))return t;const n=e.one.tagSet[t].color||"blue";return zn[n](t)}))),t.join(", ")}(r,n);console.log(s)}))}))};var Ln=function(t){let{docs:e}=t;console.log(""),e.forEach((t=>{let e=[];t.forEach((t=>{"Noun"===t.chunk?e.push(zn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(zn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(zn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(zn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)})),console.log(e.join(" "),"\n")}))};var Vn=function(t){if(!t.found)return;let e={};t.fullPointer.forEach((t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)})),Object.keys(e).forEach((n=>{let r=t.update([[Number(n)]]).text();t.update(e[n]).json({offset:!0}).forEach(((t,e)=>{r=function(t,e,n){let r=((t,e,n)=>{let r=9*n,o=e.start+r,i=o+e.length;return[t.substring(0,o),t.substring(o,i),t.substring(i,t.length)]})(t,e,n);return`${r[0]}${zn.blue(r[1])}${r[2]}`}(r,t.offset,e)})),console.log(r)}))};var qn=function(t={}){let e=this;if("string"==typeof t){let e={};e[t]=!0,t=e}return"undefined"!=typeof window&&window.document?(Cn(e),e):(!1!==t.tags&&(Nn(e),console.log("\n")),!0===t.chunks&&(Ln(e),console.log("\n")),!0===t.highlight&&(Vn(e),console.log("\n")),e)};const Fn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var Gn=function(t,e){let n=function(t,e){let n={};return Object.keys(e).forEach((r=>{t.match(r).fullPointer.forEach((t=>{n[t[3]]={fn:e[r],end:t[2]}}))})),n}(t,e),r="";return t.docs.forEach(((e,o)=>{for(let i=0;it.reduce(((t,e)=>t+e.pre+e.text+e.post),"").trim()));return t.filter((t=>t))}if("freq"===t||"frequency"===t||"topk"===t)return function(t){let e={};t.forEach((t=>{e[t]=e[t]||0,e[t]+=1}));let n=Object.keys(e).map((t=>({normal:t,count:e[t]})));return n.sort(((t,e)=>t.count>e.count?-1:0))}(this.json({normal:!0}).map((t=>t.normal)));if("terms"===t){let t=[];return this.docs.forEach((e=>{let n=e.terms.map((t=>t.text));n=n.filter((t=>t)),t=t.concat(n)})),t}return"tags"===t?this.docs.map((t=>t.reduce(((t,e)=>(t[e.implicit||e.normal]=Array.from(e.tags),t)),{}))):"debug"===t?this.debug():this.text()},wrap:function(t){return Gn(this,t)}};var Bn=Dn;var Un={text:function(t){let e={};var n;if(t&&"string"==typeof t&&jn.hasOwnProperty(t)?e=Object.assign({},jn[t]):t&&(n=t,"[object Object]"===Object.prototype.toString.call(n))&&(e=Object.assign({},t)),void 0===e.keepSpace&&this.pointer&&(e.keepSpace=!1),void 0===e.keepPunct&&this.pointer){let t=this.pointer[0];t&&t[1]?e.keepPunct=!1:e.keepPunct=!0}return void 0===e.keepPunct&&(e.keepPunct=!0),void 0===e.keepSpace&&(e.keepSpace=!0),function(t,e){let n="";if(!t||!t[0]||!t[0][0])return n;for(let r=0;ro||o<=n&&i>n},Qn=function(t){let e={};return t.forEach((t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)})),e};var Hn=function(t,e){let n=Qn(e),r=[];return t.forEach((t=>{let[e]=t,o=n[e]||[];if(o=o.filter((e=>function(t,e){return t[1]<=e[1]&&e[2]<=t[2]}(t,e))),0===o.length)return void r.push({passthrough:t});o=o.sort(((t,e)=>t[1]-e[1]));let i=t;o.forEach(((t,e)=>{let n=function(t,e){let[n,r]=t,o=e[1],i=e[2],s={};if(ri&&(s.after=[n,i,t[2]]),s}(i,t);o[e+1]?(r.push({before:n.before,match:n.match}),n.after&&(i=n.after)):r.push(n)}))})),r};var Zn=function(t,e){let n=[];return t.forEach(((r,o)=>{if(!r)return;let[i,s,l,a,c]=r,u=e[i]||[];if(void 0===s&&(s=0),void 0===l&&(l=u.length),!a||u[s]&&u[s].id===a)u=u.slice(s,l);else{let n=function(t,e,n){for(let r=0;r<20;r+=1){if(e[n-r]){let o=e[n-r].findIndex((e=>e.id===t));if(-1!==o)return[n-r,o]}if(e[n+r]){let o=e[n+r].findIndex((e=>e.id===t));if(-1!==o)return[n+r,o]}}return null}(a,e,i);if(null!==n){let r=l-s;u=e[n[0]].slice(n[1],n[1]+r);let i=u[0]?u[0].id:null;t[o]=[n[0],n[1],n[1]+r,i]}}0!==u.length&&s!==l&&(c&&u[u.length-1].id!==c&&(u=function(t,e){let[n,r,,,o]=t,i=e[n],s=i.findIndex((t=>t.id===o));return-1===s?(t[2]=e[n].length,t[4]=i.length?i[i.length-1].id:null):t[2]=s,e[n].slice(r,t[2]+1)}(r,e)),n.push(u))})),n=n.filter((t=>t.length>0)),n};var Kn={one:{termList:function(t){let e=[];for(let n=0;n{let[e]=t;if(1===r[e].length)return void o.push(t);let n=r[e].filter((e=>Rn(t,e)));n.push(t);let i=function(t){let e=t[0][1],n=t[0][2];return t.forEach((t=>{t[1]n&&(n=t[2])})),[t[0][0],e,n]}(n);o.push(i)})),o=function(t){let e={};for(let n=0;n{t.passthrough&&n.push(t.passthrough),t.before&&n.push(t.before),t.after&&n.push(t.after)})),n};var Yn=function(t,e){let n=Qn(e),r=[];return t.forEach((t=>{let e=n[t[0]]||[];e=e.filter((e=>Rn(t,e))),0!==e.length&&e.forEach((e=>{let n=function(t,e){let n=t[1]e[2]?e[2]:t[2];return n{return"string"==typeof t||(n=t,"[object Array]"===Object.prototype.toString.call(n))?e.match(t):t||e.none();var n},er=function(t,e){return t.map((t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t}))},nr={union:function(t){t=tr(t,this);let e=Jn(this.fullPointer,t.fullPointer);return e=er(e,this.document),this.toView(e)}};nr.and=nr.union,nr.intersection=function(t){t=tr(t,this);let e=Yn(this.fullPointer,t.fullPointer);return e=er(e,this.document),this.toView(e)},nr.not=function(t){t=tr(t,this);let e=Xn(this.fullPointer,t.fullPointer);return e=er(e,this.document),this.toView(e)},nr.difference=nr.not,nr.complement=function(){let t=this.all(),e=Xn(t.fullPointer,this.fullPointer);return e=er(e,this.document),this.toView(e)},nr.settle=function(){let t=this.fullPointer;return t.forEach((e=>{t=Jn(t,[e])})),t=er(t,this.document),this.update(t)};var rr=function(t){Object.assign(t.prototype,nr)},or={methods:Kn,api:rr};var ir=function(t){t.prototype.sweep=function(t,e={}){const{world:n,docs:r}=this,{methods:o}=n;let i=o.one.bulkMatch(r,t,this.methods,e);!1!==e.tagger&&o.one.bulkTagger(i,r,this.world),i=i.map((t=>{let e=t.pointer,n=r[e[0]][e[1]],o=e[2]-e[1];return n.index&&(t.pointer=[n.index[0],n.index[1],e[1]+o]),t}));let s=i.map((t=>t.pointer));return i=i.map((t=>(t.view=this.update([t.pointer]),delete t.regs,delete t.needs,delete t.pointer,delete t._expanded,t))),{view:this.update(s),found:i}}};const sr=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var lr=function(t,e){const n=e.methods.one.parseMatch;return t.forEach((t=>{t.regs=n(t.match,{},e),"string"==typeof t.ifNo&&(t.ifNo=[t.ifNo]),t.notIf&&(t.notIf=n(t.notIf,{},e)),t.needs=function(t){let e=[];return t.forEach((t=>{e.push(sr(t)),"and"===t.operator&&t.choices&&t.choices.forEach((t=>{t.forEach((t=>{e.push(sr(t))}))}))})),e.filter((t=>t))}(t.regs);let{wants:r,count:o}=function(t){let e=[],n=0;return t.forEach((t=>{"or"!==t.operator||t.optional||t.negative||(t.fastOr&&Array.from(t.fastOr).forEach((t=>{e.push(t)})),t.choices&&t.choices.forEach((t=>{t.forEach((t=>{let n=sr(t);n&&e.push(n)}))})),n+=1)})),{wants:e,count:n}}(t.regs);t.wants=r,t.minWant=o,t.minWords=t.regs.filter((t=>!t.optional)).length})),t};var ar=function(t,e){t=lr(t,e);let n={};t.forEach((t=>{t.needs.forEach((e=>{n[e]=n[e]||[],n[e].push(t)})),t.wants.forEach((e=>{n[e]=n[e]||[],n[e].push(t)}))})),Object.keys(n).forEach((t=>{let e={};n[t]=n[t].filter((t=>!e[t.match]&&(e[t.match]=!0,!0)))}));let r=t.filter((t=>0===t.needs.length&&0===t.wants.length));return{hooks:n,always:r}};var cr=function(t,e){return t.map(((n,r)=>{let o=[];Object.keys(e).forEach((n=>{t[r].has(n)&&(o=o.concat(e[n]))}));let i={};return o=o.filter((t=>!i[t.match]&&(i[t.match]=!0,!0))),o}))};var ur=function(t,e){return t.map(((t,n)=>{let r=e[n];return t=(t=(t=t.filter((t=>t.needs.every((t=>r.has(t)))))).filter((t=>void 0===t.ifNo||!0!==t.ifNo.some((t=>r.has(t)))))).filter((t=>{if(0===t.wants.length)return!0;return t.wants.filter((t=>r.has(t))).length>=t.minWant}))}))};var hr=function(t,e,n,r,o){let i=[];for(let n=0;n0&&(a.ptrs.forEach((t=>{t[0]=n;let e=Object.assign({},l,{pointer:t});void 0!==l.unTag&&(e.unTag=l.unTag),i.push(e)})),!0===o.matchOne))return[i[0]]}return i};var fr=function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=cr(o,e.hooks);return i=ur(i,o),e.always.length>0&&(i=i.map((t=>t.concat(e.always)))),i=function(t,e){return t.map(((t,n)=>{let r=e[n].length;return t=t.filter((t=>r>=t.minWords)),t}))}(i,t),hr(i,t,o,n,r)};var pr=function(t,e,n){let r=n.one.tagSet;if(!r.hasOwnProperty(e))return!0;let o=r[e].not||[];for(let e=0;e{if(!t.tag&&!t.chunk&&!t.unTag)return;let o=t.reason||t.match,c=i([t.pointer],e)[0];if(!0===t.safe){if(!1===pr(c,t.tag,r))return;if("-"===c[c.length-1].post)return}if(void 0!==t.tag&&(s(c,t.tag,n,t.safe,`[post] '${o}'`),"Noun"===t.tag&&a)){let e=c[c.length-1];a(e.text)?s([e],"Plural",n,t.safe,"quick-plural"):s([e],"Singular",n,t.safe,"quick-singular")}void 0!==t.unTag&&l(c,t.unTag,n,t.safe,o),t.chunk&&c.forEach((e=>e.chunk=t.chunk))}))},mr={lib:{buildNet:function(t){let e=this.methods().one.buildNet(t,this.world());return e.isNet=!0,e}},api:ir,methods:{one:{buildNet:ar,bulkMatch:fr,bulkTagger:dr}}};const gr=/ /,wr=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},vr=function(t,e,n,r){if(!0===t.tags.has(e))return null;if("."===e)return null;let o=n[e];if(o){if(o.not&&o.not.length>0)for(let e=0;e0)for(let e=0;e{let r=t.map((t=>t.text||"["+t.implicit+"]")).join(" ");var o;"string"!=typeof e&&e.length>2&&(e=e.slice(0,2).join(", #")+" +"),e="string"!=typeof e?e.join(", #"):e,console.log(` ${(o=r,"[33m[3m"+o+"[0m").padEnd(24)} [32m→[0m #${e.padEnd(22)} ${(t=>"[3m"+t+"[0m")(n)}`)})(t,e,o),!0!=(l=e,"[object Array]"===Object.prototype.toString.call(l)))if("string"==typeof e)if(e=e.trim(),gr.test(e))!function(t,e,n,r){let o=e.split(gr);t.forEach(((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),vr(t,i,n,r))}))}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nbr(t,e,n,r)))};var yr=br;var xr=function(t,e,n){e=e.trim().replace(/^#/,"");for(let r=0;r0)for(let t=0;t/),n=[];e.forEach((t=>{n=n.concat(function(t){if(!(t=t.trim()))return null;if(/^\[/.test(t)&&/\]$/.test(t)){let e=(t=(t=t.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return e=e.map((t=>t.trim())).filter((t=>t)),e=e.map((t=>jr({id:t}))),e}return[jr({id:t})]}(t))})),n=n.filter((t=>t));let r=n[0];for(let t=1;t{let n=[],r=[t];for(;r.length>0;){let t=r.pop();n.push(t),t.children&&t.children.forEach((n=>{e&&e(t,n),r.push(n)}))}return n},Pr=t=>"[object Array]"===Object.prototype.toString.call(t),_r=t=>(t=t||"").trim(),Sr=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach((t=>{if(!t.trim()||Or.test(t))return;let e=(t=>{const e=/^( {2}|\t)/;let n=0;for(;e.test(t);)t=t.replace(e,""),n+=1;return n})(t);n.push({indent:e,node:Er(t)})}));let r=function(t){let e={children:[]};return t.forEach(((n,r)=>{0===n.indent?e.children=e.children.concat(n.node):t[r-1]&&function(t,e){let n=t[e].indent;for(;e>=0;e-=1)if(t[e].indent{e[t.id]=t}));let n=jr({});return t.forEach((t=>{if((t=jr(t)).parent)if(e.hasOwnProperty(t.parent)){let n=e[t.parent];delete t.parent,n.children.push(t)}else console.warn(`[Grad] - missing node '${t.parent}'`);else n.children.push(t)})),n}(t):(kr(e=t).forEach(jr),e);var e},Ar=function(t,e){let n="-> ";e&&(n=(t=>"[2m"+t+"[0m")("→ "));let r="";return kr(t).forEach(((t,o)=>{let i=t.id||"";if(e&&(i=(t=>"[31m"+t+"[0m")(i)),0===o&&!t.id)return;let s=t._cache.parents.length;r+=" ".repeat(s)+n+i+"\n"})),r},Tr=function(t){let e=kr(t);e.forEach((t=>{delete(t=Object.assign({},t)).children}));let n=e[0];return n&&!n.id&&0===Object.keys(n.props).length&&e.shift(),e},$r={text:Ar,txt:Ar,array:Tr,flat:Tr},Cr=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Ar(t,!0)),null):$r.hasOwnProperty(e)?$r[e](t):t},zr=t=>{kr(t,((t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))}))},Nr=/\//;class g{constructor(t={}){Object.defineProperty(this,"json",{enumerable:!1,value:t,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(t={}){let e=this.json.props||{};return"string"==typeof t&&(e[t]=!0),this.json.props=Object.assign(e,t),this}get(t){if(t=_r(t),!Nr.test(t)){let e=this.json.children.find((e=>e.id===t));return new g(e)}let e=((t,e)=>{let n=(t=>"string"!=typeof t?t:(t=t.replace(/^\//,"")).split(/\//))(e=e||"");for(let e=0;et.id===n[e]));if(!r)return null;t=r}return t})(this.json,t)||jr({});return new g(e)}add(t,e={}){if(Pr(t))return t.forEach((t=>this.add(_r(t),e))),this;t=_r(t);let n=jr({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=_r(t),this.json.children=this.json.children.filter((e=>e.id!==t)),this}nodes(){return kr(this.json).map((t=>(delete(t=Object.assign({},t)).children,t)))}cache(){return(t=>{let e=kr(t,((t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],t._cache.children=t._cache.children||[],e._cache.parents=t._cache.parents.concat([t.id]))})),n={};e.forEach((t=>{t.id&&(n[t.id]=t)})),e.forEach((t=>{t._cache.parents.forEach((e=>{n.hasOwnProperty(e)&&n[e]._cache.children.push(t.id)}))})),t._cache.children=Object.keys(n)})(this.json),this}list(){return kr(this.json)}fillDown(){var t;return t=this.json,kr(t,((t,e)=>{e.props=((t,e)=>(Object.keys(e).forEach((n=>{if(e[n]instanceof Set){let r=t[n]||new Set;t[n]=new Set([...r,...e[n]])}else if((t=>t&&"object"==typeof t&&!Array.isArray(t))(e[n])){let r=t[n]||{};t[n]=Object.assign({},e[n],r)}else Pr(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])})),t))(e.props,t.props)})),this}depth(){zr(this.json);let t=kr(this.json),e=t.length>1?1:0;return t.forEach((t=>{if(0===t._cache.parents.length)return;let n=t._cache.parents.length+1;n>e&&(e=n)})),e}out(t){return zr(this.json),Cr(this.json,t)}debug(){return zr(this.json),Cr(this.json,"debug"),this}}const Lr=function(t){let e=Sr(t);return new g(e)};Lr.prototype.plugin=function(t){t(this)};var Vr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Hyphenated:"cyan",Adverb:"cyan"};const qr=function(t){if(Vr.hasOwnProperty(t.id))return Vr[t.id];if(Vr.hasOwnProperty(t.is))return Vr[t.is];let e=t._cache.parents.find((t=>Vr[t]));return Vr[e]};var Fr=function(t){const e={};return t.forEach((t=>{let{not:n,also:r,is:o,novel:i}=t.props,s=t._cache.parents;r&&(s=s.concat(r)),e[t.id]={is:o,not:n,novel:i,also:r,parents:s,children:t._cache.children,color:qr(t)}})),Object.keys(e).forEach((t=>{let n=new Set(e[t].not);e[t].not.forEach((t=>{e[t]&&e[t].children.forEach((t=>n.add(t)))})),e[t].not=Array.from(n)})),e};const Gr=function(t){return t?"string"==typeof t?[t]:t:[]};var Dr=function(t,e){return t=function(t,e){return Object.keys(t).forEach((n=>{t[n].isA&&(t[n].is=t[n].isA),t[n].notA&&(t[n].not=t[n].notA),t[n].is&&"string"==typeof t[n].is&&(e.hasOwnProperty(t[n].is)||t.hasOwnProperty(t[n].is)||(t[t[n].is]={})),t[n].not&&"string"==typeof t[n].not&&!t.hasOwnProperty(t[n].not)&&(e.hasOwnProperty(t[n].not)||t.hasOwnProperty(t[n].not)||(t[t[n].not]={}))})),t}(t,e),Object.keys(t).forEach((e=>{t[e].children=Gr(t[e].children),t[e].not=Gr(t[e].not)})),Object.keys(t).forEach((e=>{(t[e].not||[]).forEach((n=>{t[n]&&t[n].not&&t[n].not.push(e)}))})),t};var Br=function(t,e){Object.keys(e).length>0&&(t=function(t){return Object.keys(t).forEach((e=>{t[e]=Object.assign({},t[e]),t[e].novel=!0})),t}(t)),t=Dr(t,e);const n=function(t){const e=Object.keys(t).map((e=>{let n=t[e];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:e,parent:n.is,props:r,children:[]}}));return Lr(e).cache().fillDown().out("array")}(Object.assign({},e,t));return Fr(n)},Ur={one:{setTag:yr,unTag:xr,addTags:Br}};const Mr=function(t){return"[object Array]"===Object.prototype.toString.call(t)},Wr={tag:function(t,e="",n){if(!this.found||!t)return this;let r=this.termList();if(0===r.length)return this;const{methods:o,verbose:i,world:s}=this;return!0===i&&console.log(" + ",t,e||""),Mr(t)?t.forEach((t=>o.one.setTag(r,t,s,n,e))):o.one.setTag(r,t,s,n,e),this.uncache(),this},tagSafe:function(t,e=""){return this.tag(t,e,!0)},unTag:function(t,e){if(!this.found||!t)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:o,model:i}=this;!0===o&&console.log(" - ",t,e||"");let s=i.one.tagSet;return Mr(t)?t.forEach((t=>r.one.unTag(n,t,s))):r.one.unTag(n,t,s),this.uncache(),this},canBe:function(t){t=t.replace(/^#/,"");let e=this.model.one.tagSet;if(!e.hasOwnProperty(t))return this;let n=e[t].not||[],r=[];this.document.forEach(((t,e)=>{t.forEach(((t,o)=>{n.find((e=>t.tags.has(e)))&&r.push([e,o,o+1])}))}));let o=this.update(r);return this.difference(o)}};var Ir=Wr;var Rr=function(t){Object.assign(t.prototype,Ir)};var Qr={addTags:function(t){const{model:e,methods:n}=this.world(),r=e.one.tagSet;let o=(0,n.one.addTags)(t,r);return e.one.tagSet=o,this}};const Hr=new Set(["Auxiliary","Possessive"]);var Zr=function(t){const{document:e,world:n}=t,r=n.model.one.tagSet;e.forEach((t=>{t.forEach((t=>{let e=Array.from(t.tags);t.tagRank=function(t,e){return t=t.sort(((t,n)=>{if(Hr.has(t)||!e.hasOwnProperty(n))return 1;if(Hr.has(n)||!e.hasOwnProperty(t))return-1;let r=e[t].children||[],o=r.length;return r=e[n].children||[],o-r.length})),t}(e,r)}))}))},Kr={model:{one:{tagSet:{}}},compute:{tagRank:Zr},methods:Ur,api:Rr,lib:Qr};const Jr=/([.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s)/g,Xr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s$/,Yr=/((?:\r?\n|\r)+)/;var to=function(t){let e=[],n=t.split(Yr);for(let t=0;t0&&(o.push(i),t[e]="")}return o};const io={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},so=RegExp("["+Object.keys(io).join("")+"]","g"),lo=RegExp("["+Object.values(io).join("")+"]","g"),ao=function(t){if(!t)return!1;let e=t.match(lo);return null!==e&&1===e.length};var co=function(t){let e=[];for(let n=0;n(t[e]=!0,t)),{});var Po=function(t,e){let n=[],r=[];if("number"==typeof(t=t||"")&&(t=String(t)),function(t){return"[object Array]"===Object.prototype.toString.call(t)}(t))return t;const o=t.split(Eo);for(let t=0;t0?(n[n.length-1]+=i,n.push(e)):n.push(i+e),i=""):i+=e}return i&&(0===n.length&&(n[0]=""),n[n.length-1]+=i),n=xo(n),n=bo(n),n=n.filter((t=>t)),n};const _o=/\p{Letter}/u,So=/[\p{Number}\p{Currency_Symbol}]/u,Ao=/^[a-z]\.([a-z]\.)+/i,To=/[sn]['’]$/;var $o=function(t,e){let{prePunctuation:n,postPunctuation:r,emoticons:o}=e.one,i=t,s="",l="",a=Array.from(t);if(o.hasOwnProperty(t.trim()))return{str:t.trim(),pre:s,post:" "};let c=a.length;for(let t=0;t(l=t||"",""))),t=i,s=""),{str:t,pre:s,post:l}};var Co=(t,e)=>{let{str:n,pre:r,post:o}=$o(t,e);return{text:n,pre:r,post:o,tags:new Set}};var zo=function(t,e){const n=e.model.one.unicode||{};let r=(t=t||"").split("");return r.forEach(((t,e)=>{n[t]&&(r[e]=n[t])})),r.join("")};var No=function(t){let e=t=(t=(t=t||"").toLowerCase()).trim();return t=(t=(t=t.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(t)&&(t=(t=(t=t.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(t=(t=t.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(t=e),t=t.replace(/([0-9]),([0-9])/g,"$1$2")};const Lo=/([A-Z]\.)+[A-Z]?,?$/,Vo=/^[A-Z]\.,?$/,qo=/[A-Z]{2,}('s|,)?$/,Fo=/([a-z]\.)+[a-z]\.?$/;var Go=function(t){return function(t){return!0===Lo.test(t)||!0===Fo.test(t)||!0===Vo.test(t)||!0===qo.test(t)}(t)&&(t=t.replace(/\./g,"")),t};var Do=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=No(r),r=n(r,e),r=Go(r),t.normal=r};var Bo=function(t,e){const{methods:n,model:r}=e,{splitSentences:o,splitTerms:i,splitWhitespace:s}=n.one.tokenize;return t=o(t=t||"",e).map((t=>{let n=i(t,r);return n=n.map((t=>s(t,r))),n.forEach((t=>{Do(t,e)})),n})),t};const Uo=/[ .][A-Z]\.? *$/i,Mo=/(?:\u2026|\.{2,}) *$/,Wo=/\p{L}/u,Io=/^[A-Z]\. $/;var Ro={one:{killUnicode:zo,tokenize:{splitSentences:go,isSentence:function(t,e){if(!1===Wo.test(t))return!1;if(!0===Uo.test(t))return!1;if(3===t.length&&Io.test(t))return!1;if(!0===Mo.test(t))return!1;let n=t.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==e.hasOwnProperty(r)},splitTerms:Po,splitWhitespace:Co,fromString:Bo}}};var Qo={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Ho={},Zo={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((t=>{t[0].forEach((e=>{Ho[e]=!0,Zo[e]="Abbreviation",void 0!==t[1]&&(Zo[e]=[Zo[e],t[1]])}))}));var Ko=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out","ex"].reduce(((t,e)=>(t[e]=!0,t)),{});let Jo={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Xo={};Object.keys(Jo).forEach((function(t){Jo[t].split("").forEach((function(e){Xo[e]=t}))}));const Yo=/\//,ti=/[a-z]\.[a-z]/i,ei=/[0-9]/;var ni=function(t,e){let n=t.normal||t.text||t.machine;const r=e.model.one.aliases;if(r.hasOwnProperty(n)&&(t.alias=t.alias||[],t.alias.push(r[n])),Yo.test(n)&&!ti.test(n)&&!ei.test(n)){let e=n.split(Yo);e.length<=2&&e.forEach((e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))}))}return t};const ri=/^\p{Letter}+-\p{Letter}+$/u;var oi=function(t){let e=t.implicit||t.normal||t.text;e=e.replace(/['’]s$/,""),e=e.replace(/s['’]$/,"s"),e=e.replace(/([aeiou][ktrp])in'$/,"$1ing"),ri.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)};var ii=function(t){let e=t.docs,n={};for(let t=0;tci(t,ni),machine:t=>ci(t,oi),normal:t=>ci(t,Do),freq:ii,offset:si,index:li,wordCount:ai},methods:Ro,model:{one:{aliases:Qo,abbreviations:Ho,prefixes:Ko,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},prePunctuation:{"#":!0,"@":!0,_:!0,"°":!0,"":!0,"":!0,"":!0,"\ufeff":!0},postPunctuation:{"%":!0,_:!0,"°":!0,"":!0,"":!0,"":!0,"\ufeff":!0},lexicon:Zo,unicode:Xo,emoticons:{"<3":!0,"3":!0,"<\\3":!0,":^P":!0,":^p":!0,":^O":!0,":^3":!0}}},hooks:["alias","machine","index","id"]};var hi={typeahead:function(t){const e=t.model.one.typeahead,n=t.docs;if(0===n.length||0===Object.keys(e).length)return;let r=n[n.length-1]||[],o=r[r.length-1];if(!o.post&&e.hasOwnProperty(o.normal)){let n=e[o.normal];o.implicit=n,o.machine=n,o.typeahead=!0,t.compute.preTagger&&t.last().unTag("*").compute(["lexicon","preTagger"])}}};const fi=function(){const t=this.docs;if(0===t.length)return this;let e=t[t.length-1]||[],n=e[e.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var pi=function(t){t.prototype.autoFill=fi};var di=function(t,e,n){let r={},o=[],i=n.prefixes||{};return t.forEach((t=>{let s=(t=t.toLowerCase().trim()).length;e.max&&s>e.max&&(s=e.max);for(let l=e.min;l{delete r[t]})),r};const mi={safe:!0,min:3};var gi={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},mi,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=di(t,e,this.world());return Object.keys(o).forEach((t=>{n.one.typeahead.hasOwnProperty(t)?delete n.one.typeahead[t]:n.one.typeahead[t]=o[t]})),this}};var wi={model:{one:{typeahead:{}}},api:pi,lib:gi,compute:hi,hooks:["typeahead"]};w.extend(tt),w.extend(In),w.extend(un),w.extend(or),w.extend(Kr),w.plugin(At),w.extend(ui),w.plugin(x),w.extend(It),w.extend(wi),w.extend(qt),w.extend(mr);export{w as default};
diff --git a/builds/three/compromise-three.cjs b/builds/three/compromise-three.cjs
index bd7e66404..536a02b74 100644
--- a/builds/three/compromise-three.cjs
+++ b/builds/three/compromise-three.cjs
@@ -1 +1 @@
-var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t,r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)},isFull:function(){let e=this.pointer;if(!e)return!0;let t=this.document;for(let n=0;no)return!1}return!0},getNth:function(e){return"number"==typeof e?this.eq(e):"string"==typeof e?this.if(e):this}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var p=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e)return new t(r.one.tokenize.fromString(e,n));if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let m=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=p(e,l,m);return e&&n.compute(m.hooks),n};Object.defineProperty(f,"_world",{value:m,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=p(e,l,m);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.8.2";var v=f,b=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},I=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},N=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},j=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?I(n):(I(n),I([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!P(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||P(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,(e=>e.toLowerCase())))}(e,o,n),A(e,o,n)};let x=0;const E=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var T=function(e){let[t,n]=e.index||[0,0];x+=1,x=x>46655?0:x,t=t>46655?0:t,n=n>1294?0:n;let r=E(x.toString(36));r+=E(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const C=function(e){e.has("@hasContraction")&&"function"==typeof e.contractions&&e.grow("@hasContraction").contractions().expand()},D=e=>"[object Array]"===Object.prototype.toString.call(e),O=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:D(e)?D(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=T(e),e)))}(d),n?(C(t.update([u]).firstTerm()),j(h,u,d,r)):(C(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(G,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let a=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(a.docs[0]||[]).map((e=>Array.from(e.tags)));"string"==typeof e&&(e=this.fromText(e).compute("id")),r.insertAfter(e),a.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?(this.soften(),r.replaceWith(t,n)):this}};var z=B,$=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const L={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e));let a=!n.ptrs;r.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction").contractions().expand();let o=n.fullPointer,i=r.fullPointer.reverse(),s=$(this.document,i);return o=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(o,t(i)),n.ptrs=o,n.document=s,n.compute("index"),a&&(n.ptrs=void 0),e?n.toView(o):(this.ptrs=[],n.none())}};L.delete=L.remove;var S=L;const M={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};M.deHyphenate=M.dehyphenate,M.toQuotation=M.toQuotations;var H=M,J={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),K=new Set(["freq","frequency","topk","repeats"]),q=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return W.has(e)&&(e="sequential"),q.has(e)&&(e="alpha"),K.has(e)?(a=J.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof J[e]?(a=a.sort(J[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){if(e.length>0){let t=e[e.length-1],n=t[t.length-1];!1===/ /.test(n.post)&&(n.post+=" ")}return e=e.concat(t)};var Q={concat:function(e){if("string"==typeof e){let t=this.fromText(e);if(this.found&&this.ptrs){let e=this.fullPointer,n=e[e.length-1][0];this.document.splice(n,0,...t.document)}else this.document=this.document.concat(t.document);return this.all().compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.docs),e.all()}(this,e);if(t=e,"[object Array]"===Object.prototype.toString.call(t)){let t=R(this.document,e);return this.document=t,this.all()}var t;return this}},_={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const Y=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},F,z,S,H,U,Q,_);var Z=function(e){Object.assign(e.prototype,Y)};const X={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const re=/'/,ae=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(re)[0];if(ae.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null},le=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ge=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,pe=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,me=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],r=n.text.match(ge);return null!==r?!0===n.tags.has("PhoneNumber")||me.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(pe),null!==r?[r[1],"to",r[4]]:null)};const ve=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,be=new Set(["st","nd","rd","th","am","pm","max","°","s","e"]);var ye=function(e,t){let n=e[t].text.match(ve);if(null!==n){let e=n[2].toLowerCase().trim();return be.has(e)?null:[n[1],e]}return null};const we=/'/,ke=/^[0-9][^-–—]*[-–—].*?[0-9]/,Pe=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},Ie={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},Ne=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=Ne(o,r[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](r,s,t)),!c&&Ie.hasOwnProperty(l)&&(c=Ie[l](r,s)),c?(c=je(c,e),ne(n,[i,s],c),Pe(n[i],e,s,c.length)):ke.test(r[s].normal)?(c=fe(r,s),c&&(c=je(c,e),ne(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),Pe(n[i],e,s,c.length))):(c=ye(r,s),c&&(c=je(c,e),ne(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))},Ee={model:te,compute:{contractions:xe},hooks:["contractions"]},Te=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===Ce.test(l)){let e=l.replace(Ce,"");if(i.hasOwnProperty(e)&&e.length>3&&De.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Ve={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}},Ge={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},Be={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Fe}},compute:Ve,lib:Ge,hooks:["lexicon"]},ze=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;let a=n.one.tokenize.splitTerms(e,r).map((e=>n.one.tokenize.splitWhitespace(e,r)));return a.map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const $e=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Me=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var He=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Me(e.goNext,void 0),e.failTo=Me(e.failTo,0),e.endAs=Me(e.endAs,null),e};const Je={buildTrie:function(e){const t=ze(e,this.world());return He(t)}};Je.compile=Je.buildTrie;var We={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:ze(e,this.world));var r;let a=Se(this,n,t);return a=a.settle(),a}},lib:Je};const Ke=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},qe=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Ke(n,t),Object.keys(r).forEach((e=>{r[e]=Ke(r[e],t)})),{ptrs:n,byGroup:r}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,Qe=e=>e&&Ue(e)&&!0===e.isNet,_e=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Ye={matchOne:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(Qe(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=_e(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=qe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e);if(Qe(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=_e(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=qe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Re(e))return e.fullPointer.length>0;if(Qe(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=_e(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=_e(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=_e(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}},Ze={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Xe=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},tt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Xe(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Xe(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var rt=nt;const at=Object.assign({},Ye,Ze,rt);at.lookBehind=at.before,at.lookBefore=at.before,at.lookAhead=at.after,at.lookAfter=at.after,at.notIf=at.ifNo;var ot=function(e){Object.assign(e.prototype,at)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?r.push(e):r=r.concat(e.split(lt))})),r=ct(r),r};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,gt=/&&/,pt=new RegExp(/^<\s*(\S+)\s*>/),mt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),vt=e=>e.charAt(0),bt=e=>e.substring(1),yt=e=>e.substring(0,e.length-1),wt=function(e){return e=bt(e),e=yt(e)},kt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ft(e)&&(n.end=!0,e=yt(e)),"^"===vt(e)&&(n.start=!0,e=bt(e)),("["===vt(e)||"]"===ft(e))&&(n.group=null,"["===vt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===vt(e))){const t=pt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=yt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=yt(e)),"?"===ft(e)&&(n.optional=!0,e=yt(e)),"!"===vt(e)&&(n.negative=!0,e=bt(e)),"~"===vt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===vt(e)&&")"===ft(e)){gt.test(e)?(n.choices=e.split(gt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=bt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=yt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>kt(e,t))))),e=""}if("/"===vt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===vt(e)&&"}"===ft(e)){if(e=wt(e),n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.sense=e[2])}return n}if("<"===vt(e)&&">"===ft(e))return e=wt(e),n.chunk=mt(e),n.greedy=!0,n;if("%"===vt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===vt(e)?(n.tag=bt(e),n.tag=mt(n.tag),n):"@"===vt(e)?(n.method=bt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var Pt=kt;const At=/[a-z0-9][-–—][a-z]/i;var It=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&At.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e};const Nt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},jt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},xt=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var Et=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(Nt(e,t)):"Noun"===e.pos?n=n.concat(jt(e,t)):"Adjective"===e.pos&&(n=n.concat(xt(e,t))):(n=n.concat(Nt(e,t)),n=n.concat(jt(e,t)),n=n.concat(xt(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))},Tt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e},Ct=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=ht(e);return r=r.map((e=>Pt(e,t))),r=It(r,n),r=Et(r,n),r=Tt(r),r};const Dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ot=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),Lt=(e,t)=>-1!==e.pre.indexOf(t),St={hasQuote:e=>Ft.test(e.pre)||Gt.test(e.post),hasComma:e=>$t(e,","),hasPeriod:e=>!0===$t(e,".")&&!1===$t(e,"..."),hasExclamation:e=>$t(e,"!"),hasQuestionMark:e=>$t(e,"?")||$t(e,"¿"),hasEllipses:e=>$t(e,"..")||$t(e,"…")||Lt(e,"..")||Lt(e,"…"),hasSemicolon:e=>$t(e,";"),hasColon:e=>$t(e,":"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Bt.test(e.post)||Bt.test(e.pre),hasDash:e=>zt.test(e.post)||zt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};St.hasQuotation=St.hasQuote;var Mt=St;let Ht=function(){};Ht=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.id&&t.id===e.id)return!0;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Vt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Mt[t.method]&&!0===Mt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}if(void 0!==t.chunk)return e.chunk===t.chunk;if(void 0!==t.switch)return e.switch===t.switch;if(void 0!==t.machine)return e.normal===t.machine||e.machine===t.machine||e.root===t.machine;if(void 0!==t.sense)return e.sense===t.sense;if(void 0!==t.fastOr){if(t.pos&&!e.tags.has(t.pos))return null;let n=e.root||e.implicit||e.machine||e.normal;return t.fastOr.has(n)||t.fastOr.has(e.text)}return void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Ht(e,t,n,r))):t.choices.some((t=>Ht(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Jt=Ht;const Wt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(Kt(e,e.t).length=r-e.t),e.t=r,!0)};const Ut=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Jt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Jt(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(Kt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},_t=function(e,t,n){let r=0;for(let a=e.t;ar||(e.t+=r,0))},Yt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Jt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];n&&(Jt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)?e.r+=1:n.optional&&t[e.r+2]&&Jt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?_t(e,r,t[e.r+1]):(e.t+=1,!0)},Zt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Jt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Jt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Xt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null},en=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},tn=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Zt(e),r.implicit&&e.terms[e.t+1]&&en(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Xt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Kt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},nn=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything){if(!0!==Wt(e,a)){if(e.negative){if(!Yt(a))return null}else if(!0!==Jt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else if(!tn(a))return null}else if(!tn(a))return null}else{if(e.negative&&e.anything)return null;if(!tn(a))return null}else if(!Qt(a))return null}else if(!Rt(a))return null}else if(!qt(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}},rn=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}},an=function(e,t,n){return e=e.filter((e=>{let[r,a,o]=e.pointer,i=n[r].slice(a,o);for(let e=0;e{e.groups[n][0]=t})),e},sn=function(e,t,n){let r=nn(e,t,0,e.length);return r?(r=on(r,n),r):null};var ln=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=sn(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),t.notIf&&(i=an(i,t.notIf,e)),i=rn(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i},un={api:ot,methods:{one:{termMethods:Mt,parseMatch:Ct,match:ln}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const cn=/^\../,hn=/^#./,dn=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),cn.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var gn={html:function(e){let{starts:t,ends:n}=dn(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(mn,""),vn.test(a)&&(a=" "),a=a.replace(fn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(mn,""),a="-"===a?" ":a.replace(pn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&bn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},wn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};wn.clean=wn.normal,wn.reduced=wn.root;var kn=wn;let Pn=[],An=0;for(;An<64;)Pn[An]=0|4294967296*Math.sin(++An%Math.PI);function In(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(An=i=0;An>4]+Pn[i]+~~o[An|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const Nn={text:!0,terms:!0};let jn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const xn=function(e,t){return Object.assign({},e,t)},En={text:e=>yn(e,{keepPunct:!0},!1),normal:e=>yn(e,xn(kn.normal,{keepPunct:!0}),!1),implicit:e=>yn(e,xn(kn.implicit,{keepPunct:!0}),!1),machine:e=>yn(e,jn,!1),root:e=>yn(e,xn(jn,{form:"root"}),!1),hash:e=>In(yn(e,{keepPunct:!0},!1)),offset:e=>{let t=En.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};En.sentences=En.sentence,En.clean=En.normal,En.reduced=En.root;const Tn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Nn,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&En[o]&&(a[o]=En[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};Tn.data=Tn.json;var Cn=Tn,Dn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};const On="[0m";var Vn={green:e=>"[32m"+e+On,red:e=>"[31m"+e+On,blue:e=>"[34m"+e+On,magenta:e=>"[35m"+e+On,cyan:e=>"[36m"+e+On,yellow:e=>"[33m"+e+On,black:e=>"[30m"+e+On,dim:e=>"[2m"+e+On,i:e=>"[3m"+e+On},Fn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Vn.blue("\n ──────")),t.forEach((t=>{console.log(Vn.blue("\n ┌─────────")),t.forEach((t=>{let r=[...t.tags||[]],a=t.text||"-";t.sense&&(a=`{${t.normal}/${t.sense}}`),t.implicit&&(a="["+t.implicit+"]"),a=Vn.yellow(a);let o="'"+a+"'";if(t.reference){let n=e.update([t.reference]).text("normal");o+=` - ${Vn.dim(Vn.i("["+n+"]"))}`}o=o.padEnd(18);let i=Vn.blue(" │ ")+Vn.i(o)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Vn[n](e)}))),e.join(", ")}(r,n);console.log(i)}))}))},Gn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Vn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Vn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Vn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Vn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))},Bn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${Vn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))},zn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(Dn(t),t):(!1!==e.tags&&(Fn(t),console.log("\n")),!0===e.chunks&&(Gn(t),console.log("\n")),!0===e.highlight&&(Bn(t),console.log("\n")),t)};const $n=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Ln=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()},wrap:function(e){return Ln(this,e)}};var Mn=Sn,Hn={text:function(e){let t={};var n;if(e&&"string"==typeof e&&kn.hasOwnProperty(e)?t=Object.assign({},kn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e)),void 0===t.keepSpace&&this.pointer&&(t.keepSpace=!1),void 0===t.keepPunct&&this.pointer){let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}return void 0===t.keepPunct&&(t.keepPunct=!0),void 0===t.keepSpace&&(t.keepSpace=!0),function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Un=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Rn=function(e,t){let n=Un(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r},Qn=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n},_n={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>qn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n},Xn=function(e,t){let n=Un(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>qn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},tr=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},nr={union:function(e){e=er(e,this);let t=Yn(this.fullPointer,e.fullPointer);return t=tr(t,this.document),this.toView(t)}};nr.and=nr.union,nr.intersection=function(e){e=er(e,this);let t=Xn(this.fullPointer,e.fullPointer);return t=tr(t,this.document),this.toView(t)},nr.not=function(e){e=er(e,this);let t=Zn(this.fullPointer,e.fullPointer);return t=tr(t,this.document),this.toView(t)},nr.difference=nr.not,nr.complement=function(){let e=this.all(),t=Zn(e.fullPointer,this.fullPointer);return t=tr(t,this.document),this.toView(t)},nr.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=Yn(e,[t])})),e=tr(e,this.document),this.update(e)};var rr=function(e){Object.assign(e.prototype,nr)},ar={methods:_n,api:rr},or=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const ir=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var sr=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.notIf&&(e.notIf=n(e.notIf,{},t)),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(ir(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(ir(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=ir(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e},lr=function(e,t){e=sr(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}},ur=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))},cr=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>r.has(e))).length>=e.minWant))}))},hr=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o},dr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=ur(a,t.hooks);return o=cr(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),hr(o,e,a,n,r)},gr=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===gr(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag&&l)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))})))},mr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:or,methods:{one:{buildNet:lr,bulkMatch:dr,bulkTagger:pr}}};const fr=/ /,vr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},br=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,"[33m[3m"+a+"[0m").padEnd(24)} [32m→[0m #${t.padEnd(22)} ${(e=>"[3m"+e+"[0m")(n)}`)})(e,t,a),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),fr.test(t))!function(e,t,n,r){let a=t.split(fr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),br(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nyr(e,t,n,r)))};var wr=yr,kr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>Pr({id:e}))),t}return[Pr({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},jr=e=>"[object Array]"===Object.prototype.toString.call(e),xr=e=>(e=e||"").trim(),Er=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||Ar.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Ir(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=Pr({});return e.forEach((e=>{if((e=Pr(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(Nr(t=e).forEach(Pr),t);var t},Tr=function(e,t){let n="-> ";t&&(n=(e=>"[2m"+e+"[0m")("→ "));let r="";return Nr(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>"[31m"+e+"[0m")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},Cr=function(e){let t=Nr(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Dr={text:Tr,txt:Tr,array:Cr,flat:Cr},Or=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Tr(e,!0)),null):Dr.hasOwnProperty(t)?Dr[t](e):e},Vr=e=>{Nr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Fr=/\//;let Gr=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=xr(e),!Fr.test(e)){let t=this.json.children.find((t=>t.id===e));return new Gr(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||Pr({});return new Gr(t)}add(e,t={}){if(jr(e))return e.forEach((e=>this.add(xr(e),t))),this;e=xr(e);let n=Pr({id:e,props:t});return this.json.children.push(n),new Gr(n)}remove(e){return e=xr(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Nr(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Nr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return Nr(this.json)}fillDown(){var e;return e=this.json,Nr(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else jr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Vr(this.json);let e=Nr(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Vr(this.json),Or(this.json,e)}debug(){return Vr(this.json),Or(this.json,"debug"),this}};const Br=function(e){let t=Er(e);return new Gr(t)};Br.prototype.plugin=function(e){e(this)};var zr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Hyphenated:"cyan",Adverb:"cyan"};const $r=function(e){if(zr.hasOwnProperty(e.id))return zr[e.id];if(zr.hasOwnProperty(e.is))return zr[e.is];let t=e._cache.parents.find((e=>zr[e]));return zr[t]};var Lr=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:$r(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const Sr=function(e){return e?"string"==typeof e?[e]:e:[]};var Mr=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=Sr(e[t].children),e[t].not=Sr(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e},Hr=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Mr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Br(t).cache().fillDown().out("array")}(Object.assign({},t,e));return Lr(n)},Jr={one:{setTag:wr,unTag:kr,addTags:Hr}};const Wr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Kr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Wr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Wr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){e=e.replace(/^#/,"");let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var qr=Kr,Ur=function(e){Object.assign(e.prototype,qr)},Rr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const Qr=new Set(["Auxiliary","Possessive"]);var _r=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Qr.has(e)||!t.hasOwnProperty(n))return 1;if(Qr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},Yr={model:{one:{tagSet:{}}},compute:{tagRank:_r},methods:Jr,api:Ur,lib:Rr};const Zr=/([.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s)/g,Xr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s$/,ea=/((?:\r?\n|\r)+)/;var ta=function(e){let t=[],n=e.split(ea);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const ia={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},sa=RegExp("("+Object.keys(ia).join("|")+")","g"),la=RegExp("("+Object.values(ia).join("|")+")","g"),ua=function(e){if(!e)return!1;let t=e.match(la);return null!==t&&1===t.length};var ca=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var ja=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Ia);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=ka(n),n=ya(n),n=n.filter((e=>e)),n};const xa=/\p{Letter}/u,Ea=/[\p{Number}\p{Currency_Symbol}]/u,Ta=/^[a-z]\.([a-z]\.)+/i,Ca=/[sn]['’]$/;var Da=function(e,t){let{prePunctuation:n,postPunctuation:r,emoticons:a}=t.one,o=e,i="",s="",l=Array.from(e);if(a.hasOwnProperty(e.trim()))return{str:e.trim(),pre:i,post:" "};let u=l.length;for(let e=0;e(s=e||"",""))),e=o,i=""),{str:e,pre:i,post:s}},Oa=(e,t)=>{let{str:n,pre:r,post:a}=Da(e,t);return{text:n,pre:r,post:a,tags:new Set}},Va=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")},Fa=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Ga=/([A-Z]\.)+[A-Z]?,?$/,Ba=/^[A-Z]\.,?$/,za=/[A-Z]{2,}('s|,)?$/,$a=/([a-z]\.)+[a-z]\.?$/;var La=function(e){return function(e){return!0===Ga.test(e)||!0===$a.test(e)||!0===Ba.test(e)||!0===za.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Sa=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Fa(r),r=n(r,t),r=La(r),e.normal=r},Ma=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map((e=>i(e,r))),n.forEach((e=>{Sa(e,t)})),n})),e};const Ha=/[ .][A-Z]\.? *$/i,Ja=/(?:\u2026|\.{2,}) *$/,Wa=/\p{L}/u,Ka=/^[A-Z]\. $/;var qa=function(e,t){if(!1===Wa.test(e))return!1;if(!0===Ha.test(e))return!1;if(3===e.length&&Ka.test(e))return!1;if(!0===Ja.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},Ua={one:{killUnicode:Va,tokenize:{splitSentences:fa,isSentence:qa,splitTerms:ja,splitWhitespace:Oa,fromString:Ma}}},Ra={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qa={},_a={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Qa[t]=!0,_a[t]="Abbreviation",void 0!==e[1]&&(_a[t]=[_a[t],e[1]])}))}));var Ya=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out","ex"].reduce(((e,t)=>(e[t]=!0,e)),{});let Za={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Xa={};Object.keys(Za).forEach((function(e){Za[e].split("").forEach((function(t){Xa[t]=e}))}));const eo=/\//,to=/[a-z]\.[a-z]/i,no=/[0-9]/;var ro=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),eo.test(n)&&!to.test(n)&&!no.test(n)){let t=n.split(eo);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const ao=/^\p{Letter}+-\p{Letter}+$/u;var oo=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),ao.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},io=function(e){let t=e.docs,n={};for(let e=0;eco(e,ro),machine:e=>co(e,oo),normal:e=>co(e,Sa),freq:io,offset:so,index:lo,wordCount:uo},methods:Ua,model:{one:{aliases:Ra,abbreviations:Qa,prefixes:Ya,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},prePunctuation:{"#":!0,"@":!0,_:!0,"°":!0,"":!0,"":!0,"":!0,"\ufeff":!0},postPunctuation:{"%":!0,_:!0,"°":!0,"":!0,"":!0,"":!0,"\ufeff":!0},lexicon:_a,unicode:Xa,emoticons:{"<3":!0,"3":!0,"<\\3":!0,":^P":!0,":^p":!0,":^O":!0,":^3":!0}}},hooks:["alias","machine","index","id"]},go={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const po=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var mo=function(e){e.prototype.autoFill=po},fo=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const vo={safe:!0,min:3};var bo={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},vo,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=fo(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}},yo={model:{one:{typeahead:{}}},api:mo,lib:bo,compute:go,hooks:["typeahead"]};v.extend(ee),v.extend(Kn),v.extend(un),v.extend(ar),v.extend(Yr),v.plugin(Ee),v.extend(ho),v.plugin(k),v.extend(We),v.extend(yo),v.extend(Be),v.extend(mr);var wo={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},ko={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Tb0Pc0Nd0Je0Hg0BhWjeez,lTmSnQoKpHshGtFuCvoi0Vw6y0;a4e3i1u0;ck,p;k00p0;ee,pee;ah,p,s;!a,y;ahoo,h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;gh,h0;! 0h,m;huh,oh;here nOsk,ut tut;eesh,hh,it,oo;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;! 0h;h1my go0w1;d,sh;ell;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBeAi8o2u0;h,mph,rra0zzB;h,y;ly1o0;r5y8;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww,xcuse me;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;mon,o0;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh,ye;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦dick0gre0ones,records;ens","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦its,my,none,our0;!s","Noun|Verb":"true¦0:94;1:8F;2:7M;3:8Z;4:99;5:8S;6:7Y;7:6Y;8:8T;9:8C;A:9E;a8Ub80c6Ud65e5Vf58g4Zh4Qi4Ij4Fk4Cl40m3On3Ko3Hp2Hques8Wr1Ss0FtZuXvSwEyDzB;ip,oB;ne,om;awn,e5Uie5N;aLeJhGiEoCrB;ap,e8U;nd0rB;k,ry,sh4Yth;ck,nBpe,re,sh;!d,g;e7IiB;p,sB;k,t1;aBed;r,th0;it,lk,rCsBt3ve,x;h,te;!ehou2raA;aEiDoB;iBm9te,w;ce,d;be,ew,s9;cuum,l3X;pBr6;da5gra5Tlo5P;aOeNhrMiLoJrEuCwiBy5E;n,st;nBrn;e,n70;aDeCiBot,u8;bu5ck44gg0m,p;at,k,nd;ck,de,in,nsBp,v6W;f0i7Z;ll,ne,p,r4Gss,t8CuB;ch,r;ck,de,e,le,me,p,re;e5Cow,u8;ar,e,ll,mp0st,xt;g,lBng1rg70s5x;k,ly;a0Lc0Ge0Dh08i06k04l02m01n00ou7CpUqua6UtIuDwB;ea7HiB;ng,pe,t3;bEit,m,ppCrB;ge,pri2v2J;lBo65;e62y;!je7;aKeJiIoFrCuBy1;dy,ff,mb1;a7DeCiBo55ugg1;ke,ng;am,ss,t3;ckCop,p,rB;e,m;ing,pi1;ck,nk,t3;m,p;ck,ge,in,ke,ll,mp,nd,p1rBte,y;!e,t;aFeed,iElDot,rBur;ay,e4NinBu4;g,k1;a6Dit;ll,n,r7Hte;n,rk;ap,ee1Oow;a69e41i1o4O;eep,iBou3;ce,p,t;ateboa6WiB;!p;de,gnBp,ze;!al;aEeDiCoBuff1;ck,p,re,t,w;ft,p,v0;d,i3K;ck,de,pe,re,ve;aCed,nBrv1Et;se,t2F;l,r3t;aEhedu1o5OrB;aCeBo3L;en,w;pe,t3;le,n,r0O;cBil;k,rifi4;aXeFiEoCuB;b,in,le,n,s5E;a8ck,ll,oBpe,u5;f,t;de,ng,p,s1O;aRcQdo,el,fOgNje7lMmKnJo12pHque8sDturn,vBwa68;eBi1Z;al,r2;er6HoDpe7tCuB;lt,me;!a4N;l6Ert;air,eaBly,o4L;l,t;dezvo2Mt;aBedy;ke,rk;ea2i56;a5Vist0r53;act6Ber1No6EuB;nd,se;a2Uo5S;ch,s5T;c15ge,i2ke,lly,nBpYtY;ge,k;a03eZhXiVlRoLrCsy3uB;mp,n3rcha2sh;aIeGiFoBu48;be,ceDdu4fi1grBje7mi2p,te8;amBe69;!me;ed,ss;ce,de,nt;sBy;er5Rs;cti4i2;iFlDoCp,re,sBw0;e,i5Dt;l,p;iBl;ce,sh;nt,s5A;aCce,e2PuB;g,mp,n6;ce,nBy;!t;ck,le,nBpe,t,vot;!e;a2oB;ne,tograph;ak,eDnCrBt;fu4Lm9;!c2O;!l,r;ckGiFnErtDsCtBu2;ch,eA;s,te;!y;!ic;nt,r;!a6;bje7ff0il,oCrButli3A;b9d0ieA;ze;a48eDoB;d,tB;e,i4;ed,gle7t;aIeGiFoCuB;rd0;ck,d3Cld,nBp,uth,ve;it4VkB;ey;lk,n3Vrr4Tss,x;asu3Fn4CrBss;ge,it;il,nDp,rk3HsCtB;ch,t0;h,k;da5n0oeuv3A;aJeHiFoCuB;mp,st;aCbby,ck,g,oBve;k,t;d,n;cBft,m9nFst;en2k;aBc0He3vH;ch,d,k,p,se;bCcBnd,p,t3un3;e,k;el,o2I;eCiBno3X;ck,ll,ss;el,y;aCo1FuB;i4mp;m,zz;mpHnCr3PssB;ue;cr1Hdex,fluEha1k,se25teBvoi4;nt,rB;e8fa4viB;ew;en4;a7le1Y;aGeEiDoCuB;g,nt;l2Wno21ok,p,r2u2;ghlight,ke,re,t;aBd6lp;d,t;ck,m,ndCrBsh,te;b3Im,ne3Xve8;!le;aIloHossGrDuB;arBe3Un;antee,d;aCiBou2Pumb1;nd,p;de,sp;ip;ss,w;in,me,ng,s,te,ze;aWeTiOlLoHrDuB;ck,el,nBss,zz;c2Wd;aCoBy;st,wn;cBgme,me;tu1V;cDg,il,ld,rB;ce,e20mB;!at;us;aCe1Wip,oBy;at,ck,od,w;g,ke,me,re,sh,vo18;eEgDlCnBre,sh,t,x;an4i1S;e,m,t0;ht,u1K;ld;aCeBn4;d,l;r,tu1G;ce,il,ll,rm,v2L;cho,d6ffe7nJsHxDyeB;!baB;ll;cDerci2hib9pBtra7;eriBo0Q;en4meA;el,han6u2;caBtima5;pe;count0d,vy;aXeQiKoHrCuBye;b,el,mp,plica5;aEeDiCoB;ne,p;ft,nk,p,ve;am,ss;ft,g,in;cCd6ubt,wnloB;ad;k,u09;p,sDt3vB;e,iBor4;de;char6h,liCpB;at3lFu5;ke;al,ba5cFfeElDma16pos9siCtaB;il;gn,re;ay;at,ct;li01rB;ea2;b,ma6n4rBte;e,t;a0Bent0Ah03irc1l00oHrDuB;be,e,rBt;e,l,ve;aDeCoBu0Iy;p,ss,wd;d9ep;ck,ft,sh;at,de,in,lRmKnDpy,re,st,uBv0;gh,nBp1;sZt;ceFdu7fli7glomeGsDtBveL;a7rB;a8ol;eAtru7;ct;ntBrn;ra5;bFfoEmDpB;leBou0Fromi2;meA;a0DeAit,u5;rt;at,iB;ne;lap2oB;r,ur;aCiB;ck,p;im,w;aCeBip;at,ck,er;iEllen6nCrB;ge,m,t;ge,nB;el;n,r;er,re;ke,ll,mp,noe,pDrTsCt3u2ve;se;h,t;!tuB;re;aYeUiTlQoMrEuBypa0U;bb1ck1dgCff0mp,rBst,zz;den,n;et;anHeFiDoadCuB;sh;ca8;be,d6;ge;aBed;ch,k;ch,d;aDg,mb,nCoBtt1x,ycott;k,st,t;d,e;rd,st;aCeBitz,oTur;nd;me;as,d,ke,nd,opsy,te;aDef,lt,nBt;d,ef9;it;r,t;ck,il,l04nFrgDsCtt1;le;e,h;aBe;in;!d,g,k;c01dXge,iWlTnRppOrKsGttEucCwaB;rd;tiB;on;aBempt;ck;k,sB;i8ocia5;te;st;chCmB;our;!iB;ve;eCroa3;ch;al;chBg0sw0;or;aCt0;er;rm;d,m,r;dreDvB;an4;ce;ss;cBe,he,t;eDoB;rd,uA;nt;nt,ss",Actor:"true¦0:44;1:3A;2:4C;3:45;4:4B;a3Rb38c2Fd23e20f1Sg1Ih1Di19journa3Ml16m0Un0Po0Np04qu02rXsGtCunBvAw6yo5;gi,utub0;e7i6o5r1O;m1rk0;nn0t10;atherm1ld0;eterina19ip;c3Wder1I;aoisea0We6herapi3iktok0r5;anscriRo20;chn5st0;i1RoU;aiKcJeIhowHiFki0oDpCt9u6wee5;p0theart;lt1per6r5;f0ge2Y;intenWv3V;aff0ep6r5;ang0eam0;fa12mo12;ecia32okesp2S;l5me3Kn;di0oi3;ng0s5;sy,t0;girl,m1runn0;cretary,rgea3V;hol2OiQreen0Yulpt2;l2nt;a8e5oof0unningA;c5port0searJver2Q;e5ru0V;ptio1W;bbi,pp0;arter5een;back;aMerform0hLlIoEr6sycho5;logi3;actit1Oe9i7o5;duc0fess2gramm0s5;pe12titu2T;est2Lme miniVnce5;!ss;a6si5;de3D;ch0;dcaQet,li5rnst25;c10tic5;al sci5i1;enti3;a5umb0;nn0y5;er,wright;armaci3otograph0ysi0L;i1Nnel24st2tL;ffic0p5rganiz0;er4tometri3;anny,e7o6u5;n,rse;bo2Jvi6;i5phew;ce;aCeBi8o6u5;m6si0B;m5nk,th0;!my;ni6s5;sus,t0;st0;chan0Lrcha2O;gi7k0nag0t5y2;riar5;ch;ci1stra1W;a6e0Wieutena2Jo5;rd,s0;bor0dy,urea1Twy0;dol,llu29n5;s5vestig4;peZt5;a0EruY;air8ero7isto6o5ygie0J;ste29usekE;ri1;!ine;dress0sty19;arden0eDhostBirl15o8rand5uru;fa6m5pa;a,o5;th0;al5d,lf0;ie,k5te16;eep0;wr5;it0;isha,ntlO;aBella,i7ore6r5;eela1Ii0V;m1st0;g7lmm0Fnanci0r5tt0;e5st la1E; marsh1Kfig5m1;ht0;rm0th0;dit2lectri6mcee,x5;amin0cellency;ci1;aEe9i6riv0u5;de,tche1J;eti6re5;ct2;ci1ti1;a8cor4fenc7put6sign0tecDvel5;op0;ee,y;em1;c05l0;d5nc0rling;!dy;aSeRfo,hLlIo8rit7u5;r4stomer representa5;tive;ic;lCm9n6ordin4rpor0Yu5wboy;nciKri0;gressKs6tro5;ll0;tab0Kul11;edi1m5pos0;a04iss5;ion0;onel,um5;ni3;e5own;an0r5;ic,k;a7e5;erle5f;ad0;ir6nce5plC;ll2;m1wE;lebrity,o;det,pt8r5shi0;et6pe5;nt0;ak0;ain;aJeatbox0iHlogg0oyFrCu5;ddhi3ild0rglAsiness5;m1p6w5;om1;ers5;on;an;ar;i6o5;!k0th0;cklay0de,gadi0;!fri5;end;cyc5sL;li3;nk0r5;b0on6te5;nd0;!eX;cUdNgeYnHpostGrDsBt7u5yatullah;nt5th2;!ie;h6t5;endaUorney;ie3le5;te;sisQtron5;aut,om0;chbis6tis5;an,t;hop;le;aly3im4nou7y5;bo5;dy;nc0;er;st;mi6v5;is2;ni6r5;al;str4;at2;or;coun7t5;or,re5;ss;ta5;nt",Uncountable:"true¦0:28;1:2R;2:2F;3:35;4:2W;a2Qb2Hc26d1Xe1Nf1Hg19h12i0Xjewel15k0Vl0Qm0Gn0Eo0Dp04rZsMtBv9w5you guys;a7hisky,i6oo5;d,l;ldlife,ne;rmAt2;ernacul25i5;neg24ol1Ktae;eEhCime off,oBr6un5yranny;a,gst15;aff2Jea1Go6ue nor5;th;o07u5;ble5se1Ot;!shoot1;night,othpas1P;er5und2;e,mod2O;a,nnis;aFcEeDhBilk,kiAo9p8t6u5weepstak0;g1Rnshi2Dshi;ati08e5;am,el;ace2Geci0;ap,cc2meth1;n,ttl0;eep,ingl0o5;pp1r18;lf,na1Cri0;ene0Disso18;d0Sfe4l5nd,t0F;m1St;a8e6ic5;e,ke12;c5ins,laxa0Zsearch;ogni0Yrea0Y;bi0in;aBeAhys9last1So7re5;amble,mis0s5ten1W;en1Vsu0H;l5rk;i24yH; 14i3;a20tr0A;nt5ti0J;i0s;bstetri3vercrowd1xyg04;a5ews;il polXtional securi4;aCeAo7u5;m5s1F;ps;n5o1I;ey,o5;gamy;a5cha0Drchandi1Ftallurgy;sl0t;chine5thema1O; learn1ry;aught2e8i7ogi6u5;ck,g11;c,s1K;ce,ghtn1nguis1JteraTv2;ath2isuTss;ara0CindergartMn5;icke08owled0X;ce,gnor8mp7n5;forma02ter5;net,sta08;atiUort5rov;an19;a8eListo7o5ung2;ckey,mework,ne5rserad9spitali4use arrest;s4y;ry;ir,lib03ppiJs5;h5te;ish;ene9l7o6r5um,ymnas13;aGe03;lf,re;ut5yce0J;en; 5ti3;edit1po5;ol;aQicJlour,o7urni5;tu5;re;od,rgive5uri2wl;ne5;ss;cono0MducaDlectrBn9quipAthi3very8x5;ist6per5;ti0C;en0K;body,o09th1;joy5tertain5;ment;ici4o5;ni3;tiU;eBi8o6raugh5ynas4;ts;pe,wnstai5;rs;abet0s5;hon01repu5;te;b5miX;ut;aEelciDhBivi3l9o5urrency;al,ld w7n5ral,ttJuscoC;fusiIt 5;ed;ar;assi3oth0;es;aos,e5;eNw1;us;d,rP;aAi8lood,read7u5;nt1tt2;er;!th;lliarKs5;on;g5ss;ga5;ge;cLdviKeroHirGmCn7ppeal court,rithmet6spi5thleM;rin;ic;i8y5;o6th1;ing;ne;se;en7n5;es4;ty;ds;craft;bi3d5nau9;yna5;mi3;ce;id,ous5;ti3;cs","Person|Noun":"true¦a07b01cYdRePfOgMhJjFkiElDmBolive,p7r4s3trini00v1wa0;ng,rd;an,enus,iol0;a,et;ky,on5umm02;ay,e1o0uby;bin,d,se;ed,x;a2e0ol;aHn0;ny;ge,tM;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4O;1:4M;2:3Y;3:47;4:42;5:4Q;6:4C;a46b3Qc2Wd2Ie2Cf25g1Zh1Oin1Lj1Kk1Jl1Dm17n15o10p0Iqu0Hr07sUtIuFvAw7x 4B;a7ha2Y;f2i3Vt08y7;! arou2M;arAe8o7;cabu3Ol4F;gKr7;di43t1F;iety,n3S;p2Dr8s 7;do3As4H;bani1in0; rex,aHeGhingFiDoCr9u8v7;! show;m23n4rntIto0Y;agedy,ib7o3K;e,u7;n0ta3D;p4rq2V;c,er,m7;etC;!y;am,mp2Q;ct4le5x return;aIcHeGhor3Wi1kEoDpin off,tBu9y7;ll7n1Rst3Z;ab29;b7nri13per bowl,rro1I;st2Vtot0;at2Mipe1Wo14rate3Oudent7;! lo09;ft ser3Smeo12;elet6i7;ll,rm33;ab0Scurity gu22min2N;e5ho2C;la2Undwi0Fpi6;av6eBhetor4i8o7;de5om,w;t8v7;erb0M;e,u0;bAc9f7publ4r0Mspi1;er7orm2;e5r0;it0ord label;a1u3G;estion mark,ot1V;aMeJhotocoSiGlEoCr8u7yram11;ddi2SpCrpo0Hs2U;e9o7;bl39s7;pe2Uta1;diction,mi0Droga35ss relea0D;p7rt0;py;a7ebisci1;q1Ste;cn4e8g7;!gy;!r;anut,d8r7t0;cen2Usp2V;al,est0;nop3r28t7;e,hog6;bj2Rc8pia1rde0thers,ve7wn2;n,rview;cu8e7;an;pi2;arra2Nit1Oot7umb2;a1Uhi25;aAe9i8o7ur0é07;nopo3pOrni23sq1Bti2L;li0On03tt6;d4nu,t0;mm0nd0Tte7yf3;ri0;aAegBi9u7;ddi1n7;ch;ght bulb,p03ving room;bor0Ty7; up;eyno1itt6;el3ourn0;c8dices,itia27ni1Qse1Vtel0Dvert7;eb17;en25i2E;aGeaDighBo7uman right;me8sp15tb7;ed;! r7;un; scho0Ori7;se;d7v6; start,pho7;ne;ndful,sh brown,v6ze;aAelat09laci2r8u7;l3y;an7enadi2id;a0Yd slam;df3r7;l4n12;aCet11iref3lBol3r8un7;er0;ee market,i8on7;ti2;ga1;ow2u1;br4mi3n0Q;conoBffi1Bgg,lecto0Hmbas11nApidem4s1Lth4ven9x8yel7;id;ampRempl0Dte5;i0Wt;er17;my;eHiCo9r7ump truck;agonf3i7;er,ve thru;c8g12i3or,ssi2wn7;side;to06umenA;aAgni9nn2s8vide7;nd;conte5incen12tri0Q;ta09;le0O;ath,c8f7ni0terre5;ault Zerr0;al,im0;aSeQhJiIlHoBr7;edit c9uc7;ib7;le;ard;efficBke,lAmmuniqIns8pi2rr0t0Pus7yo1;in;erv7uF;atoW;ic,lM;ie5;er0Gie5;ty,vil wJ;aBeqAick6oco9r7;istmas car7ysanthemum;ol;la1;ue;ndeli2racter7;ist4;iliVllBr7;e0tifica1;hi2naDpCrAt7ucus;erpi7hedr0;ll7;ar;!bohyd7ri2;ra1;it0;l,ry;aIeHlemGoEreakCu7;nAr7tterf3;g7i0;la7;ry;ny;fa7thro9;st;dy,ro7wl;ugh;ish;an,l3;nki9r7;!ri2;er;ng;cPdJlFnCppeti1rBs9tt4utop7;sy;ic;ce5pe7;ct;ray;ec8oma3ti8;ly;do1;i6l7;er7y;gy;en; hominBj8van7;tage;ec7;ti7;ve;em;cAe8qui7;tt0;ta1;te;i8ru0;al;de5;nt",Preposition:"true¦-,aPbMcLdKexcept,fIinGmid,notwithstandiWoDpXqua,sCt7u4v2w0;/o,hereSith0;! whHin,oW;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h1ill,oward0;!s;an,r0;ough0u;!oM;ans,ince,o that,uch G;f1n0ut;!to;!f;! 0to;effect,part;or,r0;om;espite,own,u3;hez,irca;ar1e0oBy;sides,tween;ri7;bo8cross,ft7lo6m4propos,round,s1t0;!op;! 0;a whole,long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:13;1:1A;a13b0Xc0Mde0Le0Gf0Ag09h08i06ju05l03mXnVoTpOrKsDt9u6v3w2;atershed,elcome;a2ision0P;gabo5nilla,ria2;b0Mnt;ndergr2pstairs;adua0Tou2;nd;a4e2oken,ri0;en,r2;min0rori0S;boo,n;e6ilv08o4quat,ta3u2well;bordina0Mper6;b0Cndard;ciali0Nl2vereign;e,ve1;cret,n2ri0;ior;a4e2outiSubbiL;ar,bCla0Mnt0p2side1;resenta0Lublican;ci0Gsh;a5eriodic0otenti0r2;emi3incip0o2;!fession0;er,um;rall5st,tie1;ff2pposi07v0;ensi0Ei03;aggTov2;el;aUe5in4o2;biTderYr2;al,t0;iature,or;di2tr0C;an,um;attIiber0u2;sh;stice,veniM;de0mpressioQn2;cumbe1dividu0no04sta1;alf,omelBumdrum;enious,old,raZ;a5e3i2luid;ne;llow,m2;aEiJ;ir,t,vo2;riLuriL;l4pXx2;c2ecuQpeS;ess;d2iH;er;mographSrivaM;hiFlassRo3rude,unn2;ing;m5n2operaJ;creBstitue1tempor3vertab2;le;ary;m3p2;anion,lex;er3u2;ni8;ci0;e6lank,o5r2;i3u2;te;ef;ttom,urgeois;st;cademAd7l3nim0rab;al;e4terna2;ti2;ve;rt;oles2ult;ce1;nt;ic","Noun|Gerund":"true¦0:26;1:25;2:1W;3:1I;4:1Y;5:1O;a25b1Oc1Cd17en15f0Zg0Xh0Ui0Sjog20k0Ql0Mm0Jn0Ho0Dp06ques09rXsHtCuAvolunt16w6yEzo2;a8ed5i3or7r6;ap1Oest1Ci1;ki0r1O;i1r2s1Utc1U;nder6pri23;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",PhrasalVerb:"true¦0:93;1:97;2:8I;3:8W;4:8B;5:84;6:86;7:99;8:91;9:8H;A:8Y;B:8S;C:8V;D:8T;E:71;F:98;G:8Z;H:82;I:7I;J:7A;K:4H;a9Hb7Wc6Td6Ne6Lf5Jg52h4Diron0j49k42l3Gm33n30o2Yp2Equiet Hr1Zs0Lt00uYvacuu6SwOyammerBzL;ero Dip MonL;e0k0;by,ov9up;aReNhMiLor0Nrit1B;mp0n3Hpe0r5s5;ackAeel Di0U;aMiLn35;gh 3Yrd0;n Dr L;do1in,oJ;it 7Bk5lk Mrm 6Bsh Lt85v61;aw3do1o7up;aw3in,oC;rgeBsL;e 2herE;a01eZhWiSoRrNuLypQ;ckErn L;do1in,oJup;aMiLot0y 32;ckl81p F;ck HdL;e 60;n7Yp 3Gs5L;ck NdMe Lghten 6me0p o0Tre0;aw3ba4do1in,up;e Iy 2;by,oG;ink Mrow L;aw3ba4in,up;ba4ov9up;aLe 79ll64;m 2r 5O;ckBke Mlk L;ov9shit,u49;aLba4do1in,leave,o67up;ba4ft9pa6Bw3;a0Xc0Ve0Oh0Ki0Hl0Bm0An09o08p03quar5ItRuPwL;earNiL;ngMtch L;aw3ba4o8M; by;cLi6Dm 2ss0;k 66;aTeSiRoPrMuL;cKd36;aigh2Eet76iL;ke 7Tng L;al6Zup;p Lrm2G;by,in,oG;nKr 2tc4O;p F;cKmp0nd MrLveAy 2P;e Ht 2M;ba4do1up;arKeOiNlMrLurB;ead0ingBuc5;a49it 6I;c5ll o3Dn 2;ak Fe73ll0;aKber 2rt0und like;ap 5Wow Duggl5;ash 6Ooke0;eep OiLow 6;cMp L;o6Eup;e 69;in,oL;ff,v9;de1Agn 4OnLt 6Hz5;gLkE; al6Ble0;aNoLu5X;ot Lut0w 7N;aw3ba4f48oC;cKdeEk6FveA;e Qll1Ond Prv5tL; Ltl5K;do1foMin,o7upL;!on;ot,r60;aw3ba4do1in,o4Wup;oCto;al67out0rL;ap66ew 6K;ilAv5;aYeViToPuL;b 5Zle0n Lstl5;aMba4do1inLo2Jth4Ou5Q;!to;c2Xr8w3;ll Not MuL;g3IndA;a2Wf3Po7;ar8in,o7up;ng 69p oLs5;ff,p19;aLelAinEnt0;c6Id L;o3Oup;cKt0;a00eZiXlUoRrPsyc35uL;ll Nn5Lt L;aLba4do1in,oJto48up;pa4Ew3;a3Kdo1in,o22to46up;attleBess LiOop 2;ah2Fon;iMp Lr50u1Hwer 6O;do1in,o6Oup;nt0;aMuL;gEmp 6;ce u21y 6E;ck Lg0le 4Bn 6p5C;oJup;el 5OncilE;c54ir 3An0ss NtMy L;ba4oG; Hc2R;aw3ba4in,oJ;pLw4Z;e4Yt D;aMerd0oL;dAt54;il Hrrow H;aUeRiQoMuL;ddl5ll I;cKnkeyNp 6uthAve L;aLdo1in,o4Mup;l4Ow3; wi4L;ss0x 2;asur5e3TlMss L;a21up;t 6;ke Mn 6rLs2Ax0;k 6ryA;do,fun,oCsure,up;a03eWiRoMuL;ck0st I;aOc4Gg NoLse0;k Lse4E;aft9ba4do1forw38in57o10u47;in,oJ;d 6;e OghtNnMsLve 01;ten F;e 2k 2; 2e47;ar8do1in;aNt MvelL; oC;do1go,in,o7up;nEve L;in,oL;pLut;en;c5p 2sh MtchBughAy L;do1o5A;in4Qo7;eNick Mnock L;do1oCup;oCup;eMy L;in,up;l Ip L;aw3ba4do1f05in,oJto,up;aNoMuL;ic5mpE;ke3Tt H;c44zz 2;a02eXiUoQuL;nMrrLsh 6;y 2;keMt L;ar8do1;r H;lLneErse3L;d Le 2;ba4dLfast,o25up;ear,o1;de Mt L;ba4on,up;aw3o7;aLlp0;d Nl Ir Lt 2;fLof;rom;f11in,o1WuX;cKm 2nMsh0ve Lz2Q;at,it,to;d Mg LkerQ;do1in,o2Uup;do1in,oL;ut,v9;k 2;aZeUive Sloss IoNrMunL; f0S;ab hold,in44ow 2V; Lof 2J;aNb1Nit,oMr8th1JuL;nd9;ff,n,v9;bo7ft9hQw3;aw3bLdo1in,oJrise,up,w3;a4ir2I;ar 6ek0t L;aLb1Gdo1in,o1Dr8up;cMhLl2Hr8t,w3;ead;ross;d aLng 2;bo7;a0Fe08iZlVoRrNuL;ck Le2P;ar8up;eMighten LownBy 2;aw3oG;eLshe29; 2z5;g 2lNol Lrk I;aLwi22;bo7r8;d 6low 2;aMeLip0;sh0;g 6ke0mLrLtten H;e F;gSlQnOrMsLzzle0;h F;e Lm 2;aw3ba4up;d0isL;h 2;e Ll 1V;aw3fQin,o7;ht ba4ure0;eQnMsL;s 2;cNd L;fLoG;or;e D;d06l 2;cPll Lrm0t1I;aNbMdo1in,oLsho0Gth0Avictim;ff,ut,v9;a4ehi2P;pa0D;e L;do1oGup;at Ldge0nd 13y5;in,o7up;aPi1IoOrL;aMess 6op L;aw3b04in,oC;gBwB; Iubl1C;m 2;a0Bh06l03oPrMut L;aw3ba4do1oCup;ackBeep MoLy0;ss Dwd0;by,do1in,o0Vup;me OoMuntL; o2B;k 6l L;do1oG;aSbRforPin,oOtLu0P;hMoLrue;geth9;rough;ff,n,ut,v9;th,wL;ard;a4y;paLr8w3;rt;eaMose L;in,oCup;n 6r F;aOeMiL;ll0pE;ck Der Lw F;on,up;t 2;lSncel0rPsNtch MveE; in;o1Oup;h Dt L;doubt,oG;ry MvL;e 09;aw3oJ;l Lm H;aMba4do1oJup;ff,n,ut;r8w3;a0We0NiteAl0Go05rRuL;bblOckl06il0Elk 6ndl06rMsLtNy FzzA;t 01;n 0IsL;t D;e I;ov9;anXeaViMush L;oGup;ghRng L;aOba4do1forNin,oMuL;nd9p;n,ut;th;bo7lLr8w3;ong;teL;n 2;k L;do1in,o7up;ch0;arUg 6iSn5oQrOssNttlMunce Lx D;aw3ba4;e 6; ar8;e H;do1;k Dt 2;e 2;l 6;do1up;d 2;aQeed0oLurt0;cNw L;aw3ba4do1o7up;ck;k L;in,oC;ck0nk0stA; oRaOef 2lt0nd L;do1ov9up;er;up;r Mt L;do1in,oCup;do1o7;ff,nL;to;ck Qil0nNrgMsL;h D;ainBe D;g DkB; on;in,o7;aw3do1in,oCup;ff,ut;ay;ct FdRir0sk NuctionA; oG;ff;ar8o7;ouL;nd; o7;d L;do1oLup;ff,n;wn;o7up;ut",ProperNoun:"true¦barbie,c4diego,e3f2iron maiden,kirby,m0nis,riel,stevens;ercedes,i0;ckey,ssy;inn,lorence,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:76;1:64;2:6J;3:6M;4:5V;a6Bb56c4Ld4Be47f3Zg3Kh3Ci33j2Yk2Hl25m1Nn1Do1Ap0Xq0Vr0Os05tRuQvLwDxiBy9z5;a7h5i4Puri4R;a5e5ongsh0;ng3K;greb,nzib5J;ang2e5okoha3Vunfu;katerin3Krev0;a5n0R;m5Kn;arsBeAi6roclBu5;h0xi,zh5S;c7n5;d5nipeg,terth4;hoek,s1N;hi62kl3D;l66xford;aw;a8e6i5ladivost5Polgogr6N;en3lni6U;ni24r5;n2o3saill4Q;lenc4Zncouv3Vr3ughn;lan bat1Erumqi,trecht;aFbilisi,eEheDiBo9r7u5;l23n66r5;in,ku;i5ondh65;es54poli;kyo,m32ron1Rulo5;n,uS;an5jua3l2Wmisoa6Dra3;j4Wshui; hag64ssaloni2K;gucigal28hr0l av1W;briz,i6llinn,mpe59ng5rtu,shk2U;i3Hsh0;an,chu1n0p2Hyu0;aEeDh8kopje,owe1It7u5;ra5zh50;ba0It;aten is58ockholm,rasbou69uttga2Y;an8e6i5;jiazhua1llo1m5Zy0;f53n5;ya1zh4K;gh3Nt4T;att48o1Yv47;cramen18int ClBn5o paulo,ppo3Urajevo; 7aa,t5;a 5o domin3H;a3fe,m1O;antonBdie3Ffrancisco,j5ped3Qsalvad0L;o5u0;se;em,z28;lou5Bpeters27;aAe9i7o5;me,sar5t5C;io;ga,o5yadh;! de janei3H;cife,ims,nn3Lykjavik;b4Uip4lei2Knc2Rwalpindi;ingdao,u5;ez2i0R;aFeEhDiCo9r7u6yong5;ya1;eb5Aya1;a5etor3O;g53to;rt5zn0; 5la4Eo;au prin0Nelizabe26sa04;ls3Rrae5Btts28;iladelph3Inom pe1Coenix;r23tah tik3G;dua,lerZnaji,r4Qt5;na,r34;ak46des0Lm1Or6s5ttawa;a3Xlo;an,d07;a7ew5ing2Hovosibir1Lyc; 5cast38;del26orlea46taip16;g8iro4Xn5pl2Yshv35v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0Y;aFeCi9o6u5;mb2Cni28sc40;gadishu,nt6s5;c15ul;evideo,pelli1Tre31;ami,l6n16s5;kolc,sissauga;an,waukee;cca,d5lbour2Omph43ndo1Essi3;an,ell5i3;in,ín;cau,drAkass2Tl9n8r5shh4A;aca6ib5rakesh,se2M;or;i1Ty;a4EchFdal10i47;mo;id;aDeAi8o6u5vSy2;anMckn0Pdhia3;n5s angel27;d2g bea1O;brev2Ce3Mma5nz,sb2verpo29;!ss28; ma3Ai5;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Fn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd36rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Yi2H;che2d5;ianap2Mo20;aAe7o5yder2V; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Nupe;ld coa1Bthen5;bu2R;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal28es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,nkirk,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Yr es sala1KugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1P;lo7n6penhag0Ar5;do1Nk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr14;ch8sha,zh07;gliari,i9lga8mayenJn6pe town,r5tanO;acCdiff;ber19c5;un;ry;ro;aWeNhKirmingh0WoJr9u5;chareTdapeTenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iCl9ng8r5;g6l5n;in;en;aluru,hazi;fa6grade,o horizon5;te;st;ji1rut;ghd0AkFn9ot8r7s6yan n4;ur;el,r06;celo3i,ranquil08;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a04b01cc00ddis abaZgartaYhmedWizawl,lSmPnHqaZrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a8c5kaNtwerp;hora6o3;na;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aVbTcPdOeNfMgIhHiFjfk,kDlBm9new eng8or7p5s4t2u1vostok,wake is8y0;akutDyz;laanbaatar,pP;ahiti,he 0;bronx,hamptons;akhalGfo,oho,under3yd;acifUek,h0itcairn;l,x;ange county,d;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IS;1:IW;2:I5;3:I4;4:IM;5:I9;6:JD;7:GQ;8:J9;9:J5;A:HD;B:HN;C:IE;D:J2;E:II;F:H2;G:C4;H:HP;aGIbFDcDJdCSeBIfB0gAAh9Qi9Dj8Ck7Cl5Wm46n3Ko3Gp34qu33r2Bs16t0Fu0Dv03wWxiUyPzI;aMeJineb,oIsof2;e3Rf2la,ra;h3iLlJna,ynI;ab,ep;da,ma;da,h3iIra;nab;aLeKi0GolB3uJvI;etAonDH;i0na;le0sen2;el,gm3Gn,rGAs8T;aoIme0nyi;m5YyAA;aNendDRhiD8iI;dele9lKnI;if45niIo0;e,f44;a,helmi0lIma;a,ow;ka0nB;aOeLiIusa5;ck82kJlAole7viI;anGenIQ;ky,toriBE;da,lA5rIs0;a,nIoniGV;a,iFH;leInesGV;nI7rI;i1y;g9rIxGW;su5te;aZeVhSiOoMrJuIy3;i,la;acIPiIu0L;c2na,sI;hGta;nIr0H;iGya;aKffaEGnIs6;a,gtiI;ng;!nFHra;aJeIomasi0;a,l9Lo87res1;l2ndolwethu;g9Co85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe3iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlett,e0ChYiUkye,neza0oStOuJyI;bI2lvi1;ha,mayI5ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHQr5;b2fiA3m0MnIphi1;d3ia,ja,ya;er3lKmon1nJobh8MtI;a,i;dy;lEHv2;aNeJirIo0risEZy5;a,lDD;ba,e0i5lKrI;iIr6Gyl;!d8Efa;ia,lDP;hd,iNki3nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7YvI;da,inj;e0ife;en1i0ma;anA0bMd3Kh1PiBkLlKmJnd3rIs6vannaC;aCi0;ant6i3;lDEma,ome;ee0in8Ou3;in1ri0;a05e00hYiVoIuthDC;bTcSghRl8GnQsKwJxI;anAUie,y;an,e0;aJeIie,lD; merBIann8ll1marD6t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8B;hel63io;bDFer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG7oI;da,n1L;an0bKemGgi0iJnIta,y0;a86ee;han81na;a,eI;cE5kaC;bi0chJe,i0mo0nIquEFy0;di,ia;aEDelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCL;scil3LyamvaB;lly,rt2;ilome0oebe,ylI;is,lis;ggy,nelope,r5t3;ige,m0UnLo5rvaDBtJulI;a,etAin1;ricIt4T;a,e,ia;do3i07;ctav2dJfCUis6lIphCUumBYyunbileg;a,ga,iv2;eIvA9;l2tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBJkLlaKna,sIta,vi;anIha;ur;!y;a,iDNki;hoHk9SolI;a,eDE;!mh;hir,lIna,risFsreE;!a,lBO;asuMdLh2i6CnKomi8rgEJtIzanin zah3;aIhal4;li1s6;cy,etA;e9iEP;nngu30;a0Ackenz4e02iNoKrignayani,uriD8yI;a,rI;a,lOna,tH;bi0i3llBDnI;a,iI;ca,ka,qCY;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEI;!l,nB;dy,eIh,n4;nhHrva;aLdKiCKlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5EgOi,lLrI;edi77iJjem,on,yI;em,l;em,sF;an4iIliF;nIsC9;a,da;!an,han;b0DcANd0Be,g09ha,i08ja,l06n04rMsoum5YtLuJv80x9FyIz4;bell,ra,soB4;de,rI;a,eE;h8Cild1t4;a,cYgUiLjor4l7Qn4s6tKwa,yI;!aIbe6Uja9lA9;m,nBC;a,ha,in1;!aKbC6eJja,lDna,sIt62;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliACcJeduarBfern5EjIlui5W;o6Dul2;ecil2la3;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Vi75y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD6on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d2la,nI;!a,dJeBCnIsCG;!a,eBB;a,sCE;aCRcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a84i8;lIn1t7;ei;!in1;aTbb98dSepa,lNnKsJv2zI;!a,be5KetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9We;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c2t2;e2NlCB;la,nIra;a,ie,o3;a,or1;a,gh,laI;!ni;!h,nI;a,d3e,n5O;cPdon93iOkes6mi96na,rNtKurJvIxmi,y5;ern1in2;a,e53ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAFoOrKyI;lIra;a,ee,ie;istIy6B;a,en,iJyI;!na;!e,n58;nul,ri,urtnAV;aPerOlAUmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei3ongordzol;dij1w5;el7MiLjsi,lKnJrI;a,i,ri;d3na,za;ey,i,lB8s4y;ra,s6;bi7cAEdiat7EeAXiSlRmQnyakuma1BrOss6HtLvi7yI;!e,lI;a,eI;e,i8H;a6BeJhIi4MlDri0y;ar69er69ie,leErAXy;!lyn8Cri0;a,en,iIl5Qoli0yn;!ma,nGsF;a5il1;ei8Ai,l4;a,tl6I;a09eZiWoOuI;anMdLliIst61;a8DeIsF;!n9tI;!a,te;e5Hi3Iy;a,i7;!anOcelDdNelHhan7NleMni,sJva0yI;a,ce;eIie;fIlDph5S;a,in1;en,n1;i8y;!a,e,n40;lIng;!i1DlI;!i1C;anOle0nLrKsI;i88sI;!e,i87;i,ri;!a,elHif2AnI;a,etAiIy;!e,f28;a,e89iJnI;a,e88iI;e,n1;cNda,mi,nJque4UsminGvie3y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob7Z;!n9H;do3;belIdo3;!a,e,l37;a72en1i0ma;di3es,gr6Tji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin29;da,ll4rten21snI;a,i9K;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1AiKlJnriet7rmi9sI;sa,t19;en2Qga,mi;di;bi2Bil8ClOnNrKsJtIwa,yl8C;i5Nt4;n5Tti;iImo4Xri4Y;etI;!te;aCnaC;a,ey,l4;a03eXiSlQoOrLunKwI;enIyne1O;!dolD;ay,el;acieJetIiselB;a,chE;!la;ld19ogooI;sh;adys,enIor2yn2G;a,da,na;aLgi,lJna,ov84selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Ni,m3Atru86;etAi4S;a,eIna;s25vieve;ma;bJle,mIrnet,yH;al5Ji5;i5BrielI;a,l1;aUeRiQlorPoz2rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0N;n1s5X;!ca;a,enc2;en,o0;lJn0rnI;anB;ec2ic2;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no3oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c2da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh2iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr2nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d3nI;!a,e;hl2i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th2;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat3;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a3er3ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d3elHtI;al,elH;cJlI;esAi42;el2ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a3o3ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el2;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar2;el;aMberLeliKiIy;e,l2naI;!ta;a,ja;!ly;hHiJl2nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c2sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c2is6jaLksaLna,sKxI;aIia;!nd3;ia,saI;nd3;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",Person:"true¦a0Ob0Hc08d05e02g01hZinez,jYkVlSmMnKoJpHr9s7t4v2w0xzibit,yanni;ar0ednesday adams,ill.i.am,oode;hol,rO;a0oltaiO;lentino rossi,n go7;a1heresa may,i0yra banks;ger woods,mbaQ;tum,ylor;a0carlett johanss03hakespeaJinbad,lobodan milosevic,ocratM;ddam hussain,ntigold;a6e5i4o2u0za;mi,n dmc,paul,sh limbau0;gh;d stewart,nald0thko;inho,o;hanYvaldo;ese witherspoVil9mbrandt;ffi,y roma03;a0e08ip07lato,oe,uff daddy;lm06ris hiltS;prah winfrWra;as,e0iles crane,ostradamP; yo,l3ttI;acklemo4essia3i1o0ubarek;by,lie3net,rrissS;randa ju0tt romnR;ly;en;re;ady gaga,e0iberaT;bron jam0e;es;anye west,e1iefer suther0obe bryant;land;ats,ndall,sha;aime,effersCk rowling;a0itlPulk hogan;lle berry,rrisA;ast9otye;ff1m0nya,zekiel;eril lagasse,inem;ie;a1e0ick wolf,rake;gas,nzel washingt4;lt3nB;ar5h3lint2o0;nfuci0olio;us;on;aucCy0;na;dinal wols1son0;! palm9;ey;a5e3o2ro0;ck,n0;te;no;ck,yon0;ce;nksy,rack obama;ristot1shton kutch0;er;le",LastName:"true¦0:9G;1:9W;2:9Y;3:9O;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s2;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi3j6ka3IoGrFsui,uD;om50rD;c3n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps2s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv3zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins2;!on;bei0LcEes,vDzzo;as,e8;ci,hards2;ag3es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss2;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym3;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx2;ic,ov6X;ls1miD;!n1;ils2mD;co42ec;gy,kaEray3varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h3lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h3iSlQnez48oJrGuEvar3woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss2;anEnsD;en,on,t2;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks2obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m3ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers2;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw2;o,staf2Utierr7zm3;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m3;calv9zale0H;aj,i;bs2l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm3uD;cDent9ji3E;hs;ntaDrt6urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s2;er,is2wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g3he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w3;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e2uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em3liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm3tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder2mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy3;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss2;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl3yD;aEd6;in;la;aEsl3;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s2;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DN;1:CO;2:D6;3:AJ;4:CK;5:BZ;6:CF;7:D2;8:BS;9:AR;A:DA;B:D3;C:94;D:BM;aC9bB7cA7d98e8If82g7Fh6Si6Cj5Ek52l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Jkaria,n0C;hFkE;!aC7;ar5UeC6;aMoGuE;sEu2LvBJ;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB8ssY;avi3ho4;aNeLiGoEyaBN;jcie87lfgang,odrow,utE;!er;lEnst1;bGey,fredAlE;aAZiE;am,e,s;e97ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Xy;aHiEladimir,ojte7U;cFha0kt67nceErgA5va0;!nt;e3Xt65;lentEn9S;inE;!e;ghBElyss59nax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r59;avAHeEist0oy,um0;ntA9v5Wy;bGd8RmEny;!as,mEoharu;aCBie,y;iCy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8G;!de5;dHrE;en98rE;an97eEy;ll,n96;!dy;dgh,ha,iEnn3req,tsu4R;cAPka;aUcotSeQhMiKoIpenc3tEur1Xylve96zym1;anGeEua85;f0phBCvEwa84;e5Zie;!islaw,l8;lom1uE;leyma6ta;dElCm1yabonga;!dhart74n8;aGeE;lErm0;d1t1;h7Kne,qu11un,wn,y6;aEbasti0k2Cl4Prg4Mth,ymoAE;m5n;!tE;!ie,y;lFmEnti2Gq58ul;!ke5JmDu4;ik,vato7O;aZeVhe9ViRoIuFyE;an,ou;b7DdFf5pe7KssE;!elBI;ol3Fy;an,bLc62dJel,geIh0landAmHnGry,sFyE;!ce;coe,s;!aA1nD;an,eo;l45r;er78g3n8olfo,riE;go;bDeAQ;cEl8;ar6Ic6HhFkEo;!ey,ie,y;a8Vie;gFid,ubByEza;an1KnZ;g9SiE;na9Os;ch6Qfa4lImHndGpha4sFul,wi2HyE;an,mo6U;h7Jm5;alAWol2U;iACon;f,ph;ent2inE;cy,t1;aJeHhilGier6TrE;aka18eE;m,st1;!ip,lip;dA4rcy,tE;ar,e3Er1Y;b4Hdra73tr6JulE;!o19;ctav3Di3liv3m9Yndrej,rIsFtEum7wB;is,to;aFc7k7m0vE;al5S;ma;i,vM;aMeKiGoEu38;aEel,j5l0ma0r3I;h,m;cFg4i46kEl2R;!au,h7Gola;hEkEolC;olC;al,d,il,ls1vE;il8J;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Gr1;hamFr6KstaE;fa,p54;ed,mI;di0Xe,hamGis2CntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Uik;house,o0Ct1;ae5Oe9MolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2AlSmadXnRrLs1tGuricFxE;imilianAwe9;e,io;eHhFiCtEus,yC;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Ysha9tEv2;iEy;!m,n;in,on;el,oQus;!el90oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5G;ou;aXeRiPlo39oLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7BrenGuEv81we9;!iE;e,s;!zo;am,oE;n4r;a7Uevi,la4AnIonHst3thaGvE;eEi;nte;bo;!a6Del;!ny;mFnd1rEur54wr54;ry,s;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubCnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdBkJmIrGsFvi3yE;dBs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dB;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdA;ffr8rge;brFlBrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymBzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estAie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydCy29;!lC;!a2HnEov0;e9ie,y;go,iFykC;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdA;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndA;!el,ki;ie;ta;aq;as,dIgelAtE;hony,oE;i6nE;!iAy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdBeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtA;ni;dBm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfAri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Honorific:"true¦director1field marsh2lieutenant1rear0sergeant major,vice0; admir1; gener0;al",Adjective:"true¦0:8H;1:9N;2:8E;3:9E;4:8B;5:98;6:8M;7:8T;8:86;9:99;A:8W;B:7Z;C:60;D:9D;E:7J;a80b7Ic6Wd6Fe5Xf5Cg54h4Ui3Ujuni49k3Rl3Hm34n2Uo2Fp20quart6Ar1Qs0Ut0MuRvNwFye1M;ast58eKhIiHoF;man4oFrthwhi7u0I;dBzy;despr8Zn w7Cs6N;acked0XoleF;!sa7;ather14eFll o5Pste2Q;!k4;aHeGiFola5J;b9Qce versa,gi2Qle;ng4Yrsa5H;ca1lu8U;lt08nLpHrGsFttermo9I;efEu5;b7Age1; Hb2ApGsFti8H;ca7et,ide d3P;er,i4O;f3Xto da3;aYbecom2cXdSeRfPiOkn3MmNpMrJsGto49us0wF;a08iel2N;eBi2Fo47pGuF;pervis0spect2;e1okB;eFu4;cognTgul0NlFsolv0;at0ent2;aArecede01;arri0et;que,vers5;air,orF;eseBtun7S;mploy0nd2xpect0;eFisclos0ue;cid0rF;!a75covCly2sJwF;aFei7W;tCy;heck0onvinc2;ppeal2ssum2tteGuthorF;iz0;nd0;im4Bra;aKeHhough5Jip 1RoGrF;anspare1i3;gethCle8Qp notch,rpA;ena6UmpGrF;r3Ktia8;e9o76;leFst3V;nt0;a09c05e02h01iZkiYle5Mmug,nobbi46oTpQqueami46tKuFymb7L;bHi generis,pFr4;erFre69;! dupCb,vi00;du0p5HsFurb65;eq7Rtanda8C;atu6OeJi0WrFy3Z;aightGin4LungF; o25; fFfF;or6C;adfa84ri7;arGeFirit0lendAot on;c33e1F;k4se; call0lub7mbCphisticIrHuFviT;ndFth10;proof;dAry;at0;ll0n d6C;g22nF;ce5Mg7;am36eC;co1Lem4lfGnFre6;so8; suf45i3G;aGholFient2P;ar4;rlFth2;et;cr0me,tisfac5Z;aNeIheumatoAiGoF;bu7IttBy5;ghtFv5;-w2fE;cIdu79lHnown0sFtard0;is3JoF;lu3na1;e1Duc3H;e1ondi3;bAci5;aQeOicayu6laNopuli79rGuF;bl6Fnjabi;eKiIoF;b6HfGmi3IpFvBx23;er,ort6N;a6u6Q;maFor,sti6va3;!ry;ci6Nexist2ma1UpaA;cAid;ac2Dnt2XrFti3;feDma3Ati3Av6J;i2DrtFss6F;-4RiF;al,s4P;bQffOkNld MnKrJthCutIverF;!aGni5Vseas,t,wF;ei5Urou5U;ll;do14er,si51;d34g1U; bFbFe on o6go2li6;oa6P;fashion0school;!ay; gua6MbFli6;eat;eGsF;ce6er0Io0Z;dia1se;aNeMiLoFuanc0; mo47nHrthFt5P;!eF;rn;chaGdescri6Aprof2JsF;top;la1;ght4;arby,cessa8ighbor4xt;k0usiat2;aNeMiKoGuF;dHltip7;deHlGnFot,st;ochro3Yth4;dy;rn,st;ddle ag0nF;dblVi;ga,nac2re;cHgenta,in,j0Akeshift,mmGnFscu50;da4Ay;ali3Ooth;ab3Mho;aNeKiIoFumber2;ngFuti1I;stand2tF;erm,i3L;ghtwei4QteraF;l,te;ft-w2gFssCth5;al,eFit0I;nda8;nguAps0te4;apGind4nF;ow2;ut;ce co0Dgno5Kll09m01nHpso 2ErF;a3releF;va1; WaVcoSdPe2MfOgrNhibi3Ri02nMoLsHtFvalu4N;aDeF;n4Wrdep24;a6iGolFuboI;ub7ve1;de,gF;nifica1;rdi4O;a3er;own;eriGluenSreq4J;eGiIoFul1E;or;fini3p1Ttermi4I;mpGnside9rF;reD;le3;ccu9deq4Jppropr3Q;fFsitu,vitro;ro1;mJpF;arHeGl0YoFropC;li3r0V;nd2rfeD;ti5;aGeFi0Z;d3Hn48;tu2E;egGiF;c0Rte9;al,itF;ima3;ld;aMelLiJoFuma6;meHnGrrFs0Bur4;if3K;e4Co30; ma2Msick;ghfalut1VspF;an3G;liZpfE;i8llow0ndFrd05tL;sy,y;aiLener3Ciga2Jlob5oKraHuF;ilFng ho;ty;cGtF;efEis;efE;ldBod;nfE;aWeTiRlPoIrF;aGeFil4ozB;q3CtfE;gi7nt31;lk0WoJrF; keeps,eHge0OmCtunFwa3U;ateF;!ly;go2i1Os2Z;liF;sh;ag3Rowe8uF;e1oresce1;e8nF;al,i3;dGmini6rF;ti7; up;bl0l31mili0Lr Fux;oFreach2;ff;aTfSlQmNnLqu5reDthere5veryday,xF;aDem3AplIquisi3traHuF;be3FlF;ta1;!va1V;icF;it; Fti0Y;rou3sui3;erGiF;ne1;ge1;dFe1N;er4;ficie1;gCsF;t,ygo2;er;aUeMiHoGrFue;ea8owW;mina1ne,rma1ubO;dact1Yfficult,m,sGverF;ge1se;creGeNjoi1pa9tF;a1inD;et,te; Ladp0GceKfiJgene9liHpGreliDspe9voF;id,ut;ende1;ca3ghF;tfE;a1ni3;as0;facto;i4ngero05;arZeXhWivil,oMrHuF;stoma8teF;sy;aIeHu0WystalF; cleFli6;ar;epy;vBz0;erNgniza1loMmLnGrpo9veF;rt;cIduLgr1KjHsGtraF;dic0Hry;eq1Ita1;oi1ug5;a1Ci1L;mensu9pass1G;ni5ss5;ci19;ee8intzy;leba3rtaF;in;diac,efE;aUeOiJliSoGrFuck nak0;and new,isk,on1U;gGldface,naF; fiZfiZ;us;gHpartisGzarF;re;an;tiF;me;autifEhiIloHnFsiSyoI;e01iFt;gn;v0w;nd;ul;ckwards,rF;e,rB; priori,b12c0Zd0Tf0Ng0Ih0Hl0Amp7nt07pZrSsPttracti0MuLvIwF;aGkF;wa19;ke,re;ant garGeraF;ge;de;diHtF;heFoimmu6;nt07;to8;hBlF;eep;en;bitJchiv5roItF;iFsy;fiF;ci5;ga1;ra8;ry;pFt;aJetiz2roF;prHximF;ate4;ly;ia3;ll2re1;ing;iquFsy;at0e;ed;cohJiQkaHl,oGriFterW;ght;ne,of;li6;ne;olF;ic;ead;ain05ed,gressiIrF;eeF;ab7;le;ve;fGraA;id;ectGlF;ue1;ioF;na3; JeHvF;erF;se;pt,qF;ua3;hoc,infinitum;cu9tu5u3;al;ra3;erQlOoMrJsGuF;nda1;e1olu3traD;ct;te;eaGuF;pt;st;aFve;rd;aFe;ze;ra1;nt",Adverb:"true¦a08b05d01eXfRhePinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6;en,us;eldom,o0uch;!me1rt0; of;how,times,w0A;a1e0;alT;ndomSthN;ar excellenEer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag03moX; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboV;deed,steW;lla,n0;ce;or2u0;lArther0;!moK; 0ev3;examp0good,suI;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;ju9trop;ackward,y 0;far,no0; means,w; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aVbRcuz,eNhowMiEjustYnoBo9p8supposing,t5wh0yet;e1il0o3;e,st;n1re0thN; if,vM;evL;h0o;erefMo0;!uS;lus,rovided th9;r0therwiK;! not; mattEr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mGcaDorder t0;h0o;at;! 0;only,t0w0;hen;!ev3;ith2ven0;! 0;if,t9;er;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s",Determiner:"true¦aAboth,d8e5few,le4mu7neiCplenty,s3th2various,wh0;at0ich0;evB;at,e3is,ose;everal,ome;!ast,s;a1l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er","Adj|Present":"true¦a07b04cVdQeOfKhollJidRlFmDnarrJoCpAqua9r8s4t2utt3w0;aLet,ound,ro0;ng,ug08;end0hin;er;e2hort,l1mooth,our,pa9tray,u0;re,speT;i2ow;cu6da01leRpaM;eplica00ig01;ck;aGr0;eseTime,omU;bscu1pen,wn;atu0e3odeG;re;a2e1i0;gTve;an;st,y;ow;a2i1oul,r0;ee,inge;rm;iHke,ncy,st;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry,ull;le;ffu9re6;fu8libe0;raE;alm,l5o0;mpleCn3ol,rr1unterfe0;it;e0u7;ct;juga8sum7;ea1o0;se;n,r;ankru1lu0;nt;pt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:38;1:3M;2:3B;3:2E;a3Qb39c30d2Re2Kf28g1Wh1Mi1Gj1Fk1Cl15m0Zn0Uo0Tp0Kqu0Ir09sJtEuDvBw5y4za0S;el12ouP;a8e6hi1Ii4ry;ck0Ede,l4n1ry,se;d,y;a4i3P;k,ry;ntiJry;a4erda2ulgar;gue,in,st;g0pcomiG;a7en2Thi6i5ough,r4;anqu29en1ue;dy,g32me0ny,r04;ck,rs25;ll,me,rt,wd3E;aScarReQhOiNkin0ClJmHoFpEt7u5w4;eet,ift;b4dd0Wperfi1Xrre25;sta23t3;a9e8iff,r5u4;pVr1;a5ict,o4;ng;ig2Rn0N;a1ep,rn;le,rk,te0;e1Oi2Rright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Im4;!y;ek,nd2O;ck,l0mp3;a4iRrill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1BlAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;bb0ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Xte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o11u4ve0w0Vy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui16;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng19;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd10ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue0X;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiR;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0N;!ny;aDesh,iend0;a4rmE;my;erce5nan4;ciB;! ;le;r,ul4;ty;a7erie,sse5v4xtre0B;il;nti4;al;r5s4;tern,y;ly,th0;aBe8i5ru4umb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppRrk;agey,h9l8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;evLou1;e4il0;ap,e4;sy;aIiGlDoBr6u4;r0sy;ly;a7i4oad;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd","Person|Adj":"true¦brown,du2earnest,frank,mi2r0sa1;a0ich,u1;ndy;sty",Infinitive:"true¦0:8V;1:8G;2:9D;3:80;4:7N;5:91;6:9H;7:99;8:82;9:9G;A:92;B:8X;C:7K;D:7U;E:7Q;F:87;G:7V;H:7H;a82b7Jc6Sd5Le4Gf45g41h3Wi3Cj39k37l2Ym2Rnou3Vo2Lp25qu24r19s0AtYuTvRwI;aOeNiLors4rI;eJiI;ng,te;ak,st3;d4e7HthI;draw,er;a2d,ep;i2ke,nIrn;d0t;aIie;li9Eni9ry;nIplift;cov0dJear7JlIplug,tie,ve85;ea9o3K;erIo;cut,go,sta9Gval96whelm;aRePhMoLrI;aIemb3;ffi3Fmp3nsI;aDpi8;pp3ugh4;aJiJrIwaE;eat4i2;nk;aIm92;ch,se;ck3ilor,keImp0r7N;! paE;a0Fc0Ee0Ch08i06l04mugg3n03o01pYquXtQuKwI;all71eeIim;p,t4;bKccumb,ffJggeBmm93p2FrI;mouFvi2;er,i5;li80mJsiIveE;de,st;erAit;aMe7SiKrI;ang3eIi2;ng20w;fIng;f4le;gg0rI;t3ve;a3Ui9;a4DeJit,l6KoI;il,of;ak,nd;lIot6Nw;icCve;eak,i0L;aIi6;m,y;ft,nIt;g,k;aKi5LoJriIun;nk,v5X;ot,rt4;ke,rp4tt0;eIll,nd,que7Nv0w;!k,m;avenAul81;dd4tis1Ay;a0BeJip4oI;am,ut;a07b05c03d02fZgroup,heaYiXlVmUnTpRq36sNtLup,vI;amp,eJiIo2V;sCve;l,rt;i8rI;ie2ofC;eFiKtIurfa5;o1XrI;aHiDuctu8;de,gn,st;el,hra1lIreseF;a5e69;d0ew,o05;aHe31o2;a7eFiIoad,y;e2nq3Mve;mbur1nf2U;r1t;inJleDocus,re9uI;el,rbi9;an5e;aDu5;ei2k7Jla3OoIyc3;gni2Wnci3up,v0;oot,uI;ff;ct,d,liI;se,ze;tt3vi9;a9enGit,o7;aVerTinpoiFlumm0VoSrKuI;b3Oke,ni9rIt;poEs6W;eMoI;cKd,fe4BhibCnoJpo1sp0tru6vI;e,i6o4W;un5;la39u8;aGclu6dJf0occupy,sup0FvI;a5LeF;etermi47iD;aGrtr4Vsse44;cei2fo3Hi9mea7plex,sIva6;eve8iB;mp0rItrol,ve,y;a5St5O;bMccuLpKutJverIwe;lap,s19tu6Au1;gr4Pnu22pa5;era7i3Ypo1;py,r;ser2taH;aMe09iJoIultiply;leBu64;micJnIspla5;ce,g3us;!k;iIke,naA;m,ntaH;aPeLiIo1u39;e,ke,ng0quIv4;eIi66;fy;aKnIss4;d,gI;th4;rn,ve;ng26u1E;eep,nI;e3Row;oHuI;gg3xtaI;po1;gno8mWnIrk;cUdSfRgeBhQitia7ju8q14sOtKun5TvI;eIo0T;nt,st;erJimi5QoxiQrI;odu5u6;aDn,prIru5Q;et;iBpi8tIu8;il,ruD;abCibC;eBo2Bu1;iIulA;ca7;i7lu6;b5Cmer1pI;aEer47ly,oJrI;e2Ris5No2;rt,se,veI;ri9;aLeKiIoiBuE;de,jaInd0;ck;ar,iQ;mp0ng,pp4st4ve;ath0et,i2le1UoKrI;aIow;b,pp3ze;!ve4S;ast4er3Li58lRorMrJuI;lf3Tr3P;eJiIolic;ght4;e0Lsh4;b3DeKfeCgIs4B;eIi2;!t;clo1go,sIwa4J;had2Y;ee,i2Q;a0KdCl0Im0CnUquip,rTsStGvQxI;cNeEha3iMpJtI;ing0Uol;eJi8lIo1unA;aHoC;ct,di7;st,t;e2MlI;a0Xu6;alua7oI;ke,l2;chew,pou1tab13;a1u4G;aYcVdTfSgQhan5joy,lPqOrNsuMtKvI;e0VisI;aAi4L;er,i5rI;aHenGuB;e,re;iGol;ui8;arAiB;aAeIra2ulf;nd0;or5;ang0oIu8;r1w;lo1ou0CrJuI;mb0;oaGy3Z;b3ct;bKerApI;hasiIow0;ze;a0Tody,rI;a5oiI;d0l;ap1eDuI;ci3Ode;rIt;ma0Nn;a0Ne02iKo,rIwind3;aw,edAoI;wn;agno1e,ff0g,mi27sLvI;eIulA;rIst;ge,t;ab3bUcPlodAmant3pNru3GsMtI;iIoEu2W;lJngI;ui9;!l;ol2ua6;eIla5o1ro2;n1r1;a2Ne2WlKoIu0K;uIv0;raA;aIo1;im;a38ur1;af4bZcTduDep4fRliQmNnLpKra1TtaGvI;eIol2;lop;aEiDoE;oIy;te,un5;eJoI;li9;an;mCv0;a5i06oIraud,y;rm;ei2iMoKrI;ee,yI;!pt;de,mIup3;missi2Upo1;de,ma7ph0;aJrief,uI;g,nk;rk;mp4rk4uF;a06ea1h04i03l02oJrIurta17;a2ea7ipp3;ales5eZhabCinci6llYmWnIrro6;cTdQfNju8no7qu0sLtKvI;eIin5;ne,rA;aHin25ribu7;er2iIoli27pi8titu7ult;d0st;eJiIroFu1;de,gu8rm;ss;eJoI;ne;mn,n1;eIlu6ur;al,i2;buBe,men5pI;e7i3ly;eDi6u6;r5xiB;ean1iS;rcumveFte;eIoo1;ri9w;ncIre4t0ulk;el;aXeRi6lPoOrLuI;iJrIy;st,y;ld;aJeastfeMiIoad4;ng;ke;il,l12mba0XrrMth0;eIow;ed;!come,gHha2liLqueaKstJtrIwild0;ay;ow;th;e2tt3;in;bysCckfi8ff3tI;he;it;b17c0Vd0Mff0Kgr0Jl0Fm0Bn05pp01rZsSttPuNvKwaI;it,k4;en;eEoI;id;rt;gIto08;meF;aGeBraD;ct;ch;pi8sJtoI;ni9;aKeIi05u8;mb3rt,ss;le;il;re;g0Ji1ou1rI;anAi2;eaKly,oiFrI;ai1o2;nt;r,se;aMiQnJtI;icipa7;eJoIul;un5y;al;ly1;aJu1;se;lgaIze;ma7;iKlI;eAoIu6;t,w;gn;ee;ix,oI;rd;a01jNmiKoJsoI;rb;pt,rn;niIt;st0;er;ouJuB;st;rn;cLhie2knowledAquiItiva7;es5re;ce;ge;eOomKrJusI;e,tom;ue;moJpI;any,li9;da7;te;pt;andOet,i6oKsI;coKol2;ve;li9rt,uI;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Verb:"true¦born,cannot,gonna,has,keep tabs,msg",Participle:"true¦fl3g1s0writt2;e1h2;iv0one;en;own","Actor|Verb":"true¦aIbDcAd8engineFfool,g6host,judge,m4nerd,p3recruit,s1ushFvolunteFwi0;mp,tneF;cout,p0;ons6y;arent,ilot;a0ime;n,st9;eek,oof,r0uide;aduCoom;elegBoct0;or;ha1o0;a5nscript,ok;mpion,uffeur;it3o2u0;lly,tch0;er;ss;ch;d0ffili1rchite2;di1voc0;ate;ct","Adj|Gerund":"true¦0:2F;1:2H;2:25;3:23;4:20;5:2D;6:27;7:22;a24b1Zc1Hd14e0Yf0Og0Ih0Hi0Ajud1Xl07m04o00pWrQsFtAup9v8w0Pyiel4;ar5eY;lif0s01;aWeBhr9i3ouc7r8wis0;e01oub2us0yi1;ea0Mi8;l2vi1;l2mp0;atisf5creec7hoc0Ekyrocke0lo13oGpFtBu9we8;e12l2;pp1Kr8;gi1pri6roun4;a9ea23i8ri0Aun1C;mula0r3;gge3r8;t2vi1;ark2ee4;a8ot7;ki1ri1;aCe9ive0o8us7;a3l2;defi13fres7ig13laEmai13s0v8war4;ea2itali8ol0Q;si1zi1;gi1ll5mb2vi1;a5erpleAier1Dlun18r8un1J;e8o11;ce4s6vai2;xi1;ffsApNut9ver8wi1;arc7lap0Hp09ri4whel1L;goi1l5st0Y;et0;eande3i9o0Fu8;mb2;s6tiga0;a9i8o0C;fesa0Bmi0vi1;cKg0Vs0;mDn8rri0C;cBsAt9vi8;go1Gti1;e15imida0;pi3ul0;orpo1Drea6;po6;arrowi1ea2orrif5umilia0;lCr8;a0ipZo9uel8;i1li1;undbrea8wi1;ki1;a3ea0Z;aGetc7it0lDoBr9ulf8;il2;ee0Yigh8ust12;te04;r8un4;ebo4th0H;a9o8;a0we3;mi1tte3;di1scina0;mBn9x8;ac0ci0is0plo4;ab2c8du3ga04sT;han0oura03;barras6er02p8;owe3;aJeCi8;s8zz5;appoin0gus0sen0t8;r8u0N;ac0es6;biliDcCfiMgra4mBpres6serAv8;asCelo8;pi1;vi1;an4eaI;a5liH;ta0;maOri1s7un0;aOhLlo6o8ripp2ut0;mEn8rrespon4;cerCfBspi3t8vinQ;in9r8;as0ibu0ol2;ui1;lic0u6;ni1;fCmBp8;e9ro8;mi6;l2ti1;an4;or0;a8ea0il2;llen8rQ;gi1;lOptiva0ri1;eBin4lin4o9rui6u8;d4st2;i2oLri1un8;ci1;coJ;bsoQcLgonJlarImGppea2rEs8;pi3su3to8;n9un4;di1;is7;hi1;ri1;res0;li1;aBu6;si1;mi1;i8zi1;zi1;c8hi1;ele9ompan5;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:30;1:2R;2:2U;a2Jb2Dc1Ud1Be15f10gift0h0Xi0Qj0Pknown,l0Mm0Hn0Fo0Cp05qua04rVsEtAu7v5w3;arp0ea3or5;kIth2T;a3e0W;ri0;n3pd1s0;derstood,i3;fi0t0;ar5hreatCr3wi2R;a3ou19;ck0in0pp0;get0ni1N;aHcaGeEhDimCm01oak0pAt6u3;bsid28gge2Ms3;pe3ta1S;ct0nd0;at0e5r3uV;ength3ip0;en0;am0reotyp0;eci3ik0ott0;al20fi0;pIul1;ar0ut;a3c1Jle2t1S;l0t0;r0tt25;t3ut0;is1Jur1;aAe3;c7duc0f1Cg6l1new0qu5s3;pe2t3;or0ri2;e22ir0;ist1Xul1;eiv0o3;mme09rd0v1V;lli0ti1A;li19;arallel0i0Kl7o6r3ump0;e4o3;ce0Ilo0Hnou1Tpos0te2;fe0Loc8pY;i1Gli0R;a3e19;nn0;c4rgan1Bverlo3;ok0;cupi0;e3ot0;ed0gle2;a5e4ix0o3ut0;di0Vt0G;as0Qlt0;n3rk0;ag0ufact0O;eft,i4o3;ad0st;cens0mit0st0;agg0us0N;mp8n3sol1;br0debt0f6t3volv0;e3ox0F;gr1n3re18;d0si0J;e2l1oX;li0oLrov0;amm10e1o3;ok0r3;ri0E;aNe6i5lavo09oc05r3;a3i0;ct07g0Mm0;niXx0;ar0;duc1l1mbarraKn7quipp0stabliVx3;agger1p3te5;a4e3;ct0rie0S;nd0;ha0QsZ;aJeAi3;gni01miniOre2s3;a7c5grun05t3;o3reBurb0;rt0;iplSou3;nt0rE;bl0;cenVdOf8l7pre6ra5t3velop0;a3ermO;il0;ng0;ss0;ay0ight0;e4o3;rm0;rr0;m3t0;ag0;alcul1eHharg0lGo8r5u3;lt3stomS;iv1;a4owd0u3;sh0;ck0mp0;d0lo9m6n3ok0vX;centr1f4s3troll0;idVolid1;us0;b4pl3;ic1;in0;ur0;assi5os0;lebr1n5r3;ti3;fi0;tralB;a7i6o4roken,urn3;ed,t;il0r0t3und;tl0;as0;k0laIs0;bandon0cJdGffe2lDnBpp9ss7u3ward0;g4thor3;iz0;me3;nt0;o5u3;m0r0;li0re3;ci1;im1ticip1;at0;leg0t3;er0;ct0;ju4o6va3;nc0;st0;ce3knowledg0;pt0;ed","Person|Verb":"true¦b8ch7dr6foster,gra5hope,ja9lan4ma2ni9ollie,p1rob,s0tra4wade;pike,t5ue;at,eg,ier2;ck,r0;k,shal;ce;ce,nt;ew;ase,u1;iff,l1ob,u0;ck;aze,ossom","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Po=36,Ao="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Io=Ao.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var No=function(e){if(void 0!==Io[e])return Io[e];let t=0,n=1,r=Po,a=1;for(;n=0;n--,a*=Po){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},jo=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=Eo(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=To(ko[e]);Fo.test(e)?Object.keys(t).forEach((t=>{if(Bo[t]=e,"Noun|Verb"===e){let e=Vo(t,zo);Bo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Go[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","3","<\\3","=("].forEach((e=>Go[e]="Emoticon")),delete Go[""],delete Go.null,delete Go[" "];const $o="Singular";var Lo={beforeTags:{Determiner:$o,Possessive:$o,Acronym:$o,Noun:$o,Adjective:$o,PresentTense:$o,Gerund:$o,PastTense:$o,Infinitive:$o,Date:$o,Ordinal:$o,Demonym:$o},afterTags:{Value:$o,Modal:$o,Copula:$o,PresentTense:$o,PastTense:$o,Demonym:$o,Actor:$o},beforeWords:{the:$o,with:$o,without:$o,of:$o,for:$o,any:$o,all:$o,on:$o,cut:$o,cuts:$o,increase:$o,decrease:$o,raise:$o,drop:$o,save:$o,saved:$o,saves:$o,make:$o,makes:$o,made:$o,minus:$o,plus:$o,than:$o,another:$o,versus:$o,neither:$o,about:$o,favorite:$o,best:$o,daily:$o,weekly:$o,linear:$o,binary:$o,mobile:$o,lexical:$o,technical:$o,computer:$o,scientific:$o,security:$o,government:$o,popular:$o,formal:$o,no:$o,more:$o,one:$o},afterWords:{of:$o,system:$o,aid:$o,method:$o,utility:$o,tool:$o,reform:$o,therapy:$o,philosophy:$o,room:$o,authority:$o,says:$o,said:$o,wants:$o,wanted:$o,is:$o,can:$o,wise:$o}};const So="Infinitive";var Mo={beforeTags:{Modal:So,Adverb:So,Negative:So,Plural:So},afterTags:{Determiner:So,Adverb:So,Possessive:So,Reflexive:So,Preposition:So,Cardinal:So,Comparative:So,Superlative:So},beforeWords:{i:So,we:So,you:So,they:So,to:So,please:So,will:So,have:So,had:So,would:So,could:So,should:So,do:So,did:So,does:So,can:So,must:So,us:So,me:So,let:So,even:So,when:So,help:So,he:So,she:So,it:So,being:So,bi:So,co:So,contra:So,de:So,inter:So,intra:So,mis:So,pre:So,out:So,counter:So,nobody:So,somebody:So,anybody:So,everybody:So},afterWords:{the:So,me:So,you:So,him:So,us:So,her:So,them:So,it:So,himself:So,herself:So,itself:So,myself:So,ourselves:So,themselves:So,something:So,anything:So,a:So,an:So,up:So,down:So,by:So,out:So,off:So,under:So,what:So,all:So,to:So,because:So,although:So,after:So,before:So,how:So,otherwise:So,together:So,though:So,into:So,yet:So,more:So,here:So,there:So}},Ho={beforeTags:Object.assign({},Mo.beforeTags,Lo.beforeTags,{}),afterTags:Object.assign({},Mo.afterTags,Lo.afterTags,{}),beforeWords:Object.assign({},Mo.beforeWords,Lo.beforeWords,{}),afterWords:Object.assign({},Mo.afterWords,Lo.afterWords,{})};const Jo="Adjective";var Wo={beforeTags:{Determiner:Jo,Possessive:Jo,Hyphenated:Jo},afterTags:{Adjective:Jo},beforeWords:{seem:Jo,seemed:Jo,seems:Jo,feel:Jo,feels:Jo,felt:Jo,stay:Jo,appear:Jo,appears:Jo,appeared:Jo,also:Jo,over:Jo,under:Jo,too:Jo,it:Jo,but:Jo,still:Jo,really:Jo,quite:Jo,well:Jo,very:Jo,how:Jo,deeply:Jo,hella:Jo,profoundly:Jo,extremely:Jo,so:Jo,badly:Jo,mostly:Jo,totally:Jo,awfully:Jo,rather:Jo,nothing:Jo,something:Jo,anything:Jo,not:Jo,me:Jo,is:Jo},afterWords:{too:Jo,also:Jo,or:Jo}};const Ko="Gerund";var qo={beforeTags:{Adverb:Ko,Preposition:Ko,Conjunction:Ko},afterTags:{Adverb:Ko,Possessive:Ko,Person:Ko,Pronoun:Ko,Determiner:Ko,Copula:Ko,Preposition:Ko,Conjunction:Ko,Comparative:Ko},beforeWords:{been:Ko,keep:Ko,continue:Ko,stop:Ko,am:Ko,be:Ko,me:Ko,began:Ko,start:Ko,starts:Ko,started:Ko,stops:Ko,stopped:Ko,help:Ko,helps:Ko,avoid:Ko,avoids:Ko,love:Ko,loves:Ko,loved:Ko,hate:Ko,hates:Ko,hated:Ko},afterWords:{you:Ko,me:Ko,her:Ko,him:Ko,them:Ko,their:Ko,it:Ko,this:Ko,there:Ko,on:Ko,about:Ko,for:Ko}},Uo={beforeTags:Object.assign({},Wo.beforeTags,qo.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Wo.afterTags,qo.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Wo.beforeWords,qo.beforeWords,{is:"Adjective",was:"Adjective",of:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Wo.afterWords,qo.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ro={beforeTags:{Determiner:void 0,Cardinal:"Noun",PhrasalVerb:"Adjective"}};var Qo={beforeTags:Object.assign({},Wo.beforeTags,Lo.beforeTags,Ro.beforeTags),afterTags:Object.assign({},Wo.afterTags,Lo.afterTags),beforeWords:Object.assign({},Wo.beforeWords,Lo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective",off:"Adjective",out:"Adjective"}),afterWords:Object.assign({},Wo.afterWords,Lo.afterWords)};let _o="PastTense";const Yo={beforeTags:{Adverb:_o,Pronoun:_o,ProperNoun:_o,Auxiliary:_o,Noun:_o},afterTags:{Possessive:_o,Pronoun:_o,Determiner:_o,Adverb:_o,Comparative:_o,Date:_o,Gerund:_o},beforeWords:{be:_o,who:_o,get:"Adjective",had:_o,has:_o,have:_o,been:_o,it:_o,as:_o,for:"Adjective"},afterWords:{by:_o,back:_o,out:_o,in:_o,up:_o,down:_o,before:_o,after:_o,for:_o,the:_o,with:_o,as:_o,on:_o,at:_o,between:_o,to:_o,into:_o,us:_o,them:_o,me:_o}};var Zo={beforeTags:Object.assign({},Wo.beforeTags,Yo.beforeTags),afterTags:Object.assign({},Wo.afterTags,Yo.afterTags),beforeWords:Object.assign({},Wo.beforeWords,Yo.beforeWords),afterWords:Object.assign({},Wo.afterWords,Yo.afterWords)};const Xo={afterTags:{Noun:"Adjective",Conjunction:void 0}};var ei={beforeTags:Object.assign({},Wo.beforeTags,Mo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Wo.afterTags,Mo.afterTags,Xo.afterTags),beforeWords:Object.assign({},Wo.beforeWords,Mo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Wo.afterWords,Mo.afterWords,{to:void 0,as:"Adjective"})};const ti={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ni={},ri={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ai={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var oi={beforeTags:Object.assign({},qo.beforeTags,Lo.beforeTags,ti),afterTags:Object.assign({},qo.afterTags,Lo.afterTags,ni),beforeWords:Object.assign({},qo.beforeWords,Lo.beforeWords,ri),afterWords:Object.assign({},qo.afterWords,Lo.afterWords,ai)};const ii="Singular",si="Infinitive";var li={beforeTags:Object.assign({},Mo.beforeTags,Lo.beforeTags,{Adjective:ii,Particle:ii}),afterTags:Object.assign({},Mo.afterTags,Lo.afterTags,{ProperNoun:si,Gerund:si,Adjective:si,Copula:ii}),beforeWords:Object.assign({},Mo.beforeWords,Lo.beforeWords,{is:ii,was:ii,of:ii,have:null}),afterWords:Object.assign({},Mo.afterWords,Lo.afterWords,{instead:si,about:si,his:si,her:si,to:null,by:null,in:null})};const ui="Person";var ci={beforeTags:{Honorific:ui,Person:ui},afterTags:{Person:ui,ProperNoun:ui,Verb:ui},ownTags:{ProperNoun:ui},beforeWords:{hi:ui,hey:ui,yo:ui,dear:ui,hello:ui},afterWords:{said:ui,says:ui,told:ui,tells:ui,feels:ui,felt:ui,seems:ui,thinks:ui,thought:ui,spends:ui,spendt:ui,plays:ui,played:ui,sing:ui,sang:ui,learn:ui,learned:ui,wants:ui,wanted:ui}};const hi="Month",di={beforeTags:{Date:hi,Value:hi},afterTags:{Date:hi,Value:hi},beforeWords:{by:hi,in:hi,on:hi,during:hi,after:hi,before:hi,between:hi,until:hi,til:hi,sometime:hi,of:hi,this:hi,next:hi,last:hi,previous:hi,following:hi},afterWords:{sometime:hi,in:hi,of:hi,until:hi,the:hi}};var gi={beforeTags:Object.assign({},ci.beforeTags,di.beforeTags),afterTags:Object.assign({},ci.afterTags,di.afterTags),beforeWords:Object.assign({},ci.beforeWords,di.beforeWords),afterWords:Object.assign({},ci.afterWords,di.afterWords)};const pi="Place",mi={beforeTags:{Place:pi},afterTags:{Place:pi,Abbreviation:pi},beforeWords:{in:pi,by:pi,near:pi,from:pi,to:pi},afterWords:{in:pi,by:pi,near:pi,from:pi,to:pi,government:pi,council:pi,region:pi,city:pi}};let fi="Unit";const vi={"Actor|Verb":Ho,"Adj|Gerund":Uo,"Adj|Noun":Qo,"Adj|Past":Zo,"Adj|Present":ei,"Noun|Verb":li,"Noun|Gerund":oi,"Person|Noun":{beforeTags:Object.assign({},Lo.beforeTags,ci.beforeTags),afterTags:Object.assign({},Lo.afterTags,ci.afterTags),beforeWords:Object.assign({},Lo.beforeWords,ci.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Lo.afterWords,ci.afterWords)},"Person|Date":gi,"Person|Verb":{beforeTags:Object.assign({},Lo.beforeTags,ci.beforeTags,Mo.beforeTags),afterTags:Object.assign({},Lo.afterTags,ci.afterTags,Mo.afterTags),beforeWords:Object.assign({},Lo.beforeWords,ci.beforeWords,Mo.beforeWords),afterWords:Object.assign({},Lo.afterWords,ci.afterWords,Mo.afterWords)},"Person|Place":{beforeTags:Object.assign({},mi.beforeTags,ci.beforeTags),afterTags:Object.assign({},mi.afterTags,ci.afterTags),beforeWords:Object.assign({},mi.beforeWords,ci.beforeWords),afterWords:Object.assign({},mi.afterWords,ci.afterWords)},"Person|Adj":{beforeTags:Object.assign({},ci.beforeTags,Wo.beforeTags),afterTags:Object.assign({},ci.afterTags,Wo.afterTags),beforeWords:Object.assign({},ci.beforeWords,Wo.beforeWords),afterWords:Object.assign({},ci.afterWords,Wo.afterWords)},"Unit|Noun":{beforeTags:{Value:fi},afterTags:{},beforeWords:{per:fi,every:fi,each:fi,square:fi,cubic:fi,sq:fi,metric:fi},afterWords:{per:fi,squared:fi,cubed:fi,long:fi}}},bi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};vi["Plural|Verb"]={beforeWords:bi(vi["Noun|Verb"].beforeWords,{had:"Plural",have:"Plural"}),afterWords:bi(vi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null,is:"PresentTense",by:"PresentTense"}),beforeTags:bi(vi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:bi(vi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var yi=vi;const wi="Adjective",ki="Infinitive",Pi="PresentTense",Ai="Singular",Ii="PastTense",Ni="Adverb",ji="Plural",xi="Actor",Ei="Verb",Ti="Noun",Ci="LastName",Di="Modal",Oi="Participle";var Vi=[null,null,{ea:Ai,ia:Ti,ic:wi,ly:Ni,"'n":Ei,"'t":Ei},{oed:Ii,ued:Ii,xed:Ii," so":Ni,"'ll":Di,"'re":"Copula",azy:wi,eer:Ti,end:Ei,ped:Ii,ffy:wi,ify:ki,ing:"Gerund",ize:ki,ibe:ki,lar:wi,mum:wi,nes:Pi,nny:wi,ous:wi,que:wi,ger:Ti,ber:Ti,rol:Ai,sis:Ai,ogy:Ai,oid:Ai,ian:Ai,zes:Pi,eld:Ii,ken:Oi,ven:Oi,ten:Oi,ect:ki,ict:ki,ign:ki,ful:wi,bal:wi},{amed:Ii,aped:Ii,ched:Ii,lked:Ii,rked:Ii,reed:Ii,nded:Ii,mned:wi,cted:Ii,dged:Ii,ield:Ai,akis:Ci,cede:ki,chuk:Ci,czyk:Ci,ects:Pi,ends:Ei,enko:Ci,ette:Ai,iary:Ai,wner:Ai,fies:Pi,fore:Ni,gate:ki,gone:wi,ices:ji,ints:ji,ruct:ki,ines:ji,ions:ji,ners:ji,pers:ji,lers:ji,less:wi,llen:wi,made:wi,nsen:Ci,oses:Pi,ould:Di,some:wi,sson:Ci,ians:ji,tion:Ai,tage:Ti,ique:Ai,tive:wi,tors:Ti,vice:Ai,lier:Ai,fier:Ai,wned:Ii,gent:Ai,tist:xi,pist:xi,rist:xi,mist:xi,yist:xi,vist:xi,ists:xi,lite:Ai,site:Ai,rite:Ai,mite:Ai,bite:Ai,mate:Ai,date:Ai,ndal:Ai,vent:Ai,uist:xi,gist:xi,note:Ai,cide:Ai,ence:Ai,wide:wi,vide:ki,ract:ki,duce:ki,pose:ki,eive:ki,lyze:ki,lyse:ki,iant:wi,nary:wi,erer:xi},{elist:xi,holic:Ai,phite:Ai,tized:Ii,urned:Ii,eased:Ii,ances:ji,bound:wi,ettes:ji,fully:Ni,ishes:Pi,ities:ji,marek:Ci,nssen:Ci,ology:Ti,osome:Ai,tment:Ai,ports:ji,rough:wi,tches:Pi,tieth:"Ordinal",tures:ji,wards:Ni,where:Ni,archy:Ti,pathy:Ti,opoly:Ti,embly:Ti,phate:Ti,ndent:Ai,scent:Ai,onist:xi,anist:xi,alist:xi,olist:xi,icist:xi,ounce:ki,iable:wi,borne:wi,gnant:wi,inant:wi,igent:wi,atory:wi,rient:Ai,dient:Ai,maker:xi},{auskas:Ci,parent:Ai,cedent:Ai,ionary:Ai,cklist:Ai,keeper:xi,logist:xi,teenth:"Value",worker:xi,master:xi,writer:xi},{logists:xi,opoulos:Ci,borough:"Place",sdottir:Ci}];const Fi="Adjective",Gi="Noun",Bi="Verb";var zi=[null,null,{},{neo:Gi,bio:Gi,"de-":Bi,"re-":Bi,"un-":Bi},{anti:Gi,auto:Gi,faux:Fi,hexa:Gi,kilo:Gi,mono:Gi,nano:Gi,octa:Gi,poly:Gi,semi:Fi,tele:Gi,"pro-":Fi,"mis-":Bi,"dis-":Bi,"pre-":Fi},{anglo:Gi,centi:Gi,ethno:Gi,ferro:Gi,grand:Gi,hepta:Gi,hydro:Gi,intro:Gi,macro:Gi,micro:Gi,milli:Gi,nitro:Gi,penta:Gi,quasi:Fi,radio:Gi,tetra:Gi,"omni-":Fi,"post-":Fi},{pseudo:Fi,"extra-":Fi,"hyper-":Fi,"inter-":Fi,"intra-":Fi,"deca-":Fi},{electro:Gi}];const $i="Adjective",Li="Infinitive",Si="PresentTense",Mi="Singular",Hi="PastTense",Ji="Adverb",Wi="Expression",Ki="Actor",qi="Verb",Ui="Noun",Ri="LastName";var Qi={a:[[/.[aeiou]na$/,Ui,"tuna"],[/.[oau][wvl]ska$/,Ri],[/.[^aeiou]ica$/,Mi,"harmonica"],[/^([hyj]a+)+$/,Wi,"haha"]],c:[[/.[^aeiou]ic$/,$i]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Hi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Hi,"rammed"],[/.[aeiou][sg]hed$/,Hi,"gushed"],[/.[aeiou]red$/,Hi,"hired"],[/.[aeiou]r?ried$/,Hi,"hurried"],[/[^aeiou]ard$/,Mi,"steward"],[/[aeiou][^aeiou]id$/,$i,""],[/.[vrl]id$/,$i,"livid"],[/..led$/,Hi,"hurled"],[/.[iao]sed$/,Hi,""],[/[aeiou]n?[cs]ed$/,Hi,""],[/[aeiou][rl]?[mnf]ed$/,Hi,""],[/[aeiou][ns]?c?ked$/,Hi,"bunked"],[/[aeiou]gned$/,Hi],[/[aeiou][nl]?ged$/,Hi],[/.[tdbwxyz]ed$/,Hi],[/[^aeiou][aeiou][tvx]ed$/,Hi],[/.[cdflmnprstv]ied$/,Hi,"emptied"]],e:[[/.[lnr]ize$/,Li,"antagonize"],[/.[^aeiou]ise$/,Li,"antagonise"],[/.[aeiou]te$/,Li,"bite"],[/.[^aeiou][ai]ble$/,$i,"fixable"],[/.[^aeiou]eable$/,$i,"maleable"],[/.[ts]ive$/,$i,"festive"],[/[a-z]-like$/,$i,"woman-like"]],h:[[/.[^aeiouf]ish$/,$i,"cornish"],[/.v[iy]ch$/,Ri,"..ovich"],[/^ug?h+$/,Wi,"ughh"],[/^uh[ -]?oh$/,Wi,"uhoh"],[/[a-z]-ish$/,$i,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Ri,"polish-male"]],k:[[/^(k){2}$/,Wi,"kkkk"]],l:[[/.[gl]ial$/,$i,"familial"],[/.[^aeiou]ful$/,$i,"fitful"],[/.[nrtumcd]al$/,$i,"natal"],[/.[^aeiou][ei]al$/,$i,"familial"]],m:[[/.[^aeiou]ium$/,Mi,"magnesium"],[/[^aeiou]ism$/,Mi,"schism"],[/^[hu]m+$/,Wi,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,$i,"republican"],[/[^aeiou]ician$/,Ki,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Wi,"noooo"],[/^(yo)+$/,Wi,"yoo"],[/^wo{2,}[pt]?$/,Wi,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Mi],[/[^i]fer$/,Li],[/.[^aeiou][ao]pher$/,Ki],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,$i],[/[aeiou].*ist$/,$i],[/^[a-z]et$/,qi]],s:[[/.[^aeiou]ises$/,Si],[/.[rln]ates$/,Si],[/.[^z]ens$/,qi],[/.[lstrn]us$/,Mi],[/.[aeiou]sks$/,Si],[/.[aeiou]kes$/,Si],[/[aeiou][^aeiou]is$/,Mi],[/[a-z]'s$/,Ui],[/^yes+$/,Wi]],v:[[/.[^aeiou][ai][kln]ov$/,Ri]],y:[[/.[cts]hy$/,$i],[/.[st]ty$/,$i],[/.[tnl]ary$/,$i],[/.[oe]ry$/,Mi],[/[rdntkbhs]ly$/,Ji],[/.(gg|bb|zz)ly$/,$i],[/...lly$/,Ji],[/.[gk]y$/,$i],[/[bszmp]{2}y$/,$i],[/.[ai]my$/,$i],[/[ea]{2}zy$/,$i],[/.[^aeiou]ity$/,Mi]]};const _i="Verb",Yi="Noun";var Zi={leftTags:[["Adjective",Yi],["Possessive",Yi],["Determiner",Yi],["Adverb",_i],["Pronoun",_i],["Value",Yi],["Ordinal",Yi],["Modal",_i],["Superlative",Yi],["Demonym",Yi],["Honorific","Person"]],leftWords:[["i",_i],["first",Yi],["it",_i],["there",_i],["not",_i],["because",Yi],["if",Yi],["but",Yi],["who",_i],["this",Yi],["his",Yi],["when",Yi],["you",_i],["very","Adjective"],["old",Yi],["never",_i],["before",Yi],["a",Yi],["the",Yi],["been",_i]],rightTags:[["Copula",Yi],["PastTense",Yi],["Conjunction",Yi],["Modal",Yi]],rightWords:[["there",_i],["me",_i],["man","Adjective"],["him",_i],["it",_i],["were",Yi],["took",Yi],["himself",_i],["went",Yi],["who",Yi],["jr","Person"]]},Xi={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},es={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},ts={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},ns={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},rs={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const as=/^.([0-9]+)/;var os=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(as);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(as,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)})),t},ss=/^([0-9]+)/,ls=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ss);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(ss,"")]}(n[0],n[1])}))};var us=function(e={}){return(e=Object.assign({},e)).rules=ls(e.rules),e.rules=is(e.rules),e.rev&&(e.rev=ls(e.rev),e.rev=is(e.rev)),e.exceptions=ls(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e},cs=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const hs=us({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),ds=us(ns),gs=us(es),ps=us(ts),ms=cs(hs),fs=cs(ds),vs=cs(gs),bs=cs(ps),ys=us(Xi),ws=us(rs);var ks={fromPast:hs,fromPresent:ds,fromGerund:gs,fromParticiple:ps,toPast:ms,toPresent:fs,toGerund:vs,toParticiple:bs,toComparative:ys,toSuperlative:ws,fromComparative:cs(ys),fromSuperlative:cs(ws)},Ps=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),As=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],Is=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(js[t].forEach((n=>e[n]=t)),e)),{});var xs=js,Es=function(e){let t=e.substring(e.length-3);if(!0===xs.hasOwnProperty(t))return xs[t];let n=e.substring(e.length-2);return!0===xs.hasOwnProperty(n)?xs[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ts={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Cs=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=Es(e)),Ts.hasOwnProperty(e))c=Ts[e];else if("Participle"===n)c=os(l,i);else if("PastTense"===n)c=os(l,r);else if("PresentTense"===n)c=os(l,a);else{if("Gerund"!==n)return e;c=os(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Ds=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:os(i,n),PresentTense:os(i,r),Gerund:os(i,a),FutureTense:"will "+e},u=os(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l},Os={toInfinitive:Cs,conjugate:Ds,all:function(e,t){let n=Ds(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}};const Vs=function(e,t){const n=t.two.models.toSuperlative;return os(e,n)},Fs=function(e,t){const n=t.two.models.toComparative;return os(e,n)};var Gs=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a))return e.slice(0,n-r)+t[a.length][a]}return null};const Bs="ically",zs=new Set(["analyt"+Bs,"chem"+Bs,"class"+Bs,"clin"+Bs,"crit"+Bs,"ecolog"+Bs,"electr"+Bs,"empir"+Bs,"frant"+Bs,"grammat"+Bs,"ident"+Bs,"ideolog"+Bs,"log"+Bs,"mag"+Bs,"mathemat"+Bs,"mechan"+Bs,"med"+Bs,"method"+Bs,"method"+Bs,"mus"+Bs,"phys"+Bs,"phys"+Bs,"polit"+Bs,"pract"+Bs,"rad"+Bs,"satir"+Bs,"statist"+Bs,"techn"+Bs,"technolog"+Bs,"theoret"+Bs,"typ"+Bs,"vert"+Bs,"whims"+Bs]),$s=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Ls=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ss={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Ms=function(e){return e.endsWith("ly")?zs.has(e)?e.replace(/ically/,"ical"):Ls.has(e)?null:Ss.hasOwnProperty(e)?Ss[e]:Gs(e,$s)||e:null};const Hs=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Js={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Ws=function(e){if(Js.hasOwnProperty(e))return Js[e];let t=Gs(e,Hs);return t||e+"ly"};const Ks=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],qs={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Us=new Set(["terrible","annoying"]);var Rs={toSuperlative:Vs,toComparative:Fs,toAdverb:Ws,toNoun:function(e){if(qs.hasOwnProperty(e))return qs[e];if(Us.has(e))return null;let t=Gs(e,Ks);return t||e+"ness"},fromAdverb:Ms,fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return os(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return os(e,n)},all:function(e,t){let n=[e];return n.push(Vs(e,t)),n.push(Fs(e,t)),n.push(Ws(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},Qs={noun:Ns,verb:Os,adjective:Rs},_s={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Actor:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||["Plural","Actor"])},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,r);delete l.FutureTense,Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},Ys=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===_s.hasOwnProperty(i)&&_s[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},Zs=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]){let n=e[t-1];if(n.tags.has("Date")||a.has(n.normal))return!1;if(n.tags.has("Adjective")||r.tags.has("Adjective"))return!1}let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!tl.find((t=>e.endsWith(t)))},rl={two:{quickSplit:Zs,expandLexicon:Ys,transform:Qs,looksPlural:nl}},al=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const ol=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e)),{})};var il=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=ol(n,"Infinitive","PastTense"),Object.assign(s,l),l=ol(r,"Infinitive","Verb"),Object.assign(s,l),l=ol(a,"Infinitive","Gerund"),Object.assign(s,l),l=ol(o,"Adjective","Superlative"),Object.assign(s,l),l=ol(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let sl={two:{models:ks}};const ll={"Actor|Verb":"Actor","Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"FirstName","Person|Place":"Person","Person|Adj":"Adjective","Plural|Verb":"Plural","Unit|Noun":"Noun"},ul=function(e,t){const n={model:t,methods:rl};let{lex:r,_multi:a}=rl.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},cl=function(e,t,n){let r=Ds(e,sl);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},hl=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=ll[o],"Noun|Verb"!==o&&"Person|Verb"!==o&&"Actor|Verb"!==o||cl(a,r,!1),"Adj|Present"===o&&(cl(a,r,!0),function(e,t,n){let r=Vs(e,n);t[r]=t[r]||"Superlative";let a=Fs(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Cs(a,sl,"Gerund");r[e]||(n[e]="Infinitive")}if("Noun|Gerund"!==o&&"Adj|Noun"!==o&&"Person|Noun"!==o||function(e,t,n){let r=Vo(e,n);t[r]=t[r]||"Plural"}(a,r,t),"Adj|Past"===o){let e=Cs(a,sl,"PastTense");r[e]||(n[e]="Infinitive")}})),t=ul(n,t)};var dl=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=ul(e.one.lexicon,e)).one.lexicon,e),e=hl(e.two.switches,e),e=il(e),e=al(e)};let gl={one:{_multiCache:{},lexicon:Go},two:{irregularPlurals:wo,models:ks,suffixPatterns:Vi,prefixPatterns:zi,endsWith:Qi,neighbours:Zi,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z°]{1,4})$/,"NumericValue","9km"]],switches:Bo,clues:yi,uncountable:{},orgWords:Ps}};gl=dl(gl);var pl=gl,ml=function(e,t,n,r){const a=r.methods.one.setTag;if(0===t&&e.length>=3){const t=/:/;if(e[0].post.match(t)){let t=e[1];if(t.tags.has("Value")||t.tags.has("Email")||t.tags.has("PhoneNumber"))return;a([e[0]],"Expression",r,null,"2-punct-colon''")}}},fl=function(e,t,n,r){const a=r.methods.one.setTag;"-"===e[t].post&&e[t+1]&&a([e[t],e[t+1]],"Hyphenated",r,null,"1-punct-hyphen''")};const vl=/^(under|over|mis|re|un|dis|semi)-?/;var bl=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(vl.test(a.normal)){let e=a.normal.replace(vl,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},yl=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,"[33m[3m"+a+"[0m").padEnd(24)} [32m→[0m #${t.padEnd(22)} ${(e=>"[3m"+e+"[0m")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const wl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var kl=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(nl(e.normal)?yl(e,"Plural","3-plural-guess"):yl(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Es(e.normal);t&&yl(e,t,"3-verb-tense-guess")}}(r)};const Pl=/^\p{Lu}[\p{Ll}'’]/u,Al=/[0-9]/,Il=["Date","Month","WeekDay","Unit","Expression"],Nl=/[IVX]/,jl=/^[IVXLCDM]{2,}$/,xl=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,El={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Tl=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===Pl.test(o)&&!1===Al.test(o)?Il.find((e=>r.tags.has(e)))||r.pre.match(/["']$/)||"the"===r.normal?null:(kl(e,t,n),r.tags.has("Noun")||r.tags.clear(),yl(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&jl.test(o)&&Nl.test(o)&&xl.test(o)&&!El[r.normal]?(yl(r,"RomanNumeral","2-xvii"),!0):null};const Cl=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null};var Dl=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=Cl(r.normal,n.two.suffixPatterns);if(null!==e)return yl(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=Cl(r.implicit,n.two.suffixPatterns),null!==e))return yl(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const Ol=/['‘’‛‵′`´]/,Vl=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return yl(r,e,"2-prefix"),r.confidence=.5,!0}return null};const Bl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),zl=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Bl.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},$l=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Ll=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Sl=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(zl(a)||zl(o))return yl(n,"Year","2-tagYear");if(r>=1920&&r<2025){if($l(a)||$l(o))return yl(n,"Year","2-tagYear-close");if(Ll(e[t-2])||Ll(e[t+2]))return yl(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return yl(n,"Year","2-tagYear-noun")}}}return null},Ml=function(e,t,n,r){const a=r.methods.one.setTag,o=e[t],i=["PastTense","PresentTense","Auxiliary","Modal","Particle"];o.tags.has("Verb")&&(i.find((e=>o.tags.has(e)))||a([o],"Infinitive",r,null,"2-verb-type''"))};const Hl=/^[A-Z]('s|,)?$/,Jl=/^[A-Z-]+$/,Wl=/^[A-Z]+s$/,Kl=/([A-Z]\.)+[A-Z]?,?$/,ql=/[A-Z]{2,}('s|,)?$/,Ul=/([a-z]\.)+[a-z]\.?$/,Rl={I:!0,A:!0},Ql={la:!0,ny:!0,us:!0,dc:!0,gb:!0};var _l=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;if(!1===Jl.test(n)){if(!(n.length>3&&!0===Wl.test(n)))return!1;n=n.replace(/s$/,"")}return!(n.length>5||Rl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Kl.test(n)&&!0!==Ul.test(n)&&!0!==Hl.test(n)&&!0!==ql.test(n))}(r,n)?(r.tags.clear(),yl(r,["Acronym","Noun"],"3-no-period-acronym"),!0===Ql[r.normal]&&yl(r,"Place","3-place-acronym"),!0===Wl.test(r.text)&&yl(r,"Plural","3-plural-acronym"),!0):!Rl.hasOwnProperty(r.text)&&Hl.test(r.text)?(r.tags.clear(),yl(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(yl(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Jl.test(r.text)&&r.text.length<=6?(yl(r,"Acronym","3-titlecase-acronym"),!0):null};const Yl=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Zl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var Xl=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Yl(e[t-1],a),l=l||Yl(e[t+1],o),l=l||Zl(e[t-1],r),l=l||Zl(e[t+1],i),l)return yl(s,l,"3-[neighbour]"),kl(e,t,n),e[t].confidence=.2,!0}return null};const eu=function(e,t,n){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||!(n||(r=e.text,!/^\p{Lu}[\p{Ll}'’]/u.test(r)))&&(0!==t||e.tags.has("Singular")));var r};var tu=function(e,t,n,r){const a=n.model.two.orgWords,o=n.methods.one.setTag;let i=e[t];if(!0===a[i.machine||i.normal]&&eu(e[t-1],t-1,r)){o([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&eu(e[a],a,r);a-=1)o([e[a]],"Organization",n,null,"3-[org-word]")}return null},nu=function(e,t,n){let r=!1,a=e[t].tags;(0===a.size||1===a.size&&(a.has("Hyphenated")||a.has("HashTag")||a.has("Prefix")))&&(r=!0),r&&(yl(e[t],"Noun","3-[fallback]"),kl(e,t,n),e[t].confidence=.1)};const ru=/^[A-Z][a-z]/,au=(e,t)=>e[t].tags.has("ProperNoun")&&ru.test(e[t].text)?"Noun":null,ou=(e,t,n)=>0!==t||e[1]?null:n,iu={"Adj|Gerund":(e,t)=>au(e,t),"Adj|Noun":(e,t)=>au(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Actor|Verb":(e,t)=>au(e,t),"Adj|Past":(e,t)=>au(e,t),"Adj|Present":(e,t)=>au(e,t),"Noun|Gerund":(e,t)=>au(e,t),"Noun|Verb":(e,t)=>au(e,t)||ou(e,t,"Infinitive"),"Plural|Verb":(e,t)=>au(e,t)||ou(e,t,"PresentTense")||function(e,t,n){return 0===t&&e.length>3?n:null}(e,t,"Plural"),"Person|Noun":(e,t)=>au(e,t),"Person|Verb":(e,t)=>0!==t?au(e,t):null,"Person|Adj":(e,t)=>0===t&&e.length>1||au(e,t)?"Person":null};var su=iu;const lu="undefined"!=typeof process&&process.env?process.env:self.env||{},uu=/^(under|over|mis|re|un|dis|semi)-?/,cu=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&lu.DEBUG_TAGS&&console.log(`\n [2m[3m ↓ - '${n}' [0m`),r},hu=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&lu.DEBUG_TAGS&&console.log(` [2m[3m ↓ - '${e.normal||e.implicit}' (#${a}) [0m`),a=t[a],a};var du=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(uu.test(l)&&!o[l]&&(l=l.replace(uu,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=cu(e[t+1],n.afterWords);return o=o||cu(e[t-1],n.beforeWords),o=o||hu(e[t-1],n.beforeTags,a),o=o||hu(e[t+1],n.afterTags,a),o}(e,t,i[o],r);su[o]&&(u=su[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),kl(e,t,r)):lu.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}};const gu={there:!0,this:!0,it:!0,him:!0,her:!0,us:!0};var pu=function(e,t){const n=t.methods.one.setTag,r=t.model.one._multiCache||{};let a=e[0];if(("Noun|Verb"===a.switch||a.tags.has("Infinitive"))&&e.length>=2){if(e.length<4&&!gu[e[1].normal])return;if(!a.tags.has("PhrasalVerb")&&r.hasOwnProperty(a.normal))return;(e[1].tags.has("Noun")||e[1].tags.has("Determiner"))&&(e.slice(1,3).some((e=>e.tags.has("Verb")))&&!a.tags.has("#PhrasalVerb")||n([a],"Imperative",t,null,"3-[imperative]"))}};const mu=function(e){if(e.filter((e=>!e.tags.has("ProperNoun"))).length<=3)return!1;const t=/^[a-z]/;return e.every((e=>!t.test(e.text)))},fu=function(e,t,n,r){for(let a=0;a{ml(e,0,t,n);for(let t=0;t{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var wu=function(e){const t=e.world,n=Object.keys(yu);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=Ou.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=Du},Fu=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const Gu=/'/;var Bu=function(e,t){let n=e[t].normal.split(Gu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const zu=/'/;var $u=function(e,t){let n=e[t].normal.split(zu)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>!(!e[t+1]||"better"!=e[t+1].normal)||e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]},Lu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){if(e[t+1]&&"never"===e[t+1].normal)return["have"];let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if("i"===n.normal)return["am","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const Su={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Mu={in:!0,by:!0,for:!0};var Hu=(e,t)=>{let n=e[t];if(Su.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("QuestionWord"))return!1;if("he's"===n.normal||"she's"===n.normal)return!1;let r=e[t+1];if(!r)return!0;if("it's"===n.normal)return!!r.tags.has("#Noun");if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return!("here"===e||"there"===e||"everywhere"===e||r.tags.has("Possessive")||r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===Mu[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const Ju=/'/,Wu=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Ku={d:(e,t)=>$u(e,t),t:(e,t)=>Lu(e,t),s:(e,t,n)=>Hu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Bu(e,t)},qu=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Uu={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===Ju.test(r[o].normal)&&([,i]=r[o].normal.split(Ju));let s=null;Ku.hasOwnProperty(i)&&(s=Ku[i](r,o,t)),s&&(s=qu(s,e),Fu(n,[a,o],s),Wu(n[a],e,o,s.length))}}))}},Ru={compute:Uu,api:Vu,hooks:["contractionTwo"]};const Qu="(i|we|they)";let _u=[].concat([{match:"(got|were|was|is|are|am) (#PastTense|#Participle)",tag:"Passive",reason:"got-walked"},{match:"(was|were|is|are|am) being (#PastTense|#Participle)",tag:"Passive",reason:"was-being"},{match:"(had|have|has) been (#PastTense|#Participle)",tag:"Passive",reason:"had-been"},{match:"will be being? (#PastTense|#Participle)",tag:"Passive",reason:"will-be-cleaned"},{match:"#Noun [(#PastTense|#Participle)] by (the|a) #Noun",group:0,tag:"Passive",reason:"suffered-by"}],[{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,notIf:"(all|even)",tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"[#Hyphenated (#Hyphenated && #PastTense)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"faith-based"},{match:"[#Hyphenated (#Hyphenated && #Gerund)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"self-driving"},{match:"[#PastTense (#Hyphenated && #PhrasalVerb)] (#Noun|#Conjunction)",group:0,tag:"Adjective",reason:"dammed-up"},{match:"(#Hyphenated && #Value) fold",tag:"Adjective",reason:"two-fold"},{match:"must (#Hyphenated && #Infinitive)",tag:"Adjective",reason:"must-win"},{match:"(#Hyphenated && #Infinitive) #Hyphenated",tag:"Adjective",notIf:"#PhrasalVerb",reason:"vacuum-sealed"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"},{match:"[(un|contra|extra|inter|intra|macro|micro|mid|mis|mono|multi|pre|sub|tri|ex)] #Adjective",group:0,tag:["Adjective","Prefix"],reason:"un-skilled"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"},{match:"#Copula [far too] #Adjective",group:0,tag:"Adverb",reason:"far-too"},{match:"#Copula [still] (in|#Gerund|#Adjective)",group:0,tag:"Adverb",reason:"was-still-walking"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"},{match:"#Gerund [#Gerund]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looking-annoying"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",notIf:"#Hyphenated",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"},{match:"no [#Adjective] #Modal",group:0,tag:"Noun",reason:"no-golden"},{match:"[brand #Gerund?] new",group:0,tag:"Adverb",reason:"brand-new"},{match:"(#Determiner|#Comparative|new|different) [kind]",group:0,tag:"Noun",reason:"some-kind"},{match:"#Possessive [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"her-favourite"},{match:"must && #Hyphenated .",tag:"Adjective",reason:"must-win"},{match:"#Determiner [#Adjective]$",tag:"Noun",notIf:"(this|that|#Comparative|#Superlative)",reason:"the-south"},{match:"(#Noun && #Hyphenated) (#Adjective && #Hyphenated)",tag:"Adjective",notIf:"(this|that|#Comparative|#Superlative)",reason:"company-wide"},{match:"#Determiner [#Adjective] (#Copula|#Determiner)",notIf:"(#Comparative|#Superlative)",group:0,tag:"Noun",reason:"the-poor"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,notIf:"(#Modal|#PhrasalVerb)",tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] #Comparative",group:0,tag:"Adverb",reason:"even-worse"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",notIf:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",notIf:"(#PhrasalVerb|#Copula)",reason:"charge-back"},{match:"#Verb [around]",group:0,tag:"Adverb",notIf:"#PhrasalVerb",reason:"send-around"},{match:"[later] #PresentTense",group:0,tag:"Adverb",reason:"later-say"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) (march|may) !#Infinitive",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"(the|any) [more]",group:0,tag:"Singular",reason:"more-noun"},{match:"[more] #Noun",group:0,tag:"Adjective",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Singular",reason:"bit-2"},{match:"a [must]",group:0,tag:"Singular",reason:"must-2"},{match:"(we|us) [all]",group:0,tag:"Noun",reason:"we all"},{match:"due to [#Verb]",group:0,tag:"Noun",reason:"due-to"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",notIf:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"(a|an|the) [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",notIf:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,notIf:"#Gerund",tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense #Particle?]",group:0,tag:"Noun",notIf:"(seem|appear|include|#Gerund|#Copula)",reason:"det-inf"},{match:"#Noun #Actor",tag:"Actor",notIf:"#Person",reason:"thing-doer"},{match:"#Gerund #Actor",tag:"Actor",reason:"gerund-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"[#Noun+] #Actor",group:0,tag:"Actor",notIf:"#Honorific",reason:"air-traffic-controller"},{match:"(urban|cardiac|cardiovascular|respiratory|medical|clinical|visual|graphic|creative|dental|exotic|fine|certified|registered|technical|virtual|professional|amateur|junior|senior|special|pharmaceutical|theoretical)+ #Noun? #Actor",tag:"Actor",reason:"fine-artist"},{match:"#Noun+ (coach|chef|king|engineer|fellow|personality|boy|girl|man|woman)",tag:"Actor",reason:"dance-coach"},{match:"chief . officer",tag:"Actor",reason:"chief-x-officer"},{match:"chief of #Noun+",tag:"Actor",reason:"chief-of-police"},{match:"senior? vice? president of #Noun+",tag:"Actor",reason:"president-of"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]$",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense #Particle?",notIf:"(#Gerund|her)",tag:"Noun",reason:"possessive-verb"},{match:"(my|our|their|her|his|its) [(#Plural && #Actor)] #Noun",tag:"Possessive",reason:"my-dads"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"},{match:"i #Verb [me] #Noun",group:0,tag:"Possessive",reason:"scottish-me"},{match:"[#PresentTense] (music|class|lesson|night|party|festival|league|ceremony)",group:0,tag:"Noun",reason:"dance-music"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,ifNo:"#Copula",tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",notIf:"(still|even|just)",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"},{match:"#Singular for [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"noun-for-gerund"},{match:"#Comparative (for|at) [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"better-for-gerund"},{match:"#PresentTense the [#Gerund]",group:0,tag:"Noun",reason:"keep-the-touching"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner (only|further|just|more|backward) [#Infinitive]",group:0,tag:"Noun",reason:"the-only-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"#Plural on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb #Particle?]",notIf:"(#Copula|#Noun|sure|fun|up)",group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",notIf:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",notIf:"#Preposition",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",notIf:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"better",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",notIf:"(#Copula|better)",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"many-poses"},{match:"#Determiner #Adverb #Adjective [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Copula",reason:"very-big-dream"},{match:"from #Noun to [%Noun|Verb%]",group:0,tag:"Noun",reason:"start-to-finish"},{match:"(for|with|of) #Noun (and|or|not) [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Pronoun",reason:"for-food-and-gas"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #Particle #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense] of",group:0,notIf:"(one|1|#Copula|#Infinitive)",tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",notIf:"#Copula",reason:"our-full-support"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",notIf:"going",reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"},{match:"how to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"how-to-noun"},{match:"which [%Noun|Verb%] #Noun",group:0,tag:"Infinitive",reason:"which-boost-it"},{match:"#Gerund [%Plural|Verb%]",group:0,tag:"Plural",reason:"asking-questions"},{match:"(ready|available|difficult|hard|easy|made|attempt|try) to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"ready-to-noun"},{match:"(bring|went|go|drive|run|bike) to [%Noun|Verb%]",group:0,tag:"Noun",reason:"bring-to-noun"},{match:"#Modal #Noun [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"would-you-look"},{match:"#Copula just [#Infinitive]",group:0,tag:"Noun",reason:"is-just-spam"},{match:"^%Noun|Verb% %Plural|Verb%",tag:"Imperative #Plural",reason:"request-copies"},{match:"#Adjective #Plural and [%Plural|Verb%]",group:0,tag:"#Plural",reason:"pickles-and-drinks"},{match:"#Determiner #Year [#Verb]",group:0,tag:"Noun",reason:"the-1968-film"},{match:"#Determiner [#PhrasalVerb #Particle]",group:0,tag:"Noun",reason:"the-break-up"},{match:"#Determiner [%Adj|Noun%] #Noun",group:0,tag:"Adjective",notIf:"(#Pronoun|#Possessive|#ProperNoun)",reason:"the-individual-goals"},{match:"[%Noun|Verb%] or #Infinitive",group:0,tag:"Infinitive",reason:"work-or-prepare"},{match:"to #Infinitive [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|#Copula|help)",reason:"to-give-thanks"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"},{match:"^[#Value] (#Determiner|#Gerund)",group:0,tag:"Expression",unTag:"Value",reason:"numbered-list"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|brother|father|aunt|uncle|grandpa|grandfather|grandma) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",notIf:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",notIf:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[#Actor+] #Person",group:0,tag:"Person",reason:"baker-sam-smith"},{match:"[(lieutenant|corporal|sergeant|captain|qeen|king|admiral|major|colonel|marshal|president|queen|king)+] #ProperNoun",group:0,tag:"Honorific",reason:"seargeant-john"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:["Honorific","Person"],reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",notIf:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"#Honorific #Actor",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) #Actor",tag:"Honorific",reason:"first lady"},{match:"#Person #RomanNumeral",tag:"Person",reason:"louis-IV"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun",ifNo:"#Actor"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"},{match:"(#FirstName && !#Possessive) [#Singular] #Verb",group:0,safe:!0,tag:"LastName",reason:"jack-layton"},{match:"^[#Singular] #Person #Verb",group:0,safe:!0,tag:"Person",reason:"sherwood-anderson"},{match:"(a|an) [#Person]$",group:0,unTag:"Person",reason:"a-warhol"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:"#Date",group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",notIf:"(come|gotten)",reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(have|had) read",tag:"Modal #PastTense",reason:"read-read"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"},{match:"as #Pronoun [please]",group:0,tag:"Infinitive",reason:"as-we-please"},{match:"[(co|mis|de|inter|intra|pre|re|un|out|under|over|counter)] #Verb",group:0,tag:["Verb","Prefix"],notIf:"(#Copula|#PhrasalVerb)",reason:"co-write"},{match:"#PastTense and [%Adj|Past%]",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"[%Adj|Past%] and #PastTense",group:0,tag:"PastTense",reason:"dressed-and-left"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Copula [#Adjective] (well|badly|quickly|slowly)",group:0,tag:"Verb",reason:"done-well"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"a-bit-confused"},{match:"not be [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"do-not-be-confused"},{match:"#Copula just [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"is-just-right"},{match:"as [#Infinitive] as",group:0,tag:"Adjective",reason:"as-pale-as"},{match:"[%Adj|Past%] and #Adjective",group:0,tag:"Adjective",reason:"faled-and-oppressive"},{match:"or [#PastTense] #Noun",group:0,tag:"Adjective",notIf:"(#Copula|#Pronoun)",reason:"or-heightened-emotion"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"[(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"},{match:"[(been|had|became|came)] #PastTense",group:0,notIf:"#PhrasalVerb",tag:"Auxiliary",reason:"been-told"},{match:"[(being|having|getting)] #Verb",group:0,tag:"Auxiliary",reason:"being-born"},{match:"[be] #Gerund",group:0,tag:"Auxiliary",reason:"be-walking"},{match:"[better] #PresentTense",group:0,tag:"Modal",notIf:"(#Copula|#Gerund)",reason:"better-go"},{match:"even better",tag:"Adverb #Comparative",reason:"even-better"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",notIf:"#Copula",tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"#Verb (up|down|in|on|for)$",tag:"PhrasalVerb #Particle",notIf:"#PhrasalVerb",reason:"come-down$"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Qu,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Qu,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Qu,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",notIf:"(so|such|rather|enough)",reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|a|an|any|each|every|some|more|with|on)",group:0,notIf:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me|there)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^[#Infinitive] (#Adjective|#Adverb)? and #Infinitive",group:0,tag:"Imperative",reason:"call-and-reserve"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^come #Infinitive",tag:"Imperative",notIf:"on",reason:"come-have"},{match:"^come and? #Infinitive",tag:"Imperative . Imperative",notIf:"#PhrasalVerb",reason:"come-and-have"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[(stay|be|keep)] #Adjective",group:0,tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"},{match:"[#Infinitive] what .",group:0,tag:"Imperative",reason:"look-what"},{match:"^[#Infinitive] #Gerund",group:0,tag:"Imperative",reason:"keep-playing"},{match:"^[#Infinitive] (to|for|into|toward|here|there)",group:0,tag:"Imperative",reason:"go-to"},{match:"^[#Infinitive] (and|or) #Infinitive",group:0,tag:"Imperative",reason:"inf-and-inf"},{match:"^[%Noun|Verb%] to",group:0,tag:"Imperative",reason:"commit-to"},{match:"^[#Infinitive] #Adjective? #Singular #Singular",group:0,tag:"Imperative",reason:"maintain-eye-contact"},{match:"do not (forget|omit|neglect) to [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-forget"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"},{match:"#Gerund [#Gerund] #Plural",group:0,tag:"Adjective",reason:"hard-working-fam"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"[right] (before|after|in|into|to|toward)",group:0,tag:"#Adverb",reason:"right-into"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"(are|#Modal|see|do|for) [ya]",group:0,tag:"Pronoun",reason:"are-ya"},{match:"[long live] .",group:0,tag:"#Adjective #Infinitive",reason:"long-live"},{match:"[plenty] of",group:0,tag:"#Uncountable",reason:"plenty-of"},{match:"(always|nearly|barely|practically) [there]",group:0,tag:"Adjective",reason:"always-there"},{match:"[there] (#Adverb|#Pronoun)? #Copula",group:0,tag:"There",reason:"there-is"},{match:"#Copula [there] .",group:0,tag:"There",reason:"is-there"},{match:"#Modal #Adverb? [there]",group:0,tag:"There",reason:"should-there"},{match:"^[do] (you|we|they)",group:0,tag:"QuestionWord",reason:"do-you"},{match:"^[does] (he|she|it|#ProperNoun)",group:0,tag:"QuestionWord",reason:"does-he"},{match:"a [while]",group:0,tag:"Noun",reason:"a-while"},{match:"guess who",tag:"#Infinitive #QuestionWord",reason:"guess-who"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"a #Noun [like] (#Noun|#Determiner)",group:0,tag:"Preposition",reason:"a-noun-like"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Infinitive #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}],[{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^[(well|so|okay|now)] !#Adjective?",group:0,tag:"Expression",reason:"well-"},{match:"^come on",tag:"Expression",reason:"come-on"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"^(ok|alright|shoot|hell|anyways)",tag:"Expression",reason:"ok-"},{match:"^(say && @hasComma)",tag:"Expression",reason:"say-"},{match:"^(like && @hasComma)",tag:"Expression",reason:"like-"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}]),Yu=null;var Zu={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Yu=Yu||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep(Yu),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const Xu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Zu,model:{two:{matches:_u}},hooks:["postTagger"]};var ec=Xu,tc=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))},nc=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=tc(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},rc={lib:{lazy:nc}},ac=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e},oc=function(e,t,n){let r=e.split(/ /g).map((e=>`{${e}}`)).join(" "),a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?ac(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model)),e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this},ic={api:function(e){e.prototype.swap=oc}};v.plugin(Eu),v.plugin(Ru),v.plugin(ec),v.plugin(rc),v.plugin(ic);var sc=function(e){let t=this;return t=function(e){let t=e.parentheses();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.quotations();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.match("@hasComma");return t=t.filter((e=>{if(1===e.growLeft(".").wordCount())return!1;if(1===e.growRight(". .").wordCount())return!1;let t=e.grow(".");return t=t.ifNo("@hasComma @hasComma"),t=t.ifNo("@hasComma (and|or) ."),t=t.ifNo("(#City && @hasComma) #Country"),t=t.ifNo("(#WeekDay && @hasComma) #Date"),t=t.ifNo("(#Date+ && @hasComma) #Value"),t=t.ifNo("(#Adjective && @hasComma) #Adjective"),t.found})),e.splitAfter(t)}(t),t=t.splitAfter("(@hasEllipses|@hasSemicolon|@hasDash|@hasColon)"),t=t.splitAfter("^#Pronoun (said|says)"),t=t.splitBefore("(said|says) #ProperNoun$"),t=t.splitBefore(". . if .{4}"),t=t.splitBefore("and while"),t=t.splitBefore("now that"),t=t.splitBefore("ever since"),t=t.splitBefore("(supposing|although)"),t=t.splitBefore("even (while|if|though)"),t=t.splitBefore("(whereas|whose)"),t=t.splitBefore("as (though|if)"),t=t.splitBefore("(til|until)"),"number"==typeof e&&(t=t.get(e)),t},lc=function(e){let t=[],n=null,r=null;e.docs.forEach((e=>{e.forEach((e=>{e.chunk!==r&&(n&&(n[2]=e.index[1],t.push(n)),r=e.chunk,n=[e.index[0],e.index[1]])}))})),n&&t.push(n);let a=e.update(t);return a=a.map((e=>e.has("")?e.nouns():e)),a},uc=function(e){class Chunks extends e{constructor(e,t,n){super(e,t,n),this.viewType="Chunks"}isVerb(){return this.filter((e=>e.has("")))}isNoun(){return this.filter((e=>e.has("")))}isAdjective(){return this.filter((e=>e.has("")))}isPivot(){return this.filter((e=>e.has("")))}debug(){return this.toView().debug("chunks"),this}update(e){let t=new Chunks(this.document,e);return t._cache=this._cache,t}}e.prototype.chunks=function(e){let t=lc(this);return t=t.getNth(e),new Chunks(this.document,t.pointer)},e.prototype.clauses=sc};const cc={this:"Noun",then:"Pivot"};var hc=function(e){for(let t=0;t",group:0,chunk:"Verb"},{match:"#Noun of #Determiner? #Noun",chunk:"Noun"},{match:"#Value+ #Adverb? #Adjective",chunk:"Noun"},{match:"the [#Adjective] #Noun",chunk:"Noun"},{match:"#Singular in #Determiner? #Singular",chunk:"Noun"},{match:"#Plural [in] #Determiner? #Noun",group:0,chunk:"Pivot"},{match:"#Noun and #Determiner? #Noun",notIf:"(#Possessive|#Pronoun)",chunk:"Noun"}];let pc=null;var mc=function(e,t,n){const{methods:r}=n;pc=pc||r.one.buildNet(gc,n),e.sweep(pc)};const fc=function(e,t){if(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_CHUNKS){let n=(e.normal+"'").padEnd(8);console.log(` | '${n} → [34m${t.padEnd(12)}[0m [2m -fallback- [0m`)}e.chunk=t};var vc=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){const t=e.terms.find((e=>e.tags.has("Verb")));t||e.terms.forEach((e=>e.chunk=null))}}))},yc={chunks:function(e){const{document:t,world:n}=e;hc(t),dc(t),mc(e,t,n),vc(t),bc(t)}},wc={compute:yc,api:uc,hooks:["chunks"]};const kc=/\./g;var Pc=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(kc,""),e.normal=e.normal.replace(kc,"")}))})),this}addPeriods(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(kc,""),e.normal=e.normal.replace(kc,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."}))})),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=t.getNth(e),new Acronyms(t.document,t.pointer)}};const Ac=function(e){const{fromComparative:t,fromSuperlative:n}=e.methods.two.transform.adjective;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var Ic=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{toAdverb:t,toNoun:n,toSuperlative:r,toComparative:a}=this.methods.two.transform.adjective;return e.normal=!0,this.map((o=>{let i=o.toView().json(e)[0]||{},s=Ac(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i}),[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(e){const{toComparative:t,toSuperlative:n,toNoun:r,toAdverb:a}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let o=Ac(e);return{Adjective:o,Comparative:t(o,this.model),Superlative:n(o,this.model),Noun:r(o,this.model),Adverb:a(o,this.model)}}),[])}toComparative(e){const{toComparative:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Ac(e),r=t(n,this.model);return e.replaceWith(r)}))}toSuperlative(e){const{toSuperlative:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Ac(e),r=t(n,this.model);return e.replaceWith(r)}))}toAdverb(e){const{toAdverb:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Ac(e),r=t(n,this.model);return e.replaceWith(r)}))}toNoun(e){const{toNoun:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Ac(e),r=t(n,this.model);return e.replaceWith(r)}))}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=t.getNth(e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=t.getNth(e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=t.getNth(e),new Adjectives(t.document,t.pointer)}},Nc=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.adjective.fromAdverb;return e.normal=!0,this.map((n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r}),[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=t.getNth(e),new Adverbs(t.document,t.pointer)}};const jc=/\(/,xc=/\)/,Ec=function(e,t){for(;t{e[0].pre=e[0].pre.replace(jc,"");let t=e[e.length-1];t.post=t.post.replace(xc,"")})),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n{e.forEach((e=>{e.text=e.text.replace(Cc,""),e.normal=e.normal.replace(Cc,"")}))})),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=t.getNth(e),new Possessives(t.document,t.pointer)}};const Oc={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Vc=RegExp("("+Object.keys(Oc).join("|")+")"),Fc=RegExp("("+Object.values(Oc).join("|")+")"),Gc=function(e,t){const n=e[t].pre.match(Vc)[0]||"";if(!n||!Oc[n])return null;const r=Oc[n];for(;t{e[0].pre=e[0].pre.replace(Vc,"");let t=e[e.length-1];t.post=t.post.replace(Fc,"")}))}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}})),e.prototype.phoneNumbers=zc,Lc.forEach((t=>{e.prototype[t[0]]=e.prototype[t[1]]}))},Mc={api:function(e){Pc(e),Ic(e),Nc(e),Tc(e),Dc(e),Bc(e),Sc(e)}};const Hc=function(e,t){e.docs.forEach((e=>{e.forEach(t)}))};var Jc={case:e=>{Hc(e,(e=>{e.text=e.text.toLowerCase()}))},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;Hc(e,(e=>e.text=n(e.text,t)))},whitespace:e=>{Hc(e,(e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")}))},punctuation:e=>{Hc(e,(e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")}));let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const Wc=e=>e.split("|").reduce(((e,t)=>(e[t]=!0,e)),{}),Kc="unicode|punctuation|whitespace|acronyms",qc="|case|contractions|parentheses|quotations|emoji|honorifics",Uc={light:Wc(Kc),medium:Wc(Kc+qc),heavy:Wc(Kc+qc+"|possessives|adverbs|nouns|verbs")};var Rc={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=Uc[e]),Object.keys(e).forEach((t=>{Jc.hasOwnProperty(t)&&Jc[t](this,e[t])})),this}}},Qc=function(e){let t=e.clauses().match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they|i)"),t=t.splitOn("(#Noun|#Adjective) [(he|him|she|it)]",0),t=t.splitOn("[(he|him|she|it)] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.splitBefore("(our|my|their|your)"),t=t.splitOn("#Noun [#Determiner]",0),t=t.if("#Noun"),t};const _c=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var Yc=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t<_c.length;t+=1)if(e.has(_c[t]))return!0;return!1},Zc=function(e,t){if(e.has("#Plural"))return!0;if(e.has("#Noun and #Noun"))return!0;if(e.has("(we|they)"))return!0;if(!0===t.has("(#Pronoun|#Place|#Value|#Person|#Uncountable|#Month|#WeekDay|#Holiday|#Possessive)"))return!1;if(e.has("#Singular"))return!1;let n=t.text("normal");return n.length>3&&n.endsWith("s")&&!n.endsWith("ss")},Xc=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t=t.first(),t.found?t:e}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Zc(e,t),isSubordinate:Yc(e),root:t}};const eh=e=>e.text(),th=e=>e.json({terms:!1,normal:!0}).map((e=>e.normal)),nh=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var rh=function(e){let t=Xc(e);return{root:eh(t.root),number:nh(t.number),determiner:eh(t.determiner),adjectives:th(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const ah={tags:!0};var oh=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun|#Acronym)+$")}(t))return e;const{methods:n,model:r}=e.world,{toPlural:a}=n.two.transform.noun;let o=a(t.root.text({keepPunct:!1}),r);e.match(t.root).replaceWith(o,ah).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.remove(t.determiner);let i=t.root.after("not? #Adverb+? [#Copula]",0);return i.found&&(i.has("is")?e.replace(i,"are"):i.has("was")&&e.replace(i,"were")),e};const ih={tags:!0};var sh=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{toSingular:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,ih).tag("Singular","toPlural"),e},lh=function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return this.getNth(e).map(Xc)}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0]||{};return t&&!0!==t.noun&&(n.noun=rh(e)),n}),[])}isPlural(e){let t=this.filter((e=>Xc(e).isPlural));return t.getNth(e)}isSingular(e){let t=this.filter((e=>!Xc(e).isPlural));return t.getNth(e)}adjectives(e){let t=this.update([]);return this.forEach((e=>{let n=Xc(e).adjectives;n.found&&(t=t.concat(n))})),t.getNth(e)}toPlural(e){return this.getNth(e).map((e=>oh(e,Xc(e))))}toSingular(e){return this.getNth(e).map((e=>{let t=Xc(e);return sh(e,t)}))}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Qc(this);return t=t.getNth(e),new Nouns(this.document,t.pointer)}},uh={api:lh},ch=function(e,t){let n=e.match("#Fraction+");return n=n.filter((e=>!e.lookBehind("#Value and$").found)),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n},hh=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(dh.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(dh.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(dh.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},ph=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const fh=/^([0-9,. ]+)\/([0-9,. ]+)$/,vh={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},bh=e=>Object.keys(e).reduce(((t,n)=>t+=e[n]),0);var yh=function(e){if(!0===vh.hasOwnProperty(e))return vh[e];if("a"===e||"an"===e)return 1;const t=hh(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=kh(n),r=kh(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:kh(n);let a=r.text("reduced");return wh.test(a)&&(a=a.replace(wh,""),r=r.replaceWith(a)),r=Ph.hasOwnProperty(a)?Ph[a]:kh(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:kh(t)}:null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t},Ih=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const Nh=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],jh=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],xh=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],Eh=function(e){let t=[];if(e>100)return t;for(let n=0;n=Nh[n][1]&&(e-=Nh[n][1],t.push(Nh[n][0]));return jh[e]&&t.push(jh[e]),t};var Th=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Ih(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return xh.forEach((r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}})),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(Eh(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=Ih(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee)),0===n.length&&(n[0]=""),n.join(" ")},Ch=function(e){return e.numerator&&e.denominator?`${Th({num:e.numerator})} out of ${Th({num:e.denominator})}`:""};const Dh={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var Oh=e=>{let t=Th(e).split(" "),n=t[t.length-1];return Dh.hasOwnProperty(n)?t[t.length-1]=Dh[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},Vh=function(e){if(!e.numerator||!e.denominator)return"";let t=Th({num:e.numerator}),n=Oh({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""},Fh=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return this.getNth(e).map(Ah)}get(e){return this.getNth(e).map(Ah)}json(e){return this.getNth(e).map((t=>{let n=t.toView().json(e)[0],r=Ah(t);return n.fraction=r,n}),[])}toDecimal(e){return this.getNth(e).forEach((e=>{let{decimal:t}=Ah(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")})),this}toFraction(e){return this.getNth(e).forEach((e=>{let t=Ah(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}})),this}toOrdinal(e){return this.getNth(e).forEach((e=>{let t=Ah(e),n=Vh(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)})),this}toCardinal(e){return this.getNth(e).forEach((e=>{let t=Ah(e),n=Ch(t);e.replaceWith(n)})),this}toPercentage(e){return this.getNth(e).forEach((e=>{let{decimal:t}=Ah(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(`${n}%`)})),this}}e.prototype.fractions=function(e){let t=ch(this);return t=t.getNth(e),new Fractions(this.document,t.pointer)}};const Gh="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var Bh=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+Gh+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+Gh+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+Gh+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+Gh+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${Gh})`),r=e.has("("+Gh+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach((e=>{t=t.splitOn(e)}))}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+Gh+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+Gh+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},zh=function(e){if("string"==typeof e)return{num:yh(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=Ah(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=yh(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}},$h=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=Ih(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const Lh={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},Sh={"%":"percent","°":"degrees"};var Mh=function(e){let t={suffix:"",prefix:e.prefix};return Lh.hasOwnProperty(e.prefix)&&(t.suffix+=" "+Lh[e.prefix],t.prefix=""),Sh.hasOwnProperty(e.suffix)&&(t.suffix+=" "+Sh[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},Hh=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=Mh(e);return t+Oh(e)+n}if("Ordinal"===t)return e.prefix+$h(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=Mh(e);return t+Th(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix},Jh=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return this.getNth(e).map(zh)}get(e){return this.getNth(e).map(zh).map((e=>e.num))}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0],r=zh(e);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n}),[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach((e=>{let t=zh(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=Hh(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")})),this}toLocaleString(){return this.forEach((e=>{let t=zh(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=Hh(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})})),this}toText(){let e=this.map((e=>{if(e.has("#TextValue"))return e;let t=zh(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=Hh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e}));return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map((e=>{if(!e.has("#Ordinal"))return e;let t=zh(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=Hh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e}));return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map((e=>{if(e.has("#Ordinal"))return e;let t=zh(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=Hh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e}));return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter((t=>zh(t).num===e))}greaterThan(e){return this.filter((t=>zh(t).num>e))}lessThan(e){return this.filter((t=>zh(t).num{let r=zh(n).num;return r>e&&r{let n=zh(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Hh(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=zh(e).num);let t=this.map((t=>{let n=zh(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Hh(n,r);return t.replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=Bh(this);return t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=Bh(this);return t=t.filter((e=>e.has("#Percent")||e.after("^percent"))),t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=Bh(this);return t=t.filter((e=>e.has("#Money")||e.after("^#Currency"))),t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},Wh={api:function(e){Fh(e),Jh(e)}};const Kh={people:!0,emails:!0,phoneNumbers:!0,places:!0},qh=function(e={}){return!1!==(e=Object.assign({},Kh,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this},Uh={api:function(e){e.prototype.redact=qh}};var Rh=Uh,Qh=function(e){const t=/\?/,{document:n}=e;return e.filter((e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))}))},_h=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))};const Yh=function(e){let t=null;return e.has("#PastTense")?t="PastTense":e.has("#FutureTense")?t="FutureTense":e.has("#PresentTense")&&(t="PresentTense"),{tense:t}};var Zh=function(e){let t=e.clauses(),n=_h(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach(((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e})),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o,grammar:Yh(a)}},Xh=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e},ed=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e},td=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let e=t.filter((e=>!(e.lookBehind("to$").found||!e.has("#Copula #Gerund")&&(e.has("#Gerund")||!e.has("#Copula")&&e.has("#PresentTense")&&!e.has("#Infinitive")&&e.lookBefore("(he|she|it|that|which)$").found))));e.found&&e.forEach((e=>{if(e.has("#Copula"))return e.match("was").replaceWith("is"),void e.match("is").replaceWith("will be");e.toInfinitive()}))}return e},nd=function(e){return e.verbs().toInfinitive(),e},rd=function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o,grammar:i}=Zh(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal"),grammar:i},n}),[])}toPastTense(e){return this.getNth(e).map((e=>(Zh(e),Xh(e))))}toPresentTense(e){return this.getNth(e).map((e=>(Zh(e),ed(e))))}toFutureTense(e){return this.getNth(e).map((e=>(Zh(e),e=td(e))))}toInfinitive(e){return this.getNth(e).map((e=>(Zh(e),nd(e))))}toNegative(e){return this.getNth(e).map((e=>(Zh(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e))))}toPositive(e){return this.getNth(e).map((e=>(Zh(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e))))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter((e=>e.lastTerm().has("@hasExclamation")));return t.getNth(e)}isStatement(e){let t=this.filter((e=>!e.isExclamation().found&&!e.isQuestion().found));return t.getNth(e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map((e=>e.fullSentence()));return t=t.getNth(e),new Sentences(this.document,t.pointer)},questions:function(e){return Qh(this).getNth(e)}};Object.assign(e.prototype,t)},ad={api:rd},od=function(e){return e.match("#Honorific+? #Person+")},id=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const sd="male",ld="female",ud={mr:sd,mrs:ld,miss:ld,madam:ld,king:sd,queen:ld,duke:sd,duchess:ld,baron:sd,baroness:ld,count:sd,countess:ld,prince:sd,princess:ld,sire:sd,dame:ld,lady:ld,ayatullah:sd,congressman:sd,congresswoman:ld,"first lady":ld,mx:null};var cd=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return ld;if(n.has("#MaleName"))return sd;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),ud.hasOwnProperty(e))return ud[e];if(/^her /.test(e))return ld;if(/^his /.test(e))return sd}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return sd;if(n&&!t)return ld}return null},hd=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return this.getNth(e).map(id)}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0],r=id(e);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:cd(r,e)},n}),[])}presumedMale(){return this.filter((e=>e.has("(#MaleName|mr|mister|sr|jr|king|pope|prince|sir)")))}presumedFemale(){return this.filter((e=>e.has("(#FemaleName|mrs|miss|queen|princess|madam)")))}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=od(this);return t=t.getNth(e),new People(this.document,t.pointer)}},dd=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter((e=>!!e.has("(asia|africa|europe|america)$")||!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found)),t=t.splitAfter(n),t},gd=function(e){e.prototype.places=function(t){let n=dd(this);return n=n.getNth(t),new e(this.document,n.pointer)}},pd=function(e){e.prototype.organizations=function(e){return this.match("#Organization+").getNth(e)}};const md=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=n.getNth(e),n};var fd=function(e){e.prototype.topics=md},vd={api:function(e){hd(e),gd(e),pd(e),fd(e)}},bd=function(e){let t=e.match("");return t=t.not("(#Conjunction && !to)"),t=t.not("#Preposition"),t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0),t=t.not("#Reflexive$"),t=t.splitAfter("[#PastTense] #PastTense",0),t=t.splitAfter("[#PastTense] #Auxiliary+ #PastTense",0),t=t.splitAfter("#Copula [#Gerund] #PastTense",0),t=t.if("#Verb"),t.has("(#Verb && !#Auxiliary) #Adverb+? #Copula")&&(t=t.splitBefore("#Copula")),t},yd=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t},wd=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const kd=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},Pd=function(e){return e.match("#Negative")},Ad=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Id=function(e){let t=e.clone();t.contractions().expand();const n=yd(t);return{root:n,prefix:t.match("#Prefix"),adverbs:wd(t,n),auxiliary:kd(t,n),negative:Pd(t),phrasal:Ad(n)}};const Nd={tense:"PresentTense"},jd={conditional:!0},xd={tense:"FutureTense"},Ed={progressive:!0},Td={tense:"PastTense"},Cd={complete:!0,progressive:!1},Dd={passive:!0},Od=function(e){let t={};return e.forEach((e=>{Object.assign(t,e)})),t},Vd={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Nd]],["^wanted to #Infinitive$",[Td]],["^will want to #Infinitive$",[xd]]],"gerund-phrase":[["^#PastTense #Gerund$",[Td]],["^#PresentTense #Gerund$",[Nd]],["^#Infinitive #Gerund$",[Nd]],["^will #Infinitive #Gerund$",[xd]],["^have #PastTense #Gerund$",[Td]],["^will have #PastTense #Gerund$",[Td]]],"simple-present":[["^#PresentTense$",[Nd]],["^#Infinitive$",[Nd]]],"simple-past":[["^#PastTense$",[Td]]],"simple-future":[["^will #Adverb? #Infinitive",[xd]]],"present-progressive":[["^(is|are|am) #Gerund$",[Nd,Ed]]],"past-progressive":[["^(was|were) #Gerund$",[Td,Ed]]],"future-progressive":[["^will be #Gerund$",[xd,Ed]]],"present-perfect":[["^(has|have) #PastTense$",[Td,Cd]]],"past-perfect":[["^had #PastTense$",[Td,Cd]],["^had #PastTense to #Infinitive",[Td,Cd]]],"future-perfect":[["^will have #PastTense$",[xd,Cd]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Td,Ed]]],"past-perfect-progressive":[["^had been #Gerund$",[Td,Ed]]],"future-perfect-progressive":[["^will have been #Gerund$",[xd,Ed]]],"passive-past":[["(got|were|was) #Passive",[Td,Dd]],["^(was|were) being #Passive",[Td,Dd]],["^(had|have) been #Passive",[Td,Dd]]],"passive-present":[["^(is|are|am) #Passive",[Nd,Dd]],["^(is|are|am) being #Passive",[Nd,Dd]],["^has been #Passive",[Nd,Dd]]],"passive-future":[["will have been #Passive",[xd,Dd,jd]],["will be being? #Passive",[xd,Dd,jd]]],"present-conditional":[["would be #PastTense",[Nd,jd]]],"past-conditional":[["would have been #PastTense",[Td,jd]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[xd]]],"auxiliary-past":[["^did #Infinitive$",[Td,{plural:!1}]],["^used to #Infinitive$",[Td,Cd]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Nd,Cd,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Td]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let Fd=[];Object.keys(Vd).map((e=>{Vd[e].forEach((t=>{Fd.push({name:e,match:t[0],data:Od(t[1])})}))}));var Gd=Fd,Bd=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb")))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),zd(r)&&(n.remove(r),r=n.last()),zd(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:$d(t,e)}};const Sd=e=>e,Md=(e,t)=>{let n=Ld(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Hd=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Ld(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Jd=function(e,t){let n=Ld(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Wd=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},Kd=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Wd(e)),r&&e.replace(t.root,r),e},qd=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),Ud=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map((e=>e.normal)):[]},Rd=function(e){return e&&e.isView?e.text("normal"):""},Qd=function(e){const{toInfinitive:t}=e.methods.two.transform.verb;return t(e.text("normal"),e.model,Wd(e))};var _d=function(e){let t=Id(e);e=e.clone().toView();const n=Bd(e,t);return{root:t.root.text(),preAdverbs:Ud(t.adverbs.pre),postAdverbs:Ud(t.adverbs.post),auxiliary:Rd(t.auxiliary),negative:t.negative.found,prefix:Rd(t.prefix),infinitive:Qd(t.root),grammar:n}};const Yd={tags:!0};var Zd=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Wd(r)),i&&e.replace(r,i,Yd).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Jd(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Xd={tags:!0},eg={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Wd(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Ld(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Xd),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=eg.simple(e,t),e=eg.noAux(e,t))},hasHad:e=>(e.replace("has","had",Xd),e),hasParticiple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Wd(a)),n(o,e.model).Participle}},tg={infinitive:eg.simple,"simple-present":eg.simple,"simple-past":Sd,"simple-future":eg.both,"present-progressive":e=>(e.replace("are","were",Xd),e.replace("(is|are|am)","was",Xd),e),"past-progressive":Sd,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":eg.hasHad,"past-perfect":Sd,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=qd(e)),e.remove("have"),e),"present-perfect-progressive":eg.hasHad,"past-perfect-progressive":Sd,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Xd),e),"passive-past":e=>(e.replace("have","had",Xd),e),"passive-present":e=>(e.replace("(is|are)","was",Xd),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",Xd),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Sd,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Xd),e),"auxiliary-past":Sd,"auxiliary-present":e=>(e.replace("(do|does)","did",Xd),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Xd):(eg.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Sd,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Xd),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),eg.simple(e,t),qd(e),e)};var ng=function(e,t,n){return tg.hasOwnProperty(n)?((e=tg[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const rg={tags:!0},ag=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Wd(a)),!1===Md(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Hd(e)),o&&(e=e.replace(a,o,rg)).not("#Particle").tag("PresentTense"),e},og=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Wd(a)),!1===Md(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,rg)).not("#Particle").tag("Gerund"),e},ig={infinitive:ag,"simple-present":(e,t)=>{const{conjugate:n}=e.methods.two.transform.verb;let{root:r}=t;if(!r.has("#Infinitive"))return ag(e,t);{let t=Ld(e).subject;if(Md(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,rg)}return e},"simple-past":ag,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Hd(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else ag(e,t),e=e.remove("will");return e},"present-progressive":Sd,"past-progressive":(e,t)=>{let n=Hd(e);return e.replace("(were|was)",n,rg)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(ag(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Ld(e).subject;return Md(e)||n.has("i")?((e=Kd(e,t)).remove("had"),e):(e.replace("had","has",rg),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Sd,"past-perfect-progressive":e=>e.replace("had","has",rg),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Hd(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,rg),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Sd,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Sd,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(og(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=Jd(e);return e.replace(t.auxiliary,n),e}return og(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Sd,"modal-infinitive":Sd,"modal-past":(e,t)=>(((e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Wd(r)),a&&(e=e.replace(t.root,a,rg))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),ag(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Md(e)&&(n="want"),e.replace("(want|wanted|wants)",n,rg),e.remove("will"),e}};var sg=function(e,t,n){return ig.hasOwnProperty(n)?((e=ig[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const lg={tags:!0},ug=(e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Wd(r)),o&&(e=e.replace(r,o,lg)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},cg=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Wd(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,lg),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},hg={infinitive:ug,"simple-present":ug,"simple-past":ug,"simple-future":Sd,"present-progressive":cg,"past-progressive":cg,"future-progressive":Sd,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Sd,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Sd,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":Sd,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Sd,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":Sd,"modal-past":Sd,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),ug(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var dg=function(e,t,n){return e.has("will")||e.has("going to")?e:hg.hasOwnProperty(n)?((e=hg[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const gg={tags:!0};var pg=function(e,t){const{toInfinitive:n,conjugate:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Wd(a));let s=r(i,e.model).Gerund;return s&&(s=`${Hd(e)} ${s}`,e.replace(a,s,gg)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const mg={tags:!0},fg=function(e,t){let n=Jd(e);return e.prepend(n+" not"),e},vg=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},bg=e=>e.has("(is|was|am|are|will|were|be)"),yg={"simple-present":(e,t)=>!0===bg(e)?vg(e):(e=Kd(e,t),e=fg(e)),"simple-past":(e,t)=>!0===bg(e)?vg(e):((e=Kd(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===bg(e)?vg(e):fg(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",mg),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=fg(e)).replace("wants","want",mg)};var wg=function(e,t,n){if(e.has("#Negative"))return e;if(yg.hasOwnProperty(n))return e=yg[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===bg(e)?vg(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)},kg=function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return this.getNth(e).map(Id)}json(e,t){let n=this.getNth(t).map((t=>{let n=t.toView().json(e)[0]||{};return n.verb=_d(t),n}),[]);return n}subjects(e){return this.getNth(e).map((e=>(Id(e),Ld(e).subject)))}adverbs(e){return this.getNth(e).map((e=>e.match("#Adverb")))}isSingular(e){return this.getNth(e).filter((e=>!0!==Ld(e).plural))}isPlural(e){return this.getNth(e).filter((e=>!0===Ld(e).plural))}isImperative(e){return this.getNth(e).filter((e=>e.has("#Imperative")))}toInfinitive(e){return this.getNth(e).map((e=>{let t=Id(e),n=Bd(e,t);return Zd(e,t,n.form)}))}toPresentTense(e){return this.getNth(e).map((e=>{let t=Id(e),n=Bd(e,t);return sg(e,t,n.form)}))}toPastTense(e){return this.getNth(e).map((e=>{let t=Id(e),n=Bd(e,t);return ng(e,t,n.form)}))}toFutureTense(e){return this.getNth(e).map((e=>{let t=Id(e),n=Bd(e,t);return dg(e,t,n.form)}))}toGerund(e){return this.getNth(e).map((e=>{let t=Id(e),n=Bd(e,t);return pg(e,t,n.form)}))}conjugate(e){return this.getNth(e).map((e=>{let t=Id(e),n=Bd(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:Zd(e.clone(),t,n.form).text("normal"),PastTense:ng(e.clone(),t,n.form).text("normal"),PresentTense:sg(e.clone(),t,n.form).text("normal"),FutureTense:dg(e.clone(),t,n.form).text("normal")}}),[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return this.getNth(e).map((e=>{let t=Id(e),n=Bd(e,t);return wg(e,t,n.form)}))}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=bd(this);return t=t.getNth(e),new Verbs(this.document,t.pointer)}},Pg={api:kg};const Ag=function(e,t){let n=t.match(e);if(n.found){let e=n.pronouns().refersTo();if(e.found)return e}return t.none()},Ig=function(e){if(!e.found)return e;let[t]=e.fullPointer[0];return t&&t>0?e.update([[t-1]]):e.none()};var Ng=function(e,t){let n=e.people();return n=function(e,t){return"m"===t?e.filter((e=>!e.presumedFemale().found)):"f"===t?e.filter((e=>!e.presumedMale().found)):e}(n,t),n.found?n.last():(n=e.nouns("#Actor"),n.found?n.last():"f"===t?Ag("(she|her|hers)",e):"m"===t?Ag("(he|him|his)",e):e.none())},jg=function(e){let t=e.nouns(),n=t.isPlural().notIf("#Pronoun");if(n.found)return n.last();let r=Ag("(they|their|theirs)",e);return r.found?r:(n=t.match("(somebody|nobody|everybody|anybody|someone|noone|everyone|anyone)"),n.found?n.last():e.none())};const xg=function(e,t){let n=e.before(),r=t(n);return r.found?r:(n=Ig(e),r=t(n),r.found?r:(n=Ig(n),r=t(n),r.found?r:e.none()))};var Eg=function(e){e.pronouns().if("(he|him|his|she|her|hers|they|their|theirs|it|its)").forEach((e=>{let t=null;e.has("(he|him|his)")?t=xg(e,(e=>Ng(e,"m"))):e.has("(she|her|hers)")?t=xg(e,(e=>Ng(e,"f"))):e.has("(they|their|theirs)")&&(t=xg(e,jg)),t&&t.found&&function(e,t){t&&t.found&&(e.docs[0][0].reference=t.ptrs[0])}(e,t)}))},Tg=function(e){class Pronouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Pronouns"}hasReference(){return this.compute("coreference"),this.filter((e=>e.docs[0][0].reference))}refersTo(){return this.compute("coreference"),this.map((e=>{if(!e.found)return e.none();let t=e.docs[0][0];return t.reference?e.update([t.reference]):e.none()}))}update(e){let t=new Pronouns(this.document,e);return t._cache=this._cache,t}}e.prototype.pronouns=function(e){let t=this.match("#Pronoun");return t=t.getNth(e),new Pronouns(t.document,t.pointer)}},Cg={compute:{coreference:Eg},api:Tg};return v.plugin(wc),v.plugin(Cg),v.plugin(Mc),v.plugin(Rc),v.plugin(uh),v.plugin(Wh),v.plugin(Rh),v.plugin(ad),v.plugin(vd),v.plugin(Pg),v},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t();
+var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t,r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)},isFull:function(){let e=this.pointer;if(!e)return!0;let t=this.document;for(let n=0;no)return!1}return!0},getNth:function(e){return"number"==typeof e?this.eq(e):"string"==typeof e?this.if(e):this}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.ex[e]=t[e].pastTense),n.fromPast&&(n.fromPast.ex[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.ex[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.ex[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.ex[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.ex[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.ex[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.ex[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.ex[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.ex[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var p=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e)return new t(r.one.tokenize.fromString(e,n));if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let m=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=p(e,l,m);return e&&n.compute(m.hooks),n};Object.defineProperty(f,"_world",{value:m,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=p(e,l,m);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.9.0";var v=f,b=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},N=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},j=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},I=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?N(n):(N(n),N([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!P(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||P(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,(e=>e.toLowerCase())))}(e,o,n),A(e,o,n)};let x=0;const E=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var C=function(e){let[t,n]=e.index||[0,0];x+=1,x=x>46655?0:x,t=t>46655?0:t,n=n>1294?0:n;let r=E(x.toString(36));r+=E(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const T=function(e){e.has("@hasContraction")&&"function"==typeof e.contractions&&e.grow("@hasContraction").contractions().expand()},D=e=>"[object Array]"===Object.prototype.toString.call(e),O=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:D(e)?D(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=C(e),e)))}(d),n?(T(t.update([u]).firstTerm()),I(h,u,d,r)):(T(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);let a=r.docs[0],o=t.possessives&&a[a.length-1].tags.has("Possessive");e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(G,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let i=this.update(n);n=n.map((e=>e.slice(0,3)));let s=(i.docs[0]||[]).map((e=>Array.from(e.tags)));if("string"==typeof e&&(e=this.fromText(e).compute("id")),r.insertAfter(e),i.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(i),o){let e=r.docs[0],t=e[e.length-1];t.tags.has("Possessive")||(t.text+="'s",t.normal+="'s",t.tags.add("Possessive"))}let l=r.toView(n).compute(["index","lexicon"]);return l.world.compute.preTagger&&l.compute("preTagger"),t.tags&&l.terms().forEach(((e,t)=>{e.tagSafe(s[t])})),t.case&&l.docs[0]&&l.docs[0][0]&&0===l.docs[0][0].index[1]&&(l.docs[0][0].text=l.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),l},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?(this.soften(),r.replaceWith(t,n)):this}};var z=B,H=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const L={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e));let a=!n.ptrs;r.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction").contractions().expand();let o=n.fullPointer,i=r.fullPointer.reverse(),s=H(this.document,i);return o=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(o,t(i)),n.ptrs=o,n.document=s,n.compute("index"),a&&(n.ptrs=void 0),e?n.toView(o):(this.ptrs=[],n.none())}};L.delete=L.remove;var $=L;const S={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};S.deHyphenate=S.dehyphenate,S.toQuotation=S.toQuotations;var M=S,J={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),q=new Set(["freq","frequency","topk","repeats"]),K=new Set(["alpha","alphabetical"]);var R={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return W.has(e)&&(e="sequential"),K.has(e)&&(e="alpha"),q.has(e)?(a=J.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof J[e]?(a=a.sort(J[e]),this.update(a.map((e=>e.pointer)))):this}};const U=function(e,t){if(e.length>0){let t=e[e.length-1],n=t[t.length-1];!1===/ /.test(n.post)&&(n.post+=" ")}return e=e.concat(t)};var Q={concat:function(e){if("string"==typeof e){let t=this.fromText(e);if(this.found&&this.ptrs){let e=this.fullPointer,n=e[e.length-1][0];this.document.splice(n,0,...t.document)}else this.document=this.document.concat(t.document);return this.all().compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=U(e.document,t.docs),e.all()}(this,e);if(t=e,"[object Array]"===Object.prototype.toString.call(t)){let t=U(this.document,e);return this.document=t,this.all()}var t;return this}},_={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const Z=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},V,z,$,M,R,Q,_);var X=function(e){Object.assign(e.prototype,Z)};const Y={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const ae=/'/,oe=new Set(["what","how","when","where","why"]),ie=new Set(["be","go","start","think","need"]),se=new Set(["been","gone"]);var le=function(e,t){let n=e[t].normal.split(ae)[0];if(oe.has(n))return[n,"did"];if(e[t+1]){if(se.has(e[t+1].normal))return[n,"had"];if(ie.has(e[t+1].normal))return[n,"would"]}return null},ue=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ce=/'/;var he=(e,t)=>["je",e[t].normal.split(ce)[1]],de=(e,t)=>{let n=e[t].normal.split(ce)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},ge=(e,t)=>{let n=e[t].normal.split(ce)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const pe=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,me=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,fe=/^[0-9]{3}-[0-9]{4}$/;var ve=function(e,t){let n=e[t],r=n.text.match(pe);return null!==r?!0===n.tags.has("PhoneNumber")||fe.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(me),null!==r?[r[1],"to",r[4]]:null)};const be=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/;var ye=function(e,t,n){const r=n.model.one.numberSuffixes||{};let a=e[t].text.match(be);if(null!==a){let e=a[2].toLowerCase().trim();return r.hasOwnProperty(e)?null:[a[1],e]}return null};const we=/'/,ke=/^[0-9][^-–—]*[-–—].*?[0-9]/,Pe=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ae={t:(e,t)=>ue(e,t),d:(e,t)=>le(e,t)},Ne={j:(e,t)=>he(e,t),l:(e,t)=>de(e,t),d:(e,t)=>ge(e,t)},je=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=je(o,r[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](r,s,t)),!c&&Ne.hasOwnProperty(l)&&(c=Ne[l](r,s)),"there"===l&&"s"===u&&(c=xe(r,s)),c?(c=Ie(c,e),re(n,[i,s],c),Pe(n[i],e,s,c.length)):ke.test(r[s].normal)?(c=ve(r,s),c&&(c=Ie(c,e),re(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),Pe(n[i],e,s,c.length))):(c=ye(r,s,t),c&&(c=Ie(c,e),re(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))},Ce={model:ne,compute:{contractions:Ee},hooks:["contractions"]},Te=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===De.test(l)){let e=l.replace(De,"");if(i.hasOwnProperty(e)&&e.length>3&&Oe.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Ve={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}},Be={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},ze={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Ge}},compute:Ve,lib:Be,hooks:["lexicon"]},He=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;let a=n.one.tokenize.splitTerms(e,r).map((e=>n.one.tokenize.splitWhitespace(e,r)));return a.map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Le=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Me=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Je=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Me(e.goNext,void 0),e.failTo=Me(e.failTo,0),e.endAs=Me(e.endAs,null),e};const We={buildTrie:function(e){const t=He(e,this.world());return Je(t)}};We.compile=We.buildTrie;var qe={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:He(e,this.world));var r;let a=Se(this,n,t);return a=a.settle(),a}},lib:We};const Ke=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},Re=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Ke(n,t),Object.keys(r).forEach((e=>{r[e]=Ke(r[e],t)})),{ptrs:n,byGroup:r}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Qe=e=>e&&Ue(e)&&!0===e.isView,_e=e=>e&&Ue(e)&&!0===e.isNet,Ze=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Xe={matchOne:function(e,t,n){const r=this.methods.one;if(Qe(e))return this.intersection(e).eq(0);if(_e(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Ze(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Re(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Qe(e))return this.intersection(e);if(_e(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Ze(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Re(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Qe(e))return e.fullPointer.length>0;if(_e(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Ze(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Qe(e))return this.filter((t=>t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Ze(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Qe(e))return this.filter((t=>!t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Ze(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}},Ye={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const et=function(e,t){return[e[0],e[1],t[2]]},tt=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},nt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},rt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=tt(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>nt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=tt(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(et(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>nt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=tt(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(et(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>nt(e,this))),this.update(o)}};rt.split=rt.splitAfter;var at=rt;const ot=Object.assign({},Xe,Ye,at);ot.lookBehind=ot.before,ot.lookBefore=ot.before,ot.lookAhead=ot.after,ot.lookAfter=ot.after,ot.notIf=ot.ifNo;var it=function(e){Object.assign(e.prototype,ot)};const st=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,lt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,ut=/ /g,ct=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ht=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var dt=function(e){let t=e.split(st),n=[];t.forEach((e=>{ct(e)?n.push(e):n=n.concat(e.split(lt))})),n=ht(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ct(e)?r.push(e):r=r.concat(e.split(ut))})),r=ht(r),r};const gt=/\{([0-9]+)?(, *[0-9]*)?\}/,pt=/&&/,mt=new RegExp(/^<\s*(\S+)\s*>/),ft=e=>e.charAt(0).toUpperCase()+e.substring(1),vt=e=>e.charAt(e.length-1),bt=e=>e.charAt(0),yt=e=>e.substring(1),wt=e=>e.substring(0,e.length-1),kt=function(e){return e=yt(e),e=wt(e)},Pt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===vt(e)&&(n.end=!0,e=wt(e)),"^"===bt(e)&&(n.start=!0,e=yt(e)),("["===bt(e)||"]"===vt(e))&&(n.group=null,"["===bt(e)&&(n.groupStart=!0),"]"===vt(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===bt(e))){const t=mt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===vt(e)&&(n.greedy=!0,e=wt(e)),"*"!==e&&"*"===vt(e)&&"\\*"!==e&&(n.greedy=!0,e=wt(e)),"?"===vt(e)&&(n.optional=!0,e=wt(e)),"!"===bt(e)&&(n.negative=!0,e=yt(e)),"~"===bt(e)&&"~"===vt(e)&&e.length>2&&(e=kt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("/"===bt(e)&&"/"===vt(e))return e=kt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if(!0===gt.test(e)&&(e=e.replace(gt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"("===bt(e)&&")"===vt(e)){pt.test(e)?(n.choices=e.split(pt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=yt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=wt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>Pt(e,t))))),e=""}if("{"===bt(e)&&"}"===vt(e)){if(e=kt(e),n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.sense=e[2])}return n}if("<"===bt(e)&&">"===vt(e))return e=kt(e),n.chunk=ft(e),n.greedy=!0,n;if("%"===bt(e)&&"%"===vt(e))return e=kt(e),n.switch=e,n}return"#"===bt(e)?(n.tag=yt(e),n.tag=ft(n.tag),n):"@"===bt(e)?(n.method=yt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var At=Pt;const Nt=/[a-z0-9][-–—][a-z]/i;var jt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&Nt.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e};const It=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},xt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Et=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var Ct=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(It(e,t)):"Noun"===e.pos?n=n.concat(xt(e,t)):"Adjective"===e.pos&&(n=n.concat(Et(e,t))):(n=n.concat(It(e,t)),n=n.concat(xt(e,t)),n=n.concat(Et(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))},Tt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e},Dt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=dt(e);return r=r.map((e=>At(e,t))),r=jt(r,n),r=Ct(r,n),r=Tt(r),r};const Ot=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ft=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),$t=(e,t)=>-1!==e.pre.indexOf(t),St={hasQuote:e=>Gt.test(e.pre)||Bt.test(e.post),hasComma:e=>Lt(e,","),hasPeriod:e=>!0===Lt(e,".")&&!1===Lt(e,"..."),hasExclamation:e=>Lt(e,"!"),hasQuestionMark:e=>Lt(e,"?")||Lt(e,"¿"),hasEllipses:e=>Lt(e,"..")||Lt(e,"…")||$t(e,"..")||$t(e,"…"),hasSemicolon:e=>Lt(e,";"),hasColon:e=>Lt(e,":"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>zt.test(e.post)||zt.test(e.pre),hasDash:e=>Ht.test(e.post)||Ht.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};St.hasQuotation=St.hasQuote;var Mt=St;let Jt=function(){};Jt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.id&&t.id===e.id)return!0;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Vt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Mt[t.method]&&!0===Mt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}if(void 0!==t.chunk)return e.chunk===t.chunk;if(void 0!==t.switch)return e.switch===t.switch;if(void 0!==t.machine)return e.normal===t.machine||e.machine===t.machine||e.root===t.machine;if(void 0!==t.sense)return e.sense===t.sense;if(void 0!==t.fastOr){if(t.pos&&!e.tags.has(t.pos))return null;let n=e.root||e.implicit||e.machine||e.normal;return t.fastOr.has(n)||t.fastOr.has(e.text)}return void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Jt(e,t,n,r))):t.choices.some((t=>Jt(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Wt=Jt;const qt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(Kt(e,e.t).length=r-e.t),e.t=r,!0)};const Ut=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Wt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Wt(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(Kt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},Zt=function(e,t,n){let r=0;for(let a=e.t;ar||(e.t+=r,0))},Xt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Wt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];n&&(Wt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)?e.r+=1:n.optional&&t[e.r+2]&&Wt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?Zt(e,r,t[e.r+1]):(e.t+=1,!0)},Yt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Wt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Wt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},en=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null},tn=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},nn=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Yt(e),r.implicit&&e.terms[e.t+1]&&tn(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||en(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Kt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},rn=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything){if(!0!==qt(e,a)){if(e.negative){if(!Xt(a))return null}else if(!0!==Wt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else if(!nn(a))return null}else if(!nn(a))return null}else{if(e.negative&&e.anything)return null;if(!nn(a))return null}else if(!_t(a))return null}else if(!Qt(a))return null}else if(!Rt(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}},an=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}},on=function(e,t,n){return e=e.filter((e=>{let[r,a,o]=e.pointer,i=n[r].slice(a,o);for(let e=0;e{e.groups[n][0]=t})),e},ln=function(e,t,n){let r=rn(e,t,0,e.length);return r?(r=sn(r,n),r):null};var un=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=ln(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),t.notIf&&(i=on(i,t.notIf,e)),i=an(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i},cn={api:it,methods:{one:{termMethods:Mt,parseMatch:Dt,match:un}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const hn=/^\../,dn=/^#./,gn=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),hn.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var pn={html:function(e){let{starts:t,ends:n}=gn(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(fn,""),bn.test(a)&&(a=" "),a=a.replace(vn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(fn,""),a="-"===a?" ":a.replace(mn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&yn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},kn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};kn.clean=kn.normal,kn.reduced=kn.root;var Pn=kn;let An=[],Nn=0;for(;Nn<64;)An[Nn]=0|4294967296*Math.sin(++Nn%Math.PI);function jn(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(Nn=i=0;Nn>4]+An[i]+~~o[Nn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const In={text:!0,terms:!0};let xn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const En=function(e,t){return Object.assign({},e,t)},Cn={text:e=>wn(e,{keepPunct:!0},!1),normal:e=>wn(e,En(Pn.normal,{keepPunct:!0}),!1),implicit:e=>wn(e,En(Pn.implicit,{keepPunct:!0}),!1),machine:e=>wn(e,xn,!1),root:e=>wn(e,En(xn,{form:"root"}),!1),hash:e=>jn(wn(e,{keepPunct:!0},!1)),offset:e=>{let t=Cn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};Cn.sentences=Cn.sentence,Cn.clean=Cn.normal,Cn.reduced=Cn.root;const Tn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},In,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&Cn[o]&&(a[o]=Cn[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};Tn.data=Tn.json;var Dn=Tn,On=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};const Fn="[0m";var Vn={green:e=>"[32m"+e+Fn,red:e=>"[31m"+e+Fn,blue:e=>"[34m"+e+Fn,magenta:e=>"[35m"+e+Fn,cyan:e=>"[36m"+e+Fn,yellow:e=>"[33m"+e+Fn,black:e=>"[30m"+e+Fn,dim:e=>"[2m"+e+Fn,i:e=>"[3m"+e+Fn},Gn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Vn.blue("\n ──────")),t.forEach((t=>{console.log(Vn.blue("\n ┌─────────")),t.forEach((t=>{let r=[...t.tags||[]],a=t.text||"-";t.sense&&(a=`{${t.normal}/${t.sense}}`),t.implicit&&(a="["+t.implicit+"]"),a=Vn.yellow(a);let o="'"+a+"'";if(t.reference){let n=e.update([t.reference]).text("normal");o+=` - ${Vn.dim(Vn.i("["+n+"]"))}`}o=o.padEnd(18);let i=Vn.blue(" │ ")+Vn.i(o)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Vn[n](e)}))),e.join(", ")}(r,n);console.log(i)}))}))},Bn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Vn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Vn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Vn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Vn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))},zn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${Vn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))},Hn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(On(t),t):(!1!==e.tags&&(Gn(t),console.log("\n")),!0===e.chunks&&(Bn(t),console.log("\n")),!0===e.highlight&&(zn(t),console.log("\n")),t)};const Ln=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var $n=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()},wrap:function(e){return $n(this,e)}};var Mn=Sn,Jn={text:function(e){let t={};var n;if(e&&"string"==typeof e&&Pn.hasOwnProperty(e)?t=Object.assign({},Pn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e)),void 0===t.keepSpace&&this.pointer&&(t.keepSpace=!1),void 0===t.keepPunct&&this.pointer){let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}return void 0===t.keepPunct&&(t.keepPunct=!0),void 0===t.keepSpace&&(t.keepSpace=!0),function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Un=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Qn=function(e,t){let n=Un(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r},_n=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n},Zn={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>Rn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n},er=function(e,t){let n=Un(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>Rn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},nr=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},rr={union:function(e){e=tr(e,this);let t=Xn(this.fullPointer,e.fullPointer);return t=nr(t,this.document),this.toView(t)}};rr.and=rr.union,rr.intersection=function(e){e=tr(e,this);let t=er(this.fullPointer,e.fullPointer);return t=nr(t,this.document),this.toView(t)},rr.not=function(e){e=tr(e,this);let t=Yn(this.fullPointer,e.fullPointer);return t=nr(t,this.document),this.toView(t)},rr.difference=rr.not,rr.complement=function(){let e=this.all(),t=Yn(e.fullPointer,this.fullPointer);return t=nr(t,this.document),this.toView(t)},rr.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=Xn(e,[t])})),e=nr(e,this.document),this.update(e)};var ar=function(e){Object.assign(e.prototype,rr)},or={methods:Zn,api:ar},ir=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const sr=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var lr=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.notIf&&(e.notIf=n(e.notIf,{},t)),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(sr(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(sr(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=sr(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e},ur=function(e,t){e=lr(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}},cr=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))},hr=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>r.has(e))).length>=e.minWant))}))},dr=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o},gr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=cr(a,t.hooks);return o=hr(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),dr(o,e,a,n,r)},pr=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===pr(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag&&l)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))})))},fr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:ir,methods:{one:{buildNet:ur,bulkMatch:gr,bulkTagger:mr}}};const vr=/ /,br=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},yr=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,"[33m[3m"+a+"[0m").padEnd(24)} [32m→[0m #${t.padEnd(22)} ${(e=>"[3m"+e+"[0m")(n)}`)})(e,t,a),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),vr.test(t))!function(e,t,n,r){let a=t.split(vr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),yr(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nwr(e,t,n,r)))};var kr=wr,Pr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>Ar({id:e}))),t}return[Ar({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},xr=e=>"[object Array]"===Object.prototype.toString.call(e),Er=e=>(e=e||"").trim(),Cr=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||Nr.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:jr(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=Ar({});return e.forEach((e=>{if((e=Ar(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(Ir(t=e).forEach(Ar),t);var t},Tr=function(e,t){let n="-> ";t&&(n=(e=>"[2m"+e+"[0m")("→ "));let r="";return Ir(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>"[31m"+e+"[0m")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},Dr=function(e){let t=Ir(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Or={text:Tr,txt:Tr,array:Dr,flat:Dr},Fr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Tr(e,!0)),null):Or.hasOwnProperty(t)?Or[t](e):e},Vr=e=>{Ir(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Gr=/\//;let Br=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Er(e),!Gr.test(e)){let t=this.json.children.find((t=>t.id===e));return new Br(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||Ar({});return new Br(t)}add(e,t={}){if(xr(e))return e.forEach((e=>this.add(Er(e),t))),this;e=Er(e);let n=Ar({id:e,props:t});return this.json.children.push(n),new Br(n)}remove(e){return e=Er(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Ir(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Ir(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return Ir(this.json)}fillDown(){var e;return e=this.json,Ir(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else xr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Vr(this.json);let e=Ir(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Vr(this.json),Fr(this.json,e)}debug(){return Vr(this.json),Fr(this.json,"debug"),this}};const zr=function(e){let t=Cr(e);return new Br(t)};zr.prototype.plugin=function(e){e(this)};var Hr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Hyphenated:"cyan",Adverb:"cyan"};const Lr=function(e){if(Hr.hasOwnProperty(e.id))return Hr[e.id];if(Hr.hasOwnProperty(e.is))return Hr[e.is];let t=e._cache.parents.find((e=>Hr[e]));return Hr[t]};var $r=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:Lr(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const Sr=function(e){return e?"string"==typeof e?[e]:e:[]};var Mr=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=Sr(e[t].children),e[t].not=Sr(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e},Jr=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Mr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return zr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return $r(n)},Wr={one:{setTag:kr,unTag:Pr,addTags:Jr}};const qr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Kr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),qr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return qr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){e=e.replace(/^#/,"");let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var Rr=Kr,Ur=function(e){Object.assign(e.prototype,Rr)},Qr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const _r=new Set(["Auxiliary","Possessive"]);var Zr=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(_r.has(e)||!t.hasOwnProperty(n))return 1;if(_r.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},Xr={model:{one:{tagSet:{}}},compute:{tagRank:Zr},methods:Wr,api:Ur,lib:Qr};const Yr=/([.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s)/g,ea=/^[.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s$/,ta=/((?:\r?\n|\r)+)/;var na=function(e){let t=[],n=e.split(ta);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const sa={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},la=RegExp("["+Object.keys(sa).join("")+"]","g"),ua=RegExp("["+Object.values(sa).join("")+"]","g"),ca=function(e){if(!e)return!1;let t=e.match(ua);return null!==t&&1===t.length};var ha=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var xa=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(ja);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=Pa(n),n=wa(n),n=n.filter((e=>e)),n};const Ea=/\p{Letter}/u,Ca=/[\p{Number}\p{Currency_Symbol}]/u,Ta=/^[a-z]\.([a-z]\.)+/i,Da=/[sn]['’]$/;var Oa=function(e,t){let{prePunctuation:n,postPunctuation:r,emoticons:a}=t.one,o=e,i="",s="",l=Array.from(e);if(a.hasOwnProperty(e.trim()))return{str:e.trim(),pre:i,post:" "};let u=l.length;for(let e=0;e(s=e||"",""))),e=o,i=""),{str:e,pre:i,post:s}},Fa=(e,t)=>{let{str:n,pre:r,post:a}=Oa(e,t);return{text:n,pre:r,post:a,tags:new Set}},Va=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")},Ga=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Ba=/([A-Z]\.)+[A-Z]?,?$/,za=/^[A-Z]\.,?$/,Ha=/[A-Z]{2,}('s|,)?$/,La=/([a-z]\.)+[a-z]\.?$/;var $a=function(e){return function(e){return!0===Ba.test(e)||!0===La.test(e)||!0===za.test(e)||!0===Ha.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Sa=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Ga(r),r=n(r,t),r=$a(r),e.normal=r},Ma=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map((e=>i(e,r))),n.forEach((e=>{Sa(e,t)})),n})),e};const Ja=/[ .][A-Z]\.? *$/i,Wa=/(?:\u2026|\.{2,}) *$/,qa=/\p{L}/u,Ka=/^[A-Z]\. $/;var Ra=function(e,t){if(!1===qa.test(e))return!1;if(!0===Ja.test(e))return!1;if(3===e.length&&Ka.test(e))return!1;if(!0===Wa.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},Ua={one:{killUnicode:Va,tokenize:{splitSentences:va,isSentence:Ra,splitTerms:xa,splitWhitespace:Fa,fromString:Ma}}},Qa={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let _a={},Za={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{_a[t]=!0,Za[t]="Abbreviation",void 0!==e[1]&&(Za[t]=[Za[t],e[1]])}))}));var Xa=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out","ex"].reduce(((e,t)=>(e[t]=!0,e)),{});let Ya={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},eo={};Object.keys(Ya).forEach((function(e){Ya[e].split("").forEach((function(t){eo[t]=e}))}));const to=/\//,no=/[a-z]\.[a-z]/i,ro=/[0-9]/;var ao=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),to.test(n)&&!no.test(n)&&!ro.test(n)){let t=n.split(to);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const oo=/^\p{Letter}+-\p{Letter}+$/u;var io=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),oo.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},so=function(e){let t=e.docs,n={};for(let e=0;eho(e,ao),machine:e=>ho(e,io),normal:e=>ho(e,Sa),freq:so,offset:lo,index:uo,wordCount:co},methods:Ua,model:{one:{aliases:Qa,abbreviations:_a,prefixes:Xa,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},prePunctuation:{"#":!0,"@":!0,_:!0,"°":!0,"":!0,"":!0,"":!0,"\ufeff":!0},postPunctuation:{"%":!0,_:!0,"°":!0,"":!0,"":!0,"":!0,"\ufeff":!0},lexicon:Za,unicode:eo,emoticons:{"<3":!0,"3":!0,"<\\3":!0,":^P":!0,":^p":!0,":^O":!0,":^3":!0}}},hooks:["alias","machine","index","id"]},po={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const mo=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var fo=function(e){e.prototype.autoFill=mo},vo=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const bo={safe:!0,min:3};var yo={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},bo,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=vo(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}},wo={model:{one:{typeahead:{}}},api:fo,lib:yo,compute:po,hooks:["typeahead"]};v.extend(ee),v.extend(Kn),v.extend(cn),v.extend(or),v.extend(Xr),v.plugin(Ce),v.extend(go),v.plugin(k),v.extend(qe),v.extend(wo),v.extend(ze),v.extend(fr);var ko={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos",volcano:"volcanoes"},Po={Comparative:"true¦bett1f0;arth0ew0in0;er",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦began,came,d1had,lied,mea0sa1we0;nt;id",Participle:"true¦0:0A;a07b02c00dXeat0fSgQhPoJprov0rHs7t6u4w1;ak0ithdra03o2r1;i03uZ;k0rn,v0;nd1pr05;ergoJoJ;ak0hHo3;e9h7lain,o6p5t4un3w1;o1um;rn;g,k;ol0reT;iRok0;ught,wn;ak0o1ruL;ne,wn;en,wn;ewriOi1uK;dd0s0;ut3ver1;do4se0t1;ak0h2;do2g1;roH;ne;ast0i7;iv0o1roE;ne,tt0;all0loCor1roz0;bi3g2s1;ak0e0;iv0oA;dd0;ove,r1;a6eamt,iv0u1;nk;hos0lu1;ng;e4i3lo2ui1;lt;wn;tt0;at0en,gun;r2w1;ak0ok0;is0;en",Gerund:"true¦accord0be0doin,go0result0stain0;ing",Expression:"true¦a0Wb0Sc0Qd0Me0Kg0EhYjeez,lVmUnSoMpJsHtGuDvoi0Yw6y0;a4e3i1u0;ck,p;k03p0;ee,pee;ah,p,s;!a,y;a5h2o1t0;af,f;rd up,w;atsoever,e1o0;a,ops;e,w;hoo,t;gh,h0;! 0h,m;huh,oh;here nQsk,ut tut;h0ic;eesh,hh,it,oo;ff,h1l0ow,sst;ease,s,z;ew,ooey;h1i,mg,o0uch,w,y;h,o,ps;! 0h;h1my go0w1;d,sh;ell;ah,evertheless,o0;!pe;eh,mm;ah,eh,m1ol0;!s;ao,fao;aCeBi9o2u0;h,mph,rra0zzC;h,y;l1o0;r6y9;la,y0;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww,xcuse me;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;mon,o0;ngratulations,wabunga;a2oo1r0tw,ye;avo,r;!ya;h,m; 1h0ka,las,men,rgh,ye;!a,em,h,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦dick0gre0ones,records;ens","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦bewa0come he0;re",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦its,my,none,our0thy;!s","Noun|Verb":"true¦0:9D;1:8N;2:81;3:9I;4:98;5:91;6:84;7:72;8:92;9:8K;A:9N;a93b84c6Xd68e5Yf5Bg52h4Si4Kj4Hk4El42m3Qn3Mo3Jp2Jqu2Ir1Ts0FtZuXvSwEyDzB;ip,oB;ne,om;awn,e5Xie5Q;aLeJhGiEoCrB;ap,e93;nd0rBu8I;k,ry,sh51th;ck,nBpe,re,sh;!d,g;e7MiB;p,sB;k,p0t1;aBed;r,th0;it,lk,rCsBt4ve,x;h,te;!ehou2raA;aEiDoB;iBm9te,w;ce,d;be,ew,s9;cuum,l3Z;pBr6;da5gra5Wlo5S;aOeNhrMiLoJrEuCwiBy5H;n,st;nBrn;e,n74;aDeCiBot,u8;bu5ck46gg0m,p;at,k,nd;ck,de,in,nsBp,v70;f0i88;ll,ne,p,r4Jss,t8LuB;ch,r;ck,de,e,le,me,p,re;e5Fow,u8;ar,e,ll,mp0st,xt;g,lBng1rg75s5x;k,ly;a0Mc0He0Eh09i07k05l03m02n01ou7JpVqua6YtIuDwB;ea7PiB;ng,pe,t4;bEit,m,ppCrB;ge,pri2v2L;lBo69;e66y;!je7;aKeJiIoFrCuBy1;dy,ff,mb1;a7MeCiBo58ugg1;ke,ng;am,ss,t4;ckCop,p,rB;e,m;ing,pi1;ck,nk,t4;m,p;ck,ge,in,ke,lCmp,nd,p1rBte,y;!e,t;k,l;aFeed,iElDot,rBur;ay,e4PinBu3;g,k1;a58it;ll,n,r7Pte;n,rk;ap,ee1Pow;a54e43i1o4Q;eep,iBou4;ce,p,t;ateboa74iB;!p;de,gnBp,ze;!al;aEeDiCoBuff1;ck,p,re,w;ft,p,v0;d,i3M;ck,de,pe,re,ve;aCed,nBrv1Ft;se,t2G;l,r4t;aEhedu1o5RrB;aCeBibb1o3N;en,w;pe,t4;le,n,r0P;cBil;k,rifi3;aXeFiEoCuB;b,in,le,n,s5H;a8ck,ll,oBpe,u5;f,t;de,ng,p,s1P;aRcQdo,el,fOgNje7lMmKnJo13pHque8sDturn,vBwa6G;eBi20;al,r2;er6PoDpe7tCuB;lt,me;!a4Q;l6Mrt;air,eaBly,o4O;l,t;dezvo2Ot;aBedy;ke,rk;ea2i41;a63ist0r57;act6Jer1Oo6MuB;nd,se;a2Wo60;ch,s61;c16ge,i2ke,lly,nBpZtZ;ge,k,t;es5Xiv0;a03eZhXiVlRoLrCsy4uB;mp,n4rcha2sh;aIeGiFoBu4A;be,ceDdu3fi1grBje7mi2p,te8;amBe6G;!me;ed,ss;ce,de,nt;sBy;er5Ys;cti3i2;iFlDoCp,re,sBw0;e,i5Kt;l,p;iBl;ce,sh;nt,s5H;aCce,e2QuB;g,mp,n6;ce,nBy;!t;ck,le,nBpe,t,vot;!e;a2oB;ne,tograph;ak,eDnCrBt;fu4Qm9;!c2P;!l,r;ckGiFnErtDsCtBu2;ch,eA;s,te;!y;!ic;nt,r,se;!a6;bje7ff0il,oCrButli3Cver3W;b9d0ieA;ze;a4DeDoB;d,tB;e,i3;ed,gle7t;aIeGiFoCuB;rd0;ck,d3Eld,nBp,uth,ve;it52kB;ey;lk,n3Zrr50ss,x;asu3Hn4JrBss;ge,it;il,nDp,rk3KsCtB;ch,t0;h,k;da5n0oeuv3C;aJeHiFoCuB;mp,st;aCbby,ck,g,oBve;k,t;d,n;cBft,m9nFst;en2k;aBc0Ie4vH;ch,d,k,p,se;bCcBnd,p,t4un4;e,k;el,o2K;eCiBno44;ck,ll,ss;el,y;aCo1GuB;i3mp;m,zz;mpHnCr3WssB;ue;cr1Idex,fluEha1k,se27teBvoi3;nt,rB;e8fa3viB;ew;en3;a7le20;aGeEiDoCuB;g,nt;l30no23ok,p,r2u2;ghlight,ke,nt,re,t;aBd6lp;d,t;ck,mDndCrBsh,t33;b3Pm,ne44ve8;!le;!m0;aIloHossGrDuB;arBe40n;antee,d;aCiBou2Tumb1;nd,p;de,sp;ip;ss,w;g,in,me,ng,s,te,ze;aWeTiOlLoHrDuB;ck,el,nBss,zz;c32d;aCoBy;st,wn;cBgme,me;tu1W;cDg,il,ld,rB;ce,e23mB;!at;us;aCe0Pip,oBy;at,ck,od,w;g,ke,me,re,sh,vo19;eEgDlCnBre,sh,t,x;an3i0L;e,m,t0;ht,u1L;ld;aCeBn3;d,l;r,tu1H;ce,il,ll,rm,v2R;cho,d6ffe7nJsHxDyeB;!baB;ll;cDerci2hib9pBtra7;eriBo0R;en3meA;el,han6u2;caBtima5;pe;count0d,vy;aXeQiKoHrCuBye;b,el,mp,plica5;aEeDiCoB;ne,p;ft,nk,p,ve;am,ss;ft,g,in;cCd6ubt,wnloB;ad;k,u0A;p,sDt4vB;e,iBor3;de;char6gui2h,liCpB;at4lFu5;ke;al,ba5cFfeElDma1Apos9siCtaB;il;gn,re;ay;at,ct;li02rB;ea2;b,ma6n3rBte;e,t;a0Cent0Bh04irc1l01oIrDuB;be,e,rBt;e,l,ve;aEeDoCuBy;sh;p,ss,wd;d9ep;ck,ft,sh;at,de,in,lRmKnDpy,re,st,uBv0;gh,nBp1;sZt;ceFdu7fli7glomeGsDtBveL;a7rB;a8ol;eAtru7;ct;ntBrn;ra5;bFfoEmDpB;leBou0Iromi2;meA;a0GeAit,u5;rt;at,iB;ne;lap2oB;r,ur;aCiB;ck,p;im,w;aCeBip;at,ck,er;iEllen6nCrB;ge,m,t;ge,nB;el;n,r;er,re;ke,ll,mp,noe,pDrVsCtBu2ve;alog,ch;h,t;!tuB;re;a02eYiWlSoOrFuCyB;pa0Y;bb1ck1dgCff0mp,rBst,zz;den,n;et;anIeGiEoadDuB;i2sh;se;ca8;be,d6;ge;aBed;ch,k;ch,d;aDg,mb,nCoBtt1x,ycott;k,st,t;d,e;rd,st;aDeCiBoWur;nk,tz;nd;me;as,d,ke,nd,opsy,tB;ch,e;aDef,lt,nBt;d,ef9;it;r,t;ck,il,l05nGrDsCtt1;le;e,h;gBk;aBe;in;!d,g,k;c01dXge,iWlTnRppOrKsGttEucCwaB;rd;tiB;on;aBempt;ck;k,sB;i8ocia5;te;st;chCmB;our;!iB;ve;eCroa4;ch;al;chBg0sw0;or;aCt0;er;rm;d,m,r;dreDvB;an3;ce;ss;cBe,he,t;eDoB;rd,uA;nt;nt,ss",Actor:"true¦0:7E;1:7J;2:6D;3:7I;4:7R;5:7N;6:74;a6Rb66c4Zd4Fe45f3Vg3Eh33i2Xj2Tki2Rl2Mm28n20o1Tp0Wqu0Ur0KsRtKuIvFw9yo7;gi,ut7;h,ub0;aBeAi9o8r7;estl0it0;m2rk0;fe,nn0t2Dza2J;atherm2ld0;ge earn0it0nder0rri1;eter8i7oyG;ll5Up,s43;an,ina2X;n7s0;c6Yder04;aoisea25eAherapi5iktok0o9r7ut1yco6;a7endseMo47;d0mp,nscri0Cvel0;ddl0u1H;a0Rchn8en7na4st0;ag0;i3So0E;aiYcVeShQiNki0mu29oKpHquaGtCu8wee7;p0theart;lt2per8r7;f0ge6viv1;h7inten0Jst5Mvis1;ero,um2;a9ep8r7;ang0eam0;bro2Qc2Rfa2Qmo2Qsi23;ff0tesm2;tt0;ec8ir2Go7;kesp5Du0N;ia5Nt3;l8me6En,rcere7ul;r,ss;di0oi5;n8s7;sy,t0;g0n0;am2ephe1Kow7;girl,m2r2T;cretJnior cit3Jr7;gea4v7;a4it1;hol51i8reen7ulpt1;wr2F;e02on;l1nt;aFeAo9u7;l0nn7;er up,ingF;g44le mod43of0;a53c9fug2Tpo36searRv7;ere4Yolution7;ary;e7luZru25;ptio3X;bbi,dic5Zpp0;arter7e33;back;aZeXhTiSlPoLr9sycho8u7;nk,p36;logi5;aHeEiCo7;dAfess1g8ph4Bs7;pe2Otitu55;en7ramm0;it1y;igy,uc0;est4Rme mini0Xnce7s3I;!ss;a8si7;de4;ch0;ctiti3Dnk0S;dca0Ret,li7pula54rnst46;c2Mtic7;al scie7i2;nti5;a7umb0;nn0y7;er,ma4Pwright;lgrim,one0;a9iloso8otogra8ra7ysi1Z;se;ph0;ntom,rmaci5;r7ssi1X;form0s6;i3Il,nel42r9st1tr7wn;i7on;arYot;ent50i46tn0;ccupa4ffCp9r8ut7;ca5l0E;ac4Mganiz0ig2Jph2;er3t7;i1Nomet7;ri5;ic0spring;aDeBie51o9u7;n,rse7;!r3M;b7mad,vi4Y;le2Yo4G;i7mesis,phew;ce,ghb1;nny,rr3t21;aFeEiBo8u7yst22;m9si19;der3gul,m8n7th0;arEk;!my;ni8s7;f04s0Lt0;on,st0;chan1Unt1rcha4;giAk0n9rtyr,t7y1;e,riar7;ch;ag0iac;ci2stra3L;a8e2Dieutena4o7;rd,s0v0;bor0d8ndlo7ss,urea3Iwy0ym2;rd;!y;d,n7;!s2A;anitor ,e9o8u7;ggl0;gg0urna2W;st0;c6dol,llu3Wmmigra4n7;-lAc1Sfa4habi44nov3s8ve7;nt1stig3;pe0Pt7;a1Hig3ru0O;aw;airGeCistoBo9u7ygie1M;man7nt0sba2J;!ita9;bo,st7usekO;age,e3R;ri2;ir,r7;m8o7;!ine;it;dress0sty2E;aMeJhostHirl28ladi3oDrand8u7;e5ru;cAdaugTfa9m8pa7s6;!re4;a,o7;th0;hi1D;al8d7lf0;!de3C;ie,k7te28;eep0;!wr7;it0;isha,n7;i7tl06;us;mbl0rden0;aFella,iBo8r7;eela2Pie1R;e,re7ster pare4;be1Jm2r7st0;unn0;an31g9lmm19nanci0r7tt0;e7st la2J; marsh2Qfig7m2;ht0;rm0th0;conoFdElectriDm9n8x7;amin0cellency,i2B;emy,trepreneur,vironmenta1K;c9p7;er1loye7;e,r;ee;ci2;it1;mi5;aLeCi9ork,ri8u7we03;de,tche2I;ft0vK;ct3eti8plom2Ire7va;ct1;ci2ti2;aEcor3fencDi0JnBputAs8tectNvel7;op0;ce1He7ign0;rt0;ee,y;iz7;en;em2;c6l0;dAnc0redev9ught7;er7;! ;il;!dy;a06e04fo,hXitizenWlToCrAu7;r3stomer7;! representat7;ive;e3it7;ic;-work0lJmGnAord9rpor1Nu7wboy;n7ri0sin ;ciUte1R;in3;fidantBgressTsAt7;e0Lr7;ibut1o7;ll0;tab14ul1P;!e;edi2m7pos0rade;a0FeRissi7;on0;leag9on8um7;ni5;el;ue;e7own;an0r7;ic,k;!s;aAe8i7um;ld;erle7f;ad0;ir8nce7plGract0;ll1;m2wJ;lebri7o;ty;dCptBr7shi0;e8pe7;nt0;r,t7;ak0;ain;et;aNeMiKlogg0oFrCu7;dd0Gild0rglAsiness7;m2p8w7;om2;ers6;ar;i8o7;!k0th0;cklay0de,gadi0;hemi2oge9y7;!frie7;nd;ym2;an;cyc7sS;li5;atbox0ings;by,nk0r7;b0on8te7;nd0;!e08;c05dXge4nRpMrIsGtBu8yatull7;ah;nt8t7;h1oH;!ie;h9t7;e7orney;nda4;ie5le7;te;sis01tron7;aut,om0;chbis9isto8tis7;an,t;crV;hop;ostAp7;ari7rentiT;ti6;on;le;aAcest1im3nou9y7;bo7;dy;nc0;ly5rc7;hi5;mi9v7;entur0is1;er;ni8r7;al;str3;at1;or;counCquaintanBrobAt7;ivi5or,re7;ss;st;at;ce;ta4;nt","Adj|Noun":"true¦0:18;a15b0Zc0Od0Me0Hf0Bg0Ah08i06ju05l03mWnUoSpNrJsCt8u5v2w1;atershed,elcome;a1ision0R;gabo4nilla,ria1;b0Ont;ndergr1pstairs;adua0Vou1;nd;a3e1oken,ri0;en,r1;min0rori0U;boo,n;age,e5ilv09lack,o3quat,ta2u1well;bordina0Oper5;b0Endard;ciali0Pl1vereign;e,ve0Z;cret,n1ri0;ior;a3e1outiTubbiL;ar,bBla0Qnt0p1side0V;resenta0Publican;ci0Ish;a4eriodic0otenti0r1;emi2incip0o1;!fession0;er,um;rall4st,tie0O;ff1pposi09v0;ensi0Ii05;aggVov1;el;a6e4in3o1;biVder00r1;al,t0;iature,or;di1tr0G;an,um;le,riA;attIiber0u1;sh;stice,veniN;de0mpressioRn1;cumbe08dividu0no07sta08terim;alf,o1umdrum;bby,melA;enious,old,ra01;a4e2i1luid,ugiZ;ne;llow,m1;aEiJ;ir,t,vo1;riLuriL;l3pZx1;c1ecuSpeU;ess;d1iH;er;arl3e1;mographTrivaN;hiElassSo2rude,unn1;ing;m4n1operaK;creAstitueOtempor2vertab1;le;ary;m2p1;anion,lex;er2u1;ni7;ci0;e5lank,o4r1;i2u1;te;ef;ttom,urgeois;st;cademBd8l4n2r1;ab,ctA;im0tarct9;al;e3terna1;ti1;ve;rt;oles1ult;ce1;nt;ic","Adj|Past":"true¦0:30;1:2R;2:2U;a2Jb2Dc1Ud1Be15f10gift0h0Xi0Qj0Pknown,l0Mm0Hn0Fo0Cp05qua04rVsEtAu7v5w3;arp0ea3or5;kIth2T;a3e0W;ri0;n3pd1s0;derstood,i3;fi0t0;ar5hreatCr3wi2R;a3ou19;ck0in0pp0;get0ni1N;aHcaGeEhDimCm01oak0pAt6u3;bsid28gge2Ms3;pe3ta1S;ct0nd0;at0e5r3uV;ength3ip0;en0;am0reotyp0;eci3ik0ott0;al20fi0;pIul1;ar0ut;a3c1Jle2t1S;l0t0;r0tt25;t3ut0;is1Jur1;aAe3;c7duc0f1Cg6l1new0qu5s3;pe2t3;or0ri2;e22ir0;ist1Xul1;eiv0o3ycl0;mme09rd0v1V;lli0ti1A;li19;arallel0i0Kl7o6r3ump0;e4o3;ce0Ilo0Hnou1Tpos0te2;fe0Loc8pY;i1Gli0R;a3e19;nn0;c4rgan1Bverlo3;ok0;cupi0;e3ot0;ed0gle2;a5e4ix0o3ut0;di0Vt0G;as0Qlt0;n3rk0;ag0ufact0O;eft,i4o3;ad0st;cens0mit0st0;agg0us0N;mp8n3sol1;br0debt0f6t3volv0;e3ox0F;gr1n3re18;d0si0J;e2l1oX;li0oLrov0;amm10e1o3;ok0r3;ri0E;aNe6i5lavo09oc05r3;a3i0;ct07g0Mm0;niXx0;ar0;duc1l1mbarraKn7quipp0stabliVx3;agger1p3te5;a4e3;ct0rie0S;nd0;ha0QsZ;aJeAi3;gni01miniOre2s3;a7c5grun05t3;o3reBurb0;rt0;iplSou3;nt0rE;bl0;cenVdOf8l7pre6ra5t3velop0;a3ermO;il0;ng0;ss0;ay0ight0;e4o3;rm0;rr0;m3t0;ag0;alcul1eHharg0lGo8r5u3;lt3stomS;iv1;a4owd0u3;sh0;ck0mp0;d0lo9m6n3ok0vX;centr1f4s3troll0;idVolid1;us0;b4pl3;ic1;in0;ur0;assi5os0;lebr1n5r3;ti3;fi0;tralB;a7i6o4roken,urn3;ed,t;il0r0t3und;tl0;as0;k0laIs0;bandon0cJdGffe2lDnBpp9ss7u3ward0;g4thor3;iz0;me3;nt0;o5u3;m0r0;li0re3;ci1;im1ticip1;at0;leg0t3;er0;ct0;ju4o6va3;nc0;st0;ce3knowledg0;pt0;ed",Singular:"true¦0:5I;1:5G;2:4V;3:4R;4:51;5:56;6:5K;a4Zb4Ic3Ld33e2Vf2Kg2Eh23in1Zj1Yk1Xl1Qm1In1Eo18p0Pqu0Or0DsXtKuFvAw7x r55yo yo;a7ha3N;f3i4Nt0Ey7;! arou37;arAe8o7;cabu4Gl59;gMr7t;di4Wt1T;iety,ni4L;n9p2Yr8s 7;do41s5B;bani1in0;coordinat38der7;estima1to1Zwe3Z; rex,aIeHhFiDoCr9u8v7;! show;m2Mn2rntJto19;agedy,ib7o4A;e,u7;n0ta43;ni1p2rq3J;c,er,m7;etD;ing7ree23;!y;am,mp3D;ct2le6x return;aLcKeIhor4NiHkFoEpin off,tBu9y7;ll7ner4Jst4Q;ab2V;b7i1n26per bowl,rro1U;st3Jtot0;at8ipe2Eo1Grate4Fudent7;! lo0F;i37u1;ft ser4Imeo1D;elet5i7;ll,r3R;b36gn2Rte;ab2Hc7min39;t,urity gu2L;e6ho2W;bbatic0la3Gndwi0Mpi5;av5eBhetor2i8o7;de6om,w;t8v7;erb2A;e,u0;bBc9f7publ2r0Vspi1;er7orm3;e6r0;i7ord label;p2Ft0;a1u43;estion mark,ot2D;aMeJhotocoUiGlEoCr8u7yram1D;ddi3EpCrpo1Hs3G;e9o7;bl3Ws7;pe3Gta1;dic1Pmi1Dp1Oroga3Sss relea1D;p7rt0;py;a7ebisci1;q2Bte;cn2e8g7;!gy;!r;anut,d8r7t0yo1;cen3Hsp3I;al,est0;nop4r8t7;e,hog5;adi10i2S;atme0bj3Dc9pia1rde0thers,utspok5ve7wn3;n,r7;ti0Nview;cu8e7;an;pi3;ar9it8ot7umb3;a2Dhi2P;e,ra1;cot2ra35;aCeAi8o7ur0é0B;nopo4p17rni2Lsq1Qti34uld;c,li10n07s7tt5;chief,si32;d7nu,t0;al,ic;gna1mm0nd15rsupi0te7yf4;ri0;aBegAi9u7;ddi1n7;ch;ght bulb,me,p09ving room; 8e0M;bor14y 7;up;eyno1itt5;el4ourn0;c9dices,itia2Nni25s8tel0Mvert7;eb1K;e28titu1;en2Ki2T;aGeCighBo8u7;man right,s22;me7rmoDsp1Gtb0L;! r7;un; scho0ZriZ;a7i1M;d7v5; start,pho7;ne;ndful,sh brown,v5ze;aAelat0Jlaci3r8u7yp1S;l4y;an7enadi3id;a1Bd slam,ny;df4r7;l2ni1G;aGeti1FiFlEoBr8un7;er0;ee market,i8on7;ti3;ga1;l4ur7;so7;me;ow3u1;eNref4;br2mi4n0Z;conoDffi1Mgg,lecto0Pmbas1BnApidem2s1Wth2ven9x8yel7;id;ampXempl0Lte6;i16t;er1Iterp7;ri7;se;my;eJiCo9r7ump truck;agonf4i7;er,ve thru;c8g1Bi4or,ssi3wn7;side;to0CumenC;aCgniBnn3s8vide7;nd;conte6incen1Bp7tri0Y;osi7;tion;ta0E;le0U;ath9c8f7ni0terre6;ault 03err0;al,im0;!b7;ed;aUeRhKiJlHoBr7;edit c9uc7;ib7;le;ard;efficBke,lAmmuniqJns8pi3rr0t0Uus7yo1;in;erv7uG;atoZ;ic,lO;ie6;er0Li7oth;e6n2;ty,vil wK;aBeqAick5oco9r7;istmas car7ysanthemum;ol;la1;ue;ndeli3racteri7;st2;i8llCr7;e0tifica1;liW;hi3nDpCrAt7ucus;erpi7hedr0;ll7;ar;!bohyd7ri3;ra1;it0;a7e;l,ry;aJeIiop2leGoEreakCu7;nAr7tterf4;g7i0;la7;ry;ny;fa7thro9;st;dy,ro7wl;ugh;mi7;sh;an,l4;nki9r7;!ri3;er;ng;cQdKlGnDppeti1rBs9tt2utop7;sy;ic;ce6pe7;ct;r7sen0;ay;ec8oma4ti8;ly;do1;i5l7;er7y;gy;en; hominBj8van7;tage;ec7;ti7;ve;em;cAe8qui7;tt0;ta1;te;i8ru0;al;de6;nt","Person|Noun":"true¦a07b01cYdRePfOgMhJjFkiElDmBolive,p7r4s3trini00v1wa0;ng,rd;an,enus,iol0;a,et;ky,on5umm02;ay,e1o0uby;bin,d,se;ed,x;a2e0ol;aHn0;ny;ge,tM;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Actor|Verb":"true¦aHbDcAd8engineFfool,g6host,judge,m4nerd,p3recruit,s1ushFvolunteFwi0;mp,tneF;cout,p0;ons6y;arent,ilot;a0ime;n,st9;eek,oof,r0uide;aduBoom;elegAoct0;or;ha1o0;ach,nscript,ok;mpion,uffeur;o2u0;lly,tch0;er;ss;d0ffili1rchite2;di1voc0;ate;ct",MaleName:"true¦0:DO;1:CO;2:D7;3:AJ;4:CK;5:BZ;6:CF;7:D3;8:BS;9:AR;A:DB;B:D4;C:94;D:BM;aC9bB7cA7d98e8If82g7Fh6Si6Cj5Ek52l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Jkaria,n0C;hFkE;!aC7;ar5UeC6;aMoGuE;sEu2LvBJ;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB8ssY;avi3ho4;aNeLiGoEyaBN;jcie87lfgang,odrow,utE;!er;lEnst1;bGey,fredAlE;aAZiE;am,e,s;e97ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Xy;aHiEladimir,ojte7U;cFha0kt67nceErgA5va0;!nt;e3Xt65;lentEn9S;inE;!e;ghBElyss59nax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r59;avAHeEist0oy,um0;ntA9v5Wy;bGd8RmEny;!as,mEoharu;aCCie,y;iCy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8G;!de5;dHrE;en98rE;an97eEy;ll,n96;!dy;dgh,ha,iEnn3req,tsu4R;cAPka;aUcotSeQhMiKoIpenc3tEur1Xylve96zym1;anGeEua85;f0phBCvEwa84;e5Zie;!islaw,l8;lom1uE;leyma6ta;dElCm1yabonga;!dhart74n8;aGeE;lErm0;d1t1;h7Kne,qu11un,wn,y6;aEbasti0k2Cl4Prg4Mth,ymoAE;m5n;!tE;!ie,y;lFmEnti2Gq58ul;!ke5JmDu4;ik,vato7O;aZeVhe9ViRoIuFyE;an,ou;b7DdFf5pe7KssE;!elBJ;ol3Fy;an,bLc62dJel,geIh0landAmHnGry,sFyE;!ce;coe,s;!aA1nD;an,eo;l45r;er78g3n8olfo,riE;go;bDeAQ;cEl8;ar6Ic6HhFkEo;!ey,ie,y;a8Vie;gFid,ubByEza;an1KnZ;g9SiE;na9Os;ch6Qfa4lImHndGpha4sFul,wi2HyE;an,mo6U;h7Jm5;alAXol2U;iACon;f,ph;ent2inE;cy,t1;aJeHhilGier6TrE;aka18eE;m,st1;!ip,lip;dA4rcy,tE;ar,e3Er1Y;b4Hdra73tr6JulE;!o19;ctav3Di3liv3m9Yndrej,rIsFtEum7wB;is,to;aFc7k7m0vE;al5S;ma;i,vM;aMeKiGoEu38;aEel,j5l0ma0r3I;h,m;cFg4i46kEl2R;!au,h7Gola;hEkEolC;olC;al,d,il,ls1vE;il8J;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Gr1;hamFr6KstaE;fa,p54;ed,mI;di0Xe,hamGis2CntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Uik;house,o0Ct1;ae5Oe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2AlSmadXnRrLs1tGuricFxE;imilianAwe9;e,io;eHhFiCtEus,yC;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Ysha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5G;ou;aXeRiPlo39oLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7BrenGuEv81we9;!iE;e,s;!zo;am,oE;n4r;a7Uevi,la4AnIonHst3thaGvE;eEi;nte;bo;!a6Del;!ny;mFnd1rEur54wr54;ry,s;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubCnJrHsE;eFhEi7Wue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Gy;!e5OrE;ey,y;cLdBkJmIrGsFvi3yE;dBs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i70maEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dB;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5K;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4Y;oGrE;aEry;ld,rdA;ffr8rge;brFlBrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymBzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estAie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4FsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydCy29;!lC;!a2HnEov0;e9ie,y;go,iFykC;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l36n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1C;aEie;rdA;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar17b0Vd0Rf0Pgust2hm0Mi0Jja0Il03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndA;!el,ki;ie;ta;aq;as,dIgelAtE;hony,oE;i6nE;!iAy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;aRbeQdBeKfIi,lHonGphZt1vE;aOin;on;so,zo;an,en;onVrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtA;dd2n;ni;dBm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfAri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Uncountable:"true¦0:33;1:2J;2:2Q;3:38;4:3H;a31b2Sc2Gd27e1Wf1Sg1Jh1Bi16j13k11l0Wm0Mn0Io0Hp07r03sOtBuran2Qv9w5you gu0J;a7his1Ci6oo5;d,l;ldlife,ne;rmAt2;apor,ernacul2Gi5;neg2Fol1Ttae;eGhEiDoBr6un5yranny;a,gst1G;aff2Vea1Po6ue nor5;th;o0Du5;ble5se1Yt;!shoot0;night,othpas1Zwn5;foGsfoG;me off,n;er5und2;e,mod2Y;a,nnis;aGcFeEhCiBkiAo9p8t6u5weepstak1;g20nshi2Nshi;ati0Ce5;am,el;ace2Qeci1;ap,cc2meth0;n,ttl1;lk;eep,ingl1o5;pp0r1F;lf,na1Jri1;ene1Pisso1F;d0Zfe3l6nd,t5;i0Lurn;m1Zt;abi1e6ic5;e,ke18;c5i04laxa14search;ogni13rea13;aCeBhysAl9o7re5ut3;amble,mis1s5ten25;en24s0O;l5rk;i2Dl0HyK;ast1Wuto; 1Ai4;a28tr0H;nt5rk0ti0O;i1s;bstetri4vercrowd0xyg0B;a7e6owada5utella;ys;ptu1Sws;il poli01tional securi3;aCeAo7u5;m5s1L;ps;n5o1O;ey,o5;gamy;a5cha0Glancholy,rchandi1Ltallurgy;sl1t;chine5g1Ej1Lrs,thema1U; learn0ry;aught2e8i7ogi6u5;ck,g16;c,s1Q;ce,ghtn0nguis1PteratYv2;ath2isXss;ara0GindergartRn5;icke0Cowled12;e5upit2;a5llyfiIwel0K;ns;ce,gnor8mp7n5;forma02ter5;net,sta09;atiUort5rov;an1C;a9e8isto0Do5ung2;ckey,mework,ne6o5rseradiAspitali3use arrest;ky;s3y;adquarteZre;ir,lib03ppiJs5;hi5te;sh;eneAl8o7r5um,ymnas15;a5e03;niWss;lf,re;ut5yce0J;en; 5ti4;edit0po5;ol;aPeel0icHlour,o6urnit5;ure;od,rgive5uri2wl;ness;arEcono0PducaDlectrBn9quipAthi4very8x5;ist6per5;ti0F;en0N;body,o0Cth0;joy5tertain5;ment;ici3o5;ni4;tiW;nings,th;eBi8o6raugh5ynas3;ts;pe,wnstai5;rs;abet1ce,s5;hon03repu5;te;b5miZ;ut;aFelciEhCivi4lAo5urrency;al,ld w8mmenta7n5ral,ttKuscoD;fusiJt 5;ed;ry;ar;assi4oth1;es;aos,e5;eOw0;us;d,rQ;aAi8lood,owl0read7u5;nt0tt2;er;!th;lliarLs5;on;g5ss;ga5;ge;cMdviLeroIirHmDn8ppeal court,r6spi5thleN;rin;ithmet5sen5;ic;i8y5;o6th0;ing;ne;se;en7n5;es3;ty;ds;craft;bi4d5nau9;yna5;mi4;ce;id,ous5;ti4;cs",Infinitive:"true¦0:8W;1:99;2:9T;3:8G;4:7M;5:9F;6:9X;7:8I;8:9P;9:9G;A:9W;B:9B;C:83;D:8A;E:86;F:8N;G:8B;a8Ib7Xc72d5We4Qf4Dg48h43i3Jj3Gk3El35m2Ynou41o2Rp2Aqu29r1Cs0BtXuSvQwH;aNeMiKors4rH;eIiH;ng,te;ak,st3;d4e7VthH;draw,er;a2d,ep;i2ke,nHrn;d1t;aHie;li9SniAry;nHplift;cov1dIear80found7WlHplug,rav7Jtie,ve8K;eaAo3R;erHo;cut,go,sta9Vval9Jwhelm;aSeQhNoMrHuI;aIeH;mb3;ffi3Lmp3nsH;aDpH;i7oE;pp3ugh4;aIiIrHwaE;eat4i2;nk;aHm9F;ch,se;ck3ilor,keHmp1r80;! paE;a0Gc0Fe0Dh09i07l05mugg3n04o02pZquYtRuJwH;all7GeeHim;p,t4;bLccKffJggeBmmIp2KrH;mouFvi2;ari0on;er,i5;e77umb;li91mIsiHveE;de,st;er9it;aLe83iJrH;ang3eHi2;ng23w;fHng;f4le;gg1rH;t3ve;a41iA;a4KeIit,l6XoH;il,of;ak,nd;lHot70w;icCve;atGeak,i0M;aHi6;m,y;ft,nHt;g,k;aJi5UoIriHun;nk,v67;ot,rt4;ke,rp4tt1;eHll,nd,que7Wv1w;!k,m;aven9ul8C;dd4tis1Dy;a0CeJiIoH;am,ut;d,p4;a07b05c03d02fZgroup,heaYiXlVmUnTpRq3CsNtLup,vH;amp,eIiHo31;sCve;l,rH;e,t;i7rH;ie2ofC;eFiJpo85tHurfa5;o1YrH;a51iDuctu7;de,gn,st;el,hra0lHreseF;a5e6I;d1ew,o05;a4We36o2;a8eFiHoad,y;e2nq3Rve;mbur0nf2Z;r0t;inIleDocus,reAuH;el,rbiA;an5e;aDu5;ei2k7Sla3ToHyc3;gni31nci3up,v1;oot,uH;ff;ct,d,liH;se,ze;tt3viA;aAenGit,o8;aVerTinpoiFlumm1GoSrKuH;b3Tke,niArHt;poEsuH;aFe;eLoH;cJd,fe4HhibCnoIpo0sp1tru6vH;e,i6o55;un5;la3Du7;aGclu6dIf1occupy,sup0FvH;a5TeF;etermi4DiD;aGrtr55sse4A;cei2fo47iAmea8plex,sHva6;eve7iBua6;mp1rHtrol,ve,y;a60t5W;bMccuLmCpKutJverHwe;lap,sHtu6Gu0;ee,h1A;gr4Ynu25pa5;era8i43po0;py,r;ser2ta3S;aLe0SiIoHultiply;leBu69;micInHspla5;ce,g3us;!k;iHke,na9;m,nta3L;aOeKiHo0u3B;e,ke,ng1quHv4;eHi6C;fy;aJnHss4;d,gH;th4;rn,ve;ng29u1H;eep,nH;e3Xow;o39uH;gg3xtaH;po0;gno7mUnHrk;cSdQfPgeBhOitia8ju7q17sMtJun5ZvH;a6eHo0W;nt,rt,st;erIimi5WoxiOrH;odu5u6;aDn,pr01ru5X;iBpi7tHu7;il,ruD;abCibC;eBo31u0;iHul9;ca8;i8lu6;b5Imer0pH;aKer4Fin9ly,oIrH;e2Xis5Vo2;rt,se,veH;riA;le,rt;aKeJiHoiBuE;de,jaHnd1;ck;ar,iQ;mp1ng,pp4rang58ve;ath1et,i2le1XoKrH;aIeHow;et;b,pp3ze;!ve4W;aSer3Ri5ElRorLrIuH;lf3Zndrai0r3V;eIiHolic;ght4;e0Nsh4;b3JeKfeCgIsH;a32ee;eHi2;!t;clo0go,shHwa4M;ad35;ee,i2V;lt1st4;a0KdCl0Im0CnUquip,rTsStGvQxH;a20cNeEhMiLpItHu6;ing0Uol;eIi7lHo0un9;a1VoC;ct,di8l;st,t;a3oE;e2RlH;a0Wu6;alua8oH;ke,l2;chew,pou0tab12;a0u4J;aXcUdSfRgPhan5joy,lOqNrMsuLtJvH;e0UisH;a9i4O;er,i5rH;a1HenGuB;e,re;iGol;ui7;ar9iB;a9eHra2ulf;nd1;or5;ang1oHu7;r0w;irc3lo0ou0BrIuH;mb1;oaGy42;b3ct;bJer9pH;hasiHow1;ze;a0Rody,rH;a5oiH;d1l;ap0eDuH;ci3Qde;rHt;ma0Ln;a0Le01iJo,rHwind3;aw,ed9oH;wn;agno0e,ff1g,mi2AsKvH;eHul9;rHst;ge,t;ab3bTcOlod9mant3pMru3JsLtH;iHoEu2X;lIngH;uiA;!l;ol2ua6;eHla5o0ro2;n0r0;a2Oe2XlJoHu0L;uHv1;ra9;aHo0;im;a3Bur0;af4bXcRduDep4fQliPmMnKpJra1WsiBtaGvH;eHol2;lop;aEiDlo7oE;oHy;te,un5;eIoH;liA;an;mCv1;a5i07o03raud,y;ei2iLla7oJrH;ee,yH;!pt;de,mHup3;missi2Ypo0;de,ma8ph1;aIrief,uH;g,nk;rk;mp4rk4uF;a09ea0h06i05l04oIrHurta1B;a2ea8ipp3;ales5e01habCinci6ll00mYnHrro6;cVdSfOju7no8qu1sLtJvH;eHin5;ne,r9;aHin27ribu8;in;er2iIoli29pi7titu8uH;lt;d1st;eJiIoHroFu0;rm;de,gu7rm;ss;eIoH;ne;mn,n0;eHlu6ur;al,i2;buBe,men5pH;e8i3ly;eDi6u6;r5xiB;ean0iT;rcumveFte;eIirp,oH;o0p;riAw;ncHre4t1ulk;el;aZeTi6lRoPrKuH;iIrHy;st,y;ld;aKeaJiIoad4;en;ng;stfeLtT;ke;il,l0Ymba0TrHth1;ne,rL;eHow;ed;!come,gLha2liKqueaJstItrHwild1;ay;ow;th;e2tt3;in,ui3;bysCckfi7ff3tH;he;b15c0Rd0Iff0Ggree,l0Cm09n03ppZrXsQttNuLvIwaC;it;eEoH;id;rt;gHto0X;meF;aGeBraD;ct;ch;pi7sItoH;niA;aJeHi03u7;mb3rt,ss;le;il;re;g0Gi0ou0rH;an9i2;eaJly,oiFrH;ai0o2;nt;r,se;aLi0FnItH;icipa8;eIoHul;un5y;al;ly0;aIu0;se;lga07ze;iJlH;e9oHu6;t,w;gn;ix,oH;rd;a02jMmiJoIsoH;rb;pt,rn;niHt;st1;er;ouIuB;st;rn;cKhie2knowled9quiHtiva8;es5re;ce;ge;ePliNoJrIusH;e,tom;ue;mHst;moIpH;any,liA;da8;ma8;te;pt;andNet,i6oJsH;coJol2;ve;liArt,uH;nd;sh;de;on",Adjective:"true¦0:A7;1:BH;2:A4;3:B7;4:AZ;5:9Y;6:7W;7:AK;8:AC;9:BF;A:79;B:AN;C:B1;D:B6;E:9N;a9Rb94c87d7Oe72f6Ig6Ah5Xi4Uj4Tk4Ql4Fm3Zn3Oo35p2Oquart7Ir2Ds1Dt14uSvOwFye29;aMeKhIiHoF;man6oFrth79u10;dA2zy;despreAQn w8Xs7Y;acked1HoleF;!sa7;ather1ReFll o6Uste1D;!k6;nt1Jst65te5;aHeGiFola5P;bBJce versa,gi3Kle;ng62rsa5N;ca1gBHluAK;lt0PnLpHrGsFttermoBA;ef99u4;b8Wge1; Hb31pGsFtiA6;ca7et,ide d4O;er,i7X;f4Yto da3;a0Fbecom2c0Bd04e02f01gu1XheaB5iXkn4LmUnTopp06pRrNsJtHus0wF;aFiel3I;nt0rra0P;app0eXoF;ld,uS;eHi36o56pGuF;perv06spect2;e1ok9D;en,ttl0;eFu6;cogn06gul2QlGqu0YsF;erv0olv0;at0ent2;aFrecede0E;id,rallel0;am0otic0;aFet;rri0tF;ch0;nFq25vers4;sur0terFv0O;eFrupt0;st0;air,inish0orese8X;mploy0nd2v8WxpF;ect0lain0;eHisFocume01ue;clFput0;os0;cid0rF;!a8HcovAha88ly2nea85privileg0sMwF;aFei97;tAy;hGircumcFonvinc2;is0;aFeck0;lleng0rt0;b1Zppeal2ssum2tteGuthorF;iz0;nd0;i46ra;aLeIhoHip 24oGrF;anspare1encha1i3;gethAleA2p notch,rpB;rny,ugh69;ena82mpGrF;r45tia5;eCo8F;leFst4H;nt0;a0Dc09e07h06i04ki03l01mug,nobbi4SoXpSqueami4StKuFymb8T;bHccin9i generis,pFr6;erFre7D;! dupAb,vi6R;du0li7Bp6AsFurb79;eq8Ztanda9M;aLeKi15o2NrGubboFy4L;rn;aightGin59ungF; o2K; fFfF;or7J;adfa9Dri7;lwa66tu7Q;arIeHirGlendBot Fry;on;it0;c3Ke1O;k6se; call0lub7mbAphistic13rHuFviT;ndFth18;proof;dBry;e5SipF;pe5shod;ll0n d7G;g2EnF;ceEg7istA;am3NeA;co1Wem6lfFn61re8; suf4Qi3Y;aGholFient36;ar6;rlFth2;et;cr0me,tisfac74;aOeIheumatoBiGoF;bu8Ott75y4;ghtFv4;-w2f6M;cJdu8ElInown0pro5ZsGtF;ard0;is40oF;lu3na1;e1Puc3Y;alcit8Me1ondi3;bBci4mpa1;aReOicayu8laNopuli8ErGuF;bl7Injabi,zzl0;eKiIoF;b7KfGmi42pFxi2I;er,ort7Q;a8uD;maFor,sti8va3;!ry;ciDexist2ma28paB;cBid;ac2Unt 3ErFti3;fe9ma3UtFv7M;!i3T;i2UrFss7H;anoBtF;-5OiF;al,s5M;bSffQkPld OnMrLthAutKverF;!aIbMdHhGni6Vseas,t,wF;ei6Urou6U;a5Te70;ue;ll;do1Der,si60;d3Kg27otu5P; bFbFe on o8go2li8;oa7Q;fashion0school;!ay; gua7NbFha5Kli8;eat;eHligGsF;ce8er0Qo19;at0;diFse;a1e1;aOeNiMoGuF;anc0de; moEnHrthFt6L;!eFwe7B;a7Arn;chaGdescri78prof2UsF;top;la1;ght6;arby,cessa5ighbor6xt;k0usiat2v4;aPeNiLoHuF;dIltiF;facet0p7;deHlGnFot,rbBst;ochro4Pth6;dy;rn,st;ddle ag0nF;dblYi;agAdiocEga,nac2rFtropolit4I;e,ry;cIgenta,inHj0Ekeshift,mmGnFri4Hscu5Tver17;da55y;ali4Eo4M;!stream;abEho;aOeLiIoFumber2;ngFuti1P;sta3MtF;erm,i4A;ghtGteraF;l,ry,te;heart0wei5G;ft-w2gFssAth4;al,eFi0L;nda5;nguBps0te6;apGind6nF;ow2;ut;itte5uniV;ce co0Ggno6Ell0Bm03nHpso 2PrF;a3releF;va1; YaXcoVdQePfOgrNhibi4Ji04nMoLsHtFvalu5E;a9eF;nDrdepe2F;a8iGolFuboI;ub7ve1;de,gF;nifica1;rdi5F;a3er;own;eriHiKluenUreq5A;pt,rt;eHiGoFul1L;or;e,re9;fiFpe22termi57;ni3;mpFnsideCrre9;le3;ccuCdeq57ne,ppr4D;fFsitu,vitro;ro1;mJpF;arHeGl12oFropA;li3r0Y;nd2rfe9;ti4;aGeFi15;d45nD;tuE;egGiF;c0VteC;al,iF;tiF;ma3;ld;aOelNiLoFuma8;a5meInHrrGsFur6;ti7;if47;e51o3O; ma39sF;ick;ghfalut2BspF;an42;liZpf2W;i5llow0ndGrdFtL; 04coEwork2;sy,y;aKener3Xiga34lob4oJraGuF;il1Jng ho;cGtF;ef2Pis;ef2O;ld34od;iFuc28;nf2L;aVeSiQlOoJrF;aGeFil6ug4;q3Xtf2I;gFnt3M;i7ra1;lk10oHrF; keeps,eFge0SmAtu3Vwa4G;go2i27s3L;liF;sh;ag4Gowe5uF;e1or3Z;e5nF;al,i3;d Gmini8rF;ti7ve1;up;bl0lDmili0Sr Fux;oFreach2;ff;aXfVlTmQnOqu4rMthere4veryday,xF;a9em3YpIquisi3traHuF;be44lF;ta1;!va2I;edRlF;icF;it;e9stF;whi7; Fough,tiE;rou3sui3;erGiF;ne1;ge1;dFe27oq30;er6;ficF;ie1;gAsF;t,ygo2;er;aWeMiHoGrFue;ea5owY;ci7mina1ne,r2Yt2ubQ;dact2Gfficult,m,sGverF;ge1se;creGePjoi1paCtF;a1in9;et,te; Nadp0UceMfiLgeneCliJmuEpeIreli9sGvoF;id,ut;pFtitu3ul1I;eCoF;nde1;ca3ghF;tf10;a1ni3;as0;facto;i6ngero0G;ar0Ae07h06i05l04oOrIuF;rmudgeon6stoma5teF;sy;ly;aIeHu1CystalF; cleFli8;ar;epy;fFv14z0;ty;erTgSloRmOnGrpoCunterclUveFy;rt;cLdJgr1YjIsHtrF;aFi3;dic0Vry;eq1Vta1;oi1ug4;esceFuM;nd2;a1NiD;atoDmensuCpF;ass1QulF;so5;ni4ss4;e1niza1;ci1H;ockwiD;rcumspe9vil;ee5intzy;leGrtaF;in;ba3;diac,efZ;aZePiLliJoGrFuck nak0;and new,eathtak2isk,on21;gGldface,naF; fi04fi04;us;nd,tF;he;gGpartisFzarE;an;tiF;me;autifNhiMlKnGsFyoM;iVtsell2;eGiFt;gn;aFfi04;th;at0oF;v0w;nd;ul;ckwards,rF;e,rT; priori,b13c0Zd0Tf0Ng0Ihe0Hl09mp7nt06p00rTsQttracti0MuLvIwF;aGkF;wa1B;ke,re;ant garGeraF;ge;de;diIsteEtF;heFoimmu8;nt07;re;to5;hGlFtu3;eep;en;bitJchiv4roItF;iFsy;cula3fiF;ci4;ga1;ra5;ry;pFt;aHetiz2rF;oprF;ia3;ll2re1;ing;iquFsy;at0e;ed;cohKiJkaHl,oGriFterX;ght;ne,of;li8;ne;ke,ve;olF;ic;ad;ain07ed,gressiIi7rF;eeF;ab7;le;ve;fGraB;id;ectGlF;ue1;ioF;na3; JaIeGvF;erD;pt,qF;ua3;ma1;hoc,infinitum;cuCquiGtu4u3;al;esce1;ra3;erSje9lPoNrKsGuF;nda1;e1olu3trF;a9uD;se;te;eaGuF;pt;st;aFve;rd;aFe;ze;ct;ra1;nt",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;e,m,y;!l,t;e0im;!'s",Preposition:"true¦-,aPbMcLdKexcept,fIinGmid,notwithstandiWoDpXqua,sCt7u4v2w0;/o,hereSith0;! whHin,oW;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h1ill,oward0;!s;an,ereby,r0;ough0u;!oM;ans,ince,o that,uch G;f1n0ut;!to;!f;! 0to;effect,part;or,r0;om;espite,own,u3;hez,irca;ar1e0oBy;sides,tween;ri7;bo8cross,ft7lo6m4propos,round,s1t0;!op;! 0;a whole,long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s",PhrasalVerb:"true¦0:92;1:96;2:8H;3:8V;4:8A;5:83;6:85;7:98;8:90;9:8G;A:8X;B:8R;C:8U;D:8S;E:70;F:97;G:8Y;H:81;I:7H;J:79;K:4G;a9Gb7Vc6Sd6Me6Kf5Ig51h4Ciron0j48k41l3Fm32n2Zo2Xp2Dquiet Hr1Ys0Lt00uYvacuu6RwOyammerBzL;ero Dip MonL;e0k0;by,ov9up;aReNhMiLor0Nrit1A;mp0n3Gpe0r5s5;ackAeel Di0T;aMiLn34;gh 3Xrd0;n Dr L;do1in,oJ;it 7Ak5lk Mrm 6Ash Lt84v60;aw3do1o7up;aw3in,oC;rgeBsL;e 2herE;a01eZhWiSoRrNuLypQ;ckErn L;do1in,oJup;aMiLot0y 31;ckl80p F;ck HdL;e 5Z;n7Xp 3Fs5K;ck NdMe Lghten 6me0p o0Sre0;aw3ba4do1in,up;e Iy 2;by,oG;ink Mrow L;aw3ba4in,up;ba4ov9up;aLe 78ll63;m 2r 5N;ckBke Mlk L;ov9shit,u48;aLba4do1in,leave,o66up;ba4ft9pa6Aw3;a0Wc0Ue0Nh0Ji0Gl0Am09n08o07p02quar5HtRuPwL;earNiL;ngMtch L;aw3ba4o8L; by;cLi6Cm 2ss0;k 65;aSeRiQoOrLud36;aigh2Eet76iL;ke 7Tng L;al6Zup;p Lrm2G;by,in,oG;cKnKr 2tc4O;p F;cKmp0nd MrLveAy 2P;e Ht 2M;ba4do1up;arKeOiNlMrLurB;ead0ingBuc5;a49it 6I;c5ll o3Dn 2;ak Fe73ll0;aKber 2rt0und like;ap 5Wow Duggl5;ash 6Ooke0;eep OiLow 6;cMp L;o6Eup;e 69;in,oL;ff,v9;de1Agn 4OnLt 6Hz5;gLkE; al6Ble0;aNoLu5X;ot Lut0w 7N;aw3ba4f48oC;cKdeEk6FveA;e Qll1Ond Prv5tL; Ltl5K;do1foMin,o7upL;!on;ot,r60;aw3ba4do1in,o4Wup;oCto;al67out0rL;ap66ew 6K;ilAv5;aYeViToPuL;b 5Zle0n Lstl5;aMba4do1inLo2Jth4Ou5Q;!to;c2Xr8w3;ll Not MuL;g3IndA;a2Wf3Po7;ar8in,o7up;ng 69p oLs5;ff,p19;aLelAinEnt0;c6Id L;o3Oup;cKt0;a00eZiXlUoRrPsyc35uL;ll Nn5Lt L;aLba4do1in,oJto48up;pa4Ew3;a3Kdo1in,o22to46up;attleBess LiOop 2;ah2Fon;iMp Lr50u1Hwer 6O;do1in,o6Oup;nt0;aMuL;gEmp 6;ce u21y 6E;ck Lg0le 4Bn 6p5C;oJup;el 5OncilE;c54ir 3An0ss NtMy L;ba4oG; Hc2R;aw3ba4in,oJ;pLw4Z;e4Yt D;aMerd0oL;dAt54;il Hrrow H;aUeRiQoMuL;ddl5ll I;cKnkeyNp 6uthAve L;aLdo1in,o4Mup;l4Ow3; wi4L;ss0x 2;asur5e3TlMss L;a21up;t 6;ke Mn 6rLs2Ax0;k 6ryA;do,fun,oCsure,up;a03eWiRoMuL;ck0st I;aOc4Gg NoLse0;k Lse4E;aft9ba4do1forw38in57o10u47;in,oJ;d 6;e OghtNnMsLve 01;ten F;e 2k 2; 2e47;ar8do1in;aNt MvelL; oC;do1go,in,o7up;nEve L;in,oL;pLut;en;c5p 2sh MtchBughAy L;do1o5A;in4Qo7;eNick Mnock L;do1oCup;oCup;eMy L;in,up;l Ip L;aw3ba4do1f05in,oJto,up;aNoMuL;ic5mpE;ke3Tt H;c44zz 2;a02eXiUoQuL;nMrrLsh 6;y 2;keMt L;ar8do1;r H;lLneErse3L;d Le 2;ba4dLfast,o25up;ear,o1;de Mt L;ba4on,up;aw3o7;aLlp0;d Nl Ir Lt 2;fLof;rom;f11in,o1WuX;cKm 2nMsh0ve Lz2Q;at,it,to;d Mg LkerQ;do1in,o2Uup;do1in,oL;ut,v9;k 2;aZeUive Sloss IoNrMunL; f0S;ab hold,in44ow 2V; Lof 2J;aNb1Nit,oMr8th1JuL;nd9;ff,n,v9;bo7ft9hQw3;aw3bLdo1in,oJrise,up,w3;a4ir2I;ar 6ek0t L;aLb1Gdo1in,o1Dr8up;cMhLl2Hr8t,w3;ead;ross;d aLng 2;bo7;a0Fe08iZlVoRrNuL;ck Le2P;ar8up;eMighten LownBy 2;aw3oG;eLshe29; 2z5;g 2lNol Lrk I;aLwi22;bo7r8;d 6low 2;aMeLip0;sh0;g 6ke0mLrLtten H;e F;gSlQnOrMsLzzle0;h F;e Lm 2;aw3ba4up;d0isL;h 2;e Ll 1V;aw3fQin,o7;ht ba4ure0;eQnMsL;s 2;cNd L;fLoG;or;e D;d06l 2;cPll Lrm0t1I;aNbMdo1in,oLsho0Gth0Avictim;ff,ut,v9;a4ehi2P;pa0D;e L;do1oGup;at Ldge0nd 13y5;in,o7up;aPi1IoOrL;aMess 6op LuO;aw3b04in,oC;gBwB; Iubl1C;m 2;a0Bh06l03oPrMut L;aw3ba4do1oCup;ackBeep MoLy0;ss Dwd0;by,do1in,o0Vup;me OoMuntL; o2B;k 6l L;do1oG;aSbRforPin,oOtLu0P;hMoLrue;geth9;rough;ff,n,ut,v9;th,wL;ard;a4y;paLr8w3;rt;eaMose L;in,oCup;n 6r F;aOeMiL;ll0pE;ck Der Lw F;on,up;t 2;lSncel0rPsNtch MveE; in;o1Oup;h Dt L;doubt,oG;ry MvL;e 09;aw3oJ;l Lm H;aMba4do1oJup;ff,n,ut;r8w3;a0We0NiteAl0Go05rRuL;bblOckl06il0Elk 6ndl06rMsLtNy FzzA;t 01;n 0IsL;t D;e I;ov9;anXeaViMush L;oGup;ghRng L;aOba4do1forNin,oMuL;nd9p;n,ut;th;bo7lLr8w3;ong;teL;n 2;k L;do1in,o7up;ch0;arUg 6iSn5oQrOssNttlMunce Lx D;aw3ba4;e 6; ar8;e H;do1;k Dt 2;e 2;l 6;do1up;d 2;aQeed0oLurt0;cNw L;aw3ba4do1o7up;ck;k L;in,oC;ck0nk0stA; oRaOef 2lt0nd L;do1ov9up;er;up;r Mt L;do1in,oCup;do1o7;ff,nL;to;ck Qil0nNrgMsL;h D;ainBe D;g DkB; on;in,o7;aw3do1in,oCup;ff,ut;ay;ct FdRir0sk NuctionA; oG;ff;ar8o7;ouL;nd; o7;d L;do1oLup;ff,n;wn;o7up;ut","Noun|Gerund":"true¦0:27;1:26;2:1X;3:1J;4:1Z;a25b1Oc1Cd16en14f0Yg0Wh0Ti0Rjog20k0Pl0Lm0In0Go0Cp05ques08rWsFtBu9volunt15w5y17zo2;a7ed1Si3or6r5;ap1Oest1Ci1;ki0r1O;i1r2s1Utc1U;nder5pri23;st1Mta4;al4e7hin4i6ra5y1J;c4di0i2v0Z;mi0p1H;a1Ys1;aKcHeGhEin1PkatClZmo4nowBpeAt8u6w5;ea3im1U;f02r5;fi0vi0J;a1Lretc1Ju5;d1BfJ;l0Xn1C;b6i0;eb5i0;oar19;ip15o5;rte2u1;a1r0At1;h6o3re5;a1He2;edu0Ooo0O;i0Nyi0;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1oub1r6umOw5;elB;awi0es04i5;n4vi0;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng",ProperNoun:"true¦barbie,c4diego,e3f2iron maiden,kirby,m0nis,riel,stevens;ercedes,i0;ckey,ssy;inn,lorence,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:77;1:64;2:6J;3:6M;4:5V;a6Bb56c4Ld4Be47f3Zg3Kh3Ci33j2Yk2Hl25m1Nn1Do1Ap0Xq0Vr0Os05tRuQvLwDxiBy9z5;a7h5i4Puri4R;a5e5ongsh0;ng3K;greb,nzib5J;ang2e5okoha3Vunfu;katerin3Krev0;a5n0R;m5Kn;arsBeAi6roclBu5;h0xi,zh5S;c7n5;d5nipeg,terth4;hoek,s1N;hi62kl3D;l66xford;aw;a8e6i5ladivost5Polgogr6O;en3lni6V;ni24r5;n2o3saill4Q;lenc4Zncouv3Vr3ughn;lan bat1Erumqi,trecht;aFbilisi,eEheDiBo9r7u5;l23n66r5;in,ku;i5ondh65;es54poli;kyo,m32ron1Rulo5;n,uS;an5jua3l2Wmisoa6Era3;j4Wshui; hag65ssaloni2K;gucigal28hr0l av1W;briz,i6llinn,mpe59ng5rtu,shk2U;i3Hsh0;an,chu1n0p2Hyu0;aEeDh8kopje,owe1It7u5;ra5zh50;ba0It;aten is58ockholm,rasbou6Auttga2Y;an8e6i5;jiazhua1llo1m60y0;f53n5;ya1zh4K;gh3Nt4T;att48o1Yv47;cramen18int ClBn5o paulo,ppo3Urajevo; 7aa,t5;a 5o domin3H;a3fe,m1O;antonBdie3Ffrancisco,j5ped3Qsalvad0L;o5u0;se;em,t lake ci5Iz28;lou5Bpeters27;aAe9i7o5;me,sar5t5C;io;ga,o5yadh;! de janei3H;cife,ims,nn3Lykjavik;b4Uip4lei2Knc2Rwalpindi;ingdao,u5;ez2i0R;aFeEhDiCo9r7u6yong5;ya1;eb5Bya1;a5etor3O;g54to;rt5zn0; 5la4Eo;au prin0Nelizabe26sa04;ls3Rrae5Ctts28;iladelph3Inom pe1Coenix;ki1r23tah tik3G;dua,lerZnaji,r4Qt5;na,r34;ak46des0Lm1Or6s5ttawa;a3Xlo;an,d07;a7ew5ing2Hovosibir1Lyc; 5cast38;del26orlea46taip16;g8iro4Yn5pl2Yshv35v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0Y;aFeCi9o6u5;mb2Cni28sc40;gadishu,nt6s5;c15ul;evideo,pelli1Tre31;ami,l6n16s5;kolc,sissauga;an,waukee;cca,d5lbour2Omph43ndo1Essi3;an,ell5i3;in,ín;cau,drAkass2Tl9n8r5shh4B;aca6ib5rakesh,se2M;or;i1Ty;a4FchFdal10i48;mo;id;aDeAi8o6u5vSy2;anMckn0Pdhia3;n5s angel27;d2g bea1O;brev2Ce3Mma5nz,sb2verpo29;!ss28; ma3Ai5;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Gn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd37rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Zi2H;che2d5;ianap2Mo20;aAe7o5yder2W; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Oupe;ld coa1Bthen5;bu2S;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal29es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,nkirk,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Zr es sala1KugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1Q;lo7n6penhag0Ar5;do1Ok;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr14;ch8sha,zh07;gliari,i9lga8mayenJn6pe town,r5tanO;acCdiff;ber1Ac5;un;ry;ro;aWeNhKirmingh0WoJr9u5;chareTdapeTenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iCl9ng8r5;g6l5n;in;en;aluru,hazi;fa6grade,o horizon5;te;st;ji1rut;ghd0BkFn9ot8r7s6yan n4;ur;el,r07;celo3i,ranquil09;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a05b02cc01ddis aba00gartaZhmedXizawl,lSmPnHqa00rEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a8c5kaOtwerp;hora6o3;na;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 7buquerq6eppo,giers,ma5;ty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦a00bYcUdTeSfRgMhLiJjfk,kHlFmDnBorAp8r7s6t3u2vostok,wake isCy0;a0yz;kutGngtze;laanbaatar,pT;ahiti,h0;amWe 0;bronx,hamptons;akhalIeine,fo,oho,under5yd;ed sea,io grande;acifWek,h0itcairn;l,x;ange county,d,inoco;ew eng0ile;land;a0co,ekong,idIuc;gadSlibu,nhattS;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianLochina;arlem,kg,nd,ovd;a3odavari,re0;at 0enwich;brita0lakC;in;ngAy village;co,ra;urope,verglad8;anube,en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;driadic,frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,on3som3t0week end,yesterd4;mr1o0;d2morrow;!w;ed0;ay",Duration:"true¦centurAd8h7m5q4se3w1y0;ear8r8;eek0k7;!end,s;ason,c5;tr,uarter;i0onth3;llisecond2nute2;our1r1;ay0ecade0;!s;ies,y",FemaleName:"true¦0:IS;1:IW;2:I5;3:I4;4:IM;5:I9;6:JD;7:GQ;8:J9;9:J5;A:HD;B:HN;C:IE;D:J2;E:II;F:H2;G:C4;H:HP;aGIbFDcDJdCSeBIfB0gAAh9Qi9Dj8Ck7Cl5Wm46n3Ko3Gp34qu33r2Bs16t0Fu0Dv03wWxiUyPzI;aMeJineb,oIsof2;e3Rf2la,ra;h3iLlJna,ynI;ab,ep;da,ma;da,h3iIra;nab;aLeKi0GolB3uJvI;etAonDH;i0na;le0sen2;el,gm3Gn,rGAs8T;aoIme0nyi;m5YyAA;aNendDRhiD8iI;dele9lKnI;if45niIo0;e,f44;a,helmi0lIma;a,ow;ka0nB;aOeLiIusa5;ck82kJlAole7viI;anGenIQ;ky,toriBE;da,lA5rIs0;a,nIoniGV;a,iFH;leInesGV;nI7rI;i1y;g9rIxGW;su5te;aZeVhSiOoMrJuIy3;i,la;acIPiIu0L;c2na,sI;hGta;nIr0H;iGya;aKffaEGnIs6;a,gtiI;ng;!nFHra;aJeIomasi0;a,l9Lo87res1;l2ndolwethu;g9Co85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe3iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlett,e0ChYiUkye,neza0oStOuJyI;bI2lvi1;ha,mayI5ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHQr5;b2fiA3m0MnIphi1;d3ia,ja,ya;er3lKmon1nJobh8MtI;a,i;dy;lEHv2;aNeJirIo0risEZy5;a,lDD;ba,e0i5lKrI;iIr6Gyl;!d8Efa;ia,lDP;hd,iNki3nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7YvI;da,inj;e0ife;en1i0ma;anA0bMd3Kh1PiBkLlKmJnd3rIs6vannaC;aCi0;ant6i3;lDEma,ome;ee0in8Ou3;in1ri0;a05e00hYiVoIuthDC;bTcSghRl8GnQsKwJxI;anAUie,y;an,e0;aJeIie,lD; merBIann8ll1marD6t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8B;hel63io;bDFer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG7oI;da,n1L;an0bKemGgi0iJnIta,y0;a86ee;han81na;a,eI;cE5kaC;bi0chJe,i0mo0nIquEFy0;di,ia;aEDelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCL;scil3LyamvaB;lly,rt2;ilome0oebe,ylI;is,lis;ggy,nelope,r5t3;ige,m0UnLo5rvaDBtJulI;a,etAin1;ricIt4T;a,e,ia;do3i07;ctav2dJfCUis6lIphCUumBYyunbileg;a,ga,iv2;eIvA9;l2tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBJkLlaKna,sIta,vi;anIha;ur;!y;a,iDNki;hoHk9SolI;a,eDE;!mh;hir,lIna,risFsreE;!a,lBO;asuMdLh2i6Cl5nKomi8rgEJtIzanin zah3;aIhal4;li1s6;cy,etA;e9iEP;nngu30;a0Ackenz4e02iNoKrignayani,uriD8yI;a,rI;a,lOna,tH;bi0i3llBDnI;a,iI;ca,ka,qCY;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEI;!l,nB;dy,eIh,n4;nhHrva;aLdKiCKlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5EgOi,lLrI;edi77iJjem,on,yI;em,l;em,sF;an4iIliF;nIsC9;a,da;!an,han;b0DcANd0Be,g09ha,i08ja,l06n04rMsoum5YtLuJv80x9FyIz4;bell,ra,soB4;de,rI;a,eE;h8Cild1t4;a,cYgUiLjor4l7Qn4s6tKwa,yI;!aIbe6Uja9lA9;m,nBC;a,ha,in1;!aKbC6eJja,lDna,sIt62;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliACcJeduarBfern5EjIlui5W;o6Dul2;ecil2la3;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Vi75y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD6on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d2la,nI;!a,dJeBCnIsCG;!a,eBB;a,sCE;aCRcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a84i8;lIn1t7;ei;!in1;aTbb98dSepa,lNnKsJv2zI;!a,be5KetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9We;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c2t2;e2NlCB;la,nIra;a,ie,o3;a,or1;a,gh,laI;!ni;!h,nI;a,d3e,n5O;cPdon93iOkes6mi96na,rNtKurJvIxmi,y5;ern1in2;a,e53ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAFoOrKyI;lIra;a,ee,ie;istIy6B;a,en,iJyI;!na;!e,n58;nul,ri,urtnAV;aPerOlAUmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei3ongordzol;dij1w5;el7MiLjsi,lKnJrI;a,i,ri;d3na,za;ey,i,lB8s4y;ra,s6;bi7cAEdiat7EeAXiSlRmQnyakuma1BrOss6HtLvi7yI;!e,lI;a,eI;e,i8H;a6BeJhIi4MlDri0y;ar69er69ie,leErAXy;!lyn8Cri0;a,en,iIl5Qoli0yn;!ma,nGsF;a5il1;ei8Ai,l4;a,tl6I;a09eZiWoOuI;anMdLliIst61;a8DeIsF;!n9tI;!a,te;e5Hi3Iy;a,i7;!anOcelDdNelHhan7NleMni,sJva0yI;a,ce;eIie;fIlDph5S;a,in1;en,n1;i8y;!a,e,n40;lIng;!i1DlI;!i1C;anOle0nLrKsI;i88sI;!e,i87;i,ri;!a,elHif2AnI;a,etAiIy;!e,f28;a,e89iJnI;a,e88iI;e,n1;cNda,mi,nJque4UsminGvie3y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob7Z;!n9H;do3;belIdo3;!a,e,l37;a72en1i0ma;di3es,gr6Tji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin29;da,ll4rten21snI;a,i9K;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1AiKlJnriet7rmi9sI;sa,t19;en2Qga,mi;di;bi2Bil8ClOnNrKsJtIwa,yl8C;i5Nt4;n5Tti;iImo4Xri4Y;etI;!te;aCnaC;a,ey,l4;a03eXiSlQoOrLunKwI;enIyne1O;!dolD;ay,el;acieJetIiselB;a,chE;!la;ld19ogooI;sh;adys,enIor2yn2G;a,da,na;aLgi,lJna,ov84selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Ni,m3Atru86;etAi4S;a,eIna;s25vieve;ma;bJle,mIrnet,yH;al5Ji5;i5BrielI;a,l1;aUeRiQlorPoz2rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0N;n1s5X;!ca;a,enc2;en,o0;lJn0rnI;anB;ec2ic2;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no3oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c2da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh2iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr2nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d3nI;!a,e;hl2i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th2;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat3;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a3er3ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d3elHtI;al,elH;cJlI;esAi42;el2ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a3o3ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el2;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!l1;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar2;el;aMberLeliKiIy;e,l2naI;!ta;a,ja;!ly;hHiJl2nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c2sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c2is6jaLksaLna,sKxI;aIia;!nd3;ia,saI;nd3;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",Person:"true¦a0Ob0Hc08d05e02g01hZinez,jYkVlSmMnKoJpHr9s7t4v2w0xzibit,yanni;ar0ednesday adams,ill.i.am,oode;hol,rO;a0oltaiO;lentino rossi,n go7;a1heresa may,i0yra banks;ger woods,mbaQ;tum,ylor;a0carlett johanss03hakespeaJinbad,lobodan milosevic,ocratM;ddam hussain,ntigold;a6e5i4o2u0za;mi,n dmc,paul,sh limbau0;gh;d stewart,nald0thko;inho,o;hanYvaldo;ese witherspoVil9mbrandt;ffi,y roma03;a0e08ip07lato,oe,uff daddy;lm06ris hiltS;prah winfrWra;as,e0iles crane,ostradamP; yo,l3ttI;acklemo4essia3i1o0ubarek;by,lie3net,rrissS;randa ju0tt romnR;ly;en;re;ady gaga,e0iberaT;bron jam0e;es;anye west,e1iefer suther0obe bryant;land;ats,ndall,sha;aime,effersCk rowling;a0itlPulk hogan;lle berry,rrisA;ast9otye;ff1m0nya,zekiel;eril lagasse,inem;ie;a1e0ick wolf,rake;gas,nzel washingt4;lt3nB;ar5h3lint2o0;nfuci0olio;us;on;aucCy0;na;dinal wols1son0;! palm9;ey;a5e3o2ro0;ck,n0;te;no;ck,yon0;ce;nksy,rack obama;ristot1shton kutch0;er;le",LastName:"true¦0:9G;1:9W;2:9Y;3:9O;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s2;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi3j6ka3IoGrFsui,uD;om50rD;c3n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps2s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv3zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8infeld,mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins2;!on;bei0LcEes,vDzzo;as,e8;ci,hards2;ag3es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss2;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym3;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx2;ic,ov6X;ls1miD;!n1;ils2mD;co42ec;gy,kaEray3varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h3lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h3iSlQnez48oJrGuEvar3woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss2;anEnsD;en,on,t2;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks2obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m3ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers2;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw2;o,staf2Utierr7zm3;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m3;calv9zale0H;aj,i;bs2l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm3uD;cDent9ji3E;hs;ntaDrt6urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s2;er,is2wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g3he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w3;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e2uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em3liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm3tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder2mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy3;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss2;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl3tchis2yD;aEd6;in;la;aEsl3;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s2;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",Honorific:"true¦director1field marsh2lieutenant1rear0sergeant major,vice0; admir1; gener0;al",Adverb:"true¦a07b04dZeXfSheQinPjustOkinda,likewiYmMnJoEpCquite,r9s5t2u0very,well;ltima00p0; to,wards5;h1iny bit,o0wiO;o,t6;en,us;eldom,o0uch;!me1rt0; of;how,times,w0B;a1e0;alR;ndomQth04;ar excellenEer0oint blank; Khaps;f3n0utright;ce0ly;! 0;ag04moW; courFten;ewIo0; longVt 0;onGwithstanding;aybe,eanwhiMore0;!ovS;! aboW;deed,steX;lla,n0;ce;or2u0;l8rther0;!moJ; 0evK;exampCgood,suH;n mas0vI;se;e0irect2; 2fini0;te0;ly;juAtrop;ackward,y 0;far,no0; means,w; GbroFd nauseam,gEl7ny5part,s4t 2w0;ay,hi0;le;be7l0mo7wor7;arge,ea6; soon,i4;mo0way;re;l 3mo2ongsi1ready,so,togeth0ways;er;de;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aXbTcReNhowMiEjust00noBo9p8supposing,t5wh0yet;e1il0o3;e,st;n1re0thN; if,by,vM;evL;h0il,o;erefOo0;!uU;lus,rovided th9;r0therwiM;! not; mattEr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mIcaForder t0;h0o;at;! 0;only,t0w0;hen;!ev3;ith2ven0;! 0;if,tB;er;o0uz;s,z;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s",Determiner:"true¦aBboth,d9e6few,le5mu8neiDplenty,s4th2various,wh0;at0ich0;evC;a0e4is,ose;!t;everal,ome;!ast,s;a1l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er","Adj|Present":"true¦a07b04cVdQeOfKhollJidRlFmDnarrJoCpAqua9r8s4t2utt3w0;aLet,ro0;ng,ug08;end0hin;er;e2hort,l1mooth,our,pa9tray,u0;re,speT;i2ow;cu6da01leRpaM;eplica00ig01;ck;aGr0;eseTime,omU;bscu1pen,wn;atu0e3odeG;re;a2e1i0;gTve;an;st,y;ow;a2i1oul,r0;ee,inge;rm;iHke,ncy,st;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry,ull;le;ffu9re6;fu8libe0;raE;alm,l5o0;mpleCn3ol,rr1unterfe0;it;e0u7;ct;juga8sum7;ea1o0;se;n,r;ankru1lu0;nt;pt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3D;1:3R;2:3G;3:2I;a3Vb3Ec35d2Ve2Of2Bg1Xh1Mi1Gj1Fk1Cl14m0Yn0To0Sp0Jqu0Hr08sItDug0vBw5y4za0R;el11ouO;ary,e7hi6i4ry;ck0Dde,l4n1ry,se;d,y;ny,te;a4i3T;k,ry;a4erda2ulgar;gue,in,st;a7en2Zhi6i5ough,r4;anqu2Een1ue;dy,g38me0ny,r04;ck,rs2A;ll,me,rt,wd3K;aScaQePhNiMkin0ClJmHoFpEt7u5w4;eet,ift;b4dd0Xperfi22rre2A;sta28t3;a9e8iff,r5u4;pVr1;a5ict,o4;ng;ig2Xn0O;a1ep,rn;le,rk,te0;e1Ti2Xright0;ci20ft,l4on,re;emn,id;a4el0;ll,rt;e5i4y;g2Om10;ek,nd2V;ck25l0mp3;a4iSrill,y;dy,l02rp;ve0Kxy;n1Lr4;ce,y;d,fe,int0l1Jv0W;a9e7i6o4ude;mantic,o1Asy,u4;gh,nd;pe,t1Q;a4d,mo0B;dy,l;gg5iGndom,p4re,w;id;ed;ai2i4;ck,et;hoBink,lAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouTud;ey,k0;liYor;ain,easa2;ny;dd,i0ld,ranM;aive,e6i5o4u16;b3isy,rm10sy;bb0ce,mb3;a4r1w;r,t;ad,e6ild,o5u4;nda13te;ist,o1;a5ek,l4;low;s0ty;a9e8i7o4ucky;f0Ln5o17u4ve0w11y0P;d,sy;e0g;ke0l,mp,tt3ve0;e1Swd;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fZsita2;dy,rYv4;en0y;nd15ppy,r4;d4sh;!y;aGenFhDiClBoofy,r4;a9e7i6o4ue11;o4ss;vy;m,s0;at,e4y;dy,n;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiT;u1y;aEeeb3iAl9o7r6u4;ll,n4r0P;!ny;aEesh,iend0;a4nd,rmF;my;at,ir9;erce5nan4;ciB;! ;le;r,ul4;ty;a7erie,sse5v4xtre0C;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i5u4;mb;r6vi5z4;zy;ne;e,ty;a4ep,nB;d4f,r;!ly;ppRrk;agey,h9l8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;evLou1;e4il0;ap,e4;sy;aIiGlDoBr6u4;ff,r0sy;ly;a7i4oad;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd","Person|Adj":"true¦brown,du2earnest,frank,mi2r0sa1;a0ich,u1;ndy;sty",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Verb:"true¦born,cannot,gonna,has,keep tabs,msg","Adj|Gerund":"true¦0:2G;1:2I;2:26;3:24;4:21;5:2E;6:28;7:23;a25b20c1Id15e0Zf0Pg0Jh0Ii0Bjud1Yl08m05o01pWrQsFtAup9v8w0Qyiel4;ar5eZ;lif0s02;aXeBhr9i3ouc7r8wis0;e02oub2us0yi1;ea0Ni8;l2vi1;l2mp0;atisf5creec7enten1Vhoc0Fkyrocke0lo14oGpFtBu9we8;e13l2;pp1Lr8;gi1pri6roun4;a9ea24i8ri0Bun1D;mula0r3;gge3r8;t2vi1;ark2ee4;a8ot7;ki1ri1;aCe9ive0o8us7;a3l2;defi14fres7ig14laFmai14s0v8war4;ea2itali8ol0R;si1zi1;gi1ll5mb2vi1;a5eAier1Elun19r8un1K;e8o12;ce4s6vai2;n4rple8;xi1;ffsApNut9ver8wi1;arc7lap0Hp09ri4whel1L;goi1l5st0Y;et0;eande3i9o0Fu8;mb2;s6tiga0;a9i8o0C;fesa0Bmi0vi1;cKg0Vs0;mDn8rri0C;cBsAt9vi8;go1Gti1;e15imida0;pi3ul0;orpo1Drea6;po6;arrowi1ea2orrif5umilia0;lCr8;a0ipZo9uel8;i1li1;undbrea8wi1;ki1;a3ea0Z;aGetc7it0lDoBr9ulf8;il2;ee0Yigh8ust12;te04;r8un4;ebo4th0H;a9o8;a0we3;mi1tte3;di1scina0;mBn9x8;ac0ci0is0plo4;ab2c8du3ga04sT;han0oura03;barras6er02p8;owe3;aJeCi8;s8zz5;appoin0gus0sen0t8;r8u0N;ac0es6;biliDcCfiMgra4mBpres6serAv8;asCelo8;pi1;vi1;an4eaI;a5liH;ta0;maOri1s7un0;aOhLlo6o8ripp2ut0;mEn8rrespon4;cerCfBspi3t8vinQ;in9r8;as0ibu0ol2;ui1;lic0u6;ni1;fCmBp8;e9ro8;mi6;l2ti1;an4;or0;a8il2;llen8rQ;gi1;lOptiva0ri1;eBin4lin4o9rui6u8;d4st2;i2oLri1un8;ci1;coJ;bsoQcLgonJlarImGppea2rEs8;pi3su3to8;n9un4;di1;is7;hi1;ri1;res0;li1;aBu6;si1;mi1;i8zi1;zi1;c8hi1;ele9ompan5;yi1;ra0;ti1;rbi1;ng","Person|Verb":"true¦b8ch7dr6foster,gra5hope,ja9lan4ma2ni9ollie,p1rob,s0wade;pike,t5ue;at,eg,ier2;ck,r0;k,shal;ce;ce,nt;ew;ase,u1;iff,l1ob,u0;ck;aze,ossom","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Ao=36,No="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",jo=No.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Io=function(e){if(void 0!==jo[e])return jo[e];let t=0,n=1,r=Ao,a=1;for(;n=0;n--,a*=Ao){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},xo=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=Co(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=To(Po[e]);Go.test(e)?Object.keys(t).forEach((t=>{if(zo[t]=e,"Noun|Verb"===e){let e=Vo(t,Ho);zo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Bo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","3","<\\3","=("].forEach((e=>Bo[e]="Emoticon")),delete Bo[""],delete Bo.null,delete Bo[" "];const Lo="Singular";var $o={beforeTags:{Determiner:Lo,Possessive:Lo,Acronym:Lo,Noun:Lo,Adjective:Lo,PresentTense:Lo,Gerund:Lo,PastTense:Lo,Infinitive:Lo,Date:Lo,Ordinal:Lo,Demonym:Lo},afterTags:{Value:Lo,Modal:Lo,Copula:Lo,PresentTense:Lo,PastTense:Lo,Demonym:Lo,Actor:Lo},beforeWords:{the:Lo,with:Lo,without:Lo,of:Lo,for:Lo,any:Lo,all:Lo,on:Lo,cut:Lo,cuts:Lo,increase:Lo,decrease:Lo,raise:Lo,drop:Lo,save:Lo,saved:Lo,saves:Lo,make:Lo,makes:Lo,made:Lo,minus:Lo,plus:Lo,than:Lo,another:Lo,versus:Lo,neither:Lo,about:Lo,favorite:Lo,best:Lo,daily:Lo,weekly:Lo,linear:Lo,binary:Lo,mobile:Lo,lexical:Lo,technical:Lo,computer:Lo,scientific:Lo,security:Lo,government:Lo,popular:Lo,formal:Lo,no:Lo,more:Lo,one:Lo},afterWords:{of:Lo,system:Lo,aid:Lo,method:Lo,utility:Lo,tool:Lo,reform:Lo,therapy:Lo,philosophy:Lo,room:Lo,authority:Lo,says:Lo,said:Lo,wants:Lo,wanted:Lo,is:Lo,can:Lo,wise:Lo}};const So="Infinitive";var Mo={beforeTags:{Modal:So,Adverb:So,Negative:So,Plural:So},afterTags:{Determiner:So,Adverb:So,Possessive:So,Reflexive:So,Preposition:So,Cardinal:So,Comparative:So,Superlative:So},beforeWords:{i:So,we:So,you:So,they:So,to:So,please:So,will:So,have:So,had:So,would:So,could:So,should:So,do:So,did:So,does:So,can:So,must:So,us:So,me:So,let:So,even:So,when:So,help:So,he:So,she:So,it:So,being:So,bi:So,co:So,contra:So,de:So,inter:So,intra:So,mis:So,pre:So,out:So,counter:So,nobody:So,somebody:So,anybody:So,everybody:So},afterWords:{the:So,me:So,you:So,him:So,us:So,her:So,them:So,it:So,himself:So,herself:So,itself:So,myself:So,ourselves:So,themselves:So,something:So,anything:So,a:So,an:So,up:So,down:So,by:So,out:So,off:So,under:So,what:So,all:So,to:So,because:So,although:So,after:So,before:So,how:So,otherwise:So,together:So,though:So,into:So,yet:So,more:So,here:So,there:So}},Jo={beforeTags:Object.assign({},Mo.beforeTags,$o.beforeTags,{}),afterTags:Object.assign({},Mo.afterTags,$o.afterTags,{}),beforeWords:Object.assign({},Mo.beforeWords,$o.beforeWords,{}),afterWords:Object.assign({},Mo.afterWords,$o.afterWords,{})};const Wo="Adjective";var qo={beforeTags:{Determiner:Wo,Possessive:Wo,Hyphenated:Wo},afterTags:{Adjective:Wo},beforeWords:{seem:Wo,seemed:Wo,seems:Wo,feel:Wo,feels:Wo,felt:Wo,stay:Wo,appear:Wo,appears:Wo,appeared:Wo,also:Wo,over:Wo,under:Wo,too:Wo,it:Wo,but:Wo,still:Wo,really:Wo,quite:Wo,well:Wo,very:Wo,how:Wo,deeply:Wo,hella:Wo,profoundly:Wo,extremely:Wo,so:Wo,badly:Wo,mostly:Wo,totally:Wo,awfully:Wo,rather:Wo,nothing:Wo,something:Wo,anything:Wo,not:Wo,me:Wo,is:Wo},afterWords:{too:Wo,also:Wo,or:Wo}};const Ko="Gerund";var Ro={beforeTags:{Adverb:Ko,Preposition:Ko,Conjunction:Ko},afterTags:{Adverb:Ko,Possessive:Ko,Person:Ko,Pronoun:Ko,Determiner:Ko,Copula:Ko,Preposition:Ko,Conjunction:Ko,Comparative:Ko},beforeWords:{been:Ko,keep:Ko,continue:Ko,stop:Ko,am:Ko,be:Ko,me:Ko,began:Ko,start:Ko,starts:Ko,started:Ko,stops:Ko,stopped:Ko,help:Ko,helps:Ko,avoid:Ko,avoids:Ko,love:Ko,loves:Ko,loved:Ko,hate:Ko,hates:Ko,hated:Ko},afterWords:{you:Ko,me:Ko,her:Ko,him:Ko,them:Ko,their:Ko,it:Ko,this:Ko,there:Ko,on:Ko,about:Ko,for:Ko}},Uo={beforeTags:Object.assign({},qo.beforeTags,Ro.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},qo.afterTags,Ro.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},qo.beforeWords,Ro.beforeWords,{is:"Adjective",was:"Adjective",of:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},qo.afterWords,Ro.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Qo={beforeTags:{Determiner:void 0,Cardinal:"Noun",PhrasalVerb:"Adjective"}};var _o={beforeTags:Object.assign({},qo.beforeTags,$o.beforeTags,Qo.beforeTags),afterTags:Object.assign({},qo.afterTags,$o.afterTags),beforeWords:Object.assign({},qo.beforeWords,$o.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective",off:"Adjective",out:"Adjective"}),afterWords:Object.assign({},qo.afterWords,$o.afterWords)};let Zo="PastTense";const Xo={beforeTags:{Adverb:Zo,Pronoun:Zo,ProperNoun:Zo,Auxiliary:Zo,Noun:Zo},afterTags:{Possessive:Zo,Pronoun:Zo,Determiner:Zo,Adverb:Zo,Comparative:Zo,Date:Zo,Gerund:Zo},beforeWords:{be:Zo,who:Zo,get:"Adjective",had:Zo,has:Zo,have:Zo,been:Zo,it:Zo,as:Zo,for:"Adjective",more:"Adjective"},afterWords:{by:Zo,back:Zo,out:Zo,in:Zo,up:Zo,down:Zo,before:Zo,after:Zo,for:Zo,the:Zo,with:Zo,as:Zo,on:Zo,at:Zo,between:Zo,to:Zo,into:Zo,us:Zo,them:Zo,me:Zo}};var Yo={beforeTags:Object.assign({},qo.beforeTags,Xo.beforeTags),afterTags:Object.assign({},qo.afterTags,Xo.afterTags),beforeWords:Object.assign({},qo.beforeWords,Xo.beforeWords),afterWords:Object.assign({},qo.afterWords,Xo.afterWords)};const ei={afterTags:{Noun:"Adjective",Conjunction:void 0}};var ti={beforeTags:Object.assign({},qo.beforeTags,Mo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},qo.afterTags,Mo.afterTags,ei.afterTags),beforeWords:Object.assign({},qo.beforeWords,Mo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},qo.afterWords,Mo.afterWords,{to:void 0,as:"Adjective"})};const ni={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ri={},ai={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},oi={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ii={beforeTags:Object.assign({},Ro.beforeTags,$o.beforeTags,ni),afterTags:Object.assign({},Ro.afterTags,$o.afterTags,ri),beforeWords:Object.assign({},Ro.beforeWords,$o.beforeWords,ai),afterWords:Object.assign({},Ro.afterWords,$o.afterWords,oi)};const si="Singular",li="Infinitive";var ui={beforeTags:Object.assign({},Mo.beforeTags,$o.beforeTags,{Adjective:si,Particle:si}),afterTags:Object.assign({},Mo.afterTags,$o.afterTags,{ProperNoun:li,Gerund:li,Adjective:li,Copula:si}),beforeWords:Object.assign({},Mo.beforeWords,$o.beforeWords,{is:si,was:si,of:si,have:null}),afterWords:Object.assign({},Mo.afterWords,$o.afterWords,{instead:li,about:li,his:li,her:li,to:null,by:null,in:null})};const ci="Person";var hi={beforeTags:{Honorific:ci,Person:ci},afterTags:{Person:ci,ProperNoun:ci,Verb:ci},ownTags:{ProperNoun:ci},beforeWords:{hi:ci,hey:ci,yo:ci,dear:ci,hello:ci},afterWords:{said:ci,says:ci,told:ci,tells:ci,feels:ci,felt:ci,seems:ci,thinks:ci,thought:ci,spends:ci,spendt:ci,plays:ci,played:ci,sing:ci,sang:ci,learn:ci,learned:ci,wants:ci,wanted:ci}};const di="Month",gi={beforeTags:{Date:di,Value:di},afterTags:{Date:di,Value:di},beforeWords:{by:di,in:di,on:di,during:di,after:di,before:di,between:di,until:di,til:di,sometime:di,of:di,this:di,next:di,last:di,previous:di,following:di},afterWords:{sometime:di,in:di,of:di,until:di,the:di}};var pi={beforeTags:Object.assign({},hi.beforeTags,gi.beforeTags),afterTags:Object.assign({},hi.afterTags,gi.afterTags),beforeWords:Object.assign({},hi.beforeWords,gi.beforeWords),afterWords:Object.assign({},hi.afterWords,gi.afterWords)};const mi="Place",fi={beforeTags:{Place:mi},afterTags:{Place:mi,Abbreviation:mi},beforeWords:{in:mi,by:mi,near:mi,from:mi,to:mi},afterWords:{in:mi,by:mi,near:mi,from:mi,to:mi,government:mi,council:mi,region:mi,city:mi}};let vi="Unit";const bi={"Actor|Verb":Jo,"Adj|Gerund":Uo,"Adj|Noun":_o,"Adj|Past":Yo,"Adj|Present":ti,"Noun|Verb":ui,"Noun|Gerund":ii,"Person|Noun":{beforeTags:Object.assign({},$o.beforeTags,hi.beforeTags),afterTags:Object.assign({},$o.afterTags,hi.afterTags),beforeWords:Object.assign({},$o.beforeWords,hi.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},$o.afterWords,hi.afterWords)},"Person|Date":pi,"Person|Verb":{beforeTags:Object.assign({},$o.beforeTags,hi.beforeTags,Mo.beforeTags),afterTags:Object.assign({},$o.afterTags,hi.afterTags,Mo.afterTags),beforeWords:Object.assign({},$o.beforeWords,hi.beforeWords,Mo.beforeWords),afterWords:Object.assign({},$o.afterWords,hi.afterWords,Mo.afterWords)},"Person|Place":{beforeTags:Object.assign({},fi.beforeTags,hi.beforeTags),afterTags:Object.assign({},fi.afterTags,hi.afterTags),beforeWords:Object.assign({},fi.beforeWords,hi.beforeWords),afterWords:Object.assign({},fi.afterWords,hi.afterWords)},"Person|Adj":{beforeTags:Object.assign({},hi.beforeTags,qo.beforeTags),afterTags:Object.assign({},hi.afterTags,qo.afterTags),beforeWords:Object.assign({},hi.beforeWords,qo.beforeWords),afterWords:Object.assign({},hi.afterWords,qo.afterWords)},"Unit|Noun":{beforeTags:{Value:vi},afterTags:{},beforeWords:{per:vi,every:vi,each:vi,square:vi,cubic:vi,sq:vi,metric:vi},afterWords:{per:vi,squared:vi,cubed:vi,long:vi}}},yi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};bi["Plural|Verb"]={beforeWords:yi(bi["Noun|Verb"].beforeWords,{had:"Plural",have:"Plural"}),afterWords:yi(bi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null,is:"PresentTense",by:"PresentTense"}),beforeTags:yi(bi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:yi(bi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var wi=bi;const ki="Adjective",Pi="Infinitive",Ai="PresentTense",Ni="Singular",ji="PastTense",Ii="Adverb",xi="Plural",Ei="Actor",Ci="Verb",Ti="Noun",Di="LastName",Oi="Modal",Fi="Place",Vi="Participle";var Gi=[null,null,{ea:Ni,ia:Ti,ic:ki,ly:Ii,"'n":Ci,"'t":Ci},{oed:ji,ued:ji,xed:ji," so":Ii,"'ll":Oi,"'re":"Copula",azy:ki,eer:Ti,end:Ci,ped:ji,ffy:ki,ify:Pi,ing:"Gerund",ize:Pi,ibe:Pi,lar:ki,mum:ki,nes:Ai,nny:ki,ous:ki,que:ki,ger:Ti,ber:Ti,rol:Ni,sis:Ni,ogy:Ni,oid:Ni,ian:Ni,zes:Ai,eld:ji,ken:Vi,ven:Vi,ten:Vi,ect:Pi,ict:Pi,ign:Pi,ful:ki,bal:ki,ton:Ti},{amed:ji,aped:ji,ched:ji,lked:ji,rked:ji,reed:ji,nded:ji,mned:ki,cted:ji,dged:ji,ield:Ni,akis:Di,cede:Pi,chuk:Di,czyk:Di,ects:Ai,ends:Ci,enko:Di,ette:Ni,iary:Ni,wner:Ni,fies:Ai,fore:Ii,gate:Pi,gone:ki,ices:xi,ints:xi,ruct:Pi,ines:xi,ions:xi,ners:xi,pers:xi,lers:xi,less:ki,llen:ki,made:ki,nsen:Di,oses:Ai,ould:Oi,some:ki,sson:Di,ians:xi,tion:Ni,tage:Ti,ique:Ni,tive:ki,tors:Ti,vice:Ni,lier:Ni,fier:Ni,wned:ji,gent:Ni,tist:Ei,pist:Ei,rist:Ei,mist:Ei,yist:Ei,vist:Ei,ists:Ei,lite:Ni,site:Ni,rite:Ni,mite:Ni,bite:Ni,mate:Ni,date:Ni,ndal:Ni,vent:Ni,uist:Ei,gist:Ei,note:Ni,cide:Ni,ence:Ni,wide:ki,vide:Pi,ract:Pi,duce:Pi,pose:Pi,eive:Pi,lyze:Pi,lyse:Pi,iant:ki,nary:ki,ghty:ki,uent:ki,erer:Ei,bury:Fi,dorf:Ti,esty:Ti,wych:Fi,dale:Fi,folk:Fi},{elist:Ei,holic:Ni,phite:Ni,tized:ji,urned:ji,eased:ji,ances:xi,bound:ki,ettes:xi,fully:Ii,ishes:Ai,ities:xi,marek:Di,nssen:Di,ology:Ti,osome:Ni,tment:Ni,ports:xi,rough:ki,tches:Ai,tieth:"Ordinal",tures:xi,wards:Ii,where:Ii,archy:Ti,pathy:Ti,opoly:Ti,embly:Ti,phate:Ti,ndent:Ni,scent:Ni,onist:Ei,anist:Ei,alist:Ei,olist:Ei,icist:Ei,ounce:Pi,iable:ki,borne:ki,gnant:ki,inant:ki,igent:ki,atory:ki,rient:Ni,dient:Ni,maker:Ei,burgh:Fi,mouth:Fi,ceter:Fi,ville:Fi,worth:Ti},{auskas:Di,parent:Ni,cedent:Ni,ionary:Ni,cklist:Ni,keeper:Ei,logist:Ei,teenth:"Value",worker:Ei,master:Ei,writer:Ei,brough:Fi,cester:Fi},{logists:Ei,opoulos:Di,borough:Fi,sdottir:Di}];const Bi="Adjective",zi="Noun",Hi="Verb";var Li=[null,null,{},{neo:zi,bio:zi,"de-":Hi,"re-":Hi,"un-":Hi},{anti:zi,auto:zi,faux:Bi,hexa:zi,kilo:zi,mono:zi,nano:zi,octa:zi,poly:zi,semi:Bi,tele:zi,"pro-":Bi,"mis-":Hi,"dis-":Hi,"pre-":Bi},{anglo:zi,centi:zi,ethno:zi,ferro:zi,grand:zi,hepta:zi,hydro:zi,intro:zi,macro:zi,micro:zi,milli:zi,nitro:zi,penta:zi,quasi:Bi,radio:zi,tetra:zi,"omni-":Bi,"post-":Bi},{pseudo:Bi,"extra-":Bi,"hyper-":Bi,"inter-":Bi,"intra-":Bi,"deca-":Bi},{electro:zi}];const $i="Adjective",Si="Infinitive",Mi="PresentTense",Ji="Singular",Wi="PastTense",qi="Adverb",Ki="Expression",Ri="Actor",Ui="Verb",Qi="Noun",_i="LastName";var Zi={a:[[/.[aeiou]na$/,Qi,"tuna"],[/.[oau][wvl]ska$/,_i],[/.[^aeiou]ica$/,Ji,"harmonica"],[/^([hyj]a+)+$/,Ki,"haha"]],c:[[/.[^aeiou]ic$/,$i]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Wi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Wi,"rammed"],[/.[aeiou][sg]hed$/,Wi,"gushed"],[/.[aeiou]red$/,Wi,"hired"],[/.[aeiou]r?ried$/,Wi,"hurried"],[/[^aeiou]ard$/,Ji,"steward"],[/[aeiou][^aeiou]id$/,$i,""],[/.[vrl]id$/,$i,"livid"],[/..led$/,Wi,"hurled"],[/.[iao]sed$/,Wi,""],[/[aeiou]n?[cs]ed$/,Wi,""],[/[aeiou][rl]?[mnf]ed$/,Wi,""],[/[aeiou][ns]?c?ked$/,Wi,"bunked"],[/[aeiou]gned$/,Wi],[/[aeiou][nl]?ged$/,Wi],[/.[tdbwxyz]ed$/,Wi],[/[^aeiou][aeiou][tvx]ed$/,Wi],[/.[cdflmnprstv]ied$/,Wi,"emptied"]],e:[[/.[lnr]ize$/,Si,"antagonize"],[/.[^aeiou]ise$/,Si,"antagonise"],[/.[aeiou]te$/,Si,"bite"],[/.[^aeiou][ai]ble$/,$i,"fixable"],[/.[^aeiou]eable$/,$i,"maleable"],[/.[ts]ive$/,$i,"festive"],[/[a-z]-like$/,$i,"woman-like"]],h:[[/.[^aeiouf]ish$/,$i,"cornish"],[/.v[iy]ch$/,_i,"..ovich"],[/^ug?h+$/,Ki,"ughh"],[/^uh[ -]?oh$/,Ki,"uhoh"],[/[a-z]-ish$/,$i,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,_i,"polish-male"]],k:[[/^(k){2}$/,Ki,"kkkk"]],l:[[/.[gl]ial$/,$i,"familial"],[/.[^aeiou]ful$/,$i,"fitful"],[/.[nrtumcd]al$/,$i,"natal"],[/.[^aeiou][ei]al$/,$i,"familial"]],m:[[/.[^aeiou]ium$/,Ji,"magnesium"],[/[^aeiou]ism$/,Ji,"schism"],[/^[hu]m+$/,Ki,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,$i,"republican"],[/[^aeiou]ician$/,Ri,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Ki,"noooo"],[/^(yo)+$/,Ki,"yoo"],[/^wo{2,}[pt]?$/,Ki,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Ji],[/[^i]fer$/,Si],[/.[^aeiou][ao]pher$/,Ri],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,$i],[/[aeiou].*ist$/,$i],[/^[a-z]et$/,Ui]],s:[[/.[^aeiou]ises$/,Mi],[/.[rln]ates$/,Mi],[/.[^z]ens$/,Ui],[/.[lstrn]us$/,Ji],[/.[aeiou]sks$/,Mi],[/.[aeiou]kes$/,Mi],[/[aeiou][^aeiou]is$/,Ji],[/[a-z]'s$/,Qi],[/^yes+$/,Ki]],v:[[/.[^aeiou][ai][kln]ov$/,_i]],y:[[/.[cts]hy$/,$i],[/.[st]ty$/,$i],[/.[tnl]ary$/,$i],[/.[oe]ry$/,Ji],[/[rdntkbhs]ly$/,qi],[/.(gg|bb|zz)ly$/,$i],[/...lly$/,qi],[/.[gk]y$/,$i],[/[bszmp]{2}y$/,$i],[/.[ai]my$/,$i],[/[ea]{2}zy$/,$i],[/.[^aeiou]ity$/,Ji]]};const Xi="Verb",Yi="Noun";var es={leftTags:[["Adjective",Yi],["Possessive",Yi],["Determiner",Yi],["Adverb",Xi],["Pronoun",Xi],["Value",Yi],["Ordinal",Yi],["Modal",Xi],["Superlative",Yi],["Demonym",Yi],["Honorific","Person"]],leftWords:[["i",Xi],["first",Yi],["it",Xi],["there",Xi],["not",Xi],["because",Yi],["if",Yi],["but",Yi],["who",Xi],["this",Yi],["his",Yi],["when",Yi],["you",Xi],["very","Adjective"],["old",Yi],["never",Xi],["before",Yi],["a",Yi],["the",Yi],["been",Xi]],rightTags:[["Copula",Yi],["PastTense",Yi],["Conjunction",Yi],["Modal",Yi]],rightWords:[["there",Xi],["me",Xi],["man","Adjective"],["him",Xi],["it",Xi],["were",Yi],["took",Yi],["himself",Xi],["went",Yi],["who",Yi],["jr","Person"]]},ts={fwd:"3:ser,ier¦1er:h,t,f,l,n¦1r:e¦2er:ss,or,om",both:"3er:ver,ear,alm¦3ner:hin¦3ter:lat¦2mer:im¦2er:ng,rm,mb¦2ber:ib¦2ger:ig¦1er:w,p,k,d¦ier:y",rev:"1:tter,yer¦2:uer,ver,ffer,oner,eler,ller,iler,ster,cer,uler,sher,ener,gher,aner,adder,nter,eter,rter,hter,rner,fter¦3:oser,ooler,eafer,user,airer,bler,maler,tler,eater,uger,rger,ainer,urer,ealer,icher,pler,emner,icter,nser,iser¦4:arser,viner,ucher,rosser,somer,ndomer,moter,oother,uarer,hiter¦5:nuiner,esser,emier¦ar:urther",ex:"worse:bad¦better:good¦4er:fair,gray,poor¦1urther:far¦3ter:fat,hot,wet¦3er:lay,shy,fun¦3der:mad,sad¦4der:glad¦:¦4r:cute,dire,fake,fine,free,lame,late,pale,rare,ripe,rude,safe,sore,tame,wide¦5r:eerie,stale"},ns={fwd:"1:nning,tting,rring,pping,eing,mming,gging,dding,bbing,kking¦2:eking,oling,eling,eming¦3:velling,siting,uiting,fiting,loting,geting,ialing¦4:graming",both:"1:iing,fing,xing,ying,oing,hing,wing¦2:tzing,rping,izzing,bting,mning,sping,wling,rling,wding,rbing,uping,lming,wning,mping,oning,lting,mbing,lking,fting,hting,sking,gning,pting,cking,ening,nking,iling,eping,ering,rting,rming,cting,lping,ssing,nting,nding,lding,sting,rning,rding,rking¦3:yaking,uaking,oaning,auling,valing,aiding,naping,euring,tolling,uzzing,ganing,haning,ualing,halling,iasing,auding,ieting,ceting,ouling,voring,ralling,ooding,garing,joring,ooping,oaking,roring,oaming,uelling,nelling,eaping,eeting,ooting,ooming,xiting,keting,ooking,ulling,airing,oaring,biting,outing,oiting,eeding,naling,eaming,oading,earing,delling,ouring,eaking,aiming,illing,oining,eaning,onging,ealing,aining,eading¦4:melling,aboring,ivoting,weating,dfilling,onoring,eriting,imiting,heating,tialling,rgining,otoring,linging,winging,lleting,louding,spelling,looring,mpelling,xcelling,feating,opelling,choring,welling,ymaking,ctoring,calling,peating,iloring,laiting,utoring,uditing,nmaking,mmaking,loating,iciting,waiting,mbating,voiding,otalling,nsoring,nselling,ocusing,itoring,eloping¦5:rselling,umpeting,atrolling,treating,tselling,rpreting,pringing,ummeting,ossoming,elmaking,eselling,rediting,defining,totyping,rfeiting,ntrolling¦5e:chmaking,orsaking,severing,erouting,ecreting,ephoning,uthoring,reathing,pediting,erfering,eotyping,fringing,entoring,ombining,ompeting¦4e:emaking,eething,dmiring,chuting,xciting,rseding,scoping,edoring,pinging,lunging,agining,craping,pleting,eleting,nciting,nfining,ncoding,tponing,ecoding,writing,esaling,gnoring,evoting,mpeding,dhering,mpiling,storing,nviting,ploring¦3e:tining,wining,nuring,ruling,haling,ceding,xuding,rining,nuting,caring,miling,riding,hoking,piring,lading,laking,curing,uading,noting,taping,futing,paring,raking,vening,loding,siring,guring,vading,voking,niting,laning,coring,caping,luting,muting,ruding,ciding,juring,laming,caling,hining,uoting,liding,ciling,duling,tuting,puting,cuting,laring,uiding,tiring,turing,siding,rading,enging,haping,buting,lining,taking,anging,haring,uiring,coming,mining,moting,suring,viding,luding¦2e:tring,zling,uging,oging,gling,iging,vring,fling,lging,iping,obing,psing,pling,ubing,cling,dling,wsing,iking,rsing,dging,kling,ysing,tling,rging,eging,nsing,uning,osing,uming,using,ibing,bling,aging,ising,asing,ating¦2ie:rlying¦1e:zing,uing,cing,ving",rev:"ying:ie¦1ing:se,ke,te,we,ne,re,de,pe,me,le,c,he¦2ing:ll,ng,dd,ee,ye,oe,or,rg,us¦2ning:un¦2ging:og,ag,ug,ig,eg¦2ming:um¦2ping:ip¦2bing:ub,ab,eb,ob¦3ning:lan,can,hin,pin,win¦3ring:cur,lur,tir,tar,pur,car¦3ing:eat,dit,ool,eel,oat,eem,lel¦3ping:rop,rap,wap,hop,lap,cap¦3ming:tem,wim,rim,kim¦3ting:mat,cut,pot,lit,nit,hat,set,pit,rot¦3ding:hed,bed,bid,red¦3king:rek¦3bing:rib¦3ling:pel¦4ning:egin¦4ing:isit,ruit,ilot,nsit,dget,rkel,rcel¦4ring:efer,nfer¦4ling:abel,evel,ncil,ivel¦4ting:rmit,mmit,ysit,dmit,emit,bmit,tfit,gret,llot¦5ing:arget,posit,rofit¦5ring:nsfer¦5ting:nsmit,orget,cquit¦5ling:ancel,istil",ex:"3:adding,eating,aiming,aiding,airing,outing,gassing,setting,getting,putting,cutting,winning,sitting,betting,mapping,tapping,letting,bidding,hitting,tanning,netting,popping,fitting,capping,lapping,barring,banning,vetting,topping,rotting,potting,wetting,pitting,budding,hemming,pinning,jetting,kidding,padding,podding,wedding,bedding,donning,warring,penning,gutting,cueing,wadding,petting,napping,matting,tinning¦4:selling,falling,calling,waiting,editing,telling,rolling,heating,boating,hanging,beating,coating,singing,mooring,tolling,felling,polling,discing,seating,voiding,gelling,yelling,seeking,stopping,spanning,stepping,emitting,quitting,dialing,omitting,plotting,clotting,shutting,skinning,slotting,abutting,cramming¦5:bringing,treating,labelling,spelling,stalling,trolling,expelling,wringing,deterring,singeing,befitting,refitting¦6:enrolling,cancelling,distilling,scrolling,strolling,caucusing,travelling¦7:installing,stencilling,recharging,overeating,benefiting,unraveling,programing¦9:reprogramming¦is:being¦2e:using,aging,owing¦3e:making,taking,coming,noting,hiring,filing,coding,citing,doping,baking,coping,hoping,lading,caring,naming,voting,riding,mining,curing,lining,ruling,typing,boring,dining,firing,hiding,piling,taping,waning,baling,boning,faring,honing,luring,timing,wading,fading,biting,zoning,daring,waking,gaming,raking,ceding,tiring,coking,wining,joking,paring,gaping,poking,pining,coring,liming,toting,roping,wiring,aching¦4e:writing,storing,eroding,framing,smoking,tasting,wasting,phoning,shaking,shading,abiding,pasting,priming,shoring,sloping,withing¦5e:defining,refining,enduring,renaming,swathing,fringing,reciting¦1ie:dying,tying,lying,vying¦7e:sunbathing¦10e:recordkeeping"},rs={fwd:"1:mt¦2:llen¦3:iven,aken¦:ne¦y:in",both:"1:wn¦2:me,aten¦3:seen,bidden,isen¦4:roven,asten¦3l:pilt¦3d:uilt¦2e:itten¦1im:wum¦1eak:poken¦1ine:hone¦1ose:osen¦1in:gun¦1ake:woken¦ear:orn¦eal:olen¦eeze:ozen¦et:otten¦ink:unk¦ing:ung",rev:"2:un¦oken:eak¦ought:eek¦oven:eave¦1ne:o¦1own:ly¦1den:de¦1in:ay¦2t:am¦2n:ee¦3en:all¦4n:rive,sake,take¦5n:rgive",ex:"2:been¦3:seen,run¦4:given,taken¦5:shaken¦2eak:broken¦1ive:dove¦2y:flown¦3e:hidden,ridden¦1eek:sought¦1ake:woken¦1eave:woven"},as={fwd:"1:oes¦1ve:as",both:"1:xes¦2:zzes,ches,shes,sses¦2y:llies,plies¦1y:bies,ties,vies,nies,pies,dies,ries,fies¦:s",rev:"1ies:ly¦2es:us,go¦2ses:as¦3es:cho",ex:"2:does,goes¦3:gasses¦5:focuses¦is:are¦3y:relies¦2y:flies¦2ve:has"},os={fwd:"1st:e¦1est:l,m,f,s¦1iest:cey¦2est:or,ir¦3est:ver",both:"4:east¦5:hwest¦5lest:erful¦4est:weet,lgar,tter,oung¦4most:uter¦3est:ger,der,rey,iet,ong,ear¦3test:lat¦3most:ner¦2est:pt,ft,nt,ct,rt,ht¦2test:it¦2gest:ig¦1est:b,k,n,p,h,d,w¦iest:y",rev:"1:ttest,nnest,yest¦2:sest,stest,rmest,cest,vest,lmest,olest,ilest,ulest,ssest,imest,uest¦3:rgest,eatest,oorest,plest,allest,urest,iefest,uelest,blest,ugest,amest,yalest,ealest,illest,tlest,itest¦4:cerest,eriest,somest,rmalest,ndomest,motest,uarest,tiffest¦5:leverest,rangest¦ar:urthest¦3ey:riciest",ex:"best:good¦worst:bad¦5est:great¦4est:fast,full,fair,dull¦3test:hot,wet,fat¦4nest:thin¦1urthest:far¦3est:gay,shy,ill¦4test:neat¦4st:late,wide,fine,safe,cute,fake,pale,rare,rude,sore,ripe,dire¦6st:severe"},is={fwd:"1:tistic,eable,lful,sful,ting,tty¦2:onate,rtable,geous,ced,seful,ctful¦3:ortive,ented¦arity:ear¦y:etic¦fulness:begone¦1ity:re¦1y:tiful,gic¦2ity:ile,imous,ilous,ime¦2ion:ated¦2eness:iving¦2y:trious¦2ation:iring¦2tion:vant¦3ion:ect¦3ce:mant,mantic¦3tion:irable¦3y:est,estic¦3m:mistic,listic¦3ess:ning¦4n:utious¦4on:rative,native,vative,ective¦4ce:erant",both:"1:king,wing¦2:alous,ltuous,oyful,rdous¦3:gorous,ectable,werful,amatic¦4:oised,usical,agical,raceful,ocused,lined,ightful¦5ness:stful,lding,itous,nuous,ulous,otous,nable,gious,ayful,rvous,ntous,lsive,peful,entle,ciful,osive,leful,isive,ncise,reful,mious¦5ty:ivacious¦5ties:ubtle¦5ce:ilient,adiant,atient¦5cy:icient¦5sm:gmatic¦5on:sessive,dictive¦5ity:pular,sonal,eative,entic¦5sity:uminous¦5ism:conic¦5nce:mperate¦5ility:mitable¦5ment:xcited¦5n:bitious¦4cy:brant,etent,curate¦4ility:erable,acable,icable,ptable¦4ty:nacious,aive,oyal,dacious¦4n:icious¦4ce:vient,erent,stent,ndent,dient,quent,ident¦4ness:adic,ound,hing,pant,sant,oing,oist,tute¦4icity:imple¦4ment:fined,mused¦4ism:otic¦4ry:dantic¦4ity:tund,eral¦4edness:hand¦4on:uitive¦4lity:pitable¦4sm:eroic,namic¦4sity:nerous¦3th:arm¦3ility:pable,bable,dable,iable¦3cy:hant,nant,icate¦3ness:red,hin,nse,ict,iet,ite,oud,ind,ied,rce¦3ion:lute¦3ity:ual,gal,volous,ial¦3ce:sent,fensive,lant,gant,gent,lent,dant¦3on:asive¦3m:fist,sistic,iastic¦3y:terious,xurious,ronic,tastic¦3ur:amorous¦3e:tunate¦3ation:mined¦3sy:rteous¦3ty:ain¦3ry:ave¦3ment:azed¦2ness:de,on,ue,rn,ur,ft,rp,pe,om,ge,rd,od,ay,ss,er,ll,oy,ap,ht,ld,ad,rt¦2inousness:umous¦2ity:neous,ene,id,ane¦2cy:bate,late¦2ation:ized¦2ility:oble,ible¦2y:odic¦2e:oving,aring¦2s:ost¦2itude:pt¦2dom:ee¦2ance:uring¦2tion:reet¦2ion:oted¦2sion:ending¦2liness:an¦2or:rdent¦1th:ung¦1e:uable¦1ness:w,h,k,f¦1ility:mble¦1or:vent¦1ement:ging¦1tiquity:ncient¦1ment:hed¦verty:or¦ength:ong¦eat:ot¦pth:ep¦iness:y",rev:"",ex:"5:forceful,humorous¦8:charismatic¦13:understanding¦5ity:active¦11ness:adventurous,inquisitive,resourceful¦8on:aggressive,automatic,perceptive¦7ness:amorous,fatuous,furtive,ominous,serious¦5ness:ample,sweet¦12ness:apprehensive,cantankerous,contemptuous,ostentatious¦13ness:argumentative,conscientious¦9ness:assertive,facetious,imperious,inventive,oblivious,rapacious,receptive,seditious,whimsical¦10ness:attractive,expressive,impressive,loquacious,salubrious,thoughtful¦3edom:boring¦4ness:calm,fast,keen,tame¦8ness:cheerful,gracious,specious,spurious,timorous,unctuous¦5sity:curious¦9ion:deliberate¦8ion:desperate¦6e:expensive¦7ce:fragrant¦3y:furious¦9ility:ineluctable¦6ism:mystical¦8ity:physical,proactive,sensitive,vertical¦5cy:pliant¦7ity:positive¦9ity:practical¦12ism:professional¦6ce:prudent¦3ness:red¦6cy:vagrant¦3dom:wise"},ss=function(e="",t={}){let n=function(e,t={}){return t.hasOwnProperty(e)?t[e]:null}(e,t.ex);return n=n||function(e,t=[]){for(let n=0;n=1;r-=1){let a=e.length-r,o=e.substring(a,e.length);if(!0===t.hasOwnProperty(o))return e.slice(0,a)+t[o];if(!0===n.hasOwnProperty(o))return e.slice(0,a)+n[o]}return t.hasOwnProperty("")?e+t[""]:n.hasOwnProperty("")?e+n[""]:null}(e,t.fwd,t.both),n=n||e,n};const ls=function(e){return Object.entries(e).reduce(((e,t)=>(e[t[1]]=t[0],e)),{})};var us=function(e={}){return{reversed:!0,both:ls(e.both),ex:ls(e.ex),fwd:e.rev||{}}};const cs=/^([0-9]+)/,hs=function(e){let t=function(e){let t={};return e.split("¦").forEach((e=>{let[n,r]=e.split(":");r=(r||"").split(","),r.forEach((e=>{t[e]=n}))})),t}(e);return Object.keys(t).reduce(((e,n)=>(e[n]=function(e="",t=""){let n=(t=String(t)).match(cs);if(null===n)return t;let r=Number(n[1])||0;return e.substring(0,r)+t.replace(cs,"")}(n,t[n]),e)),{})};var ds=function(e={}){return"string"==typeof e&&(e=JSON.parse(e)),e.fwd=hs(e.fwd||""),e.both=hs(e.both||""),e.rev=hs(e.rev||""),e.ex=hs(e.ex||""),e};const gs=ds({fwd:"1:tted,wed,gged,nned,een,rred,pped,yed,bbed,oed,dded,rd,s,wn,mmed¦2:eed,nded,et,hted,st,oled,ut,emed,eled,lded,ken,rt,nked,apt,ant,eped,eked¦3:eared,eat,eaded,nelled,ealt,eeded,ooted,eaked,eaned,eeted,mited,bid,uit,ead,uited,ealed,geted,velled¦4:ebuted,hined,taked,comed¦y:ied¦ome:ame¦ear:ore¦ind:ound¦ep:pt¦ink:ank,unk¦all:ell¦ee:aw¦ive:ave¦eeze:oze¦old:eld¦ave:ft¦ake:ook¦ing:ang¦ell:old¦ite:ote¦ide:ode¦ine:one¦in:un,on¦eal:ole¦im:am¦ie:ay¦and:ood¦1ise:rose¦1eak:roke¦1ing:rought,rung¦1ive:rove¦1id:bade¦1et:got¦1y:aid¦3e:lid¦3d:pent",both:"1:fed,xed,hed¦2:rped,lked,kied,lmed,lped,uped,bted,rbed,rked,wned,rled,mped,fted,mned,mbed,zzed,ened,cked,gned,lted,sked,ued,zed,nted,ered,rted,rmed,ced,sted,rned,ssed,rded,pted,ved,cted¦3:oomed,iped,oided,eiled,yped,taled,moned,yled,lit,kled,oaked,gled,naled,fled,outed,uined,oared,valled,koned,soned,aided,obed,ibed,meted,nicked,rored,micked,keted,vred,ooped,oaded,rited,aired,auled,filled,ouled,ooded,ceted,tolled,oited,bited,tled,vored,dled,eamed,nsed,rsed,sited,owded,pled,sored,rged,osed,oured,psed,oated,loned,aimed,illed,eured,tred,ioned,celled,bled,wsed,ooked,oiled,itzed,iked,iased,onged,ased,ailed,uned,umed,ained,auded,nulled,ysed,eged,ised,aged,oined,ated,used,dged,doned¦4:honed,tuted,pited,naked,miled,helled,haped,cored,caled,tired,peated,futed,ciled,called,tined,moted,filed,sided,poned,iloted,uaded,lleted,huted,ruled,cured,named,preted,voked,vaded,sured,pired,haled,peded,gined,nited,uided,ramed,feited,laked,gured,ctored,unged,loded,xpelled,cuted,caped,eloped,ralled,rined,coded,icited,vided,spelled,voted,mined,sired,noted,lined,nselled,luted,vened,jured,fided,puted,piled,pared,olored,cided,hoked,enged,tured,geoned,cotted,lamed,uiled,waited,udited,anged,luded,mired,uired,raded¦5:umpeted,ailored,rseded,quared,treated,eduled,ecited,rammed,eceded,atrolled,nitored,basted,nvited,rfered,itialled,ncited,gnored,truded,xcited,nrolled,namelled,plored,clared,redited,nfined,pleted,ompelled,llided,ircled,lcined,eathed,nefited,ibuted,lloted,dhered,cceded¦2aw:drew¦2ot:hot¦2ke:made¦2ow:hrew,grew¦2ose:hose¦2d:ilt¦2in:egan¦1go:rwent¦1ink:hought¦1ick:tuck¦1ike:ruck¦1eak:poke,nuck¦1it:pat¦1o:did¦1ow:new¦1el:elt¦1ing:lung¦1ake:woke¦ig:ug",rev:"3:rst,urt,set,ous,hed,hut,cut¦4:tbid¦5:dcast,eread,pread,erbid¦ought:uy,eek¦ung:ang¦1ied:ny,ly,dy,ry,fy,py,vy,by¦1pt:eep¦1ank:rink¦1ore:bear,wear¦1ave:give¦1oze:reeze¦1ound:rind¦1ook:take,hake¦1aw:see¦1old:sell¦1ote:rite¦1ole:teal¦1unk:tink¦1am:wim¦1ay:lie¦1ood:tand¦1eld:hold¦2d:he,ge,re,le,leed,ne,reed,be,ye,lee,pe¦2ed:dd,oy,or,ey,ho,gg,rr¦2ame:ecome,rcome¦2ped:ip¦2ged:ag,og,ug¦2bed:ub,ab,ib,ob¦2id:pay¦2ang:pring¦2ove:trive¦2med:um¦3ted:mit,hat,mat,lat,pot¦3ed:low,tow,und,ool,ond,eem,lay,dow,xit,eld,cus,ald,iew,bel,oan,del,uld,law,lel,eat,ray,ull,ank,fin,oam,oll,how,iek,tay,haw,ait¦3d:ste,ede,ode,ete,ree,ame,tee,oke,ote,ime¦3red:lur,cur,pur¦3ped:hop,rop,tep,top,rap¦3ded:bed,rod,kid¦3ade:orbid¦3led:uel¦3ned:lan,can,kin,pan,tun¦3med:rim¦4ted:quit,llot¦4ed:peal,cend,lend,rrow,rand,lean,mand,ceal,tend,fend,pear,anel,pand,reet,link,evel,imit,lead,mend,enew,cind,crew,head,pell,tall,well,rend,mell¦4led:nnel,qual¦4n:sake,trew¦4red:nfer,efer,sfer¦4ded:hred¦4ned:rpin¦5ed:ppend,light,epend,ndear,xceed,xpend,oceed,cruit,emind,cceed,spend,arget,hread,eight¦5led:ntrol,ravel¦5ped:erlap",ex:"2:been,upped¦3:added,aged,aided,aimed,aired,bid,died,dyed,egged,erred,eyed,fit,gassed,hit,lied,owed,pent,pied,tied,used,vied,banned,barred,bet,canned,capped,cut,donned,ended,feed,inked,jarred,let,manned,mapped,mowed,napped,netted,padded,panned,pitted,popped,potted,put,set,sewn,sowed,tanned,tapped,topped,vowed,weed¦4:ached,baked,baled,boned,bored,called,caned,cared,ceded,cited,coded,cored,cubed,cured,dared,dined,edited,exited,faked,fared,filed,fined,fired,fuelled,gamed,gelled,hired,hoped,joked,lined,loaned,mined,named,noted,piled,poked,polled,pored,pulled,reaped,roamed,rolled,ruled,seated,shed,sided,taped,timed,tolled,toned,voted,waited,walled,waned,winged,wired,zoned,banded,beat,brewed,cast,cost,dealt,feared,folded,footed,handed,headed,heard,knitted,landed,leaked,leapt,linked,meant,minded,molded,neared,needed,peaked,plodded,plotted,quit,read,rooted,sealed,seeded,seeped,shunned,skimmed,slammed,sparred,stemmed,stirred,suited,tended,thinned,twinned¦5:basted,cheated,equalled,eroded,exiled,focused,opined,pleated,primed,quoted,shared,shored,sloped,smoked,spelled,stalled,stored,swelled,tasted,treated,wasted,smelled,breaded,cleared,debuted,deterred,freaked,rebutted,speeded,staked¦6:anchored,defeated,defined,endured,impaled,propelled,refined,revered,strolled,recast,regretted,revealed,thrust,unfolded¦7:authored,combined,competed,conceded,controlled,entwined,excreted,installed,redefined,restored,welcomed¦8:expedited,infringed¦9:persevered,copyrighted¦10:intertwined¦eat:ate¦is:was¦go:went¦are:were¦3d:bent,lent,rent,sent¦3e:bit,fled,hid,lost¦3ed:bled,bred¦2ow:blew,grew¦1uy:bought¦2tch:caught¦1o:did¦1ive:dove,gave¦2aw:drew¦2ed:fed¦2y:flew,laid,paid,said¦1ight:fought¦1et:got¦2ve:had¦1ang:hung¦2ad:led¦2ght:lit¦2ke:made¦2et:met¦1un:ran¦1ise:rose¦1it:sat¦1eek:sought¦1each:taught¦1ake:woke,took¦1eave:wove¦2ise:arose¦1ear:bore,tore,wore¦1ind:bound,found,wound¦2eak:broke¦2ing:brought,wrung¦1ome:came¦2ive:drove¦1all:fell¦4et:forgot¦1old:held¦2ave:left¦1ing:rang,sang¦1ide:rode¦1ink:sank¦1ee:saw¦2ine:shone¦4e:slid¦1ell:sold,told¦4d:spent¦2in:spun¦1in:won"}),ps=ds(as),ms=ds(ns),fs=ds(rs),vs=us(gs),bs=us(ps),ys=us(ms),ws=us(fs),ks=ds(ts),Ps=ds(os);var As={fromPast:gs,fromPresent:ps,fromGerund:ms,fromParticiple:fs,toPast:vs,toPresent:bs,toGerund:ys,toParticiple:ws,toComparative:ks,toSuperlative:Ps,fromComparative:us(ks),fromSuperlative:us(Ps),adjToNoun:ds(is)},Ns=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),js=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..ase)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],Is=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(Es[t].forEach((n=>e[n]=t)),e)),{});var Cs=Es,Ts=function(e){let t=e.substring(e.length-3);if(!0===Cs.hasOwnProperty(t))return Cs[t];let n=e.substring(e.length-2);return!0===Cs.hasOwnProperty(n)?Cs[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ds={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Os=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=Ts(e)),Ds.hasOwnProperty(e))c=Ds[e];else if("Participle"===n)c=ss(l,i);else if("PastTense"===n)c=ss(l,r);else if("PresentTense"===n)c=ss(l,a);else{if("Gerund"!==n)return e;c=ss(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Fs=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:ss(i,n),PresentTense:ss(i,r),Gerund:ss(i,a),FutureTense:"will "+e},u=ss(i,o);if(u!==e&&u!==l.PastTense){let n=t.one.lexicon||{};"Participle"!==n[u]&&"Adjective"!==n[u]||("play"===e&&(u="played"),l.Participle=u)}return s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l},Vs={toInfinitive:Os,conjugate:Fs,all:function(e,t){let n=Fs(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}};const Gs=function(e,t){const n=t.two.models.toSuperlative;return ss(e,n)},Bs=function(e,t){const n=t.two.models.toComparative;return ss(e,n)};var zs=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a))return e.slice(0,n-r)+t[a.length][a]}return null};const Hs="ically",Ls=new Set(["analyt"+Hs,"chem"+Hs,"class"+Hs,"clin"+Hs,"crit"+Hs,"ecolog"+Hs,"electr"+Hs,"empir"+Hs,"frant"+Hs,"grammat"+Hs,"ident"+Hs,"ideolog"+Hs,"log"+Hs,"mag"+Hs,"mathemat"+Hs,"mechan"+Hs,"med"+Hs,"method"+Hs,"method"+Hs,"mus"+Hs,"phys"+Hs,"phys"+Hs,"polit"+Hs,"pract"+Hs,"rad"+Hs,"satir"+Hs,"statist"+Hs,"techn"+Hs,"technolog"+Hs,"theoret"+Hs,"typ"+Hs,"vert"+Hs,"whims"+Hs]),$s=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Ss=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ms={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"quick",superbly:"superb",cynically:"cynical",well:"good"},Js=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Ws={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var qs=function(e){if(Ws.hasOwnProperty(e))return Ws[e];let t=zs(e,Js);return t||(t=e+"ly"),t},Ks={toSuperlative:Gs,toComparative:Bs,toAdverb:qs,toNoun:function(e,t){const n=t.two.models.adjToNoun;return ss(e,n)},fromAdverb:function(e){return e.endsWith("ly")?Ls.has(e)?e.replace(/ically/,"ical"):Ss.has(e)?null:Ms.hasOwnProperty(e)?Ms[e]:zs(e,$s)||e:null},fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ss(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return ss(e,n)},all:function(e,t){let n=[e];return n.push(Gs(e,t)),n.push(Bs(e,t)),n.push(qs(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},Rs={noun:xs,verb:Vs,adjective:Ks},Us={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Actor:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||["Plural","Actor"])},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,r);delete l.FutureTense,Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]},Place:(e,t)=>{t[e]=["Place","ProperNoun"]},Region:(e,t)=>{t[e]=["Region","ProperNoun"]}},Qs=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Us.hasOwnProperty(i)&&Us[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},_s=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]){let n=e[t-1];if(n.tags.has("Date")||a.has(n.normal))return!1;if(n.tags.has("Adjective")||r.tags.has("Adjective"))return!1}let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!Ys.find((t=>e.endsWith(t)))},tl={two:{quickSplit:_s,expandLexicon:Qs,transform:Rs,looksPlural:el}},nl=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};let rl={one:{lexicon:{}},two:{models:As}};const al={"Actor|Verb":"Actor","Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"FirstName","Person|Place":"Person","Person|Adj":"Comparative","Plural|Verb":"Plural","Unit|Noun":"Noun"},ol=function(e,t){const n={model:t,methods:tl};let{lex:r,_multi:a}=tl.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},il=function(e,t,n){let r=Fs(e,rl);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},sl=function(e,t,n){let r=Gs(e,n);t[r]=t[r]||"Superlative";let a=Bs(e,n);t[a]=t[a]||"Comparative"},ll=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=al[o],"Noun|Verb"!==o&&"Person|Verb"!==o&&"Actor|Verb"!==o||il(a,r,!1),"Adj|Present"===o&&(il(a,r,!0),sl(a,r,t)),"Person|Adj"===o&&sl(a,r,t),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Os(a,rl,"Gerund");r[e]||(n[e]="Infinitive")}if("Noun|Gerund"!==o&&"Adj|Noun"!==o&&"Person|Noun"!==o||function(e,t,n){let r=Vo(e,n);t[r]=t[r]||"Plural"}(a,r,t),"Adj|Past"===o){let e=Os(a,rl,"PastTense");r[e]||(n[e]="Infinitive")}})),t=ol(n,t)};var ul=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=ol(e.one.lexicon,e)).one.lexicon,e),e=ll(e.two.switches,e),e=nl(e)};let cl={one:{_multiCache:{},lexicon:Bo},two:{irregularPlurals:ko,models:As,suffixPatterns:Gi,prefixPatterns:Li,endsWith:Zi,neighbours:es,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z°]{1,4})$/,"NumericValue","9km"]],switches:zo,clues:wi,uncountable:{},orgWords:Ns}};cl=ul(cl);var hl=cl,dl=function(e,t,n,r){const a=r.methods.one.setTag;if(0===t&&e.length>=3){const t=/:/;if(e[0].post.match(t)){let t=e[1];if(t.tags.has("Value")||t.tags.has("Email")||t.tags.has("PhoneNumber"))return;a([e[0]],"Expression",r,null,"2-punct-colon''")}}},gl=function(e,t,n,r){const a=r.methods.one.setTag;"-"===e[t].post&&e[t+1]&&a([e[t],e[t+1]],"Hyphenated",r,null,"1-punct-hyphen''")};const pl=/^(under|over|mis|re|un|dis|semi)-?/;var ml=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(pl.test(a.normal)){let e=a.normal.replace(pl,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},fl=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,"[33m[3m"+a+"[0m").padEnd(24)} [32m→[0m #${t.padEnd(22)} ${(e=>"[3m"+e+"[0m")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const vl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific","Month"];var bl=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(el(e.normal)?fl(e,"Plural","3-plural-guess"):fl(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ts(e.normal);t&&fl(e,t,"3-verb-tense-guess")}}(r)};const yl=/^\p{Lu}[\p{Ll}'’]/u,wl=/[0-9]/,kl=["Date","Month","WeekDay","Unit","Expression"],Pl=/[IVX]/,Al=/^[IVXLCDM]{2,}$/,Nl=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,jl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Il=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===yl.test(o)&&!1===wl.test(o)?kl.find((e=>r.tags.has(e)))||r.pre.match(/["']$/)||"the"===r.normal?null:(bl(e,t,n),r.tags.has("Noun")||r.tags.clear(),fl(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&Al.test(o)&&Pl.test(o)&&Nl.test(o)&&!jl[r.normal]?(fl(r,"RomanNumeral","2-xvii"),!0):null};const xl=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null};var El=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=xl(r.normal,n.two.suffixPatterns);if(null!==e)return fl(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=xl(r.implicit,n.two.suffixPatterns),null!==e))return fl(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const Cl=/['‘’‛‵′`´]/,Tl=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return fl(r,e,"2-prefix"),r.confidence=.5,!0}return null};const Fl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Vl=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Fl.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Gl=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Bl=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var zl=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(Vl(a)||Vl(o))return fl(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Gl(a)||Gl(o))return fl(n,"Year","2-tagYear-close");if(Bl(e[t-2])||Bl(e[t+2]))return fl(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return fl(n,"Year","2-tagYear-noun")}}}return null},Hl=function(e,t,n,r){const a=r.methods.one.setTag,o=e[t],i=["PastTense","PresentTense","Auxiliary","Modal","Particle"];o.tags.has("Verb")&&(i.find((e=>o.tags.has(e)))||a([o],"Infinitive",r,null,"2-verb-type''"))};const Ll=/^[A-Z]('s|,)?$/,$l=/^[A-Z-]+$/,Sl=/^[A-Z]+s$/,Ml=/([A-Z]\.)+[A-Z]?,?$/,Jl=/[A-Z]{2,}('s|,)?$/,Wl=/([a-z]\.)+[a-z]\.?$/,ql={I:!0,A:!0},Kl={la:!0,ny:!0,us:!0,dc:!0,gb:!0};var Rl=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;if(!1===$l.test(n)){if(!(n.length>3&&!0===Sl.test(n)))return!1;n=n.replace(/s$/,"")}return!(n.length>5||ql.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Ml.test(n)&&!0!==Wl.test(n)&&!0!==Ll.test(n)&&!0!==Jl.test(n))}(r,n)?(r.tags.clear(),fl(r,["Acronym","Noun"],"3-no-period-acronym"),!0===Kl[r.normal]&&fl(r,"Place","3-place-acronym"),!0===Sl.test(r.text)&&fl(r,"Plural","3-plural-acronym"),!0):!ql.hasOwnProperty(r.text)&&Ll.test(r.text)?(r.tags.clear(),fl(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(fl(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&$l.test(r.text)&&r.text.length<=6?(fl(r,"Acronym","3-titlecase-acronym"),!0):null};const Ul=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Ql=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var _l=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Ul(e[t-1],a),l=l||Ul(e[t+1],o),l=l||Ql(e[t-1],r),l=l||Ql(e[t+1],i),l)return fl(s,l,"3-[neighbour]"),bl(e,t,n),e[t].confidence=.2,!0}return null};const Zl=function(e,t,n){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||!(n||(r=e.text,!/^\p{Lu}[\p{Ll}'’]/u.test(r)))&&(0!==t||e.tags.has("Singular")));var r};var Xl=function(e,t,n,r){const a=n.model.two.orgWords,o=n.methods.one.setTag;let i=e[t];if(!0===a[i.machine||i.normal]&&Zl(e[t-1],t-1,r)){o([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&Zl(e[a],a,r);a-=1)o([e[a]],"Organization",n,null,"3-[org-word]")}return null},Yl=function(e,t,n){let r=!1,a=e[t].tags;(0===a.size||1===a.size&&(a.has("Hyphenated")||a.has("HashTag")||a.has("Prefix")))&&(r=!0),r&&(fl(e[t],"Noun","3-[fallback]"),bl(e,t,n),e[t].confidence=.1)};const eu=/^[A-Z][a-z]/,tu=(e,t)=>e[t].tags.has("ProperNoun")&&eu.test(e[t].text)?"Noun":null,nu=(e,t,n)=>0!==t||e[1]?null:n,ru={"Adj|Gerund":(e,t)=>tu(e,t),"Adj|Noun":(e,t)=>tu(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Actor|Verb":(e,t)=>tu(e,t),"Adj|Past":(e,t)=>tu(e,t),"Adj|Present":(e,t)=>tu(e,t),"Noun|Gerund":(e,t)=>tu(e,t),"Noun|Verb":(e,t)=>t>0&&tu(e,t)||nu(e,t,"Infinitive"),"Plural|Verb":(e,t)=>tu(e,t)||nu(e,t,"PresentTense")||function(e,t,n){return 0===t&&e.length>3?n:null}(e,t,"Plural"),"Person|Noun":(e,t)=>tu(e,t),"Person|Verb":(e,t)=>0!==t?tu(e,t):null,"Person|Adj":(e,t)=>0===t&&e.length>1||tu(e,t)?"Person":null};var au=ru;const ou="undefined"!=typeof process&&process.env?process.env:self.env||{},iu=/^(under|over|mis|re|un|dis|semi)-?/,su=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&ou.DEBUG_TAGS&&console.log(`\n [2m[3m ↓ - '${n}' [0m`),r},lu=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&ou.DEBUG_TAGS&&console.log(` [2m[3m ↓ - '${e.normal||e.implicit}' (#${a}) [0m`),a=t[a],a};var uu=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(iu.test(l)&&!o[l]&&(l=l.replace(iu,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=su(e[t+1],n.afterWords);return o=o||su(e[t-1],n.beforeWords),o=o||lu(e[t-1],n.beforeTags,a),o=o||lu(e[t+1],n.afterTags,a),o}(e,t,i[o],r);au[o]&&(u=au[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),bl(e,t,r)):ou.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}};const cu={there:!0,this:!0,it:!0,him:!0,her:!0,us:!0};var hu=function(e,t){const n=t.methods.one.setTag,r=t.model.one._multiCache||{};let a=e[0];if(("Noun|Verb"===a.switch||a.tags.has("Infinitive"))&&e.length>=2){if(e.length<4&&!cu[e[1].normal])return;if(!a.tags.has("PhrasalVerb")&&r.hasOwnProperty(a.normal))return;(e[1].tags.has("Noun")||e[1].tags.has("Determiner"))&&(e.slice(1,3).some((e=>e.tags.has("Verb")))&&!a.tags.has("#PhrasalVerb")||n([a],"Imperative",t,null,"3-[imperative]"))}};const du=function(e){if(e.filter((e=>!e.tags.has("ProperNoun"))).length<=3)return!1;const t=/^[a-z]/;return e.every((e=>!t.test(e.text)))},gu=function(e,t,n,r){for(let a=0;a{dl(e,0,t,n);for(let t=0;t{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var vu=function(e){const t=e.world,n=Object.keys(fu);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=Cu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=Eu},Du=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const Ou=/'/;var Fu=function(e,t){let n=e[t].normal.split(Ou)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const Vu=/'/;var Gu=function(e,t){let n=e[t].normal.split(Vu)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>!(!e[t+1]||"better"!=e[t+1].normal)||e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]},Bu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){if(e[t+1]&&"never"===e[t+1].normal)return["have"];let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if("i"===n.normal)return["am","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const zu={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Hu={in:!0,by:!0,for:!0};var Lu=(e,t)=>{let n=e[t];if(zu.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("QuestionWord"))return!1;if("he's"===n.normal||"she's"===n.normal)return!1;let r=e[t+1];if(!r)return!0;if("it's"===n.normal)return!!r.tags.has("#Noun");if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return!("here"===e||"there"===e||"everywhere"===e||r.tags.has("Possessive")||r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===Hu[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const $u=/'/,Su=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Mu={d:(e,t)=>Gu(e,t),t:(e,t)=>Bu(e,t),s:(e,t,n)=>Lu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Fu(e,t)},Ju=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Wu={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===$u.test(r[o].normal)&&([,i]=r[o].normal.split($u));let s=null;Mu.hasOwnProperty(i)&&(s=Mu[i](r,o,t)),s&&(s=Ju(s,e),Du(n,[a,o],s),Su(n[a],e,o,s.length))}}))}},qu={compute:Wu,api:Tu,hooks:["contractionTwo"]};const Ku="(i|we|they)";let Ru=[].concat([{match:"(got|were|was|is|are|am) (#PastTense|#Participle)",tag:"Passive",reason:"got-walked"},{match:"(was|were|is|are|am) being (#PastTense|#Participle)",tag:"Passive",reason:"was-being"},{match:"(had|have|has) been (#PastTense|#Participle)",tag:"Passive",reason:"had-been"},{match:"will be being? (#PastTense|#Participle)",tag:"Passive",reason:"will-be-cleaned"},{match:"#Noun [(#PastTense|#Participle)] by (the|a) #Noun",group:0,tag:"Passive",reason:"suffered-by"}],[{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,notIf:"(all|even)",tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"[#Hyphenated (#Hyphenated && #PastTense)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"faith-based"},{match:"[#Hyphenated (#Hyphenated && #Gerund)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"self-driving"},{match:"[#PastTense (#Hyphenated && #PhrasalVerb)] (#Noun|#Conjunction)",group:0,tag:"Adjective",reason:"dammed-up"},{match:"(#Hyphenated && #Value) fold",tag:"Adjective",reason:"two-fold"},{match:"must (#Hyphenated && #Infinitive)",tag:"Adjective",reason:"must-win"},{match:"(#Hyphenated && #Infinitive) #Hyphenated",tag:"Adjective",notIf:"#PhrasalVerb",reason:"vacuum-sealed"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"},{match:"[(un|contra|extra|inter|intra|macro|micro|mid|mis|mono|multi|pre|sub|tri|ex)] #Adjective",group:0,tag:["Adjective","Prefix"],reason:"un-skilled"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"},{match:"#Copula [far too] #Adjective",group:0,tag:"Adverb",reason:"far-too"},{match:"#Copula [still] (in|#Gerund|#Adjective)",group:0,tag:"Adverb",reason:"was-still-walking"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"},{match:"#Gerund [#Gerund]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looking-annoying"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",notIf:"#Hyphenated",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"},{match:"no [#Adjective] #Modal",group:0,tag:"Noun",reason:"no-golden"},{match:"[brand #Gerund?] new",group:0,tag:"Adverb",reason:"brand-new"},{match:"(#Determiner|#Comparative|new|different) [kind]",group:0,tag:"Noun",reason:"some-kind"},{match:"#Possessive [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"her-favourite"},{match:"must && #Hyphenated .",tag:"Adjective",reason:"must-win"},{match:"#Determiner [#Adjective]$",tag:"Noun",notIf:"(this|that|#Comparative|#Superlative)",reason:"the-south"},{match:"(#Noun && #Hyphenated) (#Adjective && #Hyphenated)",tag:"Adjective",notIf:"(this|that|#Comparative|#Superlative)",reason:"company-wide"},{match:"#Determiner [#Adjective] (#Copula|#Determiner)",notIf:"(#Comparative|#Superlative)",group:0,tag:"Noun",reason:"the-poor"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,notIf:"(#Modal|#PhrasalVerb)",tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] #Comparative",group:0,tag:"Adverb",reason:"even-worse"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",notIf:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",notIf:"(#PhrasalVerb|#Copula)",reason:"charge-back"},{match:"#Verb [around]",group:0,tag:"Adverb",notIf:"#PhrasalVerb",reason:"send-around"},{match:"[later] #PresentTense",group:0,tag:"Adverb",reason:"later-say"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) (march|may) !#Infinitive",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"(the|any) [more]",group:0,tag:"Singular",reason:"more-noun"},{match:"[more] #Noun",group:0,tag:"Adjective",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Singular",reason:"bit-2"},{match:"a [must]",group:0,tag:"Singular",reason:"must-2"},{match:"(we|us) [all]",group:0,tag:"Noun",reason:"we all"},{match:"due to [#Verb]",group:0,tag:"Noun",reason:"due-to"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",notIf:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"(a|an|the) [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",notIf:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,notIf:"#Gerund",tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense #Particle?]",group:0,tag:"Noun",notIf:"(seem|appear|include|#Gerund|#Copula)",reason:"det-inf"},{match:"#Noun #Actor",tag:"Actor",notIf:"(#Person|#Pronoun)",reason:"thing-doer"},{match:"#Gerund #Actor",tag:"Actor",reason:"gerund-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"[#Noun+] #Actor",group:0,tag:"Actor",notIf:"(#Honorific|#Pronoun|#Possessive)",reason:"air-traffic-controller"},{match:"(urban|cardiac|cardiovascular|respiratory|medical|clinical|visual|graphic|creative|dental|exotic|fine|certified|registered|technical|virtual|professional|amateur|junior|senior|special|pharmaceutical|theoretical)+ #Noun? #Actor",tag:"Actor",reason:"fine-artist"},{match:"#Noun+ (coach|chef|king|engineer|fellow|personality|boy|girl|man|woman)",tag:"Actor",reason:"dance-coach"},{match:"chief . officer",tag:"Actor",reason:"chief-x-officer"},{match:"chief of #Noun+",tag:"Actor",reason:"chief-of-police"},{match:"senior? vice? president of #Noun+",tag:"Actor",reason:"president-of"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]$",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense #Particle?",notIf:"(#Gerund|her)",tag:"Noun",reason:"possessive-verb"},{match:"(my|our|their|her|his|its) [(#Plural && #Actor)] #Noun",tag:"Possessive",reason:"my-dads"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"},{match:"i #Verb [me] #Noun",group:0,tag:"Possessive",reason:"scottish-me"},{match:"[#PresentTense] (music|class|lesson|night|party|festival|league|ceremony)",group:0,tag:"Noun",reason:"dance-music"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,ifNo:"#Copula",tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",notIf:"(still|even|just)",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"#Copula [(#Gerund|#Activity)] #Copula",group:0,tag:"Gerund",reason:"are-doing-is"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"},{match:"#Singular for [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"noun-for-gerund"},{match:"#Comparative (for|at) [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"better-for-gerund"},{match:"#PresentTense the [#Gerund]",group:0,tag:"Noun",reason:"keep-the-touching"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner (only|further|just|more|backward) [#Infinitive]",group:0,tag:"Noun",reason:"the-only-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"#Plural on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb #Particle?]",notIf:"(#Copula|#Noun|sure|fun|up)",group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",notIf:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",notIf:"#Preposition",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",notIf:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"better",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",notIf:"(#Copula|better)",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"many-poses"},{match:"#Determiner #Adverb #Adjective [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Copula",reason:"very-big-dream"},{match:"from #Noun to [%Noun|Verb%]",group:0,tag:"Noun",reason:"start-to-finish"},{match:"(for|with|of) #Noun (and|or|not) [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Pronoun",reason:"for-food-and-gas"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #Particle #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense] of",group:0,notIf:"(one|1|#Copula|#Infinitive)",tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",notIf:"#Copula",reason:"our-full-support"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",notIf:"going",reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"},{match:"how to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"how-to-noun"},{match:"which [%Noun|Verb%] #Noun",group:0,tag:"Infinitive",reason:"which-boost-it"},{match:"#Gerund [%Plural|Verb%]",group:0,tag:"Plural",reason:"asking-questions"},{match:"(ready|available|difficult|hard|easy|made|attempt|try) to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"ready-to-noun"},{match:"(bring|went|go|drive|run|bike) to [%Noun|Verb%]",group:0,tag:"Noun",reason:"bring-to-noun"},{match:"#Modal #Noun [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"would-you-look"},{match:"#Copula just [#Infinitive]",group:0,tag:"Noun",reason:"is-just-spam"},{match:"^%Noun|Verb% %Plural|Verb%",tag:"Imperative #Plural",reason:"request-copies"},{match:"#Adjective #Plural and [%Plural|Verb%]",group:0,tag:"#Plural",reason:"pickles-and-drinks"},{match:"#Determiner #Year [#Verb]",group:0,tag:"Noun",reason:"the-1968-film"},{match:"#Determiner [#PhrasalVerb #Particle]",group:0,tag:"Noun",reason:"the-break-up"},{match:"#Determiner [%Adj|Noun%] #Noun",group:0,tag:"Adjective",notIf:"(#Pronoun|#Possessive|#ProperNoun)",reason:"the-individual-goals"},{match:"[%Noun|Verb%] or #Infinitive",group:0,tag:"Infinitive",reason:"work-or-prepare"},{match:"to #Infinitive [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|#Copula|help)",reason:"to-give-thanks"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"},{match:"^[#Value] (#Determiner|#Gerund)",group:0,tag:"Expression",unTag:"Value",reason:"numbered-list"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|brother|father|aunt|uncle|grandpa|grandfather|grandma) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",notIf:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",notIf:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(lieutenant|corporal|sergeant|captain|qeen|king|admiral|major|colonel|marshal|president|queen|king)+] #ProperNoun",group:0,tag:"Honorific",reason:"seargeant-john"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:["Honorific","Person"],reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",notIf:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"#Honorific #Actor",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) #Actor",tag:"Honorific",reason:"first lady"},{match:"#Person #RomanNumeral",tag:"Person",reason:"louis-IV"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun",ifNo:"#Actor"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"},{match:"(#FirstName && !#Possessive) [#Singular] #Verb",group:0,safe:!0,tag:"LastName",reason:"jack-layton"},{match:"^[#Singular] #Person #Verb",group:0,safe:!0,tag:"Person",reason:"sherwood-anderson"},{match:"(a|an) [#Person]$",group:0,unTag:"Person",reason:"a-warhol"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:"#Date",group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",notIf:"(come|gotten)",reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(have|had) read",tag:"Modal #PastTense",reason:"read-read"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"},{match:"as #Pronoun [please]",group:0,tag:"Infinitive",reason:"as-we-please"},{match:"[(co|mis|de|inter|intra|pre|re|un|out|under|over|counter)] #Verb",group:0,tag:["Verb","Prefix"],notIf:"(#Copula|#PhrasalVerb)",reason:"co-write"},{match:"#PastTense and [%Adj|Past%]",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"[%Adj|Past%] and #PastTense",group:0,tag:"PastTense",reason:"dressed-and-left"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Copula [#Adjective] (well|badly|quickly|slowly)",group:0,tag:"Verb",reason:"done-well"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"a-bit-confused"},{match:"not be [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"do-not-be-confused"},{match:"#Copula just [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"is-just-right"},{match:"as [#Infinitive] as",group:0,tag:"Adjective",reason:"as-pale-as"},{match:"[%Adj|Past%] and #Adjective",group:0,tag:"Adjective",reason:"faled-and-oppressive"},{match:"or [#PastTense] #Noun",group:0,tag:"Adjective",notIf:"(#Copula|#Pronoun)",reason:"or-heightened-emotion"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"[(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"},{match:"[(been|had|became|came)] #PastTense",group:0,notIf:"#PhrasalVerb",tag:"Auxiliary",reason:"been-told"},{match:"[(being|having|getting)] #Verb",group:0,tag:"Auxiliary",reason:"being-born"},{match:"[be] #Gerund",group:0,tag:"Auxiliary",reason:"be-walking"},{match:"[better] #PresentTense",group:0,tag:"Modal",notIf:"(#Copula|#Gerund)",reason:"better-go"},{match:"even better",tag:"Adverb #Comparative",reason:"even-better"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",notIf:"#Copula",tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"#Verb (up|down|in|on|for)$",tag:"PhrasalVerb #Particle",notIf:"#PhrasalVerb",reason:"come-down$"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Ku,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Ku,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Ku,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",notIf:"(so|such|rather|enough)",reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|a|an|any|each|every|some|more|with|on)",group:0,notIf:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me|there)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^[#Infinitive] (#Adjective|#Adverb)? and #Infinitive",group:0,tag:"Imperative",reason:"call-and-reserve"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^come #Infinitive",tag:"Imperative",notIf:"on",reason:"come-have"},{match:"^come and? #Infinitive",tag:"Imperative . Imperative",notIf:"#PhrasalVerb",reason:"come-and-have"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[(stay|be|keep)] #Adjective",group:0,tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"},{match:"[#Infinitive] what .",group:0,tag:"Imperative",reason:"look-what"},{match:"^[#Infinitive] #Gerund",group:0,tag:"Imperative",reason:"keep-playing"},{match:"^[#Infinitive] (to|for|into|toward|here|there)",group:0,tag:"Imperative",reason:"go-to"},{match:"^[#Infinitive] (and|or) #Infinitive",group:0,tag:"Imperative",reason:"inf-and-inf"},{match:"^[%Noun|Verb%] to",group:0,tag:"Imperative",reason:"commit-to"},{match:"^[#Infinitive] #Adjective? #Singular #Singular",group:0,tag:"Imperative",reason:"maintain-eye-contact"},{match:"do not (forget|omit|neglect) to [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-forget"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"},{match:"#Gerund [#Gerund] #Plural",group:0,tag:"Adjective",reason:"hard-working-fam"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"[right] (before|after|in|into|to|toward)",group:0,tag:"#Adverb",reason:"right-into"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"(are|#Modal|see|do|for) [ya]",group:0,tag:"Pronoun",reason:"are-ya"},{match:"[long live] .",group:0,tag:"#Adjective #Infinitive",reason:"long-live"},{match:"[plenty] of",group:0,tag:"#Uncountable",reason:"plenty-of"},{match:"(always|nearly|barely|practically) [there]",group:0,tag:"Adjective",reason:"always-there"},{match:"[there] (#Adverb|#Pronoun)? #Copula",group:0,tag:"There",reason:"there-is"},{match:"#Copula [there] .",group:0,tag:"There",reason:"is-there"},{match:"#Modal #Adverb? [there]",group:0,tag:"There",reason:"should-there"},{match:"^[do] (you|we|they)",group:0,tag:"QuestionWord",reason:"do-you"},{match:"^[does] (he|she|it|#ProperNoun)",group:0,tag:"QuestionWord",reason:"does-he"},{match:"a [while]",group:0,tag:"Noun",reason:"a-while"},{match:"guess who",tag:"#Infinitive #QuestionWord",reason:"guess-who"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"#ProperNoun+ (river|lake|bay|inlet|creek|narrows|cove|dune|coast|lagoon|beach|peninsula|hill|mountain|canyon|marsh|island|trail|valley|glacier|estuary|desert|escarpment|gorge|plains|waterfall)",tag:"Place",reason:"foo-river"},{match:"(river|gulf|lake) of? #ProperNoun+",tag:"Place",reason:"river-foo"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"a #Noun [like] (#Noun|#Determiner)",group:0,tag:"Preposition",reason:"a-noun-like"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Infinitive #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}],[{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^[(well|so|okay|now)] !#Adjective?",group:0,tag:"Expression",reason:"well-"},{match:"^come on",tag:"Expression",reason:"come-on"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"^(ok|alright|shoot|hell|anyways)",tag:"Expression",reason:"ok-"},{match:"^(say && @hasComma)",tag:"Expression",reason:"say-"},{match:"^(like && @hasComma)",tag:"Expression",reason:"like-"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}]),Uu=null;var Qu={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Uu=Uu||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep(Uu),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const _u={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Qu,model:{two:{matches:Ru}},hooks:["postTagger"]};var Zu=_u,Xu=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))},Yu=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Xu(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},ec={lib:{lazy:Yu}},tc=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e},nc=function(e,t,n){let r=e.split(/ /g).map((e=>e.toLowerCase().trim()));r=r.filter((e=>e)),r=r.map((e=>`{${e}}`)).join(" ");let a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?tc(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model)),e.replaceWith(n,{possessives:!0})}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this},rc={api:function(e){e.prototype.swap=nc}};v.plugin(ju),v.plugin(qu),v.plugin(Zu),v.plugin(ec),v.plugin(rc);const ac=function(e){const{fromComparative:t,fromSuperlative:n}=e.methods.two.transform.adjective;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var oc={api:function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{toAdverb:t,toNoun:n,toSuperlative:r,toComparative:a}=this.methods.two.transform.adjective;return e.normal=!0,this.map((o=>{let i=o.toView().json(e)[0]||{},s=ac(o);return i.adjective={adverb:t(s,this.model),noun:n(s,this.model),superlative:r(s,this.model),comparative:a(s,this.model)},i}),[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(e){const{toComparative:t,toSuperlative:n,toNoun:r,toAdverb:a}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let o=ac(e);return{Adjective:o,Comparative:t(o,this.model),Superlative:n(o,this.model),Noun:r(o,this.model),Adverb:a(o,this.model)}}),[])}toComparative(e){const{toComparative:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=ac(e),r=t(n,this.model);return e.replaceWith(r)}))}toSuperlative(e){const{toSuperlative:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=ac(e),r=t(n,this.model);return e.replaceWith(r)}))}toAdverb(e){const{toAdverb:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=ac(e),r=t(n,this.model);return e.replaceWith(r)}))}toNoun(e){const{toNoun:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=ac(e),r=t(n,this.model);return e.replaceWith(r)}))}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=t.getNth(e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=t.getNth(e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=t.getNth(e),new Adjectives(t.document,t.pointer)}}},ic={api:function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}conjugate(e){return this.getNth(e).map((e=>{let t=function(e){return e.compute("root").text("root")}(e);return{Adverb:e.text("normal"),Adjective:t}}),[])}json(e={}){const t=this.methods.two.transform.adjective.fromAdverb;return e.normal=!0,this.map((n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r}),[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=t.getNth(e),new Adverbs(t.document,t.pointer)}}},sc=function(e){let t=this;return t=function(e){let t=e.parentheses();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.quotations();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.match("@hasComma");return t=t.filter((e=>{if(1===e.growLeft(".").wordCount())return!1;if(1===e.growRight(". .").wordCount())return!1;let t=e.grow(".");return t=t.ifNo("@hasComma @hasComma"),t=t.ifNo("@hasComma (and|or) ."),t=t.ifNo("(#City && @hasComma) #Country"),t=t.ifNo("(#WeekDay && @hasComma) #Date"),t=t.ifNo("(#Date+ && @hasComma) #Value"),t=t.ifNo("(#Adjective && @hasComma) #Adjective"),t.found})),e.splitAfter(t)}(t),t=t.splitAfter("(@hasEllipses|@hasSemicolon|@hasDash|@hasColon)"),t=t.splitAfter("^#Pronoun (said|says)"),t=t.splitBefore("(said|says) #ProperNoun$"),t=t.splitBefore(". . if .{4}"),t=t.splitBefore("and while"),t=t.splitBefore("now that"),t=t.splitBefore("ever since"),t=t.splitBefore("(supposing|although)"),t=t.splitBefore("even (while|if|though)"),t=t.splitBefore("(whereas|whose)"),t=t.splitBefore("as (though|if)"),t=t.splitBefore("(til|until)"),"number"==typeof e&&(t=t.get(e)),t},lc=function(e){let t=[],n=null;return e.clauses().docs.forEach((e=>{e.forEach((e=>{e.chunk&&e.chunk===n?t[t.length-1][2]=e.index[1]+1:(n=e.chunk,t.push([e.index[0],e.index[1],e.index[1]+1]))})),n=null})),e.update(t)},uc=function(e){class Chunks extends e{constructor(e,t,n){super(e,t,n),this.viewType="Chunks"}isVerb(){return this.filter((e=>e.has("")))}isNoun(){return this.filter((e=>e.has("")))}isAdjective(){return this.filter((e=>e.has("")))}isPivot(){return this.filter((e=>e.has("")))}debug(){return this.toView().debug("chunks"),this}update(e){let t=new Chunks(this.document,e);return t._cache=this._cache,t}}e.prototype.chunks=function(e){let t=lc(this);return t=t.getNth(e),new Chunks(this.document,t.pointer)},e.prototype.clauses=sc};const cc={this:"Noun",then:"Pivot"};var hc=function(e){for(let t=0;t",group:0,chunk:"Verb"},{match:"#Noun of #Determiner? #Noun",chunk:"Noun"},{match:"#Value+ #Adverb? #Adjective",chunk:"Noun"},{match:"the [#Adjective] #Noun",chunk:"Noun"},{match:"#Singular in #Determiner? #Singular",chunk:"Noun"},{match:"#Plural [in] #Determiner? #Noun",group:0,chunk:"Pivot"},{match:"#Noun and #Determiner? #Noun",notIf:"(#Possessive|#Pronoun)",chunk:"Noun"}];let pc=null;var mc=function(e,t,n){const{methods:r}=n;pc=pc||r.one.buildNet(gc,n),e.sweep(pc)};const fc=function(e,t){if(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_CHUNKS){let n=(e.normal+"'").padEnd(8);console.log(` | '${n} → [34m${t.padEnd(12)}[0m [2m -fallback- [0m`)}e.chunk=t};var vc=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){const t=e.terms.find((e=>e.tags.has("Verb")));t||e.terms.forEach((e=>e.chunk=null))}}))},yc={chunks:function(e){const{document:t,world:n}=e;hc(t),dc(t),mc(e,t,n),vc(t),bc(t)}},wc={compute:yc,api:uc,hooks:["chunks"]};const kc=/\./g;var Pc=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(kc,""),e.normal=e.normal.replace(kc,"")}))})),this}addPeriods(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(kc,""),e.normal=e.normal.replace(kc,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."}))})),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=t.getNth(e),new Acronyms(t.document,t.pointer)}};const Ac=/\(/,Nc=/\)/,jc=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Ac,"");let t=e[e.length-1];t.post=t.post.replace(Nc,"")})),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n{e.forEach((e=>{e.text=e.text.replace(xc,""),e.normal=e.normal.replace(xc,"")}))})),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=t.getNth(e),new Possessives(t.document,t.pointer)}};const Cc={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Tc=RegExp("["+Object.keys(Cc).join("")+"]"),Dc=RegExp("["+Object.values(Cc).join("")+"]"),Oc=function(e,t){const n=e[t].pre.match(Tc)[0]||"";if(!n||!Cc[n])return null;const r=Cc[n];for(;t{e[0].pre=e[0].pre.replace(Tc,"");let t=e[e.length-1];t.post=t.post.replace(Dc,"")}))}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}})),e.prototype.phoneNumbers=Vc,Bc.forEach((t=>{e.prototype[t[0]]=e.prototype[t[1]]}))},Hc={api:function(e){Pc(e),Ic(e),Ec(e),Fc(e),zc(e)}};const Lc=function(e,t){e.docs.forEach((e=>{e.forEach(t)}))};var $c={case:e=>{Lc(e,(e=>{e.text=e.text.toLowerCase()}))},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;Lc(e,(e=>e.text=n(e.text,t)))},whitespace:e=>{Lc(e,(e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")}))},punctuation:e=>{Lc(e,(e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")}));let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()},debullet:e=>{const t=/^\s*([-–—*•])\s*$/;return e.docs.forEach((e=>{t.test(e[0].pre)&&(e[0].pre=e[0].pre.replace(t,""))})),e}};const Sc=e=>e.split("|").reduce(((e,t)=>(e[t]=!0,e)),{}),Mc="unicode|punctuation|whitespace|acronyms",Jc="|case|contractions|parentheses|quotations|emoji|honorifics|debullet",Wc={light:Sc(Mc),medium:Sc(Mc+Jc),heavy:Sc(Mc+Jc+"|possessives|adverbs|nouns|verbs")};var qc={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=Wc[e]),Object.keys(e).forEach((t=>{$c.hasOwnProperty(t)&&$c[t](this,e[t])})),this}}},Kc=function(e){let t=e.clauses().match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they|i)"),t=t.splitOn("(#Noun|#Adjective) [(he|him|she|it)]",0),t=t.splitOn("[(he|him|she|it)] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.splitBefore("(our|my|their|your)"),t=t.splitOn("#Noun [#Determiner]",0),t=t.if("#Noun"),t};const Rc=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var Uc=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")},_c=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t=t.first(),t.found?t:e}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Qc(e,t),isSubordinate:Uc(e),root:t}};const Zc=e=>e.text(),Xc=e=>e.json({terms:!1,normal:!0}).map((e=>e.normal)),Yc=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var eh=function(e){let t=_c(e);return{root:Zc(t.root),number:Yc(t.number),determiner:Zc(t.determiner),adjectives:Xc(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}},th=function(e){return!e.has("^(#Uncountable|#ProperNoun|#Place|#Pronoun|#Acronym)+$")};const nh={tags:!0};var rh=function(e,t){if(!0===t.isPlural)return e;if(t.root.has("#Possessive")&&(t.root=t.root.possessives().strip()),!th(t.root))return e;const{methods:n,model:r}=e.world,{toPlural:a}=n.two.transform.noun;let o=a(t.root.text({keepPunct:!1}),r);e.match(t.root).replaceWith(o,nh).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.remove(t.determiner);let i=t.root.after("not? #Adverb+? [#Copula]",0);return i.found&&(i.has("is")?e.replace(i,"are"):i.has("was")&&e.replace(i,"were")),e};const ah={tags:!0};var oh=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{toSingular:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,ah).tag("Singular","toPlural"),e},ih=function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return this.getNth(e).map(_c)}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0]||{};return t&&!0!==t.noun&&(n.noun=eh(e)),n}),[])}conjugate(e){const t=this.world.methods.two.transform.noun;return this.getNth(e).map((e=>{let n=_c(e),r=n.root.compute("root").text("root"),a={Singular:r};return th(n.root)&&(a.Plural=t.toPlural(r,this.model)),a.Singular===a.Plural&&delete a.Plural,a}),[])}isPlural(e){let t=this.filter((e=>_c(e).isPlural));return t.getNth(e)}isSingular(e){let t=this.filter((e=>!_c(e).isPlural));return t.getNth(e)}adjectives(e){let t=this.update([]);return this.forEach((e=>{let n=_c(e).adjectives;n.found&&(t=t.concat(n))})),t.getNth(e)}toPlural(e){return this.getNth(e).map((e=>rh(e,_c(e))))}toSingular(e){return this.getNth(e).map((e=>{let t=_c(e);return oh(e,t)}))}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Kc(this);return t=t.getNth(e),new Nouns(this.document,t.pointer)}},sh={api:ih},lh=function(e,t){let n=e.match("#Fraction+");return n=n.filter((e=>!e.lookBehind("#Value and$").found)),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n},uh=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(ch.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(ch.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(ch.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},dh=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const ph=/^([0-9,. ]+)\/([0-9,. ]+)$/,mh={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},fh=e=>Object.keys(e).reduce(((t,n)=>t+=e[n]),0);var vh=function(e){if(!0===mh.hasOwnProperty(e))return mh[e];if("a"===e||"an"===e)return 1;const t=uh(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=yh(n),r=yh(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:yh(n);let a=r.text("reduced");return bh.test(a)&&(a=a.replace(bh,""),r=r.replaceWith(a)),r=wh.hasOwnProperty(a)?wh[a]:yh(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:yh(t)}:null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t},Ph=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const Ah=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Nh=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],jh=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],Ih=function(e){let t=[];if(e>100)return t;for(let n=0;n=Ah[n][1]&&(e-=Ah[n][1],t.push(Ah[n][0]));return Nh[e]&&t.push(Nh[e]),t};var xh=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Ph(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return jh.forEach((r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}})),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(Ih(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=Ph(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee)),0===n.length&&(n[0]=""),n.join(" ")},Eh=function(e){return e.numerator&&e.denominator?`${xh({num:e.numerator})} out of ${xh({num:e.denominator})}`:""};const Ch={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var Th=e=>{let t=xh(e).split(" "),n=t[t.length-1];return Ch.hasOwnProperty(n)?t[t.length-1]=Ch[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},Dh=function(e){if(!e.numerator||!e.denominator)return"";let t=xh({num:e.numerator}),n=Th({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""},Oh=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return this.getNth(e).map(kh)}get(e){return this.getNth(e).map(kh)}json(e){return this.getNth(e).map((t=>{let n=t.toView().json(e)[0],r=kh(t);return n.fraction=r,n}),[])}toDecimal(e){return this.getNth(e).forEach((e=>{let{decimal:t}=kh(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")})),this}toFraction(e){return this.getNth(e).forEach((e=>{let t=kh(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}})),this}toOrdinal(e){return this.getNth(e).forEach((e=>{let t=kh(e),n=Dh(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)})),this}toCardinal(e){return this.getNth(e).forEach((e=>{let t=kh(e),n=Eh(t);e.replaceWith(n)})),this}toPercentage(e){return this.getNth(e).forEach((e=>{let{decimal:t}=kh(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(`${n}%`)})),this}}e.prototype.fractions=function(e){let t=lh(this);return t=t.getNth(e),new Fractions(this.document,t.pointer)}};const Fh="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var Vh=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+Fh+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+Fh+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+Fh+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+Fh+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${Fh})`),r=e.has("("+Fh+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach((e=>{t=t.splitOn(e)}))}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+Fh+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+Fh+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},Gh=function(e){if("string"==typeof e)return{num:vh(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=kh(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=vh(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}},Bh=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=Ph(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const zh={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},Hh={"%":"percent","°":"degrees"};var Lh=function(e){let t={suffix:"",prefix:e.prefix};return zh.hasOwnProperty(e.prefix)&&(t.suffix+=" "+zh[e.prefix],t.prefix=""),Hh.hasOwnProperty(e.suffix)&&(t.suffix+=" "+Hh[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},$h=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=Lh(e);return t+Th(e)+n}if("Ordinal"===t)return e.prefix+Bh(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=Lh(e);return t+xh(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix},Sh=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return this.getNth(e).map(Gh)}get(e){return this.getNth(e).map(Gh).map((e=>e.num))}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0],r=Gh(e);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n}),[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach((e=>{let t=Gh(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=$h(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")})),this}toLocaleString(){return this.forEach((e=>{let t=Gh(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=$h(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})})),this}toText(){let e=this.map((e=>{if(e.has("#TextValue"))return e;let t=Gh(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=$h(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e}));return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map((e=>{if(!e.has("#Ordinal"))return e;let t=Gh(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=$h(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e}));return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map((e=>{if(e.has("#Ordinal"))return e;let t=Gh(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=$h(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e}));return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter((t=>Gh(t).num===e))}greaterThan(e){return this.filter((t=>Gh(t).num>e))}lessThan(e){return this.filter((t=>Gh(t).num{let r=Gh(n).num;return r>e&&r{let n=Gh(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=$h(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=Gh(e).num);let t=this.map((t=>{let n=Gh(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=$h(n,r);return t.replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=Vh(this);return t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=Vh(this);return t=t.filter((e=>e.has("#Percent")||e.after("^percent"))),t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=Vh(this);return t=t.filter((e=>e.has("#Money")||e.after("^#Currency"))),t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},Mh={api:function(e){Oh(e),Sh(e)}};const Jh={people:!0,emails:!0,phoneNumbers:!0,places:!0},Wh=function(e={}){return!1!==(e=Object.assign({},Jh,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this},qh={api:function(e){e.prototype.redact=Wh}};var Kh=qh,Rh=function(e){const t=/\?/,{document:n}=e;return e.filter((e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))}))},Uh=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))};const Qh=function(e){let t=null;return e.has("#PastTense")?t="PastTense":e.has("#FutureTense")?t="FutureTense":e.has("#PresentTense")&&(t="PresentTense"),{tense:t}};var _h=function(e){let t=e.clauses(),n=Uh(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach(((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e})),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o,grammar:Qh(a)}},Zh=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e},Xh=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e},Yh=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let e=t.filter((e=>!(e.lookBehind("to$").found||!e.has("#Copula #Gerund")&&(e.has("#Gerund")||!e.has("#Copula")&&e.has("#PresentTense")&&!e.has("#Infinitive")&&e.lookBefore("(he|she|it|that|which)$").found))));e.found&&e.forEach((e=>{if(e.has("#Copula"))return e.match("was").replaceWith("is"),void e.match("is").replaceWith("will be");e.toInfinitive()}))}return e},ed=function(e){return e.verbs().toInfinitive(),e},td=function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o,grammar:i}=_h(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal"),grammar:i},n}),[])}toPastTense(e){return this.getNth(e).map((e=>(_h(e),Zh(e))))}toPresentTense(e){return this.getNth(e).map((e=>(_h(e),Xh(e))))}toFutureTense(e){return this.getNth(e).map((e=>(_h(e),e=Yh(e))))}toInfinitive(e){return this.getNth(e).map((e=>(_h(e),ed(e))))}toNegative(e){return this.getNth(e).map((e=>(_h(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e))))}toPositive(e){return this.getNth(e).map((e=>(_h(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e))))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter((e=>e.lastTerm().has("@hasExclamation")));return t.getNth(e)}isStatement(e){let t=this.filter((e=>!e.isExclamation().found&&!e.isQuestion().found));return t.getNth(e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map((e=>e.fullSentence()));return t=t.getNth(e),new Sentences(this.document,t.pointer)},questions:function(e){return Rh(this).getNth(e)}};Object.assign(e.prototype,t)},nd={api:td},rd=function(e){return e.match("#Honorific+? #Person+")},ad=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const od="male",id="female",sd={mr:od,mrs:id,miss:id,madam:id,king:od,queen:id,duke:od,duchess:id,baron:od,baroness:id,count:od,countess:id,prince:od,princess:id,sire:od,dame:id,lady:id,ayatullah:od,congressman:od,congresswoman:id,"first lady":id,mx:null};var ld=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return id;if(n.has("#MaleName"))return od;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),sd.hasOwnProperty(e))return sd[e];if(/^her /.test(e))return id;if(/^his /.test(e))return od}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return od;if(n&&!t)return id}return null},ud=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return this.getNth(e).map(ad)}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0],r=ad(e);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:ld(r,e)},n}),[])}presumedMale(){return this.filter((e=>e.has("(#MaleName|mr|mister|sr|jr|king|pope|prince|sir)")))}presumedFemale(){return this.filter((e=>e.has("(#FemaleName|mrs|miss|queen|princess|madam)")))}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=rd(this);return t=t.getNth(e),new People(this.document,t.pointer)}},cd=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter((e=>!!e.has("(asia|africa|europe|america)$")||!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found)),t=t.splitAfter(n),t},hd=function(e){e.prototype.places=function(t){let n=cd(this);return n=n.getNth(t),new e(this.document,n.pointer)}},dd=function(e){e.prototype.organizations=function(e){return this.match("#Organization+").getNth(e)}};const gd=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=n.getNth(e),n};var pd=function(e){e.prototype.topics=gd},md={api:function(e){ud(e),hd(e),dd(e),pd(e)}},fd=function(e){let t=e.match("");return t=t.not("(#Conjunction && !to)"),t=t.not("#Preposition"),t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0),t=t.not("#Reflexive$"),t=t.splitAfter("[#PastTense] #PastTense",0),t=t.splitAfter("[#PastTense] #Auxiliary+ #PastTense",0),t=t.splitAfter("#Copula [#Gerund] #PastTense",0),t=t.if("#Verb"),t.has("(#Verb && !#Auxiliary) #Adverb+? #Copula")&&(t=t.splitBefore("#Copula")),t},vd=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t},bd=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const yd=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},wd=function(e){return e.match("#Negative")},kd=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Pd=function(e){let t=e.clone();t.contractions().expand();const n=vd(t);return{root:n,prefix:t.match("#Prefix"),adverbs:bd(t,n),auxiliary:yd(t,n),negative:wd(t),phrasal:kd(n)}};const Ad={tense:"PresentTense"},Nd={conditional:!0},jd={tense:"FutureTense"},Id={progressive:!0},xd={tense:"PastTense"},Ed={complete:!0,progressive:!1},Cd={passive:!0},Td=function(e){let t={};return e.forEach((e=>{Object.assign(t,e)})),t},Dd={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Ad]],["^wanted to #Infinitive$",[xd]],["^will want to #Infinitive$",[jd]]],"gerund-phrase":[["^#PastTense #Gerund$",[xd]],["^#PresentTense #Gerund$",[Ad]],["^#Infinitive #Gerund$",[Ad]],["^will #Infinitive #Gerund$",[jd]],["^have #PastTense #Gerund$",[xd]],["^will have #PastTense #Gerund$",[xd]]],"simple-present":[["^#PresentTense$",[Ad]],["^#Infinitive$",[Ad]]],"simple-past":[["^#PastTense$",[xd]]],"simple-future":[["^will #Adverb? #Infinitive",[jd]]],"present-progressive":[["^(is|are|am) #Gerund$",[Ad,Id]]],"past-progressive":[["^(was|were) #Gerund$",[xd,Id]]],"future-progressive":[["^will be #Gerund$",[jd,Id]]],"present-perfect":[["^(has|have) #PastTense$",[xd,Ed]]],"past-perfect":[["^had #PastTense$",[xd,Ed]],["^had #PastTense to #Infinitive",[xd,Ed]]],"future-perfect":[["^will have #PastTense$",[jd,Ed]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[xd,Id]]],"past-perfect-progressive":[["^had been #Gerund$",[xd,Id]]],"future-perfect-progressive":[["^will have been #Gerund$",[jd,Id]]],"passive-past":[["(got|were|was) #Passive",[xd,Cd]],["^(was|were) being #Passive",[xd,Cd]],["^(had|have) been #Passive",[xd,Cd]]],"passive-present":[["^(is|are|am) #Passive",[Ad,Cd]],["^(is|are|am) being #Passive",[Ad,Cd]],["^has been #Passive",[Ad,Cd]]],"passive-future":[["will have been #Passive",[jd,Cd,Nd]],["will be being? #Passive",[jd,Cd,Nd]]],"present-conditional":[["would be #PastTense",[Ad,Nd]]],"past-conditional":[["would have been #PastTense",[xd,Nd]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[jd]]],"auxiliary-past":[["^did #Infinitive$",[xd,{plural:!1}]],["^used to #Infinitive$",[xd,Ed]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Ad,Ed,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[xd]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let Od=[];Object.keys(Dd).map((e=>{Dd[e].forEach((t=>{Od.push({name:e,match:t[0],data:Td(t[1])})}))}));var Fd=Od,Vd=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb")))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),Gd(r)&&(n.remove(r),r=n.last()),Gd(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:Bd(t,e)}};const Hd=e=>e,Ld=(e,t)=>{let n=zd(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},$d=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=zd(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Sd=function(e,t){let n=zd(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Md=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},Jd=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Md(e)),r&&e.replace(t.root,r),e},Wd=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),qd=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map((e=>e.normal)):[]},Kd=function(e){return e&&e.isView?e.text("normal"):""},Rd=function(e){const{toInfinitive:t}=e.methods.two.transform.verb;return t(e.text("normal"),e.model,Md(e))};var Ud=function(e){let t=Pd(e);e=e.clone().toView();const n=Vd(e,t);return{root:t.root.text(),preAdverbs:qd(t.adverbs.pre),postAdverbs:qd(t.adverbs.post),auxiliary:Kd(t.auxiliary),negative:t.negative.found,prefix:Kd(t.prefix),infinitive:Rd(t.root),grammar:n}};const Qd={tags:!0};var _d=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Md(r)),i&&e.replace(r,i,Qd).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Sd(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Zd={tags:!0},Xd={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Md(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=zd(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Zd),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Xd.simple(e,t),e=Xd.noAux(e,t))},hasHad:e=>(e.replace("has","had",Zd),e),hasParticiple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Md(a)),n(o,e.model).Participle}},Yd={infinitive:Xd.simple,"simple-present":Xd.simple,"simple-past":Hd,"simple-future":Xd.both,"present-progressive":e=>(e.replace("are","were",Zd),e.replace("(is|are|am)","was",Zd),e),"past-progressive":Hd,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Xd.hasHad,"past-perfect":Hd,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=Wd(e)),e.remove("have"),e),"present-perfect-progressive":Xd.hasHad,"past-perfect-progressive":Hd,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Zd),e),"passive-past":e=>(e.replace("have","had",Zd),e),"passive-present":e=>(e.replace("(is|are)","was",Zd),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",Zd),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Hd,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Zd),e),"auxiliary-past":Hd,"auxiliary-present":e=>(e.replace("(do|does)","did",Zd),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Zd):(Xd.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Hd,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Zd),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Xd.simple(e,t),Wd(e),e)};var eg=function(e,t,n){return Yd.hasOwnProperty(n)?((e=Yd[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const tg=function(e,t){let n=zd(e),r=n.subject;return r.has("(i|we|you)")?"have":!1===n.plural||r.has("he")||r.has("she")||r.has("#Person")?"has":"have"},ng=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(a.has("#Modal"))return e;let i=a.text({keepPunct:!1});i=r(i,e.model,Md(a));let s=n(i,e.model);if(i=s.Participle||s.PastTense,i){e=e.replace(a,i);let t=tg(e);e.prepend(t).match(t).tag("Auxiliary"),e.remove(o)}return e},rg={infinitive:ng,"simple-present":ng,"simple-future":(e,t)=>e.replace("will",tg(e)),"present-perfect":Hd,"past-perfect":Hd,"future-perfect":(e,t)=>e.replace("will have",tg(e)),"present-perfect-progressive":Hd,"past-perfect-progressive":Hd,"future-perfect-progressive":Hd};var ag=function(e,t,n){return rg.hasOwnProperty(n)?((e=rg[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):((e=ng(e,t)).fullSentence().compute(["tagger","chunks"]),e)};const og={tags:!0},ig=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Md(a)),!1===Ld(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=$d(e)),o&&(e=e.replace(a,o,og)).not("#Particle").tag("PresentTense"),e},sg=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Md(a)),!1===Ld(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,og)).not("#Particle").tag("Gerund"),e},lg={infinitive:ig,"simple-present":(e,t)=>{const{conjugate:n}=e.methods.two.transform.verb;let{root:r}=t;if(!r.has("#Infinitive"))return ig(e,t);{let t=zd(e).subject;if(Ld(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,og)}return e},"simple-past":ig,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=$d(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else ig(e,t),e=e.remove("will");return e},"present-progressive":Hd,"past-progressive":(e,t)=>{let n=$d(e);return e.replace("(were|was)",n,og)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(ig(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=zd(e).subject;return Ld(e)||n.has("i")?((e=Jd(e,t)).remove("had"),e):(e.replace("had","has",og),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Hd,"past-perfect-progressive":e=>e.replace("had","has",og),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=$d(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,og),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Hd,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Hd,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(sg(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=Sd(e);return e.replace(t.auxiliary,n),e}return sg(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Hd,"modal-infinitive":Hd,"modal-past":(e,t)=>(((e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Md(r)),a&&(e=e.replace(t.root,a,og))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),ig(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Ld(e)&&(n="want"),e.replace("(want|wanted|wants)",n,og),e.remove("will"),e}};var ug=function(e,t,n){return lg.hasOwnProperty(n)?((e=lg[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const cg={tags:!0},hg=(e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Md(r)),o&&(e=e.replace(r,o,cg)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},dg=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Md(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,cg),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},gg={infinitive:hg,"simple-present":hg,"simple-past":hg,"simple-future":Hd,"present-progressive":dg,"past-progressive":dg,"future-progressive":Hd,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Hd,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Hd,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":Hd,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Hd,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":Hd,"modal-past":Hd,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),hg(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var pg=function(e,t,n){return e.has("will")||e.has("going to")?e:gg.hasOwnProperty(n)?((e=gg[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const mg={tags:!0};var fg=function(e,t){const{toInfinitive:n,conjugate:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Md(a));let s=r(i,e.model).Gerund;if(s){let t=$d(e);e.replace(a,s,mg),e.remove(o),e.prepend(t)}return e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const vg={tags:!0},bg=function(e,t){let n=Sd(e);return e.prepend(n+" not"),e},yg=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},wg=e=>e.has("(is|was|am|are|will|were|be)"),kg={"simple-present":(e,t)=>!0===wg(e)?yg(e):(e=Jd(e,t),e=bg(e)),"simple-past":(e,t)=>!0===wg(e)?yg(e):((e=Jd(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===wg(e)?yg(e):bg(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",vg),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=bg(e)).replace("wants","want",vg)};var Pg=function(e,t,n){if(e.has("#Negative"))return e;if(kg.hasOwnProperty(n))return e=kg[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===wg(e)?yg(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)},Ag=function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return this.getNth(e).map(Pd)}json(e,t){let n=this.getNth(t).map((t=>{let n=t.toView().json(e)[0]||{};return n.verb=Ud(t),n}),[]);return n}subjects(e){return this.getNth(e).map((e=>(Pd(e),zd(e).subject)))}adverbs(e){return this.getNth(e).map((e=>e.match("#Adverb")))}isSingular(e){return this.getNth(e).filter((e=>!0!==zd(e).plural))}isPlural(e){return this.getNth(e).filter((e=>!0===zd(e).plural))}isImperative(e){return this.getNth(e).filter((e=>e.has("#Imperative")))}toInfinitive(e){return this.getNth(e).map((e=>{let t=Pd(e),n=Vd(e,t);return _d(e,t,n.form)}))}toPresentTense(e){return this.getNth(e).map((e=>{let t=Pd(e),n=Vd(e,t);return ug(e,t,n.form)}))}toPastTense(e){return this.getNth(e).map((e=>{let t=Pd(e),n=Vd(e,t);return eg(e,t,n.form)}))}toFutureTense(e){return this.getNth(e).map((e=>{let t=Pd(e),n=Vd(e,t);return pg(e,t,n.form)}))}toGerund(e){return this.getNth(e).map((e=>{let t=Pd(e),n=Vd(e,t);return fg(e,t,n.form)}))}toPastParticiple(e){return this.getNth(e).map((e=>{let t=Pd(e),n=Vd(e,t);return ag(e,t,n.form)}))}conjugate(e){const{conjugate:t,toInfinitive:n}=this.world.methods.two.transform.verb;return this.getNth(e).map((e=>{let r=Pd(e),a=Vd(e,r);"imperative"===a.form&&(a.form="simple-present");let o=r.root.text("normal");if(!r.root.has("#Infinitive")){let t=Md(r.root);o=n(o,e.model,t)||o}return t(o,e.model)}),[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return this.getNth(e).map((e=>{let t=Pd(e),n=Vd(e,t);return Pg(e,t,n.form)}))}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=fd(this);return t=t.getNth(e),new Verbs(this.document,t.pointer)}},Ng={api:Ag};const jg=function(e,t){let n=t.match(e);if(n.found){let e=n.pronouns().refersTo();if(e.found)return e}return t.none()},Ig=function(e){if(!e.found)return e;let[t]=e.fullPointer[0];return t&&t>0?e.update([[t-1]]):e.none()};var xg=function(e,t){let n=e.people();return n=function(e,t){return"m"===t?e.filter((e=>!e.presumedFemale().found)):"f"===t?e.filter((e=>!e.presumedMale().found)):e}(n,t),n.found?n.last():(n=e.nouns("#Actor"),n.found?n.last():"f"===t?jg("(she|her|hers)",e):"m"===t?jg("(he|him|his)",e):e.none())},Eg=function(e){let t=e.nouns(),n=t.isPlural().notIf("#Pronoun");if(n.found)return n.last();let r=jg("(they|their|theirs)",e);return r.found?r:(n=t.match("(somebody|nobody|everybody|anybody|someone|noone|everyone|anyone)"),n.found?n.last():e.none())};const Cg=function(e,t){let n=e.before(),r=t(n);return r.found?r:(n=Ig(e),r=t(n),r.found?r:(n=Ig(n),r=t(n),r.found?r:e.none()))};var Tg=function(e){e.pronouns().if("(he|him|his|she|her|hers|they|their|theirs|it|its)").forEach((e=>{let t=null;e.has("(he|him|his)")?t=Cg(e,(e=>xg(e,"m"))):e.has("(she|her|hers)")?t=Cg(e,(e=>xg(e,"f"))):e.has("(they|their|theirs)")&&(t=Cg(e,Eg)),t&&t.found&&function(e,t){t&&t.found&&(e.docs[0][0].reference=t.ptrs[0])}(e,t)}))},Dg=function(e){class Pronouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Pronouns"}hasReference(){return this.compute("coreference"),this.filter((e=>e.docs[0][0].reference))}refersTo(){return this.compute("coreference"),this.map((e=>{if(!e.found)return e.none();let t=e.docs[0][0];return t.reference?e.update([t.reference]):e.none()}))}update(e){let t=new Pronouns(this.document,e);return t._cache=this._cache,t}}e.prototype.pronouns=function(e){let t=this.match("#Pronoun");return t=t.getNth(e),new Pronouns(t.document,t.pointer)}},Og={compute:{coreference:Tg},api:Dg};return v.plugin(oc),v.plugin(ic),v.plugin(wc),v.plugin(Og),v.plugin(Hc),v.plugin(qc),v.plugin(sh),v.plugin(Mh),v.plugin(Kh),v.plugin(nd),v.plugin(md),v.plugin(Ng),v},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t();
diff --git a/builds/three/compromise-three.mjs b/builds/three/compromise-three.mjs
index 52c98b6b4..ab4c73ca1 100644
--- a/builds/three/compromise-three.mjs
+++ b/builds/three/compromise-three.mjs
@@ -1 +1 @@
-var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t;var r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)},isFull:function(){let e=this.pointer;if(!e)return!0;let t=this.document;for(let n=0;no)return!1}return!0},getNth:function(e){return"number"==typeof e?this.eq(e):"string"==typeof e?this.if(e):this}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var m=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e){return new t(r.one.tokenize.fromString(e,n))}if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let p=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=m(e,l,p);return e&&n.compute(p.hooks),n};Object.defineProperty(f,"_world",{value:p,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=m(e,l,p);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.8.2";var v=f;var b=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},I=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},N=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},j=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?I(n):(I(n),I([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!P(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||P(a.text)&&a.text.length>1&&(a.text=(o=a.text,o.replace(/^\p{Lu}/u,(e=>e.toLowerCase()))));var o}(e,o,n),A(e,o,n)};let x=0;const E=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var T=function(e){let[t,n]=e.index||[0,0];x+=1,x=x>46655?0:x,t=t>46655?0:t,n=n>1294?0:n;let r=E(x.toString(36));r+=E(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const C=function(e){if(e.has("@hasContraction")&&"function"==typeof e.contractions){e.grow("@hasContraction").contractions().expand()}},D=e=>"[object Array]"===Object.prototype.toString.call(e),O=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:D(e)?D(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=T(e),e)))}(d),n?(C(t.update([u]).firstTerm()),j(h,u,d,r)):(C(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(G,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let a=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(a.docs[0]||[]).map((e=>Array.from(e.tags)));if("string"==typeof e&&(e=this.fromText(e).compute("id")),r.insertAfter(e),a.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},B.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?(this.soften(),r.replaceWith(t,n)):this};var z=B;var $=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const L={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e));let a=!n.ptrs;if(r.has("@hasContraction")&&r.contractions){r.grow("@hasContraction").contractions().expand()}let o=n.fullPointer,i=r.fullPointer.reverse(),s=$(this.document,i);return o=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(o,t(i)),n.ptrs=o,n.document=s,n.compute("index"),a&&(n.ptrs=void 0),e?n.toView(o):(this.ptrs=[],n.none())}};L.delete=L.remove;var S=L;const M={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};M.deHyphenate=M.dehyphenate,M.toQuotation=M.toQuotations;var H=M;var J={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),K=new Set(["freq","frequency","topk","repeats"]),q=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return W.has(e)&&(e="sequential"),q.has(e)&&(e="alpha"),K.has(e)?(a=J.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof J[e]?(a=a.sort(J[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){if(e.length>0){let t=e[e.length-1],n=t[t.length-1];!1===/ /.test(n.post)&&(n.post+=" ")}return e=e.concat(t)};var Q={concat:function(e){if("string"==typeof e){let t=this.fromText(e);if(this.found&&this.ptrs){let e=this.fullPointer,n=e[e.length-1][0];this.document.splice(n,0,...t.document)}else this.document=this.document.concat(t.document);return this.all().compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.docs),e.all()}(this,e);if(t=e,"[object Array]"===Object.prototype.toString.call(t)){let t=R(this.document,e);return this.document=t,this.all()}var t;return this}};var _={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const Y=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},F,z,S,H,U,Q,_);var Z=function(e){Object.assign(e.prototype,Y)};const X={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const re=/'/,ae=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(re)[0];if(ae.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null};var le=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ge=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,me=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,pe=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],r=n.text.match(ge);return null!==r?!0===n.tags.has("PhoneNumber")||pe.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(me),null!==r?[r[1],"to",r[4]]:null)};const ve=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,be=new Set(["st","nd","rd","th","am","pm","max","°","s","e"]);var ye=function(e,t){let n=e[t].text.match(ve);if(null!==n){let e=n[2].toLowerCase().trim();return be.has(e)?null:[n[1],e]}return null};const we=/'/,ke=/^[0-9][^-–—]*[-–—].*?[0-9]/,Pe=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},Ie={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},Ne=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=Ne(o,r[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](r,s,t)),!c&&Ie.hasOwnProperty(l)&&(c=Ie[l](r,s)),c?(c=je(c,e),ne(n,[i,s],c),Pe(n[i],e,s,c.length)):ke.test(r[s].normal)?(c=fe(r,s),c&&(c=je(c,e),ne(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),Pe(n[i],e,s,c.length))):(c=ye(r,s),c&&(c=je(c,e),ne(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))};var Ee={model:te,compute:{contractions:xe},hooks:["contractions"]};var Te=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e){return o([s],i[e],n,!1,"1-lexicon-alias"),!0}}if(!0===Ce.test(l)){let e=l.replace(Ce,"");if(i.hasOwnProperty(e)&&e.length>3&&De.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var Ve={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}};var Ge={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}};var Be={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Fe}},compute:Ve,lib:Ge,hooks:["lexicon"]};var ze=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;let a=n.one.tokenize.splitTerms(e,r).map((e=>n.one.tokenize.splitWhitespace(e,r)));return a.map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const $e=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Me=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var He=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Me(e.goNext,void 0),e.failTo=Me(e.failTo,0),e.endAs=Me(e.endAs,null),e};const Je={buildTrie:function(e){const t=ze(e,this.world());return He(t)}};Je.compile=Je.buildTrie;var We={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:ze(e,this.world));var r;let a=Se(this,n,t);return a=a.settle(),a}},lib:Je};const Ke=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},qe=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Ke(n,t),Object.keys(r).forEach((e=>{r[e]=Ke(r[e],t)})),{ptrs:n,byGroup:r}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,Qe=e=>e&&Ue(e)&&!0===e.isNet,_e=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Ye={matchOne:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(Qe(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=_e(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=qe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e);if(Qe(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=_e(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=qe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Re(e)){return e.fullPointer.length>0}if(Qe(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=_e(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=_e(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=_e(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}};var Ze={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Xe=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},tt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Xe(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Xe(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var rt=nt;const at=Object.assign({},Ye,Ze,rt);at.lookBehind=at.before,at.lookBefore=at.before,at.lookAhead=at.after,at.lookAfter=at.after,at.notIf=at.ifNo;var ot=function(e){Object.assign(e.prototype,at)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?r.push(e):r=r.concat(e.split(lt))})),r=ct(r),r};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,gt=/&&/,mt=new RegExp(/^<\s*(\S+)\s*>/),pt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),vt=e=>e.charAt(0),bt=e=>e.substring(1),yt=e=>e.substring(0,e.length-1),wt=function(e){return e=bt(e),e=yt(e)},kt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ft(e)&&(n.end=!0,e=yt(e)),"^"===vt(e)&&(n.start=!0,e=bt(e)),("["===vt(e)||"]"===ft(e))&&(n.group=null,"["===vt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===vt(e))){const t=mt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=yt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=yt(e)),"?"===ft(e)&&(n.optional=!0,e=yt(e)),"!"===vt(e)&&(n.negative=!0,e=bt(e)),"~"===vt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===vt(e)&&")"===ft(e)){gt.test(e)?(n.choices=e.split(gt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=bt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=yt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>kt(e,t))))),e=""}if("/"===vt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===vt(e)&&"}"===ft(e)){if(e=wt(e),n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.sense=e[2])}return n}if("<"===vt(e)&&">"===ft(e))return e=wt(e),n.chunk=pt(e),n.greedy=!0,n;if("%"===vt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===vt(e)?(n.tag=bt(e),n.tag=pt(n.tag),n):"@"===vt(e)?(n.method=bt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var Pt=kt;const At=/[a-z0-9][-–—][a-z]/i;var It=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&At.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e};const Nt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},jt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},xt=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var Et=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(Nt(e,t)):"Noun"===e.pos?n=n.concat(jt(e,t)):"Adjective"===e.pos&&(n=n.concat(xt(e,t))):(n=n.concat(Nt(e,t)),n=n.concat(jt(e,t)),n=n.concat(xt(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))};var Tt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e};var Ct=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=ht(e);return r=r.map((e=>Pt(e,t))),r=It(r,n),r=Et(r,n),r=Tt(r),r};const Dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ot=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),Lt=(e,t)=>-1!==e.pre.indexOf(t),St={hasQuote:e=>Ft.test(e.pre)||Gt.test(e.post),hasComma:e=>$t(e,","),hasPeriod:e=>!0===$t(e,".")&&!1===$t(e,"..."),hasExclamation:e=>$t(e,"!"),hasQuestionMark:e=>$t(e,"?")||$t(e,"¿"),hasEllipses:e=>$t(e,"..")||$t(e,"…")||Lt(e,"..")||Lt(e,"…"),hasSemicolon:e=>$t(e,";"),hasColon:e=>$t(e,":"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Bt.test(e.post)||Bt.test(e.pre),hasDash:e=>zt.test(e.post)||zt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};St.hasQuotation=St.hasQuote;var Mt=St;let Ht=function(){};Ht=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.id&&t.id===e.id)return!0;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Vt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Mt[t.method]&&!0===Mt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}if(void 0!==t.chunk)return e.chunk===t.chunk;if(void 0!==t.switch)return e.switch===t.switch;if(void 0!==t.machine)return e.normal===t.machine||e.machine===t.machine||e.root===t.machine;if(void 0!==t.sense)return e.sense===t.sense;if(void 0!==t.fastOr){if(t.pos&&!e.tags.has(t.pos))return null;let n=e.root||e.implicit||e.machine||e.normal;return t.fastOr.has(n)||t.fastOr.has(e.text)}return void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Ht(e,t,n,r))):t.choices.some((t=>Ht(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Jt=Ht;const Wt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){Kt(e,e.t).length=r-e.t}return e.t=r,!0};const Ut=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Jt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Jt(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup){Kt(e,e.t).length+=r}if(!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null};var _t=function(e,t,n){let r=0;for(let a=e.t;ar)&&(e.t+=r,!0))};var Yt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Jt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];if(n){if(Jt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length))e.r+=1;else if(n.optional&&t[e.r+2]){Jt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2)}}}return n.greedy?_t(e,r,t[e.r+1]):(e.t+=1,!0)};var Zt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Jt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Jt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var Xt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null};var en=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}};var tn=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;if(n.optional&&t[e.r+1]&&n.negative)return!0;if(n.optional&&t[e.r+1]&&Zt(e),r.implicit&&e.terms[e.t+1]&&en(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Xt(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Kt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0};var nn=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy)if(void 0===e.choices||"or"!==e.operator)if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything)if(!0!==Wt(e,a))if(e.negative){if(!Yt(a))return null}else if(!0!==Jt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else{if(!tn(a))return null}else{if(!tn(a))return null}else{if(e.negative&&e.anything)return null;if(!tn(a))return null}else{if(!Qt(a))return null}else{if(!Rt(a))return null}else{if(!qt(a))return null}}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}};var rn=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}};var an=function(e,t,n){return e=e.filter((e=>{let[r,a,o]=e.pointer,i=n[r].slice(a,o);for(let e=0;e{e.groups[n][0]=t})),e},sn=function(e,t,n){let r=nn(e,t,0,e.length);return r?(r=on(r,n),r):null};var ln=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=sn(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),t.notIf&&(i=an(i,t.notIf,e)),i=rn(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i};var un={api:ot,methods:{one:{termMethods:Mt,parseMatch:Ct,match:ln}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const cn=/^\../,hn=/^#./,dn=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),cn.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var gn={html:function(e){let{starts:t,ends:n}=dn(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(pn,""),vn.test(a)&&(a=" "),a=a.replace(fn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(pn,""),a="-"===a?" ":a.replace(mn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&bn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},wn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};wn.clean=wn.normal,wn.reduced=wn.root;var kn=wn;let Pn=[],An=0;for(;An<64;)Pn[An]=0|4294967296*Math.sin(++An%Math.PI);function In(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(An=i=0;An>4]+Pn[i]+~~o[An|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const Nn={text:!0,terms:!0};let jn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const xn=function(e,t){return Object.assign({},e,t)},En={text:e=>yn(e,{keepPunct:!0},!1),normal:e=>yn(e,xn(kn.normal,{keepPunct:!0}),!1),implicit:e=>yn(e,xn(kn.implicit,{keepPunct:!0}),!1),machine:e=>yn(e,jn,!1),root:e=>yn(e,xn(jn,{form:"root"}),!1),hash:e=>In(yn(e,{keepPunct:!0},!1)),offset:e=>{let t=En.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};En.sentences=En.sentence,En.clean=En.normal,En.reduced=En.root;const Tn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Nn,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&En[o]&&(a[o]=En[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};Tn.data=Tn.json;var Cn=Tn;var Dn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};var On={green:e=>"[32m"+e+"[0m",red:e=>"[31m"+e+"[0m",blue:e=>"[34m"+e+"[0m",magenta:e=>"[35m"+e+"[0m",cyan:e=>"[36m"+e+"[0m",yellow:e=>"[33m"+e+"[0m",black:e=>"[30m"+e+"[0m",dim:e=>"[2m"+e+"[0m",i:e=>"[3m"+e+"[0m"};var Vn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(On.blue("\n ──────")),t.forEach((t=>{console.log(On.blue("\n ┌─────────")),t.forEach((t=>{let r=[...t.tags||[]],a=t.text||"-";t.sense&&(a=`{${t.normal}/${t.sense}}`),t.implicit&&(a="["+t.implicit+"]"),a=On.yellow(a);let o="'"+a+"'";if(t.reference){let n=e.update([t.reference]).text("normal");o+=` - ${On.dim(On.i("["+n+"]"))}`}o=o.padEnd(18);let i=On.blue(" │ ")+On.i(o)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return On[n](e)}))),e.join(", ")}(r,n);console.log(i)}))}))};var Fn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(On.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(On.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(On.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(On.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))};var Gn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${On.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))};var Bn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(Dn(t),t):(!1!==e.tags&&(Vn(t),console.log("\n")),!0===e.chunks&&(Fn(t),console.log("\n")),!0===e.highlight&&(Gn(t),console.log("\n")),t)};const zn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var $n=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()},wrap:function(e){return $n(this,e)}};var Sn=Ln;var Mn={text:function(e){let t={};var n;if(e&&"string"==typeof e&&kn.hasOwnProperty(e)?t=Object.assign({},kn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e)),void 0===t.keepSpace&&this.pointer&&(t.keepSpace=!1),void 0===t.keepPunct&&this.pointer){let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}return void 0===t.keepPunct&&(t.keepPunct=!0),void 0===t.keepSpace&&(t.keepSpace=!0),function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},qn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Un=function(e,t){let n=qn(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r};var Rn=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n};var Qn={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>Kn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n};var Zn=function(e,t){let n=qn(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>Kn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},er=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},tr={union:function(e){e=Xn(e,this);let t=_n(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)}};tr.and=tr.union,tr.intersection=function(e){e=Xn(e,this);let t=Zn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)},tr.not=function(e){e=Xn(e,this);let t=Yn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)},tr.difference=tr.not,tr.complement=function(){let e=this.all(),t=Yn(e.fullPointer,this.fullPointer);return t=er(t,this.document),this.toView(t)},tr.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=_n(e,[t])})),e=er(e,this.document),this.update(e)};var nr=function(e){Object.assign(e.prototype,tr)},rr={methods:Qn,api:nr};var ar=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const or=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var ir=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.notIf&&(e.notIf=n(e.notIf,{},t)),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(or(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(or(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=or(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e};var sr=function(e,t){e=ir(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}};var lr=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))};var ur=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>{if(0===e.wants.length)return!0;return e.wants.filter((e=>r.has(e))).length>=e.minWant}))}))};var cr=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o};var hr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=lr(a,t.hooks);return o=ur(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),cr(o,e,a,n,r)};var dr=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===dr(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag&&l)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))}))},mr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:ar,methods:{one:{buildNet:sr,bulkMatch:hr,bulkTagger:gr}}};const pr=/ /,fr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},vr=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,"[33m[3m"+a+"[0m").padEnd(24)} [32m→[0m #${t.padEnd(22)} ${(e=>"[3m"+e+"[0m")(n)}`)})(e,t,a),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),pr.test(t))!function(e,t,n,r){let a=t.split(pr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),vr(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nbr(e,t,n,r)))};var yr=br;var wr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>kr({id:e}))),t}return[kr({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},Nr=e=>"[object Array]"===Object.prototype.toString.call(e),jr=e=>(e=e||"").trim(),xr=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||Pr.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Ar(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=kr({});return e.forEach((e=>{if((e=kr(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(Ir(t=e).forEach(kr),t);var t},Er=function(e,t){let n="-> ";t&&(n=(e=>"[2m"+e+"[0m")("→ "));let r="";return Ir(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>"[31m"+e+"[0m")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},Tr=function(e){let t=Ir(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Cr={text:Er,txt:Er,array:Tr,flat:Tr},Dr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Er(e,!0)),null):Cr.hasOwnProperty(t)?Cr[t](e):e},Or=e=>{Ir(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Vr=/\//;let Fr=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=jr(e),!Vr.test(e)){let t=this.json.children.find((t=>t.id===e));return new Fr(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||kr({});return new Fr(t)}add(e,t={}){if(Nr(e))return e.forEach((e=>this.add(jr(e),t))),this;e=jr(e);let n=kr({id:e,props:t});return this.json.children.push(n),new Fr(n)}remove(e){return e=jr(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Ir(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Ir(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return Ir(this.json)}fillDown(){var e;return e=this.json,Ir(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else Nr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Or(this.json);let e=Ir(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Or(this.json),Dr(this.json,e)}debug(){return Or(this.json),Dr(this.json,"debug"),this}};const Gr=function(e){let t=xr(e);return new Fr(t)};Gr.prototype.plugin=function(e){e(this)};var Br={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Hyphenated:"cyan",Adverb:"cyan"};const zr=function(e){if(Br.hasOwnProperty(e.id))return Br[e.id];if(Br.hasOwnProperty(e.is))return Br[e.is];let t=e._cache.parents.find((e=>Br[e]));return Br[t]};var $r=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:zr(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const Lr=function(e){return e?"string"==typeof e?[e]:e:[]};var Sr=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=Lr(e[t].children),e[t].not=Lr(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e};var Mr=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Sr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Gr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return $r(n)},Hr={one:{setTag:yr,unTag:wr,addTags:Mr}};const Jr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Wr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Jr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Jr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){e=e.replace(/^#/,"");let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var Kr=Wr;var qr=function(e){Object.assign(e.prototype,Kr)};var Ur={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const Rr=new Set(["Auxiliary","Possessive"]);var Qr=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Rr.has(e)||!t.hasOwnProperty(n))return 1;if(Rr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},_r={model:{one:{tagSet:{}}},compute:{tagRank:Qr},methods:Hr,api:qr,lib:Ur};const Yr=/([.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s)/g,Zr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s$/,Xr=/((?:\r?\n|\r)+)/;var ea=function(e){let t=[],n=e.split(Xr);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const oa={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},ia=RegExp("("+Object.keys(oa).join("|")+")","g"),sa=RegExp("("+Object.values(oa).join("|")+")","g"),la=function(e){if(!e)return!1;let t=e.match(sa);return null!==t&&1===t.length};var ua=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var Na=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Aa);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=wa(n),n=ba(n),n=n.filter((e=>e)),n};const ja=/\p{Letter}/u,xa=/[\p{Number}\p{Currency_Symbol}]/u,Ea=/^[a-z]\.([a-z]\.)+/i,Ta=/[sn]['’]$/;var Ca=function(e,t){let{prePunctuation:n,postPunctuation:r,emoticons:a}=t.one,o=e,i="",s="",l=Array.from(e);if(a.hasOwnProperty(e.trim()))return{str:e.trim(),pre:i,post:" "};let u=l.length;for(let e=0;e(s=e||"",""))),e=o,i=""),{str:e,pre:i,post:s}};var Da=(e,t)=>{let{str:n,pre:r,post:a}=Ca(e,t);return{text:n,pre:r,post:a,tags:new Set}};var Oa=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")};var Va=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Fa=/([A-Z]\.)+[A-Z]?,?$/,Ga=/^[A-Z]\.,?$/,Ba=/[A-Z]{2,}('s|,)?$/,za=/([a-z]\.)+[a-z]\.?$/;var $a=function(e){return function(e){return!0===Fa.test(e)||!0===za.test(e)||!0===Ga.test(e)||!0===Ba.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var La=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Va(r),r=n(r,t),r=$a(r),e.normal=r};var Sa=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map((e=>i(e,r))),n.forEach((e=>{La(e,t)})),n})),e};const Ma=/[ .][A-Z]\.? *$/i,Ha=/(?:\u2026|\.{2,}) *$/,Ja=/\p{L}/u,Wa=/^[A-Z]\. $/;var Ka=function(e,t){if(!1===Ja.test(e))return!1;if(!0===Ma.test(e))return!1;if(3===e.length&&Wa.test(e))return!1;if(!0===Ha.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},qa={one:{killUnicode:Oa,tokenize:{splitSentences:pa,isSentence:Ka,splitTerms:Na,splitWhitespace:Da,fromString:Sa}}};var Ua={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Ra={},Qa={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Ra[t]=!0,Qa[t]="Abbreviation",void 0!==e[1]&&(Qa[t]=[Qa[t],e[1]])}))}));var _a=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out","ex"].reduce(((e,t)=>(e[t]=!0,e)),{});let Ya={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Za={};Object.keys(Ya).forEach((function(e){Ya[e].split("").forEach((function(t){Za[t]=e}))}));const Xa=/\//,eo=/[a-z]\.[a-z]/i,to=/[0-9]/;var no=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),Xa.test(n)&&!eo.test(n)&&!to.test(n)){let t=n.split(Xa);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const ro=/^\p{Letter}+-\p{Letter}+$/u;var ao=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),ro.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var oo=function(e){let t=e.docs,n={};for(let e=0;euo(e,no),machine:e=>uo(e,ao),normal:e=>uo(e,La),freq:oo,offset:io,index:so,wordCount:lo},methods:qa,model:{one:{aliases:Ua,abbreviations:Ra,prefixes:_a,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},prePunctuation:{"#":!0,"@":!0,_:!0,"°":!0,"":!0,"":!0,"":!0,"\ufeff":!0},postPunctuation:{"%":!0,_:!0,"°":!0,"":!0,"":!0,"":!0,"\ufeff":!0},lexicon:Qa,unicode:Za,emoticons:{"<3":!0,"3":!0,"<\\3":!0,":^P":!0,":^p":!0,":^O":!0,":^3":!0}}},hooks:["alias","machine","index","id"]};var ho={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const go=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var mo=function(e){e.prototype.autoFill=go};var po=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const fo={safe:!0,min:3};var vo={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},fo,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=po(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}};var bo={model:{one:{typeahead:{}}},api:mo,lib:vo,compute:ho,hooks:["typeahead"]};v.extend(ee),v.extend(Wn),v.extend(un),v.extend(rr),v.extend(_r),v.plugin(Ee),v.extend(co),v.plugin(k),v.extend(We),v.extend(bo),v.extend(Be),v.extend(mr);var yo={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},wo={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Tb0Pc0Nd0Je0Hg0BhWjeez,lTmSnQoKpHshGtFuCvoi0Vw6y0;a4e3i1u0;ck,p;k00p0;ee,pee;ah,p,s;!a,y;ahoo,h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;gh,h0;! 0h,m;huh,oh;here nOsk,ut tut;eesh,hh,it,oo;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;! 0h;h1my go0w1;d,sh;ell;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBeAi8o2u0;h,mph,rra0zzB;h,y;ly1o0;r5y8;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww,xcuse me;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;mon,o0;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh,ye;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦dick0gre0ones,records;ens","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦its,my,none,our0;!s","Noun|Verb":"true¦0:94;1:8F;2:7M;3:8Z;4:99;5:8S;6:7Y;7:6Y;8:8T;9:8C;A:9E;a8Ub80c6Ud65e5Vf58g4Zh4Qi4Ij4Fk4Cl40m3On3Ko3Hp2Hques8Wr1Ss0FtZuXvSwEyDzB;ip,oB;ne,om;awn,e5Uie5N;aLeJhGiEoCrB;ap,e8U;nd0rB;k,ry,sh4Yth;ck,nBpe,re,sh;!d,g;e7IiB;p,sB;k,t1;aBed;r,th0;it,lk,rCsBt3ve,x;h,te;!ehou2raA;aEiDoB;iBm9te,w;ce,d;be,ew,s9;cuum,l3X;pBr6;da5gra5Tlo5P;aOeNhrMiLoJrEuCwiBy5E;n,st;nBrn;e,n70;aDeCiBot,u8;bu5ck44gg0m,p;at,k,nd;ck,de,in,nsBp,v6W;f0i7Z;ll,ne,p,r4Gss,t8CuB;ch,r;ck,de,e,le,me,p,re;e5Cow,u8;ar,e,ll,mp0st,xt;g,lBng1rg70s5x;k,ly;a0Lc0Ge0Dh08i06k04l02m01n00ou7CpUqua6UtIuDwB;ea7HiB;ng,pe,t3;bEit,m,ppCrB;ge,pri2v2J;lBo65;e62y;!je7;aKeJiIoFrCuBy1;dy,ff,mb1;a7DeCiBo55ugg1;ke,ng;am,ss,t3;ckCop,p,rB;e,m;ing,pi1;ck,nk,t3;m,p;ck,ge,in,ke,ll,mp,nd,p1rBte,y;!e,t;aFeed,iElDot,rBur;ay,e4NinBu4;g,k1;a6Dit;ll,n,r7Hte;n,rk;ap,ee1Oow;a69e41i1o4O;eep,iBou3;ce,p,t;ateboa6WiB;!p;de,gnBp,ze;!al;aEeDiCoBuff1;ck,p,re,t,w;ft,p,v0;d,i3K;ck,de,pe,re,ve;aCed,nBrv1Et;se,t2F;l,r3t;aEhedu1o5OrB;aCeBo3L;en,w;pe,t3;le,n,r0O;cBil;k,rifi4;aXeFiEoCuB;b,in,le,n,s5E;a8ck,ll,oBpe,u5;f,t;de,ng,p,s1O;aRcQdo,el,fOgNje7lMmKnJo12pHque8sDturn,vBwa68;eBi1Z;al,r2;er6HoDpe7tCuB;lt,me;!a4N;l6Ert;air,eaBly,o4L;l,t;dezvo2Mt;aBedy;ke,rk;ea2i56;a5Vist0r53;act6Ber1No6EuB;nd,se;a2Uo5S;ch,s5T;c15ge,i2ke,lly,nBpYtY;ge,k;a03eZhXiVlRoLrCsy3uB;mp,n3rcha2sh;aIeGiFoBu48;be,ceDdu4fi1grBje7mi2p,te8;amBe69;!me;ed,ss;ce,de,nt;sBy;er5Rs;cti4i2;iFlDoCp,re,sBw0;e,i5Dt;l,p;iBl;ce,sh;nt,s5A;aCce,e2PuB;g,mp,n6;ce,nBy;!t;ck,le,nBpe,t,vot;!e;a2oB;ne,tograph;ak,eDnCrBt;fu4Lm9;!c2O;!l,r;ckGiFnErtDsCtBu2;ch,eA;s,te;!y;!ic;nt,r;!a6;bje7ff0il,oCrButli3A;b9d0ieA;ze;a48eDoB;d,tB;e,i4;ed,gle7t;aIeGiFoCuB;rd0;ck,d3Cld,nBp,uth,ve;it4VkB;ey;lk,n3Vrr4Tss,x;asu3Fn4CrBss;ge,it;il,nDp,rk3HsCtB;ch,t0;h,k;da5n0oeuv3A;aJeHiFoCuB;mp,st;aCbby,ck,g,oBve;k,t;d,n;cBft,m9nFst;en2k;aBc0He3vH;ch,d,k,p,se;bCcBnd,p,t3un3;e,k;el,o2I;eCiBno3X;ck,ll,ss;el,y;aCo1FuB;i4mp;m,zz;mpHnCr3PssB;ue;cr1Hdex,fluEha1k,se25teBvoi4;nt,rB;e8fa4viB;ew;en4;a7le1Y;aGeEiDoCuB;g,nt;l2Wno21ok,p,r2u2;ghlight,ke,re,t;aBd6lp;d,t;ck,m,ndCrBsh,te;b3Im,ne3Xve8;!le;aIloHossGrDuB;arBe3Un;antee,d;aCiBou2Pumb1;nd,p;de,sp;ip;ss,w;in,me,ng,s,te,ze;aWeTiOlLoHrDuB;ck,el,nBss,zz;c2Wd;aCoBy;st,wn;cBgme,me;tu1V;cDg,il,ld,rB;ce,e20mB;!at;us;aCe1Wip,oBy;at,ck,od,w;g,ke,me,re,sh,vo18;eEgDlCnBre,sh,t,x;an4i1S;e,m,t0;ht,u1K;ld;aCeBn4;d,l;r,tu1G;ce,il,ll,rm,v2L;cho,d6ffe7nJsHxDyeB;!baB;ll;cDerci2hib9pBtra7;eriBo0Q;en4meA;el,han6u2;caBtima5;pe;count0d,vy;aXeQiKoHrCuBye;b,el,mp,plica5;aEeDiCoB;ne,p;ft,nk,p,ve;am,ss;ft,g,in;cCd6ubt,wnloB;ad;k,u09;p,sDt3vB;e,iBor4;de;char6h,liCpB;at3lFu5;ke;al,ba5cFfeElDma16pos9siCtaB;il;gn,re;ay;at,ct;li01rB;ea2;b,ma6n4rBte;e,t;a0Bent0Ah03irc1l00oHrDuB;be,e,rBt;e,l,ve;aDeCoBu0Iy;p,ss,wd;d9ep;ck,ft,sh;at,de,in,lRmKnDpy,re,st,uBv0;gh,nBp1;sZt;ceFdu7fli7glomeGsDtBveL;a7rB;a8ol;eAtru7;ct;ntBrn;ra5;bFfoEmDpB;leBou0Fromi2;meA;a0DeAit,u5;rt;at,iB;ne;lap2oB;r,ur;aCiB;ck,p;im,w;aCeBip;at,ck,er;iEllen6nCrB;ge,m,t;ge,nB;el;n,r;er,re;ke,ll,mp,noe,pDrTsCt3u2ve;se;h,t;!tuB;re;aYeUiTlQoMrEuBypa0U;bb1ck1dgCff0mp,rBst,zz;den,n;et;anHeFiDoadCuB;sh;ca8;be,d6;ge;aBed;ch,k;ch,d;aDg,mb,nCoBtt1x,ycott;k,st,t;d,e;rd,st;aCeBitz,oTur;nd;me;as,d,ke,nd,opsy,te;aDef,lt,nBt;d,ef9;it;r,t;ck,il,l04nFrgDsCtt1;le;e,h;aBe;in;!d,g,k;c01dXge,iWlTnRppOrKsGttEucCwaB;rd;tiB;on;aBempt;ck;k,sB;i8ocia5;te;st;chCmB;our;!iB;ve;eCroa3;ch;al;chBg0sw0;or;aCt0;er;rm;d,m,r;dreDvB;an4;ce;ss;cBe,he,t;eDoB;rd,uA;nt;nt,ss",Actor:"true¦0:44;1:3A;2:4C;3:45;4:4B;a3Rb38c2Fd23e20f1Sg1Ih1Di19journa3Ml16m0Un0Po0Np04qu02rXsGtCunBvAw6yo5;gi,utub0;e7i6o5r1O;m1rk0;nn0t10;atherm1ld0;eterina19ip;c3Wder1I;aoisea0We6herapi3iktok0r5;anscriRo20;chn5st0;i1RoU;aiKcJeIhowHiFki0oDpCt9u6wee5;p0theart;lt1per6r5;f0ge2Y;intenWv3V;aff0ep6r5;ang0eam0;fa12mo12;ecia32okesp2S;l5me3Kn;di0oi3;ng0s5;sy,t0;girl,m1runn0;cretary,rgea3V;hol2OiQreen0Yulpt2;l2nt;a8e5oof0unningA;c5port0searJver2Q;e5ru0V;ptio1W;bbi,pp0;arter5een;back;aMerform0hLlIoEr6sycho5;logi3;actit1Oe9i7o5;duc0fess2gramm0s5;pe12titu2T;est2Lme miniVnce5;!ss;a6si5;de3D;ch0;dcaQet,li5rnst25;c10tic5;al sci5i1;enti3;a5umb0;nn0y5;er,wright;armaci3otograph0ysi0L;i1Nnel24st2tL;ffic0p5rganiz0;er4tometri3;anny,e7o6u5;n,rse;bo2Jvi6;i5phew;ce;aCeBi8o6u5;m6si0B;m5nk,th0;!my;ni6s5;sus,t0;st0;chan0Lrcha2O;gi7k0nag0t5y2;riar5;ch;ci1stra1W;a6e0Wieutena2Jo5;rd,s0;bor0dy,urea1Twy0;dol,llu29n5;s5vestig4;peZt5;a0EruY;air8ero7isto6o5ygie0J;ste29usekE;ri1;!ine;dress0sty19;arden0eDhostBirl15o8rand5uru;fa6m5pa;a,o5;th0;al5d,lf0;ie,k5te16;eep0;wr5;it0;isha,ntlO;aBella,i7ore6r5;eela1Ii0V;m1st0;g7lmm0Fnanci0r5tt0;e5st la1E; marsh1Kfig5m1;ht0;rm0th0;dit2lectri6mcee,x5;amin0cellency;ci1;aEe9i6riv0u5;de,tche1J;eti6re5;ct2;ci1ti1;a8cor4fenc7put6sign0tecDvel5;op0;ee,y;em1;c05l0;d5nc0rling;!dy;aSeRfo,hLlIo8rit7u5;r4stomer representa5;tive;ic;lCm9n6ordin4rpor0Yu5wboy;nciKri0;gressKs6tro5;ll0;tab0Kul11;edi1m5pos0;a04iss5;ion0;onel,um5;ni3;e5own;an0r5;ic,k;a7e5;erle5f;ad0;ir6nce5plC;ll2;m1wE;lebrity,o;det,pt8r5shi0;et6pe5;nt0;ak0;ain;aJeatbox0iHlogg0oyFrCu5;ddhi3ild0rglAsiness5;m1p6w5;om1;ers5;on;an;ar;i6o5;!k0th0;cklay0de,gadi0;!fri5;end;cyc5sL;li3;nk0r5;b0on6te5;nd0;!eX;cUdNgeYnHpostGrDsBt7u5yatullah;nt5th2;!ie;h6t5;endaUorney;ie3le5;te;sisQtron5;aut,om0;chbis6tis5;an,t;hop;le;aly3im4nou7y5;bo5;dy;nc0;er;st;mi6v5;is2;ni6r5;al;str4;at2;or;coun7t5;or,re5;ss;ta5;nt",Uncountable:"true¦0:28;1:2R;2:2F;3:35;4:2W;a2Qb2Hc26d1Xe1Nf1Hg19h12i0Xjewel15k0Vl0Qm0Gn0Eo0Dp04rZsMtBv9w5you guys;a7hisky,i6oo5;d,l;ldlife,ne;rmAt2;ernacul25i5;neg24ol1Ktae;eEhCime off,oBr6un5yranny;a,gst15;aff2Jea1Go6ue nor5;th;o07u5;ble5se1Ot;!shoot1;night,othpas1P;er5und2;e,mod2O;a,nnis;aFcEeDhBilk,kiAo9p8t6u5weepstak0;g1Rnshi2Dshi;ati08e5;am,el;ace2Geci0;ap,cc2meth1;n,ttl0;eep,ingl0o5;pp1r18;lf,na1Cri0;ene0Disso18;d0Sfe4l5nd,t0F;m1St;a8e6ic5;e,ke12;c5ins,laxa0Zsearch;ogni0Yrea0Y;bi0in;aBeAhys9last1So7re5;amble,mis0s5ten1W;en1Vsu0H;l5rk;i24yH; 14i3;a20tr0A;nt5ti0J;i0s;bstetri3vercrowd1xyg04;a5ews;il polXtional securi4;aCeAo7u5;m5s1F;ps;n5o1I;ey,o5;gamy;a5cha0Drchandi1Ftallurgy;sl0t;chine5thema1O; learn1ry;aught2e8i7ogi6u5;ck,g11;c,s1K;ce,ghtn1nguis1JteraTv2;ath2isuTss;ara0CindergartMn5;icke08owled0X;ce,gnor8mp7n5;forma02ter5;net,sta08;atiUort5rov;an19;a8eListo7o5ung2;ckey,mework,ne5rserad9spitali4use arrest;s4y;ry;ir,lib03ppiJs5;h5te;ish;ene9l7o6r5um,ymnas13;aGe03;lf,re;ut5yce0J;en; 5ti3;edit1po5;ol;aQicJlour,o7urni5;tu5;re;od,rgive5uri2wl;ne5;ss;cono0MducaDlectrBn9quipAthi3very8x5;ist6per5;ti0C;en0K;body,o09th1;joy5tertain5;ment;ici4o5;ni3;tiU;eBi8o6raugh5ynas4;ts;pe,wnstai5;rs;abet0s5;hon01repu5;te;b5miX;ut;aEelciDhBivi3l9o5urrency;al,ld w7n5ral,ttJuscoC;fusiIt 5;ed;ar;assi3oth0;es;aos,e5;eNw1;us;d,rP;aAi8lood,read7u5;nt1tt2;er;!th;lliarKs5;on;g5ss;ga5;ge;cLdviKeroHirGmCn7ppeal court,rithmet6spi5thleM;rin;ic;i8y5;o6th1;ing;ne;se;en7n5;es4;ty;ds;craft;bi3d5nau9;yna5;mi3;ce;id,ous5;ti3;cs","Person|Noun":"true¦a07b01cYdRePfOgMhJjFkiElDmBolive,p7r4s3trini00v1wa0;ng,rd;an,enus,iol0;a,et;ky,on5umm02;ay,e1o0uby;bin,d,se;ed,x;a2e0ol;aHn0;ny;ge,tM;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4O;1:4M;2:3Y;3:47;4:42;5:4Q;6:4C;a46b3Qc2Wd2Ie2Cf25g1Zh1Oin1Lj1Kk1Jl1Dm17n15o10p0Iqu0Hr07sUtIuFvAw7x 4B;a7ha2Y;f2i3Vt08y7;! arou2M;arAe8o7;cabu3Ol4F;gKr7;di43t1F;iety,n3S;p2Dr8s 7;do3As4H;bani1in0; rex,aHeGhingFiDoCr9u8v7;! show;m23n4rntIto0Y;agedy,ib7o3K;e,u7;n0ta3D;p4rq2V;c,er,m7;etC;!y;am,mp2Q;ct4le5x return;aIcHeGhor3Wi1kEoDpin off,tBu9y7;ll7n1Rst3Z;ab29;b7nri13per bowl,rro1I;st2Vtot0;at2Mipe1Wo14rate3Oudent7;! lo09;ft ser3Smeo12;elet6i7;ll,rm33;ab0Scurity gu22min2N;e5ho2C;la2Undwi0Fpi6;av6eBhetor4i8o7;de5om,w;t8v7;erb0M;e,u0;bAc9f7publ4r0Mspi1;er7orm2;e5r0;it0ord label;a1u3G;estion mark,ot1V;aMeJhotocoSiGlEoCr8u7yram11;ddi2SpCrpo0Hs2U;e9o7;bl39s7;pe2Uta1;diction,mi0Droga35ss relea0D;p7rt0;py;a7ebisci1;q1Ste;cn4e8g7;!gy;!r;anut,d8r7t0;cen2Usp2V;al,est0;nop3r28t7;e,hog6;bj2Rc8pia1rde0thers,ve7wn2;n,rview;cu8e7;an;pi2;arra2Nit1Oot7umb2;a1Uhi25;aAe9i8o7ur0é07;nopo3pOrni23sq1Bti2L;li0On03tt6;d4nu,t0;mm0nd0Tte7yf3;ri0;aAegBi9u7;ddi1n7;ch;ght bulb,p03ving room;bor0Ty7; up;eyno1itt6;el3ourn0;c8dices,itia27ni1Qse1Vtel0Dvert7;eb17;en25i2E;aGeaDighBo7uman right;me8sp15tb7;ed;! r7;un; scho0Ori7;se;d7v6; start,pho7;ne;ndful,sh brown,v6ze;aAelat09laci2r8u7;l3y;an7enadi2id;a0Yd slam;df3r7;l4n12;aCet11iref3lBol3r8un7;er0;ee market,i8on7;ti2;ga1;ow2u1;br4mi3n0Q;conoBffi1Bgg,lecto0Hmbas11nApidem4s1Lth4ven9x8yel7;id;ampRempl0Dte5;i0Wt;er17;my;eHiCo9r7ump truck;agonf3i7;er,ve thru;c8g12i3or,ssi2wn7;side;to06umenA;aAgni9nn2s8vide7;nd;conte5incen12tri0Q;ta09;le0O;ath,c8f7ni0terre5;ault Zerr0;al,im0;aSeQhJiIlHoBr7;edit c9uc7;ib7;le;ard;efficBke,lAmmuniqIns8pi2rr0t0Pus7yo1;in;erv7uF;atoW;ic,lM;ie5;er0Gie5;ty,vil wJ;aBeqAick6oco9r7;istmas car7ysanthemum;ol;la1;ue;ndeli2racter7;ist4;iliVllBr7;e0tifica1;hi2naDpCrAt7ucus;erpi7hedr0;ll7;ar;!bohyd7ri2;ra1;it0;l,ry;aIeHlemGoEreakCu7;nAr7tterf3;g7i0;la7;ry;ny;fa7thro9;st;dy,ro7wl;ugh;ish;an,l3;nki9r7;!ri2;er;ng;cPdJlFnCppeti1rBs9tt4utop7;sy;ic;ce5pe7;ct;ray;ec8oma3ti8;ly;do1;i6l7;er7y;gy;en; hominBj8van7;tage;ec7;ti7;ve;em;cAe8qui7;tt0;ta1;te;i8ru0;al;de5;nt",Preposition:"true¦-,aPbMcLdKexcept,fIinGmid,notwithstandiWoDpXqua,sCt7u4v2w0;/o,hereSith0;! whHin,oW;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h1ill,oward0;!s;an,r0;ough0u;!oM;ans,ince,o that,uch G;f1n0ut;!to;!f;! 0to;effect,part;or,r0;om;espite,own,u3;hez,irca;ar1e0oBy;sides,tween;ri7;bo8cross,ft7lo6m4propos,round,s1t0;!op;! 0;a whole,long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:13;1:1A;a13b0Xc0Mde0Le0Gf0Ag09h08i06ju05l03mXnVoTpOrKsDt9u6v3w2;atershed,elcome;a2ision0P;gabo5nilla,ria2;b0Mnt;ndergr2pstairs;adua0Tou2;nd;a4e2oken,ri0;en,r2;min0rori0S;boo,n;e6ilv08o4quat,ta3u2well;bordina0Mper6;b0Cndard;ciali0Nl2vereign;e,ve1;cret,n2ri0;ior;a4e2outiSubbiL;ar,bCla0Mnt0p2side1;resenta0Lublican;ci0Gsh;a5eriodic0otenti0r2;emi3incip0o2;!fession0;er,um;rall5st,tie1;ff2pposi07v0;ensi0Ei03;aggTov2;el;aUe5in4o2;biTderYr2;al,t0;iature,or;di2tr0C;an,um;attIiber0u2;sh;stice,veniM;de0mpressioQn2;cumbe1dividu0no04sta1;alf,omelBumdrum;enious,old,raZ;a5e3i2luid;ne;llow,m2;aEiJ;ir,t,vo2;riLuriL;l4pXx2;c2ecuQpeS;ess;d2iH;er;mographSrivaM;hiFlassRo3rude,unn2;ing;m5n2operaJ;creBstitue1tempor3vertab2;le;ary;m3p2;anion,lex;er3u2;ni8;ci0;e6lank,o5r2;i3u2;te;ef;ttom,urgeois;st;cademAd7l3nim0rab;al;e4terna2;ti2;ve;rt;oles2ult;ce1;nt;ic","Noun|Gerund":"true¦0:26;1:25;2:1W;3:1I;4:1Y;5:1O;a25b1Oc1Cd17en15f0Zg0Xh0Ui0Sjog20k0Ql0Mm0Jn0Ho0Dp06ques09rXsHtCuAvolunt16w6yEzo2;a8ed5i3or7r6;ap1Oest1Ci1;ki0r1O;i1r2s1Utc1U;nder6pri23;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",PhrasalVerb:"true¦0:93;1:97;2:8I;3:8W;4:8B;5:84;6:86;7:99;8:91;9:8H;A:8Y;B:8S;C:8V;D:8T;E:71;F:98;G:8Z;H:82;I:7I;J:7A;K:4H;a9Hb7Wc6Td6Ne6Lf5Jg52h4Diron0j49k42l3Gm33n30o2Yp2Equiet Hr1Zs0Lt00uYvacuu6SwOyammerBzL;ero Dip MonL;e0k0;by,ov9up;aReNhMiLor0Nrit1B;mp0n3Hpe0r5s5;ackAeel Di0U;aMiLn35;gh 3Yrd0;n Dr L;do1in,oJ;it 7Bk5lk Mrm 6Bsh Lt85v61;aw3do1o7up;aw3in,oC;rgeBsL;e 2herE;a01eZhWiSoRrNuLypQ;ckErn L;do1in,oJup;aMiLot0y 32;ckl81p F;ck HdL;e 60;n7Yp 3Gs5L;ck NdMe Lghten 6me0p o0Tre0;aw3ba4do1in,up;e Iy 2;by,oG;ink Mrow L;aw3ba4in,up;ba4ov9up;aLe 79ll64;m 2r 5O;ckBke Mlk L;ov9shit,u49;aLba4do1in,leave,o67up;ba4ft9pa6Bw3;a0Xc0Ve0Oh0Ki0Hl0Bm0An09o08p03quar5ItRuPwL;earNiL;ngMtch L;aw3ba4o8M; by;cLi6Dm 2ss0;k 66;aTeSiRoPrMuL;cKd36;aigh2Eet76iL;ke 7Tng L;al6Zup;p Lrm2G;by,in,oG;nKr 2tc4O;p F;cKmp0nd MrLveAy 2P;e Ht 2M;ba4do1up;arKeOiNlMrLurB;ead0ingBuc5;a49it 6I;c5ll o3Dn 2;ak Fe73ll0;aKber 2rt0und like;ap 5Wow Duggl5;ash 6Ooke0;eep OiLow 6;cMp L;o6Eup;e 69;in,oL;ff,v9;de1Agn 4OnLt 6Hz5;gLkE; al6Ble0;aNoLu5X;ot Lut0w 7N;aw3ba4f48oC;cKdeEk6FveA;e Qll1Ond Prv5tL; Ltl5K;do1foMin,o7upL;!on;ot,r60;aw3ba4do1in,o4Wup;oCto;al67out0rL;ap66ew 6K;ilAv5;aYeViToPuL;b 5Zle0n Lstl5;aMba4do1inLo2Jth4Ou5Q;!to;c2Xr8w3;ll Not MuL;g3IndA;a2Wf3Po7;ar8in,o7up;ng 69p oLs5;ff,p19;aLelAinEnt0;c6Id L;o3Oup;cKt0;a00eZiXlUoRrPsyc35uL;ll Nn5Lt L;aLba4do1in,oJto48up;pa4Ew3;a3Kdo1in,o22to46up;attleBess LiOop 2;ah2Fon;iMp Lr50u1Hwer 6O;do1in,o6Oup;nt0;aMuL;gEmp 6;ce u21y 6E;ck Lg0le 4Bn 6p5C;oJup;el 5OncilE;c54ir 3An0ss NtMy L;ba4oG; Hc2R;aw3ba4in,oJ;pLw4Z;e4Yt D;aMerd0oL;dAt54;il Hrrow H;aUeRiQoMuL;ddl5ll I;cKnkeyNp 6uthAve L;aLdo1in,o4Mup;l4Ow3; wi4L;ss0x 2;asur5e3TlMss L;a21up;t 6;ke Mn 6rLs2Ax0;k 6ryA;do,fun,oCsure,up;a03eWiRoMuL;ck0st I;aOc4Gg NoLse0;k Lse4E;aft9ba4do1forw38in57o10u47;in,oJ;d 6;e OghtNnMsLve 01;ten F;e 2k 2; 2e47;ar8do1in;aNt MvelL; oC;do1go,in,o7up;nEve L;in,oL;pLut;en;c5p 2sh MtchBughAy L;do1o5A;in4Qo7;eNick Mnock L;do1oCup;oCup;eMy L;in,up;l Ip L;aw3ba4do1f05in,oJto,up;aNoMuL;ic5mpE;ke3Tt H;c44zz 2;a02eXiUoQuL;nMrrLsh 6;y 2;keMt L;ar8do1;r H;lLneErse3L;d Le 2;ba4dLfast,o25up;ear,o1;de Mt L;ba4on,up;aw3o7;aLlp0;d Nl Ir Lt 2;fLof;rom;f11in,o1WuX;cKm 2nMsh0ve Lz2Q;at,it,to;d Mg LkerQ;do1in,o2Uup;do1in,oL;ut,v9;k 2;aZeUive Sloss IoNrMunL; f0S;ab hold,in44ow 2V; Lof 2J;aNb1Nit,oMr8th1JuL;nd9;ff,n,v9;bo7ft9hQw3;aw3bLdo1in,oJrise,up,w3;a4ir2I;ar 6ek0t L;aLb1Gdo1in,o1Dr8up;cMhLl2Hr8t,w3;ead;ross;d aLng 2;bo7;a0Fe08iZlVoRrNuL;ck Le2P;ar8up;eMighten LownBy 2;aw3oG;eLshe29; 2z5;g 2lNol Lrk I;aLwi22;bo7r8;d 6low 2;aMeLip0;sh0;g 6ke0mLrLtten H;e F;gSlQnOrMsLzzle0;h F;e Lm 2;aw3ba4up;d0isL;h 2;e Ll 1V;aw3fQin,o7;ht ba4ure0;eQnMsL;s 2;cNd L;fLoG;or;e D;d06l 2;cPll Lrm0t1I;aNbMdo1in,oLsho0Gth0Avictim;ff,ut,v9;a4ehi2P;pa0D;e L;do1oGup;at Ldge0nd 13y5;in,o7up;aPi1IoOrL;aMess 6op L;aw3b04in,oC;gBwB; Iubl1C;m 2;a0Bh06l03oPrMut L;aw3ba4do1oCup;ackBeep MoLy0;ss Dwd0;by,do1in,o0Vup;me OoMuntL; o2B;k 6l L;do1oG;aSbRforPin,oOtLu0P;hMoLrue;geth9;rough;ff,n,ut,v9;th,wL;ard;a4y;paLr8w3;rt;eaMose L;in,oCup;n 6r F;aOeMiL;ll0pE;ck Der Lw F;on,up;t 2;lSncel0rPsNtch MveE; in;o1Oup;h Dt L;doubt,oG;ry MvL;e 09;aw3oJ;l Lm H;aMba4do1oJup;ff,n,ut;r8w3;a0We0NiteAl0Go05rRuL;bblOckl06il0Elk 6ndl06rMsLtNy FzzA;t 01;n 0IsL;t D;e I;ov9;anXeaViMush L;oGup;ghRng L;aOba4do1forNin,oMuL;nd9p;n,ut;th;bo7lLr8w3;ong;teL;n 2;k L;do1in,o7up;ch0;arUg 6iSn5oQrOssNttlMunce Lx D;aw3ba4;e 6; ar8;e H;do1;k Dt 2;e 2;l 6;do1up;d 2;aQeed0oLurt0;cNw L;aw3ba4do1o7up;ck;k L;in,oC;ck0nk0stA; oRaOef 2lt0nd L;do1ov9up;er;up;r Mt L;do1in,oCup;do1o7;ff,nL;to;ck Qil0nNrgMsL;h D;ainBe D;g DkB; on;in,o7;aw3do1in,oCup;ff,ut;ay;ct FdRir0sk NuctionA; oG;ff;ar8o7;ouL;nd; o7;d L;do1oLup;ff,n;wn;o7up;ut",ProperNoun:"true¦barbie,c4diego,e3f2iron maiden,kirby,m0nis,riel,stevens;ercedes,i0;ckey,ssy;inn,lorence,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:76;1:64;2:6J;3:6M;4:5V;a6Bb56c4Ld4Be47f3Zg3Kh3Ci33j2Yk2Hl25m1Nn1Do1Ap0Xq0Vr0Os05tRuQvLwDxiBy9z5;a7h5i4Puri4R;a5e5ongsh0;ng3K;greb,nzib5J;ang2e5okoha3Vunfu;katerin3Krev0;a5n0R;m5Kn;arsBeAi6roclBu5;h0xi,zh5S;c7n5;d5nipeg,terth4;hoek,s1N;hi62kl3D;l66xford;aw;a8e6i5ladivost5Polgogr6N;en3lni6U;ni24r5;n2o3saill4Q;lenc4Zncouv3Vr3ughn;lan bat1Erumqi,trecht;aFbilisi,eEheDiBo9r7u5;l23n66r5;in,ku;i5ondh65;es54poli;kyo,m32ron1Rulo5;n,uS;an5jua3l2Wmisoa6Dra3;j4Wshui; hag64ssaloni2K;gucigal28hr0l av1W;briz,i6llinn,mpe59ng5rtu,shk2U;i3Hsh0;an,chu1n0p2Hyu0;aEeDh8kopje,owe1It7u5;ra5zh50;ba0It;aten is58ockholm,rasbou69uttga2Y;an8e6i5;jiazhua1llo1m5Zy0;f53n5;ya1zh4K;gh3Nt4T;att48o1Yv47;cramen18int ClBn5o paulo,ppo3Urajevo; 7aa,t5;a 5o domin3H;a3fe,m1O;antonBdie3Ffrancisco,j5ped3Qsalvad0L;o5u0;se;em,z28;lou5Bpeters27;aAe9i7o5;me,sar5t5C;io;ga,o5yadh;! de janei3H;cife,ims,nn3Lykjavik;b4Uip4lei2Knc2Rwalpindi;ingdao,u5;ez2i0R;aFeEhDiCo9r7u6yong5;ya1;eb5Aya1;a5etor3O;g53to;rt5zn0; 5la4Eo;au prin0Nelizabe26sa04;ls3Rrae5Btts28;iladelph3Inom pe1Coenix;r23tah tik3G;dua,lerZnaji,r4Qt5;na,r34;ak46des0Lm1Or6s5ttawa;a3Xlo;an,d07;a7ew5ing2Hovosibir1Lyc; 5cast38;del26orlea46taip16;g8iro4Xn5pl2Yshv35v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0Y;aFeCi9o6u5;mb2Cni28sc40;gadishu,nt6s5;c15ul;evideo,pelli1Tre31;ami,l6n16s5;kolc,sissauga;an,waukee;cca,d5lbour2Omph43ndo1Essi3;an,ell5i3;in,ín;cau,drAkass2Tl9n8r5shh4A;aca6ib5rakesh,se2M;or;i1Ty;a4EchFdal10i47;mo;id;aDeAi8o6u5vSy2;anMckn0Pdhia3;n5s angel27;d2g bea1O;brev2Ce3Mma5nz,sb2verpo29;!ss28; ma3Ai5;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Fn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd36rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Yi2H;che2d5;ianap2Mo20;aAe7o5yder2V; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Nupe;ld coa1Bthen5;bu2R;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal28es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,nkirk,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Yr es sala1KugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1P;lo7n6penhag0Ar5;do1Nk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr14;ch8sha,zh07;gliari,i9lga8mayenJn6pe town,r5tanO;acCdiff;ber19c5;un;ry;ro;aWeNhKirmingh0WoJr9u5;chareTdapeTenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iCl9ng8r5;g6l5n;in;en;aluru,hazi;fa6grade,o horizon5;te;st;ji1rut;ghd0AkFn9ot8r7s6yan n4;ur;el,r06;celo3i,ranquil08;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a04b01cc00ddis abaZgartaYhmedWizawl,lSmPnHqaZrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a8c5kaNtwerp;hora6o3;na;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aVbTcPdOeNfMgIhHiFjfk,kDlBm9new eng8or7p5s4t2u1vostok,wake is8y0;akutDyz;laanbaatar,pP;ahiti,he 0;bronx,hamptons;akhalGfo,oho,under3yd;acifUek,h0itcairn;l,x;ange county,d;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IS;1:IW;2:I5;3:I4;4:IM;5:I9;6:JD;7:GQ;8:J9;9:J5;A:HD;B:HN;C:IE;D:J2;E:II;F:H2;G:C4;H:HP;aGIbFDcDJdCSeBIfB0gAAh9Qi9Dj8Ck7Cl5Wm46n3Ko3Gp34qu33r2Bs16t0Fu0Dv03wWxiUyPzI;aMeJineb,oIsof2;e3Rf2la,ra;h3iLlJna,ynI;ab,ep;da,ma;da,h3iIra;nab;aLeKi0GolB3uJvI;etAonDH;i0na;le0sen2;el,gm3Gn,rGAs8T;aoIme0nyi;m5YyAA;aNendDRhiD8iI;dele9lKnI;if45niIo0;e,f44;a,helmi0lIma;a,ow;ka0nB;aOeLiIusa5;ck82kJlAole7viI;anGenIQ;ky,toriBE;da,lA5rIs0;a,nIoniGV;a,iFH;leInesGV;nI7rI;i1y;g9rIxGW;su5te;aZeVhSiOoMrJuIy3;i,la;acIPiIu0L;c2na,sI;hGta;nIr0H;iGya;aKffaEGnIs6;a,gtiI;ng;!nFHra;aJeIomasi0;a,l9Lo87res1;l2ndolwethu;g9Co85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe3iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlett,e0ChYiUkye,neza0oStOuJyI;bI2lvi1;ha,mayI5ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHQr5;b2fiA3m0MnIphi1;d3ia,ja,ya;er3lKmon1nJobh8MtI;a,i;dy;lEHv2;aNeJirIo0risEZy5;a,lDD;ba,e0i5lKrI;iIr6Gyl;!d8Efa;ia,lDP;hd,iNki3nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7YvI;da,inj;e0ife;en1i0ma;anA0bMd3Kh1PiBkLlKmJnd3rIs6vannaC;aCi0;ant6i3;lDEma,ome;ee0in8Ou3;in1ri0;a05e00hYiVoIuthDC;bTcSghRl8GnQsKwJxI;anAUie,y;an,e0;aJeIie,lD; merBIann8ll1marD6t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8B;hel63io;bDFer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG7oI;da,n1L;an0bKemGgi0iJnIta,y0;a86ee;han81na;a,eI;cE5kaC;bi0chJe,i0mo0nIquEFy0;di,ia;aEDelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCL;scil3LyamvaB;lly,rt2;ilome0oebe,ylI;is,lis;ggy,nelope,r5t3;ige,m0UnLo5rvaDBtJulI;a,etAin1;ricIt4T;a,e,ia;do3i07;ctav2dJfCUis6lIphCUumBYyunbileg;a,ga,iv2;eIvA9;l2tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBJkLlaKna,sIta,vi;anIha;ur;!y;a,iDNki;hoHk9SolI;a,eDE;!mh;hir,lIna,risFsreE;!a,lBO;asuMdLh2i6CnKomi8rgEJtIzanin zah3;aIhal4;li1s6;cy,etA;e9iEP;nngu30;a0Ackenz4e02iNoKrignayani,uriD8yI;a,rI;a,lOna,tH;bi0i3llBDnI;a,iI;ca,ka,qCY;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEI;!l,nB;dy,eIh,n4;nhHrva;aLdKiCKlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5EgOi,lLrI;edi77iJjem,on,yI;em,l;em,sF;an4iIliF;nIsC9;a,da;!an,han;b0DcANd0Be,g09ha,i08ja,l06n04rMsoum5YtLuJv80x9FyIz4;bell,ra,soB4;de,rI;a,eE;h8Cild1t4;a,cYgUiLjor4l7Qn4s6tKwa,yI;!aIbe6Uja9lA9;m,nBC;a,ha,in1;!aKbC6eJja,lDna,sIt62;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliACcJeduarBfern5EjIlui5W;o6Dul2;ecil2la3;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Vi75y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD6on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d2la,nI;!a,dJeBCnIsCG;!a,eBB;a,sCE;aCRcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a84i8;lIn1t7;ei;!in1;aTbb98dSepa,lNnKsJv2zI;!a,be5KetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9We;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c2t2;e2NlCB;la,nIra;a,ie,o3;a,or1;a,gh,laI;!ni;!h,nI;a,d3e,n5O;cPdon93iOkes6mi96na,rNtKurJvIxmi,y5;ern1in2;a,e53ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAFoOrKyI;lIra;a,ee,ie;istIy6B;a,en,iJyI;!na;!e,n58;nul,ri,urtnAV;aPerOlAUmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei3ongordzol;dij1w5;el7MiLjsi,lKnJrI;a,i,ri;d3na,za;ey,i,lB8s4y;ra,s6;bi7cAEdiat7EeAXiSlRmQnyakuma1BrOss6HtLvi7yI;!e,lI;a,eI;e,i8H;a6BeJhIi4MlDri0y;ar69er69ie,leErAXy;!lyn8Cri0;a,en,iIl5Qoli0yn;!ma,nGsF;a5il1;ei8Ai,l4;a,tl6I;a09eZiWoOuI;anMdLliIst61;a8DeIsF;!n9tI;!a,te;e5Hi3Iy;a,i7;!anOcelDdNelHhan7NleMni,sJva0yI;a,ce;eIie;fIlDph5S;a,in1;en,n1;i8y;!a,e,n40;lIng;!i1DlI;!i1C;anOle0nLrKsI;i88sI;!e,i87;i,ri;!a,elHif2AnI;a,etAiIy;!e,f28;a,e89iJnI;a,e88iI;e,n1;cNda,mi,nJque4UsminGvie3y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob7Z;!n9H;do3;belIdo3;!a,e,l37;a72en1i0ma;di3es,gr6Tji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin29;da,ll4rten21snI;a,i9K;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1AiKlJnriet7rmi9sI;sa,t19;en2Qga,mi;di;bi2Bil8ClOnNrKsJtIwa,yl8C;i5Nt4;n5Tti;iImo4Xri4Y;etI;!te;aCnaC;a,ey,l4;a03eXiSlQoOrLunKwI;enIyne1O;!dolD;ay,el;acieJetIiselB;a,chE;!la;ld19ogooI;sh;adys,enIor2yn2G;a,da,na;aLgi,lJna,ov84selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Ni,m3Atru86;etAi4S;a,eIna;s25vieve;ma;bJle,mIrnet,yH;al5Ji5;i5BrielI;a,l1;aUeRiQlorPoz2rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0N;n1s5X;!ca;a,enc2;en,o0;lJn0rnI;anB;ec2ic2;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no3oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c2da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh2iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr2nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d3nI;!a,e;hl2i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th2;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat3;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a3er3ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d3elHtI;al,elH;cJlI;esAi42;el2ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a3o3ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el2;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar2;el;aMberLeliKiIy;e,l2naI;!ta;a,ja;!ly;hHiJl2nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c2sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c2is6jaLksaLna,sKxI;aIia;!nd3;ia,saI;nd3;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",Person:"true¦a0Ob0Hc08d05e02g01hZinez,jYkVlSmMnKoJpHr9s7t4v2w0xzibit,yanni;ar0ednesday adams,ill.i.am,oode;hol,rO;a0oltaiO;lentino rossi,n go7;a1heresa may,i0yra banks;ger woods,mbaQ;tum,ylor;a0carlett johanss03hakespeaJinbad,lobodan milosevic,ocratM;ddam hussain,ntigold;a6e5i4o2u0za;mi,n dmc,paul,sh limbau0;gh;d stewart,nald0thko;inho,o;hanYvaldo;ese witherspoVil9mbrandt;ffi,y roma03;a0e08ip07lato,oe,uff daddy;lm06ris hiltS;prah winfrWra;as,e0iles crane,ostradamP; yo,l3ttI;acklemo4essia3i1o0ubarek;by,lie3net,rrissS;randa ju0tt romnR;ly;en;re;ady gaga,e0iberaT;bron jam0e;es;anye west,e1iefer suther0obe bryant;land;ats,ndall,sha;aime,effersCk rowling;a0itlPulk hogan;lle berry,rrisA;ast9otye;ff1m0nya,zekiel;eril lagasse,inem;ie;a1e0ick wolf,rake;gas,nzel washingt4;lt3nB;ar5h3lint2o0;nfuci0olio;us;on;aucCy0;na;dinal wols1son0;! palm9;ey;a5e3o2ro0;ck,n0;te;no;ck,yon0;ce;nksy,rack obama;ristot1shton kutch0;er;le",LastName:"true¦0:9G;1:9W;2:9Y;3:9O;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s2;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi3j6ka3IoGrFsui,uD;om50rD;c3n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps2s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv3zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins2;!on;bei0LcEes,vDzzo;as,e8;ci,hards2;ag3es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss2;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym3;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx2;ic,ov6X;ls1miD;!n1;ils2mD;co42ec;gy,kaEray3varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h3lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h3iSlQnez48oJrGuEvar3woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss2;anEnsD;en,on,t2;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks2obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m3ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers2;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw2;o,staf2Utierr7zm3;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m3;calv9zale0H;aj,i;bs2l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm3uD;cDent9ji3E;hs;ntaDrt6urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s2;er,is2wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g3he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w3;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e2uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em3liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm3tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder2mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy3;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss2;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl3yD;aEd6;in;la;aEsl3;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s2;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DN;1:CO;2:D6;3:AJ;4:CK;5:BZ;6:CF;7:D2;8:BS;9:AR;A:DA;B:D3;C:94;D:BM;aC9bB7cA7d98e8If82g7Fh6Si6Cj5Ek52l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Jkaria,n0C;hFkE;!aC7;ar5UeC6;aMoGuE;sEu2LvBJ;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB8ssY;avi3ho4;aNeLiGoEyaBN;jcie87lfgang,odrow,utE;!er;lEnst1;bGey,fredAlE;aAZiE;am,e,s;e97ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Xy;aHiEladimir,ojte7U;cFha0kt67nceErgA5va0;!nt;e3Xt65;lentEn9S;inE;!e;ghBElyss59nax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r59;avAHeEist0oy,um0;ntA9v5Wy;bGd8RmEny;!as,mEoharu;aCBie,y;iCy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8G;!de5;dHrE;en98rE;an97eEy;ll,n96;!dy;dgh,ha,iEnn3req,tsu4R;cAPka;aUcotSeQhMiKoIpenc3tEur1Xylve96zym1;anGeEua85;f0phBCvEwa84;e5Zie;!islaw,l8;lom1uE;leyma6ta;dElCm1yabonga;!dhart74n8;aGeE;lErm0;d1t1;h7Kne,qu11un,wn,y6;aEbasti0k2Cl4Prg4Mth,ymoAE;m5n;!tE;!ie,y;lFmEnti2Gq58ul;!ke5JmDu4;ik,vato7O;aZeVhe9ViRoIuFyE;an,ou;b7DdFf5pe7KssE;!elBI;ol3Fy;an,bLc62dJel,geIh0landAmHnGry,sFyE;!ce;coe,s;!aA1nD;an,eo;l45r;er78g3n8olfo,riE;go;bDeAQ;cEl8;ar6Ic6HhFkEo;!ey,ie,y;a8Vie;gFid,ubByEza;an1KnZ;g9SiE;na9Os;ch6Qfa4lImHndGpha4sFul,wi2HyE;an,mo6U;h7Jm5;alAWol2U;iACon;f,ph;ent2inE;cy,t1;aJeHhilGier6TrE;aka18eE;m,st1;!ip,lip;dA4rcy,tE;ar,e3Er1Y;b4Hdra73tr6JulE;!o19;ctav3Di3liv3m9Yndrej,rIsFtEum7wB;is,to;aFc7k7m0vE;al5S;ma;i,vM;aMeKiGoEu38;aEel,j5l0ma0r3I;h,m;cFg4i46kEl2R;!au,h7Gola;hEkEolC;olC;al,d,il,ls1vE;il8J;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Gr1;hamFr6KstaE;fa,p54;ed,mI;di0Xe,hamGis2CntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Uik;house,o0Ct1;ae5Oe9MolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2AlSmadXnRrLs1tGuricFxE;imilianAwe9;e,io;eHhFiCtEus,yC;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Ysha9tEv2;iEy;!m,n;in,on;el,oQus;!el90oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5G;ou;aXeRiPlo39oLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7BrenGuEv81we9;!iE;e,s;!zo;am,oE;n4r;a7Uevi,la4AnIonHst3thaGvE;eEi;nte;bo;!a6Del;!ny;mFnd1rEur54wr54;ry,s;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubCnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdBkJmIrGsFvi3yE;dBs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dB;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdA;ffr8rge;brFlBrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymBzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estAie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydCy29;!lC;!a2HnEov0;e9ie,y;go,iFykC;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdA;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndA;!el,ki;ie;ta;aq;as,dIgelAtE;hony,oE;i6nE;!iAy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdBeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtA;ni;dBm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfAri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Honorific:"true¦director1field marsh2lieutenant1rear0sergeant major,vice0; admir1; gener0;al",Adjective:"true¦0:8H;1:9N;2:8E;3:9E;4:8B;5:98;6:8M;7:8T;8:86;9:99;A:8W;B:7Z;C:60;D:9D;E:7J;a80b7Ic6Wd6Fe5Xf5Cg54h4Ui3Ujuni49k3Rl3Hm34n2Uo2Fp20quart6Ar1Qs0Ut0MuRvNwFye1M;ast58eKhIiHoF;man4oFrthwhi7u0I;dBzy;despr8Zn w7Cs6N;acked0XoleF;!sa7;ather14eFll o5Pste2Q;!k4;aHeGiFola5J;b9Qce versa,gi2Qle;ng4Yrsa5H;ca1lu8U;lt08nLpHrGsFttermo9I;efEu5;b7Age1; Hb2ApGsFti8H;ca7et,ide d3P;er,i4O;f3Xto da3;aYbecom2cXdSeRfPiOkn3MmNpMrJsGto49us0wF;a08iel2N;eBi2Fo47pGuF;pervis0spect2;e1okB;eFu4;cognTgul0NlFsolv0;at0ent2;aArecede01;arri0et;que,vers5;air,orF;eseBtun7S;mploy0nd2xpect0;eFisclos0ue;cid0rF;!a75covCly2sJwF;aFei7W;tCy;heck0onvinc2;ppeal2ssum2tteGuthorF;iz0;nd0;im4Bra;aKeHhough5Jip 1RoGrF;anspare1i3;gethCle8Qp notch,rpA;ena6UmpGrF;r3Ktia8;e9o76;leFst3V;nt0;a09c05e02h01iZkiYle5Mmug,nobbi46oTpQqueami46tKuFymb7L;bHi generis,pFr4;erFre69;! dupCb,vi00;du0p5HsFurb65;eq7Rtanda8C;atu6OeJi0WrFy3Z;aightGin4LungF; o25; fFfF;or6C;adfa84ri7;arGeFirit0lendAot on;c33e1F;k4se; call0lub7mbCphisticIrHuFviT;ndFth10;proof;dAry;at0;ll0n d6C;g22nF;ce5Mg7;am36eC;co1Lem4lfGnFre6;so8; suf45i3G;aGholFient2P;ar4;rlFth2;et;cr0me,tisfac5Z;aNeIheumatoAiGoF;bu7IttBy5;ghtFv5;-w2fE;cIdu79lHnown0sFtard0;is3JoF;lu3na1;e1Duc3H;e1ondi3;bAci5;aQeOicayu6laNopuli79rGuF;bl6Fnjabi;eKiIoF;b6HfGmi3IpFvBx23;er,ort6N;a6u6Q;maFor,sti6va3;!ry;ci6Nexist2ma1UpaA;cAid;ac2Dnt2XrFti3;feDma3Ati3Av6J;i2DrtFss6F;-4RiF;al,s4P;bQffOkNld MnKrJthCutIverF;!aGni5Vseas,t,wF;ei5Urou5U;ll;do14er,si51;d34g1U; bFbFe on o6go2li6;oa6P;fashion0school;!ay; gua6MbFli6;eat;eGsF;ce6er0Io0Z;dia1se;aNeMiLoFuanc0; mo47nHrthFt5P;!eF;rn;chaGdescri6Aprof2JsF;top;la1;ght4;arby,cessa8ighbor4xt;k0usiat2;aNeMiKoGuF;dHltip7;deHlGnFot,st;ochro3Yth4;dy;rn,st;ddle ag0nF;dblVi;ga,nac2re;cHgenta,in,j0Akeshift,mmGnFscu50;da4Ay;ali3Ooth;ab3Mho;aNeKiIoFumber2;ngFuti1I;stand2tF;erm,i3L;ghtwei4QteraF;l,te;ft-w2gFssCth5;al,eFit0I;nda8;nguAps0te4;apGind4nF;ow2;ut;ce co0Dgno5Kll09m01nHpso 2ErF;a3releF;va1; WaVcoSdPe2MfOgrNhibi3Ri02nMoLsHtFvalu4N;aDeF;n4Wrdep24;a6iGolFuboI;ub7ve1;de,gF;nifica1;rdi4O;a3er;own;eriGluenSreq4J;eGiIoFul1E;or;fini3p1Ttermi4I;mpGnside9rF;reD;le3;ccu9deq4Jppropr3Q;fFsitu,vitro;ro1;mJpF;arHeGl0YoFropC;li3r0V;nd2rfeD;ti5;aGeFi0Z;d3Hn48;tu2E;egGiF;c0Rte9;al,itF;ima3;ld;aMelLiJoFuma6;meHnGrrFs0Bur4;if3K;e4Co30; ma2Msick;ghfalut1VspF;an3G;liZpfE;i8llow0ndFrd05tL;sy,y;aiLener3Ciga2Jlob5oKraHuF;ilFng ho;ty;cGtF;efEis;efE;ldBod;nfE;aWeTiRlPoIrF;aGeFil4ozB;q3CtfE;gi7nt31;lk0WoJrF; keeps,eHge0OmCtunFwa3U;ateF;!ly;go2i1Os2Z;liF;sh;ag3Rowe8uF;e1oresce1;e8nF;al,i3;dGmini6rF;ti7; up;bl0l31mili0Lr Fux;oFreach2;ff;aTfSlQmNnLqu5reDthere5veryday,xF;aDem3AplIquisi3traHuF;be3FlF;ta1;!va1V;icF;it; Fti0Y;rou3sui3;erGiF;ne1;ge1;dFe1N;er4;ficie1;gCsF;t,ygo2;er;aUeMiHoGrFue;ea8owW;mina1ne,rma1ubO;dact1Yfficult,m,sGverF;ge1se;creGeNjoi1pa9tF;a1inD;et,te; Ladp0GceKfiJgene9liHpGreliDspe9voF;id,ut;ende1;ca3ghF;tfE;a1ni3;as0;facto;i4ngero05;arZeXhWivil,oMrHuF;stoma8teF;sy;aIeHu0WystalF; cleFli6;ar;epy;vBz0;erNgniza1loMmLnGrpo9veF;rt;cIduLgr1KjHsGtraF;dic0Hry;eq1Ita1;oi1ug5;a1Ci1L;mensu9pass1G;ni5ss5;ci19;ee8intzy;leba3rtaF;in;diac,efE;aUeOiJliSoGrFuck nak0;and new,isk,on1U;gGldface,naF; fiZfiZ;us;gHpartisGzarF;re;an;tiF;me;autifEhiIloHnFsiSyoI;e01iFt;gn;v0w;nd;ul;ckwards,rF;e,rB; priori,b12c0Zd0Tf0Ng0Ih0Hl0Amp7nt07pZrSsPttracti0MuLvIwF;aGkF;wa19;ke,re;ant garGeraF;ge;de;diHtF;heFoimmu6;nt07;to8;hBlF;eep;en;bitJchiv5roItF;iFsy;fiF;ci5;ga1;ra8;ry;pFt;aJetiz2roF;prHximF;ate4;ly;ia3;ll2re1;ing;iquFsy;at0e;ed;cohJiQkaHl,oGriFterW;ght;ne,of;li6;ne;olF;ic;ead;ain05ed,gressiIrF;eeF;ab7;le;ve;fGraA;id;ectGlF;ue1;ioF;na3; JeHvF;erF;se;pt,qF;ua3;hoc,infinitum;cu9tu5u3;al;ra3;erQlOoMrJsGuF;nda1;e1olu3traD;ct;te;eaGuF;pt;st;aFve;rd;aFe;ze;ra1;nt",Adverb:"true¦a08b05d01eXfRhePinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6;en,us;eldom,o0uch;!me1rt0; of;how,times,w0A;a1e0;alT;ndomSthN;ar excellenEer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag03moX; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboV;deed,steW;lla,n0;ce;or2u0;lArther0;!moK; 0ev3;examp0good,suI;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;ju9trop;ackward,y 0;far,no0; means,w; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aVbRcuz,eNhowMiEjustYnoBo9p8supposing,t5wh0yet;e1il0o3;e,st;n1re0thN; if,vM;evL;h0o;erefMo0;!uS;lus,rovided th9;r0therwiK;! not; mattEr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mGcaDorder t0;h0o;at;! 0;only,t0w0;hen;!ev3;ith2ven0;! 0;if,t9;er;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s",Determiner:"true¦aAboth,d8e5few,le4mu7neiCplenty,s3th2various,wh0;at0ich0;evB;at,e3is,ose;everal,ome;!ast,s;a1l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er","Adj|Present":"true¦a07b04cVdQeOfKhollJidRlFmDnarrJoCpAqua9r8s4t2utt3w0;aLet,ound,ro0;ng,ug08;end0hin;er;e2hort,l1mooth,our,pa9tray,u0;re,speT;i2ow;cu6da01leRpaM;eplica00ig01;ck;aGr0;eseTime,omU;bscu1pen,wn;atu0e3odeG;re;a2e1i0;gTve;an;st,y;ow;a2i1oul,r0;ee,inge;rm;iHke,ncy,st;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry,ull;le;ffu9re6;fu8libe0;raE;alm,l5o0;mpleCn3ol,rr1unterfe0;it;e0u7;ct;juga8sum7;ea1o0;se;n,r;ankru1lu0;nt;pt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:38;1:3M;2:3B;3:2E;a3Qb39c30d2Re2Kf28g1Wh1Mi1Gj1Fk1Cl15m0Zn0Uo0Tp0Kqu0Ir09sJtEuDvBw5y4za0S;el12ouP;a8e6hi1Ii4ry;ck0Ede,l4n1ry,se;d,y;a4i3P;k,ry;ntiJry;a4erda2ulgar;gue,in,st;g0pcomiG;a7en2Thi6i5ough,r4;anqu29en1ue;dy,g32me0ny,r04;ck,rs25;ll,me,rt,wd3E;aScarReQhOiNkin0ClJmHoFpEt7u5w4;eet,ift;b4dd0Wperfi1Xrre25;sta23t3;a9e8iff,r5u4;pVr1;a5ict,o4;ng;ig2Rn0N;a1ep,rn;le,rk,te0;e1Oi2Rright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Im4;!y;ek,nd2O;ck,l0mp3;a4iRrill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1BlAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;bb0ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Xte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o11u4ve0w0Vy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui16;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng19;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd10ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue0X;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiR;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0N;!ny;aDesh,iend0;a4rmE;my;erce5nan4;ciB;! ;le;r,ul4;ty;a7erie,sse5v4xtre0B;il;nti4;al;r5s4;tern,y;ly,th0;aBe8i5ru4umb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppRrk;agey,h9l8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;evLou1;e4il0;ap,e4;sy;aIiGlDoBr6u4;r0sy;ly;a7i4oad;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd","Person|Adj":"true¦brown,du2earnest,frank,mi2r0sa1;a0ich,u1;ndy;sty",Infinitive:"true¦0:8V;1:8G;2:9D;3:80;4:7N;5:91;6:9H;7:99;8:82;9:9G;A:92;B:8X;C:7K;D:7U;E:7Q;F:87;G:7V;H:7H;a82b7Jc6Sd5Le4Gf45g41h3Wi3Cj39k37l2Ym2Rnou3Vo2Lp25qu24r19s0AtYuTvRwI;aOeNiLors4rI;eJiI;ng,te;ak,st3;d4e7HthI;draw,er;a2d,ep;i2ke,nIrn;d0t;aIie;li9Eni9ry;nIplift;cov0dJear7JlIplug,tie,ve85;ea9o3K;erIo;cut,go,sta9Gval96whelm;aRePhMoLrI;aIemb3;ffi3Fmp3nsI;aDpi8;pp3ugh4;aJiJrIwaE;eat4i2;nk;aIm92;ch,se;ck3ilor,keImp0r7N;! paE;a0Fc0Ee0Ch08i06l04mugg3n03o01pYquXtQuKwI;all71eeIim;p,t4;bKccumb,ffJggeBmm93p2FrI;mouFvi2;er,i5;li80mJsiIveE;de,st;erAit;aMe7SiKrI;ang3eIi2;ng20w;fIng;f4le;gg0rI;t3ve;a3Ui9;a4DeJit,l6KoI;il,of;ak,nd;lIot6Nw;icCve;eak,i0L;aIi6;m,y;ft,nIt;g,k;aKi5LoJriIun;nk,v5X;ot,rt4;ke,rp4tt0;eIll,nd,que7Nv0w;!k,m;avenAul81;dd4tis1Ay;a0BeJip4oI;am,ut;a07b05c03d02fZgroup,heaYiXlVmUnTpRq36sNtLup,vI;amp,eJiIo2V;sCve;l,rt;i8rI;ie2ofC;eFiKtIurfa5;o1XrI;aHiDuctu8;de,gn,st;el,hra1lIreseF;a5e69;d0ew,o05;aHe31o2;a7eFiIoad,y;e2nq3Mve;mbur1nf2U;r1t;inJleDocus,re9uI;el,rbi9;an5e;aDu5;ei2k7Jla3OoIyc3;gni2Wnci3up,v0;oot,uI;ff;ct,d,liI;se,ze;tt3vi9;a9enGit,o7;aVerTinpoiFlumm0VoSrKuI;b3Oke,ni9rIt;poEs6W;eMoI;cKd,fe4BhibCnoJpo1sp0tru6vI;e,i6o4W;un5;la39u8;aGclu6dJf0occupy,sup0FvI;a5LeF;etermi47iD;aGrtr4Vsse44;cei2fo3Hi9mea7plex,sIva6;eve8iB;mp0rItrol,ve,y;a5St5O;bMccuLpKutJverIwe;lap,s19tu6Au1;gr4Pnu22pa5;era7i3Ypo1;py,r;ser2taH;aMe09iJoIultiply;leBu64;micJnIspla5;ce,g3us;!k;iIke,naA;m,ntaH;aPeLiIo1u39;e,ke,ng0quIv4;eIi66;fy;aKnIss4;d,gI;th4;rn,ve;ng26u1E;eep,nI;e3Row;oHuI;gg3xtaI;po1;gno8mWnIrk;cUdSfRgeBhQitia7ju8q14sOtKun5TvI;eIo0T;nt,st;erJimi5QoxiQrI;odu5u6;aDn,prIru5Q;et;iBpi8tIu8;il,ruD;abCibC;eBo2Bu1;iIulA;ca7;i7lu6;b5Cmer1pI;aEer47ly,oJrI;e2Ris5No2;rt,se,veI;ri9;aLeKiIoiBuE;de,jaInd0;ck;ar,iQ;mp0ng,pp4st4ve;ath0et,i2le1UoKrI;aIow;b,pp3ze;!ve4S;ast4er3Li58lRorMrJuI;lf3Tr3P;eJiIolic;ght4;e0Lsh4;b3DeKfeCgIs4B;eIi2;!t;clo1go,sIwa4J;had2Y;ee,i2Q;a0KdCl0Im0CnUquip,rTsStGvQxI;cNeEha3iMpJtI;ing0Uol;eJi8lIo1unA;aHoC;ct,di7;st,t;e2MlI;a0Xu6;alua7oI;ke,l2;chew,pou1tab13;a1u4G;aYcVdTfSgQhan5joy,lPqOrNsuMtKvI;e0VisI;aAi4L;er,i5rI;aHenGuB;e,re;iGol;ui8;arAiB;aAeIra2ulf;nd0;or5;ang0oIu8;r1w;lo1ou0CrJuI;mb0;oaGy3Z;b3ct;bKerApI;hasiIow0;ze;a0Tody,rI;a5oiI;d0l;ap1eDuI;ci3Ode;rIt;ma0Nn;a0Ne02iKo,rIwind3;aw,edAoI;wn;agno1e,ff0g,mi27sLvI;eIulA;rIst;ge,t;ab3bUcPlodAmant3pNru3GsMtI;iIoEu2W;lJngI;ui9;!l;ol2ua6;eIla5o1ro2;n1r1;a2Ne2WlKoIu0K;uIv0;raA;aIo1;im;a38ur1;af4bZcTduDep4fRliQmNnLpKra1TtaGvI;eIol2;lop;aEiDoE;oIy;te,un5;eJoI;li9;an;mCv0;a5i06oIraud,y;rm;ei2iMoKrI;ee,yI;!pt;de,mIup3;missi2Upo1;de,ma7ph0;aJrief,uI;g,nk;rk;mp4rk4uF;a06ea1h04i03l02oJrIurta17;a2ea7ipp3;ales5eZhabCinci6llYmWnIrro6;cTdQfNju8no7qu0sLtKvI;eIin5;ne,rA;aHin25ribu7;er2iIoli27pi8titu7ult;d0st;eJiIroFu1;de,gu8rm;ss;eJoI;ne;mn,n1;eIlu6ur;al,i2;buBe,men5pI;e7i3ly;eDi6u6;r5xiB;ean1iS;rcumveFte;eIoo1;ri9w;ncIre4t0ulk;el;aXeRi6lPoOrLuI;iJrIy;st,y;ld;aJeastfeMiIoad4;ng;ke;il,l12mba0XrrMth0;eIow;ed;!come,gHha2liLqueaKstJtrIwild0;ay;ow;th;e2tt3;in;bysCckfi8ff3tI;he;it;b17c0Vd0Mff0Kgr0Jl0Fm0Bn05pp01rZsSttPuNvKwaI;it,k4;en;eEoI;id;rt;gIto08;meF;aGeBraD;ct;ch;pi8sJtoI;ni9;aKeIi05u8;mb3rt,ss;le;il;re;g0Ji1ou1rI;anAi2;eaKly,oiFrI;ai1o2;nt;r,se;aMiQnJtI;icipa7;eJoIul;un5y;al;ly1;aJu1;se;lgaIze;ma7;iKlI;eAoIu6;t,w;gn;ee;ix,oI;rd;a01jNmiKoJsoI;rb;pt,rn;niIt;st0;er;ouJuB;st;rn;cLhie2knowledAquiItiva7;es5re;ce;ge;eOomKrJusI;e,tom;ue;moJpI;any,li9;da7;te;pt;andOet,i6oKsI;coKol2;ve;li9rt,uI;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Verb:"true¦born,cannot,gonna,has,keep tabs,msg",Participle:"true¦fl3g1s0writt2;e1h2;iv0one;en;own","Actor|Verb":"true¦aIbDcAd8engineFfool,g6host,judge,m4nerd,p3recruit,s1ushFvolunteFwi0;mp,tneF;cout,p0;ons6y;arent,ilot;a0ime;n,st9;eek,oof,r0uide;aduCoom;elegBoct0;or;ha1o0;a5nscript,ok;mpion,uffeur;it3o2u0;lly,tch0;er;ss;ch;d0ffili1rchite2;di1voc0;ate;ct","Adj|Gerund":"true¦0:2F;1:2H;2:25;3:23;4:20;5:2D;6:27;7:22;a24b1Zc1Hd14e0Yf0Og0Ih0Hi0Ajud1Xl07m04o00pWrQsFtAup9v8w0Pyiel4;ar5eY;lif0s01;aWeBhr9i3ouc7r8wis0;e01oub2us0yi1;ea0Mi8;l2vi1;l2mp0;atisf5creec7hoc0Ekyrocke0lo13oGpFtBu9we8;e12l2;pp1Kr8;gi1pri6roun4;a9ea23i8ri0Aun1C;mula0r3;gge3r8;t2vi1;ark2ee4;a8ot7;ki1ri1;aCe9ive0o8us7;a3l2;defi13fres7ig13laEmai13s0v8war4;ea2itali8ol0Q;si1zi1;gi1ll5mb2vi1;a5erpleAier1Dlun18r8un1J;e8o11;ce4s6vai2;xi1;ffsApNut9ver8wi1;arc7lap0Hp09ri4whel1L;goi1l5st0Y;et0;eande3i9o0Fu8;mb2;s6tiga0;a9i8o0C;fesa0Bmi0vi1;cKg0Vs0;mDn8rri0C;cBsAt9vi8;go1Gti1;e15imida0;pi3ul0;orpo1Drea6;po6;arrowi1ea2orrif5umilia0;lCr8;a0ipZo9uel8;i1li1;undbrea8wi1;ki1;a3ea0Z;aGetc7it0lDoBr9ulf8;il2;ee0Yigh8ust12;te04;r8un4;ebo4th0H;a9o8;a0we3;mi1tte3;di1scina0;mBn9x8;ac0ci0is0plo4;ab2c8du3ga04sT;han0oura03;barras6er02p8;owe3;aJeCi8;s8zz5;appoin0gus0sen0t8;r8u0N;ac0es6;biliDcCfiMgra4mBpres6serAv8;asCelo8;pi1;vi1;an4eaI;a5liH;ta0;maOri1s7un0;aOhLlo6o8ripp2ut0;mEn8rrespon4;cerCfBspi3t8vinQ;in9r8;as0ibu0ol2;ui1;lic0u6;ni1;fCmBp8;e9ro8;mi6;l2ti1;an4;or0;a8ea0il2;llen8rQ;gi1;lOptiva0ri1;eBin4lin4o9rui6u8;d4st2;i2oLri1un8;ci1;coJ;bsoQcLgonJlarImGppea2rEs8;pi3su3to8;n9un4;di1;is7;hi1;ri1;res0;li1;aBu6;si1;mi1;i8zi1;zi1;c8hi1;ele9ompan5;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:30;1:2R;2:2U;a2Jb2Dc1Ud1Be15f10gift0h0Xi0Qj0Pknown,l0Mm0Hn0Fo0Cp05qua04rVsEtAu7v5w3;arp0ea3or5;kIth2T;a3e0W;ri0;n3pd1s0;derstood,i3;fi0t0;ar5hreatCr3wi2R;a3ou19;ck0in0pp0;get0ni1N;aHcaGeEhDimCm01oak0pAt6u3;bsid28gge2Ms3;pe3ta1S;ct0nd0;at0e5r3uV;ength3ip0;en0;am0reotyp0;eci3ik0ott0;al20fi0;pIul1;ar0ut;a3c1Jle2t1S;l0t0;r0tt25;t3ut0;is1Jur1;aAe3;c7duc0f1Cg6l1new0qu5s3;pe2t3;or0ri2;e22ir0;ist1Xul1;eiv0o3;mme09rd0v1V;lli0ti1A;li19;arallel0i0Kl7o6r3ump0;e4o3;ce0Ilo0Hnou1Tpos0te2;fe0Loc8pY;i1Gli0R;a3e19;nn0;c4rgan1Bverlo3;ok0;cupi0;e3ot0;ed0gle2;a5e4ix0o3ut0;di0Vt0G;as0Qlt0;n3rk0;ag0ufact0O;eft,i4o3;ad0st;cens0mit0st0;agg0us0N;mp8n3sol1;br0debt0f6t3volv0;e3ox0F;gr1n3re18;d0si0J;e2l1oX;li0oLrov0;amm10e1o3;ok0r3;ri0E;aNe6i5lavo09oc05r3;a3i0;ct07g0Mm0;niXx0;ar0;duc1l1mbarraKn7quipp0stabliVx3;agger1p3te5;a4e3;ct0rie0S;nd0;ha0QsZ;aJeAi3;gni01miniOre2s3;a7c5grun05t3;o3reBurb0;rt0;iplSou3;nt0rE;bl0;cenVdOf8l7pre6ra5t3velop0;a3ermO;il0;ng0;ss0;ay0ight0;e4o3;rm0;rr0;m3t0;ag0;alcul1eHharg0lGo8r5u3;lt3stomS;iv1;a4owd0u3;sh0;ck0mp0;d0lo9m6n3ok0vX;centr1f4s3troll0;idVolid1;us0;b4pl3;ic1;in0;ur0;assi5os0;lebr1n5r3;ti3;fi0;tralB;a7i6o4roken,urn3;ed,t;il0r0t3und;tl0;as0;k0laIs0;bandon0cJdGffe2lDnBpp9ss7u3ward0;g4thor3;iz0;me3;nt0;o5u3;m0r0;li0re3;ci1;im1ticip1;at0;leg0t3;er0;ct0;ju4o6va3;nc0;st0;ce3knowledg0;pt0;ed","Person|Verb":"true¦b8ch7dr6foster,gra5hope,ja9lan4ma2ni9ollie,p1rob,s0tra4wade;pike,t5ue;at,eg,ier2;ck,r0;k,shal;ce;ce,nt;ew;ase,u1;iff,l1ob,u0;ck;aze,ossom","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const ko="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Po=ko.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Ao=function(e){if(void 0!==Po[e])return Po[e];let t=0,n=1,r=36,a=1;for(;n=0;n--,a*=36){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t};var Io=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=jo(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=xo(wo[e]);Oo.test(e)?Object.keys(t).forEach((t=>{if(Fo[t]=e,"Noun|Verb"===e){let e=Do(t,Go);Fo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Vo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","3","<\\3","=("].forEach((e=>Vo[e]="Emoticon")),delete Vo[""],delete Vo.null,delete Vo[" "];const Bo="Singular";var zo={beforeTags:{Determiner:Bo,Possessive:Bo,Acronym:Bo,Noun:Bo,Adjective:Bo,PresentTense:Bo,Gerund:Bo,PastTense:Bo,Infinitive:Bo,Date:Bo,Ordinal:Bo,Demonym:Bo},afterTags:{Value:Bo,Modal:Bo,Copula:Bo,PresentTense:Bo,PastTense:Bo,Demonym:Bo,Actor:Bo},beforeWords:{the:Bo,with:Bo,without:Bo,of:Bo,for:Bo,any:Bo,all:Bo,on:Bo,cut:Bo,cuts:Bo,increase:Bo,decrease:Bo,raise:Bo,drop:Bo,save:Bo,saved:Bo,saves:Bo,make:Bo,makes:Bo,made:Bo,minus:Bo,plus:Bo,than:Bo,another:Bo,versus:Bo,neither:Bo,about:Bo,favorite:Bo,best:Bo,daily:Bo,weekly:Bo,linear:Bo,binary:Bo,mobile:Bo,lexical:Bo,technical:Bo,computer:Bo,scientific:Bo,security:Bo,government:Bo,popular:Bo,formal:Bo,no:Bo,more:Bo,one:Bo},afterWords:{of:Bo,system:Bo,aid:Bo,method:Bo,utility:Bo,tool:Bo,reform:Bo,therapy:Bo,philosophy:Bo,room:Bo,authority:Bo,says:Bo,said:Bo,wants:Bo,wanted:Bo,is:Bo,can:Bo,wise:Bo}};const $o="Infinitive";var Lo={beforeTags:{Modal:$o,Adverb:$o,Negative:$o,Plural:$o},afterTags:{Determiner:$o,Adverb:$o,Possessive:$o,Reflexive:$o,Preposition:$o,Cardinal:$o,Comparative:$o,Superlative:$o},beforeWords:{i:$o,we:$o,you:$o,they:$o,to:$o,please:$o,will:$o,have:$o,had:$o,would:$o,could:$o,should:$o,do:$o,did:$o,does:$o,can:$o,must:$o,us:$o,me:$o,let:$o,even:$o,when:$o,help:$o,he:$o,she:$o,it:$o,being:$o,bi:$o,co:$o,contra:$o,de:$o,inter:$o,intra:$o,mis:$o,pre:$o,out:$o,counter:$o,nobody:$o,somebody:$o,anybody:$o,everybody:$o},afterWords:{the:$o,me:$o,you:$o,him:$o,us:$o,her:$o,them:$o,it:$o,himself:$o,herself:$o,itself:$o,myself:$o,ourselves:$o,themselves:$o,something:$o,anything:$o,a:$o,an:$o,up:$o,down:$o,by:$o,out:$o,off:$o,under:$o,what:$o,all:$o,to:$o,because:$o,although:$o,after:$o,before:$o,how:$o,otherwise:$o,together:$o,though:$o,into:$o,yet:$o,more:$o,here:$o,there:$o}};var So={beforeTags:Object.assign({},Lo.beforeTags,zo.beforeTags,{}),afterTags:Object.assign({},Lo.afterTags,zo.afterTags,{}),beforeWords:Object.assign({},Lo.beforeWords,zo.beforeWords,{}),afterWords:Object.assign({},Lo.afterWords,zo.afterWords,{})};const Mo="Adjective";var Ho={beforeTags:{Determiner:Mo,Possessive:Mo,Hyphenated:Mo},afterTags:{Adjective:Mo},beforeWords:{seem:Mo,seemed:Mo,seems:Mo,feel:Mo,feels:Mo,felt:Mo,stay:Mo,appear:Mo,appears:Mo,appeared:Mo,also:Mo,over:Mo,under:Mo,too:Mo,it:Mo,but:Mo,still:Mo,really:Mo,quite:Mo,well:Mo,very:Mo,how:Mo,deeply:Mo,hella:Mo,profoundly:Mo,extremely:Mo,so:Mo,badly:Mo,mostly:Mo,totally:Mo,awfully:Mo,rather:Mo,nothing:Mo,something:Mo,anything:Mo,not:Mo,me:Mo,is:Mo},afterWords:{too:Mo,also:Mo,or:Mo}};const Jo="Gerund";var Wo={beforeTags:{Adverb:Jo,Preposition:Jo,Conjunction:Jo},afterTags:{Adverb:Jo,Possessive:Jo,Person:Jo,Pronoun:Jo,Determiner:Jo,Copula:Jo,Preposition:Jo,Conjunction:Jo,Comparative:Jo},beforeWords:{been:Jo,keep:Jo,continue:Jo,stop:Jo,am:Jo,be:Jo,me:Jo,began:Jo,start:Jo,starts:Jo,started:Jo,stops:Jo,stopped:Jo,help:Jo,helps:Jo,avoid:Jo,avoids:Jo,love:Jo,loves:Jo,loved:Jo,hate:Jo,hates:Jo,hated:Jo},afterWords:{you:Jo,me:Jo,her:Jo,him:Jo,them:Jo,their:Jo,it:Jo,this:Jo,there:Jo,on:Jo,about:Jo,for:Jo}};var Ko={beforeTags:Object.assign({},Ho.beforeTags,Wo.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Ho.afterTags,Wo.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Ho.beforeWords,Wo.beforeWords,{is:"Adjective",was:"Adjective",of:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Ho.afterWords,Wo.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const qo={beforeTags:{Determiner:void 0,Cardinal:"Noun",PhrasalVerb:"Adjective"}};var Uo={beforeTags:Object.assign({},Ho.beforeTags,zo.beforeTags,qo.beforeTags),afterTags:Object.assign({},Ho.afterTags,zo.afterTags),beforeWords:Object.assign({},Ho.beforeWords,zo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective",off:"Adjective",out:"Adjective"}),afterWords:Object.assign({},Ho.afterWords,zo.afterWords)};let Ro="PastTense";const Qo={beforeTags:{Adverb:Ro,Pronoun:Ro,ProperNoun:Ro,Auxiliary:Ro,Noun:Ro},afterTags:{Possessive:Ro,Pronoun:Ro,Determiner:Ro,Adverb:Ro,Comparative:Ro,Date:Ro,Gerund:Ro},beforeWords:{be:Ro,who:Ro,get:"Adjective",had:Ro,has:Ro,have:Ro,been:Ro,it:Ro,as:Ro,for:"Adjective"},afterWords:{by:Ro,back:Ro,out:Ro,in:Ro,up:Ro,down:Ro,before:Ro,after:Ro,for:Ro,the:Ro,with:Ro,as:Ro,on:Ro,at:Ro,between:Ro,to:Ro,into:Ro,us:Ro,them:Ro,me:Ro}};var _o={beforeTags:Object.assign({},Ho.beforeTags,Qo.beforeTags),afterTags:Object.assign({},Ho.afterTags,Qo.afterTags),beforeWords:Object.assign({},Ho.beforeWords,Qo.beforeWords),afterWords:Object.assign({},Ho.afterWords,Qo.afterWords)};const Yo={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Zo={beforeTags:Object.assign({},Ho.beforeTags,Lo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Ho.afterTags,Lo.afterTags,Yo.afterTags),beforeWords:Object.assign({},Ho.beforeWords,Lo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ho.afterWords,Lo.afterWords,{to:void 0,as:"Adjective"})};const Xo={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ei={},ti={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ni={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ri={beforeTags:Object.assign({},Wo.beforeTags,zo.beforeTags,Xo),afterTags:Object.assign({},Wo.afterTags,zo.afterTags,ei),beforeWords:Object.assign({},Wo.beforeWords,zo.beforeWords,ti),afterWords:Object.assign({},Wo.afterWords,zo.afterWords,ni)};const ai="Singular",oi="Infinitive";var ii={beforeTags:Object.assign({},Lo.beforeTags,zo.beforeTags,{Adjective:ai,Particle:ai}),afterTags:Object.assign({},Lo.afterTags,zo.afterTags,{ProperNoun:oi,Gerund:oi,Adjective:oi,Copula:ai}),beforeWords:Object.assign({},Lo.beforeWords,zo.beforeWords,{is:ai,was:ai,of:ai,have:null}),afterWords:Object.assign({},Lo.afterWords,zo.afterWords,{instead:oi,about:oi,his:oi,her:oi,to:null,by:null,in:null})};const si="Person";var li={beforeTags:{Honorific:si,Person:si},afterTags:{Person:si,ProperNoun:si,Verb:si},ownTags:{ProperNoun:si},beforeWords:{hi:si,hey:si,yo:si,dear:si,hello:si},afterWords:{said:si,says:si,told:si,tells:si,feels:si,felt:si,seems:si,thinks:si,thought:si,spends:si,spendt:si,plays:si,played:si,sing:si,sang:si,learn:si,learned:si,wants:si,wanted:si}};const ui="Month",ci={beforeTags:{Date:ui,Value:ui},afterTags:{Date:ui,Value:ui},beforeWords:{by:ui,in:ui,on:ui,during:ui,after:ui,before:ui,between:ui,until:ui,til:ui,sometime:ui,of:ui,this:ui,next:ui,last:ui,previous:ui,following:ui},afterWords:{sometime:ui,in:ui,of:ui,until:ui,the:ui}};var hi={beforeTags:Object.assign({},li.beforeTags,ci.beforeTags),afterTags:Object.assign({},li.afterTags,ci.afterTags),beforeWords:Object.assign({},li.beforeWords,ci.beforeWords),afterWords:Object.assign({},li.afterWords,ci.afterWords)};const di="Place",gi={beforeTags:{Place:di},afterTags:{Place:di,Abbreviation:di},beforeWords:{in:di,by:di,near:di,from:di,to:di},afterWords:{in:di,by:di,near:di,from:di,to:di,government:di,council:di,region:di,city:di}};let mi="Unit";const pi={"Actor|Verb":So,"Adj|Gerund":Ko,"Adj|Noun":Uo,"Adj|Past":_o,"Adj|Present":Zo,"Noun|Verb":ii,"Noun|Gerund":ri,"Person|Noun":{beforeTags:Object.assign({},zo.beforeTags,li.beforeTags),afterTags:Object.assign({},zo.afterTags,li.afterTags),beforeWords:Object.assign({},zo.beforeWords,li.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},zo.afterWords,li.afterWords)},"Person|Date":hi,"Person|Verb":{beforeTags:Object.assign({},zo.beforeTags,li.beforeTags,Lo.beforeTags),afterTags:Object.assign({},zo.afterTags,li.afterTags,Lo.afterTags),beforeWords:Object.assign({},zo.beforeWords,li.beforeWords,Lo.beforeWords),afterWords:Object.assign({},zo.afterWords,li.afterWords,Lo.afterWords)},"Person|Place":{beforeTags:Object.assign({},gi.beforeTags,li.beforeTags),afterTags:Object.assign({},gi.afterTags,li.afterTags),beforeWords:Object.assign({},gi.beforeWords,li.beforeWords),afterWords:Object.assign({},gi.afterWords,li.afterWords)},"Person|Adj":{beforeTags:Object.assign({},li.beforeTags,Ho.beforeTags),afterTags:Object.assign({},li.afterTags,Ho.afterTags),beforeWords:Object.assign({},li.beforeWords,Ho.beforeWords),afterWords:Object.assign({},li.afterWords,Ho.afterWords)},"Unit|Noun":{beforeTags:{Value:mi},afterTags:{},beforeWords:{per:mi,every:mi,each:mi,square:mi,cubic:mi,sq:mi,metric:mi},afterWords:{per:mi,squared:mi,cubed:mi,long:mi}}},fi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};pi["Plural|Verb"]={beforeWords:fi(pi["Noun|Verb"].beforeWords,{had:"Plural",have:"Plural"}),afterWords:fi(pi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null,is:"PresentTense",by:"PresentTense"}),beforeTags:fi(pi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:fi(pi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var vi=pi;const bi="Adjective",yi="Infinitive",wi="PresentTense",ki="Singular",Pi="PastTense",Ai="Adverb",Ii="Plural",Ni="Verb",ji="LastName",xi="Participle";var Ei=[null,null,{ea:ki,ia:"Noun",ic:bi,ly:Ai,"'n":Ni,"'t":Ni},{oed:Pi,ued:Pi,xed:Pi," so":Ai,"'ll":"Modal","'re":"Copula",azy:bi,eer:"Noun",end:Ni,ped:Pi,ffy:bi,ify:yi,ing:"Gerund",ize:yi,ibe:yi,lar:bi,mum:bi,nes:wi,nny:bi,ous:bi,que:bi,ger:"Noun",ber:"Noun",rol:ki,sis:ki,ogy:ki,oid:ki,ian:ki,zes:wi,eld:Pi,ken:xi,ven:xi,ten:xi,ect:yi,ict:yi,ign:yi,ful:bi,bal:bi},{amed:Pi,aped:Pi,ched:Pi,lked:Pi,rked:Pi,reed:Pi,nded:Pi,mned:bi,cted:Pi,dged:Pi,ield:ki,akis:ji,cede:yi,chuk:ji,czyk:ji,ects:wi,ends:Ni,enko:ji,ette:ki,iary:ki,wner:ki,fies:wi,fore:Ai,gate:yi,gone:bi,ices:Ii,ints:Ii,ruct:yi,ines:Ii,ions:Ii,ners:Ii,pers:Ii,lers:Ii,less:bi,llen:bi,made:bi,nsen:ji,oses:wi,ould:"Modal",some:bi,sson:ji,ians:Ii,tion:ki,tage:"Noun",ique:ki,tive:bi,tors:"Noun",vice:ki,lier:ki,fier:ki,wned:Pi,gent:ki,tist:"Actor",pist:"Actor",rist:"Actor",mist:"Actor",yist:"Actor",vist:"Actor",ists:"Actor",lite:ki,site:ki,rite:ki,mite:ki,bite:ki,mate:ki,date:ki,ndal:ki,vent:ki,uist:"Actor",gist:"Actor",note:ki,cide:ki,ence:ki,wide:bi,vide:yi,ract:yi,duce:yi,pose:yi,eive:yi,lyze:yi,lyse:yi,iant:bi,nary:bi,erer:"Actor"},{elist:"Actor",holic:ki,phite:ki,tized:Pi,urned:Pi,eased:Pi,ances:Ii,bound:bi,ettes:Ii,fully:Ai,ishes:wi,ities:Ii,marek:ji,nssen:ji,ology:"Noun",osome:ki,tment:ki,ports:Ii,rough:bi,tches:wi,tieth:"Ordinal",tures:Ii,wards:Ai,where:Ai,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:ki,scent:ki,onist:"Actor",anist:"Actor",alist:"Actor",olist:"Actor",icist:"Actor",ounce:yi,iable:bi,borne:bi,gnant:bi,inant:bi,igent:bi,atory:bi,rient:ki,dient:ki,maker:"Actor"},{auskas:ji,parent:ki,cedent:ki,ionary:ki,cklist:ki,keeper:"Actor",logist:"Actor",teenth:"Value",worker:"Actor",master:"Actor",writer:"Actor"},{logists:"Actor",opoulos:ji,borough:"Place",sdottir:ji}];const Ti="Adjective";var Ci=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Ti,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Ti,tele:"Noun","pro-":Ti,"mis-":"Verb","dis-":"Verb","pre-":Ti},{anglo:"Noun",centi:"Noun",ethno:"Noun",ferro:"Noun",grand:"Noun",hepta:"Noun",hydro:"Noun",intro:"Noun",macro:"Noun",micro:"Noun",milli:"Noun",nitro:"Noun",penta:"Noun",quasi:Ti,radio:"Noun",tetra:"Noun","omni-":Ti,"post-":Ti},{pseudo:Ti,"extra-":Ti,"hyper-":Ti,"inter-":Ti,"intra-":Ti,"deca-":Ti},{electro:"Noun"}];const Di="Adjective",Oi="Infinitive",Vi="PresentTense",Fi="Singular",Gi="PastTense",Bi="Expression",zi="LastName";var $i={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,zi],[/.[^aeiou]ica$/,Fi,"harmonica"],[/^([hyj]a+)+$/,Bi,"haha"]],c:[[/.[^aeiou]ic$/,Di]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Gi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Gi,"rammed"],[/.[aeiou][sg]hed$/,Gi,"gushed"],[/.[aeiou]red$/,Gi,"hired"],[/.[aeiou]r?ried$/,Gi,"hurried"],[/[^aeiou]ard$/,Fi,"steward"],[/[aeiou][^aeiou]id$/,Di,""],[/.[vrl]id$/,Di,"livid"],[/..led$/,Gi,"hurled"],[/.[iao]sed$/,Gi,""],[/[aeiou]n?[cs]ed$/,Gi,""],[/[aeiou][rl]?[mnf]ed$/,Gi,""],[/[aeiou][ns]?c?ked$/,Gi,"bunked"],[/[aeiou]gned$/,Gi],[/[aeiou][nl]?ged$/,Gi],[/.[tdbwxyz]ed$/,Gi],[/[^aeiou][aeiou][tvx]ed$/,Gi],[/.[cdflmnprstv]ied$/,Gi,"emptied"]],e:[[/.[lnr]ize$/,Oi,"antagonize"],[/.[^aeiou]ise$/,Oi,"antagonise"],[/.[aeiou]te$/,Oi,"bite"],[/.[^aeiou][ai]ble$/,Di,"fixable"],[/.[^aeiou]eable$/,Di,"maleable"],[/.[ts]ive$/,Di,"festive"],[/[a-z]-like$/,Di,"woman-like"]],h:[[/.[^aeiouf]ish$/,Di,"cornish"],[/.v[iy]ch$/,zi,"..ovich"],[/^ug?h+$/,Bi,"ughh"],[/^uh[ -]?oh$/,Bi,"uhoh"],[/[a-z]-ish$/,Di,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,zi,"polish-male"]],k:[[/^(k){2}$/,Bi,"kkkk"]],l:[[/.[gl]ial$/,Di,"familial"],[/.[^aeiou]ful$/,Di,"fitful"],[/.[nrtumcd]al$/,Di,"natal"],[/.[^aeiou][ei]al$/,Di,"familial"]],m:[[/.[^aeiou]ium$/,Fi,"magnesium"],[/[^aeiou]ism$/,Fi,"schism"],[/^[hu]m+$/,Bi,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Di,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Bi,"noooo"],[/^(yo)+$/,Bi,"yoo"],[/^wo{2,}[pt]?$/,Bi,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Fi],[/[^i]fer$/,Oi],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Di],[/[aeiou].*ist$/,Di],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,Vi],[/.[rln]ates$/,Vi],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,Fi],[/.[aeiou]sks$/,Vi],[/.[aeiou]kes$/,Vi],[/[aeiou][^aeiou]is$/,Fi],[/[a-z]'s$/,"Noun"],[/^yes+$/,Bi]],v:[[/.[^aeiou][ai][kln]ov$/,zi]],y:[[/.[cts]hy$/,Di],[/.[st]ty$/,Di],[/.[tnl]ary$/,Di],[/.[oe]ry$/,Fi],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Di],[/...lly$/,"Adverb"],[/.[gk]y$/,Di],[/[bszmp]{2}y$/,Di],[/.[ai]my$/,Di],[/[ea]{2}zy$/,Di],[/.[^aeiou]ity$/,Fi]]};const Li="Verb",Si="Noun";var Mi={leftTags:[["Adjective",Si],["Possessive",Si],["Determiner",Si],["Adverb",Li],["Pronoun",Li],["Value",Si],["Ordinal",Si],["Modal",Li],["Superlative",Si],["Demonym",Si],["Honorific","Person"]],leftWords:[["i",Li],["first",Si],["it",Li],["there",Li],["not",Li],["because",Si],["if",Si],["but",Si],["who",Li],["this",Si],["his",Si],["when",Si],["you",Li],["very","Adjective"],["old",Si],["never",Li],["before",Si],["a",Si],["the",Si],["been",Li]],rightTags:[["Copula",Si],["PastTense",Si],["Conjunction",Si],["Modal",Si]],rightWords:[["there",Li],["me",Li],["man","Adjective"],["him",Li],["it",Li],["were",Si],["took",Si],["himself",Li],["went",Si],["who",Si],["jr","Person"]]},Hi={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},Ji={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},Wi={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},Ki={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},qi={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const Ui=/^.([0-9]+)/;var Ri=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(Ui);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Ui,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)})),t},_i=/^([0-9]+)/,Yi=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(_i);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(_i,"")]}(n[0],n[1])}))};var Zi=function(e={}){return(e=Object.assign({},e)).rules=Yi(e.rules),e.rules=Qi(e.rules),e.rev&&(e.rev=Yi(e.rev),e.rev=Qi(e.rev)),e.exceptions=Yi(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e};var Xi=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const es=Zi({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),ts=Zi(Ki),ns=Zi(Ji),rs=Zi(Wi),as=Xi(es),os=Xi(ts),is=Xi(ns),ss=Xi(rs),ls=Zi(Hi),us=Zi(qi);var cs={fromPast:es,fromPresent:ts,fromGerund:ns,fromParticiple:rs,toPast:as,toPresent:os,toGerund:is,toParticiple:ss,toComparative:ls,toSuperlative:us,fromComparative:Xi(ls),fromSuperlative:Xi(us)},hs=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),ds=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]];var gs=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(ps[t].forEach((n=>e[n]=t)),e)),{});var fs=ps;var vs=function(e){let t=e.substring(e.length-3);if(!0===fs.hasOwnProperty(t))return fs[t];let n=e.substring(e.length-2);return!0===fs.hasOwnProperty(n)?fs[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const bs={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var ys=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=vs(e)),bs.hasOwnProperty(e))c=bs[e];else if("Participle"===n)c=Ri(l,i);else if("PastTense"===n)c=Ri(l,r);else if("PresentTense"===n)c=Ri(l,a);else{if("Gerund"!==n)return e;c=Ri(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var ws=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:Ri(i,n),PresentTense:Ri(i,r),Gerund:Ri(i,a),FutureTense:"will "+e},u=Ri(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l};var ks={toInfinitive:ys,conjugate:ws,all:function(e,t){let n=ws(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}};const Ps=function(e,t){const n=t.two.models.toSuperlative;return Ri(e,n)},As=function(e,t){const n=t.two.models.toComparative;return Ri(e,n)};var Is=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a)){return e.slice(0,n-r)+t[a.length][a]}}return null};const Ns="ically",js=new Set(["analyt"+Ns,"chem"+Ns,"class"+Ns,"clin"+Ns,"crit"+Ns,"ecolog"+Ns,"electr"+Ns,"empir"+Ns,"frant"+Ns,"grammat"+Ns,"ident"+Ns,"ideolog"+Ns,"log"+Ns,"mag"+Ns,"mathemat"+Ns,"mechan"+Ns,"med"+Ns,"method"+Ns,"method"+Ns,"mus"+Ns,"phys"+Ns,"phys"+Ns,"polit"+Ns,"pract"+Ns,"rad"+Ns,"satir"+Ns,"statist"+Ns,"techn"+Ns,"technolog"+Ns,"theoret"+Ns,"typ"+Ns,"vert"+Ns,"whims"+Ns]),xs=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Es=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ts={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Cs=function(e){return e.endsWith("ly")?js.has(e)?e.replace(/ically/,"ical"):Es.has(e)?null:Ts.hasOwnProperty(e)?Ts[e]:Is(e,xs)||e:null};const Ds=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Os={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Vs=function(e){if(Os.hasOwnProperty(e))return Os[e];let t=Is(e,Ds);return t||e+"ly"};const Fs=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Gs={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Bs=new Set(["terrible","annoying"]);var zs={toSuperlative:Ps,toComparative:As,toAdverb:Vs,toNoun:function(e){if(Gs.hasOwnProperty(e))return Gs[e];if(Bs.has(e))return null;let t=Is(e,Fs);return t||e+"ness"},fromAdverb:Cs,fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Ri(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return Ri(e,n)},all:function(e,t){let n=[e];return n.push(Ps(e,t)),n.push(As(e,t)),n.push(Vs(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},$s={noun:ms,verb:ks,adjective:zs},Ls={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Actor:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||["Plural","Actor"])},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,r);delete l.FutureTense,Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}};var Ss=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Ls.hasOwnProperty(i)&&Ls[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}};var Ms=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]){let n=e[t-1];if(n.tags.has("Date")||a.has(n.normal))return!1;if(n.tags.has("Adjective")||r.tags.has("Adjective"))return!1}let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!Ws.find((t=>e.endsWith(t)))},qs={two:{quickSplit:Ms,expandLexicon:Ss,transform:$s,looksPlural:Ks}};var Us=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const Rs=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e)),{})};var Qs=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=Rs(n,"Infinitive","PastTense"),Object.assign(s,l),l=Rs(r,"Infinitive","Verb"),Object.assign(s,l),l=Rs(a,"Infinitive","Gerund"),Object.assign(s,l),l=Rs(o,"Adjective","Superlative"),Object.assign(s,l),l=Rs(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let _s={two:{models:cs}};const Ys={"Actor|Verb":"Actor","Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"FirstName","Person|Place":"Person","Person|Adj":"Adjective","Plural|Verb":"Plural","Unit|Noun":"Noun"},Zs=function(e,t){const n={model:t,methods:qs};let{lex:r,_multi:a}=qs.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},Xs=function(e,t,n){let r=ws(e,_s);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},el=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=Ys[o],"Noun|Verb"!==o&&"Person|Verb"!==o&&"Actor|Verb"!==o||Xs(a,r,!1),"Adj|Present"===o&&(Xs(a,r,!0),function(e,t,n){let r=Ps(e,n);t[r]=t[r]||"Superlative";let a=As(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=ys(a,_s,"Gerund");r[e]||(n[e]="Infinitive")}if("Noun|Gerund"!==o&&"Adj|Noun"!==o&&"Person|Noun"!==o||function(e,t,n){let r=Do(e,n);t[r]=t[r]||"Plural"}(a,r,t),"Adj|Past"===o){let e=ys(a,_s,"PastTense");r[e]||(n[e]="Infinitive")}})),t=Zs(n,t)};var tl=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=Zs(e.one.lexicon,e)).one.lexicon,e),e=el(e.two.switches,e),e=Qs(e),e=Us(e)};let nl={one:{_multiCache:{},lexicon:Vo},two:{irregularPlurals:yo,models:cs,suffixPatterns:Ei,prefixPatterns:Ci,endsWith:$i,neighbours:Mi,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z°]{1,4})$/,"NumericValue","9km"]],switches:Fo,clues:vi,uncountable:{},orgWords:hs}};nl=tl(nl);var rl=nl;var al=function(e,t,n,r){const a=r.methods.one.setTag;if(0===t&&e.length>=3){const t=/:/;if(e[0].post.match(t)){let t=e[1];if(t.tags.has("Value")||t.tags.has("Email")||t.tags.has("PhoneNumber"))return;a([e[0]],"Expression",r,null,"2-punct-colon''")}}};var ol=function(e,t,n,r){const a=r.methods.one.setTag;"-"===e[t].post&&e[t+1]&&a([e[t],e[t+1]],"Hyphenated",r,null,"1-punct-hyphen''")};const il=/^(under|over|mis|re|un|dis|semi)-?/;var sl=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(il.test(a.normal)){let e=a.normal.replace(il,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var ll=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,"[33m[3m"+a+"[0m").padEnd(24)} [32m→[0m #${t.padEnd(22)} ${(e=>"[3m"+e+"[0m")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const ul=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var cl=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(Ks(e.normal)?ll(e,"Plural","3-plural-guess"):ll(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=vs(e.normal);t&&ll(e,t,"3-verb-tense-guess")}}(r)};const hl=/^\p{Lu}[\p{Ll}'’]/u,dl=/[0-9]/,gl=["Date","Month","WeekDay","Unit","Expression"],ml=/[IVX]/,pl=/^[IVXLCDM]{2,}$/,fl=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,vl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var bl=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===hl.test(o)&&!1===dl.test(o)?gl.find((e=>r.tags.has(e)))||r.pre.match(/["']$/)||"the"===r.normal?null:(cl(e,t,n),r.tags.has("Noun")||r.tags.clear(),ll(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&pl.test(o)&&ml.test(o)&&fl.test(o)&&!vl[r.normal]?(ll(r,"RomanNumeral","2-xvii"),!0):null};const yl=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r)){return t[r.length][r]}}return null};var wl=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=yl(r.normal,n.two.suffixPatterns);if(null!==e)return ll(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=yl(r.implicit,n.two.suffixPatterns),null!==e))return ll(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const kl=/['‘’‛‵′`´]/,Pl=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return ll(r,e,"2-prefix"),r.confidence=.5,!0}return null};const Nl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),jl=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Nl.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},xl=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},El=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Tl=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(jl(a)||jl(o))return ll(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(xl(a)||xl(o))return ll(n,"Year","2-tagYear-close");if(El(e[t-2])||El(e[t+2]))return ll(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return ll(n,"Year","2-tagYear-noun")}}}return null};var Cl=function(e,t,n,r){const a=r.methods.one.setTag,o=e[t],i=["PastTense","PresentTense","Auxiliary","Modal","Particle"];if(o.tags.has("Verb")){i.find((e=>o.tags.has(e)))||a([o],"Infinitive",r,null,"2-verb-type''")}};const Dl=/^[A-Z]('s|,)?$/,Ol=/^[A-Z-]+$/,Vl=/^[A-Z]+s$/,Fl=/([A-Z]\.)+[A-Z]?,?$/,Gl=/[A-Z]{2,}('s|,)?$/,Bl=/([a-z]\.)+[a-z]\.?$/,zl={I:!0,A:!0},$l={la:!0,ny:!0,us:!0,dc:!0,gb:!0};var Ll=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;if(!1===Ol.test(n)){if(!(n.length>3&&!0===Vl.test(n)))return!1;n=n.replace(/s$/,"")}return!(n.length>5||zl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Fl.test(n)&&!0!==Bl.test(n)&&!0!==Dl.test(n)&&!0!==Gl.test(n))}(r,n)?(r.tags.clear(),ll(r,["Acronym","Noun"],"3-no-period-acronym"),!0===$l[r.normal]&&ll(r,"Place","3-place-acronym"),!0===Vl.test(r.text)&&ll(r,"Plural","3-plural-acronym"),!0):!zl.hasOwnProperty(r.text)&&Dl.test(r.text)?(r.tags.clear(),ll(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(ll(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Ol.test(r.text)&&r.text.length<=6?(ll(r,"Acronym","3-titlecase-acronym"),!0):null};const Sl=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Ml=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var Hl=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Sl(e[t-1],a),l=l||Sl(e[t+1],o),l=l||Ml(e[t-1],r),l=l||Ml(e[t+1],i),l)return ll(s,l,"3-[neighbour]"),cl(e,t,n),e[t].confidence=.2,!0}return null};const Jl=function(e,t,n){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||!(n||(r=e.text,!/^\p{Lu}[\p{Ll}'’]/u.test(r)))&&(0!==t||e.tags.has("Singular"))));var r};var Wl=function(e,t,n,r){const a=n.model.two.orgWords,o=n.methods.one.setTag;let i=e[t];if(!0===a[i.machine||i.normal]&&Jl(e[t-1],t-1,r)){o([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&Jl(e[a],a,r);a-=1)o([e[a]],"Organization",n,null,"3-[org-word]")}return null};var Kl=function(e,t,n){let r=!1,a=e[t].tags;(0===a.size||1===a.size&&(a.has("Hyphenated")||a.has("HashTag")||a.has("Prefix")))&&(r=!0),r&&(ll(e[t],"Noun","3-[fallback]"),cl(e,t,n),e[t].confidence=.1)};const ql=/^[A-Z][a-z]/,Ul=(e,t)=>e[t].tags.has("ProperNoun")&&ql.test(e[t].text)?"Noun":null,Rl=(e,t,n)=>0!==t||e[1]?null:n,Ql={"Adj|Gerund":(e,t)=>Ul(e,t),"Adj|Noun":(e,t)=>Ul(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Actor|Verb":(e,t)=>Ul(e,t),"Adj|Past":(e,t)=>Ul(e,t),"Adj|Present":(e,t)=>Ul(e,t),"Noun|Gerund":(e,t)=>Ul(e,t),"Noun|Verb":(e,t)=>Ul(e,t)||Rl(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ul(e,t)||Rl(e,t,"PresentTense")||function(e,t,n){return 0===t&&e.length>3?n:null}(e,t,"Plural"),"Person|Noun":(e,t)=>Ul(e,t),"Person|Verb":(e,t)=>0!==t?Ul(e,t):null,"Person|Adj":(e,t)=>0===t&&e.length>1||Ul(e,t)?"Person":null};var _l=Ql;const Yl="undefined"!=typeof process&&process.env?process.env:self.env||{},Zl=/^(under|over|mis|re|un|dis|semi)-?/,Xl=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&Yl.DEBUG_TAGS&&console.log(`\n [2m[3m ↓ - '${n}' [0m`),r},eu=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&Yl.DEBUG_TAGS&&console.log(` [2m[3m ↓ - '${e.normal||e.implicit}' (#${a}) [0m`),a=t[a],a};var tu=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(Zl.test(l)&&!o[l]&&(l=l.replace(Zl,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=Xl(e[t+1],n.afterWords);return o=o||Xl(e[t-1],n.beforeWords),o=o||eu(e[t-1],n.beforeTags,a),o=o||eu(e[t+1],n.afterTags,a),o}(e,t,i[o],r);_l[o]&&(u=_l[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),cl(e,t,r)):Yl.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}};const nu={there:!0,this:!0,it:!0,him:!0,her:!0,us:!0};var ru=function(e,t){const n=t.methods.one.setTag,r=t.model.one._multiCache||{};let a=e[0];if(("Noun|Verb"===a.switch||a.tags.has("Infinitive"))&&e.length>=2){if(e.length<4&&!nu[e[1].normal])return;if(!a.tags.has("PhrasalVerb")&&r.hasOwnProperty(a.normal))return;if(e[1].tags.has("Noun")||e[1].tags.has("Determiner")){e.slice(1,3).some((e=>e.tags.has("Verb")))&&!a.tags.has("#PhrasalVerb")||n([a],"Imperative",t,null,"3-[imperative]")}}};const au=function(e){if(e.filter((e=>!e.tags.has("ProperNoun"))).length<=3)return!1;const t=/^[a-z]/;return e.every((e=>!t.test(e.text)))},ou=function(e,t,n,r){for(let a=0;a{al(e,0,t,n);for(let t=0;t{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var uu=function(e){const t=e.world,n=Object.keys(lu);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=ku.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=wu};var Au=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const Iu=/'/;var Nu=function(e,t){let n=e[t].normal.split(Iu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const ju=/'/;var xu=function(e,t){let n=e[t].normal.split(ju)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>!(!e[t+1]||"better"!=e[t+1].normal)||e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]};var Eu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){if(e[t+1]&&"never"===e[t+1].normal)return["have"];let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if("i"===n.normal)return["am","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const Tu={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Cu={in:!0,by:!0,for:!0};var Du=(e,t)=>{let n=e[t];if(Tu.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("QuestionWord"))return!1;if("he's"===n.normal||"she's"===n.normal)return!1;let r=e[t+1];if(!r)return!0;if("it's"===n.normal)return!!r.tags.has("#Noun");if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return"here"!==e&&"there"!==e&&"everywhere"!==e&&(!r.tags.has("Possessive")&&!(r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun")))}if(e[t-1]&&!0===Cu[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const Ou=/'/,Vu=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Fu={d:(e,t)=>xu(e,t),t:(e,t)=>Eu(e,t),s:(e,t,n)=>Du(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Nu(e,t)},Gu=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Bu={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===Ou.test(r[o].normal)&&([,i]=r[o].normal.split(Ou));let s=null;Fu.hasOwnProperty(i)&&(s=Fu[i](r,o,t)),s&&(s=Gu(s,e),Au(n,[a,o],s),Vu(n[a],e,o,s.length))}}))}},zu={compute:Bu,api:Pu,hooks:["contractionTwo"]};const $u="(i|we|they)";let Lu=[].concat([{match:"(got|were|was|is|are|am) (#PastTense|#Participle)",tag:"Passive",reason:"got-walked"},{match:"(was|were|is|are|am) being (#PastTense|#Participle)",tag:"Passive",reason:"was-being"},{match:"(had|have|has) been (#PastTense|#Participle)",tag:"Passive",reason:"had-been"},{match:"will be being? (#PastTense|#Participle)",tag:"Passive",reason:"will-be-cleaned"},{match:"#Noun [(#PastTense|#Participle)] by (the|a) #Noun",group:0,tag:"Passive",reason:"suffered-by"}],[{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,notIf:"(all|even)",tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"[#Hyphenated (#Hyphenated && #PastTense)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"faith-based"},{match:"[#Hyphenated (#Hyphenated && #Gerund)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"self-driving"},{match:"[#PastTense (#Hyphenated && #PhrasalVerb)] (#Noun|#Conjunction)",group:0,tag:"Adjective",reason:"dammed-up"},{match:"(#Hyphenated && #Value) fold",tag:"Adjective",reason:"two-fold"},{match:"must (#Hyphenated && #Infinitive)",tag:"Adjective",reason:"must-win"},{match:"(#Hyphenated && #Infinitive) #Hyphenated",tag:"Adjective",notIf:"#PhrasalVerb",reason:"vacuum-sealed"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"},{match:"[(un|contra|extra|inter|intra|macro|micro|mid|mis|mono|multi|pre|sub|tri|ex)] #Adjective",group:0,tag:["Adjective","Prefix"],reason:"un-skilled"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"},{match:"#Copula [far too] #Adjective",group:0,tag:"Adverb",reason:"far-too"},{match:"#Copula [still] (in|#Gerund|#Adjective)",group:0,tag:"Adverb",reason:"was-still-walking"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"},{match:"#Gerund [#Gerund]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looking-annoying"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",notIf:"#Hyphenated",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"},{match:"no [#Adjective] #Modal",group:0,tag:"Noun",reason:"no-golden"},{match:"[brand #Gerund?] new",group:0,tag:"Adverb",reason:"brand-new"},{match:"(#Determiner|#Comparative|new|different) [kind]",group:0,tag:"Noun",reason:"some-kind"},{match:"#Possessive [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"her-favourite"},{match:"must && #Hyphenated .",tag:"Adjective",reason:"must-win"},{match:"#Determiner [#Adjective]$",tag:"Noun",notIf:"(this|that|#Comparative|#Superlative)",reason:"the-south"},{match:"(#Noun && #Hyphenated) (#Adjective && #Hyphenated)",tag:"Adjective",notIf:"(this|that|#Comparative|#Superlative)",reason:"company-wide"},{match:"#Determiner [#Adjective] (#Copula|#Determiner)",notIf:"(#Comparative|#Superlative)",group:0,tag:"Noun",reason:"the-poor"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,notIf:"(#Modal|#PhrasalVerb)",tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] #Comparative",group:0,tag:"Adverb",reason:"even-worse"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",notIf:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",notIf:"(#PhrasalVerb|#Copula)",reason:"charge-back"},{match:"#Verb [around]",group:0,tag:"Adverb",notIf:"#PhrasalVerb",reason:"send-around"},{match:"[later] #PresentTense",group:0,tag:"Adverb",reason:"later-say"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) (march|may) !#Infinitive",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"(the|any) [more]",group:0,tag:"Singular",reason:"more-noun"},{match:"[more] #Noun",group:0,tag:"Adjective",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Singular",reason:"bit-2"},{match:"a [must]",group:0,tag:"Singular",reason:"must-2"},{match:"(we|us) [all]",group:0,tag:"Noun",reason:"we all"},{match:"due to [#Verb]",group:0,tag:"Noun",reason:"due-to"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",notIf:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"(a|an|the) [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",notIf:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,notIf:"#Gerund",tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense #Particle?]",group:0,tag:"Noun",notIf:"(seem|appear|include|#Gerund|#Copula)",reason:"det-inf"},{match:"#Noun #Actor",tag:"Actor",notIf:"#Person",reason:"thing-doer"},{match:"#Gerund #Actor",tag:"Actor",reason:"gerund-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"[#Noun+] #Actor",group:0,tag:"Actor",notIf:"#Honorific",reason:"air-traffic-controller"},{match:"(urban|cardiac|cardiovascular|respiratory|medical|clinical|visual|graphic|creative|dental|exotic|fine|certified|registered|technical|virtual|professional|amateur|junior|senior|special|pharmaceutical|theoretical)+ #Noun? #Actor",tag:"Actor",reason:"fine-artist"},{match:"#Noun+ (coach|chef|king|engineer|fellow|personality|boy|girl|man|woman)",tag:"Actor",reason:"dance-coach"},{match:"chief . officer",tag:"Actor",reason:"chief-x-officer"},{match:"chief of #Noun+",tag:"Actor",reason:"chief-of-police"},{match:"senior? vice? president of #Noun+",tag:"Actor",reason:"president-of"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]$",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense #Particle?",notIf:"(#Gerund|her)",tag:"Noun",reason:"possessive-verb"},{match:"(my|our|their|her|his|its) [(#Plural && #Actor)] #Noun",tag:"Possessive",reason:"my-dads"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"},{match:"i #Verb [me] #Noun",group:0,tag:"Possessive",reason:"scottish-me"},{match:"[#PresentTense] (music|class|lesson|night|party|festival|league|ceremony)",group:0,tag:"Noun",reason:"dance-music"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,ifNo:"#Copula",tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",notIf:"(still|even|just)",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"},{match:"#Singular for [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"noun-for-gerund"},{match:"#Comparative (for|at) [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"better-for-gerund"},{match:"#PresentTense the [#Gerund]",group:0,tag:"Noun",reason:"keep-the-touching"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner (only|further|just|more|backward) [#Infinitive]",group:0,tag:"Noun",reason:"the-only-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"#Plural on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb #Particle?]",notIf:"(#Copula|#Noun|sure|fun|up)",group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",notIf:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",notIf:"#Preposition",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",notIf:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"better",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",notIf:"(#Copula|better)",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"many-poses"},{match:"#Determiner #Adverb #Adjective [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Copula",reason:"very-big-dream"},{match:"from #Noun to [%Noun|Verb%]",group:0,tag:"Noun",reason:"start-to-finish"},{match:"(for|with|of) #Noun (and|or|not) [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Pronoun",reason:"for-food-and-gas"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #Particle #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense] of",group:0,notIf:"(one|1|#Copula|#Infinitive)",tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",notIf:"#Copula",reason:"our-full-support"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",notIf:"going",reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"},{match:"how to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"how-to-noun"},{match:"which [%Noun|Verb%] #Noun",group:0,tag:"Infinitive",reason:"which-boost-it"},{match:"#Gerund [%Plural|Verb%]",group:0,tag:"Plural",reason:"asking-questions"},{match:"(ready|available|difficult|hard|easy|made|attempt|try) to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"ready-to-noun"},{match:"(bring|went|go|drive|run|bike) to [%Noun|Verb%]",group:0,tag:"Noun",reason:"bring-to-noun"},{match:"#Modal #Noun [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"would-you-look"},{match:"#Copula just [#Infinitive]",group:0,tag:"Noun",reason:"is-just-spam"},{match:"^%Noun|Verb% %Plural|Verb%",tag:"Imperative #Plural",reason:"request-copies"},{match:"#Adjective #Plural and [%Plural|Verb%]",group:0,tag:"#Plural",reason:"pickles-and-drinks"},{match:"#Determiner #Year [#Verb]",group:0,tag:"Noun",reason:"the-1968-film"},{match:"#Determiner [#PhrasalVerb #Particle]",group:0,tag:"Noun",reason:"the-break-up"},{match:"#Determiner [%Adj|Noun%] #Noun",group:0,tag:"Adjective",notIf:"(#Pronoun|#Possessive|#ProperNoun)",reason:"the-individual-goals"},{match:"[%Noun|Verb%] or #Infinitive",group:0,tag:"Infinitive",reason:"work-or-prepare"},{match:"to #Infinitive [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|#Copula|help)",reason:"to-give-thanks"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"},{match:"^[#Value] (#Determiner|#Gerund)",group:0,tag:"Expression",unTag:"Value",reason:"numbered-list"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|brother|father|aunt|uncle|grandpa|grandfather|grandma) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",notIf:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",notIf:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[#Actor+] #Person",group:0,tag:"Person",reason:"baker-sam-smith"},{match:"[(lieutenant|corporal|sergeant|captain|qeen|king|admiral|major|colonel|marshal|president|queen|king)+] #ProperNoun",group:0,tag:"Honorific",reason:"seargeant-john"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:["Honorific","Person"],reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",notIf:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"#Honorific #Actor",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) #Actor",tag:"Honorific",reason:"first lady"},{match:"#Person #RomanNumeral",tag:"Person",reason:"louis-IV"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun",ifNo:"#Actor"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"},{match:"(#FirstName && !#Possessive) [#Singular] #Verb",group:0,safe:!0,tag:"LastName",reason:"jack-layton"},{match:"^[#Singular] #Person #Verb",group:0,safe:!0,tag:"Person",reason:"sherwood-anderson"},{match:"(a|an) [#Person]$",group:0,unTag:"Person",reason:"a-warhol"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:"#Date",group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",notIf:"(come|gotten)",reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(have|had) read",tag:"Modal #PastTense",reason:"read-read"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"},{match:"as #Pronoun [please]",group:0,tag:"Infinitive",reason:"as-we-please"},{match:"[(co|mis|de|inter|intra|pre|re|un|out|under|over|counter)] #Verb",group:0,tag:["Verb","Prefix"],notIf:"(#Copula|#PhrasalVerb)",reason:"co-write"},{match:"#PastTense and [%Adj|Past%]",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"[%Adj|Past%] and #PastTense",group:0,tag:"PastTense",reason:"dressed-and-left"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Copula [#Adjective] (well|badly|quickly|slowly)",group:0,tag:"Verb",reason:"done-well"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"a-bit-confused"},{match:"not be [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"do-not-be-confused"},{match:"#Copula just [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"is-just-right"},{match:"as [#Infinitive] as",group:0,tag:"Adjective",reason:"as-pale-as"},{match:"[%Adj|Past%] and #Adjective",group:0,tag:"Adjective",reason:"faled-and-oppressive"},{match:"or [#PastTense] #Noun",group:0,tag:"Adjective",notIf:"(#Copula|#Pronoun)",reason:"or-heightened-emotion"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"[(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"},{match:"[(been|had|became|came)] #PastTense",group:0,notIf:"#PhrasalVerb",tag:"Auxiliary",reason:"been-told"},{match:"[(being|having|getting)] #Verb",group:0,tag:"Auxiliary",reason:"being-born"},{match:"[be] #Gerund",group:0,tag:"Auxiliary",reason:"be-walking"},{match:"[better] #PresentTense",group:0,tag:"Modal",notIf:"(#Copula|#Gerund)",reason:"better-go"},{match:"even better",tag:"Adverb #Comparative",reason:"even-better"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",notIf:"#Copula",tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"#Verb (up|down|in|on|for)$",tag:"PhrasalVerb #Particle",notIf:"#PhrasalVerb",reason:"come-down$"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:$u,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:$u,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:$u,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",notIf:"(so|such|rather|enough)",reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|a|an|any|each|every|some|more|with|on)",group:0,notIf:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me|there)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^[#Infinitive] (#Adjective|#Adverb)? and #Infinitive",group:0,tag:"Imperative",reason:"call-and-reserve"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^come #Infinitive",tag:"Imperative",notIf:"on",reason:"come-have"},{match:"^come and? #Infinitive",tag:"Imperative . Imperative",notIf:"#PhrasalVerb",reason:"come-and-have"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[(stay|be|keep)] #Adjective",group:0,tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"},{match:"[#Infinitive] what .",group:0,tag:"Imperative",reason:"look-what"},{match:"^[#Infinitive] #Gerund",group:0,tag:"Imperative",reason:"keep-playing"},{match:"^[#Infinitive] (to|for|into|toward|here|there)",group:0,tag:"Imperative",reason:"go-to"},{match:"^[#Infinitive] (and|or) #Infinitive",group:0,tag:"Imperative",reason:"inf-and-inf"},{match:"^[%Noun|Verb%] to",group:0,tag:"Imperative",reason:"commit-to"},{match:"^[#Infinitive] #Adjective? #Singular #Singular",group:0,tag:"Imperative",reason:"maintain-eye-contact"},{match:"do not (forget|omit|neglect) to [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-forget"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"},{match:"#Gerund [#Gerund] #Plural",group:0,tag:"Adjective",reason:"hard-working-fam"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"[right] (before|after|in|into|to|toward)",group:0,tag:"#Adverb",reason:"right-into"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"(are|#Modal|see|do|for) [ya]",group:0,tag:"Pronoun",reason:"are-ya"},{match:"[long live] .",group:0,tag:"#Adjective #Infinitive",reason:"long-live"},{match:"[plenty] of",group:0,tag:"#Uncountable",reason:"plenty-of"},{match:"(always|nearly|barely|practically) [there]",group:0,tag:"Adjective",reason:"always-there"},{match:"[there] (#Adverb|#Pronoun)? #Copula",group:0,tag:"There",reason:"there-is"},{match:"#Copula [there] .",group:0,tag:"There",reason:"is-there"},{match:"#Modal #Adverb? [there]",group:0,tag:"There",reason:"should-there"},{match:"^[do] (you|we|they)",group:0,tag:"QuestionWord",reason:"do-you"},{match:"^[does] (he|she|it|#ProperNoun)",group:0,tag:"QuestionWord",reason:"does-he"},{match:"a [while]",group:0,tag:"Noun",reason:"a-while"},{match:"guess who",tag:"#Infinitive #QuestionWord",reason:"guess-who"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"a #Noun [like] (#Noun|#Determiner)",group:0,tag:"Preposition",reason:"a-noun-like"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Infinitive #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}],[{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^[(well|so|okay|now)] !#Adjective?",group:0,tag:"Expression",reason:"well-"},{match:"^come on",tag:"Expression",reason:"come-on"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"^(ok|alright|shoot|hell|anyways)",tag:"Expression",reason:"ok-"},{match:"^(say && @hasComma)",tag:"Expression",reason:"say-"},{match:"^(like && @hasComma)",tag:"Expression",reason:"like-"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}]);let Su=null;var Mu={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Su=Su||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep(Su),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const Hu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Mu,model:{two:{matches:Lu}},hooks:["postTagger"]};var Ju=Hu;var Wu=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))};var Ku=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Wu(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},qu={lib:{lazy:Ku}};var Uu=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e};var Ru=function(e,t,n){let r=e.split(/ /g).map((e=>`{${e}}`)).join(" "),a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?Uu(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model));e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this};var Qu={api:function(e){e.prototype.swap=Ru}};v.plugin(vu),v.plugin(zu),v.plugin(Ju),v.plugin(qu),v.plugin(Qu);var _u=function(e){let t=this;return t=function(e){let t=e.parentheses();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.quotations();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.match("@hasComma");return t=t.filter((e=>{if(1===e.growLeft(".").wordCount())return!1;if(1===e.growRight(". .").wordCount())return!1;let t=e.grow(".");return t=t.ifNo("@hasComma @hasComma"),t=t.ifNo("@hasComma (and|or) ."),t=t.ifNo("(#City && @hasComma) #Country"),t=t.ifNo("(#WeekDay && @hasComma) #Date"),t=t.ifNo("(#Date+ && @hasComma) #Value"),t=t.ifNo("(#Adjective && @hasComma) #Adjective"),t.found})),e.splitAfter(t)}(t),t=t.splitAfter("(@hasEllipses|@hasSemicolon|@hasDash|@hasColon)"),t=t.splitAfter("^#Pronoun (said|says)"),t=t.splitBefore("(said|says) #ProperNoun$"),t=t.splitBefore(". . if .{4}"),t=t.splitBefore("and while"),t=t.splitBefore("now that"),t=t.splitBefore("ever since"),t=t.splitBefore("(supposing|although)"),t=t.splitBefore("even (while|if|though)"),t=t.splitBefore("(whereas|whose)"),t=t.splitBefore("as (though|if)"),t=t.splitBefore("(til|until)"),"number"==typeof e&&(t=t.get(e)),t};var Yu=function(e){let t=[],n=null,r=null;e.docs.forEach((e=>{e.forEach((e=>{e.chunk!==r&&(n&&(n[2]=e.index[1],t.push(n)),r=e.chunk,n=[e.index[0],e.index[1]])}))})),n&&t.push(n);let a=e.update(t);return a=a.map((e=>e.has("")?e.nouns():e)),a};var Zu=function(e){class Chunks extends e{constructor(e,t,n){super(e,t,n),this.viewType="Chunks"}isVerb(){return this.filter((e=>e.has("")))}isNoun(){return this.filter((e=>e.has("")))}isAdjective(){return this.filter((e=>e.has("")))}isPivot(){return this.filter((e=>e.has("")))}debug(){return this.toView().debug("chunks"),this}update(e){let t=new Chunks(this.document,e);return t._cache=this._cache,t}}e.prototype.chunks=function(e){let t=Yu(this);return t=t.getNth(e),new Chunks(this.document,t.pointer)},e.prototype.clauses=_u};const Xu={this:"Noun",then:"Pivot"};var ec=function(e){for(let t=0;t",group:0,chunk:"Verb"},{match:"#Noun of #Determiner? #Noun",chunk:"Noun"},{match:"#Value+ #Adverb? #Adjective",chunk:"Noun"},{match:"the [#Adjective] #Noun",chunk:"Noun"},{match:"#Singular in #Determiner? #Singular",chunk:"Noun"},{match:"#Plural [in] #Determiner? #Noun",group:0,chunk:"Pivot"},{match:"#Noun and #Determiner? #Noun",notIf:"(#Possessive|#Pronoun)",chunk:"Noun"}];let rc=null;var ac=function(e,t,n){const{methods:r}=n;rc=rc||r.one.buildNet(nc,n),e.sweep(rc)};const oc=function(e,t){if(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_CHUNKS){let n=(e.normal+"'").padEnd(8);console.log(` | '${n} → [34m${t.padEnd(12)}[0m [2m -fallback- [0m`)}e.chunk=t};var ic=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){const t=e.terms.find((e=>e.tags.has("Verb")));t||e.terms.forEach((e=>e.chunk=null))}}))};var lc={chunks:function(e){const{document:t,world:n}=e;ec(t),tc(t),ac(e,t,n),ic(t),sc(t)}},uc={compute:lc,api:Zu,hooks:["chunks"]};const cc=/\./g;var hc=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(cc,""),e.normal=e.normal.replace(cc,"")}))})),this}addPeriods(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(cc,""),e.normal=e.normal.replace(cc,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."}))})),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=t.getNth(e),new Acronyms(t.document,t.pointer)}};const dc=function(e){const{fromComparative:t,fromSuperlative:n}=e.methods.two.transform.adjective;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var gc=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{toAdverb:t,toNoun:n,toSuperlative:r,toComparative:a}=this.methods.two.transform.adjective;return e.normal=!0,this.map((o=>{let i=o.toView().json(e)[0]||{},s=dc(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i}),[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(e){const{toComparative:t,toSuperlative:n,toNoun:r,toAdverb:a}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let o=dc(e);return{Adjective:o,Comparative:t(o,this.model),Superlative:n(o,this.model),Noun:r(o,this.model),Adverb:a(o,this.model)}}),[])}toComparative(e){const{toComparative:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=dc(e),r=t(n,this.model);return e.replaceWith(r)}))}toSuperlative(e){const{toSuperlative:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=dc(e),r=t(n,this.model);return e.replaceWith(r)}))}toAdverb(e){const{toAdverb:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=dc(e),r=t(n,this.model);return e.replaceWith(r)}))}toNoun(e){const{toNoun:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=dc(e),r=t(n,this.model);return e.replaceWith(r)}))}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=t.getNth(e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=t.getNth(e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=t.getNth(e),new Adjectives(t.document,t.pointer)}};var mc=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.adjective.fromAdverb;return e.normal=!0,this.map((n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r}),[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=t.getNth(e),new Adverbs(t.document,t.pointer)}};const pc=/\(/,fc=/\)/,vc=function(e,t){for(;t{e[0].pre=e[0].pre.replace(pc,"");let t=e[e.length-1];t.post=t.post.replace(fc,"")})),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n{e.forEach((e=>{e.text=e.text.replace(yc,""),e.normal=e.normal.replace(yc,"")}))})),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=t.getNth(e),new Possessives(t.document,t.pointer)}};const kc={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Pc=RegExp("("+Object.keys(kc).join("|")+")"),Ac=RegExp("("+Object.values(kc).join("|")+")"),Ic=function(e,t){const n=e[t].pre.match(Pc)[0]||"";if(!n||!kc[n])return null;const r=kc[n];for(;t{e[0].pre=e[0].pre.replace(Pc,"");let t=e[e.length-1];t.post=t.post.replace(Ac,"")}))}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}})),e.prototype.phoneNumbers=jc,Ec.forEach((t=>{e.prototype[t[0]]=e.prototype[t[1]]}))},Cc={api:function(e){hc(e),gc(e),mc(e),bc(e),wc(e),Nc(e),Tc(e)}};const Dc=function(e,t){e.docs.forEach((e=>{e.forEach(t)}))};var Oc={case:e=>{Dc(e,(e=>{e.text=e.text.toLowerCase()}))},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;Dc(e,(e=>e.text=n(e.text,t)))},whitespace:e=>{Dc(e,(e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")}))},punctuation:e=>{Dc(e,(e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")}));let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const Vc=e=>e.split("|").reduce(((e,t)=>(e[t]=!0,e)),{}),Fc="unicode|punctuation|whitespace|acronyms",Gc="|case|contractions|parentheses|quotations|emoji|honorifics",Bc={light:Vc(Fc),medium:Vc(Fc+Gc),heavy:Vc(Fc+Gc+"|possessives|adverbs|nouns|verbs")};var zc={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=Bc[e]),Object.keys(e).forEach((t=>{Oc.hasOwnProperty(t)&&Oc[t](this,e[t])})),this}}};var $c=function(e){let t=e.clauses().match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they|i)"),t=t.splitOn("(#Noun|#Adjective) [(he|him|she|it)]",0),t=t.splitOn("[(he|him|she|it)] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.splitBefore("(our|my|their|your)"),t=t.splitOn("#Noun [#Determiner]",0),t=t.if("#Noun"),t};const Lc=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var Sc=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")};var Hc=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t=t.first(),t.found?t:e}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Mc(e,t),isSubordinate:Sc(e),root:t}};const Jc=e=>e.text(),Wc=e=>e.json({terms:!1,normal:!0}).map((e=>e.normal)),Kc=function(e){if(!e.found)return null;let t=e.values(0);if(t.found){return(t.parse()[0]||{}).num}return null};var qc=function(e){let t=Hc(e);return{root:Jc(t.root),number:Kc(t.number),determiner:Jc(t.determiner),adjectives:Wc(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Uc={tags:!0};var Rc=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun|#Acronym)+$")}(t))return e;const{methods:n,model:r}=e.world,{toPlural:a}=n.two.transform.noun;let o=a(t.root.text({keepPunct:!1}),r);e.match(t.root).replaceWith(o,Uc).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.remove(t.determiner);let i=t.root.after("not? #Adverb+? [#Copula]",0);return i.found&&(i.has("is")?e.replace(i,"are"):i.has("was")&&e.replace(i,"were")),e};const Qc={tags:!0};var _c=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{toSingular:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,Qc).tag("Singular","toPlural"),e};var Yc=function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return this.getNth(e).map(Hc)}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0]||{};return t&&!0!==t.noun&&(n.noun=qc(e)),n}),[])}isPlural(e){let t=this.filter((e=>Hc(e).isPlural));return t.getNth(e)}isSingular(e){let t=this.filter((e=>!Hc(e).isPlural));return t.getNth(e)}adjectives(e){let t=this.update([]);return this.forEach((e=>{let n=Hc(e).adjectives;n.found&&(t=t.concat(n))})),t.getNth(e)}toPlural(e){return this.getNth(e).map((e=>Rc(e,Hc(e))))}toSingular(e){return this.getNth(e).map((e=>{let t=Hc(e);return _c(e,t)}))}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=$c(this);return t=t.getNth(e),new Nouns(this.document,t.pointer)}},Zc={api:Yc};var Xc=function(e,t){let n=e.match("#Fraction+");return n=n.filter((e=>!e.lookBehind("#Value and$").found)),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n};var eh=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(th.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(th.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(th.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0};var rh=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const oh=/^([0-9,. ]+)\/([0-9,. ]+)$/,ih={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},sh=e=>Object.keys(e).reduce(((t,n)=>t+=e[n]),0);var lh=function(e){if(!0===ih.hasOwnProperty(e))return ih[e];if("a"===e||"an"===e)return 1;const t=eh(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=ch(n),r=ch(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:ch(n);let a=r.text("reduced");return uh.test(a)&&(a=a.replace(uh,""),r=r.replaceWith(a)),r=hh.hasOwnProperty(a)?hh[a]:ch(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");if(!0!==t.found)return null;if(e.lookAhead("^of ."))return{numerator:1,denominator:ch(t)};return null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t};var gh=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const mh=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],ph=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],fh=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],vh=function(e){let t=[];if(e>100)return t;for(let n=0;n=mh[n][1]&&(e-=mh[n][1],t.push(mh[n][0]));return ph[e]&&t.push(ph[e]),t};var bh=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=gh(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return fh.forEach((r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}})),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(vh(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=gh(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee)),0===n.length&&(n[0]=""),n.join(" ")};var yh=function(e){if(!e.numerator||!e.denominator)return"";return`${bh({num:e.numerator})} out of ${bh({num:e.denominator})}`};const wh={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var kh=e=>{let t=bh(e).split(" "),n=t[t.length-1];return wh.hasOwnProperty(n)?t[t.length-1]=wh[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")};var Ph=function(e){if(!e.numerator||!e.denominator)return"";let t=bh({num:e.numerator}),n=kh({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};var Ah=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return this.getNth(e).map(dh)}get(e){return this.getNth(e).map(dh)}json(e){return this.getNth(e).map((t=>{let n=t.toView().json(e)[0],r=dh(t);return n.fraction=r,n}),[])}toDecimal(e){return this.getNth(e).forEach((e=>{let{decimal:t}=dh(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")})),this}toFraction(e){return this.getNth(e).forEach((e=>{let t=dh(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}})),this}toOrdinal(e){return this.getNth(e).forEach((e=>{let t=dh(e),n=Ph(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)})),this}toCardinal(e){return this.getNth(e).forEach((e=>{let t=dh(e),n=yh(t);e.replaceWith(n)})),this}toPercentage(e){return this.getNth(e).forEach((e=>{let{decimal:t}=dh(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(`${n}%`)})),this}}e.prototype.fractions=function(e){let t=Xc(this);return t=t.getNth(e),new Fractions(this.document,t.pointer)}};const Ih="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var Nh=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+Ih+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+Ih+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+Ih+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+Ih+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${Ih})`),r=e.has("("+Ih+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach((e=>{t=t.splitOn(e)}))}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+Ih+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+Ih+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t};var jh=function(e){if("string"==typeof e)return{num:lh(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=dh(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=lh(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}};var xh=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=gh(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const Eh={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},Th={"%":"percent","°":"degrees"};var Ch=function(e){let t={suffix:"",prefix:e.prefix};return Eh.hasOwnProperty(e.prefix)&&(t.suffix+=" "+Eh[e.prefix],t.prefix=""),Th.hasOwnProperty(e.suffix)&&(t.suffix+=" "+Th[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t};var Dh=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=Ch(e);return t+kh(e)+n}if("Ordinal"===t)return e.prefix+xh(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=Ch(e);return t+bh(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};var Oh=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return this.getNth(e).map(jh)}get(e){return this.getNth(e).map(jh).map((e=>e.num))}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0],r=jh(e);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n}),[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach((e=>{let t=jh(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=Dh(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")})),this}toLocaleString(){return this.forEach((e=>{let t=jh(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=Dh(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})})),this}toText(){let e=this.map((e=>{if(e.has("#TextValue"))return e;let t=jh(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=Dh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e}));return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map((e=>{if(!e.has("#Ordinal"))return e;let t=jh(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=Dh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e}));return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map((e=>{if(e.has("#Ordinal"))return e;let t=jh(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=Dh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e}));return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter((t=>jh(t).num===e))}greaterThan(e){return this.filter((t=>jh(t).num>e))}lessThan(e){return this.filter((t=>jh(t).num{let r=jh(n).num;return r>e&&r{let n=jh(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Dh(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=jh(e).num);let t=this.map((t=>{let n=jh(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Dh(n,r);return t.replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=Nh(this);return t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=Nh(this);return t=t.filter((e=>e.has("#Percent")||e.after("^percent"))),t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=Nh(this);return t=t.filter((e=>e.has("#Money")||e.after("^#Currency"))),t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers};var Vh={api:function(e){Ah(e),Oh(e)}};const Fh={people:!0,emails:!0,phoneNumbers:!0,places:!0},Gh=function(e={}){return!1!==(e=Object.assign({},Fh,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this},Bh={api:function(e){e.prototype.redact=Gh}};var zh=Bh;var $h=function(e){const t=/\?/,{document:n}=e;return e.filter((e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))}))};var Lh=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))};const Sh=function(e){let t=null;return e.has("#PastTense")?t="PastTense":e.has("#FutureTense")?t="FutureTense":e.has("#PresentTense")&&(t="PresentTense"),{tense:t}};var Mh=function(e){let t=e.clauses(),n=Lh(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach(((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e})),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o,grammar:Sh(a)}};var Hh=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e};var Jh=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e};var Wh=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let e=t.filter((e=>!e.lookBehind("to$").found&&(!!e.has("#Copula #Gerund")||!e.has("#Gerund")&&(!!e.has("#Copula")||!(e.has("#PresentTense")&&!e.has("#Infinitive")&&e.lookBefore("(he|she|it|that|which)$").found)))));e.found&&e.forEach((e=>{if(e.has("#Copula"))return e.match("was").replaceWith("is"),void e.match("is").replaceWith("will be");e.toInfinitive()}))}return e};var Kh=function(e){return e.verbs().toInfinitive(),e};var qh=function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o,grammar:i}=Mh(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal"),grammar:i},n}),[])}toPastTense(e){return this.getNth(e).map((e=>(Mh(e),Hh(e))))}toPresentTense(e){return this.getNth(e).map((e=>(Mh(e),Jh(e))))}toFutureTense(e){return this.getNth(e).map((e=>(Mh(e),e=Wh(e))))}toInfinitive(e){return this.getNth(e).map((e=>(Mh(e),Kh(e))))}toNegative(e){return this.getNth(e).map((e=>(Mh(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e))))}toPositive(e){return this.getNth(e).map((e=>(Mh(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e))))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter((e=>e.lastTerm().has("@hasExclamation")));return t.getNth(e)}isStatement(e){let t=this.filter((e=>!e.isExclamation().found&&!e.isQuestion().found));return t.getNth(e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map((e=>e.fullSentence()));return t=t.getNth(e),new Sentences(this.document,t.pointer)},questions:function(e){return $h(this).getNth(e)}};Object.assign(e.prototype,t)},Uh={api:qh};var Rh=function(e){return e.match("#Honorific+? #Person+")};var Qh=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const _h="male",Yh="female",Zh={mr:_h,mrs:Yh,miss:Yh,madam:Yh,king:_h,queen:Yh,duke:_h,duchess:Yh,baron:_h,baroness:Yh,count:_h,countess:Yh,prince:_h,princess:Yh,sire:_h,dame:Yh,lady:Yh,ayatullah:_h,congressman:_h,congresswoman:Yh,"first lady":Yh,mx:null};var Xh=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Yh;if(n.has("#MaleName"))return _h;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Zh.hasOwnProperty(e))return Zh[e];if(/^her /.test(e))return Yh;if(/^his /.test(e))return _h}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return _h;if(n&&!t)return Yh}return null};var ed=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return this.getNth(e).map(Qh)}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0],r=Qh(e);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Xh(r,e)},n}),[])}presumedMale(){return this.filter((e=>e.has("(#MaleName|mr|mister|sr|jr|king|pope|prince|sir)")))}presumedFemale(){return this.filter((e=>e.has("(#FemaleName|mrs|miss|queen|princess|madam)")))}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=Rh(this);return t=t.getNth(e),new People(this.document,t.pointer)}};var td=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter((e=>!!e.has("(asia|africa|europe|america)$")||(!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found))),t=t.splitAfter(n),t};var nd=function(e){e.prototype.places=function(t){let n=td(this);return n=n.getNth(t),new e(this.document,n.pointer)}};var rd=function(e){e.prototype.organizations=function(e){return this.match("#Organization+").getNth(e)}};const ad=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=n.getNth(e),n};var od=function(e){e.prototype.topics=ad};var id={api:function(e){ed(e),nd(e),rd(e),od(e)}};var sd=function(e){let t=e.match("");return t=t.not("(#Conjunction && !to)"),t=t.not("#Preposition"),t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0),t=t.not("#Reflexive$"),t=t.splitAfter("[#PastTense] #PastTense",0),t=t.splitAfter("[#PastTense] #Auxiliary+ #PastTense",0),t=t.splitAfter("#Copula [#Gerund] #PastTense",0),t=t.if("#Verb"),t.has("(#Verb && !#Auxiliary) #Adverb+? #Copula")&&(t=t.splitBefore("#Copula")),t};var ld=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t};var ud=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const cd=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},hd=function(e){return e.match("#Negative")},dd=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var gd=function(e){let t=e.clone();t.contractions().expand();const n=ld(t);return{root:n,prefix:t.match("#Prefix"),adverbs:ud(t,n),auxiliary:cd(t,n),negative:hd(t),phrasal:dd(n)}};const md={tense:"PresentTense"},pd={conditional:!0},fd={tense:"FutureTense"},vd={progressive:!0},bd={tense:"PastTense"},yd={complete:!0,progressive:!1},wd={passive:!0},kd=function(e){let t={};return e.forEach((e=>{Object.assign(t,e)})),t},Pd={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[md]],["^wanted to #Infinitive$",[bd]],["^will want to #Infinitive$",[fd]]],"gerund-phrase":[["^#PastTense #Gerund$",[bd]],["^#PresentTense #Gerund$",[md]],["^#Infinitive #Gerund$",[md]],["^will #Infinitive #Gerund$",[fd]],["^have #PastTense #Gerund$",[bd]],["^will have #PastTense #Gerund$",[bd]]],"simple-present":[["^#PresentTense$",[md]],["^#Infinitive$",[md]]],"simple-past":[["^#PastTense$",[bd]]],"simple-future":[["^will #Adverb? #Infinitive",[fd]]],"present-progressive":[["^(is|are|am) #Gerund$",[md,vd]]],"past-progressive":[["^(was|were) #Gerund$",[bd,vd]]],"future-progressive":[["^will be #Gerund$",[fd,vd]]],"present-perfect":[["^(has|have) #PastTense$",[bd,yd]]],"past-perfect":[["^had #PastTense$",[bd,yd]],["^had #PastTense to #Infinitive",[bd,yd]]],"future-perfect":[["^will have #PastTense$",[fd,yd]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[bd,vd]]],"past-perfect-progressive":[["^had been #Gerund$",[bd,vd]]],"future-perfect-progressive":[["^will have been #Gerund$",[fd,vd]]],"passive-past":[["(got|were|was) #Passive",[bd,wd]],["^(was|were) being #Passive",[bd,wd]],["^(had|have) been #Passive",[bd,wd]]],"passive-present":[["^(is|are|am) #Passive",[md,wd]],["^(is|are|am) being #Passive",[md,wd]],["^has been #Passive",[md,wd]]],"passive-future":[["will have been #Passive",[fd,wd,pd]],["will be being? #Passive",[fd,wd,pd]]],"present-conditional":[["would be #PastTense",[md,pd]]],"past-conditional":[["would have been #PastTense",[bd,pd]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[fd]]],"auxiliary-past":[["^did #Infinitive$",[bd,{plural:!1}]],["^used to #Infinitive$",[bd,yd]]],"auxiliary-present":[["^(does|do) #Infinitive$",[md,yd,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[bd]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let Ad=[];Object.keys(Pd).map((e=>{Pd[e].forEach((t=>{Ad.push({name:e,match:t[0],data:kd(t[1])})}))}));var Id=Ad;var Nd=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb")))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),jd(r)&&(n.remove(r),r=n.last()),jd(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:xd(t,e)}};const Td=e=>e,Cd=(e,t)=>{let n=Ed(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Dd=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Ed(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Od=function(e,t){let n=Ed(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Vd=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},Fd=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Vd(e)),r&&e.replace(t.root,r),e},Gd=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),Bd=function(e){if(!e||!e.isView)return[];return e.json({normal:!0,terms:!1,text:!1}).map((e=>e.normal))},zd=function(e){return e&&e.isView?e.text("normal"):""},$d=function(e){const{toInfinitive:t}=e.methods.two.transform.verb;return t(e.text("normal"),e.model,Vd(e))};var Ld=function(e){let t=gd(e);e=e.clone().toView();const n=Nd(e,t);return{root:t.root.text(),preAdverbs:Bd(t.adverbs.pre),postAdverbs:Bd(t.adverbs.post),auxiliary:zd(t.auxiliary),negative:t.negative.found,prefix:zd(t.prefix),infinitive:$d(t.root),grammar:n}};const Sd={tags:!0};var Md=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Vd(r)),i&&e.replace(r,i,Sd).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Od(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Hd={tags:!0},Jd={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Vd(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Ed(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Hd),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Jd.simple(e,t),e=Jd.noAux(e,t))},hasHad:e=>(e.replace("has","had",Hd),e),hasParticiple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Vd(a)),n(o,e.model).Participle}},Wd={infinitive:Jd.simple,"simple-present":Jd.simple,"simple-past":Td,"simple-future":Jd.both,"present-progressive":e=>(e.replace("are","were",Hd),e.replace("(is|are|am)","was",Hd),e),"past-progressive":Td,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Jd.hasHad,"past-perfect":Td,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=Gd(e)),e.remove("have"),e),"present-perfect-progressive":Jd.hasHad,"past-perfect-progressive":Td,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Hd),e),"passive-past":e=>(e.replace("have","had",Hd),e),"passive-present":e=>(e.replace("(is|are)","was",Hd),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",Hd),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Td,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Hd),e),"auxiliary-past":Td,"auxiliary-present":e=>(e.replace("(do|does)","did",Hd),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Hd):(Jd.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Td,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Hd),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Jd.simple(e,t),Gd(e),e)};var Kd=function(e,t,n){return Wd.hasOwnProperty(n)?((e=Wd[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const qd={tags:!0},Ud=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Vd(a)),!1===Cd(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Dd(e)),o&&(e=e.replace(a,o,qd)).not("#Particle").tag("PresentTense"),e},Rd=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Vd(a)),!1===Cd(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,qd)).not("#Particle").tag("Gerund"),e},Qd={infinitive:Ud,"simple-present":(e,t)=>{const{conjugate:n}=e.methods.two.transform.verb;let{root:r}=t;if(!r.has("#Infinitive"))return Ud(e,t);{let t=Ed(e).subject;if(Cd(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,qd)}return e},"simple-past":Ud,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Dd(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else Ud(e,t),e=e.remove("will");return e},"present-progressive":Td,"past-progressive":(e,t)=>{let n=Dd(e);return e.replace("(were|was)",n,qd)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(Ud(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Ed(e).subject;return Cd(e)||n.has("i")?((e=Fd(e,t)).remove("had"),e):(e.replace("had","has",qd),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Td,"past-perfect-progressive":e=>e.replace("had","has",qd),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Dd(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,qd),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Td,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Td,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Rd(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=Od(e);return e.replace(t.auxiliary,n),e}return Rd(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Td,"modal-infinitive":Td,"modal-past":(e,t)=>(((e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Vd(r)),a&&(e=e.replace(t.root,a,qd))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ud(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Cd(e)&&(n="want"),e.replace("(want|wanted|wants)",n,qd),e.remove("will"),e}};var _d=function(e,t,n){return Qd.hasOwnProperty(n)?((e=Qd[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Yd={tags:!0},Zd=(e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Vd(r)),o&&(e=e.replace(r,o,Yd)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Xd=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Vd(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,Yd),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},eg={infinitive:Zd,"simple-present":Zd,"simple-past":Zd,"simple-future":Td,"present-progressive":Xd,"past-progressive":Xd,"future-progressive":Td,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Td,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Td,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":Td,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Td,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":Td,"modal-past":Td,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Zd(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var tg=function(e,t,n){return e.has("will")||e.has("going to")?e:eg.hasOwnProperty(n)?((e=eg[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const ng={tags:!0};var rg=function(e,t){const{toInfinitive:n,conjugate:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Vd(a));let s=r(i,e.model).Gerund;return s&&(s=`${Dd(e)} ${s}`,e.replace(a,s,ng)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const ag={tags:!0},og=function(e,t){let n=Od(e);return e.prepend(n+" not"),e},ig=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},sg=e=>e.has("(is|was|am|are|will|were|be)"),lg={"simple-present":(e,t)=>!0===sg(e)?ig(e):(e=Fd(e,t),e=og(e)),"simple-past":(e,t)=>!0===sg(e)?ig(e):((e=Fd(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===sg(e)?ig(e):og(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",ag),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=og(e)).replace("wants","want",ag)};var ug=function(e,t,n){if(e.has("#Negative"))return e;if(lg.hasOwnProperty(n))return e=lg[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===sg(e)?ig(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};var cg=function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return this.getNth(e).map(gd)}json(e,t){let n=this.getNth(t).map((t=>{let n=t.toView().json(e)[0]||{};return n.verb=Ld(t),n}),[]);return n}subjects(e){return this.getNth(e).map((e=>(gd(e),Ed(e).subject)))}adverbs(e){return this.getNth(e).map((e=>e.match("#Adverb")))}isSingular(e){return this.getNth(e).filter((e=>!0!==Ed(e).plural))}isPlural(e){return this.getNth(e).filter((e=>!0===Ed(e).plural))}isImperative(e){return this.getNth(e).filter((e=>e.has("#Imperative")))}toInfinitive(e){return this.getNth(e).map((e=>{let t=gd(e),n=Nd(e,t);return Md(e,t,n.form)}))}toPresentTense(e){return this.getNth(e).map((e=>{let t=gd(e),n=Nd(e,t);return _d(e,t,n.form)}))}toPastTense(e){return this.getNth(e).map((e=>{let t=gd(e),n=Nd(e,t);return Kd(e,t,n.form)}))}toFutureTense(e){return this.getNth(e).map((e=>{let t=gd(e),n=Nd(e,t);return tg(e,t,n.form)}))}toGerund(e){return this.getNth(e).map((e=>{let t=gd(e),n=Nd(e,t);return rg(e,t,n.form)}))}conjugate(e){return this.getNth(e).map((e=>{let t=gd(e),n=Nd(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:Md(e.clone(),t,n.form).text("normal"),PastTense:Kd(e.clone(),t,n.form).text("normal"),PresentTense:_d(e.clone(),t,n.form).text("normal"),FutureTense:tg(e.clone(),t,n.form).text("normal")}}),[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return this.getNth(e).map((e=>{let t=gd(e),n=Nd(e,t);return ug(e,t,n.form)}))}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=sd(this);return t=t.getNth(e),new Verbs(this.document,t.pointer)}},hg={api:cg};const dg=function(e,t){let n=t.match(e);if(n.found){let e=n.pronouns().refersTo();if(e.found)return e}return t.none()},gg=function(e){if(!e.found)return e;let[t]=e.fullPointer[0];return t&&t>0?e.update([[t-1]]):e.none()};var mg=function(e,t){let n=e.people();return n=function(e,t){return"m"===t?e.filter((e=>!e.presumedFemale().found)):"f"===t?e.filter((e=>!e.presumedMale().found)):e}(n,t),n.found?n.last():(n=e.nouns("#Actor"),n.found?n.last():"f"===t?dg("(she|her|hers)",e):"m"===t?dg("(he|him|his)",e):e.none())};var pg=function(e){let t=e.nouns(),n=t.isPlural().notIf("#Pronoun");if(n.found)return n.last();let r=dg("(they|their|theirs)",e);return r.found?r:(n=t.match("(somebody|nobody|everybody|anybody|someone|noone|everyone|anyone)"),n.found?n.last():e.none())};const fg=function(e,t){let n=e.before(),r=t(n);return r.found?r:(n=gg(e),r=t(n),r.found?r:(n=gg(n),r=t(n),r.found?r:e.none()))};var vg=function(e){e.pronouns().if("(he|him|his|she|her|hers|they|their|theirs|it|its)").forEach((e=>{let t=null;e.has("(he|him|his)")?t=fg(e,(e=>mg(e,"m"))):e.has("(she|her|hers)")?t=fg(e,(e=>mg(e,"f"))):e.has("(they|their|theirs)")&&(t=fg(e,pg)),t&&t.found&&function(e,t){t&&t.found&&(e.docs[0][0].reference=t.ptrs[0])}(e,t)}))};var bg=function(e){class Pronouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Pronouns"}hasReference(){return this.compute("coreference"),this.filter((e=>e.docs[0][0].reference))}refersTo(){return this.compute("coreference"),this.map((e=>{if(!e.found)return e.none();let t=e.docs[0][0];return t.reference?e.update([t.reference]):e.none()}))}update(e){let t=new Pronouns(this.document,e);return t._cache=this._cache,t}}e.prototype.pronouns=function(e){let t=this.match("#Pronoun");return t=t.getNth(e),new Pronouns(t.document,t.pointer)}},yg={compute:{coreference:vg},api:bg};v.plugin(uc),v.plugin(yg),v.plugin(Cc),v.plugin(zc),v.plugin(Zc),v.plugin(Vh),v.plugin(zh),v.plugin(Uh),v.plugin(id),v.plugin(hg);export{v as default};
+var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t;var r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)},isFull:function(){let e=this.pointer;if(!e)return!0;let t=this.document;for(let n=0;no)return!1}return!0},getNth:function(e){return"number"==typeof e?this.eq(e):"string"==typeof e?this.if(e):this}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.ex[e]=t[e].pastTense),n.fromPast&&(n.fromPast.ex[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.ex[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.ex[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.ex[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.ex[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.ex[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.ex[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.ex[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.ex[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var m=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e){return new t(r.one.tokenize.fromString(e,n))}if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let p=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=m(e,l,p);return e&&n.compute(p.hooks),n};Object.defineProperty(f,"_world",{value:p,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=m(e,l,p);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.9.0";var v=f;var b=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},N=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},j=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},I=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?N(n):(N(n),N([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!P(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||P(a.text)&&a.text.length>1&&(a.text=(o=a.text,o.replace(/^\p{Lu}/u,(e=>e.toLowerCase()))));var o}(e,o,n),A(e,o,n)};let x=0;const E=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var C=function(e){let[t,n]=e.index||[0,0];x+=1,x=x>46655?0:x,t=t>46655?0:t,n=n>1294?0:n;let r=E(x.toString(36));r+=E(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const T=function(e){if(e.has("@hasContraction")&&"function"==typeof e.contractions){e.grow("@hasContraction").contractions().expand()}},D=e=>"[object Array]"===Object.prototype.toString.call(e),O=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:D(e)?D(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=C(e),e)))}(d),n?(T(t.update([u]).firstTerm()),I(h,u,d,r)):(T(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);let a=r.docs[0],o=t.possessives&&a[a.length-1].tags.has("Possessive");e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(G,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let i=this.update(n);n=n.map((e=>e.slice(0,3)));let s=(i.docs[0]||[]).map((e=>Array.from(e.tags)));if("string"==typeof e&&(e=this.fromText(e).compute("id")),r.insertAfter(e),i.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}if(r.delete(i),o){let e=r.docs[0],t=e[e.length-1];t.tags.has("Possessive")||(t.text+="'s",t.normal+="'s",t.tags.add("Possessive"))}let l=r.toView(n).compute(["index","lexicon"]);return l.world.compute.preTagger&&l.compute("preTagger"),t.tags&&l.terms().forEach(((e,t)=>{e.tagSafe(s[t])})),t.case&&l.docs[0]&&l.docs[0][0]&&0===l.docs[0][0].index[1]&&(l.docs[0][0].text=l.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),l},B.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?(this.soften(),r.replaceWith(t,n)):this};var z=B;var H=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const L={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e));let a=!n.ptrs;if(r.has("@hasContraction")&&r.contractions){r.grow("@hasContraction").contractions().expand()}let o=n.fullPointer,i=r.fullPointer.reverse(),s=H(this.document,i);return o=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(o,t(i)),n.ptrs=o,n.document=s,n.compute("index"),a&&(n.ptrs=void 0),e?n.toView(o):(this.ptrs=[],n.none())}};L.delete=L.remove;var $=L;const S={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};S.deHyphenate=S.dehyphenate,S.toQuotation=S.toQuotations;var M=S;var J={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),q=new Set(["freq","frequency","topk","repeats"]),K=new Set(["alpha","alphabetical"]);var R={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return W.has(e)&&(e="sequential"),K.has(e)&&(e="alpha"),q.has(e)?(a=J.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof J[e]?(a=a.sort(J[e]),this.update(a.map((e=>e.pointer)))):this}};const U=function(e,t){if(e.length>0){let t=e[e.length-1],n=t[t.length-1];!1===/ /.test(n.post)&&(n.post+=" ")}return e=e.concat(t)};var Q={concat:function(e){if("string"==typeof e){let t=this.fromText(e);if(this.found&&this.ptrs){let e=this.fullPointer,n=e[e.length-1][0];this.document.splice(n,0,...t.document)}else this.document=this.document.concat(t.document);return this.all().compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=U(e.document,t.docs),e.all()}(this,e);if(t=e,"[object Array]"===Object.prototype.toString.call(t)){let t=U(this.document,e);return this.document=t,this.all()}var t;return this}};var _={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const Z=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},V,z,$,M,R,Q,_);var X=function(e){Object.assign(e.prototype,Z)};const Y={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const ae=/'/,oe=new Set(["what","how","when","where","why"]),ie=new Set(["be","go","start","think","need"]),se=new Set(["been","gone"]);var le=function(e,t){let n=e[t].normal.split(ae)[0];if(oe.has(n))return[n,"did"];if(e[t+1]){if(se.has(e[t+1].normal))return[n,"had"];if(ie.has(e[t+1].normal))return[n,"would"]}return null};var ue=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ce=/'/;var he=(e,t)=>["je",e[t].normal.split(ce)[1]],de=(e,t)=>{let n=e[t].normal.split(ce)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},ge=(e,t)=>{let n=e[t].normal.split(ce)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const me=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,pe=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,fe=/^[0-9]{3}-[0-9]{4}$/;var ve=function(e,t){let n=e[t],r=n.text.match(me);return null!==r?!0===n.tags.has("PhoneNumber")||fe.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(pe),null!==r?[r[1],"to",r[4]]:null)};const be=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/;var ye=function(e,t,n){const r=n.model.one.numberSuffixes||{};let a=e[t].text.match(be);if(null!==a){let e=a[2].toLowerCase().trim();return r.hasOwnProperty(e)?null:[a[1],e]}return null};const we=/'/,ke=/^[0-9][^-–—]*[-–—].*?[0-9]/,Pe=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ae={t:(e,t)=>ue(e,t),d:(e,t)=>le(e,t)},Ne={j:(e,t)=>he(e,t),l:(e,t)=>de(e,t),d:(e,t)=>ge(e,t)},je=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=je(o,r[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](r,s,t)),!c&&Ne.hasOwnProperty(l)&&(c=Ne[l](r,s)),"there"===l&&"s"===u&&(c=xe(r,s)),c?(c=Ie(c,e),re(n,[i,s],c),Pe(n[i],e,s,c.length)):ke.test(r[s].normal)?(c=ve(r,s),c&&(c=Ie(c,e),re(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),Pe(n[i],e,s,c.length))):(c=ye(r,s,t),c&&(c=Ie(c,e),re(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))};var Ce={model:ne,compute:{contractions:Ee},hooks:["contractions"]};var Te=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e){return o([s],i[e],n,!1,"1-lexicon-alias"),!0}}if(!0===De.test(l)){let e=l.replace(De,"");if(i.hasOwnProperty(e)&&e.length>3&&Oe.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var Ve={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}};var Be={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}};var ze={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Ge}},compute:Ve,lib:Be,hooks:["lexicon"]};var He=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;let a=n.one.tokenize.splitTerms(e,r).map((e=>n.one.tokenize.splitWhitespace(e,r)));return a.map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Le=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Me=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Je=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Me(e.goNext,void 0),e.failTo=Me(e.failTo,0),e.endAs=Me(e.endAs,null),e};const We={buildTrie:function(e){const t=He(e,this.world());return Je(t)}};We.compile=We.buildTrie;var qe={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:He(e,this.world));var r;let a=Se(this,n,t);return a=a.settle(),a}},lib:We};const Ke=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},Re=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Ke(n,t),Object.keys(r).forEach((e=>{r[e]=Ke(r[e],t)})),{ptrs:n,byGroup:r}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Qe=e=>e&&Ue(e)&&!0===e.isView,_e=e=>e&&Ue(e)&&!0===e.isNet,Ze=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Xe={matchOne:function(e,t,n){const r=this.methods.one;if(Qe(e))return this.intersection(e).eq(0);if(_e(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Ze(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Re(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Qe(e))return this.intersection(e);if(_e(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Ze(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Re(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Qe(e)){return e.fullPointer.length>0}if(_e(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Ze(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Qe(e))return this.filter((t=>t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Ze(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Qe(e))return this.filter((t=>!t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Ze(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}};var Ye={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const et=function(e,t){return[e[0],e[1],t[2]]},tt=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},nt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},rt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=tt(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>nt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=tt(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(et(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>nt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=tt(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(et(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>nt(e,this))),this.update(o)}};rt.split=rt.splitAfter;var at=rt;const ot=Object.assign({},Xe,Ye,at);ot.lookBehind=ot.before,ot.lookBefore=ot.before,ot.lookAhead=ot.after,ot.lookAfter=ot.after,ot.notIf=ot.ifNo;var it=function(e){Object.assign(e.prototype,ot)};const st=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,lt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,ut=/ /g,ct=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ht=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var dt=function(e){let t=e.split(st),n=[];t.forEach((e=>{ct(e)?n.push(e):n=n.concat(e.split(lt))})),n=ht(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ct(e)?r.push(e):r=r.concat(e.split(ut))})),r=ht(r),r};const gt=/\{([0-9]+)?(, *[0-9]*)?\}/,mt=/&&/,pt=new RegExp(/^<\s*(\S+)\s*>/),ft=e=>e.charAt(0).toUpperCase()+e.substring(1),vt=e=>e.charAt(e.length-1),bt=e=>e.charAt(0),yt=e=>e.substring(1),wt=e=>e.substring(0,e.length-1),kt=function(e){return e=yt(e),e=wt(e)},Pt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===vt(e)&&(n.end=!0,e=wt(e)),"^"===bt(e)&&(n.start=!0,e=yt(e)),("["===bt(e)||"]"===vt(e))&&(n.group=null,"["===bt(e)&&(n.groupStart=!0),"]"===vt(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===bt(e))){const t=pt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===vt(e)&&(n.greedy=!0,e=wt(e)),"*"!==e&&"*"===vt(e)&&"\\*"!==e&&(n.greedy=!0,e=wt(e)),"?"===vt(e)&&(n.optional=!0,e=wt(e)),"!"===bt(e)&&(n.negative=!0,e=yt(e)),"~"===bt(e)&&"~"===vt(e)&&e.length>2&&(e=kt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("/"===bt(e)&&"/"===vt(e))return e=kt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if(!0===gt.test(e)&&(e=e.replace(gt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"("===bt(e)&&")"===vt(e)){mt.test(e)?(n.choices=e.split(mt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=yt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=wt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>Pt(e,t))))),e=""}if("{"===bt(e)&&"}"===vt(e)){if(e=kt(e),n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.sense=e[2])}return n}if("<"===bt(e)&&">"===vt(e))return e=kt(e),n.chunk=ft(e),n.greedy=!0,n;if("%"===bt(e)&&"%"===vt(e))return e=kt(e),n.switch=e,n}return"#"===bt(e)?(n.tag=yt(e),n.tag=ft(n.tag),n):"@"===bt(e)?(n.method=yt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var At=Pt;const Nt=/[a-z0-9][-–—][a-z]/i;var jt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&Nt.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e};const It=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},xt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Et=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var Ct=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(It(e,t)):"Noun"===e.pos?n=n.concat(xt(e,t)):"Adjective"===e.pos&&(n=n.concat(Et(e,t))):(n=n.concat(It(e,t)),n=n.concat(xt(e,t)),n=n.concat(Et(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))};var Tt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e};var Dt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=dt(e);return r=r.map((e=>At(e,t))),r=jt(r,n),r=Ct(r,n),r=Tt(r),r};const Ot=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ft=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),$t=(e,t)=>-1!==e.pre.indexOf(t),St={hasQuote:e=>Gt.test(e.pre)||Bt.test(e.post),hasComma:e=>Lt(e,","),hasPeriod:e=>!0===Lt(e,".")&&!1===Lt(e,"..."),hasExclamation:e=>Lt(e,"!"),hasQuestionMark:e=>Lt(e,"?")||Lt(e,"¿"),hasEllipses:e=>Lt(e,"..")||Lt(e,"…")||$t(e,"..")||$t(e,"…"),hasSemicolon:e=>Lt(e,";"),hasColon:e=>Lt(e,":"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>zt.test(e.post)||zt.test(e.pre),hasDash:e=>Ht.test(e.post)||Ht.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};St.hasQuotation=St.hasQuote;var Mt=St;let Jt=function(){};Jt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.id&&t.id===e.id)return!0;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Vt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Mt[t.method]&&!0===Mt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}if(void 0!==t.chunk)return e.chunk===t.chunk;if(void 0!==t.switch)return e.switch===t.switch;if(void 0!==t.machine)return e.normal===t.machine||e.machine===t.machine||e.root===t.machine;if(void 0!==t.sense)return e.sense===t.sense;if(void 0!==t.fastOr){if(t.pos&&!e.tags.has(t.pos))return null;let n=e.root||e.implicit||e.machine||e.normal;return t.fastOr.has(n)||t.fastOr.has(e.text)}return void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Jt(e,t,n,r))):t.choices.some((t=>Jt(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Wt=Jt;const qt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){Kt(e,e.t).length=r-e.t}return e.t=r,!0};const Ut=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Wt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Wt(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup){Kt(e,e.t).length+=r}if(!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null};var Zt=function(e,t,n){let r=0;for(let a=e.t;ar)&&(e.t+=r,!0))};var Xt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Wt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];if(n){if(Wt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length))e.r+=1;else if(n.optional&&t[e.r+2]){Wt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2)}}}return n.greedy?Zt(e,r,t[e.r+1]):(e.t+=1,!0)};var Yt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Wt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Wt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var en=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null};var tn=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}};var nn=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;if(n.optional&&t[e.r+1]&&n.negative)return!0;if(n.optional&&t[e.r+1]&&Yt(e),r.implicit&&e.terms[e.t+1]&&tn(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!en(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Kt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0};var rn=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy)if(void 0===e.choices||"or"!==e.operator)if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything)if(!0!==qt(e,a))if(e.negative){if(!Xt(a))return null}else if(!0!==Wt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else{if(!nn(a))return null}else{if(!nn(a))return null}else{if(e.negative&&e.anything)return null;if(!nn(a))return null}else{if(!_t(a))return null}else{if(!Qt(a))return null}else{if(!Rt(a))return null}}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}};var an=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}};var on=function(e,t,n){return e=e.filter((e=>{let[r,a,o]=e.pointer,i=n[r].slice(a,o);for(let e=0;e{e.groups[n][0]=t})),e},ln=function(e,t,n){let r=rn(e,t,0,e.length);return r?(r=sn(r,n),r):null};var un=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=ln(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),t.notIf&&(i=on(i,t.notIf,e)),i=an(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i};var cn={api:it,methods:{one:{termMethods:Mt,parseMatch:Dt,match:un}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const hn=/^\../,dn=/^#./,gn=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),hn.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var mn={html:function(e){let{starts:t,ends:n}=gn(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(fn,""),bn.test(a)&&(a=" "),a=a.replace(vn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(fn,""),a="-"===a?" ":a.replace(pn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&yn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},kn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};kn.clean=kn.normal,kn.reduced=kn.root;var Pn=kn;let An=[],Nn=0;for(;Nn<64;)An[Nn]=0|4294967296*Math.sin(++Nn%Math.PI);function jn(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(Nn=i=0;Nn>4]+An[i]+~~o[Nn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const In={text:!0,terms:!0};let xn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const En=function(e,t){return Object.assign({},e,t)},Cn={text:e=>wn(e,{keepPunct:!0},!1),normal:e=>wn(e,En(Pn.normal,{keepPunct:!0}),!1),implicit:e=>wn(e,En(Pn.implicit,{keepPunct:!0}),!1),machine:e=>wn(e,xn,!1),root:e=>wn(e,En(xn,{form:"root"}),!1),hash:e=>jn(wn(e,{keepPunct:!0},!1)),offset:e=>{let t=Cn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};Cn.sentences=Cn.sentence,Cn.clean=Cn.normal,Cn.reduced=Cn.root;const Tn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},In,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&Cn[o]&&(a[o]=Cn[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};Tn.data=Tn.json;var Dn=Tn;var On=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};var Fn={green:e=>"[32m"+e+"[0m",red:e=>"[31m"+e+"[0m",blue:e=>"[34m"+e+"[0m",magenta:e=>"[35m"+e+"[0m",cyan:e=>"[36m"+e+"[0m",yellow:e=>"[33m"+e+"[0m",black:e=>"[30m"+e+"[0m",dim:e=>"[2m"+e+"[0m",i:e=>"[3m"+e+"[0m"};var Vn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Fn.blue("\n ──────")),t.forEach((t=>{console.log(Fn.blue("\n ┌─────────")),t.forEach((t=>{let r=[...t.tags||[]],a=t.text||"-";t.sense&&(a=`{${t.normal}/${t.sense}}`),t.implicit&&(a="["+t.implicit+"]"),a=Fn.yellow(a);let o="'"+a+"'";if(t.reference){let n=e.update([t.reference]).text("normal");o+=` - ${Fn.dim(Fn.i("["+n+"]"))}`}o=o.padEnd(18);let i=Fn.blue(" │ ")+Fn.i(o)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Fn[n](e)}))),e.join(", ")}(r,n);console.log(i)}))}))};var Gn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Fn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Fn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Fn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Fn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))};var Bn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${Fn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))};var zn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(On(t),t):(!1!==e.tags&&(Vn(t),console.log("\n")),!0===e.chunks&&(Gn(t),console.log("\n")),!0===e.highlight&&(Bn(t),console.log("\n")),t)};const Hn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Ln=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()},wrap:function(e){return Ln(this,e)}};var Sn=$n;var Mn={text:function(e){let t={};var n;if(e&&"string"==typeof e&&Pn.hasOwnProperty(e)?t=Object.assign({},Pn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e)),void 0===t.keepSpace&&this.pointer&&(t.keepSpace=!1),void 0===t.keepPunct&&this.pointer){let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}return void 0===t.keepPunct&&(t.keepPunct=!0),void 0===t.keepSpace&&(t.keepSpace=!0),function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Rn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Un=function(e,t){let n=Rn(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r};var Qn=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n};var _n={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>Kn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n};var Yn=function(e,t){let n=Rn(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>Kn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},tr=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},nr={union:function(e){e=er(e,this);let t=Zn(this.fullPointer,e.fullPointer);return t=tr(t,this.document),this.toView(t)}};nr.and=nr.union,nr.intersection=function(e){e=er(e,this);let t=Yn(this.fullPointer,e.fullPointer);return t=tr(t,this.document),this.toView(t)},nr.not=function(e){e=er(e,this);let t=Xn(this.fullPointer,e.fullPointer);return t=tr(t,this.document),this.toView(t)},nr.difference=nr.not,nr.complement=function(){let e=this.all(),t=Xn(e.fullPointer,this.fullPointer);return t=tr(t,this.document),this.toView(t)},nr.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=Zn(e,[t])})),e=tr(e,this.document),this.update(e)};var rr=function(e){Object.assign(e.prototype,nr)},ar={methods:_n,api:rr};var or=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const ir=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var sr=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.notIf&&(e.notIf=n(e.notIf,{},t)),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(ir(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(ir(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=ir(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e};var lr=function(e,t){e=sr(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}};var ur=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))};var cr=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>{if(0===e.wants.length)return!0;return e.wants.filter((e=>r.has(e))).length>=e.minWant}))}))};var hr=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o};var dr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=ur(a,t.hooks);return o=cr(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),hr(o,e,a,n,r)};var gr=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===gr(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag&&l)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))}))},pr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:or,methods:{one:{buildNet:lr,bulkMatch:dr,bulkTagger:mr}}};const fr=/ /,vr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},br=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,"[33m[3m"+a+"[0m").padEnd(24)} [32m→[0m #${t.padEnd(22)} ${(e=>"[3m"+e+"[0m")(n)}`)})(e,t,a),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),fr.test(t))!function(e,t,n,r){let a=t.split(fr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),br(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nyr(e,t,n,r)))};var wr=yr;var kr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>Pr({id:e}))),t}return[Pr({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},Ir=e=>"[object Array]"===Object.prototype.toString.call(e),xr=e=>(e=e||"").trim(),Er=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||Ar.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Nr(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=Pr({});return e.forEach((e=>{if((e=Pr(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(jr(t=e).forEach(Pr),t);var t},Cr=function(e,t){let n="-> ";t&&(n=(e=>"[2m"+e+"[0m")("→ "));let r="";return jr(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>"[31m"+e+"[0m")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},Tr=function(e){let t=jr(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Dr={text:Cr,txt:Cr,array:Tr,flat:Tr},Or=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Cr(e,!0)),null):Dr.hasOwnProperty(t)?Dr[t](e):e},Fr=e=>{jr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Vr=/\//;let Gr=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=xr(e),!Vr.test(e)){let t=this.json.children.find((t=>t.id===e));return new Gr(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||Pr({});return new Gr(t)}add(e,t={}){if(Ir(e))return e.forEach((e=>this.add(xr(e),t))),this;e=xr(e);let n=Pr({id:e,props:t});return this.json.children.push(n),new Gr(n)}remove(e){return e=xr(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return jr(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=jr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return jr(this.json)}fillDown(){var e;return e=this.json,jr(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else Ir(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Fr(this.json);let e=jr(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Fr(this.json),Or(this.json,e)}debug(){return Fr(this.json),Or(this.json,"debug"),this}};const Br=function(e){let t=Er(e);return new Gr(t)};Br.prototype.plugin=function(e){e(this)};var zr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Hyphenated:"cyan",Adverb:"cyan"};const Hr=function(e){if(zr.hasOwnProperty(e.id))return zr[e.id];if(zr.hasOwnProperty(e.is))return zr[e.is];let t=e._cache.parents.find((e=>zr[e]));return zr[t]};var Lr=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:Hr(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const $r=function(e){return e?"string"==typeof e?[e]:e:[]};var Sr=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=$r(e[t].children),e[t].not=$r(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e};var Mr=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Sr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Br(t).cache().fillDown().out("array")}(Object.assign({},t,e));return Lr(n)},Jr={one:{setTag:wr,unTag:kr,addTags:Mr}};const Wr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},qr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Wr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Wr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){e=e.replace(/^#/,"");let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var Kr=qr;var Rr=function(e){Object.assign(e.prototype,Kr)};var Ur={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const Qr=new Set(["Auxiliary","Possessive"]);var _r=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Qr.has(e)||!t.hasOwnProperty(n))return 1;if(Qr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},Zr={model:{one:{tagSet:{}}},compute:{tagRank:_r},methods:Jr,api:Rr,lib:Ur};const Xr=/([.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s)/g,Yr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s$/,ea=/((?:\r?\n|\r)+)/;var ta=function(e){let t=[],n=e.split(ea);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const ia={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},sa=RegExp("["+Object.keys(ia).join("")+"]","g"),la=RegExp("["+Object.values(ia).join("")+"]","g"),ua=function(e){if(!e)return!1;let t=e.match(la);return null!==t&&1===t.length};var ca=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var Ia=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Na);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=ka(n),n=ya(n),n=n.filter((e=>e)),n};const xa=/\p{Letter}/u,Ea=/[\p{Number}\p{Currency_Symbol}]/u,Ca=/^[a-z]\.([a-z]\.)+/i,Ta=/[sn]['’]$/;var Da=function(e,t){let{prePunctuation:n,postPunctuation:r,emoticons:a}=t.one,o=e,i="",s="",l=Array.from(e);if(a.hasOwnProperty(e.trim()))return{str:e.trim(),pre:i,post:" "};let u=l.length;for(let e=0;e(s=e||"",""))),e=o,i=""),{str:e,pre:i,post:s}};var Oa=(e,t)=>{let{str:n,pre:r,post:a}=Da(e,t);return{text:n,pre:r,post:a,tags:new Set}};var Fa=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")};var Va=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Ga=/([A-Z]\.)+[A-Z]?,?$/,Ba=/^[A-Z]\.,?$/,za=/[A-Z]{2,}('s|,)?$/,Ha=/([a-z]\.)+[a-z]\.?$/;var La=function(e){return function(e){return!0===Ga.test(e)||!0===Ha.test(e)||!0===Ba.test(e)||!0===za.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var $a=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Va(r),r=n(r,t),r=La(r),e.normal=r};var Sa=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map((e=>i(e,r))),n.forEach((e=>{$a(e,t)})),n})),e};const Ma=/[ .][A-Z]\.? *$/i,Ja=/(?:\u2026|\.{2,}) *$/,Wa=/\p{L}/u,qa=/^[A-Z]\. $/;var Ka=function(e,t){if(!1===Wa.test(e))return!1;if(!0===Ma.test(e))return!1;if(3===e.length&&qa.test(e))return!1;if(!0===Ja.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},Ra={one:{killUnicode:Fa,tokenize:{splitSentences:fa,isSentence:Ka,splitTerms:Ia,splitWhitespace:Oa,fromString:Sa}}};var Ua={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qa={},_a={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Qa[t]=!0,_a[t]="Abbreviation",void 0!==e[1]&&(_a[t]=[_a[t],e[1]])}))}));var Za=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out","ex"].reduce(((e,t)=>(e[t]=!0,e)),{});let Xa={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Ya={};Object.keys(Xa).forEach((function(e){Xa[e].split("").forEach((function(t){Ya[t]=e}))}));const eo=/\//,to=/[a-z]\.[a-z]/i,no=/[0-9]/;var ro=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),eo.test(n)&&!to.test(n)&&!no.test(n)){let t=n.split(eo);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const ao=/^\p{Letter}+-\p{Letter}+$/u;var oo=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),ao.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var io=function(e){let t=e.docs,n={};for(let e=0;eco(e,ro),machine:e=>co(e,oo),normal:e=>co(e,$a),freq:io,offset:so,index:lo,wordCount:uo},methods:Ra,model:{one:{aliases:Ua,abbreviations:Qa,prefixes:Za,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},prePunctuation:{"#":!0,"@":!0,_:!0,"°":!0,"":!0,"":!0,"":!0,"\ufeff":!0},postPunctuation:{"%":!0,_:!0,"°":!0,"":!0,"":!0,"":!0,"\ufeff":!0},lexicon:_a,unicode:Ya,emoticons:{"<3":!0,"3":!0,"<\\3":!0,":^P":!0,":^p":!0,":^O":!0,":^3":!0}}},hooks:["alias","machine","index","id"]};var go={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const mo=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var po=function(e){e.prototype.autoFill=mo};var fo=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const vo={safe:!0,min:3};var bo={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},vo,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=fo(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}};var yo={model:{one:{typeahead:{}}},api:po,lib:bo,compute:go,hooks:["typeahead"]};v.extend(ee),v.extend(qn),v.extend(cn),v.extend(ar),v.extend(Zr),v.plugin(Ce),v.extend(ho),v.plugin(k),v.extend(qe),v.extend(yo),v.extend(ze),v.extend(pr);var wo={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos",volcano:"volcanoes"},ko={Comparative:"true¦bett1f0;arth0ew0in0;er",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦began,came,d1had,lied,mea0sa1we0;nt;id",Participle:"true¦0:0A;a07b02c00dXeat0fSgQhPoJprov0rHs7t6u4w1;ak0ithdra03o2r1;i03uZ;k0rn,v0;nd1pr05;ergoJoJ;ak0hHo3;e9h7lain,o6p5t4un3w1;o1um;rn;g,k;ol0reT;iRok0;ught,wn;ak0o1ruL;ne,wn;en,wn;ewriOi1uK;dd0s0;ut3ver1;do4se0t1;ak0h2;do2g1;roH;ne;ast0i7;iv0o1roE;ne,tt0;all0loCor1roz0;bi3g2s1;ak0e0;iv0oA;dd0;ove,r1;a6eamt,iv0u1;nk;hos0lu1;ng;e4i3lo2ui1;lt;wn;tt0;at0en,gun;r2w1;ak0ok0;is0;en",Gerund:"true¦accord0be0doin,go0result0stain0;ing",Expression:"true¦a0Wb0Sc0Qd0Me0Kg0EhYjeez,lVmUnSoMpJsHtGuDvoi0Yw6y0;a4e3i1u0;ck,p;k03p0;ee,pee;ah,p,s;!a,y;a5h2o1t0;af,f;rd up,w;atsoever,e1o0;a,ops;e,w;hoo,t;gh,h0;! 0h,m;huh,oh;here nQsk,ut tut;h0ic;eesh,hh,it,oo;ff,h1l0ow,sst;ease,s,z;ew,ooey;h1i,mg,o0uch,w,y;h,o,ps;! 0h;h1my go0w1;d,sh;ell;ah,evertheless,o0;!pe;eh,mm;ah,eh,m1ol0;!s;ao,fao;aCeBi9o2u0;h,mph,rra0zzC;h,y;l1o0;r6y9;la,y0;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww,xcuse me;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;mon,o0;ngratulations,wabunga;a2oo1r0tw,ye;avo,r;!ya;h,m; 1h0ka,las,men,rgh,ye;!a,em,h,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦dick0gre0ones,records;ens","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦bewa0come he0;re",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦its,my,none,our0thy;!s","Noun|Verb":"true¦0:9D;1:8N;2:81;3:9I;4:98;5:91;6:84;7:72;8:92;9:8K;A:9N;a93b84c6Xd68e5Yf5Bg52h4Si4Kj4Hk4El42m3Qn3Mo3Jp2Jqu2Ir1Ts0FtZuXvSwEyDzB;ip,oB;ne,om;awn,e5Xie5Q;aLeJhGiEoCrB;ap,e93;nd0rBu8I;k,ry,sh51th;ck,nBpe,re,sh;!d,g;e7MiB;p,sB;k,p0t1;aBed;r,th0;it,lk,rCsBt4ve,x;h,te;!ehou2raA;aEiDoB;iBm9te,w;ce,d;be,ew,s9;cuum,l3Z;pBr6;da5gra5Wlo5S;aOeNhrMiLoJrEuCwiBy5H;n,st;nBrn;e,n74;aDeCiBot,u8;bu5ck46gg0m,p;at,k,nd;ck,de,in,nsBp,v70;f0i88;ll,ne,p,r4Jss,t8LuB;ch,r;ck,de,e,le,me,p,re;e5Fow,u8;ar,e,ll,mp0st,xt;g,lBng1rg75s5x;k,ly;a0Mc0He0Eh09i07k05l03m02n01ou7JpVqua6YtIuDwB;ea7PiB;ng,pe,t4;bEit,m,ppCrB;ge,pri2v2L;lBo69;e66y;!je7;aKeJiIoFrCuBy1;dy,ff,mb1;a7MeCiBo58ugg1;ke,ng;am,ss,t4;ckCop,p,rB;e,m;ing,pi1;ck,nk,t4;m,p;ck,ge,in,ke,lCmp,nd,p1rBte,y;!e,t;k,l;aFeed,iElDot,rBur;ay,e4PinBu3;g,k1;a58it;ll,n,r7Pte;n,rk;ap,ee1Pow;a54e43i1o4Q;eep,iBou4;ce,p,t;ateboa74iB;!p;de,gnBp,ze;!al;aEeDiCoBuff1;ck,p,re,w;ft,p,v0;d,i3M;ck,de,pe,re,ve;aCed,nBrv1Ft;se,t2G;l,r4t;aEhedu1o5RrB;aCeBibb1o3N;en,w;pe,t4;le,n,r0P;cBil;k,rifi3;aXeFiEoCuB;b,in,le,n,s5H;a8ck,ll,oBpe,u5;f,t;de,ng,p,s1P;aRcQdo,el,fOgNje7lMmKnJo13pHque8sDturn,vBwa6G;eBi20;al,r2;er6PoDpe7tCuB;lt,me;!a4Q;l6Mrt;air,eaBly,o4O;l,t;dezvo2Ot;aBedy;ke,rk;ea2i41;a63ist0r57;act6Jer1Oo6MuB;nd,se;a2Wo60;ch,s61;c16ge,i2ke,lly,nBpZtZ;ge,k,t;es5Xiv0;a03eZhXiVlRoLrCsy4uB;mp,n4rcha2sh;aIeGiFoBu4A;be,ceDdu3fi1grBje7mi2p,te8;amBe6G;!me;ed,ss;ce,de,nt;sBy;er5Ys;cti3i2;iFlDoCp,re,sBw0;e,i5Kt;l,p;iBl;ce,sh;nt,s5H;aCce,e2QuB;g,mp,n6;ce,nBy;!t;ck,le,nBpe,t,vot;!e;a2oB;ne,tograph;ak,eDnCrBt;fu4Qm9;!c2P;!l,r;ckGiFnErtDsCtBu2;ch,eA;s,te;!y;!ic;nt,r,se;!a6;bje7ff0il,oCrButli3Cver3W;b9d0ieA;ze;a4DeDoB;d,tB;e,i3;ed,gle7t;aIeGiFoCuB;rd0;ck,d3Eld,nBp,uth,ve;it52kB;ey;lk,n3Zrr50ss,x;asu3Hn4JrBss;ge,it;il,nDp,rk3KsCtB;ch,t0;h,k;da5n0oeuv3C;aJeHiFoCuB;mp,st;aCbby,ck,g,oBve;k,t;d,n;cBft,m9nFst;en2k;aBc0Ie4vH;ch,d,k,p,se;bCcBnd,p,t4un4;e,k;el,o2K;eCiBno44;ck,ll,ss;el,y;aCo1GuB;i3mp;m,zz;mpHnCr3WssB;ue;cr1Idex,fluEha1k,se27teBvoi3;nt,rB;e8fa3viB;ew;en3;a7le20;aGeEiDoCuB;g,nt;l30no23ok,p,r2u2;ghlight,ke,nt,re,t;aBd6lp;d,t;ck,mDndCrBsh,t33;b3Pm,ne44ve8;!le;!m0;aIloHossGrDuB;arBe40n;antee,d;aCiBou2Tumb1;nd,p;de,sp;ip;ss,w;g,in,me,ng,s,te,ze;aWeTiOlLoHrDuB;ck,el,nBss,zz;c32d;aCoBy;st,wn;cBgme,me;tu1W;cDg,il,ld,rB;ce,e23mB;!at;us;aCe0Pip,oBy;at,ck,od,w;g,ke,me,re,sh,vo19;eEgDlCnBre,sh,t,x;an3i0L;e,m,t0;ht,u1L;ld;aCeBn3;d,l;r,tu1H;ce,il,ll,rm,v2R;cho,d6ffe7nJsHxDyeB;!baB;ll;cDerci2hib9pBtra7;eriBo0R;en3meA;el,han6u2;caBtima5;pe;count0d,vy;aXeQiKoHrCuBye;b,el,mp,plica5;aEeDiCoB;ne,p;ft,nk,p,ve;am,ss;ft,g,in;cCd6ubt,wnloB;ad;k,u0A;p,sDt4vB;e,iBor3;de;char6gui2h,liCpB;at4lFu5;ke;al,ba5cFfeElDma1Apos9siCtaB;il;gn,re;ay;at,ct;li02rB;ea2;b,ma6n3rBte;e,t;a0Cent0Bh04irc1l01oIrDuB;be,e,rBt;e,l,ve;aEeDoCuBy;sh;p,ss,wd;d9ep;ck,ft,sh;at,de,in,lRmKnDpy,re,st,uBv0;gh,nBp1;sZt;ceFdu7fli7glomeGsDtBveL;a7rB;a8ol;eAtru7;ct;ntBrn;ra5;bFfoEmDpB;leBou0Iromi2;meA;a0GeAit,u5;rt;at,iB;ne;lap2oB;r,ur;aCiB;ck,p;im,w;aCeBip;at,ck,er;iEllen6nCrB;ge,m,t;ge,nB;el;n,r;er,re;ke,ll,mp,noe,pDrVsCtBu2ve;alog,ch;h,t;!tuB;re;a02eYiWlSoOrFuCyB;pa0Y;bb1ck1dgCff0mp,rBst,zz;den,n;et;anIeGiEoadDuB;i2sh;se;ca8;be,d6;ge;aBed;ch,k;ch,d;aDg,mb,nCoBtt1x,ycott;k,st,t;d,e;rd,st;aDeCiBoWur;nk,tz;nd;me;as,d,ke,nd,opsy,tB;ch,e;aDef,lt,nBt;d,ef9;it;r,t;ck,il,l05nGrDsCtt1;le;e,h;gBk;aBe;in;!d,g,k;c01dXge,iWlTnRppOrKsGttEucCwaB;rd;tiB;on;aBempt;ck;k,sB;i8ocia5;te;st;chCmB;our;!iB;ve;eCroa4;ch;al;chBg0sw0;or;aCt0;er;rm;d,m,r;dreDvB;an3;ce;ss;cBe,he,t;eDoB;rd,uA;nt;nt,ss",Actor:"true¦0:7E;1:7J;2:6D;3:7I;4:7R;5:7N;6:74;a6Rb66c4Zd4Fe45f3Vg3Eh33i2Xj2Tki2Rl2Mm28n20o1Tp0Wqu0Ur0KsRtKuIvFw9yo7;gi,ut7;h,ub0;aBeAi9o8r7;estl0it0;m2rk0;fe,nn0t2Dza2J;atherm2ld0;ge earn0it0nder0rri1;eter8i7oyG;ll5Up,s43;an,ina2X;n7s0;c6Yder04;aoisea25eAherapi5iktok0o9r7ut1yco6;a7endseMo47;d0mp,nscri0Cvel0;ddl0u1H;a0Rchn8en7na4st0;ag0;i3So0E;aiYcVeShQiNki0mu29oKpHquaGtCu8wee7;p0theart;lt2per8r7;f0ge6viv1;h7inten0Jst5Mvis1;ero,um2;a9ep8r7;ang0eam0;bro2Qc2Rfa2Qmo2Qsi23;ff0tesm2;tt0;ec8ir2Go7;kesp5Du0N;ia5Nt3;l8me6En,rcere7ul;r,ss;di0oi5;n8s7;sy,t0;g0n0;am2ephe1Kow7;girl,m2r2T;cretJnior cit3Jr7;gea4v7;a4it1;hol51i8reen7ulpt1;wr2F;e02on;l1nt;aFeAo9u7;l0nn7;er up,ingF;g44le mod43of0;a53c9fug2Tpo36searRv7;ere4Yolution7;ary;e7luZru25;ptio3X;bbi,dic5Zpp0;arter7e33;back;aZeXhTiSlPoLr9sycho8u7;nk,p36;logi5;aHeEiCo7;dAfess1g8ph4Bs7;pe2Otitu55;en7ramm0;it1y;igy,uc0;est4Rme mini0Xnce7s3I;!ss;a8si7;de4;ch0;ctiti3Dnk0S;dca0Ret,li7pula54rnst46;c2Mtic7;al scie7i2;nti5;a7umb0;nn0y7;er,ma4Pwright;lgrim,one0;a9iloso8otogra8ra7ysi1Z;se;ph0;ntom,rmaci5;r7ssi1X;form0s6;i3Il,nel42r9st1tr7wn;i7on;arYot;ent50i46tn0;ccupa4ffCp9r8ut7;ca5l0E;ac4Mganiz0ig2Jph2;er3t7;i1Nomet7;ri5;ic0spring;aDeBie51o9u7;n,rse7;!r3M;b7mad,vi4Y;le2Yo4G;i7mesis,phew;ce,ghb1;nny,rr3t21;aFeEiBo8u7yst22;m9si19;der3gul,m8n7th0;arEk;!my;ni8s7;f04s0Lt0;on,st0;chan1Unt1rcha4;giAk0n9rtyr,t7y1;e,riar7;ch;ag0iac;ci2stra3L;a8e2Dieutena4o7;rd,s0v0;bor0d8ndlo7ss,urea3Iwy0ym2;rd;!y;d,n7;!s2A;anitor ,e9o8u7;ggl0;gg0urna2W;st0;c6dol,llu3Wmmigra4n7;-lAc1Sfa4habi44nov3s8ve7;nt1stig3;pe0Pt7;a1Hig3ru0O;aw;airGeCistoBo9u7ygie1M;man7nt0sba2J;!ita9;bo,st7usekO;age,e3R;ri2;ir,r7;m8o7;!ine;it;dress0sty2E;aMeJhostHirl28ladi3oDrand8u7;e5ru;cAdaugTfa9m8pa7s6;!re4;a,o7;th0;hi1D;al8d7lf0;!de3C;ie,k7te28;eep0;!wr7;it0;isha,n7;i7tl06;us;mbl0rden0;aFella,iBo8r7;eela2Pie1R;e,re7ster pare4;be1Jm2r7st0;unn0;an31g9lmm19nanci0r7tt0;e7st la2J; marsh2Qfig7m2;ht0;rm0th0;conoFdElectriDm9n8x7;amin0cellency,i2B;emy,trepreneur,vironmenta1K;c9p7;er1loye7;e,r;ee;ci2;it1;mi5;aLeCi9ork,ri8u7we03;de,tche2I;ft0vK;ct3eti8plom2Ire7va;ct1;ci2ti2;aEcor3fencDi0JnBputAs8tectNvel7;op0;ce1He7ign0;rt0;ee,y;iz7;en;em2;c6l0;dAnc0redev9ught7;er7;! ;il;!dy;a06e04fo,hXitizenWlToCrAu7;r3stomer7;! representat7;ive;e3it7;ic;-work0lJmGnAord9rpor1Nu7wboy;n7ri0sin ;ciUte1R;in3;fidantBgressTsAt7;e0Lr7;ibut1o7;ll0;tab14ul1P;!e;edi2m7pos0rade;a0FeRissi7;on0;leag9on8um7;ni5;el;ue;e7own;an0r7;ic,k;!s;aAe8i7um;ld;erle7f;ad0;ir8nce7plGract0;ll1;m2wJ;lebri7o;ty;dCptBr7shi0;e8pe7;nt0;r,t7;ak0;ain;et;aNeMiKlogg0oFrCu7;dd0Gild0rglAsiness7;m2p8w7;om2;ers6;ar;i8o7;!k0th0;cklay0de,gadi0;hemi2oge9y7;!frie7;nd;ym2;an;cyc7sS;li5;atbox0ings;by,nk0r7;b0on8te7;nd0;!e08;c05dXge4nRpMrIsGtBu8yatull7;ah;nt8t7;h1oH;!ie;h9t7;e7orney;nda4;ie5le7;te;sis01tron7;aut,om0;chbis9isto8tis7;an,t;crV;hop;ostAp7;ari7rentiT;ti6;on;le;aAcest1im3nou9y7;bo7;dy;nc0;ly5rc7;hi5;mi9v7;entur0is1;er;ni8r7;al;str3;at1;or;counCquaintanBrobAt7;ivi5or,re7;ss;st;at;ce;ta4;nt","Adj|Noun":"true¦0:18;a15b0Zc0Od0Me0Hf0Bg0Ah08i06ju05l03mWnUoSpNrJsCt8u5v2w1;atershed,elcome;a1ision0R;gabo4nilla,ria1;b0Ont;ndergr1pstairs;adua0Vou1;nd;a3e1oken,ri0;en,r1;min0rori0U;boo,n;age,e5ilv09lack,o3quat,ta2u1well;bordina0Oper5;b0Endard;ciali0Pl1vereign;e,ve0Z;cret,n1ri0;ior;a3e1outiTubbiL;ar,bBla0Qnt0p1side0V;resenta0Publican;ci0Ish;a4eriodic0otenti0r1;emi2incip0o1;!fession0;er,um;rall4st,tie0O;ff1pposi09v0;ensi0Ii05;aggVov1;el;a6e4in3o1;biVder00r1;al,t0;iature,or;di1tr0G;an,um;le,riA;attIiber0u1;sh;stice,veniN;de0mpressioRn1;cumbe08dividu0no07sta08terim;alf,o1umdrum;bby,melA;enious,old,ra01;a4e2i1luid,ugiZ;ne;llow,m1;aEiJ;ir,t,vo1;riLuriL;l3pZx1;c1ecuSpeU;ess;d1iH;er;arl3e1;mographTrivaN;hiElassSo2rude,unn1;ing;m4n1operaK;creAstitueOtempor2vertab1;le;ary;m2p1;anion,lex;er2u1;ni7;ci0;e5lank,o4r1;i2u1;te;ef;ttom,urgeois;st;cademBd8l4n2r1;ab,ctA;im0tarct9;al;e3terna1;ti1;ve;rt;oles1ult;ce1;nt;ic","Adj|Past":"true¦0:30;1:2R;2:2U;a2Jb2Dc1Ud1Be15f10gift0h0Xi0Qj0Pknown,l0Mm0Hn0Fo0Cp05qua04rVsEtAu7v5w3;arp0ea3or5;kIth2T;a3e0W;ri0;n3pd1s0;derstood,i3;fi0t0;ar5hreatCr3wi2R;a3ou19;ck0in0pp0;get0ni1N;aHcaGeEhDimCm01oak0pAt6u3;bsid28gge2Ms3;pe3ta1S;ct0nd0;at0e5r3uV;ength3ip0;en0;am0reotyp0;eci3ik0ott0;al20fi0;pIul1;ar0ut;a3c1Jle2t1S;l0t0;r0tt25;t3ut0;is1Jur1;aAe3;c7duc0f1Cg6l1new0qu5s3;pe2t3;or0ri2;e22ir0;ist1Xul1;eiv0o3ycl0;mme09rd0v1V;lli0ti1A;li19;arallel0i0Kl7o6r3ump0;e4o3;ce0Ilo0Hnou1Tpos0te2;fe0Loc8pY;i1Gli0R;a3e19;nn0;c4rgan1Bverlo3;ok0;cupi0;e3ot0;ed0gle2;a5e4ix0o3ut0;di0Vt0G;as0Qlt0;n3rk0;ag0ufact0O;eft,i4o3;ad0st;cens0mit0st0;agg0us0N;mp8n3sol1;br0debt0f6t3volv0;e3ox0F;gr1n3re18;d0si0J;e2l1oX;li0oLrov0;amm10e1o3;ok0r3;ri0E;aNe6i5lavo09oc05r3;a3i0;ct07g0Mm0;niXx0;ar0;duc1l1mbarraKn7quipp0stabliVx3;agger1p3te5;a4e3;ct0rie0S;nd0;ha0QsZ;aJeAi3;gni01miniOre2s3;a7c5grun05t3;o3reBurb0;rt0;iplSou3;nt0rE;bl0;cenVdOf8l7pre6ra5t3velop0;a3ermO;il0;ng0;ss0;ay0ight0;e4o3;rm0;rr0;m3t0;ag0;alcul1eHharg0lGo8r5u3;lt3stomS;iv1;a4owd0u3;sh0;ck0mp0;d0lo9m6n3ok0vX;centr1f4s3troll0;idVolid1;us0;b4pl3;ic1;in0;ur0;assi5os0;lebr1n5r3;ti3;fi0;tralB;a7i6o4roken,urn3;ed,t;il0r0t3und;tl0;as0;k0laIs0;bandon0cJdGffe2lDnBpp9ss7u3ward0;g4thor3;iz0;me3;nt0;o5u3;m0r0;li0re3;ci1;im1ticip1;at0;leg0t3;er0;ct0;ju4o6va3;nc0;st0;ce3knowledg0;pt0;ed",Singular:"true¦0:5I;1:5G;2:4V;3:4R;4:51;5:56;6:5K;a4Zb4Ic3Ld33e2Vf2Kg2Eh23in1Zj1Yk1Xl1Qm1In1Eo18p0Pqu0Or0DsXtKuFvAw7x r55yo yo;a7ha3N;f3i4Nt0Ey7;! arou37;arAe8o7;cabu4Gl59;gMr7t;di4Wt1T;iety,ni4L;n9p2Yr8s 7;do41s5B;bani1in0;coordinat38der7;estima1to1Zwe3Z; rex,aIeHhFiDoCr9u8v7;! show;m2Mn2rntJto19;agedy,ib7o4A;e,u7;n0ta43;ni1p2rq3J;c,er,m7;etD;ing7ree23;!y;am,mp3D;ct2le6x return;aLcKeIhor4NiHkFoEpin off,tBu9y7;ll7ner4Jst4Q;ab2V;b7i1n26per bowl,rro1U;st3Jtot0;at8ipe2Eo1Grate4Fudent7;! lo0F;i37u1;ft ser4Imeo1D;elet5i7;ll,r3R;b36gn2Rte;ab2Hc7min39;t,urity gu2L;e6ho2W;bbatic0la3Gndwi0Mpi5;av5eBhetor2i8o7;de6om,w;t8v7;erb2A;e,u0;bBc9f7publ2r0Vspi1;er7orm3;e6r0;i7ord label;p2Ft0;a1u43;estion mark,ot2D;aMeJhotocoUiGlEoCr8u7yram1D;ddi3EpCrpo1Hs3G;e9o7;bl3Ws7;pe3Gta1;dic1Pmi1Dp1Oroga3Sss relea1D;p7rt0;py;a7ebisci1;q2Bte;cn2e8g7;!gy;!r;anut,d8r7t0yo1;cen3Hsp3I;al,est0;nop4r8t7;e,hog5;adi10i2S;atme0bj3Dc9pia1rde0thers,utspok5ve7wn3;n,r7;ti0Nview;cu8e7;an;pi3;ar9it8ot7umb3;a2Dhi2P;e,ra1;cot2ra35;aCeAi8o7ur0é0B;nopo4p17rni2Lsq1Qti34uld;c,li10n07s7tt5;chief,si32;d7nu,t0;al,ic;gna1mm0nd15rsupi0te7yf4;ri0;aBegAi9u7;ddi1n7;ch;ght bulb,me,p09ving room; 8e0M;bor14y 7;up;eyno1itt5;el4ourn0;c9dices,itia2Nni25s8tel0Mvert7;eb1K;e28titu1;en2Ki2T;aGeCighBo8u7;man right,s22;me7rmoDsp1Gtb0L;! r7;un; scho0ZriZ;a7i1M;d7v5; start,pho7;ne;ndful,sh brown,v5ze;aAelat0Jlaci3r8u7yp1S;l4y;an7enadi3id;a1Bd slam,ny;df4r7;l2ni1G;aGeti1FiFlEoBr8un7;er0;ee market,i8on7;ti3;ga1;l4ur7;so7;me;ow3u1;eNref4;br2mi4n0Z;conoDffi1Mgg,lecto0Pmbas1BnApidem2s1Wth2ven9x8yel7;id;ampXempl0Lte6;i16t;er1Iterp7;ri7;se;my;eJiCo9r7ump truck;agonf4i7;er,ve thru;c8g1Bi4or,ssi3wn7;side;to0CumenC;aCgniBnn3s8vide7;nd;conte6incen1Bp7tri0Y;osi7;tion;ta0E;le0U;ath9c8f7ni0terre6;ault 03err0;al,im0;!b7;ed;aUeRhKiJlHoBr7;edit c9uc7;ib7;le;ard;efficBke,lAmmuniqJns8pi3rr0t0Uus7yo1;in;erv7uG;atoZ;ic,lO;ie6;er0Li7oth;e6n2;ty,vil wK;aBeqAick5oco9r7;istmas car7ysanthemum;ol;la1;ue;ndeli3racteri7;st2;i8llCr7;e0tifica1;liW;hi3nDpCrAt7ucus;erpi7hedr0;ll7;ar;!bohyd7ri3;ra1;it0;a7e;l,ry;aJeIiop2leGoEreakCu7;nAr7tterf4;g7i0;la7;ry;ny;fa7thro9;st;dy,ro7wl;ugh;mi7;sh;an,l4;nki9r7;!ri3;er;ng;cQdKlGnDppeti1rBs9tt2utop7;sy;ic;ce6pe7;ct;r7sen0;ay;ec8oma4ti8;ly;do1;i5l7;er7y;gy;en; hominBj8van7;tage;ec7;ti7;ve;em;cAe8qui7;tt0;ta1;te;i8ru0;al;de6;nt","Person|Noun":"true¦a07b01cYdRePfOgMhJjFkiElDmBolive,p7r4s3trini00v1wa0;ng,rd;an,enus,iol0;a,et;ky,on5umm02;ay,e1o0uby;bin,d,se;ed,x;a2e0ol;aHn0;ny;ge,tM;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Actor|Verb":"true¦aHbDcAd8engineFfool,g6host,judge,m4nerd,p3recruit,s1ushFvolunteFwi0;mp,tneF;cout,p0;ons6y;arent,ilot;a0ime;n,st9;eek,oof,r0uide;aduBoom;elegAoct0;or;ha1o0;ach,nscript,ok;mpion,uffeur;o2u0;lly,tch0;er;ss;d0ffili1rchite2;di1voc0;ate;ct",MaleName:"true¦0:DO;1:CO;2:D7;3:AJ;4:CK;5:BZ;6:CF;7:D3;8:BS;9:AR;A:DB;B:D4;C:94;D:BM;aC9bB7cA7d98e8If82g7Fh6Si6Cj5Ek52l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Jkaria,n0C;hFkE;!aC7;ar5UeC6;aMoGuE;sEu2LvBJ;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB8ssY;avi3ho4;aNeLiGoEyaBN;jcie87lfgang,odrow,utE;!er;lEnst1;bGey,fredAlE;aAZiE;am,e,s;e97ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Xy;aHiEladimir,ojte7U;cFha0kt67nceErgA5va0;!nt;e3Xt65;lentEn9S;inE;!e;ghBElyss59nax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r59;avAHeEist0oy,um0;ntA9v5Wy;bGd8RmEny;!as,mEoharu;aCCie,y;iCy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8G;!de5;dHrE;en98rE;an97eEy;ll,n96;!dy;dgh,ha,iEnn3req,tsu4R;cAPka;aUcotSeQhMiKoIpenc3tEur1Xylve96zym1;anGeEua85;f0phBCvEwa84;e5Zie;!islaw,l8;lom1uE;leyma6ta;dElCm1yabonga;!dhart74n8;aGeE;lErm0;d1t1;h7Kne,qu11un,wn,y6;aEbasti0k2Cl4Prg4Mth,ymoAE;m5n;!tE;!ie,y;lFmEnti2Gq58ul;!ke5JmDu4;ik,vato7O;aZeVhe9ViRoIuFyE;an,ou;b7DdFf5pe7KssE;!elBJ;ol3Fy;an,bLc62dJel,geIh0landAmHnGry,sFyE;!ce;coe,s;!aA1nD;an,eo;l45r;er78g3n8olfo,riE;go;bDeAQ;cEl8;ar6Ic6HhFkEo;!ey,ie,y;a8Vie;gFid,ubByEza;an1KnZ;g9SiE;na9Os;ch6Qfa4lImHndGpha4sFul,wi2HyE;an,mo6U;h7Jm5;alAXol2U;iACon;f,ph;ent2inE;cy,t1;aJeHhilGier6TrE;aka18eE;m,st1;!ip,lip;dA4rcy,tE;ar,e3Er1Y;b4Hdra73tr6JulE;!o19;ctav3Di3liv3m9Yndrej,rIsFtEum7wB;is,to;aFc7k7m0vE;al5S;ma;i,vM;aMeKiGoEu38;aEel,j5l0ma0r3I;h,m;cFg4i46kEl2R;!au,h7Gola;hEkEolC;olC;al,d,il,ls1vE;il8J;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Gr1;hamFr6KstaE;fa,p54;ed,mI;di0Xe,hamGis2CntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Uik;house,o0Ct1;ae5Oe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2AlSmadXnRrLs1tGuricFxE;imilianAwe9;e,io;eHhFiCtEus,yC;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Ysha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5G;ou;aXeRiPlo39oLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7BrenGuEv81we9;!iE;e,s;!zo;am,oE;n4r;a7Uevi,la4AnIonHst3thaGvE;eEi;nte;bo;!a6Del;!ny;mFnd1rEur54wr54;ry,s;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubCnJrHsE;eFhEi7Wue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Gy;!e5OrE;ey,y;cLdBkJmIrGsFvi3yE;dBs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i70maEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dB;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5K;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4Y;oGrE;aEry;ld,rdA;ffr8rge;brFlBrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymBzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estAie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4FsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydCy29;!lC;!a2HnEov0;e9ie,y;go,iFykC;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l36n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1C;aEie;rdA;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar17b0Vd0Rf0Pgust2hm0Mi0Jja0Il03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndA;!el,ki;ie;ta;aq;as,dIgelAtE;hony,oE;i6nE;!iAy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;aRbeQdBeKfIi,lHonGphZt1vE;aOin;on;so,zo;an,en;onVrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtA;dd2n;ni;dBm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfAri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Uncountable:"true¦0:33;1:2J;2:2Q;3:38;4:3H;a31b2Sc2Gd27e1Wf1Sg1Jh1Bi16j13k11l0Wm0Mn0Io0Hp07r03sOtBuran2Qv9w5you gu0J;a7his1Ci6oo5;d,l;ldlife,ne;rmAt2;apor,ernacul2Gi5;neg2Fol1Ttae;eGhEiDoBr6un5yranny;a,gst1G;aff2Vea1Po6ue nor5;th;o0Du5;ble5se1Yt;!shoot0;night,othpas1Zwn5;foGsfoG;me off,n;er5und2;e,mod2Y;a,nnis;aGcFeEhCiBkiAo9p8t6u5weepstak1;g20nshi2Nshi;ati0Ce5;am,el;ace2Qeci1;ap,cc2meth0;n,ttl1;lk;eep,ingl1o5;pp0r1F;lf,na1Jri1;ene1Pisso1F;d0Zfe3l6nd,t5;i0Lurn;m1Zt;abi1e6ic5;e,ke18;c5i04laxa14search;ogni13rea13;aCeBhysAl9o7re5ut3;amble,mis1s5ten25;en24s0O;l5rk;i2Dl0HyK;ast1Wuto; 1Ai4;a28tr0H;nt5rk0ti0O;i1s;bstetri4vercrowd0xyg0B;a7e6owada5utella;ys;ptu1Sws;il poli01tional securi3;aCeAo7u5;m5s1L;ps;n5o1O;ey,o5;gamy;a5cha0Glancholy,rchandi1Ltallurgy;sl1t;chine5g1Ej1Lrs,thema1U; learn0ry;aught2e8i7ogi6u5;ck,g16;c,s1Q;ce,ghtn0nguis1PteratYv2;ath2isXss;ara0GindergartRn5;icke0Cowled12;e5upit2;a5llyfiIwel0K;ns;ce,gnor8mp7n5;forma02ter5;net,sta09;atiUort5rov;an1C;a9e8isto0Do5ung2;ckey,mework,ne6o5rseradiAspitali3use arrest;ky;s3y;adquarteZre;ir,lib03ppiJs5;hi5te;sh;eneAl8o7r5um,ymnas15;a5e03;niWss;lf,re;ut5yce0J;en; 5ti4;edit0po5;ol;aPeel0icHlour,o6urnit5;ure;od,rgive5uri2wl;ness;arEcono0PducaDlectrBn9quipAthi4very8x5;ist6per5;ti0F;en0N;body,o0Cth0;joy5tertain5;ment;ici3o5;ni4;tiW;nings,th;eBi8o6raugh5ynas3;ts;pe,wnstai5;rs;abet1ce,s5;hon03repu5;te;b5miZ;ut;aFelciEhCivi4lAo5urrency;al,ld w8mmenta7n5ral,ttKuscoD;fusiJt 5;ed;ry;ar;assi4oth1;es;aos,e5;eOw0;us;d,rQ;aAi8lood,owl0read7u5;nt0tt2;er;!th;lliarLs5;on;g5ss;ga5;ge;cMdviLeroIirHmDn8ppeal court,r6spi5thleN;rin;ithmet5sen5;ic;i8y5;o6th0;ing;ne;se;en7n5;es3;ty;ds;craft;bi4d5nau9;yna5;mi4;ce;id,ous5;ti4;cs",Infinitive:"true¦0:8W;1:99;2:9T;3:8G;4:7M;5:9F;6:9X;7:8I;8:9P;9:9G;A:9W;B:9B;C:83;D:8A;E:86;F:8N;G:8B;a8Ib7Xc72d5We4Qf4Dg48h43i3Jj3Gk3El35m2Ynou41o2Rp2Aqu29r1Cs0BtXuSvQwH;aNeMiKors4rH;eIiH;ng,te;ak,st3;d4e7VthH;draw,er;a2d,ep;i2ke,nHrn;d1t;aHie;li9SniAry;nHplift;cov1dIear80found7WlHplug,rav7Jtie,ve8K;eaAo3R;erHo;cut,go,sta9Vval9Jwhelm;aSeQhNoMrHuI;aIeH;mb3;ffi3Lmp3nsH;aDpH;i7oE;pp3ugh4;aIiIrHwaE;eat4i2;nk;aHm9F;ch,se;ck3ilor,keHmp1r80;! paE;a0Gc0Fe0Dh09i07l05mugg3n04o02pZquYtRuJwH;all7GeeHim;p,t4;bLccKffJggeBmmIp2KrH;mouFvi2;ari0on;er,i5;e77umb;li91mIsiHveE;de,st;er9it;aLe83iJrH;ang3eHi2;ng23w;fHng;f4le;gg1rH;t3ve;a41iA;a4KeIit,l6XoH;il,of;ak,nd;lHot70w;icCve;atGeak,i0M;aHi6;m,y;ft,nHt;g,k;aJi5UoIriHun;nk,v67;ot,rt4;ke,rp4tt1;eHll,nd,que7Wv1w;!k,m;aven9ul8C;dd4tis1Dy;a0CeJiIoH;am,ut;d,p4;a07b05c03d02fZgroup,heaYiXlVmUnTpRq3CsNtLup,vH;amp,eIiHo31;sCve;l,rH;e,t;i7rH;ie2ofC;eFiJpo85tHurfa5;o1YrH;a51iDuctu7;de,gn,st;el,hra0lHreseF;a5e6I;d1ew,o05;a4We36o2;a8eFiHoad,y;e2nq3Rve;mbur0nf2Z;r0t;inIleDocus,reAuH;el,rbiA;an5e;aDu5;ei2k7Sla3ToHyc3;gni31nci3up,v1;oot,uH;ff;ct,d,liH;se,ze;tt3viA;aAenGit,o8;aVerTinpoiFlumm1GoSrKuH;b3Tke,niArHt;poEsuH;aFe;eLoH;cJd,fe4HhibCnoIpo0sp1tru6vH;e,i6o55;un5;la3Du7;aGclu6dIf1occupy,sup0FvH;a5TeF;etermi4DiD;aGrtr55sse4A;cei2fo47iAmea8plex,sHva6;eve7iBua6;mp1rHtrol,ve,y;a60t5W;bMccuLmCpKutJverHwe;lap,sHtu6Gu0;ee,h1A;gr4Ynu25pa5;era8i43po0;py,r;ser2ta3S;aLe0SiIoHultiply;leBu69;micInHspla5;ce,g3us;!k;iHke,na9;m,nta3L;aOeKiHo0u3B;e,ke,ng1quHv4;eHi6C;fy;aJnHss4;d,gH;th4;rn,ve;ng29u1H;eep,nH;e3Xow;o39uH;gg3xtaH;po0;gno7mUnHrk;cSdQfPgeBhOitia8ju7q17sMtJun5ZvH;a6eHo0W;nt,rt,st;erIimi5WoxiOrH;odu5u6;aDn,pr01ru5X;iBpi7tHu7;il,ruD;abCibC;eBo31u0;iHul9;ca8;i8lu6;b5Imer0pH;aKer4Fin9ly,oIrH;e2Xis5Vo2;rt,se,veH;riA;le,rt;aKeJiHoiBuE;de,jaHnd1;ck;ar,iQ;mp1ng,pp4rang58ve;ath1et,i2le1XoKrH;aIeHow;et;b,pp3ze;!ve4W;aSer3Ri5ElRorLrIuH;lf3Zndrai0r3V;eIiHolic;ght4;e0Nsh4;b3JeKfeCgIsH;a32ee;eHi2;!t;clo0go,shHwa4M;ad35;ee,i2V;lt1st4;a0KdCl0Im0CnUquip,rTsStGvQxH;a20cNeEhMiLpItHu6;ing0Uol;eIi7lHo0un9;a1VoC;ct,di8l;st,t;a3oE;e2RlH;a0Wu6;alua8oH;ke,l2;chew,pou0tab12;a0u4J;aXcUdSfRgPhan5joy,lOqNrMsuLtJvH;e0UisH;a9i4O;er,i5rH;a1HenGuB;e,re;iGol;ui7;ar9iB;a9eHra2ulf;nd1;or5;ang1oHu7;r0w;irc3lo0ou0BrIuH;mb1;oaGy42;b3ct;bJer9pH;hasiHow1;ze;a0Rody,rH;a5oiH;d1l;ap0eDuH;ci3Qde;rHt;ma0Ln;a0Le01iJo,rHwind3;aw,ed9oH;wn;agno0e,ff1g,mi2AsKvH;eHul9;rHst;ge,t;ab3bTcOlod9mant3pMru3JsLtH;iHoEu2X;lIngH;uiA;!l;ol2ua6;eHla5o0ro2;n0r0;a2Oe2XlJoHu0L;uHv1;ra9;aHo0;im;a3Bur0;af4bXcRduDep4fQliPmMnKpJra1WsiBtaGvH;eHol2;lop;aEiDlo7oE;oHy;te,un5;eIoH;liA;an;mCv1;a5i07o03raud,y;ei2iLla7oJrH;ee,yH;!pt;de,mHup3;missi2Ypo0;de,ma8ph1;aIrief,uH;g,nk;rk;mp4rk4uF;a09ea0h06i05l04oIrHurta1B;a2ea8ipp3;ales5e01habCinci6ll00mYnHrro6;cVdSfOju7no8qu1sLtJvH;eHin5;ne,r9;aHin27ribu8;in;er2iIoli29pi7titu8uH;lt;d1st;eJiIoHroFu0;rm;de,gu7rm;ss;eIoH;ne;mn,n0;eHlu6ur;al,i2;buBe,men5pH;e8i3ly;eDi6u6;r5xiB;ean0iT;rcumveFte;eIirp,oH;o0p;riAw;ncHre4t1ulk;el;aZeTi6lRoPrKuH;iIrHy;st,y;ld;aKeaJiIoad4;en;ng;stfeLtT;ke;il,l0Ymba0TrHth1;ne,rL;eHow;ed;!come,gLha2liKqueaJstItrHwild1;ay;ow;th;e2tt3;in,ui3;bysCckfi7ff3tH;he;b15c0Rd0Iff0Ggree,l0Cm09n03ppZrXsQttNuLvIwaC;it;eEoH;id;rt;gHto0X;meF;aGeBraD;ct;ch;pi7sItoH;niA;aJeHi03u7;mb3rt,ss;le;il;re;g0Gi0ou0rH;an9i2;eaJly,oiFrH;ai0o2;nt;r,se;aLi0FnItH;icipa8;eIoHul;un5y;al;ly0;aIu0;se;lga07ze;iJlH;e9oHu6;t,w;gn;ix,oH;rd;a02jMmiJoIsoH;rb;pt,rn;niHt;st1;er;ouIuB;st;rn;cKhie2knowled9quiHtiva8;es5re;ce;ge;ePliNoJrIusH;e,tom;ue;mHst;moIpH;any,liA;da8;ma8;te;pt;andNet,i6oJsH;coJol2;ve;liArt,uH;nd;sh;de;on",Adjective:"true¦0:A7;1:BH;2:A4;3:B7;4:AZ;5:9Y;6:7W;7:AK;8:AC;9:BF;A:79;B:AN;C:B1;D:B6;E:9N;a9Rb94c87d7Oe72f6Ig6Ah5Xi4Uj4Tk4Ql4Fm3Zn3Oo35p2Oquart7Ir2Ds1Dt14uSvOwFye29;aMeKhIiHoF;man6oFrth79u10;dA2zy;despreAQn w8Xs7Y;acked1HoleF;!sa7;ather1ReFll o6Uste1D;!k6;nt1Jst65te5;aHeGiFola5P;bBJce versa,gi3Kle;ng62rsa5N;ca1gBHluAK;lt0PnLpHrGsFttermoBA;ef99u4;b8Wge1; Hb31pGsFtiA6;ca7et,ide d4O;er,i7X;f4Yto da3;a0Fbecom2c0Bd04e02f01gu1XheaB5iXkn4LmUnTopp06pRrNsJtHus0wF;aFiel3I;nt0rra0P;app0eXoF;ld,uS;eHi36o56pGuF;perv06spect2;e1ok9D;en,ttl0;eFu6;cogn06gul2QlGqu0YsF;erv0olv0;at0ent2;aFrecede0E;id,rallel0;am0otic0;aFet;rri0tF;ch0;nFq25vers4;sur0terFv0O;eFrupt0;st0;air,inish0orese8X;mploy0nd2v8WxpF;ect0lain0;eHisFocume01ue;clFput0;os0;cid0rF;!a8HcovAha88ly2nea85privileg0sMwF;aFei97;tAy;hGircumcFonvinc2;is0;aFeck0;lleng0rt0;b1Zppeal2ssum2tteGuthorF;iz0;nd0;i46ra;aLeIhoHip 24oGrF;anspare1encha1i3;gethAleA2p notch,rpB;rny,ugh69;ena82mpGrF;r45tia5;eCo8F;leFst4H;nt0;a0Dc09e07h06i04ki03l01mug,nobbi4SoXpSqueami4StKuFymb8T;bHccin9i generis,pFr6;erFre7D;! dupAb,vi6R;du0li7Bp6AsFurb79;eq8Ztanda9M;aLeKi15o2NrGubboFy4L;rn;aightGin59ungF; o2K; fFfF;or7J;adfa9Dri7;lwa66tu7Q;arIeHirGlendBot Fry;on;it0;c3Ke1O;k6se; call0lub7mbAphistic13rHuFviT;ndFth18;proof;dBry;e5SipF;pe5shod;ll0n d7G;g2EnF;ceEg7istA;am3NeA;co1Wem6lfFn61re8; suf4Qi3Y;aGholFient36;ar6;rlFth2;et;cr0me,tisfac74;aOeIheumatoBiGoF;bu8Ott75y4;ghtFv4;-w2f6M;cJdu8ElInown0pro5ZsGtF;ard0;is40oF;lu3na1;e1Puc3Y;alcit8Me1ondi3;bBci4mpa1;aReOicayu8laNopuli8ErGuF;bl7Injabi,zzl0;eKiIoF;b7KfGmi42pFxi2I;er,ort7Q;a8uD;maFor,sti8va3;!ry;ciDexist2ma28paB;cBid;ac2Unt 3ErFti3;fe9ma3UtFv7M;!i3T;i2UrFss7H;anoBtF;-5OiF;al,s5M;bSffQkPld OnMrLthAutKverF;!aIbMdHhGni6Vseas,t,wF;ei6Urou6U;a5Te70;ue;ll;do1Der,si60;d3Kg27otu5P; bFbFe on o8go2li8;oa7Q;fashion0school;!ay; gua7NbFha5Kli8;eat;eHligGsF;ce8er0Qo19;at0;diFse;a1e1;aOeNiMoGuF;anc0de; moEnHrthFt6L;!eFwe7B;a7Arn;chaGdescri78prof2UsF;top;la1;ght6;arby,cessa5ighbor6xt;k0usiat2v4;aPeNiLoHuF;dIltiF;facet0p7;deHlGnFot,rbBst;ochro4Pth6;dy;rn,st;ddle ag0nF;dblYi;agAdiocEga,nac2rFtropolit4I;e,ry;cIgenta,inHj0Ekeshift,mmGnFri4Hscu5Tver17;da55y;ali4Eo4M;!stream;abEho;aOeLiIoFumber2;ngFuti1P;sta3MtF;erm,i4A;ghtGteraF;l,ry,te;heart0wei5G;ft-w2gFssAth4;al,eFi0L;nda5;nguBps0te6;apGind6nF;ow2;ut;itte5uniV;ce co0Ggno6Ell0Bm03nHpso 2PrF;a3releF;va1; YaXcoVdQePfOgrNhibi4Ji04nMoLsHtFvalu5E;a9eF;nDrdepe2F;a8iGolFuboI;ub7ve1;de,gF;nifica1;rdi5F;a3er;own;eriHiKluenUreq5A;pt,rt;eHiGoFul1L;or;e,re9;fiFpe22termi57;ni3;mpFnsideCrre9;le3;ccuCdeq57ne,ppr4D;fFsitu,vitro;ro1;mJpF;arHeGl12oFropA;li3r0Y;nd2rfe9;ti4;aGeFi15;d45nD;tuE;egGiF;c0VteC;al,iF;tiF;ma3;ld;aOelNiLoFuma8;a5meInHrrGsFur6;ti7;if47;e51o3O; ma39sF;ick;ghfalut2BspF;an42;liZpf2W;i5llow0ndGrdFtL; 04coEwork2;sy,y;aKener3Xiga34lob4oJraGuF;il1Jng ho;cGtF;ef2Pis;ef2O;ld34od;iFuc28;nf2L;aVeSiQlOoJrF;aGeFil6ug4;q3Xtf2I;gFnt3M;i7ra1;lk10oHrF; keeps,eFge0SmAtu3Vwa4G;go2i27s3L;liF;sh;ag4Gowe5uF;e1or3Z;e5nF;al,i3;d Gmini8rF;ti7ve1;up;bl0lDmili0Sr Fux;oFreach2;ff;aXfVlTmQnOqu4rMthere4veryday,xF;a9em3YpIquisi3traHuF;be44lF;ta1;!va2I;edRlF;icF;it;e9stF;whi7; Fough,tiE;rou3sui3;erGiF;ne1;ge1;dFe27oq30;er6;ficF;ie1;gAsF;t,ygo2;er;aWeMiHoGrFue;ea5owY;ci7mina1ne,r2Yt2ubQ;dact2Gfficult,m,sGverF;ge1se;creGePjoi1paCtF;a1in9;et,te; Nadp0UceMfiLgeneCliJmuEpeIreli9sGvoF;id,ut;pFtitu3ul1I;eCoF;nde1;ca3ghF;tf10;a1ni3;as0;facto;i6ngero0G;ar0Ae07h06i05l04oOrIuF;rmudgeon6stoma5teF;sy;ly;aIeHu1CystalF; cleFli8;ar;epy;fFv14z0;ty;erTgSloRmOnGrpoCunterclUveFy;rt;cLdJgr1YjIsHtrF;aFi3;dic0Vry;eq1Vta1;oi1ug4;esceFuM;nd2;a1NiD;atoDmensuCpF;ass1QulF;so5;ni4ss4;e1niza1;ci1H;ockwiD;rcumspe9vil;ee5intzy;leGrtaF;in;ba3;diac,efZ;aZePiLliJoGrFuck nak0;and new,eathtak2isk,on21;gGldface,naF; fi04fi04;us;nd,tF;he;gGpartisFzarE;an;tiF;me;autifNhiMlKnGsFyoM;iVtsell2;eGiFt;gn;aFfi04;th;at0oF;v0w;nd;ul;ckwards,rF;e,rT; priori,b13c0Zd0Tf0Ng0Ihe0Hl09mp7nt06p00rTsQttracti0MuLvIwF;aGkF;wa1B;ke,re;ant garGeraF;ge;de;diIsteEtF;heFoimmu8;nt07;re;to5;hGlFtu3;eep;en;bitJchiv4roItF;iFsy;cula3fiF;ci4;ga1;ra5;ry;pFt;aHetiz2rF;oprF;ia3;ll2re1;ing;iquFsy;at0e;ed;cohKiJkaHl,oGriFterX;ght;ne,of;li8;ne;ke,ve;olF;ic;ad;ain07ed,gressiIi7rF;eeF;ab7;le;ve;fGraB;id;ectGlF;ue1;ioF;na3; JaIeGvF;erD;pt,qF;ua3;ma1;hoc,infinitum;cuCquiGtu4u3;al;esce1;ra3;erSje9lPoNrKsGuF;nda1;e1olu3trF;a9uD;se;te;eaGuF;pt;st;aFve;rd;aFe;ze;ct;ra1;nt",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;e,m,y;!l,t;e0im;!'s",Preposition:"true¦-,aPbMcLdKexcept,fIinGmid,notwithstandiWoDpXqua,sCt7u4v2w0;/o,hereSith0;! whHin,oW;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h1ill,oward0;!s;an,ereby,r0;ough0u;!oM;ans,ince,o that,uch G;f1n0ut;!to;!f;! 0to;effect,part;or,r0;om;espite,own,u3;hez,irca;ar1e0oBy;sides,tween;ri7;bo8cross,ft7lo6m4propos,round,s1t0;!op;! 0;a whole,long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s",PhrasalVerb:"true¦0:92;1:96;2:8H;3:8V;4:8A;5:83;6:85;7:98;8:90;9:8G;A:8X;B:8R;C:8U;D:8S;E:70;F:97;G:8Y;H:81;I:7H;J:79;K:4G;a9Gb7Vc6Sd6Me6Kf5Ig51h4Ciron0j48k41l3Fm32n2Zo2Xp2Dquiet Hr1Ys0Lt00uYvacuu6RwOyammerBzL;ero Dip MonL;e0k0;by,ov9up;aReNhMiLor0Nrit1A;mp0n3Gpe0r5s5;ackAeel Di0T;aMiLn34;gh 3Xrd0;n Dr L;do1in,oJ;it 7Ak5lk Mrm 6Ash Lt84v60;aw3do1o7up;aw3in,oC;rgeBsL;e 2herE;a01eZhWiSoRrNuLypQ;ckErn L;do1in,oJup;aMiLot0y 31;ckl80p F;ck HdL;e 5Z;n7Xp 3Fs5K;ck NdMe Lghten 6me0p o0Sre0;aw3ba4do1in,up;e Iy 2;by,oG;ink Mrow L;aw3ba4in,up;ba4ov9up;aLe 78ll63;m 2r 5N;ckBke Mlk L;ov9shit,u48;aLba4do1in,leave,o66up;ba4ft9pa6Aw3;a0Wc0Ue0Nh0Ji0Gl0Am09n08o07p02quar5HtRuPwL;earNiL;ngMtch L;aw3ba4o8L; by;cLi6Cm 2ss0;k 65;aSeRiQoOrLud36;aigh2Eet76iL;ke 7Tng L;al6Zup;p Lrm2G;by,in,oG;cKnKr 2tc4O;p F;cKmp0nd MrLveAy 2P;e Ht 2M;ba4do1up;arKeOiNlMrLurB;ead0ingBuc5;a49it 6I;c5ll o3Dn 2;ak Fe73ll0;aKber 2rt0und like;ap 5Wow Duggl5;ash 6Ooke0;eep OiLow 6;cMp L;o6Eup;e 69;in,oL;ff,v9;de1Agn 4OnLt 6Hz5;gLkE; al6Ble0;aNoLu5X;ot Lut0w 7N;aw3ba4f48oC;cKdeEk6FveA;e Qll1Ond Prv5tL; Ltl5K;do1foMin,o7upL;!on;ot,r60;aw3ba4do1in,o4Wup;oCto;al67out0rL;ap66ew 6K;ilAv5;aYeViToPuL;b 5Zle0n Lstl5;aMba4do1inLo2Jth4Ou5Q;!to;c2Xr8w3;ll Not MuL;g3IndA;a2Wf3Po7;ar8in,o7up;ng 69p oLs5;ff,p19;aLelAinEnt0;c6Id L;o3Oup;cKt0;a00eZiXlUoRrPsyc35uL;ll Nn5Lt L;aLba4do1in,oJto48up;pa4Ew3;a3Kdo1in,o22to46up;attleBess LiOop 2;ah2Fon;iMp Lr50u1Hwer 6O;do1in,o6Oup;nt0;aMuL;gEmp 6;ce u21y 6E;ck Lg0le 4Bn 6p5C;oJup;el 5OncilE;c54ir 3An0ss NtMy L;ba4oG; Hc2R;aw3ba4in,oJ;pLw4Z;e4Yt D;aMerd0oL;dAt54;il Hrrow H;aUeRiQoMuL;ddl5ll I;cKnkeyNp 6uthAve L;aLdo1in,o4Mup;l4Ow3; wi4L;ss0x 2;asur5e3TlMss L;a21up;t 6;ke Mn 6rLs2Ax0;k 6ryA;do,fun,oCsure,up;a03eWiRoMuL;ck0st I;aOc4Gg NoLse0;k Lse4E;aft9ba4do1forw38in57o10u47;in,oJ;d 6;e OghtNnMsLve 01;ten F;e 2k 2; 2e47;ar8do1in;aNt MvelL; oC;do1go,in,o7up;nEve L;in,oL;pLut;en;c5p 2sh MtchBughAy L;do1o5A;in4Qo7;eNick Mnock L;do1oCup;oCup;eMy L;in,up;l Ip L;aw3ba4do1f05in,oJto,up;aNoMuL;ic5mpE;ke3Tt H;c44zz 2;a02eXiUoQuL;nMrrLsh 6;y 2;keMt L;ar8do1;r H;lLneErse3L;d Le 2;ba4dLfast,o25up;ear,o1;de Mt L;ba4on,up;aw3o7;aLlp0;d Nl Ir Lt 2;fLof;rom;f11in,o1WuX;cKm 2nMsh0ve Lz2Q;at,it,to;d Mg LkerQ;do1in,o2Uup;do1in,oL;ut,v9;k 2;aZeUive Sloss IoNrMunL; f0S;ab hold,in44ow 2V; Lof 2J;aNb1Nit,oMr8th1JuL;nd9;ff,n,v9;bo7ft9hQw3;aw3bLdo1in,oJrise,up,w3;a4ir2I;ar 6ek0t L;aLb1Gdo1in,o1Dr8up;cMhLl2Hr8t,w3;ead;ross;d aLng 2;bo7;a0Fe08iZlVoRrNuL;ck Le2P;ar8up;eMighten LownBy 2;aw3oG;eLshe29; 2z5;g 2lNol Lrk I;aLwi22;bo7r8;d 6low 2;aMeLip0;sh0;g 6ke0mLrLtten H;e F;gSlQnOrMsLzzle0;h F;e Lm 2;aw3ba4up;d0isL;h 2;e Ll 1V;aw3fQin,o7;ht ba4ure0;eQnMsL;s 2;cNd L;fLoG;or;e D;d06l 2;cPll Lrm0t1I;aNbMdo1in,oLsho0Gth0Avictim;ff,ut,v9;a4ehi2P;pa0D;e L;do1oGup;at Ldge0nd 13y5;in,o7up;aPi1IoOrL;aMess 6op LuO;aw3b04in,oC;gBwB; Iubl1C;m 2;a0Bh06l03oPrMut L;aw3ba4do1oCup;ackBeep MoLy0;ss Dwd0;by,do1in,o0Vup;me OoMuntL; o2B;k 6l L;do1oG;aSbRforPin,oOtLu0P;hMoLrue;geth9;rough;ff,n,ut,v9;th,wL;ard;a4y;paLr8w3;rt;eaMose L;in,oCup;n 6r F;aOeMiL;ll0pE;ck Der Lw F;on,up;t 2;lSncel0rPsNtch MveE; in;o1Oup;h Dt L;doubt,oG;ry MvL;e 09;aw3oJ;l Lm H;aMba4do1oJup;ff,n,ut;r8w3;a0We0NiteAl0Go05rRuL;bblOckl06il0Elk 6ndl06rMsLtNy FzzA;t 01;n 0IsL;t D;e I;ov9;anXeaViMush L;oGup;ghRng L;aOba4do1forNin,oMuL;nd9p;n,ut;th;bo7lLr8w3;ong;teL;n 2;k L;do1in,o7up;ch0;arUg 6iSn5oQrOssNttlMunce Lx D;aw3ba4;e 6; ar8;e H;do1;k Dt 2;e 2;l 6;do1up;d 2;aQeed0oLurt0;cNw L;aw3ba4do1o7up;ck;k L;in,oC;ck0nk0stA; oRaOef 2lt0nd L;do1ov9up;er;up;r Mt L;do1in,oCup;do1o7;ff,nL;to;ck Qil0nNrgMsL;h D;ainBe D;g DkB; on;in,o7;aw3do1in,oCup;ff,ut;ay;ct FdRir0sk NuctionA; oG;ff;ar8o7;ouL;nd; o7;d L;do1oLup;ff,n;wn;o7up;ut","Noun|Gerund":"true¦0:27;1:26;2:1X;3:1J;4:1Z;a25b1Oc1Cd16en14f0Yg0Wh0Ti0Rjog20k0Pl0Lm0In0Go0Cp05ques08rWsFtBu9volunt15w5y17zo2;a7ed1Si3or6r5;ap1Oest1Ci1;ki0r1O;i1r2s1Utc1U;nder5pri23;st1Mta4;al4e7hin4i6ra5y1J;c4di0i2v0Z;mi0p1H;a1Ys1;aKcHeGhEin1PkatClZmo4nowBpeAt8u6w5;ea3im1U;f02r5;fi0vi0J;a1Lretc1Ju5;d1BfJ;l0Xn1C;b6i0;eb5i0;oar19;ip15o5;rte2u1;a1r0At1;h6o3re5;a1He2;edu0Ooo0O;i0Nyi0;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1oub1r6umOw5;elB;awi0es04i5;n4vi0;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng",ProperNoun:"true¦barbie,c4diego,e3f2iron maiden,kirby,m0nis,riel,stevens;ercedes,i0;ckey,ssy;inn,lorence,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:77;1:64;2:6J;3:6M;4:5V;a6Bb56c4Ld4Be47f3Zg3Kh3Ci33j2Yk2Hl25m1Nn1Do1Ap0Xq0Vr0Os05tRuQvLwDxiBy9z5;a7h5i4Puri4R;a5e5ongsh0;ng3K;greb,nzib5J;ang2e5okoha3Vunfu;katerin3Krev0;a5n0R;m5Kn;arsBeAi6roclBu5;h0xi,zh5S;c7n5;d5nipeg,terth4;hoek,s1N;hi62kl3D;l66xford;aw;a8e6i5ladivost5Polgogr6O;en3lni6V;ni24r5;n2o3saill4Q;lenc4Zncouv3Vr3ughn;lan bat1Erumqi,trecht;aFbilisi,eEheDiBo9r7u5;l23n66r5;in,ku;i5ondh65;es54poli;kyo,m32ron1Rulo5;n,uS;an5jua3l2Wmisoa6Era3;j4Wshui; hag65ssaloni2K;gucigal28hr0l av1W;briz,i6llinn,mpe59ng5rtu,shk2U;i3Hsh0;an,chu1n0p2Hyu0;aEeDh8kopje,owe1It7u5;ra5zh50;ba0It;aten is58ockholm,rasbou6Auttga2Y;an8e6i5;jiazhua1llo1m60y0;f53n5;ya1zh4K;gh3Nt4T;att48o1Yv47;cramen18int ClBn5o paulo,ppo3Urajevo; 7aa,t5;a 5o domin3H;a3fe,m1O;antonBdie3Ffrancisco,j5ped3Qsalvad0L;o5u0;se;em,t lake ci5Iz28;lou5Bpeters27;aAe9i7o5;me,sar5t5C;io;ga,o5yadh;! de janei3H;cife,ims,nn3Lykjavik;b4Uip4lei2Knc2Rwalpindi;ingdao,u5;ez2i0R;aFeEhDiCo9r7u6yong5;ya1;eb5Bya1;a5etor3O;g54to;rt5zn0; 5la4Eo;au prin0Nelizabe26sa04;ls3Rrae5Ctts28;iladelph3Inom pe1Coenix;ki1r23tah tik3G;dua,lerZnaji,r4Qt5;na,r34;ak46des0Lm1Or6s5ttawa;a3Xlo;an,d07;a7ew5ing2Hovosibir1Lyc; 5cast38;del26orlea46taip16;g8iro4Yn5pl2Yshv35v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0Y;aFeCi9o6u5;mb2Cni28sc40;gadishu,nt6s5;c15ul;evideo,pelli1Tre31;ami,l6n16s5;kolc,sissauga;an,waukee;cca,d5lbour2Omph43ndo1Essi3;an,ell5i3;in,ín;cau,drAkass2Tl9n8r5shh4B;aca6ib5rakesh,se2M;or;i1Ty;a4FchFdal10i48;mo;id;aDeAi8o6u5vSy2;anMckn0Pdhia3;n5s angel27;d2g bea1O;brev2Ce3Mma5nz,sb2verpo29;!ss28; ma3Ai5;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Gn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd37rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Zi2H;che2d5;ianap2Mo20;aAe7o5yder2W; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Oupe;ld coa1Bthen5;bu2S;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal29es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,nkirk,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Zr es sala1KugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1Q;lo7n6penhag0Ar5;do1Ok;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr14;ch8sha,zh07;gliari,i9lga8mayenJn6pe town,r5tanO;acCdiff;ber1Ac5;un;ry;ro;aWeNhKirmingh0WoJr9u5;chareTdapeTenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iCl9ng8r5;g6l5n;in;en;aluru,hazi;fa6grade,o horizon5;te;st;ji1rut;ghd0BkFn9ot8r7s6yan n4;ur;el,r07;celo3i,ranquil09;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a05b02cc01ddis aba00gartaZhmedXizawl,lSmPnHqa00rEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a8c5kaOtwerp;hora6o3;na;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 7buquerq6eppo,giers,ma5;ty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦a00bYcUdTeSfRgMhLiJjfk,kHlFmDnBorAp8r7s6t3u2vostok,wake isCy0;a0yz;kutGngtze;laanbaatar,pT;ahiti,h0;amWe 0;bronx,hamptons;akhalIeine,fo,oho,under5yd;ed sea,io grande;acifWek,h0itcairn;l,x;ange county,d,inoco;ew eng0ile;land;a0co,ekong,idIuc;gadSlibu,nhattS;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianLochina;arlem,kg,nd,ovd;a3odavari,re0;at 0enwich;brita0lakC;in;ngAy village;co,ra;urope,verglad8;anube,en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;driadic,frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,on3som3t0week end,yesterd4;mr1o0;d2morrow;!w;ed0;ay",Duration:"true¦centurAd8h7m5q4se3w1y0;ear8r8;eek0k7;!end,s;ason,c5;tr,uarter;i0onth3;llisecond2nute2;our1r1;ay0ecade0;!s;ies,y",FemaleName:"true¦0:IS;1:IW;2:I5;3:I4;4:IM;5:I9;6:JD;7:GQ;8:J9;9:J5;A:HD;B:HN;C:IE;D:J2;E:II;F:H2;G:C4;H:HP;aGIbFDcDJdCSeBIfB0gAAh9Qi9Dj8Ck7Cl5Wm46n3Ko3Gp34qu33r2Bs16t0Fu0Dv03wWxiUyPzI;aMeJineb,oIsof2;e3Rf2la,ra;h3iLlJna,ynI;ab,ep;da,ma;da,h3iIra;nab;aLeKi0GolB3uJvI;etAonDH;i0na;le0sen2;el,gm3Gn,rGAs8T;aoIme0nyi;m5YyAA;aNendDRhiD8iI;dele9lKnI;if45niIo0;e,f44;a,helmi0lIma;a,ow;ka0nB;aOeLiIusa5;ck82kJlAole7viI;anGenIQ;ky,toriBE;da,lA5rIs0;a,nIoniGV;a,iFH;leInesGV;nI7rI;i1y;g9rIxGW;su5te;aZeVhSiOoMrJuIy3;i,la;acIPiIu0L;c2na,sI;hGta;nIr0H;iGya;aKffaEGnIs6;a,gtiI;ng;!nFHra;aJeIomasi0;a,l9Lo87res1;l2ndolwethu;g9Co85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe3iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlett,e0ChYiUkye,neza0oStOuJyI;bI2lvi1;ha,mayI5ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHQr5;b2fiA3m0MnIphi1;d3ia,ja,ya;er3lKmon1nJobh8MtI;a,i;dy;lEHv2;aNeJirIo0risEZy5;a,lDD;ba,e0i5lKrI;iIr6Gyl;!d8Efa;ia,lDP;hd,iNki3nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7YvI;da,inj;e0ife;en1i0ma;anA0bMd3Kh1PiBkLlKmJnd3rIs6vannaC;aCi0;ant6i3;lDEma,ome;ee0in8Ou3;in1ri0;a05e00hYiVoIuthDC;bTcSghRl8GnQsKwJxI;anAUie,y;an,e0;aJeIie,lD; merBIann8ll1marD6t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8B;hel63io;bDFer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG7oI;da,n1L;an0bKemGgi0iJnIta,y0;a86ee;han81na;a,eI;cE5kaC;bi0chJe,i0mo0nIquEFy0;di,ia;aEDelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCL;scil3LyamvaB;lly,rt2;ilome0oebe,ylI;is,lis;ggy,nelope,r5t3;ige,m0UnLo5rvaDBtJulI;a,etAin1;ricIt4T;a,e,ia;do3i07;ctav2dJfCUis6lIphCUumBYyunbileg;a,ga,iv2;eIvA9;l2tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBJkLlaKna,sIta,vi;anIha;ur;!y;a,iDNki;hoHk9SolI;a,eDE;!mh;hir,lIna,risFsreE;!a,lBO;asuMdLh2i6Cl5nKomi8rgEJtIzanin zah3;aIhal4;li1s6;cy,etA;e9iEP;nngu30;a0Ackenz4e02iNoKrignayani,uriD8yI;a,rI;a,lOna,tH;bi0i3llBDnI;a,iI;ca,ka,qCY;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEI;!l,nB;dy,eIh,n4;nhHrva;aLdKiCKlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5EgOi,lLrI;edi77iJjem,on,yI;em,l;em,sF;an4iIliF;nIsC9;a,da;!an,han;b0DcANd0Be,g09ha,i08ja,l06n04rMsoum5YtLuJv80x9FyIz4;bell,ra,soB4;de,rI;a,eE;h8Cild1t4;a,cYgUiLjor4l7Qn4s6tKwa,yI;!aIbe6Uja9lA9;m,nBC;a,ha,in1;!aKbC6eJja,lDna,sIt62;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliACcJeduarBfern5EjIlui5W;o6Dul2;ecil2la3;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Vi75y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD6on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d2la,nI;!a,dJeBCnIsCG;!a,eBB;a,sCE;aCRcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a84i8;lIn1t7;ei;!in1;aTbb98dSepa,lNnKsJv2zI;!a,be5KetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9We;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c2t2;e2NlCB;la,nIra;a,ie,o3;a,or1;a,gh,laI;!ni;!h,nI;a,d3e,n5O;cPdon93iOkes6mi96na,rNtKurJvIxmi,y5;ern1in2;a,e53ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAFoOrKyI;lIra;a,ee,ie;istIy6B;a,en,iJyI;!na;!e,n58;nul,ri,urtnAV;aPerOlAUmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei3ongordzol;dij1w5;el7MiLjsi,lKnJrI;a,i,ri;d3na,za;ey,i,lB8s4y;ra,s6;bi7cAEdiat7EeAXiSlRmQnyakuma1BrOss6HtLvi7yI;!e,lI;a,eI;e,i8H;a6BeJhIi4MlDri0y;ar69er69ie,leErAXy;!lyn8Cri0;a,en,iIl5Qoli0yn;!ma,nGsF;a5il1;ei8Ai,l4;a,tl6I;a09eZiWoOuI;anMdLliIst61;a8DeIsF;!n9tI;!a,te;e5Hi3Iy;a,i7;!anOcelDdNelHhan7NleMni,sJva0yI;a,ce;eIie;fIlDph5S;a,in1;en,n1;i8y;!a,e,n40;lIng;!i1DlI;!i1C;anOle0nLrKsI;i88sI;!e,i87;i,ri;!a,elHif2AnI;a,etAiIy;!e,f28;a,e89iJnI;a,e88iI;e,n1;cNda,mi,nJque4UsminGvie3y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob7Z;!n9H;do3;belIdo3;!a,e,l37;a72en1i0ma;di3es,gr6Tji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin29;da,ll4rten21snI;a,i9K;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1AiKlJnriet7rmi9sI;sa,t19;en2Qga,mi;di;bi2Bil8ClOnNrKsJtIwa,yl8C;i5Nt4;n5Tti;iImo4Xri4Y;etI;!te;aCnaC;a,ey,l4;a03eXiSlQoOrLunKwI;enIyne1O;!dolD;ay,el;acieJetIiselB;a,chE;!la;ld19ogooI;sh;adys,enIor2yn2G;a,da,na;aLgi,lJna,ov84selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Ni,m3Atru86;etAi4S;a,eIna;s25vieve;ma;bJle,mIrnet,yH;al5Ji5;i5BrielI;a,l1;aUeRiQlorPoz2rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0N;n1s5X;!ca;a,enc2;en,o0;lJn0rnI;anB;ec2ic2;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no3oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c2da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh2iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr2nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d3nI;!a,e;hl2i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th2;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat3;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a3er3ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d3elHtI;al,elH;cJlI;esAi42;el2ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a3o3ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el2;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!l1;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar2;el;aMberLeliKiIy;e,l2naI;!ta;a,ja;!ly;hHiJl2nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c2sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c2is6jaLksaLna,sKxI;aIia;!nd3;ia,saI;nd3;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",Person:"true¦a0Ob0Hc08d05e02g01hZinez,jYkVlSmMnKoJpHr9s7t4v2w0xzibit,yanni;ar0ednesday adams,ill.i.am,oode;hol,rO;a0oltaiO;lentino rossi,n go7;a1heresa may,i0yra banks;ger woods,mbaQ;tum,ylor;a0carlett johanss03hakespeaJinbad,lobodan milosevic,ocratM;ddam hussain,ntigold;a6e5i4o2u0za;mi,n dmc,paul,sh limbau0;gh;d stewart,nald0thko;inho,o;hanYvaldo;ese witherspoVil9mbrandt;ffi,y roma03;a0e08ip07lato,oe,uff daddy;lm06ris hiltS;prah winfrWra;as,e0iles crane,ostradamP; yo,l3ttI;acklemo4essia3i1o0ubarek;by,lie3net,rrissS;randa ju0tt romnR;ly;en;re;ady gaga,e0iberaT;bron jam0e;es;anye west,e1iefer suther0obe bryant;land;ats,ndall,sha;aime,effersCk rowling;a0itlPulk hogan;lle berry,rrisA;ast9otye;ff1m0nya,zekiel;eril lagasse,inem;ie;a1e0ick wolf,rake;gas,nzel washingt4;lt3nB;ar5h3lint2o0;nfuci0olio;us;on;aucCy0;na;dinal wols1son0;! palm9;ey;a5e3o2ro0;ck,n0;te;no;ck,yon0;ce;nksy,rack obama;ristot1shton kutch0;er;le",LastName:"true¦0:9G;1:9W;2:9Y;3:9O;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s2;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi3j6ka3IoGrFsui,uD;om50rD;c3n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps2s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv3zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8infeld,mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins2;!on;bei0LcEes,vDzzo;as,e8;ci,hards2;ag3es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss2;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym3;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx2;ic,ov6X;ls1miD;!n1;ils2mD;co42ec;gy,kaEray3varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h3lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h3iSlQnez48oJrGuEvar3woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss2;anEnsD;en,on,t2;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks2obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m3ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers2;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw2;o,staf2Utierr7zm3;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m3;calv9zale0H;aj,i;bs2l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm3uD;cDent9ji3E;hs;ntaDrt6urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s2;er,is2wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g3he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w3;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e2uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em3liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm3tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder2mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy3;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss2;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl3tchis2yD;aEd6;in;la;aEsl3;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s2;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",Honorific:"true¦director1field marsh2lieutenant1rear0sergeant major,vice0; admir1; gener0;al",Adverb:"true¦a07b04dZeXfSheQinPjustOkinda,likewiYmMnJoEpCquite,r9s5t2u0very,well;ltima00p0; to,wards5;h1iny bit,o0wiO;o,t6;en,us;eldom,o0uch;!me1rt0; of;how,times,w0B;a1e0;alR;ndomQth04;ar excellenEer0oint blank; Khaps;f3n0utright;ce0ly;! 0;ag04moW; courFten;ewIo0; longVt 0;onGwithstanding;aybe,eanwhiMore0;!ovS;! aboW;deed,steX;lla,n0;ce;or2u0;l8rther0;!moJ; 0evK;exampCgood,suH;n mas0vI;se;e0irect2; 2fini0;te0;ly;juAtrop;ackward,y 0;far,no0; means,w; GbroFd nauseam,gEl7ny5part,s4t 2w0;ay,hi0;le;be7l0mo7wor7;arge,ea6; soon,i4;mo0way;re;l 3mo2ongsi1ready,so,togeth0ways;er;de;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aXbTcReNhowMiEjust00noBo9p8supposing,t5wh0yet;e1il0o3;e,st;n1re0thN; if,by,vM;evL;h0il,o;erefOo0;!uU;lus,rovided th9;r0therwiM;! not; mattEr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mIcaForder t0;h0o;at;! 0;only,t0w0;hen;!ev3;ith2ven0;! 0;if,tB;er;o0uz;s,z;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s",Determiner:"true¦aBboth,d9e6few,le5mu8neiDplenty,s4th2various,wh0;at0ich0;evC;a0e4is,ose;!t;everal,ome;!ast,s;a1l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er","Adj|Present":"true¦a07b04cVdQeOfKhollJidRlFmDnarrJoCpAqua9r8s4t2utt3w0;aLet,ro0;ng,ug08;end0hin;er;e2hort,l1mooth,our,pa9tray,u0;re,speT;i2ow;cu6da01leRpaM;eplica00ig01;ck;aGr0;eseTime,omU;bscu1pen,wn;atu0e3odeG;re;a2e1i0;gTve;an;st,y;ow;a2i1oul,r0;ee,inge;rm;iHke,ncy,st;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry,ull;le;ffu9re6;fu8libe0;raE;alm,l5o0;mpleCn3ol,rr1unterfe0;it;e0u7;ct;juga8sum7;ea1o0;se;n,r;ankru1lu0;nt;pt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3D;1:3R;2:3G;3:2I;a3Vb3Ec35d2Ve2Of2Bg1Xh1Mi1Gj1Fk1Cl14m0Yn0To0Sp0Jqu0Hr08sItDug0vBw5y4za0R;el11ouO;ary,e7hi6i4ry;ck0Dde,l4n1ry,se;d,y;ny,te;a4i3T;k,ry;a4erda2ulgar;gue,in,st;a7en2Zhi6i5ough,r4;anqu2Een1ue;dy,g38me0ny,r04;ck,rs2A;ll,me,rt,wd3K;aScaQePhNiMkin0ClJmHoFpEt7u5w4;eet,ift;b4dd0Xperfi22rre2A;sta28t3;a9e8iff,r5u4;pVr1;a5ict,o4;ng;ig2Xn0O;a1ep,rn;le,rk,te0;e1Ti2Xright0;ci20ft,l4on,re;emn,id;a4el0;ll,rt;e5i4y;g2Om10;ek,nd2V;ck25l0mp3;a4iSrill,y;dy,l02rp;ve0Kxy;n1Lr4;ce,y;d,fe,int0l1Jv0W;a9e7i6o4ude;mantic,o1Asy,u4;gh,nd;pe,t1Q;a4d,mo0B;dy,l;gg5iGndom,p4re,w;id;ed;ai2i4;ck,et;hoBink,lAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouTud;ey,k0;liYor;ain,easa2;ny;dd,i0ld,ranM;aive,e6i5o4u16;b3isy,rm10sy;bb0ce,mb3;a4r1w;r,t;ad,e6ild,o5u4;nda13te;ist,o1;a5ek,l4;low;s0ty;a9e8i7o4ucky;f0Ln5o17u4ve0w11y0P;d,sy;e0g;ke0l,mp,tt3ve0;e1Swd;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fZsita2;dy,rYv4;en0y;nd15ppy,r4;d4sh;!y;aGenFhDiClBoofy,r4;a9e7i6o4ue11;o4ss;vy;m,s0;at,e4y;dy,n;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiT;u1y;aEeeb3iAl9o7r6u4;ll,n4r0P;!ny;aEesh,iend0;a4nd,rmF;my;at,ir9;erce5nan4;ciB;! ;le;r,ul4;ty;a7erie,sse5v4xtre0C;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i5u4;mb;r6vi5z4;zy;ne;e,ty;a4ep,nB;d4f,r;!ly;ppRrk;agey,h9l8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;evLou1;e4il0;ap,e4;sy;aIiGlDoBr6u4;ff,r0sy;ly;a7i4oad;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd","Person|Adj":"true¦brown,du2earnest,frank,mi2r0sa1;a0ich,u1;ndy;sty",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Verb:"true¦born,cannot,gonna,has,keep tabs,msg","Adj|Gerund":"true¦0:2G;1:2I;2:26;3:24;4:21;5:2E;6:28;7:23;a25b20c1Id15e0Zf0Pg0Jh0Ii0Bjud1Yl08m05o01pWrQsFtAup9v8w0Qyiel4;ar5eZ;lif0s02;aXeBhr9i3ouc7r8wis0;e02oub2us0yi1;ea0Ni8;l2vi1;l2mp0;atisf5creec7enten1Vhoc0Fkyrocke0lo14oGpFtBu9we8;e13l2;pp1Lr8;gi1pri6roun4;a9ea24i8ri0Bun1D;mula0r3;gge3r8;t2vi1;ark2ee4;a8ot7;ki1ri1;aCe9ive0o8us7;a3l2;defi14fres7ig14laFmai14s0v8war4;ea2itali8ol0R;si1zi1;gi1ll5mb2vi1;a5eAier1Elun19r8un1K;e8o12;ce4s6vai2;n4rple8;xi1;ffsApNut9ver8wi1;arc7lap0Hp09ri4whel1L;goi1l5st0Y;et0;eande3i9o0Fu8;mb2;s6tiga0;a9i8o0C;fesa0Bmi0vi1;cKg0Vs0;mDn8rri0C;cBsAt9vi8;go1Gti1;e15imida0;pi3ul0;orpo1Drea6;po6;arrowi1ea2orrif5umilia0;lCr8;a0ipZo9uel8;i1li1;undbrea8wi1;ki1;a3ea0Z;aGetc7it0lDoBr9ulf8;il2;ee0Yigh8ust12;te04;r8un4;ebo4th0H;a9o8;a0we3;mi1tte3;di1scina0;mBn9x8;ac0ci0is0plo4;ab2c8du3ga04sT;han0oura03;barras6er02p8;owe3;aJeCi8;s8zz5;appoin0gus0sen0t8;r8u0N;ac0es6;biliDcCfiMgra4mBpres6serAv8;asCelo8;pi1;vi1;an4eaI;a5liH;ta0;maOri1s7un0;aOhLlo6o8ripp2ut0;mEn8rrespon4;cerCfBspi3t8vinQ;in9r8;as0ibu0ol2;ui1;lic0u6;ni1;fCmBp8;e9ro8;mi6;l2ti1;an4;or0;a8il2;llen8rQ;gi1;lOptiva0ri1;eBin4lin4o9rui6u8;d4st2;i2oLri1un8;ci1;coJ;bsoQcLgonJlarImGppea2rEs8;pi3su3to8;n9un4;di1;is7;hi1;ri1;res0;li1;aBu6;si1;mi1;i8zi1;zi1;c8hi1;ele9ompan5;yi1;ra0;ti1;rbi1;ng","Person|Verb":"true¦b8ch7dr6foster,gra5hope,ja9lan4ma2ni9ollie,p1rob,s0wade;pike,t5ue;at,eg,ier2;ck,r0;k,shal;ce;ce,nt;ew;ase,u1;iff,l1ob,u0;ck;aze,ossom","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Po="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Ao=Po.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var No=function(e){if(void 0!==Ao[e])return Ao[e];let t=0,n=1,r=36,a=1;for(;n=0;n--,a*=36){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t};var jo=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=xo(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Eo(ko[e]);Fo.test(e)?Object.keys(t).forEach((t=>{if(Go[t]=e,"Noun|Verb"===e){let e=Oo(t,Bo);Go[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Vo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","3","<\\3","=("].forEach((e=>Vo[e]="Emoticon")),delete Vo[""],delete Vo.null,delete Vo[" "];const zo="Singular";var Ho={beforeTags:{Determiner:zo,Possessive:zo,Acronym:zo,Noun:zo,Adjective:zo,PresentTense:zo,Gerund:zo,PastTense:zo,Infinitive:zo,Date:zo,Ordinal:zo,Demonym:zo},afterTags:{Value:zo,Modal:zo,Copula:zo,PresentTense:zo,PastTense:zo,Demonym:zo,Actor:zo},beforeWords:{the:zo,with:zo,without:zo,of:zo,for:zo,any:zo,all:zo,on:zo,cut:zo,cuts:zo,increase:zo,decrease:zo,raise:zo,drop:zo,save:zo,saved:zo,saves:zo,make:zo,makes:zo,made:zo,minus:zo,plus:zo,than:zo,another:zo,versus:zo,neither:zo,about:zo,favorite:zo,best:zo,daily:zo,weekly:zo,linear:zo,binary:zo,mobile:zo,lexical:zo,technical:zo,computer:zo,scientific:zo,security:zo,government:zo,popular:zo,formal:zo,no:zo,more:zo,one:zo},afterWords:{of:zo,system:zo,aid:zo,method:zo,utility:zo,tool:zo,reform:zo,therapy:zo,philosophy:zo,room:zo,authority:zo,says:zo,said:zo,wants:zo,wanted:zo,is:zo,can:zo,wise:zo}};const Lo="Infinitive";var $o={beforeTags:{Modal:Lo,Adverb:Lo,Negative:Lo,Plural:Lo},afterTags:{Determiner:Lo,Adverb:Lo,Possessive:Lo,Reflexive:Lo,Preposition:Lo,Cardinal:Lo,Comparative:Lo,Superlative:Lo},beforeWords:{i:Lo,we:Lo,you:Lo,they:Lo,to:Lo,please:Lo,will:Lo,have:Lo,had:Lo,would:Lo,could:Lo,should:Lo,do:Lo,did:Lo,does:Lo,can:Lo,must:Lo,us:Lo,me:Lo,let:Lo,even:Lo,when:Lo,help:Lo,he:Lo,she:Lo,it:Lo,being:Lo,bi:Lo,co:Lo,contra:Lo,de:Lo,inter:Lo,intra:Lo,mis:Lo,pre:Lo,out:Lo,counter:Lo,nobody:Lo,somebody:Lo,anybody:Lo,everybody:Lo},afterWords:{the:Lo,me:Lo,you:Lo,him:Lo,us:Lo,her:Lo,them:Lo,it:Lo,himself:Lo,herself:Lo,itself:Lo,myself:Lo,ourselves:Lo,themselves:Lo,something:Lo,anything:Lo,a:Lo,an:Lo,up:Lo,down:Lo,by:Lo,out:Lo,off:Lo,under:Lo,what:Lo,all:Lo,to:Lo,because:Lo,although:Lo,after:Lo,before:Lo,how:Lo,otherwise:Lo,together:Lo,though:Lo,into:Lo,yet:Lo,more:Lo,here:Lo,there:Lo}};var So={beforeTags:Object.assign({},$o.beforeTags,Ho.beforeTags,{}),afterTags:Object.assign({},$o.afterTags,Ho.afterTags,{}),beforeWords:Object.assign({},$o.beforeWords,Ho.beforeWords,{}),afterWords:Object.assign({},$o.afterWords,Ho.afterWords,{})};const Mo="Adjective";var Jo={beforeTags:{Determiner:Mo,Possessive:Mo,Hyphenated:Mo},afterTags:{Adjective:Mo},beforeWords:{seem:Mo,seemed:Mo,seems:Mo,feel:Mo,feels:Mo,felt:Mo,stay:Mo,appear:Mo,appears:Mo,appeared:Mo,also:Mo,over:Mo,under:Mo,too:Mo,it:Mo,but:Mo,still:Mo,really:Mo,quite:Mo,well:Mo,very:Mo,how:Mo,deeply:Mo,hella:Mo,profoundly:Mo,extremely:Mo,so:Mo,badly:Mo,mostly:Mo,totally:Mo,awfully:Mo,rather:Mo,nothing:Mo,something:Mo,anything:Mo,not:Mo,me:Mo,is:Mo},afterWords:{too:Mo,also:Mo,or:Mo}};const Wo="Gerund";var qo={beforeTags:{Adverb:Wo,Preposition:Wo,Conjunction:Wo},afterTags:{Adverb:Wo,Possessive:Wo,Person:Wo,Pronoun:Wo,Determiner:Wo,Copula:Wo,Preposition:Wo,Conjunction:Wo,Comparative:Wo},beforeWords:{been:Wo,keep:Wo,continue:Wo,stop:Wo,am:Wo,be:Wo,me:Wo,began:Wo,start:Wo,starts:Wo,started:Wo,stops:Wo,stopped:Wo,help:Wo,helps:Wo,avoid:Wo,avoids:Wo,love:Wo,loves:Wo,loved:Wo,hate:Wo,hates:Wo,hated:Wo},afterWords:{you:Wo,me:Wo,her:Wo,him:Wo,them:Wo,their:Wo,it:Wo,this:Wo,there:Wo,on:Wo,about:Wo,for:Wo}};var Ko={beforeTags:Object.assign({},Jo.beforeTags,qo.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Jo.afterTags,qo.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Jo.beforeWords,qo.beforeWords,{is:"Adjective",was:"Adjective",of:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Jo.afterWords,qo.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ro={beforeTags:{Determiner:void 0,Cardinal:"Noun",PhrasalVerb:"Adjective"}};var Uo={beforeTags:Object.assign({},Jo.beforeTags,Ho.beforeTags,Ro.beforeTags),afterTags:Object.assign({},Jo.afterTags,Ho.afterTags),beforeWords:Object.assign({},Jo.beforeWords,Ho.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective",off:"Adjective",out:"Adjective"}),afterWords:Object.assign({},Jo.afterWords,Ho.afterWords)};let Qo="PastTense";const _o={beforeTags:{Adverb:Qo,Pronoun:Qo,ProperNoun:Qo,Auxiliary:Qo,Noun:Qo},afterTags:{Possessive:Qo,Pronoun:Qo,Determiner:Qo,Adverb:Qo,Comparative:Qo,Date:Qo,Gerund:Qo},beforeWords:{be:Qo,who:Qo,get:"Adjective",had:Qo,has:Qo,have:Qo,been:Qo,it:Qo,as:Qo,for:"Adjective",more:"Adjective"},afterWords:{by:Qo,back:Qo,out:Qo,in:Qo,up:Qo,down:Qo,before:Qo,after:Qo,for:Qo,the:Qo,with:Qo,as:Qo,on:Qo,at:Qo,between:Qo,to:Qo,into:Qo,us:Qo,them:Qo,me:Qo}};var Zo={beforeTags:Object.assign({},Jo.beforeTags,_o.beforeTags),afterTags:Object.assign({},Jo.afterTags,_o.afterTags),beforeWords:Object.assign({},Jo.beforeWords,_o.beforeWords),afterWords:Object.assign({},Jo.afterWords,_o.afterWords)};const Xo={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Yo={beforeTags:Object.assign({},Jo.beforeTags,$o.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Jo.afterTags,$o.afterTags,Xo.afterTags),beforeWords:Object.assign({},Jo.beforeWords,$o.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Jo.afterWords,$o.afterWords,{to:void 0,as:"Adjective"})};const ei={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ti={},ni={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ri={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ai={beforeTags:Object.assign({},qo.beforeTags,Ho.beforeTags,ei),afterTags:Object.assign({},qo.afterTags,Ho.afterTags,ti),beforeWords:Object.assign({},qo.beforeWords,Ho.beforeWords,ni),afterWords:Object.assign({},qo.afterWords,Ho.afterWords,ri)};const oi="Singular",ii="Infinitive";var si={beforeTags:Object.assign({},$o.beforeTags,Ho.beforeTags,{Adjective:oi,Particle:oi}),afterTags:Object.assign({},$o.afterTags,Ho.afterTags,{ProperNoun:ii,Gerund:ii,Adjective:ii,Copula:oi}),beforeWords:Object.assign({},$o.beforeWords,Ho.beforeWords,{is:oi,was:oi,of:oi,have:null}),afterWords:Object.assign({},$o.afterWords,Ho.afterWords,{instead:ii,about:ii,his:ii,her:ii,to:null,by:null,in:null})};const li="Person";var ui={beforeTags:{Honorific:li,Person:li},afterTags:{Person:li,ProperNoun:li,Verb:li},ownTags:{ProperNoun:li},beforeWords:{hi:li,hey:li,yo:li,dear:li,hello:li},afterWords:{said:li,says:li,told:li,tells:li,feels:li,felt:li,seems:li,thinks:li,thought:li,spends:li,spendt:li,plays:li,played:li,sing:li,sang:li,learn:li,learned:li,wants:li,wanted:li}};const ci="Month",hi={beforeTags:{Date:ci,Value:ci},afterTags:{Date:ci,Value:ci},beforeWords:{by:ci,in:ci,on:ci,during:ci,after:ci,before:ci,between:ci,until:ci,til:ci,sometime:ci,of:ci,this:ci,next:ci,last:ci,previous:ci,following:ci},afterWords:{sometime:ci,in:ci,of:ci,until:ci,the:ci}};var di={beforeTags:Object.assign({},ui.beforeTags,hi.beforeTags),afterTags:Object.assign({},ui.afterTags,hi.afterTags),beforeWords:Object.assign({},ui.beforeWords,hi.beforeWords),afterWords:Object.assign({},ui.afterWords,hi.afterWords)};const gi="Place",mi={beforeTags:{Place:gi},afterTags:{Place:gi,Abbreviation:gi},beforeWords:{in:gi,by:gi,near:gi,from:gi,to:gi},afterWords:{in:gi,by:gi,near:gi,from:gi,to:gi,government:gi,council:gi,region:gi,city:gi}};let pi="Unit";const fi={"Actor|Verb":So,"Adj|Gerund":Ko,"Adj|Noun":Uo,"Adj|Past":Zo,"Adj|Present":Yo,"Noun|Verb":si,"Noun|Gerund":ai,"Person|Noun":{beforeTags:Object.assign({},Ho.beforeTags,ui.beforeTags),afterTags:Object.assign({},Ho.afterTags,ui.afterTags),beforeWords:Object.assign({},Ho.beforeWords,ui.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Ho.afterWords,ui.afterWords)},"Person|Date":di,"Person|Verb":{beforeTags:Object.assign({},Ho.beforeTags,ui.beforeTags,$o.beforeTags),afterTags:Object.assign({},Ho.afterTags,ui.afterTags,$o.afterTags),beforeWords:Object.assign({},Ho.beforeWords,ui.beforeWords,$o.beforeWords),afterWords:Object.assign({},Ho.afterWords,ui.afterWords,$o.afterWords)},"Person|Place":{beforeTags:Object.assign({},mi.beforeTags,ui.beforeTags),afterTags:Object.assign({},mi.afterTags,ui.afterTags),beforeWords:Object.assign({},mi.beforeWords,ui.beforeWords),afterWords:Object.assign({},mi.afterWords,ui.afterWords)},"Person|Adj":{beforeTags:Object.assign({},ui.beforeTags,Jo.beforeTags),afterTags:Object.assign({},ui.afterTags,Jo.afterTags),beforeWords:Object.assign({},ui.beforeWords,Jo.beforeWords),afterWords:Object.assign({},ui.afterWords,Jo.afterWords)},"Unit|Noun":{beforeTags:{Value:pi},afterTags:{},beforeWords:{per:pi,every:pi,each:pi,square:pi,cubic:pi,sq:pi,metric:pi},afterWords:{per:pi,squared:pi,cubed:pi,long:pi}}},vi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};fi["Plural|Verb"]={beforeWords:vi(fi["Noun|Verb"].beforeWords,{had:"Plural",have:"Plural"}),afterWords:vi(fi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null,is:"PresentTense",by:"PresentTense"}),beforeTags:vi(fi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:vi(fi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var bi=fi;const yi="Adjective",wi="Infinitive",ki="PresentTense",Pi="Singular",Ai="PastTense",Ni="Adverb",ji="Plural",Ii="Verb",xi="LastName",Ei="Place",Ci="Participle";var Ti=[null,null,{ea:Pi,ia:"Noun",ic:yi,ly:Ni,"'n":Ii,"'t":Ii},{oed:Ai,ued:Ai,xed:Ai," so":Ni,"'ll":"Modal","'re":"Copula",azy:yi,eer:"Noun",end:Ii,ped:Ai,ffy:yi,ify:wi,ing:"Gerund",ize:wi,ibe:wi,lar:yi,mum:yi,nes:ki,nny:yi,ous:yi,que:yi,ger:"Noun",ber:"Noun",rol:Pi,sis:Pi,ogy:Pi,oid:Pi,ian:Pi,zes:ki,eld:Ai,ken:Ci,ven:Ci,ten:Ci,ect:wi,ict:wi,ign:wi,ful:yi,bal:yi,ton:"Noun"},{amed:Ai,aped:Ai,ched:Ai,lked:Ai,rked:Ai,reed:Ai,nded:Ai,mned:yi,cted:Ai,dged:Ai,ield:Pi,akis:xi,cede:wi,chuk:xi,czyk:xi,ects:ki,ends:Ii,enko:xi,ette:Pi,iary:Pi,wner:Pi,fies:ki,fore:Ni,gate:wi,gone:yi,ices:ji,ints:ji,ruct:wi,ines:ji,ions:ji,ners:ji,pers:ji,lers:ji,less:yi,llen:yi,made:yi,nsen:xi,oses:ki,ould:"Modal",some:yi,sson:xi,ians:ji,tion:Pi,tage:"Noun",ique:Pi,tive:yi,tors:"Noun",vice:Pi,lier:Pi,fier:Pi,wned:Ai,gent:Pi,tist:"Actor",pist:"Actor",rist:"Actor",mist:"Actor",yist:"Actor",vist:"Actor",ists:"Actor",lite:Pi,site:Pi,rite:Pi,mite:Pi,bite:Pi,mate:Pi,date:Pi,ndal:Pi,vent:Pi,uist:"Actor",gist:"Actor",note:Pi,cide:Pi,ence:Pi,wide:yi,vide:wi,ract:wi,duce:wi,pose:wi,eive:wi,lyze:wi,lyse:wi,iant:yi,nary:yi,ghty:yi,uent:yi,erer:"Actor",bury:Ei,dorf:"Noun",esty:"Noun",wych:Ei,dale:Ei,folk:Ei},{elist:"Actor",holic:Pi,phite:Pi,tized:Ai,urned:Ai,eased:Ai,ances:ji,bound:yi,ettes:ji,fully:Ni,ishes:ki,ities:ji,marek:xi,nssen:xi,ology:"Noun",osome:Pi,tment:Pi,ports:ji,rough:yi,tches:ki,tieth:"Ordinal",tures:ji,wards:Ni,where:Ni,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:Pi,scent:Pi,onist:"Actor",anist:"Actor",alist:"Actor",olist:"Actor",icist:"Actor",ounce:wi,iable:yi,borne:yi,gnant:yi,inant:yi,igent:yi,atory:yi,rient:Pi,dient:Pi,maker:"Actor",burgh:Ei,mouth:Ei,ceter:Ei,ville:Ei,worth:"Noun"},{auskas:xi,parent:Pi,cedent:Pi,ionary:Pi,cklist:Pi,keeper:"Actor",logist:"Actor",teenth:"Value",worker:"Actor",master:"Actor",writer:"Actor",brough:Ei,cester:Ei},{logists:"Actor",opoulos:xi,borough:Ei,sdottir:xi}];const Di="Adjective";var Oi=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Di,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Di,tele:"Noun","pro-":Di,"mis-":"Verb","dis-":"Verb","pre-":Di},{anglo:"Noun",centi:"Noun",ethno:"Noun",ferro:"Noun",grand:"Noun",hepta:"Noun",hydro:"Noun",intro:"Noun",macro:"Noun",micro:"Noun",milli:"Noun",nitro:"Noun",penta:"Noun",quasi:Di,radio:"Noun",tetra:"Noun","omni-":Di,"post-":Di},{pseudo:Di,"extra-":Di,"hyper-":Di,"inter-":Di,"intra-":Di,"deca-":Di},{electro:"Noun"}];const Fi="Adjective",Vi="Infinitive",Gi="PresentTense",Bi="Singular",zi="PastTense",Hi="Expression",Li="LastName";var $i={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Li],[/.[^aeiou]ica$/,Bi,"harmonica"],[/^([hyj]a+)+$/,Hi,"haha"]],c:[[/.[^aeiou]ic$/,Fi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,zi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,zi,"rammed"],[/.[aeiou][sg]hed$/,zi,"gushed"],[/.[aeiou]red$/,zi,"hired"],[/.[aeiou]r?ried$/,zi,"hurried"],[/[^aeiou]ard$/,Bi,"steward"],[/[aeiou][^aeiou]id$/,Fi,""],[/.[vrl]id$/,Fi,"livid"],[/..led$/,zi,"hurled"],[/.[iao]sed$/,zi,""],[/[aeiou]n?[cs]ed$/,zi,""],[/[aeiou][rl]?[mnf]ed$/,zi,""],[/[aeiou][ns]?c?ked$/,zi,"bunked"],[/[aeiou]gned$/,zi],[/[aeiou][nl]?ged$/,zi],[/.[tdbwxyz]ed$/,zi],[/[^aeiou][aeiou][tvx]ed$/,zi],[/.[cdflmnprstv]ied$/,zi,"emptied"]],e:[[/.[lnr]ize$/,Vi,"antagonize"],[/.[^aeiou]ise$/,Vi,"antagonise"],[/.[aeiou]te$/,Vi,"bite"],[/.[^aeiou][ai]ble$/,Fi,"fixable"],[/.[^aeiou]eable$/,Fi,"maleable"],[/.[ts]ive$/,Fi,"festive"],[/[a-z]-like$/,Fi,"woman-like"]],h:[[/.[^aeiouf]ish$/,Fi,"cornish"],[/.v[iy]ch$/,Li,"..ovich"],[/^ug?h+$/,Hi,"ughh"],[/^uh[ -]?oh$/,Hi,"uhoh"],[/[a-z]-ish$/,Fi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Li,"polish-male"]],k:[[/^(k){2}$/,Hi,"kkkk"]],l:[[/.[gl]ial$/,Fi,"familial"],[/.[^aeiou]ful$/,Fi,"fitful"],[/.[nrtumcd]al$/,Fi,"natal"],[/.[^aeiou][ei]al$/,Fi,"familial"]],m:[[/.[^aeiou]ium$/,Bi,"magnesium"],[/[^aeiou]ism$/,Bi,"schism"],[/^[hu]m+$/,Hi,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Fi,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Hi,"noooo"],[/^(yo)+$/,Hi,"yoo"],[/^wo{2,}[pt]?$/,Hi,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Bi],[/[^i]fer$/,Vi],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Fi],[/[aeiou].*ist$/,Fi],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,Gi],[/.[rln]ates$/,Gi],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,Bi],[/.[aeiou]sks$/,Gi],[/.[aeiou]kes$/,Gi],[/[aeiou][^aeiou]is$/,Bi],[/[a-z]'s$/,"Noun"],[/^yes+$/,Hi]],v:[[/.[^aeiou][ai][kln]ov$/,Li]],y:[[/.[cts]hy$/,Fi],[/.[st]ty$/,Fi],[/.[tnl]ary$/,Fi],[/.[oe]ry$/,Bi],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Fi],[/...lly$/,"Adverb"],[/.[gk]y$/,Fi],[/[bszmp]{2}y$/,Fi],[/.[ai]my$/,Fi],[/[ea]{2}zy$/,Fi],[/.[^aeiou]ity$/,Bi]]};const Si="Verb",Mi="Noun";var Ji={leftTags:[["Adjective",Mi],["Possessive",Mi],["Determiner",Mi],["Adverb",Si],["Pronoun",Si],["Value",Mi],["Ordinal",Mi],["Modal",Si],["Superlative",Mi],["Demonym",Mi],["Honorific","Person"]],leftWords:[["i",Si],["first",Mi],["it",Si],["there",Si],["not",Si],["because",Mi],["if",Mi],["but",Mi],["who",Si],["this",Mi],["his",Mi],["when",Mi],["you",Si],["very","Adjective"],["old",Mi],["never",Si],["before",Mi],["a",Mi],["the",Mi],["been",Si]],rightTags:[["Copula",Mi],["PastTense",Mi],["Conjunction",Mi],["Modal",Mi]],rightWords:[["there",Si],["me",Si],["man","Adjective"],["him",Si],["it",Si],["were",Mi],["took",Mi],["himself",Si],["went",Mi],["who",Mi],["jr","Person"]]},Wi={fwd:"3:ser,ier¦1er:h,t,f,l,n¦1r:e¦2er:ss,or,om",both:"3er:ver,ear,alm¦3ner:hin¦3ter:lat¦2mer:im¦2er:ng,rm,mb¦2ber:ib¦2ger:ig¦1er:w,p,k,d¦ier:y",rev:"1:tter,yer¦2:uer,ver,ffer,oner,eler,ller,iler,ster,cer,uler,sher,ener,gher,aner,adder,nter,eter,rter,hter,rner,fter¦3:oser,ooler,eafer,user,airer,bler,maler,tler,eater,uger,rger,ainer,urer,ealer,icher,pler,emner,icter,nser,iser¦4:arser,viner,ucher,rosser,somer,ndomer,moter,oother,uarer,hiter¦5:nuiner,esser,emier¦ar:urther",ex:"worse:bad¦better:good¦4er:fair,gray,poor¦1urther:far¦3ter:fat,hot,wet¦3er:lay,shy,fun¦3der:mad,sad¦4der:glad¦:¦4r:cute,dire,fake,fine,free,lame,late,pale,rare,ripe,rude,safe,sore,tame,wide¦5r:eerie,stale"},qi={fwd:"1:nning,tting,rring,pping,eing,mming,gging,dding,bbing,kking¦2:eking,oling,eling,eming¦3:velling,siting,uiting,fiting,loting,geting,ialing¦4:graming",both:"1:iing,fing,xing,ying,oing,hing,wing¦2:tzing,rping,izzing,bting,mning,sping,wling,rling,wding,rbing,uping,lming,wning,mping,oning,lting,mbing,lking,fting,hting,sking,gning,pting,cking,ening,nking,iling,eping,ering,rting,rming,cting,lping,ssing,nting,nding,lding,sting,rning,rding,rking¦3:yaking,uaking,oaning,auling,valing,aiding,naping,euring,tolling,uzzing,ganing,haning,ualing,halling,iasing,auding,ieting,ceting,ouling,voring,ralling,ooding,garing,joring,ooping,oaking,roring,oaming,uelling,nelling,eaping,eeting,ooting,ooming,xiting,keting,ooking,ulling,airing,oaring,biting,outing,oiting,eeding,naling,eaming,oading,earing,delling,ouring,eaking,aiming,illing,oining,eaning,onging,ealing,aining,eading¦4:melling,aboring,ivoting,weating,dfilling,onoring,eriting,imiting,heating,tialling,rgining,otoring,linging,winging,lleting,louding,spelling,looring,mpelling,xcelling,feating,opelling,choring,welling,ymaking,ctoring,calling,peating,iloring,laiting,utoring,uditing,nmaking,mmaking,loating,iciting,waiting,mbating,voiding,otalling,nsoring,nselling,ocusing,itoring,eloping¦5:rselling,umpeting,atrolling,treating,tselling,rpreting,pringing,ummeting,ossoming,elmaking,eselling,rediting,defining,totyping,rfeiting,ntrolling¦5e:chmaking,orsaking,severing,erouting,ecreting,ephoning,uthoring,reathing,pediting,erfering,eotyping,fringing,entoring,ombining,ompeting¦4e:emaking,eething,dmiring,chuting,xciting,rseding,scoping,edoring,pinging,lunging,agining,craping,pleting,eleting,nciting,nfining,ncoding,tponing,ecoding,writing,esaling,gnoring,evoting,mpeding,dhering,mpiling,storing,nviting,ploring¦3e:tining,wining,nuring,ruling,haling,ceding,xuding,rining,nuting,caring,miling,riding,hoking,piring,lading,laking,curing,uading,noting,taping,futing,paring,raking,vening,loding,siring,guring,vading,voking,niting,laning,coring,caping,luting,muting,ruding,ciding,juring,laming,caling,hining,uoting,liding,ciling,duling,tuting,puting,cuting,laring,uiding,tiring,turing,siding,rading,enging,haping,buting,lining,taking,anging,haring,uiring,coming,mining,moting,suring,viding,luding¦2e:tring,zling,uging,oging,gling,iging,vring,fling,lging,iping,obing,psing,pling,ubing,cling,dling,wsing,iking,rsing,dging,kling,ysing,tling,rging,eging,nsing,uning,osing,uming,using,ibing,bling,aging,ising,asing,ating¦2ie:rlying¦1e:zing,uing,cing,ving",rev:"ying:ie¦1ing:se,ke,te,we,ne,re,de,pe,me,le,c,he¦2ing:ll,ng,dd,ee,ye,oe,or,rg,us¦2ning:un¦2ging:og,ag,ug,ig,eg¦2ming:um¦2ping:ip¦2bing:ub,ab,eb,ob¦3ning:lan,can,hin,pin,win¦3ring:cur,lur,tir,tar,pur,car¦3ing:eat,dit,ool,eel,oat,eem,lel¦3ping:rop,rap,wap,hop,lap,cap¦3ming:tem,wim,rim,kim¦3ting:mat,cut,pot,lit,nit,hat,set,pit,rot¦3ding:hed,bed,bid,red¦3king:rek¦3bing:rib¦3ling:pel¦4ning:egin¦4ing:isit,ruit,ilot,nsit,dget,rkel,rcel¦4ring:efer,nfer¦4ling:abel,evel,ncil,ivel¦4ting:rmit,mmit,ysit,dmit,emit,bmit,tfit,gret,llot¦5ing:arget,posit,rofit¦5ring:nsfer¦5ting:nsmit,orget,cquit¦5ling:ancel,istil",ex:"3:adding,eating,aiming,aiding,airing,outing,gassing,setting,getting,putting,cutting,winning,sitting,betting,mapping,tapping,letting,bidding,hitting,tanning,netting,popping,fitting,capping,lapping,barring,banning,vetting,topping,rotting,potting,wetting,pitting,budding,hemming,pinning,jetting,kidding,padding,podding,wedding,bedding,donning,warring,penning,gutting,cueing,wadding,petting,napping,matting,tinning¦4:selling,falling,calling,waiting,editing,telling,rolling,heating,boating,hanging,beating,coating,singing,mooring,tolling,felling,polling,discing,seating,voiding,gelling,yelling,seeking,stopping,spanning,stepping,emitting,quitting,dialing,omitting,plotting,clotting,shutting,skinning,slotting,abutting,cramming¦5:bringing,treating,labelling,spelling,stalling,trolling,expelling,wringing,deterring,singeing,befitting,refitting¦6:enrolling,cancelling,distilling,scrolling,strolling,caucusing,travelling¦7:installing,stencilling,recharging,overeating,benefiting,unraveling,programing¦9:reprogramming¦is:being¦2e:using,aging,owing¦3e:making,taking,coming,noting,hiring,filing,coding,citing,doping,baking,coping,hoping,lading,caring,naming,voting,riding,mining,curing,lining,ruling,typing,boring,dining,firing,hiding,piling,taping,waning,baling,boning,faring,honing,luring,timing,wading,fading,biting,zoning,daring,waking,gaming,raking,ceding,tiring,coking,wining,joking,paring,gaping,poking,pining,coring,liming,toting,roping,wiring,aching¦4e:writing,storing,eroding,framing,smoking,tasting,wasting,phoning,shaking,shading,abiding,pasting,priming,shoring,sloping,withing¦5e:defining,refining,enduring,renaming,swathing,fringing,reciting¦1ie:dying,tying,lying,vying¦7e:sunbathing¦10e:recordkeeping"},Ki={fwd:"1:mt¦2:llen¦3:iven,aken¦:ne¦y:in",both:"1:wn¦2:me,aten¦3:seen,bidden,isen¦4:roven,asten¦3l:pilt¦3d:uilt¦2e:itten¦1im:wum¦1eak:poken¦1ine:hone¦1ose:osen¦1in:gun¦1ake:woken¦ear:orn¦eal:olen¦eeze:ozen¦et:otten¦ink:unk¦ing:ung",rev:"2:un¦oken:eak¦ought:eek¦oven:eave¦1ne:o¦1own:ly¦1den:de¦1in:ay¦2t:am¦2n:ee¦3en:all¦4n:rive,sake,take¦5n:rgive",ex:"2:been¦3:seen,run¦4:given,taken¦5:shaken¦2eak:broken¦1ive:dove¦2y:flown¦3e:hidden,ridden¦1eek:sought¦1ake:woken¦1eave:woven"},Ri={fwd:"1:oes¦1ve:as",both:"1:xes¦2:zzes,ches,shes,sses¦2y:llies,plies¦1y:bies,ties,vies,nies,pies,dies,ries,fies¦:s",rev:"1ies:ly¦2es:us,go¦2ses:as¦3es:cho",ex:"2:does,goes¦3:gasses¦5:focuses¦is:are¦3y:relies¦2y:flies¦2ve:has"},Ui={fwd:"1st:e¦1est:l,m,f,s¦1iest:cey¦2est:or,ir¦3est:ver",both:"4:east¦5:hwest¦5lest:erful¦4est:weet,lgar,tter,oung¦4most:uter¦3est:ger,der,rey,iet,ong,ear¦3test:lat¦3most:ner¦2est:pt,ft,nt,ct,rt,ht¦2test:it¦2gest:ig¦1est:b,k,n,p,h,d,w¦iest:y",rev:"1:ttest,nnest,yest¦2:sest,stest,rmest,cest,vest,lmest,olest,ilest,ulest,ssest,imest,uest¦3:rgest,eatest,oorest,plest,allest,urest,iefest,uelest,blest,ugest,amest,yalest,ealest,illest,tlest,itest¦4:cerest,eriest,somest,rmalest,ndomest,motest,uarest,tiffest¦5:leverest,rangest¦ar:urthest¦3ey:riciest",ex:"best:good¦worst:bad¦5est:great¦4est:fast,full,fair,dull¦3test:hot,wet,fat¦4nest:thin¦1urthest:far¦3est:gay,shy,ill¦4test:neat¦4st:late,wide,fine,safe,cute,fake,pale,rare,rude,sore,ripe,dire¦6st:severe"},Qi={fwd:"1:tistic,eable,lful,sful,ting,tty¦2:onate,rtable,geous,ced,seful,ctful¦3:ortive,ented¦arity:ear¦y:etic¦fulness:begone¦1ity:re¦1y:tiful,gic¦2ity:ile,imous,ilous,ime¦2ion:ated¦2eness:iving¦2y:trious¦2ation:iring¦2tion:vant¦3ion:ect¦3ce:mant,mantic¦3tion:irable¦3y:est,estic¦3m:mistic,listic¦3ess:ning¦4n:utious¦4on:rative,native,vative,ective¦4ce:erant",both:"1:king,wing¦2:alous,ltuous,oyful,rdous¦3:gorous,ectable,werful,amatic¦4:oised,usical,agical,raceful,ocused,lined,ightful¦5ness:stful,lding,itous,nuous,ulous,otous,nable,gious,ayful,rvous,ntous,lsive,peful,entle,ciful,osive,leful,isive,ncise,reful,mious¦5ty:ivacious¦5ties:ubtle¦5ce:ilient,adiant,atient¦5cy:icient¦5sm:gmatic¦5on:sessive,dictive¦5ity:pular,sonal,eative,entic¦5sity:uminous¦5ism:conic¦5nce:mperate¦5ility:mitable¦5ment:xcited¦5n:bitious¦4cy:brant,etent,curate¦4ility:erable,acable,icable,ptable¦4ty:nacious,aive,oyal,dacious¦4n:icious¦4ce:vient,erent,stent,ndent,dient,quent,ident¦4ness:adic,ound,hing,pant,sant,oing,oist,tute¦4icity:imple¦4ment:fined,mused¦4ism:otic¦4ry:dantic¦4ity:tund,eral¦4edness:hand¦4on:uitive¦4lity:pitable¦4sm:eroic,namic¦4sity:nerous¦3th:arm¦3ility:pable,bable,dable,iable¦3cy:hant,nant,icate¦3ness:red,hin,nse,ict,iet,ite,oud,ind,ied,rce¦3ion:lute¦3ity:ual,gal,volous,ial¦3ce:sent,fensive,lant,gant,gent,lent,dant¦3on:asive¦3m:fist,sistic,iastic¦3y:terious,xurious,ronic,tastic¦3ur:amorous¦3e:tunate¦3ation:mined¦3sy:rteous¦3ty:ain¦3ry:ave¦3ment:azed¦2ness:de,on,ue,rn,ur,ft,rp,pe,om,ge,rd,od,ay,ss,er,ll,oy,ap,ht,ld,ad,rt¦2inousness:umous¦2ity:neous,ene,id,ane¦2cy:bate,late¦2ation:ized¦2ility:oble,ible¦2y:odic¦2e:oving,aring¦2s:ost¦2itude:pt¦2dom:ee¦2ance:uring¦2tion:reet¦2ion:oted¦2sion:ending¦2liness:an¦2or:rdent¦1th:ung¦1e:uable¦1ness:w,h,k,f¦1ility:mble¦1or:vent¦1ement:ging¦1tiquity:ncient¦1ment:hed¦verty:or¦ength:ong¦eat:ot¦pth:ep¦iness:y",rev:"",ex:"5:forceful,humorous¦8:charismatic¦13:understanding¦5ity:active¦11ness:adventurous,inquisitive,resourceful¦8on:aggressive,automatic,perceptive¦7ness:amorous,fatuous,furtive,ominous,serious¦5ness:ample,sweet¦12ness:apprehensive,cantankerous,contemptuous,ostentatious¦13ness:argumentative,conscientious¦9ness:assertive,facetious,imperious,inventive,oblivious,rapacious,receptive,seditious,whimsical¦10ness:attractive,expressive,impressive,loquacious,salubrious,thoughtful¦3edom:boring¦4ness:calm,fast,keen,tame¦8ness:cheerful,gracious,specious,spurious,timorous,unctuous¦5sity:curious¦9ion:deliberate¦8ion:desperate¦6e:expensive¦7ce:fragrant¦3y:furious¦9ility:ineluctable¦6ism:mystical¦8ity:physical,proactive,sensitive,vertical¦5cy:pliant¦7ity:positive¦9ity:practical¦12ism:professional¦6ce:prudent¦3ness:red¦6cy:vagrant¦3dom:wise"};var _i=function(e="",t={}){let n=function(e,t={}){return t.hasOwnProperty(e)?t[e]:null}(e,t.ex);return n=n||function(e,t=[]){for(let n=0;n=1;r-=1){let a=e.length-r,o=e.substring(a,e.length);if(!0===t.hasOwnProperty(o))return e.slice(0,a)+t[o];if(!0===n.hasOwnProperty(o))return e.slice(0,a)+n[o]}return t.hasOwnProperty("")?e+t[""]:n.hasOwnProperty("")?e+n[""]:null}(e,t.fwd,t.both),n=n||e,n};const Zi=function(e){return Object.entries(e).reduce(((e,t)=>(e[t[1]]=t[0],e)),{})};var Xi=function(e={}){return{reversed:!0,both:Zi(e.both),ex:Zi(e.ex),fwd:e.rev||{}}};const Yi=/^([0-9]+)/,es=function(e){let t=function(e){let t={};return e.split("¦").forEach((e=>{let[n,r]=e.split(":");r=(r||"").split(","),r.forEach((e=>{t[e]=n}))})),t}(e);return Object.keys(t).reduce(((e,n)=>(e[n]=function(e="",t=""){let n=(t=String(t)).match(Yi);if(null===n)return t;let r=Number(n[1])||0;return e.substring(0,r)+t.replace(Yi,"")}(n,t[n]),e)),{})};var ts=function(e={}){return"string"==typeof e&&(e=JSON.parse(e)),e.fwd=es(e.fwd||""),e.both=es(e.both||""),e.rev=es(e.rev||""),e.ex=es(e.ex||""),e};const ns=ts({fwd:"1:tted,wed,gged,nned,een,rred,pped,yed,bbed,oed,dded,rd,s,wn,mmed¦2:eed,nded,et,hted,st,oled,ut,emed,eled,lded,ken,rt,nked,apt,ant,eped,eked¦3:eared,eat,eaded,nelled,ealt,eeded,ooted,eaked,eaned,eeted,mited,bid,uit,ead,uited,ealed,geted,velled¦4:ebuted,hined,taked,comed¦y:ied¦ome:ame¦ear:ore¦ind:ound¦ep:pt¦ink:ank,unk¦all:ell¦ee:aw¦ive:ave¦eeze:oze¦old:eld¦ave:ft¦ake:ook¦ing:ang¦ell:old¦ite:ote¦ide:ode¦ine:one¦in:un,on¦eal:ole¦im:am¦ie:ay¦and:ood¦1ise:rose¦1eak:roke¦1ing:rought,rung¦1ive:rove¦1id:bade¦1et:got¦1y:aid¦3e:lid¦3d:pent",both:"1:fed,xed,hed¦2:rped,lked,kied,lmed,lped,uped,bted,rbed,rked,wned,rled,mped,fted,mned,mbed,zzed,ened,cked,gned,lted,sked,ued,zed,nted,ered,rted,rmed,ced,sted,rned,ssed,rded,pted,ved,cted¦3:oomed,iped,oided,eiled,yped,taled,moned,yled,lit,kled,oaked,gled,naled,fled,outed,uined,oared,valled,koned,soned,aided,obed,ibed,meted,nicked,rored,micked,keted,vred,ooped,oaded,rited,aired,auled,filled,ouled,ooded,ceted,tolled,oited,bited,tled,vored,dled,eamed,nsed,rsed,sited,owded,pled,sored,rged,osed,oured,psed,oated,loned,aimed,illed,eured,tred,ioned,celled,bled,wsed,ooked,oiled,itzed,iked,iased,onged,ased,ailed,uned,umed,ained,auded,nulled,ysed,eged,ised,aged,oined,ated,used,dged,doned¦4:honed,tuted,pited,naked,miled,helled,haped,cored,caled,tired,peated,futed,ciled,called,tined,moted,filed,sided,poned,iloted,uaded,lleted,huted,ruled,cured,named,preted,voked,vaded,sured,pired,haled,peded,gined,nited,uided,ramed,feited,laked,gured,ctored,unged,loded,xpelled,cuted,caped,eloped,ralled,rined,coded,icited,vided,spelled,voted,mined,sired,noted,lined,nselled,luted,vened,jured,fided,puted,piled,pared,olored,cided,hoked,enged,tured,geoned,cotted,lamed,uiled,waited,udited,anged,luded,mired,uired,raded¦5:umpeted,ailored,rseded,quared,treated,eduled,ecited,rammed,eceded,atrolled,nitored,basted,nvited,rfered,itialled,ncited,gnored,truded,xcited,nrolled,namelled,plored,clared,redited,nfined,pleted,ompelled,llided,ircled,lcined,eathed,nefited,ibuted,lloted,dhered,cceded¦2aw:drew¦2ot:hot¦2ke:made¦2ow:hrew,grew¦2ose:hose¦2d:ilt¦2in:egan¦1go:rwent¦1ink:hought¦1ick:tuck¦1ike:ruck¦1eak:poke,nuck¦1it:pat¦1o:did¦1ow:new¦1el:elt¦1ing:lung¦1ake:woke¦ig:ug",rev:"3:rst,urt,set,ous,hed,hut,cut¦4:tbid¦5:dcast,eread,pread,erbid¦ought:uy,eek¦ung:ang¦1ied:ny,ly,dy,ry,fy,py,vy,by¦1pt:eep¦1ank:rink¦1ore:bear,wear¦1ave:give¦1oze:reeze¦1ound:rind¦1ook:take,hake¦1aw:see¦1old:sell¦1ote:rite¦1ole:teal¦1unk:tink¦1am:wim¦1ay:lie¦1ood:tand¦1eld:hold¦2d:he,ge,re,le,leed,ne,reed,be,ye,lee,pe¦2ed:dd,oy,or,ey,ho,gg,rr¦2ame:ecome,rcome¦2ped:ip¦2ged:ag,og,ug¦2bed:ub,ab,ib,ob¦2id:pay¦2ang:pring¦2ove:trive¦2med:um¦3ted:mit,hat,mat,lat,pot¦3ed:low,tow,und,ool,ond,eem,lay,dow,xit,eld,cus,ald,iew,bel,oan,del,uld,law,lel,eat,ray,ull,ank,fin,oam,oll,how,iek,tay,haw,ait¦3d:ste,ede,ode,ete,ree,ame,tee,oke,ote,ime¦3red:lur,cur,pur¦3ped:hop,rop,tep,top,rap¦3ded:bed,rod,kid¦3ade:orbid¦3led:uel¦3ned:lan,can,kin,pan,tun¦3med:rim¦4ted:quit,llot¦4ed:peal,cend,lend,rrow,rand,lean,mand,ceal,tend,fend,pear,anel,pand,reet,link,evel,imit,lead,mend,enew,cind,crew,head,pell,tall,well,rend,mell¦4led:nnel,qual¦4n:sake,trew¦4red:nfer,efer,sfer¦4ded:hred¦4ned:rpin¦5ed:ppend,light,epend,ndear,xceed,xpend,oceed,cruit,emind,cceed,spend,arget,hread,eight¦5led:ntrol,ravel¦5ped:erlap",ex:"2:been,upped¦3:added,aged,aided,aimed,aired,bid,died,dyed,egged,erred,eyed,fit,gassed,hit,lied,owed,pent,pied,tied,used,vied,banned,barred,bet,canned,capped,cut,donned,ended,feed,inked,jarred,let,manned,mapped,mowed,napped,netted,padded,panned,pitted,popped,potted,put,set,sewn,sowed,tanned,tapped,topped,vowed,weed¦4:ached,baked,baled,boned,bored,called,caned,cared,ceded,cited,coded,cored,cubed,cured,dared,dined,edited,exited,faked,fared,filed,fined,fired,fuelled,gamed,gelled,hired,hoped,joked,lined,loaned,mined,named,noted,piled,poked,polled,pored,pulled,reaped,roamed,rolled,ruled,seated,shed,sided,taped,timed,tolled,toned,voted,waited,walled,waned,winged,wired,zoned,banded,beat,brewed,cast,cost,dealt,feared,folded,footed,handed,headed,heard,knitted,landed,leaked,leapt,linked,meant,minded,molded,neared,needed,peaked,plodded,plotted,quit,read,rooted,sealed,seeded,seeped,shunned,skimmed,slammed,sparred,stemmed,stirred,suited,tended,thinned,twinned¦5:basted,cheated,equalled,eroded,exiled,focused,opined,pleated,primed,quoted,shared,shored,sloped,smoked,spelled,stalled,stored,swelled,tasted,treated,wasted,smelled,breaded,cleared,debuted,deterred,freaked,rebutted,speeded,staked¦6:anchored,defeated,defined,endured,impaled,propelled,refined,revered,strolled,recast,regretted,revealed,thrust,unfolded¦7:authored,combined,competed,conceded,controlled,entwined,excreted,installed,redefined,restored,welcomed¦8:expedited,infringed¦9:persevered,copyrighted¦10:intertwined¦eat:ate¦is:was¦go:went¦are:were¦3d:bent,lent,rent,sent¦3e:bit,fled,hid,lost¦3ed:bled,bred¦2ow:blew,grew¦1uy:bought¦2tch:caught¦1o:did¦1ive:dove,gave¦2aw:drew¦2ed:fed¦2y:flew,laid,paid,said¦1ight:fought¦1et:got¦2ve:had¦1ang:hung¦2ad:led¦2ght:lit¦2ke:made¦2et:met¦1un:ran¦1ise:rose¦1it:sat¦1eek:sought¦1each:taught¦1ake:woke,took¦1eave:wove¦2ise:arose¦1ear:bore,tore,wore¦1ind:bound,found,wound¦2eak:broke¦2ing:brought,wrung¦1ome:came¦2ive:drove¦1all:fell¦4et:forgot¦1old:held¦2ave:left¦1ing:rang,sang¦1ide:rode¦1ink:sank¦1ee:saw¦2ine:shone¦4e:slid¦1ell:sold,told¦4d:spent¦2in:spun¦1in:won"}),rs=ts(Ri),as=ts(qi),os=ts(Ki),is=Xi(ns),ss=Xi(rs),ls=Xi(as),us=Xi(os),cs=ts(Wi),hs=ts(Ui);var ds={fromPast:ns,fromPresent:rs,fromGerund:as,fromParticiple:os,toPast:is,toPresent:ss,toGerund:ls,toParticiple:us,toComparative:cs,toSuperlative:hs,fromComparative:Xi(cs),fromSuperlative:Xi(hs),adjToNoun:ts(Qi)},gs=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),ms=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..ase)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]];var ps=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(vs[t].forEach((n=>e[n]=t)),e)),{});var bs=vs;var ys=function(e){let t=e.substring(e.length-3);if(!0===bs.hasOwnProperty(t))return bs[t];let n=e.substring(e.length-2);return!0===bs.hasOwnProperty(n)?bs[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const ws={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var ks=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=ys(e)),ws.hasOwnProperty(e))c=ws[e];else if("Participle"===n)c=_i(l,i);else if("PastTense"===n)c=_i(l,r);else if("PresentTense"===n)c=_i(l,a);else{if("Gerund"!==n)return e;c=_i(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var Ps=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:_i(i,n),PresentTense:_i(i,r),Gerund:_i(i,a),FutureTense:"will "+e},u=_i(i,o);if(u!==e&&u!==l.PastTense){let n=t.one.lexicon||{};"Participle"!==n[u]&&"Adjective"!==n[u]||("play"===e&&(u="played"),l.Participle=u)}return s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l};var As={toInfinitive:ks,conjugate:Ps,all:function(e,t){let n=Ps(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}};const Ns=function(e,t){const n=t.two.models.toSuperlative;return _i(e,n)},js=function(e,t){const n=t.two.models.toComparative;return _i(e,n)};var Is=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a)){return e.slice(0,n-r)+t[a.length][a]}}return null};const xs="ically",Es=new Set(["analyt"+xs,"chem"+xs,"class"+xs,"clin"+xs,"crit"+xs,"ecolog"+xs,"electr"+xs,"empir"+xs,"frant"+xs,"grammat"+xs,"ident"+xs,"ideolog"+xs,"log"+xs,"mag"+xs,"mathemat"+xs,"mechan"+xs,"med"+xs,"method"+xs,"method"+xs,"mus"+xs,"phys"+xs,"phys"+xs,"polit"+xs,"pract"+xs,"rad"+xs,"satir"+xs,"statist"+xs,"techn"+xs,"technolog"+xs,"theoret"+xs,"typ"+xs,"vert"+xs,"whims"+xs]),Cs=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Ts=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ds={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"quick",superbly:"superb",cynically:"cynical",well:"good"};const Os=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Fs={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Vs=function(e){if(Fs.hasOwnProperty(e))return Fs[e];let t=Is(e,Os);return t||(t=e+"ly"),t};var Gs={toSuperlative:Ns,toComparative:js,toAdverb:Vs,toNoun:function(e,t){const n=t.two.models.adjToNoun;return _i(e,n)},fromAdverb:function(e){return e.endsWith("ly")?Es.has(e)?e.replace(/ically/,"ical"):Ts.has(e)?null:Ds.hasOwnProperty(e)?Ds[e]:Is(e,Cs)||e:null},fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return _i(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return _i(e,n)},all:function(e,t){let n=[e];return n.push(Ns(e,t)),n.push(js(e,t)),n.push(Vs(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},Bs={noun:fs,verb:As,adjective:Gs},zs={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Actor:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||["Plural","Actor"])},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,r);delete l.FutureTense,Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]},Place:(e,t)=>{t[e]=["Place","ProperNoun"]},Region:(e,t)=>{t[e]=["Region","ProperNoun"]}};var Hs=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===zs.hasOwnProperty(i)&&zs[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}};var Ls=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]){let n=e[t-1];if(n.tags.has("Date")||a.has(n.normal))return!1;if(n.tags.has("Adjective")||r.tags.has("Adjective"))return!1}let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!Ms.find((t=>e.endsWith(t)))},Ws={two:{quickSplit:Ls,expandLexicon:Hs,transform:Bs,looksPlural:Js}};var qs=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};let Ks={one:{lexicon:{}},two:{models:ds}};const Rs={"Actor|Verb":"Actor","Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"FirstName","Person|Place":"Person","Person|Adj":"Comparative","Plural|Verb":"Plural","Unit|Noun":"Noun"},Us=function(e,t){const n={model:t,methods:Ws};let{lex:r,_multi:a}=Ws.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},Qs=function(e,t,n){let r=Ps(e,Ks);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},_s=function(e,t,n){let r=Ns(e,n);t[r]=t[r]||"Superlative";let a=js(e,n);t[a]=t[a]||"Comparative"},Zs=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=Rs[o],"Noun|Verb"!==o&&"Person|Verb"!==o&&"Actor|Verb"!==o||Qs(a,r,!1),"Adj|Present"===o&&(Qs(a,r,!0),_s(a,r,t)),"Person|Adj"===o&&_s(a,r,t),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=ks(a,Ks,"Gerund");r[e]||(n[e]="Infinitive")}if("Noun|Gerund"!==o&&"Adj|Noun"!==o&&"Person|Noun"!==o||function(e,t,n){let r=Oo(e,n);t[r]=t[r]||"Plural"}(a,r,t),"Adj|Past"===o){let e=ks(a,Ks,"PastTense");r[e]||(n[e]="Infinitive")}})),t=Us(n,t)};var Xs=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=Us(e.one.lexicon,e)).one.lexicon,e),e=Zs(e.two.switches,e),e=qs(e)};let Ys={one:{_multiCache:{},lexicon:Vo},two:{irregularPlurals:wo,models:ds,suffixPatterns:Ti,prefixPatterns:Oi,endsWith:$i,neighbours:Ji,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z°]{1,4})$/,"NumericValue","9km"]],switches:Go,clues:bi,uncountable:{},orgWords:gs}};Ys=Xs(Ys);var el=Ys;var tl=function(e,t,n,r){const a=r.methods.one.setTag;if(0===t&&e.length>=3){const t=/:/;if(e[0].post.match(t)){let t=e[1];if(t.tags.has("Value")||t.tags.has("Email")||t.tags.has("PhoneNumber"))return;a([e[0]],"Expression",r,null,"2-punct-colon''")}}};var nl=function(e,t,n,r){const a=r.methods.one.setTag;"-"===e[t].post&&e[t+1]&&a([e[t],e[t+1]],"Hyphenated",r,null,"1-punct-hyphen''")};const rl=/^(under|over|mis|re|un|dis|semi)-?/;var al=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(rl.test(a.normal)){let e=a.normal.replace(rl,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var ol=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,"[33m[3m"+a+"[0m").padEnd(24)} [32m→[0m #${t.padEnd(22)} ${(e=>"[3m"+e+"[0m")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const il=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific","Month"];var sl=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(Js(e.normal)?ol(e,"Plural","3-plural-guess"):ol(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=ys(e.normal);t&&ol(e,t,"3-verb-tense-guess")}}(r)};const ll=/^\p{Lu}[\p{Ll}'’]/u,ul=/[0-9]/,cl=["Date","Month","WeekDay","Unit","Expression"],hl=/[IVX]/,dl=/^[IVXLCDM]{2,}$/,gl=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ml={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var pl=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===ll.test(o)&&!1===ul.test(o)?cl.find((e=>r.tags.has(e)))||r.pre.match(/["']$/)||"the"===r.normal?null:(sl(e,t,n),r.tags.has("Noun")||r.tags.clear(),ol(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&dl.test(o)&&hl.test(o)&&gl.test(o)&&!ml[r.normal]?(ol(r,"RomanNumeral","2-xvii"),!0):null};const fl=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r)){return t[r.length][r]}}return null};var vl=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=fl(r.normal,n.two.suffixPatterns);if(null!==e)return ol(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=fl(r.implicit,n.two.suffixPatterns),null!==e))return ol(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const bl=/['‘’‛‵′`´]/,yl=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return ol(r,e,"2-prefix"),r.confidence=.5,!0}return null};const Pl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Al=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Pl.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},Nl=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},jl=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Il=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(Al(a)||Al(o))return ol(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Nl(a)||Nl(o))return ol(n,"Year","2-tagYear-close");if(jl(e[t-2])||jl(e[t+2]))return ol(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return ol(n,"Year","2-tagYear-noun")}}}return null};var xl=function(e,t,n,r){const a=r.methods.one.setTag,o=e[t],i=["PastTense","PresentTense","Auxiliary","Modal","Particle"];if(o.tags.has("Verb")){i.find((e=>o.tags.has(e)))||a([o],"Infinitive",r,null,"2-verb-type''")}};const El=/^[A-Z]('s|,)?$/,Cl=/^[A-Z-]+$/,Tl=/^[A-Z]+s$/,Dl=/([A-Z]\.)+[A-Z]?,?$/,Ol=/[A-Z]{2,}('s|,)?$/,Fl=/([a-z]\.)+[a-z]\.?$/,Vl={I:!0,A:!0},Gl={la:!0,ny:!0,us:!0,dc:!0,gb:!0};var Bl=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;if(!1===Cl.test(n)){if(!(n.length>3&&!0===Tl.test(n)))return!1;n=n.replace(/s$/,"")}return!(n.length>5||Vl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Dl.test(n)&&!0!==Fl.test(n)&&!0!==El.test(n)&&!0!==Ol.test(n))}(r,n)?(r.tags.clear(),ol(r,["Acronym","Noun"],"3-no-period-acronym"),!0===Gl[r.normal]&&ol(r,"Place","3-place-acronym"),!0===Tl.test(r.text)&&ol(r,"Plural","3-plural-acronym"),!0):!Vl.hasOwnProperty(r.text)&&El.test(r.text)?(r.tags.clear(),ol(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(ol(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Cl.test(r.text)&&r.text.length<=6?(ol(r,"Acronym","3-titlecase-acronym"),!0):null};const zl=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Hl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var Ll=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||zl(e[t-1],a),l=l||zl(e[t+1],o),l=l||Hl(e[t-1],r),l=l||Hl(e[t+1],i),l)return ol(s,l,"3-[neighbour]"),sl(e,t,n),e[t].confidence=.2,!0}return null};const $l=function(e,t,n){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||!(n||(r=e.text,!/^\p{Lu}[\p{Ll}'’]/u.test(r)))&&(0!==t||e.tags.has("Singular"))));var r};var Sl=function(e,t,n,r){const a=n.model.two.orgWords,o=n.methods.one.setTag;let i=e[t];if(!0===a[i.machine||i.normal]&&$l(e[t-1],t-1,r)){o([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&$l(e[a],a,r);a-=1)o([e[a]],"Organization",n,null,"3-[org-word]")}return null};var Ml=function(e,t,n){let r=!1,a=e[t].tags;(0===a.size||1===a.size&&(a.has("Hyphenated")||a.has("HashTag")||a.has("Prefix")))&&(r=!0),r&&(ol(e[t],"Noun","3-[fallback]"),sl(e,t,n),e[t].confidence=.1)};const Jl=/^[A-Z][a-z]/,Wl=(e,t)=>e[t].tags.has("ProperNoun")&&Jl.test(e[t].text)?"Noun":null,ql=(e,t,n)=>0!==t||e[1]?null:n,Kl={"Adj|Gerund":(e,t)=>Wl(e,t),"Adj|Noun":(e,t)=>Wl(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Actor|Verb":(e,t)=>Wl(e,t),"Adj|Past":(e,t)=>Wl(e,t),"Adj|Present":(e,t)=>Wl(e,t),"Noun|Gerund":(e,t)=>Wl(e,t),"Noun|Verb":(e,t)=>t>0&&Wl(e,t)||ql(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Wl(e,t)||ql(e,t,"PresentTense")||function(e,t,n){return 0===t&&e.length>3?n:null}(e,t,"Plural"),"Person|Noun":(e,t)=>Wl(e,t),"Person|Verb":(e,t)=>0!==t?Wl(e,t):null,"Person|Adj":(e,t)=>0===t&&e.length>1||Wl(e,t)?"Person":null};var Rl=Kl;const Ul="undefined"!=typeof process&&process.env?process.env:self.env||{},Ql=/^(under|over|mis|re|un|dis|semi)-?/,_l=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&Ul.DEBUG_TAGS&&console.log(`\n [2m[3m ↓ - '${n}' [0m`),r},Zl=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&Ul.DEBUG_TAGS&&console.log(` [2m[3m ↓ - '${e.normal||e.implicit}' (#${a}) [0m`),a=t[a],a};var Xl=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(Ql.test(l)&&!o[l]&&(l=l.replace(Ql,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=_l(e[t+1],n.afterWords);return o=o||_l(e[t-1],n.beforeWords),o=o||Zl(e[t-1],n.beforeTags,a),o=o||Zl(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Rl[o]&&(u=Rl[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),sl(e,t,r)):Ul.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}};const Yl={there:!0,this:!0,it:!0,him:!0,her:!0,us:!0};var eu=function(e,t){const n=t.methods.one.setTag,r=t.model.one._multiCache||{};let a=e[0];if(("Noun|Verb"===a.switch||a.tags.has("Infinitive"))&&e.length>=2){if(e.length<4&&!Yl[e[1].normal])return;if(!a.tags.has("PhrasalVerb")&&r.hasOwnProperty(a.normal))return;if(e[1].tags.has("Noun")||e[1].tags.has("Determiner")){e.slice(1,3).some((e=>e.tags.has("Verb")))&&!a.tags.has("#PhrasalVerb")||n([a],"Imperative",t,null,"3-[imperative]")}}};const tu=function(e){if(e.filter((e=>!e.tags.has("ProperNoun"))).length<=3)return!1;const t=/^[a-z]/;return e.every((e=>!t.test(e.text)))},nu=function(e,t,n,r){for(let a=0;a{tl(e,0,t,n);for(let t=0;t{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var iu=function(e){const t=e.world,n=Object.keys(ou);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=bu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=vu};var wu=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const ku=/'/;var Pu=function(e,t){let n=e[t].normal.split(ku)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const Au=/'/;var Nu=function(e,t){let n=e[t].normal.split(Au)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>!(!e[t+1]||"better"!=e[t+1].normal)||e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]};var ju=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){if(e[t+1]&&"never"===e[t+1].normal)return["have"];let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if("i"===n.normal)return["am","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const Iu={that:!0,there:!0,let:!0,here:!0,everywhere:!0},xu={in:!0,by:!0,for:!0};var Eu=(e,t)=>{let n=e[t];if(Iu.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("QuestionWord"))return!1;if("he's"===n.normal||"she's"===n.normal)return!1;let r=e[t+1];if(!r)return!0;if("it's"===n.normal)return!!r.tags.has("#Noun");if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return"here"!==e&&"there"!==e&&"everywhere"!==e&&(!r.tags.has("Possessive")&&!(r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun")))}if(e[t-1]&&!0===xu[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const Cu=/'/,Tu=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Du={d:(e,t)=>Nu(e,t),t:(e,t)=>ju(e,t),s:(e,t,n)=>Eu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Pu(e,t)},Ou=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Fu={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===Cu.test(r[o].normal)&&([,i]=r[o].normal.split(Cu));let s=null;Du.hasOwnProperty(i)&&(s=Du[i](r,o,t)),s&&(s=Ou(s,e),wu(n,[a,o],s),Tu(n[a],e,o,s.length))}}))}},Vu={compute:Fu,api:yu,hooks:["contractionTwo"]};const Gu="(i|we|they)";let Bu=[].concat([{match:"(got|were|was|is|are|am) (#PastTense|#Participle)",tag:"Passive",reason:"got-walked"},{match:"(was|were|is|are|am) being (#PastTense|#Participle)",tag:"Passive",reason:"was-being"},{match:"(had|have|has) been (#PastTense|#Participle)",tag:"Passive",reason:"had-been"},{match:"will be being? (#PastTense|#Participle)",tag:"Passive",reason:"will-be-cleaned"},{match:"#Noun [(#PastTense|#Participle)] by (the|a) #Noun",group:0,tag:"Passive",reason:"suffered-by"}],[{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,notIf:"(all|even)",tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"[#Hyphenated (#Hyphenated && #PastTense)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"faith-based"},{match:"[#Hyphenated (#Hyphenated && #Gerund)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"self-driving"},{match:"[#PastTense (#Hyphenated && #PhrasalVerb)] (#Noun|#Conjunction)",group:0,tag:"Adjective",reason:"dammed-up"},{match:"(#Hyphenated && #Value) fold",tag:"Adjective",reason:"two-fold"},{match:"must (#Hyphenated && #Infinitive)",tag:"Adjective",reason:"must-win"},{match:"(#Hyphenated && #Infinitive) #Hyphenated",tag:"Adjective",notIf:"#PhrasalVerb",reason:"vacuum-sealed"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"},{match:"[(un|contra|extra|inter|intra|macro|micro|mid|mis|mono|multi|pre|sub|tri|ex)] #Adjective",group:0,tag:["Adjective","Prefix"],reason:"un-skilled"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"},{match:"#Copula [far too] #Adjective",group:0,tag:"Adverb",reason:"far-too"},{match:"#Copula [still] (in|#Gerund|#Adjective)",group:0,tag:"Adverb",reason:"was-still-walking"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"},{match:"#Gerund [#Gerund]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looking-annoying"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",notIf:"#Hyphenated",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"},{match:"no [#Adjective] #Modal",group:0,tag:"Noun",reason:"no-golden"},{match:"[brand #Gerund?] new",group:0,tag:"Adverb",reason:"brand-new"},{match:"(#Determiner|#Comparative|new|different) [kind]",group:0,tag:"Noun",reason:"some-kind"},{match:"#Possessive [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"her-favourite"},{match:"must && #Hyphenated .",tag:"Adjective",reason:"must-win"},{match:"#Determiner [#Adjective]$",tag:"Noun",notIf:"(this|that|#Comparative|#Superlative)",reason:"the-south"},{match:"(#Noun && #Hyphenated) (#Adjective && #Hyphenated)",tag:"Adjective",notIf:"(this|that|#Comparative|#Superlative)",reason:"company-wide"},{match:"#Determiner [#Adjective] (#Copula|#Determiner)",notIf:"(#Comparative|#Superlative)",group:0,tag:"Noun",reason:"the-poor"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,notIf:"(#Modal|#PhrasalVerb)",tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] #Comparative",group:0,tag:"Adverb",reason:"even-worse"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",notIf:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",notIf:"(#PhrasalVerb|#Copula)",reason:"charge-back"},{match:"#Verb [around]",group:0,tag:"Adverb",notIf:"#PhrasalVerb",reason:"send-around"},{match:"[later] #PresentTense",group:0,tag:"Adverb",reason:"later-say"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) (march|may) !#Infinitive",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"(the|any) [more]",group:0,tag:"Singular",reason:"more-noun"},{match:"[more] #Noun",group:0,tag:"Adjective",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Singular",reason:"bit-2"},{match:"a [must]",group:0,tag:"Singular",reason:"must-2"},{match:"(we|us) [all]",group:0,tag:"Noun",reason:"we all"},{match:"due to [#Verb]",group:0,tag:"Noun",reason:"due-to"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",notIf:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"(a|an|the) [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",notIf:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,notIf:"#Gerund",tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense #Particle?]",group:0,tag:"Noun",notIf:"(seem|appear|include|#Gerund|#Copula)",reason:"det-inf"},{match:"#Noun #Actor",tag:"Actor",notIf:"(#Person|#Pronoun)",reason:"thing-doer"},{match:"#Gerund #Actor",tag:"Actor",reason:"gerund-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"[#Noun+] #Actor",group:0,tag:"Actor",notIf:"(#Honorific|#Pronoun|#Possessive)",reason:"air-traffic-controller"},{match:"(urban|cardiac|cardiovascular|respiratory|medical|clinical|visual|graphic|creative|dental|exotic|fine|certified|registered|technical|virtual|professional|amateur|junior|senior|special|pharmaceutical|theoretical)+ #Noun? #Actor",tag:"Actor",reason:"fine-artist"},{match:"#Noun+ (coach|chef|king|engineer|fellow|personality|boy|girl|man|woman)",tag:"Actor",reason:"dance-coach"},{match:"chief . officer",tag:"Actor",reason:"chief-x-officer"},{match:"chief of #Noun+",tag:"Actor",reason:"chief-of-police"},{match:"senior? vice? president of #Noun+",tag:"Actor",reason:"president-of"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]$",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense #Particle?",notIf:"(#Gerund|her)",tag:"Noun",reason:"possessive-verb"},{match:"(my|our|their|her|his|its) [(#Plural && #Actor)] #Noun",tag:"Possessive",reason:"my-dads"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"},{match:"i #Verb [me] #Noun",group:0,tag:"Possessive",reason:"scottish-me"},{match:"[#PresentTense] (music|class|lesson|night|party|festival|league|ceremony)",group:0,tag:"Noun",reason:"dance-music"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,ifNo:"#Copula",tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",notIf:"(still|even|just)",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"#Copula [(#Gerund|#Activity)] #Copula",group:0,tag:"Gerund",reason:"are-doing-is"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"},{match:"#Singular for [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"noun-for-gerund"},{match:"#Comparative (for|at) [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"better-for-gerund"},{match:"#PresentTense the [#Gerund]",group:0,tag:"Noun",reason:"keep-the-touching"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner (only|further|just|more|backward) [#Infinitive]",group:0,tag:"Noun",reason:"the-only-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"#Plural on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb #Particle?]",notIf:"(#Copula|#Noun|sure|fun|up)",group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",notIf:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",notIf:"#Preposition",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",notIf:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"better",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",notIf:"(#Copula|better)",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"many-poses"},{match:"#Determiner #Adverb #Adjective [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Copula",reason:"very-big-dream"},{match:"from #Noun to [%Noun|Verb%]",group:0,tag:"Noun",reason:"start-to-finish"},{match:"(for|with|of) #Noun (and|or|not) [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Pronoun",reason:"for-food-and-gas"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #Particle #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense] of",group:0,notIf:"(one|1|#Copula|#Infinitive)",tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",notIf:"#Copula",reason:"our-full-support"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",notIf:"going",reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"},{match:"how to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"how-to-noun"},{match:"which [%Noun|Verb%] #Noun",group:0,tag:"Infinitive",reason:"which-boost-it"},{match:"#Gerund [%Plural|Verb%]",group:0,tag:"Plural",reason:"asking-questions"},{match:"(ready|available|difficult|hard|easy|made|attempt|try) to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"ready-to-noun"},{match:"(bring|went|go|drive|run|bike) to [%Noun|Verb%]",group:0,tag:"Noun",reason:"bring-to-noun"},{match:"#Modal #Noun [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"would-you-look"},{match:"#Copula just [#Infinitive]",group:0,tag:"Noun",reason:"is-just-spam"},{match:"^%Noun|Verb% %Plural|Verb%",tag:"Imperative #Plural",reason:"request-copies"},{match:"#Adjective #Plural and [%Plural|Verb%]",group:0,tag:"#Plural",reason:"pickles-and-drinks"},{match:"#Determiner #Year [#Verb]",group:0,tag:"Noun",reason:"the-1968-film"},{match:"#Determiner [#PhrasalVerb #Particle]",group:0,tag:"Noun",reason:"the-break-up"},{match:"#Determiner [%Adj|Noun%] #Noun",group:0,tag:"Adjective",notIf:"(#Pronoun|#Possessive|#ProperNoun)",reason:"the-individual-goals"},{match:"[%Noun|Verb%] or #Infinitive",group:0,tag:"Infinitive",reason:"work-or-prepare"},{match:"to #Infinitive [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|#Copula|help)",reason:"to-give-thanks"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"},{match:"^[#Value] (#Determiner|#Gerund)",group:0,tag:"Expression",unTag:"Value",reason:"numbered-list"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|brother|father|aunt|uncle|grandpa|grandfather|grandma) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",notIf:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",notIf:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(lieutenant|corporal|sergeant|captain|qeen|king|admiral|major|colonel|marshal|president|queen|king)+] #ProperNoun",group:0,tag:"Honorific",reason:"seargeant-john"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:["Honorific","Person"],reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",notIf:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"#Honorific #Actor",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) #Actor",tag:"Honorific",reason:"first lady"},{match:"#Person #RomanNumeral",tag:"Person",reason:"louis-IV"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun",ifNo:"#Actor"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"},{match:"(#FirstName && !#Possessive) [#Singular] #Verb",group:0,safe:!0,tag:"LastName",reason:"jack-layton"},{match:"^[#Singular] #Person #Verb",group:0,safe:!0,tag:"Person",reason:"sherwood-anderson"},{match:"(a|an) [#Person]$",group:0,unTag:"Person",reason:"a-warhol"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:"#Date",group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",notIf:"(come|gotten)",reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(have|had) read",tag:"Modal #PastTense",reason:"read-read"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"},{match:"as #Pronoun [please]",group:0,tag:"Infinitive",reason:"as-we-please"},{match:"[(co|mis|de|inter|intra|pre|re|un|out|under|over|counter)] #Verb",group:0,tag:["Verb","Prefix"],notIf:"(#Copula|#PhrasalVerb)",reason:"co-write"},{match:"#PastTense and [%Adj|Past%]",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"[%Adj|Past%] and #PastTense",group:0,tag:"PastTense",reason:"dressed-and-left"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Copula [#Adjective] (well|badly|quickly|slowly)",group:0,tag:"Verb",reason:"done-well"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"a-bit-confused"},{match:"not be [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"do-not-be-confused"},{match:"#Copula just [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"is-just-right"},{match:"as [#Infinitive] as",group:0,tag:"Adjective",reason:"as-pale-as"},{match:"[%Adj|Past%] and #Adjective",group:0,tag:"Adjective",reason:"faled-and-oppressive"},{match:"or [#PastTense] #Noun",group:0,tag:"Adjective",notIf:"(#Copula|#Pronoun)",reason:"or-heightened-emotion"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"[(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"},{match:"[(been|had|became|came)] #PastTense",group:0,notIf:"#PhrasalVerb",tag:"Auxiliary",reason:"been-told"},{match:"[(being|having|getting)] #Verb",group:0,tag:"Auxiliary",reason:"being-born"},{match:"[be] #Gerund",group:0,tag:"Auxiliary",reason:"be-walking"},{match:"[better] #PresentTense",group:0,tag:"Modal",notIf:"(#Copula|#Gerund)",reason:"better-go"},{match:"even better",tag:"Adverb #Comparative",reason:"even-better"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",notIf:"#Copula",tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"#Verb (up|down|in|on|for)$",tag:"PhrasalVerb #Particle",notIf:"#PhrasalVerb",reason:"come-down$"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Gu,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Gu,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Gu,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",notIf:"(so|such|rather|enough)",reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|a|an|any|each|every|some|more|with|on)",group:0,notIf:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me|there)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^[#Infinitive] (#Adjective|#Adverb)? and #Infinitive",group:0,tag:"Imperative",reason:"call-and-reserve"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^come #Infinitive",tag:"Imperative",notIf:"on",reason:"come-have"},{match:"^come and? #Infinitive",tag:"Imperative . Imperative",notIf:"#PhrasalVerb",reason:"come-and-have"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[(stay|be|keep)] #Adjective",group:0,tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"},{match:"[#Infinitive] what .",group:0,tag:"Imperative",reason:"look-what"},{match:"^[#Infinitive] #Gerund",group:0,tag:"Imperative",reason:"keep-playing"},{match:"^[#Infinitive] (to|for|into|toward|here|there)",group:0,tag:"Imperative",reason:"go-to"},{match:"^[#Infinitive] (and|or) #Infinitive",group:0,tag:"Imperative",reason:"inf-and-inf"},{match:"^[%Noun|Verb%] to",group:0,tag:"Imperative",reason:"commit-to"},{match:"^[#Infinitive] #Adjective? #Singular #Singular",group:0,tag:"Imperative",reason:"maintain-eye-contact"},{match:"do not (forget|omit|neglect) to [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-forget"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"},{match:"#Gerund [#Gerund] #Plural",group:0,tag:"Adjective",reason:"hard-working-fam"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"[right] (before|after|in|into|to|toward)",group:0,tag:"#Adverb",reason:"right-into"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"(are|#Modal|see|do|for) [ya]",group:0,tag:"Pronoun",reason:"are-ya"},{match:"[long live] .",group:0,tag:"#Adjective #Infinitive",reason:"long-live"},{match:"[plenty] of",group:0,tag:"#Uncountable",reason:"plenty-of"},{match:"(always|nearly|barely|practically) [there]",group:0,tag:"Adjective",reason:"always-there"},{match:"[there] (#Adverb|#Pronoun)? #Copula",group:0,tag:"There",reason:"there-is"},{match:"#Copula [there] .",group:0,tag:"There",reason:"is-there"},{match:"#Modal #Adverb? [there]",group:0,tag:"There",reason:"should-there"},{match:"^[do] (you|we|they)",group:0,tag:"QuestionWord",reason:"do-you"},{match:"^[does] (he|she|it|#ProperNoun)",group:0,tag:"QuestionWord",reason:"does-he"},{match:"a [while]",group:0,tag:"Noun",reason:"a-while"},{match:"guess who",tag:"#Infinitive #QuestionWord",reason:"guess-who"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"#ProperNoun+ (river|lake|bay|inlet|creek|narrows|cove|dune|coast|lagoon|beach|peninsula|hill|mountain|canyon|marsh|island|trail|valley|glacier|estuary|desert|escarpment|gorge|plains|waterfall)",tag:"Place",reason:"foo-river"},{match:"(river|gulf|lake) of? #ProperNoun+",tag:"Place",reason:"river-foo"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"a #Noun [like] (#Noun|#Determiner)",group:0,tag:"Preposition",reason:"a-noun-like"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Infinitive #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}],[{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^[(well|so|okay|now)] !#Adjective?",group:0,tag:"Expression",reason:"well-"},{match:"^come on",tag:"Expression",reason:"come-on"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"^(ok|alright|shoot|hell|anyways)",tag:"Expression",reason:"ok-"},{match:"^(say && @hasComma)",tag:"Expression",reason:"say-"},{match:"^(like && @hasComma)",tag:"Expression",reason:"like-"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}]);let zu=null;var Hu={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;zu=zu||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep(zu),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const Lu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Hu,model:{two:{matches:Bu}},hooks:["postTagger"]};var $u=Lu;var Su=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))};var Mu=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Su(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},Ju={lib:{lazy:Mu}};var Wu=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e};var qu=function(e,t,n){let r=e.split(/ /g).map((e=>e.toLowerCase().trim()));r=r.filter((e=>e)),r=r.map((e=>`{${e}}`)).join(" ");let a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?Wu(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model));e.replaceWith(n,{possessives:!0})}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this};var Ku={api:function(e){e.prototype.swap=qu}};v.plugin(mu),v.plugin(Vu),v.plugin($u),v.plugin(Ju),v.plugin(Ku);const Ru=function(e){const{fromComparative:t,fromSuperlative:n}=e.methods.two.transform.adjective;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var Uu={api:function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{toAdverb:t,toNoun:n,toSuperlative:r,toComparative:a}=this.methods.two.transform.adjective;return e.normal=!0,this.map((o=>{let i=o.toView().json(e)[0]||{},s=Ru(o);return i.adjective={adverb:t(s,this.model),noun:n(s,this.model),superlative:r(s,this.model),comparative:a(s,this.model)},i}),[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(e){const{toComparative:t,toSuperlative:n,toNoun:r,toAdverb:a}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let o=Ru(e);return{Adjective:o,Comparative:t(o,this.model),Superlative:n(o,this.model),Noun:r(o,this.model),Adverb:a(o,this.model)}}),[])}toComparative(e){const{toComparative:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Ru(e),r=t(n,this.model);return e.replaceWith(r)}))}toSuperlative(e){const{toSuperlative:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Ru(e),r=t(n,this.model);return e.replaceWith(r)}))}toAdverb(e){const{toAdverb:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Ru(e),r=t(n,this.model);return e.replaceWith(r)}))}toNoun(e){const{toNoun:t}=this.methods.two.transform.adjective;return this.getNth(e).map((e=>{let n=Ru(e),r=t(n,this.model);return e.replaceWith(r)}))}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=t.getNth(e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=t.getNth(e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=t.getNth(e),new Adjectives(t.document,t.pointer)}}};var Qu={api:function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}conjugate(e){return this.getNth(e).map((e=>{let t=function(e){return e.compute("root").text("root")}(e);return{Adverb:e.text("normal"),Adjective:t}}),[])}json(e={}){const t=this.methods.two.transform.adjective.fromAdverb;return e.normal=!0,this.map((n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r}),[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=t.getNth(e),new Adverbs(t.document,t.pointer)}}};var _u=function(e){let t=this;return t=function(e){let t=e.parentheses();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.quotations();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.match("@hasComma");return t=t.filter((e=>{if(1===e.growLeft(".").wordCount())return!1;if(1===e.growRight(". .").wordCount())return!1;let t=e.grow(".");return t=t.ifNo("@hasComma @hasComma"),t=t.ifNo("@hasComma (and|or) ."),t=t.ifNo("(#City && @hasComma) #Country"),t=t.ifNo("(#WeekDay && @hasComma) #Date"),t=t.ifNo("(#Date+ && @hasComma) #Value"),t=t.ifNo("(#Adjective && @hasComma) #Adjective"),t.found})),e.splitAfter(t)}(t),t=t.splitAfter("(@hasEllipses|@hasSemicolon|@hasDash|@hasColon)"),t=t.splitAfter("^#Pronoun (said|says)"),t=t.splitBefore("(said|says) #ProperNoun$"),t=t.splitBefore(". . if .{4}"),t=t.splitBefore("and while"),t=t.splitBefore("now that"),t=t.splitBefore("ever since"),t=t.splitBefore("(supposing|although)"),t=t.splitBefore("even (while|if|though)"),t=t.splitBefore("(whereas|whose)"),t=t.splitBefore("as (though|if)"),t=t.splitBefore("(til|until)"),"number"==typeof e&&(t=t.get(e)),t};var Zu=function(e){let t=[],n=null;return e.clauses().docs.forEach((e=>{e.forEach((e=>{e.chunk&&e.chunk===n?t[t.length-1][2]=e.index[1]+1:(n=e.chunk,t.push([e.index[0],e.index[1],e.index[1]+1]))})),n=null})),e.update(t)};var Xu=function(e){class Chunks extends e{constructor(e,t,n){super(e,t,n),this.viewType="Chunks"}isVerb(){return this.filter((e=>e.has("")))}isNoun(){return this.filter((e=>e.has("")))}isAdjective(){return this.filter((e=>e.has("")))}isPivot(){return this.filter((e=>e.has("")))}debug(){return this.toView().debug("chunks"),this}update(e){let t=new Chunks(this.document,e);return t._cache=this._cache,t}}e.prototype.chunks=function(e){let t=Zu(this);return t=t.getNth(e),new Chunks(this.document,t.pointer)},e.prototype.clauses=_u};const Yu={this:"Noun",then:"Pivot"};var ec=function(e){for(let t=0;t",group:0,chunk:"Verb"},{match:"#Noun of #Determiner? #Noun",chunk:"Noun"},{match:"#Value+ #Adverb? #Adjective",chunk:"Noun"},{match:"the [#Adjective] #Noun",chunk:"Noun"},{match:"#Singular in #Determiner? #Singular",chunk:"Noun"},{match:"#Plural [in] #Determiner? #Noun",group:0,chunk:"Pivot"},{match:"#Noun and #Determiner? #Noun",notIf:"(#Possessive|#Pronoun)",chunk:"Noun"}];let rc=null;var ac=function(e,t,n){const{methods:r}=n;rc=rc||r.one.buildNet(nc,n),e.sweep(rc)};const oc=function(e,t){if(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_CHUNKS){let n=(e.normal+"'").padEnd(8);console.log(` | '${n} → [34m${t.padEnd(12)}[0m [2m -fallback- [0m`)}e.chunk=t};var ic=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){const t=e.terms.find((e=>e.tags.has("Verb")));t||e.terms.forEach((e=>e.chunk=null))}}))};var lc={chunks:function(e){const{document:t,world:n}=e;ec(t),tc(t),ac(e,t,n),ic(t),sc(t)}},uc={compute:lc,api:Xu,hooks:["chunks"]};const cc=/\./g;var hc=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(cc,""),e.normal=e.normal.replace(cc,"")}))})),this}addPeriods(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(cc,""),e.normal=e.normal.replace(cc,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."}))})),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=t.getNth(e),new Acronyms(t.document,t.pointer)}};const dc=/\(/,gc=/\)/,mc=function(e,t){for(;t{e[0].pre=e[0].pre.replace(dc,"");let t=e[e.length-1];t.post=t.post.replace(gc,"")})),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n{e.forEach((e=>{e.text=e.text.replace(fc,""),e.normal=e.normal.replace(fc,"")}))})),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=t.getNth(e),new Possessives(t.document,t.pointer)}};const bc={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},yc=RegExp("["+Object.keys(bc).join("")+"]"),wc=RegExp("["+Object.values(bc).join("")+"]"),kc=function(e,t){const n=e[t].pre.match(yc)[0]||"";if(!n||!bc[n])return null;const r=bc[n];for(;t{e[0].pre=e[0].pre.replace(yc,"");let t=e[e.length-1];t.post=t.post.replace(wc,"")}))}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}})),e.prototype.phoneNumbers=Ac,jc.forEach((t=>{e.prototype[t[0]]=e.prototype[t[1]]}))},xc={api:function(e){hc(e),pc(e),vc(e),Pc(e),Ic(e)}};const Ec=function(e,t){e.docs.forEach((e=>{e.forEach(t)}))};var Cc={case:e=>{Ec(e,(e=>{e.text=e.text.toLowerCase()}))},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;Ec(e,(e=>e.text=n(e.text,t)))},whitespace:e=>{Ec(e,(e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")}))},punctuation:e=>{Ec(e,(e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")}));let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()},debullet:e=>{const t=/^\s*([-–—*•])\s*$/;return e.docs.forEach((e=>{t.test(e[0].pre)&&(e[0].pre=e[0].pre.replace(t,""))})),e}};const Tc=e=>e.split("|").reduce(((e,t)=>(e[t]=!0,e)),{}),Dc="unicode|punctuation|whitespace|acronyms",Oc="|case|contractions|parentheses|quotations|emoji|honorifics|debullet",Fc={light:Tc(Dc),medium:Tc(Dc+Oc),heavy:Tc(Dc+Oc+"|possessives|adverbs|nouns|verbs")};var Vc={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=Fc[e]),Object.keys(e).forEach((t=>{Cc.hasOwnProperty(t)&&Cc[t](this,e[t])})),this}}};var Gc=function(e){let t=e.clauses().match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they|i)"),t=t.splitOn("(#Noun|#Adjective) [(he|him|she|it)]",0),t=t.splitOn("[(he|him|she|it)] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.splitBefore("(our|my|their|your)"),t=t.splitOn("#Noun [#Determiner]",0),t=t.if("#Noun"),t};const Bc=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var zc=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")};var Lc=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t=t.first(),t.found?t:e}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Hc(e,t),isSubordinate:zc(e),root:t}};const $c=e=>e.text(),Sc=e=>e.json({terms:!1,normal:!0}).map((e=>e.normal)),Mc=function(e){if(!e.found)return null;let t=e.values(0);if(t.found){return(t.parse()[0]||{}).num}return null};var Jc=function(e){let t=Lc(e);return{root:$c(t.root),number:Mc(t.number),determiner:$c(t.determiner),adjectives:Sc(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};var Wc=function(e){return!e.has("^(#Uncountable|#ProperNoun|#Place|#Pronoun|#Acronym)+$")};const qc={tags:!0};var Kc=function(e,t){if(!0===t.isPlural)return e;if(t.root.has("#Possessive")&&(t.root=t.root.possessives().strip()),!Wc(t.root))return e;const{methods:n,model:r}=e.world,{toPlural:a}=n.two.transform.noun;let o=a(t.root.text({keepPunct:!1}),r);e.match(t.root).replaceWith(o,qc).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.remove(t.determiner);let i=t.root.after("not? #Adverb+? [#Copula]",0);return i.found&&(i.has("is")?e.replace(i,"are"):i.has("was")&&e.replace(i,"were")),e};const Rc={tags:!0};var Uc=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{toSingular:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,Rc).tag("Singular","toPlural"),e};var Qc=function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return this.getNth(e).map(Lc)}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0]||{};return t&&!0!==t.noun&&(n.noun=Jc(e)),n}),[])}conjugate(e){const t=this.world.methods.two.transform.noun;return this.getNth(e).map((e=>{let n=Lc(e),r=n.root.compute("root").text("root"),a={Singular:r};return Wc(n.root)&&(a.Plural=t.toPlural(r,this.model)),a.Singular===a.Plural&&delete a.Plural,a}),[])}isPlural(e){let t=this.filter((e=>Lc(e).isPlural));return t.getNth(e)}isSingular(e){let t=this.filter((e=>!Lc(e).isPlural));return t.getNth(e)}adjectives(e){let t=this.update([]);return this.forEach((e=>{let n=Lc(e).adjectives;n.found&&(t=t.concat(n))})),t.getNth(e)}toPlural(e){return this.getNth(e).map((e=>Kc(e,Lc(e))))}toSingular(e){return this.getNth(e).map((e=>{let t=Lc(e);return Uc(e,t)}))}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Gc(this);return t=t.getNth(e),new Nouns(this.document,t.pointer)}},_c={api:Qc};var Zc=function(e,t){let n=e.match("#Fraction+");return n=n.filter((e=>!e.lookBehind("#Value and$").found)),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n};var Xc=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(Yc.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Yc.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Yc.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0};var th=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const rh=/^([0-9,. ]+)\/([0-9,. ]+)$/,ah={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},oh=e=>Object.keys(e).reduce(((t,n)=>t+=e[n]),0);var ih=function(e){if(!0===ah.hasOwnProperty(e))return ah[e];if("a"===e||"an"===e)return 1;const t=Xc(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=lh(n),r=lh(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:lh(n);let a=r.text("reduced");return sh.test(a)&&(a=a.replace(sh,""),r=r.replaceWith(a)),r=uh.hasOwnProperty(a)?uh[a]:lh(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");if(!0!==t.found)return null;if(e.lookAhead("^of ."))return{numerator:1,denominator:lh(t)};return null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t};var hh=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const dh=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],gh=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],mh=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],ph=function(e){let t=[];if(e>100)return t;for(let n=0;n=dh[n][1]&&(e-=dh[n][1],t.push(dh[n][0]));return gh[e]&&t.push(gh[e]),t};var fh=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=hh(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return mh.forEach((r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}})),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(ph(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=hh(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee)),0===n.length&&(n[0]=""),n.join(" ")};var vh=function(e){if(!e.numerator||!e.denominator)return"";return`${fh({num:e.numerator})} out of ${fh({num:e.denominator})}`};const bh={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var yh=e=>{let t=fh(e).split(" "),n=t[t.length-1];return bh.hasOwnProperty(n)?t[t.length-1]=bh[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")};var wh=function(e){if(!e.numerator||!e.denominator)return"";let t=fh({num:e.numerator}),n=yh({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};var kh=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return this.getNth(e).map(ch)}get(e){return this.getNth(e).map(ch)}json(e){return this.getNth(e).map((t=>{let n=t.toView().json(e)[0],r=ch(t);return n.fraction=r,n}),[])}toDecimal(e){return this.getNth(e).forEach((e=>{let{decimal:t}=ch(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")})),this}toFraction(e){return this.getNth(e).forEach((e=>{let t=ch(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}})),this}toOrdinal(e){return this.getNth(e).forEach((e=>{let t=ch(e),n=wh(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)})),this}toCardinal(e){return this.getNth(e).forEach((e=>{let t=ch(e),n=vh(t);e.replaceWith(n)})),this}toPercentage(e){return this.getNth(e).forEach((e=>{let{decimal:t}=ch(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(`${n}%`)})),this}}e.prototype.fractions=function(e){let t=Zc(this);return t=t.getNth(e),new Fractions(this.document,t.pointer)}};const Ph="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var Ah=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+Ph+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+Ph+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+Ph+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+Ph+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${Ph})`),r=e.has("("+Ph+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach((e=>{t=t.splitOn(e)}))}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+Ph+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+Ph+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t};var Nh=function(e){if("string"==typeof e)return{num:ih(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=ch(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=ih(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}};var jh=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=hh(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const Ih={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},xh={"%":"percent","°":"degrees"};var Eh=function(e){let t={suffix:"",prefix:e.prefix};return Ih.hasOwnProperty(e.prefix)&&(t.suffix+=" "+Ih[e.prefix],t.prefix=""),xh.hasOwnProperty(e.suffix)&&(t.suffix+=" "+xh[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t};var Ch=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=Eh(e);return t+yh(e)+n}if("Ordinal"===t)return e.prefix+jh(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=Eh(e);return t+fh(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};var Th=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return this.getNth(e).map(Nh)}get(e){return this.getNth(e).map(Nh).map((e=>e.num))}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0],r=Nh(e);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n}),[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach((e=>{let t=Nh(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=Ch(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")})),this}toLocaleString(){return this.forEach((e=>{let t=Nh(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=Ch(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})})),this}toText(){let e=this.map((e=>{if(e.has("#TextValue"))return e;let t=Nh(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=Ch(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e}));return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map((e=>{if(!e.has("#Ordinal"))return e;let t=Nh(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=Ch(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e}));return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map((e=>{if(e.has("#Ordinal"))return e;let t=Nh(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=Ch(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e}));return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter((t=>Nh(t).num===e))}greaterThan(e){return this.filter((t=>Nh(t).num>e))}lessThan(e){return this.filter((t=>Nh(t).num{let r=Nh(n).num;return r>e&&r{let n=Nh(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Ch(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=Nh(e).num);let t=this.map((t=>{let n=Nh(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Ch(n,r);return t.replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=Ah(this);return t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=Ah(this);return t=t.filter((e=>e.has("#Percent")||e.after("^percent"))),t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=Ah(this);return t=t.filter((e=>e.has("#Money")||e.after("^#Currency"))),t=t.getNth(e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers};var Dh={api:function(e){kh(e),Th(e)}};const Oh={people:!0,emails:!0,phoneNumbers:!0,places:!0},Fh=function(e={}){return!1!==(e=Object.assign({},Oh,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this},Vh={api:function(e){e.prototype.redact=Fh}};var Gh=Vh;var Bh=function(e){const t=/\?/,{document:n}=e;return e.filter((e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))}))};var zh=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))};const Hh=function(e){let t=null;return e.has("#PastTense")?t="PastTense":e.has("#FutureTense")?t="FutureTense":e.has("#PresentTense")&&(t="PresentTense"),{tense:t}};var Lh=function(e){let t=e.clauses(),n=zh(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach(((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e})),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o,grammar:Hh(a)}};var $h=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e};var Sh=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e};var Mh=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let e=t.filter((e=>!e.lookBehind("to$").found&&(!!e.has("#Copula #Gerund")||!e.has("#Gerund")&&(!!e.has("#Copula")||!(e.has("#PresentTense")&&!e.has("#Infinitive")&&e.lookBefore("(he|she|it|that|which)$").found)))));e.found&&e.forEach((e=>{if(e.has("#Copula"))return e.match("was").replaceWith("is"),void e.match("is").replaceWith("will be");e.toInfinitive()}))}return e};var Jh=function(e){return e.verbs().toInfinitive(),e};var Wh=function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o,grammar:i}=Lh(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal"),grammar:i},n}),[])}toPastTense(e){return this.getNth(e).map((e=>(Lh(e),$h(e))))}toPresentTense(e){return this.getNth(e).map((e=>(Lh(e),Sh(e))))}toFutureTense(e){return this.getNth(e).map((e=>(Lh(e),e=Mh(e))))}toInfinitive(e){return this.getNth(e).map((e=>(Lh(e),Jh(e))))}toNegative(e){return this.getNth(e).map((e=>(Lh(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e))))}toPositive(e){return this.getNth(e).map((e=>(Lh(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e))))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter((e=>e.lastTerm().has("@hasExclamation")));return t.getNth(e)}isStatement(e){let t=this.filter((e=>!e.isExclamation().found&&!e.isQuestion().found));return t.getNth(e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map((e=>e.fullSentence()));return t=t.getNth(e),new Sentences(this.document,t.pointer)},questions:function(e){return Bh(this).getNth(e)}};Object.assign(e.prototype,t)},qh={api:Wh};var Kh=function(e){return e.match("#Honorific+? #Person+")};var Rh=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const Uh="male",Qh="female",_h={mr:Uh,mrs:Qh,miss:Qh,madam:Qh,king:Uh,queen:Qh,duke:Uh,duchess:Qh,baron:Uh,baroness:Qh,count:Uh,countess:Qh,prince:Uh,princess:Qh,sire:Uh,dame:Qh,lady:Qh,ayatullah:Uh,congressman:Uh,congresswoman:Qh,"first lady":Qh,mx:null};var Zh=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Qh;if(n.has("#MaleName"))return Uh;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),_h.hasOwnProperty(e))return _h[e];if(/^her /.test(e))return Qh;if(/^his /.test(e))return Uh}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return Uh;if(n&&!t)return Qh}return null};var Xh=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return this.getNth(e).map(Rh)}json(e){let t="object"==typeof e?e:{};return this.getNth(e).map((e=>{let n=e.toView().json(t)[0],r=Rh(e);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Zh(r,e)},n}),[])}presumedMale(){return this.filter((e=>e.has("(#MaleName|mr|mister|sr|jr|king|pope|prince|sir)")))}presumedFemale(){return this.filter((e=>e.has("(#FemaleName|mrs|miss|queen|princess|madam)")))}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=Kh(this);return t=t.getNth(e),new People(this.document,t.pointer)}};var Yh=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter((e=>!!e.has("(asia|africa|europe|america)$")||(!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found))),t=t.splitAfter(n),t};var ed=function(e){e.prototype.places=function(t){let n=Yh(this);return n=n.getNth(t),new e(this.document,n.pointer)}};var td=function(e){e.prototype.organizations=function(e){return this.match("#Organization+").getNth(e)}};const nd=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=n.getNth(e),n};var rd=function(e){e.prototype.topics=nd};var ad={api:function(e){Xh(e),ed(e),td(e),rd(e)}};var od=function(e){let t=e.match("");return t=t.not("(#Conjunction && !to)"),t=t.not("#Preposition"),t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0),t=t.not("#Reflexive$"),t=t.splitAfter("[#PastTense] #PastTense",0),t=t.splitAfter("[#PastTense] #Auxiliary+ #PastTense",0),t=t.splitAfter("#Copula [#Gerund] #PastTense",0),t=t.if("#Verb"),t.has("(#Verb && !#Auxiliary) #Adverb+? #Copula")&&(t=t.splitBefore("#Copula")),t};var id=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t};var sd=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const ld=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},ud=function(e){return e.match("#Negative")},cd=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var hd=function(e){let t=e.clone();t.contractions().expand();const n=id(t);return{root:n,prefix:t.match("#Prefix"),adverbs:sd(t,n),auxiliary:ld(t,n),negative:ud(t),phrasal:cd(n)}};const dd={tense:"PresentTense"},gd={conditional:!0},md={tense:"FutureTense"},pd={progressive:!0},fd={tense:"PastTense"},vd={complete:!0,progressive:!1},bd={passive:!0},yd=function(e){let t={};return e.forEach((e=>{Object.assign(t,e)})),t},wd={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[dd]],["^wanted to #Infinitive$",[fd]],["^will want to #Infinitive$",[md]]],"gerund-phrase":[["^#PastTense #Gerund$",[fd]],["^#PresentTense #Gerund$",[dd]],["^#Infinitive #Gerund$",[dd]],["^will #Infinitive #Gerund$",[md]],["^have #PastTense #Gerund$",[fd]],["^will have #PastTense #Gerund$",[fd]]],"simple-present":[["^#PresentTense$",[dd]],["^#Infinitive$",[dd]]],"simple-past":[["^#PastTense$",[fd]]],"simple-future":[["^will #Adverb? #Infinitive",[md]]],"present-progressive":[["^(is|are|am) #Gerund$",[dd,pd]]],"past-progressive":[["^(was|were) #Gerund$",[fd,pd]]],"future-progressive":[["^will be #Gerund$",[md,pd]]],"present-perfect":[["^(has|have) #PastTense$",[fd,vd]]],"past-perfect":[["^had #PastTense$",[fd,vd]],["^had #PastTense to #Infinitive",[fd,vd]]],"future-perfect":[["^will have #PastTense$",[md,vd]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[fd,pd]]],"past-perfect-progressive":[["^had been #Gerund$",[fd,pd]]],"future-perfect-progressive":[["^will have been #Gerund$",[md,pd]]],"passive-past":[["(got|were|was) #Passive",[fd,bd]],["^(was|were) being #Passive",[fd,bd]],["^(had|have) been #Passive",[fd,bd]]],"passive-present":[["^(is|are|am) #Passive",[dd,bd]],["^(is|are|am) being #Passive",[dd,bd]],["^has been #Passive",[dd,bd]]],"passive-future":[["will have been #Passive",[md,bd,gd]],["will be being? #Passive",[md,bd,gd]]],"present-conditional":[["would be #PastTense",[dd,gd]]],"past-conditional":[["would have been #PastTense",[fd,gd]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[md]]],"auxiliary-past":[["^did #Infinitive$",[fd,{plural:!1}]],["^used to #Infinitive$",[fd,vd]]],"auxiliary-present":[["^(does|do) #Infinitive$",[dd,vd,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[fd]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let kd=[];Object.keys(wd).map((e=>{wd[e].forEach((t=>{kd.push({name:e,match:t[0],data:yd(t[1])})}))}));var Pd=kd;var Ad=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb")))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),Nd(r)&&(n.remove(r),r=n.last()),Nd(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:jd(t,e)}};const xd=e=>e,Ed=(e,t)=>{let n=Id(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Cd=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Id(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Td=function(e,t){let n=Id(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Dd=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},Od=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Dd(e)),r&&e.replace(t.root,r),e},Fd=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),Vd=function(e){if(!e||!e.isView)return[];return e.json({normal:!0,terms:!1,text:!1}).map((e=>e.normal))},Gd=function(e){return e&&e.isView?e.text("normal"):""},Bd=function(e){const{toInfinitive:t}=e.methods.two.transform.verb;return t(e.text("normal"),e.model,Dd(e))};var zd=function(e){let t=hd(e);e=e.clone().toView();const n=Ad(e,t);return{root:t.root.text(),preAdverbs:Vd(t.adverbs.pre),postAdverbs:Vd(t.adverbs.post),auxiliary:Gd(t.auxiliary),negative:t.negative.found,prefix:Gd(t.prefix),infinitive:Bd(t.root),grammar:n}};const Hd={tags:!0};var Ld=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Dd(r)),i&&e.replace(r,i,Hd).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Td(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const $d={tags:!0},Sd={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Dd(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Id(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,$d),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Sd.simple(e,t),e=Sd.noAux(e,t))},hasHad:e=>(e.replace("has","had",$d),e),hasParticiple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Dd(a)),n(o,e.model).Participle}},Md={infinitive:Sd.simple,"simple-present":Sd.simple,"simple-past":xd,"simple-future":Sd.both,"present-progressive":e=>(e.replace("are","were",$d),e.replace("(is|are|am)","was",$d),e),"past-progressive":xd,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Sd.hasHad,"past-perfect":xd,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=Fd(e)),e.remove("have"),e),"present-perfect-progressive":Sd.hasHad,"past-perfect-progressive":xd,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",$d),e),"passive-past":e=>(e.replace("have","had",$d),e),"passive-present":e=>(e.replace("(is|are)","was",$d),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",$d),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":xd,"auxiliary-future":e=>(e.replace("(is|are|am)","was",$d),e),"auxiliary-past":xd,"auxiliary-present":e=>(e.replace("(do|does)","did",$d),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",$d):(Sd.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":xd,"want-infinitive":e=>(e.replace("(want|wants)","wanted",$d),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Sd.simple(e,t),Fd(e),e)};var Jd=function(e,t,n){return Md.hasOwnProperty(n)?((e=Md[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Wd=function(e,t){let n=Id(e),r=n.subject;return r.has("(i|we|you)")?"have":!1===n.plural||r.has("he")||r.has("she")||r.has("#Person")?"has":"have"},qd=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(a.has("#Modal"))return e;let i=a.text({keepPunct:!1});i=r(i,e.model,Dd(a));let s=n(i,e.model);if(i=s.Participle||s.PastTense,i){e=e.replace(a,i);let t=Wd(e);e.prepend(t).match(t).tag("Auxiliary"),e.remove(o)}return e},Kd={infinitive:qd,"simple-present":qd,"simple-future":(e,t)=>e.replace("will",Wd(e)),"present-perfect":xd,"past-perfect":xd,"future-perfect":(e,t)=>e.replace("will have",Wd(e)),"present-perfect-progressive":xd,"past-perfect-progressive":xd,"future-perfect-progressive":xd};var Rd=function(e,t,n){return Kd.hasOwnProperty(n)?((e=Kd[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):((e=qd(e,t)).fullSentence().compute(["tagger","chunks"]),e)};const Ud={tags:!0},Qd=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Dd(a)),!1===Ed(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Cd(e)),o&&(e=e.replace(a,o,Ud)).not("#Particle").tag("PresentTense"),e},_d=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Dd(a)),!1===Ed(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,Ud)).not("#Particle").tag("Gerund"),e},Zd={infinitive:Qd,"simple-present":(e,t)=>{const{conjugate:n}=e.methods.two.transform.verb;let{root:r}=t;if(!r.has("#Infinitive"))return Qd(e,t);{let t=Id(e).subject;if(Ed(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,Ud)}return e},"simple-past":Qd,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Cd(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else Qd(e,t),e=e.remove("will");return e},"present-progressive":xd,"past-progressive":(e,t)=>{let n=Cd(e);return e.replace("(were|was)",n,Ud)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(Qd(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Id(e).subject;return Ed(e)||n.has("i")?((e=Od(e,t)).remove("had"),e):(e.replace("had","has",Ud),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":xd,"past-perfect-progressive":e=>e.replace("had","has",Ud),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Cd(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Ud),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":xd,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":xd,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(_d(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=Td(e);return e.replace(t.auxiliary,n),e}return _d(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":xd,"modal-infinitive":xd,"modal-past":(e,t)=>(((e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Dd(r)),a&&(e=e.replace(t.root,a,Ud))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Qd(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Ed(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Ud),e.remove("will"),e}};var Xd=function(e,t,n){return Zd.hasOwnProperty(n)?((e=Zd[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Yd={tags:!0},eg=(e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Dd(r)),o&&(e=e.replace(r,o,Yd)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},tg=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Dd(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,Yd),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},ng={infinitive:eg,"simple-present":eg,"simple-past":eg,"simple-future":xd,"present-progressive":tg,"past-progressive":tg,"future-progressive":xd,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":xd,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":xd,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":xd,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":xd,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":xd,"modal-past":xd,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),eg(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var rg=function(e,t,n){return e.has("will")||e.has("going to")?e:ng.hasOwnProperty(n)?((e=ng[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const ag={tags:!0};var og=function(e,t){const{toInfinitive:n,conjugate:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Dd(a));let s=r(i,e.model).Gerund;if(s){let t=Cd(e);e.replace(a,s,ag),e.remove(o),e.prepend(t)}return e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const ig={tags:!0},sg=function(e,t){let n=Td(e);return e.prepend(n+" not"),e},lg=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},ug=e=>e.has("(is|was|am|are|will|were|be)"),cg={"simple-present":(e,t)=>!0===ug(e)?lg(e):(e=Od(e,t),e=sg(e)),"simple-past":(e,t)=>!0===ug(e)?lg(e):((e=Od(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===ug(e)?lg(e):sg(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",ig),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=sg(e)).replace("wants","want",ig)};var hg=function(e,t,n){if(e.has("#Negative"))return e;if(cg.hasOwnProperty(n))return e=cg[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===ug(e)?lg(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};var dg=function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return this.getNth(e).map(hd)}json(e,t){let n=this.getNth(t).map((t=>{let n=t.toView().json(e)[0]||{};return n.verb=zd(t),n}),[]);return n}subjects(e){return this.getNth(e).map((e=>(hd(e),Id(e).subject)))}adverbs(e){return this.getNth(e).map((e=>e.match("#Adverb")))}isSingular(e){return this.getNth(e).filter((e=>!0!==Id(e).plural))}isPlural(e){return this.getNth(e).filter((e=>!0===Id(e).plural))}isImperative(e){return this.getNth(e).filter((e=>e.has("#Imperative")))}toInfinitive(e){return this.getNth(e).map((e=>{let t=hd(e),n=Ad(e,t);return Ld(e,t,n.form)}))}toPresentTense(e){return this.getNth(e).map((e=>{let t=hd(e),n=Ad(e,t);return Xd(e,t,n.form)}))}toPastTense(e){return this.getNth(e).map((e=>{let t=hd(e),n=Ad(e,t);return Jd(e,t,n.form)}))}toFutureTense(e){return this.getNth(e).map((e=>{let t=hd(e),n=Ad(e,t);return rg(e,t,n.form)}))}toGerund(e){return this.getNth(e).map((e=>{let t=hd(e),n=Ad(e,t);return og(e,t,n.form)}))}toPastParticiple(e){return this.getNth(e).map((e=>{let t=hd(e),n=Ad(e,t);return Rd(e,t,n.form)}))}conjugate(e){const{conjugate:t,toInfinitive:n}=this.world.methods.two.transform.verb;return this.getNth(e).map((e=>{let r=hd(e),a=Ad(e,r);"imperative"===a.form&&(a.form="simple-present");let o=r.root.text("normal");if(!r.root.has("#Infinitive")){let t=Dd(r.root);o=n(o,e.model,t)||o}return t(o,e.model)}),[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return this.getNth(e).map((e=>{let t=hd(e),n=Ad(e,t);return hg(e,t,n.form)}))}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=od(this);return t=t.getNth(e),new Verbs(this.document,t.pointer)}},gg={api:dg};const mg=function(e,t){let n=t.match(e);if(n.found){let e=n.pronouns().refersTo();if(e.found)return e}return t.none()},pg=function(e){if(!e.found)return e;let[t]=e.fullPointer[0];return t&&t>0?e.update([[t-1]]):e.none()};var fg=function(e,t){let n=e.people();return n=function(e,t){return"m"===t?e.filter((e=>!e.presumedFemale().found)):"f"===t?e.filter((e=>!e.presumedMale().found)):e}(n,t),n.found?n.last():(n=e.nouns("#Actor"),n.found?n.last():"f"===t?mg("(she|her|hers)",e):"m"===t?mg("(he|him|his)",e):e.none())};var vg=function(e){let t=e.nouns(),n=t.isPlural().notIf("#Pronoun");if(n.found)return n.last();let r=mg("(they|their|theirs)",e);return r.found?r:(n=t.match("(somebody|nobody|everybody|anybody|someone|noone|everyone|anyone)"),n.found?n.last():e.none())};const bg=function(e,t){let n=e.before(),r=t(n);return r.found?r:(n=pg(e),r=t(n),r.found?r:(n=pg(n),r=t(n),r.found?r:e.none()))};var yg=function(e){e.pronouns().if("(he|him|his|she|her|hers|they|their|theirs|it|its)").forEach((e=>{let t=null;e.has("(he|him|his)")?t=bg(e,(e=>fg(e,"m"))):e.has("(she|her|hers)")?t=bg(e,(e=>fg(e,"f"))):e.has("(they|their|theirs)")&&(t=bg(e,vg)),t&&t.found&&function(e,t){t&&t.found&&(e.docs[0][0].reference=t.ptrs[0])}(e,t)}))};var wg=function(e){class Pronouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Pronouns"}hasReference(){return this.compute("coreference"),this.filter((e=>e.docs[0][0].reference))}refersTo(){return this.compute("coreference"),this.map((e=>{if(!e.found)return e.none();let t=e.docs[0][0];return t.reference?e.update([t.reference]):e.none()}))}update(e){let t=new Pronouns(this.document,e);return t._cache=this._cache,t}}e.prototype.pronouns=function(e){let t=this.match("#Pronoun");return t=t.getNth(e),new Pronouns(t.document,t.pointer)}},kg={compute:{coreference:yg},api:wg};v.plugin(Uu),v.plugin(Qu),v.plugin(uc),v.plugin(kg),v.plugin(xc),v.plugin(Vc),v.plugin(_c),v.plugin(Dh),v.plugin(Gh),v.plugin(qh),v.plugin(ad),v.plugin(gg);export{v as default};
diff --git a/builds/two/compromise-two.cjs b/builds/two/compromise-two.cjs
index 418a3a39f..9af3fb04b 100644
--- a/builds/two/compromise-two.cjs
+++ b/builds/two/compromise-two.cjs
@@ -1 +1 @@
-var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((a=>{t.compute.hasOwnProperty(a)?n[a](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t,a={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let a=this.update([t]);e(a,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let a=this.update([t]),r=e(a,n);return void 0===r?this.none():r}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let a=[];return n.forEach((e=>{a=a.concat(e.fullPointer)})),this.toView(a)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let a=this.update([t]);return e(a,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let a=this.update([t]);return e(a,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let a=this.update([t]);return e(a,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)},isFull:function(){let e=this.pointer;if(!e)return!0;let t=this.document;for(let n=0;no)return!1}return!0},getNth:function(e){return"number"==typeof e?this.eq(e):"string"==typeof e?this.if(e):this}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var o=r;const i=Object.assign({},o,n,a);i.get=i.eq;var s=i;class View{constructor(t,n,a={}){[["document",t],["world",e],["_groups",a],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,a=t||e.map(((e,t)=>[t]));return a.map((e=>{let[t,a,r,o,i]=e;return a=a||0,r=r||(n[t]||[]).length,n[t]&&n[t][a]&&(o=o||n[t][a].id,n[t][r-1]&&(i=i||n[t][r-1].id)),[t,a,r,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[a,r,o]=e;(1===e.length||0===r&&this.document[a].length===o)&&(n[t]=this._cache[a])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),a=new View(n);return a.world=this.world,a.compute(["normal","lexicon"]),this.world.compute.preTagger&&a.compute("preTagger"),a}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,a){const{methods:r,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(r,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>a[t]=e.lib[t])),e.tags&&a.addTags(e.tags),e.words&&a.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var m=function(e,t,n){const{methods:a}=n;let r=new t([]);if(r.world=n,"number"==typeof e&&(e=String(e)),!e)return r;if("string"==typeof e)return new t(a.one.tokenize.fromString(e,n));if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return r};let p=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=m(e,l,p);return e&&n.compute(p.hooks),n};Object.defineProperty(f,"_world",{value:p,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let a=m(e,l,p);return n.contractions&&a.compute(["alias","normal","machine","contractions"]),a},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.8.2";var b=f,v=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),I=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let a=[t,0].concat(n);Array.prototype.splice.apply(e,a)}return e},A=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},j=(e,t,n)=>{const a=/[-.?!,;:)–—'"]/g;let r=e[t-1];if(!r)return;let o=r.post;if(a.test(o)){let e=o.match(a).join(""),t=n[n.length-1];t.post=e+t.post,r.post=r.post.replace(a,"")}},E=function(e,t,n,a){let[r,o,i]=t;0===o||i===a[r].length?A(n):(A(n),A([e[t[1]]])),function(e,t,n){let a=e[t];if(0!==t||!P(a.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let r=e[t];r.tags.has("ProperNoun")||r.tags.has("Acronym")||P(r.text)&&r.text.length>1&&(r.text=r.text.replace(/^\p{Lu}/u,(e=>e.toLowerCase())))}(e,o,n),I(e,o,n)};let N=0;const D=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var x=function(e){let[t,n]=e.index||[0,0];N+=1,N=N>46655?0:N,t=t>46655?0:t,n=n>1294?0:n;let a=D(N.toString(36));a+=D(t.toString(36));let r=n.toString(36);return r=r.length<2?"0"+r:r,a+=r,a+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+a.toUpperCase()};const C=function(e){e.has("@hasContraction")&&"function"==typeof e.contractions&&e.grow("@hasContraction").contractions().expand()},T=e=>"[object Array]"===Object.prototype.toString.call(e),O=function(e,t,n){const{document:a,world:r}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=a[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:T(e)?T(e[0])?e[0]:e:[]}(e,r);0!==d.length&&(d=function(e){return e.map((e=>(e.id=x(e),e)))}(d),n?(C(t.update([u]).firstTerm()),E(h,u,d,a)):(C(t.update([u]).lastTerm()),function(e,t,n,a){let[r,,o]=t,i=(a[r]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(a,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(z,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,a);let r=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(r.docs[0]||[]).map((e=>Array.from(e.tags)));"string"==typeof e&&(e=this.fromText(e).compute("id")),a.insertAfter(e),r.has("@hasContraction")&&a.contractions&&a.grow("@hasContraction+").contractions().expand(),a.delete(r);let i=a.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let a=this.match(e);return a.found?(this.soften(),a.replaceWith(t,n)):this}};var B=V,L=function(e,t){t.forEach((t=>{let[n,a,r]=t,o=r-a;e[n]&&(r===e[n].length&&r>1&&function(e,t){let n=e.length-1,a=e[n],r=e[n-t];r&&a&&(r.post+=a.post,r.post=r.post.replace(/ +([.?!,;:])/,"$1"),r.post=r.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(a,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],a=n[n.length-1];a&&(a.post=a.post.trimEnd())}return e};const $={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),a=this;e&&(n=this,a=this.match(e));let r=!n.ptrs;a.has("@hasContraction")&&a.contractions&&a.grow("@hasContraction").contractions().expand();let o=n.fullPointer,i=a.fullPointer.reverse(),s=L(this.document,i);return o=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(o,t(i)),n.ptrs=o,n.document=s,n.compute("index"),r&&(n.ptrs=void 0),e?n.toView(o):(this.ptrs=[],n.none())}};$.delete=$.remove;var S=$;const M={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let a=n[0];!0===t?a.pre+=e:a.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let a=n[n.length-1];!0===t?a.post+=e:a.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],a=n[n.length-1];return a.post=a.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post})),this}};M.deHyphenate=M.dehyphenate,M.toQuotation=M.toQuotations;var J=M,H={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,a=t.normal.trim().length;return na?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let a=t[e.normal],r=t[n.normal];return ar?-1:0})),e}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),K=new Set(["freq","frequency","topk","repeats"]),U=new Set(["alpha","alphabetical"]);var q={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,a)=>(n=e.update([n]),a=e.update([a]),t(n,a)))),e.ptrs=n,e}(this,e);e=e||"alpha";let a=n||t.map(((e,t)=>[t])),r=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:a[t]})));return W.has(e)&&(e="sequential"),U.has(e)&&(e="alpha"),K.has(e)?(r=H.byFreq(r),this.update(r.map((e=>e.pointer)))):"function"==typeof H[e]?(r=r.sort(H[e]),this.update(r.map((e=>e.pointer)))):this}};const R=function(e,t){if(e.length>0){let t=e[e.length-1],n=t[t.length-1];!1===/ /.test(n.post)&&(n.post+=" ")}return e=e.concat(t)};var Q={concat:function(e){if("string"==typeof e){let t=this.fromText(e);if(this.found&&this.ptrs){let e=this.fullPointer,n=e[e.length-1][0];this.document.splice(n,0,...t.document)}else this.document=this.document.concat(t.document);return this.all().compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.docs),e.all()}(this,e);if(t=e,"[object Array]"===Object.prototype.toString.call(t)){let t=R(this.document,e);return this.document=t,this.all()}var t;return this}},_={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const Z=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},G,B,S,J,q,Q,_);var Y=function(e){Object.assign(e.prototype,Z)};const X={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e))),n[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const ae=/'/,re=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(ae)[0];if(re.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null},le=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ge=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,me=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,pe=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],a=n.text.match(ge);return null!==a?!0===n.tags.has("PhoneNumber")||pe.test(n.text)?null:[a[1],"to",a[2]]:(a=n.text.match(me),null!==a?[a[1],"to",a[4]]:null)};const be=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,ve=new Set(["st","nd","rd","th","am","pm","max","°","s","e"]);var ye=function(e,t){let n=e[t].text.match(be);if(null!==n){let e=n[2].toLowerCase().trim();return ve.has(e)?null:[n[1],e]}return null};const we=/'/,ke=/^[0-9][^-–—]*[-–—].*?[0-9]/,Pe=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]]},Ie={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},Ae={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},je=function(e,t,n,a){for(let r=0;r{let{world:t,document:n}=e;const{model:a,methods:r}=t;let o=a.one.contractions||[];new Set(a.one.units||[]),n.forEach(((a,i)=>{for(let s=a.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(a[s].normal)&&([l,u]=a[s].normal.split(we));let c=je(o,a[s],l,u);!c&&Ie.hasOwnProperty(u)&&(c=Ie[u](a,s,t)),!c&&Ae.hasOwnProperty(l)&&(c=Ae[l](a,s)),c?(c=Ee(c,e),ne(n,[i,s],c),Pe(n[i],e,s,c.length)):ke.test(a[s].normal)?(c=fe(a,s),c&&(c=Ee(c,e),ne(n,[i,s],c),r.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&r.one.setTag([c[0]],"Time",t,null,"time-range"),Pe(n[i],e,s,c.length))):(c=ye(a,s),c&&(c=Ee(c,e),ne(n,[i,s],c),r.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))},De={model:te,compute:{contractions:Ne},hooks:["contractions"]},xe=function(e,t,n){const{model:a,methods:r}=n,o=r.one.setTag,i=a.one._multiCache||{},s=a.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,a,r){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===Ce.test(l)){let e=l.replace(Ce,"");if(i.hasOwnProperty(e)&&e.length>3&&Te.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Fe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let r=e[a],o=(a=(a=a.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[a]=t[a]||r})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}},ze={addWords:function(e){const t=this.world(),{methods:n,model:a}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:r,_multi:o}=n.two.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:r,_multi:o}=n.one.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else Object.assign(a.one.lexicon,e)}},Ve={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Ge}},compute:Fe,lib:ze,hooks:["lexicon"]},Be=function(e,t){let n=[{}],a=[null],r=[0],o=[],i=0;e.forEach((function(e){let r=0,o=function(e,t){const{methods:n,model:a}=t;let r=n.one.tokenize.splitTerms(e,a).map((e=>n.one.tokenize.splitWhitespace(e,a)));return r.map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=r[i];if(n.hasOwnProperty(i)){let e=n[i][l];r[u]=e,a[e]&&(a[u]=a[u]||[],a[u]=a[u].concat(a[e]))}else r[u]=0}}return{goNext:n,endAs:a,failTo:r}};const Le=function(e,t,n){let a=0,r=[];for(let o=0;o0&&(void 0===t.goNext[a]||!t.goNext[a].hasOwnProperty(i));)a=t.failTo[a]||0;if(t.goNext[a].hasOwnProperty(i)&&(a=t.goNext[a][i],t.endAs[a])){let n=t.endAs[a];for(let t=0;t0&&(a=a.concat(l))}return e.update(a)};const Me=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Je=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Me(e.goNext,void 0),e.failTo=Me(e.failTo,0),e.endAs=Me(e.endAs,null),e};const He={buildTrie:function(e){const t=Be(e,this.world());return Je(t)}};He.compile=He.buildTrie;var We={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(a=e,"[object Object]"===Object.prototype.toString.call(a)?e:Be(e,this.world));var a;let r=Se(this,n,t);return r=r.settle(),r}},lib:He};const Ke=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},Ue=function(e,t){let{ptrs:n,byGroup:a}=e;return n=Ke(n,t),Object.keys(a).forEach((e=>{a[e]=Ke(a[e],t)})),{ptrs:n,byGroup:a}},qe=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&qe(e)&&!0===e.isView,Qe=e=>e&&qe(e)&&!0===e.isNet,_e=function(e,t,n){const a=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=a.killUnicode(e,n),e=a.parseMatch(e,t,n)),e};var Ze={matchOne:function(e,t,n){const a=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(Qe(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let r={regs:e=_e(e,n,this.world),group:t,justOne:!0},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=Ue(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Re(e))return this.intersection(e);if(Qe(e))return this.sweep(e,{tagger:!1}).view.settle();let r={regs:e=_e(e,n,this.world),group:t},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=Ue(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Re(e))return e.fullPointer.length>0;if(Qe(e))return this.sweep(e,{tagger:!1}).view.found;let r={regs:e=_e(e,n,this.world),group:t,justOne:!0};return a.match(this.docs,r,this._cache).ptrs.length>0},if:function(e,t,n){const a=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let r={regs:e=_e(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return a.match(n.docs,r,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:a}=this,r=a.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=_e(e,n,this.world);let o=this._cache||[],i=this.filter(((n,a)=>{let i={regs:e,group:t,justOne:!0};return 0===r.match(n.docs,i,o[a]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}},Ye={before:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&r.push([t[0],0,t[1]])}));let i=this.toView(r);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,a]=t;a{let o=n.before(e,t);if(o.found){let e=o.terms();a[r][1]-=e.length,a[r][3]=e.docs[0][0].id}})),this.update(a)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let a=this.fullPointer;return this.forEach(((n,r)=>{let o=n.after(e,t);if(o.found){let e=o.terms();a[r][2]+=e.length,a[r][4]=null}})),this.update(a)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Xe=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(a=e,"[object Array]"===Object.prototype.toString.call(a))?t.match(e,n):e||t.none();var a},tt=function(e,t){let[n,a,r]=e;return t.document[n]&&t.document[n][a]&&(e[3]=e[3]||t.document[n][a].id,t.document[n][r-1]&&(e[4]=e[4]||t.document[n][r-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=et(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=et(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Xe(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=et(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Xe(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var at=nt;const rt=Object.assign({},Ze,Ye,at);rt.lookBehind=rt.before,rt.lookBefore=rt.before,rt.lookAhead=rt.after,rt.lookAfter=rt.after,rt.notIf=rt.ifNo;var ot=function(e){Object.assign(e.prototype,rt)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let a=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?a.push(e):a=a.concat(e.split(lt))})),a=ct(a),a};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,gt=/&&/,mt=new RegExp(/^<\s*(\S+)\s*>/),pt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),bt=e=>e.charAt(0),vt=e=>e.substring(1),yt=e=>e.substring(0,e.length-1),wt=function(e){return e=vt(e),e=yt(e)},kt=function(e,t){let n={};for(let a=0;a<2;a+=1){if("$"===ft(e)&&(n.end=!0,e=yt(e)),"^"===bt(e)&&(n.start=!0,e=vt(e)),("["===bt(e)||"]"===ft(e))&&(n.group=null,"["===bt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===bt(e))){const t=mt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=yt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=yt(e)),"?"===ft(e)&&(n.optional=!0,e=yt(e)),"!"===bt(e)&&(n.negative=!0,e=vt(e)),"~"===bt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===bt(e)&&")"===ft(e)){gt.test(e)?(n.choices=e.split(gt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=vt(n.choices[0]);let a=n.choices.length-1;n.choices[a]=yt(n.choices[a]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>kt(e,t))))),e=""}if("/"===bt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===bt(e)&&"}"===ft(e)){if(e=wt(e),n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.sense=e[2])}return n}if("<"===bt(e)&&">"===ft(e))return e=wt(e),n.chunk=pt(e),n.greedy=!0,n;if("%"===bt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,a)=>(void 0===a?(n.min=Number(t),n.max=Number(t)):(a=a.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(a)):(n.min=Number(t),n.max=Number(a||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===bt(e)?(n.tag=vt(e),n.tag=pt(n.tag),n):"@"===bt(e)?(n.method=vt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var Pt=kt;const It=/[a-z0-9][-–—][a-z]/i;var At=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let a=e[t];if(a.word&&It.test(a.word)){let r=a.word.split(/[-–—]/g);if(n.hasOwnProperty(r[0]))continue;r=r.filter((e=>e)).reverse(),e.splice(t,1),r.forEach((n=>{let r=Object.assign({},a);r.word=n,e.splice(t,0,r)}))}}return e};const jt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},a=e.root;return n?n(a,t.model):[]},Et=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Nt=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var Dt=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(jt(e,t)):"Noun"===e.pos?n=n.concat(Et(e,t)):"Adjective"===e.pos&&(n=n.concat(Nt(e,t))):(n=n.concat(jt(e,t)),n=n.concat(Et(e,t)),n=n.concat(Nt(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))},xt=function(e){return e=function(e){let t=0,n=null;for(let a=0;a(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e},Ct=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let a=ht(e);return a=a.map((e=>Pt(e,t))),a=At(a,n),a=Dt(a,n),a=xt(a),a};const Tt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ot=function(e,t){for(let n=0;nn?a:n)+1;if(Math.abs(n-a)>(r||100))return r||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[r-1][o]+1,(c=h[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=h[r-2][o-2]+l)-1!==e.post.indexOf(t),$t=(e,t)=>-1!==e.pre.indexOf(t),St={hasQuote:e=>Gt.test(e.pre)||zt.test(e.post),hasComma:e=>Lt(e,","),hasPeriod:e=>!0===Lt(e,".")&&!1===Lt(e,"..."),hasExclamation:e=>Lt(e,"!"),hasQuestionMark:e=>Lt(e,"?")||Lt(e,"¿"),hasEllipses:e=>Lt(e,"..")||Lt(e,"…")||$t(e,"..")||$t(e,"…"),hasSemicolon:e=>Lt(e,";"),hasColon:e=>Lt(e,":"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Vt.test(e.post)||Vt.test(e.pre),hasDash:e=>Bt.test(e.post)||Bt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};St.hasQuotation=St.hasQuote;var Mt=St;let Jt=function(){};Jt=function(e,t,n,a){let r=function(e,t,n,a){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==a-1)return!1;if(void 0!==t.id&&t.id===e.id)return!0;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Ft(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Mt[t.method]&&!0===Mt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}if(void 0!==t.chunk)return e.chunk===t.chunk;if(void 0!==t.switch)return e.switch===t.switch;if(void 0!==t.machine)return e.normal===t.machine||e.machine===t.machine||e.root===t.machine;if(void 0!==t.sense)return e.sense===t.sense;if(void 0!==t.fastOr){if(t.pos&&!e.tags.has(t.pos))return null;let n=e.root||e.implicit||e.machine||e.normal;return t.fastOr.has(n)||t.fastOr.has(e.text)}return void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Jt(e,t,n,a))):t.choices.some((t=>Jt(e,t,n,a))))}(e,t,n,a);return!0===t.negative?!r:r};var Ht=Jt;const Wt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(Kt(e,e.t).length=a-e.t),e.t=a,!0)};const qt=function(e,t=0){let n=e.regs[e.r],a=!1;for(let o=0;o{let r=0,o=e.t+a+t+r;if(void 0===e.terms[o])return!1;let i=Ht(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let a=n.every(((t,n)=>{let a=e.t+n;return void 0!==e.terms[a]&&Ht(e.terms[a],t,a,e.phrase_length)}));return!0===a&&n.length>t&&(t=n.length),a}))&&t}(e);if(a){if(!0===n.negative)return null;if(!0===e.hasGroup&&(Kt(e,e.t).length+=a),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=a,!0}return!!n.optional||null},_t=function(e,t,n){let a=0;for(let r=e.t;ra||(e.t+=a,0))},Zt=function(e){const{regs:t}=e;let n=t[e.r],a=Object.assign({},n);if(a.negative=!1,Ht(e.terms[e.t],a,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];n&&(Ht(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)?e.r+=1:n.optional&&t[e.r+2]&&Ht(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?_t(e,a,t[e.r+1]):(e.t+=1,!0)},Yt=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=Ht(a,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||r){let n=e.terms[e.t+1];n&&Ht(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Xt=function(e){const{regs:t,phrase_length:n}=e;let a=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),a=e.t;for(;e.te.t?null:!0!==a.end||e.start_i+e.t===n||null},en=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},tn=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Yt(e),a.implicit&&e.terms[e.t+1]&&en(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Xt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=Kt(e,t);e.t>1&&n.greedy?a.length+=e.t-t:a.length++}(e,r),!0):null)},nn=function(e,t,n,a){if(0===e.length||0===t.length)return null;let r={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:a,inGroup:null};for(;r.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything){if(!0!==Wt(e,r)){if(e.negative){if(!Zt(r))return null}else if(!0!==Ht(r.terms[r.t],e,r.start_i+r.t,r.phrase_length)){if(!0!==e.optional)return null}else if(!tn(r))return null}else if(!tn(r))return null}else{if(e.negative&&e.anything)return null;if(!tn(r))return null}else if(!Qt(r))return null}else if(!Rt(r))return null}else if(!Ut(r))return null}let o=[null,n,r.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(r.groups).forEach((e=>{let t=r.groups[e],a=n+t.start;i[e]=[null,a,a+t.length]})),{pointer:o,groups:i}},an=function(e,t){let n=[],a={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{a[t]=a[t]||[],a[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:a}},rn=function(e,t,n){return e=e.filter((e=>{let[a,r,o]=e.pointer,i=n[a].slice(r,o);for(let e=0;e{e.groups[n][0]=t})),e},sn=function(e,t,n){let a=nn(e,t,0,e.length);return a?(a=on(a,n),a):null};var ln=function(e,t,n){n=n||[];let{regs:a,group:r,justOne:o}=t,i=[];if(!a||0===a.length)return{ptrs:[],byGroup:{}};const s=a.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=sn(r,a,t);e&&i.push(e)}}return!0===a[a.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),t.notIf&&(i=rn(i,t.notIf,e)),i=an(i,r),i.ptrs.forEach((t=>{let[n,a,r]=t;t[3]=e[n][a].id,t[4]=e[n][r-1].id})),i},un={api:ot,methods:{one:{termMethods:Mt,parseMatch:Ct,match:ln}},lib:{parseMatch:function(e,t){const n=this.world();let a=n.methods.one.killUnicode;return a&&(e=a(e,n)),n.methods.one.parseMatch(e,t,n)}}};const cn=/^\../,hn=/^#./,dn=function(e,t){let n={},a={};return Object.keys(t).forEach((r=>{let o=t[r],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),cn.test(e)?t=``),t+=">",{start:t,end:n}}(r);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let r=e[e.length-1].id;a[r]=a[r]||[],a[r].push(i.end)}))})),{starts:n,ends:a}};var gn={html:function(e){let{starts:t,ends:n}=dn(this,e),a="";return this.docs.forEach((e=>{for(let r=0;r{let n=e.pre||"",r=e.post||"";"some"===t.punctuation&&(n=n.replace(pn,""),bn.test(r)&&(r=" "),r=r.replace(fn,""),r=r.replace(/\?!+/,"?"),r=r.replace(/!+/,"!"),r=r.replace(/\?+/,"?"),r=r.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(r=r.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),r=r.replace(/\s+/," ")),t.keepPunct||(n=n.replace(pn,""),r="-"===r?" ":r.replace(mn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||r&&vn.test(r)||(r+=" "),a+=n+o+r})),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},wn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};wn.clean=wn.normal,wn.reduced=wn.root;var kn=wn;let Pn=[],In=0;for(;In<64;)Pn[In]=0|4294967296*Math.sin(++In%Math.PI);function An(e){let t,n,a,r=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(In=i=0;In>4]+Pn[i]+~~o[In|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|a>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)r[--i]+=s[i]}for(e="";i<32;)e+=(r[i>>3]>>4*(1^i++)&15).toString(16);return e}const jn={text:!0,terms:!0};let En={case:"none",unicode:"some",form:"machine",punctuation:"some"};const Nn=function(e,t){return Object.assign({},e,t)},Dn={text:e=>yn(e,{keepPunct:!0},!1),normal:e=>yn(e,Nn(kn.normal,{keepPunct:!0}),!1),implicit:e=>yn(e,Nn(kn.implicit,{keepPunct:!0}),!1),machine:e=>yn(e,En,!1),root:e=>yn(e,Nn(En,{form:"root"}),!1),hash:e=>An(yn(e,{keepPunct:!0},!1)),offset:e=>{let t=Dn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};Dn.sentences=Dn.sentence,Dn.clean=Dn.normal,Dn.reduced=Dn.root;const xn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},jn,a)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let r={};return Object.keys(a).forEach((o=>{a[o]&&Dn[o]&&(r[o]=Dn[o](e,n,t))})),r})));var n,a;return"number"==typeof e?t[e]:t}};xn.data=xn.json;var Cn=xn,Tn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};const On="[0m";var Fn={green:e=>"[32m"+e+On,red:e=>"[31m"+e+On,blue:e=>"[34m"+e+On,magenta:e=>"[35m"+e+On,cyan:e=>"[36m"+e+On,yellow:e=>"[33m"+e+On,black:e=>"[30m"+e+On,dim:e=>"[2m"+e+On,i:e=>"[3m"+e+On},Gn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Fn.blue("\n ──────")),t.forEach((t=>{console.log(Fn.blue("\n ┌─────────")),t.forEach((t=>{let a=[...t.tags||[]],r=t.text||"-";t.sense&&(r=`{${t.normal}/${t.sense}}`),t.implicit&&(r="["+t.implicit+"]"),r=Fn.yellow(r);let o="'"+r+"'";if(t.reference){let n=e.update([t.reference]).text("normal");o+=` - ${Fn.dim(Fn.i("["+n+"]"))}`}o=o.padEnd(18);let i=Fn.blue(" │ ")+Fn.i(o)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Fn[n](e)}))),e.join(", ")}(a,n);console.log(i)}))}))},zn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Fn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Fn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Fn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Fn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))},Vn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let a=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{a=function(e,t,n){let a=((e,t,n)=>{let a=9*n,r=t.start+a,o=r+t.length;return[e.substring(0,r),e.substring(r,o),e.substring(o,e.length)]})(e,t,n);return`${a[0]}${Fn.blue(a[1])}${a[2]}`}(a,e.offset,t)})),console.log(a)}))},Bn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(Tn(t),t):(!1!==e.tags&&(Gn(t),console.log("\n")),!0===e.chunks&&(zn(t),console.log("\n")),!0===e.highlight&&(Vn(t),console.log("\n")),t)};const Ln=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var $n=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((a=>{e.match(a).fullPointer.forEach((e=>{n[e[3]]={fn:t[a],end:e[2]}}))})),n}(e,t),a="";return e.docs.forEach(((t,r)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()},wrap:function(e){return $n(this,e)}};var Mn=Sn,Jn={text:function(e){let t={};var n;if(e&&"string"==typeof e&&kn.hasOwnProperty(e)?t=Object.assign({},kn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e)),void 0===t.keepSpace&&this.pointer&&(t.keepSpace=!1),void 0===t.keepPunct&&this.pointer){let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}return void 0===t.keepPunct&&(t.keepPunct=!0),void 0===t.keepSpace&&(t.keepSpace=!0),function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let a=0;ar||r<=n&&o>n},qn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Rn=function(e,t){let n=qn(t),a=[];return e.forEach((e=>{let[t]=e,r=n[t]||[];if(r=r.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===r.length)return void a.push({passthrough:e});r=r.sort(((e,t)=>e[1]-t[1]));let o=e;r.forEach(((e,t)=>{let n=function(e,t){let[n,a]=e,r=t[1],o=t[2],i={};if(ao&&(i.after=[n,o,e[2]]),i}(o,e);r[t+1]?(a.push({before:n.before,match:n.match}),n.after&&(o=n.after)):a.push(n)}))})),a},Qn=function(e,t){let n=[];return e.forEach(((a,r)=>{if(!a)return;let[o,i,s,l,u]=a,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let a=0;a<20;a+=1){if(t[n-a]){let r=t[n-a].findIndex((t=>t.id===e));if(-1!==r)return[n-a,r]}if(t[n+a]){let r=t[n+a].findIndex((t=>t.id===e));if(-1!==r)return[n+a,r]}}return null}(l,t,o);if(null!==n){let a=s-i;c=t[n[0]].slice(n[1],n[1]+a);let o=c[0]?c[0].id:null;e[r]=[n[0],n[1],n[1]+a,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,a,,,r]=e,o=t[n],i=o.findIndex((e=>e.id===r));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(a,e[2]+1)}(a,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n},_n={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===a[t].length)return void r.push(e);let n=a[t].filter((t=>Un(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);r.push(o)})),r=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n},Xn=function(e,t){let n=qn(t),a=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>Un(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},ta=function(e,t){return e.map((e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e}))},na={union:function(e){e=ea(e,this);let t=Zn(this.fullPointer,e.fullPointer);return t=ta(t,this.document),this.toView(t)}};na.and=na.union,na.intersection=function(e){e=ea(e,this);let t=Xn(this.fullPointer,e.fullPointer);return t=ta(t,this.document),this.toView(t)},na.not=function(e){e=ea(e,this);let t=Yn(this.fullPointer,e.fullPointer);return t=ta(t,this.document),this.toView(t)},na.difference=na.not,na.complement=function(){let e=this.all(),t=Yn(e.fullPointer,this.fullPointer);return t=ta(t,this.document),this.toView(t)},na.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=Zn(e,[t])})),e=ta(e,this.document),this.update(e)};var aa=function(e){Object.assign(e.prototype,na)},ra={methods:_n,api:aa},oa=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:a}=this,{methods:r}=n;let o=r.one.bulkMatch(a,e,this.methods,t);!1!==t.tagger&&r.one.bulkTagger(o,a,this.world),o=o.map((e=>{let t=e.pointer,n=a[t[0]][t[1]],r=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+r]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const ia=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var sa=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.notIf&&(e.notIf=n(e.notIf,{},t)),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(ia(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(ia(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:a,count:r}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=ia(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=a,e.minWant=r,e.minWords=e.regs.filter((e=>!e.optional)).length})),e},la=function(e,t){e=sa(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let a=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:a}},ua=function(e,t){return e.map(((n,a)=>{let r=[];Object.keys(t).forEach((n=>{e[a].has(n)&&(r=r.concat(t[n]))}));let o={};return r=r.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),r}))},ca=function(e,t){return e.map(((e,n)=>{let a=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>a.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>a.has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>a.has(e))).length>=e.minWant))}))},ha=function(e,t,n,a,r){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===r.matchOne))return[o[0]]}return o},da=function(e,t,n,a={}){let r=n.one.cacheDoc(e),o=ua(r,t.hooks);return o=ca(o,r),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let a=t[n].length;return e=e.filter((e=>a>=e.minWords)),e}))}(o,e),ha(o,e,r,n,a)},ga=function(e,t,n){let a=n.one.tagSet;if(!a.hasOwnProperty(t))return!0;let r=a[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let r=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===ga(u,e.tag,a))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${r}'`),"Noun"===e.tag&&l)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,r),e.chunk&&u.forEach((t=>t.chunk=e.chunk))})))},pa={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:oa,methods:{one:{buildNet:la,bulkMatch:da,bulkTagger:ma}}};const fa=/ /,ba=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},va=function(e,t,n,a){if(!0===e.tags.has(t))return null;if("."===t)return null;let r=n[t];if(r){if(r.not&&r.not.length>0)for(let t=0;t0)for(let t=0;t{let a=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,"[33m[3m"+r+"[0m").padEnd(24)} [32m→[0m #${t.padEnd(22)} ${(e=>"[3m"+e+"[0m")(n)}`)})(e,t,r),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),fa.test(t))!function(e,t,n,a){let r=t.split(fa);e.forEach(((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),va(e,o,n,a))}))}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nya(e,t,n,a)))};var wa=ya,ka=function(e,t,n){t=t.trim().replace(/^#/,"");for(let a=0;a0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>Pa({id:e}))),t}return[Pa({id:e})]}(e))})),n=n.filter((e=>e));let a=n[0];for(let e=1;e{let n=[],a=[e];for(;a.length>0;){let e=a.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),a.push(n)}))}return n},Ea=e=>"[object Array]"===Object.prototype.toString.call(e),Na=e=>(e=e||"").trim(),Da=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||Ia.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Aa(e)})}));let a=function(e){let t={children:[]};return e.forEach(((n,a)=>{0===n.indent?t.children=t.children.concat(n.node):e[a-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=Pa({});return e.forEach((e=>{if((e=Pa(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(ja(t=e).forEach(Pa),t);var t},xa=function(e,t){let n="-> ";t&&(n=(e=>"[2m"+e+"[0m")("→ "));let a="";return ja(e).forEach(((e,r)=>{let o=e.id||"";if(t&&(o=(e=>"[31m"+e+"[0m")(o)),0===r&&!e.id)return;let i=e._cache.parents.length;a+=" ".repeat(i)+n+o+"\n"})),a},Ca=function(e){let t=ja(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Ta={text:xa,txt:xa,array:Ca,flat:Ca},Oa=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(xa(e,!0)),null):Ta.hasOwnProperty(t)?Ta[t](e):e},Fa=e=>{ja(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Ga=/\//;let za=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Na(e),!Ga.test(e)){let t=this.json.children.find((t=>t.id===e));return new za(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!a)return null;e=a}return e})(this.json,e)||Pa({});return new za(t)}add(e,t={}){if(Ea(e))return e.forEach((e=>this.add(Na(e),t))),this;e=Na(e);let n=Pa({id:e,props:t});return this.json.children.push(n),new za(n)}remove(e){return e=Na(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return ja(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=ja(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return ja(this.json)}fillDown(){var e;return e=this.json,ja(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let a=e[n]||new Set;e[n]=new Set([...a,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let a=e[n]||{};e[n]=Object.assign({},t[n],a)}else Ea(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Fa(this.json);let e=ja(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Fa(this.json),Oa(this.json,e)}debug(){return Fa(this.json),Oa(this.json,"debug"),this}};const Va=function(e){let t=Da(e);return new za(t)};Va.prototype.plugin=function(e){e(this)};var Ba={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Hyphenated:"cyan",Adverb:"cyan"};const La=function(e){if(Ba.hasOwnProperty(e.id))return Ba[e.id];if(Ba.hasOwnProperty(e.is))return Ba[e.is];let t=e._cache.parents.find((e=>Ba[e]));return Ba[t]};var $a=function(e){const t={};return e.forEach((e=>{let{not:n,also:a,is:r,novel:o}=e.props,i=e._cache.parents;a&&(i=i.concat(a)),t[e.id]={is:r,not:n,novel:o,also:a,parents:i,children:e._cache.children,color:La(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const Sa=function(e){return e?"string"==typeof e?[e]:e:[]};var Ma=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=Sa(e[t].children),e[t].not=Sa(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e},Ja=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Ma(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const a={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:a,children:[]}}));return Va(t).cache().fillDown().out("array")}(Object.assign({},t,e));return $a(n)},Ha={one:{setTag:wa,unTag:ka,addTags:Ja}};const Wa=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Ka={tag:function(e,t="",n){if(!this.found||!e)return this;let a=this.termList();if(0===a.length)return this;const{methods:r,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Wa(e)?e.forEach((e=>r.one.setTag(a,e,i,n,t))):r.one.setTag(a,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:a,verbose:r,model:o}=this;!0===r&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Wa(e)?e.forEach((e=>a.one.unTag(n,e,i))):a.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){e=e.replace(/^#/,"");let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],a=[];this.document.forEach(((e,t)=>{e.forEach(((e,r)=>{n.find((t=>e.tags.has(t)))&&a.push([t,r,r+1])}))}));let r=this.update(a);return this.difference(r)}};var Ua=Ka,qa=function(e){Object.assign(e.prototype,Ua)},Ra={addTags:function(e){const{model:t,methods:n}=this.world(),a=t.one.tagSet;let r=(0,n.one.addTags)(e,a);return t.one.tagSet=r,this}};const Qa=new Set(["Auxiliary","Possessive"]);var _a=function(e){const{document:t,world:n}=e,a=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Qa.has(e)||!t.hasOwnProperty(n))return 1;if(Qa.has(n)||!t.hasOwnProperty(e))return-1;let a=t[e].children||[],r=a.length;return a=t[n].children||[],r-a.length})),e}(t,a)}))}))},Za={model:{one:{tagSet:{}}},compute:{tagRank:_a},methods:Ha,api:qa,lib:Ra};const Ya=/([.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s)/g,Xa=/^[.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s$/,er=/((?:\r?\n|\r)+)/;var tr=function(e){let t=[],n=e.split(er);for(let e=0;e0&&(r.push(o),e[t]="")}return r};const ir={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},sr=RegExp("("+Object.keys(ir).join("|")+")","g"),lr=RegExp("("+Object.values(ir).join("|")+")","g"),ur=function(e){if(!e)return!1;let t=e.match(lr);return null!==t&&1===t.length};var cr=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var Er=function(e,t){let n=[],a=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const r=e.split(Ar);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=kr(n),n=yr(n),n=n.filter((e=>e)),n};const Nr=/\p{Letter}/u,Dr=/[\p{Number}\p{Currency_Symbol}]/u,xr=/^[a-z]\.([a-z]\.)+/i,Cr=/[sn]['’]$/;var Tr=function(e,t){let{prePunctuation:n,postPunctuation:a,emoticons:r}=t.one,o=e,i="",s="",l=Array.from(e);if(r.hasOwnProperty(e.trim()))return{str:e.trim(),pre:i,post:" "};let u=l.length;for(let e=0;e(s=e||"",""))),e=o,i=""),{str:e,pre:i,post:s}},Or=(e,t)=>{let{str:n,pre:a,post:r}=Tr(e,t);return{text:n,pre:a,post:r,tags:new Set}},Fr=function(e,t){const n=t.model.one.unicode||{};let a=(e=e||"").split("");return a.forEach(((e,t)=>{n[e]&&(a[t]=n[e])})),a.join("")},Gr=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const zr=/([A-Z]\.)+[A-Z]?,?$/,Vr=/^[A-Z]\.,?$/,Br=/[A-Z]{2,}('s|,)?$/,Lr=/([a-z]\.)+[a-z]\.?$/;var $r=function(e){return function(e){return!0===zr.test(e)||!0===Lr.test(e)||!0===Vr.test(e)||!0===Br.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Sr=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Gr(a),a=n(a,t),a=$r(a),e.normal=a},Mr=function(e,t){const{methods:n,model:a}=t,{splitSentences:r,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=r(e=e||"",t).map((e=>{let n=o(e,a);return n=n.map((e=>i(e,a))),n.forEach((e=>{Sr(e,t)})),n})),e};const Jr=/[ .][A-Z]\.? *$/i,Hr=/(?:\u2026|\.{2,}) *$/,Wr=/\p{L}/u,Kr=/^[A-Z]\. $/;var Ur={one:{killUnicode:Fr,tokenize:{splitSentences:fr,isSentence:function(e,t){if(!1===Wr.test(e))return!1;if(!0===Jr.test(e))return!1;if(3===e.length&&Kr.test(e))return!1;if(!0===Hr.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),a=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(a)},splitTerms:Er,splitWhitespace:Or,fromString:Mr}}},qr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Rr={},Qr={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Rr[t]=!0,Qr[t]="Abbreviation",void 0!==e[1]&&(Qr[t]=[Qr[t],e[1]])}))}));var _r=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out","ex"].reduce(((e,t)=>(e[t]=!0,e)),{});let Zr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Yr={};Object.keys(Zr).forEach((function(e){Zr[e].split("").forEach((function(t){Yr[t]=e}))}));const Xr=/\//,eo=/[a-z]\.[a-z]/i,to=/[0-9]/;var no=function(e,t){let n=e.normal||e.text||e.machine;const a=t.model.one.aliases;if(a.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(a[n])),Xr.test(n)&&!eo.test(n)&&!to.test(n)){let t=n.split(Xr);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const ao=/^\p{Letter}+-\p{Letter}+$/u;var ro=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),ao.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},oo=function(e){let t=e.docs,n={};for(let e=0;euo(e,no),machine:e=>uo(e,ro),normal:e=>uo(e,Sr),freq:oo,offset:io,index:so,wordCount:lo},methods:Ur,model:{one:{aliases:qr,abbreviations:Rr,prefixes:_r,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},prePunctuation:{"#":!0,"@":!0,_:!0,"°":!0,"":!0,"":!0,"":!0,"\ufeff":!0},postPunctuation:{"%":!0,_:!0,"°":!0,"":!0,"":!0,"":!0,"\ufeff":!0},lexicon:Qr,unicode:Yr,emoticons:{"<3":!0,"3":!0,"<\\3":!0,":^P":!0,":^p":!0,":^O":!0,":^3":!0}}},hooks:["alias","machine","index","id"]},ho={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let a=n[n.length-1]||[],r=a[a.length-1];if(!r.post&&t.hasOwnProperty(r.normal)){let n=t[r.normal];r.implicit=n,r.machine=n,r.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const go=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var mo=function(e){e.prototype.autoFill=go},po=function(e,t,n){let a={},r=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete a[e]})),a};const fo={safe:!0,min:3};var bo={typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},fo,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=po(e,t,this.world());return Object.keys(r).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=r[e]})),this}},vo={model:{one:{typeahead:{}}},api:mo,lib:bo,compute:ho,hooks:["typeahead"]};b.extend(ee),b.extend(Kn),b.extend(un),b.extend(ra),b.extend(Za),b.plugin(De),b.extend(co),b.plugin(k),b.extend(We),b.extend(vo),b.extend(Ve),b.extend(pa);var yo={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},wo={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Tb0Pc0Nd0Je0Hg0BhWjeez,lTmSnQoKpHshGtFuCvoi0Vw6y0;a4e3i1u0;ck,p;k00p0;ee,pee;ah,p,s;!a,y;ahoo,h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;gh,h0;! 0h,m;huh,oh;here nOsk,ut tut;eesh,hh,it,oo;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;! 0h;h1my go0w1;d,sh;ell;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBeAi8o2u0;h,mph,rra0zzB;h,y;ly1o0;r5y8;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww,xcuse me;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;mon,o0;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh,ye;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦dick0gre0ones,records;ens","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦its,my,none,our0;!s","Noun|Verb":"true¦0:94;1:8F;2:7M;3:8Z;4:99;5:8S;6:7Y;7:6Y;8:8T;9:8C;A:9E;a8Ub80c6Ud65e5Vf58g4Zh4Qi4Ij4Fk4Cl40m3On3Ko3Hp2Hques8Wr1Ss0FtZuXvSwEyDzB;ip,oB;ne,om;awn,e5Uie5N;aLeJhGiEoCrB;ap,e8U;nd0rB;k,ry,sh4Yth;ck,nBpe,re,sh;!d,g;e7IiB;p,sB;k,t1;aBed;r,th0;it,lk,rCsBt3ve,x;h,te;!ehou2raA;aEiDoB;iBm9te,w;ce,d;be,ew,s9;cuum,l3X;pBr6;da5gra5Tlo5P;aOeNhrMiLoJrEuCwiBy5E;n,st;nBrn;e,n70;aDeCiBot,u8;bu5ck44gg0m,p;at,k,nd;ck,de,in,nsBp,v6W;f0i7Z;ll,ne,p,r4Gss,t8CuB;ch,r;ck,de,e,le,me,p,re;e5Cow,u8;ar,e,ll,mp0st,xt;g,lBng1rg70s5x;k,ly;a0Lc0Ge0Dh08i06k04l02m01n00ou7CpUqua6UtIuDwB;ea7HiB;ng,pe,t3;bEit,m,ppCrB;ge,pri2v2J;lBo65;e62y;!je7;aKeJiIoFrCuBy1;dy,ff,mb1;a7DeCiBo55ugg1;ke,ng;am,ss,t3;ckCop,p,rB;e,m;ing,pi1;ck,nk,t3;m,p;ck,ge,in,ke,ll,mp,nd,p1rBte,y;!e,t;aFeed,iElDot,rBur;ay,e4NinBu4;g,k1;a6Dit;ll,n,r7Hte;n,rk;ap,ee1Oow;a69e41i1o4O;eep,iBou3;ce,p,t;ateboa6WiB;!p;de,gnBp,ze;!al;aEeDiCoBuff1;ck,p,re,t,w;ft,p,v0;d,i3K;ck,de,pe,re,ve;aCed,nBrv1Et;se,t2F;l,r3t;aEhedu1o5OrB;aCeBo3L;en,w;pe,t3;le,n,r0O;cBil;k,rifi4;aXeFiEoCuB;b,in,le,n,s5E;a8ck,ll,oBpe,u5;f,t;de,ng,p,s1O;aRcQdo,el,fOgNje7lMmKnJo12pHque8sDturn,vBwa68;eBi1Z;al,r2;er6HoDpe7tCuB;lt,me;!a4N;l6Ert;air,eaBly,o4L;l,t;dezvo2Mt;aBedy;ke,rk;ea2i56;a5Vist0r53;act6Ber1No6EuB;nd,se;a2Uo5S;ch,s5T;c15ge,i2ke,lly,nBpYtY;ge,k;a03eZhXiVlRoLrCsy3uB;mp,n3rcha2sh;aIeGiFoBu48;be,ceDdu4fi1grBje7mi2p,te8;amBe69;!me;ed,ss;ce,de,nt;sBy;er5Rs;cti4i2;iFlDoCp,re,sBw0;e,i5Dt;l,p;iBl;ce,sh;nt,s5A;aCce,e2PuB;g,mp,n6;ce,nBy;!t;ck,le,nBpe,t,vot;!e;a2oB;ne,tograph;ak,eDnCrBt;fu4Lm9;!c2O;!l,r;ckGiFnErtDsCtBu2;ch,eA;s,te;!y;!ic;nt,r;!a6;bje7ff0il,oCrButli3A;b9d0ieA;ze;a48eDoB;d,tB;e,i4;ed,gle7t;aIeGiFoCuB;rd0;ck,d3Cld,nBp,uth,ve;it4VkB;ey;lk,n3Vrr4Tss,x;asu3Fn4CrBss;ge,it;il,nDp,rk3HsCtB;ch,t0;h,k;da5n0oeuv3A;aJeHiFoCuB;mp,st;aCbby,ck,g,oBve;k,t;d,n;cBft,m9nFst;en2k;aBc0He3vH;ch,d,k,p,se;bCcBnd,p,t3un3;e,k;el,o2I;eCiBno3X;ck,ll,ss;el,y;aCo1FuB;i4mp;m,zz;mpHnCr3PssB;ue;cr1Hdex,fluEha1k,se25teBvoi4;nt,rB;e8fa4viB;ew;en4;a7le1Y;aGeEiDoCuB;g,nt;l2Wno21ok,p,r2u2;ghlight,ke,re,t;aBd6lp;d,t;ck,m,ndCrBsh,te;b3Im,ne3Xve8;!le;aIloHossGrDuB;arBe3Un;antee,d;aCiBou2Pumb1;nd,p;de,sp;ip;ss,w;in,me,ng,s,te,ze;aWeTiOlLoHrDuB;ck,el,nBss,zz;c2Wd;aCoBy;st,wn;cBgme,me;tu1V;cDg,il,ld,rB;ce,e20mB;!at;us;aCe1Wip,oBy;at,ck,od,w;g,ke,me,re,sh,vo18;eEgDlCnBre,sh,t,x;an4i1S;e,m,t0;ht,u1K;ld;aCeBn4;d,l;r,tu1G;ce,il,ll,rm,v2L;cho,d6ffe7nJsHxDyeB;!baB;ll;cDerci2hib9pBtra7;eriBo0Q;en4meA;el,han6u2;caBtima5;pe;count0d,vy;aXeQiKoHrCuBye;b,el,mp,plica5;aEeDiCoB;ne,p;ft,nk,p,ve;am,ss;ft,g,in;cCd6ubt,wnloB;ad;k,u09;p,sDt3vB;e,iBor4;de;char6h,liCpB;at3lFu5;ke;al,ba5cFfeElDma16pos9siCtaB;il;gn,re;ay;at,ct;li01rB;ea2;b,ma6n4rBte;e,t;a0Bent0Ah03irc1l00oHrDuB;be,e,rBt;e,l,ve;aDeCoBu0Iy;p,ss,wd;d9ep;ck,ft,sh;at,de,in,lRmKnDpy,re,st,uBv0;gh,nBp1;sZt;ceFdu7fli7glomeGsDtBveL;a7rB;a8ol;eAtru7;ct;ntBrn;ra5;bFfoEmDpB;leBou0Fromi2;meA;a0DeAit,u5;rt;at,iB;ne;lap2oB;r,ur;aCiB;ck,p;im,w;aCeBip;at,ck,er;iEllen6nCrB;ge,m,t;ge,nB;el;n,r;er,re;ke,ll,mp,noe,pDrTsCt3u2ve;se;h,t;!tuB;re;aYeUiTlQoMrEuBypa0U;bb1ck1dgCff0mp,rBst,zz;den,n;et;anHeFiDoadCuB;sh;ca8;be,d6;ge;aBed;ch,k;ch,d;aDg,mb,nCoBtt1x,ycott;k,st,t;d,e;rd,st;aCeBitz,oTur;nd;me;as,d,ke,nd,opsy,te;aDef,lt,nBt;d,ef9;it;r,t;ck,il,l04nFrgDsCtt1;le;e,h;aBe;in;!d,g,k;c01dXge,iWlTnRppOrKsGttEucCwaB;rd;tiB;on;aBempt;ck;k,sB;i8ocia5;te;st;chCmB;our;!iB;ve;eCroa3;ch;al;chBg0sw0;or;aCt0;er;rm;d,m,r;dreDvB;an4;ce;ss;cBe,he,t;eDoB;rd,uA;nt;nt,ss",Actor:"true¦0:44;1:3A;2:4C;3:45;4:4B;a3Rb38c2Fd23e20f1Sg1Ih1Di19journa3Ml16m0Un0Po0Np04qu02rXsGtCunBvAw6yo5;gi,utub0;e7i6o5r1O;m1rk0;nn0t10;atherm1ld0;eterina19ip;c3Wder1I;aoisea0We6herapi3iktok0r5;anscriRo20;chn5st0;i1RoU;aiKcJeIhowHiFki0oDpCt9u6wee5;p0theart;lt1per6r5;f0ge2Y;intenWv3V;aff0ep6r5;ang0eam0;fa12mo12;ecia32okesp2S;l5me3Kn;di0oi3;ng0s5;sy,t0;girl,m1runn0;cretary,rgea3V;hol2OiQreen0Yulpt2;l2nt;a8e5oof0unningA;c5port0searJver2Q;e5ru0V;ptio1W;bbi,pp0;arter5een;back;aMerform0hLlIoEr6sycho5;logi3;actit1Oe9i7o5;duc0fess2gramm0s5;pe12titu2T;est2Lme miniVnce5;!ss;a6si5;de3D;ch0;dcaQet,li5rnst25;c10tic5;al sci5i1;enti3;a5umb0;nn0y5;er,wright;armaci3otograph0ysi0L;i1Nnel24st2tL;ffic0p5rganiz0;er4tometri3;anny,e7o6u5;n,rse;bo2Jvi6;i5phew;ce;aCeBi8o6u5;m6si0B;m5nk,th0;!my;ni6s5;sus,t0;st0;chan0Lrcha2O;gi7k0nag0t5y2;riar5;ch;ci1stra1W;a6e0Wieutena2Jo5;rd,s0;bor0dy,urea1Twy0;dol,llu29n5;s5vestig4;peZt5;a0EruY;air8ero7isto6o5ygie0J;ste29usekE;ri1;!ine;dress0sty19;arden0eDhostBirl15o8rand5uru;fa6m5pa;a,o5;th0;al5d,lf0;ie,k5te16;eep0;wr5;it0;isha,ntlO;aBella,i7ore6r5;eela1Ii0V;m1st0;g7lmm0Fnanci0r5tt0;e5st la1E; marsh1Kfig5m1;ht0;rm0th0;dit2lectri6mcee,x5;amin0cellency;ci1;aEe9i6riv0u5;de,tche1J;eti6re5;ct2;ci1ti1;a8cor4fenc7put6sign0tecDvel5;op0;ee,y;em1;c05l0;d5nc0rling;!dy;aSeRfo,hLlIo8rit7u5;r4stomer representa5;tive;ic;lCm9n6ordin4rpor0Yu5wboy;nciKri0;gressKs6tro5;ll0;tab0Kul11;edi1m5pos0;a04iss5;ion0;onel,um5;ni3;e5own;an0r5;ic,k;a7e5;erle5f;ad0;ir6nce5plC;ll2;m1wE;lebrity,o;det,pt8r5shi0;et6pe5;nt0;ak0;ain;aJeatbox0iHlogg0oyFrCu5;ddhi3ild0rglAsiness5;m1p6w5;om1;ers5;on;an;ar;i6o5;!k0th0;cklay0de,gadi0;!fri5;end;cyc5sL;li3;nk0r5;b0on6te5;nd0;!eX;cUdNgeYnHpostGrDsBt7u5yatullah;nt5th2;!ie;h6t5;endaUorney;ie3le5;te;sisQtron5;aut,om0;chbis6tis5;an,t;hop;le;aly3im4nou7y5;bo5;dy;nc0;er;st;mi6v5;is2;ni6r5;al;str4;at2;or;coun7t5;or,re5;ss;ta5;nt",Uncountable:"true¦0:28;1:2R;2:2F;3:35;4:2W;a2Qb2Hc26d1Xe1Nf1Hg19h12i0Xjewel15k0Vl0Qm0Gn0Eo0Dp04rZsMtBv9w5you guys;a7hisky,i6oo5;d,l;ldlife,ne;rmAt2;ernacul25i5;neg24ol1Ktae;eEhCime off,oBr6un5yranny;a,gst15;aff2Jea1Go6ue nor5;th;o07u5;ble5se1Ot;!shoot1;night,othpas1P;er5und2;e,mod2O;a,nnis;aFcEeDhBilk,kiAo9p8t6u5weepstak0;g1Rnshi2Dshi;ati08e5;am,el;ace2Geci0;ap,cc2meth1;n,ttl0;eep,ingl0o5;pp1r18;lf,na1Cri0;ene0Disso18;d0Sfe4l5nd,t0F;m1St;a8e6ic5;e,ke12;c5ins,laxa0Zsearch;ogni0Yrea0Y;bi0in;aBeAhys9last1So7re5;amble,mis0s5ten1W;en1Vsu0H;l5rk;i24yH; 14i3;a20tr0A;nt5ti0J;i0s;bstetri3vercrowd1xyg04;a5ews;il polXtional securi4;aCeAo7u5;m5s1F;ps;n5o1I;ey,o5;gamy;a5cha0Drchandi1Ftallurgy;sl0t;chine5thema1O; learn1ry;aught2e8i7ogi6u5;ck,g11;c,s1K;ce,ghtn1nguis1JteraTv2;ath2isuTss;ara0CindergartMn5;icke08owled0X;ce,gnor8mp7n5;forma02ter5;net,sta08;atiUort5rov;an19;a8eListo7o5ung2;ckey,mework,ne5rserad9spitali4use arrest;s4y;ry;ir,lib03ppiJs5;h5te;ish;ene9l7o6r5um,ymnas13;aGe03;lf,re;ut5yce0J;en; 5ti3;edit1po5;ol;aQicJlour,o7urni5;tu5;re;od,rgive5uri2wl;ne5;ss;cono0MducaDlectrBn9quipAthi3very8x5;ist6per5;ti0C;en0K;body,o09th1;joy5tertain5;ment;ici4o5;ni3;tiU;eBi8o6raugh5ynas4;ts;pe,wnstai5;rs;abet0s5;hon01repu5;te;b5miX;ut;aEelciDhBivi3l9o5urrency;al,ld w7n5ral,ttJuscoC;fusiIt 5;ed;ar;assi3oth0;es;aos,e5;eNw1;us;d,rP;aAi8lood,read7u5;nt1tt2;er;!th;lliarKs5;on;g5ss;ga5;ge;cLdviKeroHirGmCn7ppeal court,rithmet6spi5thleM;rin;ic;i8y5;o6th1;ing;ne;se;en7n5;es4;ty;ds;craft;bi3d5nau9;yna5;mi3;ce;id,ous5;ti3;cs","Person|Noun":"true¦a07b01cYdRePfOgMhJjFkiElDmBolive,p7r4s3trini00v1wa0;ng,rd;an,enus,iol0;a,et;ky,on5umm02;ay,e1o0uby;bin,d,se;ed,x;a2e0ol;aHn0;ny;ge,tM;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4O;1:4M;2:3Y;3:47;4:42;5:4Q;6:4C;a46b3Qc2Wd2Ie2Cf25g1Zh1Oin1Lj1Kk1Jl1Dm17n15o10p0Iqu0Hr07sUtIuFvAw7x 4B;a7ha2Y;f2i3Vt08y7;! arou2M;arAe8o7;cabu3Ol4F;gKr7;di43t1F;iety,n3S;p2Dr8s 7;do3As4H;bani1in0; rex,aHeGhingFiDoCr9u8v7;! show;m23n4rntIto0Y;agedy,ib7o3K;e,u7;n0ta3D;p4rq2V;c,er,m7;etC;!y;am,mp2Q;ct4le5x return;aIcHeGhor3Wi1kEoDpin off,tBu9y7;ll7n1Rst3Z;ab29;b7nri13per bowl,rro1I;st2Vtot0;at2Mipe1Wo14rate3Oudent7;! lo09;ft ser3Smeo12;elet6i7;ll,rm33;ab0Scurity gu22min2N;e5ho2C;la2Undwi0Fpi6;av6eBhetor4i8o7;de5om,w;t8v7;erb0M;e,u0;bAc9f7publ4r0Mspi1;er7orm2;e5r0;it0ord label;a1u3G;estion mark,ot1V;aMeJhotocoSiGlEoCr8u7yram11;ddi2SpCrpo0Hs2U;e9o7;bl39s7;pe2Uta1;diction,mi0Droga35ss relea0D;p7rt0;py;a7ebisci1;q1Ste;cn4e8g7;!gy;!r;anut,d8r7t0;cen2Usp2V;al,est0;nop3r28t7;e,hog6;bj2Rc8pia1rde0thers,ve7wn2;n,rview;cu8e7;an;pi2;arra2Nit1Oot7umb2;a1Uhi25;aAe9i8o7ur0é07;nopo3pOrni23sq1Bti2L;li0On03tt6;d4nu,t0;mm0nd0Tte7yf3;ri0;aAegBi9u7;ddi1n7;ch;ght bulb,p03ving room;bor0Ty7; up;eyno1itt6;el3ourn0;c8dices,itia27ni1Qse1Vtel0Dvert7;eb17;en25i2E;aGeaDighBo7uman right;me8sp15tb7;ed;! r7;un; scho0Ori7;se;d7v6; start,pho7;ne;ndful,sh brown,v6ze;aAelat09laci2r8u7;l3y;an7enadi2id;a0Yd slam;df3r7;l4n12;aCet11iref3lBol3r8un7;er0;ee market,i8on7;ti2;ga1;ow2u1;br4mi3n0Q;conoBffi1Bgg,lecto0Hmbas11nApidem4s1Lth4ven9x8yel7;id;ampRempl0Dte5;i0Wt;er17;my;eHiCo9r7ump truck;agonf3i7;er,ve thru;c8g12i3or,ssi2wn7;side;to06umenA;aAgni9nn2s8vide7;nd;conte5incen12tri0Q;ta09;le0O;ath,c8f7ni0terre5;ault Zerr0;al,im0;aSeQhJiIlHoBr7;edit c9uc7;ib7;le;ard;efficBke,lAmmuniqIns8pi2rr0t0Pus7yo1;in;erv7uF;atoW;ic,lM;ie5;er0Gie5;ty,vil wJ;aBeqAick6oco9r7;istmas car7ysanthemum;ol;la1;ue;ndeli2racter7;ist4;iliVllBr7;e0tifica1;hi2naDpCrAt7ucus;erpi7hedr0;ll7;ar;!bohyd7ri2;ra1;it0;l,ry;aIeHlemGoEreakCu7;nAr7tterf3;g7i0;la7;ry;ny;fa7thro9;st;dy,ro7wl;ugh;ish;an,l3;nki9r7;!ri2;er;ng;cPdJlFnCppeti1rBs9tt4utop7;sy;ic;ce5pe7;ct;ray;ec8oma3ti8;ly;do1;i6l7;er7y;gy;en; hominBj8van7;tage;ec7;ti7;ve;em;cAe8qui7;tt0;ta1;te;i8ru0;al;de5;nt",Preposition:"true¦-,aPbMcLdKexcept,fIinGmid,notwithstandiWoDpXqua,sCt7u4v2w0;/o,hereSith0;! whHin,oW;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h1ill,oward0;!s;an,r0;ough0u;!oM;ans,ince,o that,uch G;f1n0ut;!to;!f;! 0to;effect,part;or,r0;om;espite,own,u3;hez,irca;ar1e0oBy;sides,tween;ri7;bo8cross,ft7lo6m4propos,round,s1t0;!op;! 0;a whole,long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:13;1:1A;a13b0Xc0Mde0Le0Gf0Ag09h08i06ju05l03mXnVoTpOrKsDt9u6v3w2;atershed,elcome;a2ision0P;gabo5nilla,ria2;b0Mnt;ndergr2pstairs;adua0Tou2;nd;a4e2oken,ri0;en,r2;min0rori0S;boo,n;e6ilv08o4quat,ta3u2well;bordina0Mper6;b0Cndard;ciali0Nl2vereign;e,ve1;cret,n2ri0;ior;a4e2outiSubbiL;ar,bCla0Mnt0p2side1;resenta0Lublican;ci0Gsh;a5eriodic0otenti0r2;emi3incip0o2;!fession0;er,um;rall5st,tie1;ff2pposi07v0;ensi0Ei03;aggTov2;el;aUe5in4o2;biTderYr2;al,t0;iature,or;di2tr0C;an,um;attIiber0u2;sh;stice,veniM;de0mpressioQn2;cumbe1dividu0no04sta1;alf,omelBumdrum;enious,old,raZ;a5e3i2luid;ne;llow,m2;aEiJ;ir,t,vo2;riLuriL;l4pXx2;c2ecuQpeS;ess;d2iH;er;mographSrivaM;hiFlassRo3rude,unn2;ing;m5n2operaJ;creBstitue1tempor3vertab2;le;ary;m3p2;anion,lex;er3u2;ni8;ci0;e6lank,o5r2;i3u2;te;ef;ttom,urgeois;st;cademAd7l3nim0rab;al;e4terna2;ti2;ve;rt;oles2ult;ce1;nt;ic","Noun|Gerund":"true¦0:26;1:25;2:1W;3:1I;4:1Y;5:1O;a25b1Oc1Cd17en15f0Zg0Xh0Ui0Sjog20k0Ql0Mm0Jn0Ho0Dp06ques09rXsHtCuAvolunt16w6yEzo2;a8ed5i3or7r6;ap1Oest1Ci1;ki0r1O;i1r2s1Utc1U;nder6pri23;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",PhrasalVerb:"true¦0:93;1:97;2:8I;3:8W;4:8B;5:84;6:86;7:99;8:91;9:8H;A:8Y;B:8S;C:8V;D:8T;E:71;F:98;G:8Z;H:82;I:7I;J:7A;K:4H;a9Hb7Wc6Td6Ne6Lf5Jg52h4Diron0j49k42l3Gm33n30o2Yp2Equiet Hr1Zs0Lt00uYvacuu6SwOyammerBzL;ero Dip MonL;e0k0;by,ov9up;aReNhMiLor0Nrit1B;mp0n3Hpe0r5s5;ackAeel Di0U;aMiLn35;gh 3Yrd0;n Dr L;do1in,oJ;it 7Bk5lk Mrm 6Bsh Lt85v61;aw3do1o7up;aw3in,oC;rgeBsL;e 2herE;a01eZhWiSoRrNuLypQ;ckErn L;do1in,oJup;aMiLot0y 32;ckl81p F;ck HdL;e 60;n7Yp 3Gs5L;ck NdMe Lghten 6me0p o0Tre0;aw3ba4do1in,up;e Iy 2;by,oG;ink Mrow L;aw3ba4in,up;ba4ov9up;aLe 79ll64;m 2r 5O;ckBke Mlk L;ov9shit,u49;aLba4do1in,leave,o67up;ba4ft9pa6Bw3;a0Xc0Ve0Oh0Ki0Hl0Bm0An09o08p03quar5ItRuPwL;earNiL;ngMtch L;aw3ba4o8M; by;cLi6Dm 2ss0;k 66;aTeSiRoPrMuL;cKd36;aigh2Eet76iL;ke 7Tng L;al6Zup;p Lrm2G;by,in,oG;nKr 2tc4O;p F;cKmp0nd MrLveAy 2P;e Ht 2M;ba4do1up;arKeOiNlMrLurB;ead0ingBuc5;a49it 6I;c5ll o3Dn 2;ak Fe73ll0;aKber 2rt0und like;ap 5Wow Duggl5;ash 6Ooke0;eep OiLow 6;cMp L;o6Eup;e 69;in,oL;ff,v9;de1Agn 4OnLt 6Hz5;gLkE; al6Ble0;aNoLu5X;ot Lut0w 7N;aw3ba4f48oC;cKdeEk6FveA;e Qll1Ond Prv5tL; Ltl5K;do1foMin,o7upL;!on;ot,r60;aw3ba4do1in,o4Wup;oCto;al67out0rL;ap66ew 6K;ilAv5;aYeViToPuL;b 5Zle0n Lstl5;aMba4do1inLo2Jth4Ou5Q;!to;c2Xr8w3;ll Not MuL;g3IndA;a2Wf3Po7;ar8in,o7up;ng 69p oLs5;ff,p19;aLelAinEnt0;c6Id L;o3Oup;cKt0;a00eZiXlUoRrPsyc35uL;ll Nn5Lt L;aLba4do1in,oJto48up;pa4Ew3;a3Kdo1in,o22to46up;attleBess LiOop 2;ah2Fon;iMp Lr50u1Hwer 6O;do1in,o6Oup;nt0;aMuL;gEmp 6;ce u21y 6E;ck Lg0le 4Bn 6p5C;oJup;el 5OncilE;c54ir 3An0ss NtMy L;ba4oG; Hc2R;aw3ba4in,oJ;pLw4Z;e4Yt D;aMerd0oL;dAt54;il Hrrow H;aUeRiQoMuL;ddl5ll I;cKnkeyNp 6uthAve L;aLdo1in,o4Mup;l4Ow3; wi4L;ss0x 2;asur5e3TlMss L;a21up;t 6;ke Mn 6rLs2Ax0;k 6ryA;do,fun,oCsure,up;a03eWiRoMuL;ck0st I;aOc4Gg NoLse0;k Lse4E;aft9ba4do1forw38in57o10u47;in,oJ;d 6;e OghtNnMsLve 01;ten F;e 2k 2; 2e47;ar8do1in;aNt MvelL; oC;do1go,in,o7up;nEve L;in,oL;pLut;en;c5p 2sh MtchBughAy L;do1o5A;in4Qo7;eNick Mnock L;do1oCup;oCup;eMy L;in,up;l Ip L;aw3ba4do1f05in,oJto,up;aNoMuL;ic5mpE;ke3Tt H;c44zz 2;a02eXiUoQuL;nMrrLsh 6;y 2;keMt L;ar8do1;r H;lLneErse3L;d Le 2;ba4dLfast,o25up;ear,o1;de Mt L;ba4on,up;aw3o7;aLlp0;d Nl Ir Lt 2;fLof;rom;f11in,o1WuX;cKm 2nMsh0ve Lz2Q;at,it,to;d Mg LkerQ;do1in,o2Uup;do1in,oL;ut,v9;k 2;aZeUive Sloss IoNrMunL; f0S;ab hold,in44ow 2V; Lof 2J;aNb1Nit,oMr8th1JuL;nd9;ff,n,v9;bo7ft9hQw3;aw3bLdo1in,oJrise,up,w3;a4ir2I;ar 6ek0t L;aLb1Gdo1in,o1Dr8up;cMhLl2Hr8t,w3;ead;ross;d aLng 2;bo7;a0Fe08iZlVoRrNuL;ck Le2P;ar8up;eMighten LownBy 2;aw3oG;eLshe29; 2z5;g 2lNol Lrk I;aLwi22;bo7r8;d 6low 2;aMeLip0;sh0;g 6ke0mLrLtten H;e F;gSlQnOrMsLzzle0;h F;e Lm 2;aw3ba4up;d0isL;h 2;e Ll 1V;aw3fQin,o7;ht ba4ure0;eQnMsL;s 2;cNd L;fLoG;or;e D;d06l 2;cPll Lrm0t1I;aNbMdo1in,oLsho0Gth0Avictim;ff,ut,v9;a4ehi2P;pa0D;e L;do1oGup;at Ldge0nd 13y5;in,o7up;aPi1IoOrL;aMess 6op L;aw3b04in,oC;gBwB; Iubl1C;m 2;a0Bh06l03oPrMut L;aw3ba4do1oCup;ackBeep MoLy0;ss Dwd0;by,do1in,o0Vup;me OoMuntL; o2B;k 6l L;do1oG;aSbRforPin,oOtLu0P;hMoLrue;geth9;rough;ff,n,ut,v9;th,wL;ard;a4y;paLr8w3;rt;eaMose L;in,oCup;n 6r F;aOeMiL;ll0pE;ck Der Lw F;on,up;t 2;lSncel0rPsNtch MveE; in;o1Oup;h Dt L;doubt,oG;ry MvL;e 09;aw3oJ;l Lm H;aMba4do1oJup;ff,n,ut;r8w3;a0We0NiteAl0Go05rRuL;bblOckl06il0Elk 6ndl06rMsLtNy FzzA;t 01;n 0IsL;t D;e I;ov9;anXeaViMush L;oGup;ghRng L;aOba4do1forNin,oMuL;nd9p;n,ut;th;bo7lLr8w3;ong;teL;n 2;k L;do1in,o7up;ch0;arUg 6iSn5oQrOssNttlMunce Lx D;aw3ba4;e 6; ar8;e H;do1;k Dt 2;e 2;l 6;do1up;d 2;aQeed0oLurt0;cNw L;aw3ba4do1o7up;ck;k L;in,oC;ck0nk0stA; oRaOef 2lt0nd L;do1ov9up;er;up;r Mt L;do1in,oCup;do1o7;ff,nL;to;ck Qil0nNrgMsL;h D;ainBe D;g DkB; on;in,o7;aw3do1in,oCup;ff,ut;ay;ct FdRir0sk NuctionA; oG;ff;ar8o7;ouL;nd; o7;d L;do1oLup;ff,n;wn;o7up;ut",ProperNoun:"true¦barbie,c4diego,e3f2iron maiden,kirby,m0nis,riel,stevens;ercedes,i0;ckey,ssy;inn,lorence,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:76;1:64;2:6J;3:6M;4:5V;a6Bb56c4Ld4Be47f3Zg3Kh3Ci33j2Yk2Hl25m1Nn1Do1Ap0Xq0Vr0Os05tRuQvLwDxiBy9z5;a7h5i4Puri4R;a5e5ongsh0;ng3K;greb,nzib5J;ang2e5okoha3Vunfu;katerin3Krev0;a5n0R;m5Kn;arsBeAi6roclBu5;h0xi,zh5S;c7n5;d5nipeg,terth4;hoek,s1N;hi62kl3D;l66xford;aw;a8e6i5ladivost5Polgogr6N;en3lni6U;ni24r5;n2o3saill4Q;lenc4Zncouv3Vr3ughn;lan bat1Erumqi,trecht;aFbilisi,eEheDiBo9r7u5;l23n66r5;in,ku;i5ondh65;es54poli;kyo,m32ron1Rulo5;n,uS;an5jua3l2Wmisoa6Dra3;j4Wshui; hag64ssaloni2K;gucigal28hr0l av1W;briz,i6llinn,mpe59ng5rtu,shk2U;i3Hsh0;an,chu1n0p2Hyu0;aEeDh8kopje,owe1It7u5;ra5zh50;ba0It;aten is58ockholm,rasbou69uttga2Y;an8e6i5;jiazhua1llo1m5Zy0;f53n5;ya1zh4K;gh3Nt4T;att48o1Yv47;cramen18int ClBn5o paulo,ppo3Urajevo; 7aa,t5;a 5o domin3H;a3fe,m1O;antonBdie3Ffrancisco,j5ped3Qsalvad0L;o5u0;se;em,z28;lou5Bpeters27;aAe9i7o5;me,sar5t5C;io;ga,o5yadh;! de janei3H;cife,ims,nn3Lykjavik;b4Uip4lei2Knc2Rwalpindi;ingdao,u5;ez2i0R;aFeEhDiCo9r7u6yong5;ya1;eb5Aya1;a5etor3O;g53to;rt5zn0; 5la4Eo;au prin0Nelizabe26sa04;ls3Rrae5Btts28;iladelph3Inom pe1Coenix;r23tah tik3G;dua,lerZnaji,r4Qt5;na,r34;ak46des0Lm1Or6s5ttawa;a3Xlo;an,d07;a7ew5ing2Hovosibir1Lyc; 5cast38;del26orlea46taip16;g8iro4Xn5pl2Yshv35v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0Y;aFeCi9o6u5;mb2Cni28sc40;gadishu,nt6s5;c15ul;evideo,pelli1Tre31;ami,l6n16s5;kolc,sissauga;an,waukee;cca,d5lbour2Omph43ndo1Essi3;an,ell5i3;in,ín;cau,drAkass2Tl9n8r5shh4A;aca6ib5rakesh,se2M;or;i1Ty;a4EchFdal10i47;mo;id;aDeAi8o6u5vSy2;anMckn0Pdhia3;n5s angel27;d2g bea1O;brev2Ce3Mma5nz,sb2verpo29;!ss28; ma3Ai5;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Fn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd36rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Yi2H;che2d5;ianap2Mo20;aAe7o5yder2V; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Nupe;ld coa1Bthen5;bu2R;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal28es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,nkirk,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Yr es sala1KugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1P;lo7n6penhag0Ar5;do1Nk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr14;ch8sha,zh07;gliari,i9lga8mayenJn6pe town,r5tanO;acCdiff;ber19c5;un;ry;ro;aWeNhKirmingh0WoJr9u5;chareTdapeTenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iCl9ng8r5;g6l5n;in;en;aluru,hazi;fa6grade,o horizon5;te;st;ji1rut;ghd0AkFn9ot8r7s6yan n4;ur;el,r06;celo3i,ranquil08;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a04b01cc00ddis abaZgartaYhmedWizawl,lSmPnHqaZrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a8c5kaNtwerp;hora6o3;na;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aVbTcPdOeNfMgIhHiFjfk,kDlBm9new eng8or7p5s4t2u1vostok,wake is8y0;akutDyz;laanbaatar,pP;ahiti,he 0;bronx,hamptons;akhalGfo,oho,under3yd;acifUek,h0itcairn;l,x;ange county,d;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IS;1:IW;2:I5;3:I4;4:IM;5:I9;6:JD;7:GQ;8:J9;9:J5;A:HD;B:HN;C:IE;D:J2;E:II;F:H2;G:C4;H:HP;aGIbFDcDJdCSeBIfB0gAAh9Qi9Dj8Ck7Cl5Wm46n3Ko3Gp34qu33r2Bs16t0Fu0Dv03wWxiUyPzI;aMeJineb,oIsof2;e3Rf2la,ra;h3iLlJna,ynI;ab,ep;da,ma;da,h3iIra;nab;aLeKi0GolB3uJvI;etAonDH;i0na;le0sen2;el,gm3Gn,rGAs8T;aoIme0nyi;m5YyAA;aNendDRhiD8iI;dele9lKnI;if45niIo0;e,f44;a,helmi0lIma;a,ow;ka0nB;aOeLiIusa5;ck82kJlAole7viI;anGenIQ;ky,toriBE;da,lA5rIs0;a,nIoniGV;a,iFH;leInesGV;nI7rI;i1y;g9rIxGW;su5te;aZeVhSiOoMrJuIy3;i,la;acIPiIu0L;c2na,sI;hGta;nIr0H;iGya;aKffaEGnIs6;a,gtiI;ng;!nFHra;aJeIomasi0;a,l9Lo87res1;l2ndolwethu;g9Co85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe3iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlett,e0ChYiUkye,neza0oStOuJyI;bI2lvi1;ha,mayI5ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHQr5;b2fiA3m0MnIphi1;d3ia,ja,ya;er3lKmon1nJobh8MtI;a,i;dy;lEHv2;aNeJirIo0risEZy5;a,lDD;ba,e0i5lKrI;iIr6Gyl;!d8Efa;ia,lDP;hd,iNki3nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7YvI;da,inj;e0ife;en1i0ma;anA0bMd3Kh1PiBkLlKmJnd3rIs6vannaC;aCi0;ant6i3;lDEma,ome;ee0in8Ou3;in1ri0;a05e00hYiVoIuthDC;bTcSghRl8GnQsKwJxI;anAUie,y;an,e0;aJeIie,lD; merBIann8ll1marD6t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8B;hel63io;bDFer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG7oI;da,n1L;an0bKemGgi0iJnIta,y0;a86ee;han81na;a,eI;cE5kaC;bi0chJe,i0mo0nIquEFy0;di,ia;aEDelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCL;scil3LyamvaB;lly,rt2;ilome0oebe,ylI;is,lis;ggy,nelope,r5t3;ige,m0UnLo5rvaDBtJulI;a,etAin1;ricIt4T;a,e,ia;do3i07;ctav2dJfCUis6lIphCUumBYyunbileg;a,ga,iv2;eIvA9;l2tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBJkLlaKna,sIta,vi;anIha;ur;!y;a,iDNki;hoHk9SolI;a,eDE;!mh;hir,lIna,risFsreE;!a,lBO;asuMdLh2i6CnKomi8rgEJtIzanin zah3;aIhal4;li1s6;cy,etA;e9iEP;nngu30;a0Ackenz4e02iNoKrignayani,uriD8yI;a,rI;a,lOna,tH;bi0i3llBDnI;a,iI;ca,ka,qCY;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEI;!l,nB;dy,eIh,n4;nhHrva;aLdKiCKlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5EgOi,lLrI;edi77iJjem,on,yI;em,l;em,sF;an4iIliF;nIsC9;a,da;!an,han;b0DcANd0Be,g09ha,i08ja,l06n04rMsoum5YtLuJv80x9FyIz4;bell,ra,soB4;de,rI;a,eE;h8Cild1t4;a,cYgUiLjor4l7Qn4s6tKwa,yI;!aIbe6Uja9lA9;m,nBC;a,ha,in1;!aKbC6eJja,lDna,sIt62;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliACcJeduarBfern5EjIlui5W;o6Dul2;ecil2la3;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Vi75y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD6on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d2la,nI;!a,dJeBCnIsCG;!a,eBB;a,sCE;aCRcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a84i8;lIn1t7;ei;!in1;aTbb98dSepa,lNnKsJv2zI;!a,be5KetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9We;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c2t2;e2NlCB;la,nIra;a,ie,o3;a,or1;a,gh,laI;!ni;!h,nI;a,d3e,n5O;cPdon93iOkes6mi96na,rNtKurJvIxmi,y5;ern1in2;a,e53ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAFoOrKyI;lIra;a,ee,ie;istIy6B;a,en,iJyI;!na;!e,n58;nul,ri,urtnAV;aPerOlAUmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei3ongordzol;dij1w5;el7MiLjsi,lKnJrI;a,i,ri;d3na,za;ey,i,lB8s4y;ra,s6;bi7cAEdiat7EeAXiSlRmQnyakuma1BrOss6HtLvi7yI;!e,lI;a,eI;e,i8H;a6BeJhIi4MlDri0y;ar69er69ie,leErAXy;!lyn8Cri0;a,en,iIl5Qoli0yn;!ma,nGsF;a5il1;ei8Ai,l4;a,tl6I;a09eZiWoOuI;anMdLliIst61;a8DeIsF;!n9tI;!a,te;e5Hi3Iy;a,i7;!anOcelDdNelHhan7NleMni,sJva0yI;a,ce;eIie;fIlDph5S;a,in1;en,n1;i8y;!a,e,n40;lIng;!i1DlI;!i1C;anOle0nLrKsI;i88sI;!e,i87;i,ri;!a,elHif2AnI;a,etAiIy;!e,f28;a,e89iJnI;a,e88iI;e,n1;cNda,mi,nJque4UsminGvie3y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob7Z;!n9H;do3;belIdo3;!a,e,l37;a72en1i0ma;di3es,gr6Tji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin29;da,ll4rten21snI;a,i9K;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1AiKlJnriet7rmi9sI;sa,t19;en2Qga,mi;di;bi2Bil8ClOnNrKsJtIwa,yl8C;i5Nt4;n5Tti;iImo4Xri4Y;etI;!te;aCnaC;a,ey,l4;a03eXiSlQoOrLunKwI;enIyne1O;!dolD;ay,el;acieJetIiselB;a,chE;!la;ld19ogooI;sh;adys,enIor2yn2G;a,da,na;aLgi,lJna,ov84selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Ni,m3Atru86;etAi4S;a,eIna;s25vieve;ma;bJle,mIrnet,yH;al5Ji5;i5BrielI;a,l1;aUeRiQlorPoz2rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0N;n1s5X;!ca;a,enc2;en,o0;lJn0rnI;anB;ec2ic2;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no3oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c2da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh2iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr2nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d3nI;!a,e;hl2i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th2;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat3;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a3er3ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d3elHtI;al,elH;cJlI;esAi42;el2ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a3o3ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el2;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar2;el;aMberLeliKiIy;e,l2naI;!ta;a,ja;!ly;hHiJl2nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c2sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c2is6jaLksaLna,sKxI;aIia;!nd3;ia,saI;nd3;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",Person:"true¦a0Ob0Hc08d05e02g01hZinez,jYkVlSmMnKoJpHr9s7t4v2w0xzibit,yanni;ar0ednesday adams,ill.i.am,oode;hol,rO;a0oltaiO;lentino rossi,n go7;a1heresa may,i0yra banks;ger woods,mbaQ;tum,ylor;a0carlett johanss03hakespeaJinbad,lobodan milosevic,ocratM;ddam hussain,ntigold;a6e5i4o2u0za;mi,n dmc,paul,sh limbau0;gh;d stewart,nald0thko;inho,o;hanYvaldo;ese witherspoVil9mbrandt;ffi,y roma03;a0e08ip07lato,oe,uff daddy;lm06ris hiltS;prah winfrWra;as,e0iles crane,ostradamP; yo,l3ttI;acklemo4essia3i1o0ubarek;by,lie3net,rrissS;randa ju0tt romnR;ly;en;re;ady gaga,e0iberaT;bron jam0e;es;anye west,e1iefer suther0obe bryant;land;ats,ndall,sha;aime,effersCk rowling;a0itlPulk hogan;lle berry,rrisA;ast9otye;ff1m0nya,zekiel;eril lagasse,inem;ie;a1e0ick wolf,rake;gas,nzel washingt4;lt3nB;ar5h3lint2o0;nfuci0olio;us;on;aucCy0;na;dinal wols1son0;! palm9;ey;a5e3o2ro0;ck,n0;te;no;ck,yon0;ce;nksy,rack obama;ristot1shton kutch0;er;le",LastName:"true¦0:9G;1:9W;2:9Y;3:9O;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s2;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi3j6ka3IoGrFsui,uD;om50rD;c3n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps2s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv3zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins2;!on;bei0LcEes,vDzzo;as,e8;ci,hards2;ag3es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss2;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym3;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx2;ic,ov6X;ls1miD;!n1;ils2mD;co42ec;gy,kaEray3varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h3lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h3iSlQnez48oJrGuEvar3woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss2;anEnsD;en,on,t2;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks2obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m3ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers2;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw2;o,staf2Utierr7zm3;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m3;calv9zale0H;aj,i;bs2l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm3uD;cDent9ji3E;hs;ntaDrt6urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s2;er,is2wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g3he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w3;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e2uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em3liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm3tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder2mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy3;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss2;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl3yD;aEd6;in;la;aEsl3;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s2;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DN;1:CO;2:D6;3:AJ;4:CK;5:BZ;6:CF;7:D2;8:BS;9:AR;A:DA;B:D3;C:94;D:BM;aC9bB7cA7d98e8If82g7Fh6Si6Cj5Ek52l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Jkaria,n0C;hFkE;!aC7;ar5UeC6;aMoGuE;sEu2LvBJ;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB8ssY;avi3ho4;aNeLiGoEyaBN;jcie87lfgang,odrow,utE;!er;lEnst1;bGey,fredAlE;aAZiE;am,e,s;e97ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Xy;aHiEladimir,ojte7U;cFha0kt67nceErgA5va0;!nt;e3Xt65;lentEn9S;inE;!e;ghBElyss59nax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r59;avAHeEist0oy,um0;ntA9v5Wy;bGd8RmEny;!as,mEoharu;aCBie,y;iCy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8G;!de5;dHrE;en98rE;an97eEy;ll,n96;!dy;dgh,ha,iEnn3req,tsu4R;cAPka;aUcotSeQhMiKoIpenc3tEur1Xylve96zym1;anGeEua85;f0phBCvEwa84;e5Zie;!islaw,l8;lom1uE;leyma6ta;dElCm1yabonga;!dhart74n8;aGeE;lErm0;d1t1;h7Kne,qu11un,wn,y6;aEbasti0k2Cl4Prg4Mth,ymoAE;m5n;!tE;!ie,y;lFmEnti2Gq58ul;!ke5JmDu4;ik,vato7O;aZeVhe9ViRoIuFyE;an,ou;b7DdFf5pe7KssE;!elBI;ol3Fy;an,bLc62dJel,geIh0landAmHnGry,sFyE;!ce;coe,s;!aA1nD;an,eo;l45r;er78g3n8olfo,riE;go;bDeAQ;cEl8;ar6Ic6HhFkEo;!ey,ie,y;a8Vie;gFid,ubByEza;an1KnZ;g9SiE;na9Os;ch6Qfa4lImHndGpha4sFul,wi2HyE;an,mo6U;h7Jm5;alAWol2U;iACon;f,ph;ent2inE;cy,t1;aJeHhilGier6TrE;aka18eE;m,st1;!ip,lip;dA4rcy,tE;ar,e3Er1Y;b4Hdra73tr6JulE;!o19;ctav3Di3liv3m9Yndrej,rIsFtEum7wB;is,to;aFc7k7m0vE;al5S;ma;i,vM;aMeKiGoEu38;aEel,j5l0ma0r3I;h,m;cFg4i46kEl2R;!au,h7Gola;hEkEolC;olC;al,d,il,ls1vE;il8J;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Gr1;hamFr6KstaE;fa,p54;ed,mI;di0Xe,hamGis2CntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Uik;house,o0Ct1;ae5Oe9MolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2AlSmadXnRrLs1tGuricFxE;imilianAwe9;e,io;eHhFiCtEus,yC;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Ysha9tEv2;iEy;!m,n;in,on;el,oQus;!el90oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5G;ou;aXeRiPlo39oLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7BrenGuEv81we9;!iE;e,s;!zo;am,oE;n4r;a7Uevi,la4AnIonHst3thaGvE;eEi;nte;bo;!a6Del;!ny;mFnd1rEur54wr54;ry,s;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubCnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdBkJmIrGsFvi3yE;dBs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dB;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdA;ffr8rge;brFlBrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymBzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estAie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydCy29;!lC;!a2HnEov0;e9ie,y;go,iFykC;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdA;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndA;!el,ki;ie;ta;aq;as,dIgelAtE;hony,oE;i6nE;!iAy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdBeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtA;ni;dBm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfAri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Honorific:"true¦director1field marsh2lieutenant1rear0sergeant major,vice0; admir1; gener0;al",Adjective:"true¦0:8H;1:9N;2:8E;3:9E;4:8B;5:98;6:8M;7:8T;8:86;9:99;A:8W;B:7Z;C:60;D:9D;E:7J;a80b7Ic6Wd6Fe5Xf5Cg54h4Ui3Ujuni49k3Rl3Hm34n2Uo2Fp20quart6Ar1Qs0Ut0MuRvNwFye1M;ast58eKhIiHoF;man4oFrthwhi7u0I;dBzy;despr8Zn w7Cs6N;acked0XoleF;!sa7;ather14eFll o5Pste2Q;!k4;aHeGiFola5J;b9Qce versa,gi2Qle;ng4Yrsa5H;ca1lu8U;lt08nLpHrGsFttermo9I;efEu5;b7Age1; Hb2ApGsFti8H;ca7et,ide d3P;er,i4O;f3Xto da3;aYbecom2cXdSeRfPiOkn3MmNpMrJsGto49us0wF;a08iel2N;eBi2Fo47pGuF;pervis0spect2;e1okB;eFu4;cognTgul0NlFsolv0;at0ent2;aArecede01;arri0et;que,vers5;air,orF;eseBtun7S;mploy0nd2xpect0;eFisclos0ue;cid0rF;!a75covCly2sJwF;aFei7W;tCy;heck0onvinc2;ppeal2ssum2tteGuthorF;iz0;nd0;im4Bra;aKeHhough5Jip 1RoGrF;anspare1i3;gethCle8Qp notch,rpA;ena6UmpGrF;r3Ktia8;e9o76;leFst3V;nt0;a09c05e02h01iZkiYle5Mmug,nobbi46oTpQqueami46tKuFymb7L;bHi generis,pFr4;erFre69;! dupCb,vi00;du0p5HsFurb65;eq7Rtanda8C;atu6OeJi0WrFy3Z;aightGin4LungF; o25; fFfF;or6C;adfa84ri7;arGeFirit0lendAot on;c33e1F;k4se; call0lub7mbCphisticIrHuFviT;ndFth10;proof;dAry;at0;ll0n d6C;g22nF;ce5Mg7;am36eC;co1Lem4lfGnFre6;so8; suf45i3G;aGholFient2P;ar4;rlFth2;et;cr0me,tisfac5Z;aNeIheumatoAiGoF;bu7IttBy5;ghtFv5;-w2fE;cIdu79lHnown0sFtard0;is3JoF;lu3na1;e1Duc3H;e1ondi3;bAci5;aQeOicayu6laNopuli79rGuF;bl6Fnjabi;eKiIoF;b6HfGmi3IpFvBx23;er,ort6N;a6u6Q;maFor,sti6va3;!ry;ci6Nexist2ma1UpaA;cAid;ac2Dnt2XrFti3;feDma3Ati3Av6J;i2DrtFss6F;-4RiF;al,s4P;bQffOkNld MnKrJthCutIverF;!aGni5Vseas,t,wF;ei5Urou5U;ll;do14er,si51;d34g1U; bFbFe on o6go2li6;oa6P;fashion0school;!ay; gua6MbFli6;eat;eGsF;ce6er0Io0Z;dia1se;aNeMiLoFuanc0; mo47nHrthFt5P;!eF;rn;chaGdescri6Aprof2JsF;top;la1;ght4;arby,cessa8ighbor4xt;k0usiat2;aNeMiKoGuF;dHltip7;deHlGnFot,st;ochro3Yth4;dy;rn,st;ddle ag0nF;dblVi;ga,nac2re;cHgenta,in,j0Akeshift,mmGnFscu50;da4Ay;ali3Ooth;ab3Mho;aNeKiIoFumber2;ngFuti1I;stand2tF;erm,i3L;ghtwei4QteraF;l,te;ft-w2gFssCth5;al,eFit0I;nda8;nguAps0te4;apGind4nF;ow2;ut;ce co0Dgno5Kll09m01nHpso 2ErF;a3releF;va1; WaVcoSdPe2MfOgrNhibi3Ri02nMoLsHtFvalu4N;aDeF;n4Wrdep24;a6iGolFuboI;ub7ve1;de,gF;nifica1;rdi4O;a3er;own;eriGluenSreq4J;eGiIoFul1E;or;fini3p1Ttermi4I;mpGnside9rF;reD;le3;ccu9deq4Jppropr3Q;fFsitu,vitro;ro1;mJpF;arHeGl0YoFropC;li3r0V;nd2rfeD;ti5;aGeFi0Z;d3Hn48;tu2E;egGiF;c0Rte9;al,itF;ima3;ld;aMelLiJoFuma6;meHnGrrFs0Bur4;if3K;e4Co30; ma2Msick;ghfalut1VspF;an3G;liZpfE;i8llow0ndFrd05tL;sy,y;aiLener3Ciga2Jlob5oKraHuF;ilFng ho;ty;cGtF;efEis;efE;ldBod;nfE;aWeTiRlPoIrF;aGeFil4ozB;q3CtfE;gi7nt31;lk0WoJrF; keeps,eHge0OmCtunFwa3U;ateF;!ly;go2i1Os2Z;liF;sh;ag3Rowe8uF;e1oresce1;e8nF;al,i3;dGmini6rF;ti7; up;bl0l31mili0Lr Fux;oFreach2;ff;aTfSlQmNnLqu5reDthere5veryday,xF;aDem3AplIquisi3traHuF;be3FlF;ta1;!va1V;icF;it; Fti0Y;rou3sui3;erGiF;ne1;ge1;dFe1N;er4;ficie1;gCsF;t,ygo2;er;aUeMiHoGrFue;ea8owW;mina1ne,rma1ubO;dact1Yfficult,m,sGverF;ge1se;creGeNjoi1pa9tF;a1inD;et,te; Ladp0GceKfiJgene9liHpGreliDspe9voF;id,ut;ende1;ca3ghF;tfE;a1ni3;as0;facto;i4ngero05;arZeXhWivil,oMrHuF;stoma8teF;sy;aIeHu0WystalF; cleFli6;ar;epy;vBz0;erNgniza1loMmLnGrpo9veF;rt;cIduLgr1KjHsGtraF;dic0Hry;eq1Ita1;oi1ug5;a1Ci1L;mensu9pass1G;ni5ss5;ci19;ee8intzy;leba3rtaF;in;diac,efE;aUeOiJliSoGrFuck nak0;and new,isk,on1U;gGldface,naF; fiZfiZ;us;gHpartisGzarF;re;an;tiF;me;autifEhiIloHnFsiSyoI;e01iFt;gn;v0w;nd;ul;ckwards,rF;e,rB; priori,b12c0Zd0Tf0Ng0Ih0Hl0Amp7nt07pZrSsPttracti0MuLvIwF;aGkF;wa19;ke,re;ant garGeraF;ge;de;diHtF;heFoimmu6;nt07;to8;hBlF;eep;en;bitJchiv5roItF;iFsy;fiF;ci5;ga1;ra8;ry;pFt;aJetiz2roF;prHximF;ate4;ly;ia3;ll2re1;ing;iquFsy;at0e;ed;cohJiQkaHl,oGriFterW;ght;ne,of;li6;ne;olF;ic;ead;ain05ed,gressiIrF;eeF;ab7;le;ve;fGraA;id;ectGlF;ue1;ioF;na3; JeHvF;erF;se;pt,qF;ua3;hoc,infinitum;cu9tu5u3;al;ra3;erQlOoMrJsGuF;nda1;e1olu3traD;ct;te;eaGuF;pt;st;aFve;rd;aFe;ze;ra1;nt",Adverb:"true¦a08b05d01eXfRhePinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6;en,us;eldom,o0uch;!me1rt0; of;how,times,w0A;a1e0;alT;ndomSthN;ar excellenEer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag03moX; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboV;deed,steW;lla,n0;ce;or2u0;lArther0;!moK; 0ev3;examp0good,suI;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;ju9trop;ackward,y 0;far,no0; means,w; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aVbRcuz,eNhowMiEjustYnoBo9p8supposing,t5wh0yet;e1il0o3;e,st;n1re0thN; if,vM;evL;h0o;erefMo0;!uS;lus,rovided th9;r0therwiK;! not; mattEr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mGcaDorder t0;h0o;at;! 0;only,t0w0;hen;!ev3;ith2ven0;! 0;if,t9;er;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s",Determiner:"true¦aAboth,d8e5few,le4mu7neiCplenty,s3th2various,wh0;at0ich0;evB;at,e3is,ose;everal,ome;!ast,s;a1l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er","Adj|Present":"true¦a07b04cVdQeOfKhollJidRlFmDnarrJoCpAqua9r8s4t2utt3w0;aLet,ound,ro0;ng,ug08;end0hin;er;e2hort,l1mooth,our,pa9tray,u0;re,speT;i2ow;cu6da01leRpaM;eplica00ig01;ck;aGr0;eseTime,omU;bscu1pen,wn;atu0e3odeG;re;a2e1i0;gTve;an;st,y;ow;a2i1oul,r0;ee,inge;rm;iHke,ncy,st;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry,ull;le;ffu9re6;fu8libe0;raE;alm,l5o0;mpleCn3ol,rr1unterfe0;it;e0u7;ct;juga8sum7;ea1o0;se;n,r;ankru1lu0;nt;pt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:38;1:3M;2:3B;3:2E;a3Qb39c30d2Re2Kf28g1Wh1Mi1Gj1Fk1Cl15m0Zn0Uo0Tp0Kqu0Ir09sJtEuDvBw5y4za0S;el12ouP;a8e6hi1Ii4ry;ck0Ede,l4n1ry,se;d,y;a4i3P;k,ry;ntiJry;a4erda2ulgar;gue,in,st;g0pcomiG;a7en2Thi6i5ough,r4;anqu29en1ue;dy,g32me0ny,r04;ck,rs25;ll,me,rt,wd3E;aScarReQhOiNkin0ClJmHoFpEt7u5w4;eet,ift;b4dd0Wperfi1Xrre25;sta23t3;a9e8iff,r5u4;pVr1;a5ict,o4;ng;ig2Rn0N;a1ep,rn;le,rk,te0;e1Oi2Rright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Im4;!y;ek,nd2O;ck,l0mp3;a4iRrill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1BlAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;bb0ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Xte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o11u4ve0w0Vy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui16;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng19;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd10ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue0X;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiR;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0N;!ny;aDesh,iend0;a4rmE;my;erce5nan4;ciB;! ;le;r,ul4;ty;a7erie,sse5v4xtre0B;il;nti4;al;r5s4;tern,y;ly,th0;aBe8i5ru4umb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppRrk;agey,h9l8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;evLou1;e4il0;ap,e4;sy;aIiGlDoBr6u4;r0sy;ly;a7i4oad;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd","Person|Adj":"true¦brown,du2earnest,frank,mi2r0sa1;a0ich,u1;ndy;sty",Infinitive:"true¦0:8V;1:8G;2:9D;3:80;4:7N;5:91;6:9H;7:99;8:82;9:9G;A:92;B:8X;C:7K;D:7U;E:7Q;F:87;G:7V;H:7H;a82b7Jc6Sd5Le4Gf45g41h3Wi3Cj39k37l2Ym2Rnou3Vo2Lp25qu24r19s0AtYuTvRwI;aOeNiLors4rI;eJiI;ng,te;ak,st3;d4e7HthI;draw,er;a2d,ep;i2ke,nIrn;d0t;aIie;li9Eni9ry;nIplift;cov0dJear7JlIplug,tie,ve85;ea9o3K;erIo;cut,go,sta9Gval96whelm;aRePhMoLrI;aIemb3;ffi3Fmp3nsI;aDpi8;pp3ugh4;aJiJrIwaE;eat4i2;nk;aIm92;ch,se;ck3ilor,keImp0r7N;! paE;a0Fc0Ee0Ch08i06l04mugg3n03o01pYquXtQuKwI;all71eeIim;p,t4;bKccumb,ffJggeBmm93p2FrI;mouFvi2;er,i5;li80mJsiIveE;de,st;erAit;aMe7SiKrI;ang3eIi2;ng20w;fIng;f4le;gg0rI;t3ve;a3Ui9;a4DeJit,l6KoI;il,of;ak,nd;lIot6Nw;icCve;eak,i0L;aIi6;m,y;ft,nIt;g,k;aKi5LoJriIun;nk,v5X;ot,rt4;ke,rp4tt0;eIll,nd,que7Nv0w;!k,m;avenAul81;dd4tis1Ay;a0BeJip4oI;am,ut;a07b05c03d02fZgroup,heaYiXlVmUnTpRq36sNtLup,vI;amp,eJiIo2V;sCve;l,rt;i8rI;ie2ofC;eFiKtIurfa5;o1XrI;aHiDuctu8;de,gn,st;el,hra1lIreseF;a5e69;d0ew,o05;aHe31o2;a7eFiIoad,y;e2nq3Mve;mbur1nf2U;r1t;inJleDocus,re9uI;el,rbi9;an5e;aDu5;ei2k7Jla3OoIyc3;gni2Wnci3up,v0;oot,uI;ff;ct,d,liI;se,ze;tt3vi9;a9enGit,o7;aVerTinpoiFlumm0VoSrKuI;b3Oke,ni9rIt;poEs6W;eMoI;cKd,fe4BhibCnoJpo1sp0tru6vI;e,i6o4W;un5;la39u8;aGclu6dJf0occupy,sup0FvI;a5LeF;etermi47iD;aGrtr4Vsse44;cei2fo3Hi9mea7plex,sIva6;eve8iB;mp0rItrol,ve,y;a5St5O;bMccuLpKutJverIwe;lap,s19tu6Au1;gr4Pnu22pa5;era7i3Ypo1;py,r;ser2taH;aMe09iJoIultiply;leBu64;micJnIspla5;ce,g3us;!k;iIke,naA;m,ntaH;aPeLiIo1u39;e,ke,ng0quIv4;eIi66;fy;aKnIss4;d,gI;th4;rn,ve;ng26u1E;eep,nI;e3Row;oHuI;gg3xtaI;po1;gno8mWnIrk;cUdSfRgeBhQitia7ju8q14sOtKun5TvI;eIo0T;nt,st;erJimi5QoxiQrI;odu5u6;aDn,prIru5Q;et;iBpi8tIu8;il,ruD;abCibC;eBo2Bu1;iIulA;ca7;i7lu6;b5Cmer1pI;aEer47ly,oJrI;e2Ris5No2;rt,se,veI;ri9;aLeKiIoiBuE;de,jaInd0;ck;ar,iQ;mp0ng,pp4st4ve;ath0et,i2le1UoKrI;aIow;b,pp3ze;!ve4S;ast4er3Li58lRorMrJuI;lf3Tr3P;eJiIolic;ght4;e0Lsh4;b3DeKfeCgIs4B;eIi2;!t;clo1go,sIwa4J;had2Y;ee,i2Q;a0KdCl0Im0CnUquip,rTsStGvQxI;cNeEha3iMpJtI;ing0Uol;eJi8lIo1unA;aHoC;ct,di7;st,t;e2MlI;a0Xu6;alua7oI;ke,l2;chew,pou1tab13;a1u4G;aYcVdTfSgQhan5joy,lPqOrNsuMtKvI;e0VisI;aAi4L;er,i5rI;aHenGuB;e,re;iGol;ui8;arAiB;aAeIra2ulf;nd0;or5;ang0oIu8;r1w;lo1ou0CrJuI;mb0;oaGy3Z;b3ct;bKerApI;hasiIow0;ze;a0Tody,rI;a5oiI;d0l;ap1eDuI;ci3Ode;rIt;ma0Nn;a0Ne02iKo,rIwind3;aw,edAoI;wn;agno1e,ff0g,mi27sLvI;eIulA;rIst;ge,t;ab3bUcPlodAmant3pNru3GsMtI;iIoEu2W;lJngI;ui9;!l;ol2ua6;eIla5o1ro2;n1r1;a2Ne2WlKoIu0K;uIv0;raA;aIo1;im;a38ur1;af4bZcTduDep4fRliQmNnLpKra1TtaGvI;eIol2;lop;aEiDoE;oIy;te,un5;eJoI;li9;an;mCv0;a5i06oIraud,y;rm;ei2iMoKrI;ee,yI;!pt;de,mIup3;missi2Upo1;de,ma7ph0;aJrief,uI;g,nk;rk;mp4rk4uF;a06ea1h04i03l02oJrIurta17;a2ea7ipp3;ales5eZhabCinci6llYmWnIrro6;cTdQfNju8no7qu0sLtKvI;eIin5;ne,rA;aHin25ribu7;er2iIoli27pi8titu7ult;d0st;eJiIroFu1;de,gu8rm;ss;eJoI;ne;mn,n1;eIlu6ur;al,i2;buBe,men5pI;e7i3ly;eDi6u6;r5xiB;ean1iS;rcumveFte;eIoo1;ri9w;ncIre4t0ulk;el;aXeRi6lPoOrLuI;iJrIy;st,y;ld;aJeastfeMiIoad4;ng;ke;il,l12mba0XrrMth0;eIow;ed;!come,gHha2liLqueaKstJtrIwild0;ay;ow;th;e2tt3;in;bysCckfi8ff3tI;he;it;b17c0Vd0Mff0Kgr0Jl0Fm0Bn05pp01rZsSttPuNvKwaI;it,k4;en;eEoI;id;rt;gIto08;meF;aGeBraD;ct;ch;pi8sJtoI;ni9;aKeIi05u8;mb3rt,ss;le;il;re;g0Ji1ou1rI;anAi2;eaKly,oiFrI;ai1o2;nt;r,se;aMiQnJtI;icipa7;eJoIul;un5y;al;ly1;aJu1;se;lgaIze;ma7;iKlI;eAoIu6;t,w;gn;ee;ix,oI;rd;a01jNmiKoJsoI;rb;pt,rn;niIt;st0;er;ouJuB;st;rn;cLhie2knowledAquiItiva7;es5re;ce;ge;eOomKrJusI;e,tom;ue;moJpI;any,li9;da7;te;pt;andOet,i6oKsI;coKol2;ve;li9rt,uI;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Verb:"true¦born,cannot,gonna,has,keep tabs,msg",Participle:"true¦fl3g1s0writt2;e1h2;iv0one;en;own","Actor|Verb":"true¦aIbDcAd8engineFfool,g6host,judge,m4nerd,p3recruit,s1ushFvolunteFwi0;mp,tneF;cout,p0;ons6y;arent,ilot;a0ime;n,st9;eek,oof,r0uide;aduCoom;elegBoct0;or;ha1o0;a5nscript,ok;mpion,uffeur;it3o2u0;lly,tch0;er;ss;ch;d0ffili1rchite2;di1voc0;ate;ct","Adj|Gerund":"true¦0:2F;1:2H;2:25;3:23;4:20;5:2D;6:27;7:22;a24b1Zc1Hd14e0Yf0Og0Ih0Hi0Ajud1Xl07m04o00pWrQsFtAup9v8w0Pyiel4;ar5eY;lif0s01;aWeBhr9i3ouc7r8wis0;e01oub2us0yi1;ea0Mi8;l2vi1;l2mp0;atisf5creec7hoc0Ekyrocke0lo13oGpFtBu9we8;e12l2;pp1Kr8;gi1pri6roun4;a9ea23i8ri0Aun1C;mula0r3;gge3r8;t2vi1;ark2ee4;a8ot7;ki1ri1;aCe9ive0o8us7;a3l2;defi13fres7ig13laEmai13s0v8war4;ea2itali8ol0Q;si1zi1;gi1ll5mb2vi1;a5erpleAier1Dlun18r8un1J;e8o11;ce4s6vai2;xi1;ffsApNut9ver8wi1;arc7lap0Hp09ri4whel1L;goi1l5st0Y;et0;eande3i9o0Fu8;mb2;s6tiga0;a9i8o0C;fesa0Bmi0vi1;cKg0Vs0;mDn8rri0C;cBsAt9vi8;go1Gti1;e15imida0;pi3ul0;orpo1Drea6;po6;arrowi1ea2orrif5umilia0;lCr8;a0ipZo9uel8;i1li1;undbrea8wi1;ki1;a3ea0Z;aGetc7it0lDoBr9ulf8;il2;ee0Yigh8ust12;te04;r8un4;ebo4th0H;a9o8;a0we3;mi1tte3;di1scina0;mBn9x8;ac0ci0is0plo4;ab2c8du3ga04sT;han0oura03;barras6er02p8;owe3;aJeCi8;s8zz5;appoin0gus0sen0t8;r8u0N;ac0es6;biliDcCfiMgra4mBpres6serAv8;asCelo8;pi1;vi1;an4eaI;a5liH;ta0;maOri1s7un0;aOhLlo6o8ripp2ut0;mEn8rrespon4;cerCfBspi3t8vinQ;in9r8;as0ibu0ol2;ui1;lic0u6;ni1;fCmBp8;e9ro8;mi6;l2ti1;an4;or0;a8ea0il2;llen8rQ;gi1;lOptiva0ri1;eBin4lin4o9rui6u8;d4st2;i2oLri1un8;ci1;coJ;bsoQcLgonJlarImGppea2rEs8;pi3su3to8;n9un4;di1;is7;hi1;ri1;res0;li1;aBu6;si1;mi1;i8zi1;zi1;c8hi1;ele9ompan5;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:30;1:2R;2:2U;a2Jb2Dc1Ud1Be15f10gift0h0Xi0Qj0Pknown,l0Mm0Hn0Fo0Cp05qua04rVsEtAu7v5w3;arp0ea3or5;kIth2T;a3e0W;ri0;n3pd1s0;derstood,i3;fi0t0;ar5hreatCr3wi2R;a3ou19;ck0in0pp0;get0ni1N;aHcaGeEhDimCm01oak0pAt6u3;bsid28gge2Ms3;pe3ta1S;ct0nd0;at0e5r3uV;ength3ip0;en0;am0reotyp0;eci3ik0ott0;al20fi0;pIul1;ar0ut;a3c1Jle2t1S;l0t0;r0tt25;t3ut0;is1Jur1;aAe3;c7duc0f1Cg6l1new0qu5s3;pe2t3;or0ri2;e22ir0;ist1Xul1;eiv0o3;mme09rd0v1V;lli0ti1A;li19;arallel0i0Kl7o6r3ump0;e4o3;ce0Ilo0Hnou1Tpos0te2;fe0Loc8pY;i1Gli0R;a3e19;nn0;c4rgan1Bverlo3;ok0;cupi0;e3ot0;ed0gle2;a5e4ix0o3ut0;di0Vt0G;as0Qlt0;n3rk0;ag0ufact0O;eft,i4o3;ad0st;cens0mit0st0;agg0us0N;mp8n3sol1;br0debt0f6t3volv0;e3ox0F;gr1n3re18;d0si0J;e2l1oX;li0oLrov0;amm10e1o3;ok0r3;ri0E;aNe6i5lavo09oc05r3;a3i0;ct07g0Mm0;niXx0;ar0;duc1l1mbarraKn7quipp0stabliVx3;agger1p3te5;a4e3;ct0rie0S;nd0;ha0QsZ;aJeAi3;gni01miniOre2s3;a7c5grun05t3;o3reBurb0;rt0;iplSou3;nt0rE;bl0;cenVdOf8l7pre6ra5t3velop0;a3ermO;il0;ng0;ss0;ay0ight0;e4o3;rm0;rr0;m3t0;ag0;alcul1eHharg0lGo8r5u3;lt3stomS;iv1;a4owd0u3;sh0;ck0mp0;d0lo9m6n3ok0vX;centr1f4s3troll0;idVolid1;us0;b4pl3;ic1;in0;ur0;assi5os0;lebr1n5r3;ti3;fi0;tralB;a7i6o4roken,urn3;ed,t;il0r0t3und;tl0;as0;k0laIs0;bandon0cJdGffe2lDnBpp9ss7u3ward0;g4thor3;iz0;me3;nt0;o5u3;m0r0;li0re3;ci1;im1ticip1;at0;leg0t3;er0;ct0;ju4o6va3;nc0;st0;ce3knowledg0;pt0;ed","Person|Verb":"true¦b8ch7dr6foster,gra5hope,ja9lan4ma2ni9ollie,p1rob,s0tra4wade;pike,t5ue;at,eg,ier2;ck,r0;k,shal;ce;ce,nt;ew;ase,u1;iff,l1ob,u0;ck;aze,ossom","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const ko=36,Po="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Io=Po.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Ao=function(e){if(void 0!==Io[e])return Io[e];let t=0,n=1,a=ko,r=1;for(;n=0;n--,r*=ko){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t},jo=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[a];"!"===o[0]&&(t.push(r),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const a=No(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Do(wo[e]);Fo.test(e)?Object.keys(t).forEach((t=>{if(zo[t]=e,"Noun|Verb"===e){let e=Oo(t,Vo);zo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Go[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","3","<\\3","=("].forEach((e=>Go[e]="Emoticon")),delete Go[""],delete Go.null,delete Go[" "];const Bo="Singular";var Lo={beforeTags:{Determiner:Bo,Possessive:Bo,Acronym:Bo,Noun:Bo,Adjective:Bo,PresentTense:Bo,Gerund:Bo,PastTense:Bo,Infinitive:Bo,Date:Bo,Ordinal:Bo,Demonym:Bo},afterTags:{Value:Bo,Modal:Bo,Copula:Bo,PresentTense:Bo,PastTense:Bo,Demonym:Bo,Actor:Bo},beforeWords:{the:Bo,with:Bo,without:Bo,of:Bo,for:Bo,any:Bo,all:Bo,on:Bo,cut:Bo,cuts:Bo,increase:Bo,decrease:Bo,raise:Bo,drop:Bo,save:Bo,saved:Bo,saves:Bo,make:Bo,makes:Bo,made:Bo,minus:Bo,plus:Bo,than:Bo,another:Bo,versus:Bo,neither:Bo,about:Bo,favorite:Bo,best:Bo,daily:Bo,weekly:Bo,linear:Bo,binary:Bo,mobile:Bo,lexical:Bo,technical:Bo,computer:Bo,scientific:Bo,security:Bo,government:Bo,popular:Bo,formal:Bo,no:Bo,more:Bo,one:Bo},afterWords:{of:Bo,system:Bo,aid:Bo,method:Bo,utility:Bo,tool:Bo,reform:Bo,therapy:Bo,philosophy:Bo,room:Bo,authority:Bo,says:Bo,said:Bo,wants:Bo,wanted:Bo,is:Bo,can:Bo,wise:Bo}};const $o="Infinitive";var So={beforeTags:{Modal:$o,Adverb:$o,Negative:$o,Plural:$o},afterTags:{Determiner:$o,Adverb:$o,Possessive:$o,Reflexive:$o,Preposition:$o,Cardinal:$o,Comparative:$o,Superlative:$o},beforeWords:{i:$o,we:$o,you:$o,they:$o,to:$o,please:$o,will:$o,have:$o,had:$o,would:$o,could:$o,should:$o,do:$o,did:$o,does:$o,can:$o,must:$o,us:$o,me:$o,let:$o,even:$o,when:$o,help:$o,he:$o,she:$o,it:$o,being:$o,bi:$o,co:$o,contra:$o,de:$o,inter:$o,intra:$o,mis:$o,pre:$o,out:$o,counter:$o,nobody:$o,somebody:$o,anybody:$o,everybody:$o},afterWords:{the:$o,me:$o,you:$o,him:$o,us:$o,her:$o,them:$o,it:$o,himself:$o,herself:$o,itself:$o,myself:$o,ourselves:$o,themselves:$o,something:$o,anything:$o,a:$o,an:$o,up:$o,down:$o,by:$o,out:$o,off:$o,under:$o,what:$o,all:$o,to:$o,because:$o,although:$o,after:$o,before:$o,how:$o,otherwise:$o,together:$o,though:$o,into:$o,yet:$o,more:$o,here:$o,there:$o}},Mo={beforeTags:Object.assign({},So.beforeTags,Lo.beforeTags,{}),afterTags:Object.assign({},So.afterTags,Lo.afterTags,{}),beforeWords:Object.assign({},So.beforeWords,Lo.beforeWords,{}),afterWords:Object.assign({},So.afterWords,Lo.afterWords,{})};const Jo="Adjective";var Ho={beforeTags:{Determiner:Jo,Possessive:Jo,Hyphenated:Jo},afterTags:{Adjective:Jo},beforeWords:{seem:Jo,seemed:Jo,seems:Jo,feel:Jo,feels:Jo,felt:Jo,stay:Jo,appear:Jo,appears:Jo,appeared:Jo,also:Jo,over:Jo,under:Jo,too:Jo,it:Jo,but:Jo,still:Jo,really:Jo,quite:Jo,well:Jo,very:Jo,how:Jo,deeply:Jo,hella:Jo,profoundly:Jo,extremely:Jo,so:Jo,badly:Jo,mostly:Jo,totally:Jo,awfully:Jo,rather:Jo,nothing:Jo,something:Jo,anything:Jo,not:Jo,me:Jo,is:Jo},afterWords:{too:Jo,also:Jo,or:Jo}};const Wo="Gerund";var Ko={beforeTags:{Adverb:Wo,Preposition:Wo,Conjunction:Wo},afterTags:{Adverb:Wo,Possessive:Wo,Person:Wo,Pronoun:Wo,Determiner:Wo,Copula:Wo,Preposition:Wo,Conjunction:Wo,Comparative:Wo},beforeWords:{been:Wo,keep:Wo,continue:Wo,stop:Wo,am:Wo,be:Wo,me:Wo,began:Wo,start:Wo,starts:Wo,started:Wo,stops:Wo,stopped:Wo,help:Wo,helps:Wo,avoid:Wo,avoids:Wo,love:Wo,loves:Wo,loved:Wo,hate:Wo,hates:Wo,hated:Wo},afterWords:{you:Wo,me:Wo,her:Wo,him:Wo,them:Wo,their:Wo,it:Wo,this:Wo,there:Wo,on:Wo,about:Wo,for:Wo}},Uo={beforeTags:Object.assign({},Ho.beforeTags,Ko.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Ho.afterTags,Ko.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Ho.beforeWords,Ko.beforeWords,{is:"Adjective",was:"Adjective",of:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Ho.afterWords,Ko.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const qo={beforeTags:{Determiner:void 0,Cardinal:"Noun",PhrasalVerb:"Adjective"}};var Ro={beforeTags:Object.assign({},Ho.beforeTags,Lo.beforeTags,qo.beforeTags),afterTags:Object.assign({},Ho.afterTags,Lo.afterTags),beforeWords:Object.assign({},Ho.beforeWords,Lo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective",off:"Adjective",out:"Adjective"}),afterWords:Object.assign({},Ho.afterWords,Lo.afterWords)};let Qo="PastTense";const _o={beforeTags:{Adverb:Qo,Pronoun:Qo,ProperNoun:Qo,Auxiliary:Qo,Noun:Qo},afterTags:{Possessive:Qo,Pronoun:Qo,Determiner:Qo,Adverb:Qo,Comparative:Qo,Date:Qo,Gerund:Qo},beforeWords:{be:Qo,who:Qo,get:"Adjective",had:Qo,has:Qo,have:Qo,been:Qo,it:Qo,as:Qo,for:"Adjective"},afterWords:{by:Qo,back:Qo,out:Qo,in:Qo,up:Qo,down:Qo,before:Qo,after:Qo,for:Qo,the:Qo,with:Qo,as:Qo,on:Qo,at:Qo,between:Qo,to:Qo,into:Qo,us:Qo,them:Qo,me:Qo}};var Zo={beforeTags:Object.assign({},Ho.beforeTags,_o.beforeTags),afterTags:Object.assign({},Ho.afterTags,_o.afterTags),beforeWords:Object.assign({},Ho.beforeWords,_o.beforeWords),afterWords:Object.assign({},Ho.afterWords,_o.afterWords)};const Yo={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Xo={beforeTags:Object.assign({},Ho.beforeTags,So.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Ho.afterTags,So.afterTags,Yo.afterTags),beforeWords:Object.assign({},Ho.beforeWords,So.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ho.afterWords,So.afterWords,{to:void 0,as:"Adjective"})};const ei={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ti={},ni={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ai={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ri={beforeTags:Object.assign({},Ko.beforeTags,Lo.beforeTags,ei),afterTags:Object.assign({},Ko.afterTags,Lo.afterTags,ti),beforeWords:Object.assign({},Ko.beforeWords,Lo.beforeWords,ni),afterWords:Object.assign({},Ko.afterWords,Lo.afterWords,ai)};const oi="Singular",ii="Infinitive";var si={beforeTags:Object.assign({},So.beforeTags,Lo.beforeTags,{Adjective:oi,Particle:oi}),afterTags:Object.assign({},So.afterTags,Lo.afterTags,{ProperNoun:ii,Gerund:ii,Adjective:ii,Copula:oi}),beforeWords:Object.assign({},So.beforeWords,Lo.beforeWords,{is:oi,was:oi,of:oi,have:null}),afterWords:Object.assign({},So.afterWords,Lo.afterWords,{instead:ii,about:ii,his:ii,her:ii,to:null,by:null,in:null})};const li="Person";var ui={beforeTags:{Honorific:li,Person:li},afterTags:{Person:li,ProperNoun:li,Verb:li},ownTags:{ProperNoun:li},beforeWords:{hi:li,hey:li,yo:li,dear:li,hello:li},afterWords:{said:li,says:li,told:li,tells:li,feels:li,felt:li,seems:li,thinks:li,thought:li,spends:li,spendt:li,plays:li,played:li,sing:li,sang:li,learn:li,learned:li,wants:li,wanted:li}};const ci="Month",hi={beforeTags:{Date:ci,Value:ci},afterTags:{Date:ci,Value:ci},beforeWords:{by:ci,in:ci,on:ci,during:ci,after:ci,before:ci,between:ci,until:ci,til:ci,sometime:ci,of:ci,this:ci,next:ci,last:ci,previous:ci,following:ci},afterWords:{sometime:ci,in:ci,of:ci,until:ci,the:ci}};var di={beforeTags:Object.assign({},ui.beforeTags,hi.beforeTags),afterTags:Object.assign({},ui.afterTags,hi.afterTags),beforeWords:Object.assign({},ui.beforeWords,hi.beforeWords),afterWords:Object.assign({},ui.afterWords,hi.afterWords)};const gi="Place",mi={beforeTags:{Place:gi},afterTags:{Place:gi,Abbreviation:gi},beforeWords:{in:gi,by:gi,near:gi,from:gi,to:gi},afterWords:{in:gi,by:gi,near:gi,from:gi,to:gi,government:gi,council:gi,region:gi,city:gi}};let pi="Unit";const fi={"Actor|Verb":Mo,"Adj|Gerund":Uo,"Adj|Noun":Ro,"Adj|Past":Zo,"Adj|Present":Xo,"Noun|Verb":si,"Noun|Gerund":ri,"Person|Noun":{beforeTags:Object.assign({},Lo.beforeTags,ui.beforeTags),afterTags:Object.assign({},Lo.afterTags,ui.afterTags),beforeWords:Object.assign({},Lo.beforeWords,ui.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Lo.afterWords,ui.afterWords)},"Person|Date":di,"Person|Verb":{beforeTags:Object.assign({},Lo.beforeTags,ui.beforeTags,So.beforeTags),afterTags:Object.assign({},Lo.afterTags,ui.afterTags,So.afterTags),beforeWords:Object.assign({},Lo.beforeWords,ui.beforeWords,So.beforeWords),afterWords:Object.assign({},Lo.afterWords,ui.afterWords,So.afterWords)},"Person|Place":{beforeTags:Object.assign({},mi.beforeTags,ui.beforeTags),afterTags:Object.assign({},mi.afterTags,ui.afterTags),beforeWords:Object.assign({},mi.beforeWords,ui.beforeWords),afterWords:Object.assign({},mi.afterWords,ui.afterWords)},"Person|Adj":{beforeTags:Object.assign({},ui.beforeTags,Ho.beforeTags),afterTags:Object.assign({},ui.afterTags,Ho.afterTags),beforeWords:Object.assign({},ui.beforeWords,Ho.beforeWords),afterWords:Object.assign({},ui.afterWords,Ho.afterWords)},"Unit|Noun":{beforeTags:{Value:pi},afterTags:{},beforeWords:{per:pi,every:pi,each:pi,square:pi,cubic:pi,sq:pi,metric:pi},afterWords:{per:pi,squared:pi,cubed:pi,long:pi}}},bi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};fi["Plural|Verb"]={beforeWords:bi(fi["Noun|Verb"].beforeWords,{had:"Plural",have:"Plural"}),afterWords:bi(fi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null,is:"PresentTense",by:"PresentTense"}),beforeTags:bi(fi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:bi(fi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var vi=fi;const yi="Adjective",wi="Infinitive",ki="PresentTense",Pi="Singular",Ii="PastTense",Ai="Adverb",ji="Plural",Ei="Actor",Ni="Verb",Di="Noun",xi="LastName",Ci="Modal",Ti="Participle";var Oi=[null,null,{ea:Pi,ia:Di,ic:yi,ly:Ai,"'n":Ni,"'t":Ni},{oed:Ii,ued:Ii,xed:Ii," so":Ai,"'ll":Ci,"'re":"Copula",azy:yi,eer:Di,end:Ni,ped:Ii,ffy:yi,ify:wi,ing:"Gerund",ize:wi,ibe:wi,lar:yi,mum:yi,nes:ki,nny:yi,ous:yi,que:yi,ger:Di,ber:Di,rol:Pi,sis:Pi,ogy:Pi,oid:Pi,ian:Pi,zes:ki,eld:Ii,ken:Ti,ven:Ti,ten:Ti,ect:wi,ict:wi,ign:wi,ful:yi,bal:yi},{amed:Ii,aped:Ii,ched:Ii,lked:Ii,rked:Ii,reed:Ii,nded:Ii,mned:yi,cted:Ii,dged:Ii,ield:Pi,akis:xi,cede:wi,chuk:xi,czyk:xi,ects:ki,ends:Ni,enko:xi,ette:Pi,iary:Pi,wner:Pi,fies:ki,fore:Ai,gate:wi,gone:yi,ices:ji,ints:ji,ruct:wi,ines:ji,ions:ji,ners:ji,pers:ji,lers:ji,less:yi,llen:yi,made:yi,nsen:xi,oses:ki,ould:Ci,some:yi,sson:xi,ians:ji,tion:Pi,tage:Di,ique:Pi,tive:yi,tors:Di,vice:Pi,lier:Pi,fier:Pi,wned:Ii,gent:Pi,tist:Ei,pist:Ei,rist:Ei,mist:Ei,yist:Ei,vist:Ei,ists:Ei,lite:Pi,site:Pi,rite:Pi,mite:Pi,bite:Pi,mate:Pi,date:Pi,ndal:Pi,vent:Pi,uist:Ei,gist:Ei,note:Pi,cide:Pi,ence:Pi,wide:yi,vide:wi,ract:wi,duce:wi,pose:wi,eive:wi,lyze:wi,lyse:wi,iant:yi,nary:yi,erer:Ei},{elist:Ei,holic:Pi,phite:Pi,tized:Ii,urned:Ii,eased:Ii,ances:ji,bound:yi,ettes:ji,fully:Ai,ishes:ki,ities:ji,marek:xi,nssen:xi,ology:Di,osome:Pi,tment:Pi,ports:ji,rough:yi,tches:ki,tieth:"Ordinal",tures:ji,wards:Ai,where:Ai,archy:Di,pathy:Di,opoly:Di,embly:Di,phate:Di,ndent:Pi,scent:Pi,onist:Ei,anist:Ei,alist:Ei,olist:Ei,icist:Ei,ounce:wi,iable:yi,borne:yi,gnant:yi,inant:yi,igent:yi,atory:yi,rient:Pi,dient:Pi,maker:Ei},{auskas:xi,parent:Pi,cedent:Pi,ionary:Pi,cklist:Pi,keeper:Ei,logist:Ei,teenth:"Value",worker:Ei,master:Ei,writer:Ei},{logists:Ei,opoulos:xi,borough:"Place",sdottir:xi}];const Fi="Adjective",Gi="Noun",zi="Verb";var Vi=[null,null,{},{neo:Gi,bio:Gi,"de-":zi,"re-":zi,"un-":zi},{anti:Gi,auto:Gi,faux:Fi,hexa:Gi,kilo:Gi,mono:Gi,nano:Gi,octa:Gi,poly:Gi,semi:Fi,tele:Gi,"pro-":Fi,"mis-":zi,"dis-":zi,"pre-":Fi},{anglo:Gi,centi:Gi,ethno:Gi,ferro:Gi,grand:Gi,hepta:Gi,hydro:Gi,intro:Gi,macro:Gi,micro:Gi,milli:Gi,nitro:Gi,penta:Gi,quasi:Fi,radio:Gi,tetra:Gi,"omni-":Fi,"post-":Fi},{pseudo:Fi,"extra-":Fi,"hyper-":Fi,"inter-":Fi,"intra-":Fi,"deca-":Fi},{electro:Gi}];const Bi="Adjective",Li="Infinitive",$i="PresentTense",Si="Singular",Mi="PastTense",Ji="Adverb",Hi="Expression",Wi="Actor",Ki="Verb",Ui="Noun",qi="LastName";var Ri={a:[[/.[aeiou]na$/,Ui,"tuna"],[/.[oau][wvl]ska$/,qi],[/.[^aeiou]ica$/,Si,"harmonica"],[/^([hyj]a+)+$/,Hi,"haha"]],c:[[/.[^aeiou]ic$/,Bi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Mi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Mi,"rammed"],[/.[aeiou][sg]hed$/,Mi,"gushed"],[/.[aeiou]red$/,Mi,"hired"],[/.[aeiou]r?ried$/,Mi,"hurried"],[/[^aeiou]ard$/,Si,"steward"],[/[aeiou][^aeiou]id$/,Bi,""],[/.[vrl]id$/,Bi,"livid"],[/..led$/,Mi,"hurled"],[/.[iao]sed$/,Mi,""],[/[aeiou]n?[cs]ed$/,Mi,""],[/[aeiou][rl]?[mnf]ed$/,Mi,""],[/[aeiou][ns]?c?ked$/,Mi,"bunked"],[/[aeiou]gned$/,Mi],[/[aeiou][nl]?ged$/,Mi],[/.[tdbwxyz]ed$/,Mi],[/[^aeiou][aeiou][tvx]ed$/,Mi],[/.[cdflmnprstv]ied$/,Mi,"emptied"]],e:[[/.[lnr]ize$/,Li,"antagonize"],[/.[^aeiou]ise$/,Li,"antagonise"],[/.[aeiou]te$/,Li,"bite"],[/.[^aeiou][ai]ble$/,Bi,"fixable"],[/.[^aeiou]eable$/,Bi,"maleable"],[/.[ts]ive$/,Bi,"festive"],[/[a-z]-like$/,Bi,"woman-like"]],h:[[/.[^aeiouf]ish$/,Bi,"cornish"],[/.v[iy]ch$/,qi,"..ovich"],[/^ug?h+$/,Hi,"ughh"],[/^uh[ -]?oh$/,Hi,"uhoh"],[/[a-z]-ish$/,Bi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,qi,"polish-male"]],k:[[/^(k){2}$/,Hi,"kkkk"]],l:[[/.[gl]ial$/,Bi,"familial"],[/.[^aeiou]ful$/,Bi,"fitful"],[/.[nrtumcd]al$/,Bi,"natal"],[/.[^aeiou][ei]al$/,Bi,"familial"]],m:[[/.[^aeiou]ium$/,Si,"magnesium"],[/[^aeiou]ism$/,Si,"schism"],[/^[hu]m+$/,Hi,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Bi,"republican"],[/[^aeiou]ician$/,Wi,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Hi,"noooo"],[/^(yo)+$/,Hi,"yoo"],[/^wo{2,}[pt]?$/,Hi,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Si],[/[^i]fer$/,Li],[/.[^aeiou][ao]pher$/,Wi],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Bi],[/[aeiou].*ist$/,Bi],[/^[a-z]et$/,Ki]],s:[[/.[^aeiou]ises$/,$i],[/.[rln]ates$/,$i],[/.[^z]ens$/,Ki],[/.[lstrn]us$/,Si],[/.[aeiou]sks$/,$i],[/.[aeiou]kes$/,$i],[/[aeiou][^aeiou]is$/,Si],[/[a-z]'s$/,Ui],[/^yes+$/,Hi]],v:[[/.[^aeiou][ai][kln]ov$/,qi]],y:[[/.[cts]hy$/,Bi],[/.[st]ty$/,Bi],[/.[tnl]ary$/,Bi],[/.[oe]ry$/,Si],[/[rdntkbhs]ly$/,Ji],[/.(gg|bb|zz)ly$/,Bi],[/...lly$/,Ji],[/.[gk]y$/,Bi],[/[bszmp]{2}y$/,Bi],[/.[ai]my$/,Bi],[/[ea]{2}zy$/,Bi],[/.[^aeiou]ity$/,Si]]};const Qi="Verb",_i="Noun";var Zi={leftTags:[["Adjective",_i],["Possessive",_i],["Determiner",_i],["Adverb",Qi],["Pronoun",Qi],["Value",_i],["Ordinal",_i],["Modal",Qi],["Superlative",_i],["Demonym",_i],["Honorific","Person"]],leftWords:[["i",Qi],["first",_i],["it",Qi],["there",Qi],["not",Qi],["because",_i],["if",_i],["but",_i],["who",Qi],["this",_i],["his",_i],["when",_i],["you",Qi],["very","Adjective"],["old",_i],["never",Qi],["before",_i],["a",_i],["the",_i],["been",Qi]],rightTags:[["Copula",_i],["PastTense",_i],["Conjunction",_i],["Modal",_i]],rightWords:[["there",Qi],["me",Qi],["man","Adjective"],["him",Qi],["it",Qi],["were",_i],["took",_i],["himself",Qi],["went",_i],["who",_i],["jr","Person"]]},Yi={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},Xi={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},es={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},ts={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},ns={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const as=/^.([0-9]+)/;var rs=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],a=n.match(as);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(as,"")}(e,t);let a=t.rules;t.reversed&&(a=t.rev),a=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,a);for(let t=0;t{let n=e[0]||"",a=n[n.length-1]||"";t[a]=t[a]||[],t[a].push(e)})),t},is=/^([0-9]+)/,ss=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(is);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(is,"")]}(n[0],n[1])}))};var ls=function(e={}){return(e=Object.assign({},e)).rules=ss(e.rules),e.rules=os(e.rules),e.rev&&(e.rev=ss(e.rev),e.rev=os(e.rev)),e.exceptions=ss(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e},us=function(e){let{rules:t,exceptions:n,rev:a}=e;var r;return r=n,n=Object.entries(r).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:a}};const cs=ls({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),hs=ls(ts),ds=ls(Xi),gs=ls(es),ms=us(cs),ps=us(hs),fs=us(ds),bs=us(gs),vs=ls(Yi),ys=ls(ns);var ws={fromPast:cs,fromPresent:hs,fromGerund:ds,fromParticiple:gs,toPast:ms,toPresent:ps,toGerund:fs,toParticiple:bs,toComparative:vs,toSuperlative:ys,fromComparative:us(vs),fromSuperlative:us(ys)},ks=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),Ps=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],Is=function(e,t){const{irregularPlurals:n}=t.two;let a=(r=n,Object.keys(r).reduce(((e,t)=>(e[r[t]]=t,e)),{}));var r;if(a.hasOwnProperty(e))return a[e];for(let t=0;t(js[t].forEach((n=>e[n]=t)),e)),{});var Es=js,Ns=function(e){let t=e.substring(e.length-3);if(!0===Es.hasOwnProperty(t))return Es[t];let n=e.substring(e.length-2);return!0===Es.hasOwnProperty(n)?Es[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ds={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var xs=function(e,t,n){const{fromPast:a,fromPresent:r,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",a={};t.one&&t.one.prefixes&&(a=t.one.prefixes);let[r,o]=e.split(/ /);return o&&!0===a[r]&&(n=r,r=o,o=""),{prefix:n,verb:r,particle:o}}(e,t),c="";if(n||(n=Ns(e)),Ds.hasOwnProperty(e))c=Ds[e];else if("Participle"===n)c=rs(l,i);else if("PastTense"===n)c=rs(l,a);else if("PresentTense"===n)c=rs(l,r);else{if("Gerund"!==n)return e;c=rs(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Cs=function(e,t){const{toPast:n,toPresent:a,toGerund:r,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:rs(i,n),PresentTense:rs(i,a),Gerund:rs(i,r),FutureTense:"will "+e},u=rs(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l},Ts={toInfinitive:xs,conjugate:Cs,all:function(e,t){let n=Cs(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}};const Os=function(e,t){const n=t.two.models.toSuperlative;return rs(e,n)},Fs=function(e,t){const n=t.two.models.toComparative;return rs(e,n)};var Gs=function(e="",t=[]){const n=e.length;for(let a=n<=6?n-1:6;a>=1;a-=1){let r=e.substring(n-a,e.length);if(!0===t[r.length].hasOwnProperty(r))return e.slice(0,n-a)+t[r.length][r]}return null};const zs="ically",Vs=new Set(["analyt"+zs,"chem"+zs,"class"+zs,"clin"+zs,"crit"+zs,"ecolog"+zs,"electr"+zs,"empir"+zs,"frant"+zs,"grammat"+zs,"ident"+zs,"ideolog"+zs,"log"+zs,"mag"+zs,"mathemat"+zs,"mechan"+zs,"med"+zs,"method"+zs,"method"+zs,"mus"+zs,"phys"+zs,"phys"+zs,"polit"+zs,"pract"+zs,"rad"+zs,"satir"+zs,"statist"+zs,"techn"+zs,"technolog"+zs,"theoret"+zs,"typ"+zs,"vert"+zs,"whims"+zs]),Bs=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Ls=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),$s={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Ss=function(e){return e.endsWith("ly")?Vs.has(e)?e.replace(/ically/,"ical"):Ls.has(e)?null:$s.hasOwnProperty(e)?$s[e]:Gs(e,Bs)||e:null};const Ms=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Js={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Hs=function(e){if(Js.hasOwnProperty(e))return Js[e];let t=Gs(e,Ms);return t||e+"ly"};const Ws=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Ks={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Us=new Set(["terrible","annoying"]);var qs={toSuperlative:Os,toComparative:Fs,toAdverb:Hs,toNoun:function(e){if(Ks.hasOwnProperty(e))return Ks[e];if(Us.has(e))return null;let t=Gs(e,Ws);return t||e+"ness"},fromAdverb:Ss,fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return rs(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return rs(e,n)},all:function(e,t){let n=[e];return n.push(Os(e,t)),n.push(Fs(e,t)),n.push(Hs(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},Rs={noun:As,verb:Ts,adjective:qs},Qs={Singular:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.noun.toPlural(e,a);r[o]||(t[o]=t[o]||"Plural")},Actor:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.noun.toPlural(e,a);r[o]||(t[o]=t[o]||["Plural","Actor"])},Comparable:(e,t,n,a)=>{let r=a.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,a);r[s]||(t[s]=t[s]||"Superlative");let l=i(e,a);r[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,a)=>{let r=n.two.transform.noun.toPlural(e,a);t[r]=t[r]||["Demonym","Plural"]},Infinitive:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.verb.conjugate(e,a);Object.entries(o).forEach((e=>{r[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,a)=>{let r=a.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=a.one._multiCache,[i,s]=e.split(" ");r[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,a);delete l.FutureTense,Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||r[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},_s=function(e,t){const{methods:n,model:a}=t;let r={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Qs.hasOwnProperty(i)&&Qs[i](t,r,n,a),r[t]=r[t]||i})),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},Zs=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let a=0;e.forEach(((r,o)=>{t.test(r.post)&&function(e,t){const n=/^[0-9]+$/;let a=e[t];if(!a)return!1;const r=new Set(["may","april","august","jan"]);if("like"===a.normal||r.has(a.normal))return!1;if(a.tags.has("Place")||a.tags.has("Date"))return!1;if(e[t-1]){let n=e[t-1];if(n.tags.has("Date")||r.has(n.normal))return!1;if(n.tags.has("Adjective")||a.tags.has("Adjective"))return!1}let o=a.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(a,o+1)),a=o+1)})),ae.endsWith(t))):"s"===t&&!el.find((t=>e.endsWith(t)))},nl={two:{quickSplit:Zs,expandLexicon:_s,transform:Rs,looksPlural:tl}},al=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const rl=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,a)=>(t&&(e[a[0]]=t),e[a[1]]=n,e)),{})};var ol=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:a,toGerund:r,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=rl(n,"Infinitive","PastTense"),Object.assign(s,l),l=rl(a,"Infinitive","Verb"),Object.assign(s,l),l=rl(r,"Infinitive","Gerund"),Object.assign(s,l),l=rl(o,"Adjective","Superlative"),Object.assign(s,l),l=rl(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let il={two:{models:ws}};const sl={"Actor|Verb":"Actor","Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"FirstName","Person|Place":"Person","Person|Adj":"Adjective","Plural|Verb":"Plural","Unit|Noun":"Noun"},ll=function(e,t){const n={model:t,methods:nl};let{lex:a,_multi:r}=nl.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},ul=function(e,t,n){let a=Cs(e,il);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},cl=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach((r=>{const o=e[r];if(n[r]=sl[o],"Noun|Verb"!==o&&"Person|Verb"!==o&&"Actor|Verb"!==o||ul(r,a,!1),"Adj|Present"===o&&(ul(r,a,!0),function(e,t,n){let a=Os(e,n);t[a]=t[a]||"Superlative";let r=Fs(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=xs(r,il,"Gerund");a[e]||(n[e]="Infinitive")}if("Noun|Gerund"!==o&&"Adj|Noun"!==o&&"Person|Noun"!==o||function(e,t,n){let a=Oo(e,n);t[a]=t[a]||"Plural"}(r,a,t),"Adj|Past"===o){let e=xs(r,il,"PastTense");a[e]||(n[e]="Infinitive")}})),t=ll(n,t)};var hl=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=ll(e.one.lexicon,e)).one.lexicon,e),e=cl(e.two.switches,e),e=ol(e),e=al(e)};let dl={one:{_multiCache:{},lexicon:Go},two:{irregularPlurals:yo,models:ws,suffixPatterns:Oi,prefixPatterns:Vi,endsWith:Ri,neighbours:Zi,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z°]{1,4})$/,"NumericValue","9km"]],switches:zo,clues:vi,uncountable:{},orgWords:ks}};dl=hl(dl);var gl=dl,ml=function(e,t,n,a){const r=a.methods.one.setTag;if(0===t&&e.length>=3){const t=/:/;if(e[0].post.match(t)){let t=e[1];if(t.tags.has("Value")||t.tags.has("Email")||t.tags.has("PhoneNumber"))return;r([e[0]],"Expression",a,null,"2-punct-colon''")}}},pl=function(e,t,n,a){const r=a.methods.one.setTag;"-"===e[t].post&&e[t+1]&&r([e[t],e[t+1]],"Hyphenated",a,null,"1-punct-hyphen''")};const fl=/^(under|over|mis|re|un|dis|semi)-?/;var bl=function(e,t,n){const a=n.two.switches;let r=e[t];if(a.hasOwnProperty(r.normal))r.switch=a[r.normal];else if(fl.test(r.normal)){let e=r.normal.replace(fl,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}},vl=function(e,t,n){if(!t||0===t.length)return;const a="undefined"!=typeof process&&process.env?process.env:self.env||{};a&&a.DEBUG_TAGS&&((e,t,n="")=>{let a=e.text||"["+e.implicit+"]";var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,"[33m[3m"+r+"[0m").padEnd(24)} [32m→[0m #${t.padEnd(22)} ${(e=>"[3m"+e+"[0m")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const yl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var wl=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t)))||(tl(e.normal)?vl(e,"Plural","3-plural-guess"):vl(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ns(e.normal);t&&vl(e,t,"3-verb-tense-guess")}}(a)};const kl=/^\p{Lu}[\p{Ll}'’]/u,Pl=/[0-9]/,Il=["Date","Month","WeekDay","Unit","Expression"],Al=/[IVX]/,jl=/^[IVXLCDM]{2,}$/,El=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,Nl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Dl=function(e,t,n){let a=e[t];a.index=a.index||[0,0];let r=a.index[1],o=a.text||"";return 0!==r&&!0===kl.test(o)&&!1===Pl.test(o)?Il.find((e=>a.tags.has(e)))||a.pre.match(/["']$/)||"the"===a.normal?null:(wl(e,t,n),a.tags.has("Noun")||a.tags.clear(),vl(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&jl.test(o)&&Al.test(o)&&El.test(o)&&!Nl[a.normal]?(vl(a,"RomanNumeral","2-xvii"),!0):null};const xl=function(e="",t=[]){const n=e.length;let a=7;n<=a&&(a=n-1);for(let r=a;r>1;r-=1){let a=e.substring(n-r,n);if(!0===t[a.length].hasOwnProperty(a))return t[a.length][a]}return null};var Cl=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=xl(a.normal,n.two.suffixPatterns);if(null!==e)return vl(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=xl(a.implicit,n.two.suffixPatterns),null!==e))return vl(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const Tl=/['‘’‛‵′`´]/,Ol=function(e,t){for(let n=0;nn-3&&(a=n-3);for(let n=a;n>2;n-=1){let a=e.substring(0,n);if(!0===t[a.length].hasOwnProperty(a))return t[a.length][a]}return null}(a.normal,n.two.prefixPatterns);if(null!==e)return vl(a,e,"2-prefix"),a.confidence=.5,!0}return null};const zl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Vl=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!zl.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Bl=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Ll=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var $l=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let a=Number(n.normal);if(a&&!isNaN(a)&&a>1400&&a<2100){let r=e[t-1],o=e[t+1];if(Vl(r)||Vl(o))return vl(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(Bl(r)||Bl(o))return vl(n,"Year","2-tagYear-close");if(Ll(e[t-2])||Ll(e[t+2]))return vl(n,"Year","2-tagYear-far");if(r&&(r.tags.has("Determiner")||r.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return vl(n,"Year","2-tagYear-noun")}}}return null},Sl=function(e,t,n,a){const r=a.methods.one.setTag,o=e[t],i=["PastTense","PresentTense","Auxiliary","Modal","Particle"];o.tags.has("Verb")&&(i.find((e=>o.tags.has(e)))||r([o],"Infinitive",a,null,"2-verb-type''"))};const Ml=/^[A-Z]('s|,)?$/,Jl=/^[A-Z-]+$/,Hl=/^[A-Z]+s$/,Wl=/([A-Z]\.)+[A-Z]?,?$/,Kl=/[A-Z]{2,}('s|,)?$/,Ul=/([a-z]\.)+[a-z]\.?$/,ql={I:!0,A:!0},Rl={la:!0,ny:!0,us:!0,dc:!0,gb:!0};var Ql=function(e,t,n){let a=e[t];return a.tags.has("RomanNumeral")||a.tags.has("Acronym")?null:function(e,t){let n=e.text;if(!1===Jl.test(n)){if(!(n.length>3&&!0===Hl.test(n)))return!1;n=n.replace(/s$/,"")}return!(n.length>5||ql.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Wl.test(n)&&!0!==Ul.test(n)&&!0!==Ml.test(n)&&!0!==Kl.test(n))}(a,n)?(a.tags.clear(),vl(a,["Acronym","Noun"],"3-no-period-acronym"),!0===Rl[a.normal]&&vl(a,"Place","3-place-acronym"),!0===Hl.test(a.text)&&vl(a,"Plural","3-plural-acronym"),!0):!ql.hasOwnProperty(a.text)&&Ml.test(a.text)?(a.tags.clear(),vl(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(vl(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&Jl.test(a.text)&&a.text.length<=6?(vl(a,"Acronym","3-titlecase-acronym"),!0):null};const _l=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Zl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var Yl=function(e,t,n){const{leftTags:a,leftWords:r,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||_l(e[t-1],r),l=l||_l(e[t+1],o),l=l||Zl(e[t-1],a),l=l||Zl(e[t+1],i),l)return vl(s,l,"3-[neighbour]"),wl(e,t,n),e[t].confidence=.2,!0}return null};const Xl=function(e,t,n){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||!(n||(a=e.text,!/^\p{Lu}[\p{Ll}'’]/u.test(a)))&&(0!==t||e.tags.has("Singular")));var a};var eu=function(e,t,n,a){const r=n.model.two.orgWords,o=n.methods.one.setTag;let i=e[t];if(!0===r[i.machine||i.normal]&&Xl(e[t-1],t-1,a)){o([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Xl(e[r],r,a);r-=1)o([e[r]],"Organization",n,null,"3-[org-word]")}return null},tu=function(e,t,n){let a=!1,r=e[t].tags;(0===r.size||1===r.size&&(r.has("Hyphenated")||r.has("HashTag")||r.has("Prefix")))&&(a=!0),a&&(vl(e[t],"Noun","3-[fallback]"),wl(e,t,n),e[t].confidence=.1)};const nu=/^[A-Z][a-z]/,au=(e,t)=>e[t].tags.has("ProperNoun")&&nu.test(e[t].text)?"Noun":null,ru=(e,t,n)=>0!==t||e[1]?null:n,ou={"Adj|Gerund":(e,t)=>au(e,t),"Adj|Noun":(e,t)=>au(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Actor|Verb":(e,t)=>au(e,t),"Adj|Past":(e,t)=>au(e,t),"Adj|Present":(e,t)=>au(e,t),"Noun|Gerund":(e,t)=>au(e,t),"Noun|Verb":(e,t)=>au(e,t)||ru(e,t,"Infinitive"),"Plural|Verb":(e,t)=>au(e,t)||ru(e,t,"PresentTense")||function(e,t,n){return 0===t&&e.length>3?n:null}(e,t,"Plural"),"Person|Noun":(e,t)=>au(e,t),"Person|Verb":(e,t)=>0!==t?au(e,t):null,"Person|Adj":(e,t)=>0===t&&e.length>1||au(e,t)?"Person":null};var iu=ou;const su="undefined"!=typeof process&&process.env?process.env:self.env||{},lu=/^(under|over|mis|re|un|dis|semi)-?/,uu=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,a=null;return t.hasOwnProperty(n)&&(a=t[n]),a&&su.DEBUG_TAGS&&console.log(`\n [2m[3m ↓ - '${n}' [0m`),a},cu=(e,t={},n)=>{if(!e||!t)return null;let a=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),r=a.find((e=>t[e]));return r&&su.DEBUG_TAGS&&console.log(` [2m[3m ↓ - '${e.normal||e.implicit}' (#${r}) [0m`),r=t[r],r};var hu=function(e,t,n){const a=n.model,r=n.methods.one.setTag,{switches:o,clues:i}=a.two,s=e[t];let l=s.normal||s.implicit||"";if(lu.test(l)&&!o[l]&&(l=l.replace(lu,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,a){if(!n)return null;const r=a.one.tagSet;let o=uu(e[t+1],n.afterWords);return o=o||uu(e[t-1],n.beforeWords),o=o||cu(e[t-1],n.beforeTags,r),o=o||cu(e[t+1],n.afterTags,r),o}(e,t,i[o],a);iu[o]&&(u=iu[o](e,t)||u),u?(r([s],u,n,null,`3-[switch] (${o})`),wl(e,t,a)):su.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}};const du={there:!0,this:!0,it:!0,him:!0,her:!0,us:!0};var gu=function(e,t){const n=t.methods.one.setTag,a=t.model.one._multiCache||{};let r=e[0];if(("Noun|Verb"===r.switch||r.tags.has("Infinitive"))&&e.length>=2){if(e.length<4&&!du[e[1].normal])return;if(!r.tags.has("PhrasalVerb")&&a.hasOwnProperty(r.normal))return;(e[1].tags.has("Noun")||e[1].tags.has("Determiner"))&&(e.slice(1,3).some((e=>e.tags.has("Verb")))&&!r.tags.has("#PhrasalVerb")||n([r],"Imperative",t,null,"3-[imperative]"))}};const mu=function(e){if(e.filter((e=>!e.tags.has("ProperNoun"))).length<=3)return!1;const t=/^[a-z]/;return e.every((e=>!t.test(e.text)))},pu=function(e,t,n,a){for(let r=0;r{ml(e,0,t,n);for(let t=0;t{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var yu=function(e){const t=e.world,n=Object.keys(vu);e.docs.forEach((e=>{for(let a=0;a{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=Tu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=Cu},Fu=function(e,t,n){let[a,r]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e))),n[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const Gu=/'/;var zu=function(e,t){let n=e[t].normal.split(Gu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let a=e[t+1];if(a&&a.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const Vu=/'/;var Bu=function(e,t){let n=e[t].normal.split(Vu)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>!(!e[t+1]||"better"!=e[t+1].normal)||e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]},Lu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){if(e[t+1]&&"never"===e[t+1].normal)return["have"];let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if("i"===n.normal)return["am","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const $u={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Su={in:!0,by:!0,for:!0};var Mu=(e,t)=>{let n=e[t];if($u.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("QuestionWord"))return!1;if("he's"===n.normal||"she's"===n.normal)return!1;let a=e[t+1];if(!a)return!0;if("it's"===n.normal)return!!a.tags.has("#Noun");if(a.tags.has("Verb"))return!!a.tags.has("Infinitive")||!!a.tags.has("PresentTense");if(a.tags.has("Noun")){let e=a.machine||a.normal;return!("here"===e||"there"===e||"everywhere"===e||a.tags.has("Possessive")||a.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===Su[e[t-1].normal])return!0;let r=e[t+2];return!(!r||!r.tags.has("Noun")||r.tags.has("Pronoun"))||(a.tags.has("Adjective")||a.tags.has("Adverb")||a.tags.has("Verb"),!1)};const Ju=/'/,Hu=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]],r.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Wu={d:(e,t)=>Bu(e,t),t:(e,t)=>Lu(e,t),s:(e,t,n)=>Mu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):zu(e,t)},Ku=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Uu={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((a,r)=>{for(let o=a.length-1;o>=0;o-=1){if(a[o].implicit)return;let i=null;!0===Ju.test(a[o].normal)&&([,i]=a[o].normal.split(Ju));let s=null;Wu.hasOwnProperty(i)&&(s=Wu[i](a,o,t)),s&&(s=Ku(s,e),Fu(n,[r,o],s),Hu(n[r],e,o,s.length))}}))}},qu={compute:Uu,api:Ou,hooks:["contractionTwo"]};const Ru="(i|we|they)";let Qu=[].concat([{match:"(got|were|was|is|are|am) (#PastTense|#Participle)",tag:"Passive",reason:"got-walked"},{match:"(was|were|is|are|am) being (#PastTense|#Participle)",tag:"Passive",reason:"was-being"},{match:"(had|have|has) been (#PastTense|#Participle)",tag:"Passive",reason:"had-been"},{match:"will be being? (#PastTense|#Participle)",tag:"Passive",reason:"will-be-cleaned"},{match:"#Noun [(#PastTense|#Participle)] by (the|a) #Noun",group:0,tag:"Passive",reason:"suffered-by"}],[{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,notIf:"(all|even)",tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"[#Hyphenated (#Hyphenated && #PastTense)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"faith-based"},{match:"[#Hyphenated (#Hyphenated && #Gerund)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"self-driving"},{match:"[#PastTense (#Hyphenated && #PhrasalVerb)] (#Noun|#Conjunction)",group:0,tag:"Adjective",reason:"dammed-up"},{match:"(#Hyphenated && #Value) fold",tag:"Adjective",reason:"two-fold"},{match:"must (#Hyphenated && #Infinitive)",tag:"Adjective",reason:"must-win"},{match:"(#Hyphenated && #Infinitive) #Hyphenated",tag:"Adjective",notIf:"#PhrasalVerb",reason:"vacuum-sealed"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"},{match:"[(un|contra|extra|inter|intra|macro|micro|mid|mis|mono|multi|pre|sub|tri|ex)] #Adjective",group:0,tag:["Adjective","Prefix"],reason:"un-skilled"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"},{match:"#Copula [far too] #Adjective",group:0,tag:"Adverb",reason:"far-too"},{match:"#Copula [still] (in|#Gerund|#Adjective)",group:0,tag:"Adverb",reason:"was-still-walking"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"},{match:"#Gerund [#Gerund]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looking-annoying"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",notIf:"#Hyphenated",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"},{match:"no [#Adjective] #Modal",group:0,tag:"Noun",reason:"no-golden"},{match:"[brand #Gerund?] new",group:0,tag:"Adverb",reason:"brand-new"},{match:"(#Determiner|#Comparative|new|different) [kind]",group:0,tag:"Noun",reason:"some-kind"},{match:"#Possessive [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"her-favourite"},{match:"must && #Hyphenated .",tag:"Adjective",reason:"must-win"},{match:"#Determiner [#Adjective]$",tag:"Noun",notIf:"(this|that|#Comparative|#Superlative)",reason:"the-south"},{match:"(#Noun && #Hyphenated) (#Adjective && #Hyphenated)",tag:"Adjective",notIf:"(this|that|#Comparative|#Superlative)",reason:"company-wide"},{match:"#Determiner [#Adjective] (#Copula|#Determiner)",notIf:"(#Comparative|#Superlative)",group:0,tag:"Noun",reason:"the-poor"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,notIf:"(#Modal|#PhrasalVerb)",tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] #Comparative",group:0,tag:"Adverb",reason:"even-worse"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",notIf:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",notIf:"(#PhrasalVerb|#Copula)",reason:"charge-back"},{match:"#Verb [around]",group:0,tag:"Adverb",notIf:"#PhrasalVerb",reason:"send-around"},{match:"[later] #PresentTense",group:0,tag:"Adverb",reason:"later-say"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) (march|may) !#Infinitive",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"(the|any) [more]",group:0,tag:"Singular",reason:"more-noun"},{match:"[more] #Noun",group:0,tag:"Adjective",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Singular",reason:"bit-2"},{match:"a [must]",group:0,tag:"Singular",reason:"must-2"},{match:"(we|us) [all]",group:0,tag:"Noun",reason:"we all"},{match:"due to [#Verb]",group:0,tag:"Noun",reason:"due-to"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",notIf:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"(a|an|the) [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",notIf:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,notIf:"#Gerund",tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense #Particle?]",group:0,tag:"Noun",notIf:"(seem|appear|include|#Gerund|#Copula)",reason:"det-inf"},{match:"#Noun #Actor",tag:"Actor",notIf:"#Person",reason:"thing-doer"},{match:"#Gerund #Actor",tag:"Actor",reason:"gerund-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"[#Noun+] #Actor",group:0,tag:"Actor",notIf:"#Honorific",reason:"air-traffic-controller"},{match:"(urban|cardiac|cardiovascular|respiratory|medical|clinical|visual|graphic|creative|dental|exotic|fine|certified|registered|technical|virtual|professional|amateur|junior|senior|special|pharmaceutical|theoretical)+ #Noun? #Actor",tag:"Actor",reason:"fine-artist"},{match:"#Noun+ (coach|chef|king|engineer|fellow|personality|boy|girl|man|woman)",tag:"Actor",reason:"dance-coach"},{match:"chief . officer",tag:"Actor",reason:"chief-x-officer"},{match:"chief of #Noun+",tag:"Actor",reason:"chief-of-police"},{match:"senior? vice? president of #Noun+",tag:"Actor",reason:"president-of"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]$",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense #Particle?",notIf:"(#Gerund|her)",tag:"Noun",reason:"possessive-verb"},{match:"(my|our|their|her|his|its) [(#Plural && #Actor)] #Noun",tag:"Possessive",reason:"my-dads"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"},{match:"i #Verb [me] #Noun",group:0,tag:"Possessive",reason:"scottish-me"},{match:"[#PresentTense] (music|class|lesson|night|party|festival|league|ceremony)",group:0,tag:"Noun",reason:"dance-music"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,ifNo:"#Copula",tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",notIf:"(still|even|just)",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"},{match:"#Singular for [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"noun-for-gerund"},{match:"#Comparative (for|at) [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"better-for-gerund"},{match:"#PresentTense the [#Gerund]",group:0,tag:"Noun",reason:"keep-the-touching"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner (only|further|just|more|backward) [#Infinitive]",group:0,tag:"Noun",reason:"the-only-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"#Plural on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb #Particle?]",notIf:"(#Copula|#Noun|sure|fun|up)",group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",notIf:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",notIf:"#Preposition",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",notIf:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"better",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",notIf:"(#Copula|better)",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"many-poses"},{match:"#Determiner #Adverb #Adjective [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Copula",reason:"very-big-dream"},{match:"from #Noun to [%Noun|Verb%]",group:0,tag:"Noun",reason:"start-to-finish"},{match:"(for|with|of) #Noun (and|or|not) [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Pronoun",reason:"for-food-and-gas"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #Particle #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense] of",group:0,notIf:"(one|1|#Copula|#Infinitive)",tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",notIf:"#Copula",reason:"our-full-support"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",notIf:"going",reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"},{match:"how to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"how-to-noun"},{match:"which [%Noun|Verb%] #Noun",group:0,tag:"Infinitive",reason:"which-boost-it"},{match:"#Gerund [%Plural|Verb%]",group:0,tag:"Plural",reason:"asking-questions"},{match:"(ready|available|difficult|hard|easy|made|attempt|try) to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"ready-to-noun"},{match:"(bring|went|go|drive|run|bike) to [%Noun|Verb%]",group:0,tag:"Noun",reason:"bring-to-noun"},{match:"#Modal #Noun [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"would-you-look"},{match:"#Copula just [#Infinitive]",group:0,tag:"Noun",reason:"is-just-spam"},{match:"^%Noun|Verb% %Plural|Verb%",tag:"Imperative #Plural",reason:"request-copies"},{match:"#Adjective #Plural and [%Plural|Verb%]",group:0,tag:"#Plural",reason:"pickles-and-drinks"},{match:"#Determiner #Year [#Verb]",group:0,tag:"Noun",reason:"the-1968-film"},{match:"#Determiner [#PhrasalVerb #Particle]",group:0,tag:"Noun",reason:"the-break-up"},{match:"#Determiner [%Adj|Noun%] #Noun",group:0,tag:"Adjective",notIf:"(#Pronoun|#Possessive|#ProperNoun)",reason:"the-individual-goals"},{match:"[%Noun|Verb%] or #Infinitive",group:0,tag:"Infinitive",reason:"work-or-prepare"},{match:"to #Infinitive [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|#Copula|help)",reason:"to-give-thanks"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"},{match:"^[#Value] (#Determiner|#Gerund)",group:0,tag:"Expression",unTag:"Value",reason:"numbered-list"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|brother|father|aunt|uncle|grandpa|grandfather|grandma) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",notIf:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",notIf:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[#Actor+] #Person",group:0,tag:"Person",reason:"baker-sam-smith"},{match:"[(lieutenant|corporal|sergeant|captain|qeen|king|admiral|major|colonel|marshal|president|queen|king)+] #ProperNoun",group:0,tag:"Honorific",reason:"seargeant-john"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:["Honorific","Person"],reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",notIf:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"#Honorific #Actor",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) #Actor",tag:"Honorific",reason:"first lady"},{match:"#Person #RomanNumeral",tag:"Person",reason:"louis-IV"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun",ifNo:"#Actor"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"},{match:"(#FirstName && !#Possessive) [#Singular] #Verb",group:0,safe:!0,tag:"LastName",reason:"jack-layton"},{match:"^[#Singular] #Person #Verb",group:0,safe:!0,tag:"Person",reason:"sherwood-anderson"},{match:"(a|an) [#Person]$",group:0,unTag:"Person",reason:"a-warhol"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:"#Date",group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",notIf:"(come|gotten)",reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(have|had) read",tag:"Modal #PastTense",reason:"read-read"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"},{match:"as #Pronoun [please]",group:0,tag:"Infinitive",reason:"as-we-please"},{match:"[(co|mis|de|inter|intra|pre|re|un|out|under|over|counter)] #Verb",group:0,tag:["Verb","Prefix"],notIf:"(#Copula|#PhrasalVerb)",reason:"co-write"},{match:"#PastTense and [%Adj|Past%]",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"[%Adj|Past%] and #PastTense",group:0,tag:"PastTense",reason:"dressed-and-left"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Copula [#Adjective] (well|badly|quickly|slowly)",group:0,tag:"Verb",reason:"done-well"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"a-bit-confused"},{match:"not be [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"do-not-be-confused"},{match:"#Copula just [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"is-just-right"},{match:"as [#Infinitive] as",group:0,tag:"Adjective",reason:"as-pale-as"},{match:"[%Adj|Past%] and #Adjective",group:0,tag:"Adjective",reason:"faled-and-oppressive"},{match:"or [#PastTense] #Noun",group:0,tag:"Adjective",notIf:"(#Copula|#Pronoun)",reason:"or-heightened-emotion"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"[(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"},{match:"[(been|had|became|came)] #PastTense",group:0,notIf:"#PhrasalVerb",tag:"Auxiliary",reason:"been-told"},{match:"[(being|having|getting)] #Verb",group:0,tag:"Auxiliary",reason:"being-born"},{match:"[be] #Gerund",group:0,tag:"Auxiliary",reason:"be-walking"},{match:"[better] #PresentTense",group:0,tag:"Modal",notIf:"(#Copula|#Gerund)",reason:"better-go"},{match:"even better",tag:"Adverb #Comparative",reason:"even-better"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",notIf:"#Copula",tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"#Verb (up|down|in|on|for)$",tag:"PhrasalVerb #Particle",notIf:"#PhrasalVerb",reason:"come-down$"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Ru,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Ru,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Ru,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",notIf:"(so|such|rather|enough)",reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|a|an|any|each|every|some|more|with|on)",group:0,notIf:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me|there)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^[#Infinitive] (#Adjective|#Adverb)? and #Infinitive",group:0,tag:"Imperative",reason:"call-and-reserve"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^come #Infinitive",tag:"Imperative",notIf:"on",reason:"come-have"},{match:"^come and? #Infinitive",tag:"Imperative . Imperative",notIf:"#PhrasalVerb",reason:"come-and-have"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[(stay|be|keep)] #Adjective",group:0,tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"},{match:"[#Infinitive] what .",group:0,tag:"Imperative",reason:"look-what"},{match:"^[#Infinitive] #Gerund",group:0,tag:"Imperative",reason:"keep-playing"},{match:"^[#Infinitive] (to|for|into|toward|here|there)",group:0,tag:"Imperative",reason:"go-to"},{match:"^[#Infinitive] (and|or) #Infinitive",group:0,tag:"Imperative",reason:"inf-and-inf"},{match:"^[%Noun|Verb%] to",group:0,tag:"Imperative",reason:"commit-to"},{match:"^[#Infinitive] #Adjective? #Singular #Singular",group:0,tag:"Imperative",reason:"maintain-eye-contact"},{match:"do not (forget|omit|neglect) to [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-forget"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"},{match:"#Gerund [#Gerund] #Plural",group:0,tag:"Adjective",reason:"hard-working-fam"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"[right] (before|after|in|into|to|toward)",group:0,tag:"#Adverb",reason:"right-into"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"(are|#Modal|see|do|for) [ya]",group:0,tag:"Pronoun",reason:"are-ya"},{match:"[long live] .",group:0,tag:"#Adjective #Infinitive",reason:"long-live"},{match:"[plenty] of",group:0,tag:"#Uncountable",reason:"plenty-of"},{match:"(always|nearly|barely|practically) [there]",group:0,tag:"Adjective",reason:"always-there"},{match:"[there] (#Adverb|#Pronoun)? #Copula",group:0,tag:"There",reason:"there-is"},{match:"#Copula [there] .",group:0,tag:"There",reason:"is-there"},{match:"#Modal #Adverb? [there]",group:0,tag:"There",reason:"should-there"},{match:"^[do] (you|we|they)",group:0,tag:"QuestionWord",reason:"do-you"},{match:"^[does] (he|she|it|#ProperNoun)",group:0,tag:"QuestionWord",reason:"does-he"},{match:"a [while]",group:0,tag:"Noun",reason:"a-while"},{match:"guess who",tag:"#Infinitive #QuestionWord",reason:"guess-who"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"a #Noun [like] (#Noun|#Determiner)",group:0,tag:"Preposition",reason:"a-noun-like"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Infinitive #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}],[{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^[(well|so|okay|now)] !#Adjective?",group:0,tag:"Expression",reason:"well-"},{match:"^come on",tag:"Expression",reason:"come-on"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"^(ok|alright|shoot|hell|anyways)",tag:"Expression",reason:"ok-"},{match:"^(say && @hasComma)",tag:"Expression",reason:"say-"},{match:"^(like && @hasComma)",tag:"Expression",reason:"like-"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}]),_u=null;var Zu={postTagger:function(e){const{world:t}=e,{model:n,methods:a}=t;_u=_u||a.one.buildNet(n.two.matches,t);let r=a.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(r);return o.cache(),o.sweep(_u),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const Yu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Zu,model:{two:{matches:Qu}},hooks:["postTagger"]};var Xu=Yu,ec=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let a=e._cache;return e.filter(((e,t)=>n.some((e=>a[t].has(e)))))},tc=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let a=this.tokenize(e),r=ec(a,n);return r.found?(r.compute(["index","tagger"]),r.match(t)):a.none()},nc={lib:{lazy:tc}},ac=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e},rc=function(e,t,n){let a=e.split(/ /g).map((e=>`{${e}}`)).join(" "),r=this.match(a);return n&&(r=r.if(n)),r.has("#Verb")?ac(r,t):r.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model)),e.replaceWith(n)}(r,t):r.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let a=n(t);a&&e.replaceWith(a)}(r,t):r.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:a}=e.methods.two.transform.adjective;let r=t;e.has("#Comparative")?r=n(r,e.model):e.has("#Superlative")&&(r=a(r,e.model)),r&&e.replaceWith(r)}(r,t):this},oc={api:function(e){e.prototype.swap=rc}};return b.plugin(Nu),b.plugin(qu),b.plugin(Xu),b.plugin(nc),b.plugin(oc),b},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t();
+var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((a=>{t.compute.hasOwnProperty(a)?n[a](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t,a={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let a=this.update([t]);e(a,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let a=this.update([t]),r=e(a,n);return void 0===r?this.none():r}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let a=[];return n.forEach((e=>{a=a.concat(e.fullPointer)})),this.toView(a)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let a=this.update([t]);return e(a,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let a=this.update([t]);return e(a,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let a=this.update([t]);return e(a,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)},isFull:function(){let e=this.pointer;if(!e)return!0;let t=this.document;for(let n=0;no)return!1}return!0},getNth:function(e){return"number"==typeof e?this.eq(e):"string"==typeof e?this.if(e):this}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var o=r;const i=Object.assign({},o,n,a);i.get=i.eq;var s=i;class View{constructor(t,n,a={}){[["document",t],["world",e],["_groups",a],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,a=t||e.map(((e,t)=>[t]));return a.map((e=>{let[t,a,r,o,i]=e;return a=a||0,r=r||(n[t]||[]).length,n[t]&&n[t][a]&&(o=o||n[t][a].id,n[t][r-1]&&(i=i||n[t][r-1].id)),[t,a,r,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[a,r,o]=e;(1===e.length||0===r&&this.document[a].length===o)&&(n[t]=this._cache[a])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),a=new View(n);return a.world=this.world,a.compute(["normal","lexicon"]),this.world.compute.preTagger&&a.compute("preTagger"),a}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var d=function(e,t,n,a){const{methods:r,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(r,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.ex[e]=t[e].pastTense),n.fromPast&&(n.fromPast.ex[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.ex[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.ex[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.ex[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.ex[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.ex[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.ex[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.ex[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.ex[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>a[t]=e.lib[t])),e.tags&&a.addTags(e.tags),e.words&&a.addWords(e.words),e.mutate&&e.mutate(t)};const h=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var m=function(e,t,n){const{methods:a}=n;let r=new t([]);if(r.world=n,"number"==typeof e&&(e=String(e)),!e)return r;if("string"==typeof e)return new t(a.one.tokenize.fromString(e,n));if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(h(e)){if(h(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(h(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return r};let p=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=m(e,l,p);return e&&n.compute(p.hooks),n};Object.defineProperty(f,"_world",{value:p,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let a=m(e,l,p);return n.contractions&&a.compute(["alias","normal","machine","contractions"]),a},f.plugin=function(e){return d(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.9.0";var b=f,v=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let a=[t,0].concat(n);Array.prototype.splice.apply(e,a)}return e},I=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},j=(e,t,n)=>{const a=/[-.?!,;:)–—'"]/g;let r=e[t-1];if(!r)return;let o=r.post;if(a.test(o)){let e=o.match(a).join(""),t=n[n.length-1];t.post=e+t.post,r.post=r.post.replace(a,"")}},E=function(e,t,n,a){let[r,o,i]=t;0===o||i===a[r].length?I(n):(I(n),I([e[t[1]]])),function(e,t,n){let a=e[t];if(0!==t||!P(a.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let r=e[t];r.tags.has("ProperNoun")||r.tags.has("Acronym")||P(r.text)&&r.text.length>1&&(r.text=r.text.replace(/^\p{Lu}/u,(e=>e.toLowerCase())))}(e,o,n),A(e,o,n)};let N=0;const D=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var C=function(e){let[t,n]=e.index||[0,0];N+=1,N=N>46655?0:N,t=t>46655?0:t,n=n>1294?0:n;let a=D(N.toString(36));a+=D(t.toString(36));let r=n.toString(36);return r=r.length<2?"0"+r:r,a+=r,a+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+a.toUpperCase()};const x=function(e){e.has("@hasContraction")&&"function"==typeof e.contractions&&e.grow("@hasContraction").contractions().expand()},T=e=>"[object Array]"===Object.prototype.toString.call(e),F=function(e,t,n){const{document:a,world:r}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,d=a[c],h=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:T(e)?T(e[0])?e[0]:e:[]}(e,r);0!==h.length&&(h=function(e){return e.map((e=>(e.id=C(e),e)))}(h),n?(x(t.update([u]).firstTerm()),E(d,u,h,a)):(x(t.update([u]).lastTerm()),function(e,t,n,a){let[r,,o]=t,i=(a[r]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(a,e);let r=a.docs[0],o=t.possessives&&r[r.length-1].tags.has("Possessive");e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(B,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,a);let i=this.update(n);n=n.map((e=>e.slice(0,3)));let s=(i.docs[0]||[]).map((e=>Array.from(e.tags)));if("string"==typeof e&&(e=this.fromText(e).compute("id")),a.insertAfter(e),i.has("@hasContraction")&&a.contractions&&a.grow("@hasContraction+").contractions().expand(),a.delete(i),o){let e=a.docs[0],t=e[e.length-1];t.tags.has("Possessive")||(t.text+="'s",t.normal+="'s",t.tags.add("Possessive"))}let l=a.toView(n).compute(["index","lexicon"]);return l.world.compute.preTagger&&l.compute("preTagger"),t.tags&&l.terms().forEach(((e,t)=>{e.tagSafe(s[t])})),t.case&&l.docs[0]&&l.docs[0][0]&&0===l.docs[0][0].index[1]&&(l.docs[0][0].text=l.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),l},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let a=this.match(e);return a.found?(this.soften(),a.replaceWith(t,n)):this}};var H=z,V=function(e,t){t.forEach((t=>{let[n,a,r]=t,o=r-a;e[n]&&(r===e[n].length&&r>1&&function(e,t){let n=e.length-1,a=e[n],r=e[n-t];r&&a&&(r.post+=a.post,r.post=r.post.replace(/ +([.?!,;:])/,"$1"),r.post=r.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(a,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],a=n[n.length-1];a&&(a.post=a.post.trimEnd())}return e};const L={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),a=this;e&&(n=this,a=this.match(e));let r=!n.ptrs;a.has("@hasContraction")&&a.contractions&&a.grow("@hasContraction").contractions().expand();let o=n.fullPointer,i=a.fullPointer.reverse(),s=V(this.document,i);return o=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(o,t(i)),n.ptrs=o,n.document=s,n.compute("index"),r&&(n.ptrs=void 0),e?n.toView(o):(this.ptrs=[],n.none())}};L.delete=L.remove;var S=L;const $={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let a=n[0];!0===t?a.pre+=e:a.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let a=n[n.length-1];!0===t?a.post+=e:a.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],a=n[n.length-1];return a.post=a.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post})),this}};$.deHyphenate=$.dehyphenate,$.toQuotation=$.toQuotations;var M=$,J={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,a=t.normal.trim().length;return na?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let a=t[e.normal],r=t[n.normal];return ar?-1:0})),e}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),K=new Set(["freq","frequency","topk","repeats"]),q=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,a)=>(n=e.update([n]),a=e.update([a]),t(n,a)))),e.ptrs=n,e}(this,e);e=e||"alpha";let a=n||t.map(((e,t)=>[t])),r=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:a[t]})));return W.has(e)&&(e="sequential"),q.has(e)&&(e="alpha"),K.has(e)?(r=J.byFreq(r),this.update(r.map((e=>e.pointer)))):"function"==typeof J[e]?(r=r.sort(J[e]),this.update(r.map((e=>e.pointer)))):this}};const R=function(e,t){if(e.length>0){let t=e[e.length-1],n=t[t.length-1];!1===/ /.test(n.post)&&(n.post+=" ")}return e=e.concat(t)};var Q={concat:function(e){if("string"==typeof e){let t=this.fromText(e);if(this.found&&this.ptrs){let e=this.fullPointer,n=e[e.length-1][0];this.document.splice(n,0,...t.document)}else this.document=this.document.concat(t.document);return this.all().compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.docs),e.all()}(this,e);if(t=e,"[object Array]"===Object.prototype.toString.call(t)){let t=R(this.document,e);return this.document=t,this.all()}var t;return this}},Z={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const X=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},G,H,S,M,U,Q,Z);var _=function(e){Object.assign(e.prototype,X)};const Y={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e))),n[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const re=/'/,oe=new Set(["what","how","when","where","why"]),ie=new Set(["be","go","start","think","need"]),se=new Set(["been","gone"]);var le=function(e,t){let n=e[t].normal.split(re)[0];if(oe.has(n))return[n,"did"];if(e[t+1]){if(se.has(e[t+1].normal))return[n,"had"];if(ie.has(e[t+1].normal))return[n,"would"]}return null},ue=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ce=/'/;var de=(e,t)=>["je",e[t].normal.split(ce)[1]],he=(e,t)=>{let n=e[t].normal.split(ce)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},ge=(e,t)=>{let n=e[t].normal.split(ce)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const me=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,pe=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,fe=/^[0-9]{3}-[0-9]{4}$/;var be=function(e,t){let n=e[t],a=n.text.match(me);return null!==a?!0===n.tags.has("PhoneNumber")||fe.test(n.text)?null:[a[1],"to",a[2]]:(a=n.text.match(pe),null!==a?[a[1],"to",a[4]]:null)};const ve=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/;var ye=function(e,t,n){const a=n.model.one.numberSuffixes||{};let r=e[t].text.match(ve);if(null!==r){let e=r[2].toLowerCase().trim();return a.hasOwnProperty(e)?null:[r[1],e]}return null};const we=/'/,ke=/^[0-9][^-–—]*[-–—].*?[0-9]/,Pe=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]]},Ae={t:(e,t)=>ue(e,t),d:(e,t)=>le(e,t)},Ie={j:(e,t)=>de(e,t),l:(e,t)=>he(e,t),d:(e,t)=>ge(e,t)},je=function(e,t,n,a){for(let r=0;r{let{world:t,document:n}=e;const{model:a,methods:r}=t;let o=a.one.contractions||[];n.forEach(((a,i)=>{for(let s=a.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(a[s].normal)&&([l,u]=a[s].normal.split(we));let c=je(o,a[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](a,s,t)),!c&&Ie.hasOwnProperty(l)&&(c=Ie[l](a,s)),"there"===l&&"s"===u&&(c=Ne(a,s)),c?(c=Ee(c,e),ae(n,[i,s],c),Pe(n[i],e,s,c.length)):ke.test(a[s].normal)?(c=be(a,s),c&&(c=Ee(c,e),ae(n,[i,s],c),r.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&r.one.setTag([c[0]],"Time",t,null,"time-range"),Pe(n[i],e,s,c.length))):(c=ye(a,s,t),c&&(c=Ee(c,e),ae(n,[i,s],c),r.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))},Ce={model:ne,compute:{contractions:De},hooks:["contractions"]},xe=function(e,t,n){const{model:a,methods:r}=n,o=r.one.setTag,i=a.one._multiCache||{},s=a.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,a,r){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===Te.test(l)){let e=l.replace(Te,"");if(i.hasOwnProperty(e)&&e.length>3&&Fe.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Ge={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let r=e[a],o=(a=(a=a.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[a]=t[a]||r})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}},ze={addWords:function(e){const t=this.world(),{methods:n,model:a}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:r,_multi:o}=n.two.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:r,_multi:o}=n.one.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else Object.assign(a.one.lexicon,e)}},He={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Be}},compute:Ge,lib:ze,hooks:["lexicon"]},Ve=function(e,t){let n=[{}],a=[null],r=[0],o=[],i=0;e.forEach((function(e){let r=0,o=function(e,t){const{methods:n,model:a}=t;let r=n.one.tokenize.splitTerms(e,a).map((e=>n.one.tokenize.splitWhitespace(e,a)));return r.map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=r[i];if(n.hasOwnProperty(i)){let e=n[i][l];r[u]=e,a[e]&&(a[u]=a[u]||[],a[u]=a[u].concat(a[e]))}else r[u]=0}}return{goNext:n,endAs:a,failTo:r}};const Le=function(e,t,n){let a=0,r=[];for(let o=0;o0&&(void 0===t.goNext[a]||!t.goNext[a].hasOwnProperty(i));)a=t.failTo[a]||0;if(t.goNext[a].hasOwnProperty(i)&&(a=t.goNext[a][i],t.endAs[a])){let n=t.endAs[a];for(let t=0;t0&&(a=a.concat(l))}return e.update(a)};const Me=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Je=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Me(e.goNext,void 0),e.failTo=Me(e.failTo,0),e.endAs=Me(e.endAs,null),e};const We={buildTrie:function(e){const t=Ve(e,this.world());return Je(t)}};We.compile=We.buildTrie;var Ke={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(a=e,"[object Object]"===Object.prototype.toString.call(a)?e:Ve(e,this.world));var a;let r=$e(this,n,t);return r=r.settle(),r}},lib:We};const qe=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},Ue=function(e,t){let{ptrs:n,byGroup:a}=e;return n=qe(n,t),Object.keys(a).forEach((e=>{a[e]=qe(a[e],t)})),{ptrs:n,byGroup:a}},Re=e=>"[object Object]"===Object.prototype.toString.call(e),Qe=e=>e&&Re(e)&&!0===e.isView,Ze=e=>e&&Re(e)&&!0===e.isNet,Xe=function(e,t,n){const a=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=a.killUnicode(e,n),e=a.parseMatch(e,t,n)),e};var _e={matchOne:function(e,t,n){const a=this.methods.one;if(Qe(e))return this.intersection(e).eq(0);if(Ze(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let r={regs:e=Xe(e,n,this.world),group:t,justOne:!0},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=Ue(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Qe(e))return this.intersection(e);if(Ze(e))return this.sweep(e,{tagger:!1}).view.settle();let r={regs:e=Xe(e,n,this.world),group:t},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=Ue(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Qe(e))return e.fullPointer.length>0;if(Ze(e))return this.sweep(e,{tagger:!1}).view.found;let r={regs:e=Xe(e,n,this.world),group:t,justOne:!0};return a.match(this.docs,r,this._cache).ptrs.length>0},if:function(e,t,n){const a=this.methods.one;if(Qe(e))return this.filter((t=>t.intersection(e).found));if(Ze(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let r={regs:e=Xe(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return a.match(n.docs,r,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:a}=this,r=a.one;if(Qe(e))return this.filter((t=>!t.intersection(e).found));if(Ze(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Xe(e,n,this.world);let o=this._cache||[],i=this.filter(((n,a)=>{let i={regs:e,group:t,justOne:!0};return 0===r.match(n.docs,i,o[a]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}},Ye={before:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&r.push([t[0],0,t[1]])}));let i=this.toView(r);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,a]=t;a{let o=n.before(e,t);if(o.found){let e=o.terms();a[r][1]-=e.length,a[r][3]=e.docs[0][0].id}})),this.update(a)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let a=this.fullPointer;return this.forEach(((n,r)=>{let o=n.after(e,t);if(o.found){let e=o.terms();a[r][2]+=e.length,a[r][4]=null}})),this.update(a)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const et=function(e,t){return[e[0],e[1],t[2]]},tt=(e,t,n)=>{return"string"==typeof e||(a=e,"[object Array]"===Object.prototype.toString.call(a))?t.match(e,n):e||t.none();var a},nt=function(e,t){let[n,a,r]=e;return t.document[n]&&t.document[n][a]&&(e[3]=e[3]||t.document[n][a].id,t.document[n][r-1]&&(e[4]=e[4]||t.document[n][r-1].id)),e},at={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=tt(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>nt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=tt(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(et(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>nt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=tt(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(et(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>nt(e,this))),this.update(o)}};at.split=at.splitAfter;var rt=at;const ot=Object.assign({},_e,Ye,rt);ot.lookBehind=ot.before,ot.lookBefore=ot.before,ot.lookAhead=ot.after,ot.lookAfter=ot.after,ot.notIf=ot.ifNo;var it=function(e){Object.assign(e.prototype,ot)};const st=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,lt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,ut=/ /g,ct=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),dt=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(st),n=[];t.forEach((e=>{ct(e)?n.push(e):n=n.concat(e.split(lt))})),n=dt(n);let a=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ct(e)?a.push(e):a=a.concat(e.split(ut))})),a=dt(a),a};const gt=/\{([0-9]+)?(, *[0-9]*)?\}/,mt=/&&/,pt=new RegExp(/^<\s*(\S+)\s*>/),ft=e=>e.charAt(0).toUpperCase()+e.substring(1),bt=e=>e.charAt(e.length-1),vt=e=>e.charAt(0),yt=e=>e.substring(1),wt=e=>e.substring(0,e.length-1),kt=function(e){return e=yt(e),e=wt(e)},Pt=function(e,t){let n={};for(let a=0;a<2;a+=1){if("$"===bt(e)&&(n.end=!0,e=wt(e)),"^"===vt(e)&&(n.start=!0,e=yt(e)),("["===vt(e)||"]"===bt(e))&&(n.group=null,"["===vt(e)&&(n.groupStart=!0),"]"===bt(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===vt(e))){const t=pt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===bt(e)&&(n.greedy=!0,e=wt(e)),"*"!==e&&"*"===bt(e)&&"\\*"!==e&&(n.greedy=!0,e=wt(e)),"?"===bt(e)&&(n.optional=!0,e=wt(e)),"!"===vt(e)&&(n.negative=!0,e=yt(e)),"~"===vt(e)&&"~"===bt(e)&&e.length>2&&(e=kt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("/"===vt(e)&&"/"===bt(e))return e=kt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if(!0===gt.test(e)&&(e=e.replace(gt,((e,t,a)=>(void 0===a?(n.min=Number(t),n.max=Number(t)):(a=a.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(a)):(n.min=Number(t),n.max=Number(a||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"("===vt(e)&&")"===bt(e)){mt.test(e)?(n.choices=e.split(mt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=yt(n.choices[0]);let a=n.choices.length-1;n.choices[a]=wt(n.choices[a]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>Pt(e,t))))),e=""}if("{"===vt(e)&&"}"===bt(e)){if(e=kt(e),n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.sense=e[2])}return n}if("<"===vt(e)&&">"===bt(e))return e=kt(e),n.chunk=ft(e),n.greedy=!0,n;if("%"===vt(e)&&"%"===bt(e))return e=kt(e),n.switch=e,n}return"#"===vt(e)?(n.tag=yt(e),n.tag=ft(n.tag),n):"@"===vt(e)?(n.method=yt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var At=Pt;const It=/[a-z0-9][-–—][a-z]/i;var jt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let a=e[t];if(a.word&&It.test(a.word)){let r=a.word.split(/[-–—]/g);if(n.hasOwnProperty(r[0]))continue;r=r.filter((e=>e)).reverse(),e.splice(t,1),r.forEach((n=>{let r=Object.assign({},a);r.word=n,e.splice(t,0,r)}))}}return e};const Et=function(e,t){let{all:n}=t.methods.two.transform.verb||{},a=e.root;return n?n(a,t.model):[]},Nt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Dt=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var Ct=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(Et(e,t)):"Noun"===e.pos?n=n.concat(Nt(e,t)):"Adjective"===e.pos&&(n=n.concat(Dt(e,t))):(n=n.concat(Et(e,t)),n=n.concat(Nt(e,t)),n=n.concat(Dt(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))},xt=function(e){return e=function(e){let t=0,n=null;for(let a=0;a(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e},Tt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let a=ht(e);return a=a.map((e=>At(e,t))),a=jt(a,n),a=Ct(a,n),a=xt(a),a};const Ft=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ot=function(e,t){for(let n=0;nn?a:n)+1;if(Math.abs(n-a)>(r||100))return r||100;let o,i,s,l,u,c,d=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=d[r-1][o]+1,(c=d[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=d[r-2][o-2]+l)-1!==e.post.indexOf(t),St=(e,t)=>-1!==e.pre.indexOf(t),$t={hasQuote:e=>Bt.test(e.pre)||zt.test(e.post),hasComma:e=>Lt(e,","),hasPeriod:e=>!0===Lt(e,".")&&!1===Lt(e,"..."),hasExclamation:e=>Lt(e,"!"),hasQuestionMark:e=>Lt(e,"?")||Lt(e,"¿"),hasEllipses:e=>Lt(e,"..")||Lt(e,"…")||St(e,"..")||St(e,"…"),hasSemicolon:e=>Lt(e,";"),hasColon:e=>Lt(e,":"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Ht.test(e.post)||Ht.test(e.pre),hasDash:e=>Vt.test(e.post)||Vt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};$t.hasQuotation=$t.hasQuote;var Mt=$t;let Jt=function(){};Jt=function(e,t,n,a){let r=function(e,t,n,a){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==a-1)return!1;if(void 0!==t.id&&t.id===e.id)return!0;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Gt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Mt[t.method]&&!0===Mt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}if(void 0!==t.chunk)return e.chunk===t.chunk;if(void 0!==t.switch)return e.switch===t.switch;if(void 0!==t.machine)return e.normal===t.machine||e.machine===t.machine||e.root===t.machine;if(void 0!==t.sense)return e.sense===t.sense;if(void 0!==t.fastOr){if(t.pos&&!e.tags.has(t.pos))return null;let n=e.root||e.implicit||e.machine||e.normal;return t.fastOr.has(n)||t.fastOr.has(e.text)}return void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Jt(e,t,n,a))):t.choices.some((t=>Jt(e,t,n,a))))}(e,t,n,a);return!0===t.negative?!r:r};var Wt=Jt;const Kt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(qt(e,e.t).length=a-e.t),e.t=a,!0)};const Rt=function(e,t=0){let n=e.regs[e.r],a=!1;for(let o=0;o{let r=0,o=e.t+a+t+r;if(void 0===e.terms[o])return!1;let i=Wt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let a=n.every(((t,n)=>{let a=e.t+n;return void 0!==e.terms[a]&&Wt(e.terms[a],t,a,e.phrase_length)}));return!0===a&&n.length>t&&(t=n.length),a}))&&t}(e);if(a){if(!0===n.negative)return null;if(!0===e.hasGroup&&(qt(e,e.t).length+=a),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=a,!0}return!!n.optional||null},Xt=function(e,t,n){let a=0;for(let r=e.t;ra||(e.t+=a,0))},_t=function(e){const{regs:t}=e;let n=t[e.r],a=Object.assign({},n);if(a.negative=!1,Wt(e.terms[e.t],a,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];n&&(Wt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)?e.r+=1:n.optional&&t[e.r+2]&&Wt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?Xt(e,a,t[e.r+1]):(e.t+=1,!0)},Yt=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=Wt(a,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||r){let n=e.terms[e.t+1];n&&Wt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},en=function(e){const{regs:t,phrase_length:n}=e;let a=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),a=e.t;for(;e.te.t?null:!0!==a.end||e.start_i+e.t===n||null},tn=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},nn=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Yt(e),a.implicit&&e.terms[e.t+1]&&tn(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||en(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=qt(e,t);e.t>1&&n.greedy?a.length+=e.t-t:a.length++}(e,r),!0):null)},an=function(e,t,n,a){if(0===e.length||0===t.length)return null;let r={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:a,inGroup:null};for(;r.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything){if(!0!==Kt(e,r)){if(e.negative){if(!_t(r))return null}else if(!0!==Wt(r.terms[r.t],e,r.start_i+r.t,r.phrase_length)){if(!0!==e.optional)return null}else if(!nn(r))return null}else if(!nn(r))return null}else{if(e.negative&&e.anything)return null;if(!nn(r))return null}else if(!Zt(r))return null}else if(!Qt(r))return null}else if(!Ut(r))return null}let o=[null,n,r.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(r.groups).forEach((e=>{let t=r.groups[e],a=n+t.start;i[e]=[null,a,a+t.length]})),{pointer:o,groups:i}},rn=function(e,t){let n=[],a={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{a[t]=a[t]||[],a[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:a}},on=function(e,t,n){return e=e.filter((e=>{let[a,r,o]=e.pointer,i=n[a].slice(r,o);for(let e=0;e{e.groups[n][0]=t})),e},ln=function(e,t,n){let a=an(e,t,0,e.length);return a?(a=sn(a,n),a):null};var un=function(e,t,n){n=n||[];let{regs:a,group:r,justOne:o}=t,i=[];if(!a||0===a.length)return{ptrs:[],byGroup:{}};const s=a.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=ln(r,a,t);e&&i.push(e)}}return!0===a[a.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),t.notIf&&(i=on(i,t.notIf,e)),i=rn(i,r),i.ptrs.forEach((t=>{let[n,a,r]=t;t[3]=e[n][a].id,t[4]=e[n][r-1].id})),i},cn={api:it,methods:{one:{termMethods:Mt,parseMatch:Tt,match:un}},lib:{parseMatch:function(e,t){const n=this.world();let a=n.methods.one.killUnicode;return a&&(e=a(e,n)),n.methods.one.parseMatch(e,t,n)}}};const dn=/^\../,hn=/^#./,gn=function(e,t){let n={},a={};return Object.keys(t).forEach((r=>{let o=t[r],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),dn.test(e)?t=``),t+=">",{start:t,end:n}}(r);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let r=e[e.length-1].id;a[r]=a[r]||[],a[r].push(i.end)}))})),{starts:n,ends:a}};var mn={html:function(e){let{starts:t,ends:n}=gn(this,e),a="";return this.docs.forEach((e=>{for(let r=0;r{let n=e.pre||"",r=e.post||"";"some"===t.punctuation&&(n=n.replace(fn,""),vn.test(r)&&(r=" "),r=r.replace(bn,""),r=r.replace(/\?!+/,"?"),r=r.replace(/!+/,"!"),r=r.replace(/\?+/,"?"),r=r.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(r=r.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),r=r.replace(/\s+/," ")),t.keepPunct||(n=n.replace(fn,""),r="-"===r?" ":r.replace(pn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||r&&yn.test(r)||(r+=" "),a+=n+o+r})),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},kn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};kn.clean=kn.normal,kn.reduced=kn.root;var Pn=kn;let An=[],In=0;for(;In<64;)An[In]=0|4294967296*Math.sin(++In%Math.PI);function jn(e){let t,n,a,r=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(In=i=0;In>4]+An[i]+~~o[In|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|a>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)r[--i]+=s[i]}for(e="";i<32;)e+=(r[i>>3]>>4*(1^i++)&15).toString(16);return e}const En={text:!0,terms:!0};let Nn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const Dn=function(e,t){return Object.assign({},e,t)},Cn={text:e=>wn(e,{keepPunct:!0},!1),normal:e=>wn(e,Dn(Pn.normal,{keepPunct:!0}),!1),implicit:e=>wn(e,Dn(Pn.implicit,{keepPunct:!0}),!1),machine:e=>wn(e,Nn,!1),root:e=>wn(e,Dn(Nn,{form:"root"}),!1),hash:e=>jn(wn(e,{keepPunct:!0},!1)),offset:e=>{let t=Cn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};Cn.sentences=Cn.sentence,Cn.clean=Cn.normal,Cn.reduced=Cn.root;const xn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},En,a)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let r={};return Object.keys(a).forEach((o=>{a[o]&&Cn[o]&&(r[o]=Cn[o](e,n,t))})),r})));var n,a;return"number"==typeof e?t[e]:t}};xn.data=xn.json;var Tn=xn,Fn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};const On="[0m";var Gn={green:e=>"[32m"+e+On,red:e=>"[31m"+e+On,blue:e=>"[34m"+e+On,magenta:e=>"[35m"+e+On,cyan:e=>"[36m"+e+On,yellow:e=>"[33m"+e+On,black:e=>"[30m"+e+On,dim:e=>"[2m"+e+On,i:e=>"[3m"+e+On},Bn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Gn.blue("\n ──────")),t.forEach((t=>{console.log(Gn.blue("\n ┌─────────")),t.forEach((t=>{let a=[...t.tags||[]],r=t.text||"-";t.sense&&(r=`{${t.normal}/${t.sense}}`),t.implicit&&(r="["+t.implicit+"]"),r=Gn.yellow(r);let o="'"+r+"'";if(t.reference){let n=e.update([t.reference]).text("normal");o+=` - ${Gn.dim(Gn.i("["+n+"]"))}`}o=o.padEnd(18);let i=Gn.blue(" │ ")+Gn.i(o)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Gn[n](e)}))),e.join(", ")}(a,n);console.log(i)}))}))},zn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Gn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Gn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Gn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Gn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))},Hn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let a=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{a=function(e,t,n){let a=((e,t,n)=>{let a=9*n,r=t.start+a,o=r+t.length;return[e.substring(0,r),e.substring(r,o),e.substring(o,e.length)]})(e,t,n);return`${a[0]}${Gn.blue(a[1])}${a[2]}`}(a,e.offset,t)})),console.log(a)}))},Vn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(Fn(t),t):(!1!==e.tags&&(Bn(t),console.log("\n")),!0===e.chunks&&(zn(t),console.log("\n")),!0===e.highlight&&(Hn(t),console.log("\n")),t)};const Ln=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Sn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((a=>{e.match(a).fullPointer.forEach((e=>{n[e[3]]={fn:t[a],end:e[2]}}))})),n}(e,t),a="";return e.docs.forEach(((t,r)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()},wrap:function(e){return Sn(this,e)}};var Mn=$n,Jn={text:function(e){let t={};var n;if(e&&"string"==typeof e&&Pn.hasOwnProperty(e)?t=Object.assign({},Pn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e)),void 0===t.keepSpace&&this.pointer&&(t.keepSpace=!1),void 0===t.keepPunct&&this.pointer){let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}return void 0===t.keepPunct&&(t.keepPunct=!0),void 0===t.keepSpace&&(t.keepSpace=!0),function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let a=0;ar||r<=n&&o>n},Rn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Qn=function(e,t){let n=Rn(t),a=[];return e.forEach((e=>{let[t]=e,r=n[t]||[];if(r=r.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===r.length)return void a.push({passthrough:e});r=r.sort(((e,t)=>e[1]-t[1]));let o=e;r.forEach(((e,t)=>{let n=function(e,t){let[n,a]=e,r=t[1],o=t[2],i={};if(ao&&(i.after=[n,o,e[2]]),i}(o,e);r[t+1]?(a.push({before:n.before,match:n.match}),n.after&&(o=n.after)):a.push(n)}))})),a},Zn=function(e,t){let n=[];return e.forEach(((a,r)=>{if(!a)return;let[o,i,s,l,u]=a,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let a=0;a<20;a+=1){if(t[n-a]){let r=t[n-a].findIndex((t=>t.id===e));if(-1!==r)return[n-a,r]}if(t[n+a]){let r=t[n+a].findIndex((t=>t.id===e));if(-1!==r)return[n+a,r]}}return null}(l,t,o);if(null!==n){let a=s-i;c=t[n[0]].slice(n[1],n[1]+a);let o=c[0]?c[0].id:null;e[r]=[n[0],n[1],n[1]+a,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,a,,,r]=e,o=t[n],i=o.findIndex((e=>e.id===r));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(a,e[2]+1)}(a,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n},Xn={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===a[t].length)return void r.push(e);let n=a[t].filter((t=>Un(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);r.push(o)})),r=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n},ea=function(e,t){let n=Rn(t),a=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>Un(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},na=function(e,t){return e.map((e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e}))},aa={union:function(e){e=ta(e,this);let t=_n(this.fullPointer,e.fullPointer);return t=na(t,this.document),this.toView(t)}};aa.and=aa.union,aa.intersection=function(e){e=ta(e,this);let t=ea(this.fullPointer,e.fullPointer);return t=na(t,this.document),this.toView(t)},aa.not=function(e){e=ta(e,this);let t=Yn(this.fullPointer,e.fullPointer);return t=na(t,this.document),this.toView(t)},aa.difference=aa.not,aa.complement=function(){let e=this.all(),t=Yn(e.fullPointer,this.fullPointer);return t=na(t,this.document),this.toView(t)},aa.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=_n(e,[t])})),e=na(e,this.document),this.update(e)};var ra=function(e){Object.assign(e.prototype,aa)},oa={methods:Xn,api:ra},ia=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:a}=this,{methods:r}=n;let o=r.one.bulkMatch(a,e,this.methods,t);!1!==t.tagger&&r.one.bulkTagger(o,a,this.world),o=o.map((e=>{let t=e.pointer,n=a[t[0]][t[1]],r=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+r]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const sa=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var la=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.notIf&&(e.notIf=n(e.notIf,{},t)),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(sa(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(sa(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:a,count:r}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=sa(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=a,e.minWant=r,e.minWords=e.regs.filter((e=>!e.optional)).length})),e},ua=function(e,t){e=la(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let a=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:a}},ca=function(e,t){return e.map(((n,a)=>{let r=[];Object.keys(t).forEach((n=>{e[a].has(n)&&(r=r.concat(t[n]))}));let o={};return r=r.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),r}))},da=function(e,t){return e.map(((e,n)=>{let a=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>a.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>a.has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>a.has(e))).length>=e.minWant))}))},ha=function(e,t,n,a,r){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===r.matchOne))return[o[0]]}return o},ga=function(e,t,n,a={}){let r=n.one.cacheDoc(e),o=ca(r,t.hooks);return o=da(o,r),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let a=t[n].length;return e=e.filter((e=>a>=e.minWords)),e}))}(o,e),ha(o,e,r,n,a)},ma=function(e,t,n){let a=n.one.tagSet;if(!a.hasOwnProperty(t))return!0;let r=a[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let r=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===ma(u,e.tag,a))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${r}'`),"Noun"===e.tag&&l)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,r),e.chunk&&u.forEach((t=>t.chunk=e.chunk))})))},fa={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:ia,methods:{one:{buildNet:ua,bulkMatch:ga,bulkTagger:pa}}};const ba=/ /,va=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},ya=function(e,t,n,a){if(!0===e.tags.has(t))return null;if("."===t)return null;let r=n[t];if(r){if(r.not&&r.not.length>0)for(let t=0;t0)for(let t=0;t{let a=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,"[33m[3m"+r+"[0m").padEnd(24)} [32m→[0m #${t.padEnd(22)} ${(e=>"[3m"+e+"[0m")(n)}`)})(e,t,r),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),ba.test(t))!function(e,t,n,a){let r=t.split(ba);e.forEach(((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),ya(e,o,n,a))}))}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nwa(e,t,n,a)))};var ka=wa,Pa=function(e,t,n){t=t.trim().replace(/^#/,"");for(let a=0;a0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>Aa({id:e}))),t}return[Aa({id:e})]}(e))})),n=n.filter((e=>e));let a=n[0];for(let e=1;e{let n=[],a=[e];for(;a.length>0;){let e=a.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),a.push(n)}))}return n},Na=e=>"[object Array]"===Object.prototype.toString.call(e),Da=e=>(e=e||"").trim(),Ca=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||Ia.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:ja(e)})}));let a=function(e){let t={children:[]};return e.forEach(((n,a)=>{0===n.indent?t.children=t.children.concat(n.node):e[a-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=Aa({});return e.forEach((e=>{if((e=Aa(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(Ea(t=e).forEach(Aa),t);var t},xa=function(e,t){let n="-> ";t&&(n=(e=>"[2m"+e+"[0m")("→ "));let a="";return Ea(e).forEach(((e,r)=>{let o=e.id||"";if(t&&(o=(e=>"[31m"+e+"[0m")(o)),0===r&&!e.id)return;let i=e._cache.parents.length;a+=" ".repeat(i)+n+o+"\n"})),a},Ta=function(e){let t=Ea(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Fa={text:xa,txt:xa,array:Ta,flat:Ta},Oa=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(xa(e,!0)),null):Fa.hasOwnProperty(t)?Fa[t](e):e},Ga=e=>{Ea(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Ba=/\//;let za=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Da(e),!Ba.test(e)){let t=this.json.children.find((t=>t.id===e));return new za(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!a)return null;e=a}return e})(this.json,e)||Aa({});return new za(t)}add(e,t={}){if(Na(e))return e.forEach((e=>this.add(Da(e),t))),this;e=Da(e);let n=Aa({id:e,props:t});return this.json.children.push(n),new za(n)}remove(e){return e=Da(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Ea(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Ea(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return Ea(this.json)}fillDown(){var e;return e=this.json,Ea(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let a=e[n]||new Set;e[n]=new Set([...a,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let a=e[n]||{};e[n]=Object.assign({},t[n],a)}else Na(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Ga(this.json);let e=Ea(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Ga(this.json),Oa(this.json,e)}debug(){return Ga(this.json),Oa(this.json,"debug"),this}};const Ha=function(e){let t=Ca(e);return new za(t)};Ha.prototype.plugin=function(e){e(this)};var Va={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Hyphenated:"cyan",Adverb:"cyan"};const La=function(e){if(Va.hasOwnProperty(e.id))return Va[e.id];if(Va.hasOwnProperty(e.is))return Va[e.is];let t=e._cache.parents.find((e=>Va[e]));return Va[t]};var Sa=function(e){const t={};return e.forEach((e=>{let{not:n,also:a,is:r,novel:o}=e.props,i=e._cache.parents;a&&(i=i.concat(a)),t[e.id]={is:r,not:n,novel:o,also:a,parents:i,children:e._cache.children,color:La(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const $a=function(e){return e?"string"==typeof e?[e]:e:[]};var Ma=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=$a(e[t].children),e[t].not=$a(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e},Ja=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Ma(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const a={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:a,children:[]}}));return Ha(t).cache().fillDown().out("array")}(Object.assign({},t,e));return Sa(n)},Wa={one:{setTag:ka,unTag:Pa,addTags:Ja}};const Ka=function(e){return"[object Array]"===Object.prototype.toString.call(e)},qa={tag:function(e,t="",n){if(!this.found||!e)return this;let a=this.termList();if(0===a.length)return this;const{methods:r,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Ka(e)?e.forEach((e=>r.one.setTag(a,e,i,n,t))):r.one.setTag(a,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:a,verbose:r,model:o}=this;!0===r&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Ka(e)?e.forEach((e=>a.one.unTag(n,e,i))):a.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){e=e.replace(/^#/,"");let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],a=[];this.document.forEach(((e,t)=>{e.forEach(((e,r)=>{n.find((t=>e.tags.has(t)))&&a.push([t,r,r+1])}))}));let r=this.update(a);return this.difference(r)}};var Ua=qa,Ra=function(e){Object.assign(e.prototype,Ua)},Qa={addTags:function(e){const{model:t,methods:n}=this.world(),a=t.one.tagSet;let r=(0,n.one.addTags)(e,a);return t.one.tagSet=r,this}};const Za=new Set(["Auxiliary","Possessive"]);var Xa=function(e){const{document:t,world:n}=e,a=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Za.has(e)||!t.hasOwnProperty(n))return 1;if(Za.has(n)||!t.hasOwnProperty(e))return-1;let a=t[e].children||[],r=a.length;return a=t[n].children||[],r-a.length})),e}(t,a)}))}))},_a={model:{one:{tagSet:{}}},compute:{tagRank:Xa},methods:Wa,api:Ra,lib:Qa};const Ya=/([.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s)/g,er=/^[.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s$/,tr=/((?:\r?\n|\r)+)/;var nr=function(e){let t=[],n=e.split(tr);for(let e=0;e0&&(r.push(o),e[t]="")}return r};const sr={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},lr=RegExp("["+Object.keys(sr).join("")+"]","g"),ur=RegExp("["+Object.values(sr).join("")+"]","g"),cr=function(e){if(!e)return!1;let t=e.match(ur);return null!==t&&1===t.length};var dr=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var Nr=function(e,t){let n=[],a=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const r=e.split(jr);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=Pr(n),n=wr(n),n=n.filter((e=>e)),n};const Dr=/\p{Letter}/u,Cr=/[\p{Number}\p{Currency_Symbol}]/u,xr=/^[a-z]\.([a-z]\.)+/i,Tr=/[sn]['’]$/;var Fr=function(e,t){let{prePunctuation:n,postPunctuation:a,emoticons:r}=t.one,o=e,i="",s="",l=Array.from(e);if(r.hasOwnProperty(e.trim()))return{str:e.trim(),pre:i,post:" "};let u=l.length;for(let e=0;e(s=e||"",""))),e=o,i=""),{str:e,pre:i,post:s}},Or=(e,t)=>{let{str:n,pre:a,post:r}=Fr(e,t);return{text:n,pre:a,post:r,tags:new Set}},Gr=function(e,t){const n=t.model.one.unicode||{};let a=(e=e||"").split("");return a.forEach(((e,t)=>{n[e]&&(a[t]=n[e])})),a.join("")},Br=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const zr=/([A-Z]\.)+[A-Z]?,?$/,Hr=/^[A-Z]\.,?$/,Vr=/[A-Z]{2,}('s|,)?$/,Lr=/([a-z]\.)+[a-z]\.?$/;var Sr=function(e){return function(e){return!0===zr.test(e)||!0===Lr.test(e)||!0===Hr.test(e)||!0===Vr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},$r=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Br(a),a=n(a,t),a=Sr(a),e.normal=a},Mr=function(e,t){const{methods:n,model:a}=t,{splitSentences:r,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=r(e=e||"",t).map((e=>{let n=o(e,a);return n=n.map((e=>i(e,a))),n.forEach((e=>{$r(e,t)})),n})),e};const Jr=/[ .][A-Z]\.? *$/i,Wr=/(?:\u2026|\.{2,}) *$/,Kr=/\p{L}/u,qr=/^[A-Z]\. $/;var Ur={one:{killUnicode:Gr,tokenize:{splitSentences:br,isSentence:function(e,t){if(!1===Kr.test(e))return!1;if(!0===Jr.test(e))return!1;if(3===e.length&&qr.test(e))return!1;if(!0===Wr.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),a=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(a)},splitTerms:Nr,splitWhitespace:Or,fromString:Mr}}},Rr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qr={},Zr={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Qr[t]=!0,Zr[t]="Abbreviation",void 0!==e[1]&&(Zr[t]=[Zr[t],e[1]])}))}));var Xr=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out","ex"].reduce(((e,t)=>(e[t]=!0,e)),{});let _r={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Yr={};Object.keys(_r).forEach((function(e){_r[e].split("").forEach((function(t){Yr[t]=e}))}));const eo=/\//,to=/[a-z]\.[a-z]/i,no=/[0-9]/;var ao=function(e,t){let n=e.normal||e.text||e.machine;const a=t.model.one.aliases;if(a.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(a[n])),eo.test(n)&&!to.test(n)&&!no.test(n)){let t=n.split(eo);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const ro=/^\p{Letter}+-\p{Letter}+$/u;var oo=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),ro.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},io=function(e){let t=e.docs,n={};for(let e=0;eco(e,ao),machine:e=>co(e,oo),normal:e=>co(e,$r),freq:io,offset:so,index:lo,wordCount:uo},methods:Ur,model:{one:{aliases:Rr,abbreviations:Qr,prefixes:Xr,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},prePunctuation:{"#":!0,"@":!0,_:!0,"°":!0,"":!0,"":!0,"":!0,"\ufeff":!0},postPunctuation:{"%":!0,_:!0,"°":!0,"":!0,"":!0,"":!0,"\ufeff":!0},lexicon:Zr,unicode:Yr,emoticons:{"<3":!0,"3":!0,"<\\3":!0,":^P":!0,":^p":!0,":^O":!0,":^3":!0}}},hooks:["alias","machine","index","id"]},go={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let a=n[n.length-1]||[],r=a[a.length-1];if(!r.post&&t.hasOwnProperty(r.normal)){let n=t[r.normal];r.implicit=n,r.machine=n,r.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const mo=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var po=function(e){e.prototype.autoFill=mo},fo=function(e,t,n){let a={},r=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete a[e]})),a};const bo={safe:!0,min:3};var vo={typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},bo,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=fo(e,t,this.world());return Object.keys(r).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=r[e]})),this}},yo={model:{one:{typeahead:{}}},api:po,lib:vo,compute:go,hooks:["typeahead"]};b.extend(ee),b.extend(qn),b.extend(cn),b.extend(oa),b.extend(_a),b.plugin(Ce),b.extend(ho),b.plugin(k),b.extend(Ke),b.extend(yo),b.extend(He),b.extend(fa);var wo={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos",volcano:"volcanoes"},ko={Comparative:"true¦bett1f0;arth0ew0in0;er",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦began,came,d1had,lied,mea0sa1we0;nt;id",Participle:"true¦0:0A;a07b02c00dXeat0fSgQhPoJprov0rHs7t6u4w1;ak0ithdra03o2r1;i03uZ;k0rn,v0;nd1pr05;ergoJoJ;ak0hHo3;e9h7lain,o6p5t4un3w1;o1um;rn;g,k;ol0reT;iRok0;ught,wn;ak0o1ruL;ne,wn;en,wn;ewriOi1uK;dd0s0;ut3ver1;do4se0t1;ak0h2;do2g1;roH;ne;ast0i7;iv0o1roE;ne,tt0;all0loCor1roz0;bi3g2s1;ak0e0;iv0oA;dd0;ove,r1;a6eamt,iv0u1;nk;hos0lu1;ng;e4i3lo2ui1;lt;wn;tt0;at0en,gun;r2w1;ak0ok0;is0;en",Gerund:"true¦accord0be0doin,go0result0stain0;ing",Expression:"true¦a0Wb0Sc0Qd0Me0Kg0EhYjeez,lVmUnSoMpJsHtGuDvoi0Yw6y0;a4e3i1u0;ck,p;k03p0;ee,pee;ah,p,s;!a,y;a5h2o1t0;af,f;rd up,w;atsoever,e1o0;a,ops;e,w;hoo,t;gh,h0;! 0h,m;huh,oh;here nQsk,ut tut;h0ic;eesh,hh,it,oo;ff,h1l0ow,sst;ease,s,z;ew,ooey;h1i,mg,o0uch,w,y;h,o,ps;! 0h;h1my go0w1;d,sh;ell;ah,evertheless,o0;!pe;eh,mm;ah,eh,m1ol0;!s;ao,fao;aCeBi9o2u0;h,mph,rra0zzC;h,y;l1o0;r6y9;la,y0;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww,xcuse me;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;mon,o0;ngratulations,wabunga;a2oo1r0tw,ye;avo,r;!ya;h,m; 1h0ka,las,men,rgh,ye;!a,em,h,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦dick0gre0ones,records;ens","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦bewa0come he0;re",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦its,my,none,our0thy;!s","Noun|Verb":"true¦0:9D;1:8N;2:81;3:9I;4:98;5:91;6:84;7:72;8:92;9:8K;A:9N;a93b84c6Xd68e5Yf5Bg52h4Si4Kj4Hk4El42m3Qn3Mo3Jp2Jqu2Ir1Ts0FtZuXvSwEyDzB;ip,oB;ne,om;awn,e5Xie5Q;aLeJhGiEoCrB;ap,e93;nd0rBu8I;k,ry,sh51th;ck,nBpe,re,sh;!d,g;e7MiB;p,sB;k,p0t1;aBed;r,th0;it,lk,rCsBt4ve,x;h,te;!ehou2raA;aEiDoB;iBm9te,w;ce,d;be,ew,s9;cuum,l3Z;pBr6;da5gra5Wlo5S;aOeNhrMiLoJrEuCwiBy5H;n,st;nBrn;e,n74;aDeCiBot,u8;bu5ck46gg0m,p;at,k,nd;ck,de,in,nsBp,v70;f0i88;ll,ne,p,r4Jss,t8LuB;ch,r;ck,de,e,le,me,p,re;e5Fow,u8;ar,e,ll,mp0st,xt;g,lBng1rg75s5x;k,ly;a0Mc0He0Eh09i07k05l03m02n01ou7JpVqua6YtIuDwB;ea7PiB;ng,pe,t4;bEit,m,ppCrB;ge,pri2v2L;lBo69;e66y;!je7;aKeJiIoFrCuBy1;dy,ff,mb1;a7MeCiBo58ugg1;ke,ng;am,ss,t4;ckCop,p,rB;e,m;ing,pi1;ck,nk,t4;m,p;ck,ge,in,ke,lCmp,nd,p1rBte,y;!e,t;k,l;aFeed,iElDot,rBur;ay,e4PinBu3;g,k1;a58it;ll,n,r7Pte;n,rk;ap,ee1Pow;a54e43i1o4Q;eep,iBou4;ce,p,t;ateboa74iB;!p;de,gnBp,ze;!al;aEeDiCoBuff1;ck,p,re,w;ft,p,v0;d,i3M;ck,de,pe,re,ve;aCed,nBrv1Ft;se,t2G;l,r4t;aEhedu1o5RrB;aCeBibb1o3N;en,w;pe,t4;le,n,r0P;cBil;k,rifi3;aXeFiEoCuB;b,in,le,n,s5H;a8ck,ll,oBpe,u5;f,t;de,ng,p,s1P;aRcQdo,el,fOgNje7lMmKnJo13pHque8sDturn,vBwa6G;eBi20;al,r2;er6PoDpe7tCuB;lt,me;!a4Q;l6Mrt;air,eaBly,o4O;l,t;dezvo2Ot;aBedy;ke,rk;ea2i41;a63ist0r57;act6Jer1Oo6MuB;nd,se;a2Wo60;ch,s61;c16ge,i2ke,lly,nBpZtZ;ge,k,t;es5Xiv0;a03eZhXiVlRoLrCsy4uB;mp,n4rcha2sh;aIeGiFoBu4A;be,ceDdu3fi1grBje7mi2p,te8;amBe6G;!me;ed,ss;ce,de,nt;sBy;er5Ys;cti3i2;iFlDoCp,re,sBw0;e,i5Kt;l,p;iBl;ce,sh;nt,s5H;aCce,e2QuB;g,mp,n6;ce,nBy;!t;ck,le,nBpe,t,vot;!e;a2oB;ne,tograph;ak,eDnCrBt;fu4Qm9;!c2P;!l,r;ckGiFnErtDsCtBu2;ch,eA;s,te;!y;!ic;nt,r,se;!a6;bje7ff0il,oCrButli3Cver3W;b9d0ieA;ze;a4DeDoB;d,tB;e,i3;ed,gle7t;aIeGiFoCuB;rd0;ck,d3Eld,nBp,uth,ve;it52kB;ey;lk,n3Zrr50ss,x;asu3Hn4JrBss;ge,it;il,nDp,rk3KsCtB;ch,t0;h,k;da5n0oeuv3C;aJeHiFoCuB;mp,st;aCbby,ck,g,oBve;k,t;d,n;cBft,m9nFst;en2k;aBc0Ie4vH;ch,d,k,p,se;bCcBnd,p,t4un4;e,k;el,o2K;eCiBno44;ck,ll,ss;el,y;aCo1GuB;i3mp;m,zz;mpHnCr3WssB;ue;cr1Idex,fluEha1k,se27teBvoi3;nt,rB;e8fa3viB;ew;en3;a7le20;aGeEiDoCuB;g,nt;l30no23ok,p,r2u2;ghlight,ke,nt,re,t;aBd6lp;d,t;ck,mDndCrBsh,t33;b3Pm,ne44ve8;!le;!m0;aIloHossGrDuB;arBe40n;antee,d;aCiBou2Tumb1;nd,p;de,sp;ip;ss,w;g,in,me,ng,s,te,ze;aWeTiOlLoHrDuB;ck,el,nBss,zz;c32d;aCoBy;st,wn;cBgme,me;tu1W;cDg,il,ld,rB;ce,e23mB;!at;us;aCe0Pip,oBy;at,ck,od,w;g,ke,me,re,sh,vo19;eEgDlCnBre,sh,t,x;an3i0L;e,m,t0;ht,u1L;ld;aCeBn3;d,l;r,tu1H;ce,il,ll,rm,v2R;cho,d6ffe7nJsHxDyeB;!baB;ll;cDerci2hib9pBtra7;eriBo0R;en3meA;el,han6u2;caBtima5;pe;count0d,vy;aXeQiKoHrCuBye;b,el,mp,plica5;aEeDiCoB;ne,p;ft,nk,p,ve;am,ss;ft,g,in;cCd6ubt,wnloB;ad;k,u0A;p,sDt4vB;e,iBor3;de;char6gui2h,liCpB;at4lFu5;ke;al,ba5cFfeElDma1Apos9siCtaB;il;gn,re;ay;at,ct;li02rB;ea2;b,ma6n3rBte;e,t;a0Cent0Bh04irc1l01oIrDuB;be,e,rBt;e,l,ve;aEeDoCuBy;sh;p,ss,wd;d9ep;ck,ft,sh;at,de,in,lRmKnDpy,re,st,uBv0;gh,nBp1;sZt;ceFdu7fli7glomeGsDtBveL;a7rB;a8ol;eAtru7;ct;ntBrn;ra5;bFfoEmDpB;leBou0Iromi2;meA;a0GeAit,u5;rt;at,iB;ne;lap2oB;r,ur;aCiB;ck,p;im,w;aCeBip;at,ck,er;iEllen6nCrB;ge,m,t;ge,nB;el;n,r;er,re;ke,ll,mp,noe,pDrVsCtBu2ve;alog,ch;h,t;!tuB;re;a02eYiWlSoOrFuCyB;pa0Y;bb1ck1dgCff0mp,rBst,zz;den,n;et;anIeGiEoadDuB;i2sh;se;ca8;be,d6;ge;aBed;ch,k;ch,d;aDg,mb,nCoBtt1x,ycott;k,st,t;d,e;rd,st;aDeCiBoWur;nk,tz;nd;me;as,d,ke,nd,opsy,tB;ch,e;aDef,lt,nBt;d,ef9;it;r,t;ck,il,l05nGrDsCtt1;le;e,h;gBk;aBe;in;!d,g,k;c01dXge,iWlTnRppOrKsGttEucCwaB;rd;tiB;on;aBempt;ck;k,sB;i8ocia5;te;st;chCmB;our;!iB;ve;eCroa4;ch;al;chBg0sw0;or;aCt0;er;rm;d,m,r;dreDvB;an3;ce;ss;cBe,he,t;eDoB;rd,uA;nt;nt,ss",Actor:"true¦0:7E;1:7J;2:6D;3:7I;4:7R;5:7N;6:74;a6Rb66c4Zd4Fe45f3Vg3Eh33i2Xj2Tki2Rl2Mm28n20o1Tp0Wqu0Ur0KsRtKuIvFw9yo7;gi,ut7;h,ub0;aBeAi9o8r7;estl0it0;m2rk0;fe,nn0t2Dza2J;atherm2ld0;ge earn0it0nder0rri1;eter8i7oyG;ll5Up,s43;an,ina2X;n7s0;c6Yder04;aoisea25eAherapi5iktok0o9r7ut1yco6;a7endseMo47;d0mp,nscri0Cvel0;ddl0u1H;a0Rchn8en7na4st0;ag0;i3So0E;aiYcVeShQiNki0mu29oKpHquaGtCu8wee7;p0theart;lt2per8r7;f0ge6viv1;h7inten0Jst5Mvis1;ero,um2;a9ep8r7;ang0eam0;bro2Qc2Rfa2Qmo2Qsi23;ff0tesm2;tt0;ec8ir2Go7;kesp5Du0N;ia5Nt3;l8me6En,rcere7ul;r,ss;di0oi5;n8s7;sy,t0;g0n0;am2ephe1Kow7;girl,m2r2T;cretJnior cit3Jr7;gea4v7;a4it1;hol51i8reen7ulpt1;wr2F;e02on;l1nt;aFeAo9u7;l0nn7;er up,ingF;g44le mod43of0;a53c9fug2Tpo36searRv7;ere4Yolution7;ary;e7luZru25;ptio3X;bbi,dic5Zpp0;arter7e33;back;aZeXhTiSlPoLr9sycho8u7;nk,p36;logi5;aHeEiCo7;dAfess1g8ph4Bs7;pe2Otitu55;en7ramm0;it1y;igy,uc0;est4Rme mini0Xnce7s3I;!ss;a8si7;de4;ch0;ctiti3Dnk0S;dca0Ret,li7pula54rnst46;c2Mtic7;al scie7i2;nti5;a7umb0;nn0y7;er,ma4Pwright;lgrim,one0;a9iloso8otogra8ra7ysi1Z;se;ph0;ntom,rmaci5;r7ssi1X;form0s6;i3Il,nel42r9st1tr7wn;i7on;arYot;ent50i46tn0;ccupa4ffCp9r8ut7;ca5l0E;ac4Mganiz0ig2Jph2;er3t7;i1Nomet7;ri5;ic0spring;aDeBie51o9u7;n,rse7;!r3M;b7mad,vi4Y;le2Yo4G;i7mesis,phew;ce,ghb1;nny,rr3t21;aFeEiBo8u7yst22;m9si19;der3gul,m8n7th0;arEk;!my;ni8s7;f04s0Lt0;on,st0;chan1Unt1rcha4;giAk0n9rtyr,t7y1;e,riar7;ch;ag0iac;ci2stra3L;a8e2Dieutena4o7;rd,s0v0;bor0d8ndlo7ss,urea3Iwy0ym2;rd;!y;d,n7;!s2A;anitor ,e9o8u7;ggl0;gg0urna2W;st0;c6dol,llu3Wmmigra4n7;-lAc1Sfa4habi44nov3s8ve7;nt1stig3;pe0Pt7;a1Hig3ru0O;aw;airGeCistoBo9u7ygie1M;man7nt0sba2J;!ita9;bo,st7usekO;age,e3R;ri2;ir,r7;m8o7;!ine;it;dress0sty2E;aMeJhostHirl28ladi3oDrand8u7;e5ru;cAdaugTfa9m8pa7s6;!re4;a,o7;th0;hi1D;al8d7lf0;!de3C;ie,k7te28;eep0;!wr7;it0;isha,n7;i7tl06;us;mbl0rden0;aFella,iBo8r7;eela2Pie1R;e,re7ster pare4;be1Jm2r7st0;unn0;an31g9lmm19nanci0r7tt0;e7st la2J; marsh2Qfig7m2;ht0;rm0th0;conoFdElectriDm9n8x7;amin0cellency,i2B;emy,trepreneur,vironmenta1K;c9p7;er1loye7;e,r;ee;ci2;it1;mi5;aLeCi9ork,ri8u7we03;de,tche2I;ft0vK;ct3eti8plom2Ire7va;ct1;ci2ti2;aEcor3fencDi0JnBputAs8tectNvel7;op0;ce1He7ign0;rt0;ee,y;iz7;en;em2;c6l0;dAnc0redev9ught7;er7;! ;il;!dy;a06e04fo,hXitizenWlToCrAu7;r3stomer7;! representat7;ive;e3it7;ic;-work0lJmGnAord9rpor1Nu7wboy;n7ri0sin ;ciUte1R;in3;fidantBgressTsAt7;e0Lr7;ibut1o7;ll0;tab14ul1P;!e;edi2m7pos0rade;a0FeRissi7;on0;leag9on8um7;ni5;el;ue;e7own;an0r7;ic,k;!s;aAe8i7um;ld;erle7f;ad0;ir8nce7plGract0;ll1;m2wJ;lebri7o;ty;dCptBr7shi0;e8pe7;nt0;r,t7;ak0;ain;et;aNeMiKlogg0oFrCu7;dd0Gild0rglAsiness7;m2p8w7;om2;ers6;ar;i8o7;!k0th0;cklay0de,gadi0;hemi2oge9y7;!frie7;nd;ym2;an;cyc7sS;li5;atbox0ings;by,nk0r7;b0on8te7;nd0;!e08;c05dXge4nRpMrIsGtBu8yatull7;ah;nt8t7;h1oH;!ie;h9t7;e7orney;nda4;ie5le7;te;sis01tron7;aut,om0;chbis9isto8tis7;an,t;crV;hop;ostAp7;ari7rentiT;ti6;on;le;aAcest1im3nou9y7;bo7;dy;nc0;ly5rc7;hi5;mi9v7;entur0is1;er;ni8r7;al;str3;at1;or;counCquaintanBrobAt7;ivi5or,re7;ss;st;at;ce;ta4;nt","Adj|Noun":"true¦0:18;a15b0Zc0Od0Me0Hf0Bg0Ah08i06ju05l03mWnUoSpNrJsCt8u5v2w1;atershed,elcome;a1ision0R;gabo4nilla,ria1;b0Ont;ndergr1pstairs;adua0Vou1;nd;a3e1oken,ri0;en,r1;min0rori0U;boo,n;age,e5ilv09lack,o3quat,ta2u1well;bordina0Oper5;b0Endard;ciali0Pl1vereign;e,ve0Z;cret,n1ri0;ior;a3e1outiTubbiL;ar,bBla0Qnt0p1side0V;resenta0Publican;ci0Ish;a4eriodic0otenti0r1;emi2incip0o1;!fession0;er,um;rall4st,tie0O;ff1pposi09v0;ensi0Ii05;aggVov1;el;a6e4in3o1;biVder00r1;al,t0;iature,or;di1tr0G;an,um;le,riA;attIiber0u1;sh;stice,veniN;de0mpressioRn1;cumbe08dividu0no07sta08terim;alf,o1umdrum;bby,melA;enious,old,ra01;a4e2i1luid,ugiZ;ne;llow,m1;aEiJ;ir,t,vo1;riLuriL;l3pZx1;c1ecuSpeU;ess;d1iH;er;arl3e1;mographTrivaN;hiElassSo2rude,unn1;ing;m4n1operaK;creAstitueOtempor2vertab1;le;ary;m2p1;anion,lex;er2u1;ni7;ci0;e5lank,o4r1;i2u1;te;ef;ttom,urgeois;st;cademBd8l4n2r1;ab,ctA;im0tarct9;al;e3terna1;ti1;ve;rt;oles1ult;ce1;nt;ic","Adj|Past":"true¦0:30;1:2R;2:2U;a2Jb2Dc1Ud1Be15f10gift0h0Xi0Qj0Pknown,l0Mm0Hn0Fo0Cp05qua04rVsEtAu7v5w3;arp0ea3or5;kIth2T;a3e0W;ri0;n3pd1s0;derstood,i3;fi0t0;ar5hreatCr3wi2R;a3ou19;ck0in0pp0;get0ni1N;aHcaGeEhDimCm01oak0pAt6u3;bsid28gge2Ms3;pe3ta1S;ct0nd0;at0e5r3uV;ength3ip0;en0;am0reotyp0;eci3ik0ott0;al20fi0;pIul1;ar0ut;a3c1Jle2t1S;l0t0;r0tt25;t3ut0;is1Jur1;aAe3;c7duc0f1Cg6l1new0qu5s3;pe2t3;or0ri2;e22ir0;ist1Xul1;eiv0o3ycl0;mme09rd0v1V;lli0ti1A;li19;arallel0i0Kl7o6r3ump0;e4o3;ce0Ilo0Hnou1Tpos0te2;fe0Loc8pY;i1Gli0R;a3e19;nn0;c4rgan1Bverlo3;ok0;cupi0;e3ot0;ed0gle2;a5e4ix0o3ut0;di0Vt0G;as0Qlt0;n3rk0;ag0ufact0O;eft,i4o3;ad0st;cens0mit0st0;agg0us0N;mp8n3sol1;br0debt0f6t3volv0;e3ox0F;gr1n3re18;d0si0J;e2l1oX;li0oLrov0;amm10e1o3;ok0r3;ri0E;aNe6i5lavo09oc05r3;a3i0;ct07g0Mm0;niXx0;ar0;duc1l1mbarraKn7quipp0stabliVx3;agger1p3te5;a4e3;ct0rie0S;nd0;ha0QsZ;aJeAi3;gni01miniOre2s3;a7c5grun05t3;o3reBurb0;rt0;iplSou3;nt0rE;bl0;cenVdOf8l7pre6ra5t3velop0;a3ermO;il0;ng0;ss0;ay0ight0;e4o3;rm0;rr0;m3t0;ag0;alcul1eHharg0lGo8r5u3;lt3stomS;iv1;a4owd0u3;sh0;ck0mp0;d0lo9m6n3ok0vX;centr1f4s3troll0;idVolid1;us0;b4pl3;ic1;in0;ur0;assi5os0;lebr1n5r3;ti3;fi0;tralB;a7i6o4roken,urn3;ed,t;il0r0t3und;tl0;as0;k0laIs0;bandon0cJdGffe2lDnBpp9ss7u3ward0;g4thor3;iz0;me3;nt0;o5u3;m0r0;li0re3;ci1;im1ticip1;at0;leg0t3;er0;ct0;ju4o6va3;nc0;st0;ce3knowledg0;pt0;ed",Singular:"true¦0:5I;1:5G;2:4V;3:4R;4:51;5:56;6:5K;a4Zb4Ic3Ld33e2Vf2Kg2Eh23in1Zj1Yk1Xl1Qm1In1Eo18p0Pqu0Or0DsXtKuFvAw7x r55yo yo;a7ha3N;f3i4Nt0Ey7;! arou37;arAe8o7;cabu4Gl59;gMr7t;di4Wt1T;iety,ni4L;n9p2Yr8s 7;do41s5B;bani1in0;coordinat38der7;estima1to1Zwe3Z; rex,aIeHhFiDoCr9u8v7;! show;m2Mn2rntJto19;agedy,ib7o4A;e,u7;n0ta43;ni1p2rq3J;c,er,m7;etD;ing7ree23;!y;am,mp3D;ct2le6x return;aLcKeIhor4NiHkFoEpin off,tBu9y7;ll7ner4Jst4Q;ab2V;b7i1n26per bowl,rro1U;st3Jtot0;at8ipe2Eo1Grate4Fudent7;! lo0F;i37u1;ft ser4Imeo1D;elet5i7;ll,r3R;b36gn2Rte;ab2Hc7min39;t,urity gu2L;e6ho2W;bbatic0la3Gndwi0Mpi5;av5eBhetor2i8o7;de6om,w;t8v7;erb2A;e,u0;bBc9f7publ2r0Vspi1;er7orm3;e6r0;i7ord label;p2Ft0;a1u43;estion mark,ot2D;aMeJhotocoUiGlEoCr8u7yram1D;ddi3EpCrpo1Hs3G;e9o7;bl3Ws7;pe3Gta1;dic1Pmi1Dp1Oroga3Sss relea1D;p7rt0;py;a7ebisci1;q2Bte;cn2e8g7;!gy;!r;anut,d8r7t0yo1;cen3Hsp3I;al,est0;nop4r8t7;e,hog5;adi10i2S;atme0bj3Dc9pia1rde0thers,utspok5ve7wn3;n,r7;ti0Nview;cu8e7;an;pi3;ar9it8ot7umb3;a2Dhi2P;e,ra1;cot2ra35;aCeAi8o7ur0é0B;nopo4p17rni2Lsq1Qti34uld;c,li10n07s7tt5;chief,si32;d7nu,t0;al,ic;gna1mm0nd15rsupi0te7yf4;ri0;aBegAi9u7;ddi1n7;ch;ght bulb,me,p09ving room; 8e0M;bor14y 7;up;eyno1itt5;el4ourn0;c9dices,itia2Nni25s8tel0Mvert7;eb1K;e28titu1;en2Ki2T;aGeCighBo8u7;man right,s22;me7rmoDsp1Gtb0L;! r7;un; scho0ZriZ;a7i1M;d7v5; start,pho7;ne;ndful,sh brown,v5ze;aAelat0Jlaci3r8u7yp1S;l4y;an7enadi3id;a1Bd slam,ny;df4r7;l2ni1G;aGeti1FiFlEoBr8un7;er0;ee market,i8on7;ti3;ga1;l4ur7;so7;me;ow3u1;eNref4;br2mi4n0Z;conoDffi1Mgg,lecto0Pmbas1BnApidem2s1Wth2ven9x8yel7;id;ampXempl0Lte6;i16t;er1Iterp7;ri7;se;my;eJiCo9r7ump truck;agonf4i7;er,ve thru;c8g1Bi4or,ssi3wn7;side;to0CumenC;aCgniBnn3s8vide7;nd;conte6incen1Bp7tri0Y;osi7;tion;ta0E;le0U;ath9c8f7ni0terre6;ault 03err0;al,im0;!b7;ed;aUeRhKiJlHoBr7;edit c9uc7;ib7;le;ard;efficBke,lAmmuniqJns8pi3rr0t0Uus7yo1;in;erv7uG;atoZ;ic,lO;ie6;er0Li7oth;e6n2;ty,vil wK;aBeqAick5oco9r7;istmas car7ysanthemum;ol;la1;ue;ndeli3racteri7;st2;i8llCr7;e0tifica1;liW;hi3nDpCrAt7ucus;erpi7hedr0;ll7;ar;!bohyd7ri3;ra1;it0;a7e;l,ry;aJeIiop2leGoEreakCu7;nAr7tterf4;g7i0;la7;ry;ny;fa7thro9;st;dy,ro7wl;ugh;mi7;sh;an,l4;nki9r7;!ri3;er;ng;cQdKlGnDppeti1rBs9tt2utop7;sy;ic;ce6pe7;ct;r7sen0;ay;ec8oma4ti8;ly;do1;i5l7;er7y;gy;en; hominBj8van7;tage;ec7;ti7;ve;em;cAe8qui7;tt0;ta1;te;i8ru0;al;de6;nt","Person|Noun":"true¦a07b01cYdRePfOgMhJjFkiElDmBolive,p7r4s3trini00v1wa0;ng,rd;an,enus,iol0;a,et;ky,on5umm02;ay,e1o0uby;bin,d,se;ed,x;a2e0ol;aHn0;ny;ge,tM;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Actor|Verb":"true¦aHbDcAd8engineFfool,g6host,judge,m4nerd,p3recruit,s1ushFvolunteFwi0;mp,tneF;cout,p0;ons6y;arent,ilot;a0ime;n,st9;eek,oof,r0uide;aduBoom;elegAoct0;or;ha1o0;ach,nscript,ok;mpion,uffeur;o2u0;lly,tch0;er;ss;d0ffili1rchite2;di1voc0;ate;ct",MaleName:"true¦0:DO;1:CO;2:D7;3:AJ;4:CK;5:BZ;6:CF;7:D3;8:BS;9:AR;A:DB;B:D4;C:94;D:BM;aC9bB7cA7d98e8If82g7Fh6Si6Cj5Ek52l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Jkaria,n0C;hFkE;!aC7;ar5UeC6;aMoGuE;sEu2LvBJ;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB8ssY;avi3ho4;aNeLiGoEyaBN;jcie87lfgang,odrow,utE;!er;lEnst1;bGey,fredAlE;aAZiE;am,e,s;e97ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Xy;aHiEladimir,ojte7U;cFha0kt67nceErgA5va0;!nt;e3Xt65;lentEn9S;inE;!e;ghBElyss59nax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r59;avAHeEist0oy,um0;ntA9v5Wy;bGd8RmEny;!as,mEoharu;aCCie,y;iCy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8G;!de5;dHrE;en98rE;an97eEy;ll,n96;!dy;dgh,ha,iEnn3req,tsu4R;cAPka;aUcotSeQhMiKoIpenc3tEur1Xylve96zym1;anGeEua85;f0phBCvEwa84;e5Zie;!islaw,l8;lom1uE;leyma6ta;dElCm1yabonga;!dhart74n8;aGeE;lErm0;d1t1;h7Kne,qu11un,wn,y6;aEbasti0k2Cl4Prg4Mth,ymoAE;m5n;!tE;!ie,y;lFmEnti2Gq58ul;!ke5JmDu4;ik,vato7O;aZeVhe9ViRoIuFyE;an,ou;b7DdFf5pe7KssE;!elBJ;ol3Fy;an,bLc62dJel,geIh0landAmHnGry,sFyE;!ce;coe,s;!aA1nD;an,eo;l45r;er78g3n8olfo,riE;go;bDeAQ;cEl8;ar6Ic6HhFkEo;!ey,ie,y;a8Vie;gFid,ubByEza;an1KnZ;g9SiE;na9Os;ch6Qfa4lImHndGpha4sFul,wi2HyE;an,mo6U;h7Jm5;alAXol2U;iACon;f,ph;ent2inE;cy,t1;aJeHhilGier6TrE;aka18eE;m,st1;!ip,lip;dA4rcy,tE;ar,e3Er1Y;b4Hdra73tr6JulE;!o19;ctav3Di3liv3m9Yndrej,rIsFtEum7wB;is,to;aFc7k7m0vE;al5S;ma;i,vM;aMeKiGoEu38;aEel,j5l0ma0r3I;h,m;cFg4i46kEl2R;!au,h7Gola;hEkEolC;olC;al,d,il,ls1vE;il8J;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Gr1;hamFr6KstaE;fa,p54;ed,mI;di0Xe,hamGis2CntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Uik;house,o0Ct1;ae5Oe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2AlSmadXnRrLs1tGuricFxE;imilianAwe9;e,io;eHhFiCtEus,yC;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Ysha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5G;ou;aXeRiPlo39oLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7BrenGuEv81we9;!iE;e,s;!zo;am,oE;n4r;a7Uevi,la4AnIonHst3thaGvE;eEi;nte;bo;!a6Del;!ny;mFnd1rEur54wr54;ry,s;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubCnJrHsE;eFhEi7Wue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Gy;!e5OrE;ey,y;cLdBkJmIrGsFvi3yE;dBs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i70maEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dB;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5K;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4Y;oGrE;aEry;ld,rdA;ffr8rge;brFlBrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymBzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estAie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4FsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydCy29;!lC;!a2HnEov0;e9ie,y;go,iFykC;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l36n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1C;aEie;rdA;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar17b0Vd0Rf0Pgust2hm0Mi0Jja0Il03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndA;!el,ki;ie;ta;aq;as,dIgelAtE;hony,oE;i6nE;!iAy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;aRbeQdBeKfIi,lHonGphZt1vE;aOin;on;so,zo;an,en;onVrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtA;dd2n;ni;dBm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfAri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Uncountable:"true¦0:33;1:2J;2:2Q;3:38;4:3H;a31b2Sc2Gd27e1Wf1Sg1Jh1Bi16j13k11l0Wm0Mn0Io0Hp07r03sOtBuran2Qv9w5you gu0J;a7his1Ci6oo5;d,l;ldlife,ne;rmAt2;apor,ernacul2Gi5;neg2Fol1Ttae;eGhEiDoBr6un5yranny;a,gst1G;aff2Vea1Po6ue nor5;th;o0Du5;ble5se1Yt;!shoot0;night,othpas1Zwn5;foGsfoG;me off,n;er5und2;e,mod2Y;a,nnis;aGcFeEhCiBkiAo9p8t6u5weepstak1;g20nshi2Nshi;ati0Ce5;am,el;ace2Qeci1;ap,cc2meth0;n,ttl1;lk;eep,ingl1o5;pp0r1F;lf,na1Jri1;ene1Pisso1F;d0Zfe3l6nd,t5;i0Lurn;m1Zt;abi1e6ic5;e,ke18;c5i04laxa14search;ogni13rea13;aCeBhysAl9o7re5ut3;amble,mis1s5ten25;en24s0O;l5rk;i2Dl0HyK;ast1Wuto; 1Ai4;a28tr0H;nt5rk0ti0O;i1s;bstetri4vercrowd0xyg0B;a7e6owada5utella;ys;ptu1Sws;il poli01tional securi3;aCeAo7u5;m5s1L;ps;n5o1O;ey,o5;gamy;a5cha0Glancholy,rchandi1Ltallurgy;sl1t;chine5g1Ej1Lrs,thema1U; learn0ry;aught2e8i7ogi6u5;ck,g16;c,s1Q;ce,ghtn0nguis1PteratYv2;ath2isXss;ara0GindergartRn5;icke0Cowled12;e5upit2;a5llyfiIwel0K;ns;ce,gnor8mp7n5;forma02ter5;net,sta09;atiUort5rov;an1C;a9e8isto0Do5ung2;ckey,mework,ne6o5rseradiAspitali3use arrest;ky;s3y;adquarteZre;ir,lib03ppiJs5;hi5te;sh;eneAl8o7r5um,ymnas15;a5e03;niWss;lf,re;ut5yce0J;en; 5ti4;edit0po5;ol;aPeel0icHlour,o6urnit5;ure;od,rgive5uri2wl;ness;arEcono0PducaDlectrBn9quipAthi4very8x5;ist6per5;ti0F;en0N;body,o0Cth0;joy5tertain5;ment;ici3o5;ni4;tiW;nings,th;eBi8o6raugh5ynas3;ts;pe,wnstai5;rs;abet1ce,s5;hon03repu5;te;b5miZ;ut;aFelciEhCivi4lAo5urrency;al,ld w8mmenta7n5ral,ttKuscoD;fusiJt 5;ed;ry;ar;assi4oth1;es;aos,e5;eOw0;us;d,rQ;aAi8lood,owl0read7u5;nt0tt2;er;!th;lliarLs5;on;g5ss;ga5;ge;cMdviLeroIirHmDn8ppeal court,r6spi5thleN;rin;ithmet5sen5;ic;i8y5;o6th0;ing;ne;se;en7n5;es3;ty;ds;craft;bi4d5nau9;yna5;mi4;ce;id,ous5;ti4;cs",Infinitive:"true¦0:8W;1:99;2:9T;3:8G;4:7M;5:9F;6:9X;7:8I;8:9P;9:9G;A:9W;B:9B;C:83;D:8A;E:86;F:8N;G:8B;a8Ib7Xc72d5We4Qf4Dg48h43i3Jj3Gk3El35m2Ynou41o2Rp2Aqu29r1Cs0BtXuSvQwH;aNeMiKors4rH;eIiH;ng,te;ak,st3;d4e7VthH;draw,er;a2d,ep;i2ke,nHrn;d1t;aHie;li9SniAry;nHplift;cov1dIear80found7WlHplug,rav7Jtie,ve8K;eaAo3R;erHo;cut,go,sta9Vval9Jwhelm;aSeQhNoMrHuI;aIeH;mb3;ffi3Lmp3nsH;aDpH;i7oE;pp3ugh4;aIiIrHwaE;eat4i2;nk;aHm9F;ch,se;ck3ilor,keHmp1r80;! paE;a0Gc0Fe0Dh09i07l05mugg3n04o02pZquYtRuJwH;all7GeeHim;p,t4;bLccKffJggeBmmIp2KrH;mouFvi2;ari0on;er,i5;e77umb;li91mIsiHveE;de,st;er9it;aLe83iJrH;ang3eHi2;ng23w;fHng;f4le;gg1rH;t3ve;a41iA;a4KeIit,l6XoH;il,of;ak,nd;lHot70w;icCve;atGeak,i0M;aHi6;m,y;ft,nHt;g,k;aJi5UoIriHun;nk,v67;ot,rt4;ke,rp4tt1;eHll,nd,que7Wv1w;!k,m;aven9ul8C;dd4tis1Dy;a0CeJiIoH;am,ut;d,p4;a07b05c03d02fZgroup,heaYiXlVmUnTpRq3CsNtLup,vH;amp,eIiHo31;sCve;l,rH;e,t;i7rH;ie2ofC;eFiJpo85tHurfa5;o1YrH;a51iDuctu7;de,gn,st;el,hra0lHreseF;a5e6I;d1ew,o05;a4We36o2;a8eFiHoad,y;e2nq3Rve;mbur0nf2Z;r0t;inIleDocus,reAuH;el,rbiA;an5e;aDu5;ei2k7Sla3ToHyc3;gni31nci3up,v1;oot,uH;ff;ct,d,liH;se,ze;tt3viA;aAenGit,o8;aVerTinpoiFlumm1GoSrKuH;b3Tke,niArHt;poEsuH;aFe;eLoH;cJd,fe4HhibCnoIpo0sp1tru6vH;e,i6o55;un5;la3Du7;aGclu6dIf1occupy,sup0FvH;a5TeF;etermi4DiD;aGrtr55sse4A;cei2fo47iAmea8plex,sHva6;eve7iBua6;mp1rHtrol,ve,y;a60t5W;bMccuLmCpKutJverHwe;lap,sHtu6Gu0;ee,h1A;gr4Ynu25pa5;era8i43po0;py,r;ser2ta3S;aLe0SiIoHultiply;leBu69;micInHspla5;ce,g3us;!k;iHke,na9;m,nta3L;aOeKiHo0u3B;e,ke,ng1quHv4;eHi6C;fy;aJnHss4;d,gH;th4;rn,ve;ng29u1H;eep,nH;e3Xow;o39uH;gg3xtaH;po0;gno7mUnHrk;cSdQfPgeBhOitia8ju7q17sMtJun5ZvH;a6eHo0W;nt,rt,st;erIimi5WoxiOrH;odu5u6;aDn,pr01ru5X;iBpi7tHu7;il,ruD;abCibC;eBo31u0;iHul9;ca8;i8lu6;b5Imer0pH;aKer4Fin9ly,oIrH;e2Xis5Vo2;rt,se,veH;riA;le,rt;aKeJiHoiBuE;de,jaHnd1;ck;ar,iQ;mp1ng,pp4rang58ve;ath1et,i2le1XoKrH;aIeHow;et;b,pp3ze;!ve4W;aSer3Ri5ElRorLrIuH;lf3Zndrai0r3V;eIiHolic;ght4;e0Nsh4;b3JeKfeCgIsH;a32ee;eHi2;!t;clo0go,shHwa4M;ad35;ee,i2V;lt1st4;a0KdCl0Im0CnUquip,rTsStGvQxH;a20cNeEhMiLpItHu6;ing0Uol;eIi7lHo0un9;a1VoC;ct,di8l;st,t;a3oE;e2RlH;a0Wu6;alua8oH;ke,l2;chew,pou0tab12;a0u4J;aXcUdSfRgPhan5joy,lOqNrMsuLtJvH;e0UisH;a9i4O;er,i5rH;a1HenGuB;e,re;iGol;ui7;ar9iB;a9eHra2ulf;nd1;or5;ang1oHu7;r0w;irc3lo0ou0BrIuH;mb1;oaGy42;b3ct;bJer9pH;hasiHow1;ze;a0Rody,rH;a5oiH;d1l;ap0eDuH;ci3Qde;rHt;ma0Ln;a0Le01iJo,rHwind3;aw,ed9oH;wn;agno0e,ff1g,mi2AsKvH;eHul9;rHst;ge,t;ab3bTcOlod9mant3pMru3JsLtH;iHoEu2X;lIngH;uiA;!l;ol2ua6;eHla5o0ro2;n0r0;a2Oe2XlJoHu0L;uHv1;ra9;aHo0;im;a3Bur0;af4bXcRduDep4fQliPmMnKpJra1WsiBtaGvH;eHol2;lop;aEiDlo7oE;oHy;te,un5;eIoH;liA;an;mCv1;a5i07o03raud,y;ei2iLla7oJrH;ee,yH;!pt;de,mHup3;missi2Ypo0;de,ma8ph1;aIrief,uH;g,nk;rk;mp4rk4uF;a09ea0h06i05l04oIrHurta1B;a2ea8ipp3;ales5e01habCinci6ll00mYnHrro6;cVdSfOju7no8qu1sLtJvH;eHin5;ne,r9;aHin27ribu8;in;er2iIoli29pi7titu8uH;lt;d1st;eJiIoHroFu0;rm;de,gu7rm;ss;eIoH;ne;mn,n0;eHlu6ur;al,i2;buBe,men5pH;e8i3ly;eDi6u6;r5xiB;ean0iT;rcumveFte;eIirp,oH;o0p;riAw;ncHre4t1ulk;el;aZeTi6lRoPrKuH;iIrHy;st,y;ld;aKeaJiIoad4;en;ng;stfeLtT;ke;il,l0Ymba0TrHth1;ne,rL;eHow;ed;!come,gLha2liKqueaJstItrHwild1;ay;ow;th;e2tt3;in,ui3;bysCckfi7ff3tH;he;b15c0Rd0Iff0Ggree,l0Cm09n03ppZrXsQttNuLvIwaC;it;eEoH;id;rt;gHto0X;meF;aGeBraD;ct;ch;pi7sItoH;niA;aJeHi03u7;mb3rt,ss;le;il;re;g0Gi0ou0rH;an9i2;eaJly,oiFrH;ai0o2;nt;r,se;aLi0FnItH;icipa8;eIoHul;un5y;al;ly0;aIu0;se;lga07ze;iJlH;e9oHu6;t,w;gn;ix,oH;rd;a02jMmiJoIsoH;rb;pt,rn;niHt;st1;er;ouIuB;st;rn;cKhie2knowled9quiHtiva8;es5re;ce;ge;ePliNoJrIusH;e,tom;ue;mHst;moIpH;any,liA;da8;ma8;te;pt;andNet,i6oJsH;coJol2;ve;liArt,uH;nd;sh;de;on",Adjective:"true¦0:A7;1:BH;2:A4;3:B7;4:AZ;5:9Y;6:7W;7:AK;8:AC;9:BF;A:79;B:AN;C:B1;D:B6;E:9N;a9Rb94c87d7Oe72f6Ig6Ah5Xi4Uj4Tk4Ql4Fm3Zn3Oo35p2Oquart7Ir2Ds1Dt14uSvOwFye29;aMeKhIiHoF;man6oFrth79u10;dA2zy;despreAQn w8Xs7Y;acked1HoleF;!sa7;ather1ReFll o6Uste1D;!k6;nt1Jst65te5;aHeGiFola5P;bBJce versa,gi3Kle;ng62rsa5N;ca1gBHluAK;lt0PnLpHrGsFttermoBA;ef99u4;b8Wge1; Hb31pGsFtiA6;ca7et,ide d4O;er,i7X;f4Yto da3;a0Fbecom2c0Bd04e02f01gu1XheaB5iXkn4LmUnTopp06pRrNsJtHus0wF;aFiel3I;nt0rra0P;app0eXoF;ld,uS;eHi36o56pGuF;perv06spect2;e1ok9D;en,ttl0;eFu6;cogn06gul2QlGqu0YsF;erv0olv0;at0ent2;aFrecede0E;id,rallel0;am0otic0;aFet;rri0tF;ch0;nFq25vers4;sur0terFv0O;eFrupt0;st0;air,inish0orese8X;mploy0nd2v8WxpF;ect0lain0;eHisFocume01ue;clFput0;os0;cid0rF;!a8HcovAha88ly2nea85privileg0sMwF;aFei97;tAy;hGircumcFonvinc2;is0;aFeck0;lleng0rt0;b1Zppeal2ssum2tteGuthorF;iz0;nd0;i46ra;aLeIhoHip 24oGrF;anspare1encha1i3;gethAleA2p notch,rpB;rny,ugh69;ena82mpGrF;r45tia5;eCo8F;leFst4H;nt0;a0Dc09e07h06i04ki03l01mug,nobbi4SoXpSqueami4StKuFymb8T;bHccin9i generis,pFr6;erFre7D;! dupAb,vi6R;du0li7Bp6AsFurb79;eq8Ztanda9M;aLeKi15o2NrGubboFy4L;rn;aightGin59ungF; o2K; fFfF;or7J;adfa9Dri7;lwa66tu7Q;arIeHirGlendBot Fry;on;it0;c3Ke1O;k6se; call0lub7mbAphistic13rHuFviT;ndFth18;proof;dBry;e5SipF;pe5shod;ll0n d7G;g2EnF;ceEg7istA;am3NeA;co1Wem6lfFn61re8; suf4Qi3Y;aGholFient36;ar6;rlFth2;et;cr0me,tisfac74;aOeIheumatoBiGoF;bu8Ott75y4;ghtFv4;-w2f6M;cJdu8ElInown0pro5ZsGtF;ard0;is40oF;lu3na1;e1Puc3Y;alcit8Me1ondi3;bBci4mpa1;aReOicayu8laNopuli8ErGuF;bl7Injabi,zzl0;eKiIoF;b7KfGmi42pFxi2I;er,ort7Q;a8uD;maFor,sti8va3;!ry;ciDexist2ma28paB;cBid;ac2Unt 3ErFti3;fe9ma3UtFv7M;!i3T;i2UrFss7H;anoBtF;-5OiF;al,s5M;bSffQkPld OnMrLthAutKverF;!aIbMdHhGni6Vseas,t,wF;ei6Urou6U;a5Te70;ue;ll;do1Der,si60;d3Kg27otu5P; bFbFe on o8go2li8;oa7Q;fashion0school;!ay; gua7NbFha5Kli8;eat;eHligGsF;ce8er0Qo19;at0;diFse;a1e1;aOeNiMoGuF;anc0de; moEnHrthFt6L;!eFwe7B;a7Arn;chaGdescri78prof2UsF;top;la1;ght6;arby,cessa5ighbor6xt;k0usiat2v4;aPeNiLoHuF;dIltiF;facet0p7;deHlGnFot,rbBst;ochro4Pth6;dy;rn,st;ddle ag0nF;dblYi;agAdiocEga,nac2rFtropolit4I;e,ry;cIgenta,inHj0Ekeshift,mmGnFri4Hscu5Tver17;da55y;ali4Eo4M;!stream;abEho;aOeLiIoFumber2;ngFuti1P;sta3MtF;erm,i4A;ghtGteraF;l,ry,te;heart0wei5G;ft-w2gFssAth4;al,eFi0L;nda5;nguBps0te6;apGind6nF;ow2;ut;itte5uniV;ce co0Ggno6Ell0Bm03nHpso 2PrF;a3releF;va1; YaXcoVdQePfOgrNhibi4Ji04nMoLsHtFvalu5E;a9eF;nDrdepe2F;a8iGolFuboI;ub7ve1;de,gF;nifica1;rdi5F;a3er;own;eriHiKluenUreq5A;pt,rt;eHiGoFul1L;or;e,re9;fiFpe22termi57;ni3;mpFnsideCrre9;le3;ccuCdeq57ne,ppr4D;fFsitu,vitro;ro1;mJpF;arHeGl12oFropA;li3r0Y;nd2rfe9;ti4;aGeFi15;d45nD;tuE;egGiF;c0VteC;al,iF;tiF;ma3;ld;aOelNiLoFuma8;a5meInHrrGsFur6;ti7;if47;e51o3O; ma39sF;ick;ghfalut2BspF;an42;liZpf2W;i5llow0ndGrdFtL; 04coEwork2;sy,y;aKener3Xiga34lob4oJraGuF;il1Jng ho;cGtF;ef2Pis;ef2O;ld34od;iFuc28;nf2L;aVeSiQlOoJrF;aGeFil6ug4;q3Xtf2I;gFnt3M;i7ra1;lk10oHrF; keeps,eFge0SmAtu3Vwa4G;go2i27s3L;liF;sh;ag4Gowe5uF;e1or3Z;e5nF;al,i3;d Gmini8rF;ti7ve1;up;bl0lDmili0Sr Fux;oFreach2;ff;aXfVlTmQnOqu4rMthere4veryday,xF;a9em3YpIquisi3traHuF;be44lF;ta1;!va2I;edRlF;icF;it;e9stF;whi7; Fough,tiE;rou3sui3;erGiF;ne1;ge1;dFe27oq30;er6;ficF;ie1;gAsF;t,ygo2;er;aWeMiHoGrFue;ea5owY;ci7mina1ne,r2Yt2ubQ;dact2Gfficult,m,sGverF;ge1se;creGePjoi1paCtF;a1in9;et,te; Nadp0UceMfiLgeneCliJmuEpeIreli9sGvoF;id,ut;pFtitu3ul1I;eCoF;nde1;ca3ghF;tf10;a1ni3;as0;facto;i6ngero0G;ar0Ae07h06i05l04oOrIuF;rmudgeon6stoma5teF;sy;ly;aIeHu1CystalF; cleFli8;ar;epy;fFv14z0;ty;erTgSloRmOnGrpoCunterclUveFy;rt;cLdJgr1YjIsHtrF;aFi3;dic0Vry;eq1Vta1;oi1ug4;esceFuM;nd2;a1NiD;atoDmensuCpF;ass1QulF;so5;ni4ss4;e1niza1;ci1H;ockwiD;rcumspe9vil;ee5intzy;leGrtaF;in;ba3;diac,efZ;aZePiLliJoGrFuck nak0;and new,eathtak2isk,on21;gGldface,naF; fi04fi04;us;nd,tF;he;gGpartisFzarE;an;tiF;me;autifNhiMlKnGsFyoM;iVtsell2;eGiFt;gn;aFfi04;th;at0oF;v0w;nd;ul;ckwards,rF;e,rT; priori,b13c0Zd0Tf0Ng0Ihe0Hl09mp7nt06p00rTsQttracti0MuLvIwF;aGkF;wa1B;ke,re;ant garGeraF;ge;de;diIsteEtF;heFoimmu8;nt07;re;to5;hGlFtu3;eep;en;bitJchiv4roItF;iFsy;cula3fiF;ci4;ga1;ra5;ry;pFt;aHetiz2rF;oprF;ia3;ll2re1;ing;iquFsy;at0e;ed;cohKiJkaHl,oGriFterX;ght;ne,of;li8;ne;ke,ve;olF;ic;ad;ain07ed,gressiIi7rF;eeF;ab7;le;ve;fGraB;id;ectGlF;ue1;ioF;na3; JaIeGvF;erD;pt,qF;ua3;ma1;hoc,infinitum;cuCquiGtu4u3;al;esce1;ra3;erSje9lPoNrKsGuF;nda1;e1olu3trF;a9uD;se;te;eaGuF;pt;st;aFve;rd;aFe;ze;ct;ra1;nt",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;e,m,y;!l,t;e0im;!'s",Preposition:"true¦-,aPbMcLdKexcept,fIinGmid,notwithstandiWoDpXqua,sCt7u4v2w0;/o,hereSith0;! whHin,oW;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h1ill,oward0;!s;an,ereby,r0;ough0u;!oM;ans,ince,o that,uch G;f1n0ut;!to;!f;! 0to;effect,part;or,r0;om;espite,own,u3;hez,irca;ar1e0oBy;sides,tween;ri7;bo8cross,ft7lo6m4propos,round,s1t0;!op;! 0;a whole,long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s",PhrasalVerb:"true¦0:92;1:96;2:8H;3:8V;4:8A;5:83;6:85;7:98;8:90;9:8G;A:8X;B:8R;C:8U;D:8S;E:70;F:97;G:8Y;H:81;I:7H;J:79;K:4G;a9Gb7Vc6Sd6Me6Kf5Ig51h4Ciron0j48k41l3Fm32n2Zo2Xp2Dquiet Hr1Ys0Lt00uYvacuu6RwOyammerBzL;ero Dip MonL;e0k0;by,ov9up;aReNhMiLor0Nrit1A;mp0n3Gpe0r5s5;ackAeel Di0T;aMiLn34;gh 3Xrd0;n Dr L;do1in,oJ;it 7Ak5lk Mrm 6Ash Lt84v60;aw3do1o7up;aw3in,oC;rgeBsL;e 2herE;a01eZhWiSoRrNuLypQ;ckErn L;do1in,oJup;aMiLot0y 31;ckl80p F;ck HdL;e 5Z;n7Xp 3Fs5K;ck NdMe Lghten 6me0p o0Sre0;aw3ba4do1in,up;e Iy 2;by,oG;ink Mrow L;aw3ba4in,up;ba4ov9up;aLe 78ll63;m 2r 5N;ckBke Mlk L;ov9shit,u48;aLba4do1in,leave,o66up;ba4ft9pa6Aw3;a0Wc0Ue0Nh0Ji0Gl0Am09n08o07p02quar5HtRuPwL;earNiL;ngMtch L;aw3ba4o8L; by;cLi6Cm 2ss0;k 65;aSeRiQoOrLud36;aigh2Eet76iL;ke 7Tng L;al6Zup;p Lrm2G;by,in,oG;cKnKr 2tc4O;p F;cKmp0nd MrLveAy 2P;e Ht 2M;ba4do1up;arKeOiNlMrLurB;ead0ingBuc5;a49it 6I;c5ll o3Dn 2;ak Fe73ll0;aKber 2rt0und like;ap 5Wow Duggl5;ash 6Ooke0;eep OiLow 6;cMp L;o6Eup;e 69;in,oL;ff,v9;de1Agn 4OnLt 6Hz5;gLkE; al6Ble0;aNoLu5X;ot Lut0w 7N;aw3ba4f48oC;cKdeEk6FveA;e Qll1Ond Prv5tL; Ltl5K;do1foMin,o7upL;!on;ot,r60;aw3ba4do1in,o4Wup;oCto;al67out0rL;ap66ew 6K;ilAv5;aYeViToPuL;b 5Zle0n Lstl5;aMba4do1inLo2Jth4Ou5Q;!to;c2Xr8w3;ll Not MuL;g3IndA;a2Wf3Po7;ar8in,o7up;ng 69p oLs5;ff,p19;aLelAinEnt0;c6Id L;o3Oup;cKt0;a00eZiXlUoRrPsyc35uL;ll Nn5Lt L;aLba4do1in,oJto48up;pa4Ew3;a3Kdo1in,o22to46up;attleBess LiOop 2;ah2Fon;iMp Lr50u1Hwer 6O;do1in,o6Oup;nt0;aMuL;gEmp 6;ce u21y 6E;ck Lg0le 4Bn 6p5C;oJup;el 5OncilE;c54ir 3An0ss NtMy L;ba4oG; Hc2R;aw3ba4in,oJ;pLw4Z;e4Yt D;aMerd0oL;dAt54;il Hrrow H;aUeRiQoMuL;ddl5ll I;cKnkeyNp 6uthAve L;aLdo1in,o4Mup;l4Ow3; wi4L;ss0x 2;asur5e3TlMss L;a21up;t 6;ke Mn 6rLs2Ax0;k 6ryA;do,fun,oCsure,up;a03eWiRoMuL;ck0st I;aOc4Gg NoLse0;k Lse4E;aft9ba4do1forw38in57o10u47;in,oJ;d 6;e OghtNnMsLve 01;ten F;e 2k 2; 2e47;ar8do1in;aNt MvelL; oC;do1go,in,o7up;nEve L;in,oL;pLut;en;c5p 2sh MtchBughAy L;do1o5A;in4Qo7;eNick Mnock L;do1oCup;oCup;eMy L;in,up;l Ip L;aw3ba4do1f05in,oJto,up;aNoMuL;ic5mpE;ke3Tt H;c44zz 2;a02eXiUoQuL;nMrrLsh 6;y 2;keMt L;ar8do1;r H;lLneErse3L;d Le 2;ba4dLfast,o25up;ear,o1;de Mt L;ba4on,up;aw3o7;aLlp0;d Nl Ir Lt 2;fLof;rom;f11in,o1WuX;cKm 2nMsh0ve Lz2Q;at,it,to;d Mg LkerQ;do1in,o2Uup;do1in,oL;ut,v9;k 2;aZeUive Sloss IoNrMunL; f0S;ab hold,in44ow 2V; Lof 2J;aNb1Nit,oMr8th1JuL;nd9;ff,n,v9;bo7ft9hQw3;aw3bLdo1in,oJrise,up,w3;a4ir2I;ar 6ek0t L;aLb1Gdo1in,o1Dr8up;cMhLl2Hr8t,w3;ead;ross;d aLng 2;bo7;a0Fe08iZlVoRrNuL;ck Le2P;ar8up;eMighten LownBy 2;aw3oG;eLshe29; 2z5;g 2lNol Lrk I;aLwi22;bo7r8;d 6low 2;aMeLip0;sh0;g 6ke0mLrLtten H;e F;gSlQnOrMsLzzle0;h F;e Lm 2;aw3ba4up;d0isL;h 2;e Ll 1V;aw3fQin,o7;ht ba4ure0;eQnMsL;s 2;cNd L;fLoG;or;e D;d06l 2;cPll Lrm0t1I;aNbMdo1in,oLsho0Gth0Avictim;ff,ut,v9;a4ehi2P;pa0D;e L;do1oGup;at Ldge0nd 13y5;in,o7up;aPi1IoOrL;aMess 6op LuO;aw3b04in,oC;gBwB; Iubl1C;m 2;a0Bh06l03oPrMut L;aw3ba4do1oCup;ackBeep MoLy0;ss Dwd0;by,do1in,o0Vup;me OoMuntL; o2B;k 6l L;do1oG;aSbRforPin,oOtLu0P;hMoLrue;geth9;rough;ff,n,ut,v9;th,wL;ard;a4y;paLr8w3;rt;eaMose L;in,oCup;n 6r F;aOeMiL;ll0pE;ck Der Lw F;on,up;t 2;lSncel0rPsNtch MveE; in;o1Oup;h Dt L;doubt,oG;ry MvL;e 09;aw3oJ;l Lm H;aMba4do1oJup;ff,n,ut;r8w3;a0We0NiteAl0Go05rRuL;bblOckl06il0Elk 6ndl06rMsLtNy FzzA;t 01;n 0IsL;t D;e I;ov9;anXeaViMush L;oGup;ghRng L;aOba4do1forNin,oMuL;nd9p;n,ut;th;bo7lLr8w3;ong;teL;n 2;k L;do1in,o7up;ch0;arUg 6iSn5oQrOssNttlMunce Lx D;aw3ba4;e 6; ar8;e H;do1;k Dt 2;e 2;l 6;do1up;d 2;aQeed0oLurt0;cNw L;aw3ba4do1o7up;ck;k L;in,oC;ck0nk0stA; oRaOef 2lt0nd L;do1ov9up;er;up;r Mt L;do1in,oCup;do1o7;ff,nL;to;ck Qil0nNrgMsL;h D;ainBe D;g DkB; on;in,o7;aw3do1in,oCup;ff,ut;ay;ct FdRir0sk NuctionA; oG;ff;ar8o7;ouL;nd; o7;d L;do1oLup;ff,n;wn;o7up;ut","Noun|Gerund":"true¦0:27;1:26;2:1X;3:1J;4:1Z;a25b1Oc1Cd16en14f0Yg0Wh0Ti0Rjog20k0Pl0Lm0In0Go0Cp05ques08rWsFtBu9volunt15w5y17zo2;a7ed1Si3or6r5;ap1Oest1Ci1;ki0r1O;i1r2s1Utc1U;nder5pri23;st1Mta4;al4e7hin4i6ra5y1J;c4di0i2v0Z;mi0p1H;a1Ys1;aKcHeGhEin1PkatClZmo4nowBpeAt8u6w5;ea3im1U;f02r5;fi0vi0J;a1Lretc1Ju5;d1BfJ;l0Xn1C;b6i0;eb5i0;oar19;ip15o5;rte2u1;a1r0At1;h6o3re5;a1He2;edu0Ooo0O;i0Nyi0;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1oub1r6umOw5;elB;awi0es04i5;n4vi0;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng",ProperNoun:"true¦barbie,c4diego,e3f2iron maiden,kirby,m0nis,riel,stevens;ercedes,i0;ckey,ssy;inn,lorence,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:77;1:64;2:6J;3:6M;4:5V;a6Bb56c4Ld4Be47f3Zg3Kh3Ci33j2Yk2Hl25m1Nn1Do1Ap0Xq0Vr0Os05tRuQvLwDxiBy9z5;a7h5i4Puri4R;a5e5ongsh0;ng3K;greb,nzib5J;ang2e5okoha3Vunfu;katerin3Krev0;a5n0R;m5Kn;arsBeAi6roclBu5;h0xi,zh5S;c7n5;d5nipeg,terth4;hoek,s1N;hi62kl3D;l66xford;aw;a8e6i5ladivost5Polgogr6O;en3lni6V;ni24r5;n2o3saill4Q;lenc4Zncouv3Vr3ughn;lan bat1Erumqi,trecht;aFbilisi,eEheDiBo9r7u5;l23n66r5;in,ku;i5ondh65;es54poli;kyo,m32ron1Rulo5;n,uS;an5jua3l2Wmisoa6Era3;j4Wshui; hag65ssaloni2K;gucigal28hr0l av1W;briz,i6llinn,mpe59ng5rtu,shk2U;i3Hsh0;an,chu1n0p2Hyu0;aEeDh8kopje,owe1It7u5;ra5zh50;ba0It;aten is58ockholm,rasbou6Auttga2Y;an8e6i5;jiazhua1llo1m60y0;f53n5;ya1zh4K;gh3Nt4T;att48o1Yv47;cramen18int ClBn5o paulo,ppo3Urajevo; 7aa,t5;a 5o domin3H;a3fe,m1O;antonBdie3Ffrancisco,j5ped3Qsalvad0L;o5u0;se;em,t lake ci5Iz28;lou5Bpeters27;aAe9i7o5;me,sar5t5C;io;ga,o5yadh;! de janei3H;cife,ims,nn3Lykjavik;b4Uip4lei2Knc2Rwalpindi;ingdao,u5;ez2i0R;aFeEhDiCo9r7u6yong5;ya1;eb5Bya1;a5etor3O;g54to;rt5zn0; 5la4Eo;au prin0Nelizabe26sa04;ls3Rrae5Ctts28;iladelph3Inom pe1Coenix;ki1r23tah tik3G;dua,lerZnaji,r4Qt5;na,r34;ak46des0Lm1Or6s5ttawa;a3Xlo;an,d07;a7ew5ing2Hovosibir1Lyc; 5cast38;del26orlea46taip16;g8iro4Yn5pl2Yshv35v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0Y;aFeCi9o6u5;mb2Cni28sc40;gadishu,nt6s5;c15ul;evideo,pelli1Tre31;ami,l6n16s5;kolc,sissauga;an,waukee;cca,d5lbour2Omph43ndo1Essi3;an,ell5i3;in,ín;cau,drAkass2Tl9n8r5shh4B;aca6ib5rakesh,se2M;or;i1Ty;a4FchFdal10i48;mo;id;aDeAi8o6u5vSy2;anMckn0Pdhia3;n5s angel27;d2g bea1O;brev2Ce3Mma5nz,sb2verpo29;!ss28; ma3Ai5;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Gn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd37rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Zi2H;che2d5;ianap2Mo20;aAe7o5yder2W; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Oupe;ld coa1Bthen5;bu2S;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal29es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,nkirk,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Zr es sala1KugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1Q;lo7n6penhag0Ar5;do1Ok;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr14;ch8sha,zh07;gliari,i9lga8mayenJn6pe town,r5tanO;acCdiff;ber1Ac5;un;ry;ro;aWeNhKirmingh0WoJr9u5;chareTdapeTenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iCl9ng8r5;g6l5n;in;en;aluru,hazi;fa6grade,o horizon5;te;st;ji1rut;ghd0BkFn9ot8r7s6yan n4;ur;el,r07;celo3i,ranquil09;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a05b02cc01ddis aba00gartaZhmedXizawl,lSmPnHqa00rEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a8c5kaOtwerp;hora6o3;na;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 7buquerq6eppo,giers,ma5;ty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦a00bYcUdTeSfRgMhLiJjfk,kHlFmDnBorAp8r7s6t3u2vostok,wake isCy0;a0yz;kutGngtze;laanbaatar,pT;ahiti,h0;amWe 0;bronx,hamptons;akhalIeine,fo,oho,under5yd;ed sea,io grande;acifWek,h0itcairn;l,x;ange county,d,inoco;ew eng0ile;land;a0co,ekong,idIuc;gadSlibu,nhattS;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianLochina;arlem,kg,nd,ovd;a3odavari,re0;at 0enwich;brita0lakC;in;ngAy village;co,ra;urope,verglad8;anube,en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;driadic,frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,on3som3t0week end,yesterd4;mr1o0;d2morrow;!w;ed0;ay",Duration:"true¦centurAd8h7m5q4se3w1y0;ear8r8;eek0k7;!end,s;ason,c5;tr,uarter;i0onth3;llisecond2nute2;our1r1;ay0ecade0;!s;ies,y",FemaleName:"true¦0:IS;1:IW;2:I5;3:I4;4:IM;5:I9;6:JD;7:GQ;8:J9;9:J5;A:HD;B:HN;C:IE;D:J2;E:II;F:H2;G:C4;H:HP;aGIbFDcDJdCSeBIfB0gAAh9Qi9Dj8Ck7Cl5Wm46n3Ko3Gp34qu33r2Bs16t0Fu0Dv03wWxiUyPzI;aMeJineb,oIsof2;e3Rf2la,ra;h3iLlJna,ynI;ab,ep;da,ma;da,h3iIra;nab;aLeKi0GolB3uJvI;etAonDH;i0na;le0sen2;el,gm3Gn,rGAs8T;aoIme0nyi;m5YyAA;aNendDRhiD8iI;dele9lKnI;if45niIo0;e,f44;a,helmi0lIma;a,ow;ka0nB;aOeLiIusa5;ck82kJlAole7viI;anGenIQ;ky,toriBE;da,lA5rIs0;a,nIoniGV;a,iFH;leInesGV;nI7rI;i1y;g9rIxGW;su5te;aZeVhSiOoMrJuIy3;i,la;acIPiIu0L;c2na,sI;hGta;nIr0H;iGya;aKffaEGnIs6;a,gtiI;ng;!nFHra;aJeIomasi0;a,l9Lo87res1;l2ndolwethu;g9Co85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe3iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlett,e0ChYiUkye,neza0oStOuJyI;bI2lvi1;ha,mayI5ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHQr5;b2fiA3m0MnIphi1;d3ia,ja,ya;er3lKmon1nJobh8MtI;a,i;dy;lEHv2;aNeJirIo0risEZy5;a,lDD;ba,e0i5lKrI;iIr6Gyl;!d8Efa;ia,lDP;hd,iNki3nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7YvI;da,inj;e0ife;en1i0ma;anA0bMd3Kh1PiBkLlKmJnd3rIs6vannaC;aCi0;ant6i3;lDEma,ome;ee0in8Ou3;in1ri0;a05e00hYiVoIuthDC;bTcSghRl8GnQsKwJxI;anAUie,y;an,e0;aJeIie,lD; merBIann8ll1marD6t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8B;hel63io;bDFer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG7oI;da,n1L;an0bKemGgi0iJnIta,y0;a86ee;han81na;a,eI;cE5kaC;bi0chJe,i0mo0nIquEFy0;di,ia;aEDelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCL;scil3LyamvaB;lly,rt2;ilome0oebe,ylI;is,lis;ggy,nelope,r5t3;ige,m0UnLo5rvaDBtJulI;a,etAin1;ricIt4T;a,e,ia;do3i07;ctav2dJfCUis6lIphCUumBYyunbileg;a,ga,iv2;eIvA9;l2tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBJkLlaKna,sIta,vi;anIha;ur;!y;a,iDNki;hoHk9SolI;a,eDE;!mh;hir,lIna,risFsreE;!a,lBO;asuMdLh2i6Cl5nKomi8rgEJtIzanin zah3;aIhal4;li1s6;cy,etA;e9iEP;nngu30;a0Ackenz4e02iNoKrignayani,uriD8yI;a,rI;a,lOna,tH;bi0i3llBDnI;a,iI;ca,ka,qCY;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEI;!l,nB;dy,eIh,n4;nhHrva;aLdKiCKlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5EgOi,lLrI;edi77iJjem,on,yI;em,l;em,sF;an4iIliF;nIsC9;a,da;!an,han;b0DcANd0Be,g09ha,i08ja,l06n04rMsoum5YtLuJv80x9FyIz4;bell,ra,soB4;de,rI;a,eE;h8Cild1t4;a,cYgUiLjor4l7Qn4s6tKwa,yI;!aIbe6Uja9lA9;m,nBC;a,ha,in1;!aKbC6eJja,lDna,sIt62;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliACcJeduarBfern5EjIlui5W;o6Dul2;ecil2la3;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Vi75y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD6on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d2la,nI;!a,dJeBCnIsCG;!a,eBB;a,sCE;aCRcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a84i8;lIn1t7;ei;!in1;aTbb98dSepa,lNnKsJv2zI;!a,be5KetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9We;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c2t2;e2NlCB;la,nIra;a,ie,o3;a,or1;a,gh,laI;!ni;!h,nI;a,d3e,n5O;cPdon93iOkes6mi96na,rNtKurJvIxmi,y5;ern1in2;a,e53ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAFoOrKyI;lIra;a,ee,ie;istIy6B;a,en,iJyI;!na;!e,n58;nul,ri,urtnAV;aPerOlAUmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei3ongordzol;dij1w5;el7MiLjsi,lKnJrI;a,i,ri;d3na,za;ey,i,lB8s4y;ra,s6;bi7cAEdiat7EeAXiSlRmQnyakuma1BrOss6HtLvi7yI;!e,lI;a,eI;e,i8H;a6BeJhIi4MlDri0y;ar69er69ie,leErAXy;!lyn8Cri0;a,en,iIl5Qoli0yn;!ma,nGsF;a5il1;ei8Ai,l4;a,tl6I;a09eZiWoOuI;anMdLliIst61;a8DeIsF;!n9tI;!a,te;e5Hi3Iy;a,i7;!anOcelDdNelHhan7NleMni,sJva0yI;a,ce;eIie;fIlDph5S;a,in1;en,n1;i8y;!a,e,n40;lIng;!i1DlI;!i1C;anOle0nLrKsI;i88sI;!e,i87;i,ri;!a,elHif2AnI;a,etAiIy;!e,f28;a,e89iJnI;a,e88iI;e,n1;cNda,mi,nJque4UsminGvie3y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob7Z;!n9H;do3;belIdo3;!a,e,l37;a72en1i0ma;di3es,gr6Tji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin29;da,ll4rten21snI;a,i9K;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1AiKlJnriet7rmi9sI;sa,t19;en2Qga,mi;di;bi2Bil8ClOnNrKsJtIwa,yl8C;i5Nt4;n5Tti;iImo4Xri4Y;etI;!te;aCnaC;a,ey,l4;a03eXiSlQoOrLunKwI;enIyne1O;!dolD;ay,el;acieJetIiselB;a,chE;!la;ld19ogooI;sh;adys,enIor2yn2G;a,da,na;aLgi,lJna,ov84selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Ni,m3Atru86;etAi4S;a,eIna;s25vieve;ma;bJle,mIrnet,yH;al5Ji5;i5BrielI;a,l1;aUeRiQlorPoz2rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0N;n1s5X;!ca;a,enc2;en,o0;lJn0rnI;anB;ec2ic2;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no3oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c2da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh2iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr2nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d3nI;!a,e;hl2i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th2;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat3;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a3er3ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d3elHtI;al,elH;cJlI;esAi42;el2ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a3o3ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el2;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!l1;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar2;el;aMberLeliKiIy;e,l2naI;!ta;a,ja;!ly;hHiJl2nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c2sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c2is6jaLksaLna,sKxI;aIia;!nd3;ia,saI;nd3;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",Person:"true¦a0Ob0Hc08d05e02g01hZinez,jYkVlSmMnKoJpHr9s7t4v2w0xzibit,yanni;ar0ednesday adams,ill.i.am,oode;hol,rO;a0oltaiO;lentino rossi,n go7;a1heresa may,i0yra banks;ger woods,mbaQ;tum,ylor;a0carlett johanss03hakespeaJinbad,lobodan milosevic,ocratM;ddam hussain,ntigold;a6e5i4o2u0za;mi,n dmc,paul,sh limbau0;gh;d stewart,nald0thko;inho,o;hanYvaldo;ese witherspoVil9mbrandt;ffi,y roma03;a0e08ip07lato,oe,uff daddy;lm06ris hiltS;prah winfrWra;as,e0iles crane,ostradamP; yo,l3ttI;acklemo4essia3i1o0ubarek;by,lie3net,rrissS;randa ju0tt romnR;ly;en;re;ady gaga,e0iberaT;bron jam0e;es;anye west,e1iefer suther0obe bryant;land;ats,ndall,sha;aime,effersCk rowling;a0itlPulk hogan;lle berry,rrisA;ast9otye;ff1m0nya,zekiel;eril lagasse,inem;ie;a1e0ick wolf,rake;gas,nzel washingt4;lt3nB;ar5h3lint2o0;nfuci0olio;us;on;aucCy0;na;dinal wols1son0;! palm9;ey;a5e3o2ro0;ck,n0;te;no;ck,yon0;ce;nksy,rack obama;ristot1shton kutch0;er;le",LastName:"true¦0:9G;1:9W;2:9Y;3:9O;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s2;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi3j6ka3IoGrFsui,uD;om50rD;c3n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps2s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv3zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8infeld,mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins2;!on;bei0LcEes,vDzzo;as,e8;ci,hards2;ag3es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss2;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym3;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx2;ic,ov6X;ls1miD;!n1;ils2mD;co42ec;gy,kaEray3varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h3lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h3iSlQnez48oJrGuEvar3woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss2;anEnsD;en,on,t2;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks2obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m3ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers2;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw2;o,staf2Utierr7zm3;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m3;calv9zale0H;aj,i;bs2l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm3uD;cDent9ji3E;hs;ntaDrt6urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s2;er,is2wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g3he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w3;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e2uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em3liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm3tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder2mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy3;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss2;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl3tchis2yD;aEd6;in;la;aEsl3;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s2;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",Honorific:"true¦director1field marsh2lieutenant1rear0sergeant major,vice0; admir1; gener0;al",Adverb:"true¦a07b04dZeXfSheQinPjustOkinda,likewiYmMnJoEpCquite,r9s5t2u0very,well;ltima00p0; to,wards5;h1iny bit,o0wiO;o,t6;en,us;eldom,o0uch;!me1rt0; of;how,times,w0B;a1e0;alR;ndomQth04;ar excellenEer0oint blank; Khaps;f3n0utright;ce0ly;! 0;ag04moW; courFten;ewIo0; longVt 0;onGwithstanding;aybe,eanwhiMore0;!ovS;! aboW;deed,steX;lla,n0;ce;or2u0;l8rther0;!moJ; 0evK;exampCgood,suH;n mas0vI;se;e0irect2; 2fini0;te0;ly;juAtrop;ackward,y 0;far,no0; means,w; GbroFd nauseam,gEl7ny5part,s4t 2w0;ay,hi0;le;be7l0mo7wor7;arge,ea6; soon,i4;mo0way;re;l 3mo2ongsi1ready,so,togeth0ways;er;de;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aXbTcReNhowMiEjust00noBo9p8supposing,t5wh0yet;e1il0o3;e,st;n1re0thN; if,by,vM;evL;h0il,o;erefOo0;!uU;lus,rovided th9;r0therwiM;! not; mattEr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mIcaForder t0;h0o;at;! 0;only,t0w0;hen;!ev3;ith2ven0;! 0;if,tB;er;o0uz;s,z;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s",Determiner:"true¦aBboth,d9e6few,le5mu8neiDplenty,s4th2various,wh0;at0ich0;evC;a0e4is,ose;!t;everal,ome;!ast,s;a1l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er","Adj|Present":"true¦a07b04cVdQeOfKhollJidRlFmDnarrJoCpAqua9r8s4t2utt3w0;aLet,ro0;ng,ug08;end0hin;er;e2hort,l1mooth,our,pa9tray,u0;re,speT;i2ow;cu6da01leRpaM;eplica00ig01;ck;aGr0;eseTime,omU;bscu1pen,wn;atu0e3odeG;re;a2e1i0;gTve;an;st,y;ow;a2i1oul,r0;ee,inge;rm;iHke,ncy,st;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry,ull;le;ffu9re6;fu8libe0;raE;alm,l5o0;mpleCn3ol,rr1unterfe0;it;e0u7;ct;juga8sum7;ea1o0;se;n,r;ankru1lu0;nt;pt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3D;1:3R;2:3G;3:2I;a3Vb3Ec35d2Ve2Of2Bg1Xh1Mi1Gj1Fk1Cl14m0Yn0To0Sp0Jqu0Hr08sItDug0vBw5y4za0R;el11ouO;ary,e7hi6i4ry;ck0Dde,l4n1ry,se;d,y;ny,te;a4i3T;k,ry;a4erda2ulgar;gue,in,st;a7en2Zhi6i5ough,r4;anqu2Een1ue;dy,g38me0ny,r04;ck,rs2A;ll,me,rt,wd3K;aScaQePhNiMkin0ClJmHoFpEt7u5w4;eet,ift;b4dd0Xperfi22rre2A;sta28t3;a9e8iff,r5u4;pVr1;a5ict,o4;ng;ig2Xn0O;a1ep,rn;le,rk,te0;e1Ti2Xright0;ci20ft,l4on,re;emn,id;a4el0;ll,rt;e5i4y;g2Om10;ek,nd2V;ck25l0mp3;a4iSrill,y;dy,l02rp;ve0Kxy;n1Lr4;ce,y;d,fe,int0l1Jv0W;a9e7i6o4ude;mantic,o1Asy,u4;gh,nd;pe,t1Q;a4d,mo0B;dy,l;gg5iGndom,p4re,w;id;ed;ai2i4;ck,et;hoBink,lAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouTud;ey,k0;liYor;ain,easa2;ny;dd,i0ld,ranM;aive,e6i5o4u16;b3isy,rm10sy;bb0ce,mb3;a4r1w;r,t;ad,e6ild,o5u4;nda13te;ist,o1;a5ek,l4;low;s0ty;a9e8i7o4ucky;f0Ln5o17u4ve0w11y0P;d,sy;e0g;ke0l,mp,tt3ve0;e1Swd;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fZsita2;dy,rYv4;en0y;nd15ppy,r4;d4sh;!y;aGenFhDiClBoofy,r4;a9e7i6o4ue11;o4ss;vy;m,s0;at,e4y;dy,n;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiT;u1y;aEeeb3iAl9o7r6u4;ll,n4r0P;!ny;aEesh,iend0;a4nd,rmF;my;at,ir9;erce5nan4;ciB;! ;le;r,ul4;ty;a7erie,sse5v4xtre0C;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i5u4;mb;r6vi5z4;zy;ne;e,ty;a4ep,nB;d4f,r;!ly;ppRrk;agey,h9l8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;evLou1;e4il0;ap,e4;sy;aIiGlDoBr6u4;ff,r0sy;ly;a7i4oad;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd","Person|Adj":"true¦brown,du2earnest,frank,mi2r0sa1;a0ich,u1;ndy;sty",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Verb:"true¦born,cannot,gonna,has,keep tabs,msg","Adj|Gerund":"true¦0:2G;1:2I;2:26;3:24;4:21;5:2E;6:28;7:23;a25b20c1Id15e0Zf0Pg0Jh0Ii0Bjud1Yl08m05o01pWrQsFtAup9v8w0Qyiel4;ar5eZ;lif0s02;aXeBhr9i3ouc7r8wis0;e02oub2us0yi1;ea0Ni8;l2vi1;l2mp0;atisf5creec7enten1Vhoc0Fkyrocke0lo14oGpFtBu9we8;e13l2;pp1Lr8;gi1pri6roun4;a9ea24i8ri0Bun1D;mula0r3;gge3r8;t2vi1;ark2ee4;a8ot7;ki1ri1;aCe9ive0o8us7;a3l2;defi14fres7ig14laFmai14s0v8war4;ea2itali8ol0R;si1zi1;gi1ll5mb2vi1;a5eAier1Elun19r8un1K;e8o12;ce4s6vai2;n4rple8;xi1;ffsApNut9ver8wi1;arc7lap0Hp09ri4whel1L;goi1l5st0Y;et0;eande3i9o0Fu8;mb2;s6tiga0;a9i8o0C;fesa0Bmi0vi1;cKg0Vs0;mDn8rri0C;cBsAt9vi8;go1Gti1;e15imida0;pi3ul0;orpo1Drea6;po6;arrowi1ea2orrif5umilia0;lCr8;a0ipZo9uel8;i1li1;undbrea8wi1;ki1;a3ea0Z;aGetc7it0lDoBr9ulf8;il2;ee0Yigh8ust12;te04;r8un4;ebo4th0H;a9o8;a0we3;mi1tte3;di1scina0;mBn9x8;ac0ci0is0plo4;ab2c8du3ga04sT;han0oura03;barras6er02p8;owe3;aJeCi8;s8zz5;appoin0gus0sen0t8;r8u0N;ac0es6;biliDcCfiMgra4mBpres6serAv8;asCelo8;pi1;vi1;an4eaI;a5liH;ta0;maOri1s7un0;aOhLlo6o8ripp2ut0;mEn8rrespon4;cerCfBspi3t8vinQ;in9r8;as0ibu0ol2;ui1;lic0u6;ni1;fCmBp8;e9ro8;mi6;l2ti1;an4;or0;a8il2;llen8rQ;gi1;lOptiva0ri1;eBin4lin4o9rui6u8;d4st2;i2oLri1un8;ci1;coJ;bsoQcLgonJlarImGppea2rEs8;pi3su3to8;n9un4;di1;is7;hi1;ri1;res0;li1;aBu6;si1;mi1;i8zi1;zi1;c8hi1;ele9ompan5;yi1;ra0;ti1;rbi1;ng","Person|Verb":"true¦b8ch7dr6foster,gra5hope,ja9lan4ma2ni9ollie,p1rob,s0wade;pike,t5ue;at,eg,ier2;ck,r0;k,shal;ce;ce,nt;ew;ase,u1;iff,l1ob,u0;ck;aze,ossom","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Po=36,Ao="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Io=Ao.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var jo=function(e){if(void 0!==Io[e])return Io[e];let t=0,n=1,a=Po,r=1;for(;n=0;n--,r*=Po){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t},Eo=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[a];"!"===o[0]&&(t.push(r),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const a=Do(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Co(ko[e]);Go.test(e)?Object.keys(t).forEach((t=>{if(zo[t]=e,"Noun|Verb"===e){let e=Oo(t,Ho);zo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Bo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","3","<\\3","=("].forEach((e=>Bo[e]="Emoticon")),delete Bo[""],delete Bo.null,delete Bo[" "];const Vo="Singular";var Lo={beforeTags:{Determiner:Vo,Possessive:Vo,Acronym:Vo,Noun:Vo,Adjective:Vo,PresentTense:Vo,Gerund:Vo,PastTense:Vo,Infinitive:Vo,Date:Vo,Ordinal:Vo,Demonym:Vo},afterTags:{Value:Vo,Modal:Vo,Copula:Vo,PresentTense:Vo,PastTense:Vo,Demonym:Vo,Actor:Vo},beforeWords:{the:Vo,with:Vo,without:Vo,of:Vo,for:Vo,any:Vo,all:Vo,on:Vo,cut:Vo,cuts:Vo,increase:Vo,decrease:Vo,raise:Vo,drop:Vo,save:Vo,saved:Vo,saves:Vo,make:Vo,makes:Vo,made:Vo,minus:Vo,plus:Vo,than:Vo,another:Vo,versus:Vo,neither:Vo,about:Vo,favorite:Vo,best:Vo,daily:Vo,weekly:Vo,linear:Vo,binary:Vo,mobile:Vo,lexical:Vo,technical:Vo,computer:Vo,scientific:Vo,security:Vo,government:Vo,popular:Vo,formal:Vo,no:Vo,more:Vo,one:Vo},afterWords:{of:Vo,system:Vo,aid:Vo,method:Vo,utility:Vo,tool:Vo,reform:Vo,therapy:Vo,philosophy:Vo,room:Vo,authority:Vo,says:Vo,said:Vo,wants:Vo,wanted:Vo,is:Vo,can:Vo,wise:Vo}};const So="Infinitive";var $o={beforeTags:{Modal:So,Adverb:So,Negative:So,Plural:So},afterTags:{Determiner:So,Adverb:So,Possessive:So,Reflexive:So,Preposition:So,Cardinal:So,Comparative:So,Superlative:So},beforeWords:{i:So,we:So,you:So,they:So,to:So,please:So,will:So,have:So,had:So,would:So,could:So,should:So,do:So,did:So,does:So,can:So,must:So,us:So,me:So,let:So,even:So,when:So,help:So,he:So,she:So,it:So,being:So,bi:So,co:So,contra:So,de:So,inter:So,intra:So,mis:So,pre:So,out:So,counter:So,nobody:So,somebody:So,anybody:So,everybody:So},afterWords:{the:So,me:So,you:So,him:So,us:So,her:So,them:So,it:So,himself:So,herself:So,itself:So,myself:So,ourselves:So,themselves:So,something:So,anything:So,a:So,an:So,up:So,down:So,by:So,out:So,off:So,under:So,what:So,all:So,to:So,because:So,although:So,after:So,before:So,how:So,otherwise:So,together:So,though:So,into:So,yet:So,more:So,here:So,there:So}},Mo={beforeTags:Object.assign({},$o.beforeTags,Lo.beforeTags,{}),afterTags:Object.assign({},$o.afterTags,Lo.afterTags,{}),beforeWords:Object.assign({},$o.beforeWords,Lo.beforeWords,{}),afterWords:Object.assign({},$o.afterWords,Lo.afterWords,{})};const Jo="Adjective";var Wo={beforeTags:{Determiner:Jo,Possessive:Jo,Hyphenated:Jo},afterTags:{Adjective:Jo},beforeWords:{seem:Jo,seemed:Jo,seems:Jo,feel:Jo,feels:Jo,felt:Jo,stay:Jo,appear:Jo,appears:Jo,appeared:Jo,also:Jo,over:Jo,under:Jo,too:Jo,it:Jo,but:Jo,still:Jo,really:Jo,quite:Jo,well:Jo,very:Jo,how:Jo,deeply:Jo,hella:Jo,profoundly:Jo,extremely:Jo,so:Jo,badly:Jo,mostly:Jo,totally:Jo,awfully:Jo,rather:Jo,nothing:Jo,something:Jo,anything:Jo,not:Jo,me:Jo,is:Jo},afterWords:{too:Jo,also:Jo,or:Jo}};const Ko="Gerund";var qo={beforeTags:{Adverb:Ko,Preposition:Ko,Conjunction:Ko},afterTags:{Adverb:Ko,Possessive:Ko,Person:Ko,Pronoun:Ko,Determiner:Ko,Copula:Ko,Preposition:Ko,Conjunction:Ko,Comparative:Ko},beforeWords:{been:Ko,keep:Ko,continue:Ko,stop:Ko,am:Ko,be:Ko,me:Ko,began:Ko,start:Ko,starts:Ko,started:Ko,stops:Ko,stopped:Ko,help:Ko,helps:Ko,avoid:Ko,avoids:Ko,love:Ko,loves:Ko,loved:Ko,hate:Ko,hates:Ko,hated:Ko},afterWords:{you:Ko,me:Ko,her:Ko,him:Ko,them:Ko,their:Ko,it:Ko,this:Ko,there:Ko,on:Ko,about:Ko,for:Ko}},Uo={beforeTags:Object.assign({},Wo.beforeTags,qo.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Wo.afterTags,qo.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Wo.beforeWords,qo.beforeWords,{is:"Adjective",was:"Adjective",of:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Wo.afterWords,qo.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ro={beforeTags:{Determiner:void 0,Cardinal:"Noun",PhrasalVerb:"Adjective"}};var Qo={beforeTags:Object.assign({},Wo.beforeTags,Lo.beforeTags,Ro.beforeTags),afterTags:Object.assign({},Wo.afterTags,Lo.afterTags),beforeWords:Object.assign({},Wo.beforeWords,Lo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective",off:"Adjective",out:"Adjective"}),afterWords:Object.assign({},Wo.afterWords,Lo.afterWords)};let Zo="PastTense";const Xo={beforeTags:{Adverb:Zo,Pronoun:Zo,ProperNoun:Zo,Auxiliary:Zo,Noun:Zo},afterTags:{Possessive:Zo,Pronoun:Zo,Determiner:Zo,Adverb:Zo,Comparative:Zo,Date:Zo,Gerund:Zo},beforeWords:{be:Zo,who:Zo,get:"Adjective",had:Zo,has:Zo,have:Zo,been:Zo,it:Zo,as:Zo,for:"Adjective",more:"Adjective"},afterWords:{by:Zo,back:Zo,out:Zo,in:Zo,up:Zo,down:Zo,before:Zo,after:Zo,for:Zo,the:Zo,with:Zo,as:Zo,on:Zo,at:Zo,between:Zo,to:Zo,into:Zo,us:Zo,them:Zo,me:Zo}};var _o={beforeTags:Object.assign({},Wo.beforeTags,Xo.beforeTags),afterTags:Object.assign({},Wo.afterTags,Xo.afterTags),beforeWords:Object.assign({},Wo.beforeWords,Xo.beforeWords),afterWords:Object.assign({},Wo.afterWords,Xo.afterWords)};const Yo={afterTags:{Noun:"Adjective",Conjunction:void 0}};var ei={beforeTags:Object.assign({},Wo.beforeTags,$o.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Wo.afterTags,$o.afterTags,Yo.afterTags),beforeWords:Object.assign({},Wo.beforeWords,$o.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Wo.afterWords,$o.afterWords,{to:void 0,as:"Adjective"})};const ti={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ni={},ai={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ri={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var oi={beforeTags:Object.assign({},qo.beforeTags,Lo.beforeTags,ti),afterTags:Object.assign({},qo.afterTags,Lo.afterTags,ni),beforeWords:Object.assign({},qo.beforeWords,Lo.beforeWords,ai),afterWords:Object.assign({},qo.afterWords,Lo.afterWords,ri)};const ii="Singular",si="Infinitive";var li={beforeTags:Object.assign({},$o.beforeTags,Lo.beforeTags,{Adjective:ii,Particle:ii}),afterTags:Object.assign({},$o.afterTags,Lo.afterTags,{ProperNoun:si,Gerund:si,Adjective:si,Copula:ii}),beforeWords:Object.assign({},$o.beforeWords,Lo.beforeWords,{is:ii,was:ii,of:ii,have:null}),afterWords:Object.assign({},$o.afterWords,Lo.afterWords,{instead:si,about:si,his:si,her:si,to:null,by:null,in:null})};const ui="Person";var ci={beforeTags:{Honorific:ui,Person:ui},afterTags:{Person:ui,ProperNoun:ui,Verb:ui},ownTags:{ProperNoun:ui},beforeWords:{hi:ui,hey:ui,yo:ui,dear:ui,hello:ui},afterWords:{said:ui,says:ui,told:ui,tells:ui,feels:ui,felt:ui,seems:ui,thinks:ui,thought:ui,spends:ui,spendt:ui,plays:ui,played:ui,sing:ui,sang:ui,learn:ui,learned:ui,wants:ui,wanted:ui}};const di="Month",hi={beforeTags:{Date:di,Value:di},afterTags:{Date:di,Value:di},beforeWords:{by:di,in:di,on:di,during:di,after:di,before:di,between:di,until:di,til:di,sometime:di,of:di,this:di,next:di,last:di,previous:di,following:di},afterWords:{sometime:di,in:di,of:di,until:di,the:di}};var gi={beforeTags:Object.assign({},ci.beforeTags,hi.beforeTags),afterTags:Object.assign({},ci.afterTags,hi.afterTags),beforeWords:Object.assign({},ci.beforeWords,hi.beforeWords),afterWords:Object.assign({},ci.afterWords,hi.afterWords)};const mi="Place",pi={beforeTags:{Place:mi},afterTags:{Place:mi,Abbreviation:mi},beforeWords:{in:mi,by:mi,near:mi,from:mi,to:mi},afterWords:{in:mi,by:mi,near:mi,from:mi,to:mi,government:mi,council:mi,region:mi,city:mi}};let fi="Unit";const bi={"Actor|Verb":Mo,"Adj|Gerund":Uo,"Adj|Noun":Qo,"Adj|Past":_o,"Adj|Present":ei,"Noun|Verb":li,"Noun|Gerund":oi,"Person|Noun":{beforeTags:Object.assign({},Lo.beforeTags,ci.beforeTags),afterTags:Object.assign({},Lo.afterTags,ci.afterTags),beforeWords:Object.assign({},Lo.beforeWords,ci.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Lo.afterWords,ci.afterWords)},"Person|Date":gi,"Person|Verb":{beforeTags:Object.assign({},Lo.beforeTags,ci.beforeTags,$o.beforeTags),afterTags:Object.assign({},Lo.afterTags,ci.afterTags,$o.afterTags),beforeWords:Object.assign({},Lo.beforeWords,ci.beforeWords,$o.beforeWords),afterWords:Object.assign({},Lo.afterWords,ci.afterWords,$o.afterWords)},"Person|Place":{beforeTags:Object.assign({},pi.beforeTags,ci.beforeTags),afterTags:Object.assign({},pi.afterTags,ci.afterTags),beforeWords:Object.assign({},pi.beforeWords,ci.beforeWords),afterWords:Object.assign({},pi.afterWords,ci.afterWords)},"Person|Adj":{beforeTags:Object.assign({},ci.beforeTags,Wo.beforeTags),afterTags:Object.assign({},ci.afterTags,Wo.afterTags),beforeWords:Object.assign({},ci.beforeWords,Wo.beforeWords),afterWords:Object.assign({},ci.afterWords,Wo.afterWords)},"Unit|Noun":{beforeTags:{Value:fi},afterTags:{},beforeWords:{per:fi,every:fi,each:fi,square:fi,cubic:fi,sq:fi,metric:fi},afterWords:{per:fi,squared:fi,cubed:fi,long:fi}}},vi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};bi["Plural|Verb"]={beforeWords:vi(bi["Noun|Verb"].beforeWords,{had:"Plural",have:"Plural"}),afterWords:vi(bi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null,is:"PresentTense",by:"PresentTense"}),beforeTags:vi(bi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:vi(bi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var yi=bi;const wi="Adjective",ki="Infinitive",Pi="PresentTense",Ai="Singular",Ii="PastTense",ji="Adverb",Ei="Plural",Ni="Actor",Di="Verb",Ci="Noun",xi="LastName",Ti="Modal",Fi="Place",Oi="Participle";var Gi=[null,null,{ea:Ai,ia:Ci,ic:wi,ly:ji,"'n":Di,"'t":Di},{oed:Ii,ued:Ii,xed:Ii," so":ji,"'ll":Ti,"'re":"Copula",azy:wi,eer:Ci,end:Di,ped:Ii,ffy:wi,ify:ki,ing:"Gerund",ize:ki,ibe:ki,lar:wi,mum:wi,nes:Pi,nny:wi,ous:wi,que:wi,ger:Ci,ber:Ci,rol:Ai,sis:Ai,ogy:Ai,oid:Ai,ian:Ai,zes:Pi,eld:Ii,ken:Oi,ven:Oi,ten:Oi,ect:ki,ict:ki,ign:ki,ful:wi,bal:wi,ton:Ci},{amed:Ii,aped:Ii,ched:Ii,lked:Ii,rked:Ii,reed:Ii,nded:Ii,mned:wi,cted:Ii,dged:Ii,ield:Ai,akis:xi,cede:ki,chuk:xi,czyk:xi,ects:Pi,ends:Di,enko:xi,ette:Ai,iary:Ai,wner:Ai,fies:Pi,fore:ji,gate:ki,gone:wi,ices:Ei,ints:Ei,ruct:ki,ines:Ei,ions:Ei,ners:Ei,pers:Ei,lers:Ei,less:wi,llen:wi,made:wi,nsen:xi,oses:Pi,ould:Ti,some:wi,sson:xi,ians:Ei,tion:Ai,tage:Ci,ique:Ai,tive:wi,tors:Ci,vice:Ai,lier:Ai,fier:Ai,wned:Ii,gent:Ai,tist:Ni,pist:Ni,rist:Ni,mist:Ni,yist:Ni,vist:Ni,ists:Ni,lite:Ai,site:Ai,rite:Ai,mite:Ai,bite:Ai,mate:Ai,date:Ai,ndal:Ai,vent:Ai,uist:Ni,gist:Ni,note:Ai,cide:Ai,ence:Ai,wide:wi,vide:ki,ract:ki,duce:ki,pose:ki,eive:ki,lyze:ki,lyse:ki,iant:wi,nary:wi,ghty:wi,uent:wi,erer:Ni,bury:Fi,dorf:Ci,esty:Ci,wych:Fi,dale:Fi,folk:Fi},{elist:Ni,holic:Ai,phite:Ai,tized:Ii,urned:Ii,eased:Ii,ances:Ei,bound:wi,ettes:Ei,fully:ji,ishes:Pi,ities:Ei,marek:xi,nssen:xi,ology:Ci,osome:Ai,tment:Ai,ports:Ei,rough:wi,tches:Pi,tieth:"Ordinal",tures:Ei,wards:ji,where:ji,archy:Ci,pathy:Ci,opoly:Ci,embly:Ci,phate:Ci,ndent:Ai,scent:Ai,onist:Ni,anist:Ni,alist:Ni,olist:Ni,icist:Ni,ounce:ki,iable:wi,borne:wi,gnant:wi,inant:wi,igent:wi,atory:wi,rient:Ai,dient:Ai,maker:Ni,burgh:Fi,mouth:Fi,ceter:Fi,ville:Fi,worth:Ci},{auskas:xi,parent:Ai,cedent:Ai,ionary:Ai,cklist:Ai,keeper:Ni,logist:Ni,teenth:"Value",worker:Ni,master:Ni,writer:Ni,brough:Fi,cester:Fi},{logists:Ni,opoulos:xi,borough:Fi,sdottir:xi}];const Bi="Adjective",zi="Noun",Hi="Verb";var Vi=[null,null,{},{neo:zi,bio:zi,"de-":Hi,"re-":Hi,"un-":Hi},{anti:zi,auto:zi,faux:Bi,hexa:zi,kilo:zi,mono:zi,nano:zi,octa:zi,poly:zi,semi:Bi,tele:zi,"pro-":Bi,"mis-":Hi,"dis-":Hi,"pre-":Bi},{anglo:zi,centi:zi,ethno:zi,ferro:zi,grand:zi,hepta:zi,hydro:zi,intro:zi,macro:zi,micro:zi,milli:zi,nitro:zi,penta:zi,quasi:Bi,radio:zi,tetra:zi,"omni-":Bi,"post-":Bi},{pseudo:Bi,"extra-":Bi,"hyper-":Bi,"inter-":Bi,"intra-":Bi,"deca-":Bi},{electro:zi}];const Li="Adjective",Si="Infinitive",$i="PresentTense",Mi="Singular",Ji="PastTense",Wi="Adverb",Ki="Expression",qi="Actor",Ui="Verb",Ri="Noun",Qi="LastName";var Zi={a:[[/.[aeiou]na$/,Ri,"tuna"],[/.[oau][wvl]ska$/,Qi],[/.[^aeiou]ica$/,Mi,"harmonica"],[/^([hyj]a+)+$/,Ki,"haha"]],c:[[/.[^aeiou]ic$/,Li]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Ji,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Ji,"rammed"],[/.[aeiou][sg]hed$/,Ji,"gushed"],[/.[aeiou]red$/,Ji,"hired"],[/.[aeiou]r?ried$/,Ji,"hurried"],[/[^aeiou]ard$/,Mi,"steward"],[/[aeiou][^aeiou]id$/,Li,""],[/.[vrl]id$/,Li,"livid"],[/..led$/,Ji,"hurled"],[/.[iao]sed$/,Ji,""],[/[aeiou]n?[cs]ed$/,Ji,""],[/[aeiou][rl]?[mnf]ed$/,Ji,""],[/[aeiou][ns]?c?ked$/,Ji,"bunked"],[/[aeiou]gned$/,Ji],[/[aeiou][nl]?ged$/,Ji],[/.[tdbwxyz]ed$/,Ji],[/[^aeiou][aeiou][tvx]ed$/,Ji],[/.[cdflmnprstv]ied$/,Ji,"emptied"]],e:[[/.[lnr]ize$/,Si,"antagonize"],[/.[^aeiou]ise$/,Si,"antagonise"],[/.[aeiou]te$/,Si,"bite"],[/.[^aeiou][ai]ble$/,Li,"fixable"],[/.[^aeiou]eable$/,Li,"maleable"],[/.[ts]ive$/,Li,"festive"],[/[a-z]-like$/,Li,"woman-like"]],h:[[/.[^aeiouf]ish$/,Li,"cornish"],[/.v[iy]ch$/,Qi,"..ovich"],[/^ug?h+$/,Ki,"ughh"],[/^uh[ -]?oh$/,Ki,"uhoh"],[/[a-z]-ish$/,Li,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Qi,"polish-male"]],k:[[/^(k){2}$/,Ki,"kkkk"]],l:[[/.[gl]ial$/,Li,"familial"],[/.[^aeiou]ful$/,Li,"fitful"],[/.[nrtumcd]al$/,Li,"natal"],[/.[^aeiou][ei]al$/,Li,"familial"]],m:[[/.[^aeiou]ium$/,Mi,"magnesium"],[/[^aeiou]ism$/,Mi,"schism"],[/^[hu]m+$/,Ki,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Li,"republican"],[/[^aeiou]ician$/,qi,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Ki,"noooo"],[/^(yo)+$/,Ki,"yoo"],[/^wo{2,}[pt]?$/,Ki,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Mi],[/[^i]fer$/,Si],[/.[^aeiou][ao]pher$/,qi],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Li],[/[aeiou].*ist$/,Li],[/^[a-z]et$/,Ui]],s:[[/.[^aeiou]ises$/,$i],[/.[rln]ates$/,$i],[/.[^z]ens$/,Ui],[/.[lstrn]us$/,Mi],[/.[aeiou]sks$/,$i],[/.[aeiou]kes$/,$i],[/[aeiou][^aeiou]is$/,Mi],[/[a-z]'s$/,Ri],[/^yes+$/,Ki]],v:[[/.[^aeiou][ai][kln]ov$/,Qi]],y:[[/.[cts]hy$/,Li],[/.[st]ty$/,Li],[/.[tnl]ary$/,Li],[/.[oe]ry$/,Mi],[/[rdntkbhs]ly$/,Wi],[/.(gg|bb|zz)ly$/,Li],[/...lly$/,Wi],[/.[gk]y$/,Li],[/[bszmp]{2}y$/,Li],[/.[ai]my$/,Li],[/[ea]{2}zy$/,Li],[/.[^aeiou]ity$/,Mi]]};const Xi="Verb",_i="Noun";var Yi={leftTags:[["Adjective",_i],["Possessive",_i],["Determiner",_i],["Adverb",Xi],["Pronoun",Xi],["Value",_i],["Ordinal",_i],["Modal",Xi],["Superlative",_i],["Demonym",_i],["Honorific","Person"]],leftWords:[["i",Xi],["first",_i],["it",Xi],["there",Xi],["not",Xi],["because",_i],["if",_i],["but",_i],["who",Xi],["this",_i],["his",_i],["when",_i],["you",Xi],["very","Adjective"],["old",_i],["never",Xi],["before",_i],["a",_i],["the",_i],["been",Xi]],rightTags:[["Copula",_i],["PastTense",_i],["Conjunction",_i],["Modal",_i]],rightWords:[["there",Xi],["me",Xi],["man","Adjective"],["him",Xi],["it",Xi],["were",_i],["took",_i],["himself",Xi],["went",_i],["who",_i],["jr","Person"]]},es={fwd:"3:ser,ier¦1er:h,t,f,l,n¦1r:e¦2er:ss,or,om",both:"3er:ver,ear,alm¦3ner:hin¦3ter:lat¦2mer:im¦2er:ng,rm,mb¦2ber:ib¦2ger:ig¦1er:w,p,k,d¦ier:y",rev:"1:tter,yer¦2:uer,ver,ffer,oner,eler,ller,iler,ster,cer,uler,sher,ener,gher,aner,adder,nter,eter,rter,hter,rner,fter¦3:oser,ooler,eafer,user,airer,bler,maler,tler,eater,uger,rger,ainer,urer,ealer,icher,pler,emner,icter,nser,iser¦4:arser,viner,ucher,rosser,somer,ndomer,moter,oother,uarer,hiter¦5:nuiner,esser,emier¦ar:urther",ex:"worse:bad¦better:good¦4er:fair,gray,poor¦1urther:far¦3ter:fat,hot,wet¦3er:lay,shy,fun¦3der:mad,sad¦4der:glad¦:¦4r:cute,dire,fake,fine,free,lame,late,pale,rare,ripe,rude,safe,sore,tame,wide¦5r:eerie,stale"},ts={fwd:"1:nning,tting,rring,pping,eing,mming,gging,dding,bbing,kking¦2:eking,oling,eling,eming¦3:velling,siting,uiting,fiting,loting,geting,ialing¦4:graming",both:"1:iing,fing,xing,ying,oing,hing,wing¦2:tzing,rping,izzing,bting,mning,sping,wling,rling,wding,rbing,uping,lming,wning,mping,oning,lting,mbing,lking,fting,hting,sking,gning,pting,cking,ening,nking,iling,eping,ering,rting,rming,cting,lping,ssing,nting,nding,lding,sting,rning,rding,rking¦3:yaking,uaking,oaning,auling,valing,aiding,naping,euring,tolling,uzzing,ganing,haning,ualing,halling,iasing,auding,ieting,ceting,ouling,voring,ralling,ooding,garing,joring,ooping,oaking,roring,oaming,uelling,nelling,eaping,eeting,ooting,ooming,xiting,keting,ooking,ulling,airing,oaring,biting,outing,oiting,eeding,naling,eaming,oading,earing,delling,ouring,eaking,aiming,illing,oining,eaning,onging,ealing,aining,eading¦4:melling,aboring,ivoting,weating,dfilling,onoring,eriting,imiting,heating,tialling,rgining,otoring,linging,winging,lleting,louding,spelling,looring,mpelling,xcelling,feating,opelling,choring,welling,ymaking,ctoring,calling,peating,iloring,laiting,utoring,uditing,nmaking,mmaking,loating,iciting,waiting,mbating,voiding,otalling,nsoring,nselling,ocusing,itoring,eloping¦5:rselling,umpeting,atrolling,treating,tselling,rpreting,pringing,ummeting,ossoming,elmaking,eselling,rediting,defining,totyping,rfeiting,ntrolling¦5e:chmaking,orsaking,severing,erouting,ecreting,ephoning,uthoring,reathing,pediting,erfering,eotyping,fringing,entoring,ombining,ompeting¦4e:emaking,eething,dmiring,chuting,xciting,rseding,scoping,edoring,pinging,lunging,agining,craping,pleting,eleting,nciting,nfining,ncoding,tponing,ecoding,writing,esaling,gnoring,evoting,mpeding,dhering,mpiling,storing,nviting,ploring¦3e:tining,wining,nuring,ruling,haling,ceding,xuding,rining,nuting,caring,miling,riding,hoking,piring,lading,laking,curing,uading,noting,taping,futing,paring,raking,vening,loding,siring,guring,vading,voking,niting,laning,coring,caping,luting,muting,ruding,ciding,juring,laming,caling,hining,uoting,liding,ciling,duling,tuting,puting,cuting,laring,uiding,tiring,turing,siding,rading,enging,haping,buting,lining,taking,anging,haring,uiring,coming,mining,moting,suring,viding,luding¦2e:tring,zling,uging,oging,gling,iging,vring,fling,lging,iping,obing,psing,pling,ubing,cling,dling,wsing,iking,rsing,dging,kling,ysing,tling,rging,eging,nsing,uning,osing,uming,using,ibing,bling,aging,ising,asing,ating¦2ie:rlying¦1e:zing,uing,cing,ving",rev:"ying:ie¦1ing:se,ke,te,we,ne,re,de,pe,me,le,c,he¦2ing:ll,ng,dd,ee,ye,oe,or,rg,us¦2ning:un¦2ging:og,ag,ug,ig,eg¦2ming:um¦2ping:ip¦2bing:ub,ab,eb,ob¦3ning:lan,can,hin,pin,win¦3ring:cur,lur,tir,tar,pur,car¦3ing:eat,dit,ool,eel,oat,eem,lel¦3ping:rop,rap,wap,hop,lap,cap¦3ming:tem,wim,rim,kim¦3ting:mat,cut,pot,lit,nit,hat,set,pit,rot¦3ding:hed,bed,bid,red¦3king:rek¦3bing:rib¦3ling:pel¦4ning:egin¦4ing:isit,ruit,ilot,nsit,dget,rkel,rcel¦4ring:efer,nfer¦4ling:abel,evel,ncil,ivel¦4ting:rmit,mmit,ysit,dmit,emit,bmit,tfit,gret,llot¦5ing:arget,posit,rofit¦5ring:nsfer¦5ting:nsmit,orget,cquit¦5ling:ancel,istil",ex:"3:adding,eating,aiming,aiding,airing,outing,gassing,setting,getting,putting,cutting,winning,sitting,betting,mapping,tapping,letting,bidding,hitting,tanning,netting,popping,fitting,capping,lapping,barring,banning,vetting,topping,rotting,potting,wetting,pitting,budding,hemming,pinning,jetting,kidding,padding,podding,wedding,bedding,donning,warring,penning,gutting,cueing,wadding,petting,napping,matting,tinning¦4:selling,falling,calling,waiting,editing,telling,rolling,heating,boating,hanging,beating,coating,singing,mooring,tolling,felling,polling,discing,seating,voiding,gelling,yelling,seeking,stopping,spanning,stepping,emitting,quitting,dialing,omitting,plotting,clotting,shutting,skinning,slotting,abutting,cramming¦5:bringing,treating,labelling,spelling,stalling,trolling,expelling,wringing,deterring,singeing,befitting,refitting¦6:enrolling,cancelling,distilling,scrolling,strolling,caucusing,travelling¦7:installing,stencilling,recharging,overeating,benefiting,unraveling,programing¦9:reprogramming¦is:being¦2e:using,aging,owing¦3e:making,taking,coming,noting,hiring,filing,coding,citing,doping,baking,coping,hoping,lading,caring,naming,voting,riding,mining,curing,lining,ruling,typing,boring,dining,firing,hiding,piling,taping,waning,baling,boning,faring,honing,luring,timing,wading,fading,biting,zoning,daring,waking,gaming,raking,ceding,tiring,coking,wining,joking,paring,gaping,poking,pining,coring,liming,toting,roping,wiring,aching¦4e:writing,storing,eroding,framing,smoking,tasting,wasting,phoning,shaking,shading,abiding,pasting,priming,shoring,sloping,withing¦5e:defining,refining,enduring,renaming,swathing,fringing,reciting¦1ie:dying,tying,lying,vying¦7e:sunbathing¦10e:recordkeeping"},ns={fwd:"1:mt¦2:llen¦3:iven,aken¦:ne¦y:in",both:"1:wn¦2:me,aten¦3:seen,bidden,isen¦4:roven,asten¦3l:pilt¦3d:uilt¦2e:itten¦1im:wum¦1eak:poken¦1ine:hone¦1ose:osen¦1in:gun¦1ake:woken¦ear:orn¦eal:olen¦eeze:ozen¦et:otten¦ink:unk¦ing:ung",rev:"2:un¦oken:eak¦ought:eek¦oven:eave¦1ne:o¦1own:ly¦1den:de¦1in:ay¦2t:am¦2n:ee¦3en:all¦4n:rive,sake,take¦5n:rgive",ex:"2:been¦3:seen,run¦4:given,taken¦5:shaken¦2eak:broken¦1ive:dove¦2y:flown¦3e:hidden,ridden¦1eek:sought¦1ake:woken¦1eave:woven"},as={fwd:"1:oes¦1ve:as",both:"1:xes¦2:zzes,ches,shes,sses¦2y:llies,plies¦1y:bies,ties,vies,nies,pies,dies,ries,fies¦:s",rev:"1ies:ly¦2es:us,go¦2ses:as¦3es:cho",ex:"2:does,goes¦3:gasses¦5:focuses¦is:are¦3y:relies¦2y:flies¦2ve:has"},rs={fwd:"1st:e¦1est:l,m,f,s¦1iest:cey¦2est:or,ir¦3est:ver",both:"4:east¦5:hwest¦5lest:erful¦4est:weet,lgar,tter,oung¦4most:uter¦3est:ger,der,rey,iet,ong,ear¦3test:lat¦3most:ner¦2est:pt,ft,nt,ct,rt,ht¦2test:it¦2gest:ig¦1est:b,k,n,p,h,d,w¦iest:y",rev:"1:ttest,nnest,yest¦2:sest,stest,rmest,cest,vest,lmest,olest,ilest,ulest,ssest,imest,uest¦3:rgest,eatest,oorest,plest,allest,urest,iefest,uelest,blest,ugest,amest,yalest,ealest,illest,tlest,itest¦4:cerest,eriest,somest,rmalest,ndomest,motest,uarest,tiffest¦5:leverest,rangest¦ar:urthest¦3ey:riciest",ex:"best:good¦worst:bad¦5est:great¦4est:fast,full,fair,dull¦3test:hot,wet,fat¦4nest:thin¦1urthest:far¦3est:gay,shy,ill¦4test:neat¦4st:late,wide,fine,safe,cute,fake,pale,rare,rude,sore,ripe,dire¦6st:severe"},os={fwd:"1:tistic,eable,lful,sful,ting,tty¦2:onate,rtable,geous,ced,seful,ctful¦3:ortive,ented¦arity:ear¦y:etic¦fulness:begone¦1ity:re¦1y:tiful,gic¦2ity:ile,imous,ilous,ime¦2ion:ated¦2eness:iving¦2y:trious¦2ation:iring¦2tion:vant¦3ion:ect¦3ce:mant,mantic¦3tion:irable¦3y:est,estic¦3m:mistic,listic¦3ess:ning¦4n:utious¦4on:rative,native,vative,ective¦4ce:erant",both:"1:king,wing¦2:alous,ltuous,oyful,rdous¦3:gorous,ectable,werful,amatic¦4:oised,usical,agical,raceful,ocused,lined,ightful¦5ness:stful,lding,itous,nuous,ulous,otous,nable,gious,ayful,rvous,ntous,lsive,peful,entle,ciful,osive,leful,isive,ncise,reful,mious¦5ty:ivacious¦5ties:ubtle¦5ce:ilient,adiant,atient¦5cy:icient¦5sm:gmatic¦5on:sessive,dictive¦5ity:pular,sonal,eative,entic¦5sity:uminous¦5ism:conic¦5nce:mperate¦5ility:mitable¦5ment:xcited¦5n:bitious¦4cy:brant,etent,curate¦4ility:erable,acable,icable,ptable¦4ty:nacious,aive,oyal,dacious¦4n:icious¦4ce:vient,erent,stent,ndent,dient,quent,ident¦4ness:adic,ound,hing,pant,sant,oing,oist,tute¦4icity:imple¦4ment:fined,mused¦4ism:otic¦4ry:dantic¦4ity:tund,eral¦4edness:hand¦4on:uitive¦4lity:pitable¦4sm:eroic,namic¦4sity:nerous¦3th:arm¦3ility:pable,bable,dable,iable¦3cy:hant,nant,icate¦3ness:red,hin,nse,ict,iet,ite,oud,ind,ied,rce¦3ion:lute¦3ity:ual,gal,volous,ial¦3ce:sent,fensive,lant,gant,gent,lent,dant¦3on:asive¦3m:fist,sistic,iastic¦3y:terious,xurious,ronic,tastic¦3ur:amorous¦3e:tunate¦3ation:mined¦3sy:rteous¦3ty:ain¦3ry:ave¦3ment:azed¦2ness:de,on,ue,rn,ur,ft,rp,pe,om,ge,rd,od,ay,ss,er,ll,oy,ap,ht,ld,ad,rt¦2inousness:umous¦2ity:neous,ene,id,ane¦2cy:bate,late¦2ation:ized¦2ility:oble,ible¦2y:odic¦2e:oving,aring¦2s:ost¦2itude:pt¦2dom:ee¦2ance:uring¦2tion:reet¦2ion:oted¦2sion:ending¦2liness:an¦2or:rdent¦1th:ung¦1e:uable¦1ness:w,h,k,f¦1ility:mble¦1or:vent¦1ement:ging¦1tiquity:ncient¦1ment:hed¦verty:or¦ength:ong¦eat:ot¦pth:ep¦iness:y",rev:"",ex:"5:forceful,humorous¦8:charismatic¦13:understanding¦5ity:active¦11ness:adventurous,inquisitive,resourceful¦8on:aggressive,automatic,perceptive¦7ness:amorous,fatuous,furtive,ominous,serious¦5ness:ample,sweet¦12ness:apprehensive,cantankerous,contemptuous,ostentatious¦13ness:argumentative,conscientious¦9ness:assertive,facetious,imperious,inventive,oblivious,rapacious,receptive,seditious,whimsical¦10ness:attractive,expressive,impressive,loquacious,salubrious,thoughtful¦3edom:boring¦4ness:calm,fast,keen,tame¦8ness:cheerful,gracious,specious,spurious,timorous,unctuous¦5sity:curious¦9ion:deliberate¦8ion:desperate¦6e:expensive¦7ce:fragrant¦3y:furious¦9ility:ineluctable¦6ism:mystical¦8ity:physical,proactive,sensitive,vertical¦5cy:pliant¦7ity:positive¦9ity:practical¦12ism:professional¦6ce:prudent¦3ness:red¦6cy:vagrant¦3dom:wise"},is=function(e="",t={}){let n=function(e,t={}){return t.hasOwnProperty(e)?t[e]:null}(e,t.ex);return n=n||function(e,t=[]){for(let n=0;n=1;a-=1){let r=e.length-a,o=e.substring(r,e.length);if(!0===t.hasOwnProperty(o))return e.slice(0,r)+t[o];if(!0===n.hasOwnProperty(o))return e.slice(0,r)+n[o]}return t.hasOwnProperty("")?e+t[""]:n.hasOwnProperty("")?e+n[""]:null}(e,t.fwd,t.both),n=n||e,n};const ss=function(e){return Object.entries(e).reduce(((e,t)=>(e[t[1]]=t[0],e)),{})};var ls=function(e={}){return{reversed:!0,both:ss(e.both),ex:ss(e.ex),fwd:e.rev||{}}};const us=/^([0-9]+)/,cs=function(e){let t=function(e){let t={};return e.split("¦").forEach((e=>{let[n,a]=e.split(":");a=(a||"").split(","),a.forEach((e=>{t[e]=n}))})),t}(e);return Object.keys(t).reduce(((e,n)=>(e[n]=function(e="",t=""){let n=(t=String(t)).match(us);if(null===n)return t;let a=Number(n[1])||0;return e.substring(0,a)+t.replace(us,"")}(n,t[n]),e)),{})};var ds=function(e={}){return"string"==typeof e&&(e=JSON.parse(e)),e.fwd=cs(e.fwd||""),e.both=cs(e.both||""),e.rev=cs(e.rev||""),e.ex=cs(e.ex||""),e};const hs=ds({fwd:"1:tted,wed,gged,nned,een,rred,pped,yed,bbed,oed,dded,rd,s,wn,mmed¦2:eed,nded,et,hted,st,oled,ut,emed,eled,lded,ken,rt,nked,apt,ant,eped,eked¦3:eared,eat,eaded,nelled,ealt,eeded,ooted,eaked,eaned,eeted,mited,bid,uit,ead,uited,ealed,geted,velled¦4:ebuted,hined,taked,comed¦y:ied¦ome:ame¦ear:ore¦ind:ound¦ep:pt¦ink:ank,unk¦all:ell¦ee:aw¦ive:ave¦eeze:oze¦old:eld¦ave:ft¦ake:ook¦ing:ang¦ell:old¦ite:ote¦ide:ode¦ine:one¦in:un,on¦eal:ole¦im:am¦ie:ay¦and:ood¦1ise:rose¦1eak:roke¦1ing:rought,rung¦1ive:rove¦1id:bade¦1et:got¦1y:aid¦3e:lid¦3d:pent",both:"1:fed,xed,hed¦2:rped,lked,kied,lmed,lped,uped,bted,rbed,rked,wned,rled,mped,fted,mned,mbed,zzed,ened,cked,gned,lted,sked,ued,zed,nted,ered,rted,rmed,ced,sted,rned,ssed,rded,pted,ved,cted¦3:oomed,iped,oided,eiled,yped,taled,moned,yled,lit,kled,oaked,gled,naled,fled,outed,uined,oared,valled,koned,soned,aided,obed,ibed,meted,nicked,rored,micked,keted,vred,ooped,oaded,rited,aired,auled,filled,ouled,ooded,ceted,tolled,oited,bited,tled,vored,dled,eamed,nsed,rsed,sited,owded,pled,sored,rged,osed,oured,psed,oated,loned,aimed,illed,eured,tred,ioned,celled,bled,wsed,ooked,oiled,itzed,iked,iased,onged,ased,ailed,uned,umed,ained,auded,nulled,ysed,eged,ised,aged,oined,ated,used,dged,doned¦4:honed,tuted,pited,naked,miled,helled,haped,cored,caled,tired,peated,futed,ciled,called,tined,moted,filed,sided,poned,iloted,uaded,lleted,huted,ruled,cured,named,preted,voked,vaded,sured,pired,haled,peded,gined,nited,uided,ramed,feited,laked,gured,ctored,unged,loded,xpelled,cuted,caped,eloped,ralled,rined,coded,icited,vided,spelled,voted,mined,sired,noted,lined,nselled,luted,vened,jured,fided,puted,piled,pared,olored,cided,hoked,enged,tured,geoned,cotted,lamed,uiled,waited,udited,anged,luded,mired,uired,raded¦5:umpeted,ailored,rseded,quared,treated,eduled,ecited,rammed,eceded,atrolled,nitored,basted,nvited,rfered,itialled,ncited,gnored,truded,xcited,nrolled,namelled,plored,clared,redited,nfined,pleted,ompelled,llided,ircled,lcined,eathed,nefited,ibuted,lloted,dhered,cceded¦2aw:drew¦2ot:hot¦2ke:made¦2ow:hrew,grew¦2ose:hose¦2d:ilt¦2in:egan¦1go:rwent¦1ink:hought¦1ick:tuck¦1ike:ruck¦1eak:poke,nuck¦1it:pat¦1o:did¦1ow:new¦1el:elt¦1ing:lung¦1ake:woke¦ig:ug",rev:"3:rst,urt,set,ous,hed,hut,cut¦4:tbid¦5:dcast,eread,pread,erbid¦ought:uy,eek¦ung:ang¦1ied:ny,ly,dy,ry,fy,py,vy,by¦1pt:eep¦1ank:rink¦1ore:bear,wear¦1ave:give¦1oze:reeze¦1ound:rind¦1ook:take,hake¦1aw:see¦1old:sell¦1ote:rite¦1ole:teal¦1unk:tink¦1am:wim¦1ay:lie¦1ood:tand¦1eld:hold¦2d:he,ge,re,le,leed,ne,reed,be,ye,lee,pe¦2ed:dd,oy,or,ey,ho,gg,rr¦2ame:ecome,rcome¦2ped:ip¦2ged:ag,og,ug¦2bed:ub,ab,ib,ob¦2id:pay¦2ang:pring¦2ove:trive¦2med:um¦3ted:mit,hat,mat,lat,pot¦3ed:low,tow,und,ool,ond,eem,lay,dow,xit,eld,cus,ald,iew,bel,oan,del,uld,law,lel,eat,ray,ull,ank,fin,oam,oll,how,iek,tay,haw,ait¦3d:ste,ede,ode,ete,ree,ame,tee,oke,ote,ime¦3red:lur,cur,pur¦3ped:hop,rop,tep,top,rap¦3ded:bed,rod,kid¦3ade:orbid¦3led:uel¦3ned:lan,can,kin,pan,tun¦3med:rim¦4ted:quit,llot¦4ed:peal,cend,lend,rrow,rand,lean,mand,ceal,tend,fend,pear,anel,pand,reet,link,evel,imit,lead,mend,enew,cind,crew,head,pell,tall,well,rend,mell¦4led:nnel,qual¦4n:sake,trew¦4red:nfer,efer,sfer¦4ded:hred¦4ned:rpin¦5ed:ppend,light,epend,ndear,xceed,xpend,oceed,cruit,emind,cceed,spend,arget,hread,eight¦5led:ntrol,ravel¦5ped:erlap",ex:"2:been,upped¦3:added,aged,aided,aimed,aired,bid,died,dyed,egged,erred,eyed,fit,gassed,hit,lied,owed,pent,pied,tied,used,vied,banned,barred,bet,canned,capped,cut,donned,ended,feed,inked,jarred,let,manned,mapped,mowed,napped,netted,padded,panned,pitted,popped,potted,put,set,sewn,sowed,tanned,tapped,topped,vowed,weed¦4:ached,baked,baled,boned,bored,called,caned,cared,ceded,cited,coded,cored,cubed,cured,dared,dined,edited,exited,faked,fared,filed,fined,fired,fuelled,gamed,gelled,hired,hoped,joked,lined,loaned,mined,named,noted,piled,poked,polled,pored,pulled,reaped,roamed,rolled,ruled,seated,shed,sided,taped,timed,tolled,toned,voted,waited,walled,waned,winged,wired,zoned,banded,beat,brewed,cast,cost,dealt,feared,folded,footed,handed,headed,heard,knitted,landed,leaked,leapt,linked,meant,minded,molded,neared,needed,peaked,plodded,plotted,quit,read,rooted,sealed,seeded,seeped,shunned,skimmed,slammed,sparred,stemmed,stirred,suited,tended,thinned,twinned¦5:basted,cheated,equalled,eroded,exiled,focused,opined,pleated,primed,quoted,shared,shored,sloped,smoked,spelled,stalled,stored,swelled,tasted,treated,wasted,smelled,breaded,cleared,debuted,deterred,freaked,rebutted,speeded,staked¦6:anchored,defeated,defined,endured,impaled,propelled,refined,revered,strolled,recast,regretted,revealed,thrust,unfolded¦7:authored,combined,competed,conceded,controlled,entwined,excreted,installed,redefined,restored,welcomed¦8:expedited,infringed¦9:persevered,copyrighted¦10:intertwined¦eat:ate¦is:was¦go:went¦are:were¦3d:bent,lent,rent,sent¦3e:bit,fled,hid,lost¦3ed:bled,bred¦2ow:blew,grew¦1uy:bought¦2tch:caught¦1o:did¦1ive:dove,gave¦2aw:drew¦2ed:fed¦2y:flew,laid,paid,said¦1ight:fought¦1et:got¦2ve:had¦1ang:hung¦2ad:led¦2ght:lit¦2ke:made¦2et:met¦1un:ran¦1ise:rose¦1it:sat¦1eek:sought¦1each:taught¦1ake:woke,took¦1eave:wove¦2ise:arose¦1ear:bore,tore,wore¦1ind:bound,found,wound¦2eak:broke¦2ing:brought,wrung¦1ome:came¦2ive:drove¦1all:fell¦4et:forgot¦1old:held¦2ave:left¦1ing:rang,sang¦1ide:rode¦1ink:sank¦1ee:saw¦2ine:shone¦4e:slid¦1ell:sold,told¦4d:spent¦2in:spun¦1in:won"}),gs=ds(as),ms=ds(ts),ps=ds(ns),fs=ls(hs),bs=ls(gs),vs=ls(ms),ys=ls(ps),ws=ds(es),ks=ds(rs);var Ps={fromPast:hs,fromPresent:gs,fromGerund:ms,fromParticiple:ps,toPast:fs,toPresent:bs,toGerund:vs,toParticiple:ys,toComparative:ws,toSuperlative:ks,fromComparative:ls(ws),fromSuperlative:ls(ks),adjToNoun:ds(os)},As=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),Is=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..ase)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],js=function(e,t){const{irregularPlurals:n}=t.two;let a=(r=n,Object.keys(r).reduce(((e,t)=>(e[r[t]]=t,e)),{}));var r;if(a.hasOwnProperty(e))return a[e];for(let t=0;t(Ns[t].forEach((n=>e[n]=t)),e)),{});var Ds=Ns,Cs=function(e){let t=e.substring(e.length-3);if(!0===Ds.hasOwnProperty(t))return Ds[t];let n=e.substring(e.length-2);return!0===Ds.hasOwnProperty(n)?Ds[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const xs={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Ts=function(e,t,n){const{fromPast:a,fromPresent:r,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",a={};t.one&&t.one.prefixes&&(a=t.one.prefixes);let[r,o]=e.split(/ /);return o&&!0===a[r]&&(n=r,r=o,o=""),{prefix:n,verb:r,particle:o}}(e,t),c="";if(n||(n=Cs(e)),xs.hasOwnProperty(e))c=xs[e];else if("Participle"===n)c=is(l,i);else if("PastTense"===n)c=is(l,a);else if("PresentTense"===n)c=is(l,r);else{if("Gerund"!==n)return e;c=is(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Fs=function(e,t){const{toPast:n,toPresent:a,toGerund:r,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:is(i,n),PresentTense:is(i,a),Gerund:is(i,r),FutureTense:"will "+e},u=is(i,o);if(u!==e&&u!==l.PastTense){let n=t.one.lexicon||{};"Participle"!==n[u]&&"Adjective"!==n[u]||("play"===e&&(u="played"),l.Participle=u)}return s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l},Os={toInfinitive:Ts,conjugate:Fs,all:function(e,t){let n=Fs(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}};const Gs=function(e,t){const n=t.two.models.toSuperlative;return is(e,n)},Bs=function(e,t){const n=t.two.models.toComparative;return is(e,n)};var zs=function(e="",t=[]){const n=e.length;for(let a=n<=6?n-1:6;a>=1;a-=1){let r=e.substring(n-a,e.length);if(!0===t[r.length].hasOwnProperty(r))return e.slice(0,n-a)+t[r.length][r]}return null};const Hs="ically",Vs=new Set(["analyt"+Hs,"chem"+Hs,"class"+Hs,"clin"+Hs,"crit"+Hs,"ecolog"+Hs,"electr"+Hs,"empir"+Hs,"frant"+Hs,"grammat"+Hs,"ident"+Hs,"ideolog"+Hs,"log"+Hs,"mag"+Hs,"mathemat"+Hs,"mechan"+Hs,"med"+Hs,"method"+Hs,"method"+Hs,"mus"+Hs,"phys"+Hs,"phys"+Hs,"polit"+Hs,"pract"+Hs,"rad"+Hs,"satir"+Hs,"statist"+Hs,"techn"+Hs,"technolog"+Hs,"theoret"+Hs,"typ"+Hs,"vert"+Hs,"whims"+Hs]),Ls=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Ss=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),$s={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"quick",superbly:"superb",cynically:"cynical",well:"good"},Ms=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Js={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Ws=function(e){if(Js.hasOwnProperty(e))return Js[e];let t=zs(e,Ms);return t||(t=e+"ly"),t},Ks={toSuperlative:Gs,toComparative:Bs,toAdverb:Ws,toNoun:function(e,t){const n=t.two.models.adjToNoun;return is(e,n)},fromAdverb:function(e){return e.endsWith("ly")?Vs.has(e)?e.replace(/ically/,"ical"):Ss.has(e)?null:$s.hasOwnProperty(e)?$s[e]:zs(e,Ls)||e:null},fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return is(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return is(e,n)},all:function(e,t){let n=[e];return n.push(Gs(e,t)),n.push(Bs(e,t)),n.push(Ws(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},qs={noun:Es,verb:Os,adjective:Ks},Us={Singular:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.noun.toPlural(e,a);r[o]||(t[o]=t[o]||"Plural")},Actor:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.noun.toPlural(e,a);r[o]||(t[o]=t[o]||["Plural","Actor"])},Comparable:(e,t,n,a)=>{let r=a.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,a);r[s]||(t[s]=t[s]||"Superlative");let l=i(e,a);r[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,a)=>{let r=n.two.transform.noun.toPlural(e,a);t[r]=t[r]||["Demonym","Plural"]},Infinitive:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.verb.conjugate(e,a);Object.entries(o).forEach((e=>{r[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,a)=>{let r=a.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=a.one._multiCache,[i,s]=e.split(" ");r[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,a);delete l.FutureTense,Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||r[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]},Place:(e,t)=>{t[e]=["Place","ProperNoun"]},Region:(e,t)=>{t[e]=["Region","ProperNoun"]}},Rs=function(e,t){const{methods:n,model:a}=t;let r={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Us.hasOwnProperty(i)&&Us[i](t,r,n,a),r[t]=r[t]||i})),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},Qs=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let a=0;e.forEach(((r,o)=>{t.test(r.post)&&function(e,t){const n=/^[0-9]+$/;let a=e[t];if(!a)return!1;const r=new Set(["may","april","august","jan"]);if("like"===a.normal||r.has(a.normal))return!1;if(a.tags.has("Place")||a.tags.has("Date"))return!1;if(e[t-1]){let n=e[t-1];if(n.tags.has("Date")||r.has(n.normal))return!1;if(n.tags.has("Adjective")||a.tags.has("Adjective"))return!1}let o=a.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(a,o+1)),a=o+1)})),ae.endsWith(t))):"s"===t&&!_s.find((t=>e.endsWith(t)))},el={two:{quickSplit:Qs,expandLexicon:Rs,transform:qs,looksPlural:Ys}},tl=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};let nl={one:{lexicon:{}},two:{models:Ps}};const al={"Actor|Verb":"Actor","Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"FirstName","Person|Place":"Person","Person|Adj":"Comparative","Plural|Verb":"Plural","Unit|Noun":"Noun"},rl=function(e,t){const n={model:t,methods:el};let{lex:a,_multi:r}=el.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},ol=function(e,t,n){let a=Fs(e,nl);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},il=function(e,t,n){let a=Gs(e,n);t[a]=t[a]||"Superlative";let r=Bs(e,n);t[r]=t[r]||"Comparative"},sl=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach((r=>{const o=e[r];if(n[r]=al[o],"Noun|Verb"!==o&&"Person|Verb"!==o&&"Actor|Verb"!==o||ol(r,a,!1),"Adj|Present"===o&&(ol(r,a,!0),il(r,a,t)),"Person|Adj"===o&&il(r,a,t),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Ts(r,nl,"Gerund");a[e]||(n[e]="Infinitive")}if("Noun|Gerund"!==o&&"Adj|Noun"!==o&&"Person|Noun"!==o||function(e,t,n){let a=Oo(e,n);t[a]=t[a]||"Plural"}(r,a,t),"Adj|Past"===o){let e=Ts(r,nl,"PastTense");a[e]||(n[e]="Infinitive")}})),t=rl(n,t)};var ll=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=rl(e.one.lexicon,e)).one.lexicon,e),e=sl(e.two.switches,e),e=tl(e)};let ul={one:{_multiCache:{},lexicon:Bo},two:{irregularPlurals:wo,models:Ps,suffixPatterns:Gi,prefixPatterns:Vi,endsWith:Zi,neighbours:Yi,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z°]{1,4})$/,"NumericValue","9km"]],switches:zo,clues:yi,uncountable:{},orgWords:As}};ul=ll(ul);var cl=ul,dl=function(e,t,n,a){const r=a.methods.one.setTag;if(0===t&&e.length>=3){const t=/:/;if(e[0].post.match(t)){let t=e[1];if(t.tags.has("Value")||t.tags.has("Email")||t.tags.has("PhoneNumber"))return;r([e[0]],"Expression",a,null,"2-punct-colon''")}}},hl=function(e,t,n,a){const r=a.methods.one.setTag;"-"===e[t].post&&e[t+1]&&r([e[t],e[t+1]],"Hyphenated",a,null,"1-punct-hyphen''")};const gl=/^(under|over|mis|re|un|dis|semi)-?/;var ml=function(e,t,n){const a=n.two.switches;let r=e[t];if(a.hasOwnProperty(r.normal))r.switch=a[r.normal];else if(gl.test(r.normal)){let e=r.normal.replace(gl,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}},pl=function(e,t,n){if(!t||0===t.length)return;const a="undefined"!=typeof process&&process.env?process.env:self.env||{};a&&a.DEBUG_TAGS&&((e,t,n="")=>{let a=e.text||"["+e.implicit+"]";var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,"[33m[3m"+r+"[0m").padEnd(24)} [32m→[0m #${t.padEnd(22)} ${(e=>"[3m"+e+"[0m")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const fl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific","Month"];var bl=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t)))||(Ys(e.normal)?pl(e,"Plural","3-plural-guess"):pl(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Cs(e.normal);t&&pl(e,t,"3-verb-tense-guess")}}(a)};const vl=/^\p{Lu}[\p{Ll}'’]/u,yl=/[0-9]/,wl=["Date","Month","WeekDay","Unit","Expression"],kl=/[IVX]/,Pl=/^[IVXLCDM]{2,}$/,Al=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,Il={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var jl=function(e,t,n){let a=e[t];a.index=a.index||[0,0];let r=a.index[1],o=a.text||"";return 0!==r&&!0===vl.test(o)&&!1===yl.test(o)?wl.find((e=>a.tags.has(e)))||a.pre.match(/["']$/)||"the"===a.normal?null:(bl(e,t,n),a.tags.has("Noun")||a.tags.clear(),pl(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&Pl.test(o)&&kl.test(o)&&Al.test(o)&&!Il[a.normal]?(pl(a,"RomanNumeral","2-xvii"),!0):null};const El=function(e="",t=[]){const n=e.length;let a=7;n<=a&&(a=n-1);for(let r=a;r>1;r-=1){let a=e.substring(n-r,n);if(!0===t[a.length].hasOwnProperty(a))return t[a.length][a]}return null};var Nl=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=El(a.normal,n.two.suffixPatterns);if(null!==e)return pl(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=El(a.implicit,n.two.suffixPatterns),null!==e))return pl(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const Dl=/['‘’‛‵′`´]/,Cl=function(e,t){for(let n=0;nn-3&&(a=n-3);for(let n=a;n>2;n-=1){let a=e.substring(0,n);if(!0===t[a.length].hasOwnProperty(a))return t[a.length][a]}return null}(a.normal,n.two.prefixPatterns);if(null!==e)return pl(a,e,"2-prefix"),a.confidence=.5,!0}return null};const Fl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Ol=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Fl.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Gl=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Bl=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var zl=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let a=Number(n.normal);if(a&&!isNaN(a)&&a>1400&&a<2100){let r=e[t-1],o=e[t+1];if(Ol(r)||Ol(o))return pl(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(Gl(r)||Gl(o))return pl(n,"Year","2-tagYear-close");if(Bl(e[t-2])||Bl(e[t+2]))return pl(n,"Year","2-tagYear-far");if(r&&(r.tags.has("Determiner")||r.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return pl(n,"Year","2-tagYear-noun")}}}return null},Hl=function(e,t,n,a){const r=a.methods.one.setTag,o=e[t],i=["PastTense","PresentTense","Auxiliary","Modal","Particle"];o.tags.has("Verb")&&(i.find((e=>o.tags.has(e)))||r([o],"Infinitive",a,null,"2-verb-type''"))};const Vl=/^[A-Z]('s|,)?$/,Ll=/^[A-Z-]+$/,Sl=/^[A-Z]+s$/,$l=/([A-Z]\.)+[A-Z]?,?$/,Ml=/[A-Z]{2,}('s|,)?$/,Jl=/([a-z]\.)+[a-z]\.?$/,Wl={I:!0,A:!0},Kl={la:!0,ny:!0,us:!0,dc:!0,gb:!0};var ql=function(e,t,n){let a=e[t];return a.tags.has("RomanNumeral")||a.tags.has("Acronym")?null:function(e,t){let n=e.text;if(!1===Ll.test(n)){if(!(n.length>3&&!0===Sl.test(n)))return!1;n=n.replace(/s$/,"")}return!(n.length>5||Wl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==$l.test(n)&&!0!==Jl.test(n)&&!0!==Vl.test(n)&&!0!==Ml.test(n))}(a,n)?(a.tags.clear(),pl(a,["Acronym","Noun"],"3-no-period-acronym"),!0===Kl[a.normal]&&pl(a,"Place","3-place-acronym"),!0===Sl.test(a.text)&&pl(a,"Plural","3-plural-acronym"),!0):!Wl.hasOwnProperty(a.text)&&Vl.test(a.text)?(a.tags.clear(),pl(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(pl(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&Ll.test(a.text)&&a.text.length<=6?(pl(a,"Acronym","3-titlecase-acronym"),!0):null};const Ul=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Rl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var Ql=function(e,t,n){const{leftTags:a,leftWords:r,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Ul(e[t-1],r),l=l||Ul(e[t+1],o),l=l||Rl(e[t-1],a),l=l||Rl(e[t+1],i),l)return pl(s,l,"3-[neighbour]"),bl(e,t,n),e[t].confidence=.2,!0}return null};const Zl=function(e,t,n){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||!(n||(a=e.text,!/^\p{Lu}[\p{Ll}'’]/u.test(a)))&&(0!==t||e.tags.has("Singular")));var a};var Xl=function(e,t,n,a){const r=n.model.two.orgWords,o=n.methods.one.setTag;let i=e[t];if(!0===r[i.machine||i.normal]&&Zl(e[t-1],t-1,a)){o([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Zl(e[r],r,a);r-=1)o([e[r]],"Organization",n,null,"3-[org-word]")}return null},_l=function(e,t,n){let a=!1,r=e[t].tags;(0===r.size||1===r.size&&(r.has("Hyphenated")||r.has("HashTag")||r.has("Prefix")))&&(a=!0),a&&(pl(e[t],"Noun","3-[fallback]"),bl(e,t,n),e[t].confidence=.1)};const Yl=/^[A-Z][a-z]/,eu=(e,t)=>e[t].tags.has("ProperNoun")&&Yl.test(e[t].text)?"Noun":null,tu=(e,t,n)=>0!==t||e[1]?null:n,nu={"Adj|Gerund":(e,t)=>eu(e,t),"Adj|Noun":(e,t)=>eu(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Actor|Verb":(e,t)=>eu(e,t),"Adj|Past":(e,t)=>eu(e,t),"Adj|Present":(e,t)=>eu(e,t),"Noun|Gerund":(e,t)=>eu(e,t),"Noun|Verb":(e,t)=>t>0&&eu(e,t)||tu(e,t,"Infinitive"),"Plural|Verb":(e,t)=>eu(e,t)||tu(e,t,"PresentTense")||function(e,t,n){return 0===t&&e.length>3?n:null}(e,t,"Plural"),"Person|Noun":(e,t)=>eu(e,t),"Person|Verb":(e,t)=>0!==t?eu(e,t):null,"Person|Adj":(e,t)=>0===t&&e.length>1||eu(e,t)?"Person":null};var au=nu;const ru="undefined"!=typeof process&&process.env?process.env:self.env||{},ou=/^(under|over|mis|re|un|dis|semi)-?/,iu=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,a=null;return t.hasOwnProperty(n)&&(a=t[n]),a&&ru.DEBUG_TAGS&&console.log(`\n [2m[3m ↓ - '${n}' [0m`),a},su=(e,t={},n)=>{if(!e||!t)return null;let a=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),r=a.find((e=>t[e]));return r&&ru.DEBUG_TAGS&&console.log(` [2m[3m ↓ - '${e.normal||e.implicit}' (#${r}) [0m`),r=t[r],r};var lu=function(e,t,n){const a=n.model,r=n.methods.one.setTag,{switches:o,clues:i}=a.two,s=e[t];let l=s.normal||s.implicit||"";if(ou.test(l)&&!o[l]&&(l=l.replace(ou,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,a){if(!n)return null;const r=a.one.tagSet;let o=iu(e[t+1],n.afterWords);return o=o||iu(e[t-1],n.beforeWords),o=o||su(e[t-1],n.beforeTags,r),o=o||su(e[t+1],n.afterTags,r),o}(e,t,i[o],a);au[o]&&(u=au[o](e,t)||u),u?(r([s],u,n,null,`3-[switch] (${o})`),bl(e,t,a)):ru.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}};const uu={there:!0,this:!0,it:!0,him:!0,her:!0,us:!0};var cu=function(e,t){const n=t.methods.one.setTag,a=t.model.one._multiCache||{};let r=e[0];if(("Noun|Verb"===r.switch||r.tags.has("Infinitive"))&&e.length>=2){if(e.length<4&&!uu[e[1].normal])return;if(!r.tags.has("PhrasalVerb")&&a.hasOwnProperty(r.normal))return;(e[1].tags.has("Noun")||e[1].tags.has("Determiner"))&&(e.slice(1,3).some((e=>e.tags.has("Verb")))&&!r.tags.has("#PhrasalVerb")||n([r],"Imperative",t,null,"3-[imperative]"))}};const du=function(e){if(e.filter((e=>!e.tags.has("ProperNoun"))).length<=3)return!1;const t=/^[a-z]/;return e.every((e=>!t.test(e.text)))},hu=function(e,t,n,a){for(let r=0;r{dl(e,0,t,n);for(let t=0;t{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var fu=function(e){const t=e.world,n=Object.keys(pu);e.docs.forEach((e=>{for(let a=0;a{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=Du.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=Nu},xu=function(e,t,n){let[a,r]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e))),n[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const Tu=/'/;var Fu=function(e,t){let n=e[t].normal.split(Tu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let a=e[t+1];if(a&&a.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const Ou=/'/;var Gu=function(e,t){let n=e[t].normal.split(Ou)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>!(!e[t+1]||"better"!=e[t+1].normal)||e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]},Bu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){if(e[t+1]&&"never"===e[t+1].normal)return["have"];let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if("i"===n.normal)return["am","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const zu={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Hu={in:!0,by:!0,for:!0};var Vu=(e,t)=>{let n=e[t];if(zu.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("QuestionWord"))return!1;if("he's"===n.normal||"she's"===n.normal)return!1;let a=e[t+1];if(!a)return!0;if("it's"===n.normal)return!!a.tags.has("#Noun");if(a.tags.has("Verb"))return!!a.tags.has("Infinitive")||!!a.tags.has("PresentTense");if(a.tags.has("Noun")){let e=a.machine||a.normal;return!("here"===e||"there"===e||"everywhere"===e||a.tags.has("Possessive")||a.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===Hu[e[t-1].normal])return!0;let r=e[t+2];return!(!r||!r.tags.has("Noun")||r.tags.has("Pronoun"))||(a.tags.has("Adjective")||a.tags.has("Adverb")||a.tags.has("Verb"),!1)};const Lu=/'/,Su=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]],r.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},$u={d:(e,t)=>Gu(e,t),t:(e,t)=>Bu(e,t),s:(e,t,n)=>Vu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Fu(e,t)},Mu=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Ju={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((a,r)=>{for(let o=a.length-1;o>=0;o-=1){if(a[o].implicit)return;let i=null;!0===Lu.test(a[o].normal)&&([,i]=a[o].normal.split(Lu));let s=null;$u.hasOwnProperty(i)&&(s=$u[i](a,o,t)),s&&(s=Mu(s,e),xu(n,[r,o],s),Su(n[r],e,o,s.length))}}))}},Wu={compute:Ju,api:Cu,hooks:["contractionTwo"]};const Ku="(i|we|they)";let qu=[].concat([{match:"(got|were|was|is|are|am) (#PastTense|#Participle)",tag:"Passive",reason:"got-walked"},{match:"(was|were|is|are|am) being (#PastTense|#Participle)",tag:"Passive",reason:"was-being"},{match:"(had|have|has) been (#PastTense|#Participle)",tag:"Passive",reason:"had-been"},{match:"will be being? (#PastTense|#Participle)",tag:"Passive",reason:"will-be-cleaned"},{match:"#Noun [(#PastTense|#Participle)] by (the|a) #Noun",group:0,tag:"Passive",reason:"suffered-by"}],[{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,notIf:"(all|even)",tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"[#Hyphenated (#Hyphenated && #PastTense)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"faith-based"},{match:"[#Hyphenated (#Hyphenated && #Gerund)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"self-driving"},{match:"[#PastTense (#Hyphenated && #PhrasalVerb)] (#Noun|#Conjunction)",group:0,tag:"Adjective",reason:"dammed-up"},{match:"(#Hyphenated && #Value) fold",tag:"Adjective",reason:"two-fold"},{match:"must (#Hyphenated && #Infinitive)",tag:"Adjective",reason:"must-win"},{match:"(#Hyphenated && #Infinitive) #Hyphenated",tag:"Adjective",notIf:"#PhrasalVerb",reason:"vacuum-sealed"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"},{match:"[(un|contra|extra|inter|intra|macro|micro|mid|mis|mono|multi|pre|sub|tri|ex)] #Adjective",group:0,tag:["Adjective","Prefix"],reason:"un-skilled"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"},{match:"#Copula [far too] #Adjective",group:0,tag:"Adverb",reason:"far-too"},{match:"#Copula [still] (in|#Gerund|#Adjective)",group:0,tag:"Adverb",reason:"was-still-walking"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"},{match:"#Gerund [#Gerund]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looking-annoying"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",notIf:"#Hyphenated",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"},{match:"no [#Adjective] #Modal",group:0,tag:"Noun",reason:"no-golden"},{match:"[brand #Gerund?] new",group:0,tag:"Adverb",reason:"brand-new"},{match:"(#Determiner|#Comparative|new|different) [kind]",group:0,tag:"Noun",reason:"some-kind"},{match:"#Possessive [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"her-favourite"},{match:"must && #Hyphenated .",tag:"Adjective",reason:"must-win"},{match:"#Determiner [#Adjective]$",tag:"Noun",notIf:"(this|that|#Comparative|#Superlative)",reason:"the-south"},{match:"(#Noun && #Hyphenated) (#Adjective && #Hyphenated)",tag:"Adjective",notIf:"(this|that|#Comparative|#Superlative)",reason:"company-wide"},{match:"#Determiner [#Adjective] (#Copula|#Determiner)",notIf:"(#Comparative|#Superlative)",group:0,tag:"Noun",reason:"the-poor"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,notIf:"(#Modal|#PhrasalVerb)",tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] #Comparative",group:0,tag:"Adverb",reason:"even-worse"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",notIf:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",notIf:"(#PhrasalVerb|#Copula)",reason:"charge-back"},{match:"#Verb [around]",group:0,tag:"Adverb",notIf:"#PhrasalVerb",reason:"send-around"},{match:"[later] #PresentTense",group:0,tag:"Adverb",reason:"later-say"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) (march|may) !#Infinitive",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"(the|any) [more]",group:0,tag:"Singular",reason:"more-noun"},{match:"[more] #Noun",group:0,tag:"Adjective",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Singular",reason:"bit-2"},{match:"a [must]",group:0,tag:"Singular",reason:"must-2"},{match:"(we|us) [all]",group:0,tag:"Noun",reason:"we all"},{match:"due to [#Verb]",group:0,tag:"Noun",reason:"due-to"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",notIf:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"(a|an|the) [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",notIf:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,notIf:"#Gerund",tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense #Particle?]",group:0,tag:"Noun",notIf:"(seem|appear|include|#Gerund|#Copula)",reason:"det-inf"},{match:"#Noun #Actor",tag:"Actor",notIf:"(#Person|#Pronoun)",reason:"thing-doer"},{match:"#Gerund #Actor",tag:"Actor",reason:"gerund-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"[#Noun+] #Actor",group:0,tag:"Actor",notIf:"(#Honorific|#Pronoun|#Possessive)",reason:"air-traffic-controller"},{match:"(urban|cardiac|cardiovascular|respiratory|medical|clinical|visual|graphic|creative|dental|exotic|fine|certified|registered|technical|virtual|professional|amateur|junior|senior|special|pharmaceutical|theoretical)+ #Noun? #Actor",tag:"Actor",reason:"fine-artist"},{match:"#Noun+ (coach|chef|king|engineer|fellow|personality|boy|girl|man|woman)",tag:"Actor",reason:"dance-coach"},{match:"chief . officer",tag:"Actor",reason:"chief-x-officer"},{match:"chief of #Noun+",tag:"Actor",reason:"chief-of-police"},{match:"senior? vice? president of #Noun+",tag:"Actor",reason:"president-of"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]$",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense #Particle?",notIf:"(#Gerund|her)",tag:"Noun",reason:"possessive-verb"},{match:"(my|our|their|her|his|its) [(#Plural && #Actor)] #Noun",tag:"Possessive",reason:"my-dads"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"},{match:"i #Verb [me] #Noun",group:0,tag:"Possessive",reason:"scottish-me"},{match:"[#PresentTense] (music|class|lesson|night|party|festival|league|ceremony)",group:0,tag:"Noun",reason:"dance-music"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,ifNo:"#Copula",tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",notIf:"(still|even|just)",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"#Copula [(#Gerund|#Activity)] #Copula",group:0,tag:"Gerund",reason:"are-doing-is"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"},{match:"#Singular for [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"noun-for-gerund"},{match:"#Comparative (for|at) [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"better-for-gerund"},{match:"#PresentTense the [#Gerund]",group:0,tag:"Noun",reason:"keep-the-touching"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner (only|further|just|more|backward) [#Infinitive]",group:0,tag:"Noun",reason:"the-only-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"#Plural on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb #Particle?]",notIf:"(#Copula|#Noun|sure|fun|up)",group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",notIf:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",notIf:"#Preposition",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",notIf:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"better",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",notIf:"(#Copula|better)",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"many-poses"},{match:"#Determiner #Adverb #Adjective [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Copula",reason:"very-big-dream"},{match:"from #Noun to [%Noun|Verb%]",group:0,tag:"Noun",reason:"start-to-finish"},{match:"(for|with|of) #Noun (and|or|not) [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Pronoun",reason:"for-food-and-gas"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #Particle #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense] of",group:0,notIf:"(one|1|#Copula|#Infinitive)",tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",notIf:"#Copula",reason:"our-full-support"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",notIf:"going",reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"},{match:"how to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"how-to-noun"},{match:"which [%Noun|Verb%] #Noun",group:0,tag:"Infinitive",reason:"which-boost-it"},{match:"#Gerund [%Plural|Verb%]",group:0,tag:"Plural",reason:"asking-questions"},{match:"(ready|available|difficult|hard|easy|made|attempt|try) to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"ready-to-noun"},{match:"(bring|went|go|drive|run|bike) to [%Noun|Verb%]",group:0,tag:"Noun",reason:"bring-to-noun"},{match:"#Modal #Noun [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"would-you-look"},{match:"#Copula just [#Infinitive]",group:0,tag:"Noun",reason:"is-just-spam"},{match:"^%Noun|Verb% %Plural|Verb%",tag:"Imperative #Plural",reason:"request-copies"},{match:"#Adjective #Plural and [%Plural|Verb%]",group:0,tag:"#Plural",reason:"pickles-and-drinks"},{match:"#Determiner #Year [#Verb]",group:0,tag:"Noun",reason:"the-1968-film"},{match:"#Determiner [#PhrasalVerb #Particle]",group:0,tag:"Noun",reason:"the-break-up"},{match:"#Determiner [%Adj|Noun%] #Noun",group:0,tag:"Adjective",notIf:"(#Pronoun|#Possessive|#ProperNoun)",reason:"the-individual-goals"},{match:"[%Noun|Verb%] or #Infinitive",group:0,tag:"Infinitive",reason:"work-or-prepare"},{match:"to #Infinitive [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|#Copula|help)",reason:"to-give-thanks"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"},{match:"^[#Value] (#Determiner|#Gerund)",group:0,tag:"Expression",unTag:"Value",reason:"numbered-list"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|brother|father|aunt|uncle|grandpa|grandfather|grandma) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",notIf:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",notIf:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(lieutenant|corporal|sergeant|captain|qeen|king|admiral|major|colonel|marshal|president|queen|king)+] #ProperNoun",group:0,tag:"Honorific",reason:"seargeant-john"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:["Honorific","Person"],reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",notIf:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"#Honorific #Actor",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) #Actor",tag:"Honorific",reason:"first lady"},{match:"#Person #RomanNumeral",tag:"Person",reason:"louis-IV"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun",ifNo:"#Actor"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"},{match:"(#FirstName && !#Possessive) [#Singular] #Verb",group:0,safe:!0,tag:"LastName",reason:"jack-layton"},{match:"^[#Singular] #Person #Verb",group:0,safe:!0,tag:"Person",reason:"sherwood-anderson"},{match:"(a|an) [#Person]$",group:0,unTag:"Person",reason:"a-warhol"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:"#Date",group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",notIf:"(come|gotten)",reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(have|had) read",tag:"Modal #PastTense",reason:"read-read"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"},{match:"as #Pronoun [please]",group:0,tag:"Infinitive",reason:"as-we-please"},{match:"[(co|mis|de|inter|intra|pre|re|un|out|under|over|counter)] #Verb",group:0,tag:["Verb","Prefix"],notIf:"(#Copula|#PhrasalVerb)",reason:"co-write"},{match:"#PastTense and [%Adj|Past%]",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"[%Adj|Past%] and #PastTense",group:0,tag:"PastTense",reason:"dressed-and-left"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Copula [#Adjective] (well|badly|quickly|slowly)",group:0,tag:"Verb",reason:"done-well"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"a-bit-confused"},{match:"not be [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"do-not-be-confused"},{match:"#Copula just [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"is-just-right"},{match:"as [#Infinitive] as",group:0,tag:"Adjective",reason:"as-pale-as"},{match:"[%Adj|Past%] and #Adjective",group:0,tag:"Adjective",reason:"faled-and-oppressive"},{match:"or [#PastTense] #Noun",group:0,tag:"Adjective",notIf:"(#Copula|#Pronoun)",reason:"or-heightened-emotion"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"[(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"},{match:"[(been|had|became|came)] #PastTense",group:0,notIf:"#PhrasalVerb",tag:"Auxiliary",reason:"been-told"},{match:"[(being|having|getting)] #Verb",group:0,tag:"Auxiliary",reason:"being-born"},{match:"[be] #Gerund",group:0,tag:"Auxiliary",reason:"be-walking"},{match:"[better] #PresentTense",group:0,tag:"Modal",notIf:"(#Copula|#Gerund)",reason:"better-go"},{match:"even better",tag:"Adverb #Comparative",reason:"even-better"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",notIf:"#Copula",tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"#Verb (up|down|in|on|for)$",tag:"PhrasalVerb #Particle",notIf:"#PhrasalVerb",reason:"come-down$"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Ku,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Ku,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Ku,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",notIf:"(so|such|rather|enough)",reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|a|an|any|each|every|some|more|with|on)",group:0,notIf:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me|there)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^[#Infinitive] (#Adjective|#Adverb)? and #Infinitive",group:0,tag:"Imperative",reason:"call-and-reserve"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^come #Infinitive",tag:"Imperative",notIf:"on",reason:"come-have"},{match:"^come and? #Infinitive",tag:"Imperative . Imperative",notIf:"#PhrasalVerb",reason:"come-and-have"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[(stay|be|keep)] #Adjective",group:0,tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"},{match:"[#Infinitive] what .",group:0,tag:"Imperative",reason:"look-what"},{match:"^[#Infinitive] #Gerund",group:0,tag:"Imperative",reason:"keep-playing"},{match:"^[#Infinitive] (to|for|into|toward|here|there)",group:0,tag:"Imperative",reason:"go-to"},{match:"^[#Infinitive] (and|or) #Infinitive",group:0,tag:"Imperative",reason:"inf-and-inf"},{match:"^[%Noun|Verb%] to",group:0,tag:"Imperative",reason:"commit-to"},{match:"^[#Infinitive] #Adjective? #Singular #Singular",group:0,tag:"Imperative",reason:"maintain-eye-contact"},{match:"do not (forget|omit|neglect) to [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-forget"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"},{match:"#Gerund [#Gerund] #Plural",group:0,tag:"Adjective",reason:"hard-working-fam"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"[right] (before|after|in|into|to|toward)",group:0,tag:"#Adverb",reason:"right-into"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"(are|#Modal|see|do|for) [ya]",group:0,tag:"Pronoun",reason:"are-ya"},{match:"[long live] .",group:0,tag:"#Adjective #Infinitive",reason:"long-live"},{match:"[plenty] of",group:0,tag:"#Uncountable",reason:"plenty-of"},{match:"(always|nearly|barely|practically) [there]",group:0,tag:"Adjective",reason:"always-there"},{match:"[there] (#Adverb|#Pronoun)? #Copula",group:0,tag:"There",reason:"there-is"},{match:"#Copula [there] .",group:0,tag:"There",reason:"is-there"},{match:"#Modal #Adverb? [there]",group:0,tag:"There",reason:"should-there"},{match:"^[do] (you|we|they)",group:0,tag:"QuestionWord",reason:"do-you"},{match:"^[does] (he|she|it|#ProperNoun)",group:0,tag:"QuestionWord",reason:"does-he"},{match:"a [while]",group:0,tag:"Noun",reason:"a-while"},{match:"guess who",tag:"#Infinitive #QuestionWord",reason:"guess-who"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"#ProperNoun+ (river|lake|bay|inlet|creek|narrows|cove|dune|coast|lagoon|beach|peninsula|hill|mountain|canyon|marsh|island|trail|valley|glacier|estuary|desert|escarpment|gorge|plains|waterfall)",tag:"Place",reason:"foo-river"},{match:"(river|gulf|lake) of? #ProperNoun+",tag:"Place",reason:"river-foo"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"a #Noun [like] (#Noun|#Determiner)",group:0,tag:"Preposition",reason:"a-noun-like"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Infinitive #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}],[{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^[(well|so|okay|now)] !#Adjective?",group:0,tag:"Expression",reason:"well-"},{match:"^come on",tag:"Expression",reason:"come-on"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"^(ok|alright|shoot|hell|anyways)",tag:"Expression",reason:"ok-"},{match:"^(say && @hasComma)",tag:"Expression",reason:"say-"},{match:"^(like && @hasComma)",tag:"Expression",reason:"like-"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}]),Uu=null;var Ru={postTagger:function(e){const{world:t}=e,{model:n,methods:a}=t;Uu=Uu||a.one.buildNet(n.two.matches,t);let r=a.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(r);return o.cache(),o.sweep(Uu),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const Qu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Ru,model:{two:{matches:qu}},hooks:["postTagger"]};var Zu=Qu,Xu=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let a=e._cache;return e.filter(((e,t)=>n.some((e=>a[t].has(e)))))},_u=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let a=this.tokenize(e),r=Xu(a,n);return r.found?(r.compute(["index","tagger"]),r.match(t)):a.none()},Yu={lib:{lazy:_u}},ec=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e},tc=function(e,t,n){let a=e.split(/ /g).map((e=>e.toLowerCase().trim()));a=a.filter((e=>e)),a=a.map((e=>`{${e}}`)).join(" ");let r=this.match(a);return n&&(r=r.if(n)),r.has("#Verb")?ec(r,t):r.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model)),e.replaceWith(n,{possessives:!0})}(r,t):r.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let a=n(t);a&&e.replaceWith(a)}(r,t):r.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:a}=e.methods.two.transform.adjective;let r=t;e.has("#Comparative")?r=n(r,e.model):e.has("#Superlative")&&(r=a(r,e.model)),r&&e.replaceWith(r)}(r,t):this},nc={api:function(e){e.prototype.swap=tc}};return b.plugin(Iu),b.plugin(Wu),b.plugin(Zu),b.plugin(Yu),b.plugin(nc),b},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t();
diff --git a/builds/two/compromise-two.mjs b/builds/two/compromise-two.mjs
index f2b4264ad..d360d3019 100644
--- a/builds/two/compromise-two.mjs
+++ b/builds/two/compromise-two.mjs
@@ -1 +1 @@
-var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t;var r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)},isFull:function(){let e=this.pointer;if(!e)return!0;let t=this.document;for(let n=0;no)return!1}return!0},getNth:function(e){return"number"==typeof e?this.eq(e):"string"==typeof e?this.if(e):this}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var m=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e){return new t(r.one.tokenize.fromString(e,n))}if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let p=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=m(e,l,p);return e&&n.compute(p.hooks),n};Object.defineProperty(f,"_world",{value:p,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=m(e,l,p);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.8.2";var b=f;var v=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),I=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},A=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},j=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},E=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?A(n):(A(n),A([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!P(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||P(a.text)&&a.text.length>1&&(a.text=(o=a.text,o.replace(/^\p{Lu}/u,(e=>e.toLowerCase()))));var o}(e,o,n),I(e,o,n)};let N=0;const D=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var x=function(e){let[t,n]=e.index||[0,0];N+=1,N=N>46655?0:N,t=t>46655?0:t,n=n>1294?0:n;let r=D(N.toString(36));r+=D(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const C=function(e){if(e.has("@hasContraction")&&"function"==typeof e.contractions){e.grow("@hasContraction").contractions().expand()}},T=e=>"[object Array]"===Object.prototype.toString.call(e),O=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:T(e)?T(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=x(e),e)))}(d),n?(C(t.update([u]).firstTerm()),E(h,u,d,r)):(C(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(V,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let a=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(a.docs[0]||[]).map((e=>Array.from(e.tags)));if("string"==typeof e&&(e=this.fromText(e).compute("id")),r.insertAfter(e),a.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},z.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?(this.soften(),r.replaceWith(t,n)):this};var B=z;var L=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const $={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e));let a=!n.ptrs;if(r.has("@hasContraction")&&r.contractions){r.grow("@hasContraction").contractions().expand()}let o=n.fullPointer,i=r.fullPointer.reverse(),s=L(this.document,i);return o=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(o,t(i)),n.ptrs=o,n.document=s,n.compute("index"),a&&(n.ptrs=void 0),e?n.toView(o):(this.ptrs=[],n.none())}};$.delete=$.remove;var S=$;const M={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};M.deHyphenate=M.dehyphenate,M.toQuotation=M.toQuotations;var J=M;var H={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),K=new Set(["freq","frequency","topk","repeats"]),U=new Set(["alpha","alphabetical"]);var q={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return W.has(e)&&(e="sequential"),U.has(e)&&(e="alpha"),K.has(e)?(a=H.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof H[e]?(a=a.sort(H[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){if(e.length>0){let t=e[e.length-1],n=t[t.length-1];!1===/ /.test(n.post)&&(n.post+=" ")}return e=e.concat(t)};var Q={concat:function(e){if("string"==typeof e){let t=this.fromText(e);if(this.found&&this.ptrs){let e=this.fullPointer,n=e[e.length-1][0];this.document.splice(n,0,...t.document)}else this.document=this.document.concat(t.document);return this.all().compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.docs),e.all()}(this,e);if(t=e,"[object Array]"===Object.prototype.toString.call(t)){let t=R(this.document,e);return this.document=t,this.all()}var t;return this}};var _={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const Z=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},G,B,S,J,q,Q,_);var Y=function(e){Object.assign(e.prototype,Z)};const X={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const re=/'/,ae=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(re)[0];if(ae.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null};var le=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ge=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,me=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,pe=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],r=n.text.match(ge);return null!==r?!0===n.tags.has("PhoneNumber")||pe.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(me),null!==r?[r[1],"to",r[4]]:null)};const be=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,ve=new Set(["st","nd","rd","th","am","pm","max","°","s","e"]);var ye=function(e,t){let n=e[t].text.match(be);if(null!==n){let e=n[2].toLowerCase().trim();return ve.has(e)?null:[n[1],e]}return null};const we=/'/,ke=/^[0-9][^-–—]*[-–—].*?[0-9]/,Pe=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ie={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},Ae={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},je=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=je(o,r[s],l,u);!c&&Ie.hasOwnProperty(u)&&(c=Ie[u](r,s,t)),!c&&Ae.hasOwnProperty(l)&&(c=Ae[l](r,s)),c?(c=Ee(c,e),ne(n,[i,s],c),Pe(n[i],e,s,c.length)):ke.test(r[s].normal)?(c=fe(r,s),c&&(c=Ee(c,e),ne(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),Pe(n[i],e,s,c.length))):(c=ye(r,s),c&&(c=Ee(c,e),ne(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))};var De={model:te,compute:{contractions:Ne},hooks:["contractions"]};var xe=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e){return o([s],i[e],n,!1,"1-lexicon-alias"),!0}}if(!0===Ce.test(l)){let e=l.replace(Ce,"");if(i.hasOwnProperty(e)&&e.length>3&&Te.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var Fe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}};var Ve={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}};var ze={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Ge}},compute:Fe,lib:Ve,hooks:["lexicon"]};var Be=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;let a=n.one.tokenize.splitTerms(e,r).map((e=>n.one.tokenize.splitWhitespace(e,r)));return a.map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Le=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Me=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Je=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Me(e.goNext,void 0),e.failTo=Me(e.failTo,0),e.endAs=Me(e.endAs,null),e};const He={buildTrie:function(e){const t=Be(e,this.world());return Je(t)}};He.compile=He.buildTrie;var We={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:Be(e,this.world));var r;let a=Se(this,n,t);return a=a.settle(),a}},lib:He};const Ke=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},Ue=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Ke(n,t),Object.keys(r).forEach((e=>{r[e]=Ke(r[e],t)})),{ptrs:n,byGroup:r}},qe=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&qe(e)&&!0===e.isView,Qe=e=>e&&qe(e)&&!0===e.isNet,_e=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Ze={matchOne:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(Qe(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=_e(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ue(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e);if(Qe(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=_e(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ue(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Re(e)){return e.fullPointer.length>0}if(Qe(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=_e(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=_e(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=_e(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}};var Ye={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Xe=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},tt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Xe(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Xe(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var rt=nt;const at=Object.assign({},Ze,Ye,rt);at.lookBehind=at.before,at.lookBefore=at.before,at.lookAhead=at.after,at.lookAfter=at.after,at.notIf=at.ifNo;var ot=function(e){Object.assign(e.prototype,at)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?r.push(e):r=r.concat(e.split(lt))})),r=ct(r),r};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,gt=/&&/,mt=new RegExp(/^<\s*(\S+)\s*>/),pt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),bt=e=>e.charAt(0),vt=e=>e.substring(1),yt=e=>e.substring(0,e.length-1),wt=function(e){return e=vt(e),e=yt(e)},kt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ft(e)&&(n.end=!0,e=yt(e)),"^"===bt(e)&&(n.start=!0,e=vt(e)),("["===bt(e)||"]"===ft(e))&&(n.group=null,"["===bt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===bt(e))){const t=mt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=yt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=yt(e)),"?"===ft(e)&&(n.optional=!0,e=yt(e)),"!"===bt(e)&&(n.negative=!0,e=vt(e)),"~"===bt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===bt(e)&&")"===ft(e)){gt.test(e)?(n.choices=e.split(gt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=vt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=yt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>kt(e,t))))),e=""}if("/"===bt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===bt(e)&&"}"===ft(e)){if(e=wt(e),n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.sense=e[2])}return n}if("<"===bt(e)&&">"===ft(e))return e=wt(e),n.chunk=pt(e),n.greedy=!0,n;if("%"===bt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===bt(e)?(n.tag=vt(e),n.tag=pt(n.tag),n):"@"===bt(e)?(n.method=vt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var Pt=kt;const It=/[a-z0-9][-–—][a-z]/i;var At=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&It.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e};const jt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},Et=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Nt=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var Dt=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(jt(e,t)):"Noun"===e.pos?n=n.concat(Et(e,t)):"Adjective"===e.pos&&(n=n.concat(Nt(e,t))):(n=n.concat(jt(e,t)),n=n.concat(Et(e,t)),n=n.concat(Nt(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))};var xt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e};var Ct=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=ht(e);return r=r.map((e=>Pt(e,t))),r=At(r,n),r=Dt(r,n),r=xt(r),r};const Tt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ot=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),$t=(e,t)=>-1!==e.pre.indexOf(t),St={hasQuote:e=>Gt.test(e.pre)||Vt.test(e.post),hasComma:e=>Lt(e,","),hasPeriod:e=>!0===Lt(e,".")&&!1===Lt(e,"..."),hasExclamation:e=>Lt(e,"!"),hasQuestionMark:e=>Lt(e,"?")||Lt(e,"¿"),hasEllipses:e=>Lt(e,"..")||Lt(e,"…")||$t(e,"..")||$t(e,"…"),hasSemicolon:e=>Lt(e,";"),hasColon:e=>Lt(e,":"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>zt.test(e.post)||zt.test(e.pre),hasDash:e=>Bt.test(e.post)||Bt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};St.hasQuotation=St.hasQuote;var Mt=St;let Jt=function(){};Jt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.id&&t.id===e.id)return!0;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Ft(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Mt[t.method]&&!0===Mt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}if(void 0!==t.chunk)return e.chunk===t.chunk;if(void 0!==t.switch)return e.switch===t.switch;if(void 0!==t.machine)return e.normal===t.machine||e.machine===t.machine||e.root===t.machine;if(void 0!==t.sense)return e.sense===t.sense;if(void 0!==t.fastOr){if(t.pos&&!e.tags.has(t.pos))return null;let n=e.root||e.implicit||e.machine||e.normal;return t.fastOr.has(n)||t.fastOr.has(e.text)}return void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Jt(e,t,n,r))):t.choices.some((t=>Jt(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Ht=Jt;const Wt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){Kt(e,e.t).length=r-e.t}return e.t=r,!0};const qt=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Ht(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Ht(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup){Kt(e,e.t).length+=r}if(!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null};var _t=function(e,t,n){let r=0;for(let a=e.t;ar)&&(e.t+=r,!0))};var Zt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Ht(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];if(n){if(Ht(e.terms[e.t],n,e.start_i+e.t,e.phrase_length))e.r+=1;else if(n.optional&&t[e.r+2]){Ht(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2)}}}return n.greedy?_t(e,r,t[e.r+1]):(e.t+=1,!0)};var Yt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Ht(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Ht(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var Xt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null};var en=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}};var tn=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;if(n.optional&&t[e.r+1]&&n.negative)return!0;if(n.optional&&t[e.r+1]&&Yt(e),r.implicit&&e.terms[e.t+1]&&en(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Xt(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Kt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0};var nn=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy)if(void 0===e.choices||"or"!==e.operator)if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything)if(!0!==Wt(e,a))if(e.negative){if(!Zt(a))return null}else if(!0!==Ht(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else{if(!tn(a))return null}else{if(!tn(a))return null}else{if(e.negative&&e.anything)return null;if(!tn(a))return null}else{if(!Qt(a))return null}else{if(!Rt(a))return null}else{if(!Ut(a))return null}}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}};var rn=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}};var an=function(e,t,n){return e=e.filter((e=>{let[r,a,o]=e.pointer,i=n[r].slice(a,o);for(let e=0;e{e.groups[n][0]=t})),e},sn=function(e,t,n){let r=nn(e,t,0,e.length);return r?(r=on(r,n),r):null};var ln=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=sn(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),t.notIf&&(i=an(i,t.notIf,e)),i=rn(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i};var un={api:ot,methods:{one:{termMethods:Mt,parseMatch:Ct,match:ln}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const cn=/^\../,hn=/^#./,dn=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),cn.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var gn={html:function(e){let{starts:t,ends:n}=dn(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(pn,""),bn.test(a)&&(a=" "),a=a.replace(fn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(pn,""),a="-"===a?" ":a.replace(mn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&vn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},wn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};wn.clean=wn.normal,wn.reduced=wn.root;var kn=wn;let Pn=[],In=0;for(;In<64;)Pn[In]=0|4294967296*Math.sin(++In%Math.PI);function An(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(In=i=0;In>4]+Pn[i]+~~o[In|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const jn={text:!0,terms:!0};let En={case:"none",unicode:"some",form:"machine",punctuation:"some"};const Nn=function(e,t){return Object.assign({},e,t)},Dn={text:e=>yn(e,{keepPunct:!0},!1),normal:e=>yn(e,Nn(kn.normal,{keepPunct:!0}),!1),implicit:e=>yn(e,Nn(kn.implicit,{keepPunct:!0}),!1),machine:e=>yn(e,En,!1),root:e=>yn(e,Nn(En,{form:"root"}),!1),hash:e=>An(yn(e,{keepPunct:!0},!1)),offset:e=>{let t=Dn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};Dn.sentences=Dn.sentence,Dn.clean=Dn.normal,Dn.reduced=Dn.root;const xn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},jn,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&Dn[o]&&(a[o]=Dn[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};xn.data=xn.json;var Cn=xn;var Tn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};var On={green:e=>"[32m"+e+"[0m",red:e=>"[31m"+e+"[0m",blue:e=>"[34m"+e+"[0m",magenta:e=>"[35m"+e+"[0m",cyan:e=>"[36m"+e+"[0m",yellow:e=>"[33m"+e+"[0m",black:e=>"[30m"+e+"[0m",dim:e=>"[2m"+e+"[0m",i:e=>"[3m"+e+"[0m"};var Fn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(On.blue("\n ──────")),t.forEach((t=>{console.log(On.blue("\n ┌─────────")),t.forEach((t=>{let r=[...t.tags||[]],a=t.text||"-";t.sense&&(a=`{${t.normal}/${t.sense}}`),t.implicit&&(a="["+t.implicit+"]"),a=On.yellow(a);let o="'"+a+"'";if(t.reference){let n=e.update([t.reference]).text("normal");o+=` - ${On.dim(On.i("["+n+"]"))}`}o=o.padEnd(18);let i=On.blue(" │ ")+On.i(o)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return On[n](e)}))),e.join(", ")}(r,n);console.log(i)}))}))};var Gn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(On.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(On.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(On.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(On.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))};var Vn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${On.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))};var zn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(Tn(t),t):(!1!==e.tags&&(Fn(t),console.log("\n")),!0===e.chunks&&(Gn(t),console.log("\n")),!0===e.highlight&&(Vn(t),console.log("\n")),t)};const Bn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Ln=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()},wrap:function(e){return Ln(this,e)}};var Sn=$n;var Mn={text:function(e){let t={};var n;if(e&&"string"==typeof e&&kn.hasOwnProperty(e)?t=Object.assign({},kn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e)),void 0===t.keepSpace&&this.pointer&&(t.keepSpace=!1),void 0===t.keepPunct&&this.pointer){let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}return void 0===t.keepPunct&&(t.keepPunct=!0),void 0===t.keepSpace&&(t.keepSpace=!0),function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Un=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var qn=function(e,t){let n=Un(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r};var Rn=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n};var Qn={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>Kn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n};var Yn=function(e,t){let n=Un(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>Kn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},er=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},tr={union:function(e){e=Xn(e,this);let t=_n(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)}};tr.and=tr.union,tr.intersection=function(e){e=Xn(e,this);let t=Yn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)},tr.not=function(e){e=Xn(e,this);let t=Zn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)},tr.difference=tr.not,tr.complement=function(){let e=this.all(),t=Zn(e.fullPointer,this.fullPointer);return t=er(t,this.document),this.toView(t)},tr.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=_n(e,[t])})),e=er(e,this.document),this.update(e)};var nr=function(e){Object.assign(e.prototype,tr)},rr={methods:Qn,api:nr};var ar=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const or=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var ir=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.notIf&&(e.notIf=n(e.notIf,{},t)),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(or(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(or(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=or(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e};var sr=function(e,t){e=ir(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}};var lr=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))};var ur=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>{if(0===e.wants.length)return!0;return e.wants.filter((e=>r.has(e))).length>=e.minWant}))}))};var cr=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o};var hr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=lr(a,t.hooks);return o=ur(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),cr(o,e,a,n,r)};var dr=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===dr(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag&&l)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))}))},mr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:ar,methods:{one:{buildNet:sr,bulkMatch:hr,bulkTagger:gr}}};const pr=/ /,fr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},br=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,"[33m[3m"+a+"[0m").padEnd(24)} [32m→[0m #${t.padEnd(22)} ${(e=>"[3m"+e+"[0m")(n)}`)})(e,t,a),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),pr.test(t))!function(e,t,n,r){let a=t.split(pr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),br(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nvr(e,t,n,r)))};var yr=vr;var wr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>kr({id:e}))),t}return[kr({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},jr=e=>"[object Array]"===Object.prototype.toString.call(e),Er=e=>(e=e||"").trim(),Nr=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||Pr.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Ir(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=kr({});return e.forEach((e=>{if((e=kr(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(Ar(t=e).forEach(kr),t);var t},Dr=function(e,t){let n="-> ";t&&(n=(e=>"[2m"+e+"[0m")("→ "));let r="";return Ar(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>"[31m"+e+"[0m")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},xr=function(e){let t=Ar(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Cr={text:Dr,txt:Dr,array:xr,flat:xr},Tr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Dr(e,!0)),null):Cr.hasOwnProperty(t)?Cr[t](e):e},Or=e=>{Ar(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Fr=/\//;let Gr=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Er(e),!Fr.test(e)){let t=this.json.children.find((t=>t.id===e));return new Gr(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||kr({});return new Gr(t)}add(e,t={}){if(jr(e))return e.forEach((e=>this.add(Er(e),t))),this;e=Er(e);let n=kr({id:e,props:t});return this.json.children.push(n),new Gr(n)}remove(e){return e=Er(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Ar(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Ar(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return Ar(this.json)}fillDown(){var e;return e=this.json,Ar(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else jr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Or(this.json);let e=Ar(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Or(this.json),Tr(this.json,e)}debug(){return Or(this.json),Tr(this.json,"debug"),this}};const Vr=function(e){let t=Nr(e);return new Gr(t)};Vr.prototype.plugin=function(e){e(this)};var zr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Hyphenated:"cyan",Adverb:"cyan"};const Br=function(e){if(zr.hasOwnProperty(e.id))return zr[e.id];if(zr.hasOwnProperty(e.is))return zr[e.is];let t=e._cache.parents.find((e=>zr[e]));return zr[t]};var Lr=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:Br(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const $r=function(e){return e?"string"==typeof e?[e]:e:[]};var Sr=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=$r(e[t].children),e[t].not=$r(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e};var Mr=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Sr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Vr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return Lr(n)},Jr={one:{setTag:yr,unTag:wr,addTags:Mr}};const Hr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Wr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Hr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Hr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){e=e.replace(/^#/,"");let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var Kr=Wr;var Ur=function(e){Object.assign(e.prototype,Kr)};var qr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const Rr=new Set(["Auxiliary","Possessive"]);var Qr=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Rr.has(e)||!t.hasOwnProperty(n))return 1;if(Rr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},_r={model:{one:{tagSet:{}}},compute:{tagRank:Qr},methods:Jr,api:Ur,lib:qr};const Zr=/([.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s)/g,Yr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s$/,Xr=/((?:\r?\n|\r)+)/;var ea=function(e){let t=[],n=e.split(Xr);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const oa={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},ia=RegExp("("+Object.keys(oa).join("|")+")","g"),sa=RegExp("("+Object.values(oa).join("|")+")","g"),la=function(e){if(!e)return!1;let t=e.match(sa);return null!==t&&1===t.length};var ua=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var ja=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Ia);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=wa(n),n=va(n),n=n.filter((e=>e)),n};const Ea=/\p{Letter}/u,Na=/[\p{Number}\p{Currency_Symbol}]/u,Da=/^[a-z]\.([a-z]\.)+/i,xa=/[sn]['’]$/;var Ca=function(e,t){let{prePunctuation:n,postPunctuation:r,emoticons:a}=t.one,o=e,i="",s="",l=Array.from(e);if(a.hasOwnProperty(e.trim()))return{str:e.trim(),pre:i,post:" "};let u=l.length;for(let e=0;e(s=e||"",""))),e=o,i=""),{str:e,pre:i,post:s}};var Ta=(e,t)=>{let{str:n,pre:r,post:a}=Ca(e,t);return{text:n,pre:r,post:a,tags:new Set}};var Oa=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")};var Fa=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Ga=/([A-Z]\.)+[A-Z]?,?$/,Va=/^[A-Z]\.,?$/,za=/[A-Z]{2,}('s|,)?$/,Ba=/([a-z]\.)+[a-z]\.?$/;var La=function(e){return function(e){return!0===Ga.test(e)||!0===Ba.test(e)||!0===Va.test(e)||!0===za.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var $a=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Fa(r),r=n(r,t),r=La(r),e.normal=r};var Sa=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map((e=>i(e,r))),n.forEach((e=>{$a(e,t)})),n})),e};const Ma=/[ .][A-Z]\.? *$/i,Ja=/(?:\u2026|\.{2,}) *$/,Ha=/\p{L}/u,Wa=/^[A-Z]\. $/;var Ka={one:{killUnicode:Oa,tokenize:{splitSentences:pa,isSentence:function(e,t){if(!1===Ha.test(e))return!1;if(!0===Ma.test(e))return!1;if(3===e.length&&Wa.test(e))return!1;if(!0===Ja.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},splitTerms:ja,splitWhitespace:Ta,fromString:Sa}}};var Ua={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let qa={},Ra={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{qa[t]=!0,Ra[t]="Abbreviation",void 0!==e[1]&&(Ra[t]=[Ra[t],e[1]])}))}));var Qa=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out","ex"].reduce(((e,t)=>(e[t]=!0,e)),{});let _a={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Za={};Object.keys(_a).forEach((function(e){_a[e].split("").forEach((function(t){Za[t]=e}))}));const Ya=/\//,Xa=/[a-z]\.[a-z]/i,eo=/[0-9]/;var to=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),Ya.test(n)&&!Xa.test(n)&&!eo.test(n)){let t=n.split(Ya);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const no=/^\p{Letter}+-\p{Letter}+$/u;var ro=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),no.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var ao=function(e){let t=e.docs,n={};for(let e=0;elo(e,to),machine:e=>lo(e,ro),normal:e=>lo(e,$a),freq:ao,offset:oo,index:io,wordCount:so},methods:Ka,model:{one:{aliases:Ua,abbreviations:qa,prefixes:Qa,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},prePunctuation:{"#":!0,"@":!0,_:!0,"°":!0,"":!0,"":!0,"":!0,"\ufeff":!0},postPunctuation:{"%":!0,_:!0,"°":!0,"":!0,"":!0,"":!0,"\ufeff":!0},lexicon:Ra,unicode:Za,emoticons:{"<3":!0,"3":!0,"<\\3":!0,":^P":!0,":^p":!0,":^O":!0,":^3":!0}}},hooks:["alias","machine","index","id"]};var co={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const ho=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var go=function(e){e.prototype.autoFill=ho};var mo=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const po={safe:!0,min:3};var fo={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},po,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=mo(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}};var bo={model:{one:{typeahead:{}}},api:go,lib:fo,compute:co,hooks:["typeahead"]};b.extend(ee),b.extend(Wn),b.extend(un),b.extend(rr),b.extend(_r),b.plugin(De),b.extend(uo),b.plugin(k),b.extend(We),b.extend(bo),b.extend(ze),b.extend(mr);var vo={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},yo={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Tb0Pc0Nd0Je0Hg0BhWjeez,lTmSnQoKpHshGtFuCvoi0Vw6y0;a4e3i1u0;ck,p;k00p0;ee,pee;ah,p,s;!a,y;ahoo,h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;gh,h0;! 0h,m;huh,oh;here nOsk,ut tut;eesh,hh,it,oo;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;! 0h;h1my go0w1;d,sh;ell;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBeAi8o2u0;h,mph,rra0zzB;h,y;ly1o0;r5y8;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww,xcuse me;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;mon,o0;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh,ye;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦dick0gre0ones,records;ens","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦its,my,none,our0;!s","Noun|Verb":"true¦0:94;1:8F;2:7M;3:8Z;4:99;5:8S;6:7Y;7:6Y;8:8T;9:8C;A:9E;a8Ub80c6Ud65e5Vf58g4Zh4Qi4Ij4Fk4Cl40m3On3Ko3Hp2Hques8Wr1Ss0FtZuXvSwEyDzB;ip,oB;ne,om;awn,e5Uie5N;aLeJhGiEoCrB;ap,e8U;nd0rB;k,ry,sh4Yth;ck,nBpe,re,sh;!d,g;e7IiB;p,sB;k,t1;aBed;r,th0;it,lk,rCsBt3ve,x;h,te;!ehou2raA;aEiDoB;iBm9te,w;ce,d;be,ew,s9;cuum,l3X;pBr6;da5gra5Tlo5P;aOeNhrMiLoJrEuCwiBy5E;n,st;nBrn;e,n70;aDeCiBot,u8;bu5ck44gg0m,p;at,k,nd;ck,de,in,nsBp,v6W;f0i7Z;ll,ne,p,r4Gss,t8CuB;ch,r;ck,de,e,le,me,p,re;e5Cow,u8;ar,e,ll,mp0st,xt;g,lBng1rg70s5x;k,ly;a0Lc0Ge0Dh08i06k04l02m01n00ou7CpUqua6UtIuDwB;ea7HiB;ng,pe,t3;bEit,m,ppCrB;ge,pri2v2J;lBo65;e62y;!je7;aKeJiIoFrCuBy1;dy,ff,mb1;a7DeCiBo55ugg1;ke,ng;am,ss,t3;ckCop,p,rB;e,m;ing,pi1;ck,nk,t3;m,p;ck,ge,in,ke,ll,mp,nd,p1rBte,y;!e,t;aFeed,iElDot,rBur;ay,e4NinBu4;g,k1;a6Dit;ll,n,r7Hte;n,rk;ap,ee1Oow;a69e41i1o4O;eep,iBou3;ce,p,t;ateboa6WiB;!p;de,gnBp,ze;!al;aEeDiCoBuff1;ck,p,re,t,w;ft,p,v0;d,i3K;ck,de,pe,re,ve;aCed,nBrv1Et;se,t2F;l,r3t;aEhedu1o5OrB;aCeBo3L;en,w;pe,t3;le,n,r0O;cBil;k,rifi4;aXeFiEoCuB;b,in,le,n,s5E;a8ck,ll,oBpe,u5;f,t;de,ng,p,s1O;aRcQdo,el,fOgNje7lMmKnJo12pHque8sDturn,vBwa68;eBi1Z;al,r2;er6HoDpe7tCuB;lt,me;!a4N;l6Ert;air,eaBly,o4L;l,t;dezvo2Mt;aBedy;ke,rk;ea2i56;a5Vist0r53;act6Ber1No6EuB;nd,se;a2Uo5S;ch,s5T;c15ge,i2ke,lly,nBpYtY;ge,k;a03eZhXiVlRoLrCsy3uB;mp,n3rcha2sh;aIeGiFoBu48;be,ceDdu4fi1grBje7mi2p,te8;amBe69;!me;ed,ss;ce,de,nt;sBy;er5Rs;cti4i2;iFlDoCp,re,sBw0;e,i5Dt;l,p;iBl;ce,sh;nt,s5A;aCce,e2PuB;g,mp,n6;ce,nBy;!t;ck,le,nBpe,t,vot;!e;a2oB;ne,tograph;ak,eDnCrBt;fu4Lm9;!c2O;!l,r;ckGiFnErtDsCtBu2;ch,eA;s,te;!y;!ic;nt,r;!a6;bje7ff0il,oCrButli3A;b9d0ieA;ze;a48eDoB;d,tB;e,i4;ed,gle7t;aIeGiFoCuB;rd0;ck,d3Cld,nBp,uth,ve;it4VkB;ey;lk,n3Vrr4Tss,x;asu3Fn4CrBss;ge,it;il,nDp,rk3HsCtB;ch,t0;h,k;da5n0oeuv3A;aJeHiFoCuB;mp,st;aCbby,ck,g,oBve;k,t;d,n;cBft,m9nFst;en2k;aBc0He3vH;ch,d,k,p,se;bCcBnd,p,t3un3;e,k;el,o2I;eCiBno3X;ck,ll,ss;el,y;aCo1FuB;i4mp;m,zz;mpHnCr3PssB;ue;cr1Hdex,fluEha1k,se25teBvoi4;nt,rB;e8fa4viB;ew;en4;a7le1Y;aGeEiDoCuB;g,nt;l2Wno21ok,p,r2u2;ghlight,ke,re,t;aBd6lp;d,t;ck,m,ndCrBsh,te;b3Im,ne3Xve8;!le;aIloHossGrDuB;arBe3Un;antee,d;aCiBou2Pumb1;nd,p;de,sp;ip;ss,w;in,me,ng,s,te,ze;aWeTiOlLoHrDuB;ck,el,nBss,zz;c2Wd;aCoBy;st,wn;cBgme,me;tu1V;cDg,il,ld,rB;ce,e20mB;!at;us;aCe1Wip,oBy;at,ck,od,w;g,ke,me,re,sh,vo18;eEgDlCnBre,sh,t,x;an4i1S;e,m,t0;ht,u1K;ld;aCeBn4;d,l;r,tu1G;ce,il,ll,rm,v2L;cho,d6ffe7nJsHxDyeB;!baB;ll;cDerci2hib9pBtra7;eriBo0Q;en4meA;el,han6u2;caBtima5;pe;count0d,vy;aXeQiKoHrCuBye;b,el,mp,plica5;aEeDiCoB;ne,p;ft,nk,p,ve;am,ss;ft,g,in;cCd6ubt,wnloB;ad;k,u09;p,sDt3vB;e,iBor4;de;char6h,liCpB;at3lFu5;ke;al,ba5cFfeElDma16pos9siCtaB;il;gn,re;ay;at,ct;li01rB;ea2;b,ma6n4rBte;e,t;a0Bent0Ah03irc1l00oHrDuB;be,e,rBt;e,l,ve;aDeCoBu0Iy;p,ss,wd;d9ep;ck,ft,sh;at,de,in,lRmKnDpy,re,st,uBv0;gh,nBp1;sZt;ceFdu7fli7glomeGsDtBveL;a7rB;a8ol;eAtru7;ct;ntBrn;ra5;bFfoEmDpB;leBou0Fromi2;meA;a0DeAit,u5;rt;at,iB;ne;lap2oB;r,ur;aCiB;ck,p;im,w;aCeBip;at,ck,er;iEllen6nCrB;ge,m,t;ge,nB;el;n,r;er,re;ke,ll,mp,noe,pDrTsCt3u2ve;se;h,t;!tuB;re;aYeUiTlQoMrEuBypa0U;bb1ck1dgCff0mp,rBst,zz;den,n;et;anHeFiDoadCuB;sh;ca8;be,d6;ge;aBed;ch,k;ch,d;aDg,mb,nCoBtt1x,ycott;k,st,t;d,e;rd,st;aCeBitz,oTur;nd;me;as,d,ke,nd,opsy,te;aDef,lt,nBt;d,ef9;it;r,t;ck,il,l04nFrgDsCtt1;le;e,h;aBe;in;!d,g,k;c01dXge,iWlTnRppOrKsGttEucCwaB;rd;tiB;on;aBempt;ck;k,sB;i8ocia5;te;st;chCmB;our;!iB;ve;eCroa3;ch;al;chBg0sw0;or;aCt0;er;rm;d,m,r;dreDvB;an4;ce;ss;cBe,he,t;eDoB;rd,uA;nt;nt,ss",Actor:"true¦0:44;1:3A;2:4C;3:45;4:4B;a3Rb38c2Fd23e20f1Sg1Ih1Di19journa3Ml16m0Un0Po0Np04qu02rXsGtCunBvAw6yo5;gi,utub0;e7i6o5r1O;m1rk0;nn0t10;atherm1ld0;eterina19ip;c3Wder1I;aoisea0We6herapi3iktok0r5;anscriRo20;chn5st0;i1RoU;aiKcJeIhowHiFki0oDpCt9u6wee5;p0theart;lt1per6r5;f0ge2Y;intenWv3V;aff0ep6r5;ang0eam0;fa12mo12;ecia32okesp2S;l5me3Kn;di0oi3;ng0s5;sy,t0;girl,m1runn0;cretary,rgea3V;hol2OiQreen0Yulpt2;l2nt;a8e5oof0unningA;c5port0searJver2Q;e5ru0V;ptio1W;bbi,pp0;arter5een;back;aMerform0hLlIoEr6sycho5;logi3;actit1Oe9i7o5;duc0fess2gramm0s5;pe12titu2T;est2Lme miniVnce5;!ss;a6si5;de3D;ch0;dcaQet,li5rnst25;c10tic5;al sci5i1;enti3;a5umb0;nn0y5;er,wright;armaci3otograph0ysi0L;i1Nnel24st2tL;ffic0p5rganiz0;er4tometri3;anny,e7o6u5;n,rse;bo2Jvi6;i5phew;ce;aCeBi8o6u5;m6si0B;m5nk,th0;!my;ni6s5;sus,t0;st0;chan0Lrcha2O;gi7k0nag0t5y2;riar5;ch;ci1stra1W;a6e0Wieutena2Jo5;rd,s0;bor0dy,urea1Twy0;dol,llu29n5;s5vestig4;peZt5;a0EruY;air8ero7isto6o5ygie0J;ste29usekE;ri1;!ine;dress0sty19;arden0eDhostBirl15o8rand5uru;fa6m5pa;a,o5;th0;al5d,lf0;ie,k5te16;eep0;wr5;it0;isha,ntlO;aBella,i7ore6r5;eela1Ii0V;m1st0;g7lmm0Fnanci0r5tt0;e5st la1E; marsh1Kfig5m1;ht0;rm0th0;dit2lectri6mcee,x5;amin0cellency;ci1;aEe9i6riv0u5;de,tche1J;eti6re5;ct2;ci1ti1;a8cor4fenc7put6sign0tecDvel5;op0;ee,y;em1;c05l0;d5nc0rling;!dy;aSeRfo,hLlIo8rit7u5;r4stomer representa5;tive;ic;lCm9n6ordin4rpor0Yu5wboy;nciKri0;gressKs6tro5;ll0;tab0Kul11;edi1m5pos0;a04iss5;ion0;onel,um5;ni3;e5own;an0r5;ic,k;a7e5;erle5f;ad0;ir6nce5plC;ll2;m1wE;lebrity,o;det,pt8r5shi0;et6pe5;nt0;ak0;ain;aJeatbox0iHlogg0oyFrCu5;ddhi3ild0rglAsiness5;m1p6w5;om1;ers5;on;an;ar;i6o5;!k0th0;cklay0de,gadi0;!fri5;end;cyc5sL;li3;nk0r5;b0on6te5;nd0;!eX;cUdNgeYnHpostGrDsBt7u5yatullah;nt5th2;!ie;h6t5;endaUorney;ie3le5;te;sisQtron5;aut,om0;chbis6tis5;an,t;hop;le;aly3im4nou7y5;bo5;dy;nc0;er;st;mi6v5;is2;ni6r5;al;str4;at2;or;coun7t5;or,re5;ss;ta5;nt",Uncountable:"true¦0:28;1:2R;2:2F;3:35;4:2W;a2Qb2Hc26d1Xe1Nf1Hg19h12i0Xjewel15k0Vl0Qm0Gn0Eo0Dp04rZsMtBv9w5you guys;a7hisky,i6oo5;d,l;ldlife,ne;rmAt2;ernacul25i5;neg24ol1Ktae;eEhCime off,oBr6un5yranny;a,gst15;aff2Jea1Go6ue nor5;th;o07u5;ble5se1Ot;!shoot1;night,othpas1P;er5und2;e,mod2O;a,nnis;aFcEeDhBilk,kiAo9p8t6u5weepstak0;g1Rnshi2Dshi;ati08e5;am,el;ace2Geci0;ap,cc2meth1;n,ttl0;eep,ingl0o5;pp1r18;lf,na1Cri0;ene0Disso18;d0Sfe4l5nd,t0F;m1St;a8e6ic5;e,ke12;c5ins,laxa0Zsearch;ogni0Yrea0Y;bi0in;aBeAhys9last1So7re5;amble,mis0s5ten1W;en1Vsu0H;l5rk;i24yH; 14i3;a20tr0A;nt5ti0J;i0s;bstetri3vercrowd1xyg04;a5ews;il polXtional securi4;aCeAo7u5;m5s1F;ps;n5o1I;ey,o5;gamy;a5cha0Drchandi1Ftallurgy;sl0t;chine5thema1O; learn1ry;aught2e8i7ogi6u5;ck,g11;c,s1K;ce,ghtn1nguis1JteraTv2;ath2isuTss;ara0CindergartMn5;icke08owled0X;ce,gnor8mp7n5;forma02ter5;net,sta08;atiUort5rov;an19;a8eListo7o5ung2;ckey,mework,ne5rserad9spitali4use arrest;s4y;ry;ir,lib03ppiJs5;h5te;ish;ene9l7o6r5um,ymnas13;aGe03;lf,re;ut5yce0J;en; 5ti3;edit1po5;ol;aQicJlour,o7urni5;tu5;re;od,rgive5uri2wl;ne5;ss;cono0MducaDlectrBn9quipAthi3very8x5;ist6per5;ti0C;en0K;body,o09th1;joy5tertain5;ment;ici4o5;ni3;tiU;eBi8o6raugh5ynas4;ts;pe,wnstai5;rs;abet0s5;hon01repu5;te;b5miX;ut;aEelciDhBivi3l9o5urrency;al,ld w7n5ral,ttJuscoC;fusiIt 5;ed;ar;assi3oth0;es;aos,e5;eNw1;us;d,rP;aAi8lood,read7u5;nt1tt2;er;!th;lliarKs5;on;g5ss;ga5;ge;cLdviKeroHirGmCn7ppeal court,rithmet6spi5thleM;rin;ic;i8y5;o6th1;ing;ne;se;en7n5;es4;ty;ds;craft;bi3d5nau9;yna5;mi3;ce;id,ous5;ti3;cs","Person|Noun":"true¦a07b01cYdRePfOgMhJjFkiElDmBolive,p7r4s3trini00v1wa0;ng,rd;an,enus,iol0;a,et;ky,on5umm02;ay,e1o0uby;bin,d,se;ed,x;a2e0ol;aHn0;ny;ge,tM;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4O;1:4M;2:3Y;3:47;4:42;5:4Q;6:4C;a46b3Qc2Wd2Ie2Cf25g1Zh1Oin1Lj1Kk1Jl1Dm17n15o10p0Iqu0Hr07sUtIuFvAw7x 4B;a7ha2Y;f2i3Vt08y7;! arou2M;arAe8o7;cabu3Ol4F;gKr7;di43t1F;iety,n3S;p2Dr8s 7;do3As4H;bani1in0; rex,aHeGhingFiDoCr9u8v7;! show;m23n4rntIto0Y;agedy,ib7o3K;e,u7;n0ta3D;p4rq2V;c,er,m7;etC;!y;am,mp2Q;ct4le5x return;aIcHeGhor3Wi1kEoDpin off,tBu9y7;ll7n1Rst3Z;ab29;b7nri13per bowl,rro1I;st2Vtot0;at2Mipe1Wo14rate3Oudent7;! lo09;ft ser3Smeo12;elet6i7;ll,rm33;ab0Scurity gu22min2N;e5ho2C;la2Undwi0Fpi6;av6eBhetor4i8o7;de5om,w;t8v7;erb0M;e,u0;bAc9f7publ4r0Mspi1;er7orm2;e5r0;it0ord label;a1u3G;estion mark,ot1V;aMeJhotocoSiGlEoCr8u7yram11;ddi2SpCrpo0Hs2U;e9o7;bl39s7;pe2Uta1;diction,mi0Droga35ss relea0D;p7rt0;py;a7ebisci1;q1Ste;cn4e8g7;!gy;!r;anut,d8r7t0;cen2Usp2V;al,est0;nop3r28t7;e,hog6;bj2Rc8pia1rde0thers,ve7wn2;n,rview;cu8e7;an;pi2;arra2Nit1Oot7umb2;a1Uhi25;aAe9i8o7ur0é07;nopo3pOrni23sq1Bti2L;li0On03tt6;d4nu,t0;mm0nd0Tte7yf3;ri0;aAegBi9u7;ddi1n7;ch;ght bulb,p03ving room;bor0Ty7; up;eyno1itt6;el3ourn0;c8dices,itia27ni1Qse1Vtel0Dvert7;eb17;en25i2E;aGeaDighBo7uman right;me8sp15tb7;ed;! r7;un; scho0Ori7;se;d7v6; start,pho7;ne;ndful,sh brown,v6ze;aAelat09laci2r8u7;l3y;an7enadi2id;a0Yd slam;df3r7;l4n12;aCet11iref3lBol3r8un7;er0;ee market,i8on7;ti2;ga1;ow2u1;br4mi3n0Q;conoBffi1Bgg,lecto0Hmbas11nApidem4s1Lth4ven9x8yel7;id;ampRempl0Dte5;i0Wt;er17;my;eHiCo9r7ump truck;agonf3i7;er,ve thru;c8g12i3or,ssi2wn7;side;to06umenA;aAgni9nn2s8vide7;nd;conte5incen12tri0Q;ta09;le0O;ath,c8f7ni0terre5;ault Zerr0;al,im0;aSeQhJiIlHoBr7;edit c9uc7;ib7;le;ard;efficBke,lAmmuniqIns8pi2rr0t0Pus7yo1;in;erv7uF;atoW;ic,lM;ie5;er0Gie5;ty,vil wJ;aBeqAick6oco9r7;istmas car7ysanthemum;ol;la1;ue;ndeli2racter7;ist4;iliVllBr7;e0tifica1;hi2naDpCrAt7ucus;erpi7hedr0;ll7;ar;!bohyd7ri2;ra1;it0;l,ry;aIeHlemGoEreakCu7;nAr7tterf3;g7i0;la7;ry;ny;fa7thro9;st;dy,ro7wl;ugh;ish;an,l3;nki9r7;!ri2;er;ng;cPdJlFnCppeti1rBs9tt4utop7;sy;ic;ce5pe7;ct;ray;ec8oma3ti8;ly;do1;i6l7;er7y;gy;en; hominBj8van7;tage;ec7;ti7;ve;em;cAe8qui7;tt0;ta1;te;i8ru0;al;de5;nt",Preposition:"true¦-,aPbMcLdKexcept,fIinGmid,notwithstandiWoDpXqua,sCt7u4v2w0;/o,hereSith0;! whHin,oW;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h1ill,oward0;!s;an,r0;ough0u;!oM;ans,ince,o that,uch G;f1n0ut;!to;!f;! 0to;effect,part;or,r0;om;espite,own,u3;hez,irca;ar1e0oBy;sides,tween;ri7;bo8cross,ft7lo6m4propos,round,s1t0;!op;! 0;a whole,long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:13;1:1A;a13b0Xc0Mde0Le0Gf0Ag09h08i06ju05l03mXnVoTpOrKsDt9u6v3w2;atershed,elcome;a2ision0P;gabo5nilla,ria2;b0Mnt;ndergr2pstairs;adua0Tou2;nd;a4e2oken,ri0;en,r2;min0rori0S;boo,n;e6ilv08o4quat,ta3u2well;bordina0Mper6;b0Cndard;ciali0Nl2vereign;e,ve1;cret,n2ri0;ior;a4e2outiSubbiL;ar,bCla0Mnt0p2side1;resenta0Lublican;ci0Gsh;a5eriodic0otenti0r2;emi3incip0o2;!fession0;er,um;rall5st,tie1;ff2pposi07v0;ensi0Ei03;aggTov2;el;aUe5in4o2;biTderYr2;al,t0;iature,or;di2tr0C;an,um;attIiber0u2;sh;stice,veniM;de0mpressioQn2;cumbe1dividu0no04sta1;alf,omelBumdrum;enious,old,raZ;a5e3i2luid;ne;llow,m2;aEiJ;ir,t,vo2;riLuriL;l4pXx2;c2ecuQpeS;ess;d2iH;er;mographSrivaM;hiFlassRo3rude,unn2;ing;m5n2operaJ;creBstitue1tempor3vertab2;le;ary;m3p2;anion,lex;er3u2;ni8;ci0;e6lank,o5r2;i3u2;te;ef;ttom,urgeois;st;cademAd7l3nim0rab;al;e4terna2;ti2;ve;rt;oles2ult;ce1;nt;ic","Noun|Gerund":"true¦0:26;1:25;2:1W;3:1I;4:1Y;5:1O;a25b1Oc1Cd17en15f0Zg0Xh0Ui0Sjog20k0Ql0Mm0Jn0Ho0Dp06ques09rXsHtCuAvolunt16w6yEzo2;a8ed5i3or7r6;ap1Oest1Ci1;ki0r1O;i1r2s1Utc1U;nder6pri23;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",PhrasalVerb:"true¦0:93;1:97;2:8I;3:8W;4:8B;5:84;6:86;7:99;8:91;9:8H;A:8Y;B:8S;C:8V;D:8T;E:71;F:98;G:8Z;H:82;I:7I;J:7A;K:4H;a9Hb7Wc6Td6Ne6Lf5Jg52h4Diron0j49k42l3Gm33n30o2Yp2Equiet Hr1Zs0Lt00uYvacuu6SwOyammerBzL;ero Dip MonL;e0k0;by,ov9up;aReNhMiLor0Nrit1B;mp0n3Hpe0r5s5;ackAeel Di0U;aMiLn35;gh 3Yrd0;n Dr L;do1in,oJ;it 7Bk5lk Mrm 6Bsh Lt85v61;aw3do1o7up;aw3in,oC;rgeBsL;e 2herE;a01eZhWiSoRrNuLypQ;ckErn L;do1in,oJup;aMiLot0y 32;ckl81p F;ck HdL;e 60;n7Yp 3Gs5L;ck NdMe Lghten 6me0p o0Tre0;aw3ba4do1in,up;e Iy 2;by,oG;ink Mrow L;aw3ba4in,up;ba4ov9up;aLe 79ll64;m 2r 5O;ckBke Mlk L;ov9shit,u49;aLba4do1in,leave,o67up;ba4ft9pa6Bw3;a0Xc0Ve0Oh0Ki0Hl0Bm0An09o08p03quar5ItRuPwL;earNiL;ngMtch L;aw3ba4o8M; by;cLi6Dm 2ss0;k 66;aTeSiRoPrMuL;cKd36;aigh2Eet76iL;ke 7Tng L;al6Zup;p Lrm2G;by,in,oG;nKr 2tc4O;p F;cKmp0nd MrLveAy 2P;e Ht 2M;ba4do1up;arKeOiNlMrLurB;ead0ingBuc5;a49it 6I;c5ll o3Dn 2;ak Fe73ll0;aKber 2rt0und like;ap 5Wow Duggl5;ash 6Ooke0;eep OiLow 6;cMp L;o6Eup;e 69;in,oL;ff,v9;de1Agn 4OnLt 6Hz5;gLkE; al6Ble0;aNoLu5X;ot Lut0w 7N;aw3ba4f48oC;cKdeEk6FveA;e Qll1Ond Prv5tL; Ltl5K;do1foMin,o7upL;!on;ot,r60;aw3ba4do1in,o4Wup;oCto;al67out0rL;ap66ew 6K;ilAv5;aYeViToPuL;b 5Zle0n Lstl5;aMba4do1inLo2Jth4Ou5Q;!to;c2Xr8w3;ll Not MuL;g3IndA;a2Wf3Po7;ar8in,o7up;ng 69p oLs5;ff,p19;aLelAinEnt0;c6Id L;o3Oup;cKt0;a00eZiXlUoRrPsyc35uL;ll Nn5Lt L;aLba4do1in,oJto48up;pa4Ew3;a3Kdo1in,o22to46up;attleBess LiOop 2;ah2Fon;iMp Lr50u1Hwer 6O;do1in,o6Oup;nt0;aMuL;gEmp 6;ce u21y 6E;ck Lg0le 4Bn 6p5C;oJup;el 5OncilE;c54ir 3An0ss NtMy L;ba4oG; Hc2R;aw3ba4in,oJ;pLw4Z;e4Yt D;aMerd0oL;dAt54;il Hrrow H;aUeRiQoMuL;ddl5ll I;cKnkeyNp 6uthAve L;aLdo1in,o4Mup;l4Ow3; wi4L;ss0x 2;asur5e3TlMss L;a21up;t 6;ke Mn 6rLs2Ax0;k 6ryA;do,fun,oCsure,up;a03eWiRoMuL;ck0st I;aOc4Gg NoLse0;k Lse4E;aft9ba4do1forw38in57o10u47;in,oJ;d 6;e OghtNnMsLve 01;ten F;e 2k 2; 2e47;ar8do1in;aNt MvelL; oC;do1go,in,o7up;nEve L;in,oL;pLut;en;c5p 2sh MtchBughAy L;do1o5A;in4Qo7;eNick Mnock L;do1oCup;oCup;eMy L;in,up;l Ip L;aw3ba4do1f05in,oJto,up;aNoMuL;ic5mpE;ke3Tt H;c44zz 2;a02eXiUoQuL;nMrrLsh 6;y 2;keMt L;ar8do1;r H;lLneErse3L;d Le 2;ba4dLfast,o25up;ear,o1;de Mt L;ba4on,up;aw3o7;aLlp0;d Nl Ir Lt 2;fLof;rom;f11in,o1WuX;cKm 2nMsh0ve Lz2Q;at,it,to;d Mg LkerQ;do1in,o2Uup;do1in,oL;ut,v9;k 2;aZeUive Sloss IoNrMunL; f0S;ab hold,in44ow 2V; Lof 2J;aNb1Nit,oMr8th1JuL;nd9;ff,n,v9;bo7ft9hQw3;aw3bLdo1in,oJrise,up,w3;a4ir2I;ar 6ek0t L;aLb1Gdo1in,o1Dr8up;cMhLl2Hr8t,w3;ead;ross;d aLng 2;bo7;a0Fe08iZlVoRrNuL;ck Le2P;ar8up;eMighten LownBy 2;aw3oG;eLshe29; 2z5;g 2lNol Lrk I;aLwi22;bo7r8;d 6low 2;aMeLip0;sh0;g 6ke0mLrLtten H;e F;gSlQnOrMsLzzle0;h F;e Lm 2;aw3ba4up;d0isL;h 2;e Ll 1V;aw3fQin,o7;ht ba4ure0;eQnMsL;s 2;cNd L;fLoG;or;e D;d06l 2;cPll Lrm0t1I;aNbMdo1in,oLsho0Gth0Avictim;ff,ut,v9;a4ehi2P;pa0D;e L;do1oGup;at Ldge0nd 13y5;in,o7up;aPi1IoOrL;aMess 6op L;aw3b04in,oC;gBwB; Iubl1C;m 2;a0Bh06l03oPrMut L;aw3ba4do1oCup;ackBeep MoLy0;ss Dwd0;by,do1in,o0Vup;me OoMuntL; o2B;k 6l L;do1oG;aSbRforPin,oOtLu0P;hMoLrue;geth9;rough;ff,n,ut,v9;th,wL;ard;a4y;paLr8w3;rt;eaMose L;in,oCup;n 6r F;aOeMiL;ll0pE;ck Der Lw F;on,up;t 2;lSncel0rPsNtch MveE; in;o1Oup;h Dt L;doubt,oG;ry MvL;e 09;aw3oJ;l Lm H;aMba4do1oJup;ff,n,ut;r8w3;a0We0NiteAl0Go05rRuL;bblOckl06il0Elk 6ndl06rMsLtNy FzzA;t 01;n 0IsL;t D;e I;ov9;anXeaViMush L;oGup;ghRng L;aOba4do1forNin,oMuL;nd9p;n,ut;th;bo7lLr8w3;ong;teL;n 2;k L;do1in,o7up;ch0;arUg 6iSn5oQrOssNttlMunce Lx D;aw3ba4;e 6; ar8;e H;do1;k Dt 2;e 2;l 6;do1up;d 2;aQeed0oLurt0;cNw L;aw3ba4do1o7up;ck;k L;in,oC;ck0nk0stA; oRaOef 2lt0nd L;do1ov9up;er;up;r Mt L;do1in,oCup;do1o7;ff,nL;to;ck Qil0nNrgMsL;h D;ainBe D;g DkB; on;in,o7;aw3do1in,oCup;ff,ut;ay;ct FdRir0sk NuctionA; oG;ff;ar8o7;ouL;nd; o7;d L;do1oLup;ff,n;wn;o7up;ut",ProperNoun:"true¦barbie,c4diego,e3f2iron maiden,kirby,m0nis,riel,stevens;ercedes,i0;ckey,ssy;inn,lorence,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:76;1:64;2:6J;3:6M;4:5V;a6Bb56c4Ld4Be47f3Zg3Kh3Ci33j2Yk2Hl25m1Nn1Do1Ap0Xq0Vr0Os05tRuQvLwDxiBy9z5;a7h5i4Puri4R;a5e5ongsh0;ng3K;greb,nzib5J;ang2e5okoha3Vunfu;katerin3Krev0;a5n0R;m5Kn;arsBeAi6roclBu5;h0xi,zh5S;c7n5;d5nipeg,terth4;hoek,s1N;hi62kl3D;l66xford;aw;a8e6i5ladivost5Polgogr6N;en3lni6U;ni24r5;n2o3saill4Q;lenc4Zncouv3Vr3ughn;lan bat1Erumqi,trecht;aFbilisi,eEheDiBo9r7u5;l23n66r5;in,ku;i5ondh65;es54poli;kyo,m32ron1Rulo5;n,uS;an5jua3l2Wmisoa6Dra3;j4Wshui; hag64ssaloni2K;gucigal28hr0l av1W;briz,i6llinn,mpe59ng5rtu,shk2U;i3Hsh0;an,chu1n0p2Hyu0;aEeDh8kopje,owe1It7u5;ra5zh50;ba0It;aten is58ockholm,rasbou69uttga2Y;an8e6i5;jiazhua1llo1m5Zy0;f53n5;ya1zh4K;gh3Nt4T;att48o1Yv47;cramen18int ClBn5o paulo,ppo3Urajevo; 7aa,t5;a 5o domin3H;a3fe,m1O;antonBdie3Ffrancisco,j5ped3Qsalvad0L;o5u0;se;em,z28;lou5Bpeters27;aAe9i7o5;me,sar5t5C;io;ga,o5yadh;! de janei3H;cife,ims,nn3Lykjavik;b4Uip4lei2Knc2Rwalpindi;ingdao,u5;ez2i0R;aFeEhDiCo9r7u6yong5;ya1;eb5Aya1;a5etor3O;g53to;rt5zn0; 5la4Eo;au prin0Nelizabe26sa04;ls3Rrae5Btts28;iladelph3Inom pe1Coenix;r23tah tik3G;dua,lerZnaji,r4Qt5;na,r34;ak46des0Lm1Or6s5ttawa;a3Xlo;an,d07;a7ew5ing2Hovosibir1Lyc; 5cast38;del26orlea46taip16;g8iro4Xn5pl2Yshv35v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0Y;aFeCi9o6u5;mb2Cni28sc40;gadishu,nt6s5;c15ul;evideo,pelli1Tre31;ami,l6n16s5;kolc,sissauga;an,waukee;cca,d5lbour2Omph43ndo1Essi3;an,ell5i3;in,ín;cau,drAkass2Tl9n8r5shh4A;aca6ib5rakesh,se2M;or;i1Ty;a4EchFdal10i47;mo;id;aDeAi8o6u5vSy2;anMckn0Pdhia3;n5s angel27;d2g bea1O;brev2Ce3Mma5nz,sb2verpo29;!ss28; ma3Ai5;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Fn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd36rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Yi2H;che2d5;ianap2Mo20;aAe7o5yder2V; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Nupe;ld coa1Bthen5;bu2R;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal28es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,nkirk,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Yr es sala1KugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1P;lo7n6penhag0Ar5;do1Nk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr14;ch8sha,zh07;gliari,i9lga8mayenJn6pe town,r5tanO;acCdiff;ber19c5;un;ry;ro;aWeNhKirmingh0WoJr9u5;chareTdapeTenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iCl9ng8r5;g6l5n;in;en;aluru,hazi;fa6grade,o horizon5;te;st;ji1rut;ghd0AkFn9ot8r7s6yan n4;ur;el,r06;celo3i,ranquil08;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a04b01cc00ddis abaZgartaYhmedWizawl,lSmPnHqaZrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a8c5kaNtwerp;hora6o3;na;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aVbTcPdOeNfMgIhHiFjfk,kDlBm9new eng8or7p5s4t2u1vostok,wake is8y0;akutDyz;laanbaatar,pP;ahiti,he 0;bronx,hamptons;akhalGfo,oho,under3yd;acifUek,h0itcairn;l,x;ange county,d;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IS;1:IW;2:I5;3:I4;4:IM;5:I9;6:JD;7:GQ;8:J9;9:J5;A:HD;B:HN;C:IE;D:J2;E:II;F:H2;G:C4;H:HP;aGIbFDcDJdCSeBIfB0gAAh9Qi9Dj8Ck7Cl5Wm46n3Ko3Gp34qu33r2Bs16t0Fu0Dv03wWxiUyPzI;aMeJineb,oIsof2;e3Rf2la,ra;h3iLlJna,ynI;ab,ep;da,ma;da,h3iIra;nab;aLeKi0GolB3uJvI;etAonDH;i0na;le0sen2;el,gm3Gn,rGAs8T;aoIme0nyi;m5YyAA;aNendDRhiD8iI;dele9lKnI;if45niIo0;e,f44;a,helmi0lIma;a,ow;ka0nB;aOeLiIusa5;ck82kJlAole7viI;anGenIQ;ky,toriBE;da,lA5rIs0;a,nIoniGV;a,iFH;leInesGV;nI7rI;i1y;g9rIxGW;su5te;aZeVhSiOoMrJuIy3;i,la;acIPiIu0L;c2na,sI;hGta;nIr0H;iGya;aKffaEGnIs6;a,gtiI;ng;!nFHra;aJeIomasi0;a,l9Lo87res1;l2ndolwethu;g9Co85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe3iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlett,e0ChYiUkye,neza0oStOuJyI;bI2lvi1;ha,mayI5ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHQr5;b2fiA3m0MnIphi1;d3ia,ja,ya;er3lKmon1nJobh8MtI;a,i;dy;lEHv2;aNeJirIo0risEZy5;a,lDD;ba,e0i5lKrI;iIr6Gyl;!d8Efa;ia,lDP;hd,iNki3nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7YvI;da,inj;e0ife;en1i0ma;anA0bMd3Kh1PiBkLlKmJnd3rIs6vannaC;aCi0;ant6i3;lDEma,ome;ee0in8Ou3;in1ri0;a05e00hYiVoIuthDC;bTcSghRl8GnQsKwJxI;anAUie,y;an,e0;aJeIie,lD; merBIann8ll1marD6t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8B;hel63io;bDFer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG7oI;da,n1L;an0bKemGgi0iJnIta,y0;a86ee;han81na;a,eI;cE5kaC;bi0chJe,i0mo0nIquEFy0;di,ia;aEDelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCL;scil3LyamvaB;lly,rt2;ilome0oebe,ylI;is,lis;ggy,nelope,r5t3;ige,m0UnLo5rvaDBtJulI;a,etAin1;ricIt4T;a,e,ia;do3i07;ctav2dJfCUis6lIphCUumBYyunbileg;a,ga,iv2;eIvA9;l2tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBJkLlaKna,sIta,vi;anIha;ur;!y;a,iDNki;hoHk9SolI;a,eDE;!mh;hir,lIna,risFsreE;!a,lBO;asuMdLh2i6CnKomi8rgEJtIzanin zah3;aIhal4;li1s6;cy,etA;e9iEP;nngu30;a0Ackenz4e02iNoKrignayani,uriD8yI;a,rI;a,lOna,tH;bi0i3llBDnI;a,iI;ca,ka,qCY;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEI;!l,nB;dy,eIh,n4;nhHrva;aLdKiCKlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5EgOi,lLrI;edi77iJjem,on,yI;em,l;em,sF;an4iIliF;nIsC9;a,da;!an,han;b0DcANd0Be,g09ha,i08ja,l06n04rMsoum5YtLuJv80x9FyIz4;bell,ra,soB4;de,rI;a,eE;h8Cild1t4;a,cYgUiLjor4l7Qn4s6tKwa,yI;!aIbe6Uja9lA9;m,nBC;a,ha,in1;!aKbC6eJja,lDna,sIt62;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliACcJeduarBfern5EjIlui5W;o6Dul2;ecil2la3;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Vi75y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD6on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d2la,nI;!a,dJeBCnIsCG;!a,eBB;a,sCE;aCRcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a84i8;lIn1t7;ei;!in1;aTbb98dSepa,lNnKsJv2zI;!a,be5KetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9We;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c2t2;e2NlCB;la,nIra;a,ie,o3;a,or1;a,gh,laI;!ni;!h,nI;a,d3e,n5O;cPdon93iOkes6mi96na,rNtKurJvIxmi,y5;ern1in2;a,e53ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAFoOrKyI;lIra;a,ee,ie;istIy6B;a,en,iJyI;!na;!e,n58;nul,ri,urtnAV;aPerOlAUmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei3ongordzol;dij1w5;el7MiLjsi,lKnJrI;a,i,ri;d3na,za;ey,i,lB8s4y;ra,s6;bi7cAEdiat7EeAXiSlRmQnyakuma1BrOss6HtLvi7yI;!e,lI;a,eI;e,i8H;a6BeJhIi4MlDri0y;ar69er69ie,leErAXy;!lyn8Cri0;a,en,iIl5Qoli0yn;!ma,nGsF;a5il1;ei8Ai,l4;a,tl6I;a09eZiWoOuI;anMdLliIst61;a8DeIsF;!n9tI;!a,te;e5Hi3Iy;a,i7;!anOcelDdNelHhan7NleMni,sJva0yI;a,ce;eIie;fIlDph5S;a,in1;en,n1;i8y;!a,e,n40;lIng;!i1DlI;!i1C;anOle0nLrKsI;i88sI;!e,i87;i,ri;!a,elHif2AnI;a,etAiIy;!e,f28;a,e89iJnI;a,e88iI;e,n1;cNda,mi,nJque4UsminGvie3y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob7Z;!n9H;do3;belIdo3;!a,e,l37;a72en1i0ma;di3es,gr6Tji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin29;da,ll4rten21snI;a,i9K;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1AiKlJnriet7rmi9sI;sa,t19;en2Qga,mi;di;bi2Bil8ClOnNrKsJtIwa,yl8C;i5Nt4;n5Tti;iImo4Xri4Y;etI;!te;aCnaC;a,ey,l4;a03eXiSlQoOrLunKwI;enIyne1O;!dolD;ay,el;acieJetIiselB;a,chE;!la;ld19ogooI;sh;adys,enIor2yn2G;a,da,na;aLgi,lJna,ov84selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Ni,m3Atru86;etAi4S;a,eIna;s25vieve;ma;bJle,mIrnet,yH;al5Ji5;i5BrielI;a,l1;aUeRiQlorPoz2rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0N;n1s5X;!ca;a,enc2;en,o0;lJn0rnI;anB;ec2ic2;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no3oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c2da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh2iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr2nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d3nI;!a,e;hl2i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th2;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat3;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a3er3ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d3elHtI;al,elH;cJlI;esAi42;el2ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a3o3ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el2;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar2;el;aMberLeliKiIy;e,l2naI;!ta;a,ja;!ly;hHiJl2nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c2sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c2is6jaLksaLna,sKxI;aIia;!nd3;ia,saI;nd3;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",Person:"true¦a0Ob0Hc08d05e02g01hZinez,jYkVlSmMnKoJpHr9s7t4v2w0xzibit,yanni;ar0ednesday adams,ill.i.am,oode;hol,rO;a0oltaiO;lentino rossi,n go7;a1heresa may,i0yra banks;ger woods,mbaQ;tum,ylor;a0carlett johanss03hakespeaJinbad,lobodan milosevic,ocratM;ddam hussain,ntigold;a6e5i4o2u0za;mi,n dmc,paul,sh limbau0;gh;d stewart,nald0thko;inho,o;hanYvaldo;ese witherspoVil9mbrandt;ffi,y roma03;a0e08ip07lato,oe,uff daddy;lm06ris hiltS;prah winfrWra;as,e0iles crane,ostradamP; yo,l3ttI;acklemo4essia3i1o0ubarek;by,lie3net,rrissS;randa ju0tt romnR;ly;en;re;ady gaga,e0iberaT;bron jam0e;es;anye west,e1iefer suther0obe bryant;land;ats,ndall,sha;aime,effersCk rowling;a0itlPulk hogan;lle berry,rrisA;ast9otye;ff1m0nya,zekiel;eril lagasse,inem;ie;a1e0ick wolf,rake;gas,nzel washingt4;lt3nB;ar5h3lint2o0;nfuci0olio;us;on;aucCy0;na;dinal wols1son0;! palm9;ey;a5e3o2ro0;ck,n0;te;no;ck,yon0;ce;nksy,rack obama;ristot1shton kutch0;er;le",LastName:"true¦0:9G;1:9W;2:9Y;3:9O;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s2;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi3j6ka3IoGrFsui,uD;om50rD;c3n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps2s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv3zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins2;!on;bei0LcEes,vDzzo;as,e8;ci,hards2;ag3es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss2;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym3;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx2;ic,ov6X;ls1miD;!n1;ils2mD;co42ec;gy,kaEray3varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h3lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h3iSlQnez48oJrGuEvar3woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss2;anEnsD;en,on,t2;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks2obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m3ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers2;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw2;o,staf2Utierr7zm3;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m3;calv9zale0H;aj,i;bs2l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm3uD;cDent9ji3E;hs;ntaDrt6urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s2;er,is2wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g3he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w3;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e2uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em3liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm3tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder2mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy3;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss2;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl3yD;aEd6;in;la;aEsl3;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s2;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DN;1:CO;2:D6;3:AJ;4:CK;5:BZ;6:CF;7:D2;8:BS;9:AR;A:DA;B:D3;C:94;D:BM;aC9bB7cA7d98e8If82g7Fh6Si6Cj5Ek52l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Jkaria,n0C;hFkE;!aC7;ar5UeC6;aMoGuE;sEu2LvBJ;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB8ssY;avi3ho4;aNeLiGoEyaBN;jcie87lfgang,odrow,utE;!er;lEnst1;bGey,fredAlE;aAZiE;am,e,s;e97ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Xy;aHiEladimir,ojte7U;cFha0kt67nceErgA5va0;!nt;e3Xt65;lentEn9S;inE;!e;ghBElyss59nax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r59;avAHeEist0oy,um0;ntA9v5Wy;bGd8RmEny;!as,mEoharu;aCBie,y;iCy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8G;!de5;dHrE;en98rE;an97eEy;ll,n96;!dy;dgh,ha,iEnn3req,tsu4R;cAPka;aUcotSeQhMiKoIpenc3tEur1Xylve96zym1;anGeEua85;f0phBCvEwa84;e5Zie;!islaw,l8;lom1uE;leyma6ta;dElCm1yabonga;!dhart74n8;aGeE;lErm0;d1t1;h7Kne,qu11un,wn,y6;aEbasti0k2Cl4Prg4Mth,ymoAE;m5n;!tE;!ie,y;lFmEnti2Gq58ul;!ke5JmDu4;ik,vato7O;aZeVhe9ViRoIuFyE;an,ou;b7DdFf5pe7KssE;!elBI;ol3Fy;an,bLc62dJel,geIh0landAmHnGry,sFyE;!ce;coe,s;!aA1nD;an,eo;l45r;er78g3n8olfo,riE;go;bDeAQ;cEl8;ar6Ic6HhFkEo;!ey,ie,y;a8Vie;gFid,ubByEza;an1KnZ;g9SiE;na9Os;ch6Qfa4lImHndGpha4sFul,wi2HyE;an,mo6U;h7Jm5;alAWol2U;iACon;f,ph;ent2inE;cy,t1;aJeHhilGier6TrE;aka18eE;m,st1;!ip,lip;dA4rcy,tE;ar,e3Er1Y;b4Hdra73tr6JulE;!o19;ctav3Di3liv3m9Yndrej,rIsFtEum7wB;is,to;aFc7k7m0vE;al5S;ma;i,vM;aMeKiGoEu38;aEel,j5l0ma0r3I;h,m;cFg4i46kEl2R;!au,h7Gola;hEkEolC;olC;al,d,il,ls1vE;il8J;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Gr1;hamFr6KstaE;fa,p54;ed,mI;di0Xe,hamGis2CntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Uik;house,o0Ct1;ae5Oe9MolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2AlSmadXnRrLs1tGuricFxE;imilianAwe9;e,io;eHhFiCtEus,yC;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Ysha9tEv2;iEy;!m,n;in,on;el,oQus;!el90oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5G;ou;aXeRiPlo39oLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7BrenGuEv81we9;!iE;e,s;!zo;am,oE;n4r;a7Uevi,la4AnIonHst3thaGvE;eEi;nte;bo;!a6Del;!ny;mFnd1rEur54wr54;ry,s;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubCnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdBkJmIrGsFvi3yE;dBs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dB;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdA;ffr8rge;brFlBrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymBzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estAie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydCy29;!lC;!a2HnEov0;e9ie,y;go,iFykC;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdA;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndA;!el,ki;ie;ta;aq;as,dIgelAtE;hony,oE;i6nE;!iAy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdBeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtA;ni;dBm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfAri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Honorific:"true¦director1field marsh2lieutenant1rear0sergeant major,vice0; admir1; gener0;al",Adjective:"true¦0:8H;1:9N;2:8E;3:9E;4:8B;5:98;6:8M;7:8T;8:86;9:99;A:8W;B:7Z;C:60;D:9D;E:7J;a80b7Ic6Wd6Fe5Xf5Cg54h4Ui3Ujuni49k3Rl3Hm34n2Uo2Fp20quart6Ar1Qs0Ut0MuRvNwFye1M;ast58eKhIiHoF;man4oFrthwhi7u0I;dBzy;despr8Zn w7Cs6N;acked0XoleF;!sa7;ather14eFll o5Pste2Q;!k4;aHeGiFola5J;b9Qce versa,gi2Qle;ng4Yrsa5H;ca1lu8U;lt08nLpHrGsFttermo9I;efEu5;b7Age1; Hb2ApGsFti8H;ca7et,ide d3P;er,i4O;f3Xto da3;aYbecom2cXdSeRfPiOkn3MmNpMrJsGto49us0wF;a08iel2N;eBi2Fo47pGuF;pervis0spect2;e1okB;eFu4;cognTgul0NlFsolv0;at0ent2;aArecede01;arri0et;que,vers5;air,orF;eseBtun7S;mploy0nd2xpect0;eFisclos0ue;cid0rF;!a75covCly2sJwF;aFei7W;tCy;heck0onvinc2;ppeal2ssum2tteGuthorF;iz0;nd0;im4Bra;aKeHhough5Jip 1RoGrF;anspare1i3;gethCle8Qp notch,rpA;ena6UmpGrF;r3Ktia8;e9o76;leFst3V;nt0;a09c05e02h01iZkiYle5Mmug,nobbi46oTpQqueami46tKuFymb7L;bHi generis,pFr4;erFre69;! dupCb,vi00;du0p5HsFurb65;eq7Rtanda8C;atu6OeJi0WrFy3Z;aightGin4LungF; o25; fFfF;or6C;adfa84ri7;arGeFirit0lendAot on;c33e1F;k4se; call0lub7mbCphisticIrHuFviT;ndFth10;proof;dAry;at0;ll0n d6C;g22nF;ce5Mg7;am36eC;co1Lem4lfGnFre6;so8; suf45i3G;aGholFient2P;ar4;rlFth2;et;cr0me,tisfac5Z;aNeIheumatoAiGoF;bu7IttBy5;ghtFv5;-w2fE;cIdu79lHnown0sFtard0;is3JoF;lu3na1;e1Duc3H;e1ondi3;bAci5;aQeOicayu6laNopuli79rGuF;bl6Fnjabi;eKiIoF;b6HfGmi3IpFvBx23;er,ort6N;a6u6Q;maFor,sti6va3;!ry;ci6Nexist2ma1UpaA;cAid;ac2Dnt2XrFti3;feDma3Ati3Av6J;i2DrtFss6F;-4RiF;al,s4P;bQffOkNld MnKrJthCutIverF;!aGni5Vseas,t,wF;ei5Urou5U;ll;do14er,si51;d34g1U; bFbFe on o6go2li6;oa6P;fashion0school;!ay; gua6MbFli6;eat;eGsF;ce6er0Io0Z;dia1se;aNeMiLoFuanc0; mo47nHrthFt5P;!eF;rn;chaGdescri6Aprof2JsF;top;la1;ght4;arby,cessa8ighbor4xt;k0usiat2;aNeMiKoGuF;dHltip7;deHlGnFot,st;ochro3Yth4;dy;rn,st;ddle ag0nF;dblVi;ga,nac2re;cHgenta,in,j0Akeshift,mmGnFscu50;da4Ay;ali3Ooth;ab3Mho;aNeKiIoFumber2;ngFuti1I;stand2tF;erm,i3L;ghtwei4QteraF;l,te;ft-w2gFssCth5;al,eFit0I;nda8;nguAps0te4;apGind4nF;ow2;ut;ce co0Dgno5Kll09m01nHpso 2ErF;a3releF;va1; WaVcoSdPe2MfOgrNhibi3Ri02nMoLsHtFvalu4N;aDeF;n4Wrdep24;a6iGolFuboI;ub7ve1;de,gF;nifica1;rdi4O;a3er;own;eriGluenSreq4J;eGiIoFul1E;or;fini3p1Ttermi4I;mpGnside9rF;reD;le3;ccu9deq4Jppropr3Q;fFsitu,vitro;ro1;mJpF;arHeGl0YoFropC;li3r0V;nd2rfeD;ti5;aGeFi0Z;d3Hn48;tu2E;egGiF;c0Rte9;al,itF;ima3;ld;aMelLiJoFuma6;meHnGrrFs0Bur4;if3K;e4Co30; ma2Msick;ghfalut1VspF;an3G;liZpfE;i8llow0ndFrd05tL;sy,y;aiLener3Ciga2Jlob5oKraHuF;ilFng ho;ty;cGtF;efEis;efE;ldBod;nfE;aWeTiRlPoIrF;aGeFil4ozB;q3CtfE;gi7nt31;lk0WoJrF; keeps,eHge0OmCtunFwa3U;ateF;!ly;go2i1Os2Z;liF;sh;ag3Rowe8uF;e1oresce1;e8nF;al,i3;dGmini6rF;ti7; up;bl0l31mili0Lr Fux;oFreach2;ff;aTfSlQmNnLqu5reDthere5veryday,xF;aDem3AplIquisi3traHuF;be3FlF;ta1;!va1V;icF;it; Fti0Y;rou3sui3;erGiF;ne1;ge1;dFe1N;er4;ficie1;gCsF;t,ygo2;er;aUeMiHoGrFue;ea8owW;mina1ne,rma1ubO;dact1Yfficult,m,sGverF;ge1se;creGeNjoi1pa9tF;a1inD;et,te; Ladp0GceKfiJgene9liHpGreliDspe9voF;id,ut;ende1;ca3ghF;tfE;a1ni3;as0;facto;i4ngero05;arZeXhWivil,oMrHuF;stoma8teF;sy;aIeHu0WystalF; cleFli6;ar;epy;vBz0;erNgniza1loMmLnGrpo9veF;rt;cIduLgr1KjHsGtraF;dic0Hry;eq1Ita1;oi1ug5;a1Ci1L;mensu9pass1G;ni5ss5;ci19;ee8intzy;leba3rtaF;in;diac,efE;aUeOiJliSoGrFuck nak0;and new,isk,on1U;gGldface,naF; fiZfiZ;us;gHpartisGzarF;re;an;tiF;me;autifEhiIloHnFsiSyoI;e01iFt;gn;v0w;nd;ul;ckwards,rF;e,rB; priori,b12c0Zd0Tf0Ng0Ih0Hl0Amp7nt07pZrSsPttracti0MuLvIwF;aGkF;wa19;ke,re;ant garGeraF;ge;de;diHtF;heFoimmu6;nt07;to8;hBlF;eep;en;bitJchiv5roItF;iFsy;fiF;ci5;ga1;ra8;ry;pFt;aJetiz2roF;prHximF;ate4;ly;ia3;ll2re1;ing;iquFsy;at0e;ed;cohJiQkaHl,oGriFterW;ght;ne,of;li6;ne;olF;ic;ead;ain05ed,gressiIrF;eeF;ab7;le;ve;fGraA;id;ectGlF;ue1;ioF;na3; JeHvF;erF;se;pt,qF;ua3;hoc,infinitum;cu9tu5u3;al;ra3;erQlOoMrJsGuF;nda1;e1olu3traD;ct;te;eaGuF;pt;st;aFve;rd;aFe;ze;ra1;nt",Adverb:"true¦a08b05d01eXfRhePinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6;en,us;eldom,o0uch;!me1rt0; of;how,times,w0A;a1e0;alT;ndomSthN;ar excellenEer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag03moX; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboV;deed,steW;lla,n0;ce;or2u0;lArther0;!moK; 0ev3;examp0good,suI;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;ju9trop;ackward,y 0;far,no0; means,w; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aVbRcuz,eNhowMiEjustYnoBo9p8supposing,t5wh0yet;e1il0o3;e,st;n1re0thN; if,vM;evL;h0o;erefMo0;!uS;lus,rovided th9;r0therwiK;! not; mattEr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mGcaDorder t0;h0o;at;! 0;only,t0w0;hen;!ev3;ith2ven0;! 0;if,t9;er;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s",Determiner:"true¦aAboth,d8e5few,le4mu7neiCplenty,s3th2various,wh0;at0ich0;evB;at,e3is,ose;everal,ome;!ast,s;a1l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er","Adj|Present":"true¦a07b04cVdQeOfKhollJidRlFmDnarrJoCpAqua9r8s4t2utt3w0;aLet,ound,ro0;ng,ug08;end0hin;er;e2hort,l1mooth,our,pa9tray,u0;re,speT;i2ow;cu6da01leRpaM;eplica00ig01;ck;aGr0;eseTime,omU;bscu1pen,wn;atu0e3odeG;re;a2e1i0;gTve;an;st,y;ow;a2i1oul,r0;ee,inge;rm;iHke,ncy,st;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry,ull;le;ffu9re6;fu8libe0;raE;alm,l5o0;mpleCn3ol,rr1unterfe0;it;e0u7;ct;juga8sum7;ea1o0;se;n,r;ankru1lu0;nt;pt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:38;1:3M;2:3B;3:2E;a3Qb39c30d2Re2Kf28g1Wh1Mi1Gj1Fk1Cl15m0Zn0Uo0Tp0Kqu0Ir09sJtEuDvBw5y4za0S;el12ouP;a8e6hi1Ii4ry;ck0Ede,l4n1ry,se;d,y;a4i3P;k,ry;ntiJry;a4erda2ulgar;gue,in,st;g0pcomiG;a7en2Thi6i5ough,r4;anqu29en1ue;dy,g32me0ny,r04;ck,rs25;ll,me,rt,wd3E;aScarReQhOiNkin0ClJmHoFpEt7u5w4;eet,ift;b4dd0Wperfi1Xrre25;sta23t3;a9e8iff,r5u4;pVr1;a5ict,o4;ng;ig2Rn0N;a1ep,rn;le,rk,te0;e1Oi2Rright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Im4;!y;ek,nd2O;ck,l0mp3;a4iRrill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1BlAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;bb0ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Xte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o11u4ve0w0Vy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui16;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng19;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd10ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue0X;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiR;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0N;!ny;aDesh,iend0;a4rmE;my;erce5nan4;ciB;! ;le;r,ul4;ty;a7erie,sse5v4xtre0B;il;nti4;al;r5s4;tern,y;ly,th0;aBe8i5ru4umb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppRrk;agey,h9l8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;evLou1;e4il0;ap,e4;sy;aIiGlDoBr6u4;r0sy;ly;a7i4oad;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd","Person|Adj":"true¦brown,du2earnest,frank,mi2r0sa1;a0ich,u1;ndy;sty",Infinitive:"true¦0:8V;1:8G;2:9D;3:80;4:7N;5:91;6:9H;7:99;8:82;9:9G;A:92;B:8X;C:7K;D:7U;E:7Q;F:87;G:7V;H:7H;a82b7Jc6Sd5Le4Gf45g41h3Wi3Cj39k37l2Ym2Rnou3Vo2Lp25qu24r19s0AtYuTvRwI;aOeNiLors4rI;eJiI;ng,te;ak,st3;d4e7HthI;draw,er;a2d,ep;i2ke,nIrn;d0t;aIie;li9Eni9ry;nIplift;cov0dJear7JlIplug,tie,ve85;ea9o3K;erIo;cut,go,sta9Gval96whelm;aRePhMoLrI;aIemb3;ffi3Fmp3nsI;aDpi8;pp3ugh4;aJiJrIwaE;eat4i2;nk;aIm92;ch,se;ck3ilor,keImp0r7N;! paE;a0Fc0Ee0Ch08i06l04mugg3n03o01pYquXtQuKwI;all71eeIim;p,t4;bKccumb,ffJggeBmm93p2FrI;mouFvi2;er,i5;li80mJsiIveE;de,st;erAit;aMe7SiKrI;ang3eIi2;ng20w;fIng;f4le;gg0rI;t3ve;a3Ui9;a4DeJit,l6KoI;il,of;ak,nd;lIot6Nw;icCve;eak,i0L;aIi6;m,y;ft,nIt;g,k;aKi5LoJriIun;nk,v5X;ot,rt4;ke,rp4tt0;eIll,nd,que7Nv0w;!k,m;avenAul81;dd4tis1Ay;a0BeJip4oI;am,ut;a07b05c03d02fZgroup,heaYiXlVmUnTpRq36sNtLup,vI;amp,eJiIo2V;sCve;l,rt;i8rI;ie2ofC;eFiKtIurfa5;o1XrI;aHiDuctu8;de,gn,st;el,hra1lIreseF;a5e69;d0ew,o05;aHe31o2;a7eFiIoad,y;e2nq3Mve;mbur1nf2U;r1t;inJleDocus,re9uI;el,rbi9;an5e;aDu5;ei2k7Jla3OoIyc3;gni2Wnci3up,v0;oot,uI;ff;ct,d,liI;se,ze;tt3vi9;a9enGit,o7;aVerTinpoiFlumm0VoSrKuI;b3Oke,ni9rIt;poEs6W;eMoI;cKd,fe4BhibCnoJpo1sp0tru6vI;e,i6o4W;un5;la39u8;aGclu6dJf0occupy,sup0FvI;a5LeF;etermi47iD;aGrtr4Vsse44;cei2fo3Hi9mea7plex,sIva6;eve8iB;mp0rItrol,ve,y;a5St5O;bMccuLpKutJverIwe;lap,s19tu6Au1;gr4Pnu22pa5;era7i3Ypo1;py,r;ser2taH;aMe09iJoIultiply;leBu64;micJnIspla5;ce,g3us;!k;iIke,naA;m,ntaH;aPeLiIo1u39;e,ke,ng0quIv4;eIi66;fy;aKnIss4;d,gI;th4;rn,ve;ng26u1E;eep,nI;e3Row;oHuI;gg3xtaI;po1;gno8mWnIrk;cUdSfRgeBhQitia7ju8q14sOtKun5TvI;eIo0T;nt,st;erJimi5QoxiQrI;odu5u6;aDn,prIru5Q;et;iBpi8tIu8;il,ruD;abCibC;eBo2Bu1;iIulA;ca7;i7lu6;b5Cmer1pI;aEer47ly,oJrI;e2Ris5No2;rt,se,veI;ri9;aLeKiIoiBuE;de,jaInd0;ck;ar,iQ;mp0ng,pp4st4ve;ath0et,i2le1UoKrI;aIow;b,pp3ze;!ve4S;ast4er3Li58lRorMrJuI;lf3Tr3P;eJiIolic;ght4;e0Lsh4;b3DeKfeCgIs4B;eIi2;!t;clo1go,sIwa4J;had2Y;ee,i2Q;a0KdCl0Im0CnUquip,rTsStGvQxI;cNeEha3iMpJtI;ing0Uol;eJi8lIo1unA;aHoC;ct,di7;st,t;e2MlI;a0Xu6;alua7oI;ke,l2;chew,pou1tab13;a1u4G;aYcVdTfSgQhan5joy,lPqOrNsuMtKvI;e0VisI;aAi4L;er,i5rI;aHenGuB;e,re;iGol;ui8;arAiB;aAeIra2ulf;nd0;or5;ang0oIu8;r1w;lo1ou0CrJuI;mb0;oaGy3Z;b3ct;bKerApI;hasiIow0;ze;a0Tody,rI;a5oiI;d0l;ap1eDuI;ci3Ode;rIt;ma0Nn;a0Ne02iKo,rIwind3;aw,edAoI;wn;agno1e,ff0g,mi27sLvI;eIulA;rIst;ge,t;ab3bUcPlodAmant3pNru3GsMtI;iIoEu2W;lJngI;ui9;!l;ol2ua6;eIla5o1ro2;n1r1;a2Ne2WlKoIu0K;uIv0;raA;aIo1;im;a38ur1;af4bZcTduDep4fRliQmNnLpKra1TtaGvI;eIol2;lop;aEiDoE;oIy;te,un5;eJoI;li9;an;mCv0;a5i06oIraud,y;rm;ei2iMoKrI;ee,yI;!pt;de,mIup3;missi2Upo1;de,ma7ph0;aJrief,uI;g,nk;rk;mp4rk4uF;a06ea1h04i03l02oJrIurta17;a2ea7ipp3;ales5eZhabCinci6llYmWnIrro6;cTdQfNju8no7qu0sLtKvI;eIin5;ne,rA;aHin25ribu7;er2iIoli27pi8titu7ult;d0st;eJiIroFu1;de,gu8rm;ss;eJoI;ne;mn,n1;eIlu6ur;al,i2;buBe,men5pI;e7i3ly;eDi6u6;r5xiB;ean1iS;rcumveFte;eIoo1;ri9w;ncIre4t0ulk;el;aXeRi6lPoOrLuI;iJrIy;st,y;ld;aJeastfeMiIoad4;ng;ke;il,l12mba0XrrMth0;eIow;ed;!come,gHha2liLqueaKstJtrIwild0;ay;ow;th;e2tt3;in;bysCckfi8ff3tI;he;it;b17c0Vd0Mff0Kgr0Jl0Fm0Bn05pp01rZsSttPuNvKwaI;it,k4;en;eEoI;id;rt;gIto08;meF;aGeBraD;ct;ch;pi8sJtoI;ni9;aKeIi05u8;mb3rt,ss;le;il;re;g0Ji1ou1rI;anAi2;eaKly,oiFrI;ai1o2;nt;r,se;aMiQnJtI;icipa7;eJoIul;un5y;al;ly1;aJu1;se;lgaIze;ma7;iKlI;eAoIu6;t,w;gn;ee;ix,oI;rd;a01jNmiKoJsoI;rb;pt,rn;niIt;st0;er;ouJuB;st;rn;cLhie2knowledAquiItiva7;es5re;ce;ge;eOomKrJusI;e,tom;ue;moJpI;any,li9;da7;te;pt;andOet,i6oKsI;coKol2;ve;li9rt,uI;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Verb:"true¦born,cannot,gonna,has,keep tabs,msg",Participle:"true¦fl3g1s0writt2;e1h2;iv0one;en;own","Actor|Verb":"true¦aIbDcAd8engineFfool,g6host,judge,m4nerd,p3recruit,s1ushFvolunteFwi0;mp,tneF;cout,p0;ons6y;arent,ilot;a0ime;n,st9;eek,oof,r0uide;aduCoom;elegBoct0;or;ha1o0;a5nscript,ok;mpion,uffeur;it3o2u0;lly,tch0;er;ss;ch;d0ffili1rchite2;di1voc0;ate;ct","Adj|Gerund":"true¦0:2F;1:2H;2:25;3:23;4:20;5:2D;6:27;7:22;a24b1Zc1Hd14e0Yf0Og0Ih0Hi0Ajud1Xl07m04o00pWrQsFtAup9v8w0Pyiel4;ar5eY;lif0s01;aWeBhr9i3ouc7r8wis0;e01oub2us0yi1;ea0Mi8;l2vi1;l2mp0;atisf5creec7hoc0Ekyrocke0lo13oGpFtBu9we8;e12l2;pp1Kr8;gi1pri6roun4;a9ea23i8ri0Aun1C;mula0r3;gge3r8;t2vi1;ark2ee4;a8ot7;ki1ri1;aCe9ive0o8us7;a3l2;defi13fres7ig13laEmai13s0v8war4;ea2itali8ol0Q;si1zi1;gi1ll5mb2vi1;a5erpleAier1Dlun18r8un1J;e8o11;ce4s6vai2;xi1;ffsApNut9ver8wi1;arc7lap0Hp09ri4whel1L;goi1l5st0Y;et0;eande3i9o0Fu8;mb2;s6tiga0;a9i8o0C;fesa0Bmi0vi1;cKg0Vs0;mDn8rri0C;cBsAt9vi8;go1Gti1;e15imida0;pi3ul0;orpo1Drea6;po6;arrowi1ea2orrif5umilia0;lCr8;a0ipZo9uel8;i1li1;undbrea8wi1;ki1;a3ea0Z;aGetc7it0lDoBr9ulf8;il2;ee0Yigh8ust12;te04;r8un4;ebo4th0H;a9o8;a0we3;mi1tte3;di1scina0;mBn9x8;ac0ci0is0plo4;ab2c8du3ga04sT;han0oura03;barras6er02p8;owe3;aJeCi8;s8zz5;appoin0gus0sen0t8;r8u0N;ac0es6;biliDcCfiMgra4mBpres6serAv8;asCelo8;pi1;vi1;an4eaI;a5liH;ta0;maOri1s7un0;aOhLlo6o8ripp2ut0;mEn8rrespon4;cerCfBspi3t8vinQ;in9r8;as0ibu0ol2;ui1;lic0u6;ni1;fCmBp8;e9ro8;mi6;l2ti1;an4;or0;a8ea0il2;llen8rQ;gi1;lOptiva0ri1;eBin4lin4o9rui6u8;d4st2;i2oLri1un8;ci1;coJ;bsoQcLgonJlarImGppea2rEs8;pi3su3to8;n9un4;di1;is7;hi1;ri1;res0;li1;aBu6;si1;mi1;i8zi1;zi1;c8hi1;ele9ompan5;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:30;1:2R;2:2U;a2Jb2Dc1Ud1Be15f10gift0h0Xi0Qj0Pknown,l0Mm0Hn0Fo0Cp05qua04rVsEtAu7v5w3;arp0ea3or5;kIth2T;a3e0W;ri0;n3pd1s0;derstood,i3;fi0t0;ar5hreatCr3wi2R;a3ou19;ck0in0pp0;get0ni1N;aHcaGeEhDimCm01oak0pAt6u3;bsid28gge2Ms3;pe3ta1S;ct0nd0;at0e5r3uV;ength3ip0;en0;am0reotyp0;eci3ik0ott0;al20fi0;pIul1;ar0ut;a3c1Jle2t1S;l0t0;r0tt25;t3ut0;is1Jur1;aAe3;c7duc0f1Cg6l1new0qu5s3;pe2t3;or0ri2;e22ir0;ist1Xul1;eiv0o3;mme09rd0v1V;lli0ti1A;li19;arallel0i0Kl7o6r3ump0;e4o3;ce0Ilo0Hnou1Tpos0te2;fe0Loc8pY;i1Gli0R;a3e19;nn0;c4rgan1Bverlo3;ok0;cupi0;e3ot0;ed0gle2;a5e4ix0o3ut0;di0Vt0G;as0Qlt0;n3rk0;ag0ufact0O;eft,i4o3;ad0st;cens0mit0st0;agg0us0N;mp8n3sol1;br0debt0f6t3volv0;e3ox0F;gr1n3re18;d0si0J;e2l1oX;li0oLrov0;amm10e1o3;ok0r3;ri0E;aNe6i5lavo09oc05r3;a3i0;ct07g0Mm0;niXx0;ar0;duc1l1mbarraKn7quipp0stabliVx3;agger1p3te5;a4e3;ct0rie0S;nd0;ha0QsZ;aJeAi3;gni01miniOre2s3;a7c5grun05t3;o3reBurb0;rt0;iplSou3;nt0rE;bl0;cenVdOf8l7pre6ra5t3velop0;a3ermO;il0;ng0;ss0;ay0ight0;e4o3;rm0;rr0;m3t0;ag0;alcul1eHharg0lGo8r5u3;lt3stomS;iv1;a4owd0u3;sh0;ck0mp0;d0lo9m6n3ok0vX;centr1f4s3troll0;idVolid1;us0;b4pl3;ic1;in0;ur0;assi5os0;lebr1n5r3;ti3;fi0;tralB;a7i6o4roken,urn3;ed,t;il0r0t3und;tl0;as0;k0laIs0;bandon0cJdGffe2lDnBpp9ss7u3ward0;g4thor3;iz0;me3;nt0;o5u3;m0r0;li0re3;ci1;im1ticip1;at0;leg0t3;er0;ct0;ju4o6va3;nc0;st0;ce3knowledg0;pt0;ed","Person|Verb":"true¦b8ch7dr6foster,gra5hope,ja9lan4ma2ni9ollie,p1rob,s0tra4wade;pike,t5ue;at,eg,ier2;ck,r0;k,shal;ce;ce,nt;ew;ase,u1;iff,l1ob,u0;ck;aze,ossom","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const wo="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",ko=wo.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Po=function(e){if(void 0!==ko[e])return ko[e];let t=0,n=1,r=36,a=1;for(;n=0;n--,a*=36){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t};var Io=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=jo(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Eo(yo[e]);To.test(e)?Object.keys(t).forEach((t=>{if(Fo[t]=e,"Noun|Verb"===e){let e=Co(t,Go);Fo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Oo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","3","<\\3","=("].forEach((e=>Oo[e]="Emoticon")),delete Oo[""],delete Oo.null,delete Oo[" "];const Vo="Singular";var zo={beforeTags:{Determiner:Vo,Possessive:Vo,Acronym:Vo,Noun:Vo,Adjective:Vo,PresentTense:Vo,Gerund:Vo,PastTense:Vo,Infinitive:Vo,Date:Vo,Ordinal:Vo,Demonym:Vo},afterTags:{Value:Vo,Modal:Vo,Copula:Vo,PresentTense:Vo,PastTense:Vo,Demonym:Vo,Actor:Vo},beforeWords:{the:Vo,with:Vo,without:Vo,of:Vo,for:Vo,any:Vo,all:Vo,on:Vo,cut:Vo,cuts:Vo,increase:Vo,decrease:Vo,raise:Vo,drop:Vo,save:Vo,saved:Vo,saves:Vo,make:Vo,makes:Vo,made:Vo,minus:Vo,plus:Vo,than:Vo,another:Vo,versus:Vo,neither:Vo,about:Vo,favorite:Vo,best:Vo,daily:Vo,weekly:Vo,linear:Vo,binary:Vo,mobile:Vo,lexical:Vo,technical:Vo,computer:Vo,scientific:Vo,security:Vo,government:Vo,popular:Vo,formal:Vo,no:Vo,more:Vo,one:Vo},afterWords:{of:Vo,system:Vo,aid:Vo,method:Vo,utility:Vo,tool:Vo,reform:Vo,therapy:Vo,philosophy:Vo,room:Vo,authority:Vo,says:Vo,said:Vo,wants:Vo,wanted:Vo,is:Vo,can:Vo,wise:Vo}};const Bo="Infinitive";var Lo={beforeTags:{Modal:Bo,Adverb:Bo,Negative:Bo,Plural:Bo},afterTags:{Determiner:Bo,Adverb:Bo,Possessive:Bo,Reflexive:Bo,Preposition:Bo,Cardinal:Bo,Comparative:Bo,Superlative:Bo},beforeWords:{i:Bo,we:Bo,you:Bo,they:Bo,to:Bo,please:Bo,will:Bo,have:Bo,had:Bo,would:Bo,could:Bo,should:Bo,do:Bo,did:Bo,does:Bo,can:Bo,must:Bo,us:Bo,me:Bo,let:Bo,even:Bo,when:Bo,help:Bo,he:Bo,she:Bo,it:Bo,being:Bo,bi:Bo,co:Bo,contra:Bo,de:Bo,inter:Bo,intra:Bo,mis:Bo,pre:Bo,out:Bo,counter:Bo,nobody:Bo,somebody:Bo,anybody:Bo,everybody:Bo},afterWords:{the:Bo,me:Bo,you:Bo,him:Bo,us:Bo,her:Bo,them:Bo,it:Bo,himself:Bo,herself:Bo,itself:Bo,myself:Bo,ourselves:Bo,themselves:Bo,something:Bo,anything:Bo,a:Bo,an:Bo,up:Bo,down:Bo,by:Bo,out:Bo,off:Bo,under:Bo,what:Bo,all:Bo,to:Bo,because:Bo,although:Bo,after:Bo,before:Bo,how:Bo,otherwise:Bo,together:Bo,though:Bo,into:Bo,yet:Bo,more:Bo,here:Bo,there:Bo}};var $o={beforeTags:Object.assign({},Lo.beforeTags,zo.beforeTags,{}),afterTags:Object.assign({},Lo.afterTags,zo.afterTags,{}),beforeWords:Object.assign({},Lo.beforeWords,zo.beforeWords,{}),afterWords:Object.assign({},Lo.afterWords,zo.afterWords,{})};const So="Adjective";var Mo={beforeTags:{Determiner:So,Possessive:So,Hyphenated:So},afterTags:{Adjective:So},beforeWords:{seem:So,seemed:So,seems:So,feel:So,feels:So,felt:So,stay:So,appear:So,appears:So,appeared:So,also:So,over:So,under:So,too:So,it:So,but:So,still:So,really:So,quite:So,well:So,very:So,how:So,deeply:So,hella:So,profoundly:So,extremely:So,so:So,badly:So,mostly:So,totally:So,awfully:So,rather:So,nothing:So,something:So,anything:So,not:So,me:So,is:So},afterWords:{too:So,also:So,or:So}};const Jo="Gerund";var Ho={beforeTags:{Adverb:Jo,Preposition:Jo,Conjunction:Jo},afterTags:{Adverb:Jo,Possessive:Jo,Person:Jo,Pronoun:Jo,Determiner:Jo,Copula:Jo,Preposition:Jo,Conjunction:Jo,Comparative:Jo},beforeWords:{been:Jo,keep:Jo,continue:Jo,stop:Jo,am:Jo,be:Jo,me:Jo,began:Jo,start:Jo,starts:Jo,started:Jo,stops:Jo,stopped:Jo,help:Jo,helps:Jo,avoid:Jo,avoids:Jo,love:Jo,loves:Jo,loved:Jo,hate:Jo,hates:Jo,hated:Jo},afterWords:{you:Jo,me:Jo,her:Jo,him:Jo,them:Jo,their:Jo,it:Jo,this:Jo,there:Jo,on:Jo,about:Jo,for:Jo}};var Wo={beforeTags:Object.assign({},Mo.beforeTags,Ho.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Mo.afterTags,Ho.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Mo.beforeWords,Ho.beforeWords,{is:"Adjective",was:"Adjective",of:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Mo.afterWords,Ho.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ko={beforeTags:{Determiner:void 0,Cardinal:"Noun",PhrasalVerb:"Adjective"}};var Uo={beforeTags:Object.assign({},Mo.beforeTags,zo.beforeTags,Ko.beforeTags),afterTags:Object.assign({},Mo.afterTags,zo.afterTags),beforeWords:Object.assign({},Mo.beforeWords,zo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective",off:"Adjective",out:"Adjective"}),afterWords:Object.assign({},Mo.afterWords,zo.afterWords)};let qo="PastTense";const Ro={beforeTags:{Adverb:qo,Pronoun:qo,ProperNoun:qo,Auxiliary:qo,Noun:qo},afterTags:{Possessive:qo,Pronoun:qo,Determiner:qo,Adverb:qo,Comparative:qo,Date:qo,Gerund:qo},beforeWords:{be:qo,who:qo,get:"Adjective",had:qo,has:qo,have:qo,been:qo,it:qo,as:qo,for:"Adjective"},afterWords:{by:qo,back:qo,out:qo,in:qo,up:qo,down:qo,before:qo,after:qo,for:qo,the:qo,with:qo,as:qo,on:qo,at:qo,between:qo,to:qo,into:qo,us:qo,them:qo,me:qo}};var Qo={beforeTags:Object.assign({},Mo.beforeTags,Ro.beforeTags),afterTags:Object.assign({},Mo.afterTags,Ro.afterTags),beforeWords:Object.assign({},Mo.beforeWords,Ro.beforeWords),afterWords:Object.assign({},Mo.afterWords,Ro.afterWords)};const _o={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Zo={beforeTags:Object.assign({},Mo.beforeTags,Lo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Mo.afterTags,Lo.afterTags,_o.afterTags),beforeWords:Object.assign({},Mo.beforeWords,Lo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Mo.afterWords,Lo.afterWords,{to:void 0,as:"Adjective"})};const Yo={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Xo={},ei={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ti={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ni={beforeTags:Object.assign({},Ho.beforeTags,zo.beforeTags,Yo),afterTags:Object.assign({},Ho.afterTags,zo.afterTags,Xo),beforeWords:Object.assign({},Ho.beforeWords,zo.beforeWords,ei),afterWords:Object.assign({},Ho.afterWords,zo.afterWords,ti)};const ri="Singular",ai="Infinitive";var oi={beforeTags:Object.assign({},Lo.beforeTags,zo.beforeTags,{Adjective:ri,Particle:ri}),afterTags:Object.assign({},Lo.afterTags,zo.afterTags,{ProperNoun:ai,Gerund:ai,Adjective:ai,Copula:ri}),beforeWords:Object.assign({},Lo.beforeWords,zo.beforeWords,{is:ri,was:ri,of:ri,have:null}),afterWords:Object.assign({},Lo.afterWords,zo.afterWords,{instead:ai,about:ai,his:ai,her:ai,to:null,by:null,in:null})};const ii="Person";var si={beforeTags:{Honorific:ii,Person:ii},afterTags:{Person:ii,ProperNoun:ii,Verb:ii},ownTags:{ProperNoun:ii},beforeWords:{hi:ii,hey:ii,yo:ii,dear:ii,hello:ii},afterWords:{said:ii,says:ii,told:ii,tells:ii,feels:ii,felt:ii,seems:ii,thinks:ii,thought:ii,spends:ii,spendt:ii,plays:ii,played:ii,sing:ii,sang:ii,learn:ii,learned:ii,wants:ii,wanted:ii}};const li="Month",ui={beforeTags:{Date:li,Value:li},afterTags:{Date:li,Value:li},beforeWords:{by:li,in:li,on:li,during:li,after:li,before:li,between:li,until:li,til:li,sometime:li,of:li,this:li,next:li,last:li,previous:li,following:li},afterWords:{sometime:li,in:li,of:li,until:li,the:li}};var ci={beforeTags:Object.assign({},si.beforeTags,ui.beforeTags),afterTags:Object.assign({},si.afterTags,ui.afterTags),beforeWords:Object.assign({},si.beforeWords,ui.beforeWords),afterWords:Object.assign({},si.afterWords,ui.afterWords)};const hi="Place",di={beforeTags:{Place:hi},afterTags:{Place:hi,Abbreviation:hi},beforeWords:{in:hi,by:hi,near:hi,from:hi,to:hi},afterWords:{in:hi,by:hi,near:hi,from:hi,to:hi,government:hi,council:hi,region:hi,city:hi}};let gi="Unit";const mi={"Actor|Verb":$o,"Adj|Gerund":Wo,"Adj|Noun":Uo,"Adj|Past":Qo,"Adj|Present":Zo,"Noun|Verb":oi,"Noun|Gerund":ni,"Person|Noun":{beforeTags:Object.assign({},zo.beforeTags,si.beforeTags),afterTags:Object.assign({},zo.afterTags,si.afterTags),beforeWords:Object.assign({},zo.beforeWords,si.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},zo.afterWords,si.afterWords)},"Person|Date":ci,"Person|Verb":{beforeTags:Object.assign({},zo.beforeTags,si.beforeTags,Lo.beforeTags),afterTags:Object.assign({},zo.afterTags,si.afterTags,Lo.afterTags),beforeWords:Object.assign({},zo.beforeWords,si.beforeWords,Lo.beforeWords),afterWords:Object.assign({},zo.afterWords,si.afterWords,Lo.afterWords)},"Person|Place":{beforeTags:Object.assign({},di.beforeTags,si.beforeTags),afterTags:Object.assign({},di.afterTags,si.afterTags),beforeWords:Object.assign({},di.beforeWords,si.beforeWords),afterWords:Object.assign({},di.afterWords,si.afterWords)},"Person|Adj":{beforeTags:Object.assign({},si.beforeTags,Mo.beforeTags),afterTags:Object.assign({},si.afterTags,Mo.afterTags),beforeWords:Object.assign({},si.beforeWords,Mo.beforeWords),afterWords:Object.assign({},si.afterWords,Mo.afterWords)},"Unit|Noun":{beforeTags:{Value:gi},afterTags:{},beforeWords:{per:gi,every:gi,each:gi,square:gi,cubic:gi,sq:gi,metric:gi},afterWords:{per:gi,squared:gi,cubed:gi,long:gi}}},pi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};mi["Plural|Verb"]={beforeWords:pi(mi["Noun|Verb"].beforeWords,{had:"Plural",have:"Plural"}),afterWords:pi(mi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null,is:"PresentTense",by:"PresentTense"}),beforeTags:pi(mi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:pi(mi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var fi=mi;const bi="Adjective",vi="Infinitive",yi="PresentTense",wi="Singular",ki="PastTense",Pi="Adverb",Ii="Plural",Ai="Verb",ji="LastName",Ei="Participle";var Ni=[null,null,{ea:wi,ia:"Noun",ic:bi,ly:Pi,"'n":Ai,"'t":Ai},{oed:ki,ued:ki,xed:ki," so":Pi,"'ll":"Modal","'re":"Copula",azy:bi,eer:"Noun",end:Ai,ped:ki,ffy:bi,ify:vi,ing:"Gerund",ize:vi,ibe:vi,lar:bi,mum:bi,nes:yi,nny:bi,ous:bi,que:bi,ger:"Noun",ber:"Noun",rol:wi,sis:wi,ogy:wi,oid:wi,ian:wi,zes:yi,eld:ki,ken:Ei,ven:Ei,ten:Ei,ect:vi,ict:vi,ign:vi,ful:bi,bal:bi},{amed:ki,aped:ki,ched:ki,lked:ki,rked:ki,reed:ki,nded:ki,mned:bi,cted:ki,dged:ki,ield:wi,akis:ji,cede:vi,chuk:ji,czyk:ji,ects:yi,ends:Ai,enko:ji,ette:wi,iary:wi,wner:wi,fies:yi,fore:Pi,gate:vi,gone:bi,ices:Ii,ints:Ii,ruct:vi,ines:Ii,ions:Ii,ners:Ii,pers:Ii,lers:Ii,less:bi,llen:bi,made:bi,nsen:ji,oses:yi,ould:"Modal",some:bi,sson:ji,ians:Ii,tion:wi,tage:"Noun",ique:wi,tive:bi,tors:"Noun",vice:wi,lier:wi,fier:wi,wned:ki,gent:wi,tist:"Actor",pist:"Actor",rist:"Actor",mist:"Actor",yist:"Actor",vist:"Actor",ists:"Actor",lite:wi,site:wi,rite:wi,mite:wi,bite:wi,mate:wi,date:wi,ndal:wi,vent:wi,uist:"Actor",gist:"Actor",note:wi,cide:wi,ence:wi,wide:bi,vide:vi,ract:vi,duce:vi,pose:vi,eive:vi,lyze:vi,lyse:vi,iant:bi,nary:bi,erer:"Actor"},{elist:"Actor",holic:wi,phite:wi,tized:ki,urned:ki,eased:ki,ances:Ii,bound:bi,ettes:Ii,fully:Pi,ishes:yi,ities:Ii,marek:ji,nssen:ji,ology:"Noun",osome:wi,tment:wi,ports:Ii,rough:bi,tches:yi,tieth:"Ordinal",tures:Ii,wards:Pi,where:Pi,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:wi,scent:wi,onist:"Actor",anist:"Actor",alist:"Actor",olist:"Actor",icist:"Actor",ounce:vi,iable:bi,borne:bi,gnant:bi,inant:bi,igent:bi,atory:bi,rient:wi,dient:wi,maker:"Actor"},{auskas:ji,parent:wi,cedent:wi,ionary:wi,cklist:wi,keeper:"Actor",logist:"Actor",teenth:"Value",worker:"Actor",master:"Actor",writer:"Actor"},{logists:"Actor",opoulos:ji,borough:"Place",sdottir:ji}];const Di="Adjective";var xi=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Di,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Di,tele:"Noun","pro-":Di,"mis-":"Verb","dis-":"Verb","pre-":Di},{anglo:"Noun",centi:"Noun",ethno:"Noun",ferro:"Noun",grand:"Noun",hepta:"Noun",hydro:"Noun",intro:"Noun",macro:"Noun",micro:"Noun",milli:"Noun",nitro:"Noun",penta:"Noun",quasi:Di,radio:"Noun",tetra:"Noun","omni-":Di,"post-":Di},{pseudo:Di,"extra-":Di,"hyper-":Di,"inter-":Di,"intra-":Di,"deca-":Di},{electro:"Noun"}];const Ci="Adjective",Ti="Infinitive",Oi="PresentTense",Fi="Singular",Gi="PastTense",Vi="Expression",zi="LastName";var Bi={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,zi],[/.[^aeiou]ica$/,Fi,"harmonica"],[/^([hyj]a+)+$/,Vi,"haha"]],c:[[/.[^aeiou]ic$/,Ci]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Gi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Gi,"rammed"],[/.[aeiou][sg]hed$/,Gi,"gushed"],[/.[aeiou]red$/,Gi,"hired"],[/.[aeiou]r?ried$/,Gi,"hurried"],[/[^aeiou]ard$/,Fi,"steward"],[/[aeiou][^aeiou]id$/,Ci,""],[/.[vrl]id$/,Ci,"livid"],[/..led$/,Gi,"hurled"],[/.[iao]sed$/,Gi,""],[/[aeiou]n?[cs]ed$/,Gi,""],[/[aeiou][rl]?[mnf]ed$/,Gi,""],[/[aeiou][ns]?c?ked$/,Gi,"bunked"],[/[aeiou]gned$/,Gi],[/[aeiou][nl]?ged$/,Gi],[/.[tdbwxyz]ed$/,Gi],[/[^aeiou][aeiou][tvx]ed$/,Gi],[/.[cdflmnprstv]ied$/,Gi,"emptied"]],e:[[/.[lnr]ize$/,Ti,"antagonize"],[/.[^aeiou]ise$/,Ti,"antagonise"],[/.[aeiou]te$/,Ti,"bite"],[/.[^aeiou][ai]ble$/,Ci,"fixable"],[/.[^aeiou]eable$/,Ci,"maleable"],[/.[ts]ive$/,Ci,"festive"],[/[a-z]-like$/,Ci,"woman-like"]],h:[[/.[^aeiouf]ish$/,Ci,"cornish"],[/.v[iy]ch$/,zi,"..ovich"],[/^ug?h+$/,Vi,"ughh"],[/^uh[ -]?oh$/,Vi,"uhoh"],[/[a-z]-ish$/,Ci,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,zi,"polish-male"]],k:[[/^(k){2}$/,Vi,"kkkk"]],l:[[/.[gl]ial$/,Ci,"familial"],[/.[^aeiou]ful$/,Ci,"fitful"],[/.[nrtumcd]al$/,Ci,"natal"],[/.[^aeiou][ei]al$/,Ci,"familial"]],m:[[/.[^aeiou]ium$/,Fi,"magnesium"],[/[^aeiou]ism$/,Fi,"schism"],[/^[hu]m+$/,Vi,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Ci,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Vi,"noooo"],[/^(yo)+$/,Vi,"yoo"],[/^wo{2,}[pt]?$/,Vi,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Fi],[/[^i]fer$/,Ti],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Ci],[/[aeiou].*ist$/,Ci],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,Oi],[/.[rln]ates$/,Oi],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,Fi],[/.[aeiou]sks$/,Oi],[/.[aeiou]kes$/,Oi],[/[aeiou][^aeiou]is$/,Fi],[/[a-z]'s$/,"Noun"],[/^yes+$/,Vi]],v:[[/.[^aeiou][ai][kln]ov$/,zi]],y:[[/.[cts]hy$/,Ci],[/.[st]ty$/,Ci],[/.[tnl]ary$/,Ci],[/.[oe]ry$/,Fi],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Ci],[/...lly$/,"Adverb"],[/.[gk]y$/,Ci],[/[bszmp]{2}y$/,Ci],[/.[ai]my$/,Ci],[/[ea]{2}zy$/,Ci],[/.[^aeiou]ity$/,Fi]]};const Li="Verb",$i="Noun";var Si={leftTags:[["Adjective",$i],["Possessive",$i],["Determiner",$i],["Adverb",Li],["Pronoun",Li],["Value",$i],["Ordinal",$i],["Modal",Li],["Superlative",$i],["Demonym",$i],["Honorific","Person"]],leftWords:[["i",Li],["first",$i],["it",Li],["there",Li],["not",Li],["because",$i],["if",$i],["but",$i],["who",Li],["this",$i],["his",$i],["when",$i],["you",Li],["very","Adjective"],["old",$i],["never",Li],["before",$i],["a",$i],["the",$i],["been",Li]],rightTags:[["Copula",$i],["PastTense",$i],["Conjunction",$i],["Modal",$i]],rightWords:[["there",Li],["me",Li],["man","Adjective"],["him",Li],["it",Li],["were",$i],["took",$i],["himself",Li],["went",$i],["who",$i],["jr","Person"]]},Mi={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},Ji={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},Hi={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},Wi={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},Ki={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const Ui=/^.([0-9]+)/;var qi=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(Ui);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Ui,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)})),t},Qi=/^([0-9]+)/,_i=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Qi);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(Qi,"")]}(n[0],n[1])}))};var Zi=function(e={}){return(e=Object.assign({},e)).rules=_i(e.rules),e.rules=Ri(e.rules),e.rev&&(e.rev=_i(e.rev),e.rev=Ri(e.rev)),e.exceptions=_i(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e};var Yi=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const Xi=Zi({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),es=Zi(Wi),ts=Zi(Ji),ns=Zi(Hi),rs=Yi(Xi),as=Yi(es),os=Yi(ts),is=Yi(ns),ss=Zi(Mi),ls=Zi(Ki);var us={fromPast:Xi,fromPresent:es,fromGerund:ts,fromParticiple:ns,toPast:rs,toPresent:as,toGerund:os,toParticiple:is,toComparative:ss,toSuperlative:ls,fromComparative:Yi(ss),fromSuperlative:Yi(ls)},cs=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),hs=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]];var ds=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(ms[t].forEach((n=>e[n]=t)),e)),{});var ps=ms;var fs=function(e){let t=e.substring(e.length-3);if(!0===ps.hasOwnProperty(t))return ps[t];let n=e.substring(e.length-2);return!0===ps.hasOwnProperty(n)?ps[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const bs={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var vs=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=fs(e)),bs.hasOwnProperty(e))c=bs[e];else if("Participle"===n)c=qi(l,i);else if("PastTense"===n)c=qi(l,r);else if("PresentTense"===n)c=qi(l,a);else{if("Gerund"!==n)return e;c=qi(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var ys=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:qi(i,n),PresentTense:qi(i,r),Gerund:qi(i,a),FutureTense:"will "+e},u=qi(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l};var ws={toInfinitive:vs,conjugate:ys,all:function(e,t){let n=ys(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}};const ks=function(e,t){const n=t.two.models.toSuperlative;return qi(e,n)},Ps=function(e,t){const n=t.two.models.toComparative;return qi(e,n)};var Is=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a)){return e.slice(0,n-r)+t[a.length][a]}}return null};const As="ically",js=new Set(["analyt"+As,"chem"+As,"class"+As,"clin"+As,"crit"+As,"ecolog"+As,"electr"+As,"empir"+As,"frant"+As,"grammat"+As,"ident"+As,"ideolog"+As,"log"+As,"mag"+As,"mathemat"+As,"mechan"+As,"med"+As,"method"+As,"method"+As,"mus"+As,"phys"+As,"phys"+As,"polit"+As,"pract"+As,"rad"+As,"satir"+As,"statist"+As,"techn"+As,"technolog"+As,"theoret"+As,"typ"+As,"vert"+As,"whims"+As]),Es=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Ns=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ds={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var xs=function(e){return e.endsWith("ly")?js.has(e)?e.replace(/ically/,"ical"):Ns.has(e)?null:Ds.hasOwnProperty(e)?Ds[e]:Is(e,Es)||e:null};const Cs=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Ts={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Os=function(e){if(Ts.hasOwnProperty(e))return Ts[e];let t=Is(e,Cs);return t||e+"ly"};const Fs=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Gs={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Vs=new Set(["terrible","annoying"]);var zs={toSuperlative:ks,toComparative:Ps,toAdverb:Os,toNoun:function(e){if(Gs.hasOwnProperty(e))return Gs[e];if(Vs.has(e))return null;let t=Is(e,Fs);return t||e+"ness"},fromAdverb:xs,fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return qi(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return qi(e,n)},all:function(e,t){let n=[e];return n.push(ks(e,t)),n.push(Ps(e,t)),n.push(Os(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},Bs={noun:gs,verb:ws,adjective:zs},Ls={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Actor:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||["Plural","Actor"])},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,r);delete l.FutureTense,Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}};var $s=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Ls.hasOwnProperty(i)&&Ls[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}};var Ss=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]){let n=e[t-1];if(n.tags.has("Date")||a.has(n.normal))return!1;if(n.tags.has("Adjective")||r.tags.has("Adjective"))return!1}let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!Hs.find((t=>e.endsWith(t)))},Ks={two:{quickSplit:Ss,expandLexicon:$s,transform:Bs,looksPlural:Ws}};var Us=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const qs=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e)),{})};var Rs=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=qs(n,"Infinitive","PastTense"),Object.assign(s,l),l=qs(r,"Infinitive","Verb"),Object.assign(s,l),l=qs(a,"Infinitive","Gerund"),Object.assign(s,l),l=qs(o,"Adjective","Superlative"),Object.assign(s,l),l=qs(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Qs={two:{models:us}};const _s={"Actor|Verb":"Actor","Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"FirstName","Person|Place":"Person","Person|Adj":"Adjective","Plural|Verb":"Plural","Unit|Noun":"Noun"},Zs=function(e,t){const n={model:t,methods:Ks};let{lex:r,_multi:a}=Ks.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},Ys=function(e,t,n){let r=ys(e,Qs);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Xs=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=_s[o],"Noun|Verb"!==o&&"Person|Verb"!==o&&"Actor|Verb"!==o||Ys(a,r,!1),"Adj|Present"===o&&(Ys(a,r,!0),function(e,t,n){let r=ks(e,n);t[r]=t[r]||"Superlative";let a=Ps(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=vs(a,Qs,"Gerund");r[e]||(n[e]="Infinitive")}if("Noun|Gerund"!==o&&"Adj|Noun"!==o&&"Person|Noun"!==o||function(e,t,n){let r=Co(e,n);t[r]=t[r]||"Plural"}(a,r,t),"Adj|Past"===o){let e=vs(a,Qs,"PastTense");r[e]||(n[e]="Infinitive")}})),t=Zs(n,t)};var el=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=Zs(e.one.lexicon,e)).one.lexicon,e),e=Xs(e.two.switches,e),e=Rs(e),e=Us(e)};let tl={one:{_multiCache:{},lexicon:Oo},two:{irregularPlurals:vo,models:us,suffixPatterns:Ni,prefixPatterns:xi,endsWith:Bi,neighbours:Si,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z°]{1,4})$/,"NumericValue","9km"]],switches:Fo,clues:fi,uncountable:{},orgWords:cs}};tl=el(tl);var nl=tl;var rl=function(e,t,n,r){const a=r.methods.one.setTag;if(0===t&&e.length>=3){const t=/:/;if(e[0].post.match(t)){let t=e[1];if(t.tags.has("Value")||t.tags.has("Email")||t.tags.has("PhoneNumber"))return;a([e[0]],"Expression",r,null,"2-punct-colon''")}}};var al=function(e,t,n,r){const a=r.methods.one.setTag;"-"===e[t].post&&e[t+1]&&a([e[t],e[t+1]],"Hyphenated",r,null,"1-punct-hyphen''")};const ol=/^(under|over|mis|re|un|dis|semi)-?/;var il=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(ol.test(a.normal)){let e=a.normal.replace(ol,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var sl=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,"[33m[3m"+a+"[0m").padEnd(24)} [32m→[0m #${t.padEnd(22)} ${(e=>"[3m"+e+"[0m")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const ll=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var ul=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(Ws(e.normal)?sl(e,"Plural","3-plural-guess"):sl(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=fs(e.normal);t&&sl(e,t,"3-verb-tense-guess")}}(r)};const cl=/^\p{Lu}[\p{Ll}'’]/u,hl=/[0-9]/,dl=["Date","Month","WeekDay","Unit","Expression"],gl=/[IVX]/,ml=/^[IVXLCDM]{2,}$/,pl=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,fl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var bl=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===cl.test(o)&&!1===hl.test(o)?dl.find((e=>r.tags.has(e)))||r.pre.match(/["']$/)||"the"===r.normal?null:(ul(e,t,n),r.tags.has("Noun")||r.tags.clear(),sl(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&ml.test(o)&&gl.test(o)&&pl.test(o)&&!fl[r.normal]?(sl(r,"RomanNumeral","2-xvii"),!0):null};const vl=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r)){return t[r.length][r]}}return null};var yl=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=vl(r.normal,n.two.suffixPatterns);if(null!==e)return sl(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=vl(r.implicit,n.two.suffixPatterns),null!==e))return sl(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const wl=/['‘’‛‵′`´]/,kl=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return sl(r,e,"2-prefix"),r.confidence=.5,!0}return null};const Al=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),jl=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Al.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},El=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},Nl=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Dl=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(jl(a)||jl(o))return sl(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(El(a)||El(o))return sl(n,"Year","2-tagYear-close");if(Nl(e[t-2])||Nl(e[t+2]))return sl(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return sl(n,"Year","2-tagYear-noun")}}}return null};var xl=function(e,t,n,r){const a=r.methods.one.setTag,o=e[t],i=["PastTense","PresentTense","Auxiliary","Modal","Particle"];if(o.tags.has("Verb")){i.find((e=>o.tags.has(e)))||a([o],"Infinitive",r,null,"2-verb-type''")}};const Cl=/^[A-Z]('s|,)?$/,Tl=/^[A-Z-]+$/,Ol=/^[A-Z]+s$/,Fl=/([A-Z]\.)+[A-Z]?,?$/,Gl=/[A-Z]{2,}('s|,)?$/,Vl=/([a-z]\.)+[a-z]\.?$/,zl={I:!0,A:!0},Bl={la:!0,ny:!0,us:!0,dc:!0,gb:!0};var Ll=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;if(!1===Tl.test(n)){if(!(n.length>3&&!0===Ol.test(n)))return!1;n=n.replace(/s$/,"")}return!(n.length>5||zl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Fl.test(n)&&!0!==Vl.test(n)&&!0!==Cl.test(n)&&!0!==Gl.test(n))}(r,n)?(r.tags.clear(),sl(r,["Acronym","Noun"],"3-no-period-acronym"),!0===Bl[r.normal]&&sl(r,"Place","3-place-acronym"),!0===Ol.test(r.text)&&sl(r,"Plural","3-plural-acronym"),!0):!zl.hasOwnProperty(r.text)&&Cl.test(r.text)?(r.tags.clear(),sl(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(sl(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Tl.test(r.text)&&r.text.length<=6?(sl(r,"Acronym","3-titlecase-acronym"),!0):null};const $l=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Sl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var Ml=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||$l(e[t-1],a),l=l||$l(e[t+1],o),l=l||Sl(e[t-1],r),l=l||Sl(e[t+1],i),l)return sl(s,l,"3-[neighbour]"),ul(e,t,n),e[t].confidence=.2,!0}return null};const Jl=function(e,t,n){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||!(n||(r=e.text,!/^\p{Lu}[\p{Ll}'’]/u.test(r)))&&(0!==t||e.tags.has("Singular"))));var r};var Hl=function(e,t,n,r){const a=n.model.two.orgWords,o=n.methods.one.setTag;let i=e[t];if(!0===a[i.machine||i.normal]&&Jl(e[t-1],t-1,r)){o([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&Jl(e[a],a,r);a-=1)o([e[a]],"Organization",n,null,"3-[org-word]")}return null};var Wl=function(e,t,n){let r=!1,a=e[t].tags;(0===a.size||1===a.size&&(a.has("Hyphenated")||a.has("HashTag")||a.has("Prefix")))&&(r=!0),r&&(sl(e[t],"Noun","3-[fallback]"),ul(e,t,n),e[t].confidence=.1)};const Kl=/^[A-Z][a-z]/,Ul=(e,t)=>e[t].tags.has("ProperNoun")&&Kl.test(e[t].text)?"Noun":null,ql=(e,t,n)=>0!==t||e[1]?null:n,Rl={"Adj|Gerund":(e,t)=>Ul(e,t),"Adj|Noun":(e,t)=>Ul(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Actor|Verb":(e,t)=>Ul(e,t),"Adj|Past":(e,t)=>Ul(e,t),"Adj|Present":(e,t)=>Ul(e,t),"Noun|Gerund":(e,t)=>Ul(e,t),"Noun|Verb":(e,t)=>Ul(e,t)||ql(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ul(e,t)||ql(e,t,"PresentTense")||function(e,t,n){return 0===t&&e.length>3?n:null}(e,t,"Plural"),"Person|Noun":(e,t)=>Ul(e,t),"Person|Verb":(e,t)=>0!==t?Ul(e,t):null,"Person|Adj":(e,t)=>0===t&&e.length>1||Ul(e,t)?"Person":null};var Ql=Rl;const _l="undefined"!=typeof process&&process.env?process.env:self.env||{},Zl=/^(under|over|mis|re|un|dis|semi)-?/,Yl=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&_l.DEBUG_TAGS&&console.log(`\n [2m[3m ↓ - '${n}' [0m`),r},Xl=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&_l.DEBUG_TAGS&&console.log(` [2m[3m ↓ - '${e.normal||e.implicit}' (#${a}) [0m`),a=t[a],a};var eu=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(Zl.test(l)&&!o[l]&&(l=l.replace(Zl,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=Yl(e[t+1],n.afterWords);return o=o||Yl(e[t-1],n.beforeWords),o=o||Xl(e[t-1],n.beforeTags,a),o=o||Xl(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Ql[o]&&(u=Ql[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),ul(e,t,r)):_l.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}};const tu={there:!0,this:!0,it:!0,him:!0,her:!0,us:!0};var nu=function(e,t){const n=t.methods.one.setTag,r=t.model.one._multiCache||{};let a=e[0];if(("Noun|Verb"===a.switch||a.tags.has("Infinitive"))&&e.length>=2){if(e.length<4&&!tu[e[1].normal])return;if(!a.tags.has("PhrasalVerb")&&r.hasOwnProperty(a.normal))return;if(e[1].tags.has("Noun")||e[1].tags.has("Determiner")){e.slice(1,3).some((e=>e.tags.has("Verb")))&&!a.tags.has("#PhrasalVerb")||n([a],"Imperative",t,null,"3-[imperative]")}}};const ru=function(e){if(e.filter((e=>!e.tags.has("ProperNoun"))).length<=3)return!1;const t=/^[a-z]/;return e.every((e=>!t.test(e.text)))},au=function(e,t,n,r){for(let a=0;a{rl(e,0,t,n);for(let t=0;t{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var lu=function(e){const t=e.world,n=Object.keys(su);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=wu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=yu};var Pu=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const Iu=/'/;var Au=function(e,t){let n=e[t].normal.split(Iu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const ju=/'/;var Eu=function(e,t){let n=e[t].normal.split(ju)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>!(!e[t+1]||"better"!=e[t+1].normal)||e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]};var Nu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){if(e[t+1]&&"never"===e[t+1].normal)return["have"];let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if("i"===n.normal)return["am","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const Du={that:!0,there:!0,let:!0,here:!0,everywhere:!0},xu={in:!0,by:!0,for:!0};var Cu=(e,t)=>{let n=e[t];if(Du.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("QuestionWord"))return!1;if("he's"===n.normal||"she's"===n.normal)return!1;let r=e[t+1];if(!r)return!0;if("it's"===n.normal)return!!r.tags.has("#Noun");if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return"here"!==e&&"there"!==e&&"everywhere"!==e&&(!r.tags.has("Possessive")&&!(r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun")))}if(e[t-1]&&!0===xu[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const Tu=/'/,Ou=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Fu={d:(e,t)=>Eu(e,t),t:(e,t)=>Nu(e,t),s:(e,t,n)=>Cu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Au(e,t)},Gu=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Vu={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===Tu.test(r[o].normal)&&([,i]=r[o].normal.split(Tu));let s=null;Fu.hasOwnProperty(i)&&(s=Fu[i](r,o,t)),s&&(s=Gu(s,e),Pu(n,[a,o],s),Ou(n[a],e,o,s.length))}}))}},zu={compute:Vu,api:ku,hooks:["contractionTwo"]};const Bu="(i|we|they)";let Lu=[].concat([{match:"(got|were|was|is|are|am) (#PastTense|#Participle)",tag:"Passive",reason:"got-walked"},{match:"(was|were|is|are|am) being (#PastTense|#Participle)",tag:"Passive",reason:"was-being"},{match:"(had|have|has) been (#PastTense|#Participle)",tag:"Passive",reason:"had-been"},{match:"will be being? (#PastTense|#Participle)",tag:"Passive",reason:"will-be-cleaned"},{match:"#Noun [(#PastTense|#Participle)] by (the|a) #Noun",group:0,tag:"Passive",reason:"suffered-by"}],[{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,notIf:"(all|even)",tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"[#Hyphenated (#Hyphenated && #PastTense)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"faith-based"},{match:"[#Hyphenated (#Hyphenated && #Gerund)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"self-driving"},{match:"[#PastTense (#Hyphenated && #PhrasalVerb)] (#Noun|#Conjunction)",group:0,tag:"Adjective",reason:"dammed-up"},{match:"(#Hyphenated && #Value) fold",tag:"Adjective",reason:"two-fold"},{match:"must (#Hyphenated && #Infinitive)",tag:"Adjective",reason:"must-win"},{match:"(#Hyphenated && #Infinitive) #Hyphenated",tag:"Adjective",notIf:"#PhrasalVerb",reason:"vacuum-sealed"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"},{match:"[(un|contra|extra|inter|intra|macro|micro|mid|mis|mono|multi|pre|sub|tri|ex)] #Adjective",group:0,tag:["Adjective","Prefix"],reason:"un-skilled"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"},{match:"#Copula [far too] #Adjective",group:0,tag:"Adverb",reason:"far-too"},{match:"#Copula [still] (in|#Gerund|#Adjective)",group:0,tag:"Adverb",reason:"was-still-walking"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"},{match:"#Gerund [#Gerund]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looking-annoying"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",notIf:"#Hyphenated",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"},{match:"no [#Adjective] #Modal",group:0,tag:"Noun",reason:"no-golden"},{match:"[brand #Gerund?] new",group:0,tag:"Adverb",reason:"brand-new"},{match:"(#Determiner|#Comparative|new|different) [kind]",group:0,tag:"Noun",reason:"some-kind"},{match:"#Possessive [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"her-favourite"},{match:"must && #Hyphenated .",tag:"Adjective",reason:"must-win"},{match:"#Determiner [#Adjective]$",tag:"Noun",notIf:"(this|that|#Comparative|#Superlative)",reason:"the-south"},{match:"(#Noun && #Hyphenated) (#Adjective && #Hyphenated)",tag:"Adjective",notIf:"(this|that|#Comparative|#Superlative)",reason:"company-wide"},{match:"#Determiner [#Adjective] (#Copula|#Determiner)",notIf:"(#Comparative|#Superlative)",group:0,tag:"Noun",reason:"the-poor"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,notIf:"(#Modal|#PhrasalVerb)",tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] #Comparative",group:0,tag:"Adverb",reason:"even-worse"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",notIf:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",notIf:"(#PhrasalVerb|#Copula)",reason:"charge-back"},{match:"#Verb [around]",group:0,tag:"Adverb",notIf:"#PhrasalVerb",reason:"send-around"},{match:"[later] #PresentTense",group:0,tag:"Adverb",reason:"later-say"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) (march|may) !#Infinitive",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"(the|any) [more]",group:0,tag:"Singular",reason:"more-noun"},{match:"[more] #Noun",group:0,tag:"Adjective",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Singular",reason:"bit-2"},{match:"a [must]",group:0,tag:"Singular",reason:"must-2"},{match:"(we|us) [all]",group:0,tag:"Noun",reason:"we all"},{match:"due to [#Verb]",group:0,tag:"Noun",reason:"due-to"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",notIf:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"(a|an|the) [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",notIf:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,notIf:"#Gerund",tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense #Particle?]",group:0,tag:"Noun",notIf:"(seem|appear|include|#Gerund|#Copula)",reason:"det-inf"},{match:"#Noun #Actor",tag:"Actor",notIf:"#Person",reason:"thing-doer"},{match:"#Gerund #Actor",tag:"Actor",reason:"gerund-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"[#Noun+] #Actor",group:0,tag:"Actor",notIf:"#Honorific",reason:"air-traffic-controller"},{match:"(urban|cardiac|cardiovascular|respiratory|medical|clinical|visual|graphic|creative|dental|exotic|fine|certified|registered|technical|virtual|professional|amateur|junior|senior|special|pharmaceutical|theoretical)+ #Noun? #Actor",tag:"Actor",reason:"fine-artist"},{match:"#Noun+ (coach|chef|king|engineer|fellow|personality|boy|girl|man|woman)",tag:"Actor",reason:"dance-coach"},{match:"chief . officer",tag:"Actor",reason:"chief-x-officer"},{match:"chief of #Noun+",tag:"Actor",reason:"chief-of-police"},{match:"senior? vice? president of #Noun+",tag:"Actor",reason:"president-of"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]$",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense #Particle?",notIf:"(#Gerund|her)",tag:"Noun",reason:"possessive-verb"},{match:"(my|our|their|her|his|its) [(#Plural && #Actor)] #Noun",tag:"Possessive",reason:"my-dads"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"},{match:"i #Verb [me] #Noun",group:0,tag:"Possessive",reason:"scottish-me"},{match:"[#PresentTense] (music|class|lesson|night|party|festival|league|ceremony)",group:0,tag:"Noun",reason:"dance-music"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,ifNo:"#Copula",tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",notIf:"(still|even|just)",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"},{match:"#Singular for [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"noun-for-gerund"},{match:"#Comparative (for|at) [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"better-for-gerund"},{match:"#PresentTense the [#Gerund]",group:0,tag:"Noun",reason:"keep-the-touching"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner (only|further|just|more|backward) [#Infinitive]",group:0,tag:"Noun",reason:"the-only-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"#Plural on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb #Particle?]",notIf:"(#Copula|#Noun|sure|fun|up)",group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",notIf:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",notIf:"#Preposition",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",notIf:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"better",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",notIf:"(#Copula|better)",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"many-poses"},{match:"#Determiner #Adverb #Adjective [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Copula",reason:"very-big-dream"},{match:"from #Noun to [%Noun|Verb%]",group:0,tag:"Noun",reason:"start-to-finish"},{match:"(for|with|of) #Noun (and|or|not) [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Pronoun",reason:"for-food-and-gas"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #Particle #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense] of",group:0,notIf:"(one|1|#Copula|#Infinitive)",tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",notIf:"#Copula",reason:"our-full-support"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",notIf:"going",reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"},{match:"how to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"how-to-noun"},{match:"which [%Noun|Verb%] #Noun",group:0,tag:"Infinitive",reason:"which-boost-it"},{match:"#Gerund [%Plural|Verb%]",group:0,tag:"Plural",reason:"asking-questions"},{match:"(ready|available|difficult|hard|easy|made|attempt|try) to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"ready-to-noun"},{match:"(bring|went|go|drive|run|bike) to [%Noun|Verb%]",group:0,tag:"Noun",reason:"bring-to-noun"},{match:"#Modal #Noun [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"would-you-look"},{match:"#Copula just [#Infinitive]",group:0,tag:"Noun",reason:"is-just-spam"},{match:"^%Noun|Verb% %Plural|Verb%",tag:"Imperative #Plural",reason:"request-copies"},{match:"#Adjective #Plural and [%Plural|Verb%]",group:0,tag:"#Plural",reason:"pickles-and-drinks"},{match:"#Determiner #Year [#Verb]",group:0,tag:"Noun",reason:"the-1968-film"},{match:"#Determiner [#PhrasalVerb #Particle]",group:0,tag:"Noun",reason:"the-break-up"},{match:"#Determiner [%Adj|Noun%] #Noun",group:0,tag:"Adjective",notIf:"(#Pronoun|#Possessive|#ProperNoun)",reason:"the-individual-goals"},{match:"[%Noun|Verb%] or #Infinitive",group:0,tag:"Infinitive",reason:"work-or-prepare"},{match:"to #Infinitive [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|#Copula|help)",reason:"to-give-thanks"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"},{match:"^[#Value] (#Determiner|#Gerund)",group:0,tag:"Expression",unTag:"Value",reason:"numbered-list"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|brother|father|aunt|uncle|grandpa|grandfather|grandma) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",notIf:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",notIf:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[#Actor+] #Person",group:0,tag:"Person",reason:"baker-sam-smith"},{match:"[(lieutenant|corporal|sergeant|captain|qeen|king|admiral|major|colonel|marshal|president|queen|king)+] #ProperNoun",group:0,tag:"Honorific",reason:"seargeant-john"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:["Honorific","Person"],reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",notIf:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"#Honorific #Actor",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) #Actor",tag:"Honorific",reason:"first lady"},{match:"#Person #RomanNumeral",tag:"Person",reason:"louis-IV"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun",ifNo:"#Actor"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"},{match:"(#FirstName && !#Possessive) [#Singular] #Verb",group:0,safe:!0,tag:"LastName",reason:"jack-layton"},{match:"^[#Singular] #Person #Verb",group:0,safe:!0,tag:"Person",reason:"sherwood-anderson"},{match:"(a|an) [#Person]$",group:0,unTag:"Person",reason:"a-warhol"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:"#Date",group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",notIf:"(come|gotten)",reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(have|had) read",tag:"Modal #PastTense",reason:"read-read"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"},{match:"as #Pronoun [please]",group:0,tag:"Infinitive",reason:"as-we-please"},{match:"[(co|mis|de|inter|intra|pre|re|un|out|under|over|counter)] #Verb",group:0,tag:["Verb","Prefix"],notIf:"(#Copula|#PhrasalVerb)",reason:"co-write"},{match:"#PastTense and [%Adj|Past%]",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"[%Adj|Past%] and #PastTense",group:0,tag:"PastTense",reason:"dressed-and-left"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Copula [#Adjective] (well|badly|quickly|slowly)",group:0,tag:"Verb",reason:"done-well"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"a-bit-confused"},{match:"not be [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"do-not-be-confused"},{match:"#Copula just [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"is-just-right"},{match:"as [#Infinitive] as",group:0,tag:"Adjective",reason:"as-pale-as"},{match:"[%Adj|Past%] and #Adjective",group:0,tag:"Adjective",reason:"faled-and-oppressive"},{match:"or [#PastTense] #Noun",group:0,tag:"Adjective",notIf:"(#Copula|#Pronoun)",reason:"or-heightened-emotion"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"[(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"},{match:"[(been|had|became|came)] #PastTense",group:0,notIf:"#PhrasalVerb",tag:"Auxiliary",reason:"been-told"},{match:"[(being|having|getting)] #Verb",group:0,tag:"Auxiliary",reason:"being-born"},{match:"[be] #Gerund",group:0,tag:"Auxiliary",reason:"be-walking"},{match:"[better] #PresentTense",group:0,tag:"Modal",notIf:"(#Copula|#Gerund)",reason:"better-go"},{match:"even better",tag:"Adverb #Comparative",reason:"even-better"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",notIf:"#Copula",tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"#Verb (up|down|in|on|for)$",tag:"PhrasalVerb #Particle",notIf:"#PhrasalVerb",reason:"come-down$"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Bu,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Bu,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Bu,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",notIf:"(so|such|rather|enough)",reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|a|an|any|each|every|some|more|with|on)",group:0,notIf:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me|there)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^[#Infinitive] (#Adjective|#Adverb)? and #Infinitive",group:0,tag:"Imperative",reason:"call-and-reserve"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^come #Infinitive",tag:"Imperative",notIf:"on",reason:"come-have"},{match:"^come and? #Infinitive",tag:"Imperative . Imperative",notIf:"#PhrasalVerb",reason:"come-and-have"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[(stay|be|keep)] #Adjective",group:0,tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"},{match:"[#Infinitive] what .",group:0,tag:"Imperative",reason:"look-what"},{match:"^[#Infinitive] #Gerund",group:0,tag:"Imperative",reason:"keep-playing"},{match:"^[#Infinitive] (to|for|into|toward|here|there)",group:0,tag:"Imperative",reason:"go-to"},{match:"^[#Infinitive] (and|or) #Infinitive",group:0,tag:"Imperative",reason:"inf-and-inf"},{match:"^[%Noun|Verb%] to",group:0,tag:"Imperative",reason:"commit-to"},{match:"^[#Infinitive] #Adjective? #Singular #Singular",group:0,tag:"Imperative",reason:"maintain-eye-contact"},{match:"do not (forget|omit|neglect) to [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-forget"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"},{match:"#Gerund [#Gerund] #Plural",group:0,tag:"Adjective",reason:"hard-working-fam"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"[right] (before|after|in|into|to|toward)",group:0,tag:"#Adverb",reason:"right-into"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"(are|#Modal|see|do|for) [ya]",group:0,tag:"Pronoun",reason:"are-ya"},{match:"[long live] .",group:0,tag:"#Adjective #Infinitive",reason:"long-live"},{match:"[plenty] of",group:0,tag:"#Uncountable",reason:"plenty-of"},{match:"(always|nearly|barely|practically) [there]",group:0,tag:"Adjective",reason:"always-there"},{match:"[there] (#Adverb|#Pronoun)? #Copula",group:0,tag:"There",reason:"there-is"},{match:"#Copula [there] .",group:0,tag:"There",reason:"is-there"},{match:"#Modal #Adverb? [there]",group:0,tag:"There",reason:"should-there"},{match:"^[do] (you|we|they)",group:0,tag:"QuestionWord",reason:"do-you"},{match:"^[does] (he|she|it|#ProperNoun)",group:0,tag:"QuestionWord",reason:"does-he"},{match:"a [while]",group:0,tag:"Noun",reason:"a-while"},{match:"guess who",tag:"#Infinitive #QuestionWord",reason:"guess-who"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"a #Noun [like] (#Noun|#Determiner)",group:0,tag:"Preposition",reason:"a-noun-like"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Infinitive #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}],[{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^[(well|so|okay|now)] !#Adjective?",group:0,tag:"Expression",reason:"well-"},{match:"^come on",tag:"Expression",reason:"come-on"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"^(ok|alright|shoot|hell|anyways)",tag:"Expression",reason:"ok-"},{match:"^(say && @hasComma)",tag:"Expression",reason:"say-"},{match:"^(like && @hasComma)",tag:"Expression",reason:"like-"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}]);let $u=null;var Su={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;$u=$u||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep($u),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const Mu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Su,model:{two:{matches:Lu}},hooks:["postTagger"]};var Ju=Mu;var Hu=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))};var Wu=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Hu(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},Ku={lib:{lazy:Wu}};var Uu=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e};var qu=function(e,t,n){let r=e.split(/ /g).map((e=>`{${e}}`)).join(" "),a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?Uu(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model));e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this};var Ru={api:function(e){e.prototype.swap=qu}};b.plugin(fu),b.plugin(zu),b.plugin(Ju),b.plugin(Ku),b.plugin(Ru);export{b as default};
+var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((a=>{t.compute.hasOwnProperty(a)?n[a](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t;var a={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let a=this.update([t]);e(a,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let a=this.update([t]),r=e(a,n);return void 0===r?this.none():r}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let a=[];return n.forEach((e=>{a=a.concat(e.fullPointer)})),this.toView(a)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let a=this.update([t]);return e(a,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let a=this.update([t]);return e(a,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let a=this.update([t]);return e(a,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)},isFull:function(){let e=this.pointer;if(!e)return!0;let t=this.document;for(let n=0;no)return!1}return!0},getNth:function(e){return"number"==typeof e?this.eq(e):"string"==typeof e?this.if(e):this}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var o=r;const i=Object.assign({},o,n,a);i.get=i.eq;var s=i;class View{constructor(t,n,a={}){[["document",t],["world",e],["_groups",a],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,a=t||e.map(((e,t)=>[t]));return a.map((e=>{let[t,a,r,o,i]=e;return a=a||0,r=r||(n[t]||[]).length,n[t]&&n[t][a]&&(o=o||n[t][a].id,n[t][r-1]&&(i=i||n[t][r-1].id)),[t,a,r,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[a,r,o]=e;(1===e.length||0===r&&this.document[a].length===o)&&(n[t]=this._cache[a])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),a=new View(n);return a.world=this.world,a.compute(["normal","lexicon"]),this.world.compute.preTagger&&a.compute("preTagger"),a}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var d=function(e,t,n,a){const{methods:r,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(r,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.ex[e]=t[e].pastTense),n.fromPast&&(n.fromPast.ex[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.ex[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.ex[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.ex[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.ex[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.ex[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.ex[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.ex[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.ex[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>a[t]=e.lib[t])),e.tags&&a.addTags(e.tags),e.words&&a.addWords(e.words),e.mutate&&e.mutate(t)};const h=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var m=function(e,t,n){const{methods:a}=n;let r=new t([]);if(r.world=n,"number"==typeof e&&(e=String(e)),!e)return r;if("string"==typeof e){return new t(a.one.tokenize.fromString(e,n))}if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(h(e)){if(h(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(h(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return r};let p=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=m(e,l,p);return e&&n.compute(p.hooks),n};Object.defineProperty(f,"_world",{value:p,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let a=m(e,l,p);return n.contractions&&a.compute(["alias","normal","machine","contractions"]),a},f.plugin=function(e){return d(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.9.0";var b=f;var v=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let a=[t,0].concat(n);Array.prototype.splice.apply(e,a)}return e},I=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},j=(e,t,n)=>{const a=/[-.?!,;:)–—'"]/g;let r=e[t-1];if(!r)return;let o=r.post;if(a.test(o)){let e=o.match(a).join(""),t=n[n.length-1];t.post=e+t.post,r.post=r.post.replace(a,"")}},E=function(e,t,n,a){let[r,o,i]=t;0===o||i===a[r].length?I(n):(I(n),I([e[t[1]]])),function(e,t,n){let a=e[t];if(0!==t||!P(a.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let r=e[t];r.tags.has("ProperNoun")||r.tags.has("Acronym")||P(r.text)&&r.text.length>1&&(r.text=(o=r.text,o.replace(/^\p{Lu}/u,(e=>e.toLowerCase()))));var o}(e,o,n),A(e,o,n)};let N=0;const D=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var C=function(e){let[t,n]=e.index||[0,0];N+=1,N=N>46655?0:N,t=t>46655?0:t,n=n>1294?0:n;let a=D(N.toString(36));a+=D(t.toString(36));let r=n.toString(36);return r=r.length<2?"0"+r:r,a+=r,a+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+a.toUpperCase()};const x=function(e){if(e.has("@hasContraction")&&"function"==typeof e.contractions){e.grow("@hasContraction").contractions().expand()}},T=e=>"[object Array]"===Object.prototype.toString.call(e),F=function(e,t,n){const{document:a,world:r}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,d=a[c],h=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:T(e)?T(e[0])?e[0]:e:[]}(e,r);0!==h.length&&(h=function(e){return e.map((e=>(e.id=C(e),e)))}(h),n?(x(t.update([u]).firstTerm()),E(d,u,h,a)):(x(t.update([u]).lastTerm()),function(e,t,n,a){let[r,,o]=t,i=(a[r]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(a,e);let r=a.docs[0],o=t.possessives&&r[r.length-1].tags.has("Possessive");e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(B,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,a);let i=this.update(n);n=n.map((e=>e.slice(0,3)));let s=(i.docs[0]||[]).map((e=>Array.from(e.tags)));if("string"==typeof e&&(e=this.fromText(e).compute("id")),a.insertAfter(e),i.has("@hasContraction")&&a.contractions){a.grow("@hasContraction+").contractions().expand()}if(a.delete(i),o){let e=a.docs[0],t=e[e.length-1];t.tags.has("Possessive")||(t.text+="'s",t.normal+="'s",t.tags.add("Possessive"))}let l=a.toView(n).compute(["index","lexicon"]);return l.world.compute.preTagger&&l.compute("preTagger"),t.tags&&l.terms().forEach(((e,t)=>{e.tagSafe(s[t])})),t.case&&l.docs[0]&&l.docs[0][0]&&0===l.docs[0][0].index[1]&&(l.docs[0][0].text=l.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),l},z.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let a=this.match(e);return a.found?(this.soften(),a.replaceWith(t,n)):this};var V=z;var H=function(e,t){t.forEach((t=>{let[n,a,r]=t,o=r-a;e[n]&&(r===e[n].length&&r>1&&function(e,t){let n=e.length-1,a=e[n],r=e[n-t];r&&a&&(r.post+=a.post,r.post=r.post.replace(/ +([.?!,;:])/,"$1"),r.post=r.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(a,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],a=n[n.length-1];a&&(a.post=a.post.trimEnd())}return e};const L={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),a=this;e&&(n=this,a=this.match(e));let r=!n.ptrs;if(a.has("@hasContraction")&&a.contractions){a.grow("@hasContraction").contractions().expand()}let o=n.fullPointer,i=a.fullPointer.reverse(),s=H(this.document,i);return o=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(o,t(i)),n.ptrs=o,n.document=s,n.compute("index"),r&&(n.ptrs=void 0),e?n.toView(o):(this.ptrs=[],n.none())}};L.delete=L.remove;var S=L;const $={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let a=n[0];!0===t?a.pre+=e:a.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let a=n[n.length-1];!0===t?a.post+=e:a.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],a=n[n.length-1];return a.post=a.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post})),this}};$.deHyphenate=$.dehyphenate,$.toQuotation=$.toQuotations;var M=$;var J={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,a=t.normal.trim().length;return na?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let a=t[e.normal],r=t[n.normal];return ar?-1:0})),e}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),K=new Set(["freq","frequency","topk","repeats"]),q=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,a)=>(n=e.update([n]),a=e.update([a]),t(n,a)))),e.ptrs=n,e}(this,e);e=e||"alpha";let a=n||t.map(((e,t)=>[t])),r=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:a[t]})));return W.has(e)&&(e="sequential"),q.has(e)&&(e="alpha"),K.has(e)?(r=J.byFreq(r),this.update(r.map((e=>e.pointer)))):"function"==typeof J[e]?(r=r.sort(J[e]),this.update(r.map((e=>e.pointer)))):this}};const R=function(e,t){if(e.length>0){let t=e[e.length-1],n=t[t.length-1];!1===/ /.test(n.post)&&(n.post+=" ")}return e=e.concat(t)};var Q={concat:function(e){if("string"==typeof e){let t=this.fromText(e);if(this.found&&this.ptrs){let e=this.fullPointer,n=e[e.length-1][0];this.document.splice(n,0,...t.document)}else this.document=this.document.concat(t.document);return this.all().compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.docs),e.all()}(this,e);if(t=e,"[object Array]"===Object.prototype.toString.call(t)){let t=R(this.document,e);return this.document=t,this.all()}var t;return this}};var Z={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const X=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},G,V,S,M,U,Q,Z);var _=function(e){Object.assign(e.prototype,X)};const Y={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e))),n[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const re=/'/,oe=new Set(["what","how","when","where","why"]),ie=new Set(["be","go","start","think","need"]),se=new Set(["been","gone"]);var le=function(e,t){let n=e[t].normal.split(re)[0];if(oe.has(n))return[n,"did"];if(e[t+1]){if(se.has(e[t+1].normal))return[n,"had"];if(ie.has(e[t+1].normal))return[n,"would"]}return null};var ue=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ce=/'/;var de=(e,t)=>["je",e[t].normal.split(ce)[1]],he=(e,t)=>{let n=e[t].normal.split(ce)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},ge=(e,t)=>{let n=e[t].normal.split(ce)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const me=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,pe=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,fe=/^[0-9]{3}-[0-9]{4}$/;var be=function(e,t){let n=e[t],a=n.text.match(me);return null!==a?!0===n.tags.has("PhoneNumber")||fe.test(n.text)?null:[a[1],"to",a[2]]:(a=n.text.match(pe),null!==a?[a[1],"to",a[4]]:null)};const ve=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/;var ye=function(e,t,n){const a=n.model.one.numberSuffixes||{};let r=e[t].text.match(ve);if(null!==r){let e=r[2].toLowerCase().trim();return a.hasOwnProperty(e)?null:[r[1],e]}return null};const we=/'/,ke=/^[0-9][^-–—]*[-–—].*?[0-9]/,Pe=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]]},Ae={t:(e,t)=>ue(e,t),d:(e,t)=>le(e,t)},Ie={j:(e,t)=>de(e,t),l:(e,t)=>he(e,t),d:(e,t)=>ge(e,t)},je=function(e,t,n,a){for(let r=0;r{let{world:t,document:n}=e;const{model:a,methods:r}=t;let o=a.one.contractions||[];n.forEach(((a,i)=>{for(let s=a.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(a[s].normal)&&([l,u]=a[s].normal.split(we));let c=je(o,a[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](a,s,t)),!c&&Ie.hasOwnProperty(l)&&(c=Ie[l](a,s)),"there"===l&&"s"===u&&(c=Ne(a,s)),c?(c=Ee(c,e),ae(n,[i,s],c),Pe(n[i],e,s,c.length)):ke.test(a[s].normal)?(c=be(a,s),c&&(c=Ee(c,e),ae(n,[i,s],c),r.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&r.one.setTag([c[0]],"Time",t,null,"time-range"),Pe(n[i],e,s,c.length))):(c=ye(a,s,t),c&&(c=Ee(c,e),ae(n,[i,s],c),r.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))};var Ce={model:ne,compute:{contractions:De},hooks:["contractions"]};var xe=function(e,t,n){const{model:a,methods:r}=n,o=r.one.setTag,i=a.one._multiCache||{},s=a.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,a,r){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e){return o([s],i[e],n,!1,"1-lexicon-alias"),!0}}if(!0===Te.test(l)){let e=l.replace(Te,"");if(i.hasOwnProperty(e)&&e.length>3&&Fe.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var Ge={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let r=e[a],o=(a=(a=a.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[a]=t[a]||r})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}};var ze={addWords:function(e){const t=this.world(),{methods:n,model:a}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:r,_multi:o}=n.two.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:r,_multi:o}=n.one.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else Object.assign(a.one.lexicon,e)}};var Ve={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Be}},compute:Ge,lib:ze,hooks:["lexicon"]};var He=function(e,t){let n=[{}],a=[null],r=[0],o=[],i=0;e.forEach((function(e){let r=0,o=function(e,t){const{methods:n,model:a}=t;let r=n.one.tokenize.splitTerms(e,a).map((e=>n.one.tokenize.splitWhitespace(e,a)));return r.map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=r[i];if(n.hasOwnProperty(i)){let e=n[i][l];r[u]=e,a[e]&&(a[u]=a[u]||[],a[u]=a[u].concat(a[e]))}else r[u]=0}}return{goNext:n,endAs:a,failTo:r}};const Le=function(e,t,n){let a=0,r=[];for(let o=0;o0&&(void 0===t.goNext[a]||!t.goNext[a].hasOwnProperty(i));)a=t.failTo[a]||0;if(t.goNext[a].hasOwnProperty(i)&&(a=t.goNext[a][i],t.endAs[a])){let n=t.endAs[a];for(let t=0;t0&&(a=a.concat(l))}return e.update(a)};const Me=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Je=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Me(e.goNext,void 0),e.failTo=Me(e.failTo,0),e.endAs=Me(e.endAs,null),e};const We={buildTrie:function(e){const t=He(e,this.world());return Je(t)}};We.compile=We.buildTrie;var Ke={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(a=e,"[object Object]"===Object.prototype.toString.call(a)?e:He(e,this.world));var a;let r=$e(this,n,t);return r=r.settle(),r}},lib:We};const qe=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},Ue=function(e,t){let{ptrs:n,byGroup:a}=e;return n=qe(n,t),Object.keys(a).forEach((e=>{a[e]=qe(a[e],t)})),{ptrs:n,byGroup:a}},Re=e=>"[object Object]"===Object.prototype.toString.call(e),Qe=e=>e&&Re(e)&&!0===e.isView,Ze=e=>e&&Re(e)&&!0===e.isNet,Xe=function(e,t,n){const a=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=a.killUnicode(e,n),e=a.parseMatch(e,t,n)),e};var _e={matchOne:function(e,t,n){const a=this.methods.one;if(Qe(e))return this.intersection(e).eq(0);if(Ze(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let r={regs:e=Xe(e,n,this.world),group:t,justOne:!0},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=Ue(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Qe(e))return this.intersection(e);if(Ze(e))return this.sweep(e,{tagger:!1}).view.settle();let r={regs:e=Xe(e,n,this.world),group:t},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=Ue(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Qe(e)){return e.fullPointer.length>0}if(Ze(e))return this.sweep(e,{tagger:!1}).view.found;let r={regs:e=Xe(e,n,this.world),group:t,justOne:!0};return a.match(this.docs,r,this._cache).ptrs.length>0},if:function(e,t,n){const a=this.methods.one;if(Qe(e))return this.filter((t=>t.intersection(e).found));if(Ze(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let r={regs:e=Xe(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return a.match(n.docs,r,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:a}=this,r=a.one;if(Qe(e))return this.filter((t=>!t.intersection(e).found));if(Ze(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Xe(e,n,this.world);let o=this._cache||[],i=this.filter(((n,a)=>{let i={regs:e,group:t,justOne:!0};return 0===r.match(n.docs,i,o[a]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}};var Ye={before:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&r.push([t[0],0,t[1]])}));let i=this.toView(r);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,a]=t;a{let o=n.before(e,t);if(o.found){let e=o.terms();a[r][1]-=e.length,a[r][3]=e.docs[0][0].id}})),this.update(a)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let a=this.fullPointer;return this.forEach(((n,r)=>{let o=n.after(e,t);if(o.found){let e=o.terms();a[r][2]+=e.length,a[r][4]=null}})),this.update(a)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const et=function(e,t){return[e[0],e[1],t[2]]},tt=(e,t,n)=>{return"string"==typeof e||(a=e,"[object Array]"===Object.prototype.toString.call(a))?t.match(e,n):e||t.none();var a},nt=function(e,t){let[n,a,r]=e;return t.document[n]&&t.document[n][a]&&(e[3]=e[3]||t.document[n][a].id,t.document[n][r-1]&&(e[4]=e[4]||t.document[n][r-1].id)),e},at={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=tt(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>nt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=tt(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(et(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>nt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=tt(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(et(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>nt(e,this))),this.update(o)}};at.split=at.splitAfter;var rt=at;const ot=Object.assign({},_e,Ye,rt);ot.lookBehind=ot.before,ot.lookBefore=ot.before,ot.lookAhead=ot.after,ot.lookAfter=ot.after,ot.notIf=ot.ifNo;var it=function(e){Object.assign(e.prototype,ot)};const st=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,lt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,ut=/ /g,ct=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),dt=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(st),n=[];t.forEach((e=>{ct(e)?n.push(e):n=n.concat(e.split(lt))})),n=dt(n);let a=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ct(e)?a.push(e):a=a.concat(e.split(ut))})),a=dt(a),a};const gt=/\{([0-9]+)?(, *[0-9]*)?\}/,mt=/&&/,pt=new RegExp(/^<\s*(\S+)\s*>/),ft=e=>e.charAt(0).toUpperCase()+e.substring(1),bt=e=>e.charAt(e.length-1),vt=e=>e.charAt(0),yt=e=>e.substring(1),wt=e=>e.substring(0,e.length-1),kt=function(e){return e=yt(e),e=wt(e)},Pt=function(e,t){let n={};for(let a=0;a<2;a+=1){if("$"===bt(e)&&(n.end=!0,e=wt(e)),"^"===vt(e)&&(n.start=!0,e=yt(e)),("["===vt(e)||"]"===bt(e))&&(n.group=null,"["===vt(e)&&(n.groupStart=!0),"]"===bt(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===vt(e))){const t=pt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===bt(e)&&(n.greedy=!0,e=wt(e)),"*"!==e&&"*"===bt(e)&&"\\*"!==e&&(n.greedy=!0,e=wt(e)),"?"===bt(e)&&(n.optional=!0,e=wt(e)),"!"===vt(e)&&(n.negative=!0,e=yt(e)),"~"===vt(e)&&"~"===bt(e)&&e.length>2&&(e=kt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("/"===vt(e)&&"/"===bt(e))return e=kt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if(!0===gt.test(e)&&(e=e.replace(gt,((e,t,a)=>(void 0===a?(n.min=Number(t),n.max=Number(t)):(a=a.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(a)):(n.min=Number(t),n.max=Number(a||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"("===vt(e)&&")"===bt(e)){mt.test(e)?(n.choices=e.split(mt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=yt(n.choices[0]);let a=n.choices.length-1;n.choices[a]=wt(n.choices[a]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>Pt(e,t))))),e=""}if("{"===vt(e)&&"}"===bt(e)){if(e=kt(e),n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.sense=e[2])}return n}if("<"===vt(e)&&">"===bt(e))return e=kt(e),n.chunk=ft(e),n.greedy=!0,n;if("%"===vt(e)&&"%"===bt(e))return e=kt(e),n.switch=e,n}return"#"===vt(e)?(n.tag=yt(e),n.tag=ft(n.tag),n):"@"===vt(e)?(n.method=yt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var At=Pt;const It=/[a-z0-9][-–—][a-z]/i;var jt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let a=e[t];if(a.word&&It.test(a.word)){let r=a.word.split(/[-–—]/g);if(n.hasOwnProperty(r[0]))continue;r=r.filter((e=>e)).reverse(),e.splice(t,1),r.forEach((n=>{let r=Object.assign({},a);r.word=n,e.splice(t,0,r)}))}}return e};const Et=function(e,t){let{all:n}=t.methods.two.transform.verb||{},a=e.root;return n?n(a,t.model):[]},Nt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Dt=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var Ct=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(Et(e,t)):"Noun"===e.pos?n=n.concat(Nt(e,t)):"Adjective"===e.pos&&(n=n.concat(Dt(e,t))):(n=n.concat(Et(e,t)),n=n.concat(Nt(e,t)),n=n.concat(Dt(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))};var xt=function(e){return e=function(e){let t=0,n=null;for(let a=0;a(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e};var Tt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let a=ht(e);return a=a.map((e=>At(e,t))),a=jt(a,n),a=Ct(a,n),a=xt(a),a};const Ft=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ot=function(e,t){for(let n=0;nn?a:n)+1;if(Math.abs(n-a)>(r||100))return r||100;let o,i,s,l,u,c,d=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=d[r-1][o]+1,(c=d[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=d[r-2][o-2]+l)-1!==e.post.indexOf(t),St=(e,t)=>-1!==e.pre.indexOf(t),$t={hasQuote:e=>Bt.test(e.pre)||zt.test(e.post),hasComma:e=>Lt(e,","),hasPeriod:e=>!0===Lt(e,".")&&!1===Lt(e,"..."),hasExclamation:e=>Lt(e,"!"),hasQuestionMark:e=>Lt(e,"?")||Lt(e,"¿"),hasEllipses:e=>Lt(e,"..")||Lt(e,"…")||St(e,"..")||St(e,"…"),hasSemicolon:e=>Lt(e,";"),hasColon:e=>Lt(e,":"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Vt.test(e.post)||Vt.test(e.pre),hasDash:e=>Ht.test(e.post)||Ht.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};$t.hasQuotation=$t.hasQuote;var Mt=$t;let Jt=function(){};Jt=function(e,t,n,a){let r=function(e,t,n,a){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==a-1)return!1;if(void 0!==t.id&&t.id===e.id)return!0;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Gt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Mt[t.method]&&!0===Mt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}if(void 0!==t.chunk)return e.chunk===t.chunk;if(void 0!==t.switch)return e.switch===t.switch;if(void 0!==t.machine)return e.normal===t.machine||e.machine===t.machine||e.root===t.machine;if(void 0!==t.sense)return e.sense===t.sense;if(void 0!==t.fastOr){if(t.pos&&!e.tags.has(t.pos))return null;let n=e.root||e.implicit||e.machine||e.normal;return t.fastOr.has(n)||t.fastOr.has(e.text)}return void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Jt(e,t,n,a))):t.choices.some((t=>Jt(e,t,n,a))))}(e,t,n,a);return!0===t.negative?!r:r};var Wt=Jt;const Kt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){qt(e,e.t).length=a-e.t}return e.t=a,!0};const Rt=function(e,t=0){let n=e.regs[e.r],a=!1;for(let o=0;o{let r=0,o=e.t+a+t+r;if(void 0===e.terms[o])return!1;let i=Wt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let a=n.every(((t,n)=>{let a=e.t+n;return void 0!==e.terms[a]&&Wt(e.terms[a],t,a,e.phrase_length)}));return!0===a&&n.length>t&&(t=n.length),a}))&&t}(e);if(a){if(!0===n.negative)return null;if(!0===e.hasGroup){qt(e,e.t).length+=a}if(!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=a,!0}return!!n.optional||null};var Xt=function(e,t,n){let a=0;for(let r=e.t;ra)&&(e.t+=a,!0))};var _t=function(e){const{regs:t}=e;let n=t[e.r],a=Object.assign({},n);if(a.negative=!1,Wt(e.terms[e.t],a,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];if(n){if(Wt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length))e.r+=1;else if(n.optional&&t[e.r+2]){Wt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2)}}}return n.greedy?Xt(e,a,t[e.r+1]):(e.t+=1,!0)};var Yt=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=Wt(a,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||r){let n=e.terms[e.t+1];n&&Wt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var en=function(e){const{regs:t,phrase_length:n}=e;let a=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),a=e.t;for(;e.te.t?null:!0!==a.end||e.start_i+e.t===n||null};var tn=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}};var nn=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=e.t;if(n.optional&&t[e.r+1]&&n.negative)return!0;if(n.optional&&t[e.r+1]&&Yt(e),a.implicit&&e.terms[e.t+1]&&tn(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!en(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=qt(e,t);e.t>1&&n.greedy?a.length+=e.t-t:a.length++}(e,r),!0};var an=function(e,t,n,a){if(0===e.length||0===t.length)return null;let r={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:a,inGroup:null};for(;r.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy)if(void 0===e.choices||"or"!==e.operator)if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything)if(!0!==Kt(e,r))if(e.negative){if(!_t(r))return null}else if(!0!==Wt(r.terms[r.t],e,r.start_i+r.t,r.phrase_length)){if(!0!==e.optional)return null}else{if(!nn(r))return null}else{if(!nn(r))return null}else{if(e.negative&&e.anything)return null;if(!nn(r))return null}else{if(!Zt(r))return null}else{if(!Qt(r))return null}else{if(!Ut(r))return null}}let o=[null,n,r.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(r.groups).forEach((e=>{let t=r.groups[e],a=n+t.start;i[e]=[null,a,a+t.length]})),{pointer:o,groups:i}};var rn=function(e,t){let n=[],a={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{a[t]=a[t]||[],a[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:a}};var on=function(e,t,n){return e=e.filter((e=>{let[a,r,o]=e.pointer,i=n[a].slice(r,o);for(let e=0;e{e.groups[n][0]=t})),e},ln=function(e,t,n){let a=an(e,t,0,e.length);return a?(a=sn(a,n),a):null};var un=function(e,t,n){n=n||[];let{regs:a,group:r,justOne:o}=t,i=[];if(!a||0===a.length)return{ptrs:[],byGroup:{}};const s=a.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=ln(r,a,t);e&&i.push(e)}}return!0===a[a.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),t.notIf&&(i=on(i,t.notIf,e)),i=rn(i,r),i.ptrs.forEach((t=>{let[n,a,r]=t;t[3]=e[n][a].id,t[4]=e[n][r-1].id})),i};var cn={api:it,methods:{one:{termMethods:Mt,parseMatch:Tt,match:un}},lib:{parseMatch:function(e,t){const n=this.world();let a=n.methods.one.killUnicode;return a&&(e=a(e,n)),n.methods.one.parseMatch(e,t,n)}}};const dn=/^\../,hn=/^#./,gn=function(e,t){let n={},a={};return Object.keys(t).forEach((r=>{let o=t[r],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),dn.test(e)?t=``),t+=">",{start:t,end:n}}(r);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let r=e[e.length-1].id;a[r]=a[r]||[],a[r].push(i.end)}))})),{starts:n,ends:a}};var mn={html:function(e){let{starts:t,ends:n}=gn(this,e),a="";return this.docs.forEach((e=>{for(let r=0;r{let n=e.pre||"",r=e.post||"";"some"===t.punctuation&&(n=n.replace(fn,""),vn.test(r)&&(r=" "),r=r.replace(bn,""),r=r.replace(/\?!+/,"?"),r=r.replace(/!+/,"!"),r=r.replace(/\?+/,"?"),r=r.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(r=r.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),r=r.replace(/\s+/," ")),t.keepPunct||(n=n.replace(fn,""),r="-"===r?" ":r.replace(pn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||r&&yn.test(r)||(r+=" "),a+=n+o+r})),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},kn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{keepSpace:!1,whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};kn.clean=kn.normal,kn.reduced=kn.root;var Pn=kn;let An=[],In=0;for(;In<64;)An[In]=0|4294967296*Math.sin(++In%Math.PI);function jn(e){let t,n,a,r=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(In=i=0;In>4]+An[i]+~~o[In|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|a>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)r[--i]+=s[i]}for(e="";i<32;)e+=(r[i>>3]>>4*(1^i++)&15).toString(16);return e}const En={text:!0,terms:!0};let Nn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const Dn=function(e,t){return Object.assign({},e,t)},Cn={text:e=>wn(e,{keepPunct:!0},!1),normal:e=>wn(e,Dn(Pn.normal,{keepPunct:!0}),!1),implicit:e=>wn(e,Dn(Pn.implicit,{keepPunct:!0}),!1),machine:e=>wn(e,Nn,!1),root:e=>wn(e,Dn(Nn,{form:"root"}),!1),hash:e=>jn(wn(e,{keepPunct:!0},!1)),offset:e=>{let t=Cn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};Cn.sentences=Cn.sentence,Cn.clean=Cn.normal,Cn.reduced=Cn.root;const xn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},En,a)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let r={};return Object.keys(a).forEach((o=>{a[o]&&Cn[o]&&(r[o]=Cn[o](e,n,t))})),r})));var n,a;return"number"==typeof e?t[e]:t}};xn.data=xn.json;var Tn=xn;var Fn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};var On={green:e=>"[32m"+e+"[0m",red:e=>"[31m"+e+"[0m",blue:e=>"[34m"+e+"[0m",magenta:e=>"[35m"+e+"[0m",cyan:e=>"[36m"+e+"[0m",yellow:e=>"[33m"+e+"[0m",black:e=>"[30m"+e+"[0m",dim:e=>"[2m"+e+"[0m",i:e=>"[3m"+e+"[0m"};var Gn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(On.blue("\n ──────")),t.forEach((t=>{console.log(On.blue("\n ┌─────────")),t.forEach((t=>{let a=[...t.tags||[]],r=t.text||"-";t.sense&&(r=`{${t.normal}/${t.sense}}`),t.implicit&&(r="["+t.implicit+"]"),r=On.yellow(r);let o="'"+r+"'";if(t.reference){let n=e.update([t.reference]).text("normal");o+=` - ${On.dim(On.i("["+n+"]"))}`}o=o.padEnd(18);let i=On.blue(" │ ")+On.i(o)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return On[n](e)}))),e.join(", ")}(a,n);console.log(i)}))}))};var Bn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(On.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(On.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(On.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(On.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))};var zn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let a=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{a=function(e,t,n){let a=((e,t,n)=>{let a=9*n,r=t.start+a,o=r+t.length;return[e.substring(0,r),e.substring(r,o),e.substring(o,e.length)]})(e,t,n);return`${a[0]}${On.blue(a[1])}${a[2]}`}(a,e.offset,t)})),console.log(a)}))};var Vn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(Fn(t),t):(!1!==e.tags&&(Gn(t),console.log("\n")),!0===e.chunks&&(Bn(t),console.log("\n")),!0===e.highlight&&(zn(t),console.log("\n")),t)};const Hn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Ln=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((a=>{e.match(a).fullPointer.forEach((e=>{n[e[3]]={fn:t[a],end:e[2]}}))})),n}(e,t),a="";return e.docs.forEach(((t,r)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()},wrap:function(e){return Ln(this,e)}};var $n=Sn;var Mn={text:function(e){let t={};var n;if(e&&"string"==typeof e&&Pn.hasOwnProperty(e)?t=Object.assign({},Pn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e)),void 0===t.keepSpace&&this.pointer&&(t.keepSpace=!1),void 0===t.keepPunct&&this.pointer){let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}return void 0===t.keepPunct&&(t.keepPunct=!0),void 0===t.keepSpace&&(t.keepSpace=!0),function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let a=0;ar||r<=n&&o>n},Un=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Rn=function(e,t){let n=Un(t),a=[];return e.forEach((e=>{let[t]=e,r=n[t]||[];if(r=r.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===r.length)return void a.push({passthrough:e});r=r.sort(((e,t)=>e[1]-t[1]));let o=e;r.forEach(((e,t)=>{let n=function(e,t){let[n,a]=e,r=t[1],o=t[2],i={};if(ao&&(i.after=[n,o,e[2]]),i}(o,e);r[t+1]?(a.push({before:n.before,match:n.match}),n.after&&(o=n.after)):a.push(n)}))})),a};var Qn=function(e,t){let n=[];return e.forEach(((a,r)=>{if(!a)return;let[o,i,s,l,u]=a,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let a=0;a<20;a+=1){if(t[n-a]){let r=t[n-a].findIndex((t=>t.id===e));if(-1!==r)return[n-a,r]}if(t[n+a]){let r=t[n+a].findIndex((t=>t.id===e));if(-1!==r)return[n+a,r]}}return null}(l,t,o);if(null!==n){let a=s-i;c=t[n[0]].slice(n[1],n[1]+a);let o=c[0]?c[0].id:null;e[r]=[n[0],n[1],n[1]+a,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,a,,,r]=e,o=t[n],i=o.findIndex((e=>e.id===r));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(a,e[2]+1)}(a,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n};var Zn={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===a[t].length)return void r.push(e);let n=a[t].filter((t=>qn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);r.push(o)})),r=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n};var Yn=function(e,t){let n=Un(t),a=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>qn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},ta=function(e,t){return e.map((e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e}))},na={union:function(e){e=ea(e,this);let t=Xn(this.fullPointer,e.fullPointer);return t=ta(t,this.document),this.toView(t)}};na.and=na.union,na.intersection=function(e){e=ea(e,this);let t=Yn(this.fullPointer,e.fullPointer);return t=ta(t,this.document),this.toView(t)},na.not=function(e){e=ea(e,this);let t=_n(this.fullPointer,e.fullPointer);return t=ta(t,this.document),this.toView(t)},na.difference=na.not,na.complement=function(){let e=this.all(),t=_n(e.fullPointer,this.fullPointer);return t=ta(t,this.document),this.toView(t)},na.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=Xn(e,[t])})),e=ta(e,this.document),this.update(e)};var aa=function(e){Object.assign(e.prototype,na)},ra={methods:Zn,api:aa};var oa=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:a}=this,{methods:r}=n;let o=r.one.bulkMatch(a,e,this.methods,t);!1!==t.tagger&&r.one.bulkTagger(o,a,this.world),o=o.map((e=>{let t=e.pointer,n=a[t[0]][t[1]],r=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+r]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const ia=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var sa=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.notIf&&(e.notIf=n(e.notIf,{},t)),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(ia(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(ia(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:a,count:r}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=ia(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=a,e.minWant=r,e.minWords=e.regs.filter((e=>!e.optional)).length})),e};var la=function(e,t){e=sa(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let a=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:a}};var ua=function(e,t){return e.map(((n,a)=>{let r=[];Object.keys(t).forEach((n=>{e[a].has(n)&&(r=r.concat(t[n]))}));let o={};return r=r.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),r}))};var ca=function(e,t){return e.map(((e,n)=>{let a=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>a.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>a.has(e)))))).filter((e=>{if(0===e.wants.length)return!0;return e.wants.filter((e=>a.has(e))).length>=e.minWant}))}))};var da=function(e,t,n,a,r){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===r.matchOne))return[o[0]]}return o};var ha=function(e,t,n,a={}){let r=n.one.cacheDoc(e),o=ua(r,t.hooks);return o=ca(o,r),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let a=t[n].length;return e=e.filter((e=>a>=e.minWords)),e}))}(o,e),da(o,e,r,n,a)};var ga=function(e,t,n){let a=n.one.tagSet;if(!a.hasOwnProperty(t))return!0;let r=a[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let r=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===ga(u,e.tag,a))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${r}'`),"Noun"===e.tag&&l)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,r),e.chunk&&u.forEach((t=>t.chunk=e.chunk))}))},pa={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:oa,methods:{one:{buildNet:la,bulkMatch:ha,bulkTagger:ma}}};const fa=/ /,ba=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},va=function(e,t,n,a){if(!0===e.tags.has(t))return null;if("."===t)return null;let r=n[t];if(r){if(r.not&&r.not.length>0)for(let t=0;t0)for(let t=0;t{let a=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,"[33m[3m"+r+"[0m").padEnd(24)} [32m→[0m #${t.padEnd(22)} ${(e=>"[3m"+e+"[0m")(n)}`)})(e,t,r),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),fa.test(t))!function(e,t,n,a){let r=t.split(fa);e.forEach(((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),va(e,o,n,a))}))}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nya(e,t,n,a)))};var wa=ya;var ka=function(e,t,n){t=t.trim().replace(/^#/,"");for(let a=0;a0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>Pa({id:e}))),t}return[Pa({id:e})]}(e))})),n=n.filter((e=>e));let a=n[0];for(let e=1;e{let n=[],a=[e];for(;a.length>0;){let e=a.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),a.push(n)}))}return n},Ea=e=>"[object Array]"===Object.prototype.toString.call(e),Na=e=>(e=e||"").trim(),Da=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||Aa.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Ia(e)})}));let a=function(e){let t={children:[]};return e.forEach(((n,a)=>{0===n.indent?t.children=t.children.concat(n.node):e[a-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=Pa({});return e.forEach((e=>{if((e=Pa(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(ja(t=e).forEach(Pa),t);var t},Ca=function(e,t){let n="-> ";t&&(n=(e=>"[2m"+e+"[0m")("→ "));let a="";return ja(e).forEach(((e,r)=>{let o=e.id||"";if(t&&(o=(e=>"[31m"+e+"[0m")(o)),0===r&&!e.id)return;let i=e._cache.parents.length;a+=" ".repeat(i)+n+o+"\n"})),a},xa=function(e){let t=ja(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Ta={text:Ca,txt:Ca,array:xa,flat:xa},Fa=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Ca(e,!0)),null):Ta.hasOwnProperty(t)?Ta[t](e):e},Oa=e=>{ja(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Ga=/\//;let Ba=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Na(e),!Ga.test(e)){let t=this.json.children.find((t=>t.id===e));return new Ba(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!a)return null;e=a}return e})(this.json,e)||Pa({});return new Ba(t)}add(e,t={}){if(Ea(e))return e.forEach((e=>this.add(Na(e),t))),this;e=Na(e);let n=Pa({id:e,props:t});return this.json.children.push(n),new Ba(n)}remove(e){return e=Na(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return ja(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=ja(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return ja(this.json)}fillDown(){var e;return e=this.json,ja(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let a=e[n]||new Set;e[n]=new Set([...a,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let a=e[n]||{};e[n]=Object.assign({},t[n],a)}else Ea(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Oa(this.json);let e=ja(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Oa(this.json),Fa(this.json,e)}debug(){return Oa(this.json),Fa(this.json,"debug"),this}};const za=function(e){let t=Da(e);return new Ba(t)};za.prototype.plugin=function(e){e(this)};var Va={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Hyphenated:"cyan",Adverb:"cyan"};const Ha=function(e){if(Va.hasOwnProperty(e.id))return Va[e.id];if(Va.hasOwnProperty(e.is))return Va[e.is];let t=e._cache.parents.find((e=>Va[e]));return Va[t]};var La=function(e){const t={};return e.forEach((e=>{let{not:n,also:a,is:r,novel:o}=e.props,i=e._cache.parents;a&&(i=i.concat(a)),t[e.id]={is:r,not:n,novel:o,also:a,parents:i,children:e._cache.children,color:Ha(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const Sa=function(e){return e?"string"==typeof e?[e]:e:[]};var $a=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=Sa(e[t].children),e[t].not=Sa(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e};var Ma=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=$a(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const a={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:a,children:[]}}));return za(t).cache().fillDown().out("array")}(Object.assign({},t,e));return La(n)},Ja={one:{setTag:wa,unTag:ka,addTags:Ma}};const Wa=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Ka={tag:function(e,t="",n){if(!this.found||!e)return this;let a=this.termList();if(0===a.length)return this;const{methods:r,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Wa(e)?e.forEach((e=>r.one.setTag(a,e,i,n,t))):r.one.setTag(a,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:a,verbose:r,model:o}=this;!0===r&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Wa(e)?e.forEach((e=>a.one.unTag(n,e,i))):a.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){e=e.replace(/^#/,"");let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],a=[];this.document.forEach(((e,t)=>{e.forEach(((e,r)=>{n.find((t=>e.tags.has(t)))&&a.push([t,r,r+1])}))}));let r=this.update(a);return this.difference(r)}};var qa=Ka;var Ua=function(e){Object.assign(e.prototype,qa)};var Ra={addTags:function(e){const{model:t,methods:n}=this.world(),a=t.one.tagSet;let r=(0,n.one.addTags)(e,a);return t.one.tagSet=r,this}};const Qa=new Set(["Auxiliary","Possessive"]);var Za=function(e){const{document:t,world:n}=e,a=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Qa.has(e)||!t.hasOwnProperty(n))return 1;if(Qa.has(n)||!t.hasOwnProperty(e))return-1;let a=t[e].children||[],r=a.length;return a=t[n].children||[],r-a.length})),e}(t,a)}))}))},Xa={model:{one:{tagSet:{}}},compute:{tagRank:Za},methods:Ja,api:Ua,lib:Ra};const _a=/([.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s)/g,Ya=/^[.!?\u203D\u2E18\u203C\u2047-\u2049\u3002]+\s$/,er=/((?:\r?\n|\r)+)/;var tr=function(e){let t=[],n=e.split(er);for(let e=0;e0&&(r.push(o),e[t]="")}return r};const ir={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},sr=RegExp("["+Object.keys(ir).join("")+"]","g"),lr=RegExp("["+Object.values(ir).join("")+"]","g"),ur=function(e){if(!e)return!1;let t=e.match(lr);return null!==t&&1===t.length};var cr=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var Er=function(e,t){let n=[],a=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const r=e.split(Ir);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=kr(n),n=yr(n),n=n.filter((e=>e)),n};const Nr=/\p{Letter}/u,Dr=/[\p{Number}\p{Currency_Symbol}]/u,Cr=/^[a-z]\.([a-z]\.)+/i,xr=/[sn]['’]$/;var Tr=function(e,t){let{prePunctuation:n,postPunctuation:a,emoticons:r}=t.one,o=e,i="",s="",l=Array.from(e);if(r.hasOwnProperty(e.trim()))return{str:e.trim(),pre:i,post:" "};let u=l.length;for(let e=0;e(s=e||"",""))),e=o,i=""),{str:e,pre:i,post:s}};var Fr=(e,t)=>{let{str:n,pre:a,post:r}=Tr(e,t);return{text:n,pre:a,post:r,tags:new Set}};var Or=function(e,t){const n=t.model.one.unicode||{};let a=(e=e||"").split("");return a.forEach(((e,t)=>{n[e]&&(a[t]=n[e])})),a.join("")};var Gr=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Br=/([A-Z]\.)+[A-Z]?,?$/,zr=/^[A-Z]\.,?$/,Vr=/[A-Z]{2,}('s|,)?$/,Hr=/([a-z]\.)+[a-z]\.?$/;var Lr=function(e){return function(e){return!0===Br.test(e)||!0===Hr.test(e)||!0===zr.test(e)||!0===Vr.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Sr=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Gr(a),a=n(a,t),a=Lr(a),e.normal=a};var $r=function(e,t){const{methods:n,model:a}=t,{splitSentences:r,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=r(e=e||"",t).map((e=>{let n=o(e,a);return n=n.map((e=>i(e,a))),n.forEach((e=>{Sr(e,t)})),n})),e};const Mr=/[ .][A-Z]\.? *$/i,Jr=/(?:\u2026|\.{2,}) *$/,Wr=/\p{L}/u,Kr=/^[A-Z]\. $/;var qr={one:{killUnicode:Or,tokenize:{splitSentences:fr,isSentence:function(e,t){if(!1===Wr.test(e))return!1;if(!0===Mr.test(e))return!1;if(3===e.length&&Kr.test(e))return!1;if(!0===Jr.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),a=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(a)},splitTerms:Er,splitWhitespace:Fr,fromString:$r}}};var Ur={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Rr={},Qr={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Rr[t]=!0,Qr[t]="Abbreviation",void 0!==e[1]&&(Qr[t]=[Qr[t],e[1]])}))}));var Zr=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out","ex"].reduce(((e,t)=>(e[t]=!0,e)),{});let Xr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},_r={};Object.keys(Xr).forEach((function(e){Xr[e].split("").forEach((function(t){_r[t]=e}))}));const Yr=/\//,eo=/[a-z]\.[a-z]/i,to=/[0-9]/;var no=function(e,t){let n=e.normal||e.text||e.machine;const a=t.model.one.aliases;if(a.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(a[n])),Yr.test(n)&&!eo.test(n)&&!to.test(n)){let t=n.split(Yr);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const ao=/^\p{Letter}+-\p{Letter}+$/u;var ro=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),ao.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var oo=function(e){let t=e.docs,n={};for(let e=0;euo(e,no),machine:e=>uo(e,ro),normal:e=>uo(e,Sr),freq:oo,offset:io,index:so,wordCount:lo},methods:qr,model:{one:{aliases:Ur,abbreviations:Rr,prefixes:Zr,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},prePunctuation:{"#":!0,"@":!0,_:!0,"°":!0,"":!0,"":!0,"":!0,"\ufeff":!0},postPunctuation:{"%":!0,_:!0,"°":!0,"":!0,"":!0,"":!0,"\ufeff":!0},lexicon:Qr,unicode:_r,emoticons:{"<3":!0,"3":!0,"<\\3":!0,":^P":!0,":^p":!0,":^O":!0,":^3":!0}}},hooks:["alias","machine","index","id"]};var ho={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let a=n[n.length-1]||[],r=a[a.length-1];if(!r.post&&t.hasOwnProperty(r.normal)){let n=t[r.normal];r.implicit=n,r.machine=n,r.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const go=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var mo=function(e){e.prototype.autoFill=go};var po=function(e,t,n){let a={},r=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete a[e]})),a};const fo={safe:!0,min:3};var bo={typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},fo,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=po(e,t,this.world());return Object.keys(r).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=r[e]})),this}};var vo={model:{one:{typeahead:{}}},api:mo,lib:bo,compute:ho,hooks:["typeahead"]};b.extend(ee),b.extend(Kn),b.extend(cn),b.extend(ra),b.extend(Xa),b.plugin(Ce),b.extend(co),b.plugin(k),b.extend(Ke),b.extend(vo),b.extend(Ve),b.extend(pa);var yo={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos",volcano:"volcanoes"},wo={Comparative:"true¦bett1f0;arth0ew0in0;er",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦began,came,d1had,lied,mea0sa1we0;nt;id",Participle:"true¦0:0A;a07b02c00dXeat0fSgQhPoJprov0rHs7t6u4w1;ak0ithdra03o2r1;i03uZ;k0rn,v0;nd1pr05;ergoJoJ;ak0hHo3;e9h7lain,o6p5t4un3w1;o1um;rn;g,k;ol0reT;iRok0;ught,wn;ak0o1ruL;ne,wn;en,wn;ewriOi1uK;dd0s0;ut3ver1;do4se0t1;ak0h2;do2g1;roH;ne;ast0i7;iv0o1roE;ne,tt0;all0loCor1roz0;bi3g2s1;ak0e0;iv0oA;dd0;ove,r1;a6eamt,iv0u1;nk;hos0lu1;ng;e4i3lo2ui1;lt;wn;tt0;at0en,gun;r2w1;ak0ok0;is0;en",Gerund:"true¦accord0be0doin,go0result0stain0;ing",Expression:"true¦a0Wb0Sc0Qd0Me0Kg0EhYjeez,lVmUnSoMpJsHtGuDvoi0Yw6y0;a4e3i1u0;ck,p;k03p0;ee,pee;ah,p,s;!a,y;a5h2o1t0;af,f;rd up,w;atsoever,e1o0;a,ops;e,w;hoo,t;gh,h0;! 0h,m;huh,oh;here nQsk,ut tut;h0ic;eesh,hh,it,oo;ff,h1l0ow,sst;ease,s,z;ew,ooey;h1i,mg,o0uch,w,y;h,o,ps;! 0h;h1my go0w1;d,sh;ell;ah,evertheless,o0;!pe;eh,mm;ah,eh,m1ol0;!s;ao,fao;aCeBi9o2u0;h,mph,rra0zzC;h,y;l1o0;r6y9;la,y0;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww,xcuse me;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;mon,o0;ngratulations,wabunga;a2oo1r0tw,ye;avo,r;!ya;h,m; 1h0ka,las,men,rgh,ye;!a,em,h,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦dick0gre0ones,records;ens","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦bewa0come he0;re",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦its,my,none,our0thy;!s","Noun|Verb":"true¦0:9D;1:8N;2:81;3:9I;4:98;5:91;6:84;7:72;8:92;9:8K;A:9N;a93b84c6Xd68e5Yf5Bg52h4Si4Kj4Hk4El42m3Qn3Mo3Jp2Jqu2Ir1Ts0FtZuXvSwEyDzB;ip,oB;ne,om;awn,e5Xie5Q;aLeJhGiEoCrB;ap,e93;nd0rBu8I;k,ry,sh51th;ck,nBpe,re,sh;!d,g;e7MiB;p,sB;k,p0t1;aBed;r,th0;it,lk,rCsBt4ve,x;h,te;!ehou2raA;aEiDoB;iBm9te,w;ce,d;be,ew,s9;cuum,l3Z;pBr6;da5gra5Wlo5S;aOeNhrMiLoJrEuCwiBy5H;n,st;nBrn;e,n74;aDeCiBot,u8;bu5ck46gg0m,p;at,k,nd;ck,de,in,nsBp,v70;f0i88;ll,ne,p,r4Jss,t8LuB;ch,r;ck,de,e,le,me,p,re;e5Fow,u8;ar,e,ll,mp0st,xt;g,lBng1rg75s5x;k,ly;a0Mc0He0Eh09i07k05l03m02n01ou7JpVqua6YtIuDwB;ea7PiB;ng,pe,t4;bEit,m,ppCrB;ge,pri2v2L;lBo69;e66y;!je7;aKeJiIoFrCuBy1;dy,ff,mb1;a7MeCiBo58ugg1;ke,ng;am,ss,t4;ckCop,p,rB;e,m;ing,pi1;ck,nk,t4;m,p;ck,ge,in,ke,lCmp,nd,p1rBte,y;!e,t;k,l;aFeed,iElDot,rBur;ay,e4PinBu3;g,k1;a58it;ll,n,r7Pte;n,rk;ap,ee1Pow;a54e43i1o4Q;eep,iBou4;ce,p,t;ateboa74iB;!p;de,gnBp,ze;!al;aEeDiCoBuff1;ck,p,re,w;ft,p,v0;d,i3M;ck,de,pe,re,ve;aCed,nBrv1Ft;se,t2G;l,r4t;aEhedu1o5RrB;aCeBibb1o3N;en,w;pe,t4;le,n,r0P;cBil;k,rifi3;aXeFiEoCuB;b,in,le,n,s5H;a8ck,ll,oBpe,u5;f,t;de,ng,p,s1P;aRcQdo,el,fOgNje7lMmKnJo13pHque8sDturn,vBwa6G;eBi20;al,r2;er6PoDpe7tCuB;lt,me;!a4Q;l6Mrt;air,eaBly,o4O;l,t;dezvo2Ot;aBedy;ke,rk;ea2i41;a63ist0r57;act6Jer1Oo6MuB;nd,se;a2Wo60;ch,s61;c16ge,i2ke,lly,nBpZtZ;ge,k,t;es5Xiv0;a03eZhXiVlRoLrCsy4uB;mp,n4rcha2sh;aIeGiFoBu4A;be,ceDdu3fi1grBje7mi2p,te8;amBe6G;!me;ed,ss;ce,de,nt;sBy;er5Ys;cti3i2;iFlDoCp,re,sBw0;e,i5Kt;l,p;iBl;ce,sh;nt,s5H;aCce,e2QuB;g,mp,n6;ce,nBy;!t;ck,le,nBpe,t,vot;!e;a2oB;ne,tograph;ak,eDnCrBt;fu4Qm9;!c2P;!l,r;ckGiFnErtDsCtBu2;ch,eA;s,te;!y;!ic;nt,r,se;!a6;bje7ff0il,oCrButli3Cver3W;b9d0ieA;ze;a4DeDoB;d,tB;e,i3;ed,gle7t;aIeGiFoCuB;rd0;ck,d3Eld,nBp,uth,ve;it52kB;ey;lk,n3Zrr50ss,x;asu3Hn4JrBss;ge,it;il,nDp,rk3KsCtB;ch,t0;h,k;da5n0oeuv3C;aJeHiFoCuB;mp,st;aCbby,ck,g,oBve;k,t;d,n;cBft,m9nFst;en2k;aBc0Ie4vH;ch,d,k,p,se;bCcBnd,p,t4un4;e,k;el,o2K;eCiBno44;ck,ll,ss;el,y;aCo1GuB;i3mp;m,zz;mpHnCr3WssB;ue;cr1Idex,fluEha1k,se27teBvoi3;nt,rB;e8fa3viB;ew;en3;a7le20;aGeEiDoCuB;g,nt;l30no23ok,p,r2u2;ghlight,ke,nt,re,t;aBd6lp;d,t;ck,mDndCrBsh,t33;b3Pm,ne44ve8;!le;!m0;aIloHossGrDuB;arBe40n;antee,d;aCiBou2Tumb1;nd,p;de,sp;ip;ss,w;g,in,me,ng,s,te,ze;aWeTiOlLoHrDuB;ck,el,nBss,zz;c32d;aCoBy;st,wn;cBgme,me;tu1W;cDg,il,ld,rB;ce,e23mB;!at;us;aCe0Pip,oBy;at,ck,od,w;g,ke,me,re,sh,vo19;eEgDlCnBre,sh,t,x;an3i0L;e,m,t0;ht,u1L;ld;aCeBn3;d,l;r,tu1H;ce,il,ll,rm,v2R;cho,d6ffe7nJsHxDyeB;!baB;ll;cDerci2hib9pBtra7;eriBo0R;en3meA;el,han6u2;caBtima5;pe;count0d,vy;aXeQiKoHrCuBye;b,el,mp,plica5;aEeDiCoB;ne,p;ft,nk,p,ve;am,ss;ft,g,in;cCd6ubt,wnloB;ad;k,u0A;p,sDt4vB;e,iBor3;de;char6gui2h,liCpB;at4lFu5;ke;al,ba5cFfeElDma1Apos9siCtaB;il;gn,re;ay;at,ct;li02rB;ea2;b,ma6n3rBte;e,t;a0Cent0Bh04irc1l01oIrDuB;be,e,rBt;e,l,ve;aEeDoCuBy;sh;p,ss,wd;d9ep;ck,ft,sh;at,de,in,lRmKnDpy,re,st,uBv0;gh,nBp1;sZt;ceFdu7fli7glomeGsDtBveL;a7rB;a8ol;eAtru7;ct;ntBrn;ra5;bFfoEmDpB;leBou0Iromi2;meA;a0GeAit,u5;rt;at,iB;ne;lap2oB;r,ur;aCiB;ck,p;im,w;aCeBip;at,ck,er;iEllen6nCrB;ge,m,t;ge,nB;el;n,r;er,re;ke,ll,mp,noe,pDrVsCtBu2ve;alog,ch;h,t;!tuB;re;a02eYiWlSoOrFuCyB;pa0Y;bb1ck1dgCff0mp,rBst,zz;den,n;et;anIeGiEoadDuB;i2sh;se;ca8;be,d6;ge;aBed;ch,k;ch,d;aDg,mb,nCoBtt1x,ycott;k,st,t;d,e;rd,st;aDeCiBoWur;nk,tz;nd;me;as,d,ke,nd,opsy,tB;ch,e;aDef,lt,nBt;d,ef9;it;r,t;ck,il,l05nGrDsCtt1;le;e,h;gBk;aBe;in;!d,g,k;c01dXge,iWlTnRppOrKsGttEucCwaB;rd;tiB;on;aBempt;ck;k,sB;i8ocia5;te;st;chCmB;our;!iB;ve;eCroa4;ch;al;chBg0sw0;or;aCt0;er;rm;d,m,r;dreDvB;an3;ce;ss;cBe,he,t;eDoB;rd,uA;nt;nt,ss",Actor:"true¦0:7E;1:7J;2:6D;3:7I;4:7R;5:7N;6:74;a6Rb66c4Zd4Fe45f3Vg3Eh33i2Xj2Tki2Rl2Mm28n20o1Tp0Wqu0Ur0KsRtKuIvFw9yo7;gi,ut7;h,ub0;aBeAi9o8r7;estl0it0;m2rk0;fe,nn0t2Dza2J;atherm2ld0;ge earn0it0nder0rri1;eter8i7oyG;ll5Up,s43;an,ina2X;n7s0;c6Yder04;aoisea25eAherapi5iktok0o9r7ut1yco6;a7endseMo47;d0mp,nscri0Cvel0;ddl0u1H;a0Rchn8en7na4st0;ag0;i3So0E;aiYcVeShQiNki0mu29oKpHquaGtCu8wee7;p0theart;lt2per8r7;f0ge6viv1;h7inten0Jst5Mvis1;ero,um2;a9ep8r7;ang0eam0;bro2Qc2Rfa2Qmo2Qsi23;ff0tesm2;tt0;ec8ir2Go7;kesp5Du0N;ia5Nt3;l8me6En,rcere7ul;r,ss;di0oi5;n8s7;sy,t0;g0n0;am2ephe1Kow7;girl,m2r2T;cretJnior cit3Jr7;gea4v7;a4it1;hol51i8reen7ulpt1;wr2F;e02on;l1nt;aFeAo9u7;l0nn7;er up,ingF;g44le mod43of0;a53c9fug2Tpo36searRv7;ere4Yolution7;ary;e7luZru25;ptio3X;bbi,dic5Zpp0;arter7e33;back;aZeXhTiSlPoLr9sycho8u7;nk,p36;logi5;aHeEiCo7;dAfess1g8ph4Bs7;pe2Otitu55;en7ramm0;it1y;igy,uc0;est4Rme mini0Xnce7s3I;!ss;a8si7;de4;ch0;ctiti3Dnk0S;dca0Ret,li7pula54rnst46;c2Mtic7;al scie7i2;nti5;a7umb0;nn0y7;er,ma4Pwright;lgrim,one0;a9iloso8otogra8ra7ysi1Z;se;ph0;ntom,rmaci5;r7ssi1X;form0s6;i3Il,nel42r9st1tr7wn;i7on;arYot;ent50i46tn0;ccupa4ffCp9r8ut7;ca5l0E;ac4Mganiz0ig2Jph2;er3t7;i1Nomet7;ri5;ic0spring;aDeBie51o9u7;n,rse7;!r3M;b7mad,vi4Y;le2Yo4G;i7mesis,phew;ce,ghb1;nny,rr3t21;aFeEiBo8u7yst22;m9si19;der3gul,m8n7th0;arEk;!my;ni8s7;f04s0Lt0;on,st0;chan1Unt1rcha4;giAk0n9rtyr,t7y1;e,riar7;ch;ag0iac;ci2stra3L;a8e2Dieutena4o7;rd,s0v0;bor0d8ndlo7ss,urea3Iwy0ym2;rd;!y;d,n7;!s2A;anitor ,e9o8u7;ggl0;gg0urna2W;st0;c6dol,llu3Wmmigra4n7;-lAc1Sfa4habi44nov3s8ve7;nt1stig3;pe0Pt7;a1Hig3ru0O;aw;airGeCistoBo9u7ygie1M;man7nt0sba2J;!ita9;bo,st7usekO;age,e3R;ri2;ir,r7;m8o7;!ine;it;dress0sty2E;aMeJhostHirl28ladi3oDrand8u7;e5ru;cAdaugTfa9m8pa7s6;!re4;a,o7;th0;hi1D;al8d7lf0;!de3C;ie,k7te28;eep0;!wr7;it0;isha,n7;i7tl06;us;mbl0rden0;aFella,iBo8r7;eela2Pie1R;e,re7ster pare4;be1Jm2r7st0;unn0;an31g9lmm19nanci0r7tt0;e7st la2J; marsh2Qfig7m2;ht0;rm0th0;conoFdElectriDm9n8x7;amin0cellency,i2B;emy,trepreneur,vironmenta1K;c9p7;er1loye7;e,r;ee;ci2;it1;mi5;aLeCi9ork,ri8u7we03;de,tche2I;ft0vK;ct3eti8plom2Ire7va;ct1;ci2ti2;aEcor3fencDi0JnBputAs8tectNvel7;op0;ce1He7ign0;rt0;ee,y;iz7;en;em2;c6l0;dAnc0redev9ught7;er7;! ;il;!dy;a06e04fo,hXitizenWlToCrAu7;r3stomer7;! representat7;ive;e3it7;ic;-work0lJmGnAord9rpor1Nu7wboy;n7ri0sin ;ciUte1R;in3;fidantBgressTsAt7;e0Lr7;ibut1o7;ll0;tab14ul1P;!e;edi2m7pos0rade;a0FeRissi7;on0;leag9on8um7;ni5;el;ue;e7own;an0r7;ic,k;!s;aAe8i7um;ld;erle7f;ad0;ir8nce7plGract0;ll1;m2wJ;lebri7o;ty;dCptBr7shi0;e8pe7;nt0;r,t7;ak0;ain;et;aNeMiKlogg0oFrCu7;dd0Gild0rglAsiness7;m2p8w7;om2;ers6;ar;i8o7;!k0th0;cklay0de,gadi0;hemi2oge9y7;!frie7;nd;ym2;an;cyc7sS;li5;atbox0ings;by,nk0r7;b0on8te7;nd0;!e08;c05dXge4nRpMrIsGtBu8yatull7;ah;nt8t7;h1oH;!ie;h9t7;e7orney;nda4;ie5le7;te;sis01tron7;aut,om0;chbis9isto8tis7;an,t;crV;hop;ostAp7;ari7rentiT;ti6;on;le;aAcest1im3nou9y7;bo7;dy;nc0;ly5rc7;hi5;mi9v7;entur0is1;er;ni8r7;al;str3;at1;or;counCquaintanBrobAt7;ivi5or,re7;ss;st;at;ce;ta4;nt","Adj|Noun":"true¦0:18;a15b0Zc0Od0Me0Hf0Bg0Ah08i06ju05l03mWnUoSpNrJsCt8u5v2w1;atershed,elcome;a1ision0R;gabo4nilla,ria1;b0Ont;ndergr1pstairs;adua0Vou1;nd;a3e1oken,ri0;en,r1;min0rori0U;boo,n;age,e5ilv09lack,o3quat,ta2u1well;bordina0Oper5;b0Endard;ciali0Pl1vereign;e,ve0Z;cret,n1ri0;ior;a3e1outiTubbiL;ar,bBla0Qnt0p1side0V;resenta0Publican;ci0Ish;a4eriodic0otenti0r1;emi2incip0o1;!fession0;er,um;rall4st,tie0O;ff1pposi09v0;ensi0Ii05;aggVov1;el;a6e4in3o1;biVder00r1;al,t0;iature,or;di1tr0G;an,um;le,riA;attIiber0u1;sh;stice,veniN;de0mpressioRn1;cumbe08dividu0no07sta08terim;alf,o1umdrum;bby,melA;enious,old,ra01;a4e2i1luid,ugiZ;ne;llow,m1;aEiJ;ir,t,vo1;riLuriL;l3pZx1;c1ecuSpeU;ess;d1iH;er;arl3e1;mographTrivaN;hiElassSo2rude,unn1;ing;m4n1operaK;creAstitueOtempor2vertab1;le;ary;m2p1;anion,lex;er2u1;ni7;ci0;e5lank,o4r1;i2u1;te;ef;ttom,urgeois;st;cademBd8l4n2r1;ab,ctA;im0tarct9;al;e3terna1;ti1;ve;rt;oles1ult;ce1;nt;ic","Adj|Past":"true¦0:30;1:2R;2:2U;a2Jb2Dc1Ud1Be15f10gift0h0Xi0Qj0Pknown,l0Mm0Hn0Fo0Cp05qua04rVsEtAu7v5w3;arp0ea3or5;kIth2T;a3e0W;ri0;n3pd1s0;derstood,i3;fi0t0;ar5hreatCr3wi2R;a3ou19;ck0in0pp0;get0ni1N;aHcaGeEhDimCm01oak0pAt6u3;bsid28gge2Ms3;pe3ta1S;ct0nd0;at0e5r3uV;ength3ip0;en0;am0reotyp0;eci3ik0ott0;al20fi0;pIul1;ar0ut;a3c1Jle2t1S;l0t0;r0tt25;t3ut0;is1Jur1;aAe3;c7duc0f1Cg6l1new0qu5s3;pe2t3;or0ri2;e22ir0;ist1Xul1;eiv0o3ycl0;mme09rd0v1V;lli0ti1A;li19;arallel0i0Kl7o6r3ump0;e4o3;ce0Ilo0Hnou1Tpos0te2;fe0Loc8pY;i1Gli0R;a3e19;nn0;c4rgan1Bverlo3;ok0;cupi0;e3ot0;ed0gle2;a5e4ix0o3ut0;di0Vt0G;as0Qlt0;n3rk0;ag0ufact0O;eft,i4o3;ad0st;cens0mit0st0;agg0us0N;mp8n3sol1;br0debt0f6t3volv0;e3ox0F;gr1n3re18;d0si0J;e2l1oX;li0oLrov0;amm10e1o3;ok0r3;ri0E;aNe6i5lavo09oc05r3;a3i0;ct07g0Mm0;niXx0;ar0;duc1l1mbarraKn7quipp0stabliVx3;agger1p3te5;a4e3;ct0rie0S;nd0;ha0QsZ;aJeAi3;gni01miniOre2s3;a7c5grun05t3;o3reBurb0;rt0;iplSou3;nt0rE;bl0;cenVdOf8l7pre6ra5t3velop0;a3ermO;il0;ng0;ss0;ay0ight0;e4o3;rm0;rr0;m3t0;ag0;alcul1eHharg0lGo8r5u3;lt3stomS;iv1;a4owd0u3;sh0;ck0mp0;d0lo9m6n3ok0vX;centr1f4s3troll0;idVolid1;us0;b4pl3;ic1;in0;ur0;assi5os0;lebr1n5r3;ti3;fi0;tralB;a7i6o4roken,urn3;ed,t;il0r0t3und;tl0;as0;k0laIs0;bandon0cJdGffe2lDnBpp9ss7u3ward0;g4thor3;iz0;me3;nt0;o5u3;m0r0;li0re3;ci1;im1ticip1;at0;leg0t3;er0;ct0;ju4o6va3;nc0;st0;ce3knowledg0;pt0;ed",Singular:"true¦0:5I;1:5G;2:4V;3:4R;4:51;5:56;6:5K;a4Zb4Ic3Ld33e2Vf2Kg2Eh23in1Zj1Yk1Xl1Qm1In1Eo18p0Pqu0Or0DsXtKuFvAw7x r55yo yo;a7ha3N;f3i4Nt0Ey7;! arou37;arAe8o7;cabu4Gl59;gMr7t;di4Wt1T;iety,ni4L;n9p2Yr8s 7;do41s5B;bani1in0;coordinat38der7;estima1to1Zwe3Z; rex,aIeHhFiDoCr9u8v7;! show;m2Mn2rntJto19;agedy,ib7o4A;e,u7;n0ta43;ni1p2rq3J;c,er,m7;etD;ing7ree23;!y;am,mp3D;ct2le6x return;aLcKeIhor4NiHkFoEpin off,tBu9y7;ll7ner4Jst4Q;ab2V;b7i1n26per bowl,rro1U;st3Jtot0;at8ipe2Eo1Grate4Fudent7;! lo0F;i37u1;ft ser4Imeo1D;elet5i7;ll,r3R;b36gn2Rte;ab2Hc7min39;t,urity gu2L;e6ho2W;bbatic0la3Gndwi0Mpi5;av5eBhetor2i8o7;de6om,w;t8v7;erb2A;e,u0;bBc9f7publ2r0Vspi1;er7orm3;e6r0;i7ord label;p2Ft0;a1u43;estion mark,ot2D;aMeJhotocoUiGlEoCr8u7yram1D;ddi3EpCrpo1Hs3G;e9o7;bl3Ws7;pe3Gta1;dic1Pmi1Dp1Oroga3Sss relea1D;p7rt0;py;a7ebisci1;q2Bte;cn2e8g7;!gy;!r;anut,d8r7t0yo1;cen3Hsp3I;al,est0;nop4r8t7;e,hog5;adi10i2S;atme0bj3Dc9pia1rde0thers,utspok5ve7wn3;n,r7;ti0Nview;cu8e7;an;pi3;ar9it8ot7umb3;a2Dhi2P;e,ra1;cot2ra35;aCeAi8o7ur0é0B;nopo4p17rni2Lsq1Qti34uld;c,li10n07s7tt5;chief,si32;d7nu,t0;al,ic;gna1mm0nd15rsupi0te7yf4;ri0;aBegAi9u7;ddi1n7;ch;ght bulb,me,p09ving room; 8e0M;bor14y 7;up;eyno1itt5;el4ourn0;c9dices,itia2Nni25s8tel0Mvert7;eb1K;e28titu1;en2Ki2T;aGeCighBo8u7;man right,s22;me7rmoDsp1Gtb0L;! r7;un; scho0ZriZ;a7i1M;d7v5; start,pho7;ne;ndful,sh brown,v5ze;aAelat0Jlaci3r8u7yp1S;l4y;an7enadi3id;a1Bd slam,ny;df4r7;l2ni1G;aGeti1FiFlEoBr8un7;er0;ee market,i8on7;ti3;ga1;l4ur7;so7;me;ow3u1;eNref4;br2mi4n0Z;conoDffi1Mgg,lecto0Pmbas1BnApidem2s1Wth2ven9x8yel7;id;ampXempl0Lte6;i16t;er1Iterp7;ri7;se;my;eJiCo9r7ump truck;agonf4i7;er,ve thru;c8g1Bi4or,ssi3wn7;side;to0CumenC;aCgniBnn3s8vide7;nd;conte6incen1Bp7tri0Y;osi7;tion;ta0E;le0U;ath9c8f7ni0terre6;ault 03err0;al,im0;!b7;ed;aUeRhKiJlHoBr7;edit c9uc7;ib7;le;ard;efficBke,lAmmuniqJns8pi3rr0t0Uus7yo1;in;erv7uG;atoZ;ic,lO;ie6;er0Li7oth;e6n2;ty,vil wK;aBeqAick5oco9r7;istmas car7ysanthemum;ol;la1;ue;ndeli3racteri7;st2;i8llCr7;e0tifica1;liW;hi3nDpCrAt7ucus;erpi7hedr0;ll7;ar;!bohyd7ri3;ra1;it0;a7e;l,ry;aJeIiop2leGoEreakCu7;nAr7tterf4;g7i0;la7;ry;ny;fa7thro9;st;dy,ro7wl;ugh;mi7;sh;an,l4;nki9r7;!ri3;er;ng;cQdKlGnDppeti1rBs9tt2utop7;sy;ic;ce6pe7;ct;r7sen0;ay;ec8oma4ti8;ly;do1;i5l7;er7y;gy;en; hominBj8van7;tage;ec7;ti7;ve;em;cAe8qui7;tt0;ta1;te;i8ru0;al;de6;nt","Person|Noun":"true¦a07b01cYdRePfOgMhJjFkiElDmBolive,p7r4s3trini00v1wa0;ng,rd;an,enus,iol0;a,et;ky,on5umm02;ay,e1o0uby;bin,d,se;ed,x;a2e0ol;aHn0;ny;ge,tM;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Actor|Verb":"true¦aHbDcAd8engineFfool,g6host,judge,m4nerd,p3recruit,s1ushFvolunteFwi0;mp,tneF;cout,p0;ons6y;arent,ilot;a0ime;n,st9;eek,oof,r0uide;aduBoom;elegAoct0;or;ha1o0;ach,nscript,ok;mpion,uffeur;o2u0;lly,tch0;er;ss;d0ffili1rchite2;di1voc0;ate;ct",MaleName:"true¦0:DO;1:CO;2:D7;3:AJ;4:CK;5:BZ;6:CF;7:D3;8:BS;9:AR;A:DB;B:D4;C:94;D:BM;aC9bB7cA7d98e8If82g7Fh6Si6Cj5Ek52l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Jkaria,n0C;hFkE;!aC7;ar5UeC6;aMoGuE;sEu2LvBJ;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB8ssY;avi3ho4;aNeLiGoEyaBN;jcie87lfgang,odrow,utE;!er;lEnst1;bGey,fredAlE;aAZiE;am,e,s;e97ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Xy;aHiEladimir,ojte7U;cFha0kt67nceErgA5va0;!nt;e3Xt65;lentEn9S;inE;!e;ghBElyss59nax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r59;avAHeEist0oy,um0;ntA9v5Wy;bGd8RmEny;!as,mEoharu;aCCie,y;iCy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8G;!de5;dHrE;en98rE;an97eEy;ll,n96;!dy;dgh,ha,iEnn3req,tsu4R;cAPka;aUcotSeQhMiKoIpenc3tEur1Xylve96zym1;anGeEua85;f0phBCvEwa84;e5Zie;!islaw,l8;lom1uE;leyma6ta;dElCm1yabonga;!dhart74n8;aGeE;lErm0;d1t1;h7Kne,qu11un,wn,y6;aEbasti0k2Cl4Prg4Mth,ymoAE;m5n;!tE;!ie,y;lFmEnti2Gq58ul;!ke5JmDu4;ik,vato7O;aZeVhe9ViRoIuFyE;an,ou;b7DdFf5pe7KssE;!elBJ;ol3Fy;an,bLc62dJel,geIh0landAmHnGry,sFyE;!ce;coe,s;!aA1nD;an,eo;l45r;er78g3n8olfo,riE;go;bDeAQ;cEl8;ar6Ic6HhFkEo;!ey,ie,y;a8Vie;gFid,ubByEza;an1KnZ;g9SiE;na9Os;ch6Qfa4lImHndGpha4sFul,wi2HyE;an,mo6U;h7Jm5;alAXol2U;iACon;f,ph;ent2inE;cy,t1;aJeHhilGier6TrE;aka18eE;m,st1;!ip,lip;dA4rcy,tE;ar,e3Er1Y;b4Hdra73tr6JulE;!o19;ctav3Di3liv3m9Yndrej,rIsFtEum7wB;is,to;aFc7k7m0vE;al5S;ma;i,vM;aMeKiGoEu38;aEel,j5l0ma0r3I;h,m;cFg4i46kEl2R;!au,h7Gola;hEkEolC;olC;al,d,il,ls1vE;il8J;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Gr1;hamFr6KstaE;fa,p54;ed,mI;di0Xe,hamGis2CntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Uik;house,o0Ct1;ae5Oe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2AlSmadXnRrLs1tGuricFxE;imilianAwe9;e,io;eHhFiCtEus,yC;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Ysha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5G;ou;aXeRiPlo39oLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7BrenGuEv81we9;!iE;e,s;!zo;am,oE;n4r;a7Uevi,la4AnIonHst3thaGvE;eEi;nte;bo;!a6Del;!ny;mFnd1rEur54wr54;ry,s;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubCnJrHsE;eFhEi7Wue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Gy;!e5OrE;ey,y;cLdBkJmIrGsFvi3yE;dBs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i70maEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dB;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5K;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4Y;oGrE;aEry;ld,rdA;ffr8rge;brFlBrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymBzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estAie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4FsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydCy29;!lC;!a2HnEov0;e9ie,y;go,iFykC;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l36n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1C;aEie;rdA;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar17b0Vd0Rf0Pgust2hm0Mi0Jja0Il03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndA;!el,ki;ie;ta;aq;as,dIgelAtE;hony,oE;i6nE;!iAy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;aRbeQdBeKfIi,lHonGphZt1vE;aOin;on;so,zo;an,en;onVrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtA;dd2n;ni;dBm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfAri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Uncountable:"true¦0:33;1:2J;2:2Q;3:38;4:3H;a31b2Sc2Gd27e1Wf1Sg1Jh1Bi16j13k11l0Wm0Mn0Io0Hp07r03sOtBuran2Qv9w5you gu0J;a7his1Ci6oo5;d,l;ldlife,ne;rmAt2;apor,ernacul2Gi5;neg2Fol1Ttae;eGhEiDoBr6un5yranny;a,gst1G;aff2Vea1Po6ue nor5;th;o0Du5;ble5se1Yt;!shoot0;night,othpas1Zwn5;foGsfoG;me off,n;er5und2;e,mod2Y;a,nnis;aGcFeEhCiBkiAo9p8t6u5weepstak1;g20nshi2Nshi;ati0Ce5;am,el;ace2Qeci1;ap,cc2meth0;n,ttl1;lk;eep,ingl1o5;pp0r1F;lf,na1Jri1;ene1Pisso1F;d0Zfe3l6nd,t5;i0Lurn;m1Zt;abi1e6ic5;e,ke18;c5i04laxa14search;ogni13rea13;aCeBhysAl9o7re5ut3;amble,mis1s5ten25;en24s0O;l5rk;i2Dl0HyK;ast1Wuto; 1Ai4;a28tr0H;nt5rk0ti0O;i1s;bstetri4vercrowd0xyg0B;a7e6owada5utella;ys;ptu1Sws;il poli01tional securi3;aCeAo7u5;m5s1L;ps;n5o1O;ey,o5;gamy;a5cha0Glancholy,rchandi1Ltallurgy;sl1t;chine5g1Ej1Lrs,thema1U; learn0ry;aught2e8i7ogi6u5;ck,g16;c,s1Q;ce,ghtn0nguis1PteratYv2;ath2isXss;ara0GindergartRn5;icke0Cowled12;e5upit2;a5llyfiIwel0K;ns;ce,gnor8mp7n5;forma02ter5;net,sta09;atiUort5rov;an1C;a9e8isto0Do5ung2;ckey,mework,ne6o5rseradiAspitali3use arrest;ky;s3y;adquarteZre;ir,lib03ppiJs5;hi5te;sh;eneAl8o7r5um,ymnas15;a5e03;niWss;lf,re;ut5yce0J;en; 5ti4;edit0po5;ol;aPeel0icHlour,o6urnit5;ure;od,rgive5uri2wl;ness;arEcono0PducaDlectrBn9quipAthi4very8x5;ist6per5;ti0F;en0N;body,o0Cth0;joy5tertain5;ment;ici3o5;ni4;tiW;nings,th;eBi8o6raugh5ynas3;ts;pe,wnstai5;rs;abet1ce,s5;hon03repu5;te;b5miZ;ut;aFelciEhCivi4lAo5urrency;al,ld w8mmenta7n5ral,ttKuscoD;fusiJt 5;ed;ry;ar;assi4oth1;es;aos,e5;eOw0;us;d,rQ;aAi8lood,owl0read7u5;nt0tt2;er;!th;lliarLs5;on;g5ss;ga5;ge;cMdviLeroIirHmDn8ppeal court,r6spi5thleN;rin;ithmet5sen5;ic;i8y5;o6th0;ing;ne;se;en7n5;es3;ty;ds;craft;bi4d5nau9;yna5;mi4;ce;id,ous5;ti4;cs",Infinitive:"true¦0:8W;1:99;2:9T;3:8G;4:7M;5:9F;6:9X;7:8I;8:9P;9:9G;A:9W;B:9B;C:83;D:8A;E:86;F:8N;G:8B;a8Ib7Xc72d5We4Qf4Dg48h43i3Jj3Gk3El35m2Ynou41o2Rp2Aqu29r1Cs0BtXuSvQwH;aNeMiKors4rH;eIiH;ng,te;ak,st3;d4e7VthH;draw,er;a2d,ep;i2ke,nHrn;d1t;aHie;li9SniAry;nHplift;cov1dIear80found7WlHplug,rav7Jtie,ve8K;eaAo3R;erHo;cut,go,sta9Vval9Jwhelm;aSeQhNoMrHuI;aIeH;mb3;ffi3Lmp3nsH;aDpH;i7oE;pp3ugh4;aIiIrHwaE;eat4i2;nk;aHm9F;ch,se;ck3ilor,keHmp1r80;! paE;a0Gc0Fe0Dh09i07l05mugg3n04o02pZquYtRuJwH;all7GeeHim;p,t4;bLccKffJggeBmmIp2KrH;mouFvi2;ari0on;er,i5;e77umb;li91mIsiHveE;de,st;er9it;aLe83iJrH;ang3eHi2;ng23w;fHng;f4le;gg1rH;t3ve;a41iA;a4KeIit,l6XoH;il,of;ak,nd;lHot70w;icCve;atGeak,i0M;aHi6;m,y;ft,nHt;g,k;aJi5UoIriHun;nk,v67;ot,rt4;ke,rp4tt1;eHll,nd,que7Wv1w;!k,m;aven9ul8C;dd4tis1Dy;a0CeJiIoH;am,ut;d,p4;a07b05c03d02fZgroup,heaYiXlVmUnTpRq3CsNtLup,vH;amp,eIiHo31;sCve;l,rH;e,t;i7rH;ie2ofC;eFiJpo85tHurfa5;o1YrH;a51iDuctu7;de,gn,st;el,hra0lHreseF;a5e6I;d1ew,o05;a4We36o2;a8eFiHoad,y;e2nq3Rve;mbur0nf2Z;r0t;inIleDocus,reAuH;el,rbiA;an5e;aDu5;ei2k7Sla3ToHyc3;gni31nci3up,v1;oot,uH;ff;ct,d,liH;se,ze;tt3viA;aAenGit,o8;aVerTinpoiFlumm1GoSrKuH;b3Tke,niArHt;poEsuH;aFe;eLoH;cJd,fe4HhibCnoIpo0sp1tru6vH;e,i6o55;un5;la3Du7;aGclu6dIf1occupy,sup0FvH;a5TeF;etermi4DiD;aGrtr55sse4A;cei2fo47iAmea8plex,sHva6;eve7iBua6;mp1rHtrol,ve,y;a60t5W;bMccuLmCpKutJverHwe;lap,sHtu6Gu0;ee,h1A;gr4Ynu25pa5;era8i43po0;py,r;ser2ta3S;aLe0SiIoHultiply;leBu69;micInHspla5;ce,g3us;!k;iHke,na9;m,nta3L;aOeKiHo0u3B;e,ke,ng1quHv4;eHi6C;fy;aJnHss4;d,gH;th4;rn,ve;ng29u1H;eep,nH;e3Xow;o39uH;gg3xtaH;po0;gno7mUnHrk;cSdQfPgeBhOitia8ju7q17sMtJun5ZvH;a6eHo0W;nt,rt,st;erIimi5WoxiOrH;odu5u6;aDn,pr01ru5X;iBpi7tHu7;il,ruD;abCibC;eBo31u0;iHul9;ca8;i8lu6;b5Imer0pH;aKer4Fin9ly,oIrH;e2Xis5Vo2;rt,se,veH;riA;le,rt;aKeJiHoiBuE;de,jaHnd1;ck;ar,iQ;mp1ng,pp4rang58ve;ath1et,i2le1XoKrH;aIeHow;et;b,pp3ze;!ve4W;aSer3Ri5ElRorLrIuH;lf3Zndrai0r3V;eIiHolic;ght4;e0Nsh4;b3JeKfeCgIsH;a32ee;eHi2;!t;clo0go,shHwa4M;ad35;ee,i2V;lt1st4;a0KdCl0Im0CnUquip,rTsStGvQxH;a20cNeEhMiLpItHu6;ing0Uol;eIi7lHo0un9;a1VoC;ct,di8l;st,t;a3oE;e2RlH;a0Wu6;alua8oH;ke,l2;chew,pou0tab12;a0u4J;aXcUdSfRgPhan5joy,lOqNrMsuLtJvH;e0UisH;a9i4O;er,i5rH;a1HenGuB;e,re;iGol;ui7;ar9iB;a9eHra2ulf;nd1;or5;ang1oHu7;r0w;irc3lo0ou0BrIuH;mb1;oaGy42;b3ct;bJer9pH;hasiHow1;ze;a0Rody,rH;a5oiH;d1l;ap0eDuH;ci3Qde;rHt;ma0Ln;a0Le01iJo,rHwind3;aw,ed9oH;wn;agno0e,ff1g,mi2AsKvH;eHul9;rHst;ge,t;ab3bTcOlod9mant3pMru3JsLtH;iHoEu2X;lIngH;uiA;!l;ol2ua6;eHla5o0ro2;n0r0;a2Oe2XlJoHu0L;uHv1;ra9;aHo0;im;a3Bur0;af4bXcRduDep4fQliPmMnKpJra1WsiBtaGvH;eHol2;lop;aEiDlo7oE;oHy;te,un5;eIoH;liA;an;mCv1;a5i07o03raud,y;ei2iLla7oJrH;ee,yH;!pt;de,mHup3;missi2Ypo0;de,ma8ph1;aIrief,uH;g,nk;rk;mp4rk4uF;a09ea0h06i05l04oIrHurta1B;a2ea8ipp3;ales5e01habCinci6ll00mYnHrro6;cVdSfOju7no8qu1sLtJvH;eHin5;ne,r9;aHin27ribu8;in;er2iIoli29pi7titu8uH;lt;d1st;eJiIoHroFu0;rm;de,gu7rm;ss;eIoH;ne;mn,n0;eHlu6ur;al,i2;buBe,men5pH;e8i3ly;eDi6u6;r5xiB;ean0iT;rcumveFte;eIirp,oH;o0p;riAw;ncHre4t1ulk;el;aZeTi6lRoPrKuH;iIrHy;st,y;ld;aKeaJiIoad4;en;ng;stfeLtT;ke;il,l0Ymba0TrHth1;ne,rL;eHow;ed;!come,gLha2liKqueaJstItrHwild1;ay;ow;th;e2tt3;in,ui3;bysCckfi7ff3tH;he;b15c0Rd0Iff0Ggree,l0Cm09n03ppZrXsQttNuLvIwaC;it;eEoH;id;rt;gHto0X;meF;aGeBraD;ct;ch;pi7sItoH;niA;aJeHi03u7;mb3rt,ss;le;il;re;g0Gi0ou0rH;an9i2;eaJly,oiFrH;ai0o2;nt;r,se;aLi0FnItH;icipa8;eIoHul;un5y;al;ly0;aIu0;se;lga07ze;iJlH;e9oHu6;t,w;gn;ix,oH;rd;a02jMmiJoIsoH;rb;pt,rn;niHt;st1;er;ouIuB;st;rn;cKhie2knowled9quiHtiva8;es5re;ce;ge;ePliNoJrIusH;e,tom;ue;mHst;moIpH;any,liA;da8;ma8;te;pt;andNet,i6oJsH;coJol2;ve;liArt,uH;nd;sh;de;on",Adjective:"true¦0:A7;1:BH;2:A4;3:B7;4:AZ;5:9Y;6:7W;7:AK;8:AC;9:BF;A:79;B:AN;C:B1;D:B6;E:9N;a9Rb94c87d7Oe72f6Ig6Ah5Xi4Uj4Tk4Ql4Fm3Zn3Oo35p2Oquart7Ir2Ds1Dt14uSvOwFye29;aMeKhIiHoF;man6oFrth79u10;dA2zy;despreAQn w8Xs7Y;acked1HoleF;!sa7;ather1ReFll o6Uste1D;!k6;nt1Jst65te5;aHeGiFola5P;bBJce versa,gi3Kle;ng62rsa5N;ca1gBHluAK;lt0PnLpHrGsFttermoBA;ef99u4;b8Wge1; Hb31pGsFtiA6;ca7et,ide d4O;er,i7X;f4Yto da3;a0Fbecom2c0Bd04e02f01gu1XheaB5iXkn4LmUnTopp06pRrNsJtHus0wF;aFiel3I;nt0rra0P;app0eXoF;ld,uS;eHi36o56pGuF;perv06spect2;e1ok9D;en,ttl0;eFu6;cogn06gul2QlGqu0YsF;erv0olv0;at0ent2;aFrecede0E;id,rallel0;am0otic0;aFet;rri0tF;ch0;nFq25vers4;sur0terFv0O;eFrupt0;st0;air,inish0orese8X;mploy0nd2v8WxpF;ect0lain0;eHisFocume01ue;clFput0;os0;cid0rF;!a8HcovAha88ly2nea85privileg0sMwF;aFei97;tAy;hGircumcFonvinc2;is0;aFeck0;lleng0rt0;b1Zppeal2ssum2tteGuthorF;iz0;nd0;i46ra;aLeIhoHip 24oGrF;anspare1encha1i3;gethAleA2p notch,rpB;rny,ugh69;ena82mpGrF;r45tia5;eCo8F;leFst4H;nt0;a0Dc09e07h06i04ki03l01mug,nobbi4SoXpSqueami4StKuFymb8T;bHccin9i generis,pFr6;erFre7D;! dupAb,vi6R;du0li7Bp6AsFurb79;eq8Ztanda9M;aLeKi15o2NrGubboFy4L;rn;aightGin59ungF; o2K; fFfF;or7J;adfa9Dri7;lwa66tu7Q;arIeHirGlendBot Fry;on;it0;c3Ke1O;k6se; call0lub7mbAphistic13rHuFviT;ndFth18;proof;dBry;e5SipF;pe5shod;ll0n d7G;g2EnF;ceEg7istA;am3NeA;co1Wem6lfFn61re8; suf4Qi3Y;aGholFient36;ar6;rlFth2;et;cr0me,tisfac74;aOeIheumatoBiGoF;bu8Ott75y4;ghtFv4;-w2f6M;cJdu8ElInown0pro5ZsGtF;ard0;is40oF;lu3na1;e1Puc3Y;alcit8Me1ondi3;bBci4mpa1;aReOicayu8laNopuli8ErGuF;bl7Injabi,zzl0;eKiIoF;b7KfGmi42pFxi2I;er,ort7Q;a8uD;maFor,sti8va3;!ry;ciDexist2ma28paB;cBid;ac2Unt 3ErFti3;fe9ma3UtFv7M;!i3T;i2UrFss7H;anoBtF;-5OiF;al,s5M;bSffQkPld OnMrLthAutKverF;!aIbMdHhGni6Vseas,t,wF;ei6Urou6U;a5Te70;ue;ll;do1Der,si60;d3Kg27otu5P; bFbFe on o8go2li8;oa7Q;fashion0school;!ay; gua7NbFha5Kli8;eat;eHligGsF;ce8er0Qo19;at0;diFse;a1e1;aOeNiMoGuF;anc0de; moEnHrthFt6L;!eFwe7B;a7Arn;chaGdescri78prof2UsF;top;la1;ght6;arby,cessa5ighbor6xt;k0usiat2v4;aPeNiLoHuF;dIltiF;facet0p7;deHlGnFot,rbBst;ochro4Pth6;dy;rn,st;ddle ag0nF;dblYi;agAdiocEga,nac2rFtropolit4I;e,ry;cIgenta,inHj0Ekeshift,mmGnFri4Hscu5Tver17;da55y;ali4Eo4M;!stream;abEho;aOeLiIoFumber2;ngFuti1P;sta3MtF;erm,i4A;ghtGteraF;l,ry,te;heart0wei5G;ft-w2gFssAth4;al,eFi0L;nda5;nguBps0te6;apGind6nF;ow2;ut;itte5uniV;ce co0Ggno6Ell0Bm03nHpso 2PrF;a3releF;va1; YaXcoVdQePfOgrNhibi4Ji04nMoLsHtFvalu5E;a9eF;nDrdepe2F;a8iGolFuboI;ub7ve1;de,gF;nifica1;rdi5F;a3er;own;eriHiKluenUreq5A;pt,rt;eHiGoFul1L;or;e,re9;fiFpe22termi57;ni3;mpFnsideCrre9;le3;ccuCdeq57ne,ppr4D;fFsitu,vitro;ro1;mJpF;arHeGl12oFropA;li3r0Y;nd2rfe9;ti4;aGeFi15;d45nD;tuE;egGiF;c0VteC;al,iF;tiF;ma3;ld;aOelNiLoFuma8;a5meInHrrGsFur6;ti7;if47;e51o3O; ma39sF;ick;ghfalut2BspF;an42;liZpf2W;i5llow0ndGrdFtL; 04coEwork2;sy,y;aKener3Xiga34lob4oJraGuF;il1Jng ho;cGtF;ef2Pis;ef2O;ld34od;iFuc28;nf2L;aVeSiQlOoJrF;aGeFil6ug4;q3Xtf2I;gFnt3M;i7ra1;lk10oHrF; keeps,eFge0SmAtu3Vwa4G;go2i27s3L;liF;sh;ag4Gowe5uF;e1or3Z;e5nF;al,i3;d Gmini8rF;ti7ve1;up;bl0lDmili0Sr Fux;oFreach2;ff;aXfVlTmQnOqu4rMthere4veryday,xF;a9em3YpIquisi3traHuF;be44lF;ta1;!va2I;edRlF;icF;it;e9stF;whi7; Fough,tiE;rou3sui3;erGiF;ne1;ge1;dFe27oq30;er6;ficF;ie1;gAsF;t,ygo2;er;aWeMiHoGrFue;ea5owY;ci7mina1ne,r2Yt2ubQ;dact2Gfficult,m,sGverF;ge1se;creGePjoi1paCtF;a1in9;et,te; Nadp0UceMfiLgeneCliJmuEpeIreli9sGvoF;id,ut;pFtitu3ul1I;eCoF;nde1;ca3ghF;tf10;a1ni3;as0;facto;i6ngero0G;ar0Ae07h06i05l04oOrIuF;rmudgeon6stoma5teF;sy;ly;aIeHu1CystalF; cleFli8;ar;epy;fFv14z0;ty;erTgSloRmOnGrpoCunterclUveFy;rt;cLdJgr1YjIsHtrF;aFi3;dic0Vry;eq1Vta1;oi1ug4;esceFuM;nd2;a1NiD;atoDmensuCpF;ass1QulF;so5;ni4ss4;e1niza1;ci1H;ockwiD;rcumspe9vil;ee5intzy;leGrtaF;in;ba3;diac,efZ;aZePiLliJoGrFuck nak0;and new,eathtak2isk,on21;gGldface,naF; fi04fi04;us;nd,tF;he;gGpartisFzarE;an;tiF;me;autifNhiMlKnGsFyoM;iVtsell2;eGiFt;gn;aFfi04;th;at0oF;v0w;nd;ul;ckwards,rF;e,rT; priori,b13c0Zd0Tf0Ng0Ihe0Hl09mp7nt06p00rTsQttracti0MuLvIwF;aGkF;wa1B;ke,re;ant garGeraF;ge;de;diIsteEtF;heFoimmu8;nt07;re;to5;hGlFtu3;eep;en;bitJchiv4roItF;iFsy;cula3fiF;ci4;ga1;ra5;ry;pFt;aHetiz2rF;oprF;ia3;ll2re1;ing;iquFsy;at0e;ed;cohKiJkaHl,oGriFterX;ght;ne,of;li8;ne;ke,ve;olF;ic;ad;ain07ed,gressiIi7rF;eeF;ab7;le;ve;fGraB;id;ectGlF;ue1;ioF;na3; JaIeGvF;erD;pt,qF;ua3;ma1;hoc,infinitum;cuCquiGtu4u3;al;esce1;ra3;erSje9lPoNrKsGuF;nda1;e1olu3trF;a9uD;se;te;eaGuF;pt;st;aFve;rd;aFe;ze;ct;ra1;nt",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;e,m,y;!l,t;e0im;!'s",Preposition:"true¦-,aPbMcLdKexcept,fIinGmid,notwithstandiWoDpXqua,sCt7u4v2w0;/o,hereSith0;! whHin,oW;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h1ill,oward0;!s;an,ereby,r0;ough0u;!oM;ans,ince,o that,uch G;f1n0ut;!to;!f;! 0to;effect,part;or,r0;om;espite,own,u3;hez,irca;ar1e0oBy;sides,tween;ri7;bo8cross,ft7lo6m4propos,round,s1t0;!op;! 0;a whole,long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s",PhrasalVerb:"true¦0:92;1:96;2:8H;3:8V;4:8A;5:83;6:85;7:98;8:90;9:8G;A:8X;B:8R;C:8U;D:8S;E:70;F:97;G:8Y;H:81;I:7H;J:79;K:4G;a9Gb7Vc6Sd6Me6Kf5Ig51h4Ciron0j48k41l3Fm32n2Zo2Xp2Dquiet Hr1Ys0Lt00uYvacuu6RwOyammerBzL;ero Dip MonL;e0k0;by,ov9up;aReNhMiLor0Nrit1A;mp0n3Gpe0r5s5;ackAeel Di0T;aMiLn34;gh 3Xrd0;n Dr L;do1in,oJ;it 7Ak5lk Mrm 6Ash Lt84v60;aw3do1o7up;aw3in,oC;rgeBsL;e 2herE;a01eZhWiSoRrNuLypQ;ckErn L;do1in,oJup;aMiLot0y 31;ckl80p F;ck HdL;e 5Z;n7Xp 3Fs5K;ck NdMe Lghten 6me0p o0Sre0;aw3ba4do1in,up;e Iy 2;by,oG;ink Mrow L;aw3ba4in,up;ba4ov9up;aLe 78ll63;m 2r 5N;ckBke Mlk L;ov9shit,u48;aLba4do1in,leave,o66up;ba4ft9pa6Aw3;a0Wc0Ue0Nh0Ji0Gl0Am09n08o07p02quar5HtRuPwL;earNiL;ngMtch L;aw3ba4o8L; by;cLi6Cm 2ss0;k 65;aSeRiQoOrLud36;aigh2Eet76iL;ke 7Tng L;al6Zup;p Lrm2G;by,in,oG;cKnKr 2tc4O;p F;cKmp0nd MrLveAy 2P;e Ht 2M;ba4do1up;arKeOiNlMrLurB;ead0ingBuc5;a49it 6I;c5ll o3Dn 2;ak Fe73ll0;aKber 2rt0und like;ap 5Wow Duggl5;ash 6Ooke0;eep OiLow 6;cMp L;o6Eup;e 69;in,oL;ff,v9;de1Agn 4OnLt 6Hz5;gLkE; al6Ble0;aNoLu5X;ot Lut0w 7N;aw3ba4f48oC;cKdeEk6FveA;e Qll1Ond Prv5tL; Ltl5K;do1foMin,o7upL;!on;ot,r60;aw3ba4do1in,o4Wup;oCto;al67out0rL;ap66ew 6K;ilAv5;aYeViToPuL;b 5Zle0n Lstl5;aMba4do1inLo2Jth4Ou5Q;!to;c2Xr8w3;ll Not MuL;g3IndA;a2Wf3Po7;ar8in,o7up;ng 69p oLs5;ff,p19;aLelAinEnt0;c6Id L;o3Oup;cKt0;a00eZiXlUoRrPsyc35uL;ll Nn5Lt L;aLba4do1in,oJto48up;pa4Ew3;a3Kdo1in,o22to46up;attleBess LiOop 2;ah2Fon;iMp Lr50u1Hwer 6O;do1in,o6Oup;nt0;aMuL;gEmp 6;ce u21y 6E;ck Lg0le 4Bn 6p5C;oJup;el 5OncilE;c54ir 3An0ss NtMy L;ba4oG; Hc2R;aw3ba4in,oJ;pLw4Z;e4Yt D;aMerd0oL;dAt54;il Hrrow H;aUeRiQoMuL;ddl5ll I;cKnkeyNp 6uthAve L;aLdo1in,o4Mup;l4Ow3; wi4L;ss0x 2;asur5e3TlMss L;a21up;t 6;ke Mn 6rLs2Ax0;k 6ryA;do,fun,oCsure,up;a03eWiRoMuL;ck0st I;aOc4Gg NoLse0;k Lse4E;aft9ba4do1forw38in57o10u47;in,oJ;d 6;e OghtNnMsLve 01;ten F;e 2k 2; 2e47;ar8do1in;aNt MvelL; oC;do1go,in,o7up;nEve L;in,oL;pLut;en;c5p 2sh MtchBughAy L;do1o5A;in4Qo7;eNick Mnock L;do1oCup;oCup;eMy L;in,up;l Ip L;aw3ba4do1f05in,oJto,up;aNoMuL;ic5mpE;ke3Tt H;c44zz 2;a02eXiUoQuL;nMrrLsh 6;y 2;keMt L;ar8do1;r H;lLneErse3L;d Le 2;ba4dLfast,o25up;ear,o1;de Mt L;ba4on,up;aw3o7;aLlp0;d Nl Ir Lt 2;fLof;rom;f11in,o1WuX;cKm 2nMsh0ve Lz2Q;at,it,to;d Mg LkerQ;do1in,o2Uup;do1in,oL;ut,v9;k 2;aZeUive Sloss IoNrMunL; f0S;ab hold,in44ow 2V; Lof 2J;aNb1Nit,oMr8th1JuL;nd9;ff,n,v9;bo7ft9hQw3;aw3bLdo1in,oJrise,up,w3;a4ir2I;ar 6ek0t L;aLb1Gdo1in,o1Dr8up;cMhLl2Hr8t,w3;ead;ross;d aLng 2;bo7;a0Fe08iZlVoRrNuL;ck Le2P;ar8up;eMighten LownBy 2;aw3oG;eLshe29; 2z5;g 2lNol Lrk I;aLwi22;bo7r8;d 6low 2;aMeLip0;sh0;g 6ke0mLrLtten H;e F;gSlQnOrMsLzzle0;h F;e Lm 2;aw3ba4up;d0isL;h 2;e Ll 1V;aw3fQin,o7;ht ba4ure0;eQnMsL;s 2;cNd L;fLoG;or;e D;d06l 2;cPll Lrm0t1I;aNbMdo1in,oLsho0Gth0Avictim;ff,ut,v9;a4ehi2P;pa0D;e L;do1oGup;at Ldge0nd 13y5;in,o7up;aPi1IoOrL;aMess 6op LuO;aw3b04in,oC;gBwB; Iubl1C;m 2;a0Bh06l03oPrMut L;aw3ba4do1oCup;ackBeep MoLy0;ss Dwd0;by,do1in,o0Vup;me OoMuntL; o2B;k 6l L;do1oG;aSbRforPin,oOtLu0P;hMoLrue;geth9;rough;ff,n,ut,v9;th,wL;ard;a4y;paLr8w3;rt;eaMose L;in,oCup;n 6r F;aOeMiL;ll0pE;ck Der Lw F;on,up;t 2;lSncel0rPsNtch MveE; in;o1Oup;h Dt L;doubt,oG;ry MvL;e 09;aw3oJ;l Lm H;aMba4do1oJup;ff,n,ut;r8w3;a0We0NiteAl0Go05rRuL;bblOckl06il0Elk 6ndl06rMsLtNy FzzA;t 01;n 0IsL;t D;e I;ov9;anXeaViMush L;oGup;ghRng L;aOba4do1forNin,oMuL;nd9p;n,ut;th;bo7lLr8w3;ong;teL;n 2;k L;do1in,o7up;ch0;arUg 6iSn5oQrOssNttlMunce Lx D;aw3ba4;e 6; ar8;e H;do1;k Dt 2;e 2;l 6;do1up;d 2;aQeed0oLurt0;cNw L;aw3ba4do1o7up;ck;k L;in,oC;ck0nk0stA; oRaOef 2lt0nd L;do1ov9up;er;up;r Mt L;do1in,oCup;do1o7;ff,nL;to;ck Qil0nNrgMsL;h D;ainBe D;g DkB; on;in,o7;aw3do1in,oCup;ff,ut;ay;ct FdRir0sk NuctionA; oG;ff;ar8o7;ouL;nd; o7;d L;do1oLup;ff,n;wn;o7up;ut","Noun|Gerund":"true¦0:27;1:26;2:1X;3:1J;4:1Z;a25b1Oc1Cd16en14f0Yg0Wh0Ti0Rjog20k0Pl0Lm0In0Go0Cp05ques08rWsFtBu9volunt15w5y17zo2;a7ed1Si3or6r5;ap1Oest1Ci1;ki0r1O;i1r2s1Utc1U;nder5pri23;st1Mta4;al4e7hin4i6ra5y1J;c4di0i2v0Z;mi0p1H;a1Ys1;aKcHeGhEin1PkatClZmo4nowBpeAt8u6w5;ea3im1U;f02r5;fi0vi0J;a1Lretc1Ju5;d1BfJ;l0Xn1C;b6i0;eb5i0;oar19;ip15o5;rte2u1;a1r0At1;h6o3re5;a1He2;edu0Ooo0O;i0Nyi0;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1oub1r6umOw5;elB;awi0es04i5;n4vi0;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng",ProperNoun:"true¦barbie,c4diego,e3f2iron maiden,kirby,m0nis,riel,stevens;ercedes,i0;ckey,ssy;inn,lorence,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:77;1:64;2:6J;3:6M;4:5V;a6Bb56c4Ld4Be47f3Zg3Kh3Ci33j2Yk2Hl25m1Nn1Do1Ap0Xq0Vr0Os05tRuQvLwDxiBy9z5;a7h5i4Puri4R;a5e5ongsh0;ng3K;greb,nzib5J;ang2e5okoha3Vunfu;katerin3Krev0;a5n0R;m5Kn;arsBeAi6roclBu5;h0xi,zh5S;c7n5;d5nipeg,terth4;hoek,s1N;hi62kl3D;l66xford;aw;a8e6i5ladivost5Polgogr6O;en3lni6V;ni24r5;n2o3saill4Q;lenc4Zncouv3Vr3ughn;lan bat1Erumqi,trecht;aFbilisi,eEheDiBo9r7u5;l23n66r5;in,ku;i5ondh65;es54poli;kyo,m32ron1Rulo5;n,uS;an5jua3l2Wmisoa6Era3;j4Wshui; hag65ssaloni2K;gucigal28hr0l av1W;briz,i6llinn,mpe59ng5rtu,shk2U;i3Hsh0;an,chu1n0p2Hyu0;aEeDh8kopje,owe1It7u5;ra5zh50;ba0It;aten is58ockholm,rasbou6Auttga2Y;an8e6i5;jiazhua1llo1m60y0;f53n5;ya1zh4K;gh3Nt4T;att48o1Yv47;cramen18int ClBn5o paulo,ppo3Urajevo; 7aa,t5;a 5o domin3H;a3fe,m1O;antonBdie3Ffrancisco,j5ped3Qsalvad0L;o5u0;se;em,t lake ci5Iz28;lou5Bpeters27;aAe9i7o5;me,sar5t5C;io;ga,o5yadh;! de janei3H;cife,ims,nn3Lykjavik;b4Uip4lei2Knc2Rwalpindi;ingdao,u5;ez2i0R;aFeEhDiCo9r7u6yong5;ya1;eb5Bya1;a5etor3O;g54to;rt5zn0; 5la4Eo;au prin0Nelizabe26sa04;ls3Rrae5Ctts28;iladelph3Inom pe1Coenix;ki1r23tah tik3G;dua,lerZnaji,r4Qt5;na,r34;ak46des0Lm1Or6s5ttawa;a3Xlo;an,d07;a7ew5ing2Hovosibir1Lyc; 5cast38;del26orlea46taip16;g8iro4Yn5pl2Yshv35v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0Y;aFeCi9o6u5;mb2Cni28sc40;gadishu,nt6s5;c15ul;evideo,pelli1Tre31;ami,l6n16s5;kolc,sissauga;an,waukee;cca,d5lbour2Omph43ndo1Essi3;an,ell5i3;in,ín;cau,drAkass2Tl9n8r5shh4B;aca6ib5rakesh,se2M;or;i1Ty;a4FchFdal10i48;mo;id;aDeAi8o6u5vSy2;anMckn0Pdhia3;n5s angel27;d2g bea1O;brev2Ce3Mma5nz,sb2verpo29;!ss28; ma3Ai5;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Gn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd37rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Zi2H;che2d5;ianap2Mo20;aAe7o5yder2W; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Oupe;ld coa1Bthen5;bu2S;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal29es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,nkirk,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Zr es sala1KugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1Q;lo7n6penhag0Ar5;do1Ok;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr14;ch8sha,zh07;gliari,i9lga8mayenJn6pe town,r5tanO;acCdiff;ber1Ac5;un;ry;ro;aWeNhKirmingh0WoJr9u5;chareTdapeTenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iCl9ng8r5;g6l5n;in;en;aluru,hazi;fa6grade,o horizon5;te;st;ji1rut;ghd0BkFn9ot8r7s6yan n4;ur;el,r07;celo3i,ranquil09;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a05b02cc01ddis aba00gartaZhmedXizawl,lSmPnHqa00rEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a8c5kaOtwerp;hora6o3;na;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 7buquerq6eppo,giers,ma5;ty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦a00bYcUdTeSfRgMhLiJjfk,kHlFmDnBorAp8r7s6t3u2vostok,wake isCy0;a0yz;kutGngtze;laanbaatar,pT;ahiti,h0;amWe 0;bronx,hamptons;akhalIeine,fo,oho,under5yd;ed sea,io grande;acifWek,h0itcairn;l,x;ange county,d,inoco;ew eng0ile;land;a0co,ekong,idIuc;gadSlibu,nhattS;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianLochina;arlem,kg,nd,ovd;a3odavari,re0;at 0enwich;brita0lakC;in;ngAy village;co,ra;urope,verglad8;anube,en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;driadic,frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,on3som3t0week end,yesterd4;mr1o0;d2morrow;!w;ed0;ay",Duration:"true¦centurAd8h7m5q4se3w1y0;ear8r8;eek0k7;!end,s;ason,c5;tr,uarter;i0onth3;llisecond2nute2;our1r1;ay0ecade0;!s;ies,y",FemaleName:"true¦0:IS;1:IW;2:I5;3:I4;4:IM;5:I9;6:JD;7:GQ;8:J9;9:J5;A:HD;B:HN;C:IE;D:J2;E:II;F:H2;G:C4;H:HP;aGIbFDcDJdCSeBIfB0gAAh9Qi9Dj8Ck7Cl5Wm46n3Ko3Gp34qu33r2Bs16t0Fu0Dv03wWxiUyPzI;aMeJineb,oIsof2;e3Rf2la,ra;h3iLlJna,ynI;ab,ep;da,ma;da,h3iIra;nab;aLeKi0GolB3uJvI;etAonDH;i0na;le0sen2;el,gm3Gn,rGAs8T;aoIme0nyi;m5YyAA;aNendDRhiD8iI;dele9lKnI;if45niIo0;e,f44;a,helmi0lIma;a,ow;ka0nB;aOeLiIusa5;ck82kJlAole7viI;anGenIQ;ky,toriBE;da,lA5rIs0;a,nIoniGV;a,iFH;leInesGV;nI7rI;i1y;g9rIxGW;su5te;aZeVhSiOoMrJuIy3;i,la;acIPiIu0L;c2na,sI;hGta;nIr0H;iGya;aKffaEGnIs6;a,gtiI;ng;!nFHra;aJeIomasi0;a,l9Lo87res1;l2ndolwethu;g9Co85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe3iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlett,e0ChYiUkye,neza0oStOuJyI;bI2lvi1;ha,mayI5ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHQr5;b2fiA3m0MnIphi1;d3ia,ja,ya;er3lKmon1nJobh8MtI;a,i;dy;lEHv2;aNeJirIo0risEZy5;a,lDD;ba,e0i5lKrI;iIr6Gyl;!d8Efa;ia,lDP;hd,iNki3nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7YvI;da,inj;e0ife;en1i0ma;anA0bMd3Kh1PiBkLlKmJnd3rIs6vannaC;aCi0;ant6i3;lDEma,ome;ee0in8Ou3;in1ri0;a05e00hYiVoIuthDC;bTcSghRl8GnQsKwJxI;anAUie,y;an,e0;aJeIie,lD; merBIann8ll1marD6t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8B;hel63io;bDFer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG7oI;da,n1L;an0bKemGgi0iJnIta,y0;a86ee;han81na;a,eI;cE5kaC;bi0chJe,i0mo0nIquEFy0;di,ia;aEDelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCL;scil3LyamvaB;lly,rt2;ilome0oebe,ylI;is,lis;ggy,nelope,r5t3;ige,m0UnLo5rvaDBtJulI;a,etAin1;ricIt4T;a,e,ia;do3i07;ctav2dJfCUis6lIphCUumBYyunbileg;a,ga,iv2;eIvA9;l2tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBJkLlaKna,sIta,vi;anIha;ur;!y;a,iDNki;hoHk9SolI;a,eDE;!mh;hir,lIna,risFsreE;!a,lBO;asuMdLh2i6Cl5nKomi8rgEJtIzanin zah3;aIhal4;li1s6;cy,etA;e9iEP;nngu30;a0Ackenz4e02iNoKrignayani,uriD8yI;a,rI;a,lOna,tH;bi0i3llBDnI;a,iI;ca,ka,qCY;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEI;!l,nB;dy,eIh,n4;nhHrva;aLdKiCKlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5EgOi,lLrI;edi77iJjem,on,yI;em,l;em,sF;an4iIliF;nIsC9;a,da;!an,han;b0DcANd0Be,g09ha,i08ja,l06n04rMsoum5YtLuJv80x9FyIz4;bell,ra,soB4;de,rI;a,eE;h8Cild1t4;a,cYgUiLjor4l7Qn4s6tKwa,yI;!aIbe6Uja9lA9;m,nBC;a,ha,in1;!aKbC6eJja,lDna,sIt62;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliACcJeduarBfern5EjIlui5W;o6Dul2;ecil2la3;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Vi75y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD6on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d2la,nI;!a,dJeBCnIsCG;!a,eBB;a,sCE;aCRcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a84i8;lIn1t7;ei;!in1;aTbb98dSepa,lNnKsJv2zI;!a,be5KetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9We;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c2t2;e2NlCB;la,nIra;a,ie,o3;a,or1;a,gh,laI;!ni;!h,nI;a,d3e,n5O;cPdon93iOkes6mi96na,rNtKurJvIxmi,y5;ern1in2;a,e53ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAFoOrKyI;lIra;a,ee,ie;istIy6B;a,en,iJyI;!na;!e,n58;nul,ri,urtnAV;aPerOlAUmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei3ongordzol;dij1w5;el7MiLjsi,lKnJrI;a,i,ri;d3na,za;ey,i,lB8s4y;ra,s6;bi7cAEdiat7EeAXiSlRmQnyakuma1BrOss6HtLvi7yI;!e,lI;a,eI;e,i8H;a6BeJhIi4MlDri0y;ar69er69ie,leErAXy;!lyn8Cri0;a,en,iIl5Qoli0yn;!ma,nGsF;a5il1;ei8Ai,l4;a,tl6I;a09eZiWoOuI;anMdLliIst61;a8DeIsF;!n9tI;!a,te;e5Hi3Iy;a,i7;!anOcelDdNelHhan7NleMni,sJva0yI;a,ce;eIie;fIlDph5S;a,in1;en,n1;i8y;!a,e,n40;lIng;!i1DlI;!i1C;anOle0nLrKsI;i88sI;!e,i87;i,ri;!a,elHif2AnI;a,etAiIy;!e,f28;a,e89iJnI;a,e88iI;e,n1;cNda,mi,nJque4UsminGvie3y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob7Z;!n9H;do3;belIdo3;!a,e,l37;a72en1i0ma;di3es,gr6Tji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin29;da,ll4rten21snI;a,i9K;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1AiKlJnriet7rmi9sI;sa,t19;en2Qga,mi;di;bi2Bil8ClOnNrKsJtIwa,yl8C;i5Nt4;n5Tti;iImo4Xri4Y;etI;!te;aCnaC;a,ey,l4;a03eXiSlQoOrLunKwI;enIyne1O;!dolD;ay,el;acieJetIiselB;a,chE;!la;ld19ogooI;sh;adys,enIor2yn2G;a,da,na;aLgi,lJna,ov84selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Ni,m3Atru86;etAi4S;a,eIna;s25vieve;ma;bJle,mIrnet,yH;al5Ji5;i5BrielI;a,l1;aUeRiQlorPoz2rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0N;n1s5X;!ca;a,enc2;en,o0;lJn0rnI;anB;ec2ic2;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no3oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c2da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh2iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr2nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d3nI;!a,e;hl2i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th2;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat3;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a3er3ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d3elHtI;al,elH;cJlI;esAi42;el2ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a3o3ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el2;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!l1;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar2;el;aMberLeliKiIy;e,l2naI;!ta;a,ja;!ly;hHiJl2nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c2sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c2is6jaLksaLna,sKxI;aIia;!nd3;ia,saI;nd3;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",Person:"true¦a0Ob0Hc08d05e02g01hZinez,jYkVlSmMnKoJpHr9s7t4v2w0xzibit,yanni;ar0ednesday adams,ill.i.am,oode;hol,rO;a0oltaiO;lentino rossi,n go7;a1heresa may,i0yra banks;ger woods,mbaQ;tum,ylor;a0carlett johanss03hakespeaJinbad,lobodan milosevic,ocratM;ddam hussain,ntigold;a6e5i4o2u0za;mi,n dmc,paul,sh limbau0;gh;d stewart,nald0thko;inho,o;hanYvaldo;ese witherspoVil9mbrandt;ffi,y roma03;a0e08ip07lato,oe,uff daddy;lm06ris hiltS;prah winfrWra;as,e0iles crane,ostradamP; yo,l3ttI;acklemo4essia3i1o0ubarek;by,lie3net,rrissS;randa ju0tt romnR;ly;en;re;ady gaga,e0iberaT;bron jam0e;es;anye west,e1iefer suther0obe bryant;land;ats,ndall,sha;aime,effersCk rowling;a0itlPulk hogan;lle berry,rrisA;ast9otye;ff1m0nya,zekiel;eril lagasse,inem;ie;a1e0ick wolf,rake;gas,nzel washingt4;lt3nB;ar5h3lint2o0;nfuci0olio;us;on;aucCy0;na;dinal wols1son0;! palm9;ey;a5e3o2ro0;ck,n0;te;no;ck,yon0;ce;nksy,rack obama;ristot1shton kutch0;er;le",LastName:"true¦0:9G;1:9W;2:9Y;3:9O;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s2;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi3j6ka3IoGrFsui,uD;om50rD;c3n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps2s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv3zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8infeld,mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins2;!on;bei0LcEes,vDzzo;as,e8;ci,hards2;ag3es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss2;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym3;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx2;ic,ov6X;ls1miD;!n1;ils2mD;co42ec;gy,kaEray3varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h3lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h3iSlQnez48oJrGuEvar3woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss2;anEnsD;en,on,t2;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks2obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m3ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers2;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw2;o,staf2Utierr7zm3;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m3;calv9zale0H;aj,i;bs2l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm3uD;cDent9ji3E;hs;ntaDrt6urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s2;er,is2wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g3he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w3;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e2uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em3liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm3tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder2mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy3;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss2;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl3tchis2yD;aEd6;in;la;aEsl3;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s2;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",Honorific:"true¦director1field marsh2lieutenant1rear0sergeant major,vice0; admir1; gener0;al",Adverb:"true¦a07b04dZeXfSheQinPjustOkinda,likewiYmMnJoEpCquite,r9s5t2u0very,well;ltima00p0; to,wards5;h1iny bit,o0wiO;o,t6;en,us;eldom,o0uch;!me1rt0; of;how,times,w0B;a1e0;alR;ndomQth04;ar excellenEer0oint blank; Khaps;f3n0utright;ce0ly;! 0;ag04moW; courFten;ewIo0; longVt 0;onGwithstanding;aybe,eanwhiMore0;!ovS;! aboW;deed,steX;lla,n0;ce;or2u0;l8rther0;!moJ; 0evK;exampCgood,suH;n mas0vI;se;e0irect2; 2fini0;te0;ly;juAtrop;ackward,y 0;far,no0; means,w; GbroFd nauseam,gEl7ny5part,s4t 2w0;ay,hi0;le;be7l0mo7wor7;arge,ea6; soon,i4;mo0way;re;l 3mo2ongsi1ready,so,togeth0ways;er;de;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aXbTcReNhowMiEjust00noBo9p8supposing,t5wh0yet;e1il0o3;e,st;n1re0thN; if,by,vM;evL;h0il,o;erefOo0;!uU;lus,rovided th9;r0therwiM;! not; mattEr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mIcaForder t0;h0o;at;! 0;only,t0w0;hen;!ev3;ith2ven0;! 0;if,tB;er;o0uz;s,z;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s",Determiner:"true¦aBboth,d9e6few,le5mu8neiDplenty,s4th2various,wh0;at0ich0;evC;a0e4is,ose;!t;everal,ome;!ast,s;a1l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er","Adj|Present":"true¦a07b04cVdQeOfKhollJidRlFmDnarrJoCpAqua9r8s4t2utt3w0;aLet,ro0;ng,ug08;end0hin;er;e2hort,l1mooth,our,pa9tray,u0;re,speT;i2ow;cu6da01leRpaM;eplica00ig01;ck;aGr0;eseTime,omU;bscu1pen,wn;atu0e3odeG;re;a2e1i0;gTve;an;st,y;ow;a2i1oul,r0;ee,inge;rm;iHke,ncy,st;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry,ull;le;ffu9re6;fu8libe0;raE;alm,l5o0;mpleCn3ol,rr1unterfe0;it;e0u7;ct;juga8sum7;ea1o0;se;n,r;ankru1lu0;nt;pt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3D;1:3R;2:3G;3:2I;a3Vb3Ec35d2Ve2Of2Bg1Xh1Mi1Gj1Fk1Cl14m0Yn0To0Sp0Jqu0Hr08sItDug0vBw5y4za0R;el11ouO;ary,e7hi6i4ry;ck0Dde,l4n1ry,se;d,y;ny,te;a4i3T;k,ry;a4erda2ulgar;gue,in,st;a7en2Zhi6i5ough,r4;anqu2Een1ue;dy,g38me0ny,r04;ck,rs2A;ll,me,rt,wd3K;aScaQePhNiMkin0ClJmHoFpEt7u5w4;eet,ift;b4dd0Xperfi22rre2A;sta28t3;a9e8iff,r5u4;pVr1;a5ict,o4;ng;ig2Xn0O;a1ep,rn;le,rk,te0;e1Ti2Xright0;ci20ft,l4on,re;emn,id;a4el0;ll,rt;e5i4y;g2Om10;ek,nd2V;ck25l0mp3;a4iSrill,y;dy,l02rp;ve0Kxy;n1Lr4;ce,y;d,fe,int0l1Jv0W;a9e7i6o4ude;mantic,o1Asy,u4;gh,nd;pe,t1Q;a4d,mo0B;dy,l;gg5iGndom,p4re,w;id;ed;ai2i4;ck,et;hoBink,lAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouTud;ey,k0;liYor;ain,easa2;ny;dd,i0ld,ranM;aive,e6i5o4u16;b3isy,rm10sy;bb0ce,mb3;a4r1w;r,t;ad,e6ild,o5u4;nda13te;ist,o1;a5ek,l4;low;s0ty;a9e8i7o4ucky;f0Ln5o17u4ve0w11y0P;d,sy;e0g;ke0l,mp,tt3ve0;e1Swd;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fZsita2;dy,rYv4;en0y;nd15ppy,r4;d4sh;!y;aGenFhDiClBoofy,r4;a9e7i6o4ue11;o4ss;vy;m,s0;at,e4y;dy,n;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiT;u1y;aEeeb3iAl9o7r6u4;ll,n4r0P;!ny;aEesh,iend0;a4nd,rmF;my;at,ir9;erce5nan4;ciB;! ;le;r,ul4;ty;a7erie,sse5v4xtre0C;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i5u4;mb;r6vi5z4;zy;ne;e,ty;a4ep,nB;d4f,r;!ly;ppRrk;agey,h9l8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;evLou1;e4il0;ap,e4;sy;aIiGlDoBr6u4;ff,r0sy;ly;a7i4oad;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd","Person|Adj":"true¦brown,du2earnest,frank,mi2r0sa1;a0ich,u1;ndy;sty",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Verb:"true¦born,cannot,gonna,has,keep tabs,msg","Adj|Gerund":"true¦0:2G;1:2I;2:26;3:24;4:21;5:2E;6:28;7:23;a25b20c1Id15e0Zf0Pg0Jh0Ii0Bjud1Yl08m05o01pWrQsFtAup9v8w0Qyiel4;ar5eZ;lif0s02;aXeBhr9i3ouc7r8wis0;e02oub2us0yi1;ea0Ni8;l2vi1;l2mp0;atisf5creec7enten1Vhoc0Fkyrocke0lo14oGpFtBu9we8;e13l2;pp1Lr8;gi1pri6roun4;a9ea24i8ri0Bun1D;mula0r3;gge3r8;t2vi1;ark2ee4;a8ot7;ki1ri1;aCe9ive0o8us7;a3l2;defi14fres7ig14laFmai14s0v8war4;ea2itali8ol0R;si1zi1;gi1ll5mb2vi1;a5eAier1Elun19r8un1K;e8o12;ce4s6vai2;n4rple8;xi1;ffsApNut9ver8wi1;arc7lap0Hp09ri4whel1L;goi1l5st0Y;et0;eande3i9o0Fu8;mb2;s6tiga0;a9i8o0C;fesa0Bmi0vi1;cKg0Vs0;mDn8rri0C;cBsAt9vi8;go1Gti1;e15imida0;pi3ul0;orpo1Drea6;po6;arrowi1ea2orrif5umilia0;lCr8;a0ipZo9uel8;i1li1;undbrea8wi1;ki1;a3ea0Z;aGetc7it0lDoBr9ulf8;il2;ee0Yigh8ust12;te04;r8un4;ebo4th0H;a9o8;a0we3;mi1tte3;di1scina0;mBn9x8;ac0ci0is0plo4;ab2c8du3ga04sT;han0oura03;barras6er02p8;owe3;aJeCi8;s8zz5;appoin0gus0sen0t8;r8u0N;ac0es6;biliDcCfiMgra4mBpres6serAv8;asCelo8;pi1;vi1;an4eaI;a5liH;ta0;maOri1s7un0;aOhLlo6o8ripp2ut0;mEn8rrespon4;cerCfBspi3t8vinQ;in9r8;as0ibu0ol2;ui1;lic0u6;ni1;fCmBp8;e9ro8;mi6;l2ti1;an4;or0;a8il2;llen8rQ;gi1;lOptiva0ri1;eBin4lin4o9rui6u8;d4st2;i2oLri1un8;ci1;coJ;bsoQcLgonJlarImGppea2rEs8;pi3su3to8;n9un4;di1;is7;hi1;ri1;res0;li1;aBu6;si1;mi1;i8zi1;zi1;c8hi1;ele9ompan5;yi1;ra0;ti1;rbi1;ng","Person|Verb":"true¦b8ch7dr6foster,gra5hope,ja9lan4ma2ni9ollie,p1rob,s0wade;pike,t5ue;at,eg,ier2;ck,r0;k,shal;ce;ce,nt;ew;ase,u1;iff,l1ob,u0;ck;aze,ossom","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const ko="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Po=ko.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Ao=function(e){if(void 0!==Po[e])return Po[e];let t=0,n=1,a=36,r=1;for(;n=0;n--,r*=36){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t};var Io=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[a];"!"===o[0]&&(t.push(r),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const a=Eo(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=No(wo[e]);Fo.test(e)?Object.keys(t).forEach((t=>{if(Go[t]=e,"Noun|Verb"===e){let e=To(t,Bo);Go[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Oo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","3","<\\3","=("].forEach((e=>Oo[e]="Emoticon")),delete Oo[""],delete Oo.null,delete Oo[" "];const zo="Singular";var Vo={beforeTags:{Determiner:zo,Possessive:zo,Acronym:zo,Noun:zo,Adjective:zo,PresentTense:zo,Gerund:zo,PastTense:zo,Infinitive:zo,Date:zo,Ordinal:zo,Demonym:zo},afterTags:{Value:zo,Modal:zo,Copula:zo,PresentTense:zo,PastTense:zo,Demonym:zo,Actor:zo},beforeWords:{the:zo,with:zo,without:zo,of:zo,for:zo,any:zo,all:zo,on:zo,cut:zo,cuts:zo,increase:zo,decrease:zo,raise:zo,drop:zo,save:zo,saved:zo,saves:zo,make:zo,makes:zo,made:zo,minus:zo,plus:zo,than:zo,another:zo,versus:zo,neither:zo,about:zo,favorite:zo,best:zo,daily:zo,weekly:zo,linear:zo,binary:zo,mobile:zo,lexical:zo,technical:zo,computer:zo,scientific:zo,security:zo,government:zo,popular:zo,formal:zo,no:zo,more:zo,one:zo},afterWords:{of:zo,system:zo,aid:zo,method:zo,utility:zo,tool:zo,reform:zo,therapy:zo,philosophy:zo,room:zo,authority:zo,says:zo,said:zo,wants:zo,wanted:zo,is:zo,can:zo,wise:zo}};const Ho="Infinitive";var Lo={beforeTags:{Modal:Ho,Adverb:Ho,Negative:Ho,Plural:Ho},afterTags:{Determiner:Ho,Adverb:Ho,Possessive:Ho,Reflexive:Ho,Preposition:Ho,Cardinal:Ho,Comparative:Ho,Superlative:Ho},beforeWords:{i:Ho,we:Ho,you:Ho,they:Ho,to:Ho,please:Ho,will:Ho,have:Ho,had:Ho,would:Ho,could:Ho,should:Ho,do:Ho,did:Ho,does:Ho,can:Ho,must:Ho,us:Ho,me:Ho,let:Ho,even:Ho,when:Ho,help:Ho,he:Ho,she:Ho,it:Ho,being:Ho,bi:Ho,co:Ho,contra:Ho,de:Ho,inter:Ho,intra:Ho,mis:Ho,pre:Ho,out:Ho,counter:Ho,nobody:Ho,somebody:Ho,anybody:Ho,everybody:Ho},afterWords:{the:Ho,me:Ho,you:Ho,him:Ho,us:Ho,her:Ho,them:Ho,it:Ho,himself:Ho,herself:Ho,itself:Ho,myself:Ho,ourselves:Ho,themselves:Ho,something:Ho,anything:Ho,a:Ho,an:Ho,up:Ho,down:Ho,by:Ho,out:Ho,off:Ho,under:Ho,what:Ho,all:Ho,to:Ho,because:Ho,although:Ho,after:Ho,before:Ho,how:Ho,otherwise:Ho,together:Ho,though:Ho,into:Ho,yet:Ho,more:Ho,here:Ho,there:Ho}};var So={beforeTags:Object.assign({},Lo.beforeTags,Vo.beforeTags,{}),afterTags:Object.assign({},Lo.afterTags,Vo.afterTags,{}),beforeWords:Object.assign({},Lo.beforeWords,Vo.beforeWords,{}),afterWords:Object.assign({},Lo.afterWords,Vo.afterWords,{})};const $o="Adjective";var Mo={beforeTags:{Determiner:$o,Possessive:$o,Hyphenated:$o},afterTags:{Adjective:$o},beforeWords:{seem:$o,seemed:$o,seems:$o,feel:$o,feels:$o,felt:$o,stay:$o,appear:$o,appears:$o,appeared:$o,also:$o,over:$o,under:$o,too:$o,it:$o,but:$o,still:$o,really:$o,quite:$o,well:$o,very:$o,how:$o,deeply:$o,hella:$o,profoundly:$o,extremely:$o,so:$o,badly:$o,mostly:$o,totally:$o,awfully:$o,rather:$o,nothing:$o,something:$o,anything:$o,not:$o,me:$o,is:$o},afterWords:{too:$o,also:$o,or:$o}};const Jo="Gerund";var Wo={beforeTags:{Adverb:Jo,Preposition:Jo,Conjunction:Jo},afterTags:{Adverb:Jo,Possessive:Jo,Person:Jo,Pronoun:Jo,Determiner:Jo,Copula:Jo,Preposition:Jo,Conjunction:Jo,Comparative:Jo},beforeWords:{been:Jo,keep:Jo,continue:Jo,stop:Jo,am:Jo,be:Jo,me:Jo,began:Jo,start:Jo,starts:Jo,started:Jo,stops:Jo,stopped:Jo,help:Jo,helps:Jo,avoid:Jo,avoids:Jo,love:Jo,loves:Jo,loved:Jo,hate:Jo,hates:Jo,hated:Jo},afterWords:{you:Jo,me:Jo,her:Jo,him:Jo,them:Jo,their:Jo,it:Jo,this:Jo,there:Jo,on:Jo,about:Jo,for:Jo}};var Ko={beforeTags:Object.assign({},Mo.beforeTags,Wo.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Mo.afterTags,Wo.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Mo.beforeWords,Wo.beforeWords,{is:"Adjective",was:"Adjective",of:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Mo.afterWords,Wo.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const qo={beforeTags:{Determiner:void 0,Cardinal:"Noun",PhrasalVerb:"Adjective"}};var Uo={beforeTags:Object.assign({},Mo.beforeTags,Vo.beforeTags,qo.beforeTags),afterTags:Object.assign({},Mo.afterTags,Vo.afterTags),beforeWords:Object.assign({},Mo.beforeWords,Vo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective",off:"Adjective",out:"Adjective"}),afterWords:Object.assign({},Mo.afterWords,Vo.afterWords)};let Ro="PastTense";const Qo={beforeTags:{Adverb:Ro,Pronoun:Ro,ProperNoun:Ro,Auxiliary:Ro,Noun:Ro},afterTags:{Possessive:Ro,Pronoun:Ro,Determiner:Ro,Adverb:Ro,Comparative:Ro,Date:Ro,Gerund:Ro},beforeWords:{be:Ro,who:Ro,get:"Adjective",had:Ro,has:Ro,have:Ro,been:Ro,it:Ro,as:Ro,for:"Adjective",more:"Adjective"},afterWords:{by:Ro,back:Ro,out:Ro,in:Ro,up:Ro,down:Ro,before:Ro,after:Ro,for:Ro,the:Ro,with:Ro,as:Ro,on:Ro,at:Ro,between:Ro,to:Ro,into:Ro,us:Ro,them:Ro,me:Ro}};var Zo={beforeTags:Object.assign({},Mo.beforeTags,Qo.beforeTags),afterTags:Object.assign({},Mo.afterTags,Qo.afterTags),beforeWords:Object.assign({},Mo.beforeWords,Qo.beforeWords),afterWords:Object.assign({},Mo.afterWords,Qo.afterWords)};const Xo={afterTags:{Noun:"Adjective",Conjunction:void 0}};var _o={beforeTags:Object.assign({},Mo.beforeTags,Lo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Mo.afterTags,Lo.afterTags,Xo.afterTags),beforeWords:Object.assign({},Mo.beforeWords,Lo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Mo.afterWords,Lo.afterWords,{to:void 0,as:"Adjective"})};const Yo={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ei={},ti={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ni={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ai={beforeTags:Object.assign({},Wo.beforeTags,Vo.beforeTags,Yo),afterTags:Object.assign({},Wo.afterTags,Vo.afterTags,ei),beforeWords:Object.assign({},Wo.beforeWords,Vo.beforeWords,ti),afterWords:Object.assign({},Wo.afterWords,Vo.afterWords,ni)};const ri="Singular",oi="Infinitive";var ii={beforeTags:Object.assign({},Lo.beforeTags,Vo.beforeTags,{Adjective:ri,Particle:ri}),afterTags:Object.assign({},Lo.afterTags,Vo.afterTags,{ProperNoun:oi,Gerund:oi,Adjective:oi,Copula:ri}),beforeWords:Object.assign({},Lo.beforeWords,Vo.beforeWords,{is:ri,was:ri,of:ri,have:null}),afterWords:Object.assign({},Lo.afterWords,Vo.afterWords,{instead:oi,about:oi,his:oi,her:oi,to:null,by:null,in:null})};const si="Person";var li={beforeTags:{Honorific:si,Person:si},afterTags:{Person:si,ProperNoun:si,Verb:si},ownTags:{ProperNoun:si},beforeWords:{hi:si,hey:si,yo:si,dear:si,hello:si},afterWords:{said:si,says:si,told:si,tells:si,feels:si,felt:si,seems:si,thinks:si,thought:si,spends:si,spendt:si,plays:si,played:si,sing:si,sang:si,learn:si,learned:si,wants:si,wanted:si}};const ui="Month",ci={beforeTags:{Date:ui,Value:ui},afterTags:{Date:ui,Value:ui},beforeWords:{by:ui,in:ui,on:ui,during:ui,after:ui,before:ui,between:ui,until:ui,til:ui,sometime:ui,of:ui,this:ui,next:ui,last:ui,previous:ui,following:ui},afterWords:{sometime:ui,in:ui,of:ui,until:ui,the:ui}};var di={beforeTags:Object.assign({},li.beforeTags,ci.beforeTags),afterTags:Object.assign({},li.afterTags,ci.afterTags),beforeWords:Object.assign({},li.beforeWords,ci.beforeWords),afterWords:Object.assign({},li.afterWords,ci.afterWords)};const hi="Place",gi={beforeTags:{Place:hi},afterTags:{Place:hi,Abbreviation:hi},beforeWords:{in:hi,by:hi,near:hi,from:hi,to:hi},afterWords:{in:hi,by:hi,near:hi,from:hi,to:hi,government:hi,council:hi,region:hi,city:hi}};let mi="Unit";const pi={"Actor|Verb":So,"Adj|Gerund":Ko,"Adj|Noun":Uo,"Adj|Past":Zo,"Adj|Present":_o,"Noun|Verb":ii,"Noun|Gerund":ai,"Person|Noun":{beforeTags:Object.assign({},Vo.beforeTags,li.beforeTags),afterTags:Object.assign({},Vo.afterTags,li.afterTags),beforeWords:Object.assign({},Vo.beforeWords,li.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Vo.afterWords,li.afterWords)},"Person|Date":di,"Person|Verb":{beforeTags:Object.assign({},Vo.beforeTags,li.beforeTags,Lo.beforeTags),afterTags:Object.assign({},Vo.afterTags,li.afterTags,Lo.afterTags),beforeWords:Object.assign({},Vo.beforeWords,li.beforeWords,Lo.beforeWords),afterWords:Object.assign({},Vo.afterWords,li.afterWords,Lo.afterWords)},"Person|Place":{beforeTags:Object.assign({},gi.beforeTags,li.beforeTags),afterTags:Object.assign({},gi.afterTags,li.afterTags),beforeWords:Object.assign({},gi.beforeWords,li.beforeWords),afterWords:Object.assign({},gi.afterWords,li.afterWords)},"Person|Adj":{beforeTags:Object.assign({},li.beforeTags,Mo.beforeTags),afterTags:Object.assign({},li.afterTags,Mo.afterTags),beforeWords:Object.assign({},li.beforeWords,Mo.beforeWords),afterWords:Object.assign({},li.afterWords,Mo.afterWords)},"Unit|Noun":{beforeTags:{Value:mi},afterTags:{},beforeWords:{per:mi,every:mi,each:mi,square:mi,cubic:mi,sq:mi,metric:mi},afterWords:{per:mi,squared:mi,cubed:mi,long:mi}}},fi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};pi["Plural|Verb"]={beforeWords:fi(pi["Noun|Verb"].beforeWords,{had:"Plural",have:"Plural"}),afterWords:fi(pi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null,is:"PresentTense",by:"PresentTense"}),beforeTags:fi(pi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:fi(pi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var bi=pi;const vi="Adjective",yi="Infinitive",wi="PresentTense",ki="Singular",Pi="PastTense",Ai="Adverb",Ii="Plural",ji="Verb",Ei="LastName",Ni="Place",Di="Participle";var Ci=[null,null,{ea:ki,ia:"Noun",ic:vi,ly:Ai,"'n":ji,"'t":ji},{oed:Pi,ued:Pi,xed:Pi," so":Ai,"'ll":"Modal","'re":"Copula",azy:vi,eer:"Noun",end:ji,ped:Pi,ffy:vi,ify:yi,ing:"Gerund",ize:yi,ibe:yi,lar:vi,mum:vi,nes:wi,nny:vi,ous:vi,que:vi,ger:"Noun",ber:"Noun",rol:ki,sis:ki,ogy:ki,oid:ki,ian:ki,zes:wi,eld:Pi,ken:Di,ven:Di,ten:Di,ect:yi,ict:yi,ign:yi,ful:vi,bal:vi,ton:"Noun"},{amed:Pi,aped:Pi,ched:Pi,lked:Pi,rked:Pi,reed:Pi,nded:Pi,mned:vi,cted:Pi,dged:Pi,ield:ki,akis:Ei,cede:yi,chuk:Ei,czyk:Ei,ects:wi,ends:ji,enko:Ei,ette:ki,iary:ki,wner:ki,fies:wi,fore:Ai,gate:yi,gone:vi,ices:Ii,ints:Ii,ruct:yi,ines:Ii,ions:Ii,ners:Ii,pers:Ii,lers:Ii,less:vi,llen:vi,made:vi,nsen:Ei,oses:wi,ould:"Modal",some:vi,sson:Ei,ians:Ii,tion:ki,tage:"Noun",ique:ki,tive:vi,tors:"Noun",vice:ki,lier:ki,fier:ki,wned:Pi,gent:ki,tist:"Actor",pist:"Actor",rist:"Actor",mist:"Actor",yist:"Actor",vist:"Actor",ists:"Actor",lite:ki,site:ki,rite:ki,mite:ki,bite:ki,mate:ki,date:ki,ndal:ki,vent:ki,uist:"Actor",gist:"Actor",note:ki,cide:ki,ence:ki,wide:vi,vide:yi,ract:yi,duce:yi,pose:yi,eive:yi,lyze:yi,lyse:yi,iant:vi,nary:vi,ghty:vi,uent:vi,erer:"Actor",bury:Ni,dorf:"Noun",esty:"Noun",wych:Ni,dale:Ni,folk:Ni},{elist:"Actor",holic:ki,phite:ki,tized:Pi,urned:Pi,eased:Pi,ances:Ii,bound:vi,ettes:Ii,fully:Ai,ishes:wi,ities:Ii,marek:Ei,nssen:Ei,ology:"Noun",osome:ki,tment:ki,ports:Ii,rough:vi,tches:wi,tieth:"Ordinal",tures:Ii,wards:Ai,where:Ai,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:ki,scent:ki,onist:"Actor",anist:"Actor",alist:"Actor",olist:"Actor",icist:"Actor",ounce:yi,iable:vi,borne:vi,gnant:vi,inant:vi,igent:vi,atory:vi,rient:ki,dient:ki,maker:"Actor",burgh:Ni,mouth:Ni,ceter:Ni,ville:Ni,worth:"Noun"},{auskas:Ei,parent:ki,cedent:ki,ionary:ki,cklist:ki,keeper:"Actor",logist:"Actor",teenth:"Value",worker:"Actor",master:"Actor",writer:"Actor",brough:Ni,cester:Ni},{logists:"Actor",opoulos:Ei,borough:Ni,sdottir:Ei}];const xi="Adjective";var Ti=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:xi,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:xi,tele:"Noun","pro-":xi,"mis-":"Verb","dis-":"Verb","pre-":xi},{anglo:"Noun",centi:"Noun",ethno:"Noun",ferro:"Noun",grand:"Noun",hepta:"Noun",hydro:"Noun",intro:"Noun",macro:"Noun",micro:"Noun",milli:"Noun",nitro:"Noun",penta:"Noun",quasi:xi,radio:"Noun",tetra:"Noun","omni-":xi,"post-":xi},{pseudo:xi,"extra-":xi,"hyper-":xi,"inter-":xi,"intra-":xi,"deca-":xi},{electro:"Noun"}];const Fi="Adjective",Oi="Infinitive",Gi="PresentTense",Bi="Singular",zi="PastTense",Vi="Expression",Hi="LastName";var Li={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Hi],[/.[^aeiou]ica$/,Bi,"harmonica"],[/^([hyj]a+)+$/,Vi,"haha"]],c:[[/.[^aeiou]ic$/,Fi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,zi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,zi,"rammed"],[/.[aeiou][sg]hed$/,zi,"gushed"],[/.[aeiou]red$/,zi,"hired"],[/.[aeiou]r?ried$/,zi,"hurried"],[/[^aeiou]ard$/,Bi,"steward"],[/[aeiou][^aeiou]id$/,Fi,""],[/.[vrl]id$/,Fi,"livid"],[/..led$/,zi,"hurled"],[/.[iao]sed$/,zi,""],[/[aeiou]n?[cs]ed$/,zi,""],[/[aeiou][rl]?[mnf]ed$/,zi,""],[/[aeiou][ns]?c?ked$/,zi,"bunked"],[/[aeiou]gned$/,zi],[/[aeiou][nl]?ged$/,zi],[/.[tdbwxyz]ed$/,zi],[/[^aeiou][aeiou][tvx]ed$/,zi],[/.[cdflmnprstv]ied$/,zi,"emptied"]],e:[[/.[lnr]ize$/,Oi,"antagonize"],[/.[^aeiou]ise$/,Oi,"antagonise"],[/.[aeiou]te$/,Oi,"bite"],[/.[^aeiou][ai]ble$/,Fi,"fixable"],[/.[^aeiou]eable$/,Fi,"maleable"],[/.[ts]ive$/,Fi,"festive"],[/[a-z]-like$/,Fi,"woman-like"]],h:[[/.[^aeiouf]ish$/,Fi,"cornish"],[/.v[iy]ch$/,Hi,"..ovich"],[/^ug?h+$/,Vi,"ughh"],[/^uh[ -]?oh$/,Vi,"uhoh"],[/[a-z]-ish$/,Fi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Hi,"polish-male"]],k:[[/^(k){2}$/,Vi,"kkkk"]],l:[[/.[gl]ial$/,Fi,"familial"],[/.[^aeiou]ful$/,Fi,"fitful"],[/.[nrtumcd]al$/,Fi,"natal"],[/.[^aeiou][ei]al$/,Fi,"familial"]],m:[[/.[^aeiou]ium$/,Bi,"magnesium"],[/[^aeiou]ism$/,Bi,"schism"],[/^[hu]m+$/,Vi,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Fi,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Vi,"noooo"],[/^(yo)+$/,Vi,"yoo"],[/^wo{2,}[pt]?$/,Vi,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Bi],[/[^i]fer$/,Oi],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Fi],[/[aeiou].*ist$/,Fi],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,Gi],[/.[rln]ates$/,Gi],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,Bi],[/.[aeiou]sks$/,Gi],[/.[aeiou]kes$/,Gi],[/[aeiou][^aeiou]is$/,Bi],[/[a-z]'s$/,"Noun"],[/^yes+$/,Vi]],v:[[/.[^aeiou][ai][kln]ov$/,Hi]],y:[[/.[cts]hy$/,Fi],[/.[st]ty$/,Fi],[/.[tnl]ary$/,Fi],[/.[oe]ry$/,Bi],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Fi],[/...lly$/,"Adverb"],[/.[gk]y$/,Fi],[/[bszmp]{2}y$/,Fi],[/.[ai]my$/,Fi],[/[ea]{2}zy$/,Fi],[/.[^aeiou]ity$/,Bi]]};const Si="Verb",$i="Noun";var Mi={leftTags:[["Adjective",$i],["Possessive",$i],["Determiner",$i],["Adverb",Si],["Pronoun",Si],["Value",$i],["Ordinal",$i],["Modal",Si],["Superlative",$i],["Demonym",$i],["Honorific","Person"]],leftWords:[["i",Si],["first",$i],["it",Si],["there",Si],["not",Si],["because",$i],["if",$i],["but",$i],["who",Si],["this",$i],["his",$i],["when",$i],["you",Si],["very","Adjective"],["old",$i],["never",Si],["before",$i],["a",$i],["the",$i],["been",Si]],rightTags:[["Copula",$i],["PastTense",$i],["Conjunction",$i],["Modal",$i]],rightWords:[["there",Si],["me",Si],["man","Adjective"],["him",Si],["it",Si],["were",$i],["took",$i],["himself",Si],["went",$i],["who",$i],["jr","Person"]]},Ji={fwd:"3:ser,ier¦1er:h,t,f,l,n¦1r:e¦2er:ss,or,om",both:"3er:ver,ear,alm¦3ner:hin¦3ter:lat¦2mer:im¦2er:ng,rm,mb¦2ber:ib¦2ger:ig¦1er:w,p,k,d¦ier:y",rev:"1:tter,yer¦2:uer,ver,ffer,oner,eler,ller,iler,ster,cer,uler,sher,ener,gher,aner,adder,nter,eter,rter,hter,rner,fter¦3:oser,ooler,eafer,user,airer,bler,maler,tler,eater,uger,rger,ainer,urer,ealer,icher,pler,emner,icter,nser,iser¦4:arser,viner,ucher,rosser,somer,ndomer,moter,oother,uarer,hiter¦5:nuiner,esser,emier¦ar:urther",ex:"worse:bad¦better:good¦4er:fair,gray,poor¦1urther:far¦3ter:fat,hot,wet¦3er:lay,shy,fun¦3der:mad,sad¦4der:glad¦:¦4r:cute,dire,fake,fine,free,lame,late,pale,rare,ripe,rude,safe,sore,tame,wide¦5r:eerie,stale"},Wi={fwd:"1:nning,tting,rring,pping,eing,mming,gging,dding,bbing,kking¦2:eking,oling,eling,eming¦3:velling,siting,uiting,fiting,loting,geting,ialing¦4:graming",both:"1:iing,fing,xing,ying,oing,hing,wing¦2:tzing,rping,izzing,bting,mning,sping,wling,rling,wding,rbing,uping,lming,wning,mping,oning,lting,mbing,lking,fting,hting,sking,gning,pting,cking,ening,nking,iling,eping,ering,rting,rming,cting,lping,ssing,nting,nding,lding,sting,rning,rding,rking¦3:yaking,uaking,oaning,auling,valing,aiding,naping,euring,tolling,uzzing,ganing,haning,ualing,halling,iasing,auding,ieting,ceting,ouling,voring,ralling,ooding,garing,joring,ooping,oaking,roring,oaming,uelling,nelling,eaping,eeting,ooting,ooming,xiting,keting,ooking,ulling,airing,oaring,biting,outing,oiting,eeding,naling,eaming,oading,earing,delling,ouring,eaking,aiming,illing,oining,eaning,onging,ealing,aining,eading¦4:melling,aboring,ivoting,weating,dfilling,onoring,eriting,imiting,heating,tialling,rgining,otoring,linging,winging,lleting,louding,spelling,looring,mpelling,xcelling,feating,opelling,choring,welling,ymaking,ctoring,calling,peating,iloring,laiting,utoring,uditing,nmaking,mmaking,loating,iciting,waiting,mbating,voiding,otalling,nsoring,nselling,ocusing,itoring,eloping¦5:rselling,umpeting,atrolling,treating,tselling,rpreting,pringing,ummeting,ossoming,elmaking,eselling,rediting,defining,totyping,rfeiting,ntrolling¦5e:chmaking,orsaking,severing,erouting,ecreting,ephoning,uthoring,reathing,pediting,erfering,eotyping,fringing,entoring,ombining,ompeting¦4e:emaking,eething,dmiring,chuting,xciting,rseding,scoping,edoring,pinging,lunging,agining,craping,pleting,eleting,nciting,nfining,ncoding,tponing,ecoding,writing,esaling,gnoring,evoting,mpeding,dhering,mpiling,storing,nviting,ploring¦3e:tining,wining,nuring,ruling,haling,ceding,xuding,rining,nuting,caring,miling,riding,hoking,piring,lading,laking,curing,uading,noting,taping,futing,paring,raking,vening,loding,siring,guring,vading,voking,niting,laning,coring,caping,luting,muting,ruding,ciding,juring,laming,caling,hining,uoting,liding,ciling,duling,tuting,puting,cuting,laring,uiding,tiring,turing,siding,rading,enging,haping,buting,lining,taking,anging,haring,uiring,coming,mining,moting,suring,viding,luding¦2e:tring,zling,uging,oging,gling,iging,vring,fling,lging,iping,obing,psing,pling,ubing,cling,dling,wsing,iking,rsing,dging,kling,ysing,tling,rging,eging,nsing,uning,osing,uming,using,ibing,bling,aging,ising,asing,ating¦2ie:rlying¦1e:zing,uing,cing,ving",rev:"ying:ie¦1ing:se,ke,te,we,ne,re,de,pe,me,le,c,he¦2ing:ll,ng,dd,ee,ye,oe,or,rg,us¦2ning:un¦2ging:og,ag,ug,ig,eg¦2ming:um¦2ping:ip¦2bing:ub,ab,eb,ob¦3ning:lan,can,hin,pin,win¦3ring:cur,lur,tir,tar,pur,car¦3ing:eat,dit,ool,eel,oat,eem,lel¦3ping:rop,rap,wap,hop,lap,cap¦3ming:tem,wim,rim,kim¦3ting:mat,cut,pot,lit,nit,hat,set,pit,rot¦3ding:hed,bed,bid,red¦3king:rek¦3bing:rib¦3ling:pel¦4ning:egin¦4ing:isit,ruit,ilot,nsit,dget,rkel,rcel¦4ring:efer,nfer¦4ling:abel,evel,ncil,ivel¦4ting:rmit,mmit,ysit,dmit,emit,bmit,tfit,gret,llot¦5ing:arget,posit,rofit¦5ring:nsfer¦5ting:nsmit,orget,cquit¦5ling:ancel,istil",ex:"3:adding,eating,aiming,aiding,airing,outing,gassing,setting,getting,putting,cutting,winning,sitting,betting,mapping,tapping,letting,bidding,hitting,tanning,netting,popping,fitting,capping,lapping,barring,banning,vetting,topping,rotting,potting,wetting,pitting,budding,hemming,pinning,jetting,kidding,padding,podding,wedding,bedding,donning,warring,penning,gutting,cueing,wadding,petting,napping,matting,tinning¦4:selling,falling,calling,waiting,editing,telling,rolling,heating,boating,hanging,beating,coating,singing,mooring,tolling,felling,polling,discing,seating,voiding,gelling,yelling,seeking,stopping,spanning,stepping,emitting,quitting,dialing,omitting,plotting,clotting,shutting,skinning,slotting,abutting,cramming¦5:bringing,treating,labelling,spelling,stalling,trolling,expelling,wringing,deterring,singeing,befitting,refitting¦6:enrolling,cancelling,distilling,scrolling,strolling,caucusing,travelling¦7:installing,stencilling,recharging,overeating,benefiting,unraveling,programing¦9:reprogramming¦is:being¦2e:using,aging,owing¦3e:making,taking,coming,noting,hiring,filing,coding,citing,doping,baking,coping,hoping,lading,caring,naming,voting,riding,mining,curing,lining,ruling,typing,boring,dining,firing,hiding,piling,taping,waning,baling,boning,faring,honing,luring,timing,wading,fading,biting,zoning,daring,waking,gaming,raking,ceding,tiring,coking,wining,joking,paring,gaping,poking,pining,coring,liming,toting,roping,wiring,aching¦4e:writing,storing,eroding,framing,smoking,tasting,wasting,phoning,shaking,shading,abiding,pasting,priming,shoring,sloping,withing¦5e:defining,refining,enduring,renaming,swathing,fringing,reciting¦1ie:dying,tying,lying,vying¦7e:sunbathing¦10e:recordkeeping"},Ki={fwd:"1:mt¦2:llen¦3:iven,aken¦:ne¦y:in",both:"1:wn¦2:me,aten¦3:seen,bidden,isen¦4:roven,asten¦3l:pilt¦3d:uilt¦2e:itten¦1im:wum¦1eak:poken¦1ine:hone¦1ose:osen¦1in:gun¦1ake:woken¦ear:orn¦eal:olen¦eeze:ozen¦et:otten¦ink:unk¦ing:ung",rev:"2:un¦oken:eak¦ought:eek¦oven:eave¦1ne:o¦1own:ly¦1den:de¦1in:ay¦2t:am¦2n:ee¦3en:all¦4n:rive,sake,take¦5n:rgive",ex:"2:been¦3:seen,run¦4:given,taken¦5:shaken¦2eak:broken¦1ive:dove¦2y:flown¦3e:hidden,ridden¦1eek:sought¦1ake:woken¦1eave:woven"},qi={fwd:"1:oes¦1ve:as",both:"1:xes¦2:zzes,ches,shes,sses¦2y:llies,plies¦1y:bies,ties,vies,nies,pies,dies,ries,fies¦:s",rev:"1ies:ly¦2es:us,go¦2ses:as¦3es:cho",ex:"2:does,goes¦3:gasses¦5:focuses¦is:are¦3y:relies¦2y:flies¦2ve:has"},Ui={fwd:"1st:e¦1est:l,m,f,s¦1iest:cey¦2est:or,ir¦3est:ver",both:"4:east¦5:hwest¦5lest:erful¦4est:weet,lgar,tter,oung¦4most:uter¦3est:ger,der,rey,iet,ong,ear¦3test:lat¦3most:ner¦2est:pt,ft,nt,ct,rt,ht¦2test:it¦2gest:ig¦1est:b,k,n,p,h,d,w¦iest:y",rev:"1:ttest,nnest,yest¦2:sest,stest,rmest,cest,vest,lmest,olest,ilest,ulest,ssest,imest,uest¦3:rgest,eatest,oorest,plest,allest,urest,iefest,uelest,blest,ugest,amest,yalest,ealest,illest,tlest,itest¦4:cerest,eriest,somest,rmalest,ndomest,motest,uarest,tiffest¦5:leverest,rangest¦ar:urthest¦3ey:riciest",ex:"best:good¦worst:bad¦5est:great¦4est:fast,full,fair,dull¦3test:hot,wet,fat¦4nest:thin¦1urthest:far¦3est:gay,shy,ill¦4test:neat¦4st:late,wide,fine,safe,cute,fake,pale,rare,rude,sore,ripe,dire¦6st:severe"},Ri={fwd:"1:tistic,eable,lful,sful,ting,tty¦2:onate,rtable,geous,ced,seful,ctful¦3:ortive,ented¦arity:ear¦y:etic¦fulness:begone¦1ity:re¦1y:tiful,gic¦2ity:ile,imous,ilous,ime¦2ion:ated¦2eness:iving¦2y:trious¦2ation:iring¦2tion:vant¦3ion:ect¦3ce:mant,mantic¦3tion:irable¦3y:est,estic¦3m:mistic,listic¦3ess:ning¦4n:utious¦4on:rative,native,vative,ective¦4ce:erant",both:"1:king,wing¦2:alous,ltuous,oyful,rdous¦3:gorous,ectable,werful,amatic¦4:oised,usical,agical,raceful,ocused,lined,ightful¦5ness:stful,lding,itous,nuous,ulous,otous,nable,gious,ayful,rvous,ntous,lsive,peful,entle,ciful,osive,leful,isive,ncise,reful,mious¦5ty:ivacious¦5ties:ubtle¦5ce:ilient,adiant,atient¦5cy:icient¦5sm:gmatic¦5on:sessive,dictive¦5ity:pular,sonal,eative,entic¦5sity:uminous¦5ism:conic¦5nce:mperate¦5ility:mitable¦5ment:xcited¦5n:bitious¦4cy:brant,etent,curate¦4ility:erable,acable,icable,ptable¦4ty:nacious,aive,oyal,dacious¦4n:icious¦4ce:vient,erent,stent,ndent,dient,quent,ident¦4ness:adic,ound,hing,pant,sant,oing,oist,tute¦4icity:imple¦4ment:fined,mused¦4ism:otic¦4ry:dantic¦4ity:tund,eral¦4edness:hand¦4on:uitive¦4lity:pitable¦4sm:eroic,namic¦4sity:nerous¦3th:arm¦3ility:pable,bable,dable,iable¦3cy:hant,nant,icate¦3ness:red,hin,nse,ict,iet,ite,oud,ind,ied,rce¦3ion:lute¦3ity:ual,gal,volous,ial¦3ce:sent,fensive,lant,gant,gent,lent,dant¦3on:asive¦3m:fist,sistic,iastic¦3y:terious,xurious,ronic,tastic¦3ur:amorous¦3e:tunate¦3ation:mined¦3sy:rteous¦3ty:ain¦3ry:ave¦3ment:azed¦2ness:de,on,ue,rn,ur,ft,rp,pe,om,ge,rd,od,ay,ss,er,ll,oy,ap,ht,ld,ad,rt¦2inousness:umous¦2ity:neous,ene,id,ane¦2cy:bate,late¦2ation:ized¦2ility:oble,ible¦2y:odic¦2e:oving,aring¦2s:ost¦2itude:pt¦2dom:ee¦2ance:uring¦2tion:reet¦2ion:oted¦2sion:ending¦2liness:an¦2or:rdent¦1th:ung¦1e:uable¦1ness:w,h,k,f¦1ility:mble¦1or:vent¦1ement:ging¦1tiquity:ncient¦1ment:hed¦verty:or¦ength:ong¦eat:ot¦pth:ep¦iness:y",rev:"",ex:"5:forceful,humorous¦8:charismatic¦13:understanding¦5ity:active¦11ness:adventurous,inquisitive,resourceful¦8on:aggressive,automatic,perceptive¦7ness:amorous,fatuous,furtive,ominous,serious¦5ness:ample,sweet¦12ness:apprehensive,cantankerous,contemptuous,ostentatious¦13ness:argumentative,conscientious¦9ness:assertive,facetious,imperious,inventive,oblivious,rapacious,receptive,seditious,whimsical¦10ness:attractive,expressive,impressive,loquacious,salubrious,thoughtful¦3edom:boring¦4ness:calm,fast,keen,tame¦8ness:cheerful,gracious,specious,spurious,timorous,unctuous¦5sity:curious¦9ion:deliberate¦8ion:desperate¦6e:expensive¦7ce:fragrant¦3y:furious¦9ility:ineluctable¦6ism:mystical¦8ity:physical,proactive,sensitive,vertical¦5cy:pliant¦7ity:positive¦9ity:practical¦12ism:professional¦6ce:prudent¦3ness:red¦6cy:vagrant¦3dom:wise"};var Qi=function(e="",t={}){let n=function(e,t={}){return t.hasOwnProperty(e)?t[e]:null}(e,t.ex);return n=n||function(e,t=[]){for(let n=0;n=1;a-=1){let r=e.length-a,o=e.substring(r,e.length);if(!0===t.hasOwnProperty(o))return e.slice(0,r)+t[o];if(!0===n.hasOwnProperty(o))return e.slice(0,r)+n[o]}return t.hasOwnProperty("")?e+t[""]:n.hasOwnProperty("")?e+n[""]:null}(e,t.fwd,t.both),n=n||e,n};const Zi=function(e){return Object.entries(e).reduce(((e,t)=>(e[t[1]]=t[0],e)),{})};var Xi=function(e={}){return{reversed:!0,both:Zi(e.both),ex:Zi(e.ex),fwd:e.rev||{}}};const _i=/^([0-9]+)/,Yi=function(e){let t=function(e){let t={};return e.split("¦").forEach((e=>{let[n,a]=e.split(":");a=(a||"").split(","),a.forEach((e=>{t[e]=n}))})),t}(e);return Object.keys(t).reduce(((e,n)=>(e[n]=function(e="",t=""){let n=(t=String(t)).match(_i);if(null===n)return t;let a=Number(n[1])||0;return e.substring(0,a)+t.replace(_i,"")}(n,t[n]),e)),{})};var es=function(e={}){return"string"==typeof e&&(e=JSON.parse(e)),e.fwd=Yi(e.fwd||""),e.both=Yi(e.both||""),e.rev=Yi(e.rev||""),e.ex=Yi(e.ex||""),e};const ts=es({fwd:"1:tted,wed,gged,nned,een,rred,pped,yed,bbed,oed,dded,rd,s,wn,mmed¦2:eed,nded,et,hted,st,oled,ut,emed,eled,lded,ken,rt,nked,apt,ant,eped,eked¦3:eared,eat,eaded,nelled,ealt,eeded,ooted,eaked,eaned,eeted,mited,bid,uit,ead,uited,ealed,geted,velled¦4:ebuted,hined,taked,comed¦y:ied¦ome:ame¦ear:ore¦ind:ound¦ep:pt¦ink:ank,unk¦all:ell¦ee:aw¦ive:ave¦eeze:oze¦old:eld¦ave:ft¦ake:ook¦ing:ang¦ell:old¦ite:ote¦ide:ode¦ine:one¦in:un,on¦eal:ole¦im:am¦ie:ay¦and:ood¦1ise:rose¦1eak:roke¦1ing:rought,rung¦1ive:rove¦1id:bade¦1et:got¦1y:aid¦3e:lid¦3d:pent",both:"1:fed,xed,hed¦2:rped,lked,kied,lmed,lped,uped,bted,rbed,rked,wned,rled,mped,fted,mned,mbed,zzed,ened,cked,gned,lted,sked,ued,zed,nted,ered,rted,rmed,ced,sted,rned,ssed,rded,pted,ved,cted¦3:oomed,iped,oided,eiled,yped,taled,moned,yled,lit,kled,oaked,gled,naled,fled,outed,uined,oared,valled,koned,soned,aided,obed,ibed,meted,nicked,rored,micked,keted,vred,ooped,oaded,rited,aired,auled,filled,ouled,ooded,ceted,tolled,oited,bited,tled,vored,dled,eamed,nsed,rsed,sited,owded,pled,sored,rged,osed,oured,psed,oated,loned,aimed,illed,eured,tred,ioned,celled,bled,wsed,ooked,oiled,itzed,iked,iased,onged,ased,ailed,uned,umed,ained,auded,nulled,ysed,eged,ised,aged,oined,ated,used,dged,doned¦4:honed,tuted,pited,naked,miled,helled,haped,cored,caled,tired,peated,futed,ciled,called,tined,moted,filed,sided,poned,iloted,uaded,lleted,huted,ruled,cured,named,preted,voked,vaded,sured,pired,haled,peded,gined,nited,uided,ramed,feited,laked,gured,ctored,unged,loded,xpelled,cuted,caped,eloped,ralled,rined,coded,icited,vided,spelled,voted,mined,sired,noted,lined,nselled,luted,vened,jured,fided,puted,piled,pared,olored,cided,hoked,enged,tured,geoned,cotted,lamed,uiled,waited,udited,anged,luded,mired,uired,raded¦5:umpeted,ailored,rseded,quared,treated,eduled,ecited,rammed,eceded,atrolled,nitored,basted,nvited,rfered,itialled,ncited,gnored,truded,xcited,nrolled,namelled,plored,clared,redited,nfined,pleted,ompelled,llided,ircled,lcined,eathed,nefited,ibuted,lloted,dhered,cceded¦2aw:drew¦2ot:hot¦2ke:made¦2ow:hrew,grew¦2ose:hose¦2d:ilt¦2in:egan¦1go:rwent¦1ink:hought¦1ick:tuck¦1ike:ruck¦1eak:poke,nuck¦1it:pat¦1o:did¦1ow:new¦1el:elt¦1ing:lung¦1ake:woke¦ig:ug",rev:"3:rst,urt,set,ous,hed,hut,cut¦4:tbid¦5:dcast,eread,pread,erbid¦ought:uy,eek¦ung:ang¦1ied:ny,ly,dy,ry,fy,py,vy,by¦1pt:eep¦1ank:rink¦1ore:bear,wear¦1ave:give¦1oze:reeze¦1ound:rind¦1ook:take,hake¦1aw:see¦1old:sell¦1ote:rite¦1ole:teal¦1unk:tink¦1am:wim¦1ay:lie¦1ood:tand¦1eld:hold¦2d:he,ge,re,le,leed,ne,reed,be,ye,lee,pe¦2ed:dd,oy,or,ey,ho,gg,rr¦2ame:ecome,rcome¦2ped:ip¦2ged:ag,og,ug¦2bed:ub,ab,ib,ob¦2id:pay¦2ang:pring¦2ove:trive¦2med:um¦3ted:mit,hat,mat,lat,pot¦3ed:low,tow,und,ool,ond,eem,lay,dow,xit,eld,cus,ald,iew,bel,oan,del,uld,law,lel,eat,ray,ull,ank,fin,oam,oll,how,iek,tay,haw,ait¦3d:ste,ede,ode,ete,ree,ame,tee,oke,ote,ime¦3red:lur,cur,pur¦3ped:hop,rop,tep,top,rap¦3ded:bed,rod,kid¦3ade:orbid¦3led:uel¦3ned:lan,can,kin,pan,tun¦3med:rim¦4ted:quit,llot¦4ed:peal,cend,lend,rrow,rand,lean,mand,ceal,tend,fend,pear,anel,pand,reet,link,evel,imit,lead,mend,enew,cind,crew,head,pell,tall,well,rend,mell¦4led:nnel,qual¦4n:sake,trew¦4red:nfer,efer,sfer¦4ded:hred¦4ned:rpin¦5ed:ppend,light,epend,ndear,xceed,xpend,oceed,cruit,emind,cceed,spend,arget,hread,eight¦5led:ntrol,ravel¦5ped:erlap",ex:"2:been,upped¦3:added,aged,aided,aimed,aired,bid,died,dyed,egged,erred,eyed,fit,gassed,hit,lied,owed,pent,pied,tied,used,vied,banned,barred,bet,canned,capped,cut,donned,ended,feed,inked,jarred,let,manned,mapped,mowed,napped,netted,padded,panned,pitted,popped,potted,put,set,sewn,sowed,tanned,tapped,topped,vowed,weed¦4:ached,baked,baled,boned,bored,called,caned,cared,ceded,cited,coded,cored,cubed,cured,dared,dined,edited,exited,faked,fared,filed,fined,fired,fuelled,gamed,gelled,hired,hoped,joked,lined,loaned,mined,named,noted,piled,poked,polled,pored,pulled,reaped,roamed,rolled,ruled,seated,shed,sided,taped,timed,tolled,toned,voted,waited,walled,waned,winged,wired,zoned,banded,beat,brewed,cast,cost,dealt,feared,folded,footed,handed,headed,heard,knitted,landed,leaked,leapt,linked,meant,minded,molded,neared,needed,peaked,plodded,plotted,quit,read,rooted,sealed,seeded,seeped,shunned,skimmed,slammed,sparred,stemmed,stirred,suited,tended,thinned,twinned¦5:basted,cheated,equalled,eroded,exiled,focused,opined,pleated,primed,quoted,shared,shored,sloped,smoked,spelled,stalled,stored,swelled,tasted,treated,wasted,smelled,breaded,cleared,debuted,deterred,freaked,rebutted,speeded,staked¦6:anchored,defeated,defined,endured,impaled,propelled,refined,revered,strolled,recast,regretted,revealed,thrust,unfolded¦7:authored,combined,competed,conceded,controlled,entwined,excreted,installed,redefined,restored,welcomed¦8:expedited,infringed¦9:persevered,copyrighted¦10:intertwined¦eat:ate¦is:was¦go:went¦are:were¦3d:bent,lent,rent,sent¦3e:bit,fled,hid,lost¦3ed:bled,bred¦2ow:blew,grew¦1uy:bought¦2tch:caught¦1o:did¦1ive:dove,gave¦2aw:drew¦2ed:fed¦2y:flew,laid,paid,said¦1ight:fought¦1et:got¦2ve:had¦1ang:hung¦2ad:led¦2ght:lit¦2ke:made¦2et:met¦1un:ran¦1ise:rose¦1it:sat¦1eek:sought¦1each:taught¦1ake:woke,took¦1eave:wove¦2ise:arose¦1ear:bore,tore,wore¦1ind:bound,found,wound¦2eak:broke¦2ing:brought,wrung¦1ome:came¦2ive:drove¦1all:fell¦4et:forgot¦1old:held¦2ave:left¦1ing:rang,sang¦1ide:rode¦1ink:sank¦1ee:saw¦2ine:shone¦4e:slid¦1ell:sold,told¦4d:spent¦2in:spun¦1in:won"}),ns=es(qi),as=es(Wi),rs=es(Ki),os=Xi(ts),is=Xi(ns),ss=Xi(as),ls=Xi(rs),us=es(Ji),cs=es(Ui);var ds={fromPast:ts,fromPresent:ns,fromGerund:as,fromParticiple:rs,toPast:os,toPresent:is,toGerund:ss,toParticiple:ls,toComparative:us,toSuperlative:cs,fromComparative:Xi(us),fromSuperlative:Xi(cs),adjToNoun:es(Ri)},hs=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),gs=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..ase)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]];var ms=function(e,t){const{irregularPlurals:n}=t.two;let a=(r=n,Object.keys(r).reduce(((e,t)=>(e[r[t]]=t,e)),{}));var r;if(a.hasOwnProperty(e))return a[e];for(let t=0;t(fs[t].forEach((n=>e[n]=t)),e)),{});var bs=fs;var vs=function(e){let t=e.substring(e.length-3);if(!0===bs.hasOwnProperty(t))return bs[t];let n=e.substring(e.length-2);return!0===bs.hasOwnProperty(n)?bs[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const ys={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var ws=function(e,t,n){const{fromPast:a,fromPresent:r,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",a={};t.one&&t.one.prefixes&&(a=t.one.prefixes);let[r,o]=e.split(/ /);return o&&!0===a[r]&&(n=r,r=o,o=""),{prefix:n,verb:r,particle:o}}(e,t),c="";if(n||(n=vs(e)),ys.hasOwnProperty(e))c=ys[e];else if("Participle"===n)c=Qi(l,i);else if("PastTense"===n)c=Qi(l,a);else if("PresentTense"===n)c=Qi(l,r);else{if("Gerund"!==n)return e;c=Qi(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var ks=function(e,t){const{toPast:n,toPresent:a,toGerund:r,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:Qi(i,n),PresentTense:Qi(i,a),Gerund:Qi(i,r),FutureTense:"will "+e},u=Qi(i,o);if(u!==e&&u!==l.PastTense){let n=t.one.lexicon||{};"Participle"!==n[u]&&"Adjective"!==n[u]||("play"===e&&(u="played"),l.Participle=u)}return s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l};var Ps={toInfinitive:ws,conjugate:ks,all:function(e,t){let n=ks(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}};const As=function(e,t){const n=t.two.models.toSuperlative;return Qi(e,n)},Is=function(e,t){const n=t.two.models.toComparative;return Qi(e,n)};var js=function(e="",t=[]){const n=e.length;for(let a=n<=6?n-1:6;a>=1;a-=1){let r=e.substring(n-a,e.length);if(!0===t[r.length].hasOwnProperty(r)){return e.slice(0,n-a)+t[r.length][r]}}return null};const Es="ically",Ns=new Set(["analyt"+Es,"chem"+Es,"class"+Es,"clin"+Es,"crit"+Es,"ecolog"+Es,"electr"+Es,"empir"+Es,"frant"+Es,"grammat"+Es,"ident"+Es,"ideolog"+Es,"log"+Es,"mag"+Es,"mathemat"+Es,"mechan"+Es,"med"+Es,"method"+Es,"method"+Es,"mus"+Es,"phys"+Es,"phys"+Es,"polit"+Es,"pract"+Es,"rad"+Es,"satir"+Es,"statist"+Es,"techn"+Es,"technolog"+Es,"theoret"+Es,"typ"+Es,"vert"+Es,"whims"+Es]),Ds=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Cs=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),xs={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"quick",superbly:"superb",cynically:"cynical",well:"good"};const Ts=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Fs={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Os=function(e){if(Fs.hasOwnProperty(e))return Fs[e];let t=js(e,Ts);return t||(t=e+"ly"),t};var Gs={toSuperlative:As,toComparative:Is,toAdverb:Os,toNoun:function(e,t){const n=t.two.models.adjToNoun;return Qi(e,n)},fromAdverb:function(e){return e.endsWith("ly")?Ns.has(e)?e.replace(/ically/,"ical"):Cs.has(e)?null:xs.hasOwnProperty(e)?xs[e]:js(e,Ds)||e:null},fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Qi(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return Qi(e,n)},all:function(e,t){let n=[e];return n.push(As(e,t)),n.push(Is(e,t)),n.push(Os(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},Bs={noun:ps,verb:Ps,adjective:Gs},zs={Singular:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.noun.toPlural(e,a);r[o]||(t[o]=t[o]||"Plural")},Actor:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.noun.toPlural(e,a);r[o]||(t[o]=t[o]||["Plural","Actor"])},Comparable:(e,t,n,a)=>{let r=a.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,a);r[s]||(t[s]=t[s]||"Superlative");let l=i(e,a);r[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,a)=>{let r=n.two.transform.noun.toPlural(e,a);t[r]=t[r]||["Demonym","Plural"]},Infinitive:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.verb.conjugate(e,a);Object.entries(o).forEach((e=>{r[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,a)=>{let r=a.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=a.one._multiCache,[i,s]=e.split(" ");r[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,a);delete l.FutureTense,Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||r[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]},Place:(e,t)=>{t[e]=["Place","ProperNoun"]},Region:(e,t)=>{t[e]=["Region","ProperNoun"]}};var Vs=function(e,t){const{methods:n,model:a}=t;let r={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===zs.hasOwnProperty(i)&&zs[i](t,r,n,a),r[t]=r[t]||i})),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}};var Hs=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let a=0;e.forEach(((r,o)=>{t.test(r.post)&&function(e,t){const n=/^[0-9]+$/;let a=e[t];if(!a)return!1;const r=new Set(["may","april","august","jan"]);if("like"===a.normal||r.has(a.normal))return!1;if(a.tags.has("Place")||a.tags.has("Date"))return!1;if(e[t-1]){let n=e[t-1];if(n.tags.has("Date")||r.has(n.normal))return!1;if(n.tags.has("Adjective")||a.tags.has("Adjective"))return!1}let o=a.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(a,o+1)),a=o+1)})),ae.endsWith(t))):"s"===t&&!$s.find((t=>e.endsWith(t)))},Js={two:{quickSplit:Hs,expandLexicon:Vs,transform:Bs,looksPlural:Ms}};var Ws=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};let Ks={one:{lexicon:{}},two:{models:ds}};const qs={"Actor|Verb":"Actor","Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"FirstName","Person|Place":"Person","Person|Adj":"Comparative","Plural|Verb":"Plural","Unit|Noun":"Noun"},Us=function(e,t){const n={model:t,methods:Js};let{lex:a,_multi:r}=Js.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},Rs=function(e,t,n){let a=ks(e,Ks);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},Qs=function(e,t,n){let a=As(e,n);t[a]=t[a]||"Superlative";let r=Is(e,n);t[r]=t[r]||"Comparative"},Zs=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach((r=>{const o=e[r];if(n[r]=qs[o],"Noun|Verb"!==o&&"Person|Verb"!==o&&"Actor|Verb"!==o||Rs(r,a,!1),"Adj|Present"===o&&(Rs(r,a,!0),Qs(r,a,t)),"Person|Adj"===o&&Qs(r,a,t),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=ws(r,Ks,"Gerund");a[e]||(n[e]="Infinitive")}if("Noun|Gerund"!==o&&"Adj|Noun"!==o&&"Person|Noun"!==o||function(e,t,n){let a=To(e,n);t[a]=t[a]||"Plural"}(r,a,t),"Adj|Past"===o){let e=ws(r,Ks,"PastTense");a[e]||(n[e]="Infinitive")}})),t=Us(n,t)};var Xs=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=Us(e.one.lexicon,e)).one.lexicon,e),e=Zs(e.two.switches,e),e=Ws(e)};let _s={one:{_multiCache:{},lexicon:Oo},two:{irregularPlurals:yo,models:ds,suffixPatterns:Ci,prefixPatterns:Ti,endsWith:Li,neighbours:Mi,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z°]{1,4})$/,"NumericValue","9km"]],switches:Go,clues:bi,uncountable:{},orgWords:hs}};_s=Xs(_s);var Ys=_s;var el=function(e,t,n,a){const r=a.methods.one.setTag;if(0===t&&e.length>=3){const t=/:/;if(e[0].post.match(t)){let t=e[1];if(t.tags.has("Value")||t.tags.has("Email")||t.tags.has("PhoneNumber"))return;r([e[0]],"Expression",a,null,"2-punct-colon''")}}};var tl=function(e,t,n,a){const r=a.methods.one.setTag;"-"===e[t].post&&e[t+1]&&r([e[t],e[t+1]],"Hyphenated",a,null,"1-punct-hyphen''")};const nl=/^(under|over|mis|re|un|dis|semi)-?/;var al=function(e,t,n){const a=n.two.switches;let r=e[t];if(a.hasOwnProperty(r.normal))r.switch=a[r.normal];else if(nl.test(r.normal)){let e=r.normal.replace(nl,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}};var rl=function(e,t,n){if(!t||0===t.length)return;const a="undefined"!=typeof process&&process.env?process.env:self.env||{};a&&a.DEBUG_TAGS&&((e,t,n="")=>{let a=e.text||"["+e.implicit+"]";var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,"[33m[3m"+r+"[0m").padEnd(24)} [32m→[0m #${t.padEnd(22)} ${(e=>"[3m"+e+"[0m")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const ol=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific","Month"];var il=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t)))||(Ms(e.normal)?rl(e,"Plural","3-plural-guess"):rl(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=vs(e.normal);t&&rl(e,t,"3-verb-tense-guess")}}(a)};const sl=/^\p{Lu}[\p{Ll}'’]/u,ll=/[0-9]/,ul=["Date","Month","WeekDay","Unit","Expression"],cl=/[IVX]/,dl=/^[IVXLCDM]{2,}$/,hl=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,gl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ml=function(e,t,n){let a=e[t];a.index=a.index||[0,0];let r=a.index[1],o=a.text||"";return 0!==r&&!0===sl.test(o)&&!1===ll.test(o)?ul.find((e=>a.tags.has(e)))||a.pre.match(/["']$/)||"the"===a.normal?null:(il(e,t,n),a.tags.has("Noun")||a.tags.clear(),rl(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&dl.test(o)&&cl.test(o)&&hl.test(o)&&!gl[a.normal]?(rl(a,"RomanNumeral","2-xvii"),!0):null};const pl=function(e="",t=[]){const n=e.length;let a=7;n<=a&&(a=n-1);for(let r=a;r>1;r-=1){let a=e.substring(n-r,n);if(!0===t[a.length].hasOwnProperty(a)){return t[a.length][a]}}return null};var fl=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=pl(a.normal,n.two.suffixPatterns);if(null!==e)return rl(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=pl(a.implicit,n.two.suffixPatterns),null!==e))return rl(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const bl=/['‘’‛‵′`´]/,vl=function(e,t){for(let n=0;nn-3&&(a=n-3);for(let n=a;n>2;n-=1){let a=e.substring(0,n);if(!0===t[a.length].hasOwnProperty(a))return t[a.length][a]}return null}(a.normal,n.two.prefixPatterns);if(null!==e)return rl(a,e,"2-prefix"),a.confidence=.5,!0}return null};const kl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Pl=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!kl.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},Al=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},Il=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var jl=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let a=Number(n.normal);if(a&&!isNaN(a)&&a>1400&&a<2100){let r=e[t-1],o=e[t+1];if(Pl(r)||Pl(o))return rl(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(Al(r)||Al(o))return rl(n,"Year","2-tagYear-close");if(Il(e[t-2])||Il(e[t+2]))return rl(n,"Year","2-tagYear-far");if(r&&(r.tags.has("Determiner")||r.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return rl(n,"Year","2-tagYear-noun")}}}return null};var El=function(e,t,n,a){const r=a.methods.one.setTag,o=e[t],i=["PastTense","PresentTense","Auxiliary","Modal","Particle"];if(o.tags.has("Verb")){i.find((e=>o.tags.has(e)))||r([o],"Infinitive",a,null,"2-verb-type''")}};const Nl=/^[A-Z]('s|,)?$/,Dl=/^[A-Z-]+$/,Cl=/^[A-Z]+s$/,xl=/([A-Z]\.)+[A-Z]?,?$/,Tl=/[A-Z]{2,}('s|,)?$/,Fl=/([a-z]\.)+[a-z]\.?$/,Ol={I:!0,A:!0},Gl={la:!0,ny:!0,us:!0,dc:!0,gb:!0};var Bl=function(e,t,n){let a=e[t];return a.tags.has("RomanNumeral")||a.tags.has("Acronym")?null:function(e,t){let n=e.text;if(!1===Dl.test(n)){if(!(n.length>3&&!0===Cl.test(n)))return!1;n=n.replace(/s$/,"")}return!(n.length>5||Ol.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==xl.test(n)&&!0!==Fl.test(n)&&!0!==Nl.test(n)&&!0!==Tl.test(n))}(a,n)?(a.tags.clear(),rl(a,["Acronym","Noun"],"3-no-period-acronym"),!0===Gl[a.normal]&&rl(a,"Place","3-place-acronym"),!0===Cl.test(a.text)&&rl(a,"Plural","3-plural-acronym"),!0):!Ol.hasOwnProperty(a.text)&&Nl.test(a.text)?(a.tags.clear(),rl(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(rl(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&Dl.test(a.text)&&a.text.length<=6?(rl(a,"Acronym","3-titlecase-acronym"),!0):null};const zl=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Vl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var Hl=function(e,t,n){const{leftTags:a,leftWords:r,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||zl(e[t-1],r),l=l||zl(e[t+1],o),l=l||Vl(e[t-1],a),l=l||Vl(e[t+1],i),l)return rl(s,l,"3-[neighbour]"),il(e,t,n),e[t].confidence=.2,!0}return null};const Ll=function(e,t,n){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||!(n||(a=e.text,!/^\p{Lu}[\p{Ll}'’]/u.test(a)))&&(0!==t||e.tags.has("Singular"))));var a};var Sl=function(e,t,n,a){const r=n.model.two.orgWords,o=n.methods.one.setTag;let i=e[t];if(!0===r[i.machine||i.normal]&&Ll(e[t-1],t-1,a)){o([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Ll(e[r],r,a);r-=1)o([e[r]],"Organization",n,null,"3-[org-word]")}return null};var $l=function(e,t,n){let a=!1,r=e[t].tags;(0===r.size||1===r.size&&(r.has("Hyphenated")||r.has("HashTag")||r.has("Prefix")))&&(a=!0),a&&(rl(e[t],"Noun","3-[fallback]"),il(e,t,n),e[t].confidence=.1)};const Ml=/^[A-Z][a-z]/,Jl=(e,t)=>e[t].tags.has("ProperNoun")&&Ml.test(e[t].text)?"Noun":null,Wl=(e,t,n)=>0!==t||e[1]?null:n,Kl={"Adj|Gerund":(e,t)=>Jl(e,t),"Adj|Noun":(e,t)=>Jl(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Actor|Verb":(e,t)=>Jl(e,t),"Adj|Past":(e,t)=>Jl(e,t),"Adj|Present":(e,t)=>Jl(e,t),"Noun|Gerund":(e,t)=>Jl(e,t),"Noun|Verb":(e,t)=>t>0&&Jl(e,t)||Wl(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Jl(e,t)||Wl(e,t,"PresentTense")||function(e,t,n){return 0===t&&e.length>3?n:null}(e,t,"Plural"),"Person|Noun":(e,t)=>Jl(e,t),"Person|Verb":(e,t)=>0!==t?Jl(e,t):null,"Person|Adj":(e,t)=>0===t&&e.length>1||Jl(e,t)?"Person":null};var ql=Kl;const Ul="undefined"!=typeof process&&process.env?process.env:self.env||{},Rl=/^(under|over|mis|re|un|dis|semi)-?/,Ql=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,a=null;return t.hasOwnProperty(n)&&(a=t[n]),a&&Ul.DEBUG_TAGS&&console.log(`\n [2m[3m ↓ - '${n}' [0m`),a},Zl=(e,t={},n)=>{if(!e||!t)return null;let a=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),r=a.find((e=>t[e]));return r&&Ul.DEBUG_TAGS&&console.log(` [2m[3m ↓ - '${e.normal||e.implicit}' (#${r}) [0m`),r=t[r],r};var Xl=function(e,t,n){const a=n.model,r=n.methods.one.setTag,{switches:o,clues:i}=a.two,s=e[t];let l=s.normal||s.implicit||"";if(Rl.test(l)&&!o[l]&&(l=l.replace(Rl,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,a){if(!n)return null;const r=a.one.tagSet;let o=Ql(e[t+1],n.afterWords);return o=o||Ql(e[t-1],n.beforeWords),o=o||Zl(e[t-1],n.beforeTags,r),o=o||Zl(e[t+1],n.afterTags,r),o}(e,t,i[o],a);ql[o]&&(u=ql[o](e,t)||u),u?(r([s],u,n,null,`3-[switch] (${o})`),il(e,t,a)):Ul.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}};const _l={there:!0,this:!0,it:!0,him:!0,her:!0,us:!0};var Yl=function(e,t){const n=t.methods.one.setTag,a=t.model.one._multiCache||{};let r=e[0];if(("Noun|Verb"===r.switch||r.tags.has("Infinitive"))&&e.length>=2){if(e.length<4&&!_l[e[1].normal])return;if(!r.tags.has("PhrasalVerb")&&a.hasOwnProperty(r.normal))return;if(e[1].tags.has("Noun")||e[1].tags.has("Determiner")){e.slice(1,3).some((e=>e.tags.has("Verb")))&&!r.tags.has("#PhrasalVerb")||n([r],"Imperative",t,null,"3-[imperative]")}}};const eu=function(e){if(e.filter((e=>!e.tags.has("ProperNoun"))).length<=3)return!1;const t=/^[a-z]/;return e.every((e=>!t.test(e.text)))},tu=function(e,t,n,a){for(let r=0;r{el(e,0,t,n);for(let t=0;t{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var ou=function(e){const t=e.world,n=Object.keys(ru);e.docs.forEach((e=>{for(let a=0;a{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=bu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=fu};var yu=function(e,t,n){let[a,r]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e))),n[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const wu=/'/;var ku=function(e,t){let n=e[t].normal.split(wu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let a=e[t+1];if(a&&a.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const Pu=/'/;var Au=function(e,t){let n=e[t].normal.split(Pu)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>!(!e[t+1]||"better"!=e[t+1].normal)||e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]};var Iu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){if(e[t+1]&&"never"===e[t+1].normal)return["have"];let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if("i"===n.normal)return["am","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const ju={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Eu={in:!0,by:!0,for:!0};var Nu=(e,t)=>{let n=e[t];if(ju.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("QuestionWord"))return!1;if("he's"===n.normal||"she's"===n.normal)return!1;let a=e[t+1];if(!a)return!0;if("it's"===n.normal)return!!a.tags.has("#Noun");if(a.tags.has("Verb"))return!!a.tags.has("Infinitive")||!!a.tags.has("PresentTense");if(a.tags.has("Noun")){let e=a.machine||a.normal;return"here"!==e&&"there"!==e&&"everywhere"!==e&&(!a.tags.has("Possessive")&&!(a.tags.has("ProperNoun")&&!n.tags.has("ProperNoun")))}if(e[t-1]&&!0===Eu[e[t-1].normal])return!0;let r=e[t+2];return!(!r||!r.tags.has("Noun")||r.tags.has("Pronoun"))||(a.tags.has("Adjective")||a.tags.has("Adverb")||a.tags.has("Verb"),!1)};const Du=/'/,Cu=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]],r.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},xu={d:(e,t)=>Au(e,t),t:(e,t)=>Iu(e,t),s:(e,t,n)=>Nu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):ku(e,t)},Tu=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Fu={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((a,r)=>{for(let o=a.length-1;o>=0;o-=1){if(a[o].implicit)return;let i=null;!0===Du.test(a[o].normal)&&([,i]=a[o].normal.split(Du));let s=null;xu.hasOwnProperty(i)&&(s=xu[i](a,o,t)),s&&(s=Tu(s,e),yu(n,[r,o],s),Cu(n[r],e,o,s.length))}}))}},Ou={compute:Fu,api:vu,hooks:["contractionTwo"]};const Gu="(i|we|they)";let Bu=[].concat([{match:"(got|were|was|is|are|am) (#PastTense|#Participle)",tag:"Passive",reason:"got-walked"},{match:"(was|were|is|are|am) being (#PastTense|#Participle)",tag:"Passive",reason:"was-being"},{match:"(had|have|has) been (#PastTense|#Participle)",tag:"Passive",reason:"had-been"},{match:"will be being? (#PastTense|#Participle)",tag:"Passive",reason:"will-be-cleaned"},{match:"#Noun [(#PastTense|#Participle)] by (the|a) #Noun",group:0,tag:"Passive",reason:"suffered-by"}],[{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,notIf:"(all|even)",tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"[#Hyphenated (#Hyphenated && #PastTense)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"faith-based"},{match:"[#Hyphenated (#Hyphenated && #Gerund)] (#Noun|#Conjunction)",group:0,tag:"Adjective",notIf:"#Adverb",reason:"self-driving"},{match:"[#PastTense (#Hyphenated && #PhrasalVerb)] (#Noun|#Conjunction)",group:0,tag:"Adjective",reason:"dammed-up"},{match:"(#Hyphenated && #Value) fold",tag:"Adjective",reason:"two-fold"},{match:"must (#Hyphenated && #Infinitive)",tag:"Adjective",reason:"must-win"},{match:"(#Hyphenated && #Infinitive) #Hyphenated",tag:"Adjective",notIf:"#PhrasalVerb",reason:"vacuum-sealed"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"},{match:"[(un|contra|extra|inter|intra|macro|micro|mid|mis|mono|multi|pre|sub|tri|ex)] #Adjective",group:0,tag:["Adjective","Prefix"],reason:"un-skilled"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"},{match:"#Copula [far too] #Adjective",group:0,tag:"Adverb",reason:"far-too"},{match:"#Copula [still] (in|#Gerund|#Adjective)",group:0,tag:"Adverb",reason:"was-still-walking"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"},{match:"#Gerund [#Gerund]",group:0,tag:"Adjective",notIf:"(impersonating|practicing|considering|assuming)",reason:"looking-annoying"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",notIf:"#Hyphenated",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"},{match:"no [#Adjective] #Modal",group:0,tag:"Noun",reason:"no-golden"},{match:"[brand #Gerund?] new",group:0,tag:"Adverb",reason:"brand-new"},{match:"(#Determiner|#Comparative|new|different) [kind]",group:0,tag:"Noun",reason:"some-kind"},{match:"#Possessive [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"her-favourite"},{match:"must && #Hyphenated .",tag:"Adjective",reason:"must-win"},{match:"#Determiner [#Adjective]$",tag:"Noun",notIf:"(this|that|#Comparative|#Superlative)",reason:"the-south"},{match:"(#Noun && #Hyphenated) (#Adjective && #Hyphenated)",tag:"Adjective",notIf:"(this|that|#Comparative|#Superlative)",reason:"company-wide"},{match:"#Determiner [#Adjective] (#Copula|#Determiner)",notIf:"(#Comparative|#Superlative)",group:0,tag:"Noun",reason:"the-poor"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,notIf:"(#Modal|#PhrasalVerb)",tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] #Comparative",group:0,tag:"Adverb",reason:"even-worse"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",notIf:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",notIf:"(#PhrasalVerb|#Copula)",reason:"charge-back"},{match:"#Verb [around]",group:0,tag:"Adverb",notIf:"#PhrasalVerb",reason:"send-around"},{match:"[later] #PresentTense",group:0,tag:"Adverb",reason:"later-say"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) (march|may) !#Infinitive",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"(the|any) [more]",group:0,tag:"Singular",reason:"more-noun"},{match:"[more] #Noun",group:0,tag:"Adjective",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Singular",reason:"bit-2"},{match:"a [must]",group:0,tag:"Singular",reason:"must-2"},{match:"(we|us) [all]",group:0,tag:"Noun",reason:"we all"},{match:"due to [#Verb]",group:0,tag:"Noun",reason:"due-to"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",notIf:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"(a|an|the) [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",notIf:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,notIf:"#Gerund",tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense #Particle?]",group:0,tag:"Noun",notIf:"(seem|appear|include|#Gerund|#Copula)",reason:"det-inf"},{match:"#Noun #Actor",tag:"Actor",notIf:"(#Person|#Pronoun)",reason:"thing-doer"},{match:"#Gerund #Actor",tag:"Actor",reason:"gerund-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"[#Noun+] #Actor",group:0,tag:"Actor",notIf:"(#Honorific|#Pronoun|#Possessive)",reason:"air-traffic-controller"},{match:"(urban|cardiac|cardiovascular|respiratory|medical|clinical|visual|graphic|creative|dental|exotic|fine|certified|registered|technical|virtual|professional|amateur|junior|senior|special|pharmaceutical|theoretical)+ #Noun? #Actor",tag:"Actor",reason:"fine-artist"},{match:"#Noun+ (coach|chef|king|engineer|fellow|personality|boy|girl|man|woman)",tag:"Actor",reason:"dance-coach"},{match:"chief . officer",tag:"Actor",reason:"chief-x-officer"},{match:"chief of #Noun+",tag:"Actor",reason:"chief-of-police"},{match:"senior? vice? president of #Noun+",tag:"Actor",reason:"president-of"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]$",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense #Particle?",notIf:"(#Gerund|her)",tag:"Noun",reason:"possessive-verb"},{match:"(my|our|their|her|his|its) [(#Plural && #Actor)] #Noun",tag:"Possessive",reason:"my-dads"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"},{match:"i #Verb [me] #Noun",group:0,tag:"Possessive",reason:"scottish-me"},{match:"[#PresentTense] (music|class|lesson|night|party|festival|league|ceremony)",group:0,tag:"Noun",reason:"dance-music"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,ifNo:"#Copula",tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",notIf:"(still|even|just)",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"#Copula [(#Gerund|#Activity)] #Copula",group:0,tag:"Gerund",reason:"are-doing-is"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"},{match:"#Singular for [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"noun-for-gerund"},{match:"#Comparative (for|at) [%Noun|Gerund%]",group:0,tag:"Gerund",reason:"better-for-gerund"},{match:"#PresentTense the [#Gerund]",group:0,tag:"Noun",reason:"keep-the-touching"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner (only|further|just|more|backward) [#Infinitive]",group:0,tag:"Noun",reason:"the-only-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"#Plural on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb #Particle?]",notIf:"(#Copula|#Noun|sure|fun|up)",group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",notIf:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",notIf:"#Preposition",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",notIf:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"better",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",notIf:"(#Copula|better)",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"many-poses"},{match:"#Determiner #Adverb #Adjective [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Copula",reason:"very-big-dream"},{match:"from #Noun to [%Noun|Verb%]",group:0,tag:"Noun",reason:"start-to-finish"},{match:"(for|with|of) #Noun (and|or|not) [%Noun|Verb%]",group:0,tag:"Noun",notIf:"#Pronoun",reason:"for-food-and-gas"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",notIf:"#Copula",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #Particle #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense] of",group:0,notIf:"(one|1|#Copula|#Infinitive)",tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",notIf:"#Copula",reason:"our-full-support"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",notIf:"going",reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"},{match:"how to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"how-to-noun"},{match:"which [%Noun|Verb%] #Noun",group:0,tag:"Infinitive",reason:"which-boost-it"},{match:"#Gerund [%Plural|Verb%]",group:0,tag:"Plural",reason:"asking-questions"},{match:"(ready|available|difficult|hard|easy|made|attempt|try) to [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"ready-to-noun"},{match:"(bring|went|go|drive|run|bike) to [%Noun|Verb%]",group:0,tag:"Noun",reason:"bring-to-noun"},{match:"#Modal #Noun [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"would-you-look"},{match:"#Copula just [#Infinitive]",group:0,tag:"Noun",reason:"is-just-spam"},{match:"^%Noun|Verb% %Plural|Verb%",tag:"Imperative #Plural",reason:"request-copies"},{match:"#Adjective #Plural and [%Plural|Verb%]",group:0,tag:"#Plural",reason:"pickles-and-drinks"},{match:"#Determiner #Year [#Verb]",group:0,tag:"Noun",reason:"the-1968-film"},{match:"#Determiner [#PhrasalVerb #Particle]",group:0,tag:"Noun",reason:"the-break-up"},{match:"#Determiner [%Adj|Noun%] #Noun",group:0,tag:"Adjective",notIf:"(#Pronoun|#Possessive|#ProperNoun)",reason:"the-individual-goals"},{match:"[%Noun|Verb%] or #Infinitive",group:0,tag:"Infinitive",reason:"work-or-prepare"},{match:"to #Infinitive [#PresentTense]",group:0,tag:"Noun",notIf:"(#Gerund|#Copula|help)",reason:"to-give-thanks"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"},{match:"^[#Value] (#Determiner|#Gerund)",group:0,tag:"Expression",unTag:"Value",reason:"numbered-list"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|brother|father|aunt|uncle|grandpa|grandfather|grandma) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",notIf:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",notIf:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(lieutenant|corporal|sergeant|captain|qeen|king|admiral|major|colonel|marshal|president|queen|king)+] #ProperNoun",group:0,tag:"Honorific",reason:"seargeant-john"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:["Honorific","Person"],reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",notIf:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"#Honorific #Actor",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) #Actor",tag:"Honorific",reason:"first lady"},{match:"#Person #RomanNumeral",tag:"Person",reason:"louis-IV"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun",ifNo:"#Actor"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"},{match:"(#FirstName && !#Possessive) [#Singular] #Verb",group:0,safe:!0,tag:"LastName",reason:"jack-layton"},{match:"^[#Singular] #Person #Verb",group:0,safe:!0,tag:"Person",reason:"sherwood-anderson"},{match:"(a|an) [#Person]$",group:0,unTag:"Person",reason:"a-warhol"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:"#Date",group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",notIf:"(come|gotten)",reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(have|had) read",tag:"Modal #PastTense",reason:"read-read"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"},{match:"as #Pronoun [please]",group:0,tag:"Infinitive",reason:"as-we-please"},{match:"[(co|mis|de|inter|intra|pre|re|un|out|under|over|counter)] #Verb",group:0,tag:["Verb","Prefix"],notIf:"(#Copula|#PhrasalVerb)",reason:"co-write"},{match:"#PastTense and [%Adj|Past%]",group:0,tag:"PastTense",reason:"dressed-and-left"},{match:"[%Adj|Past%] and #PastTense",group:0,tag:"PastTense",reason:"dressed-and-left"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Copula [#Adjective] (well|badly|quickly|slowly)",group:0,tag:"Verb",reason:"done-well"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense #Particle?]",group:0,tag:"Adjective",reason:"a-bit-confused"},{match:"not be [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"do-not-be-confused"},{match:"#Copula just [%Adj|Past% #Particle?]",group:0,tag:"Adjective",reason:"is-just-right"},{match:"as [#Infinitive] as",group:0,tag:"Adjective",reason:"as-pale-as"},{match:"[%Adj|Past%] and #Adjective",group:0,tag:"Adjective",reason:"faled-and-oppressive"},{match:"or [#PastTense] #Noun",group:0,tag:"Adjective",notIf:"(#Copula|#Pronoun)",reason:"or-heightened-emotion"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"[(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"},{match:"[(been|had|became|came)] #PastTense",group:0,notIf:"#PhrasalVerb",tag:"Auxiliary",reason:"been-told"},{match:"[(being|having|getting)] #Verb",group:0,tag:"Auxiliary",reason:"being-born"},{match:"[be] #Gerund",group:0,tag:"Auxiliary",reason:"be-walking"},{match:"[better] #PresentTense",group:0,tag:"Modal",notIf:"(#Copula|#Gerund)",reason:"better-go"},{match:"even better",tag:"Adverb #Comparative",reason:"even-better"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",notIf:"#Copula",tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"#Verb (up|down|in|on|for)$",tag:"PhrasalVerb #Particle",notIf:"#PhrasalVerb",reason:"come-down$"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Gu,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Gu,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Gu,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",notIf:"(so|such|rather|enough)",reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|a|an|any|each|every|some|more|with|on)",group:0,notIf:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me|there)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^[#Infinitive] (#Adjective|#Adverb)? and #Infinitive",group:0,tag:"Imperative",reason:"call-and-reserve"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^come #Infinitive",tag:"Imperative",notIf:"on",reason:"come-have"},{match:"^come and? #Infinitive",tag:"Imperative . Imperative",notIf:"#PhrasalVerb",reason:"come-and-have"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[(stay|be|keep)] #Adjective",group:0,tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"},{match:"[#Infinitive] what .",group:0,tag:"Imperative",reason:"look-what"},{match:"^[#Infinitive] #Gerund",group:0,tag:"Imperative",reason:"keep-playing"},{match:"^[#Infinitive] (to|for|into|toward|here|there)",group:0,tag:"Imperative",reason:"go-to"},{match:"^[#Infinitive] (and|or) #Infinitive",group:0,tag:"Imperative",reason:"inf-and-inf"},{match:"^[%Noun|Verb%] to",group:0,tag:"Imperative",reason:"commit-to"},{match:"^[#Infinitive] #Adjective? #Singular #Singular",group:0,tag:"Imperative",reason:"maintain-eye-contact"},{match:"do not (forget|omit|neglect) to [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-forget"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"},{match:"#Gerund [#Gerund] #Plural",group:0,tag:"Adjective",reason:"hard-working-fam"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"[right] (before|after|in|into|to|toward)",group:0,tag:"#Adverb",reason:"right-into"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"(are|#Modal|see|do|for) [ya]",group:0,tag:"Pronoun",reason:"are-ya"},{match:"[long live] .",group:0,tag:"#Adjective #Infinitive",reason:"long-live"},{match:"[plenty] of",group:0,tag:"#Uncountable",reason:"plenty-of"},{match:"(always|nearly|barely|practically) [there]",group:0,tag:"Adjective",reason:"always-there"},{match:"[there] (#Adverb|#Pronoun)? #Copula",group:0,tag:"There",reason:"there-is"},{match:"#Copula [there] .",group:0,tag:"There",reason:"is-there"},{match:"#Modal #Adverb? [there]",group:0,tag:"There",reason:"should-there"},{match:"^[do] (you|we|they)",group:0,tag:"QuestionWord",reason:"do-you"},{match:"^[does] (he|she|it|#ProperNoun)",group:0,tag:"QuestionWord",reason:"does-he"},{match:"a [while]",group:0,tag:"Noun",reason:"a-while"},{match:"guess who",tag:"#Infinitive #QuestionWord",reason:"guess-who"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"#ProperNoun+ (river|lake|bay|inlet|creek|narrows|cove|dune|coast|lagoon|beach|peninsula|hill|mountain|canyon|marsh|island|trail|valley|glacier|estuary|desert|escarpment|gorge|plains|waterfall)",tag:"Place",reason:"foo-river"},{match:"(river|gulf|lake) of? #ProperNoun+",tag:"Place",reason:"river-foo"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"a #Noun [like] (#Noun|#Determiner)",group:0,tag:"Preposition",reason:"a-noun-like"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Infinitive #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}],[{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^[(well|so|okay|now)] !#Adjective?",group:0,tag:"Expression",reason:"well-"},{match:"^come on",tag:"Expression",reason:"come-on"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"^(ok|alright|shoot|hell|anyways)",tag:"Expression",reason:"ok-"},{match:"^(say && @hasComma)",tag:"Expression",reason:"say-"},{match:"^(like && @hasComma)",tag:"Expression",reason:"like-"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}]);let zu=null;var Vu={postTagger:function(e){const{world:t}=e,{model:n,methods:a}=t;zu=zu||a.one.buildNet(n.two.matches,t);let r=a.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(r);return o.cache(),o.sweep(zu),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const Hu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Vu,model:{two:{matches:Bu}},hooks:["postTagger"]};var Lu=Hu;var Su=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let a=e._cache;return e.filter(((e,t)=>n.some((e=>a[t].has(e)))))};var $u=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let a=this.tokenize(e),r=Su(a,n);return r.found?(r.compute(["index","tagger"]),r.match(t)):a.none()},Mu={lib:{lazy:$u}};var Ju=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e};var Wu=function(e,t,n){let a=e.split(/ /g).map((e=>e.toLowerCase().trim()));a=a.filter((e=>e)),a=a.map((e=>`{${e}}`)).join(" ");let r=this.match(a);return n&&(r=r.if(n)),r.has("#Verb")?Ju(r,t):r.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model));e.replaceWith(n,{possessives:!0})}(r,t):r.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let a=n(t);a&&e.replaceWith(a)}(r,t):r.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:a}=e.methods.two.transform.adjective;let r=t;e.has("#Comparative")?r=n(r,e.model):e.has("#Superlative")&&(r=a(r,e.model)),r&&e.replaceWith(r)}(r,t):this};var Ku={api:function(e){e.prototype.swap=Wu}};b.plugin(gu),b.plugin(Ou),b.plugin(Lu),b.plugin(Mu),b.plugin(Ku);export{b as default};
diff --git a/changelog.md b/changelog.md
index 3ca343d58..29f71bec5 100644
--- a/changelog.md
+++ b/changelog.md
@@ -18,7 +18,23 @@ While all _Major_ releases should be reviewed, our only _large_ releases are **v
-#### 14.8.2 [Feb 2022]
+#### 14.9.0 [May 2023]
+- **[new]** - .verbs().toPastParticiple() method
+- **[new]** - `.normalize({ debullet: true })` #1004
+- **[change]** - typescript path changes (thanks @rotemdan !)
+- **[fix]** - suffix tagging issues
+- **[fix]** - match syntax issue #997
+- **[change]** - keep possessive in replace #1011
+- **[change]** - major improvements to adj.toNoun() conjugator
+- **[fix]** - parsematch bug #997
+- **[fix]** - "there's been" contraction
+- **[new]** - .conjugate() methods on Noun/Adverb/Adjective classes
+- **[new]** - add Gerund and PastParticiple to .verbs().conjugate() results
+- **[new]** - option to keep possessives in .replace() #1011
+- **[fix]** - tagger fix #998
+- **[update]** - dependencies
+
+#### 14.8.2 [Feb 2023]
- **[change]** - #Actor tagging - in advance of #565
- **[change]** - .noun() lumping changes - in advance of #565
- **[new]** - support japanese full-stop
diff --git a/data/lexicon/adjectives/adjectives.js b/data/lexicon/adjectives/adjectives.js
index c0237efbb..406d3f145 100644
--- a/data/lexicon/adjectives/adjectives.js
+++ b/data/lexicon/adjectives/adjectives.js
@@ -29,7 +29,6 @@ export default [
// -ed
'nuanced',
- 'undecided',
'wounded',
'retarded',
'aged',
@@ -41,30 +40,19 @@ export default [
'sacred',
'deceased',
'diseased',
- 'unsupervised',
'lapsed',
'sophisticated',
- 'unrelated',
- 'unregulated',
'antiquated',
- 'unexpected',
'spirited',
- 'unprecedented',
'talented',
'subdued',
- 'unresolved',
'beloved',
'hallowed',
- 'unemployed',
'crazed',
- 'unrecognized',
- 'unauthorized',
- 'undersized',
// -id
'plaid',
'prepaid',
- 'unpaid',
'afraid',
'rabid',
'placid',
@@ -94,7 +82,6 @@ export default [
'home made',
'wee',
'teenage',
- 'underage',
'average',
'awake',
'upscale',
@@ -211,7 +198,6 @@ export default [
'resolute',
'en route',
'due',
- 'unique',
'concave',
'coercive',
'conducive',
@@ -229,22 +215,15 @@ export default [
// -ing
'menacing',
- 'unconvincing',
'longstanding',
- 'unending',
'impending',
'far reaching',
'scathing',
- 'unappealing',
- 'unbecoming',
- 'unassuming',
'foregoing',
'ongoing',
'easygoing',
'lumbering',
'nausiating',
- 'unsuspecting',
- 'unrelenting',
'preexisting',
'left-wing',
'right-wing',
@@ -291,7 +270,6 @@ export default [
'impartial',
'final',
'literal',
- 'universal',
'colossal',
'equal',
'usual',
@@ -340,7 +318,6 @@ export default [
// -en
'wooden',
- 'unforeseen',
'barren',
'rotten',
'craven',
@@ -358,7 +335,6 @@ export default [
'southern',
'western',
'upside down',
- 'unknown',
'gung ho',
'macho',
'in vitro',
@@ -373,7 +349,6 @@ export default [
// -er
'somber',
- 'under',
'sheer',
'eager',
'together',
@@ -389,7 +364,6 @@ export default [
'outer',
'over',
- 'unfair',
'junior',
'inferior',
'prior',
@@ -419,10 +393,8 @@ export default [
'discreet',
'soviet',
- 'unmet',
'upset',
'makeshift',
- 'underweight',
'overweight',
'lightweight',
'overnight',
@@ -481,7 +453,6 @@ export default [
'imminent',
'prominent',
'pertinent',
- 'unspent',
'apparent',
'transparent',
'absent',
@@ -527,11 +498,9 @@ export default [
'faux',
'everyday',
'okay',
- 'underway',
'nearby',
'muddy',
'speedy',
- 'unwieldy',
'moldy',
'handy',
'cutesy',
@@ -561,15 +530,12 @@ export default [
'hourly',
'surly',
'nightly',
- 'unsightly',
- 'unruly',
'many',
'sparkly',
- 'approximately',
- 'fortunately',
- 'unfortunately',
+ // 'approximately',
+ // 'fortunately',
'lately',
- 'ultimately',
+ // 'ultimately',
// -ry
'legendary',
@@ -595,22 +561,89 @@ export default [
'guilty',
'woozy',
- // prefixes
- 'recent',
+ // un-prefix that aren't verbs
+ 'unabated',
+ 'unappealing',
+ 'unassuming',
+ 'unattended',
+ 'unauthorized',
+ 'unbecoming',
+ 'unchallenged',
+ 'uncharted',
+ 'unchecked',
+ 'uncircumcised',
+ 'unconvincing',
+ 'undecided',
+
+ 'under',
+ 'underage',
+ 'undercover',
+ 'underhand',
+ 'underlying',
+ 'underneath',
+ 'underprivileged',
+ 'undersized',
+ 'underwater',
+ 'underway',
+ 'underweight',
+
+ 'undisclosed',
+ 'undisputed',
+ 'undocumented',
+ 'undue',
+ 'unemployed',
+ 'unending',
+ 'uneven',
+ 'unexpected',
+ 'unexplained',
+ 'unfair',
+ 'unfinished',
+ 'unforeseen',
+ 'unguarded',
+ 'unheard',
+ 'uninsured',
+ 'uninterested',
+ 'uninterrupted',
+ 'uninvited',
+ 'unique',
+ 'universal',
+ 'unknown',
'unmarried',
+ 'unmatched',
+ 'unmet',
+ 'unnamed',
+ 'unnoticed',
+ 'unopposed',
+ 'unpaid',
+ 'unparalleled',
+ 'unprecedented',
+ 'unrecognized',
+ 'unregulated',
+ 'unrelated',
+ 'unrelenting',
+ 'unrequited',
+ 'unreserved',
+ 'unresolved',
+ 'unruly',
'unseen',
+ 'unsettled',
+ 'unsightly',
+ 'unsold',
+ 'unspent',
+ 'unspoken',
+ 'unsupervised',
+ 'unsuspecting',
+ 'untapped',
+ 'untested',
'untold',
+ 'untouched',
'unused',
'unwanted',
- 'unsold',
- 'unspoken',
- 'unchecked',
- 'unattended',
- 'undercover',
- 'underlying',
- 'underwater',
+ 'unwarranted',
+ 'unwieldy',
+
+ 'recent',
'overseas',
- 'undue',
'monochrome',
'contradictory',
'satisfactory',
@@ -659,7 +692,6 @@ export default [
'mega',
'frilly',
'indulgent',
- 'undisclosed',
'win win',
'strung out',
'whacked out',
@@ -671,5 +703,100 @@ export default [
'ice cold',
'one on one',
'ongoing',
+ 'literary',
+ 'beneath',
+ 'alike',
+ 'mainstream',
+ 'metropolitan',
+ 'overboard',
+ 'mediocre',
+ 'maritime',
+ 'paranoid',
+ 'compulsory',
+ 'hardcore',
+ 'clockwise',
+ 'counterclockwise',
+ 'multifaceted',
+ 'lighthearted',
+ 'belated',
+ 'bestselling',
+ 'breathtaking',
+ 'infinite',
+ 'southwest',
+ 'northwest',
+ 'southeast',
+ 'northeast',
+ 'indie',
+ 'nude',
+ 'destitute',
+ 'obligated',
+ 'naval',
+ 'puzzled',
+ 'overdue',
+ 'overhand',
+ 'overhead',
+ 'hardworking',
+ 'gauche',
+ 'stout',
+
+ 'abject',
+ 'adamant',
+ 'agile',
+ 'articulate',
+ 'astute',
+ 'austere',
+ 'blithe',
+ 'circumspect',
+ 'coy',
+ 'eloquent',
+ 'enough',
+ 'expedient',
+ 'fervent',
+ 'fragrant',
+ 'frugal',
+ 'hoary',
+ 'inane',
+ 'inept',
+ 'jittery',
+ 'maverick',
+ 'obedient',
+ 'offhand',
+ 'orotund',
+ 'rampant',
+ 'reprobate',
+ 'sinister',
+ 'slippery',
+ 'stalwart',
+ 'stubborn',
+ 'sublime',
+ 'thorny',
+ 'trenchant',
+ 'vagrant',
+ 'wanton',
+ 'meager',
+ 'doting',
+ 'crafty',
+ 'morbid',
+ 'acquiescent',
+ 'despondent',
+ 'slipshod',
+ 'contrite',
+ 'recalcitrant',
+ 'merry',
+ 'condescending',
+ 'abstruse',
+ 'erstwhile',
+ 'comatose',
+ 'desultory',
+ 'pert',
+ 'curmudgeonly',
+ 'cogent',
+ 'spry',
+ 'demure',
+ 'docile',
+ 'watery',
+
+ 'succinct',
+
]
diff --git a/data/lexicon/adjectives/comparables.js b/data/lexicon/adjectives/comparables.js
index 72e6c3752..585d34be1 100644
--- a/data/lexicon/adjectives/comparables.js
+++ b/data/lexicon/adjectives/comparables.js
@@ -244,13 +244,11 @@ export default [
'trendy',
'true',
'ugly',
- 'upcoming',
'vague',
'vain',
'vast',
'verdant',
'vulgar',
- 'wanting',
'wary',
'weary',
'weird',
@@ -301,4 +299,22 @@ export default [
'wide',
'stately',
'nibbly',
+ 'dizzy',
+ 'fond',
+ 'flirty',
+ 'grim',
+ 'lil',
+ 'rainy',
+ 'whiny',
+ 'nerdy',
+ 'hardy',
+ 'drunk',
+ 'buff',
+ 'greedy',
+ 'hearty',
+ 'leery',
+ 'limp',
+ 'numb',
+ 'scanty',
+ 'sickly',
]
diff --git a/data/lexicon/dates/dates.js b/data/lexicon/dates/dates.js
index ba272078f..3630fafda 100644
--- a/data/lexicon/dates/dates.js
+++ b/data/lexicon/dates/dates.js
@@ -1,2 +1,16 @@
// uncontroversial date words
-export default ['today', 'tomorrow', 'tmr', 'tmrw', 'yesterday', 'weekend', 'week end', 'ago', 'q1', 'q2', 'q3', 'q4']
+export default ['today',
+ 'tomorrow',
+ 'tmr',
+ 'tmrw',
+ 'yesterday',
+ 'weekend',
+ 'week end',
+ 'ago',
+ 'q1',
+ 'q2',
+ 'q3',
+ 'q4',
+ 'someday',
+ 'oneday'
+]
diff --git a/data/lexicon/dates/durations.js b/data/lexicon/dates/durations.js
index 7d48e2ef6..c8b7d0c1d 100644
--- a/data/lexicon/dates/durations.js
+++ b/data/lexicon/dates/durations.js
@@ -1,21 +1,33 @@
export default [
'century',
+ 'centuries',
'day',
+ 'days',
'decade',
+ 'decades',
'hour',
+ 'hours',
'hr',
+ 'hrs',
'millisecond',
+ 'milliseconds',
'minute',
+ 'minutes',
// 'min',
'month',
+ 'months',
'sec',
+ 'secs',
// 'week end',
'weekend',
'week',
+ 'weeks',
'wk',
'wks',
'year',
+ 'years',
'yr',
+ 'yrs',
'quarter',
// 'quarters',
'qtr',
diff --git a/data/lexicon/index.js b/data/lexicon/index.js
index 6340b1123..0895f9528 100644
--- a/data/lexicon/index.js
+++ b/data/lexicon/index.js
@@ -144,4 +144,4 @@ for (let i = 0; i < data.length; i++) {
export default lex
// console.log(Object.keys(lex).length);
-// console.log(lex[`size`])
+// console.log(lex[`become`])
diff --git a/data/lexicon/misc.js b/data/lexicon/misc.js
index 61995b6d8..b08c75920 100644
--- a/data/lexicon/misc.js
+++ b/data/lexicon/misc.js
@@ -1,5 +1,8 @@
export default {
better: 'Comparative',
+ farther: 'Comparative',
+ finer: 'Comparative',
+ fewer: 'Comparative',
earlier: 'Superlative',
sounds: 'PresentTense',
@@ -22,6 +25,7 @@ export default {
according: 'Gerund',
resulting: 'Gerund',
staining: 'Gerund',
+ doin: 'Gerund',
no: 'Expression',
non: 'Negative',
@@ -64,6 +68,7 @@ export default {
//
'come here': 'Imperative',
+ 'beware': 'Imperative',
// 'go away': 'Imperative',
// 'hurry up': 'Imperative',
// 'make sure': 'Imperative',
diff --git a/data/lexicon/misc/adverbs.js b/data/lexicon/misc/adverbs.js
index 1ccb74d8b..021143139 100644
--- a/data/lexicon/misc/adverbs.js
+++ b/data/lexicon/misc/adverbs.js
@@ -13,6 +13,7 @@ export default [
'always',
'anymore',
'anyway',
+ 'alongside',
'apart',
'aside',
'as soon',
@@ -29,7 +30,7 @@ export default [
'definitely',
'directly',
'en masse',
- 'enough',
+ // 'enough',
'ever',
'for example',
'for good',
@@ -47,6 +48,7 @@ export default [
'kinda',
'maybe',
'meanwhile',
+ 'awhile',
'more',
'moreover',
'newly',
@@ -88,5 +90,7 @@ export default [
'backward',
'hella',
'by no means',
-
+ 'altogether',
+ "outright",
+ 'ultimately',
]
diff --git a/data/lexicon/misc/conjunctions.js b/data/lexicon/misc/conjunctions.js
index 8d8bca602..14cf2690f 100644
--- a/data/lexicon/misc/conjunctions.js
+++ b/data/lexicon/misc/conjunctions.js
@@ -52,6 +52,7 @@ export default [
'to',
// 'unless',
'until',
+ 'til',
// 'versus',
// 'what',
// 'when',
@@ -68,4 +69,7 @@ export default [
// 'why',
'yet',
'either',
+ "whereby",
+ "cos",
+ "coz",
]
diff --git a/data/lexicon/misc/determiners.js b/data/lexicon/misc/determiners.js
index 8d9a34796..d0f0fe642 100644
--- a/data/lexicon/misc/determiners.js
+++ b/data/lexicon/misc/determiners.js
@@ -23,6 +23,7 @@ export default [
'various',
'whatever',
'whichever',
+ 'tha',
//some other languages (what could go wrong?)
// 'la',
'le',
diff --git a/data/lexicon/misc/expressions.js b/data/lexicon/misc/expressions.js
index 6b7e81584..b48c8a7fa 100644
--- a/data/lexicon/misc/expressions.js
+++ b/data/lexicon/misc/expressions.js
@@ -129,4 +129,15 @@ export default [
'oh my god',
'oh my gosh',
// 'thank you',
+ 'whatsoever',
+ 'btw',
+ 'nevertheless',
+ 'pls',
+ 'ahh',
+ 'sic',
+ 'leh',
+ 'wat',
+ 'omg',
+ 'aka',
+ 'holla'
]
diff --git a/data/lexicon/misc/prepositions.js b/data/lexicon/misc/prepositions.js
index a38acac06..5d9189c8d 100644
--- a/data/lexicon/misc/prepositions.js
+++ b/data/lexicon/misc/prepositions.js
@@ -46,6 +46,7 @@ export default [
'than',
'through',
'throughout',
+ 'thereby',
'thru',
'till',
'toward',
diff --git a/data/lexicon/nouns/actors.js b/data/lexicon/nouns/actors.js
index f7a2ff199..7691c2ab5 100644
--- a/data/lexicon/nouns/actors.js
+++ b/data/lexicon/nouns/actors.js
@@ -2,18 +2,32 @@
export default [
'accountant',
+ 'acquaintance',
+ 'acrobat',
+ 'activist',
'actor',
'actress',
'administrator',
'admiral',
+ 'adolescent',
+ 'adopted',
+ 'adult',
+ 'adventurer',
'advisor',
'agent',
+ 'alien',
+ 'ally',
'analyst',
+ 'anarchist',
+ 'ancestor',
'animator',
'announcer',
'anybody',
'apostle',
+ 'apparition',
+ 'apprentice',
'archbishop',
+ 'aristocrat',
'artisan',
'artist',
'assistant',
@@ -26,16 +40,24 @@ export default [
'aunt',
'auntie',
'author',
+ 'autocrat',
'ayatullah',
+ 'baby',
+ 'baker',
'banker',
'barber',
'baron',
'baroness',
'bartender',
'beatboxer',
+ 'beings',
+ 'creator',
'bicyclist',
'bishop',
'blogger',
+ 'bohemian',
+ 'boogeyman',
+ 'boss',
'boy',
'boyfriend',
'bricklayer',
@@ -45,13 +67,16 @@ export default [
'broker',
'brother',
'buddhist',
+ 'buddy',
'builder',
'burglar',
'businessman',
'businessperson',
'businesswoman',
+ 'butcher',
'cadet',
'captain',
+ 'carer',
'caretaker',
'carpenter',
'cashier',
@@ -60,157 +85,321 @@ export default [
'cfo',
'chairman',
'chairwoman',
+ 'champion',
'chancellor',
- 'chef',
'chaplain',
+ 'character',
'cheerleader',
+ 'chef',
+ 'chief',
+ 'child',
+ 'chum',
+ 'citizen',
+ 'citizens',
'cleaner',
'cleric',
'clerk',
+ 'client',
'clown',
+ 'co-worker',
+ 'colleague',
'colonel',
'columnist',
'comedian',
'commander',
+ 'commenter',
+ 'commissioner',
+ 'companion',
'composer',
+ 'comrade',
+ 'confidant',
+ 'confidante',
'congressman',
'congresswoman',
'constable',
'consultant',
+ 'contact',
+ 'contender',
+ 'contributor',
'controller',
+ 'cook',
'coordinator',
'corporal',
'councillor',
+ 'count',
+ 'countess',
'courier',
+ 'cousin ',
+ 'cousin',
'cowboy',
'critic',
+ 'crowd',
'curator',
+ 'customer representative',
+ 'customer',
'dad',
'daddy',
'dancer',
+ 'daredevil',
'darling',
+ 'daughter ',
+ 'daughter',
'deacon',
'dealer',
'decorator',
'defenceman',
+ 'deity',
+ 'denizen',
'deputee',
'deputy',
+ 'descendant',
+ 'deserter',
'designer',
'detective',
'developer',
+ 'dictator',
'dietician',
'dietitian',
+ 'diplomat',
'director',
+ 'diva',
+ 'doctor',
+ 'dork',
+ 'drifter',
+ 'driver ',
'driver',
'dude',
'dutchess',
+ 'dweller',
+ 'economist',
'editor',
+ 'elder',
'electrician',
'emcee',
+ 'emperor',
+ 'employee',
+ 'employer',
+ 'enemy',
+ 'engineer',
+ 'entrepreneur',
+ 'environmentalist',
'everybody',
'examiner',
'excellency',
+ 'exile',
+ 'family',
'farmer',
'father',
'fella',
+ 'fellow',
+ 'female',
+ 'fiance',
'fighter',
'filmmaker',
'financier',
+ 'fire marshal',
'firefighter',
'fireman',
'first lady',
'fitter',
+ 'foe',
+ 'forebear',
'foreman',
+ 'forerunner',
'forester',
+ 'foster parent',
'freelancer',
'friend',
+ 'gal',
+ 'gambler',
'gardener',
+ 'geek',
'geisha',
+ 'genius',
'gentleman',
+ 'ghost',
'ghostwriter',
'girl',
'girlfriend',
+ 'gladiator',
'goalie',
'goalkeeper',
'goaltender',
'god',
+ 'goddess',
'golfer',
+ 'grandchild',
+ 'granddaughter',
'grandfather',
'grandma',
'grandmother',
'grandpa',
+ 'grandparent',
+ 'grandson',
+ 'groom',
+ 'guard',
+ 'guest',
'guru',
'hairdresser',
'hairstylist',
+ 'heir',
+ 'hermit',
'hero',
'heroine',
'historian',
+ 'hobo',
+ 'host',
+ 'hostage',
'hostess',
'housekeeper',
+ 'human',
+ 'humanitarian',
+ 'hunter',
+ 'husband',
'hygienist',
+ 'icon',
'idol',
'illustrator',
+ 'immigrant',
+ 'in-law',
+ 'incel',
+ 'individual',
+ 'infant',
+ 'inhabitant',
+ 'innovator',
'inspector',
'installer',
+ 'instigator',
'instructor',
+ 'intern',
+ 'inventor',
'investigator',
+ 'janitor ',
+ 'jester',
+ 'jogger',
'journalist',
+ 'judge',
+ 'juggler',
+ 'kid',
+ 'kin',
'king',
+ 'kinsman',
+ 'kinswoman',
'laborer',
+ 'lad',
'lady',
+ 'landlord',
+ 'lass',
'laureate',
'lawyer',
+ 'layman',
'leader',
'lieutenant',
'lord',
'loser',
+ 'lover',
'magician',
'magistrate',
+ 'magnate',
'maker',
+ 'male',
+ 'man',
'manager',
+ 'maniac',
+ 'martyr',
+ 'mason',
+ 'master',
+ 'mate',
'matriarch',
'mayor',
'mechanic',
+ 'mentor',
'merchant',
+ 'minion',
'minister',
+ 'misfit',
'missus',
'mister',
+ 'model',
+ 'moderator',
+ 'mogul',
'mom',
'mommy',
+ 'monarch',
'monk',
'mother',
'mum',
'mummy',
'musician',
+ 'mystic',
'nanny',
+ 'narrator',
+ 'native',
'neice',
+ 'neighbor',
+ 'nemesis',
'nephew',
+ 'nerd',
+ 'niece',
+ 'nobleman',
+ 'noblewoman',
'nobody',
+ 'nomad',
'novice',
'nun',
'nurse',
+ 'nurseryman',
+ 'occupant',
'officer',
+ 'offspring',
'operator',
+ 'optimist',
'optometrist',
+ 'oracle',
'organizer',
+ 'originator',
+ 'orphan',
+ 'outcast',
+ 'outlaw',
'painter',
+ 'pal',
'panellist',
+ 'parent',
+ 'parental',
+ 'pariah',
+ 'partner',
'pastor',
'patriarch',
+ 'patriot',
+ 'patron',
+ 'pawn',
+ 'peer',
'performer',
+ 'person',
+ 'pessimist',
+ 'phantom',
'pharmacist',
+ 'philosopher',
'photographer',
+ 'phrase',
'physician',
+ 'pilgrim',
+ 'pilot',
+ 'pioneer',
'planner',
'player',
+ 'playmate',
'playwright',
'plumber',
'podcaster',
'poet',
'policeman',
+ 'political scientist',
'politician',
+ 'population',
'pornstar',
'practitioner',
+ 'prankster',
'preacher',
'president',
'priest',
@@ -218,79 +407,149 @@ export default [
'prime minister',
'prince',
'princess',
+ 'prisoner',
+ 'prodigy',
'producer',
'professor',
+ 'progenitor',
+ 'progeny',
'programmer',
+ 'prophet',
'prospector',
'prostitute',
'psychologist',
+ 'punk',
+ 'pupil',
'quarterback',
'queen',
'rabbi',
+ 'radical',
'rapper',
+ 'realist',
'receptionist',
+ 'recluse',
'recruiter',
+ 'refugee',
+ 'relative',
'reporter',
'researcher',
'reverend',
+ 'revolutionary',
+ 'rival',
+ 'rogue',
+ 'role model',
'roofer',
+ 'ruler',
+ 'runner up',
'runningback',
'sailor',
'saint',
'scholar',
'scientist',
+ 'scion',
+ 'scout',
'screenwriter',
'sculptor',
'secretary',
+ 'senior citizen',
'sergeant',
+ 'servant',
+ 'servitor',
+ 'shaman',
+ 'shepherd',
'showgirl',
'showman',
'showrunner',
+ 'sibling',
'singer',
+ 'sinner',
'sissy',
'sister',
'skier',
+ 'smuggler',
'soldier',
'soloist',
'somebody',
+ 'someone',
'son',
+ 'sorcerer',
+ 'sorceress',
+ 'soul',
+ 'sovereign',
'specialist',
+ 'spectator',
+ 'spirit',
'spokesperson',
+ 'spouse',
+ 'squatter',
'staffer',
+ 'star',
+ 'statesman',
+ 'stepbrother',
+ 'stepchild',
'stepfather',
'stepmother',
+ 'stepsister',
'stranger',
'streamer',
+ 'student',
'sultan',
+ 'superhero',
+ 'superhuman',
'superintendent',
+ 'superstar',
'supervisor',
'surfer',
'surgeon',
+ 'survivor',
'sweeper',
'sweetheart',
'taoiseach',
+ 'teacher',
'technician',
'technologist',
+ 'teen',
+ 'teenager',
+ 'tenant',
'tester',
'therapist',
'tiktoker',
+ 'toddler',
+ 'tourist',
+ 'trader',
+ 'tramp',
'transcriptionist',
+ 'traveler',
+ 'trendsetter',
'trooper',
+ 'tutor',
+ 'tycoon',
'uncle',
'underwriter',
+ 'user',
+ 'vagabond',
+ 'veteran',
'veterinarian',
+ 'villain',
'vip',
+ 'visionary',
+ 'visitor',
+ 'voyager',
+ 'wage earner',
+ 'waiter',
+ 'wanderer',
+ 'warrior',
'weatherman',
'welder',
+ 'wife',
'winner',
'witch',
+ 'wizard',
'woman',
'worker',
+ 'wrestler',
'writer',
'yogi',
+ 'youth',
'youtuber',
- 'fire marshal',
- 'commissioner',
- 'political scientist',
- 'customer representative',
]
diff --git a/data/lexicon/nouns/possessives.js b/data/lexicon/nouns/possessives.js
index d7b948f8b..d10ec446e 100644
--- a/data/lexicon/nouns/possessives.js
+++ b/data/lexicon/nouns/possessives.js
@@ -8,6 +8,7 @@ export default [
'none',
'our',
'ours',
+ 'thy',
// 'their',
// 'theirs',
// 'your',
diff --git a/data/lexicon/nouns/pronouns.js b/data/lexicon/nouns/pronouns.js
index e1e46ea9c..767cb81eb 100644
--- a/data/lexicon/nouns/pronouns.js
+++ b/data/lexicon/nouns/pronouns.js
@@ -11,7 +11,7 @@ export default [
'us',
'we',
'thou',
-
+ 'thee',
'il',
'elle',
`'em`,
diff --git a/data/lexicon/nouns/singulars.js b/data/lexicon/nouns/singulars.js
index 3f8073e97..b86527c78 100644
--- a/data/lexicon/nouns/singulars.js
+++ b/data/lexicon/nouns/singulars.js
@@ -127,6 +127,8 @@ export default [
'ceiling',
'evening',
'morning',
+ 'sibling',
+ 'inning',
'lunch',
'breakthrough',
@@ -344,7 +346,6 @@ export default [
'piggy',
'thingy',
'peanut',
- 'inning',
'accident',
'journal',
'tribunal',
@@ -375,6 +376,62 @@ export default [
'seminar',
'variety',
'laboratory',
+ 'programme',
+ 'legend',
+ 'fiend',
+ 'cloth',
+ 'institute',
+ 'tonite',
+ 'paradise',
+ 'enterprise',
+ 'lime',
+ 'magnate',
+ 'hormone',
+ 'outspoken',
+ 'medal',
+ 'recipient',
+ 'heist',
+ 'signatory',
+ 'narcotic',
+ 'threesome',
+ 'foursome',
+ 'biopic',
+ 'arsenal',
+ 'oatmeal',
+ 'sabbatical',
+ 'missive',
+ 'hussy',
+ 'cane',
+ 'overtime',
+ 'preposition',
+ 'disposition',
+ 'stake',
+ 'nite',
+ 'prop',
+ 'sect',
+ 'mischief',
+ 'marsupial',
+ 'statute',
+ 'mic',
+ 'clinic',
+ 'mould',
+ 'peyote',
+ 'gypsy',
+ 'granny',
+ 'vet',
+ 'suite',
+ 'uncoordinated',
+ 'latch',
+ 'deathbed',
+ 'tunnel',
+ 'intern',
+ 'tribute',
+ 'intent',
+ 'undertone',
+ 'underestimate',
+ 'underwear',
+ 'overview',
+ 'yo yo',
]
diff --git a/data/lexicon/nouns/uncountables.js b/data/lexicon/nouns/uncountables.js
index 7d7ac764a..b56586a8e 100644
--- a/data/lexicon/nouns/uncountables.js
+++ b/data/lexicon/nouns/uncountables.js
@@ -1,6 +1,7 @@
//common nouns that have no plural form. These are suprisingly rare
//used in noun.inflect(), and added as nouns in lexicon
export default [
+
'acid',
'acoustics',
'advice',
@@ -8,35 +9,56 @@ export default [
'aerodynamics',
'aeronautics',
'aircraft',
+ 'amends',
'amnesty',
- // 'art',
+ 'anger',
+ 'anise',
+ 'anyone',
+ 'anything',
+ 'appeal court',
+ 'arithmetic',
+ 'arsenic',
+ 'aspirin',
'athletics',
'baggage',
'bass',
'billiards',
'bison',
'blood',
+ 'bowling',
'bread',
+ 'breadth',
'bunting',
'butter',
'cad',
'cards',
- // 'cash',
'celcius',
'chaos',
'cheese',
'chewing',
'civics',
'classics',
- // 'clothing',
+ 'clothes',
'coal',
'cold war',
+ 'commentary',
'confusion',
+ 'cont ed',
+ 'coral',
'cotton',
+ 'couscous',
'currency',
+ 'debut',
+ 'demise',
'diabetes',
+ 'dice',
+ 'dishonesty',
+ 'disrepute',
+ 'dope',
'downstairs',
'draughts',
+ 'dynasty',
+ 'earnings',
'economics',
'education',
'electricity',
@@ -48,8 +70,13 @@ export default [
'everybody',
'everyone',
'everything',
+ 'existence',
+ 'expertise',
'fahrenheit',
+ 'fate',
+ 'feeling',
'fiction',
+ 'fish',
'flour',
'food',
'forgiveness',
@@ -59,48 +86,72 @@ export default [
'gene editing',
'gene pool',
'genetics',
- // 'gold',
+ 'gluten',
+ 'glycerin',
'golf',
+ 'gore',
+ 'granite',
'grass',
- // 'ground',
+ 'greed',
'gum',
'gymnastics',
'hair',
'halibut',
'happiness',
+ 'hashish',
+ 'haste',
+ 'headquarters',
'here',
'hertz',
'history',
'hockey',
'homework',
+ 'honesty',
'honey',
+ 'hooky',
+ 'horseradish',
'hospitality',
+ 'house arrest',
+ 'hunger',
'ice',
'ignorance',
'impatience',
'importance',
+ 'improv',
'information',
+ 'internet',
+ 'interstate',
+ 'jazz',
+ 'jeans',
+ 'jellyfish',
'jewelry',
- // 'justice',
- // 'kelvin',
+ 'karate',
+ 'kindergarten',
+ 'knickers',
'knowledge',
'laughter',
'leather',
'leisure',
+ 'less',
'lice',
'lightning',
'linguistics',
'literature',
+ 'liver',
+ 'logic',
'logistics',
'luck',
'luggage',
'machine learning',
'machinery',
- // 'mail',
+ 'majesty',
+ 'make up',
'mathematics',
'measles',
'meat',
'mechanics',
+ 'merchandise',
+ 'metallurgy',
'money',
'monogamy',
'moose',
@@ -109,23 +160,33 @@ export default [
'nail polish',
'national security',
'news',
+ 'nowadays',
'obstetrics',
+ 'overcrowding',
'oxygen',
+ 'panties',
+ 'pants',
+ 'parking',
'patience',
'peace',
'petrol',
+ 'phys ed',
'physics',
'plastic',
'politics',
+ 'pollen',
'polygamy',
'pork',
- // 'power',
+ 'preamble',
+ 'premises',
+ 'presense',
'pressure',
- // 'progress',
+ 'pretense',
+ 'putty',
'rabies',
- 'rain',
'recognition',
'recreation',
+ 'reins',
'relaxation',
'research',
'rice',
@@ -137,129 +198,95 @@ export default [
'sand',
'satish',
'scenery',
+ 'scissors',
+ 'seating',
+ 'self',
+ 'senate',
+ 'series',
'sheep',
'shingles',
+ 'shopping',
+ 'shorts',
'silk',
'silver',
+ 'skin',
'skittles',
- // 'snow',
'soap',
'soccer',
+ 'something',
'spacecraft',
- // 'speed',
+ 'species',
+ 'spite',
+ 'static',
'statistics',
'steam',
'steel',
'sugar',
'sunshine',
+ 'sushi',
+ 'sweepstakes',
'tea',
'tennis',
+ 'there',
'thermodynamics',
'thunder',
- 'there',
- // 'time',
+ 'time off',
+ 'tin',
+ 'tonight',
'toothpaste',
+ 'townfolk',
+ 'townsfolk',
'traffic',
+ 'treatise',
+ 'troops',
'trouble',
+ 'troubleshooting',
'trousers',
'trout',
- 'troops',
'true north',
'tuna',
+ 'tungsten',
+ 'tyranny',
+ 'vernacular',
'vinegar',
'violence',
'vitae',
'warmth',
+ 'water',
+ 'whisky',
'wildlife',
'wine',
'wood',
- 'water',
- 'liver',
'wool',
- 'kindergarten',
- 'tyranny',
- 'internet',
- 'less',
- 'haste',
-
- 'series',
- 'species',
- 'clothes',
-
-
- 'skin',
- 'greed',
- 'sweepstakes',
- 'gluten',
- 'premises',
- 'metallurgy',
- 'amends',
- 'tungsten',
- 'debut',
- 'disrepute',
- 'couscous',
- // 'vanilla',
-
- 'honesty',
- 'dishonesty',
- 'dynasty',
- 'hashish',
- 'horseradish',
- 'expertise',
-
- 'demise',
- 'anise',
- 'treatise',
- 'aspirin',
- 'glycerin',
-
- // 'spite',
- 'overcrowding',
- 'troubleshooting',
- 'gore',
-
- 'merchandise',
- 'pretense',
- 'preamble',
- 'presense',
- 'dope',
- 'appeal court',
-
- 'interstate',
- 'fate',
- 'karate',
- 'senate',
- 'coral',
- 'vernacular',
-
- 'arithmetic',
- 'static',
- 'logic',
- 'hunger',
- 'sushi',
- 'seating',
- 'existence',
- 'make up',
'you guys',
- 'improv',
- 'phys ed',
- 'cont ed',
+ 'nutella',
+ 'vanilla',
+ 'venus',
+ 'earth',
+ 'mars',
+ 'jupiter',
+ 'saturn',
+ 'uranus',
+ 'neptune',
+ 'pluto',
+ 'vapor',
+ 'magic',
+ 'melancholy',
- 'scissors',
- 'self',
- 'pants',
- 'shorts',
- 'panties',
- 'time off',
- 'reins',
- 'anyone',
- 'anything',
- 'something',
- 'tonight',
- 'house arrest',
- 'breadth',
- 'knickers',
- 'whisky',
- 'shopping',
+ // 'art',
+ // 'cash',
+ // 'clothing',
+ // 'gold',
+ // 'ground',
+ // 'justice',
+ // 'kelvin',
+ // 'mail',
+ // 'power',
+ // 'progress',
+ // 'snow',
+ // 'speed',
+ // 'spite',
+ // 'time',
+ // 'vanilla',
]
diff --git a/data/lexicon/people/femaleNames.js b/data/lexicon/people/femaleNames.js
index c6989a252..77d27c59d 100644
--- a/data/lexicon/people/femaleNames.js
+++ b/data/lexicon/people/femaleNames.js
@@ -17,8 +17,6 @@ export default [
'ada',
'adaline',
'adalyn',
- 'jess',
- 'jesse',
'addie',
'addilyn',
'addison',
@@ -134,6 +132,7 @@ export default [
'ann',
'anna',
'annabel',
+ 'annabella',
'annabelle',
'annalisa',
'annamaria',
@@ -187,7 +186,6 @@ export default [
'austeja',
'ava',
'avigail',
- // 'avril',
'awa',
'aya',
'ayana',
@@ -643,7 +641,6 @@ export default [
'golda',
'goldie',
'googoosh',
- // 'grace',
'gracie',
'graciela',
'greta',
@@ -790,6 +787,8 @@ export default [
'jeri',
'jerri',
'jesica',
+ 'jess',
+ 'jesse',
'jessica',
'jil',
'jilian',
@@ -1033,7 +1032,6 @@ export default [
'lillian',
'lillie',
'lilly',
- // 'lily',
'lin',
'lina',
'linda',
@@ -1291,6 +1289,7 @@ export default [
'nadine',
'nahia',
'naima',
+ 'nalla',
'nancy',
'nanette',
'naomi',
@@ -1498,7 +1497,6 @@ export default [
'sasha',
'savanna',
'savannah',
- // 'scarlet',
'scarlett',
'selena',
'selene',
@@ -1692,7 +1690,6 @@ export default [
'vickie',
'vicky',
'vikky',
- // 'victoria',
'viktoria',
'viktorie',
'viktorija',
@@ -1759,4 +1756,8 @@ export default [
'zola',
'zora',
'zsofia',
+ // 'grace',
+ // 'lily',
+ // 'scarlet',
+ // 'victoria',
]
diff --git a/data/lexicon/people/lastnames.js b/data/lexicon/people/lastnames.js
index 9b453cdf0..fc69b102f 100644
--- a/data/lexicon/people/lastnames.js
+++ b/data/lexicon/people/lastnames.js
@@ -656,6 +656,7 @@ export default [
'schroeder',
'schulz',
'schwarz',
+ 'seinfeld',
'segura',
'semjonov',
'semyonov',
@@ -791,4 +792,5 @@ export default [
'zhao',
'zhou',
'zhu',
+ 'atchison',
]
diff --git a/data/lexicon/people/maleNames.js b/data/lexicon/people/maleNames.js
index 7caf88e45..33b27bcbc 100644
--- a/data/lexicon/people/maleNames.js
+++ b/data/lexicon/people/maleNames.js
@@ -49,6 +49,7 @@ export default [
'alfonso',
'alfred',
'ali',
+ 'aladdin',
'allan',
'allen',
'alonso',
diff --git a/data/lexicon/places/cities.js b/data/lexicon/places/cities.js
index 164562309..86cda3f99 100644
--- a/data/lexicon/places/cities.js
+++ b/data/lexicon/places/cities.js
@@ -458,6 +458,7 @@ export default [
'windhoek',
'chengzhong',
'wuzhou',
+ 'peking',
// india state-capitals
'agartala',
@@ -496,4 +497,6 @@ export default [
'le mans',
'dunkirk',
'versailles',
+
+ 'salt lake city',
]
diff --git a/data/lexicon/places/places.js b/data/lexicon/places/places.js
index 96ccd41f2..70d1b7a0f 100644
--- a/data/lexicon/places/places.js
+++ b/data/lexicon/places/places.js
@@ -34,6 +34,7 @@ export default [
'syd',
'yyz',
+ // bodies of water
'antarctic ocean',
'arctic ocean',
'atlantic ocean',
@@ -43,6 +44,20 @@ export default [
'indian ocean',
'new england',
'pacific ocean',
+ 'red sea',
+ 'adriadic',
+
+ // rivers
+ 'nile',
+ 'ganges',
+ 'mekong',
+ 'thames',
+ 'danube',
+ 'yangtze',
+ 'orinoco',
+ 'seine',
+ 'rio grande',
+ 'godavari',
//continents
'africa',
diff --git a/data/lexicon/switches/adj-gerund.js b/data/lexicon/switches/adj-gerund.js
index 79f3c945d..48cda578f 100644
--- a/data/lexicon/switches/adj-gerund.js
+++ b/data/lexicon/switches/adj-gerund.js
@@ -1,9 +1,6 @@
// rallying the troops
// her rallying cry
export default [
- // clues: [adj, gerund],
- // fallback: 'Adjective',
- // words: [
'absorbing',
'accelerating',
'accompanying',
@@ -34,7 +31,6 @@ export default [
'captivating',
'challenging',
'charming',
- 'cheating',
'chilling',
'closing',
'comforting',
@@ -199,6 +195,7 @@ export default [
'yielding',
'disgusting',
+ 'sentencing',
'convincing',
'degrading',
@@ -227,7 +224,7 @@ export default [
'overpowering',
'varying',
'intimidating',
-
+ 'pending',
'caring'
]
diff --git a/data/lexicon/switches/adj-noun.js b/data/lexicon/switches/adj-noun.js
index 8281a71cb..94be482e7 100644
--- a/data/lexicon/switches/adj-noun.js
+++ b/data/lexicon/switches/adj-noun.js
@@ -46,6 +46,7 @@ export default [
'half',
'homeless',
'ideal',
+ 'interim',
'incumbent',
'individual',
'innocent',
@@ -121,7 +122,9 @@ export default [
'communist',
'socialist',
'modernist',
+ 'homeless',
+ 'fugitive',
'lush',
'back',
'rebel',
@@ -142,4 +145,13 @@ export default [
'silver',
'rash',
'professional',
+ 'excess',
+ 'hobby',
+ 'arctic',
+ 'antarctic',
+ 'darling',
+ 'marine',
+ 'slack',
+ 'sage',
+
]
\ No newline at end of file
diff --git a/data/lexicon/switches/adj-past.js b/data/lexicon/switches/adj-past.js
index 49ca63d91..40e61cc36 100644
--- a/data/lexicon/switches/adj-past.js
+++ b/data/lexicon/switches/adj-past.js
@@ -234,6 +234,7 @@ export default [
'elated',
'confused',
'pissed',
+ 'recycled',
]
diff --git a/data/lexicon/switches/noun-gerund.js b/data/lexicon/switches/noun-gerund.js
index 9ecd55d37..08ba1ee8b 100644
--- a/data/lexicon/switches/noun-gerund.js
+++ b/data/lexicon/switches/noun-gerund.js
@@ -208,6 +208,8 @@ export default [
'yelling',
'zoning',
'uprising',
+ 'dwelling',
+ 'saying',
]
diff --git a/data/lexicon/switches/noun-verb.js b/data/lexicon/switches/noun-verb.js
index dfe977d43..feba19b1f 100644
--- a/data/lexicon/switches/noun-verb.js
+++ b/data/lexicon/switches/noun-verb.js
@@ -294,6 +294,7 @@ export default [
'fund',
'fuss',
'fuzz',
+ 'gag',
'gain',
'game',
'gang',
@@ -632,7 +633,7 @@ export default [
'shock',
'shop',
'shore',
- 'shot',
+ // 'shot',
'show',
'shuffle',
'side',
@@ -680,6 +681,7 @@ export default [
'stamp',
'stand',
'staple',
+ 'stick',
'star',
'stare',
'start',
@@ -816,6 +818,7 @@ export default [
'wipe',
'wire',
'wish',
+ 'wound',
'wonder',
'work',
'worry',
@@ -847,5 +850,22 @@ export default [
'hash',
'bite',
'coat',
- 'lust'
+ 'lust',
+ 'bruise',
+ 'disguise',
+ 'hammer',
+ 'paise',
+ 'overpass',
+ 'fragment',
+ 'catalog',
+ 'scribble',
+ 'whisper',
+ 'hatch',
+ 'stalk',
+ 'hint',
+ 'blink',
+ 'quiver',
+ 'bitch',
+ 'bark',
+ 'rant',
]
\ No newline at end of file
diff --git a/data/lexicon/switches/person-verb.js b/data/lexicon/switches/person-verb.js
index 38e55e651..1accb008f 100644
--- a/data/lexicon/switches/person-verb.js
+++ b/data/lexicon/switches/person-verb.js
@@ -28,8 +28,8 @@ export default [
'spike',
'stew',
'sue',
- 'trace',
'wade',
+ // 'trace',
// 'bill',
// 'will',
// 'sung'
diff --git a/data/lexicon/verbs/infinitives.js b/data/lexicon/verbs/infinitives.js
index 31013f16b..21cfddf57 100644
--- a/data/lexicon/verbs/infinitives.js
+++ b/data/lexicon/verbs/infinitives.js
@@ -104,6 +104,7 @@ export default [
'cherish',
'chew',
'choose',
+ 'chop',
'circumvent',
'cite',
'cleanse',
@@ -721,4 +722,43 @@ export default [
'ravish',
'reup',//'re-up'
'irk',
+ 'succeed',
+ 'borne',
+ 'persuade',
+ 'summarise',
+ 'desist',
+ 'pursuant',
+ 'falter',
+ 'unfounded',
+ 'oversee',
+ 'rid',
+ 'impale',
+ 'beguile',
+ 'fundraise',
+ 'respond',
+ 'declare',
+ 'transport',
+ 'expel',
+ 'replicate',
+ 'accost',
+ 'acclimate',
+ 'invert',
+ 'omit',
+ 'deplore',
+ 'exude',
+ 'harangue',
+ 'forsake',
+ 'invade',
+ 'unravel',
+ 'exalt',
+ 'encircle',
+ 'exhort',
+ 'snatch',
+ 'impinge',
+ 'revere',
+ 'tumble',
+ 'greet',
+ 'conform',
+ 'breathe',
+ 'chirp'
]
diff --git a/data/lexicon/verbs/participles.js b/data/lexicon/verbs/participles.js
index 25b201697..efdcb2428 100644
--- a/data/lexicon/verbs/participles.js
+++ b/data/lexicon/verbs/participles.js
@@ -1,10 +1,78 @@
export default [
// -- participle forms--
+ 'arisen',
+ 'awaken',
+ 'awoken',
+ 'beaten',
+ 'been',
+ 'begun',
+ 'bitten',
+ 'blown',
+ 'broken',
+ 'built',
+ 'chosen',
+ 'clung',
+ // 'done',
+ 'dove',
+ 'drawn',
+ 'dreamt',
+ 'driven',
+ 'drunk',
+ 'eaten',
+ 'fallen',
+ 'flown',
+ 'forbidden',
+ 'forgiven',
+ 'forgotten',
+ 'forsaken',
+ 'forseen',
+ 'frozen',
+ 'given',
'gone',
+ 'gotten',
+ 'grown',
+ 'hasten',
+ 'hidden',
+ 'known',
+ 'outdone',
+ 'outgrown',
+ 'overdone',
+ 'overseen',
+ 'overtaken',
+ 'overthrown',
+ 'proven',
+ 'rewritten',
+ 'ridden',
+ 'risen',
+ 'rung',
'seen',
- 'flown',
+ 'sewn',
+ 'shaken',
+ 'shone',
'shown',
- 'given',
+ 'shrunk',
+ 'slain',
+ 'sought',
+ 'sown',
+ 'spilt',
+ 'spoken',
+ 'stolen',
+ 'strewn',
+ 'sung',
+ 'sunk',
+ 'sworn',
+ 'swum',
+ 'taken',
+ 'thrown',
+ 'torn',
+ 'undergone',
+ 'undone',
+ 'uprisen',
+ 'waken',
+ 'withdrawn',
+ 'woken',
+ 'worn',
+ 'woven',
'written',
-
+ 'wrung',
]
\ No newline at end of file
diff --git a/data/lexicon/verbs/phrasals.js b/data/lexicon/verbs/phrasals.js
index f87d37641..a0b549e01 100644
--- a/data/lexicon/verbs/phrasals.js
+++ b/data/lexicon/verbs/phrasals.js
@@ -206,6 +206,7 @@ export default [
'do over',
'double down',
'double up',
+ 'drum up',
'drag on',
'draw on',
'dress down',
@@ -797,7 +798,7 @@ export default [
'strike up',
'string up',
'string along',
- 'stuck up',
+ 'stick up',
'study up',
'suck in',
'suck off',
diff --git a/data/pairs/AdjToNoun.js b/data/pairs/AdjToNoun.js
new file mode 100644
index 000000000..52e166eae
--- /dev/null
+++ b/data/pairs/AdjToNoun.js
@@ -0,0 +1,442 @@
+export default [
+ ['abject', 'abjection'],
+ ['abstemious', 'abstemiousness'],
+ ['abundant', 'abundance'],
+ ['accomplished', 'accomplishment'],
+ ['accurate', 'accuracy'],
+ ['active', 'activity'],
+ ['adamant', 'adamance'],
+ ['adaptable', 'adaptability'],
+ ['addictive', 'addiction'],
+ ['admirable', 'admiration'],
+ ['adventurous', 'adventurousness'],
+ ['affectionate', 'affection'],
+ ['aggressive', 'aggression'],
+ ['agile', 'agility'],
+ ['agitated', 'agitation'],
+ ['alert', 'alertness'],
+ ['aloof', 'aloofness'],
+ ['amazed', 'amazement'],
+ ['ambitious', 'ambition'],
+ ['amiable', 'amiability'],
+ ['amicable', 'amicability'],
+ ['amorous', 'amorousness'],
+ ['ample', 'ampleness'],
+ ['amused', 'amusement'],
+ ['amusing', 'amusement'],
+ ['ancient', 'antiquity'],
+ ['apprehensive', 'apprehensiveness'],
+ ['ardent', 'ardor'],
+ ['argumentative', 'argumentativeness'],
+ ['articulate', 'articulacy'],
+ ['artistic', 'art'],
+ ['assertive', 'assertiveness'],
+ ['astute', 'astuteness'],
+ ['attractive', 'attractiveness'],
+ ['audacious', 'audacity'],
+ ['austere', 'austerity'],
+ ['authentic', 'authenticity'],
+ ['automatic', 'automation'],
+ ['bad', 'badness'],
+ ['beautiful', 'beauty'],
+ ['benevolent', 'benevolence'],
+ ['bold', 'boldness'],
+ ['boring', 'boredom'],
+ ['brave', 'bravery'],
+ ['bright', 'brightness'],
+ ['busy', 'business'],
+ ['calm', 'calmness'],
+ ['cantankerous', 'cantankerousness'],
+ ['careful', 'carefulness'],
+ ['caring', 'care'],
+ ['cautious', 'caution'],
+ ['certain', 'certainty'],
+ ['charismatic', 'charisma'],
+ ['cheap', 'cheapness'],
+ ['cheerful', 'cheerfulness'],
+ ['circumspect', 'circumspection'],
+ ['clean', 'cleanliness'],
+ ['clear', 'clarity'],
+ ['clever', 'cleverness'],
+ ['cold', 'coldness'],
+ ['comfortable', 'comfort'],
+ ['compassionate', 'compassion'],
+ ['compatible', 'compatibility'],
+ ['competent', 'competency'],
+ ['concise', 'conciseness'],
+ ['condescending', 'condescension'],
+ ['confident', 'confidence'],
+ ['congenial', 'congeniality'],
+ ['conscientious', 'conscientiousness'],
+ ['contemptuous', 'contemptuousness'],
+ ['cooperative', 'cooperation'],
+ ['courageous', 'courage'],
+ ['courteous', 'courtesy'],
+ ['coy', 'coyness'],
+ ['creative', 'creativity'],
+ ['credible', 'credibility'],
+ ['curious', 'curiosity'],
+ ['dark', 'darkness'],
+ ['decisive', 'decisiveness'],
+ ['dedicated', 'dedication'],
+ ['deep', 'depth'],
+ ['deliberate', 'deliberation'],
+ ['delicate', 'delicacy'],
+ ['delightful', 'delight'],
+ ['dependable', 'dependability'],
+ ['desperate', 'desperation'],
+ ['determined', 'determination'],
+ ['devoted', 'devotion'],
+ ['diffident', 'diffidence'],
+ ['diligent', 'diligence'],
+ ['dirty', 'dirtiness'],
+ ['disciplined', 'discipline'],
+ ['discreet', 'discretion'],
+ ['doleful', 'dolefulness'],
+ ['dramatic', 'drama'],
+ ['dull', 'dullness'],
+ ['dynamic', 'dynamism'],
+ ['eager', 'eagerness'],
+ ['educated', 'education'],
+ ['efficient', 'efficiency'],
+ ['elegant', 'elegance'],
+ ['eloquent', 'eloquence'],
+ ['empathetic', 'empathy'],
+ ['empty', 'emptiness'],
+ ['enduring', 'endurance'],
+ ['energetic', 'energy'],
+ ['engaging', 'engagement'],
+ ['enough', 'enoughness'],
+ ['enthusiastic', 'enthusiasm'],
+ ['excellent', 'excellence'],
+ ['excited', 'excitement'],
+ ['exciting', 'excitement'],
+ ['exemplary', 'exemplariness'],
+ ['expedient', 'expedience'],
+ ['expensive', 'expense'],
+ ['experienced', 'experience'],
+ ['explosive', 'explosiveness'],
+ ['expressive', 'expressiveness'],
+ ['facetious', 'facetiousness'],
+ ['fanciful', 'fancifulness'],
+ ['fantastic', 'fantasy'],
+ ['fast', 'fastness'],
+ ['fatuous', 'fatuousness'],
+ ['fearless', 'fearlessness'],
+ ['fertile', 'fertility'],
+ ['fervent', 'fervor'],
+ ['fierce', 'fierceness'],
+ ['flawless', 'flawlessness'],
+ ['flexible', 'flexibility'],
+ ['flowing', 'flow'],
+ ['focused', 'focus'],
+ ['forceful', 'force'],
+ ['forgiving', 'forgiveness'],
+ ['fortunate', 'fortune'],
+ ['fragrant', 'fragrance'],
+ ['frank', 'frankness'],
+ ['free', 'freedom'],
+ ['friendly', 'friendliness'],
+ ['frivolous', 'frivolity'],
+ ['frugal', 'frugality'],
+ ['full', 'fullness'],
+ ['funny', 'funniness'],
+ ['furious', 'fury'],
+ ['furry', 'furriness'],
+ ['furtive', 'furtiveness'],
+ ['gaudy', 'gaudiness'],
+ ['gay', 'gayness'],
+ ['generous', 'generosity'],
+ ['gentle', 'gentleness'],
+ ['ghastly', 'ghastliness'],
+ ['glamorous', 'glamour'],
+ ['glaring', 'glare'],
+ ['glowing', 'glow'],
+ ['good', 'goodness'],
+ ['graceful', 'grace'],
+ ['gracious', 'graciousness'],
+ ['guileless', 'guilelessness'],
+ ['gullible', 'gullibility'],
+ ['hard', 'hardness'],
+ ['hardworking', 'hardwork'],
+ ['harried', 'harriedness'],
+ ['harsh', 'harshness'],
+ ['hazardous', 'hazard'],
+ ['heavy', 'heaviness'],
+ ['heroic', 'heroism'],
+ ['hoary', 'hoariness'],
+ ['honest', 'honesty'],
+ ['hopeful', 'hopefulness'],
+ ['hospitable', 'hospitality'],
+ ['hot', 'heat'],
+ ['huge', 'hugeness'],
+ ['humble', 'humility'],
+ ['humorous', 'humor'],
+ ['iffy', 'iffiness'],
+ ['imaginative', 'imagination'],
+ ['impartial', 'impartiality'],
+ ['imperfect', 'imperfection'],
+ ['imperious', 'imperiousness'],
+ ['imperturbable', 'imperturbability'],
+ ['implacable', 'implacability'],
+ ['impossible', 'impossibility'],
+ ['impressive', 'impressiveness'],
+ ['impulsive', 'impulsiveness'],
+ ['inane', 'inanity'],
+ ['independent', 'independence'],
+ ['indolent', 'indolence'],
+ ['industrious', 'industry'],
+ ['ineluctable', 'ineluctability'],
+ ['inept', 'ineptitude'],
+ ['inimitable', 'inimitability'],
+ ['innovative', 'innovation'],
+ ['inquisitive', 'inquisitiveness'],
+ ['insightful', 'insight'],
+ ['inspiring', 'inspiration'],
+ ['intelligent', 'intelligence'],
+ ['intemperate', 'intemperance'],
+ ['intrepid', 'intrepidity'],
+ ['intuitive', 'intuition'],
+ ['inventive', 'inventiveness'],
+ ['ironic', 'irony'],
+ ['jittery', 'jitteriness'],
+ ['jovial', 'joviality'],
+ ['joyful', 'joy'],
+ ['joyous', 'joy'],
+ ['keen', 'keenness'],
+ ['kind', 'kindness'],
+ ['knowledgeable', 'knowledge'],
+ ['laconic', 'laconicism'],
+ ['lavish', 'lavishness'],
+ ['lazy', 'laziness'],
+ ['legal', 'legality'],
+ ['liberal', 'liberality'],
+ ['light', 'lightness'],
+ ['lively', 'liveliness'],
+ ['lofty', 'loftiness'],
+ ['long', 'length'],
+ ['loquacious', 'loquaciousness'],
+ ['lost', 'loss'],
+ ['loud', 'loudness'],
+ ['loving', 'love'],
+ ['loyal', 'loyalty'],
+ ['lucid', 'lucidity'],
+ ['luminous', 'luminosity'],
+ ['lush', 'lushness'],
+ ['luxurious', 'luxury'],
+ ['magical', 'magic'],
+ ['magnanimous', 'magnanimity'],
+ ['majestic', 'majesty'],
+ ['mature', 'maturity'],
+ ['maverick', 'maverickness'],
+ ['mawkish', 'mawkishness'],
+ ['melodic', 'melody'],
+ ['meticulous', 'meticulousness'],
+ ['mighty', 'mightiness'],
+ ['modest', 'modesty'],
+ ['moist', 'moistness'],
+ ['momentous', 'momentousness'],
+ ['motivated', 'motivation'],
+ ['mundane', 'mundanity'],
+ ['musical', 'music'],
+ ['mysterious', 'mystery'],
+ ['mystical', 'mysticism'],
+ ['naive', 'naivety'],
+ ['narcissistic', 'narcissism'],
+ ['narrow', 'narrowness'],
+ ['naughty', 'naughtiness'],
+ ['nervous', 'nervousness'],
+ ['noble', 'nobility'],
+ ['nonchalant', 'nonchalance'],
+ ['nurturing', 'nurturance'],
+ ['obedient', 'obedience'],
+ ['oblivious', 'obliviousness'],
+ ['observant', 'observation'],
+ ['offensive', 'offence'],
+ ['offhand', 'offhandedness'],
+ ['ominous', 'ominousness'],
+ ['optimistic', 'optimism'],
+ ['organized', 'organization'],
+ ['orotund', 'orotundity'],
+ ['ostentatious', 'ostentatiousness'],
+ ['outgoing', 'outgoingness'],
+ ['pacifist', 'pacifism'],
+ ['passionate', 'passion'],
+ ['patient', 'patience'],
+ ['pedantic', 'pedantry'],
+ ['peerless', 'peerlessness'],
+ ['perceptive', 'perception'],
+ ['perfect', 'perfection'],
+ ['persistent', 'persistence'],
+ ['personal', 'personality'],
+ ['persuasive', 'persuasion'],
+ ['physical', 'physicality'],
+ ['placid', 'placidity'],
+ ['playful', 'playfulness'],
+ ['pleasant', 'pleasantness'],
+ ['pliant', 'pliancy'],
+ ['poignant', 'poignancy'],
+ ['poised', 'poise'],
+ ['polite', 'politeness'],
+ ['poor', 'poverty'],
+ ['popular', 'popularity'],
+ ['positive', 'positivity'],
+ ['possessive', 'possession'],
+ ['powerful', 'power'],
+ ['practical', 'practicality'],
+ ['pragmatic', 'pragmatism'],
+ ['present', 'presence'],
+ ['proactive', 'proactivity'],
+ ['prodigious', 'prodigiousness'],
+ ['professional', 'professionalism'],
+ ['proficient', 'proficiency'],
+ ['proportionate', 'proportion'],
+ ['protective', 'protection'],
+ ['prudent', 'prudence'],
+ ['punctual', 'punctuality'],
+ ['purposeful', 'purpose'],
+ ['querulous', 'querulousness'],
+ ['quick', 'quickness'],
+ ['quiet', 'quietness'],
+ ['quixotic', 'quixoticism'],
+ ['radiant', 'radiance'],
+ ['rampant', 'rampantness'],
+ ['random', 'randomness'],
+ ['rapacious', 'rapaciousness'],
+ ['ravishing', 'ravishingness'],
+ ['ready', 'readiness'],
+ ['realistic', 'realism'],
+ ['reasonable', 'reasonableness'],
+ ['receptive', 'receptiveness'],
+ ['recondite', 'reconditeness'],
+ ['red', 'redness'],
+ ['refined', 'refinement'],
+ ['relentless', 'relentlessness'],
+ ['reliable', 'reliability'],
+ ['reprobate', 'reprobacy'],
+ ['resilient', 'resilience'],
+ ['resolute', 'resolution'],
+ ['resourceful', 'resourcefulness'],
+ ['respectable', 'respect'],
+ ['respectful', 'respect'],
+ ['responsible', 'responsibility'],
+ ['reverent', 'reverence'],
+ ['rich', 'richness'],
+ ['riotous', 'riotousness'],
+ ['ripe', 'ripeness'],
+ ['risible', 'risibility'],
+ ['romantic', 'romance'],
+ ['rough', 'roughness'],
+ ['round', 'roundness'],
+ ['sad', 'sadness'],
+ ['salubrious', 'salubriousness'],
+ ['scrupulous', 'scrupulousness'],
+ ['scurrilous', 'scurrility'],
+ ['seditious', 'seditiousness'],
+ ['selfless', 'selflessness'],
+ ['sensible', 'sensibility'],
+ ['sensitive', 'sensitivity'],
+ ['serene', 'serenity'],
+ ['serious', 'seriousness'],
+ ['sharp', 'sharpness'],
+ ['shining', 'shininess'],
+ ['short', 'shortness'],
+ ['silent', 'silence'],
+ ['simple', 'simplicity'],
+ ['sincere', 'sincerity'],
+ ['sinister', 'sinisterness'],
+ ['skillful', 'skill'],
+ ['slippery', 'slipperiness'],
+ ['slow', 'slowness'],
+ ['smooth', 'smoothness'],
+ ['soft', 'softness'],
+ ['solid', 'solidity'],
+ ['soothing', 'soothingness'],
+ ['sour', 'sourness'],
+ ['specious', 'speciousness'],
+ ['spiritual', 'spirituality'],
+ ['spontaneous', 'spontaneity'],
+ ['sporadic', 'sporadicness'],
+ ['spurious', 'spuriousness'],
+ ['stalwart', 'stalwartness'],
+ ['stern', 'sternness'],
+ ['straight', 'straightness'],
+ ['strategic', 'strategy'],
+ ['strict', 'strictness'],
+ ['strong', 'strength'],
+ ['stubborn', 'stubbornness'],
+ ['sturdy', 'sturdiness'],
+ ['sublime', 'sublimity'],
+ ['subservient', 'subservience'],
+ ['subtle', 'subtleties'],
+ ['successful', 'success'],
+ ['superficial', 'superficiality'],
+ ['supportive', 'support'],
+ ['suspicious', 'suspicion'],
+ ['sweet', 'sweetness'],
+ ['swift', 'swiftness'],
+ ['sympathetic', 'sympathy'],
+ ['tactful', 'tact'],
+ ['talented', 'talent'],
+ ['tall', 'tallness'],
+ ['tame', 'tameness'],
+ ['tart', 'tartness'],
+ ['tawdry', 'tawdriness'],
+ ['tenacious', 'tenacity'],
+ ['tender', 'tenderness'],
+ ['tense', 'tenseness'],
+ ['tenuous', 'tenuousness'],
+ ['thin', 'thinness'],
+ ['thirsty', 'thirstiness'],
+ ['thorny', 'thorniness'],
+ ['thorough', 'thoroughness'],
+ ['thoughtful', 'thoughtfulness'],
+ ['tidy', 'tidiness'],
+ ['timely', 'timeliness'],
+ ['timid', 'timidity'],
+ ['timorous', 'timorousness'],
+ ['tiny', 'tininess'],
+ ['tired', 'tiredness'],
+ ['tireless', 'tirelessness'],
+ ['tolerant', 'tolerance'],
+ ['tough', 'toughness'],
+ ['trenchant', 'trenchancy'],
+ ['trusting', 'trust'],
+ ['trustworthy', 'trustworthiness'],
+ ['tumultuous', 'tumult'],
+ ['ubiquitous', 'ubiquitousness'],
+ ['unctuous', 'unctuousness'],
+ ['understanding', 'understanding'],
+ ['unflappable', 'unflappability'],
+ ['unique', 'uniqueness'],
+ ['unyielding', 'unyieldingness'],
+ ['vagrant', 'vagrancy'],
+ ['valuable', 'value'],
+ ['vapid', 'vapidity'],
+ ['venerable', 'venerability'],
+ ['versatile', 'versatility'],
+ ['vertical', 'verticality'],
+ ['vibrant', 'vibrancy'],
+ ['vigilant', 'vigilance'],
+ ['vigorous', 'vigor'],
+ ['vivacious', 'vivacity'],
+ ['vixenish', 'vixenishness'],
+ ['volatile', 'volatility'],
+ ['volumous', 'voluminousness'],
+ ['vulnerable', 'vulnerability'],
+ ['wanton', 'wantonness'],
+ ['warm', 'warmth'],
+ ['weak', 'weakness'],
+ ['whimsical', 'whimsicalness'],
+ ['wide', 'wideness'],
+ ['wily', 'wiliness'],
+ ['wise', 'wisdom'],
+ ['wistful', 'wistfulness'],
+ ['witty', 'wit'],
+ ['witty', 'wittiness'],
+ ['woebegone', 'woefulness'],
+ ['yielding', 'yieldingness'],
+ ['young', 'youth'],
+ ['zany', 'zaniness'],
+ ['zealous', 'zeal'],
+]
\ No newline at end of file
diff --git a/data/pairs/Comparative.js b/data/pairs/Comparative.js
index 4c03d613f..c12b9ac25 100644
--- a/data/pairs/Comparative.js
+++ b/data/pairs/Comparative.js
@@ -1,123 +1,4 @@
export default [
- ['high', 'higher'],
- ['great', 'greater'],
- ['further', 'further'],
- ['good', 'better'],
- ['low', 'lower'],
- ['large', 'larger'],
- ['small', 'smaller'],
- ['old', 'older'],
- ['broad', 'broader'],
- ['strong', 'stronger'],
- ['few', 'fewer'],
- ['long', 'longer'],
- ['easy', 'easier'],
- ['early', 'earlier'],
- ['lesser', 'lesser'],
- ['wide', 'wider'],
- ['young', 'younger'],
- ['late', 'later'],
- ['close', 'closer'],
- ['short', 'shorter'],
- ['fast', 'faster'],
- ['slow', 'slower'],
- ['clear', 'clearer'],
- ['weak', 'weaker'],
- ['safe', 'safer'],
- ['new', 'newer'],
- ['healthy', 'healthier'],
- ['big', 'bigger'],
- ['bad', 'worse'],
- ['deep', 'deeper'],
- ['simple', 'simpler'],
- ['cheap', 'cheaper'],
- ['poor', 'poorer'],
- ['hard', 'harder'],
- ['tight', 'tighter'],
- ['clean', 'cleaner'],
- ['full', 'fuller'],
- ['narrow', 'narrower'],
- ['strict', 'stricter'],
- ['rich', 'richer'],
- ['heavy', 'heavier'],
- ['fair', 'fairer'],
- ['tough', 'tougher'],
- ['quick', 'quicker'],
- ['warm', 'warmer'],
- ['bright', 'brighter'],
- ['present', 'presenter'],
- ['light', 'lighter'],
- ['free', 'freer'],
- ['cool', 'cooler'],
- ['risky', 'riskier'],
- ['soft', 'softer'],
- ['dry', 'drier'],
- ['green', 'greener'],
- ['fine', 'finer'],
- ['smart', 'smarter'],
- ['firm', 'firmer'],
- ['sharp', 'sharper'],
- ['wet', 'wetter'],
- ['thin', 'thinner'],
- ['smooth', 'smoother'],
- ['thick', 'thicker'],
- ['speedy', 'speedier'],
- ['steep', 'steeper'],
- ['wealthy', 'wealthier'],
- ['lean', 'leaner'],
- ['cold', 'colder'],
- ['dense', 'denser'],
- ['loose', 'looser'],
- ['tall', 'taller'],
- ['farther', 'farther'],
- ['harsh', 'harsher'],
- ['hot', 'hotter'],
- ['stiff', 'stiffer'],
- ['near', 'nearer'],
- ['happy', 'happier'],
- ['dark', 'darker'],
- ['mild', 'milder'],
- ['premier', 'premier'],
- ['gentle', 'gentler'],
- ['true', 'truer'],
- ['coarse', 'coarser'],
- ['timely', 'timelier'],
- ['lengthy', 'lengthier'],
- ['camp', 'camper'],
- ['friendly', 'friendlier'],
- ['loud', 'louder'],
- ['pure', 'purer'],
- ['quiet', 'quieter'],
- ['hardy', 'hardier'],
- ['shallow', 'shallower'],
- ['flat', 'flatter'],
- ['lay', 'layer'],
- ['slim', 'slimmer'],
- ['orient', 'orienter'],
- ['grand', 'grander'],
- ['diffuse', 'diffuser'],
- ['tricky', 'trickier'],
- ['catchy', 'catchier'],
- ['gauche', 'gaucher'],
- ['trim', 'trimmer'],
- ['sleek', 'sleeker'],
- ['calm', 'calmer'],
- ['busy', 'busier'],
- ['fond', 'fonder'],
- ['proud', 'prouder'],
- ['sweet', 'sweeter'],
- ['subtle', 'subtler'],
- ['gold', 'golder'],
- ['buff', 'buffer'],
- ['steady', 'steadier'],
- ['nice', 'nicer'],
- ['nasty', 'nastier'],
- ['numb', 'number'],
- ['fierce', 'fiercer'],
- ['stark', 'starker'],
- ['wise', 'wiser'],
-
-
['angry', 'angrier'],
['bad', 'worse'],
@@ -133,14 +14,22 @@ export default [
['bouncy', 'bouncier'],
['brash', 'brasher'],
['brave', 'braver'],
+ ['bright', 'brighter'],
+ ['broad', 'broader'],
+ ['buff', 'buffer'],
['burly', 'burlier'],
['busy', 'busier'],
['calm', 'calmer'],
+ ['camp', 'camper'],
+ ['catchy', 'catchier'],
['cheap', 'cheaper'],
['cheesy', 'cheesier'],
['chilly', 'chillier'],
+ ['clean', 'cleaner'],
['clear', 'clearer'],
+ ['close', 'closer'],
['cloudy', 'cloudier'],
+ ['coarse', 'coarser'],
['cold', 'colder'],
['common', 'commoner'],
['cool', 'cooler'],
@@ -152,13 +41,20 @@ export default [
['cuddly', 'cuddlier'],
['curly', 'curlier'],
['cute', 'cuter'],
+ ['damp', 'damper'],
+ ['dark', 'darker'],
+ ['dead', 'deader'],
['deadly', 'deadlier'],
+ ['deaf', 'deafer'],
['dear', 'dearer'],
+ ['deep', 'deeper'],
['dense', 'denser'],
+ ['diffuse', 'diffuser'],
['dire', 'direr'],
['dirty', 'dirtier'],
['divine', 'diviner'],
['drunk', 'drunker'],
+ ['dry', 'drier'],
['dull', 'duller'],
['dumb', 'dumber'],
['early', 'earlier'],
@@ -168,20 +64,30 @@ export default [
['fair', 'fairer'],
['fake', 'faker'],
['fancy', 'fancier'],
- ['far', 'farer'],
+ ['far', 'further'],
+ ['fast', 'faster'],
+ ['fat', 'fatter'],
['faulty', 'faultier'],
['feeble', 'feebler'],
+ ['few', 'fewer'],
['fierce', 'fiercer'],
['fine', 'finer'],
+ ['firm', 'firmer'],
+ ['flat', 'flatter'],
['foamy', 'foamier'],
+ ['fond', 'fonder'],
['formal', 'formaler'],
['foul', 'fouler'],
['frail', 'frailer'],
+ ['free', 'freer'],
+ ['fresh', 'fresher'],
['friendly', 'friendlier'],
['full', 'fuller'],
['fun', 'funer'],
['funny', 'funnier'],
['furry', 'furrier'],
+ ['further', 'further'],
+ ['gauche', 'gaucher'],
['gaudy', 'gaudier'],
['gay', 'gaier'],
['gentle', 'gentler'],
@@ -189,11 +95,14 @@ export default [
['ghastly', 'ghastlier'],
['ghostly', 'ghostlier'],
['giddy', 'giddier'],
- ['glib', 'gliber'],
+ ['glib', 'glibber'],
['gloomy', 'gloomier'],
+ ['gold', 'golder'],
+ ['good', 'better'],
['goofy', 'goofier'],
['grand', 'grander'],
['gray', 'grayer'],
+ ['great', 'greater'],
['green', 'greener'],
['grisly', 'grislier'],
['groovy', 'groovier'],
@@ -201,8 +110,11 @@ export default [
['gruesome', 'gruesomer'],
['handsome', 'handsomer'],
['happy', 'happier'],
+ ['hard', 'harder'],
+ ['hardy', 'hardier'],
['harsh', 'harsher'],
['heady', 'headier'],
+ ['healthy', 'healthier'],
['heavy', 'heavier'],
['hefty', 'heftier'],
['high', 'higher'],
@@ -222,28 +134,37 @@ export default [
['lame', 'lamer'],
['large', 'larger'],
['late', 'later'],
+ ['lay', 'layer'],
+ ['lean', 'leaner'],
+ ['lengthy', 'lengthier'],
+ ['lesser', 'lesser'],
['lewd', 'lewder'],
+ ['light', 'lighter'],
['likely', 'likelier'],
['little', 'littler'],
['lively', 'livelier'],
['lofty', 'loftier'],
['lonely', 'lonelier'],
['long', 'longer'],
+ ['loose', 'looser'],
['loud', 'louder'],
['lousy', 'lousier'],
['lovely', 'lovelier'],
['low', 'lower'],
['lucky', 'luckier'],
+ ['mad', 'madder'],
['mean', 'meaner'],
['measly', 'measlier'],
['meaty', 'meatier'],
['meek', 'meeker'],
['mellow', 'mellower'],
['mild', 'milder'],
+ ['moist', 'moister'],
['moody', 'moodier'],
['narrow', 'narrower'],
+ ['nasty', 'nastier'],
['near', 'nearer'],
- ['neat', 'neatter'],
+ ['neat', 'neater'],
['new', 'newer'],
['nice', 'nicer'],
['nimble', 'nimbler'],
@@ -251,18 +172,24 @@ export default [
['noisy', 'noisier'],
['normal', 'normaler'],
['nosy', 'nosier'],
+ ['numb', 'number'],
['odd', 'odder'],
['oily', 'oilier'],
['old', 'older'],
+ ['orient', 'orienter'],
['pale', 'paler'],
['phony', 'phonier'],
['pink', 'pinker'],
['plain', 'plainer'],
['poor', 'poorer'],
+ ['premier', 'premier'],
+ ['present', 'presenter'],
['prickly', 'pricklier'],
['proud', 'prouder'],
['puny', 'punier'],
['pure', 'purer'],
+ ['quick', 'quicker'],
+ ['quiet', 'quieter'],
['ragged', 'raggeder'],
['random', 'randomer'],
['rapid', 'rapider'],
@@ -272,11 +199,15 @@ export default [
['real', 'realer'],
['remote', 'remoter'],
['rich', 'richer'],
+ ['ripe', 'riper'],
+ ['risky', 'riskier'],
['ritzy', 'ritzier'],
['roomy', 'roomier'],
['rosy', 'rosier'],
+ ['rough', 'rougher'],
['round', 'rounder'],
['rude', 'ruder'],
+ ['sad', 'sadder'],
['safe', 'safer'],
['saintly', 'saintlier'],
['salty', 'saltier'],
@@ -286,31 +217,41 @@ export default [
['sexy', 'sexier'],
['shady', 'shadier'],
['shallow', 'shallower'],
+ ['sharp', 'sharper'],
['shiny', 'shinier'],
+ ['short', 'shorter'],
['shrill', 'shriller'],
- ['shy', 'shier'],
+ ['shy', 'shyer'],
+ ['sick', 'sicker'],
['silly', 'sillier'],
['simple', 'simpler'],
['skinny', 'skinnier'],
['sleek', 'sleeker'],
['slight', 'slighter'],
- ['slim', 'slimer'],
+ ['slim', 'slimmer'],
['slimy', 'slimier'],
['slow', 'slower'],
['sly', 'slier'],
['small', 'smaller'],
+ ['smart', 'smarter'],
['smelly', 'smellier'],
+ ['smooth', 'smoother'],
+ ['soft', 'softer'],
['solemn', 'solemner'],
['solid', 'solider'],
['soon', 'sooner'],
['sore', 'sorer'],
+ ['speedy', 'speedier'],
['spicy', 'spicier'],
['sprightly', 'sprightlier'],
['square', 'squarer'],
['stale', 'staler'],
['stark', 'starker'],
['steady', 'steadier'],
+ ['steep', 'steeper'],
['stern', 'sterner'],
+ ['stiff', 'stiffer'],
+ ['straight', 'straighter'],
['strict', 'stricter'],
['strong', 'stronger'],
['stupid', 'stupider'],
@@ -318,19 +259,26 @@ export default [
['subtle', 'subtler'],
['sudden', 'suddener'],
['surreal', 'surrealer'],
+ ['sweet', 'sweeter'],
['swift', 'swifter'],
['tall', 'taller'],
['tame', 'tamer'],
['tart', 'tarter'],
['tawdry', 'tawdrier'],
['tense', 'tenser'],
+ ['thick', 'thicker'],
+ ['thin', 'thinner'],
['thirsty', 'thirstier'],
['tidy', 'tidier'],
+ ['tight', 'tighter'],
['timely', 'timelier'],
['tiny', 'tinier'],
['tired', 'tireder'],
+ ['tough', 'tougher'],
['tranquil', 'tranquiler'],
['trendy', 'trendier'],
+ ['tricky', 'trickier'],
+ ['trim', 'trimmer'],
['true', 'truer'],
['ugly', 'uglier'],
['unlikely', 'unlikelier'],
@@ -339,52 +287,27 @@ export default [
['vague', 'vaguer'],
['vain', 'vainer'],
['vast', 'vaster'],
+ ['warm', 'warmer'],
['wary', 'warier'],
+ ['weak', 'weaker'],
+ ['wealthy', 'wealthier'],
['weary', 'wearier'],
['weird', 'weirder'],
+ ['wet', 'wetter'],
+ ['white', 'whiter'],
['wicked', 'wickeder'],
+ ['wide', 'wider'],
['wild', 'wilder'],
['wily', 'wilier'],
['wise', 'wiser'],
['young', 'younger'],
['zany', 'zanier'],
- ['bright', 'brighter'],
- ['broad', 'broader'],
- ['coarse', 'coarser'],
- ['damp', 'damper'],
- ['dark', 'darker'],
- ['dead', 'deader'],
- ['deaf', 'deafer'],
- ['deep', 'deeper'],
- ['fast', 'faster'],
- ['fat', 'fatter'],
- ['flat', 'flatter'],
- ['fresh', 'fresher'],
- ['great', 'greater'],
- ['hard', 'harder'],
- ['loose', 'looser'],
- ['mad', 'madder'],
- ['moist', 'moister'],
- ['quick', 'quicker'],
- ['quiet', 'quieter'],
- ['ripe', 'riper'],
- ['rough', 'rougher'],
- ['sad', 'sadder'],
- ['sharp', 'sharper'],
- ['short', 'shorter'],
- ['sick', 'sicker'],
- ['smart', 'smarter'],
- ['soft', 'softer'],
- ['steep', 'steeper'],
- ['stiff', 'stiffer'],
- ['straight', 'straighter'],
- ['sweet', 'sweeter'],
- ['thick', 'thicker'],
- ['tight', 'tighter'],
- ['tough', 'tougher'],
- ['weak', 'weaker'],
- ['white', 'whiter'],
- ['wide', 'wider']
+ ['clever', 'cleverer'],
+ ['glad', 'gladder'],
+ ['neat', 'neater'],
+ ['dim', 'dimmer'],
+ ['', ''],
+ ['', ''],
]
\ No newline at end of file
diff --git a/data/pairs/Gerund.js b/data/pairs/Gerund.js
index cb8c7db98..6674ed823 100644
--- a/data/pairs/Gerund.js
+++ b/data/pairs/Gerund.js
@@ -1,2910 +1,2906 @@
export default [
- ['including', 'include', 27563],
- ['following', 'follow', 18003],
- ['being', 'is', 16193],
- ['using', 'use', 9684],
- ['working', 'work', 9478],
- ['developing', 'develop', 8260],
- ['providing', 'provide', 7402],
- ['regarding', 'regard', 7148],
- ['dumping', 'dump', 7094],
- ['according', 'accord', 7059],
- ['operating', 'operate', 6540],
- ['making', 'make', 6202],
- ['increasing', 'increase', 5802],
- ['having', 'have', 5595],
- ['supporting', 'support', 4833],
- ['heading', 'head', 4383],
- ['exceeding', 'exceed', 4320],
- ['growing', 'grow', 4117],
- ['concerning', 'concern', 4003],
- ['reporting', 'report', 3937],
- ['relating', 'relate', 3921],
- ['leading', 'lead', 3456],
- ['ensuring', 'ensure', 3417],
- ['improving', 'improve', 3405],
- ['meeting', 'meet', 3329],
- ['existing', 'exist', 3283],
- ['promoting', 'promote', 3256],
- ['taking', 'take', 3210],
- ['learning', 'learn', 3177],
- ['originating', 'originate', 3069],
- ['creating', 'create', 2722],
- ['building', 'build', 2693],
- ['resulting', 'result', 2675],
- ['living', 'live', 2660],
- ['funding', 'fund', 2654],
- ['emerging', 'emerge', 2611],
- ['involving', 'involve', 2597],
- ['receiving', 'receive', 2524],
- ['participating', 'participate', 2496],
- ['representing', 'represent', 2400],
- ['reducing', 'reduce', 2317],
- ['determining', 'determine', 2274],
- ['implementing', 'implement', 2258],
- ['changing', 'change', 2205],
- ['establishing', 'establish', 2184],
- ['identifying', 'identify', 2170],
- ['containing', 'contain', 2119],
- ['doing', 'do', 2043],
- ['looking', 'look', 2014],
- ['addressing', 'address', 2010],
- ['selling', 'sell', 2003],
- ['excluding', 'exclude', 1997],
- ['moving', 'move', 1948],
- ['helping', 'help', 1923],
- ['continuing', 'continue', 1923],
- ['coming', 'come', 1852],
- ['achieving', 'achieve', 1826],
- ['going', 'go', 1826],
- ['producing', 'produce', 1782],
- ['respecting', 'respect', 1758],
- ['depending', 'depend', 1699],
- ['applying', 'apply', 1693],
- ['planning', 'plan', 1640],
- ['conducting', 'conduct', 1624],
- ['managing', 'manage', 1597],
- ['maintaining', 'maintain', 1586],
- ['remaining', 'remain', 1573],
- ['performing', 'perform', 1522],
- ['dealing', 'deal', 1519],
- ['seeking', 'seek', 1500],
- ['contributing', 'contribute', 1473],
- ['starting', 'start', 1460],
- ['enhancing', 'enhance', 1430],
- ['writing', 'write', 1426],
- ['hosting', 'host', 1415],
- ['strengthening', 'strengthen', 1399],
- ['facing', 'face', 1392],
- ['allowing', 'allow', 1359],
- ['measuring', 'measure', 1357],
- ['becoming', 'become', 1351],
- ['affecting', 'affect', 1348],
- ['finding', 'find', 1346],
- ['offering', 'offer', 1346],
- ['considering', 'consider', 1334],
- ['beginning', 'begin', 1330],
- ['setting', 'set', 1317],
- ['aging', 'age', 1312],
- ['bringing', 'bring', 1302],
- ['keeping', 'keep', 1299],
- ['monitoring', 'monitor', 1278],
- ['requiring', 'require', 1224],
- ['indicating', 'indicate', 1218],
- ['giving', 'give', 1211],
- ['preparing', 'prepare', 1181],
- ['ending', 'end', 1174],
- ['rising', 'rise', 1138],
- ['sharing', 'share', 1131],
- ['reaching', 'reach', 1128],
- ['expanding', 'expand', 1120],
- ['getting', 'get', 1117],
- ['governing', 'govern', 1103],
- ['assessing', 'assess', 1103],
- ['granting', 'grant', 1099],
- ['obtaining', 'obtain', 1098],
- ['subsidizing', 'subsidize', 1097],
- ['attending', 'attend', 1093],
- ['entering', 'enter', 1082],
- ['delivering', 'deliver', 1080],
- ['arising', 'arise', 1079],
- ['targeting', 'target', 1071],
- ['travelling', 'travel', 1071],
- ['fostering', 'foster', 1065],
- ['carrying', 'carry', 1053],
- ['encouraging', 'encourage', 1044],
- ['underlying', 'underlie', 1038],
- ['understanding', 'understand', 1034],
- ['completing', 'complete', 1026],
- ['covering', 'cover', 1013],
- ['responding', 'respond', 1005],
- ['visiting', 'visit', 996],
- ['importing', 'import', 995],
- ['protecting', 'protect', 990],
- ['reviewing', 'review', 987],
- ['owing', 'owe', 975],
- ['focusing', 'focus', 966],
- ['recognizing', 'recognize', 966],
- ['serving', 'serve', 945],
- ['facilitating', 'facilitate', 942],
- ['pertaining', 'pertain', 941],
- ['examining', 'examine', 937],
- ['enabling', 'enable', 935],
- ['evaluating', 'evaluate', 858],
- ['consisting', 'consist', 846],
- ['adding', 'add', 833],
- ['exporting', 'export', 817],
- ['investing', 'invest', 813],
- ['studying', 'study', 808],
- ['showing', 'show', 805],
- ['raising', 'raise', 802],
- ['ranging', 'range', 800],
- ['reflecting', 'reflect', 781],
- ['processing', 'process', 768],
- ['submitting', 'submit', 763],
- ['advancing', 'advance', 755],
- ['declining', 'decline', 755],
- ['surrounding', 'surround', 740],
- ['competing', 'compete', 737],
- ['preventing', 'prevent', 730],
- ['defining', 'define', 730],
- ['paying', 'pay', 728],
- ['undertaking', 'undertake', 725],
- ['speaking', 'speak', 721],
- ['acting', 'act', 716],
- ['holding', 'hold', 714],
- ['describing', 'describe', 710],
- ['training', 'train', 701],
- ['countervailing', 'countervail', 701],
- ['presenting', 'present', 700],
- ['evolving', 'evolve', 694],
- ['pending', 'pend', 687],
- ['assisting', 'assist', 685],
- ['requesting', 'request', 682],
- ['pursuing', 'pursue', 669],
- ['incorporating', 'incorporate', 655],
- ['noting', 'note', 651],
- ['coordinating', 'coordinate', 649],
- ['attracting', 'attract', 647],
- ['leaving', 'leave', 647],
- ['organizing', 'organize', 644],
- ['counselling', 'counsel', 644],
- ['playing', 'play', 630],
- ['trying', 'try', 629],
- ['causing', 'cause', 624],
- ['integrating', 'integrate', 619],
- ['belonging', 'belong', 618],
- ['collecting', 'collect', 618],
- ['administering', 'administer', 611],
- ['linking', 'link', 609],
- ['negotiating', 'negotiate', 599],
- ['putting', 'put', 580],
- ['limiting', 'limit', 572],
- ['cutting', 'cut', 566],
- ['occurring', 'occur', 546],
- ['falling', 'fall', 542],
- ['partnering', 'partner', 541],
- ['matching', 'match', 540],
- ['accessing', 'access', 532],
- ['experiencing', 'experience', 531],
- ['buying', 'buy', 530],
- ['exploring', 'explore', 525],
- ['calculating', 'calculate', 525],
- ['teaching', 'teach', 520],
- ['generating', 'generate', 514],
- ['varying', 'vary', 512],
- ['assuming', 'assume', 507],
- ['marking', 'mark', 505],
- ['calling', 'call', 503],
- ['driving', 'drive', 495],
- ['cleaning', 'clean', 494],
- ['selecting', 'select', 491],
- ['spending', 'spend', 488],
- ['engaging', 'engage', 487],
- ['returning', 'return', 484],
- ['comparing', 'compare', 484],
- ['running', 'run', 476],
- ['wishing', 'wish', 475],
- ['eliminating', 'eliminate', 475],
- ['demonstrating', 'demonstrate', 466],
- ['hiring', 'hire', 464],
- ['opening', 'open', 461],
- ['communicating', 'communicate', 457],
- ['arriving', 'arrive', 452],
- ['filing', 'file', 449],
- ['extending', 'extend', 449],
- ['controlling', 'control', 445],
- ['tracking', 'track', 445],
- ['handling', 'handle', 444],
- ['adopting', 'adopt', 444],
- ['preserving', 'preserve', 442],
- ['forming', 'form', 442],
- ['parenting', 'parent', 438],
- ['policing', 'police', 436],
- ['shipping', 'ship', 433],
- ['outlining', 'outline', 433],
- ['signing', 'sign', 431],
- ['introducing', 'introduce', 430],
- ['waiting', 'wait', 430],
- ['choosing', 'choose', 429],
- ['threatening', 'threaten', 426],
- ['stating', 'state', 423],
- ['celebrating', 'celebrate', 422],
- ['issuing', 'issue', 420],
- ['contacting', 'contact', 417],
- ['sending', 'send', 414],
- ['seeding', 'seed', 414],
- ['qualifying', 'qualify', 410],
- ['drawing', 'draw', 407],
- ['testing', 'test', 407],
- ['investigating', 'investigate', 406],
- ['distributing', 'distribute', 404],
- ['seeing', 'see', 402],
- ['saying', 'say', 398],
- ['asking', 'ask', 389],
- ['marketing', 'market', 389],
- ['weighing', 'weigh', 388],
- ['suggesting', 'suggest', 386],
- ['explaining', 'explain', 384],
- ['discussing', 'discuss', 380],
- ['accounting', 'account', 380],
- ['placing', 'place', 380],
- ['designing', 'design', 379],
- ['gaining', 'gain', 374],
- ['securing', 'secure', 373],
- ['removing', 'remove', 371],
- ['decreasing', 'decrease', 365],
- ['informing', 'inform', 360],
- ['turning', 'turn', 358],
- ['treating', 'treat', 357],
- ['thinking', 'think', 354],
- ['joining', 'join', 352],
- ['sponsoring', 'sponsor', 350],
- ['amending', 'amend', 350],
- ['searching', 'search', 349],
- ['retaining', 'retain', 342],
- ['fulfilling', 'fulfill', 341],
- ['influencing', 'influence', 339],
- ['reading', 'read', 338],
- ['missing', 'miss', 334],
- ['standing', 'stand', 333],
- ['estimating', 'estimate', 328],
- ['featuring', 'feature', 327],
- ['planting', 'plant', 327],
- ['shaping', 'shape', 326],
- ['reinforcing', 'reinforce', 324],
- ['combining', 'combine', 321],
- ['leveraging', 'leverage', 321],
- ['comprising', 'comprise', 321],
- ['analyzing', 'analyze', 319],
- ['purchasing', 'purchase', 318],
- ['updating', 'update', 315],
- ['highlighting', 'highlight', 313],
- ['consulting', 'consult', 311],
- ['recruiting', 'recruit', 310],
- ['knowing', 'know', 310],
- ['drafting', 'draft', 308],
- ['acquiring', 'acquire', 298],
- ['sustaining', 'sustain', 298],
- ['transferring', 'transfer', 297],
- ['confirming', 'confirm', 296],
- ['accepting', 'accept', 295],
- ['referring', 'refer', 293],
- ['grading', 'grade', 293],
- ['launching', 'launch', 287],
- ['replacing', 'replace', 286],
- ['filling', 'fill', 286],
- ['claiming', 'claim', 284],
- ['appearing', 'appear', 281],
- ['transporting', 'transport', 281],
- ['connecting', 'connect', 280],
- ['benefiting', 'benefit', 280],
- ['talking', 'talk', 278],
- ['collaborating', 'collaborate', 277],
- ['winning', 'win', 275],
- ['accompanying', 'accompany', 274],
- ['meaning', 'mean', 273],
- ['ordering', 'order', 272],
- ['hatching', 'hatch', 268],
- ['gathering', 'gather', 267],
- ['welcoming', 'welcome', 267],
- ['deciding', 'decide', 267],
- ['challenging', 'challenge', 265],
- ['posting', 'post', 264],
- ['losing', 'lose', 262],
- ['proposing', 'propose', 260],
- ['registering', 'register', 260],
- ['recording', 'record', 259],
- ['publishing', 'publish', 258],
- ['closing', 'close', 258],
- ['listening', 'listen', 255],
- ['translating', 'translate', 254],
- ['inviting', 'invite', 254],
- ['cropping', 'crop', 254],
- ['interpreting', 'interpret', 251],
- ['totalling', 'total', 251],
- ['attempting', 'attempt', 246],
- ['disseminating', 'disseminate', 246],
- ['tendering', 'tender', 245],
- ['crossing', 'cross', 244],
- ['maximizing', 'maximize', 242],
- ['employing', 'employ', 241],
- ['concluding', 'conclude', 241],
- ['profiling', 'profil', 239],
- ['breaking', 'break', 238],
- ['labelling', 'label', 238],
- ['prescribing', 'prescribe', 236],
- ['touring', 'tour', 235],
- ['adapting', 'adapt', 234],
- ['showcasing', 'showcase', 234],
- ['neighbouring', 'neighbour', 232],
- ['shifting', 'shift', 227],
- ['allocating', 'allocate', 227],
- ['authorizing', 'authorize', 226],
- ['resolving', 'resolve', 226],
- ['preceding', 'precede', 226],
- ['costing', 'cost', 226],
- ['approving', 'approve', 225],
- ['specifying', 'specify', 224],
- ['utilizing', 'utilize', 223],
- ['editing', 'edit', 223],
- ['branding', 'brand', 223],
- ['volunteering', 'volunteer', 223],
- ['pressing', 'press', 221],
- ['failing', 'fail', 219],
- ['upgrading', 'upgrade', 219],
- ['minimizing', 'minimize', 219],
- ['avoiding', 'avoid', 218],
- ['clarifying', 'clarify', 218],
- ['lacking', 'lack', 214],
- ['emphasizing', 'emphasize', 214],
- ['differing', 'differ', 213],
- ['initiating', 'initiate', 212],
- ['announcing', 'announce', 212],
- ['feeding', 'feed', 210],
- ['farming', 'farm', 210],
- ['stimulating', 'stimulate', 209],
- ['sitting', 'sit', 207],
- ['happening', 'happen', 206],
- ['educating', 'educate', 205],
- ['viewing', 'view', 205],
- ['exercising', 'exercise', 202],
- ['summarizing', 'summarize', 201],
- ['regulating', 'regulate', 200],
- ['residing', 'reside', 199],
- ['suffering', 'suffer', 199],
- ['commencing', 'commence', 199],
- ['permitting', 'permit', 198],
- ['advising', 'advise', 197],
- ['pruning', 'prune', 197],
- ['specializing', 'specialize', 196],
- ['expressing', 'express', 195],
- ['breeding', 'breed', 195],
- ['broadening', 'broaden', 194],
- ['supplying', 'supply', 194],
- ['drying', 'dry', 194],
- ['earning', 'earn', 194],
- ['licensing', 'license', 193],
- ['modelling', 'model', 192],
- ['contracting', 'contract', 190],
- ['financing', 'finance', 190],
- ['climbing', 'climb', 190],
- ['adjusting', 'adjust', 189],
- ['undergoing', 'undergo', 189],
- ['bridging', 'bridge', 189],
- ['screening', 'screen', 188],
- ['detailing', 'detail', 188],
- ['directing', 'direct', 187],
- ['proceeding', 'proceed', 187],
- ['capturing', 'capture', 187],
- ['mailing', 'mail', 186],
- ['demanding', 'demand', 186],
- ['bearing', 'bear', 186],
- ['outsourcing', 'outsource', 186],
- ['realizing', 'realize', 186],
- ['complying', 'comply', 185],
- ['documenting', 'document', 185],
- ['solving', 'solve', 185],
- ['passing', 'pass', 185],
- ['enforcing', 'enforce', 185],
- ['fighting', 'fight', 183],
- ['relying', 'rely', 183],
- ['watching', 'watch', 183],
- ['malting', 'malt', 182],
- ['mentoring', 'mentore', 181],
- ['clearing', 'clear', 180],
- ['balancing', 'balance', 180],
- ['overseeing', 'oversee', 179],
- ['broadcasting', 'broadcast', 178],
- ['acknowledging', 'acknowledge', 177],
- ['pooling', 'pool', 177],
- ['laying', 'lay', 176],
- ['transmitting', 'transmit', 176],
- ['eating', 'eat', 176],
- ['mixing', 'mix', 176],
- ['transforming', 'transform', 174],
- ['recommending', 'recommend', 172],
- ['packing', 'pack', 171],
- ['approaching', 'approach', 170],
- ['verifying', 'verify', 170],
- ['combating', 'combat', 169],
- ['renewing', 'renew', 169],
- ['spraying', 'spray', 168],
- ['stemming', 'stem', 167],
- ['averaging', 'average', 167],
- ['infringing', 'infringe', 167],
- ['releasing', 'release', 166],
- ['betting', 'bet', 166],
- ['distinguishing', 'distinguish', 165],
- ['lowering', 'lower', 164],
- ['networking', 'network', 163],
- ['binding', 'bind', 163],
- ['imposing', 'impose', 161],
- ['furthering', 'further', 160],
- ['attaining', 'attain', 160],
- ['committing', 'commit', 159],
- ['researching', 'research', 159],
- ['coding', 'code', 159],
- ['telling', 'tell', 158],
- ['checking', 'check', 158],
- ['wanting', 'want', 155],
- ['certifying', 'certify', 155],
- ['loading', 'load', 154],
- ['listing', 'list', 154],
- ['booking', 'book', 154],
- ['nurturing', 'nurture', 152],
- ['bullying', 'bully', 151],
- ['staying', 'stay', 151],
- ['sourcing', 'source', 151],
- ['dividing', 'divide', 151],
- ['streaming', 'stream', 150],
- ['crushing', 'crush', 150],
- ['benchmarking', 'benchmark', 149],
- ['restricting', 'restrict', 148],
- ['optimizing', 'optimize', 148],
- ['answering', 'answer', 147],
- ['rounding', 'round', 146],
- ['agreeing', 'agree', 146],
- ['recurring', 'recur', 146],
- ['designating', 'designate', 145],
- ['expecting', 'expect', 145],
- ['saving', 'save', 144],
- ['flowing', 'flow', 143],
- ['impacting', 'impact', 143],
- ['flying', 'fly', 143],
- ['awarding', 'award', 143],
- ['accelerating', 'accelerate', 142],
- ['spreading', 'spread', 142],
- ['prohibiting', 'prohibit', 141],
- ['restoring', 'restore', 140],
- ['functioning', 'function', 139],
- ['misleading', 'mislead', 139],
- ['streamlining', 'streamline', 138],
- ['citing', 'cite', 137],
- ['dying', 'die', 137],
- ['aiming', 'aim', 136],
- ['messaging', 'message', 136],
- ['reproducing', 'reproduce', 136],
- ['storing', 'store', 136],
- ['signaling', 'signal', 136],
- ['encompassing', 'encompass', 135],
- ['sporting', 'sport', 135],
- ['pumping', 'pump', 135],
- ['doping', 'dope', 134],
- ['sampling', 'sample', 133],
- ['revising', 'revise', 133],
- ['modifying', 'modify', 133],
- ['retiring', 'retire', 133],
- ['hearing', 'hear', 132],
- ['printing', 'print', 131],
- ['detecting', 'detect', 131],
- ['rolling', 'roll', 128],
- ['mounting', 'mount', 128],
- ['drinking', 'drink', 128],
- ['baking', 'bake', 128],
- ['dropping', 'drop', 127],
- ['converting', 'convert', 127],
- ['alleging', 'allege', 127],
- ['advocating', 'advocate', 126],
- ['welding', 'weld', 126],
- ['recovering', 'recover', 126],
- ['assembling', 'assemble', 126],
- ['struggling', 'struggle', 125],
- ['finishing', 'finish', 125],
- ['guiding', 'guide', 124],
- ['embracing', 'embrace', 123],
- ['cataloguing', 'catalogue', 123],
- ['stabilizing', 'stabilize', 123],
- ['modernizing', 'modernize', 123],
- ['awaiting', 'await', 122],
- ['steering', 'steer', 122],
- ['nominating', 'nominate', 122],
- ['ensuing', 'ensue', 121],
- ['wearing', 'wear', 121],
- ['carding', 'card', 121],
- ['clicking', 'click', 120],
- ['slowing', 'slow', 120],
- ['forecasting', 'forecast', 120],
- ['separating', 'separate', 119],
- ['consolidating', 'consolidate', 119],
- ['assigning', 'assign', 119],
- ['antidumping', 'antidump', 119],
- ['advertizing', 'advertize', 118],
- ['safeguarding', 'safeguard', 117],
- ['declaring', 'declare', 116],
- ['coping', 'cope', 116],
- ['scanning', 'scan', 115],
- ['forging', 'forge', 115],
- ['arguing', 'argue', 114],
- ['prevailing', 'prevail', 114],
- ['enriching', 'enrich', 113],
- ['questioning', 'question', 113],
- ['needing', 'need', 112],
- ['counting', 'count', 112],
- ['harmonizing', 'harmonize', 111],
- ['enjoying', 'enjoy', 111],
- ['shrinking', 'shrink', 111],
- ['unloading', 'unload', 111],
- ['constructing', 'construct', 110],
- ['walking', 'walk', 109],
- ['displaying', 'display', 109],
- ['interviewing', 'interview', 109],
- ['pushing', 'push', 108],
- ['proving', 'prove', 108],
- ['valuing', 'value', 108],
- ['locating', 'locate', 107],
- ['illustrating', 'illustrate', 107],
- ['mobilizing', 'mobilize', 106],
- ['multiplying', 'multiply', 106],
- ['dating', 'date', 106],
- ['shooting', 'shoot', 106],
- ['simplifying', 'simplify', 106],
- ['diminishing', 'diminish', 105],
- ['pointing', 'point', 105],
- ['boosting', 'boost', 105],
- ['promising', 'promise', 105],
- ['discovering', 'discover', 105],
- ['breastfeeding', 'breastfeed', 105],
- ['tabling', 'table', 104],
- ['hoping', 'hope', 104],
- ['diversifying', 'diversify', 104],
- ['offsetting', 'offset', 103],
- ['trapping', 'trap', 102],
- ['striving', 'strive', 102],
- ['cooperating', 'cooperate', 101],
- ['fundraising', 'fundrais', 101],
- ['cooling', 'cool', 100],
- ['formulating', 'formulate', 100],
- ['switching', 'switch', 100],
- ['surviving', 'survive', 100],
- ['scouting', 'scout', 100],
- ['maturing', 'mature', 99],
- ['grinding', 'grind', 99],
- ['doubling', 'double', 98],
- ['renting', 'rent', 97],
- ['interacting', 'interact', 97],
- ['scoring', 'score', 97],
- ['departing', 'depart', 97],
- ['sealing', 'seal', 97],
- ['positioning', 'position', 96],
- ['stopping', 'stop', 96],
- ['commemorating', 'commemorate', 96],
- ['exposing', 'expose', 96],
- ['compiling', 'compile', 95],
- ['refining', 'refine', 95],
- ['exploiting', 'exploit', 95],
- ['adhering', 'adhere', 95],
- ['heating', 'heat', 95],
- ['intoxicating', 'intoxicate', 95],
- ['defending', 'defend', 95],
- ['casing', 'case', 95],
- ['lobbying', 'lobby', 94],
- ['feeling', 'feel', 94],
- ['routing', 'rout', 93],
- ['overcoming', 'overcome', 93],
- ['practising', 'practise', 92],
- ['compromising', 'compromise', 92],
- ['arranging', 'arrange', 92],
- ['terminating', 'terminate', 92],
- ['warehousing', 'warehouse', 92],
- ['commissioning', 'commission', 91],
- ['confronting', 'confront', 90],
- ['forcing', 'force', 90],
- ['anticipating', 'anticipate', 90],
- ['trending', 'trend', 90],
- ['appealing', 'appeal', 89],
- ['soliciting', 'solicit', 89],
- ['settling', 'settle', 89],
- ['tracing', 'trace', 89],
- ['counterfeiting', 'counterfeit', 89],
- ['floating', 'float', 88],
- ['analysing', 'analyse', 87],
- ['peacekeeping', 'peacekeep', 87],
- ['filtering', 'filter', 87],
- ['withdrawing', 'withdraw', 87],
- ['amounting', 'amount', 87],
- ['empowering', 'empower', 87],
- ['leaching', 'leach', 87],
- ['exchanging', 'exchange', 86],
- ['motivating', 'motivate', 86],
- ['predicting', 'predict', 86],
- ['escalating', 'escalate', 86],
- ['guaranteeing', 'guarantee', 85],
- ['aligning', 'align', 85],
- ['numbering', 'number', 85],
- ['spanning', 'span', 84],
- ['exhibiting', 'exhibit', 84],
- ['lading', 'lade', 84],
- ['assuring', 'assure', 83],
- ['washing', 'wash', 83],
- ['rendering', 'render', 82],
- ['bonding', 'bond', 82],
- ['insulating', 'insulate', 82],
- ['finalizing', 'finalize', 82],
- ['disclosing', 'disclose', 82],
- ['harming', 'harm', 82],
- ['practicing', 'practice', 81],
- ['burgeoning', 'burgeon', 80],
- ['manufacturing', 'manufacture', 80],
- ['supervising', 'supervise', 80],
- ['caring', 'care', 80],
- ['stamping', 'stamp', 80],
- ['coasting', 'coast', 80],
- ['circulating', 'circulate', 79],
- ['appointing', 'appoint', 79],
- ['pioneering', 'pioneer', 79],
- ['harnessing', 'harness', 79],
- ['charging', 'charge', 79],
- ['sorting', 'sort', 78],
- ['executing', 'execute', 78],
- ['projecting', 'project', 78],
- ['altering', 'alter', 78],
- ['mapping', 'map', 77],
- ['filmmaking', 'filmmak', 77],
- ['stereotyping', 'stereotype', 77],
- ['incurring', 'incur', 76],
- ['correcting', 'correct', 76],
- ['overwintering', 'overwinter', 76],
- ['structuring', 'structure', 75],
- ['favouring', 'favour', 75],
- ['tackling', 'tackle', 75],
- ['honouring', 'honour', 75],
- ['servicing', 'service', 74],
- ['soaring', 'soar', 74],
- ['deteriorating', 'deteriorate', 74],
- ['rotating', 'rotate', 74],
- ['mowing', 'mow', 74],
- ['believing', 'believe', 73],
- ['reforming', 'reform', 73],
- ['accommodating', 'accommodate', 73],
- ['concentrating', 'concentrate', 73],
- ['installing', 'install', 73],
- ['forwarding', 'forward', 73],
- ['intending', 'intend', 73],
- ['conserving', 'conserve', 73],
- ['presiding', 'preside', 72],
- ['emanating', 'emanate', 72],
- ['judging', 'judge', 72],
- ['sequencing', 'sequence', 72],
- ['withholding', 'withhold', 72],
- ['attesting', 'attest', 72],
- ['staffing', 'staff', 71],
- ['mentioning', 'mention', 71],
- ['computing', 'compute', 71],
- ['commenting', 'comment', 71],
- ['intervening', 'intervene', 70],
- ['capitalizing', 'capitalize', 70],
- ['logging', 'log', 70],
- ['progressing', 'progress', 70],
- ['denying', 'deny', 69],
- ['deepening', 'deepen', 69],
- ['picking', 'pick', 69],
- ['opposing', 'oppose', 69],
- ['distorting', 'distort', 69],
- ['nursing', 'nurse', 69],
- ['instituting', 'institute', 68],
- ['mitigating', 'mitigate', 68],
- ['trading', 'trade', 68],
- ['reversing', 'reverse', 68],
- ['decisionmaking', 'decisionmak', 68],
- ['fixing', 'fix', 68],
- ['deducting', 'deduct', 68],
- ['articulating', 'articulate', 67],
- ['delaying', 'delay', 67],
- ['mountaineering', 'mountaineer', 67],
- ['conveying', 'convey', 67],
- ['graduating', 'graduate', 67],
- ['rebuilding', 'rebuild', 66],
- ['validating', 'validate', 66],
- ['hiking', 'hike', 66],
- ['weakening', 'weaken', 66],
- ['eradicating', 'eradicate', 66],
- ['observing', 'observe', 65],
- ['classifying', 'classify', 65],
- ['scheduling', 'schedule', 65],
- ['naming', 'name', 65],
- ['reconciling', 'reconcile', 65],
- ['dispensing', 'dispense', 64],
- ['cultivating', 'cultivate', 64],
- ['satisfying', 'satisfy', 64],
- ['staging', 'stage', 63],
- ['inspecting', 'inspect', 63],
- ['stressing', 'stress', 62],
- ['revitalizing', 'revitalize', 62],
- ['blocking', 'block', 62],
- ['yielding', 'yield', 62],
- ['tapping', 'tap', 62],
- ['voting', 'vote', 62],
- ['packaging', 'package', 62],
- ['lodging', 'lodge', 62],
- ['killing', 'kill', 62],
- ['cloning', 'clon', 62],
- ['violating', 'violate', 62],
- ['accruing', 'accrue', 62],
- ['photocopying', 'photocopy', 62],
- ['riding', 'ride', 61],
- ['destroying', 'destroy', 61],
- ['retraining', 'retrain', 61],
- ['enacting', 'enact', 60],
- ['formatting', 'format', 60],
- ['succeeding', 'succeed', 60],
- ['subtracting', 'subtract', 60],
- ['merging', 'merge', 60],
- ['copying', 'copy', 60],
- ['officiating', 'officiate', 60],
- ['letting', 'let', 59],
- ['justifying', 'justify', 59],
- ['composting', 'compost', 59],
- ['possessing', 'possess', 59],
- ['lagging', 'lag', 59],
- ['differentiating', 'differentiate', 59],
- ['surveying', 'survey', 59],
- ['moulding', 'mould', 59],
- ['thanking', 'thank', 58],
- ['refusing', 'refuse', 58],
- ['bidding', 'bid', 58],
- ['striking', 'strike', 58],
- ['constituting', 'constitute', 58],
- ['widening', 'widen', 58],
- ['blending', 'blend', 58],
- ['innovating', 'innovate', 58],
- ['stocking', 'stock', 58],
- ['repairing', 'repair', 57],
- ['sawing', 'saw', 57],
- ['wrapping', 'wrap', 57],
- ['commercializing', 'commercialize', 56],
- ['ranking', 'rank', 56],
- ['posing', 'pose', 56],
- ['patenting', 'patent', 56],
- ['lending', 'lend', 56],
- ['inserting', 'insert', 55],
- ['appreciating', 'appreciate', 55],
- ['fuelling', 'fuel', 55],
- ['invoicing', 'invoice', 55],
- ['thinning', 'thin', 55],
- ['lingering', 'linger', 55],
- ['stepping', 'step', 55],
- ['sliding', 'slide', 55],
- ['drilling', 'drill', 54],
- ['notifying', 'notify', 54],
- ['founding', 'found', 54],
- ['surpassing', 'surpass', 54],
- ['impeding', 'impede', 54],
- ['complementing', 'complement', 54],
- ['depicting', 'depict', 54],
- ['lasting', 'last', 53],
- ['transplanting', 'transplant', 53],
- ['stacking', 'stack', 53],
- ['deriving', 'derive', 52],
- ['owning', 'own', 52],
- ['quoting', 'quote', 52],
- ['consuming', 'consume', 52],
- ['alternating', 'alternate', 51],
- ['prototyping', 'prototyp', 51],
- ['auditing', 'audit', 51],
- ['restructuring', 'restructure', 51],
- ['undermining', 'undermine', 51],
- ['exempting', 'exempt', 51],
- ['mulching', 'mulch', 51],
- ['dressing', 'dress', 51],
- ['hitting', 'hit', 50],
- ['phasing', 'phase', 50],
- ['pulling', 'pull', 50],
- ['weaving', 'weave', 50],
- ['milling', 'mill', 50],
- ['enrolling', 'enroll', 50],
- ['filming', 'film', 49],
- ['machining', 'machine', 49],
- ['healing', 'heal', 49],
- ['characterizing', 'characterize', 49],
- ['internationalizing', 'internationalize', 49],
- ['borrowing', 'borrow', 48],
- ['conferencing', 'conference', 48],
- ['sensing', 'sense', 48],
- ['peaking', 'peak', 48],
- ['contemplating', 'contemplate', 48],
- ['underpinning', 'underpin', 48],
- ['tanning', 'tan', 48],
- ['refrigerating', 'refrigerate', 48],
- ['devoting', 'devote', 47],
- ['harvesting', 'harvest', 47],
- ['championing', 'champion', 47],
- ['alleviating', 'alleviate', 47],
- ['compensating', 'compensate', 47],
- ['tying', 'tie', 47],
- ['decorating', 'decorate', 47],
- ['crosscutting', 'crosscut', 47],
- ['ignoring', 'ignore', 46],
- ['extracting', 'extract', 46],
- ['easing', 'ease', 46],
- ['dedicating', 'dedicate', 46],
- ['embarking', 'embark', 46],
- ['prompting', 'prompt', 46],
- ['cooking', 'cook', 46],
- ['eroding', 'erode', 46],
- ['narrowing', 'narrow', 46],
- ['occupying', 'occupy', 46],
- ['attaching', 'attach', 46],
- ['implying', 'imply', 46],
- ['duplicating', 'duplicate', 46],
- ['slaughtering', 'slaughter', 46],
- ['upholding', 'uphold', 45],
- ['affirming', 'affirm', 45],
- ['hauling', 'haul', 45],
- ['fluctuating', 'fluctuate', 45],
- ['lifting', 'lift', 45],
- ['convening', 'convene', 45],
- ['conforming', 'conform', 45],
- ['mining', 'mine', 44],
- ['rejecting', 'reject', 44],
- ['substantiating', 'substantiate', 44],
- ['liaising', 'liaise', 43],
- ['devising', 'devise', 43],
- ['navigating', 'navigate', 43],
- ['catching', 'catch', 43],
- ['revealing', 'reveal', 43],
- ['racing', 'race', 43],
- ['dampening', 'dampen', 43],
- ['nesting', 'nest', 43],
- ['resembling', 'resemble', 43],
- ['curing', 'cure', 43],
- ['disposing', 'dispose', 43],
- ['sounding', 'sound', 43],
- ['sweetening', 'sweeten', 43],
- ['sowing', 'sow', 43],
- ['tutoring', 'tutor', 43],
- ['pricing', 'price', 42],
- ['revisiting', 'revisit', 42],
- ['grouping', 'group', 42],
- ['substituting', 'substitute', 42],
- ['thriving', 'thrive', 42],
- ['hedging', 'hedge', 42],
- ['lining', 'line', 42],
- ['coaching', 'coach', 42],
- ['netting', 'net', 42],
- ['furnishing', 'furnish', 42],
- ['polishing', 'polish', 42],
- ['watering', 'water', 42],
- ['supplementing', 'supplement', 41],
- ['subscribing', 'subscribe', 41],
- ['spinning', 'spin', 41],
- ['synthesizing', 'synthesize', 41],
- ['rethinking', 'rethink', 41],
- ['intensifying', 'intensify', 41],
- ['reciprocating', 'reciprocate', 41],
- ['rescinding', 'rescind', 41],
- ['ratifying', 'ratify', 41],
- ['offending', 'offend', 40],
- ['charting', 'chart', 40],
- ['deploying', 'deploy', 40],
- ['nearing', 'near', 40],
- ['portraying', 'portray', 40],
- ['catering', 'cater', 40],
- ['damaging', 'damage', 40],
- ['casting', 'cast', 40],
- ['blowing', 'blow', 40],
- ['ruling', 'rule', 40],
- ['fleeing', 'flee', 40],
- ['culminating', 'culminate', 40],
- ['flowering', 'flower', 40],
- ['discharging', 'discharge', 39],
- ['converging', 'converge', 39],
- ['spotting', 'spot', 39],
- ['ticketing', 'ticket', 39],
- ['quantifying', 'quantify', 39],
- ['rating', 'rate', 39],
- ['aiding', 'aid', 39],
- ['bending', 'bend', 39],
- ['relieving', 'relieve', 39],
- ['quarrying', 'quarry', 39],
- ['levelling', 'level', 38],
- ['basing', 'base', 38],
- ['wholesaling', 'wholesale', 38],
- ['browsing', 'browse', 38],
- ['leasing', 'lease', 38],
- ['gauging', 'gauge', 38],
- ['purifying', 'purify', 38],
- ['interfering', 'interfere', 38],
- ['lubricating', 'lubricate', 38],
- ['exiting', 'exit', 38],
- ['preferring', 'prefer', 37],
- ['discouraging', 'discourage', 37],
- ['camping', 'camp', 37],
- ['spawning', 'spawn', 37],
- ['bundling', 'bundle', 37],
- ['conferring', 'confer', 37],
- ['touching', 'touch', 37],
- ['popping', 'pop', 37],
- ['effecting', 'effect', 37],
- ['inhibiting', 'inhibit', 37],
- ['chewing', 'chew', 37],
- ['underlining', 'underline', 36],
- ['debriefing', 'debrief', 36],
- ['contrasting', 'contrast', 36],
- ['stretching', 'stretch', 36],
- ['warning', 'warn', 36],
- ['summing', 'sum', 36],
- ['witnessing', 'witness', 36],
- ['disappearing', 'disappear', 36],
- ['chairing', 'chair', 36],
- ['mating', 'mate', 36],
- ['plaiting', 'plait', 36],
- ['divorcing', 'divorce', 35],
- ['piloting', 'pilot', 35],
- ['speeding', 'speed', 35],
- ['cancelling', 'cancel', 35],
- ['digitizing', 'digitize', 35],
- ['replicating', 'replicate', 35],
- ['affording', 'afford', 35],
- ['taxing', 'tax', 35],
- ['redefining', 'redefin', 35],
- ['opting', 'opt', 35],
- ['constraining', 'constrain', 35],
- ['publicizing', 'publicize', 35],
- ['burning', 'burn', 35],
- ['excavating', 'excavate', 35],
- ['consenting', 'consent', 35],
- ['grazing', 'graze', 35],
- ['yellowing', 'yellow', 35],
- ['ripening', 'ripen', 35],
- ['songwriting', 'songwrite', 35],
- ['standardizing', 'standardize', 34],
- ['reminding', 'remind', 34],
- ['remembering', 'remember', 34],
- ['repositioning', 'reposition', 34],
- ['tightening', 'tighten', 34],
- ['lessening', 'lessen', 34],
- ['circumventing', 'circumvent', 34],
- ['seizing', 'seize', 34],
- ['referencing', 'reference', 34],
- ['locking', 'lock', 34],
- ['sterilizing', 'sterilize', 34],
- ['dyeing', 'dye', 34],
- ['tending', 'tend', 33],
- ['videoconferencing', 'videoconference', 33],
- ['diagnosing', 'diagnose', 33],
- ['reacting', 'react', 33],
- ['descending', 'descend', 33],
- ['looming', 'loom', 33],
- ['waiving', 'waive', 33],
- ['surging', 'surge', 33],
- ['fitting', 'fit', 33],
- ['clustering', 'cluster', 33],
- ['lying', 'lie', 33],
- ['stalking', 'stalk', 33],
- ['wilting', 'wilt', 33],
- ['backing', 'back', 33],
- ['stitching', 'stitch', 33],
- ['tailoring', 'tailor', 32],
- ['rooting', 'root', 32],
- ['migrating', 'migrate', 32],
- ['hurting', 'hurt', 32],
- ['rebounding', 'rebound', 32],
- ['expediting', 'expedite', 32],
- ['unveiling', 'unveil', 32],
- ['canoeing', 'canoe', 32],
- ['accumulating', 'accumulate', 32],
- ['deterring', 'deter', 32],
- ['immigrating', 'immigrate', 32],
- ['attacking', 'attack', 32],
- ['reaffirming', 'reaffirm', 32],
- ['fencing', 'fence', 32],
- ['capping', 'cap', 32],
- ['colouring', 'colour', 32],
- ['germinating', 'germinate', 32],
- ['freezing', 'freeze', 32],
- ['remedying', 'remedy', 31],
- ['absorbing', 'absorb', 31],
- ['splitting', 'split', 31],
- ['boating', 'boat', 31],
- ['equipping', 'equip', 31],
- ['typing', 'type', 31],
- ['formalizing', 'formalize', 31],
- ['scaling', 'scale', 31],
- ['defaulting', 'default', 31],
- ['soldering', 'solder', 31],
- ['knitting', 'knit', 31],
- ['decoding', 'decode', 31],
- ['fishing', 'fish', 30],
- ['sacrificing', 'sacrifice', 30],
- ['renovating', 'renovate', 30],
- ['hanging', 'hang', 30],
- ['augmenting', 'augment', 30],
- ['relaxing', 'relax', 30],
- ['endorsing', 'endorse', 30],
- ['shortening', 'shorten', 30],
- ['recycling', 'recycle', 30],
- ['repeating', 'repeat', 30],
- ['hindering', 'hinder', 30],
- ['undercutting', 'undercut', 30],
- ['fingerprinting', 'fingerprint', 30],
- ['displacing', 'displace', 30],
- ['dismantling', 'dismantle', 30],
- ['emitting', 'emit', 30],
- ['countering', 'counter', 30],
- ['cracking', 'crack', 30],
- ['stunting', 'stunt', 30],
- ['flavouring', 'flavour', 30],
- ['scripting', 'script', 29],
- ['injecting', 'inject', 29],
- ['twinning', 'twin', 29],
- ['breathing', 'breathe', 29],
- ['boarding', 'board', 29],
- ['boiling', 'boil', 29],
- ['ticking', 'tick', 29],
- ['greeting', 'greet', 29],
- ['triggering', 'trigger', 29],
- ['rewarding', 'reward', 29],
- ['fruiting', 'fruit', 29],
- ['stipulating', 'stipulate', 29],
- ['threading', 'thread', 29],
- ['experimenting', 'experiment', 28],
- ['blurring', 'blur', 28],
- ['redesigning', 'redesign', 28],
- ['paging', 'page', 28],
- ['jumping', 'jump', 28],
- ['crowding', 'crowd', 28],
- ['associating', 'associate', 28],
- ['carving', 'carve', 28],
- ['freeing', 'free', 28],
- ['accomplishing', 'accomplish', 28],
- ['recalling', 'recall', 28],
- ['penetrating', 'penetrate', 28],
- ['tubing', 'tube', 28],
- ['stiffening', 'stiffen', 28],
- ['discriminating', 'discriminate', 28],
- ['framing', 'frame', 28],
- ['spearheading', 'spearhead', 28],
- ['disabling', 'disable', 28],
- ['keying', 'key', 28],
- ['flaming', 'flame', 28],
- ['tripling', 'triple', 28],
- ['sizing', 'size', 28],
- ['outpacing', 'outpace', 27],
- ['expiring', 'expire', 27],
- ['attributing', 'attribute', 27],
- ['skating', 'skate', 27],
- ['diverting', 'divert', 27],
- ['insisting', 'insist', 27],
- ['golfing', 'golf', 27],
- ['reaping', 'reap', 27],
- ['urging', 'urge', 27],
- ['winding', 'wind', 27],
- ['lighting', 'light', 27],
- ['signifying', 'signify', 27],
- ['debating', 'debate', 27],
- ['weighting', 'weight', 27],
- ['procuring', 'procure', 27],
- ['compounding', 'compound', 27],
- ['decommissioning', 'decommission', 27],
- ['embodying', 'embody', 27],
- ['dispersing', 'disperse', 27],
- ['boring', 'bore', 27],
- ['centralizing', 'centralize', 27],
- ['crafting', 'craft', 27],
- ['alerting', 'alert', 26],
- ['deferring', 'defer', 26],
- ['handing', 'hand', 26],
- ['curbing', 'curb', 26],
- ['discounting', 'discount', 26],
- ['asserting', 'assert', 26],
- ['shining', 'shine', 26],
- ['milking', 'milk', 26],
- ['grappling', 'grapple', 26],
- ['donating', 'donate', 26],
- ['tuning', 'tune', 26],
- ['proofreading', 'proofread', 26],
- ['lapsing', 'lapse', 26],
- ['slitting', 'slit', 26],
- ['ascending', 'ascend', 25],
- ['insuring', 'insure', 25],
- ['complicating', 'complicate', 25],
- ['dining', 'dine', 25],
- ['lapping', 'lap', 25],
- ['bathing', 'bath', 25],
- ['beating', 'beat', 25],
- ['stripping', 'strip', 25],
- ['transiting', 'transit', 25],
- ['tagging', 'tag', 25],
- ['plugging', 'plug', 25],
- ['mediating', 'mediate', 25],
- ['belting', 'belt', 25],
- ['injuring', 'injure', 25],
- ['reclaiming', 'reclaim', 25],
- ['repackaging', 'repackage', 25],
- ['rationing', 'ration', 25],
- ['retooling', 'retool', 25],
- ['subtitling', 'subtitle', 25],
- ['probing', 'probe', 24],
- ['draining', 'drain', 24],
- ['swimming', 'swim', 24],
- ['paving', 'pave', 24],
- ['complaining', 'complain', 24],
- ['overlapping', 'overlap', 24],
- ['administrating', 'administrate', 24],
- ['suspending', 'suspend', 24],
- ['barring', 'bar', 24],
- ['postponing', 'postpone', 24],
- ['moderating', 'moderate', 24],
- ['convincing', 'convince', 24],
- ['unwavering', 'unwaver', 24],
- ['unfolding', 'unfold', 24],
- ['manipulating', 'manipulate', 24],
- ['metering', 'meter', 24],
- ['disrupting', 'disrupt', 24],
- ['ranching', 'ranch', 24],
- ['mastering', 'master', 24],
- ['captioning', 'caption', 24],
- ['smelting', 'smelt', 24],
- ['tampering', 'tamper', 24],
- ['smoothing', 'smooth', 24],
- ['bleaching', 'bleach', 24],
- ['aggregating', 'aggregate', 24],
- ['arming', 'arm', 24],
- ['coinciding', 'coincide', 23],
- ['pairing', 'pair', 23],
- ['dwindling', 'dwindle', 23],
- ['docking', 'dock', 23],
- ['rafting', 'raft', 23],
- ['categorizing', 'categorize', 23],
- ['exerting', 'exert', 23],
- ['jeopardizing', 'jeopardize', 23],
- ['throwing', 'throw', 23],
- ['landscaping', 'landscape', 23],
- ['acceding', 'accede', 23],
- ['stealing', 'steal', 23],
- ['accrediting', 'accredit', 23],
- ['foregoing', 'forego', 23],
- ['sensitizing', 'sensitize', 23],
- ['dissolving', 'dissolve', 23],
- ['wrestling', 'wrestle', 23],
- ['extruding', 'extrude', 23],
- ['diverging', 'diverge', 23],
- ['grafting', 'graft', 23],
- ['fasting', 'fast', 23],
- ['transcribing', 'transcribe', 23],
- ['boxing', 'box', 23],
- ['detaining', 'detain', 23],
- ['forgetting', 'forget', 22],
- ['encoding', 'encode', 22],
- ['shedding', 'shed', 22],
- ['suppressing', 'suppress', 22],
- ['banning', 'ban', 22],
- ['stirring', 'stir', 22],
- ['gambling', 'gamble', 22],
- ['encountering', 'encounter', 22],
- ['simulating', 'simulate', 22],
- ['commuting', 'commute', 22],
- ['trimming', 'trim', 22],
- ['abandoning', 'abandon', 22],
- ['firing', 'fire', 22],
- ['scrambling', 'scramble', 22],
- ['ceasing', 'cease', 22],
- ['polluting', 'pollute', 22],
- ['precluding', 'preclude', 22],
- ['transacting', 'transact', 22],
- ['inducing', 'induce', 22],
- ['unpacking', 'unpack', 22],
- ['perforating', 'perforate', 22],
- ['licencing', 'licence', 22],
- ['realigning', 'realign', 22],
- ['splashing', 'splash', 22],
- ['decaying', 'decay', 22],
- ['coating', 'coat', 22],
- ['gluing', 'glue', 22],
- ['isolating', 'isolate', 21],
- ['blanketing', 'blanket', 21],
- ['slipping', 'slip', 21],
- ['worsening', 'worsen', 21],
- ['softening', 'soften', 21],
- ['escaping', 'escape', 21],
- ['drifting', 'drift', 21],
- ['hampering', 'hamper', 21],
- ['creeping', 'creep', 21],
- ['bolstering', 'bolster', 21],
- ['garnering', 'garner', 21],
- ['hiding', 'hide', 21],
- ['ionizing', 'ionize', 21],
- ['marrying', 'marry', 21],
- ['rebalancing', 'rebalance', 21],
- ['repaying', 'repay', 21],
- ['shearing', 'shear', 21],
- ['catalyzing', 'catalyze', 21],
- ['girdling', 'girdle', 21],
- ['confounding', 'confound', 21],
- ['piling', 'pile', 21],
- ['amplifying', 'amplify', 21],
- ['rationalizing', 'rationalize', 20],
- ['slicing', 'slice', 20],
- ['refreshing', 'refresh', 20],
- ['composing', 'compose', 20],
- ['astounding', 'astound', 20],
- ['discontinuing', 'discontinue', 20],
- ['subcontracting', 'subcontract', 20],
- ['underscoring', 'underscore', 20],
- ['shopping', 'shop', 20],
- ['flooding', 'flood', 20],
- ['abolishing', 'abolish', 20],
- ['factoring', 'factor', 20],
- ['conflicting', 'conflict', 20],
- ['towing', 'tow', 20],
- ['deserving', 'deserve', 20],
- ['sticking', 'stick', 20],
- ['embossing', 'emboss', 20],
- ['synchronizing', 'synchronize', 20],
- ['resuming', 'resume', 20],
- ['vetting', 'vet', 20],
- ['instructing', 'instruct', 20],
- ['calibrating', 'calibrate', 20],
- ['enclosing', 'enclose', 20],
- ['taping', 'tape', 20],
- ['ascertaining', 'ascertain', 20],
- ['predisposing', 'predispose', 20],
- ['farrowing', 'farrow', 20],
- ['planing', 'plane', 20],
- ['smoking', 'smoke', 20],
- ['activating', 'activate', 19],
- ['resorting', 'resort', 19],
- ['wondering', 'wonder', 19],
- ['neutralizing', 'neutralize', 19],
- ['automating', 'automate', 19],
- ['extenuating', 'extenuate', 19],
- ['relocating', 'relocate', 19],
- ['topping', 'top', 19],
- ['eliciting', 'elicit', 19],
- ['socializing', 'socialize', 19],
- ['trailing', 'trail', 19],
- ['enticing', 'entice', 19],
- ['dictating', 'dictate', 19],
- ['sleeping', 'sleep', 19],
- ['curling', 'curl', 19],
- ['starring', 'star', 19],
- ['babysitting', 'babysit', 19],
- ['solidifying', 'solidify', 19],
- ['uniting', 'unite', 19],
- ['aspiring', 'aspire', 19],
- ['trampling', 'trample', 19],
- ['teaming', 'team', 19],
- ['appraising', 'appraise', 19],
- ['delegating', 'delegate', 19],
- ['confining', 'confine', 19],
- ['fertilizing', 'fertilize', 19],
- ['reinstating', 'reinstate', 19],
- ['banding', 'band', 19],
- ['pickling', 'pickle', 19],
- ['tunnelling', 'tunnel', 19],
- ['piercing', 'pierce', 19],
- ['frying', 'fry', 19],
- ['redressing', 'redress', 19],
- ['engendering', 'engender', 19],
- ['prosecuting', 'prosecute', 18],
- ['sentencing', 'sentence', 18],
- ['depositing', 'deposit', 18],
- ['enduring', 'endure', 18],
- ['elevating', 'elevate', 18],
- ['rallying', 'rally', 18],
- ['flattening', 'flatten', 18],
- ['painting', 'paint', 18],
- ['dancing', 'dance', 18],
- ['airing', 'air', 18],
- ['gearing', 'gear', 18],
- ['ramping', 'ramp', 18],
- ['skyrocketing', 'skyrocket', 18],
- ['dominating', 'dominate', 18],
- ['tasting', 'taste', 18],
- ['pitching', 'pitch', 18],
- ['steaming', 'steam', 18],
- ['impairing', 'impair', 18],
- ['ventilating', 'ventilate', 18],
- ['damping', 'damp', 18],
- ['scouring', 'scour', 18],
- ['revoking', 'revoke', 18],
- ['contaminating', 'contaminate', 18],
- ['franchising', 'franchise', 18],
- ['deeming', 'deem', 18],
- ['zeroing', 'zero', 18],
- ['cohabiting', 'cohabit', 18],
- ['intersecting', 'intersect', 18],
- ['dubbing', 'dub', 18],
- ['merchandizing', 'merchandize', 18],
- ['adjudicating', 'adjudicate', 18],
- ['saluting', 'salute', 18],
- ['annealing', 'anneal', 18],
- ['dismissing', 'dismiss', 17],
- ['subjecting', 'subject', 17],
- ['excepting', 'except', 17],
- ['reorganizing', 'reorganize', 17],
- ['drumming', 'drum', 17],
- ['sanctioning', 'sanction', 17],
- ['elaborating', 'elaborate', 17],
- ['waning', 'wane', 17],
- ['restraining', 'restrain', 17],
- ['perpetuating', 'perpetuate', 17],
- ['curtailing', 'curtail', 17],
- ['illuminating', 'illuminate', 17],
- ['prolonging', 'prolong', 17],
- ['refuelling', 'refuel', 17],
- ['recognising', 'recognise', 17],
- ['brazing', 'braze', 17],
- ['galvanizing', 'galvanize', 17],
- ['amalgamating', 'amalgamate', 17],
- ['inciting', 'incite', 17],
- ['vending', 'vend', 17],
- ['reselling', 'resell', 17],
- ['customizing', 'customize', 17],
- ['canvassing', 'canvass', 17],
- ['microfilming', 'microfilm', 17],
- ['weeding', 'weed', 17],
- ['brokering', 'broker', 17],
- ['policymaking', 'policymak', 17],
- ['tilling', 'till', 17],
- ['rotting', 'rot', 17],
- ['melting', 'melt', 17],
- ['terracing', 'terrace', 17],
- ['sucking', 'suck', 17],
- ['reigning', 'reign', 17],
- ['aerating', 'aerate', 17],
- ['diluting', 'dilute', 17],
- ['backwashing', 'backwash', 17],
- ['admitting', 'admit', 17],
- ['underperforming', 'underperform', 17],
- ['resting', 'rest', 16],
- ['surfing', 'surf', 16],
- ['abusing', 'abuse', 16],
- ['interlocking', 'interlock', 16],
- ['embedding', 'embed', 16],
- ['billing', 'bill', 16],
- ['faxing', 'fax', 16],
- ['invading', 'invade', 16],
- ['distilling', 'distil', 16],
- ['swelling', 'swell', 16],
- ['tipping', 'tip', 16],
- ['electing', 'elect', 16],
- ['confusing', 'confuse', 16],
- ['reinvesting', 'reinvest', 16],
- ['spurring', 'spur', 16],
- ['hardening', 'harden', 16],
- ['bordering', 'border', 16],
- ['polarizing', 'polarize', 16],
- ['singing', 'sing', 16],
- ['resisting', 'resist', 16],
- ['necessitating', 'necessitate', 16],
- ['reopening', 'reopen', 16],
- ['pledging', 'pledge', 16],
- ['reshaping', 'reshape', 16],
- ['overarching', 'overarch', 16],
- ['wintering', 'winter', 16],
- ['modulating', 'modulate', 16],
- ['baling', 'bale', 16],
- ['threshing', 'thresh', 16],
- ['potting', 'pot', 16],
- ['landing', 'land', 16],
- ['remitting', 'remit', 16],
- ['sifting', 'sift', 16],
- ['penalizing', 'penalize', 16],
- ['boning', 'bone', 16],
- ['disregarding', 'disregard', 16],
- ['encapsulating', 'encapsulate', 16],
- ['rectifying', 'rectify', 16],
- ['concealing', 'conceal', 16],
- ['intercepting', 'intercept', 16],
- ['proclaiming', 'proclaim', 15],
- ['laminating', 'laminate', 15],
- ['figuring', 'figure', 15],
- ['paddling', 'paddle', 15],
- ['faring', 'fare', 15],
- ['depriving', 'deprive', 15],
- ['evidencing', 'evidence', 15],
- ['corresponding', 'correspond', 15],
- ['reeling', 'reel', 15],
- ['crimping', 'crimp', 15],
- ['edging', 'edge', 15],
- ['anchoring', 'anchor', 15],
- ['uncovering', 'uncover', 15],
- ['flourishing', 'flourish', 15],
- ['scratching', 'scratch', 15],
- ['honing', 'hone', 15],
- ['reinventing', 'reinvent', 15],
- ['mandating', 'mandate', 15],
- ['objecting', 'object', 15],
- ['revolving', 'revolve', 15],
- ['deleting', 'delete', 15],
- ['spelling', 'spell', 15],
- ['quitting', 'quit', 15],
- ['pouring', 'pour', 15],
- ['budgeting', 'budget', 15],
- ['teleconferencing', 'teleconference', 15],
- ['wasting', 'waste', 15],
- ['reallocating', 'reallocate', 15],
- ['sanding', 'sand', 15],
- ['shadowing', 'shadow', 15],
- ['punching', 'punch', 15],
- ['infecting', 'infect', 15],
- ['ploughing', 'plough', 15],
- ['disinfecting', 'disinfect', 15],
- ['wiping', 'wipe', 15],
- ['condensing', 'condense', 15],
- ['redistributing', 'redistribute', 15],
- ['housing', 'house', 15],
- ['fastening', 'fasten', 15],
- ['perfuming', 'perfume', 15],
- ['calendering', 'calender', 15],
- ['voicing', 'voice', 14],
- ['mooring', 'moor', 14],
- ['sinking', 'sink', 14],
- ['unlocking', 'unlock', 14],
- ['phoning', 'phone', 14],
- ['risking', 'risk', 14],
- ['heightening', 'heighten', 14],
- ['reserving', 'reserve', 14],
- ['breaching', 'breach', 14],
- ['depreciating', 'depreciate', 14],
- ['symbolizing', 'symbolize', 14],
- ['underwriting', 'underwrite', 14],
- ['regaining', 'regain', 14],
- ['depleting', 'deplete', 14],
- ['detracting', 'detract', 14],
- ['sprouting', 'sprout', 14],
- ['energizing', 'energize', 14],
- ['bagging', 'bag', 14],
- ['overturning', 'overturn', 14],
- ['entertaining', 'entertain', 14],
- ['provoking', 'provoke', 14],
- ['rehabilitating', 'rehabilitate', 14],
- ['fracturing', 'fracture', 14],
- ['desiring', 'desire', 14],
- ['retreading', 'retread', 14],
- ['steelmaking', 'steelmak', 14],
- ['revamping', 'revamp', 14],
- ['segregating', 'segregate', 14],
- ['crawling', 'crawl', 14],
- ['straightening', 'straighten', 14],
- ['worrying', 'worry', 14],
- ['perplexing', 'perplex', 14],
- ['conceptualizing', 'conceptualize', 14],
- ['monetizing', 'monetize', 14],
- ['watermarking', 'watermark', 14],
- ['humiliating', 'humiliate', 14],
- ['remanufacturing', 'remanufacture', 14],
- ['masking', 'mask', 13],
- ['dialing', 'dial', 13],
- ['exacerbating', 'exacerbate', 13],
- ['inspiring', 'inspire', 13],
- ['precipitating', 'precipitate', 13],
- ['equating', 'equate', 13],
- ['bypassing', 'bypass', 13],
- ['enlarging', 'enlarge', 13],
- ['omitting', 'omit', 13],
- ['liberalizing', 'liberalize', 13],
- ['luring', 'lure', 13],
- ['pressuring', 'pressure', 13],
- ['exploding', 'explode', 13],
- ['shaking', 'shake', 13],
- ['jogging', 'jog', 13],
- ['propelling', 'propel', 13],
- ['leaking', 'leak', 13],
- ['surrendering', 'surrender', 13],
- ['neglecting', 'neglect', 13],
- ['imparting', 'impart', 13],
- ['relaunching', 'relaunch', 13],
- ['channelling', 'channel', 13],
- ['remarking', 'remark', 13],
- ['forbidding', 'forbid', 13],
- ['disciplining', 'discipline', 13],
- ['roaming', 'roam', 13],
- ['clipping', 'clip', 13],
- ['arresting', 'arrest', 13],
- ['repealing', 'repeal', 13],
- ['expending', 'expend', 13],
- ['wetting', 'wet', 13],
- ['irrigating', 'irrigate', 13],
- ['decomposing', 'decompose', 13],
- ['renaming', 'rename', 13],
- ['ditching', 'ditch', 13],
- ['emptying', 'empty', 13],
- ['reassessing', 'reassess', 13],
- ['vaccinating', 'vaccinate', 13],
- ['bunching', 'bunch', 13],
- ['denigrating', 'denigrate', 13],
- ['sharpening', 'sharpen', 13],
- ['punishing', 'punish', 13],
- ['presuming', 'presume', 13],
- ['testifying', 'testify', 12],
- ['tolling', 'toll', 12],
- ['indexing', 'index', 12],
- ['retrieving', 'retrieve', 12],
- ['snowshoeing', 'snowshoe', 12],
- ['outperforming', 'outperform', 12],
- ['downsizing', 'downsize', 12],
- ['sparking', 'spark', 12],
- ['echoing', 'echo', 12],
- ['pinpointing', 'pinpoint', 12],
- ['reconsidering', 'reconsider', 12],
- ['overlooking', 'overlook', 12],
- ['relaying', 'relay', 12],
- ['enlisting', 'enlist', 12],
- ['perfecting', 'perfect', 12],
- ['branching', 'branch', 12],
- ['commending', 'commend', 12],
- ['pitting', 'pit', 12],
- ['defeating', 'defeat', 12],
- ['contravening', 'contravene', 12],
- ['congratulating', 'congratulate', 12],
- ['equalizing', 'equalize', 12],
- ['nourishing', 'nourish', 12],
- ['underfunding', 'underfund', 12],
- ['retailing', 'retail', 12],
- ['resurfacing', 'resurface', 12],
- ['plotting', 'plot', 12],
- ['lettering', 'letter', 12],
- ['burying', 'bury', 12],
- ['imputing', 'impute', 12],
- ['degrading', 'degrade', 12],
- ['flushing', 'flush', 12],
- ['crusting', 'crust', 12],
- ['spacing', 'space', 12],
- ['shading', 'shade', 12],
- ['notching', 'notch', 12],
- ['scalding', 'scald', 12],
- ['earmarking', 'earmark', 12],
- ['refilling', 'refill', 12],
- ['homogenizing', 'homogenize', 12],
- ['disputing', 'dispute', 12],
- ['kneading', 'knead', 12],
- ['sintering', 'sinter', 12],
- ['blinding', 'blind', 12],
- ['swearing', 'swear', 11],
- ['imaging', 'image', 11],
- ['rejuvenating', 'rejuvenate', 11],
- ['trawling', 'trawl', 11],
- ['abiding', 'abide', 11],
- ['plowing', 'plow', 11],
- ['scrutinizing', 'scrutinize', 11],
- ['segmenting', 'segment', 11],
- ['excelling', 'excel', 11],
- ['skiing', 'ski', 11],
- ['dreaming', 'dream', 11],
- ['exhilarating', 'exhilarate', 11],
- ['hunting', 'hunt', 11],
- ['disagreeing', 'disagree', 11],
- ['wandering', 'wander', 11],
- ['tilting', 'tilt', 11],
- ['rearing', 'rear', 11],
- ['overheating', 'overheat', 11],
- ['dipping', 'dip', 11],
- ['bustling', 'bustle', 11],
- ['swapping', 'swap', 11],
- ['recounting', 'recount', 11],
- ['erecting', 'erect', 11],
- ['redirecting', 'redirect', 11],
- ['halting', 'halt', 11],
- ['oscillating', 'oscillate', 11],
- ['stuffing', 'stuff', 11],
- ['quenching', 'quench', 11],
- ['noticing', 'notice', 11],
- ['reviving', 'revive', 11],
- ['refurbishing', 'refurbish', 11],
- ['vesting', 'vest', 11],
- ['invoking', 'invoke', 11],
- ['invalidating', 'invalidate', 11],
- ['compressing', 'compress', 11],
- ['venting', 'vent', 11],
- ['merchandising', 'merchandise', 11],
- ['divulging', 'divulge', 11],
- ['subsisting', 'subsist', 11],
- ['replying', 'reply', 11],
- ['flashing', 'flash', 11],
- ['straining', 'strain', 11],
- ['proofing', 'proof', 11],
- ['vaporizing', 'vaporize', 11],
- ['foraging', 'forage', 11],
- ['budding', 'bud', 11],
- ['staining', 'stain', 11],
- ['grooving', 'groove', 11],
- ['wounding', 'wound', 11],
- ['delineating', 'delineate', 11],
- ['lactating', 'lactate', 11],
- ['pleasing', 'please', 11],
- ['clotting', 'clot', 11],
- ['promulgating', 'promulgate', 11],
- ['legitimizing', 'legitimize', 11],
- ['demystifying', 'demystify', 11],
- ['pulping', 'pulp', 11],
- ['generalizing', 'generalize', 11],
- ['orienting', 'orient', 11],
- ['broaching', 'broach', 11],
- ['folding', 'fold', 11],
- ['birthing', 'birth', 11],
- ['braking', 'brake', 11],
- ['disfiguring', 'disfigure', 11],
- ['stifling', 'stifle', 10],
- ['boasting', 'boast', 10],
- ['timing', 'time', 10],
- ['reassuring', 'reassure', 10],
- ['vacationing', 'vacation', 10],
- ['sparing', 'spare', 10],
- ['regrouping', 'regroup', 10],
- ['tacking', 'tack', 10],
- ['chucking', 'chuck', 10],
- ['bleeding', 'bleed', 10],
- ['entrenching', 'entrench', 10],
- ['clamping', 'clamp', 10],
- ['cashing', 'cash', 10],
- ['gratifying', 'gratify', 10],
- ['maximising', 'maximise', 10],
- ['reprinting', 'reprint', 10],
- ['rinsing', 'rinse', 10],
- ['familiarizing', 'familiarize', 10],
- ['recouping', 'recoup', 10],
- ['cementing', 'cement', 10],
- ['scraping', 'scrape', 10],
- ['democratizing', 'democratize', 10],
- ['grasping', 'grasp', 10],
- ['defraying', 'defray', 10],
- ['normalizing', 'normalize', 10],
- ['weaning', 'wean', 10],
- ['extrapolating', 'extrapolate', 10],
- ['cycling', 'cycle', 10],
- ['disbursing', 'disburse', 10],
- ['endeavouring', 'endeavour', 10],
- ['molting', 'molt', 10],
- ['devolving', 'devolve', 10],
- ['blossoming', 'blossom', 10],
- ['wading', 'wade', 10],
- ['refuting', 'refute', 10],
- ['escorting', 'escort', 10],
- ['disembarking', 'disembark', 10],
- ['strapping', 'strap', 10],
- ['reclining', 'recline', 10],
- ['privatizing', 'privatize', 9],
- ['dredging', 'dredge', 9],
- ['abating', 'abate', 9],
- ['compelling', 'compel', 9],
- ['mirroring', 'mirror', 9],
- ['organising', 'organise', 9],
- ['warming', 'warm', 9],
- ['waving', 'wave', 9],
- ['tumbling', 'tumble', 9],
- ['battling', 'battle', 9],
- ['contending', 'contend', 9],
- ['intimidating', 'intimidate', 9],
- ['pampering', 'pamper', 9],
- ['lengthening', 'lengthen', 9],
- ['invigorating', 'invigorate', 9],
- ['spotlighting', 'spotlight', 9],
- ['apportioning', 'apportion', 9],
- ['authoring', 'authore', 9],
- ['persisting', 'persist', 9],
- ['tempering', 'temper', 9],
- ['preaching', 'preach', 9],
- ['vying', 'vie', 9],
- ['evaporating', 'evaporate', 9],
- ['crumbling', 'crumble', 9],
- ['bracing', 'brace', 9],
- ['bubbling', 'bubble', 9],
- ['grooming', 'groom', 9],
- ['reusing', 'reuse', 9],
- ['repatriating', 'repatriate', 9],
- ['unraveling', 'unravel', 9],
- ['piping', 'pipe', 9],
- ['engineering', 'engineer', 9],
- ['chipping', 'chip', 9],
- ['clogging', 'clog', 9],
- ['malfunctioning', 'malfunction', 9],
- ['alloying', 'alloy', 9],
- ['minding', 'mind', 9],
- ['appropriating', 'appropriate', 9],
- ['authenticating', 'authenticate', 9],
- ['videotaping', 'videotape', 9],
- ['warranting', 'warrant', 9],
- ['reprocessing', 'reprocess', 9],
- ['affixing', 'affix', 9],
- ['shattering', 'shatter', 9],
- ['falsifying', 'falsify', 9],
- ['bursting', 'burst', 9],
- ['reworking', 'rework', 9],
- ['renegotiating', 'renegotiate', 9],
- ['refocusing', 'refocus', 9],
- ['inventing', 'invent', 9],
- ['sculpting', 'sculpt', 9],
- ['economizing', 'economize', 9],
- ['encrypting', 'encrypt', 9],
- ['sheltering', 'shelter', 9],
- ['fogging', 'fog', 9],
- ['harrowing', 'harrow', 9],
- ['shredding', 'shred', 9],
- ['browning', 'brown', 9],
- ['bruising', 'bruise', 9],
- ['trucking', 'truck', 9],
- ['interrupting', 'interrupt', 9],
- ['denoting', 'denote', 9],
- ['surfacing', 'surface', 9],
- ['breading', 'bread', 9],
- ['fragmenting', 'fragment', 9],
- ['legislating', 'legislate', 9],
- ['frustrating', 'frustrate', 9],
- ['surprising', 'surprise', 9],
- ['gardening', 'garden', 9],
- ['bowling', 'bowl', 9],
- ['elucidating', 'elucidate', 9],
- ['blanking', 'blank', 9],
- ['stapling', 'staple', 9],
- ['felling', 'fell', 9],
- ['eviscerating', 'eviscerate', 9],
- ['imprinting', 'imprint', 9],
- ['hemming', 'hem', 9],
- ['sheeting', 'sheet', 9],
- ['puffing', 'puff', 9],
- ['kicking', 'kick', 8],
- ['imagining', 'imagine', 8],
- ['uttering', 'utter', 8],
- ['resubmitting', 'resubmit', 8],
- ['fallowing', 'fallow', 8],
- ['drowning', 'drown', 8],
- ['behaving', 'behave', 8],
- ['rewriting', 'rewrite', 8],
- ['polling', 'poll', 8],
- ['trekking', 'trek', 8],
- ['aggravating', 'aggravate', 8],
- ['hovering', 'hover', 8],
- ['encroaching', 'encroach', 8],
- ['persuading', 'persuade', 8],
- ['fading', 'fade', 8],
- ['stagnating', 'stagnate', 8],
- ['bucking', 'buck', 8],
- ['shutting', 'shut', 8],
- ['soaking', 'soak', 8],
- ['fearing', 'fear', 8],
- ['knocking', 'knock', 8],
- ['biting', 'bite', 8],
- ['banking', 'bank', 8],
- ['incubating', 'incubate', 8],
- ['globalizing', 'globalize', 8],
- ['thawing', 'thaw', 8],
- ['revolutionizing', 'revolutionize', 8],
- ['pounding', 'pound', 8],
- ['grabbing', 'grab', 8],
- ['delving', 'delve', 8],
- ['contesting', 'contest', 8],
- ['criticizing', 'criticize', 8],
- ['mourning', 'mourn', 8],
- ['manifesting', 'manifest', 8],
- ['decentralizing', 'decentralize', 8],
- ['reiterating', 'reiterate', 8],
- ['inquiring', 'inquire', 8],
- ['sewing', 'sew', 8],
- ['availing', 'avail', 8],
- ['relinquishing', 'relinquish', 8],
- ['silencing', 'silence', 8],
- ['patching', 'patch', 8],
- ['instilling', 'instill', 8],
- ['offloading', 'offload', 8],
- ['zoning', 'zone', 8],
- ['bolting', 'bolt', 8],
- ['meshing', 'mesh', 8],
- ['profiting', 'profit', 8],
- ['sequestering', 'sequester', 8],
- ['tabulating', 'tabulate', 8],
- ['dwarfing', 'dwarf', 8],
- ['bronzing', 'bronze', 8],
- ['digging', 'dig', 8],
- ['scarring', 'scar', 8],
- ['skinning', 'skin', 8],
- ['burrowing', 'burrow', 8],
- ['reorienting', 'reorient', 8],
- ['reasoning', 'reason', 8],
- ['grossing', 'gross', 8],
- ['reconditioning', 'recondition', 8],
- ['fermenting', 'ferment', 8],
- ['preexisting', 'preexist', 8],
- ['speculating', 'speculate', 8],
- ['averting', 'avert', 8],
- ['emulsifying', 'emulsify', 8],
- ['marinating', 'marinate', 8],
- ['marginalizing', 'marginalize', 8],
- ['smudging', 'smudge', 8],
- ['implicating', 'implicate', 8],
- ['vanishing', 'vanish', 8],
- ['engraving', 'engrave', 8],
- ['tearing', 'tear', 8],
- ['fusing', 'fuse', 8],
- ['slotting', 'slot', 8],
- ['concurring', 'concur', 8],
- ['spoofing', 'spoof', 8],
- ['decrypting', 'decrypt', 8],
- ['advertising', 'advertise', 8],
- ['interdicting', 'interdict', 8],
- ['foaming', 'foam', 8],
- ['dosing', 'dose', 8],
- ['interlining', 'interline', 8],
- ['burnishing', 'burnish', 8],
- ['singeing', 'singe', 8],
- ['electrogalvanizing', 'electrogalvanize', 8],
- ['trusting', 'trust', 7],
- ['overflowing', 'overflow', 7],
- ['immersing', 'immerse', 7],
- ['flocking', 'flock', 7],
- ['chatting', 'chat', 7],
- ['roughing', 'rough', 7],
- ['looping', 'loop', 7],
- ['outfitting', 'outfit', 7],
- ['receding', 'recede', 7],
- ['dragging', 'drag', 7],
- ['centering', 'center', 7],
- ['harbouring', 'harbour', 7],
- ['bumping', 'bump', 7],
- ['decelerating', 'decelerate', 7],
- ['venturing', 'venture', 7],
- ['alienating', 'alienate', 7],
- ['roasting', 'roast', 7],
- ['cabling', 'cable', 7],
- ['manoeuvring', 'manoeuvre', 7],
- ['occuring', 'occure', 7],
- ['firefighting', 'firefight', 7],
- ['chronicling', 'chronicle', 7],
- ['fabricating', 'fabricate', 7],
- ['obliging', 'oblige', 7],
- ['enlightening', 'enlighten', 7],
- ['rescheduling', 'reschedule', 7],
- ['destabilizing', 'destabilize', 7],
- ['resigning', 'resign', 7],
- ['caulking', 'caulk', 7],
- ['reordering', 'reorder', 7],
- ['diffusing', 'diffuse', 7],
- ['flooring', 'floor', 7],
- ['powering', 'power', 7],
- ['forgoing', 'forgo', 7],
- ['shoplifting', 'shoplift', 7],
- ['vulcanizing', 'vulcanize', 7],
- ['radiating', 'radiate', 7],
- ['subdividing', 'subdivide', 7],
- ['daunting', 'daunt', 7],
- ['uprooting', 'uproot', 7],
- ['discing', 'disc', 7],
- ['sanitizing', 'sanitize', 7],
- ['endangering', 'endanger', 7],
- ['buffering', 'buffer', 7],
- ['parking', 'park', 7],
- ['dispelling', 'dispel', 7],
- ['propagating', 'propagate', 7],
- ['fumigating', 'fumigate', 7],
- ['mottling', 'mottle', 7],
- ['lightening', 'lighten', 7],
- ['reapplying', 'reapply', 7],
- ['blaming', 'blame', 7],
- ['prejudging', 'prejudge', 7],
- ['flaking', 'flake', 7],
- ['depressing', 'depress', 7],
- ['trenching', 'trench', 7],
- ['dehydrating', 'dehydrate', 7],
- ['emulating', 'emulate', 7],
- ['conceiving', 'conceive', 7],
- ['hailing', 'hail', 7],
- ['unleashing', 'unleash', 7],
- ['upsetting', 'upset', 7],
- ['immunizing', 'immunize', 7],
- ['antagonizing', 'antagonize', 7],
- ['racking', 'rack', 7],
- ['typesetting', 'typeset', 7],
- ['hardworking', 'hardwork', 7],
- ['accentuating', 'accentuate', 7],
- ['awakening', 'awaken', 7],
- ['headlining', 'headline', 7],
- ['reprogramming', 'reprogram', 7],
- ['pasting', 'paste', 7],
- ['disassembling', 'disassemble', 7],
- ['assaulting', 'assault', 7],
- ['extinguishing', 'extinguish', 7],
- ['disobeying', 'disobey', 7],
- ['reuniting', 'reunite', 7],
- ['stigmatizing', 'stigmatize', 7],
- ['commingling', 'commingle', 7],
- ['icing', 'ice', 7],
- ['unlading', 'unlade', 7],
- ['detonating', 'detonate', 7],
- ['bunkering', 'bunker', 7],
- ['vulcanising', 'vulcanise', 7],
- ['descaling', 'descale', 7],
- ['priming', 'prime', 7],
- ['autoclaving', 'autoclave', 7],
- ['praising', 'praise', 6],
- ['twisting', 'twist', 6],
- ['scrubbing', 'scrub', 6],
- ['spilling', 'spill', 6],
- ['receipting', 'receipt', 6],
- ['telephoning', 'telephone', 6],
- ['bragging', 'brag', 6],
- ['replenishing', 'replenish', 6],
- ['materializing', 'materialize', 6],
- ['majoring', 'major', 6],
- ['sightseeing', 'sightsee', 6],
- ['emphasising', 'emphasise', 6],
- ['unwinding', 'unwind', 6],
- ['decompressing', 'decompress', 6],
- ['visualizing', 'visualize', 6],
- ['grounding', 'ground', 6],
- ['clouding', 'cloud', 6],
- ['actualizing', 'actualize', 6],
- ['stalling', 'stall', 6],
- ['billeting', 'billet', 6],
- ['lecturing', 'lecture', 6],
- ['conspiring', 'conspire', 6],
- ['rearranging', 'rearrange', 6],
- ['outstripping', 'outstrip', 6],
- ['interesting', 'interest', 6],
- ['plummeting', 'plummet', 6],
- ['plunging', 'plunge', 6],
- ['inflating', 'inflate', 6],
- ['corroborating', 'corroborate', 6],
- ['brightening', 'brighten', 6],
- ['raging', 'rage', 6],
- ['roving', 'rove', 6],
- ['stencilling', 'stencil', 6],
- ['rescuing', 'rescue', 6],
- ['daring', 'dare', 6],
- ['laughing', 'laugh', 6],
- ['busking', 'busk', 6],
- ['juggling', 'juggle', 6],
- ['sailing', 'sail', 6],
- ['predating', 'predate', 6],
- ['reconstructing', 'reconstruct', 6],
- ['conquering', 'conquer', 6],
- ['electroplating', 'electroplate', 6],
- ['alluding', 'allude', 6],
- ['nullifying', 'nullify', 6],
- ['contradicting', 'contradict', 6],
- ['recharging', 'recharg', 6],
- ['entitling', 'entitle', 6],
- ['impinging', 'impinge', 6],
- ['liquidating', 'liquidate', 6],
- ['tweaking', 'tweak', 6],
- ['optimising', 'optimise', 6],
- ['guarding', 'guard', 6],
- ['spying', 'spy', 6],
- ['conditioning', 'condition', 6],
- ['embalming', 'embalm', 6],
- ['choking', 'choke', 6],
- ['sweeping', 'sweep', 6],
- ['imitating', 'imitate', 6],
- ['counteracting', 'counteract', 6],
- ['deciphering', 'decipher', 6],
- ['overcrowding', 'overcrowd', 6],
- ['petitioning', 'petition', 6],
- ['pollinating', 'pollinate', 6],
- ['severing', 'sever', 6],
- ['secreting', 'secrete', 6],
- ['pasteurizing', 'pasteurize', 6],
- ['blasting', 'blast', 6],
- ['sugaring', 'sugar', 6],
- ['redeveloping', 'redevelop', 6],
- ['halving', 'halve', 6],
- ['culling', 'cull', 6],
- ['commanding', 'command', 6],
- ['whipping', 'whip', 6],
- ['bottling', 'bottle', 6],
- ['pinning', 'pin', 6],
- ['overlying', 'overlie', 6],
- ['infiltrating', 'infiltrate', 6],
- ['jetting', 'jet', 6],
- ['trembling', 'tremble', 6],
- ['swallowing', 'swallow', 6],
- ['stewing', 'stew', 6],
- ['brooding', 'brood', 6],
- ['evading', 'evade', 6],
- ['filleting', 'fillet', 6],
- ['unifying', 'unify', 6],
- ['teasing', 'tease', 6],
- ['approximating', 'approximate', 6],
- ['seating', 'seat', 6],
- ['rocking', 'rock', 6],
- ['briefing', 'brief', 6],
- ['waking', 'wake', 6],
- ['springing', 'spring', 6],
- ['dabbling', 'dabble', 6],
- ['prejudicing', 'prejudice', 6],
- ['harassing', 'harass', 6],
- ['mimicking', 'mimick', 6],
- ['chasing', 'chase', 6],
- ['crating', 'crate', 6],
- ['retouching', 'retouch', 6],
- ['hoisting', 'hoist', 6],
- ['institutionalizing', 'institutionalize', 6],
- ['condemning', 'condemn', 6],
- ['humbling', 'humble', 6],
- ['incapacitating', 'incapacitate', 6],
- ['corrupting', 'corrupt', 6],
- ['kneeling', 'kneel', 6],
- ['lashing', 'lash', 6],
- ['nailing', 'nail', 6],
- ['vibrating', 'vibrate', 6],
- ['reassembling', 'reassemble', 6],
- ['supercalendering', 'supercalender', 6],
- ['morticing', 'mortice', 6],
- ['banting', 'bant', 6],
- ['sheathing', 'sheath', 5],
- ['diving', 'dive', 5],
- ['abstracting', 'abstract', 5],
- ['scrolling', 'scroll', 5],
- ['kidding', 'kid', 5],
- ['transcending', 'transcend', 5],
- ['requisitioning', 'requisition', 5],
- ['cruising', 'cruise', 5],
- ['spiralling', 'spiral', 5],
- ['loosing', 'loose', 5],
- ['tramping', 'tramp', 5],
- ['liking', 'like', 5],
- ['laddering', 'ladder', 5],
- ['chanting', 'chant', 5],
- ['roaring', 'roar', 5],
- ['bouncing', 'bounce', 5],
- ['littering', 'litter', 5],
- ['paralleling', 'parallel', 5],
- ['photographing', 'photograph', 5],
- ['fetching', 'fetch', 5],
- ['cautioning', 'caution', 5],
- ['shoring', 'shore', 5],
- ['withstanding', 'withstand', 5],
- ['overriding', 'override', 5],
- ['inflicting', 'inflict', 5],
- ['squeezing', 'squeeze', 5],
- ['swinging', 'swing', 5],
- ['smiling', 'smile', 5],
- ['rushing', 'rush', 5],
- ['blazing', 'blaze', 5],
- ['swathing', 'swathe', 5],
- ['recirculating', 'recirculate', 5],
- ['bulking', 'bulk', 5],
- ['incriminating', 'incriminate', 5],
- ['liberating', 'liberate', 5],
- ['molding', 'mold', 5],
- ['endeavoring', 'endeavor', 5],
- ['inhabiting', 'inhabit', 5],
- ['faltering', 'falter', 5],
- ['befitting', 'befit', 5],
- ['grieving', 'grieve', 5],
- ['stevedoring', 'stevedore', 5],
- ['criminalizing', 'criminalize', 5],
- ['dusting', 'dust', 5],
- ['irritating', 'irritate', 5],
- ['gaming', 'game', 5],
- ['padding', 'pad', 5],
- ['computerizing', 'computerize', 5],
- ['underestimating', 'underestimate', 5],
- ['envisioning', 'envision', 5],
- ['clinging', 'cling', 5],
- ['purporting', 'purport', 5],
- ['reconfiguring', 'reconfigure', 5],
- ['configuring', 'configure', 5],
- ['oxidizing', 'oxidize', 5],
- ['screaming', 'scream', 5],
- ['levering', 'lever', 5],
- ['visioning', 'vision', 5],
- ['scaring', 'scare', 5],
- ['pecking', 'peck', 5],
- ['webbing', 'web', 5],
- ['pupating', 'pupate', 5],
- ['podding', 'pod', 5],
- ['silking', 'silk', 5],
- ['flecking', 'fleck', 5],
- ['raking', 'rake', 5],
- ['peeling', 'peel', 5],
- ['enunciating', 'enunciate', 5],
- ['mingling', 'mingle', 5],
- ['disintegrating', 'disintegrate', 5],
- ['fattening', 'fatten', 5],
- ['cumulating', 'cumulate', 5],
- ['grilling', 'grill', 5],
- ['ingesting', 'ingest', 5],
- ['fouling', 'foul', 5],
- ['inferring', 'infer', 5],
- ['refinancing', 'refinance', 5],
- ['ceding', 'cede', 5],
- ['suing', 'sue', 5],
- ['interrogating', 'interrogate', 5],
- ['contextualizing', 'contextualize', 5],
- ['crediting', 'credit', 5],
- ['overshooting', 'overshoot', 5],
- ['lumping', 'lump', 5],
- ['bewildering', 'bewilder', 5],
- ['redrafting', 'redraft', 5],
- ['firming', 'firm', 5],
- ['disallowing', 'disallow', 5],
- ['brimming', 'brim', 5],
- ['feasting', 'feast', 5],
- ['schooling', 'school', 5],
- ['minimising', 'minimise', 5],
- ['indemnifying', 'indemnify', 5],
- ['assimilating', 'assimilate', 5],
- ['gleaning', 'glean', 5],
- ['cataloging', 'cataloge', 5],
- ['pretending', 'pretend', 5],
- ['tailing', 'tail', 5],
- ['trafficking', 'traffick', 5],
- ['skewing', 'skew', 5],
- ['copyrighting', 'copyright', 5],
- ['publicising', 'publicise', 5],
- ['telecasting', 'telecast', 5],
- ['orchestrating', 'orchestrate', 5],
- ['erasing', 'erase', 5],
- ['sniffing', 'sniff', 5],
- ['dishwashing', 'dishwash', 5],
- ['faceting', 'facet', 5],
- ['immobilizing', 'immobilize', 5],
- ['telescoping', 'telescope', 5],
- ['interlacing', 'interlace', 5],
- ['plastering', 'plaster', 5],
- ['dieting', 'diet', 5],
- ['ameliorating', 'ameliorate', 5],
- ['dissecting', 'dissect', 5],
- ['shelving', 'shelve', 4],
- ['unforgiving', 'unforgive', 4],
- ['assaying', 'assay', 4],
- ['rerouting', 'reroute', 4],
- ['fringing', 'fringe', 4],
- ['reimbursing', 'reimburse', 4],
- ['reintroducing', 'reintroduce', 4],
- ['delighting', 'delight', 4],
- ['sipping', 'sip', 4],
- ['gliding', 'glide', 4],
- ['ballooning', 'balloon', 4],
- ['motoring', 'motor', 4],
- ['wedding', 'wed', 4],
- ['popularizing', 'popularize', 4],
- ['outing', 'out', 4],
- ['weathering', 'weather', 4],
- ['chopping', 'chop', 4],
- ['singling', 'single', 4],
- ['relegating', 'relegate', 4],
- ['industrializing', 'industrialize', 4],
- ['pegging', 'peg', 4],
- ['plaguing', 'plague', 4],
- ['refraining', 'refrain', 4],
- ['wooing', 'woo', 4],
- ['obstructing', 'obstruct', 4],
- ['stranding', 'strand', 4],
- ['staking', 'stake', 4],
- ['tiring', 'tire', 4],
- ['devouring', 'devour', 4],
- ['braising', 'braise', 4],
- ['marching', 'march', 4],
- ['streaking', 'streak', 4],
- ['hacking', 'hack', 4],
- ['quadrupling', 'quadruple', 4],
- ['animating', 'animate', 4],
- ['fashioning', 'fashion', 4],
- ['moisturizing', 'moisturize', 4],
- ['articling', 'article', 4],
- ['applauding', 'applaud', 4],
- ['appending', 'append', 4],
- ['entailing', 'entail', 4],
- ['superseding', 'supersede', 4],
- ['resurrecting', 'resurrect', 4],
- ['heeding', 'heed', 4],
- ['evoking', 'evoke', 4],
- ['deliberating', 'deliberate', 4],
- ['afflicting', 'afflict', 4],
- ['codifying', 'codify', 4],
- ['outlawing', 'outlaw', 4],
- ['disconcerting', 'disconcert', 4],
- ['biasing', 'bias', 4],
- ['deviating', 'deviate', 4],
- ['guessing', 'guess', 4],
- ['voiding', 'void', 4],
- ['abutting', 'abut', 4],
- ['leaning', 'lean', 4],
- ['masquerading', 'masquerade', 4],
- ['divesting', 'divest', 4],
- ['underpricing', 'underprice', 4],
- ['internalizing', 'internalize', 4],
- ['redeeming', 'redeem', 4],
- ['disentangling', 'disentangle', 4],
- ['flaring', 'flare', 4],
- ['coking', 'coke', 4],
- ['pirating', 'pirate', 4],
- ['unbundling', 'unbundle', 4],
- ['shielding', 'shield', 4],
- ['readying', 'ready', 4],
- ['chaining', 'chain', 4],
- ['protesting', 'protest', 4],
- ['backdating', 'backdate', 4],
- ['excusing', 'excuse', 4],
- ['queuing', 'queue', 4],
- ['rejoining', 'rejoin', 4],
- ['overburdening', 'overburden', 4],
- ['recreating', 'recreate', 4],
- ['prospering', 'prosper', 4],
- ['wagering', 'wager', 4],
- ['calving', 'calve', 4],
- ['gnawing', 'gnaw', 4],
- ['sloping', 'slope', 4],
- ['stratifying', 'stratify', 4],
- ['blooming', 'bloom', 4],
- ['smothering', 'smother', 4],
- ['hilling', 'hill', 4],
- ['chilling', 'chill', 4],
- ['thickening', 'thicken', 4],
- ['overspending', 'overspend', 4],
- ['pursing', 'purse', 4],
- ['itching', 'itch', 4],
- ['gelling', 'gell', 4],
- ['purging', 'purge', 4],
- ['combing', 'comb', 4],
- ['bartering', 'barter', 4],
- ['pelleting', 'pellet', 4],
- ['fobbing', 'fob', 4],
- ['perching', 'perch', 4],
- ['robbing', 'rob', 4],
- ['cribbing', 'crib', 4],
- ['predominating', 'predominate', 4],
- ['pollarding', 'pollard', 4],
- ['curving', 'curve', 4],
- ['margining', 'margin', 4],
- ['straying', 'stray', 4],
- ['auctioning', 'auction', 4],
- ['flipping', 'flip', 4],
- ['bedding', 'bed', 4],
- ['jointing', 'joint', 4],
- ['marshalling', 'marshal', 4],
- ['mutating', 'mutate', 4],
- ['mothering', 'mother', 4],
- ['hastening', 'hasten', 4],
- ['collapsing', 'collapse', 4],
- ['remunerating', 'remunerate', 4],
- ['postulating', 'postulate', 4],
- ['comprehending', 'comprehend', 4],
- ['equilibrating', 'equilibrate', 4],
- ['misinterpreting', 'misinterpret', 4],
- ['recasting', 'recast', 4],
- ['rehearsing', 'rehearse', 4],
- ['devaluing', 'devalue', 4],
- ['cheering', 'cheer', 4],
- ['donning', 'don', 4],
- ['mulling', 'mull', 4],
- ['exemplifying', 'exemplify', 4],
- ['acculturating', 'acculturate', 4],
- ['frequenting', 'frequent', 4],
- ['coproducing', 'coproduce', 4],
- ['equaling', 'equal', 4],
- ['legitimating', 'legitimate', 4],
- ['conciliating', 'conciliate', 4],
- ['interlinking', 'interlink', 4],
- ['electrifying', 'electrify', 4],
- ['succumbing', 'succumb', 4],
- ['rebating', 'rebate', 4],
- ['civilizing', 'civilize', 4],
- ['inaugurating', 'inaugurate', 4],
- ['interweaving', 'interweave', 4],
- ['butchering', 'butcher', 4],
- ['reinstituting', 'reinstitute', 4],
- ['embarrassing', 'embarrass', 4],
- ['denouncing', 'denounce', 4],
- ['misunderstanding', 'misunderstand', 4],
- ['bunking', 'bunk', 4],
- ['initialling', 'initial', 4],
- ['regenerating', 'regenerate', 4],
- ['conjuring', 'conjure', 4],
- ['smuggling', 'smuggle', 4],
- ['embroidering', 'embroider', 4],
- ['pinking', 'pink', 4],
- ['undervaluing', 'undervalue', 4],
- ['shaving', 'shave', 4],
- ['compacting', 'compact', 4],
- ['comminuting', 'comminute', 4],
- ['clinching', 'clinch', 4],
- ['agglomerating', 'agglomerate', 4],
- ['shafting', 'shaft', 4],
- ['bribing', 'bribe', 4],
- ['overeating', 'overeat', 4],
- ['relapsing', 'relapse', 4],
- ['individualizing', 'individualize', 4],
- ['complimenting', 'compliment', 4],
- ['orphaning', 'orphan', 4],
- ['culturing', 'culture', 4],
- ['coughing', 'cough', 4],
- ['downplaying', 'downplay', 3],
- ['scattering', 'scatter', 3],
- ['impressing', 'impress', 3],
- ['prospecting', 'prospect', 3],
- ['dispatching', 'dispatch', 3],
- ['overwhelming', 'overwhelm', 3],
- ['biking', 'bike', 3],
- ['slashing', 'slash', 3],
- ['rippling', 'ripple', 3],
- ['exciting', 'excite', 3],
- ['sunbathing', 'sunbathe', 3],
- ['summarising', 'summarise', 3],
- ['tobogganing', 'toboggan', 3],
- ['utilising', 'utilise', 3],
- ['sighting', 'sight', 3],
- ['fronting', 'front', 3],
- ['motorcycling', 'motorcycle', 3],
- ['outselling', 'outsell', 3],
- ['subduing', 'subdue', 3],
- ['outshining', 'outshine', 3],
- ['sketching', 'sketch', 3],
- ['reentering', 'reenter', 3],
- ['redeploying', 'redeploy', 3],
- ['outnumbering', 'outnumber', 3],
- ['gleaming', 'gleam', 3],
- ['warring', 'war', 3],
- ['penning', 'pen', 3],
- ['darkening', 'darken', 3],
- ['fluttering', 'flutter', 3],
- ['reverberating', 'reverberate', 3],
- ['previewing', 'preview', 3],
- ['buzzing', 'buzz', 3],
- ['haunting', 'haunt', 3],
- ['undulating', 'undulate', 3],
- ['smearing', 'smear', 3],
- ['flapping', 'flap', 3],
- ['crackling', 'crackle', 3],
- ['deafening', 'deafen', 3],
- ['labouring', 'labour', 3],
- ['parachuting', 'parachute', 3],
- ['snorkeling', 'snorkel', 3],
- ['gutting', 'gut', 3],
- ['downgrading', 'downgrade', 3],
- ['enshrining', 'enshrine', 3],
- ['rubbing', 'rub', 3],
- ['melding', 'meld', 3],
- ['propping', 'prop', 3],
- ['annoying', 'annoy', 3],
- ['gazing', 'gaze', 3],
- ['assenting', 'assent', 3],
- ['reciting', 'recite', 3],
- ['emigrating', 'emigrate', 3],
- ['ushering', 'usher', 3],
- ['arousing', 'arouse', 3],
- ['obeying', 'obey', 3],
- ['battering', 'batter', 3],
- ['distracting', 'distract', 3],
- ['obviating', 'obviate', 3],
- ['staggering', 'stagger', 3],
- ['hooking', 'hook', 3],
- ['reformulating', 'reformulate', 3],
- ['refunding', 'refund', 3],
- ['courting', 'court', 3],
- ['overcharging', 'overcharge', 3],
- ['cueing', 'cue', 3],
- ['floundering', 'flounder', 3],
- ['overshadowing', 'overshadow', 3],
- ['wining', 'wine', 3],
- ['tossing', 'toss', 3],
- ['annualizing', 'annualize', 3],
- ['envisaging', 'envisage', 3],
- ['seeming', 'seem', 3],
- ['restating', 'restate', 3],
- ['reunifying', 'reunify', 3],
- ['retreating', 'retreat', 3],
- ['grandfathering', 'grandfather', 3],
- ['quickening', 'quicken', 3],
- ['doubting', 'doubt', 3],
- ['disadvantaging', 'disadvantage', 3],
- ['obscuring', 'obscure', 3],
- ['seeping', 'seep', 3],
- ['intercropping', 'intercrop', 3],
- ['spitting', 'spit', 3],
- ['prying', 'pry', 3],
- ['shrivelling', 'shrivel', 3],
- ['metabolizing', 'metabolize', 3],
- ['puncturing', 'puncture', 3],
- ['exuding', 'exude', 3],
- ['protruding', 'protrude', 3],
- ['blackening', 'blacken', 3],
- ['rouging', 'rouge', 3],
- ['ridging', 'ridge', 3],
- ['stippling', 'stipple', 3],
- ['winnowing', 'winnow', 3],
- ['misusing', 'misuse', 3],
- ['programing', 'program', 3],
- ['deactivating', 'deactivate', 3],
- ['recalculating', 'recalculate', 3],
- ['paralyzing', 'paralyze', 3],
- ['colluding', 'collude', 3],
- ['demoralizing', 'demoralize', 3],
- ['specialising', 'specialise', 3],
- ['pasturing', 'pasture', 3],
- ['meatpacking', 'meatpack', 3],
- ['suckering', 'sucker', 3],
- ['infusing', 'infuse', 3],
- ['everchanging', 'everchange', 3],
- ['bargaining', 'bargain', 3],
- ['dialoguing', 'dialogue', 3],
- ['favoring', 'favor', 3],
- ['suffocating', 'suffocate', 3],
- ['berthing', 'berth', 3],
- ['disturbing', 'disturb', 3],
- ['resettling', 'resettle', 3],
- ['trolling', 'troll', 3],
- ['inactivating', 'inactivate', 3],
- ['clumping', 'clump', 3],
- ['rephrasing', 'rephrase', 3],
- ['dwelling', 'dwell', 3],
- ['cheating', 'cheat', 3],
- ['intermingling', 'intermingle', 3],
- ['roosting', 'roost', 3],
- ['ruffling', 'ruffle', 3],
- ['huddling', 'huddle', 3],
- ['quizzing', 'quiz', 3],
- ['militating', 'militate', 3],
- ['revitalising', 'revitalise', 3],
- ['eschewing', 'eschew', 3],
- ['glazing', 'glaze', 3],
- ['patrolling', 'patrol', 3],
- ['ankylosing', 'ankylose', 3],
- ['joking', 'joke', 3],
- ['bettering', 'better', 3],
- ['consummating', 'consummate', 3],
- ['proliferating', 'proliferate', 3],
- ['defusing', 'defuse', 3],
- ['deceiving', 'deceive', 3],
- ['cushioning', 'cushion', 3],
- ['extolling', 'extol', 3],
- ['crystallizing', 'crystallize', 3],
- ['localizing', 'localize', 3],
- ['subsidising', 'subsidise', 3],
- ['retarding', 'retard', 3],
- ['belittling', 'belittle', 3],
- ['dawning', 'dawn', 3],
- ['captivating', 'captivate', 3],
- ['modernising', 'modernise', 3],
- ['toasting', 'toast', 3],
- ['wowing', 'wow', 3],
- ['relearning', 'relearn', 3],
- ['instigating', 'instigate', 3],
- ['hijacking', 'hijack', 3],
- ['harmonising', 'harmonise', 3],
- ['delimiting', 'delimit', 3],
- ['distancing', 'distance', 3],
- ['dehumanizing', 'dehumanize', 3],
- ['reassigning', 'reassign', 3],
- ['privileging', 'privilege', 3],
- ['preceeding', 'preceed', 3],
- ['flattering', 'flatter', 3],
- ['endowing', 'endow', 3],
- ['trivializing', 'trivialize', 3],
- ['consigning', 'consign', 3],
- ['refitting', 'refit', 3],
- ['overprinting', 'overprint', 3],
- ['tallying', 'tally', 3],
- ['tantalizing', 'tantalize', 3],
- ['coupling', 'couple', 3],
- ['etching', 'etch', 3],
- ['salvaging', 'salvage', 3],
- ['entrusting', 'entrust', 3],
- ['chauffeuring', 'chauffeur', 3],
- ['withing', 'withe', 3],
- ['underachieving', 'underachieve', 3],
- ['backfilling', 'backfill', 3],
- ['campaigning', 'campaign', 3],
- ['coercing', 'coerce', 3],
- ['regretting', 'regret', 3],
- ['slapping', 'slap', 3],
- ['expelling', 'expel', 3],
- ['handcuffing', 'handcuff', 3],
- ['inheriting', 'inherit', 3],
- ['reestablishing', 'reestablish', 3],
- ['garnishing', 'garnish', 3],
- ['apprehending', 'apprehend', 3],
- ['kidnaping', 'kidnap', 3],
- ['reappraising', 'reappraise', 3],
- ['rewording', 'reword', 3],
- ['rowing', 'row', 3],
- ['refereeing', 'referee', 3],
- ['barking', 'bark', 3],
- ['kennelling', 'kennel', 3],
- ['screwing', 'screw', 3],
- ['cleaving', 'cleave', 3],
- ['impregnating', 'impregnate', 3],
- ['chambering', 'chamber', 3],
- ['strolling', 'stroll', 3],
- ['ironing', 'iron', 3],
- ['wadding', 'wad', 3],
- ['concatenating', 'concatenate', 3],
- ['tamping', 'tamp', 3],
- ['paring', 'pare', 3],
- ['collating', 'collate', 3],
- ['enveloping', 'envelop', 3],
- ['besetting', 'beset', 3],
- ['superceding', 'supercede', 3],
- ['piggybacking', 'piggyback', 3],
- ['graphing', 'graph', 3],
- ['stooping', 'stoop', 3],
- ['populating', 'populate', 3],
- ['sneezing', 'sneeze', 3],
- ['waging', 'wage', 2],
- ['pleading', 'plead', 2],
- ['disproving', 'disprove', 2],
- ['pinching', 'pinch', 2],
- ['presupposing', 'presuppose', 2],
- ['teeming', 'teem', 2],
- ['igniting', 'ignite', 2],
- ['rediscovering', 'rediscover', 2],
- ['demobilizing', 'demobilize', 2],
- ['finalising', 'finalise', 2],
- ['sizzling', 'sizzle', 2],
- ['flagging', 'flag', 2],
- ['magnifying', 'magnify', 2],
- ['perceiving', 'perceive', 2],
- ['procrastinating', 'procrastinate', 2],
- ['gifting', 'gift', 2],
- ['uncaring', 'uncare', 2],
- ['fascinating', 'fascinate', 2],
- ['tripping', 'trip', 2],
- ['honoring', 'honor', 2],
- ['flirting', 'flirt', 2],
- ['homebuilding', 'homebuild', 2],
- ['swooning', 'swoon', 2],
- ['sagging', 'sag', 2],
- ['gripping', 'grip', 2],
- ['erupting', 'erupt', 2],
- ['fledging', 'fledge', 2],
- ['deflating', 'deflate', 2],
- ['shocking', 'shock', 2],
- ['throttling', 'throttle', 2],
- ['shimmering', 'shimmer', 2],
- ['gaping', 'gape', 2],
- ['poking', 'poke', 2],
- ['petting', 'pet', 2],
- ['persevering', 'persevere', 2],
- ['raiding', 'raid', 2],
- ['decking', 'deck', 2],
- ['lulling', 'lull', 2],
- ['wailing', 'wail', 2],
- ['fiddling', 'fiddle', 2],
- ['howling', 'howl', 2],
- ['lurking', 'lurk', 2],
- ['hammering', 'hammer', 2],
- ['lugging', 'lug', 2],
- ['pining', 'pine', 2],
- ['leaping', 'leap', 2],
- ['whaling', 'whale', 2],
- ['swooping', 'swoop', 2],
- ['massing', 'mass', 2],
- ['buttressing', 'buttress', 2],
- ['evacuating', 'evacuate', 2],
- ['stabilising', 'stabilise', 2],
- ['ravaging', 'ravage', 2],
- ['staving', 'stave', 2],
- ['straddling', 'straddle', 2],
- ['cornering', 'corner', 2],
- ['bandaging', 'bandage', 2],
- ['inventorying', 'inventory', 2],
- ['acquainting', 'acquaint', 2],
- ['deprecating', 'deprecate', 2],
- ['summoning', 'summon', 2],
- ['adorning', 'adorn', 2],
- ['admiring', 'admire', 2],
- ['disqualifying', 'disqualify', 2],
- ['overruling', 'overrule', 2],
- ['maiming', 'maim', 2],
- ['adjourning', 'adjourn', 2],
- ['forsaking', 'forsake', 2],
- ['triumphing', 'triumph', 2],
- ['derogating', 'derogate', 2],
- ['shepherding', 'shepherd', 2],
- ['clamouring', 'clamour', 2],
- ['horrifying', 'horrify', 2],
- ['beefing', 'beef', 2],
- ['garnisheeing', 'garnishee', 2],
- ['dissipating', 'dissipate', 2],
- ['wording', 'word', 2],
- ['oversimplifying', 'oversimplify', 2],
- ['snooping', 'snoop', 2],
- ['overreaching', 'overreach', 2],
- ['preconditioning', 'precondition', 2],
- ['wrecking', 'wreck', 2],
- ['agonizing', 'agonize', 2],
- ['resonating', 'resonate', 2],
- ['thrilling', 'thrill', 2],
- ['bobbing', 'bob', 2],
- ['parting', 'part', 2],
- ['idling', 'idle', 2],
- ['sparging', 'sparge', 2],
- ['obligating', 'obligate', 2],
- ['arbitrating', 'arbitrate', 2],
- ['disguising', 'disguise', 2],
- ['unsatisfying', 'unsatisfy', 2],
- ['waxing', 'wax', 2],
- ['construing', 'construe', 2],
- ['submersing', 'submerse', 2],
- ['contouring', 'contour', 2],
- ['docketing', 'docket', 2],
- ['scorching', 'scorch', 2],
- ['raining', 'rain', 2],
- ['sensationalizing', 'sensationalize', 2],
- ['fixating', 'fixate', 2],
- ['advantaging', 'advantage', 2],
- ['wagging', 'wag', 2],
- ['trotting', 'trot', 2],
- ['pacing', 'pace', 2],
- ['manuring', 'manure', 2],
- ['haying', 'hay', 2],
- ['recordkeeping', 'recordkeepe', 2],
- ['coring', 'core', 2],
- ['grouting', 'grout', 2],
- ['strewing', 'strew', 2],
- ['loafing', 'loaf', 2],
- ['landfilling', 'landfil', 2],
- ['percolating', 'percolate', 2],
- ['forking', 'fork', 2],
- ['blunting', 'blunt', 2],
- ['defoliating', 'defoliate', 2],
- ['moulting', 'moult', 2],
- ['starving', 'starve', 2],
- ['infesting', 'infest', 2],
- ['liming', 'lime', 2],
- ['hollowing', 'hollow', 2],
- ['mounding', 'mound', 2],
- ['sweating', 'sweat', 2],
- ['drooping', 'droop', 2],
- ['wrinkling', 'wrinkle', 2],
- ['spoiling', 'spoil', 2],
- ['hoeing', 'hoe', 2],
- ['replanting', 'replant', 2],
- ['vectoring', 'vector', 2],
- ['understating', 'understate', 2],
- ['interceding', 'intercede', 2],
- ['rivaling', 'rival', 2],
- ['sparkling', 'sparkle', 2],
- ['oiling', 'oil', 2],
- ['fractionating', 'fractionate', 2],
- ['overestimating', 'overestimate', 2],
- ['flexing', 'flex', 2],
- ['reverting', 'revert', 2],
- ['diking', 'dike', 2],
- ['negating', 'negate', 2],
- ['overlaying', 'overlay', 2],
- ['grassing', 'grass', 2],
- ['dehorning', 'dehorn', 2],
- ['slumping', 'slump', 2],
- ['poisoning', 'poison', 2],
- ['heeling', 'heel', 2],
- ['deflecting', 'deflect', 2],
- ['overdosing', 'overdose', 2],
- ['thrusting', 'thrust', 2],
- ['stumbling', 'stumble', 2],
- ['poaching', 'poach', 2],
- ['interchanging', 'interchange', 2],
- ['portioning', 'portion', 2],
- ['exaggerating', 'exaggerate', 2],
- ['litigating', 'litigate', 2],
- ['mobilising', 'mobilise', 2],
- ['levying', 'levy', 2],
- ['overfeeding', 'overfeed', 2],
- ['coexisting', 'coexist', 2],
- ['tethering', 'tether', 2],
- ['allotting', 'allot', 2],
- ['adjoining', 'adjoin', 2],
- ['inclining', 'incline', 2],
- ['panting', 'pant', 2],
- ['impending', 'impend', 2],
- ['brewing', 'brew', 2],
- ['scavenging', 'scavenge', 2],
- ['trumpeting', 'trumpet', 2],
- ['outweighing', 'outweigh', 2],
- ['intertwining', 'intertwine', 2],
- ['toting', 'tote', 2],
- ['redrawing', 'redraw', 2],
- ['disenfranchising', 'disenfranchise', 2],
- ['supposing', 'suppose', 2],
- ['traversing', 'traverse', 2],
- ['overhauling', 'overhaul', 2],
- ['repurchasing', 'repurchase', 2],
- ['crowning', 'crown', 2],
- ['disdaining', 'disdain', 2],
- ['proselytizing', 'proselytize', 2],
- ['tainting', 'taint', 2],
- ['regressing', 'regress', 2],
- ['misreading', 'misread', 2],
- ['scrapping', 'scrap', 2],
- ['tiering', 'tier', 2],
- ['uplifting', 'uplift', 2],
- ['troubling', 'trouble', 2],
- ['pausing', 'pause', 2],
- ['clashing', 'clash', 2],
- ['piecing', 'piece', 2],
- ['disheartening', 'dishearten', 2],
- ['likening', 'liken', 2],
- ['transposing', 'transpose', 2],
- ['internalising', 'internalise', 2],
- ['decentralising', 'decentralise', 2],
- ['conversing', 'converse', 2],
- ['deducing', 'deduce', 2],
- ['chaperoning', 'chaperon', 2],
- ['memorizing', 'memorize', 2],
- ['begging', 'beg', 2],
- ['restarting', 'restart', 2],
- ['apologizing', 'apologize', 2],
- ['correlating', 'correlate', 2],
- ['abstaining', 'abstain', 2],
- ['bureaucratizing', 'bureaucratize', 2],
- ['plateauing', 'plateaue', 2],
- ['consecrating', 'consecrate', 2],
- ['reinvigorating', 'reinvigorate', 2],
- ['enslaving', 'enslave', 2],
- ['appeasing', 'appease', 2],
- ['constricting', 'constrict', 2],
- ['domesticating', 'domesticate', 2],
- ['multitasking', 'multitask', 2],
- ['remodelling', 'remodel', 2],
- ['touting', 'tout', 2],
- ['latching', 'latch', 2],
- ['cannibalizing', 'cannibalize', 2],
- ['numbing', 'numb', 2],
- ['begrudging', 'begrudge', 2],
- ['squandering', 'squander', 2],
- ['nonthreatening', 'nonthreaten', 2],
- ['insinuating', 'insinuate', 2],
- ['couching', 'couch', 2],
- ['exacting', 'exact', 2],
- ['recapitulating', 'recapitulate', 2],
- ['convoluting', 'convolute', 2],
- ['centralising', 'centralise', 2],
- ['amassing', 'amass', 2],
- ['affiliating', 'affiliate', 2],
- ['disclaiming', 'disclaim', 2],
- ['ascribing', 'ascribe', 2],
- ['tolerating', 'tolerate', 2],
- ['amortizing', 'amortize', 2],
- ['skimming', 'skim', 2],
- ['renouncing', 'renounce', 2],
- ['comporting', 'comport', 2],
- ['muddling', 'muddle', 2],
- ['usurping', 'usurp', 2],
- ['fractioning', 'fraction', 2],
- ['juxtaposing', 'juxtapose', 2],
- ['ripping', 'rip', 2],
- ['unscrambling', 'unscramble', 2],
- ['descrambling', 'descramble', 2],
- ['misappropriating', 'misappropriate', 2],
- ['scaffolding', 'scaffold', 2],
- ['jeopardising', 'jeopardise', 2],
- ['stationing', 'station', 2],
- ['encumbering', 'encumber', 2],
- ['roping', 'rope', 2],
- ['reheating', 'reheat', 2],
- ['underselling', 'undersell', 2],
- ['overtaking', 'overtake', 2],
- ['initializing', 'initialize', 2],
- ['perusing', 'peruse', 2],
- ['befriending', 'befriend', 2],
- ['cramming', 'cram', 2],
- ['intriguing', 'intrigue', 2],
- ['personalizing', 'personalize', 2],
- ['loaning', 'loan', 2],
- ['overloading', 'overload', 2],
- ['flanking', 'flank', 2],
- ['auditioning', 'audition', 2],
- ['rebroadcasting', 'rebroadcast', 2],
- ['parceling', 'parcel', 2],
- ['gentrifying', 'gentrify', 2],
- ['absolving', 'absolve', 2],
- ['pillaging', 'pillage', 2],
- ['bankrupting', 'bankrupt', 2],
- ['digitalizing', 'digitalize', 2],
- ['decreeing', 'decree', 2],
- ['teething', 'teethe', 2],
- ['centring', 'centre', 2],
- ['instating', 'instate', 2],
- ['righting', 'right', 2],
- ['taunting', 'taunt', 2],
- ['caucusing', 'caucus', 2],
- ['crashing', 'crash', 2],
- ['pondering', 'ponder', 2],
- ['flaunting', 'flaunt', 2],
- ['conscripting', 'conscript', 2],
- ['shouting', 'shout', 2],
- ['sobbing', 'sob', 2],
- ['fraying', 'fray', 2],
- ['disentitling', 'disentitle', 2],
- ['convicting', 'convict', 2],
- ['bequeathing', 'bequeath', 2],
- ['enumerating', 'enumerate', 2],
- ['quashing', 'quash', 2],
- ['mouthing', 'mouth', 2],
- ['abducting', 'abduct', 2],
- ['federating', 'federate', 2],
- ['remanding', 'remand', 2],
- ['incarcerating', 'incarcerate', 2],
- ['hazing', 'haze', 2],
- ['kissing', 'kiss', 2],
- ['perpetrating', 'perpetrate', 2],
- ['disarming', 'disarm', 2],
- ['bulging', 'bulge', 2],
- ['dovetailing', 'dovetail', 2],
- ['bicycling', 'bicycle', 2],
- ['anesthetizing', 'anesthetize', 2],
- ['menacing', 'menace', 2],
- ['scapegoating', 'scapegoate', 2],
- ['acquitting', 'acquit', 2],
- ['seasoning', 'season', 2],
- ['pivoting', 'pivot', 2],
- ['retracting', 'retract', 2],
- ['gunning', 'gun', 2],
- ['peening', 'peen', 2],
- ['flocculating', 'flocculate', 2],
- ['cleansing', 'cleanse', 2],
- ['lacing', 'lace', 2],
- ['hemstitching', 'hemstitch', 2],
- ['fulling', 'full', 2],
- ['napping', 'nap', 2],
- ['cubing', 'cube', 2],
- ['decontaminating', 'decontaminate', 2],
- ['dehumanising', 'dehumanise', 2],
- ['whitening', 'whiten', 2],
- ['superimposing', 'superimpose', 2],
- ['needling', 'needle', 2],
- ['recapping', 'recap', 2],
- ['matting', 'mat', 2],
- ['hewing', 'hew', 2],
- ['tufting', 'tuft', 2],
- ['wringing', 'wring', 2],
- ['tinning', 'tin', 2],
- ['wiring', 'wire', 2],
- ['bushing', 'bush', 2],
- ['granulating', 'granulate', 2],
- ['sieving', 'sieve', 2],
- ['debonding', 'debond', 2],
- ['splicing', 'splice', 2],
- ['beeping', 'beep', 2],
- ['underreporting', 'underreport', 2],
- ['booming', 'boom', 2],
- ['armouring', 'armour', 2],
- ['reaming', 'ream', 2],
- ['chamfering', 'chamfer', 2],
- ['superheating', 'superheat', 2],
- ['coiling', 'coil', 2],
- ['flanging', 'flange', 2],
- ['destining', 'destine', 2],
- ['demineralizing', 'demineralize', 2],
- ['laboring', 'labor', 2],
- ['coalescing', 'coalesce', 2],
- ['wheezing', 'wheeze', 2],
- ['coaxing', 'coax', 2],
- ['tapering', 'taper', 2],
- ['fooling', 'fool', 2],
- ['quaking', 'quak', 2],
- ['buckling', 'buckle', 2],
- ['characterising', 'characterise', 2],
- ['greying', 'grey', 2],
- ['crippling', 'cripple', 2],
- ['siphoning', 'siphon', 2],
- ['debilitating', 'debilitate', 2],
- ['lauding', 'laud', 2],
- ['perturbing', 'perturb', 2],
- ['unstinting', 'unstint', 2],
- ['desensitizing', 'desensitize', 2],
- ['inoculating', 'inoculate', 2],
- ['alarming', 'alarm', 2],
- ['depolarizing', 'depolarize', 2],
- ['crying', 'cry', 2],
-
+ ['including', 'include'],
+ ['following', 'follow'],
+ ['being', 'is'],
+ ['using', 'use'],
+ ['working', 'work'],
+ ['developing', 'develop'],
+ ['providing', 'provide'],
+ ['regarding', 'regard'],
+ ['dumping', 'dump'],
+ ['according', 'accord'],
+ ['operating', 'operate'],
+ ['making', 'make'],
+ ['increasing', 'increase'],
+ ['having', 'have'],
+ ['supporting', 'support'],
+ ['heading', 'head'],
+ ['exceeding', 'exceed'],
+ ['growing', 'grow'],
+ ['concerning', 'concern'],
+ ['reporting', 'report'],
+ ['relating', 'relate'],
+ ['leading', 'lead'],
+ ['ensuring', 'ensure'],
+ ['improving', 'improve'],
+ ['meeting', 'meet'],
+ ['existing', 'exist'],
+ ['promoting', 'promote'],
+ ['taking', 'take'],
+ ['learning', 'learn'],
+ ['originating', 'originate'],
+ ['creating', 'create'],
+ ['building', 'build'],
+ ['resulting', 'result'],
+ ['living', 'live'],
+ ['funding', 'fund'],
+ ['emerging', 'emerge'],
+ ['involving', 'involve'],
+ ['receiving', 'receive'],
+ ['participating', 'participate'],
+ ['representing', 'represent'],
+ ['reducing', 'reduce'],
+ ['determining', 'determine'],
+ ['implementing', 'implement'],
+ ['changing', 'change'],
+ ['establishing', 'establish'],
+ ['identifying', 'identify'],
+ ['containing', 'contain'],
+ ['doing', 'do'],
+ ['looking', 'look'],
+ ['addressing', 'address'],
+ ['selling', 'sell'],
+ ['excluding', 'exclude'],
+ ['moving', 'move'],
+ ['helping', 'help'],
+ ['continuing', 'continue'],
+ ['coming', 'come'],
+ ['achieving', 'achieve'],
+ ['going', 'go'],
+ ['producing', 'produce'],
+ ['respecting', 'respect'],
+ ['depending', 'depend'],
+ ['applying', 'apply'],
+ ['planning', 'plan'],
+ ['conducting', 'conduct'],
+ ['managing', 'manage'],
+ ['maintaining', 'maintain'],
+ ['remaining', 'remain'],
+ ['performing', 'perform'],
+ ['dealing', 'deal'],
+ ['seeking', 'seek'],
+ ['contributing', 'contribute'],
+ ['starting', 'start'],
+ ['enhancing', 'enhance'],
+ ['writing', 'write'],
+ ['hosting', 'host'],
+ ['strengthening', 'strengthen'],
+ ['facing', 'face'],
+ ['allowing', 'allow'],
+ ['measuring', 'measure'],
+ ['becoming', 'become'],
+ ['affecting', 'affect'],
+ ['finding', 'find'],
+ ['offering', 'offer'],
+ ['considering', 'consider'],
+ ['beginning', 'begin'],
+ ['setting', 'set'],
+ ['aging', 'age'],
+ ['bringing', 'bring'],
+ ['keeping', 'keep'],
+ ['monitoring', 'monitor'],
+ ['requiring', 'require'],
+ ['indicating', 'indicate'],
+ ['giving', 'give'],
+ ['preparing', 'prepare'],
+ ['ending', 'end'],
+ ['rising', 'rise'],
+ ['sharing', 'share'],
+ ['reaching', 'reach'],
+ ['expanding', 'expand'],
+ ['getting', 'get'],
+ ['governing', 'govern'],
+ ['assessing', 'assess'],
+ ['granting', 'grant'],
+ ['obtaining', 'obtain'],
+ ['subsidizing', 'subsidize'],
+ ['attending', 'attend'],
+ ['entering', 'enter'],
+ ['delivering', 'deliver'],
+ ['arising', 'arise'],
+ ['targeting', 'target'],
+ ['travelling', 'travel'],
+ ['fostering', 'foster'],
+ ['carrying', 'carry'],
+ ['encouraging', 'encourage'],
+ ['underlying', 'underlie'],
+ ['understanding', 'understand'],
+ ['completing', 'complete'],
+ ['covering', 'cover'],
+ ['responding', 'respond'],
+ ['visiting', 'visit'],
+ ['importing', 'import'],
+ ['protecting', 'protect'],
+ ['reviewing', 'review'],
+ ['owing', 'owe'],
+ ['focusing', 'focus'],
+ ['recognizing', 'recognize'],
+ ['serving', 'serve'],
+ ['facilitating', 'facilitate'],
+ ['pertaining', 'pertain'],
+ ['examining', 'examine'],
+ ['enabling', 'enable'],
+ ['evaluating', 'evaluate'],
+ ['consisting', 'consist'],
+ ['adding', 'add'],
+ ['exporting', 'export'],
+ ['investing', 'invest'],
+ ['studying', 'study'],
+ ['showing', 'show'],
+ ['raising', 'raise'],
+ ['ranging', 'range'],
+ ['reflecting', 'reflect'],
+ ['processing', 'process'],
+ ['submitting', 'submit'],
+ ['advancing', 'advance'],
+ ['declining', 'decline'],
+ ['surrounding', 'surround'],
+ ['competing', 'compete'],
+ ['preventing', 'prevent'],
+ ['defining', 'define'],
+ ['paying', 'pay'],
+ ['undertaking', 'undertake'],
+ ['speaking', 'speak'],
+ ['acting', 'act'],
+ ['holding', 'hold'],
+ ['describing', 'describe'],
+ ['training', 'train'],
+ ['countervailing', 'countervail'],
+ ['presenting', 'present'],
+ ['evolving', 'evolve'],
+ ['pending', 'pend'],
+ ['assisting', 'assist'],
+ ['requesting', 'request'],
+ ['pursuing', 'pursue'],
+ ['incorporating', 'incorporate'],
+ ['noting', 'note'],
+ ['coordinating', 'coordinate'],
+ ['attracting', 'attract'],
+ ['leaving', 'leave'],
+ ['organizing', 'organize'],
+ ['counselling', 'counsel'],
+ ['playing', 'play'],
+ ['trying', 'try'],
+ ['causing', 'cause'],
+ ['integrating', 'integrate'],
+ ['belonging', 'belong'],
+ ['collecting', 'collect'],
+ ['administering', 'administer'],
+ ['linking', 'link'],
+ ['negotiating', 'negotiate'],
+ ['putting', 'put'],
+ ['limiting', 'limit'],
+ ['cutting', 'cut'],
+ ['occurring', 'occur'],
+ ['falling', 'fall'],
+ ['partnering', 'partner'],
+ ['matching', 'match'],
+ ['accessing', 'access'],
+ ['experiencing', 'experience'],
+ ['buying', 'buy'],
+ ['exploring', 'explore'],
+ ['calculating', 'calculate'],
+ ['teaching', 'teach'],
+ ['generating', 'generate'],
+ ['varying', 'vary'],
+ ['assuming', 'assume'],
+ ['marking', 'mark'],
+ ['calling', 'call'],
+ ['driving', 'drive'],
+ ['cleaning', 'clean'],
+ ['selecting', 'select'],
+ ['spending', 'spend'],
+ ['engaging', 'engage'],
+ ['returning', 'return'],
+ ['comparing', 'compare'],
+ ['running', 'run'],
+ ['wishing', 'wish'],
+ ['eliminating', 'eliminate'],
+ ['demonstrating', 'demonstrate'],
+ ['hiring', 'hire'],
+ ['opening', 'open'],
+ ['communicating', 'communicate'],
+ ['arriving', 'arrive'],
+ ['filing', 'file'],
+ ['extending', 'extend'],
+ ['controlling', 'control'],
+ ['tracking', 'track'],
+ ['handling', 'handle'],
+ ['adopting', 'adopt'],
+ ['preserving', 'preserve'],
+ ['forming', 'form'],
+ ['parenting', 'parent'],
+ ['policing', 'police'],
+ ['shipping', 'ship'],
+ ['outlining', 'outline'],
+ ['signing', 'sign'],
+ ['introducing', 'introduce'],
+ ['waiting', 'wait'],
+ ['choosing', 'choose'],
+ ['threatening', 'threaten'],
+ ['stating', 'state'],
+ ['celebrating', 'celebrate'],
+ ['issuing', 'issue'],
+ ['contacting', 'contact'],
+ ['sending', 'send'],
+ ['seeding', 'seed'],
+ ['qualifying', 'qualify'],
+ ['drawing', 'draw'],
+ ['testing', 'test'],
+ ['investigating', 'investigate'],
+ ['distributing', 'distribute'],
+ ['seeing', 'see'],
+ ['saying', 'say'],
+ ['asking', 'ask'],
+ ['marketing', 'market'],
+ ['weighing', 'weigh'],
+ ['suggesting', 'suggest'],
+ ['explaining', 'explain'],
+ ['discussing', 'discuss'],
+ ['accounting', 'account'],
+ ['placing', 'place'],
+ ['designing', 'design'],
+ ['gaining', 'gain'],
+ ['securing', 'secure'],
+ ['removing', 'remove'],
+ ['decreasing', 'decrease'],
+ ['informing', 'inform'],
+ ['turning', 'turn'],
+ ['treating', 'treat'],
+ ['thinking', 'think'],
+ ['joining', 'join'],
+ ['sponsoring', 'sponsor'],
+ ['amending', 'amend'],
+ ['searching', 'search'],
+ ['retaining', 'retain'],
+ ['fulfilling', 'fulfill'],
+ ['influencing', 'influence'],
+ ['reading', 'read'],
+ ['missing', 'miss'],
+ ['standing', 'stand'],
+ ['estimating', 'estimate'],
+ ['featuring', 'feature'],
+ ['planting', 'plant'],
+ ['shaping', 'shape'],
+ ['reinforcing', 'reinforce'],
+ ['combining', 'combine'],
+ ['leveraging', 'leverage'],
+ ['comprising', 'comprise'],
+ ['analyzing', 'analyze'],
+ ['purchasing', 'purchase'],
+ ['updating', 'update'],
+ ['highlighting', 'highlight'],
+ ['consulting', 'consult'],
+ ['recruiting', 'recruit'],
+ ['knowing', 'know'],
+ ['drafting', 'draft'],
+ ['acquiring', 'acquire'],
+ ['sustaining', 'sustain'],
+ ['transferring', 'transfer'],
+ ['confirming', 'confirm'],
+ ['accepting', 'accept'],
+ ['referring', 'refer'],
+ ['grading', 'grade'],
+ ['launching', 'launch'],
+ ['replacing', 'replace'],
+ ['filling', 'fill'],
+ ['claiming', 'claim'],
+ ['appearing', 'appear'],
+ ['transporting', 'transport'],
+ ['connecting', 'connect'],
+ ['benefiting', 'benefit'],
+ ['talking', 'talk'],
+ ['collaborating', 'collaborate'],
+ ['winning', 'win'],
+ ['accompanying', 'accompany'],
+ ['meaning', 'mean'],
+ ['ordering', 'order'],
+ ['hatching', 'hatch'],
+ ['gathering', 'gather'],
+ ['welcoming', 'welcome'],
+ ['deciding', 'decide'],
+ ['challenging', 'challenge'],
+ ['posting', 'post'],
+ ['losing', 'lose'],
+ ['proposing', 'propose'],
+ ['registering', 'register'],
+ ['recording', 'record'],
+ ['publishing', 'publish'],
+ ['closing', 'close'],
+ ['listening', 'listen'],
+ ['translating', 'translate'],
+ ['inviting', 'invite'],
+ ['cropping', 'crop'],
+ ['interpreting', 'interpret'],
+ ['totalling', 'total'],
+ ['attempting', 'attempt'],
+ ['disseminating', 'disseminate'],
+ ['tendering', 'tender'],
+ ['crossing', 'cross'],
+ ['maximizing', 'maximize'],
+ ['employing', 'employ'],
+ ['concluding', 'conclude'],
+ ['profiling', 'profil'],
+ ['breaking', 'break'],
+ ['labelling', 'label'],
+ ['prescribing', 'prescribe'],
+ ['touring', 'tour'],
+ ['adapting', 'adapt'],
+ ['showcasing', 'showcase'],
+ ['neighbouring', 'neighbour'],
+ ['shifting', 'shift'],
+ ['allocating', 'allocate'],
+ ['authorizing', 'authorize'],
+ ['resolving', 'resolve'],
+ ['preceding', 'precede'],
+ ['costing', 'cost'],
+ ['approving', 'approve'],
+ ['specifying', 'specify'],
+ ['utilizing', 'utilize'],
+ ['editing', 'edit'],
+ ['branding', 'brand'],
+ ['volunteering', 'volunteer'],
+ ['pressing', 'press'],
+ ['failing', 'fail'],
+ ['upgrading', 'upgrade'],
+ ['minimizing', 'minimize'],
+ ['avoiding', 'avoid'],
+ ['clarifying', 'clarify'],
+ ['lacking', 'lack'],
+ ['emphasizing', 'emphasize'],
+ ['differing', 'differ'],
+ ['initiating', 'initiate'],
+ ['announcing', 'announce'],
+ ['feeding', 'feed'],
+ ['farming', 'farm'],
+ ['stimulating', 'stimulate'],
+ ['sitting', 'sit'],
+ ['happening', 'happen'],
+ ['educating', 'educate'],
+ ['viewing', 'view'],
+ ['exercising', 'exercise'],
+ ['summarizing', 'summarize'],
+ ['regulating', 'regulate'],
+ ['residing', 'reside'],
+ ['suffering', 'suffer'],
+ ['commencing', 'commence'],
+ ['permitting', 'permit'],
+ ['advising', 'advise'],
+ ['pruning', 'prune'],
+ ['specializing', 'specialize'],
+ ['expressing', 'express'],
+ ['breeding', 'breed'],
+ ['broadening', 'broaden'],
+ ['supplying', 'supply'],
+ ['drying', 'dry'],
+ ['earning', 'earn'],
+ ['licensing', 'license'],
+ ['modelling', 'model'],
+ ['contracting', 'contract'],
+ ['financing', 'finance'],
+ ['climbing', 'climb'],
+ ['adjusting', 'adjust'],
+ ['undergoing', 'undergo'],
+ ['bridging', 'bridge'],
+ ['screening', 'screen'],
+ ['detailing', 'detail'],
+ ['directing', 'direct'],
+ ['proceeding', 'proceed'],
+ ['capturing', 'capture'],
+ ['mailing', 'mail'],
+ ['demanding', 'demand'],
+ ['bearing', 'bear'],
+ ['outsourcing', 'outsource'],
+ ['realizing', 'realize'],
+ ['complying', 'comply'],
+ ['documenting', 'document'],
+ ['solving', 'solve'],
+ ['passing', 'pass'],
+ ['enforcing', 'enforce'],
+ ['fighting', 'fight'],
+ ['relying', 'rely'],
+ ['watching', 'watch'],
+ ['malting', 'malt'],
+ ['mentoring', 'mentore'],
+ ['clearing', 'clear'],
+ ['balancing', 'balance'],
+ ['overseeing', 'oversee'],
+ ['broadcasting', 'broadcast'],
+ ['acknowledging', 'acknowledge'],
+ ['pooling', 'pool'],
+ ['laying', 'lay'],
+ ['transmitting', 'transmit'],
+ ['eating', 'eat'],
+ ['mixing', 'mix'],
+ ['transforming', 'transform'],
+ ['recommending', 'recommend'],
+ ['packing', 'pack'],
+ ['approaching', 'approach'],
+ ['verifying', 'verify'],
+ ['combating', 'combat'],
+ ['renewing', 'renew'],
+ ['spraying', 'spray'],
+ ['stemming', 'stem'],
+ ['averaging', 'average'],
+ ['infringing', 'infringe'],
+ ['releasing', 'release'],
+ ['betting', 'bet'],
+ ['distinguishing', 'distinguish'],
+ ['lowering', 'lower'],
+ ['networking', 'network'],
+ ['binding', 'bind'],
+ ['imposing', 'impose'],
+ ['furthering', 'further'],
+ ['attaining', 'attain'],
+ ['committing', 'commit'],
+ ['researching', 'research'],
+ ['coding', 'code'],
+ ['telling', 'tell'],
+ ['checking', 'check'],
+ ['wanting', 'want'],
+ ['certifying', 'certify'],
+ ['loading', 'load'],
+ ['listing', 'list'],
+ ['booking', 'book'],
+ ['nurturing', 'nurture'],
+ ['bullying', 'bully'],
+ ['staying', 'stay'],
+ ['sourcing', 'source'],
+ ['dividing', 'divide'],
+ ['streaming', 'stream'],
+ ['crushing', 'crush'],
+ ['benchmarking', 'benchmark'],
+ ['restricting', 'restrict'],
+ ['optimizing', 'optimize'],
+ ['answering', 'answer'],
+ ['rounding', 'round'],
+ ['agreeing', 'agree'],
+ ['recurring', 'recur'],
+ ['designating', 'designate'],
+ ['expecting', 'expect'],
+ ['saving', 'save'],
+ ['flowing', 'flow'],
+ ['impacting', 'impact'],
+ ['flying', 'fly'],
+ ['awarding', 'award'],
+ ['accelerating', 'accelerate'],
+ ['spreading', 'spread'],
+ ['prohibiting', 'prohibit'],
+ ['restoring', 'restore'],
+ ['functioning', 'function'],
+ ['misleading', 'mislead'],
+ ['streamlining', 'streamline'],
+ ['citing', 'cite'],
+ ['dying', 'die'],
+ ['aiming', 'aim'],
+ ['messaging', 'message'],
+ ['reproducing', 'reproduce'],
+ ['storing', 'store'],
+ ['signaling', 'signal'],
+ ['encompassing', 'encompass'],
+ ['sporting', 'sport'],
+ ['pumping', 'pump'],
+ ['doping', 'dope'],
+ ['sampling', 'sample'],
+ ['revising', 'revise'],
+ ['modifying', 'modify'],
+ ['retiring', 'retire'],
+ ['hearing', 'hear'],
+ ['printing', 'print'],
+ ['detecting', 'detect'],
+ ['rolling', 'roll'],
+ ['mounting', 'mount'],
+ ['drinking', 'drink'],
+ ['baking', 'bake'],
+ ['dropping', 'drop'],
+ ['converting', 'convert'],
+ ['alleging', 'allege'],
+ ['advocating', 'advocate'],
+ ['welding', 'weld'],
+ ['recovering', 'recover'],
+ ['assembling', 'assemble'],
+ ['struggling', 'struggle'],
+ ['finishing', 'finish'],
+ ['guiding', 'guide'],
+ ['embracing', 'embrace'],
+ ['cataloguing', 'catalogue'],
+ ['stabilizing', 'stabilize'],
+ ['modernizing', 'modernize'],
+ ['awaiting', 'await'],
+ ['steering', 'steer'],
+ ['nominating', 'nominate'],
+ ['ensuing', 'ensue'],
+ ['wearing', 'wear'],
+ ['carding', 'card'],
+ ['clicking', 'click'],
+ ['slowing', 'slow'],
+ ['forecasting', 'forecast'],
+ ['separating', 'separate'],
+ ['consolidating', 'consolidate'],
+ ['assigning', 'assign'],
+ ['antidumping', 'antidump'],
+ ['advertizing', 'advertize'],
+ ['safeguarding', 'safeguard'],
+ ['declaring', 'declare'],
+ ['coping', 'cope'],
+ ['scanning', 'scan'],
+ ['forging', 'forge'],
+ ['arguing', 'argue'],
+ ['prevailing', 'prevail'],
+ ['enriching', 'enrich'],
+ ['questioning', 'question'],
+ ['needing', 'need'],
+ ['counting', 'count'],
+ ['harmonizing', 'harmonize'],
+ ['enjoying', 'enjoy'],
+ ['shrinking', 'shrink'],
+ ['unloading', 'unload'],
+ ['constructing', 'construct'],
+ ['walking', 'walk'],
+ ['displaying', 'display'],
+ ['interviewing', 'interview'],
+ ['pushing', 'push'],
+ ['proving', 'prove'],
+ ['valuing', 'value'],
+ ['locating', 'locate'],
+ ['illustrating', 'illustrate'],
+ ['mobilizing', 'mobilize'],
+ ['multiplying', 'multiply'],
+ ['dating', 'date'],
+ ['shooting', 'shoot'],
+ ['simplifying', 'simplify'],
+ ['diminishing', 'diminish'],
+ ['pointing', 'point'],
+ ['boosting', 'boost'],
+ ['promising', 'promise'],
+ ['discovering', 'discover'],
+ ['breastfeeding', 'breastfeed'],
+ ['tabling', 'table'],
+ ['hoping', 'hope'],
+ ['diversifying', 'diversify'],
+ ['offsetting', 'offset'],
+ ['trapping', 'trap'],
+ ['striving', 'strive'],
+ ['cooperating', 'cooperate'],
+ ['cooling', 'cool'],
+ ['formulating', 'formulate'],
+ ['switching', 'switch'],
+ ['surviving', 'survive'],
+ ['scouting', 'scout'],
+ ['maturing', 'mature'],
+ ['grinding', 'grind'],
+ ['doubling', 'double'],
+ ['renting', 'rent'],
+ ['interacting', 'interact'],
+ ['scoring', 'score'],
+ ['departing', 'depart'],
+ ['sealing', 'seal'],
+ ['positioning', 'position'],
+ ['stopping', 'stop'],
+ ['commemorating', 'commemorate'],
+ ['exposing', 'expose'],
+ ['compiling', 'compile'],
+ ['refining', 'refine'],
+ ['exploiting', 'exploit'],
+ ['adhering', 'adhere'],
+ ['heating', 'heat'],
+ ['intoxicating', 'intoxicate'],
+ ['defending', 'defend'],
+ ['casing', 'case'],
+ ['lobbying', 'lobby'],
+ ['feeling', 'feel'],
+ ['routing', 'rout'],
+ ['overcoming', 'overcome'],
+ ['practising', 'practise'],
+ ['compromising', 'compromise'],
+ ['arranging', 'arrange'],
+ ['terminating', 'terminate'],
+ ['warehousing', 'warehouse'],
+ ['commissioning', 'commission'],
+ ['confronting', 'confront'],
+ ['forcing', 'force'],
+ ['anticipating', 'anticipate'],
+ ['trending', 'trend'],
+ ['appealing', 'appeal'],
+ ['soliciting', 'solicit'],
+ ['settling', 'settle'],
+ ['tracing', 'trace'],
+ ['counterfeiting', 'counterfeit'],
+ ['floating', 'float'],
+ ['analysing', 'analyse'],
+ ['peacekeeping', 'peacekeep'],
+ ['filtering', 'filter'],
+ ['withdrawing', 'withdraw'],
+ ['amounting', 'amount'],
+ ['empowering', 'empower'],
+ ['leaching', 'leach'],
+ ['exchanging', 'exchange'],
+ ['motivating', 'motivate'],
+ ['predicting', 'predict'],
+ ['escalating', 'escalate'],
+ ['guaranteeing', 'guarantee'],
+ ['aligning', 'align'],
+ ['numbering', 'number'],
+ ['spanning', 'span'],
+ ['exhibiting', 'exhibit'],
+ ['lading', 'lade'],
+ ['assuring', 'assure'],
+ ['washing', 'wash'],
+ ['rendering', 'render'],
+ ['bonding', 'bond'],
+ ['insulating', 'insulate'],
+ ['finalizing', 'finalize'],
+ ['disclosing', 'disclose'],
+ ['harming', 'harm'],
+ ['practicing', 'practice'],
+ ['burgeoning', 'burgeon'],
+ ['manufacturing', 'manufacture'],
+ ['supervising', 'supervise'],
+ ['caring', 'care'],
+ ['stamping', 'stamp'],
+ ['coasting', 'coast'],
+ ['circulating', 'circulate'],
+ ['appointing', 'appoint'],
+ ['pioneering', 'pioneer'],
+ ['harnessing', 'harness'],
+ ['charging', 'charge'],
+ ['sorting', 'sort'],
+ ['executing', 'execute'],
+ ['projecting', 'project'],
+ ['altering', 'alter'],
+ ['mapping', 'map'],
+ ['filmmaking', 'filmmak'],
+ ['stereotyping', 'stereotype'],
+ ['incurring', 'incur'],
+ ['correcting', 'correct'],
+ ['overwintering', 'overwinter'],
+ ['structuring', 'structure'],
+ ['favouring', 'favour'],
+ ['tackling', 'tackle'],
+ ['honouring', 'honour'],
+ ['servicing', 'service'],
+ ['soaring', 'soar'],
+ ['deteriorating', 'deteriorate'],
+ ['rotating', 'rotate'],
+ ['mowing', 'mow'],
+ ['believing', 'believe'],
+ ['reforming', 'reform'],
+ ['accommodating', 'accommodate'],
+ ['concentrating', 'concentrate'],
+ ['installing', 'install'],
+ ['forwarding', 'forward'],
+ ['intending', 'intend'],
+ ['conserving', 'conserve'],
+ ['presiding', 'preside'],
+ ['emanating', 'emanate'],
+ ['judging', 'judge'],
+ ['sequencing', 'sequence'],
+ ['withholding', 'withhold'],
+ ['attesting', 'attest'],
+ ['staffing', 'staff'],
+ ['mentioning', 'mention'],
+ ['computing', 'compute'],
+ ['commenting', 'comment'],
+ ['intervening', 'intervene'],
+ ['capitalizing', 'capitalize'],
+ ['logging', 'log'],
+ ['progressing', 'progress'],
+ ['denying', 'deny'],
+ ['deepening', 'deepen'],
+ ['picking', 'pick'],
+ ['opposing', 'oppose'],
+ ['distorting', 'distort'],
+ ['nursing', 'nurse'],
+ ['instituting', 'institute'],
+ ['mitigating', 'mitigate'],
+ ['trading', 'trade'],
+ ['reversing', 'reverse'],
+ ['decisionmaking', 'decisionmak'],
+ ['fixing', 'fix'],
+ ['deducting', 'deduct'],
+ ['articulating', 'articulate'],
+ ['delaying', 'delay'],
+ ['mountaineering', 'mountaineer'],
+ ['conveying', 'convey'],
+ ['graduating', 'graduate'],
+ ['rebuilding', 'rebuild'],
+ ['validating', 'validate'],
+ ['hiking', 'hike'],
+ ['weakening', 'weaken'],
+ ['eradicating', 'eradicate'],
+ ['observing', 'observe'],
+ ['classifying', 'classify'],
+ ['scheduling', 'schedule'],
+ ['naming', 'name'],
+ ['reconciling', 'reconcile'],
+ ['dispensing', 'dispense'],
+ ['cultivating', 'cultivate'],
+ ['satisfying', 'satisfy'],
+ ['staging', 'stage'],
+ ['inspecting', 'inspect'],
+ ['stressing', 'stress'],
+ ['revitalizing', 'revitalize'],
+ ['blocking', 'block'],
+ ['yielding', 'yield'],
+ ['tapping', 'tap'],
+ ['voting', 'vote'],
+ ['packaging', 'package'],
+ ['lodging', 'lodge'],
+ ['killing', 'kill'],
+ ['cloning', 'clon'],
+ ['violating', 'violate'],
+ ['accruing', 'accrue'],
+ ['photocopying', 'photocopy'],
+ ['riding', 'ride'],
+ ['destroying', 'destroy'],
+ ['retraining', 'retrain'],
+ ['enacting', 'enact'],
+ ['formatting', 'format'],
+ ['succeeding', 'succeed'],
+ ['subtracting', 'subtract'],
+ ['merging', 'merge'],
+ ['copying', 'copy'],
+ ['officiating', 'officiate'],
+ ['letting', 'let'],
+ ['justifying', 'justify'],
+ ['composting', 'compost'],
+ ['possessing', 'possess'],
+ ['lagging', 'lag'],
+ ['differentiating', 'differentiate'],
+ ['surveying', 'survey'],
+ ['moulding', 'mould'],
+ ['thanking', 'thank'],
+ ['refusing', 'refuse'],
+ ['bidding', 'bid'],
+ ['striking', 'strike'],
+ ['constituting', 'constitute'],
+ ['widening', 'widen'],
+ ['blending', 'blend'],
+ ['innovating', 'innovate'],
+ ['stocking', 'stock'],
+ ['repairing', 'repair'],
+ ['sawing', 'saw'],
+ ['wrapping', 'wrap'],
+ ['commercializing', 'commercialize'],
+ ['ranking', 'rank'],
+ ['posing', 'pose'],
+ ['patenting', 'patent'],
+ ['lending', 'lend'],
+ ['inserting', 'insert'],
+ ['appreciating', 'appreciate'],
+ ['fuelling', 'fuel'],
+ ['invoicing', 'invoice'],
+ ['thinning', 'thin'],
+ ['lingering', 'linger'],
+ ['stepping', 'step'],
+ ['sliding', 'slide'],
+ ['drilling', 'drill'],
+ ['notifying', 'notify'],
+ ['founding', 'found'],
+ ['surpassing', 'surpass'],
+ ['impeding', 'impede'],
+ ['complementing', 'complement'],
+ ['depicting', 'depict'],
+ ['lasting', 'last'],
+ ['transplanting', 'transplant'],
+ ['stacking', 'stack'],
+ ['deriving', 'derive'],
+ ['owning', 'own'],
+ ['quoting', 'quote'],
+ ['consuming', 'consume'],
+ ['alternating', 'alternate'],
+ ['prototyping', 'prototyp'],
+ ['auditing', 'audit'],
+ ['restructuring', 'restructure'],
+ ['undermining', 'undermine'],
+ ['exempting', 'exempt'],
+ ['mulching', 'mulch'],
+ ['dressing', 'dress'],
+ ['hitting', 'hit'],
+ ['phasing', 'phase'],
+ ['pulling', 'pull'],
+ ['weaving', 'weave'],
+ ['milling', 'mill'],
+ ['enrolling', 'enroll'],
+ ['filming', 'film'],
+ ['machining', 'machine'],
+ ['healing', 'heal'],
+ ['characterizing', 'characterize'],
+ ['internationalizing', 'internationalize'],
+ ['borrowing', 'borrow'],
+ ['conferencing', 'conference'],
+ ['sensing', 'sense'],
+ ['peaking', 'peak'],
+ ['contemplating', 'contemplate'],
+ ['underpinning', 'underpin'],
+ ['tanning', 'tan'],
+ ['refrigerating', 'refrigerate'],
+ ['devoting', 'devote'],
+ ['harvesting', 'harvest'],
+ ['championing', 'champion'],
+ ['alleviating', 'alleviate'],
+ ['compensating', 'compensate'],
+ ['tying', 'tie'],
+ ['decorating', 'decorate'],
+ ['crosscutting', 'crosscut'],
+ ['ignoring', 'ignore'],
+ ['extracting', 'extract'],
+ ['easing', 'ease'],
+ ['dedicating', 'dedicate'],
+ ['embarking', 'embark'],
+ ['prompting', 'prompt'],
+ ['cooking', 'cook'],
+ ['eroding', 'erode'],
+ ['narrowing', 'narrow'],
+ ['occupying', 'occupy'],
+ ['attaching', 'attach'],
+ ['implying', 'imply'],
+ ['duplicating', 'duplicate'],
+ ['slaughtering', 'slaughter'],
+ ['upholding', 'uphold'],
+ ['affirming', 'affirm'],
+ ['hauling', 'haul'],
+ ['fluctuating', 'fluctuate'],
+ ['lifting', 'lift'],
+ ['convening', 'convene'],
+ ['conforming', 'conform'],
+ ['mining', 'mine'],
+ ['rejecting', 'reject'],
+ ['substantiating', 'substantiate'],
+ ['liaising', 'liaise'],
+ ['devising', 'devise'],
+ ['navigating', 'navigate'],
+ ['catching', 'catch'],
+ ['revealing', 'reveal'],
+ ['racing', 'race'],
+ ['dampening', 'dampen'],
+ ['nesting', 'nest'],
+ ['resembling', 'resemble'],
+ ['curing', 'cure'],
+ ['disposing', 'dispose'],
+ ['sounding', 'sound'],
+ ['sweetening', 'sweeten'],
+ ['sowing', 'sow'],
+ ['tutoring', 'tutor'],
+ ['pricing', 'price'],
+ ['revisiting', 'revisit'],
+ ['grouping', 'group'],
+ ['substituting', 'substitute'],
+ ['thriving', 'thrive'],
+ ['hedging', 'hedge'],
+ ['lining', 'line'],
+ ['coaching', 'coach'],
+ ['netting', 'net'],
+ ['furnishing', 'furnish'],
+ ['polishing', 'polish'],
+ ['watering', 'water'],
+ ['supplementing', 'supplement'],
+ ['subscribing', 'subscribe'],
+ ['spinning', 'spin'],
+ ['synthesizing', 'synthesize'],
+ ['rethinking', 'rethink'],
+ ['intensifying', 'intensify'],
+ ['reciprocating', 'reciprocate'],
+ ['rescinding', 'rescind'],
+ ['ratifying', 'ratify'],
+ ['offending', 'offend'],
+ ['charting', 'chart'],
+ ['deploying', 'deploy'],
+ ['nearing', 'near'],
+ ['portraying', 'portray'],
+ ['catering', 'cater'],
+ ['damaging', 'damage'],
+ ['casting', 'cast'],
+ ['blowing', 'blow'],
+ ['ruling', 'rule'],
+ ['fleeing', 'flee'],
+ ['culminating', 'culminate'],
+ ['flowering', 'flower'],
+ ['discharging', 'discharge'],
+ ['converging', 'converge'],
+ ['spotting', 'spot'],
+ ['ticketing', 'ticket'],
+ ['quantifying', 'quantify'],
+ ['rating', 'rate'],
+ ['aiding', 'aid'],
+ ['bending', 'bend'],
+ ['relieving', 'relieve'],
+ ['quarrying', 'quarry'],
+ ['levelling', 'level'],
+ ['basing', 'base'],
+ ['wholesaling', 'wholesale'],
+ ['browsing', 'browse'],
+ ['leasing', 'lease'],
+ ['gauging', 'gauge'],
+ ['purifying', 'purify'],
+ ['interfering', 'interfere'],
+ ['lubricating', 'lubricate'],
+ ['exiting', 'exit'],
+ ['preferring', 'prefer'],
+ ['discouraging', 'discourage'],
+ ['camping', 'camp'],
+ ['spawning', 'spawn'],
+ ['bundling', 'bundle'],
+ ['conferring', 'confer'],
+ ['touching', 'touch'],
+ ['popping', 'pop'],
+ ['effecting', 'effect'],
+ ['inhibiting', 'inhibit'],
+ ['chewing', 'chew'],
+ ['underlining', 'underline'],
+ ['debriefing', 'debrief'],
+ ['contrasting', 'contrast'],
+ ['stretching', 'stretch'],
+ ['warning', 'warn'],
+ ['summing', 'sum'],
+ ['witnessing', 'witness'],
+ ['disappearing', 'disappear'],
+ ['chairing', 'chair'],
+ ['mating', 'mate'],
+ ['plaiting', 'plait'],
+ ['divorcing', 'divorce'],
+ ['piloting', 'pilot'],
+ ['speeding', 'speed'],
+ ['cancelling', 'cancel'],
+ ['digitizing', 'digitize'],
+ ['replicating', 'replicate'],
+ ['affording', 'afford'],
+ ['taxing', 'tax'],
+ ['redefining', 'redefin'],
+ ['opting', 'opt'],
+ ['constraining', 'constrain'],
+ ['publicizing', 'publicize'],
+ ['burning', 'burn'],
+ ['excavating', 'excavate'],
+ ['consenting', 'consent'],
+ ['grazing', 'graze'],
+ ['yellowing', 'yellow'],
+ ['ripening', 'ripen'],
+ ['songwriting', 'songwrite'],
+ ['standardizing', 'standardize'],
+ ['reminding', 'remind'],
+ ['remembering', 'remember'],
+ ['repositioning', 'reposition'],
+ ['tightening', 'tighten'],
+ ['lessening', 'lessen'],
+ ['circumventing', 'circumvent'],
+ ['seizing', 'seize'],
+ ['referencing', 'reference'],
+ ['locking', 'lock'],
+ ['sterilizing', 'sterilize'],
+ ['dyeing', 'dye'],
+ ['tending', 'tend'],
+ ['videoconferencing', 'videoconference'],
+ ['diagnosing', 'diagnose'],
+ ['reacting', 'react'],
+ ['descending', 'descend'],
+ ['looming', 'loom'],
+ ['waiving', 'waive'],
+ ['surging', 'surge'],
+ ['fitting', 'fit'],
+ ['clustering', 'cluster'],
+ ['lying', 'lie'],
+ ['stalking', 'stalk'],
+ ['wilting', 'wilt'],
+ ['backing', 'back'],
+ ['stitching', 'stitch'],
+ ['tailoring', 'tailor'],
+ ['rooting', 'root'],
+ ['migrating', 'migrate'],
+ ['hurting', 'hurt'],
+ ['rebounding', 'rebound'],
+ ['expediting', 'expedite'],
+ ['unveiling', 'unveil'],
+ ['canoeing', 'canoe'],
+ ['accumulating', 'accumulate'],
+ ['deterring', 'deter'],
+ ['immigrating', 'immigrate'],
+ ['attacking', 'attack'],
+ ['reaffirming', 'reaffirm'],
+ ['fencing', 'fence'],
+ ['capping', 'cap'],
+ ['colouring', 'colour'],
+ ['germinating', 'germinate'],
+ ['freezing', 'freeze'],
+ ['remedying', 'remedy'],
+ ['absorbing', 'absorb'],
+ ['splitting', 'split'],
+ ['boating', 'boat'],
+ ['equipping', 'equip'],
+ ['typing', 'type'],
+ ['formalizing', 'formalize'],
+ ['scaling', 'scale'],
+ ['defaulting', 'default'],
+ ['soldering', 'solder'],
+ ['knitting', 'knit'],
+ ['decoding', 'decode'],
+ ['fishing', 'fish'],
+ ['sacrificing', 'sacrifice'],
+ ['renovating', 'renovate'],
+ ['hanging', 'hang'],
+ ['augmenting', 'augment'],
+ ['relaxing', 'relax'],
+ ['endorsing', 'endorse'],
+ ['shortening', 'shorten'],
+ ['recycling', 'recycle'],
+ ['repeating', 'repeat'],
+ ['hindering', 'hinder'],
+ ['undercutting', 'undercut'],
+ ['fingerprinting', 'fingerprint'],
+ ['displacing', 'displace'],
+ ['dismantling', 'dismantle'],
+ ['emitting', 'emit'],
+ ['countering', 'counter'],
+ ['cracking', 'crack'],
+ ['stunting', 'stunt'],
+ ['flavouring', 'flavour'],
+ ['scripting', 'script'],
+ ['injecting', 'inject'],
+ ['twinning', 'twin'],
+ ['breathing', 'breathe'],
+ ['boarding', 'board'],
+ ['boiling', 'boil'],
+ ['ticking', 'tick'],
+ ['greeting', 'greet'],
+ ['triggering', 'trigger'],
+ ['rewarding', 'reward'],
+ ['fruiting', 'fruit'],
+ ['stipulating', 'stipulate'],
+ ['threading', 'thread'],
+ ['experimenting', 'experiment'],
+ ['blurring', 'blur'],
+ ['redesigning', 'redesign'],
+ ['paging', 'page'],
+ ['jumping', 'jump'],
+ ['crowding', 'crowd'],
+ ['associating', 'associate'],
+ ['carving', 'carve'],
+ ['freeing', 'free'],
+ ['accomplishing', 'accomplish'],
+ ['recalling', 'recall'],
+ ['penetrating', 'penetrate'],
+ ['tubing', 'tube'],
+ ['stiffening', 'stiffen'],
+ ['discriminating', 'discriminate'],
+ ['framing', 'frame'],
+ ['spearheading', 'spearhead'],
+ ['disabling', 'disable'],
+ ['keying', 'key'],
+ ['flaming', 'flame'],
+ ['tripling', 'triple'],
+ ['sizing', 'size'],
+ ['outpacing', 'outpace'],
+ ['expiring', 'expire'],
+ ['attributing', 'attribute'],
+ ['skating', 'skate'],
+ ['diverting', 'divert'],
+ ['insisting', 'insist'],
+ ['golfing', 'golf'],
+ ['reaping', 'reap'],
+ ['urging', 'urge'],
+ ['winding', 'wind'],
+ ['lighting', 'light'],
+ ['signifying', 'signify'],
+ ['debating', 'debate'],
+ ['weighting', 'weight'],
+ ['procuring', 'procure'],
+ ['compounding', 'compound'],
+ ['decommissioning', 'decommission'],
+ ['embodying', 'embody'],
+ ['dispersing', 'disperse'],
+ ['boring', 'bore'],
+ ['centralizing', 'centralize'],
+ ['crafting', 'craft'],
+ ['alerting', 'alert'],
+ ['deferring', 'defer'],
+ ['handing', 'hand'],
+ ['curbing', 'curb'],
+ ['discounting', 'discount'],
+ ['asserting', 'assert'],
+ ['shining', 'shine'],
+ ['milking', 'milk'],
+ ['grappling', 'grapple'],
+ ['donating', 'donate'],
+ ['tuning', 'tune'],
+ ['proofreading', 'proofread'],
+ ['lapsing', 'lapse'],
+ ['slitting', 'slit'],
+ ['ascending', 'ascend'],
+ ['insuring', 'insure'],
+ ['complicating', 'complicate'],
+ ['dining', 'dine'],
+ ['lapping', 'lap'],
+ ['bathing', 'bath'],
+ ['beating', 'beat'],
+ ['stripping', 'strip'],
+ ['transiting', 'transit'],
+ ['tagging', 'tag'],
+ ['plugging', 'plug'],
+ ['mediating', 'mediate'],
+ ['belting', 'belt'],
+ ['injuring', 'injure'],
+ ['reclaiming', 'reclaim'],
+ ['repackaging', 'repackage'],
+ ['rationing', 'ration'],
+ ['retooling', 'retool'],
+ ['subtitling', 'subtitle'],
+ ['probing', 'probe'],
+ ['draining', 'drain'],
+ ['swimming', 'swim'],
+ ['paving', 'pave'],
+ ['complaining', 'complain'],
+ ['overlapping', 'overlap'],
+ ['administrating', 'administrate'],
+ ['suspending', 'suspend'],
+ ['barring', 'bar'],
+ ['postponing', 'postpone'],
+ ['moderating', 'moderate'],
+ ['convincing', 'convince'],
+ ['unwavering', 'unwaver'],
+ ['unfolding', 'unfold'],
+ ['manipulating', 'manipulate'],
+ ['metering', 'meter'],
+ ['disrupting', 'disrupt'],
+ ['ranching', 'ranch'],
+ ['mastering', 'master'],
+ ['captioning', 'caption'],
+ ['smelting', 'smelt'],
+ ['tampering', 'tamper'],
+ ['smoothing', 'smooth'],
+ ['bleaching', 'bleach'],
+ ['aggregating', 'aggregate'],
+ ['arming', 'arm'],
+ ['coinciding', 'coincide'],
+ ['pairing', 'pair'],
+ ['dwindling', 'dwindle'],
+ ['docking', 'dock'],
+ ['rafting', 'raft'],
+ ['categorizing', 'categorize'],
+ ['exerting', 'exert'],
+ ['jeopardizing', 'jeopardize'],
+ ['throwing', 'throw'],
+ ['landscaping', 'landscape'],
+ ['acceding', 'accede'],
+ ['stealing', 'steal'],
+ ['accrediting', 'accredit'],
+ ['foregoing', 'forego'],
+ ['sensitizing', 'sensitize'],
+ ['dissolving', 'dissolve'],
+ ['wrestling', 'wrestle'],
+ ['extruding', 'extrude'],
+ ['diverging', 'diverge'],
+ ['grafting', 'graft'],
+ ['fasting', 'fast'],
+ ['transcribing', 'transcribe'],
+ ['boxing', 'box'],
+ ['detaining', 'detain'],
+ ['forgetting', 'forget'],
+ ['encoding', 'encode'],
+ ['shedding', 'shed'],
+ ['suppressing', 'suppress'],
+ ['banning', 'ban'],
+ ['stirring', 'stir'],
+ ['gambling', 'gamble'],
+ ['encountering', 'encounter'],
+ ['simulating', 'simulate'],
+ ['commuting', 'commute'],
+ ['trimming', 'trim'],
+ ['abandoning', 'abandon'],
+ ['firing', 'fire'],
+ ['scrambling', 'scramble'],
+ ['ceasing', 'cease'],
+ ['polluting', 'pollute'],
+ ['precluding', 'preclude'],
+ ['transacting', 'transact'],
+ ['inducing', 'induce'],
+ ['unpacking', 'unpack'],
+ ['perforating', 'perforate'],
+ ['licencing', 'licence'],
+ ['realigning', 'realign'],
+ ['splashing', 'splash'],
+ ['decaying', 'decay'],
+ ['coating', 'coat'],
+ ['gluing', 'glue'],
+ ['isolating', 'isolate'],
+ ['blanketing', 'blanket'],
+ ['slipping', 'slip'],
+ ['worsening', 'worsen'],
+ ['softening', 'soften'],
+ ['escaping', 'escape'],
+ ['drifting', 'drift'],
+ ['hampering', 'hamper'],
+ ['creeping', 'creep'],
+ ['bolstering', 'bolster'],
+ ['garnering', 'garner'],
+ ['hiding', 'hide'],
+ ['ionizing', 'ionize'],
+ ['marrying', 'marry'],
+ ['rebalancing', 'rebalance'],
+ ['repaying', 'repay'],
+ ['shearing', 'shear'],
+ ['catalyzing', 'catalyze'],
+ ['girdling', 'girdle'],
+ ['confounding', 'confound'],
+ ['piling', 'pile'],
+ ['amplifying', 'amplify'],
+ ['rationalizing', 'rationalize'],
+ ['slicing', 'slice'],
+ ['refreshing', 'refresh'],
+ ['composing', 'compose'],
+ ['astounding', 'astound'],
+ ['discontinuing', 'discontinue'],
+ ['subcontracting', 'subcontract'],
+ ['underscoring', 'underscore'],
+ ['shopping', 'shop'],
+ ['flooding', 'flood'],
+ ['abolishing', 'abolish'],
+ ['factoring', 'factor'],
+ ['conflicting', 'conflict'],
+ ['towing', 'tow'],
+ ['deserving', 'deserve'],
+ ['sticking', 'stick'],
+ ['embossing', 'emboss'],
+ ['synchronizing', 'synchronize'],
+ ['resuming', 'resume'],
+ ['vetting', 'vet'],
+ ['instructing', 'instruct'],
+ ['calibrating', 'calibrate'],
+ ['enclosing', 'enclose'],
+ ['taping', 'tape'],
+ ['ascertaining', 'ascertain'],
+ ['predisposing', 'predispose'],
+ ['farrowing', 'farrow'],
+ ['planing', 'plane'],
+ ['smoking', 'smoke'],
+ ['activating', 'activate'],
+ ['resorting', 'resort'],
+ ['wondering', 'wonder'],
+ ['neutralizing', 'neutralize'],
+ ['automating', 'automate'],
+ ['extenuating', 'extenuate'],
+ ['relocating', 'relocate'],
+ ['topping', 'top'],
+ ['eliciting', 'elicit'],
+ ['socializing', 'socialize'],
+ ['trailing', 'trail'],
+ ['enticing', 'entice'],
+ ['dictating', 'dictate'],
+ ['sleeping', 'sleep'],
+ ['curling', 'curl'],
+ ['starring', 'star'],
+ ['babysitting', 'babysit'],
+ ['solidifying', 'solidify'],
+ ['uniting', 'unite'],
+ ['aspiring', 'aspire'],
+ ['trampling', 'trample'],
+ ['teaming', 'team'],
+ ['appraising', 'appraise'],
+ ['delegating', 'delegate'],
+ ['confining', 'confine'],
+ ['fertilizing', 'fertilize'],
+ ['reinstating', 'reinstate'],
+ ['banding', 'band'],
+ ['pickling', 'pickle'],
+ ['tunnelling', 'tunnel'],
+ ['piercing', 'pierce'],
+ ['frying', 'fry'],
+ ['redressing', 'redress'],
+ ['engendering', 'engender'],
+ ['prosecuting', 'prosecute'],
+ ['sentencing', 'sentence'],
+ ['depositing', 'deposit'],
+ ['enduring', 'endure'],
+ ['elevating', 'elevate'],
+ ['rallying', 'rally'],
+ ['flattening', 'flatten'],
+ ['painting', 'paint'],
+ ['dancing', 'dance'],
+ ['airing', 'air'],
+ ['gearing', 'gear'],
+ ['ramping', 'ramp'],
+ ['skyrocketing', 'skyrocket'],
+ ['dominating', 'dominate'],
+ ['tasting', 'taste'],
+ ['pitching', 'pitch'],
+ ['steaming', 'steam'],
+ ['impairing', 'impair'],
+ ['ventilating', 'ventilate'],
+ ['damping', 'damp'],
+ ['scouring', 'scour'],
+ ['revoking', 'revoke'],
+ ['contaminating', 'contaminate'],
+ ['franchising', 'franchise'],
+ ['deeming', 'deem'],
+ ['zeroing', 'zero'],
+ ['cohabiting', 'cohabit'],
+ ['intersecting', 'intersect'],
+ ['dubbing', 'dub'],
+ ['merchandizing', 'merchandize'],
+ ['adjudicating', 'adjudicate'],
+ ['saluting', 'salute'],
+ ['annealing', 'anneal'],
+ ['dismissing', 'dismiss'],
+ ['subjecting', 'subject'],
+ ['excepting', 'except'],
+ ['reorganizing', 'reorganize'],
+ ['drumming', 'drum'],
+ ['sanctioning', 'sanction'],
+ ['elaborating', 'elaborate'],
+ ['waning', 'wane'],
+ ['restraining', 'restrain'],
+ ['perpetuating', 'perpetuate'],
+ ['curtailing', 'curtail'],
+ ['illuminating', 'illuminate'],
+ ['prolonging', 'prolong'],
+ ['refuelling', 'refuel'],
+ ['recognising', 'recognise'],
+ ['brazing', 'braze'],
+ ['galvanizing', 'galvanize'],
+ ['amalgamating', 'amalgamate'],
+ ['inciting', 'incite'],
+ ['vending', 'vend'],
+ ['reselling', 'resell'],
+ ['customizing', 'customize'],
+ ['canvassing', 'canvass'],
+ ['microfilming', 'microfilm'],
+ ['weeding', 'weed'],
+ ['brokering', 'broker'],
+ ['policymaking', 'policymak'],
+ ['tilling', 'till'],
+ ['rotting', 'rot'],
+ ['melting', 'melt'],
+ ['terracing', 'terrace'],
+ ['sucking', 'suck'],
+ ['reigning', 'reign'],
+ ['aerating', 'aerate'],
+ ['diluting', 'dilute'],
+ ['backwashing', 'backwash'],
+ ['admitting', 'admit'],
+ ['underperforming', 'underperform'],
+ ['resting', 'rest'],
+ ['surfing', 'surf'],
+ ['abusing', 'abuse'],
+ ['interlocking', 'interlock'],
+ ['embedding', 'embed'],
+ ['billing', 'bill'],
+ ['faxing', 'fax'],
+ ['invading', 'invade'],
+ ['distilling', 'distil'],
+ ['swelling', 'swell'],
+ ['tipping', 'tip'],
+ ['electing', 'elect'],
+ ['confusing', 'confuse'],
+ ['reinvesting', 'reinvest'],
+ ['spurring', 'spur'],
+ ['hardening', 'harden'],
+ ['bordering', 'border'],
+ ['polarizing', 'polarize'],
+ ['singing', 'sing'],
+ ['resisting', 'resist'],
+ ['necessitating', 'necessitate'],
+ ['reopening', 'reopen'],
+ ['pledging', 'pledge'],
+ ['reshaping', 'reshape'],
+ ['overarching', 'overarch'],
+ ['wintering', 'winter'],
+ ['modulating', 'modulate'],
+ ['baling', 'bale'],
+ ['threshing', 'thresh'],
+ ['potting', 'pot'],
+ ['landing', 'land'],
+ ['remitting', 'remit'],
+ ['sifting', 'sift'],
+ ['penalizing', 'penalize'],
+ ['boning', 'bone'],
+ ['disregarding', 'disregard'],
+ ['encapsulating', 'encapsulate'],
+ ['rectifying', 'rectify'],
+ ['concealing', 'conceal'],
+ ['intercepting', 'intercept'],
+ ['proclaiming', 'proclaim'],
+ ['laminating', 'laminate'],
+ ['figuring', 'figure'],
+ ['paddling', 'paddle'],
+ ['faring', 'fare'],
+ ['depriving', 'deprive'],
+ ['evidencing', 'evidence'],
+ ['corresponding', 'correspond'],
+ ['reeling', 'reel'],
+ ['crimping', 'crimp'],
+ ['edging', 'edge'],
+ ['anchoring', 'anchor'],
+ ['uncovering', 'uncover'],
+ ['flourishing', 'flourish'],
+ ['scratching', 'scratch'],
+ ['honing', 'hone'],
+ ['reinventing', 'reinvent'],
+ ['mandating', 'mandate'],
+ ['objecting', 'object'],
+ ['revolving', 'revolve'],
+ ['deleting', 'delete'],
+ ['spelling', 'spell'],
+ ['quitting', 'quit'],
+ ['pouring', 'pour'],
+ ['budgeting', 'budget'],
+ ['teleconferencing', 'teleconference'],
+ ['wasting', 'waste'],
+ ['reallocating', 'reallocate'],
+ ['sanding', 'sand'],
+ ['shadowing', 'shadow'],
+ ['punching', 'punch'],
+ ['infecting', 'infect'],
+ ['ploughing', 'plough'],
+ ['disinfecting', 'disinfect'],
+ ['wiping', 'wipe'],
+ ['condensing', 'condense'],
+ ['redistributing', 'redistribute'],
+ ['housing', 'house'],
+ ['fastening', 'fasten'],
+ ['perfuming', 'perfume'],
+ ['calendering', 'calender'],
+ ['voicing', 'voice'],
+ ['mooring', 'moor'],
+ ['sinking', 'sink'],
+ ['unlocking', 'unlock'],
+ ['phoning', 'phone'],
+ ['risking', 'risk'],
+ ['heightening', 'heighten'],
+ ['reserving', 'reserve'],
+ ['breaching', 'breach'],
+ ['depreciating', 'depreciate'],
+ ['symbolizing', 'symbolize'],
+ ['underwriting', 'underwrite'],
+ ['regaining', 'regain'],
+ ['depleting', 'deplete'],
+ ['detracting', 'detract'],
+ ['sprouting', 'sprout'],
+ ['energizing', 'energize'],
+ ['bagging', 'bag'],
+ ['overturning', 'overturn'],
+ ['entertaining', 'entertain'],
+ ['provoking', 'provoke'],
+ ['rehabilitating', 'rehabilitate'],
+ ['fracturing', 'fracture'],
+ ['desiring', 'desire'],
+ ['retreading', 'retread'],
+ ['steelmaking', 'steelmak'],
+ ['revamping', 'revamp'],
+ ['segregating', 'segregate'],
+ ['crawling', 'crawl'],
+ ['straightening', 'straighten'],
+ ['worrying', 'worry'],
+ ['perplexing', 'perplex'],
+ ['conceptualizing', 'conceptualize'],
+ ['monetizing', 'monetize'],
+ ['watermarking', 'watermark'],
+ ['humiliating', 'humiliate'],
+ ['remanufacturing', 'remanufacture'],
+ ['masking', 'mask'],
+ ['dialing', 'dial'],
+ ['exacerbating', 'exacerbate'],
+ ['inspiring', 'inspire'],
+ ['precipitating', 'precipitate'],
+ ['equating', 'equate'],
+ ['bypassing', 'bypass'],
+ ['enlarging', 'enlarge'],
+ ['omitting', 'omit'],
+ ['liberalizing', 'liberalize'],
+ ['luring', 'lure'],
+ ['pressuring', 'pressure'],
+ ['exploding', 'explode'],
+ ['shaking', 'shake'],
+ ['jogging', 'jog'],
+ ['propelling', 'propel'],
+ ['leaking', 'leak'],
+ ['surrendering', 'surrender'],
+ ['neglecting', 'neglect'],
+ ['imparting', 'impart'],
+ ['relaunching', 'relaunch'],
+ ['channelling', 'channel'],
+ ['remarking', 'remark'],
+ ['forbidding', 'forbid'],
+ ['disciplining', 'discipline'],
+ ['roaming', 'roam'],
+ ['clipping', 'clip'],
+ ['arresting', 'arrest'],
+ ['repealing', 'repeal'],
+ ['expending', 'expend'],
+ ['wetting', 'wet'],
+ ['irrigating', 'irrigate'],
+ ['decomposing', 'decompose'],
+ ['renaming', 'rename'],
+ ['ditching', 'ditch'],
+ ['emptying', 'empty'],
+ ['reassessing', 'reassess'],
+ ['vaccinating', 'vaccinate'],
+ ['bunching', 'bunch'],
+ ['denigrating', 'denigrate'],
+ ['sharpening', 'sharpen'],
+ ['punishing', 'punish'],
+ ['presuming', 'presume'],
+ ['testifying', 'testify'],
+ ['tolling', 'toll'],
+ ['indexing', 'index'],
+ ['retrieving', 'retrieve'],
+ ['snowshoeing', 'snowshoe'],
+ ['outperforming', 'outperform'],
+ ['downsizing', 'downsize'],
+ ['sparking', 'spark'],
+ ['echoing', 'echo'],
+ ['pinpointing', 'pinpoint'],
+ ['reconsidering', 'reconsider'],
+ ['overlooking', 'overlook'],
+ ['relaying', 'relay'],
+ ['enlisting', 'enlist'],
+ ['perfecting', 'perfect'],
+ ['branching', 'branch'],
+ ['commending', 'commend'],
+ ['pitting', 'pit'],
+ ['defeating', 'defeat'],
+ ['contravening', 'contravene'],
+ ['congratulating', 'congratulate'],
+ ['equalizing', 'equalize'],
+ ['nourishing', 'nourish'],
+ ['underfunding', 'underfund'],
+ ['retailing', 'retail'],
+ ['resurfacing', 'resurface'],
+ ['plotting', 'plot'],
+ ['lettering', 'letter'],
+ ['burying', 'bury'],
+ ['imputing', 'impute'],
+ ['degrading', 'degrade'],
+ ['flushing', 'flush'],
+ ['crusting', 'crust'],
+ ['spacing', 'space'],
+ ['shading', 'shade'],
+ ['notching', 'notch'],
+ ['scalding', 'scald'],
+ ['earmarking', 'earmark'],
+ ['refilling', 'refill'],
+ ['homogenizing', 'homogenize'],
+ ['disputing', 'dispute'],
+ ['kneading', 'knead'],
+ ['sintering', 'sinter'],
+ ['blinding', 'blind'],
+ ['swearing', 'swear'],
+ ['imaging', 'image'],
+ ['rejuvenating', 'rejuvenate'],
+ ['trawling', 'trawl'],
+ ['abiding', 'abide'],
+ ['plowing', 'plow'],
+ ['scrutinizing', 'scrutinize'],
+ ['segmenting', 'segment'],
+ ['excelling', 'excel'],
+ ['skiing', 'ski'],
+ ['dreaming', 'dream'],
+ ['exhilarating', 'exhilarate'],
+ ['hunting', 'hunt'],
+ ['disagreeing', 'disagree'],
+ ['wandering', 'wander'],
+ ['tilting', 'tilt'],
+ ['rearing', 'rear'],
+ ['overheating', 'overheat'],
+ ['dipping', 'dip'],
+ ['bustling', 'bustle'],
+ ['swapping', 'swap'],
+ ['recounting', 'recount'],
+ ['erecting', 'erect'],
+ ['redirecting', 'redirect'],
+ ['halting', 'halt'],
+ ['oscillating', 'oscillate'],
+ ['stuffing', 'stuff'],
+ ['quenching', 'quench'],
+ ['noticing', 'notice'],
+ ['reviving', 'revive'],
+ ['refurbishing', 'refurbish'],
+ ['vesting', 'vest'],
+ ['invoking', 'invoke'],
+ ['invalidating', 'invalidate'],
+ ['compressing', 'compress'],
+ ['venting', 'vent'],
+ ['merchandising', 'merchandise'],
+ ['divulging', 'divulge'],
+ ['subsisting', 'subsist'],
+ ['replying', 'reply'],
+ ['flashing', 'flash'],
+ ['straining', 'strain'],
+ ['proofing', 'proof'],
+ ['vaporizing', 'vaporize'],
+ ['foraging', 'forage'],
+ ['budding', 'bud'],
+ ['staining', 'stain'],
+ ['grooving', 'groove'],
+ ['wounding', 'wound'],
+ ['delineating', 'delineate'],
+ ['lactating', 'lactate'],
+ ['pleasing', 'please'],
+ ['clotting', 'clot'],
+ ['promulgating', 'promulgate'],
+ ['legitimizing', 'legitimize'],
+ ['demystifying', 'demystify'],
+ ['pulping', 'pulp'],
+ ['generalizing', 'generalize'],
+ ['orienting', 'orient'],
+ ['broaching', 'broach'],
+ ['folding', 'fold'],
+ ['birthing', 'birth'],
+ ['braking', 'brake'],
+ ['disfiguring', 'disfigure'],
+ ['stifling', 'stifle'],
+ ['boasting', 'boast'],
+ ['timing', 'time'],
+ ['reassuring', 'reassure'],
+ ['vacationing', 'vacation'],
+ ['sparing', 'spare'],
+ ['regrouping', 'regroup'],
+ ['tacking', 'tack'],
+ ['chucking', 'chuck'],
+ ['bleeding', 'bleed'],
+ ['entrenching', 'entrench'],
+ ['clamping', 'clamp'],
+ ['cashing', 'cash'],
+ ['gratifying', 'gratify'],
+ ['maximising', 'maximise'],
+ ['reprinting', 'reprint'],
+ ['rinsing', 'rinse'],
+ ['familiarizing', 'familiarize'],
+ ['recouping', 'recoup'],
+ ['cementing', 'cement'],
+ ['scraping', 'scrape'],
+ ['democratizing', 'democratize'],
+ ['grasping', 'grasp'],
+ ['defraying', 'defray'],
+ ['normalizing', 'normalize'],
+ ['weaning', 'wean'],
+ ['extrapolating', 'extrapolate'],
+ ['cycling', 'cycle'],
+ ['disbursing', 'disburse'],
+ ['endeavouring', 'endeavour'],
+ ['molting', 'molt'],
+ ['devolving', 'devolve'],
+ ['blossoming', 'blossom'],
+ ['wading', 'wade'],
+ ['refuting', 'refute'],
+ ['escorting', 'escort'],
+ ['disembarking', 'disembark'],
+ ['strapping', 'strap'],
+ ['reclining', 'recline'],
+ ['privatizing', 'privatize'],
+ ['dredging', 'dredge'],
+ ['abating', 'abate'],
+ ['compelling', 'compel'],
+ ['mirroring', 'mirror'],
+ ['organising', 'organise'],
+ ['warming', 'warm'],
+ ['waving', 'wave'],
+ ['tumbling', 'tumble'],
+ ['battling', 'battle'],
+ ['contending', 'contend'],
+ ['intimidating', 'intimidate'],
+ ['pampering', 'pamper'],
+ ['lengthening', 'lengthen'],
+ ['invigorating', 'invigorate'],
+ ['spotlighting', 'spotlight'],
+ ['apportioning', 'apportion'],
+ ['authoring', 'authore'],
+ ['persisting', 'persist'],
+ ['tempering', 'temper'],
+ ['preaching', 'preach'],
+ ['vying', 'vie'],
+ ['evaporating', 'evaporate'],
+ ['crumbling', 'crumble'],
+ ['bracing', 'brace'],
+ ['bubbling', 'bubble'],
+ ['grooming', 'groom'],
+ ['reusing', 'reuse'],
+ ['repatriating', 'repatriate'],
+ ['unraveling', 'unravel'],
+ ['piping', 'pipe'],
+ ['engineering', 'engineer'],
+ ['chipping', 'chip'],
+ ['clogging', 'clog'],
+ ['malfunctioning', 'malfunction'],
+ ['alloying', 'alloy'],
+ ['minding', 'mind'],
+ ['appropriating', 'appropriate'],
+ ['authenticating', 'authenticate'],
+ ['videotaping', 'videotape'],
+ ['warranting', 'warrant'],
+ ['reprocessing', 'reprocess'],
+ ['affixing', 'affix'],
+ ['shattering', 'shatter'],
+ ['falsifying', 'falsify'],
+ ['bursting', 'burst'],
+ ['reworking', 'rework'],
+ ['renegotiating', 'renegotiate'],
+ ['refocusing', 'refocus'],
+ ['inventing', 'invent'],
+ ['sculpting', 'sculpt'],
+ ['economizing', 'economize'],
+ ['encrypting', 'encrypt'],
+ ['sheltering', 'shelter'],
+ ['fogging', 'fog'],
+ ['harrowing', 'harrow'],
+ ['shredding', 'shred'],
+ ['browning', 'brown'],
+ ['bruising', 'bruise'],
+ ['trucking', 'truck'],
+ ['interrupting', 'interrupt'],
+ ['denoting', 'denote'],
+ ['surfacing', 'surface'],
+ ['breading', 'bread'],
+ ['fragmenting', 'fragment'],
+ ['legislating', 'legislate'],
+ ['frustrating', 'frustrate'],
+ ['surprising', 'surprise'],
+ ['gardening', 'garden'],
+ ['bowling', 'bowl'],
+ ['elucidating', 'elucidate'],
+ ['blanking', 'blank'],
+ ['stapling', 'staple'],
+ ['felling', 'fell'],
+ ['eviscerating', 'eviscerate'],
+ ['imprinting', 'imprint'],
+ ['hemming', 'hem'],
+ ['sheeting', 'sheet'],
+ ['puffing', 'puff'],
+ ['kicking', 'kick'],
+ ['imagining', 'imagine'],
+ ['uttering', 'utter'],
+ ['resubmitting', 'resubmit'],
+ ['fallowing', 'fallow'],
+ ['drowning', 'drown'],
+ ['behaving', 'behave'],
+ ['rewriting', 'rewrite'],
+ ['polling', 'poll'],
+ ['trekking', 'trek'],
+ ['aggravating', 'aggravate'],
+ ['hovering', 'hover'],
+ ['encroaching', 'encroach'],
+ ['persuading', 'persuade'],
+ ['fading', 'fade'],
+ ['stagnating', 'stagnate'],
+ ['bucking', 'buck'],
+ ['shutting', 'shut'],
+ ['soaking', 'soak'],
+ ['fearing', 'fear'],
+ ['knocking', 'knock'],
+ ['biting', 'bite'],
+ ['banking', 'bank'],
+ ['incubating', 'incubate'],
+ ['globalizing', 'globalize'],
+ ['thawing', 'thaw'],
+ ['revolutionizing', 'revolutionize'],
+ ['pounding', 'pound'],
+ ['grabbing', 'grab'],
+ ['delving', 'delve'],
+ ['contesting', 'contest'],
+ ['criticizing', 'criticize'],
+ ['mourning', 'mourn'],
+ ['manifesting', 'manifest'],
+ ['decentralizing', 'decentralize'],
+ ['reiterating', 'reiterate'],
+ ['inquiring', 'inquire'],
+ ['sewing', 'sew'],
+ ['availing', 'avail'],
+ ['relinquishing', 'relinquish'],
+ ['silencing', 'silence'],
+ ['patching', 'patch'],
+ ['instilling', 'instill'],
+ ['offloading', 'offload'],
+ ['zoning', 'zone'],
+ ['bolting', 'bolt'],
+ ['meshing', 'mesh'],
+ ['profiting', 'profit'],
+ ['sequestering', 'sequester'],
+ ['tabulating', 'tabulate'],
+ ['dwarfing', 'dwarf'],
+ ['bronzing', 'bronze'],
+ ['digging', 'dig'],
+ ['scarring', 'scar'],
+ ['skinning', 'skin'],
+ ['burrowing', 'burrow'],
+ ['reorienting', 'reorient'],
+ ['reasoning', 'reason'],
+ ['grossing', 'gross'],
+ ['reconditioning', 'recondition'],
+ ['fermenting', 'ferment'],
+ ['preexisting', 'preexist'],
+ ['speculating', 'speculate'],
+ ['averting', 'avert'],
+ ['emulsifying', 'emulsify'],
+ ['marinating', 'marinate'],
+ ['marginalizing', 'marginalize'],
+ ['smudging', 'smudge'],
+ ['implicating', 'implicate'],
+ ['vanishing', 'vanish'],
+ ['engraving', 'engrave'],
+ ['tearing', 'tear'],
+ ['fusing', 'fuse'],
+ ['slotting', 'slot'],
+ ['concurring', 'concur'],
+ ['spoofing', 'spoof'],
+ ['decrypting', 'decrypt'],
+ ['advertising', 'advertise'],
+ ['interdicting', 'interdict'],
+ ['foaming', 'foam'],
+ ['dosing', 'dose'],
+ ['interlining', 'interline'],
+ ['burnishing', 'burnish'],
+ ['singeing', 'singe'],
+ ['electrogalvanizing', 'electrogalvanize'],
+ ['trusting', 'trust'],
+ ['overflowing', 'overflow'],
+ ['immersing', 'immerse'],
+ ['flocking', 'flock'],
+ ['chatting', 'chat'],
+ ['roughing', 'rough'],
+ ['looping', 'loop'],
+ ['outfitting', 'outfit'],
+ ['receding', 'recede'],
+ ['dragging', 'drag'],
+ ['centering', 'center'],
+ ['harbouring', 'harbour'],
+ ['bumping', 'bump'],
+ ['decelerating', 'decelerate'],
+ ['venturing', 'venture'],
+ ['alienating', 'alienate'],
+ ['roasting', 'roast'],
+ ['cabling', 'cable'],
+ ['manoeuvring', 'manoeuvre'],
+ ['occuring', 'occure'],
+ ['firefighting', 'firefight'],
+ ['chronicling', 'chronicle'],
+ ['fabricating', 'fabricate'],
+ ['obliging', 'oblige'],
+ ['enlightening', 'enlighten'],
+ ['rescheduling', 'reschedule'],
+ ['destabilizing', 'destabilize'],
+ ['resigning', 'resign'],
+ ['caulking', 'caulk'],
+ ['reordering', 'reorder'],
+ ['diffusing', 'diffuse'],
+ ['flooring', 'floor'],
+ ['powering', 'power'],
+ ['forgoing', 'forgo'],
+ ['shoplifting', 'shoplift'],
+ ['vulcanizing', 'vulcanize'],
+ ['radiating', 'radiate'],
+ ['subdividing', 'subdivide'],
+ ['daunting', 'daunt'],
+ ['uprooting', 'uproot'],
+ ['discing', 'disc'],
+ ['sanitizing', 'sanitize'],
+ ['endangering', 'endanger'],
+ ['buffering', 'buffer'],
+ ['parking', 'park'],
+ ['dispelling', 'dispel'],
+ ['propagating', 'propagate'],
+ ['fumigating', 'fumigate'],
+ ['mottling', 'mottle'],
+ ['lightening', 'lighten'],
+ ['reapplying', 'reapply'],
+ ['blaming', 'blame'],
+ ['prejudging', 'prejudge'],
+ ['flaking', 'flake'],
+ ['depressing', 'depress'],
+ ['trenching', 'trench'],
+ ['dehydrating', 'dehydrate'],
+ ['emulating', 'emulate'],
+ ['conceiving', 'conceive'],
+ ['hailing', 'hail'],
+ ['unleashing', 'unleash'],
+ ['upsetting', 'upset'],
+ ['immunizing', 'immunize'],
+ ['antagonizing', 'antagonize'],
+ ['racking', 'rack'],
+ ['typesetting', 'typeset'],
+ ['hardworking', 'hardwork'],
+ ['accentuating', 'accentuate'],
+ ['awakening', 'awaken'],
+ ['headlining', 'headline'],
+ ['reprogramming', 'reprogram'],
+ ['pasting', 'paste'],
+ ['disassembling', 'disassemble'],
+ ['assaulting', 'assault'],
+ ['extinguishing', 'extinguish'],
+ ['disobeying', 'disobey'],
+ ['reuniting', 'reunite'],
+ ['stigmatizing', 'stigmatize'],
+ ['commingling', 'commingle'],
+ ['icing', 'ice'],
+ ['unlading', 'unlade'],
+ ['detonating', 'detonate'],
+ ['bunkering', 'bunker'],
+ ['vulcanising', 'vulcanise'],
+ ['descaling', 'descale'],
+ ['priming', 'prime'],
+ ['autoclaving', 'autoclave'],
+ ['praising', 'praise'],
+ ['twisting', 'twist'],
+ ['scrubbing', 'scrub'],
+ ['spilling', 'spill'],
+ ['receipting', 'receipt'],
+ ['telephoning', 'telephone'],
+ ['bragging', 'brag'],
+ ['replenishing', 'replenish'],
+ ['materializing', 'materialize'],
+ ['majoring', 'major'],
+ ['sightseeing', 'sightsee'],
+ ['emphasising', 'emphasise'],
+ ['unwinding', 'unwind'],
+ ['decompressing', 'decompress'],
+ ['visualizing', 'visualize'],
+ ['grounding', 'ground'],
+ ['clouding', 'cloud'],
+ ['actualizing', 'actualize'],
+ ['stalling', 'stall'],
+ ['billeting', 'billet'],
+ ['lecturing', 'lecture'],
+ ['conspiring', 'conspire'],
+ ['rearranging', 'rearrange'],
+ ['outstripping', 'outstrip'],
+ ['interesting', 'interest'],
+ ['plummeting', 'plummet'],
+ ['plunging', 'plunge'],
+ ['inflating', 'inflate'],
+ ['corroborating', 'corroborate'],
+ ['brightening', 'brighten'],
+ ['raging', 'rage'],
+ ['roving', 'rove'],
+ ['stencilling', 'stencil'],
+ ['rescuing', 'rescue'],
+ ['daring', 'dare'],
+ ['laughing', 'laugh'],
+ ['busking', 'busk'],
+ ['juggling', 'juggle'],
+ ['sailing', 'sail'],
+ ['predating', 'predate'],
+ ['reconstructing', 'reconstruct'],
+ ['conquering', 'conquer'],
+ ['electroplating', 'electroplate'],
+ ['alluding', 'allude'],
+ ['nullifying', 'nullify'],
+ ['contradicting', 'contradict'],
+ ['recharging', 'recharg'],
+ ['entitling', 'entitle'],
+ ['impinging', 'impinge'],
+ ['liquidating', 'liquidate'],
+ ['tweaking', 'tweak'],
+ ['optimising', 'optimise'],
+ ['guarding', 'guard'],
+ ['spying', 'spy'],
+ ['conditioning', 'condition'],
+ ['embalming', 'embalm'],
+ ['choking', 'choke'],
+ ['sweeping', 'sweep'],
+ ['imitating', 'imitate'],
+ ['counteracting', 'counteract'],
+ ['deciphering', 'decipher'],
+ ['overcrowding', 'overcrowd'],
+ ['petitioning', 'petition'],
+ ['pollinating', 'pollinate'],
+ ['severing', 'sever'],
+ ['secreting', 'secrete'],
+ ['pasteurizing', 'pasteurize'],
+ ['blasting', 'blast'],
+ ['sugaring', 'sugar'],
+ ['redeveloping', 'redevelop'],
+ ['halving', 'halve'],
+ ['culling', 'cull'],
+ ['commanding', 'command'],
+ ['whipping', 'whip'],
+ ['bottling', 'bottle'],
+ ['pinning', 'pin'],
+ ['overlying', 'overlie'],
+ ['infiltrating', 'infiltrate'],
+ ['jetting', 'jet'],
+ ['trembling', 'tremble'],
+ ['swallowing', 'swallow'],
+ ['stewing', 'stew'],
+ ['brooding', 'brood'],
+ ['evading', 'evade'],
+ ['filleting', 'fillet'],
+ ['unifying', 'unify'],
+ ['teasing', 'tease'],
+ ['approximating', 'approximate'],
+ ['seating', 'seat'],
+ ['rocking', 'rock'],
+ ['briefing', 'brief'],
+ ['waking', 'wake'],
+ ['springing', 'spring'],
+ ['dabbling', 'dabble'],
+ ['prejudicing', 'prejudice'],
+ ['harassing', 'harass'],
+ ['mimicking', 'mimick'],
+ ['chasing', 'chase'],
+ ['crating', 'crate'],
+ ['retouching', 'retouch'],
+ ['hoisting', 'hoist'],
+ ['institutionalizing', 'institutionalize'],
+ ['condemning', 'condemn'],
+ ['humbling', 'humble'],
+ ['incapacitating', 'incapacitate'],
+ ['corrupting', 'corrupt'],
+ ['kneeling', 'kneel'],
+ ['lashing', 'lash'],
+ ['nailing', 'nail'],
+ ['vibrating', 'vibrate'],
+ ['reassembling', 'reassemble'],
+ ['supercalendering', 'supercalender'],
+ ['morticing', 'mortice'],
+ ['banting', 'bant'],
+ ['sheathing', 'sheath'],
+ ['diving', 'dive'],
+ ['abstracting', 'abstract'],
+ ['scrolling', 'scroll'],
+ ['kidding', 'kid'],
+ ['transcending', 'transcend'],
+ ['requisitioning', 'requisition'],
+ ['cruising', 'cruise'],
+ ['spiralling', 'spiral'],
+ ['loosing', 'loose'],
+ ['tramping', 'tramp'],
+ ['liking', 'like'],
+ ['laddering', 'ladder'],
+ ['chanting', 'chant'],
+ ['roaring', 'roar'],
+ ['bouncing', 'bounce'],
+ ['littering', 'litter'],
+ ['paralleling', 'parallel'],
+ ['photographing', 'photograph'],
+ ['fetching', 'fetch'],
+ ['cautioning', 'caution'],
+ ['shoring', 'shore'],
+ ['withstanding', 'withstand'],
+ ['overriding', 'override'],
+ ['inflicting', 'inflict'],
+ ['squeezing', 'squeeze'],
+ ['swinging', 'swing'],
+ ['smiling', 'smile'],
+ ['rushing', 'rush'],
+ ['blazing', 'blaze'],
+ ['swathing', 'swathe'],
+ ['recirculating', 'recirculate'],
+ ['bulking', 'bulk'],
+ ['incriminating', 'incriminate'],
+ ['liberating', 'liberate'],
+ ['molding', 'mold'],
+ ['endeavoring', 'endeavor'],
+ ['inhabiting', 'inhabit'],
+ ['faltering', 'falter'],
+ ['befitting', 'befit'],
+ ['grieving', 'grieve'],
+ ['stevedoring', 'stevedore'],
+ ['criminalizing', 'criminalize'],
+ ['dusting', 'dust'],
+ ['irritating', 'irritate'],
+ ['gaming', 'game'],
+ ['padding', 'pad'],
+ ['computerizing', 'computerize'],
+ ['underestimating', 'underestimate'],
+ ['envisioning', 'envision'],
+ ['clinging', 'cling'],
+ ['purporting', 'purport'],
+ ['reconfiguring', 'reconfigure'],
+ ['configuring', 'configure'],
+ ['oxidizing', 'oxidize'],
+ ['screaming', 'scream'],
+ ['levering', 'lever'],
+ ['visioning', 'vision'],
+ ['scaring', 'scare'],
+ ['pecking', 'peck'],
+ ['webbing', 'web'],
+ ['pupating', 'pupate'],
+ ['podding', 'pod'],
+ ['silking', 'silk'],
+ ['flecking', 'fleck'],
+ ['raking', 'rake'],
+ ['peeling', 'peel'],
+ ['enunciating', 'enunciate'],
+ ['mingling', 'mingle'],
+ ['disintegrating', 'disintegrate'],
+ ['fattening', 'fatten'],
+ ['cumulating', 'cumulate'],
+ ['grilling', 'grill'],
+ ['ingesting', 'ingest'],
+ ['fouling', 'foul'],
+ ['inferring', 'infer'],
+ ['refinancing', 'refinance'],
+ ['ceding', 'cede'],
+ ['suing', 'sue'],
+ ['interrogating', 'interrogate'],
+ ['contextualizing', 'contextualize'],
+ ['crediting', 'credit'],
+ ['overshooting', 'overshoot'],
+ ['lumping', 'lump'],
+ ['bewildering', 'bewilder'],
+ ['redrafting', 'redraft'],
+ ['firming', 'firm'],
+ ['disallowing', 'disallow'],
+ ['brimming', 'brim'],
+ ['feasting', 'feast'],
+ ['schooling', 'school'],
+ ['minimising', 'minimise'],
+ ['indemnifying', 'indemnify'],
+ ['assimilating', 'assimilate'],
+ ['gleaning', 'glean'],
+ ['cataloging', 'cataloge'],
+ ['pretending', 'pretend'],
+ ['tailing', 'tail'],
+ ['trafficking', 'traffick'],
+ ['skewing', 'skew'],
+ ['copyrighting', 'copyright'],
+ ['publicising', 'publicise'],
+ ['telecasting', 'telecast'],
+ ['orchestrating', 'orchestrate'],
+ ['erasing', 'erase'],
+ ['sniffing', 'sniff'],
+ ['dishwashing', 'dishwash'],
+ ['faceting', 'facet'],
+ ['immobilizing', 'immobilize'],
+ ['telescoping', 'telescope'],
+ ['interlacing', 'interlace'],
+ ['plastering', 'plaster'],
+ ['dieting', 'diet'],
+ ['ameliorating', 'ameliorate'],
+ ['dissecting', 'dissect'],
+ ['shelving', 'shelve'],
+ ['unforgiving', 'unforgive'],
+ ['assaying', 'assay'],
+ ['rerouting', 'reroute'],
+ ['fringing', 'fringe'],
+ ['reimbursing', 'reimburse'],
+ ['reintroducing', 'reintroduce'],
+ ['delighting', 'delight'],
+ ['sipping', 'sip'],
+ ['gliding', 'glide'],
+ ['ballooning', 'balloon'],
+ ['motoring', 'motor'],
+ ['wedding', 'wed'],
+ ['popularizing', 'popularize'],
+ ['outing', 'out'],
+ ['weathering', 'weather'],
+ ['chopping', 'chop'],
+ ['singling', 'single'],
+ ['relegating', 'relegate'],
+ ['industrializing', 'industrialize'],
+ ['pegging', 'peg'],
+ ['plaguing', 'plague'],
+ ['refraining', 'refrain'],
+ ['wooing', 'woo'],
+ ['obstructing', 'obstruct'],
+ ['stranding', 'strand'],
+ ['staking', 'stake'],
+ ['tiring', 'tire'],
+ ['devouring', 'devour'],
+ ['braising', 'braise'],
+ ['marching', 'march'],
+ ['streaking', 'streak'],
+ ['hacking', 'hack'],
+ ['quadrupling', 'quadruple'],
+ ['animating', 'animate'],
+ ['fashioning', 'fashion'],
+ ['moisturizing', 'moisturize'],
+ ['articling', 'article'],
+ ['applauding', 'applaud'],
+ ['appending', 'append'],
+ ['entailing', 'entail'],
+ ['superseding', 'supersede'],
+ ['resurrecting', 'resurrect'],
+ ['heeding', 'heed'],
+ ['evoking', 'evoke'],
+ ['deliberating', 'deliberate'],
+ ['afflicting', 'afflict'],
+ ['codifying', 'codify'],
+ ['outlawing', 'outlaw'],
+ ['disconcerting', 'disconcert'],
+ ['biasing', 'bias'],
+ ['deviating', 'deviate'],
+ ['guessing', 'guess'],
+ ['voiding', 'void'],
+ ['abutting', 'abut'],
+ ['leaning', 'lean'],
+ ['masquerading', 'masquerade'],
+ ['divesting', 'divest'],
+ ['underpricing', 'underprice'],
+ ['internalizing', 'internalize'],
+ ['redeeming', 'redeem'],
+ ['disentangling', 'disentangle'],
+ ['flaring', 'flare'],
+ ['coking', 'coke'],
+ ['pirating', 'pirate'],
+ ['unbundling', 'unbundle'],
+ ['shielding', 'shield'],
+ ['readying', 'ready'],
+ ['chaining', 'chain'],
+ ['protesting', 'protest'],
+ ['backdating', 'backdate'],
+ ['excusing', 'excuse'],
+ ['queuing', 'queue'],
+ ['rejoining', 'rejoin'],
+ ['overburdening', 'overburden'],
+ ['recreating', 'recreate'],
+ ['prospering', 'prosper'],
+ ['wagering', 'wager'],
+ ['calving', 'calve'],
+ ['gnawing', 'gnaw'],
+ ['sloping', 'slope'],
+ ['stratifying', 'stratify'],
+ ['blooming', 'bloom'],
+ ['smothering', 'smother'],
+ ['hilling', 'hill'],
+ ['chilling', 'chill'],
+ ['thickening', 'thicken'],
+ ['overspending', 'overspend'],
+ ['pursing', 'purse'],
+ ['itching', 'itch'],
+ ['gelling', 'gell'],
+ ['purging', 'purge'],
+ ['combing', 'comb'],
+ ['bartering', 'barter'],
+ ['pelleting', 'pellet'],
+ ['fobbing', 'fob'],
+ ['perching', 'perch'],
+ ['robbing', 'rob'],
+ ['cribbing', 'crib'],
+ ['predominating', 'predominate'],
+ ['pollarding', 'pollard'],
+ ['curving', 'curve'],
+ ['margining', 'margin'],
+ ['straying', 'stray'],
+ ['auctioning', 'auction'],
+ ['flipping', 'flip'],
+ ['bedding', 'bed'],
+ ['jointing', 'joint'],
+ ['marshalling', 'marshal'],
+ ['mutating', 'mutate'],
+ ['mothering', 'mother'],
+ ['hastening', 'hasten'],
+ ['collapsing', 'collapse'],
+ ['remunerating', 'remunerate'],
+ ['postulating', 'postulate'],
+ ['comprehending', 'comprehend'],
+ ['equilibrating', 'equilibrate'],
+ ['misinterpreting', 'misinterpret'],
+ ['recasting', 'recast'],
+ ['rehearsing', 'rehearse'],
+ ['devaluing', 'devalue'],
+ ['cheering', 'cheer'],
+ ['donning', 'don'],
+ ['mulling', 'mull'],
+ ['exemplifying', 'exemplify'],
+ ['acculturating', 'acculturate'],
+ ['frequenting', 'frequent'],
+ ['coproducing', 'coproduce'],
+ ['equaling', 'equal'],
+ ['legitimating', 'legitimate'],
+ ['conciliating', 'conciliate'],
+ ['interlinking', 'interlink'],
+ ['electrifying', 'electrify'],
+ ['succumbing', 'succumb'],
+ ['rebating', 'rebate'],
+ ['civilizing', 'civilize'],
+ ['inaugurating', 'inaugurate'],
+ ['interweaving', 'interweave'],
+ ['butchering', 'butcher'],
+ ['reinstituting', 'reinstitute'],
+ ['embarrassing', 'embarrass'],
+ ['denouncing', 'denounce'],
+ ['misunderstanding', 'misunderstand'],
+ ['bunking', 'bunk'],
+ ['initialling', 'initial'],
+ ['regenerating', 'regenerate'],
+ ['conjuring', 'conjure'],
+ ['smuggling', 'smuggle'],
+ ['embroidering', 'embroider'],
+ ['pinking', 'pink'],
+ ['undervaluing', 'undervalue'],
+ ['shaving', 'shave'],
+ ['compacting', 'compact'],
+ ['comminuting', 'comminute'],
+ ['clinching', 'clinch'],
+ ['agglomerating', 'agglomerate'],
+ ['shafting', 'shaft'],
+ ['bribing', 'bribe'],
+ ['overeating', 'overeat'],
+ ['relapsing', 'relapse'],
+ ['individualizing', 'individualize'],
+ ['complimenting', 'compliment'],
+ ['orphaning', 'orphan'],
+ ['culturing', 'culture'],
+ ['coughing', 'cough'],
+ ['downplaying', 'downplay'],
+ ['scattering', 'scatter'],
+ ['impressing', 'impress'],
+ ['prospecting', 'prospect'],
+ ['dispatching', 'dispatch'],
+ ['overwhelming', 'overwhelm'],
+ ['biking', 'bike'],
+ ['slashing', 'slash'],
+ ['rippling', 'ripple'],
+ ['exciting', 'excite'],
+ ['sunbathing', 'sunbathe'],
+ ['summarising', 'summarise'],
+ ['tobogganing', 'toboggan'],
+ ['utilising', 'utilise'],
+ ['sighting', 'sight'],
+ ['fronting', 'front'],
+ ['motorcycling', 'motorcycle'],
+ ['outselling', 'outsell'],
+ ['subduing', 'subdue'],
+ ['outshining', 'outshine'],
+ ['sketching', 'sketch'],
+ ['reentering', 'reenter'],
+ ['redeploying', 'redeploy'],
+ ['outnumbering', 'outnumber'],
+ ['gleaming', 'gleam'],
+ ['warring', 'war'],
+ ['penning', 'pen'],
+ ['darkening', 'darken'],
+ ['fluttering', 'flutter'],
+ ['reverberating', 'reverberate'],
+ ['previewing', 'preview'],
+ ['buzzing', 'buzz'],
+ ['haunting', 'haunt'],
+ ['undulating', 'undulate'],
+ ['smearing', 'smear'],
+ ['flapping', 'flap'],
+ ['crackling', 'crackle'],
+ ['deafening', 'deafen'],
+ ['labouring', 'labour'],
+ ['parachuting', 'parachute'],
+ ['snorkeling', 'snorkel'],
+ ['gutting', 'gut'],
+ ['downgrading', 'downgrade'],
+ ['enshrining', 'enshrine'],
+ ['rubbing', 'rub'],
+ ['melding', 'meld'],
+ ['propping', 'prop'],
+ ['annoying', 'annoy'],
+ ['gazing', 'gaze'],
+ ['assenting', 'assent'],
+ ['reciting', 'recite'],
+ ['emigrating', 'emigrate'],
+ ['ushering', 'usher'],
+ ['arousing', 'arouse'],
+ ['obeying', 'obey'],
+ ['battering', 'batter'],
+ ['distracting', 'distract'],
+ ['obviating', 'obviate'],
+ ['staggering', 'stagger'],
+ ['hooking', 'hook'],
+ ['reformulating', 'reformulate'],
+ ['refunding', 'refund'],
+ ['courting', 'court'],
+ ['overcharging', 'overcharge'],
+ ['cueing', 'cue'],
+ ['floundering', 'flounder'],
+ ['overshadowing', 'overshadow'],
+ ['wining', 'wine'],
+ ['tossing', 'toss'],
+ ['annualizing', 'annualize'],
+ ['envisaging', 'envisage'],
+ ['seeming', 'seem'],
+ ['restating', 'restate'],
+ ['reunifying', 'reunify'],
+ ['retreating', 'retreat'],
+ ['grandfathering', 'grandfather'],
+ ['quickening', 'quicken'],
+ ['doubting', 'doubt'],
+ ['disadvantaging', 'disadvantage'],
+ ['obscuring', 'obscure'],
+ ['seeping', 'seep'],
+ ['intercropping', 'intercrop'],
+ ['spitting', 'spit'],
+ ['prying', 'pry'],
+ ['shrivelling', 'shrivel'],
+ ['metabolizing', 'metabolize'],
+ ['puncturing', 'puncture'],
+ ['exuding', 'exude'],
+ ['protruding', 'protrude'],
+ ['blackening', 'blacken'],
+ ['rouging', 'rouge'],
+ ['ridging', 'ridge'],
+ ['stippling', 'stipple'],
+ ['winnowing', 'winnow'],
+ ['misusing', 'misuse'],
+ ['programing', 'program'],
+ ['deactivating', 'deactivate'],
+ ['recalculating', 'recalculate'],
+ ['paralyzing', 'paralyze'],
+ ['colluding', 'collude'],
+ ['demoralizing', 'demoralize'],
+ ['specialising', 'specialise'],
+ ['pasturing', 'pasture'],
+ ['meatpacking', 'meatpack'],
+ ['suckering', 'sucker'],
+ ['infusing', 'infuse'],
+ ['everchanging', 'everchange'],
+ ['bargaining', 'bargain'],
+ ['dialoguing', 'dialogue'],
+ ['favoring', 'favor'],
+ ['suffocating', 'suffocate'],
+ ['berthing', 'berth'],
+ ['disturbing', 'disturb'],
+ ['resettling', 'resettle'],
+ ['trolling', 'troll'],
+ ['inactivating', 'inactivate'],
+ ['clumping', 'clump'],
+ ['rephrasing', 'rephrase'],
+ ['dwelling', 'dwell'],
+ ['cheating', 'cheat'],
+ ['intermingling', 'intermingle'],
+ ['roosting', 'roost'],
+ ['ruffling', 'ruffle'],
+ ['huddling', 'huddle'],
+ ['quizzing', 'quiz'],
+ ['militating', 'militate'],
+ ['revitalising', 'revitalise'],
+ ['eschewing', 'eschew'],
+ ['glazing', 'glaze'],
+ ['patrolling', 'patrol'],
+ ['ankylosing', 'ankylose'],
+ ['joking', 'joke'],
+ ['bettering', 'better'],
+ ['consummating', 'consummate'],
+ ['proliferating', 'proliferate'],
+ ['defusing', 'defuse'],
+ ['deceiving', 'deceive'],
+ ['cushioning', 'cushion'],
+ ['extolling', 'extol'],
+ ['crystallizing', 'crystallize'],
+ ['localizing', 'localize'],
+ ['subsidising', 'subsidise'],
+ ['retarding', 'retard'],
+ ['belittling', 'belittle'],
+ ['dawning', 'dawn'],
+ ['captivating', 'captivate'],
+ ['modernising', 'modernise'],
+ ['toasting', 'toast'],
+ ['wowing', 'wow'],
+ ['relearning', 'relearn'],
+ ['instigating', 'instigate'],
+ ['hijacking', 'hijack'],
+ ['harmonising', 'harmonise'],
+ ['delimiting', 'delimit'],
+ ['distancing', 'distance'],
+ ['dehumanizing', 'dehumanize'],
+ ['reassigning', 'reassign'],
+ ['privileging', 'privilege'],
+ ['preceeding', 'preceed'],
+ ['flattering', 'flatter'],
+ ['endowing', 'endow'],
+ ['trivializing', 'trivialize'],
+ ['consigning', 'consign'],
+ ['refitting', 'refit'],
+ ['overprinting', 'overprint'],
+ ['tallying', 'tally'],
+ ['tantalizing', 'tantalize'],
+ ['coupling', 'couple'],
+ ['etching', 'etch'],
+ ['salvaging', 'salvage'],
+ ['entrusting', 'entrust'],
+ ['chauffeuring', 'chauffeur'],
+ ['withing', 'withe'],
+ ['underachieving', 'underachieve'],
+ ['backfilling', 'backfill'],
+ ['campaigning', 'campaign'],
+ ['coercing', 'coerce'],
+ ['regretting', 'regret'],
+ ['slapping', 'slap'],
+ ['expelling', 'expel'],
+ ['handcuffing', 'handcuff'],
+ ['inheriting', 'inherit'],
+ ['reestablishing', 'reestablish'],
+ ['garnishing', 'garnish'],
+ ['apprehending', 'apprehend'],
+ ['kidnaping', 'kidnap'],
+ ['reappraising', 'reappraise'],
+ ['rewording', 'reword'],
+ ['rowing', 'row'],
+ ['refereeing', 'referee'],
+ ['barking', 'bark'],
+ ['kennelling', 'kennel'],
+ ['screwing', 'screw'],
+ ['cleaving', 'cleave'],
+ ['impregnating', 'impregnate'],
+ ['chambering', 'chamber'],
+ ['strolling', 'stroll'],
+ ['ironing', 'iron'],
+ ['wadding', 'wad'],
+ ['concatenating', 'concatenate'],
+ ['tamping', 'tamp'],
+ ['paring', 'pare'],
+ ['collating', 'collate'],
+ ['enveloping', 'envelop'],
+ ['besetting', 'beset'],
+ ['superceding', 'supercede'],
+ ['piggybacking', 'piggyback'],
+ ['graphing', 'graph'],
+ ['stooping', 'stoop'],
+ ['populating', 'populate'],
+ ['sneezing', 'sneeze'],
+ ['waging', 'wage'],
+ ['pleading', 'plead'],
+ ['disproving', 'disprove'],
+ ['pinching', 'pinch'],
+ ['presupposing', 'presuppose'],
+ ['teeming', 'teem'],
+ ['igniting', 'ignite'],
+ ['rediscovering', 'rediscover'],
+ ['demobilizing', 'demobilize'],
+ ['finalising', 'finalise'],
+ ['sizzling', 'sizzle'],
+ ['flagging', 'flag'],
+ ['magnifying', 'magnify'],
+ ['perceiving', 'perceive'],
+ ['procrastinating', 'procrastinate'],
+ ['gifting', 'gift'],
+ ['uncaring', 'uncare'],
+ ['fascinating', 'fascinate'],
+ ['tripping', 'trip'],
+ ['honoring', 'honor'],
+ ['flirting', 'flirt'],
+ ['homebuilding', 'homebuild'],
+ ['swooning', 'swoon'],
+ ['sagging', 'sag'],
+ ['gripping', 'grip'],
+ ['erupting', 'erupt'],
+ ['fledging', 'fledge'],
+ ['deflating', 'deflate'],
+ ['shocking', 'shock'],
+ ['throttling', 'throttle'],
+ ['shimmering', 'shimmer'],
+ ['gaping', 'gape'],
+ ['poking', 'poke'],
+ ['petting', 'pet'],
+ ['persevering', 'persevere'],
+ ['raiding', 'raid'],
+ ['decking', 'deck'],
+ ['lulling', 'lull'],
+ ['wailing', 'wail'],
+ ['fiddling', 'fiddle'],
+ ['howling', 'howl'],
+ ['lurking', 'lurk'],
+ ['hammering', 'hammer'],
+ ['lugging', 'lug'],
+ ['pining', 'pine'],
+ ['leaping', 'leap'],
+ ['whaling', 'whale'],
+ ['swooping', 'swoop'],
+ ['massing', 'mass'],
+ ['buttressing', 'buttress'],
+ ['evacuating', 'evacuate'],
+ ['stabilising', 'stabilise'],
+ ['ravaging', 'ravage'],
+ ['staving', 'stave'],
+ ['straddling', 'straddle'],
+ ['cornering', 'corner'],
+ ['bandaging', 'bandage'],
+ ['inventorying', 'inventory'],
+ ['acquainting', 'acquaint'],
+ ['deprecating', 'deprecate'],
+ ['summoning', 'summon'],
+ ['adorning', 'adorn'],
+ ['admiring', 'admire'],
+ ['disqualifying', 'disqualify'],
+ ['overruling', 'overrule'],
+ ['maiming', 'maim'],
+ ['adjourning', 'adjourn'],
+ ['forsaking', 'forsake'],
+ ['triumphing', 'triumph'],
+ ['derogating', 'derogate'],
+ ['shepherding', 'shepherd'],
+ ['clamouring', 'clamour'],
+ ['horrifying', 'horrify'],
+ ['beefing', 'beef'],
+ ['garnisheeing', 'garnishee'],
+ ['dissipating', 'dissipate'],
+ ['wording', 'word'],
+ ['oversimplifying', 'oversimplify'],
+ ['snooping', 'snoop'],
+ ['overreaching', 'overreach'],
+ ['preconditioning', 'precondition'],
+ ['wrecking', 'wreck'],
+ ['agonizing', 'agonize'],
+ ['resonating', 'resonate'],
+ ['thrilling', 'thrill'],
+ ['bobbing', 'bob'],
+ ['parting', 'part'],
+ ['idling', 'idle'],
+ ['sparging', 'sparge'],
+ ['obligating', 'obligate'],
+ ['arbitrating', 'arbitrate'],
+ ['disguising', 'disguise'],
+ ['unsatisfying', 'unsatisfy'],
+ ['waxing', 'wax'],
+ ['construing', 'construe'],
+ ['submersing', 'submerse'],
+ ['contouring', 'contour'],
+ ['docketing', 'docket'],
+ ['scorching', 'scorch'],
+ ['raining', 'rain'],
+ ['sensationalizing', 'sensationalize'],
+ ['fixating', 'fixate'],
+ ['advantaging', 'advantage'],
+ ['wagging', 'wag'],
+ ['trotting', 'trot'],
+ ['pacing', 'pace'],
+ ['manuring', 'manure'],
+ ['haying', 'hay'],
+ ['recordkeeping', 'recordkeepe'],
+ ['coring', 'core'],
+ ['grouting', 'grout'],
+ ['strewing', 'strew'],
+ ['loafing', 'loaf'],
+ ['landfilling', 'landfil'],
+ ['percolating', 'percolate'],
+ ['forking', 'fork'],
+ ['blunting', 'blunt'],
+ ['defoliating', 'defoliate'],
+ ['moulting', 'moult'],
+ ['starving', 'starve'],
+ ['infesting', 'infest'],
+ ['liming', 'lime'],
+ ['hollowing', 'hollow'],
+ ['mounding', 'mound'],
+ ['sweating', 'sweat'],
+ ['drooping', 'droop'],
+ ['wrinkling', 'wrinkle'],
+ ['spoiling', 'spoil'],
+ ['hoeing', 'hoe'],
+ ['replanting', 'replant'],
+ ['vectoring', 'vector'],
+ ['understating', 'understate'],
+ ['interceding', 'intercede'],
+ ['rivaling', 'rival'],
+ ['sparkling', 'sparkle'],
+ ['oiling', 'oil'],
+ ['fractionating', 'fractionate'],
+ ['overestimating', 'overestimate'],
+ ['flexing', 'flex'],
+ ['reverting', 'revert'],
+ ['diking', 'dike'],
+ ['negating', 'negate'],
+ ['overlaying', 'overlay'],
+ ['grassing', 'grass'],
+ ['dehorning', 'dehorn'],
+ ['slumping', 'slump'],
+ ['poisoning', 'poison'],
+ ['heeling', 'heel'],
+ ['deflecting', 'deflect'],
+ ['overdosing', 'overdose'],
+ ['thrusting', 'thrust'],
+ ['stumbling', 'stumble'],
+ ['poaching', 'poach'],
+ ['interchanging', 'interchange'],
+ ['portioning', 'portion'],
+ ['exaggerating', 'exaggerate'],
+ ['litigating', 'litigate'],
+ ['mobilising', 'mobilise'],
+ ['levying', 'levy'],
+ ['overfeeding', 'overfeed'],
+ ['coexisting', 'coexist'],
+ ['tethering', 'tether'],
+ ['allotting', 'allot'],
+ ['adjoining', 'adjoin'],
+ ['inclining', 'incline'],
+ ['panting', 'pant'],
+ ['impending', 'impend'],
+ ['brewing', 'brew'],
+ ['scavenging', 'scavenge'],
+ ['trumpeting', 'trumpet'],
+ ['outweighing', 'outweigh'],
+ ['intertwining', 'intertwine'],
+ ['toting', 'tote'],
+ ['redrawing', 'redraw'],
+ ['disenfranchising', 'disenfranchise'],
+ ['supposing', 'suppose'],
+ ['traversing', 'traverse'],
+ ['overhauling', 'overhaul'],
+ ['repurchasing', 'repurchase'],
+ ['crowning', 'crown'],
+ ['disdaining', 'disdain'],
+ ['proselytizing', 'proselytize'],
+ ['tainting', 'taint'],
+ ['regressing', 'regress'],
+ ['misreading', 'misread'],
+ ['scrapping', 'scrap'],
+ ['tiering', 'tier'],
+ ['uplifting', 'uplift'],
+ ['troubling', 'trouble'],
+ ['pausing', 'pause'],
+ ['clashing', 'clash'],
+ ['piecing', 'piece'],
+ ['disheartening', 'dishearten'],
+ ['likening', 'liken'],
+ ['transposing', 'transpose'],
+ ['internalising', 'internalise'],
+ ['decentralising', 'decentralise'],
+ ['conversing', 'converse'],
+ ['deducing', 'deduce'],
+ ['chaperoning', 'chaperon'],
+ ['memorizing', 'memorize'],
+ ['begging', 'beg'],
+ ['restarting', 'restart'],
+ ['apologizing', 'apologize'],
+ ['correlating', 'correlate'],
+ ['abstaining', 'abstain'],
+ ['bureaucratizing', 'bureaucratize'],
+ ['plateauing', 'plateaue'],
+ ['consecrating', 'consecrate'],
+ ['reinvigorating', 'reinvigorate'],
+ ['enslaving', 'enslave'],
+ ['appeasing', 'appease'],
+ ['constricting', 'constrict'],
+ ['domesticating', 'domesticate'],
+ ['multitasking', 'multitask'],
+ ['remodelling', 'remodel'],
+ ['touting', 'tout'],
+ ['latching', 'latch'],
+ ['cannibalizing', 'cannibalize'],
+ ['numbing', 'numb'],
+ ['begrudging', 'begrudge'],
+ ['squandering', 'squander'],
+ ['nonthreatening', 'nonthreaten'],
+ ['insinuating', 'insinuate'],
+ ['couching', 'couch'],
+ ['exacting', 'exact'],
+ ['recapitulating', 'recapitulate'],
+ ['convoluting', 'convolute'],
+ ['centralising', 'centralise'],
+ ['amassing', 'amass'],
+ ['affiliating', 'affiliate'],
+ ['disclaiming', 'disclaim'],
+ ['ascribing', 'ascribe'],
+ ['tolerating', 'tolerate'],
+ ['amortizing', 'amortize'],
+ ['skimming', 'skim'],
+ ['renouncing', 'renounce'],
+ ['comporting', 'comport'],
+ ['muddling', 'muddle'],
+ ['usurping', 'usurp'],
+ ['fractioning', 'fraction'],
+ ['juxtaposing', 'juxtapose'],
+ ['ripping', 'rip'],
+ ['unscrambling', 'unscramble'],
+ ['descrambling', 'descramble'],
+ ['misappropriating', 'misappropriate'],
+ ['scaffolding', 'scaffold'],
+ ['jeopardising', 'jeopardise'],
+ ['stationing', 'station'],
+ ['encumbering', 'encumber'],
+ ['roping', 'rope'],
+ ['reheating', 'reheat'],
+ ['underselling', 'undersell'],
+ ['overtaking', 'overtake'],
+ ['initializing', 'initialize'],
+ ['perusing', 'peruse'],
+ ['befriending', 'befriend'],
+ ['cramming', 'cram'],
+ ['intriguing', 'intrigue'],
+ ['personalizing', 'personalize'],
+ ['loaning', 'loan'],
+ ['overloading', 'overload'],
+ ['flanking', 'flank'],
+ ['auditioning', 'audition'],
+ ['rebroadcasting', 'rebroadcast'],
+ ['parceling', 'parcel'],
+ ['gentrifying', 'gentrify'],
+ ['absolving', 'absolve'],
+ ['pillaging', 'pillage'],
+ ['bankrupting', 'bankrupt'],
+ ['digitalizing', 'digitalize'],
+ ['decreeing', 'decree'],
+ ['teething', 'teethe'],
+ ['centring', 'centre'],
+ ['instating', 'instate'],
+ ['righting', 'right'],
+ ['taunting', 'taunt'],
+ ['caucusing', 'caucus'],
+ ['crashing', 'crash'],
+ ['pondering', 'ponder'],
+ ['flaunting', 'flaunt'],
+ ['conscripting', 'conscript'],
+ ['shouting', 'shout'],
+ ['sobbing', 'sob'],
+ ['fraying', 'fray'],
+ ['disentitling', 'disentitle'],
+ ['convicting', 'convict'],
+ ['bequeathing', 'bequeath'],
+ ['enumerating', 'enumerate'],
+ ['quashing', 'quash'],
+ ['mouthing', 'mouth'],
+ ['abducting', 'abduct'],
+ ['federating', 'federate'],
+ ['remanding', 'remand'],
+ ['incarcerating', 'incarcerate'],
+ ['hazing', 'haze'],
+ ['kissing', 'kiss'],
+ ['perpetrating', 'perpetrate'],
+ ['disarming', 'disarm'],
+ ['bulging', 'bulge'],
+ ['dovetailing', 'dovetail'],
+ ['bicycling', 'bicycle'],
+ ['anesthetizing', 'anesthetize'],
+ ['menacing', 'menace'],
+ ['scapegoating', 'scapegoate'],
+ ['acquitting', 'acquit'],
+ ['seasoning', 'season'],
+ ['pivoting', 'pivot'],
+ ['retracting', 'retract'],
+ ['gunning', 'gun'],
+ ['peening', 'peen'],
+ ['flocculating', 'flocculate'],
+ ['cleansing', 'cleanse'],
+ ['lacing', 'lace'],
+ ['hemstitching', 'hemstitch'],
+ ['fulling', 'full'],
+ ['napping', 'nap'],
+ ['cubing', 'cube'],
+ ['decontaminating', 'decontaminate'],
+ ['dehumanising', 'dehumanise'],
+ ['whitening', 'whiten'],
+ ['superimposing', 'superimpose'],
+ ['needling', 'needle'],
+ ['recapping', 'recap'],
+ ['matting', 'mat'],
+ ['hewing', 'hew'],
+ ['tufting', 'tuft'],
+ ['wringing', 'wring'],
+ ['tinning', 'tin'],
+ ['wiring', 'wire'],
+ ['bushing', 'bush'],
+ ['granulating', 'granulate'],
+ ['sieving', 'sieve'],
+ ['debonding', 'debond'],
+ ['splicing', 'splice'],
+ ['beeping', 'beep'],
+ ['underreporting', 'underreport'],
+ ['booming', 'boom'],
+ ['armouring', 'armour'],
+ ['reaming', 'ream'],
+ ['chamfering', 'chamfer'],
+ ['superheating', 'superheat'],
+ ['coiling', 'coil'],
+ ['flanging', 'flange'],
+ ['destining', 'destine'],
+ ['demineralizing', 'demineralize'],
+ ['laboring', 'labor'],
+ ['coalescing', 'coalesce'],
+ ['wheezing', 'wheeze'],
+ ['coaxing', 'coax'],
+ ['tapering', 'taper'],
+ ['fooling', 'fool'],
+ ['quaking', 'quak'],
+ ['buckling', 'buckle'],
+ ['characterising', 'characterise'],
+ ['greying', 'grey'],
+ ['crippling', 'cripple'],
+ ['siphoning', 'siphon'],
+ ['debilitating', 'debilitate'],
+ ['lauding', 'laud'],
+ ['perturbing', 'perturb'],
+ ['unstinting', 'unstint'],
+ ['desensitizing', 'desensitize'],
+ ['inoculating', 'inoculate'],
+ ['alarming', 'alarm'],
+ ['depolarizing', 'depolarize'],
+ ['crying', 'cry'],
['aching', 'ache'],
['glaring', 'glare'],
['stunning', 'stun'],
-
- // bang
['blitzing', 'blitz'],
['bossing', 'boss'],
['fuzzing', 'fuzz'],
@@ -2913,4 +2909,9 @@ export default [
['messing', 'mess'],
['smelling', 'smell'],
['yelling', 'yell'],
+ ['peacemaking', 'peacemake'],
+ ['fundraising', 'fundraise'],
+ ['matchmaking', 'matchmake'],
+ ['kayaking', 'kayak'],
+ // ['', ''],
]
\ No newline at end of file
diff --git a/data/pairs/Participle.js b/data/pairs/Participle.js
index 80f70cc89..9ea719571 100644
--- a/data/pairs/Participle.js
+++ b/data/pairs/Participle.js
@@ -1,125 +1,81 @@
export default [
['arisen', 'arise'],
- ['awaken', 'awake'],
+ ['awoken', 'awake'],
['beaten', 'beat'],
- ['become', 'become'],
['been', 'be'],
['begun', 'begin'],
- ['bent', 'bend'],
- ['bet', 'bet'],
+ ['become', 'become'],
['bitten', 'bite'],
- ['bled', 'bleed'],
['blown', 'blow'],
- ['bought', 'buy'],
- ['broken', 'brake'],
['broken', 'break'],
- ['brought', 'bring'],
['built', 'build'],
- ['burned', 'burn'],
- ['burst', 'burst'],
['chosen', 'choose'],
['clung', 'cling'],
['come', 'come'],
- ['created', 'create'],
- ['crept', 'creep'],
- ['cut', 'cut'],
- ['dealt', 'deal'],
- ['dived', 'dive'],
+ ['done', 'do'],
+ ['dove', 'dive'],
['drawn', 'draw'],
['dreamt', 'dream'],
['driven', 'drive'],
['drunk', 'drink'],
- ['dug', 'dig'],
['eaten', 'eat'],
['fallen', 'fall'],
- ['fed', 'feed'],
- ['fled', 'flee'],
['flown', 'fly'],
- ['flung', 'fling'],
+ ['forbidden', 'forbid'],
['forgiven', 'forgive'],
['forgotten', 'forget'],
- ['fought', 'fight'],
- ['frighten', 'fright'],
+ ['forsaken', 'forsake'],
+ ['forseen', 'forsee'],
['frozen', 'freeze'],
['given', 'give'],
['gone', 'go'],
['gotten', 'get'],
['grown', 'grow'],
- ['had', 'have'],
['hasten', 'haste'],
- ['heard', 'hear'],
- ['heighten', 'height'],
- ['held', 'hold'],
['hidden', 'hide'],
- ['hit', 'hit'],
- ['hung', 'hang'],
- ['hurt', 'hurt'],
- ['kept', 'keep'],
- ['knelt', 'kneel'],
['known', 'know'],
- ['laid', 'lay'],
- ['leapt', 'leap'],
- ['led', 'lead'],
- ['left', 'leave'],
- ['lengthen', 'length'],
- ['lent', 'lend'],
- ['lessen', 'less'],
- ['lit', 'light'],
- ['made', 'make'],
- ['meant', 'mean'],
- ['met', 'meet'],
- ['paid', 'pay'],
+ ['outdone', 'outdo'],
+ ['outgrown', 'outgrow'],
+ ['overdone', 'overdo'],
+ ['overseen', 'oversee'],
+ ['overtaken', 'overtake'],
+ ['overthrown', 'overthrow'],
['proven', 'prove'],
- ['put', 'put'],
- ['quit', 'quit'],
- ['read', 'read'],
+ ['rewritten', 'rewrite'],
['ridden', 'ride'],
['risen', 'rise'],
- ['run', 'run'],
['rung', 'ring'],
- ['said', 'say'],
- ['sat', 'seat'],
['seen', 'see'],
- ['sent', 'send'],
- ['set', 'set'],
['sewn', 'sew'],
+ ['shrunk', 'shrink'],
['shaken', 'shake'],
- ['shaved', 'shave'],
['shone', 'shine'],
- ['shot', 'shoot'],
['shown', 'show'],
- ['shrunken', 'shrink'],
- ['shut', 'shut'],
['slain', 'slay'],
- ['slept', 'sleep'],
- ['slid', 'slide'],
- ['snuck', 'sneak'],
- ['sold', 'sell'],
['sought', 'seek'],
['sown', 'sow'],
- ['spat', 'spit'],
- ['sped', 'speed'],
- ['spent', 'spend'],
- ['spilled', 'spill'],
- ['split', 'split'],
+ ['spilt', 'spill'],
['spoken', 'speak'],
- ['sprung', 'spring'],
- ['spun', 'spin'],
['stolen', 'steal'],
['strewn', 'strew'],
- ['stunk', 'stink'],
+ ['run', 'run'],
['sung', 'sing'],
- ['swept', 'sweep'],
+ ['sunk', 'sink'],
['sworn', 'swear'],
+ ['swum', 'swim'],
['taken', 'take'],
- ['thrived', 'thrive'],
+ ['thrown', 'throw'],
+ ['torn', 'tear'],
['undergone', 'undergo'],
- ['upset', 'upset'],
- ['wept', 'weep'],
+ ['undone', 'undo'],
+ ['uprisen', 'uprise'],
+ ['woken', 'wake'],
+ ['withdrawn', 'withdraw'],
+ ['woken', 'wake'],
['worn', 'wear'],
- ['worsen', 'worse'],
- ['wound', 'wind'],
['woven', 'weave'],
['written', 'write'],
['wrung', 'wring'],
+ ['waken', 'wake'],
+
]
\ No newline at end of file
diff --git a/data/pairs/PastTense.js b/data/pairs/PastTense.js
index 123810fdd..e33907791 100644
--- a/data/pairs/PastTense.js
+++ b/data/pairs/PastTense.js
@@ -1,2048 +1,2062 @@
export default [
- ['was', 'is', 73860],
- ['were', 'are', 50765],
- ['been', 'be'],
- ['had', 'have', 14591],
- ['did', 'do', 7010],
- ['provided', 'provide', 6877],
- ['received', 'receive', 4416],
- ['noted', 'note', 4403],
- ['included', 'include', 4340],
- ['made', 'make', 4305],
- ['said', 'say', 4196],
- ['reported', 'report', 3958],
- ['indicated', 'indicate', 3643],
- ['increased', 'increase', 3324],
- ['found', 'find', 3003],
- ['took', 'take', 2406],
- ['referred', 'refer', 2357],
- ['agreed', 'agree', 2208],
- ['began', 'begin', 2180],
- ['announced', 'announce', 2115],
- ['came', 'come', 2033],
- ['felt', 'feel', 2027],
- ['suggested', 'suggest', 1808],
- ['identified', 'identify', 1794],
- ['used', 'use', 1683],
- ['stated', 'state', 1634],
- ['became', 'become', 1596],
- ['developed', 'develop', 1549],
- ['held', 'hold', 1490],
- ['presented', 'present', 1367],
- ['continued', 'continue', 1328],
- ['expressed', 'express', 1303],
- ['called', 'call', 1286],
- ['offered', 'offer', 1251],
- ['gave', 'give', 1249],
- ['added', 'add', 1235],
- ['established', 'establish', 1201],
- ['supported', 'support', 1190],
- ['carried', 'carry', 1186],
- ['contributed', 'contribute', 1185],
- ['participated', 'participate', 1168],
- ['set', 'set', 1167],
- ['asked', 'ask', 1130],
- ['helped', 'help', 1104],
- ['described', 'describe', 1085],
- ['produced', 'produce', 1066],
- ['concluded', 'conclude', 1061],
- ['submitted', 'submit', 1052],
- ['showed', 'show', 1033],
- ['saw', 'see', 1030],
- ['created', 'create', 1006],
- ['worked', 'work', 984],
- ['launched', 'launch', 973],
- ['reviewed', 'review', 960],
- ['attended', 'attend', 946],
- ['accounted', 'account', 939],
- ['represented', 'represent', 921],
- ['approved', 'approve', 918],
- ['fell', 'fall', 900],
- ['led', 'lead', 899],
- ['recommended', 'recommend', 885],
- ['involved', 'involve', 884],
- ['brought', 'bring', 879],
- ['went', 'go', 876],
- ['rose', 'rise', 864],
- ['conducted', 'conduct', 857],
- ['requested', 'request', 844],
- ['met', 'meet', 842],
- ['posted', 'post', 840],
- ['issued', 'issue', 831],
- ['completed', 'complete', 831],
- ['grew', 'grow', 830],
- ['revealed', 'reveal', 830],
- ['declined', 'decline', 829],
- ['signed', 'sign', 789],
- ['examined', 'examine', 774],
- ['introduced', 'introduce', 767],
- ['started', 'start', 765],
- ['paid', 'pay', 753],
- ['initiated', 'initiate', 748],
- ['hosted', 'host', 735],
- ['discussed', 'discuss', 722],
- ['required', 'require', 716],
- ['put', 'put', 695],
- ['explained', 'explain', 691],
- ['responded', 'respond', 689],
- ['remained', 'remain', 688],
- ['confirmed', 'confirm', 684],
- ['earned', 'earn', 681],
- ['adopted', 'adopt', 665],
- ['occurred', 'occur', 664],
- ['reached', 'reach', 653],
- ['allowed', 'allow', 651],
- ['sent', 'send', 649],
- ['failed', 'fail', 646],
- ['pointed', 'point', 642],
- ['raised', 'raise', 634],
- ['needed', 'need', 633],
- ['recognized', 'recognize', 625],
- ['awarded', 'award', 622],
- ['resulted', 'result', 612],
- ['spent', 'spend', 605],
- ['served', 'serve', 589],
- ['spoke', 'speak', 574],
- ['wanted', 'want', 569],
- ['cited', 'cite', 561],
- ['obtained', 'obtain', 554],
- ['considered', 'consider', 553],
- ['decreased', 'decrease', 552],
- ['decided', 'decide', 542],
- ['proposed', 'propose', 542],
- ['mentioned', 'mention', 542],
- ['released', 'release', 535],
- ['authorized', 'authorize', 533],
- ['accepted', 'accept', 524],
- ['applied', 'apply', 521],
- ['determined', 'determine', 516],
- ['learned', 'learn', 515],
- ['commented', 'comment', 506],
- ['appeared', 'appear', 501],
- ['contained', 'contain', 489],
- ['joined', 'join', 480],
- ['followed', 'follow', 475],
- ['experienced', 'experience', 474],
- ['opened', 'open', 467],
- ['addressed', 'address', 454],
- ['published', 'publish', 453],
- ['highlighted', 'highlight', 450],
- ['generated', 'generate', 450],
- ['moved', 'move', 449],
- ['undertook', 'undertake', 448],
- ['emphasized', 'emphasize', 442],
- ['informed', 'inform', 441],
- ['sold', 'sell', 441],
- ['thought', 'think', 440],
- ['visited', 'visit', 431],
- ['argued', 'argue', 429],
- ['focused', 'focus', 422],
- ['enabled', 'enable', 414],
- ['entitled', 'entitle', 412],
- ['stressed', 'stress', 407],
- ['demonstrated', 'demonstrate', 405],
- ['emerged', 'emerge', 402],
- ['entered', 'enter', 395],
- ['sought', 'seek', 390],
- ['reflected', 'reflect', 388],
- ['believed', 'believe', 387],
- ['played', 'play', 385],
- ['observed', 'observe', 379],
- ['funded', 'fund', 378],
- ['estimated', 'estimate', 374],
- ['organized', 'organize', 373],
- ['left', 'leave', 372],
- ['achieved', 'achieve', 369],
- ['caused', 'cause', 368],
- ['outlined', 'outline', 365],
- ['lost', 'lose', 365],
- ['covered', 'cover', 363],
- ['interviewed', 'interview', 353],
- ['claimed', 'claim', 351],
- ['dropped', 'drop', 347],
- ['welcomed', 'welcome', 345],
- ['exported', 'export', 339],
- ['gained', 'gain', 336],
- ['chose', 'choose', 335],
- ['implemented', 'implement', 334],
- ['acknowledged', 'acknowledge', 328],
- ['reduced', 'reduce', 324],
- ['marked', 'mark', 308],
- ['acquired', 'acquire', 304],
- ['maintained', 'maintain', 301],
- ['passed', 'pass', 292],
- ['improved', 'improve', 288],
- ['purchased', 'purchase', 287],
- ['committed', 'commit', 284],
- ['returned', 'return', 283],
- ['encouraged', 'encourage', 275],
- ['shared', 'share', 275],
- ['sponsored', 'sponsor', 272],
- ['exceeded', 'exceed', 269],
- ['ranked', 'rank', 268],
- ['intended', 'intend', 266],
- ['selected', 'select', 265],
- ['won', 'win', 262],
- ['seemed', 'seem', 261],
- ['filed', 'file', 261],
- ['told', 'tell', 260],
- ['invited', 'invite', 259],
- ['incorporated', 'incorporate', 258],
- ['changed', 'change', 257],
- ['rejected', 'reject', 252],
- ['levied', 'levy', 250],
- ['prepared', 'prepare', 248],
- ['commissioned', 'commission', 248],
- ['imported', 'import', 248],
- ['managed', 'manage', 247],
- ['extended', 'extend', 245],
- ['granted', 'grant', 244],
- ['formed', 'form', 240],
- ['declared', 'declare', 239],
- ['closed', 'close', 237],
- ['performed', 'perform', 237],
- ['knew', 'know', 236],
- ['studied', 'study', 235],
- ['arrived', 'arrive', 234],
- ['invested', 'invest', 233],
- ['turned', 'turn', 231],
- ['attracted', 'attract', 228],
- ['proved', 'prove', 226],
- ['planned', 'plan', 225],
- ['amounted', 'amount', 224],
- ['meant', 'mean', 222],
- ['heard', 'hear', 220],
- ['got', 'get', 219],
- ['thanked', 'thank', 215],
- ['looked', 'look', 212],
- ['expected', 'expect', 210],
- ['ruled', 'rule', 210],
- ['rated', 'rate', 207],
- ['attributed', 'attribute', 203],
- ['resumed', 'resume', 202],
- ['expanded', 'expand', 201],
- ['advised', 'advise', 201],
- ['recorded', 'record', 201],
- ['collected', 'collect', 198],
- ['registered', 'register', 196],
- ['modified', 'modify', 194],
- ['arose', 'arise', 192],
- ['delivered', 'deliver', 190],
- ['questioned', 'question', 189],
- ['directed', 'direct', 188],
- ['assumed', 'assume', 187],
- ['defined', 'define', 186],
- ['operated', 'operate', 186],
- ['engaged', 'engage', 184],
- ['tended', 'tend', 180],
- ['averaged', 'average', 179],
- ['realized', 'realize', 178],
- ['supplied', 'supply', 178],
- ['listed', 'list', 177],
- ['replaced', 'replace', 175],
- ['featured', 'feature', 174],
- ['affected', 'affect', 174],
- ['commenced', 'commence', 172],
- ['placed', 'place', 169],
- ['disclosed', 'disclose', 169],
- ['climbed', 'climb', 169],
- ['allocated', 'allocate', 169],
- ['ensured', 'ensure', 168],
- ['gathered', 'gather', 168],
- ['discovered', 'discover', 168],
- ['stipulated', 'stipulate', 168],
- ['ended', 'end', 167],
- ['died', 'die', 167],
- ['existed', 'exist', 166],
- ['wrote', 'write', 165],
- ['aged', 'age', 164],
- ['faced', 'face', 164],
- ['partnered', 'partner', 163],
- ['explored', 'explore', 161],
- ['advanced', 'advance', 161],
- ['amended', 'amend', 160],
- ['drew', 'draw', 159],
- ['assessed', 'assess', 156],
- ['consisted', 'consist', 155],
- ['promoted', 'promote', 155],
- ['constituted', 'constitute', 155],
- ['facilitated', 'facilitate', 153],
- ['comprised', 'comprise', 152],
- ['benefited', 'benefit', 151],
- ['hired', 'hire', 149],
- ['endorsed', 'endorse', 149],
- ['conferred', 'confer', 148],
- ['designed', 'design', 147],
- ['appointed', 'appoint', 146],
- ['alleged', 'allege', 146],
- ['ordered', 'order', 145],
- ['bought', 'buy', 144],
- ['relied', 'rely', 144],
- ['ran', 'run', 143],
- ['strengthened', 'strengthen', 142],
- ['incurred', 'incur', 142],
- ['anticipated', 'anticipate', 141],
- ['analyzed', 'analyze', 140],
- ['stood', 'stand', 140],
- ['collaborated', 'collaborate', 139],
- ['contacted', 'contact', 138],
- ['consulted', 'consult', 138],
- ['summarized', 'summarize', 134],
- ['tabled', 'table', 133],
- ['distributed', 'distribute', 133],
- ['answered', 'answer', 133],
- ['administered', 'administer', 131],
- ['acted', 'act', 130],
- ['seeded', 'seed', 130],
- ['reiterated', 'reiterate', 129],
- ['celebrated', 'celebrate', 128],
- ['voted', 'vote', 127],
- ['suffered', 'suffer', 125],
- ['deemed', 'deem', 124],
- ['read', 'read', 124],
- ['varied', 'vary', 123],
- ['enhanced', 'enhance', 122],
- ['jumped', 'jump', 122],
- ['doubled', 'double', 121],
- ['reminded', 'remind', 120],
- ['shipped', 'ship', 119],
- ['encountered', 'encounter', 119],
- ['attached', 'attach', 118],
- ['refused', 'refuse', 118],
- ['understood', 'understand', 118],
- ['controlled', 'control', 117],
- ['dried', 'dry', 117],
- ['enjoyed', 'enjoy', 116],
- ['attempted', 'attempt', 115],
- ['chaired', 'chair', 113],
- ['let', 'let', 113],
- ['wished', 'wish', 113],
- ['imposed', 'impose', 113],
- ['charged', 'charge', 112],
- ['built', 'build', 112],
- ['hit', 'hit', 112],
- ['approached', 'approach', 112],
- ['expired', 'expire', 111],
- ['kept', 'keep', 111],
- ['taught', 'teach', 111],
- ['tested', 'test', 110],
- ['founded', 'found', 109],
- ['seized', 'seize', 107],
- ['removed', 'remove', 107],
- ['evaluated', 'evaluate', 106],
- ['bonded', 'bond', 106],
- ['assisted', 'assist', 105],
- ['totaled', 'total', 104],
- ['reinforced', 'reinforce', 104],
- ['cost', 'cost', 103],
- ['lived', 'live', 103],
- ['replied', 'reply', 103],
- ['related', 'relate', 102],
- ['owned', 'own', 102],
- ['ranged', 'range', 102],
- ['investigated', 'investigate', 102],
- ['updated', 'update', 101],
- ['appreciated', 'appreciate', 101],
- ['surveyed', 'survey', 101],
- ['utilized', 'utilize', 101],
- ['adapted', 'adapt', 100],
- ['underwent', 'undergo', 100],
- ['proceeded', 'proceed', 99],
- ['tried', 'try', 99],
- ['contracted', 'contract', 98],
- ['proclaimed', 'proclaim', 98],
- ['remarked', 'remark', 97],
- ['welded', 'weld', 96],
- ['graduated', 'graduate', 95],
- ['cut', 'cut', 95],
- ['happened', 'happen', 95],
- ['limited', 'limit', 95],
- ['prompted', 'prompt', 94],
- ['travelled', 'travel', 94],
- ['viewed', 'view', 94],
- ['finished', 'finish', 93],
- ['unveiled', 'unveil', 90],
- ['exhibited', 'exhibit', 90],
- ['opposed', 'oppose', 90],
- ['landed', 'land', 89],
- ['audited', 'audit', 89],
- ['retained', 'retain', 88],
- ['combined', 'combine', 88],
- ['evolved', 'evolve', 87],
- ['renewed', 'renew', 87],
- ['pursued', 'pursue', 86],
- ['randomized', 'randomize', 86],
- ['lacked', 'lack', 85],
- ['struck', 'strike', 84],
- ['ceased', 'cease', 84],
- ['enacted', 'enact', 83],
- ['named', 'name', 83],
- ['influenced', 'influence', 83],
- ['projected', 'project', 83],
- ['revised', 'revise', 82],
- ['transferred', 'transfer', 82],
- ['concerned', 'concern', 82],
- ['reaffirmed', 'reaffirm', 82],
- ['upheld', 'uphold', 81],
- ['notified', 'notify', 81],
- ['wondered', 'wonder', 80],
- ['guided', 'guide', 80],
- ['yielded', 'yield', 80],
- ['ratified', 'ratify', 80],
- ['talked', 'talk', 78],
- ['displayed', 'display', 78],
- ['predicted', 'predict', 78],
- ['volunteered', 'volunteer', 78],
- ['dealt', 'deal', 77],
- ['mandated', 'mandate', 77],
- ['challenged', 'challenge', 76],
- ['prevented', 'prevent', 75],
- ['convened', 'convene', 74],
- ['underscored', 'underscore', 74],
- ['recovered', 'recover', 74],
- ['coded', 'code', 74],
- ['terminated', 'terminate', 73],
- ['laid', 'lay', 72],
- ['manufactured', 'manufacture', 72],
- ['accorded', 'accord', 72],
- ['contended', 'contend', 72],
- ['aimed', 'aim', 71],
- ['posed', 'pose', 71],
- ['surged', 'surge', 70],
- ['cautioned', 'caution', 70],
- ['urged', 'urge', 69],
- ['eliminated', 'eliminate', 69],
- ['slowed', 'slow', 69],
- ['disagreed', 'disagree', 69],
- ['hoped', 'hope', 69],
- ['settled', 'settle', 69],
- ['permitted', 'permit', 69],
- ['targeted', 'target', 68],
- ['denied', 'deny', 68],
- ['coordinated', 'coordinate', 67],
- ['affirmed', 'affirm', 66],
- ['asserted', 'assert', 66],
- ['spread', 'spread', 66],
- ['violated', 'violate', 66],
- ['calculated', 'calculate', 66],
- ['localized', 'localize', 66],
- ['immigrated', 'immigrate', 66],
- ['negotiated', 'negotiate', 65],
- ['compared', 'compare', 64],
- ['rebuilt', 'rebuild', 64],
- ['reproduced', 'reproduce', 64],
- ['stayed', 'stay', 64],
- ['forecasted', 'forecast', 64],
- ['mounted', 'mount', 64],
- ['dedicated', 'dedicate', 63],
- ['accessed', 'access', 63],
- ['complained', 'complain', 63],
- ['clarified', 'clarify', 62],
- ['congratulated', 'congratulate', 62],
- ['referenced', 'reference', 62],
- ['occupied', 'occupy', 61],
- ['stored', 'store', 61],
- ['enrolled', 'enroll', 61],
- ['rendered', 'render', 60],
- ['stopped', 'stop', 60],
- ['perceived', 'perceive', 60],
- ['excluded', 'exclude', 60],
- ['illustrated', 'illustrate', 60],
- ['insisted', 'insist', 60],
- ['broadcast', 'broadcast', 60],
- ['inquired', 'inquire', 60],
- ['differed', 'differ', 59],
- ['liked', 'like', 59],
- ['picked', 'pick', 59],
- ['based', 'base', 59],
- ['promised', 'promise', 59],
- ['fostered', 'foster', 59],
- ['cooperated', 'cooperate', 58],
- ['handled', 'handle', 58],
- ['sulphonated', 'sulphonate', 58],
- ['voiced', 'voice', 57],
- ['underlined', 'underline', 57],
- ['satisfied', 'satisfy', 57],
- ['conveyed', 'convey', 57],
- ['surpassed', 'surpass', 56],
- ['witnessed', 'witness', 56],
- ['admitted', 'admit', 56],
- ['linked', 'link', 55],
- ['harmonized', 'harmonize', 55],
- ['designated', 'designate', 54],
- ['forwarded', 'forward', 54],
- ['certified', 'certify', 54],
- ['processed', 'process', 53],
- ['specified', 'specify', 53],
- ['titled', 'title', 53],
- ['demanded', 'demand', 53],
- ['favoured', 'favour', 53],
- ['assured', 'assure', 52],
- ['employed', 'employ', 52],
- ['advocated', 'advocate', 52],
- ['accumulated', 'accumulate', 52],
- ['broke', 'break', 51],
- ['characterized', 'characterize', 51],
- ['licensed', 'license', 51],
- ['opted', 'opt', 50],
- ['qualified', 'qualify', 49],
- ['lasted', 'last', 49],
- ['warned', 'warn', 49],
- ['captured', 'capture', 49],
- ['matched', 'match', 49],
- ['filled', 'fill', 48],
- ['dumped', 'dump', 48],
- ['pledged', 'pledge', 48],
- ['tipped', 'tip', 47],
- ['prohibited', 'prohibit', 47],
- ['impacted', 'impact', 46],
- ['retired', 'retire', 46],
- ['dominated', 'dominate', 46],
- ['preferred', 'prefer', 46],
- ['sustained', 'sustain', 46],
- ['shifted', 'shift', 46],
- ['transmitted', 'transmit', 46],
- ['adjourned', 'adjourn', 46],
- ['articulated', 'articulate', 45],
- ['scored', 'score', 45],
- ['embarked', 'embark', 45],
- ['lowered', 'lower', 45],
- ['slipped', 'slip', 45],
- ['echoed', 'echo', 45],
- ['forced', 'force', 45],
- ['numbered', 'number', 45],
- ['edged', 'edge', 44],
- ['communicated', 'communicate', 43],
- ['verified', 'verify', 43],
- ['assembled', 'assemble', 43],
- ['ensued', 'ensue', 43],
- ['instituted', 'institute', 43],
- ['elected', 'elect', 42],
- ['devoted', 'devote', 42],
- ['concurred', 'concur', 42],
- ['dismissed', 'dismiss', 41],
- ['showcased', 'showcase', 41],
- ['accelerated', 'accelerate', 41],
- ['shed', 'shed', 41],
- ['progressed', 'progress', 41],
- ['arranged', 'arrange', 40],
- ['appealed', 'appeal', 40],
- ['withdrew', 'withdraw', 40],
- ['recalled', 'recall', 40],
- ['broadened', 'broaden', 40],
- ['stemmed', 'stem', 40],
- ['praised', 'praise', 39],
- ['succeeded', 'succeed', 39],
- ['missed', 'miss', 39],
- ['accused', 'accuse', 38],
- ['drafted', 'draft', 38],
- ['triggered', 'trigger', 38],
- ['recruited', 'recruit', 38],
- ['intervened', 'intervene', 38],
- ['inspired', 'inspire', 37],
- ['analysed', 'analyse', 37],
- ['classified', 'classify', 37],
- ['loved', 'love', 37],
- ['finalized', 'finalize', 36],
- ['circulated', 'circulate', 36],
- ['criticized', 'criticize', 36],
- ['restored', 'restore', 36],
- ['credited', 'credit', 36],
- ['honoured', 'honour', 36],
- ['refined', 'refine', 36],
- ['listened', 'listen', 36],
- ['interpreted', 'interpret', 36],
- ['merged', 'merge', 35],
- ['searched', 'search', 35],
- ['measured', 'measure', 35],
- ['headed', 'head', 35],
- ['encompassed', 'encompass', 35],
- ['cancelled', 'cancel', 35],
- ['planted', 'plant', 35],
- ['drove', 'drive', 35],
- ['pushed', 'push', 35],
- ['saved', 'save', 35],
- ['printed', 'print', 35],
- ['handed', 'hand', 34],
- ['repeated', 'repeat', 34],
- ['destroyed', 'destroy', 34],
- ['assigned', 'assign', 33],
- ['detailed', 'detail', 33],
- ['bid', 'bid', 33],
- ['computed', 'compute', 33],
- ['offset', 'offset', 33],
- ['polled', 'poll', 33],
- ['smoked', 'smoke', 33],
- ['applauded', 'applaud', 33],
- ['sat', 'sit', 32],
- ['prevailed', 'prevail', 32],
- ['touched', 'touch', 32],
- ['transformed', 'transform', 32],
- ['protected', 'protect', 32],
- ['fulfilled', 'fulfill', 32],
- ['acceded', 'accede', 32],
- ['supervised', 'supervise', 32],
- ['bleached', 'bleach', 32],
- ['secured', 'secure', 31],
- ['rebounded', 'rebound', 31],
- ['reversed', 'reverse', 31],
- ['derived', 'derive', 31],
- ['adjusted', 'adjust', 31],
- ['centred', 'centre', 30],
- ['garnered', 'garner', 30],
- ['documented', 'document', 30],
- ['plugged', 'plug', 30],
- ['rolled', 'roll', 30],
- ['noticed', 'notice', 30],
- ['coincided', 'coincide', 30],
- ['consolidated', 'consolidate', 30],
- ['termed', 'term', 30],
- ['trained', 'train', 29],
- ['departed', 'depart', 29],
- ['attained', 'attain', 29],
- ['mailed', 'mail', 29],
- ['threatened', 'threaten', 29],
- ['peaked', 'peak', 29],
- ['compiled', 'compile', 29],
- ['bore', 'bear', 28],
- ['retrieved', 'retrieve', 28],
- ['lagged', 'lag', 28],
- ['signaled', 'signal', 28],
- ['cast', 'cast', 28],
- ['accredited', 'accredit', 28],
- ['treated', 'treat', 28],
- ['solicited', 'solicit', 28],
- ['uncovered', 'uncover', 27],
- ['divided', 'divide', 27],
- ['altered', 'alter', 27],
- ['caught', 'catch', 27],
- ['accompanied', 'accompany', 27],
- ['toured', 'tour', 27],
- ['reserved', 'reserve', 27],
- ['induced', 'induce', 27],
- ['rescinded', 'rescind', 27],
- ['sliced', 'slice', 27],
- ['validated', 'validate', 26],
- ['forged', 'forge', 26],
- ['killed', 'kill', 26],
- ['marketed', 'market', 26],
- ['belonged', 'belong', 26],
- ['beat', 'beat', 26],
- ['quoted', 'quote', 26],
- ['wore', 'wear', 26],
- ['stepped', 'step', 26],
- ['spearheaded', 'spearhead', 26],
- ['abandoned', 'abandon', 26],
- ['shot', 'shoot', 26],
- ['commended', 'commend', 26],
- ['testified', 'testify', 26],
- ['suspended', 'suspend', 26],
- ['impregnated', 'impregnate', 26],
- ['remitted', 'remit', 26],
- ['screened', 'screen', 26],
- ['assented', 'assent', 26],
- ['consented', 'consent', 25],
- ['staged', 'stage', 25],
- ['surfaced', 'surface', 25],
- ['preserved', 'preserve', 25],
- ['delayed', 'delay', 25],
- ['constructed', 'construct', 25],
- ['valued', 'value', 25],
- ['resigned', 'resign', 25],
- ['deposited', 'deposit', 25],
- ['threaded', 'thread', 25],
- ['legislated', 'legislate', 24],
- ['monitored', 'monitor', 24],
- ['watched', 'watch', 24],
- ['sized', 'size', 24],
- ['soared', 'soar', 24],
- ['installed', 'install', 24],
- ['crossed', 'cross', 24],
- ['avoided', 'avoid', 24],
- ['switched', 'switch', 24],
- ['subsidized', 'subsidize', 24],
- ['feared', 'fear', 24],
- ['adhered', 'adhere', 24],
- ['shelled', 'shell', 24],
- ['stamped', 'stamp', 24],
- ['traced', 'trace', 24],
- ['salted', 'salt', 24],
- ['exercised', 'exercise', 23],
- ['cleared', 'clear', 23],
- ['pulled', 'pull', 23],
- ['flew', 'fly', 23],
- ['tracked', 'track', 23],
- ['booked', 'book', 23],
- ['implied', 'imply', 23],
- ['tripled', 'triple', 23],
- ['reacted', 'react', 23],
- ['shaped', 'shape', 23],
- ['dispersed', 'disperse', 23],
- ['infringed', 'infringe', 23],
- ['possessed', 'possess', 23],
- ['defended', 'defend', 23],
- ['instructed', 'instruct', 23],
- ['enriched', 'enrich', 23],
- ['deducted', 'deduct', 23],
- ['disbursed', 'disburse', 23],
- ['convinced', 'convince', 22],
- ['outperformed', 'outperform', 22],
- ['oriented', 'orient', 22],
- ['portrayed', 'portray', 22],
- ['converted', 'convert', 22],
- ['preceded', 'precede', 22],
- ['struggled', 'struggle', 22],
- ['sparked', 'spark', 22],
- ['flowed', 'flow', 22],
- ['teamed', 'team', 22],
- ['donated', 'donate', 22],
- ['originated', 'originate', 22],
- ['desired', 'desire', 22],
- ['hindered', 'hinder', 22],
- ['detected', 'detect', 22],
- ['profiled', 'profile', 21],
- ['stabilized', 'stabilize', 21],
- ['competed', 'compete', 21],
- ['oversaw', 'oversee', 21],
- ['objected', 'object', 21],
- ['culminated', 'culminate', 21],
- ['paved', 'pave', 21],
- ['nominated', 'nominate', 21],
- ['necessitated', 'necessitate', 21],
- ['owed', 'owe', 21],
- ['edited', 'edit', 21],
- ['corresponded', 'correspond', 21],
- ['reclassified', 'reclassify', 21],
- ['loaded', 'load', 20],
- ['digitized', 'digitize', 20],
- ['inherited', 'inherit', 20],
- ['transported', 'transport', 20],
- ['advertised', 'advertise', 20],
- ['split', 'split', 20],
- ['boosted', 'boost', 20],
- ['fought', 'fight', 20],
- ['summed', 'sum', 20],
- ['mobilized', 'mobilize', 20],
- ['irrigated', 'irrigate', 20],
- ['graded', 'grade', 20],
- ['carded', 'card', 20],
- ['shut', 'shut', 19],
- ['located', 'locate', 19],
- ['weighed', 'weigh', 19],
- ['lent', 'lend', 19],
- ['walked', 'walk', 19],
- ['rented', 'rent', 19],
- ['narrowed', 'narrow', 19],
- ['spurred', 'spur', 19],
- ['exchanged', 'exchange', 19],
- ['pioneered', 'pioneer', 19],
- ['entailed', 'entail', 19],
- ['guaranteed', 'guarantee', 19],
- ['alluded', 'allude', 19],
- ['resolved', 'resolve', 19],
- ['envisaged', 'envisage', 19],
- ['elicited', 'elicit', 19],
- ['pertained', 'pertain', 19],
- ['activated', 'activate', 19],
- ['alloyed', 'alloy', 19],
- ['disseminated', 'disseminate', 18],
- ['intensified', 'intensify', 18],
- ['weakened', 'weaken', 18],
- ['aired', 'air', 18],
- ['embraced', 'embrace', 18],
- ['rounded', 'round', 18],
- ['plummeted', 'plummet', 18],
- ['invented', 'invent', 18],
- ['concentrated', 'concentrate', 18],
- ['trusted', 'trust', 18],
- ['governed', 'govern', 18],
- ['survived', 'survive', 18],
- ['eviscerated', 'eviscerate', 18],
- ['sampled', 'sample', 17],
- ['functioned', 'function', 17],
- ['researched', 'research', 17],
- ['spanned', 'span', 17],
- ['disappeared', 'disappear', 17],
- ['overturned', 'overturn', 17],
- ['fired', 'fire', 17],
- ['delegated', 'delegate', 17],
- ['borrowed', 'borrow', 17],
- ['fluctuated', 'fluctuate', 17],
- ['fed', 'feed', 17],
- ['mediated', 'mediate', 16],
- ['checked', 'check', 16],
- ['pied', 'pie', 16],
- ['complemented', 'complement', 16],
- ['centered', 'center', 16],
- ['prefabricated', 'prefabricate', 16],
- ['blocked', 'block', 16],
- ['inaugurated', 'inaugurate', 16],
- ['superseded', 'supersede', 16],
- ['supplemented', 'supplement', 15],
- ['framed', 'frame', 15],
- ['renamed', 'rename', 15],
- ['outpaced', 'outpace', 15],
- ['plagued', 'plague', 15],
- ['widened', 'widen', 15],
- ['bounced', 'bounce', 15],
- ['weighted', 'weight', 15],
- ['fared', 'fare', 15],
- ['figured', 'figure', 15],
- ['deployed', 'deploy', 15],
- ['powered', 'power', 15],
- ['debated', 'debate', 15],
- ['respected', 'respect', 15],
- ['briefed', 'brief', 15],
- ['regarded', 'regard', 15],
- ['financed', 'finance', 15],
- ['affixed', 'affix', 15],
- ['inventoried', 'inventory', 15],
- ['enumerated', 'enumerate', 15],
- ['distinguished', 'distinguish', 14],
- ['invoiced', 'invoice', 14],
- ['topped', 'top', 14],
- ['dubbed', 'dub', 14],
- ['lifted', 'lift', 14],
- ['enlisted', 'enlist', 14],
- ['worried', 'worry', 14],
- ['upgraded', 'upgrade', 14],
- ['eased', 'ease', 14],
- ['married', 'marry', 14],
- ['diced', 'dice', 14],
- ['solidified', 'solidify', 14],
- ['practiced', 'practice', 14],
- ['breached', 'breach', 14],
- ['speculated', 'speculate', 14],
- ['repealed', 'repeal', 14],
- ['farmed', 'farm', 14],
- ['itemized', 'itemize', 14],
- ['roasted', 'roast', 14],
- ['equalled', 'equal', 14],
- ['denoted', 'denote', 14],
- ['piloted', 'pilot', 14],
- ['precluded', 'preclude', 14],
- ['retransmitted', 'retransmit', 14],
- ['denatured', 'denature', 14],
- ['crimped', 'crimp', 14],
- ['redesigned', 'redesign', 13],
- ['kicked', 'kick', 13],
- ['afforded', 'afford', 13],
- ['tied', 'tie', 13],
- ['executed', 'execute', 13],
- ['conceded', 'concede', 13],
- ['flavoured', 'flavour', 13],
- ['championed', 'champion', 13],
- ['sang', 'sing', 13],
- ['depicted', 'depict', 13],
- ['envisioned', 'envision', 13],
- ['harvested', 'harvest', 13],
- ['depended', 'depend', 13],
- ['spelled', 'spell', 13],
- ['greeted', 'greet', 13],
- ['accomplished', 'accomplish', 13],
- ['promulgated', 'promulgate', 13],
- ['faxed', 'fax', 13],
- ['formalized', 'formalize', 13],
- ['stimulated', 'stimulate', 13],
- ['paralleled', 'parallel', 13],
- ['outweighed', 'outweigh', 13],
- ['consumed', 'consume', 13],
- ['extracted', 'extract', 13],
- ['furthered', 'further', 13],
- ['counted', 'count', 13],
- ['abolished', 'abolish', 13],
- ['dictated', 'dictate', 13],
- ['embossed', 'emboss', 13],
- ['revamped', 'revamp', 12],
- ['spotted', 'spot', 12],
- ['differentiated', 'differentiate', 12],
- ['scheduled', 'schedule', 12],
- ['substituted', 'substitute', 12],
- ['unfolded', 'unfold', 12],
- ['deprived', 'deprive', 12],
- ['dipped', 'dip', 12],
- ['disrupted', 'disrupt', 12],
- ['dampened', 'dampen', 12],
- ['multiplied', 'multiply', 12],
- ['banned', 'ban', 12],
- ['cultivated', 'cultivate', 12],
- ['ground', 'grind', 12],
- ['restricted', 'restrict', 12],
- ['postponed', 'postpone', 12],
- ['fled', 'flee', 12],
- ['seconded', 'second', 12],
- ['remembered', 'remember', 12],
- ['tightened', 'tighten', 12],
- ['equipped', 'equip', 12],
- ['wrapped', 'wrap', 12],
- ['labeled', 'label', 12],
- ['isolated', 'isolate', 12],
- ['complied', 'comply', 12],
- ['motivated', 'motivate', 12],
- ['absorbed', 'absorb', 12],
- ['elaborated', 'elaborate', 12],
- ['curated', 'curate', 12],
- ['detained', 'detain', 12],
- ['remanded', 'remand', 12],
- ['jarred', 'jar', 12],
- ['staffed', 'staff', 11],
- ['connected', 'connect', 11],
- ['organised', 'organise', 11],
- ['fuelled', 'fuel', 11],
- ['shrank', 'shrink', 11],
- ['serviced', 'service', 11],
- ['positioned', 'position', 11],
- ['traded', 'trade', 11],
- ['depreciated', 'depreciate', 11],
- ['inhabited', 'inhabit', 11],
- ['propelled', 'propel', 11],
- ['reinstated', 'reinstate', 11],
- ['allotted', 'allot', 11],
- ['lauded', 'laud', 11],
- ['lined', 'line', 11],
- ['contemplated', 'contemplate', 11],
- ['lapsed', 'lapse', 11],
- ['precipitated', 'precipitate', 11],
- ['suspected', 'suspect', 11],
- ['entrusted', 'entrust', 11],
- ['resisted', 'resist', 11],
- ['disposed', 'dispose', 11],
- ['aligned', 'align', 11],
- ['substantiated', 'substantiate', 11],
- ['pressed', 'press', 11],
- ['trended', 'trend', 11],
- ['fixed', 'fix', 11],
- ['judged', 'judge', 11],
- ['ignored', 'ignore', 11],
- ['dissatisfied', 'dissatisfy', 11],
- ['ascertained', 'ascertain', 11],
- ['knitted', 'knit', 11],
- ['extruded', 'extrude', 11],
- ['mercerized', 'mercerize', 11],
- ['formulated', 'formulate', 10],
- ['presided', 'preside', 10],
- ['relocated', 'relocate', 10],
- ['branded', 'brand', 10],
- ['allied', 'ally', 10],
- ['undermined', 'undermine', 10],
- ['outnumbered', 'outnumber', 10],
- ['cared', 'care', 10],
- ['persisted', 'persist', 10],
- ['grounded', 'ground', 10],
- ['cleaned', 'clean', 10],
- ['conceived', 'conceive', 10],
- ['persuaded', 'persuade', 10],
- ['wound', 'wind', 10],
- ['devised', 'devise', 10],
- ['packed', 'pack', 10],
- ['freed', 'free', 10],
- ['specialized', 'specialize', 10],
- ['mirrored', 'mirror', 10],
- ['lamented', 'lament', 10],
- ['waived', 'waive', 10],
- ['modeled', 'model', 10],
- ['aided', 'aid', 10],
- ['punched', 'punch', 10],
- ['capped', 'cap', 10],
- ['exposed', 'expose', 10],
- ['inspected', 'inspect', 10],
- ['injected', 'inject', 10],
- ['grated', 'grate', 10],
- ['escaped', 'escape', 10],
- ['correlated', 'correlate', 10],
- ['invoked', 'invoke', 10],
- ['justified', 'justify', 10],
- ['tasked', 'task', 10],
- ['attested', 'attest', 10],
- ['maximized', 'maximize', 10],
- ['strove', 'strive', 10],
- ['delineated', 'delineate', 10],
- ['sentenced', 'sentence', 10],
- ['tufted', 'tuft', 10],
- ['glazed', 'glaze', 10],
- ['transpired', 'transpire', 9],
- ['reconciled', 'reconcile', 9],
- ['streamlined', 'streamline', 9],
- ['ate', 'eat', 9],
- ['structured', 'structure', 9],
- ['interested', 'interest', 9],
- ['relaxed', 'relax', 9],
- ['plunged', 'plunge', 9],
- ['instigated', 'instigate', 9],
- ['overcame', 'overcome', 9],
- ['knocked', 'knock', 9],
- ['exited', 'exit', 9],
- ['deported', 'deport', 9],
- ['stuffed', 'stuff', 9],
- ['attacked', 'attack', 9],
- ['moulded', 'mould', 9],
- ['plated', 'plate', 9],
- ['housed', 'house', 9],
- ['enunciated', 'enunciate', 9],
- ['deplored', 'deplore', 9],
- ['embodied', 'embody', 9],
- ['endeavoured', 'endeavour', 9],
- ['warranted', 'warrant', 9],
- ['copied', 'copy', 9],
- ['amalgamated', 'amalgamate', 9],
- ['withheld', 'withhold', 9],
- ['tabulated', 'tabulate', 9],
- ['dated', 'date', 9],
- ['reconfirmed', 'reconfirm', 9],
- ['simplified', 'simplify', 9],
- ['coated', 'coat', 9],
- ['hatched', 'hatch', 9],
- ['stratified', 'stratify', 9],
- ['chopped', 'chop', 9],
- ['regulated', 'regulate', 9],
- ['balanced', 'balance', 9],
- ['galvanized', 'galvanize', 9],
- ['aggregated', 'aggregate', 9],
- ['idled', 'idle', 9],
- ['restructured', 'restructure', 9],
- ['dyed', 'dye', 9],
- ['impressed', 'impress', 9],
- ['accommodated', 'accommodate', 9],
- ['omitted', 'omit', 9],
- ['modernized', 'modernize', 9],
- ['expended', 'expend', 9],
- ['concealed', 'conceal', 9],
- ['painted', 'paint', 8],
- ['laminated', 'laminate', 8],
- ['networked', 'network', 8],
- ['patented', 'patent', 8],
- ['sailed', 'sail', 8],
- ['logged', 'log', 8],
- ['resembled', 'resemble', 8],
- ['surprised', 'surprise', 8],
- ['sensitized', 'sensitize', 8],
- ['synthesized', 'synthesize', 8],
- ['tumbled', 'tumble', 8],
- ['individualized', 'individualize', 8],
- ['waited', 'wait', 8],
- ['hampered', 'hamper', 8],
- ['exploded', 'explode', 8],
- ['cropped', 'crop', 8],
- ['polished', 'polish', 8],
- ['scanned', 'scan', 8],
- ['solved', 'solve', 8],
- ['thrived', 'thrive', 8],
- ['ushered', 'usher', 8],
- ['recognised', 'recognise', 8],
- ['commemorated', 'commemorate', 8],
- ['lit', 'light', 8],
- ['relayed', 'relay', 8],
- ['separated', 'separate', 8],
- ['contravened', 'contravene', 8],
- ['appraised', 'appraise', 8],
- ['embedded', 'embed', 8],
- ['scaled', 'scale', 8],
- ['backed', 'back', 8],
- ['subdivided', 'subdivide', 8],
- ['auctioned', 'auction', 8],
- ['reasoned', 'reason', 8],
- ['saturated', 'saturate', 8],
- ['swept', 'sweep', 8],
- ['infected', 'infect', 8],
- ['winged', 'wing', 8],
- ['revolved', 'revolve', 8],
- ['deliberated', 'deliberate', 8],
- ['elevated', 'elevate', 8],
- ['interrelated', 'interrelate', 8],
- ['lessened', 'lessen', 8],
- ['forfeited', 'forfeit', 8],
- ['hypothesized', 'hypothesize', 8],
- ['resonated', 'resonate', 8],
- ['migrated', 'migrate', 8],
- ['transacted', 'transact', 8],
- ['prorated', 'prorate', 8],
- ['apologized', 'apologize', 8],
- ['translated', 'translate', 8],
- ['licenced', 'licence', 8],
- ['overlooked', 'overlook', 8],
- ['revoked', 'revoke', 8],
- ['provoked', 'provoke', 8],
- ['canvassed', 'canvass', 8],
- ['diverted', 'divert', 8],
- ['restated', 'restate', 7],
- ['forgot', 'forget', 7],
- ['grabbed', 'grab', 7],
- ['endured', 'endure', 7],
- ['regained', 'regain', 7],
- ['destined', 'destine', 7],
- ['flourished', 'flourish', 7],
- ['damaged', 'damage', 7],
- ['blamed', 'blame', 7],
- ['enveloped', 'envelop', 7],
- ['grazed', 'graze', 7],
- ['dug', 'dig', 7],
- ['squared', 'square', 7],
- ['risked', 'risk', 7],
- ['tackled', 'tackle', 7],
- ['sealed', 'seal', 7],
- ['quit', 'quit', 7],
- ['rested', 'rest', 7],
- ['impeded', 'impede', 7],
- ['disputed', 'dispute', 7],
- ['deserved', 'deserve', 7],
- ['revisited', 'revisit', 7],
- ['prescribed', 'prescribe', 7],
- ['overlapped', 'overlap', 7],
- ['eroded', 'erode', 7],
- ['reigned', 'reign', 7],
- ['pardoned', 'pardon', 7],
- ['discharged', 'discharge', 7],
- ['exacerbated', 'exacerbate', 7],
- ['feed', 'fee', 7],
- ['blended', 'blend', 7],
- ['packaged', 'package', 7],
- ['leased', 'lease', 7],
- ['materialized', 'materialize', 7],
- ['marginalized', 'marginalize', 7],
- ['refunded', 'refund', 7],
- ['crafted', 'craft', 7],
- ['coloured', 'colour', 7],
- ['replanted', 'replant', 7],
- ['minced', 'mince', 7],
- ['dressed', 'dress', 7],
- ['relaunched', 'relaunch', 7],
- ['condemned', 'condemn', 7],
- ['underestimated', 'underestimate', 7],
- ['deepened', 'deepen', 7],
- ['telephoned', 'telephone', 7],
- ['interacted', 'interact', 7],
- ['denounced', 'denounce', 7],
- ['pleaded', 'plead', 7],
- ['rallied', 'rally', 7],
- ['consigned', 'consign', 7],
- ['annexed', 'annex', 7],
- ['grouped', 'group', 7],
- ['nurtured', 'nurture', 7],
- ['defeated', 'defeat', 7],
- ['underperformed', 'underperform', 7],
- ['reorganized', 'reorganize', 7],
- ['overpaid', 'overpay', 7],
- ['drilled', 'drill', 7],
- ['brazed', 'braze', 7],
- ['grooved', 'groove', 7],
- ['napped', 'nap', 7],
- ['intercepted', 'intercept', 7],
- ['reconsidered', 'reconsider', 7],
- ['pleased', 'please', 6],
- ['standardized', 'standardize', 6],
- ['integrated', 'integrate', 6],
- ['threw', 'throw', 6],
- ['customized', 'customize', 6],
- ['preached', 'preach', 6],
- ['mapped', 'map', 6],
- ['aggravated', 'aggravate', 6],
- ['probed', 'probe', 6],
- ['slid', 'slide', 6],
- ['engendered', 'engender', 6],
- ['indexed', 'index', 6],
- ['rang', 'ring', 6],
- ['overtook', 'overtake', 6],
- ['imagined', 'imagine', 6],
- ['smuggled', 'smuggle', 6],
- ['erupted', 'erupt', 6],
- ['sprang', 'spring', 6],
- ['erred', 'err', 6],
- ['optimized', 'optimize', 6],
- ['sensed', 'sense', 6],
- ['bred', 'breed', 6],
- ['contested', 'contest', 6],
- ['practised', 'practise', 6],
- ['emphasised', 'emphasise', 6],
- ['sketched', 'sketch', 6],
- ['relieved', 'relieve', 6],
- ['orientated', 'orientate', 6],
- ['counselled', 'counsel', 6],
- ['authored', 'authore', 6],
- ['foresaw', 'foresee', 6],
- ['jeopardized', 'jeopardize', 6],
- ['inhibited', 'inhibit', 6],
- ['collapsed', 'collapse', 6],
- ['augmented', 'augment', 6],
- ['converged', 'converge', 6],
- ['exempted', 'exempt', 6],
- ['deferred', 'defer', 6],
- ['duplicated', 'duplicate', 6],
- ['compounded', 'compound', 6],
- ['emitted', 'emit', 6],
- ['reintroduced', 'reintroduce', 6],
- ['categorized', 'categorize', 6],
- ['diversified', 'diversify', 6],
- ['nourished', 'nourish', 6],
- ['homogenized', 'homogenize', 6],
- ['chilled', 'chill', 6],
- ['floated', 'float', 6],
- ['cooled', 'cool', 6],
- ['trimmed', 'trim', 6],
- ['calibrated', 'calibrate', 6],
- ['dissolved', 'dissolve', 6],
- ['grassed', 'grass', 6],
- ['pooled', 'pool', 6],
- ['rebated', 'rebate', 6],
- ['queried', 'query', 6],
- ['hovered', 'hover', 6],
- ['replicated', 'replicate', 6],
- ['imparted', 'impart', 6],
- ['erected', 'erect', 6],
- ['drank', 'drink', 6],
- ['braved', 'brave', 6],
- ['corroborated', 'corroborate', 6],
- ['popularized', 'popularize', 6],
- ['phoned', 'phone', 6],
- ['overruled', 'overrule', 6],
- ['aggrieved', 'aggrieve', 6],
- ['insured', 'insure', 6],
- ['ceded', 'cede', 6],
- ['complimented', 'compliment', 6],
- ['adjudicated', 'adjudicate', 6],
- ['billed', 'bill', 6],
- ['sided', 'side', 6],
- ['heralded', 'herald', 6],
- ['dispensed', 'dispense', 6],
- ['refuted', 'refute', 6],
- ['prosecuted', 'prosecute', 6],
- ['rubberized', 'rubberize', 6],
- ['motorized', 'motorize', 6],
- ['indented', 'indent', 6],
- ['tapered', 'taper', 6],
- ['fit', 'fit', 5],
- ['incarcerated', 'incarcerate', 5],
- ['mined', 'mine', 5],
- ['danced', 'dance', 5],
- ['revolutionized', 'revolutionize', 5],
- ['worsened', 'worsen', 5],
- ['realigned', 'realign', 5],
- ['revitalized', 'revitalize', 5],
- ['tagged', 'tag', 5],
- ['underrepresented', 'underrepresent', 5],
- ['pent', 'pen', 5],
- ['heightened', 'heighten', 5],
- ['rent', 'rend', 5],
- ['mitigated', 'mitigate', 5],
- ['singled', 'single', 5],
- ['stifled', 'stifle', 5],
- ['reopened', 'reopen', 5],
- ['hiked', 'hike', 5],
- ['surmised', 'surmise', 5],
- ['enclosed', 'enclose', 5],
- ['battled', 'battle', 5],
- ['flagged', 'flag', 5],
- ['curled', 'curl', 5],
- ['debuted', 'debut', 5],
- ['poured', 'pour', 5],
- ['bet', 'bet', 5],
- ['halted', 'halt', 5],
- ['flattened', 'flatten', 5],
- ['spawned', 'spawn', 5],
- ['dreamed', 'dream', 5],
- ['tapped', 'tap', 5],
- ['experimented', 'experiment', 5],
- ['fielded', 'field', 5],
- ['corrected', 'correct', 5],
- ['ignited', 'ignite', 5],
- ['perished', 'perish', 5],
- ['availed', 'avail', 5],
- ['regretted', 'regret', 5],
- ['recounted', 'recount', 5],
- ['empowered', 'empower', 5],
- ['wired', 'wire', 5],
- ['vowed', 'vow', 5],
- ['persevered', 'persevere', 5],
- ['sued', 'sue', 5],
- ['undersigned', 'undersign', 5],
- ['halogenated', 'halogenate', 5],
- ['compressed', 'compress', 5],
- ['liberalized', 'liberalize', 5],
- ['curtailed', 'curtail', 5],
- ['postulated', 'postulate', 5],
- ['reasserted', 'reassert', 5],
- ['disallowed', 'disallow', 5],
- ['generalized', 'generalize', 5],
- ['suppressed', 'suppress', 5],
- ['infested', 'infest', 5],
- ['tarnished', 'tarnish', 5],
- ['weed', 'wee', 5],
- ['frustrated', 'frustrate', 5],
- ['recalculated', 'recalculate', 5],
- ['hauled', 'haul', 5],
- ['centralized', 'centralize', 5],
- ['melted', 'melt', 5],
- ['cured', 'cure', 5],
- ['toasted', 'toast', 5],
- ['matured', 'mature', 5],
- ['displaced', 'displace', 5],
- ['factored', 'factor', 5],
- ['locked', 'lock', 5],
- ['minimized', 'minimize', 5],
- ['countered', 'counter', 5],
- ['bypassed', 'bypass', 5],
- ['deregulated', 'deregulate', 5],
- ['enforced', 'enforce', 5],
- ['exerted', 'exert', 5],
- ['equalized', 'equalize', 5],
- ['signified', 'signify', 5],
- ['divested', 'divest', 5],
- ['exhausted', 'exhaust', 5],
- ['enshrined', 'enshrine', 5],
- ['redefined', 'redefin', 5],
- ['reassured', 'reassure', 5],
- ['resided', 'reside', 5],
- ['boxed', 'box', 5],
- ['gripped', 'grip', 5],
- ['stormed', 'storm', 5],
- ['illuminated', 'illuminate', 5],
- ['posited', 'posit', 5],
- ['carved', 'carve', 5],
- ['aroused', 'arouse', 5],
- ['grossed', 'gross', 5],
- ['folded', 'fold', 5],
- ['composed', 'compose', 5],
- ['premiered', 'premier', 5],
- ['initialled', 'initial', 5],
- ['devolved', 'devolve', 5],
- ['predominated', 'predominate', 5],
- ['lubricated', 'lubricate', 5],
- ['interfered', 'interfere', 5],
- ['reinvested', 'reinvest', 5],
- ['skimmed', 'skim', 5],
- ['cabled', 'cable', 5],
- ['flanged', 'flange', 5],
- ['upholstered', 'upholster', 5],
- ['calendered', 'calender', 5],
- ['taped', 'tape', 4],
- ['furnished', 'furnish', 4],
- ['systematized', 'systematize', 4],
- ['immersed', 'immerse', 4],
- ['enticed', 'entice', 4],
- ['trailed', 'trail', 4],
- ['withstood', 'withstand', 4],
- ['realised', 'realise', 4],
- ['depressed', 'depress', 4],
- ['subsided', 'subside', 4],
- ['slumped', 'slump', 4],
- ['devastated', 'devastate', 4],
- ['masked', 'mask', 4],
- ['downgraded', 'downgrade', 4],
- ['sank', 'sink', 4],
- ['stumbled', 'stumble', 4],
- ['decorated', 'decorate', 4],
- ['reaped', 'reap', 4],
- ['fished', 'fish', 4],
- ['tuned', 'tune', 4],
- ['jogged', 'jog', 4],
- ['premised', 'premise', 4],
- ['oozed', 'ooze', 4],
- ['outstripped', 'outstrip', 4],
- ['conceptualized', 'conceptualize', 4],
- ['commercialized', 'commercialize', 4],
- ['summoned', 'summon', 4],
- ['pronounced', 'pronounce', 4],
- ['offended', 'offend', 4],
- ['decried', 'decry', 4],
- ['equated', 'equate', 4],
- ['sprouted', 'sprout', 4],
- ['delighted', 'delight', 4],
- ['united', 'unite', 4],
- ['ventured', 'venture', 4],
- ['subscribed', 'subscribe', 4],
- ['boiled', 'boil', 4],
- ['evoked', 'evoke', 4],
- ['surrounded', 'surround', 4],
- ['disliked', 'dislike', 4],
- ['configured', 'configure', 4],
- ['manifested', 'manifest', 4],
- ['typed', 'type', 4],
- ['expunged', 'expunge', 4],
- ['coiled', 'coil', 4],
- ['pondered', 'ponder', 4],
- ['adduced', 'adduce', 4],
- ['surrendered', 'surrender', 4],
- ['rescued', 'rescue', 4],
- ['flavored', 'flavor', 4],
- ['mixed', 'mix', 4],
- ['inserted', 'insert', 4],
- ['degraded', 'degrade', 4],
- ['soaked', 'soak', 4],
- ['blighted', 'blight', 4],
- ['banded', 'band', 4],
- ['spaced', 'space', 4],
- ['baked', 'bake', 4],
- ['shredded', 'shred', 4],
- ['dined', 'dine', 4],
- ['segregated', 'segregate', 4],
- ['dehydrated', 'dehydrate', 4],
- ['decaffeinated', 'decaffeinate', 4],
- ['flaked', 'flake', 4],
- ['deflated', 'deflate', 4],
- ['inactivated', 'inactivate', 4],
- ['blushed', 'blush', 4],
- ['bettered', 'better', 4],
- ['tendered', 'tender', 4],
- ['granulated', 'granulate', 4],
- ['specialised', 'specialise', 4],
- ['discouraged', 'discourage', 4],
- ['moderated', 'moderate', 4],
- ['evidenced', 'evidence', 4],
- ['slaughtered', 'slaughter', 4],
- ['blurred', 'blur', 4],
- ['breaded', 'bread', 4],
- ['absolved', 'absolve', 4],
- ['froze', 'freeze', 4],
- ['basted', 'baste', 4],
- ['cooked', 'cook', 4],
- ['reimbursed', 'reimburse', 4],
- ['decentralized', 'decentralize', 4],
- ['harnessed', 'harness', 4],
- ['earmarked', 'earmark', 4],
- ['disadvantaged', 'disadvantage', 4],
- ['upset', 'upset', 4],
- ['lectured', 'lecture', 4],
- ['bridged', 'bridge', 4],
- ['rejoined', 'rejoin', 4],
- ['sounded', 'sound', 4],
- ['stirred', 'stir', 4],
- ['notarized', 'notarize', 4],
- ['stained', 'stain', 4],
- ['appropriated', 'appropriate', 4],
- ['hacked', 'hack', 4],
- ['streamed', 'stream', 4],
- ['parked', 'park', 4],
- ['italicized', 'italicize', 4],
- ['circumvented', 'circumvent', 4],
- ['chained', 'chain', 4],
- ['scrambled', 'scramble', 4],
- ['resold', 'resell', 4],
- ['surmounted', 'surmount', 4],
- ['rushed', 'rush', 4],
- ['laughed', 'laugh', 4],
- ['subsumed', 'subsume', 4],
- ['overstated', 'overstate', 4],
- ['footed', 'foot', 4],
- ['gleaned', 'glean', 4],
- ['approximated', 'approximate', 4],
- ['immunized', 'immunize', 4],
- ['abducted', 'abduct', 4],
- ['abstained', 'abstain', 4],
- ['pleated', 'pleat', 4],
- ['corrugated', 'corrugate', 4],
- ['vulcanized', 'vulcanize', 4],
- ['boarded', 'board', 4],
- ['certificated', 'certificate', 4],
- ['oxygenated', 'oxygenate', 4],
- ['fined', 'fine', 4],
- ['undercut', 'undercut', 4],
- ['countersigned', 'countersign', 4],
- ['cloned', 'clon', 4],
- ['manned', 'man', 3],
- ['reordered', 'reorder', 3],
- ['tabbed', 'tab', 3],
- ['boasted', 'boast', 3],
- ['federated', 'federate', 3],
- ['discontinued', 'discontinue', 3],
- ['skyrocketed', 'skyrocket', 3],
- ['reconfigured', 'reconfigure', 3],
- ['segmented', 'segment', 3],
- ['affiliated', 'affiliate', 3],
- ['renegotiated', 'renegotiate', 3],
- ['brokered', 'broker', 3],
- ['escalated', 'escalate', 3],
- ['detracted', 'detract', 3],
- ['roamed', 'roam', 3],
- ['imprinted', 'imprint', 3],
- ['minded', 'mind', 3],
- ['burned', 'burn', 3],
- ['slashed', 'slash', 3],
- ['wiped', 'wipe', 3],
- ['stagnated', 'stagnate', 3],
- ['spilled', 'spill', 3],
- ['upped', 'up', 3],
- ['incited', 'incite', 3],
- ['teetered', 'teeter', 3],
- ['dwindled', 'dwindle', 3],
- ['dragged', 'drag', 3],
- ['cheered', 'cheer', 3],
- ['popped', 'pop', 3],
- ['obscured', 'obscure', 3],
- ['shook', 'shake', 3],
- ['fastened', 'fasten', 3],
- ['blasted', 'blast', 3],
- ['clinched', 'clinch', 3],
- ['unleashed', 'unleash', 3],
- ['mattered', 'matter', 3],
- ['computerized', 'computerize', 3],
- ['thrust', 'thrust', 3],
- ['underpinned', 'underpin', 3],
- ['overwhelmed', 'overwhelm', 3],
- ['gifted', 'gift', 3],
- ['dawned', 'dawn', 3],
- ['favored', 'favor', 3],
- ['lobbied', 'lobby', 3],
- ['doubted', 'doubt', 3],
- ['diagnosed', 'diagnose', 3],
- ['rode', 'ride', 3],
- ['personified', 'personify', 3],
- ['spared', 'spare', 3],
- ['compelled', 'compel', 3],
- ['harmed', 'harm', 3],
- ['endeavored', 'endeavor', 3],
- ['prayed', 'pray', 3],
- ['partook', 'partake', 3],
- ['taxed', 'tax', 3],
- ['annulled', 'annul', 3],
- ['insulated', 'insulate', 3],
- ['pitched', 'pitch', 3],
- ['severed', 'sever', 3],
- ['reread', 'reread', 3],
- ['reclaimed', 'reclaim', 3],
- ['rebutted', 'rebut', 3],
- ['opined', 'opine', 3],
- ['formatted', 'format', 3],
- ['chatted', 'chat', 3],
- ['clustered', 'cluster', 3],
- ['renovated', 'renovate', 3],
- ['grappled', 'grapple', 3],
- ['likened', 'liken', 3],
- ['vegetated', 'vegetate', 3],
- ['mowed', 'mow', 3],
- ['compensated', 'compensate', 3],
- ['slatted', 'slat', 3],
- ['leached', 'leach', 3],
- ['speckled', 'speckle', 3],
- ['discoloured', 'discolour', 3],
- ['bagged', 'bag', 3],
- ['soiled', 'soil', 3],
- ['tiered', 'tier', 3],
- ['simulated', 'simulate', 3],
- ['downsized', 'downsize', 3],
- ['thawed', 'thaw', 3],
- ['bound', 'bind', 3],
- ['recreated', 'recreate', 3],
- ['excavated', 'excavate', 3],
- ['sequestered', 'sequester', 3],
- ['reacquired', 'reacquire', 3],
- ['revived', 'revive', 3],
- ['rotated', 'rotate', 3],
- ['refinanced', 'refinance', 3],
- ['circled', 'circle', 3],
- ['encoded', 'encode', 3],
- ['raged', 'rage', 3],
- ['hurt', 'hurt', 3],
- ['confronted', 'confront', 3],
- ['tempted', 'tempt', 3],
- ['appended', 'append', 3],
- ['refereed', 'referee', 3],
- ['misused', 'misuse', 3],
- ['repatriated', 'repatriate', 3],
- ['internalized', 'internalize', 3],
- ['conjectured', 'conjecture', 3],
- ['predated', 'predate', 3],
- ['devalued', 'devalue', 3],
- ['effected', 'effect', 3],
- ['defaulted', 'default', 3],
- ['stripped', 'strip', 3],
- ['innovated', 'innovate', 3],
- ['debited', 'debit', 3],
- ['reformed', 'reform', 3],
- ['recited', 'recite', 3],
- ['navigated', 'navigate', 3],
- ['breathed', 'breathe', 3],
- ['domiciled', 'domicile', 3],
- ['discriminated', 'discriminate', 3],
- ['shielded', 'shield', 3],
- ['entrenched', 'entrench', 3],
- ['liaised', 'liaise', 3],
- ['outlawed', 'outlaw', 3],
- ['paused', 'pause', 3],
- ['misrepresented', 'misrepresent', 3],
- ['copyrighted', 'copyright', 3],
- ['refocused', 'refocuse', 3],
- ['sanctioned', 'sanction', 3],
- ['encrypted', 'encrypt', 3],
- ['barred', 'bar', 3],
- ['shored', 'shore', 3],
- ['proffered', 'proffer', 3],
- ['catered', 'cater', 3],
- ['annotated', 'annotate', 3],
- ['recast', 'recast', 3],
- ['endeared', 'endear', 3],
- ['unearthed', 'unearth', 3],
- ['disqualified', 'disqualify', 3],
- ['quashed', 'quash', 3],
- ['raided', 'raid', 3],
- ['oppressed', 'oppress', 3],
- ['invaded', 'invade', 3],
- ['hid', 'hide', 3],
- ['cosponsored', 'cosponsor', 3],
- ['abused', 'abuse', 3],
- ['convicted', 'convict', 3],
- ['bestowed', 'bestow', 3],
- ['confided', 'confide', 3],
- ['curved', 'curve', 3],
- ['netted', 'net', 3],
- ['woke', 'wake', 3],
- ['expedited', 'expedite', 3],
- ['tanned', 'tan', 3],
- ['nosed', 'nose', 3],
- ['pressurized', 'pressurize', 3],
- ['padded', 'pad', 3],
- ['ribbed', 'rib', 3],
- ['apportioned', 'apportion', 3],
- ['microfilmed', 'microfilm', 3],
- ['confiscated', 'confiscate', 3],
- ['emigrated', 'emigrate', 3],
- ['stowed', 'stow', 3],
- ['calcined', 'calcine', 3],
- ['scutched', 'scutch', 3],
- ['coupled', 'couple', 3],
- ['depleted', 'deplete', 3],
- ['apprised', 'apprise', 3],
- ['implanted', 'implant', 3],
- ['randomised', 'randomise', 3],
- ['indicted', 'indict', 2],
- ['reinvented', 'reinvent', 2],
- ['suited', 'suit', 2],
- ['rationalized', 'rationalize', 2],
- ['authenticated', 'authenticate', 2],
- ['authorised', 'authorise', 2],
- ['decelerated', 'decelerate', 2],
- ['racked', 'rack', 2],
- ['trafficked', 'traffick', 2],
- ['escorted', 'escort', 2],
- ['typified', 'typify', 2],
- ['journeyed', 'journey', 2],
- ['familiarized', 'familiarize', 2],
- ['stationed', 'station', 2],
- ['obligated', 'obligate', 2],
- ['softened', 'soften', 2],
- ['magnified', 'magnify', 2],
- ['plotted', 'plot', 2],
- ['confounded', 'confound', 2],
- ['cracked', 'crack', 2],
- ['brightened', 'brighten', 2],
- ['waned', 'wane', 2],
- ['swelled', 'swell', 2],
- ['browsed', 'browse', 2],
- ['assailed', 'assail', 2],
- ['discounted', 'discount', 2],
- ['perforated', 'perforate', 2],
- ['campaigned', 'campaign', 2],
- ['wove', 'weave', 2],
- ['warmed', 'warm', 2],
- ['vanished', 'vanish', 2],
- ['swore', 'swear', 2],
- ['downed', 'down', 2],
- ['christened', 'christen', 2],
- ['inked', 'ink', 2],
- ['gravitated', 'gravitate', 2],
- ['leaked', 'leak', 2],
- ['punctuated', 'punctuate', 2],
- ['braised', 'braise', 2],
- ['brewed', 'brew', 2],
- ['huddled', 'huddle', 2],
- ['spouted', 'spout', 2],
- ['burgeoned', 'burgeon', 2],
- ['gelled', 'gell', 2],
- ['tore', 'tear', 2],
- ['wrestled', 'wrestle', 2],
- ['coached', 'coach', 2],
- ['boomed', 'boom', 2],
- ['assimilated', 'assimilate', 2],
- ['forbade', 'forbid', 2],
- ['boycotted', 'boycott', 2],
- ['sacrificed', 'sacrifice', 2],
- ['kindled', 'kindle', 2],
- ['espoused', 'espouse', 2],
- ['admired', 'admire', 2],
- ['hailed', 'hail', 2],
- ['reckoned', 'reckon', 2],
- ['overhauled', 'overhaul', 2],
- ['commanded', 'command', 2],
- ['instilled', 'instill', 2],
- ['lied', 'lie', 2],
- ['awoke', 'awake', 2],
- ['wasted', 'waste', 2],
- ['mastered', 'master', 2],
- ['amassed', 'amass', 2],
- ['polymerized', 'polymerize', 2],
- ['modulated', 'modulate', 2],
- ['refrigerated', 'refrigerate', 2],
- ['redirected', 'redirect', 2],
- ['stacked', 'stack', 2],
- ['crashed', 'crash', 2],
- ['washed', 'wash', 2],
- ['forbore', 'forbear', 2],
- ['robbed', 'rob', 2],
- ['spun', 'spin', 2],
- ['shortened', 'shorten', 2],
- ['reissued', 'reissue', 2],
- ['submerged', 'submerge', 2],
- ['widowed', 'widow', 2],
- ['ravaged', 'ravage', 2],
- ['drowned', 'drown', 2],
- ['misinterpreted', 'misinterpret', 2],
- ['excreted', 'excrete', 2],
- ['notched', 'notch', 2],
- ['quarantined', 'quarantine', 2],
- ['potted', 'pot', 2],
- ['composted', 'compost', 2],
- ['disinfected', 'disinfect', 2],
- ['retreated', 'retreat', 2],
- ['watered', 'water', 2],
- ['institutionalized', 'institutionalize', 2],
- ['reoriented', 'reorient', 2],
- ['speeded', 'speed', 2],
- ['sowed', 'sow', 2],
- ['neared', 'near', 2],
- ['cubed', 'cube', 2],
- ['desiccated', 'desiccate', 2],
- ['pelleted', 'pellet', 2],
- ['aerated', 'aerate', 2],
- ['afflicted', 'afflict', 2],
- ['relinquished', 'relinquish', 2],
- ['vented', 'vent', 2],
- ['faceted', 'facet', 2],
- ['stockpiled', 'stockpile', 2],
- ['adjoined', 'adjoin', 2],
- ['pumped', 'pump', 2],
- ['drifted', 'drift', 2],
- ['sloped', 'slope', 2],
- ['decomposed', 'decompose', 2],
- ['unloaded', 'unload', 2],
- ['abated', 'abate', 2],
- ['distorted', 'distort', 2],
- ['disfavoured', 'disfavour', 2],
- ['straddled', 'straddle', 2],
- ['reverted', 'revert', 2],
- ['walled', 'wall', 2],
- ['hooked', 'hook', 2],
- ['bodied', 'body', 2],
- ['conserved', 'conserve', 2],
- ['staked', 'stake', 2],
- ['enlarged', 'enlarge', 2],
- ['outbid', 'outbid', 2],
- ['hedged', 'hedge', 2],
- ['truncated', 'truncate', 2],
- ['regressed', 'regress', 2],
- ['crept', 'creep', 2],
- ['conjugated', 'conjugate', 2],
- ['tolerated', 'tolerate', 2],
- ['caged', 'cage', 2],
- ['disturbed', 'disturb', 2],
- ['rewrote', 'rewrite', 2],
- ['unionized', 'unionize', 2],
- ['associated', 'associate', 2],
- ['internationalized', 'internationalize', 2],
- ['leveled', 'level', 2],
- ['formalised', 'formalise', 2],
- ['disembarked', 'disembark', 2],
- ['capitalized', 'capitalize', 2],
- ['squeezed', 'squeeze', 2],
- ['paraphrased', 'paraphrase', 2],
- ['infused', 'infuse', 2],
- ['preoccupied', 'preoccupy', 2],
- ['inferred', 'infer', 2],
- ['underlay', 'underlie', 2],
- ['normalized', 'normalize', 2],
- ['overvalued', 'overvalue', 2],
- ['industrialized', 'industrialize', 2],
- ['rescheduled', 'reschedule', 2],
- ['compromised', 'compromise', 2],
- ['pitted', 'pit', 2],
- ['staggered', 'stagger', 2],
- ['telegraphed', 'telegraph', 2],
- ['renounced', 'renounce', 2],
- ['transited', 'transit', 2],
- ['socked', 'sock', 2],
- ['redistributed', 'redistribute', 2],
- ['enthralled', 'enthrall', 2],
- ['shone', 'shine', 2],
- ['charmed', 'charm', 2],
- ['intersected', 'intersect', 2],
- ['expounded', 'expound', 2],
- ['confined', 'confine', 2],
- ['deceased', 'decease', 2],
- ['interned', 'intern', 2],
- ['naturalized', 'naturalize', 2],
- ['educated', 'educate', 2],
- ['loaned', 'loan', 2],
- ['disenfranchised', 'disenfranchise', 2],
- ['retraced', 'retrace', 2],
- ['coproduced', 'coproduce', 2],
- ['rehearsed', 'rehearse', 2],
- ['funnelled', 'funnel', 2],
- ['sheltered', 'shelter', 2],
- ['sculptured', 'sculpture', 2],
- ['surfed', 'surf', 2],
- ['crowded', 'crowd', 2],
- ['reinvigorated', 'reinvigorate', 2],
- ['prospered', 'prosper', 2],
- ['eluded', 'elude', 2],
- ['endangered', 'endanger', 2],
- ['appeased', 'appease', 2],
- ['lambasted', 'lambaste', 2],
- ['excepted', 'except', 2],
- ['improvised', 'improvise', 2],
- ['dissected', 'dissect', 2],
- ['peppered', 'pepper', 2],
- ['underdeveloped', 'underdevelop', 2],
- ['unscrambled', 'unscramble', 2],
- ['advantaged', 'advantage', 2],
- ['crystallized', 'crystallize', 2],
- ['dismantled', 'dismantle', 2],
- ['conjured', 'conjure', 2],
- ['penetrated', 'penetrate', 2],
- ['occured', 'occure', 2],
- ['repaid', 'repay', 2],
- ['contradicted', 'contradict', 2],
- ['petitioned', 'petition', 2],
- ['undercapitalized', 'undercapitalize', 2],
- ['descended', 'descend', 2],
- ['fractionated', 'fractionate', 2],
- ['bedecked', 'bedeck', 2],
- ['analogized', 'analogize', 2],
- ['encroached', 'encroach', 2],
- ['shoved', 'shove', 2],
- ['exhorted', 'exhort', 2],
- ['reestablished', 'reestablish', 2],
- ['conquered', 'conquer', 2],
- ['hearted', 'heart', 2],
- ['paired', 'pair', 2],
- ['permeated', 'permeate', 2],
- ['captivated', 'captivate', 2],
- ['coined', 'coin', 2],
- ['underbid', 'underbid', 2],
- ['reprinted', 'reprint', 2],
- ['tallied', 'tally', 2],
- ['disabled', 'disable', 2],
- ['clicked', 'click', 2],
- ['indemnified', 'indemnify', 2],
- ['stylized', 'stylize', 2],
- ['stretched', 'stretch', 2],
- ['ascended', 'ascend', 2],
- ['exasperated', 'exasperate', 2],
- ['shattered', 'shatter', 2],
- ['saluted', 'salute', 2],
- ['chauffeured', 'chauffeur', 2],
- ['alerted', 'alert', 2],
- ['captioned', 'caption', 2],
- ['cheated', 'cheat', 2],
- ['narrated', 'narrate', 2],
- ['chartered', 'charter', 2],
- ['radiated', 'radiate', 2],
- ['rained', 'rain', 2],
- ['couched', 'couch', 2],
- ['manipulated', 'manipulate', 2],
- ['tailored', 'tailor', 2],
- ['piqued', 'pique', 2],
- ['idealized', 'idealize', 2],
- ['colonized', 'colonize', 2],
- ['parachuted', 'parachute', 2],
- ['awaited', 'await', 2],
- ['confessed', 'confess', 2],
- ['succumbed', 'succumb', 2],
- ['reassessed', 'reassess', 2],
- ['legitimized', 'legitimize', 2],
- ['entertained', 'entertain', 2],
- ['disorganized', 'disorganize', 2],
- ['intoxicated', 'intoxicate', 2],
- ['assaulted', 'assault', 2],
- ['solemnized', 'solemnize', 2],
- ['empaneled', 'empanel', 2],
- ['unified', 'unify', 2],
- ['impaired', 'impair', 2],
- ['reproached', 'reproach', 2],
- ['ousted', 'oust', 2],
- ['injured', 'injure', 2],
- ['pried', 'pry', 2],
- ['interlinked', 'interlink', 2],
- ['acquitted', 'acquit', 2],
- ['photocopied', 'photocopy', 2],
- ['schooled', 'school', 2],
- ['disordered', 'disorder', 2],
- ['exploited', 'exploit', 2],
- ['cohabited', 'cohabit', 2],
- ['invalidated', 'invalidate', 2],
- ['ingested', 'ingest', 2],
- ['lodged', 'lodge', 2],
- ['awakened', 'awaken', 2],
- ['deflected', 'deflect', 2],
- ['ventilated', 'ventilate', 2],
- ['strolled', 'stroll', 2],
- ['donned', 'don', 2],
- ['joked', 'joke', 2],
- ['bothered', 'bother', 2],
- ['dove', 'dive', 2],
- ['knurled', 'knurl', 2],
- ['abraded', 'abrade', 2],
- ['vaporized', 'vaporize', 2],
- ['looped', 'loop', 2],
- ['warehoused', 'warehouse', 2],
- ['layered', 'layer', 2],
- ['malted', 'malt', 2],
- ['hydrogenated', 'hydrogenate', 2],
- ['autolyzed', 'autolyze', 2],
- ['molded', 'mold', 2],
- ['screwed', 'screw', 2],
- ['disregarded', 'disregard', 2],
- ['varnished', 'varnish', 2],
- ['sweetened', 'sweeten', 2],
- ['voided', 'void', 2],
- ['underpaid', 'underpay', 2],
- ['shucked', 'shuck', 2],
- ['primed', 'prime', 2],
- ['moistened', 'moisten', 2],
- ['metallized', 'metallize', 2],
- ['queued', 'queue', 2],
- ['combed', 'comb', 2],
- ['lacquered', 'lacquer', 2],
- ['enamelled', 'enamel', 2],
- ['agglomerated', 'agglomerate', 2],
- ['spat', 'spit', 2],
- ['arrested', 'arrest', 2],
- ['stapled', 'staple', 2],
- ['waxed', 'wax', 2],
- ['machined', 'machine', 2],
- ['serrated', 'serrate', 2],
- ['disproved', 'disprove', 2],
- ['shuffled', 'shuffle', 2],
- ['dusted', 'dust', 2],
- ['vaccinated', 'vaccinate', 2],
- ['cultured', 'culture', 2],
- ['proofed', 'proof', 2],
- ['intertwined', 'intertwine', 2],
- ['prolonged', 'prolong', 2],
- ['alloted', 'allote', 2],
- ['resubmitted', 'resubmit', 2],
- ['distanced', 'distance', 2],
- ['abridged', 'abridge', 2],
- ['endowed', 'endow', 2],
-
+ ['abandoned', 'abandon'],
+ ['abated', 'abate'],
+ ['abducted', 'abduct'],
+ ['abolished', 'abolish'],
+ ['abraded', 'abrade'],
+ ['abridged', 'abridge'],
+ ['absolved', 'absolve'],
+ ['absorbed', 'absorb'],
+ ['abstained', 'abstain'],
+ ['abused', 'abuse'],
+ ['acceded', 'accede'],
+ ['accelerated', 'accelerate'],
+ ['accepted', 'accept'],
+ ['accessed', 'access'],
+ ['accommodated', 'accommodate'],
+ ['accompanied', 'accompany'],
+ ['accomplished', 'accomplish'],
+ ['accorded', 'accord'],
+ ['accounted', 'account'],
+ ['accredited', 'accredit'],
+ ['accumulated', 'accumulate'],
+ ['accused', 'accuse'],
['ached', 'ache'],
+ ['achieved', 'achieve'],
+ ['acknowledged', 'acknowledge'],
+ ['acquired', 'acquire'],
+ ['acquitted', 'acquit'],
+ ['acted', 'act'],
+ ['activated', 'activate'],
+ ['adapted', 'adapt'],
+ ['added', 'add'],
+ ['addressed', 'address'],
+ ['adduced', 'adduce'],
+ ['adhered', 'adhere'],
+ ['adjoined', 'adjoin'],
+ ['adjourned', 'adjourn'],
+ ['adjudicated', 'adjudicate'],
+ ['adjusted', 'adjust'],
+ ['administered', 'administer'],
+ ['admired', 'admire'],
+ ['admitted', 'admit'],
+ ['adopted', 'adopt'],
+ ['advanced', 'advance'],
+ ['advantaged', 'advantage'],
+ ['advertised', 'advertise'],
+ ['advised', 'advise'],
+ ['advocated', 'advocate'],
+ ['aerated', 'aerate'],
+ ['affected', 'affect'],
+ ['affiliated', 'affiliate'],
+ ['affirmed', 'affirm'],
+ ['affixed', 'affix'],
+ ['afflicted', 'afflict'],
+ ['afforded', 'afford'],
+ ['aged', 'age'],
+ ['agglomerated', 'agglomerate'],
+ ['aggravated', 'aggravate'],
+ ['aggregated', 'aggregate'],
+ ['aggrieved', 'aggrieve'],
+ ['agreed', 'agree'],
+ ['aided', 'aid'],
+ ['aimed', 'aim'],
+ ['aired', 'air'],
+ ['alerted', 'alert'],
+ ['aligned', 'align'],
+ ['alleged', 'allege'],
+ ['allied', 'ally'],
+ ['allocated', 'allocate'],
+ ['alloted', 'allote'],
+ ['allotted', 'allot'],
+ ['allowed', 'allow'],
+ ['alloyed', 'alloy'],
+ ['alluded', 'allude'],
+ ['altered', 'alter'],
+ ['amalgamated', 'amalgamate'],
+ ['amassed', 'amass'],
+ ['amended', 'amend'],
+ ['amounted', 'amount'],
+ ['analogized', 'analogize'],
+ ['analysed', 'analyse'],
+ ['analyzed', 'analyze'],
+ ['anchored', 'anchor'],
+ ['annexed', 'annex'],
+ ['annotated', 'annotate'],
+ ['announced', 'announce'],
+ ['annulled', 'annul'],
+ ['answered', 'answer'],
+ ['anticipated', 'anticipate'],
+ ['apologized', 'apologize'],
+ ['appealed', 'appeal'],
+ ['appeared', 'appear'],
+ ['appeased', 'appease'],
+ ['appended', 'append'],
+ ['applauded', 'applaud'],
+ ['applied', 'apply'],
+ ['appointed', 'appoint'],
+ ['apportioned', 'apportion'],
+ ['appraised', 'appraise'],
+ ['appreciated', 'appreciate'],
+ ['apprised', 'apprise'],
+ ['approached', 'approach'],
+ ['appropriated', 'appropriate'],
+ ['approved', 'approve'],
+ ['approximated', 'approximate'],
+ ['argued', 'argue'],
+ ['arose', 'arise'],
+ ['aroused', 'arouse'],
+ ['arranged', 'arrange'],
+ ['arrested', 'arrest'],
+ ['arrived', 'arrive'],
+ ['articulated', 'articulate'],
+ ['ascended', 'ascend'],
+ ['ascertained', 'ascertain'],
+ ['asked', 'ask'],
+ ['assailed', 'assail'],
+ ['assaulted', 'assault'],
+ ['assembled', 'assemble'],
+ ['assented', 'assent'],
+ ['asserted', 'assert'],
+ ['assessed', 'assess'],
+ ['assigned', 'assign'],
+ ['assimilated', 'assimilate'],
+ ['assisted', 'assist'],
+ ['associated', 'associate'],
+ ['assumed', 'assume'],
+ ['assured', 'assure'],
+ ['ate', 'eat'],
+ ['attached', 'attach'],
+ ['attacked', 'attack'],
+ ['attained', 'attain'],
+ ['attempted', 'attempt'],
+ ['attended', 'attend'],
+ ['attested', 'attest'],
+ ['attracted', 'attract'],
+ ['attributed', 'attribute'],
['attuned', 'attune'],
+ ['auctioned', 'auction'],
+ ['audited', 'audit'],
+ ['augmented', 'augment'],
+ ['authenticated', 'authenticate'],
+ ['authored', 'authore'],
+ ['authorised', 'authorise'],
+ ['authorized', 'authorize'],
+ ['autolyzed', 'autolyze'],
+ ['availed', 'avail'],
+ ['averaged', 'average'],
+ ['avoided', 'avoid'],
+ ['awaited', 'await'],
+ ['awakened', 'awaken'],
+ ['awarded', 'award'],
+ ['awoke', 'awake'],
+ ['backed', 'back'],
+ ['bagged', 'bag'],
+ ['baked', 'bake'],
+ ['balanced', 'balance'],
['baled', 'bale'],
+ ['banded', 'band'],
+ ['banned', 'ban'],
+ ['barred', 'bar'],
+ ['based', 'base'],
+ ['basted', 'baste'],
+ ['battled', 'battle'],
+ ['beat', 'beat'],
+ ['became', 'become'],
+ ['bedecked', 'bedeck'],
+ ['been', 'be'],
+ ['began', 'begin'],
+ ['beguiled', 'beguile'],
+ ['believed', 'believe'],
+ ['belonged', 'belong'],
+ ['benefited', 'benefit'],
['bent', 'bend'],
+ ['bestowed', 'bestow'],
+ ['bet', 'bet'],
+ ['bettered', 'better'],
+ ['biased', 'bias'],
+ ['bid', 'bid'],
+ ['biked', 'bike'],
+ ['billed', 'bill'],
['bit', 'bite'],
+ ['blamed', 'blame'],
+ ['blasted', 'blast'],
+ ['bleached', 'bleach'],
['bled', 'bleed'],
+ ['blended', 'blend'],
+ ['blew', 'blow'],
+ ['blighted', 'blight'],
['blitzed', 'blitz'],
- // ['blown', 'blow'],
+ ['bloated', 'bloat'],
+ ['blocked', 'block'],
+ ['blurred', 'blur'],
+ ['blushed', 'blush'],
+ ['boarded', 'board'],
+ ['boasted', 'boast'],
+ ['bodied', 'body'],
+ ['boiled', 'boil'],
+ ['bonded', 'bond'],
['boned', 'bone'],
+ ['booked', 'book'],
+ ['boomed', 'boom'],
+ ['boosted', 'boost'],
+ ['bore', 'bear'],
+ ['bored', 'bore'],
+ ['borrowed', 'borrow'],
+ ['bossed', 'boss'],
+ ['bothered', 'bother'],
+ ['bought', 'buy'],
+ ['bounced', 'bounce'],
+ ['bound', 'bind'],
+ ['boxed', 'box'],
+ ['boycotted', 'boycott'],
+ ['braised', 'braise'],
+ ['branded', 'brand'],
+ ['braved', 'brave'],
+ ['brazed', 'braze'],
+ ['breached', 'breach'],
+ ['breaded', 'bread'],
+ ['breathed', 'breathe'],
+ ['bred', 'breed'],
+ ['brewed', 'brew'],
+ ['bridged', 'bridge'],
+ ['briefed', 'brief'],
+ ['brightened', 'brighten'],
+ ['broadcast', 'broadcast'],
+ ['broadened', 'broaden'],
+ ['broke', 'break'],
+ ['brokered', 'broker'],
+ ['brought', 'bring'],
+ ['browsed', 'browse'],
+ ['built', 'build'],
+ ['burgeoned', 'burgeon'],
+ ['burned', 'burn'],
['burst', 'burst'],
+ ['buzzed', 'buzz'],
+ ['bypassed', 'bypass'],
+ ['cabled', 'cable'],
+ ['caged', 'cage'],
+ ['calcined', 'calcine'],
+ ['calculated', 'calculate'],
+ ['calendered', 'calender'],
+ ['calibrated', 'calibrate'],
+ ['called', 'call'],
+ ['came', 'come'],
+ ['campaigned', 'campaign'],
+ ['cancelled', 'cancel'],
['caned', 'cane'],
['canned', 'can'],
+ ['canvassed', 'canvass'],
+ ['capitalized', 'capitalize'],
+ ['capped', 'cap'],
+ ['captioned', 'caption'],
+ ['captivated', 'captivate'],
+ ['captured', 'capture'],
+ ['carded', 'card'],
+ ['cared', 'care'],
+ ['carried', 'carry'],
+ ['carved', 'carve'],
+ ['cast', 'cast'],
+ ['categorized', 'categorize'],
+ ['catered', 'cater'],
+ ['caught', 'catch'],
+ ['caused', 'cause'],
+ ['cautioned', 'caution'],
+ ['ceased', 'cease'],
+ ['ceded', 'cede'],
+ ['celebrated', 'celebrate'],
+ ['centered', 'center'],
+ ['centralized', 'centralize'],
+ ['centred', 'centre'],
+ ['certificated', 'certificate'],
+ ['certified', 'certify'],
+ ['chained', 'chain'],
+ ['chaired', 'chair'],
+ ['challenged', 'challenge'],
+ ['championed', 'champion'],
+ ['changed', 'change'],
['channelled', 'channel'],
+ ['characterized', 'characterize'],
+ ['charged', 'charge'],
+ ['charmed', 'charm'],
+ ['chartered', 'charter'],
+ ['chatted', 'chat'],
+ ['chauffeured', 'chauffeur'],
+ ['cheated', 'cheat'],
+ ['checked', 'check'],
+ ['cheered', 'cheer'],
+ ['chilled', 'chill'],
+ ['choked', 'choke'],
+ ['chopped', 'chop'],
+ ['chose', 'choose'],
+ ['christened', 'christen'],
+ ['circled', 'circle'],
+ ['circulated', 'circulate'],
+ ['circumvented', 'circumvent'],
+ ['cited', 'cite'],
+ ['claimed', 'claim'],
+ ['clarified', 'clarify'],
+ ['classified', 'classify'],
+ ['cleaned', 'clean'],
+ ['cleared', 'clear'],
+ ['clicked', 'click'],
+ ['climbed', 'climb'],
+ ['clinched', 'clinch'],
+ ['cloned', 'clon'],
+ ['closed', 'close'],
['clung', 'cling'],
+ ['clustered', 'cluster'],
+ ['coached', 'coach'],
+ ['coated', 'coat'],
+ ['coded', 'code'],
+ ['cohabited', 'cohabit'],
+ ['coiled', 'coil'],
+ ['coincided', 'coincide'],
+ ['coined', 'coin'],
+ ['collaborated', 'collaborate'],
+ ['collapsed', 'collapse'],
+ ['collected', 'collect'],
+ ['collided', 'collide'],
+ ['colonized', 'colonize'],
+ ['colored', 'color'],
+ ['coloured', 'colour'],
+ ['combed', 'comb'],
+ ['combined', 'combine'],
+ ['commanded', 'command'],
+ ['commemorated', 'commemorate'],
+ ['commenced', 'commence'],
+ ['commended', 'commend'],
+ ['commented', 'comment'],
+ ['commercialized', 'commercialize'],
+ ['commissioned', 'commission'],
+ ['committed', 'commit'],
+ ['communicated', 'communicate'],
+ ['compared', 'compare'],
+ ['compelled', 'compel'],
+ ['compensated', 'compensate'],
+ ['competed', 'compete'],
+ ['compiled', 'compile'],
+ ['complained', 'complain'],
+ ['complemented', 'complement'],
+ ['completed', 'complete'],
+ ['complied', 'comply'],
+ ['complimented', 'compliment'],
+ ['composed', 'compose'],
+ ['composted', 'compost'],
+ ['compounded', 'compound'],
+ ['compressed', 'compress'],
+ ['comprised', 'comprise'],
+ ['compromised', 'compromise'],
+ ['computed', 'compute'],
+ ['computerized', 'computerize'],
+ ['concealed', 'conceal'],
+ ['conceded', 'concede'],
+ ['conceived', 'conceive'],
+ ['concentrated', 'concentrate'],
+ ['conceptualized', 'conceptualize'],
+ ['concerned', 'concern'],
+ ['concluded', 'conclude'],
+ ['concurred', 'concur'],
+ ['condemned', 'condemn'],
+ ['conducted', 'conduct'],
+ ['conferred', 'confer'],
+ ['confessed', 'confess'],
+ ['confided', 'confide'],
+ ['configured', 'configure'],
+ ['confined', 'confine'],
+ ['confirmed', 'confirm'],
+ ['confiscated', 'confiscate'],
+ ['confounded', 'confound'],
+ ['confronted', 'confront'],
+ ['congratulated', 'congratulate'],
+ ['conjectured', 'conjecture'],
+ ['conjugated', 'conjugate'],
+ ['conjured', 'conjure'],
+ ['connected', 'connect'],
+ ['conquered', 'conquer'],
+ ['consented', 'consent'],
+ ['conserved', 'conserve'],
+ ['considered', 'consider'],
+ ['consigned', 'consign'],
+ ['consisted', 'consist'],
+ ['consolidated', 'consolidate'],
+ ['constituted', 'constitute'],
+ ['constructed', 'construct'],
+ ['consulted', 'consult'],
+ ['consumed', 'consume'],
+ ['contacted', 'contact'],
+ ['contained', 'contain'],
+ ['contemplated', 'contemplate'],
+ ['contended', 'contend'],
+ ['contested', 'contest'],
+ ['continued', 'continue'],
+ ['contracted', 'contract'],
+ ['contradicted', 'contradict'],
+ ['contravened', 'contravene'],
+ ['contributed', 'contribute'],
+ ['controlled', 'control'],
+ ['convened', 'convene'],
+ ['converged', 'converge'],
+ ['converted', 'convert'],
+ ['conveyed', 'convey'],
+ ['convicted', 'convict'],
+ ['convinced', 'convince'],
+ ['convoluted', 'convolute'],
+ ['cooked', 'cook'],
+ ['cooled', 'cool'],
+ ['cooperated', 'cooperate'],
+ ['coordinated', 'coordinate'],
+ ['copied', 'copy'],
+ ['coproduced', 'coproduce'],
+ ['copyrighted', 'copyright'],
+ ['cored', 'core'],
+ ['corrected', 'correct'],
+ ['correlated', 'correlate'],
+ ['corresponded', 'correspond'],
+ ['corroborated', 'corroborate'],
+ ['corrugated', 'corrugate'],
+ ['cosponsored', 'cosponsor'],
+ ['cost', 'cost'],
+ ['couched', 'couch'],
+ ['counselled', 'counsel'],
+ ['counted', 'count'],
+ ['countered', 'counter'],
+ ['countersigned', 'countersign'],
+ ['coupled', 'couple'],
+ ['covered', 'cover'],
+ ['cracked', 'crack'],
+ ['crafted', 'craft'],
+ ['crashed', 'crash'],
+ ['created', 'create'],
+ ['credited', 'credit'],
+ ['crept', 'creep'],
+ ['crimped', 'crimp'],
+ ['criticized', 'criticize'],
+ ['cropped', 'crop'],
+ ['crossed', 'cross'],
+ ['crowded', 'crowd'],
+ ['crystallized', 'crystallize'],
+ ['cubed', 'cube'],
+ ['culminated', 'culminate'],
+ ['cultivated', 'cultivate'],
+ ['cultured', 'culture'],
+ ['curated', 'curate'],
+ ['cured', 'cure'],
+ ['curled', 'curl'],
+ ['curtailed', 'curtail'],
+ ['curved', 'curve'],
+ ['customized', 'customize'],
+ ['cut', 'cut'],
+ ['damaged', 'damage'],
+ ['dampened', 'dampen'],
+ ['danced', 'dance'],
+ ['dared', 'dare'],
+ ['dated', 'date'],
+ ['dawned', 'dawn'],
+ ['dealt', 'deal'],
+ ['debated', 'debate'],
+ ['debited', 'debit'],
+ ['debuted', 'debut'],
+ ['decaffeinated', 'decaffeinate'],
+ ['deceased', 'decease'],
+ ['decelerated', 'decelerate'],
+ ['decentralized', 'decentralize'],
+ ['decided', 'decide'],
+ ['declared', 'declare'],
+ ['declined', 'decline'],
+ ['decomposed', 'decompose'],
+ ['decorated', 'decorate'],
+ ['decreased', 'decrease'],
+ ['decried', 'decry'],
+ ['dedicated', 'dedicate'],
+ ['deducted', 'deduct'],
+ ['deemed', 'deem'],
+ ['deepened', 'deepen'],
+ ['defaulted', 'default'],
+ ['defeated', 'defeat'],
+ ['defended', 'defend'],
+ ['deferred', 'defer'],
+ ['defined', 'define'],
+ ['deflated', 'deflate'],
+ ['deflected', 'deflect'],
+ ['degraded', 'degrade'],
+ ['dehydrated', 'dehydrate'],
+ ['delayed', 'delay'],
+ ['delegated', 'delegate'],
+ ['deliberated', 'deliberate'],
+ ['delighted', 'delight'],
+ ['delineated', 'delineate'],
+ ['delivered', 'deliver'],
+ ['demanded', 'demand'],
+ ['demonstrated', 'demonstrate'],
+ ['denatured', 'denature'],
+ ['denied', 'deny'],
+ ['denoted', 'denote'],
+ ['denounced', 'denounce'],
+ ['departed', 'depart'],
+ ['depended', 'depend'],
+ ['depicted', 'depict'],
+ ['depleted', 'deplete'],
+ ['deplored', 'deplore'],
+ ['deployed', 'deploy'],
+ ['deported', 'deport'],
+ ['deposited', 'deposit'],
+ ['depreciated', 'depreciate'],
+ ['depressed', 'depress'],
+ ['deprived', 'deprive'],
+ ['deregulated', 'deregulate'],
+ ['derived', 'derive'],
+ ['descended', 'descend'],
+ ['described', 'describe'],
+ ['deserved', 'deserve'],
+ ['desiccated', 'desiccate'],
+ ['designated', 'designate'],
+ ['designed', 'design'],
+ ['desired', 'desire'],
+ ['destined', 'destine'],
+ ['destroyed', 'destroy'],
+ ['detailed', 'detail'],
+ ['detained', 'detain'],
+ ['detected', 'detect'],
+ ['determined', 'determine'],
+ ['deterred', 'deter'],
+ ['detracted', 'detract'],
+ ['devalued', 'devalue'],
+ ['devastated', 'devastate'],
+ ['developed', 'develop'],
+ ['devised', 'devise'],
+ ['devolved', 'devolve'],
+ ['devoted', 'devote'],
+ ['diagnosed', 'diagnose'],
+ ['diced', 'dice'],
+ ['dictated', 'dictate'],
+ ['did', 'do'],
+ ['died', 'die'],
+ ['differed', 'differ'],
+ ['differentiated', 'differentiate'],
+ ['digitized', 'digitize'],
+ ['dined', 'dine'],
+ ['dipped', 'dip'],
+ ['directed', 'direct'],
+ ['disabled', 'disable'],
+ ['disadvantaged', 'disadvantage'],
+ ['disagreed', 'disagree'],
+ ['disallowed', 'disallow'],
+ ['disappeared', 'disappear'],
+ ['disbursed', 'disburse'],
+ ['discharged', 'discharge'],
+ ['disclosed', 'disclose'],
+ ['discoloured', 'discolour'],
+ ['discontinued', 'discontinue'],
+ ['discounted', 'discount'],
+ ['discouraged', 'discourage'],
+ ['discovered', 'discover'],
+ ['discriminated', 'discriminate'],
+ ['discussed', 'discuss'],
+ ['disembarked', 'disembark'],
+ ['disenfranchised', 'disenfranchise'],
+ ['disfavoured', 'disfavour'],
+ ['disinfected', 'disinfect'],
+ ['disliked', 'dislike'],
+ ['dismantled', 'dismantle'],
+ ['dismissed', 'dismiss'],
+ ['disordered', 'disorder'],
+ ['disorganized', 'disorganize'],
['dispelled', 'dispel'],
+ ['dispensed', 'dispense'],
+ ['dispersed', 'disperse'],
+ ['displaced', 'displace'],
+ ['displayed', 'display'],
+ ['disposed', 'dispose'],
+ ['disproved', 'disprove'],
+ ['disputed', 'dispute'],
+ ['disqualified', 'disqualify'],
+ ['disregarded', 'disregard'],
+ ['disrupted', 'disrupt'],
+ ['dissatisfied', 'dissatisfy'],
+ ['dissected', 'dissect'],
+ ['disseminated', 'disseminate'],
+ ['dissolved', 'dissolve'],
+ ['dissuaded', 'dissuade'],
+ ['distanced', 'distance'],
+ ['distinguished', 'distinguish'],
+ ['distorted', 'distort'],
+ ['distributed', 'distribute'],
+ ['disturbed', 'disturb'],
+ ['diversified', 'diversify'],
+ ['diverted', 'divert'],
+ ['divested', 'divest'],
+ ['divided', 'divide'],
+ ['documented', 'document'],
+ ['domiciled', 'domicile'],
+ ['dominated', 'dominate'],
+ ['donated', 'donate'],
+ ['donned', 'don'],
+ ['doubled', 'double'],
+ ['doubted', 'doubt'],
+ ['dove', 'dive'],
+ ['downed', 'down'],
+ ['downgraded', 'downgrade'],
+ ['downsized', 'downsize'],
+ ['drafted', 'draft'],
+ ['dragged', 'drag'],
+ ['drank', 'drink'],
+ ['dreamed', 'dream'],
+ ['dressed', 'dress'],
+ ['drew', 'draw'],
+ ['dried', 'dry'],
+ ['drifted', 'drift'],
+ ['drilled', 'drill'],
+ ['dropped', 'drop'],
+ ['drove', 'drive'],
+ ['drowned', 'drown'],
+ ['dubbed', 'dub'],
+ ['dug', 'dig'],
+ ['dumped', 'dump'],
+ ['duplicated', 'duplicate'],
+ ['dusted', 'dust'],
+ ['dwindled', 'dwindle'],
+ ['dyed', 'dye'],
+ ['earmarked', 'earmark'],
+ ['earned', 'earn'],
+ ['eased', 'ease'],
+ ['echoed', 'echo'],
+ ['edged', 'edge'],
+ ['edited', 'edit'],
+ ['educated', 'educate'],
+ ['effected', 'effect'],
['egged', 'egg'],
+ ['elaborated', 'elaborate'],
+ ['elected', 'elect'],
+ ['elevated', 'elevate'],
+ ['elicited', 'elicit'],
+ ['eliminated', 'eliminate'],
+ ['eluded', 'elude'],
+ ['embarked', 'embark'],
+ ['embedded', 'embed'],
+ ['embodied', 'embody'],
+ ['embossed', 'emboss'],
+ ['embraced', 'embrace'],
+ ['emerged', 'emerge'],
+ ['emigrated', 'emigrate'],
+ ['emitted', 'emit'],
+ ['empaneled', 'empanel'],
+ ['emphasised', 'emphasise'],
+ ['emphasized', 'emphasize'],
+ ['employed', 'employ'],
+ ['empowered', 'empower'],
+ ['enabled', 'enable'],
+ ['enacted', 'enact'],
+ ['enamelled', 'enamel'],
+ ['enclosed', 'enclose'],
+ ['encoded', 'encode'],
+ ['encompassed', 'encompass'],
+ ['encountered', 'encounter'],
+ ['encouraged', 'encourage'],
+ ['encroached', 'encroach'],
+ ['encrypted', 'encrypt'],
+ ['endangered', 'endanger'],
+ ['endeared', 'endear'],
+ ['endeavored', 'endeavor'],
+ ['endeavoured', 'endeavour'],
+ ['ended', 'end'],
+ ['endorsed', 'endorse'],
+ ['endowed', 'endow'],
+ ['endured', 'endure'],
+ ['enforced', 'enforce'],
+ ['engaged', 'engage'],
+ ['engendered', 'engender'],
+ ['enhanced', 'enhance'],
+ ['enjoyed', 'enjoy'],
+ ['enlarged', 'enlarge'],
+ ['enlisted', 'enlist'],
+ ['enriched', 'enrich'],
+ ['enrolled', 'enroll'],
+ ['enshrined', 'enshrine'],
+ ['ensued', 'ensue'],
+ ['ensured', 'ensure'],
+ ['entailed', 'entail'],
+ ['entered', 'enter'],
+ ['entertained', 'entertain'],
+ ['enthralled', 'enthrall'],
+ ['enticed', 'entice'],
+ ['entitled', 'entitle'],
+ ['entrenched', 'entrench'],
+ ['entrusted', 'entrust'],
['entwined', 'entwine'],
+ ['enumerated', 'enumerate'],
+ ['enunciated', 'enunciate'],
+ ['enveloped', 'envelop'],
+ ['envisaged', 'envisage'],
+ ['envisioned', 'envision'],
+ ['equalized', 'equalize'],
+ ['equalled', 'equal'],
+ ['equated', 'equate'],
+ ['equipped', 'equip'],
+ ['erected', 'erect'],
+ ['eroded', 'erode'],
+ ['erred', 'err'],
+ ['erupted', 'erupt'],
+ ['escalated', 'escalate'],
+ ['escaped', 'escape'],
+ ['escorted', 'escort'],
+ ['espoused', 'espouse'],
+ ['established', 'establish'],
+ ['estimated', 'estimate'],
+ ['evaluated', 'evaluate'],
+ ['evidenced', 'evidence'],
+ ['eviscerated', 'eviscerate'],
+ ['evoked', 'evoke'],
+ ['evolved', 'evolve'],
+ ['exacerbated', 'exacerbate'],
+ ['examined', 'examine'],
+ ['exasperated', 'exasperate'],
+ ['excavated', 'excavate'],
+ ['exceeded', 'exceed'],
+ ['excepted', 'except'],
+ ['exchanged', 'exchange'],
['excited', 'excite'],
+ ['excluded', 'exclude'],
+ ['excreted', 'excrete'],
+ ['executed', 'execute'],
+ ['exempted', 'exempt'],
+ ['exercised', 'exercise'],
+ ['exerted', 'exert'],
+ ['exhausted', 'exhaust'],
+ ['exhibited', 'exhibit'],
+ ['exhorted', 'exhort'],
+ ['exiled', 'exile'],
+ ['existed', 'exist'],
+ ['exited', 'exit'],
+ ['expanded', 'expand'],
+ ['expected', 'expect'],
+ ['expedited', 'expedite'],
['expelled', 'expel'],
+ ['expended', 'expend'],
+ ['experienced', 'experience'],
+ ['experimented', 'experiment'],
+ ['expired', 'expire'],
+ ['explained', 'explain'],
+ ['exploded', 'explode'],
+ ['exploited', 'exploit'],
+ ['explored', 'explore'],
+ ['exported', 'export'],
+ ['exposed', 'expose'],
+ ['expounded', 'expound'],
+ ['expressed', 'express'],
+ ['expunged', 'expunge'],
+ ['extended', 'extend'],
['extolled', 'extol'],
+ ['extracted', 'extract'],
+ ['extruded', 'extrude'],
+ ['eyed', 'eye'],
+ ['faced', 'face'],
+ ['faceted', 'facet'],
+ ['facilitated', 'facilitate'],
+ ['factored', 'factor'],
+ ['failed', 'fail'],
+ ['faked', 'fake'],
+ ['familiarized', 'familiarize'],
+ ['fared', 'fare'],
+ ['farmed', 'farm'],
+ ['fastened', 'fasten'],
+ ['favored', 'favor'],
+ ['favoured', 'favour'],
+ ['faxed', 'fax'],
+ ['feared', 'fear'],
+ ['featured', 'feature'],
+ ['fed', 'feed'],
+ ['federated', 'federate'],
+ ['feed', 'fee'],
+ ['fell', 'fall'],
+ ['felt', 'feel'],
+ ['fielded', 'field'],
+ ['figured', 'figure'],
+ ['filed', 'file'],
+ ['filled', 'fill'],
+ ['finalized', 'finalize'],
+ ['financed', 'finance'],
+ ['fined', 'fine'],
+ ['finished', 'finish'],
+ ['fired', 'fire'],
+ ['fished', 'fish'],
+ ['fit', 'fit'],
+ ['fixed', 'fix'],
+ ['flagged', 'flag'],
+ ['flaked', 'flake'],
+ ['flanged', 'flange'],
+ ['flattened', 'flatten'],
+ ['flavored', 'flavor'],
+ ['flavoured', 'flavour'],
+ ['fled', 'flee'],
+ ['flew', 'fly'],
+ ['floated', 'float'],
+ ['flooded', 'flood'],
+ ['flourished', 'flourish'],
+ ['flowed', 'flow'],
+ ['fluctuated', 'fluctuate'],
['flung', 'fling'],
+ ['focused', 'focus'],
+ ['folded', 'fold'],
+ ['followed', 'follow'],
+ ['footed', 'foot'],
+ ['forbade', 'forbid'],
+ ['forbore', 'forbear'],
+ ['forced', 'force'],
+ ['forecasted', 'forecast'],
+ ['foresaw', 'foresee'],
+ ['forfeited', 'forfeit'],
+ ['forgave', 'forgive'],
+ ['forged', 'forge'],
+ ['forgot', 'forget'],
+ ['formalised', 'formalise'],
+ ['formalized', 'formalize'],
+ ['formatted', 'format'],
+ ['formed', 'form'],
+ ['formulated', 'formulate'],
+ ['forsaken', 'forsake'],
+ ['forwarded', 'forward'],
+ ['fostered', 'foster'],
+ ['fought', 'fight'],
['fouled', 'foul'],
+ ['found', 'find'],
+ ['founded', 'found'],
+ ['fractionated', 'fractionate'],
+ ['framed', 'frame'],
+ ['freaked', 'freak'],
+ ['freed', 'free'],
+ ['froze', 'freeze'],
+ ['frustrated', 'frustrate'],
+ ['fuelled', 'fuel'],
+ ['fulfilled', 'fulfil'],
+ ['fulfilled', 'fulfill'],
+ ['functioned', 'function'],
+ ['funded', 'fund'],
+ ['funnelled', 'funnel'],
+ ['furnished', 'furnish'],
+ ['furthered', 'further'],
['fuzzed', 'fuzz'],
+ ['gained', 'gain'],
+ ['galvanized', 'galvanize'],
+ ['gamed', 'game'],
+ ['garnered', 'garner'],
+ ['gassed', 'gas'],
+ ['gathered', 'gather'],
+ ['gave', 'give'],
+ ['gelled', 'gell'],
+ ['generalized', 'generalize'],
+ ['generated', 'generate'],
+ ['gifted', 'gift'],
+ ['glazed', 'glaze'],
+ ['gleaned', 'glean'],
+ ['glossed', 'gloss'],
+ ['got', 'get'],
+ ['governed', 'govern'],
+ ['grabbed', 'grab'],
+ ['graded', 'grade'],
+ ['graduated', 'graduate'],
+ ['granted', 'grant'],
+ ['granulated', 'granulate'],
+ ['grappled', 'grapple'],
+ ['grassed', 'grass'],
+ ['grated', 'grate'],
+ ['gravitated', 'gravitate'],
+ ['grazed', 'graze'],
+ ['greeted', 'greet'],
+ ['grew', 'grow'],
+ ['gripped', 'grip'],
+ ['grooved', 'groove'],
+ ['grossed', 'gross'],
+ ['ground', 'grind'],
+ ['grounded', 'ground'],
+ ['grouped', 'group'],
+ ['guaranteed', 'guarantee'],
+ ['guessed', 'guess'],
+ ['guided', 'guide'],
+ ['hacked', 'hack'],
+ ['had', 'have'],
+ ['hailed', 'hail'],
+ ['halogenated', 'halogenate'],
+ ['halted', 'halt'],
+ ['hampered', 'hamper'],
+ ['handed', 'hand'],
+ ['handled', 'handle'],
+ ['happened', 'happen'],
+ ['harmed', 'harm'],
+ ['harmonized', 'harmonize'],
+ ['harnessed', 'harness'],
+ ['harvested', 'harvest'],
+ ['hatched', 'hatch'],
+ ['hauled', 'haul'],
+ ['headed', 'head'],
+ ['heard', 'hear'],
+ ['hearted', 'heart'],
+ ['hedged', 'hedge'],
+ ['heightened', 'heighten'],
+ ['held', 'hold'],
+ ['helped', 'help'],
+ ['heralded', 'herald'],
+ ['hid', 'hide'],
+ ['highlighted', 'highlight'],
+ ['hiked', 'hike'],
+ ['hindered', 'hinder'],
+ ['hired', 'hire'],
+ ['hit', 'hit'],
+ ['homogenized', 'homogenize'],
+ ['honoured', 'honour'],
+ ['hooked', 'hook'],
+ ['hoped', 'hope'],
+ ['hosted', 'host'],
+ ['housed', 'house'],
+ ['hovered', 'hover'],
+ ['huddled', 'huddle'],
['hung', 'hang'],
+ ['hurt', 'hurt'],
+ ['hydrogenated', 'hydrogenate'],
+ ['hypothesized', 'hypothesize'],
+ ['idealized', 'idealize'],
+ ['identified', 'identify'],
+ ['idled', 'idle'],
+ ['ignited', 'ignite'],
+ ['ignored', 'ignore'],
+ ['illuminated', 'illuminate'],
+ ['illustrated', 'illustrate'],
+ ['imagined', 'imagine'],
+ ['immersed', 'immerse'],
+ ['immigrated', 'immigrate'],
+ ['immunized', 'immunize'],
+ ['impacted', 'impact'],
+ ['impaired', 'impair'],
+ ['impaled', 'impale'],
+ ['imparted', 'impart'],
+ ['impeded', 'impede'],
+ ['implanted', 'implant'],
+ ['implemented', 'implement'],
+ ['implied', 'imply'],
+ ['imported', 'import'],
+ ['imposed', 'impose'],
+ ['impregnated', 'impregnate'],
+ ['impressed', 'impress'],
+ ['imprinted', 'imprint'],
+ ['improved', 'improve'],
+ ['improvised', 'improvise'],
+ ['inactivated', 'inactivate'],
+ ['inaugurated', 'inaugurate'],
+ ['incarcerated', 'incarcerate'],
+ ['incited', 'incite'],
['inclined', 'incline'],
+ ['included', 'include'],
+ ['incorporated', 'incorporate'],
+ ['increased', 'increase'],
+ ['incurred', 'incur'],
+ ['indemnified', 'indemnify'],
+ ['indented', 'indent'],
+ ['indexed', 'index'],
+ ['indicated', 'indicate'],
+ ['indicted', 'indict'],
+ ['individualized', 'individualize'],
+ ['induced', 'induce'],
+ ['industrialized', 'industrialize'],
+ ['infected', 'infect'],
+ ['inferred', 'infer'],
+ ['infested', 'infest'],
+ ['influenced', 'influence'],
+ ['informed', 'inform'],
+ ['infringed', 'infringe'],
+ ['infused', 'infuse'],
+ ['ingested', 'ingest'],
+ ['inhabited', 'inhabit'],
+ ['inhaled', 'inhale'],
+ ['inherited', 'inherit'],
+ ['inhibited', 'inhibit'],
+ ['initialled', 'initial'],
+ ['initiated', 'initiate'],
+ ['injected', 'inject'],
+ ['injured', 'injure'],
+ ['inked', 'ink'],
+ ['innovated', 'innovate'],
+ ['inquired', 'inquire'],
+ ['inserted', 'insert'],
+ ['insisted', 'insist'],
+ ['inspected', 'inspect'],
+ ['inspired', 'inspire'],
+ ['installed', 'install'],
+ ['instigated', 'instigate'],
+ ['instilled', 'instill'],
+ ['instituted', 'institute'],
+ ['institutionalized', 'institutionalize'],
+ ['instructed', 'instruct'],
+ ['insulated', 'insulate'],
+ ['insured', 'insure'],
+ ['integrated', 'integrate'],
+ ['intended', 'intend'],
+ ['intensified', 'intensify'],
+ ['interacted', 'interact'],
+ ['intercepted', 'intercept'],
+ ['interested', 'interest'],
+ ['interfered', 'interfere'],
+ ['interlinked', 'interlink'],
+ ['internalized', 'internalize'],
+ ['internationalized', 'internationalize'],
+ ['interned', 'intern'],
+ ['interpreted', 'interpret'],
+ ['interrelated', 'interrelate'],
+ ['intersected', 'intersect'],
+ ['intertwined', 'intertwine'],
+ ['intervened', 'intervene'],
+ ['interviewed', 'interview'],
+ ['intoxicated', 'intoxicate'],
+ ['introduced', 'introduce'],
+ ['invaded', 'invade'],
+ ['invalidated', 'invalidate'],
+ ['invented', 'invent'],
+ ['inventoried', 'inventory'],
+ ['invested', 'invest'],
+ ['investigated', 'investigate'],
+ ['invited', 'invite'],
+ ['invoiced', 'invoice'],
+ ['invoked', 'invoke'],
+ ['involved', 'involve'],
+ ['irrigated', 'irrigate'],
+ ['isolated', 'isolate'],
+ ['issued', 'issue'],
+ ['italicized', 'italicize'],
+ ['itemized', 'itemize'],
+ ['jarred', 'jar'],
+ ['jeopardized', 'jeopardize'],
+ ['jogged', 'jog'],
+ ['joined', 'join'],
+ ['joked', 'joke'],
+ ['journeyed', 'journey'],
+ ['judged', 'judge'],
+ ['jumped', 'jump'],
+ ['justified', 'justify'],
+ ['kept', 'keep'],
+ ['kicked', 'kick'],
+ ['killed', 'kill'],
+ ['kindled', 'kindle'],
['kissed', 'kiss'],
['knelt', 'kneel'],
+ ['knew', 'know'],
+ ['knitted', 'knit'],
+ ['knocked', 'knock'],
+ ['knurled', 'knurl'],
+ ['labeled', 'label'],
+ ['lacked', 'lack'],
+ ['lacquered', 'lacquer'],
+ ['lagged', 'lag'],
+ ['laid', 'lay'],
+ ['lambasted', 'lambaste'],
+ ['lamented', 'lament'],
+ ['laminated', 'laminate'],
+ ['landed', 'land'],
+ ['lapsed', 'lapse'],
+ ['lasted', 'last'],
+ ['lauded', 'laud'],
+ ['laughed', 'laugh'],
+ ['launched', 'launch'],
+ ['layered', 'layer'],
+ ['leached', 'leach'],
+ ['leaked', 'leak'],
['leapt', 'leap'],
+ ['learned', 'learn'],
+ ['leased', 'lease'],
+ ['lectured', 'lecture'],
+ ['led', 'lead'],
+ ['left', 'leave'],
+ ['legislated', 'legislate'],
+ ['legitimized', 'legitimize'],
+ ['lent', 'lend'],
+ ['lessened', 'lessen'],
+ ['let', 'let'],
+ ['leveled', 'level'],
+ ['levelled', 'level'],
+ ['levied', 'levy'],
+ ['liaised', 'liaise'],
+ ['liberalized', 'liberalize'],
+ ['licenced', 'licence'],
+ ['licensed', 'license'],
+ ['lied', 'lie'],
+ ['lifted', 'lift'],
+ ['liked', 'like'],
+ ['likened', 'liken'],
+ ['limited', 'limit'],
+ ['lined', 'line'],
+ ['linked', 'link'],
+ ['listed', 'list'],
+ ['listened', 'listen'],
+ ['lit', 'light'],
+ ['lived', 'live'],
+ ['loaded', 'load'],
+ ['loaned', 'loan'],
+ ['lobbied', 'lobby'],
+ ['localized', 'localize'],
+ ['located', 'locate'],
+ ['locked', 'lock'],
+ ['lodged', 'lodge'],
+ ['logged', 'log'],
+ ['looked', 'look'],
+ ['looped', 'loop'],
+ ['lost', 'lose'],
+ ['loved', 'love'],
+ ['lowered', 'lower'],
+ ['lubricated', 'lubricate'],
+ ['machined', 'machine'],
+ ['made', 'make'],
+ ['magnified', 'magnify'],
+ ['mailed', 'mail'],
+ ['maintained', 'maintain'],
+ ['malted', 'malt'],
+ ['managed', 'manage'],
+ ['mandated', 'mandate'],
+ ['manifested', 'manifest'],
+ ['manipulated', 'manipulate'],
+ ['manned', 'man'],
+ ['manoeuvred', 'manoeuvre'],
+ ['manufactured', 'manufacture'],
+ ['mapped', 'map'],
+ ['marginalized', 'marginalize'],
+ ['marked', 'mark'],
+ ['marketed', 'market'],
+ ['married', 'marry'],
+ ['masked', 'mask'],
+ ['mastered', 'master'],
+ ['matched', 'match'],
+ ['materialized', 'materialize'],
+ ['mattered', 'matter'],
+ ['matured', 'mature'],
+ ['maximized', 'maximize'],
+ ['meant', 'mean'],
+ ['measured', 'measure'],
+ ['mediated', 'mediate'],
+ ['melted', 'melt'],
+ ['mentioned', 'mention'],
+ ['mercerized', 'mercerize'],
+ ['merged', 'merge'],
+ ['messed', 'mess'],
+ ['met', 'meet'],
+ ['metallized', 'metallize'],
+ ['microfilmed', 'microfilm'],
+ ['migrated', 'migrate'],
['mimicked', 'mimic'],
+ ['minced', 'mince'],
+ ['minded', 'mind'],
+ ['mined', 'mine'],
+ ['minimized', 'minimize'],
+ ['mirrored', 'mirror'],
+ ['misinterpreted', 'misinterpret'],
+ ['misrepresented', 'misrepresent'],
+ ['missed', 'miss'],
+ ['mistook', 'mistake'],
+ ['misused', 'misuse'],
+ ['mitigated', 'mitigate'],
+ ['mixed', 'mix'],
+ ['mobilized', 'mobilize'],
+ ['modeled', 'model'],
+ ['moderated', 'moderate'],
+ ['modernized', 'modernize'],
+ ['modified', 'modify'],
+ ['modulated', 'modulate'],
+ ['moistened', 'moisten'],
+ ['molded', 'mold'],
+ ['monitored', 'monitor'],
+ ['motivated', 'motivate'],
+ ['motorized', 'motorize'],
+ ['moulded', 'mould'],
+ ['mounted', 'mount'],
+ ['moved', 'move'],
+ ['mowed', 'mow'],
+ ['multiplied', 'multiply'],
+ ['named', 'name'],
+ ['napped', 'nap'],
+ ['narrated', 'narrate'],
+ ['narrowed', 'narrow'],
+ ['naturalized', 'naturalize'],
+ ['navigated', 'navigate'],
+ ['neared', 'near'],
+ ['necessitated', 'necessitate'],
+ ['needed', 'need'],
+ ['negotiated', 'negotiate'],
+ ['netted', 'net'],
+ ['networked', 'network'],
+ ['nicknamed', 'nickname'],
+ ['nominated', 'nominate'],
+ ['normalized', 'normalize'],
+ ['nosed', 'nose'],
+ ['notarized', 'notarize'],
+ ['notched', 'notch'],
+ ['noted', 'note'],
+ ['noticed', 'notice'],
+ ['notified', 'notify'],
+ ['nourished', 'nourish'],
+ ['numbered', 'number'],
+ ['nurtured', 'nurture'],
+ ['objected', 'object'],
+ ['obligated', 'obligate'],
+ ['obscured', 'obscure'],
+ ['observed', 'observe'],
+ ['obtained', 'obtain'],
+ ['occupied', 'occupy'],
+ ['occured', 'occure'],
+ ['occurred', 'occur'],
+ ['offended', 'offend'],
+ ['offered', 'offer'],
+ ['offset', 'offset'],
+ ['omitted', 'omit'],
+ ['oozed', 'ooze'],
+ ['opened', 'open'],
+ ['operated', 'operate'],
+ ['opined', 'opine'],
+ ['opposed', 'oppose'],
+ ['oppressed', 'oppress'],
+ ['opted', 'opt'],
+ ['optimized', 'optimize'],
+ ['ordered', 'order'],
+ ['organised', 'organise'],
+ ['organized', 'organize'],
+ ['orientated', 'orientate'],
+ ['oriented', 'orient'],
+ ['originated', 'originate'],
+ ['ousted', 'oust'],
+ ['outbid', 'outbid'],
+ ['outgrew', 'outgrow'],
+ ['outlawed', 'outlaw'],
+ ['outlined', 'outline'],
+ ['outnumbered', 'outnumber'],
+ ['outpaced', 'outpace'],
+ ['outperformed', 'outperform'],
+ ['outstripped', 'outstrip'],
+ ['outweighed', 'outweigh'],
+ ['overcame', 'overcome'],
+ ['overhauled', 'overhaul'],
+ ['overlapped', 'overlap'],
+ ['overlooked', 'overlook'],
+ ['overpaid', 'overpay'],
+ ['overruled', 'overrule'],
+ ['oversaw', 'oversee'],
+ ['overstated', 'overstate'],
['overthrew', 'overthrow'],
+ ['overtook', 'overtake'],
+ ['overturned', 'overturn'],
+ ['overvalued', 'overvalue'],
+ ['overwhelmed', 'overwhelm'],
+ ['owed', 'owe'],
+ ['owned', 'own'],
+ ['oxygenated', 'oxygenate'],
+ ['packaged', 'package'],
+ ['packed', 'pack'],
+ ['padded', 'pad'],
+ ['paid', 'pay'],
+ ['painted', 'paint'],
+ ['paired', 'pair'],
+ ['panicked', 'panic'],
['panned', 'pan'],
+ ['parachuted', 'parachute'],
+ ['paralleled', 'parallel'],
+ ['paraphrased', 'paraphrase'],
+ ['pardoned', 'pardon'],
+ ['parked', 'park'],
+ ['participated', 'participate'],
+ ['partnered', 'partner'],
+ ['partook', 'partake'],
+ ['passed', 'pass'],
+ ['patented', 'patent'],
['patrolled', 'patrol'],
+ ['paused', 'pause'],
+ ['paved', 'pave'],
+ ['peaked', 'peak'],
+ ['pelleted', 'pellet'],
+ ['penetrated', 'penetrate'],
+ ['pent', 'pen'],
+ ['peppered', 'pepper'],
+ ['perceived', 'perceive'],
+ ['perforated', 'perforate'],
+ ['performed', 'perform'],
+ ['perfumed', 'perfume'],
+ ['perished', 'perish'],
+ ['permeated', 'permeate'],
+ ['permitted', 'permit'],
+ ['persevered', 'persevere'],
+ ['persisted', 'persist'],
+ ['personified', 'personify'],
+ ['persuaded', 'persuade'],
+ ['pertained', 'pertain'],
+ ['petitioned', 'petition'],
+ ['phoned', 'phone'],
+ ['photocopied', 'photocopy'],
+ ['picked', 'pick'],
+ ['pied', 'pie'],
+ ['piled', 'pile'],
+ ['piloted', 'pilot'],
+ ['pioneered', 'pioneer'],
+ ['piqued', 'pique'],
+ ['pitched', 'pitch'],
+ ['pitted', 'pit'],
+ ['placed', 'place'],
+ ['plagued', 'plague'],
+ ['planned', 'plan'],
+ ['planted', 'plant'],
+ ['plated', 'plate'],
+ ['played', 'play'],
+ ['pleaded', 'plead'],
+ ['pleased', 'please'],
+ ['pleated', 'pleat'],
+ ['pledged', 'pledge'],
+ ['plodded', 'plod'],
+ ['plotted', 'plot'],
+ ['plugged', 'plug'],
+ ['plummeted', 'plummet'],
+ ['plunged', 'plunge'],
+ ['pointed', 'point'],
+ ['poked', 'poke'],
+ ['polished', 'polish'],
+ ['polled', 'poll'],
+ ['polymerized', 'polymerize'],
+ ['pondered', 'ponder'],
+ ['pooled', 'pool'],
+ ['popped', 'pop'],
+ ['popularized', 'popularize'],
+ ['pored', 'pore'],
+ ['portrayed', 'portray'],
+ ['posed', 'pose'],
+ ['posited', 'posit'],
+ ['positioned', 'position'],
+ ['possessed', 'possess'],
+ ['posted', 'post'],
+ ['postponed', 'postpone'],
+ ['postulated', 'postulate'],
+ ['potted', 'pot'],
+ ['poured', 'pour'],
+ ['powered', 'power'],
+ ['practiced', 'practice'],
+ ['practised', 'practise'],
+ ['praised', 'praise'],
+ ['prayed', 'pray'],
+ ['preached', 'preach'],
+ ['preceded', 'precede'],
+ ['precipitated', 'precipitate'],
+ ['precluded', 'preclude'],
+ ['predated', 'predate'],
['predetermined', 'predetermine'],
+ ['predicted', 'predict'],
+ ['predominated', 'predominate'],
+ ['prefabricated', 'prefabricate'],
+ ['preferred', 'prefer'],
+ ['premiered', 'premier'],
+ ['premised', 'premise'],
+ ['preoccupied', 'preoccupy'],
+ ['prepared', 'prepare'],
+ ['prescribed', 'prescribe'],
+ ['presented', 'present'],
+ ['preserved', 'preserve'],
+ ['presided', 'preside'],
+ ['pressed', 'press'],
+ ['pressurized', 'pressurize'],
+ ['prevailed', 'prevail'],
+ ['prevented', 'prevent'],
+ ['pried', 'pry'],
+ ['primed', 'prime'],
+ ['printed', 'print'],
+ ['probed', 'probe'],
+ ['proceeded', 'proceed'],
+ ['processed', 'process'],
+ ['proclaimed', 'proclaim'],
+ ['prodded', 'prod'],
+ ['produced', 'produce'],
+ ['proffered', 'proffer'],
+ ['profiled', 'profile'],
+ ['programmed', 'programme'],
+ ['progressed', 'progress'],
+ ['prohibited', 'prohibit'],
+ ['projected', 'project'],
+ ['prolonged', 'prolong'],
+ ['promised', 'promise'],
+ ['promoted', 'promote'],
+ ['prompted', 'prompt'],
+ ['promulgated', 'promulgate'],
+ ['pronounced', 'pronounce'],
+ ['proofed', 'proof'],
+ ['propelled', 'propel'],
+ ['proposed', 'propose'],
+ ['prorated', 'prorate'],
+ ['prosecuted', 'prosecute'],
+ ['prospered', 'prosper'],
+ ['protected', 'protect'],
+ ['proved', 'prove'],
+ ['provided', 'provide'],
+ ['provoked', 'provoke'],
+ ['pruned', 'prune'],
+ ['published', 'publish'],
+ ['pulled', 'pull'],
+ ['pumped', 'pump'],
+ ['punched', 'punch'],
+ ['punctuated', 'punctuate'],
+ ['purchased', 'purchase'],
+ ['pursued', 'pursue'],
+ ['pushed', 'push'],
+ ['put', 'put'],
+ ['qualified', 'qualify'],
+ ['quarantined', 'quarantine'],
+ ['quashed', 'quash'],
+ ['queried', 'query'],
+ ['questioned', 'question'],
+ ['queued', 'queue'],
+ ['quit', 'quit'],
+ ['quoted', 'quote'],
+ ['racked', 'rack'],
+ ['radiated', 'radiate'],
+ ['raged', 'rage'],
+ ['raided', 'raid'],
+ ['rained', 'rain'],
+ ['raised', 'raise'],
+ ['rallied', 'rally'],
+ ['ran', 'run'],
+ ['randomised', 'randomise'],
+ ['randomized', 'randomize'],
+ ['rang', 'ring'],
+ ['ranged', 'range'],
+ ['ranked', 'rank'],
+ ['rated', 'rate'],
+ ['ratified', 'ratify'],
+ ['rationalized', 'rationalize'],
+ ['ravaged', 'ravage'],
+ ['reached', 'reach'],
+ ['reacquired', 'reacquire'],
+ ['reacted', 'react'],
+ ['read', 'read'],
+ ['reaffirmed', 'reaffirm'],
+ ['realigned', 'realign'],
+ ['realised', 'realise'],
+ ['realized', 'realize'],
+ ['reaped', 'reap'],
+ ['reasoned', 'reason'],
+ ['reasserted', 'reassert'],
+ ['reassessed', 'reassess'],
+ ['reassured', 'reassure'],
+ ['rebated', 'rebate'],
+ ['rebounded', 'rebound'],
+ ['rebuilt', 'rebuild'],
+ ['rebutted', 'rebut'],
+ ['recalculated', 'recalculate'],
+ ['recalled', 'recall'],
+ ['recast', 'recast'],
+ ['received', 'receive'],
+ ['recited', 'recite'],
+ ['reckoned', 'reckon'],
+ ['reclaimed', 'reclaim'],
+ ['reclassified', 'reclassify'],
+ ['recognised', 'recognise'],
+ ['recognized', 'recognize'],
+ ['recommended', 'recommend'],
+ ['reconciled', 'reconcile'],
+ ['reconfigured', 'reconfigure'],
+ ['reconfirmed', 'reconfirm'],
+ ['reconsidered', 'reconsider'],
+ ['recorded', 'record'],
+ ['recounted', 'recount'],
+ ['recovered', 'recover'],
+ ['recreated', 'recreate'],
+ ['recruited', 'recruit'],
+ ['redefined', 'redefin'],
+ ['redesigned', 'redesign'],
+ ['redid', 'redo'],
+ ['redirected', 'redirect'],
+ ['redistributed', 'redistribute'],
+ ['reduced', 'reduce'],
+ ['reestablished', 'reestablish'],
+ ['refereed', 'referee'],
+ ['referenced', 'reference'],
+ ['referred', 'refer'],
+ ['refinanced', 'refinance'],
+ ['refined', 'refine'],
+ ['reflected', 'reflect'],
+ ['refocused', 'refocuse'],
+ ['reformed', 'reform'],
+ ['refrigerated', 'refrigerate'],
+ ['refunded', 'refund'],
+ ['refused', 'refuse'],
+ ['refuted', 'refute'],
+ ['regained', 'regain'],
+ ['regarded', 'regard'],
+ ['registered', 'register'],
+ ['regressed', 'regress'],
+ ['regretted', 'regret'],
+ ['regulated', 'regulate'],
+ ['rehearsed', 'rehearse'],
+ ['reigned', 'reign'],
+ ['reimbursed', 'reimburse'],
+ ['reinforced', 'reinforce'],
+ ['reinstated', 'reinstate'],
+ ['reintroduced', 'reintroduce'],
+ ['reinvented', 'reinvent'],
+ ['reinvested', 'reinvest'],
+ ['reinvigorated', 'reinvigorate'],
+ ['reissued', 'reissue'],
+ ['reiterated', 'reiterate'],
+ ['rejected', 'reject'],
+ ['rejoined', 'rejoin'],
+ ['related', 'relate'],
+ ['relaunched', 'relaunch'],
+ ['relaxed', 'relax'],
+ ['relayed', 'relay'],
+ ['released', 'release'],
+ ['relied', 'rely'],
+ ['relieved', 'relieve'],
+ ['relinquished', 'relinquish'],
+ ['relocated', 'relocate'],
+ ['remade', 'remake'],
+ ['remained', 'remain'],
+ ['remanded', 'remand'],
+ ['remarked', 'remark'],
+ ['remembered', 'remember'],
+ ['reminded', 'remind'],
+ ['remitted', 'remit'],
+ ['removed', 'remove'],
+ ['renamed', 'rename'],
+ ['rendered', 'render'],
+ ['rendezvous', 'rendezvous'],
+ ['renegotiated', 'renegotiate'],
+ ['renewed', 'renew'],
+ ['renounced', 'renounce'],
+ ['renovated', 'renovate'],
+ ['rent', 'rend'],
+ ['rented', 'rent'],
+ ['reopened', 'reopen'],
+ ['reordered', 'reorder'],
+ ['reorganized', 'reorganize'],
+ ['reoriented', 'reorient'],
+ ['repaid', 'repay'],
+ ['repatriated', 'repatriate'],
+ ['repealed', 'repeal'],
+ ['repeated', 'repeat'],
+ ['replaced', 'replace'],
+ ['replanted', 'replant'],
+ ['replicated', 'replicate'],
+ ['replied', 'reply'],
+ ['reported', 'report'],
+ ['represented', 'represent'],
+ ['reprinted', 'reprint'],
+ ['reproached', 'reproach'],
+ ['reproduced', 'reproduce'],
+ ['requested', 'request'],
+ ['required', 'require'],
+ ['reread', 'reread'],
+ ['rescheduled', 'reschedule'],
+ ['rescinded', 'rescind'],
+ ['rescued', 'rescue'],
+ ['researched', 'research'],
+ ['resembled', 'resemble'],
+ ['reserved', 'reserve'],
+ ['resided', 'reside'],
+ ['resigned', 'resign'],
+ ['resisted', 'resist'],
+ ['resold', 'resell'],
+ ['resolved', 'resolve'],
+ ['resonated', 'resonate'],
+ ['respected', 'respect'],
+ ['responded', 'respond'],
+ ['restated', 'restate'],
+ ['rested', 'rest'],
+ ['restored', 'restore'],
+ ['restricted', 'restrict'],
+ ['restructured', 'restructure'],
+ ['resubmitted', 'resubmit'],
+ ['resulted', 'result'],
+ ['resumed', 'resume'],
+ ['retained', 'retain'],
+ ['retired', 'retire'],
+ ['retook', 'retake'],
+ ['retraced', 'retrace'],
+ ['retransmitted', 'retransmit'],
+ ['retreated', 'retreat'],
+ ['retrieved', 'retrieve'],
+ ['returned', 'return'],
+ ['revamped', 'revamp'],
+ ['revealed', 'reveal'],
+ ['revered', 'revere'],
+ ['reversed', 'reverse'],
+ ['reverted', 'revert'],
+ ['reviewed', 'review'],
+ ['revised', 'revise'],
+ ['revisited', 'revisit'],
+ ['revitalized', 'revitalize'],
+ ['revived', 'revive'],
+ ['revoked', 'revoke'],
+ ['revolutionized', 'revolutionize'],
+ ['revolved', 'revolve'],
+ ['rewrote', 'rewrite'],
+ ['ribbed', 'rib'],
+ ['risked', 'risk'],
['rivalled', 'rival'],
+ ['roamed', 'roam'],
+ ['roared', 'roar'],
+ ['roasted', 'roast'],
+ ['robbed', 'rob'],
+ ['rode', 'ride'],
+ ['rolled', 'roll'],
+ ['rooted', 'root'],
+ ['rose', 'rise'],
+ ['rotated', 'rotate'],
+ ['rounded', 'round'],
+ ['rubberized', 'rubberize'],
+ ['ruined', 'ruin'],
+ ['ruled', 'rule'],
+ ['rushed', 'rush'],
+ ['sacrificed', 'sacrifice'],
+ ['said', 'say'],
+ ['sailed', 'sail'],
+ ['salted', 'salt'],
+ ['saluted', 'salute'],
+ ['sampled', 'sample'],
+ ['sanctioned', 'sanction'],
+ ['sang', 'sing'],
+ ['sank', 'sink'],
+ ['sat', 'sit'],
+ ['satisfied', 'satisfy'],
+ ['saturated', 'saturate'],
+ ['saved', 'save'],
+ ['saw', 'see'],
+ ['scaled', 'scale'],
+ ['scanned', 'scan'],
+ ['scheduled', 'schedule'],
+ ['schooled', 'school'],
+ ['scored', 'score'],
+ ['scouted', 'scout'],
+ ['scrambled', 'scramble'],
+ ['screened', 'screen'],
+ ['screwed', 'screw'],
+ ['sculptured', 'sculpture'],
+ ['scutched', 'scutch'],
+ ['sealed', 'seal'],
+ ['searched', 'search'],
+ ['seated', 'seat'],
+ ['seconded', 'second'],
+ ['secured', 'secure'],
+ ['seeded', 'seed'],
+ ['seemed', 'seem'],
['seeped', 'seep'],
+ ['segmented', 'segment'],
+ ['segregated', 'segregate'],
+ ['seized', 'seize'],
+ ['selected', 'select'],
+ ['sensed', 'sense'],
+ ['sensitized', 'sensitize'],
+ ['sent', 'send'],
+ ['sentenced', 'sentence'],
+ ['separated', 'separate'],
+ ['sequestered', 'sequester'],
+ ['serrated', 'serrate'],
+ ['served', 'serve'],
+ ['serviced', 'service'],
+ ['set', 'set'],
+ ['settled', 'settle'],
+ ['severed', 'sever'],
['sewn', 'sew'],
+ ['shaped', 'shape'],
+ ['shared', 'share'],
+ ['shattered', 'shatter'],
['shaved', 'shave'],
+ ['shed', 'shed'],
+ ['shelled', 'shell'],
+ ['sheltered', 'shelter'],
+ ['shielded', 'shield'],
+ ['shifted', 'shift'],
+ ['shipped', 'ship'],
+ ['shone', 'shine'],
+ ['shook', 'shake'],
+ ['shored', 'shore'],
+ ['shortened', 'shorten'],
+ ['shot', 'shoot'],
['shouted', 'shout'],
+ ['shoved', 'shove'],
+ ['showcased', 'showcase'],
+ ['showed', 'show'],
+ ['shrank', 'shrink'],
+ ['shredded', 'shred'],
+ ['shrieked', 'shriek'],
+ ['shucked', 'shuck'],
+ ['shuffled', 'shuffle'],
+ ['shunned', 'shun'],
+ ['shut', 'shut'],
+ ['sided', 'side'],
['sidelined', 'sideline'],
+ ['signaled', 'signal'],
+ ['signed', 'sign'],
+ ['signified', 'signify'],
+ ['simplified', 'simplify'],
+ ['simulated', 'simulate'],
+ ['singled', 'single'],
+ ['sized', 'size'],
+ ['sketched', 'sketch'],
+ ['skidded', 'skid'],
+ ['skied', 'ski'],
+ ['skimmed', 'skim'],
['skinned', 'skin'],
+ ['skyrocketed', 'skyrocket'],
+ ['slammed', 'slam'],
+ ['slashed', 'slash'],
+ ['slatted', 'slat'],
+ ['slaughtered', 'slaughter'],
['slayed', 'slay'],
['slept', 'sleep'],
+ ['sliced', 'slice'],
+ ['slid', 'slide'],
+ ['slipped', 'slip'],
+ ['sloped', 'slope'],
+ ['slowed', 'slow'],
+ ['slumped', 'slump'],
+ ['smiled', 'smile'],
+ ['smoked', 'smoke'],
+ ['smuggled', 'smuggle'],
+ ['snaked', 'snake'],
+ ['snarled', 'snarl'],
['sniped', 'snipe'],
['snuck', 'sneak'],
+ ['soaked', 'soak'],
+ ['soared', 'soar'],
+ ['socked', 'sock'],
+ ['softened', 'soften'],
+ ['soiled', 'soil'],
+ ['sold', 'sell'],
+ ['solemnized', 'solemnize'],
+ ['solicited', 'solicit'],
+ ['solidified', 'solidify'],
+ ['solved', 'solve'],
+ ['sought', 'seek'],
+ ['sounded', 'sound'],
+ ['sowed', 'sow'],
+ ['spaced', 'space'],
+ ['spanned', 'span'],
+ ['spared', 'spare'],
+ ['sparked', 'spark'],
+ ['sparred', 'spar'],
+ ['spat', 'spit'],
+ ['spawned', 'spawn'],
+ ['spearheaded', 'spearhead'],
+ ['specialised', 'specialise'],
+ ['specialized', 'specialize'],
+ ['specified', 'specify'],
+ ['speckled', 'speckle'],
+ ['speculated', 'speculate'],
+ ['speeded', 'speed'],
+ ['spelled', 'spell'],
+ ['spent', 'spend'],
['spiked', 'spike'],
+ ['spilled', 'spill'],
+ ['spited', 'spite'],
+ ['split', 'split'],
+ ['spoke', 'speak'],
+ ['sponsored', 'sponsor'],
+ ['spotted', 'spot'],
+ ['spouted', 'spout'],
+ ['sprang', 'spring'],
+ ['spread', 'spread'],
+ ['sprinkled', 'sprinkle'],
+ ['sprouted', 'sprout'],
+ ['spun', 'spin'],
+ ['spurred', 'spur'],
+ ['squared', 'square'],
+ ['squeezed', 'squeeze'],
+ ['stabilized', 'stabilize'],
+ ['stacked', 'stack'],
+ ['staffed', 'staff'],
+ ['staged', 'stage'],
+ ['staggered', 'stagger'],
+ ['stagnated', 'stagnate'],
+ ['stained', 'stain'],
+ ['staked', 'stake'],
+ ['stalled', 'stall'],
+ ['stamped', 'stamp'],
+ ['standardized', 'standardize'],
+ ['stapled', 'staple'],
+ ['started', 'start'],
+ ['stated', 'state'],
+ ['stationed', 'station'],
+ ['stayed', 'stay'],
+ ['stemmed', 'stem'],
+ ['stepped', 'step'],
+ ['stifled', 'stifle'],
+ ['stimulated', 'stimulate'],
+ ['stipulated', 'stipulate'],
+ ['stirred', 'stir'],
+ ['stockpiled', 'stockpile'],
['stole', 'steal'],
+ ['stood', 'stand'],
+ ['stopped', 'stop'],
+ ['stored', 'store'],
+ ['stormed', 'storm'],
+ ['stowed', 'stow'],
+ ['straddled', 'straddle'],
+ ['stratified', 'stratify'],
+ ['streamed', 'stream'],
+ ['streamlined', 'streamline'],
+ ['strengthened', 'strengthen'],
+ ['stressed', 'stress'],
+ ['stretched', 'stretch'],
['strewn', 'strew'],
+ ['stripped', 'strip'],
+ ['strolled', 'stroll'],
+ ['strove', 'strive'],
+ ['struck', 'strike'],
+ ['structured', 'structure'],
+ ['struggled', 'struggle'],
+ ['stuck', 'stick'],
+ ['studied', 'study'],
+ ['stuffed', 'stuff'],
+ ['stumbled', 'stumble'],
['stunk', 'stink'],
['stunned', 'stun'],
+ ['styled', 'style'],
+ ['stylized', 'stylize'],
+ ['subdivided', 'subdivide'],
+ ['submerged', 'submerge'],
+ ['submitted', 'submit'],
+ ['subscribed', 'subscribe'],
+ ['subsided', 'subside'],
+ ['subsidized', 'subsidize'],
+ ['substantiated', 'substantiate'],
+ ['substituted', 'substitute'],
+ ['subsumed', 'subsume'],
+ ['succeeded', 'succeed'],
+ ['succumbed', 'succumb'],
+ ['sued', 'sue'],
+ ['suffered', 'suffer'],
+ ['suggested', 'suggest'],
+ ['suited', 'suit'],
+ ['sulphonated', 'sulphonate'],
+ ['summarized', 'summarize'],
+ ['summed', 'sum'],
+ ['summoned', 'summon'],
+ ['superseded', 'supersede'],
+ ['supervised', 'supervise'],
+ ['supplemented', 'supplement'],
+ ['supplied', 'supply'],
+ ['supported', 'support'],
+ ['suppressed', 'suppress'],
+ ['surfaced', 'surface'],
+ ['surfed', 'surf'],
+ ['surged', 'surge'],
+ ['surmised', 'surmise'],
+ ['surmounted', 'surmount'],
+ ['surpassed', 'surpass'],
+ ['surprised', 'surprise'],
+ ['surrendered', 'surrender'],
+ ['surrounded', 'surround'],
+ ['surveyed', 'survey'],
+ ['survived', 'survive'],
+ ['suspected', 'suspect'],
+ ['suspended', 'suspend'],
+ ['sustained', 'sustain'],
+ ['swam', 'swim'],
+ ['sweetened', 'sweeten'],
+ ['swelled', 'swell'],
+ ['swept', 'sweep'],
+ ['switched', 'switch'],
+ ['swore', 'swear'],
+ ['synthesized', 'synthesize'],
+ ['systematized', 'systematize'],
+ ['tabbed', 'tab'],
+ ['tabled', 'table'],
+ ['tabulated', 'tabulate'],
+ ['tackled', 'tackle'],
+ ['tagged', 'tag'],
+ ['tailored', 'tailor'],
+ ['talked', 'talk'],
+ ['tallied', 'tally'],
+ ['tanned', 'tan'],
+ ['taped', 'tape'],
+ ['tapered', 'taper'],
+ ['tapped', 'tap'],
+ ['targeted', 'target'],
+ ['tarnished', 'tarnish'],
+ ['tasked', 'task'],
['tasted', 'taste'],
+ ['taught', 'teach'],
+ ['taxed', 'tax'],
+ ['teamed', 'team'],
+ ['teetered', 'teeter'],
+ ['telegraphed', 'telegraph'],
+ ['telephoned', 'telephone'],
+ ['tempted', 'tempt'],
+ ['tended', 'tend'],
+ ['tendered', 'tender'],
+ ['termed', 'term'],
+ ['terminated', 'terminate'],
+ ['tested', 'test'],
+ ['testified', 'testify'],
+ ['thanked', 'thank'],
+ ['thawed', 'thaw'],
['thinned', 'thin'],
- ['twinned', 'twin'],
- ['wept', 'weep'],
- ['wrung', 'wring'],
- ['ruined', 'ruin'],
- ['faked', 'fake'],
- ['remade', 'remake'],
- ['snaked', 'snake'],
- ['mistook', 'mistake'],
- ['snarled', 'snarl'],
-
- ['uploaded', 'upload'],
- ['sparred', 'spar'],
- ['roared', 'roar'],
- ['bloated', 'bloat'],
- ['piled', 'pile'],
- ['styled', 'style'],
- ['whirled', 'whirl'],
- ['nicknamed', 'nickname'],
- ['bored', 'bore'],
-
- ['biased', 'bias'],
- ['biked', 'bike'],
- ['bossed', 'boss'],
- ['buzzed', 'buzz'],
- ['cored', 'core'],
- ['eyed', 'eye'],
- ['framed', 'frame'],
- ['gamed', 'game'],
- ['gassed', 'gas'],
- ['glossed', 'gloss'],
- ['guessed', 'guess'],
- ['inhaled', 'inhale'],
- ['manoeuvred', 'manoeuvre'],
- ['messed', 'mess'],
- ['named', 'name'],
- ['perfumed', 'perfume'],
- ['pored', 'pore'],
- ['programmed', 'programme'],
- ['pruned', 'prune'],
- ['redid', 'redo'],
- ['rendezvous', 'rendezvous'],
- ['scouted', 'scout'],
- ['skied', 'ski'],
- ['smiled', 'smile'],
- ['spited', 'spite'],
- ['sprinkled', 'sprinkle'],
- ['stalled', 'stall'],
+ ['thought', 'think'],
+ ['threaded', 'thread'],
+ ['threatened', 'threaten'],
+ ['threw', 'throw'],
+ ['thrived', 'thrive'],
+ ['thrust', 'thrust'],
+ ['tied', 'tie'],
+ ['tiered', 'tier'],
+ ['tightened', 'tighten'],
['timed', 'time'],
+ ['tipped', 'tip'],
+ ['titled', 'title'],
+ ['toasted', 'toast'],
+ ['told', 'tell'],
+ ['tolerated', 'tolerate'],
['tolled', 'toll'],
['toned', 'tone'],
+ ['took', 'take'],
+ ['topped', 'top'],
+ ['tore', 'tear'],
['tossed', 'toss'],
+ ['totaled', 'total'],
+ ['touched', 'touch'],
+ ['toured', 'tour'],
+ ['traced', 'trace'],
+ ['tracked', 'track'],
+ ['traded', 'trade'],
+ ['trafficked', 'traffick'],
+ ['trailed', 'trail'],
+ ['trained', 'train'],
+ ['transacted', 'transact'],
+ ['transferred', 'transfer'],
+ ['transformed', 'transform'],
+ ['transited', 'transit'],
+ ['translated', 'translate'],
+ ['transmitted', 'transmit'],
+ ['transpired', 'transpire'],
+ ['transported', 'transport'],
+ ['travelled', 'travel'],
+ ['treated', 'treat'],
+ ['trended', 'trend'],
+ ['tried', 'try'],
+ ['triggered', 'trigger'],
+ ['trimmed', 'trim'],
+ ['tripled', 'triple'],
+ ['trumpeted', 'trumpet'],
+ ['truncated', 'truncate'],
+ ['trusted', 'trust'],
+ ['tufted', 'tuft'],
+ ['tumbled', 'tumble'],
+ ['tuned', 'tune'],
+ ['turned', 'turn'],
+ ['twinned', 'twin'],
+ ['typed', 'type'],
+ ['typified', 'typify'],
+ ['uncovered', 'uncover'],
+ ['underbid', 'underbid'],
+ ['undercapitalized', 'undercapitalize'],
+ ['undercut', 'undercut'],
+ ['underdeveloped', 'underdevelop'],
+ ['underestimated', 'underestimate'],
+ ['underlay', 'underlie'],
+ ['underlined', 'underline'],
+ ['undermined', 'undermine'],
+ ['underpaid', 'underpay'],
+ ['underperformed', 'underperform'],
+ ['underpinned', 'underpin'],
+ ['underrepresented', 'underrepresent'],
+ ['underscored', 'underscore'],
+ ['undersigned', 'undersign'],
+ ['understood', 'understand'],
+ ['undertook', 'undertake'],
+ ['underwent', 'undergo'],
+ ['unearthed', 'unearth'],
+ ['unfolded', 'unfold'],
+ ['unified', 'unify'],
+ ['unionized', 'unionize'],
+ ['united', 'unite'],
+ ['unleashed', 'unleash'],
+ ['unloaded', 'unload'],
+ ['unscrambled', 'unscramble'],
+ ['unveiled', 'unveil'],
+ ['updated', 'update'],
+ ['upgraded', 'upgrade'],
+ ['upheld', 'uphold'],
+ ['upholstered', 'upholster'],
+ ['uploaded', 'upload'],
+ ['upped', 'up'],
+ ['upset', 'upset'],
+ ['urged', 'urge'],
+ ['used', 'use'],
+ ['ushered', 'usher'],
+ ['utilized', 'utilize'],
+ ['vaccinated', 'vaccinate'],
+ ['validated', 'validate'],
+ ['valued', 'value'],
+ ['vanished', 'vanish'],
+ ['vaporized', 'vaporize'],
+ ['varied', 'vary'],
+ ['varnished', 'varnish'],
+ ['vegetated', 'vegetate'],
+ ['vented', 'vent'],
+ ['ventilated', 'ventilate'],
+ ['ventured', 'venture'],
+ ['verified', 'verify'],
['vibed', 'vibe'],
- ['zoned', 'zone'],
- ['kissed', 'kiss'],
+ ['vied', 'vie'],
+ ['viewed', 'view'],
+ ['violated', 'violate'],
+ ['visited', 'visit'],
+ ['voiced', 'voice'],
+ ['voided', 'void'],
+ ['volunteered', 'volunteer'],
+ ['voted', 'vote'],
+ ['vowed', 'vow'],
+ ['vulcanized', 'vulcanize'],
+ ['waited', 'wait'],
+ ['waived', 'waive'],
+ ['walked', 'walk'],
+ ['walled', 'wall'],
+ ['waned', 'wane'],
+ ['wanted', 'want'],
+ ['warehoused', 'warehouse'],
+ ['warmed', 'warm'],
+ ['warned', 'warn'],
+ ['warranted', 'warrant'],
+ ['was', 'is'],
+ ['washed', 'wash'],
+ ['wasted', 'waste'],
+ ['watched', 'watch'],
+ ['watered', 'water'],
+ ['waxed', 'wax'],
+ ['weakened', 'weaken'],
+ ['weed', 'wee'],
+ ['weighed', 'weigh'],
+ ['weighted', 'weight'],
+ ['welcomed', 'welcome'],
+ ['welded', 'weld'],
+ ['went', 'go'],
+ ['wept', 'weep'],
+ ['were', 'are'],
+ ['whirled', 'whirl'],
+ ['widened', 'widen'],
+ ['widowed', 'widow'],
+ ['winged', 'wing'],
+ ['wiped', 'wipe'],
+ ['wired', 'wire'],
+ ['wished', 'wish'],
+ ['withdrew', 'withdraw'],
+ ['withheld', 'withhold'],
+ ['withstood', 'withstand'],
['witnessed', 'witness'],
- ['plodded', 'plod'],
- ['deterred', 'deter'],
- ['anchored', 'anchor'],
- ['choked', 'choke'],
- ['skidded', 'skid'],
- ['dissuaded', 'dissuade'],
- ['poked', 'poke'],
- ['retook', 'retake'],
- ['levelled', 'level'],
- ['dared', 'dare'],
- ['swam', 'swim'],
- ['collided', 'collide'],
- ['slammed', 'slam'],
- ['shunned', 'shun'],
- ['prodded', 'prod'],
- ['outgrew', 'outgrow'],
- ['fulfilled', 'fulfil'],
- ['blew', 'blow'],
+ ['woke', 'wake'],
+ ['won', 'win'],
+ ['wondered', 'wonder'],
+ ['wore', 'wear'],
+ ['worked', 'work'],
+ ['worried', 'worry'],
+ ['worsened', 'worsen'],
+ ['wound', 'wind'],
+ ['wove', 'weave'],
+ ['wrapped', 'wrap'],
+ ['wrestled', 'wrestle'],
+ ['wrote', 'write'],
+ ['wrung', 'wring'],
+ ['yielded', 'yield'],
+ ['zoned', 'zone'],
+ ['smelled', 'smell'],
+ ['chirped', 'chirp'],
+ ['doomed', 'doom'],
+ // ['blown', 'blow'],
+ // ['', ''],
]
\ No newline at end of file
diff --git a/data/pairs/PresentTense.js b/data/pairs/PresentTense.js
index 378303734..f6f9eb79c 100644
--- a/data/pairs/PresentTense.js
+++ b/data/pairs/PresentTense.js
@@ -1,1935 +1,1936 @@
export default [
- ['are', 'is', 267350],
- ['has', 'have', 74555],
- ['provides', 'provide', 13184],
- ['does', 'do', 12739],
- ['includes', 'include', 8337],
- ['means', 'mean', 4359],
- ['requires', 'require', 3789],
- ['needs', 'need', 3642],
- ['continues', 'continue', 3494],
- ['supports', 'support', 3394],
- ['allows', 'allow', 2940],
- ['makes', 'make', 2893],
- ['represents', 'represent', 2877],
- ['follows', 'follow', 2634],
- ['remains', 'remain', 2590],
- ['offers', 'offer', 2507],
- ['indicates', 'indicate', 2370],
- ['appears', 'appear', 2212],
- ['applies', 'apply', 2194],
- ['contains', 'contain', 2112],
- ['shows', 'show', 2101],
- ['takes', 'take', 2079],
- ['says', 'say', 2064],
- ['suggests', 'suggest', 2000],
- ['recognizes', 'recognize', 1877],
- ['helps', 'help', 1866],
- ['works', 'work', 1797],
- ['reflects', 'reflect', 1623],
- ['involves', 'involve', 1617],
- ['consists', 'consist', 1567],
- ['gives', 'give', 1497],
- ['uses', 'use', 1459],
- ['exists', 'exist', 1428],
- ['presents', 'present', 1416],
- ['comes', 'come', 1346],
- ['agrees', 'agree', 1324],
- ['outlines', 'outline', 1314],
- ['refers', 'refer', 1299],
- ['becomes', 'become', 1292],
- ['aims', 'aim', 1283],
- ['focuses', 'focus', 1278],
- ['meets', 'meet', 1221],
- ['occurs', 'occur', 1209],
- ['recommends', 'recommend', 1184],
- ['plans', 'plan', 1179],
- ['promotes', 'promote', 1141],
- ['covers', 'cover', 1127],
- ['seems', 'seem', 1125],
- ['contributes', 'contribute', 1112],
- ['identifies', 'identify', 1106],
- ['relates', 'relate', 1103],
- ['receives', 'receive', 1102],
- ['describes', 'describe', 1098],
- ['ensures', 'ensure', 1067],
- ['addresses', 'address', 1043],
- ['encourages', 'encourage', 1024],
- ['explains', 'explain', 970],
- ['serves', 'serve', 959],
- ['sets', 'set', 957],
- ['brings', 'bring', 940],
- ['believes', 'believe', 937],
- ['holds', 'hold', 936],
- ['depends', 'depend', 933],
- ['determines', 'determine', 919],
- ['plays', 'play', 902],
- ['states', 'state', 868],
- ['produces', 'produce', 866],
- ['seeks', 'seek', 849],
- ['considers', 'consider', 841],
- ['operates', 'operate', 839],
- ['reports', 'report', 791],
- ['enables', 'enable', 781],
- ['leads', 'lead', 766],
- ['constitutes', 'constitute', 765],
- ['varies', 'vary', 759],
- ['creates', 'create', 752],
- ['maintains', 'maintain', 740],
- ['goes', 'go', 708],
- ['proposes', 'propose', 700],
- ['increases', 'increase', 677],
- ['demonstrates', 'demonstrate', 675],
- ['notes', 'note', 668],
- ['affects', 'affect', 642],
- ['begins', 'begin', 638],
- ['establishes', 'establish', 637],
- ['exceeds', 'exceed', 634],
- ['administers', 'administer', 632],
- ['examines', 'examine', 631],
- ['defines', 'define', 625],
- ['wishes', 'wish', 598],
- ['reduces', 'reduce', 591],
- ['links', 'link', 583],
- ['develops', 'develop', 581],
- ['falls', 'fall', 578],
- ['intends', 'intend', 556],
- ['finds', 'find', 553],
- ['highlights', 'highlight', 549],
- ['assists', 'assist', 538],
- ['processes', 'process', 537],
- ['pays', 'pay', 536],
- ['wants', 'want', 508],
- ['causes', 'cause', 495],
- ['tends', 'tend', 478],
- ['builds', 'build', 460],
- ['calls', 'call', 457],
- ['illustrates', 'illustrate', 453],
- ['permits', 'permit', 450],
- ['expects', 'expect', 438],
- ['facilitates', 'facilitate', 431],
- ['reveals', 'reveal', 427],
- ['looks', 'look', 424],
- ['summarizes', 'summarize', 421],
- ['reviews', 'review', 415],
- ['adds', 'add', 414],
- ['confirms', 'confirm', 409],
- ['measures', 'measure', 408],
- ['raises', 'raise', 396],
- ['assumes', 'assume', 393],
- ['fails', 'fail', 393],
- ['acknowledges', 'acknowledge', 391],
- ['happens', 'happen', 388],
- ['comprises', 'comprise', 385],
- ['prohibits', 'prohibit', 381],
- ['conducts', 'conduct', 377],
- ['improves', 'improve', 375],
- ['faces', 'face', 373],
- ['concludes', 'conclude', 371],
- ['excludes', 'exclude', 371],
- ['implies', 'imply', 370],
- ['features', 'feature', 364],
- ['extends', 'extend', 358],
- ['controls', 'control', 356],
- ['estimates', 'estimate', 346],
- ['protects', 'protect', 346],
- ['specifies', 'specify', 345],
- ['manages', 'manage', 344],
- ['participates', 'participate', 342],
- ['relies', 'rely', 334],
- ['forms', 'form', 333],
- ['incorporates', 'incorporate', 333],
- ['places', 'place', 326],
- ['encompasses', 'encompass', 325],
- ['acts', 'act', 323],
- ['carries', 'carry', 321],
- ['lies', 'lie', 320],
- ['publishes', 'publish', 318],
- ['generates', 'generate', 317],
- ['delivers', 'deliver', 316],
- ['lists', 'list', 313],
- ['fosters', 'foster', 312],
- ['leaves', 'leave', 312],
- ['employs', 'employ', 304],
- ['emphasizes', 'emphasize', 302],
- ['starts', 'start', 301],
- ['stands', 'stand', 301],
- ['sells', 'sell', 300],
- ['enhances', 'enhance', 299],
- ['owns', 'own', 296],
- ['claims', 'claim', 293],
- ['costs', 'cost', 290],
- ['responds', 'respond', 286],
- ['feels', 'feel', 285],
- ['announces', 'announce', 281],
- ['hopes', 'hope', 281],
- ['discusses', 'discuss', 280],
- ['discloses', 'disclose', 280],
- ['respects', 'respect', 276],
- ['accounts', 'account', 268],
- ['collects', 'collect', 267],
- ['arises', 'arise', 266],
- ['prevents', 'prevent', 265],
- ['welcomes', 'welcome', 265],
- ['undertakes', 'undertake', 262],
- ['limits', 'limit', 261],
- ['speaks', 'speak', 260],
- ['sees', 'see', 258],
- ['puts', 'put', 255],
- ['accepts', 'accept', 250],
- ['gets', 'get', 247],
- ['runs', 'run', 244],
- ['reaches', 'reach', 241],
- ['ends', 'end', 241],
- ['stipulates', 'stipulate', 241],
- ['monitors', 'monitor', 239],
- ['stems', 'stem', 237],
- ['decides', 'decide', 235],
- ['imposes', 'impose', 231],
- ['compares', 'compare', 231],
- ['targets', 'target', 230],
- ['points', 'point', 229],
- ['knows', 'know', 228],
- ['commits', 'commit', 228],
- ['differs', 'differ', 227],
- ['ceases', 'cease', 225],
- ['submits', 'submit', 224],
- ['qualifies', 'qualify', 223],
- ['benefits', 'benefit', 222],
- ['values', 'value', 219],
- ['chooses', 'choose', 215],
- ['argues', 'argue', 215],
- ['explores', 'explore', 212],
- ['distributes', 'distribute', 209],
- ['coordinates', 'coordinate', 209],
- ['enters', 'enter', 209],
- ['keeps', 'keep', 208],
- ['sends', 'send', 207],
- ['guarantees', 'guarantee', 207],
- ['rests', 'rest', 204],
- ['strengthens', 'strengthen', 203],
- ['combines', 'combine', 202],
- ['moves', 'move', 201],
- ['retains', 'retain', 201],
- ['draws', 'draw', 200],
- ['prepares', 'prepare', 198],
- ['marks', 'mark', 198],
- ['strives', 'strive', 195],
- ['advises', 'advise', 195],
- ['authorizes', 'authorize', 195],
- ['opens', 'open', 193],
- ['arrives', 'arrive', 193],
- ['awards', 'award', 193],
- ['poses', 'pose', 192],
- ['asks', 'ask', 191],
- ['grants', 'grant', 190],
- ['projects', 'project', 189],
- ['directs', 'direct', 189],
- ['pertains', 'pertain', 187],
- ['files', 'file', 187],
- ['replaces', 'replace', 186],
- ['grows', 'grow', 186],
- ['attracts', 'attract', 186],
- ['results', 'result', 185],
- ['regards', 'regard', 183],
- ['supplies', 'supply', 183],
- ['centres', 'centre', 183],
- ['tells', 'tell', 182],
- ['invests', 'invest', 182],
- ['regulates', 'regulate', 181],
- ['funds', 'fund', 179],
- ['integrates', 'integrate', 178],
- ['corresponds', 'correspond', 177],
- ['performs', 'perform', 177],
- ['attempts', 'attempt', 176],
- ['complements', 'complement', 174],
- ['matters', 'matter', 172],
- ['introduces', 'introduce', 172],
- ['oversees', 'oversee', 172],
- ['concerns', 'concern', 171],
- ['turns', 'turn', 171],
- ['enjoys', 'enjoy', 168],
- ['changes', 'change', 167],
- ['references', 'reference', 167],
- ['understands', 'understand', 166],
- ['belongs', 'belong', 165],
- ['resides', 'reside', 165],
- ['challenges', 'challenge', 162],
- ['implements', 'implement', 158],
- ['releases', 'release', 157],
- ['ranks', 'rank', 156],
- ['extracts', 'extract', 156],
- ['informs', 'inform', 154],
- ['expires', 'expire', 154],
- ['alleges', 'allege', 154],
- ['invites', 'invite', 152],
- ['assesses', 'assess', 151],
- ['expands', 'expand', 150],
- ['captures', 'capture', 149],
- ['translates', 'translate', 149],
- ['interns', 'intern', 148],
- ['approves', 'approve', 147],
- ['imports', 'import', 147],
- ['dates', 'date', 146],
- ['approaches', 'approach', 146],
- ['celebrates', 'celebrate', 145],
- ['governs', 'govern', 145],
- ['reserves', 'reserve', 144],
- ['issues', 'issue', 143],
- ['fits', 'fit', 143],
- ['evaluates', 'evaluate', 142],
- ['feeds', 'feed', 142],
- ['deals', 'deal', 138],
- ['handles', 'handle', 138],
- ['eliminates', 'eliminate', 136],
- ['influences', 'influence', 136],
- ['sits', 'sit', 134],
- ['documents', 'document', 134],
- ['engages', 'engage', 134],
- ['lacks', 'lack', 132],
- ['complies', 'comply', 131],
- ['specializes', 'specialize', 131],
- ['impacts', 'impact', 126],
- ['matches', 'match', 126],
- ['equals', 'equal', 126],
- ['expresses', 'express', 126],
- ['dies', 'die', 126],
- ['visits', 'visit', 125],
- ['organizes', 'organize', 124],
- ['initiatives', 'initiative', 124],
- ['bears', 'bear', 124],
- ['rises', 'rise', 124],
- ['confers', 'confer', 122],
- ['entails', 'entail', 121],
- ['achieves', 'achieve', 121],
- ['obtains', 'obtain', 120],
- ['exhibits', 'exhibit', 120],
- ['hosts', 'host', 119],
- ['exports', 'export', 118],
- ['buys', 'buy', 118],
- ['satisfies', 'satisfy', 116],
- ['anticipates', 'anticipate', 115],
- ['allocates', 'allocate', 114],
- ['emerges', 'emerge', 114],
- ['studies', 'study', 114],
- ['spends', 'spend', 113],
- ['conforms', 'conform', 113],
- ['sections', 'section', 112],
- ['acquires', 'acquire', 111],
- ['flows', 'flow', 111],
- ['weeds', 'weed', 111],
- ['connects', 'connect', 110],
- ['passes', 'pass', 110],
- ['voyages', 'voyage', 110],
- ['reads', 'read', 110],
- ['steps', 'step', 109],
- ['removes', 'remove', 108],
- ['deems', 'deem', 108],
- ['tracks', 'track', 106],
- ['reinforces', 'reinforce', 105],
- ['requests', 'request', 103],
- ['exercises', 'exercise', 102],
- ['lives', 'live', 102],
- ['investigates', 'investigate', 102],
- ['concentrates', 'concentrate', 102],
- ['stresses', 'stress', 100],
- ['launches', 'launch', 99],
- ['favours', 'favour', 99],
- ['contends', 'contend', 99],
- ['consults', 'consult', 98],
- ['transfers', 'transfer', 97],
- ['restricts', 'restrict', 97],
- ['signs', 'sign', 97],
- ['embraces', 'embrace', 96],
- ['sponsors', 'sponsor', 96],
- ['underscores', 'underscore', 95],
- ['evolves', 'evolve', 94],
- ['attributes', 'attribute', 93],
- ['completes', 'complete', 93],
- ['reaffirms', 'reaffirm', 93],
- ['assigns', 'assign', 92],
- ['manufactures', 'manufacture', 92],
- ['designs', 'design', 92],
- ['occupies', 'occupy', 92],
- ['pursues', 'pursue', 92],
- ['overwinters', 'overwinter', 92],
- ['overlaps', 'overlap', 89],
- ['clarifies', 'clarify', 89],
- ['promises', 'promise', 89],
- ['derives', 'derive', 88],
- ['drives', 'drive', 88],
- ['programmes', 'programme', 86],
- ['teaches', 'teach', 86],
- ['urges', 'urge', 86],
- ['honours', 'honour', 86],
- ['tries', 'try', 85],
- ['chairs', 'chair', 85],
- ['aligns', 'align', 85],
- ['originates', 'originate', 85],
- ['designates', 'designate', 84],
- ['balances', 'balance', 84],
- ['heads', 'head', 84],
- ['transmits', 'transmit', 84],
- ['denotes', 'denote', 84],
- ['guides', 'guide', 82],
- ['views', 'view', 82],
- ['reminds', 'remind', 82],
- ['offsets', 'offset', 82],
- ['amounts', 'amount', 81],
- ['records', 'record', 80],
- ['experiences', 'experience', 80],
- ['deserves', 'deserve', 80],
- ['stimulates', 'stimulate', 79],
- ['predicts', 'predict', 79],
- ['distinguishes', 'distinguish', 78],
- ['decreases', 'decrease', 78],
- ['supersedes', 'supersede', 78],
- ['lasts', 'last', 77],
- ['houses', 'house', 76],
- ['affirms', 'affirm', 75],
- ['fulfills', 'fulfill', 75],
- ['demands', 'demand', 75],
- ['certifies', 'certify', 75],
- ['binds', 'bind', 75],
- ['charges', 'charge', 73],
- ['updates', 'update', 73],
- ['refuses', 'refuse', 73],
- ['minimizes', 'minimize', 72],
- ['forces', 'force', 72],
- ['displays', 'display', 72],
- ['signals', 'signal', 72],
- ['accompanies', 'accompany', 72],
- ['analyzes', 'analyze', 72],
- ['shares', 'share', 72],
- ['embodies', 'embody', 72],
- ['utilizes', 'utilize', 72],
- ['collaborates', 'collaborate', 71],
- ['disseminates', 'disseminate', 71],
- ['justifies', 'justify', 71],
- ['lends', 'lend', 71],
- ['proves', 'prove', 71],
- ['purchases', 'purchase', 71],
- ['answers', 'answer', 71],
- ['yields', 'yield', 71],
- ['returns', 'return', 70],
- ['breaks', 'break', 70],
- ['dominates', 'dominate', 70],
- ['competes', 'compete', 69],
- ['realizes', 'realize', 69],
- ['adopts', 'adopt', 68],
- ['services', 'service', 68],
- ['appreciates', 'appreciate', 68],
- ['terminates', 'terminate', 68],
- ['fills', 'fill', 67],
- ['thinks', 'think', 66],
- ['boasts', 'boast', 66],
- ['communicates', 'communicate', 65],
- ['ranges', 'range', 65],
- ['departs', 'depart', 65],
- ['threatens', 'threaten', 65],
- ['treats', 'treat', 64],
- ['possesses', 'possess', 64],
- ['coincides', 'coincide', 63],
- ['suffers', 'suffer', 63],
- ['showcases', 'showcase', 63],
- ['depicts', 'depict', 63],
- ['cuts', 'cut', 63],
- ['articulates', 'articulate', 63],
- ['lays', 'lay', 62],
- ['commences', 'commence', 62],
- ['joins', 'join', 61],
- ['negotiates', 'negotiate', 61],
- ['notifies', 'notify', 61],
- ['writes', 'write', 61],
- ['credits', 'credit', 61],
- ['markets', 'market', 61],
- ['spreads', 'spread', 61],
- ['broadcasts', 'broadcast', 61],
- ['films', 'film', 61],
- ['spans', 'span', 60],
- ['selects', 'select', 60],
- ['slips', 'slip', 60],
- ['declares', 'declare', 60],
- ['cites', 'cite', 60],
- ['observes', 'observe', 60],
- ['crosses', 'cross', 60],
- ['renders', 'render', 60],
- ['exemplifies', 'exemplify', 59],
- ['totals', 'total', 59],
- ['lowers', 'lower', 59],
- ['forecasts', 'forecast', 58],
- ['necessitates', 'necessitate', 58],
- ['mandates', 'mandate', 58],
- ['persists', 'persist', 57],
- ['recalls', 'recall', 57],
- ['counts', 'count', 56],
- ['mentions', 'mention', 56],
- ['climbs', 'climb', 56],
- ['mirrors', 'mirror', 56],
- ['preserves', 'preserve', 55],
- ['lets', 'let', 55],
- ['incurs', 'incur', 55],
- ['avoids', 'avoid', 54],
- ['gathers', 'gather', 54],
- ['drops', 'drop', 54],
- ['details', 'detail', 52],
- ['adjusts', 'adjust', 52],
- ['amends', 'amend', 52],
- ['attaches', 'attach', 52],
- ['kills', 'kill', 52],
- ['contacts', 'contact', 52],
- ['precludes', 'preclude', 52],
- ['prefers', 'prefer', 51],
- ['verifies', 'verify', 51],
- ['enriches', 'enrich', 51],
- ['attends', 'attend', 50],
- ['advances', 'advance', 50],
- ['travels', 'travel', 50],
- ['matures', 'mature', 50],
- ['earns', 'earn', 50],
- ['reiterates', 'reiterate', 49],
- ['progresses', 'progress', 49],
- ['adheres', 'adhere', 49],
- ['calculates', 'calculate', 49],
- ['affords', 'afford', 49],
- ['accommodates', 'accommodate', 49],
- ['initiates', 'initiate', 49],
- ['transports', 'transport', 48],
- ['wins', 'win', 48],
- ['insists', 'insist', 48],
- ['underlines', 'underline', 48],
- ['endorses', 'endorse', 48],
- ['proceeds', 'proceed', 48],
- ['contrasts', 'contrast', 48],
- ['attacks', 'attack', 48],
- ['posts', 'post', 47],
- ['resembles', 'resemble', 47],
- ['tests', 'test', 47],
- ['prevails', 'prevail', 47],
- ['envisions', 'envision', 47],
- ['infects', 'infect', 47],
- ['cruises', 'cruise', 46],
- ['diminishes', 'diminish', 46],
- ['loses', 'lose', 46],
- ['undergoes', 'undergo', 46],
- ['subsidizes', 'subsidize', 46],
- ['styles', 'style', 46],
- ['conveys', 'convey', 45],
- ['empowers', 'empower', 45],
- ['advocates', 'advocate', 45],
- ['stays', 'stay', 45],
- ['classifies', 'classify', 45],
- ['interacts', 'interact', 44],
- ['enforces', 'enforce', 44],
- ['signifies', 'signify', 44],
- ['interprets', 'interpret', 44],
- ['asserts', 'assert', 44],
- ['arranges', 'arrange', 44],
- ['portrays', 'portray', 44],
- ['prizes', 'prize', 44],
- ['assures', 'assure', 43],
- ['disclaims', 'disclaim', 43],
- ['undermines', 'undermine', 43],
- ['converts', 'convert', 42],
- ['hires', 'hire', 42],
- ['maximizes', 'maximize', 42],
- ['licenses', 'license', 42],
- ['appoints', 'appoint', 42],
- ['accelerates', 'accelerate', 42],
- ['slows', 'slow', 42],
- ['finishes', 'finish', 42],
- ['warrants', 'warrant', 42],
- ['violates', 'violate', 42],
- ['discovers', 'discover', 42],
- ['hears', 'hear', 41],
- ['lags', 'lag', 41],
- ['symbolizes', 'symbolize', 41],
- ['underlies', 'underlie', 41],
- ['accrues', 'accrue', 41],
- ['characterizes', 'characterize', 40],
- ['contravenes', 'contravene', 40],
- ['admits', 'admit', 40],
- ['consumes', 'consume', 40],
- ['survives', 'survive', 39],
- ['inspires', 'inspire', 39],
- ['registers', 'register', 39],
- ['succeeds', 'succeed', 39],
- ['compiles', 'compile', 39],
- ['expenditures', 'expenditure', 39],
- ['devotes', 'devote', 39],
- ['entitles', 'entitle', 39],
- ['denies', 'deny', 39],
- ['triggers', 'trigger', 39],
- ['disagrees', 'disagree', 38],
- ['alters', 'alter', 38],
- ['impedes', 'impede', 38],
- ['unveils', 'unveil', 38],
- ['questions', 'question', 37],
- ['revolves', 'revolve', 37],
- ['discourages', 'discourage', 37],
- ['secures', 'secure', 37],
- ['edits', 'edit', 37],
- ['unites', 'unite', 37],
- ['suspects', 'suspect', 37],
- ['thanks', 'thank', 36],
- ['prescribes', 'prescribe', 36],
- ['tours', 'tour', 36],
- ['owes', 'owe', 36],
- ['licences', 'licence', 36],
- ['unfolds', 'unfold', 36],
- ['comments', 'comment', 36],
- ['strikes', 'strike', 36],
- ['attains', 'attain', 36],
- ['infringes', 'infringe', 35],
- ['cooperates', 'cooperate', 35],
- ['simplifies', 'simplify', 35],
- ['regrets', 'regret', 35],
- ['flies', 'fly', 35],
- ['averages', 'average', 35],
- ['touches', 'touch', 35],
- ['applauds', 'applaud', 35],
- ['compensates', 'compensate', 35],
- ['supplements', 'supplement', 35],
- ['sizes', 'size', 35],
- ['forwards', 'forward', 34],
- ['analyses', 'analyse', 34],
- ['divides', 'divide', 34],
- ['dictates', 'dictate', 34],
- ['inhibits', 'inhibit', 34],
- ['reproduces', 'reproduce', 34],
- ['weighs', 'weigh', 34],
- ['rewards', 'reward', 34],
- ['exposes', 'expose', 34],
- ['withdraws', 'withdraw', 34],
- ['predominates', 'predominate', 34],
- ['boosts', 'boost', 33],
- ['destroys', 'destroy', 33],
- ['disciplines', 'discipline', 33],
- ['consolidates', 'consolidate', 33],
- ['approximates', 'approximate', 32],
- ['elects', 'elect', 32],
- ['trains', 'train', 32],
- ['shapes', 'shape', 32],
- ['educates', 'educate', 32],
- ['bases', 'base', 32],
- ['codes', 'code', 32],
- ['attests', 'attest', 32],
- ['ages', 'age', 31],
- ['rejects', 'reject', 31],
- ['stops', 'stop', 31],
- ['listens', 'listen', 31],
- ['saves', 'save', 31],
- ['figures', 'figure', 31],
- ['commends', 'commend', 31],
- ['commemorates', 'commemorate', 31],
- ['parts', 'part', 31],
- ['graduates', 'graduate', 30],
- ['motivates', 'motivate', 30],
- ['sustains', 'sustain', 30],
- ['ignores', 'ignore', 30],
- ['obliges', 'oblige', 30],
- ['flocks', 'flock', 30],
- ['effects', 'effect', 29],
- ['warns', 'warn', 29],
- ['bodes', 'bode', 29],
- ['recognises', 'recognise', 29],
- ['gains', 'gain', 29],
- ['positions', 'position', 29],
- ['liaises', 'liaise', 29],
- ['transforms', 'transform', 29],
- ['retires', 'retire', 29],
- ['exempts', 'exempt', 29],
- ['accomplishes', 'accomplish', 29],
- ['recruits', 'recruit', 29],
- ['underpins', 'underpin', 29],
- ['fulfils', 'fulfil', 28],
- ['perceives', 'perceive', 28],
- ['restores', 'restore', 28],
- ['broadens', 'broaden', 28],
- ['declines', 'decline', 28],
- ['accumulates', 'accumulate', 28],
- ['practises', 'practise', 27],
- ['alerts', 'alert', 27],
- ['congratulates', 'congratulate', 27],
- ['shifts', 'shift', 27],
- ['resonates', 'resonate', 27],
- ['maps', 'map', 27],
- ['surveys', 'survey', 27],
- ['sounds', 'sound', 27],
- ['learns', 'learn', 27],
- ['intervenes', 'intervene', 27],
- ['induces', 'induce', 27],
- ['hinders', 'hinder', 27],
- ['streamlines', 'streamline', 27],
- ['searches', 'search', 26],
- ['committees', 'committee', 26],
- ['outweighs', 'outweigh', 26],
- ['traces', 'trace', 26],
- ['interferes', 'interfere', 26],
- ['ents', 'ent', 26],
- ['weakens', 'weaken', 26],
- ['skirts', 'skirt', 26],
- ['risks', 'risk', 26],
- ['reimburses', 'reimburse', 25],
- ['cares', 'care', 25],
- ['finances', 'finance', 25],
- ['separates', 'separate', 25],
- ['hurts', 'hurt', 25],
- ['supervises', 'supervise', 25],
- ['stretches', 'stretch', 25],
- ['charts', 'chart', 25],
- ['complicates', 'complicate', 25],
- ['upholds', 'uphold', 25],
- ['remits', 'remit', 25],
- ['renews', 'renew', 25],
- ['excels', 'excel', 24],
- ['checks', 'check', 24],
- ['packages', 'package', 24],
- ['trips', 'trip', 24],
- ['likes', 'like', 24],
- ['instructs', 'instruct', 24],
- ['tubes', 'tube', 24],
- ['disappears', 'disappear', 24],
- ['presses', 'press', 24],
- ['exerts', 'exert', 23],
- ['transcends', 'transcend', 23],
- ['videotapes', 'videotape', 23],
- ['factors', 'factor', 23],
- ['reacts', 'react', 23],
- ['mixes', 'mix', 23],
- ['envisages', 'envisage', 23],
- ['sheds', 'shed', 23],
- ['closes', 'close', 23],
- ['relieves', 'relieve', 23],
- ['stabilizes', 'stabilize', 23],
- ['functions', 'function', 22],
- ['notices', 'notice', 22],
- ['catalogues', 'catalogue', 22],
- ['surrounds', 'surround', 22],
- ['inquires', 'inquire', 22],
- ['briefs', 'brief', 22],
- ['blouses', 'blouse', 22],
- ['resolves', 'resolve', 21],
- ['solicits', 'solicit', 21],
- ['surpasses', 'surpass', 21],
- ['hits', 'hit', 21],
- ['caters', 'cater', 21],
- ['recovers', 'recover', 21],
- ['purports', 'purport', 21],
- ['farms', 'farm', 21],
- ['aids', 'aid', 21],
- ['cultures', 'culture', 21],
- ['ties', 'tie', 21],
- ['presupposes', 'presuppose', 20],
- ['endeavours', 'endeavour', 20],
- ['widens', 'widen', 20],
- ['doubles', 'double', 20],
- ['suits', 'suit', 20],
- ['interests', 'interest', 20],
- ['thrives', 'thrive', 20],
- ['crafts', 'craft', 20],
- ['struggles', 'struggle', 20],
- ['furthers', 'further', 20],
- ['greets', 'greet', 20],
- ['proclaims', 'proclaim', 20],
- ['subjects', 'subject', 20],
- ['blocks', 'block', 20],
- ['interviews', 'interview', 20],
- ['unloads', 'unload', 20],
- ['clamps', 'clamp', 20],
- ['levies', 'levy', 20],
- ['lectures', 'lecture', 20],
- ['munitions', 'munition', 20],
- ['prints', 'print', 19],
- ['correlates', 'correlate', 19],
- ['walks', 'walk', 19],
- ['hinges', 'hinge', 19],
- ['springs', 'spring', 19],
- ['nurtures', 'nurture', 19],
- ['quotes', 'quote', 19],
- ['enacts', 'enact', 19],
- ['screens', 'screen', 19],
- ['leases', 'lease', 19],
- ['counsels', 'counsel', 19],
- ['concurs', 'concur', 19],
- ['lessons', 'lesson', 19],
- ['absorbs', 'absorb', 19],
- ['lambs', 'lamb', 19],
- ['manifests', 'manifest', 19],
- ['reprints', 'reprint', 19],
- ['optimizes', 'optimize', 18],
- ['routes', 'route', 18],
- ['prides', 'pride', 18],
- ['contracts', 'contract', 18],
- ['equates', 'equate', 18],
- ['types', 'type', 18],
- ['tables', 'table', 18],
- ['remembers', 'remember', 18],
- ['loves', 'love', 18],
- ['adapts', 'adapt', 18],
- ['replies', 'reply', 18],
- ['delineates', 'delineate', 18],
- ['drains', 'drain', 18],
- ['beetles', 'beetle', 18],
- ['bridges', 'bridge', 18],
- ['merits', 'merit', 18],
- ['screws', 'screw', 18],
- ['shakes', 'shake', 17],
- ['tops', 'top', 17],
- ['institutes', 'institute', 17],
- ['categorizes', 'categorize', 17],
- ['trails', 'trail', 17],
- ['desires', 'desire', 17],
- ['contents', 'content', 17],
- ['narrows', 'narrow', 17],
- ['executes', 'execute', 17],
- ['repeats', 'repeat', 17],
- ['sports', 'sport', 17],
- ['echoes', 'echo', 17],
- ['erodes', 'erode', 17],
- ['casts', 'cast', 17],
- ['connotes', 'connote', 17],
- ['fluctuates', 'fluctuate', 17],
- ['imparts', 'impart', 17],
- ['objects', 'object', 17],
- ['replicates', 'replicate', 17],
- ['hampers', 'hamper', 17],
- ['centers', 'center', 16],
- ['picks', 'pick', 16],
- ['capitalizes', 'capitalize', 16],
- ['differentiates', 'differentiate', 16],
- ['commissions', 'commission', 16],
- ['dedicates', 'dedicate', 16],
- ['trades', 'trade', 16],
- ['overcomes', 'overcome', 16],
- ['circumvents', 'circumvent', 16],
- ['detects', 'detect', 16],
- ['disposes', 'dispose', 16],
- ['opposes', 'oppose', 16],
- ['prompts', 'prompt', 16],
- ['borrows', 'borrow', 16],
- ['modifies', 'modify', 16],
- ['conserves', 'conserve', 16],
- ['mitigates', 'mitigate', 16],
- ['researches', 'research', 15],
- ['uncovers', 'uncover', 15],
- ['depreciates', 'depreciate', 15],
- ['encounters', 'encounter', 15],
- ['favors', 'favor', 15],
- ['fuels', 'fuel', 15],
- ['entertains', 'entertain', 15],
- ['pushes', 'push', 15],
- ['aspires', 'aspire', 15],
- ['subscribes', 'subscribe', 15],
- ['exacerbates', 'exacerbate', 15],
- ['settles', 'settle', 15],
- ['subsists', 'subsist', 15],
- ['misses', 'miss', 15],
- ['salts', 'salt', 15],
- ['simulates', 'simulate', 14],
- ['advertises', 'advertise', 14],
- ['rules', 'rule', 14],
- ['activates', 'activate', 14],
- ['appeals', 'appeal', 14],
- ['talks', 'talk', 14],
- ['damages', 'damage', 14],
- ['reverses', 'reverse', 14],
- ['pulls', 'pull', 14],
- ['assembles', 'assemble', 14],
- ['bestows', 'bestow', 14],
- ['contemplates', 'contemplate', 14],
- ['wears', 'wear', 14],
- ['elaborates', 'elaborate', 14],
- ['discounts', 'discount', 14],
- ['courses', 'course', 14],
- ['watches', 'watch', 14],
- ['mediates', 'mediate', 14],
- ['frames', 'frame', 14],
- ['cops', 'cop', 14],
- ['jackets', 'jacket', 14],
- ['begs', 'beg', 13],
- ['tools', 'tool', 13],
- ['sites', 'site', 13],
- ['recounts', 'recount', 13],
- ['masks', 'mask', 13],
- ['evokes', 'evoke', 13],
- ['surfaces', 'surface', 13],
- ['eases', 'ease', 13],
- ['tiers', 'tier', 13],
- ['paints', 'paint', 13],
- ['logs', 'log', 13],
- ['frees', 'free', 13],
- ['compounds', 'compound', 13],
- ['marries', 'marry', 13],
- ['derogates', 'derogate', 13],
- ['impairs', 'impair', 13],
- ['disrupts', 'disrupt', 13],
- ['corrects', 'correct', 13],
- ['defends', 'defend', 13],
- ['quantifies', 'quantify', 13],
- ['foresees', 'foresee', 13],
- ['streams', 'stream', 13],
- ['transacts', 'transact', 13],
- ['constrains', 'constrain', 13],
- ['exits', 'exit', 13],
- ['looms', 'loom', 13],
- ['mails', 'mail', 13],
- ['stages', 'stage', 13],
- ['labels', 'label', 13],
- ['hooks', 'hook', 13],
- ['dresses', 'dress', 13],
- ['shorts', 'short', 13],
- ['mars', 'mar', 12],
- ['cautions', 'caution', 12],
- ['plugs', 'plug', 12],
- ['convenes', 'convene', 12],
- ['forbids', 'forbid', 12],
- ['rents', 'rent', 12],
- ['speeds', 'speed', 12],
- ['intersects', 'intersect', 12],
- ['deprives', 'deprive', 12],
- ['testifies', 'testify', 12],
- ['formulates', 'formulate', 12],
- ['resigns', 'resign', 12],
- ['neglects', 'neglect', 12],
- ['corroborates', 'corroborate', 12],
- ['substantiates', 'substantiate', 12],
- ['spells', 'spell', 12],
- ['degrades', 'degrade', 12],
- ['inspects', 'inspect', 12],
- ['combs', 'comb', 12],
- ['worsens', 'worsen', 12],
- ['grains', 'grain', 12],
- ['purposes', 'purpose', 12],
- ['chapters', 'chapter', 12],
- ['saws', 'saw', 12],
- ['precedes', 'precede', 11],
- ['radios', 'radio', 11],
- ['prises', 'prise', 11],
- ['deploys', 'deploy', 11],
- ['injects', 'inject', 11],
- ['awaits', 'await', 11],
- ['fields', 'field', 11],
- ['summarises', 'summarise', 11],
- ['behaves', 'behave', 11],
- ['beats', 'beat', 11],
- ['pairs', 'pair', 11],
- ['boils', 'boil', 11],
- ['senses', 'sense', 11],
- ['accords', 'accord', 11],
- ['culminates', 'culminate', 11],
- ['structures', 'structure', 11],
- ['mobilizes', 'mobilize', 11],
- ['opts', 'opt', 11],
- ['budgets', 'budget', 11],
- ['equips', 'equip', 11],
- ['rots', 'rot', 11],
- ['privileges', 'privilege', 11],
- ['switches', 'switch', 11],
- ['ships', 'ship', 11],
- ['ensues', 'ensue', 11],
- ['outstrips', 'outstrip', 11],
- ['posits', 'posit', 11],
- ['confronts', 'confront', 11],
- ['diverts', 'divert', 11],
- ['honors', 'honor', 11],
- ['antiques', 'antique', 11],
- ['baffles', 'baffle', 11],
- ['gloves', 'glove', 11],
- ['enlists', 'enlist', 10],
- ['parties', 'party', 10],
- ['filters', 'filter', 10],
- ['stores', 'store', 10],
- ['encapsulates', 'encapsulate', 10],
- ['scales', 'scale', 10],
- ['insures', 'insure', 10],
- ['heats', 'heat', 10],
- ['bars', 'bar', 10],
- ['compromises', 'compromise', 10],
- ['exploits', 'exploit', 10],
- ['washes', 'wash', 10],
- ['cultivates', 'cultivate', 10],
- ['deepens', 'deepen', 10],
- ['praises', 'praise', 10],
- ['validates', 'validate', 10],
- ['upgrades', 'upgrade', 10],
- ['mimics', 'mimic', 10],
- ['abrogates', 'abrogate', 10],
- ['supposes', 'suppose', 10],
- ['detracts', 'detract', 10],
- ['predates', 'predate', 10],
- ['contradicts', 'contradict', 10],
- ['images', 'image', 10],
- ['soils', 'soil', 10],
- ['calves', 'calve', 10],
- ['dries', 'dry', 10],
- ['infests', 'infest', 10],
- ['strips', 'strip', 10],
- ['invoices', 'invoice', 10],
- ['disburses', 'disburse', 10],
- ['distorts', 'distort', 10],
- ['kernels', 'kernel', 10],
- ['deteriorates', 'deteriorate', 10],
- ['aggregates', 'aggregate', 10],
- ['nourishes', 'nourish', 10],
- ['encrypts', 'encrypt', 10],
- ['afflicts', 'afflict', 10],
- ['yarns', 'yarn', 10],
- ['burns', 'burn', 9],
- ['chronicles', 'chronicle', 9],
- ['amalgamates', 'amalgamate', 9],
- ['solves', 'solve', 9],
- ['partners', 'partner', 9],
- ['refines', 'refine', 9],
- ['conjures', 'conjure', 9],
- ['overlooks', 'overlook', 9],
- ['intensifies', 'intensify', 9],
- ['aliments', 'aliment', 9],
- ['lifts', 'lift', 9],
- ['gears', 'gear', 9],
- ['trends', 'trend', 9],
- ['salutes', 'salute', 9],
- ['isolates', 'isolate', 9],
- ['offends', 'offend', 9],
- ['doubts', 'doubt', 9],
- ['paves', 'pave', 9],
- ['commands', 'command', 9],
- ['drafts', 'draft', 9],
- ['inserts', 'insert', 9],
- ['requisitions', 'requisition', 9],
- ['crops', 'crop', 9],
- ['berries', 'berry', 9],
- ['suppresses', 'suppress', 9],
- ['cases', 'case', 9],
- ['harms', 'harm', 9],
- ['caps', 'cap', 9],
- ['diffuses', 'diffuse', 9],
- ['seals', 'seal', 9],
- ['defers', 'defer', 9],
- ['intercepts', 'intercept', 9],
- ['clears', 'clear', 9],
- ['nets', 'net', 9],
- ['backs', 'back', 9],
- ['copies', 'copy', 9],
- ['bills', 'bill', 9],
- ['revises', 'revise', 9],
- ['tutors', 'tutor', 9],
- ['fears', 'fear', 9],
- ['grades', 'grade', 9],
- ['reinvests', 'reinvest', 8],
- ['outpaces', 'outpace', 8],
- ['abounds', 'abound', 8],
- ['distils', 'distil', 8],
- ['reasons', 'reason', 8],
- ['disputes', 'dispute', 8],
- ['donates', 'donate', 8],
- ['evaporates', 'evaporate', 8],
- ['materializes', 'materialize', 8],
- ['stars', 'star', 8],
- ['channels', 'channel', 8],
- ['sums', 'sum', 8],
- ['permeates', 'permeate', 8],
- ['packs', 'pack', 8],
- ['installs', 'install', 8],
- ['overrides', 'override', 8],
- ['defeats', 'defeat', 8],
- ['medals', 'medal', 8],
- ['withholds', 'withhold', 8],
- ['pledges', 'pledge', 8],
- ['rolls', 'roll', 8],
- ['conceals', 'conceal', 8],
- ['displaces', 'displace', 8],
- ['outperforms', 'outperform', 8],
- ['emits', 'emit', 8],
- ['welds', 'weld', 8],
- ['bands', 'band', 8],
- ['conflicts', 'conflict', 8],
- ['formalizes', 'formalize', 8],
- ['oils', 'oil', 8],
- ['slugs', 'slug', 8],
- ['collapses', 'collapse', 8],
- ['catches', 'catch', 8],
- ['repays', 'repay', 8],
- ['duplicates', 'duplicate', 8],
- ['lessens', 'lessen', 8],
- ['interchanges', 'interchange', 8],
- ['compels', 'compel', 8],
- ['rows', 'row', 8],
- ['augments', 'augment', 8],
- ['postulates', 'postulate', 8],
- ['complains', 'complain', 8],
- ['consents', 'consent', 8],
- ['navigates', 'navigate', 8],
- ['chats', 'chat', 8],
- ['scans', 'scan', 8],
- ['shocks', 'shock', 8],
- ['suspends', 'suspend', 8],
- ['circulates', 'circulate', 8],
- ['wonders', 'wonder', 8],
- ['airs', 'air', 8],
- ['proscribes', 'proscribe', 8],
- ['conditions', 'condition', 8],
- ['games', 'game', 8],
- ['nominates', 'nominate', 8],
- ['detains', 'detain', 8],
- ['spills', 'spill', 7],
- ['embarks', 'embark', 7],
- ['orders', 'order', 7],
- ['kicks', 'kick', 7],
- ['rates', 'rate', 7],
- ['stews', 'stew', 7],
- ['reaps', 'reap', 7],
- ['avails', 'avail', 7],
- ['descends', 'descend', 7],
- ['remarks', 'remark', 7],
- ['innovates', 'innovate', 7],
- ['disperses', 'disperse', 7],
- ['constructs', 'construct', 7],
- ['disables', 'disable', 7],
- ['cleans', 'clean', 7],
- ['presumes', 'presume', 7],
- ['invokes', 'invoke', 7],
- ['fixes', 'fix', 7],
- ['sprouts', 'sprout', 7],
- ['sacrifices', 'sacrifice', 7],
- ['groups', 'group', 7],
- ['codifies', 'codify', 7],
- ['convicts', 'convict', 7],
- ['locks', 'lock', 7],
- ['teams', 'team', 7],
- ['multiplies', 'multiply', 7],
- ['remedies', 'remedy', 7],
- ['items', 'item', 7],
- ['copyrights', 'copyright', 7],
- ['fees', 'fee', 7],
- ['waives', 'waive', 7],
- ['elicits', 'elicit', 7],
- ['cancels', 'cancel', 7],
- ['pastures', 'pasture', 7],
- ['blights', 'blight', 7],
- ['deposits', 'deposit', 7],
- ['predisposes', 'predispose', 7],
- ['omits', 'omit', 7],
- ['counters', 'counter', 7],
- ['solidifies', 'solidify', 7],
- ['tolerates', 'tolerate', 7],
- ['empties', 'empty', 7],
- ['dampens', 'dampen', 7],
- ['curves', 'curve', 7],
- ['tackles', 'tackle', 7],
- ['rotates', 'rotate', 7],
- ['disadvantages', 'disadvantage', 7],
- ['reconciles', 'reconcile', 7],
- ['legislates', 'legislate', 7],
- ['provisions', 'provision', 7],
- ['pervades', 'pervade', 7],
- ['condemns', 'condemn', 7],
- ['dovetails', 'dovetail', 7],
- ['undercuts', 'undercut', 7],
- ['mounts', 'mount', 7],
- ['penalizes', 'penalize', 7],
- ['safeguards', 'safeguard', 7],
- ['entrenches', 'entrench', 7],
- ['authenticates', 'authenticate', 7],
- ['brevets', 'brevet', 7],
- ['adjudicates', 'adjudicate', 7],
- ['pads', 'pad', 7],
- ['rescinds', 'rescind', 7],
- ['stamps', 'stamp', 7],
- ['consigns', 'consign', 7],
- ['hats', 'hat', 7],
- ['halts', 'halt', 7],
- ['pillars', 'pillar', 7],
- ['practices', 'practice', 6],
- ['emanates', 'emanate', 6],
- ['retrofits', 'retrofit', 6],
- ['blends', 'blend', 6],
- ['repairs', 'repair', 6],
- ['retrieves', 'retrieve', 6],
- ['abandons', 'abandon', 6],
- ['names', 'name', 6],
- ['redistributes', 'redistribute', 6],
- ['automates', 'automate', 6],
- ['excites', 'excite', 6],
- ['tightens', 'tighten', 6],
- ['softens', 'soften', 6],
- ['fires', 'fire', 6],
- ['nears', 'near', 6],
- ['articles', 'article', 6],
- ['hangs', 'hang', 6],
- ['spurs', 'spur', 6],
- ['escapes', 'escape', 6],
- ['tips', 'tip', 6],
- ['throws', 'throw', 6],
- ['hails', 'hail', 6],
- ['sings', 'sing', 6],
- ['furnishes', 'furnish', 6],
- ['smiles', 'smile', 6],
- ['reverts', 'revert', 6],
- ['bypasses', 'bypass', 6],
- ['votes', 'vote', 6],
- ['harbours', 'harbour', 6],
- ['tailors', 'tailor', 6],
- ['proteins', 'protein', 6],
- ['resins', 'resin', 6],
- ['invades', 'invade', 6],
- ['escalates', 'escalate', 6],
- ['deters', 'deter', 6],
- ['resists', 'resist', 6],
- ['powers', 'power', 6],
- ['instills', 'instill', 6],
- ['audits', 'audit', 6],
- ['sands', 'sand', 6],
- ['gauges', 'gauge', 6],
- ['neighbours', 'neighbour', 6],
- ['synthesizes', 'synthesize', 6],
- ['voices', 'voice', 6],
- ['abides', 'abide', 6],
- ['earmarks', 'earmark', 6],
- ['fruits', 'fruit', 6],
- ['ducks', 'duck', 6],
- ['pods', 'pod', 6],
- ['shoots', 'shoot', 6],
- ['shrinks', 'shrink', 6],
- ['splits', 'split', 6],
- ['rings', 'ring', 6],
- ['nuts', 'nut', 6],
- ['sponges', 'sponge', 6],
- ['crushes', 'crush', 6],
- ['penetrates', 'penetrate', 6],
- ['vests', 'vest', 6],
- ['borders', 'border', 6],
- ['accentuates', 'accentuate', 6],
- ['heralds', 'herald', 6],
- ['obeys', 'obey', 6],
- ['parallels', 'parallel', 6],
- ['levers', 'lever', 6],
- ['rights', 'right', 6],
- ['hogs', 'hog', 6],
- ['steers', 'steer', 6],
- ['surprises', 'surprise', 6],
- ['jeopardizes', 'jeopardize', 6],
- ['infuses', 'infuse', 6],
- ['merges', 'merge', 6],
- ['dissipates', 'dissipate', 6],
- ['elapses', 'elapse', 6],
- ['fins', 'fin', 6],
- ['discriminates', 'discriminate', 6],
- ['seizes', 'seize', 6],
- ['revitalizes', 'revitalize', 6],
- ['enlightens', 'enlighten', 6],
- ['coproduces', 'coproduce', 6],
- ['formats', 'format', 6],
- ['suffices', 'suffice', 6],
- ['revokes', 'revoke', 6],
- ['programs', 'program', 6],
- ['scores', 'score', 6],
- ['inaugurates', 'inaugurate', 6],
- ['boards', 'board', 6],
- ['sensitizes', 'sensitize', 6],
- ['fuses', 'fuse', 6],
- ['pages', 'page', 6],
- ['demeans', 'demean', 6],
- ['dogs', 'dog', 6],
- ['expedites', 'expedite', 6],
- ['disorders', 'disorder', 6],
- ['plates', 'plate', 6],
- ['alloys', 'alloy', 6],
- ['bits', 'bit', 6],
- ['slats', 'slat', 6],
- ['relaunches', 'relaunch', 6],
- ['circumscribes', 'circumscribe', 5],
- ['mingles', 'mingle', 5],
- ['fairs', 'fair', 5],
- ['centralizes', 'centralize', 5],
- ['deletes', 'delete', 5],
- ['breaches', 'breach', 5],
- ['procures', 'procure', 5],
- ['seats', 'seat', 5],
- ['skews', 'skew', 5],
- ['interrupts', 'interrupt', 5],
- ['worries', 'worry', 5],
- ['cycles', 'cycle', 5],
- ['underestimates', 'underestimate', 5],
- ['probes', 'probe', 5],
- ['cools', 'cool', 5],
- ['illuminates', 'illuminate', 5],
- ['funnels', 'funnel', 5],
- ['fascinates', 'fascinate', 5],
- ['windows', 'window', 5],
- ['inspectors', 'inspector', 5],
- ['floats', 'float', 5],
- ['adorns', 'adorn', 5],
- ['oxidizes', 'oxidize', 5],
- ['cherishes', 'cherish', 5],
- ['sanctions', 'sanction', 5],
- ['obstructs', 'obstruct', 5],
- ['founds', 'found', 5],
- ['breathes', 'breathe', 5],
- ['epitomizes', 'epitomize', 5],
- ['endures', 'endure', 5],
- ['cries', 'cry', 5],
- ['meters', 'meter', 5],
- ['champions', 'champion', 5],
- ['endangers', 'endanger', 5],
- ['contours', 'contour', 5],
- ['abstracts', 'abstract', 5],
- ['surrenders', 'surrender', 5],
- ['enrols', 'enrol', 5],
- ['sticks', 'stick', 5],
- ['overlays', 'overlay', 5],
- ['cows', 'cow', 5],
- ['bans', 'ban', 5],
- ['delays', 'delay', 5],
- ['eats', 'eat', 5],
- ['warms', 'warm', 5],
- ['pellets', 'pellet', 5],
- ['wafers', 'wafer', 5],
- ['depresses', 'depress', 5],
- ['blurs', 'blur', 5],
- ['deviates', 'deviate', 5],
- ['discharges', 'discharge', 5],
- ['scouts', 'scout', 5],
- ['vents', 'vent', 5],
- ['mills', 'mill', 5],
- ['bids', 'bid', 5],
- ['garners', 'garner', 5],
- ['understates', 'understate', 5],
- ['eggs', 'egg', 5],
- ['pens', 'pen', 5],
- ['recreates', 'recreate', 5],
- ['amplifies', 'amplify', 5],
- ['judges', 'judge', 5],
- ['models', 'model', 5],
- ['accesses', 'access', 5],
- ['environs', 'environ', 5],
- ['pins', 'pin', 5],
- ['implicates', 'implicate', 5],
- ['enshrines', 'enshrine', 5],
- ['engenders', 'engender', 5],
- ['spikes', 'spike', 5],
- ['deplores', 'deplore', 5],
- ['reorganizes', 'reorganize', 5],
- ['entrusts', 'entrust', 5],
- ['abuses', 'abuse', 5],
- ['comports', 'comport', 5],
- ['organises', 'organise', 5],
- ['warehouses', 'warehouse', 5],
- ['forges', 'forge', 5],
- ['dispenses', 'dispense', 5],
- ['prosecutes', 'prosecute', 5],
- ['scissors', 'scissor', 5],
- ['queries', 'query', 5],
- ['bastes', 'baste', 5],
- ['stuffs', 'stuff', 5],
- ['elucidates', 'elucidate', 5],
- ['ascribes', 'ascribe', 5],
- ['encodes', 'encode', 5],
- ['prolongs', 'prolong', 5],
- ['leans', 'lean', 4],
- ['negates', 'negate', 4],
- ['officers', 'officer', 4],
- ['graves', 'grave', 4],
- ['propositions', 'proposition', 4],
- ['shingles', 'shingle', 4],
- ['readies', 'ready', 4],
- ['weaves', 'weave', 4],
- ['ponders', 'ponder', 4],
- ['sorts', 'sort', 4],
- ['augurs', 'augur', 4],
- ['unlocks', 'unlock', 4],
- ['cements', 'cement', 4],
- ['locates', 'locate', 4],
- ['criticizes', 'criticize', 4],
- ['disturbs', 'disturb', 4],
- ['subcontracts', 'subcontract', 4],
- ['emphasises', 'emphasise', 4],
- ['trusts', 'trust', 4],
- ['relaxes', 'relax', 4],
- ['resorts', 'resort', 4],
- ['pumps', 'pump', 4],
- ['waits', 'wait', 4],
- ['vacations', 'vacation', 4],
- ['jumps', 'jump', 4],
- ['escorts', 'escort', 4],
- ['inflates', 'inflate', 4],
- ['melts', 'melt', 4],
- ['buckles', 'buckle', 4],
- ['recycles', 'recycle', 4],
- ['wraps', 'wrap', 4],
- ['blooms', 'bloom', 4],
- ['smells', 'smell', 4],
- ['loads', 'load', 4],
- ['sketches', 'sketch', 4],
- ['jokes', 'joke', 4],
- ['erases', 'erase', 4],
- ['dimensions', 'dimension', 4],
- ['concedes', 'concede', 4],
- ['defies', 'defy', 4],
- ['plants', 'plant', 4],
- ['presides', 'preside', 4],
- ['belies', 'belie', 4],
- ['hastens', 'hasten', 4],
- ['bankrupts', 'bankrupt', 4],
- ['discontinues', 'discontinue', 4],
- ['redirects', 'redirect', 4],
- ['firms', 'firm', 4],
- ['discredits', 'discredit', 4],
- ['pressures', 'pressure', 4],
- ['footnotes', 'footnote', 4],
- ['exchanges', 'exchange', 4],
- ['photocopies', 'photocopy', 4],
- ['photographs', 'photograph', 4],
- ['instances', 'instance', 4],
- ['colours', 'colour', 4],
- ['perpetuates', 'perpetuate', 4],
- ['trees', 'tree', 4],
- ['rejoins', 'rejoin', 4],
- ['pales', 'pale', 4],
- ['migrates', 'migrate', 4],
- ['pupates', 'pupate', 4],
- ['yellows', 'yellow', 4],
- ['parasitizes', 'parasitize', 4],
- ['ripens', 'ripen', 4],
- ['encloses', 'enclose', 4],
- ['heals', 'heal', 4],
- ['preys', 'prey', 4],
- ['forfeits', 'forfeit', 4],
- ['keys', 'key', 4],
- ['arouses', 'arouse', 4],
- ['endeavors', 'endeavor', 4],
- ['specialises', 'specialise', 4],
- ['waxes', 'wax', 4],
- ['dissolves', 'dissolve', 4],
- ['insulates', 'insulate', 4],
- ['traps', 'trap', 4],
- ['slopes', 'slope', 4],
- ['heightens', 'heighten', 4],
- ['shuts', 'shut', 4],
- ['franchises', 'franchise', 4],
- ['indexes', 'index', 4],
- ['ameliorates', 'ameliorate', 4],
- ['triples', 'triple', 4],
- ['catalyzes', 'catalyze', 4],
- ['regroups', 'regroup', 4],
- ['holidays', 'holiday', 4],
- ['converges', 'converge', 4],
- ['swaps', 'swap', 4],
- ['exhausts', 'exhaust', 4],
- ['supplants', 'supplant', 4],
- ['reconvenes', 'reconvene', 4],
- ['modernizes', 'modernize', 4],
- ['leafs', 'leaf', 4],
- ['shines', 'shine', 4],
- ['familiarizes', 'familiarize', 4],
- ['tongues', 'tongue', 4],
- ['chances', 'chance', 4],
- ['numbers', 'number', 4],
- ['refrains', 'refrain', 4],
- ['fades', 'fade', 4],
- ['retails', 'retail', 4],
- ['ratifies', 'ratify', 4],
- ['alludes', 'allude', 4],
- ['enunciates', 'enunciate', 4],
- ['rouges', 'rouge', 4],
- ['embeds', 'embed', 4],
- ['decrypts', 'decrypt', 4],
- ['upsets', 'upset', 4],
- ['demotes', 'demote', 4],
- ['friends', 'friend', 4],
- ['wows', 'wow', 4],
- ['restates', 'restate', 4],
- ['conceives', 'conceive', 4],
- ['dwarfs', 'dwarf', 4],
- ['relocates', 'relocate', 4],
- ['infers', 'infer', 4],
- ['taboos', 'taboo', 4],
- ['expends', 'expend', 4],
- ['obligates', 'obligate', 4],
- ['combats', 'combat', 4],
- ['belittles', 'belittle', 4],
- ['conspires', 'conspire', 4],
- ['peoples', 'people', 4],
- ['conflates', 'conflate', 4],
- ['collates', 'collate', 4],
- ['shears', 'shear', 4],
- ['wheels', 'wheel', 4],
- ['conjugates', 'conjugate', 4],
- ['glazes', 'glaze', 4],
- ['taps', 'tap', 4],
- ['retorts', 'retort', 4],
- ['bottoms', 'bottom', 4],
- ['hikes', 'hike', 4],
- ['peddles', 'peddle', 4],
- ['mulls', 'mull', 4],
- ['rues', 'rue', 3],
- ['utilises', 'utilise', 3],
- ['pops', 'pop', 3],
- ['underwrites', 'underwrite', 3],
- ['stirs', 'stir', 3],
- ['aggravates', 'aggravate', 3],
- ['vies', 'vie', 3],
- ['sues', 'sue', 3],
- ['diverges', 'diverge', 3],
- ['situates', 'situate', 3],
- ['plots', 'plot', 3],
- ['billets', 'billet', 3],
- ['compliments', 'compliment', 3],
- ['pours', 'pour', 3],
- ['stocks', 'stock', 3],
- ['dares', 'dare', 3],
- ['skips', 'skip', 3],
- ['propagates', 'propagate', 3],
- ['breeds', 'breed', 3],
- ['typifies', 'typify', 3],
- ['liquefies', 'liquefy', 3],
- ['pinpoints', 'pinpoint', 3],
- ['winds', 'wind', 3],
- ['transpires', 'transpire', 3],
- ['disapproves', 'disapprove', 3],
- ['admires', 'admire', 3],
- ['gifts', 'gift', 3],
- ['finalizes', 'finalize', 3],
- ['floods', 'flood', 3],
- ['deducts', 'deduct', 3],
- ['prejudices', 'prejudice', 3],
- ['assents', 'assent', 3],
- ['revives', 'revive', 3],
- ['disqualifies', 'disqualify', 3],
- ['enquires', 'enquire', 3],
- ['refutes', 'refute', 3],
- ['pivots', 'pivot', 3],
- ['revisits', 'revisit', 3],
- ['calibrates', 'calibrate', 3],
- ['gasses', 'gas', 3],
- ['covenants', 'covenant', 3],
- ['supercedes', 'supercede', 3],
- ['harvests', 'harvest', 3],
- ['postpones', 'postpone', 3],
- ['reconsiders', 'reconsider', 3],
- ['invents', 'invent', 3],
- ['wipes', 'wipe', 3],
- ['confines', 'confine', 3],
- ['rekindles', 'rekindle', 3],
- ['fights', 'fight', 3],
- ['chains', 'chain', 3],
- ['enrolls', 'enroll', 3],
- ['rusts', 'rust', 3],
- ['manipulates', 'manipulate', 3],
- ['gouges', 'gouge', 3],
- ['germinates', 'germinate', 3],
- ['disintegrates', 'disintegrate', 3],
- ['obscures', 'obscure', 3],
- ['inhabits', 'inhabit', 3],
- ['sporulates', 'sporulate', 3],
- ['thickens', 'thicken', 3],
- ['coats', 'coat', 3],
- ['contaminates', 'contaminate', 3],
- ['fats', 'fat', 3],
- ['charters', 'charter', 3],
- ['bins', 'bin', 3],
- ['slices', 'slice', 3],
- ['thins', 'thin', 3],
- ['hives', 'hive', 3],
- ['depletes', 'deplete', 3],
- ['stations', 'station', 3],
- ['pits', 'pit', 3],
- ['closures', 'closure', 3],
- ['clogs', 'clog', 3],
- ['lengthens', 'lengthen', 3],
- ['needles', 'needle', 3],
- ['decomposes', 'decompose', 3],
- ['blankets', 'blanket', 3],
- ['corrodes', 'corrode', 3],
- ['stifles', 'stifle', 3],
- ['scares', 'scare', 3],
- ['hints', 'hint', 3],
- ['speculates', 'speculate', 3],
- ['frustrates', 'frustrate', 3],
- ['harmonizes', 'harmonize', 3],
- ['pools', 'pool', 3],
- ['tabulates', 'tabulate', 3],
- ['subsides', 'subside', 3],
- ['subtracts', 'subtract', 3],
- ['overstates', 'overstate', 3],
- ['characters', 'character', 3],
- ['paws', 'paw', 3],
- ['wages', 'wage', 3],
- ['resets', 'reset', 3],
- ['enumerates', 'enumerate', 3],
- ['peers', 'peer', 3],
- ['internalizes', 'internalize', 3],
- ['laughs', 'laugh', 3],
- ['coops', 'coop', 3],
- ['pretends', 'pretend', 3],
- ['errs', 'err', 3],
- ['allowances', 'allowance', 3],
- ['anchors', 'anchor', 3],
- ['weights', 'weight', 3],
- ['lunches', 'lunch', 3],
- ['checkers', 'checker', 3],
- ['redefines', 'redefine', 3],
- ['befits', 'befit', 3],
- ['disregards', 'disregard', 3],
- ['expertises', 'expertise', 3],
- ['spotlights', 'spotlight', 3],
- ['publicizes', 'publicize', 3],
- ['times', 'time', 3],
- ['premiers', 'premier', 3],
- ['champs', 'champ', 3],
- ['endows', 'endow', 3],
- ['symbols', 'symbol', 3],
- ['occasions', 'occasion', 3],
- ['lobbies', 'lobby', 3],
- ['refocuses', 'refocuse', 3],
- ['branches', 'branch', 3],
- ['dislikes', 'dislike', 3],
- ['freezes', 'freeze', 3],
- ['decodes', 'decode', 3],
- ['confounds', 'confound', 3],
- ['eludes', 'elude', 3],
- ['reasserts', 'reassert', 3],
- ['primes', 'prime', 3],
- ['relinquishes', 'relinquish', 3],
- ['overstocks', 'overstock', 3],
- ['excepts', 'except', 3],
- ['stalls', 'stall', 3],
- ['sails', 'sail', 3],
- ['arches', 'arch', 3],
- ['passages', 'passage', 3],
- ['recurs', 'recur', 3],
- ['trumps', 'trump', 3],
- ['frequents', 'frequent', 3],
- ['litigates', 'litigate', 3],
- ['abolishes', 'abolish', 3],
- ['defects', 'defect', 3],
- ['doses', 'dose', 3],
- ['chauffeurs', 'chauffeur', 3],
- ['teasels', 'teasel', 3],
- ['bitters', 'bitter', 3],
- ['rails', 'rail', 3],
- ['scrubs', 'scrub', 3],
- ['ornaments', 'ornament', 3],
- ['brackets', 'bracket', 3],
- ['traverses', 'traverse', 3],
- ['transits', 'transit', 3],
- ['excuses', 'excuse', 3],
- ['fulminates', 'fulminate', 3],
- ['torches', 'torch', 3],
- ['shovels', 'shovel', 3],
- ['eyelets', 'eyelet', 3],
- ['carillons', 'carillon', 3],
- ['garlands', 'garland', 3],
- ['reassures', 'reassure', 3],
- ['samples', 'sample', 3],
- ['resells', 'resell', 3],
- ['slates', 'slate', 3],
- ['referees', 'referee', 3],
- ['troubles', 'trouble', 3],
- ['inhales', 'inhale', 3],
- ['bullies', 'bully', 2],
- ['repeals', 'repeal', 2],
- ['quits', 'quit', 2],
- ['disobeys', 'disobey', 2],
- ['persuades', 'persuade', 2],
- ['reprises', 'reprise', 2],
- ['couches', 'couch', 2],
- ['disassociates', 'disassociate', 2],
- ['crashes', 'crash', 2],
+ ['are', 'is'],
+ ['has', 'have'],
+ ['provides', 'provide'],
+ ['does', 'do'],
+ ['includes', 'include'],
+ ['means', 'mean'],
+ ['requires', 'require'],
+ ['needs', 'need'],
+ ['continues', 'continue'],
+ ['supports', 'support'],
+ ['allows', 'allow'],
+ ['makes', 'make'],
+ ['represents', 'represent'],
+ ['follows', 'follow'],
+ ['remains', 'remain'],
+ ['offers', 'offer'],
+ ['indicates', 'indicate'],
+ ['appears', 'appear'],
+ ['applies', 'apply'],
+ ['contains', 'contain'],
+ ['shows', 'show'],
+ ['takes', 'take'],
+ ['says', 'say'],
+ ['suggests', 'suggest'],
+ ['recognizes', 'recognize'],
+ ['helps', 'help'],
+ ['works', 'work'],
+ ['reflects', 'reflect'],
+ ['involves', 'involve'],
+ ['consists', 'consist'],
+ ['gives', 'give'],
+ ['uses', 'use'],
+ ['exists', 'exist'],
+ ['presents', 'present'],
+ ['comes', 'come'],
+ ['agrees', 'agree'],
+ ['outlines', 'outline'],
+ ['refers', 'refer'],
+ ['becomes', 'become'],
+ ['aims', 'aim'],
+ ['focuses', 'focus'],
+ ['meets', 'meet'],
+ ['occurs', 'occur'],
+ ['recommends', 'recommend'],
+ ['plans', 'plan'],
+ ['promotes', 'promote'],
+ ['covers', 'cover'],
+ ['seems', 'seem'],
+ ['contributes', 'contribute'],
+ ['identifies', 'identify'],
+ ['relates', 'relate'],
+ ['receives', 'receive'],
+ ['describes', 'describe'],
+ ['ensures', 'ensure'],
+ ['addresses', 'address'],
+ ['encourages', 'encourage'],
+ ['explains', 'explain'],
+ ['serves', 'serve'],
+ ['sets', 'set'],
+ ['brings', 'bring'],
+ ['believes', 'believe'],
+ ['holds', 'hold'],
+ ['depends', 'depend'],
+ ['determines', 'determine'],
+ ['plays', 'play'],
+ ['states', 'state'],
+ ['produces', 'produce'],
+ ['seeks', 'seek'],
+ ['considers', 'consider'],
+ ['operates', 'operate'],
+ ['reports', 'report'],
+ ['enables', 'enable'],
+ ['leads', 'lead'],
+ ['constitutes', 'constitute'],
+ ['varies', 'vary'],
+ ['creates', 'create'],
+ ['maintains', 'maintain'],
+ ['goes', 'go'],
+ ['proposes', 'propose'],
+ ['increases', 'increase'],
+ ['demonstrates', 'demonstrate'],
+ ['notes', 'note'],
+ ['affects', 'affect'],
+ ['begins', 'begin'],
+ ['establishes', 'establish'],
+ ['exceeds', 'exceed'],
+ ['administers', 'administer'],
+ ['examines', 'examine'],
+ ['defines', 'define'],
+ ['wishes', 'wish'],
+ ['reduces', 'reduce'],
+ ['links', 'link'],
+ ['develops', 'develop'],
+ ['falls', 'fall'],
+ ['intends', 'intend'],
+ ['finds', 'find'],
+ ['highlights', 'highlight'],
+ ['assists', 'assist'],
+ ['processes', 'process'],
+ ['pays', 'pay'],
+ ['wants', 'want'],
+ ['causes', 'cause'],
+ ['tends', 'tend'],
+ ['builds', 'build'],
+ ['calls', 'call'],
+ ['illustrates', 'illustrate'],
+ ['permits', 'permit'],
+ ['expects', 'expect'],
+ ['facilitates', 'facilitate'],
+ ['reveals', 'reveal'],
+ ['looks', 'look'],
+ ['summarizes', 'summarize'],
+ ['reviews', 'review'],
+ ['adds', 'add'],
+ ['confirms', 'confirm'],
+ ['measures', 'measure'],
+ ['raises', 'raise'],
+ ['assumes', 'assume'],
+ ['fails', 'fail'],
+ ['acknowledges', 'acknowledge'],
+ ['happens', 'happen'],
+ ['comprises', 'comprise'],
+ ['prohibits', 'prohibit'],
+ ['conducts', 'conduct'],
+ ['improves', 'improve'],
+ ['faces', 'face'],
+ ['concludes', 'conclude'],
+ ['excludes', 'exclude'],
+ ['implies', 'imply'],
+ ['features', 'feature'],
+ ['extends', 'extend'],
+ ['controls', 'control'],
+ ['estimates', 'estimate'],
+ ['protects', 'protect'],
+ ['specifies', 'specify'],
+ ['manages', 'manage'],
+ ['participates', 'participate'],
+ ['relies', 'rely'],
+ ['forms', 'form'],
+ ['incorporates', 'incorporate'],
+ ['places', 'place'],
+ ['encompasses', 'encompass'],
+ ['acts', 'act'],
+ ['carries', 'carry'],
+ ['lies', 'lie'],
+ ['publishes', 'publish'],
+ ['generates', 'generate'],
+ ['delivers', 'deliver'],
+ ['lists', 'list'],
+ ['fosters', 'foster'],
+ ['leaves', 'leave'],
+ ['employs', 'employ'],
+ ['emphasizes', 'emphasize'],
+ ['starts', 'start'],
+ ['stands', 'stand'],
+ ['sells', 'sell'],
+ ['enhances', 'enhance'],
+ ['owns', 'own'],
+ ['claims', 'claim'],
+ ['costs', 'cost'],
+ ['responds', 'respond'],
+ ['feels', 'feel'],
+ ['announces', 'announce'],
+ ['hopes', 'hope'],
+ ['discusses', 'discuss'],
+ ['discloses', 'disclose'],
+ ['respects', 'respect'],
+ ['accounts', 'account'],
+ ['collects', 'collect'],
+ ['arises', 'arise'],
+ ['prevents', 'prevent'],
+ ['welcomes', 'welcome'],
+ ['undertakes', 'undertake'],
+ ['limits', 'limit'],
+ ['speaks', 'speak'],
+ ['sees', 'see'],
+ ['puts', 'put'],
+ ['accepts', 'accept'],
+ ['gets', 'get'],
+ ['runs', 'run'],
+ ['reaches', 'reach'],
+ ['ends', 'end'],
+ ['stipulates', 'stipulate'],
+ ['monitors', 'monitor'],
+ ['stems', 'stem'],
+ ['decides', 'decide'],
+ ['imposes', 'impose'],
+ ['compares', 'compare'],
+ ['targets', 'target'],
+ ['points', 'point'],
+ ['knows', 'know'],
+ ['commits', 'commit'],
+ ['differs', 'differ'],
+ ['ceases', 'cease'],
+ ['submits', 'submit'],
+ ['qualifies', 'qualify'],
+ ['benefits', 'benefit'],
+ ['values', 'value'],
+ ['chooses', 'choose'],
+ ['argues', 'argue'],
+ ['explores', 'explore'],
+ ['distributes', 'distribute'],
+ ['coordinates', 'coordinate'],
+ ['enters', 'enter'],
+ ['keeps', 'keep'],
+ ['sends', 'send'],
+ ['guarantees', 'guarantee'],
+ ['rests', 'rest'],
+ ['strengthens', 'strengthen'],
+ ['combines', 'combine'],
+ ['moves', 'move'],
+ ['retains', 'retain'],
+ ['draws', 'draw'],
+ ['prepares', 'prepare'],
+ ['marks', 'mark'],
+ ['strives', 'strive'],
+ ['advises', 'advise'],
+ ['authorizes', 'authorize'],
+ ['opens', 'open'],
+ ['arrives', 'arrive'],
+ ['awards', 'award'],
+ ['poses', 'pose'],
+ ['asks', 'ask'],
+ ['grants', 'grant'],
+ ['projects', 'project'],
+ ['directs', 'direct'],
+ ['pertains', 'pertain'],
+ ['files', 'file'],
+ ['replaces', 'replace'],
+ ['grows', 'grow'],
+ ['attracts', 'attract'],
+ ['results', 'result'],
+ ['regards', 'regard'],
+ ['supplies', 'supply'],
+ ['centres', 'centre'],
+ ['tells', 'tell'],
+ ['invests', 'invest'],
+ ['regulates', 'regulate'],
+ ['funds', 'fund'],
+ ['integrates', 'integrate'],
+ ['corresponds', 'correspond'],
+ ['performs', 'perform'],
+ ['attempts', 'attempt'],
+ ['complements', 'complement'],
+ ['matters', 'matter'],
+ ['introduces', 'introduce'],
+ ['oversees', 'oversee'],
+ ['concerns', 'concern'],
+ ['turns', 'turn'],
+ ['enjoys', 'enjoy'],
+ ['changes', 'change'],
+ ['references', 'reference'],
+ ['understands', 'understand'],
+ ['belongs', 'belong'],
+ ['resides', 'reside'],
+ ['challenges', 'challenge'],
+ ['implements', 'implement'],
+ ['releases', 'release'],
+ ['ranks', 'rank'],
+ ['extracts', 'extract'],
+ ['informs', 'inform'],
+ ['expires', 'expire'],
+ ['alleges', 'allege'],
+ ['invites', 'invite'],
+ ['assesses', 'assess'],
+ ['expands', 'expand'],
+ ['captures', 'capture'],
+ ['translates', 'translate'],
+ ['interns', 'intern'],
+ ['approves', 'approve'],
+ ['imports', 'import'],
+ ['dates', 'date'],
+ ['approaches', 'approach'],
+ ['celebrates', 'celebrate'],
+ ['governs', 'govern'],
+ ['reserves', 'reserve'],
+ ['issues', 'issue'],
+ ['fits', 'fit'],
+ ['evaluates', 'evaluate'],
+ ['feeds', 'feed'],
+ ['deals', 'deal'],
+ ['handles', 'handle'],
+ ['eliminates', 'eliminate'],
+ ['influences', 'influence'],
+ ['sits', 'sit'],
+ ['documents', 'document'],
+ ['engages', 'engage'],
+ ['lacks', 'lack'],
+ ['complies', 'comply'],
+ ['specializes', 'specialize'],
+ ['impacts', 'impact'],
+ ['matches', 'match'],
+ ['equals', 'equal'],
+ ['expresses', 'express'],
+ ['dies', 'die'],
+ ['visits', 'visit'],
+ ['organizes', 'organize'],
+ ['initiatives', 'initiative'],
+ ['bears', 'bear'],
+ ['rises', 'rise'],
+ ['confers', 'confer'],
+ ['entails', 'entail'],
+ ['achieves', 'achieve'],
+ ['obtains', 'obtain'],
+ ['exhibits', 'exhibit'],
+ ['hosts', 'host'],
+ ['exports', 'export'],
+ ['buys', 'buy'],
+ ['satisfies', 'satisfy'],
+ ['anticipates', 'anticipate'],
+ ['allocates', 'allocate'],
+ ['emerges', 'emerge'],
+ ['studies', 'study'],
+ ['spends', 'spend'],
+ ['conforms', 'conform'],
+ ['sections', 'section'],
+ ['acquires', 'acquire'],
+ ['flows', 'flow'],
+ ['weeds', 'weed'],
+ ['connects', 'connect'],
+ ['passes', 'pass'],
+ ['voyages', 'voyage'],
+ ['reads', 'read'],
+ ['steps', 'step'],
+ ['removes', 'remove'],
+ ['deems', 'deem'],
+ ['tracks', 'track'],
+ ['reinforces', 'reinforce'],
+ ['requests', 'request'],
+ ['exercises', 'exercise'],
+ ['lives', 'live'],
+ ['investigates', 'investigate'],
+ ['concentrates', 'concentrate'],
+ ['stresses', 'stress'],
+ ['launches', 'launch'],
+ ['favours', 'favour'],
+ ['contends', 'contend'],
+ ['consults', 'consult'],
+ ['transfers', 'transfer'],
+ ['restricts', 'restrict'],
+ ['signs', 'sign'],
+ ['embraces', 'embrace'],
+ ['sponsors', 'sponsor'],
+ ['underscores', 'underscore'],
+ ['evolves', 'evolve'],
+ ['attributes', 'attribute'],
+ ['completes', 'complete'],
+ ['reaffirms', 'reaffirm'],
+ ['assigns', 'assign'],
+ ['manufactures', 'manufacture'],
+ ['designs', 'design'],
+ ['occupies', 'occupy'],
+ ['pursues', 'pursue'],
+ ['overwinters', 'overwinter'],
+ ['overlaps', 'overlap'],
+ ['clarifies', 'clarify'],
+ ['promises', 'promise'],
+ ['derives', 'derive'],
+ ['drives', 'drive'],
+ ['programmes', 'programme'],
+ ['teaches', 'teach'],
+ ['urges', 'urge'],
+ ['honours', 'honour'],
+ ['tries', 'try'],
+ ['chairs', 'chair'],
+ ['aligns', 'align'],
+ ['originates', 'originate'],
+ ['designates', 'designate'],
+ ['balances', 'balance'],
+ ['heads', 'head'],
+ ['transmits', 'transmit'],
+ ['denotes', 'denote'],
+ ['guides', 'guide'],
+ ['views', 'view'],
+ ['reminds', 'remind'],
+ ['offsets', 'offset'],
+ ['amounts', 'amount'],
+ ['records', 'record'],
+ ['experiences', 'experience'],
+ ['deserves', 'deserve'],
+ ['stimulates', 'stimulate'],
+ ['predicts', 'predict'],
+ ['distinguishes', 'distinguish'],
+ ['decreases', 'decrease'],
+ ['supersedes', 'supersede'],
+ ['lasts', 'last'],
+ ['houses', 'house'],
+ ['affirms', 'affirm'],
+ ['fulfills', 'fulfill'],
+ ['demands', 'demand'],
+ ['certifies', 'certify'],
+ ['binds', 'bind'],
+ ['charges', 'charge'],
+ ['updates', 'update'],
+ ['refuses', 'refuse'],
+ ['minimizes', 'minimize'],
+ ['forces', 'force'],
+ ['displays', 'display'],
+ ['signals', 'signal'],
+ ['accompanies', 'accompany'],
+ ['analyzes', 'analyze'],
+ ['shares', 'share'],
+ ['embodies', 'embody'],
+ ['utilizes', 'utilize'],
+ ['collaborates', 'collaborate'],
+ ['disseminates', 'disseminate'],
+ ['justifies', 'justify'],
+ ['lends', 'lend'],
+ ['proves', 'prove'],
+ ['purchases', 'purchase'],
+ ['answers', 'answer'],
+ ['yields', 'yield'],
+ ['returns', 'return'],
+ ['breaks', 'break'],
+ ['dominates', 'dominate'],
+ ['competes', 'compete'],
+ ['realizes', 'realize'],
+ ['adopts', 'adopt'],
+ ['services', 'service'],
+ ['appreciates', 'appreciate'],
+ ['terminates', 'terminate'],
+ ['fills', 'fill'],
+ ['thinks', 'think'],
+ ['boasts', 'boast'],
+ ['communicates', 'communicate'],
+ ['ranges', 'range'],
+ ['departs', 'depart'],
+ ['threatens', 'threaten'],
+ ['treats', 'treat'],
+ ['possesses', 'possess'],
+ ['coincides', 'coincide'],
+ ['suffers', 'suffer'],
+ ['showcases', 'showcase'],
+ ['depicts', 'depict'],
+ ['cuts', 'cut'],
+ ['articulates', 'articulate'],
+ ['lays', 'lay'],
+ ['commences', 'commence'],
+ ['joins', 'join'],
+ ['negotiates', 'negotiate'],
+ ['notifies', 'notify'],
+ ['writes', 'write'],
+ ['credits', 'credit'],
+ ['markets', 'market'],
+ ['spreads', 'spread'],
+ ['broadcasts', 'broadcast'],
+ ['films', 'film'],
+ ['spans', 'span'],
+ ['selects', 'select'],
+ ['slips', 'slip'],
+ ['declares', 'declare'],
+ ['cites', 'cite'],
+ ['observes', 'observe'],
+ ['crosses', 'cross'],
+ ['renders', 'render'],
+ ['exemplifies', 'exemplify'],
+ ['totals', 'total'],
+ ['lowers', 'lower'],
+ ['forecasts', 'forecast'],
+ ['necessitates', 'necessitate'],
+ ['mandates', 'mandate'],
+ ['persists', 'persist'],
+ ['recalls', 'recall'],
+ ['counts', 'count'],
+ ['mentions', 'mention'],
+ ['climbs', 'climb'],
+ ['mirrors', 'mirror'],
+ ['preserves', 'preserve'],
+ ['lets', 'let'],
+ ['incurs', 'incur'],
+ ['avoids', 'avoid'],
+ ['gathers', 'gather'],
+ ['drops', 'drop'],
+ ['details', 'detail'],
+ ['adjusts', 'adjust'],
+ ['amends', 'amend'],
+ ['attaches', 'attach'],
+ ['kills', 'kill'],
+ ['contacts', 'contact'],
+ ['precludes', 'preclude'],
+ ['prefers', 'prefer'],
+ ['verifies', 'verify'],
+ ['enriches', 'enrich'],
+ ['attends', 'attend'],
+ ['advances', 'advance'],
+ ['travels', 'travel'],
+ ['matures', 'mature'],
+ ['earns', 'earn'],
+ ['reiterates', 'reiterate'],
+ ['progresses', 'progress'],
+ ['adheres', 'adhere'],
+ ['calculates', 'calculate'],
+ ['affords', 'afford'],
+ ['accommodates', 'accommodate'],
+ ['initiates', 'initiate'],
+ ['transports', 'transport'],
+ ['wins', 'win'],
+ ['insists', 'insist'],
+ ['underlines', 'underline'],
+ ['endorses', 'endorse'],
+ ['proceeds', 'proceed'],
+ ['contrasts', 'contrast'],
+ ['attacks', 'attack'],
+ ['posts', 'post'],
+ ['resembles', 'resemble'],
+ ['tests', 'test'],
+ ['prevails', 'prevail'],
+ ['envisions', 'envision'],
+ ['infects', 'infect'],
+ ['cruises', 'cruise'],
+ ['diminishes', 'diminish'],
+ ['loses', 'lose'],
+ ['undergoes', 'undergo'],
+ ['subsidizes', 'subsidize'],
+ ['styles', 'style'],
+ ['conveys', 'convey'],
+ ['empowers', 'empower'],
+ ['advocates', 'advocate'],
+ ['stays', 'stay'],
+ ['classifies', 'classify'],
+ ['interacts', 'interact'],
+ ['enforces', 'enforce'],
+ ['signifies', 'signify'],
+ ['interprets', 'interpret'],
+ ['asserts', 'assert'],
+ ['arranges', 'arrange'],
+ ['portrays', 'portray'],
+ ['prizes', 'prize'],
+ ['assures', 'assure'],
+ ['disclaims', 'disclaim'],
+ ['undermines', 'undermine'],
+ ['converts', 'convert'],
+ ['hires', 'hire'],
+ ['maximizes', 'maximize'],
+ ['licenses', 'license'],
+ ['appoints', 'appoint'],
+ ['accelerates', 'accelerate'],
+ ['slows', 'slow'],
+ ['finishes', 'finish'],
+ ['warrants', 'warrant'],
+ ['violates', 'violate'],
+ ['discovers', 'discover'],
+ ['hears', 'hear'],
+ ['lags', 'lag'],
+ ['symbolizes', 'symbolize'],
+ ['underlies', 'underlie'],
+ ['accrues', 'accrue'],
+ ['characterizes', 'characterize'],
+ ['contravenes', 'contravene'],
+ ['admits', 'admit'],
+ ['consumes', 'consume'],
+ ['survives', 'survive'],
+ ['inspires', 'inspire'],
+ ['registers', 'register'],
+ ['succeeds', 'succeed'],
+ ['compiles', 'compile'],
+ ['expenditures', 'expenditure'],
+ ['devotes', 'devote'],
+ ['entitles', 'entitle'],
+ ['denies', 'deny'],
+ ['triggers', 'trigger'],
+ ['disagrees', 'disagree'],
+ ['alters', 'alter'],
+ ['impedes', 'impede'],
+ ['unveils', 'unveil'],
+ ['questions', 'question'],
+ ['revolves', 'revolve'],
+ ['discourages', 'discourage'],
+ ['secures', 'secure'],
+ ['edits', 'edit'],
+ ['unites', 'unite'],
+ ['suspects', 'suspect'],
+ ['thanks', 'thank'],
+ ['prescribes', 'prescribe'],
+ ['tours', 'tour'],
+ ['owes', 'owe'],
+ ['licences', 'licence'],
+ ['unfolds', 'unfold'],
+ ['comments', 'comment'],
+ ['strikes', 'strike'],
+ ['attains', 'attain'],
+ ['infringes', 'infringe'],
+ ['cooperates', 'cooperate'],
+ ['simplifies', 'simplify'],
+ ['regrets', 'regret'],
+ ['flies', 'fly'],
+ ['averages', 'average'],
+ ['touches', 'touch'],
+ ['applauds', 'applaud'],
+ ['compensates', 'compensate'],
+ ['supplements', 'supplement'],
+ ['sizes', 'size'],
+ ['forwards', 'forward'],
+ ['analyses', 'analyse'],
+ ['divides', 'divide'],
+ ['dictates', 'dictate'],
+ ['inhibits', 'inhibit'],
+ ['reproduces', 'reproduce'],
+ ['weighs', 'weigh'],
+ ['rewards', 'reward'],
+ ['exposes', 'expose'],
+ ['withdraws', 'withdraw'],
+ ['predominates', 'predominate'],
+ ['boosts', 'boost'],
+ ['destroys', 'destroy'],
+ ['disciplines', 'discipline'],
+ ['consolidates', 'consolidate'],
+ ['approximates', 'approximate'],
+ ['elects', 'elect'],
+ ['trains', 'train'],
+ ['shapes', 'shape'],
+ ['educates', 'educate'],
+ ['bases', 'base'],
+ ['codes', 'code'],
+ ['attests', 'attest'],
+ ['ages', 'age'],
+ ['rejects', 'reject'],
+ ['stops', 'stop'],
+ ['listens', 'listen'],
+ ['saves', 'save'],
+ ['figures', 'figure'],
+ ['commends', 'commend'],
+ ['commemorates', 'commemorate'],
+ ['parts', 'part'],
+ ['graduates', 'graduate'],
+ ['motivates', 'motivate'],
+ ['sustains', 'sustain'],
+ ['ignores', 'ignore'],
+ ['obliges', 'oblige'],
+ ['flocks', 'flock'],
+ ['effects', 'effect'],
+ ['warns', 'warn'],
+ ['bodes', 'bode'],
+ ['recognises', 'recognise'],
+ ['gains', 'gain'],
+ ['positions', 'position'],
+ ['liaises', 'liaise'],
+ ['transforms', 'transform'],
+ ['retires', 'retire'],
+ ['exempts', 'exempt'],
+ ['accomplishes', 'accomplish'],
+ ['recruits', 'recruit'],
+ ['underpins', 'underpin'],
+ ['fulfils', 'fulfil'],
+ ['perceives', 'perceive'],
+ ['restores', 'restore'],
+ ['broadens', 'broaden'],
+ ['declines', 'decline'],
+ ['accumulates', 'accumulate'],
+ ['practises', 'practise'],
+ ['alerts', 'alert'],
+ ['congratulates', 'congratulate'],
+ ['shifts', 'shift'],
+ ['resonates', 'resonate'],
+ ['maps', 'map'],
+ ['surveys', 'survey'],
+ ['sounds', 'sound'],
+ ['learns', 'learn'],
+ ['intervenes', 'intervene'],
+ ['induces', 'induce'],
+ ['hinders', 'hinder'],
+ ['streamlines', 'streamline'],
+ ['searches', 'search'],
+ ['committees', 'committee'],
+ ['outweighs', 'outweigh'],
+ ['traces', 'trace'],
+ ['interferes', 'interfere'],
+ ['ents', 'ent'],
+ ['weakens', 'weaken'],
+ ['skirts', 'skirt'],
+ ['risks', 'risk'],
+ ['reimburses', 'reimburse'],
+ ['cares', 'care'],
+ ['finances', 'finance'],
+ ['separates', 'separate'],
+ ['hurts', 'hurt'],
+ ['supervises', 'supervise'],
+ ['stretches', 'stretch'],
+ ['charts', 'chart'],
+ ['complicates', 'complicate'],
+ ['upholds', 'uphold'],
+ ['remits', 'remit'],
+ ['renews', 'renew'],
+ ['excels', 'excel'],
+ ['checks', 'check'],
+ ['packages', 'package'],
+ ['trips', 'trip'],
+ ['likes', 'like'],
+ ['instructs', 'instruct'],
+ ['tubes', 'tube'],
+ ['disappears', 'disappear'],
+ ['presses', 'press'],
+ ['exerts', 'exert'],
+ ['transcends', 'transcend'],
+ ['videotapes', 'videotape'],
+ ['factors', 'factor'],
+ ['reacts', 'react'],
+ ['mixes', 'mix'],
+ ['envisages', 'envisage'],
+ ['sheds', 'shed'],
+ ['closes', 'close'],
+ ['relieves', 'relieve'],
+ ['stabilizes', 'stabilize'],
+ ['functions', 'function'],
+ ['notices', 'notice'],
+ ['catalogues', 'catalogue'],
+ ['surrounds', 'surround'],
+ ['inquires', 'inquire'],
+ ['briefs', 'brief'],
+ ['blouses', 'blouse'],
+ ['resolves', 'resolve'],
+ ['solicits', 'solicit'],
+ ['surpasses', 'surpass'],
+ ['hits', 'hit'],
+ ['caters', 'cater'],
+ ['recovers', 'recover'],
+ ['purports', 'purport'],
+ ['farms', 'farm'],
+ ['aids', 'aid'],
+ ['cultures', 'culture'],
+ ['ties', 'tie'],
+ ['presupposes', 'presuppose'],
+ ['endeavours', 'endeavour'],
+ ['widens', 'widen'],
+ ['doubles', 'double'],
+ ['suits', 'suit'],
+ ['interests', 'interest'],
+ ['thrives', 'thrive'],
+ ['crafts', 'craft'],
+ ['struggles', 'struggle'],
+ ['furthers', 'further'],
+ ['greets', 'greet'],
+ ['proclaims', 'proclaim'],
+ ['subjects', 'subject'],
+ ['blocks', 'block'],
+ ['interviews', 'interview'],
+ ['unloads', 'unload'],
+ ['clamps', 'clamp'],
+ ['levies', 'levy'],
+ ['lectures', 'lecture'],
+ ['munitions', 'munition'],
+ ['prints', 'print'],
+ ['correlates', 'correlate'],
+ ['walks', 'walk'],
+ ['hinges', 'hinge'],
+ ['springs', 'spring'],
+ ['nurtures', 'nurture'],
+ ['quotes', 'quote'],
+ ['enacts', 'enact'],
+ ['screens', 'screen'],
+ ['leases', 'lease'],
+ ['counsels', 'counsel'],
+ ['concurs', 'concur'],
+ ['lessons', 'lesson'],
+ ['absorbs', 'absorb'],
+ ['lambs', 'lamb'],
+ ['manifests', 'manifest'],
+ ['reprints', 'reprint'],
+ ['optimizes', 'optimize'],
+ ['routes', 'route'],
+ ['prides', 'pride'],
+ ['contracts', 'contract'],
+ ['equates', 'equate'],
+ ['types', 'type'],
+ ['tables', 'table'],
+ ['remembers', 'remember'],
+ ['loves', 'love'],
+ ['adapts', 'adapt'],
+ ['replies', 'reply'],
+ ['delineates', 'delineate'],
+ ['drains', 'drain'],
+ ['beetles', 'beetle'],
+ ['bridges', 'bridge'],
+ ['merits', 'merit'],
+ ['screws', 'screw'],
+ ['shakes', 'shake'],
+ ['tops', 'top'],
+ ['institutes', 'institute'],
+ ['categorizes', 'categorize'],
+ ['trails', 'trail'],
+ ['desires', 'desire'],
+ ['contents', 'content'],
+ ['narrows', 'narrow'],
+ ['executes', 'execute'],
+ ['repeats', 'repeat'],
+ ['sports', 'sport'],
+ ['echoes', 'echo'],
+ ['erodes', 'erode'],
+ ['casts', 'cast'],
+ ['connotes', 'connote'],
+ ['fluctuates', 'fluctuate'],
+ ['imparts', 'impart'],
+ ['objects', 'object'],
+ ['replicates', 'replicate'],
+ ['hampers', 'hamper'],
+ ['centers', 'center'],
+ ['picks', 'pick'],
+ ['capitalizes', 'capitalize'],
+ ['differentiates', 'differentiate'],
+ ['commissions', 'commission'],
+ ['dedicates', 'dedicate'],
+ ['trades', 'trade'],
+ ['overcomes', 'overcome'],
+ ['circumvents', 'circumvent'],
+ ['detects', 'detect'],
+ ['disposes', 'dispose'],
+ ['opposes', 'oppose'],
+ ['prompts', 'prompt'],
+ ['borrows', 'borrow'],
+ ['modifies', 'modify'],
+ ['conserves', 'conserve'],
+ ['mitigates', 'mitigate'],
+ ['researches', 'research'],
+ ['uncovers', 'uncover'],
+ ['depreciates', 'depreciate'],
+ ['encounters', 'encounter'],
+ ['favors', 'favor'],
+ ['fuels', 'fuel'],
+ ['entertains', 'entertain'],
+ ['pushes', 'push'],
+ ['aspires', 'aspire'],
+ ['subscribes', 'subscribe'],
+ ['exacerbates', 'exacerbate'],
+ ['settles', 'settle'],
+ ['subsists', 'subsist'],
+ ['misses', 'miss'],
+ ['salts', 'salt'],
+ ['simulates', 'simulate'],
+ ['advertises', 'advertise'],
+ ['rules', 'rule'],
+ ['activates', 'activate'],
+ ['appeals', 'appeal'],
+ ['talks', 'talk'],
+ ['damages', 'damage'],
+ ['reverses', 'reverse'],
+ ['pulls', 'pull'],
+ ['assembles', 'assemble'],
+ ['bestows', 'bestow'],
+ ['contemplates', 'contemplate'],
+ ['wears', 'wear'],
+ ['elaborates', 'elaborate'],
+ ['discounts', 'discount'],
+ ['courses', 'course'],
+ ['watches', 'watch'],
+ ['mediates', 'mediate'],
+ ['frames', 'frame'],
+ ['cops', 'cop'],
+ ['jackets', 'jacket'],
+ ['begs', 'beg'],
+ ['tools', 'tool'],
+ ['sites', 'site'],
+ ['recounts', 'recount'],
+ ['masks', 'mask'],
+ ['evokes', 'evoke'],
+ ['surfaces', 'surface'],
+ ['eases', 'ease'],
+ ['tiers', 'tier'],
+ ['paints', 'paint'],
+ ['logs', 'log'],
+ ['frees', 'free'],
+ ['compounds', 'compound'],
+ ['marries', 'marry'],
+ ['derogates', 'derogate'],
+ ['impairs', 'impair'],
+ ['disrupts', 'disrupt'],
+ ['corrects', 'correct'],
+ ['defends', 'defend'],
+ ['quantifies', 'quantify'],
+ ['foresees', 'foresee'],
+ ['streams', 'stream'],
+ ['transacts', 'transact'],
+ ['constrains', 'constrain'],
+ ['exits', 'exit'],
+ ['looms', 'loom'],
+ ['mails', 'mail'],
+ ['stages', 'stage'],
+ ['labels', 'label'],
+ ['hooks', 'hook'],
+ ['dresses', 'dress'],
+ ['shorts', 'short'],
+ ['mars', 'mar'],
+ ['cautions', 'caution'],
+ ['plugs', 'plug'],
+ ['convenes', 'convene'],
+ ['forbids', 'forbid'],
+ ['rents', 'rent'],
+ ['speeds', 'speed'],
+ ['intersects', 'intersect'],
+ ['deprives', 'deprive'],
+ ['testifies', 'testify'],
+ ['formulates', 'formulate'],
+ ['resigns', 'resign'],
+ ['neglects', 'neglect'],
+ ['corroborates', 'corroborate'],
+ ['substantiates', 'substantiate'],
+ ['spells', 'spell'],
+ ['degrades', 'degrade'],
+ ['inspects', 'inspect'],
+ ['combs', 'comb'],
+ ['worsens', 'worsen'],
+ ['grains', 'grain'],
+ ['purposes', 'purpose'],
+ ['chapters', 'chapter'],
+ ['saws', 'saw'],
+ ['precedes', 'precede'],
+ ['radios', 'radio'],
+ ['prises', 'prise'],
+ ['deploys', 'deploy'],
+ ['injects', 'inject'],
+ ['awaits', 'await'],
+ ['fields', 'field'],
+ ['summarises', 'summarise'],
+ ['behaves', 'behave'],
+ ['beats', 'beat'],
+ ['pairs', 'pair'],
+ ['boils', 'boil'],
+ ['senses', 'sense'],
+ ['accords', 'accord'],
+ ['culminates', 'culminate'],
+ ['structures', 'structure'],
+ ['mobilizes', 'mobilize'],
+ ['opts', 'opt'],
+ ['budgets', 'budget'],
+ ['equips', 'equip'],
+ ['rots', 'rot'],
+ ['privileges', 'privilege'],
+ ['switches', 'switch'],
+ ['ships', 'ship'],
+ ['ensues', 'ensue'],
+ ['outstrips', 'outstrip'],
+ ['posits', 'posit'],
+ ['confronts', 'confront'],
+ ['diverts', 'divert'],
+ ['honors', 'honor'],
+ ['antiques', 'antique'],
+ ['baffles', 'baffle'],
+ ['gloves', 'glove'],
+ ['enlists', 'enlist'],
+ ['parties', 'party'],
+ ['filters', 'filter'],
+ ['stores', 'store'],
+ ['encapsulates', 'encapsulate'],
+ ['scales', 'scale'],
+ ['insures', 'insure'],
+ ['heats', 'heat'],
+ ['bars', 'bar'],
+ ['compromises', 'compromise'],
+ ['exploits', 'exploit'],
+ ['washes', 'wash'],
+ ['cultivates', 'cultivate'],
+ ['deepens', 'deepen'],
+ ['praises', 'praise'],
+ ['validates', 'validate'],
+ ['upgrades', 'upgrade'],
+ ['mimics', 'mimic'],
+ ['abrogates', 'abrogate'],
+ ['supposes', 'suppose'],
+ ['detracts', 'detract'],
+ ['predates', 'predate'],
+ ['contradicts', 'contradict'],
+ ['images', 'image'],
+ ['soils', 'soil'],
+ ['calves', 'calve'],
+ ['dries', 'dry'],
+ ['infests', 'infest'],
+ ['strips', 'strip'],
+ ['invoices', 'invoice'],
+ ['disburses', 'disburse'],
+ ['distorts', 'distort'],
+ ['kernels', 'kernel'],
+ ['deteriorates', 'deteriorate'],
+ ['aggregates', 'aggregate'],
+ ['nourishes', 'nourish'],
+ ['encrypts', 'encrypt'],
+ ['afflicts', 'afflict'],
+ ['yarns', 'yarn'],
+ ['burns', 'burn'],
+ ['chronicles', 'chronicle'],
+ ['amalgamates', 'amalgamate'],
+ ['solves', 'solve'],
+ ['partners', 'partner'],
+ ['refines', 'refine'],
+ ['conjures', 'conjure'],
+ ['overlooks', 'overlook'],
+ ['intensifies', 'intensify'],
+ ['aliments', 'aliment'],
+ ['lifts', 'lift'],
+ ['gears', 'gear'],
+ ['trends', 'trend'],
+ ['salutes', 'salute'],
+ ['isolates', 'isolate'],
+ ['offends', 'offend'],
+ ['doubts', 'doubt'],
+ ['paves', 'pave'],
+ ['commands', 'command'],
+ ['drafts', 'draft'],
+ ['inserts', 'insert'],
+ ['requisitions', 'requisition'],
+ ['crops', 'crop'],
+ ['berries', 'berry'],
+ ['suppresses', 'suppress'],
+ ['cases', 'case'],
+ ['harms', 'harm'],
+ ['caps', 'cap'],
+ ['diffuses', 'diffuse'],
+ ['seals', 'seal'],
+ ['defers', 'defer'],
+ ['intercepts', 'intercept'],
+ ['clears', 'clear'],
+ ['nets', 'net'],
+ ['backs', 'back'],
+ ['copies', 'copy'],
+ ['bills', 'bill'],
+ ['revises', 'revise'],
+ ['tutors', 'tutor'],
+ ['fears', 'fear'],
+ ['grades', 'grade'],
+ ['reinvests', 'reinvest'],
+ ['outpaces', 'outpace'],
+ ['abounds', 'abound'],
+ ['distils', 'distil'],
+ ['reasons', 'reason'],
+ ['disputes', 'dispute'],
+ ['donates', 'donate'],
+ ['evaporates', 'evaporate'],
+ ['materializes', 'materialize'],
+ ['stars', 'star'],
+ ['channels', 'channel'],
+ ['sums', 'sum'],
+ ['permeates', 'permeate'],
+ ['packs', 'pack'],
+ ['installs', 'install'],
+ ['overrides', 'override'],
+ ['defeats', 'defeat'],
+ ['medals', 'medal'],
+ ['withholds', 'withhold'],
+ ['pledges', 'pledge'],
+ ['rolls', 'roll'],
+ ['conceals', 'conceal'],
+ ['displaces', 'displace'],
+ ['outperforms', 'outperform'],
+ ['emits', 'emit'],
+ ['welds', 'weld'],
+ ['bands', 'band'],
+ ['conflicts', 'conflict'],
+ ['formalizes', 'formalize'],
+ ['oils', 'oil'],
+ ['slugs', 'slug'],
+ ['collapses', 'collapse'],
+ ['catches', 'catch'],
+ ['repays', 'repay'],
+ ['duplicates', 'duplicate'],
+ ['lessens', 'lessen'],
+ ['interchanges', 'interchange'],
+ ['compels', 'compel'],
+ ['rows', 'row'],
+ ['augments', 'augment'],
+ ['postulates', 'postulate'],
+ ['complains', 'complain'],
+ ['consents', 'consent'],
+ ['navigates', 'navigate'],
+ ['chats', 'chat'],
+ ['scans', 'scan'],
+ ['shocks', 'shock'],
+ ['suspends', 'suspend'],
+ ['circulates', 'circulate'],
+ ['wonders', 'wonder'],
+ ['airs', 'air'],
+ ['proscribes', 'proscribe'],
+ ['conditions', 'condition'],
+ ['games', 'game'],
+ ['nominates', 'nominate'],
+ ['detains', 'detain'],
+ ['spills', 'spill'],
+ ['embarks', 'embark'],
+ ['orders', 'order'],
+ ['kicks', 'kick'],
+ ['rates', 'rate'],
+ ['stews', 'stew'],
+ ['reaps', 'reap'],
+ ['avails', 'avail'],
+ ['descends', 'descend'],
+ ['remarks', 'remark'],
+ ['innovates', 'innovate'],
+ ['disperses', 'disperse'],
+ ['constructs', 'construct'],
+ ['disables', 'disable'],
+ ['cleans', 'clean'],
+ ['presumes', 'presume'],
+ ['invokes', 'invoke'],
+ ['fixes', 'fix'],
+ ['sprouts', 'sprout'],
+ ['sacrifices', 'sacrifice'],
+ ['groups', 'group'],
+ ['codifies', 'codify'],
+ ['convicts', 'convict'],
+ ['locks', 'lock'],
+ ['teams', 'team'],
+ ['multiplies', 'multiply'],
+ ['remedies', 'remedy'],
+ ['items', 'item'],
+ ['copyrights', 'copyright'],
+ ['fees', 'fee'],
+ ['waives', 'waive'],
+ ['elicits', 'elicit'],
+ ['cancels', 'cancel'],
+ ['pastures', 'pasture'],
+ ['blights', 'blight'],
+ ['deposits', 'deposit'],
+ ['predisposes', 'predispose'],
+ ['omits', 'omit'],
+ ['counters', 'counter'],
+ ['solidifies', 'solidify'],
+ ['tolerates', 'tolerate'],
+ ['empties', 'empty'],
+ ['dampens', 'dampen'],
+ ['curves', 'curve'],
+ ['tackles', 'tackle'],
+ ['rotates', 'rotate'],
+ ['disadvantages', 'disadvantage'],
+ ['reconciles', 'reconcile'],
+ ['legislates', 'legislate'],
+ ['provisions', 'provision'],
+ ['pervades', 'pervade'],
+ ['condemns', 'condemn'],
+ ['dovetails', 'dovetail'],
+ ['undercuts', 'undercut'],
+ ['mounts', 'mount'],
+ ['penalizes', 'penalize'],
+ ['safeguards', 'safeguard'],
+ ['entrenches', 'entrench'],
+ ['authenticates', 'authenticate'],
+ ['brevets', 'brevet'],
+ ['adjudicates', 'adjudicate'],
+ ['pads', 'pad'],
+ ['rescinds', 'rescind'],
+ ['stamps', 'stamp'],
+ ['consigns', 'consign'],
+ ['hats', 'hat'],
+ ['halts', 'halt'],
+ ['pillars', 'pillar'],
+ ['practices', 'practice'],
+ ['emanates', 'emanate'],
+ ['retrofits', 'retrofit'],
+ ['blends', 'blend'],
+ ['repairs', 'repair'],
+ ['retrieves', 'retrieve'],
+ ['abandons', 'abandon'],
+ ['names', 'name'],
+ ['redistributes', 'redistribute'],
+ ['automates', 'automate'],
+ ['excites', 'excite'],
+ ['tightens', 'tighten'],
+ ['softens', 'soften'],
+ ['fires', 'fire'],
+ ['nears', 'near'],
+ ['articles', 'article'],
+ ['hangs', 'hang'],
+ ['spurs', 'spur'],
+ ['escapes', 'escape'],
+ ['tips', 'tip'],
+ ['throws', 'throw'],
+ ['hails', 'hail'],
+ ['sings', 'sing'],
+ ['furnishes', 'furnish'],
+ ['smiles', 'smile'],
+ ['reverts', 'revert'],
+ ['bypasses', 'bypass'],
+ ['votes', 'vote'],
+ ['harbours', 'harbour'],
+ ['tailors', 'tailor'],
+ ['proteins', 'protein'],
+ ['resins', 'resin'],
+ ['invades', 'invade'],
+ ['escalates', 'escalate'],
+ ['deters', 'deter'],
+ ['resists', 'resist'],
+ ['powers', 'power'],
+ ['instills', 'instill'],
+ ['audits', 'audit'],
+ ['sands', 'sand'],
+ ['gauges', 'gauge'],
+ ['neighbours', 'neighbour'],
+ ['synthesizes', 'synthesize'],
+ ['voices', 'voice'],
+ ['abides', 'abide'],
+ ['earmarks', 'earmark'],
+ ['fruits', 'fruit'],
+ ['ducks', 'duck'],
+ ['pods', 'pod'],
+ ['shoots', 'shoot'],
+ ['shrinks', 'shrink'],
+ ['splits', 'split'],
+ ['rings', 'ring'],
+ ['nuts', 'nut'],
+ ['sponges', 'sponge'],
+ ['crushes', 'crush'],
+ ['penetrates', 'penetrate'],
+ ['vests', 'vest'],
+ ['borders', 'border'],
+ ['accentuates', 'accentuate'],
+ ['heralds', 'herald'],
+ ['obeys', 'obey'],
+ ['parallels', 'parallel'],
+ ['levers', 'lever'],
+ ['rights', 'right'],
+ ['hogs', 'hog'],
+ ['steers', 'steer'],
+ ['surprises', 'surprise'],
+ ['jeopardizes', 'jeopardize'],
+ ['infuses', 'infuse'],
+ ['merges', 'merge'],
+ ['dissipates', 'dissipate'],
+ ['elapses', 'elapse'],
+ ['fins', 'fin'],
+ ['discriminates', 'discriminate'],
+ ['seizes', 'seize'],
+ ['revitalizes', 'revitalize'],
+ ['enlightens', 'enlighten'],
+ ['coproduces', 'coproduce'],
+ ['formats', 'format'],
+ ['suffices', 'suffice'],
+ ['revokes', 'revoke'],
+ ['programs', 'program'],
+ ['scores', 'score'],
+ ['inaugurates', 'inaugurate'],
+ ['boards', 'board'],
+ ['sensitizes', 'sensitize'],
+ ['fuses', 'fuse'],
+ ['pages', 'page'],
+ ['demeans', 'demean'],
+ ['dogs', 'dog'],
+ ['expedites', 'expedite'],
+ ['disorders', 'disorder'],
+ ['plates', 'plate'],
+ ['alloys', 'alloy'],
+ ['bits', 'bit'],
+ ['slats', 'slat'],
+ ['relaunches', 'relaunch'],
+ ['circumscribes', 'circumscribe'],
+ ['mingles', 'mingle'],
+ ['fairs', 'fair'],
+ ['centralizes', 'centralize'],
+ ['deletes', 'delete'],
+ ['breaches', 'breach'],
+ ['procures', 'procure'],
+ ['seats', 'seat'],
+ ['skews', 'skew'],
+ ['interrupts', 'interrupt'],
+ ['worries', 'worry'],
+ ['cycles', 'cycle'],
+ ['underestimates', 'underestimate'],
+ ['probes', 'probe'],
+ ['cools', 'cool'],
+ ['illuminates', 'illuminate'],
+ ['funnels', 'funnel'],
+ ['fascinates', 'fascinate'],
+ ['windows', 'window'],
+ ['inspectors', 'inspector'],
+ ['floats', 'float'],
+ ['adorns', 'adorn'],
+ ['oxidizes', 'oxidize'],
+ ['cherishes', 'cherish'],
+ ['sanctions', 'sanction'],
+ ['obstructs', 'obstruct'],
+ ['founds', 'found'],
+ ['breathes', 'breathe'],
+ ['epitomizes', 'epitomize'],
+ ['endures', 'endure'],
+ ['cries', 'cry'],
+ ['meters', 'meter'],
+ ['champions', 'champion'],
+ ['endangers', 'endanger'],
+ ['contours', 'contour'],
+ ['abstracts', 'abstract'],
+ ['surrenders', 'surrender'],
+ ['enrols', 'enrol'],
+ ['sticks', 'stick'],
+ ['overlays', 'overlay'],
+ ['cows', 'cow'],
+ ['bans', 'ban'],
+ ['delays', 'delay'],
+ ['eats', 'eat'],
+ ['warms', 'warm'],
+ ['pellets', 'pellet'],
+ ['wafers', 'wafer'],
+ ['depresses', 'depress'],
+ ['blurs', 'blur'],
+ ['deviates', 'deviate'],
+ ['discharges', 'discharge'],
+ ['scouts', 'scout'],
+ ['vents', 'vent'],
+ ['mills', 'mill'],
+ ['bids', 'bid'],
+ ['garners', 'garner'],
+ ['understates', 'understate'],
+ ['eggs', 'egg'],
+ ['pens', 'pen'],
+ ['recreates', 'recreate'],
+ ['amplifies', 'amplify'],
+ ['judges', 'judge'],
+ ['models', 'model'],
+ ['accesses', 'access'],
+ ['environs', 'environ'],
+ ['pins', 'pin'],
+ ['implicates', 'implicate'],
+ ['enshrines', 'enshrine'],
+ ['engenders', 'engender'],
+ ['spikes', 'spike'],
+ ['deplores', 'deplore'],
+ ['reorganizes', 'reorganize'],
+ ['entrusts', 'entrust'],
+ ['abuses', 'abuse'],
+ ['comports', 'comport'],
+ ['organises', 'organise'],
+ ['warehouses', 'warehouse'],
+ ['forges', 'forge'],
+ ['dispenses', 'dispense'],
+ ['prosecutes', 'prosecute'],
+ ['scissors', 'scissor'],
+ ['queries', 'query'],
+ ['bastes', 'baste'],
+ ['stuffs', 'stuff'],
+ ['elucidates', 'elucidate'],
+ ['ascribes', 'ascribe'],
+ ['encodes', 'encode'],
+ ['prolongs', 'prolong'],
+ ['leans', 'lean'],
+ ['negates', 'negate'],
+ ['officers', 'officer'],
+ ['graves', 'grave'],
+ ['propositions', 'proposition'],
+ ['shingles', 'shingle'],
+ ['readies', 'ready'],
+ ['weaves', 'weave'],
+ ['ponders', 'ponder'],
+ ['sorts', 'sort'],
+ ['augurs', 'augur'],
+ ['unlocks', 'unlock'],
+ ['cements', 'cement'],
+ ['locates', 'locate'],
+ ['criticizes', 'criticize'],
+ ['disturbs', 'disturb'],
+ ['subcontracts', 'subcontract'],
+ ['emphasises', 'emphasise'],
+ ['trusts', 'trust'],
+ ['relaxes', 'relax'],
+ ['resorts', 'resort'],
+ ['pumps', 'pump'],
+ ['waits', 'wait'],
+ ['vacations', 'vacation'],
+ ['jumps', 'jump'],
+ ['escorts', 'escort'],
+ ['inflates', 'inflate'],
+ ['melts', 'melt'],
+ ['buckles', 'buckle'],
+ ['recycles', 'recycle'],
+ ['wraps', 'wrap'],
+ ['blooms', 'bloom'],
+ ['smells', 'smell'],
+ ['loads', 'load'],
+ ['sketches', 'sketch'],
+ ['jokes', 'joke'],
+ ['erases', 'erase'],
+ ['dimensions', 'dimension'],
+ ['concedes', 'concede'],
+ ['defies', 'defy'],
+ ['plants', 'plant'],
+ ['presides', 'preside'],
+ ['belies', 'belie'],
+ ['hastens', 'hasten'],
+ ['bankrupts', 'bankrupt'],
+ ['discontinues', 'discontinue'],
+ ['redirects', 'redirect'],
+ ['firms', 'firm'],
+ ['discredits', 'discredit'],
+ ['pressures', 'pressure'],
+ ['footnotes', 'footnote'],
+ ['exchanges', 'exchange'],
+ ['photocopies', 'photocopy'],
+ ['photographs', 'photograph'],
+ ['instances', 'instance'],
+ ['colours', 'colour'],
+ ['perpetuates', 'perpetuate'],
+ ['trees', 'tree'],
+ ['rejoins', 'rejoin'],
+ ['pales', 'pale'],
+ ['migrates', 'migrate'],
+ ['pupates', 'pupate'],
+ ['yellows', 'yellow'],
+ ['parasitizes', 'parasitize'],
+ ['ripens', 'ripen'],
+ ['encloses', 'enclose'],
+ ['heals', 'heal'],
+ ['preys', 'prey'],
+ ['forfeits', 'forfeit'],
+ ['keys', 'key'],
+ ['arouses', 'arouse'],
+ ['endeavors', 'endeavor'],
+ ['specialises', 'specialise'],
+ ['waxes', 'wax'],
+ ['dissolves', 'dissolve'],
+ ['insulates', 'insulate'],
+ ['traps', 'trap'],
+ ['slopes', 'slope'],
+ ['heightens', 'heighten'],
+ ['shuts', 'shut'],
+ ['franchises', 'franchise'],
+ ['indexes', 'index'],
+ ['ameliorates', 'ameliorate'],
+ ['triples', 'triple'],
+ ['catalyzes', 'catalyze'],
+ ['regroups', 'regroup'],
+ ['holidays', 'holiday'],
+ ['converges', 'converge'],
+ ['swaps', 'swap'],
+ ['exhausts', 'exhaust'],
+ ['supplants', 'supplant'],
+ ['reconvenes', 'reconvene'],
+ ['modernizes', 'modernize'],
+ ['leafs', 'leaf'],
+ ['shines', 'shine'],
+ ['familiarizes', 'familiarize'],
+ ['tongues', 'tongue'],
+ ['chances', 'chance'],
+ ['numbers', 'number'],
+ ['refrains', 'refrain'],
+ ['fades', 'fade'],
+ ['retails', 'retail'],
+ ['ratifies', 'ratify'],
+ ['alludes', 'allude'],
+ ['enunciates', 'enunciate'],
+ ['rouges', 'rouge'],
+ ['embeds', 'embed'],
+ ['decrypts', 'decrypt'],
+ ['upsets', 'upset'],
+ ['demotes', 'demote'],
+ ['friends', 'friend'],
+ ['wows', 'wow'],
+ ['restates', 'restate'],
+ ['conceives', 'conceive'],
+ ['dwarfs', 'dwarf'],
+ ['relocates', 'relocate'],
+ ['infers', 'infer'],
+ ['taboos', 'taboo'],
+ ['expends', 'expend'],
+ ['obligates', 'obligate'],
+ ['combats', 'combat'],
+ ['belittles', 'belittle'],
+ ['conspires', 'conspire'],
+ ['peoples', 'people'],
+ ['conflates', 'conflate'],
+ ['collates', 'collate'],
+ ['shears', 'shear'],
+ ['wheels', 'wheel'],
+ ['conjugates', 'conjugate'],
+ ['glazes', 'glaze'],
+ ['taps', 'tap'],
+ ['retorts', 'retort'],
+ ['bottoms', 'bottom'],
+ ['hikes', 'hike'],
+ ['peddles', 'peddle'],
+ ['mulls', 'mull'],
+ ['rues', 'rue'],
+ ['utilises', 'utilise'],
+ ['pops', 'pop'],
+ ['underwrites', 'underwrite'],
+ ['stirs', 'stir'],
+ ['aggravates', 'aggravate'],
+ ['vies', 'vie'],
+ ['sues', 'sue'],
+ ['diverges', 'diverge'],
+ ['situates', 'situate'],
+ ['plots', 'plot'],
+ ['billets', 'billet'],
+ ['compliments', 'compliment'],
+ ['pours', 'pour'],
+ ['stocks', 'stock'],
+ ['dares', 'dare'],
+ ['skips', 'skip'],
+ ['propagates', 'propagate'],
+ ['breeds', 'breed'],
+ ['typifies', 'typify'],
+ ['liquefies', 'liquefy'],
+ ['pinpoints', 'pinpoint'],
+ ['winds', 'wind'],
+ ['transpires', 'transpire'],
+ ['disapproves', 'disapprove'],
+ ['admires', 'admire'],
+ ['gifts', 'gift'],
+ ['finalizes', 'finalize'],
+ ['floods', 'flood'],
+ ['deducts', 'deduct'],
+ ['prejudices', 'prejudice'],
+ ['assents', 'assent'],
+ ['revives', 'revive'],
+ ['disqualifies', 'disqualify'],
+ ['enquires', 'enquire'],
+ ['refutes', 'refute'],
+ ['pivots', 'pivot'],
+ ['revisits', 'revisit'],
+ ['calibrates', 'calibrate'],
+ ['gasses', 'gas'],
+ ['covenants', 'covenant'],
+ ['supercedes', 'supercede'],
+ ['harvests', 'harvest'],
+ ['postpones', 'postpone'],
+ ['reconsiders', 'reconsider'],
+ ['invents', 'invent'],
+ ['wipes', 'wipe'],
+ ['confines', 'confine'],
+ ['rekindles', 'rekindle'],
+ ['fights', 'fight'],
+ ['chains', 'chain'],
+ ['enrolls', 'enroll'],
+ ['rusts', 'rust'],
+ ['manipulates', 'manipulate'],
+ ['gouges', 'gouge'],
+ ['germinates', 'germinate'],
+ ['disintegrates', 'disintegrate'],
+ ['obscures', 'obscure'],
+ ['inhabits', 'inhabit'],
+ ['sporulates', 'sporulate'],
+ ['thickens', 'thicken'],
+ ['coats', 'coat'],
+ ['contaminates', 'contaminate'],
+ ['fats', 'fat'],
+ ['charters', 'charter'],
+ ['bins', 'bin'],
+ ['slices', 'slice'],
+ ['thins', 'thin'],
+ ['hives', 'hive'],
+ ['depletes', 'deplete'],
+ ['stations', 'station'],
+ ['pits', 'pit'],
+ ['closures', 'closure'],
+ ['clogs', 'clog'],
+ ['lengthens', 'lengthen'],
+ ['needles', 'needle'],
+ ['decomposes', 'decompose'],
+ ['blankets', 'blanket'],
+ ['corrodes', 'corrode'],
+ ['stifles', 'stifle'],
+ ['scares', 'scare'],
+ ['hints', 'hint'],
+ ['speculates', 'speculate'],
+ ['frustrates', 'frustrate'],
+ ['harmonizes', 'harmonize'],
+ ['pools', 'pool'],
+ ['tabulates', 'tabulate'],
+ ['subsides', 'subside'],
+ ['subtracts', 'subtract'],
+ ['overstates', 'overstate'],
+ ['characters', 'character'],
+ ['paws', 'paw'],
+ ['wages', 'wage'],
+ ['resets', 'reset'],
+ ['enumerates', 'enumerate'],
+ ['peers', 'peer'],
+ ['internalizes', 'internalize'],
+ ['laughs', 'laugh'],
+ ['coops', 'coop'],
+ ['pretends', 'pretend'],
+ ['errs', 'err'],
+ ['allowances', 'allowance'],
+ ['anchors', 'anchor'],
+ ['weights', 'weight'],
+ ['lunches', 'lunch'],
+ ['checkers', 'checker'],
+ ['redefines', 'redefine'],
+ ['befits', 'befit'],
+ ['disregards', 'disregard'],
+ ['expertises', 'expertise'],
+ ['spotlights', 'spotlight'],
+ ['publicizes', 'publicize'],
+ ['times', 'time'],
+ ['premiers', 'premier'],
+ ['champs', 'champ'],
+ ['endows', 'endow'],
+ ['symbols', 'symbol'],
+ ['occasions', 'occasion'],
+ ['lobbies', 'lobby'],
+ ['refocuses', 'refocuse'],
+ ['branches', 'branch'],
+ ['dislikes', 'dislike'],
+ ['freezes', 'freeze'],
+ ['decodes', 'decode'],
+ ['confounds', 'confound'],
+ ['eludes', 'elude'],
+ ['reasserts', 'reassert'],
+ ['primes', 'prime'],
+ ['relinquishes', 'relinquish'],
+ ['overstocks', 'overstock'],
+ ['excepts', 'except'],
+ ['stalls', 'stall'],
+ ['sails', 'sail'],
+ ['arches', 'arch'],
+ ['passages', 'passage'],
+ ['recurs', 'recur'],
+ ['trumps', 'trump'],
+ ['frequents', 'frequent'],
+ ['litigates', 'litigate'],
+ ['abolishes', 'abolish'],
+ ['defects', 'defect'],
+ ['doses', 'dose'],
+ ['chauffeurs', 'chauffeur'],
+ ['teasels', 'teasel'],
+ ['bitters', 'bitter'],
+ ['rails', 'rail'],
+ ['scrubs', 'scrub'],
+ ['ornaments', 'ornament'],
+ ['brackets', 'bracket'],
+ ['traverses', 'traverse'],
+ ['transits', 'transit'],
+ ['excuses', 'excuse'],
+ ['fulminates', 'fulminate'],
+ ['torches', 'torch'],
+ ['shovels', 'shovel'],
+ ['eyelets', 'eyelet'],
+ ['carillons', 'carillon'],
+ ['garlands', 'garland'],
+ ['reassures', 'reassure'],
+ ['samples', 'sample'],
+ ['resells', 'resell'],
+ ['slates', 'slate'],
+ ['referees', 'referee'],
+ ['troubles', 'trouble'],
+ ['inhales', 'inhale'],
+ ['bullies', 'bully'],
+ ['repeals', 'repeal'],
+ ['quits', 'quit'],
+ ['disobeys', 'disobey'],
+ ['persuades', 'persuade'],
+ ['reprises', 'reprise'],
+ ['couches', 'couch'],
+ ['disassociates', 'disassociate'],
+ ['crashes', 'crash'],
[
'singles',
'single',
2
],
- ['scrutinizes', 'scrutinize', 2],
- ['realigns', 'realign', 2],
- ['entices', 'entice', 2],
- ['elevates', 'elevate', 2],
- ['awakens', 'awaken', 2],
- ['contests', 'contest', 2],
- ['schedules', 'schedule', 2],
- ['magnifies', 'magnify', 2],
- ['couples', 'couple', 2],
- ['fares', 'fare', 2],
- ['hovers', 'hover', 2],
- ['debuts', 'debut', 2],
- ['dazzles', 'dazzle', 2],
- ['patrols', 'patrol', 2],
- ['rumbles', 'rumble', 2],
- ['curls', 'curl', 2],
- ['glints', 'glint', 2],
- ['seduces', 'seduce', 2],
- ['steals', 'steal', 2],
- ['incinerates', 'incinerate', 2],
- ['sparks', 'spark', 2],
- ['chambers', 'chamber', 2],
- ['ascends', 'ascend', 2],
- ['clusters', 'cluster', 2],
- ['vaporizes', 'vaporize', 2],
- ['commercializes', 'commercialize', 2],
- ['dips', 'dip', 2],
- ['enthuses', 'enthuse', 2],
- ['restrains', 'restrain', 2],
- ['thwarts', 'thwart', 2],
- ['ripples', 'ripple', 2],
- ['saps', 'sap', 2],
- ['entraps', 'entrap', 2],
- ['humiliates', 'humiliate', 2],
- ['grounds', 'ground', 2],
- ['bowls', 'bowl', 2],
- ['appropriates', 'appropriate', 2],
- ['nullifies', 'nullify', 2],
- ['rubbers', 'rubber', 2],
- ['glues', 'glue', 2],
- ['polishes', 'polish', 2],
- ['inks', 'ink', 2],
- ['sifts', 'sift', 2],
- ['defrays', 'defray', 2],
- ['annotates', 'annotate', 2],
- ['associates', 'associate', 2],
- ['headlines', 'headline', 2],
- ['layers', 'layer', 2],
- ['accents', 'accent', 2],
- ['juggles', 'juggle', 2],
- ['skates', 'skate', 2],
- ['protests', 'protest', 2],
- ['patents', 'patent', 2],
- ['lapses', 'lapse', 2],
- ['gravitates', 'gravitate', 2],
- ['surnames', 'surname', 2],
- ['alarms', 'alarm', 2],
- ['imitates', 'imitate', 2],
- ['inconveniences', 'inconvenience', 2],
- ['doctors', 'doctor', 2],
- ['rebuilds', 'rebuild', 2],
- ['administrates', 'administrate', 2],
- ['sows', 'sow', 2],
- ['disentitles', 'disentitle', 2],
- ['bugs', 'bug', 2],
- ['sprays', 'spray', 2],
- ['stunts', 'stunt', 2],
- ['mates', 'mate', 2],
- ['defoliates', 'defoliate', 2],
- ['burrows', 'burrow', 2],
- ['alleviates', 'alleviate', 2],
- ['encroaches', 'encroach', 2],
- ['buries', 'bury', 2],
- ['secretes', 'secrete', 2],
- ['colonizes', 'colonize', 2],
- ['repels', 'repel', 2],
- ['injures', 'injure', 2],
- ['tastes', 'taste', 2],
- ['debriefs', 'debrief', 2],
- ['flakes', 'flake', 2],
- ['cakes', 'cake', 2],
- ['starches', 'starch', 2],
- ['pegs', 'peg', 2],
- ['diversifies', 'diversify', 2],
- ['hinnies', 'hinny', 2],
- ['seeds', 'seed', 2],
- ['sauces', 'sauce', 2],
- ['squeezes', 'squeeze', 2],
- ['overwhelms', 'overwhelm', 2],
- ['spices', 'spice', 2],
- ['militates', 'militate', 2],
- ['cups', 'cup', 2],
- ['exclaims', 'exclaim', 2],
- ['partakes', 'partake', 2],
- ['guesses', 'guess', 2],
- ['thaws', 'thaw', 2],
- ['leaches', 'leach', 2],
- ['zones', 'zone', 2],
- ['bolsters', 'bolster', 2],
- ['apportions', 'apportion', 2],
- ['surmises', 'surmise', 2],
- ['coils', 'coil', 2],
- ['lines', 'line', 2],
- ['slits', 'slit', 2],
- ['debunks', 'debunk', 2],
- ['overlies', 'overlie', 2],
- ['buffers', 'buffer', 2],
- ['shelves', 'shelve', 2],
- ['lands', 'land', 2],
- ['strains', 'strain', 2],
- ['stagnates', 'stagnate', 2],
- ['exaggerates', 'exaggerate', 2],
- ['hides', 'hide', 2],
- ['blunts', 'blunt', 2],
- ['rivals', 'rival', 2],
- ['minimises', 'minimise', 2],
- ['dwells', 'dwell', 2],
- ['nests', 'nest', 2],
- ['crumbles', 'crumble', 2],
- ['pans', 'pan', 2],
- ['wastes', 'waste', 2],
- ['disengages', 'disengage', 2],
- ['provokes', 'provoke', 2],
- ['disconnects', 'disconnect', 2],
- ['ministers', 'minister', 2],
- ['calendars', 'calendar', 2],
- ['reshapes', 'reshape', 2],
- ['mines', 'mine', 2],
- ['downplays', 'downplay', 2],
- ['burdens', 'burden', 2],
- ['handicaps', 'handicap', 2],
- ['alternates', 'alternate', 2],
- ['internationalizes', 'internationalize', 2],
- ['spawns', 'spawn', 2],
- ['propels', 'propel', 2],
- ['dismisses', 'dismiss', 2],
- ['neutralizes', 'neutralize', 2],
- ['sterilizes', 'sterilize', 2],
- ['sheets', 'sheet', 2],
- ['hypothesizes', 'hypothesize', 2],
- ['chases', 'chase', 2],
- ['unwinds', 'unwind', 2],
- ['incites', 'incite', 2],
- ['blames', 'blame', 2],
- ['overestimates', 'overestimate', 2],
- ['equalizes', 'equalize', 2],
- ['immunizes', 'immunize', 2],
- ['debits', 'debit', 2],
- ['forgoes', 'forgo', 2],
- ['advantages', 'advantage', 2],
- ['dreams', 'dream', 2],
- ['exacts', 'exact', 2],
- ['delves', 'delve', 2],
- ['relays', 'relay', 2],
- ['falters', 'falter', 2],
- ['institutionalizes', 'institutionalize', 2],
- ['inherits', 'inherit', 2],
- ['presages', 'presage', 2],
- ['outnumbers', 'outnumber', 2],
- ['convinces', 'convince', 2],
- ['bulletins', 'bulletin', 2],
- ['spearheads', 'spearhead', 2],
- ['personalizes', 'personalize', 2],
- ['volunteers', 'volunteer', 2],
- ['guests', 'guest', 2],
- ['battles', 'battle', 2],
- ['pockets', 'pocket', 2],
- ['expounds', 'expound', 2],
- ['legitimates', 'legitimate', 2],
- ['sidesteps', 'sidestep', 2],
- ['rosters', 'roster', 2],
- ['paroles', 'parole', 2],
- ['professes', 'profess', 2],
- ['prorates', 'prorate', 2],
- ['disallows', 'disallow', 2],
- ['engulfs', 'engulf', 2],
- ['straddles', 'straddle', 2],
- ['bespeaks', 'bespeak', 2],
- ['laments', 'lament', 2],
- ['discords', 'discord', 2],
- ['propitiates', 'propitiate', 2],
- ['recuperates', 'recuperate', 2],
- ['accedes', 'accede', 2],
- ['behooves', 'behoove', 2],
- ['legalizes', 'legalize', 2],
- ['analogizes', 'analogize', 2],
- ['lingers', 'linger', 2],
- ['traffics', 'traffic', 2],
- ['radiates', 'radiate', 2],
- ['clips', 'clip', 2],
- ['carts', 'cart', 2],
- ['trumpets', 'trumpet', 2],
- ['indemnifies', 'indemnify', 2],
- ['drags', 'drag', 2],
- ['collides', 'collide', 2],
- ['flags', 'flag', 2],
- ['chimes', 'chime', 2],
- ['saddles', 'saddle', 2],
- ['clubs', 'club', 2],
- ['rattles', 'rattle', 2],
- ['harbors', 'harbor', 2],
- ['ruins', 'ruin', 2],
- ['amazes', 'amaze', 2],
- ['revolts', 'revolt', 2],
- ['auditions', 'audition', 2],
- ['serenades', 'serenade', 2],
- ['disassembles', 'disassemble', 2],
- ['subsumes', 'subsume', 2],
- ['petitions', 'petition', 2],
- ['subsidises', 'subsidise', 2],
- ['longs', 'long', 2],
- ['treasures', 'treasure', 2],
- ['overemphasizes', 'overemphasize', 2],
- ['apprises', 'apprise', 2],
- ['initials', 'initial', 2],
- ['rides', 'ride', 2],
- ['marginalizes', 'marginalize', 2],
- ['slumps', 'slump', 2],
- ['premises', 'premise', 2],
- ['taints', 'taint', 2],
- ['mutualizes', 'mutualize', 2],
- ['digitizes', 'digitize', 2],
- ['apprehends', 'apprehend', 2],
- ['arrests', 'arrest', 2],
- ['amnesties', 'amnesty', 2],
- ['cosponsors', 'cosponsor', 2],
- ['mumps', 'mump', 2],
- ['orchestrates', 'orchestrate', 2],
- ['fortifies', 'fortify', 2],
- ['courts', 'court', 2],
- ['wards', 'ward', 2],
- ['plumes', 'plume', 2],
- ['cheats', 'cheat', 2],
- ['stables', 'stable', 2],
- ['delights', 'delight', 2],
- ['berths', 'berth', 2],
- ['clocks', 'clock', 2],
- ['cooks', 'cook', 2],
- ['roughs', 'rough', 2],
- ['slides', 'slide', 2],
- ['fastens', 'fasten', 2],
- ['repositions', 'reposition', 2],
- ['folds', 'fold', 2],
- ['encircles', 'encircle', 2],
- ['tows', 'tow', 2],
- ['defaces', 'deface', 2],
- ['mats', 'mat', 2],
- ['hoses', 'hose', 2],
- ['recalculates', 'recalculate', 2],
- ['docks', 'dock', 2],
- ['tires', 'tire', 2],
- ['disembarks', 'disembark', 2],
- ['belts', 'belt', 2],
- ['coins', 'coin', 2],
- ['offloads', 'offload', 2],
- ['stows', 'stow', 2],
- ['waters', 'water', 2],
- ['tents', 'tent', 2],
- ['jars', 'jar', 2],
- ['sulphonates', 'sulphonate', 2],
- ['burrs', 'burr', 2],
- ['plows', 'plow', 2],
- ['cranes', 'crane', 2],
- ['brushes', 'brush', 2],
- ['buoys', 'buoy', 2],
- ['roots', 'root', 2],
- ['powders', 'powder', 2],
- ['drills', 'drill', 2],
- ['blanks', 'blank', 2],
- ['cables', 'cable', 2],
- ['garments', 'garment', 2],
- ['pipes', 'pipe', 2],
- ['tiles', 'tile', 2],
- ['compresses', 'compress', 2],
- ['boots', 'boot', 2],
- ['cubes', 'cube', 2],
- ['mineralizes', 'mineralize', 2],
- ['regains', 'regain', 2],
- ['espouses', 'espouse', 2],
- ['arrays', 'array', 2],
- ['represses', 'repress', 2],
- ['assays', 'assay', 2],
- ['attenuates', 'attenuate', 2],
- ['modulates', 'modulate', 2],
- ['mutates', 'mutate', 2],
- ['popularizes', 'popularize', 2],
- ['dismantles', 'dismantle', 2],
+ ['scrutinizes', 'scrutinize'],
+ ['realigns', 'realign'],
+ ['entices', 'entice'],
+ ['elevates', 'elevate'],
+ ['awakens', 'awaken'],
+ ['contests', 'contest'],
+ ['schedules', 'schedule'],
+ ['magnifies', 'magnify'],
+ ['couples', 'couple'],
+ ['fares', 'fare'],
+ ['hovers', 'hover'],
+ ['debuts', 'debut'],
+ ['dazzles', 'dazzle'],
+ ['patrols', 'patrol'],
+ ['rumbles', 'rumble'],
+ ['curls', 'curl'],
+ ['glints', 'glint'],
+ ['seduces', 'seduce'],
+ ['steals', 'steal'],
+ ['incinerates', 'incinerate'],
+ ['sparks', 'spark'],
+ ['chambers', 'chamber'],
+ ['ascends', 'ascend'],
+ ['clusters', 'cluster'],
+ ['vaporizes', 'vaporize'],
+ ['commercializes', 'commercialize'],
+ ['dips', 'dip'],
+ ['enthuses', 'enthuse'],
+ ['restrains', 'restrain'],
+ ['thwarts', 'thwart'],
+ ['ripples', 'ripple'],
+ ['saps', 'sap'],
+ ['entraps', 'entrap'],
+ ['humiliates', 'humiliate'],
+ ['grounds', 'ground'],
+ ['bowls', 'bowl'],
+ ['appropriates', 'appropriate'],
+ ['nullifies', 'nullify'],
+ ['rubbers', 'rubber'],
+ ['glues', 'glue'],
+ ['polishes', 'polish'],
+ ['inks', 'ink'],
+ ['sifts', 'sift'],
+ ['defrays', 'defray'],
+ ['annotates', 'annotate'],
+ ['associates', 'associate'],
+ ['headlines', 'headline'],
+ ['layers', 'layer'],
+ ['accents', 'accent'],
+ ['juggles', 'juggle'],
+ ['skates', 'skate'],
+ ['protests', 'protest'],
+ ['patents', 'patent'],
+ ['lapses', 'lapse'],
+ ['gravitates', 'gravitate'],
+ ['surnames', 'surname'],
+ ['alarms', 'alarm'],
+ ['imitates', 'imitate'],
+ ['inconveniences', 'inconvenience'],
+ ['doctors', 'doctor'],
+ ['rebuilds', 'rebuild'],
+ ['administrates', 'administrate'],
+ ['sows', 'sow'],
+ ['disentitles', 'disentitle'],
+ ['bugs', 'bug'],
+ ['sprays', 'spray'],
+ ['stunts', 'stunt'],
+ ['mates', 'mate'],
+ ['defoliates', 'defoliate'],
+ ['burrows', 'burrow'],
+ ['alleviates', 'alleviate'],
+ ['encroaches', 'encroach'],
+ ['buries', 'bury'],
+ ['secretes', 'secrete'],
+ ['colonizes', 'colonize'],
+ ['repels', 'repel'],
+ ['injures', 'injure'],
+ ['tastes', 'taste'],
+ ['debriefs', 'debrief'],
+ ['flakes', 'flake'],
+ ['cakes', 'cake'],
+ ['starches', 'starch'],
+ ['pegs', 'peg'],
+ ['diversifies', 'diversify'],
+ ['hinnies', 'hinny'],
+ ['seeds', 'seed'],
+ ['sauces', 'sauce'],
+ ['squeezes', 'squeeze'],
+ ['overwhelms', 'overwhelm'],
+ ['spices', 'spice'],
+ ['militates', 'militate'],
+ ['cups', 'cup'],
+ ['exclaims', 'exclaim'],
+ ['partakes', 'partake'],
+ ['guesses', 'guess'],
+ ['thaws', 'thaw'],
+ ['leaches', 'leach'],
+ ['zones', 'zone'],
+ ['bolsters', 'bolster'],
+ ['apportions', 'apportion'],
+ ['surmises', 'surmise'],
+ ['coils', 'coil'],
+ ['lines', 'line'],
+ ['slits', 'slit'],
+ ['debunks', 'debunk'],
+ ['overlies', 'overlie'],
+ ['buffers', 'buffer'],
+ ['shelves', 'shelve'],
+ ['lands', 'land'],
+ ['strains', 'strain'],
+ ['stagnates', 'stagnate'],
+ ['exaggerates', 'exaggerate'],
+ ['hides', 'hide'],
+ ['blunts', 'blunt'],
+ ['rivals', 'rival'],
+ ['minimises', 'minimise'],
+ ['dwells', 'dwell'],
+ ['nests', 'nest'],
+ ['crumbles', 'crumble'],
+ ['pans', 'pan'],
+ ['wastes', 'waste'],
+ ['disengages', 'disengage'],
+ ['provokes', 'provoke'],
+ ['disconnects', 'disconnect'],
+ ['ministers', 'minister'],
+ ['calendars', 'calendar'],
+ ['reshapes', 'reshape'],
+ ['mines', 'mine'],
+ ['downplays', 'downplay'],
+ ['burdens', 'burden'],
+ ['handicaps', 'handicap'],
+ ['alternates', 'alternate'],
+ ['internationalizes', 'internationalize'],
+ ['spawns', 'spawn'],
+ ['propels', 'propel'],
+ ['dismisses', 'dismiss'],
+ ['neutralizes', 'neutralize'],
+ ['sterilizes', 'sterilize'],
+ ['sheets', 'sheet'],
+ ['hypothesizes', 'hypothesize'],
+ ['chases', 'chase'],
+ ['unwinds', 'unwind'],
+ ['incites', 'incite'],
+ ['blames', 'blame'],
+ ['overestimates', 'overestimate'],
+ ['equalizes', 'equalize'],
+ ['immunizes', 'immunize'],
+ ['debits', 'debit'],
+ ['forgoes', 'forgo'],
+ ['advantages', 'advantage'],
+ ['dreams', 'dream'],
+ ['exacts', 'exact'],
+ ['delves', 'delve'],
+ ['relays', 'relay'],
+ ['falters', 'falter'],
+ ['institutionalizes', 'institutionalize'],
+ ['inherits', 'inherit'],
+ ['presages', 'presage'],
+ ['outnumbers', 'outnumber'],
+ ['convinces', 'convince'],
+ ['bulletins', 'bulletin'],
+ ['spearheads', 'spearhead'],
+ ['personalizes', 'personalize'],
+ ['volunteers', 'volunteer'],
+ ['guests', 'guest'],
+ ['battles', 'battle'],
+ ['pockets', 'pocket'],
+ ['expounds', 'expound'],
+ ['legitimates', 'legitimate'],
+ ['sidesteps', 'sidestep'],
+ ['rosters', 'roster'],
+ ['paroles', 'parole'],
+ ['professes', 'profess'],
+ ['prorates', 'prorate'],
+ ['disallows', 'disallow'],
+ ['engulfs', 'engulf'],
+ ['straddles', 'straddle'],
+ ['bespeaks', 'bespeak'],
+ ['laments', 'lament'],
+ ['discords', 'discord'],
+ ['propitiates', 'propitiate'],
+ ['recuperates', 'recuperate'],
+ ['accedes', 'accede'],
+ ['behooves', 'behoove'],
+ ['legalizes', 'legalize'],
+ ['analogizes', 'analogize'],
+ ['lingers', 'linger'],
+ ['traffics', 'traffic'],
+ ['radiates', 'radiate'],
+ ['clips', 'clip'],
+ ['carts', 'cart'],
+ ['trumpets', 'trumpet'],
+ ['indemnifies', 'indemnify'],
+ ['drags', 'drag'],
+ ['collides', 'collide'],
+ ['flags', 'flag'],
+ ['chimes', 'chime'],
+ ['saddles', 'saddle'],
+ ['clubs', 'club'],
+ ['rattles', 'rattle'],
+ ['harbors', 'harbor'],
+ ['ruins', 'ruin'],
+ ['amazes', 'amaze'],
+ ['revolts', 'revolt'],
+ ['auditions', 'audition'],
+ ['serenades', 'serenade'],
+ ['disassembles', 'disassemble'],
+ ['subsumes', 'subsume'],
+ ['petitions', 'petition'],
+ ['subsidises', 'subsidise'],
+ ['longs', 'long'],
+ ['treasures', 'treasure'],
+ ['overemphasizes', 'overemphasize'],
+ ['apprises', 'apprise'],
+ ['initials', 'initial'],
+ ['rides', 'ride'],
+ ['marginalizes', 'marginalize'],
+ ['slumps', 'slump'],
+ ['premises', 'premise'],
+ ['taints', 'taint'],
+ ['mutualizes', 'mutualize'],
+ ['digitizes', 'digitize'],
+ ['apprehends', 'apprehend'],
+ ['arrests', 'arrest'],
+ ['amnesties', 'amnesty'],
+ ['cosponsors', 'cosponsor'],
+ ['mumps', 'mump'],
+ ['orchestrates', 'orchestrate'],
+ ['fortifies', 'fortify'],
+ ['courts', 'court'],
+ ['wards', 'ward'],
+ ['plumes', 'plume'],
+ ['cheats', 'cheat'],
+ ['stables', 'stable'],
+ ['delights', 'delight'],
+ ['berths', 'berth'],
+ ['clocks', 'clock'],
+ ['cooks', 'cook'],
+ ['roughs', 'rough'],
+ ['slides', 'slide'],
+ ['fastens', 'fasten'],
+ ['repositions', 'reposition'],
+ ['folds', 'fold'],
+ ['encircles', 'encircle'],
+ ['tows', 'tow'],
+ ['defaces', 'deface'],
+ ['mats', 'mat'],
+ ['hoses', 'hose'],
+ ['recalculates', 'recalculate'],
+ ['docks', 'dock'],
+ ['tires', 'tire'],
+ ['disembarks', 'disembark'],
+ ['belts', 'belt'],
+ ['coins', 'coin'],
+ ['offloads', 'offload'],
+ ['stows', 'stow'],
+ ['waters', 'water'],
+ ['tents', 'tent'],
+ ['jars', 'jar'],
+ ['sulphonates', 'sulphonate'],
+ ['burrs', 'burr'],
+ ['plows', 'plow'],
+ ['cranes', 'crane'],
+ ['brushes', 'brush'],
+ ['buoys', 'buoy'],
+ ['roots', 'root'],
+ ['powders', 'powder'],
+ ['drills', 'drill'],
+ ['blanks', 'blank'],
+ ['cables', 'cable'],
+ ['garments', 'garment'],
+ ['pipes', 'pipe'],
+ ['tiles', 'tile'],
+ ['compresses', 'compress'],
+ ['boots', 'boot'],
+ ['cubes', 'cube'],
+ ['mineralizes', 'mineralize'],
+ ['regains', 'regain'],
+ ['espouses', 'espouse'],
+ ['arrays', 'array'],
+ ['represses', 'repress'],
+ ['assays', 'assay'],
+ ['attenuates', 'attenuate'],
+ ['modulates', 'modulate'],
+ ['mutates', 'mutate'],
+ ['popularizes', 'popularize'],
+ ['dismantles', 'dismantle'],
['fuzzes', 'fuzz'],
['fizzes', 'fizz'],
['fizzles', 'fizzle'],
+ ['impresses', 'impress']
]
\ No newline at end of file
diff --git a/data/pairs/Superlative.js b/data/pairs/Superlative.js
index 0a6cfdc3e..6885b7c52 100644
--- a/data/pairs/Superlative.js
+++ b/data/pairs/Superlative.js
@@ -359,7 +359,7 @@ export default [
['steep', 'steepest'],
['stiff', 'stiffest'],
['straight', 'straightest'],
- ['sweet', 'sweettest'],
+ ['sweet', 'sweetest'],
['thick', 'thickest'],
['tight', 'tightest'],
['tough', 'toughest'],
@@ -368,6 +368,9 @@ export default [
['wide', 'widest'],
['dire', 'direst'],
['polite', 'politest'],
+ ['eager', 'eagerest'],
+ ['prompt', 'promptest'],
+ ['cheerful', 'cheerfullest'],
]
\ No newline at end of file
diff --git a/data/pairs/index.js b/data/pairs/index.js
index 4f2e62749..82d531f2e 100644
--- a/data/pairs/index.js
+++ b/data/pairs/index.js
@@ -4,6 +4,7 @@ import Participle from './Participle.js'
import PastTense from './PastTense.js'
import PresentTense from './PresentTense.js'
import Superlative from './Superlative.js'
+import AdjToNoun from './AdjToNoun.js'
export default {
Comparative,
@@ -12,4 +13,5 @@ export default {
PastTense,
PresentTense,
Superlative,
+ AdjToNoun,
}
\ No newline at end of file
diff --git a/learn/comparatives/data.js b/learn/comparatives/data.js
new file mode 100644
index 000000000..edd03c627
--- /dev/null
+++ b/learn/comparatives/data.js
@@ -0,0 +1,1247 @@
+export default {
+
+ 'aberrant': null,
+ 'ablaze': null,
+ 'able': null,
+ 'above': null,
+ 'abrasive': null,
+ 'abreast': null,
+ 'abrupt': null,
+ 'absent': null,
+ 'absolute': null,
+ 'abstract': null,
+ 'absurd': null,
+ 'abundant': null,
+ 'academic': null,
+ 'accurate': null,
+ 'active': null,
+ 'actual': null,
+ 'acute': null,
+ 'adamant': null,
+ 'adaptable': null,
+ 'adept': null,
+ 'adequate': null,
+ 'adorable': null,
+ 'adventurous': null,
+ 'adverse': null,
+ 'affectionate': null,
+ 'affluent': null,
+ 'afraid': null,
+ 'against': null,
+ 'aged': null,
+ 'aggressive': null,
+ 'agile': null,
+ 'agreeable': null,
+ 'ahead': null,
+ 'alcoholic': null,
+ 'alert': null,
+ 'alike': null,
+ 'alive': null,
+ 'alkaline': null,
+ 'almighty': null,
+ 'alone': null,
+ 'aloof': null,
+ 'alternate': null,
+ 'ambitious': null,
+ 'amiable': null,
+ 'ample': null,
+ 'amused': null,
+ 'ancient': null,
+ 'angelic': null,
+ 'angry': 'angrier',
+ 'animated': null,
+ 'annoyed': null,
+ 'antiquated': null,
+ 'antique': null,
+ 'anxious': null,
+ 'apathetic': null,
+ 'appalling': null,
+ 'apparent': null,
+ 'appealing': null,
+ 'appetizing': null,
+ 'apprehensive': null,
+ 'appropriate': null,
+ 'approximately': null,
+ 'apt': null,
+ 'archival': null,
+ 'arrogant': null,
+ 'artificial': null,
+ 'artistic': null,
+ 'ashen': null,
+ 'asleep': null,
+ 'assured': null,
+ 'attentive': null,
+ 'attractive': null,
+ 'authentic': null,
+ 'average': null,
+ 'awake': 'awakener',
+ 'aware': null,
+ 'awful': null,
+ 'awkward': null,
+ 'backwards': null,
+ 'bad': 'worse',
+ 'balanced': null,
+ 'bald': 'balder',
+ 'bare': null,
+ 'barren': null,
+ 'bawdy': 'bawdier',
+ 'beautiful': null,
+ 'behind': null,
+ 'believable': null,
+ 'beloved': null,
+ 'below': null,
+ 'beneath': null,
+ 'beneficial': null,
+ 'benign': null,
+ 'beside': null,
+ 'bewildered': null,
+ 'big': 'bigger',
+ 'bigtime': null,
+ 'bipartisan': null,
+ 'bitter': null,
+ 'bittersweet': null,
+ 'bizarre': null,
+ 'black': 'blacker',
+ 'bland': 'blander',
+ 'blessed': null,
+ 'blind': null,
+ 'blond': 'blonder',
+ 'bloody': 'bloodier',
+ 'blue': 'bluer',
+ 'bogus': null,
+ 'bold': 'bolder',
+ 'boldface': null,
+ 'bonafide': null,
+ 'bored': 'boreder',
+ 'boring': 'boriner',
+ 'bouncy': 'bouncier',
+ 'brash': 'brasher',
+ 'brave': 'braver',
+ 'brief': 'briefer',
+ 'bright': 'brighter',
+ 'brilliant': null,
+ 'brisk': null,
+ 'broad': 'broader',
+ 'bronze': null,
+ 'buff': 'buffer',
+ 'bureaucratic': null,
+ 'burly': 'burlier',
+ 'busy': 'busier',
+ 'calculate': null,
+ 'calm': 'calmer',
+ 'camp': 'camper',
+ 'capable': null,
+ 'careful': null,
+ 'careless': null,
+ 'catchy': 'catchier',
+ 'cautious': null,
+ 'celebate': null,
+ 'celestial': null,
+ 'certain': null,
+ 'chaotic': null,
+ 'charitable': null,
+ 'cheap': 'cheaper',
+ 'cheerful': null,
+ 'cheesy': 'cheesier',
+ 'cherished': null,
+ 'chilly': 'chillier',
+ 'civil': null,
+ 'classic': null,
+ 'clean': 'cleaner',
+ 'cleansed': null,
+ 'clear': 'clearer',
+ 'clever': 'cleverer',
+ 'close': 'closer',
+ 'cloudy': 'cloudier',
+ 'clumsy': 'clumsier',
+ 'coarse': 'coarser',
+ 'coastal': null,
+ 'coercive': null,
+ 'cognizant': null,
+ 'cold': 'colder',
+ 'colonial': null,
+ 'colorful': null,
+ 'colossal': null,
+ 'colourful': null,
+ 'comfortable': null,
+ 'commensurate': null,
+ 'committed': null,
+ 'common': null,
+ 'compassionate': null,
+ 'competent': null,
+ 'complete': null,
+ 'complex': null,
+ 'concave': null,
+ 'concerned': null,
+ 'concise': null,
+ 'conducive': null,
+ 'confident': null,
+ 'confused': null,
+ 'congruent': null,
+ 'conjoint': null,
+ 'conjugal': null,
+ 'consequent': null,
+ 'considerate': null,
+ 'consistent': null,
+ 'constant': null,
+ 'containerized': null,
+ 'content': null,
+ 'convenient': null,
+ 'cool': 'cooler',
+ 'cooperative': null,
+ 'corporate': null,
+ 'costly': 'costlier',
+ 'courageous': null,
+ 'courteous': null,
+ 'covert': null,
+ 'cowardly': null,
+ 'cozy': 'cozier',
+ 'craven': null,
+ 'crazed': null,
+ 'crazy': 'crazier',
+ 'creative': null,
+ 'credible': null,
+ 'crisp': 'crisper',
+ 'critical': null,
+ 'crowded': null,
+ 'crucial': null,
+ 'cruel': 'crueler',
+ 'cryptic': null,
+ 'crystalline': null,
+ 'cuddly': 'cuddlier',
+ 'curious': null,
+ 'curly': 'curlier',
+ 'custom': null,
+ 'cute': 'cuter',
+ 'cynical': null,
+ 'daily': null,
+ 'damp': 'damper',
+ 'dangerous': null,
+ 'daring': null,
+ 'dark': 'darker',
+ 'dead': null,
+ 'deadly': 'deadlier',
+ 'deadpan': null,
+ 'deaf': null,
+ 'dear': 'dearer',
+ 'deboned': null,
+ 'deceased': null,
+ 'dedicated': null,
+ 'deep': 'deeper',
+ 'defiant': null,
+ 'definite': null,
+ 'degenerate': null,
+ 'delicate': null,
+ 'delicious': null,
+ 'delightful': null,
+ 'demonstrative': null,
+ 'dense': 'denser',
+ 'dependable': null,
+ 'dependent': null,
+ 'depressed': null,
+ 'derelict': null,
+ 'desolate': null,
+ 'desperate': null,
+ 'detailed': null,
+ 'determined': null,
+ 'devoid': null,
+ 'devout': null,
+ 'didactic': null,
+ 'difficult': null,
+ 'diffuse': 'diffuser',
+ 'digital': null,
+ 'diligent': null,
+ 'dim': 'dimmer',
+ 'dire': 'direr',
+ 'direct': null,
+ 'dirty': 'dirtier',
+ 'disciplined': null,
+ 'discouraging': null,
+ 'discreet': null,
+ 'discrete': null,
+ 'diseased': null,
+ 'disgruntled': null,
+ 'disjoint': null,
+ 'disloyal': null,
+ 'disparate': null,
+ 'disrespectful': null,
+ 'distant': null,
+ 'distinct': null,
+ 'distorted': null,
+ 'distracted': null,
+ 'disturbed': null,
+ 'divergent': null,
+ 'diverse': null,
+ 'divine': 'diviner',
+ 'domestic': null,
+ 'dominant': null,
+ 'dormant': null,
+ 'doubtful': null,
+ 'drastic': null,
+ 'drunk': 'drunker',
+ 'dry': 'drier',
+ 'due': null,
+ 'dull': 'duller',
+ 'dumb': 'dumber',
+ 'dutiful': null,
+ 'dynamic': null,
+ 'eager': null,
+ 'early': 'earlier',
+ 'east': null,
+ 'easy': 'easier',
+ 'easygoing': null,
+ 'eccentric': null,
+ 'eclectic': null,
+ 'edgy': 'edgier',
+ 'eerie': 'eerier',
+ 'efficient': null,
+ 'effortless': null,
+ 'effusive': null,
+ 'elated': null,
+ 'elderly': null,
+ 'electric': null,
+ 'elegant': null,
+ 'emergent': null,
+ 'eminent': null,
+ 'emotional': null,
+ 'empty': 'emptier',
+ 'encouraging': null,
+ 'energetic': null,
+ 'enlightened': null,
+ 'entertaining': null,
+ 'enthusiastic': null,
+ 'equal': null,
+ 'equitable': null,
+ 'erect': null,
+ 'erratic': null,
+ 'essential': null,
+ 'eternal': null,
+ 'ethereal': null,
+ 'ethical': null,
+ 'eventful': null,
+ 'evil': null,
+ 'exact': null,
+ 'exalted': null,
+ 'excellent': null,
+ 'excessive': null,
+ 'excited': null,
+ 'exciting': null,
+ 'exempt': null,
+ 'exhausted': null,
+ 'exitless': null,
+ 'exotic': null,
+ 'expensive': null,
+ 'expert': null,
+ 'explicit': null,
+ 'explosive': null,
+ 'exquisite': null,
+ 'extinct': null,
+ 'extra': null,
+ 'extravagant': null,
+ 'exuberant': null,
+ 'exultant': null,
+ 'fabled': null,
+ 'faint': 'fainter',
+ 'fair': 'fairer',
+ 'faithful': null,
+ 'fake': 'faker',
+ 'false': null,
+ 'familiar': null,
+ 'famous': null,
+ 'fancy': 'fancier',
+ 'far': 'farther',
+ 'fast': 'faster',
+ 'fastidious': null,
+ 'fat': 'fatter',
+ 'fatalistic': null,
+ 'faulty': 'faultier',
+ 'faux': null,
+ 'fearless': null,
+ 'federal': null,
+ 'feeble': 'feebler',
+ 'female': null,
+ 'feminine': null,
+ 'fertile': null,
+ 'festive': null,
+ 'few': 'fewer',
+ 'fierce': 'fiercer',
+ 'filthy': 'filthier',
+ 'final': null,
+ 'fine': 'finer',
+ 'finite': null,
+ 'firm': 'firmer',
+ 'first': null,
+ 'flaccid': null,
+ 'flagrant': null,
+ 'flamboyant': null,
+ 'flat': 'flatter',
+ 'flawless': null,
+ 'flexible': null,
+ 'fluent': null,
+ 'fluid': null,
+ 'fluorescent': null,
+ 'foamy': 'foamier',
+ 'focused': null,
+ 'foggy': 'foggier',
+ 'fond': 'fonder',
+ 'foolish': null,
+ 'forceful': null,
+ 'foregoing': null,
+ 'foreign': null,
+ 'foreseeable': null,
+ 'forgetful': null,
+ 'formal': null,
+ 'fortunate': null,
+ 'fortunately': null,
+ 'forward': null,
+ 'foul': 'fouler',
+ 'fragile': null,
+ 'fragmented': null,
+ 'fragrant': null,
+ 'frail': 'frailer',
+ 'frank': 'franker',
+ 'frantic': null,
+ 'fraudulent': null,
+ 'free': 'freer',
+ 'frenzied': null,
+ 'frequent': null,
+ 'fresh': 'fresher',
+ 'fretful': null,
+ 'friendly': 'friendlier',
+ 'frightened': null,
+ 'frilly': null,
+ 'frozen': null,
+ 'frugal': null,
+ 'full': 'fuller',
+ 'fun': 'funer',
+ 'funny': 'funnier',
+ 'furry': 'furrier',
+ 'gainful': null,
+ 'garrulous': null,
+ 'gauche': 'gaucher',
+ 'gaudy': 'gaudier',
+ 'gay': 'gaier',
+ 'general': null,
+ 'generic': null,
+ 'generous': null,
+ 'gentle': 'gentler',
+ 'gentlemanly': null,
+ 'genuine': null,
+ 'ghastly': 'ghastlier',
+ 'ghostly': 'ghostlier',
+ 'giddy': 'giddier',
+ 'gifted': null,
+ 'gigantic': null,
+ 'glad': 'gladder',
+ 'gleaming': null,
+ 'glib': 'glibber',
+ 'global': null,
+ 'gloomy': 'gloomier',
+ 'glossy': null,
+ 'gold': 'golder',
+ 'golden': null,
+ 'good': 'better',
+ 'goofy': 'goofier',
+ 'graceful': null,
+ 'grand': 'grander',
+ 'grateful': null,
+ 'gratis': null,
+ 'grave': 'graver',
+ 'gray': 'grayer',
+ 'great': 'greater',
+ 'greedy': 'greedier',
+ 'green': 'greener',
+ 'grey': null,
+ 'grisly': 'grislier',
+ 'grizzled': null,
+ 'groovy': 'groovier',
+ 'gross': 'grosser',
+ 'gruesome': 'gruesomer',
+ 'half': null,
+ 'hallowed': null,
+ 'handsome': 'handsomer',
+ 'handy': 'handier',
+ 'happy': 'happier',
+ 'hard': 'harder',
+ 'hardy': 'hardier',
+ 'harmful': null,
+ 'harsh': 'harsher',
+ 'hasty': null,
+ 'hateful': null,
+ 'heady': 'headier',
+ 'healthy': 'healthier',
+ 'hearty': 'heartier',
+ 'heavy': 'heavier',
+ 'hefty': 'heftier',
+ 'hellish': null,
+ 'helpful': null,
+ 'high': 'higher',
+ 'hilly': 'hillier',
+ 'hispanic': null,
+ 'historical': null,
+ 'holistic': null,
+ 'holy': 'holier',
+ 'homely': 'homelier',
+ 'homesick': null,
+ 'honest': null,
+ 'hopeful': null,
+ 'horrific': null,
+ 'hostile': null,
+ 'hot': 'hotter',
+ 'hourly': null,
+ 'huge': 'huger',
+ 'humane': null,
+ 'humble': 'humbler',
+ 'humid': 'humider',
+ 'humorous': null,
+ 'hungry': 'hungrier',
+ 'hypocritical': null,
+ 'icy': 'icier',
+ 'ideal': null,
+ 'idealistic': null,
+ 'identical': null,
+ 'idyllic': null,
+ 'ignorant': null,
+ 'ill': null,
+ 'illegal': null,
+ 'illegitimate': null,
+ 'illicit': null,
+ 'illiterate': null,
+ 'imaginative': null,
+ 'immature': null,
+ 'immediate': null,
+ 'immense': null,
+ 'imminent': null,
+ 'impartial': null,
+ 'impatient': null,
+ 'impending': null,
+ 'imperfect': null,
+ 'implicit': null,
+ 'impolite': null,
+ 'important': null,
+ 'impressive': null,
+ 'improper': null,
+ 'impulsive': null,
+ 'inaccurate': null,
+ 'inadequate': null,
+ 'inappropriate': null,
+ 'inattentive': null,
+ 'inclusive': null,
+ 'incomparable': null,
+ 'incomplete': null,
+ 'inconsiderate': null,
+ 'incorrect': null,
+ 'indecisive': null,
+ 'indefinable': null,
+ 'indefinite': null,
+ 'independent': null,
+ 'indescribable': null,
+ 'indeterminate': null,
+ 'indifferent': null,
+ 'indirect': null,
+ 'indispensable': null,
+ 'indivisible': null,
+ 'indoor': null,
+ 'indulgent': null,
+ 'industrial': null,
+ 'industrious': null,
+ 'ineffable': null,
+ 'inept': null,
+ 'inert': null,
+ 'infallible': null,
+ 'infamous': null,
+ 'inferior': null,
+ 'infinite': null,
+ 'influential': null,
+ 'informative': null,
+ 'infrequent': null,
+ 'ingenious': null,
+ 'ingrown': null,
+ 'inherent': null,
+ 'inimitable': null,
+ 'initial': null,
+ 'innate': null,
+ 'innocent': null,
+ 'inoffensive': null,
+ 'inordinate': null,
+ 'insane': null,
+ 'inscrutable': null,
+ 'insensitive': null,
+ 'inside': null,
+ 'insightful': null,
+ 'insignificant': null,
+ 'insoluble': null,
+ 'insolvent': null,
+ 'insubordinate': null,
+ 'insurmountable': null,
+ 'intact': null,
+ 'intangible': null,
+ 'intelligent': null,
+ 'intense': null,
+ 'interdependent': null,
+ 'interesting': null,
+ 'intolerant': null,
+ 'intransigent': null,
+ 'intrinsic': null,
+ 'intuitive': null,
+ 'invaluable': null,
+ 'inventive': null,
+ 'invincible': null,
+ 'inviolable': null,
+ 'irate': null,
+ 'ironic': null,
+ 'irrelevant': null,
+ 'irreplaceable': null,
+ 'irresponsible': null,
+ 'irrevocable': null,
+ 'jealous': null,
+ 'jewelled': null,
+ 'jolly': 'jollier',
+ 'jovial': null,
+ 'joyful': null,
+ 'jubilant': null,
+ 'juicy': 'juicier',
+ 'junior': null,
+ 'just': null,
+ 'kaput': null,
+ 'keen': 'keener',
+ 'key': null,
+ 'kind': 'kinder',
+ 'kindly': null,
+ 'knowing': null,
+ 'knowledgeable': null,
+ 'lame': 'lamer',
+ 'languid': null,
+ 'lapsed': null,
+ 'large': 'larger',
+ 'late': 'later',
+ 'lately': null,
+ 'lateral': null,
+ 'lavish': null,
+ 'lax': null,
+ 'lazy': 'lazier',
+ 'lean': 'leaner',
+ 'leery': 'leerier',
+ 'legal': null,
+ 'legendary': null,
+ 'legitimate': null,
+ 'lengthy': 'lengthier',
+ 'lethal': null,
+ 'lethargic': null,
+ 'lewd': 'lewder',
+ 'liberal': null,
+ 'lifeless': null,
+ 'light': 'lighter',
+ 'lighthearted': null,
+ 'lightweight': null,
+ 'likeable': null,
+ 'likely': 'likelier',
+ 'limited': null,
+ 'limp': 'limper',
+ 'liquid': null,
+ 'literal': null,
+ 'literate': null,
+ 'little': 'littler',
+ 'lively': 'livelier',
+ 'local': null,
+ 'lofty': 'loftier',
+ 'logical': null,
+ 'lonely': 'lonelier',
+ 'long': 'longer',
+ 'longstanding': null,
+ 'longterm': null,
+ 'longtime': null,
+ 'loose': 'looser',
+ 'loud': 'louder',
+ 'lousy': 'lousier',
+ 'loutish': null,
+ 'lovable': null,
+ 'lovely': 'lovelier',
+ 'loving': null,
+ 'low': 'lower',
+ 'loyal': null,
+ 'lucky': 'luckier',
+ 'lukewarm': null,
+ 'lumbering': null,
+ 'luscious': null,
+ 'macabre': null,
+ 'macho': null,
+ 'mad': 'madder',
+ 'magenta': null,
+ 'magnetic': null,
+ 'magnificent': null,
+ 'main': null,
+ 'mainstream': null,
+ 'majestic': null,
+ 'major': null,
+ 'makeshift': null,
+ 'male': null,
+ 'mammalian': null,
+ 'mammoth': null,
+ 'manageable': null,
+ 'manual': null,
+ 'maritime': null,
+ 'martial': null,
+ 'masculine': null,
+ 'massive': null,
+ 'mature': null,
+ 'mean': 'meaner',
+ 'measly': 'measlier',
+ 'meaty': 'meatier',
+ 'medieval': null,
+ 'mediocre': null,
+ 'meek': 'meeker',
+ 'mega': null,
+ 'mellow': 'mellower',
+ 'menacing': null,
+ 'messy': 'messier',
+ 'metropolitan': null,
+ 'mild': 'milder',
+ 'military': null,
+ 'mindblowing': null,
+ 'mini': null,
+ 'miserly': null,
+ 'modern': null,
+ 'modest': null,
+ 'moist': 'moister',
+ 'monochrome': null,
+ 'monthly': null,
+ 'moody': 'moodier',
+ 'moot': null,
+ 'moral': null,
+ 'most': null,
+ 'motivated': null,
+ 'multiple': null,
+ 'mundane': null,
+ 'municipal': null,
+ 'mysterious': null,
+ 'naive': null,
+ 'naked': null,
+ 'nappy': 'nappier',
+ 'narrow': 'narrower',
+ 'nasty': 'nastier',
+ 'national': null,
+ 'natural': null,
+ 'nausiating': null,
+ 'naval': null,
+ 'near': 'nearer',
+ 'neat': 'neater',
+ 'neighborly': null,
+ 'nervous': null,
+ 'new': 'newer',
+ 'next': null,
+ 'nice': 'nicer',
+ 'nightly': null,
+ 'nimble': 'nimbler',
+ 'noble': 'nobler',
+ 'noisy': 'noisier',
+ 'nonchalant': null,
+ 'nondescript': null,
+ 'nonprofit': null,
+ 'nonstop': null,
+ 'normal': null,
+ 'north': null,
+ 'northern': null,
+ 'nosy': 'nosier',
+ 'notable': null,
+ 'nuanced': null,
+ 'nuclear': null,
+ 'numb': 'number',
+ 'obediant': null,
+ 'obedient': null,
+ 'obese': null,
+ 'objective': null,
+ 'obscene': null,
+ 'observant': null,
+ 'obsolete': null,
+ 'odd': 'odder',
+ 'offbeat': null,
+ 'offensive': null,
+ 'offline': null,
+ 'oily': 'oilier',
+ 'old': 'older',
+ 'ongoing': null,
+ 'online': null,
+ 'opaque': null,
+ 'open': null,
+ 'optimistic': null,
+ 'oral': null,
+ 'orderly': null,
+ 'organic': null,
+ 'organized': null,
+ 'outdoor': null,
+ 'outer': null,
+ 'outlandish': null,
+ 'outside': null,
+ 'outward': null,
+ 'over': null,
+ 'overnight': null,
+ 'overseas': null,
+ 'overt': null,
+ 'overweight': null,
+ 'overwhelming': null,
+ 'overwrought': null,
+ 'painful': null,
+ 'pale': 'paler',
+ 'parallel': null,
+ 'paranoid': null,
+ 'partial': null,
+ 'partisan': null,
+ 'passionate': null,
+ 'patient': null,
+ 'peaceful': null,
+ 'perfect': null,
+ 'permanent': null,
+ 'persistent': null,
+ 'persuasive': null,
+ 'pertinent': null,
+ 'perverse': null,
+ 'pessimistic': null,
+ 'petite': null,
+ 'petty': 'pettier',
+ 'phony': 'phonier',
+ 'pink': 'pinker',
+ 'placid': null,
+ 'plaid': null,
+ 'plain': null,
+ 'platonic': null,
+ 'pleasant': null,
+ 'pleasing': null,
+ 'pliable': null,
+ 'plural': null,
+ 'polite': null,
+ 'poor': 'poorer',
+ 'popular': null,
+ 'populist': null,
+ 'postal': null,
+ 'powerful': null,
+ 'powerless': null,
+ 'practical': null,
+ 'precise': null,
+ 'preexisting': null,
+ 'pregnant': null,
+ 'premature': null,
+ 'present': null,
+ 'pretty': 'prettier',
+ 'prickly': 'pricklier',
+ 'prima': null,
+ 'prior': null,
+ 'pristine': null,
+ 'private': null,
+ 'probable': null,
+ 'productive': null,
+ 'profane': null,
+ 'professional': null,
+ 'proficient': null,
+ 'profound': null,
+ 'profuse': null,
+ 'progressive': null,
+ 'prominent': null,
+ 'proper': null,
+ 'proportionate': null,
+ 'protective': null,
+ 'proud': 'prouder',
+ 'proximate': null,
+ 'prudent': null,
+ 'public': null,
+ 'pungent': null,
+ 'punjabi': null,
+ 'puny': 'punier',
+ 'pure': 'purer',
+ 'quarterly': null,
+ 'quick': 'quicker',
+ 'quiet': 'quieter',
+ 'rabid': null,
+ 'racial': null,
+ 'radiant': null,
+ 'ragged': null,
+ 'rainy': 'rainier',
+ 'random': null,
+ 'rapid': null,
+ 'rare': 'rarer',
+ 'raw': 'rawer',
+ 'ready': 'readier',
+ 'real': null,
+ 'realistic': null,
+ 'reasonable': null,
+ 'rebellious': null,
+ 'recent': null,
+ 'reckless': null,
+ 'recondite': null,
+ 'redundant': null,
+ 'relaxed': null,
+ 'relevant': null,
+ 'reliable': null,
+ 'reluctant': null,
+ 'remote': null,
+ 'renowned': null,
+ 'resistant': null,
+ 'resolute': null,
+ 'resonant': null,
+ 'resourceful': null,
+ 'respectful': null,
+ 'responsible': null,
+ 'restless': null,
+ 'restricted': null,
+ 'retarded': null,
+ 'reticent': null,
+ 'rich': 'richer',
+ 'right': 'righter',
+ 'righteous': null,
+ 'rightful': null,
+ 'rigid': null,
+ 'ripe': 'riper',
+ 'risky': 'riskier',
+ 'ritzy': 'ritzier',
+ 'rival': null,
+ 'robust': null,
+ 'romantic': null,
+ 'roomy': 'roomier',
+ 'rosy': 'rosier',
+ 'rotten': null,
+ 'rough': 'rougher',
+ 'round': 'rounder',
+ 'royal': null,
+ 'rude': 'ruder',
+ 'ruthless': null,
+ 'sacred': null,
+ 'sad': 'sadder',
+ 'safe': 'safer',
+ 'saintly': 'saintlier',
+ 'salty': 'saltier',
+ 'same': null,
+ 'satisfied': null,
+ 'savvy': 'savvier',
+ 'scanty': 'scantier',
+ 'scarce': 'scarcer',
+ 'scared': 'scarier',
+ 'scarlet': null,
+ 'scary': 'scarier',
+ 'scathing': null,
+ 'scenic': null,
+ 'scholarly': null,
+ 'scientific': null,
+ 'scripted': null,
+ 'scruffed': null,
+ 'secure': null,
+ 'seemly': null,
+ 'self-assured': null,
+ 'selfish': null,
+ 'selfless': null,
+ 'sensible': null,
+ 'sensitive': null,
+ 'serene': null,
+ 'serious': null,
+ 'severe': null,
+ 'sexy': 'sexier',
+ 'shady': 'shadier',
+ 'shallow': 'shallower',
+ 'shameful': null,
+ 'sharp': 'sharper',
+ 'shiny': 'shinier',
+ 'short': 'shorter',
+ 'shrewd': null,
+ 'shrill': 'shriller',
+ 'shy': 'shyer',
+ 'sick': 'sicker',
+ 'sickly': 'sicklier',
+ 'significant': null,
+ 'silky': 'silkier',
+ 'silly': 'sillier',
+ 'simple': 'simpler',
+ 'sincere': null,
+ 'skilled': null,
+ 'skillful': null,
+ 'skinny': 'skinnier',
+ 'slack': 'slacker',
+ 'sleek': 'sleeker',
+ 'sleepy': 'sleepier',
+ 'slight': 'slighter',
+ 'slim': 'slimmer',
+ 'slimy': 'slimier',
+ 'slippery': null,
+ 'sloppy': 'sloppier',
+ 'slow': 'slower',
+ 'sly': 'slier',
+ 'small': 'smaller',
+ 'smart': 'smarter',
+ 'smelly': 'smellier',
+ 'smooth': 'smoother',
+ 'smug': null,
+ 'snarling ': null,
+ 'snobbish': null,
+ 'soft': 'softer',
+ 'solemn': 'solemner',
+ 'solid': null,
+ 'solitary': 'solitarer',
+ 'soluble': null,
+ 'somber': null,
+ 'soon': 'sooner',
+ 'sophisticated': null,
+ 'sordid': null,
+ 'sore': 'sorer',
+ 'sorrowful': null,
+ 'sorry': 'sorrier',
+ 'sound': 'sounder',
+ 'soundproof': null,
+ 'south': null,
+ 'southern': null,
+ 'soviet': null,
+ 'sparkly': null,
+ 'sparse': 'sparser',
+ 'specific': null,
+ 'speedy': 'speedier',
+ 'spicy': 'spicier',
+ 'spirited': null,
+ 'spiritual': null,
+ 'splendid': null,
+ 'spoken': null,
+ 'spontaneous': null,
+ 'sprightly': 'sprightlier',
+ 'square': 'squarer',
+ 'squeamish': null,
+ 'stale': 'staler',
+ 'stark': 'starker',
+ 'steadfast': null,
+ 'steady': 'steadier',
+ 'steep': 'steeper',
+ 'sterile': null,
+ 'stern': 'sterner',
+ 'stiff': 'stiffer',
+ 'stingy': 'stingier',
+ 'stoked-up': null,
+ 'stoppable': null,
+ 'stout': 'stouter',
+ 'straight': 'straighter',
+ 'straightforward': null,
+ 'strict': 'stricter',
+ 'stringent': null,
+ 'strong': 'stronger',
+ 'stunning': null,
+ 'stupid': 'stupider',
+ 'sturdy': 'sturdier',
+ 'stylish': null,
+ 'subdued': null,
+ 'subpar': null,
+ 'subsequent': null,
+ 'substandard': null,
+ 'subtle': 'subtler',
+ 'suburban': null,
+ 'successful': null,
+ 'sudden': null,
+ 'super': null,
+ 'superb': null,
+ 'supple': null,
+ 'supportive': null,
+ 'supreme': null,
+ 'surly': null,
+ 'surprising': null,
+ 'surreal': null,
+ 'suspect': null,
+ 'sweet': 'sweeter',
+ 'swift': 'swifter',
+ 'symbolic': null,
+ 'talented': null,
+ 'tall': 'taller',
+ 'tame': 'tamer',
+ 'tart': null,
+ 'tasteful': null,
+ 'tawdry': 'tawdrier',
+ 'teenage': null,
+ 'temperate': null,
+ 'tender': null,
+ 'tense': 'tenser',
+ 'tentative': null,
+ 'terrific': null,
+ 'testable': null,
+ 'thankful': null,
+ 'thick': 'thicker',
+ 'thin': 'thinner',
+ 'thirsty': 'thirstier',
+ 'thorough': null,
+ 'thoughtful': null,
+ 'thoughtless': null,
+ 'tidy': 'tidier',
+ 'tight': 'tighter',
+ 'timely': 'timelier',
+ 'timid': null,
+ 'tiny': 'tinier',
+ 'tired': null,
+ 'together': null,
+ 'tolerant': null,
+ 'torpid': null,
+ 'tough': 'tougher',
+ 'tranquil': null,
+ 'translucent': null,
+ 'transparent': null,
+ 'trendy': 'trendier',
+ 'triangular': null,
+ 'tricky': 'trickier',
+ 'trim': 'trimmer',
+ 'trite': null,
+ 'true': 'truer',
+ 'trusting': null,
+ 'trustworthy': null,
+ 'truthful': null,
+ 'turbulent': null,
+ 'ugly': 'uglier',
+ 'ultimate': null,
+ 'ultimately': null,
+ 'ultra': null,
+ 'unappealing': null,
+ 'unassailable': null,
+ 'unassuming': null,
+ 'unattainable': null,
+ 'unattended': null,
+ 'unauthorized': null,
+ 'unaware': null,
+ 'unbearable': null,
+ 'unbecoming': null,
+ 'unchangeable': null,
+ 'unchecked': null,
+ 'uncompromising': null,
+ 'unconditional': null,
+ 'unconscionable': null,
+ 'uncontrollable': null,
+ 'unconvincing': null,
+ 'uncouth': null,
+ 'uncreative': null,
+ 'undecided': null,
+ 'undeniable': null,
+ 'underlying': null,
+ 'undersized': null,
+ 'understanding': null,
+ 'underwater': null,
+ 'underweight': null,
+ 'undiminished': null,
+ 'undisclosed': null,
+ 'undue': null,
+ 'uneasy': null,
+ 'unemployed': null,
+ 'unending': null,
+ 'unenlightened': null,
+ 'unenthusiastic': null,
+ 'unequal': null,
+ 'unexpected': null,
+ 'unfair': null,
+ 'unfaithful': null,
+ 'unfathomable': null,
+ 'unfocused': null,
+ 'unforeseen': null,
+ 'unforgettable': null,
+ 'unfortunate': null,
+ 'unfortunately': null,
+ 'unfriendly': 'unfriendlier',
+ 'ungrateful': null,
+ 'unimaginative': null,
+ // 'unimportant': 'less important',
+ 'unique': null,
+ 'united': null,
+ 'universal': null,
+ 'unknown': null,
+ 'unlikely': 'unlikelier',
+ 'unlucky': 'unluckier',
+ 'unmanageable': null,
+ 'unmarried': null,
+ 'unmistakable': null,
+ 'unnatural': null,
+ 'unpaid': null,
+ 'unparalleled': null,
+ 'unpleasant': null,
+ 'unprecedented': null,
+ 'unprepared': null,
+ 'unrecognized': null,
+ 'unrecoverable': null,
+ 'unregulated': null,
+ 'unrelated': null,
+ 'unrelenting': null,
+ 'unreliable': null,
+ 'unresolved': null,
+ 'unruly': null,
+ 'unseen': null,
+ 'unsightly': null,
+ 'unsold': null,
+ 'unspeakable': null,
+ 'unspent': null,
+ 'unspoken': null,
+ 'unsupervised': null,
+ 'unsuspecting': null,
+ 'untamed': null,
+ 'untidy': 'untidier',
+ 'untold': null,
+ 'untouchable': null,
+ 'untrue': null,
+ 'unused': null,
+ 'unusual': null,
+ 'unwanted': null,
+ 'unyielding': null,
+ 'upbeat': null,
+ 'upscale': null,
+ 'uptight': null,
+ 'urban': null,
+ 'urgent': null,
+ 'useful': null,
+ 'useless': null,
+ 'usual': null,
+ 'uttermost': null,
+ 'vacant': null,
+ 'vague': 'vaguer',
+ 'vain': 'vainer',
+ 'valiant': null,
+ 'valuable': null,
+ 'valuble': null,
+ 'vast': 'vaster',
+ 'vengeful': null,
+ 'verbose': null,
+ 'versatile': null,
+ 'vibrant': null,
+ 'vigilant': null,
+ 'vigorous': null,
+ 'vile': null,
+ 'virtuous': null,
+ 'vivid': null,
+ 'volatile': null,
+ 'vulnerable': null,
+ 'warm': 'warmer',
+ 'wary': 'warier',
+ 'wasteful': null,
+ 'weak': 'weaker',
+ 'weakly': 'weaklier',
+ 'wealthy': 'wealthier',
+ 'weary': 'wearier',
+ 'weatherproof': null,
+ 'weekly': null,
+ 'weird': 'weirder',
+ 'western': null,
+ 'wet': 'wetter',
+ 'white': 'whiter',
+ 'whole': null,
+ 'wholesale': null,
+ 'wicked': 'wickeder',
+ 'wide-eyed': null,
+ 'wide': 'wider',
+ 'widespread': null,
+ 'wild': 'wilder',
+ 'wily': 'wilier',
+ 'wise': 'wiser',
+ 'wisely': 'wiselier',
+ 'wistful': null,
+ 'witty': 'wittier',
+ 'womanly': null,
+ 'wonderful': null,
+ 'wooden': null,
+ 'worried': null,
+ 'worthwhile': null,
+ 'worthy': null,
+ 'wounded': null,
+ 'wrong': 'wronger',
+ 'yearly': null,
+ 'young': 'younger',
+ 'zany': 'zanier',
+ 'zealous': null,
+ // 'entire': null,
+ // 'hardworking': 'harder working',
+ // 'simple-minded': 'simpler-minded',
+ // 'sweet-smelling': 'sweeter-smelling',
+
+}
\ No newline at end of file
diff --git a/learn/comparatives/index.js b/learn/comparatives/index.js
new file mode 100644
index 000000000..c8f4557fb
--- /dev/null
+++ b/learn/comparatives/index.js
@@ -0,0 +1,25 @@
+import data from './data.js'
+
+// incapable|less capable
+// inflexible|less flexible
+// insensitive|less sensitive
+// unambitious|less ambitious
+// unattractive|less attractive
+// uncreative|less creative
+// unfaithful|less faithful
+// unfriendly|less friendly
+// unhealthy|less healthy
+// unhelpful|less helpful
+// unimaginative|less imaginative
+// unimportant|less important
+// unpopular|less popular
+// unrealistic|less realistic
+// unreliable|less reliable
+// unsuccessful|less successful
+// unsympathetic|less sympathetic
+
+Object.keys(data).forEach(k => {
+ if (k === data[k]) {
+ console.log(k, data[k])
+ }
+})
\ No newline at end of file
diff --git a/learn/gpt/api.js b/learn/gpt/api.js
new file mode 100644
index 000000000..dc0be86d7
--- /dev/null
+++ b/learn/gpt/api.js
@@ -0,0 +1,23 @@
+/* eslint-disable no-console, no-unused-vars */
+import * as dotenv from 'dotenv'
+dotenv.config()
+import { Configuration, OpenAIApi } from "openai";
+
+const configuration = new Configuration({ apiKey: process.env.OPENAI_API_KEY });
+const openai = new OpenAIApi(configuration);
+
+const gpt = async function (input) {
+ const completion = await openai.createCompletion({
+ model: "text-davinci-003",
+ prompt: input,
+ max_tokens: 4000, //4097
+ temperature: 0.9,//0.6,
+ n: 1,
+ });
+ console.log('[' + completion.data.usage.total_tokens, 'tokens ', completion.data.choices[0].finish_reason + ']\n')
+ return completion.data.choices[0]
+}
+
+export default gpt
+// let res = await gpt('please generate a list of 275 adjective - comparative pairs')
+// console.log(res)
\ No newline at end of file
diff --git a/learn/gpt/out.txt b/learn/gpt/out.txt
new file mode 100644
index 000000000..e69de29bb
diff --git a/learn/gpt/package-lock.json b/learn/gpt/package-lock.json
new file mode 100644
index 000000000..33839d2dd
--- /dev/null
+++ b/learn/gpt/package-lock.json
@@ -0,0 +1,189 @@
+{
+ "name": "openai-quickstart-node",
+ "version": "0.1.0",
+ "lockfileVersion": 2,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "openai-quickstart-node",
+ "version": "0.1.0",
+ "dependencies": {
+ "dotenv": "^16.0.3",
+ "openai": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=14.6.0"
+ }
+ },
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+ },
+ "node_modules/axios": {
+ "version": "0.26.1",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz",
+ "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==",
+ "dependencies": {
+ "follow-redirects": "^1.14.8"
+ }
+ },
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/dotenv": {
+ "version": "16.0.3",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz",
+ "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/follow-redirects": {
+ "version": "1.15.2",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
+ "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/openai": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/openai/-/openai-3.2.1.tgz",
+ "integrity": "sha512-762C9BNlJPbjjlWZi4WYK9iM2tAVAv0uUp1UmI34vb0CN5T2mjB/qM6RYBmNKMh/dN9fC+bxqPwWJZUTWW052A==",
+ "dependencies": {
+ "axios": "^0.26.0",
+ "form-data": "^4.0.0"
+ }
+ }
+ },
+ "dependencies": {
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+ },
+ "axios": {
+ "version": "0.26.1",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz",
+ "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==",
+ "requires": {
+ "follow-redirects": "^1.14.8"
+ }
+ },
+ "combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
+ },
+ "dotenv": {
+ "version": "16.0.3",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz",
+ "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ=="
+ },
+ "follow-redirects": {
+ "version": "1.15.2",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
+ "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA=="
+ },
+ "form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
+ },
+ "mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "requires": {
+ "mime-db": "1.52.0"
+ }
+ },
+ "openai": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/openai/-/openai-3.2.1.tgz",
+ "integrity": "sha512-762C9BNlJPbjjlWZi4WYK9iM2tAVAv0uUp1UmI34vb0CN5T2mjB/qM6RYBmNKMh/dN9fC+bxqPwWJZUTWW052A==",
+ "requires": {
+ "axios": "^0.26.0",
+ "form-data": "^4.0.0"
+ }
+ }
+ }
+}
diff --git a/learn/gpt/package.json b/learn/gpt/package.json
new file mode 100644
index 000000000..b0f338761
--- /dev/null
+++ b/learn/gpt/package.json
@@ -0,0 +1,16 @@
+{
+ "name": "openai-quickstart-node",
+ "version": "0.1.0",
+ "private": true,
+ "type": "module",
+ "scripts": {
+ "watch": "amble ./scratch.js"
+ },
+ "dependencies": {
+ "dotenv": "^16.0.3",
+ "openai": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=14.6.0"
+ }
+}
diff --git a/learn/gpt/scratch.js b/learn/gpt/scratch.js
new file mode 100644
index 000000000..7149fe587
--- /dev/null
+++ b/learn/gpt/scratch.js
@@ -0,0 +1,9 @@
+import gpt from './api.js'
+import fs from 'fs'
+
+let res = await gpt(`generate 150 single-words that describe a feeling.`)
+console.log(res.text)
+
+
+
+fs.writeFileSync('./out.txt', res.text, { flag: 'a' })
diff --git a/learn/phrasals/list.js b/learn/phrasals/list.js
new file mode 100644
index 000000000..e58907a2c
--- /dev/null
+++ b/learn/phrasals/list.js
@@ -0,0 +1,249 @@
+export default {
+ 'act up': `portarse mal`,
+ 'back up': `dar marcha atrás`,
+ 'blow up': `explotar`,
+ 'break down': `descomponerse`,
+ 'bring up': `criar`,
+ 'call off': `cancelar`,
+ 'carry on': `continuar`,
+ 'catch up': `alcanzar`,
+ 'cheer up': `alegrar`,
+ 'check in': `registrarse`,
+ 'check out': `echar un vistazo`,
+ 'come across': `encontrarse con`,
+ 'come up with': `idear`,
+ 'count on': `contar con`,
+ 'cross out': `tachar`,
+ 'cut down': `reducir`,
+ 'do over': `hacer de nuevo`,
+ 'drop off': `dejar caer`,
+ 'end up': `terminar`,
+ 'figure out': `descubrir`,
+ 'fill out': `rellenar`,
+ 'find out': `descubrir`,
+ 'fix up': `arreglar`,
+ 'get away': `escapar`,
+ 'get in': `subir`,
+ 'get off': `bajar`,
+ 'get on': `subir`,
+ 'get out': `salir`,
+ 'get over': `superar`,
+ 'give up': `rendirse`,
+ 'go ahead': `adelante`,
+ 'go away': `irse`,
+ 'go on': `continuar`,
+ 'grow up': `crecer`,
+ 'hang up': `colgar`,
+ 'hold on': `esperar`,
+ 'keep up': `mantener`,
+ 'knock out': `noquear`,
+ 'lay off': `despedir`,
+ 'leave out': `omitir`,
+ 'look after': `cuidar`,
+ 'look forward to': `esperar con ilusión`,
+ 'look up': `buscar`,
+ 'make up': `inventar`,
+ 'mess up': `estropear`,
+ 'pass out': `desmayarse`,
+ 'pick up': `recoger`,
+ 'point out': `señalar`,
+ 'put off': `posponer`,
+ 'put up with': `aguantar`,
+ 'run into': `encontrarse con`,
+ 'set up': `establecer`,
+ 'show off': `presumir`,
+ 'sort out': `resolver`,
+ 'stand out': `destacar`,
+ 'take after': `parecerse a`,
+ 'take off': `despegar`,
+ 'take up': `empezar a hacer`,
+ 'talk over': `discutir`,
+ 'think over': `reflexionar`,
+ 'throw away': `tirar`,
+ 'try on': `probarse`,
+ 'turn down': `rechazar`,
+ 'turn off': `apagar`,
+ 'turn on': `encender`,
+ 'turn up': `aparecer`,
+ 'use up': `agotar`,
+ 'wake up': `despertarse`,
+ 'walk out': `abandonar`,
+ 'warm up': `calentar`,
+ 'watch out': `cuidado`,
+ 'work out': `resolver`,
+ 'write down': `apuntar`,
+ 'back out': `echarse atrás`,
+ 'back up': `respaldar`,
+ 'beat up': `golpear`,
+ 'blow up': `hinchar`,
+ 'break down': `romper`,
+ 'bring about': `provocar`,
+ 'bring back': `devolver`,
+ 'bring down': `derribar`,
+ 'bring in': `introducir`,
+ 'break down': `tomber en panne`,
+ 'break in': `mettre à l'aise`,
+ 'break out': `éclater`,
+ 'break up': `se séparer`,
+ 'bring about': `provoquer`,
+ 'bring back': `rapporter`,
+ 'bring up': `élever`,
+ 'call off': `annuler`,
+ 'call up': `appeler`,
+ 'carry on': `continuer`,
+ 'catch on': `comprendre`,
+ 'check in': `s'enregistrer`,
+ 'check out': `quitter l'hôtel`,
+ 'check over': `vérifier`,
+ 'come across': `rencontrer par hasard`,
+ 'come down': `descendre`,
+ 'come in': `entrer`,
+ 'come off': `réussir`,
+ 'come on': `avancer`,
+ 'come out': `sortir`,
+ 'come up': `surgir`,
+ 'count on': `compter sur`,
+ 'cut down': `réduire`,
+ 'cut off': `couper`,
+ 'deal with': `traiter de`,
+ 'do away with': `se débarrasser de`,
+ 'do over': `refaire`,
+ 'drop off': `déposer`,
+ 'end up': `finir par`,
+ 'fall apart': `s'effondrer`,
+ 'fall down': `tomber`,
+ 'fall off': `diminuer`,
+ 'fall out': `se disputer`,
+ 'figure out': `comprendre`,
+ 'fill in': `remplir`,
+ 'find out': `découvrir`,
+ 'get along': `s'entendre`,
+ 'get away': `partir`,
+ 'get back': `rentrer`,
+ 'get in': `entrer`,
+ 'get off': `descendre`,
+ 'get on': `monter`,
+ 'get out': `sortir`,
+ 'get over': `surmonter`,
+ 'get up': `se lever`,
+ 'give up': `abandonner`,
+ 'go along': `continuer`,
+ 'go back': `retourner`,
+ 'go on': `continuer`,
+ 'go out': `sortir`,
+ 'go over': `passer en revue`,
+ 'grow up': `grandir`,
+ 'hang out': `traîner`,
+ 'hold on': `attendre`,
+ 'hold up': `retarder`,
+ 'keep on': `continuer`,
+ 'knock off': `arrêter`,
+ 'knock out': `mettre k.o.`,
+ 'lay off': `licencier`,
+ 'leave out': `laisser de côté`,
+ 'let down': `décevoir`,
+ 'let in': `laisser entrer`,
+ 'let off': `lâcher`,
+ 'let out': `libérer`,
+ 'look after': `s'occuper de`,
+ 'look for': `chercher`,
+ 'look out': `faire attention`,
+ 'look up': `chercher`,
+ 'make up': `inventer`,
+ 'mix up': `mélanger`,
+ 'pass out': `s'évanouir`,
+ 'pay back': `rembourser`,
+ 'pick out': `choisir`,
+ 'pick up': `ramasser`,
+ 'point out': `signaler`,
+ 'put away': `ranger`,
+ 'put off': `remettre à plus tard`,
+ 'put on': `mettre`,
+ 'put out': `éteindre`,
+ 'put up': `héberger`,
+ 'run away': `s'enfuir`,
+ 'run into': `rencontrer par hasard`,
+ 'run out': `s'épuiser`,
+ 'set up': `installer`,
+ 'show off': `frimer`,
+ 'break out': `éclater`,
+ 'call off': `annuler`,
+ 'carry out': `effectuer`,
+ 'catch up': `rattraper`,
+ 'come across': `rencontrer`,
+ 'come up with': `trouver`,
+ 'count on': `compter sur`,
+ 'drop off': `déposer`,
+ 'end up': `finir par`,
+ 'figure out': `comprendre`,
+ 'get along': `s'entendre`,
+ 'give up': `abandonner`,
+ 'go on': `continuer`,
+ 'keep up': `maintenir`,
+ 'look after': `s'occuper de`,
+ 'make up': `inventer`,
+ 'pick up': `récupérer`,
+ 'put off': `remettre à plus tard`,
+ 'set up': `installer`,
+ 'take off': `décoller.`,
+ 'look after': `s'occuper de`,
+ 'take after': `ressembler à`,
+ 'hold back': `retenir`,
+ 'break down': `tomber en panne`,
+ 'come across': `tomber sur`,
+ 'give in': `céder`,
+ 'put off': `repousser`,
+ 'stand up': `se lever`,
+ 'get over': `surmonter`,
+ 'call off': `annuler`,
+ 'put up': `héberger`,
+ 'look up': `chercher`,
+ 'carry on': `continuer`,
+ 'take off': `décoller`,
+ 'show off': `montrer`,
+ 'turn up': `apparaître`,
+ 'run out': `s'épuiser`,
+ 'bring up': `élever`,
+ 'cut off': `couper`,
+ 'keep up': `suivre`,
+ 'fill up': `remplir`,
+ 'find out': `découvrir`,
+ 'hang up': `raccrocher`,
+ 'break up': `rompre`,
+ 'look out': `faire attention`,
+ 'make up': `inventer`,
+ 'pass out': `s'évanouir`,
+ 'pick up': `ramasser`,
+ 'put on': `mettre`,
+ 'set up': `installer`,
+ 'take up': `prendre`,
+ 'throw away': `jeter`,
+ 'turn off': `éteindre`,
+ 'watch out': `faire attention`,
+ 'work out': `résoudre`,
+ 'break out': `éclater`,
+ 'catch up': `rattraper`,
+ 'come up with': `trouver`,
+ 'get away': `s'échapper`,
+ 'hold on': `attendre`,
+ 'let down': `décevoir`,
+ 'look forward to': `avoir hâte de`,
+ 'make out': `comprendre`,
+ 'put out': `éteindre`,
+ 'run away': `fuir`,
+ 'take back': `reprendre`,
+ 'turn on': `allumer`,
+ 'wake up': `se réveiller`,
+ 'blow up': `exploser`,
+ 'hold up': `retarder`,
+ 'break down': `tomber en panne`,
+ 'bring up': `évoquer`,
+ 'carry out': `effectuer`,
+ 'come across': `tomber sur`,
+ 'get along': `s'entendre`,
+ 'put off': `décourager`,
+ 'run into': `rencontrer par hasard`,
+ 'take up': `se mettre à`,
+ 'turn down': `refuser`,
+ 'wake up': `se réveiller`,
+}
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 431f48651..46c7ad539 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,23 +1,23 @@
{
"name": "compromise",
- "version": "14.8.1",
+ "version": "14.8.2",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "compromise",
- "version": "14.8.1",
+ "version": "14.8.2",
"license": "MIT",
"dependencies": {
"efrt": "2.7.0",
"grad-school": "0.0.5",
- "suffix-thumb": "4.0.2"
+ "suffix-thumb": "5.0.2"
},
"devDependencies": {
"@rollup/plugin-node-resolve": "15.0.1",
"amble": "1.3.0",
- "eslint": "8.33.0",
- "eslint-plugin-regexp": "1.12.0",
+ "eslint": "8.39.0",
+ "eslint-plugin-regexp": "1.14.0",
"nlp-corpus": "4.4.0",
"rollup": "3.7.4",
"rollup-plugin-filesize-check": "0.0.2",
@@ -65,15 +65,39 @@
"node": ">=6.9.0"
}
},
+ "node_modules/@eslint-community/eslint-utils": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
+ "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+ "dev": true,
+ "dependencies": {
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+ }
+ },
+ "node_modules/@eslint-community/regexpp": {
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz",
+ "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==",
+ "dev": true,
+ "engines": {
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+ }
+ },
"node_modules/@eslint/eslintrc": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz",
- "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz",
+ "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==",
"dev": true,
"dependencies": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
- "espree": "^9.4.0",
+ "espree": "^9.5.1",
"globals": "^13.19.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
@@ -88,6 +112,15 @@
"url": "https://opencollective.com/eslint"
}
},
+ "node_modules/@eslint/js": {
+ "version": "8.39.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.39.0.tgz",
+ "integrity": "sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
"node_modules/@humanwhocodes/config-array": {
"version": "0.11.8",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
@@ -807,12 +840,15 @@
}
},
"node_modules/eslint": {
- "version": "8.33.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.33.0.tgz",
- "integrity": "sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==",
+ "version": "8.39.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz",
+ "integrity": "sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==",
"dev": true,
"dependencies": {
- "@eslint/eslintrc": "^1.4.1",
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.4.0",
+ "@eslint/eslintrc": "^2.0.2",
+ "@eslint/js": "8.39.0",
"@humanwhocodes/config-array": "^0.11.8",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
@@ -822,11 +858,10 @@
"debug": "^4.3.2",
"doctrine": "^3.0.0",
"escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.1.1",
- "eslint-utils": "^3.0.0",
- "eslint-visitor-keys": "^3.3.0",
- "espree": "^9.4.0",
- "esquery": "^1.4.0",
+ "eslint-scope": "^7.2.0",
+ "eslint-visitor-keys": "^3.4.0",
+ "espree": "^9.5.1",
+ "esquery": "^1.4.2",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
"file-entry-cache": "^6.0.1",
@@ -847,7 +882,6 @@
"minimatch": "^3.1.2",
"natural-compare": "^1.4.0",
"optionator": "^0.9.1",
- "regexpp": "^3.2.0",
"strip-ansi": "^6.0.1",
"strip-json-comments": "^3.1.0",
"text-table": "^0.2.0"
@@ -863,19 +897,19 @@
}
},
"node_modules/eslint-plugin-regexp": {
- "version": "1.12.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-regexp/-/eslint-plugin-regexp-1.12.0.tgz",
- "integrity": "sha512-A1lnzOqHC22Ve8PZJgcw5pDHk5Sxp7J/pY86u027lVEGpUwe7dhZVVsy3SCm/cN438Zts8e9c09KGIVK4IixuA==",
+ "version": "1.14.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-regexp/-/eslint-plugin-regexp-1.14.0.tgz",
+ "integrity": "sha512-5+bBSsRTTtkSf8+/iNSjiOW6qbjAdGyqv88HxPaBNFKxROK+UAdOGDl5Jr+csV5wW2BuOOvaG82zsvTriQBRFA==",
"dev": true,
"dependencies": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.4.0",
"comment-parser": "^1.1.2",
- "eslint-utils": "^3.0.0",
"grapheme-splitter": "^1.0.4",
"jsdoctypeparser": "^9.0.0",
- "refa": "^0.9.0",
- "regexp-ast-analysis": "^0.5.1",
- "regexpp": "^3.2.0",
- "scslre": "^0.1.6"
+ "refa": "^0.11.0",
+ "regexp-ast-analysis": "^0.6.0",
+ "scslre": "^0.2.0"
},
"engines": {
"node": "^12 || >=14"
@@ -884,20 +918,10 @@
"eslint": ">=6.0.0"
}
},
- "node_modules/eslint-plugin-regexp/node_modules/regexp-ast-analysis": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/regexp-ast-analysis/-/regexp-ast-analysis-0.5.1.tgz",
- "integrity": "sha512-Ca/g9gaTNuMewLuu+mBIq4vCrGRSO8AE9bP32NMQjJ/wBTdWq0g96qLkBb0NbGwEbp7S/q+NQF3o7veeuRfg0g==",
- "dev": true,
- "dependencies": {
- "refa": "^0.9.0",
- "regexpp": "^3.2.0"
- }
- },
"node_modules/eslint-scope": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
- "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz",
+ "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==",
"dev": true,
"dependencies": {
"esrecurse": "^4.3.0",
@@ -905,33 +929,21 @@
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- }
- },
- "node_modules/eslint-utils": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
- "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
- "dev": true,
- "dependencies": {
- "eslint-visitor-keys": "^2.0.0"
- },
- "engines": {
- "node": "^10.0.0 || ^12.0.0 || >= 14.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/mysticatea"
- },
- "peerDependencies": {
- "eslint": ">=5"
+ "url": "https://opencollective.com/eslint"
}
},
"node_modules/eslint-visitor-keys": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
- "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz",
+ "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==",
"dev": true,
"engines": {
- "node": ">=10"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
"node_modules/eslint/node_modules/ansi-styles": {
@@ -995,15 +1007,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/eslint/node_modules/eslint-visitor-keys": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
- "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
- "dev": true,
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- }
- },
"node_modules/eslint/node_modules/glob-parent": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
@@ -1038,14 +1041,14 @@
}
},
"node_modules/espree": {
- "version": "9.4.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz",
- "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==",
+ "version": "9.5.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz",
+ "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==",
"dev": true,
"dependencies": {
"acorn": "^8.8.0",
"acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^3.3.0"
+ "eslint-visitor-keys": "^3.4.0"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -1054,19 +1057,10 @@
"url": "https://opencollective.com/eslint"
}
},
- "node_modules/espree/node_modules/eslint-visitor-keys": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
- "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
- "dev": true,
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- }
- },
"node_modules/esquery": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
- "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
+ "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
"dev": true,
"dependencies": {
"estraverse": "^5.1.0"
@@ -1088,9 +1082,9 @@
}
},
"node_modules/estraverse": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
- "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
"dev": true,
"engines": {
"node": ">=4.0"
@@ -2324,22 +2318,28 @@
}
},
"node_modules/refa": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/refa/-/refa-0.9.1.tgz",
- "integrity": "sha512-egU8LgFq2VXlAfUi8Jcbr5X38wEOadMFf8tCbshgcpVCYlE7k84pJOSlnvXF+muDB4igkdVMq7Z/kiNPqDT9TA==",
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/refa/-/refa-0.11.0.tgz",
+ "integrity": "sha512-486O8/pQXwj9jV0mVvUnTsxq0uknpBnNJ0eCUhkZqJRQ8KutrT1PhzmumdCeM1hSBF2eMlFPmwECRER4IbKXlQ==",
"dev": true,
"dependencies": {
- "regexpp": "^3.2.0"
+ "@eslint-community/regexpp": "^4.5.0"
+ },
+ "engines": {
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
}
},
"node_modules/regexp-ast-analysis": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/regexp-ast-analysis/-/regexp-ast-analysis-0.2.4.tgz",
- "integrity": "sha512-8L7kOZQaKPxKKAwGuUZxTQtlO3WZ+tiXy4s6G6PKL6trbOXcZoumwC3AOHHFtI/xoSbNxt7jgLvCnP1UADLWqg==",
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/regexp-ast-analysis/-/regexp-ast-analysis-0.6.0.tgz",
+ "integrity": "sha512-OLxjyjPkVH+rQlBLb1I/P/VTmamSjGkvN5PTV5BXP432k3uVz727J7H29GA5IFiY0m7e1xBN7049Wn59FY3DEQ==",
"dev": true,
"dependencies": {
- "refa": "^0.9.0",
- "regexpp": "^3.2.0"
+ "@eslint-community/regexpp": "^4.5.0",
+ "refa": "^0.11.0"
+ },
+ "engines": {
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
}
},
"node_modules/regexp.prototype.flags": {
@@ -2359,18 +2359,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/regexpp": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
- "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
- }
- },
"node_modules/resolve": {
"version": "1.22.1",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
@@ -2509,14 +2497,14 @@
}
},
"node_modules/scslre": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/scslre/-/scslre-0.1.6.tgz",
- "integrity": "sha512-JORxVRlQTfjvlOAaiQKebgFElyAm5/W8b50lgaZ0OkEnKnagJW2ufDh3xRfU75UD9z3FGIu1gL1IyR3Poa6Qmw==",
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/scslre/-/scslre-0.2.0.tgz",
+ "integrity": "sha512-4hc49fUMmX3jM0XdFUAPBrs1xwEcdHa0KyjEsjFs+Zfc66mpFpq5YmRgDtl+Ffo6AtJIilfei+yKw8fUn3N88w==",
"dev": true,
"dependencies": {
- "refa": "^0.9.0",
- "regexp-ast-analysis": "^0.2.3",
- "regexpp": "^3.2.0"
+ "@eslint-community/regexpp": "^4.5.0",
+ "refa": "^0.11.0",
+ "regexp-ast-analysis": "^0.6.0"
}
},
"node_modules/serialize-javascript": {
@@ -2702,9 +2690,9 @@
}
},
"node_modules/suffix-thumb": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/suffix-thumb/-/suffix-thumb-4.0.2.tgz",
- "integrity": "sha512-CCvCAr7JyeQoO+/lyq3P2foZI/xJz5kpG3L6kg2CaOf9K2/gaM9ixy/JTuRwjEK38l306zE7vl3JoOZYmLQLlA=="
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/suffix-thumb/-/suffix-thumb-5.0.2.tgz",
+ "integrity": "sha512-I5PWXAFKx3FYnI9a+dQMWNqTxoRt6vdBdb0O+BJ1sxXCWtSoQCusc13E58f+9p4MYx/qCnEMkD5jac6K2j3dgA=="
},
"node_modules/supports-color": {
"version": "5.5.0",
@@ -3056,15 +3044,30 @@
"js-tokens": "^4.0.0"
}
},
+ "@eslint-community/eslint-utils": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
+ "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^3.3.0"
+ }
+ },
+ "@eslint-community/regexpp": {
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz",
+ "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==",
+ "dev": true
+ },
"@eslint/eslintrc": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz",
- "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz",
+ "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==",
"dev": true,
"requires": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
- "espree": "^9.4.0",
+ "espree": "^9.5.1",
"globals": "^13.19.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
@@ -3073,6 +3076,12 @@
"strip-json-comments": "^3.1.1"
}
},
+ "@eslint/js": {
+ "version": "8.39.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.39.0.tgz",
+ "integrity": "sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==",
+ "dev": true
+ },
"@humanwhocodes/config-array": {
"version": "0.11.8",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
@@ -3628,12 +3637,15 @@
"dev": true
},
"eslint": {
- "version": "8.33.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.33.0.tgz",
- "integrity": "sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==",
+ "version": "8.39.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz",
+ "integrity": "sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==",
"dev": true,
"requires": {
- "@eslint/eslintrc": "^1.4.1",
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.4.0",
+ "@eslint/eslintrc": "^2.0.2",
+ "@eslint/js": "8.39.0",
"@humanwhocodes/config-array": "^0.11.8",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
@@ -3643,11 +3655,10 @@
"debug": "^4.3.2",
"doctrine": "^3.0.0",
"escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.1.1",
- "eslint-utils": "^3.0.0",
- "eslint-visitor-keys": "^3.3.0",
- "espree": "^9.4.0",
- "esquery": "^1.4.0",
+ "eslint-scope": "^7.2.0",
+ "eslint-visitor-keys": "^3.4.0",
+ "espree": "^9.5.1",
+ "esquery": "^1.4.2",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
"file-entry-cache": "^6.0.1",
@@ -3668,7 +3679,6 @@
"minimatch": "^3.1.2",
"natural-compare": "^1.4.0",
"optionator": "^0.9.1",
- "regexpp": "^3.2.0",
"strip-ansi": "^6.0.1",
"strip-json-comments": "^3.1.0",
"text-table": "^0.2.0"
@@ -3714,12 +3724,6 @@
"integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
"dev": true
},
- "eslint-visitor-keys": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
- "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
- "dev": true
- },
"glob-parent": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
@@ -3747,81 +3751,52 @@
}
},
"eslint-plugin-regexp": {
- "version": "1.12.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-regexp/-/eslint-plugin-regexp-1.12.0.tgz",
- "integrity": "sha512-A1lnzOqHC22Ve8PZJgcw5pDHk5Sxp7J/pY86u027lVEGpUwe7dhZVVsy3SCm/cN438Zts8e9c09KGIVK4IixuA==",
+ "version": "1.14.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-regexp/-/eslint-plugin-regexp-1.14.0.tgz",
+ "integrity": "sha512-5+bBSsRTTtkSf8+/iNSjiOW6qbjAdGyqv88HxPaBNFKxROK+UAdOGDl5Jr+csV5wW2BuOOvaG82zsvTriQBRFA==",
"dev": true,
"requires": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.4.0",
"comment-parser": "^1.1.2",
- "eslint-utils": "^3.0.0",
"grapheme-splitter": "^1.0.4",
"jsdoctypeparser": "^9.0.0",
- "refa": "^0.9.0",
- "regexp-ast-analysis": "^0.5.1",
- "regexpp": "^3.2.0",
- "scslre": "^0.1.6"
- },
- "dependencies": {
- "regexp-ast-analysis": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/regexp-ast-analysis/-/regexp-ast-analysis-0.5.1.tgz",
- "integrity": "sha512-Ca/g9gaTNuMewLuu+mBIq4vCrGRSO8AE9bP32NMQjJ/wBTdWq0g96qLkBb0NbGwEbp7S/q+NQF3o7veeuRfg0g==",
- "dev": true,
- "requires": {
- "refa": "^0.9.0",
- "regexpp": "^3.2.0"
- }
- }
+ "refa": "^0.11.0",
+ "regexp-ast-analysis": "^0.6.0",
+ "scslre": "^0.2.0"
}
},
"eslint-scope": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
- "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz",
+ "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==",
"dev": true,
"requires": {
"esrecurse": "^4.3.0",
"estraverse": "^5.2.0"
}
},
- "eslint-utils": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
- "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
- "dev": true,
- "requires": {
- "eslint-visitor-keys": "^2.0.0"
- }
- },
"eslint-visitor-keys": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
- "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz",
+ "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==",
"dev": true
},
"espree": {
- "version": "9.4.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz",
- "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==",
+ "version": "9.5.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz",
+ "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==",
"dev": true,
"requires": {
"acorn": "^8.8.0",
"acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^3.3.0"
- },
- "dependencies": {
- "eslint-visitor-keys": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
- "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
- "dev": true
- }
+ "eslint-visitor-keys": "^3.4.0"
}
},
"esquery": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
- "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
+ "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
"dev": true,
"requires": {
"estraverse": "^5.1.0"
@@ -3837,9 +3812,9 @@
}
},
"estraverse": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
- "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
"dev": true
},
"estree-walker": {
@@ -4728,22 +4703,22 @@
}
},
"refa": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/refa/-/refa-0.9.1.tgz",
- "integrity": "sha512-egU8LgFq2VXlAfUi8Jcbr5X38wEOadMFf8tCbshgcpVCYlE7k84pJOSlnvXF+muDB4igkdVMq7Z/kiNPqDT9TA==",
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/refa/-/refa-0.11.0.tgz",
+ "integrity": "sha512-486O8/pQXwj9jV0mVvUnTsxq0uknpBnNJ0eCUhkZqJRQ8KutrT1PhzmumdCeM1hSBF2eMlFPmwECRER4IbKXlQ==",
"dev": true,
"requires": {
- "regexpp": "^3.2.0"
+ "@eslint-community/regexpp": "^4.5.0"
}
},
"regexp-ast-analysis": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/regexp-ast-analysis/-/regexp-ast-analysis-0.2.4.tgz",
- "integrity": "sha512-8L7kOZQaKPxKKAwGuUZxTQtlO3WZ+tiXy4s6G6PKL6trbOXcZoumwC3AOHHFtI/xoSbNxt7jgLvCnP1UADLWqg==",
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/regexp-ast-analysis/-/regexp-ast-analysis-0.6.0.tgz",
+ "integrity": "sha512-OLxjyjPkVH+rQlBLb1I/P/VTmamSjGkvN5PTV5BXP432k3uVz727J7H29GA5IFiY0m7e1xBN7049Wn59FY3DEQ==",
"dev": true,
"requires": {
- "refa": "^0.9.0",
- "regexpp": "^3.2.0"
+ "@eslint-community/regexpp": "^4.5.0",
+ "refa": "^0.11.0"
}
},
"regexp.prototype.flags": {
@@ -4757,12 +4732,6 @@
"functions-have-names": "^1.2.2"
}
},
- "regexpp": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
- "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
- "dev": true
- },
"resolve": {
"version": "1.22.1",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
@@ -4859,14 +4828,14 @@
}
},
"scslre": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/scslre/-/scslre-0.1.6.tgz",
- "integrity": "sha512-JORxVRlQTfjvlOAaiQKebgFElyAm5/W8b50lgaZ0OkEnKnagJW2ufDh3xRfU75UD9z3FGIu1gL1IyR3Poa6Qmw==",
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/scslre/-/scslre-0.2.0.tgz",
+ "integrity": "sha512-4hc49fUMmX3jM0XdFUAPBrs1xwEcdHa0KyjEsjFs+Zfc66mpFpq5YmRgDtl+Ffo6AtJIilfei+yKw8fUn3N88w==",
"dev": true,
"requires": {
- "refa": "^0.9.0",
- "regexp-ast-analysis": "^0.2.3",
- "regexpp": "^3.2.0"
+ "@eslint-community/regexpp": "^4.5.0",
+ "refa": "^0.11.0",
+ "regexp-ast-analysis": "^0.6.0"
}
},
"serialize-javascript": {
@@ -5007,9 +4976,9 @@
"dev": true
},
"suffix-thumb": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/suffix-thumb/-/suffix-thumb-4.0.2.tgz",
- "integrity": "sha512-CCvCAr7JyeQoO+/lyq3P2foZI/xJz5kpG3L6kg2CaOf9K2/gaM9ixy/JTuRwjEK38l306zE7vl3JoOZYmLQLlA=="
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/suffix-thumb/-/suffix-thumb-5.0.2.tgz",
+ "integrity": "sha512-I5PWXAFKx3FYnI9a+dQMWNqTxoRt6vdBdb0O+BJ1sxXCWtSoQCusc13E58f+9p4MYx/qCnEMkD5jac6K2j3dgA=="
},
"supports-color": {
"version": "5.5.0",
diff --git a/package.json b/package.json
index 3c338eb75..df8a41d13 100644
--- a/package.json
+++ b/package.json
@@ -2,44 +2,49 @@
"author": "Spencer Kelly (http://spencermounta.in)",
"name": "compromise",
"description": "modest natural language processing",
- "version": "14.8.2",
+ "version": "14.9.0",
"main": "./src/three.js",
"unpkg": "./builds/compromise.js",
"type": "module",
- "types": "types/three.d.ts",
"sideEffects": false,
+ "types": "./types/three.d.ts",
"exports": {
".": {
"import": "./src/three.js",
- "require": "./builds/three/compromise-three.cjs"
+ "require": "./builds/three/compromise-three.cjs",
+ "types": "./types/three.d.ts"
},
"./tokenize": {
"import": "./src/one.js",
- "require": "./builds/one/compromise-one.cjs"
+ "require": "./builds/one/compromise-one.cjs",
+ "types": "./types/one.d.ts"
},
"./one": {
"import": "./src/one.js",
- "require": "./builds/one/compromise-one.cjs"
+ "require": "./builds/one/compromise-one.cjs",
+ "types": "./types/one.d.ts"
},
"./two": {
"import": "./src/two.js",
- "require": "./builds/two/compromise-two.cjs"
+ "require": "./builds/two/compromise-two.cjs",
+ "types": "./types/two.d.ts"
},
"./three": {
"import": "./src/three.js",
- "require": "./builds/three/compromise-three.cjs"
+ "require": "./builds/three/compromise-three.cjs",
+ "types": "./types/three.d.ts"
}
},
"typesVersions": {
"*": {
"one": [
- "types/one.d.ts"
+ "./types/one.d.ts"
],
"two": [
- "types/two.d.ts"
+ "./types/two.d.ts"
],
"three": [
- "types/three.d.ts"
+ "./types/three.d.ts"
]
}
},
@@ -93,13 +98,13 @@
"dependencies": {
"efrt": "2.7.0",
"grad-school": "0.0.5",
- "suffix-thumb": "4.0.2"
+ "suffix-thumb": "5.0.2"
},
"devDependencies": {
"@rollup/plugin-node-resolve": "15.0.1",
"amble": "1.3.0",
- "eslint": "8.33.0",
- "eslint-plugin-regexp": "1.12.0",
+ "eslint": "8.39.0",
+ "eslint-plugin-regexp": "1.14.0",
"nlp-corpus": "4.4.0",
"rollup": "3.7.4",
"rollup-plugin-filesize-check": "0.0.2",
diff --git a/plugins/_experiments/ast/README.md b/plugins/_experiments/ast/README.md
new file mode 100644
index 000000000..2166273af
--- /dev/null
+++ b/plugins/_experiments/ast/README.md
@@ -0,0 +1 @@
+attempt to create a [unist-formatted](https://github.com/syntax-tree/unist) Abstract Syntax Tree via some [dependency parsing](http://nlpprogress.com/english/dependency_parsing.html)
diff --git a/plugins/_experiments/ast/package.json b/plugins/_experiments/ast/package.json
new file mode 100644
index 000000000..c7c41d057
--- /dev/null
+++ b/plugins/_experiments/ast/package.json
@@ -0,0 +1,45 @@
+{
+ "name": "compromise-ast",
+ "description": "plugin for nlp-compromise",
+ "version": "0.0.0",
+ "author": "Spencer Kelly (http://spencermounta.in)",
+ "main": "./src/plugin.js",
+ "unpkg": "./builds/compromise-ast.min.js",
+ "module": "./builds/compromise-ast.mjs",
+ "type": "module",
+ "types": "index.d.ts",
+ "sideEffects": false,
+ "exports": {
+ ".": {
+ "import": "./src/plugin.js",
+ "require": "./builds/compromise-ast.cjs"
+ }
+ },
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/spencermountain/compromise.git"
+ },
+ "homepage": "https://github.com/spencermountain/compromise/tree/master/plugins/ast",
+ "scripts": {
+ "test": "tape \"./tests/**/*.test.js\" | tap-dancer --color always",
+ "testb": "TESTENV=prod tape \"./tests/**/*.test.js\" | tap-dancer --color always",
+ "watch": "amble ./scratch.js",
+ "build": "rollup -c --silent"
+ },
+ "eslintIgnore": [
+ "builds/*.js"
+ ],
+ "files": [
+ "builds/",
+ "src/",
+ "index.d.ts"
+ ],
+ "peerDependencies": {
+ "compromise": ">=14.0.0"
+ },
+ "dependencies": {},
+ "license": "MIT",
+ "devDependencies": {
+ "@rollup/plugin-commonjs": "^24.0.1"
+ }
+}
\ No newline at end of file
diff --git a/plugins/_experiments/ast/scratch.js b/plugins/_experiments/ast/scratch.js
new file mode 100644
index 000000000..8d87deae6
--- /dev/null
+++ b/plugins/_experiments/ast/scratch.js
@@ -0,0 +1,12 @@
+import nlp from '../../../src/three.js'
+import plg from './src/plugin.js'
+nlp.plugin(plg)
+
+let str = ''
+str = `I prefer the morning flight through Denver. it was cool,
+oh yeah nice`
+let doc = nlp(str)
+// console.log(doc.lines())
+// let tree = doc.ast()
+// console.dir(tree, { depth: 10 })
+doc.chunks().debug('chunker')
diff --git a/plugins/_experiments/ast/src/ast.js b/plugins/_experiments/ast/src/ast.js
new file mode 100644
index 000000000..fab67b262
--- /dev/null
+++ b/plugins/_experiments/ast/src/ast.js
@@ -0,0 +1,75 @@
+
+const chunkType = function (chunk) {
+ if (chunk.isVerb().found) {
+ return 'verbPhrase'
+ }
+ if (chunk.isNoun().found) {
+ return 'nounPhrase'
+ }
+ if (chunk.isPivot().found) {
+ return 'pivot'
+ }
+ if (chunk.isAdjective().found) {
+ return 'adjectivePhrase'
+ }
+ return null
+}
+
+const doWord = function (w) {
+ let term = w.docs[0][0]
+ let offset = term.offset
+ let node = {
+ type: 'word',
+ children: [],
+ position: {
+ start: { line: term.line + 1, column: null, offset: offset.start },
+ end: { line: term.line + 1, column: null, offset: offset.start + offset.length }
+ }
+ }
+ if (term.pre) {
+ node.children.push({
+ type: 'punct', value: term.pre, // data: { word: false }
+ })
+ }
+ node.children.push({
+ type: 'text', value: term.text, data: { normal: term.normal, tags: Array.from(term.tags) },
+ // position: { }
+ })
+ if (term.post) {
+ node.children.push({
+ type: 'punct', value: term.post, // data: { word: false }
+ })
+ }
+ return node
+}
+
+const doChunk = function (chunk) {
+ let type = chunkType(chunk)
+ let node = {
+ type: type,
+ children: chunk.terms().map(doWord),
+ // position: {}
+ }
+ return node
+}
+
+
+const doSentence = function (s) {
+ let node = {
+ type: 'sentence',
+ children: s.chunks().map(doChunk, []),
+ position: {}
+ }
+ return node
+}
+
+const toAst = function (doc) {
+ doc.compute(['chunks', 'offset', 'lines'])
+ let root = {
+ type: 'root',
+ children: doc.sentences().map(doSentence),
+ position: {}
+ }
+ return root
+}
+export default toAst
\ No newline at end of file
diff --git a/plugins/_experiments/ast/src/compute/index.js b/plugins/_experiments/ast/src/compute/index.js
new file mode 100644
index 000000000..2c3436725
--- /dev/null
+++ b/plugins/_experiments/ast/src/compute/index.js
@@ -0,0 +1,12 @@
+
+export default {
+ lines: function (view) {
+ view.lines().forEach((arr, i) => {
+ arr.forEach(s => {
+ s.docs[0].forEach(term => {
+ term.line = i
+ })
+ })
+ })
+ }
+}
\ No newline at end of file
diff --git a/plugins/_experiments/ast/src/lines.js b/plugins/_experiments/ast/src/lines.js
new file mode 100644
index 000000000..72d3f1558
--- /dev/null
+++ b/plugins/_experiments/ast/src/lines.js
@@ -0,0 +1,21 @@
+// return all newline-seperated sections in the document
+const toLines = function (doc) {
+ const newLine = /\n/
+ let lines = [[]]
+ // a newline already splits a sentence,
+ // so it can only happen at the end of a sentence
+ doc.sentences().forEach(s => {
+ lines[lines.length - 1].push(s)
+ let terms = s.docs[0]
+ let end = terms[terms.length - 1]
+ if (newLine.test(end.post)) {
+ lines.push([])
+ }
+ })
+ // remove an empty last one
+ if (lines[lines.length - 1].length === 0) {
+ lines.pop()
+ }
+ return lines
+}
+export default toLines
\ No newline at end of file
diff --git a/plugins/_experiments/ast/src/plugin.js b/plugins/_experiments/ast/src/plugin.js
new file mode 100644
index 000000000..b0eaef456
--- /dev/null
+++ b/plugins/_experiments/ast/src/plugin.js
@@ -0,0 +1,21 @@
+import toAst from './ast.js'
+import toLines from './lines.js'
+import compute from './compute/index.js'
+
+
+
+export default {
+ compute,
+
+ api: function (View) {
+
+ View.prototype.lines = function () {
+ return toLines(this)
+ }
+
+
+ View.prototype.ast = function (opts) {
+ return toAst(this, opts)
+ }
+ }
+}
\ No newline at end of file
diff --git a/plugins/_experiments/compress/README.md b/plugins/_experiments/compress/README.md
new file mode 100644
index 000000000..58d42da64
--- /dev/null
+++ b/plugins/_experiments/compress/README.md
@@ -0,0 +1,3 @@
+they say that compression and intellegence are the same thing,
+but I'm not small-enough to understand that.
+
diff --git a/plugins/_experiments/compress/src/index.js b/plugins/_experiments/compress/src/index.js
new file mode 100644
index 000000000..70f068380
--- /dev/null
+++ b/plugins/_experiments/compress/src/index.js
@@ -0,0 +1,23 @@
+import lz from './lz.js'
+import fs from 'fs'
+
+let string = fs.readFileSync('../../../plugins/speed/tests/files/freshPrince.txt').toString()
+// string = "This is my compression test.";
+
+
+// console.log("Size of sample is: " + string.length, '\n\n');
+let compressed = lz.compress(string);
+// console.log(string)
+// console.log(compressed)
+// console.log("\n\nSize of compressed sample is: " + compressed.length);
+string = lz.decompress(compressed);
+
+
+
+/*
+[
+ text,
+ tag,
+ post,
+ pre
+*/
\ No newline at end of file
diff --git a/plugins/_experiments/compress/src/lz.js b/plugins/_experiments/compress/src/lz.js
new file mode 100644
index 000000000..51675f78c
--- /dev/null
+++ b/plugins/_experiments/compress/src/lz.js
@@ -0,0 +1,460 @@
+/* eslint-disable */
+// Copyright (c) 2013 Pieroxy
+// This work is free. You can redistribute it and/or modify it
+// under the terms of the WTFPL, Version 2
+// For more information see LICENSE.txt or http://www.wtfpl.net/
+//
+// For more information, the home page:
+// http://pieroxy.net/blog/pages/lz-string/testing.html
+//
+// LZ-based compression algorithm, version 1.4.4
+
+// private property
+var f = String.fromCharCode;
+var keyStrBase64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
+var keyStrUriSafe = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$";
+var baseReverseDic = {};
+
+function getBaseValue(alphabet, character) {
+ if (!baseReverseDic[alphabet]) {
+ baseReverseDic[alphabet] = {};
+ for (var i = 0; i < alphabet.length; i++) {
+ baseReverseDic[alphabet][alphabet.charAt(i)] = i;
+ }
+ }
+ return baseReverseDic[alphabet][character];
+}
+
+var LZString = {
+ compressToBase64: function (input) {
+ if (input == null) return "";
+ var res = LZString._compress(input, 6, function (a) { return keyStrBase64.charAt(a); });
+ switch (res.length % 4) { // To produce valid Base64
+ default: // When could this happen ?
+ case 0: return res;
+ case 1: return res + "===";
+ case 2: return res + "==";
+ case 3: return res + "=";
+ }
+ },
+
+ decompressFromBase64: function (input) {
+ if (input == null) return "";
+ if (input == "") return null;
+ return LZString._decompress(input.length, 32, function (index) { return getBaseValue(keyStrBase64, input.charAt(index)); });
+ },
+
+ compressToUTF16: function (input) {
+ if (input == null) return "";
+ return LZString._compress(input, 15, function (a) { return f(a + 32); }) + " ";
+ },
+
+ decompressFromUTF16: function (compressed) {
+ if (compressed == null) return "";
+ if (compressed == "") return null;
+ return LZString._decompress(compressed.length, 16384, function (index) { return compressed.charCodeAt(index) - 32; });
+ },
+
+ //compress into a string that is already URI encoded
+ compressToEncodedURIComponent: function (input) {
+ if (input == null) return "";
+ return LZString._compress(input, 6, function (a) { return keyStrUriSafe.charAt(a); });
+ },
+
+ //decompress from an output of compressToEncodedURIComponent
+ decompressFromEncodedURIComponent: function (input) {
+ if (input == null) return "";
+ if (input == "") return null;
+ input = input.replace(/ /g, "+");
+ return LZString._decompress(input.length, 32, function (index) { return getBaseValue(keyStrUriSafe, input.charAt(index)); });
+ },
+
+ compress: function (uncompressed) {
+ return LZString._compress(uncompressed, 16, function (a) { return f(a); });
+ },
+ _compress: function (uncompressed, bitsPerChar, getCharFromInt) {
+ if (uncompressed == null) return "";
+ var i, value,
+ context_dictionary = {},
+ context_dictionaryToCreate = {},
+ context_c = "",
+ context_wc = "",
+ context_w = "",
+ context_enlargeIn = 2, // Compensate for the first entry which should not count
+ context_dictSize = 3,
+ context_numBits = 2,
+ context_data = [],
+ context_data_val = 0,
+ context_data_position = 0,
+ ii;
+
+ for (ii = 0; ii < uncompressed.length; ii += 1) {
+ context_c = uncompressed.charAt(ii);
+ if (!Object.prototype.hasOwnProperty.call(context_dictionary, context_c)) {
+ context_dictionary[context_c] = context_dictSize++;
+ context_dictionaryToCreate[context_c] = true;
+ }
+
+ context_wc = context_w + context_c;
+ if (Object.prototype.hasOwnProperty.call(context_dictionary, context_wc)) {
+ context_w = context_wc;
+ } else {
+ if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {
+ if (context_w.charCodeAt(0) < 256) {
+ for (i = 0; i < context_numBits; i++) {
+ context_data_val = (context_data_val << 1);
+ if (context_data_position == bitsPerChar - 1) {
+ context_data_position = 0;
+ context_data.push(getCharFromInt(context_data_val));
+ context_data_val = 0;
+ } else {
+ context_data_position++;
+ }
+ }
+ value = context_w.charCodeAt(0);
+ for (i = 0; i < 8; i++) {
+ context_data_val = (context_data_val << 1) | (value & 1);
+ if (context_data_position == bitsPerChar - 1) {
+ context_data_position = 0;
+ context_data.push(getCharFromInt(context_data_val));
+ context_data_val = 0;
+ } else {
+ context_data_position++;
+ }
+ value = value >> 1;
+ }
+ } else {
+ value = 1;
+ for (i = 0; i < context_numBits; i++) {
+ context_data_val = (context_data_val << 1) | value;
+ if (context_data_position == bitsPerChar - 1) {
+ context_data_position = 0;
+ context_data.push(getCharFromInt(context_data_val));
+ context_data_val = 0;
+ } else {
+ context_data_position++;
+ }
+ value = 0;
+ }
+ value = context_w.charCodeAt(0);
+ for (i = 0; i < 16; i++) {
+ context_data_val = (context_data_val << 1) | (value & 1);
+ if (context_data_position == bitsPerChar - 1) {
+ context_data_position = 0;
+ context_data.push(getCharFromInt(context_data_val));
+ context_data_val = 0;
+ } else {
+ context_data_position++;
+ }
+ value = value >> 1;
+ }
+ }
+ context_enlargeIn--;
+ if (context_enlargeIn == 0) {
+ context_enlargeIn = Math.pow(2, context_numBits);
+ context_numBits++;
+ }
+ delete context_dictionaryToCreate[context_w];
+ } else {
+ value = context_dictionary[context_w];
+ for (i = 0; i < context_numBits; i++) {
+ context_data_val = (context_data_val << 1) | (value & 1);
+ if (context_data_position == bitsPerChar - 1) {
+ context_data_position = 0;
+ context_data.push(getCharFromInt(context_data_val));
+ context_data_val = 0;
+ } else {
+ context_data_position++;
+ }
+ value = value >> 1;
+ }
+
+
+ }
+ context_enlargeIn--;
+ if (context_enlargeIn == 0) {
+ context_enlargeIn = Math.pow(2, context_numBits);
+ context_numBits++;
+ }
+ // Add wc to the dictionary.
+ context_dictionary[context_wc] = context_dictSize++;
+ context_w = String(context_c);
+ }
+ }
+
+ // Output the code for w.
+ if (context_w !== "") {
+ if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {
+ if (context_w.charCodeAt(0) < 256) {
+ for (i = 0; i < context_numBits; i++) {
+ context_data_val = (context_data_val << 1);
+ if (context_data_position == bitsPerChar - 1) {
+ context_data_position = 0;
+ context_data.push(getCharFromInt(context_data_val));
+ context_data_val = 0;
+ } else {
+ context_data_position++;
+ }
+ }
+ value = context_w.charCodeAt(0);
+ for (i = 0; i < 8; i++) {
+ context_data_val = (context_data_val << 1) | (value & 1);
+ if (context_data_position == bitsPerChar - 1) {
+ context_data_position = 0;
+ context_data.push(getCharFromInt(context_data_val));
+ context_data_val = 0;
+ } else {
+ context_data_position++;
+ }
+ value = value >> 1;
+ }
+ } else {
+ value = 1;
+ for (i = 0; i < context_numBits; i++) {
+ context_data_val = (context_data_val << 1) | value;
+ if (context_data_position == bitsPerChar - 1) {
+ context_data_position = 0;
+ context_data.push(getCharFromInt(context_data_val));
+ context_data_val = 0;
+ } else {
+ context_data_position++;
+ }
+ value = 0;
+ }
+ value = context_w.charCodeAt(0);
+ for (i = 0; i < 16; i++) {
+ context_data_val = (context_data_val << 1) | (value & 1);
+ if (context_data_position == bitsPerChar - 1) {
+ context_data_position = 0;
+ context_data.push(getCharFromInt(context_data_val));
+ context_data_val = 0;
+ } else {
+ context_data_position++;
+ }
+ value = value >> 1;
+ }
+ }
+ context_enlargeIn--;
+ if (context_enlargeIn == 0) {
+ context_enlargeIn = Math.pow(2, context_numBits);
+ context_numBits++;
+ }
+ delete context_dictionaryToCreate[context_w];
+ } else {
+ value = context_dictionary[context_w];
+ for (i = 0; i < context_numBits; i++) {
+ context_data_val = (context_data_val << 1) | (value & 1);
+ if (context_data_position == bitsPerChar - 1) {
+ context_data_position = 0;
+ context_data.push(getCharFromInt(context_data_val));
+ context_data_val = 0;
+ } else {
+ context_data_position++;
+ }
+ value = value >> 1;
+ }
+
+
+ }
+ context_enlargeIn--;
+ if (context_enlargeIn == 0) {
+ context_enlargeIn = Math.pow(2, context_numBits);
+ context_numBits++;
+ }
+ }
+
+ // Mark the end of the stream
+ value = 2;
+ for (i = 0; i < context_numBits; i++) {
+ context_data_val = (context_data_val << 1) | (value & 1);
+ if (context_data_position == bitsPerChar - 1) {
+ context_data_position = 0;
+ context_data.push(getCharFromInt(context_data_val));
+ context_data_val = 0;
+ } else {
+ context_data_position++;
+ }
+ value = value >> 1;
+ }
+
+ // Flush the last char
+ while (true) {
+ context_data_val = (context_data_val << 1);
+ if (context_data_position == bitsPerChar - 1) {
+ context_data.push(getCharFromInt(context_data_val));
+ break;
+ }
+ else context_data_position++;
+ }
+ return context_data.join('');
+ },
+
+ decompress: function (compressed) {
+ if (compressed == null) return "";
+ if (compressed == "") return null;
+ return LZString._decompress(compressed.length, 32768, function (index) { return compressed.charCodeAt(index); });
+ },
+
+ _decompress: function (length, resetValue, getNextValue) {
+ var dictionary = [],
+ next,
+ enlargeIn = 4,
+ dictSize = 4,
+ numBits = 3,
+ entry = "",
+ result = [],
+ i,
+ w,
+ bits, resb, maxpower, power,
+ c,
+ data = { val: getNextValue(0), position: resetValue, index: 1 };
+
+ for (i = 0; i < 3; i += 1) {
+ dictionary[i] = i;
+ }
+
+ bits = 0;
+ maxpower = Math.pow(2, 2);
+ power = 1;
+ while (power != maxpower) {
+ resb = data.val & data.position;
+ data.position >>= 1;
+ if (data.position == 0) {
+ data.position = resetValue;
+ data.val = getNextValue(data.index++);
+ }
+ bits |= (resb > 0 ? 1 : 0) * power;
+ power <<= 1;
+ }
+
+ switch (next = bits) {
+ case 0:
+ bits = 0;
+ maxpower = Math.pow(2, 8);
+ power = 1;
+ while (power != maxpower) {
+ resb = data.val & data.position;
+ data.position >>= 1;
+ if (data.position == 0) {
+ data.position = resetValue;
+ data.val = getNextValue(data.index++);
+ }
+ bits |= (resb > 0 ? 1 : 0) * power;
+ power <<= 1;
+ }
+ c = f(bits);
+ break;
+ case 1:
+ bits = 0;
+ maxpower = Math.pow(2, 16);
+ power = 1;
+ while (power != maxpower) {
+ resb = data.val & data.position;
+ data.position >>= 1;
+ if (data.position == 0) {
+ data.position = resetValue;
+ data.val = getNextValue(data.index++);
+ }
+ bits |= (resb > 0 ? 1 : 0) * power;
+ power <<= 1;
+ }
+ c = f(bits);
+ break;
+ case 2:
+ return "";
+ }
+ dictionary[3] = c;
+ w = c;
+ result.push(c);
+ while (true) {
+ if (data.index > length) {
+ return "";
+ }
+
+ bits = 0;
+ maxpower = Math.pow(2, numBits);
+ power = 1;
+ while (power != maxpower) {
+ resb = data.val & data.position;
+ data.position >>= 1;
+ if (data.position == 0) {
+ data.position = resetValue;
+ data.val = getNextValue(data.index++);
+ }
+ bits |= (resb > 0 ? 1 : 0) * power;
+ power <<= 1;
+ }
+
+ switch (c = bits) {
+ case 0:
+ bits = 0;
+ maxpower = Math.pow(2, 8);
+ power = 1;
+ while (power != maxpower) {
+ resb = data.val & data.position;
+ data.position >>= 1;
+ if (data.position == 0) {
+ data.position = resetValue;
+ data.val = getNextValue(data.index++);
+ }
+ bits |= (resb > 0 ? 1 : 0) * power;
+ power <<= 1;
+ }
+
+ dictionary[dictSize++] = f(bits);
+ c = dictSize - 1;
+ enlargeIn--;
+ break;
+ case 1:
+ bits = 0;
+ maxpower = Math.pow(2, 16);
+ power = 1;
+ while (power != maxpower) {
+ resb = data.val & data.position;
+ data.position >>= 1;
+ if (data.position == 0) {
+ data.position = resetValue;
+ data.val = getNextValue(data.index++);
+ }
+ bits |= (resb > 0 ? 1 : 0) * power;
+ power <<= 1;
+ }
+ dictionary[dictSize++] = f(bits);
+ c = dictSize - 1;
+ enlargeIn--;
+ break;
+ case 2:
+ return result.join('');
+ }
+
+ if (enlargeIn == 0) {
+ enlargeIn = Math.pow(2, numBits);
+ numBits++;
+ }
+
+ if (dictionary[c]) {
+ entry = dictionary[c];
+ } else {
+ if (c === dictSize) {
+ entry = w + w.charAt(0);
+ } else {
+ return null;
+ }
+ }
+ result.push(entry);
+
+ // Add w+entry[0] to the dictionary.
+ dictionary[dictSize++] = w + entry.charAt(0);
+ enlargeIn--;
+
+ w = entry;
+
+ if (enlargeIn == 0) {
+ enlargeIn = Math.pow(2, numBits);
+ numBits++;
+ }
+
+ }
+ }
+};
+export default LZString;
diff --git a/plugins/_experiments/markdown/README.md b/plugins/_experiments/markdown/README.md
new file mode 100644
index 000000000..11dee2bed
--- /dev/null
+++ b/plugins/_experiments/markdown/README.md
@@ -0,0 +1 @@
+experimental nlp on a [unified/remark](https://unifiedjs.com/) AST.
diff --git a/plugins/_experiments/markdown/builds/compromise-markup.min.js b/plugins/_experiments/markdown/builds/compromise-markup.min.js
new file mode 100644
index 000000000..e27d07e1a
--- /dev/null
+++ b/plugins/_experiments/markdown/builds/compromise-markup.min.js
@@ -0,0 +1 @@
+var e,t;e=this,t=function(){const e=t(/[\dA-Za-z]/);function t(e){return function(t){return null!==t&&e.test(String.fromCharCode(t))}}function n(t){const n=[];let r=-1,o=0,a=0;for(;++r55295&&l<57344){const e=t.charCodeAt(r+1);l<56320&&e>56319&&e<57344?(u=String.fromCharCode(l,e),a=1):u="�"}else u=String.fromCharCode(l);u&&(n.push(t.slice(o,r),encodeURIComponent(u)),o=r+a+1,u=""),a&&(r+=a,a=0)}return n.join("")+t.slice(o)}function r(e,t){const r=String(t.identifier).toUpperCase(),o=n(r.toLowerCase()),a=e.footnoteOrder.indexOf(r);let l;-1===a?(e.footnoteOrder.push(r),e.footnoteCounts[r]=1,l=e.footnoteOrder.length):(e.footnoteCounts[r]++,l=a+1);const u=e.footnoteCounts[r],i={type:"element",tagName:"a",properties:{href:"#"+e.clobberPrefix+"fn-"+o,id:e.clobberPrefix+"fnref-"+o+(u>1?"-"+u:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(l)}]};e.patch(t,i);const p={type:"element",tagName:"sup",properties:{},children:[i]};return e.patch(t,p),e.applyData(t,p)}function o(e,t){const n=t.referenceType;let r="]";if("collapsed"===n?r+="[]":"full"===n&&(r+="["+(t.label||t.identifier)+"]"),"imageReference"===t.type)return{type:"text",value:"!["+t.alt+r};const o=e.all(t),a=o[0];a&&"text"===a.type?a.value="["+a.value:o.unshift({type:"text",value:"["});const l=o[o.length-1];return l&&"text"===l.type?l.value+=r:o.push({type:"text",value:r}),o}function a(e){const t=e.spread;return null==t?e.children.length>1:t}t(/[!-/:-@[-`{-~\u00A1\u00A7\u00AB\u00B6\u00B7\u00BB\u00BF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/);const l=i("start"),u=i("end");function i(e){return function(t){const n=t&&t.position&&t.position[e]||{};return{line:n.line||null,column:n.column||null,offset:n.offset>-1?n.offset:null}}}function p(e){const t=String(e),n=/\r?\n|\r/g;let r=n.exec(t),o=0;const a=[];for(;r;)a.push(c(t.slice(o,r.index),o>0,!0),r[0]),o=r.index+r[0].length,r=n.exec(t);return a.push(c(t.slice(o),o>0,!1)),a.join("")}function c(e,t,n){let r=0,o=e.length;if(t){let t=e.codePointAt(r);for(;9===t||32===t;)r++,t=e.codePointAt(r)}if(n){let t=e.codePointAt(o-1);for(;9===t||32===t;)o--,t=e.codePointAt(o-1)}return o>r?e.slice(r,o):""}const s={blockquote:function(e,t){const n={type:"element",tagName:"blockquote",properties:{},children:e.wrap(e.all(t),!0)};return e.patch(t,n),e.applyData(t,n)},break:function(e,t){const n={type:"element",tagName:"br",properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:"text",value:"\n"}]},code:function(e,t){const n=t.value?t.value+"\n":"",r=t.lang?t.lang.match(/^[^ \t]+(?=[ \t]|$)/):null,o={};r&&(o.className=["language-"+r]);let a={type:"element",tagName:"code",properties:o,children:[{type:"text",value:n}]};return t.meta&&(a.data={meta:t.meta}),e.patch(t,a),a=e.applyData(t,a),a={type:"element",tagName:"pre",properties:{},children:[a]},e.patch(t,a),a},delete:function(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},emphasis:function(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},footnoteReference:r,footnote:function(e,t){const n=e.footnoteById;let o=1;for(;o in n;)o++;const a=String(o);return n[a]={type:"footnoteDefinition",identifier:a,children:[{type:"paragraph",children:t.children}],position:t.position},r(e,{type:"footnoteReference",identifier:a,position:t.position})},heading:function(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},html:function(e,t){if(e.dangerous){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}return null},imageReference:function(e,t){const r=e.definition(t.identifier);if(!r)return o(e,t);const a={src:n(r.url||""),alt:t.alt};null!==r.title&&void 0!==r.title&&(a.title=r.title);const l={type:"element",tagName:"img",properties:a,children:[]};return e.patch(t,l),e.applyData(t,l)},image:function(e,t){const r={src:n(t.url)};null!==t.alt&&void 0!==t.alt&&(r.alt=t.alt),null!==t.title&&void 0!==t.title&&(r.title=t.title);const o={type:"element",tagName:"img",properties:r,children:[]};return e.patch(t,o),e.applyData(t,o)},inlineCode:function(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)},linkReference:function(e,t){const r=e.definition(t.identifier);if(!r)return o(e,t);const a={href:n(r.url||"")};null!==r.title&&void 0!==r.title&&(a.title=r.title);const l={type:"element",tagName:"a",properties:a,children:e.all(t)};return e.patch(t,l),e.applyData(t,l)},link:function(e,t){const r={href:n(t.url)};null!==t.title&&void 0!==t.title&&(r.title=t.title);const o={type:"element",tagName:"a",properties:r,children:e.all(t)};return e.patch(t,o),e.applyData(t,o)},listItem:function(e,t,n){const r=e.all(t),o=n?function(e){let t=!1;if("list"===e.type){t=e.spread||!1;const n=e.children;let r=-1;for(;!t&&++r0&&n.children.unshift({type:"text",value:" "}),n.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),l.className=["task-list-item"]}let i=-1;for(;++i0){const r={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},a=l(t.children[1]),i=u(t.children[t.children.length-1]);a.line&&i.line&&(r.position={start:a,end:i}),o.push(r)}const a={type:"element",tagName:"table",properties:{},children:e.wrap(o,!0)};return e.patch(t,a),e.applyData(t,a)},tableCell:function(e,t){const n={type:"element",tagName:"td",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},tableRow:function(e,t,n){const r=n?n.children:void 0,o=0===(r?r.indexOf(t):1)?"th":"td",a=n&&"table"===n.type?n.align:void 0,l=a?a.length:t.children.length;let u=-1;const i=[];for(;++u":""),"[33m"+c+"[39m)")})}var c;return s;function s(){let p,c,s,f=[];if((!t||o(l,u,i[i.length-1]||null))&&(f=function(e){return Array.isArray(e)?e:"number"==typeof e?[!0,e]:[e]}(n(l,i)),!1===f[0]))return f;if(l.children&&"skip"!==f[0])for(c=(r?l.children.length:-1)+a,s=i.concat(l);c>-1&&c{const n=A(e.identifier);n&&!F.call(t,n)&&(t[n]=e)})),function(e){const n=A(e);return n&&F.call(t,n)?t[n]:null}}(e),i.footnoteById=o,i.footnoteOrder=[],i.footnoteCounts={},i.patch=N,i.applyData=b,i.one=function(e,t){return v(i,e,t)},i.all=function(e){return x(i,e)},i.wrap=E,i.augment=a,g(e,"footnoteDefinition",(e=>{const t=String(e.identifier).toUpperCase();D.call(o,t)||(o[t]=e)})),i;function a(e,t){if(e&&"data"in e&&e.data){const n=e.data;n.hName&&("element"!==t.type&&(t={type:"element",tagName:"",properties:{},children:[]}),t.tagName=n.hName),"element"===t.type&&n.hProperties&&(t.properties={...t.properties,...n.hProperties}),"children"in t&&t.children&&n.hChildren&&(t.children=n.hChildren)}if(e){const r="type"in e?e:{position:e};(n=r)&&n.position&&n.position.start&&n.position.start.line&&n.position.start.column&&n.position.end&&n.position.end.line&&n.position.end.column&&(t.position={start:l(r),end:u(r)})}var n;return t}function i(e,t,n,r){return Array.isArray(n)&&(r=n,n={}),a(e,{type:"element",tagName:t,properties:n||{},children:r||[]})}}function N(e,t){var n;e.position&&(t.position={start:l(n=e),end:u(n)})}function b(e,t){let n=t;if(e&&e.data){const t=e.data.hName,r=e.data.hChildren,o=e.data.hProperties;"string"==typeof t&&("element"===n.type?n.tagName=t:n={type:"element",tagName:t,properties:{},children:[]}),"element"===n.type&&o&&(n.properties={...n.properties,...o}),"children"in n&&n.children&&null!=r&&(n.children=r)}return n}function v(e,t,n){const r=t&&t.type;if(!r)throw new Error("Expected node, got `"+t+"`");return D.call(e.handlers,r)?e.handlers[r](e,t,n):e.passThrough&&e.passThrough.includes(r)?"children"in t?{...t,children:x(e,t)}:t:e.unknownHandler?e.unknownHandler(e,t,n):function(e,t){const n=t.data||{},r=!("value"in t)||D.call(n,"hProperties")||D.call(n,"hChildren")?{type:"element",tagName:"div",properties:{},children:x(e,t)}:{type:"text",value:t.value};return e.patch(t,r),e.applyData(t,r)}(e,t)}function x(e,t){const n=[];if("children"in t){const r=t.children;let o=-1;for(;++o0&&n.push({type:"text",value:"\n"}),n}function B(e,t){const r=C(e,t),o=r.one(e,null),a=function(e){const t=[];let r=-1;for(;++r1?"-"+i:""),dataFootnoteBackref:!0,className:["data-footnote-backref"],ariaLabel:e.footnoteBackLabel},children:[{type:"text",value:"↩"}]};i>1&&t.children.push({type:"element",tagName:"sup",children:[{type:"text",value:String(i)}]}),p.length>0&&p.push({type:"text",value:" "}),p.push(t)}const c=a[a.length-1];if(c&&"element"===c.type&&"p"===c.tagName){const e=c.children[c.children.length-1];e&&"text"===e.type?e.value+=" ":c.children.push({type:"text",value:" "}),c.children.push(...p)}else a.push(...p);const s={type:"element",tagName:"li",properties:{id:e.clobberPrefix+"fn-"+u},children:e.wrap(a,!0)};e.patch(o,s),t.push(s)}if(0!==t.length)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:e.footnoteLabelTagName,properties:{...JSON.parse(JSON.stringify(e.footnoteLabelProperties)),id:"footnote-label"},children:[{type:"text",value:e.footnoteLabel}]},{type:"text",value:"\n"},{type:"element",tagName:"ol",properties:{},children:e.wrap(t,!0)},{type:"text",value:"\n"}]}}(r);return a&&o.children.push({type:"text",value:"\n"},a),Array.isArray(o)?{type:"root",children:o}:o}return{api:function(e){e.fromMarkdown=function(e){B(e)}}}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).compromiseMarkup=t();
diff --git a/plugins/_experiments/markdown/package-lock.json b/plugins/_experiments/markdown/package-lock.json
new file mode 100644
index 000000000..253e709bd
--- /dev/null
+++ b/plugins/_experiments/markdown/package-lock.json
@@ -0,0 +1,2495 @@
+{
+ "name": "compromise-markdown",
+ "version": "0.0.0",
+ "lockfileVersion": 2,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "compromise-markdown",
+ "version": "0.0.0",
+ "license": "MIT",
+ "dependencies": {
+ "hast-util-to-mdast": "^9.0.0",
+ "mdast-util-frontmatter": "^1.0.1",
+ "mdast-util-gfm-table": "^1.0.7",
+ "mdast-util-to-markdown": "^1.5.0",
+ "micromark-extension-gfm-table": "^1.0.5",
+ "unist-util-visit": "^4.1.2"
+ },
+ "devDependencies": {
+ "@rollup/plugin-commonjs": "^24.0.1"
+ },
+ "peerDependencies": {
+ "compromise": ">=14.0.0"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.4.14",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
+ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
+ "dev": true
+ },
+ "node_modules/@rollup/plugin-commonjs": {
+ "version": "24.0.1",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-24.0.1.tgz",
+ "integrity": "sha512-15LsiWRZk4eOGqvrJyu3z3DaBu5BhXIMeWnijSRvd8irrrg9SHpQ1pH+BUK4H6Z9wL9yOxZJMTLU+Au86XHxow==",
+ "dev": true,
+ "dependencies": {
+ "@rollup/pluginutils": "^5.0.1",
+ "commondir": "^1.0.1",
+ "estree-walker": "^2.0.2",
+ "glob": "^8.0.3",
+ "is-reference": "1.2.1",
+ "magic-string": "^0.27.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^2.68.0||^3.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rollup/pluginutils": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz",
+ "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==",
+ "dev": true,
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "estree-walker": "^2.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^1.20.0||^2.0.0||^3.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@types/debug": {
+ "version": "4.1.7",
+ "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz",
+ "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==",
+ "dependencies": {
+ "@types/ms": "*"
+ }
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz",
+ "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==",
+ "dev": true
+ },
+ "node_modules/@types/extend": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/extend/-/extend-3.0.1.tgz",
+ "integrity": "sha512-R1g/VyKFFI2HLC1QGAeTtCBWCo6n75l41OnsVYNbmKG+kempOESaodf6BeJyUM3Q0rKa/NQcTHbB2+66lNnxLw=="
+ },
+ "node_modules/@types/hast": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz",
+ "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==",
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/@types/mdast": {
+ "version": "3.0.10",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz",
+ "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==",
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/@types/ms": {
+ "version": "0.7.31",
+ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz",
+ "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA=="
+ },
+ "node_modules/@types/parse5": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz",
+ "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g=="
+ },
+ "node_modules/@types/unist": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz",
+ "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ=="
+ },
+ "node_modules/bail": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz",
+ "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ },
+ "node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/ccount": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz",
+ "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/character-entities": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz",
+ "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/character-entities-html4": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz",
+ "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/character-entities-legacy": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
+ "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/comma-separated-tokens": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
+ "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
+ "dev": true
+ },
+ "node_modules/compromise": {
+ "version": "14.8.2",
+ "resolved": "https://registry.npmjs.org/compromise/-/compromise-14.8.2.tgz",
+ "integrity": "sha512-B/2MxDx2R1U8QlZPZycypvqv/JfSPJSyh/sTUxIuteSja5ABWzHoLpaTGmRiai1GX7wKA1pOSSwtp4XRFGDKnA==",
+ "peer": true,
+ "dependencies": {
+ "efrt": "2.7.0",
+ "grad-school": "0.0.5",
+ "suffix-thumb": "4.0.2"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/decode-named-character-reference": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz",
+ "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==",
+ "dependencies": {
+ "character-entities": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/dequal": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
+ "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/diff": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz",
+ "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==",
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
+ "node_modules/efrt": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/efrt/-/efrt-2.7.0.tgz",
+ "integrity": "sha512-/RInbCy1d4P6Zdfa+TMVsf/ufZVotat5hCw3QXmWtjU+3pFEOvOQ7ibo3aIxyCJw2leIeAMjmPj+1SLJiCpdrQ==",
+ "peer": true,
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
+ "dev": true
+ },
+ "node_modules/extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+ },
+ "node_modules/fault": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz",
+ "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==",
+ "dependencies": {
+ "format": "^0.2.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/format": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz",
+ "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==",
+ "engines": {
+ "node": ">=0.4.x"
+ }
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "dev": true
+ },
+ "node_modules/glob": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
+ "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
+ "dev": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^5.0.1",
+ "once": "^1.3.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/grad-school": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/grad-school/-/grad-school-0.0.5.tgz",
+ "integrity": "sha512-rXunEHF9M9EkMydTBux7+IryYXEZinRk6g8OBOGDBzo/qWJjhTxy86i5q7lQYpCLHN8Sqv1XX3OIOc7ka2gtvQ==",
+ "peer": true,
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/hast-util-embedded": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/hast-util-embedded/-/hast-util-embedded-2.0.1.tgz",
+ "integrity": "sha512-QUdSOP1/o+/TxXtpPFXR2mUg2P+ySrmlX7QjwHZCXqMFyYk7YmcGSvqRW+4XgXAoHifdE1t2PwFaQK33TqVjSw==",
+ "dependencies": {
+ "hast-util-is-element": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-from-parse5": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-7.1.1.tgz",
+ "integrity": "sha512-R6PoNcUs89ZxLJmMWsVbwSWuz95/9OriyQZ3e2ybwqGsRXzhA6gv49rgGmQvLbZuSNDv9fCg7vV7gXUsvtUFaA==",
+ "dependencies": {
+ "@types/hast": "^2.0.0",
+ "@types/unist": "^2.0.0",
+ "hastscript": "^7.0.0",
+ "property-information": "^6.0.0",
+ "vfile": "^5.0.0",
+ "vfile-location": "^4.0.0",
+ "web-namespaces": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-has-property": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-2.0.1.tgz",
+ "integrity": "sha512-X2+RwZIMTMKpXUzlotatPzWj8bspCymtXH3cfG3iQKV+wPF53Vgaqxi/eLqGck0wKq1kS9nvoB1wchbCPEL8sg==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-is-body-ok-link": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-is-body-ok-link/-/hast-util-is-body-ok-link-2.0.0.tgz",
+ "integrity": "sha512-S58hCexyKdD31vMsErvgLfflW6vYWo/ixRLPJTtkOvLld24vyI8vmYmkgLA5LG3la2ME7nm7dLGdm48gfLRBfw==",
+ "dependencies": {
+ "@types/hast": "^2.0.0",
+ "hast-util-has-property": "^2.0.0",
+ "hast-util-is-element": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-is-element": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-2.1.3.tgz",
+ "integrity": "sha512-O1bKah6mhgEq2WtVMk+Ta5K7pPMqsBBlmzysLdcwKVrqzZQ0CHqUPiIVspNhAG1rvxpvJjtGee17XfauZYKqVA==",
+ "dependencies": {
+ "@types/hast": "^2.0.0",
+ "@types/unist": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-parse-selector": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz",
+ "integrity": "sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==",
+ "dependencies": {
+ "@types/hast": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-phrasing": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hast-util-phrasing/-/hast-util-phrasing-2.0.2.tgz",
+ "integrity": "sha512-yGkCfPkkfCyiLfK6KEl/orMDr/zgCnq/NaO9HfULx6/Zga5fso5eqQA5Ov/JZVqACygvw9shRYWgXNcG2ilo7w==",
+ "dependencies": {
+ "@types/hast": "^2.0.0",
+ "hast-util-embedded": "^2.0.0",
+ "hast-util-has-property": "^2.0.0",
+ "hast-util-is-body-ok-link": "^2.0.0",
+ "hast-util-is-element": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-raw": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-7.2.3.tgz",
+ "integrity": "sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==",
+ "dependencies": {
+ "@types/hast": "^2.0.0",
+ "@types/parse5": "^6.0.0",
+ "hast-util-from-parse5": "^7.0.0",
+ "hast-util-to-parse5": "^7.0.0",
+ "html-void-elements": "^2.0.0",
+ "parse5": "^6.0.0",
+ "unist-util-position": "^4.0.0",
+ "unist-util-visit": "^4.0.0",
+ "vfile": "^5.0.0",
+ "web-namespaces": "^2.0.0",
+ "zwitch": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-raw/node_modules/parse5": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
+ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw=="
+ },
+ "node_modules/hast-util-to-html": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-8.0.4.tgz",
+ "integrity": "sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA==",
+ "dependencies": {
+ "@types/hast": "^2.0.0",
+ "@types/unist": "^2.0.0",
+ "ccount": "^2.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "hast-util-raw": "^7.0.0",
+ "hast-util-whitespace": "^2.0.0",
+ "html-void-elements": "^2.0.0",
+ "property-information": "^6.0.0",
+ "space-separated-tokens": "^2.0.0",
+ "stringify-entities": "^4.0.0",
+ "zwitch": "^2.0.4"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-to-mdast": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-to-mdast/-/hast-util-to-mdast-9.0.0.tgz",
+ "integrity": "sha512-7Pl4mWA3JCSHx0s3A1CgJaFirkISDUJsu+DeJd/cHUAlVDgs1sITzg9HZAidSf9LUE7kl8Hf2ZJr1HZTfhV/Yw==",
+ "dependencies": {
+ "@types/extend": "^3.0.0",
+ "@types/hast": "^2.0.0",
+ "@types/mdast": "^3.0.0",
+ "@types/unist": "^2.0.0",
+ "extend": "^3.0.0",
+ "hast-util-phrasing": "^2.0.0",
+ "hast-util-to-html": "^8.0.4",
+ "hast-util-to-text": "^3.0.0",
+ "hast-util-whitespace": "^2.0.0",
+ "mdast-util-phrasing": "^3.0.0",
+ "mdast-util-to-string": "^3.0.0",
+ "rehype-minify-whitespace": "^5.0.0",
+ "trim-trailing-lines": "^2.0.0",
+ "unist-util-position": "^4.0.0",
+ "unist-util-visit": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-to-parse5": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-7.1.0.tgz",
+ "integrity": "sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==",
+ "dependencies": {
+ "@types/hast": "^2.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "property-information": "^6.0.0",
+ "space-separated-tokens": "^2.0.0",
+ "web-namespaces": "^2.0.0",
+ "zwitch": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-to-text": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-3.1.2.tgz",
+ "integrity": "sha512-tcllLfp23dJJ+ju5wCCZHVpzsQQ43+moJbqVX3jNWPB7z/KFC4FyZD6R7y94cHL6MQ33YtMZL8Z0aIXXI4XFTw==",
+ "dependencies": {
+ "@types/hast": "^2.0.0",
+ "@types/unist": "^2.0.0",
+ "hast-util-is-element": "^2.0.0",
+ "unist-util-find-after": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-whitespace": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz",
+ "integrity": "sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hastscript": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-7.2.0.tgz",
+ "integrity": "sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==",
+ "dependencies": {
+ "@types/hast": "^2.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "hast-util-parse-selector": "^3.0.0",
+ "property-information": "^6.0.0",
+ "space-separated-tokens": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/html-void-elements": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-2.0.1.tgz",
+ "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "dev": true,
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "node_modules/is-buffer": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
+ "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/is-plain-obj": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
+ "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-reference": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz",
+ "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/estree": "*"
+ }
+ },
+ "node_modules/kleur": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
+ "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/longest-streak": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz",
+ "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/magic-string": {
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz",
+ "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.4.13"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/markdown-table": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz",
+ "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/mdast-util-from-markdown": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.0.tgz",
+ "integrity": "sha512-HN3W1gRIuN/ZW295c7zi7g9lVBllMgZE40RxCX37wrTPWXCWtpvOZdfnuK+1WNpvZje6XuJeI3Wnb4TJEUem+g==",
+ "dependencies": {
+ "@types/mdast": "^3.0.0",
+ "@types/unist": "^2.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "mdast-util-to-string": "^3.1.0",
+ "micromark": "^3.0.0",
+ "micromark-util-decode-numeric-character-reference": "^1.0.0",
+ "micromark-util-decode-string": "^1.0.0",
+ "micromark-util-normalize-identifier": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0",
+ "unist-util-stringify-position": "^3.0.0",
+ "uvu": "^0.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-frontmatter": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-1.0.1.tgz",
+ "integrity": "sha512-JjA2OjxRqAa8wEG8hloD0uTU0kdn8kbtOWpPP94NBkfAlbxn4S8gCGf/9DwFtEeGPXrDcNXdiDjVaRdUFqYokw==",
+ "dependencies": {
+ "@types/mdast": "^3.0.0",
+ "mdast-util-to-markdown": "^1.3.0",
+ "micromark-extension-frontmatter": "^1.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-gfm-table": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz",
+ "integrity": "sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==",
+ "dependencies": {
+ "@types/mdast": "^3.0.0",
+ "markdown-table": "^3.0.0",
+ "mdast-util-from-markdown": "^1.0.0",
+ "mdast-util-to-markdown": "^1.3.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-phrasing": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz",
+ "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==",
+ "dependencies": {
+ "@types/mdast": "^3.0.0",
+ "unist-util-is": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-markdown": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz",
+ "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==",
+ "dependencies": {
+ "@types/mdast": "^3.0.0",
+ "@types/unist": "^2.0.0",
+ "longest-streak": "^3.0.0",
+ "mdast-util-phrasing": "^3.0.0",
+ "mdast-util-to-string": "^3.0.0",
+ "micromark-util-decode-string": "^1.0.0",
+ "unist-util-visit": "^4.0.0",
+ "zwitch": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-string": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.1.tgz",
+ "integrity": "sha512-tGvhT94e+cVnQt8JWE9/b3cUQZWS732TJxXHktvP+BYo62PpYD53Ls/6cC60rW21dW+txxiM4zMdc6abASvZKA==",
+ "dependencies": {
+ "@types/mdast": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.1.0.tgz",
+ "integrity": "sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "@types/debug": "^4.0.0",
+ "debug": "^4.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "micromark-core-commonmark": "^1.0.1",
+ "micromark-factory-space": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-chunked": "^1.0.0",
+ "micromark-util-combine-extensions": "^1.0.0",
+ "micromark-util-decode-numeric-character-reference": "^1.0.0",
+ "micromark-util-encode": "^1.0.0",
+ "micromark-util-normalize-identifier": "^1.0.0",
+ "micromark-util-resolve-all": "^1.0.0",
+ "micromark-util-sanitize-uri": "^1.0.0",
+ "micromark-util-subtokenize": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.1",
+ "uvu": "^0.5.0"
+ }
+ },
+ "node_modules/micromark-core-commonmark": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz",
+ "integrity": "sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "decode-named-character-reference": "^1.0.0",
+ "micromark-factory-destination": "^1.0.0",
+ "micromark-factory-label": "^1.0.0",
+ "micromark-factory-space": "^1.0.0",
+ "micromark-factory-title": "^1.0.0",
+ "micromark-factory-whitespace": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-chunked": "^1.0.0",
+ "micromark-util-classify-character": "^1.0.0",
+ "micromark-util-html-tag-name": "^1.0.0",
+ "micromark-util-normalize-identifier": "^1.0.0",
+ "micromark-util-resolve-all": "^1.0.0",
+ "micromark-util-subtokenize": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.1",
+ "uvu": "^0.5.0"
+ }
+ },
+ "node_modules/micromark-extension-frontmatter": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-1.0.0.tgz",
+ "integrity": "sha512-EXjmRnupoX6yYuUJSQhrQ9ggK0iQtQlpi6xeJzVD5xscyAI+giqco5fdymayZhJMbIFecjnE2yz85S9NzIgQpg==",
+ "dependencies": {
+ "fault": "^2.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-table": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.5.tgz",
+ "integrity": "sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==",
+ "dependencies": {
+ "micromark-factory-space": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0",
+ "uvu": "^0.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-factory-destination": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz",
+ "integrity": "sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "node_modules/micromark-factory-label": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz",
+ "integrity": "sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0",
+ "uvu": "^0.5.0"
+ }
+ },
+ "node_modules/micromark-factory-space": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz",
+ "integrity": "sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "node_modules/micromark-factory-title": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz",
+ "integrity": "sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "micromark-factory-space": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0",
+ "uvu": "^0.5.0"
+ }
+ },
+ "node_modules/micromark-factory-whitespace": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz",
+ "integrity": "sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "micromark-factory-space": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "node_modules/micromark-util-character": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.1.0.tgz",
+ "integrity": "sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "node_modules/micromark-util-chunked": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz",
+ "integrity": "sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "micromark-util-symbol": "^1.0.0"
+ }
+ },
+ "node_modules/micromark-util-classify-character": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz",
+ "integrity": "sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "node_modules/micromark-util-combine-extensions": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz",
+ "integrity": "sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "micromark-util-chunked": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "node_modules/micromark-util-decode-numeric-character-reference": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz",
+ "integrity": "sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "micromark-util-symbol": "^1.0.0"
+ }
+ },
+ "node_modules/micromark-util-decode-string": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz",
+ "integrity": "sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "decode-named-character-reference": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-decode-numeric-character-reference": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0"
+ }
+ },
+ "node_modules/micromark-util-encode": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz",
+ "integrity": "sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ]
+ },
+ "node_modules/micromark-util-html-tag-name": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz",
+ "integrity": "sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ]
+ },
+ "node_modules/micromark-util-normalize-identifier": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz",
+ "integrity": "sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "micromark-util-symbol": "^1.0.0"
+ }
+ },
+ "node_modules/micromark-util-resolve-all": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz",
+ "integrity": "sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "node_modules/micromark-util-sanitize-uri": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.1.0.tgz",
+ "integrity": "sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-encode": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0"
+ }
+ },
+ "node_modules/micromark-util-subtokenize": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz",
+ "integrity": "sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "dependencies": {
+ "micromark-util-chunked": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0",
+ "uvu": "^0.5.0"
+ }
+ },
+ "node_modules/micromark-util-symbol": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz",
+ "integrity": "sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ]
+ },
+ "node_modules/micromark-util-types": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.2.tgz",
+ "integrity": "sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ]
+ },
+ "node_modules/minimatch": {
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/mri": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
+ "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "dev": true,
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/property-information": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.2.0.tgz",
+ "integrity": "sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/rehype-minify-whitespace": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/rehype-minify-whitespace/-/rehype-minify-whitespace-5.0.1.tgz",
+ "integrity": "sha512-PPp4lWJiBPlePI/dv1BeYktbwkfgXkrK59MUa+tYbMPgleod+4DvFK2PLU0O0O60/xuhHfiR9GUIUlXTU8sRIQ==",
+ "dependencies": {
+ "@types/hast": "^2.0.0",
+ "hast-util-embedded": "^2.0.0",
+ "hast-util-is-element": "^2.0.0",
+ "hast-util-whitespace": "^2.0.0",
+ "unified": "^10.0.0",
+ "unist-util-is": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/sade": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz",
+ "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==",
+ "dependencies": {
+ "mri": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/space-separated-tokens": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
+ "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/stringify-entities": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz",
+ "integrity": "sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==",
+ "dependencies": {
+ "character-entities-html4": "^2.0.0",
+ "character-entities-legacy": "^3.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/suffix-thumb": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/suffix-thumb/-/suffix-thumb-4.0.2.tgz",
+ "integrity": "sha512-CCvCAr7JyeQoO+/lyq3P2foZI/xJz5kpG3L6kg2CaOf9K2/gaM9ixy/JTuRwjEK38l306zE7vl3JoOZYmLQLlA==",
+ "peer": true
+ },
+ "node_modules/trim-trailing-lines": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-2.1.0.tgz",
+ "integrity": "sha512-5UR5Biq4VlVOtzqkm2AZlgvSlDJtME46uV0br0gENbwN4l5+mMKT4b9gJKqWtuL2zAIqajGJGuvbCbcAJUZqBg==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/trough": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz",
+ "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/unified": {
+ "version": "10.1.2",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz",
+ "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "bail": "^2.0.0",
+ "extend": "^3.0.0",
+ "is-buffer": "^2.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-find-after": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-4.0.1.tgz",
+ "integrity": "sha512-QO/PuPMm2ERxC6vFXEPtmAutOopy5PknD+Oq64gGwxKtk4xwo9Z97t9Av1obPmGU0IyTa6EKYUfTrK2QJS3Ozw==",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-is": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.0.tgz",
+ "integrity": "sha512-Glt17jWwZeyqrFqOK0pF1Ded5U3yzJnFr8CG1GMjCWTp9zDo2p+cmD6pWbZU8AgM5WU3IzRv6+rBwhzsGh6hBQ==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-position": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.4.tgz",
+ "integrity": "sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==",
+ "dependencies": {
+ "@types/unist": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-stringify-position": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz",
+ "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==",
+ "dependencies": {
+ "@types/unist": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-visit": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz",
+ "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^5.0.0",
+ "unist-util-visit-parents": "^5.1.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-visit-parents": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz",
+ "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/uvu": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz",
+ "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==",
+ "dependencies": {
+ "dequal": "^2.0.0",
+ "diff": "^5.0.0",
+ "kleur": "^4.0.3",
+ "sade": "^1.7.3"
+ },
+ "bin": {
+ "uvu": "bin.js"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/vfile": {
+ "version": "5.3.6",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.6.tgz",
+ "integrity": "sha512-ADBsmerdGBs2WYckrLBEmuETSPyTD4TuLxTrw0DvjirxW1ra4ZwkbzG8ndsv3Q57smvHxo677MHaQrY9yxH8cA==",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "is-buffer": "^2.0.0",
+ "unist-util-stringify-position": "^3.0.0",
+ "vfile-message": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-location": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz",
+ "integrity": "sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "vfile": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-message": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.3.tgz",
+ "integrity": "sha512-0yaU+rj2gKAyEk12ffdSbBfjnnj+b1zqTBv3OQCTn8yEB02bsPizwdBPrLJjHnK+cU9EMMcUnNv938XcZIkmdA==",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "unist-util-stringify-position": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/web-namespaces": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz",
+ "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "dev": true
+ },
+ "node_modules/zwitch": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
+ "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ }
+ },
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": {
+ "version": "1.4.14",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
+ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
+ "dev": true
+ },
+ "@rollup/plugin-commonjs": {
+ "version": "24.0.1",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-24.0.1.tgz",
+ "integrity": "sha512-15LsiWRZk4eOGqvrJyu3z3DaBu5BhXIMeWnijSRvd8irrrg9SHpQ1pH+BUK4H6Z9wL9yOxZJMTLU+Au86XHxow==",
+ "dev": true,
+ "requires": {
+ "@rollup/pluginutils": "^5.0.1",
+ "commondir": "^1.0.1",
+ "estree-walker": "^2.0.2",
+ "glob": "^8.0.3",
+ "is-reference": "1.2.1",
+ "magic-string": "^0.27.0"
+ }
+ },
+ "@rollup/pluginutils": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz",
+ "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==",
+ "dev": true,
+ "requires": {
+ "@types/estree": "^1.0.0",
+ "estree-walker": "^2.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "@types/debug": {
+ "version": "4.1.7",
+ "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz",
+ "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==",
+ "requires": {
+ "@types/ms": "*"
+ }
+ },
+ "@types/estree": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz",
+ "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==",
+ "dev": true
+ },
+ "@types/extend": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/extend/-/extend-3.0.1.tgz",
+ "integrity": "sha512-R1g/VyKFFI2HLC1QGAeTtCBWCo6n75l41OnsVYNbmKG+kempOESaodf6BeJyUM3Q0rKa/NQcTHbB2+66lNnxLw=="
+ },
+ "@types/hast": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz",
+ "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==",
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/mdast": {
+ "version": "3.0.10",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz",
+ "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==",
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/ms": {
+ "version": "0.7.31",
+ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz",
+ "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA=="
+ },
+ "@types/parse5": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz",
+ "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g=="
+ },
+ "@types/unist": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz",
+ "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ=="
+ },
+ "bail": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz",
+ "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw=="
+ },
+ "balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "ccount": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz",
+ "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg=="
+ },
+ "character-entities": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz",
+ "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ=="
+ },
+ "character-entities-html4": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz",
+ "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA=="
+ },
+ "character-entities-legacy": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
+ "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ=="
+ },
+ "comma-separated-tokens": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
+ "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg=="
+ },
+ "commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
+ "dev": true
+ },
+ "compromise": {
+ "version": "14.8.2",
+ "resolved": "https://registry.npmjs.org/compromise/-/compromise-14.8.2.tgz",
+ "integrity": "sha512-B/2MxDx2R1U8QlZPZycypvqv/JfSPJSyh/sTUxIuteSja5ABWzHoLpaTGmRiai1GX7wKA1pOSSwtp4XRFGDKnA==",
+ "peer": true,
+ "requires": {
+ "efrt": "2.7.0",
+ "grad-school": "0.0.5",
+ "suffix-thumb": "4.0.2"
+ }
+ },
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "decode-named-character-reference": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz",
+ "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==",
+ "requires": {
+ "character-entities": "^2.0.0"
+ }
+ },
+ "dequal": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
+ "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="
+ },
+ "diff": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz",
+ "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw=="
+ },
+ "efrt": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/efrt/-/efrt-2.7.0.tgz",
+ "integrity": "sha512-/RInbCy1d4P6Zdfa+TMVsf/ufZVotat5hCw3QXmWtjU+3pFEOvOQ7ibo3aIxyCJw2leIeAMjmPj+1SLJiCpdrQ==",
+ "peer": true
+ },
+ "estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
+ "dev": true
+ },
+ "extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+ },
+ "fault": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz",
+ "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==",
+ "requires": {
+ "format": "^0.2.0"
+ }
+ },
+ "format": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz",
+ "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww=="
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "dev": true
+ },
+ "glob": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
+ "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^5.0.1",
+ "once": "^1.3.0"
+ }
+ },
+ "grad-school": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/grad-school/-/grad-school-0.0.5.tgz",
+ "integrity": "sha512-rXunEHF9M9EkMydTBux7+IryYXEZinRk6g8OBOGDBzo/qWJjhTxy86i5q7lQYpCLHN8Sqv1XX3OIOc7ka2gtvQ==",
+ "peer": true
+ },
+ "hast-util-embedded": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/hast-util-embedded/-/hast-util-embedded-2.0.1.tgz",
+ "integrity": "sha512-QUdSOP1/o+/TxXtpPFXR2mUg2P+ySrmlX7QjwHZCXqMFyYk7YmcGSvqRW+4XgXAoHifdE1t2PwFaQK33TqVjSw==",
+ "requires": {
+ "hast-util-is-element": "^2.0.0"
+ }
+ },
+ "hast-util-from-parse5": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-7.1.1.tgz",
+ "integrity": "sha512-R6PoNcUs89ZxLJmMWsVbwSWuz95/9OriyQZ3e2ybwqGsRXzhA6gv49rgGmQvLbZuSNDv9fCg7vV7gXUsvtUFaA==",
+ "requires": {
+ "@types/hast": "^2.0.0",
+ "@types/unist": "^2.0.0",
+ "hastscript": "^7.0.0",
+ "property-information": "^6.0.0",
+ "vfile": "^5.0.0",
+ "vfile-location": "^4.0.0",
+ "web-namespaces": "^2.0.0"
+ }
+ },
+ "hast-util-has-property": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-2.0.1.tgz",
+ "integrity": "sha512-X2+RwZIMTMKpXUzlotatPzWj8bspCymtXH3cfG3iQKV+wPF53Vgaqxi/eLqGck0wKq1kS9nvoB1wchbCPEL8sg=="
+ },
+ "hast-util-is-body-ok-link": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-is-body-ok-link/-/hast-util-is-body-ok-link-2.0.0.tgz",
+ "integrity": "sha512-S58hCexyKdD31vMsErvgLfflW6vYWo/ixRLPJTtkOvLld24vyI8vmYmkgLA5LG3la2ME7nm7dLGdm48gfLRBfw==",
+ "requires": {
+ "@types/hast": "^2.0.0",
+ "hast-util-has-property": "^2.0.0",
+ "hast-util-is-element": "^2.0.0"
+ }
+ },
+ "hast-util-is-element": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-2.1.3.tgz",
+ "integrity": "sha512-O1bKah6mhgEq2WtVMk+Ta5K7pPMqsBBlmzysLdcwKVrqzZQ0CHqUPiIVspNhAG1rvxpvJjtGee17XfauZYKqVA==",
+ "requires": {
+ "@types/hast": "^2.0.0",
+ "@types/unist": "^2.0.0"
+ }
+ },
+ "hast-util-parse-selector": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz",
+ "integrity": "sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==",
+ "requires": {
+ "@types/hast": "^2.0.0"
+ }
+ },
+ "hast-util-phrasing": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hast-util-phrasing/-/hast-util-phrasing-2.0.2.tgz",
+ "integrity": "sha512-yGkCfPkkfCyiLfK6KEl/orMDr/zgCnq/NaO9HfULx6/Zga5fso5eqQA5Ov/JZVqACygvw9shRYWgXNcG2ilo7w==",
+ "requires": {
+ "@types/hast": "^2.0.0",
+ "hast-util-embedded": "^2.0.0",
+ "hast-util-has-property": "^2.0.0",
+ "hast-util-is-body-ok-link": "^2.0.0",
+ "hast-util-is-element": "^2.0.0"
+ }
+ },
+ "hast-util-raw": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-7.2.3.tgz",
+ "integrity": "sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==",
+ "requires": {
+ "@types/hast": "^2.0.0",
+ "@types/parse5": "^6.0.0",
+ "hast-util-from-parse5": "^7.0.0",
+ "hast-util-to-parse5": "^7.0.0",
+ "html-void-elements": "^2.0.0",
+ "parse5": "^6.0.0",
+ "unist-util-position": "^4.0.0",
+ "unist-util-visit": "^4.0.0",
+ "vfile": "^5.0.0",
+ "web-namespaces": "^2.0.0",
+ "zwitch": "^2.0.0"
+ },
+ "dependencies": {
+ "parse5": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
+ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw=="
+ }
+ }
+ },
+ "hast-util-to-html": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-8.0.4.tgz",
+ "integrity": "sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA==",
+ "requires": {
+ "@types/hast": "^2.0.0",
+ "@types/unist": "^2.0.0",
+ "ccount": "^2.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "hast-util-raw": "^7.0.0",
+ "hast-util-whitespace": "^2.0.0",
+ "html-void-elements": "^2.0.0",
+ "property-information": "^6.0.0",
+ "space-separated-tokens": "^2.0.0",
+ "stringify-entities": "^4.0.0",
+ "zwitch": "^2.0.4"
+ }
+ },
+ "hast-util-to-mdast": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-to-mdast/-/hast-util-to-mdast-9.0.0.tgz",
+ "integrity": "sha512-7Pl4mWA3JCSHx0s3A1CgJaFirkISDUJsu+DeJd/cHUAlVDgs1sITzg9HZAidSf9LUE7kl8Hf2ZJr1HZTfhV/Yw==",
+ "requires": {
+ "@types/extend": "^3.0.0",
+ "@types/hast": "^2.0.0",
+ "@types/mdast": "^3.0.0",
+ "@types/unist": "^2.0.0",
+ "extend": "^3.0.0",
+ "hast-util-phrasing": "^2.0.0",
+ "hast-util-to-html": "^8.0.4",
+ "hast-util-to-text": "^3.0.0",
+ "hast-util-whitespace": "^2.0.0",
+ "mdast-util-phrasing": "^3.0.0",
+ "mdast-util-to-string": "^3.0.0",
+ "rehype-minify-whitespace": "^5.0.0",
+ "trim-trailing-lines": "^2.0.0",
+ "unist-util-position": "^4.0.0",
+ "unist-util-visit": "^4.0.0"
+ }
+ },
+ "hast-util-to-parse5": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-7.1.0.tgz",
+ "integrity": "sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==",
+ "requires": {
+ "@types/hast": "^2.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "property-information": "^6.0.0",
+ "space-separated-tokens": "^2.0.0",
+ "web-namespaces": "^2.0.0",
+ "zwitch": "^2.0.0"
+ }
+ },
+ "hast-util-to-text": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-3.1.2.tgz",
+ "integrity": "sha512-tcllLfp23dJJ+ju5wCCZHVpzsQQ43+moJbqVX3jNWPB7z/KFC4FyZD6R7y94cHL6MQ33YtMZL8Z0aIXXI4XFTw==",
+ "requires": {
+ "@types/hast": "^2.0.0",
+ "@types/unist": "^2.0.0",
+ "hast-util-is-element": "^2.0.0",
+ "unist-util-find-after": "^4.0.0"
+ }
+ },
+ "hast-util-whitespace": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz",
+ "integrity": "sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng=="
+ },
+ "hastscript": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-7.2.0.tgz",
+ "integrity": "sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==",
+ "requires": {
+ "@types/hast": "^2.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "hast-util-parse-selector": "^3.0.0",
+ "property-information": "^6.0.0",
+ "space-separated-tokens": "^2.0.0"
+ }
+ },
+ "html-void-elements": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-2.0.1.tgz",
+ "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A=="
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "dev": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "is-buffer": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
+ "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ=="
+ },
+ "is-plain-obj": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
+ "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg=="
+ },
+ "is-reference": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz",
+ "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==",
+ "dev": true,
+ "requires": {
+ "@types/estree": "*"
+ }
+ },
+ "kleur": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
+ "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="
+ },
+ "longest-streak": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz",
+ "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g=="
+ },
+ "magic-string": {
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz",
+ "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/sourcemap-codec": "^1.4.13"
+ }
+ },
+ "markdown-table": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz",
+ "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw=="
+ },
+ "mdast-util-from-markdown": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.0.tgz",
+ "integrity": "sha512-HN3W1gRIuN/ZW295c7zi7g9lVBllMgZE40RxCX37wrTPWXCWtpvOZdfnuK+1WNpvZje6XuJeI3Wnb4TJEUem+g==",
+ "requires": {
+ "@types/mdast": "^3.0.0",
+ "@types/unist": "^2.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "mdast-util-to-string": "^3.1.0",
+ "micromark": "^3.0.0",
+ "micromark-util-decode-numeric-character-reference": "^1.0.0",
+ "micromark-util-decode-string": "^1.0.0",
+ "micromark-util-normalize-identifier": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0",
+ "unist-util-stringify-position": "^3.0.0",
+ "uvu": "^0.5.0"
+ }
+ },
+ "mdast-util-frontmatter": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-1.0.1.tgz",
+ "integrity": "sha512-JjA2OjxRqAa8wEG8hloD0uTU0kdn8kbtOWpPP94NBkfAlbxn4S8gCGf/9DwFtEeGPXrDcNXdiDjVaRdUFqYokw==",
+ "requires": {
+ "@types/mdast": "^3.0.0",
+ "mdast-util-to-markdown": "^1.3.0",
+ "micromark-extension-frontmatter": "^1.0.0"
+ }
+ },
+ "mdast-util-gfm-table": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz",
+ "integrity": "sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==",
+ "requires": {
+ "@types/mdast": "^3.0.0",
+ "markdown-table": "^3.0.0",
+ "mdast-util-from-markdown": "^1.0.0",
+ "mdast-util-to-markdown": "^1.3.0"
+ }
+ },
+ "mdast-util-phrasing": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz",
+ "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==",
+ "requires": {
+ "@types/mdast": "^3.0.0",
+ "unist-util-is": "^5.0.0"
+ }
+ },
+ "mdast-util-to-markdown": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz",
+ "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==",
+ "requires": {
+ "@types/mdast": "^3.0.0",
+ "@types/unist": "^2.0.0",
+ "longest-streak": "^3.0.0",
+ "mdast-util-phrasing": "^3.0.0",
+ "mdast-util-to-string": "^3.0.0",
+ "micromark-util-decode-string": "^1.0.0",
+ "unist-util-visit": "^4.0.0",
+ "zwitch": "^2.0.0"
+ }
+ },
+ "mdast-util-to-string": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.1.tgz",
+ "integrity": "sha512-tGvhT94e+cVnQt8JWE9/b3cUQZWS732TJxXHktvP+BYo62PpYD53Ls/6cC60rW21dW+txxiM4zMdc6abASvZKA==",
+ "requires": {
+ "@types/mdast": "^3.0.0"
+ }
+ },
+ "micromark": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.1.0.tgz",
+ "integrity": "sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA==",
+ "requires": {
+ "@types/debug": "^4.0.0",
+ "debug": "^4.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "micromark-core-commonmark": "^1.0.1",
+ "micromark-factory-space": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-chunked": "^1.0.0",
+ "micromark-util-combine-extensions": "^1.0.0",
+ "micromark-util-decode-numeric-character-reference": "^1.0.0",
+ "micromark-util-encode": "^1.0.0",
+ "micromark-util-normalize-identifier": "^1.0.0",
+ "micromark-util-resolve-all": "^1.0.0",
+ "micromark-util-sanitize-uri": "^1.0.0",
+ "micromark-util-subtokenize": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.1",
+ "uvu": "^0.5.0"
+ }
+ },
+ "micromark-core-commonmark": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz",
+ "integrity": "sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==",
+ "requires": {
+ "decode-named-character-reference": "^1.0.0",
+ "micromark-factory-destination": "^1.0.0",
+ "micromark-factory-label": "^1.0.0",
+ "micromark-factory-space": "^1.0.0",
+ "micromark-factory-title": "^1.0.0",
+ "micromark-factory-whitespace": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-chunked": "^1.0.0",
+ "micromark-util-classify-character": "^1.0.0",
+ "micromark-util-html-tag-name": "^1.0.0",
+ "micromark-util-normalize-identifier": "^1.0.0",
+ "micromark-util-resolve-all": "^1.0.0",
+ "micromark-util-subtokenize": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.1",
+ "uvu": "^0.5.0"
+ }
+ },
+ "micromark-extension-frontmatter": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-1.0.0.tgz",
+ "integrity": "sha512-EXjmRnupoX6yYuUJSQhrQ9ggK0iQtQlpi6xeJzVD5xscyAI+giqco5fdymayZhJMbIFecjnE2yz85S9NzIgQpg==",
+ "requires": {
+ "fault": "^2.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0"
+ }
+ },
+ "micromark-extension-gfm-table": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.5.tgz",
+ "integrity": "sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==",
+ "requires": {
+ "micromark-factory-space": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0",
+ "uvu": "^0.5.0"
+ }
+ },
+ "micromark-factory-destination": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz",
+ "integrity": "sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==",
+ "requires": {
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "micromark-factory-label": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz",
+ "integrity": "sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==",
+ "requires": {
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0",
+ "uvu": "^0.5.0"
+ }
+ },
+ "micromark-factory-space": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz",
+ "integrity": "sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==",
+ "requires": {
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "micromark-factory-title": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz",
+ "integrity": "sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==",
+ "requires": {
+ "micromark-factory-space": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0",
+ "uvu": "^0.5.0"
+ }
+ },
+ "micromark-factory-whitespace": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz",
+ "integrity": "sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==",
+ "requires": {
+ "micromark-factory-space": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "micromark-util-character": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.1.0.tgz",
+ "integrity": "sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==",
+ "requires": {
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "micromark-util-chunked": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz",
+ "integrity": "sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==",
+ "requires": {
+ "micromark-util-symbol": "^1.0.0"
+ }
+ },
+ "micromark-util-classify-character": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz",
+ "integrity": "sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==",
+ "requires": {
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "micromark-util-combine-extensions": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz",
+ "integrity": "sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==",
+ "requires": {
+ "micromark-util-chunked": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "micromark-util-decode-numeric-character-reference": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz",
+ "integrity": "sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==",
+ "requires": {
+ "micromark-util-symbol": "^1.0.0"
+ }
+ },
+ "micromark-util-decode-string": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz",
+ "integrity": "sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==",
+ "requires": {
+ "decode-named-character-reference": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-decode-numeric-character-reference": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0"
+ }
+ },
+ "micromark-util-encode": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz",
+ "integrity": "sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA=="
+ },
+ "micromark-util-html-tag-name": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz",
+ "integrity": "sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA=="
+ },
+ "micromark-util-normalize-identifier": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz",
+ "integrity": "sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==",
+ "requires": {
+ "micromark-util-symbol": "^1.0.0"
+ }
+ },
+ "micromark-util-resolve-all": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz",
+ "integrity": "sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==",
+ "requires": {
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "micromark-util-sanitize-uri": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.1.0.tgz",
+ "integrity": "sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg==",
+ "requires": {
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-encode": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0"
+ }
+ },
+ "micromark-util-subtokenize": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz",
+ "integrity": "sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==",
+ "requires": {
+ "micromark-util-chunked": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0",
+ "uvu": "^0.5.0"
+ }
+ },
+ "micromark-util-symbol": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz",
+ "integrity": "sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ=="
+ },
+ "micromark-util-types": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.2.tgz",
+ "integrity": "sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w=="
+ },
+ "minimatch": {
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
+ },
+ "mri": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
+ "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA=="
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true
+ },
+ "property-information": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.2.0.tgz",
+ "integrity": "sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg=="
+ },
+ "rehype-minify-whitespace": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/rehype-minify-whitespace/-/rehype-minify-whitespace-5.0.1.tgz",
+ "integrity": "sha512-PPp4lWJiBPlePI/dv1BeYktbwkfgXkrK59MUa+tYbMPgleod+4DvFK2PLU0O0O60/xuhHfiR9GUIUlXTU8sRIQ==",
+ "requires": {
+ "@types/hast": "^2.0.0",
+ "hast-util-embedded": "^2.0.0",
+ "hast-util-is-element": "^2.0.0",
+ "hast-util-whitespace": "^2.0.0",
+ "unified": "^10.0.0",
+ "unist-util-is": "^5.0.0"
+ }
+ },
+ "sade": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz",
+ "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==",
+ "requires": {
+ "mri": "^1.1.0"
+ }
+ },
+ "space-separated-tokens": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
+ "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q=="
+ },
+ "stringify-entities": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz",
+ "integrity": "sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==",
+ "requires": {
+ "character-entities-html4": "^2.0.0",
+ "character-entities-legacy": "^3.0.0"
+ }
+ },
+ "suffix-thumb": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/suffix-thumb/-/suffix-thumb-4.0.2.tgz",
+ "integrity": "sha512-CCvCAr7JyeQoO+/lyq3P2foZI/xJz5kpG3L6kg2CaOf9K2/gaM9ixy/JTuRwjEK38l306zE7vl3JoOZYmLQLlA==",
+ "peer": true
+ },
+ "trim-trailing-lines": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-2.1.0.tgz",
+ "integrity": "sha512-5UR5Biq4VlVOtzqkm2AZlgvSlDJtME46uV0br0gENbwN4l5+mMKT4b9gJKqWtuL2zAIqajGJGuvbCbcAJUZqBg=="
+ },
+ "trough": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz",
+ "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g=="
+ },
+ "unified": {
+ "version": "10.1.2",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz",
+ "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==",
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "bail": "^2.0.0",
+ "extend": "^3.0.0",
+ "is-buffer": "^2.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^5.0.0"
+ }
+ },
+ "unist-util-find-after": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-4.0.1.tgz",
+ "integrity": "sha512-QO/PuPMm2ERxC6vFXEPtmAutOopy5PknD+Oq64gGwxKtk4xwo9Z97t9Av1obPmGU0IyTa6EKYUfTrK2QJS3Ozw==",
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^5.0.0"
+ }
+ },
+ "unist-util-is": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.0.tgz",
+ "integrity": "sha512-Glt17jWwZeyqrFqOK0pF1Ded5U3yzJnFr8CG1GMjCWTp9zDo2p+cmD6pWbZU8AgM5WU3IzRv6+rBwhzsGh6hBQ=="
+ },
+ "unist-util-position": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.4.tgz",
+ "integrity": "sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==",
+ "requires": {
+ "@types/unist": "^2.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz",
+ "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==",
+ "requires": {
+ "@types/unist": "^2.0.0"
+ }
+ },
+ "unist-util-visit": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz",
+ "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==",
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^5.0.0",
+ "unist-util-visit-parents": "^5.1.1"
+ }
+ },
+ "unist-util-visit-parents": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz",
+ "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==",
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^5.0.0"
+ }
+ },
+ "uvu": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz",
+ "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==",
+ "requires": {
+ "dequal": "^2.0.0",
+ "diff": "^5.0.0",
+ "kleur": "^4.0.3",
+ "sade": "^1.7.3"
+ }
+ },
+ "vfile": {
+ "version": "5.3.6",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.6.tgz",
+ "integrity": "sha512-ADBsmerdGBs2WYckrLBEmuETSPyTD4TuLxTrw0DvjirxW1ra4ZwkbzG8ndsv3Q57smvHxo677MHaQrY9yxH8cA==",
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "is-buffer": "^2.0.0",
+ "unist-util-stringify-position": "^3.0.0",
+ "vfile-message": "^3.0.0"
+ }
+ },
+ "vfile-location": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz",
+ "integrity": "sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==",
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "vfile": "^5.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.3.tgz",
+ "integrity": "sha512-0yaU+rj2gKAyEk12ffdSbBfjnnj+b1zqTBv3OQCTn8yEB02bsPizwdBPrLJjHnK+cU9EMMcUnNv938XcZIkmdA==",
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "unist-util-stringify-position": "^3.0.0"
+ }
+ },
+ "web-namespaces": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz",
+ "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ=="
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "dev": true
+ },
+ "zwitch": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
+ "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A=="
+ }
+ }
+}
diff --git a/plugins/_experiments/markdown/package.json b/plugins/_experiments/markdown/package.json
new file mode 100644
index 000000000..c5e43116c
--- /dev/null
+++ b/plugins/_experiments/markdown/package.json
@@ -0,0 +1,52 @@
+{
+ "name": "compromise-markdown",
+ "description": "plugin for nlp-compromise",
+ "version": "0.0.0",
+ "author": "Spencer Kelly (http://spencermounta.in)",
+ "main": "./src/plugin.js",
+ "unpkg": "./builds/compromise-markdown.min.js",
+ "module": "./builds/compromise-markdown.mjs",
+ "type": "module",
+ "types": "index.d.ts",
+ "sideEffects": false,
+ "exports": {
+ ".": {
+ "import": "./src/plugin.js",
+ "require": "./builds/compromise-markdown.cjs"
+ }
+ },
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/spencermountain/compromise.git"
+ },
+ "homepage": "https://github.com/spencermountain/compromise/tree/master/plugins/markdown",
+ "scripts": {
+ "test": "tape \"./tests/**/*.test.js\" | tap-dancer --color always",
+ "testb": "TESTENV=prod tape \"./tests/**/*.test.js\" | tap-dancer --color always",
+ "watch": "amble ./scratch.js",
+ "build": "rollup -c --silent"
+ },
+ "eslintIgnore": [
+ "builds/*.js"
+ ],
+ "files": [
+ "builds/",
+ "src/",
+ "index.d.ts"
+ ],
+ "peerDependencies": {
+ "compromise": ">=14.0.0"
+ },
+ "dependencies": {
+ "hast-util-to-mdast": "^9.0.0",
+ "mdast-util-frontmatter": "^1.0.1",
+ "mdast-util-gfm-table": "^1.0.7",
+ "mdast-util-to-markdown": "^1.5.0",
+ "micromark-extension-gfm-table": "^1.0.5",
+ "unist-util-visit": "^4.1.2"
+ },
+ "license": "MIT",
+ "devDependencies": {
+ "@rollup/plugin-commonjs": "^24.0.1"
+ }
+}
\ No newline at end of file
diff --git a/plugins/_experiments/markdown/rollup.config.js b/plugins/_experiments/markdown/rollup.config.js
new file mode 100644
index 000000000..ee4a5f024
--- /dev/null
+++ b/plugins/_experiments/markdown/rollup.config.js
@@ -0,0 +1,24 @@
+import { terser } from 'rollup-plugin-terser'
+import sizeCheck from 'rollup-plugin-filesize-check'
+import { nodeResolve } from '@rollup/plugin-node-resolve';
+import commonjs from '@rollup/plugin-commonjs';
+
+const opts = { keep_classnames: true, module: true }
+
+export default [
+ // {
+ // input: 'src/plugin.js',
+ // output: [{ file: 'builds/compromise-paragraphs.cjs', format: 'umd', name: 'compromiseParagraphs' }],
+ // plugins: [nodeResolve(), sizeCheck({ expect: 5, warn: 15 })],
+ // },
+ {
+ input: 'src/plugin.js',
+ output: [{ file: 'builds/compromise-markup.min.js', format: 'umd', name: 'compromiseMarkup' }],
+ plugins: [commonjs(), nodeResolve(), terser(opts), sizeCheck({ expect: 5, warn: 15 })],
+ },
+ // {
+ // input: 'src/plugin.js',
+ // output: [{ file: 'builds/compromise-paragraphs.mjs', format: 'esm' }],
+ // plugins: [nodeResolve(), terser(opts), sizeCheck({ expect: 5, warn: 15 })],
+ // }
+]
diff --git a/plugins/_experiments/markdown/scratch.js b/plugins/_experiments/markdown/scratch.js
new file mode 100644
index 000000000..1fbf7ec23
--- /dev/null
+++ b/plugins/_experiments/markdown/scratch.js
@@ -0,0 +1,42 @@
+/* eslint-disable */
+import nlp from '../../../src/three.js'
+import plg from './src/plugin.js'
+nlp.plugin(plg)
+
+let md = `is this [working](http://noitsnot.com) *again*? nope.
+
+## oh yeah
+
+and this is too
+--
+and **this** will be another section. i guess. \`inline stuff\`
+
+\`\`\`
+block stuff
+\`\`\`
+afterwards
+
+> Alpha bravo charlie.
+
+and then a cool:
+* list 1
+* list 2
+* list 3
+
+hello ![alpha](https://example.com/favicon.ico "bravo") world
+
+`
+
+
+
+md = `| cool | also | here | | |
+|------|------|-------|---|---|
+| one | two | three | | |
+| four | five | | | |
+| | | | | |`
+
+md = `ok **cool** after.
+
+below`
+let doc = nlp.fromMarkdown(md)
+console.log(doc)
\ No newline at end of file
diff --git a/plugins/_experiments/markdown/src/Wrap.js b/plugins/_experiments/markdown/src/Wrap.js
new file mode 100644
index 000000000..e69de29bb
diff --git a/plugins/_experiments/markdown/src/parse/crawl.js b/plugins/_experiments/markdown/src/parse/crawl.js
new file mode 100644
index 000000000..77fdce324
--- /dev/null
+++ b/plugins/_experiments/markdown/src/parse/crawl.js
@@ -0,0 +1,47 @@
+// [a, b, a1, b1]
+const breadthFirst = (root, fn) => {
+ let list = []
+ let queue = [root]
+ while (queue.length > 0) {
+ // get first
+ let node = queue.shift()
+ if (fn) {
+ fn(node)
+ }
+ // add to list
+ list.push(node)
+ // add kids to queue
+ if (node.children) {
+ node.children.forEach(n => {
+ // n._cache.parents = node._cache.parents + 1
+ queue.push(n)
+ })
+ }
+ }
+ return list
+}
+
+
+// [a, a1, b, b1]
+const depthFirst = (root, fn) => {
+ let list = []
+ let queue = [root]
+ while (queue.length > 0) {
+ // get first
+ let node = queue.pop()
+ // add to list
+ list.push(node)
+ // add kids to queue
+ if (node.children) {
+ node.children.forEach(child => {
+ queue.push(child)
+ if (fn) {
+ fn(child)
+ }
+ })
+ }
+ }
+ return list
+}
+
+export { depthFirst, breadthFirst }
\ No newline at end of file
diff --git a/plugins/_experiments/markdown/src/parse/index.js b/plugins/_experiments/markdown/src/parse/index.js
new file mode 100644
index 000000000..886f48add
--- /dev/null
+++ b/plugins/_experiments/markdown/src/parse/index.js
@@ -0,0 +1,14 @@
+import { fromMarkdown } from 'mdast-util-from-markdown'
+import { gfmTable } from 'micromark-extension-gfm-table'
+import { gfmTableFromMarkdown } from 'mdast-util-gfm-table'
+// import { frontmatterFromMarkdown, frontmatterToMarkdown } from 'mdast-util-frontmatter'
+
+const parseMd = function (md) {
+ const tree = fromMarkdown(md, {
+ extensions: [gfmTable],
+ mdastExtensions: [gfmTableFromMarkdown]
+ })
+ return tree
+
+}
+export default parseMd
\ No newline at end of file
diff --git a/plugins/_experiments/markdown/src/parse/toPlaintext.js b/plugins/_experiments/markdown/src/parse/toPlaintext.js
new file mode 100644
index 000000000..fcd013b9a
--- /dev/null
+++ b/plugins/_experiments/markdown/src/parse/toPlaintext.js
@@ -0,0 +1,52 @@
+// import { depthFirst, breadthFirst } from './crawl.js'
+import { visit } from 'unist-util-visit'
+// import uuid from './uuid.js'
+
+
+const shouldBreak = {
+ heading: true,
+ paragraph: true,
+ code: true,
+ thematicBreak: true,
+ blockquote: true,
+ break: true,
+ image: true,
+ table: true,
+ tableRow: true,
+ tableCell: true
+}
+const skipText = {
+ code: true
+}
+
+const toPlaintext = function (tree) {
+ let texts = []
+ let current = ''
+ let startId = null
+ visit(tree, null, (node) => {
+ // n += 1
+ // node.id = node.type + '|' + uuid(n)
+ // console.log(node/.type, '|', node.value)
+ if (current && shouldBreak[node.type]) {
+ texts.push({
+ startId,
+ txt: current,
+ })
+ current = ''
+ startId = null
+ }
+ if (node.value && !skipText[node.type]) {
+ startId = startId || node.id
+ current += node.value
+ }
+ })
+ // add last one
+ if (current) {
+ texts.push({
+ startId,
+ txt: current,
+ })
+ }
+ return texts
+}
+export default toPlaintext
\ No newline at end of file
diff --git a/plugins/_experiments/markdown/src/parse/uuid.js b/plugins/_experiments/markdown/src/parse/uuid.js
new file mode 100644
index 000000000..20d679054
--- /dev/null
+++ b/plugins/_experiments/markdown/src/parse/uuid.js
@@ -0,0 +1,67 @@
+/*
+unique & ordered term ids, based on time & term index
+
+Base 36 (numbers+ascii)
+ 3 digit 4,600
+ 2 digit 1,200
+ 1 digit 36
+
+ TTT|NNN|II|R
+
+TTT -> 46 terms since load
+NNN -> 46 thousand sentences (>1 inf-jest)
+II -> 1,200 words in a sentence (nuts)
+R -> 1-36 random number
+
+novels:
+ avg 80,000 words
+ 15 words per sentence
+ 5,000 sentences
+
+Infinite Jest:
+ 36,247 sentences
+ https://en.wikipedia.org/wiki/List_of_longest_novels
+
+collisions are more-likely after
+ 46 seconds have passed,
+ and
+ after 46-thousand sentences
+
+*/
+let index = 0
+
+const pad3 = (str) => {
+ str = str.length < 3 ? '0' + str : str
+ return str.length < 3 ? '0' + str : str
+}
+
+const toId = function (n) {
+ index += 1
+
+ //don't overflow index
+ index = index > 46655 ? 0 : index
+ //don't overflow sentences
+ n = n > 46655 ? 0 : n
+ // //don't overflow terms
+ // i = i > 1294 ? 0 : i
+
+ // 3 digits for time
+ let id = pad3(index.toString(36))
+ // 3 digit for sentence index (46k)
+ id += pad3(n.toString(36))
+
+ // 1 digit for term index (36)
+ // let tx = i.toString(36)
+ // tx = tx.length < 2 ? '0' + tx : tx //pad2
+ // id += tx
+
+ // 1 digit random number
+ let r = parseInt(Math.random() * 36, 10)
+ id += (r).toString(36)
+
+ return id.toUpperCase()
+}
+
+export default toId
+
+// setInterval(() => console.log(toId(4, 12)), 100)
diff --git a/plugins/_experiments/markdown/src/plugin.js b/plugins/_experiments/markdown/src/plugin.js
new file mode 100644
index 000000000..5c0faf585
--- /dev/null
+++ b/plugins/_experiments/markdown/src/plugin.js
@@ -0,0 +1,29 @@
+// import { convertToHtml, parseHtml, printHtml } from './html/index.js'
+// import { convertToMd, parseMd, printMd } from './md/index.js'
+// import { fromMarkdown } from 'mdast-util-from-markdown'
+import parse from './parse/index.js'
+
+import toPlaintexts from './parse/toPlaintext.js'
+import { visit } from 'unist-util-visit'
+
+const cleanup = function (tree) {
+ let n = 0
+ visit(tree, null, (node) => {
+ node.id = String(n)
+ n += 1
+ delete node.position
+ })
+ return tree
+}
+
+
+export default {
+ lib: {
+ fromMarkdown: function (md = '') {
+ let tree = parse(md)
+ tree = cleanup(tree)
+ // console.dir(tree, { depth: 8 })
+ return toPlaintexts(tree)
+ }
+ }
+}
\ No newline at end of file
diff --git a/plugins/_experiments/sentiment/README.md b/plugins/_experiments/sentiment/README.md
new file mode 100644
index 000000000..d1286a239
--- /dev/null
+++ b/plugins/_experiments/sentiment/README.md
@@ -0,0 +1 @@
+experimental rule-based, compressed-data sentiment analysis by Scott Cram
diff --git a/plugins/_experiments/sentiment/package-lock.json b/plugins/_experiments/sentiment/package-lock.json
new file mode 100644
index 000000000..5197e077f
--- /dev/null
+++ b/plugins/_experiments/sentiment/package-lock.json
@@ -0,0 +1,423 @@
+{
+ "name": "compromise-sentiment",
+ "version": "0.0.0",
+ "lockfileVersion": 2,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "compromise-sentiment",
+ "version": "0.0.0",
+ "license": "MIT",
+ "dependencies": {
+ "efrt": "^2.7.0"
+ },
+ "devDependencies": {
+ "@rollup/plugin-commonjs": "^24.0.1"
+ },
+ "peerDependencies": {
+ "compromise": ">=14.0.0"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.4.15",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
+ "dev": true
+ },
+ "node_modules/@rollup/plugin-commonjs": {
+ "version": "24.1.0",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-24.1.0.tgz",
+ "integrity": "sha512-eSL45hjhCWI0jCCXcNtLVqM5N1JlBGvlFfY0m6oOYnLCJ6N0qEXoZql4sY2MOUArzhH4SA/qBpTxvvZp2Sc+DQ==",
+ "dev": true,
+ "dependencies": {
+ "@rollup/pluginutils": "^5.0.1",
+ "commondir": "^1.0.1",
+ "estree-walker": "^2.0.2",
+ "glob": "^8.0.3",
+ "is-reference": "1.2.1",
+ "magic-string": "^0.27.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^2.68.0||^3.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rollup/pluginutils": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz",
+ "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==",
+ "dev": true,
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "estree-walker": "^2.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^1.20.0||^2.0.0||^3.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz",
+ "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==",
+ "dev": true
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ },
+ "node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
+ "dev": true
+ },
+ "node_modules/compromise": {
+ "version": "14.8.2",
+ "resolved": "https://registry.npmjs.org/compromise/-/compromise-14.8.2.tgz",
+ "integrity": "sha512-B/2MxDx2R1U8QlZPZycypvqv/JfSPJSyh/sTUxIuteSja5ABWzHoLpaTGmRiai1GX7wKA1pOSSwtp4XRFGDKnA==",
+ "peer": true,
+ "dependencies": {
+ "efrt": "2.7.0",
+ "grad-school": "0.0.5",
+ "suffix-thumb": "4.0.2"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/efrt": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/efrt/-/efrt-2.7.0.tgz",
+ "integrity": "sha512-/RInbCy1d4P6Zdfa+TMVsf/ufZVotat5hCw3QXmWtjU+3pFEOvOQ7ibo3aIxyCJw2leIeAMjmPj+1SLJiCpdrQ==",
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
+ "dev": true
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "dev": true
+ },
+ "node_modules/glob": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
+ "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
+ "dev": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^5.0.1",
+ "once": "^1.3.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/grad-school": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/grad-school/-/grad-school-0.0.5.tgz",
+ "integrity": "sha512-rXunEHF9M9EkMydTBux7+IryYXEZinRk6g8OBOGDBzo/qWJjhTxy86i5q7lQYpCLHN8Sqv1XX3OIOc7ka2gtvQ==",
+ "peer": true,
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "dev": true,
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "node_modules/is-reference": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz",
+ "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/estree": "*"
+ }
+ },
+ "node_modules/magic-string": {
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz",
+ "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.4.13"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "dev": true,
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/suffix-thumb": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/suffix-thumb/-/suffix-thumb-4.0.2.tgz",
+ "integrity": "sha512-CCvCAr7JyeQoO+/lyq3P2foZI/xJz5kpG3L6kg2CaOf9K2/gaM9ixy/JTuRwjEK38l306zE7vl3JoOZYmLQLlA==",
+ "peer": true
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "dev": true
+ }
+ },
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": {
+ "version": "1.4.15",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
+ "dev": true
+ },
+ "@rollup/plugin-commonjs": {
+ "version": "24.1.0",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-24.1.0.tgz",
+ "integrity": "sha512-eSL45hjhCWI0jCCXcNtLVqM5N1JlBGvlFfY0m6oOYnLCJ6N0qEXoZql4sY2MOUArzhH4SA/qBpTxvvZp2Sc+DQ==",
+ "dev": true,
+ "requires": {
+ "@rollup/pluginutils": "^5.0.1",
+ "commondir": "^1.0.1",
+ "estree-walker": "^2.0.2",
+ "glob": "^8.0.3",
+ "is-reference": "1.2.1",
+ "magic-string": "^0.27.0"
+ }
+ },
+ "@rollup/pluginutils": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz",
+ "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==",
+ "dev": true,
+ "requires": {
+ "@types/estree": "^1.0.0",
+ "estree-walker": "^2.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "@types/estree": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz",
+ "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==",
+ "dev": true
+ },
+ "balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
+ "dev": true
+ },
+ "compromise": {
+ "version": "14.8.2",
+ "resolved": "https://registry.npmjs.org/compromise/-/compromise-14.8.2.tgz",
+ "integrity": "sha512-B/2MxDx2R1U8QlZPZycypvqv/JfSPJSyh/sTUxIuteSja5ABWzHoLpaTGmRiai1GX7wKA1pOSSwtp4XRFGDKnA==",
+ "peer": true,
+ "requires": {
+ "efrt": "2.7.0",
+ "grad-school": "0.0.5",
+ "suffix-thumb": "4.0.2"
+ }
+ },
+ "efrt": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/efrt/-/efrt-2.7.0.tgz",
+ "integrity": "sha512-/RInbCy1d4P6Zdfa+TMVsf/ufZVotat5hCw3QXmWtjU+3pFEOvOQ7ibo3aIxyCJw2leIeAMjmPj+1SLJiCpdrQ=="
+ },
+ "estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
+ "dev": true
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "dev": true
+ },
+ "glob": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
+ "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^5.0.1",
+ "once": "^1.3.0"
+ }
+ },
+ "grad-school": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/grad-school/-/grad-school-0.0.5.tgz",
+ "integrity": "sha512-rXunEHF9M9EkMydTBux7+IryYXEZinRk6g8OBOGDBzo/qWJjhTxy86i5q7lQYpCLHN8Sqv1XX3OIOc7ka2gtvQ==",
+ "peer": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "dev": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "is-reference": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz",
+ "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==",
+ "dev": true,
+ "requires": {
+ "@types/estree": "*"
+ }
+ },
+ "magic-string": {
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz",
+ "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/sourcemap-codec": "^1.4.13"
+ }
+ },
+ "minimatch": {
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true
+ },
+ "suffix-thumb": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/suffix-thumb/-/suffix-thumb-4.0.2.tgz",
+ "integrity": "sha512-CCvCAr7JyeQoO+/lyq3P2foZI/xJz5kpG3L6kg2CaOf9K2/gaM9ixy/JTuRwjEK38l306zE7vl3JoOZYmLQLlA==",
+ "peer": true
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "dev": true
+ }
+ }
+}
diff --git a/plugins/_experiments/sentiment/package.json b/plugins/_experiments/sentiment/package.json
new file mode 100644
index 000000000..e38aac8d7
--- /dev/null
+++ b/plugins/_experiments/sentiment/package.json
@@ -0,0 +1,46 @@
+{
+ "name": "compromise-sentiment",
+ "description": "plugin for nlp-compromise",
+ "version": "0.0.0",
+ "author": "Spencer Kelly (http://spencermounta.in)",
+ "main": "./src/plugin.js",
+ "unpkg": "./builds/compromise-sentiment.min.js",
+ "module": "./builds/compromise-sentiment.mjs",
+ "type": "module",
+ "types": "index.d.ts",
+ "sideEffects": false,
+ "exports": {
+ ".": {
+ "import": "./src/plugin.js"
+ }
+ },
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/spencermountain/compromise.git"
+ },
+ "homepage": "https://github.com/spencermountain/compromise/tree/master/plugins/sentiment",
+ "scripts": {
+ "test": "tape \"./tests/**/*.test.js\" | tap-dancer --color always",
+ "testb": "TESTENV=prod tape \"./tests/**/*.test.js\" | tap-dancer --color always",
+ "watch": "amble ./scratch.js",
+ "build": "rollup -c --silent"
+ },
+ "eslintIgnore": [
+ "builds/*.js"
+ ],
+ "files": [
+ "builds/",
+ "src/",
+ "index.d.ts"
+ ],
+ "peerDependencies": {
+ "compromise": ">=14.0.0"
+ },
+ "dependencies": {
+ "efrt": "^2.7.0"
+ },
+ "license": "MIT",
+ "devDependencies": {
+ "@rollup/plugin-commonjs": "^24.0.1"
+ }
+}
diff --git a/plugins/_experiments/sentiment/scratch.js b/plugins/_experiments/sentiment/scratch.js
new file mode 100644
index 000000000..bdc6a1efa
--- /dev/null
+++ b/plugins/_experiments/sentiment/scratch.js
@@ -0,0 +1,12 @@
+/* eslint-disable */
+import nlp from '../../../src/three.js'
+import plg from './src/plugin.js'
+nlp.plugin(plg)
+
+let arr = [
+ "the acting was terrible",
+ "these pretzels are making me thirsty",
+]
+
+let res = nlp(arr[0]).sentiment()
+console.log(res)
\ No newline at end of file
diff --git a/plugins/_experiments/sentiment/src/data/_pckd.js b/plugins/_experiments/sentiment/src/data/_pckd.js
new file mode 100644
index 000000000..68a4cd4b2
--- /dev/null
+++ b/plugins/_experiments/sentiment/src/data/_pckd.js
@@ -0,0 +1,28 @@
+/**
+* pattern_en_packed
+*
+* Variable containing polarity, subjectivity, and intensity scores for selected opinion-based words in English, compressed with efrt 2.7.0
+*
+* @author Scott Cram
+*
+* Original version:
+* @author Steven Loria
+* @see {@link https://github.com/sloria/TextBlob/blob/dev/textblob/en/en-sentiment.xml|en-sentiment.xml}
+*
+* From xml file above, multiple occurences of the same word were replaced with single instance, and values were averaged to four decimal places.
+* Resulting data was trimmed so as to only contain polarity, subjectivity and intensity scores.
+* All apostrophes removed.
+* Added all words from negation array below (with dummy values same as "wont", since they won't be used.)
+* Converted to JSON object.
+* Format for entries: "word": ["i1.0", "p0.0", "s0.1"]
+* i denotes intensity score
+* p denotes polarity score
+* s denotes subjectivity score
+*
+* Alternative versions:
+* @see {@link https://github.com/NaturalNode/natural/blob/master/lib/natural/sentiment/English/pattern-sentiment-en.json|pattern-sentiment-en.json (Another English language version)}
+* @see {@link https://github.com/NaturalNode/natural/blob/master/lib/natural/sentiment/Dutch/pattern-sentiment-nl.json|pattern-sentiment-nl.json (Dutch language)}
+* @see {@link https://github.com/NaturalNode/natural/blob/master/lib/natural/sentiment/French/pattern-sentiment-fr.json|pattern-sentiment-fr.json (French language)}
+* @see {@link https://github.com/NaturalNode/natural/blob/master/lib/natural/sentiment/Italian/pattern-sentiment-it.json|pattern-sentiment-it.json (Italian language)}
+*/
+export default "i1.0¦0:N2;1:MG;2:N5;3:MX;4:M7;5:MQ;6:MP;7:M3;8:MY;9:KB;A:M1;B:JE;C:LP;D:L2;E:IX;F:II;G:KX;H:JO;I:IO;J:MW;K:LC;L:L0;aJTbIOcFQdE7eD0fBNgAShA7i8Wj8Rk8Pl7Xm6Sn6Io63p4Zqu4Vr46s22t1Hu0Fv09wPyM;aNellM4oungM;!er,iD;aawwnnnn,rn;a00eWhUiRoMro3tf;manJ0nPodKHrMu3Jw;kmanli89sNthM;!leJLwDFy;e,t;deCDky,t;de,lNnMse,tI;!ni3s;d,li3;addupwitdM2iMo6;ms9te;aOiN0lMre2st2Nt;coJLl-M;advis0intLVo3V;k,ltFB;cGSnPrOsM;nt,teM;!d,s;m,y;!ts;aPeterCiNoDDulM;gC5nG0;bCCcMoFLsu1t1vLL;io7tim;cu5JgA7pMrGst;id,orif5;gl0LltiK8nPppErOsMttE;eMu1;d LZfBleIW;bCinEK;a0Fb0Cc09d08e05f01grL5hYiVknown,likeI7nUorigF5pPreaOsNtMusu1w0;hink4race4;alt0chool0ettK8tirr0;d,liH;aL9lPrM;eNoM;ceDKpKD;cedeLZdi8B;ay4easa2;ec5Hotic0;l5Ompor8NnMq9Rvers1;spir0teM;lliFArrupt0;aNeM;altEHsiDP;mpG5pGG;aiOoMruitfB;cJErM;gett4tunateG5;r,t04;ngaGNvJ4xM;cell0pM;eUlHQ;eserv0ign78;ared-f68h85ivil,oMrit9ut;mMntroEWok0;fFKmGR;eNlMraH6;emLHinH8;fitKliHT;b6dultBPffeMnswFQppeJEsham0vow0waIA;ct0;iFLyM;!-duckJD;a05e01hXiVoSrNwMyp9;ist0o-dimen4I;aPeOiDKoub1AuM;e,tM;hfB;men8Hn9C;diESg5pp0;il1UneFpNt1uM;cIZgh;!-not9Uic1;dy,gGRny,reMt3U;d,soHU;anks,eOiNoughtMrillJ;-provoGPfB;ck,n,rd;atr9mHJoret9;chn9dGen1YnOrM;min3HrM;est5Di7X;!se;leKOme,steF;a1Mc1Je19h14i0Yk0Wl0Tm0Qo0Jp0DtYuNwMympathI6;e1Fi3N;bVcRddI3ffQit4pNrMspensH3;e,prisJre1;erNportiM;ng,ve;!b,fi8Xi57natD9;e3QocaK;ceNh,kM;erBJs;e2XssM;!fB;conscGjeC0norm1seqJOt6urbC;aWeTiRrOuMyliD;mb6nEWpidM;!iI;aMetCOiG1o3utK;ightMnH6;!forGZ;ff,nkM;er,s;adNll9SreotypM;ed,ic1;faJ3y;bBHinFle,ndaKArNtM;e-suppo57ic;k,tM;i3li3;aniDeOiritNlendJ2oMrightFW;ntanD2of;ed,u1;cMnt;iMtac2N;al,f5;bEci1ftRlPphOrLuM;nd,rHWthM;ern;ist9Hom28;e,iM;c91d;!-boBH;aNiMooAW;le6W;ll6Xrt;iNoM;pE3w;ck,gF6p7A;ept9iM;ll0ttiD;ckQgnifica2lPmNnMxth-graFH;ceG7g6istEks;il8YplM;e,iH;e2ly;!eDS;aPeEit,oNriMy;eDAll;ckJd7Brt,uMweL;ld2;dy,ky,llI1m,peFrp;aUcRizurBDlfQnOrNv2SxM;u1y;io7mE8;sMtim93;aCLiA;-acKiD;!ondNrMuFR;et;!aLhaHH;mFsI0;aMum;rMtGN;ey,y;dCPfe,me,rcaHtisM;fMyfi3;i0yi3;a07eTiQoNuM;de,iH5r1sG6thF;b0Afl,hypnol,maFPse,uM;ghMnd;!aFF;ch,dicu88ghtNp-oMsk-free,veK;ff;!-E2iHF;aYcXdWfresGAgUhaDlTmSpQsNtardMwarFS;!ed,s;ourcERpM;ectMoC2;ab6fBiIR;eMut4;lBCtiA;ark4inis2Wo8;atHWe3YigG;rets,uM;l7RrgitAE;!eeGWoubt4uI9;e2ogniz4;dy,liHsS;nNre,uMw;co7ncAL;coHEdom,k;estiOiM;ck,et,rC0xM;ot5;on4;a0Ie0Dh0Bi08l03oXrOsychoNuM;bl5re,taA;lFFt5;eRiQoM;fOlix,miNpMud,vA0;aganda,er;ne2si3;es0Ui1EouG9;ceFmaLor,sBSva8;acA6ciNdi3TgTse2tMvG;e2Sty;o7se;et5iPlOor,p0AsNtentMwerCR;!i1;iAsHH;ar,it9;gMntF;na2;aPeNodM;!di3;asMonaH;a2ed;cGBin,titud9IusH9;nMo7ty,vot1;heaMk;ds;antasmagMenomen1ilosoph80ys9;or5;aPeviDppeLrM;fe8MpMsAO;etuMlex0;alCW;cDCky;infBlRrNsMthEC;sioFDt;aOtiM;al,cM;ul6F;de,llel;e,p4;bYccaXdd,ffVkUld43nCNoz90pSrRthEutOverMwn;-the-top,aMbGKexcit0whelFH;ll;dF8rageNsM;iCPt5F;d,o7;di99ig9Fthodox;enC4po6ItimM;um;!ay;beFNeM;rs;siA1;ed8KjecAsMvG;e7Stacl8M;aSeQiGNoNumM;b,eFP;!b6nvio9CrNstalg5tM;!ab6;m1wegiC;ar,cMedFgaAithErve-racBWt,vEw,xt;essaL;iGKk0meFrrF1sIturalNuM;ghIseEO;!iH;a0Ee05iZoRuMysterG;ch,g4OltiNnda4CsMzak;ic1t2;lMp6;atM;er1;dQnPrNst,tl42uth-waM;te6G;alMe,on6U;!iDR;k3Yosyllab5;!eM;rMst;a8n;dQghIlPnNsMx0;er4fiCGplac0si3;dMim1or,us;-boggDKleC4;d,i9D;!d6;aSdiPlodrama,m7HnOrNsMtaphor9xDP;meriDFs4H;ciFe;a8Lt1;caNev1ocrM;e,iI;l,tiFR;gEnMsB7;!ingAI;d,gVin,jUlSnPrOsNtM;hemat9uC1;culi3IsiFMte4K;k0ri0ti1ve4V;nerB1oNq2VyM;!-sid0;ri1;adroit,eM;!vo83;or;ic9EnifiM;ce2;a09e05iVmao,oNuMyr5;c8Ysh;c1g9lSnQo9HsePuOvMw,y1;ab6eMi3;!d,ly;d,sy;rs,s;eAMgM;!-wiAB;!ol;ab6ceUfelSghtQkOmNnguiHtMve8Z;eCAt6;it0p;ab6eM;d,ly;!-heaM;rt0;iMo3;ke;ntG;aOftNgMn6Jss1P;al,endaLib6;!iD9;dBNst;me,rge1Xst67tNughMwfBzy;!ab6ed;eMtE;!r,st;ey,iM;ll0nd;aOewiDoy,uM;stMveni6;ifi0;ckassMil,mm0pane8M;!es;c0Vd0Rll0Qm0HnPrMs2tB2;iDon5rM;eleMi5O;va2; 0Ba0Ac06d02eYfWgenGhuma25i45nUsStMvenA;eMiBMrigui3;llOn8ErM;e57naM;l,ti7C;ectu1igentM;!sia;a1YecuAGpirMta2ulting7Z;a77i3;er,oM;ce2vaA;aMlexDJuriaK;mo7nti6tuC2;luOvQxpM;eMlic4reDF;d5LrieCV;ct4;eOiNomM;it4;e,spens4vidu1;ciph6Qpende2;alc8MoMredD9ur4;heDOmpNnMrruX;sistenci5Gven5D;ar4e6L;ppo33rticu90uspicG;good tMsto8W;as8;aginaAbeci6itati88mTpM;aRePlicOoMressCP;rMssD0;ta2;at0it 7X;cc4rceM;ptCW;s31t51;ane2en7G;!eg1;eOioM;cy,tM;!ic,s;al,ntifi4;ky,on5y;aVeTiSoOuMyster9;ge,mM;an,b6oBZ;llBGnestOrriMt;b6fM;ic,yi3;!-to-god;dd9TghSlarGnd6Pstor3Bt-and-mi8Z;aMro5;lt4YrtfeBVvy;d2haTlf,ndSpQrOs2teNve2zarM;do7;!d;dMsh;!er;hazaCEle8RpM;i6Dy;-held,so8Yy;!haM;!haM;!ha;a0Ee0Bi0Al07o02rNuM;ard0ilI;aYeUiRoPrNuM;d6Veso8R;!rM;!r;ss,tesqM;ue;eNm,pMtI;pi3;f,vo7;atNeMy;k,n;!eM;r,st;ndMph5tu0Z;!iloqAU;dforsak8Yld8YoNrM;g4Ny;dMfy;!y-gooM;dy;ad,oNuM;ey;b1om;a2ft0mmic5F;nMrmCtt4;er6Ct6uiM;ne;meMrgantuCw5By;!changE;*c6Wa0Le0Ii0Al05o00rSuM;ckQllOnNrtMtu7Z;hEiBK;!ny;! of life,-M;bodi0fleBFleng2B;!ed,i3;agi6ePiMostbitt8DustratJ;end6VgNnM;gy;h1Eid;eNnMqA4sh;ch;!-thin6JstM;an85;llowi3rMur21; su7KcOeign,getNmMtu97;er,ula5;fBt4;ed,ib6;aOippa2uMy;ffMid;!y;s34t,wM;ed,le72;c43endiDftie1RlSnPrNtMx0;!ti3;m,stM;!-st10;aNeM;!-loo62;l,n7U;l0t2V;aNeb6licMma6veriDw;ito7;rfB;bVci1iTke,l4TmRnQrOsNtIultFvorM;ed,i8;cinaKt;!-out,cMthermo92;e,ic1;at5taH;iliMo7;ar;lMnt,r;!ed,s,u6R;l0rNuM;lo7;ic8F;a0Qc0Nd0Lerie,ff0KgoiHl0Im0Gn08p5qu1r06ssen05th9uropeCv03xM;a00cXhWot5pSquiRtNubeM;ra2;eOin1BrM;aMe6I;!ordi2D;nUrn1;si8;eMlo6OresS;ct0nRriM;e90mM;ent1;au0YilaraK;eMitJu43;l2Ip31sM;si9U;ct,ggM;er7X;eryday,iM;de2l;ti1;ot5ron2CstwMudi8;hi6;dRerg6LgQigm5SjoyPlighOoNtM;ertai3OhusiaHi5Z;r64ugh;te3M;!ab6ed,i3;a3YliDros77;eaMle5K;ri3;o2KpM;ir9ty;abo8UeM;ct,ga2m2O;ecAi3;gy,uM;ca2E;centr5oM;l6DnomM;ic35;rlMsy;iEy;a11e0DiXoSrQuMynam5;dsvil6e,hNllMmb,sIuuh;!s;!hhM;!h;aMeadfBi0own0unk,y;g,m52;cum28es2meHnOubNwM;dy,n;le,tfB;e wiMt;th;a00dZffXgit1mWrUsMurn1;aRbelie06court1De0LguQhone78lik0possePtM;aNinTraug3XurM;bi3;nt,st4K;ss0;stJ;bl0ppointMst7I;ed,i3me2;eMty;ct;!-witt0;e8FiM;cu7Fde2;act5nt;lect1pha3A;ad08bau07c05ep,fZlVnomina1GpSsPtaOvMxtr1;asMelop0o6W;taK;il0;erNpe7OtrM;oyOucA;vi3;lNressM;!i3;or4;iMuxe;cNghtM;ed,fB;a8io7;eOiMt;cMni8;ie2;cMn2G;atM;es;e2reM;as0;ch0;!ly,pC;iNnge6Lrk,zM;ed,z55;ly,nI;a27e21h1Li1Kl17o01rTuMyn9;lPn1LrOsNtM;e,ti3;hy;io7re2si7F;iNtM;ur1;naL;aSeRiPoOuMyi3;ci1dMel,shJ;dy,e;ok0ss;mMsp,t9;in1;aAd6Qe1A;fIp,zy;ar1Ac0Qhe74l0Om0BnSol,rNsmopolitCuMw,zy;ld2ntFrtQ;iacPpNruptM;!ib6;o6HuM;le2;eo7;c00fYsUtPvM;eNinM;ci3;nZx;ePinOrM;iv0oM;versi1;ge2;mpo3Xst4;cGecr4SiMta2um41;dNsM;te2;er4;iMusJ;de2rm0;avo-convex,eMi0Ore8;iv4pM;tiM;on1;a,e-at-4fXic0DmVpM;eTlNreheM;ns5W;ainQePiM;c4EmM;enM;taL;te,x;ed,t;l3Ote2;ercialMon;!ism;ort4;d,lect5LoM;rfBss1;ky;aVeSoPuM;elessNmM;sy;ne1Y;s0udM;-covMle1W;er0;aMvE;nMr;!ly;ssMustrophob5;icMy;!al;nem1Qviliz0;aXeTiPopOrNurM;ni3;istiCon2N;py;ck2DlNneMtch46;se;diDlM;i3y;ap,eM;rNsM;ie3Sy;fBy;llenOngeFrM;acteriHiMmi3;sm1Bt4;gi3;aQlebr38ntOrM;emoni1taM;in;er,rM;al,ic;seF;cophoWlUnTpRrPsNtMuH;c2Bh36;t-irMu1;on;diac,eM;fBle0W;ab6tivM;aKe;d3Ct;cMm;ul4;no7;a0Ie0Ei0Cl03oZrNuM;d1Hsy;aUeathtaTiRoNuM;sh0t1;adMk1F;!-M;miM;nd0;ef,gMllia2tiD;ht;ki3;insiNsh,vM;ado,e;ck;diOgg0ilerpNld,nny,otleg,rJundF;le0A;la8;ly;aSeRi29oMue;nPodM;stNthirsIy;ty;ain0;de;ak,ch;ck,nMst0ta2;d,k;gMograph5ttEzar08;!gE;autifBco24efy,hi1YlNst,ttEwitc17;er;iMov0;ev4;ck,dRlmy,nQrOsNttlM;efB;e,ic,s;barMe;iCo7;al,d0g-up;!neM;ss;b34c2Qd2Aeriform,f20g1Whw,i1Tl1Gm15n12p0Qr0Gs0At06uXvVwNxiomM;at5;aSeQfBkOwM;!wM;!w;wa32;ul;aLsoM;me;re;ail4eraMid;ge;rea8strTtM;hPiHoM;biograph9noM;mo7;st5;eNorM;itaA;nt5;aliC;mospher5rocGtMyp9;enMracA;da2tiM;on-getKve;cQhPiCkew,sumpAtM;oMu8;nis04unM;di3;en;et5;bitUchaeRduo7e2oQre14tM;eOiM;fiMst5;ci1;siC;us0;olM;og9;ic1;raL;hon5pMt;aVeSlRoQrM;eciat1IoM;acNpria8xiM;ma8;hi3;r0Usi8;aud4icaA;aNtiM;zi3;li3;llJre2;gMnoyJxG;erMry;!ed;aRbPeNuM;si3;n4rM;icC;itG;io7;tMzi3;eurNoL;ry;!iD;sh;aWcohVg08iSlNterM;na8;-arouPeNusioM;ns;g0viM;at0;nd;enMve;!aK;ti3;ol5;rMs;mi3;nt,rM;ed,heM;ad0;ed,haOiNlM;ow;le,taA;st;fTloSoremPrM;aNicC;an;id;enM;tiM;on0;at;ab6irmaAlM;ue2;ama2dZeWjectiv1ministr4orUuTvM;aReM;ntuOrM;saAte2;ti0N;ro7;us;nc0;lt;ab6i3;ab6;pt,quateM;! M;to;ictMl0;ed,i0C;adem5cSquaiRross-the-bQtNuM;a8te;iNu1;al;ng,on,ve;oaX;nt0;eOomplNuM;ra8;ish0;ssM;ib6;le;ic;horYle,oXrUsNuM;nda2;enRoNuM;rd;lu8rbJ;ed,i3;ng;te;ce;iMupt;dg0;ed;ve;re2;nt|p0.0¦0:3I;1:2U;2:35;3:3K;4:3A;5:3E;6:3B;7:2W;8:2A;9:3J;a36b2Tc28d23e1Tf1Jg1Gh1Ei17j16key,l0Zm0Pn0No0Kp0Dqui0Cr06sQtJuFvDwByA;el3Foung1;estXhi3DoA;man2UoP;aAeter4isu0;porSri7st;ltima39nApp1rb4tt1;aBcr0AiAw6;nterrupt6vers0;vow6wa1S;eDhBiny,oAradi2B;p2t0;eAiJ;atr2m2Uoret2;chn2enBn,rrA;est0Jif3;!age;ame,eNhMiKmall1oHpFtaDuA;bBch,dAspense0L;den;consci7seque8urb4;ndaArK;rd;an29ecAiritu0;if3;lButhA;ern;e,id;le8mA;iIp5;e1ort;cond,lf-acAver0;ti9;eBomant3uA;r0ssi4;al1Yce8d,guClAminisce8spe2P;atAigi7;ed,i2T;lar;et,rky;aFers1IhEi7oCrAsych29ubl3;ese8iAop1;or,va29;igna8lAssib5t0R;it2;antasmagor3iloso20ys2;lp2Crallel;bBccasi1Bn1MpAutsi1Overall;en,posi23;je2Bvi7;ak6eAorwegi4umer7;cess0Wt,xt;aGeEiCoBuAysteri7;ltip5s2;de0Yr0;dAx6;!d5;diAtaphor2x1X;c0ev0;le,nAr0Cs09themat2;oAy-sid6;ri0;aCeBike17oA;c0w;ft,ss1;rg1stCtBwA;ful;er,t1;!i9;apa0Tew0Z;mFnAr0Yt1C;calcul1NdBevCi00n1s0JternaA;l,ti0M;epende8iBomA;it1K;e,vidu0;men0Nplicit in;and-held,eartfelt,istoricAum4;!al;eBia8lob0rA;a0Teek,itty,o07;n13rm4;aIema5iGluid,oErBuA;rth1tuQ;agi5eA;eAnch;-thinki9standi9;llowi9rmAurth;er,ula3;c04naA;l,n05;bricat6ci0rthermost;arli1ccentr3mo01nGqu0rstwhi5sDurope4xtA;eAra;nArn0;si17;pecial09sA;enA;ti0;gl05oBtiA;re;rm7ugh;ai03eCiBoAynam3;cumentGmest3ub5;ffere8git0urn0;ep,finiteAnominaOxtr0;!ly;athol3entrThPinem08lass2oFrDuA;linBnni9rA;re8si0T;ary;it2oAuK;ok6ss;arMmmerInCrpoBsmopolit4untleA;ss;ra08;cCsA;ta8;nt;avo-convex,epA;tiA;on0;ci0;iBrA;isti4onX;neA;se;al,ic;aKiGlEodiDrA;iAoad-mind6ush6;ef,tA;ish;ly;ank,onAue;de;gBograA;ph3;!g1;er;ck,nd6rbar7s3;ous;boXcSdOfKgJlternaImerLpproachi9rchaeGsi4tEuBxiomA;at3;strBtobiograA;ph2;ali4;mosphAyp2;er3;olog2;ic0;te;low;loat,oremention6rA;ic4;an;ed;diCministrA;ab5;le;ctiF;adem3tA;i9u0;al;ng;ic;ve|s0.1¦a0Cb08c00dXeTfPgOhNiLlJmDobjCp8respCs4t2un1w0;ants,orR;affect0Fco00origin0HprocXw0F;e0heoretTitular,wo-dimen8;chnSrrestE;e2ileHlippLmiQo1peHt0ucceeds;artKumbP;lKur0A;amXlf-actI;hantasmagor05olitNro0sychologN;fes1p0;aganda,er;sion07;ec2;a2edica1i0;lita00nus;ti04;le,n0ture;o0y-sidZ;ri00;augh,i0oses;nguiDteraU;cy,mplicit in,s0;nt;inderTumF;ettab6rey;ew,iftie2lu1ollow0reestand0;ing;id;th;mpir2rstwhi1xt0;ernOra;le;icM;extrLisposs1ome0rownJulls;stF;essH;a6ent5lo3osmopolit2r0ulturI;o0u7;okE;an;sCud0;less;er,r7;nt,thol6;a2ig,lue,o1ru0;sh7;dily,gg6;nd5re;bo7ct5djectiv6float,ll3mato2p0;hon0preciat3;ic;ry;eg0usions;ed;ion,u0;al;ve|s0.0¦0:1O;a1Gb1Cc10d0Re0Qf0Mg0Hh0Di09j07kill1Tl03mWnUoTpRrMsFtAu6v4w2y1;ellow,ou0J;aste1estHhi1Nooden;!d,s;a1eter1Oisu0;cuum,porif1R;n2pp0Fr1seZ;b1Lin0R;explain1Li1;nterrupt1Kvers0;e3h1oilet,rapp1J;e1i7;atr1Bmat1K;en1n;!aB;adi0Te6i5outh4pani0Yt2u1;burb1Ccce0O;anda1retch1C;rd;ern;nks,xth-gra0V;cond,izur0Ever0;e4o2u1;r0ssi15;hypnol,ugha1;ge;d,ha0Nlat0C;arallel,hiloso0Rr1;esent,ior,ov07;bstacl06ffers,pposi0Wverall;e1orwegi0Y;t,xt;a6e4id3on2u1;ltipWs0Qzak;key,osyllab0Y;!dU;di1x0R;c0ev0;rAthemat0L;a1eft,oc0;sti0Rt2w1;ful;er,tF;a1ewi06;il,pa03;mitation,n1ri04t0A;consistenciPdie,i2terna1;l,tM;ti0;a3i1;storic1t-and-miQ;!al;nd-held,rd5;amecha3e2lob0r1;eek,oM;n01rm09;ng1;er;a3inan3o1rench;rm1urth;er,ula08;ci0;ngliNurope02;aily,e4i3o1;cumentBub1;le;git0urn0;fec3nominat2stroy1;!iZ;ion0;at1;es;ardiac,h9lassNo5ro4u1;lin2rs1;ive;ary;ss;m1ncavo-convex,rporaK;a,mercial1;!i1;sm;i2r1;istiIonC;nese;ack,iographKl2oilerplaDriti1;sh;ank,on1;de;bsence,cEfAlterna9merBpproachiFr5siCtmosph4u1;str2tobiogra1;ph5;ali9;erC;chae1rest;olog1;ic0;al;te;oremention3r1;ic1;an;ed;adem2ti1;ng;ic|s0.9¦0:1T;1:1N;2:1M;a1Cb14c0Qd0Le0Df07g06h03iXjUkind,lSmPnNoMpJrGsBt8un4w3;elcome,ise,orth12ro1Q;asham0befit0Pchas1UdignTexcell0f5grad0ha4necess0Hpr3;eced7opiQ;mper0ppy;aith16ruit16;a3ren0O;l3ste0W;ent0;ensi1Jp6t5u3;bnorm0Aper3rpris0;fiOior;at14ereotyp0;ectac8ontane1;a4e3ofl;doub0Jleva2source0W;nk,re;ain0Uerplex0leon00o3rolix;p3wer0L;ular;bedIptimum,verexcit0;a3o0X;me0Hugh0N;annerly,i4o3;de0Vtley;gh0Knd0E;ate0TenCicen3ong-wind0;ti1;ackass4ust3;ifi0;!es;mpat7n3ron0L;auspici1credi0Md5exp4huma3tellige2;ne;ed4lica0K;ispensa0JomiZ;ie2;a4ero0Fonest3uge;!-to-god;nRte,zard1;orge1randiloque2;a7i6l5r4ull3; of life,-fledg0;ee-thinki0Kingy,ust8;ippa2y;ll0rst-st0H;bl0ir,nt7vor0;conomic9le7n5rot05x3;hila3perienc0ubera2;raE;orm1thusi3;ast01;ct,ment3;ary;al;anger1e4o3;ne with,ubtR;bauch0ft,l4p3;loraWressi05;ica09uxe;aDhBiviliz0lassy,o8r4ut3;ti02;a5u3;d3sB;dy;fGzy;cky,ntes4r3;pule2ruptiN;taM;ill3urniU;iTy;re4st-iron,tc3;hiR;less;a8eefy,l5o4ra3;insick,sh;nny,otleg;ast0ood3;thirs3y;ty;rbar1ttle3;ful;bsoKcJdCfAgha9hw,lgBmaziHnnoyiHpp7rtesian,s5ttenIuthoritaIww3;!w3;!w;cet3tuJ;ic;alliClauda3reciaD;ble;st;firmaAra3;id;dic8ept,o6ve3;ntur1rte2;nt;ous;ri3;ng;tive;ross-the-board,u5;lu4rb0;ed;te|s0.3¦aTbScPdMeHfEgreen,haha,lDmCpAre9s2thought-provokVundeservOv1w0;haddupwitdQonky;apid,e6;e3h0ucks;a1o0;rt,uldA;m,peless;cond0rmon;a0hand;ry;al,gurgitates;ar8erson9hilosophJi0reachy;nk,ous;asculine,odern;ow,ush;ail1luff,reque0;nt;!ed,s,ure;ar3ssen1x0;cruciating2ploitE;ti0;al;ly;evelop1is0;abl0tinct;ed;hitch1onc0;eiv7rete;at;est,usy;d2lienat1xiomat0;ic;ing;ministr1ult,vers0;ative;able|s0.2¦a09b06c02d00eZfVgrief,haUiRjoy,lQmKnHoFpDrAs8t6u3w0yarn;as0Fe1iAo0;nt,u02;ll-intentionVre0D;gly-duckl03n0s3;answerTe0fortunateS;ngag01ven;hanks,on0rouM;el00;milPob06poof,ta0will;inlYte-supportO;e1obot00ui0;ns;dunda03grets,moZ;erpetualJiBl0rofiterT;atitud1od;ld,oz0;es;e1o0;!t;ithVvV;e3i1u0;ch,ltilaterSstU;nor,s0;fire,placA;diocri0lodrama,ntPtaphorO;ty;augh7egNosers;mpercepti1n0;fatuat5telligentsia;ble;dLppinDsLveL;ix2orc2rustrat0un;ed,ing0;ly;ed;conomBrudiC;evoid,idFo0;esEnt;hoppy,inemat8luelessn5o0;mplain1u0;ldB;ed,t;adn1udd0;ing;ess;glow,i6ng5re6typ3u0;rea1tist0;ic;te;ic0;al;er;nt|s0.125¦bas2f1independent,occasional,s0;ame,pecif1;lat,oreign,uture;ic|s0.5¦a1Db14c0Vd0Se0Pf0Fg0Ch0Ai07l04mZnYoWpNquiMrJs8t5un3v1w0;himsEorthwhi19;a0ulner17;gue,ri0W;a0blem1Glike0Estirr1H;b15ppea1Cwa0F;e1houghtWiny,o0ruthWyp9;p,uchi1B;n0Urminal0A;afe,h8i7k5m4t1u0;bt10ch,dd03ffoca0GrprF;a1eaAi0;ff,nks;le,rt14;all0Uooth;ept0ill16;ic0W;mplist12nce03;a0od3y;ky,llow;andom,e0ip-off,omant0Z;a0deemi0Xminisce0Kspe6;dy;ck,xot0W;alp0Le7henomen0Oinheads,lausib0Mo4r0uW;e1ima0Com0;isi0S;di0g3;ct0H;i0te0C;g0n03;na0A;ace6ppe05;bvi02ffbeat,k0pGrdina04;!ay;ot0Aumer00;a3e1ild,o0;re,st;aning0re;ful;jor,ny;arg03ess03i1o0;usy,v03;ab03k02mp,tt03ve;con0Bdentifi01lleg04mplicat0Dn0;articula06terest0;ed,i08;ahahaha,ea0ighX;ltAvy;en1immicky,luey,old0reatV;en;erXuine;a8i7la5or3r1urt0;hRiZ;agiSesh,iend0;ly; su0gettP;re;s0wZ;hy;ne,t2;miliar,rce;arliIccentrTmpty,n1xhaus0;tiR;deariQergetRjoy,ough;efiniMi1u0;ll,mb;m,shon8;heesi7o0;ar5m3n1un0;tless;ceptionDsci0;ous;e-at-8ic,mon,plimenta0;ry;se;est;a6e2i1lata0;nt;gg1tt1;liev1tt0;er;ab0;le;n0ss;al;bridg7ccompl6lcohol5pp0;ea2licati1ropria0;te;ve;li0;ng;ic;ish0;ed|s0.3333¦adequate,brief,const0extensive,first,hidden,main,older,particular,quiet,realistic,subject,vibr0;ant|s0.6¦a0Ab08cZdReMfJgIhahahahaha,iEjamm0OlBmAn8orthodox,p7r6s3un2w0;arm,ell-off,o0;manly,r02;hesitati0Gknown,notic0L;ec1hrill,t0;ark,inker;!u03;aucReaso0Aisk-free,ude;eevish,loddi0Boor;a0onviolT;turalisWuseT;ark0DinimF;a04e1ifel0o0B;ike,o06;ftist,gi04;cky,n0;c0experie05flexi02tZ;ompa0u0;ra00;ood,uard05;a1rostbittRu0;ck,ll-bodi03;lIst;colog2n0rroneBth2veryday,xtinct;ig8joy0;aTiU;ic0;al;estrucFi5r3u0;h0sty,uuh;!hh0;!h;a0iSy;ma9;aphan0ffer4slikQ;ous;a5loud-coverOo0ryiJ;mpelliIn0;ci2secr1ting0vex;ent;atK;se;p1us0;tic;tiF;izar0road-mindF;re;cBd9larmi8me6pp3r1sh0we2;en;bitr0ousB;ary;etizi4ortion9rox0;ima0;te;na0;ble;ng;dict3equate to,va0;nc2;quaint1ti0;ve;ed|s0.25¦aDcAe8fic9juveni7logicCm5odd,p3re1s0usuC;eason5o6tel3upporting;c0ligious,petitive;e8ognizab4;ast,o0;lar;arri0ix0or6;ed;le;duca0qu3vide2xact;tion2;entr1onsiste0;nt;al;mateur,ware|s0.8¦a05b04cTdNeLfHgEhaphazard,iAl8m7p6re5s2tiOun0vulgar,well-advis08young07;blink05c0focus07think00;ared-for,ontroversiVut;arcasOh1kitt04t0uckerA;abb02eadfaF;it,ock03;putVtard02;ivotQrecise;aladroit,uggy;ikZo0;lol,ud,vY;diot2mpassBn0rrit1;corrupMfuri0;atT;!s;argantuan,entNrr0;!r0;!r;*2a0ree,u2;na8rthermo0;st;ckL;ffect0xcitK;ive;azKe4i1ow0;dy;dac1ffidJrty,s0;astrCbelievFturbF;tic;fenseless,servD;a6h5o1r0;ap,itic2;l0mfort5;lec1oss0;al;tib3;arit1ild7;cophon2lcul0ndid;ab0;le;ous;loodstain3right;bhorr3lleviat2mateur1nnoy2pposite,ttention-gett0;ing;ish;ed;ent|s1.0¦0:3W;1:3V;2:3T;3:36;4:40;5:3S;6:3P;a3Ib3Ac2Kd28e1Yf1Mg1Ch15i0Wkey,l0Tm0Jn0Go0Dp07qu05r01sMtJuDvBw7yaaawwnnnn;ac05e9it2Io7tf;nde1Rr7w;st,t2K;alt2Ji45;a1Ci7;c5o1Z;g29lti2Pn7tt0H;appetizi1believ4comAexpect0f8i7predict4real1Zsalt0usu6;nspir0q16;air,or7;gett4tuna2M;fort4mon;e8hril25ire38op-notch,r7wist0;emendo2oubl0;d5r0S;aJcaHeFhoc2XiEoDpCt9u7ympaW;p7rre6spens2R;erb,por3L;ereotyp22ri2Uu7ylD;n14pid7;!i1Y;irit0lend31;ft-boil0phist2Cr3D;cke10nist00;lf7ntiment6rious1Rxy;ish;r7t31;ey,y;d,tisf7;i0yi1;a9e8i7uthl10;dicu11ve2D;al1Jfres2Vpel18tardNwar2U;nc08unc1P;estion4ir7;ky;aBerfect,leas0oAr7sychot2T;e8icel0To7;fou0Fmine3ud;c5t1F;ss0Ktenti6we0O;thet2O;bsess0n19utrage8ver7wn;-the-top,whelmi1;d,o2;a8e7ice,ostalg2Kumb;cessa2Pedl0Krve-rac22;i2Ss17;aCe9i8oron7yster5;!s;nd-bogg13ser4;a7diocre,m2Pna1Frcil0F;g7ningl0E;er;d,g8levo0Mrve0Es7;si2Kte09;ic7nifice3;!al;a8egenda2Di7mao;ght-heart0ke0S;ugh4zy;de6ll,mAn7rreleva3; good tas16appo0Aconvenie3evit4famo2gen5nova2Cs7tDven2C;ane,pir7ul1H;a0Bi1;beci2DmAp7;o8ress7;ed,i28;rta3ssS;en1J;aBeartfe0Dilar5or8um7yster0M;oro2;ri7;b25f7;ic,yi1;nd1Hp7;lQpy;iFlad,oDr7uil0D;aBeateAi9otesq8u7;d0Ye1D;ue;evo2m,ppi1;st;nd;o7ry;dy-goody,fy;a3ft0;aEeCiAlawlForc9rig7unny;hte7id;ni1;ib1O;lt03n7;al,e-loo0S;a7eb1Llicito2;rf0X;bu9i3ke,mo2r8ultl7vori09;ess;!-out;lo2;erie,goFlEspecialOvil,x7;agger07ce9ot11presAqui8tr7;aordina16e0S;si02;l9p8s7;si17;tion6;le3;aboEega3;ist0T;aFeBi8r7;eadf0Hunk;fficu8m-witt0s7;gust09traught;lt;ad9finite9li8spe7vasta02;raP;c5ghtf0B;ly;in8zz7;li1;ty;aThNoDrAu8yn7;ic6;r5s7te;hy;e8u7;ci6de,el;a0Jepy;ld,mDn9r7urt8;iac7r0O;eo2;firm0sum8vin7;ci1;ma7;te;ic6pl7;ic7;at0;a9ee7;r7sy;fNy;llen8r7;ismatVmi1;gi1;ptiva8r7;efI;ti1;aDeCleBorAr7;aZeathta8illia3ut6;nt;ki1;ed,i1;ak,ch;autifAlov0witcI;se;bWdTff4gitaRirhead0las,musi1nLpKrtiHsDtCvBw7;e8f7kwaW;ul;so7;me;id;roc5tracL;sumpKto7;nis8un7;di1;hi1;fici6st7;ic;al;pall0t;g9x5;io2;us;ry;ng;ed;ti7;ve;or4;ab7;le;r8su7;rd;upt|s0.7¦aZbYcSdMeHfEhaDiAl7m6open-mind01p5respectPs4t3u1w0;ary,orkmanlike;n0sed to;adulteratYcriticNhealthy,ilaterNplay9settlQtrace9;hrillXirX;ecret,pright4uffers;lacid,retentiU;esmerizModer8;ight,o0;l,ne0;ly;maginat8n0;calcul0expressJnoceQ;abJ;r2tN;iendi1ortun0uckM;ate;sh;ffBn2x0;haustIpens0;ive;g0joyGtertain8;ag7ross7;e4i0udsvil9;alect2s0;appoint4taste0;ful;al;creas9ficieAlight9;heap,lean4o1red2unn0;ing;here7mprehens0nfus6;ib0;le;!ly;ang-up,ehind,oundless;dama2ir1utonom0;ous;ed;nt|s0.4¦a0Bbr0Ac03d00eWfTgShRiOlMmKnFpDr9s5tries,u3v2w0you05;et,ho0Di0;de,ld,n;itVocationV;glin05n0;avow0Ebra7paid,read,school0E;atisyfiZcum,h2imilar,lDmall,o1tr0;aight,uttiY;phomorRu09;owery,rie5;elat09ight1ou0;gh,nd;-mi0iB;nd06;ea0risUut3;ky;a2e0;ar,g0;ati00;k00rr0turF;ow;anque,esNo0;d,raliziJ;ea0oI;st;diocy,mmaneQn0; stock,competePdividu8eluctNsultingly,t0;ellectu7riguiE;ahaha,umbM;ame,raph6;a1everish,i0luffy,orgetD;rm,t;rcic2tty;nlighteni8p2xpe0;ctLriment0;al;ic;ark,e1i0;rect,sappointmeD;ad,ep;ap9easel5lum4o0urreB;lor2mple1nfusi0;ng;te,x;ful;sy;ess;avado,oken;cuate,g7l4skew,ttenda3v0;ail0erage;ab0;le;nt;i1l-arou0;nd;ve;ed|i2.¦definite1especi0re0serious1;al0;ly|s0.1667¦c3dynam5fema2half,in1mundane,p0slight;a1revious;coherent,ner;le;lass1o0;ntemporary,w;ic|s0.65¦cool,emotion0lyric,norm0sweet,true;al|s0.625¦able,entire,shady,weak|s0.75¦aKcGdEeDfabricIgBi9l8origin7poetLr6s4t2vivid,wi0;ll0nn0;ing;ot4ra0;dition3gH;h0loppy,uit5;arp,eer;emark3ich;al;ame,ovely;mpecc0ndecipher0;abC;odforsakAr0;eat,itty;dgy,ndless,xcit5;etail4is0;appoint3eas3;alm,elebr1laustrophob4o0;ntriv1zy;at0;ed;eriform,gi2li1mbitious,uthent0;ic;en;le|s0.6667¦b3compete2dece2insta2s0;e0uper;nsational,rious;nt;ad,lind,old|s0.0667¦l0public,social;ast,ess|s0.05¦missing,outside,subsequent,topical,victim|s0.1429¦limited,physical|s0.375¦accessible,due,other,private,s0;lick,traightforward|s0.0769¦regular|s0.3571¦conventional,plain,simple|s0.1333¦gloom,spiritual|s0.55¦criminal,full,responsible,subconscious|p-0.0125¦absence,vacuum|p-0.05¦arreDcCgAl9m8obstacl7p6rehash,s1un0well-intention5;affect4explain4thinka2;adism,eizur5ixth-grade,t0;r1um0;ble;ange,etch0;ed;assionate,erpetually;es;inor,onk2uzak;efti3ong;argantuan,r0;ey;ardiac,hangeless;st|p-0.1¦a0Nb0Jc09d00eXfVhaUiQjaPlNmJnGpErAs6t5u3w0yarn;as0Te1haddupwitdat,ide,o0;nt,u09;re0Rt;gly-duckli0Pn0rin03sed to;answer0Qbrand0Qcook0QfortunateUknown,proc00;on09ri02wo-dimensionG;e1hou04inks,lippi0Moft-boil0Op0tereotyp0Owill;e0Moof;c0riousQ;!ondhand;e2o0;bot0Ehypnol,ugh0;!age;grets,mo07;arti7eppe0Ai0ropaganda;nk,ty;e1o0;!t;ith03v03;ent2i0onosyllab06ust0A;lita04n0;im0us;al;i0oneB;a4felo04;il,mm05;cy,mmane03n0;articuSconsistenciGe0telligentsia;lucta0xperienc02;ble;dZrdRsZveZ;everish,luff,orgetMu0;ll-bodiYrZ;mpty,x0;cruciating0pectW;ly;e5i2o1r0ulls;ag,ownT;esRnt;dQs0;believiOposs0taP;essP;fec0void;at0;es;a7e4l3o0rushLurious;m1ntingeJu0;ldI;a,mercialism;osHuelessn2;as0nt7;el0;ess;nt,re0;ful;itt2oilerp0;la0;te;er;dversa8g7i6l3phon2r0skew;bitra0e5;ry;ic;armi1l0;eg2usions;ng;nt;ed;tive|p-0.2¦autist0Gb0Ac02dTeveryday,fRgPhNiKkill0FlImEnarrow,oCp9r8s5tr4un2wa0;n,ste0;!d,s;cared-for,e0notic0CoriginWschool0C;ngagiZvM;app0AoubP;h0ophomor0Atark;a0it,owery;m,pe05;edundaOightist,ound;l1re0;achy,dictabJ;atitud1od;oz0rthodox;es;e2i0;ndXs0;fire,placYsiM;diocriAssy;ead7imp,o0;ng-windVsers;mp1n0sC;cohereBfatuatT;atieAerceptib7;arLeavy,i0umb6;ndHt-and-miP;immicFre0;en;at0ew,irm,luffy,rustratingly,ull of life;ty;e6i1riLudsvil0;le;a2ffide1s0;ablIlikI;nt;lect0phanous;al;ad,stroy0;!i1;h4loud-cov3o1ryi0;ng;c0zy;ky;er8;i0oppy;ldi0tchat;sh;o1ra0;sh,vado;gg2und0;le0;ss;ed;ic|p0.3¦aMbonny,cCdistinct,eBf8g7int6l5mesmerizHp4raAs3u1vocationKw0;ins,orth;n0seJ;blinkEcontroversiH;miEolicitous,uccess;owerGroves;augh,ifelike;ellectuDriguA;amechanger,olden;or su1r0un;esh,ingy;re;conomic8le4nlighten5xcit5;alm,leanly,o0;lo5m0;e-at-ab3p0;ell1li0;mentary;ing;le;r1ss0;al;ful;bsorb0hw,pportion0uthoritative,ww;ed|p-0.1333¦active,cow,gloom,imitation|p0.1¦0:06;aYbVcLdJeHfFgettRiElBm9n8o7p6right-mind0s3titulUun2vit02w1youX;ild,ow;blemish0expect0hesitatiVread;arcaAe2o1tate-support0urpris0;ber,ft;amOnsitV;eaky,rofessionW;ffers,ld;aEeM;a1edicatRodest,ultilaterT;nque,rk0sculine,ture;i1oud,ush;ngui1teraN;st5;dentifiDn stock;ar,i1requeO;ftieth,x0;arly,mpiricLnigmat1p1rudiOxperimentL;ic;evelop0i1;m,rect;l7o2ul1;turG;mpleIn1;c2s1;cious,ider2;eiv1ise;able;assy,e2oud1;less;ar;almy,u1;ddi1sy;ng;bridg0c6d3ir0l2mato1rous0;ry;ive;ama2jectiv1ult;al;nt;ross-the-board,tion,ua1;te;ed|p-0.0333¦excuse,toilet|p-0.7¦a5ba4crude,disastr6frustrat3grr1merciless,painful,shock3u0vulgar;gly,nchaste;!r0;!r;ed;d,rbarian;bhorrent,nger,troci0;ous|p0.5¦0:13;a0Pbe0Nc0Fe09f06g04h02iYlUmNnot12oJpGrDs6t4unexce9w1;acky,e02i2or1;kmanlike,thwhi12;n08tty;o1ruthfM;p,uc0M;a5ex4incere,ki3ophistic0Qpirit0t2u1ympath07;ppor09re;at0Iriki0Nun03ylish;ll0;u0Ay;fe,tisf1;i0yi0J;e1ive09;dee6fres0Dput0Ospect1war7;ab0PfB;henomen04ivot04l2o0Jr1;eci0Komine0J;ausPeas0;k3utstan2verwhel1;mi0B;di0A;!ay;a4e2ind-bogg07o1;re,st;aningf1mor0D;ul;gic2n1;nerly,y;!al;atest,enie06i3ov1;ab09e1;!ly;ght-heart0k05;conSn1;corrupt8geni02no2spir1teresNvenH;ationKiV;ceZvaF;andsome,e1ilariZumorZ;althy;ift0lad,oofy,r1;and,eaJippiQ;a2itGorc1;ibX;mTvoriL;l5n1xotH;deariLerg3joy2tertai1;niK;abSed,iJ;etD;aboraFegaM;aptiva7ha6o2rea1uE;tive;hereJm2n1;fideIvinciD;ic1peG;al;llengiArismat5;ti9;lievFt1;ter;bFcquaint0d8giFirhead0llevi7pp3stonis2uthent1wwww;ic;hi4;ea2ropria1;te;li1;ng;at0;or5ve1;ntur3r1;te1;nt;ous;ab2;ed;le|p-0.125¦abrupt,due,e0foreign,other,sharp;ndless,xtreme|p0.2¦aKbeefy,cHeEfast,gentOhahaBi9leg8m6p5quixotGre3st2thanks,un1very,w0;ants,hoN;paid,usuD;ainless,raight;a0sponsibK;dy,l,soI;hilosophAromisL;od0uch;!ern;al,ibF;nt0ron6;ense,imaH;!ha0;!ha0;!ha;conom1thic0;al;ic;ap1on0;secr3vex;ab4tive;bso5ccomplish4dor6ll-around,me2pp0ttendant,urea7;etiz5reci0;at2;nab0;le;ed;lu1rb0;ing;te|s0.95¦a3barbarian,c2discourteous,gawky,lov6mouth-water6rose,successful,un0;i0pleasa4;mporta3ntellige3;hicken,ontroversial;b0fflue1;sorb1unda0;nt;ing|p-0.5¦a0Wb0Rc0Dd07e04fXgVhonest-to-god,iRjackassQlOmeNnMoLpJquestion0PraIs9t8u2v1w0yaaawwnnnn;a10ei11himsBro0Jtf;ague,ulner0N;n0se0L;a3c2f1i0likeCreaBsett0F;later0Inspir0N;air,ortunate;omfort0Iut;b0Isham0K;ediXiresome,roubl0Jwist0J;ad,car7elfish,hy,i3kept2or0Rt0uffocati0A;a0ereotyp1ink3;le,rt07;ic0A;l2mp1nist0;er;li4;ly;ey,y;ndom,uncH;leona0ower04sychot0G;st0F;bsess06ffbeat,ver-the-top;ame01eed01ostalg0D;aning00dioc5re;a0ouW;me,ughZ;!es;ll2n0rreleva03;auspiciDcurWexpedie02famDsecu0;re;!egS;o0ratuitAuilY;ody-gooDry;a3eebSla1orgettRr0;ighteJostbitt00;s0wS;hy;i0ke;l0nt;!ed,s;erie,ffiFrrone1x0;aggerApensS;ous;azKi3ow2runk,u0;hhh0uuh;!h;dy;dactOfficult,st0;asteful,urbi7;a8h3o0reepy;llectibBmplic1ntrivDr0;puleFrupt;atB;ee3il1ur0;ni1;li0;ng;sy;lcul2re1su0;al;less;ab0;le;l1or0rainsick;ed;ata1ind,oodthirs0;ty;nt;bsu5ng4s0wea4;cet2h1sumpt0;ive;en;ic;ry;rd|p0.6¦aOcJdeIeGfDhAimaginaSkind,l9motley,n8own,pop7r5s3t2un1w0;arm,ell-advisD;hamperCprecedentC;hrillBi9ren9;atisyfNmilAp0;ectac2ontaneF;e0ose;doubEsourceful;ular;ice,oD;ik4mao,ovH;a0onest;n0zard8;dy;i1ull-fledg0;ed;ne-lookBrst-strB;ffecBn0;gross9thusiastic;ft,luxe,serv8;a3hari1ourte0;ous;ta0;ble;ndid,tch3;bundant,cute,dept,ffirma3m1p0stound2;precia2t;az0us0;ing;tive|p0.375¦accessible,excited,f1original,poetic,rich,s0unique;ignificant,traightforward;amiliar,riendly|p0.4¦aUbScLdetail00eJfDgBhuge,i9justifi00li8mighNn7o6p4r3s2thought1un0well-off,youngish;adulteratZsaltZ;-provokWfP;ecuQmooth,ound,prightly,teadfast,uperf9;elevaBisk-frA;erplexVr0;ecise,imary;bedie8pen-mindT;aturaliAonviole7;centiNght;mporta5n0;comparaKdispensaK;enu0uardO;ine;a3i2lippa1ortunaNr0;ee;nt;llJt;bulEnta0r-out;stic;cological,n0;gagDjoy;he4ivilizEo2r0;af0edi8ushB;ty;m0nfirmB;forta5prehensi5;ap,erf0;ul;ang-up,izar0;re;ccura6dvanc5pp4ttenti2utonom1vaila0www;ble;ous;on-gett0ve;ing;licative,osi1;ed;te|s0.6333¦accurate,outdated|p-0.4¦aXbVcOdKexHfCgBi7n6o5p4rip-off,s2t1un0worG;appealiIfocSgrad00healthy,importaMnecessary,playQstirr00;erminally,hin,irZ;ecret,hri0;eky,ll;eevToor;utd4verexcitV;ause3erve-rackiC;mp1nf0rrit5;antiJlexibJ;assive,lic0;atQ;ame,luey,odforsaK;a1rustr0uck;ati5;l1rc0;e,ic9;se;haust0tinct;ed,i0;ng;e0usty;creasFf0;enseless,icie0;nt;a5heesiest,on1rimin0;al;f2test0;ab0;le;us7;cophonous,ustic;ehind,ootleg,ro0;ken;d2l1mateur0nnoy3pproximate;ish;as,gid;dict0equate to;ed|p-0.4667¦addled,maladroit|s0.8333¦addled,bland,c2easy,gratuitous,idiotic,l0sexu1tough;oy0ucky;al;lever,onfident|p0.3333¦a2bo1extraordinary,l0mi1pregnant,quick,super,tremendous,worthy;oyal,ucky;ld;dequate,rtistic|p-0.25¦a7excess6juveni5lazy,o4p3repetit6s1u0;nbelievab4su1;entiment0hady,lick,mall;al;ast,ointless;rdinary,verboard;le;ive;eriform,l0mateur,nxious;coholic,ien|p0.8¦a7bra8e4f3great,happy,intelligent,joy,lol2proud,rofl,un1w0;elcome,in;common,forgett7;!ol;avor2ly;lect,xp0;erienc0ressi2;ed;ff1ttracti0;ve;able|p0.65¦affluent|p-0.6¦aWbScMdCfAgr9hap7in6m5numb,prolix,s2tastel8un0;befitMdignifiTf0happy,propitiK;aithTruitT;cathiLt1u0;bnormUffers;abbiJinks,upidiC;eager,uggy;conveni9explicaJfuriaG;hazPl0;ess;andiloqu6udgiE;*ckiDiendish,uck0;ed,iC;anger8e5i0one with;m-wittGr3s0;appoint0easFtraught;i8m0;ent;ty;p1s0;perate,trucG;lora5ressi3;ous;hi4o2razy,ut0ynicB;ti0;ng;ld,rrupti0;ble;cken,lly;attle2l0;ast0oodstain0;ed;ful;fraid,g2rtifici1wkw0;ard;al;hast,ita0;tive|p-0.3¦alienatXbaVcOdLeIfGiElCmBnAp6r5s2thick,u0vap9wonF;gliVn0;deservFtraceable;cum,econdary,hoddy,low,ourEtruttUuck0;er0s;!s;aucKegurgitat7ude;inheads,l1r0;etentiIisMofiterP;ac0oddO;id;a9eg8;elodrama,oralizL;aAea9os0;es;c0diocy,nsultingly;ky;anatic,orc0;ed;dgy,xploit0;at0;ive;elica1ishone0uh;st;te;lum5o0;m1nfus7riace0;ous;mon,pl0;ain0ex;ed,t;sy;d0nal;ness;ing|p0.25¦aFcBe9f8h7interest6l5marri6p4recognizable,s1thr0w0;ill2;eason4tellar,u0;pport0rre7;ing;eaceful,retty;ogic4yr8;ed;igher,ot;irst,unny;ducation0vid3xact;al;o0risp;m1nsist0;ent;ic;mbitious,vid,ware|p-0.75¦anger1claustrophob0disappoint1trag0;ic;ed|s0.85¦a2b0deadpan,fascinat1hot,passionate,solicit3thin;almy,ecom0;ing;ngered,rdu0;ous|p-0.8¦aCbAcrap,d9egoistic,filthy,grie7ha6i4m2r0stupid,unappetizEvi3worthless;an0etardC;cor6k;alev0oron2;olent;diot0mbecile,napposi1;!s;te;f,v0;ous;ebauch3oubtful;ase,l0;ech,oody;nnoy1ppall0;ed;ing|p-0.35¦a0;ppalling,rduous|p0.05¦appare1bare,ceremoni0exubera1gener0inexpressible;al;nt|s0.35¦appare0ceremonial,dista0infantile,soft;nt|p0.7¦applaudable,bCchBdelightFe8f5go4h3l2mouth-waterEoptimum,s0talentFwise;kittish,u0;cceeds,perior,rprisC;aughCovC;appiness,ero6;od,rge1;a1elicit0;ous;bl7ir,scin1;rot1xhilar0;at4;ic;arm2eery;e0right;lov1witch0;ing;ed|p0.9¦artesian,brilliant,c2dainty,i0;deal,n0; good taste,credible;ast-iron,ushy|p0.55¦astute,controversial,suitable|p-0.15¦average,ba0dark,me0naughty,pale,ruins;ss|p1.0¦awesome,bBdeli8ex6f4greateCimpress3legendary,ma1p0superb,top-notch,wond2;erfect,rice4;gnific5rvel8st0;er6;ed,ive;ault0law0;less;cell0quisite;ent;ci1ght0;ful;ous;e0reathtaking;st|p-1.¦awEbCcruel,d9evil,gr8h4ins3m2nasty,outrage1pathet6ruthless,shockiDterri0vici1worst;b6fyiC;ous;enaciAiserab4;ane,ul7;orri0ysterical;b1f0;ic;le;im,uesome;evasta1isgust0read4;ed,i2;ti1;leak,ori0;ng;ful|p0.85¦beautiful|p0.45¦becoming|p-0.1667¦bla2h1less,mundane,odd,previous,s0typical,unpredictable;light,ubject;alf,idden;ck,nd|s0.4333¦black,full-length|p0.0625¦broad,major|s0.3125¦broad|p-0.875¦brutal|s0.8667¦casual,measly|p0.35¦c0full,sweet,true;elebrated,ool|p0.2143¦certain,large,pure,smart|s0.5714¦certain,special|s0.15¦changel0m0overboard,strange,wan;ess|p-0.0667¦characteristic,d0hollow,putative;epress,ry|s0.4667¦characteristic|p0.1667¦c2dece1main,old4particular,realist5s0vibra1;teady,upernatural;nt;l0ontemporary;ass1ev0;er;ic|p0.3667¦clean|s0.3833¦clear|p0.15¦concrete,normal|s0.45¦considerable|p0.95¦consummate|p-0.1429¦conventional|s0.4167¦crisp|p-0.9¦cruddy,f5h2inhumane,outrag4re0sicken3;pellent,tard0;!s;at1orrify0;ing;ed;earful,rigid|p0.75¦dazzling,impecc0remark0successful;able|p-0.8333¦deadly|p-0.55¦deadpan,g0indecipherable;awky,rotesque|s0.0333¦depress,excuse,hollow|p-0.65¦discourteous,un0;intellige0pleasa0;nt|p-0.1556¦down|s0.2889¦down|s0.07¦drag|p-0.4333¦dramatic|p-0.2917¦dull,hard|p-0.375¦dumb,incompetent,weak|p0.4333¦easy,strong|p0.6667¦excep0lively,sensa0;tional|p-0.3167¦failure|p0.4167¦fine,gay|p-0.025¦flat|p0.0333¦full-length,social|s0.5833¦gay|s0.5417¦hard|p0.16¦high|s0.54¦high|p-0.6667¦i0;diotic,mpossible|s0.875¦insecure,outstanding,si0;gnificant,lly|s0.4286¦large|s0.2667¦leaden|p-0.0714¦limited,single|p-0.1875¦little|p0.1364¦live,new|s0.9333¦lively,uncivil|p-0.0769¦loose|s0.2692¦loose|p-0.625¦mad|p-0.3125¦mean|s0.6875¦mean|p-0.5667¦measly|s0.4545¦new|p-0.24¦parade|s0.22¦parade|p-0.2143¦plain,stiff|p0.7333¦pleasant|s0.9667¦pleasant|p-0.0833¦polar|p0.2273¦positive|s0.5455¦positive|p0.0833¦profound|p-0.2308¦raw|s0.4615¦raw|p-0.3333¦ridicul2s0tense;eri1ha0ubtle;ky,llow;ous|p0.2857¦right|s0.5357¦right|p-0.225¦sermon,tame|p-0.7143¦sick|s0.8571¦sick|s0.2143¦single|p-0.4167¦sloppy|s0.6429¦smart|p-0.1571¦sour|s0.1143¦sour|p0.3571¦special|p0.8333¦splendid|s0.7333¦strong|s0.5667¦supernatural|s0.8889¦sure|s0.225¦tame|s0.475¦thick|p-0.1786¦tight|s0.2857¦tight|p-0.3889¦tough|p-0.7333¦uncivil|p-0.075¦victim|p0.125¦vivid|i1.5¦real|i1.3¦excruciatingly,very|i1.2¦frustratingly";
diff --git a/plugins/_experiments/sentiment/src/data/index.js b/plugins/_experiments/sentiment/src/data/index.js
new file mode 100644
index 000000000..69555d63b
--- /dev/null
+++ b/plugins/_experiments/sentiment/src/data/index.js
@@ -0,0 +1,44 @@
+import { unpack } from 'efrt'
+import pattern_en_packed from './_pckd.js'
+
+
+// Decompress above data
+const pattern_en = unpack(pattern_en_packed);
+
+// Add some data efrt 2.7.0 compression can't handle yet
+//
+// Wait...you can add to a const? Yes!
+// Ref: https://stackoverflow.com/a/23436563
+let arrayInfo = ["i1.0", "p0.0", "s0.0"];
+pattern_en['13th'] = arrayInfo;
+pattern_en['20th'] = arrayInfo;
+pattern_en['21st'] = arrayInfo;
+pattern_en['2nd'] = arrayInfo;
+pattern_en['3rd'] = arrayInfo;
+
+// Sort all subarrays in alphabetical order
+// resulting order and their corresponding
+// indices will be:
+// intensity [0]
+// polarity [1]
+// subjectivity [2]
+Object.values(pattern_en).forEach(function (element) {
+ element.sort();
+})
+//console.log('pattern_en:', pattern_en);
+
+// Find all keys from expanded pattern_en object
+const pattern_en_keys = Object.keys(pattern_en);
+//console.log('pattern_en_keys: ', pattern_en_keys);
+
+// Find all intensifiers (keys whose values are not "i1.0") in pattern_en object
+const intensifiers = Object.keys(pattern_en).filter(function (element) {
+ return (pattern_en[element][0] != "i1.0");
+});
+//console.log('intensifiers', intensifiers);
+
+// Set up dictionary of negations
+const negations = ['not', 'no', 'never', 'neither', 'havent', 'hasnt', 'hadnt', 'cant', 'couldnt', 'shouldnt', 'wasnt', 'wont', 'wouldnt', 'dont', 'doesnt', 'didnt', 'isnt', 'arent', 'aint', 'mustnt', 'werent'];
+//console.log('negations: ', negations);
+
+export { pattern_en, pattern_en_keys, intensifiers, negations }
\ No newline at end of file
diff --git a/plugins/_experiments/sentiment/src/emoji.js b/plugins/_experiments/sentiment/src/emoji.js
new file mode 100644
index 000000000..f31301502
--- /dev/null
+++ b/plugins/_experiments/sentiment/src/emoji.js
@@ -0,0 +1,51 @@
+/* eslint-disable */
+import RegExpEscape from './escape.js'
+
+/**
+* emoticons
+*
+* Variable containing polarity scores for selected emoticons/smileys
+*
+* @author Scott Cram
+*
+* Original version:
+* @author Steven Loria
+* @see {@link https://github.com/sloria/TextBlob/blob/dev/textblob/_text.py|_text.py}
+*
+* From emoticons section of python file above, data was converted to JSON Object containing selected emoticons/smileys and their associated polarity scores
+*/
+const emoticons = { "<3": "1.00", "♥": "1.00", ">:D": "1.00", ":-D": "1.00", ":D": "1.00", "=-D": "1.00", "=D": "1.00", "X-D": "1.00", "x-D": "1.00", "XD": "1.00", "xD": "1.00", "8-D": "1.00", ">:P": "0.75", ":-P": "0.75", ":P": "0.75", ":-p": "0.75", ":p": "0.75", ":-b": "0.75", ":b": "0.75", ":c)": "0.75", ":o)": "0.75", ":^)": "0.75", ">:)": "0.50", ":-)": "0.50", ":)": "0.50", "=)": "0.50", "=]": "0.50", ":]": "0.50", ":}": "0.50", ":>": "0.50", ":3": "0.50", "8)": "0.50", "8-)": "0.50", ">;]": "0.25", ";-)": "0.25", ";)": "0.25", ";-]": "0.25", ";]": "0.25", ";D": "0.25", ";^)": "0.25", "*-)": "0.25", "*)": "0.25", ">:o": "0.05", ":-O": "0.05", ":O": "0.05", ":o": "0.05", ":-o": "0.05", "o_O": "0.05", "o.O": "0.05", "°O°": "0.05", "°o°": "0.05", ">:/": "-0.25", ":-/": "-0.25", ":/": "-0.25", ":\\": "-0.25", ">:\\": "-0.25", ":-.": "-0.25", ":-s": "-0.25", ":s": "-0.25", ":S": "-0.25", ":-S": "-0.25", ">.>": "-0.25", ">:[": "-0.75", ":-(": "-0.75", ":(": "-0.75", "=(": "-0.75", ":-[": "-0.75", ":[": "-0.75", ":{": "-0.75", ":-<": "-0.75", ":c": "-0.75", ":-c": "-0.75", "=/": "-0.75", ":'(": "-1.00", ":'''(": "-1.00", ";'(": "-1.00" };
+//console.log('emoticons', emoticons);
+
+// Combine all the keys from the emoticon object into a regex which match any of those emoticons
+const emoticon_regex = new RegExp((RegExpEscape(Object.keys(emoticons).join(' '))).replace(/\\\s/g, '|'), 'g');
+//console.log('emoticon_regex: ', emoticon_regex);
+
+/**
+* emojis
+*
+* Variable containing polarity scores for selected emojis
+*
+* @author Scott Cram
+*
+* Original version:
+* @author P. Kralj Novak, J. Smailovic, B. Sluban, I. Mozetic
+* @see {@link https://kt.ijs.si/data/Emoji_sentiment_ranking/|Emoji Sentiment Ranking v1.0}
+*
+* From emoji file above, data from Char and Sentiment score columns was used, and converted to JSON Object
+*/
+const emojis = { "😂": "0.221", "❤": "0.746", "♥": "0.657", "😍": "0.678", "😭": "-0.093", "😘": "0.701", "😊": "0.644", "👌": "0.563", "💕": "0.632", "👏": "0.520", "😁": "0.449", "☺": "0.657", "♡": "0.669", "👍": "0.521", "😩": "-0.368", "🙏": "0.417", "✌": "0.463", "😏": "0.332", "😉": "0.463", "🙌": "0.559", "🙈": "0.432", "💪": "0.555", "😄": "0.421", "😒": "-0.374", "💃": "0.734", "💖": "0.712", "😃": "0.557", "😔": "-0.146", "😱": "0.190", "🎉": "0.738", "😜": "0.455", "☯": "0.001", "🌸": "0.650", "💜": "0.654", "💙": "0.730", "✨": "0.351", "😳": "0.018", "💗": "0.657", "★": "0.283", "☀": "0.465", "😡": "-0.173", "😎": "0.491", "😢": "0.007", "💋": "0.691", "😋": "0.631", "🙊": "0.459", "😴": "-0.080", "🎶": "0.537", "💞": "0.739", "😌": "0.482", "🔥": "0.139", "💯": "0.120", "🔫": "-0.194", "💛": "0.709", "💁": "0.326", "💚": "0.656", "♫": "0.287", "😞": "-0.118", "😆": "0.409", "😝": "0.423", "😪": "-0.080", "😫": "-0.145", "😅": "0.178", "👊": "0.228", "💀": "-0.207", "😀": "0.568", "😚": "0.710", "😻": "0.619", "©": "0.117", "👀": "0.063", "💘": "0.683", "🐓": "0.028", "☕": "0.244", "👋": "0.413", "✋": "0.126", "🎊": "0.721", "🍕": "0.417", "❄": "0.506", "😥": "0.122", "😕": "-0.397", "💥": "0.148", "💔": "-0.121", "😤": "-0.209", "😈": "0.265", "✈": "0.415", "🔝": "0.474", "😰": "-0.020", "⚽": "0.616", "😑": "-0.311", "👑": "0.694", "😹": "0.141", "👉": "0.390", "🍃": "0.378", "🎁": "0.759", "😠": "-0.299", "🐧": "0.456", "🍀": "0.285", "🎈": "0.718", "🎅": "0.318", "😓": "-0.080", "😣": "-0.212", "😐": "-0.388", "✊": "0.429", "😨": "-0.140", "😖": "-0.155", "💤": "0.370", "💓": "0.664", "👎": "-0.188", "💦": "0.471", "✔": "0.270", "😷": "-0.169", "⚡": "0.177", "🙋": "0.485", "🎄": "0.531", "💩": "-0.116", "🎵": "0.500", "➡": "0.147", "😛": "0.601", "😬": "0.194", "👯": "0.439", "💎": "0.561", "🌿": "0.384", "🎂": "0.613", "🌟": "0.327", "🔮": "0.267", "❗": "0.100", "👫": "0.255", "🏆": "0.726", "✖": "0.311", "☝": "0.309", "😙": "0.778", "⛄": "0.521", "👅": "0.461", "♪": "0.534", "🍂": "0.547", "💏": "0.388", "🔪": "0.070", "🌴": "0.525", "👈": "0.424", "🌹": "0.600", "🙆": "0.500", "👻": "0.228", "💰": "0.251", "🍻": "0.512", "🙅": "-0.202", "🌞": "0.558", "🍁": "0.482", "⭐": "0.580", "▪": "0.198", "🎀": "0.629", "☷": "0.064", "🐷": "0.368", "🙉": "0.333", "🌺": "0.549", "💅": "0.388", "🐶": "0.576", "🌚": "0.464", "👽": "0.315", "🎤": "0.476", "👭": "0.463", "🎧": "0.414", "👆": "0.326", "🍸": "0.539", "🍷": "0.393", "®": "0.279", "🍉": "0.597", "😇": "0.587", "☑": "0.101", "🏃": "0.406", "😿": "-0.372", "💣": "0.007", "🍺": "0.493", "▶": "0.209", "😲": "-0.068", "🎸": "0.516", "🍹": "0.659", "💫": "0.500", "📚": "0.336", "😶": "-0.142", "🌷": "0.538", "💝": "0.644", "💨": "0.381", "🏈": "0.530", "💍": "0.478", "☔": "0.289", "👸": "0.605", "🍩": "0.382", "👾": "0.361", "☁": "0.308", "🌻": "0.570", "😵": "0.085", "📒": "0.038", "🐯": "0.476", "👼": "0.333", "🍔": "0.277", "😸": "0.410", "👶": "0.434", "💐": "0.735", "🌊": "0.500", "🍦": "0.459", "🍓": "0.670", "👇": "0.247", "💆": "0.221", "🍴": "0.537", "😧": "-0.063", "😮": "0.269", "🚫": "-0.440", "😽": "0.571", "🌈": "0.516", "🙀": "0.330", "⚠": "-0.066", "🎮": "0.427", "🍆": "0.402", "🍰": "0.448", "👐": "-0.023", "🙇": "0.140", "🍟": "0.302", "🍌": "0.435", "💑": "0.659", "👬": "-0.059", "🐣": "0.476", "🎃": "0.595", "😟": "0.072", "🐾": "0.605", "🎓": "0.563", "🏊": "0.575", "🍫": "0.152", "📷": "0.430", "👄": "0.474", "🌼": "0.779", "🚶": "-0.143", "🐱": "0.513", "🐸": "-0.080", "👿": "-0.534", "🚬": "0.521", "📖": "0.169", "🐒": "0.521", "🌍": "0.592", "🐥": "0.586", "🌀": "0.101", "🐼": "0.261", "🎥": "0.290", "💄": "0.435", "💸": "0.159", "⛔": "0.485", "🏀": "0.254", "💉": "0.358", "💟": "0.682", "🚗": "0.231", "😯": "0.123", "📝": "0.231", "♦": "0.453", "💭": "0.206", "🌙": "0.590", "🐟": "0.689", "👣": "0.344", "☞": "0.115", "✂": "-0.459", "🗿": "0.443", "🍝": "0.117", "👪": "-0.017", "🍭": "0.300", "🌃": "0.390", "❌": "0.271", "🐰": "0.586", "💊": "0.431", "🚨": "0.638", "😦": "-0.368", "🍪": "0.316", "🍣": "-0.232", "🎆": "0.709", "🎎": "0.907", "✅": "0.407", "👹": "0.058", "📱": "0.308", "🙍": "-0.327", "🍑": "0.250", "🎼": "0.327", "🔊": "0.404", "🌌": "0.520", "🍎": "0.320", "🐻": "0.440", "💇": "0.327", "♬": "0.245", "♚": "0.041", "🔴": "0.396", "🍱": "-0.313", "🍊": "0.417", "🍒": "0.313", "🐭": "0.688", "👟": "0.417", "🌎": "0.319", "🍍": "0.468", "🐮": "0.587", "📲": "0.239", "☼": "0.196", "🌅": "0.356", "👠": "0.356", "🌽": "0.444", "💧": "-0.159", "❓": "0.068", "🍬": "0.364", "😺": "0.395", "🐴": "0.070", "🚀": "0.488", "💢": "0.233", "🎬": "0.279", "🍧": "0.302", "🍜": "0.395", "🐏": "0.558", "🐘": "0.023", "👧": "0.140", "🏄": "0.524", "⬆": "0.286", "🍋": "0.244", "🆗": "0.537", "⚪": "0.450", "📺": "0.375", "🍅": "0.350", "⛅": "0.450", "🐢": "0.200", "👙": "0.500", "🏡": "0.436", "🌾": "0.538", "✏": "0.342", "🐬": "0.421", "🍤": "0.053", "♣": "0.342", "🐝": "0.211", "🌝": "0.189", "🔋": "-0.486", "🐍": "0.351", "♔": "0.541", "🍳": "0.028", "🔵": "0.306", "😾": "-0.333", "🌕": "0.556", "🐨": "0.444", "🔐": "0.333", "💿": "0.611", "🌳": "0.486", "👰": "0.486", "⚓": "0.571", "🚴": "0.657", "👗": "0.235", "➕": "0.529", "💬": "0.364", "🔜": "0.273", "🍨": "0.212", "💲": "0.242", "⛽": "0.152", "🍙": "0.281", "🍗": "0.063", "🍲": "0.125", "🍥": "-0.594", "♛": "0.188", "😼": "0.355", "🐙": "0.387", "👨": "0.516", "🍚": "0.452", "🍖": "0.129", "♨": "0.871", "🎹": "0.355", "♕": "0.387", "🚘": "0.067", "🍏": "0.067", "👩": "0.067", "👦": "0.133", "☠": "-0.033", "🐠": "0.414", "🚹": "0.690", "💵": "0.379", "👛": "0.357", "🚙": "0.036", "🌱": "0.571", "💻": "0.250", "🌏": "0.321", "👓": "0.296", "⚾": "-0.037", "🌲": "0.385", "👴": "0.231", "🏠": "0.500", "🍇": "0.269", "🍘": "0.385", "🍛": "0.038", "🐇": "0.231", "🔞": "-0.038", "👵": "0.423", "◀": "0.269", "🔙": "0.192", "🌵": "0.192", "🐽": "0.120", "🍮": "-0.120", "🎇": "0.680", "🐎": "0.400", "💶": "0.000", "🐤": "0.520", "🛀": "0.125", "🌑": "0.458", "🚲": "0.375", "🐑": "-0.167", "🏁": "0.500", "🍞": "0.042", "🎾": "0.542", "🈹": "0.292", "🐳": "0.130", "👮": "-0.348", "☹": "-0.522", "🐵": "0.478", "🗼": "0.522", "♠": "0.304", "👺": "-0.182", "🐚": "0.227", "👂": "-0.136", "🗽": "0.318", "🍵": "0.364", "🆒": "0.364", "🍯": "0.045", "🐺": "0.227", "🌓": "0.591", "🔒": "0.182", "👳": "0.619", "🌂": "0.238", "🚌": "0.190", "♩": "0.524", "🍡": "-0.048", "❥": "0.238", "🎡": "0.286", "💌": "0.500", "🐩": "0.350", "🌜": "0.500", "⌚": "0.200", "🚿": "0.600", "🐖": "0.150", "🔆": "0.550", "🌛": "0.550", "💂": "-0.150", "🐔": "0.300", "🙎": "-0.050", "🏩": "0.421", "🔨": "-0.105", "📢": "0.421", "🐦": "0.421", "🐲": "-0.053", "♻": "0.474", "🌘": "0.579", "🍐": "0.158", "🌔": "0.579", "👖": "0.333", "🚺": "0.167", "😗": "0.611", "🎭": "0.000", "🐄": "0.278", "🍢": "-0.111", "🎨": "0.167", "⬇": "0.389", "🚼": "0.556", "⛲": "0.056", "🌗": "0.611", "🌖": "0.611", "🔅": "0.833", "👜": "0.235", "🐌": "0.647", "💼": "0.529", "🚕": "0.000", "🐹": "0.294", "🌠": "0.529", "🐈": "0.294", "☎": "0.000", "🌁": "0.176", "⚫": "0.235", "♧": "0.471", "🏰": "0.294", "🚵": "0.353", "🎢": "0.471", "🎷": "0.647", "🎐": "0.176", "🌇": "0.500", "⏰": "0.438", "🚂": "0.250", "🎿": "0.375", "🆔": "0.750", "⛪": "0.125", "🌒": "0.563", "🐪": "0.563", "👔": "0.333", "🔱": "0.067", "🆓": "0.200", "🐋": "0.200", "🐛": "0.267", "👕": "0.400", "🚋": "0.067", "💳": "0.400", "🌆": "0.133", "🏧": "0.800", "💡": "0.600", "🔹": "0.133", "⬅": "0.467", "🍠": "0.000", "🐫": "0.333", "🏪": "0.067", "📹": "0.429", "👞": "0.429", "🚑": "0.071", "🆘": "0.071", "👚": "0.571", "🚍": "0.071", "🐂": "0.143", "🚣": "0.571", "✳": "0.000", "🏉": "0.500", "🗻": "0.571", "🐀": "0.143", "⛺": "0.462", "🐕": "0.231", "🏂": "0.385", "👡": "0.385", "📻": "0.308", "✒": "0.231", "🌰": "0.538", "🏢": "0.154", "🎒": "0.462", "🏫": "-0.231", "📴": "0.615", "🚢": "0.231", "🚚": "-0.077", "🐉": "0.154", "🐊": "0.077", "🔔": "0.769", "🏥": "0.250", "❔": "0.000", "🚖": "-0.083", "🃏": "0.083", "☛": "0.333", "💒": "0.500", "🚤": "0.333", "🐐": "0.417", "🔚": "0.333", "🎻": "0.333", "🔷": "0.167", "🚦": "0.083", "🔓": "0.083", "🎽": "0.417", "📅": "0.167", "🎺": "0.583", "🍈": "-0.333", "✉": "0.250", "🍼": "0.455", "📀": "0.091", "🚛": "-0.182", "📓": "0.182", "☉": "0.182", "💴": "-0.182", "🐃": "0.000", "➰": "-0.091", "🔌": "-0.091", "🍄": "0.000", "📕": "0.182", "📣": "0.364", "🚓": "0.273", "🐗": "0.455", "↪": "0.091", "⛳": "0.636", "👱": "0.100", "⏳": "0.000", "💺": "0.200", "🏇": "-0.100", "☻": "0.200", "📞": "0.400", "🌉": "0.500", "🚩": "-0.200", "✎": "0.500", "📃": "0.400", "🏨": "0.200", "📌": "-0.400", "♎": "-0.100", "💷": "0.400", "🚄": "0.500", "⛵": "0.500", "🔸": "0.200", "⌛": "0.100", "🚜": "0.700", "🐆": "0.300", "👒": "0.200", "❕": "0.200", "🔛": "0.400", "♢": "0.300", "👝": "0.333", "🎋": "0.444", "👥": "0.222", "📵": "0.111", "🐡": "0.222", "🏯": "0.111", "☂": "0.000", "🔭": "0.333", "🎪": "0.222", "🐜": "0.444", "♌": "0.556", "☐": "-0.667", "👷": "0.222", "🔈": "0.222", "📄": "0.667", "📍": "0.111", "🚐": "0.556", "🚔": "0.000", "🌋": "0.444", "📡": "0.222", "⏩": "0.111", "🚳": "0.667", "☾": "0.000", "🅰": "0.222", "📥": "0.000", "🔦": "0.000", "👤": "0.500", "🚁": "0.125", "🎠": "0.375", "🐁": "-0.250", "📗": "0.125", "☮": "0.000", "♂": "0.125", "📯": "-0.125", "🔩": "0.125", "👢": "0.500", "📰": "0.250", "📶": "0.250", "🚥": "0.000", "🌄": "0.125", "🗾": "0.250", "🔶": "0.250", "🏤": "0.250", "🎩": "0.250", "Ⓜ": "0.250", "🔧": "-0.375", "🐅": "0.125", "♮": "0.125", "🅾": "-0.125", "🔄": "0.000", "☄": "0.000", "☨": "0.000" };
+//console.log('emojis: ', emojis);
+
+// Create emoji regex object tjat matches the emojis from emojis object
+const emoji_object_regex = new RegExp((RegExpEscape(Object.keys(emojis).join(' '))).replace(/\\\s/g, '|'), 'g');
+//console.log('emoji_object_regex: ', emoji_object_regex);
+
+// Create emoji regex object that matches all emojis
+// Ref:
+// How to strip emojis from string in JavaScript
+// https://edvins.io/how-to-strip-emojis-from-string-in-java-script
+const emoji_regex = new RegExp("([✀-➿-‑-⛿]|��|��|��)", 'g');
+//console.log('emoji_regex: ', emoji_regex);
+
+export { emoji_object_regex, emoji_regex, emoticon_regex, emoticons, emojis }
\ No newline at end of file
diff --git a/plugins/_experiments/sentiment/src/escape.js b/plugins/_experiments/sentiment/src/escape.js
new file mode 100644
index 000000000..764084518
--- /dev/null
+++ b/plugins/_experiments/sentiment/src/escape.js
@@ -0,0 +1,16 @@
+/**
+* Function to escape characters in preparation for conversion to regex
+*
+* @author Brian L
+* @see {@link https://stackoverflow.com/a/7317957|Regex matching list of emoticons of various type}
+*
+* @param {string} text - The text to be escaped
+*
+* @returns {string} text - Input text with special regex characters escaped
+*
+*
+*/
+function RegExpEscape(text) {
+ return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
+}
+export default RegExpEscape
\ No newline at end of file
diff --git a/plugins/_experiments/sentiment/src/lib.js b/plugins/_experiments/sentiment/src/lib.js
new file mode 100644
index 000000000..2f02e57a0
--- /dev/null
+++ b/plugins/_experiments/sentiment/src/lib.js
@@ -0,0 +1,199 @@
+/* eslint-disable */
+import { intensifiers, negations } from './data/index.js'
+
+// HELPER FUNCTIONS
+
+
+
+/**
+* Label the words of the input array as either 'negation', 'instensifier', 'opinion', or 'opinion!'
+* ('opinion!' is an opinion word that is followed by an exclamation mark)
+*
+* @author Scott Cram
+*
+* @param {Array} inputArr - The array to be labeled
+*
+* @returns {Object} labelReturnObj - Object consisting of labeling results, including:
+* @returns {Array} labelReturnObj.words - words from inputArr, less any exclamation marks
+* @returns {Array} labelReturnObj.labels - array of word types that act as labels for each element in labelReturnObj.words
+*/
+function labelWordArray(inputArr) {
+ // Return error array if inputArr has no elements
+ if (inputArr.length === 0) { return { 'error': 'input array has no elements' } }
+ // Initialize variables
+ let labelReturnObj = { 'words': [], 'labels': [] };
+ let wordsArr = inputArr;
+ let labelsArr = [];
+ // Classify each word in Array as
+ // either 'em' (exclamation mark), negation', 'intensifier', or 'opinion'
+ inputArr.forEach(function (element, index) {
+ if (element.includes('!')) {
+ labelsArr[index] = 'em';
+ return;
+ }
+ if (negations.includes(element)) {
+ labelsArr[index] = 'negation';
+ return;
+ }
+ if (intensifiers.includes(element)) {
+ labelsArr[index] = 'intensifier';
+ return;
+ }
+ labelsArr[index] = 'opinion';
+ });
+ // In labelsArr, look for any instances of
+ // 'opinion' followed by 'em', and if found,
+ // convert 'opnion' to 'opinion!', remove 'em',
+ // and remove exclamation mark from wordsArr
+ for (let countdown = labelsArr.length - 1; countdown >= 0; countdown--) {
+ if (countdown < labelsArr.length - 1) {
+ if ((labelsArr[countdown] === 'opinion') && (labelsArr[countdown + 1] === 'em')) {
+ labelsArr[countdown] = 'opinion!';
+ labelsArr.splice(countdown + 1, 1);
+ wordsArr.splice(countdown + 1, 1);
+ }
+ }
+ }
+ // If there is not at least 1 'opinion' in
+ // labelsArr, then return object with error
+ if ((labelsArr.indexOf('opinion') < 0) && (labelsArr.indexOf('opinion!') < 0)) {
+ return { 'error': 'no opinion-based words found' };
+ }
+ // Each 'opinion'/'opinion!' is only modified
+ // by preceeding words, so ensure that the last
+ // item in wordsArr and labelArr is an 'opinion'/'opinion!'
+ wordsArr = wordsArr.slice(0, Math.max(labelsArr.lastIndexOf('opinion'), labelsArr.lastIndexOf('opinion!')) + 1);
+ labelsArr = labelsArr.slice(0, Math.max(labelsArr.lastIndexOf('opinion'), labelsArr.lastIndexOf('opinion!')) + 1);
+ labelReturnObj.words = wordsArr;
+ labelReturnObj.labels = labelsArr;
+ return labelReturnObj;
+}
+
+/**
+* Find indices to split array at a given word
+*
+* @author Scott Cram
+*
+* @param {Array} startingArr - The array to be split
+* @param {string} splitWord - The word at which split
+*
+* @returns {Array} splitPoints - Array of numbers that, when used in pairs for Array.splice(), cane be used to split the array so that only once occurence of splitWord appears
+*
+*
+*/
+
+function findArraySplitPoints(startingArr, splitWord) {
+ // Count how many times the splitWord occurs in startingArr
+ let howManySplitWords = startingArr.reduce(function (accumulator, currentValue) {
+ if (currentValue.match(splitWord) !== null) { accumulator++ }
+ return accumulator;
+ }, 0);
+ // If count is less than zero, return empty array
+ if (howManySplitWords < 1) {
+ return [];
+ }
+ // Using the above count of splitWord occurences,
+ // locate splice points for array
+ let startArrCount = 0;
+ let splitWordCount = 1; // We can now assume at least 1 occurence of splitWord
+ let splitPoints = [startArrCount];
+ startingArr.forEach(function (element, index) {
+ if ((element.match(splitWord) !== null) && (splitWordCount < howManySplitWords)) {
+ splitPoints.push(index + 1);
+ splitPoints.push(index + 1);
+ startArrCount = index + 1;
+ splitWordCount++;
+ return;
+ }
+ if ((element.match(splitWord) !== null) && (splitWordCount === howManySplitWords)) {
+ splitPoints.push(startingArr.length);
+ }
+ });
+ return splitPoints;
+}
+
+/**
+* Chunk up included arrays into subarrays, with each subarray containing only one 'opinion'/'opinion!' and single preceeding negation and/or modifier
+*
+* @author Scott Cram
+*
+* @param {Array} wordsArr - Array of words to be chunked
+* @param {Array} labelsArr - Array of labels to be chunked
+*
+* @returns {Object} chunks - Object consisting of chunking results, including:
+* @returns {Array} chunks.words - words from inputArr, less any exclamation marks
+* @returns {Array} chunks.labels - 2D array of word types
+*/
+function chunkArrays(wordsArr, labelsArr) {
+ // Initialize variables
+ let wordsArr2d = [];
+ let labelsArr2d = [];
+ let chunkReturnObj = { 'word_chunks': wordsArr2d, 'label_chunks': labelsArr2d };
+ // Find points where 'opinion'/'opinion!' can be split up in array,
+ // and store them in wordLocs (word locations)
+ let wordLocs = findArraySplitPoints(labelsArr, 'opinion');
+ // Use parameters stored in wordLocs array to
+ // create 2d arrays, grouping a 'opinion' with any
+ // preceeding negations and/or intensifiers.
+ for (let index = 0; index < wordLocs.length; index += 2) {
+ wordsArr2d.push(wordsArr.slice(wordLocs[index], wordLocs[index + 1]));
+ labelsArr2d.push(labelsArr.slice(wordLocs[index], wordLocs[index + 1]));
+ }
+ // Go through each subarray, and only keep
+ // 1 closest preceeding negation, as well as
+ // 1 closest preceeding intensifier
+
+ // Iterate through labelsArr2d to work with each subarray
+ labelsArr2d.forEach(function (element, index) {
+ // Create array to hold location of a
+ // single 'negation' (index 0), a
+ // single 'intensifier' (index 1), and
+ // 'opinion'/'opinion!'
+ let tempLocArr = [];
+ // Get values of last occurences of each type of words
+ tempLocArr.push(element.lastIndexOf('negation'));
+ tempLocArr.push(element.lastIndexOf('intensifier'));
+ tempLocArr.push(Math.max(element.lastIndexOf('opinion'), element.lastIndexOf('opinion!')));
+ // Filter words and labels down to just the items at the indices in tempLocArr
+ wordsArr2d[index] = wordsArr2d[index].filter(function (_, i) {
+ return tempLocArr.includes(i);
+ });
+ labelsArr2d[index] = labelsArr2d[index].filter(function (_, i) {
+ return tempLocArr.includes(i);
+ });
+ });
+ // chunkReturnObj = {'word_chunks': wordsArr2d, 'label_chunks': labelsArr2d};
+ chunkReturnObj.word_chunks = wordsArr2d;
+ chunkReturnObj.label_chunks = labelsArr2d;
+ return chunkReturnObj;
+}
+
+/**
+* Limit a value inside a certain range
+*
+*
+* Original version:
+* @author w3resource
+* @see {@link https://www.w3resource.com/javascript-exercises/JavaScript: Limit a value inside a certain range}
+*
+* @param {number} val - The value to be tested for range
+* @param {number} min - The minimum amount in the desired range
+* @param {number} max - The maximum amount in the desired range
+*
+* @returns {number} value - If the val input is within the range of min to max, val will be returned. If val is higher than max, then max will be returned. If val is lower than min, then min will be returned.
+*
+*/
+function value_limit(val, min, max) {
+ return val < min ? min : (val > max ? max : val);
+}
+
+// Average all values in inputArr together
+// or leave at 0, if array is empty.
+function averageArray(inputArr) {
+ if (inputArr.length === 0) { return 0; }
+ return inputArr.reduce(function (accum, currentVal) {
+ return accum + currentVal;
+ }, 0) / inputArr.length;
+}
+
+export { labelWordArray, averageArray, value_limit, chunkArrays }
\ No newline at end of file
diff --git a/plugins/_experiments/sentiment/src/plugin.js b/plugins/_experiments/sentiment/src/plugin.js
new file mode 100644
index 000000000..7b32ae678
--- /dev/null
+++ b/plugins/_experiments/sentiment/src/plugin.js
@@ -0,0 +1,176 @@
+import { emoji_object_regex, emoji_regex, emoticon_regex, emoticons, emojis } from './emoji.js'
+import { pattern_en, pattern_en_keys } from './data/index.js'
+import { labelWordArray, averageArray, value_limit, chunkArrays } from './lib.js'
+
+
+
+const sentimentComp = {
+ /** add a method */
+ api: (View) => {
+
+
+ View.prototype.sentiment = function (addMood = false, addSummary = false) {
+ //console.log('addMood: ', addMood);
+ //console.log('addSummary: ', addSummary);
+ // Ensure that inputStr is text
+ let inputStr = this.text();
+ let isInputValid = typeof inputStr === 'string';
+ if ((isInputValid === false) || (inputStr === '')) {
+ return { 'error': 'Input must be a string containing text.' };
+ }
+
+ // SET DEFAULTS
+ //
+ // Create default return object with scores of 0
+ let returnObj = { 'polarity': 0, 'subjectivity': 0 };
+ // Create default empty summary array
+ let summaryArr = [];
+
+ // INPUT STRING PROCESSING
+ //
+ // Remove sarcasm symbols [!] and (!), if present
+ inputStr = inputStr.replace(/\(!\)|\[!\]/g, '').replace(/\s+/g, ' ').trim();
+ // Create array of emoticons from input string
+ let emoticonArr = inputStr.match(emoticon_regex) || [];
+ //console.log('emoticonArr: ', emoticonArr);
+ // Create array of emoticon values using emoticonArr
+ let emoticonValArr = emoticonArr.map(function (element) { return parseFloat(emoticons[element]) }) || [];
+ //console.log('emoticonValArr: ', emoticonValArr);
+ // From inputText, get all the emojis which have scores
+ let emojisOnlyArr = inputStr.match(emoji_object_regex) || [];
+ //console.log('emojisOnlyArr: ', emojisOnlyArr);
+ // Get all the values of the emojis in emojisOnlyArr
+ let emojiValArr = emojisOnlyArr.map(function (element) { return parseFloat(emojis[element]) }) || [];
+ //console.log('emojiValArr: ', emojiValArr);
+ // Add emojisOnlyArr into emoticonArr
+ emoticonArr = emoticonArr.concat(emojisOnlyArr);
+ //console.log('emoticonArr: ', emoticonArr);
+ // Add emoticonValArr into emoticonValArr
+ emoticonValArr = emoticonValArr.concat(emojiValArr);
+ //console.log('emoticonValArr: ', emoticonValArr);
+ // Remove emoticons from inputStr,
+ // remove emojis,
+ // replace multiple exclamation marks with 1,
+ // remove apostrophes,
+ // and change entire string to lower case
+ inputStr = inputStr.replace(emoticon_regex, '').replace(emoji_regex, ' ').replace(/\s+/g, ' ').replace(/!{2,}/g, '!').replace(/['’]/g, '').trim().toLowerCase();
+ //console.log('inputStr: ', inputStr);
+ // From inputStr, create array containing only words listed in pattern_en or exclamation marks
+ let wordArr = (inputStr.match(/\w+|!/g)).filter(function (element) {
+ return (pattern_en_keys.includes(element) || element.includes('!'));
+ });
+ //console.log('wordArr: ', wordArr);
+ // Create array of labels of types of words in wordArr
+ let labelInfoObj = labelWordArray(wordArr);
+ //console.log('labelInfoObj: ', labelInfoObj);
+ // If wordArr is now empty,
+ // return an object with polarity and subjectivity of 0,
+ // as well as mood and summary information, if those flags
+ // are set
+ if ((wordArr.length === 0) || (labelInfoObj.hasOwnProperty('error'))) {
+ if (addMood === true) {
+ returnObj.mood = averageArray(emoticonValArr);
+ // If addSummary is true, add scored_icons
+ if (addSummary === true) {
+ let summaryObj = {};
+ summaryObj.scored_icons = emoticonArr;
+ summaryObj.mood = emoticonValArr;
+ summaryArr.push(summaryObj);
+ }
+ }
+ if (addSummary === true) { returnObj.summary = summaryArr; }
+ return returnObj;
+ }
+ // Since labelInfoObjn returned valid data,
+ // it's time to chunk the words and labels
+ // in groupd, each containing just 1
+ // 'opinion'/ 'opinion!', and the closest
+ // preceeding negation and intensifiers,
+ // if included
+ let chunkInfoObj = chunkArrays(labelInfoObj.words, labelInfoObj.labels);
+ //console.log('chunkInfoObj', chunkInfoObj);
+ let wordArr2d = chunkInfoObj.word_chunks;
+ let labelArr2d = chunkInfoObj.label_chunks;
+
+ // VALUE CALCULATION
+ //
+ // Create polarityArr and subjectivityArr arrays
+ // to hold individual calculation results before
+ // averaging them at the end.
+ let polarityValArr = [];
+ let subjectivityValArr = [];
+ // Iterate through arrays to calculate polarity and subjectivity
+ for (let index = 0; index < labelArr2d.length; index++) {
+ // Prepare this iteration's summary object
+ let summaryObject = {};
+ // Add scored_words index
+ summaryObject.scored_words = wordArr2d[index];
+ // If 'opinion!' exists, add '!' to scored_words array
+ if (labelArr2d[index].indexOf('opinion!') > -1) { summaryObject.scored_words.push('!'); }
+ // If a 'negation' exists, set value of multiplier
+ // to -0.5, otherwise, set it to 1
+ let negationMultiplier = labelArr2d[index].indexOf('negation') > -1 ? -0.5 : 1;
+ // If an 'intensifier' exists, calculate value,
+ // otherwise, default to 1
+ let intensityMultiplier = 1;
+ // Get index of location of intensifier for this index
+ let intensifierIndex = labelArr2d[index].indexOf('intensifier');
+ // If an intensifier exists...
+ if (intensifierIndex > -1) {
+ // ...get corresponding intensity score
+ // from pattern_en object
+ intensityMultiplier = parseFloat(pattern_en[wordArr2d[index][intensifierIndex]][0].replace(/i/g, ''));
+ // if negationMultiplier = -0.5, then
+ // use inverse of intensityMultiplier
+ if (negationMultiplier === -0.5) { intensityMultiplier = 1 / intensityMultiplier }
+ }
+ // Find 'opinion' or 'opinion!' in current array
+ let opinionLoc = Math.max(labelArr2d[index].indexOf('opinion'), labelArr2d[index].indexOf('opinion!'));
+ // If 'opinion!' is the current array,
+ // set exclamationMultiplier to 1.25,
+ // otherwise set it at 1
+ let exclamationMultiplier = labelArr2d[index].indexOf('opinion!') > -1 ? 1.25 : 1;
+ // Use location of 'opinion' in current array to
+ // get polarity and subjectivity values, and
+ // then multiply them by the appropriate multipliers
+ let polarityVal = (parseFloat(pattern_en[wordArr2d[index][opinionLoc]][1].replace(/p/g, ''))) * negationMultiplier * intensityMultiplier * exclamationMultiplier;
+ let subjectivityVal = (parseFloat(pattern_en[wordArr2d[index][opinionLoc]][2].replace(/s/g, ''))) * intensityMultiplier;
+ // Limit polarity to a range of -1 to 1
+ polarityVal = value_limit(polarityVal, -1, 1);
+ // Limit subjectiivity to a range of 0 to 1
+ subjectivityVal = value_limit(subjectivityVal, 0, 1);
+ polarityValArr.push(polarityVal);
+ subjectivityValArr.push(subjectivityVal);
+ // Add polarity and subjectivity of this iteration to summaryObject
+ summaryObject.polarity = polarityVal;
+ summaryObject.subjectivity = subjectivityVal;
+ // Add this iteration's information to summary array
+ summaryArr.push(summaryObject);
+ }
+ //console.log('polarityValArr', polarityValArr);
+ //console.log('subjectivityValArr', subjectivityValArr);
+ //console.log('summaryArr', summaryArr);
+ // Average values in arrays to get respective scores
+ let polarityScore = averageArray(polarityValArr);
+ let subjectivityScore = averageArray(subjectivityValArr);
+ returnObj.polarity = polarityScore;
+ returnObj.subjectivity = subjectivityScore;
+ if (addMood === true) {
+ returnObj.mood = averageArray(emoticonValArr);
+ // If addSummary is true, add scored_icons
+ if (addSummary === true) {
+ let summaryObj = {};
+ summaryObj.scored_icons = emoticonArr;
+ summaryObj.mood = emoticonValArr;
+ summaryArr.push(summaryObj);
+ }
+ }
+ if (addSummary === true) { returnObj.summary = summaryArr; }
+ return returnObj;
+ }
+ }
+}
+
+export default sentimentComp
+
+
diff --git a/plugins/_experiments/sentiment/test.js b/plugins/_experiments/sentiment/test.js
new file mode 100644
index 000000000..c9eab6058
--- /dev/null
+++ b/plugins/_experiments/sentiment/test.js
@@ -0,0 +1,215 @@
+/* eslint-disable */
+import nlp from '../../../src/three.js'
+import plg from './src/plugin.js'
+nlp.plugin(plg)
+
+// Tests
+console.log("Test submissions to sentiment:");
+
+console.log("");
+
+console.log("INPUTS THAT RETURN ERRORS:");
+console.log("-----");
+console.log("No input:");
+console.log("", nlp().sentiment());
+// Expected result:
+// {error: 'Input must be a string containing text.'}
+console.log("-----");
+console.log("Empty string:");
+console.log("", nlp("").sentiment(""));
+// Expected result:
+// {error: 'Input must be a string containing text.'}
+console.log("-----");
+console.log("Object:");
+console.log({ 'This': 'object', 'contains': 'words' }, nlp({ 'This': 'object', 'contains': 'words' }).sentiment());
+console.log("-----");
+// Expected result:
+// {error: 'Input must be a string containing text.'}
+
+console.log("");
+
+console.log("BASIC EXPLANATIONS:");
+console.log("-----");
+console.log("Polarity is the negative or positive sentiment of the score, and ranges from -1.0 (negative sentiment) to 1.0 (positive sentiment). Neutral is anything around zero (usually -0.05 to 0.05).");
+console.log("Subjectivity is a measure of how likely it is that the string is opinion-based, and ranges from 0 (not likely to be opinion-based) to 1.0 (highly likely to be opinion-based).");
+console.log("-----");
+console.log("sentiment looks for known opinion-based words. The following string has none:");
+console.log("This movie exists.", nlp("This movie exists.").sentiment());
+// Expected result:
+// {polarity: 0, subjectivity: 0}
+console.log("-----");
+console.log("The following string has a single opinion-based word in it (\"good\"):");
+console.log("This movie is good.", nlp("This movie is good.").sentiment());
+// Expected result:
+// {polarity: 0.7, subjectivity: 0.6}
+console.log("-----");
+console.log("The scores can be changed in several ways.");
+console.log("This sentence adds the intensifier \"very\". Note how the scores change from above:");
+console.log("This movie is very good.", nlp("This movie is very good.").sentiment());
+// Expected result:
+// {polarity: 0.9099999999999999, subjectivity: 0.78}
+console.log("-----");
+console.log("This sentence adds the negation \"not\". Note the effect of this on the scores:");
+console.log("This movie is not good.", nlp("This movie is not good.").sentiment());
+// Expected result:
+// {polarity: -0.35, subjectivity: 0.6}
+console.log("-----");
+console.log("Adding an exclamation mark also affects scores:");
+console.log("This movie is good!", nlp("This movie is good!").sentiment());
+// Expected result:
+// {polarity: 0.875, subjectivity: 0.6}
+console.log("-----");
+console.log("Combining a negation, intensifier, and an exclamation mark to the opinion-based word:");
+console.log("This movie is not very good!", nlp("This movie is not very good!").sentiment());
+// Expected result:
+// {polarity: -0.33653846153846145, subjectivity: 0.46153846153846145}
+console.log("-----");
+console.log("However, sentiment only looks at the 1 closest preceeding negation (if present), the 1 closest preceeding intensifier (if present), and a single exclamation mark:");
+console.log("This movie is not not really very good!!!!", nlp("This movie is not not really very good!!!!").sentiment());
+// Expected result:
+// {polarity: -0.33653846153846145, subjectivity: 0.46153846153846145}
+console.log("-----");
+console.log("If a negation and/or an intensifier follow the opinion-based word, they are ignored. The following sentence is scored as if (not very) didn't exist:");
+console.log("This movie is good (not very).", nlp("This movie is good (not very).").sentiment());
+// Expected result:
+// {polarity: 0.7, subjectivity: 0.6}
+console.log("-----");
+console.log("Moving the (not very) phrase to before the opinion-based word makes a difference in the scores:");
+console.log("This movie is (not very) good.", nlp("This movie is (not very) good.").sentiment());
+// Expected result:
+// {polarity: -0.26923076923076916, subjectivity: 0.46153846153846145}
+console.log("-----");
+
+console.log("");
+
+console.log("MULTIPLE OPINION-BASED WORDS:");
+console.log("-----");
+console.log("Multiple opinion-based words can be used:");
+console.log("It's not very good. In fact, it was bad.", nlp("It's not very good. In fact, it was bad.").sentiment());
+// Expected result:
+// {polarity: -0.48461538461538456, subjectivity: 0.5641192307692307}
+console.log("-----");
+console.log("When multiple opinion-based words are used, each opinion-based word is affected by the closest preceeding single negation and/or intensifier.");
+console.log("The following sentence is scored differently than directly above because (not very) is attributed to the following opinion-based word (bad), rather than the opinion-based word before them (good):");
+console.log("It's good (not very). In fact, it was bad.", nlp("It's good (not very). In fact, it was bad.").sentiment());
+// Expected result:
+// {polarity: 0.48461538461538456, subjectivity: 0.5564230769230769}
+console.log("-----");
+
+console.log("");
+
+console.log("EMOJIS, EMOTIONS (\"SMILEYS\") AND MOOD:");
+console.log("-----");
+console.log("Here's a short text-style message, with no emojis or emoticons/smileys:");
+console.log("Awesome. I love it!", nlp("Awesome. I love it!").sentiment());
+// Expected result:
+// {polarity: 0.8125, subjectivity: 0.8}
+console.log("-----");
+console.log("Polarity and subjectivity scores are measured solely from text, so they aren't affected by the includion of emojis or emoticons/smileys:");
+console.log("Awesome. I love it!😍", nlp("Awesome. I love it!😍").sentiment());
+// Expected result:
+// {polarity: 0.8125, subjectivity: 0.8}
+console.log("-----");
+console.log("However, you can set the mood flag to true, and you'll see a mood score. The mood score is similar to polarity, but calculated from the emojis and emoticons/smileys.");
+console.log("Just like polarity, mood can range from -1.0 (negative sentiment) to 1.0 (positive sentiment).");
+console.log("Awesome. I love it!😍", nlp("Awesome. I love it!😍").sentiment(true));
+// Expected result:
+// {polarity: 0.8125, subjectivity: 0.8, mood: 0.678}
+console.log("-----");
+console.log("Naturally, you can use multiple emoticons/smileys, and this will change the mood score:");
+console.log("Awesome.🎉 I love it! 🤗😍:-D", nlp("Awesome.🎉 I love it! 🤗😍:-D").sentiment(true));
+// Expected result:
+// {polarity: 0.8125, subjectivity: 0.8, mood: 0.8053333333333333}
+console.log("-----");
+console.log("You can even use mood score to detect cynicism, by noting when the polarity (text) is negative and mood (emoticons/smileys) is positive (or vice-versa):");
+let sentimentVal = nlp("The movie wasn't that good.😉 ;-)").sentiment(true);
+console.log("The movie wasn't that good.😉 ;-)", sentimentVal);
+// Expected result:
+// {polarity: -0.35, subjectivity: 0.6, mood: 0.35650000000000004}
+console.log("If you detect situations like this, you can calculate the average of these two scores to get the true overall polarity:");
+console.log("(" + sentimentVal.polarity + " + " + sentimentVal.mood + ") ÷ 2 = " + ((sentimentVal.polarity + sentimentVal.mood) / 2));
+// Expected result:
+// (-0.35 + 0.35650000000000004) ÷ 2 = 0.0032500000000000306
+console.log("-----");
+
+console.log("");
+
+console.log("SUMMARY:");
+console.log("-----");
+console.log("The other flag that can be set is the summary flag.");
+console.log("This summary includes which negation and intensifier (if any) were chunked together with which opinion-based word, as well as the polarity and subjectivity score of each chunk:");
+console.log("It's not really very good.", nlp("It's not really very good.").sentiment(false, true));
+// Expected result:
+// {
+// "polarity": -0.26923076923076916,
+// "subjectivity": 0.46153846153846145,
+// "summary": [
+// {
+// "scored_words": [
+// "not",
+// "very",
+// "good"
+// ],
+// "polarity": -0.26923076923076916,
+// "subjectivity": 0.46153846153846145
+// }
+// ]
+// }
+console.log("-----");
+console.log("If you set both the mood flag and the summary flag to true, you can see each emoji, emoticon and how they were scored, as well:");
+console.log("It's not really very good. 😦:-(", nlp("It's not really very good. 😦:-(").sentiment(true, true));
+// {
+// "polarity": -0.26923076923076916,
+// "subjectivity": 0.46153846153846145,
+// "mood": -0.5589999999999999,
+// "summary": [
+// {
+// "scored_words": [
+// "not",
+// "very",
+// "good"
+// ],
+// "polarity": -0.26923076923076916,
+// "subjectivity": 0.46153846153846145
+// },
+// {
+// "scored_icons": [
+// ":-(",
+// "😦"
+// ],
+// "mood": [
+// -0.75,
+// -0.368
+// ]
+// }
+// ]
+// }
+console.log("-----");
+console.log("If you set both the mood flag and the summary flag to true, but have no emojis or emoticons/smileys in the text, the scored emoticons and mood in the summary will simply be empty arrays:");
+console.log("It's not really very good.", nlp("It's not really very good.").sentiment(true, true));
+// Expected result:
+// {
+// "polarity": -0.26923076923076916,
+// "subjectivity": 0.46153846153846145,
+// "mood": 0,
+// "summary": [
+// {
+// "scored_words": [
+// "not",
+// "very",
+// "good"
+// ],
+// "polarity": -0.26923076923076916,
+// "subjectivity": 0.46153846153846145
+// },
+// {
+// "scored_icons": [],
+// "mood": []
+// }
+// ]
+// }
+console.log("-----");
+
+// Dependencies:
+// https://unpkg.com/efrt@2.7.0/builds/efrt-unpack.min.js
+// https://unpkg.com/compromise
\ No newline at end of file
diff --git a/plugins/dates/package.json b/plugins/dates/package.json
index 04d06d34e..fed620e76 100644
--- a/plugins/dates/package.json
+++ b/plugins/dates/package.json
@@ -7,12 +7,13 @@
"unpkg": "./builds/compromise-dates.min.js",
"module": "./builds/compromise-dates.mjs",
"type": "module",
- "types": "index.d.ts",
"sideEffects": false,
+ "types": "./index.d.ts",
"exports": {
".": {
"import": "./src/plugin.js",
- "require": "./builds/compromise-dates.cjs"
+ "require": "./builds/compromise-dates.cjs",
+ "types": "./index.d.ts"
}
},
"repository": {
diff --git a/plugins/paragraphs/package.json b/plugins/paragraphs/package.json
index 8141beada..6306a4701 100644
--- a/plugins/paragraphs/package.json
+++ b/plugins/paragraphs/package.json
@@ -7,12 +7,13 @@
"unpkg": "./builds/compromise-paragraphs.min.js",
"module": "./builds/compromise-paragraphs.mjs",
"type": "module",
- "types": "index.d.ts",
"sideEffects": false,
+ "types": "./index.d.ts",
"exports": {
".": {
"import": "./src/plugin.js",
- "require": "./builds/compromise-paragraphs.cjs"
+ "require": "./builds/compromise-paragraphs.cjs",
+ "types": "./index.d.ts"
}
},
"repository": {
@@ -35,4 +36,4 @@
},
"devDependencies": {},
"license": "MIT"
-}
\ No newline at end of file
+}
diff --git a/plugins/speech/package.json b/plugins/speech/package.json
index d88cd8c23..a731d602d 100644
--- a/plugins/speech/package.json
+++ b/plugins/speech/package.json
@@ -7,12 +7,13 @@
"unpkg": "./builds/compromise-speech.min.js",
"module": "./builds/compromise-speech.mjs",
"type": "module",
- "types": "index.d.ts",
"sideEffects": false,
+ "types": "./index.d.ts",
"exports": {
".": {
"import": "./src/plugin.js",
- "require": "./builds/compromise-speech.cjs"
+ "require": "./builds/compromise-speech.cjs",
+ "types": "./index.d.ts"
}
},
"repository": {
@@ -40,4 +41,4 @@
"dependencies": {},
"devDependencies": {},
"license": "MIT"
-}
\ No newline at end of file
+}
diff --git a/plugins/speed/package.json b/plugins/speed/package.json
index a4909b5c8..10d3cd24a 100644
--- a/plugins/speed/package.json
+++ b/plugins/speed/package.json
@@ -7,12 +7,13 @@
"unpkg": "./builds/compromise-speed.min.js",
"module": "./builds/compromise-speed.mjs",
"type": "module",
- "types": "index.d.ts",
"sideEffects": false,
+ "types": "./index.d.ts",
"exports": {
".": {
"import": "./src/plugin.js",
- "require": "./builds/compromise-speed.cjs"
+ "require": "./builds/compromise-speed.cjs",
+ "types": "./index.d.ts"
}
},
"repository": {
@@ -39,4 +40,4 @@
"nlp-corpus": "^4.4.0"
},
"license": "MIT"
-}
\ No newline at end of file
+}
diff --git a/plugins/stats/package.json b/plugins/stats/package.json
index e47e97a53..b76105a62 100644
--- a/plugins/stats/package.json
+++ b/plugins/stats/package.json
@@ -7,12 +7,13 @@
"unpkg": "./builds/compromise-stats.min.js",
"type": "module",
"module": "./builds/compromise-stats.mjs",
- "types": "index.d.ts",
"sideEffects": false,
+ "types": "./index.d.ts",
"exports": {
".": {
"import": "./src/plugin.js",
- "require": "./builds/compromise-stats.cjs"
+ "require": "./builds/compromise-stats.cjs",
+ "types": "./index.d.ts"
}
},
"repository": {
@@ -42,4 +43,4 @@
},
"devDependencies": {},
"license": "MIT"
-}
\ No newline at end of file
+}
diff --git a/plugins/wikipedia/package.json b/plugins/wikipedia/package.json
index a8d642478..52b94797e 100644
--- a/plugins/wikipedia/package.json
+++ b/plugins/wikipedia/package.json
@@ -7,11 +7,12 @@
"unpkg": "./builds/compromise-wikipedia.min.js",
"type": "module",
"sideEffects": false,
- "types": "index.d.ts",
+ "types": "./index.d.ts",
"exports": {
".": {
"import": "./src/plugin.js",
- "require": "./builds/compromise-wikipedia.cjs"
+ "require": "./builds/compromise-wikipedia.cjs",
+ "types": "./index.d.ts"
}
},
"repository": {
@@ -44,4 +45,4 @@
"node-wget-promise": "0.1.6"
},
"license": "MIT"
-}
\ No newline at end of file
+}
diff --git a/scratch.js b/scratch.js
index cb8ad2b10..dfbcaac5d 100644
--- a/scratch.js
+++ b/scratch.js
@@ -1,49 +1,125 @@
/* eslint-disable no-console, no-unused-vars */
-import nlp from './src/four.js'
+import nlp from './src/three.js'
// import plg from './plugins/dates/src/plugin.js'
// nlp.plugin(plg)
-nlp.verbose('tagger')
+// nlp.verbose('tagger')
let arr = [
- // "New restaurant organizes their menu by feelings",
- // "a state implemented voting to increase their total",
- "give our people the tools they need",
- 'I have also heard rumors that drivers save on gas when they idle',
- 'when I looked at my girlfriend her head would grow and shrink',
- 'before any of the ladies of the Court could stop him he spoke',
- `was very well pleased with the magician's conduct, and said to her`,
- 'Men are of different heights, yet they range about a mode',
- 'the committee gathered their delegates',
- 'the leverage of Brussels over new member states increases after they join'
+
+
+ // 'poviding care',
+ 'We take walks in the park.',
+ 'the tree will grow',
+ 'They listen to music on their way to work.',
+ // `find just one law abiding citizen`,
+ // 'sensationally',
+ // 'catch',
+ // 'teach',
+ // 'buy',
+ // 'break',
+ // 'sink',
+ // 'know',
+ // 'run',
+ // 'swim',
+ // 'sea of japan',
+ // 'adriadic sea',
+ // 'more broken promises',
+ // 'cheerful',
+ // 'secure',
+ // 'we will convert',
+ // 'matchmaking',
+ // "would be amusing",
+ // "would be outstanding",
+
+ // 'please do not speak',
+ // 'is a tough read',
+ // 'spot on',
+ // 'up to date',
+ // 'sleepier',
+ // 'guiltier',
+ // 'clean',
+
+ // 'drunk',
+ // 'hearty',
+ // 'holy',
+ // 'leery',
+
+ // 'solitary',
+ // 'cynically',
+ // 'hairy',
+ // 'richest',
+
+ // 'jet',
+
+ // "sittin",
+ // "ridin",
+ // "jus",
+ // "allergic",
+ // "listed",
+
+ // "quo",
+ // "triple",
+ // "foremost",
+ // "friends",
+ // "guys",
+
+ // "playin",
+ // "waitin",
+ // "gettin",
+ // "comin",
+ // "livin",
+ // "sayin",
+ // "doin",
+ // "lovin",
+
+
+ // "tone",
+ // "shore",
+
+ // "i drive to the cottage",
+ // "He will study biology in college.",
+ // "drive",
+ // "vie",
+ // "convoluted",
+ // "rooted",
+ // "trumpeted",
+
+ // "wad",
+ // "sub",
+
+
+
+ // 'overtime',
+
+
+ // "small fragment",
+
+ // 'manufacturing',
+ // 'stream',
+ // 'cave',
+ // 'what companies are doing is',
+
+
]
// let doc = nlp(arr[0]).debug()
+// // doc.verbs().toPastParticiple()
+// console.log(doc.verbs().conjugate())
+// // doc.verbs().toGerund()
+// doc.verbs().toPastParticiple()
+// doc.debug()
-// // doc.nouns().debug()
-// console.log('from:')
-// let pron = doc.pronouns().debug()
+// console.log(doc.text())
+// console.log(doc.compute('root').text('root'))
+// console.log(doc.json({ root: true })[0])
+
+let str = `• it is-cool
+• He is nice
+• oooh yeah, baby!`
+let doc = nlp(str)
+// doc.sentences().debullet()
+doc.normalize('medium')
+console.log(doc.text())
-// console.log('to:')
-// pron.refersTo().debug()
-// .nouns() issues
-// arr = [
-// `1 of these carried a Kansas woman 60 ft., dropping her `,
-// ]
-// let doc = nlp(arr[0]).debug()
-// doc.nouns().debug()
-
-// japanese punctuation
-// 「」
-// 『』
-// 【】
-// let txt = "皆さんこんにちは、トウフグのコウイチでございます。ハロー!" //comma
-// txt = "ザー・モンキー"//interpunct
-let txt = "the bartender laughed, he was funny"//interpunct
-txt = 'air traffic controller'
-txt = 'Field marshal Herring '
-txt = 'Thank you Doctor Gonzales'
-
-// txt = "少年は店に向かった。 彼はパンを買った。"
-nlp(txt).debug()
diff --git a/scripts/coreference/index.js b/scripts/coreference/index.js
index c98d4f78b..15672ab5d 100644
--- a/scripts/coreference/index.js
+++ b/scripts/coreference/index.js
@@ -13,9 +13,6 @@ list.forEach(str => {
}
})
if (Object.keys(out).length) {
- console.log(JSON.stringify([
- str,
- out
- ], null, 2) + ',\n')
+ // console.log(JSON.stringify([str, out], null, 2) + ',\n')
}
})
diff --git a/scripts/pack.js b/scripts/pack.js
index 795207b03..f9fff5e36 100644
--- a/scripts/pack.js
+++ b/scripts/pack.js
@@ -38,7 +38,11 @@ const steps = [
let begin = new Date()
Object.keys(models).forEach(k => {
console.log(' - ' + k)
- const model = learn(models[k])
+ let opts = {}
+ if (k === 'AdjToNoun') {
+ opts.reverse = false
+ }
+ const model = learn(models[k], opts)
models[k] = compress(model)
})
let end = new Date()
diff --git a/src/1-one/change/api/replace.js b/src/1-one/change/api/replace.js
index 759dddea0..a5f1fe299 100644
--- a/src/1-one/change/api/replace.js
+++ b/src/1-one/change/api/replace.js
@@ -37,6 +37,8 @@ fns.replaceWith = function (input, keep = {}) {
if (typeof input === 'function') {
return replaceByFn(main, input)
}
+ let terms = main.docs[0]
+ let isPossessive = keep.possessives && terms[terms.length - 1].tags.has('Possessive')
// support 'foo $0' replacements
input = subDollarSign(input, main)
@@ -57,6 +59,17 @@ fns.replaceWith = function (input, keep = {}) {
}
// delete the original terms
main.delete(original) //science.
+
+ // keep "John's"
+ if (isPossessive) {
+ let tmp = main.docs[0]
+ let term = tmp[tmp.length - 1]
+ if (!term.tags.has('Possessive')) {
+ term.text += '\'s'
+ term.normal += '\'s'
+ term.tags.add('Possessive')
+ }
+ }
// what should we return?
let m = main.toView(ptrs).compute(['index', 'lexicon'])
if (m.world.compute.preTagger) {
@@ -72,6 +85,12 @@ fns.replaceWith = function (input, keep = {}) {
if (keep.case && m.docs[0] && m.docs[0][0] && m.docs[0][0].index[1] === 0) {
m.docs[0][0].text = titleCase(m.docs[0][0].text)
}
+
+ // try to keep some pre-post punctuation
+ // if (m.terms().length === 1 && main.terms().length === 1) {
+ // console.log(original.docs)
+ // }
+
// console.log(input.docs[0])
// let regs = input.docs[0].map(t => {
// return { id: t.id, optional: true }
diff --git a/src/1-one/change/api/whitespace.js b/src/1-one/change/api/whitespace.js
index f02f81f96..98ad30928 100644
--- a/src/1-one/change/api/whitespace.js
+++ b/src/1-one/change/api/whitespace.js
@@ -100,6 +100,8 @@ const methods = {
return this
},
}
+
+// aliases
methods.deHyphenate = methods.dehyphenate
methods.toQuotation = methods.toQuotations
diff --git a/src/1-one/contraction-one/compute/contractions/index.js b/src/1-one/contraction-one/compute/contractions/index.js
index 3f704233c..104e8b610 100644
--- a/src/1-one/contraction-one/compute/contractions/index.js
+++ b/src/1-one/contraction-one/compute/contractions/index.js
@@ -66,12 +66,26 @@ const toDocs = function (words, view) {
return doc.docs[0]
}
+// there's is usually [there, is]
+// but can be 'there has' for 'there has (..) been'
+const thereHas = function (terms, i) {
+ for (let k = i + 1; k < 5; k += 1) {
+ if (!terms[k]) {
+ break
+ }
+ if (terms[k].normal === 'been') {
+ return ['there', 'has']
+ }
+ }
+ return ['there', 'is']
+}
+
//really easy ones
const contractions = (view) => {
let { world, document } = view
const { model, methods } = world
let list = model.one.contractions || []
- let units = new Set(model.one.units || [])
+ // let units = new Set(model.one.units || [])
// each sentence
document.forEach((terms, n) => {
// loop through terms backwards
@@ -91,6 +105,10 @@ const contractions = (view) => {
if (!words && byStart.hasOwnProperty(before)) {
words = byStart[before](terms, i)
}
+ // 'there is' vs 'there has'
+ if (before === 'there' && after === 's') {
+ words = thereHas(terms, i)
+ }
// actually insert the new terms
if (words) {
words = toDocs(words, view)
@@ -114,7 +132,7 @@ const contractions = (view) => {
continue
}
// split-apart '4km'
- words = numberUnit(terms, i, units)
+ words = numberUnit(terms, i, world)
if (words) {
words = toDocs(words, view)
splice(document, [n, i], words)
diff --git a/src/1-one/contraction-one/compute/contractions/number-unit.js b/src/1-one/contraction-one/compute/contractions/number-unit.js
index 31de9b557..344c2353e 100644
--- a/src/1-one/contraction-one/compute/contractions/number-unit.js
+++ b/src/1-one/contraction-one/compute/contractions/number-unit.js
@@ -1,26 +1,14 @@
const numUnit = /^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/ //(must be lowercase)
-const notUnit = new Set([
- 'st',
- 'nd',
- 'rd',
- 'th',
- 'am',
- 'pm',
- 'max',
- '°',
- 's', // 1990s
- 'e' // 18e - french/spanish ordinal
-])
-
-const numberUnit = function (terms, i) {
+const numberUnit = function (terms, i, world) {
+ const notUnit = world.model.one.numberSuffixes || {}
let term = terms[i]
let parts = term.text.match(numUnit)
if (parts !== null) {
// is it a recognized unit, like 'km'?
let unit = parts[2].toLowerCase().trim()
// don't split '3rd'
- if (notUnit.has(unit)) {
+ if (notUnit.hasOwnProperty(unit)) {
return null
}
return [parts[1], unit] //split it
diff --git a/src/1-one/contraction-one/model/contractions.js b/src/1-one/contraction-one/model/contractions.js
index 96b2f627b..4ac30e4ea 100644
--- a/src/1-one/contraction-one/model/contractions.js
+++ b/src/1-one/contraction-one/model/contractions.js
@@ -1,6 +1,7 @@
export default [
// simple mappings
{ word: '@', out: ['at'] },
+ { word: 'arent', out: ['are', 'not'] },
{ word: 'alot', out: ['a', 'lot'] },
{ word: 'brb', out: ['be', 'right', 'back'] },
{ word: 'cannot', out: ['can', 'not'] },
@@ -14,11 +15,12 @@ export default [
{ word: "that's", out: ['that', 'is'] },
{ word: "what's", out: ['what', 'is'] },
{ word: "let's", out: ['let', 'us'] },
- { word: "there's", out: ['there', 'is'] },
+ // { word: "there's", out: ['there', 'is'] },
{ word: 'dunno', out: ['do', 'not', 'know'] },
{ word: 'gonna', out: ['going', 'to'] },
{ word: 'gotta', out: ['have', 'got', 'to'] }, //hmm
{ word: 'gimme', out: ['give', 'me'] },
+ { word: 'outta', out: ['out', 'of'] },
{ word: 'tryna', out: ['trying', 'to'] },
{ word: 'gtg', out: ['got', 'to', 'go'] },
{ word: 'im', out: ['i', 'am'] },
diff --git a/src/1-one/contraction-one/model/index.js b/src/1-one/contraction-one/model/index.js
index df1d13daa..523c01a99 100644
--- a/src/1-one/contraction-one/model/index.js
+++ b/src/1-one/contraction-one/model/index.js
@@ -1,3 +1,9 @@
import contractions from './contractions.js'
+import numberSuffixes from './number-suffix.js'
-export default { one: { contractions } }
+export default {
+ one: {
+ contractions,
+ numberSuffixes
+ }
+}
diff --git a/src/1-one/contraction-one/model/number-suffix.js b/src/1-one/contraction-one/model/number-suffix.js
new file mode 100644
index 000000000..c35908900
--- /dev/null
+++ b/src/1-one/contraction-one/model/number-suffix.js
@@ -0,0 +1,17 @@
+// number suffixes that are not units
+const t = true
+export default {
+ 'st': t,
+ 'nd': t,
+ 'rd': t,
+ 'th': t,
+ 'am': t,
+ 'pm': t,
+ 'max': t,
+ '°': t,
+ 's': t, // 1990s
+ 'e': t, // 18e - french/spanish ordinal
+ 'er': t, //french 1er
+ 'ère': t, //''
+ 'ème': t, //french 2ème
+}
\ No newline at end of file
diff --git a/src/1-one/lexicon/compute/multi-word.js b/src/1-one/lexicon/compute/multi-word.js
index 5c30c72dc..c6ab9237b 100644
--- a/src/1-one/lexicon/compute/multi-word.js
+++ b/src/1-one/lexicon/compute/multi-word.js
@@ -14,6 +14,8 @@ const checkMulti = function (terms, i, lexicon, setTag, world) {
// special case for phrasal-verbs - 2nd word is a #Particle
if (tag && tag.length === 2 && (tag[0] === 'PhrasalVerb' || tag[1] === 'PhrasalVerb')) {
+ // guard against 'take walks in'
+ // if (terms[i + skip - 2] && terms[i + skip - 2].tags.has('Infinitive')) { }
setTag([ts[1]], 'Particle', world, false, '1-phrasal-particle')
}
return true
diff --git a/src/1-one/match/methods/parseMatch/02-parseToken.js b/src/1-one/match/methods/parseMatch/02-parseToken.js
index 1bc870560..2770fde20 100644
--- a/src/1-one/match/methods/parseMatch/02-parseToken.js
+++ b/src/1-one/match/methods/parseMatch/02-parseToken.js
@@ -94,6 +94,46 @@ const parseToken = function (w, opts) {
}
}
+ //regex
+ if (start(w) === '/' && end(w) === '/') {
+ w = stripBoth(w)
+ if (opts.caseSensitive) {
+ obj.use = 'text'
+ }
+ obj.regex = new RegExp(w) //potential vuln - security/detect-non-literal-regexp
+ return obj
+ }
+
+ // support foo{1,9}
+ if (hasMinMax.test(w) === true) {
+ w = w.replace(hasMinMax, (_a, b, c) => {
+ if (c === undefined) {
+ // '{3}' Exactly three times
+ obj.min = Number(b)
+ obj.max = Number(b)
+ } else {
+ c = c.replace(/, */, '')
+ if (b === undefined) {
+ // '{,9}' implied zero min
+ obj.min = 0
+ obj.max = Number(c)
+ } else {
+ // '{2,4}' Two to four times
+ obj.min = Number(b)
+ // '{3,}' Three or more times
+ obj.max = Number(c || 999)
+ }
+ }
+ // use same method as '+'
+ obj.greedy = true
+ // 0 as min means the same as '?'
+ if (!obj.min) {
+ obj.optional = true
+ }
+ return ''
+ })
+ }
+
//wrapped-flags
if (start(w) === '(' && end(w) === ')') {
// support (one && two)
@@ -117,15 +157,6 @@ const parseToken = function (w, opts) {
})
w = ''
}
- //regex
- if (start(w) === '/' && end(w) === '/') {
- w = stripBoth(w)
- if (opts.caseSensitive) {
- obj.use = 'text'
- }
- obj.regex = new RegExp(w) //potential vuln - security/detect-non-literal-regexp
- return obj
- }
//root/sense overloaded
if (start(w) === '{' && end(w) === '}') {
@@ -161,35 +192,6 @@ const parseToken = function (w, opts) {
return obj
}
}
- // support foo{1,9}
- if (hasMinMax.test(w) === true) {
- w = w.replace(hasMinMax, (_a, b, c) => {
- if (c === undefined) {
- // '{3}' Exactly three times
- obj.min = Number(b)
- obj.max = Number(b)
- } else {
- c = c.replace(/, */, '')
- if (b === undefined) {
- // '{,9}' implied zero min
- obj.min = 0
- obj.max = Number(c)
- } else {
- // '{2,4}' Two to four times
- obj.min = Number(b)
- // '{3,}' Three or more times
- obj.max = Number(c || 999)
- }
- }
- // use same method as '+'
- obj.greedy = true
- // 0 as min means the same as '?'
- if (!obj.min) {
- obj.optional = true
- }
- return ''
- })
- }
//do the actual token content
if (start(w) === '#') {
obj.tag = stripStart(w)
diff --git a/src/1-one/match/methods/parseMatch/04-inflect-root.js b/src/1-one/match/methods/parseMatch/04-inflect-root.js
index 6764265fe..ca9588b30 100644
--- a/src/1-one/match/methods/parseMatch/04-inflect-root.js
+++ b/src/1-one/match/methods/parseMatch/04-inflect-root.js
@@ -3,9 +3,6 @@
const addVerbs = function (token, world) {
let { all } = world.methods.two.transform.verb || {}
let str = token.root
- // if (toInfinitive) {
- // str = toInfinitive(str, world.model)
- // }
if (!all) {
return []
}
diff --git a/src/1-one/tokenize/methods/01-sentences/04-quote-merge.js b/src/1-one/tokenize/methods/01-sentences/04-quote-merge.js
index ad71c7384..6b435dc69 100644
--- a/src/1-one/tokenize/methods/01-sentences/04-quote-merge.js
+++ b/src/1-one/tokenize/methods/01-sentences/04-quote-merge.js
@@ -1,3 +1,5 @@
+/* eslint-disable regexp/no-dupe-characters-character-class */
+
// merge embedded quotes into 1 sentence
// like - 'he said "no!" and left.'
const MAX_QUOTE = 280// ¯\_(ツ)_/¯
@@ -23,8 +25,8 @@ const pairs = {
// '\u0060': '\u00B4', // 'PrimeSingleQuotes'
'\u301F': '\u301E', // 'LowPrimeDoubleQuotesReversed'
}
-const openQuote = RegExp('(' + Object.keys(pairs).join('|') + ')', 'g')
-const closeQuote = RegExp('(' + Object.values(pairs).join('|') + ')', 'g')
+const openQuote = RegExp('[' + Object.keys(pairs).join('') + ']', 'g')
+const closeQuote = RegExp('[' + Object.values(pairs).join('') + ']', 'g')
const closesQuote = function (str) {
if (!str) {
diff --git a/src/1-one/tokenize/methods/02-terms/index.js b/src/1-one/tokenize/methods/02-terms/index.js
index 02240e0d3..cdb0a345c 100644
--- a/src/1-one/tokenize/methods/02-terms/index.js
+++ b/src/1-one/tokenize/methods/02-terms/index.js
@@ -6,7 +6,29 @@ const wordlike = /\S/
const isBoundary = /^[!?.]+$/
const naiiveSplit = /(\S+)/
-let notWord = ['.', '?', '!', ':', ';', '-', '–', '—', '--', '...', '(', ')', '[', ']', '"', "'", '`', '«', '»', '*']
+let notWord = [
+ '.',
+ '?',
+ '!',
+ ':',
+ ';',
+ '-',
+ '–',
+ '—',
+ '--',
+ '...',
+ '(',
+ ')',
+ '[',
+ ']',
+ '"',
+ "'",
+ '`',
+ '«',
+ '»',
+ '*',
+ '•',
+]
notWord = notWord.reduce((h, c) => {
h[c] = true
return h
diff --git a/src/2-two/postTagger/model/nouns/nouns.js b/src/2-two/postTagger/model/nouns/nouns.js
index f6457a091..418642816 100644
--- a/src/2-two/postTagger/model/nouns/nouns.js
+++ b/src/2-two/postTagger/model/nouns/nouns.js
@@ -58,7 +58,7 @@ export default [
// ==== Actor ====
//Aircraft designer
- { match: '#Noun #Actor', tag: 'Actor', notIf: '#Person', reason: 'thing-doer' },
+ { match: '#Noun #Actor', tag: 'Actor', notIf: '(#Person|#Pronoun)', reason: 'thing-doer' },
//lighting designer
{ match: '#Gerund #Actor', tag: 'Actor', reason: 'gerund-doer' },
// captain sanders
@@ -66,7 +66,7 @@ export default [
// co-founder
{ match: `co #Singular`, tag: 'Actor', reason: 'co-noun' },
// co-founder
- { match: `[#Noun+] #Actor`, group: 0, tag: 'Actor', notIf: '#Honorific', reason: 'air-traffic-controller' },
+ { match: `[#Noun+] #Actor`, group: 0, tag: 'Actor', notIf: '(#Honorific|#Pronoun|#Possessive)', reason: 'air-traffic-controller' },
// fine-artist
{ match: `(urban|cardiac|cardiovascular|respiratory|medical|clinical|visual|graphic|creative|dental|exotic|fine|certified|registered|technical|virtual|professional|amateur|junior|senior|special|pharmaceutical|theoretical)+ #Noun? #Actor`, tag: 'Actor', reason: 'fine-artist' },
// dance coach
diff --git a/src/2-two/postTagger/model/nouns/places.js b/src/2-two/postTagger/model/nouns/places.js
index 9e869314d..015258f43 100644
--- a/src/2-two/postTagger/model/nouns/places.js
+++ b/src/2-two/postTagger/model/nouns/places.js
@@ -1,48 +1,21 @@
export default [
// ==== Region ====
//West Norforlk
- {
- match: '(west|north|south|east|western|northern|southern|eastern)+ #Place',
- tag: 'Region',
- reason: 'west-norfolk',
- },
+ { match: '(west|north|south|east|western|northern|southern|eastern)+ #Place', tag: 'Region', reason: 'west-norfolk' },
//some us-state acronyms (exlude: al, in, la, mo, hi, me, md, ok..)
- {
- match: '#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]',
- group: 0,
- tag: 'Region',
- reason: 'us-state',
- },
+ { match: '#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]', group: 0, tag: 'Region', reason: 'us-state' },
// portland oregon
- {
- match: 'portland [or]',
- group: 0,
- tag: 'Region',
- reason: 'portland-or',
- },
+ { match: 'portland [or]', group: 0, tag: 'Region', reason: 'portland-or' },
//Foo District
- {
- match: '#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)',
- tag: 'Region',
- reason: 'foo-district',
- },
+ { match: '#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)', tag: 'Region', reason: 'foo-district' },
+ //landforms - 'Foo river'
+ { match: '#ProperNoun+ (river|lake|bay|inlet|creek|narrows|cove|dune|coast|lagoon|beach|peninsula|hill|mountain|canyon|marsh|island|trail|valley|glacier|estuary|desert|escarpment|gorge|plains|waterfall)', tag: 'Place', reason: 'foo-river' },
+ //landforms - 'gulf of foo'
+ { match: '(river|gulf|lake) of? #ProperNoun+', tag: 'Place', reason: 'river-foo' },
//District of Foo
- {
- match: '(district|region|province|municipality|territory|burough|state) of #ProperNoun',
- tag: 'Region',
- reason: 'district-of-Foo',
- },
+ { match: '(district|region|province|municipality|territory|burough|state) of #ProperNoun', tag: 'Region', reason: 'district-of-Foo' },
// in Foo California
- {
- match: 'in [#ProperNoun] #Place',
- group: 0,
- tag: 'Place',
- reason: 'propernoun-place',
- },
- // ==== Address ====
- {
- match: '#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)',
- tag: 'Address',
- reason: 'address-st',
- },
+ { match: 'in [#ProperNoun] #Place', group: 0, tag: 'Place', reason: 'propernoun-place' },
+ // Address
+ { match: '#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)', tag: 'Address', reason: 'address-st' },
]
diff --git a/src/2-two/postTagger/model/person/person-phrase.js b/src/2-two/postTagger/model/person/person-phrase.js
index af4b7fbe2..5aa3303f3 100644
--- a/src/2-two/postTagger/model/person/person-phrase.js
+++ b/src/2-two/postTagger/model/person/person-phrase.js
@@ -64,7 +64,7 @@ export default [
{ match: '#FirstName [(de|di|du|van|von)] #Person', group: 0, tag: 'LastName', reason: 'de-firstname' },
// baker jenna smith
- { match: '[#Actor+] #Person', group: 0, tag: 'Person', reason: 'baker-sam-smith' },
+ // { match: '[#Actor+] #Person', group: 0, tag: 'Person', reason: 'baker-sam-smith' },
// sergeant major Harold
{ match: '[(lieutenant|corporal|sergeant|captain|qeen|king|admiral|major|colonel|marshal|president|queen|king)+] #ProperNoun', group: 0, tag: 'Honorific', reason: 'seargeant-john' },
// ==== Honorics ====
diff --git a/src/2-two/postTagger/model/verbs/noun-gerund.js b/src/2-two/postTagger/model/verbs/noun-gerund.js
index 542f63487..ce1bc2ae8 100644
--- a/src/2-two/postTagger/model/verbs/noun-gerund.js
+++ b/src/2-two/postTagger/model/verbs/noun-gerund.js
@@ -13,6 +13,8 @@ export default [
{ match: '#Adjective [#Gerund]', group: 0, tag: 'Noun', notIf: '(still|even|just)', reason: 'early-warning' },
//walking is cool
{ match: '[#Gerund] #Adverb? not? #Copula', group: 0, tag: 'Activity', reason: 'gerund-copula' },
+ //are doing is
+ { match: '#Copula [(#Gerund|#Activity)] #Copula', group: 0, tag: 'Gerund', reason: 'are-doing-is' },
//walking should be fun
{ match: '[#Gerund] #Modal', group: 0, tag: 'Activity', reason: 'gerund-modal' },
// finish listening
diff --git a/src/2-two/preTagger/compute/tagger/2nd-pass/03-regex.js b/src/2-two/preTagger/compute/tagger/2nd-pass/03-regex.js
index 02481a30f..74bd2ef78 100644
--- a/src/2-two/preTagger/compute/tagger/2nd-pass/03-regex.js
+++ b/src/2-two/preTagger/compute/tagger/2nd-pass/03-regex.js
@@ -43,6 +43,7 @@ const checkRegex = function (terms, i, model, world) {
arr = doEndsWith(normal, endsWith)
}
if (arr) {
+ // console.log(arr)
setTag([term], arr[1], world, null, `2-regex-'${arr[2] || arr[0]}'`)
term.confidence = 0.6
return true
diff --git a/src/2-two/preTagger/compute/tagger/3rd-pass/_adhoc.js b/src/2-two/preTagger/compute/tagger/3rd-pass/_adhoc.js
index 65b3fa849..baa9a3a34 100644
--- a/src/2-two/preTagger/compute/tagger/3rd-pass/_adhoc.js
+++ b/src/2-two/preTagger/compute/tagger/3rd-pass/_adhoc.js
@@ -7,7 +7,7 @@ const isCapital = (terms, i) => {
return null
}
-const isAloneVerb = (terms, i, tag) => {
+const isAlone = (terms, i, tag) => {
if (i === 0 && !terms[1]) {// 'Help'
return tag
}
@@ -50,10 +50,10 @@ const adhoc = {
return isCapital(terms, i)
},
'Noun|Verb': (terms, i) => {
- return isCapital(terms, i) || isAloneVerb(terms, i, 'Infinitive')
+ return (i > 0 && isCapital(terms, i)) || isAlone(terms, i, 'Infinitive')
},
'Plural|Verb': (terms, i) => {
- return isCapital(terms, i) || isAloneVerb(terms, i, 'PresentTense') || isStart(terms, i, 'Plural')
+ return isCapital(terms, i) || isAlone(terms, i, 'PresentTense') || isStart(terms, i, 'Plural')
},
'Person|Noun': (terms, i) => {
return isCapital(terms, i)
diff --git a/src/2-two/preTagger/compute/tagger/3rd-pass/_fillTags.js b/src/2-two/preTagger/compute/tagger/3rd-pass/_fillTags.js
index a78c0987f..12b379f19 100644
--- a/src/2-two/preTagger/compute/tagger/3rd-pass/_fillTags.js
+++ b/src/2-two/preTagger/compute/tagger/3rd-pass/_fillTags.js
@@ -11,10 +11,11 @@ const uncountable = [
'Pronoun',
'Activity',
'Honorific',
+ 'Month',
]
// try to guess if each noun is a plural/singular
const setPluralSingular = function (term) {
- if (!term.tags.has('Noun') || term.tags.has('Plural') || term.tags.has('Singular') || term.tags.has('Date')) {
+ if (!term.tags.has('Noun') || term.tags.has('Plural') || term.tags.has('Singular')) {
return
}
if (uncountable.find(tag => term.tags.has(tag))) {
diff --git a/src/2-two/preTagger/methods/expand/byTag.js b/src/2-two/preTagger/methods/expand/byTag.js
index 72d34d1b8..7db2068d5 100644
--- a/src/2-two/preTagger/methods/expand/byTag.js
+++ b/src/2-two/preTagger/methods/expand/byTag.js
@@ -98,4 +98,12 @@ export default {
lex[word] = ['TextValue', 'Ordinal']
lex[word + 's'] = ['TextValue', 'Fraction']
},
+ // 'thames'
+ Place: (word, lex) => {
+ lex[word] = ['Place', 'ProperNoun']
+ },
+ // 'ontario'
+ Region: (word, lex) => {
+ lex[word] = ['Region', 'ProperNoun']
+ },
}
diff --git a/src/2-two/preTagger/methods/looksPlural.js b/src/2-two/preTagger/methods/looksPlural.js
index 329842b90..e09926311 100644
--- a/src/2-two/preTagger/methods/looksPlural.js
+++ b/src/2-two/preTagger/methods/looksPlural.js
@@ -28,8 +28,10 @@ const isPlural = {
}
// plural words as exceptions to suffix-rules
const exceptions = new Set([
- 'formulas',
- 'koalas',
+ // 'formulas',
+ // 'umbrellas',
+ // 'gorillas',
+ // 'koalas',
'israelis',
'menus',
])
@@ -38,7 +40,7 @@ const notPlural = [
'bus',
'mas',//christmas
'was',
- 'las',
+ // 'las',
'ias',//alias
'xas',
'vas',
diff --git a/src/2-two/preTagger/methods/transform/adjectives/adverbs/toNoun.js b/src/2-two/preTagger/methods/transform/adjectives/adverbs/toNoun.js
deleted file mode 100644
index 0a93b2dbb..000000000
--- a/src/2-two/preTagger/methods/transform/adjectives/adverbs/toNoun.js
+++ /dev/null
@@ -1,83 +0,0 @@
-import doRules from './lib.js'
-
-const suffixes = [
- null,
- {
- 'y': 'iness',
- },
- {
- 'le': 'ility',
- 'al': 'ality',
- 'ay': 'ayness',
- },
- {
- 'ial': 'y',
- 'ing': 'ment',
- 'ess': 'essness',
- 'ous': 'ousness',
- 'ive': 'ivity',
- 'ect': 'ection'
- },
- {
- 'ting': 'ting',
- 'ring': 'ring',
- 'cial': 'ciality',
- 'nate': 'nation',
- 'rate': 'ration',
- 'bing': 'bingness',
- 'atic': 'acy',//democratic
- 'sing': 'se',
- 'iful': 'y',//beautify, merciful
- 'ible': 'ibility'//credible
- },
- {
- 'erate': 'eration'
-
- },
- {
- 'ionate': 'ion'
- },
-]
-
-const exceptions = {
- clean: 'cleanliness',
- naive: 'naivety',
- dramatic: 'drama',
- ironic: 'irony',
- deep: 'depth',
- automatic: 'automation',
- simple: 'simplicity',
- boring: 'boredom',
- free: 'freedom',
- wise: 'wisdom',
- fortunate: 'fortune',
- gentle: 'gentleness',
- quiet: 'quiet',
- expensive: 'expense',
- offensive: 'offence'
-}
-
-const dontDo = new Set([
- 'terrible',
- 'annoying',
-])
-
-// a lot of adjectives *don't really* have a noun-form
-// 'broken' -> 'brokeness'?
-// 'surreal' -> 'surrealness'?
-// but here, conjugate what it would be, if it made sense to
-const toNoun = function (str) {
- if (exceptions.hasOwnProperty(str)) {
- return exceptions[str]
- }
- if (dontDo.has(str)) {
- return null
- }
- let res = doRules(str, suffixes)
- if (res) {
- return res
- }
- return str + 'ness'
-}
-export default toNoun
-// console.log(toNoun('clever'))
\ No newline at end of file
diff --git a/src/2-two/preTagger/methods/transform/adjectives/adverbs/toAdjective.js b/src/2-two/preTagger/methods/transform/adjectives/conjugate/fromAdverb.js
similarity index 97%
rename from src/2-two/preTagger/methods/transform/adjectives/adverbs/toAdjective.js
rename to src/2-two/preTagger/methods/transform/adjectives/conjugate/fromAdverb.js
index 1cdf4131f..01f254670 100644
--- a/src/2-two/preTagger/methods/transform/adjectives/adverbs/toAdjective.js
+++ b/src/2-two/preTagger/methods/transform/adjectives/conjugate/fromAdverb.js
@@ -102,8 +102,9 @@ const exceptions = {
customarily: 'customary',
idly: 'idle',
publically: 'public',
- quickly: 'fast',
-
+ quickly: 'quick',
+ superbly: 'superb',
+ cynically: 'cynical',
well: 'good',// -?
}
diff --git a/src/2-two/preTagger/methods/transform/adjectives/adverbs/lib.js b/src/2-two/preTagger/methods/transform/adjectives/conjugate/lib.js
similarity index 100%
rename from src/2-two/preTagger/methods/transform/adjectives/adverbs/lib.js
rename to src/2-two/preTagger/methods/transform/adjectives/conjugate/lib.js
diff --git a/src/2-two/preTagger/methods/transform/adjectives/adverbs/toAdverb.js b/src/2-two/preTagger/methods/transform/adjectives/conjugate/toAdverb.js
similarity index 81%
rename from src/2-two/preTagger/methods/transform/adjectives/adverbs/toAdverb.js
rename to src/2-two/preTagger/methods/transform/adjectives/conjugate/toAdverb.js
index 0a5ca5dbc..f07c03528 100644
--- a/src/2-two/preTagger/methods/transform/adjectives/adverbs/toAdverb.js
+++ b/src/2-two/preTagger/methods/transform/adjectives/conjugate/toAdverb.js
@@ -40,11 +40,13 @@ const toAdverb = function (str) {
if (exceptions.hasOwnProperty(str)) {
return exceptions[str]
}
- let res = doRules(str, suffixes)
- if (res) {
- return res
+ let adv = doRules(str, suffixes)
+ if (!adv) {
+ adv = str + 'ly'
}
- return str + 'ly'
+ // only return this if it exists in lexicon?
+ // console.log(model.one.lexicon[adv])
+ return adv
}
export default toAdverb
// console.log(toAdverb('unsightly'))
\ No newline at end of file
diff --git a/src/2-two/preTagger/methods/transform/adjectives/index.js b/src/2-two/preTagger/methods/transform/adjectives/index.js
index 4bf93d08c..0aac00e07 100644
--- a/src/2-two/preTagger/methods/transform/adjectives/index.js
+++ b/src/2-two/preTagger/methods/transform/adjectives/index.js
@@ -1,7 +1,7 @@
-import { toSuperlative, toComparative, fromSuperlative, fromComparative } from './inflect.js'
-import fromAdverb from './adverbs/toAdjective.js'
-import toAdverb from './adverbs/toAdverb.js'
-import toNoun from './adverbs/toNoun.js'
+import { toSuperlative, toComparative, fromSuperlative, fromComparative, toNoun } from './inflect.js'
+import fromAdverb from './conjugate/fromAdverb.js'
+import toAdverb from './conjugate/toAdverb.js'
+// import toNoun from './conjugate/toNoun.js'
const all = function (str, model) {
let arr = [str]
@@ -13,6 +13,7 @@ const all = function (str, model) {
return Array.from(arr)
}
+
export default {
toSuperlative, toComparative, toAdverb, toNoun,
fromAdverb, fromSuperlative, fromComparative,
diff --git a/src/2-two/preTagger/methods/transform/adjectives/inflect.js b/src/2-two/preTagger/methods/transform/adjectives/inflect.js
index b95cab917..c8bd7782a 100644
--- a/src/2-two/preTagger/methods/transform/adjectives/inflect.js
+++ b/src/2-two/preTagger/methods/transform/adjectives/inflect.js
@@ -18,8 +18,11 @@ const fromSuperlative = function (adj, model) {
const mod = model.two.models.fromSuperlative
return convert(adj, mod)
}
-
+const toNoun = function (adj, model) {
+ const mod = model.two.models.adjToNoun
+ return convert(adj, mod)
+}
export {
- toSuperlative, toComparative, fromComparative, fromSuperlative
+ toSuperlative, toComparative, fromComparative, fromSuperlative, toNoun
}
diff --git a/src/2-two/preTagger/methods/transform/index.js b/src/2-two/preTagger/methods/transform/index.js
index 722f8c010..d75e4fd3b 100644
--- a/src/2-two/preTagger/methods/transform/index.js
+++ b/src/2-two/preTagger/methods/transform/index.js
@@ -6,5 +6,4 @@ export default {
noun: nouns,
verb: verbs,
adjective: adjectives
-
}
diff --git a/src/2-two/preTagger/methods/transform/nouns/toSingular/_rules.js b/src/2-two/preTagger/methods/transform/nouns/toSingular/_rules.js
index d48110b91..f4754f27e 100644
--- a/src/2-two/preTagger/methods/transform/nouns/toSingular/_rules.js
+++ b/src/2-two/preTagger/methods/transform/nouns/toSingular/_rules.js
@@ -14,6 +14,7 @@ export default [
[/(ouse)s$/i, '$1'],//houses
[/(ose)s$/i, '$1'],//roses
+ [/(..ase)s$/i, '$1'],
[/(..[aeiu]s)es$/i, '$1'],
[/(vert|ind|cort)(ices)$/i, '$1ex'],
[/(matr|append)(ices)$/i, '$1ix'],
diff --git a/src/2-two/preTagger/methods/transform/verbs/conjugate/index.js b/src/2-two/preTagger/methods/transform/verbs/conjugate/index.js
index 9cc362dfc..546dd8dc5 100644
--- a/src/2-two/preTagger/methods/transform/verbs/conjugate/index.js
+++ b/src/2-two/preTagger/methods/transform/verbs/conjugate/index.js
@@ -34,7 +34,15 @@ const conjugate = function (inf, model) {
// drive -> driven (not drove)
let pastPrt = convert(str, toParticiple)
if (pastPrt !== inf && pastPrt !== found.PastTense) {
- found.Participle = pastPrt
+ // ensure it's a known participle
+ let lex = model.one.lexicon || {}
+ if (lex[pastPrt] === 'Participle' || lex[pastPrt] === 'Adjective') {
+ // one exception
+ if (inf === 'play') {
+ pastPrt = 'played'
+ }
+ found.Participle = pastPrt
+ }
}
// put phrasal-verbs back together again
if (particle) {
diff --git a/src/2-two/preTagger/model/_expand/index.js b/src/2-two/preTagger/model/_expand/index.js
index 5c54aa111..972a0e2b1 100644
--- a/src/2-two/preTagger/model/_expand/index.js
+++ b/src/2-two/preTagger/model/_expand/index.js
@@ -1,12 +1,12 @@
import methods from '../../methods/index.js'
import expandIrregulars from './irregulars.js'
-import expandModels from './models.js'
import toPlural from '../../methods/transform/nouns/toPlural/index.js'
import conjugate from '../../methods/transform/verbs/conjugate/index.js'
import { toSuperlative, toComparative } from '../../methods/transform/adjectives/inflect.js'
import toInfinitive from '../../methods/transform/verbs/toInfinitive/index.js'
import models from '../models/index.js'
let tmpModel = {
+ one: { lexicon: {} },
two: { models }
}
@@ -35,7 +35,7 @@ const switchDefaults = {
// 'victoria'
'Person|Place': 'Person',
// 'rusty'
- 'Person|Adj': 'Adjective',
+ 'Person|Adj': 'Comparative',
// 'boxes'
'Plural|Verb': 'Plural', //(these are already derivative)
// 'miles'
@@ -101,6 +101,9 @@ const expandVariable = function (switchWords, model) {
expandVerb(w, lex, true)
expandAdjective(w, lex, model)
}
+ if (name === 'Person|Adj') {
+ expandAdjective(w, lex, model)
+ }
// add infinitives for gerunds
if (name === 'Adj|Gerund' || name === 'Noun|Gerund') {
let inf = toInfinitive(w, tmpModel, 'Gerund')
@@ -128,7 +131,6 @@ const expand = function (model) {
model = expandLexicon(model.one.lexicon, model)
model = addUncountables(model.one.lexicon, model)
model = expandVariable(model.two.switches, model)
- model = expandModels(model)
model = expandIrregulars(model)
return model
}
diff --git a/src/2-two/preTagger/model/_expand/models.js b/src/2-two/preTagger/model/_expand/models.js
deleted file mode 100644
index ac89e1c27..000000000
--- a/src/2-two/preTagger/model/_expand/models.js
+++ /dev/null
@@ -1,38 +0,0 @@
-
-const getWords = function (model, left, right) {
- return Object.entries(model.exceptions).reduce((h, a) => {
- if (left) {
- h[a[0]] = left
- }
- h[a[1]] = right
- return h
- }, {})
-}
-
-
-const expandModels = function (model) {
- let { lexicon } = model.one
- const { toPast, toPresent, toGerund, toSuperlative, toComparative } = model.two.models
- let res = {}
- let words = {}
- // past-tense
- words = getWords(toPast, 'Infinitive', 'PastTense')
- Object.assign(res, words)
- // present-tense
- words = getWords(toPresent, 'Infinitive', 'Verb')
- Object.assign(res, words)
- // gerund-form
- words = getWords(toGerund, 'Infinitive', 'Gerund')
- Object.assign(res, words)
- // superlative
- words = getWords(toSuperlative, 'Adjective', 'Superlative')
- Object.assign(res, words)
- // comparative
- words = getWords(toComparative, 'Adjective', 'Comparative')
- Object.assign(res, words)
-
- model.one.lexicon = Object.assign(res, lexicon)
-
- return model
-}
-export default expandModels
\ No newline at end of file
diff --git a/src/2-two/preTagger/model/clues/adj-past.js b/src/2-two/preTagger/model/clues/adj-past.js
index e651e8385..d6d22d16b 100644
--- a/src/2-two/preTagger/model/clues/adj-past.js
+++ b/src/2-two/preTagger/model/clues/adj-past.js
@@ -32,6 +32,7 @@ const adjPast = {
it: past,//it intoxicated him
as: past,//as requested
for: 'Adjective',//for discounted items
+ more: 'Adjective',//more broken promises
},
afterWords: {
by: past, //damaged by
diff --git a/src/2-two/preTagger/model/irregulars/plurals.js b/src/2-two/preTagger/model/irregulars/plurals.js
index e40f018e7..f41bad638 100644
--- a/src/2-two/preTagger/model/irregulars/plurals.js
+++ b/src/2-two/preTagger/model/irregulars/plurals.js
@@ -109,5 +109,6 @@ export default {
stomach: 'stomachs',
tornado: 'tornados',
tuxedo: 'tuxedos',
+ volcano: 'volcanoes',
}
diff --git a/src/2-two/preTagger/model/lexicon/_data.js b/src/2-two/preTagger/model/lexicon/_data.js
index 7c16dd327..36dffbae6 100644
--- a/src/2-two/preTagger/model/lexicon/_data.js
+++ b/src/2-two/preTagger/model/lexicon/_data.js
@@ -1,68 +1,68 @@
// generated in ./lib/lexicon
export default {
- "Comparative": "true¦better",
+ "Comparative": "true¦bett1f0;arth0ew0in0;er",
"Superlative": "true¦earlier",
"PresentTense": "true¦sounds",
"Condition": "true¦lest,unless",
- "PastTense": "true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",
- "Gerund": "true¦accord0be0go0result0stain0;ing",
- "Expression": "true¦a0Tb0Pc0Nd0Je0Hg0BhWjeez,lTmSnQoKpHshGtFuCvoi0Vw6y0;a4e3i1u0;ck,p;k00p0;ee,pee;ah,p,s;!a,y;ahoo,h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;gh,h0;! 0h,m;huh,oh;here nOsk,ut tut;eesh,hh,it,oo;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;! 0h;h1my go0w1;d,sh;ell;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBeAi8o2u0;h,mph,rra0zzB;h,y;ly1o0;r5y8;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww,xcuse me;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;mon,o0;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh,ye;!a,em,oy;la",
+ "PastTense": "true¦began,came,d1had,lied,mea0sa1we0;nt;id",
+ "Participle": "true¦0:0A;a07b02c00dXeat0fSgQhPoJprov0rHs7t6u4w1;ak0ithdra03o2r1;i03uZ;k0rn,v0;nd1pr05;ergoJoJ;ak0hHo3;e9h7lain,o6p5t4un3w1;o1um;rn;g,k;ol0reT;iRok0;ught,wn;ak0o1ruL;ne,wn;en,wn;ewriOi1uK;dd0s0;ut3ver1;do4se0t1;ak0h2;do2g1;roH;ne;ast0i7;iv0o1roE;ne,tt0;all0loCor1roz0;bi3g2s1;ak0e0;iv0oA;dd0;ove,r1;a6eamt,iv0u1;nk;hos0lu1;ng;e4i3lo2ui1;lt;wn;tt0;at0en,gun;r2w1;ak0ok0;is0;en",
+ "Gerund": "true¦accord0be0doin,go0result0stain0;ing",
+ "Expression": "true¦a0Wb0Sc0Qd0Me0Kg0EhYjeez,lVmUnSoMpJsHtGuDvoi0Yw6y0;a4e3i1u0;ck,p;k03p0;ee,pee;ah,p,s;!a,y;a5h2o1t0;af,f;rd up,w;atsoever,e1o0;a,ops;e,w;hoo,t;gh,h0;! 0h,m;huh,oh;here nQsk,ut tut;h0ic;eesh,hh,it,oo;ff,h1l0ow,sst;ease,s,z;ew,ooey;h1i,mg,o0uch,w,y;h,o,ps;! 0h;h1my go0w1;d,sh;ell;ah,evertheless,o0;!pe;eh,mm;ah,eh,m1ol0;!s;ao,fao;aCeBi9o2u0;h,mph,rra0zzC;h,y;l1o0;r6y9;la,y0;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww,xcuse me;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;mon,o0;ngratulations,wabunga;a2oo1r0tw,ye;avo,r;!ya;h,m; 1h0ka,las,men,rgh,ye;!a,em,h,oy;la",
"Negative": "true¦n0;ever,o0;n,t",
"QuestionWord": "true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",
"Reflexive": "true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",
"Plural": "true¦dick0gre0ones,records;ens",
"Unit|Noun": "true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",
"Value": "true¦a few",
- "Imperative": "true¦come here",
+ "Imperative": "true¦bewa0come he0;re",
"Demonym": "true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",
"Organization": "true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",
- "Possessive": "true¦its,my,none,our0;!s",
- "Noun|Verb": "true¦0:94;1:8F;2:7M;3:8Z;4:99;5:8S;6:7Y;7:6Y;8:8T;9:8C;A:9E;a8Ub80c6Ud65e5Vf58g4Zh4Qi4Ij4Fk4Cl40m3On3Ko3Hp2Hques8Wr1Ss0FtZuXvSwEyDzB;ip,oB;ne,om;awn,e5Uie5N;aLeJhGiEoCrB;ap,e8U;nd0rB;k,ry,sh4Yth;ck,nBpe,re,sh;!d,g;e7IiB;p,sB;k,t1;aBed;r,th0;it,lk,rCsBt3ve,x;h,te;!ehou2raA;aEiDoB;iBm9te,w;ce,d;be,ew,s9;cuum,l3X;pBr6;da5gra5Tlo5P;aOeNhrMiLoJrEuCwiBy5E;n,st;nBrn;e,n70;aDeCiBot,u8;bu5ck44gg0m,p;at,k,nd;ck,de,in,nsBp,v6W;f0i7Z;ll,ne,p,r4Gss,t8CuB;ch,r;ck,de,e,le,me,p,re;e5Cow,u8;ar,e,ll,mp0st,xt;g,lBng1rg70s5x;k,ly;a0Lc0Ge0Dh08i06k04l02m01n00ou7CpUqua6UtIuDwB;ea7HiB;ng,pe,t3;bEit,m,ppCrB;ge,pri2v2J;lBo65;e62y;!je7;aKeJiIoFrCuBy1;dy,ff,mb1;a7DeCiBo55ugg1;ke,ng;am,ss,t3;ckCop,p,rB;e,m;ing,pi1;ck,nk,t3;m,p;ck,ge,in,ke,ll,mp,nd,p1rBte,y;!e,t;aFeed,iElDot,rBur;ay,e4NinBu4;g,k1;a6Dit;ll,n,r7Hte;n,rk;ap,ee1Oow;a69e41i1o4O;eep,iBou3;ce,p,t;ateboa6WiB;!p;de,gnBp,ze;!al;aEeDiCoBuff1;ck,p,re,t,w;ft,p,v0;d,i3K;ck,de,pe,re,ve;aCed,nBrv1Et;se,t2F;l,r3t;aEhedu1o5OrB;aCeBo3L;en,w;pe,t3;le,n,r0O;cBil;k,rifi4;aXeFiEoCuB;b,in,le,n,s5E;a8ck,ll,oBpe,u5;f,t;de,ng,p,s1O;aRcQdo,el,fOgNje7lMmKnJo12pHque8sDturn,vBwa68;eBi1Z;al,r2;er6HoDpe7tCuB;lt,me;!a4N;l6Ert;air,eaBly,o4L;l,t;dezvo2Mt;aBedy;ke,rk;ea2i56;a5Vist0r53;act6Ber1No6EuB;nd,se;a2Uo5S;ch,s5T;c15ge,i2ke,lly,nBpYtY;ge,k;a03eZhXiVlRoLrCsy3uB;mp,n3rcha2sh;aIeGiFoBu48;be,ceDdu4fi1grBje7mi2p,te8;amBe69;!me;ed,ss;ce,de,nt;sBy;er5Rs;cti4i2;iFlDoCp,re,sBw0;e,i5Dt;l,p;iBl;ce,sh;nt,s5A;aCce,e2PuB;g,mp,n6;ce,nBy;!t;ck,le,nBpe,t,vot;!e;a2oB;ne,tograph;ak,eDnCrBt;fu4Lm9;!c2O;!l,r;ckGiFnErtDsCtBu2;ch,eA;s,te;!y;!ic;nt,r;!a6;bje7ff0il,oCrButli3A;b9d0ieA;ze;a48eDoB;d,tB;e,i4;ed,gle7t;aIeGiFoCuB;rd0;ck,d3Cld,nBp,uth,ve;it4VkB;ey;lk,n3Vrr4Tss,x;asu3Fn4CrBss;ge,it;il,nDp,rk3HsCtB;ch,t0;h,k;da5n0oeuv3A;aJeHiFoCuB;mp,st;aCbby,ck,g,oBve;k,t;d,n;cBft,m9nFst;en2k;aBc0He3vH;ch,d,k,p,se;bCcBnd,p,t3un3;e,k;el,o2I;eCiBno3X;ck,ll,ss;el,y;aCo1FuB;i4mp;m,zz;mpHnCr3PssB;ue;cr1Hdex,fluEha1k,se25teBvoi4;nt,rB;e8fa4viB;ew;en4;a7le1Y;aGeEiDoCuB;g,nt;l2Wno21ok,p,r2u2;ghlight,ke,re,t;aBd6lp;d,t;ck,m,ndCrBsh,te;b3Im,ne3Xve8;!le;aIloHossGrDuB;arBe3Un;antee,d;aCiBou2Pumb1;nd,p;de,sp;ip;ss,w;in,me,ng,s,te,ze;aWeTiOlLoHrDuB;ck,el,nBss,zz;c2Wd;aCoBy;st,wn;cBgme,me;tu1V;cDg,il,ld,rB;ce,e20mB;!at;us;aCe1Wip,oBy;at,ck,od,w;g,ke,me,re,sh,vo18;eEgDlCnBre,sh,t,x;an4i1S;e,m,t0;ht,u1K;ld;aCeBn4;d,l;r,tu1G;ce,il,ll,rm,v2L;cho,d6ffe7nJsHxDyeB;!baB;ll;cDerci2hib9pBtra7;eriBo0Q;en4meA;el,han6u2;caBtima5;pe;count0d,vy;aXeQiKoHrCuBye;b,el,mp,plica5;aEeDiCoB;ne,p;ft,nk,p,ve;am,ss;ft,g,in;cCd6ubt,wnloB;ad;k,u09;p,sDt3vB;e,iBor4;de;char6h,liCpB;at3lFu5;ke;al,ba5cFfeElDma16pos9siCtaB;il;gn,re;ay;at,ct;li01rB;ea2;b,ma6n4rBte;e,t;a0Bent0Ah03irc1l00oHrDuB;be,e,rBt;e,l,ve;aDeCoBu0Iy;p,ss,wd;d9ep;ck,ft,sh;at,de,in,lRmKnDpy,re,st,uBv0;gh,nBp1;sZt;ceFdu7fli7glomeGsDtBveL;a7rB;a8ol;eAtru7;ct;ntBrn;ra5;bFfoEmDpB;leBou0Fromi2;meA;a0DeAit,u5;rt;at,iB;ne;lap2oB;r,ur;aCiB;ck,p;im,w;aCeBip;at,ck,er;iEllen6nCrB;ge,m,t;ge,nB;el;n,r;er,re;ke,ll,mp,noe,pDrTsCt3u2ve;se;h,t;!tuB;re;aYeUiTlQoMrEuBypa0U;bb1ck1dgCff0mp,rBst,zz;den,n;et;anHeFiDoadCuB;sh;ca8;be,d6;ge;aBed;ch,k;ch,d;aDg,mb,nCoBtt1x,ycott;k,st,t;d,e;rd,st;aCeBitz,oTur;nd;me;as,d,ke,nd,opsy,te;aDef,lt,nBt;d,ef9;it;r,t;ck,il,l04nFrgDsCtt1;le;e,h;aBe;in;!d,g,k;c01dXge,iWlTnRppOrKsGttEucCwaB;rd;tiB;on;aBempt;ck;k,sB;i8ocia5;te;st;chCmB;our;!iB;ve;eCroa3;ch;al;chBg0sw0;or;aCt0;er;rm;d,m,r;dreDvB;an4;ce;ss;cBe,he,t;eDoB;rd,uA;nt;nt,ss",
- "Actor": "true¦0:44;1:3A;2:4C;3:45;4:4B;a3Rb38c2Fd23e20f1Sg1Ih1Di19journa3Ml16m0Un0Po0Np04qu02rXsGtCunBvAw6yo5;gi,utub0;e7i6o5r1O;m1rk0;nn0t10;atherm1ld0;eterina19ip;c3Wder1I;aoisea0We6herapi3iktok0r5;anscriRo20;chn5st0;i1RoU;aiKcJeIhowHiFki0oDpCt9u6wee5;p0theart;lt1per6r5;f0ge2Y;intenWv3V;aff0ep6r5;ang0eam0;fa12mo12;ecia32okesp2S;l5me3Kn;di0oi3;ng0s5;sy,t0;girl,m1runn0;cretary,rgea3V;hol2OiQreen0Yulpt2;l2nt;a8e5oof0unningA;c5port0searJver2Q;e5ru0V;ptio1W;bbi,pp0;arter5een;back;aMerform0hLlIoEr6sycho5;logi3;actit1Oe9i7o5;duc0fess2gramm0s5;pe12titu2T;est2Lme miniVnce5;!ss;a6si5;de3D;ch0;dcaQet,li5rnst25;c10tic5;al sci5i1;enti3;a5umb0;nn0y5;er,wright;armaci3otograph0ysi0L;i1Nnel24st2tL;ffic0p5rganiz0;er4tometri3;anny,e7o6u5;n,rse;bo2Jvi6;i5phew;ce;aCeBi8o6u5;m6si0B;m5nk,th0;!my;ni6s5;sus,t0;st0;chan0Lrcha2O;gi7k0nag0t5y2;riar5;ch;ci1stra1W;a6e0Wieutena2Jo5;rd,s0;bor0dy,urea1Twy0;dol,llu29n5;s5vestig4;peZt5;a0EruY;air8ero7isto6o5ygie0J;ste29usekE;ri1;!ine;dress0sty19;arden0eDhostBirl15o8rand5uru;fa6m5pa;a,o5;th0;al5d,lf0;ie,k5te16;eep0;wr5;it0;isha,ntlO;aBella,i7ore6r5;eela1Ii0V;m1st0;g7lmm0Fnanci0r5tt0;e5st la1E; marsh1Kfig5m1;ht0;rm0th0;dit2lectri6mcee,x5;amin0cellency;ci1;aEe9i6riv0u5;de,tche1J;eti6re5;ct2;ci1ti1;a8cor4fenc7put6sign0tecDvel5;op0;ee,y;em1;c05l0;d5nc0rling;!dy;aSeRfo,hLlIo8rit7u5;r4stomer representa5;tive;ic;lCm9n6ordin4rpor0Yu5wboy;nciKri0;gressKs6tro5;ll0;tab0Kul11;edi1m5pos0;a04iss5;ion0;onel,um5;ni3;e5own;an0r5;ic,k;a7e5;erle5f;ad0;ir6nce5plC;ll2;m1wE;lebrity,o;det,pt8r5shi0;et6pe5;nt0;ak0;ain;aJeatbox0iHlogg0oyFrCu5;ddhi3ild0rglAsiness5;m1p6w5;om1;ers5;on;an;ar;i6o5;!k0th0;cklay0de,gadi0;!fri5;end;cyc5sL;li3;nk0r5;b0on6te5;nd0;!eX;cUdNgeYnHpostGrDsBt7u5yatullah;nt5th2;!ie;h6t5;endaUorney;ie3le5;te;sisQtron5;aut,om0;chbis6tis5;an,t;hop;le;aly3im4nou7y5;bo5;dy;nc0;er;st;mi6v5;is2;ni6r5;al;str4;at2;or;coun7t5;or,re5;ss;ta5;nt",
- "Uncountable": "true¦0:28;1:2R;2:2F;3:35;4:2W;a2Qb2Hc26d1Xe1Nf1Hg19h12i0Xjewel15k0Vl0Qm0Gn0Eo0Dp04rZsMtBv9w5you guys;a7hisky,i6oo5;d,l;ldlife,ne;rmAt2;ernacul25i5;neg24ol1Ktae;eEhCime off,oBr6un5yranny;a,gst15;aff2Jea1Go6ue nor5;th;o07u5;ble5se1Ot;!shoot1;night,othpas1P;er5und2;e,mod2O;a,nnis;aFcEeDhBilk,kiAo9p8t6u5weepstak0;g1Rnshi2Dshi;ati08e5;am,el;ace2Geci0;ap,cc2meth1;n,ttl0;eep,ingl0o5;pp1r18;lf,na1Cri0;ene0Disso18;d0Sfe4l5nd,t0F;m1St;a8e6ic5;e,ke12;c5ins,laxa0Zsearch;ogni0Yrea0Y;bi0in;aBeAhys9last1So7re5;amble,mis0s5ten1W;en1Vsu0H;l5rk;i24yH; 14i3;a20tr0A;nt5ti0J;i0s;bstetri3vercrowd1xyg04;a5ews;il polXtional securi4;aCeAo7u5;m5s1F;ps;n5o1I;ey,o5;gamy;a5cha0Drchandi1Ftallurgy;sl0t;chine5thema1O; learn1ry;aught2e8i7ogi6u5;ck,g11;c,s1K;ce,ghtn1nguis1JteraTv2;ath2isuTss;ara0CindergartMn5;icke08owled0X;ce,gnor8mp7n5;forma02ter5;net,sta08;atiUort5rov;an19;a8eListo7o5ung2;ckey,mework,ne5rserad9spitali4use arrest;s4y;ry;ir,lib03ppiJs5;h5te;ish;ene9l7o6r5um,ymnas13;aGe03;lf,re;ut5yce0J;en; 5ti3;edit1po5;ol;aQicJlour,o7urni5;tu5;re;od,rgive5uri2wl;ne5;ss;cono0MducaDlectrBn9quipAthi3very8x5;ist6per5;ti0C;en0K;body,o09th1;joy5tertain5;ment;ici4o5;ni3;tiU;eBi8o6raugh5ynas4;ts;pe,wnstai5;rs;abet0s5;hon01repu5;te;b5miX;ut;aEelciDhBivi3l9o5urrency;al,ld w7n5ral,ttJuscoC;fusiIt 5;ed;ar;assi3oth0;es;aos,e5;eNw1;us;d,rP;aAi8lood,read7u5;nt1tt2;er;!th;lliarKs5;on;g5ss;ga5;ge;cLdviKeroHirGmCn7ppeal court,rithmet6spi5thleM;rin;ic;i8y5;o6th1;ing;ne;se;en7n5;es4;ty;ds;craft;bi3d5nau9;yna5;mi3;ce;id,ous5;ti3;cs",
+ "Possessive": "true¦its,my,none,our0thy;!s",
+ "Noun|Verb": "true¦0:9D;1:8N;2:81;3:9I;4:98;5:91;6:84;7:72;8:92;9:8K;A:9N;a93b84c6Xd68e5Yf5Bg52h4Si4Kj4Hk4El42m3Qn3Mo3Jp2Jqu2Ir1Ts0FtZuXvSwEyDzB;ip,oB;ne,om;awn,e5Xie5Q;aLeJhGiEoCrB;ap,e93;nd0rBu8I;k,ry,sh51th;ck,nBpe,re,sh;!d,g;e7MiB;p,sB;k,p0t1;aBed;r,th0;it,lk,rCsBt4ve,x;h,te;!ehou2raA;aEiDoB;iBm9te,w;ce,d;be,ew,s9;cuum,l3Z;pBr6;da5gra5Wlo5S;aOeNhrMiLoJrEuCwiBy5H;n,st;nBrn;e,n74;aDeCiBot,u8;bu5ck46gg0m,p;at,k,nd;ck,de,in,nsBp,v70;f0i88;ll,ne,p,r4Jss,t8LuB;ch,r;ck,de,e,le,me,p,re;e5Fow,u8;ar,e,ll,mp0st,xt;g,lBng1rg75s5x;k,ly;a0Mc0He0Eh09i07k05l03m02n01ou7JpVqua6YtIuDwB;ea7PiB;ng,pe,t4;bEit,m,ppCrB;ge,pri2v2L;lBo69;e66y;!je7;aKeJiIoFrCuBy1;dy,ff,mb1;a7MeCiBo58ugg1;ke,ng;am,ss,t4;ckCop,p,rB;e,m;ing,pi1;ck,nk,t4;m,p;ck,ge,in,ke,lCmp,nd,p1rBte,y;!e,t;k,l;aFeed,iElDot,rBur;ay,e4PinBu3;g,k1;a58it;ll,n,r7Pte;n,rk;ap,ee1Pow;a54e43i1o4Q;eep,iBou4;ce,p,t;ateboa74iB;!p;de,gnBp,ze;!al;aEeDiCoBuff1;ck,p,re,w;ft,p,v0;d,i3M;ck,de,pe,re,ve;aCed,nBrv1Ft;se,t2G;l,r4t;aEhedu1o5RrB;aCeBibb1o3N;en,w;pe,t4;le,n,r0P;cBil;k,rifi3;aXeFiEoCuB;b,in,le,n,s5H;a8ck,ll,oBpe,u5;f,t;de,ng,p,s1P;aRcQdo,el,fOgNje7lMmKnJo13pHque8sDturn,vBwa6G;eBi20;al,r2;er6PoDpe7tCuB;lt,me;!a4Q;l6Mrt;air,eaBly,o4O;l,t;dezvo2Ot;aBedy;ke,rk;ea2i41;a63ist0r57;act6Jer1Oo6MuB;nd,se;a2Wo60;ch,s61;c16ge,i2ke,lly,nBpZtZ;ge,k,t;es5Xiv0;a03eZhXiVlRoLrCsy4uB;mp,n4rcha2sh;aIeGiFoBu4A;be,ceDdu3fi1grBje7mi2p,te8;amBe6G;!me;ed,ss;ce,de,nt;sBy;er5Ys;cti3i2;iFlDoCp,re,sBw0;e,i5Kt;l,p;iBl;ce,sh;nt,s5H;aCce,e2QuB;g,mp,n6;ce,nBy;!t;ck,le,nBpe,t,vot;!e;a2oB;ne,tograph;ak,eDnCrBt;fu4Qm9;!c2P;!l,r;ckGiFnErtDsCtBu2;ch,eA;s,te;!y;!ic;nt,r,se;!a6;bje7ff0il,oCrButli3Cver3W;b9d0ieA;ze;a4DeDoB;d,tB;e,i3;ed,gle7t;aIeGiFoCuB;rd0;ck,d3Eld,nBp,uth,ve;it52kB;ey;lk,n3Zrr50ss,x;asu3Hn4JrBss;ge,it;il,nDp,rk3KsCtB;ch,t0;h,k;da5n0oeuv3C;aJeHiFoCuB;mp,st;aCbby,ck,g,oBve;k,t;d,n;cBft,m9nFst;en2k;aBc0Ie4vH;ch,d,k,p,se;bCcBnd,p,t4un4;e,k;el,o2K;eCiBno44;ck,ll,ss;el,y;aCo1GuB;i3mp;m,zz;mpHnCr3WssB;ue;cr1Idex,fluEha1k,se27teBvoi3;nt,rB;e8fa3viB;ew;en3;a7le20;aGeEiDoCuB;g,nt;l30no23ok,p,r2u2;ghlight,ke,nt,re,t;aBd6lp;d,t;ck,mDndCrBsh,t33;b3Pm,ne44ve8;!le;!m0;aIloHossGrDuB;arBe40n;antee,d;aCiBou2Tumb1;nd,p;de,sp;ip;ss,w;g,in,me,ng,s,te,ze;aWeTiOlLoHrDuB;ck,el,nBss,zz;c32d;aCoBy;st,wn;cBgme,me;tu1W;cDg,il,ld,rB;ce,e23mB;!at;us;aCe0Pip,oBy;at,ck,od,w;g,ke,me,re,sh,vo19;eEgDlCnBre,sh,t,x;an3i0L;e,m,t0;ht,u1L;ld;aCeBn3;d,l;r,tu1H;ce,il,ll,rm,v2R;cho,d6ffe7nJsHxDyeB;!baB;ll;cDerci2hib9pBtra7;eriBo0R;en3meA;el,han6u2;caBtima5;pe;count0d,vy;aXeQiKoHrCuBye;b,el,mp,plica5;aEeDiCoB;ne,p;ft,nk,p,ve;am,ss;ft,g,in;cCd6ubt,wnloB;ad;k,u0A;p,sDt4vB;e,iBor3;de;char6gui2h,liCpB;at4lFu5;ke;al,ba5cFfeElDma1Apos9siCtaB;il;gn,re;ay;at,ct;li02rB;ea2;b,ma6n3rBte;e,t;a0Cent0Bh04irc1l01oIrDuB;be,e,rBt;e,l,ve;aEeDoCuBy;sh;p,ss,wd;d9ep;ck,ft,sh;at,de,in,lRmKnDpy,re,st,uBv0;gh,nBp1;sZt;ceFdu7fli7glomeGsDtBveL;a7rB;a8ol;eAtru7;ct;ntBrn;ra5;bFfoEmDpB;leBou0Iromi2;meA;a0GeAit,u5;rt;at,iB;ne;lap2oB;r,ur;aCiB;ck,p;im,w;aCeBip;at,ck,er;iEllen6nCrB;ge,m,t;ge,nB;el;n,r;er,re;ke,ll,mp,noe,pDrVsCtBu2ve;alog,ch;h,t;!tuB;re;a02eYiWlSoOrFuCyB;pa0Y;bb1ck1dgCff0mp,rBst,zz;den,n;et;anIeGiEoadDuB;i2sh;se;ca8;be,d6;ge;aBed;ch,k;ch,d;aDg,mb,nCoBtt1x,ycott;k,st,t;d,e;rd,st;aDeCiBoWur;nk,tz;nd;me;as,d,ke,nd,opsy,tB;ch,e;aDef,lt,nBt;d,ef9;it;r,t;ck,il,l05nGrDsCtt1;le;e,h;gBk;aBe;in;!d,g,k;c01dXge,iWlTnRppOrKsGttEucCwaB;rd;tiB;on;aBempt;ck;k,sB;i8ocia5;te;st;chCmB;our;!iB;ve;eCroa4;ch;al;chBg0sw0;or;aCt0;er;rm;d,m,r;dreDvB;an3;ce;ss;cBe,he,t;eDoB;rd,uA;nt;nt,ss",
+ "Actor": "true¦0:7E;1:7J;2:6D;3:7I;4:7R;5:7N;6:74;a6Rb66c4Zd4Fe45f3Vg3Eh33i2Xj2Tki2Rl2Mm28n20o1Tp0Wqu0Ur0KsRtKuIvFw9yo7;gi,ut7;h,ub0;aBeAi9o8r7;estl0it0;m2rk0;fe,nn0t2Dza2J;atherm2ld0;ge earn0it0nder0rri1;eter8i7oyG;ll5Up,s43;an,ina2X;n7s0;c6Yder04;aoisea25eAherapi5iktok0o9r7ut1yco6;a7endseMo47;d0mp,nscri0Cvel0;ddl0u1H;a0Rchn8en7na4st0;ag0;i3So0E;aiYcVeShQiNki0mu29oKpHquaGtCu8wee7;p0theart;lt2per8r7;f0ge6viv1;h7inten0Jst5Mvis1;ero,um2;a9ep8r7;ang0eam0;bro2Qc2Rfa2Qmo2Qsi23;ff0tesm2;tt0;ec8ir2Go7;kesp5Du0N;ia5Nt3;l8me6En,rcere7ul;r,ss;di0oi5;n8s7;sy,t0;g0n0;am2ephe1Kow7;girl,m2r2T;cretJnior cit3Jr7;gea4v7;a4it1;hol51i8reen7ulpt1;wr2F;e02on;l1nt;aFeAo9u7;l0nn7;er up,ingF;g44le mod43of0;a53c9fug2Tpo36searRv7;ere4Yolution7;ary;e7luZru25;ptio3X;bbi,dic5Zpp0;arter7e33;back;aZeXhTiSlPoLr9sycho8u7;nk,p36;logi5;aHeEiCo7;dAfess1g8ph4Bs7;pe2Otitu55;en7ramm0;it1y;igy,uc0;est4Rme mini0Xnce7s3I;!ss;a8si7;de4;ch0;ctiti3Dnk0S;dca0Ret,li7pula54rnst46;c2Mtic7;al scie7i2;nti5;a7umb0;nn0y7;er,ma4Pwright;lgrim,one0;a9iloso8otogra8ra7ysi1Z;se;ph0;ntom,rmaci5;r7ssi1X;form0s6;i3Il,nel42r9st1tr7wn;i7on;arYot;ent50i46tn0;ccupa4ffCp9r8ut7;ca5l0E;ac4Mganiz0ig2Jph2;er3t7;i1Nomet7;ri5;ic0spring;aDeBie51o9u7;n,rse7;!r3M;b7mad,vi4Y;le2Yo4G;i7mesis,phew;ce,ghb1;nny,rr3t21;aFeEiBo8u7yst22;m9si19;der3gul,m8n7th0;arEk;!my;ni8s7;f04s0Lt0;on,st0;chan1Unt1rcha4;giAk0n9rtyr,t7y1;e,riar7;ch;ag0iac;ci2stra3L;a8e2Dieutena4o7;rd,s0v0;bor0d8ndlo7ss,urea3Iwy0ym2;rd;!y;d,n7;!s2A;anitor ,e9o8u7;ggl0;gg0urna2W;st0;c6dol,llu3Wmmigra4n7;-lAc1Sfa4habi44nov3s8ve7;nt1stig3;pe0Pt7;a1Hig3ru0O;aw;airGeCistoBo9u7ygie1M;man7nt0sba2J;!ita9;bo,st7usekO;age,e3R;ri2;ir,r7;m8o7;!ine;it;dress0sty2E;aMeJhostHirl28ladi3oDrand8u7;e5ru;cAdaugTfa9m8pa7s6;!re4;a,o7;th0;hi1D;al8d7lf0;!de3C;ie,k7te28;eep0;!wr7;it0;isha,n7;i7tl06;us;mbl0rden0;aFella,iBo8r7;eela2Pie1R;e,re7ster pare4;be1Jm2r7st0;unn0;an31g9lmm19nanci0r7tt0;e7st la2J; marsh2Qfig7m2;ht0;rm0th0;conoFdElectriDm9n8x7;amin0cellency,i2B;emy,trepreneur,vironmenta1K;c9p7;er1loye7;e,r;ee;ci2;it1;mi5;aLeCi9ork,ri8u7we03;de,tche2I;ft0vK;ct3eti8plom2Ire7va;ct1;ci2ti2;aEcor3fencDi0JnBputAs8tectNvel7;op0;ce1He7ign0;rt0;ee,y;iz7;en;em2;c6l0;dAnc0redev9ught7;er7;! ;il;!dy;a06e04fo,hXitizenWlToCrAu7;r3stomer7;! representat7;ive;e3it7;ic;-work0lJmGnAord9rpor1Nu7wboy;n7ri0sin ;ciUte1R;in3;fidantBgressTsAt7;e0Lr7;ibut1o7;ll0;tab14ul1P;!e;edi2m7pos0rade;a0FeRissi7;on0;leag9on8um7;ni5;el;ue;e7own;an0r7;ic,k;!s;aAe8i7um;ld;erle7f;ad0;ir8nce7plGract0;ll1;m2wJ;lebri7o;ty;dCptBr7shi0;e8pe7;nt0;r,t7;ak0;ain;et;aNeMiKlogg0oFrCu7;dd0Gild0rglAsiness7;m2p8w7;om2;ers6;ar;i8o7;!k0th0;cklay0de,gadi0;hemi2oge9y7;!frie7;nd;ym2;an;cyc7sS;li5;atbox0ings;by,nk0r7;b0on8te7;nd0;!e08;c05dXge4nRpMrIsGtBu8yatull7;ah;nt8t7;h1oH;!ie;h9t7;e7orney;nda4;ie5le7;te;sis01tron7;aut,om0;chbis9isto8tis7;an,t;crV;hop;ostAp7;ari7rentiT;ti6;on;le;aAcest1im3nou9y7;bo7;dy;nc0;ly5rc7;hi5;mi9v7;entur0is1;er;ni8r7;al;str3;at1;or;counCquaintanBrobAt7;ivi5or,re7;ss;st;at;ce;ta4;nt",
+ "Adj|Noun": "true¦0:18;a15b0Zc0Od0Me0Hf0Bg0Ah08i06ju05l03mWnUoSpNrJsCt8u5v2w1;atershed,elcome;a1ision0R;gabo4nilla,ria1;b0Ont;ndergr1pstairs;adua0Vou1;nd;a3e1oken,ri0;en,r1;min0rori0U;boo,n;age,e5ilv09lack,o3quat,ta2u1well;bordina0Oper5;b0Endard;ciali0Pl1vereign;e,ve0Z;cret,n1ri0;ior;a3e1outiTubbiL;ar,bBla0Qnt0p1side0V;resenta0Publican;ci0Ish;a4eriodic0otenti0r1;emi2incip0o1;!fession0;er,um;rall4st,tie0O;ff1pposi09v0;ensi0Ii05;aggVov1;el;a6e4in3o1;biVder00r1;al,t0;iature,or;di1tr0G;an,um;le,riA;attIiber0u1;sh;stice,veniN;de0mpressioRn1;cumbe08dividu0no07sta08terim;alf,o1umdrum;bby,melA;enious,old,ra01;a4e2i1luid,ugiZ;ne;llow,m1;aEiJ;ir,t,vo1;riLuriL;l3pZx1;c1ecuSpeU;ess;d1iH;er;arl3e1;mographTrivaN;hiElassSo2rude,unn1;ing;m4n1operaK;creAstitueOtempor2vertab1;le;ary;m2p1;anion,lex;er2u1;ni7;ci0;e5lank,o4r1;i2u1;te;ef;ttom,urgeois;st;cademBd8l4n2r1;ab,ctA;im0tarct9;al;e3terna1;ti1;ve;rt;oles1ult;ce1;nt;ic",
+ "Adj|Past": "true¦0:30;1:2R;2:2U;a2Jb2Dc1Ud1Be15f10gift0h0Xi0Qj0Pknown,l0Mm0Hn0Fo0Cp05qua04rVsEtAu7v5w3;arp0ea3or5;kIth2T;a3e0W;ri0;n3pd1s0;derstood,i3;fi0t0;ar5hreatCr3wi2R;a3ou19;ck0in0pp0;get0ni1N;aHcaGeEhDimCm01oak0pAt6u3;bsid28gge2Ms3;pe3ta1S;ct0nd0;at0e5r3uV;ength3ip0;en0;am0reotyp0;eci3ik0ott0;al20fi0;pIul1;ar0ut;a3c1Jle2t1S;l0t0;r0tt25;t3ut0;is1Jur1;aAe3;c7duc0f1Cg6l1new0qu5s3;pe2t3;or0ri2;e22ir0;ist1Xul1;eiv0o3ycl0;mme09rd0v1V;lli0ti1A;li19;arallel0i0Kl7o6r3ump0;e4o3;ce0Ilo0Hnou1Tpos0te2;fe0Loc8pY;i1Gli0R;a3e19;nn0;c4rgan1Bverlo3;ok0;cupi0;e3ot0;ed0gle2;a5e4ix0o3ut0;di0Vt0G;as0Qlt0;n3rk0;ag0ufact0O;eft,i4o3;ad0st;cens0mit0st0;agg0us0N;mp8n3sol1;br0debt0f6t3volv0;e3ox0F;gr1n3re18;d0si0J;e2l1oX;li0oLrov0;amm10e1o3;ok0r3;ri0E;aNe6i5lavo09oc05r3;a3i0;ct07g0Mm0;niXx0;ar0;duc1l1mbarraKn7quipp0stabliVx3;agger1p3te5;a4e3;ct0rie0S;nd0;ha0QsZ;aJeAi3;gni01miniOre2s3;a7c5grun05t3;o3reBurb0;rt0;iplSou3;nt0rE;bl0;cenVdOf8l7pre6ra5t3velop0;a3ermO;il0;ng0;ss0;ay0ight0;e4o3;rm0;rr0;m3t0;ag0;alcul1eHharg0lGo8r5u3;lt3stomS;iv1;a4owd0u3;sh0;ck0mp0;d0lo9m6n3ok0vX;centr1f4s3troll0;idVolid1;us0;b4pl3;ic1;in0;ur0;assi5os0;lebr1n5r3;ti3;fi0;tralB;a7i6o4roken,urn3;ed,t;il0r0t3und;tl0;as0;k0laIs0;bandon0cJdGffe2lDnBpp9ss7u3ward0;g4thor3;iz0;me3;nt0;o5u3;m0r0;li0re3;ci1;im1ticip1;at0;leg0t3;er0;ct0;ju4o6va3;nc0;st0;ce3knowledg0;pt0;ed",
+ "Singular": "true¦0:5I;1:5G;2:4V;3:4R;4:51;5:56;6:5K;a4Zb4Ic3Ld33e2Vf2Kg2Eh23in1Zj1Yk1Xl1Qm1In1Eo18p0Pqu0Or0DsXtKuFvAw7x r55yo yo;a7ha3N;f3i4Nt0Ey7;! arou37;arAe8o7;cabu4Gl59;gMr7t;di4Wt1T;iety,ni4L;n9p2Yr8s 7;do41s5B;bani1in0;coordinat38der7;estima1to1Zwe3Z; rex,aIeHhFiDoCr9u8v7;! show;m2Mn2rntJto19;agedy,ib7o4A;e,u7;n0ta43;ni1p2rq3J;c,er,m7;etD;ing7ree23;!y;am,mp3D;ct2le6x return;aLcKeIhor4NiHkFoEpin off,tBu9y7;ll7ner4Jst4Q;ab2V;b7i1n26per bowl,rro1U;st3Jtot0;at8ipe2Eo1Grate4Fudent7;! lo0F;i37u1;ft ser4Imeo1D;elet5i7;ll,r3R;b36gn2Rte;ab2Hc7min39;t,urity gu2L;e6ho2W;bbatic0la3Gndwi0Mpi5;av5eBhetor2i8o7;de6om,w;t8v7;erb2A;e,u0;bBc9f7publ2r0Vspi1;er7orm3;e6r0;i7ord label;p2Ft0;a1u43;estion mark,ot2D;aMeJhotocoUiGlEoCr8u7yram1D;ddi3EpCrpo1Hs3G;e9o7;bl3Ws7;pe3Gta1;dic1Pmi1Dp1Oroga3Sss relea1D;p7rt0;py;a7ebisci1;q2Bte;cn2e8g7;!gy;!r;anut,d8r7t0yo1;cen3Hsp3I;al,est0;nop4r8t7;e,hog5;adi10i2S;atme0bj3Dc9pia1rde0thers,utspok5ve7wn3;n,r7;ti0Nview;cu8e7;an;pi3;ar9it8ot7umb3;a2Dhi2P;e,ra1;cot2ra35;aCeAi8o7ur0é0B;nopo4p17rni2Lsq1Qti34uld;c,li10n07s7tt5;chief,si32;d7nu,t0;al,ic;gna1mm0nd15rsupi0te7yf4;ri0;aBegAi9u7;ddi1n7;ch;ght bulb,me,p09ving room; 8e0M;bor14y 7;up;eyno1itt5;el4ourn0;c9dices,itia2Nni25s8tel0Mvert7;eb1K;e28titu1;en2Ki2T;aGeCighBo8u7;man right,s22;me7rmoDsp1Gtb0L;! r7;un; scho0ZriZ;a7i1M;d7v5; start,pho7;ne;ndful,sh brown,v5ze;aAelat0Jlaci3r8u7yp1S;l4y;an7enadi3id;a1Bd slam,ny;df4r7;l2ni1G;aGeti1FiFlEoBr8un7;er0;ee market,i8on7;ti3;ga1;l4ur7;so7;me;ow3u1;eNref4;br2mi4n0Z;conoDffi1Mgg,lecto0Pmbas1BnApidem2s1Wth2ven9x8yel7;id;ampXempl0Lte6;i16t;er1Iterp7;ri7;se;my;eJiCo9r7ump truck;agonf4i7;er,ve thru;c8g1Bi4or,ssi3wn7;side;to0CumenC;aCgniBnn3s8vide7;nd;conte6incen1Bp7tri0Y;osi7;tion;ta0E;le0U;ath9c8f7ni0terre6;ault 03err0;al,im0;!b7;ed;aUeRhKiJlHoBr7;edit c9uc7;ib7;le;ard;efficBke,lAmmuniqJns8pi3rr0t0Uus7yo1;in;erv7uG;atoZ;ic,lO;ie6;er0Li7oth;e6n2;ty,vil wK;aBeqAick5oco9r7;istmas car7ysanthemum;ol;la1;ue;ndeli3racteri7;st2;i8llCr7;e0tifica1;liW;hi3nDpCrAt7ucus;erpi7hedr0;ll7;ar;!bohyd7ri3;ra1;it0;a7e;l,ry;aJeIiop2leGoEreakCu7;nAr7tterf4;g7i0;la7;ry;ny;fa7thro9;st;dy,ro7wl;ugh;mi7;sh;an,l4;nki9r7;!ri3;er;ng;cQdKlGnDppeti1rBs9tt2utop7;sy;ic;ce6pe7;ct;r7sen0;ay;ec8oma4ti8;ly;do1;i5l7;er7y;gy;en; hominBj8van7;tage;ec7;ti7;ve;em;cAe8qui7;tt0;ta1;te;i8ru0;al;de6;nt",
"Person|Noun": "true¦a07b01cYdRePfOgMhJjFkiElDmBolive,p7r4s3trini00v1wa0;ng,rd;an,enus,iol0;a,et;ky,on5umm02;ay,e1o0uby;bin,d,se;ed,x;a2e0ol;aHn0;ny;ge,tM;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma",
- "Pronoun": "true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",
- "Singular": "true¦0:4O;1:4M;2:3Y;3:47;4:42;5:4Q;6:4C;a46b3Qc2Wd2Ie2Cf25g1Zh1Oin1Lj1Kk1Jl1Dm17n15o10p0Iqu0Hr07sUtIuFvAw7x 4B;a7ha2Y;f2i3Vt08y7;! arou2M;arAe8o7;cabu3Ol4F;gKr7;di43t1F;iety,n3S;p2Dr8s 7;do3As4H;bani1in0; rex,aHeGhingFiDoCr9u8v7;! show;m23n4rntIto0Y;agedy,ib7o3K;e,u7;n0ta3D;p4rq2V;c,er,m7;etC;!y;am,mp2Q;ct4le5x return;aIcHeGhor3Wi1kEoDpin off,tBu9y7;ll7n1Rst3Z;ab29;b7nri13per bowl,rro1I;st2Vtot0;at2Mipe1Wo14rate3Oudent7;! lo09;ft ser3Smeo12;elet6i7;ll,rm33;ab0Scurity gu22min2N;e5ho2C;la2Undwi0Fpi6;av6eBhetor4i8o7;de5om,w;t8v7;erb0M;e,u0;bAc9f7publ4r0Mspi1;er7orm2;e5r0;it0ord label;a1u3G;estion mark,ot1V;aMeJhotocoSiGlEoCr8u7yram11;ddi2SpCrpo0Hs2U;e9o7;bl39s7;pe2Uta1;diction,mi0Droga35ss relea0D;p7rt0;py;a7ebisci1;q1Ste;cn4e8g7;!gy;!r;anut,d8r7t0;cen2Usp2V;al,est0;nop3r28t7;e,hog6;bj2Rc8pia1rde0thers,ve7wn2;n,rview;cu8e7;an;pi2;arra2Nit1Oot7umb2;a1Uhi25;aAe9i8o7ur0é07;nopo3pOrni23sq1Bti2L;li0On03tt6;d4nu,t0;mm0nd0Tte7yf3;ri0;aAegBi9u7;ddi1n7;ch;ght bulb,p03ving room;bor0Ty7; up;eyno1itt6;el3ourn0;c8dices,itia27ni1Qse1Vtel0Dvert7;eb17;en25i2E;aGeaDighBo7uman right;me8sp15tb7;ed;! r7;un; scho0Ori7;se;d7v6; start,pho7;ne;ndful,sh brown,v6ze;aAelat09laci2r8u7;l3y;an7enadi2id;a0Yd slam;df3r7;l4n12;aCet11iref3lBol3r8un7;er0;ee market,i8on7;ti2;ga1;ow2u1;br4mi3n0Q;conoBffi1Bgg,lecto0Hmbas11nApidem4s1Lth4ven9x8yel7;id;ampRempl0Dte5;i0Wt;er17;my;eHiCo9r7ump truck;agonf3i7;er,ve thru;c8g12i3or,ssi2wn7;side;to06umenA;aAgni9nn2s8vide7;nd;conte5incen12tri0Q;ta09;le0O;ath,c8f7ni0terre5;ault Zerr0;al,im0;aSeQhJiIlHoBr7;edit c9uc7;ib7;le;ard;efficBke,lAmmuniqIns8pi2rr0t0Pus7yo1;in;erv7uF;atoW;ic,lM;ie5;er0Gie5;ty,vil wJ;aBeqAick6oco9r7;istmas car7ysanthemum;ol;la1;ue;ndeli2racter7;ist4;iliVllBr7;e0tifica1;hi2naDpCrAt7ucus;erpi7hedr0;ll7;ar;!bohyd7ri2;ra1;it0;l,ry;aIeHlemGoEreakCu7;nAr7tterf3;g7i0;la7;ry;ny;fa7thro9;st;dy,ro7wl;ugh;ish;an,l3;nki9r7;!ri2;er;ng;cPdJlFnCppeti1rBs9tt4utop7;sy;ic;ce5pe7;ct;ray;ec8oma3ti8;ly;do1;i6l7;er7y;gy;en; hominBj8van7;tage;ec7;ti7;ve;em;cAe8qui7;tt0;ta1;te;i8ru0;al;de5;nt",
- "Preposition": "true¦-,aPbMcLdKexcept,fIinGmid,notwithstandiWoDpXqua,sCt7u4v2w0;/o,hereSith0;! whHin,oW;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h1ill,oward0;!s;an,r0;ough0u;!oM;ans,ince,o that,uch G;f1n0ut;!to;!f;! 0to;effect,part;or,r0;om;espite,own,u3;hez,irca;ar1e0oBy;sides,tween;ri7;bo8cross,ft7lo6m4propos,round,s1t0;!op;! 0;a whole,long 0;as;id0ong0;!st;ng;er;ut",
+ "Actor|Verb": "true¦aHbDcAd8engineFfool,g6host,judge,m4nerd,p3recruit,s1ushFvolunteFwi0;mp,tneF;cout,p0;ons6y;arent,ilot;a0ime;n,st9;eek,oof,r0uide;aduBoom;elegAoct0;or;ha1o0;ach,nscript,ok;mpion,uffeur;o2u0;lly,tch0;er;ss;d0ffili1rchite2;di1voc0;ate;ct",
+ "MaleName": "true¦0:DO;1:CO;2:D7;3:AJ;4:CK;5:BZ;6:CF;7:D3;8:BS;9:AR;A:DB;B:D4;C:94;D:BM;aC9bB7cA7d98e8If82g7Fh6Si6Cj5Ek52l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Jkaria,n0C;hFkE;!aC7;ar5UeC6;aMoGuE;sEu2LvBJ;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB8ssY;avi3ho4;aNeLiGoEyaBN;jcie87lfgang,odrow,utE;!er;lEnst1;bGey,fredAlE;aAZiE;am,e,s;e97ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Xy;aHiEladimir,ojte7U;cFha0kt67nceErgA5va0;!nt;e3Xt65;lentEn9S;inE;!e;ghBElyss59nax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r59;avAHeEist0oy,um0;ntA9v5Wy;bGd8RmEny;!as,mEoharu;aCCie,y;iCy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8G;!de5;dHrE;en98rE;an97eEy;ll,n96;!dy;dgh,ha,iEnn3req,tsu4R;cAPka;aUcotSeQhMiKoIpenc3tEur1Xylve96zym1;anGeEua85;f0phBCvEwa84;e5Zie;!islaw,l8;lom1uE;leyma6ta;dElCm1yabonga;!dhart74n8;aGeE;lErm0;d1t1;h7Kne,qu11un,wn,y6;aEbasti0k2Cl4Prg4Mth,ymoAE;m5n;!tE;!ie,y;lFmEnti2Gq58ul;!ke5JmDu4;ik,vato7O;aZeVhe9ViRoIuFyE;an,ou;b7DdFf5pe7KssE;!elBJ;ol3Fy;an,bLc62dJel,geIh0landAmHnGry,sFyE;!ce;coe,s;!aA1nD;an,eo;l45r;er78g3n8olfo,riE;go;bDeAQ;cEl8;ar6Ic6HhFkEo;!ey,ie,y;a8Vie;gFid,ubByEza;an1KnZ;g9SiE;na9Os;ch6Qfa4lImHndGpha4sFul,wi2HyE;an,mo6U;h7Jm5;alAXol2U;iACon;f,ph;ent2inE;cy,t1;aJeHhilGier6TrE;aka18eE;m,st1;!ip,lip;dA4rcy,tE;ar,e3Er1Y;b4Hdra73tr6JulE;!o19;ctav3Di3liv3m9Yndrej,rIsFtEum7wB;is,to;aFc7k7m0vE;al5S;ma;i,vM;aMeKiGoEu38;aEel,j5l0ma0r3I;h,m;cFg4i46kEl2R;!au,h7Gola;hEkEolC;olC;al,d,il,ls1vE;il8J;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Gr1;hamFr6KstaE;fa,p54;ed,mI;di0Xe,hamGis2CntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Uik;house,o0Ct1;ae5Oe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2AlSmadXnRrLs1tGuricFxE;imilianAwe9;e,io;eHhFiCtEus,yC;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Ysha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5G;ou;aXeRiPlo39oLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7BrenGuEv81we9;!iE;e,s;!zo;am,oE;n4r;a7Uevi,la4AnIonHst3thaGvE;eEi;nte;bo;!a6Del;!ny;mFnd1rEur54wr54;ry,s;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubCnJrHsE;eFhEi7Wue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Gy;!e5OrE;ey,y;cLdBkJmIrGsFvi3yE;dBs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i70maEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dB;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5K;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4Y;oGrE;aEry;ld,rdA;ffr8rge;brFlBrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymBzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estAie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4FsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydCy29;!lC;!a2HnEov0;e9ie,y;go,iFykC;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l36n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1C;aEie;rdA;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar17b0Vd0Rf0Pgust2hm0Mi0Jja0Il03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndA;!el,ki;ie;ta;aq;as,dIgelAtE;hony,oE;i6nE;!iAy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;aRbeQdBeKfIi,lHonGphZt1vE;aOin;on;so,zo;an,en;onVrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtA;dd2n;ni;dBm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfAri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",
+ "Uncountable": "true¦0:33;1:2J;2:2Q;3:38;4:3H;a31b2Sc2Gd27e1Wf1Sg1Jh1Bi16j13k11l0Wm0Mn0Io0Hp07r03sOtBuran2Qv9w5you gu0J;a7his1Ci6oo5;d,l;ldlife,ne;rmAt2;apor,ernacul2Gi5;neg2Fol1Ttae;eGhEiDoBr6un5yranny;a,gst1G;aff2Vea1Po6ue nor5;th;o0Du5;ble5se1Yt;!shoot0;night,othpas1Zwn5;foGsfoG;me off,n;er5und2;e,mod2Y;a,nnis;aGcFeEhCiBkiAo9p8t6u5weepstak1;g20nshi2Nshi;ati0Ce5;am,el;ace2Qeci1;ap,cc2meth0;n,ttl1;lk;eep,ingl1o5;pp0r1F;lf,na1Jri1;ene1Pisso1F;d0Zfe3l6nd,t5;i0Lurn;m1Zt;abi1e6ic5;e,ke18;c5i04laxa14search;ogni13rea13;aCeBhysAl9o7re5ut3;amble,mis1s5ten25;en24s0O;l5rk;i2Dl0HyK;ast1Wuto; 1Ai4;a28tr0H;nt5rk0ti0O;i1s;bstetri4vercrowd0xyg0B;a7e6owada5utella;ys;ptu1Sws;il poli01tional securi3;aCeAo7u5;m5s1L;ps;n5o1O;ey,o5;gamy;a5cha0Glancholy,rchandi1Ltallurgy;sl1t;chine5g1Ej1Lrs,thema1U; learn0ry;aught2e8i7ogi6u5;ck,g16;c,s1Q;ce,ghtn0nguis1PteratYv2;ath2isXss;ara0GindergartRn5;icke0Cowled12;e5upit2;a5llyfiIwel0K;ns;ce,gnor8mp7n5;forma02ter5;net,sta09;atiUort5rov;an1C;a9e8isto0Do5ung2;ckey,mework,ne6o5rseradiAspitali3use arrest;ky;s3y;adquarteZre;ir,lib03ppiJs5;hi5te;sh;eneAl8o7r5um,ymnas15;a5e03;niWss;lf,re;ut5yce0J;en; 5ti4;edit0po5;ol;aPeel0icHlour,o6urnit5;ure;od,rgive5uri2wl;ness;arEcono0PducaDlectrBn9quipAthi4very8x5;ist6per5;ti0F;en0N;body,o0Cth0;joy5tertain5;ment;ici3o5;ni4;tiW;nings,th;eBi8o6raugh5ynas3;ts;pe,wnstai5;rs;abet1ce,s5;hon03repu5;te;b5miZ;ut;aFelciEhCivi4lAo5urrency;al,ld w8mmenta7n5ral,ttKuscoD;fusiJt 5;ed;ry;ar;assi4oth1;es;aos,e5;eOw0;us;d,rQ;aAi8lood,owl0read7u5;nt0tt2;er;!th;lliarLs5;on;g5ss;ga5;ge;cMdviLeroIirHmDn8ppeal court,r6spi5thleN;rin;ithmet5sen5;ic;i8y5;o6th0;ing;ne;se;en7n5;es3;ty;ds;craft;bi4d5nau9;yna5;mi4;ce;id,ous5;ti4;cs",
+ "Infinitive": "true¦0:8W;1:99;2:9T;3:8G;4:7M;5:9F;6:9X;7:8I;8:9P;9:9G;A:9W;B:9B;C:83;D:8A;E:86;F:8N;G:8B;a8Ib7Xc72d5We4Qf4Dg48h43i3Jj3Gk3El35m2Ynou41o2Rp2Aqu29r1Cs0BtXuSvQwH;aNeMiKors4rH;eIiH;ng,te;ak,st3;d4e7VthH;draw,er;a2d,ep;i2ke,nHrn;d1t;aHie;li9SniAry;nHplift;cov1dIear80found7WlHplug,rav7Jtie,ve8K;eaAo3R;erHo;cut,go,sta9Vval9Jwhelm;aSeQhNoMrHuI;aIeH;mb3;ffi3Lmp3nsH;aDpH;i7oE;pp3ugh4;aIiIrHwaE;eat4i2;nk;aHm9F;ch,se;ck3ilor,keHmp1r80;! paE;a0Gc0Fe0Dh09i07l05mugg3n04o02pZquYtRuJwH;all7GeeHim;p,t4;bLccKffJggeBmmIp2KrH;mouFvi2;ari0on;er,i5;e77umb;li91mIsiHveE;de,st;er9it;aLe83iJrH;ang3eHi2;ng23w;fHng;f4le;gg1rH;t3ve;a41iA;a4KeIit,l6XoH;il,of;ak,nd;lHot70w;icCve;atGeak,i0M;aHi6;m,y;ft,nHt;g,k;aJi5UoIriHun;nk,v67;ot,rt4;ke,rp4tt1;eHll,nd,que7Wv1w;!k,m;aven9ul8C;dd4tis1Dy;a0CeJiIoH;am,ut;d,p4;a07b05c03d02fZgroup,heaYiXlVmUnTpRq3CsNtLup,vH;amp,eIiHo31;sCve;l,rH;e,t;i7rH;ie2ofC;eFiJpo85tHurfa5;o1YrH;a51iDuctu7;de,gn,st;el,hra0lHreseF;a5e6I;d1ew,o05;a4We36o2;a8eFiHoad,y;e2nq3Rve;mbur0nf2Z;r0t;inIleDocus,reAuH;el,rbiA;an5e;aDu5;ei2k7Sla3ToHyc3;gni31nci3up,v1;oot,uH;ff;ct,d,liH;se,ze;tt3viA;aAenGit,o8;aVerTinpoiFlumm1GoSrKuH;b3Tke,niArHt;poEsuH;aFe;eLoH;cJd,fe4HhibCnoIpo0sp1tru6vH;e,i6o55;un5;la3Du7;aGclu6dIf1occupy,sup0FvH;a5TeF;etermi4DiD;aGrtr55sse4A;cei2fo47iAmea8plex,sHva6;eve7iBua6;mp1rHtrol,ve,y;a60t5W;bMccuLmCpKutJverHwe;lap,sHtu6Gu0;ee,h1A;gr4Ynu25pa5;era8i43po0;py,r;ser2ta3S;aLe0SiIoHultiply;leBu69;micInHspla5;ce,g3us;!k;iHke,na9;m,nta3L;aOeKiHo0u3B;e,ke,ng1quHv4;eHi6C;fy;aJnHss4;d,gH;th4;rn,ve;ng29u1H;eep,nH;e3Xow;o39uH;gg3xtaH;po0;gno7mUnHrk;cSdQfPgeBhOitia8ju7q17sMtJun5ZvH;a6eHo0W;nt,rt,st;erIimi5WoxiOrH;odu5u6;aDn,pr01ru5X;iBpi7tHu7;il,ruD;abCibC;eBo31u0;iHul9;ca8;i8lu6;b5Imer0pH;aKer4Fin9ly,oIrH;e2Xis5Vo2;rt,se,veH;riA;le,rt;aKeJiHoiBuE;de,jaHnd1;ck;ar,iQ;mp1ng,pp4rang58ve;ath1et,i2le1XoKrH;aIeHow;et;b,pp3ze;!ve4W;aSer3Ri5ElRorLrIuH;lf3Zndrai0r3V;eIiHolic;ght4;e0Nsh4;b3JeKfeCgIsH;a32ee;eHi2;!t;clo0go,shHwa4M;ad35;ee,i2V;lt1st4;a0KdCl0Im0CnUquip,rTsStGvQxH;a20cNeEhMiLpItHu6;ing0Uol;eIi7lHo0un9;a1VoC;ct,di8l;st,t;a3oE;e2RlH;a0Wu6;alua8oH;ke,l2;chew,pou0tab12;a0u4J;aXcUdSfRgPhan5joy,lOqNrMsuLtJvH;e0UisH;a9i4O;er,i5rH;a1HenGuB;e,re;iGol;ui7;ar9iB;a9eHra2ulf;nd1;or5;ang1oHu7;r0w;irc3lo0ou0BrIuH;mb1;oaGy42;b3ct;bJer9pH;hasiHow1;ze;a0Rody,rH;a5oiH;d1l;ap0eDuH;ci3Qde;rHt;ma0Ln;a0Le01iJo,rHwind3;aw,ed9oH;wn;agno0e,ff1g,mi2AsKvH;eHul9;rHst;ge,t;ab3bTcOlod9mant3pMru3JsLtH;iHoEu2X;lIngH;uiA;!l;ol2ua6;eHla5o0ro2;n0r0;a2Oe2XlJoHu0L;uHv1;ra9;aHo0;im;a3Bur0;af4bXcRduDep4fQliPmMnKpJra1WsiBtaGvH;eHol2;lop;aEiDlo7oE;oHy;te,un5;eIoH;liA;an;mCv1;a5i07o03raud,y;ei2iLla7oJrH;ee,yH;!pt;de,mHup3;missi2Ypo0;de,ma8ph1;aIrief,uH;g,nk;rk;mp4rk4uF;a09ea0h06i05l04oIrHurta1B;a2ea8ipp3;ales5e01habCinci6ll00mYnHrro6;cVdSfOju7no8qu1sLtJvH;eHin5;ne,r9;aHin27ribu8;in;er2iIoli29pi7titu8uH;lt;d1st;eJiIoHroFu0;rm;de,gu7rm;ss;eIoH;ne;mn,n0;eHlu6ur;al,i2;buBe,men5pH;e8i3ly;eDi6u6;r5xiB;ean0iT;rcumveFte;eIirp,oH;o0p;riAw;ncHre4t1ulk;el;aZeTi6lRoPrKuH;iIrHy;st,y;ld;aKeaJiIoad4;en;ng;stfeLtT;ke;il,l0Ymba0TrHth1;ne,rL;eHow;ed;!come,gLha2liKqueaJstItrHwild1;ay;ow;th;e2tt3;in,ui3;bysCckfi7ff3tH;he;b15c0Rd0Iff0Ggree,l0Cm09n03ppZrXsQttNuLvIwaC;it;eEoH;id;rt;gHto0X;meF;aGeBraD;ct;ch;pi7sItoH;niA;aJeHi03u7;mb3rt,ss;le;il;re;g0Gi0ou0rH;an9i2;eaJly,oiFrH;ai0o2;nt;r,se;aLi0FnItH;icipa8;eIoHul;un5y;al;ly0;aIu0;se;lga07ze;iJlH;e9oHu6;t,w;gn;ix,oH;rd;a02jMmiJoIsoH;rb;pt,rn;niHt;st1;er;ouIuB;st;rn;cKhie2knowled9quiHtiva8;es5re;ce;ge;ePliNoJrIusH;e,tom;ue;mHst;moIpH;any,liA;da8;ma8;te;pt;andNet,i6oJsH;coJol2;ve;liArt,uH;nd;sh;de;on",
+ "Adjective": "true¦0:A7;1:BH;2:A4;3:B7;4:AZ;5:9Y;6:7W;7:AK;8:AC;9:BF;A:79;B:AN;C:B1;D:B6;E:9N;a9Rb94c87d7Oe72f6Ig6Ah5Xi4Uj4Tk4Ql4Fm3Zn3Oo35p2Oquart7Ir2Ds1Dt14uSvOwFye29;aMeKhIiHoF;man6oFrth79u10;dA2zy;despreAQn w8Xs7Y;acked1HoleF;!sa7;ather1ReFll o6Uste1D;!k6;nt1Jst65te5;aHeGiFola5P;bBJce versa,gi3Kle;ng62rsa5N;ca1gBHluAK;lt0PnLpHrGsFttermoBA;ef99u4;b8Wge1; Hb31pGsFtiA6;ca7et,ide d4O;er,i7X;f4Yto da3;a0Fbecom2c0Bd04e02f01gu1XheaB5iXkn4LmUnTopp06pRrNsJtHus0wF;aFiel3I;nt0rra0P;app0eXoF;ld,uS;eHi36o56pGuF;perv06spect2;e1ok9D;en,ttl0;eFu6;cogn06gul2QlGqu0YsF;erv0olv0;at0ent2;aFrecede0E;id,rallel0;am0otic0;aFet;rri0tF;ch0;nFq25vers4;sur0terFv0O;eFrupt0;st0;air,inish0orese8X;mploy0nd2v8WxpF;ect0lain0;eHisFocume01ue;clFput0;os0;cid0rF;!a8HcovAha88ly2nea85privileg0sMwF;aFei97;tAy;hGircumcFonvinc2;is0;aFeck0;lleng0rt0;b1Zppeal2ssum2tteGuthorF;iz0;nd0;i46ra;aLeIhoHip 24oGrF;anspare1encha1i3;gethAleA2p notch,rpB;rny,ugh69;ena82mpGrF;r45tia5;eCo8F;leFst4H;nt0;a0Dc09e07h06i04ki03l01mug,nobbi4SoXpSqueami4StKuFymb8T;bHccin9i generis,pFr6;erFre7D;! dupAb,vi6R;du0li7Bp6AsFurb79;eq8Ztanda9M;aLeKi15o2NrGubboFy4L;rn;aightGin59ungF; o2K; fFfF;or7J;adfa9Dri7;lwa66tu7Q;arIeHirGlendBot Fry;on;it0;c3Ke1O;k6se; call0lub7mbAphistic13rHuFviT;ndFth18;proof;dBry;e5SipF;pe5shod;ll0n d7G;g2EnF;ceEg7istA;am3NeA;co1Wem6lfFn61re8; suf4Qi3Y;aGholFient36;ar6;rlFth2;et;cr0me,tisfac74;aOeIheumatoBiGoF;bu8Ott75y4;ghtFv4;-w2f6M;cJdu8ElInown0pro5ZsGtF;ard0;is40oF;lu3na1;e1Puc3Y;alcit8Me1ondi3;bBci4mpa1;aReOicayu8laNopuli8ErGuF;bl7Injabi,zzl0;eKiIoF;b7KfGmi42pFxi2I;er,ort7Q;a8uD;maFor,sti8va3;!ry;ciDexist2ma28paB;cBid;ac2Unt 3ErFti3;fe9ma3UtFv7M;!i3T;i2UrFss7H;anoBtF;-5OiF;al,s5M;bSffQkPld OnMrLthAutKverF;!aIbMdHhGni6Vseas,t,wF;ei6Urou6U;a5Te70;ue;ll;do1Der,si60;d3Kg27otu5P; bFbFe on o8go2li8;oa7Q;fashion0school;!ay; gua7NbFha5Kli8;eat;eHligGsF;ce8er0Qo19;at0;diFse;a1e1;aOeNiMoGuF;anc0de; moEnHrthFt6L;!eFwe7B;a7Arn;chaGdescri78prof2UsF;top;la1;ght6;arby,cessa5ighbor6xt;k0usiat2v4;aPeNiLoHuF;dIltiF;facet0p7;deHlGnFot,rbBst;ochro4Pth6;dy;rn,st;ddle ag0nF;dblYi;agAdiocEga,nac2rFtropolit4I;e,ry;cIgenta,inHj0Ekeshift,mmGnFri4Hscu5Tver17;da55y;ali4Eo4M;!stream;abEho;aOeLiIoFumber2;ngFuti1P;sta3MtF;erm,i4A;ghtGteraF;l,ry,te;heart0wei5G;ft-w2gFssAth4;al,eFi0L;nda5;nguBps0te6;apGind6nF;ow2;ut;itte5uniV;ce co0Ggno6Ell0Bm03nHpso 2PrF;a3releF;va1; YaXcoVdQePfOgrNhibi4Ji04nMoLsHtFvalu5E;a9eF;nDrdepe2F;a8iGolFuboI;ub7ve1;de,gF;nifica1;rdi5F;a3er;own;eriHiKluenUreq5A;pt,rt;eHiGoFul1L;or;e,re9;fiFpe22termi57;ni3;mpFnsideCrre9;le3;ccuCdeq57ne,ppr4D;fFsitu,vitro;ro1;mJpF;arHeGl12oFropA;li3r0Y;nd2rfe9;ti4;aGeFi15;d45nD;tuE;egGiF;c0VteC;al,iF;tiF;ma3;ld;aOelNiLoFuma8;a5meInHrrGsFur6;ti7;if47;e51o3O; ma39sF;ick;ghfalut2BspF;an42;liZpf2W;i5llow0ndGrdFtL; 04coEwork2;sy,y;aKener3Xiga34lob4oJraGuF;il1Jng ho;cGtF;ef2Pis;ef2O;ld34od;iFuc28;nf2L;aVeSiQlOoJrF;aGeFil6ug4;q3Xtf2I;gFnt3M;i7ra1;lk10oHrF; keeps,eFge0SmAtu3Vwa4G;go2i27s3L;liF;sh;ag4Gowe5uF;e1or3Z;e5nF;al,i3;d Gmini8rF;ti7ve1;up;bl0lDmili0Sr Fux;oFreach2;ff;aXfVlTmQnOqu4rMthere4veryday,xF;a9em3YpIquisi3traHuF;be44lF;ta1;!va2I;edRlF;icF;it;e9stF;whi7; Fough,tiE;rou3sui3;erGiF;ne1;ge1;dFe27oq30;er6;ficF;ie1;gAsF;t,ygo2;er;aWeMiHoGrFue;ea5owY;ci7mina1ne,r2Yt2ubQ;dact2Gfficult,m,sGverF;ge1se;creGePjoi1paCtF;a1in9;et,te; Nadp0UceMfiLgeneCliJmuEpeIreli9sGvoF;id,ut;pFtitu3ul1I;eCoF;nde1;ca3ghF;tf10;a1ni3;as0;facto;i6ngero0G;ar0Ae07h06i05l04oOrIuF;rmudgeon6stoma5teF;sy;ly;aIeHu1CystalF; cleFli8;ar;epy;fFv14z0;ty;erTgSloRmOnGrpoCunterclUveFy;rt;cLdJgr1YjIsHtrF;aFi3;dic0Vry;eq1Vta1;oi1ug4;esceFuM;nd2;a1NiD;atoDmensuCpF;ass1QulF;so5;ni4ss4;e1niza1;ci1H;ockwiD;rcumspe9vil;ee5intzy;leGrtaF;in;ba3;diac,efZ;aZePiLliJoGrFuck nak0;and new,eathtak2isk,on21;gGldface,naF; fi04fi04;us;nd,tF;he;gGpartisFzarE;an;tiF;me;autifNhiMlKnGsFyoM;iVtsell2;eGiFt;gn;aFfi04;th;at0oF;v0w;nd;ul;ckwards,rF;e,rT; priori,b13c0Zd0Tf0Ng0Ihe0Hl09mp7nt06p00rTsQttracti0MuLvIwF;aGkF;wa1B;ke,re;ant garGeraF;ge;de;diIsteEtF;heFoimmu8;nt07;re;to5;hGlFtu3;eep;en;bitJchiv4roItF;iFsy;cula3fiF;ci4;ga1;ra5;ry;pFt;aHetiz2rF;oprF;ia3;ll2re1;ing;iquFsy;at0e;ed;cohKiJkaHl,oGriFterX;ght;ne,of;li8;ne;ke,ve;olF;ic;ad;ain07ed,gressiIi7rF;eeF;ab7;le;ve;fGraB;id;ectGlF;ue1;ioF;na3; JaIeGvF;erD;pt,qF;ua3;ma1;hoc,infinitum;cuCquiGtu4u3;al;esce1;ra3;erSje9lPoNrKsGuF;nda1;e1olu3trF;a9uD;se;te;eaGuF;pt;st;aFve;rd;aFe;ze;ct;ra1;nt",
+ "Pronoun": "true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;e,m,y;!l,t;e0im;!'s",
+ "Preposition": "true¦-,aPbMcLdKexcept,fIinGmid,notwithstandiWoDpXqua,sCt7u4v2w0;/o,hereSith0;! whHin,oW;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h1ill,oward0;!s;an,ereby,r0;ough0u;!oM;ans,ince,o that,uch G;f1n0ut;!to;!f;! 0to;effect,part;or,r0;om;espite,own,u3;hez,irca;ar1e0oBy;sides,tween;ri7;bo8cross,ft7lo6m4propos,round,s1t0;!op;! 0;a whole,long 0;as;id0ong0;!st;ng;er;ut",
"SportsTeam": "true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",
"Unit": "true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s",
- "Adj|Noun": "true¦0:13;1:1A;a13b0Xc0Mde0Le0Gf0Ag09h08i06ju05l03mXnVoTpOrKsDt9u6v3w2;atershed,elcome;a2ision0P;gabo5nilla,ria2;b0Mnt;ndergr2pstairs;adua0Tou2;nd;a4e2oken,ri0;en,r2;min0rori0S;boo,n;e6ilv08o4quat,ta3u2well;bordina0Mper6;b0Cndard;ciali0Nl2vereign;e,ve1;cret,n2ri0;ior;a4e2outiSubbiL;ar,bCla0Mnt0p2side1;resenta0Lublican;ci0Gsh;a5eriodic0otenti0r2;emi3incip0o2;!fession0;er,um;rall5st,tie1;ff2pposi07v0;ensi0Ei03;aggTov2;el;aUe5in4o2;biTderYr2;al,t0;iature,or;di2tr0C;an,um;attIiber0u2;sh;stice,veniM;de0mpressioQn2;cumbe1dividu0no04sta1;alf,omelBumdrum;enious,old,raZ;a5e3i2luid;ne;llow,m2;aEiJ;ir,t,vo2;riLuriL;l4pXx2;c2ecuQpeS;ess;d2iH;er;mographSrivaM;hiFlassRo3rude,unn2;ing;m5n2operaJ;creBstitue1tempor3vertab2;le;ary;m3p2;anion,lex;er3u2;ni8;ci0;e6lank,o5r2;i3u2;te;ef;ttom,urgeois;st;cademAd7l3nim0rab;al;e4terna2;ti2;ve;rt;oles2ult;ce1;nt;ic",
- "Noun|Gerund": "true¦0:26;1:25;2:1W;3:1I;4:1Y;5:1O;a25b1Oc1Cd17en15f0Zg0Xh0Ui0Sjog20k0Ql0Mm0Jn0Ho0Dp06ques09rXsHtCuAvolunt16w6yEzo2;a8ed5i3or7r6;ap1Oest1Ci1;ki0r1O;i1r2s1Utc1U;nder6pri23;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",
- "PhrasalVerb": "true¦0:93;1:97;2:8I;3:8W;4:8B;5:84;6:86;7:99;8:91;9:8H;A:8Y;B:8S;C:8V;D:8T;E:71;F:98;G:8Z;H:82;I:7I;J:7A;K:4H;a9Hb7Wc6Td6Ne6Lf5Jg52h4Diron0j49k42l3Gm33n30o2Yp2Equiet Hr1Zs0Lt00uYvacuu6SwOyammerBzL;ero Dip MonL;e0k0;by,ov9up;aReNhMiLor0Nrit1B;mp0n3Hpe0r5s5;ackAeel Di0U;aMiLn35;gh 3Yrd0;n Dr L;do1in,oJ;it 7Bk5lk Mrm 6Bsh Lt85v61;aw3do1o7up;aw3in,oC;rgeBsL;e 2herE;a01eZhWiSoRrNuLypQ;ckErn L;do1in,oJup;aMiLot0y 32;ckl81p F;ck HdL;e 60;n7Yp 3Gs5L;ck NdMe Lghten 6me0p o0Tre0;aw3ba4do1in,up;e Iy 2;by,oG;ink Mrow L;aw3ba4in,up;ba4ov9up;aLe 79ll64;m 2r 5O;ckBke Mlk L;ov9shit,u49;aLba4do1in,leave,o67up;ba4ft9pa6Bw3;a0Xc0Ve0Oh0Ki0Hl0Bm0An09o08p03quar5ItRuPwL;earNiL;ngMtch L;aw3ba4o8M; by;cLi6Dm 2ss0;k 66;aTeSiRoPrMuL;cKd36;aigh2Eet76iL;ke 7Tng L;al6Zup;p Lrm2G;by,in,oG;nKr 2tc4O;p F;cKmp0nd MrLveAy 2P;e Ht 2M;ba4do1up;arKeOiNlMrLurB;ead0ingBuc5;a49it 6I;c5ll o3Dn 2;ak Fe73ll0;aKber 2rt0und like;ap 5Wow Duggl5;ash 6Ooke0;eep OiLow 6;cMp L;o6Eup;e 69;in,oL;ff,v9;de1Agn 4OnLt 6Hz5;gLkE; al6Ble0;aNoLu5X;ot Lut0w 7N;aw3ba4f48oC;cKdeEk6FveA;e Qll1Ond Prv5tL; Ltl5K;do1foMin,o7upL;!on;ot,r60;aw3ba4do1in,o4Wup;oCto;al67out0rL;ap66ew 6K;ilAv5;aYeViToPuL;b 5Zle0n Lstl5;aMba4do1inLo2Jth4Ou5Q;!to;c2Xr8w3;ll Not MuL;g3IndA;a2Wf3Po7;ar8in,o7up;ng 69p oLs5;ff,p19;aLelAinEnt0;c6Id L;o3Oup;cKt0;a00eZiXlUoRrPsyc35uL;ll Nn5Lt L;aLba4do1in,oJto48up;pa4Ew3;a3Kdo1in,o22to46up;attleBess LiOop 2;ah2Fon;iMp Lr50u1Hwer 6O;do1in,o6Oup;nt0;aMuL;gEmp 6;ce u21y 6E;ck Lg0le 4Bn 6p5C;oJup;el 5OncilE;c54ir 3An0ss NtMy L;ba4oG; Hc2R;aw3ba4in,oJ;pLw4Z;e4Yt D;aMerd0oL;dAt54;il Hrrow H;aUeRiQoMuL;ddl5ll I;cKnkeyNp 6uthAve L;aLdo1in,o4Mup;l4Ow3; wi4L;ss0x 2;asur5e3TlMss L;a21up;t 6;ke Mn 6rLs2Ax0;k 6ryA;do,fun,oCsure,up;a03eWiRoMuL;ck0st I;aOc4Gg NoLse0;k Lse4E;aft9ba4do1forw38in57o10u47;in,oJ;d 6;e OghtNnMsLve 01;ten F;e 2k 2; 2e47;ar8do1in;aNt MvelL; oC;do1go,in,o7up;nEve L;in,oL;pLut;en;c5p 2sh MtchBughAy L;do1o5A;in4Qo7;eNick Mnock L;do1oCup;oCup;eMy L;in,up;l Ip L;aw3ba4do1f05in,oJto,up;aNoMuL;ic5mpE;ke3Tt H;c44zz 2;a02eXiUoQuL;nMrrLsh 6;y 2;keMt L;ar8do1;r H;lLneErse3L;d Le 2;ba4dLfast,o25up;ear,o1;de Mt L;ba4on,up;aw3o7;aLlp0;d Nl Ir Lt 2;fLof;rom;f11in,o1WuX;cKm 2nMsh0ve Lz2Q;at,it,to;d Mg LkerQ;do1in,o2Uup;do1in,oL;ut,v9;k 2;aZeUive Sloss IoNrMunL; f0S;ab hold,in44ow 2V; Lof 2J;aNb1Nit,oMr8th1JuL;nd9;ff,n,v9;bo7ft9hQw3;aw3bLdo1in,oJrise,up,w3;a4ir2I;ar 6ek0t L;aLb1Gdo1in,o1Dr8up;cMhLl2Hr8t,w3;ead;ross;d aLng 2;bo7;a0Fe08iZlVoRrNuL;ck Le2P;ar8up;eMighten LownBy 2;aw3oG;eLshe29; 2z5;g 2lNol Lrk I;aLwi22;bo7r8;d 6low 2;aMeLip0;sh0;g 6ke0mLrLtten H;e F;gSlQnOrMsLzzle0;h F;e Lm 2;aw3ba4up;d0isL;h 2;e Ll 1V;aw3fQin,o7;ht ba4ure0;eQnMsL;s 2;cNd L;fLoG;or;e D;d06l 2;cPll Lrm0t1I;aNbMdo1in,oLsho0Gth0Avictim;ff,ut,v9;a4ehi2P;pa0D;e L;do1oGup;at Ldge0nd 13y5;in,o7up;aPi1IoOrL;aMess 6op L;aw3b04in,oC;gBwB; Iubl1C;m 2;a0Bh06l03oPrMut L;aw3ba4do1oCup;ackBeep MoLy0;ss Dwd0;by,do1in,o0Vup;me OoMuntL; o2B;k 6l L;do1oG;aSbRforPin,oOtLu0P;hMoLrue;geth9;rough;ff,n,ut,v9;th,wL;ard;a4y;paLr8w3;rt;eaMose L;in,oCup;n 6r F;aOeMiL;ll0pE;ck Der Lw F;on,up;t 2;lSncel0rPsNtch MveE; in;o1Oup;h Dt L;doubt,oG;ry MvL;e 09;aw3oJ;l Lm H;aMba4do1oJup;ff,n,ut;r8w3;a0We0NiteAl0Go05rRuL;bblOckl06il0Elk 6ndl06rMsLtNy FzzA;t 01;n 0IsL;t D;e I;ov9;anXeaViMush L;oGup;ghRng L;aOba4do1forNin,oMuL;nd9p;n,ut;th;bo7lLr8w3;ong;teL;n 2;k L;do1in,o7up;ch0;arUg 6iSn5oQrOssNttlMunce Lx D;aw3ba4;e 6; ar8;e H;do1;k Dt 2;e 2;l 6;do1up;d 2;aQeed0oLurt0;cNw L;aw3ba4do1o7up;ck;k L;in,oC;ck0nk0stA; oRaOef 2lt0nd L;do1ov9up;er;up;r Mt L;do1in,oCup;do1o7;ff,nL;to;ck Qil0nNrgMsL;h D;ainBe D;g DkB; on;in,o7;aw3do1in,oCup;ff,ut;ay;ct FdRir0sk NuctionA; oG;ff;ar8o7;ouL;nd; o7;d L;do1oLup;ff,n;wn;o7up;ut",
+ "PhrasalVerb": "true¦0:92;1:96;2:8H;3:8V;4:8A;5:83;6:85;7:98;8:90;9:8G;A:8X;B:8R;C:8U;D:8S;E:70;F:97;G:8Y;H:81;I:7H;J:79;K:4G;a9Gb7Vc6Sd6Me6Kf5Ig51h4Ciron0j48k41l3Fm32n2Zo2Xp2Dquiet Hr1Ys0Lt00uYvacuu6RwOyammerBzL;ero Dip MonL;e0k0;by,ov9up;aReNhMiLor0Nrit1A;mp0n3Gpe0r5s5;ackAeel Di0T;aMiLn34;gh 3Xrd0;n Dr L;do1in,oJ;it 7Ak5lk Mrm 6Ash Lt84v60;aw3do1o7up;aw3in,oC;rgeBsL;e 2herE;a01eZhWiSoRrNuLypQ;ckErn L;do1in,oJup;aMiLot0y 31;ckl80p F;ck HdL;e 5Z;n7Xp 3Fs5K;ck NdMe Lghten 6me0p o0Sre0;aw3ba4do1in,up;e Iy 2;by,oG;ink Mrow L;aw3ba4in,up;ba4ov9up;aLe 78ll63;m 2r 5N;ckBke Mlk L;ov9shit,u48;aLba4do1in,leave,o66up;ba4ft9pa6Aw3;a0Wc0Ue0Nh0Ji0Gl0Am09n08o07p02quar5HtRuPwL;earNiL;ngMtch L;aw3ba4o8L; by;cLi6Cm 2ss0;k 65;aSeRiQoOrLud36;aigh2Eet76iL;ke 7Tng L;al6Zup;p Lrm2G;by,in,oG;cKnKr 2tc4O;p F;cKmp0nd MrLveAy 2P;e Ht 2M;ba4do1up;arKeOiNlMrLurB;ead0ingBuc5;a49it 6I;c5ll o3Dn 2;ak Fe73ll0;aKber 2rt0und like;ap 5Wow Duggl5;ash 6Ooke0;eep OiLow 6;cMp L;o6Eup;e 69;in,oL;ff,v9;de1Agn 4OnLt 6Hz5;gLkE; al6Ble0;aNoLu5X;ot Lut0w 7N;aw3ba4f48oC;cKdeEk6FveA;e Qll1Ond Prv5tL; Ltl5K;do1foMin,o7upL;!on;ot,r60;aw3ba4do1in,o4Wup;oCto;al67out0rL;ap66ew 6K;ilAv5;aYeViToPuL;b 5Zle0n Lstl5;aMba4do1inLo2Jth4Ou5Q;!to;c2Xr8w3;ll Not MuL;g3IndA;a2Wf3Po7;ar8in,o7up;ng 69p oLs5;ff,p19;aLelAinEnt0;c6Id L;o3Oup;cKt0;a00eZiXlUoRrPsyc35uL;ll Nn5Lt L;aLba4do1in,oJto48up;pa4Ew3;a3Kdo1in,o22to46up;attleBess LiOop 2;ah2Fon;iMp Lr50u1Hwer 6O;do1in,o6Oup;nt0;aMuL;gEmp 6;ce u21y 6E;ck Lg0le 4Bn 6p5C;oJup;el 5OncilE;c54ir 3An0ss NtMy L;ba4oG; Hc2R;aw3ba4in,oJ;pLw4Z;e4Yt D;aMerd0oL;dAt54;il Hrrow H;aUeRiQoMuL;ddl5ll I;cKnkeyNp 6uthAve L;aLdo1in,o4Mup;l4Ow3; wi4L;ss0x 2;asur5e3TlMss L;a21up;t 6;ke Mn 6rLs2Ax0;k 6ryA;do,fun,oCsure,up;a03eWiRoMuL;ck0st I;aOc4Gg NoLse0;k Lse4E;aft9ba4do1forw38in57o10u47;in,oJ;d 6;e OghtNnMsLve 01;ten F;e 2k 2; 2e47;ar8do1in;aNt MvelL; oC;do1go,in,o7up;nEve L;in,oL;pLut;en;c5p 2sh MtchBughAy L;do1o5A;in4Qo7;eNick Mnock L;do1oCup;oCup;eMy L;in,up;l Ip L;aw3ba4do1f05in,oJto,up;aNoMuL;ic5mpE;ke3Tt H;c44zz 2;a02eXiUoQuL;nMrrLsh 6;y 2;keMt L;ar8do1;r H;lLneErse3L;d Le 2;ba4dLfast,o25up;ear,o1;de Mt L;ba4on,up;aw3o7;aLlp0;d Nl Ir Lt 2;fLof;rom;f11in,o1WuX;cKm 2nMsh0ve Lz2Q;at,it,to;d Mg LkerQ;do1in,o2Uup;do1in,oL;ut,v9;k 2;aZeUive Sloss IoNrMunL; f0S;ab hold,in44ow 2V; Lof 2J;aNb1Nit,oMr8th1JuL;nd9;ff,n,v9;bo7ft9hQw3;aw3bLdo1in,oJrise,up,w3;a4ir2I;ar 6ek0t L;aLb1Gdo1in,o1Dr8up;cMhLl2Hr8t,w3;ead;ross;d aLng 2;bo7;a0Fe08iZlVoRrNuL;ck Le2P;ar8up;eMighten LownBy 2;aw3oG;eLshe29; 2z5;g 2lNol Lrk I;aLwi22;bo7r8;d 6low 2;aMeLip0;sh0;g 6ke0mLrLtten H;e F;gSlQnOrMsLzzle0;h F;e Lm 2;aw3ba4up;d0isL;h 2;e Ll 1V;aw3fQin,o7;ht ba4ure0;eQnMsL;s 2;cNd L;fLoG;or;e D;d06l 2;cPll Lrm0t1I;aNbMdo1in,oLsho0Gth0Avictim;ff,ut,v9;a4ehi2P;pa0D;e L;do1oGup;at Ldge0nd 13y5;in,o7up;aPi1IoOrL;aMess 6op LuO;aw3b04in,oC;gBwB; Iubl1C;m 2;a0Bh06l03oPrMut L;aw3ba4do1oCup;ackBeep MoLy0;ss Dwd0;by,do1in,o0Vup;me OoMuntL; o2B;k 6l L;do1oG;aSbRforPin,oOtLu0P;hMoLrue;geth9;rough;ff,n,ut,v9;th,wL;ard;a4y;paLr8w3;rt;eaMose L;in,oCup;n 6r F;aOeMiL;ll0pE;ck Der Lw F;on,up;t 2;lSncel0rPsNtch MveE; in;o1Oup;h Dt L;doubt,oG;ry MvL;e 09;aw3oJ;l Lm H;aMba4do1oJup;ff,n,ut;r8w3;a0We0NiteAl0Go05rRuL;bblOckl06il0Elk 6ndl06rMsLtNy FzzA;t 01;n 0IsL;t D;e I;ov9;anXeaViMush L;oGup;ghRng L;aOba4do1forNin,oMuL;nd9p;n,ut;th;bo7lLr8w3;ong;teL;n 2;k L;do1in,o7up;ch0;arUg 6iSn5oQrOssNttlMunce Lx D;aw3ba4;e 6; ar8;e H;do1;k Dt 2;e 2;l 6;do1up;d 2;aQeed0oLurt0;cNw L;aw3ba4do1o7up;ck;k L;in,oC;ck0nk0stA; oRaOef 2lt0nd L;do1ov9up;er;up;r Mt L;do1in,oCup;do1o7;ff,nL;to;ck Qil0nNrgMsL;h D;ainBe D;g DkB; on;in,o7;aw3do1in,oCup;ff,ut;ay;ct FdRir0sk NuctionA; oG;ff;ar8o7;ouL;nd; o7;d L;do1oLup;ff,n;wn;o7up;ut",
+ "Noun|Gerund": "true¦0:27;1:26;2:1X;3:1J;4:1Z;a25b1Oc1Cd16en14f0Yg0Wh0Ti0Rjog20k0Pl0Lm0In0Go0Cp05ques08rWsFtBu9volunt15w5y17zo2;a7ed1Si3or6r5;ap1Oest1Ci1;ki0r1O;i1r2s1Utc1U;nder5pri23;st1Mta4;al4e7hin4i6ra5y1J;c4di0i2v0Z;mi0p1H;a1Ys1;aKcHeGhEin1PkatClZmo4nowBpeAt8u6w5;ea3im1U;f02r5;fi0vi0J;a1Lretc1Ju5;d1BfJ;l0Xn1C;b6i0;eb5i0;oar19;ip15o5;rte2u1;a1r0At1;h6o3re5;a1He2;edu0Ooo0O;i0Nyi0;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1oub1r6umOw5;elB;awi0es04i5;n4vi0;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng",
"ProperNoun": "true¦barbie,c4diego,e3f2iron maiden,kirby,m0nis,riel,stevens;ercedes,i0;ckey,ssy;inn,lorence,ranco;lmo,uro;atalina,hristi",
"Ordinal": "true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",
"Cardinal": "true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",
"Multiple": "true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",
- "City": "true¦0:76;1:64;2:6J;3:6M;4:5V;a6Bb56c4Ld4Be47f3Zg3Kh3Ci33j2Yk2Hl25m1Nn1Do1Ap0Xq0Vr0Os05tRuQvLwDxiBy9z5;a7h5i4Puri4R;a5e5ongsh0;ng3K;greb,nzib5J;ang2e5okoha3Vunfu;katerin3Krev0;a5n0R;m5Kn;arsBeAi6roclBu5;h0xi,zh5S;c7n5;d5nipeg,terth4;hoek,s1N;hi62kl3D;l66xford;aw;a8e6i5ladivost5Polgogr6N;en3lni6U;ni24r5;n2o3saill4Q;lenc4Zncouv3Vr3ughn;lan bat1Erumqi,trecht;aFbilisi,eEheDiBo9r7u5;l23n66r5;in,ku;i5ondh65;es54poli;kyo,m32ron1Rulo5;n,uS;an5jua3l2Wmisoa6Dra3;j4Wshui; hag64ssaloni2K;gucigal28hr0l av1W;briz,i6llinn,mpe59ng5rtu,shk2U;i3Hsh0;an,chu1n0p2Hyu0;aEeDh8kopje,owe1It7u5;ra5zh50;ba0It;aten is58ockholm,rasbou69uttga2Y;an8e6i5;jiazhua1llo1m5Zy0;f53n5;ya1zh4K;gh3Nt4T;att48o1Yv47;cramen18int ClBn5o paulo,ppo3Urajevo; 7aa,t5;a 5o domin3H;a3fe,m1O;antonBdie3Ffrancisco,j5ped3Qsalvad0L;o5u0;se;em,z28;lou5Bpeters27;aAe9i7o5;me,sar5t5C;io;ga,o5yadh;! de janei3H;cife,ims,nn3Lykjavik;b4Uip4lei2Knc2Rwalpindi;ingdao,u5;ez2i0R;aFeEhDiCo9r7u6yong5;ya1;eb5Aya1;a5etor3O;g53to;rt5zn0; 5la4Eo;au prin0Nelizabe26sa04;ls3Rrae5Btts28;iladelph3Inom pe1Coenix;r23tah tik3G;dua,lerZnaji,r4Qt5;na,r34;ak46des0Lm1Or6s5ttawa;a3Xlo;an,d07;a7ew5ing2Hovosibir1Lyc; 5cast38;del26orlea46taip16;g8iro4Xn5pl2Yshv35v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0Y;aFeCi9o6u5;mb2Cni28sc40;gadishu,nt6s5;c15ul;evideo,pelli1Tre31;ami,l6n16s5;kolc,sissauga;an,waukee;cca,d5lbour2Omph43ndo1Essi3;an,ell5i3;in,ín;cau,drAkass2Tl9n8r5shh4A;aca6ib5rakesh,se2M;or;i1Ty;a4EchFdal10i47;mo;id;aDeAi8o6u5vSy2;anMckn0Pdhia3;n5s angel27;d2g bea1O;brev2Ce3Mma5nz,sb2verpo29;!ss28; ma3Ai5;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Fn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd36rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Yi2H;che2d5;ianap2Mo20;aAe7o5yder2V; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Nupe;ld coa1Bthen5;bu2R;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal28es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,nkirk,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Yr es sala1KugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1P;lo7n6penhag0Ar5;do1Nk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr14;ch8sha,zh07;gliari,i9lga8mayenJn6pe town,r5tanO;acCdiff;ber19c5;un;ry;ro;aWeNhKirmingh0WoJr9u5;chareTdapeTenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iCl9ng8r5;g6l5n;in;en;aluru,hazi;fa6grade,o horizon5;te;st;ji1rut;ghd0AkFn9ot8r7s6yan n4;ur;el,r06;celo3i,ranquil08;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a04b01cc00ddis abaZgartaYhmedWizawl,lSmPnHqaZrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a8c5kaNtwerp;hora6o3;na;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",
+ "City": "true¦0:77;1:64;2:6J;3:6M;4:5V;a6Bb56c4Ld4Be47f3Zg3Kh3Ci33j2Yk2Hl25m1Nn1Do1Ap0Xq0Vr0Os05tRuQvLwDxiBy9z5;a7h5i4Puri4R;a5e5ongsh0;ng3K;greb,nzib5J;ang2e5okoha3Vunfu;katerin3Krev0;a5n0R;m5Kn;arsBeAi6roclBu5;h0xi,zh5S;c7n5;d5nipeg,terth4;hoek,s1N;hi62kl3D;l66xford;aw;a8e6i5ladivost5Polgogr6O;en3lni6V;ni24r5;n2o3saill4Q;lenc4Zncouv3Vr3ughn;lan bat1Erumqi,trecht;aFbilisi,eEheDiBo9r7u5;l23n66r5;in,ku;i5ondh65;es54poli;kyo,m32ron1Rulo5;n,uS;an5jua3l2Wmisoa6Era3;j4Wshui; hag65ssaloni2K;gucigal28hr0l av1W;briz,i6llinn,mpe59ng5rtu,shk2U;i3Hsh0;an,chu1n0p2Hyu0;aEeDh8kopje,owe1It7u5;ra5zh50;ba0It;aten is58ockholm,rasbou6Auttga2Y;an8e6i5;jiazhua1llo1m60y0;f53n5;ya1zh4K;gh3Nt4T;att48o1Yv47;cramen18int ClBn5o paulo,ppo3Urajevo; 7aa,t5;a 5o domin3H;a3fe,m1O;antonBdie3Ffrancisco,j5ped3Qsalvad0L;o5u0;se;em,t lake ci5Iz28;lou5Bpeters27;aAe9i7o5;me,sar5t5C;io;ga,o5yadh;! de janei3H;cife,ims,nn3Lykjavik;b4Uip4lei2Knc2Rwalpindi;ingdao,u5;ez2i0R;aFeEhDiCo9r7u6yong5;ya1;eb5Bya1;a5etor3O;g54to;rt5zn0; 5la4Eo;au prin0Nelizabe26sa04;ls3Rrae5Ctts28;iladelph3Inom pe1Coenix;ki1r23tah tik3G;dua,lerZnaji,r4Qt5;na,r34;ak46des0Lm1Or6s5ttawa;a3Xlo;an,d07;a7ew5ing2Hovosibir1Lyc; 5cast38;del26orlea46taip16;g8iro4Yn5pl2Yshv35v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0Y;aFeCi9o6u5;mb2Cni28sc40;gadishu,nt6s5;c15ul;evideo,pelli1Tre31;ami,l6n16s5;kolc,sissauga;an,waukee;cca,d5lbour2Omph43ndo1Essi3;an,ell5i3;in,ín;cau,drAkass2Tl9n8r5shh4B;aca6ib5rakesh,se2M;or;i1Ty;a4FchFdal10i48;mo;id;aDeAi8o6u5vSy2;anMckn0Pdhia3;n5s angel27;d2g bea1O;brev2Ce3Mma5nz,sb2verpo29;!ss28; ma3Ai5;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Gn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd37rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Zi2H;che2d5;ianap2Mo20;aAe7o5yder2W; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Oupe;ld coa1Bthen5;bu2S;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal29es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,nkirk,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Zr es sala1KugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1Q;lo7n6penhag0Ar5;do1Ok;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr14;ch8sha,zh07;gliari,i9lga8mayenJn6pe town,r5tanO;acCdiff;ber1Ac5;un;ry;ro;aWeNhKirmingh0WoJr9u5;chareTdapeTenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iCl9ng8r5;g6l5n;in;en;aluru,hazi;fa6grade,o horizon5;te;st;ji1rut;ghd0BkFn9ot8r7s6yan n4;ur;el,r07;celo3i,ranquil09;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a05b02cc01ddis aba00gartaZhmedXizawl,lSmPnHqa00rEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a8c5kaOtwerp;hora6o3;na;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 7buquerq6eppo,giers,ma5;ty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",
"Region": "true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",
"Country": "true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",
- "Place": "true¦aVbTcPdOeNfMgIhHiFjfk,kDlBm9new eng8or7p5s4t2u1vostok,wake is8y0;akutDyz;laanbaatar,pP;ahiti,he 0;bronx,hamptons;akhalGfo,oho,under3yd;acifUek,h0itcairn;l,x;ange county,d;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",
+ "Place": "true¦a00bYcUdTeSfRgMhLiJjfk,kHlFmDnBorAp8r7s6t3u2vostok,wake isCy0;a0yz;kutGngtze;laanbaatar,pT;ahiti,h0;amWe 0;bronx,hamptons;akhalIeine,fo,oho,under5yd;ed sea,io grande;acifWek,h0itcairn;l,x;ange county,d,inoco;ew eng0ile;land;a0co,ekong,idIuc;gadSlibu,nhattS;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianLochina;arlem,kg,nd,ovd;a3odavari,re0;at 0enwich;brita0lakC;in;ngAy village;co,ra;urope,verglad8;anube,en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;driadic,frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",
"WeekDay": "true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",
"Month": "true¦dec0february,july,nov0octo1sept0;em0;ber",
- "Date": "true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",
- "Duration": "true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",
- "FemaleName": "true¦0:IS;1:IW;2:I5;3:I4;4:IM;5:I9;6:JD;7:GQ;8:J9;9:J5;A:HD;B:HN;C:IE;D:J2;E:II;F:H2;G:C4;H:HP;aGIbFDcDJdCSeBIfB0gAAh9Qi9Dj8Ck7Cl5Wm46n3Ko3Gp34qu33r2Bs16t0Fu0Dv03wWxiUyPzI;aMeJineb,oIsof2;e3Rf2la,ra;h3iLlJna,ynI;ab,ep;da,ma;da,h3iIra;nab;aLeKi0GolB3uJvI;etAonDH;i0na;le0sen2;el,gm3Gn,rGAs8T;aoIme0nyi;m5YyAA;aNendDRhiD8iI;dele9lKnI;if45niIo0;e,f44;a,helmi0lIma;a,ow;ka0nB;aOeLiIusa5;ck82kJlAole7viI;anGenIQ;ky,toriBE;da,lA5rIs0;a,nIoniGV;a,iFH;leInesGV;nI7rI;i1y;g9rIxGW;su5te;aZeVhSiOoMrJuIy3;i,la;acIPiIu0L;c2na,sI;hGta;nIr0H;iGya;aKffaEGnIs6;a,gtiI;ng;!nFHra;aJeIomasi0;a,l9Lo87res1;l2ndolwethu;g9Co85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe3iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlett,e0ChYiUkye,neza0oStOuJyI;bI2lvi1;ha,mayI5ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHQr5;b2fiA3m0MnIphi1;d3ia,ja,ya;er3lKmon1nJobh8MtI;a,i;dy;lEHv2;aNeJirIo0risEZy5;a,lDD;ba,e0i5lKrI;iIr6Gyl;!d8Efa;ia,lDP;hd,iNki3nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7YvI;da,inj;e0ife;en1i0ma;anA0bMd3Kh1PiBkLlKmJnd3rIs6vannaC;aCi0;ant6i3;lDEma,ome;ee0in8Ou3;in1ri0;a05e00hYiVoIuthDC;bTcSghRl8GnQsKwJxI;anAUie,y;an,e0;aJeIie,lD; merBIann8ll1marD6t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8B;hel63io;bDFer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG7oI;da,n1L;an0bKemGgi0iJnIta,y0;a86ee;han81na;a,eI;cE5kaC;bi0chJe,i0mo0nIquEFy0;di,ia;aEDelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCL;scil3LyamvaB;lly,rt2;ilome0oebe,ylI;is,lis;ggy,nelope,r5t3;ige,m0UnLo5rvaDBtJulI;a,etAin1;ricIt4T;a,e,ia;do3i07;ctav2dJfCUis6lIphCUumBYyunbileg;a,ga,iv2;eIvA9;l2tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBJkLlaKna,sIta,vi;anIha;ur;!y;a,iDNki;hoHk9SolI;a,eDE;!mh;hir,lIna,risFsreE;!a,lBO;asuMdLh2i6CnKomi8rgEJtIzanin zah3;aIhal4;li1s6;cy,etA;e9iEP;nngu30;a0Ackenz4e02iNoKrignayani,uriD8yI;a,rI;a,lOna,tH;bi0i3llBDnI;a,iI;ca,ka,qCY;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEI;!l,nB;dy,eIh,n4;nhHrva;aLdKiCKlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5EgOi,lLrI;edi77iJjem,on,yI;em,l;em,sF;an4iIliF;nIsC9;a,da;!an,han;b0DcANd0Be,g09ha,i08ja,l06n04rMsoum5YtLuJv80x9FyIz4;bell,ra,soB4;de,rI;a,eE;h8Cild1t4;a,cYgUiLjor4l7Qn4s6tKwa,yI;!aIbe6Uja9lA9;m,nBC;a,ha,in1;!aKbC6eJja,lDna,sIt62;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliACcJeduarBfern5EjIlui5W;o6Dul2;ecil2la3;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Vi75y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD6on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d2la,nI;!a,dJeBCnIsCG;!a,eBB;a,sCE;aCRcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a84i8;lIn1t7;ei;!in1;aTbb98dSepa,lNnKsJv2zI;!a,be5KetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9We;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c2t2;e2NlCB;la,nIra;a,ie,o3;a,or1;a,gh,laI;!ni;!h,nI;a,d3e,n5O;cPdon93iOkes6mi96na,rNtKurJvIxmi,y5;ern1in2;a,e53ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAFoOrKyI;lIra;a,ee,ie;istIy6B;a,en,iJyI;!na;!e,n58;nul,ri,urtnAV;aPerOlAUmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei3ongordzol;dij1w5;el7MiLjsi,lKnJrI;a,i,ri;d3na,za;ey,i,lB8s4y;ra,s6;bi7cAEdiat7EeAXiSlRmQnyakuma1BrOss6HtLvi7yI;!e,lI;a,eI;e,i8H;a6BeJhIi4MlDri0y;ar69er69ie,leErAXy;!lyn8Cri0;a,en,iIl5Qoli0yn;!ma,nGsF;a5il1;ei8Ai,l4;a,tl6I;a09eZiWoOuI;anMdLliIst61;a8DeIsF;!n9tI;!a,te;e5Hi3Iy;a,i7;!anOcelDdNelHhan7NleMni,sJva0yI;a,ce;eIie;fIlDph5S;a,in1;en,n1;i8y;!a,e,n40;lIng;!i1DlI;!i1C;anOle0nLrKsI;i88sI;!e,i87;i,ri;!a,elHif2AnI;a,etAiIy;!e,f28;a,e89iJnI;a,e88iI;e,n1;cNda,mi,nJque4UsminGvie3y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob7Z;!n9H;do3;belIdo3;!a,e,l37;a72en1i0ma;di3es,gr6Tji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin29;da,ll4rten21snI;a,i9K;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1AiKlJnriet7rmi9sI;sa,t19;en2Qga,mi;di;bi2Bil8ClOnNrKsJtIwa,yl8C;i5Nt4;n5Tti;iImo4Xri4Y;etI;!te;aCnaC;a,ey,l4;a03eXiSlQoOrLunKwI;enIyne1O;!dolD;ay,el;acieJetIiselB;a,chE;!la;ld19ogooI;sh;adys,enIor2yn2G;a,da,na;aLgi,lJna,ov84selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Ni,m3Atru86;etAi4S;a,eIna;s25vieve;ma;bJle,mIrnet,yH;al5Ji5;i5BrielI;a,l1;aUeRiQlorPoz2rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0N;n1s5X;!ca;a,enc2;en,o0;lJn0rnI;anB;ec2ic2;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no3oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c2da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh2iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr2nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d3nI;!a,e;hl2i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th2;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat3;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a3er3ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d3elHtI;al,elH;cJlI;esAi42;el2ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a3o3ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el2;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar2;el;aMberLeliKiIy;e,l2naI;!ta;a,ja;!ly;hHiJl2nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c2sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c2is6jaLksaLna,sKxI;aIia;!nd3;ia,saI;nd3;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",
+ "Date": "true¦ago,on3som3t0week end,yesterd4;mr1o0;d2morrow;!w;ed0;ay",
+ "Duration": "true¦centurAd8h7m5q4se3w1y0;ear8r8;eek0k7;!end,s;ason,c5;tr,uarter;i0onth3;llisecond2nute2;our1r1;ay0ecade0;!s;ies,y",
+ "FemaleName": "true¦0:IS;1:IW;2:I5;3:I4;4:IM;5:I9;6:JD;7:GQ;8:J9;9:J5;A:HD;B:HN;C:IE;D:J2;E:II;F:H2;G:C4;H:HP;aGIbFDcDJdCSeBIfB0gAAh9Qi9Dj8Ck7Cl5Wm46n3Ko3Gp34qu33r2Bs16t0Fu0Dv03wWxiUyPzI;aMeJineb,oIsof2;e3Rf2la,ra;h3iLlJna,ynI;ab,ep;da,ma;da,h3iIra;nab;aLeKi0GolB3uJvI;etAonDH;i0na;le0sen2;el,gm3Gn,rGAs8T;aoIme0nyi;m5YyAA;aNendDRhiD8iI;dele9lKnI;if45niIo0;e,f44;a,helmi0lIma;a,ow;ka0nB;aOeLiIusa5;ck82kJlAole7viI;anGenIQ;ky,toriBE;da,lA5rIs0;a,nIoniGV;a,iFH;leInesGV;nI7rI;i1y;g9rIxGW;su5te;aZeVhSiOoMrJuIy3;i,la;acIPiIu0L;c2na,sI;hGta;nIr0H;iGya;aKffaEGnIs6;a,gtiI;ng;!nFHra;aJeIomasi0;a,l9Lo87res1;l2ndolwethu;g9Co85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe3iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlett,e0ChYiUkye,neza0oStOuJyI;bI2lvi1;ha,mayI5ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHQr5;b2fiA3m0MnIphi1;d3ia,ja,ya;er3lKmon1nJobh8MtI;a,i;dy;lEHv2;aNeJirIo0risEZy5;a,lDD;ba,e0i5lKrI;iIr6Gyl;!d8Efa;ia,lDP;hd,iNki3nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7YvI;da,inj;e0ife;en1i0ma;anA0bMd3Kh1PiBkLlKmJnd3rIs6vannaC;aCi0;ant6i3;lDEma,ome;ee0in8Ou3;in1ri0;a05e00hYiVoIuthDC;bTcSghRl8GnQsKwJxI;anAUie,y;an,e0;aJeIie,lD; merBIann8ll1marD6t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8B;hel63io;bDFer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG7oI;da,n1L;an0bKemGgi0iJnIta,y0;a86ee;han81na;a,eI;cE5kaC;bi0chJe,i0mo0nIquEFy0;di,ia;aEDelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCL;scil3LyamvaB;lly,rt2;ilome0oebe,ylI;is,lis;ggy,nelope,r5t3;ige,m0UnLo5rvaDBtJulI;a,etAin1;ricIt4T;a,e,ia;do3i07;ctav2dJfCUis6lIphCUumBYyunbileg;a,ga,iv2;eIvA9;l2tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBJkLlaKna,sIta,vi;anIha;ur;!y;a,iDNki;hoHk9SolI;a,eDE;!mh;hir,lIna,risFsreE;!a,lBO;asuMdLh2i6Cl5nKomi8rgEJtIzanin zah3;aIhal4;li1s6;cy,etA;e9iEP;nngu30;a0Ackenz4e02iNoKrignayani,uriD8yI;a,rI;a,lOna,tH;bi0i3llBDnI;a,iI;ca,ka,qCY;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEI;!l,nB;dy,eIh,n4;nhHrva;aLdKiCKlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5EgOi,lLrI;edi77iJjem,on,yI;em,l;em,sF;an4iIliF;nIsC9;a,da;!an,han;b0DcANd0Be,g09ha,i08ja,l06n04rMsoum5YtLuJv80x9FyIz4;bell,ra,soB4;de,rI;a,eE;h8Cild1t4;a,cYgUiLjor4l7Qn4s6tKwa,yI;!aIbe6Uja9lA9;m,nBC;a,ha,in1;!aKbC6eJja,lDna,sIt62;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliACcJeduarBfern5EjIlui5W;o6Dul2;ecil2la3;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Vi75y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD6on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d2la,nI;!a,dJeBCnIsCG;!a,eBB;a,sCE;aCRcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a84i8;lIn1t7;ei;!in1;aTbb98dSepa,lNnKsJv2zI;!a,be5KetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9We;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c2t2;e2NlCB;la,nIra;a,ie,o3;a,or1;a,gh,laI;!ni;!h,nI;a,d3e,n5O;cPdon93iOkes6mi96na,rNtKurJvIxmi,y5;ern1in2;a,e53ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAFoOrKyI;lIra;a,ee,ie;istIy6B;a,en,iJyI;!na;!e,n58;nul,ri,urtnAV;aPerOlAUmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei3ongordzol;dij1w5;el7MiLjsi,lKnJrI;a,i,ri;d3na,za;ey,i,lB8s4y;ra,s6;bi7cAEdiat7EeAXiSlRmQnyakuma1BrOss6HtLvi7yI;!e,lI;a,eI;e,i8H;a6BeJhIi4MlDri0y;ar69er69ie,leErAXy;!lyn8Cri0;a,en,iIl5Qoli0yn;!ma,nGsF;a5il1;ei8Ai,l4;a,tl6I;a09eZiWoOuI;anMdLliIst61;a8DeIsF;!n9tI;!a,te;e5Hi3Iy;a,i7;!anOcelDdNelHhan7NleMni,sJva0yI;a,ce;eIie;fIlDph5S;a,in1;en,n1;i8y;!a,e,n40;lIng;!i1DlI;!i1C;anOle0nLrKsI;i88sI;!e,i87;i,ri;!a,elHif2AnI;a,etAiIy;!e,f28;a,e89iJnI;a,e88iI;e,n1;cNda,mi,nJque4UsminGvie3y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob7Z;!n9H;do3;belIdo3;!a,e,l37;a72en1i0ma;di3es,gr6Tji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin29;da,ll4rten21snI;a,i9K;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1AiKlJnriet7rmi9sI;sa,t19;en2Qga,mi;di;bi2Bil8ClOnNrKsJtIwa,yl8C;i5Nt4;n5Tti;iImo4Xri4Y;etI;!te;aCnaC;a,ey,l4;a03eXiSlQoOrLunKwI;enIyne1O;!dolD;ay,el;acieJetIiselB;a,chE;!la;ld19ogooI;sh;adys,enIor2yn2G;a,da,na;aLgi,lJna,ov84selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Ni,m3Atru86;etAi4S;a,eIna;s25vieve;ma;bJle,mIrnet,yH;al5Ji5;i5BrielI;a,l1;aUeRiQlorPoz2rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0N;n1s5X;!ca;a,enc2;en,o0;lJn0rnI;anB;ec2ic2;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no3oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c2da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh2iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr2nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d3nI;!a,e;hl2i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th2;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat3;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a3er3ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d3elHtI;al,elH;cJlI;esAi42;el2ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a3o3ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el2;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!l1;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar2;el;aMberLeliKiIy;e,l2naI;!ta;a,ja;!ly;hHiJl2nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c2sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c2is6jaLksaLna,sKxI;aIia;!nd3;ia,saI;nd3;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",
"FirstName": "true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",
"Person": "true¦a0Ob0Hc08d05e02g01hZinez,jYkVlSmMnKoJpHr9s7t4v2w0xzibit,yanni;ar0ednesday adams,ill.i.am,oode;hol,rO;a0oltaiO;lentino rossi,n go7;a1heresa may,i0yra banks;ger woods,mbaQ;tum,ylor;a0carlett johanss03hakespeaJinbad,lobodan milosevic,ocratM;ddam hussain,ntigold;a6e5i4o2u0za;mi,n dmc,paul,sh limbau0;gh;d stewart,nald0thko;inho,o;hanYvaldo;ese witherspoVil9mbrandt;ffi,y roma03;a0e08ip07lato,oe,uff daddy;lm06ris hiltS;prah winfrWra;as,e0iles crane,ostradamP; yo,l3ttI;acklemo4essia3i1o0ubarek;by,lie3net,rrissS;randa ju0tt romnR;ly;en;re;ady gaga,e0iberaT;bron jam0e;es;anye west,e1iefer suther0obe bryant;land;ats,ndall,sha;aime,effersCk rowling;a0itlPulk hogan;lle berry,rrisA;ast9otye;ff1m0nya,zekiel;eril lagasse,inem;ie;a1e0ick wolf,rake;gas,nzel washingt4;lt3nB;ar5h3lint2o0;nfuci0olio;us;on;aucCy0;na;dinal wols1son0;! palm9;ey;a5e3o2ro0;ck,n0;te;no;ck,yon0;ce;nksy,rack obama;ristot1shton kutch0;er;le",
- "LastName": "true¦0:9G;1:9W;2:9Y;3:9O;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s2;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi3j6ka3IoGrFsui,uD;om50rD;c3n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps2s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv3zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins2;!on;bei0LcEes,vDzzo;as,e8;ci,hards2;ag3es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss2;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym3;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx2;ic,ov6X;ls1miD;!n1;ils2mD;co42ec;gy,kaEray3varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h3lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h3iSlQnez48oJrGuEvar3woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss2;anEnsD;en,on,t2;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks2obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m3ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers2;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw2;o,staf2Utierr7zm3;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m3;calv9zale0H;aj,i;bs2l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm3uD;cDent9ji3E;hs;ntaDrt6urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s2;er,is2wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g3he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w3;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e2uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em3liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm3tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder2mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy3;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss2;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl3yD;aEd6;in;la;aEsl3;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s2;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",
- "MaleName": "true¦0:DN;1:CO;2:D6;3:AJ;4:CK;5:BZ;6:CF;7:D2;8:BS;9:AR;A:DA;B:D3;C:94;D:BM;aC9bB7cA7d98e8If82g7Fh6Si6Cj5Ek52l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Jkaria,n0C;hFkE;!aC7;ar5UeC6;aMoGuE;sEu2LvBJ;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB8ssY;avi3ho4;aNeLiGoEyaBN;jcie87lfgang,odrow,utE;!er;lEnst1;bGey,fredAlE;aAZiE;am,e,s;e97ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Xy;aHiEladimir,ojte7U;cFha0kt67nceErgA5va0;!nt;e3Xt65;lentEn9S;inE;!e;ghBElyss59nax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r59;avAHeEist0oy,um0;ntA9v5Wy;bGd8RmEny;!as,mEoharu;aCBie,y;iCy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8G;!de5;dHrE;en98rE;an97eEy;ll,n96;!dy;dgh,ha,iEnn3req,tsu4R;cAPka;aUcotSeQhMiKoIpenc3tEur1Xylve96zym1;anGeEua85;f0phBCvEwa84;e5Zie;!islaw,l8;lom1uE;leyma6ta;dElCm1yabonga;!dhart74n8;aGeE;lErm0;d1t1;h7Kne,qu11un,wn,y6;aEbasti0k2Cl4Prg4Mth,ymoAE;m5n;!tE;!ie,y;lFmEnti2Gq58ul;!ke5JmDu4;ik,vato7O;aZeVhe9ViRoIuFyE;an,ou;b7DdFf5pe7KssE;!elBI;ol3Fy;an,bLc62dJel,geIh0landAmHnGry,sFyE;!ce;coe,s;!aA1nD;an,eo;l45r;er78g3n8olfo,riE;go;bDeAQ;cEl8;ar6Ic6HhFkEo;!ey,ie,y;a8Vie;gFid,ubByEza;an1KnZ;g9SiE;na9Os;ch6Qfa4lImHndGpha4sFul,wi2HyE;an,mo6U;h7Jm5;alAWol2U;iACon;f,ph;ent2inE;cy,t1;aJeHhilGier6TrE;aka18eE;m,st1;!ip,lip;dA4rcy,tE;ar,e3Er1Y;b4Hdra73tr6JulE;!o19;ctav3Di3liv3m9Yndrej,rIsFtEum7wB;is,to;aFc7k7m0vE;al5S;ma;i,vM;aMeKiGoEu38;aEel,j5l0ma0r3I;h,m;cFg4i46kEl2R;!au,h7Gola;hEkEolC;olC;al,d,il,ls1vE;il8J;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Gr1;hamFr6KstaE;fa,p54;ed,mI;di0Xe,hamGis2CntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Uik;house,o0Ct1;ae5Oe9MolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2AlSmadXnRrLs1tGuricFxE;imilianAwe9;e,io;eHhFiCtEus,yC;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Ysha9tEv2;iEy;!m,n;in,on;el,oQus;!el90oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5G;ou;aXeRiPlo39oLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7BrenGuEv81we9;!iE;e,s;!zo;am,oE;n4r;a7Uevi,la4AnIonHst3thaGvE;eEi;nte;bo;!a6Del;!ny;mFnd1rEur54wr54;ry,s;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubCnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdBkJmIrGsFvi3yE;dBs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dB;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdA;ffr8rge;brFlBrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymBzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estAie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydCy29;!lC;!a2HnEov0;e9ie,y;go,iFykC;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdA;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndA;!el,ki;ie;ta;aq;as,dIgelAtE;hony,oE;i6nE;!iAy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdBeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtA;ni;dBm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfAri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",
+ "LastName": "true¦0:9G;1:9W;2:9Y;3:9O;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s2;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi3j6ka3IoGrFsui,uD;om50rD;c3n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps2s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv3zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8infeld,mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins2;!on;bei0LcEes,vDzzo;as,e8;ci,hards2;ag3es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss2;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym3;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx2;ic,ov6X;ls1miD;!n1;ils2mD;co42ec;gy,kaEray3varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h3lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h3iSlQnez48oJrGuEvar3woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss2;anEnsD;en,on,t2;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks2obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m3ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers2;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw2;o,staf2Utierr7zm3;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m3;calv9zale0H;aj,i;bs2l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm3uD;cDent9ji3E;hs;ntaDrt6urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s2;er,is2wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g3he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w3;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e2uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em3liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm3tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder2mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy3;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss2;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl3tchis2yD;aEd6;in;la;aEsl3;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s2;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",
"Honorific": "true¦director1field marsh2lieutenant1rear0sergeant major,vice0; admir1; gener0;al",
- "Adjective": "true¦0:8H;1:9N;2:8E;3:9E;4:8B;5:98;6:8M;7:8T;8:86;9:99;A:8W;B:7Z;C:60;D:9D;E:7J;a80b7Ic6Wd6Fe5Xf5Cg54h4Ui3Ujuni49k3Rl3Hm34n2Uo2Fp20quart6Ar1Qs0Ut0MuRvNwFye1M;ast58eKhIiHoF;man4oFrthwhi7u0I;dBzy;despr8Zn w7Cs6N;acked0XoleF;!sa7;ather14eFll o5Pste2Q;!k4;aHeGiFola5J;b9Qce versa,gi2Qle;ng4Yrsa5H;ca1lu8U;lt08nLpHrGsFttermo9I;efEu5;b7Age1; Hb2ApGsFti8H;ca7et,ide d3P;er,i4O;f3Xto da3;aYbecom2cXdSeRfPiOkn3MmNpMrJsGto49us0wF;a08iel2N;eBi2Fo47pGuF;pervis0spect2;e1okB;eFu4;cognTgul0NlFsolv0;at0ent2;aArecede01;arri0et;que,vers5;air,orF;eseBtun7S;mploy0nd2xpect0;eFisclos0ue;cid0rF;!a75covCly2sJwF;aFei7W;tCy;heck0onvinc2;ppeal2ssum2tteGuthorF;iz0;nd0;im4Bra;aKeHhough5Jip 1RoGrF;anspare1i3;gethCle8Qp notch,rpA;ena6UmpGrF;r3Ktia8;e9o76;leFst3V;nt0;a09c05e02h01iZkiYle5Mmug,nobbi46oTpQqueami46tKuFymb7L;bHi generis,pFr4;erFre69;! dupCb,vi00;du0p5HsFurb65;eq7Rtanda8C;atu6OeJi0WrFy3Z;aightGin4LungF; o25; fFfF;or6C;adfa84ri7;arGeFirit0lendAot on;c33e1F;k4se; call0lub7mbCphisticIrHuFviT;ndFth10;proof;dAry;at0;ll0n d6C;g22nF;ce5Mg7;am36eC;co1Lem4lfGnFre6;so8; suf45i3G;aGholFient2P;ar4;rlFth2;et;cr0me,tisfac5Z;aNeIheumatoAiGoF;bu7IttBy5;ghtFv5;-w2fE;cIdu79lHnown0sFtard0;is3JoF;lu3na1;e1Duc3H;e1ondi3;bAci5;aQeOicayu6laNopuli79rGuF;bl6Fnjabi;eKiIoF;b6HfGmi3IpFvBx23;er,ort6N;a6u6Q;maFor,sti6va3;!ry;ci6Nexist2ma1UpaA;cAid;ac2Dnt2XrFti3;feDma3Ati3Av6J;i2DrtFss6F;-4RiF;al,s4P;bQffOkNld MnKrJthCutIverF;!aGni5Vseas,t,wF;ei5Urou5U;ll;do14er,si51;d34g1U; bFbFe on o6go2li6;oa6P;fashion0school;!ay; gua6MbFli6;eat;eGsF;ce6er0Io0Z;dia1se;aNeMiLoFuanc0; mo47nHrthFt5P;!eF;rn;chaGdescri6Aprof2JsF;top;la1;ght4;arby,cessa8ighbor4xt;k0usiat2;aNeMiKoGuF;dHltip7;deHlGnFot,st;ochro3Yth4;dy;rn,st;ddle ag0nF;dblVi;ga,nac2re;cHgenta,in,j0Akeshift,mmGnFscu50;da4Ay;ali3Ooth;ab3Mho;aNeKiIoFumber2;ngFuti1I;stand2tF;erm,i3L;ghtwei4QteraF;l,te;ft-w2gFssCth5;al,eFit0I;nda8;nguAps0te4;apGind4nF;ow2;ut;ce co0Dgno5Kll09m01nHpso 2ErF;a3releF;va1; WaVcoSdPe2MfOgrNhibi3Ri02nMoLsHtFvalu4N;aDeF;n4Wrdep24;a6iGolFuboI;ub7ve1;de,gF;nifica1;rdi4O;a3er;own;eriGluenSreq4J;eGiIoFul1E;or;fini3p1Ttermi4I;mpGnside9rF;reD;le3;ccu9deq4Jppropr3Q;fFsitu,vitro;ro1;mJpF;arHeGl0YoFropC;li3r0V;nd2rfeD;ti5;aGeFi0Z;d3Hn48;tu2E;egGiF;c0Rte9;al,itF;ima3;ld;aMelLiJoFuma6;meHnGrrFs0Bur4;if3K;e4Co30; ma2Msick;ghfalut1VspF;an3G;liZpfE;i8llow0ndFrd05tL;sy,y;aiLener3Ciga2Jlob5oKraHuF;ilFng ho;ty;cGtF;efEis;efE;ldBod;nfE;aWeTiRlPoIrF;aGeFil4ozB;q3CtfE;gi7nt31;lk0WoJrF; keeps,eHge0OmCtunFwa3U;ateF;!ly;go2i1Os2Z;liF;sh;ag3Rowe8uF;e1oresce1;e8nF;al,i3;dGmini6rF;ti7; up;bl0l31mili0Lr Fux;oFreach2;ff;aTfSlQmNnLqu5reDthere5veryday,xF;aDem3AplIquisi3traHuF;be3FlF;ta1;!va1V;icF;it; Fti0Y;rou3sui3;erGiF;ne1;ge1;dFe1N;er4;ficie1;gCsF;t,ygo2;er;aUeMiHoGrFue;ea8owW;mina1ne,rma1ubO;dact1Yfficult,m,sGverF;ge1se;creGeNjoi1pa9tF;a1inD;et,te; Ladp0GceKfiJgene9liHpGreliDspe9voF;id,ut;ende1;ca3ghF;tfE;a1ni3;as0;facto;i4ngero05;arZeXhWivil,oMrHuF;stoma8teF;sy;aIeHu0WystalF; cleFli6;ar;epy;vBz0;erNgniza1loMmLnGrpo9veF;rt;cIduLgr1KjHsGtraF;dic0Hry;eq1Ita1;oi1ug5;a1Ci1L;mensu9pass1G;ni5ss5;ci19;ee8intzy;leba3rtaF;in;diac,efE;aUeOiJliSoGrFuck nak0;and new,isk,on1U;gGldface,naF; fiZfiZ;us;gHpartisGzarF;re;an;tiF;me;autifEhiIloHnFsiSyoI;e01iFt;gn;v0w;nd;ul;ckwards,rF;e,rB; priori,b12c0Zd0Tf0Ng0Ih0Hl0Amp7nt07pZrSsPttracti0MuLvIwF;aGkF;wa19;ke,re;ant garGeraF;ge;de;diHtF;heFoimmu6;nt07;to8;hBlF;eep;en;bitJchiv5roItF;iFsy;fiF;ci5;ga1;ra8;ry;pFt;aJetiz2roF;prHximF;ate4;ly;ia3;ll2re1;ing;iquFsy;at0e;ed;cohJiQkaHl,oGriFterW;ght;ne,of;li6;ne;olF;ic;ead;ain05ed,gressiIrF;eeF;ab7;le;ve;fGraA;id;ectGlF;ue1;ioF;na3; JeHvF;erF;se;pt,qF;ua3;hoc,infinitum;cu9tu5u3;al;ra3;erQlOoMrJsGuF;nda1;e1olu3traD;ct;te;eaGuF;pt;st;aFve;rd;aFe;ze;ra1;nt",
- "Adverb": "true¦a08b05d01eXfRhePinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6;en,us;eldom,o0uch;!me1rt0; of;how,times,w0A;a1e0;alT;ndomSthN;ar excellenEer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag03moX; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboV;deed,steW;lla,n0;ce;or2u0;lArther0;!moK; 0ev3;examp0good,suI;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;ju9trop;ackward,y 0;far,no0; means,w; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",
- "Conjunction": "true¦aVbRcuz,eNhowMiEjustYnoBo9p8supposing,t5wh0yet;e1il0o3;e,st;n1re0thN; if,vM;evL;h0o;erefMo0;!uS;lus,rovided th9;r0therwiK;! not; mattEr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mGcaDorder t0;h0o;at;! 0;only,t0w0;hen;!ev3;ith2ven0;! 0;if,t9;er;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;gh",
+ "Adverb": "true¦a07b04dZeXfSheQinPjustOkinda,likewiYmMnJoEpCquite,r9s5t2u0very,well;ltima00p0; to,wards5;h1iny bit,o0wiO;o,t6;en,us;eldom,o0uch;!me1rt0; of;how,times,w0B;a1e0;alR;ndomQth04;ar excellenEer0oint blank; Khaps;f3n0utright;ce0ly;! 0;ag04moW; courFten;ewIo0; longVt 0;onGwithstanding;aybe,eanwhiMore0;!ovS;! aboW;deed,steX;lla,n0;ce;or2u0;l8rther0;!moJ; 0evK;exampCgood,suH;n mas0vI;se;e0irect2; 2fini0;te0;ly;juAtrop;ackward,y 0;far,no0; means,w; GbroFd nauseam,gEl7ny5part,s4t 2w0;ay,hi0;le;be7l0mo7wor7;arge,ea6; soon,i4;mo0way;re;l 3mo2ongsi1ready,so,togeth0ways;er;de;st;b1t0;hat;ut;ain;ad;lot,posteriori",
+ "Conjunction": "true¦aXbTcReNhowMiEjust00noBo9p8supposing,t5wh0yet;e1il0o3;e,st;n1re0thN; if,by,vM;evL;h0il,o;erefOo0;!uU;lus,rovided th9;r0therwiM;! not; mattEr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mIcaForder t0;h0o;at;! 0;only,t0w0;hen;!ev3;ith2ven0;! 0;if,tB;er;o0uz;s,z;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;gh",
"Currency": "true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s",
- "Determiner": "true¦aAboth,d8e5few,le4mu7neiCplenty,s3th2various,wh0;at0ich0;evB;at,e3is,ose;everal,ome;!ast,s;a1l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",
- "Adj|Present": "true¦a07b04cVdQeOfKhollJidRlFmDnarrJoCpAqua9r8s4t2utt3w0;aLet,ound,ro0;ng,ug08;end0hin;er;e2hort,l1mooth,our,pa9tray,u0;re,speT;i2ow;cu6da01leRpaM;eplica00ig01;ck;aGr0;eseTime,omU;bscu1pen,wn;atu0e3odeG;re;a2e1i0;gTve;an;st,y;ow;a2i1oul,r0;ee,inge;rm;iHke,ncy,st;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry,ull;le;ffu9re6;fu8libe0;raE;alm,l5o0;mpleCn3ol,rr1unterfe0;it;e0u7;ct;juga8sum7;ea1o0;se;n,r;ankru1lu0;nt;pt;lig2pproxi0;ma0;te;ht",
- "Comparable": "true¦0:38;1:3M;2:3B;3:2E;a3Qb39c30d2Re2Kf28g1Wh1Mi1Gj1Fk1Cl15m0Zn0Uo0Tp0Kqu0Ir09sJtEuDvBw5y4za0S;el12ouP;a8e6hi1Ii4ry;ck0Ede,l4n1ry,se;d,y;a4i3P;k,ry;ntiJry;a4erda2ulgar;gue,in,st;g0pcomiG;a7en2Thi6i5ough,r4;anqu29en1ue;dy,g32me0ny,r04;ck,rs25;ll,me,rt,wd3E;aScarReQhOiNkin0ClJmHoFpEt7u5w4;eet,ift;b4dd0Wperfi1Xrre25;sta23t3;a9e8iff,r5u4;pVr1;a5ict,o4;ng;ig2Rn0N;a1ep,rn;le,rk,te0;e1Oi2Rright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Im4;!y;ek,nd2O;ck,l0mp3;a4iRrill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1BlAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;bb0ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Xte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o11u4ve0w0Vy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui16;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng19;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd10ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue0X;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiR;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0N;!ny;aDesh,iend0;a4rmE;my;erce5nan4;ciB;! ;le;r,ul4;ty;a7erie,sse5v4xtre0B;il;nti4;al;r5s4;tern,y;ly,th0;aBe8i5ru4umb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppRrk;agey,h9l8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;evLou1;e4il0;ap,e4;sy;aIiGlDoBr6u4;r0sy;ly;a7i4oad;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",
+ "Determiner": "true¦aBboth,d9e6few,le5mu8neiDplenty,s4th2various,wh0;at0ich0;evC;a0e4is,ose;!t;everal,ome;!ast,s;a1l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",
+ "Adj|Present": "true¦a07b04cVdQeOfKhollJidRlFmDnarrJoCpAqua9r8s4t2utt3w0;aLet,ro0;ng,ug08;end0hin;er;e2hort,l1mooth,our,pa9tray,u0;re,speT;i2ow;cu6da01leRpaM;eplica00ig01;ck;aGr0;eseTime,omU;bscu1pen,wn;atu0e3odeG;re;a2e1i0;gTve;an;st,y;ow;a2i1oul,r0;ee,inge;rm;iHke,ncy,st;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry,ull;le;ffu9re6;fu8libe0;raE;alm,l5o0;mpleCn3ol,rr1unterfe0;it;e0u7;ct;juga8sum7;ea1o0;se;n,r;ankru1lu0;nt;pt;lig2pproxi0;ma0;te;ht",
+ "Comparable": "true¦0:3D;1:3R;2:3G;3:2I;a3Vb3Ec35d2Ve2Of2Bg1Xh1Mi1Gj1Fk1Cl14m0Yn0To0Sp0Jqu0Hr08sItDug0vBw5y4za0R;el11ouO;ary,e7hi6i4ry;ck0Dde,l4n1ry,se;d,y;ny,te;a4i3T;k,ry;a4erda2ulgar;gue,in,st;a7en2Zhi6i5ough,r4;anqu2Een1ue;dy,g38me0ny,r04;ck,rs2A;ll,me,rt,wd3K;aScaQePhNiMkin0ClJmHoFpEt7u5w4;eet,ift;b4dd0Xperfi22rre2A;sta28t3;a9e8iff,r5u4;pVr1;a5ict,o4;ng;ig2Xn0O;a1ep,rn;le,rk,te0;e1Ti2Xright0;ci20ft,l4on,re;emn,id;a4el0;ll,rt;e5i4y;g2Om10;ek,nd2V;ck25l0mp3;a4iSrill,y;dy,l02rp;ve0Kxy;n1Lr4;ce,y;d,fe,int0l1Jv0W;a9e7i6o4ude;mantic,o1Asy,u4;gh,nd;pe,t1Q;a4d,mo0B;dy,l;gg5iGndom,p4re,w;id;ed;ai2i4;ck,et;hoBink,lAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouTud;ey,k0;liYor;ain,easa2;ny;dd,i0ld,ranM;aive,e6i5o4u16;b3isy,rm10sy;bb0ce,mb3;a4r1w;r,t;ad,e6ild,o5u4;nda13te;ist,o1;a5ek,l4;low;s0ty;a9e8i7o4ucky;f0Ln5o17u4ve0w11y0P;d,sy;e0g;ke0l,mp,tt3ve0;e1Swd;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fZsita2;dy,rYv4;en0y;nd15ppy,r4;d4sh;!y;aGenFhDiClBoofy,r4;a9e7i6o4ue11;o4ss;vy;m,s0;at,e4y;dy,n;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiT;u1y;aEeeb3iAl9o7r6u4;ll,n4r0P;!ny;aEesh,iend0;a4nd,rmF;my;at,ir9;erce5nan4;ciB;! ;le;r,ul4;ty;a7erie,sse5v4xtre0C;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i5u4;mb;r6vi5z4;zy;ne;e,ty;a4ep,nB;d4f,r;!ly;ppRrk;agey,h9l8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;evLou1;e4il0;ap,e4;sy;aIiGlDoBr6u4;ff,r0sy;ly;a7i4oad;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",
"Person|Adj": "true¦brown,du2earnest,frank,mi2r0sa1;a0ich,u1;ndy;sty",
- "Infinitive": "true¦0:8V;1:8G;2:9D;3:80;4:7N;5:91;6:9H;7:99;8:82;9:9G;A:92;B:8X;C:7K;D:7U;E:7Q;F:87;G:7V;H:7H;a82b7Jc6Sd5Le4Gf45g41h3Wi3Cj39k37l2Ym2Rnou3Vo2Lp25qu24r19s0AtYuTvRwI;aOeNiLors4rI;eJiI;ng,te;ak,st3;d4e7HthI;draw,er;a2d,ep;i2ke,nIrn;d0t;aIie;li9Eni9ry;nIplift;cov0dJear7JlIplug,tie,ve85;ea9o3K;erIo;cut,go,sta9Gval96whelm;aRePhMoLrI;aIemb3;ffi3Fmp3nsI;aDpi8;pp3ugh4;aJiJrIwaE;eat4i2;nk;aIm92;ch,se;ck3ilor,keImp0r7N;! paE;a0Fc0Ee0Ch08i06l04mugg3n03o01pYquXtQuKwI;all71eeIim;p,t4;bKccumb,ffJggeBmm93p2FrI;mouFvi2;er,i5;li80mJsiIveE;de,st;erAit;aMe7SiKrI;ang3eIi2;ng20w;fIng;f4le;gg0rI;t3ve;a3Ui9;a4DeJit,l6KoI;il,of;ak,nd;lIot6Nw;icCve;eak,i0L;aIi6;m,y;ft,nIt;g,k;aKi5LoJriIun;nk,v5X;ot,rt4;ke,rp4tt0;eIll,nd,que7Nv0w;!k,m;avenAul81;dd4tis1Ay;a0BeJip4oI;am,ut;a07b05c03d02fZgroup,heaYiXlVmUnTpRq36sNtLup,vI;amp,eJiIo2V;sCve;l,rt;i8rI;ie2ofC;eFiKtIurfa5;o1XrI;aHiDuctu8;de,gn,st;el,hra1lIreseF;a5e69;d0ew,o05;aHe31o2;a7eFiIoad,y;e2nq3Mve;mbur1nf2U;r1t;inJleDocus,re9uI;el,rbi9;an5e;aDu5;ei2k7Jla3OoIyc3;gni2Wnci3up,v0;oot,uI;ff;ct,d,liI;se,ze;tt3vi9;a9enGit,o7;aVerTinpoiFlumm0VoSrKuI;b3Oke,ni9rIt;poEs6W;eMoI;cKd,fe4BhibCnoJpo1sp0tru6vI;e,i6o4W;un5;la39u8;aGclu6dJf0occupy,sup0FvI;a5LeF;etermi47iD;aGrtr4Vsse44;cei2fo3Hi9mea7plex,sIva6;eve8iB;mp0rItrol,ve,y;a5St5O;bMccuLpKutJverIwe;lap,s19tu6Au1;gr4Pnu22pa5;era7i3Ypo1;py,r;ser2taH;aMe09iJoIultiply;leBu64;micJnIspla5;ce,g3us;!k;iIke,naA;m,ntaH;aPeLiIo1u39;e,ke,ng0quIv4;eIi66;fy;aKnIss4;d,gI;th4;rn,ve;ng26u1E;eep,nI;e3Row;oHuI;gg3xtaI;po1;gno8mWnIrk;cUdSfRgeBhQitia7ju8q14sOtKun5TvI;eIo0T;nt,st;erJimi5QoxiQrI;odu5u6;aDn,prIru5Q;et;iBpi8tIu8;il,ruD;abCibC;eBo2Bu1;iIulA;ca7;i7lu6;b5Cmer1pI;aEer47ly,oJrI;e2Ris5No2;rt,se,veI;ri9;aLeKiIoiBuE;de,jaInd0;ck;ar,iQ;mp0ng,pp4st4ve;ath0et,i2le1UoKrI;aIow;b,pp3ze;!ve4S;ast4er3Li58lRorMrJuI;lf3Tr3P;eJiIolic;ght4;e0Lsh4;b3DeKfeCgIs4B;eIi2;!t;clo1go,sIwa4J;had2Y;ee,i2Q;a0KdCl0Im0CnUquip,rTsStGvQxI;cNeEha3iMpJtI;ing0Uol;eJi8lIo1unA;aHoC;ct,di7;st,t;e2MlI;a0Xu6;alua7oI;ke,l2;chew,pou1tab13;a1u4G;aYcVdTfSgQhan5joy,lPqOrNsuMtKvI;e0VisI;aAi4L;er,i5rI;aHenGuB;e,re;iGol;ui8;arAiB;aAeIra2ulf;nd0;or5;ang0oIu8;r1w;lo1ou0CrJuI;mb0;oaGy3Z;b3ct;bKerApI;hasiIow0;ze;a0Tody,rI;a5oiI;d0l;ap1eDuI;ci3Ode;rIt;ma0Nn;a0Ne02iKo,rIwind3;aw,edAoI;wn;agno1e,ff0g,mi27sLvI;eIulA;rIst;ge,t;ab3bUcPlodAmant3pNru3GsMtI;iIoEu2W;lJngI;ui9;!l;ol2ua6;eIla5o1ro2;n1r1;a2Ne2WlKoIu0K;uIv0;raA;aIo1;im;a38ur1;af4bZcTduDep4fRliQmNnLpKra1TtaGvI;eIol2;lop;aEiDoE;oIy;te,un5;eJoI;li9;an;mCv0;a5i06oIraud,y;rm;ei2iMoKrI;ee,yI;!pt;de,mIup3;missi2Upo1;de,ma7ph0;aJrief,uI;g,nk;rk;mp4rk4uF;a06ea1h04i03l02oJrIurta17;a2ea7ipp3;ales5eZhabCinci6llYmWnIrro6;cTdQfNju8no7qu0sLtKvI;eIin5;ne,rA;aHin25ribu7;er2iIoli27pi8titu7ult;d0st;eJiIroFu1;de,gu8rm;ss;eJoI;ne;mn,n1;eIlu6ur;al,i2;buBe,men5pI;e7i3ly;eDi6u6;r5xiB;ean1iS;rcumveFte;eIoo1;ri9w;ncIre4t0ulk;el;aXeRi6lPoOrLuI;iJrIy;st,y;ld;aJeastfeMiIoad4;ng;ke;il,l12mba0XrrMth0;eIow;ed;!come,gHha2liLqueaKstJtrIwild0;ay;ow;th;e2tt3;in;bysCckfi8ff3tI;he;it;b17c0Vd0Mff0Kgr0Jl0Fm0Bn05pp01rZsSttPuNvKwaI;it,k4;en;eEoI;id;rt;gIto08;meF;aGeBraD;ct;ch;pi8sJtoI;ni9;aKeIi05u8;mb3rt,ss;le;il;re;g0Ji1ou1rI;anAi2;eaKly,oiFrI;ai1o2;nt;r,se;aMiQnJtI;icipa7;eJoIul;un5y;al;ly1;aJu1;se;lgaIze;ma7;iKlI;eAoIu6;t,w;gn;ee;ix,oI;rd;a01jNmiKoJsoI;rb;pt,rn;niIt;st0;er;ouJuB;st;rn;cLhie2knowledAquiItiva7;es5re;ce;ge;eOomKrJusI;e,tom;ue;moJpI;any,li9;da7;te;pt;andOet,i6oKsI;coKol2;ve;li9rt,uI;nd;sh;de;on",
"Modal": "true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",
"Verb": "true¦born,cannot,gonna,has,keep tabs,msg",
- "Participle": "true¦fl3g1s0writt2;e1h2;iv0one;en;own",
- "Actor|Verb": "true¦aIbDcAd8engineFfool,g6host,judge,m4nerd,p3recruit,s1ushFvolunteFwi0;mp,tneF;cout,p0;ons6y;arent,ilot;a0ime;n,st9;eek,oof,r0uide;aduCoom;elegBoct0;or;ha1o0;a5nscript,ok;mpion,uffeur;it3o2u0;lly,tch0;er;ss;ch;d0ffili1rchite2;di1voc0;ate;ct",
- "Adj|Gerund": "true¦0:2F;1:2H;2:25;3:23;4:20;5:2D;6:27;7:22;a24b1Zc1Hd14e0Yf0Og0Ih0Hi0Ajud1Xl07m04o00pWrQsFtAup9v8w0Pyiel4;ar5eY;lif0s01;aWeBhr9i3ouc7r8wis0;e01oub2us0yi1;ea0Mi8;l2vi1;l2mp0;atisf5creec7hoc0Ekyrocke0lo13oGpFtBu9we8;e12l2;pp1Kr8;gi1pri6roun4;a9ea23i8ri0Aun1C;mula0r3;gge3r8;t2vi1;ark2ee4;a8ot7;ki1ri1;aCe9ive0o8us7;a3l2;defi13fres7ig13laEmai13s0v8war4;ea2itali8ol0Q;si1zi1;gi1ll5mb2vi1;a5erpleAier1Dlun18r8un1J;e8o11;ce4s6vai2;xi1;ffsApNut9ver8wi1;arc7lap0Hp09ri4whel1L;goi1l5st0Y;et0;eande3i9o0Fu8;mb2;s6tiga0;a9i8o0C;fesa0Bmi0vi1;cKg0Vs0;mDn8rri0C;cBsAt9vi8;go1Gti1;e15imida0;pi3ul0;orpo1Drea6;po6;arrowi1ea2orrif5umilia0;lCr8;a0ipZo9uel8;i1li1;undbrea8wi1;ki1;a3ea0Z;aGetc7it0lDoBr9ulf8;il2;ee0Yigh8ust12;te04;r8un4;ebo4th0H;a9o8;a0we3;mi1tte3;di1scina0;mBn9x8;ac0ci0is0plo4;ab2c8du3ga04sT;han0oura03;barras6er02p8;owe3;aJeCi8;s8zz5;appoin0gus0sen0t8;r8u0N;ac0es6;biliDcCfiMgra4mBpres6serAv8;asCelo8;pi1;vi1;an4eaI;a5liH;ta0;maOri1s7un0;aOhLlo6o8ripp2ut0;mEn8rrespon4;cerCfBspi3t8vinQ;in9r8;as0ibu0ol2;ui1;lic0u6;ni1;fCmBp8;e9ro8;mi6;l2ti1;an4;or0;a8ea0il2;llen8rQ;gi1;lOptiva0ri1;eBin4lin4o9rui6u8;d4st2;i2oLri1un8;ci1;coJ;bsoQcLgonJlarImGppea2rEs8;pi3su3to8;n9un4;di1;is7;hi1;ri1;res0;li1;aBu6;si1;mi1;i8zi1;zi1;c8hi1;ele9ompan5;yi1;ra0;ti1;rbi1;ng",
- "Adj|Past": "true¦0:30;1:2R;2:2U;a2Jb2Dc1Ud1Be15f10gift0h0Xi0Qj0Pknown,l0Mm0Hn0Fo0Cp05qua04rVsEtAu7v5w3;arp0ea3or5;kIth2T;a3e0W;ri0;n3pd1s0;derstood,i3;fi0t0;ar5hreatCr3wi2R;a3ou19;ck0in0pp0;get0ni1N;aHcaGeEhDimCm01oak0pAt6u3;bsid28gge2Ms3;pe3ta1S;ct0nd0;at0e5r3uV;ength3ip0;en0;am0reotyp0;eci3ik0ott0;al20fi0;pIul1;ar0ut;a3c1Jle2t1S;l0t0;r0tt25;t3ut0;is1Jur1;aAe3;c7duc0f1Cg6l1new0qu5s3;pe2t3;or0ri2;e22ir0;ist1Xul1;eiv0o3;mme09rd0v1V;lli0ti1A;li19;arallel0i0Kl7o6r3ump0;e4o3;ce0Ilo0Hnou1Tpos0te2;fe0Loc8pY;i1Gli0R;a3e19;nn0;c4rgan1Bverlo3;ok0;cupi0;e3ot0;ed0gle2;a5e4ix0o3ut0;di0Vt0G;as0Qlt0;n3rk0;ag0ufact0O;eft,i4o3;ad0st;cens0mit0st0;agg0us0N;mp8n3sol1;br0debt0f6t3volv0;e3ox0F;gr1n3re18;d0si0J;e2l1oX;li0oLrov0;amm10e1o3;ok0r3;ri0E;aNe6i5lavo09oc05r3;a3i0;ct07g0Mm0;niXx0;ar0;duc1l1mbarraKn7quipp0stabliVx3;agger1p3te5;a4e3;ct0rie0S;nd0;ha0QsZ;aJeAi3;gni01miniOre2s3;a7c5grun05t3;o3reBurb0;rt0;iplSou3;nt0rE;bl0;cenVdOf8l7pre6ra5t3velop0;a3ermO;il0;ng0;ss0;ay0ight0;e4o3;rm0;rr0;m3t0;ag0;alcul1eHharg0lGo8r5u3;lt3stomS;iv1;a4owd0u3;sh0;ck0mp0;d0lo9m6n3ok0vX;centr1f4s3troll0;idVolid1;us0;b4pl3;ic1;in0;ur0;assi5os0;lebr1n5r3;ti3;fi0;tralB;a7i6o4roken,urn3;ed,t;il0r0t3und;tl0;as0;k0laIs0;bandon0cJdGffe2lDnBpp9ss7u3ward0;g4thor3;iz0;me3;nt0;o5u3;m0r0;li0re3;ci1;im1ticip1;at0;leg0t3;er0;ct0;ju4o6va3;nc0;st0;ce3knowledg0;pt0;ed",
- "Person|Verb": "true¦b8ch7dr6foster,gra5hope,ja9lan4ma2ni9ollie,p1rob,s0tra4wade;pike,t5ue;at,eg,ier2;ck,r0;k,shal;ce;ce,nt;ew;ase,u1;iff,l1ob,u0;ck;aze,ossom",
+ "Adj|Gerund": "true¦0:2G;1:2I;2:26;3:24;4:21;5:2E;6:28;7:23;a25b20c1Id15e0Zf0Pg0Jh0Ii0Bjud1Yl08m05o01pWrQsFtAup9v8w0Qyiel4;ar5eZ;lif0s02;aXeBhr9i3ouc7r8wis0;e02oub2us0yi1;ea0Ni8;l2vi1;l2mp0;atisf5creec7enten1Vhoc0Fkyrocke0lo14oGpFtBu9we8;e13l2;pp1Lr8;gi1pri6roun4;a9ea24i8ri0Bun1D;mula0r3;gge3r8;t2vi1;ark2ee4;a8ot7;ki1ri1;aCe9ive0o8us7;a3l2;defi14fres7ig14laFmai14s0v8war4;ea2itali8ol0R;si1zi1;gi1ll5mb2vi1;a5eAier1Elun19r8un1K;e8o12;ce4s6vai2;n4rple8;xi1;ffsApNut9ver8wi1;arc7lap0Hp09ri4whel1L;goi1l5st0Y;et0;eande3i9o0Fu8;mb2;s6tiga0;a9i8o0C;fesa0Bmi0vi1;cKg0Vs0;mDn8rri0C;cBsAt9vi8;go1Gti1;e15imida0;pi3ul0;orpo1Drea6;po6;arrowi1ea2orrif5umilia0;lCr8;a0ipZo9uel8;i1li1;undbrea8wi1;ki1;a3ea0Z;aGetc7it0lDoBr9ulf8;il2;ee0Yigh8ust12;te04;r8un4;ebo4th0H;a9o8;a0we3;mi1tte3;di1scina0;mBn9x8;ac0ci0is0plo4;ab2c8du3ga04sT;han0oura03;barras6er02p8;owe3;aJeCi8;s8zz5;appoin0gus0sen0t8;r8u0N;ac0es6;biliDcCfiMgra4mBpres6serAv8;asCelo8;pi1;vi1;an4eaI;a5liH;ta0;maOri1s7un0;aOhLlo6o8ripp2ut0;mEn8rrespon4;cerCfBspi3t8vinQ;in9r8;as0ibu0ol2;ui1;lic0u6;ni1;fCmBp8;e9ro8;mi6;l2ti1;an4;or0;a8il2;llen8rQ;gi1;lOptiva0ri1;eBin4lin4o9rui6u8;d4st2;i2oLri1un8;ci1;coJ;bsoQcLgonJlarImGppea2rEs8;pi3su3to8;n9un4;di1;is7;hi1;ri1;res0;li1;aBu6;si1;mi1;i8zi1;zi1;c8hi1;ele9ompan5;yi1;ra0;ti1;rbi1;ng",
+ "Person|Verb": "true¦b8ch7dr6foster,gra5hope,ja9lan4ma2ni9ollie,p1rob,s0wade;pike,t5ue;at,eg,ier2;ck,r0;k,shal;ce;ce,nt;ew;ase,u1;iff,l1ob,u0;ck;aze,ossom",
"Person|Place": "true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria",
"Person|Date": "true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"
}
\ No newline at end of file
diff --git a/src/2-two/preTagger/model/lexicon/index.js b/src/2-two/preTagger/model/lexicon/index.js
index 89f7ad2b3..56dded5b7 100644
--- a/src/2-two/preTagger/model/lexicon/index.js
+++ b/src/2-two/preTagger/model/lexicon/index.js
@@ -43,4 +43,5 @@ emoticons.forEach(str => lexicon[str] = 'Emoticon')
delete lexicon['']
delete lexicon[null]
delete lexicon[' ']
+
export { lexicon, switches }
diff --git a/src/2-two/preTagger/model/models/_data.js b/src/2-two/preTagger/model/models/_data.js
index 150c5ece2..d106c8757 100644
--- a/src/2-two/preTagger/model/models/_data.js
+++ b/src/2-two/preTagger/model/models/_data.js
@@ -1,33 +1,45 @@
// generated in ./lib/pairs
export default {
"Comparative": {
- "rules": "ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",
- "exceptions": "good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",
- "rev": "arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"
+ "fwd": "3:ser,ier¦1er:h,t,f,l,n¦1r:e¦2er:ss,or,om",
+ "both": "3er:ver,ear,alm¦3ner:hin¦3ter:lat¦2mer:im¦2er:ng,rm,mb¦2ber:ib¦2ger:ig¦1er:w,p,k,d¦ier:y",
+ "rev": "1:tter,yer¦2:uer,ver,ffer,oner,eler,ller,iler,ster,cer,uler,sher,ener,gher,aner,adder,nter,eter,rter,hter,rner,fter¦3:oser,ooler,eafer,user,airer,bler,maler,tler,eater,uger,rger,ainer,urer,ealer,icher,pler,emner,icter,nser,iser¦4:arser,viner,ucher,rosser,somer,ndomer,moter,oother,uarer,hiter¦5:nuiner,esser,emier¦ar:urther",
+ "ex": "worse:bad¦better:good¦4er:fair,gray,poor¦1urther:far¦3ter:fat,hot,wet¦3er:lay,shy,fun¦3der:mad,sad¦4der:glad¦:¦4r:cute,dire,fake,fine,free,lame,late,pale,rare,ripe,rude,safe,sore,tame,wide¦5r:eerie,stale"
},
"Gerund": {
- "rules": "omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",
- "exceptions": "being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",
- "rev": "lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"
+ "fwd": "1:nning,tting,rring,pping,eing,mming,gging,dding,bbing,kking¦2:eking,oling,eling,eming¦3:velling,siting,uiting,fiting,loting,geting,ialing¦4:graming",
+ "both": "1:iing,fing,xing,ying,oing,hing,wing¦2:tzing,rping,izzing,bting,mning,sping,wling,rling,wding,rbing,uping,lming,wning,mping,oning,lting,mbing,lking,fting,hting,sking,gning,pting,cking,ening,nking,iling,eping,ering,rting,rming,cting,lping,ssing,nting,nding,lding,sting,rning,rding,rking¦3:yaking,uaking,oaning,auling,valing,aiding,naping,euring,tolling,uzzing,ganing,haning,ualing,halling,iasing,auding,ieting,ceting,ouling,voring,ralling,ooding,garing,joring,ooping,oaking,roring,oaming,uelling,nelling,eaping,eeting,ooting,ooming,xiting,keting,ooking,ulling,airing,oaring,biting,outing,oiting,eeding,naling,eaming,oading,earing,delling,ouring,eaking,aiming,illing,oining,eaning,onging,ealing,aining,eading¦4:melling,aboring,ivoting,weating,dfilling,onoring,eriting,imiting,heating,tialling,rgining,otoring,linging,winging,lleting,louding,spelling,looring,mpelling,xcelling,feating,opelling,choring,welling,ymaking,ctoring,calling,peating,iloring,laiting,utoring,uditing,nmaking,mmaking,loating,iciting,waiting,mbating,voiding,otalling,nsoring,nselling,ocusing,itoring,eloping¦5:rselling,umpeting,atrolling,treating,tselling,rpreting,pringing,ummeting,ossoming,elmaking,eselling,rediting,defining,totyping,rfeiting,ntrolling¦5e:chmaking,orsaking,severing,erouting,ecreting,ephoning,uthoring,reathing,pediting,erfering,eotyping,fringing,entoring,ombining,ompeting¦4e:emaking,eething,dmiring,chuting,xciting,rseding,scoping,edoring,pinging,lunging,agining,craping,pleting,eleting,nciting,nfining,ncoding,tponing,ecoding,writing,esaling,gnoring,evoting,mpeding,dhering,mpiling,storing,nviting,ploring¦3e:tining,wining,nuring,ruling,haling,ceding,xuding,rining,nuting,caring,miling,riding,hoking,piring,lading,laking,curing,uading,noting,taping,futing,paring,raking,vening,loding,siring,guring,vading,voking,niting,laning,coring,caping,luting,muting,ruding,ciding,juring,laming,caling,hining,uoting,liding,ciling,duling,tuting,puting,cuting,laring,uiding,tiring,turing,siding,rading,enging,haping,buting,lining,taking,anging,haring,uiring,coming,mining,moting,suring,viding,luding¦2e:tring,zling,uging,oging,gling,iging,vring,fling,lging,iping,obing,psing,pling,ubing,cling,dling,wsing,iking,rsing,dging,kling,ysing,tling,rging,eging,nsing,uning,osing,uming,using,ibing,bling,aging,ising,asing,ating¦2ie:rlying¦1e:zing,uing,cing,ving",
+ "rev": "ying:ie¦1ing:se,ke,te,we,ne,re,de,pe,me,le,c,he¦2ing:ll,ng,dd,ee,ye,oe,or,rg,us¦2ning:un¦2ging:og,ag,ug,ig,eg¦2ming:um¦2ping:ip¦2bing:ub,ab,eb,ob¦3ning:lan,can,hin,pin,win¦3ring:cur,lur,tir,tar,pur,car¦3ing:eat,dit,ool,eel,oat,eem,lel¦3ping:rop,rap,wap,hop,lap,cap¦3ming:tem,wim,rim,kim¦3ting:mat,cut,pot,lit,nit,hat,set,pit,rot¦3ding:hed,bed,bid,red¦3king:rek¦3bing:rib¦3ling:pel¦4ning:egin¦4ing:isit,ruit,ilot,nsit,dget,rkel,rcel¦4ring:efer,nfer¦4ling:abel,evel,ncil,ivel¦4ting:rmit,mmit,ysit,dmit,emit,bmit,tfit,gret,llot¦5ing:arget,posit,rofit¦5ring:nsfer¦5ting:nsmit,orget,cquit¦5ling:ancel,istil",
+ "ex": "3:adding,eating,aiming,aiding,airing,outing,gassing,setting,getting,putting,cutting,winning,sitting,betting,mapping,tapping,letting,bidding,hitting,tanning,netting,popping,fitting,capping,lapping,barring,banning,vetting,topping,rotting,potting,wetting,pitting,budding,hemming,pinning,jetting,kidding,padding,podding,wedding,bedding,donning,warring,penning,gutting,cueing,wadding,petting,napping,matting,tinning¦4:selling,falling,calling,waiting,editing,telling,rolling,heating,boating,hanging,beating,coating,singing,mooring,tolling,felling,polling,discing,seating,voiding,gelling,yelling,seeking,stopping,spanning,stepping,emitting,quitting,dialing,omitting,plotting,clotting,shutting,skinning,slotting,abutting,cramming¦5:bringing,treating,labelling,spelling,stalling,trolling,expelling,wringing,deterring,singeing,befitting,refitting¦6:enrolling,cancelling,distilling,scrolling,strolling,caucusing,travelling¦7:installing,stencilling,recharging,overeating,benefiting,unraveling,programing¦9:reprogramming¦is:being¦2e:using,aging,owing¦3e:making,taking,coming,noting,hiring,filing,coding,citing,doping,baking,coping,hoping,lading,caring,naming,voting,riding,mining,curing,lining,ruling,typing,boring,dining,firing,hiding,piling,taping,waning,baling,boning,faring,honing,luring,timing,wading,fading,biting,zoning,daring,waking,gaming,raking,ceding,tiring,coking,wining,joking,paring,gaping,poking,pining,coring,liming,toting,roping,wiring,aching¦4e:writing,storing,eroding,framing,smoking,tasting,wasting,phoning,shaking,shading,abiding,pasting,priming,shoring,sloping,withing¦5e:defining,refining,enduring,renaming,swathing,fringing,reciting¦1ie:dying,tying,lying,vying¦7e:sunbathing¦10e:recordkeeping"
},
"Participle": {
- "rules": "roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",
- "exceptions": "been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",
- "rev": "uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"
+ "fwd": "1:mt¦2:llen¦3:iven,aken¦:ne¦y:in",
+ "both": "1:wn¦2:me,aten¦3:seen,bidden,isen¦4:roven,asten¦3l:pilt¦3d:uilt¦2e:itten¦1im:wum¦1eak:poken¦1ine:hone¦1ose:osen¦1in:gun¦1ake:woken¦ear:orn¦eal:olen¦eeze:ozen¦et:otten¦ink:unk¦ing:ung",
+ "rev": "2:un¦oken:eak¦ought:eek¦oven:eave¦1ne:o¦1own:ly¦1den:de¦1in:ay¦2t:am¦2n:ee¦3en:all¦4n:rive,sake,take¦5n:rgive",
+ "ex": "2:been¦3:seen,run¦4:given,taken¦5:shaken¦2eak:broken¦1ive:dove¦2y:flown¦3e:hidden,ridden¦1eek:sought¦1ake:woken¦1eave:woven"
},
"PastTense": {
- "rules": "een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",
- "exceptions": "was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",
- "rev": "egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"
+ "fwd": "1:tted,wed,gged,nned,een,rred,pped,yed,bbed,oed,dded,rd,s,wn,mmed¦2:eed,nded,et,hted,st,oled,ut,emed,eled,lded,ken,rt,nked,apt,ant,eped,eked¦3:eared,eat,eaded,nelled,ealt,eeded,ooted,eaked,eaned,eeted,mited,bid,uit,ead,uited,ealed,geted,velled¦4:ebuted,hined,taked,comed¦y:ied¦ome:ame¦ear:ore¦ind:ound¦ep:pt¦ink:ank,unk¦all:ell¦ee:aw¦ive:ave¦eeze:oze¦old:eld¦ave:ft¦ake:ook¦ing:ang¦ell:old¦ite:ote¦ide:ode¦ine:one¦in:un,on¦eal:ole¦im:am¦ie:ay¦and:ood¦1ise:rose¦1eak:roke¦1ing:rought,rung¦1ive:rove¦1id:bade¦1et:got¦1y:aid¦3e:lid¦3d:pent",
+ "both": "1:fed,xed,hed¦2:rped,lked,kied,lmed,lped,uped,bted,rbed,rked,wned,rled,mped,fted,mned,mbed,zzed,ened,cked,gned,lted,sked,ued,zed,nted,ered,rted,rmed,ced,sted,rned,ssed,rded,pted,ved,cted¦3:oomed,iped,oided,eiled,yped,taled,moned,yled,lit,kled,oaked,gled,naled,fled,outed,uined,oared,valled,koned,soned,aided,obed,ibed,meted,nicked,rored,micked,keted,vred,ooped,oaded,rited,aired,auled,filled,ouled,ooded,ceted,tolled,oited,bited,tled,vored,dled,eamed,nsed,rsed,sited,owded,pled,sored,rged,osed,oured,psed,oated,loned,aimed,illed,eured,tred,ioned,celled,bled,wsed,ooked,oiled,itzed,iked,iased,onged,ased,ailed,uned,umed,ained,auded,nulled,ysed,eged,ised,aged,oined,ated,used,dged,doned¦4:honed,tuted,pited,naked,miled,helled,haped,cored,caled,tired,peated,futed,ciled,called,tined,moted,filed,sided,poned,iloted,uaded,lleted,huted,ruled,cured,named,preted,voked,vaded,sured,pired,haled,peded,gined,nited,uided,ramed,feited,laked,gured,ctored,unged,loded,xpelled,cuted,caped,eloped,ralled,rined,coded,icited,vided,spelled,voted,mined,sired,noted,lined,nselled,luted,vened,jured,fided,puted,piled,pared,olored,cided,hoked,enged,tured,geoned,cotted,lamed,uiled,waited,udited,anged,luded,mired,uired,raded¦5:umpeted,ailored,rseded,quared,treated,eduled,ecited,rammed,eceded,atrolled,nitored,basted,nvited,rfered,itialled,ncited,gnored,truded,xcited,nrolled,namelled,plored,clared,redited,nfined,pleted,ompelled,llided,ircled,lcined,eathed,nefited,ibuted,lloted,dhered,cceded¦2aw:drew¦2ot:hot¦2ke:made¦2ow:hrew,grew¦2ose:hose¦2d:ilt¦2in:egan¦1go:rwent¦1ink:hought¦1ick:tuck¦1ike:ruck¦1eak:poke,nuck¦1it:pat¦1o:did¦1ow:new¦1el:elt¦1ing:lung¦1ake:woke¦ig:ug",
+ "rev": "3:rst,urt,set,ous,hed,hut,cut¦4:tbid¦5:dcast,eread,pread,erbid¦ought:uy,eek¦ung:ang¦1ied:ny,ly,dy,ry,fy,py,vy,by¦1pt:eep¦1ank:rink¦1ore:bear,wear¦1ave:give¦1oze:reeze¦1ound:rind¦1ook:take,hake¦1aw:see¦1old:sell¦1ote:rite¦1ole:teal¦1unk:tink¦1am:wim¦1ay:lie¦1ood:tand¦1eld:hold¦2d:he,ge,re,le,leed,ne,reed,be,ye,lee,pe¦2ed:dd,oy,or,ey,ho,gg,rr¦2ame:ecome,rcome¦2ped:ip¦2ged:ag,og,ug¦2bed:ub,ab,ib,ob¦2id:pay¦2ang:pring¦2ove:trive¦2med:um¦3ted:mit,hat,mat,lat,pot¦3ed:low,tow,und,ool,ond,eem,lay,dow,xit,eld,cus,ald,iew,bel,oan,del,uld,law,lel,eat,ray,ull,ank,fin,oam,oll,how,iek,tay,haw,ait¦3d:ste,ede,ode,ete,ree,ame,tee,oke,ote,ime¦3red:lur,cur,pur¦3ped:hop,rop,tep,top,rap¦3ded:bed,rod,kid¦3ade:orbid¦3led:uel¦3ned:lan,can,kin,pan,tun¦3med:rim¦4ted:quit,llot¦4ed:peal,cend,lend,rrow,rand,lean,mand,ceal,tend,fend,pear,anel,pand,reet,link,evel,imit,lead,mend,enew,cind,crew,head,pell,tall,well,rend,mell¦4led:nnel,qual¦4n:sake,trew¦4red:nfer,efer,sfer¦4ded:hred¦4ned:rpin¦5ed:ppend,light,epend,ndear,xceed,xpend,oceed,cruit,emind,cceed,spend,arget,hread,eight¦5led:ntrol,ravel¦5ped:erlap",
+ "ex": "2:been,upped¦3:added,aged,aided,aimed,aired,bid,died,dyed,egged,erred,eyed,fit,gassed,hit,lied,owed,pent,pied,tied,used,vied,banned,barred,bet,canned,capped,cut,donned,ended,feed,inked,jarred,let,manned,mapped,mowed,napped,netted,padded,panned,pitted,popped,potted,put,set,sewn,sowed,tanned,tapped,topped,vowed,weed¦4:ached,baked,baled,boned,bored,called,caned,cared,ceded,cited,coded,cored,cubed,cured,dared,dined,edited,exited,faked,fared,filed,fined,fired,fuelled,gamed,gelled,hired,hoped,joked,lined,loaned,mined,named,noted,piled,poked,polled,pored,pulled,reaped,roamed,rolled,ruled,seated,shed,sided,taped,timed,tolled,toned,voted,waited,walled,waned,winged,wired,zoned,banded,beat,brewed,cast,cost,dealt,feared,folded,footed,handed,headed,heard,knitted,landed,leaked,leapt,linked,meant,minded,molded,neared,needed,peaked,plodded,plotted,quit,read,rooted,sealed,seeded,seeped,shunned,skimmed,slammed,sparred,stemmed,stirred,suited,tended,thinned,twinned¦5:basted,cheated,equalled,eroded,exiled,focused,opined,pleated,primed,quoted,shared,shored,sloped,smoked,spelled,stalled,stored,swelled,tasted,treated,wasted,smelled,breaded,cleared,debuted,deterred,freaked,rebutted,speeded,staked¦6:anchored,defeated,defined,endured,impaled,propelled,refined,revered,strolled,recast,regretted,revealed,thrust,unfolded¦7:authored,combined,competed,conceded,controlled,entwined,excreted,installed,redefined,restored,welcomed¦8:expedited,infringed¦9:persevered,copyrighted¦10:intertwined¦eat:ate¦is:was¦go:went¦are:were¦3d:bent,lent,rent,sent¦3e:bit,fled,hid,lost¦3ed:bled,bred¦2ow:blew,grew¦1uy:bought¦2tch:caught¦1o:did¦1ive:dove,gave¦2aw:drew¦2ed:fed¦2y:flew,laid,paid,said¦1ight:fought¦1et:got¦2ve:had¦1ang:hung¦2ad:led¦2ght:lit¦2ke:made¦2et:met¦1un:ran¦1ise:rose¦1it:sat¦1eek:sought¦1each:taught¦1ake:woke,took¦1eave:wove¦2ise:arose¦1ear:bore,tore,wore¦1ind:bound,found,wound¦2eak:broke¦2ing:brought,wrung¦1ome:came¦2ive:drove¦1all:fell¦4et:forgot¦1old:held¦2ave:left¦1ing:rang,sang¦1ide:rode¦1ink:sank¦1ee:saw¦2ine:shone¦4e:slid¦1ell:sold,told¦4d:spent¦2in:spun¦1in:won"
},
"PresentTense": {
- "rules": "as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",
- "exceptions": "are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",
- "rev": "uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"
+ "fwd": "1:oes¦1ve:as",
+ "both": "1:xes¦2:zzes,ches,shes,sses¦2y:llies,plies¦1y:bies,ties,vies,nies,pies,dies,ries,fies¦:s",
+ "rev": "1ies:ly¦2es:us,go¦2ses:as¦3es:cho",
+ "ex": "2:does,goes¦3:gasses¦5:focuses¦is:are¦3y:relies¦2y:flies¦2ve:has"
},
"Superlative": {
- "rules": "east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",
- "exceptions": "good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",
- "rev": "east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"
+ "fwd": "1st:e¦1est:l,m,f,s¦1iest:cey¦2est:or,ir¦3est:ver",
+ "both": "4:east¦5:hwest¦5lest:erful¦4est:weet,lgar,tter,oung¦4most:uter¦3est:ger,der,rey,iet,ong,ear¦3test:lat¦3most:ner¦2est:pt,ft,nt,ct,rt,ht¦2test:it¦2gest:ig¦1est:b,k,n,p,h,d,w¦iest:y",
+ "rev": "1:ttest,nnest,yest¦2:sest,stest,rmest,cest,vest,lmest,olest,ilest,ulest,ssest,imest,uest¦3:rgest,eatest,oorest,plest,allest,urest,iefest,uelest,blest,ugest,amest,yalest,ealest,illest,tlest,itest¦4:cerest,eriest,somest,rmalest,ndomest,motest,uarest,tiffest¦5:leverest,rangest¦ar:urthest¦3ey:riciest",
+ "ex": "best:good¦worst:bad¦5est:great¦4est:fast,full,fair,dull¦3test:hot,wet,fat¦4nest:thin¦1urthest:far¦3est:gay,shy,ill¦4test:neat¦4st:late,wide,fine,safe,cute,fake,pale,rare,rude,sore,ripe,dire¦6st:severe"
+ },
+ "AdjToNoun": {
+ "fwd": "1:tistic,eable,lful,sful,ting,tty¦2:onate,rtable,geous,ced,seful,ctful¦3:ortive,ented¦arity:ear¦y:etic¦fulness:begone¦1ity:re¦1y:tiful,gic¦2ity:ile,imous,ilous,ime¦2ion:ated¦2eness:iving¦2y:trious¦2ation:iring¦2tion:vant¦3ion:ect¦3ce:mant,mantic¦3tion:irable¦3y:est,estic¦3m:mistic,listic¦3ess:ning¦4n:utious¦4on:rative,native,vative,ective¦4ce:erant",
+ "both": "1:king,wing¦2:alous,ltuous,oyful,rdous¦3:gorous,ectable,werful,amatic¦4:oised,usical,agical,raceful,ocused,lined,ightful¦5ness:stful,lding,itous,nuous,ulous,otous,nable,gious,ayful,rvous,ntous,lsive,peful,entle,ciful,osive,leful,isive,ncise,reful,mious¦5ty:ivacious¦5ties:ubtle¦5ce:ilient,adiant,atient¦5cy:icient¦5sm:gmatic¦5on:sessive,dictive¦5ity:pular,sonal,eative,entic¦5sity:uminous¦5ism:conic¦5nce:mperate¦5ility:mitable¦5ment:xcited¦5n:bitious¦4cy:brant,etent,curate¦4ility:erable,acable,icable,ptable¦4ty:nacious,aive,oyal,dacious¦4n:icious¦4ce:vient,erent,stent,ndent,dient,quent,ident¦4ness:adic,ound,hing,pant,sant,oing,oist,tute¦4icity:imple¦4ment:fined,mused¦4ism:otic¦4ry:dantic¦4ity:tund,eral¦4edness:hand¦4on:uitive¦4lity:pitable¦4sm:eroic,namic¦4sity:nerous¦3th:arm¦3ility:pable,bable,dable,iable¦3cy:hant,nant,icate¦3ness:red,hin,nse,ict,iet,ite,oud,ind,ied,rce¦3ion:lute¦3ity:ual,gal,volous,ial¦3ce:sent,fensive,lant,gant,gent,lent,dant¦3on:asive¦3m:fist,sistic,iastic¦3y:terious,xurious,ronic,tastic¦3ur:amorous¦3e:tunate¦3ation:mined¦3sy:rteous¦3ty:ain¦3ry:ave¦3ment:azed¦2ness:de,on,ue,rn,ur,ft,rp,pe,om,ge,rd,od,ay,ss,er,ll,oy,ap,ht,ld,ad,rt¦2inousness:umous¦2ity:neous,ene,id,ane¦2cy:bate,late¦2ation:ized¦2ility:oble,ible¦2y:odic¦2e:oving,aring¦2s:ost¦2itude:pt¦2dom:ee¦2ance:uring¦2tion:reet¦2ion:oted¦2sion:ending¦2liness:an¦2or:rdent¦1th:ung¦1e:uable¦1ness:w,h,k,f¦1ility:mble¦1or:vent¦1ement:ging¦1tiquity:ncient¦1ment:hed¦verty:or¦ength:ong¦eat:ot¦pth:ep¦iness:y",
+ "rev": "",
+ "ex": "5:forceful,humorous¦8:charismatic¦13:understanding¦5ity:active¦11ness:adventurous,inquisitive,resourceful¦8on:aggressive,automatic,perceptive¦7ness:amorous,fatuous,furtive,ominous,serious¦5ness:ample,sweet¦12ness:apprehensive,cantankerous,contemptuous,ostentatious¦13ness:argumentative,conscientious¦9ness:assertive,facetious,imperious,inventive,oblivious,rapacious,receptive,seditious,whimsical¦10ness:attractive,expressive,impressive,loquacious,salubrious,thoughtful¦3edom:boring¦4ness:calm,fast,keen,tame¦8ness:cheerful,gracious,specious,spurious,timorous,unctuous¦5sity:curious¦9ion:deliberate¦8ion:desperate¦6e:expensive¦7ce:fragrant¦3y:furious¦9ility:ineluctable¦6ism:mystical¦8ity:physical,proactive,sensitive,vertical¦5cy:pliant¦7ity:positive¦9ity:practical¦12ism:professional¦6ce:prudent¦3ness:red¦6cy:vagrant¦3dom:wise"
}
}
\ No newline at end of file
diff --git a/src/2-two/preTagger/model/models/index.js b/src/2-two/preTagger/model/models/index.js
index c7c6699e1..f3efad395 100644
--- a/src/2-two/preTagger/model/models/index.js
+++ b/src/2-two/preTagger/model/models/index.js
@@ -18,6 +18,8 @@ const toSuperlative = uncompress(data.Superlative)
const fromComparative = reverse(toComparative)
const fromSuperlative = reverse(toSuperlative)
+const adjToNoun = uncompress(data.AdjToNoun)
+
export default {
fromPast,
fromPresent,
@@ -31,6 +33,7 @@ export default {
toComparative,
toSuperlative,
fromComparative,
- fromSuperlative
+ fromSuperlative,
+ adjToNoun
}
// console.log(convert('collide', toPast))
\ No newline at end of file
diff --git a/src/2-two/preTagger/model/patterns/suffixes.js b/src/2-two/preTagger/model/patterns/suffixes.js
index 0df3894a3..1f31f78e6 100644
--- a/src/2-two/preTagger/model/patterns/suffixes.js
+++ b/src/2-two/preTagger/model/patterns/suffixes.js
@@ -68,6 +68,7 @@ export default [
ign: Inf,
ful: Adj,
bal: Adj,
+ ton: Noun,
},
{
//4-letter
@@ -156,7 +157,15 @@ export default [
lyse: Inf,
iant: Adj,
nary: Adj,
+ ghty: Adj,
+ uent: Adj,
erer: Actor,//caterer
+ bury: Place,
+ dorf: Noun,
+ esty: Noun,
+ wych: Place,
+ dale: Place,
+ folk: Place,
},
{
//5-letter
@@ -206,7 +215,12 @@ export default [
// ctory: Adj,
rient: Sing,
dient: Sing,
- maker: Actor
+ maker: Actor,
+ burgh: Place,
+ mouth: Place,
+ ceter: Place,
+ ville: Place,
+ worth: Noun
},
{
//6-letter
@@ -221,6 +235,8 @@ export default [
worker: Actor,
master: Actor,
writer: Actor,
+ brough: Place,
+ cester: Place
},
{
//7-letter
diff --git a/src/2-two/swap/api/swap.js b/src/2-two/swap/api/swap.js
index 0b88084c4..b117f4bff 100644
--- a/src/2-two/swap/api/swap.js
+++ b/src/2-two/swap/api/swap.js
@@ -6,7 +6,7 @@ const swapNoun = function (m, lemma) {
const toPlural = m.methods.two.transform.noun.toPlural
str = toPlural(lemma, m.model)
}
- m.replaceWith(str)
+ m.replaceWith(str, { possessives: true })
}
const swapAdverb = function (m, lemma) {
@@ -31,7 +31,9 @@ const swapAdjective = function (m, lemma) {
}
const swap = function (from, to, tag) {
- let reg = from.split(/ /g).map(str => `{${str}}`).join(' ')
+ let reg = from.split(/ /g).map(str => str.toLowerCase().trim())
+ reg = reg.filter(str => str)
+ reg = reg.map(str => `{${str}}`).join(' ')
let m = this.match(reg)
// guard against some homonyms
if (tag) {
diff --git a/src/3-three/misc/adjectives/index.js b/src/3-three/adjectives/plugin.js
similarity index 96%
rename from src/3-three/misc/adjectives/index.js
rename to src/3-three/adjectives/plugin.js
index 07e49043a..0be2d280d 100644
--- a/src/3-three/misc/adjectives/index.js
+++ b/src/3-three/adjectives/plugin.js
@@ -26,8 +26,8 @@ const api = function (View) {
let json = m.toView().json(opts)[0] || {}
let str = toRoot(m)
json.adjective = {
- adverb: toAdverb(str),
- noun: toNoun(str),
+ adverb: toAdverb(str, this.model),
+ noun: toNoun(str, this.model),
superlative: toSuperlative(str, this.model),
comparative: toComparative(str, this.model),
}
@@ -100,4 +100,4 @@ const api = function (View) {
return new Adjectives(m.document, m.pointer)
}
}
-export default api
+export default { api }
diff --git a/src/3-three/misc/adverbs/index.js b/src/3-three/adverbs/plugin.js
similarity index 65%
rename from src/3-three/misc/adverbs/index.js
rename to src/3-three/adverbs/plugin.js
index d08b232cb..0e13c2b74 100644
--- a/src/3-three/misc/adverbs/index.js
+++ b/src/3-three/adverbs/plugin.js
@@ -1,3 +1,9 @@
+// guard against superlative+comparative forms
+const toRoot = function (adj) {
+ let str = adj.compute('root').text('root')
+ return str
+}
+
// return the nth elem of a doc
const api = function (View) {
@@ -6,6 +12,15 @@ const api = function (View) {
super(document, pointer, groups)
this.viewType = 'Adverbs'
}
+ conjugate(n) {
+ return this.getNth(n).map(adv => {
+ let adj = toRoot(adv)
+ return {
+ Adverb: adv.text('normal'),
+ Adjective: adj,
+ }
+ }, [])
+ }
json(opts = {}) {
const fromAdverb = this.methods.two.transform.adjective.fromAdverb
opts.normal = true
@@ -25,4 +40,4 @@ const api = function (View) {
return new Adverbs(m.document, m.pointer)
}
}
-export default api
+export default { api }
diff --git a/src/3-three/chunker/api/chunks.js b/src/3-three/chunker/api/chunks.js
index c410593a5..7b95d5261 100644
--- a/src/3-three/chunker/api/chunks.js
+++ b/src/3-three/chunker/api/chunks.js
@@ -1,36 +1,24 @@
+// split terms into Nounphrase, verbphrase, etc groups
const chunks = function (doc) {
- let carry = []
- let ptr = null
- let current = null
- doc.docs.forEach(terms => {
+ let all = []
+ let lastOne = null
+ // first, split by comma, etc
+ let m = doc.clauses()
+ // loop through each clause
+ m.docs.forEach(terms => {
terms.forEach(term => {
- // start a new chunk
- if (term.chunk !== current) {
- if (ptr) {
- ptr[2] = term.index[1]
- carry.push(ptr)
- }
- current = term.chunk
- ptr = [term.index[0], term.index[1]]
+ // new chunk
+ if (!term.chunk || term.chunk !== lastOne) {
+ lastOne = term.chunk
+ all.push([term.index[0], term.index[1], term.index[1] + 1])
+ } else {
+ // keep the chunk going
+ all[all.length - 1][2] = term.index[1] + 1
}
})
+ lastOne = null
})
- if (ptr) {
- carry.push(ptr)
- }
- let parts = doc.update(carry)
- // split up verb-phrases, and noun-phrases
- parts = parts.map(c => {
- if (c.has('')) {
- return c.nouns()
- }
- // if (c.has('')) {
- // if (c.verbs().length > 1) {
- // console.log(c.text())
- // }
- // }
- return c
- })
+ let parts = doc.update(all)
return parts
}
export default chunks
diff --git a/src/3-three/misc/plugin.js b/src/3-three/misc/plugin.js
index 86f657531..c8e269795 100644
--- a/src/3-three/misc/plugin.js
+++ b/src/3-three/misc/plugin.js
@@ -1,6 +1,4 @@
import addAcronyms from './acronyms/index.js'
-import addAdjectives from './adjectives/index.js'
-import addAdverbs from './adverbs/index.js'
import addParentheses from './parentheses/index.js'
import addPossessives from './possessives/index.js'
import addQuotations from './quotations/index.js'
@@ -9,8 +7,6 @@ import addSelections from './selections/index.js'
export default {
api: function (View) {
addAcronyms(View)
- addAdjectives(View)
- addAdverbs(View)
addParentheses(View)
addPossessives(View)
addQuotations(View)
diff --git a/src/3-three/misc/quotations/fns.js b/src/3-three/misc/quotations/fns.js
index 95bbeaea1..acf284369 100644
--- a/src/3-three/misc/quotations/fns.js
+++ b/src/3-three/misc/quotations/fns.js
@@ -1,3 +1,4 @@
+/* eslint-disable regexp/no-dupe-characters-character-class */
const pairs = {
'\u0022': '\u0022', // 'StraightDoubleQuotes'
'\uFF02': '\uFF02', // 'StraightDoubleQuotesWide'
@@ -21,8 +22,8 @@ const pairs = {
'\u301F': '\u301E', // 'LowPrimeDoubleQuotesReversed'
}
-const hasOpen = RegExp('(' + Object.keys(pairs).join('|') + ')')
-const hasClosed = RegExp('(' + Object.values(pairs).join('|') + ')')
+const hasOpen = RegExp('[' + Object.keys(pairs).join('') + ']')
+const hasClosed = RegExp('[' + Object.values(pairs).join('') + ']')
const findEnd = function (terms, i) {
const have = terms[i].pre.match(hasOpen)[0] || ''
diff --git a/src/3-three/normalize/api.js b/src/3-three/normalize/api.js
index 429731d51..dc642e4e7 100644
--- a/src/3-three/normalize/api.js
+++ b/src/3-three/normalize/api.js
@@ -9,7 +9,7 @@ const split = (str) => {
}
const light = 'unicode|punctuation|whitespace|acronyms'
-const medium = '|case|contractions|parentheses|quotations|emoji|honorifics'
+const medium = '|case|contractions|parentheses|quotations|emoji|honorifics|debullet'
const heavy = '|possessives|adverbs|nouns|verbs'
const presets = {
light: split(light),
diff --git a/src/3-three/normalize/methods.js b/src/3-three/normalize/methods.js
index c346d7c97..fa23b24ca 100644
--- a/src/3-three/normalize/methods.js
+++ b/src/3-three/normalize/methods.js
@@ -100,4 +100,15 @@ export default {
doc.numbers().toNumber()
},
+ /** remove bullets from beginning of phrase */
+ 'debullet': (doc) => {
+ const hasBullet = /^\s*([-–—*•])\s*$/
+ doc.docs.forEach(terms => {
+ //remove bullet symbols
+ if (hasBullet.test(terms[0].pre)) {
+ terms[0].pre = terms[0].pre.replace(hasBullet, '')
+ }
+ })
+ return doc
+ }
}
diff --git a/src/3-three/nouns/api/api.js b/src/3-three/nouns/api/api.js
index 308a0d39d..8c1327756 100644
--- a/src/3-three/nouns/api/api.js
+++ b/src/3-three/nouns/api/api.js
@@ -2,10 +2,9 @@ import find from '../find.js'
import parseNoun from './parse.js'
import toJSON from './toJSON.js'
import toPlural from './toPlural.js'
+import hasPlural from './hasPlural.js'
import toSingular from './toSingular.js'
-// return the nth elem of a doc
-
const api = function (View) {
class Nouns extends View {
constructor(document, pointer, groups) {
@@ -27,7 +26,24 @@ const api = function (View) {
return json
}, [])
}
-
+ conjugate(n) {
+ const methods = this.world.methods.two.transform.noun
+ return this.getNth(n).map(m => {
+ let parsed = parseNoun(m)
+ let root = parsed.root.compute('root').text('root')
+ let res = {
+ Singular: root,
+ }
+ if (hasPlural(parsed.root)) {
+ res.Plural = methods.toPlural(root, this.model)
+ }
+ // only show plural if one exists
+ if (res.Singular === res.Plural) {
+ delete res.Plural
+ }
+ return res
+ }, [])
+ }
isPlural(n) {
let res = this.filter(m => parseNoun(m).isPlural)
return res.getNth(n)
diff --git a/src/3-three/nouns/api/hasPlural.js b/src/3-three/nouns/api/hasPlural.js
new file mode 100644
index 000000000..afd601242
--- /dev/null
+++ b/src/3-three/nouns/api/hasPlural.js
@@ -0,0 +1,8 @@
+
+const hasPlural = function (root) {
+ if (root.has('^(#Uncountable|#ProperNoun|#Place|#Pronoun|#Acronym)+$')) {
+ return false
+ }
+ return true
+}
+export default hasPlural
\ No newline at end of file
diff --git a/src/3-three/nouns/api/toPlural.js b/src/3-three/nouns/api/toPlural.js
index a6aca7bf9..bd7833319 100644
--- a/src/3-three/nouns/api/toPlural.js
+++ b/src/3-three/nouns/api/toPlural.js
@@ -1,20 +1,18 @@
-const keep = { tags: true }
+import hasPlural from './hasPlural.js'
-const hasPlural = function (parsed) {
- let { root } = parsed
- if (root.has('^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun|#Acronym)+$')) {
- return false
- }
- return true
-}
+const keep = { tags: true }
const nounToPlural = function (m, parsed) {
// already plural?
if (parsed.isPlural === true) {
return m
}
+ // handle "steve's"
+ if (parsed.root.has('#Possessive')) {
+ parsed.root = parsed.root.possessives().strip()
+ }
// is a plural appropriate?
- if (!hasPlural(parsed)) {
+ if (!hasPlural(parsed.root)) {
return m
}
const { methods, model } = m.world
diff --git a/src/3-three/nouns/find.js b/src/3-three/nouns/find.js
index ef46cf164..71153abca 100644
--- a/src/3-three/nouns/find.js
+++ b/src/3-three/nouns/find.js
@@ -27,6 +27,7 @@ const findNouns = function (doc) {
m = m.splitOn('#Noun [#Determiner]', 0)
// his excuses
// m = m.splitAfter('(his|hers|yours|ours|theirs)')
+ // m = m.not('^#Determiner')
//ensure there's actually a noun
m = m.if('#Noun')
return m
diff --git a/src/3-three/verbs/api/api.js b/src/3-three/verbs/api/api.js
index 6d04243ff..dcaf26377 100644
--- a/src/3-three/verbs/api/api.js
+++ b/src/3-three/verbs/api/api.js
@@ -1,14 +1,16 @@
import find from '../find.js'
import toJSON from './toJSON.js'
import parseVerb from './parse/index.js'
-import toInfinitive from './conjugate/toInfinitive.js'
+import toInf from './conjugate/toInfinitive.js'
import toPast from './conjugate/toPast.js'
+import toParticiple from './conjugate/toParticiple.js'
import toPresent from './conjugate/toPresent.js'
import toFuture from './conjugate/toFuture.js'
import toGerund from './conjugate/toGerund.js'
import getSubject from './parse/getSubject.js'
import getGrammar from './parse/grammar/index.js'
import toNegative from './conjugate/toNegative.js'
+import { getTense } from './lib.js'
const api = function (View) {
@@ -55,7 +57,7 @@ const api = function (View) {
return this.getNth(n).map(vb => {
let parsed = parseVerb(vb)
let info = getGrammar(vb, parsed)
- return toInfinitive(vb, parsed, info.form)
+ return toInf(vb, parsed, info.form)
})
}
toPresentTense(n) {
@@ -86,7 +88,15 @@ const api = function (View) {
return toGerund(vb, parsed, info.form)
})
}
+ toPastParticiple(n) {
+ return this.getNth(n).map(vb => {
+ let parsed = parseVerb(vb)
+ let info = getGrammar(vb, parsed)
+ return toParticiple(vb, parsed, info.form)
+ })
+ }
conjugate(n) {
+ const { conjugate, toInfinitive } = this.world.methods.two.transform.verb
return this.getNth(n).map(vb => {
let parsed = parseVerb(vb)
let info = getGrammar(vb, parsed)
@@ -94,12 +104,12 @@ const api = function (View) {
if (info.form === 'imperative') {
info.form = 'simple-present'
}
- return {
- Infinitive: toInfinitive(vb.clone(), parsed, info.form).text('normal'),
- PastTense: toPast(vb.clone(), parsed, info.form).text('normal'),
- PresentTense: toPresent(vb.clone(), parsed, info.form).text('normal'),
- FutureTense: toFuture(vb.clone(), parsed, info.form).text('normal'),
+ let inf = parsed.root.text('normal')
+ if (!parsed.root.has('#Infinitive')) {
+ let tense = getTense(parsed.root)
+ inf = toInfinitive(inf, vb.model, tense) || inf
}
+ return conjugate(inf, vb.model)
}, [])
}
diff --git a/src/3-three/verbs/api/conjugate/toGerund.js b/src/3-three/verbs/api/conjugate/toGerund.js
index f64ab6420..baf1d1374 100644
--- a/src/3-three/verbs/api/conjugate/toGerund.js
+++ b/src/3-three/verbs/api/conjugate/toGerund.js
@@ -16,14 +16,17 @@ const toGerund = function (vb, parsed) {
let gerund = conjugate(str, vb.model).Gerund
// 'are walking', 'is walking'
if (gerund) {
- gerund = `${isAreAm(vb, parsed)} ${gerund}`
+ let aux = isAreAm(vb, parsed)
vb.replace(root, gerund, keep)
- }
-
- // remove any existing auxiliary
- if (auxiliary.found) {
vb.remove(auxiliary)
+ vb.prepend(aux)//.match(aux)
}
+ // remove any existing auxiliary
+ // if (auxiliary.found) {
+ // vb.match(auxiliary).debug()
+ // vb.remove(auxiliary)
+ // }
+
vb.replace('not is', 'is not')
vb.replace('not are', 'are not')
vb.fullSentence().compute(['tagger', 'chunks'])
diff --git a/src/3-three/verbs/api/conjugate/toParticiple.js b/src/3-three/verbs/api/conjugate/toParticiple.js
new file mode 100644
index 000000000..d2e0780a5
--- /dev/null
+++ b/src/3-three/verbs/api/conjugate/toParticiple.js
@@ -0,0 +1,120 @@
+import { noop, getTense, getSubject } from '../lib.js'
+
+const haveHas = function (vb, parsed) {
+ let subj = getSubject(vb, parsed)
+ let m = subj.subject
+ if (m.has('(i|we|you)')) {
+ return 'have'
+ }
+ // the dog has
+ if (subj.plural === false) {
+ return 'has'
+ }
+ // spencer has
+ if (m.has('he') || m.has('she') || m.has('#Person')) {
+ return 'has'
+ }
+ return 'have'
+}
+
+// walk-> has walked
+const simple = (vb, parsed) => {
+ const { conjugate, toInfinitive } = vb.methods.two.transform.verb
+ const { root, auxiliary } = parsed
+ // 'i may'
+ if (root.has('#Modal')) {
+ return vb
+ }
+ let str = root.text({ keepPunct: false })
+ str = toInfinitive(str, vb.model, getTense(root))
+ let all = conjugate(str, vb.model)
+ // 'driven' || 'drove'
+ str = all.Participle || all.PastTense
+
+ if (str) {
+ vb = vb.replace(root, str)
+ // 'have/had/has eaten'
+ let have = haveHas(vb, parsed)
+ vb.prepend(have).match(have).tag('Auxiliary')
+ vb.remove(auxiliary)
+ }
+
+ return vb
+}
+
+
+
+const forms = {
+ // walk -> walked
+ 'infinitive': simple,
+ // he walks -> he walked
+ 'simple-present': simple,
+ // he walked
+ // 'simple-past': noop,
+ // he will walk -> he walked
+ 'simple-future': (vb, parsed) => vb.replace('will', haveHas(vb, parsed)),
+
+ // he is walking
+ // 'present-progressive': noop,
+ // he was walking
+ // 'past-progressive': noop,
+ // he will be walking
+ // 'future-progressive': noop,
+
+ // has walked -> had walked (?)
+ 'present-perfect': noop,
+ // had walked
+ 'past-perfect': noop,
+ // will have walked -> had walked
+ 'future-perfect': (vb, parsed) => vb.replace('will have', haveHas(vb, parsed)),
+
+ // has been walking -> had been
+ 'present-perfect-progressive': noop,
+ // had been walking
+ 'past-perfect-progressive': noop,
+ // will have been -> had
+ 'future-perfect-progressive': noop,
+
+ // got walked
+ // 'passive-past': noop,
+ // is being walked -> 'was being walked'
+ // 'passive-present': noop,
+ // will be walked -> had been walked
+ // 'passive-future': noop,
+
+ // would be walked -> 'would have been walked'
+ // 'present-conditional': noop,
+ // would have been walked
+ // 'past-conditional': noop,
+
+ // is going to drink -> was going to drink
+ // 'auxiliary-future': noop,
+ // used to walk
+ // 'auxiliary-past': noop,
+ // we do walk -> we did walk
+ // 'auxiliary-present': noop,
+
+ // must walk -> 'must have walked'
+ // 'modal-infinitive': noop,
+ // must have walked
+ // 'modal-past': noop,
+ // wanted to walk
+ // 'want-infinitive': noop,
+ // started looking
+ // 'gerund-phrase': noop,
+}
+
+const toPast = function (vb, parsed, form) {
+ // console.log(form)
+ if (forms.hasOwnProperty(form)) {
+ vb = forms[form](vb, parsed)
+ vb.fullSentence().compute(['tagger', 'chunks'])
+ return vb
+ }
+ // do the simple form
+ vb = simple(vb, parsed, form)
+ vb.fullSentence().compute(['tagger', 'chunks'])
+ // do nothing, then
+ return vb
+}
+export default toPast
diff --git a/src/4-four/sense/model/more.js b/src/4-four/sense/model/more.js
new file mode 100644
index 000000000..ba2698d01
--- /dev/null
+++ b/src/4-four/sense/model/more.js
@@ -0,0 +1,130 @@
+export default {
+
+ verb: {
+ "make": "create/compell",
+ "have": "possess/experience",
+ "see": "perceive/understand",
+ "come": "arrive/occur",
+ "look": "gaze/search",
+ "run": "sprint/operate",
+ "believe": "accept/trust",
+ "feel": "perceive/experience",
+ "call": "summon/name",
+ "work": "labor/function",
+ },
+
+ "want": "desire/wish",
+ "give": "provide/offer",
+ "use": "utilize/employ",
+ "find": "discover/locate",
+ "tell": "instruct/inform",
+ "ask": "request/inquire",
+ "seem": "appear/imply",
+ "feel": "perceive/experience",
+ "try": "attempt/endeavor",
+ "leave": "depart/abandon",
+ "need": "require/necessitate",
+ "become": "transform/develop",
+ "mean": "signify/imply",
+ "keep": "retain/maintain",
+ "turn": "rotate/change",
+ "show": "display/demonstrate",
+ "hear": "perceive/listen",
+ "play": "participate/perform",
+ "move": "shift/proceed",
+ "like": "enjoy/appreciate",
+ "live": "reside/exist",
+ "hold": "grasp/maintain",
+ "bring": "deliver/introduce",
+ "happen": "occur/take place",
+ "write": "record/compose",
+ "provide": "supply/offer",
+ "sit": "perch/be seated",
+ "stand": "be upright/endure",
+ "lose": "misplace/suffer",
+ "pay": "remunerate/compensate",
+ "meet": "encounter/convene",
+
+
+
+
+
+ // "break": "separate/rest/fail",
+ // "cast": "act/throw/group",
+ // "check": "examine/stop/chess",
+ // "cut": "sever/shape/reduced",
+ // "drop": "fall/let go/decrease",
+ // "face": "front/expression",
+ // "fast": "quick/secure",
+ // "figure": "number/shape/person",
+ // "fine": "good/penalty",
+ // "fly": "insect/travel",
+ // "frame": "structure/picture/blame",
+ // "ground": "earth/reason/electrical",
+ // "hit": "strike/success",
+ // "hook": "bent/catch",
+ // "bank": "financial institution/land alongside a river",
+ // "blue": "color/feeling sad",
+ // "bow": "bend at the waist/weapon",
+ // "bowl": "dish for serving food/to participate in a game",
+ // "brush": "tool for cleaning or painting/to lightly touch",
+ // "button": "fastener on clothing/to fasten",
+ // "can": "container/ability to do something",
+ // "change": "to become different/coins used as money",
+ // "character": "person in a story/distinctive qualities",
+ // "charge": "to ask for payment/to rush forward",
+ // "clean": "free of dirt or marks/to make something clean",
+ // "cold": "low temperature/lacking in affection",
+ // "comb": "tool for grooming hair/to search thoroughly",
+ // "content": "what is contained/satisfied with what one has",
+ // "cover": "to put something over/outer part of a book",
+ // "crane": "bird with long neck/machine used for lifting heavy objects",
+
+
+ adjective: {
+ "great": "fantastic/important",
+ "low": "short/inferior",
+ "hard": "firm/difficult",
+ "easy": "simple/effortless",
+ "rich": "wealthy/abundant",
+ "healthy": "fit/wholesome",
+ "long": "extended/lengthy",
+ "short": "brief/small",
+ "miserable": "unhappy/woeful",
+ "cheap": "inexpensive/inferior",
+ "busy": "occupied/hectic",
+ "weak": "frail/inadequate",
+ "poor": "destitute/scant",
+ "happy": "content/cheerful",
+ "soft": "yielding/gentle",
+ },
+
+
+
+
+ noun: {
+ "bark": "sound/tree",
+ "bat": "animal/sports",
+ "man": "male/human",
+ "state": "condition/political",
+ "country": "nation/rural",
+ "case": "instance/legal",
+ "value": "quantity/virtue",
+ "school": "education/fish",
+ "point": "dot/idea",
+ "business": "trade/company",
+ "power": "energy/authority",
+ "child": "young/descendant",
+ "order": "arrangement/request",
+ "management": "control/job-title",
+ "organ": "anatomy/music",
+ "product": "goods/result",
+ "crane": "bird/machine",
+ "bore": "dullness/drill",
+ "bow": "weapon/knot/reverence",
+ "brush": "tool/touch",
+ "grade": "level/slope",
+ "head": "body/leader",
+ "issue": "topic/release/problem",
+ },
+}
\ No newline at end of file
diff --git a/src/API/extend.js b/src/API/extend.js
index bc04fdca7..d6e3113b4 100644
--- a/src/API/extend.js
+++ b/src/API/extend.js
@@ -37,43 +37,43 @@ const addIrregulars = function (model, conj) {
// verb forms
if (conj[k].pastTense) {
if (m.toPast) {
- m.toPast.exceptions[k] = conj[k].pastTense
+ m.toPast.ex[k] = conj[k].pastTense
}
if (m.fromPast) {
- m.fromPast.exceptions[conj[k].pastTense] = k
+ m.fromPast.ex[conj[k].pastTense] = k
}
}
if (conj[k].presentTense) {
if (m.toPresent) {
- m.toPresent.exceptions[k] = conj[k].presentTense
+ m.toPresent.ex[k] = conj[k].presentTense
}
if (m.fromPresent) {
- m.fromPresent.exceptions[conj[k].presentTense] = k
+ m.fromPresent.ex[conj[k].presentTense] = k
}
}
if (conj[k].gerund) {
if (m.toGerund) {
- m.toGerund.exceptions[k] = conj[k].gerund
+ m.toGerund.ex[k] = conj[k].gerund
}
if (m.fromGerund) {
- m.fromGerund.exceptions[conj[k].gerund] = k
+ m.fromGerund.ex[conj[k].gerund] = k
}
}
// adjective forms
if (conj[k].comparative) {
if (m.toComparative) {
- m.toComparative.exceptions[k] = conj[k].comparative
+ m.toComparative.ex[k] = conj[k].comparative
}
if (m.fromComparative) {
- m.fromComparative.exceptions[conj[k].comparative] = k
+ m.fromComparative.ex[conj[k].comparative] = k
}
}
if (conj[k].superlative) {
if (m.toSuperlative) {
- m.toSuperlative.exceptions[k] = conj[k].superlative
+ m.toSuperlative.ex[k] = conj[k].superlative
}
if (m.fromSuperlative) {
- m.fromSuperlative.exceptions[conj[k].superlative] = k
+ m.fromSuperlative.ex[conj[k].superlative] = k
}
}
})
diff --git a/src/_version.js b/src/_version.js
index 4236a6045..94472385f 100644
--- a/src/_version.js
+++ b/src/_version.js
@@ -1 +1 @@
-export default '14.8.2'
\ No newline at end of file
+export default '14.9.0'
\ No newline at end of file
diff --git a/src/three.js b/src/three.js
index 19b825f4b..8faa2cc93 100644
--- a/src/three.js
+++ b/src/three.js
@@ -1,4 +1,6 @@
import nlp from './two.js'
+import adjectives from './3-three/adjectives/plugin.js'
+import adverbs from './3-three/adverbs/plugin.js'
import chunker from './3-three/chunker/plugin.js'
import misc from './3-three/misc/plugin.js'
import normalize from './3-three/normalize/plugin.js'
@@ -10,6 +12,8 @@ import topics from './3-three/topics/plugin.js'
import verbs from './3-three/verbs/plugin.js'
import coreference from './3-three/coreference/plugin.js'
+nlp.plugin(adjectives) //
+nlp.plugin(adverbs) //
nlp.plugin(chunker) //
nlp.plugin(coreference)
nlp.plugin(misc) //
diff --git a/tests/_ignore/toQuestion.ignore.js b/tests/_ignore/toQuestion.ignore.js
index 52e6f0368..ca04e4bd1 100644
--- a/tests/_ignore/toQuestion.ignore.js
+++ b/tests/_ignore/toQuestion.ignore.js
@@ -9,15 +9,15 @@ test('simple chanage-punct', function (t) {
let doc = nlp(statement)
doc.sentences().toExclamation()
- t.equal(doc.text(), excl, 'statement -> excl')
+ t.equal(doc.text(), excl, here + 'statement -> excl')
doc.sentences().toStatement()
- t.equal(doc.text(), statement, 'excl -> statement')
+ t.equal(doc.text(), statement, here + 'excl -> statement')
doc.sentences().toQuestion()
- t.equal(doc.text(), question, 'statement -> question')
+ t.equal(doc.text(), question, here + 'statement -> question')
doc.sentences().toExclamation()
- t.equal(doc.text(), excl, 'question -> excl')
+ t.equal(doc.text(), excl, here + 'question -> excl')
doc.sentences().toQuestion()
- t.equal(doc.text(), question, 'excl -> question')
+ t.equal(doc.text(), question, here + 'excl -> question')
t.end()
})
@@ -25,7 +25,7 @@ test('simple chanage-punct', function (t) {
test('toquestion edge-cases ', function (t) {
let doc = nlp('how do you do...')
doc = doc.sentences().toExclamation()
- t.equal(doc.text(), 'how do you do!', 'elipses')
+ t.equal(doc.text(), 'how do you do!', here + 'elipses')
// doc = nlp('how do you do (today)')
// doc = doc.sentences().toQuestion()
diff --git a/tests/one/match/regex.test.js b/tests/one/match/regex.test.js
index d6e02a649..206f1c25f 100644
--- a/tests/one/match/regex.test.js
+++ b/tests/one/match/regex.test.js
@@ -53,3 +53,19 @@ test('regex-match:', function (t) {
t.end()
})
+
+
+test('multi-not:', function (t) {
+ let doc = nlp('match one two three four five six')
+ let m = doc.match('match !(foo|bar){0,3}')
+ t.equal(m.text(), 'match one two three', here + 'no-match')
+
+ doc = nlp('match one two bar three four five six')
+ m = doc.match('match !(foo|bar){0,3}')
+ t.equal(m.text(), 'match one two', here + 'found-match')
+
+ doc = nlp('match foo one two three four')
+ m = doc.match('match !(foo|bar){0,3}')
+ t.equal(m.text(), '', here + 'no-match')
+ t.end()
+})
\ No newline at end of file
diff --git a/tests/one/misc/safe-contractions.test.js b/tests/one/misc/safe-contractions.test.js
index f82a12fd9..b03a287fe 100644
--- a/tests/one/misc/safe-contractions.test.js
+++ b/tests/one/misc/safe-contractions.test.js
@@ -50,3 +50,28 @@ test('safe-apostrophe-d', function (t) {
})
t.end()
})
+
+
+test('theres', function (t) {
+ let arr = [
+ [`there's a`, 'there is'],
+ [`there's no going back`, 'there is'],
+ [`there's no honor`, 'there is'],
+ [`where there's a job`, 'there is'],
+ [`and there's a little old man`, 'there is'],
+ [`there's always`, 'there is'],
+ [`there's one`, 'there is'],
+ [`there’s gonna be strippers`, 'there is'],
+ [`There's something strange`, 'there is'],
+ [`guess there's not much to do `, 'there is'],
+ [`There's never been a more important moment`, 'there has'],
+ [`there's been`, 'there has'],
+ [`there's never been`, 'there has'],
+ [`There's hardly been any progress`, 'there has'],
+ ]
+ arr.forEach(a => {
+ let doc = nlp(a[0])
+ t.ok(doc.has(a[1]), a[0])
+ })
+ t.end()
+})
diff --git a/tests/one/misc/typeahead.test.js b/tests/one/misc/typeahead.test.js
index 9a38fd6e8..66449f418 100644
--- a/tests/one/misc/typeahead.test.js
+++ b/tests/one/misc/typeahead.test.js
@@ -59,12 +59,12 @@ test('lexicon-guard test', function (t) {
nlp.typeahead(['swimsuit'])
// t.equal(nlp('swim').has('swimsuit'), false, here + 'lexicon-block')
t.equal(nlp('swimsu').has('swimsuit'), true, here + 'lexicon-continue')
-
nlp.world().model.one.typeahead = {} //whoosh!
// who cares - do it anyways
nlp.typeahead(['swimsuit'], { safe: false })
t.equal(nlp('swim').has('swimsuit'), true, here + 'safemode-off')
t.equal(nlp('swimsu').has('swimsuit'), true, here + 'lexicon-continue-2')
+ nlp.world().model.one.typeahead = {} //whoosh!
t.end()
})
diff --git a/tests/three/adjectives/adj-adv.test.js b/tests/three/adjectives/adj-adv.test.js
index 9cbdf3dbd..ee949e7ed 100644
--- a/tests/three/adjectives/adj-adv.test.js
+++ b/tests/three/adjectives/adj-adv.test.js
@@ -3,85 +3,192 @@ import nlp from '../_lib.js'
const here = '[three/verb-toPresent] '
let arr = [
- ['environmentally', 'environmental'],
- ['vertically', 'vertical'],
- ['mechanically', 'mechanical'],
['accidentally', 'accidental'],
- ['fully', 'full'],
+ ['accordingly', null],
+ ['admirably', 'admirable'],
+ ['admittedly', 'admitted'],
+ ['affectionately', 'affectionate'],
+ ['agilely', 'agile'],
+ ['agitatedly', 'agitated'],
+ ['amazingly', 'amazing'],
+ ['amiably', 'amiable'],
+ ['amusedly', 'amused'],
+ ['appreciably', 'appreciable'],
+ ['aptly', 'apt'],
+ ['arbitrarily', 'arbitrary'],
+ ['astonishingly', 'astonishing'],
+ ['astoundingly', 'astounding'],
+ ['automatically', 'automatic'],
+ ['awesomely', 'awesome'],
+ ['badly', 'bad'],
+ ['bashfully', 'bashful'],
+ ['beautifully', 'beautiful'],
+ ['boomingly', 'booming'],
+ ['bravely', 'brave'],
+ ['brightly', 'bright'],
+ ['brilliantly', 'brilliant'],
+ ['calmly', 'calm'],
+ ['carelessly', 'careless'],
+ ['celestially', 'celestial'],
+ ['cheaply', 'cheap'],
+ ['cheerfully', 'cheerful'],
+ ['classically', 'classical'],
+ ['confusedly', 'confused'],
+ ['conscientiously', 'conscientious'],
+ ['consummately', 'consummate'],
['conversely', null],
- ['simply', 'simple'],
- ['locally', 'local'],
- ['desperately', 'desperate'],
+ ['courageously', 'courageous'],
+ ['cozily', 'cozy'],
['creatively', 'creative'],
- ['principally', 'principal'],
- ['inextricably', 'inextricable'],
- ['seemingly', 'seeming'],
- ['legally', 'legal'],
- ['tenuously', 'tenuous'],
- ['partly', 'part'],
- ['typically', 'typical'],
- ['globally', 'global'],
+ ['credibly', 'credible'],
+ ['critically', 'critical'],
+ ['cruelly', 'cruel'],
+ ['cynically', 'cynical'],
+ ['daily', null],
+ ['dazzlingly', 'dazzling'],
['dearly', 'dear'],
- ['fully', 'full'],
- ['dramatically', 'dramatic'],
- ['electronically', 'electronic'],
- ['genetically', 'genetic'],
- ['beautifully', 'beautiful'],
- ['earnestly', 'earnest'],
- ['cheaply', 'cheap'],
- ['perceptibly', 'perceptible'],
- ['sharply', 'sharp'],
['deeply', 'deep'],
- ['methodically', 'methodical'],
- ['imperfectly', 'imperfect'],
- ['unfortunately', null],
- ['fortunately', null],
- ['namely', null],
- ['unduly', null],
- ['accordingly', null],
- ['only', null],
+ ['delightfully', 'delightful'],
+ ['desirably', 'desirable'],
+ ['desperately', 'desperate'],
+ ['deviously', 'devious'],
+ ['distinguishedly', 'distinguished'],
+ ['divinely', 'divine'],
+ ['dramatically', 'dramatic'],
+ ['dynamically', 'dynamic'],
+ ['eagerly', 'eager'],
['early', null],
+ ['earnestly', 'earnest'],
+ ['ecologically', 'ecological'],
+ ['electronically', 'electronic'],
+ ['elegantly', 'elegant'],
+ ['eminently', 'eminent'],
+ ['emphatically', 'emphatic'],
+ ['environmentally', 'environmental'],
['especially', null],
- ['mostly', null],
- ['daily', null],
- ['only', null],
- ['early', null],
-
- ['affectionately', 'affectionate'],
+ ['exaltedly', 'exalted'],
+ ['exceptionally', 'exceptional'],
+ ['expectantly', 'expectant'],
+ ['exponentially', 'exponential'],
+ ['exquisitely', 'exquisite'],
+ ['extravagantly', 'extravagant'],
+ ['exuberantly', 'exuberant'],
+ ['fabulously', 'fabulous'],
+ ['fadedly', 'faded'],
+ ['famously', 'famous'],
+ ['fancily', 'fancy'],
+ ['fantastically', 'fantastic'],
+ ['fascinatingly', 'fascinating'],
+ ['fastidiously', 'fastidious'],
+ ['fiercely', 'fierce'],
+ ['flashily', 'flashy'],
+ ['flawlessly', 'flawless'],
+ ['fleetingly', 'fleeting'],
+ ['foolishly', 'foolish'],
+ ['forsakenly', 'forsaken'],
+ ['fragrantly', 'fragrant'],
+ ['frivolously', 'frivolous'],
+ ['fully', 'full'],
+ ['funnily', 'funny'],
+ ['furiously', 'furious'],
+ ['fuzzily', 'fuzzy'],
+ ['generously', 'generous'],
+ ['genetically', 'genetic'],
['gently', 'gentle'],
- ['ecologically', 'ecological'],
- ['unquestionably', 'unquestionable'],
- ['systemically', 'systemic'],
- ['mistakenly', 'mistaken'],
- ['practically', 'practical'],
+ ['glitteringly', 'glittering'],
+ ['globally', 'global'],
+ ['gloriously', 'glorious'],
+ ['gorgeously', 'gorgeous'],
+ ['grandiosely', 'grandiose'],
+ ['grandly', 'grand'],
+ ['grievingly', 'grieving'],
+ ['grimily', 'grimy'],
+ ['grumpily', 'grumpy'],
+ ['hallowedly', 'hallowed'],
+ ['harshly', 'harsh'],
+ ['humbly', 'humble'],
+ ['humorously', 'humorous'],
+ ['icily', 'icy'],
+ ['idly', 'idle'],
+ ['illustriously', 'illustrious'],
+ ['imperfectly', 'imperfect'],
+ ['impressively', 'impressive'],
+ ['incomparably', 'incomparable'],
+ ['incredibly', 'incredible'],
+ ['inextricably', 'inextricable'],
+ ['infamously', 'infamous'],
+ ['innocently', 'innocent'],
+ ['insultingly', 'insulting'],
['invariably', 'invariable'],
- ['appreciably', 'appreciable'],
['ironically', 'ironic'],
- ['emphatically', 'emphatic'],
- ['perceptibly', 'perceptible'],
- ['technically', 'technical'],
- ['partly', 'part'],
+ ['irritably', 'irritable'],
+ ['jealously', 'jealous'],
+ ['keenly', 'keen'],
+ ['lavishly', 'lavish'],
+ ['lazily', 'lazy'],
+ ['legally', 'legal'],
+ ['leggily', 'leggy'],
+ ['limpidly', 'limpid'],
+ ['locally', 'local'],
+ ['loftily', 'lofty'],
+ ['loudly', 'loud'],
+ ['luxuriously', 'luxurious'],
+ ['magnanimously', 'magnanimous'],
+ ['magnificently', 'magnificent'],
+ ['majestically', 'majestic'],
+ ['mammothly', 'mammoth'],
+ ['marvelously', 'marvelous'],
['mathematically', 'mathematical'],
- ['automatically', 'automatic'],
- ['critically', 'critical'],
- ['dramatically', 'dramatic'],
+ ['maturely', 'mature'],
+ ['mechanically', 'mechanical'],
+ ['methodically', 'methodical'],
+ ['miraculously', 'miraculous'],
+ ['miserably', 'miserable'],
+ ['mistakenly', 'mistaken'],
+ ['monumentally', 'monumental'],
+ ['moodily', 'moody'],
+ ['morally', 'moral'],
+ ['mostly', null],
+ ['mysteriously', 'mysterious'],
+ ['namely', null],
+ ['nervously', 'nervous'],
+ ['nomadically', 'nomadic'],
+ ['notably', 'notable'],
+ ['obediently', 'obedient'],
+ ['omnipotently', 'omnipotent'],
+ ['only', null],
+ ['oreintally', 'oreintal'],
+ ['originally', 'original'],
+ ['outstandingly', 'outstanding'],
+ ['painfully', 'painful'],
+ ['palatially', 'palatial'],
+ ['partly', 'part'],
+ ['patiently', 'patient'],
+ ['peerlessly', 'peerless'],
+ ['perceptibly', 'perceptible'],
+ ['perfectly', 'perfect'],
+ ['phenomenally', 'phenomenal'],
+ ['physically', 'physical'],
+ ['pluckily', 'plucky'],
+ ['plushly', 'plush'],
['politically', 'political'],
+ ['portentously', 'portentous'],
+ ['potently', 'potent'],
['practically', 'practical'],
- ['systematically', 'systematic'],
- ['theoretically', 'theoretical'],
- ['physically', 'physical'],
- ['classically', 'classical'],
- ['exponentially', 'exponential'],
- ['technologically', 'technological'],
- ['admittedly', 'admitted'],
- ['succinctly', 'succinct'],
- ['responsibly', 'responsible'],
- ['emphatically', 'emphatic'],
- ['inextricably', 'inextricable'],
- ['statistically', 'statistical'],
- ['conscientiously', 'conscientious'],
- ['arbitrarily', 'arbitrary'],
+ ['praiseworthily', 'praiseworthy'],
+ ['principally', 'principal'],
+ ['prodigiously', 'prodigious'],
+ ['profoundly', 'profound'],
+ ['provocatively', 'provocative'],
+ ['publicly', 'public'],
+ ['quickly', 'quick'],
+ ['quintessentially', 'quintessential'],
+ ['rarely', 'rare'],
+ ['remarkably', 'remarkable'],
['remotely', 'remote'],
+ ['repulsively', 'repulsive'],
+ ['resplendently', 'resplendent'],
+ ['responsibly', 'responsible'],
['richly', 'rich'],
['ritzily', 'ritzy'],
['romantically', 'romantic'],
@@ -94,20 +201,73 @@ let arr = [
['saltily', 'salty'],
['savvily', 'savvy'],
['scarcely', 'scarce'],
+ ['scaredly', 'scared'],
['scarily', 'scary'],
+ ['seemingly', 'seeming'],
+ ['sensationally', 'sensational'],
['severely', 'severe'],
-
- ['badly', 'bad'],
- // ['well', 'good'],
- ['icily', 'icy'],
- ['idly', 'idle'],
- // ['manly', 'male'],
- ['publicly', 'public'],
+ ['sharply', 'sharp'],
+ ['shily', 'shy'],
+ ['shrewdly', 'shrewd'],
['simply', 'simple'],
['singly', 'single'],
- // ['especially', 'special'],
+ ['singularly', 'singular'],
+ ['sleekly', 'sleek'],
+ ['sloppily', 'sloppy'],
+ ['snazzily', 'snazzy'],
+ ['sneakily', 'sneaky'],
+ ['soaringly', 'soaring'],
+ ['sorrowfully', 'sorrowful'],
+ ['splendidly', 'splendid'],
+ ['splendiferously', 'splendiferous'],
+ ['statistically', 'statistical'],
+ ['strikingly', 'striking'],
+ ['strongly', 'strong'],
+ ['stupendously', 'stupendous'],
+ ['stupidly', 'stupid'],
+ ['sublimely', 'sublime'],
+ ['succinctly', 'succinct'],
+ ['succulently', 'succulent'],
+ ['superbly', 'superb'],
+ ['superiorly', 'superior'],
+ ['superlatively', 'superlative'],
+ ['superly', 'super'],
+ ['systematically', 'systematic'],
+ ['systemically', 'systemic'],
+ ['talentedly', 'talented'],
+ ['tallly', 'tall'],
+ ['tastefully', 'tasteful'],
+ ['technically', 'technical'],
+ ['technologically', 'technological'],
+ ['tenderly', 'tender'],
+ ['tenuously', 'tenuous'],
+ ['terrifically', 'terrific'],
+ ['theoretically', 'theoretical'],
+ ['thinly', 'thin'],
+ ['tidily', 'tidy'],
+ ['toughly', 'tough'],
+ ['trustworthily', 'trustworthy'],
+ ['typically', 'typical'],
+ ['unduly', null],
+ ['unprecedentedly', 'unprecedented'],
+ ['unquestionably', 'unquestionable'],
+ ['unrivaledly', 'unrivaled'],
['vaguely', 'vague'],
+ ['vapidly', 'vapid'],
+ ['vertically', 'vertical'],
+ ['vivaciously', 'vivacious'],
+ ['voguishly', 'voguish'],
+ ['warmly', 'warm'],
['wholly', 'whole'],
+ ['wondrously', 'wondrous'],
+ ['worthlessly', 'worthless'],
+ ['zealously', 'zealous'],
+ // ['prettyly', 'pretty'],
+ // ['especially', 'special'],
+ // ['lonlely', 'lonely'],
+ // ['manly', 'male'],
+ // ['uglily', 'ugly'],
+ // ['well', 'good'],
// ['', ''],
]
diff --git a/tests/three/adjectives/adj-noun.test.js b/tests/three/adjectives/adj-noun.test.js
index 54d8d28e7..0d0da2425 100644
--- a/tests/three/adjectives/adj-noun.test.js
+++ b/tests/three/adjectives/adj-noun.test.js
@@ -3,80 +3,458 @@ import nlp from '../_lib.js'
const here = '[three/adj-noun] '
let arr = [
- ['dramatic', 'drama'],
- ['deep', 'depth'],
- ['ironic', 'irony'],
-
- ['desperate', 'desperation'],
- ['imperfect', 'imperfection'],
+ ['abject', 'abjection'],
+ ['abstemious', 'abstemiousness'],
+ ['abundant', 'abundance'],
+ ['accomplished', 'accomplishment'],
+ ['accurate', 'accuracy'],
+ ['active', 'activity'],
+ ['adamant', 'adamance'],
+ ['adaptable', 'adaptability'],
+ ['addictive', 'addiction'],
+ ['admirable', 'admiration'],
+ ['adventurous', 'adventurousness'],
['affectionate', 'affection'],
- // ['perceptible', 'perception'],
- // ['perceptive', 'perception'],
+ ['aggressive', 'aggression'],
+ ['agile', 'agility'],
+ ['agitated', 'agitation'],
+ ['alert', 'alertness'],
+ ['aloof', 'aloofness'],
+ ['amazed', 'amazement'],
+ ['ambitious', 'ambition'],
+ ['amiable', 'amiability'],
+ ['amicable', 'amicability'],
+ ['amorous', 'amorousness'],
+ ['ample', 'ampleness'],
+ ['amused', 'amusement'],
+ ['ancient', 'antiquity'],
+ ['apprehensive', 'apprehensiveness'],
+ ['ardent', 'ardor'],
+ ['argumentative', 'argumentativeness'],
+ ['articulate', 'articulacy'],
+ ['artistic', 'art'],
+ ['assertive', 'assertiveness'],
+ ['astute', 'astuteness'],
+ ['attractive', 'attractiveness'],
+ ['audacious', 'audacity'],
+ ['austere', 'austerity'],
+ ['authentic', 'authenticity'],
['automatic', 'automation'],
-
- ['tenuous', 'tenuousness'],
- ['full', 'fullness'],
+ ['bad', 'badness'],
['beautiful', 'beauty'],
- ['earnest', 'earnestness'],
- ['cheap', 'cheapness'],
- ['sharp', 'sharpness'],
- ['gentle', 'gentleness'],
-
- ['vertical', 'verticality'],
- ['simple', 'simplicity'],
- ['creative', 'creativity'],
- ['legal', 'legality'],
- ['physical', 'physicality'],
-
- // ['inspiring', 'inspiration'],
+ ['benevolent', 'benevolence'],
+ ['bold', 'boldness'],
['boring', 'boredom'],
+ ['brave', 'bravery'],
+ ['bright', 'brightness'],
+ ['busy', 'business'],
+ ['calm', 'calmness'],
+ ['cantankerous', 'cantankerousness'],
+ ['careful', 'carefulness'],
+ ['caring', 'care'],
+ ['cautious', 'caution'],
+ ['certain', 'certainty'],
+ ['charismatic', 'charisma'],
+ ['cheap', 'cheapness'],
+ ['cheerful', 'cheerfulness'],
+ ['circumspect', 'circumspection'],
+ ['clean', 'cleanliness'],
+ ['clear', 'clarity'],
- ['passionate', 'passion'],
+ ['clever', 'cleverness'],
+ ['cold', 'coldness'],
+ ['comfortable', 'comfort'],
['compassionate', 'compassion'],
- ['proportionate', 'proportion'],
+ ['compatible', 'compatibility'],
+ ['competent', 'competency'],
+ ['concise', 'conciseness'],
+ ['condescending', 'condescension'],
+ ['confident', 'confidence'],
+ ['congenial', 'congeniality'],
+ ['conscientious', 'conscientiousness'],
+ ['contemptuous', 'contemptuousness'],
+ ['cooperative', 'cooperation'],
+ ['courageous', 'courage'],
+ ['courteous', 'courtesy'],
+ ['coy', 'coyness'],
+ ['creative', 'creativity'],
+ ['credible', 'credibility'],
+ ['curious', 'curiosity'],
+ ['dark', 'darkness'],
+ ['decisive', 'decisiveness'],
+ ['dedicated', 'dedication'],
+ ['deep', 'depth'],
+ ['deliberate', 'deliberation'],
+ ['delicate', 'delicacy'],
+ ['delightful', 'delight'],
+ ['dependable', 'dependability'],
['desperate', 'desperation'],
+ ['determined', 'determination'],
+ ['devoted', 'devotion'],
+ ['diffident', 'diffidence'],
+ ['diligent', 'diligence'],
+ ['dirty', 'dirtiness'],
+ ['disciplined', 'discipline'],
+ ['discreet', 'discretion'],
+ ['doleful', 'dolefulness'],
+ ['dramatic', 'drama'],
+ ['dull', 'dullness'],
+ ['dynamic', 'dynamism'],
+ ['eager', 'eagerness'],
+ ['educated', 'education'],
+ ['efficient', 'efficiency'],
+ ['elegant', 'elegance'],
+ ['eloquent', 'eloquence'],
+ ['empathetic', 'empathy'],
+ ['empty', 'emptiness'],
+ ['enduring', 'endurance'],
+ ['energetic', 'energy'],
+ ['engaging', 'engagement'],
+ ['enough', 'enoughness'],
+ ['enthusiastic', 'enthusiasm'],
+ ['excellent', 'excellence'],
+ ['exemplary', 'exemplariness'],
+ ['expedient', 'expedience'],
+ ['expensive', 'expense'],
+ ['experienced', 'experience'],
+ ['explosive', 'explosiveness'],
+ ['expressive', 'expressiveness'],
+ ['facetious', 'facetiousness'],
+ ['fanciful', 'fancifulness'],
+ ['fantastic', 'fantasy'],
+ ['fast', 'fastness'],
+ ['fatuous', 'fatuousness'],
+ ['fearless', 'fearlessness'],
+ ['fertile', 'fertility'],
+ ['fervent', 'fervor'],
+ ['fierce', 'fierceness'],
+ ['flawless', 'flawlessness'],
+ ['flexible', 'flexibility'],
+ ['flowing', 'flow'],
+ ['focused', 'focus'],
+ ['forceful', 'force'],
+ ['forgiving', 'forgiveness'],
['fortunate', 'fortune'],
-
+ ['fragrant', 'fragrance'],
+ ['frank', 'frankness'],
+ ['free', 'freedom'],
['friendly', 'friendliness'],
+ ['frivolous', 'frivolity'],
+ ['frugal', 'frugality'],
['full', 'fullness'],
['funny', 'funniness'],
+ ['furious', 'fury'],
['furry', 'furriness'],
+ ['furtive', 'furtiveness'],
['gaudy', 'gaudiness'],
['gay', 'gayness'],
+ ['generous', 'generosity'],
+ ['gentle', 'gentleness'],
['ghastly', 'ghastliness'],
-
+ ['glamorous', 'glamour'],
+ ['glaring', 'glare'],
+ ['glowing', 'glow'],
+ ['good', 'goodness'],
+ ['graceful', 'grace'],
+ ['gracious', 'graciousness'],
+ ['guileless', 'guilelessness'],
+ ['gullible', 'gullibility'],
+ ['hard', 'hardness'],
+ ['hardworking', 'hardwork'],
+ ['harried', 'harriedness'],
+ ['harsh', 'harshness'],
+ ['hazardous', 'hazard'],
+ ['heavy', 'heaviness'],
+ ['heroic', 'heroism'],
+ ['hoary', 'hoariness'],
+ ['honest', 'honesty'],
+ ['hopeful', 'hopefulness'],
+ ['hospitable', 'hospitality'],
+ ['hot', 'heat'],
+ ['huge', 'hugeness'],
+ ['humble', 'humility'],
+ ['humorous', 'humor'],
+ ['iffy', 'iffiness'],
+ ['imaginative', 'imagination'],
+ ['impartial', 'impartiality'],
+ ['imperfect', 'imperfection'],
+ ['imperious', 'imperiousness'],
+ ['imperturbable', 'imperturbability'],
+ ['implacable', 'implacability'],
+ ['impossible', 'impossibility'],
+ ['impressive', 'impressiveness'],
+ ['impulsive', 'impulsiveness'],
+ ['inane', 'inanity'],
+ ['independent', 'independence'],
+ ['indolent', 'indolence'],
+ ['industrious', 'industry'],
+ ['ineluctable', 'ineluctability'],
+ ['inept', 'ineptitude'],
+ ['inimitable', 'inimitability'],
+ ['innovative', 'innovation'],
+ ['inquisitive', 'inquisitiveness'],
+ ['insightful', 'insight'],
+ ['inspiring', 'inspiration'],
+ ['intelligent', 'intelligence'],
+ ['intemperate', 'intemperance'],
+ ['intrepid', 'intrepidity'],
+ ['intuitive', 'intuition'],
+ ['inventive', 'inventiveness'],
+ ['ironic', 'irony'],
+ ['jittery', 'jitteriness'],
+ ['jovial', 'joviality'],
+ // ['joyful', 'joy'],
+ // ['joyous', 'joy'],
+ ['keen', 'keenness'],
+ ['kind', 'kindness'],
+ ['knowledgeable', 'knowledge'],
+ ['laconic', 'laconicism'],
+ ['lavish', 'lavishness'],
+ ['lazy', 'laziness'],
+ ['legal', 'legality'],
+ ['liberal', 'liberality'],
+ ['light', 'lightness'],
+ ['lively', 'liveliness'],
+ ['lofty', 'loftiness'],
+ ['long', 'length'],
+ ['loquacious', 'loquaciousness'],
+ ['lost', 'loss'],
+ ['loud', 'loudness'],
+ ['loving', 'love'],
+ ['loyal', 'loyalty'],
+ ['lucid', 'lucidity'],
+ ['luminous', 'luminosity'],
+ ['lush', 'lushness'],
+ ['luxurious', 'luxury'],
+ ['magical', 'magic'],
+ ['magnanimous', 'magnanimity'],
+ ['majestic', 'majesty'],
+ ['mature', 'maturity'],
+ ['maverick', 'maverickness'],
+ ['mawkish', 'mawkishness'],
+ ['melodic', 'melody'],
+ ['meticulous', 'meticulousness'],
+ ['mighty', 'mightiness'],
+ ['modest', 'modesty'],
+ ['moist', 'moistness'],
+ ['momentous', 'momentousness'],
+ ['motivated', 'motivation'],
+ ['mundane', 'mundanity'],
+ ['musical', 'music'],
+ ['mysterious', 'mystery'],
+ ['mystical', 'mysticism'],
+ ['naive', 'naivety'],
+ ['narcissistic', 'narcissism'],
+ ['narrow', 'narrowness'],
+ ['naughty', 'naughtiness'],
+ ['nervous', 'nervousness'],
+ ['noble', 'nobility'],
+ ['nonchalant', 'nonchalance'],
+ ['nurturing', 'nurturance'],
+ ['obedient', 'obedience'],
+ ['oblivious', 'obliviousness'],
+ ['observant', 'observation'],
+ ['offensive', 'offence'],
+ ['offhand', 'offhandedness'],
+ ['ominous', 'ominousness'],
+ // ['open-minded', 'open-mindedness'],
+ ['optimistic', 'optimism'],
+ ['organized', 'organization'],
+ ['orotund', 'orotundity'],
+ ['ostentatious', 'ostentatiousness'],
+ ['outgoing', 'outgoingness'],
+ ['pacifist', 'pacifism'],
+ ['passionate', 'passion'],
+ ['patient', 'patience'],
+ ['pedantic', 'pedantry'],
+ ['peerless', 'peerlessness'],
+ ['perceptive', 'perception'],
+ ['perfect', 'perfection'],
+ ['persistent', 'persistence'],
+ ['personal', 'personality'],
+ ['persuasive', 'persuasion'],
+ ['physical', 'physicality'],
+ ['placid', 'placidity'],
+ ['playful', 'playfulness'],
+ ['pleasant', 'pleasantness'],
+ ['pliant', 'pliancy'],
+ ['poignant', 'poignancy'],
+ ['poised', 'poise'],
+ ['polite', 'politeness'],
+ ['poor', 'poverty'],
+ ['popular', 'popularity'],
+ ['positive', 'positivity'],
+ ['possessive', 'possession'],
+ ['powerful', 'power'],
+ ['practical', 'practicality'],
+ ['pragmatic', 'pragmatism'],
+ ['present', 'presence'],
+ ['proactive', 'proactivity'],
+ ['prodigious', 'prodigiousness'],
+ ['professional', 'professionalism'],
+ ['proficient', 'proficiency'],
+ ['proportionate', 'proportion'],
+ ['protective', 'protection'],
+ ['prudent', 'prudence'],
+ ['punctual', 'punctuality'],
+ ['purposeful', 'purpose'],
+ ['querulous', 'querulousness'],
+ // ['quick-witted', 'quick-wittedness'],
+ ['quick', 'quickness'],
+ // ['quiet', 'quiet'],
+ ['quixotic', 'quixoticism'],
+ ['radiant', 'radiance'],
+ ['rampant', 'rampantness'],
+ ['random', 'randomness'],
+ ['rapacious', 'rapaciousness'],
+ ['ravishing', 'ravishingness'],
+ ['ready', 'readiness'],
+ ['realistic', 'realism'],
+ ['reasonable', 'reasonableness'],
+ ['receptive', 'receptiveness'],
+ ['recondite', 'reconditeness'],
+ ['red', 'redness'],
+ ['refined', 'refinement'],
+ ['relentless', 'relentlessness'],
+ ['reliable', 'reliability'],
+ ['reprobate', 'reprobacy'],
+ ['resilient', 'resilience'],
+ // ['resolute', 'resolution'],
+ ['resourceful', 'resourcefulness'],
+ ['respectable', 'respect'],
+ ['respectful', 'respect'],
+ ['responsible', 'responsibility'],
+ ['reverent', 'reverence'],
+ ['rich', 'richness'],
+ ['riotous', 'riotousness'],
+ ['ripe', 'ripeness'],
+ ['risible', 'risibility'],
+ ['romantic', 'romance'],
+ ['rough', 'roughness'],
+ ['round', 'roundness'],
+ ['sad', 'sadness'],
+ ['salubrious', 'salubriousness'],
+ ['scrupulous', 'scrupulousness'],
+ ['scurrilous', 'scurrility'],
+ ['seditious', 'seditiousness'],
+ // ['self-assured', 'self-assurance'],
+ // ['self-disciplined', 'self-discipline'],
+ ['selfless', 'selflessness'],
+ ['sensible', 'sensibility'],
+ ['sensitive', 'sensitivity'],
+ ['serene', 'serenity'],
+ ['serious', 'seriousness'],
+ ['sharp', 'sharpness'],
+ ['shining', 'shininess'],
+ ['short', 'shortness'],
+ ['silent', 'silence'],
+ ['simple', 'simplicity'],
+ ['sincere', 'sincerity'],
+ ['sinister', 'sinisterness'],
+ ['skillful', 'skill'],
+ ['slippery', 'slipperiness'],
+ ['slow', 'slowness'],
+ ['smooth', 'smoothness'],
+ ['soft', 'softness'],
+ ['solid', 'solidity'],
+ ['soothing', 'soothingness'],
+ ['sour', 'sourness'],
+ ['specious', 'speciousness'],
+ ['spiritual', 'spirituality'],
+ ['spontaneous', 'spontaneity'],
+ ['sporadic', 'sporadicness'],
+ ['spurious', 'spuriousness'],
+ ['stalwart', 'stalwartness'],
+ ['stern', 'sternness'],
+ ['straight', 'straightness'],
+ ['strategic', 'strategy'],
+ ['strict', 'strictness'],
+ ['strong', 'strength'],
+ ['stubborn', 'stubbornness'],
+ ['sturdy', 'sturdiness'],
+ ['sublime', 'sublimity'],
+ ['subservient', 'subservience'],
+ ['subtle', 'subtleties'],
+ ['successful', 'success'],
['superficial', 'superficiality'],
+ ['supportive', 'support'],
+ ['suspicious', 'suspicion'],
+ ['sweet', 'sweetness'],
['swift', 'swiftness'],
+ ['sympathetic', 'sympathy'],
+ ['tactful', 'tact'],
+ ['talented', 'talent'],
['tall', 'tallness'],
['tame', 'tameness'],
['tart', 'tartness'],
['tawdry', 'tawdriness'],
+ ['tenacious', 'tenacity'],
+ ['tender', 'tenderness'],
['tense', 'tenseness'],
+ ['tenuous', 'tenuousness'],
+ ['thin', 'thinness'],
['thirsty', 'thirstiness'],
+ ['thorny', 'thorniness'],
+ ['thorough', 'thoroughness'],
+ ['thoughtful', 'thoughtfulness'],
['tidy', 'tidiness'],
['timely', 'timeliness'],
+ ['timid', 'timidity'],
+ ['timorous', 'timorousness'],
['tiny', 'tininess'],
['tired', 'tiredness'],
- ['random', 'randomness'],
- ['credible', 'credibility'],
- ['impossible', 'impossibility'],
- ['annoying', null],
-
- ['moist', 'moistness'],
- ['quick', 'quickness'],
- ['quiet', 'quiet'],
- ['red', 'redness'],
- ['ripe', 'ripeness'],
- ['rough', 'roughness'],
- ['sad', 'sadness'],
- ['sharp', 'sharpness'],
+ ['tireless', 'tirelessness'],
+ ['tolerant', 'tolerance'],
+ ['tough', 'toughness'],
+ ['trenchant', 'trenchancy'],
+ ['trusting', 'trust'],
+ ['trustworthy', 'trustworthiness'],
+ ['tumultuous', 'tumult'],
+ ['ubiquitous', 'ubiquitousness'],
+ ['unctuous', 'unctuousness'],
+ ['understanding', 'understanding'],
+ ['unflappable', 'unflappability'],
+ ['unique', 'uniqueness'],
+ ['unyielding', 'unyieldingness'],
+ ['vagrant', 'vagrancy'],
+ ['valuable', 'value'],
+ ['vapid', 'vapidity'],
+ ['venerable', 'venerability'],
+ ['versatile', 'versatility'],
+ ['vertical', 'verticality'],
+ ['vibrant', 'vibrancy'],
+ ['vigilant', 'vigilance'],
+ ['vigorous', 'vigor'],
+ ['vivacious', 'vivacity'],
+ ['vixenish', 'vixenishness'],
+ ['volatile', 'volatility'],
+ ['volumous', 'voluminousness'],
+ ['vulnerable', 'vulnerability'],
+ ['wanton', 'wantonness'],
+ ['warm', 'warmth'],
+ ['weak', 'weakness'],
+ ['whimsical', 'whimsicalness'],
+ ['wide', 'wideness'],
+ ['wily', 'wiliness'],
+ ['wise', 'wisdom'],
+ ['wistful', 'wistfulness'],
+ ['witty', 'wit'],
+ ['woebegone', 'woefulness'],
+ ['yielding', 'yieldingness'],
+ ['young', 'youth'],
+ ['zany', 'zaniness'],
+ ['zealous', 'zeal'],
]
test('toNoun:', function (t) {
- let { toNoun } = nlp().methods.two.transform.adjective
+ // let { toNoun } = nlp().methods.two.transform.adjective
arr.forEach(a => {
- let res = toNoun(a[0])
- t.equal(res, a[1], here + ` [toNoun] ${a[1]}`)
+ let [adj, noun] = a
+ // t.ok(nlp(noun).has('#Noun'), here + noun)
+ // t.ok(nlp(adj).has('#Adjective'), here + adj)
+ let res = nlp(adj).tag('Adjective').adjectives().conjugate()[0] || {}
+ // let res = toNoun(adj)
+ t.equal(res.Noun, noun, here + ` [${adj}, ${noun}]`)
})
t.end()
})
diff --git a/tests/three/adjectives/adjectives.test.js b/tests/three/adjectives/adjectives.test.js
index b61f12d3c..b8d0e4d10 100644
--- a/tests/three/adjectives/adjectives.test.js
+++ b/tests/three/adjectives/adjectives.test.js
@@ -8,9 +8,20 @@ test('adjectives misc', function (t) {
let json = doc.adjectives().json()
t.equal(json.length, 1, here + 'adj')
t.equal(json[0].adjective.adverb, 'clearly', here + 'adv')
- t.equal(json[0].adjective.noun, 'clearness', here + 'noun')
+ t.equal(json[0].adjective.noun, 'clarity', here + 'noun')
t.equal(json[0].adjective.superlative, 'clearest', here + 'super')
t.equal(json[0].adjective.comparative, 'clearer', here + 'comp')
t.end()
})
+
+
+test('pessimistic conjugation', function (t) {
+
+ let res = nlp('hairy').adjectives().conjugate()[0] || {}
+ t.equal(res.Comparative, 'hairier', here + 'comp')
+ t.equal(res.Superlative, 'hairiest', here + 'sup')
+ // t.ok(!res.Adverb, here + 'no advb')
+
+ t.end()
+})
diff --git a/tests/three/adjectives/comparative.test.js b/tests/three/adjectives/comparative.test.js
index 8cdc16830..6998109ad 100644
--- a/tests/three/adjectives/comparative.test.js
+++ b/tests/three/adjectives/comparative.test.js
@@ -61,11 +61,421 @@ test('.toComparative():', function (t) {
["soft", "softer"],
["steep", "steeper"],
["stiff", "stiffer"],
+ ['angry', 'angrier'],
+ ['bad', 'worse'],
+ ['bald', 'balder'],
+ ['bawdy', 'bawdier'],
+ ['big', 'bigger'],
+ ['black', 'blacker'],
+ ['bland', 'blander'],
+ ['blond', 'blonder'],
+ ['bloody', 'bloodier'],
+ ['blue', 'bluer'],
+ ['bold', 'bolder'],
+ ['bored', 'boreder'],
+ ['boring', 'boringer'],
+ ['bouncy', 'bouncier'],
+ ['brash', 'brasher'],
+ ['brave', 'braver'],
+ ['brief', 'briefer'],
+ ['bright', 'brighter'],
+ ['broad', 'broader'],
+ ['buff', 'buffer'],
+ ['burly', 'burlier'],
+ ['busy', 'busier'],
+ ['calm', 'calmer'],
+ ['camp', 'camper'],
+ ['catchy', 'catchier'],
+ ['cheap', 'cheaper'],
+ ['cheesy', 'cheesier'],
+ ['chilly', 'chillier'],
+ ['clean', 'cleaner'],
+ ['clear', 'clearer'],
+ ['clever', 'cleverer'],
+ ['close', 'closer'],
+ ['cloudy', 'cloudier'],
+ ['clumsy', 'clumsier'],
+ ['coarse', 'coarser'],
+ ['cold', 'colder'],
+ ['cool', 'cooler'],
+ ['costly', 'costlier'],
+ ['cozy', 'cozier'],
+ ['crazy', 'crazier'],
+ ['crisp', 'crisper'],
+ ['cruel', 'crueler'],
+ ['cuddly', 'cuddlier'],
+ ['curly', 'curlier'],
+ ['cute', 'cuter'],
+ ['damp', 'damper'],
+ ['dark', 'darker'],
+ ['deadly', 'deadlier'],
+ ['dear', 'dearer'],
+ ['deep', 'deeper'],
+ ['dense', 'denser'],
+ ['diffuse', 'diffuser'],
+ ['dim', 'dimmer'],
+ ['dire', 'direr'],
+ ['dirty', 'dirtier'],
+ ['divine', 'diviner'],
+ ['drunk', 'drunker'],
+ ['dry', 'drier'],
+ ['dull', 'duller'],
+ ['dumb', 'dumber'],
+ ['early', 'earlier'],
+ ['easy', 'easier'],
+ ['edgy', 'edgier'],
+ ['eerie', 'eerier'],
+ ['empty', 'emptier'],
+ ['faint', 'fainter'],
+ ['fair', 'fairer'],
+ ['fake', 'faker'],
+ ['fancy', 'fancier'],
+ ['far', 'further'],
+ ['fast', 'faster'],
+ ['fat', 'fatter'],
+ ['faulty', 'faultier'],
+ ['feeble', 'feebler'],
+ ['few', 'fewer'],
+ ['fierce', 'fiercer'],
+ ['filthy', 'filthier'],
+ ['fine', 'finer'],
+ ['firm', 'firmer'],
+ ['flat', 'flatter'],
+ ['foamy', 'foamier'],
+ ['foggy', 'foggier'],
+ ['fond', 'fonder'],
+ ['foul', 'fouler'],
+ ['frail', 'frailer'],
+ ['frank', 'franker'],
+ ['free', 'freer'],
+ ['fresh', 'fresher'],
+ ['friendly', 'friendlier'],
+ ['full', 'fuller'],
+ ['fun', 'funer'],
+ ['funny', 'funnier'],
+ ['furry', 'furrier'],
+ ['gauche', 'gaucher'],
+ ['gaudy', 'gaudier'],
+ ['gay', 'gaier'],
+ ['gentle', 'gentler'],
+ ['ghastly', 'ghastlier'],
+ ['ghostly', 'ghostlier'],
+ ['giddy', 'giddier'],
+ ['glad', 'gladder'],
+ ['glib', 'glibber'],
+ ['gloomy', 'gloomier'],
+ ['gold', 'golder'],
+ ['good', 'better'],
+ ['goofy', 'goofier'],
+ ['grand', 'grander'],
+ ['grave', 'graver'],
+ ['gray', 'grayer'],
+ ['great', 'greater'],
+ ['greedy', 'greedier'],
+ ['green', 'greener'],
+ ['grisly', 'grislier'],
+ ['groovy', 'groovier'],
+ ['gross', 'grosser'],
+ ['gruesome', 'gruesomer'],
+ ['handsome', 'handsomer'],
+ ['handy', 'handier'],
+ ['happy', 'happier'],
+ ['hard', 'harder'],
+ ['hardy', 'hardier'],
+ ['harsh', 'harsher'],
+ ['heady', 'headier'],
+ ['healthy', 'healthier'],
+ ['hearty', 'heartier'],
+ ['heavy', 'heavier'],
+ ['hefty', 'heftier'],
+ ['high', 'higher'],
+ ['hilly', 'hillier'],
+ ['holy', 'holier'],
+ ['homely', 'homelier'],
+ ['hot', 'hotter'],
+ ['huge', 'huger'],
+ ['humble', 'humbler'],
+ ['humid', 'humider'],
+ ['hungry', 'hungrier'],
+ ['icy', 'icier'],
+ ['jolly', 'jollier'],
+ ['juicy', 'juicier'],
+ ['keen', 'keener'],
+ ['kind', 'kinder'],
+ ['lame', 'lamer'],
+ ['large', 'larger'],
+ ['late', 'later'],
+ ['lazy', 'lazier'],
+ ['lean', 'leaner'],
+ ['leery', 'leerier'],
+ ['lengthy', 'lengthier'],
+ ['lewd', 'lewder'],
+ ['light', 'lighter'],
+ ['likely', 'likelier'],
+ ['limp', 'limper'],
+ ['little', 'littler'],
+ ['lively', 'livelier'],
+ ['lofty', 'loftier'],
+ ['lonely', 'lonelier'],
+ ['long', 'longer'],
+ ['loose', 'looser'],
+ ['loud', 'louder'],
+ ['lousy', 'lousier'],
+ ['lovely', 'lovelier'],
+ ['low', 'lower'],
+ ['lucky', 'luckier'],
+ ['mad', 'madder'],
+ ['mean', 'meaner'],
+ ['measly', 'measlier'],
+ ['meaty', 'meatier'],
+ ['meek', 'meeker'],
+ ['mellow', 'mellower'],
+ ['messy', 'messier'],
+ ['mild', 'milder'],
+ ['moist', 'moister'],
+ ['moody', 'moodier'],
+ ['nappy', 'nappier'],
+ ['narrow', 'narrower'],
+ ['nasty', 'nastier'],
+ ['near', 'nearer'],
+ ['neat', 'neater'],
+ ['new', 'newer'],
+ ['nice', 'nicer'],
+ ['nimble', 'nimbler'],
+ ['noble', 'nobler'],
+ ['noisy', 'noisier'],
+ ['nosy', 'nosier'],
+ ['numb', 'number'],
+ ['odd', 'odder'],
+ ['oily', 'oilier'],
+ ['old', 'older'],
+ ['pale', 'paler'],
+ ['petty', 'pettier'],
+ ['phony', 'phonier'],
+ ['pink', 'pinker'],
+ ['poor', 'poorer'],
+ ['pretty', 'prettier'],
+ ['prickly', 'pricklier'],
+ ['proud', 'prouder'],
+ ['puny', 'punier'],
+ ['pure', 'purer'],
+ ['quick', 'quicker'],
+ ['quiet', 'quieter'],
+ ['rainy', 'rainier'],
+ ['rare', 'rarer'],
+ ['raw', 'rawer'],
+ ['ready', 'readier'],
+ ['rich', 'richer'],
+ ['right', 'righter'],
+ ['ripe', 'riper'],
+ ['risky', 'riskier'],
+ ['ritzy', 'ritzier'],
+ ['roomy', 'roomier'],
+ ['rosy', 'rosier'],
+ ['rough', 'rougher'],
+ ['round', 'rounder'],
+ ['rude', 'ruder'],
+ ['sad', 'sadder'],
+ ['safe', 'safer'],
+ ['saintly', 'saintlier'],
+ ['salty', 'saltier'],
+ ['savvy', 'savvier'],
+ ['scanty', 'scantier'],
+ ['scarce', 'scarcer'],
+ // ['scared', 'scarier'],
+ ['scary', 'scarier'],
+ ['sexy', 'sexier'],
+ ['shady', 'shadier'],
+ ['shallow', 'shallower'],
+ ['sharp', 'sharper'],
+ ['shiny', 'shinier'],
+ ['short', 'shorter'],
+ ['shrill', 'shriller'],
+ ['shy', 'shyer'],
+ ['sick', 'sicker'],
+ ['sickly', 'sicklier'],
+ ['silky', 'silkier'],
+ ['silly', 'sillier'],
+ ['simple', 'simpler'],
+ ['skinny', 'skinnier'],
+ ['slack', 'slacker'],
+ ['sleek', 'sleeker'],
+ ['sleepy', 'sleepier'],
+ ['slight', 'slighter'],
+ ['slim', 'slimmer'],
+ ['slimy', 'slimier'],
+ ['sloppy', 'sloppier'],
+ ['slow', 'slower'],
+ ['sly', 'slier'],
+ ['small', 'smaller'],
+ ['smart', 'smarter'],
+ ['smelly', 'smellier'],
+ ['smooth', 'smoother'],
+ ['soft', 'softer'],
+ ['solemn', 'solemner'],
+ ['soon', 'sooner'],
+ ['sore', 'sorer'],
+ ['sorry', 'sorrier'],
+ ['sound', 'sounder'],
+ ['sparse', 'sparser'],
+ ['speedy', 'speedier'],
+ ['spicy', 'spicier'],
+ ['sprightly', 'sprightlier'],
+ ['square', 'squarer'],
+ ['stale', 'staler'],
+ ['stark', 'starker'],
+ ['steady', 'steadier'],
+ ['steep', 'steeper'],
+ ['stern', 'sterner'],
+ ['stiff', 'stiffer'],
+ ['stingy', 'stingier'],
+ ['stout', 'stouter'],
+ ['straight', 'straighter'],
+ ['strict', 'stricter'],
+ ['strong', 'stronger'],
+ ['stupid', 'stupider'],
+ ['sturdy', 'sturdier'],
+ ['subtle', 'subtler'],
+ ['sweet', 'sweeter'],
+ ['swift', 'swifter'],
+ ['tall', 'taller'],
+ ['tame', 'tamer'],
+ ['tawdry', 'tawdrier'],
+ ['tense', 'tenser'],
+ ['thick', 'thicker'],
+ ['thin', 'thinner'],
+ ['thirsty', 'thirstier'],
+ ['tidy', 'tidier'],
+ ['tight', 'tighter'],
+ ['timely', 'timelier'],
+ ['tiny', 'tinier'],
+ ['tough', 'tougher'],
+ ['trendy', 'trendier'],
+ ['tricky', 'trickier'],
+ ['trim', 'trimmer'],
+ ['true', 'truer'],
+ ['ugly', 'uglier'],
+ ['unfriendly', 'unfriendlier'],
+ ['unlikely', 'unlikelier'],
+ ['unlucky', 'unluckier'],
+ ['untidy', 'untidier'],
+ ['vague', 'vaguer'],
+ ['vain', 'vainer'],
+ ['vast', 'vaster'],
+ ['warm', 'warmer'],
+ ['wary', 'warier'],
+ ['weak', 'weaker'],
+ ['wealthy', 'wealthier'],
+ ['weary', 'wearier'],
+ ['weird', 'weirder'],
+ ['wet', 'wetter'],
+ ['white', 'whiter'],
+ ['wicked', 'wickeder'],
+ ['wide', 'wider'],
+ ['wild', 'wilder'],
+ ['wily', 'wilier'],
+ ['wise', 'wiser'],
+ ['witty', 'wittier'],
+ ['wrong', 'wronger'],
+ ['young', 'younger'],
+ ['zany', 'zanier'],
+
+
]
arr.forEach(a => {
- let doc = nlp(a[0])
+ let doc = nlp(a[0]).tag('Adjective')
doc.adjectives().toComparative()
t.equal(doc.text(), a[1], here + a[0])
})
t.end()
-})
\ No newline at end of file
+})
+
+
+
+
+
+// test('.unchanged:', function (t) {
+// let arr = [
+// 'energetic',
+// 'compassionate',
+// 'generous',
+// 'ambitious',
+// 'considerate',
+// 'thorough',
+// 'dependable',
+// 'patient',
+// 'successful',
+// 'industrious',
+// 'talented',
+// 'diligent',
+// 'skillful',
+// 'supportive',
+// 'adaptable',
+// 'dynamic',
+// 'imaginative',
+// 'conscientious',
+// 'organized',
+// 'polished',
+// 'polished',
+// 'energetic',
+// 'affectionate',
+// 'determined',
+// 'motivated',
+// 'persistent',
+// 'ingenious',
+// 'thoughtful',
+// 'popular',
+// 'capable',
+// 'loyal',
+// 'flexible',
+// 'dignified',
+// 'skillful',
+// 'amusing',
+// 'meticulous',
+// 'sensitive',
+// 'balanced',
+// 'sensible',
+// 'honorable',
+// 'enthusiastic',
+// 'reliable',
+// 'obedient',
+// 'devoted',
+// 'affable',
+// 'adventurous',
+// 'talented',
+// 'creative',
+// 'confident',
+// 'thrifty',
+// 'intuitive',
+// 'resourceful',
+// 'helpful',
+// 'courageous',
+// 'gentlemanly',
+// 'considerate',
+// 'energized',
+// 'dominant',
+// 'eloquent',
+// 'resilient',
+// 'insightful',
+// 'practical',
+// 'consistent',
+// 'realistic',
+// 'independent',
+// 'discreet',
+// 'diligent',
+// 'mature',
+// 'responsive',
+// 'grateful',
+// 'youthful',
+// 'upbeat',
+// 'gifted',
+// 'united',
+// 'optimistic',
+// 'selfless',
+// 'amiable',
+// 'detail-oriented',
+// 'positive',
+// ]
+// t.end()
+// })
+
diff --git a/tests/three/adjectives/superlative.test.js b/tests/three/adjectives/superlative.test.js
index b941aeaf4..18918e2d9 100644
--- a/tests/three/adjectives/superlative.test.js
+++ b/tests/three/adjectives/superlative.test.js
@@ -45,9 +45,34 @@ test('.toSuperlative():', function (t) {
["blue", "bluest"],
["stiff", "stiffest"],
["straight", "straightest"],
- ["sweet", "sweettest"],
+ ["sweet", "sweetest"],
["thick", "thickest"],
["tight", "tightest"],
+ ['happy', 'happiest'],
+ ['polite', 'politest'],
+ ['tidy', 'tidiest'],
+ ['prompt', 'promptest'],
+ ['bright', 'brightest'],
+ ['gentle', 'gentlest'],
+ ['quick', 'quickest'],
+ ['cheerful', 'cheerfullest'],
+ ['kind', 'kindest'],
+ ['sincere', 'sincerest'],
+ ['brave', 'bravest'],
+ ['pleasant', 'pleasantest'],
+ // ['modest', 'modestest'],
+ // ['fearless', 'fearlessest'],
+ // ['content', 'contentedst'],
+ ['friendly', 'friendliest'],
+ ['sincere', 'sincerest'],
+ ['calm', 'calmest'],
+ ['eager', 'eagerest'],
+ ['witty', 'wittiest'],
+ ['lively', 'liveliest'],
+ // ['secure', 'securest'],
+ ['strong', 'strongest'],
+ ['quick', 'quickest'],
+
]
arr.forEach(a => {
let doc = nlp(a[0])
diff --git a/tests/three/api.test.js b/tests/three/api.test.js
index c698216c5..2482783bd 100644
--- a/tests/three/api.test.js
+++ b/tests/three/api.test.js
@@ -154,6 +154,7 @@ test('api:', function (t) {
// nouns
doc.nouns().parse()
doc.nouns().json()
+ doc.nouns().conjugate()
doc.nouns().isPlural()
doc.nouns().adjectives()
doc.nouns().toPlural()
@@ -202,12 +203,19 @@ test('api:', function (t) {
doc.verbs().toPastTense()
doc.verbs().toFutureTense()
doc.verbs().toGerund()
+ doc.verbs().toPastParticiple()
doc.verbs().conjugate()
doc.verbs().isNegative()
doc.verbs().isPositive()
doc.verbs().toPositive()
doc.verbs().toNegative()
+ doc.adjectives().json()
+ doc.adjectives().conjugate()
+
+ doc.adverbs().json()
+ doc.adverbs().conjugate()
+
// misc
doc.redact()
doc.topics()
diff --git a/tests/three/chunker/chunks.ignore.js b/tests/three/chunker/chunks.ignore.js
new file mode 100644
index 000000000..16e2fb098
--- /dev/null
+++ b/tests/three/chunker/chunks.ignore.js
@@ -0,0 +1,48 @@
+import test from 'tape'
+import nlp from '../_lib.js'
+// const here = '[three/chunks] '
+
+test('chunker', function (t) {
+ let arr = [
+
+ ["Record your successes and keep going."],
+ ["With a million jobs at stake, I refused to let that happen."],
+ ["Letters Written in Sweden, Norway, and Denmark was Wollstonecraft's most popular book in the 1790s."],
+ ["Highly recommended, ask for Josh!"],
+ ["It seemed to fly rather than gallop, but so smoothly that Beauty was not frightened; indeed, she would have enjoyed the journey if she had not feared what might happen to her at the end of it."],
+ ["Are you sure you wanna do this?"],
+ ["Shares finish lower on sustained selling"],
+ ["This English shire is named for an Old Saxon landowner; the name means \"Snot's home\""],
+ ["What do you call a man with no arms and no legs, but can play the piano really well?"],
+ ["My friend was repeatedly trying to get me to call another friend to act as 'ground control,' for he explained to me that he would periodically lose all concept of who he was or the situation he was in."],
+ ["Don't want to be your monkey wrench"],
+ ["Im sure you will learn to do the same."],
+ ["But when we really need them, someone else have already liked that boring care."],
+ ["The accidental gun rate — the accidental gun death rate of children under 15 in the United States is nine times higher than in the other 25 industrialized countries combined."],
+ ["Think of the positive aspects of each situation."],
+ ["The term \"Great Britain\", by contrast, refers conventionally to the island of Great Britain, or politically to England, Scotland and Wales in combination."],
+ ["I had ingrown hairs and follicle problems for over a year and Crystal"],
+ ["C'mon, Pheebs, we're gonna catch that movie, we gotta get going.", ''],
+ ["The top 10 music festivals in Toronto for spring 2015", ''],
+ ["Duck, duck, l'oie; (l'oie of course referring to this other feathered friend)", ''],
+ ["I hate when I'm standing there trying to be handsome when some other guy comes and stands next to me and challenges my handsomeness.", ''],
+ ["round the old sun-dial, and perhaps he will give you what you want.”", ''],
+ ["John, sorry for the late response, but I think you can implement immediately.", ''],
+ ["Nah man you may get lucky they may just mess with you like they did with me", ''],
+ ["I see how lah, den i tell u whether meeting for dinner not.", ''],
+ ["I am asking you to do just that.", ''],
+ ["If you didn't become Final Form, just hit the pause button and press \"Retry\".", ''],
+ ["Among the most widely used are subjecting DNA to UV radiation or chemical mutagens, error-prone PCR, degenerate codons, or recombination.", ''],
+ ["This bar is a top pick for my friends and I when we want to go somewhere we know we can enjoy and unwind on the weekend.", ''],
+ ["madam, cried the clerk of the kitchen.", ''],
+ ["I can’t believe they-they didn’t even tell us!", ''],
+ ["You can now eat chimney sundaes in Toronto", ''],
+ ]
+ arr.forEach(a => {
+ let doc = nlp(a[0])
+ doc.chunks().forEach(chunk => {
+
+ })
+ })
+ t.end()
+})
diff --git a/tests/three/nouns/toPlural.test.js b/tests/three/nouns/toPlural.test.js
index 0c6dc89c6..8bcd94c92 100644
--- a/tests/three/nouns/toPlural.test.js
+++ b/tests/three/nouns/toPlural.test.js
@@ -4,97 +4,301 @@ const here = '[three/noun-toPlural] '
test('toPlural:', function (t) {
let arr = [
- ['snake', 'snakes'],
- ['ski', 'skis'],
- // ["Barrymore", "Barrymores"],
- ['witch', 'witches'],
- ['box', 'boxes'],
- ['gas', 'gases'],
- ['kiss', 'kisses'],
- ['index', 'indices'],
- ['appendix', 'appendices'],
- ['criterion', 'criteria'],
- ['berry', 'berries'],
['activity', 'activities'],
- ['daisy', 'daisies'],
- ['church', 'churches'],
- ['fox', 'foxes'],
- ['stomach', 'stomachs'],
- ['epoch', 'epochs'],
- ['knife', 'knives'],
- ['half', 'halves'],
- ['scarf', 'scarves'],
- ['chief', 'chiefs'],
- ['spoof', 'spoofs'],
- ['cafe', 'cafes'],
- ['gulf', 'gulfs'],
+ ['aircraft', 'aircraft'],
+ ['airplane', 'airplanes'],
['alternative', 'alternatives'],
- ['solo', 'solos'],
- // ['zero', 'zeros'],
+ ['analysis', 'analyses'],
+ ['ant', 'ants'],
+ ['appendix', 'appendices'],
+ ['apple', 'apples'],
+ ['armadillo', 'armadillos'],
+ ['auto', 'autos'],
['avocado', 'avocados'],
- ['studio', 'studios'],
- ['zoo', 'zoos'],
- ['embryo', 'embryos'],
- ['hero', 'heroes'],
+ ['baby', 'babies'],
+ ['ball', 'balls'],
+ ['balloon', 'balloons'],
+ ['banana', 'bananas'],
['banjo', 'banjos'],
+ ['basket', 'baskets'],
+ ['bean', 'beans'],
+ ['bed', 'beds'],
+ ['beggar', 'beggars'],
+ ['berry', 'berries'],
+ ['bible', 'bibles'],
+ ['bicycle', 'bicycles'],
+ ['bird', 'birds'],
+ ['boat', 'boats'],
+ ['book', 'books'],
+ ['bottle', 'bottles'],
+ ['bowl', 'bowls'],
+ ['box', 'boxes'],
+ ['bravo', 'bravos'],
+ ['bread', 'bread'],
+ ['bridge', 'bridges'],
+ ['bronco', 'broncos'],
+ ['broom', 'brooms'],
+ ['brush', 'brushes'],
+ ['bus', 'buses'],
+ ['butterfly', 'butterflies'],
+ ['cafe', 'cafes'],
+ ['cake', 'cakes'],
+ ['camera', 'cameras'],
+ ['candle', 'candles'],
+ ['candy', 'candies'],
+ ['car', 'cars'],
['cargo', 'cargos'],
+ ['carrot', 'carrots'],
+ ['casino', 'casinos'],
+ ['castle', 'castles'],
+ ['cat', 'cats'],
+ ['cause', 'causes'],
+ ['chair', 'chairs'],
+ ['characteristic', 'characteristics'],
+ // ['cheese', 'cheeses'],
+ ['chicken', 'chickens'],
+ ['chief', 'chiefs'],
+ ['child', 'children'],
+ ['chipmunk', 'chipmunks'],
+ ['church', 'churches'],
+ ['clock', 'clocks'],
+ ['cloud', 'clouds'],
+ ['coat', 'coats'],
+ ['coin', 'coins'],
+ ['combo', 'combos'],
+ ['computer', 'computers'],
+ ['cookie', 'cookies'],
+ ['couch', 'couches'],
+ ['cow', 'cows'],
+ ['cowboy', 'cowboys'],
+ ['cowgirl', 'cowgirls'],
+ ['crisis', 'crises'],
+ ['criterion', 'criteria'],
+ ['cup', 'cups'],
+ ['cupcake', 'cupcakes'],
+ ['daisy', 'daisies'],
+ ['deer', 'deer'],
+ ['desert', 'deserts'],
+ ['desk', 'desks'],
+ ['diamond', 'diamonds'],
+ ['dice', 'dice'],
+ ['dish', 'dishes'],
+ ['dog', 'dogs'],
+ ['doll', 'dolls'],
+ ['door', 'doors'],
+ ['dose', 'doses'],
+ ['dragon', 'dragons'],
+ ['dress', 'dresses'],
+ ['drum', 'drums'],
+ ['dust', 'dusts'],
+ ['elephant', 'elephants'],
+ ['embryo', 'embryos'],
+ ['envelope', 'envelopes'],
+ ['epoch', 'epochs'],
+ ['eye', 'eyes'],
+ ['fabric', 'fabrics'],
+ ['face', 'faces'],
+ ['falcon', 'falcons'],
+ ['fan', 'fans'],
+ // ['fish', 'fish'],
+ ['fishbowl', 'fishbowls'],
+ ['flag', 'flags'],
['flamingo', 'flamingos'],
+ ['flower', 'flowers'],
+ ['flowerpot', 'flowerpots'],
+ ['foot', 'feet'],
+ ['fork', 'forks'],
+ ['fountain', 'fountains'],
+ ['fox', 'foxes'],
['fresco', 'frescos'],
+ ['frog', 'frogs'],
+ ['game', 'games'],
+ ['garden', 'gardens'],
+ ['gas', 'gases'],
+ ['gazebo', 'gazebos'],
['ghetto', 'ghettos'],
+ ['giraffe', 'giraffes'],
+ ['glass', 'glasses'],
+ ['globe', 'globes'],
+ ['goat', 'goats'],
+ ['goose', 'geese'],
+ ['greeting', 'greetings'],
+ ['guitar', 'guitars'],
+ ['gulf', 'gulfs'],
+ ['gun', 'guns'],
+ // ['hair', 'hairs'],
+ ['half', 'halves'],
+ ['halibut', 'halibut'],
['halo', 'halos'],
+ ['hammer', 'hammers'],
+ ['hand', 'hands'],
+ ['hat', 'hats'],
+ ['helmet', 'helmets'],
+ ['hero', 'heroes'],
+ ['horse', 'horses'],
+ ['hour', 'hours'],
+ ['house', 'houses'],
+ ['index', 'indices'],
+ ['insect', 'insects'],
+ ['jar', 'jars'],
+ ['jellyfish', 'jellyfish'],
+ ['juice', 'juices'],
+ ['key', 'keys'],
+ ['kiss', 'kisses'],
+ ['kite', 'kites'],
+ ['kitten', 'kittens'],
+ ['knife', 'knives'],
+ ['lady', 'ladies'],
+ ['lake', 'lakes'],
+ ['lamp', 'lamps'],
+ ['language', 'languages'],
+ ['laugh', 'laughs'],
+ ['leaf', 'leaves'],
+ ['light', 'lights'],
+ ['lion', 'lions'],
+ ['lip', 'lips'],
+ ['lipstick', 'lipsticks'],
+ ['lock', 'locks'],
+ ['magazine', 'magazines'],
+ ['man', 'men'],
['mango', 'mangos'],
+ ['map', 'maps'],
['memento', 'mementos'],
+ ['menu', 'menus'],
+ ['milk', 'milks'],
+ ['mirror', 'mirrors'],
+ ['monitor', 'monitors'],
+ ['monkey', 'monkeys'],
+ ['moon', 'moons'],
+ ['moose', 'moose'],
['motto', 'mottos'],
- ['tornado', 'tornados'],
- ['tuxedo', 'tuxedos'],
- ['volcano', 'volcanos'],
- ['bus', 'buses'],
- ['crisis', 'crises'],
- ['analysis', 'analyses'],
+ ['mountain', 'mountains'],
+ ['mouse', 'mice'],
+ ['mug', 'mugs'],
+ ['necklace', 'necklaces'],
+ ['net', 'nets'],
['neurosis', 'neuroses'],
- ['aircraft', 'aircraft'],
- ['halibut', 'halibut'],
- ['moose', 'moose'],
+ ['night', 'nights'],
+ ['noise', 'noises'],
+ ['oak', 'oaks'],
+ ['ocean', 'oceans'],
+ ['orange', 'oranges'],
+ ['ostrich', 'ostriches'],
+ ['paintbrush', 'paintbrushes'],
+ ['panther', 'panthers'],
+ ['paper', 'papers'],
+ ['pear', 'pears'],
+ ['pen', 'pens'],
+ ['pencil', 'pencils'],
+ ['person', 'people'],
+ ['phone', 'phones'],
+ ['picture', 'pictures'],
+ ['pillow', 'pillows'],
+ ['pizza', 'pizzas'],
+ ['plan', 'plans'],
+ ['planet', 'planets'],
+ ['plant', 'plants'],
+ ['plate', 'plates'],
+ ['potato', 'potatoes'],
+ ['prayer', 'prayers'],
+ ['puppy', 'puppies'],
+ ['purpose', 'purposes'],
+ ['purse', 'purses'],
+ ['queen', 'queens'],
+ ['quilt', 'quilts'],
+ ['rabbit', 'rabbits'],
+ ['radio', 'radios'],
+ ['rain', 'rains'],
+ ['ring', 'rings'],
+ ['river', 'rivers'],
+ ['robot', 'robots'],
+ ['rock', 'rocks'],
+ ['room', 'rooms'],
+ ['rug', 'rugs'],
+ ['ruler', 'rulers'],
+ ['salad', 'salads'],
['salmon', 'salmon'],
+ ['sandwich', 'sandwiches'],
+ ['scarf', 'scarves'],
+ ['seal', 'seals'],
+ ['shark', 'sharks'],
['sheep', 'sheep'],
- ['spacecraft', 'spacecraft'],
- ['tuna', 'tuna'],
- ['trout', 'trout'],
- ['armadillo', 'armadillos'],
- ['auto', 'autos'],
- ['bravo', 'bravos'],
- ['bronco', 'broncos'],
- ['casino', 'casinos'],
- ['combo', 'combos'],
- ['gazebo', 'gazebos'],
- //test that plural.pluralize()==plural..
- ['snake', 'snakes'],
+ ['sheepdog', 'sheepdogs'],
+ ['shirt', 'shirts'],
+ ['shoe', 'shoes'],
+ ['skeptic', 'skeptics'],
['ski', 'skis'],
- // ['mayor of chicago', 'mayors of chicago'],
- ['witch', 'witches'],
- ['box', 'boxes'],
- ['gas', 'gases'],
- ['spoof', 'spoofs'],
+ ['sky', 'skies'],
+ ['smile', 'smiles'],
+ ['snack', 'snacks'],
+ ['snail', 'snails'],
+ ['snake', 'snakes'],
+ ['sock', 'socks'],
+ ['sofa', 'sofas'],
['solo', 'solos'],
- ['avocado', 'avocados'],
+ ['soup', 'soups'],
+ ['spacecraft', 'spacecraft'],
+ ['spider', 'spiders'],
+ ['spoof', 'spoofs'],
+ ['spoon', 'spoons'],
+ ['star', 'stars'],
+ ['stomach', 'stomachs'],
+ ['stone', 'stones'],
+ ['stopwatch', 'stopwatches'],
+ ['story', 'stories'],
+ ['student', 'students'],
['studio', 'studios'],
- ['zoo', 'zoos'],
- ['characteristic', 'characteristics'],
- ['skeptic', 'skeptics'],
- ['fabric', 'fabrics'],
- ['menu', 'menus'],
+ ['suitcase', 'suitcases'],
+ ['sun', 'suns'],
+ ['table', 'tables'],
['tactic', 'tactics'],
- ['cause', 'causes'],
- ['bowl', 'bowls'],
- ['purpose', 'purposes'],
- ['dose', 'doses'],
- ['the size', 'the sizes'],
+ ['telephone', 'telephones'],
+ ['telescope', 'telescopes'],
+ ['television', 'televisions'],
+ ['the bruise', 'the bruises'],
+ ['the exercise', 'the exercises'],
['the prize', 'the prizes'],
['the promise', 'the promises'],
- ['noise', 'noises'],
['the raise', 'the raises'],
- ['the exercise', 'the exercises'],
- ['the bruise', 'the bruises'],
+ ['the size', 'the sizes'],
+ ['tie', 'ties'],
+ ['tiger', 'tigers'],
+ ['toothbrush', 'toothbrushes'],
+ ['tornado', 'tornados'],
+ ['towel', 'towels'],
+ ['train', 'trains'],
+ ['tree', 'trees'],
+ ['trout', 'trout'],
+ ['truck', 'trucks'],
+ ['tuna', 'tuna'],
+ ['tuxedo', 'tuxedos'],
+ ['umbrella', 'umbrellas'],
+ ['valley', 'valleys'],
+ ['vase', 'vases'],
+ ['vehicle', 'vehicles'],
+ ['violin', 'violins'],
+ ['voice', 'voices'],
+ ['volcano', 'volcanoes'],
+ ['wagon', 'wagons'],
+ ['wallet', 'wallets'],
+ ['watch', 'watches'],
+ ['wave', 'waves'],
+ ['whale', 'whales'],
+ ['whisper', 'whispers'],
+ ['window', 'windows'],
+ ['witch', 'witches'],
+ ['wolf', 'wolves'],
+ ['woman', 'women'],
+ ['x-ray', 'x-rays'],
+ ['xylophone', 'xylophones'],
+ ['yacht', 'yachts'],
+ // ['yo-yo', 'yo-yos'],
+ ['zebra', 'zebras'],
+ ['zoo', 'zoos'],
+ // ['mayor of chicago', 'mayors of chicago'],
+ // ['zero', 'zeros'],
+ // ["Barrymore", "Barrymores"],
+ //test that plural.pluralize()==plural..
// ['swim', 'swims'],
]
arr.forEach(function (a) {
diff --git a/tests/three/nouns/toSingular.test.js b/tests/three/nouns/toSingular.test.js
index f08653366..1d7559663 100644
--- a/tests/three/nouns/toSingular.test.js
+++ b/tests/three/nouns/toSingular.test.js
@@ -5,92 +5,221 @@ const here = '[three/noun-toSingular] '
test('toSingular:', function (t) {
let arr = [
// ["Joneses", "Jones"],
- ['children', 'child'],
- ['women', 'woman'],
- ['men', 'man'],
- ['people', 'person'],
- ['geese', 'goose'],
- ['mice', 'mouse'],
+
+ ['agents', 'agent'],
+ ['aircraft', 'aircraft'],
+ ['airports', 'airport'],
+ ['analyses', 'analysis'],
+ ['anchors', 'anchor'],
+ ['anchovies', 'anchovy'],
+ ['apples', 'apple'],
+ ['apricots', 'apricot'],
+ ['bags', 'bag'],
+ ['balls', 'ball'],
+ ['bananas', 'banana'],
['barracks', 'barracks'],
- ['deer', 'deer'],
- ['nuclei', 'nucleus'],
- ['syllabi', 'syllabus'],
- ['fungi', 'fungus'],
+ ['bases', 'base'],
+ ['bass', 'bass'],
+ ['bats', 'bat'],
+ ['bears', 'bear'],
+ ['beds', 'bed'],
+ ['bells', 'bell'],
+ ['bicycles', 'bicycle'],
+ ['bison', 'bison'],
+ ['blankets', 'blanket'],
+ ['blocks', 'block'],
+ ['boats', 'boat'],
+ ['bonuses', 'bonus'],
+ ['books', 'book'],
+ ['bottles', 'bottle'],
+ ['bricks', 'brick'],
+ ['brooms', 'broom'],
+ ['bubbles', 'bubble'],
+ ['bunnies', 'bunny'],
+ ['buses', 'bus'],
+ ['butterflies', 'butterfly'],
+ ['buttons', 'button'],
['cacti', 'cactus'],
- ['theses', 'thesis'],
+ ['cakes', 'cake'],
+ ['calves', 'calf'],
+ ['campuses', 'campus'],
+ ['candles', 'candle'],
+ ['capes', 'cape'],
+ ['carrots', 'carrot'],
+ ['cars', 'car'],
+ ['cases', 'case'],
+ ['cats', 'cat'],
+ ['causes', 'cause'],
+ ['chairs', 'chair'],
+ ['cheese', 'cheese'],
+ ['cheetahs', 'cheetah'],
+ ['chickens', 'chicken'],
+ ['children', 'child'],
+ ['clauses', 'clause'],
+ ['clocks', 'clock'],
+ ['clouds', 'cloud'],
+ ['cookies', 'cookie'],
+ ['cords', 'cord'],
+ ['cowboys', 'cowboy'],
+ ['cows', 'cow'],
+ ['crabs', 'crab'],
+ ['crayons', 'crayon'],
['crises', 'crisis'],
- ['phenomena', 'phenomenon'],
+ ['cupcakes', 'cupcake'],
+ ['decreases', 'decrease'],
+ ['deer', 'deer'],
+ ['desks', 'desk'],
+ ['dinosaurs', 'dinosaur'],
+ ['diseases', 'disease'],
+ ['dogs', 'dog'],
+ ['donuts', 'donut'],
+ ['doorways', 'doorway'],
+ ['ducks', 'duck'],
+ ['eagles', 'eagle'],
['embryos', 'embryo'],
+ ['eyebrows', 'eyebrow'],
+ ['fans', 'fan'],
+ ['fences', 'fence'],
+ ['fishes', 'fish'],
+ ['fountains', 'fountain'],
+ ['fowl', 'fowl'],
+ ['foxes', 'fox'],
+ ['frames', 'frame'],
['frescos', 'fresco'],
+ ['fungi', 'fungus'],
+ ['geese', 'goose'],
['ghettos', 'ghetto'],
+ ['glasses', 'glass'],
+ ['gloves', 'glove'],
+ ['grapes', 'grape'],
+ ['groceries', 'grocery'],
+ ['guns', 'gun'],
['halos', 'halo'],
- ['mangos', 'mango'],
- ['mementos', 'memento'],
- ['mottos', 'motto'],
- ['tornados', 'tornado'],
- ['tuxedos', 'tuxedo'],
- ['volcanos', 'volcano'],
- ['crises', 'crisis'],
- ['analyses', 'analysis'],
- ['aircraft', 'aircraft'],
- ['bass', 'bass'],
- ['bison', 'bison'],
- ['fishes', 'fish'],
- ['fowl', 'fowl'],
+ ['hammers', 'hammer'],
+ ['hens', 'hen'],
+ ['hippos', 'hippo'],
+ ['his excuses', 'his excuse'],
+ ['hooves', 'hoof'],
+ ['houses', 'house'],
+ ['increases', 'increase'],
+ ['jackets', 'jacket'],
+ ['kangaroos', 'kangaroo'],
+ ['keys', 'key'],
['kilos', 'kilo'],
['kimonos', 'kimono'],
+ ['kites', 'kite'],
+ ['kittens', 'kitten'],
+ ['knives', 'knife'],
+ ['laptops', 'laptop'],
+ ['lizards', 'lizard'],
+ ['loaves', 'loaf'],
+ ['locks', 'lock'],
['logos', 'logo'],
+ ['lollipops', 'lollipop'],
+ ['mangos', 'mango'],
+ ['mannequins', 'mannequin'],
+ ['masks', 'mask'],
+ ['mementos', 'memento'],
['memos', 'memo'],
- ['ponchos', 'poncho'],
+ ['men', 'man'],
+ ['mice', 'mouse'],
+ ['mirrors', 'mirror'],
+ ['monitors', 'monitor'],
+ ['monkeys', 'monkey'],
+ ['mottos', 'motto'],
+ ['mountains', 'mountain'],
+ ['mugs', 'mug'],
+ ['music', 'music'],
+ ['needles', 'needle'],
+ ['nerds', 'nerd'],
+ ['nuclei', 'nucleus'],
+ ['oafs', 'oaf'],
+ ['oceans', 'ocean'],
+ ['olives', 'olive'],
+ ['oranges', 'orange'],
+ ['owls', 'owl'],
+ ['paintings', 'painting'],
+ ['parentheses', 'parenthesis'],
+ ['pearls', 'pearl'],
+ ['penguins', 'penguin'],
+ ['pens', 'pen'],
+ ['people', 'person'],
+ ['phenomena', 'phenomenon'],
['photos', 'photo'],
+ ['phrases', 'phrase'],
+ ['pianos', 'piano'],
+ ['pies', 'pie'],
+ ['pigs', 'pig'],
+ ['pillars', 'pillar'],
+ ['pillows', 'pillow'],
['pimentos', 'pimento'],
+ ['plants', 'plant'],
+ ['plates', 'plate'],
+ ['pleases', 'please'],
+ ['ponchos', 'poncho'],
+ ['posters', 'poster'],
+ ['prognoses', 'prognosis'],
['pros', 'pro'],
- ['sombreros', 'sombrero'],
- ['tacos', 'taco'],
- ['memos', 'memo'],
- ['torsos', 'torso'],
- ['xylophones', 'xylophone'],
+ ['puzzles', 'puzzle'],
['quintuplets', 'quintuplet'],
- ['worrywarts', 'worrywart'],
- ['nerds', 'nerd'],
- ['lollipops', 'lollipop'],
- ['eyebrows', 'eyebrow'],
- // ['mayors of chicago', 'mayor of chicago'],
- //test that sungular.singularize()==singular..
- ['calves', 'calf'],
- ['olives', 'olive'],
- ['loaves', 'loaf'],
- ['oafs', 'oaf'],
- ['wives', 'wife'],
+ ['rabbits', 'rabbit'],
+ ['reeds', 'reed'],
+ ['releases', 'release'],
+ ['rivers', 'river'],
+ ['robots', 'robot'],
+ ['rocks', 'rock'],
['roofs', 'roof'],
- ['hooves', 'hoof'],
- ['buses', 'bus'],
- ['tosses', 'toss'],
- ['wishes', 'wish'],
- ['the geniouses', 'the genious'],
- ['prognoses', 'prognosis'],
- ['analyses', 'analysis'],
- ['synopses', 'synopsis'],
- ['parentheses', 'parenthesis'],
- ['theses', 'thesis'],
- ['bases', 'base'],
-
- ['bonuses', 'bonus'],
- ['buses', 'bus'],
- ['campuses', 'campus'],
- ['causes', 'cause'],
- ['clauses', 'clause'],
- ['the focuses', 'the focus'],
- ['houses', 'house'],
+ ['roses', 'rose'],
+ ['scarves', 'scarf'],
+ ['seeds', 'seed'],
+ ['sharks', 'shark'],
+ ['sheep', 'sheep'],
+ ['shoes', 'shoe'],
+ ['snails', 'snail'],
+ ['sofas', 'sofa'],
+ ['sombreros', 'sombrero'],
+ ['spiders', 'spider'],
+ ['spoons', 'spoon'],
['spouses', 'spouse'],
+ ['stairs', 'stair'],
+ ['sticks', 'stick'],
['surpluses', 'surplus'],
+ ['swords', 'sword'],
+ ['syllabi', 'syllabus'],
+ ['synopses', 'synopsis'],
+ ['tables', 'table'],
+ ['tacos', 'taco'],
+ ['teapots', 'teapot'],
+ ['teeth', 'tooth'],
+ ['tents', 'tent'],
+ ['the focuses', 'the focus'],
+ ['the geniouses', 'the genious'],
+ ['theses', 'thesis'],
+ ['tigers', 'tiger'],
+ ['tomatoes', 'tomato'],
+ ['tornados', 'tornado'],
+ ['torsos', 'torso'],
+ ['tosses', 'toss'],
+ ['toys', 'toy'],
+ ['trees', 'tree'],
+ ['tuxedos', 'tuxedo'],
['uses', 'use'],
['viruses', 'virus'],
- ['his excuses', 'his excuse'],
- [`irish potatoes`, 'irish potato'],
+ ['walruses', 'walrus'],
+ ['whales', 'whale'],
+ ['wishes', 'wish'],
+ ['wives', 'wife'],
+ ['wolves', 'wolf'],
+ ['women', 'woman'],
+ ['worrywarts', 'worrywart'],
+ ['xylophones', 'xylophone'],
+ ['zebras', 'zebra'],
[`ireland potatoes`, 'ireland potato'],
+ [`irish potatoes`, 'irish potato'],
[`john's potatoes`, `john's potato`],
// ['Isley Brothers members', 'Isley Brothers member'],
+ // ['mayors of chicago', 'mayor of chicago'],
+ //test that sungular.singularize()==singular..
]
arr.forEach(function (a) {
let doc = nlp(a[0])
diff --git a/tests/three/plugin.test.js b/tests/three/plugin.test.js
index 96edbd4a6..1be203f2a 100644
--- a/tests/three/plugin.test.js
+++ b/tests/three/plugin.test.js
@@ -27,6 +27,17 @@ test('change verb conjugation', function (t) {
doc = nlp('gettin').tag('Gerund')
res = doc.verbs().conjugate()[0]
t.equal(res.Infinitive, 'get', here + 'inf-3')
+
+ // reset it
+ nlp.plugin({
+ irregulars: {
+ get: {
+ pastTense: 'got',
+ presentTense: 'gets',
+ gerund: 'getting'
+ }
+ }
+ })
t.end()
})
diff --git a/tests/three/sentences/debullet.test.js b/tests/three/sentences/debullet.test.js
new file mode 100644
index 000000000..7644cd9bf
--- /dev/null
+++ b/tests/three/sentences/debullet.test.js
@@ -0,0 +1,83 @@
+import test from 'tape'
+import nlp from '../_lib.js'
+const here = '[three/bullets] '
+
+// should not strip bullets
+test('dont-debullet', function (t) {
+ t.plan(2)
+ let str = 'it is-cool. He is- nice-'
+ let m = nlp(str)
+ m.normalize({ debullet: true })
+ t.equal(m.out('text'), str, here + `don't debullet hyphens`)
+
+ str = `i was -
+feeling weird -
+were you too?`
+
+ m = nlp(str)
+ m.normalize({ debullet: true })
+ t.equal(m.out('text'), str, here + `don't debullet hyphens with multi-line`)
+ t.end()
+})
+
+// should strip bullets
+test('do-debullet', function (t) {
+ t.plan(6)
+ let str = '- it is-cool - he is nice'
+ let expected = 'it is-cool - he is nice'
+ let m = nlp(str)
+ m.normalize({ debullet: true })
+ t.equal(m.out('text'), expected, here + `do debullet line beginning hyphen`)
+
+ // all `str` below should match `expected` after debullet()
+ expected = `it is-cool
+He is nice
+oooh yeah, baby!`
+
+ str = `- it is-cool
+- He is nice
+- oooh yeah, baby!`
+
+ m = nlp(str)
+
+ m.normalize({ debullet: true })
+ t.equal(m.out('text'), expected, here + `do debullet multiline beginning hyphen`)
+
+ str = `-it is-cool
+-He is nice
+-oooh yeah, baby!`
+
+ m = nlp(str)
+
+ m.normalize({ debullet: true })
+ t.equal(m.out('text'), expected, here + `do debullet multiline beginning hyphen no-space`)
+
+ str = `* it is-cool
+* He is nice
+* oooh yeah, baby!`
+
+ m = nlp(str)
+
+ m.normalize({ debullet: true })
+ t.equal(m.out('text'), expected, here + `do debullet multiline beginning asterisk`)
+
+ str = `• it is-cool
+• He is nice
+• oooh yeah, baby!`
+
+ m = nlp(str)
+
+ m.normalize({ debullet: true })
+ t.equal(m.out('text'), expected, here + `do debullet multiline beginning bullet char`)
+
+ str = `•it is-cool
+•He is nice
+•oooh yeah, baby!`
+
+ m = nlp(str)
+
+ m.normalize({ debullet: true })
+ t.equal(m.out('text'), expected, here + `do debullet multiline beginning bullet char nospace`)
+
+ t.end()
+})
diff --git a/tests/three/text-three.test.js b/tests/three/text-three.test.js
new file mode 100644
index 000000000..f938d63ea
--- /dev/null
+++ b/tests/three/text-three.test.js
@@ -0,0 +1,26 @@
+import test from 'tape'
+import nlp from './_lib.js'
+const here = '[three/text] '
+import penn from '../two/tagger/_pennSample.js'
+
+test('text-in-text-out', function (t) {
+ let txt = penn.map(o => o.text).join(' ')
+ let doc = nlp(txt)
+ let methods = [
+ 'terms',
+ 'all',
+ 'clauses',
+ 'chunks',
+ ]
+ methods.forEach(fn => {
+ t.equal(doc[fn]().text(), txt, here + fn)
+ })
+
+ t.equal(doc.match('*').text(), txt, here + 'match *')
+ t.equal(doc.growRight('*').text(), txt, here + 'growRight *')
+
+ t.equal(doc.splitOn('is').text(), txt, here + 'splitOn')
+ t.equal(doc.splitBefore('no').text(), txt, here + 'splitBefore')
+ t.equal(doc.splitAfter('how').text(), txt, here + 'splitAfter')
+ t.end()
+})
diff --git a/tests/three/verbs/misc.test.js b/tests/three/verbs/misc.test.js
index 399d00064..7dc5d1768 100644
--- a/tests/three/verbs/misc.test.js
+++ b/tests/three/verbs/misc.test.js
@@ -70,7 +70,7 @@ test('conjugate stable', function (t) {
let res = doc.verbs().conjugate()[0]
t.equal(res.Infinitive, 'fish', here + 'Infinitive conj')
t.equal(res.PastTense, 'fished', here + 'PastTense conj')
- t.equal(res.PresentTense, 'fish', here + 'PresentTense conj')
+ t.equal(res.PresentTense, 'fishes', here + 'PresentTense conj')
t.equal(res.FutureTense, 'will fish', here + 'FutureTense conj')
t.end()
})
diff --git a/tests/three/verbs/toGerund.test.js b/tests/three/verbs/toGerund.test.js
index 1b1bed412..1bbe2a838 100644
--- a/tests/three/verbs/toGerund.test.js
+++ b/tests/three/verbs/toGerund.test.js
@@ -38,3 +38,165 @@ test('verb-to-gerund:', function (t) {
})
t.end()
})
+
+
+test('verb-to-gerund:', function (t) {
+ let arr = [
+ ['be', 'being'],
+ ['try', 'trying'],
+ ['make', 'making'],
+ ['come', 'coming'],
+ ['do', 'doing'],
+ ['watch', 'watching'],
+ ['give', 'giving'],
+ ['think', 'thinking'],
+ ['go', 'going'],
+ ['have', 'having'],
+ ['find', 'finding'],
+ ['get', 'getting'],
+ ['run', 'running'],
+ ['say', 'saying'],
+ ['take', 'taking'],
+ ['know', 'knowing'],
+ ['tell', 'telling'],
+ ['call', 'calling'],
+ ['ask', 'asking'],
+ ['work', 'working'],
+ ['look', 'looking'],
+ ['use', 'using'],
+ ['feel', 'feeling'],
+ ['live', 'living'],
+ ['place', 'placing'],
+ ['write', 'writing'],
+ ['show', 'showing'],
+ ['seem', 'seeming'],
+ ['try', 'trying'],
+ ['help', 'helping'],
+ ['start', 'starting'],
+ ['play', 'playing'],
+ ['stand', 'standing'],
+ ['speak', 'speaking'],
+ ['listen', 'listening'],
+ ['leave', 'leaving'],
+ ['open', 'opening'],
+ ['move', 'moving'],
+ ['continue', 'continuing'],
+ ['learn', 'learning'],
+ ['hold', 'holding'],
+ ['bring', 'bringing'],
+ ['mean', 'meaning'],
+ ['develop', 'developing'],
+ ['produce', 'producing'],
+ ['draw', 'drawing'],
+ ['arrive', 'arriving'],
+ ['stay', 'staying'],
+ ['pay', 'paying'],
+ ['drive', 'driving'],
+ ['happen', 'happening'],
+ ['grow', 'growing'],
+ ['read', 'reading'],
+ ['sing', 'singing'],
+ ['sit', 'sitting'],
+ ['rise', 'rising'],
+ ['form', 'forming'],
+ ['remember', 'remembering'],
+ ['reach', 'reaching'],
+ ['include', 'including'],
+ ['consider', 'considering'],
+ ['enjoy', 'enjoying'],
+ ['lead', 'leading'],
+ ['understand', 'understanding'],
+ ['set', 'setting'],
+ ['support', 'supporting'],
+ ['seek', 'seeking'],
+ ['create', 'creating'],
+ ['discuss', 'discussing'],
+ ['present', 'presenting'],
+ ['prepare', 'preparing'],
+ ['allow', 'allowing'],
+ ['appear', 'appearing'],
+ ['spend', 'spending'],
+ ['continue', 'continuing'],
+ ['exist', 'existing'],
+ ['cut', 'cutting'],
+ ['add', 'adding'],
+ ['apply', 'applying'],
+ ['decide', 'deciding'],
+ ['fix', 'fixing'],
+ ['control', 'controlling'],
+ ['break', 'breaking'],
+ ['purchase', 'purchasing'],
+ ['increase', 'increasing'],
+ ['build', 'building'],
+ ['sell', 'selling'],
+ ['raise', 'raising'],
+ ['share', 'sharing'],
+ ['deliver', 'delivering'],
+ ['search', 'searching'],
+ ['practice', 'practicing'],
+ ['visit', 'visiting'],
+ ['protect', 'protecting'],
+ ['serve', 'serving'],
+ ['test', 'testing'],
+ ['maintain', 'maintaining'],
+ ['cause', 'causing'],
+ ['represent', 'representing'],
+ ['publish', 'publishing'],
+ ['operate', 'operating'],
+ ['respond', 'responding'],
+ ['agree', 'agreeing'],
+ ['arrive', 'arriving'],
+ ['drive', 'driving'],
+ ['fly', 'flying'],
+ ['remain', 'remaining'],
+ ['teach', 'teaching'],
+ ['study', 'studying'],
+ ['lead', 'leading'],
+ ['represent', 'representing'],
+ ['speak', 'speaking'],
+ ['explain', 'explaining'],
+ ['claim', 'claiming'],
+ ['reduce', 'reducing'],
+ ['select', 'selecting'],
+ ['establish', 'establishing'],
+ ['collect', 'collecting'],
+ ['recognize', 'recognizing'],
+ ['bury', 'burying'],
+ ['dance', 'dancing'],
+ ['win', 'winning'],
+ ['roll', 'rolling'],
+ ['kiss', 'kissing'],
+ ['suffer', 'suffering'],
+ ['kiss', 'kissing'],
+ ['recognize', 'recognizing'],
+ ['combine', 'combining'],
+ ['launch', 'launching'],
+ ['invest', 'investing'],
+ ['shoot', 'shooting'],
+ ['skate', 'skating'],
+ ['pause', 'pausing'],
+ ['review', 'reviewing'],
+ ['operate', 'operating'],
+ ['declare', 'declaring'],
+ ['direct', 'directing'],
+ ['donate', 'donating'],
+ ['enhance', 'enhancing'],
+ ['originate', 'originating'],
+ ['detect', 'detecting'],
+ ['perform', 'performing'],
+ ['attend', 'attending'],
+ ['inspect', 'inspecting'],
+ ['replace', 'replacing'],
+ ['negotiate', 'negotiating'],
+ ['discriminate', 'discriminating'],
+ ['register', 'registering'],
+ ['export', 'exporting'],
+ ['transport', 'transporting'],
+ ]
+ arr.forEach(function (a) {
+ const doc = nlp(a[0]).tag('#Infinitive')
+ let res = doc.verbs().conjugate()[0] || {}
+ t.equal(res.Gerund, a[1], here + a[0] + ' -> ' + res.Gerund)
+ })
+ t.end()
+})
diff --git a/tests/three/verbs/toPast.test.js b/tests/three/verbs/toPast.test.js
index a5b1a3074..1813506d9 100644
--- a/tests/three/verbs/toPast.test.js
+++ b/tests/three/verbs/toPast.test.js
@@ -161,6 +161,11 @@ test('toPast:', function (t) {
// ['john will not be nice', 'john was not nice'],
// ['john will be not nice', 'john was not nice'],
// ['john had not been nice', 'john had not been nice'],
+
+ ['impale', 'impaled'],
+ ['beguile', 'beguiled'],
+ ['convolute', 'convoluted'],
+ ['root', 'rooted'],
]
arr.forEach(a => {
let doc = nlp(a[0])
diff --git a/tests/three/verbs/toPastParticiple.test.js b/tests/three/verbs/toPastParticiple.test.js
new file mode 100644
index 000000000..f44f87b0e
--- /dev/null
+++ b/tests/three/verbs/toPastParticiple.test.js
@@ -0,0 +1,357 @@
+import test from 'tape'
+import nlp from '../_lib.js'
+const here = '[three/verb-toPastParticiple] '
+
+test('toPastParticiple:', function (t) {
+ let arr = [
+ [`I eat breakfast every morning.`, `I have eaten breakfast every morning.`],
+ [`She reads a book before bed.`, `She has read a book before bed.`],
+ [`He teaches math to high school students.`, `He has taught math to high school students.`],
+ [`They walk their dog in the park.`, `They have walked their dog in the park.`],
+ [`We watch a movie on Friday nights.`, `We have watched a movie on Friday nights.`],
+ [`I eat pizza.`, `I have eaten pizza.`],
+ [`He reads books.`, `He has read books.`],
+ [`She sings songs.`, `She has sung songs.`],
+ [`We write letters.`, `We have written letters.`],
+ [`You speak Spanish.`, `You have spoken Spanish.`],
+ // [`He swims laps.`, `He has swum laps.`],
+ [`They climb mountains.`, `They have climbed mountains.`],
+ [`She dances ballet.`, `She has danced ballet.`],
+ [`We paint pictures.`, `We have painted pictures.`],
+ [`I play soccer.`, `I have played soccer.`],
+ [`They study history.`, `They have studied history.`],
+ [`He cooks dinner.`, `He has cooked dinner.`],
+ [`She designs websites.`, `She has designed websites.`],
+ [`We watch movies.`, `We have watched movies.`],
+ [`You listen to music.`, `You have listened to music.`],
+ [`They build houses.`, `They have built houses.`],
+ [`I plant flowers.`, `I have planted flowers.`],
+ [`He fixes cars.`, `He has fixed cars.`],
+ [`She teaches math.`, `She has taught math.`],
+ [`We clean the house.`, `We have cleaned the house.`],
+ [`You drive a car.`, `You have driven a car.`],
+ [`They ride bikes.`, `They have ridden bikes.`],
+ [`I take photos.`, `I have taken photos.`],
+ [`Spencer does yoga.`, `Spencer has done yoga.`],
+ [`We sing in the choir.`, `We have sung in the choir.`],
+ [`You draw pictures.`, `You have drawn pictures.`],
+ [`They make cookies.`, `They have made cookies.`],
+ [`He surfs the internet.`, `He has surfed the internet.`],
+ [`She plays the guitar.`, `She has played the guitar.`],
+ [`We travel the world.`, `We have travelled the world.`],
+ [`You speak to friends.`, `You have spoken to friends.`],
+ [`They fish in the river.`, `They have fished in the river.`],
+ [`I write stories.`, `I have written stories.`],
+ [`He takes a shower.`, `He has taken a shower.`],
+ [`She sews clothes.`, `She has sewn clothes.`],
+ [`We play board games.`, `We have played board games.`],
+ [`You exercise at the gym.`, `You have exercised at the gym.`],
+ [`They fly airplanes.`, `They have flown airplanes.`],
+ [`He studies science.`, `He has studied science.`],
+ ["I sing in the shower.", "I have sung in the shower."],
+ ["The sun shines brightly.", "The sun has shone brightly."],
+ ["He eats a lot of vegetables.", "He has eaten a lot of vegetables."],
+ ["We write a letter to our grandparents.", "We have written a letter to our grandparents."],
+ ["The dog barks loudly.", "The dog has barked loudly."],
+ ["They play soccer every weekend.", "They have played soccer every weekend."],
+ ["She speaks Spanish fluently.", "She has spoken Spanish fluently."],
+ ["He teaches math at the local college.", "He has taught math at the local college."],
+ ["The tree grows tall.", "The tree has grown tall."],
+ ["The bird chirps early in the morning.", "The bird has chirped early in the morning."],
+ ["The flower smells sweet.", "The flower has smelled sweet."],
+ ["I play the guitar.", "I have played the guitar."],
+ ["The wind blows gently.", "The wind has blown gently."],
+ // ["the tree will grow", "the tree has grown"],
+ ["the tree grows quickly", "the tree has grown quickly"],
+ ["She will have eaten", "She has eaten"],
+ ["They will have finished", "They have finished"],
+ ["He will have written", "He has written"],
+ ["We will have seen", "We have seen"],
+ ["You will have spoken", "You have spoken"],
+
+ ["She reads a book every night.", "She has read a book every night."],
+ // ["I always forget my keys.", "I have always forgotten my keys"],
+ ["She paints beautiful pictures.", "She has painted beautiful pictures."],
+ ["He drives a fast car.", "He has driven a fast car."],
+ ["I clean the house every weekend.", "I have cleaned the house every weekend."],
+ ["She dances gracefully.", "She has danced gracefully."],
+ ["He flies to New York for business.", "He has flown to New York for business."],
+ ["We swim in the pool on hot days.", "We have swum in the pool on hot days."],
+ // ["They run a marathon every year.", "They have run a marathon every year."],
+ ["She sews her own clothes", "She has sewn her own clothes"],
+ ["He builds houses for a living.", "He has built houses for a living."],
+ ["We drink coffee every morning.", "We have drunk coffee every morning."],
+ ["They watch movies on Friday nights.", "They have watched movies on Friday nights."],
+ ["She designs jewelry for a living.", "She has designed jewelry for a living."],
+ ["He studies biology in college.", "He has studied biology in college."],
+ // ["We take walks in the park.", "We have taken walks in the park."],
+ // ["They listen to music on their way to work.", "They have listened to music on their way to work."],
+ ["She cooks dinner for her family", "She has cooked dinner for her family"],
+
+
+ ['i take', 'i have taken'],
+ ['i write', 'i have written'],
+ ['i make', 'i have made'],
+ ['i agree', 'i have agreed'],
+ ['i catch', 'i have caught'],
+ ['i do', 'i have done'],
+ ['i break', 'i have broken'],
+ ['i forget', 'i have forgotten'],
+ ['i move', 'i have moved'],
+ ['i understand', 'i have understood'],
+ ['i open', 'i have opened'],
+ ['i fill', 'i have filled'],
+ ['i speak', 'i have spoken'],
+ ['i put', 'i have put'],
+ ['i walk', 'i have walked'],
+ ['i meet', 'i have met'],
+ ['i fly', 'i have flown'],
+ ['i keep', 'i have kept'],
+ ['i show', 'i have shown'],
+ ['i hear', 'i have heard'],
+ ['i trust', 'i have trusted'],
+ ['i turn', 'i have turned'],
+ ['i fall', 'i have fallen'],
+ ['i find', 'i have found'],
+ ['i give', 'i have given'],
+ ['i cause', 'i have caused'],
+ ['i stand', 'i have stood'],
+ ['i sit', 'i have sat'],
+ ['i leave', 'i have left'],
+ ['i stop', 'i have stopped'],
+ ['i plan', 'i have planned'],
+ ['i live', 'i have lived'],
+ ['i build', 'i have built'],
+ ['i suggest', 'i have suggested'],
+ ['i hold', 'i have held'],
+ ['i look', 'i have looked'],
+ ['i lie', 'i have lied'],
+ ['i hope', 'i have hoped'],
+ ['i bring', 'i have brought'],
+ ['i ask', 'i have asked'],
+ ['i seem', 'i have seemed'],
+ ['i include', 'i have included'],
+ ['i understand', 'i have understood'],
+ ['i consider', 'i have considered'],
+ ['i realize', 'i have realized'],
+ ['i follow', 'i have followed'],
+ ['i bring', 'i have brought'],
+ ['i think', 'i have thought'],
+ ['i explain', 'i have explained'],
+ ['i explain', 'i have explained'],
+ ['i point', 'i have pointed'],
+ ['i choose', 'i have chosen'],
+ ['i play', 'i have played'],
+ ['i try', 'i have tried'],
+ ['i study', 'i have studied'],
+ ['i wear', 'i have worn'],
+ ['i act', 'i have acted'],
+ ['i help', 'i have helped'],
+ ['i remember', 'i have remembered'],
+ ['i call', 'i have called'],
+ ['i remove', 'i have removed'],
+ ['i accept', 'i have accepted'],
+ ['i prepare', 'i have prepared'],
+ ['i prepare', 'i have prepared'],
+ ['i support', 'i have supported'],
+ ['i increase', 'i have increased'],
+ ['i mean', 'i have meant'],
+ ['i meet', 'i have met'],
+ ['i add', 'i have added'],
+ ['i lose', 'i have lost'],
+ ['i appear', 'i have appeared'],
+ ['i develop', 'i have developed'],
+ ['i reach', 'i have reached'],
+ ['i use', 'i have used'],
+ ['i like', 'i have liked'],
+ ['i choose', 'i have chosen'],
+ ['i continue', 'i have continued'],
+ ['i create', 'i have created'],
+ ['i deal', 'i have dealt'],
+ ['i cause', 'i have caused'],
+ ['i set', 'i have set'],
+ ['i allow', 'i have allowed'],
+ ['i notice', 'i have noticed'],
+ ['i take', 'i have taken'],
+ ['i save', 'i have saved'],
+ ['i spend', 'i have spent'],
+ ['i suffer', 'i have suffered'],
+ ['i provide', 'i have provided'],
+ ['i reach', 'i have reached'],
+ ['i contain', 'i have contained'],
+ ['i include', 'i have included'],
+ ['i finish', 'i have finished'],
+ ['i face', 'i have faced'],
+ ['i explain', 'i have explained'],
+ ['i mention', 'i have mentioned'],
+ ['i form', 'i have formed'],
+ ['i examine', 'i have examined'],
+ ['i consider', 'i have considered'],
+ ['i cost', 'i have cost'],
+ ['i determine', 'i have determined'],
+ ['i require', 'i have required'],
+ ['i exist', 'i have existed'],
+ ['i remain', 'i have remained'],
+ ['i involve', 'i have involved'],
+ ['i reduce', 'i have reduced'],
+ ['i establish', 'i have established'],
+ ['i protect', 'i have protected'],
+ ['i cause', 'i have caused'],
+ ['i represent', 'i have represented'],
+ ['i indicate', 'i have indicated'],
+ ['i determine', 'i have determined'],
+ ['i apply', 'i have applied'],
+ ['i increase', 'i have increased'],
+ ['i base', 'i have based'],
+ ['i answer', 'i have answered'],
+ ['i cover', 'i have covered'],
+ ['i show', 'i have shown'],
+ ['i involve', 'i have involved'],
+ ['i notice', 'i have noticed'],
+ ['i understand', 'i have understood'],
+ ['i pass', 'i have passed'],
+ ['i permit', 'i have permitted'],
+ ['i prefer', 'i have preferred'],
+ ['i contain', 'i have contained'],
+ ['i represent', 'i have represented'],
+ ['i change', 'i have changed'],
+ ['i recognize', 'i have recognized'],
+ ['i refer', 'i have referred'],
+ ['i decide', 'i have decided'],
+ ['i estimate', 'i have estimated'],
+ ['i discuss', 'i have discussed'],
+ ['i observe', 'i have observed'],
+ ['i receive', 'i have received'],
+ ['i include', 'i have included'],
+ ['i consider', 'i have considered'],
+ ['i affect', 'i have affected'],
+ ['i agree', 'i have agreed'],
+ ['i understand', 'i have understood'],
+ ['i happen', 'i have happened'],
+ ['i produce', 'i have produced'],
+ ['i perform', 'i have performed'],
+ ['i connect', 'i have connected'],
+ ['i resist', 'i have resisted'],
+ ['i consider', 'i have considered'],
+ ['i regard', 'i have regarded'],
+ ['i occur', 'i have occurred'],
+ ['i relate', 'i have related'],
+ ]
+ arr.forEach(a => {
+ let doc = nlp(a[0])
+ doc.verbs().toPastParticiple()
+ t.equal(doc.text(), a[1], here + ' ' + a[0])
+ })
+ t.end()
+})
+
+
+test('past vs past-participle:', function (t) {
+ let arr = [
+ ['arise', 'arose', 'arisen'],
+ ['awake', 'awoke', 'awoken'],
+ // ['bear', 'bore', 'born'],
+ ['beat', 'beat', 'beaten'],
+ // ['become', 'became', 'become'],
+ ['bet', 'bet', 'bet'],
+ ['bid', 'bid', 'bid'],
+ ['bind', 'bound', 'bound'],
+ ['bleed', 'bled', 'bled'],
+ ['blow', 'blew', 'blown'],
+ ['break', 'broke', 'broken'],
+ ['breed', 'bred', 'bred'],
+ ['bring', 'brought', 'brought'],
+ ['build', 'built', 'built'],
+ ['burst', 'burst', 'burst'],
+ ['catch', 'caught', 'caught'],
+ ['choose', 'chose', 'chosen'],
+ ['cling', 'clung', 'clung'],
+ // ['come', 'came', 'come'],
+ ['cost', 'cost', 'cost'],
+ ['creep', 'crept', 'crept'],
+ ['deal', 'dealt', 'dealt'],
+ ['dig', 'dug', 'dug'],
+ ['do', 'did', 'done'],
+ ['draw', 'drew', 'drawn'],
+ ['drink', 'drank', 'drunk'],
+ ['drive', 'drove', 'driven'],
+ ['eat', 'ate', 'eaten'],
+ ['fall', 'fell', 'fallen'],
+ ['feed', 'fed', 'fed'],
+ ['fight', 'fought', 'fought'],
+ ['find', 'found', 'found'],
+ ['flee', 'fled', 'fled'],
+ ['fling', 'flung', 'flung'],
+ ['fly', 'flew', 'flown'],
+ ['forget', 'forgot', 'forgotten'],
+ ['forgive', 'forgave', 'forgiven'],
+ ['forsake', 'forsaken', 'forsaken'],
+ ['freeze', 'froze', 'frozen'],
+ ['give', 'gave', 'given'],
+ ['go', 'went', 'gone'],
+ ['grow', 'grew', 'grown'],
+ ['hang', 'hung', 'hung'],
+ ['have', 'had', 'had'],
+ ['hide', 'hid', 'hidden'],
+ ['hold', 'held', 'held'],
+ ['keep', 'kept', 'kept'],
+ ['know', 'knew', 'known'],
+ ['leave', 'left', 'left'],
+ ['lend', 'lent', 'lent'],
+ ['light', 'lit', 'lit'],
+ ['make', 'made', 'made'],
+ ['meet', 'met', 'met'],
+ ['prove', 'proved', 'proven'],
+ ['read', 'read', 'read'],
+ ['ride', 'rode', 'ridden'],
+ ['ring', 'rang', 'rung'],
+ ['rise', 'rose', 'risen'],
+ // ['run', 'ran', 'run'],
+ ['say', 'said', 'said'],
+ ['see', 'saw', 'seen'],
+ ['seek', 'sought', 'sought'],
+ ['set', 'set', 'set'],
+ ['shake', 'shook', 'shaken'],
+ ['shine', 'shone', 'shone'],
+ ['shoot', 'shot', 'shot'],
+ ['show', 'showed', 'shown'],
+ ['sing', 'sang', 'sung'],
+ ['sink', 'sank', 'sunk'],
+ ['sit', 'sat', 'sat'],
+ ['sleep', 'slept', 'slept'],
+ ['speak', 'spoke', 'spoken'],
+ ['spend', 'spent', 'spent'],
+ ['spread', 'spread', 'spread'],
+ ['stand', 'stood', 'stood'],
+ ['steal', 'stole', 'stolen'],
+ ['stick', 'stuck', 'stuck'],
+ ['strike', 'struck', 'struck'],
+ ['swear', 'swore', 'sworn'],
+ ['swim', 'swam', 'swum'],
+ ['take', 'took', 'taken'],
+ ['teach', 'taught', 'taught'],
+ ['tear', 'tore', 'torn'],
+ ['tell', 'told', 'told'],
+ ['think', 'thought', 'thought'],
+ ['throw', 'threw', 'thrown'],
+ ['understand', 'understood', 'understood'],
+ ['wake', 'woke', 'woken'],
+ ['wear', 'wore', 'worn'],
+ ['win', 'won', 'won'],
+ ['write', 'wrote', 'written'],
+ ]
+ arr.forEach(a => {
+ let [present, past, participle] = a
+ let doc = nlp(present).tag('#Infinitive')
+ let obj = doc.verbs().conjugate()[0] || {}
+ t.equal(obj.PastTense, past, here + ' ' + a[0])
+
+ let prt = obj.Participle || obj.PastTense || ''
+ prt = prt.replace(/^had /, '')
+ t.equal(prt, participle, here + ' ' + a[0])
+ })
+ t.end()
+})
+
+
+
diff --git a/tests/three/verbs/toPresent.test.js b/tests/three/verbs/toPresent.test.js
index c320e3547..8ac12af99 100644
--- a/tests/three/verbs/toPresent.test.js
+++ b/tests/three/verbs/toPresent.test.js
@@ -210,3 +210,297 @@ test('toPresent:', function (t) {
})
t.end()
})
+
+test('conjugate:', function (t) {
+ let arr = [
+
+ ['abolish', 'abolishes'],
+ ['absorb', 'absorbs'],
+ ['accede', 'accedes'],
+ ['acclimate', 'acclimates'],
+ ['accomplish', 'accomplishes'],
+ ['accost', 'accosts'],
+ ['accrue', 'accrues'],
+ ['accumulate', 'accumulates'],
+ ['accustom', 'accustoms'],
+ ['activate', 'activates'],
+ ['adapt', 'adapts'],
+ ['agree', 'agrees'],
+ ['aim', 'aims'],
+ ['allow', 'allows'],
+ ['alter', 'alters'],
+ ['altercate', 'altercates'],
+ ['amaze', 'amazes'],
+ ['amend', 'amends'],
+ ['amuse', 'amuses'],
+ ['analyze', 'analyzes'],
+ ['animate', 'animates'],
+ ['annotate', 'annotates'],
+ ['announce', 'announces'],
+ ['appreciate', 'appreciates'],
+ ['apprehend', 'apprehends'],
+ ['ask', 'asks'],
+ ['assimilate', 'assimilates'],
+ ['attack', 'attacks'],
+ ['bake', 'bakes'],
+ ['bang', 'bangs'],
+ ['bank', 'banks'],
+ ['bargain', 'bargains'],
+ ['bat', 'bats'],
+ ['begin', 'begins'],
+ ['belittle', 'belittles'],
+ ['belong', 'belongs'],
+ ['bend', 'bends'],
+ ['betray', 'betrays'],
+ ['bleed', 'bleeds'],
+ ['blink', 'blinks'],
+ ['boil', 'boils'],
+ ['bounce', 'bounces'],
+ ['break', 'breaks'],
+ ['breathe', 'breathes'],
+ ['bury', 'buries'],
+ ['capture', 'captures'],
+ ['carry', 'carries'],
+ ['castigate', 'castigates'],
+ ['catalog', 'catalogs'],
+ ['catch', 'catches'],
+ ['celebrate', 'celebrates'],
+ ['chase', 'chases'],
+ ['cheat', 'cheats'],
+ ['chew', 'chews'],
+ ['circumvent', 'circumvents'],
+ ['clap', 'claps'],
+ ['clarify', 'clarifies'],
+ ['collect', 'collects'],
+ ['commute', 'commutes'],
+ ['conclude', 'concludes'],
+ ['conform', 'conforms'],
+ ['conquer', 'conquers'],
+ ['consider', 'considers'],
+ ['construct', 'constructs'],
+ ['contain', 'contains'],
+ ['contemplate', 'contemplates'],
+ ['cooperate', 'cooperates'],
+ ['create', 'creates'],
+ ['cry', 'cries'],
+ ['culpabilize', 'culpabilizes'],
+ ['cultivate', 'cultivates'],
+ ['cut', 'cuts'],
+ ['defend', 'defends'],
+ ['defy', 'defies'],
+ ['deplore', 'deplores'],
+ ['depose', 'deposes'],
+ ['descend', 'descends'],
+ ['design', 'designs'],
+ ['detect', 'detects'],
+ ['diminish', 'diminishes'],
+ ['discern', 'discerns'],
+ ['discuss', 'discusses'],
+ ['dissolve', 'dissolves'],
+ ['divide', 'divides'],
+ ['drag', 'drags'],
+ ['drain', 'drains'],
+ ['draw', 'draws'],
+ ['drum', 'drums'],
+ ['embark', 'embarks'],
+ ['embrace', 'embraces'],
+ ['encircle', 'encircles'],
+ ['endure', 'endures'],
+ ['enforce', 'enforces'],
+ ['enhance', 'enhances'],
+ ['enjoy', 'enjoys'],
+ ['enrich', 'enriches'],
+ ['enter', 'enters'],
+ ['establish', 'establishes'],
+ ['exalt', 'exalts'],
+ ['exchange', 'exchanges'],
+ ['exclude', 'excludes'],
+ ['exert', 'exerts'],
+ ['exhort', 'exhorts'],
+ ['expect', 'expects'],
+ ['expel', 'expels'],
+ ['explain', 'explains'],
+ ['explode', 'explodes'],
+ ['extol', 'extols'],
+ ['extrapolate', 'extrapolates'],
+ ['exude', 'exudes'],
+ ['fabricate', 'fabricates'],
+ ['file', 'files'],
+ ['fix', 'fixes'],
+ ['float', 'floats'],
+ ['flood', 'floods'],
+ ['flow', 'flows'],
+ ['follow', 'follows'],
+ ['forsake', 'forsakes'],
+ ['frighten', 'frightens'],
+ ['fry', 'fries'],
+ ['function', 'functions'],
+ ['fund', 'funds'],
+ ['generate', 'generates'],
+ ['glimmer', 'glimmers'],
+ ['glorify', 'glorifies'],
+ ['glow', 'glows'],
+ ['greet', 'greets'],
+ ['grip', 'grips'],
+ ['guarantee', 'guarantees'],
+ ['guide', 'guides'],
+ ['harangue', 'harangues'],
+ ['harvest', 'harvests'],
+ ['hatch', 'hatches'],
+ ['hibernate', 'hibernates'],
+ ['hide', 'hides'],
+ ['hint', 'hints'],
+ ['howl', 'howls'],
+ ['hurry', 'hurries'],
+ ['illuminate', 'illuminates'],
+ ['immigrate', 'immigrates'],
+ ['impinge', 'impinges'],
+ ['impress', 'impresses'],
+ ['inculcate', 'inculcates'],
+ ['indemnify', 'indemnifies'],
+ ['inhale', 'inhales'],
+ ['inhibit', 'inhibits'],
+ ['insinuate', 'insinuates'],
+ ['inspire', 'inspires'],
+ ['insulate', 'insulates'],
+ ['integrate', 'integrates'],
+ ['interrupt', 'interrupts'],
+ ['invade', 'invades'],
+ ['invert', 'inverts'],
+ ['invest', 'invests'],
+ ['invite', 'invites'],
+ ['joke', 'jokes'],
+ ['jump', 'jumps'],
+ ['justify', 'justifies'],
+ ['knit', 'knits'],
+ ['learn', 'learns'],
+ ['leave', 'leaves'],
+ ['liberalize', 'liberalizes'],
+ ['lie', 'lies'],
+ ['load', 'loads'],
+ ['loosen', 'loosens'],
+ ['love', 'loves'],
+ ['magnify', 'magnifies'],
+ ['march', 'marches'],
+ ['mark', 'marks'],
+ ['melt', 'melts'],
+ ['migrate', 'migrates'],
+ ['mobilize', 'mobilizes'],
+ ['modify', 'modifies'],
+ ['mourn', 'mourns'],
+ ['negotiate', 'negotiates'],
+ ['neutralize', 'neutralizes'],
+ ['omit', 'omits'],
+ ['operate', 'operates'],
+ ['organize', 'organizes'],
+ ['ostracize', 'ostracizes'],
+ ['overcome', 'overcomes'],
+ ['participate', 'participates'],
+ ['paste', 'pastes'],
+ ['peg', 'pegs'],
+ ['pictorialize', 'pictorializes'],
+ ['play', 'plays'],
+ ['plug', 'plugs'],
+ ['praise', 'praises'],
+ ['pray', 'prays'],
+ ['preserve', 'preserves'],
+ ['proclaim', 'proclaims'],
+ ['produce', 'produces'],
+ ['prolong', 'prolongs'],
+ ['propagate', 'propagates'],
+ ['propitiate', 'propitiates'],
+ ['provide', 'provides'],
+ ['pull', 'pulls'],
+ ['puncture', 'punctures'],
+ ['purify', 'purifies'],
+ ['quench', 'quenches'],
+ ['quest', 'quests'],
+ ['quiver', 'quivers'],
+ ['rain', 'rains'],
+ ['ratify', 'ratifies'],
+ ['recall', 'recalls'],
+ ['receive', 'receives'],
+ ['recite', 'recites'],
+ ['refine', 'refines'],
+ ['refresh', 'refreshes'],
+ ['refuse', 'refuses'],
+ ['regret', 'regrets'],
+ ['regulate', 'regulates'],
+ ['reject', 'rejects'],
+ ['repair', 'repairs'],
+ ['reply', 'replies'],
+ ['reside', 'resides'],
+ ['resist', 'resists'],
+ ['revere', 'reveres'],
+ ['revive', 'revives'],
+ ['revolutionize', 'revolutionizes'],
+ ['roam', 'roams'],
+ ['roar', 'roars'],
+ ['roll', 'rolls'],
+ ['ruin', 'ruins'],
+ ['sacrifice', 'sacrifices'],
+ ['sacrifices', 'sacrifices'],
+ ['saturate', 'saturates'],
+ ['scale', 'scales'],
+ ['schedule', 'schedules'],
+ ['scribble', 'scribbles'],
+ ['scrutinize', 'scrutinizes'],
+ ['sense', 'senses'],
+ ['serve', 'serves'],
+ ['sew', 'sews'],
+ ['shine', 'shines'],
+ ['signal', 'signals'],
+ ['sing', 'sings'],
+ ['slip', 'slips'],
+ ['smash', 'smashes'],
+ ['smell', 'smells'],
+ ['snatch', 'snatches'],
+ ['soar', 'soars'],
+ ['sparkle', 'sparkles'],
+ ['stalk', 'stalks'],
+ ['start', 'starts'],
+ ['stay', 'stays'],
+ ['stifle', 'stifles'],
+ ['stir', 'stirs'],
+ ['strain', 'strains'],
+ ['strive', 'strives'],
+ ['submerge', 'submerges'],
+ ['succeed', 'succeeds'],
+ ['summarize', 'summarizes'],
+ ['swear', 'swears'],
+ ['swim', 'swims'],
+ ['take', 'takes'],
+ ['teach', 'teaches'],
+ ['tear', 'tears'],
+ ['throw', 'throws'],
+ ['thrust', 'thrusts'],
+ ['trace', 'traces'],
+ ['trade', 'trades'],
+ ['treat', 'treats'],
+ ['tumble', 'tumbles'],
+ ['unite', 'unites'],
+ ['unravel', 'unravels'],
+ ['update', 'updates'],
+ ['uplift', 'uplifts'],
+ ['urge', 'urges'],
+ ['utilize', 'utilizes'],
+ ['waste', 'wastes'],
+ ['weave', 'weaves'],
+ ['whirl', 'whirls'],
+ ['whisper', 'whispers'],
+ ['whistle', 'whistles'],
+ ['wish', 'wishes'],
+ ['work', 'works'],
+ ['worship', 'worships'],
+ ['yield', 'yields'],
+ ['exempt', 'exempts'],
+ ['replicate', 'replicates'],
+ // ['express', 'expresses'],
+ ]
+ arr.forEach(a => {
+ let doc = nlp(a[0]).tag('Verb')
+ let res = doc.verbs().conjugate()[0] || {}
+ t.equal(res.PresentTense, a[1], here + ' ' + a[0])
+ })
+ t.end()
+})
diff --git a/tests/two/match.test.js b/tests/two/match.test.js
index 9d05860a8..fdf4d5dd2 100644
--- a/tests/two/match.test.js
+++ b/tests/two/match.test.js
@@ -830,7 +830,7 @@ let arr = [
[`Wildlife biologists found`, `#Actor+ #Verb`],
[`the radiologist`, `the #Actor+`],
[`3 biochemists`, `3 #Actor+`],
- [`nurse Kelly`, `#Person+`],
+ // [`nurse Kelly`, `#Person+`],
[`breaking: dogs nice`, `#Expression #Plural #Adjective`],
[`forward: appartment price`, `#Expression #Noun+`],
@@ -1052,7 +1052,7 @@ let arr = [
[`Gibson made a routine catch`, `#Person #Verb #Determiner #Adjective #Singular`],
[`Don’t make any rash decisions`, `do not #Imperative #Determiner #Adjective #Plural`],
// hyphentated adjectives
- [`carries oxygen-rich blood`, `#PresentTense #Adjective #Adjective #Noun`],
+ // [`carries oxygen-rich blood`, `#PresentTense #Adjective #Adjective #Noun`],
[`his best-known lyrics`, `his #Adjective #Adjective #Plural`],
[`A health-conscious president`, `a #Adjective #Adjective #Noun`],
[`company-wide death marches`, `#Adjective #Adjective #Noun #Plural`],
@@ -1089,6 +1089,22 @@ let arr = [
['he arranged a 12 month journey', 'he #PastTense #Determiner #Value #Noun #Noun'],
['I will book a 24-hour ECG', 'i #Verb+ #Determiner #Value #Noun #Noun'],
// [`the lieutenant general`, `#Determiner #Actor+`],
+ ['bowling alley', '#Noun+'],
+ ['bowling ball', '#Noun+'],
+ // rivers
+ ['the nile', '#Determiner #Place'],
+ ['the ganges', '#Determiner #Place'],
+ ['mekong river', '#Place+'],
+ ['river thames', '#Place+'],
+ ['the danube', '#Determiner #Place'],
+ ['the yangtze', '#Determiner #Place'],
+ ['orinoco river', '#Place+'],
+ ['the seine', '#Determiner #Place'],
+ ['rio grande', '#Place+'],
+ ['Godavari River', '#Place+'],
+ ['the Saint Lawrence River', 'the #Place+'],
+ ['by Foo Estuary', 'by #Place+'],
+
// [``, ``],
]
test('match:', function (t) {
diff --git a/tests/two/tagger/_pennSample.js b/tests/two/tagger/_pennSample.js
index 25eb4aa19..e925ccd94 100644
--- a/tests/two/tagger/_pennSample.js
+++ b/tests/two/tagger/_pennSample.js
@@ -525,10 +525,6 @@ export default [
text: 'And he would always laugh about that."',
tags: 'CC, PRP, MD, RB, VB, IN, DT',
},
- {
- text: 'And you search in vain to find just one law abiding citizen',
- tags: 'CC, PRP, VBP, IN, JJ, TO, VB, RB, CD, NN, VBG, NN',
- },
{
text: 'But the four planeloads of arms have vanished.',
tags: 'CC, DT, CD, NNS, IN, NNS, VBP, VBN',
diff --git a/tests/two/tagger/actors.test.js b/tests/two/tagger/actors.test.js
index 970161728..77fc9375d 100644
--- a/tests/two/tagger/actors.test.js
+++ b/tests/two/tagger/actors.test.js
@@ -20,7 +20,7 @@ let arr = [
'carpenter',
'cashier',
'chef',
- 'coach',
+ // 'coach',
'dental hygienist',
'dentist',
'designer',
@@ -152,7 +152,7 @@ let arr = [
"Screenwriter",
// "Investigative Journalist",
"Journalist",
- "Literary editor",
+ // "Literary editor",
"Producer",
"Director",
"Playwright",
diff --git a/tests/two/transform/swap.test.js b/tests/two/transform/swap.test.js
index 2f68e8e23..7517679c4 100644
--- a/tests/two/transform/swap.test.js
+++ b/tests/two/transform/swap.test.js
@@ -47,6 +47,18 @@ test('swap-noun', function (t) {
doc.swap('hot dog', 'hamburger') //use singular-forms
t.equal(doc.text(), 'two hamburgers please', here + 'multi-word')
+ doc = nlp("Jeff's bikes")
+ doc.swap('Jeff', 'John')
+ t.equal(doc.text(), `John's bikes`, here + 'keep-possessive')
+
+ doc = nlp("Spencer Kelly's superstore")
+ doc.swap('Spencer Kelly', 'Sam Altman')
+ t.equal(doc.text(), `Sam Altman's superstore`, here + 'keep-possessive 2-term')
+
+ doc = nlp("it was Montreal's.")
+ doc.swap('Montreal', 'Quebec City')
+ t.equal(doc.text(), `it was Quebec City's.`, here + 'keep-possessive mismatch')
+
t.end()
})
diff --git a/tests/two/variables/verb-phrase.test.js b/tests/two/variables/verb-phrase.test.js
index e303fabb8..99918eb69 100644
--- a/tests/two/variables/verb-phrase.test.js
+++ b/tests/two/variables/verb-phrase.test.js
@@ -41,7 +41,7 @@ let arr = [
['write off', '#Infinitive #PhrasalVerb'],
['writes off', '#PhrasalVerb #Particle'],
['wrote off', '#PastTense #Particle'],
- ['tided over', '#PastTense #Particle'],
+ // ['tided over', '#PastTense #Particle'],
//phrasal verb tense
diff --git a/types/misc.ts b/types/misc.d.ts
similarity index 100%
rename from types/misc.ts
rename to types/misc.d.ts
diff --git a/types/one.d.ts b/types/one.d.ts
index bce4e842f..382784dd2 100644
--- a/types/one.d.ts
+++ b/types/one.d.ts
@@ -1,5 +1,5 @@
-import type { Lexicon, Plugin, matchOptions, Match, Net } from './misc'
-import type View from './view/one'
+import type { Lexicon, Plugin, matchOptions, Match, Net } from './misc.d.ts'
+import type View from './view/one.d.ts'
/** parse a given text */
declare function nlp(text: string, lexicon?: Lexicon): View
diff --git a/types/three.d.ts b/types/three.d.ts
index 797fba67e..227e6e81d 100644
--- a/types/three.d.ts
+++ b/types/three.d.ts
@@ -1,5 +1,5 @@
-import type { Lexicon, Plugin, matchOptions, Match, Net } from './misc'
-import type View from './view/three'
+import type { Lexicon, Plugin, matchOptions, Match, Net } from './misc.d.ts'
+import type View from './view/three.d.ts'
/** parse a given text */
declare function nlp(text: string, lexicon?: Lexicon): View & PluginTypes
diff --git a/types/two.d.ts b/types/two.d.ts
index 0a0fed634..966de6771 100644
--- a/types/two.d.ts
+++ b/types/two.d.ts
@@ -1,5 +1,5 @@
-import type { Lexicon, Plugin, matchOptions, Match, Net } from './misc'
-import type View from './view/two'
+import type { Lexicon, Plugin, matchOptions, Match, Net } from './misc.d.ts'
+import type View from './view/two.d.ts'
/** parse a given text */
declare function nlp(text: string, lexicon?: Lexicon): View
diff --git a/types/view/one.ts b/types/view/one.d.ts
similarity index 99%
rename from types/view/one.ts
rename to types/view/one.d.ts
index 481155870..fa0c52ff1 100644
--- a/types/view/one.ts
+++ b/types/view/one.d.ts
@@ -1,4 +1,4 @@
-import type { Document, Pointer, Groups, JsonProps, outMethods, matchOptions, Term, Net } from '../misc'
+import type { Document, Pointer, Groups, JsonProps, outMethods, matchOptions, Term, Net } from '../misc.d.ts'
declare class View {
// Utils
diff --git a/types/view/three.ts b/types/view/three.d.ts
similarity index 99%
rename from types/view/three.ts
rename to types/view/three.d.ts
index 789bfeb60..75e8ab638 100644
--- a/types/view/three.ts
+++ b/types/view/three.d.ts
@@ -1,4 +1,4 @@
-import type View from './two'
+import type View from './two.d.ts'
interface Three extends View {
// Selections
diff --git a/types/view/two.ts b/types/view/two.d.ts
similarity index 93%
rename from types/view/two.ts
rename to types/view/two.d.ts
index 1b9d104e0..7e780c662 100644
--- a/types/view/two.ts
+++ b/types/view/two.d.ts
@@ -1,4 +1,4 @@
-import type View from './one'
+import type View from './one.d.ts'
interface Two extends View {
/** return any multi-word terms, like "didn't" */