Geva is a genetic programming algorithm that I am using to optimize the fuzzy language programs that control sumo robots. In order to understand the capabilities of Geva and for a convenient usage in scala programs I wrote this wrapper.
Resources
Usage
Instantiate an Instance of SGeva (WordMatchSGeva in our case) and call the run method.
object WordMatchSGevaRunner extends App {
new WordMatchSGeva().run()
}
Derive your SGeva from AbstractSGeva and mixin the necessary factories to instantiate the designated Geva modules.
class WordMatchSGeva extends net.entelijan.sgeva.AbstractSGeva
with net.entelijan.sgeva.conf.RampedHalfAndHalfInitialiserFactory
with net.entelijan.sgeva.conf.DefaultDerivationTreeFactory
with net.entelijan.sgeva.conf.SinglePointCrossoverFactory
with net.entelijan.sgeva.conf.IntFlipMutationFactory
with net.entelijan.sgeva.conf.GenerationalSelectionRepalcementFactory
with net.entelijan.sgeva.conf.ProportionalRouletteWheelFactory
with net.entelijan.sgeva.conf.StdoutCollectorFactory
with net.entelijan.sgeva.conf.JreRandomFactory
with ExampleFormatter {
// The properties needed for the above defined factories
@SGevaProperty def seed = None
@SGevaProperty def generations = 100
@SGevaProperty def populationSize = 150
@SGevaProperty def initChromSize = 100
@SGevaProperty def growProb = 0.5
@SGevaProperty def evaluateElite = false
@SGevaProperty def eliteSize = 10
@SGevaProperty def mutationProb = 0.01
@SGevaProperty def crossoverProb = 0.8
@SGevaProperty def fixedPointCrossover = false
@SGevaProperty def maxWraps = 0
@SGevaProperty def maxDepth = 10
@SGevaProperty def maxDerivationTreeDepth = 50
// The fitness function
@SGevaProperty
def fitnessFunction = new WordMatchFitnessFunction {
def word = "noah"
def canCache = true
}
// The grammar
// In scala you can use XML directly inside the sourcecode. I used
// that feature to define the grammer without using external resources.
// So you can have all the relevant information together in one file
def grammarString =
::= |
::= ||
::= _
# Vowels and consonats
::= a|o|u|e|i
::= q|w|r|t|y|p|s|d|f|g|h|j|k|l|z|x|c|v|b|n|m
]]>
.text
}
A fitness function for the WordMatchSGeva. Returnes a fitness value according to the fitness of a program, expressed by the grammar above
/**
* The fitness function for the wordmatch.
* The code was migrated from geva (java) to scala
*/
trait WordMatchFitnessFunction extends net.entelijan.sgeva.DoubleValueFitnessFunction {
import Individuals.Phenotype
def word: String
override def toString() = "WordMatchFitnessFunction('%s') cache=%s" format (word, canCache)
/**
* Compare a string to the word. Each symbol not matching increases the fitness by 1.
* Max fitness is max(length of the word, phenotype).
* @param p Compared phenotype
* @return Number of missmatches
*/
protected def evaluateFitness(pheno: Phenotype): Double = {
val indiWord: String = pheno.getStringNoSpace()
if (indiWord == null) word.length()
else {
val minLength = math.min(indiWord.length(), word.length())
val matchList = (0 to (minLength - 1)).map(i => if (indiWord.charAt(i) == word.charAt(i)) 1 else 0)
val matchCount = matchList.foldLeft(0)((a, b) => a + b)
val maxFitnessValue = math.max(indiWord.length(), word.length())
return maxFitnessValue - matchCount;
}
}
}
Defines how the results of the SGeva run are recorded. In our case the results are written to standard output as the StdoutCollectorFactory is used in WordMatchSGeva (see above). The StdoutCollectorFactory needs a Formatter to define how to format results.
/**
* Define the output of the results
*/
trait ExampleFormatter extends net.entelijan.sgeva.module.Formatter
with net.entelijan.sgeva.module.PopulationStat
with net.entelijan.sgeva.module.SGevaProperties
with net.entelijan.sgeva.module.FormatterUtil {
import scala.collection.JavaConversions._
def printHeader(pw: java.io.PrintWriter) {
pw.println("-- Properties -------------------------------------------------------------------------------")
sGevaProperties.foreach(p => pw.println("%s = %s" format (p.key, p.value)))
pw.println("---------------------------------------------------------------------------------------------")
pw.println("%15s\t%15s\t%15s\t%15s\t%s" format ("gen", "best", "mean", "worst", "words"))
}
def printGenerationData(pw: java.io.PrintWriter, genCount: Int, pop: Individuals.Populations.Population) {
val stat = fitness(pop)
pop.sort()
val indis = pop.getAll()
val words = formatList("%9s", "")(indis.map(i => "'%s'" format i.getPhenotype().getStringNoSpace()).toList)
pw.println("%15d\t%15.2f\t%15.2f\t%15.2f\t%s" format (
genCount, stat.min, stat.mean, stat.max,
words))
}
}
Running the program above leads to the following output
-- Properties -------------------------------------------------------------------------------
generations = 100
fitnessFunction = WordMatchFitnessFunction('noah') cache=true
randomNumberGeneratorImpl = Jre
seed = None
initialiserImpl = RampedHalfAndHalfInitialiser
crossoverOperationImpl = SinglePointCrossover
mutationOperationImpl = IntFlipMutation
eliteSelectionRepalcementStrategy = DefaultEliteSelectionRepalcementStrategy
selectionRepalcementStrategy = Generational
fitnessEvaluationStrategy = DefaultFitnessEvaluation
populationSize = 150
initChromSize = 100
growProb = 0,500
evaluateElite = false
eliteSize = 10
mutationProb = 0,010
crossoverProb = 0,800
fixedPointCrossover = false
maxWraps = 0
maxDepth = 10
maxDerivationTreeDepth = 50
---------------------------------------------------------------------------------------------
gen best mean worst words
1 3,00 4,08 9,00 'ko' 'n' 'oiao' 'co' '__a' '_o' '_o' 'co' '_o__' 'jo' 'co' 'n' 'boi' '__a' 'oeai' 'lox' 'noga_' '_oli' 'oia' '_' 'x' 'm' '_' 'a' '_i_u' '_' '_' '_i' 'e' 'o' '__' '_' 'fi_' 'i' '_' 'hi_' 'xu' 'w' '_' 'u' '_' '_' 'a' 't' 'hixo' 'i' 'aat' '_e' 'e_' 'j' '_' 'z' 'b_s' 'u' '_' '_w' '_e' '_a' 'o' 'j' 'a' '_' '_e_' 'o' 'u' '__' 'a' 'yk' 'c' 'e' 'o' 'o' 'g' 'x' 'y' '_l__' '_' 'o' 'f' '__' '_a' 'q' 'i' 'a' 'w' '_' '__o' '_' '_y' '_i_' 'u_' '_' '__' 'a' 'l' '_' 'ixu' '___' 'i' 'a_' '_' '_' 'ce' '___' 'hade' '_y_' '_' 'z' 'esao_c' '_pocn' 'vv_en' '_w_lo' '__eaee' '_i_l_j' 'z_n_db''oojmkias''i_lae_e''e_vzuoh_''_eedpxud''_eedpgm_o' '_pue' '' '' '' '_' 'a_' 'z___' '_' '_l' '_' 'nog_' 'm_x' 'i' 'a' 'i_l__' '' '_o__' '_' 'zp' '' '_' '' 'e' 'q' '' '' '_' '' ''
2 3,00 3,86 8,00 'oiao' 'i_a' 'oia' 'noga_' 'esa_' 'oia' 'ko' '__a' 'co' 'go' '_o' 'n' 'ko' 'hia' 'jo' 'lox' 'oia' 'n' 'uox' 'noga_' '_o' 'n' 'jo' 'co' 'n' 'boi' '__a' 'oeai' 'lox' 'noga_' '_oli' 'oia' 'g' 'e' 'w' 'w' '_' '_k' '_t' '_l_' 'r' 'e_' 'hade' 'ixu' '__' '_' '_u_t' 'b_s' '_' '_i' '_a' '_' 'b_k' '_' 'u' '__' 'hixo' 'xu' '_e' 'o_i' 'beo' '__u' 'a' 'a' 'a' 'o' '_e' 'x' 'yz' 'a_' 'c_' '_' '_' 'yas' 'o' 'o' 'za' '_j' 'b_y' 'i' 'o' 'i' '_e_' '_u' '_' 'h' 'u' '_' 'o' 'm' 'i_' 'xu' '_e' 'uh' 'd' '_' '___' 'i' '_' '__u' '_' '_' '__i' 'e' 't' 'u' 'l_' 'xu' 'l' 'u' 'o' '_y' 'a' '_ane' 'a' 'a' '__' 'z' '_e_' '__' 'o' 'hi_' 'f_' 'z' 'yh' '_' 'y' 'esao_c' 'k_xud' '_ee_i' 'vv_en''oojmk_e''ojmkias''oi_lae_e' 'oea' 'iu' 'i' 'z' '_poy' '_j' '_poc' 'oz' '_ea''_nfoawy' 'o' '' 'b' '_' ''
3 2,00 3,85 7,00 'no_' 'n' 'ne' 'noga_' 'i_a' '_o' '__a' 'oia' 'ko' '__a' 'p_a' 'ng' 'oia' 'jo' '_o' '__a' 'esa_' '__a' 'uox' 'oiai' 'esa_' 'jo' 'co' 'n' 'boi' '__a' 'oeai' 'lox' 'noga_' '_oli' 'oia' 'v' 'y' '__' 'o' 'd' 's' '_j' '_' 'w' 'xi' '_e' 'i' '_ana' 'e' '_a_i' '_' '__o' '_' '_' 'o' 'z' '_u' 'o__' 'g_' '_' 'u' 'xu' '_' 'o' 'bu' 'eyun' '_' 'c__' 'o' 'v' 'o_' '__i' 'i_l' 'o_' 'xv' 'eai' '_d' 'e_' 'kd' 'a_' '_j' '_l_' 'b_y' 'f_' '_' '_' '_a' 'oiw' '__' 'i' 'i' 'u' 'g' 'gu' 'ke' 'pw' 'i' '_' '_i' 'l' 'ud' 'i' '_' '_' '_a' 'o' 'i' '__' 'j' 'b_s' '__' 'it' 'ea' '__u' 'k_o' 'a' 'o__' '_i' 'k_xud' 'k_xud' 'k_xuh' 'iykye' 'oedeai' 'l_v_en''ojmkiae''oim_ga_' '_' '_' 'y' '' '' 'hao' '__' 'bu' '__' '_o' 'u' 'iu' '' '_' 'a' 'o' '' 'z' 'x' 'e' '_uo' '_' '' 'd' 'hwit' '_oq' '__'
4 2,00 3,74 5,00 'no_' 'no_' 'jo' '_olx' 'nt_w' '_ow' 'nun' 'co' '__a' '__a' '_o' '__a' 'n' 'nxv' 'oga_' 'n' '__a' '__a' 'go' 'lot' 'oeai' 'nog_a' 'ne' 'n' '_ow' 'oia' 'lou' 'n' 'n' 'na_' '_ga_' '_o' 'nogod' 'jo' 'co' 'n' 'boi' '__a' 'oeai' 'lox' 'noga_' '_oli' 'b_s' 't_' 'i_' 'l__' 'ox' 'kd' 'e' 'e' '_' '_' 'u' 'i' 'u' 'f' 'e' 'i' '_g' 'i' 'k__i' '___' 'c_' '__' 'xu' '_n' 'u_' '_n' '_u' '_ai' 'o' '__' 'eyun' 'a' '__i' 'v' '_j' 'u' '_i' 'u' '_' 'o_' '_' '_y' 'o' '_ana' 'ef' 'o' 'k_t' '_u' 'v' '_b_' 'mt' 'i' '_' '_' 'ei' 'ewi' 'ud' '_a_' 'i' 'o' 'fi' 'd' '__' '_' 'od' 'l' '___' 'ea' 'g_' 'c__' '_' '__i' '__o' '_e' '__u' 'a_' 'eyuo' 'f' 'v_en' 'yas' 'j' 'm' 'e' 'oe_' '___' 'i' '_' '__i' 'u' 'c__' 'eyu' 'iu_s' 'w_' 'm' 'f' 't' 'u' 'e' 'u' 'oi__a' 'm_ga_' 'k_xud' 'l_lox' 'iykye' '____a' '_' 'o'
5 2,00 3,76 5,00 'noe' 'no_' 'no_' '_oly' 'lox' '_o' 'io' '_oxw' '_ea' 'oeai' '_ow' 'co' '_o' '__a' '_oy' 'na_' 'loj' '_o' 'low' 'sca' 'noga_' 'nt_g' 'co' '__a' '_o' 'n_' 'lot' 'jo' 'co' 'n' 'boi' '__a' 'oeai' 'lox' 'noga_' 'j' 'iuuy' 'b_s' '_y' '__u' 'l' 'x' '_' '_u_s' 'a_' '__' 'e' 'lbe' '_li' 'ms' 'b_o' 'e' 'j_' 'kd' 'odz' '_a' '_g' '_u' '_io' 'kye' 'oy' 'k_m' 'u' 'f' 'gx' 'i' 'j' 'j' 'xu' 'o' '_' 'o' '_' 'i' 'o' '__o' '__' 'me' 'o' 'be' 'c__' 'oai' '__' '_' 'i' 'p' 'u' 'w' 'ias' 'pw' '__u' 'o' 'o' '_' 'd' '_' 'iu_a' 'ou_' 'o' '_' 'la_' 'l' 'u' 'a' '__u' 'lu' 'a' 'l_' 'eyu_' 't' 'ii' 'u' 'l' 'ga' 'oee_' 'u' '_' '__u' '_' '__' 'ez' 'e' 'o' 'a_' 'xu' 'm' 't' 't' 'oj' 'd' 'x' 'ci' 'leyuo' '__m__' 'l_lox' 'm_ga_' '_avdu' 'ogal' 't' 'u' '' '' 'c' '' 'iu' 'k_' 'baa' 'oiwit' ''
6 2,00 3,83 7,00 'boai' 'no_' 'no_' 'no_' 'noe' '_oiw' 'mo' 'co' '_o' '_oxs' 'lox' '_oy' 'go' 'lon' 'ko' 'n' 'co' 'nno_' 'co' 'ao' 'low' 'n' 'bo_' '_ua' '__a' 'oeai' '_o_' '_o' 'jo' 'co' 'n' 'boi' '__a' 'oeai' 'lox' 'a_' 'm_gx' '__i' 'e' '_l_' 'e' 'cs' 'ce_i' 'r_' 'mu' 'gu__' 'eyco' 'i' 'oai' 'ii' '_l' 'o' 'i' '_' 'o' 'p_' 'd' 'e' 's' 'm' 'eyus' '___' 'f' '_e' 'o' 'e' 'a' 'ca' 'u' 'm' 'u' 'xpw' 'b_u' '__' 'o' 't' '_u_s' '_' 'l' 'u' 'm__' 'y_' '__i' '__j' 'eg' 'sco' '_' 'a_' '_' 'i_' '_' '_' 'ie' 'u' '__o' 'e_' 'l_' 'o_' 'xu' 'kd' 'kd' 'a' '_i' 's' 't' 'ox' 'i' 'be' 'l_' 'i' 'xe' 'l' 't' 'e' 'ca_' 'o' 'oao' 'oj' '_io' 'e' 'z' 'nogaw_' '___' 'k' 'u' 'e' 'he' 'u' '___' 't' '_s' 'iiu' '__u' 'c__' 'a' 't' 'ei' 'am' 'o' 'oee_' '_u_n' 'g' 'g_ga_' 'oet_w' 'i_eai' 'ea_u_s' 'cm_ga_' 'ouoga_''zx_deai'
7 2,00 3,72 7,00 'no_' 'boai' 'no_' 'no_' 'no_' 'noe' 'boai' 'no_' 'n' 'nu' 'io' '_o_a' 'co' 'n' '__a' '_u_h' 'eo' 'aoi' 'bo_' '_oxs' 'ao' 'ni' '_o_j' 'mo' 'aya_' 'co' 'n' 'n' 'lox' 'n' 'lod' '_ois' 'boi' 'jo' 'co' 'n' 'boi' '__a' 'i' 'y' '_u' 'm' 'f' 'e_' 'a' 'u' 'au' 'ow' 'ce_v' 'a_' 'o' '_' 'l_' 'oewb' 'h_' '_' 'eai' 'o' 'u_' 'ea_' 'z' 'r_' '_' 'a' 'j' 't' '_ai' 'ce__' 'i' 'y_' '_' 'c_o' '_' 'aam' '_e' 'o' 'ce' '__o_' '_y' 'ce' '_' '__i' 'g' 'cs' 'e' 'eyco' 'u' 'u' 'c' 'b' 'i' '_ai' 'o_u' 't' '_' 'o' 'i' 'iiu' 'g_z' 'e' 't_i' 'l' 'e' 'u' 'az' '_u' 'b' '_e' 'h' 'e' 'cs' 'b__' 'a' '_u__' '_k' 'ejt' 'cg' 'o' 'ke' '_i' '_xe' 'u' 'ei' 'iv' '_u' 'a' '__e' 'cw' 'g' '__o' 'a' '_' 'kh' '_' 'q' '__u' 'u_ga_' 'g_ga_' '_x_da_''bx_deai' '' '' '_g' '_l' 'u' 'eyu' 'i' 'eyo' '_'
8 1,00 3,84 9,00 'noa' 'boao' 'no_' 'no_' 'no_' 'noe' 'boai' 'no_' 'no_' 'boai' 'no_' 'n_' 'bo_' '_o' '_o_a' '__a' '_oin' 'nu' '_o_' 'oga_' 'nco' 'uo' 'n' 'lod' 'bo_' 'boo' 'dga_' 'jo' 'co' 'il' 'a' '_ai' '_' 'y_' 'f' 't' 'x' 'a' 'ce' 'a' 'j' 'i' 'o__' 'x_i_' 'e' 'g' 'y_' '_y' 'u' 'o' 'u' '_g' 'i' 'g' 'd' 'k' 'jt' 'u' 'yl' 'jn' 'o' 'o' 's' 'i' 'o_o' 's' '___a' '_ut' 'y_' '_e' 'c' 'ca_' 'o' 'o' 'o' 'ku__' '_a_' 'u' 's' 'ha' 'v' 'h_' 'u' '_' 'c' 'e' 'r' 'o' 'uu' 'o_' 'be_' 'g' '_' '_' 'o' 'e_' 'rv' 't' 'e' 'i' '__u' 'o_u' 'e' '_a' 'ykyn' '_' 'a' 'fu' 'u' 'b' 's' 't' 'i' 'in' '_ii' '_' 'o' 'b_' '__' 'i' 'cg' '_' 'h' 'g' 'ea_' 'i' '_' '_a' 'i' 'o' 'ow_' '_wb' 'e' 'a' 'u' 'u' '_x_bt' 'g_ga_' '_uia_' 'h_eai' 'x_deai''zx_deai''h_x_deai''euzx_deai' 'c_' '__i' 'tfoawy' 'aa' ''
9 1,00 3,69 7,00 'noa' 'no_' 'no_' 'no_' '_oa' 'noi' 'boa' 'no_' 'no_' 'noe' 'boai' 'no_' 'no_' 'boai' 'no_' 'boao' 'nuu' 'n_g' 'jo' 'nh_' 'n' 'nw' 'oga_' 'ny_' 'boo' 'lod' 'ne' 'n_' 'uo' 'oga_' '_oi' 'zoi' 'lod' 'boe' 'ro' 'na_' 'a' 'o' 'j' 'u' 'o_' '_' 'a' 'eco' 'i' '_' 's' 'fi' 'm' 'u' 'i' 't' 'o' 'f' 'o' 'od' '__' 'g' 'be_' 'f' 'g' 'o' 'u' 'u' 'n_eai' 'b_' 'oai' 't' 'u' 's' 'v' '_' 'yl' '__o' 'u' '_' 'rc' 'a' 'ee' '_ei' 'g' 'g' 'a' 'e' '__' 'mr' 'hr' 't' 'o' 'yz' 'a' 'a' '_a' 'o' 'a' 'w_' 'kye' '_ai' 'o_u' 'o' 'g' 't_' 'oli' 'nz__j' 'uw' '_uh' '__g' 'ca' 'a' 'j' 'u' 'x' 'b' '_ae' '___a' 'kco' 'h' 'o' '_' 'o' '_' 'm' '_' 'y' 'a' 't' 'o__' 'u_' 'a' 'jm' 'o' 'ba' '_g' 'y' '_kye' 'e_i' 'u' 'a' '_' 'owi' 'a' 'b__' '_uiue''ocaobe_' '_aobe_''_x_deai' 'n' '_' ''
10 1,00 3,63 6,00 'noa' 'noa' 'boa' 'no_m' 'boae' 'no_' 'boai' 'no_' 'no_' 'noe' 'boai' 'no_' 'no_' 'boai' 'no_' 'boao' 'n' 'uot' 'nboi' 'nuo_' 'zo' 'nuu' 'n' 'n_g' '_ea' 'm_a' 'oga_' 'nnw' '_o_' 'n_g' 'nac' 'nkco' 'uo' '_of' 'n_y' 'n' '_eai' '_o' 'nalu' '_o' 'nom__' 'y' 'o_' 'u' 'r' '_' 't' 'ee' 'm' 'e' 'ky' '_mr' 'e_' 'ii' 'e_u' 'o' 'fi' 'b' '_ai' 'y' 'u_' 'o' 'i' 'j' 'e_i' 'g' 'o_' 'oga_w' 'c' 'v' 'cl' 'o' 't' 'a' 'i' 'n_eae' 'ow' '_' '__o' 'y' 'ru' 'ca' 'nz__j' 'owi' 'ox__' 'e__' 'c' '_' 'j' 'g' '_' 'ca' 'ei' 'is' 'd' 'c' 'e_i' 'g' '_' 'j' 't' 't' 'l' 'i' 'g' 'g' '_' 'omr' 'a' '_' 'm' 'w' 'a' 'i' '_' 'm' '__' 'o' 'oce' 'a' 'b_' 'o' 'r' 'ce' 'e' 'o' '_' 'j' 'rr' 'a' 'u' 'np_ui' '____' '_a' 'eae' 'a' 'yb_a' '_i' 'w' '_a' 'uk_xud' 'oedeai' '_x_da_' 'ja' '' 'boa' '' 'la' 'bv'
11 1,00 3,45 9,00 'noa' 'noa' 'noat' 'noa' 'noa' 'noa' 'nsau' 'boa' 'boam' 'boa_' 'no_' 'boa' 'no_' 'boau' 'boau' 'no_' 'n_a' 'no_' 'no_' 'no_' 'no_' 'noe' 'boai' 'no_' 'no_' 'boai' 'no_' 'nac' 'co' 'mot' 'eeae' '_o' 'na__' '_o_' 'n_g' 'n_g' 'nn_s' 'n__' 'nao' 'n' 'nac' 'n' '_o' 'nx__' 'ni' 'uo' 'nj' 'nm_a' '_of' 'n' 'n_g' 'w_' 'e_e' 'e' 'i' 'ku' 'a_i' 'wut' 'b' 'b' '_s' 'e_' 'b' 'a' 's' 'u' 'm__' 'o' '_' '_m__' 'c' 'o' '_l' 'u' 'l' 'j' 'a' 'e_' '__' 'o' 'w' 'z_' 'ce' '_' 'a' 'q' 'np_ua' 'o' 'cu' 'ri' '_' 'u' 'w_' 'i' 'u_' '_e' 'e_' 'c' '_u' 't' 'a' 'g' 'e' 'le' 'at' '_' 'd' 'i' 'anoa' 'wi' '_bo' 'o' 'y' 'tau' 'q' 'i' 'nboao' 'o' 'b_' '_u' '_' 'u' 'u' '_g' 'fi' 'nz__j' 'o_' 'yk' 'uk_b' 'a' '__' 'n_ga_' 'ujm' 'o' 'omr' 'cl' 'c' '_t' '_' 'w_' 'h_' 'nknboi''np_ax_deai' 'bom' '_a' 'u' 'at' 'a' ''
12 1,00 3,49 8,00 'noaq' 'noa' 'noa' 'noa' 'noa' 'noat' 'noa' 'loa' 'no_' 'no_' 'boa_' 'noo' 'yoat' 'no_' 'non' 'noi' 'nom' 'n_a' 'noe' 'boai' 'boau' 'now_' 'no_' 'boa' 'boa' 'no_' 'no_' 'noe' 'boai' 'n' 'noomr' 'nj' 'n' 'n' 'nac' '_o' '__a' '_o' 'eo' 'naq' 'n_m' 'na_m' 'nb__' 'nnoa' 'm_a' 'uo' 'nan' 'n_r' 'n_w' 'yo' 'nk_' 'nm_a' 'n__a' 'n_' 'n_yk' 'na' 'zo' 'o_' 'u' '_r' 'nsu_a' 'bu' 'be' '_' 'oc' '_ei' 'w' 'n_gw_' 'c_' '_' 't' 'n_goo' '_t' 'e_' 'u' 'e' 'o_' 'a' '_' '___' 'u' 'oi' 'a' 'uk_d' '_a' 'b' 'c' 'g' 'caaq_' 'x__' 'o' 'wn' 'at' 'i' 'k' '_' 'eu' '_' 'e' 'na__a' '_' 'x' 'cu' 'n_no_' 't' 'w' 'nz__o' '_a' 'b' 'e_' 'ee' 'e_e' '__' 'ne_oa' 'm' 'bi_' 'za' 'b' 'a' 'o' 'at' 'u' '_' '_t' 'o' 'le' 'u' 'm' 'ba' 'o' 'e' '_' 'm' '__' 'we' 'oa' 'u' '__yu_' 'a_no_' 'np_awu' 'naobe_' 'ujno_''n_gaobe_''nknbboa_''nozx_deai''nnzx_deai' 'a' 'i' 'd'
13 1,00 3,31 6,00 'noa' 'noaq' 'noaq' 'noa' 'noa_' 'noa_' 'noa' 'noa' 'noa' 'noa' 'noat' 'noa' 'noaq' 'boai' 'no_o' 'uoa_' 'no_' 'yoat' 'noyk' 'noc' 'nou' 'not' 'no_' 'no_' 'boae' 'boa_' 'noe' 'n_ai' 'no_a' 'no_' 'no_' 'noe' 'm_a' 'eo' 'x_a' 'n' 'n__' 'n' 'n_' 'n_yb' '_o' 'wpad' 'ns' 'bo_' 'n_r' 'n_vo' 'eo' 'm_a' 'n_' 'p_a' 'nau' 'nax' 'na__' 'nnw' 'nb__' 'cow_' 'yo' 'n__a' 'bo' 'nau' 'nan' 'x' 'e' 'ai' 'ei' 'j' 'na__a' 'aw' 'e' 'wu' '_c' '_a' 'oio' 'es' '_' 'a' 'a' 'bw_' 'unnw' '__' 'u' '_' 'w' 't' '_n' 'c' 'on_g' 'bio_' 'edea' 'at' 'ke' 'ou' 'wi' 'u' 'x_wi' 'ua' 'o_' 'omo_' '_' 'e_' 'e' 'oi' 'o' 'aobe_' '__u' 'a' 'o' 't' 'c_' 'bom_n' 'm__' 'w_' 'dvd' 'uwu' '__' 'w' '_' 'o' 'ba' 'ye' 'z' 'a' 'ne_o_' 'ne_oo' '_' '_' 'ci' 'j' 'ei' 'y' 'owi' 'w' 'myo' '_a' 'o_' '_a' '_a' '_' '__o' 'a' '_a' 'eu' 'a' '_' 'u' 'uk_d' 'x' '__d' 'e'
14 1,00 3,21 5,00 'noai' 'noa' 'noa' 'noaa' 'noa_' 'noam' 'noa' 'noa' 'noa' 'noa' 'noat' 'noa' 'noaq' 'noa' 'noaq' 'noaq' 'nou' 'noz_' 'nou' 'noo' 'nnau' 'nou' 'no_a' 'nou' 'nog' 'no_e' 'noc' 'n_a' 'no_' 'no_a' 'noe' 'no_o' 'no_' 'non' 'uoao' 'noc' 'noe' 'nax' 'bow_' 'n' 'nnw' '_o_' 'na' 'nonoa' 'nco' 'bo_' 'co' 'n' 'ne_' 'nau' 'nan' 'nan' 'nau' 'n_r' 'nom_a' 'n_i' 'na_u' 'ns' 'nle' 'bo_' 'nao_' 'n_w_' 'woi' 'eo' 'nan' 'n_' 'ns' 'kau' 'bu' '_' 'w' '__o' 'o' 'aobea' 'be' '_' 'ei' 'a__' 'u_' 'wu' 'u' 'b_x' 'nanon' '_' 'm' '_' 'noou__' '_' 'ne_oo' 'qke' 'c' 'a' 'u' 'k_' 'ou' '_' 'w' 'ai' 'oa' 'ke' 'm__' 't' 'u' 'u' '__' 'en' 'au' 'a' 'm__' 'ad' 'p_w' 'x' 'o' 'u' 'uwu' '_' 'emo_' 'o_' 'w' 'x_wi' 'u' 'uk_d' 'g' 'o' 'ue' 'tau' 'r' '_' 'ai' 'wu' 'au' 'xad' '_a' '_' 'owi' 'x' 'e_' 'x_w_' 'f' 'bu' 'p_t' '_w' 'e' 'w' 'm_ke' 'u' 'o_' 'w_' 'w'
15 1,00 3,15 5,00 'noaa' 'noaa' 'noaq' 'noa' 'noak' 'noa' 'noaz' 'noa_' 'noa_' 'noa' 'noaq' 'noa' 'noa' 'noa' 'noa' 'noat' 'noa' 'noaq' 'noa' 'noaq' 'noaq' 'n_a' 'noo' 'no_' 'noe' 'n_a' 'noow' 'nmat' 'nou' 'n_a' 'nou' 'noe' 'no_o' 'no_a' 'noe' 'nna' 'nco' 'n__o' 'bo_' 'nao' 'noe_a' 'nax' 'yow' 'n_r' 'n_' 'na' 'n' 'wo' 'm_a' 'nec' 'nau' 'nco' 'bo_' 'nm_e' 'n__u' 'n' 'nawi' 'nan' 'n_' 'bou' 'nau' 'nao_' 'ni' 'naj' 'ne_' 'no_wo' '_o' 'nonoa' 'n_y' 'ne_' 'nle' 'nonau' 'n_o_' 'nau' 'n_e' 'nw_' '_' 'en' '_ke' 'mnoo' 't' '_u' 'ke_a' 'oe' '_m_a' 'a_' 'm' 'zm' 'uwu' 'kx' 'm' 'm_u' '_' '_' 'u' 'm_ke' '_' 'c' 'nu_ai' 'w_' 'owi' 'b_x' 'e' '__o' 'oa_' '_' 't' '_' 't' 'g' 'en' '_' 'o' 'eai' 'o' '_' 'uu' 'ow' 'u_i' '_' 'hb_e' 'm_e' '__' 'm_' 'w_' 'w' 'a' 'eu' '_a' 'oeo' 'u_' 'exw_' 'w_' 'w_' 'qkm' 'u' 'ou_' 'u' 'fi' 'oa' 'oa' 'uy' 'w_' '_' '_noom' 'ngelca' 'nuk_xu' 'edcxu''no_deai'
16 1,00 3,01 4,00 'noaq' 'noaa' 'noa' 'noaa' 'noa' 'noaz' 'noaq' 'noat' 'noae' 'noa' 'noa' 'noak' 'noa' 'noam' 'noa' 'noa' 'noa_' 'noa_' 'noa' 'noa' 'noa' 'noa' 'noat' 'noa' 'noaq' 'noa' 'noaq' 'noaq' 'non' 'noi' 'ntau' 'nmat' 'noeo' 'noe' 'nua' 'nou' 'nou' 'n_a' 'noe' 'nou' 'no_w' 'noon' 'now_' 'no' 'no_' 'm_a' 'nfi' 'nm' 'nukt' 'nag' 'nsg' 'n' 'nw_' 'nao' 'n_' 'o_a' 'n_oa' 'nonau' 'n__' 'nm_' 'nce' 'n_i' 'nlb' 'nau' 'noxw_' 'n_o' 'mo_' 'm_a' 'nec' 'ne_' 'nw_' 'n' 'nm_a' 'nau' 'nom_a' 'nou__' 'ww_p' 'ad' 'oa' '_' '_a' 'aw' 'w_' 'u' 'e_' 'wu' '_' 'm_' 'w_' 'aj' '_' 'aa' 'u' '__e' 'ngel_' 'no_lod' 'au' 'au' '_w_' 'u' 'u' 'ow' 'e' 'eai' 'oe' 'nnoa_' '_' 'nu_au' '_m__' 'm' 'z' 'g' 'noom_v' 'w' 'm__' 'o_' '_u' 'aw' 'j' 'bm_a' 'a' 'hb_e' 'w' 'e_' '_ai' 'z_' 'oa' 'a' 'w_' '__e' 'z' '_' 'hb_e' '_' 'w_' 'om' 'w' 'c' 'w_' 'ce' 'm__o' '_' 'e__' 'mwu' 'm_o' 'et' 'oe' 'm' 'wd'
17 1,00 2,87 4,00 'noa' 'noaq' 'noa' 'noak' 'noa' 'noaq' 'noa' 'noa' 'noa' 'noa' 'noaq' 'noa_' 'noaq' 'noa_' 'noa_' 'noa' 'noam' 'noa' 'noan' 'noa_' 'noa_' 'noaq' 'noaa' 'noa_' 'noa' 'noa' 'noa' 'noa' 'noa' 'noa' 'noat' 'noa' 'noaq' 'noa' 'noaq' 'noaq' 'noo' '_oat' 'noo' 'nmau' 'no__' 'now_' 'nofi' 'noe' 'no_' 'noe_' 'no_' 'no_' 'nsw' 'mwa' 'nm_u' 'nag' 'nad' 'nawi' 'ne_' 'mo_' 'n_e' 'nu_' 'nau' 'n' 'wo' 'noooe' 'ntm' 'na_' 'n' 'n' 'n__' 'nm_' 'nz_e' 'nukt' 'wo' 'nom__' 'ntm' 'n_i' 'nw_' 'ncw_' 'u_a' 'nau' '_on' 'n_' 'nzy' 'nww_' 'n_o' 'nau' 'n_g' 'hb_e' 'aq' 'w_' 'tw_' 'nox_a_' 'z' '__' 'fi' 'w' 'za' '_m_f' 'c' 'wi' 'o_' 'a_' '__u' 'hb_e' 'aa' 'e__' 'wu' 'hu' 'w' '__e' 'w_' 'ez' '_a' '__e' 'hb_e' 'te' 'et' 'oi' 'w_' 'o' 'mxw_' 'ad' 'ns_na' 'g' 'g' '_a' 'y' '_au' 'm' 'jq' 'aj' '_ai' 'a' 'm' 'w' 'w_' '_' 'gu_' '_g' 'x' 'j_' 'ze' 'nn_oa' '_q' 'oat' 'j' 'o' 'bb_a' 'wd' '_' 'e_'
18 1,00 2,87 5,00 'noan' 'noaq' 'noa_' 'noaq' 'noa' 'noaq' 'noa_' 'noa_' 'noa_' 'noa' 'noan' 'noa' 'noa' 'noa_' 'noa' 'noan' 'noa' 'noa' 'noa' 'noa' 'noat' 'noa' 'noaq' 'noa' 'noaq' 'noaq' 'noe' 'nou' 'nom_' 'no' 'n_au' 'nou' 'nooa' 'noe' 'no_' 'no_' 'nou' 'no_' 'noee' 'nma' 'no_i' 'noa_a' 'nou' 'noj' 'nou' 'noh' 'nooo' 'now' 'no_' 'nta' 'no_q' 'noe' '_oat' 'nwa' 'noo' 'n__' 'naea' 'nuzo' 'n_q' 'n_e' 'n_' 'nooo_' 'noe_a' 'nag' 'nak' 'nti' 'n' 'nue' 'nuu' 'neg' 'neo' 'nukt' 'nsw' 'n_' 'nd' 'nau' 'nu_' '_aa' 'u_a' 'nnoa' 'noxw_' 'nmo_' 'n_e' 'nww' 'wo' 'n__' 'nw_' 'nmx_' 'n__a' 'nwo' 'ntn' '_on' 'nag' 'ew' '__' '__e' 'noooa_' '_et' '_e' 'o_' 'oat' 'www_' 'e' '_u' 'hu' '_' 'et' 'oa' 'aau' 'zi' 'at' 'o' '_a' 'ek' '_m__' 'e' 'ja' 'w' 'w_' 'a' 'fi' 'e_e' 'oa' 'o' '_a_' '_a' 'm_o_' 'bu' 'w_' 'nwww_' 'a_' 'a_' 'e' 'mxsw' '_a' 'uwn' 'q' '__' 'aa' 'oat' 'y' 'hb_e' 'ad' 'xw_' 'wu' '_a' 'guh__' 'mzeai''nous_na'
19 1,00 2,79 5,00 'noaq' 'noa' 'noaq' 'noaq' 'noa_' 'noa' 'noan' 'noa' 'noa_' 'noa_' 'noa' 'noan' 'noaq' 'noa' 'noa' 'noa_' 'noa' 'noaq' 'noa' 'noaq' 'noaw' 'noa_' 'noa' 'noaw' 'noa' 'noa' 'noa' 'noa' 'noat' 'noa' 'noaq' 'noa' 'noaq' 'noaq' 'now' 'now_' 'now' 'nou' 'noea' 'no_' 'n_a' 'noe' 'no_' 'noe' 'noo' 'no_' 'no_' 'noa_u' 'noe' 'noeu' 'n_au' 'noy' 'no' 'noe' 'no_a' 'nona' 'non' 'nma' 'no' 'noi' 'num' 'nuo_' 'nn__' 'nuoa' 'zo' 'nuw_' 'nw_' 'mda_' 'nww' 'nxw_' 'ntn' 'nnu_' 'nm_a' 'ntm_' 'eo' 'nmo' 'nak' 'nt' 'n_' 'n__' 'nie' 'nu_' 'n_' 'nm_a' 'n__' 'nz_' 'nd' 'nuoa' 'nau' 'mwa' 'q' 'nm_on' '_s' 'at' 'bu' 'te' '_m' 'oj' '_a' 'za' 'ei' 'x_' '__' 'tu' 'ane_' 'tm' '_' '_' 'w_' 'noooa_' 'nun__' 'kt' '_et' '_u' 'xw_' 'a_' 'u_q' 'ze' '_n' 'cth' 'wau' 'a_' 'noroee' 'noom_e' '__' 'zi' '_q' 'a' '__w' 'w_' '_a_' 'o_' 'w_' 'mw_' '_z' 'g_' 'o' 't' 'ew' 'gu_' 'xw_' 'o' 'wu' 'nwww_' '_' 'oa' 'e' 'nanoaq' 'wk_xu'
20 1,00 2,90 4,00 'noak' 'noao' 'noaz' 'noaq' 'noa' 'noa' 'noa' 'noaa' 'noat' 'noan' 'noat' 'noa' 'noaq' 'noan' 'noa' 'noa' 'noa' 'noa' 'noa' 'noat' 'noa' 'noaq' 'noa' 'noaq' 'noaq' 'now' 'no_' 'noe_' 'now' 'no_' 'no__' 'noag_' 'nona' 'non' 'nea' 'noo_' 'nod' '_oa' 'nou_' 'nou' 'nob' 'noe' 'n_a' 'noo' 'non' 'no' 'nou' 'n_au' 'noa_e' 'no' 'nor' 'noo_' 'ne_' 'nxw_' 'nuwu' 'nu_' 'm_a' 'nm__' 'nq' 'nao' 'eo' 'nee' 'nh' 'nooaq' 'ng' 'nu_a' 'm_a' 'nnou' 'uo_' 'nn_z' 'nuoa' 'nd' 'n__a' 'nau' 'nxwe' 'nug' 'nte' 'nee' 'nm_e' 'eo' 'nwt' 'naw' 'nmu' 'zo' 'nm_a' 'nu_j' 'nno_' 'noaoa_' 'w_' 'wu' '_a_u' 'ta' 'om__' 'a' 'g_' 'haq' 'ke' '_q' '_z' 'aq' 'nm_o_' 'nun_a' 'w_' '_u' 'numoa' 'x_' 'mzu' 'noom_u' 'w_' 'tau' '_q' 'oj' 'm_y' 'qd' 'oaq' 'wnuy' 'an' '_' '_' 'bau' '__' 'a' '_' 'an' 'oi' 'au' 'w_' 'm_i' '_eq' 'u' 'at' '_' 'oa_' 'nnu_a' '_' 'u' 'e_' 'w_' 'wu' 'rw_' '_q' 'u_z' 'ha_' 'j' 'aooa_' 'mwe' 'at' 'oa' 'ze'
21 0,00 2,83 4,00 'noah' 'noa_' 'noat' 'noao' 'noa' 'noan' 'noaz' 'noaq' 'noat' 'noan' 'noa_' 'noaq' 'noa' 'noa' 'noan' 'noa' 'noa' 'noa' 'noa' 'noat' 'noa' 'noaq' 'noa' 'noaq' 'noaq' 'nua' 'noza' 'nooa' 'non' 'now' 'now' 'niak' 'noe' 'no_' 'noe' 'no_' 'noo' 'neai' 'n_a' 'now' 'now' 'noo' 'noe' 'nou_' 'noo' 'noi' 'nowu' 'noum' 'no' 'no' 'noo' 'noet' 'noe' 'nou' 'nou' '_ot' 'n_z' 'n' 'nu' 'nau' 'nw' 'nu_' 'nm_m' 'n_q' 'mow_' 'nxw_' 'ao' 'nee' 'nd' 'nu' 'n__a' 'nnoe' 'nmoa' 'nuwu' 'uo_' 'nnd' 'nbw' 'nnoa' 'na' 'ne_' 'nug' 'nuu' 'nmoa' 'uo_' 'nnou' 'ng' 'nz' 'nou_a' 'nao_' 'u_a' 'nooo_' 'nxw_' 'n_' 'ne_' 'm' 'rwn' 'g' 'ow' 'i' 'oan' 'eu' 'hw_' 'dpxu' '_' 'o_' 'bu' 'nm_o_' 'oa' 'tto' 'nodey_' 'ke' 'w_' 'a' '_' '_' 'e_e' 'w_' 'ndmo_' '_' 'wu' 'u_ke' 'xu' 'oa' 'q' 'te' 'ug' 'xw_' 'noom_r' 'u_u' 'qd' 'g' 'mk__' 'aooa_' 'numoa' '_i' 'e' 'aw' 'ww' 'ma_' 'z_' 'an' 'o_' 'gz' '_' '_' 'm_e' 'd_ue' 'dpxu' 'm_w'
22 0,00 2,77 4,00 'noah' 'noah' 'noaq' 'noa' 'noa' 'noa' 'noa' 'noa' 'noaq' 'noa' 'noa' 'noat' 'noa' 'noaq' 'noau' 'noaq' 'noat' 'noa' 'noan' 'noae' 'noa' 'noa' 'noa' 'noa' 'noa' 'noat' 'noa' 'noaq' 'noa' 'noaq' 'noza' 'noum' 'noze' 'neai' 'noow' 'no_' 'nooa' 'nog' 'n_a' 'no' 'nou_' 'noe' 'no_' 'noe' 'now' 'now' 'nou' 'no_' 'toat' 'no_' 'nooo_' 'mow_' 'nw' 'aouo' 'nau' 'nound' 'jo' 'e_a' 'm_a' 'noux_' 'nu_a' 'nu_' 'nu' 'ntg' 'nau' 'nw' '_o_' 'nm_' 'uo_' 'nz' 'n__' 'na' 'u_a' 'uow' 'nez' 'n_' 'nm_o' 'nom_n' 'norwn' 'nau' 'nw' 'n__a' 'nuo' 'nug' 'n' 'uooi' 'n' 'nu_e' 'nnxa' 'nu' 'to' 'na' 'bo' 'nio' 'nk' 'na_' 'nto' 'n' 'n_' 'nz' 'dpa_' 'n_' 'nw' '_' 'aq' 'w_' 't_' 'numoa' 'o' 'wew' 'ba_' 'r_u' 'oa' 'oa' 'm_o' 'z' '_' 'a' 'o_' 'k_' 'jai' 'kj' 'o' '___' '_' 'wu' 'u_u' 'rwn' 'hah' 'uw' 'ua''noadpxu' 'e' 'o_' 'eu' 'u' 'no_om_' '_c' 'za' 'm' 'o' 'a' 'y_n' 'o_' 'd_ua' '_a' 'nodeza' '_q' 'uu_w'
23 0,00 2,73 4,00 'noah' 'noah' 'noah' 'noa_' 'noat' 'noaq' 'noax' 'noa_' 'noaq' 'noat' 'noa' 'noaq' 'noaq' 'noaq' 'noaq' 'noaq' 'noaw' 'noak' 'noa' 'noa' 'noa' 'noa' 'noat' 'noa' 'noaq' 'noa' 'nouo' 'noze' 'noo' 'naau' 'naau' 'non' 'nou_' 'noaey' 'nout' '_oa' 'noo' 'n_a' 'nza' 'noo_' 'noze' 'no' 'nou' 'nooe' 'noo' 'nou_' 'noow' 'no_' 'nou' 'nea_' 'noze' 'noee' 'nou' 'uoa' 'nuau' 'nog' 'not' 'nu' 'n' 'nw' 'noxz_' 'nonoa' 'ne' 'nean_' 'nb' 'n' 'n' 'ng_' 'to_' '_om_' 'nonoa' 'nuz' 'n_' 'q_a' 'nnxa' 'nmw_' 'nn_a' 'nau' 'ngu_' 'nw' 'nx' 'm_an' 'too' 'noo_a' 'nw' 'nw' 'ni_' 'nau' 'nw_' '_o_' 'bo' 'nmx' 'nk' 'nu_' 'nou_e' 'na' '_om_' 'ni' 'nuu' 'n_u' 'ne_' 'n_' 'no__g' 'uoe' 'tau' 'a' 'aq' 'o_' 'an' 'ba' 'nmu_o' 'noo_a_' 'i' 'q' '_rwn' 'hano' 'h' '_' 'tau' 'nodeza''noadpxe' 'nnoan' 'u_' 'ha' 'b_' 'ag' '_e' 'e__a' 'g' 'uw_' '_a' 'w_' 'at' 'u' '__' 't' 'w' 'w_' 'o' 'uuu' 'ta' 'z_' 'uu' 'nooaey' '_a' 'wew' 'za' 'jq' 'kw'
24 0,00 2,72 4,00 'noah' 'noah' 'noah' 'noah' 'noah' 'noah' 'noah' 'noad' 'noaq' 'noa_' 'noab' 'noak' 'noat' 'noaq' 'noaq' 'noau' 'noau' 'noa' 'noa' 'noaq' 'noa_' 'noa' 'noat' 'noa' 'noa' 'noa' 'noa' 'noat' 'noa' 'noaq' 'noo' 'non' 'nouw' 'nouo' 'noage' 'no_' 'noo' 'ngae' 'now_' 'nozu' 'noo_' 'noo' 'xoat' 'noi_' 'nou' 'naad' 'noe' 'noh' 'now_' 'noadu' 'noi' 'nou' 'no' 'nooq' 'noe_' 'nou_' 'noe' 'ooa_' 'nzo' 'noaenx' '_o_' 'to' 'nx' 'nuaau' 't_a' 'nw_' 'nm' 'nwu' 'nw_' 'nx' 'n_' 'nu_a' '_o_' 'nm_n' 'nonoa' 'nom_e' 'nona_' 'nonaa' 'w_a' 'nm_' 'm_an' 'nuuu' 'no__g' 'n_' 'nu_' 'nxw_' 'noam_g' 'oja' 'new' 'n_e' 'nnu_' 'ao' 'noo_a' 'n' 'nwu' 'noi_t' 'nt' 'u' 'y' 'ugu_' 'nouoah' 'j_' 'nuoza' 'a' 'e' 'm_e' 'ue' '_u' 'aq' '_aq' 'a' 'nooxw_' 'oa' 'us' 'bx' 'mw_a' '_u' 'ha' 'zu' 'at' 'ow_' 'h_' 'oe' '_um' 'w' 'oa_' '_' '_i_' 'ze' 'ws' 'sn' 'nox_ae' 'a' 'zu' 'u' '_' 'qa' '_' 'w' '_q' 'ag' 'nooxza' 'ah' 'o' 'oa' 'nodttg' 'nip_a' 'tau' 'uu'
25 0,00 2,65 4,00 'noah' 'noah' 'noah' 'noah' 'noah' 'noah' 'noah' 'noah' 'noah' 'noah' 'noah' 'noah' 'noah' 'noah' 'noab' 'noaw' 'noan' 'noab' 'noan' 'noan' 'nuah' 'noa_' 'noao' 'noa' 'noa_' 'noao' 'noa' 'noau' 'noa_' 'noam' 'noa' 'noa' 'noa' 'noq' 'nou_' 'noa_a' 'nna' 'no_' 'noe' 'noh' 'nou' 'noug' 'noo' 'noaau' 'nong' 'no_' 'nou_' 'noex' 'ngae' 'nooq' 'noo' 'no_' 'ngae' 'no_' 'nou_' 'noeq' 'nw_' 'nm_' 'n__' 'nau' 'nuw_' 'noxoa' 'nu_' 'oo' 'na_' 'noi_t' 'ne' 'nwu' 'n_e' 'ne' 'ni' 'n_' 'nke' 'nu_a' '_o' 'nem' 'ni_' 'nwu' 'nxwx' 'nuw_' 'ng' 'nxw_' 'n_' 'nonhu_' 'noxwa' 'nuoa' 'mua' 'noim_' 'uoit' 'nw_' 'nnoa' 'noi_t' 'n_' 'na' 'nonax' 'nwn' 'nak' 'ng' 'nuw_' 'w_' 'o_o_' 'ta' 'gmoa' 'zu' 'xw_' 'w_' '_' 'wu' 'a' 'a' 'o' 'u_' 'w_' 'tg' 'bu' 'e' 'w' 'u' '_i_' '_' 'w_' 'nonoaq' 'zu' 'a_' 'th' '_u' 'uw_' 'ja' 'ug_' 'ah' 'wu' 'xw_' 'gu' 'hap' 'nooxw_' 'gae' 'ae' 'u' '_a' 'oah' 'aq' 'aq' 'w_' 'nmoue' '__n' 'u_' 'a' 'g' 'aa'