Fixes in neighbor height calculation in training and kobold integration, and other fixes in population and training

This commit is contained in:
Vylion 2018-07-02 03:17:48 +02:00
parent 64a609ebe8
commit 18340e82ae
8 changed files with 254 additions and 200 deletions

View file

@ -2,7 +2,7 @@
local helper = adaptive_ai.helper local helper = adaptive_ai.helper
local chat_log = function(s) local chat_log = function(s)
minetest.chat_send_player("singleplayer", s) --minetest.chat_send_player("singleplayer", s)
end end
adaptive_ai.chat_log = chat_log adaptive_ai.chat_log = chat_log
@ -950,5 +950,6 @@ helper.mobs.runaway_from = runaway_from
helper.mobs.do_jump = do_jump helper.mobs.do_jump = do_jump
helper.mobs.set_yaw = set_yaw helper.mobs.set_yaw = set_yaw
helper.mobs.do_state_stand = do_state_stand helper.mobs.do_state_stand = do_state_stand
helper.mobs.update_tag = update_tag
adaptive_ai.helper = helper adaptive_ai.helper = helper

View file

@ -13,6 +13,7 @@ local chat_log = adaptive_ai.chat_log
local random = math.random local random = math.random
local abs = math.abs local abs = math.abs
local floor = math.floor local floor = math.floor
local ceil = math.ceil
local min = math.min local min = math.min
local max = math.max local max = math.max
local round = adaptive_ai.calc.round local round = adaptive_ai.calc.round
@ -47,6 +48,10 @@ local stats = {
fear_height = 2 fear_height = 2
} }
local directions = {
"northeast", "northwest", "southeast", "southwest", "north", "south", "east", "west"
}
local function get_genes(kobold) local function get_genes(kobold)
genes = {} genes = {}
for i = 1, stats.total_genes do for i = 1, stats.total_genes do
@ -62,22 +67,36 @@ local score = function(self)
return floor(total + 0.5) return floor(total + 0.5)
end end
local function eat(self, food)
local ate = false
if self.hp < stats.hp_max then
self.hp = self.hp + ceil(food/2)
if self.hp > stats.hp_max then self.hp = stats.hp_max end
ate = ate or true
end
if self.hunger < stats.hunger_max then
self.hunger = self.hunger + food
if self.hunger > stats.hunger_max then self.hunger = stats.hunger_max end
ate = ate or true
end
return ate
end
local function decide(self, neighbor_list) local function decide(self, neighbor_list)
if random() < self.focus then return nil end if random() < self.focus then return nil end
local pos = self.pos local pos = self.pos
local hunger_level -- Hunger level local hunger_level -- Hunger level
if self.hunger > stats.hunger_max * 0.6 then if self.hunger < stats.hunger_max * 0.1
hunger_level = 0 -- Good or self.hp < stats.hp_max * 0.8 then
--chat_log("Hunger: good")
elseif self.hunger > stats.hunger_max * 0.1 then
hunger_level = 1 -- Bad
--chat_log("Hunger: bad")
else
hunger_level = 2 -- Critical hunger_level = 2 -- Critical
--chat_log("Hunger: critical") elseif self.hunger < stats.hunger_max * 0.6 then
hunger_level = 1 -- Bad
else
hunger_level = 0 -- Good
end end
--chat_log("Hunger "..hunger_level) chat_log("Hunger "..hunger_level)
hunger_level = hunger_level * 648 -- stats.total_genes/4 hunger_level = hunger_level * 648 -- stats.total_genes/4
local dir_level local dir_level
@ -91,7 +110,7 @@ local function decide(self, neighbor_list)
else else
dir_level = 4 -- North dir_level = 4 -- North
end end
elseif pos.z < closest_food.z then elseif pos.z > closest_food.z then
if pos.x < closest_food.x then if pos.x < closest_food.x then
dir_level = 2 -- South-East dir_level = 2 -- South-East
elseif pos.x > closest_food.x then elseif pos.x > closest_food.x then
@ -106,9 +125,10 @@ local function decide(self, neighbor_list)
else else
dir_level = 4 dir_level = 4
end end
chat_log("Close food at "..directions[dir_level+1])
else else
dir_level = 5 dir_level = 5
--chat_log("No close food") chat_log("No close food")
end end
--chat_log("Dir "..dir_level) --chat_log("Dir "..dir_level)
dir_level = dir_level * 81 dir_level = dir_level * 81
@ -121,7 +141,7 @@ local function decide(self, neighbor_list)
node_height = round(node_height/3) node_height = round(node_height/3)
if node_height > self.climb then if node_height > self.climb then
current_neighbor = 2 -- Climb current_neighbor = 2 -- Climb
elseif node_height < self.fear_height then elseif node_height <= -self.fear_height then
current_neighbor = 1 -- Drop current_neighbor = 1 -- Drop
else else
current_neighbor = 0 current_neighbor = 0
@ -136,7 +156,7 @@ local function decide(self, neighbor_list)
node_height = round(node_height/3) node_height = round(node_height/3)
if node_height > self.climb then if node_height > self.climb then
current_neighbor = 2 -- Climb current_neighbor = 2 -- Climb
elseif node_height < self.fear_height then elseif node_height < -self.fear_height then
current_neighbor = 1 -- Drop current_neighbor = 1 -- Drop
else else
current_neighbor = 0 current_neighbor = 0
@ -151,7 +171,7 @@ local function decide(self, neighbor_list)
node_height = round(node_height/3) node_height = round(node_height/3)
if node_height > self.climb then if node_height > self.climb then
current_neighbor = 2 -- Climb current_neighbor = 2 -- Climb
elseif node_height < self.fear_height then elseif node_height < -self.fear_height then
current_neighbor = 1 -- Drop current_neighbor = 1 -- Drop
else else
current_neighbor = 0 current_neighbor = 0
@ -166,7 +186,7 @@ local function decide(self, neighbor_list)
node_height = round(node_height/3) node_height = round(node_height/3)
if node_height > self.climb then if node_height > self.climb then
current_neighbor = 2 -- Climb current_neighbor = 2 -- Climb
elseif node_height < self.fear_height then elseif node_height < -self.fear_height then
current_neighbor = 1 -- Drop current_neighbor = 1 -- Drop
else else
current_neighbor = 0 current_neighbor = 0
@ -175,6 +195,7 @@ local function decide(self, neighbor_list)
--chat_log("Height: "..node_height.."\tCurrent: "..current_neighbor.."\tNeighbors "..neighbors_total) --chat_log("Height: "..node_height.."\tCurrent: "..current_neighbor.."\tNeighbors "..neighbors_total)
local gene = hunger_level + dir_level + neighbors_total + 1 local gene = hunger_level + dir_level + neighbors_total + 1
--chat_log("Gene: "..gene)
chat_log("Gene: "..gene.."\tHunger id: "..hunger_level.."\tDirection id: "..dir_level.."\tNeighbors id: "..neighbors_total) chat_log("Gene: "..gene.."\tHunger id: "..hunger_level.."\tDirection id: "..dir_level.."\tNeighbors id: "..neighbors_total)
return self.genes[gene], gene return self.genes[gene], gene
@ -253,7 +274,7 @@ local function get_name(kobold, mother)
local name = correct_name(new_name(0)) local name = correct_name(new_name(0))
kobold.firstname = uppercase(name) kobold.firstname = uppercase(name)
kobold.name = kobold.firstname.." "..kobold.midname.." "..kobold.family kobold.name = kobold.firstname..(kobold.midname:len() > 0 and " "..kobold.midname or "").." "..kobold.family
end end
local function create(self, mother, father) local function create(self, mother, father)
@ -334,6 +355,7 @@ local function setup(self, mother, father)
create(self, mother, father) create(self, mother, father)
self.decide = decide self.decide = decide
self.score = score self.score = score
self.eat = eat
self.to_lines = to_lines self.to_lines = to_lines
end end
@ -365,5 +387,6 @@ kobolds.from_lines = from_lines
kobolds.decide = decide kobolds.decide = decide
kobolds.score = score kobolds.score = score
kobolds.to_lines = kobolds.to_lines kobolds.to_lines = kobolds.to_lines
kobolds.eat = eat
adaptive_ai.kobolds = kobolds adaptive_ai.kobolds = kobolds

View file

@ -23,11 +23,15 @@ local kobold_from_lines = kobolds.from_lines
local kobold_score = kobolds.score local kobold_score = kobolds.score
local kobold_decide = kobolds.decide local kobold_decide = kobolds.decide
local kobold_create = kobolds.create local kobold_create = kobolds.create
local kobold_eat = kobolds.eat
local get_from_census = population.get_from_census local get_from_census = population.get_from_census
local create_tribe = population.create_tribe local create_tribe = population.create_tribe
local add_to_tribe = population.add_to_tribe local add_to_tribe = population.add_to_tribe
local empty_population = population.empty local empty_population = population.empty
local get_couple = population.get_couple
local get_tribe = population.get_tribe
local popul_size = population.get_popul_size
local do_jump = helper.mobs.do_jump local do_jump = helper.mobs.do_jump
local set_velocity = helper.mobs.set_velocity local set_velocity = helper.mobs.set_velocity
@ -35,6 +39,7 @@ local is_at_cliff = helper.mobs.is_at_cliff
local set_yaw = helper.mobs.set_yaw local set_yaw = helper.mobs.set_yaw
local flight_check = helper.mobs.flight_check local flight_check = helper.mobs.flight_check
local set_animation = helper.mobs.set_animation local set_animation = helper.mobs.set_animation
local update_tag = helper.mobs.update_tag
local adjacent = helper.adjacent local adjacent = helper.adjacent
local file_tag = kobolds.file_tag local file_tag = kobolds.file_tag
@ -139,6 +144,7 @@ local function move_creature(self, yaw_id)
self.object:set_yaw(yaws[yaw_id]) self.object:set_yaw(yaws[yaw_id])
set_velocity(self, self.walk_velocity) set_velocity(self, self.walk_velocity)
self.state = "move" self.state = "move"
return true
end end
return false return false
end end
@ -193,6 +199,7 @@ local function get_founders(n)
local tribe_founders = {} local tribe_founders = {}
shuffle(founders) shuffle(founders)
for i=1,n do for i=1,n do
--chat_log("Shuffling founder "..founders[i].name)
table.insert(tribe_founders, founders[i]) table.insert(tribe_founders, founders[i])
end end
@ -209,13 +216,12 @@ local function load_kobold(self)
self.kobold = old_self self.kobold = old_self
if not old_self.genes then error("No genes") end if not old_self.genes then error("No genes") end
chat_log(old_self.name.." loaded "..#old_self.genes.." genes") chat_log(old_self.name.." loaded "..#old_self.genes.." genes")
self.timer = self.walk_velocity self.timer = 0
return true
else else
--self.kobold = nil self.kobold = nil
--chat_log("Nil kobold") chat_log("Nil kobold")
return false
end end
return false
end end
local function set_kobold(self, kobold) local function set_kobold(self, kobold)
@ -234,32 +240,48 @@ local function setup_kobold(self, mother, father)
return false return false
end end
local function place_kobold(p)
local ent = adaptive_ai:place_ai({
name = "adaptive_ai:kobold",
pos = p,
})
return ent
end
local function breed_kobold(self) local function breed_kobold(self)
local mother = self.kobold local mother = self.kobold
if not mother.tribe_id then if not mother.tribe_id then
--error("Breeding with no tribe.") error("Breeding with no tribe.")
return return
end end
local tribe_id = mother.tribe_id local tribe_id = mother.tribe_id
local tribe = population.tribes[tribe_id] local tribe = population.get_tribe(tribe_id)
--chat_log(tribe and "Got tribe" or "Didn't get tribe")
if tribe then if tribe then
local popul_size = tribe:popul_size() local popul_size = popul_size(tribe_id)
if popul_size < tribe.size * 2 then if popul_size and popul_size < tribe.size * 2 then
local p = mother.pos local p = mother.pos
p = {x=(p.x), y=(p.y), z=(p.z)} p = {x=(p.x), y=(p.y), z=(p.z)}
p.x = p.x + (random(0,1) - 0.5)*2 p.x = p.x + (random(0,1) - 0.5)*2
p.z = p.z + (random(0,1) - 0.5)*2 p.z = p.z + (random(0,1) - 0.5)*2
local father = get_couple(tribe_id, self.kobold) local father = get_couple(self.kobold)
local child = place_kobold(p) local child = place_kobold(p)
setup_kobold(child, mother, father) setup_kobold(child, mother, father)
update_tag(child)
chat_log("Parents are "..mother.name..", "..father.name)
chat_log("Child is "..child.name)
child = child.kobold child = child.kobold
child.tribe_id = tribe_id child.tribe_id = tribe_id
population.add_to_tribe(tribe_id, child) population.add_to_tribe(tribe_id, child)
return true return true
else
chat_log("Popul size: "..(popul_size or "none").."\tTribe max: "..tribe.size * 2)
end end
end end
return false return false
@ -270,6 +292,7 @@ kobolds.breed_kobold = breed_kobold
local kobold_decisions = { local kobold_decisions = {
function(self, dtime) -- idle function(self, dtime) -- idle
set_velocity(self, 0) set_velocity(self, 0)
self.state = "stand"
end, end,
function(self, dtime) -- wander function(self, dtime) -- wander
local n = random(1,#yaws) local n = random(1,#yaws)
@ -284,8 +307,7 @@ local kobold_decisions = {
local kobold = self.kobold local kobold = self.kobold
if kobold.food and #kobold.food > 0 then if kobold.food and #kobold.food > 0 then
local satiate = pop(kobold.food) local satiate = pop(kobold.food)
kobold.hunger = kobold.hunger + satiate kobold_eat(kobold, satiate)
kobold.hp = self.object:get_hp() + 1
self.object:set_hp(kobold.hp) self.object:set_hp(kobold.hp)
end end
end, end,
@ -298,38 +320,51 @@ local kobold_decisions = {
end, end,
function(self, dtime) -- move North function(self, dtime) -- move North
local move = move_creature(self, 1) local move = move_creature(self, 1)
self.state = move and "move" or self.state --self.state = move and "move" or self.state
end, end,
function(self, dtime) -- move South function(self, dtime) -- move South
local move = move_creature(self, 2) local move = move_creature(self, 2)
self.state = move and "move" or self.state --self.state = move and "move" or self.state
end, end,
function(self, dtime) -- move East function(self, dtime) -- move East
local move = move_creature(self, 3) local move = move_creature(self, 3)
self.state = move and "move" or self.state --self.state = move and "move" or self.state
end, end,
function(self, dtime) -- move West function(self, dtime) -- move West
local move = move_creature(self, 4) local move = move_creature(self, 4)
self.state = move and "move" or self.state --self.state = move and "move" or self.state
end, end,
function(self, dtime) -- move NE function(self, dtime) -- move NE
local move = move_creature(self, 5) local move = move_creature(self, 5)
self.state = move and "move" or self.state --self.state = move and "move" or self.state
end, end,
function(self, dtime) -- move SE function(self, dtime) -- move SE
local move = move_creature(self, 6) local move = move_creature(self, 6)
self.state = move and "move" or self.state --self.state = move and "move" or self.state
end, end,
function(self, dtime) -- move NW function(self, dtime) -- move NW
local move = move_creature(self, 7) local move = move_creature(self, 7)
self.state = move and "move" or self.state --self.state = move and "move" or self.state
end, end,
function(self, dtime) -- move SW function(self, dtime) -- move SW
local move = move_creature(self, 8) local move = move_creature(self, 8)
self.state = move and "move" or self.state --self.state = move and "move" or self.state
end, end,
} }
local function missing_food(pos)
if not pos then return true end
local still_there = false
for _,node in ipairs(food_nodes) do
--chat_log(minetest.get_node(pos) == node.name and "Food is still there" or "Food is no longer there")
still_there = still_there or minetest.get_node(pos) == node.name
end
--chat_log(not still_there and "Missing food" or "Not missing")
return not still_there
end
local manage_kobold = function(self, dtime) local manage_kobold = function(self, dtime)
local kobold = self.kobold local kobold = self.kobold
if kobold then if kobold then
@ -358,6 +393,10 @@ local manage_kobold = function(self, dtime)
minetest.set_node(food_pos, {name = "air"}) minetest.set_node(food_pos, {name = "air"})
end end
if missing_food(kobold.closest_food) then
kobold.closest_food = nil
end
food_pos = minetest.find_node_near(self.object:get_pos(), self.view_range, food_nodes) food_pos = minetest.find_node_near(self.object:get_pos(), self.view_range, food_nodes)
if food_pos then if food_pos then
--chat_log("Smelling good food") --chat_log("Smelling good food")
@ -368,7 +407,7 @@ local manage_kobold = function(self, dtime)
end end
end end
if not kobold.action or self.timer >= self.walk_velocity then if not kobold.action or self.timer >= 0.5 then
self.timer = 0 self.timer = 0
--chat_log("Time to decide for "..kobold.name) --chat_log("Time to decide for "..kobold.name)
kobold.hunger = kobold.hunger - dtime kobold.hunger = kobold.hunger - dtime
@ -380,20 +419,25 @@ local manage_kobold = function(self, dtime)
pos.y = p.y pos.y = p.y
pos.z = p.z + adjacent[i].z pos.z = p.z + adjacent[i].z
pos2 = get_surface(pos) pos2 = get_surface(pos)
neighbors[i] = pos2 and {x=pos2.x,y=pos2.y,z=pos2.z} or {x=pos.x, y=self.kobold.climb + 1,z=pos.z} --chat_log(not pos2 and "Emergency" or "Height: "..pos2.y)
neighbors[i] = pos2 and {x=pos2.x,y=pos2.y-pos.y,z=pos2.z} or {x=pos.x, y=pos.y+self.kobold.climb + 1,z=pos.z}
end end
chat_log("Closest food "..(kobold.closest_food and kobold.closest_food.x-p.x..","..kobold.closest_food.z-p.z or "none")) --chat_log("Closest food: "..(kobold.closest_food and kobold.closest_food.x-p.x..","..kobold.closest_food.z-p.z.." from me" or "none"))
local decision, d_id = kobold_decide(kobold, neighbors) local decision, d_id = kobold_decide(kobold, neighbors)
chat_log(kobold.name.." decides "..(decision and actions[decision] or "nothing").." -- "..(d_id or "error"))
kobold.action = decision
if decision then if decision then
chat_log(kobold.name.." decides: "..actions[decision])
kobold.action = decision
kobold_decisions[decision](self, dtime) kobold_decisions[decision](self, dtime)
else else
if not kobold.action then if not kobold.action then
chat_log(kobold.name.." decides nothing -- error")
kobold.action = 1 kobold.action = 1
kobold_decisions[1](self, dtime) kobold_decisions[1](self, dtime)
else
chat_log(kobold.name.." keeps decision: "..actions[kobold.action])
end end
end end
kobold.fitness = kobold.fitness + kobold_score(kobold) kobold.fitness = kobold.fitness + kobold_score(kobold)
@ -411,7 +455,14 @@ local manage_kobold = function(self, dtime)
end end
local function custom_on_step(self, dtime) local function custom_on_step(self, dtime)
local old_state = self.state
manage_kobold(self, dtime) manage_kobold(self, dtime)
--[[
if old_state ~= self.state then
chat_log("Current state: "..self.state)
end
--]]
if self.state == "move" then if self.state == "move" then
state_move(self, dtime) state_move(self, dtime)
@ -421,20 +472,11 @@ local function custom_on_step(self, dtime)
return false return false
end end
local function place_kobold(p)
local ent = adaptive_ai:place_ai({
name = "adaptive_ai:kobold",
pos = p,
})
return ent
end
local function place_tribe(p) local function place_tribe(p)
local roots = {x=p.x, y=p.y-2, z=p.z} local roots = {x=p.x, y=p.y-2, z=p.z}
local ents = {} local ents = {}
local popul = create_tribe(p, "adaptive_ai:kobold", get_founders(), kobolds.stats.view_range, kobolds.clone, 5) local popul = create_tribe(p, "adaptive_ai:kobold", get_founders(), kobolds.stats.view_range, kobolds.clone, 4)
local ent, pos, c local ent, pos, c
c = 0 c = 0
@ -442,8 +484,9 @@ local function place_tribe(p)
pos = get_surface(k.pos) pos = get_surface(k.pos)
ent = place_kobold(pos) ent = place_kobold(pos)
set_kobold(ent, k) set_kobold(ent, k)
--chat_log("Placing "..ent.nametag.."!") --chat_log("Placing "..ent.kobold.name.."!")
ent.kobold.pos = pos ent.kobold.pos = pos
update_tag(ent)
end end
chat_log("Placed tribe!") chat_log("Placed tribe!")
@ -507,8 +550,12 @@ minetest.register_chatcommand("empty_camps", {
minetest.register_chatcommand("founders", { minetest.register_chatcommand("founders", {
func = function(name, param) func = function(name, param)
local player = minetest.get_player_by_name(name)
for i,f in ipairs(founders) do for i,f in ipairs(founders) do
chat_log("Founder "..f.name) if player then
minetest.chat_send_player(name, "Founder: "..f.name)
end
end end
end end
}) })

View file

@ -28,7 +28,7 @@ local path = adaptive_ai.path.."population_"
local file_tag = {"tribe_list", "census"} local file_tag = {"tribe_list", "census"}
local function save_census() local function save_census(save)
local file, to_file, count, gene_copy local file, to_file, count, gene_copy
count = 0 count = 0
for _,c in pairs(census) do for _,c in pairs(census) do
@ -41,13 +41,13 @@ local function save_census()
mkdir(path..file_tag[2]) mkdir(path..file_tag[2])
file = io.open(path..file_tag[2].."\\"..c.name..".txt", "w") file = io.open(path..file_tag[2].."\\"..c.name..".txt", "w")
end end
file:write(to_file) file:write(save == false and "" or to_file)
file:close() file:close()
c.genes = gene_copy c.genes = gene_copy
to_file = (minetest.serialize(gene_copy)) to_file = (minetest.serialize(gene_copy))
file = io.open(path..file_tag[2].."\\"..c.name.." genes.txt", "w") file = io.open(path..file_tag[2].."\\"..c.name.." genes.txt", "w")
file:write(to_file) file:write(save == false and "" or to_file)
file:close() file:close()
end end
chat_log("Census: "..count) chat_log("Census: "..count)
@ -75,23 +75,26 @@ local function get_from_census(entity)
tribe.id = t_id tribe.id = t_id
tribes[t_id] = tribe tribes[t_id] = tribe
chat_log("Created tribe #"..t_id)
end end
if not populs[t_id] then if not populs[t_id] then
populs[t_id] = {creature} populs[t_id] = {creature}
chat_log("Created popul #"..t_id)
else else
table.insert(populs[t_id], creature) table.insert(populs[t_id], creature)
chat_log("Increased popul #"..t_id)
end end
end end
return creature return creature
end end
local function save_to_file() local function save_to_file(save)
local file = io.open(path..file_tag[1]..".txt", "w") local file = io.open(path..file_tag[1]..".txt", "w")
local to_file = (minetest.serialize(tribes)) local to_file = (minetest.serialize(tribes))
file:write(to_file) file:write(to_file)
file:close() file:close()
save_census() save_census(save)
timer = 0 timer = 0
dirty = false dirty = false
@ -112,7 +115,7 @@ local function add_to_census(creature)
disambiguate = disambiguate + 1 disambiguate = disambiguate + 1
end end
census[creature.name] = creature census[creature.name] = creature
--chat_log("New censed creature: "..creature.name) chat_log("New censused creature: "..creature.name)
end end
local function fill_tribe(tribe, popul) local function fill_tribe(tribe, popul)
@ -140,6 +143,7 @@ local function fill_tribe(tribe, popul)
creature.pos = p creature.pos = p
creature.tribe_id = t_id creature.tribe_id = t_id
--chat_log("Created "..creature.name)
table.insert(popul, creature) table.insert(popul, creature)
add_to_census(creature) add_to_census(creature)
@ -161,9 +165,11 @@ local function create_tribe(pos, name, founders, range, clone, size)
tribe.id = #tribes + 1 tribe.id = #tribes + 1
local popul = {} local popul = {}
local p local p, f
for _,father in ipairs(founders) do for _,father in ipairs(founders) do
f = {}
f = clone(father, f) f = clone(father, f)
--chat_log("Cloned "..f.name)
f.tribe_id = tribe.id f.tribe_id = tribe.id
p = {x=floor(pos.x+0.5), y=floor(pos.y+0.5), z=floor(pos.z+0.5)} p = {x=floor(pos.x+0.5), y=floor(pos.y+0.5), z=floor(pos.z+0.5)}
p.x = p.x + random(0,range) - floor(range/2 + 0.5) p.x = p.x + random(0,range) - floor(range/2 + 0.5)
@ -177,21 +183,27 @@ local function create_tribe(pos, name, founders, range, clone, size)
table.insert(tribes, tribe) table.insert(tribes, tribe)
save_to_file() save_to_file()
tribe.popul_size = function(self)
return #populs[tribe.tribe_id]
end
return popul return popul
end end
local function get_couple(t_id, creature) local function get_tribe(t_id)
--chat_log(tribes[t_id] and "Getting tribe" or "Not getting tribe")
return tribes[t_id]
end
local function get_popul_size(t_id)
return populs[t_id] and #populs[t_id] or nil
end
local function get_couple(creature)
local p = populs[creature.tribe_id] local p = populs[creature.tribe_id]
local i local i
repeat repeat
i = random(#t) i = random(#p)
until t[i].name ~= creature.name until p[i].name ~= creature.name
return t[i] return p[i]
end end
local function empty() local function empty()
@ -204,6 +216,7 @@ local function empty()
tribes = {} tribes = {}
census = {} census = {}
save_census(false)
save_to_file() save_to_file()
end end
@ -235,5 +248,7 @@ population.get_couple = get_couple
population.default_size = default_size population.default_size = default_size
population.default_range = default_range population.default_range = default_range
population.save_to_file = save_to_file population.save_to_file = save_to_file
population.get_tribe = get_tribe
population.get_popul_size = get_popul_size
adaptive_ai.population = population adaptive_ai.population = population

View file

@ -1,112 +0,0 @@
KOBOLD
genes
{5,11,6,4,12,8,8,4,3,1,2,5,5,2,6,7,11,12,2,11,5,7,2,4,10,3,8,5,4,4,1,8,10,7,12,9,6,11,8,8,8,3,6,1,4,9,6,7,4,8,1,8,5,9,12,10,10,10,1,9,1,6,12,8,11,9,4,1,5,12,2,1,11,8,4,9,5,7,7,2,2,9,8,9,6,3,10,2,5,8,3,1,12,10,11,8,10,7,3,12,4,4,1,2,3,11,12,8,12,10,7,9,10,9,3,10,1,4,11,9,8,10,8,8,6,10,3,6,2,12,9,4,1,7,11,11,7,9,5,12,11,9,12,5,6,7,4,3,11,12,11,5,11,10,12,9,5,11,11,11,2,11,9,10,12,7,7,6,4,6,2,12,8,1,7,10,6,2,3,1,4,8,10,5,12,12,3,9,11,12,4,7,4,8,7,11,2,8,11,7,11,2,9,11,4,12,6,10,10,6,11,4,11,3,7,2,8,12,1,7,6,12,3,2,2,8,6,12,11,11,8,1,11,4,10,5,12,11,11,4,4,5,3,6,5,4,8,11,9,8,7,7,4,3,7,8,7,7,11,2,12,3,2,5,3,2,12,12,8,8,6,8,9,3,9,12,11,8,1,11,5,2,1,2,2,7,3,4,10,6,9,6,10,2,12,1,1,1,12,5,8,4,3,1,9,8,7,8,2,2,4,5,2,6,10,7,12,6,6,5,11,9,8,12,11,8,6,11,12,4,3,5,7,4,6,11,4,9,5,3,8,4,3,1,3,11,1,6,12,12,3,5,1,11,9,12,9,3,8,8,7,6,7,9,11,11,3,11,8,8,5,12,4,6,4,9,1,2,12,8,2,6,5,9,10,3,11,1,3,4,4,7,9,2,2,2,8,7,9,10,9,10,9,9,4,12,8,7,12,2,12,9,2,3,6,8,6,6,8,11,6,2,12,12,6,10,9,9,2,12,8,7,12,3,2,9,6,6,10,2,12,8,5,10,10,3,4,2,10,3,2,5,12,6,8,4,4,5,4,10,1,7,4,4,9,4,1,6,10,12,1,6,5,6,7,7,4,10,7,4,4,3,2,9,10,3,1,6,8,1,10,2,3,2,12,6,7,3,10,6,1,8,10,7,11,5,12,2,9,5,4,5,5,4,11,5,3,1,8,7,8,5,10,12,8,8,12,9,4,4,4,9,3,9,7,2,3,1,6,12,7,9,7,4,6,3,5,12,7,5,3,6,10,5,5,8,9,5,8,3,11,9,12,11,6,3,4,4,6,10,1,8,2,8,12,12,4,5,6,4,9,8,10,1,2,3,12,7,7,9,3,6,12,1,12,5,1,11,3,2,3,4,3,3,4,6,11,10,3,1,8,1,1,1,8,3,6,4,4,5,11,8,8,3,6,4,1,1,8,9,5,2,9,8,6,11,3,12,8,6,12,9,11,11,7,10,7,6,3,12,8,12,2,6,3,8,4,8,7,5,5,7,2,12,2,1,1,4,10,8,5,4,1,1,3,5,1,8,9,1,2,2,1,5,4,5,2,9,1,10,1,11,11,8,5,9,11,3,10,2,11,2,4,7,7,2,7,6,8,9,3,1,11,9,9,9,10,8,11,7,10,8,1,11,5,7,1,6,8,11,6,10,8,4,2,6,4,5,7,2,9,11,3,7,2,12,5,8,7,9,5,11,1,4,8,6,4,5,5,3,1,3,5,11,6,7,9,11,10,8,6,9,4,1,11,11,9,5,4,4,4,12,4,10,3,11,11,1,12,12,5,7,9,4,8,1,12,10,2,11,11,3,3,11,2,3,9,12,1,1,10,5,1,5,6,12,5,12,4,11,5,1,10,10,6,4,12,5,3,7,6,6,11,7,4,4,4,7,5,12,5,12,9,3,11,5,4,6,6,5,5,2,5,4,1,6,3,4,2,10,11,7,1,4,9,11,1,6,8,10,1,9,6,7,5,3,9,1,1,8,4,5,10,1,3,9,12,6,6,7,10,7,4,12,5,5,5,7,9,5,5,11,10,7,4,6,3,12,9,8,3,11,12,11,12,3,5,3,6,1,1,9,11,11,3,7,7,7,10,10,6,12,10,11,9,2,1,2,12,1,1,1,6,4,9,3,11,12,10,2,1,4,2,5,4,3,2,1,3,12,7,5,12,6,7,4,6,11,11,6,10,2,6,3,6,10,12,1,11,10,1,12,2,8,10,7,7,1,9,6,1,8,3,9,4,11,8,4,10,12,1,4,3,6,11,9,9,6,3,8,4,9,2,5,1,5,1,1,7,11,7,8,12,3,10,9,1,1,3,11,4,3,4,8,6,3,12,2,8,8,4,12,4,12,7,10,4,1,9,10,3,3,1,10,5,8,11,10,5,7,4,5,9,10,5,9,5,6,4,10,1,9,8,9,5,3,3,5,2,7,5,1,12,4,2,9,2,1,9,4,5,4,5,2,6,4,8,2,8,7,2,8,2,12,8,1,2,8,7,6,9,8,10,10,11,8,6,10,8,9,9,11,7,12,9,9,2,4,10,4,11,9,7,9,5,2,9,7,4,5,12,12,12,5,9,10,4,11,7,4,6,12,7,3,8,9,6,1,2,8,12,9,12,6,9,2,10,12,3,3,12,2,9,3,1,7,12,9,9,3,7,8,8,6,3,5,12,4,1,7,12,2,5,10,7,2,11,6,1,11,2,9,5,4,3,3,8,5,10,5,9,8,3,1,9,3,4,8,3,10,5,2,6,12,8,12,2,7,9,9,12,6,2,3,3,10,1,10,6,12,6,9,7,6,11,4,4,1,11,7,1,8,9,11,6,8,1,11,10,8,9,5,6,3,10,3,9,11,12,3,7,6,8,1,8,7,10,10,9,12,4,1,6,10,6,7,1,11,11,3,4,2,11,6,5,5,3,6,10,8,4,6,8,10,3,7,5,2,1,7,10,7,9,12,8,10,1,12,4,5,8,9,3,12,4,2,2,2,1,12,2,12,4,1,4,12,1,3,8,6,12,7,1,4,7,9,4,2,9,12,8,6,7,8,10,9,6,8,4,3,1,7,4,6,12,2,10,6,4,10,6,2,9,3,6,9,4,12,8,9,10,8,9,4,1,12,3,12,8,3,9,4,4,7,1,2,7,8,12,8,7,4,5,9,11,2,6,12,11,6,4,8,8,10,3,2,2,8,2,6,11,2,9,11,11,11,3,10,5,7,11,1,12,6,11,2,6,1,4,2,6,10,3,3,2,6,9,6,1,7,9,3,4,1,9,6,4,6,3,3,7,8,10,7,10,1,9,2,12,10,3,9,8,2,5,3,8,2,1,9,9,11,1,3,2,5,9,4,6,7,9,5,3,7,12,2,12,4,6,6,10,5,4,9,8,9,10,1,9,11,8,10,9,7,9,3,7,8,3,9,3,7,4,4,10,11,7,4,6,3,10,10,1,7,6,6,6,1,10,5,12,4,11,2,2,8,8,6,6,10,7,6,7,6,9,6,9,4,7,4,4,9,8,3,6,11,10,10,3,10,5,9,5,12,12,9,6,11,7,2,3,4,10,11,9,9,9,6,3,6,9,12,6,1,4,2,11,8,2,6,7,3,8,3,12,8,9,9,12,9,1,1,3,10,1,4,8,10,9,5,10,10,6,1,12,1,11,6,9,3,6,11,11,2,3,9,1,7,6,2,11,11,6,7,4,12,12,5,7,12,8,9,5,11,3,1,12,1,6,5,7,1,1,7,3,8,3,9,8,5,8,9,11,5,10,3,1,3,1,7,5,10,8,11,11,9,1,7,5,3,7,1,7,5,9,11,2,7,10,3,1,6,8,12,1,5,1,11,5,12,6,7,11,7,1,1,12,8,7,8,8,5,6,9,2,2,5,4,6,1,5,6,2,11,5,5,11,3,9,4,12,7,12,2,3,8,6,10,4,11,6,7,1,6,10,10,4,8,6,1,6,7,1,3,7,9,2,8,4,8,12,5,12,12,2,9,7,7,1,4,8,5,9,3,10,10,11,7,3,2,8,11,6,8,2,3,5,4,6,1,6,5,4,8,2,7,12,2,5,2,1,11,10,6,5,11,8,6,7,10,7,9,11,12,8,4,11,9,4,4,2,2,6,11,5,5,2,10,9,3,8,10,5,8,4,5,1,4,8,2,11,2,6,2,5,1,7,11,5,12,3,10,8,7,3,12,1,12,1,9,8,5,5,5,11,3,8,1,7,8,7,7,7,3,1,4,10,3,6,1,3,12,1,3,7,5,10,12,2,5,2,1,7,8,7,9,2,4,2,2,11,6,6,7,8,10,9,9,1,10,3,5,7,10,4,2,3,7,3,5,10,6,8,1,8,10,8,8,4,11,11,2,4,8,}
focus
0.23404331377891
firstname
"Yunuta"
midname
"Patachpuanuy"
family
"Kukipuinzik"
food
{}
END_KOBOLD
KOBOLD
genes
{5,5,7,4,7,11,7,11,6,4,6,8,12,2,6,11,3,12,2,5,4,4,2,1,9,7,8,2,11,5,4,8,4,11,11,2,6,11,8,8,4,3,11,2,1,5,2,7,12,2,10,1,11,9,7,10,11,7,12,9,6,6,12,12,6,11,1,6,4,8,3,1,10,6,4,3,3,4,7,1,7,2,6,1,12,9,4,8,5,10,3,5,11,5,11,8,9,10,3,3,4,9,8,11,4,12,5,5,2,8,10,9,11,2,3,12,1,6,10,9,9,1,8,7,10,10,10,6,2,10,11,12,3,1,3,1,9,9,4,12,11,11,12,11,3,12,9,8,11,3,7,5,12,4,5,1,4,2,11,11,2,1,6,4,10,2,7,7,4,1,2,11,2,2,6,1,12,1,11,3,7,8,10,3,7,3,6,11,11,10,4,1,4,8,11,11,8,8,10,7,10,3,2,11,3,1,3,10,11,6,1,12,9,11,11,2,5,6,1,11,4,12,10,2,3,4,10,12,5,11,9,2,4,5,4,6,2,2,2,12,12,5,3,9,8,11,12,11,5,1,12,2,12,3,6,3,4,9,12,11,11,3,2,5,8,6,2,12,1,1,2,10,5,9,12,12,4,12,11,11,5,1,1,2,6,9,3,4,4,6,9,6,3,9,7,1,4,5,5,5,5,2,9,3,10,6,1,9,12,8,12,12,5,5,2,7,7,6,8,5,10,3,8,8,11,12,10,7,12,3,7,2,4,11,2,9,4,3,7,11,2,9,10,12,11,10,6,8,12,12,9,8,2,5,8,1,6,5,3,8,7,7,12,8,10,9,3,10,1,8,2,12,10,12,1,4,11,2,12,12,6,12,4,1,1,1,11,1,3,1,4,2,8,2,3,9,2,4,2,1,4,9,11,11,4,6,6,11,5,7,1,2,10,3,11,8,3,8,9,7,10,12,7,1,11,12,3,5,12,6,8,12,11,9,8,1,5,1,10,4,7,3,5,7,9,2,11,11,10,3,4,8,6,7,11,1,10,6,1,7,9,4,1,8,6,1,1,4,7,2,6,10,7,12,2,7,5,12,7,5,2,12,2,8,11,1,6,6,5,5,4,10,4,2,12,6,5,5,1,9,4,12,10,12,6,4,1,3,1,1,4,2,5,4,9,8,11,5,4,11,4,3,10,6,8,9,9,9,6,7,8,12,6,9,9,3,3,5,2,2,5,4,12,8,1,3,6,12,12,11,7,1,10,5,12,4,5,10,11,7,1,7,6,2,9,10,7,4,2,12,1,12,2,8,7,12,5,1,12,4,4,4,4,10,12,9,10,10,12,5,3,1,10,12,12,12,1,1,2,6,11,2,11,8,12,8,11,10,8,7,8,12,3,8,2,10,9,10,10,7,8,8,10,9,5,5,4,1,9,8,6,4,7,3,2,6,5,7,8,9,4,3,11,12,7,11,7,9,2,12,11,8,3,3,3,1,12,5,4,5,9,9,4,4,2,1,11,3,10,1,8,8,9,3,7,5,12,8,7,10,5,3,5,12,12,6,8,8,11,2,7,11,3,9,5,6,9,3,1,8,11,5,4,5,7,5,11,1,2,1,6,6,3,7,7,12,6,1,9,10,12,7,10,11,5,8,3,6,5,12,6,10,4,4,6,6,4,5,7,3,8,11,3,7,4,6,1,8,11,1,6,11,4,2,8,12,3,4,2,3,5,10,8,8,2,9,9,12,7,9,5,6,1,1,10,6,8,6,3,11,11,9,2,10,4,4,11,1,7,3,2,3,4,11,3,5,7,11,3,9,11,9,5,4,5,3,9,4,1,7,9,5,2,6,1,10,5,5,11,11,2,2,7,10,6,3,4,4,4,2,5,12,9,11,6,4,11,9,5,6,10,3,3,3,11,8,11,6,9,2,1,10,11,5,11,5,11,4,6,11,5,7,5,7,7,2,1,7,7,4,1,10,10,7,6,7,3,2,12,7,4,5,10,8,2,3,6,3,6,11,8,6,1,12,6,1,11,7,7,3,5,8,4,10,6,10,3,7,9,8,9,9,3,3,1,6,10,7,8,2,6,12,11,7,7,8,7,7,2,10,6,10,2,12,12,2,9,5,3,7,8,5,5,4,8,3,11,12,12,1,4,11,2,5,4,12,8,1,5,12,7,1,11,11,6,6,4,1,4,6,1,6,6,4,8,5,2,1,10,12,11,8,12,3,10,1,9,12,2,8,6,8,10,9,6,11,10,6,10,7,11,5,11,6,1,12,4,1,4,3,1,8,5,5,1,12,12,4,7,1,5,8,12,11,8,12,6,8,12,11,4,11,4,7,4,3,12,12,3,12,4,8,3,9,7,10,4,3,2,12,7,1,1,1,2,8,7,7,12,2,12,6,3,10,9,1,11,5,7,10,1,7,9,12,5,3,1,5,11,2,3,1,4,2,5,1,2,9,2,11,10,4,2,6,6,10,6,4,8,7,2,11,9,12,8,5,4,2,9,11,3,1,4,10,8,4,6,5,8,9,9,11,1,12,12,9,6,4,5,3,4,2,6,8,7,5,6,3,4,8,4,12,8,12,3,6,1,11,1,4,6,12,6,12,1,8,10,5,2,3,12,9,3,6,2,12,8,2,4,3,6,8,11,11,1,7,10,9,2,10,1,12,2,6,4,12,2,4,1,12,7,4,5,10,3,11,11,1,6,6,10,9,7,8,3,10,9,6,10,8,12,11,3,9,9,8,3,2,3,10,5,4,5,4,9,12,8,1,8,10,3,6,2,6,3,9,2,10,7,6,2,2,4,11,7,8,6,12,1,10,7,2,11,11,1,3,5,11,9,7,10,5,1,9,12,12,12,11,12,10,4,11,8,2,10,3,2,7,9,2,2,2,6,9,9,11,11,10,3,6,5,12,5,2,1,6,2,10,2,8,10,7,2,10,1,7,12,10,7,2,6,7,12,8,12,11,9,6,11,5,11,8,5,7,5,10,6,4,11,5,2,12,9,7,7,7,5,10,3,5,7,10,8,4,7,9,1,6,8,12,1,4,2,12,2,10,5,1,5,3,6,9,8,3,12,1,6,7,8,10,6,12,9,2,10,4,4,2,8,3,11,9,11,3,1,12,3,12,5,3,9,4,8,7,3,2,6,3,11,4,9,9,4,12,9,6,1,7,11,4,5,1,6,5,3,2,2,4,4,10,8,1,12,2,11,11,12,7,12,9,11,8,2,1,11,1,6,10,6,7,10,9,11,2,12,6,5,6,4,6,9,4,4,4,2,3,9,9,12,5,3,8,5,2,10,10,9,2,4,9,11,10,6,7,3,4,1,2,4,9,11,4,10,4,10,6,4,5,8,7,2,12,10,7,8,2,12,4,9,6,8,5,6,5,1,9,2,11,9,11,1,10,9,7,5,8,6,8,9,11,8,2,2,4,10,5,12,5,2,6,6,12,11,9,4,7,6,1,8,11,12,1,10,2,7,6,11,3,6,3,5,5,12,11,9,12,9,2,7,1,11,9,7,11,6,3,10,5,3,5,5,12,10,10,12,8,3,12,12,7,6,12,10,12,9,11,2,5,9,6,12,4,6,1,9,8,5,8,4,6,5,1,7,3,10,11,8,3,11,9,8,4,6,10,11,10,5,3,6,3,1,6,12,8,6,2,11,1,9,4,1,9,3,11,2,5,2,7,10,2,1,2,6,7,3,8,7,11,1,10,8,8,6,1,8,7,12,11,9,11,6,7,8,4,2,3,12,9,10,7,12,1,3,7,5,10,2,8,7,11,5,11,8,6,9,3,11,1,12,8,12,6,7,5,5,3,2,6,10,1,5,12,2,1,12,6,1,12,9,10,10,5,3,6,9,10,7,5,1,9,6,2,6,4,6,4,6,9,5,6,9,7,4,11,6,5,9,11,11,6,3,11,9,8,3,2,6,3,6,8,4,8,1,1,6,12,4,10,11,8,6,6,8,12,7,8,4,7,5,9,12,5,1,12,9,1,4,10,8,6,12,1,4,3,10,1,10,7,2,3,6,9,6,9,2,3,12,8,1,11,6,6,9,3,1,1,12,9,5,7,6,5,6,11,5,1,2,9,1,1,8,9,10,6,8,8,11,9,10,4,9,5,1,9,9,11,5,12,12,10,12,10,8,9,9,11,10,10,8,5,11,1,9,6,5,1,5,11,9,12,8,6,10,4,3,11,1,2,2,11,3,8,5,8,8,8,11,5,7,9,7,6,1,1,10,4,7,10,12,7,1,5,3,7,2,6,10,9,10,8,8,2,7,6,11,9,9,4,8,7,7,6,4,3,2,10,5,1,2,8,9,10,7,1,4,7,4,11,3,5,12,12,12,1,2,2,12,1,11,7,10,4,1,8,}
focus
0.33772664250454
firstname
"Kafaki"
midname
"Patachpuanuy"
family
"Kukipuinzik"
food
{4,}
END_KOBOLD
KOBOLD
genes
{5,11,3,6,2,3,12,11,3,11,2,11,10,3,12,9,10,3,9,8,1,3,4,3,10,6,8,4,3,5,10,9,4,10,9,7,12,12,3,5,11,3,12,8,2,9,11,4,12,7,12,7,8,10,10,7,7,1,2,7,10,7,10,4,11,9,12,9,7,1,1,8,1,3,3,10,2,10,2,8,1,5,8,9,11,9,8,3,8,11,4,3,3,12,2,10,5,8,6,3,5,12,7,10,4,11,5,11,8,4,7,11,7,4,8,8,9,10,3,3,6,9,5,5,11,7,12,6,7,1,2,5,12,10,3,4,9,11,6,1,2,7,12,10,3,8,5,3,11,1,10,9,11,5,11,1,8,5,10,7,7,10,5,2,12,10,9,3,7,8,5,1,2,7,5,8,12,9,3,11,5,8,6,4,2,9,10,9,12,7,10,7,3,4,5,3,1,3,10,12,5,12,2,8,4,4,7,7,11,6,1,11,8,11,4,8,5,5,7,10,5,9,8,10,3,10,8,1,8,4,2,9,11,1,2,5,2,10,7,6,12,9,3,5,1,8,4,3,10,6,12,1,6,1,12,8,2,11,4,6,11,3,1,2,1,6,7,10,10,1,10,8,9,8,4,12,11,4,8,6,4,8,10,9,1,9,7,12,6,8,4,12,10,1,9,8,11,11,3,2,6,11,12,3,3,12,9,2,3,12,3,6,8,7,2,4,11,4,11,3,7,4,3,4,11,2,5,10,6,6,11,12,5,9,11,6,12,3,5,3,5,1,9,1,4,9,1,7,8,12,12,10,1,2,5,8,1,3,6,1,7,2,5,2,8,12,1,11,5,7,4,12,6,1,5,5,8,5,6,4,8,1,11,8,8,11,10,8,10,3,10,8,6,5,12,9,6,10,8,1,5,1,9,12,5,9,5,2,10,5,12,1,10,7,7,7,2,3,2,4,11,6,5,12,12,9,1,7,8,10,10,1,7,7,9,5,4,5,3,9,11,1,8,7,9,1,8,11,3,1,7,1,2,11,1,1,12,4,1,10,10,5,3,1,6,2,12,11,2,12,6,2,7,7,3,9,6,11,10,12,6,9,6,11,4,10,3,12,5,7,3,4,3,7,2,8,8,10,12,6,5,3,8,10,12,5,3,12,1,2,5,11,8,4,4,10,3,9,7,8,9,7,10,1,4,1,9,7,6,1,10,9,12,3,3,1,12,11,7,8,12,9,11,9,6,4,6,5,1,11,1,11,9,2,9,8,2,10,10,7,6,5,3,6,4,8,7,8,1,8,6,8,7,4,6,5,2,7,1,8,8,12,2,4,1,4,8,4,12,3,11,11,5,10,3,8,9,8,7,7,2,10,2,8,6,7,6,12,12,1,11,4,6,12,4,10,11,6,10,8,4,4,7,11,8,1,7,3,9,7,4,12,4,12,5,7,4,6,8,10,10,6,6,12,7,11,7,4,9,10,11,11,12,5,5,11,10,12,1,12,1,6,1,5,2,1,3,9,5,4,4,9,1,2,7,1,4,10,7,11,7,2,7,1,12,5,7,7,11,12,5,3,2,1,8,12,4,3,11,7,6,8,12,3,2,2,3,9,3,12,10,8,7,3,12,11,7,10,6,1,3,11,4,3,2,1,6,1,9,6,1,5,9,6,10,2,5,10,5,2,4,6,9,6,10,10,5,4,8,5,5,2,9,2,1,8,10,3,7,5,2,9,10,7,5,2,11,9,8,2,4,2,12,3,4,6,6,11,5,11,6,11,7,3,11,12,4,8,11,9,12,3,10,7,7,2,5,3,3,5,5,11,7,10,11,11,12,5,2,7,9,9,10,10,12,11,2,7,3,11,8,10,2,4,2,2,9,1,3,9,6,5,1,6,10,7,2,10,3,12,4,8,5,12,10,2,12,4,1,12,4,10,2,10,6,2,10,6,2,12,11,9,3,3,10,7,8,7,11,1,1,12,7,5,6,1,12,6,8,6,2,7,4,3,7,3,10,7,12,11,11,12,11,7,2,2,8,11,8,3,7,1,9,8,9,5,10,8,9,1,1,1,8,7,1,5,10,3,5,7,2,3,8,12,6,9,1,6,9,4,3,2,12,9,12,2,9,9,12,7,8,11,11,11,10,5,1,1,5,4,1,12,8,4,4,9,1,6,8,5,8,12,2,7,2,3,7,9,2,12,6,1,12,8,10,11,7,11,6,4,9,6,4,5,6,8,3,1,4,6,12,5,5,5,7,7,7,10,8,6,7,7,8,5,11,10,12,9,9,9,9,11,5,9,1,9,5,6,6,1,10,9,12,6,11,3,12,4,7,10,4,9,10,7,11,8,8,10,11,3,4,8,1,8,1,10,10,9,11,9,5,12,7,1,3,6,4,6,12,10,8,3,8,6,4,1,11,5,8,3,9,11,6,2,10,1,6,1,4,10,5,4,7,12,3,11,10,10,10,11,11,6,10,12,5,3,6,3,2,8,10,11,1,9,7,11,3,1,10,12,2,1,7,6,1,8,11,6,1,8,9,10,4,2,7,10,10,4,7,5,12,4,11,11,6,12,7,12,5,9,9,11,2,11,10,3,1,11,7,9,2,9,4,1,4,11,2,6,4,6,5,5,6,7,9,10,3,1,3,9,8,7,9,10,6,11,5,9,9,12,8,3,6,3,10,7,12,4,11,11,10,10,12,4,4,6,4,3,1,8,9,1,8,8,12,1,9,2,11,4,2,6,8,12,1,6,11,10,2,6,9,11,2,9,5,2,8,5,4,3,6,6,1,6,2,8,2,5,4,6,10,7,7,10,9,6,6,11,1,3,11,1,6,4,9,7,1,8,10,11,8,4,5,6,12,5,7,2,11,1,4,12,1,12,3,7,8,4,9,6,2,5,7,12,4,4,8,2,4,5,4,5,7,6,2,7,11,6,6,8,4,10,3,2,10,10,4,12,4,4,3,5,3,12,9,8,11,5,1,4,6,7,6,3,9,6,6,3,6,10,7,11,3,8,6,2,3,5,6,8,1,10,9,3,11,2,4,4,7,12,3,3,8,7,12,4,6,10,6,1,8,11,10,11,12,8,10,6,8,6,6,5,8,8,10,9,7,4,4,11,8,11,2,5,6,10,3,9,6,11,6,7,9,8,4,12,9,6,11,6,2,6,7,8,11,5,10,8,7,9,5,9,8,11,2,2,7,10,12,8,6,8,5,8,11,11,12,8,2,9,7,2,2,1,6,1,8,1,12,3,4,10,9,2,12,2,10,12,11,7,12,5,2,3,11,5,7,12,3,10,10,1,10,6,7,1,5,9,5,10,1,3,3,1,4,3,11,6,5,11,11,3,11,12,10,6,6,9,4,4,2,10,10,5,11,8,1,1,1,2,4,6,10,10,11,1,7,12,2,1,1,7,10,11,9,10,8,10,6,2,4,6,2,2,1,12,4,11,1,2,12,2,2,2,7,4,1,11,8,11,12,6,3,1,5,1,12,7,10,7,2,12,2,6,2,1,10,2,4,12,1,5,1,6,4,5,3,12,6,11,1,4,8,3,9,10,10,9,2,6,7,11,9,5,3,9,11,9,5,6,4,6,10,10,4,8,7,4,9,11,1,11,7,7,3,8,12,9,2,10,3,2,2,12,6,5,6,8,9,1,6,2,1,1,3,2,1,7,12,11,5,2,4,5,3,4,12,4,5,7,8,4,1,10,6,4,3,2,5,1,2,8,3,1,12,12,10,6,2,1,1,5,10,8,1,8,11,4,4,3,12,4,6,9,9,9,9,2,11,7,4,6,4,5,3,6,10,8,4,3,10,3,3,11,9,11,8,8,1,6,3,10,10,10,5,3,6,9,10,1,7,1,2,3,12,11,6,10,3,2,6,1,6,8,11,1,3,6,2,4,6,12,1,12,6,12,2,11,2,4,11,4,7,11,2,6,6,6,1,4,3,5,1,3,3,1,5,3,3,1,4,7,1,3,10,1,8,2,3,3,12,12,12,12,2,9,9,7,3,3,4,6,1,3,11,2,5,4,1,1,1,9,10,8,7,3,8,5,9,3,4,1,8,2,3,8,10,2,10,10,1,7,7,7,3,5,1,11,9,7,6,5,4,2,6,8,4,11,4,2,2,2,7,6,10,11,2,8,2,3,1,8,5,7,8,2,10,8,11,2,5,8,7,10,5,2,12,8,11,11,8,6,1,5,11,1,2,1,3,6,8,12,5,5,11,4,7,9,10,5,8,12,7,10,1,7,10,2,5,7,2,1,2,12,3,9,11,3,10,8,2,9,1,2,4,12,10,1,4,1,1,6,10,3,8,1,1,2,10,10,12,1,5,8,5,6,6,9,5,7,5,2,11,4,11,3,12,1,5,7,10,11,6,11,}
focus
0.28907365487597
firstname
"Kisasku"
midname
"Znusasianuy"
family
"Tukipusanzik"
food
{5,}
END_KOBOLD
KOBOLD
genes
{8,2,8,9,1,4,8,10,3,4,1,9,1,7,11,11,1,8,12,6,5,5,9,12,10,11,5,3,3,10,6,3,2,9,9,10,11,5,10,6,3,3,4,3,5,9,5,2,5,11,12,4,5,1,9,9,4,10,5,9,1,10,4,8,6,9,8,1,5,12,6,11,11,12,2,1,5,7,7,6,11,8,4,9,6,3,10,2,1,4,11,7,9,1,11,8,10,10,1,12,4,7,2,1,12,4,5,9,3,8,10,9,4,3,9,3,11,4,7,6,2,6,9,9,9,10,9,6,7,7,9,8,11,12,3,6,7,7,7,1,2,6,5,10,3,7,4,6,12,11,5,4,10,6,10,9,1,5,2,11,2,1,5,3,11,12,7,6,7,8,11,1,5,7,12,8,12,7,12,11,5,8,10,2,11,2,11,7,11,12,8,3,3,8,11,2,2,6,11,10,11,2,2,10,4,3,7,10,1,8,11,11,9,3,4,5,8,11,5,3,4,5,3,1,3,10,12,8,11,7,8,6,3,4,4,2,3,5,11,4,10,7,2,6,8,12,1,5,11,8,10,2,4,10,5,5,7,5,3,1,10,2,10,5,9,2,9,7,12,8,6,8,9,10,1,12,11,8,1,10,8,9,7,2,10,9,7,5,10,1,5,6,10,6,10,4,3,6,10,10,3,4,5,1,4,10,1,4,3,2,7,5,11,10,7,6,7,4,6,4,9,9,4,11,11,1,7,7,12,6,8,5,2,4,4,6,10,2,8,7,8,8,9,1,11,5,2,8,10,3,2,5,10,2,10,2,3,12,8,10,7,1,12,1,12,11,8,11,6,9,5,12,10,12,4,9,2,2,12,7,10,11,4,11,4,11,11,12,3,1,7,4,11,10,2,8,8,11,9,10,6,10,12,6,4,5,5,2,4,4,3,1,2,8,5,5,5,5,7,10,4,6,5,12,5,4,10,9,1,6,10,9,7,4,5,8,8,5,3,5,12,9,2,1,8,10,8,1,5,2,5,11,7,12,9,4,4,4,12,2,12,3,8,7,9,4,7,10,10,11,3,2,7,1,3,2,1,10,11,10,3,1,3,9,3,10,2,10,10,1,6,4,1,11,5,6,12,11,10,5,1,6,10,8,6,2,7,2,5,5,3,12,11,8,12,10,10,6,9,7,12,10,8,12,8,9,5,8,9,6,4,9,2,5,5,10,7,3,5,2,8,5,8,8,11,9,10,11,7,3,3,10,10,11,9,11,9,6,10,7,11,4,12,9,8,3,4,8,6,2,9,6,10,2,12,12,11,9,6,9,9,11,2,2,6,3,6,7,7,1,2,9,3,1,12,3,2,7,3,11,3,1,6,3,4,2,5,10,2,7,8,5,10,12,7,1,3,6,2,5,8,4,11,9,1,1,9,1,2,5,5,4,1,8,3,7,6,1,8,6,12,9,4,3,7,11,11,8,12,12,6,12,4,1,3,8,9,4,7,5,8,6,12,12,9,5,1,4,7,8,10,9,1,1,11,1,1,4,5,10,11,11,6,5,10,5,4,9,6,3,2,4,2,2,3,10,2,7,10,9,6,8,12,10,3,7,4,6,8,4,6,1,7,6,9,9,8,2,6,9,11,8,1,8,5,2,7,10,9,11,8,4,11,4,6,3,8,4,6,8,1,11,3,7,1,12,3,8,10,11,3,11,4,12,11,12,12,5,10,3,7,3,12,3,4,5,8,7,10,5,4,12,4,5,7,5,6,10,8,3,1,9,5,5,11,3,9,4,3,11,7,7,8,10,3,9,12,11,11,6,11,12,11,11,4,12,5,12,5,7,12,7,8,5,6,7,10,9,4,11,11,10,6,12,6,4,3,2,6,8,12,11,11,7,12,7,9,5,5,12,10,9,1,3,8,8,4,2,11,9,3,1,1,4,8,6,5,4,11,11,9,4,12,4,10,7,9,7,9,2,6,10,6,5,3,5,2,1,1,4,4,1,10,12,6,1,9,8,12,7,10,6,11,12,6,2,7,7,8,8,4,4,2,10,2,5,5,4,9,8,9,12,1,3,12,3,10,3,2,8,4,2,8,12,9,7,3,7,1,5,1,10,6,9,9,2,2,10,1,7,10,1,11,8,10,3,1,8,10,5,8,2,2,7,11,7,11,6,3,12,3,10,2,6,12,4,7,11,11,6,5,1,9,3,6,10,10,1,12,2,8,8,8,5,2,7,1,8,4,6,12,8,5,9,4,1,9,4,6,9,2,10,8,1,2,10,6,6,10,10,11,4,6,1,12,4,2,4,5,8,7,12,11,3,6,1,1,12,3,3,4,4,1,10,11,3,3,2,8,8,12,6,4,4,2,11,8,7,4,10,6,8,1,3,7,11,10,12,8,5,4,10,12,1,7,6,4,6,9,5,3,9,8,1,5,3,11,11,4,5,10,1,4,5,3,9,5,7,11,8,5,10,4,2,5,7,5,9,12,7,10,8,5,10,1,3,6,8,4,12,9,7,4,2,3,3,1,1,10,8,4,9,9,12,10,10,9,2,10,4,11,4,1,3,4,4,11,9,5,9,9,2,2,1,8,7,4,5,7,8,6,12,3,1,4,11,6,1,1,8,12,8,12,6,7,3,12,1,3,4,12,3,7,11,1,7,3,9,9,3,9,8,7,3,10,5,4,1,9,9,10,10,5,10,12,9,8,1,1,11,5,2,5,1,6,12,8,5,7,9,1,8,8,1,9,1,7,5,10,10,5,2,2,12,8,8,9,5,9,9,2,6,7,3,1,5,10,9,12,2,1,10,9,9,6,11,7,5,5,12,10,5,9,6,10,8,1,8,3,11,9,5,2,6,2,6,8,12,11,3,8,6,11,4,11,7,8,3,11,7,4,4,6,9,6,8,11,6,2,7,8,2,11,6,12,10,3,6,8,1,2,10,5,10,9,7,5,6,12,7,4,11,11,9,12,5,12,12,1,12,4,9,4,10,9,8,3,10,2,2,11,11,12,12,4,7,6,5,2,8,8,8,3,1,2,8,2,5,9,12,9,4,10,12,12,11,6,12,4,7,2,4,3,6,1,5,11,12,4,12,11,2,8,5,4,9,12,7,2,9,6,3,6,5,11,4,9,10,8,3,5,10,11,8,1,12,8,8,4,9,8,4,5,9,5,10,4,4,10,9,3,2,3,9,2,3,2,6,6,9,3,3,12,11,1,8,5,5,12,3,5,3,5,6,11,2,1,1,12,3,2,10,12,4,7,12,12,6,2,3,11,4,4,11,2,1,2,4,5,2,7,10,9,7,2,1,5,9,12,9,4,2,8,3,11,12,6,2,1,7,9,12,1,3,2,8,2,4,6,4,6,11,2,9,5,5,12,6,7,5,6,11,5,2,11,4,9,10,4,7,3,4,1,7,9,6,2,6,8,2,9,4,6,11,4,11,3,5,8,10,10,12,4,9,11,7,6,1,6,2,3,2,3,1,3,7,4,9,6,7,8,9,3,6,7,9,10,4,3,11,4,10,1,5,2,11,3,6,3,2,1,9,12,9,8,11,11,11,4,2,5,3,12,1,5,7,7,5,10,6,8,10,6,10,2,1,5,8,6,3,12,8,8,6,8,2,5,9,2,10,3,1,2,7,1,5,1,8,7,1,9,8,7,1,1,3,11,2,10,1,5,11,9,2,3,4,5,5,5,2,6,1,2,7,1,12,9,5,5,8,11,4,11,1,8,1,7,1,6,5,8,10,9,5,6,2,2,9,8,8,8,9,10,5,12,1,2,8,5,7,5,1,12,2,4,4,11,9,1,3,4,12,12,10,4,11,12,10,11,3,4,6,8,11,8,9,2,8,12,12,5,5,8,3,4,11,11,9,6,11,4,5,5,9,8,8,10,6,10,1,2,2,10,9,7,2,2,3,2,2,7,6,4,11,5,4,6,7,4,10,10,9,4,6,11,9,3,2,5,1,9,11,1,3,5,7,2,12,7,2,7,5,4,3,1,11,4,10,5,7,8,4,9,3,9,8,3,7,4,5,7,7,7,2,12,3,5,1,4,8,7,5,9,2,3,2,12,10,8,10,12,4,12,6,11,1,1,8,7,4,5,6,4,1,7,7,3,9,4,4,10,7,12,11,5,10,2,2,4,7,6,4,3,8,4,11,6,7,6,2,11,2,12,2,5,6,6,3,2,12,2,5,11,7,7,1,8,8,3,9,9,3,9,11,11,12,7,3,1,8,7,12,3,3,1,12,5,7,3,9,2,5,8,3,8,2,5,7,9,10,12,2,7,6,8,5,12,8,3,10,9,6,9,12,8,8,5,9,1,8,4,8,5,7,7,8,3,5,12,7,10,4,8,9,8,10,2,1,3,4,11,2,1,8,}
focus
0.15512212367605
firstname
"Tatakaka"
midname
"Napauuanuy"
family
"Kukipuinzik"
food
{4,}
END_KOBOLD
KOBOLD
genes
{5,11,1,12,7,2,11,12,12,9,2,9,10,3,9,8,8,4,3,1,1,11,9,10,4,2,11,4,1,11,6,10,2,3,11,11,4,2,8,1,8,9,1,10,6,4,8,4,4,8,9,9,1,1,8,10,1,1,1,8,5,2,2,2,6,11,4,7,5,2,4,9,4,7,6,3,4,1,3,9,12,2,6,3,3,7,3,2,5,5,1,3,7,7,5,7,8,12,5,4,8,12,9,10,6,7,12,1,4,7,5,12,8,11,12,12,8,10,7,10,4,8,10,11,11,3,3,2,4,11,12,6,12,12,7,6,8,7,6,3,10,1,6,9,12,12,1,10,12,3,6,10,11,12,6,10,5,5,5,2,5,8,5,6,10,3,1,7,2,7,1,5,2,11,5,12,8,4,2,3,9,9,3,6,7,5,10,7,9,1,1,9,9,4,10,7,1,4,2,10,2,5,4,10,7,1,2,10,3,6,9,5,10,6,1,5,2,8,4,4,7,10,5,10,12,9,7,4,7,2,7,4,1,10,6,6,7,2,10,11,12,5,10,1,9,2,11,10,9,12,1,4,11,6,12,5,2,4,1,3,2,4,3,6,1,5,2,3,1,7,9,7,7,4,1,1,9,9,2,8,10,2,5,7,10,9,6,12,9,5,9,8,7,7,4,5,9,2,1,11,3,6,7,10,7,3,2,9,3,9,10,8,5,5,8,8,9,7,11,9,2,4,9,4,5,9,8,3,9,8,11,3,4,3,11,4,8,8,5,4,6,9,2,12,5,4,12,2,11,5,9,3,3,11,12,3,12,2,4,4,6,6,3,1,2,12,1,7,2,2,8,4,7,6,3,7,5,1,6,2,7,10,10,7,6,3,7,3,3,5,11,6,7,6,4,4,10,11,8,10,11,10,5,5,9,4,5,5,12,4,6,8,5,6,2,1,5,12,10,7,11,2,6,10,10,2,1,3,8,1,8,6,4,2,11,11,4,9,4,5,5,2,8,11,11,7,5,5,10,8,6,1,8,6,8,10,4,12,2,11,9,5,12,6,1,4,10,10,7,12,6,10,7,4,11,10,5,3,1,3,4,8,8,12,8,11,2,9,5,6,2,8,1,1,7,5,2,6,11,2,8,3,12,1,1,8,9,3,8,2,1,12,11,10,3,8,8,11,3,8,12,3,7,10,6,6,10,7,1,12,10,7,11,3,6,6,11,3,4,11,3,11,8,11,10,4,11,5,6,3,5,1,3,5,8,10,3,10,10,6,9,5,8,3,8,1,9,1,7,5,1,5,11,11,5,7,9,4,3,4,5,11,3,2,3,2,3,2,6,2,3,5,7,11,12,9,1,11,3,6,3,6,3,10,6,10,1,3,12,1,6,1,8,9,12,4,11,1,2,11,7,2,1,5,7,12,2,4,5,8,4,11,12,1,8,4,10,10,2,4,4,12,4,3,2,2,11,2,9,11,7,6,11,5,7,8,3,8,7,12,4,3,5,7,7,5,6,7,11,2,4,1,3,5,6,4,1,2,8,6,5,8,3,9,7,2,4,5,4,6,9,1,12,6,1,11,1,8,4,7,10,5,5,2,8,11,9,11,1,6,8,12,1,10,1,10,5,7,12,7,12,7,10,6,12,12,11,4,3,5,1,1,12,2,10,6,1,1,6,8,8,5,6,4,4,1,4,5,7,2,11,3,2,7,10,4,10,11,9,9,12,12,8,6,10,12,7,3,7,6,4,3,5,5,2,1,9,9,10,9,12,11,3,9,3,2,9,7,5,9,3,9,12,5,11,1,8,9,2,7,4,8,3,10,4,9,11,5,12,5,10,11,5,3,6,6,1,2,10,10,3,10,11,5,7,2,11,3,1,1,10,2,12,3,6,3,6,3,8,7,2,10,7,10,2,12,4,1,4,8,11,9,3,12,2,9,3,11,9,4,5,11,5,6,8,2,12,6,7,8,10,1,6,8,11,6,6,12,3,7,11,7,10,9,1,10,6,5,3,11,1,8,3,6,10,4,6,12,2,7,4,2,6,12,2,1,2,9,4,3,3,10,4,3,2,1,5,7,10,8,6,5,2,9,4,1,1,1,9,10,11,10,10,3,1,8,4,12,1,9,3,12,9,12,1,11,5,6,2,3,9,6,9,5,4,7,7,11,9,6,4,11,1,11,6,8,5,2,10,9,11,6,5,7,3,9,12,9,1,9,11,8,9,1,11,11,11,9,4,4,9,3,6,1,10,8,5,1,2,6,4,4,10,11,4,4,11,10,11,9,10,12,4,2,9,9,4,2,7,2,11,10,9,4,8,3,4,8,8,3,8,8,1,8,1,2,2,11,5,4,11,7,1,12,3,8,11,4,7,8,1,3,7,8,4,9,5,9,10,7,12,1,5,2,2,11,6,3,9,4,9,5,2,6,4,1,4,9,7,8,7,11,6,2,5,12,9,3,1,10,3,1,8,6,3,3,4,7,10,10,11,5,3,7,7,9,7,3,12,9,9,2,1,11,3,5,2,4,6,10,11,3,8,12,2,8,8,4,7,2,11,9,7,7,3,5,5,12,8,11,12,2,2,3,10,10,5,2,12,12,5,3,4,4,3,2,6,12,2,1,6,8,11,1,6,10,7,3,4,12,5,8,2,3,1,4,5,7,5,8,12,12,1,1,8,2,7,8,7,1,8,3,5,12,11,10,3,12,1,4,1,10,1,10,10,10,10,2,8,7,7,6,6,1,4,5,1,7,8,1,3,10,8,5,4,8,1,5,7,3,9,6,4,9,6,11,4,11,2,10,4,2,7,12,9,8,6,4,9,12,6,7,3,12,8,8,10,9,12,3,11,2,7,5,10,5,4,2,6,3,11,12,2,6,4,11,4,11,1,4,1,4,7,6,12,9,9,7,5,2,11,9,1,10,8,10,7,5,4,8,6,4,4,11,12,4,6,12,5,11,6,3,5,11,11,6,12,8,7,12,3,12,10,1,6,11,3,7,10,4,10,5,3,4,9,10,6,6,8,10,9,4,7,1,11,2,11,3,11,4,2,3,6,8,9,1,3,8,1,6,9,2,6,5,2,5,10,12,9,10,5,8,9,12,5,9,5,12,3,12,8,1,4,4,10,5,11,10,5,7,4,3,3,5,2,7,7,9,6,8,8,10,6,1,6,5,5,5,6,12,1,8,8,4,4,2,5,9,9,7,5,3,9,4,10,2,2,6,1,4,12,5,6,10,3,11,12,2,1,5,8,6,10,7,7,10,2,4,11,3,4,6,1,3,9,6,10,2,4,5,10,9,8,11,6,8,12,3,2,11,8,7,10,5,1,11,9,1,11,4,6,6,12,7,4,8,2,3,8,12,7,6,8,6,5,12,6,6,12,8,1,8,4,6,11,4,8,5,4,5,10,8,12,5,1,2,12,12,8,1,1,6,7,10,8,4,11,10,8,3,7,10,10,9,7,11,7,9,8,3,6,8,10,1,7,11,3,8,11,1,6,4,1,2,2,8,5,2,4,4,3,4,10,4,8,7,2,5,5,7,8,10,1,9,8,5,5,11,4,4,2,7,5,1,9,8,2,6,8,11,1,10,2,3,9,1,2,3,3,3,11,12,10,4,9,1,12,2,9,3,9,8,9,11,11,3,7,7,10,3,3,12,4,4,7,10,7,11,5,7,2,9,5,8,2,9,1,8,5,8,3,2,1,12,1,1,7,3,4,2,12,12,8,4,5,4,12,11,2,7,3,11,1,6,7,4,9,2,1,5,12,7,9,4,10,1,1,6,2,5,8,1,11,3,1,5,6,10,2,1,6,12,8,3,8,9,1,12,8,6,4,9,12,9,8,9,1,8,8,4,10,8,12,3,9,2,11,7,4,7,3,6,12,2,2,11,11,11,4,7,9,9,11,12,2,3,9,2,5,2,4,8,5,10,12,1,4,11,6,2,1,4,12,5,10,12,5,7,11,1,2,4,1,11,3,4,10,1,7,4,1,7,5,1,3,7,8,5,3,4,12,3,6,6,6,1,6,11,10,4,12,1,7,2,2,3,10,5,10,9,6,8,9,11,10,4,12,2,5,9,9,9,10,11,3,10,6,3,9,10,8,12,6,4,12,1,4,1,8,2,12,4,2,6,1,7,10,9,10,9,11,8,1,3,6,8,7,8,9,7,4,5,4,1,6,3,3,5,8,8,6,4,8,7,11,12,10,3,2,3,4,10,1,5,9,5,3,9,2,6,3,2,3,5,8,7,10,1,1,5,7,11,5,8,9,12,9,11,6,11,8,7,12,2,10,10,4,6,9,1,6,10,3,3,8,8,10,9,9,2,8,10,9,10,3,7,10,3,12,6,6,12,7,10,12,7,4,8,2,11,2,4,5,4,}
focus
0.67610705893124
firstname
"Pusaki"
midname
"Tanysatuanuy"
family
"Ptasfnzik"
food
{}
END_KOBOLD
KOBOLD
genes
{1,7,8,7,8,4,10,8,12,11,11,7,4,3,3,2,7,10,6,3,8,3,9,12,12,8,3,2,2,5,8,2,3,4,2,7,3,4,1,3,5,11,8,8,6,6,9,5,6,9,6,11,3,10,6,3,11,10,7,1,8,6,3,1,7,6,5,1,2,9,11,10,3,4,2,11,2,6,8,10,8,5,6,8,4,7,2,2,12,12,1,3,8,5,7,4,11,4,12,11,10,9,11,2,9,7,6,7,2,12,8,8,11,9,1,2,9,11,1,5,1,8,1,7,3,7,5,3,11,5,4,7,9,1,9,5,9,7,4,12,7,1,11,6,2,2,4,7,6,5,7,4,1,12,10,12,5,10,9,3,5,12,1,6,7,12,10,11,7,2,10,6,2,2,11,3,1,11,1,8,4,2,12,7,3,4,11,11,9,10,10,10,7,9,7,5,4,2,2,8,2,10,1,6,9,10,6,3,4,5,3,4,7,11,7,8,9,10,2,5,1,11,2,12,11,7,6,12,8,8,9,10,11,6,4,11,6,12,9,5,7,8,10,1,11,6,8,12,6,3,9,8,5,8,2,6,5,1,7,8,12,1,10,10,2,10,10,3,7,5,12,8,2,3,1,7,2,3,8,4,1,9,12,8,5,5,1,6,9,11,11,5,2,9,3,5,7,5,7,10,7,6,8,6,7,9,8,8,4,12,7,4,5,12,3,2,12,4,8,8,1,8,2,9,3,9,1,8,1,5,9,2,1,8,2,9,10,9,8,6,3,1,12,7,5,11,3,2,7,8,6,9,4,9,3,5,12,6,10,6,6,10,12,1,11,2,10,3,8,9,7,11,11,4,5,3,4,3,5,10,1,5,3,4,3,6,9,5,6,6,3,4,12,11,12,5,10,10,12,6,9,4,7,9,5,8,12,2,5,3,1,9,9,3,11,3,10,8,2,8,7,10,6,9,10,8,4,3,2,3,7,2,11,8,4,3,10,7,11,9,7,3,4,6,5,12,6,11,11,6,3,10,10,11,3,9,7,10,10,11,2,9,8,1,1,1,2,11,11,6,12,8,9,4,1,6,1,3,10,1,5,12,1,12,12,3,4,7,5,5,5,4,7,2,5,2,7,6,8,3,4,7,11,10,6,11,12,9,2,10,6,10,2,3,12,5,6,12,9,5,12,3,8,10,8,9,10,8,9,7,4,3,5,2,12,2,10,8,3,9,5,12,10,12,3,8,1,3,5,3,7,2,1,7,8,2,10,4,5,4,5,6,2,2,2,8,4,3,12,3,10,3,3,7,5,9,7,3,2,9,3,5,9,6,11,1,10,12,12,12,8,5,10,9,4,9,6,10,4,5,10,5,6,7,7,6,11,12,12,9,12,5,8,6,7,10,10,7,12,4,2,9,6,2,7,2,12,2,6,5,8,3,11,10,3,10,10,11,9,12,10,10,7,1,9,2,11,4,3,7,9,2,10,9,5,7,1,11,4,9,1,5,8,8,9,5,8,6,11,2,10,3,12,5,1,9,1,10,10,9,9,2,7,4,9,7,9,8,8,5,7,5,8,10,2,5,12,4,7,5,9,5,11,7,8,10,1,6,10,5,12,5,2,9,4,1,9,11,10,10,11,1,6,12,10,6,2,2,1,2,6,3,10,8,7,6,9,6,4,11,3,11,4,1,5,10,3,2,4,10,3,11,1,11,7,8,6,10,11,6,12,2,6,6,3,12,4,9,5,10,7,2,8,3,9,6,11,4,1,6,7,6,2,7,10,4,2,11,5,8,10,1,8,12,11,5,7,2,1,3,5,10,12,3,1,5,3,5,11,1,3,11,3,10,3,2,10,5,11,11,10,2,11,2,8,10,1,3,2,11,12,8,11,7,5,2,7,1,1,10,11,8,7,1,8,8,3,1,12,7,7,12,8,1,11,9,12,8,6,2,12,3,4,1,1,1,4,4,4,6,2,4,7,2,5,12,7,9,5,2,5,4,5,3,2,5,3,12,4,8,11,1,12,10,12,6,1,4,8,7,4,5,9,12,12,4,6,3,3,7,6,1,4,7,11,2,9,6,11,3,2,12,11,9,10,5,8,12,8,6,1,1,10,11,2,4,6,1,3,10,8,4,7,5,2,11,11,6,8,10,8,5,10,5,11,3,1,12,11,10,8,2,2,1,9,1,11,9,8,11,12,12,8,7,2,9,1,4,6,12,2,5,9,7,4,11,1,2,12,8,11,10,1,10,5,4,3,8,6,10,9,9,6,10,5,3,3,9,2,8,2,7,5,8,7,2,4,6,11,3,10,7,7,8,5,11,1,1,4,7,1,12,1,2,6,3,6,5,8,3,7,10,6,3,6,6,5,3,11,7,8,2,12,5,3,1,6,8,12,6,7,7,2,9,9,6,9,12,4,10,10,2,1,9,3,3,11,12,6,1,9,4,1,1,4,12,1,12,12,5,11,11,12,3,12,7,7,7,4,3,2,12,9,1,2,5,10,12,8,9,4,12,9,5,7,3,12,8,9,5,7,1,10,6,2,10,6,9,11,5,9,5,8,11,6,3,4,10,10,6,7,8,6,11,11,1,11,5,7,9,2,6,7,10,12,10,1,5,4,5,11,5,9,4,8,10,4,11,3,8,7,9,7,7,4,11,3,11,5,1,5,12,11,3,11,10,7,4,4,6,9,2,7,7,10,5,7,7,2,8,3,7,3,4,6,12,12,2,9,12,7,10,5,4,9,12,7,9,2,1,4,10,9,7,5,2,8,10,4,6,3,6,6,8,2,8,6,4,7,1,3,3,7,10,9,3,5,8,4,11,6,9,9,10,5,8,2,10,9,10,4,6,5,4,5,8,5,4,9,3,4,12,2,9,6,3,12,12,8,1,2,1,3,9,3,1,11,1,1,12,7,11,10,8,3,10,3,8,8,4,7,2,5,1,1,12,11,4,2,12,10,10,4,3,5,8,3,12,9,11,11,4,11,9,6,3,9,10,6,11,9,3,10,5,9,3,7,4,4,3,4,12,4,5,4,4,3,6,11,2,12,7,12,8,5,9,5,8,5,5,2,10,11,4,12,7,5,1,4,3,10,3,10,2,6,2,9,1,3,10,12,8,8,2,4,12,9,8,8,9,7,3,2,6,9,3,12,5,5,12,10,11,9,9,11,11,5,3,2,10,1,7,2,4,4,5,7,7,8,6,11,3,5,8,9,11,9,1,5,8,10,9,5,12,10,2,1,12,1,9,5,12,10,11,8,7,10,6,9,8,3,5,4,2,12,7,2,1,7,2,5,11,10,8,2,8,9,3,2,8,6,4,11,9,12,2,12,6,12,5,4,1,9,4,11,5,1,4,5,5,11,5,6,1,7,10,8,1,4,4,3,12,9,6,12,8,4,10,12,10,5,8,5,8,4,11,3,7,6,4,7,3,10,10,3,6,12,3,4,12,4,11,11,9,2,8,12,3,2,11,6,12,7,10,5,7,4,2,2,4,10,12,12,1,1,11,2,12,10,4,10,8,11,8,5,5,12,10,10,12,9,11,4,5,4,11,10,10,5,8,5,3,4,7,8,2,9,5,8,11,6,2,10,11,7,10,2,6,10,8,3,5,5,3,5,2,1,10,10,7,1,2,11,9,12,8,7,1,7,10,6,1,1,1,6,6,3,1,1,4,2,7,12,7,3,10,5,5,3,11,3,4,9,3,7,7,11,11,6,7,9,8,10,8,6,3,4,10,8,1,9,3,4,11,2,9,6,6,5,9,1,4,3,12,5,6,2,5,9,4,10,4,8,8,1,6,1,7,12,2,9,7,3,5,8,4,9,12,8,11,10,2,3,5,3,8,3,11,7,3,9,1,2,9,6,2,10,4,3,1,12,4,1,3,12,12,7,4,11,10,11,5,2,2,7,11,3,5,11,5,6,10,1,4,11,8,5,4,4,8,5,9,11,5,10,11,8,6,11,4,10,11,4,9,12,7,11,10,3,7,3,2,1,9,8,10,8,4,5,5,7,10,10,7,8,1,3,6,4,11,3,4,5,8,10,11,10,7,2,9,10,6,1,4,2,12,3,2,8,11,7,10,10,3,1,10,12,6,11,6,3,7,12,4,12,5,4,9,11,3,6,12,12,10,12,8,3,8,12,8,9,7,1,6,5,9,3,1,9,1,3,10,10,9,2,1,3,11,11,1,2,1,2,4,10,3,9,3,1,7,9,3,9,8,4,5,10,9,12,11,10,4,6,11,7,12,1,7,11,10,2,3,8,1,12,10,11,11,11,1,9,12,12,11,9,7,8,12,1,3,5,1,8,6,11,11,1,6,11,10,4,12,7,9,3,5,2,2,11,9,12,4,12,12,6,7,5,3,10,6,9,7,11,12,}
focus
0.30954924161504
firstname
"Psuky"
midname
"Nyanynyanuy"
family
"Kipasannzik"
food
{3,2,3,4,}
END_KOBOLD
KOBOLD
genes
{12,7,2,6,10,1,12,12,10,6,6,4,1,3,1,5,11,12,3,1,10,12,9,8,10,8,12,10,1,12,12,10,11,8,3,11,2,12,6,10,5,5,3,4,1,6,6,6,11,5,9,1,12,5,3,2,1,11,6,1,3,1,12,11,5,4,9,9,12,7,8,5,9,6,3,4,4,10,1,7,7,10,2,9,10,9,1,11,7,1,12,5,1,8,5,11,8,10,5,4,5,11,4,8,6,7,12,9,4,2,7,12,4,1,3,4,8,2,6,3,8,8,2,12,11,11,1,8,10,4,4,11,8,11,12,11,8,3,3,5,9,9,1,3,4,6,7,10,8,1,8,4,1,2,6,8,11,1,4,8,12,8,12,8,1,12,5,5,2,7,2,12,4,5,11,12,9,4,5,6,3,1,12,7,8,4,7,2,8,2,7,2,10,8,9,10,1,6,12,2,9,7,6,6,7,11,6,4,3,7,11,12,11,11,2,12,10,8,3,4,7,4,8,8,6,8,2,9,10,8,10,2,11,5,6,12,11,6,11,8,4,10,2,11,3,10,11,3,1,6,10,9,4,2,10,3,11,5,11,2,11,12,3,2,9,10,5,6,8,3,4,10,1,8,3,5,4,10,5,5,1,2,1,1,6,6,10,2,4,3,9,5,10,7,8,8,11,4,6,11,10,12,12,5,4,10,4,4,3,7,12,6,2,4,6,7,2,8,5,7,2,4,5,5,1,2,6,4,5,4,5,8,4,7,12,9,1,3,5,4,7,10,6,8,12,1,11,4,4,8,12,2,7,3,12,4,5,9,2,8,6,1,1,6,1,8,2,6,5,4,1,11,3,7,2,7,1,7,3,10,1,10,3,7,1,9,5,6,11,3,9,6,9,10,4,2,9,9,7,3,11,1,8,5,4,9,9,5,11,1,6,12,2,10,7,9,5,7,5,2,3,6,1,8,11,3,4,12,12,4,12,2,11,12,6,9,9,10,1,3,11,7,7,1,11,10,11,5,11,8,8,5,12,4,10,6,9,5,10,5,10,2,10,12,7,2,11,3,7,5,11,4,11,5,7,11,9,4,5,12,10,11,10,6,9,4,11,8,8,4,8,3,8,9,9,1,3,5,7,11,6,3,6,12,1,7,9,3,6,9,1,5,10,4,7,11,2,2,8,7,6,2,7,2,5,2,3,5,10,10,5,4,1,4,10,10,11,7,10,9,2,6,4,3,4,10,6,1,4,12,3,1,2,4,10,5,3,11,10,9,9,2,9,10,3,8,4,6,1,6,12,2,6,3,5,11,8,7,3,11,10,11,7,10,12,8,12,1,12,9,7,9,11,3,11,5,1,1,10,7,10,11,1,1,11,10,9,1,3,7,4,11,8,9,7,11,8,7,5,11,7,6,3,12,6,11,7,4,1,1,8,1,9,7,8,8,12,10,6,10,12,2,11,2,5,8,4,3,7,4,8,12,4,3,9,8,3,1,10,6,10,12,11,2,11,4,3,7,1,2,7,10,7,8,6,9,3,9,4,11,6,1,1,12,12,12,9,11,6,11,10,11,12,12,10,9,1,11,5,3,3,4,5,2,8,4,5,6,11,3,8,1,5,6,5,2,11,7,1,7,12,5,4,4,9,11,2,12,8,12,4,12,6,11,10,6,3,8,8,6,9,3,3,1,6,12,4,9,6,2,4,2,4,7,8,7,1,10,10,12,12,9,5,5,12,12,7,9,7,11,9,11,9,11,8,1,7,10,4,4,1,8,9,4,6,9,6,12,5,8,8,4,11,2,6,6,8,12,7,5,2,10,7,4,4,10,11,9,4,8,2,1,1,11,6,6,7,2,6,8,12,12,4,1,12,8,2,11,1,10,11,5,12,7,7,9,9,8,9,8,8,2,6,2,7,9,12,3,11,6,7,5,5,8,10,8,11,12,2,7,4,7,5,7,1,1,7,4,8,10,2,7,1,7,5,5,11,5,2,7,11,7,4,8,9,12,2,7,3,12,3,4,7,2,5,6,2,6,10,11,9,7,2,12,4,4,5,5,4,12,7,1,7,3,5,7,3,8,4,2,1,11,10,11,10,8,2,10,7,10,1,1,5,9,12,8,3,7,10,8,11,6,6,2,7,5,1,4,3,3,2,2,9,11,10,3,5,1,2,6,5,5,3,4,6,7,7,12,9,12,11,6,6,11,5,12,5,4,4,7,12,5,9,12,1,5,5,5,4,1,8,11,5,2,2,1,10,11,6,5,5,2,10,7,8,8,10,12,1,12,9,1,8,7,11,3,1,8,5,7,8,2,8,5,3,9,2,1,10,5,8,2,10,8,9,2,7,1,4,8,9,6,2,3,7,7,7,8,8,9,6,12,7,5,2,10,1,9,1,9,12,11,4,6,9,10,1,11,9,6,10,1,8,7,11,1,7,3,2,6,1,4,6,8,1,3,4,7,4,10,9,8,10,1,7,11,1,9,10,9,9,2,11,6,1,11,5,10,8,8,6,10,7,3,4,11,3,9,4,10,11,12,6,5,6,2,3,11,5,4,2,4,7,10,1,7,11,6,1,10,3,5,10,8,3,1,11,6,5,7,8,12,4,4,8,1,1,6,4,11,8,8,12,4,4,5,10,2,12,2,5,5,7,8,9,3,10,1,7,6,2,12,3,4,9,10,9,6,6,1,9,6,7,8,5,10,11,11,8,6,8,10,2,7,10,2,10,2,9,4,4,1,7,9,1,12,4,2,7,6,12,11,11,11,1,8,6,12,10,5,9,9,11,11,12,11,7,7,2,9,2,12,9,9,9,10,10,6,9,2,12,2,12,3,5,11,2,7,2,3,10,8,9,7,1,2,3,2,2,6,8,6,11,4,5,6,10,1,3,4,10,7,3,9,3,4,12,3,6,1,2,9,7,3,4,7,12,5,12,8,6,8,2,7,12,6,1,10,9,12,6,3,5,11,11,6,9,10,1,2,11,8,11,7,6,8,4,12,2,2,6,5,10,8,4,9,12,4,2,10,9,10,1,12,4,6,11,3,2,12,4,1,2,1,9,4,2,1,11,9,9,11,6,6,2,2,8,1,5,10,2,7,8,11,10,8,10,2,2,10,7,3,9,8,5,5,4,6,4,6,12,1,2,5,5,2,11,3,6,4,5,10,4,9,10,12,3,12,1,6,6,4,6,8,4,2,7,1,4,7,11,6,10,7,7,5,2,4,10,3,7,1,10,7,2,2,6,4,8,3,11,10,12,7,8,4,7,6,11,11,2,5,10,3,1,9,2,2,7,10,7,7,2,3,3,11,4,7,1,2,7,9,6,5,4,7,12,7,5,12,5,9,3,12,1,8,12,1,8,1,12,7,2,4,5,2,7,6,7,4,7,7,12,3,4,4,1,1,4,10,12,3,1,5,6,7,1,3,10,6,5,10,1,4,6,3,12,1,10,7,2,4,8,8,11,11,7,6,10,3,9,2,6,8,8,9,2,7,5,3,10,1,7,11,2,12,1,5,12,10,3,2,8,4,5,2,7,11,10,3,8,6,5,5,9,7,10,8,10,11,9,7,3,1,8,5,10,3,8,3,10,10,3,9,12,8,9,1,8,9,6,11,7,4,4,12,9,7,10,6,1,8,9,5,12,12,3,9,5,5,12,11,5,12,1,2,4,12,3,9,3,12,11,12,2,9,11,11,1,1,10,12,12,4,7,10,8,4,8,9,7,7,10,5,6,4,6,1,12,11,11,9,7,5,6,9,12,10,12,11,10,10,7,10,10,12,8,7,10,11,8,7,10,9,1,11,4,1,10,9,6,3,8,7,8,9,5,2,8,6,11,6,10,9,12,7,8,8,2,4,3,9,3,12,11,7,9,9,1,3,10,5,1,7,2,12,1,10,2,1,12,5,6,8,4,2,4,12,8,7,1,1,7,10,1,11,8,1,10,1,3,5,2,12,3,3,1,6,3,1,1,6,4,4,1,4,12,10,9,1,8,10,10,6,5,8,4,3,4,6,5,1,1,6,10,12,3,2,1,4,2,9,4,8,10,9,5,9,1,6,11,6,1,4,7,3,7,2,10,9,2,9,1,7,1,9,3,7,5,5,3,8,9,1,9,12,8,2,2,2,12,7,4,7,3,10,8,10,4,4,9,2,12,6,6,7,6,3,2,6,7,4,2,7,3,10,9,5,9,8,10,1,4,3,10,9,4,3,9,12,11,1,10,11,7,9,6,5,12,8,6,4,6,5,8,9,2,8,2,10,2,9,8,6,12,12,3,1,7,5,4,7,9,6,12,8,9,1,5,3,5,2,8,6,10,10,4,3,4,5,2,4,7,9,11,7,4,2,11,11,8,9,11,2,2,2,10,5,1,4,12,6,9,8,}
focus
0.094868987074194
firstname
"Itaaki"
midname
"Natanyianuy"
family
"Ptasfnzik"
food
{}
END_KOBOLD
KOBOLD
genes
{5,7,10,6,4,9,11,3,12,1,4,5,2,12,12,12,5,8,4,2,6,1,3,11,5,9,5,11,4,8,9,1,4,12,1,8,2,10,6,12,5,9,8,6,2,1,10,11,5,9,10,5,6,6,7,10,5,4,7,12,8,7,9,6,7,7,8,6,6,7,2,10,10,10,4,10,11,5,12,1,7,9,5,6,3,6,7,1,7,12,4,8,1,1,11,6,1,8,12,11,2,2,12,12,9,7,7,11,7,8,6,4,8,9,5,5,9,5,10,1,1,6,5,4,2,11,8,7,3,11,6,11,12,10,1,11,6,12,11,6,5,9,3,5,8,10,7,9,9,3,9,11,8,3,4,2,6,5,9,3,10,1,5,3,8,1,5,5,7,9,10,7,12,8,9,1,1,6,3,1,3,3,2,12,3,4,2,10,9,10,9,8,9,11,2,11,8,3,1,8,7,11,5,7,6,8,6,10,10,8,1,2,10,12,11,8,3,11,8,10,6,3,1,5,4,1,7,4,1,1,10,4,1,10,4,8,6,12,10,4,8,11,6,7,6,1,3,6,7,2,5,10,12,8,6,4,12,6,5,7,10,12,5,5,7,3,9,2,10,3,4,1,6,9,2,8,12,1,10,9,1,7,12,9,10,2,2,12,10,8,10,7,1,7,3,11,3,3,3,6,10,8,3,6,12,9,2,11,4,6,12,9,5,8,12,5,1,1,8,9,1,1,2,10,7,6,7,2,8,12,3,9,8,8,3,6,12,4,4,11,2,2,8,3,8,11,3,12,4,1,9,7,10,8,3,3,7,9,3,2,7,2,10,5,8,1,11,10,2,2,7,11,9,2,8,5,12,1,11,2,7,3,3,8,12,3,10,9,11,6,11,6,2,4,2,7,6,10,10,9,10,11,2,7,7,8,11,3,7,10,11,6,6,4,10,7,6,4,8,10,5,10,10,7,9,12,10,4,5,8,11,3,4,5,5,9,10,4,7,12,11,7,5,2,4,8,1,4,6,2,4,11,11,10,4,6,5,12,12,11,10,6,8,4,5,9,1,9,10,4,8,6,9,6,10,5,2,12,1,9,7,5,5,5,4,8,1,8,12,6,7,5,7,9,5,9,6,6,6,8,12,3,7,9,1,8,9,3,5,5,2,9,7,7,10,5,12,2,9,12,12,6,11,2,12,8,10,8,5,9,11,2,10,9,6,12,4,10,5,8,8,3,1,9,1,11,12,2,9,11,2,6,10,11,1,11,5,11,8,3,9,2,5,9,7,6,5,6,11,5,1,3,11,10,12,7,5,9,6,7,9,1,11,9,3,7,6,6,8,10,3,9,10,1,10,11,10,10,7,3,8,10,8,11,7,12,11,10,1,12,10,5,4,3,12,4,9,1,12,1,12,7,9,4,10,4,6,2,2,7,1,5,3,1,11,5,4,4,10,8,2,2,9,9,2,12,9,4,5,1,1,1,8,4,4,11,8,8,1,8,1,6,12,2,6,4,4,11,9,9,6,9,8,9,7,1,3,10,7,4,12,2,5,12,7,5,2,11,1,7,11,1,2,1,6,3,12,10,1,6,9,12,4,9,5,8,5,6,3,5,2,2,5,10,2,10,2,3,4,7,7,11,8,1,4,5,8,8,6,8,3,8,6,9,4,2,5,8,7,2,6,10,5,3,4,9,6,1,9,10,8,9,12,9,5,6,10,6,7,8,6,2,9,8,3,7,12,1,10,3,8,3,4,5,11,10,6,4,4,2,5,6,11,5,12,7,11,10,8,3,3,11,9,12,3,1,4,7,5,1,12,5,9,1,2,11,6,12,2,1,4,10,7,7,12,5,11,7,9,2,11,4,8,3,10,11,9,6,8,5,12,6,4,2,10,9,12,11,3,7,4,3,3,10,9,2,9,3,10,4,8,3,11,9,8,8,12,8,9,8,5,2,11,8,9,8,7,6,12,8,4,2,7,12,9,12,5,9,3,12,5,5,4,10,10,12,2,12,1,9,1,8,10,12,7,3,4,8,3,9,2,12,6,2,1,12,11,2,12,2,4,8,10,4,3,2,7,12,6,1,7,10,8,8,3,8,10,1,7,12,10,8,1,4,11,12,7,6,11,2,1,4,5,3,2,12,2,7,12,11,5,5,5,2,12,2,7,3,9,12,2,12,2,8,5,8,10,6,4,9,12,2,1,6,12,2,7,11,1,12,4,7,11,4,2,4,8,7,11,11,1,7,5,3,3,2,3,6,7,8,7,9,12,2,7,8,4,5,7,8,5,11,8,1,5,5,2,1,3,4,5,11,3,1,10,2,8,1,8,3,6,8,3,4,8,11,10,4,12,10,7,6,7,1,5,3,5,10,4,8,7,2,10,8,10,5,9,5,7,9,11,3,9,2,10,5,10,12,1,12,1,3,6,5,10,8,6,6,8,4,9,12,11,4,1,1,9,8,7,3,5,11,9,10,12,9,8,4,4,4,3,6,1,2,2,10,5,8,1,1,1,2,1,3,11,4,5,2,12,11,12,7,10,6,5,1,9,6,5,10,4,12,5,7,3,11,3,12,1,1,3,5,10,3,6,10,5,11,12,2,3,8,1,9,4,4,8,8,1,5,7,9,9,9,2,10,1,6,8,8,3,8,12,7,7,10,7,1,5,3,10,9,11,2,7,4,3,6,9,1,9,9,6,5,7,2,8,8,11,7,1,3,11,12,6,1,1,5,6,2,5,6,5,11,8,8,7,9,7,12,9,8,7,9,6,5,1,10,9,12,12,12,3,7,2,7,12,5,4,2,9,3,1,9,1,5,7,12,2,8,10,6,2,7,10,8,6,9,5,5,9,4,8,6,11,6,11,9,3,11,9,9,5,6,2,5,8,2,7,1,11,10,9,12,2,8,6,2,7,2,9,10,7,1,6,10,6,10,2,1,8,4,6,4,6,4,9,1,5,1,10,3,8,1,6,9,9,11,7,1,3,12,1,9,12,5,7,12,7,1,1,6,1,9,2,1,11,9,3,6,6,10,11,11,5,10,10,4,6,12,8,1,12,3,5,3,4,7,1,9,5,4,3,11,5,8,3,4,1,12,12,7,8,2,3,9,9,5,6,12,3,11,5,9,1,9,5,5,8,10,2,3,5,9,7,9,11,9,2,2,1,1,12,3,10,8,5,9,2,2,4,2,2,1,1,12,7,6,4,8,9,11,1,8,11,12,1,7,9,2,1,1,6,3,1,4,9,2,2,7,7,6,10,8,5,12,2,5,11,8,8,12,7,12,1,3,10,8,12,7,12,6,12,7,6,6,9,1,2,6,3,7,12,10,9,5,11,10,1,10,11,9,9,5,6,1,6,4,3,11,5,8,10,6,11,2,4,10,12,7,11,12,9,5,7,4,12,7,5,3,9,10,3,10,8,4,10,4,4,4,12,1,2,5,2,7,9,1,12,1,2,7,6,6,5,8,7,8,2,9,8,10,12,8,2,11,3,8,9,6,10,3,12,2,2,2,10,5,5,8,10,4,1,4,6,1,10,12,2,8,7,11,5,9,9,3,5,6,8,6,7,4,1,5,8,5,2,8,12,7,5,1,5,10,12,8,3,2,9,4,4,11,3,7,11,3,6,4,9,12,1,3,11,7,3,2,2,12,7,10,5,5,10,7,10,5,12,11,1,2,4,4,8,7,5,7,5,4,4,12,4,7,10,7,8,10,5,7,11,6,12,11,8,4,7,12,5,1,5,7,7,3,7,7,11,5,10,8,7,2,5,5,4,10,11,2,8,12,4,7,11,7,12,6,11,4,1,5,7,11,11,7,2,10,5,8,9,10,3,2,6,6,8,3,5,2,2,12,12,4,11,9,2,2,7,11,2,11,1,7,1,5,9,1,10,10,8,6,6,12,12,5,4,5,1,11,12,3,10,1,5,7,7,10,7,10,10,5,3,12,2,5,2,5,2,10,1,2,5,5,5,6,1,3,5,4,4,1,2,9,7,7,5,9,8,4,3,6,3,10,7,5,6,7,5,12,1,8,10,10,3,9,12,6,12,3,1,11,1,2,1,6,7,5,8,9,7,6,10,6,8,12,11,7,8,8,8,1,2,9,5,5,7,3,4,1,1,7,5,9,11,3,3,12,6,1,11,1,4,1,8,7,4,7,12,9,9,8,7,4,4,12,12,12,9,12,1,11,6,1,11,6,4,6,9,5,11,1,4,3,8,9,9,11,10,10,10,1,1,3,10,2,3,5,9,3,9,2,4,11,7,5,10,10,1,5,9,9,4,8,2,9,6,7,9,5,10,10,5,3,1,3,10,3,4,11,11,8,3,9,11,12,7,1,3,12,7,11,2,11,2,6,4,9,3,1,9,11,5,1,5,1,9,4,}
focus
0.081013066505835
firstname
"Zkuki"
midname
"Nykukuzanuy"
family
"Kipasannzik"
food
{}
END_KOBOLD

View file

@ -0,0 +1,70 @@
KOBOLD
genes
{8,10,9,4,1,5,9,11,7,8,2,10,12,8,4,8,2,7,10,7,3,5,4,2,8,3,6,4,5,4,5,11,8,4,3,11,8,5,4,7,12,7,10,2,12,4,10,8,2,9,11,4,6,2,5,3,1,12,8,2,11,8,2,4,8,2,6,1,11,7,9,7,11,1,11,1,12,8,8,5,8,7,3,10,7,11,5,3,7,4,5,4,6,6,3,3,3,8,6,1,5,8,5,5,7,8,12,3,4,1,10,5,1,10,8,6,4,8,7,4,4,1,11,10,9,5,4,3,4,6,9,4,3,10,3,5,9,8,7,8,11,1,4,5,9,10,12,10,1,4,8,4,4,8,1,7,5,6,10,8,2,7,5,9,2,8,6,1,9,10,9,12,10,2,11,9,11,2,11,11,7,10,6,3,4,6,7,11,11,3,10,12,5,7,10,10,12,11,3,5,7,8,2,9,8,6,10,3,8,10,12,2,11,8,1,1,4,6,6,2,6,12,10,9,3,6,12,6,10,3,5,3,5,10,1,10,11,12,9,8,11,12,10,3,5,7,4,10,6,2,11,5,12,8,12,10,3,5,1,4,5,9,6,5,8,7,10,2,2,1,10,7,4,4,3,10,10,9,3,2,3,7,5,1,3,9,11,12,10,7,11,5,5,5,1,2,11,1,8,6,5,5,6,4,11,6,8,5,8,12,4,11,10,9,4,2,6,10,3,4,10,1,12,9,7,5,3,1,11,2,12,11,12,12,8,6,1,11,7,6,7,2,3,1,9,6,11,6,11,1,11,7,4,11,9,4,7,6,4,11,4,8,4,10,11,12,5,3,2,12,4,4,11,5,2,4,3,11,10,11,9,11,7,9,2,8,5,7,1,4,4,10,5,12,5,8,5,11,3,12,12,6,2,12,6,10,10,11,11,8,6,9,5,4,1,7,2,12,3,3,10,11,9,2,10,7,7,3,7,10,8,5,11,8,9,10,7,1,6,4,10,10,4,8,6,4,3,3,8,5,3,5,11,5,10,2,4,1,6,6,5,9,8,10,9,3,5,1,9,9,12,3,8,6,7,9,10,2,12,11,2,9,9,7,9,1,6,1,1,7,3,2,5,8,7,12,7,6,11,11,12,6,1,7,2,8,5,10,3,4,6,2,9,10,3,12,5,9,8,4,12,10,9,10,11,5,7,4,8,7,2,8,1,10,6,9,7,3,7,8,7,12,11,7,8,1,3,11,11,10,8,6,1,4,5,9,5,10,1,12,12,12,11,11,12,6,11,5,4,8,12,4,1,1,7,8,9,7,3,11,9,6,9,6,2,11,7,2,6,6,8,4,1,7,12,9,4,2,3,11,12,12,2,12,11,7,1,2,5,6,1,4,5,1,4,12,4,6,8,3,6,6,12,2,9,7,5,1,12,4,6,3,10,4,10,10,5,9,8,6,7,6,4,1,10,1,4,10,2,6,12,2,9,11,4,9,2,1,8,7,3,10,11,5,6,7,7,7,12,8,12,9,9,11,12,8,8,9,9,10,9,4,6,12,9,6,12,12,8,7,12,10,11,6,5,11,12,8,1,4,7,3,4,4,10,5,3,9,2,9,11,7,1,10,1,2,5,2,1,2,2,11,3,2,2,10,5,4,2,7,10,11,9,8,9,4,4,5,9,12,3,10,1,11,10,7,1,1,8,8,7,9,7,6,3,11,6,1,7,4,12,7,6,2,8,9,5,12,6,8,7,9,6,11,12,12,11,8,10,6,12,7,12,2,5,8,11,9,5,9,9,5,1,8,10,9,1,8,7,5,1,12,4,9,1,12,3,7,8,5,2,2,1,6,10,11,6,11,8,3,10,11,9,6,2,7,12,10,9,1,3,10,9,10,3,5,10,7,6,11,8,5,3,4,6,10,12,7,10,1,1,6,4,5,5,10,4,12,12,9,8,11,9,1,3,10,8,7,4,6,10,6,5,4,12,2,7,2,7,3,3,2,8,4,4,10,8,8,7,12,5,10,4,10,4,6,9,6,5,5,4,6,2,12,12,3,5,4,3,9,2,7,10,5,12,4,12,12,8,7,4,9,4,6,8,2,7,6,1,3,12,1,7,12,5,3,2,3,5,6,10,7,4,8,3,3,2,9,11,3,4,7,1,9,8,1,10,1,6,7,5,9,1,3,7,1,2,1,7,9,10,4,7,10,5,3,4,1,3,5,6,6,7,6,4,8,11,6,1,6,5,11,10,2,11,5,1,9,8,4,9,12,7,11,10,11,6,5,2,3,3,1,1,3,3,2,12,8,4,6,10,4,5,5,6,5,11,5,11,5,1,12,12,9,3,4,1,12,10,11,6,3,3,9,3,3,9,12,8,2,4,4,8,12,3,1,3,9,11,3,2,6,3,5,2,11,9,12,1,8,8,8,1,12,10,1,12,4,7,4,4,6,7,3,9,7,4,12,8,1,7,3,1,11,12,4,6,7,11,9,5,4,3,8,1,4,6,8,11,11,11,9,5,4,8,8,7,10,6,11,12,12,1,10,12,7,4,1,7,5,2,6,4,11,10,7,10,4,10,12,9,7,6,12,7,3,9,3,4,7,6,3,4,4,5,7,5,10,7,8,12,8,11,4,5,11,11,8,7,10,7,10,10,10,11,2,4,10,4,4,9,11,10,6,7,9,3,1,2,12,11,8,3,1,3,5,1,9,8,11,7,10,1,11,3,10,11,6,6,8,9,10,3,10,11,10,10,8,6,5,10,2,5,4,6,12,8,11,7,6,1,4,8,11,10,12,4,12,2,1,7,4,10,10,12,10,7,1,12,2,10,9,9,1,7,5,5,10,7,2,11,4,9,2,1,8,5,4,9,8,8,2,4,12,8,12,12,6,5,9,11,9,7,9,11,12,7,1,3,6,2,10,1,11,2,8,12,5,1,6,5,3,8,12,10,2,9,10,11,2,1,3,10,8,6,9,1,6,2,4,7,10,8,4,1,9,9,7,3,12,6,5,11,3,7,11,11,8,11,4,7,9,12,10,4,6,2,8,11,10,1,12,8,10,5,1,12,12,7,4,11,10,11,9,3,4,9,9,9,10,11,3,5,2,10,10,8,12,2,5,4,5,6,10,5,3,5,11,1,9,10,8,5,12,8,12,12,8,6,2,1,7,6,9,12,3,4,2,7,5,1,1,5,11,11,1,2,12,1,12,5,1,6,1,9,10,12,5,8,2,5,7,7,5,12,5,12,3,10,4,11,6,6,9,8,10,1,3,3,11,4,4,8,6,8,12,2,12,8,8,1,8,10,10,1,2,5,11,1,5,9,3,11,5,10,2,6,11,12,11,8,12,6,7,10,4,4,7,1,11,8,8,8,2,6,2,11,4,8,3,12,11,10,2,8,4,8,2,7,8,9,1,9,3,4,12,1,10,4,4,1,5,2,12,5,4,8,4,10,6,11,2,6,2,10,5,2,9,5,5,12,2,9,3,10,7,3,2,2,10,3,3,5,10,5,2,12,2,1,7,10,8,7,10,12,12,8,3,4,12,11,4,2,7,7,5,4,1,3,2,11,7,8,8,12,10,4,9,11,4,12,9,9,8,5,11,7,6,7,6,7,11,10,1,4,5,9,12,6,3,7,3,10,3,10,9,11,7,6,5,7,6,11,12,9,2,11,9,3,3,8,4,10,6,6,5,5,10,9,8,10,6,5,11,12,3,7,7,4,7,8,5,12,11,6,12,10,11,6,4,2,10,4,8,2,10,6,5,11,9,11,2,8,6,12,4,9,7,5,10,2,11,5,12,7,9,9,11,7,7,4,9,11,9,1,9,4,10,10,7,10,11,10,12,5,8,5,11,3,9,10,4,4,10,5,3,9,11,10,12,10,12,2,7,6,2,4,12,5,9,3,7,3,8,10,11,7,6,1,10,3,11,7,10,10,1,8,2,8,1,8,1,2,4,3,3,1,12,4,9,2,5,10,9,7,1,5,9,10,6,2,4,9,11,8,8,10,9,7,2,9,6,5,2,7,12,11,10,6,7,3,7,11,5,3,11,6,12,12,3,12,1,10,9,8,2,2,12,3,6,9,11,7,12,1,9,10,5,7,6,11,10,4,11,11,12,10,12,12,9,8,7,2,3,2,5,11,1,4,2,9,10,10,11,3,11,12,4,2,12,11,2,11,9,10,10,10,3,6,1,4,3,3,10,8,5,9,3,10,5,6,11,12,5,8,12,1,3,10,8,1,1,1,4,8,8,9,8,7,4,12,6,9,1,5,2,1,6,6,12,11,4,10,10,2,10,8,7,12,9,6,3,1,12,7,12,3,9,9,12,11,8,1,4,11,10,2,5,2,7,4,8,7,8,10,9,7,6,11,7,2,3,7,8,}
focus
0.48579799645271
firstname
"Panyaku"
midname
"Fpaysanuy"
family
"Tusukanzik"
food
{}
END_KOBOLD
KOBOLD
genes
{11,12,8,5,10,9,9,5,9,11,6,11,10,11,9,10,2,6,4,6,12,9,12,9,7,6,1,8,10,3,8,10,2,8,5,12,4,6,11,5,1,5,10,8,12,12,1,9,6,12,1,1,4,2,5,11,7,7,2,2,11,3,11,5,7,2,11,12,11,8,4,11,1,7,1,5,7,3,11,8,7,10,9,4,1,7,4,6,12,8,11,11,4,3,9,1,3,1,1,5,2,5,10,7,6,2,12,1,4,4,6,11,2,2,8,3,7,9,2,1,5,6,10,3,9,9,5,5,1,11,11,10,8,3,6,8,5,11,5,10,1,10,6,10,5,7,1,10,5,5,11,6,9,10,3,2,4,2,12,11,1,7,2,7,2,3,12,3,3,10,11,6,8,2,9,5,5,5,1,6,2,6,10,6,8,4,7,10,6,6,7,7,9,4,4,6,5,12,12,11,10,10,11,7,9,7,3,10,2,10,6,12,5,4,10,4,5,2,11,9,8,4,6,4,12,8,6,5,7,6,5,12,8,7,5,12,11,12,6,5,6,12,12,8,12,4,10,2,5,8,12,6,7,10,12,2,11,5,2,10,4,1,9,6,8,7,10,2,8,6,4,8,10,3,7,7,3,8,12,11,3,7,8,8,8,1,2,8,9,7,3,6,9,6,9,6,8,5,11,2,4,4,9,12,11,6,10,11,11,1,7,6,3,7,6,8,11,5,3,4,3,3,9,1,11,3,2,11,4,12,6,5,9,4,11,12,7,11,1,5,12,5,3,4,1,11,3,12,3,2,5,10,10,1,12,2,1,5,10,4,7,3,4,7,2,1,2,7,8,10,3,7,5,5,4,5,9,1,2,3,7,12,10,3,3,10,2,4,3,10,5,1,3,9,6,9,2,6,6,8,4,5,6,8,7,5,7,5,6,6,3,6,9,1,1,3,10,6,5,5,12,12,7,5,9,10,8,1,6,3,8,6,4,2,10,9,5,7,12,6,11,6,9,6,10,11,1,2,9,10,8,10,7,10,11,4,8,2,6,4,2,9,6,3,8,9,8,9,5,6,1,1,3,5,2,12,10,9,2,2,11,7,8,4,3,10,12,2,6,4,1,4,2,2,8,2,11,4,10,12,11,11,1,2,2,1,11,9,3,10,2,1,8,5,6,4,4,3,11,11,7,9,4,5,2,4,1,12,12,1,12,1,7,11,6,2,12,3,7,11,5,7,7,2,11,6,9,2,3,10,10,4,9,1,9,9,4,11,7,6,9,3,4,1,5,10,12,12,2,11,2,12,5,1,1,2,10,10,3,11,12,9,1,1,4,12,6,8,10,10,12,7,3,10,11,5,3,1,5,6,2,12,11,2,7,12,7,8,5,11,4,12,12,3,6,12,12,1,5,8,9,12,3,11,3,3,11,5,8,1,12,5,8,11,9,8,7,5,3,3,7,10,12,6,11,7,1,11,8,7,8,10,7,3,10,12,9,5,1,11,10,10,9,2,9,2,5,6,2,9,7,4,5,12,10,9,2,7,8,3,7,11,9,6,9,4,2,9,7,1,9,7,1,7,6,1,1,4,7,10,10,4,3,11,4,10,11,10,9,9,2,12,8,3,11,6,8,11,6,10,4,12,7,4,8,12,12,5,3,12,1,2,11,9,5,6,5,2,6,3,3,5,4,2,11,11,1,1,2,6,12,10,6,9,4,7,10,2,3,2,10,5,9,2,5,11,1,7,11,4,6,4,10,9,2,8,4,9,1,8,4,1,6,12,1,12,7,12,6,2,6,5,3,10,1,1,11,5,12,12,2,5,4,4,3,3,11,5,12,1,10,5,2,5,3,7,12,8,8,2,5,12,9,9,10,1,9,2,5,11,2,6,7,5,1,1,4,9,1,10,5,7,8,3,12,11,1,3,11,10,11,11,1,5,2,7,2,5,1,12,1,1,12,8,9,1,6,4,4,4,2,3,1,1,5,7,12,8,9,6,10,1,9,6,2,2,9,1,6,4,9,4,5,7,8,7,6,8,3,1,8,4,8,3,12,4,11,4,2,9,4,10,9,12,11,4,10,4,6,6,5,11,7,10,10,11,5,5,3,3,9,11,10,2,10,2,5,8,4,8,3,2,5,1,8,7,1,2,3,11,8,4,5,11,5,9,2,7,6,9,3,8,12,11,6,7,9,6,1,4,4,3,1,10,7,7,1,8,7,4,9,6,9,7,5,8,2,8,2,1,11,9,12,8,8,12,10,2,3,5,1,4,9,7,4,7,9,12,8,1,3,3,8,7,10,2,5,1,1,7,5,4,12,2,2,4,5,7,10,3,1,7,11,12,10,6,3,1,1,11,5,3,12,3,3,4,12,2,8,7,6,5,6,9,5,11,8,7,7,9,12,8,11,10,3,5,3,1,6,5,1,5,7,4,8,5,8,8,4,12,2,5,5,5,12,4,12,6,12,3,9,12,12,3,11,7,1,10,8,2,12,9,5,9,7,5,4,4,1,12,8,5,12,12,9,4,3,11,12,10,10,9,9,1,5,8,9,6,2,5,4,7,6,1,4,2,3,2,2,5,10,9,3,6,1,10,6,10,10,10,1,6,6,3,12,4,6,5,9,1,4,8,11,1,7,2,12,10,7,6,10,12,12,1,2,3,7,2,3,3,8,12,7,12,12,7,11,12,2,8,11,10,4,3,5,5,7,10,11,2,12,9,3,12,1,1,5,10,8,8,3,4,1,7,8,12,10,7,2,5,12,4,6,2,6,1,11,3,12,10,2,3,12,3,4,11,1,8,5,4,7,6,12,2,1,2,1,6,2,9,7,9,3,4,11,8,5,10,5,2,3,6,7,8,12,2,2,4,8,9,6,1,5,11,9,5,1,3,12,7,9,8,12,7,6,5,3,4,3,7,10,4,12,4,2,6,1,12,10,11,1,4,11,11,8,11,4,11,11,5,4,10,4,9,7,4,6,2,3,10,3,1,1,2,5,6,9,11,4,11,8,5,11,11,8,7,12,9,3,12,3,4,7,1,12,10,9,8,4,4,8,9,11,9,11,1,6,8,3,3,7,8,5,1,2,2,12,9,7,9,4,2,10,11,8,4,1,9,8,1,7,4,7,1,6,2,7,5,7,9,12,8,4,12,12,3,11,11,10,4,3,4,10,6,11,5,10,11,8,1,9,6,3,8,4,3,3,10,9,12,12,9,2,10,11,6,5,1,5,8,8,8,7,10,5,6,4,8,12,4,10,2,4,6,11,5,2,6,7,1,7,11,3,10,6,9,6,12,8,7,3,11,7,2,4,9,9,11,11,8,2,10,9,10,8,3,5,12,8,12,8,11,7,10,6,3,8,9,8,2,5,12,1,2,11,3,6,9,6,3,9,1,5,1,4,4,3,3,8,11,7,8,1,9,4,1,12,4,4,5,9,11,2,12,10,3,12,7,10,4,3,8,11,12,5,1,2,7,4,6,12,2,2,11,3,10,8,5,11,3,12,4,11,11,3,8,6,12,4,11,1,2,10,8,3,10,1,4,10,2,9,10,11,10,3,5,11,3,3,8,7,10,10,10,8,3,3,4,2,6,4,3,2,12,3,3,11,5,8,4,1,2,4,4,2,7,9,11,11,4,3,5,6,9,4,12,12,5,5,6,10,3,10,11,7,11,11,10,3,9,8,4,8,2,6,11,1,8,8,7,3,3,10,2,10,10,6,3,5,7,6,7,10,12,9,3,11,4,8,8,8,9,9,12,7,4,9,4,9,3,9,10,10,11,3,5,11,9,5,6,9,9,2,5,4,9,5,8,8,3,6,4,8,11,7,8,5,12,1,9,6,2,9,3,9,11,8,3,5,7,10,2,9,1,8,3,12,10,2,8,10,8,11,9,1,2,11,11,7,9,4,11,10,8,12,6,3,3,1,6,2,11,12,11,5,6,10,3,6,10,7,11,2,3,1,7,4,10,1,4,8,8,9,12,11,1,6,7,12,11,12,9,3,11,9,12,3,3,11,4,3,5,9,7,9,12,3,1,11,3,1,11,4,10,2,9,12,2,6,2,3,9,1,11,4,4,6,11,5,2,8,1,8,10,1,5,8,1,1,8,6,11,2,10,7,5,5,4,4,6,11,8,8,8,12,10,3,6,5,5,10,7,7,7,4,3,11,7,2,4,9,9,11,1,8,6,5,10,11,12,4,9,6,4,2,5,10,10,4,11,5,8,3,12,12,3,9,4,12,9,12,5,5,10,3,2,1,1,8,2,9,10,11,11,10,12,2,11,4,7,2,12,9,5,10,2,6,2,12,9,5,4,8,4,11,2,8,10,2,8,4,1,11,6,2,8,1,4,8,11,1,4,3,6,9,3,2,12,4,11,6,7,11,3,}
focus
0.30458915682204
firstname
"Kasituku"
midname
"Uukupanuy"
family
"Nainchnzik"
food
{}
END_KOBOLD
KOBOLD
genes
{12,2,9,10,10,5,3,4,5,2,9,4,11,11,8,2,2,12,3,2,10,3,9,3,11,1,6,11,6,4,7,4,10,7,3,9,4,4,8,6,1,11,2,6,5,3,12,1,9,3,6,11,8,7,7,3,8,1,12,7,9,12,11,12,9,3,5,3,9,10,9,3,12,11,6,1,7,3,8,7,3,7,4,11,4,10,6,11,6,9,8,6,7,12,5,11,11,9,1,4,7,8,8,11,10,2,1,4,4,12,9,12,2,2,11,8,12,1,11,5,7,3,12,12,6,8,7,8,6,11,8,6,1,12,9,8,7,4,5,5,5,5,5,1,5,6,6,1,3,2,11,9,4,4,4,8,4,4,6,1,1,9,1,3,12,12,8,2,6,9,11,8,9,5,5,9,6,4,11,2,2,6,12,4,12,9,3,1,4,4,6,12,11,11,2,6,7,3,7,2,1,7,12,9,3,6,9,9,8,9,6,5,1,6,8,5,3,7,10,1,2,2,8,10,1,11,6,6,3,5,1,4,8,11,3,11,11,12,6,2,8,4,10,12,4,6,9,10,9,10,4,3,5,3,4,4,12,4,1,10,12,2,12,8,4,2,12,7,10,5,4,3,2,3,10,9,6,12,4,2,1,8,8,1,12,12,11,3,7,9,12,6,4,1,6,12,11,6,1,11,5,11,7,9,5,9,8,3,10,4,2,3,1,7,6,3,7,10,4,1,11,3,9,6,4,5,6,9,8,2,5,10,1,12,11,12,4,8,3,9,11,4,9,12,9,7,4,8,6,6,4,10,12,5,3,1,7,8,4,5,11,3,4,5,8,9,2,5,5,11,2,3,5,6,2,1,8,11,9,7,7,9,7,8,4,9,11,5,4,9,2,1,4,8,5,11,6,11,2,12,2,8,9,6,9,6,12,5,3,1,2,9,3,5,5,9,12,9,2,6,4,11,1,10,1,12,12,6,4,10,10,9,11,3,4,9,5,11,5,11,6,7,11,9,10,5,3,5,6,6,3,7,4,6,1,7,11,6,4,12,3,11,11,5,6,8,5,8,9,12,12,10,8,2,4,10,12,11,10,4,4,9,2,9,10,5,7,5,3,2,1,11,4,2,11,2,4,2,10,11,2,3,1,5,6,6,1,3,3,3,7,2,5,9,12,7,3,5,12,5,1,8,4,4,2,2,7,10,5,1,11,1,12,7,6,9,7,4,1,7,4,10,4,10,4,12,1,6,12,3,1,5,6,10,1,9,4,7,2,3,4,3,3,11,1,2,2,5,10,8,12,3,8,1,5,8,10,1,2,4,7,7,1,8,9,6,12,1,10,6,11,3,9,9,1,5,10,11,3,9,5,9,2,10,4,2,5,1,9,7,9,9,8,8,9,10,12,11,4,5,8,1,10,10,9,9,5,3,11,2,9,5,11,7,3,2,9,10,6,5,2,1,10,5,10,9,4,8,2,1,8,1,8,3,8,8,1,9,11,11,7,12,7,12,8,7,2,9,12,12,10,2,4,4,3,3,6,7,3,5,9,6,2,2,4,4,10,6,8,6,10,6,1,11,10,7,2,2,6,2,3,3,12,5,9,8,9,6,4,5,4,1,5,5,2,5,12,7,11,5,4,12,5,8,9,12,9,12,11,9,4,12,2,11,2,9,4,10,4,2,1,10,9,8,10,12,5,7,7,9,12,5,4,12,8,8,8,5,11,4,8,10,12,5,1,2,6,4,7,2,1,1,5,4,4,11,6,2,10,5,9,10,9,5,7,2,11,8,6,5,8,9,3,9,9,4,11,5,1,5,3,8,4,7,12,9,10,3,7,3,3,8,1,3,1,5,5,10,1,12,8,5,2,12,7,4,8,7,7,1,4,7,9,2,8,6,10,9,10,11,11,8,9,3,8,8,10,4,6,5,11,9,4,3,11,7,4,1,5,2,1,8,8,11,6,8,2,6,1,10,7,7,1,8,7,3,7,2,5,2,1,10,7,6,12,2,12,3,4,5,1,8,2,12,2,7,2,9,9,4,4,12,2,7,12,10,11,10,11,8,10,2,9,12,10,4,10,1,4,10,1,11,9,8,2,9,1,3,3,11,9,6,10,12,10,9,4,4,12,10,8,1,11,10,3,9,12,7,8,7,4,1,4,4,2,10,5,6,7,7,12,9,12,6,10,8,1,6,3,1,7,1,10,3,5,6,5,8,1,5,1,2,8,10,9,11,3,1,11,9,12,11,11,2,12,4,6,3,4,9,5,4,9,10,3,2,12,11,6,9,10,8,2,9,11,6,10,5,2,8,9,1,6,2,2,1,2,5,5,11,1,5,12,2,11,7,2,1,5,1,11,11,6,2,10,10,7,7,5,8,4,5,6,6,3,2,1,3,8,4,8,9,7,9,8,12,11,12,8,6,8,8,11,3,7,11,7,1,6,10,9,10,10,3,8,7,4,3,10,7,12,9,8,5,11,10,9,10,11,12,5,10,8,1,6,2,7,6,5,6,7,12,8,12,2,9,4,12,10,5,9,8,6,2,7,8,10,6,11,6,9,9,12,4,4,2,4,7,12,11,9,12,1,12,12,6,12,10,10,6,9,8,2,4,9,5,11,12,1,12,10,8,1,10,6,10,11,4,10,8,11,8,9,7,1,7,5,5,3,1,2,9,6,4,6,3,7,9,6,8,3,10,1,6,11,12,2,1,8,5,3,10,12,1,3,5,12,2,3,3,7,4,7,12,9,2,1,6,3,5,9,9,7,7,2,7,2,4,1,7,7,2,7,1,12,5,4,3,2,2,1,4,12,1,5,7,7,8,10,11,1,8,7,7,5,9,10,6,11,12,10,8,9,11,8,8,7,3,8,4,1,2,3,11,3,5,5,7,4,5,8,4,9,10,8,10,1,6,9,11,7,7,12,3,2,6,6,9,8,6,2,1,9,8,1,6,7,1,12,4,4,10,2,1,7,11,1,10,7,8,9,7,1,1,5,2,7,4,12,10,3,6,7,9,1,4,10,7,11,4,10,2,11,7,2,10,8,9,2,4,1,7,4,8,6,7,10,4,9,3,3,2,10,11,4,5,3,1,6,7,7,8,6,5,1,1,2,8,3,4,7,11,6,9,10,4,8,12,8,5,10,12,9,2,2,6,11,4,7,3,4,4,7,11,6,3,4,1,7,4,9,6,11,11,7,10,1,2,3,2,5,5,5,3,8,11,11,1,5,11,9,9,7,11,3,2,1,7,2,4,7,7,7,6,3,12,5,8,6,3,12,1,12,11,9,2,5,12,1,9,8,4,6,8,3,4,6,7,7,11,5,6,2,6,8,7,8,1,9,10,8,3,3,10,6,11,8,8,8,7,6,6,4,8,12,4,3,11,5,3,1,2,5,2,9,9,10,11,5,6,11,11,2,11,12,4,3,5,9,2,9,12,3,3,1,10,11,11,4,11,5,3,3,3,4,12,12,11,4,11,12,3,7,10,12,6,8,4,1,1,8,4,9,7,4,9,9,6,11,9,1,12,9,8,1,10,11,11,5,8,7,9,3,2,7,2,5,1,5,6,2,10,12,7,5,3,1,4,3,1,4,4,1,9,12,9,7,7,6,11,12,1,10,12,9,1,5,9,3,8,5,7,10,1,9,7,2,2,6,12,3,4,1,8,10,10,10,3,2,11,12,5,8,11,11,4,12,8,12,9,3,11,10,3,5,6,8,1,2,4,11,5,12,8,5,6,10,10,4,1,9,4,9,8,1,12,9,1,9,10,1,1,3,5,4,5,9,9,8,11,1,5,10,10,4,8,8,1,9,11,3,4,4,11,8,5,3,3,1,8,3,3,10,4,9,1,9,10,8,6,1,8,6,10,1,3,6,8,2,8,8,1,9,10,4,10,9,8,10,4,9,12,2,5,6,7,6,6,7,11,7,2,9,10,1,10,12,2,5,5,12,11,12,2,9,6,12,11,8,4,10,4,3,4,1,11,3,2,10,5,12,1,4,7,3,7,6,8,10,4,7,12,11,12,7,6,8,7,1,7,6,7,11,6,9,12,11,7,7,1,4,4,10,6,10,10,5,11,9,12,10,4,7,9,1,10,5,6,10,1,3,3,9,3,4,4,12,7,5,7,11,8,8,3,7,11,1,5,4,2,2,12,2,6,8,9,11,6,8,11,12,11,3,3,11,10,3,10,12,10,11,2,3,6,3,12,8,9,11,4,11,1,3,12,5,5,6,9,12,5,12,3,10,7,12,6,12,10,6,2,9,2,1,12,9,2,5,1,3,11,7,4,10,8,5,11,3,12,4,1,4,9,1,12,6,10,5,10,7,7,5,5,9,6,7,4,11,8,6,7,7,4,5,4,5,6,1,2,2,12,2,12,5,3,}
focus
0.34283721059244
firstname
"Sunukasi"
midname
"Kafsisanuy"
family
"Ptasitunzik"
food
{}
END_KOBOLD
KOBOLD
genes
{11,4,11,9,2,11,10,9,9,2,12,12,8,1,4,11,6,7,7,9,7,6,5,1,5,1,2,9,11,4,8,10,1,3,8,7,9,6,5,4,8,12,10,8,2,1,10,2,7,12,6,7,8,4,3,11,2,3,5,6,3,10,8,1,7,8,5,6,6,6,2,10,3,8,3,1,5,12,2,1,1,8,9,7,8,9,6,7,10,9,5,3,8,11,9,7,11,1,3,11,2,12,9,8,10,7,3,4,9,2,6,7,3,12,10,1,2,6,6,6,2,6,8,9,7,10,2,11,4,1,11,10,2,10,9,3,12,11,4,11,6,3,11,12,6,7,1,1,6,8,11,5,5,1,7,11,2,11,4,3,4,12,4,10,4,4,3,7,12,6,6,5,9,5,7,5,6,1,7,4,5,9,10,5,2,8,5,4,12,11,11,6,11,3,6,9,7,12,7,10,8,6,8,1,12,12,5,5,12,5,6,4,2,5,11,1,6,3,8,12,3,6,2,6,3,9,4,7,8,5,10,6,1,1,6,10,6,10,12,8,3,12,5,1,4,1,10,3,3,11,5,2,4,3,4,10,9,10,9,7,4,5,4,2,10,3,4,12,7,1,6,3,9,3,2,4,2,6,12,5,12,3,4,9,9,7,3,10,5,3,11,2,9,8,6,7,9,3,12,3,9,6,11,5,4,12,2,5,4,11,10,8,6,10,5,6,3,2,11,12,2,11,4,7,4,3,6,1,1,9,8,10,5,4,2,2,5,11,4,12,6,4,1,9,10,11,9,7,4,2,8,8,12,4,3,1,2,2,9,10,8,8,6,5,11,11,5,10,1,11,10,2,5,12,2,10,7,8,12,10,7,7,12,3,7,12,2,10,3,4,6,10,9,2,5,11,12,11,2,10,4,2,12,5,5,8,12,5,8,3,12,6,4,5,6,3,5,3,2,6,3,4,7,6,9,4,1,2,7,10,3,12,6,4,8,5,8,8,3,12,3,4,6,8,3,6,11,4,6,11,6,1,8,1,4,6,6,2,10,5,8,11,4,12,1,5,3,5,12,9,4,2,11,10,2,6,11,11,10,5,3,1,3,10,1,3,5,8,9,10,8,5,12,8,12,8,8,12,11,12,7,12,1,10,11,10,9,3,10,7,5,3,6,9,12,1,12,11,12,7,6,1,3,11,11,10,10,5,12,3,7,11,12,4,5,6,6,11,2,12,5,3,12,7,3,9,2,11,7,12,8,2,7,11,6,9,8,2,11,8,8,6,1,12,9,2,8,6,12,10,7,4,8,11,3,9,10,5,1,4,5,6,7,10,10,1,5,1,11,8,7,3,1,10,6,6,12,7,7,1,6,1,4,7,8,7,5,10,3,9,3,2,11,12,4,3,12,5,1,11,9,3,6,7,3,1,12,1,3,8,8,2,9,5,11,10,12,8,2,2,8,12,12,2,12,9,11,3,7,4,4,10,1,9,5,10,8,3,3,1,10,12,6,6,5,1,2,3,9,7,5,8,11,12,11,3,6,10,11,8,3,5,7,1,7,11,11,9,1,9,1,2,10,3,8,7,8,2,10,5,11,9,12,5,8,2,3,11,12,5,3,2,4,7,4,5,2,7,11,1,2,2,3,5,3,5,6,11,11,9,1,8,10,8,12,6,1,5,11,2,6,2,7,6,6,12,6,12,9,10,11,7,3,11,6,11,3,9,5,12,3,7,3,11,5,1,1,2,8,3,12,1,11,5,4,1,3,7,11,11,5,9,9,6,10,1,11,7,11,10,1,10,6,7,3,2,4,12,5,4,11,9,9,4,3,5,4,12,5,5,3,3,8,10,2,11,1,9,1,5,2,7,6,1,10,9,5,8,9,8,1,3,4,2,2,3,7,3,8,11,8,4,7,8,1,5,12,4,1,1,9,12,11,3,7,8,6,11,10,11,12,12,9,7,10,5,4,3,3,12,10,6,10,12,11,12,4,10,5,3,10,12,4,6,2,2,10,6,1,1,10,2,7,4,12,2,11,7,9,10,3,6,12,6,6,7,3,7,3,12,11,10,6,5,2,5,12,5,5,2,11,2,1,2,1,6,5,3,8,11,1,8,8,5,11,12,2,3,3,9,2,10,11,2,5,12,4,7,8,12,8,9,3,6,3,6,10,7,7,7,9,4,10,7,10,8,3,5,1,10,6,4,9,5,3,7,1,9,6,3,9,3,7,9,6,9,6,4,11,10,4,1,4,1,12,3,10,4,1,6,12,2,3,2,3,10,5,12,10,8,10,4,4,1,11,6,11,2,4,6,11,11,7,8,10,3,8,12,8,7,10,6,10,7,11,2,12,11,6,5,1,2,5,12,12,8,5,2,6,10,12,9,11,10,5,11,7,4,4,2,11,11,4,9,2,9,3,8,3,1,1,7,3,6,8,11,3,7,6,10,11,9,9,4,12,7,10,3,10,5,11,11,7,2,4,7,4,1,5,3,10,4,2,3,7,6,11,4,2,3,6,11,6,11,5,5,5,12,5,4,6,8,9,2,9,5,3,4,6,11,4,1,11,1,7,7,9,1,5,10,2,9,2,10,5,8,6,6,5,2,7,10,2,2,9,3,2,3,11,2,11,7,2,12,12,6,3,3,2,6,12,6,7,2,10,9,11,5,4,9,12,5,10,6,11,10,1,2,11,5,5,12,7,9,9,10,4,7,8,10,9,7,2,10,1,7,10,3,5,5,3,1,4,10,8,7,1,1,4,10,4,4,8,1,7,12,7,1,1,1,9,9,10,1,6,2,3,9,1,7,1,12,2,5,7,9,4,12,5,12,2,7,4,4,3,4,11,5,2,2,2,6,4,10,7,6,1,2,3,11,2,6,5,7,2,6,3,4,1,3,10,8,7,7,4,8,7,10,10,5,10,2,9,1,4,11,1,9,4,7,6,8,3,7,5,12,7,3,2,5,8,8,1,3,9,4,8,2,4,5,9,4,5,7,5,1,11,6,11,2,8,11,9,5,10,7,3,4,12,10,5,1,3,4,12,8,5,6,3,1,9,6,8,9,6,11,11,6,9,3,4,4,8,12,5,9,2,12,9,3,9,8,8,1,2,7,11,12,12,10,5,7,4,10,9,5,5,12,2,6,1,3,7,1,11,8,10,10,7,2,10,10,2,7,3,10,9,6,10,7,10,7,3,9,2,8,5,7,11,1,3,7,11,12,4,9,3,3,3,11,2,6,2,8,9,10,11,3,2,1,11,6,10,10,6,1,7,9,1,1,8,8,5,2,2,1,5,6,10,4,5,1,1,2,1,2,8,2,11,10,7,3,6,10,1,11,5,12,11,3,5,9,10,12,3,2,12,7,5,10,7,10,10,12,2,4,6,2,7,8,5,8,2,9,6,1,7,4,5,6,8,10,4,3,4,12,11,9,4,1,9,8,1,3,8,1,12,6,6,3,3,10,7,4,10,5,11,10,7,3,12,3,12,11,10,2,3,2,12,1,11,2,8,6,4,8,2,9,7,4,5,9,3,1,3,7,3,4,8,1,9,2,9,1,12,6,5,7,8,4,1,9,1,10,4,8,8,8,8,11,8,8,9,5,9,6,10,5,7,9,5,4,8,1,5,1,6,3,8,6,10,7,1,8,4,2,9,7,7,10,9,8,4,7,7,4,9,5,3,2,10,7,11,4,12,12,10,7,4,2,4,1,1,12,6,11,9,11,8,7,7,5,1,4,7,7,9,6,3,8,2,2,5,11,9,2,4,9,4,6,6,9,8,11,8,10,8,9,2,7,11,3,2,11,9,12,4,7,8,1,3,1,9,5,2,2,3,10,8,5,1,3,10,11,8,1,2,6,10,3,3,5,11,4,7,8,3,2,5,1,3,1,12,10,7,3,6,11,3,8,6,9,10,8,8,11,4,3,9,9,10,1,10,4,8,2,11,1,8,3,5,11,2,3,10,3,2,12,1,7,11,3,12,10,2,2,11,10,2,8,4,4,5,11,2,4,1,10,1,9,3,12,6,12,11,4,8,1,7,10,12,6,1,6,8,3,3,3,8,5,6,8,7,7,1,6,8,3,6,2,4,5,12,8,9,8,2,1,11,12,10,9,4,6,12,2,9,12,7,1,3,5,8,4,10,9,2,9,11,12,6,4,7,4,4,2,1,4,3,3,6,6,4,4,5,12,8,6,6,12,4,7,6,9,4,8,12,7,4,8,12,10,12,4,6,6,7,7,2,2,1,3,4,10,10,10,12,1,7,10,1,10,3,3,12,12,9,5,12,5,11,1,1,11,6,10,12,10,9,1,6,10,5,2,8,10,7,2,7,1,11,5,8,7,4,5,11,11,2,1,7,10,4,11,6,8,6,6,9,6,5,5,9,3,}
focus
0.5339844589177
firstname
"Taktuny"
midname
"Nguipaanuy"
family
"Psupkinzik"
food
{}
END_KOBOLD
KOBOLD
genes
{3,9,12,8,1,5,5,5,11,4,9,2,12,2,7,1,5,2,9,4,1,9,11,2,4,5,12,3,9,11,5,5,3,3,5,2,12,10,2,1,2,8,7,5,6,9,12,1,12,6,6,2,7,4,4,4,4,2,1,3,7,9,7,6,1,11,4,3,2,2,2,2,9,9,6,6,10,5,7,8,3,8,7,2,4,1,12,8,4,8,5,10,11,5,4,12,2,2,3,8,7,6,5,3,5,11,12,8,2,2,11,8,2,4,12,11,12,8,1,12,6,9,4,12,5,2,10,1,10,4,10,12,3,11,4,10,3,4,5,3,1,4,5,8,7,6,11,2,2,10,4,2,9,8,6,3,9,10,8,9,1,6,4,5,3,10,11,11,5,4,10,12,4,7,6,11,10,11,6,1,9,12,6,9,2,6,9,11,2,1,7,7,4,8,3,11,8,2,7,3,6,12,12,5,3,1,4,10,11,10,7,5,8,10,12,5,12,6,4,12,10,10,11,5,10,6,1,10,7,12,3,10,6,12,8,2,9,2,10,10,6,5,3,10,10,12,8,10,8,7,1,1,5,9,4,8,3,12,1,4,12,6,2,11,5,5,5,12,1,2,8,4,10,12,2,5,2,6,3,2,4,4,3,1,3,2,1,12,7,9,2,7,1,4,2,10,2,12,4,12,2,4,1,3,1,4,9,7,2,8,1,6,9,11,3,6,1,1,9,2,2,5,2,11,11,9,4,7,2,8,12,5,12,8,2,9,5,7,7,3,7,9,3,2,3,7,1,5,8,11,1,12,4,11,4,7,4,4,1,8,7,12,10,6,2,5,3,12,5,6,10,12,11,7,2,8,3,6,4,1,7,11,8,9,6,10,4,5,4,2,11,10,6,10,4,10,6,2,12,4,10,7,3,8,4,5,10,6,12,2,3,6,7,12,3,3,2,9,1,3,6,6,3,5,8,11,12,10,7,11,6,2,9,8,6,9,2,2,4,12,11,11,9,12,3,10,7,12,1,4,1,4,12,2,6,1,3,1,8,1,12,2,3,3,8,9,10,9,8,12,7,2,7,11,6,9,6,9,7,5,1,4,5,4,10,2,3,8,9,6,12,5,9,10,8,1,5,9,9,12,9,5,3,8,2,8,6,6,12,1,3,10,5,8,3,10,3,3,2,9,1,1,8,6,2,1,1,5,1,6,3,7,8,4,12,4,2,10,11,4,5,9,12,7,2,6,8,12,9,1,5,12,2,2,6,9,11,1,2,2,8,3,9,2,7,11,8,8,12,10,11,6,7,5,5,6,4,8,3,1,2,2,2,4,8,5,5,5,9,6,2,5,3,9,11,8,9,4,3,12,1,1,5,12,1,3,5,8,2,12,9,7,5,9,3,9,12,12,10,2,9,11,5,8,5,10,10,2,2,11,3,5,8,1,3,11,9,9,3,6,5,12,10,2,11,4,2,6,12,5,5,9,5,2,5,2,11,5,3,4,9,6,5,4,1,12,7,3,1,1,1,9,4,12,5,7,8,10,12,5,3,5,7,9,11,12,3,2,8,2,7,8,10,2,9,6,11,6,11,3,8,4,12,9,10,4,6,5,3,3,6,1,12,3,6,3,4,9,4,3,12,4,4,11,2,10,2,12,11,9,7,12,9,11,10,11,8,1,1,10,10,1,2,7,5,2,8,6,3,11,1,4,9,11,3,10,5,8,12,3,9,10,6,10,10,12,7,4,5,9,1,7,2,3,10,11,5,4,2,11,8,7,12,5,3,7,8,9,10,8,5,4,4,3,11,1,11,6,6,4,11,3,7,9,11,2,6,10,7,7,7,2,6,12,4,3,8,3,10,12,2,9,8,7,6,7,2,4,12,10,1,2,6,11,3,10,2,8,3,7,6,1,11,12,7,10,7,7,2,5,5,6,4,10,7,10,6,10,9,6,8,7,8,1,8,10,4,6,9,1,1,7,11,12,9,5,6,9,9,3,6,6,2,8,11,6,10,2,6,10,10,4,3,1,7,4,10,3,6,11,8,7,11,2,3,11,2,2,11,3,12,8,3,11,1,9,7,7,12,12,8,2,7,3,6,8,3,9,5,11,10,5,5,4,12,2,2,2,4,8,10,11,9,10,8,11,7,12,5,8,1,8,3,1,3,2,10,8,9,8,11,7,4,4,6,9,6,11,6,10,11,6,7,4,11,3,10,8,12,8,7,11,6,10,11,4,12,10,7,9,12,9,6,3,2,10,10,7,3,6,1,7,3,9,1,1,2,2,9,7,3,6,1,8,10,7,2,12,5,10,2,3,1,4,2,9,5,7,11,6,8,5,11,9,9,2,3,2,5,7,4,8,4,4,8,7,4,5,10,8,11,3,10,11,5,7,6,9,5,1,2,3,10,10,11,8,2,8,5,11,1,4,8,4,2,3,11,9,9,1,3,10,11,1,7,5,6,12,8,5,4,1,2,3,9,1,11,12,7,9,9,2,3,11,7,2,9,10,8,10,5,4,5,8,2,6,3,5,10,1,3,2,3,4,9,9,2,4,6,2,5,9,4,10,11,9,11,5,3,6,10,12,7,9,6,10,11,8,12,3,3,12,12,11,9,5,3,2,7,3,4,4,5,5,5,12,4,9,10,3,9,8,9,2,3,5,10,5,8,8,2,11,8,8,9,10,1,10,3,1,6,5,11,2,3,12,2,1,8,3,4,4,8,11,6,11,9,10,1,9,8,6,1,7,2,5,8,9,4,7,1,10,4,6,8,5,10,6,9,1,5,2,3,3,10,4,9,6,8,1,4,4,1,4,4,7,10,10,11,6,5,2,11,2,11,2,12,4,6,1,8,10,10,11,5,1,12,12,6,5,8,3,1,10,5,6,12,10,10,2,7,9,9,1,11,8,8,1,4,2,2,9,3,5,2,5,1,9,1,2,12,9,4,7,4,12,2,9,5,7,11,8,7,8,4,5,3,8,3,10,10,6,5,1,1,9,7,6,2,12,7,9,8,7,4,4,2,5,4,10,4,8,3,12,9,9,6,1,10,2,9,9,6,8,11,12,4,5,12,5,12,3,8,9,7,2,7,10,12,6,3,5,5,12,1,2,9,6,6,2,5,6,1,9,5,3,6,10,6,11,10,8,9,2,5,6,5,11,10,4,10,7,6,12,3,6,8,11,7,1,7,6,11,6,11,5,5,9,5,1,9,12,7,10,12,11,2,9,1,9,2,12,8,5,2,6,10,12,8,12,8,4,3,1,9,5,5,1,4,8,5,1,1,11,2,12,12,9,6,7,6,10,10,10,3,2,7,5,3,11,8,9,6,7,11,7,5,7,8,2,8,10,11,3,9,12,5,4,7,8,3,5,1,12,4,2,4,1,11,12,1,12,12,7,2,5,2,3,3,7,8,3,3,8,8,2,2,2,1,11,7,3,3,6,11,9,4,3,9,1,6,1,6,11,9,2,1,3,3,1,4,4,9,10,12,8,2,7,2,12,12,2,6,2,4,2,5,9,7,10,12,3,9,4,11,6,2,11,9,6,6,8,9,10,12,7,8,1,3,6,3,2,1,7,6,8,11,8,10,1,5,8,5,10,11,6,3,8,2,1,9,12,1,1,1,6,9,12,9,7,7,10,11,4,5,4,1,12,2,4,12,7,6,1,2,12,3,4,10,5,2,1,11,4,1,4,5,3,5,3,11,3,1,5,9,6,3,9,10,6,4,4,2,3,5,10,5,1,5,8,6,4,11,7,11,11,6,4,4,4,3,10,12,11,9,7,8,9,6,5,2,3,10,8,12,1,5,7,9,11,9,8,8,6,7,3,11,8,10,4,7,5,5,10,4,4,9,9,11,1,11,1,12,1,4,6,10,1,6,11,3,1,9,4,7,12,9,3,8,5,2,11,9,3,11,7,8,11,10,12,3,12,8,3,1,12,12,7,5,3,12,2,12,4,2,1,4,5,10,6,11,11,1,1,5,5,2,7,8,6,9,3,2,12,11,12,7,6,4,10,8,7,2,11,4,4,7,4,5,7,4,4,12,11,11,10,11,11,7,2,10,4,11,7,11,9,11,11,4,5,3,4,9,10,1,7,10,2,12,10,7,2,1,7,8,9,3,1,7,3,4,5,6,5,5,2,7,2,2,11,9,7,11,11,12,9,11,9,12,9,7,1,8,3,4,8,5,6,8,5,4,1,5,2,1,3,5,12,5,11,5,11,8,1,9,5,2,5,2,10,1,2,6,1,11,1,6,3,10,6,12,3,6,10,5,9,2,10,11,1,3,10,1,4,4,9,9,2,12,6,2,9,10,12,4,1,5,1,12,10,12,12,8,8,1,10,10,10,11,6,7,3,2,6,11,7,10,1,3,12,1,8,6,5,}
focus
0.66599919967195
firstname
"Ysinany"
midname
"Nsazanuy"
family
"Ysukynzik"
food
{5,}
END_KOBOLD

View file

@ -19,7 +19,7 @@ local round = calc.round
local adjacent = helper.adjacent local adjacent = helper.adjacent
local conditions = {} local conditions = {}
local gen_stats, popul, top_size -- condition values local gen_stats, popul, top_size -- condition values
local fill_creature, reset_creature, manage_creature, fill_cell -- condition functions local fill_creature, reset_creature, manage_creature, fill_cell, final_fitness -- condition functions
require "socket" require "socket"
@ -96,15 +96,16 @@ local function fill_popul(popul, cull)
math.randomseed(os.time()) math.randomseed(os.time())
local creature local creature
local child_popul = {}
if cull then if cull then
creature = {} creature = {}
local j = random(1,cull) local j = random(1,cull)
fill_creature(creature, popul[1], popul[j]) fill_creature(creature, popul[1], popul[j])
table.insert(popul, creature) table.insert(child_popul, creature)
end end
local popul_size = conditions.popul_max local popul_size = conditions.popul_max - #popul
while #popul <= popul_size do while #child_popul <= popul_size do
creature = {} creature = {}
if conditions.champ_breed if conditions.champ_breed
and (not cull or random() < 0.05) then and (not cull or random() < 0.05) then
@ -117,7 +118,12 @@ local function fill_popul(popul, cull)
until i ~= j until i ~= j
fill_creature(creature, popul[i], popul[j]) fill_creature(creature, popul[i], popul[j])
end end
table.insert(popul, creature) table.insert(child_popul, creature)
end
for i,child in ipairs(child_popul) do
table.insert(popul, child)
child_popul[i] = nil
end end
console_log("Success populating.\n") console_log("Success populating.\n")
@ -159,8 +165,8 @@ local function manage_lifetime(creature, map)
last = manage_turn(creature, map, turn) last = manage_turn(creature, map, turn)
end end
if conditions.fitness_modifier then if conditions.fitness_func then
creature.fitness = creature.fitness * conditions.fitness_modifier(turn, max_turn) creature.fitness = conditions.fitness_func(creature, turn, max_turn)
end end
end end
@ -245,7 +251,7 @@ local function train(options, offset)
cull_threshold = options.cull_threshold or 3/5, cull_threshold = options.cull_threshold or 3/5,
champ_breed = options.champ_breed or true, champ_breed = options.champ_breed or true,
max_turn = options.max_turn or 200, max_turn = options.max_turn or 200,
fitness_modifier = options.fitness_modifier, fitness_func = options.fitness_func,
custom_stats = options.custom_stats, custom_stats = options.custom_stats,
popul_max = options.popul_max or 150, popul_max = options.popul_max or 150,
} }

View file

@ -69,12 +69,11 @@ local kobold_decisions = {
function(self, dtime) -- eat function(self, dtime) -- eat
if self.food and #self.food > 0 then if self.food and #self.food > 0 then
local satiate = pop(self.food) local satiate = pop(self.food)
self.hunger = self.hunger + satiate self:eat(satiate)
self.hp = self.hp + 1
end end
end, end,
function(self, dtime) -- breed function(self, dtime) -- breed
self.fitness = self.fitness + 2 self.fitness = self.fitness + 1
self.hunger = self.hunger - 10 self.hunger = self.hunger - 10
end, end,
function(self, dtime) -- move North function(self, dtime) -- move North
@ -111,7 +110,7 @@ local function manage_kobold(player, map, dtime)
p.x = pos.x + adjacent[i].x p.x = pos.x + adjacent[i].x
p.z = pos.z + adjacent[i].z p.z = pos.z + adjacent[i].z
if valid(p) and map[p.x][p.z][1] then if valid(p) and map[p.x][p.z][1] then
p.y = map[p.x][p.z][1] p.y = map[p.x][p.z][1] - player.pos.y
else else
p.y = pos.y + player.climb + 1 p.y = pos.y + player.climb + 1
end end
@ -121,7 +120,7 @@ local function manage_kobold(player, map, dtime)
player.hunger = player.hunger - dtime player.hunger = player.hunger - dtime
local decision, gene = player.decide(player, neighbors) local decision, gene = player.decide(player, neighbors)
if decision then if decision and decision ~= -1 then
player.action = decision player.action = decision
player.last_gene = gene player.last_gene = gene
kobold_decisions[decision](player, dtime) kobold_decisions[decision](player, dtime)
@ -187,16 +186,21 @@ local function print_terrain(map, player)
return s return s
end end
local modifier = function(turn, max_turn) return (1 + turn/max_turn) end local function final_fitness(player, turn, max_turn)
local c1 = turn
local c2 = player.fitness
local m = 3 -- * max_turn
return (m*c1 + c2)/100
end
local function turn_log_kobold(player, map, gen_stats, turn) local function turn_log_kobold(player, map, gen_stats, turn)
local s = "\n\nBest creature: "..gen_stats.champ.."\tBest creature fitness: "..truncate(gen_stats.max_peak).."\n" local s = "\n\nBest creature: "..gen_stats.champ.."\tBest creature fitness: "..truncate(gen_stats.max_peak).."\n"
s = s.."Best creature lifespan: "..(gen_stats.lifespan or "None").."\tBest creature gen: "..(gen_stats.gen or "None").."\n" s = s.."Best creature lifespan: "..(gen_stats.lifespan or "None").."\tBest creature gen: "..(gen_stats.gen or "None").."\n"
s = s.."Last gen average: "..truncate(gen_stats.avg).."\t\tLast gen peak: "..truncate(gen_stats.peak).."\n\n" s = s.."Last gen avg: "..truncate(gen_stats.avg).."\t\tLast gen peak: "..truncate(gen_stats.peak).."\n\n"
s = s.."Current gen: "..gen_stats.num.."\t\tCurrent creature: "..player.id.."\n" s = s.."Current gen: "..gen_stats.num.."\t\tCurrent creature: "..player.id.."\n"
s = s.."Turn: "..(turn < 10 and "0" or "")..turn.."\t\tCreature name: "..player.name.."\n" s = s.."Turn: "..(turn < 10 and "0" or "")..turn.."\t\tCreature name: "..player.name.."\n"
s = s.."Action: "..kobolds.actions[player.action].."\t\tFocus: "..player.focus.."\n" s = s.."Action: "..kobolds.actions[player.action].."\t\tFocus: "..player.focus.."\n"
s = s.."Gene: "..(player.last_gene or "None").."\t\tFitness: "..truncate(player.fitness * modifier(turn, turn_max)).."\n\n" s = s.."Gene: "..(player.last_gene or "None").."\t\tFitness: "..truncate(final_fitness(player, turn, turn_max)).."\n\n"
s = s..print_terrain(map, player) s = s..print_terrain(map, player)
return s, 0.008 return s, 0.008
@ -246,8 +250,8 @@ local function global_log(gen_stats)
end end
local function train() local function train()
local input = true local input = false
local option = input and 0 or 10000 local option = input and 0 or 300
local offset = 0 local offset = 0
local population = {} local population = {}
repeat repeat
@ -275,7 +279,7 @@ local function train()
gen_log = gen_log_kobold, gen_log = gen_log_kobold,
training_log = global_log, training_log = global_log,
fitness_threshold = 40, fitness_threshold = 40,
fitness_modifier = modifier, fitness_func = final_fitness,
max_turn = turn_max, max_turn = turn_max,
popul = population, popul = population,
custom_stats = gen_stats_update, custom_stats = gen_stats_update,