!function(window,undefined){function makeClass(){return function(T){return this instanceof arguments.callee?void("function"==typeof this.init&&this.init.apply(this,T&&T.callee?T:arguments)):new arguments.callee(arguments)}}function printProgress(T,E,S){process&&process.stdout&&(process.stdout.clearLine(),process.stdout.cursorTo(0),process.stdout.write(T+E+"%"+(S?"\n":"")))}function is(T,E){return get(T)===E}function ok(T,S){if(get(T)!=S)throw TypeError("Expected "+(S?S.toUpperCase():S+E)+", but received "+(T?get(T).toUpperCase():T+E));return!0}function isNum(T){return!isNaN(parseFloat(T))&&isFinite(T)}function okeys(T){var E=[];for(var S in T)E.push(S);return E}function err(){for(var T="[RiTa] "+arguments[0],E=1;E0}function trim(T){return strOk(T)?T.replace(/^\s\s*/,"").replace(/\s\s*$/,""):T}function last(T){return T&&T.length?T.charAt(T.length-1):E}function extend(T,E){for(var S=0;S-1}function escapeRegExp(T){return T.replace(/([.*+?^=!:${}()|\[\]\/\\])/g,"\\$1")}function get(T){if("undefined"!=typeof T)return{}.toString.call(T).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}function tagForPENN(T){if(!T||!T.length)return EA;var E=is(T,S)?RiTa.tokenize(T):T;return PosTagger.tag(E)}function tagForWordNet(T){var E,S=tagForPENN(T);if(T&&S.length){for(var A=0;A-1)return!0;var A=categoryIRR.indexOf(T);return A%2===0}function _dict(){return{a:["ey1","dt"],able:["ey1 b-ah-l","jj"],about:["ah b-aw1-t","in jj rb rp rbr"],above:["ah b-ah1-v","in jj rb"],act:["ae1-k-t","nn vbp vb"],add:["ae1-d","vb vbp"],afraid:["ah f-r-ey1-d","jj"],after:["ae1-f t-er","in rb rp"],again:["ah g-eh1-n","rb"],against:["ah g-eh1-n-s-t","in"],age:["ey1-jh","nn vb vbp"],ago:["ah g-ow1","rb in"],agree:["ah g-r-iy1","vb vbp"],air:["eh1-r","nn vb"],all:["ao1-l","dt rb pdt"],allow:["ah l-aw1","vb vbp"],also:["ao1-l s-ow","rb ."],always:["ao1-l w-ey-z","rb"],am:["ae1-m","vbp rb"],among:["ah m-ah1-ng","in"],an:["ae1-n","dt cc jj nnp"],and:["ae1-n-d","cc jj rb nnp"],anger:["ae1-ng g-er","nn vb vbp"],animal:["ae1 n-ah m-ah-l","nn jj"],answer:["ae1-n s-er","nn vb vbp"],any:["eh1 n-iy","dt rb"],appear:["ah p-ih1-r","vb vbp"],apple:["ae1 p-ah-l","nn"],are:["aa1-r","vbp nnp"],area:["eh1 r-iy ah","nn"],arm:["aa1-r-m","nn vb"],arrange:["er ey1-n-jh","vb vbp"],arrive:["er ay1-v","vb vbp"],art:["aa1-r-t","nn"],as:["ae1-z","in nnp jj rb"],ask:["ae1-s-k","vb vbp"],at:["ae1-t","in rb rp"],atom:["ae1 t-ah-m","nn"],baby:["b-ey1 b-iy","nn uh"],back:["b-ae1-k","rb in jj nn rp vb vbp"],bad:["b-ae1-d","jj nn rb"],ball:["b-ao1-l","nn vb"],band:["b-ae1-n-d","nn vb"],bank:["b-ae1-ng-k","nn vbp vb"],bar:["b-aa1-r","nn vb vbp"],base:["b-ey1-s","nn vbp jj vb"],basic:["b-ey1 s-ih-k","jj nn"],bat:["b-ae1-t","nn vb"],be:["b-iy1","vb"],bear:["b-eh1-r","vb nn vbp"],beat:["b-iy1-t","vb jj nn vbd vbn vbp"],beauty:["b-y-uw1 t-iy","nn"],bed:["b-eh1-d","nn vb vbp"],before:["b-ih f-ao1-r","in rb rp"],begin:["b-ih g-ih1-n","vb vbp"],behind:["b-ih hh-ay1-n-d","in nn rb rp"],believe:["b-ih l-iy1-v","vbp vb"],bell:["b-eh1-l","nn"],best:["b-eh1-s-t","jjs rbs jjss nn rb vb"],better:["b-eh1 t-er","jjr rbr jj rb vb"],between:["b-ih t-w-iy1-n","in rb"],big:["b-ih1-g","jj rb"],bird:["b-er1-d","nn"],bit:["b-ih1-t","nn vbd vbn jj rb vb"],black:["b-l-ae1-k","jj nn vb"],block:["b-l-aa1-k","nn vbp jj vb"],blood:["b-l-ah1-d","nn vb"],blow:["b-l-ow1","nn vb vbp"],blue:["b-l-uw1","jj nn"],board:["b-ao1-r-d","nn rb vb"],boat:["b-ow1-t","nn vb"],body:["b-aa1 d-iy","nn"],bone:["b-ow1-n","nn vb"],book:["b-uh1-k","nn vb"],both:["b-aa1-th","jj rb prp"],bottom:["b-aa1 t-ah-m","nn jj vb"],box:["b-aa1-k-s","nn vb"],boy:["b-oy1","nn uh"],branch:["b-r-ae1-n-ch","nn vb"],bread:["b-r-eh1-d","nn"],"break":["b-r-ey1-k","vb nn vbp"],bright:["b-r-ay1-t","jj rb"],bring:["b-r-ih1-ng","vb vbp"],broad:["b-r-ao1-d","jj"],broke:["b-r-ow1-k","vbd vbn jj rb vb"],brother:["b-r-ah1 dh-er","nn"],brown:["b-r-aw1-n","jj nn vb"],build:["b-ih1-l-d","vb vbn vbp nn"],burn:["b-er1-n","vb vbp nn"],busy:["b-ih1 z-iy","jj"],but:["b-ah1-t","cc in jj rb"],buy:["b-ay1","vb vbp nn jj"],by:["b-ay1","in rb rp"],call:["k-ao1-l","vb nn vbp"],camp:["k-ae1-m-p","nn vb"],can:["k-ae1-n","md nn vb"],capital:["k-ae1 p-ah t-ah-l","nn jj"],captain:["k-ae1-p t-ah-n","nn vb vbp"],car:["k-aa1-r","nn"],card:["k-aa1-r-d","nn"],care:["k-eh1-r","nn vb vbp"],carry:["k-ae1 r-iy","vb nn vbp"],"case":["k-ey1-s","nn vb"],cat:["k-ae1-t","nn"],"catch":["k-ae1-ch","vb vbp nn"],cause:["k-aa1-z","nn vb vbg vbp"],cell:["s-eh1-l","nn"],cent:["s-eh1-n-t","nn"],center:["s-eh1-n t-er","nn jj rb vb vbp"],century:["s-eh1-n ch-er iy","nn"],certain:["s-er1 t-ah-n","jj rb"],chair:["ch-eh1-r","nn vb"],chance:["ch-ae1-n-s","nn jj vb vbp"],change:["ch-ey1-n-jh","nn vbp vb"],character:["k-eh1 r-ih-k t-er","nn"],charge:["ch-aa1-r-jh","nn vbp vb"],chart:["ch-aa1-r-t","nn vb vbp"],check:["ch-eh1-k","nn vbp vb"],chick:["ch-ih1-k","nn"],chief:["ch-iy1-f","jj nn"],child:["ch-ay1-l-d","nn"],choose:["ch-uw1-z","vb vbp"],chord:["k-ao1-r-d","nn"],circle:["s-er1 k-ah-l","nn vb"],city:["s-ih1 t-iy","nn"],claim:["k-l-ey1-m","nn vbp vb"],"class":["k-l-ae1-s","nn vb"],clean:["k-l-iy1-n","jj vbp rb vb"],clear:["k-l-ih1-r","jj rb vb vbp"],climb:["k-l-ay1-m","vb vbp nn"],clock:["k-l-aa1-k","nn vb vbp"],close:["k-l-ow1-s","vb vbp jj"],clothe:["k-l-ow1-dh","vb"],cloud:["k-l-aw1-d","nn vb vbp"],coast:["k-ow1-s-t","nn vb"],coat:["k-ow1-t","nn vb"],cold:["k-ow1-l-d","jj nn"],collect:["k-ah l-eh1-k-t","vb jj vbp"],colony:["k-aa1 l-ah n-iy","nn"],color:["k-ah1 l-er","nn jj vb vbp"],column:["k-aa1 l-ah-m","nn"],come:["k-ah1-m","vb vbd vbn vbp vbz jj"],common:["k-aa1 m-ah-n","jj nn"],company:["k-ah1-m p-ah n-iy","nn"],compare:["k-ah-m p-eh1-r","vb vbp nn"],complete:["k-ah-m p-l-iy1-t","jj vb vbp"],condition:["k-ah-n d-ih1 sh-ah-n","nn vbp vb"],connect:["k-ah n-eh1-k-t","vb vbp"],consider:["k-ah-n s-ih1 d-er","vb vbp"],consonant:["k-aa1-n s-ah n-ah-n-t","jj nn"],contain:["k-ah-n t-ey1-n","vb vbp"],continent:["k-aa1-n t-ah n-ah-n-t","nn"],"continue":["k-ah-n t-ih1 n-y-uw","vb vbp"],control:["k-ah-n t-r-ow1-l","nn jj vb vbp"],cook:["k-uh1-k","nn vb vbp"],cool:["k-uw1-l","jj nn rb vb vbp"],copy:["k-aa1 p-iy","nn vbp vb"],corn:["k-ao1-r-n","nn"],corner:["k-ao1-r n-er","nn jj vb"],correct:["k-er eh1-k-t","jj vbp vb"],cost:["k-aa1-s-t","nn vbd vbn vbp vb"],cotton:["k-aa1 t-ah-n","nn"],could:["k-uh1-d","md"],count:["k-aw1-n-t","nn vb vbp"],country:["k-ah1-n t-r-iy","nn"],course:["k-ao1-r-s","nn rb vb"],cover:["k-ah1 v-er","vb nn vbp"],cow:["k-aw1","nn vb"],crease:["k-r-iy1-s","nn"],create:["k-r-iy ey1-t","vb vbp"],crop:["k-r-aa1-p","nn rp vb vbp"],cross:["k-r-ao1-s","vb jj nn rb vbp"],crowd:["k-r-aw1-d","nn vbp vb"],cry:["k-r-ay1","nn vb vbp"],current:["k-er1 ah-n-t","jj nn"],cut:["k-ah1-t","vb vbd vbn vbp jj nn"],dad:["d-ae1-d","nn"],dance:["d-ae1-n-s","nn vb vbp"],danger:["d-ey1-n jh-er","nn"],dark:["d-aa1-r-k","jj nn rb"],day:["d-ey1","nn"],dead:["d-eh1-d","jj nn rb vbn"],deal:["d-iy1-l","nn vb vbp"],dear:["d-ih1-r","jj nn rb uh"],death:["d-eh1-th","nn"],decide:["d-ih s-ay1-d","vb vbp"],decimal:["d-eh1 s-ah m-ah-l","nn jj"],deep:["d-iy1-p","jj rb"],degree:["d-ih g-r-iy1","nn"],depend:["d-ih p-eh1-n-d","vb vbp"],describe:["d-ih s-k-r-ay1-b","vb vbp"],desert:["d-eh1 z-er-t","nn jj vb vbp"],design:["d-ih z-ay1-n","nn vb vbp"],determine:["d-ah t-er1 m-ah-n","vb vbp"],develop:["d-ih v-eh1 l-ah-p","vb vbp"],dictionary:["d-ih1-k sh-ah n-eh r-iy","nn"],die:["d-ay1","vb vbp nn"],differ:["d-ih1 f-er","vbp vb"],difficult:["d-ih1 f-ah k-ah-l-t","jj"],direct:["d-er eh1-k-t","jj vbp rb vb"],discuss:["d-ih s-k-ah1-s","vb vbp"],distant:["d-ih1 s-t-ah-n-t","jj"],divide:["d-ih v-ay1-d","vb nn vbp"],division:["d-ih v-ih1 zh-ah-n","nn"],"do":["d-uw1","vb"],doctor:["d-aa1-k t-er","nn vb"],dog:["d-ao1-g","nn"],dollar:["d-aa1 l-er","nn"],done:["d-ah1-n","vbn jj rb vbd"],door:["d-ao1-r","nn rb"],"double":["d-ah1 b-ah-l","jj vbp nn rb vb"],down:["d-aw1-n","rb in rbr vbp jj nn rp vb"],draw:["d-r-ao1","vb vbp nn"],dream:["d-r-iy1-m","nn vb vbp"],dress:["d-r-eh1-s","nn vbp vb"],drink:["d-r-ih1-ng-k","nn vbp vb"],drive:["d-r-ay1-v","nn vbp vb"],drop:["d-r-aa1-p","nn jj vb vbp"],dry:["d-r-ay1","jj vb vbp"],duck:["d-ah1-k","nn vb"],during:["d-uh1 r-ih-ng","in"],each:["iy1-ch","dt"],ear:["ih1-r","nn"],early:["er1 l-iy","jj rb"],earth:["er1-th","nn"],ease:["iy1-z","vb nn vbp"],east:["iy1-s-t","jj nn rb"],eat:["iy1-t","vb vbp"],edge:["eh1-jh","nn vb"],effect:["ih f-eh1-k-t","nn jj vb vbp"],egg:["eh1-g","nn vb"],eight:["ey1- t","cd"],either:["iy1 dh-er","dt cc in rb rbr"],electric:["ih l-eh1-k t-r-ih-k","jj nn"],element:["eh1 l-ah m-ah-n-t","nn"],"else":["eh1-l-s","rb jj nn"],end:["eh1-n-d","nn vbp jj rb vb"],enemy:["eh1 n-ah m-iy","nn"],energy:["eh1 n-er jh-iy","nn"],engine:["eh1-n jh-ah-n","nn"],enough:["ih-n ah1-f","rb jj nn"],enter:["eh1-n t-er","vb vbn vbp"],equal:["iy1 k-w-ah-l","jj nn vb vbp"],equate:["ih k-w-ey1-t","vb vbp"],especially:["ah s-p-eh1-sh l-iy","rb"],even:["iy1 v-ih-n","rb vb"],evening:["iy1-v n-ih-ng","nn vbg"],event:["ih v-eh1-n-t","nn"],ever:["eh1 v-er","rb rbr rp"],every:["eh1 v-er iy","dt"],exact:["ih-g z-ae1-k-t","jj vb"],example:["ih-g z-ae1-m p-ah-l","nn"],except:["ih-k s-eh1-p-t","in vb"],excite:["ih-k s-ay1-t","vb"],exercise:["eh1-k s-er s-ay-z","nn vbp vb"],expect:["ih-k s-p-eh1-k-t","vbp vb in"],experience:["ih-k s-p-ih1 r-iy ah-n-s","nn vbp vb"],experiment:["ih-k s-p-eh1 r-ah m-ah-n-t","nn vbp vb"],eye:["ay1","nn vb"],face:["f-ey1-s","nn vbp jj rb vb"],fact:["f-ae1-k-t","nn"],fair:["f-eh1-r","jj nn rb"],fall:["f-ao1-l","nn vbp vb"],family:["f-ae1 m-ah l-iy","nn"],famous:["f-ey1 m-ah-s","jj"],far:["f-aa1-r","rb in jj"],farm:["f-aa1-r-m","nn vb"],fast:["f-ae1-s-t","rb jj nn rp"],fat:["f-ae1-t","jj nn"],father:["f-aa1 dh-er","nn vb"],favor:["f-ey1 v-er","nn vbp vb"],fear:["f-ih1-r","nn vb vbp"],feed:["f-iy1-d","nn vb"],feel:["f-iy1-l","vb vbp nn"],fell:["f-eh1-l","vbd jj nn vbn"],few:["f-y-uw1","jj"],field:["f-iy1-l-d","nn jj vb vbp"],fig:["f-ih1-g","nn"],fight:["f-ay1-t","nn vb vbp"],figure:["f-ih1 g-y-er","nn vb vbp vbz"],fill:["f-ih1-l","vb vbp nn"],"final":["f-ay1 n-ah-l","jj"],find:["f-ay1-n-d","vb vbp nn"],fine:["f-ay1-n","jj nn rb vb"],finger:["f-ih1-ng g-er","nn vb"],finish:["f-ih1 n-ih-sh","vb nn vbp"],fire:["f-ay1 er","nn vb"],first:["f-er1-s-t","jj rb nn"],fish:["f-ih1-sh","nn vb"],fit:["f-ih1-t","vb vbn vbp jj nn rb vbd"],five:["f-ay1-v","cd"],flat:["f-l-ae1-t","jj nn rb"],floor:["f-l-ao1-r","nn"],flow:["f-l-ow1","nn vbp vb"],flower:["f-l-aw1 er","nn vb vbp"],fly:["f-l-ay1","vb nn vbp"],follow:["f-aa1 l-ow","vb vbp"],food:["f-uw1-d","nn"],foot:["f-uh1-t","nn vbp jj vb"],"for":["f-ao1-r","in nnp cc jj rb rp"],force:["f-ao1-r-s","nn vb nnp vbp"],forest:["f-ao1 r-ah-s-t","nn"],form:["f-ao1-r-m","nn vbp jj vb"],forward:["f-ao1-r w-er-d","rb jj nn vb"],found:["f-aw1-n-d","vbd vbn vb"],four:["f-ao1-r","cd"],fraction:["f-r-ae1-k sh-ah-n","nn"],free:["f-r-iy1","jj rb vb vbp"],fresh:["f-r-eh1-sh","jj rb"],friend:["f-r-eh1-n-d","nn"],from:["f-r-ah1-m","in rb rp"],front:["f-r-ah1-n-t","nn jj vb"],fruit:["f-r-uw1-t","nn"],full:["f-uh1-l","jj rb"],fun:["f-ah1-n","nn jj"],game:["g-ey1-m","nn"],garden:["g-aa1-r d-ah-n","nn vb"],gas:["g-ae1-s","nn vb"],gather:["g-ae1 dh-er","vb vbp"],general:["jh-eh1 n-er ah-l","jj nn"],gentle:["jh-eh1-n t-ah-l","jj vb"],get:["g-eh1-t","vb vbp"],girl:["g-er1-l","nn"],give:["g-ih1-v","vb nn vbp"],glad:["g-l-ae1-d","jj"],glass:["g-l-ae1-s","nn"],go:["g-ow1","vb jj nn rp vbp"],gold:["g-ow1-l-d","nn jj"],gone:["g-ao1-n","vbn jj"],good:["g-uh1-d","jj nn rb"],got:["g-aa1-t","vbd vbn vbp vb"],govern:["g-ah1 v-er-n","vb vbp"],grand:["g-r-ae1-n-d","jj"],grass:["g-r-ae1-s","nn vb"],gray:["g-r-ey1","jj nn vb"],great:["g-r-ey1-t","jj rb"],green:["g-r-iy1-n","jj nn vb"],ground:["g-r-aw1-n-d","nn jj vb vbd vbn"],group:["g-r-uw1-p","nn vb vbp"],grow:["g-r-ow1","vb vbp"],guess:["g-eh1-s","vbp nn vb"],guide:["g-ay1-d","nn vbp vb"],gun:["g-ah1-n","nn vb"],hair:["hh-eh1-r","nn"],half:["hh-ae1-f","nn jj prp"],hand:["hh-ae1-n-d","nn rb vb vbp jj"],happen:["hh-ae1 p-ah-n","vb vbp"],happy:["hh-ae1 p-iy","jj"],hard:["hh-aa1-r-d","jj rb"],has:["hh-ae1-z","vbz vbn ."],hat:["hh-ae1-t","nn"],have:["hh-ae1-v","vbp jj nn vb vbn"],he:["hh-iy1","prp vb"],head:["hh-eh1-d","nn jj rb vb vbp"],hear:["hh-ih1-r","vb vbp"],heart:["hh-aa1-r-t","nn rb vb"],heat:["hh-iy1-t","nn vb vbp"],heavy:["hh-eh1 v-iy","jj nn rb"],held:["hh-eh1-l-d","vbn vbd jj"],help:["hh-eh1-l-p","vb nn vbp"],her:["hh-er","prp$"],here:["hh-ih1-r","rb"],high:["hh-ay1","jj nn rb rp"],hill:["hh-ih1-l","nn"],him:["hh-ih1-m","prp"],his:["hh-ih1-z","prp$"],history:["hh-ih1 s-t-er iy","nn"],hit:["hh-ih1-t","vbd jj nn vb vbn vbp"],hold:["hh-ow1-l-d","vb nn rb vbp"],hole:["hh-ow1-l","nn vbp vb"],home:["hh-ow1-m","nn vbp rb vb"],hope:["hh-ow1-p","nn vb vbp"],horse:["hh-ao1-r-s","nn"],hot:["hh-aa1-t","jj"],hour:["aw1 er","nn"],house:["hh-aw1-s","nn vbp vb"],how:["hh-aw1","wrb"],huge:["hh-y-uw1-jh","jj"],human:["hh-y-uw1 m-ah-n","jj nn"],hundred:["hh-ah1-n d-r-ah-d","nn"],hunt:["hh-ah1-n-t","nn vb vbp"],hurry:["hh-er1 iy","nn vbp vb"],ice:["ay1-s","nn jj"],idea:["ay d-iy1 ah","nn"],"if":["ih1-f","in"],imagine:["ih m-ae1 jh-ah-n","vb vbp"],"in":["ih-n","in nn rb rp nnp rbr"],inch:["ih1-n-ch","nn rb vb"],include:["ih-n k-l-uw1-d","vbp vbn vb"],indicate:["ih1-n d-ah k-ey-t","vb vbp"],industry:["ih1-n d-ah-s t-r-iy","nn"],insect:["ih1-n s-eh-k-t","nn jj"],instant:["ih1-n s-t-ah-n-t","nn jj"],instrument:["ih1-n s-t-r-ah m-ah-n-t","nn"],interest:["ih1-n t-r-ah-s-t","nn vbp vb"],invent:["ih-n v-eh1-n-t","vb vbp"],iron:["ay1 er-n","nn vb"],is:["ih1-s","vbz"],island:["ay1 l-ah-n-d","nn"],it:["ih1-t","prp"],job:["jh-aa1-b","nn"],join:["jh-oy1-n","vb vbp"],joy:["jh-oy1","nn"],jump:["jh-ah1-m-p","nn vbp jj vb"],just:["jh-ah1-s-t","rb jj rp"],keep:["k-iy1-p","vb nn vbp"],key:["k-iy1","jj nn vb"],kill:["k-ih1-l","vb vbp nn"],kind:["k-ay1-n-d","nn jj rb"],king:["k-ih1-ng","nn"],know:["n-ow1","vb nn vbp"],lady:["l-ey1 d-iy","nn"],lake:["l-ey1-k","nn"],land:["l-ae1-n-d","nn vbp vb"],language:["l-ae1-ng g-w-ah-jh","nn"],large:["l-aa1-r-jh","jj rb"],last:["l-ae1-s-t","jj nn rb vb vbp"],late:["l-ey1-t","jj rb"],laugh:["l-ae1-f","nn vbp vb"],law:["l-ao1","nn"],lay:["l-ey1","vbd vbp jj vb"],lead:["l-eh1-d","vb vbn vbp jj nn"],learn:["l-er1-n","vb vbp"],least:["l-iy1-s-t","jjs rbs jj"],leave:["l-iy1-v","vb nn vbp"],led:["l-eh1-d","vbn vbd vb"],left:["l-eh1-f-t","vbn jj nn rb vbd"],leg:["l-eh1-g","nn"],length:["l-eh1-ng-k-th","nn"],less:["l-eh1-s","jjr jjs cc rb rbr rbs"],"let":["l-eh1-t","vb vbd vbn vbp nn"],letter:["l-eh1 t-er","nn vb"],level:["l-eh1 v-ah-l","nn vbp jj vb"],lie:["l-ay1","vb vbp nn"],life:["l-ay1-f","nn rb"],lift:["l-ih1-f-t","vb nn vbp"],light:["l-ay1-t","nn jj rb vb vbp"],like:["l-ay1-k","in jj nn vb vbp"],line:["l-ay1-n","nn vbp rb vb"],liquid:["l-ih1 k-w-ah-d","jj nn"],list:["l-ih1-s-t","nn vbp vb"],listen:["l-ih1 s-ah-n","vb vbp"],little:["l-ih1 t-ah-l","jj rb"],live:["l-ay1-v","vb rb vbp jj"],locate:["l-ow1 k-ey-t","vb vbp"],log:["l-ao1-g","nn vb vbp"],lone:["l-ow1-n","jj"],"long":["l-ao1-ng","jj vb vbp rb"],look:["l-uh1-k","vb nn vbp"],lost:["l-ao1-s-t","vbd vbn jj"],lot:["l-aa1-t","nn rb jj"],loud:["l-aw1-d","jj rb"],love:["l-ah1-v","nn nnp vb vbp"],low:["l-ow1","jj nn rb rp"],machine:["m-ah sh-iy1-n","nn"],made:["m-ey1-d","vbn vbd jj"],magnet:["m-ae1-g n-ah-t","nn"],main:["m-ey1-n","jj nn"],major:["m-ey1 jh-er","jj nn vb vbp"],make:["m-ey1-k","vb nn vbp"],man:["m-ae1-n","nn jj vb uh"],many:["m-eh1 n-iy","jj dt rb vb pdt"],map:["m-ae1-p","nn vbp vb"],mark:["m-aa1-r-k","nn vbp vb"],market:["m-aa1-r k-ah-t","nn vbp vb"],mass:["m-ae1-s","nn jj rb vb"],master:["m-ae1 s-t-er","nn jj vb jjr"],match:["m-ae1-ch","vb vbp nn"],material:["m-ah t-ih1 r-iy ah-l","nn jj"],matter:["m-ae1 t-er","nn vbp vb"],may:["m-ey1","md nnp"],me:["m-iy1","prp"],mean:["m-iy1-n","vb vbp jj"],measure:["m-eh1 zh-er","nn vbp vb"],meat:["m-iy1-t","nn"],meet:["m-iy1-t","vb vbp nn"],melody:["m-eh1 l-ah d-iy","nn"],metal:["m-eh1 t-ah-l","nn"],method:["m-eh1 th-ah-d","nn"],middle:["m-ih1 d-ah-l","nn jj"],might:["m-ay1-t","md nn"],mile:["m-ay1-l","nn"],milk:["m-ih1-l-k","nn vb"],million:["m-ih1 l-y-ah-n","nn"],mind:["m-ay1-n-d","nn rb vb"],mine:["m-ay1-n","nn vb prp vbp"],minute:["m-ih1 n-ah-t","nn jj"],miss:["m-ih1-s","vb vbp nn"],mix:["m-ih1-k-s","nn vbp vb"],modern:["m-aa1 d-er-n","jj nn"],molecule:["m-aa1 l-ah k-y-uw-l","nn"],moment:["m-ow1 m-ah-n-t","nn"],money:["m-ah1 n-iy","nn"],month:["m-ah1-n-th","nn"],moon:["m-uw1-n","nn vb"],more:["m-ao1-r","jjr rbr nn jj rb rp"],morning:["m-ao1-r n-ih-ng","nn"],most:["m-ow1-s-t","rbs jj nn rb jjs"],mother:["m-ah1 dh-er","nn vb"],motion:["m-ow1 sh-ah-n","nn vb"],mount:["m-aw1-n-t","vb nn vbp"],mountain:["m-aw1-n t-ah-n","nn"],mouth:["m-aw1-th","nn vb"],move:["m-uw1-v","nn vbp vb"],much:["m-ah1-ch","jj dt nn rb"],multiply:["m-ah1-l t-ah p-l-ay","vb vbp"],music:["m-y-uw1 z-ih-k","nn"],must:["m-ah1-s-t","md"],my:["m-ay1","prp$"],name:["n-ey1-m","nn vb uh vbp"],nation:["n-ey1 sh-ah-n","nn"],natural:["n-ae1 ch-er ah-l","jj nn"],nature:["n-ey1 ch-er","nn jj"],near:["n-ih1-r","in rb vb jj"],necessary:["n-eh1 s-ah s-eh r-iy","jj"],neck:["n-eh1-k","nn rb vb"],need:["n-iy1-d","nn vbp md vb"],neighbor:["n-ey1 b-er","nn vb"],never:["n-eh1 v-er","rb rbr"],"new":["n-uw1","jj"],next:["n-eh1-k-s-t","jj in rb"],night:["n-ay1-t","nn rb"],nine:["n-ih1-n","cd"],no:["n-ow1","dt jj nn rb uh"],noise:["n-oy1-z","nn"],noon:["n-uw1-n","nn"],nor:["n-ao1-r","cc"],north:["n-ao1-r-th","rb jj nn"],nose:["n-ow1-z","nn vb"],note:["n-ow1-t","nn vbp vb"],nothing:["n-ah1 th-ih-ng","nn"],notice:["n-ow1 t-ah-s","nn vb vbp"],noun:["n-aw1-n","nn"],now:["n-aw1","rb jj nn uh"],number:["n-ah1-m b-er","nn vb vbp"],numeral:["n-uw1 m-er ah-l","nn"],object:["aa1-b jh-eh-k-t","nn vbp vb"],observe:["ah-b z-er1-v","vb vbp"],occur:["ah k-er1","vb vbp"],ocean:["ow1 sh-ah-n","nn"],of:["ah1-v","in rb rp nnp"],off:["ao1-f","in rb jj nn rp"],offer:["ao1 f-er","nn vb vbp"],office:["ao1 f-ah-s","nn"],often:["ao1 f-ah-n","rb"],oh:["ow1","uh"],oil:["oy1-l","nn"],old:["ow1-l-d","jj"],on:["aa1-n","in nnp rbr jj rb rp"],once:["w-ah1-n-s","rb in"],one:["w-ah1-n","cd"],only:["ow1-n l-iy","rb in jj"],open:["ow1 p-ah-n","jj vbp nn rb rp vb"],operate:["aa1 p-er ey-t","vb vbp"],opposite:["aa1 p-ah z-ah-t","jj in nn"],or:["ao1-r","cc nnp"],order:["ao1-r d-er","nn vbp in vb"],organ:["ao1-r g-ah-n","nn"],original:["er ih1 jh-ah n-ah-l","jj nn"],other:["ah1 dh-er","jj nn"],our:["aw1 er","prp$"],out:["aw1-t","in jj nn rb rp"],over:["ow1 v-er","in rp jj rb"],own:["ow1-n","jj vbn vbp vb"],oxygen:["aa1-k s-ah jh-ah-n","nn"],page:["p-ey1-jh","nn vb"],paint:["p-ey1-n-t","nn vb vbp"],pair:["p-eh1-r","nn vb"],paper:["p-ey1 p-er","nn vb"],paragraph:["p-ae1 r-ah g-r-ae-f","nn"],parent:["p-eh1 r-ah-n-t","nn jj"],part:["p-aa1-r-t","nn jj rb vb"],particular:["p-er t-ih1 k-y-ah l-er","jj nn rb"],party:["p-aa1-r t-iy","nn vb"],pass:["p-ae1-s","vb vbp nn"],past:["p-ae1-s-t","jj in nn rb"],path:["p-ae1-th","nn"],pattern:["p-ae1 t-er-n","nn vb"],pay:["p-ey1","vb vbd vbp nn"],perhaps:["p-er hh-ae1-p-s","rb"],period:["p-ih1 r-iy ah-d","nn"],person:["p-er1 s-ah-n","nn"],phrase:["f-r-ey1-z","nn vb"],pick:["p-ih1-k","vb vbp nn"],picture:["p-ih1-k ch-er","nn vb vbp"],piece:["p-iy1-s","nn vb"],pitch:["p-ih1-ch","nn jj vb vbp"],place:["p-l-ey1-s","nn vbp rb vb"],plain:["p-l-ey1-n","jj nn rb"],plan:["p-l-ae1-n","nn vb vbn vbp"],plane:["p-l-ey1-n","nn vb"],planet:["p-l-ae1 n-ah-t","nn"],plant:["p-l-ae1-n-t","nn vb"],play:["p-l-ey1","vb nn vbp"],please:["p-l-iy1-z","vb uh vbp"],plural:["p-l-uh1 r-ah-l","nn jj"],poem:["p-ow1 ah-m","nn"],point:["p-oy1-n-t","nn vbp rb vb"],poor:["p-uh1-r","jj nn nnp"],populate:["p-aa1 p-y-ah l-ey-t","vb vbp"],port:["p-ao1-r-t","nn jj"],pose:["p-ow1-z","vb vbp nn"],position:["p-ah z-ih1 sh-ah-n","nn vbp vb"],possible:["p-aa1 s-ah b-ah-l","jj rb"],post:["p-ow1-s-t","nn in jj vb vbd vbp"],pound:["p-aw1-n-d","nn vb vbp"],power:["p-aw1 er","nn vbp vb"],practice:["p-r-ae1-k t-ah-s","nn vb vbp"],prepare:["p-r-iy p-eh1-r","vb vbp"],present:["p-r-eh1 z-ah-n-t","jj vbp rb nn vb"],press:["p-r-eh1-s","nn vbp vb"],pretty:["p-r-ih1 t-iy","rb jj"],print:["p-r-ih1-n-t","nn vb vbp"],probable:["p-r-aa1 b-ah b-ah-l","jj"],problem:["p-r-aa1 b-l-ah-m","nn"],process:["p-r-aa1 s-eh-s","nn vbp vb"],produce:["p-r-ah d-uw1-s","vb vbp nn"],product:["p-r-aa1 d-ah-k-t","nn"],proper:["p-r-aa1 p-er","jj"],property:["p-r-aa1 p-er t-iy","nn"],protect:["p-r-ah t-eh1-k-t","vb vbp"],prove:["p-r-uw1-v","vb vbp"],provide:["p-r-ah v-ay1-d","vb vbp"],pull:["p-uh1-l","vb vbp nn"],push:["p-uh1-sh","vb vbp nn"],put:["p-uh1-t","vb jj nn vbp vbd vbn"],quart:["k-w-ao1-r-t","nn"],question:["k-w-eh1-s ch-ah-n","nn vb vbp"],quick:["k-w-ih1-k","jj nn rb"],quiet:["k-w-ay1 ah-t","jj nn vb"],quite:["k-w-ay1-t","rb pdt"],quotient:["k-w-ow1 t-ih ah-n-t","nn"],race:["r-ey1-s","nn vb"],radio:["r-ey1 d-iy ow","nn vb"],rail:["r-ey1-l","nn vb"],rain:["r-ey1-n","nn vb"],raise:["r-ey1-z","vb vbp nn"],range:["r-ey1-n-jh","nn jj vb vbp vbz"],rather:["r-ae1 dh-er","rb in"],reach:["r-iy1-ch","vb vbp nn"],read:["r-eh1-d","vb nn vbp vbd vbn"],ready:["r-eh1 d-iy","jj rb vb"],real:["r-iy1-l","jj nn rb"],reason:["r-iy1 z-ah-n","nn vb vbp"],receive:["r-ah s-iy1-v","vb vbp"],record:["r-ah k-ao1-r-d","nn jj vb vbp"],red:["r-eh1-d","jj nn"],region:["r-iy1 jh-ah-n","nn"],remember:["r-ih m-eh1-m b-er","vb vbp"],repeat:["r-ih p-iy1-t","vb jj nn vbp"],reply:["r-ih p-l-ay1","nn vb vbp"],represent:["r-eh p-r-ah z-eh1-n-t","vb vbp"],require:["r-iy k-w-ay1 er","vb vbp"],rest:["r-eh1-s-t","nn vbp vb rb"],result:["r-ih z-ah1-l-t","nn vbp vb"],rich:["r-ih1-ch","jj"],ride:["r-ay1-d","vb nn vbp"],right:["r-ay1-t","nn rb vb in jj"],ring:["r-ih1-ng","nn vb vbp"],rise:["r-ay1-z","nn vbp vb"],river:["r-ih1 v-er","nn"],road:["r-ow1-d","nn"],rock:["r-aa1-k","nn jj vb vbp"],roll:["r-ow1-l","nn vb vbp"],room:["r-uw1-m","nn vb"],root:["r-uw1-t","nn vbp vb"],rope:["r-ow1-p","nn vb"],rose:["r-ow1-z","vbd jj nn"],round:["r-aw1-n-d","nn in jj vbp rb vb"],row:["r-ow1","nn vbp vb"],rub:["r-ah1-b","nn vb vbp"],rule:["r-uw1-l","nn vbp vb"],run:["r-ah1-n","vb vbd vbn vbp nn"],safe:["s-ey1-f","jj nn"],said:["s-eh1-d","vbd vbn jj vb"],sail:["s-ey1-l","vb vbp nn"],salt:["s-ao1-l-t","nn jj vb"],same:["s-ey1-m","jj"],sand:["s-ae1-n-d","nn vb"],save:["s-ey1-v","vb in vbp"],saw:["s-ao1","vbd nn"],say:["s-ey1","vbp nn nnp vb uh"],scale:["s-k-ey1-l","nn vb"],school:["s-k-uw1-l","nn vb"],science:["s-ay1 ah-n-s","nn jj"],score:["s-k-ao1-r","nn vb vbp"],sea:["s-iy1","nn vb vbp"],search:["s-er1-ch","nn vb vbp"],season:["s-iy1 z-ah-n","nn vb"],seat:["s-iy1-t","nn vb vbp"],second:["s-eh1 k-ah-n-d","nn jj rb vb"],section:["s-eh1-k sh-ah-n","nn nnp"],see:["s-iy1","vb uh vbp"],seed:["s-iy1-d","nn vb"],seem:["s-iy1-m","vb vbp"],segment:["s-eh1-g m-ah-n-t","nn vb vbp"],select:["s-ah l-eh1-k-t","vb vbp jj"],self:["s-eh1-l-f","nn prp"],sell:["s-eh1-l","vb vbp nn"],send:["s-eh1-n-d","vb vbp"],sense:["s-eh1-n-s","nn vbp vb"],sentence:["s-eh1-n t-ah-n-s","nn vb"],separate:["s-eh1 p-er ey-t","jj vbp vb"],serve:["s-er1-v","vb vbp"],set:["s-eh1-t","vbn vbd vbp jj nn vb"],settle:["s-eh1 t-ah-l","vb vbp"],seven:["s-eh1 v-ah-n","cd"],several:["s-eh1 v-r-ah-l","jj rb"],shall:["sh-ae1-l","md"],shape:["sh-ey1-p","nn vbp vb"],share:["sh-eh1-r","nn vbp jj vb"],sharp:["sh-aa1-r-p","jj"],she:["sh-iy1","prp"],sheet:["sh-iy1-t","nn"],shell:["sh-eh1-l","nn jj vb"],shine:["sh-ay1-n","nn vbp vb"],ship:["sh-ih1-p","nn vbp vb"],shoe:["sh-uw1","nn"],shop:["sh-aa1-p","nn vb vbp"],shore:["sh-ao1-r","nn jj rb vb"],"short":["sh-ao1-r-t","jj nn rb vb"],should:["sh-uh1-d","md"],shoulder:["sh-ow1-l d-er","nn vbp rb vb"],shout:["sh-aw1-t","vb vbp nn"],show:["sh-ow1","nn vb vbp"],side:["s-ay1-d","nn vbp jj rb vb"],sight:["s-ay1-t","nn vb"],sign:["s-ay1-n","nn vbp vb"],silent:["s-ay1 l-ah-n-t","jj"],silver:["s-ih1-l v-er","nn jj jjr"],similar:["s-ih1 m-ah l-er","jj"],simple:["s-ih1-m p-ah-l","jj nn"],since:["s-ih1-n-s","in rb"],sing:["s-ih1-ng","vb vbp"],single:["s-ih1-ng g-ah-l","jj vbp nn rb vb"],sister:["s-ih1 s-t-er","nn jj"],sit:["s-ih1-t","vb vbp"],six:["s-ih1-k-s","cd"],size:["s-ay1-z","nn vbp vb"],skill:["s-k-ih1-l","nn vb"],skin:["s-k-ih1-n","nn"],sky:["s-k-ay1","nn"],slave:["s-l-ey1-v","nn"],sleep:["s-l-iy1-p","vb nn vbp"],slip:["s-l-ih1-p","vb nn vbp"],slow:["s-l-ow1","jj vbp rb vb"],small:["s-m-ao1-l","jj"],smell:["s-m-eh1-l","nn vb vbp"],smile:["s-m-ay1-l","nn vb vbp"],snow:["s-n-ow1","nn vb"],so:["s-ow1","rb cc in"],soft:["s-aa1-f-t","jj rb"],soil:["s-oy1-l","nn vb"],soldier:["s-ow1-l jh-er","nn"],solution:["s-ah l-uw1 sh-ah-n","nn"],solve:["s-aa1-l-v","vb vbp"],some:["s-ah1-m","dt nn rb"],son:["s-ah1-n","nn"],song:["s-ao1-ng","nn"],soon:["s-uw1-n","rb"],sound:["s-aw1-n-d","nn jj rb vb vbp"],south:["s-aw1-th","rb jj nn"],space:["s-p-ey1-s","nn vb"],speak:["s-p-iy1-k","vb vbp"],special:["s-p-eh1 sh-ah-l","jj nn"],speech:["s-p-iy1-ch","nn"],speed:["s-p-iy1-d","nn vb"],spell:["s-p-eh1-l","vb nn vbp"],spend:["s-p-eh1-n-d","vb vbp"],spoke:["s-p-ow1-k","vbd nn"],spot:["s-p-aa1-t","nn jj vb vbp"],spread:["s-p-r-eh1-d","nn vbd vbn vbp jj vb"],spring:["s-p-r-ih1-ng","nn vb vbp"],square:["s-k-w-eh1-r","nn jj rb vb vbp"],stand:["s-t-ae1-n-d","vb nn vbp"],star:["s-t-aa1-r","nn jj vb"],start:["s-t-aa1-r-t","vb vbp nn rp"],state:["s-t-ey1-t","nn jj vb vbp"],station:["s-t-ey1 sh-ah-n","nn vb"],stay:["s-t-ey1","vb vbp nn"],stead:["s-t-eh1-d","nn"],steam:["s-t-iy1-m","nn vb"],steel:["s-t-iy1-l","nn jj"],step:["s-t-eh1-p","nn vbp vb"],stick:["s-t-ih1-k","vb vbp nn"],still:["s-t-ih1-l","rb jj nn vb"],stone:["s-t-ow1-n","nn rb vb"],stop:["s-t-aa1-p","vb nn vbp"],store:["s-t-ao1-r","nn vb vbp"],story:["s-t-ao1 r-iy","nn"],straight:["s-t-r-ey1-t","jj rb"],strange:["s-t-r-ey1-n-jh","jj"],stream:["s-t-r-iy1-m","nn vb"],street:["s-t-r-iy1-t","nn"],stretch:["s-t-r-eh1-ch","nn vbp jj vb"],string:["s-t-r-ih1-ng","nn vb"],strong:["s-t-r-ao1-ng","jj rb"],student:["s-t-uw1 d-ah-n-t","nn"],study:["s-t-ah1 d-iy","nn vbp vb"],subject:["s-ah-b jh-eh1-k-t","nn jj vb"],substance:["s-ah1-b s-t-ah-n-s","nn"],subtract:["s-ah-b t-r-ae1-k-t","vb vbp"],success:["s-ah-k s-eh1-s","nn"],such:["s-ah1-ch","jj pdt dt"],sudden:["s-ah1 d-ah-n","jj"],suffix:["s-ah1 f-ih-k-s","nn"],sugar:["sh-uh1 g-er","nn vb"],suggest:["s-ah-g jh-eh1-s-t","vbp vb"],suit:["s-uw1-t","nn vbp rb vb"],summer:["s-ah1 m-er","nn"],sun:["s-ah1-n","nn vb"],supply:["s-ah p-l-ay1","nn vbp vb"],support:["s-ah p-ao1-r-t","nn vb vbp"],sure:["sh-uh1-r","jj pdt rb uh"],surface:["s-er1 f-ah-s","nn vb vbp"],surprise:["s-er p-r-ay1-z","nn jj rb vb"],swim:["s-w-ih1-m","vb vbp nn"],syllable:["s-ih1 l-ah b-ah-l","nn"],symbol:["s-ih1-m b-ah-l","nn"],system:["s-ih1 s-t-ah-m","nn"],table:["t-ey1 b-ah-l","nn vb"],tail:["t-ey1-l","nn jj vb"],take:["t-ey1-k","vb nn vbp"],talk:["t-ao1-k","vb vbp nn"],tall:["t-ao1-l","jj"],teach:["t-iy1-ch","vb vbp"],team:["t-iy1-m","nn vb vbp"],tell:["t-eh1-l","vb vbp"],temperature:["t-eh1-m p-r-ah ch-er","nn"],ten:["t-eh1-n","nn"],term:["t-er1-m","nn vb vbp"],test:["t-eh1-s-t","nn vbp vb"],than:["dh-ae1-n","in rb rbr"],thank:["th-ae1-ng-k","vb vbp"],that:["dh-ae1-t","in dt nn rb rp uh wp wdt"],the:["dh-ah","dt"],their:["dh-eh1-r","prp$"],them:["dh-eh1-m","prp dt"],then:["dh-eh1-n","rb in jj"],there:["dh-eh1-r","ex rb uh"],these:["dh-iy1-z","dt"],they:["dh-ey1","prp"],thick:["th-ih1-k","jj nn rb"],thin:["th-ih1-n","jj rb vb"],thing:["th-ih1-ng","nn"],think:["th-ih1-ng-k","vbp vb nn"],third:["th-er1-d","nn jj rb"],"this":["dh-ih1-s","dt rb pdt"],those:["dh-ow1-z","dt"],though:["dh-ow1","in rb"],thought:["th-ao1-t","vbd nn vbn"],thousand:["th-aw1 z-ah-n-d","nn"],three:["th-r-iy1","cd"],through:["th-r-uw1","in jj rb rp"],"throw":["th-r-ow1","vb vbp nn"],thus:["dh-ah1-s","rb"],tie:["t-ay1","nn vbp vb"],time:["t-ay1-m","nn vb"],tiny:["t-ay1 n-iy","jj"],tire:["t-ay1 er","nn vbp vb"],to:["t-uw1","to rb"],together:["t-ah g-eh1 dh-er","rb in rp"],tone:["t-ow1-n","nn vb"],too:["t-uw1","rb"],tool:["t-uw1-l","nn vb"],top:["t-aa1-p","jj nn vbp rb vb"],total:["t-ow1 t-ah-l","jj nn vb vbp"],touch:["t-ah1-ch","nn rb vb vbp"],toward:["t-ah w-ao1-r-d","in"],town:["t-aw1-n","nn"],track:["t-r-ae1-k","nn vbp vb"],trade:["t-r-ey1-d","nn vbp vb"],train:["t-r-ey1-n","nn vb vbp"],travel:["t-r-ae1 v-ah-l","nn vbp vb"],tree:["t-r-iy1","nn"],triangle:["t-r-ay1 ae-ng g-ah-l","nn"],trip:["t-r-ih1-p","nn vb"],trouble:["t-r-ah1 b-ah-l","nn vbd vbp jj vb"],truck:["t-r-ah1-k","nn vb vbp"],"true":["t-r-uw1","jj"],"try":["t-r-ay1","vb vbp nn"],tube:["t-uw1-b","nn"],turn:["t-er1-n","vb nn rb vbp"],twenty:["t-w-eh1-n t-iy","nn"],two:["t-uw1","cd"],type:["t-ay1-p","nn vb"],under:["ah1-n d-er","in jj rb rp"],unit:["y-uw1 n-ah-t","nn"],until:["ah-n t-ih1-l","in"],up:["ah1-p","in jj rb rp vb nnp rbr"],us:["ah1-s","prp"],use:["y-uw1-s","nn vb vbp"],usual:["y-uw1 zh-ah w-ah-l","jj rb"],valley:["v-ae1 l-iy","nn"],value:["v-ae1-l y-uw","nn vbp vb"],vary:["v-eh1 r-iy","vbp vb"],verb:["v-er1-b","nn"],very:["v-eh1 r-iy","rb jj"],view:["v-y-uw1","nn vbp vb"],village:["v-ih1 l-ah-jh","nn"],visit:["v-ih1 z-ah-t","nn vb vbp"],voice:["v-oy1-s","nn vbp vb"],vowel:["v-aw1 ah-l","nn jj"],wait:["w-ey1-t","vb vbp nn"],walk:["w-ao1-k","vb vbp nn"],wall:["w-ao1-l","nn vbp vb"],want:["w-aa1-n-t","vbp vb nn"],war:["w-ao1-r","nn nnp vb"],warm:["w-ao1-r-m","jj vb"],wash:["w-aa1-sh","nn vbp vb"],watch:["w-aa1-ch","vb jj nn vbp"],water:["w-ao1 t-er","nn vb jj"],wave:["w-ey1-v","nn vb vbp"],way:["w-ey1","nn rb"],we:["w-iy1","prp"],wear:["w-eh1-r","vb jj nn vbp"],weather:["w-eh1 dh-er","nn vb vbp"],week:["w-iy1-k","nn"],weight:["w-ey1-t","nn vb"],well:["w-eh1-l","rb vbp jj nn vb uh"],were:["w-er","vbd vb"],west:["w-eh1-s-t","nn jj rb jjs"],what:["w-ah1-t","wp wdt in"],wheel:["w-iy1-l","nn vb vbp"],when:["w-eh1-n","wrb in"],where:["w-eh1-r","wrb"],whether:["w-eh1 dh-er","in cc"],which:["w-ih1-ch","wdt wp"],"while":["w-ay1-l","in jj nn rb vb"],white:["w-ay1-t","jj nn"],who:["hh-uw1","wp nn"],whole:["hh-ow1-l","jj nn rp"],whose:["hh-uw1-z","wp$"],why:["w-ay1","wrb"],wide:["w-ay1-d","jj rb"],wife:["w-ay1-f","nn"],wild:["w-ay1-l-d","jj rb"],will:["w-ih1-l","md vbp nn vb"],win:["w-ih1-n","vb nn vbp"],wind:["w-ay1-n-d","nn vbp vb"],window:["w-ih1-n d-ow","nn"],wing:["w-ih1-ng","nn vb"],winter:["w-ih1-n t-er","nn vb"],wire:["w-ay1 er","nn vb"],wish:["w-ih1-sh","vbp nn vb"],"with":["w-ih1-dh","in jj rb rp"],woman:["w-uh1 m-ah-n","nn vb"],wonder:["w-ah1-n d-er","nn vbp jj vb jjr"],wood:["w-uh1-d","nn"],word:["w-er1-d","nn vb"],work:["w-er1-k","nn vb vbp"],world:["w-er1-l-d","nn rb"],would:["w-uh1-d","md"],write:["r-ay1-t","vb vbp"],written:["r-ih1 t-ah-n","vbn jj"],wrong:["r-ao1-ng","jj nn rb vb"],yard:["y-aa1-r-d","nn"],year:["y-ih1-r","nn jj"],yellow:["y-eh1 l-ow","jj nn vb"],yes:["y-eh1-s","uh rb"], yet:["y-eh1-t","rb cc"],you:["y-uw1","prp rp"],young:["y-ah1-ng","jj"],your:["y-ao1-r","prp$"]}}for(var E="",SP=" ",EA=[],N="number",S="string",O="object",A="array",B="boolean",R="regexp",F="function",BN="\n",FEATURES=["tokens","stresses","phonemes","syllables","pos","text"],RiTa={VERSION:"1.3.11",SPLIT_CONTRACTIONS:!1,JAVA:1,JS:2,NODE:3,DATA_LOADED:"DataLoaded",INTERNAL:"Internal",UNKNOWN:"Unknown",FIRST_PERSON:1,SECOND_PERSON:2,THIRD_PERSON:3,PAST_TENSE:4,PRESENT_TENSE:5,FUTURE_TENSE:6,SINGULAR:7,PLURAL:8,NORMAL:9,FEATURE_DELIM:":",STRESSED:"1",UNSTRESSED:"0",PHONEME_BOUNDARY:"-",WORD_BOUNDARY:" ",SYLLABLE_BOUNDARY:"/",SENTENCE_BOUNDARY:"|",VOWELS:"aeiou",ABBREVIATIONS:["Adm.","Capt.","Cmdr.","Col.","Dr.","Gen.","Gov.","Lt.","Maj.","Messrs.","Mr.","Mrs.","Ms.","Prof.","Rep.","Reps.","Rev.","Sen.","Sens.","Sgt.","Sr.","St.","a.k.a.","c.f.","i.e.","e.g.","vs.","v.","Jan.","Feb.","Mar.","Apr.","Mar.","Jun.","Jul.","Aug.","Sept.","Oct.","Nov.","Dec."],LEX_WARN:"A minimal Lexicon is currently in use. For word features outside the lexicon, use a larger version of RiTa.",LTS_WARN:"No LTS-rules found: features/tagging may be inaccurate!",INFINITIVE:1,GERUND:2,IMPERATIVE:3,BARE_INFINITIVE:4,SUBJUNCTIVE:5,SILENT:!1,LANCASTER:"Lancaster",PORTER:"Porter",PLING:"Pling",NON_BREAKING_SPACE:"",PARAGRAPH_BREAK:"

",LINE_BREAK:"
",STOP_WORDS:[".",",","the","and","a","of",'"',"in","i",":","you","is","to","that",")","(","it","for","on","!","have","with","?","this","be","...","not","are","as","was","but","or","from","my","at","if","they","your","all","he","by","one","me","what","so","can","will","do","an","about","we","just","would","there","no","like","out","his","has","up","more","who","when","don't","some","had","them","any","their","it's","only",";","which","i'm","been","other","were","how","then","now","her","than","she","well","also","us","very","because","am","here","could","even","him","into","our","much","too","did","should","over","want","these","may","where","most","many","those","does","why","please","off","going","its","i've","down","that's","can't","you're","didn't","another","around","must","few","doesn't","every","yes","each","maybe","i'll","away","doing","oh","else","isn't","he's","there's","hi","won't","ok","they're","yeah","mine","we're","what's","shall","she's","hello","okay","here's","-","less"],stemmers:{},random:function(){var T=Math.random();return arguments.length?1===arguments.length?T*arguments[0]:T*(arguments[1]-arguments[0])+arguments[0]:T},randomItem:function(T){return T[Math.floor(Math.random()*T.length)]},distance:function(T,E,S,A){var e=T-S,n=E-A;return Math.sqrt(e*e+n*n)},getPosTags:function(T,E){return E?tagForWordNet(T):tagForPENN(T)},getPosTagsInline:function(T,A){if(!T||!T.length)return E;A=A||"/",T=is(T,S)?RiTa.tokenize(T):T;for(var e=E,n=RiTa.getPosTags(T),t=0;t\"'’]*)\\s*$/g,"$1 $2$3 "),T=T.replace(/([\[\](){}<>])/g," $1 "),T=T.replace(/--/g," -- "),T=T.replace(/$/g,SP),T=T.replace(/^/g,SP),T=T.replace(/([^'])' | '/g,"$1 ' "),T=T.replace(/ \u2018/g," ‘ "),T=T.replace(/'([SMD]) /g," '$1 "),RiTa.SPLIT_CONTRACTIONS&&(T=T.replace(/([Cc])an['’]t/g,"$1an not"),T=T.replace(/([Dd])idn['’]t/g,"$1id not"),T=T.replace(/([CcWw])ouldn['’]t/g,"$1ould not"),T=T.replace(/([Ss])houldn['’]t/g,"$1hould not"),T=T.replace(/ ([Ii])t['’]s/g," $1t is"),T=T.replace(/n['’]t /g," not "),T=T.replace(/['’]ve /g," have "),T=T.replace(/['’]re /g," are ")),T=T.replace(/ ([A-Z]) \\./g," $1. "),T=T.replace(/\\s+/g,SP),T=T.replace(/^\\s+/g,E),trim(T).split(/\s+/)):[]},untokenize:function(T,S){S=S||SP;for(var A,e,n,t,r,i,s,a=/^[,\.\;\:\?\!\)""“”\u2019‘`']+$/,o=0,h=/^[\(""“”\u2019‘`']+$/,l=/^[\u2019‘`']+$/,c=/^[\u2019']+$/,u=!1,p=T.length&&h.test(T[0]),b=T[0]||E,d=!1,v=1;v-1;)T=T.replace(S,S.replace(".",n)),A=T.indexOf(S);return T}var e=this.ABBREVIATIONS,n="___",t=new RegExp(n,"g"),r=A(T).match(/(\S.+?[.!?])(?=\s+|$)/g);return T.length&&r&&r.length?S(r):[T]},isAbbreviation:function(T,E){var S=function(T){return T&&T.length?T.substring(0,1).toUpperCase()+T.substring(1):T};return E=E||!1,T=E?T:S(T),inArray(this.ABBREVIATIONS,T)},loadString:function(T,E,A){var e=function(T,E,S){var A="",e=S||BN,n=/.+?:\/\/.+/.test(T),t=this;if(n){var r=function(S){S.on("data",function(T){A+=T}),S.on("error",function(T){throw T}),S.on("end",function(){A=A.toString("utf-8").replace(/[\r\n]+/g,e).trim(),t.fireDataLoaded(T,E,A)})},i=require("http").request(T,r);i.on("socket",function(T){T.setTimeout(5e3),T.on("timeout",function(){throw i.abort(),Error("[RiTa] loadString timed-out and aborted request")})}),i.end()}else{var s=require("fs");s.readFile(T,function(S,A){if(S||!A)throw err("[Node] Error reading file: "+T+BN+S),S;A=A.toString("utf-8").replace(/[\r\n]+/g,e).trim(),t.fireDataLoaded(T,E,A)})}};if(ok(T,S),isNode())return e.apply(this,arguments);var n=this,t="",r=new XMLHttpRequest;return r.addEventListener("error",function(){console.error("[RiTa] loadStrings() unable to load "+T)}),r.open("GET",T,!0),r.onreadystatechange=function(){if(4===r.readyState)if(200===r.status){var S=[],A=r.responseText.match(/[^\r\n]+/g);for(var e in A)S[e]=A[e];S=S.join(BN),n.fireDataLoaded(T,E,S)}else console.error("[RiTa] loadString() unable to load: "+T)},r.send(null),t},loadStrings:function(T,E,A){var e=function(T,E){function S(S){S=S.toString("utf-8").trim();var A=S.split(/(\r\n|\n)/gm);n.fireDataLoaded(T,E,A)}var A="",e=/.+?:\/\/.+/.test(T),n=this;if(e){var t=function(T){T.on("data",function(T){A+=T}),T.on("error",function(T){throw T}),T.on("end",function(){S(A)})},r=require("http").request(T,t);r.on("socket",function(T){T.setTimeout(5e3),T.on("timeout",function(){throw r.abort(),Error("[RiTa] loadString timed-out and aborted request")})}),r.end()}else{var i=require("fs");i.readFile(T,function(E,A){if(E||!A)throw err("[Node] Error reading file: "+T+BN+E),E;S(A)})}};if(ok(T,S),isNode())return e.apply(this,arguments);var n=this,t="",r=new XMLHttpRequest;return r.addEventListener("error",function(){console.error("[RiTa] loadStrings() unable to load "+T)}),r.open("GET",T,!0),r.onreadystatechange=function(){if(4===r.readyState)if(200===r.status){var S=r.responseText.match(/[^\r\n]+/g),A=[];for(var e in S)A[e]=S[e];n.fireDataLoaded(T,E,A)}else console.error("[RiTa] loadString() unable to load: "+T)},r.send(null),t},fireDataLoaded:function(T,E,A){return E?E(A,T):RiTaEvent({name:"RiTaLoader",urls:is(T,S)?[T]:T},DATA_LOADED,A)._fire()},isQuestion:function(T){for(var E=RiTa.tokenize(T),S=0;S1&&A.indexOf("`'\"([{<")!=-1&&RiTa.isAbbreviation(T.substring(1)))return!1;if(e>2&&("'"==T.charAt(0)&&"'"==T.charAt(1)||"`"==T.charAt(0)&&"`"==T.charAt(1))&&RiTa.isAbbreviation(T.substring(2)))return!1;var n=E.length,t=T.charAt(e-1),r=e>1?T.charAt(e-2):SP,i=e>2?T.charAt(e-3):SP,s=E.charAt(0),a=n>1?E.charAt(1):SP,o=n>2?E.charAt(2):SP;return(s==s.toUpperCase()||a==a.toUpperCase()&&s.indexOf("`'\"([{<")!=-1||o==o.toUpperCase()&&("`"==s&&"`"==a||"'"==s&&"'"==a)||"_"==E||"<"==s)&&("?"==t||"!"==t||r.indexOf("?!.")!=-1&&t.indexOf("\"'}>)")!=-1||i.indexOf("?!.")!=-1&&"'"==r&&"'"==t||"."==t&&((2!=e||r!=r.toUpperCase())&&(4!=e||"."!=i||r!=r.toUpperCase()||T.charAt(0)!=T.charAt(0).toUpperCase())))},isW_Question:function(T){for(var E=RiTa.tokenize(T),S=0;S").replace(/&/g,"&").replace(/"/g,'"');return String.fromCharCodePoint=function(){for(var T=[],E=0;E>10&1023)+55296),T.push((1023&S)+56320))}return String.fromCharCode.apply(String,T)},E=E.replace(/&#(\d+);/g,function(T,E){return String.fromCharCodePoint(parseInt(E,10))}).replace(/&#x([0-9a-f]+);/gi,function(T,E){return String.fromCharCodePoint(parseInt(E,16))})},randomOrdering:function(T){var E=[];if(T){for(var S=0;S|+=;:‘’“”]",e=new RegExp("^"+A+"+|"+A+"+$","g");return T===E?E:T.replace(e,E)},stripPunctuation:function(T){return T===E?E:T.replace(PUNCTUATION_CLASS,E)},isPunctuation:function(T){return!(!T||!T.length)&&ONLY_PUNCT.test(T)},hasPunctuation:function(T){return!(!T||!T.length)&&ONLY_PUNCT.test(T)},env:function(){return isNode()?RiTa.NODE:RiTa.JS},chomp:function(T){return T.replace(/\s+$|^\s+/g,E)},getPhonemes:function(T){return RiString(T).analyze().get(RiTa.PHONEMES)},getStresses:function(T){return RiString(T).analyze().get(RiTa.STRESSES)},getSyllables:function(T){return RiString(T).analyze().get(RiTa.SYLLABLES)},getWordCount:function(T){return RiTa.tokenize(T).length},stem:function(T,E){if(E=E||"Porter","Lancaster"!=E&&"Porter"!=E&&"Pling"!=E&&err("Bad stemmer type: "+E),T.indexOf(SP)<0)return RiTa.stemmers[E](T);T=T.replace(/[^\w]/g,SP).replace(/\s+/g,SP);for(var S=[],A=T.split(SP),e=0;e=E&&t=S&&t=0&&S.push(this.keys[A]);return S},superstrings:function(T){for(var E=[],S=0;S=0&&E.push(this.keys[S]);return E},words:function(){var T,E=arguments,S=!1,A=[];switch(E.length){case 2:is(E[0],B)?(S=E[0],T=is(E[1],R)?E[1]:new RegExp(E[1])):(S=E[1],T=is(E[0],R)?E[0]:new RegExp(E[0]));break;case 1:if(is(E[0],B))return E[0]?shuffle(this.keys):this.keys;T=is(E[0],R)?E[0]:new RegExp(E[0]);break;case 0:return this.keys}for(var e=0;e-1},_isConsonant:function(T){return typeof T===S&&1===T.length&&RiTa.VOWELS.indexOf(T)<0&&/^[a-z\u00C0-\u00ff]+$/.test(T)},_isPlural:function(T){if(NULL_PLURALS.applies(T))return!0;var E=RiTa.stem(T,"Pling");if(E===T)return!1;var S=RiTa.singularize(T),A=this.data[S];if(A&&2===A.length){for(var e=A[1].split(SP),n=0;n0?A:EA},alliterations:function(T,E,S){if(T.indexOf(" ")>-1)return[];if(this._isVowel(T.charAt(0)))return[];E=E||4;for(var A,e=[],n=this._firstPhoneme(this._firstStressedSyllable(T,S)),t=0;t=E&&e.push(this.keys[t])}return shuffle(e)},isAlliteration:function(T,E,S){if(!strOk(T)||!strOk(E)||T.indexOf(" ")>-1||E.indexOf(" ")>-1)return!1;var A=this._firstPhoneme(this._firstStressedSyllable(T,S)),e=this._firstPhoneme(this._firstStressedSyllable(E,S));return!this._isVowel(A.charAt(0))&&!this._isVowel(e.charAt(0))&&(strOk(A)&&strOk(e)&&A===e)},_firstSyllable:function(T,S){var A=this._getRawPhones(T,S);if(!strOk(A))return E;"URL"===T&&console.log(A);var e=A.split(" ");return e[0]},_firstStressedSyllable:function(T,S){var A,e,n=this._getRawPhones(T,S),t=-1;if(!strOk(n))return E;if(t=n.indexOf(RiTa.STRESSED),t<0)return E;for(A=n.charAt(--t);" "!=A;){if(--t<0){t=0;break}A=n.charAt(t)}return e=0===t?n:trim(n.substring(t)),t=e.indexOf(" "),t<0?e:e.substring(0,t)},isVerb:function(T){return this._checkType(T,PosTagger.VERBS)},isNoun:function(T){var E=this._checkType(T,PosTagger.NOUNS);if(!E){var S=RiTa.singularize(T);S!==T&&(E=this._checkType(S,PosTagger.NOUNS))}return E},isAdverb:function(T){return this._checkType(T,PosTagger.ADV)},isAdjective:function(T){return this._checkType(T,PosTagger.ADJ)},size:function(){var T=this.keys.length;return RiTa.LEX_WARN&&0===T&&(warn(RiTa.LEX_WARN),RiTa.LEX_WARN=0),T},_checkType:function(T,E){if(T&&T.indexOf(SP)!=-1)throw Error("[RiTa] _checkType() expects a single word, found: "+T);var S=this._getPosArr(T);RiTa.LEX_WARN&&S.length<1&&this.size()<=1e3&&(warn(RiTa.LEX_WARN),RiTa.LEX_WARN=0);for(var A=0;A-1)return!0;return!1},_getSyllables:function(T){if(!strOk(T))return E;for(var S=RiTa.tokenize(T),A=[],e=0;e-1?RiTa.STRESSED:RiTa.UNSTRESSED;i>0&&(s="/"+s),n.push(s)}}return n.join(SP).replace(/ \//g,"/")},lexicalData:function(T){return 1===arguments.length?(this.data=T,this):this.data},_lookupRaw:function(T){if(T=T&&T.toLowerCase(),this.data&&this.data[T])return this.data[T]},_getRawPhones:function(T,S){var A,e,n=this._lookupRaw(T);return S=S||!1,(n===undefined||S&&!RiTa.SILENT&&!RiLexicon.SILENCE_LTS)&&(e=this._letterToSound(),A=e&&e.getPhones(T),A&&A.length)?RiString._syllabify(A):n&&2===n.length?n[0]:E},_getPosData:function(T){var S=this._lookupRaw(T);return S&&2===S.length?S[1]:E},_getPosArr:function(T){var E=this._getPosData(T);return strOk(E)?E.split(SP):EA},_getBestPos:function(T){var E=this._getPosArr(T);return E.length>0?E[0]:[]},_firstPhoneme:function(T){if(!strOk(T))return E;var S=T.split(RiTa.PHONEME_BOUNDARY);return S?S[0]:E},_firstConsonant:function(T){if(!strOk(T))return E;var S=T.split(RiTa.PHONEME_BOUNDARY);if(S)for(var A=0;A0)};switch("string"==typeof i[0]&&(i[0]=trim(i[0]).toLowerCase(),t="nns"===i[0],"v"===i[0]&&(i[0]="vb"),"r"===i[0]&&(i[0]="rb"),"a"===i[0]&&(i[0]="jj"),"n"!==i[0]&&"nns"!==i[0]||(i[0]="nn")),i.length){case 2:for(T=0;T1&&!A[1]),this.allowDuplicates=!(A.length>2&&!A[2]),this.printIgnoredText=!1},_initArgs:function(){var T=arguments,E=get(T[0]);return!T.length||E!==O&&"global"!==E&&"window"!==E?T:this._initArgs.apply(this,Array.prototype.slice.call(T,1))},getProbability:function(T){this.root||err("Model not initd: null root!");var E=is(T,S)?this.root.lookup(T):this._findNode(T);return E?E.probability():0},getProbabilities:function(T){is(T,S)&&(T=[T]),T.length>this.N&&(T=T.slice(Math.max(0,T.length-(this.N-1)),T.length));var E={},A=this._findNode(T);if(!A)return{};for(var e=A.childNodes(),n=0;nthis.N&&err("Sum of pre.length && post.length must be < N, was "+(T.length+E.length)),S=this._findNode(T),!S)return null;n=S.childNodes();for(var r=0;r-1)return e}return n>=t&&err(BN+"RiMarkov failed to complete after "+n+" attempts.You may need to add more text to your model..."+BN),e},generateTokens:function(T){var E,S=0,A=500,e=[],n=[];T:for(;++S0)throw Error("sentenceAware() takes no arguments, instead use the constructor RiMarkov(n, recognizeSentences);");return this.isSentenceAware},print:function(){return console&&console.log(this.root.asTree(!1)),this},ready:function(T){return this.size()>0},loadFrom:function(T,E,e,n){var t=this;is(T,S)||ok(T,A),is(E,F)?(n=E,E=undefined):is(e,F)&&(n=e,e=undefined),RiTa.loadStrings(T,function(T){T=T.join(BN),t.loadText(T,E,e),n&&is(n,F)&&n(T)})},loadText:function(T,E,A,e){ok(T,S),this.rawText+=T,E=Math.round(E||1);var n=this.isSentenceAware?this._loadSentences(T,E,e):this.loadTokens(RiTa.tokenize(T,A),E);return n},loadTokens:function(T,E){E=Math.round(E||1),this.root.count+=T.length;for(var S,A=0;A=this.maxSentenceLength&&(E=this._getSentenceStart(),S=E.token+SP,t=1),E.isLeaf())E=this._tracePathFromRoot(E);else if(E=this._nextNodeForNode(E),E.isSentenceStart){if(t>=this.minSentenceLength){var r=RiTa.untokenize(S.trim().split(/\s+/));r=r.replace(/(.)\( /,"$1 ("),this._validateSentence(r)&&(A.indexOf(r)<0&&A.push(r),n+=e,e=0)}E=this._getSentenceStart(),S=E.token+SP,t=1}else if(t++,S+=E.token+SP,++e>=RiMarkov.MAX_GENERATION_ATTEMPTS){this._onGenerationIncomplete(n+=e,A.length);break}return A},_validateSentence:function(T){var E=RiTa.tokenize(T),S=E[0],A=E[E.length-1];if(!S.match(/[A-Z]\S*/))return this.printIgnoredText&&log("Skipping: bad first char in '"+T+"'"),!1;if(!A.match(/[!?.]/))return this.printIgnoredText&&log("Bad last token: '"+A+"' in: "+T),!1;if(!this.allowDuplicates&&(this.isSentenceAware||err("Invalid state: allowDuplicates must be true when not generating sentences"),this.rawText.indexOf(T)>-1))return++this.skippedDups>=RiMarkov.MAX_GENERATION_ATTEMPTS&&(this.allowDuplicates=!0,this.skippedDups=0),this.printIgnoredText&&console.log("Ignoring duplicate: "+T),!1;var e=T.split(/\s+/);return!RiTa.isAbbreviation(e[e.length-1])},_tracePathFromRoot:function(T){T.pathFromRoot(this.pathTrace),this.pathTrace.pop();for(var E=this.root;this.pathTrace.length;){var S=this.pathTrace.pop();E=E.lookup(S)}return E},_nextNodeForArr:function(T){for(var E=Math.max(0,T.length-(this.N-1)),S=this.root.lookup(T[E++]),A=E;A0&&(extend(t[t.length-1][3],o),S&&log(" tack: "+o+" -> len="+t[t.length-1][3].length+" ["+t[t.length-1][3]+"]"));var u=[[a],h,[s],[]];t.push(u),n=[]}else{if(!inArray(RiString._phones.consonants,s)&&" "!=s)throw Error("Invalid phoneme: "+s);n.push(s)}}return n.length>0&&(0===t.length?t.push([[A],n,[],[]]):extend(t[t.length-1][3],n)),e(t)},RiString.prototype={init:function(T){is(T,N)&&(T=String.fromCharCode(T)),T=T||"",this.x=0,this.y=0,this.z=0,this._text=T,this._features=undefined},copy:function(){var T=RiString(this._text),E=this.features();if(E){T._features={};for(var S in E)T._features[S]=E[S]}return T},features:function(){return this._features||this.analyze(),this._features},analyze:function(){var T,S,A,e,n,t=E,r=E,i=E,s="/",a="-",o=RiTa.tokenize(this._text),h=RiTa.lexicon;this._features||initFeatureMap(this),this._features.tokens=o.join(SP),this._features.pos=RiTa.getPosTags(this._text).join(SP);for(var l=0,c=o.length;l0?(o[l].match(/[a-zA-Z]+/)&&log("[RiTa] Used LTS-rules for '"+o[l]+"'"),S=RiString._syllabify(e)):(S=o[l],n=!0)),t+=S.replace(/[0-2]/g,E).replace(/ /g,a)+SP,r+=S.replace(/ /g,s).replace(/1/g,E)+SP,n)i+=o[l];else{T=S.split(SP);for(var u=0;u-1?RiTa.STRESSED:RiTa.UNSTRESSED,u-1&&!this._features.hasOwnProperty(T)&&(this.analyze(),E=this._features[T]),E},set:function(T,E){return this._features||(this._features={}),this._features[T]=E,this},endsWith:function(T){return endsWith(this._text,T)},equals:function(T){return is(T.text,F)&&T.text()===this._text},equalsIgnoreCase:function(T){return typeof T===S?T.toLowerCase()===this._text.toLowerCase():T.text().toLowerCase()===this._text.toLowerCase()},text:function(T){return arguments.length>0?(this._text=T,initFeatureMap(this),this):this._text},pos:function(){for(var T=RiTa.tokenize(this._text),E=PosTagger.tag(T),S=0,A=E.length;S=S.length?E:S[T]},wordCount:function(){return this._text.length?this.words().length:0},words:function(){return RiTa.tokenize(this._text)},indexOf:function(T,E){return this._text.indexOf(T,E)},lastIndexOf:function(T,E){return this._text.lastIndexOf(T,E)},length:function(){ return this._text.length},match:function(T){return this._text.match(T)||[]},slice:function(T,S){return this._text.slice(T,S)||E},insertChar:function(T,E){var S=this.text();if(T>S.length||T<-S.length)return warn("RiString.insertChar: bad index="+T),this;T=T<0?T+=S.length:T;var A=S.substring(0,T),e=S.substring(T);return E&&(A+=E),this.text(A+e)},removeChar:function(T){var E=this.text();return T>E.length||T<-E.length?(warn("RiString.removeChar: bad index="+T),this):(T=T<0?T+=E.length:T,this.text(this._text.substring(0,T).concat(this._text.substring(T+1))),this)},replaceChar:function(T,E){var S=this.text();if(T>S.length||T<-S.length)return warn("RiString.replaceChar: bad index="+T),this;T=T<0?T+=S.length:T,S=this.text();var A=S.substring(0,T),e=S.substring(T+1);return E&&(A+=E),this.text(A+e)},replaceFirst:function(T,E){if(T&&!is(T,S)&&T.global){var A="";T.ignoreCase&&(A+="i"),T.multiline&&(A+="m"),T.sticky&&(A+="y"),T=new RegExp(T.source,A)}return this._text=this._text.replace(T,E),this},replaceAll:function(T,E){var A="g";return T&&(E||""===E)&&(!is(T,S)&&T.source?(T.ignoreCase&&(A+="i"),T.multiline&&(A+="m"),T.sticky&&(A+="y"),T=T.source):T=escapeRegExp(T),this._text=this._text.replace(new RegExp(T,A),E)),this},removeWord:function(T){return this.replaceWord(T,E)},insertWord:function(T,E){var S=this.words();return T<0&&(T+=S.length),E&&E.length>=0&&T>=0&&T=0&&T",RiGrammar.EXEC_PATT=/(.*?)(`[^`]+?\(.*?\);?`)(.*)/,RiGrammar.prototype={init:function(T){this._rules={},this.execDisabled=!1,T&&(is(T,S)||is(T,O)&&typeof T.loadStrings!==F)&&this.load(T)},ready:function(T){return okeys(this._rules).length>0},loadFrom:function(T,E){RiTa.loadStrings(T,function(T){T=T.join(BN),this.load(T),is(E,F)&&E(T)}.bind(this))},load:function(T){if(this.reset(),is(T,S)){if("undefined"!=typeof YAML)try{T=YAML.parse(T)}catch(E){warn("YAML parsing failed, trying JSON")}if(!is(T,O))try{T=JSON.parse(T)}catch(E){var A=E}}if(!A&&is(T,O)){for(var e in T)this.addRule(e,T[e]);return this}if("undefined"!=typeof YAML)err("Grammar appears to be invalid JSON/YAML, please check it! (http://jsonlint.com/ or http://yamllint.com/)",T);else{var n=RiTa.env()===RiTa.NODE,t=n?"require":"include",r=n?"YAML = require('yamljs')":'';err("Grammar appears to be invalid JSON, please check it at http://jsonlint.com/. If you are using YAML, be sure to "+t+" yamljs (https://github.com/jeremyfa/yaml.js), e.g. "+r,T)}},addRule:function(T,E,S){var e=!1;S=S||1,e&&log('addRule: "'+T+'" : "'+E+'" ['+get(E)+"]");var n=E;is(E,A)||(n=E.split(OR_PATT));for(var t=0;t-1)return s}err("RiGrammar failed to complete after "+r+" tries"+BN)},expand:function(T){return this.expandFrom(RiGrammar.START_RULE,T)},expandFrom:function(rule,context){var expandRule=function(T,S){var A,e,n,t,r,i=0;i&&log("expandRule("+S+")");for(var s in T._rules)if(A=T._rules[s],i&&log(" name="+s+" entry="+JSON.stringify(A)+" prod="+S+(e?" idx="+e:"")),e=S.indexOf(s),e>=0)return i&&log("matched: "+s),n=S.substring(0,e)||E,t=T.doRule(s)||E,r=S.substring(e+s.length)||E,i&&log(" pre="+n+" expanded="+t+" post="+r+" result="+n+t+r),n+t+r;return null},Scope=function(context){"use strict";if(this.names=[],this.eval=function(s){return eval(s)},this.put=function(T,E){var S="(function() {\n";S+="var "+T+" = "+E+";\n",S+="return function(str) {return eval(str)};\n})()",this.eval=this.eval(S),this.names.push(T)},context){var scope=this;"function"==typeof context?scope.put(context.name,context):"object"==typeof context&&okeys(context).forEach(function(T){"function"==typeof context[T]&&scope.put(T,context[T])})}},handleExec=function(input,context){if(!input||!input.length)return null;var res,exec=input.replace(STRIP_TICKS,"$1");try{return res=eval(exec),res?res+E:null}catch(e){if(context)try{return res=new Scope(context).eval(exec),res?res+"":null}catch(e){}}return input},countTicks=function(T){for(var E=0,S=0;S2){if(theCall=parts[2],2!=countTicks(theCall))return warn("Unable to parse recursive exec: "+theCall+"..."),null;if(callResult=handleExec(theCall,context),!callResult)break;rule=parts[1]+callResult,parts.length>3&&(rule+=parts[3])}}}return tries>=maxIterations&&log("[WARN] max number of iterations reached: "+maxIterations),RiTa.unescapeHTML(rule)}};var callbacksDisabled=!1,RiTaEvent=makeClass();RiTaEvent.ID=0,RiTaEvent.prototype={init:function(T,E,A){is(T,O)||ok(T,S),this._id=++RiTaEvent.ID,this._data=A,this._source=T,this._type=E||RiTa.UNKNOWN},toString:function(){var T="RiTaEvent[#"+this._id+" type=("+this._type+") source="+this._source.toString();return T+=this._data?" data-length="+this._data.toString().length:T+=" data=null",T+"]"},isType:function(T){return this._type===T},_fire:function(T){if(T=T||window.onRiTaEvent,T&&is(T,F))try{return T(this),this}catch(E){callbacksDisabled=!0;var A="RiTaEvent: error calling '"+T+"': "+E;throw is(T,S)&&(A+=" Callback must be a function in JS!"),warn(A),E}}};var StringTokenizer=makeClass();StringTokenizer.prototype={init:function(T,E){this.idx=0,this.text=T,this.delim=E||" ",this.tokens=T.split(E)},nextToken:function(){return this.idx"),E+="{",this.isLeaf()?E+"}":this.childrenToString(this,E,1,T)},isRoot:function(){return!this.parent},isLeaf:function(){return 0===this.childCount()},probability:function(){return this.count/this.siblingCount()},childNodes:function(T){if(!this.children)return EA;T=is(T,S)?new RegExp(T):T;var E=[];for(var A in this.children){var e=this.children[A];(!T||e&&e.token&&e.token.search(T)>-1)&&E.push(e)}return E},siblingCount:function(){return this.parent||err("Illegal siblingCount on ROOT!"),this.parent.childCount()},childCount:function(){if(!this.children)return 0;var T=0;for(var E in this.children)E&&this.children[E]&&(T+=this.children[E].count);return T},lookup:function(T){return T?(T=typeof T!=S&&T.token?T.token:T,T?this.children[T]:null):null},childrenToString:function(T,E,S,A){var e,n,t,r=T,i=[],s=null,a=BN;A=A||!1;for(t in T.children)i.push(T.children[t]);if(!i.length)return E;for(A&&i.sort(),n=0;n "+r.token+","+s.token),s.isRoot()||(E+=" ["+s.count+",p="+s.probability().toFixed(3)+"]->{"),s.children?E=this.childrenToString(s,E,S+1,A):E+="}"}for(a=BN,n=0;n-1},tag:function(T){var S=[],e=[],n=RiTa.lexicon;T=is(T,A)?T:[T];for(var t=0,r=T.length;t="0"&&T<="9"&&(E="cd"),E},_ct:function(T,E,S){this.DBUG&&console.log("\n Custom("+T+") tagged '"+E+"' -> '"+S+"'\n\n")},_applyContext:function(T,E,S){this.DBUG&&console.log("ac("+T+","+E+","+S+")");for(var A=startsWith,e=endsWith,n=0,t=T.length;n0&&"dt"==E[n-1]&&(A(i,"vb")?(i="nn",r.match(/^.*[^s]s$/)&&(NULL_PLURALS.applies(r)||(i="nns")),this._ct("1a",r,i)):A(i,"rb")&&(i=i.length>2?"jj"+i.charAt(2):"jj",this._ct("1b",r,i))),A(i,"n")&&!S[n]&&isNum(r)&&(i="cd"),n>0&&A(i,"n")&&e(r,"ed")&&!e(r,"eed")&&E[n-1].match(/^(nn|prp)$/)&&(i="vbn"),e(r,"ly")&&(i="rb"),A(i,"nn")&&e(r,"al")&&"mammal"!=r&&(i="jj"),n>0&&A(i,"nn")&&A(E[n-1],"md")&&(i="vb"),A(i,"nn")&&e(r,"ing")&&this.hasTag(S[n],"vb")&&(i="vbg",this._ct(8,r,i)),n>0&&"nns"==i&&this.hasTag(S[n],"vbz")&&E[n-1].match(/^(nn|prp|nnp)$/)&&(i="vbz",this._ct(9,r,i)),A(i,"nn")&&r.charAt(0)===r.charAt(0).toUpperCase()&&(0!=n||1===T.length||0==n&&!this._lexHas("nn",RiTa.singularize(r).toLowerCase()))&&(i=e(i,"s")?"nnps":"nnp",this._ct(10,r,i)),n0&&["nn","prp","cc","nnp"].indexOf(E[n-1])>-1?this._lexHas("vb",RiTa.singularize(r))&&(i="vbz",this._ct(12,r,i)):1!==T.length||S[n].length||!this._lexHas("nn",RiTa.singularize(r))&&this._lexHas("vb",RiTa.singularize(r))&&(i="vbz",this._ct(12,r,i))),("vb"===i||"nn"===i&&this.hasTag(S[n],"vb"))&&n>0&&E[n-1].match(/^(nns|nnps|prp)$/)&&(i="vbp",this._ct(13,r,i)),E[n]=i}return E},_lexHas:function(T,E){for(var E=is(E,A)||[E],S=0;S1:T.length>2&&T.match(/[aeiouy]/)}function E(A,e){var n=A.substr(-1),t=S[n];if(t)for(var r=0;r0||T.indexOf("j")>0||T.indexOf("k")>0||T.indexOf("w")>0||T.indexOf("y")>0||T.indexOf("z")>0||T.indexOf("ou")>0||T.indexOf("sh")>0||T.indexOf("ch")>0||T._endsWith("aus")}function S(T){return T.indexOf("ph")>0||T.indexOf("y")>0&&T._endsWith("nges")}function A(A){if(categoryIRR._arrayContains(A)){var e,n=categoryIRR.indexOf(A);return n%2==0&&(e=categoryIRR[n+1]),e}return categoryON_A._arrayContains(A)?T(A,"a")+"on":categoryUM_A._arrayContains(A)?T(A,"a")+"um":categoryIX_ICES._arrayContains(A)?T(A,"ices")+"ix":categoryO_I._arrayContains(A)?T(A,"i")+"o":categorySE_SES._arrayContains(A)?T(A,"s"):categoryIS_ES._arrayContains(A)||A._endsWith("theses")?T(A,"es")+"is":categoryUS_I._arrayContains(A)?T(A,"i")+"us":A._endsWith("uses")&&(categoryUS_I._arrayContains(T(A,"uses")+"i")||"genuses"===A||"corpuses"===A)?T(A,"es"):categoryEX_ICES._arrayContains(A)?T(A,"ices")+"ex":A._endsWith("ois")||A._endsWith("itis")||category00._arrayContains(A)||categoryICS._arrayContains(A)?A:A._endsWith("ina")?T(A,"en"):A._endsWith("ae")&&"pleae"!==A?T(A,"e"):A._endsWith("ata")?T(A,"ta"):A._endsWith("trices")?T(A,"trices")+"trix":!A._endsWith("us")||A._endsWith("eaus")||A._endsWith("ieus")||E(A)||categoryU_US._arrayContains(A)?A._endsWith("teeth")?T(A,"teeth")+"tooth":A._endsWith("geese")?T(A,"geese")+"goose":A._endsWith("feet")?T(A,"feet")+"foot":A._endsWith("zoa")?T(A,"zoa")+"zoon":A._endsWith("men")?T(A,"men")+"man":A._endsWith("inis")?T(A,"inis")+"ini":A._endsWith("children")?T(A,"ren"):A._endsWith("eaux")?T(A,"x"):A._endsWith("ieux")?T(A,"x"):A._endsWith("nges")&&S(A)?T(A,"nges")+"nx":A._endsWith("shes")||A._endsWith("ches")&&!categoryCHE_CHES._arrayContains(A)?T(A,"es"):!A._endsWith("sses")||categorySSE_SSES._arrayContains(A)||A._endsWith("mousses")?A._endsWith("xes")&&"axes"!==A?T(A,"es"):A._endsWith("nives")||A._endsWith("lives")&&!A._endsWith("olives")||A._endsWith("wives")?T(A,"ves")+"fe":A._endsWith("alves")&&!A._endsWith("valves")||A._endsWith("olves")&&!A._endsWith("solves")||A._endsWith("eaves")&&!A._endsWith("heaves")&&!A._endsWith("weaves")||A._endsWith("arves")||A._endsWith("shelves")||A._endsWith("selves")?T(A,"ves")+"f":A._endsWith("ies")&&!categoryIE_IES._arrayContains(A)?T(A,"ies")+"y":A._endsWith("oes")&&!categoryOE_OES._arrayContains(A)?T(A,"es"):A._endsWith("ses")||A._endsWith("zes")?T(A,"es"):!A._endsWith("s")||A._endsWith("ss")||A._endsWith("is")?A:T(A,"s"):T(A,"es"):A}return function(T){return A(T.toLowerCase())}}(),Array.prototype._arrayContains=function(T){return this.indexOf(T)>-1},String.prototype._endsWith=function(T){return this.indexOf(T,this.length-T.length)!==-1};var MinEditDist={_min3:function(T,E,S){var A=T;return EE)&&A.push(RiTa.untokenize(t))}return A},build:function(){if(!this.words)throw Error("No text in model");this.model={};for(var T=(+new Date,0);T|+=;:\u2018\u2019\u201C\u201D]/g,ONLY_PUNCT=/^[^0-9A-Za-z\s]*$/,DEFAULT_PLURAL_RULE=RE("^((\\w+)(-\\w+)*)(\\s((\\w+)(-\\w+)*))*$",0,"s"),ALL_PUNCT=/^[-[\]{}()*+!?%&.,\\^$|#@<>|+=;:]+$/g,NULL_PLURALS=RE("^(bantu|bengalese|bengali|beninese|boche|bonsai|booze|cellulose|digitalis|mess|moose|burmese|chinese|colossus|congolese|discus|emphasis|expertise|finess|fructose|gabonese|gauze|glucose|grease|guyanese|haze|incense|japanese|javanese|journalese|lebanese|malaise|manganese|mayonnaise|maltese|menopause|merchandise|nitrocellulose|olympics|overuse|paradise|poise|polymerase|portuguese|prose|recompense|remorse|repose|senegalese|siamese|singhalese|innings|sleaze|sinhalese|sioux|sudanese|suspense|swiss|taiwanese|togolese|vietnamese|unease|aircraft|anise|antifreeze|applause|archdiocese|anopheles|apparatus|asparagus|barracks|bellows|bison|bluefish|bob|bourgeois|bream|brill|butterfingers|cargo|carp|catfish|chassis|clothes|chub|cod|codfish|coley|contretemps|corps|crawfish|crayfish|crossroads|cuttlefish|dace|deer|dice|dogfish|doings|dory|downstairs|eldest|earnings|economics|electronics|finnan|firstborn|fish|flatfish|flounder|fowl|fry|fries|works|globefish|goldfish|golf|grand|grief|gudgeon|gulden|haddock|hake|halibut|headquarters|herring|hertz|horsepower|goods|hovercraft|hundredweight|ironworks|jackanapes|kilohertz|kurus|kwacha|ling|lungfish|mackerel|means|megahertz|moorfowl|moorgame|mullet|nepalese|offspring|pampas|parr|pants|patois|pekinese|penn'orth|perch|pickerel|pike|pince-nez|plaice|precis|quid|rand|rendezvous|revers|roach|roux|salmon|samurai|series|seychelles|seychellois|shad|sheep|shellfish|smelt|spacecraft|species|starfish|stockfish|sunfish|superficies|sweepstakes|swordfish|tench|tennis|[a-z]+osis|[a-z]+itis|[a-z]+ness|tobacco|tope|triceps|trout|tuna|tunafish|tunny|turbot|trousers|undersigned|veg|waterfowl|waterworks|waxworks|whiting|wildfowl|woodworm|yen|aries|pisces|forceps|lieder|jeans|physics|mathematics|news|odds|politics|remains|acoustics|aesthetics|aquatics|basics|ceramics|classics|cosmetics|dialectics|dynamics|ethics|harmonics|heroics|mechanics|metrics|optics|physics|polemics|pyrotechnics|surroundings|thanks|statistics|goods|aids|wildlife)$",0),SINGULAR_RULES=[NULL_PLURALS,RE("whizzes",3),RE("^(buses|octopuses)$",2),RE("(houses|horses|cases)$",1),RE("^(toes|wheezes|oozes)$",1),RE("(men|women)$",2,"an"),RE("^[lm]ice$",3,"ouse"),RE("^children",3),RE("^(appendices|indices|matrices)",3,"x"),RE("^(data)$",1,"um"),RE("people",4,"rson"),RE("^meninges|phalanges$",3,"x"),RE("schemata$",2,"s"),RE("^corpora$",3,"us"),RE("^(curi|formul|vertebr|larv|uln|alumn|signor|alg|minuti)ae$",1),RE("^apices|cortices$",4,"ex"),RE("femora",3,"ur"),RE("^(medi|millenni|consorti|sept|memorabili)a$",1,"um"),RE("concerti",1,"o")],C="[bcdfghjklmnpqrstvwxyz]",VL="[lraeiou]",PLURAL_RULES=[RE("prognosis",2,"es"),NULL_PLURALS,RE("^(piano|photo|solo|ego|tobacco|cargo|golf|grief)$",0,"s"),RE("^(wildlife)$",0,"s"),RE("^concerto$",1,"i"),RE(C+"o$",0,"es"),RE(C+"y$",1,"ies"),RE("^ox$",0,"en"),RE("^(stimul|alumn|termin)us$",2,"i"),RE("^corpus$",2,"ora"),RE("(xis|sis)$",2,"es"),RE("whiz$",0,"zes"),RE("([zsx]|ch|sh)$",0,"es"),RE(VL+"fe$",2,"ves"),RE(VL+"f$",1,"ves"),RE("(eu|eau)$",0,"x"),RE("(man|woman)$",2,"en"),RE("money$",2,"ies"),RE("person$",4,"ople"),RE("motif$",0,"s"),RE("^meninx|phalanx$",1,"ges"),RE("schema$",0,"ta"),RE("^bus$",0,"ses"),RE("child$",0,"ren"),RE("^(curi|formul|vertebr|larv|uln|alumn|signor|alg|minuti)a$",0,"e"),RE("^(maharaj|raj|myn|mull)a$",0,"hs"),RE("^aide-de-camp$",8,"s-de-camp"),RE("^apex|cortex$",2,"ices"),RE("^weltanschauung$",0,"en"),RE("^lied$",0,"er"),RE("^tooth$",4,"eeth"),RE("^[lm]ouse$",4,"ice"),RE("^foot$",3,"eet"),RE("femur",2,"ora"),RE("goose",4,"eese"),RE("(human|german|roman)$",0,"s"),RE("^(monarch|loch|stomach)$",0,"s"),RE("^(taxi|chief|proof|ref|relief|roof|belief)$",0,"s"),RE("^(co|no)$",0,"'s"),RE("^blond$",0,"es"),RE("^(medi|millenni|consorti|sept|memorabili)um$",2,"a"),RE("^(memorandum|bacterium|curriculum|minimum|maximum|referendum|spectrum|phenomenon|criterion)$",2,"a"),RE("^(appendix|index|matrix)",2,"ices")],ANY_STEM="^((\\w+)(-\\w+)*)(\\s((\\w+)(-\\w+)*))*$",CONS="[bcdfghjklmnpqrstvwxyz]",VERBAL_PREFIX="((be|with|pre|un|over|re|mis|under|out|up|fore|for|counter|co|sub)(-?))",AUXILIARIES=["do","have","be"],MODALS=["shall","would","may","might","ought","should"],SYMBOLS=["!","?","$","%","*","+","-","="],ING_FORM_RULES=[RE(CONS+"ie$",2,"ying",1),RE("[^ie]e$",1,"ing",1),RE("^bog-down$",5,"ging-down",0),RE("^chivy$",1,"vying",0),RE("^trek$",1,"cking",0),RE("^bring$",0,"ing",0),RE("^be$",0,"ing",0),RE("^age$",1,"ing",0),RE("(ibe)$",1,"ing",0)],PAST_PARTICIPLE_RULES=[RE(CONS+"y$",1,"ied",1),RE("^"+VERBAL_PREFIX+"?(bring)$",3,"ought",0),RE("^"+VERBAL_PREFIX+"?(take|rise|strew|blow|draw|drive|know|give|arise|gnaw|grave|grow|hew|know|mow|see|sew|throw|prove|saw|quartersaw|partake|sake|shake|shew|show|shrive|sightsee|strew|strive)$",0,"n",0),RE("^"+VERBAL_PREFIX+"?[gd]o$",0,"ne",1),RE("^(beat|eat|be|fall)$",0,"en",0),RE("^(have)$",2,"d",0),RE("^"+VERBAL_PREFIX+"?bid$",0,"den",0),RE("^"+VERBAL_PREFIX+"?[lps]ay$",1,"id",1),RE("^behave$",0,"d",0),RE("^"+VERBAL_PREFIX+"?have$",2,"d",1),RE("(sink|slink|drink|shrink|stink)$",3,"unk",0),RE("(([sfc][twlp]?r?|w?r)ing|hang)$",3,"ung",0),RE("^"+VERBAL_PREFIX+"?(shear|swear|bear|wear|tear)$",3,"orn",0),RE("^"+VERBAL_PREFIX+"?(bend|spend|send|lend)$",1,"t",0),RE("^"+VERBAL_PREFIX+"?(weep|sleep|sweep|creep|keep$)$",2,"pt",0),RE("^"+VERBAL_PREFIX+"?(sell|tell)$",3,"old",0),RE("^(outfight|beseech)$",4,"ought",0),RE("^bethink$",3,"ought",0),RE("^buy$",2,"ought",0),RE("^aby$",1,"ought",0),RE("^tarmac",0,"ked",0),RE("^abide$",3,"ode",0),RE("^"+VERBAL_PREFIX+"?(speak|(a?)wake|break)$",3,"oken",0),RE("^backbite$",1,"ten",0),RE("^backslide$",1,"den",0),RE("^become$",3,"ame",0),RE("^begird$",3,"irt",0),RE("^outlie$",2,"ay",0),RE("^rebind$",3,"ound",0),RE("^relay$",2,"aid",0),RE("^shit$",3,"hat",0),RE("^bereave$",4,"eft",0),RE("^foreswear$",3,"ore",0),RE("^overfly$",1,"own",0),RE("^beget$",2,"otten",0),RE("^begin$",3,"gun",0),RE("^bestride$",1,"den",0),RE("^bite$",1,"ten",0),RE("^bleed$",4,"led",0),RE("^bog-down$",5,"ged-down",0),RE("^bind$",3,"ound",0),RE("^(.*)feed$",4,"fed",0),RE("^breed$",4,"red",0),RE("^brei",0,"d",0),RE("^bring$",3,"ought",0),RE("^build$",1,"t",0),RE("^come",0),RE("^catch$",3,"ught",0),RE("^chivy$",1,"vied",0),RE("^choose$",3,"sen",0),RE("^cleave$",4,"oven",0),RE("^crossbreed$",4,"red",0),RE("^deal",0,"t",0),RE("^dow$",1,"ught",0),RE("^dream",0,"t",0),RE("^dig$",3,"dug",0),RE("^dwell$",2,"lt",0),RE("^enwind$",3,"ound",0),RE("^feel$",3,"elt",0),RE("^flee$",2,"ed",0),RE("^floodlight$",5,"lit",0),RE("^fly$",1,"own",0),RE("^forbear$",3,"orne",0),RE("^forerun$",3,"ran",0),RE("^forget$",2,"otten",0),RE("^fight$",4,"ought",0),RE("^find$",3,"ound",0),RE("^freeze$",4,"ozen",0),RE("^gainsay$",2,"aid",0),RE("^gin$",3,"gan",0),RE("^gen-up$",3,"ned-up",0),RE("^ghostwrite$",1,"ten",0),RE("^get$",2,"otten",0),RE("^grind$",3,"ound",0),RE("^hacksaw",0,"n",0),RE("^hear",0,"d",0),RE("^hold$",3,"eld",0),RE("^hide$",1,"den",0),RE("^honey$",2,"ied",0),RE("^inbreed$",4,"red",0),RE("^indwell$",3,"elt",0),RE("^interbreed$",4,"red",0),RE("^interweave$",4,"oven",0),RE("^inweave$",4,"oven",0),RE("^ken$",2,"ent",0),RE("^kneel$",3,"elt",0),RE("^lie$",2,"ain",0),RE("^leap$",0,"t",0),RE("^learn$",0,"t",0),RE("^lead$",4,"led",0),RE("^leave$",4,"eft",0),RE("^light$",5,"lit",0),RE("^lose$",3,"ost",0),RE("^make$",3,"ade",0),RE("^mean",0,"t",0),RE("^meet$",4,"met",0),RE("^misbecome$",3,"ame",0),RE("^misdeal$",2,"alt",0),RE("^mishear$",1,"d",0),RE("^mislead$",4,"led",0),RE("^misunderstand$",3,"ood",0),RE("^outbreed$",4,"red",0),RE("^outrun$",3,"ran",0),RE("^outride$",1,"den",0),RE("^outshine$",3,"one",0),RE("^outshoot$",4,"hot",0),RE("^outstand$",3,"ood",0),RE("^outthink$",3,"ought",0),RE("^outgo$",2,"went",0),RE("^overbear$",3,"orne",0),RE("^overbuild$",3,"ilt",0),RE("^overcome$",3,"ame",0),RE("^overfly$",2,"lew",0),RE("^overhear$",2,"ard",0),RE("^overlie$",2,"ain",0),RE("^overrun$",3,"ran",0),RE("^override$",1,"den",0),RE("^overshoot$",4,"hot",0),RE("^overwind$",3,"ound",0),RE("^overwrite$",1,"ten",0),RE("^plead$",2,"d",0),RE("^rebuild$",3,"ilt",0),RE("^red$",3,"red",0),RE("^redo$",1,"one",0),RE("^remake$",3,"ade",0),RE("^resit$",3,"sat",0),RE("^rethink$",3,"ought",0),RE("^rewind$",3,"ound",0),RE("^rewrite$",1,"ten",0),RE("^ride$",1,"den",0),RE("^reeve$",4,"ove",0),RE("^sit$",3,"sat",0),RE("^shoe$",3,"hod",0),RE("^shine$",3,"one",0),RE("^shoot$",4,"hot",0),RE("^ski$",1,"i'd",0),RE("^slide$",1,"den",0),RE("^smite$",1,"ten",0),RE("^seek$",3,"ought",0),RE("^spit$",3,"pat",0),RE("^speed$",4,"ped",0),RE("^spellbind$",3,"ound",0),RE("^spoil$",2,"ilt",0),RE("^spotlight$",5,"lit",0),RE("^spin$",3,"pun",0),RE("^steal$",3,"olen",0),RE("^stand$",3,"ood",0),RE("^stave$",3,"ove",0),RE("^stride$",1,"den",0),RE("^strike$",3,"uck",0),RE("^stick$",3,"uck",0),RE("^swell$",3,"ollen",0),RE("^swim$",3,"wum",0),RE("^teach$",4,"aught",0),RE("^think$",3,"ought",0),RE("^tread$",3,"odden",0),RE("^typewrite$",1,"ten",0),RE("^unbind$",3,"ound",0),RE("^underbuy$",2,"ought",0),RE("^undergird$",3,"irt",0),RE("^undergo$",1,"one",0),RE("^underlie$",2,"ain",0),RE("^undershoot$",4,"hot",0),RE("^understand$",3,"ood",0),RE("^unfreeze$",4,"ozen",0),RE("^unlearn",0,"t",0),RE("^unmake$",3,"ade",0),RE("^unreeve$",4,"ove",0),RE("^unstick$",3,"uck",0),RE("^unteach$",4,"aught",0),RE("^unthink$",3,"ought",0),RE("^untread$",3,"odden",0),RE("^unwind$",3,"ound",0),RE("^upbuild$",1,"t",0),RE("^uphold$",3,"eld",0),RE("^upheave$",4,"ove",0),RE("^waylay$",2,"ain",0),RE("^whipsaw$",2,"awn",0),RE("^withhold$",3,"eld",0),RE("^withstand$",3,"ood",0),RE("^win$",3,"won",0),RE("^wind$",3,"ound",0),RE("^weave$",4,"oven",0),RE("^write$",1,"ten",0),RE("^trek$",1,"cked",0),RE("^ko$",1,"o'd",0),RE("^win$",2,"on",0),RE("e$",0,"d",1),RE("^"+VERBAL_PREFIX+"?(cast|thrust|typeset|cut|bid|upset|wet|bet|cut|hit|hurt|inset|let|cost|burst|beat|beset|set|upset|hit|offset|put|quit|wed|typeset|wed|spread|split|slit|read|run|rerun|shut|shed)$",0)],PAST_TENSE_RULES=[RE("^(reduce)$",0,"d",0),RE("e$",0,"d",1),RE("^"+VERBAL_PREFIX+"?[pls]ay$",1,"id",1),RE(CONS+"y$",1,"ied",1),RE("^(fling|cling|hang)$",3,"ung",0),RE("(([sfc][twlp]?r?|w?r)ing)$",3,"ang",1),RE("^"+VERBAL_PREFIX+"?(bend|spend|send|lend|spend)$",1,"t",0),RE("^"+VERBAL_PREFIX+"?lie$",2,"ay",0),RE("^"+VERBAL_PREFIX+"?(weep|sleep|sweep|creep|keep)$",2,"pt",0),RE("^"+VERBAL_PREFIX+"?(sell|tell)$",3,"old",0),RE("^"+VERBAL_PREFIX+"?do$",1,"id",0),RE("^"+VERBAL_PREFIX+"?dig$",2,"ug",0),RE("^behave$",0,"d",0),RE("^(have)$",2,"d",0),RE("(sink|drink)$",3,"ank",0),RE("^swing$",3,"ung",0),RE("^be$",2,"was",0),RE("^outfight$",4,"ought",0),RE("^tarmac",0,"ked",0),RE("^abide$",3,"ode",0),RE("^aby$",1,"ought",0),RE("^become$",3,"ame",0),RE("^begird$",3,"irt",0),RE("^outlie$",2,"ay",0),RE("^rebind$",3,"ound",0),RE("^shit$",3,"hat",0),RE("^bereave$",4,"eft",0),RE("^foreswear$",3,"ore",0),RE("^bename$",3,"empt",0),RE("^beseech$",4,"ought",0),RE("^bethink$",3,"ought",0),RE("^bleed$",4,"led",0),RE("^bog-down$",5,"ged-down",0),RE("^buy$",2,"ought",0),RE("^bind$",3,"ound",0),RE("^(.*)feed$",4,"fed",0),RE("^breed$",4,"red",0),RE("^brei$",2,"eid",0),RE("^bring$",3,"ought",0),RE("^build$",3,"ilt",0),RE("^come$",3,"ame",0),RE("^catch$",3,"ught",0),RE("^clothe$",5,"lad",0),RE("^crossbreed$",4,"red",0),RE("^deal$",2,"alt",0),RE("^dow$",1,"ught",0),RE("^dream$",2,"amt",0),RE("^dwell$",3,"elt",0),RE("^enwind$",3,"ound",0),RE("^feel$",3,"elt",0),RE("^flee$",3,"led",0),RE("^floodlight$",5,"lit",0),RE("^arise$",3,"ose",0),RE("^eat$",3,"ate",0),RE("^backbite$",4,"bit",0),RE("^backslide$",4,"lid",0),RE("^befall$",3,"ell",0),RE("^begin$",3,"gan",0),RE("^beget$",3,"got",0),RE("^behold$",3,"eld",0),RE("^bespeak$",3,"oke",0),RE("^bestride$",3,"ode",0),RE("^betake$",3,"ook",0),RE("^bite$",4,"bit",0),RE("^blow$",3,"lew",0),RE("^bear$",3,"ore",0),RE("^break$",3,"oke",0),RE("^choose$",4,"ose",0),RE("^cleave$",4,"ove",0),RE("^countersink$",3,"ank",0),RE("^drink$",3,"ank",0),RE("^draw$",3,"rew",0),RE("^drive$",3,"ove",0),RE("^fall$",3,"ell",0),RE("^fly$",2,"lew",0),RE("^flyblow$",3,"lew",0),RE("^forbid$",2,"ade",0),RE("^forbear$",3,"ore",0),RE("^foreknow$",3,"new",0),RE("^foresee$",3,"saw",0),RE("^forespeak$",3,"oke",0),RE("^forego$",2,"went",0),RE("^forgive$",3,"ave",0),RE("^forget$",3,"got",0),RE("^forsake$",3,"ook",0),RE("^forspeak$",3,"oke",0),RE("^forswear$",3,"ore",0),RE("^forgo$",2,"went",0),RE("^fight$",4,"ought",0),RE("^find$",3,"ound",0),RE("^freeze$",4,"oze",0),RE("^give$",3,"ave",0),RE("^geld$",3,"elt",0),RE("^gen-up$",3,"ned-up",0),RE("^ghostwrite$",3,"ote",0),RE("^get$",3,"got",0),RE("^grow$",3,"rew",0),RE("^grind$",3,"ound",0),RE("^hear$",2,"ard",0),RE("^hold$",3,"eld",0),RE("^hide$",4,"hid",0),RE("^honey$",2,"ied",0),RE("^inbreed$",4,"red",0),RE("^indwell$",3,"elt",0),RE("^interbreed$",4,"red",0),RE("^interweave$",4,"ove",0),RE("^inweave$",4,"ove",0),RE("^ken$",2,"ent",0),RE("^kneel$",3,"elt",0),RE("^^know$$",3,"new",0),RE("^leap$",2,"apt",0),RE("^learn$",2,"rnt",0),RE("^lead$",4,"led",0),RE("^leave$",4,"eft",0),RE("^light$",5,"lit",0),RE("^lose$",3,"ost",0),RE("^make$",3,"ade",0),RE("^mean$",2,"ant",0),RE("^meet$",4,"met",0),RE("^misbecome$",3,"ame",0),RE("^misdeal$",2,"alt",0),RE("^misgive$",3,"ave",0),RE("^mishear$",2,"ard",0),RE("^mislead$",4,"led",0),RE("^mistake$",3,"ook",0),RE("^misunderstand$",3,"ood",0),RE("^outbreed$",4,"red",0),RE("^outgrow$",3,"rew",0),RE("^outride$",3,"ode",0),RE("^outshine$",3,"one",0),RE("^outshoot$",4,"hot",0),RE("^outstand$",3,"ood",0),RE("^outthink$",3,"ought",0),RE("^outgo$",2,"went",0),RE("^outwear$",3,"ore",0),RE("^overblow$",3,"lew",0),RE("^overbear$",3,"ore",0),RE("^overbuild$",3,"ilt",0),RE("^overcome$",3,"ame",0),RE("^overdraw$",3,"rew",0),RE("^overdrive$",3,"ove",0),RE("^overfly$",2,"lew",0),RE("^overgrow$",3,"rew",0),RE("^overhear$",2,"ard",0),RE("^overpass$",3,"ast",0),RE("^override$",3,"ode",0),RE("^oversee$",3,"saw",0),RE("^overshoot$",4,"hot",0),RE("^overthrow$",3,"rew",0),RE("^overtake$",3,"ook",0),RE("^overwind$",3,"ound",0),RE("^overwrite$",3,"ote",0),RE("^partake$",3,"ook",0),RE("^"+VERBAL_PREFIX+"?run$",2,"an",0),RE("^ring$",3,"ang",0),RE("^rebuild$",3,"ilt",0),RE("^red",0),RE("^reave$",4,"eft",0),RE("^remake$",3,"ade",0),RE("^resit$",3,"sat",0),RE("^rethink$",3,"ought",0),RE("^retake$",3,"ook",0),RE("^rewind$",3,"ound",0),RE("^rewrite$",3,"ote",0),RE("^ride$",3,"ode",0),RE("^rise$",3,"ose",0),RE("^reeve$",4,"ove",0),RE("^sing$",3,"ang",0),RE("^sink$",3,"ank",0),RE("^sit$",3,"sat",0),RE("^see$",3,"saw",0),RE("^shoe$",3,"hod",0),RE("^shine$",3,"one",0),RE("^shake$",3,"ook",0),RE("^shoot$",4,"hot",0),RE("^shrink$",3,"ank",0),RE("^shrive$",3,"ove",0),RE("^sightsee$",3,"saw",0),RE("^ski$",1,"i'd",0),RE("^skydive$",3,"ove",0),RE("^slay$",3,"lew",0),RE("^slide$",4,"lid",0),RE("^slink$",3,"unk",0),RE("^smite$",4,"mit",0),RE("^seek$",3,"ought",0),RE("^spit$",3,"pat",0),RE("^speed$",4,"ped",0),RE("^spellbind$",3,"ound",0),RE("^spoil$",2,"ilt",0),RE("^speak$",3,"oke",0),RE("^spotlight$",5,"lit",0),RE("^spring$",3,"ang",0),RE("^spin$",3,"pun",0),RE("^stink$",3,"ank",0),RE("^steal$",3,"ole",0),RE("^stand$",3,"ood",0),RE("^stave$",3,"ove",0),RE("^stride$",3,"ode",0),RE("^strive$",3,"ove",0),RE("^strike$",3,"uck",0),RE("^stick$",3,"uck",0),RE("^swim$",3,"wam",0),RE("^swear$",3,"ore",0),RE("^teach$",4,"aught",0),RE("^think$",3,"ought",0),RE("^throw$",3,"rew",0),RE("^take$",3,"ook",0),RE("^tear$",3,"ore",0),RE("^transship$",4,"hip",0),RE("^tread$",4,"rod",0),RE("^typewrite$",3,"ote",0),RE("^unbind$",3,"ound",0),RE("^unclothe$",5,"lad",0),RE("^underbuy$",2,"ought",0),RE("^undergird$",3,"irt",0),RE("^undershoot$",4,"hot",0),RE("^understand$",3,"ood",0),RE("^undertake$",3,"ook",0),RE("^undergo$",2,"went",0),RE("^underwrite$",3,"ote",0),RE("^unfreeze$",4,"oze",0),RE("^unlearn$",2,"rnt",0),RE("^unmake$",3,"ade",0),RE("^unreeve$",4,"ove",0),RE("^unspeak$",3,"oke",0),RE("^unstick$",3,"uck",0),RE("^unswear$",3,"ore",0),RE("^unteach$",4,"aught",0),RE("^unthink$",3,"ought",0),RE("^untread$",4,"rod",0),RE("^unwind$",3,"ound",0),RE("^upbuild$",3,"ilt",0),RE("^uphold$",3,"eld",0),RE("^upheave$",4,"ove",0),RE("^uprise$",3,"ose",0),RE("^upspring$",3,"ang",0),RE("^go$",2,"went",0),RE("^wiredraw$",3,"rew",0),RE("^withdraw$",3,"rew",0),RE("^withhold$",3,"eld",0),RE("^withstand$",3,"ood",0),RE("^wake$",3,"oke",0),RE("^win$",3,"won",0),RE("^wear$",3,"ore",0),RE("^wind$",3,"ound",0),RE("^weave$",4,"ove",0),RE("^write$",3,"ote",0),RE("^trek$",1,"cked",0),RE("^ko$",1,"o'd",0),RE("^bid",2,"ade",0),RE("^win$",2,"on",0),RE("^swim",2,"am",0),RE("^"+VERBAL_PREFIX+"?(cast|thrust|typeset|cut|bid|upset|wet|bet|cut|hit|hurt|inset|let|cost|burst|beat|beset|set|upset|offset|put|quit|wed|typeset|wed|spread|split|slit|read|run|shut|shed|lay)$",0)],PRESENT_TENSE_RULES=[RE("^aby$",0,"es",0),RE("^bog-down$",5,"s-down",0),RE("^chivy$",1,"vies",0),RE("^gen-up$",3,"s-up",0),RE("^prologue$",3,"gs",0),RE("^picknic$",0,"ks",0),RE("^ko$",0,"'s",0),RE("[osz]$",0,"es",1),RE("^have$",2,"s",0),RE(CONS+"y$",1,"ies",1),RE("^be$",2,"is"),RE("([zsx]|ch|sh)$",0,"es",1)],VERB_CONS_DOUBLING=["abat","abet","abhor","abut","accur","acquit","adlib","admit","aerobat","aerosol","agendaset","allot","alot","anagram","annul","appal","apparel","armbar","aver","babysit","airdrop","appal","blackleg","bobsled","bur","chum","confab","counterplot","curet","dib","backdrop","backfil","backflip","backlog","backpedal","backslap","backstab","bag","balfun","ballot","ban","bar","barbel","bareleg","barrel","bat","bayonet","becom","bed","bedevil","bedwet","beenhop","befit","befog","beg","beget","begin","bejewel","bemedal","benefit","benum","beset","besot","bestir","bet","betassel","bevel","bewig","bib","bid","billet","bin","bip","bit","bitmap","blab","blag","blam","blan","blat","bles","blim","blip","blob","bloodlet","blot","blub","blur","bob","bodypop","bog","booby-trap","boobytrap","booksel","bootleg","bop","bot","bowel","bracket","brag","brig","brim","bud","buffet","bug","bullshit","bum","bun","bus","but","cab","cabal","cam","can","cancel","cap","caracol","caravan","carburet","carnap","carol","carpetbag","castanet","cat","catcal","catnap","cavil","chan","chanel","channel","chap","char","chargecap","chat","chin","chip","chir","chirrup","chisel","chop","chug","chur","clam","clap","clearcut","clip","clodhop","clog","clop","closet","clot","club","co-occur","co-program","co-refer","co-run","co-star","cob","cobweb","cod","coif","com","combat","comit","commit","compel","con","concur","confer","confiscat","control","cop","coquet","coral","corbel","corral","cosset","cotransmit","councel","council","counsel","court-martial","crab","cram","crap","crib","crop","crossleg","cub","cudgel","cum","cun","cup","cut","dab","dag","dam","dan","dap","daysit","de-control","de-gazet","de-hul","de-instal","de-mob","de-program","de-rig","de-skil","deadpan","debag","debar","log","decommit","decontrol","defer","defog","deg","degas","deinstal","demit","demob","demur","den","denet","depig","depip","depit","der","deskil","deter","devil","diagram","dial","dig","dim","din","dip","disbar","disbud","discomfit","disembed","disembowel","dishevel","disinter","dispel","disprefer","distil","dog","dognap","don","doorstep","dot","dowel","drag","drat","driftnet","distil","egotrip","enrol","enthral","extol","fulfil","gaffe","golliwog","idyl","inspan","drip","drivel","drop","drub","drug","drum","dub","duel","dun","dybbuk","earwig","eavesdrop","ecolabel","eitherspigot","electroblot","embed","emit","empanel","enamel","endlabel","endtrim","enrol","enthral","entrammel","entrap","enwrap","equal","equip","estop","exaggerat","excel","expel","extol","fag","fan","farewel","fat","featherbed","feget","fet","fib","fig","fin","fingerspel","fingertip","fit","flab","flag","flap","flip","flit","flog","flop","fob","focus","fog","footbal","footslog","fop","forbid","forget","format","fortunetel","fot","foxtrot","frag","freefal","fret","frig","frip","frog","frug","fuel","fufil","fulfil","fullyfit","fun","funnel","fur","furpul","gab","gad","gag","gam","gambol","gap","garot","garrot","gas","gat","gel","gen","get","giftwrap","gig","gimbal","gin","glam","glenden","glendin","globetrot","glug","glut","gob","goldpan","goostep","gossip","grab","gravel","grid","grin","grip","grit","groundhop","grovel","grub","gum","gun","gunrun","gut","gyp","haircut","ham","han","handbag","handicap","handknit","handset","hap","hareleg","hat","headbut","hedgehop","hem","hen","hiccup","highwal","hip","hit","hobnob","hog","hop","horsewhip","hostel","hot","hotdog","hovel","hug","hum","humbug","hup","hushkit","hut","illfit","imbed","immunblot","immunoblot","impannel","impel","imperil","incur","infer","infil","inflam","initial","input","inset","instil","inter","interbed","intercrop","intercut","interfer","instal","instil","intermit","japan","jug","kris","manumit","mishit","mousse","mud","interwar","jab","jag","jam","jar","jawdrop","jet","jetlag","jewel","jib","jig","jitterbug","job","jog","jog-trot","jot","jut","ken","kennel","kid","kidnap","kip","kissogram","kit","knap","kneecap","knit","knob","knot","kor","label","lag","lam","lap","lavel","leafcut","leapfrog","leg","lem","lep","let","level","libel","lid","lig","lip","lob","log","lok","lollop","longleg","lop","lowbal","lug","mackerel","mahom","man","map","mar","marshal","marvel","mat","matchwin","metal","micro-program","microplan","microprogram","milksop","mis-cal","mis-club","mis-spel","miscal","mishit","mislabel","mit","mob","mod","model","mohmam","monogram","mop","mothbal","mug","multilevel","mum","nab","nag","nan","nap","net","nightclub","nightsit","nip","nod","nonplus","norkop","nostril","not","nut","nutmeg","occur","ocur","offput","offset","omit","ommit","onlap","out-general","out-gun","out-jab","out-plan","out-pol","out-pul","out-put","out-run","out-sel","outbid","outcrop","outfit","outgas","outgun","outhit","outjab","outpol","output","outrun","outship","outshop","outsin","outstrip","outswel","outspan","overcrop","pettifog","photostat","pouf","preset","prim","pug","ret","rosin","outwit","over-commit","over-control","over-fil","over-fit","over-lap","over-model","over-pedal","over-pet","over-run","over-sel","over-step","over-tip","over-top","overbid","overcal","overcommit","overcontrol","overcrap","overdub","overfil","overhat","overhit","overlap","overman","overplot","overrun","overshop","overstep","overtip","overtop","overwet","overwil","pad","paintbal","pan","panel","paperclip","par","parallel","parcel","partiescal","pat","patrol","pedal","peewit","peg","pen","pencil","pep","permit","pet","petal","photoset","phototypeset","phut","picket","pig","pilot","pin","pinbal","pip","pipefit","pipet","pit","plan","plit","plod","plop","plot","plug","plumet","plummet","pod","policyset","polyfil","ponytrek","pop","pot","pram","prebag","predistil","predril","prefer","prefil","preinstal","prep","preplan","preprogram","prizewin","prod","profer","prog","program","prop","propel","pub","pummel","pun","pup","pushfit","put","quarel","quarrel","quickskim","quickstep","quickwit","quip","quit","quivertip","quiz","rabbit","rabit","radiolabel","rag","ram","ramrod","rap","rat","ratecap","ravel","re-admit","re-cal","re-cap","re-channel","re-dig","re-dril","re-emit","re-fil","re-fit","re-flag","re-format","re-fret","re-hab","re-instal","re-inter","re-lap","re-let","re-map","re-metal","re-model","re-pastel","re-plan","re-plot","re-plug","re-pot","re-program","re-refer","re-rig","re-rol","re-run","re-sel","re-set","re-skin","re-stal","re-submit","re-tel","re-top","re-transmit","re-trim","re-wrap","readmit","reallot","rebel","rebid","rebin","rebut","recap","rechannel","recommit","recrop","recur","recut","red","redril","refer","refit","reformat","refret","refuel","reget","regret","reinter","rejig","rekit","reknot","relabel","relet","rem","remap","remetal","remit","remodel","reoccur","rep","repel","repin","replan","replot","repol","repot","reprogram","rerun","reset","resignal","resit","reskil","resubmit","retransfer","retransmit","retro-fit","retrofit","rev","revel","revet","rewrap","rib","richochet","ricochet","rid","rig","rim","ringlet","rip","rit","rival","rivet","roadrun","rob","rocket","rod","roset","rot","rowel","rub","run","runnel","rut","sab","sad","sag","sandbag","sap","scab","scalpel","scam","scan","scar","scat","schlep","scrag","scram","shall","sled","smut","stet","sulfuret","trepan","unrip","unstop","whir","whop","wig","scrap","scrat","scrub","scrum","scud","scum","scur","semi-control","semi-skil","semi-skim","semiskil","sentinel","set","shag","sham","shed","shim","shin","ship","shir","shit","shlap","shop","shopfit","shortfal","shot","shovel","shred","shrinkwrap","shrivel","shrug","shun","shut","side-step","sideslip","sidestep","signal","sin","sinbin","sip","sit","skid","skim","skin","skip","skir","skrag","slab","slag","slam","slap","slim","slip","slit","slob","slog","slop","slot","slowclap","slug","slum","slur","smit","snag","snap","snip","snivel","snog","snorkel","snowcem","snub","snug","sob","sod","softpedal","son","sop","spam","span","spar","spat","spiderweb","spin","spiral","spit","splat","split","spot","sprag","spraygun","sprig","springtip","spud","spur","squat","squirrel","stab","stag","star","stem","sten","stencil","step","stir","stop","storytel","strap","strim","strip","strop","strug","strum","strut","stub","stud","stun","sub","subcrop","sublet","submit","subset","suedetrim","sum","summit","sun","suntan","sup","super-chil","superad","swab","swag","swan","swap","swat","swig","swim","swivel","swot","tab","tag","tan","tansfer","tap","tar","tassel","tat","tefer","teleshop","tendril","terschel","th'strip","thermal","thermostat","thin","throb","thrum","thud","thug","tightlip","tin","tinsel","tip","tittup","toecap","tog","tom","tomorrow","top","tot","total","towel","traget","trainspot","tram","trammel","transfer","tranship","transit","transmit","transship","trap","travel","trek","trendset","trim","trip","tripod","trod","trog","trot","trousseaushop","trowel","trup","tub","tug","tunnel","tup","tut","twat","twig","twin","twit","typeset","tyset","un-man","unban","unbar","unbob","uncap","unclip","uncompel","undam","under-bil","under-cut","under-fit","under-pin","under-skil","underbid","undercut","underlet","underman","underpin","unfit","unfulfil","unknot","unlip","unlywil","unman","unpad","unpeg","unpin","unplug","unravel","unrol","unscrol","unsnap","unstal","unstep","unstir","untap","unwrap","unzip","up","upset","upskil","upwel","ven","verbal","vet","victual","vignet","wad","wag","wainscot","wan","war","water-log","waterfal","waterfil","waterlog","weasel","web","wed","wet","wham","whet","whip","whir","whiteskin","whiz","whup","wildcat","win","windmil","wit","woodchop","woodcut","wor","worship","wrap","wiretap","yen","yak","yap","yarnspin","yip","yodel","zag","zap","zig","zig-zag","zigzag","zip","ztrip","hand-bag","hocus","hocus-pocus"],PAST_PARTICIPLE_RULESET={ name:"PAST_PARTICIPLE",defaultRule:RE(ANY_STEM,0,"ed",2),rules:PAST_PARTICIPLE_RULES,doubling:!0},PRESENT_PARTICIPLE_RULESET={name:"ING_FORM",defaultRule:RE(ANY_STEM,0,"ing",2),rules:ING_FORM_RULES,doubling:!0},PAST_TENSE_RULESET={name:"PAST_TENSE",defaultRule:RE(ANY_STEM,0,"ed",2),rules:PAST_TENSE_RULES,doubling:!0},PRESENT_TENSE_RULESET={name:"PRESENT_TENSE",defaultRule:RE(ANY_STEM,0,"s",2),rules:PRESENT_TENSE_RULES,doubling:!1};RiTa.SILENT||isNode()||!console||console.log("[INFO] RiTaJS.version ["+RiTa.VERSION+"]");var LetterToSound=makeClass();LetterToSound.prototype={init:function(){this.warnedForNoLTS=!1,this.letterIndex={},this.fval_buff=[],this.stateMachine=null,this.numStates=0;for(var T=0;T0&&t.indexOf("1")===-1&&t.indexOf(" ")===-1){n=t.split("-"),t="";for(var e=0;e1&&(t=t.substring(0,t.length-1))}return t},_computePhones:function(T){var S,A,e,n,t,r,i,s=[],a=4;if(!T||!T.length||RiTa.isPunctuation(T))return null;if(!LetterToSound.RULES)return this.warnedForNoLTS||(this.warnedForNoLTS=!0,console.warn("[WARN] No LTS-rules found: for word features outside the lexicon, use a larger version of RiTa.")),null;if(T=T.toLowerCase(),isNum(T)){T=T.length>1?T.split(E):[T];for(var o=0;o9)throw Error("Attempt to pass multi-digit number to LTS: '"+T+"'");s.push(RiString._phones.digits[S])}return s}e="000#"+T.trim()+"#000",A=e.split(E);for(var h=0;h