From 73c3ae51faa4001e519e2c8fec1008ed89070006 Mon Sep 17 00:00:00 2001
From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54>
Date: Sun, 30 May 2010 02:15:58 +0000
Subject: [PATCH] fixes Sun paladin uses positive energy: decays; increased by
 caasting; decreased by combat school Star Mages will both taht and negative
 energy

git-svn-id: http://svn.net-core.org/repos/t-engine4@719 51575b47-30f0-44d4-a5cc-537603b46e54
---
 game/engine/Zone.lua                          |  42 ++++++-------
 game/engine/interface/ActorResource.lua       |   4 +-
 game/modules/tome/class/Actor.lua             |  56 ++++++++++++++++--
 game/modules/tome/class/PlayerDisplay.lua     |   9 ++-
 .../tome/class/generator/actor/Sandworm.lua   |   6 +-
 game/modules/tome/class/interface/Combat.lua  |  13 ++++
 .../tome/data/birth/classes/divine.lua        |   4 +-
 game/modules/tome/data/factions.lua           |  32 +++++-----
 game/modules/tome/data/general/npcs/snake.lua |   4 +-
 .../tome/data/talents/divine/chants.lua       |   4 ++
 .../tome/data/talents/divine/combat.lua       |  18 +++---
 .../tome/data/talents/divine/light.lua        |  49 ++-------------
 game/modules/tome/data/talents/divine/sun.lua |  30 ++++++----
 game/modules/tome/data/talents/misc/misc.lua  |  14 +++++
 .../tome/data/talents/spells/divination.lua   |   2 +-
 .../modules/tome/data/talents/spells/fire.lua |   4 +-
 .../tome/data/zones/sandworm-lair/npcs.lua    |   2 +-
 .../tome/data/zones/sandworm-lair/zone.lua    |   1 +
 .../tome/data/zones/tol-falas/npcs.lua        |   1 +
 game/modules/tome/load.lua                    |   3 +-
 ideas/factions.ods                            | Bin 14604 -> 14104 bytes
 ideas/zones.ods                               | Bin 12274 -> 12262 bytes
 22 files changed, 177 insertions(+), 121 deletions(-)

diff --git a/game/engine/Zone.lua b/game/engine/Zone.lua
index e822278678..b08ec230e5 100644
--- a/game/engine/Zone.lua
+++ b/game/engine/Zone.lua
@@ -487,27 +487,29 @@ function _M:newLevel(level_data, lev, old_lev, game)
 	map.room_map = nil
 
 	-- Check for connectivity from entrance to exit
-	local a = Astar.new(map, game:getPlayer())
-	print("[LEVEL GENERATION] checking entrance to exit A*", ux, uy, "to", dx, dy)
-	if ux and uy and dx and dy and (ux ~= dx or uy ~= dy) and not spots.no_level_connectivity and not a:calc(ux, uy, dx, dy) then
-		print("Level unconnected, no way from entrance to exit", ux, uy, "to", dx, dy)
-		level:removed()
-		return self:newLevel(level_data, lev, old_lev, game)
-	end
-	for i = 1, #spots do
-		local spot = spots[i]
-		if spot.check_connectivity then
-			local cx, cy
-			if type(spot.check_connectivity) == "string" and spot.check_connectivity == "entrance" then cx, cy = ux, uy
-			elseif type(spot.check_connectivity) == "string" and spot.check_connectivity == "exit" then cx, cy = dx, dy
-			else cx, cy = spot.check_connectivity.x, spot.check_connectivity.y
-			end
+	if not level_data.no_level_connectivity then
+		local a = Astar.new(map, game:getPlayer())
+		print("[LEVEL GENERATION] checking entrance to exit A*", ux, uy, "to", dx, dy)
+		if ux and uy and dx and dy and (ux ~= dx or uy ~= dy)  and not a:calc(ux, uy, dx, dy) then
+			print("Level unconnected, no way from entrance to exit", ux, uy, "to", dx, dy)
+			level:removed()
+			return self:newLevel(level_data, lev, old_lev, game)
+		end
+		for i = 1, #spots do
+			local spot = spots[i]
+			if spot.check_connectivity then
+				local cx, cy
+				if type(spot.check_connectivity) == "string" and spot.check_connectivity == "entrance" then cx, cy = ux, uy
+				elseif type(spot.check_connectivity) == "string" and spot.check_connectivity == "exit" then cx, cy = dx, dy
+				else cx, cy = spot.check_connectivity.x, spot.check_connectivity.y
+				end
 
-			print("[LEVEL GENERATION] checking A*", spot.x, spot.y, "to", cx, cy)
-			if spot.x and spot.y and cx and cy and (spot.x ~= cx or spot.y ~= cy) and not a:calc(spot.x, spot.y, cx, cy) then
-				print("Level unconnected, no way from", spot.x, spot.y, "to", cx, cy)
-				level:removed()
-				return self:newLevel(level_data, lev, old_lev, game)
+				print("[LEVEL GENERATION] checking A*", spot.x, spot.y, "to", cx, cy)
+				if spot.x and spot.y and cx and cy and (spot.x ~= cx or spot.y ~= cy) and not a:calc(spot.x, spot.y, cx, cy) then
+					print("Level unconnected, no way from", spot.x, spot.y, "to", cx, cy)
+					level:removed()
+					return self:newLevel(level_data, lev, old_lev, game)
+				end
 			end
 		end
 	end
diff --git a/game/engine/interface/ActorResource.lua b/game/engine/interface/ActorResource.lua
index ed8871e57a..2d66992cb8 100644
--- a/game/engine/interface/ActorResource.lua
+++ b/game/engine/interface/ActorResource.lua
@@ -89,7 +89,9 @@ end
 
 --- Regen resources, shout be called in your actor's act() method
 function _M:regenResources()
-	for i, r in ipairs(_M.resources_def) do
+	local r
+	for i = 1, #_M.resources_def do
+		r = _M.resources_def[i]
 		if r.regen_prop then
 			self[r.short_name] = util.bound(self[r.short_name] + self[r.regen_prop], 0, self[r.maxname])
 		end
diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua
index 5546bf5b9a..bb94069a30 100644
--- a/game/modules/tome/class/Actor.lua
+++ b/game/modules/tome/class/Actor.lua
@@ -83,6 +83,7 @@ function _M:init(t, no_default)
 	t.life_rating = t.life_rating or 10
 	t.mana_rating = t.mana_rating or 10
 	t.stamina_rating = t.stamina_rating or 4
+	t.positive_negative_rating = t.positive_negative_rating or 4
 
 	t.esp = t.esp or {range=10}
 
@@ -103,7 +104,14 @@ function _M:init(t, no_default)
 	t.mana_regen = t.mana_regen or 0.5
 	t.stamina_regen = t.stamina_regen or 0.3 -- Stamina regens slower than mana
 	t.life_regen = t.life_regen or 0.25 -- Life regen real slow
-	t.equilibrium_regen = t.equilibrium_regen or -0.01 -- Equilibrium resets real slow
+	t.equilibrium_regen = t.equilibrium_regen or 0 -- Equilibrium does not regen
+	t.positive_regen = t.positive_regen or -0.1 -- Positive energy slowly decays
+	t.negative_regen = t.negative_regen or -0.1 -- Positive energy slowly decays
+
+	t.max_positive = t.max_positive or 50
+	t.max_negative = t.max_negative or 50
+	t.positive = t.positive or 0
+	t.negative = t.negative or 0
 
 	-- Equilibrium has a default very high max, as bad effects happen even before reaching it
 	t.max_equilibrium = t.max_equilibrium or 100000
@@ -468,7 +476,7 @@ function _M:onTakeHit(value, src)
 	end
 
 	-- Achievements
-	if src and src:resolveSource().player and value >= 600 then
+	if src and src.resolveSource and src:resolveSource().player and value >= 600 then
 		world:gainAchievement("SIZE_MATTERS", src:resolveSource())
 	end
 
@@ -487,7 +495,7 @@ function _M:die(src)
 	engine.interface.ActorLife.die(self, src)
 
 	-- Gives the killer some exp for the kill
-	if src and src:resolveSource().gainExp then
+	if src and src.resolveSource and src:resolveSource().gainExp then
 		src:resolveSource():gainExp(self:worthExp(src:resolveSource()))
 	end
 	-- Do we get a blooooooody death ?
@@ -508,7 +516,7 @@ function _M:die(src)
 		src:incStamina(src:getTalentLevel(src.T_UNENDING_FRENZY) * 2)
 	end
 
-	if src and src:resolveSource().player then
+	if src and src.resolveSource and src:resolveSource().player then
 		-- Achievements
 		local p = src:resolveSource()
 		if p.life == 1 then world:gainAchievement("THAT_WAS_CLOSE", p) end
@@ -547,6 +555,8 @@ function _M:levelup()
 
 	self:incMaxMana(self.mana_rating)
 	self:incMaxStamina(self.stamina_rating)
+	self:incMaxPositive(self.positive_negative_rating)
+	self:incMaxNegative(self.positive_negative_rating)
 	-- Healp up on new level
 	self.life = self.max_life
 	self.mana = self.max_mana
@@ -647,6 +657,8 @@ function _M:learnTalent(t_id, force, nb)
 	if t.type[1]:find("^wild%-gift/") and not self:knowTalent(self.T_EQUILIBRIUM_POOL) then self:learnTalent(self.T_EQUILIBRIUM_POOL, true) end
 	if t.type[1]:find("^technique/") and not self:knowTalent(self.T_STAMINA_POOL) then self:learnTalent(self.T_STAMINA_POOL, true) end
 	if t.type[1]:find("^corruption/") and not self:knowTalent(self.T_VIM_POOL) then self:learnTalent(self.T_VIM_POOL, true) end
+	if t.type[1]:find("^divine/") and (t.positive or t.sustain_positive) and not self:knowTalent(self.T_POSITIVE_POOL) then self:learnTalent(self.T_POSITIVE_POOL, true) end
+	if t.type[1]:find("^divine/") and (t.negative or t.sustain_negative) and not self:knowTalent(self.T_NEGATIVE_POOL) then self:learnTalent(self.T_NEGATIVE_POOL, true) end
 
 	-- If we learn an archery talent, also learn to shoot
 	if t.type[1]:find("^technique/archery") and not self:knowTalent(self.T_SHOOT) then self:learnTalent(self.T_SHOOT, true) end
@@ -683,6 +695,14 @@ function _M:preUseTalent(ab, silent)
 			game.logPlayer(self, "You do not have enough stamina to activate %s.", ab.name)
 			return false
 		end
+		if ab.sustain_positive and self.max_positive < ab.sustain_positive and not self:isTalentActive(ab.id) then
+			game.logPlayer(self, "You do not have enough positive energy to activate %s.", ab.name)
+			return false
+		end
+		if ab.sustain_negative and self.max_negative < ab.sustain_negative and not self:isTalentActive(ab.id) then
+			game.logPlayer(self, "You do not have enough negative energy to activate %s.", ab.name)
+			return false
+		end
 	else
 		if ab.mana and self:getMana() < ab.mana * (100 + self.fatigue) / 100 then
 			game.logPlayer(self, "You do not have enough mana to cast %s.", ab.name)
@@ -692,6 +712,14 @@ function _M:preUseTalent(ab, silent)
 			game.logPlayer(self, "You do not have enough stamina to use %s.", ab.name)
 			return false
 		end
+		if ab.positive and self:getPositive() < ab.positive * (100 + self.fatigue) / 100 then
+			game.logPlayer(self, "You do not have enough positive energy to use %s.", ab.name)
+			return false
+		end
+		if ab.negative and self:getNegative() < ab.negative * (100 + self.fatigue) / 100 then
+			game.logPlayer(self, "You do not have enough negative energy to use %s.", ab.name)
+			return false
+		end
 	end
 
 	-- Equilibrium is special, it has no max, but the higher it is the higher the chance of failure (and loss of the turn)
@@ -766,6 +794,12 @@ function _M:postUseTalent(ab, ret)
 			if ab.sustain_equilibrium then
 				self:incEquilibrium(ab.sustain_equilibrium)
 			end
+			if ab.sustain_positive then
+				self.max_positive = self.max_positive - ab.sustain_positive
+			end
+			if ab.sustain_negative then
+				self.max_negative = self.max_negative - ab.sustain_negative
+			end
 		else
 			if ab.sustain_mana then
 				self.max_mana = self.max_mana + ab.sustain_mana
@@ -776,6 +810,12 @@ function _M:postUseTalent(ab, ret)
 			if ab.sustain_equilibrium then
 				self:incEquilibrium(-ab.sustain_equilibrium)
 			end
+			if ab.sustain_positive then
+				self.max_positive = self.max_positive + ab.sustain_positive
+			end
+			if ab.sustain_negative then
+				self.max_negative = self.max_negative + ab.sustain_negative
+			end
 		end
 	else
 		if ab.mana then
@@ -784,6 +824,12 @@ function _M:postUseTalent(ab, ret)
 		if ab.stamina then
 			self:incStamina(-ab.stamina * (100 + self.fatigue) / 100)
 		end
+		if ab.positive then
+			self:incPositive(-ab.positive * (100 + self.fatigue) / 100)
+		end
+		if ab.negative then
+			self:incNegative(-ab.negative * (100 + self.fatigue) / 100)
+		end
 		-- Equilibrium is not affected by fatigue
 		if ab.equilibrium then
 			self:incEquilibrium(ab.equilibrium)
@@ -830,6 +876,8 @@ function _M:getTalentFullDescription(t)
 	if t.stamina or t.sustain_stamina then d[#d+1] = "#6fff83#Stamina cost: #ffcc80#"..(t.stamina or t.sustain_stamina) end
 	if t.equilibrium or t.sustain_equilibrium then d[#d+1] = "#6fff83#Equilibrium cost: #00ff74#"..(t.equilibrium or t.sustain_equilibrium) end
 	if t.vim or t.sustain_vim then d[#d+1] = "#6fff83#Vim cost: #888888#"..(t.vim or t.sustain_vim) end
+	if t.positive or t.sustain_positive then d[#d+1] = "#6fff83#Positive energy cost: #GOLD#"..(t.positive or t.sustain_positive) end
+	if t.negative or t.sustain_negative then d[#d+1] = "#6fff83#Negative energy cost: #GREY#"..(t.negative or t.sustain_negative) end
 	if self:getTalentRange(t) > 1 then d[#d+1] = "#6fff83#Range: #FFFFFF#"..self:getTalentRange(t)
 	else d[#d+1] = "#6fff83#Range: #FFFFFF#melee/personal"
 	end
diff --git a/game/modules/tome/class/PlayerDisplay.lua b/game/modules/tome/class/PlayerDisplay.lua
index b86e18b5f7..48a630cbfd 100644
--- a/game/modules/tome/class/PlayerDisplay.lua
+++ b/game/modules/tome/class/PlayerDisplay.lua
@@ -69,12 +69,15 @@ function _M:display()
 	if game.player:knowTalent(game.player.T_MANA_POOL) then
 		self.surface:drawColorString(self.font, ("#7fffd4#Mana:    #00ff00#%d/%d"):format(game.player:getMana(), game.player.max_mana), 0, h, 255, 255, 255) h = h + self.font_h
 	end
-	if game.player:knowTalent(game.player.T_SOUL_POOL) then
-		self.surface:drawColorString(self.font, ("#777777#Soul:    #00ff00#%d/%d"):format(game.player:getSoul(), game.player.max_soul), 0, h, 255, 255, 255) h = h + self.font_h
-	end
 	if game.player:knowTalent(game.player.T_EQUILIBRIUM_POOL) then
 		self.surface:drawColorString(self.font, ("#00ff74#Equi:    #00ff00#%d"):format(game.player:getEquilibrium()), 0, h, 255, 255, 255) h = h + self.font_h
 	end
+	if game.player:knowTalent(game.player.T_POSITIVE_POOL) then
+		self.surface:drawColorString(self.font, ("#7fffd4#Positive:#GOLD#%d/%d"):format(game.player:getPositive(), game.player.max_positive), 0, h, 255, 255, 255) h = h + self.font_h
+	end
+	if game.player:knowTalent(game.player.T_NEGATIVE_POOL) then
+		self.surface:drawColorString(self.font, ("#7fffd4#Negative:#GREY#%d/%d"):format(game.player:getNegative(), game.player.max_negative), 0, h, 255, 255, 255) h = h + self.font_h
+	end
 
 	h = h + self.font_h
 	self.surface:drawColorString(self.font, ("STR: #00ff00#%3d"):format(game.player:getStr()), 0, h, 255, 255, 255) h = h + self.font_h
diff --git a/game/modules/tome/class/generator/actor/Sandworm.lua b/game/modules/tome/class/generator/actor/Sandworm.lua
index 7f2841c6a3..1d94ce3894 100644
--- a/game/modules/tome/class/generator/actor/Sandworm.lua
+++ b/game/modules/tome/class/generator/actor/Sandworm.lua
@@ -26,12 +26,10 @@ local Random = require "engine.generator.actor.Random"
 module(..., package.seeall, class.inherit(engine.Generator))
 
 function _M:init(zone, map, level, spots)
-	engine.Generator.init(self, zone, map)
-	self.level = level
+	engine.Generator.init(self, zone, map, level, spots)
 	self.data = level.data.generator.actor
-	self.spots = spots
 
-	self.random = Random.new(zone, map, level)
+	self.random = Random.new(zone, map, level, spots)
 end
 
 function _M:generate()
diff --git a/game/modules/tome/class/interface/Combat.lua b/game/modules/tome/class/interface/Combat.lua
index c2d397cdac..10de968e1e 100644
--- a/game/modules/tome/class/interface/Combat.lua
+++ b/game/modules/tome/class/interface/Combat.lua
@@ -297,6 +297,19 @@ function _M:attackTargetWith(target, weapon, damtype, mult)
 		end
 	end end
 
+	-- Weapon of light cast
+	if hitted and self:knowTalent(self.T_WEAPON_OF_LIGHT) and self:isTalentActive(self.T_WEAPON_OF_LIGHT) then
+		local dam = 7 + self:getTalentLevel(self.T_WEAPON_OF_LIGHT) * self:combatSpellpower(0.092)
+		DamageType:get(DamageType.LIGHT).projector(self, target.x, target.y, DamageType.LIGHT, dam)
+		self:incPositive(-3)
+		if self:getPositive() <= 0 then
+			local old = self.energy.value
+			self.energy.value = 100000
+			self:useTalent(self.T_WEAPON_OF_LIGHT)
+			self.energy.value = old
+		end
+	end
+
 	-- Shadow cast
 	if hitted and self:knowTalent(self.T_SHADOW_COMBAT) and self:isTalentActive(self.T_SHADOW_COMBAT) and self:getMana() > 0 then
 		local dam = 3 + self:getTalentLevel(self.T_SHADOW_COMBAT) * 2
diff --git a/game/modules/tome/data/birth/classes/divine.lua b/game/modules/tome/data/birth/classes/divine.lua
index a7179e62fd..0414ee8324 100644
--- a/game/modules/tome/data/birth/classes/divine.lua
+++ b/game/modules/tome/data/birth/classes/divine.lua
@@ -57,17 +57,17 @@ newBirthDescriptor{
 		["divine/light"]={false, 0},
 	},
 	talents = {
+		[ActorTalents.T_SEARING_LIGHT] = 1,
 		[ActorTalents.T_CHANT_OF_FORTITUDE] = 1,
 		[ActorTalents.T_WEAPON_COMBAT] = 1,
 		[ActorTalents.T_HEAVY_ARMOUR_TRAINING] = 1,
-		[ActorTalents.T_MASSIVE_ARMOUR_TRAINING] = 1,
 	},
 	copy = {
 		max_life = 110,
 		life_rating = 12,
 		resolvers.equip{ id=true,
 			{type="weapon", subtype="mace", name="iron mace", autoreq=true},
-			{type="armor", subtype="massive", name="iron plate armour", autoreq=true}
+			{type="armor", subtype="heavy", name="iron heavy armour", autoreq=true}
 		},
 	},
 }
diff --git a/game/modules/tome/data/factions.lua b/game/modules/tome/data/factions.lua
index 791027261b..38fe7f8b1d 100644
--- a/game/modules/tome/data/factions.lua
+++ b/game/modules/tome/data/factions.lua
@@ -19,21 +19,23 @@
 
 -- CSV export
 local src = [[
-,Enemies,,Reunited Kingdom,Shire,Lonely Mountain,Eryn Lasgalen,Angolwen,Tol Falas,,Water lair|H,Assassin lair|H,,Sunwall,Orc Pride
-Enemies,,,,,,,,,,,,,,
-,,,,,,,,,,,,,,
-Reunited Kingdom,-1,,,,,,,,,,,,,
-Shire,-1,,1,,,,,,,,,,,
-Lonely Mountain,-1,,0.5,1,,,,,,,,,,
-Eryn Lasgalen,-1,,0.5,1,0.3,,,,,,,,,
-Angolwen,-1,,,,,,,,,,,,,
-Tol Falas,,,-1,-1,-1,-1,-1,,,,,,,
-,,,,,,,,,,,,,,
-Water lair|H,-1,,,,,,,,,,,,,
-Assassin lair|H,,,,,,,,,,,,,,
-,,,,,,,,,,,,,,
-Sunwall,-1,,,,,,0,-1,,,-1,,,
-Orc Pride,,,-1,-1,-1,-1,-1,-1,,,,,-1,
+,Enemies,,Reunited Kingdom,Shire,Lonely Mountain,Eryn Lasgalen,Angolwen,Tol Falas,,Water lair|H,Assassin lair|H,,Sunwall,Orc Pride,,Sandworm Burrowers
+Enemies,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,
+Reunited Kingdom,-1,,,,,,,,,,,,,,,
+Shire,-1,,1,,,,,,,,,,,,,
+Lonely Mountain,-1,,0.5,1,,,,,,,,,,,,
+Eryn Lasgalen,-1,,0.5,1,0.3,,,,,,,,,,,
+Angolwen,-1,,,,,,,,,,,,,,,
+Tol Falas,,,-1,-1,-1,-1,-1,,,,,,,,,
+,,,,,,,,,,,,,,,,
+Water lair|H,-1,,,,,,,,,,,,,,,
+Assassin lair|H,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,
+Sunwall,-1,,,,,,0,-1,,,-1,,,,,
+Orc Pride,,,-1,-1,-1,-1,-1,-1,,,,,-1,,,
+,,,,,,,,,,,,,,,,
+Sandworm Burrowers,,,,,,,,,,,,,,,,
 ]]
 
 local facts = {}
diff --git a/game/modules/tome/data/general/npcs/snake.lua b/game/modules/tome/data/general/npcs/snake.lua
index fc842373f9..fd69b80ffe 100644
--- a/game/modules/tome/data/general/npcs/snake.lua
+++ b/game/modules/tome/data/general/npcs/snake.lua
@@ -107,8 +107,8 @@ newEntity{ base = "BASE_NPC_SNAKE",
 newEntity{ base = "BASE_NPC_SNAKE",
 	name = "anaconda", color=colors.YELLOW_GREEN,
 	desc = [[You recoil in fear as you notice this huge, 10 meter long snake.  It seeks to crush the life out of you.]],
-	level_range = {1, 50}, exp_worth = 1,
-	rarity = 1,
+	level_range = {20, 50}, exp_worth = 1,
+	rarity = 9,
 	rank = 9,
 	max_life = resolvers.rngavg(100,120),
 	combat_armor = 14, combat_def = 5,
diff --git a/game/modules/tome/data/talents/divine/chants.lua b/game/modules/tome/data/talents/divine/chants.lua
index 901781a623..743ae57b7b 100644
--- a/game/modules/tome/data/talents/divine/chants.lua
+++ b/game/modules/tome/data/talents/divine/chants.lua
@@ -36,6 +36,7 @@ newTalent{
 	require = divi_req1,
 	points = 5,
 	cooldown = 30,
+	sustain_positive = 20,
 	tactical = {
 		BUFF = 10,
 	},
@@ -75,6 +76,7 @@ newTalent{
 	require = divi_req2,
 	points = 5,
 	cooldown = 30,
+	sustain_positive = 20,
 	tactical = {
 		BUFF = 10,
 	},
@@ -112,6 +114,7 @@ newTalent{
 	require = divi_req3,
 	points = 5,
 	cooldown = 30,
+	sustain_positive = 20,
 	tactical = {
 		BUFF = 10,
 	},
@@ -154,6 +157,7 @@ newTalent{
 	require = divi_req4,
 	points = 5,
 	cooldown = 30,
+	sustain_positive = 20,
 	tactical = {
 		BUFF = 10,
 	},
diff --git a/game/modules/tome/data/talents/divine/combat.lua b/game/modules/tome/data/talents/divine/combat.lua
index fd27cc27eb..ea34bf2d13 100644
--- a/game/modules/tome/data/talents/divine/combat.lua
+++ b/game/modules/tome/data/talents/divine/combat.lua
@@ -23,26 +23,25 @@ newTalent{
 	mode = "sustained",
 	require = divi_req1,
 	points = 5,
-	cooldown = 30,
+	cooldown = 10,
+	sustain_positive = 10,
 	tactical = {
 		BUFF = 10,
 	},
 	range = 20,
 	activate = function(self, t)
-		local dam = 7 + self:getTalentLevel(t) * self:combatSpellpower(0.092)
 		game:playSoundNear(self, "talents/spell_generic2")
 		local ret = {
-			onhit = self:addTemporaryValue("melee_project", {[DamageType.LIGHT]=dam}),
 		}
 		return ret
 	end,
 	deactivate = function(self, t, p)
-		self:removeTemporaryValue("melee_project", p.onhit)
 		return true
 	end,
 	info = function(self, t)
 		return ([[Infuse your weapon of the power of the Sun, doing %0.2f light damage with each hit.
-		The damage will increase with the Magic stat]]):format(8 + self:combatSpellpower(0.092) * self:getTalentLevel(t))
+		Each hit will drain 3 positive energy, the spell ends when energy reaches 0.
+		The damage will increase with the Magic stat]]):format(7 + self:combatSpellpower(0.092) * self:getTalentLevel(t))
 	end,
 }
 
@@ -52,6 +51,7 @@ newTalent{
 	require = divi_req2,
 	points = 5,
 	cooldown = 22,
+	positive = 25,
 	tactical = {
 		ATTACK = 10,
 	},
@@ -64,7 +64,7 @@ newTalent{
 		local _ _, x, y = self:canProject(tg, x, y)
 		game:playSoundNear(self, "talents/spell_generic")
 		local target = game.level.map(x, y, Map.ACTOR)
-		if target and target:checkHit(src:combatSpellpower(), target:combatMentalResist(), 0, 95, 15)then
+		if target and target:checkHit(self:combatSpellpower(), target:combatMentalResist(), 0, 95, 15)then
 			target:setEffect(self.EFF_MARTYRDOM, 10, {power=8 * self:getTalentLevelRaw(t)})
 		else
 			return
@@ -85,7 +85,8 @@ newTalent{
 	type = {"divine/combat",3},
 	require = divi_req3,
 	points = 5,
-	cooldown = 10,
+	cooldown = 6,
+	positive = 10,
 	tactical = {
 		ATTACK = 10,
 	},
@@ -115,7 +116,8 @@ newTalent{
 	type = {"divine/combat", 4},
 	require = divi_req4,
 	points = 5,
-	cooldown = 20,
+	cooldown = 10,
+	positive = 10,
 	tactical = {
 		ATTACKAREA = 10,
 	},
diff --git a/game/modules/tome/data/talents/divine/light.lua b/game/modules/tome/data/talents/divine/light.lua
index 557900c579..2ee4fc62c1 100644
--- a/game/modules/tome/data/talents/divine/light.lua
+++ b/game/modules/tome/data/talents/divine/light.lua
@@ -23,6 +23,7 @@ newTalent{
 	require = spells_req1,
 	points = 5,
 	cooldown = 40,
+	positive = -10,
 	tactical = {
 		HEAL = 10,
 	},
@@ -42,8 +43,8 @@ newTalent{
 	type = {"divine/light", 2},
 	require = spells_req2,
 	points = 5,
---	mana = 60,
 	cooldown = 10,
+	positive = -20,
 	tactical = {
 		HEAL = 10,
 	},
@@ -76,6 +77,7 @@ newTalent{
 	require = spells_req3,
 	points = 5,
 --	mana = 30,
+	positive = -20,
 	cooldown = 60,
 	action = function(self, t)
 		self:setEffect(self.EFF_DAMAGE_SHIELD, 10, {power=(10 + self:getMag(30)) * self:getTalentLevel(t)})
@@ -92,56 +94,15 @@ newTalent{
 	type = {"divine/light", 4},
 	require = spells_req4,
 	points = 5,
---	mana = 60,
 	cooldown = 100,
+	positive = -30,
 	tactical = {
 		ATTACK = 10,
 	},
 	action = function(self, t)
-		-- Find space
-		local x, y = util.findFreeGrid(self.x, self.y, 5, true, {[Map.ACTOR]=true})
-		if not x then
-			game.logPlayer(self, "Not enough space to invoke the guardian!")
-			return
-		end
-		print("Invoking guardian on", x, y)
-
-		local NPC = require "mod.class.NPC"
-		local bear = NPC.new{
-			type = "animal", subtype = "bear",
-			display = "q", color=colors.LIGHT_GREEN,
-			name = "guardian bear", faction = self.faction,
-			desc = [[A bear summoned by the powers of nature to help you.]],
-			autolevel = "warrior",
-			ai = "summoned", ai_real = "dumb_talented_simple", ai_state = { talent_in=3, },
-			energy = { mod=1 },
-			stats = { str=18, dex=13, mag=5, con=15 },
-			resolvers.tmasteries{ ["technique/other"]=0.25 },
-
-			resolvers.talents{ [Talents.T_STUN]=2 },
-			max_stamina = 100,
-
-			resists = { [DamageType.COLD] = 20, [DamageType.NATURE] = 20 },
-			level_range = {self.level, self.level}, exp_worth = 0,
-
-			max_life = resolvers.rngavg(100,150),
-			life_rating = 10,
-
-			combat_armor = 7, combat_def = 3,
-			combat = { dam=resolvers.rngavg(12,25), atk=10, apr=10, physspeed=2 },
-
-			summoner = self,
-			summon_time = util.bound(self:getTalentLevel(t) * self:combatSpellpower(0.10), 5, 90),
-		}
-
-		bear:resolve()
-		game.zone:addEntity(game.level, bear, "actor", x, y)
-
-		game:playSoundNear(self, "talents/spell_generic")
 		return true
 	end,
 	info = function(self, t)
-		return ([[Call upon the forces of nature to summon a bear ally for %d turns.
-		The power of the ally will increase with the Magic stat]]):format(util.bound(self:getTalentLevel(t) * self:combatSpellpower(0.10), 5, 90))
+		return ([[NOT FINISHED]])
 	end,
 }
diff --git a/game/modules/tome/data/talents/divine/sun.lua b/game/modules/tome/data/talents/divine/sun.lua
index 1669457b19..8404057919 100644
--- a/game/modules/tome/data/talents/divine/sun.lua
+++ b/game/modules/tome/data/talents/divine/sun.lua
@@ -22,7 +22,8 @@ newTalent{
 	type = {"divine/sun", 1},
 	require = divi_req1,
 	points = 5,
-	cooldown = 9,
+	cooldown = 6,
+	positive = -15,
 	tactical = {
 		ATTACK = 10,
 	},
@@ -38,7 +39,7 @@ newTalent{
 		-- Add a lasting map effect
 		game.level.map:addEffect(self,
 			x, y, 4,
-			DamageType.LIGHT, 6 + self:combatSpellpower(0.2) * self:getTalentLevel(t),
+			DamageType.LIGHT, 6 + self:combatSpellpower(0.3) * self:getTalentLevel(t),
 			0,
 			5, nil,
 			{type="light_zone"},
@@ -50,7 +51,7 @@ newTalent{
 	end,
 	info = function(self, t)
 		return ([[Calls the power of the Sun into a searing light doing %0.2f damage and leaving a spot on the ground for 4 turns doing %0.2f damage.
-		The damage will increase with the Magic stat]]):format(6 + self:combatSpellpower(0.3) * self:getTalentLevel(t), 6 + self:combatSpellpower(0.2) * self:getTalentLevel(t))
+		The damage will increase with the Magic stat]]):format(6 + self:combatSpellpower(0.3) * self:getTalentLevel(t), 6 + self:combatSpellpower(0.3) * self:getTalentLevel(t))
 	end,
 }
 
@@ -60,6 +61,7 @@ newTalent{
 	require = divi_req2,
 	points = 5,
 	cooldown = 22,
+	positive = -15,
 	tactical = {
 		ATTACK = 10,
 	},
@@ -70,7 +72,7 @@ newTalent{
 		local grids = self:project(tg, self.x, self.y, DamageType.BLIND, 3 + self:getTalentLevel(t))
 		self:project(tg, self.x, self.y, DamageType.LITE, 1)
 		if self:getTalentLevel(t) then
-			self:project(tg, self.x, self.y, DamageType.LIGHT, 4 + self:combatSpellpower(0.1) * self:getTalentLevel(t))
+			self:project(tg, self.x, self.y, DamageType.LIGHT, 4 + self:combatSpellpower(0.15) * self:getTalentLevel(t))
 		end
 		game.level.map:particleEmitter(self.x, self.y, tg.radius, "sunburst", {radius=tg.radius, grids=grids, tx=self.x, ty=self.y, max_alpha=80})
 		game:playSoundNear(self, "talents/flame")
@@ -81,7 +83,7 @@ newTalent{
 		At level 3 it will start dealing %0.2f light damage.
 		The damage will increase with the Magic stat]]):
 		format(
-			4 + self:combatSpellpower(0.1) * self:getTalentLevel(t)
+			4 + self:combatSpellpower(0.15) * self:getTalentLevel(t)
 		)
 	end,
 }
@@ -91,7 +93,8 @@ newTalent{
 	type = {"divine/sun",3},
 	require = divi_req3,
 	points = 5,
-	cooldown = 10,
+	cooldown = 7,
+	positive = -20,
 	tactical = {
 		ATTACK = 10,
 	},
@@ -100,7 +103,7 @@ newTalent{
 		local tg = {type="beam", range=self:getTalentRange(t), talent=t}
 		local x, y = self:getTarget(tg)
 		if not x or not y then return nil end
-		self:project(tg, x, y, DamageType.FIRE, self:spellCrit(10 + self:combatSpellpower(0.2) * self:getTalentLevel(t)))
+		self:project(tg, x, y, DamageType.FIRE, self:spellCrit(10 + self:combatSpellpower(0.4) * self:getTalentLevel(t)))
 		local _ _, x, y = self:canProject(tg, x, y)
 		game.level.map:particleEmitter(self.x, self.y, math.max(math.abs(x-self.x), math.abs(y-self.y)), "light_beam", {tx=x-self.x, ty=y-self.y})
 
@@ -108,9 +111,9 @@ newTalent{
 		return true
 	end,
 	info = function(self, t)
-		return ([[Fire a beam of sun flames at your foes, burning all those in line for %0.2f light damage.
+		return ([[Fire a beam of sun flames at your foes, burning all those in line for %0.2f fire damage.
 		The damage will increase with the Magic stat]]):
-		format(10 + self:combatSpellpower(0.2) * self:getTalentLevel(t))
+		format(10 + self:combatSpellpower(0.4) * self:getTalentLevel(t))
 	end,
 }
 
@@ -119,14 +122,15 @@ newTalent{
 	type = {"divine/sun", 4},
 	require = divi_req4,
 	points = 5,
-	cooldown = 35,
+	cooldown = 15,
+	positive = -20,
 	tactical = {
 		ATTACKAREA = 10,
 	},
 	range = 3,
 	action = function(self, t)
 		local tg = {type="ball", range=0, radius=3, friendlyfire=false, talent=t}
-		local grids = self:project(tg, self.x, self.y, DamageType.LIGHT, self:spellCrit(10 + self:combatSpellpower(0.17) * self:getTalentLevel(t)))
+		local grids = self:project(tg, self.x, self.y, DamageType.LIGHT, self:spellCrit(10 + self:combatSpellpower(0.27) * self:getTalentLevel(t)))
 
 		game.level.map:particleEmitter(self.x, self.y, tg.radius, "sunburst", {radius=tg.radius, grids=grids, tx=self.x, ty=self.y})
 
@@ -134,7 +138,7 @@ newTalent{
 		return true
 	end,
 	info = function(self, t)
-		return ([[Conjures a furious burst of sunlight, dealing %0.2f light damage to all those around you in a radius of 3.
-		The damage will increase with the Magic stat]]):format(self:getTalentLevel(t), 10 + self:combatSpellpower(0.17) * self:getTalentLevel(t))
+		return ([[Conjures a furious burst of sunlight, dealing %0.2f light damage to all those around you in a radius of 4.
+		The damage will increase with the Magic stat]]):format(self:getTalentLevel(t), 10 + self:combatSpellpower(0.27) * self:getTalentLevel(t))
 	end,
 }
diff --git a/game/modules/tome/data/talents/misc/misc.lua b/game/modules/tome/data/talents/misc/misc.lua
index 6151fc4226..2244cc4d06 100644
--- a/game/modules/tome/data/talents/misc/misc.lua
+++ b/game/modules/tome/data/talents/misc/misc.lua
@@ -52,6 +52,20 @@ newTalent{
 	mode = "passive",
 	hide = true,
 }
+newTalent{
+	name = "Positive Pool",
+	type = {"base/class", 1},
+	info = "Allows you to have a positive energy pool.",
+	mode = "passive",
+	hide = true,
+}
+newTalent{
+	name = "Negative Pool",
+	type = {"base/class", 1},
+	info = "Allows you to have a negative energy pool.",
+	mode = "passive",
+	hide = true,
+}
 
 newTalent{
 	name = "Improved Health I",
diff --git a/game/modules/tome/data/talents/spells/divination.lua b/game/modules/tome/data/talents/spells/divination.lua
index 69414b24f4..574273f3f9 100644
--- a/game/modules/tome/data/talents/spells/divination.lua
+++ b/game/modules/tome/data/talents/spells/divination.lua
@@ -58,7 +58,7 @@ newTalent{
 		if self:getTalentLevel(t) < 3 then
 			self:showEquipInven("Identify object", function(o) return not o:isIdentified() end, function(o)
 				o:identify(true)
-				game.logPlayer(self, "You identify: "..o:getName{do_color=true})
+				game.logPlayer(self, "You identify: %s", o:getName{do_color=true})
 				return true
 			end)
 			return true
diff --git a/game/modules/tome/data/talents/spells/fire.lua b/game/modules/tome/data/talents/spells/fire.lua
index d93a083bd2..143cab10f1 100644
--- a/game/modules/tome/data/talents/spells/fire.lua
+++ b/game/modules/tome/data/talents/spells/fire.lua
@@ -33,13 +33,13 @@ newTalent{
 		local tg = {type="bolt", range=self:getTalentRange(t), talent=t}
 		local x, y = self:getTarget(tg)
 		if not x or not y then return nil end
-		self:project(tg, x, y, DamageType.FIREBURN, self:spellCrit(25 + self:combatSpellpower(1.2) * self:getTalentLevel(t)), {type="flame"})
+		self:project(tg, x, y, DamageType.FIREBURN, self:spellCrit(25 + self:combatSpellpower(0.8) * self:getTalentLevel(t)), {type="flame"})
 		game:playSoundNear(self, "talents/fire")
 		return true
 	end,
 	info = function(self, t)
 		return ([[Conjures up a bolt of fire, setting the target ablaze and doing %0.2f fire damage over 3 turns.
-		The damage will increase with the Magic stat]]):format(25 + self:combatSpellpower(1.2) * self:getTalentLevel(t))
+		The damage will increase with the Magic stat]]):format(25 + self:combatSpellpower(0.8) * self:getTalentLevel(t))
 	end,
 }
 
diff --git a/game/modules/tome/data/zones/sandworm-lair/npcs.lua b/game/modules/tome/data/zones/sandworm-lair/npcs.lua
index f1b2560b2c..a48ecca781 100644
--- a/game/modules/tome/data/zones/sandworm-lair/npcs.lua
+++ b/game/modules/tome/data/zones/sandworm-lair/npcs.lua
@@ -35,7 +35,7 @@ newEntity{ define_as = "SANDWORM_TUNNELER",
 	Maybe following it is the only way to move around here...]],
 	level_range = {12, 50}, exp_worth = 0,
 	max_life = 10000,
-	faction = "sandworm burrowers",
+	faction = "sandworm-burrowers",
 	energy = {mod=1},
 
 	move_body = 1,
diff --git a/game/modules/tome/data/zones/sandworm-lair/zone.lua b/game/modules/tome/data/zones/sandworm-lair/zone.lua
index 9b79d42321..74e584273f 100644
--- a/game/modules/tome/data/zones/sandworm-lair/zone.lua
+++ b/game/modules/tome/data/zones/sandworm-lair/zone.lua
@@ -25,6 +25,7 @@ return {
 	decay = {300, 800},
 	actor_adjust_level = function(zone, level, e) return zone.base_level + e:getRankLevelAdjust() + level.level-1 + rng.range(-1,2) end,
 	width = 50, height = 50,
+	no_level_connectivity = true,
 --	all_remembered = true,
 --	all_lited = true,
 	persistant = "zone",
diff --git a/game/modules/tome/data/zones/tol-falas/npcs.lua b/game/modules/tome/data/zones/tol-falas/npcs.lua
index f12ae19920..e73ad86d73 100644
--- a/game/modules/tome/data/zones/tol-falas/npcs.lua
+++ b/game/modules/tome/data/zones/tol-falas/npcs.lua
@@ -57,6 +57,7 @@ newEntity{ define_as = "THE_MASTER",
 	see_invisible = 20,
 	undead = 1,
 	self_resurrect = 1,
+	open_door = 1,
 
 	resolvers.talents{
 		[Talents.T_SUMMON]=1,
diff --git a/game/modules/tome/load.lua b/game/modules/tome/load.lua
index 798a233574..56e18084d6 100644
--- a/game/modules/tome/load.lua
+++ b/game/modules/tome/load.lua
@@ -74,7 +74,8 @@ ActorResource:defineResource("Stamina", "stamina", ActorTalents.T_STAMINA_POOL,
 ActorResource:defineResource("Mana", "mana", ActorTalents.T_MANA_POOL, "mana_regen", "Mana represents your reserve of magical energies. Each spell cast consumes mana and each sustained spell reduces your maximum mana.")
 ActorResource:defineResource("Equilibrium", "equilibrium", ActorTalents.T_EQUILIBRIUM_POOL, "equilibrium_regen", "Equilibrium represents your stand in the grand balance of nature. The closer it is to 0 the more in-balance you are. Being out of equilibrium will impact negatively on your ability to use Wild Gifts.")
 ActorResource:defineResource("Vim", "vim", ActorTalents.T_VIM_POOL, "vim_regen", "Vim represents the amount of life energies/souls you have stolen. Each corruption talents requires some.")
---ActorResource:defineResource("Destiny", "destiny", nil, "destiny_regen", "")
+ActorResource:defineResource("Positive", "positive", ActorTalents.T_POSITIVE_POOL, "positive_regen", "Positive energy represents your reserve of powitive power. It slowly decreases.")
+ActorResource:defineResource("Negative", "negative", ActorTalents.T_NEGATIVE_POOL, "negative_regen", "Negative energy represents your reserve of negative power. It slowly decreases.")
 
 -- Actor stats
 ActorStats:defineStat("Strength",	"str", 10, 1, 100, "Strength defines your character's ability to apply physical force. It increases your melee damage, damage done with heavy weapons, your chance to resist physical effects, and carrying capacity.")
diff --git a/ideas/factions.ods b/ideas/factions.ods
index 55563a1dfed20f88bcdba97dca2e6a87a2f477e0..2ea66ef2410da5a518e1f00d8993fc44ebbcb94c 100644
GIT binary patch
delta 11543
zcmZvCV{m3$*KKUu9oz2Mw$-tn&J*K_ZQJPB>e#lObZlGqob!I?-uJ7z`^O%0jhcH_
z?e$~MT5F7`pK11pO0wV(7$6`pARu*Zo$-ju;D3V=$3Kv+_77aM{f8t;G~h&l|F85!
zeNe9dWRN7bfuj8zUi~LbgaG6Dn@SW0BLdnvtaGA#b{UYg_H>PUI&BQ-Cln0oAZP_3
z%0A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
MHx(2H+u!W}0bYe2O#lD@

delta 12017
zcmY+qb95zLx5gXW9UD8gZQJgsW82uVI_lU~r{i?k9ox2TJ9{U&-}|0(@BPjkV~wY3
z&ZlZr)gN<>wd$AY6z7JjrU(s#4FQ1w0r9<~?FXtl^gm+8{jX$c{VO+||C6LhvFAcT
z{x5rqF(mK*I4Dxyxsd+5^y7vi<r)&}pK1yWl)%3#4n+zybYADd4%)6``)cak$dZsV
zqNw4a_Z?EP-t3gc8JbF+2QwC1P9P!b{e?s!oryo0c^xYS+Yz#YW_tH^Dnf`1rznFg
z|C@l%fCSc5ZRFJm0U8^!kKD?I-OF&s^wQu>|D$(?P^?^V1qC`TyVV#HpXQA_#F~;y
z)9SBXiF$gVZ1M=bBzw9hj*@Svel0h%qN=9hYP1&Pnt?D5i#;Q_bdAA&HI}8r*_r=8
z=TT71>kRh#2zL6ydyZ)ZfM!ZG^~5iwBe=1&3M>7KF11=5&6kI6{00fKUnd-vp92N+
zm?7XJzBXcTr6EBRX;#O}uamTUu@IR@tnJM=TFL<(Ft^QT1-Rsjto4;)(#fH&&iWi$
z)$}VgOcI-x79aWS5!~5ii#_wo`W7_^qAnFJiPJsJOOH@rJL{dzINsYjR~OQv*VpD6
z)6`%?0X3TwrQ>h8_fS<jBRu{{%kH_Hf*|8$<11_vq~dzI7<j=!XsIyDJ)v4;!jX0!
zIX&QudPYD)j0d?zSg5u2d_+A8QN{=8>4+tBAKx*2G|22b+fR&jDVY-hm!CibtV)}j
zv}y5E6syHJV|6$t!$fc?aT%kY0eiEyaqrTfjU|TbSOu!gBTJ*;uj|9Ah`3UWlvSM8
zgIIsV9qud)=B8q;YxM1;wr&Kj1@zP8|KJ0o3qg9ANcA{-!DHv+7Y}ri@T=bO`*ttt
z7*bKtD=Y0{N+))l#yX3fODLQWXc06SQe&}F5?T<3x0oR;#ORX#t*2x$$qJ^}=pO@6
zs8<*%++tm_h#8^_BUWGjP}G+8-HOC{X>Kg-+Z6E;a{%h+JY$2)3vd#lu5gEzZsvit
z2-Y-40}h$?>F_l$8VM1UdT5j)o$$0|)&3}gNVp5-_c+UYidbj&QzUtbdG380@CrU&
zA@@ol?lN2L*JN-`4rm(@*UD&+wAphEFK);Laj9mOntm<`qYh|M>AV8ZtUWJI1IRJE
zsp<fk1qOS@hMuS$r;!)THj1*T!4)9>O{5(kQk%cXEefP=WtYZXFMcL5u1=`c${1Hr
zAEtp?^P%==Nt{lU6b*LGlF!nw(<k)O)mUEyMs>5FAZRaQCxKsV%xE7lh=B$2-4`&`
zX)VuGNTgPwta_EtjPP9`76i(d6xLd2BHUt&A*NA036md`cd647$itOw3cWz=;>H^x
z02DmIvv$@ztTERYx-4h2)y&ZH!lZIIHbN?Ps)=I0InU%g1ZtZ_>bWcO(eB{6M=Why
z2EP?3yI{TfQkqF@(V7Z$IgR<O_w1AhoQjg4ik(Lu9`)8x6La5(h(_nKZkaX{A5F}2
zj^Yo^=gdXAr2i&Ff}!PL66}EcTiN#5W>p5wMAy>iG5(~rJj?Sie7bbU_`lA_C&b>`
zdD0=f=I4848ynm(OXC=bRA5#Cb&X4J5^5#+TO&(OmWQc0YSM7o)ti38tR}4fv8}ji
zIy&a~SD@PcctiX=2O`)teRFjak(Qob1J9Y@8OJ}f0RAl@O)-xU=4PNmz0)AZZdOZq
z0W|G$0e(Ue6U*hJ_sj6oUd^N@@`d+bQ<!hUFR+o4q~0O*@tc46AJjC5ocQ`ZxZ5H`
zN-)gICxWmTdD_I?BI$Un9;k9$JGiW`kt@Qcql<O*)`7hglyKOXx7*W0eXP{U$@OTH
zUPP&XU=1l1ln3{9F;Rd)UjP?Yb=Qt~2?ac>HO4cw{63zOy$7p7IvHnPtJ8>ET?oSG
zsb!B|;fsOWu6oaU0aKJ{vHHjcyV-Rq^9GLbA<=H7Rex^mY}$#wr~4<xcbQ*hCca{F
z?MFauE;)>znaTW7Dg!|cU&sTl9s!=~%+_3|!)eRvba<>YiHX39&F!%RF63$TM3dTw
zsmY8j*9=x@ZEqyj3mPIL&XKOVa#`1Tl3VV~LnkaAcE#8CEykOP09evbm_3|aM7&OG
z3osPz!|AlOm(PO#fKXG;+~qsvRacKRxKh@%&Qx-V_q3%a7mL~7y>@wdcO6Kx*VV)M
zBZYL-OY!?wPAO12p6<;3dFaL9Shed}|KfdY$K(CNv|#YL(|_SH&7)xOeoL4G{2j8@
zTjLDB>$$DdBp|nzRRkm;e$BOV`nFd;UGh{HMtuIm?A!ID%0*sn%)3b9+GjCXFR|mu
z4kWY|(FC0su+3(9<5!N-<($dxBg_f6&8vj}Hy<(Vy1;4xuWCH(>mdt!7DTszmAQW;
zkww$sot))n!004nzA<Z^&lPZ;12|uLNR+Xk{gQk3_VUY17)aZ8*WxUa*@>PDT>mh^
zs{MplQ-nuIg?A3?f`fpt5{H2JpLrAk0pXu{G({1S1h}5C&Vvznt&3nlE*CtO`uC6g
zMRl`{I*hMPEP3Z&cWMP1i62n%ugSwfs@+v4a}?BL$<)4SzopmsdY!n0+;_7mtPeIe
z$&ijNqqVed;>nmLwyA_L=?`CrJ|8oddlf%LK8{o@2$V+zaOAZyYN5*#<LJ;++YOe#
z6LlvCFazt0?IvBt7Yu0a)v>Npmy90PI;yCbR=#>7U)kBa&A6wbwp4s4JMwSYsr6#G
z4XSPIg{m-mRGQEhp~JPHl#^2braWED$2KPF0Ipd&BrJLl>RvHn4WCf|ZBUbB<Or=|
z@Ks;lO5HXTfodpAVwO?@%@8C0c*webGs#C=2m{EULs)%F{;LdtL|$*CnQ@Qe>FM{_
zJZ`PK%u-Ouzxs{;&lFRe3B&R!SfgF#PY3MMdJMQr%Gqr8!w0ngv(|!rIivTfQUSnh
z?c5~e{TPAaSSeE^a>27<iN96&)*iNH5`Im+DCM;?D(w@hKgYom%RUEzM<E7dVXd%L
zR0dpqC_OX;$kUfPL607pc=b#*J|<hWc|yxI*W*H!*aUhqle<?Xskh&C9?e~RT~HMD
zYIUR8k(qLl2u%ej4SGM?+6@}NJM3+|Y|F=HU5gh9iixk@0<NpF)5vLa<&Xw`32RqH
z(fw2@<nqS%*ll|`X*|FFsbhfk)u$UXrW07eu1ggn)LW)jCsY5}cZiXwkh0f+Ka1@g
z|JTXMiIslTWiUJan2EPxEgb_8&c5BNT3nc#r23PdOTn6<2sRQHPGxb(Bp;u#VW55B
z(5n&_x3`@xER`X?{q*<lo>g-ko#<)K6pvQ3;KiZv7yC$G<6UBltlyzhT3;1crp|%S
zAMM{DU}Imku9%iq-DeV`!VK-0{@}3i5%{q^GgC$RiWuBPXLwD%vB!{(ng-~4SCq>?
z&KYn%YMvB?{5|?vC{*}0h4?`uTe8gstEL1qrzXBM8Oy3_Kl2xz-z|#=Xax~2a2N$(
zpku)hZH8%tHeGY1p;bn5UhTP%&07Zi;(tkcvCsBoeoLO&w8%;kb(yLTKE4M2#+{BE
zph7N?$Q0GSZ%NGx?%ih?mw3r_=D^=R&>ePGRt*_{3cg8QN?AZ_iWLfc0xZ|@IPUH?
zTA;3r*Rjod)Y?s&MFv%(=ZFSs7TX>^OBpRauB|r)A|t*9v0_Jcx@BjeR<Q$1Vw$Xb
zaa3c%U9<S&u;R+UBnc}|YDF?K(_kpm8&o`P2NCt>&jcVt!vh#EH#8I33{#rGOkQsT
z*)je}SBk#AlJ&k+U~4S*B5?yG3U+?<)XGv@PXfnlU;I7<9*aJL12L1xEXu^+YK346
zkA2!g1n5JHb%$T!K``61_ZmQuX4?I8@+uo)AZ{58i920daS#R4jsp8`U7uOfiNlR8
zsj_STIJ|P`hm=;f%*2hlR!3_^t0m?uRiT-hRc#b1OoW_x;;5Ktu3KZoW?r_9YC0n1
zsi0zJdwQ!fR^OnTCkP6T>QAsGnthywRT*n4Y8PuDhC$AAqzh)P@fL959w$4Y3h`J`
z3h92wCi6XMh8&O6tqnZpX0t>Zt~AMuMgF(TSEb$h+UuI(HyJX$s{!yFHuFaM0NeGh
z*TXBn1Nof+ak3!26b<SqG8aX`s($xVR{7oA*8lI&>;dW$6SiJ6&4R6IqlEeCoZP%H
z4i%mWNl<`ww>?wNwjEGWE<WM<KQYr@|0C5Jkc$&MT4uki)f?<b%+;Hnvjh@s$~fu`
zH$r!JJpg-Jgkj|VBt6BG6oV!uD|rgM?;L}*%7C`o<VwnEv4VP&YV54wR?(d7NP2r+
z4UW#Q$REis;k;)1`eT$Ixx5t@dqtnvn5~ZvrElHT_k4JlS>K?~B#BEM-xOSP3>A6O
zZ_|mgJbun|(r|Y={5)tkCTUa{7!srVi={sOU9mZ8NL7&Vb35*Z^`FK*dP)7O78U{m
zmEiwv?Ekw!5@O)!B5C45|A0j1;L>8}5#Znz;N(jY#iWJdROaSRvBPA6<VwlHY=dM=
z(ZD+RciF@Lg&r91>nWDvxX=}b8Acy3hlYWH2rsv6s)>Oi8=d;Q)FWdcc=jiPTx@D^
zVQMJ3g96o@FhQY5MR*XpbHMd8=(-h{-*J7P3(7su1$E>P7B(-kXf$XTwYlu>k$9%E
zxPZNOp-!Nv`CTFnMc4kigmfOEDM)X#`U}JF4f+6o?*rkOEggO#>FtyWAej}Z$xT<n
zAy-6&xjs}mF$lTZyBDb2NO=t4VVrW0>x831XBOzhetS6s8J^y@|5Ys>?Kl6acw5va
zxcgI^$f52Uhnt(Hi-*V`tFcX&jZ0H{hZ*_xp~wIJz@IC~!UAR&FU{;L-oiA^sThaJ
zJ=zf)vm~&l#gqY_FrfymF#ct5t1)H2dj{#w|I$uHRnZkkreyhG|7(?QGGD0oAH=VB
z(Nj$df|`%WMEZ{F)+XT|->gozb6HM38Wob9VOU%<%#SY@F>?drdqd7H8XvAB;jF1d
z86dn-L;ipVF43-%ShZveZdRa5b-)N)?`PV2$$x+pfkyNN^pA<ws;HKFcs~F_sTm8H
zn4wMl1vkaFUu=s~cS|2eNjMDQH4WQdOS1=!Y?tX?WeNmD7nbR6LNoQ3lt-qIOu)j?
zOM}|VlL}J{5>83LzxJxF5zD(n*+8_z+pF3$+BAT`^`?lADcLVqa{vt6iohnu=b7E9
zzbLRn3$kV=bF(0;1l3sL2MtjkeGyVC5oOPQ)V=&*)UOFg+0PdkCus3vGY+;S(FJj;
zUK{;n`*;`j6y3|szG(Hu3dJaRqNyO?76yQj+Mke$P{Xz~%vKY@L@@D@+CDrLI*JVp
z8Eq7U+TqihljuW6o=DDMcydYiF+CqXun{PobWuO!TUUj)AXwrYjlRUtzLuzFWVfok
z0lwJ-2X<!Sbqo6L8i(mdB{VCEG_Is$|I$%eQa%alL|*xuhb^NpFl>~+a#?IOg^yiG
zbHKoFpSk`)G(MJE@Xo#;N;zw~z*iwuns*-XT5GJ9<8d@TGW!(XTs;-O!^A<JHv{a!
z5l`=o;A*?adOLYPzY5#gC%U)i^$kh#;DIO8UA7ABzMX+iJC-D?L)j76y{B~|%tRU}
zGicxmeP*|E7XOCRTrX7Wm=+3IVzUZ)U96lN$ROE^%y5Pzh2nBDiF$AN-KEY258K1v
z2$JM5wTYno5iTI&+wkx0C_dwYrw^c;_W(72Dwb-sxlO@OwuLMe@NrewMq+yYlE#oJ
zR-YGIcihf+49VI)QP+$hu&m<CeOosxmX?p8d*cAiJVYCvQ>(S8REsGD1jZ_81s)Im
z^Tak|79VhqL-IvOPb-zlmZ-b7D2K30jC36>OH<xawMT1gtWWrvWcXb8r4aaFN@PnO
zJ~bYjsIO83v>VN>;dQ|5I_e?A)E;k$!z0g&DCeNat>z_heA<m;C)2G3^;*^)xJ8HY
z?j_eBI%qUQo{^Iy<(;DwVQPzlq9Yo#4)xv^be(Hr5bYBeCyAnTkp#5my-Ys>0tTZj
zqx65F=6`1^3{3~4Su^o_f`O*w9e(S>@9i$qrwurYE`X$g>V8^lD#ndvtxpv;+M%h|
z1&2i9G;_#VsHBGm#P;nmF~g|u9Hnp!)iv_Q1u~GOR1bU|XtzL8-rHV^yroFbyM7|_
zJgXkryAM>ZV^Vx={Yha3*qF!^ZuP>a5O162cTRHS>tH5Ms|QPvHc-!pgXwAM&E2jC
zYJXZf#vjwUr4`ktiw&}54Sv6ffIGdk!s>YxO7<5alm%9USdj?7fR{mbE#?ea)gNnw
zV1fL}QVND<{v@L3Ga75?yZM^Z%g&6}@YU?xu2!&lOs<_P4eLOQi4r-xzGI+pX1>lK
zDkMZi-PWexMj%?iJkZkZ#f1ZKhxGMW_+D!y()Kt+f`}ppLu_(;HiS$ICAX$nJ)n6^
z17d)U0o+>gi?K-84q)Y2#Z$g|c=Y|4a!D6gSx6`t?DsJ@h2Zb@mU1aqM;oY|UPzJG
zygDx#;JU9l;BLo&?2$6Pq_3Mz)VLAs&(J2Iwnp=#^E~(uD{yDxPuB>x8=5?>i8;0X
z9ZgiLeK&4<h>msEJk6rR9T<*hqJyM?<yd&?!u72Ci^`BNbuzVzmDS1wgWVQXrz>xc
zTh*bSx&Jc*%CQwrz4dIVd7xXg@WW;_+ud`bfRBp_ycDj=>!U-I!ON8JABN(CmlrAJ
zkkwV!>U&x^L!i3Z@C)1eg}~x{i=?ZwM%O4FsJ8?9`R3B_%3sF{Uduf4x)VoeIlfy^
z-qg0fx0czcWh}rctILqTOZ;8VG#ytxW~9HJKv0vz*>dRxc6Rtyyp*=H1}^GC#&B$j
z3QT!2o8oS=bC;}?K;`^4C;Wj#qk4s_u~UmPS<vv~4amL$z*77cS@+eYcsE?7R1m}n
zPvoBijh}@IyY4~+VvtSS_RkpzDfyfwkm=wi8OQdlk86}YBL79g{fy^IdJt7QDX2{$
z6IP%E@fGknnm+hFJ=T+uCzF0pHBzsMKwBq<Q^mZk*eU**qA5C#=D822tSb*QC`lbm
zc3XF=3nbP_ZePYFl&<r3Zl2L;*_4j~np$O*F8>I3PIK!*EW+*=^?_``<iwzHtFjO0
z-R~&=Tqt<Vl;pkUZ$D+>avw2N;@AGEv~tL-TE!==EuZJ?aL%)8)=nXt9!VyVsw{ig
zk2FQhVmE9TadFBfi6e;??wHy_6(n-H{x*(G160n^O)Ni48GIk~Z%;)uMBEz6<Rb0P
z$~(0i--6e4PL_-i9scl9U*8TLUNVKhfK+^4Y~A>b9?3b$%FGf}Ew`DugKkD_(znut
zLK4{Hgmy7)=}>*HA3{6A_!ht<pbu=wG=Z>n_X1DaBIc>96^dz-U33+8aTyFsZ%%c5
z0;AAx%xRoP+kOR9zFZ1S#`7L=;ptPuN1^Ah9ts<L26CzPqceuT3)96G;XNvA$G%pz
z_|b{WTH8m=<TlUQEZRX(*GrJ+>DXJ**?KLwSgLk>h@jV5<jqUn4#Kkdx<$70XS$z9
z2wmw`v&4hoINl;tr>W{Zs-SVCE>Jf*fjN*D8p#^{mgEz|J+lfE=T4|(m2v?<@0a4*
zT8f9}={Jj|QgeI=B<OO;(J$&=P@uY+c0>4bM68&+{?!Zk?He4AzqpATgN@Vau(gu`
z9AsaJ;E=YkHBgvM#bo=G{4+``Pi&DJ`>r#rHx^~N;Q_5ah*!2Y%kY)In8x3FfzTOR
zTm?5`#j}C#UhQT|txiSp9&1v%OA%&P%Pc_H22dU!QL3gz&|MvUeibUY1cHVN^zIkI
zOE9<%w>Bw<?E26k6^m4d$UQ8M&M0mzhpSUJk{L9dUtx`^gJ~tbRwD!eFafKTdq{%d
znP*K}nx-{vBzbxDH{QS_4{KsTyULrs1wq&JEUQ<sriAIAu8^6LT_cRC#NsARha<^r
zqU+YuSC^jbVzSwlsFZV?EWJ8GU70>^`jnf}-iaHYACt5yRx~nF*^b*0Iqm(B!^laM
zX#|aKG;arT5rjn1liFRaG-;6}E$(FRs5VzK%0!m8IUnq0s;zo7wDlaoFP}t4c`1Y0
zwGt>eH#tbeQDi;ipZdBU9eQ?jhpB0hV0u^#8HP|wyRrHC#%3*AdpG2`(iA>5CB(9Y
z@g#)GX4uitlN9Gko(bnc$zfI9vE78rnUZ~1cIfo;Ux;%vSrbl?4%kLP#_yGS)%coa
zF!CBkY5JGFB+1^t$-=CGSDmu%q^u14uIHMtA;2J6N4xi6n=h%%EU5*!{=+8b+83By
z?i{+mO;n+0Zf*{C)Wh;JU5lM1u3t>NS~*2v$`h3n1{pWS+3o>+)(i4NUy@Ffohytl
zyw`qY*9hYG#z9T<-Qw`;cUK@vFZd_Gc$F=eon(12(B6-klH&*gBb}fXHJzc@Y{_c;
zBVgdmO9W_G(dBFkM75&7A*jxy!DokFB731K8T7acC-{QTUw?bS|D<tjse&xDT3`M;
z>{1~<@%y~`tM=h!`?@~y?{nxnaswLXRnD0>^aLdyYH0@OFWl<>t-<lyni3m(_6vhG
zJs>6F<=s;5Qr0qcpxsOBb1K>6GoUewoma__0Lqb_o+(3!_GYIXL5L<S>`8|RGz!%Z
z2^!VL$U6)G*;s~5mg{qE<h}L7*aQ>6*La?pH$NNH&1)o5z=!_nce{?fJ-$%$k*ILF
zE<0)WiTh)79fwgwJ&a4^7<i)=&ORG-qdW>aV|4UJP_VrOA}(>|=DlIE)u^#CP;FQ|
zk|Y6zTP1>JsAUNaYM=E$!;6(Uc50R;czp|Ito+qNCs9FL!UUNL&%V^M^jeq~tb2YM
z8gc$FrUs%EcDMEQ;uc1mIZHh^7Q>mQmKyG2t$}YAbzRXV7g%TrfAte%!ntlg+qJ1K
zV&Na1tJ<@HO6Ao(3{~g=f3MP&y!Qe+cqLStv#9>lkJY8=pD6BaS}Dc`gwKCydli$7
zm;D4m0Q)rlLuU8;?}*iwNTBkMl!Wf=;02~QK9tE8Q~ny1?6@NAkL_F-zttxhrTlI0
zwCNh&4`x3cnN8`J9<_i+hHp&|+2ZGVe@z;*{!&u_yJKhcFxi@o1RM8}vD^I;Q#mI#
zZk{$z_>`EVxlRTcNww3Uz2Bb-6=3pHHI-k6b;|F)L~xfxD%RB@D_?j7rTv`1DSkbc
z*CEWGZ<#bG%rNs=iRr-OBj7lBC4J=uy(|9R;IHxW>r$@^TaWpPs|FQ#nj0i2_@!BZ
z@UNvH5XN@Wm_4T6^FkUUjpm9@O6fFnFDQ*%ISd34AHN_R-x$YtWACUfu8+(0(q3D)
z0rZu~4vC{NRm>P2ATE^_Db4}{$5Sv6`>7{pX`d)GI*XapSCQd<Ag9RC_n=UI_DPxw
zRjn~%c1~P27#BHBl3Wh$Kw`EXGDLBw;nDd46~BkV|4{Swwt)@Qof6+djpnh8&v(Iq
zGYlnIe4R?^BjbTYt1N=<@ct1H<mbjAF_@G}luD47lm4?Dqv8FT;d6ZV^9&%sHn<Jg
z=~jC{`FkRPK&fL|i1_q1a-w&}r+L<zTEG_ULQP>8?2is>h*G)&+Yv3H58!^nW1oBk
zE`bvAE*d*f1=#tCcb6l=#|}HwSv&x)X>D-k?K!b3Q}huZ&$yacZvgq=^KIJMy!Amf
zy(hBk63_UKzpFU|o5yM#SMHcpKACvc^iZrEw!jeUhRo-<Pd8)q6sa>^P)T7-x~bam
z<5rMhvbGKjOWllUWB$QJD%8HPg@qHamWKzCS-Mw<w-WF`l%K0ltg=+&>*oP(;Pd#Q
zK$UO>wRUa)Ehm55^T`Lz*DA5rI*&e&Wt?TcIaE_UO}gx7`M19U<+3?Vnk)+(B^?90
z{KpG=T+#Ch(k(A@IJr+#XX6=hv}DLv$nP6#mpe!yVQs<!6V4*VSZhjvZZBwHXb#-M
zezv!}1)@rsl%Vx_qy49dNr>Nh_n6?ATn@gfuDU`2QPnS`>f!ri);&Az5NjYy$K0eZ
ze34@Jkj1#0z|dh5e5G=9-Q5rAP*1$!f^w3?>+g$*voN{F5RTu-UKd~Lc|R`JY95M@
z@ABA<tonL)^S%?4D-J%2!0!kFxxRT0B85Dy_qV?}XGmnc$)8$lb^L$_(|nUhw1xkW
zOhavh%02VnH4c}Nl|34(1|O+AZ6rraV8RA|Gi@xUm6R$M8^Nn8OL4VN`o7_R(q3x>
zatQvECDm_<*9jGXf`aoY^@~O=IFT+tqbl$!gH0?Fwj$eu#AWXqBKg$_bUncECg|p=
zHW|Z{`q+Tpi2R9B>?_gna$);e-0Zl09)iqk%*a_R(L7OQ_L?SJUV)CyGU@pA4dyI^
zuAbX=EbJbhSYb6583w$!4#N}hoSQZ=IwS01E;rKZi|Fv7hIj-~mw_qy<B>^lD5g~D
zC?fPP>LGG*Th?a=4kfcSFb6O?#=l%h9cdYb_C;UZ!%Q)jKGfnYR)M@6$(&=dm*OhJ
zDmJ*q9A)QAq0gi3*YuK3Myd)T{Ybzb>|OT*V-nKf&{4NPLH_Dje7~{I$<Qo1O&^Bg
zN^Ge;zPIE!14wc}$+dFv*bb9PKId~)hy0-379w&G#p5~23nx_+kRiu$6wMDd@HcFc
z$C_b%^Ps2df*xA_$J-EX_6qpmORnP)M}}{abjMqP*?UQ>uIX)qLZ>y+h>Cr|IhS+>
zrR|+WQzdnmFA~9TtFyETG>iHGyoAiK(!@yQ*fgmpO&d}-R_qgZ(y6iOPcoH8PxD8B
z)^g_C6Mdv@BrS0a(7i$(N`J`Csy)v)y|bJ!73ThebNWV2VVa|mm-%*oM9*lyt%Pvi
z(M;QSJt#hBK^;5(Y2%m#in}XsEV!#OV-Idg%uQ_p8)P;9`;}`rpOoduwfoVF5PfxI
z%jd3I*PU5+aBc{<sHWyJ5XAHPdpkhl?*14%D!iwvs+21P=nrRSXGg0bQT%I{KQG~O
z+>_T#(yQKfzCWxWFj-BRPx0%bQ&)Ue+9uCM3v;`)y`wFCS>>winE#kHZ<tD}paGis
z{vMMzZby}4$I116Y@vFzOV!l1_)>?jLZO#a;x}W`zki*z^rzhcJYmv9D{X&7XjCjc
zI3)-&9)zR0fCH|S+6~YOui~e;B8ZdI1-+A-$+Q9496e$SfdjmOR9o+pI*Mm?_-Jiy
zQbE$NslQ<YKSi<(u&fVxXcw{aW%woLY_$rqWsDRR3x0fH5-ZguzPzU}zoqzloN*lL
zw#8ILNjDh&ZJL25R)XzqD%B-fK(o~05#iemRBBkl2g=8r1<s95V)BA9H@qV0<PZ8H
z`BnSGEmXYJ(`T!1J7=Dqq>`VshYeeuiNO4sZfO8=aixg~zUzi4J!Rja1KE4yW$lsL
zwPp;XRo@GI-##LdPt5y+>5o9uz2lC`yk5ze4ufhL%}>Qr5x~Io#x!@QL9Eqpz*;87
z<%~5maG|{_3#@L;)|~<w_<U+@<IFntVJK2LT5$=&8)et*^p&QxKh}%x?q-6KFOq24
zS;Mkw-mD9`(uw~7QOVPUJJ4OkkH54^HXZE;7PrI}SOZLm$iFUMh|np2O_~_Vd?ek{
z+>c#o41f7B<~&2m{*HKQ?P}#K&tisZQc&FwG^MlI+8iOP;Uc*I)nVeqw&%TU4?KW0
zzI9pi<67lv+=KJ4l4I5K<}FeL)3)r8I5O~Em@BAk_a2&L`cc&$1s<iqSJoMhjAi2c
zH;F6vGf9VR(eBR`9xP}jAB|{J*U*@^vic<RP_;F3WaLg8R5&(7%Xb#V4N)e}dy<j@
zN3TbP2}gyiMpbzTh44792tBwQjqmm;_pM@u?7&h3gq&=tufr?-UZvV1Xir2UP+*qd
z%vCit+(Wl(QAr9|3&@4)`b>}xA;)CiZag%$((AK@NBxUc>$&Z0X4SQ#hYL&!5InAN
zJGVbyz6I)y*YdI4q1b0!4paU9v@fv*&WpX8Zghk;a;K@fe=ne{?^eRNbrOx6o8LU}
zOLiiK?$$Yx=AnlXIs4YzDOAQi8_E@IxFIi=;5K%8AImfp0cOADiCjY>O^eePYH@$S
zkd4=Q{6mLpT#bZy^tRJKf8^sUanS`)^8E-sFKx4ph#9vxZejv%?j`F(5$fpzc(wy`
zFtk>QpcD?3a?NJ}TW7E9^np0TAxT#@f2#~KQ@9hb=6UdL=H)+I<n=xHu1o1MWr;-C
zE95Z8f|L7AXGfQsT7~v~|F_A@%FoJ&+!+Mm^q~49DURCeW*hco70<xiJi-kY{5;-M
zeMDM{y|idg_TTHIy5>6NV=p{3Aab-QX&uiK^~<{Nux|H6YW;lB_J8(aFBHS0+!4N4
z@)Hf`z-=u4{<~Rr0e$!hmX6cC>~Bbp40BjFeK5GQhpUQA&a(&U^6`=8zl*F&q2X-j
z-Kda;21J|A%$~@L!yzEsPaS5-hv&Y<FSogzNDh^5b5g46s#;MuSJ|%)0;xUfm5#rg
zSy?z7-sHjg)+NX!NXJQ`o!Y$1WsNJcI(SPCM#4Oterc*~^AUOq`*p3eY*j*{wx%4R
zIQZ6nva>BN-D2xtgXSsEk9jeMSi@7r!e#uYVn>fY6w;=PkEWl@G!U@Y$uYQ_b)$qj
zczynbIznk~P?IU?hjwv*0<aAC)cy+GmH*IsH$;Q!8j?%iA+HC$zDL~O+D|6h@|K^o
z5Ag=Y8b~)S)HO7Co1~i@05X=0Jtp70>&Bwtc@{-%Du0m`HMA~Q*8vwp_}^)T9`g)z
zZCp~L{())V*CQ}q_8&(}8;n(_1a&f%6*1E)%NM)Ue{DPx{m}<<1hQ-bZ0>bOH)eMe
zD|nkWF<9nIs3^+nOp?_?P8(H&zVcw07LSYLrp5Szxt|RpJ&iF~mJL|c$#&IgN@^0K
z)K1(z8FUn1oN%{sx~S{djWD;yYg6B&6^y3+%w~Kk){!lh=x;CMOEo{lHZ%En3x*0o
zKl4F4f{|u3sPLg4K)OEhDVfKauQV!~bXBD6LkAV>GBSmh^yrTKq*=bmhH8FsY(-`5
zBppe3-%A%0g4IY#$;@C5fuDydF6#cDB+bJs@wy#ciLk(oQIu?jP4c8vd{4_Y&CWT;
zzm*(u3do&2Uk-<!Zh1cEok~%xn=n&XY|X@r|E!IIz=vROAhfk_Zo@XYSKZb+-}G##
zMa7vW#TQ{O?<ch7orOxt8+)8<Hq59MDL>Qqg!zvan|Qw78eOjOsb9?sRIl+hryb4_
z8+E4C8XEIh`hone7oYa$Ib9JL$WL7xZa+ca6xsoH$OYvORYh(mKKM-%-}Wl^*(*6e
zJ)e~~#HX<Vzzp&J#ZrrIlpNLKU+je?Yo4->lIlwtoEz~9)FG!?wac2E!il}9Js;Qn
zdVI?AWHqW!P4=UNpL6a8#h5C`wj02J_s{PO&|wC>{o2nFD4t6GWnCYY91#~Sv?3bC
zTme3FhUK~q%UNwr{eBH*x3nx;6>8g{vUte%?7fy}U_pOY88bjXkcYdUxA0Oo`pM*=
zbJMTA@?^b^Eq2w&bQ-nOBTHVIG3JYhD|>#^9DdR52MZT@!N38rk)%>#AY6Th$YtvZ
zhw%90HL#1Jo!~8RG90X;DJ6dl@%8kwC@0md^A~?{;oiHZOcn@kqKQlj_m8hTao@Sn
z;UlvjP$YLtk~pa1r=P`lM!&#!IZ(9dM{Rn%{Gp*EAw$I`wsC9IpSkYxPGj5jR_+P5
zlDf3d$788kaV#nmc<UdDvi`}6e2eC*<6t(k*PAd<PELwNS_<mQiH!3%KT6qhE)e_F
zT-Ntn+b6YR+mQNY79-XCj)dXtg#B+LgRpgTz@>+tnk+eR$!X>Bk$T3!z|w_EptZ}7
z#K6j+B|j|HcUrA@As-CYRp=DvrHWC=II<9`(o=MX30pQ_@t@Z7u=!r#SI0K<r(@D?
zqXWW#4EgM)(gq6})H>+`T;@1vwofJqklx7lR}lt4&d<yX>sR-2?@C2E7eT$Tda=v|
zgKNlRucnA=@Xz+^Gs#!?+H)m?qdqBV>_8?MWN)gX@pjYhxWY6Lj)Z)zdF{Xt0vE`a
z&Gxc*zY;sl57B@ANV=6J55N*bKwSK1{9n|>pP3YxW$2zGfDybsU3YVHwWFAv&(<KA
zu+DWgYAZY>&+5!k?Wi1{{v$jFbk5l0K@5f1doy>NGA#GzrC;NvJAMd~O>E{N2S|&s
zb<mQOz;1|V+%5LB<(Ra7a&Mu3{s%rt7BFo;fgyESOfO8$r!@5A&(PrzVuR{s1|%zd
z|AG!IEh9z_+&Sg22e#lKE9MJvjFG_&8PIQYOtPV<_I)76rmc3iwXyBbdQ^o4$m?24
zQ#U<JQ|yt6&xT56>FL$Y^K++s%Gg&N<lFiUu{BG+z4edh1s_x><M{k=H25?8!wy>V
z`)?lXK2aUcyCq>GcU5X5Hhe^K_lI~7HOD}puv|MwWS-(Z|AF$3p<b2M$adwgCEpX{
z&uVwR54aP%ykCBG>(}||hpobUt@Pfzm>bnh2>0If#wG8H4&yc`y91Mz^l39JrYI%7
zS2<kqg#^OKQiccI(giFH%MewDebB=pNp$6OKj+|g{NoeuQo&S-0Xp#kVWA%qwFphX
zK$*qQ6Nx3TJvMwBAA)pV`3b?LCiJ4O)bpcru&5jMrkGLzW)}mSY8|1_V(U?T+Ba)y
z_CqnJ&RxMW<06fdMTC!-lS%F}oy3H~=WtkkyK0+OJDSX79I4%V={H|Uq2t{kC04?O
zFy~chjHtuVwt|7}Fz9fqqy|{b!K^3X<}9YMNBHv26JftxPZ|p!X*pCe5=*}cIS2U$
zJ_}-sn$d(R2L3tgcNjWM;-1gYD*6Xn@g^J<)PraNnMleoD}0h7r|ZAl=XrU{^>wIv
zhmmqMeml1Wk-TDG14C@2<cQ@wN^OHhewaX)u^O2=cfxYmO7gHTQ4Smp6zs<V<zQFi
zYxgavcVae-hzV2JpnpF9sh3-tt@#Esw&%`xD0%Bu?{XSBCh=$=ddz6D=!peB`Jv!H
zp4Tj<0u+xB(`q1GF(SODJuwV=?Gn2q#{jJDv~nRN`0lfg6Sby_ZoIOns|7S%kZI1b
zQ<G@UndBuKr*I)*Cm^~*l}kzk-(P-qm7hJo6n`FUn@-N51j>XtT$_snatn;rRR&s6
z><&N<{<Pu&<gp94ErZJ2_Snd09X-SLl+h){biOvoFX=bhV)?v%UX#IPl`G<d<jE#t
zo%z}qXjtNi(?g4Q>p`%LW1fV+uK38>L3?kK<ITF4*;inEVUysvVyR1DXHpCp9fnNa
z@!YnD1Sct%#eum7wlM^B09w=)v7*b7<C7nCW1h(gJLdh8A`^GI#)!mF;L1+30l6gh
z9x;%2x`)6&PFgK+!S#d8tANJw(qb@X7Zx)j1NDB@TE6Kd?DB^9pDsYVJ{r9R4FPdS
z@_)JjR7YD=8vA$1e{lmU&VO<36d^966c0{@e{)5g8vp9le{z^ybpIX;aY_HH;asx+
zTa*0%JgnUR<1ye?K>H8QCiMS<ZYho2jAZ|${u_}%g81)XOaXHfX#eB+2bS3T&*T0x
z{sWl*S74$;KsZ`@n6dacI;bf^LSaK-L;Np0C-mQ~4*$Qdfq)=LvE!j7|L4yC{UK2P
ekH>;FrGba=f8K<L2r7Ux<(!8W4uSh0)BgjgS~aTx

diff --git a/ideas/zones.ods b/ideas/zones.ods
index 510e4ea89fb5675987b6e3038d46030378ca35e2..c1fc3e2049d4dd4d681ce6ad21f1cdc7c07a7cf4 100644
GIT binary patch
delta 9650
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
R7;ux<S<yc2GXA~t{{Y>xMSTDO

delta 9690
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
afIJb%fb*ZxG2nt4CAKn9L0;4R&G{db-+&(g

-- 
GitLab