From 2b933d99fc14ea833d133c18043c43a94676434b Mon Sep 17 00:00:00 2001 From: makiki Date: Sun, 18 Aug 2024 21:00:01 +0200 Subject: [PATCH] sketched up to the final floor --- conf.lua | 4 +- game.lua | 2 +- leveldata.lua | 395 ++++++++++++++++++++++++++++++++++++++++-- res/sprite/elixir.png | Bin 5182 -> 6930 bytes 4 files changed, 381 insertions(+), 20 deletions(-) diff --git a/conf.lua b/conf.lua index cbb77f1..ff52561 100644 --- a/conf.lua +++ b/conf.lua @@ -12,8 +12,8 @@ function love.conf(t) t.window.title = "GMTK2024" -- The window title (string) t.window.icon = nil -- Filepath to an image to use as the window's icon (string) - t.window.width = 496 -- The window width (number) - t.window.height = 518 -- The window height (number) + t.window.width = 500 -- The window width (number) + t.window.height = 522 -- The window height (number) t.window.borderless = false -- Remove all border visuals from the window (boolean) t.window.resizable = true -- Let the window be user-resizable (boolean) t.window.minwidth = 248 -- Minimum window width if the window is resizable (number) diff --git a/game.lua b/game.lua index f1ffca0..a92c0c9 100644 --- a/game.lua +++ b/game.lua @@ -29,7 +29,7 @@ function Game.new() player_x = 1, player_y = 8, player_item = nil, - floor = 4, + floor = 10, level_data = LevelData:new(), undo_history = {}, } diff --git a/leveldata.lua b/leveldata.lua index be13da0..1fcbee7 100644 --- a/leveldata.lua +++ b/leveldata.lua @@ -228,13 +228,13 @@ function LevelData.new() {type = "enemy_neg", x = 2, y = 8, value_str = "1k"}, {type = "enemy_neg", x = 14, y = 8, value_str = "1k"}, - {type = "enemy_neg", x = 5, y = 9, value_str = "1k"}, - {type = "enemy", x = 6, y = 9, value_str = "500"}, - {type = "enemy_neg", x = 7, y = 9, value_str = "1k"}, - {type = "enemy", x = 8, y = 9, value_str = "500"}, - {type = "enemy_neg", x = 9, y = 9, value_str = "1k"}, - {type = "enemy", x = 10, y = 9, value_str = "500"}, - {type = "enemy_neg", x = 11, y = 9, value_str = "1k"}, + {type = "enemy_neg", x = 5, y = 9, value_str = "666"}, + {type = "enemy", x = 6, y = 9, value_str = "333"}, + {type = "enemy_neg", x = 7, y = 9, value_str = "666"}, + {type = "enemy", x = 8, y = 9, value_str = "333"}, + {type = "enemy_neg", x = 9, y = 9, value_str = "666"}, + {type = "enemy", x = 10, y = 9, value_str = "333"}, + {type = "enemy_neg", x = 11, y = 9, value_str = "666"}, {type = "enemy", x = 1, y = 15, value_str = "500"}, {type = "enemy_neg", x = 2, y = 15, value_str = "500"}, @@ -285,15 +285,15 @@ function LevelData.new() }, { --floor 5 walls = { - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,1,0,2,0,0,0,2,0,2,1,0,1}, + {0,0,0,0,0,1,0,0,0,1,0,2,0,0,0}, + {0,0,0,1,0,1,0,0,0,1,0,2,1,0,1}, + {2,2,2,2,0,1,0,0,0,1,0,2,0,0,0}, + {0,0,0,0,0,1,0,0,0,1,0,2,1,0,1}, + {2,2,2,0,0,2,1,0,1,2,0,2,0,0,0}, + {0,1,0,0,0,0,0,0,0,0,0,2,1,0,1}, + {0,1,0,2,0,0,2,0,0,2,0,2,2,2,2}, + {0,1,0,0,0,0,0,0,0,0,0,0,1,2,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,2,2,2,2,2,2,2,2,2,2,2,2}, {1,1,1,2,1,1,1,1,1,1,1,1,1,1,1}, @@ -302,10 +302,78 @@ function LevelData.new() {1,1,1,2,1,1,1,1,1,1,1,1,1,1,1}, }, entities = { + {type = "enemy", x = 1, y = 1, value_str = "100"}, + {type = "enemy", x = 1, y = 2, value_str = "100"}, + {type = "enemy", x = 1, y = 3, value_str = "100"}, + {type = "enemy", x = 2, y = 1, value_str = "100"}, + {type = "vorpal", x = 2, y = 2}, + {type = "enemy", x = 2, y = 3, value_str = "100"}, + {type = "enemy", x = 3, y = 1, value_str = "100"}, + {type = "enemy", x = 3, y = 2, value_str = "100"}, + {type = "enemy", x = 3, y = 3, value_str = "100"}, + + {type = "enemy_neg", x = 3, y = 5, value_str = "1k"}, + + {type = "enemy_neg", x = 7, y = 1, value_str = "1k"}, + {type = "enemy", x = 8, y = 1, value_str = "1k"}, + {type = "enemy_neg", x = 9, y = 1, value_str = "1k"}, + {type = "enemy", x = 7, y = 2, value_str = "300"}, + {type = "enemy_neg", x = 8, y = 2, value_str = "1k"}, + {type = "enemy", x = 9, y = 2, value_str = "300"}, + {type = "enemy_neg", x = 7, y = 3, value_str = "500"}, + {type = "enemy", x = 8, y = 3, value_str = "300"}, + {type = "enemy_neg", x = 9, y = 3, value_str = "500"}, + {type = "enemy", x = 7, y = 4, value_str = "300"}, + {type = "enemy_neg", x = 8, y = 4, value_str = "1k"}, + {type = "enemy", x = 9, y = 4, value_str = "300"}, + {type = "enemy_neg", x = 7, y = 5, value_str = "500"}, + {type = "enemy", x = 8, y = 5, value_str = "300"}, + {type = "enemy_neg", x = 9, y = 5, value_str = "500"}, + {type = "enemy_neg", x = 8, y = 6, value_str = "1k"}, + + {type = "enemy_neg", x = 2, y = 10, value_str = "500"}, + + {type = "gate", x = 4, y = 2}, + + {type = "enemy_neg", x = 12, y = 9, value_str = "256"}, + {type = "gate", x = 12, y = 10}, + {type = "gate", x = 13, y = 10}, + {type = "elixir", x = 2, y = 13}, + {type = "elixir", x = 2, y = 5}, + + {type = "enemy", x = 6, y = 9, value_str = "50"}, + {type = "enemy", x = 5, y = 10, value_str = "50"}, + {type = "enemy", x = 5, y = 9, value_str = "50"}, + {type = "enemy", x = 8, y = 9, value_str = "50"}, + {type = "enemy", x = 9, y = 10, value_str = "50"}, + {type = "enemy", x = 9, y = 9, value_str = "50"}, + {type = "enemy_neg", x = 7, y = 9, value_str = "500"}, + {type = "enemy_neg", x = 8, y = 10, value_str = "500"}, + {type = "enemy_neg", x = 6, y = 10, value_str = "500"}, + {type = "pickaxe", x = 7, y = 10}, + + {type = "pickaxe", x = 15, y = 9}, + {type = "pickaxe", x = 14, y = 10}, + {type = "vorpal", x = 15, y = 10}, + + --TODO: decide on enemy values, need later data for this thing + {type = "enemy", x = 13, y = 2, value_str = "250"}, + {type = "enemy", x = 15, y = 2, value_str = "250"}, + {type = "enemy", x = 13, y = 4, value_str = "250"}, + {type = "enemy", x = 15, y = 4, value_str = "250"}, + {type = "enemy_neg", x = 14, y = 3, value_str = "500"}, + {type = "enemy_neg", x = 14, y = 4, value_str = "750"}, + {type = "enemy_neg", x = 14, y = 5, value_str = "1k"}, + {type = "enemy_neg", x = 14, y = 6, value_str = "2k"}, + {type = "vorpal", x = 13, y = 6}, + {type = "vorpal", x = 15, y = 6}, + {type = "elixir", x = 14, y = 7}, {type = "stairs_down", x = 1, y = 7}, - {type = "stairs_up", x = 15, y = 7}, + {type = "stairs_up", x = 1, y = 5}, + {type = "stairs_up", x = 14, y = 1}, + }, textboxes = { { @@ -315,6 +383,299 @@ function LevelData.new() }, } }, + { --floor 6 + walls = { + {0,0,1,0,0,0,2,1,2,0,0,0,2,0,2}, + {0,2,2,0,0,0,0,0,0,0,0,0,0,0,1}, + {1,2,0,0,0,0,2,0,2,0,0,0,0,0,2}, + {0,0,0,2,2,0,1,0,1,0,2,2,0,0,0}, + {0,0,0,2,2,2,2,2,2,2,2,2,0,0,0}, + {0,0,0,0,2,1,1,1,1,1,2,0,0,0,0}, + {2,0,2,1,2,1,1,1,1,1,2,1,2,0,2}, + {1,0,0,0,2,1,1,1,1,1,2,0,0,0,1}, + {2,0,2,1,2,1,1,1,1,1,2,1,2,0,2}, + {0,0,0,0,2,1,1,1,1,1,2,0,0,0,0}, + {0,0,0,2,2,2,2,2,2,2,2,2,0,0,0}, + {0,0,0,2,2,0,1,0,1,0,2,2,0,0,0}, + {0,2,0,0,0,0,2,0,2,0,0,0,0,0,2}, + {0,2,2,0,0,0,0,0,0,0,0,0,0,0,1}, + {0,0,0,0,0,0,2,1,2,0,0,0,2,0,2}, + }, + entities = { + {type = "enemy_neg", x = 6, y = 3, value_str = "1k"}, + {type = "enemy", x = 6, y = 4, value_str = "1k"}, + {type = "enemy_neg", x = 10, y = 3, value_str = "1k"}, + {type = "enemy", x = 10, y = 4, value_str = "1k"}, + {type = "enemy_neg", x = 6, y = 13, value_str = "1k"}, + {type = "enemy", x = 6, y = 12, value_str = "1k"}, + {type = "enemy_neg", x = 10, y = 13, value_str = "1k"}, + {type = "enemy", x = 10, y = 12, value_str = "1k"}, + {type = "enemy_neg", x = 3, y = 6, value_str = "1k"}, + {type = "enemy", x = 4, y = 6, value_str = "1k"}, + {type = "enemy_neg", x = 3, y = 10, value_str = "1k"}, + {type = "enemy", x = 4, y = 10, value_str = "1k"}, + {type = "enemy_neg", x = 13, y = 6, value_str = "1k"}, + {type = "enemy", x = 12, y = 6, value_str = "1k"}, + {type = "enemy_neg", x = 13, y = 10, value_str = "1k"}, + {type = "enemy", x = 12, y = 10, value_str = "1k"}, + + {type = "enemy", x = 8, y = 12, value_str = "2k"}, + {type = "enemy", x = 8, y = 4, value_str = "2k"}, + {type = "enemy", x = 12, y = 8, value_str = "2k"}, + {type = "enemy", x = 4, y = 8, value_str = "2k"}, + + {type = "enemy_neg", x = 14, y = 2, value_str = "10k"}, + {type = "enemy_neg", x = 14, y = 14, value_str = "10k"}, + + {type = "gate", x = 8, y = 13}, + {type = "gate", x = 8, y = 3}, + {type = "gate", x = 13, y = 8}, + {type = "gate", x = 3, y = 8}, + + {type = "gate", x = 1, y = 13}, + {type = "gate", x = 3, y = 15}, + {type = "pickaxe", x = 2, y = 15}, + {type = "pickaxe", x = 1, y = 15}, + {type = "pickaxe", x = 1, y = 14}, + + {type = "vorpal", x = 1, y = 1}, + {type = "enemy_neg", x = 1, y = 2, value_str = "300"}, + {type = "enemy_neg", x = 2, y = 1, value_str = "300"}, + + {type = "enemy", x = 5, y = 1, value_str = "250"}, + {type = "enemy", x = 11, y = 1, value_str = "250"}, + {type = "enemy", x = 5, y = 15, value_str = "250"}, + {type = "enemy", x = 11, y = 15, value_str = "250"}, + {type = "enemy", x = 15, y = 5, value_str = "500"}, + {type = "enemy", x = 15, y = 11, value_str = "500"}, + + {type = "stairs_down", x = 1, y = 5}, + {type = "stairs_down", x = 14, y = 1}, + {type = "stairs_up", x = 1, y = 11}, + {type = "stairs_up", x = 14, y = 15}, + + }, + textboxes = { + { + x = 87, y = 91, + w = 74, h = 66, + str = "Reach the top of the tower, and scale your power up as much as you can!", + }, + } + }, + { --floor 7 + walls = { + {2,2,2,0,0,0,2,0,2,0,0,0,2,2,2}, + {2,0,2,2,0,2,2,0,2,2,0,2,2,0,2}, + {2,0,2,0,0,0,0,0,0,0,0,0,2,0,2}, + {0,0,0,0,2,0,2,1,2,0,2,0,0,0,0}, + {2,2,0,0,0,0,0,0,0,0,0,0,0,2,2}, + {0,0,0,0,0,2,0,0,0,2,0,0,0,0,0}, + {2,2,0,0,0,0,0,0,0,0,0,0,0,2,2}, + {0,0,0,2,1,0,2,2,0,2,2,0,0,0,0}, + {0,0,0,1,1,1,2,0,0,0,2,0,2,1,1}, + {1,2,0,1,1,0,2,0,0,0,1,0,0,0,0}, + {0,0,0,2,2,2,2,0,0,0,2,2,2,0,0}, + {0,2,2,2,2,2,2,2,2,2,2,2,2,2,2}, + {0,2,1,1,1,1,1,1,2,0,2,0,2,0,2}, + {0,2,0,0,0,0,0,0,2,0,2,0,2,0,2}, + {0,0,0,1,1,0,0,0,2,0,0,0,0,0,2}, + }, + entities = { + {type = "vorpal", x = 6, y = 15}, + {type = "vorpal", x = 7, y = 15}, + {type = "vorpal", x = 8, y = 15}, + {type = "vorpal", x = 7, y = 14}, + {type = "vorpal", x = 8, y = 14}, + + {type = "pickaxe", x = 4, y = 1}, + {type = "enemy_neg", x = 5, y = 2, value_str = "25k"}, + {type = "elixir", x = 6, y = 1}, + {type = "elixir", x = 10, y = 1}, + {type = "enemy_neg", x = 11, y = 2, value_str = "25k"}, + {type = "pickaxe", x = 12, y = 1}, + + + {type = "enemy_neg", x = 1, y = 13, value_str = "125"}, + {type = "enemy_neg", x = 1, y = 14, value_str = "250"}, + {type = "enemy_neg", x = 1, y = 15, value_str = "500"}, + {type = "enemy_neg", x = 2, y = 15, value_str = "1k"}, + {type = "enemy_neg", x = 3, y = 15, value_str = "2k"}, + {type = "enemy_neg", x = 3, y = 14, value_str = "4k"}, + {type = "enemy_neg", x = 4, y = 14, value_str = "6k"}, + {type = "enemy_neg", x = 5, y = 14, value_str = "8k"}, + {type = "enemy_neg", x = 6, y = 14, value_str = "10k"}, + + {type = "elixir", x = 10, y = 13}, + {type = "elixir", x = 12, y = 13}, + {type = "elixir", x = 14, y = 13}, + {type = "gate", x = 10, y = 14}, + {type = "gate", x = 12, y = 14}, + {type = "gate", x = 14, y = 14}, + + {type = "gate", x = 6, y = 8}, + {type = "gate", x = 9, y = 8}, + {type = "gate", x = 12, y = 9}, + + {type = "stairs_down", x = 1, y = 11}, + {type = "stairs_down", x = 14, y = 15}, + {type = "stairs_up", x = 2, y = 2}, + {type = "stairs_up", x = 8, y = 1}, + {type = "stairs_up", x = 14, y = 2}, + + }, + textboxes = { + { + x = 172, y = 174, + w = 32, h = 11, + str = "BANK", + }, + { + x = 60, y = 174, + w = 48, h = 11, + str = "ARMORY", + }, + } + }, + { --floor 8 + walls = { + {2,2,0,1,1,1,2,0,2,1,1,1,0,2,2}, + {2,0,0,0,0,0,1,0,1,0,0,0,0,0,2}, + {0,0,0,0,0,0,1,0,1,0,0,0,0,0,0}, + {0,0,0,2,0,2,1,0,1,2,0,2,0,0,0}, + {0,0,0,0,0,2,1,0,1,2,0,0,0,0,0}, + {0,0,2,2,2,2,0,0,0,2,2,2,2,0,0}, + {0,0,0,0,1,0,0,0,0,0,1,0,0,0,0}, + {0,0,0,0,1,0,0,0,0,0,1,0,0,0,0}, + {0,0,0,0,1,0,0,0,0,0,1,0,0,0,0}, + {0,0,2,2,2,2,0,0,0,2,2,2,2,0,0}, + {0,0,0,0,0,2,1,1,1,2,0,0,0,0,0}, + {0,0,0,0,0,2,0,0,0,2,0,0,0,0,0}, + {0,0,0,0,0,2,0,0,0,2,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + }, + entities = { + {type = "stairs_down", x = 2, y = 2}, + {type = "stairs_down", x = 8, y = 1}, + {type = "stairs_down", x = 14, y = 2}, + {type = "stairs_up", x = 8, y = 8}, + + }, + textboxes = { + } + }, + { --floor 9 + walls = { + {2,2,2,2,2,2,2,2,2,2,2,2,2,2,2}, + {2,0,1,1,1,1,1,1,1,1,1,1,1,0,2}, + {2,1,1,0,0,0,0,0,0,0,0,0,1,1,2}, + {2,1,0,0,1,1,1,1,1,1,1,0,0,1,2}, + {2,1,0,1,1,0,0,0,0,0,1,1,0,1,2}, + {2,1,0,1,0,0,1,1,1,0,0,1,0,1,2}, + {2,1,0,1,0,1,1,0,1,1,0,1,0,1,2}, + {2,1,0,1,0,1,0,0,0,1,0,1,0,1,2}, + {2,1,0,1,0,1,1,0,1,1,0,1,0,1,2}, + {2,1,0,1,0,0,1,0,0,1,0,1,0,1,2}, + {2,1,0,1,1,0,0,0,1,1,0,1,0,1,2}, + {2,1,0,0,1,1,1,1,1,0,0,1,0,1,2}, + {2,1,1,0,0,0,0,0,0,0,1,1,0,1,2}, + {2,0,1,1,1,1,1,1,1,1,1,0,0,1,2}, + {2,2,2,2,2,2,1,0,0,0,0,0,1,1,2}, + }, + entities = { + {type = "elixir", x = 2, y = 2}, + {type = "elixir", x = 14, y = 2}, + {type = "elixir", x = 2, y = 14}, + + {type = "stairs_down", x = 8, y = 8}, + {type = "stairs_up", x = 8, y = 15}, + + }, + textboxes = { + } + }, + { --floor 10 + walls = { + {1,1,1,1,1,2,2,2,2,2,1,1,1,1,1}, + {1,1,1,1,2,2,0,0,0,2,2,1,1,1,1}, + {1,1,1,1,2,0,0,0,0,0,2,1,1,1,1}, + {1,1,1,1,2,0,0,0,0,0,2,1,1,1,1}, + {1,1,1,1,2,0,0,0,0,0,2,1,1,1,1}, + {1,1,1,1,2,2,0,0,0,2,2,1,1,1,1}, + {1,1,1,1,1,2,2,0,2,2,1,1,1,1,1}, + {2,2,2,2,2,2,1,0,1,2,2,2,2,2,2}, + {2,0,0,0,2,2,1,0,1,2,2,0,0,0,2}, + {2,2,0,2,2,2,1,0,1,2,2,2,0,2,2}, + {0,0,0,0,0,2,1,0,1,2,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,2,2,0,2,2,0,0,0,0,0}, + {0,0,0,0,0,2,2,0,2,2,0,0,0,0,0}, + {0,0,0,0,0,2,2,0,2,2,0,0,0,0,0}, + }, + entities = { + + {type = "pickaxe", x = 2, y = 9}, + {type = "pickaxe", x = 3, y = 9}, + {type = "pickaxe", x = 4, y = 9}, + {type = "enemy_neg", x = 3, y = 10, value_str = "200k"}, + + {type = "pickaxe", x = 12, y = 9}, + {type = "pickaxe", x = 13, y = 9}, + {type = "pickaxe", x = 14, y = 9}, + {type = "enemy_neg", x = 13, y = 10, value_str = "200k"}, + + {type = "enemy_neg", x = 8, y = 7, value_str = "1M"}, + {type = "enemy_neg", x = 8, y = 8, value_str = "100k"}, + {type = "enemy_neg", x = 8, y = 9, value_str = "100k"}, + {type = "enemy_neg", x = 8, y = 10, value_str = "100k"}, + {type = "enemy_neg", x = 8, y = 11, value_str = "100k"}, + + {type = "enemy", x = 2, y = 12, value_str = "10k"}, + {type = "enemy", x = 3, y = 12, value_str = "10k"}, + {type = "enemy", x = 4, y = 12, value_str = "10k"}, + {type = "enemy", x = 2, y = 13, value_str = "10k"}, + {type = "enemy", x = 3, y = 13, value_str = "20k"}, + {type = "enemy", x = 4, y = 13, value_str = "10k"}, + {type = "enemy", x = 2, y = 14, value_str = "10k"}, + {type = "enemy", x = 3, y = 14, value_str = "10k"}, + {type = "enemy", x = 4, y = 14, value_str = "10k"}, + + {type = "enemy", x = 12, y = 12, value_str = "10k"}, + {type = "enemy", x = 13, y = 12, value_str = "10k"}, + {type = "enemy", x = 14, y = 12, value_str = "10k"}, + {type = "enemy", x = 12, y = 13, value_str = "10k"}, + {type = "enemy", x = 13, y = 13, value_str = "20k"}, + {type = "enemy", x = 14, y = 13, value_str = "10k"}, + {type = "enemy", x = 12, y = 14, value_str = "10k"}, + {type = "enemy", x = 13, y = 14, value_str = "10k"}, + {type = "enemy", x = 14, y = 14, value_str = "10k"}, + + {type = "elixir", x = 8, y = 3}, + {type = "elixir", x = 8, y = 5}, + {type = "elixir", x = 7, y = 4}, + {type = "elixir", x = 9, y = 4}, + + {type = "gate", x = 8, y = 13}, + {type = "gate", x = 6, y = 12}, + {type = "gate", x = 10, y = 12}, + + {type = "stairs_down", x = 8, y = 15}, + + }, + textboxes = { + { + x = 4, y = 4, + w = 60, h = 112, + str = "\nThis is the top of the Tower of Scale.\n\nGrab the Crown to win the game!", + }, + { + x = 184, y = 4, + w = 60, h = 112, + str = "Your end score is equal to your power when you grab the Crown.\n\nHow far can you scale?", + }, + } + }, } --convert value_str into value diff --git a/res/sprite/elixir.png b/res/sprite/elixir.png index c9bc18d69df05a95536044bef37b9fe7f129ed8d..3eabb0ef9473db6af452fe1392c330c6e1f2444f 100644 GIT binary patch literal 6930 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 delta 1604 zcmV-K2D|x^Hohp3BYy*`dQ@0+Qek%>aB^>EX>4U6ba`-PAZ2)IW&i+q+O1YwlEWwr z{O1&V1SB33$H8E#_6B?WZ7_BolbNxTF%`fZC+d|G$zC6m8 zX^{2V(2T&*=GoS{VH$EgBl6pOnGwaL@^G|Tre{Azdi!}N9781W=sjDJm@rqiUXah) z18s%VFch|g9)kUSS7pS+t0QO8J2#_r{l_k2B=qFSK+!@WyWj-9cRUhr0VP5}q-i?J z_DJS^Zf-gH=6^YJEDI-X?aFtk-3ao?k7GvP$R`aB)HKco_Xw+v$M{lCVK=ldxWf<0Dr_QIFy46K7UqXpRik4Jz|K{TkM|%BpKxa|6|yYrcgR zo0z68wS1s9Vg1rBphgol9!PaXIZ%UCWH&+mItd*!AjX~mxBxXE24Z*2tdjTKk?WY@ zdxWY8j37e?r&31@2>O*cG&-=G$QjOmgPRc@xbdgRnGW4a2P#8wE7oHdBeXn8~h)p;rXZMLCH9nOVlHBqiY+U-wi= zaTnvg{OkUVZhtjrF(4ok&oINZiPwpzHf@9RK5>KKn>;IhDb zM$B|-jyOUr7Ft+oVOBIX;tArYs_E2U$at)B-r}s4Dy%Ule_=SMFE4SOau5kDU=b2T zD5ziqCD@43sgq(MMfY(Zf4}RO$fb~L1B@K=C_{tn`hUUy;P-B={P>vHDI5pdUmWLS z2ng*0^{V51A3IL{1PDF@S9;T5t^w1Zq*t3-^a$wL1}?6fnz9F6?f`vHhHT2N6r>dL zdEotwz9|dz-U6Mg-rgGbIDG)pw5#L|aBv6=7pV7|&$~NX_x5j1V}CzaPI8=V!_2<` z01fJCRI?Kbhyo-tIb&sIFf%zVGi78sEi^VcG%Yw~H)AbgIW;#kF=8@eVl^<6zYL`* zHZ(CfHaR#pG&MCbFf=$K3LqdLM@dakI#y+Jb7^mGJt8tLF)%JOFq4f9II|-T+5xk} z5nu=eGPO{$lP4N53g!U|0y!+%aLKuoVHzlZYDq*vR5;7slfe$aAP7UL+5i7?JvfXb z#Vr~yBk=&SMSN;@D0r_d?*Szy+g<=(81sjwC{q`PqHI`pXZ?YJB@{TIW2j9rlB6jL zjx*AL5<7Q=GMeD4I5XM4#4CAmYX)z}pM54SPJjxkQaBLZe>CX;0000