From 6410560315333a0eba6eb42d1ff800cdb1d905e4 Mon Sep 17 00:00:00 2001 From: Jonathan Chan Date: Wed, 6 Dec 2017 23:22:16 -0800 Subject: [PATCH] Day 7, part 2 - partial progress: made a tree, I guess? --- 7.hs | 34 +- 7_tree.txt | 2195 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 2218 insertions(+), 11 deletions(-) create mode 100644 7_tree.txt diff --git a/7.hs b/7.hs index f6ef944..b809752 100644 --- a/7.hs +++ b/7.hs @@ -1,5 +1,6 @@ -import Data.HashSet (Set, fromList, delete) +import Data.HashMap (Map, fromList, toList, delete, findWithDefault) import Data.List.Split +import Data.Tree (Tree, unfoldTree, drawTree) type Weight = Int type Program = String @@ -9,21 +10,32 @@ discardEmpty :: [String] -> [String] discardEmpty [""] = [] discardEmpty xs = xs -parseLine :: String -> (Program, Weight, Programs) +parseLine :: String -> (Program, (Weight, Programs)) parseLine line = let nameAndWeight : programsString : _ = splitOn ")" line programs = discardEmpty $ splitOn ", " $ last $ splitOn " -> " programsString name : weight : _ = splitOn " (" nameAndWeight - in (name, read weight, programs) + in (name, (read weight, programs)) + +getBottom :: Map Program (Weight, Programs) -> [(Program, (Weight, Programs))] -> Program +getBottom m l = bottomName + where + (bottomName, _) : _ = toList $ foldr + (\(name, (_, programs)) set -> + case programs of + [] -> delete name set + ps -> foldr delete set ps) + m l + +mapToTree :: Map Program (Weight, Programs) -> Program -> Tree Weight +mapToTree m = unfoldTree (\s -> findWithDefault undefined s m) main :: IO () main = do input <- readFile "7.txt" - let list = map parseLine $ lines input - nameSet = fromList $ map (\(name, _, _) -> name) list - bottom = foldr (\(name, _, programs) set -> - case programs of - [] -> delete name set - ps -> foldr delete set ps) - nameSet list - print $ bottom \ No newline at end of file + let programsList = map parseLine $ lines input + programsMap = fromList programsList + bottomName = getBottom programsMap programsList + programsTree = mapToTree programsMap bottomName + print $ bottomName + writeFile "7_tree.txt" $ drawTree $ fmap show programsTree \ No newline at end of file diff --git a/7_tree.txt b/7_tree.txt new file mode 100644 index 0000000..a34ba17 --- /dev/null +++ b/7_tree.txt @@ -0,0 +1,2195 @@ +69 +| ++- 91947 +| | +| +- 35 +| | | +| | +- 1136 +| | | | +| | | +- 261 +| | | | +| | | +- 261 +| | | | +| | | +- 93 +| | | | | +| | | | +- 84 +| | | | | +| | | | `- 84 +| | | | +| | | `- 173 +| | | | +| | | +- 22 +| | | | +| | | +- 22 +| | | | +| | | +- 22 +| | | | +| | | `- 22 +| | | +| | +- 94 +| | | | +| | | +- 298 +| | | | +| | | +- 192 +| | | | | +| | | | +- 53 +| | | | | +| | | | `- 53 +| | | | +| | | +- 90 +| | | | | +| | | | +- 52 +| | | | | +| | | | +- 52 +| | | | | +| | | | +- 52 +| | | | | +| | | | `- 52 +| | | | +| | | +- 282 +| | | | | +| | | | +- 8 +| | | | | +| | | | `- 8 +| | | | +| | | +- 172 +| | | | | +| | | | +- 63 +| | | | | +| | | | `- 63 +| | | | +| | | +- 170 +| | | | | +| | | | +- 64 +| | | | | +| | | | `- 64 +| | | | +| | | `- 112 +| | | | +| | | +- 93 +| | | | +| | | `- 93 +| | | +| | +- 808 +| | | | +| | | +- 261 +| | | | | +| | | | +- 41 +| | | | | +| | | | `- 41 +| | | | +| | | +- 289 +| | | | | +| | | | +- 27 +| | | | | +| | | | `- 27 +| | | | +| | | +- 73 +| | | | | +| | | | +- 90 +| | | | | +| | | | +- 90 +| | | | | +| | | | `- 90 +| | | | +| | | `- 313 +| | | | +| | | +- 15 +| | | | +| | | `- 15 +| | | +| | +- 568 +| | | | +| | | +- 157 +| | | | | +| | | | +- 82 +| | | | | +| | | | +- 82 +| | | | | +| | | | `- 82 +| | | | +| | | +- 377 +| | | | | +| | | | +- 13 +| | | | | +| | | | `- 13 +| | | | +| | | +- 250 +| | | | | +| | | | +- 51 +| | | | | +| | | | +- 51 +| | | | | +| | | | `- 51 +| | | | +| | | `- 67 +| | | | +| | | +- 84 +| | | | +| | | +- 84 +| | | | +| | | +- 84 +| | | | +| | | `- 84 +| | | +| | +- 970 +| | | | +| | | +- 50 +| | | | | +| | | | +- 96 +| | | | | +| | | | `- 96 +| | | | +| | | +- 142 +| | | | | +| | | | +- 50 +| | | | | +| | | | `- 50 +| | | | +| | | +- 173 +| | | | | +| | | | +- 23 +| | | | | +| | | | +- 23 +| | | | | +| | | | `- 23 +| | | | +| | | +- 132 +| | | | | +| | | | +- 55 +| | | | | +| | | | `- 55 +| | | | +| | | `- 142 +| | | | +| | | +- 50 +| | | | +| | | `- 50 +| | | +| | +- 1428 +| | | | +| | | +- 188 +| | | | +| | | +- 80 +| | | | | +| | | | +- 36 +| | | | | +| | | | +- 36 +| | | | | +| | | | `- 36 +| | | | +| | | +- 44 +| | | | | +| | | | +- 48 +| | | | | +| | | | +- 48 +| | | | | +| | | | `- 48 +| | | | +| | | `- 56 +| | | | +| | | +- 66 +| | | | +| | | `- 66 +| | | +| | `- 761 +| | | +| | +- 93 +| | | | +| | | +- 95 +| | | | +| | | +- 95 +| | | | +| | | +- 95 +| | | | +| | | `- 95 +| | | +| | +- 395 +| | | | +| | | +- 39 +| | | | +| | | `- 39 +| | | +| | `- 425 +| | | +| | +- 12 +| | | +| | +- 12 +| | | +| | +- 12 +| | | +| | `- 12 +| | +| +- 7991 +| | | +| | +- 1046 +| | | | +| | | +- 124 +| | | | | +| | | | +- 16 +| | | | | +| | | | `- 16 +| | | | +| | | +- 156 +| | | | +| | | +- 88 +| | | | | +| | | | +- 34 +| | | | | +| | | | `- 34 +| | | | +| | | +- 62 +| | | | | +| | | | +- 47 +| | | | | +| | | | `- 47 +| | | | +| | | `- 54 +| | | | +| | | +- 51 +| | | | +| | | `- 51 +| | | +| | +- 629 +| | | | +| | | +- 305 +| | | | | +| | | | +- 47 +| | | | | +| | | | `- 47 +| | | | +| | | +- 47 +| | | | | +| | | | +- 88 +| | | | | +| | | | +- 88 +| | | | | +| | | | +- 88 +| | | | | +| | | | `- 88 +| | | | +| | | `- 399 +| | | +| | +- 81 +| | | | +| | | +- 25 +| | | | | +| | | | +- 81 +| | | | | +| | | | +- 81 +| | | | | +| | | | +- 81 +| | | | | +| | | | `- 81 +| | | | +| | | +- 349 +| | | | +| | | +- 199 +| | | | | +| | | | +- 75 +| | | | | +| | | | `- 75 +| | | | +| | | +- 178 +| | | | | +| | | | +- 57 +| | | | | +| | | | +- 57 +| | | | | +| | | | `- 57 +| | | | +| | | `- 255 +| | | | +| | | +- 47 +| | | | +| | | `- 47 +| | | +| | `- 989 +| | | +| | +- 279 +| | | +| | +- 63 +| | | | +| | | +- 72 +| | | | +| | | +- 72 +| | | | +| | | `- 72 +| | | +| | `- 167 +| | | +| | +- 56 +| | | +| | `- 56 +| | +| `- 14779 +| | +| +- 129 +| | +| +- 115 +| | | +| | +- 7 +| | | +| | `- 7 +| | +| +- 13 +| | | +| | +- 29 +| | | +| | +- 29 +| | | +| | +- 29 +| | | +| | `- 29 +| | +| `- 59 +| | +| +- 35 +| | +| `- 35 +| ++- 65882 +| | +| +- 5411 +| | | +| | +- 46 +| | | | +| | | +- 334 +| | | | | +| | | | +- 29 +| | | | | +| | | | +- 29 +| | | | | +| | | | `- 29 +| | | | +| | | +- 233 +| | | | | +| | | | +- 94 +| | | | | +| | | | `- 94 +| | | | +| | | +- 33 +| | | | | +| | | | +- 97 +| | | | | +| | | | +- 97 +| | | | | +| | | | +- 97 +| | | | | +| | | | `- 97 +| | | | +| | | +- 391 +| | | | | +| | | | +- 15 +| | | | | +| | | | `- 15 +| | | | +| | | +- 357 +| | | | | +| | | | +- 32 +| | | | | +| | | | `- 32 +| | | | +| | | +- 421 +| | | | +| | | `- 265 +| | | | +| | | +- 78 +| | | | +| | | `- 78 +| | | +| | +- 539 +| | | | +| | | +- 365 +| | | | | +| | | | +- 22 +| | | | | +| | | | `- 22 +| | | | +| | | +- 285 +| | | | | +| | | | +- 62 +| | | | | +| | | | `- 62 +| | | | +| | | +- 393 +| | | | | +| | | | +- 8 +| | | | | +| | | | `- 8 +| | | | +| | | +- 37 +| | | | | +| | | | +- 93 +| | | | | +| | | | +- 93 +| | | | | +| | | | +- 93 +| | | | | +| | | | `- 93 +| | | | +| | | +- 409 +| | | | +| | | `- 211 +| | | | +| | | +- 66 +| | | | +| | | +- 66 +| | | | +| | | `- 66 +| | | +| | `- 2803 +| | | +| | +- 95 +| | | +| | `- 95 +| | +| +- 11651 +| | | +| | +- 10 +| | | | +| | | +- 58 +| | | | | +| | | | +- 81 +| | | | | +| | | | +- 81 +| | | | | +| | | | `- 81 +| | | | +| | | +- 213 +| | | | | +| | | | +- 22 +| | | | | +| | | | +- 22 +| | | | | +| | | | +- 22 +| | | | | +| | | | `- 22 +| | | | +| | | `- 28 +| | | | +| | | +- 91 +| | | | +| | | +- 91 +| | | | +| | | `- 91 +| | | +| | +- 396 +| | | | +| | | +- 135 +| | | | | +| | | | +- 13 +| | | | | +| | | | +- 13 +| | | | | +| | | | `- 13 +| | | | +| | | +- 174 +| | | | +| | | `- 38 +| | | | +| | | +- 34 +| | | | +| | | +- 34 +| | | | +| | | +- 34 +| | | | +| | | `- 34 +| | | +| | `- 785 +| | | +| | +- 64 +| | | +| | `- 64 +| | +| +- 7374 +| | | +| | +- 522 +| | | | +| | | +- 28 +| | | | | +| | | | +- 74 +| | | | | +| | | | `- 74 +| | | | +| | | +- 176 +| | | | +| | | +- 84 +| | | | | +| | | | +- 46 +| | | | | +| | | | `- 46 +| | | | +| | | +- 164 +| | | | | +| | | | +- 6 +| | | | | +| | | | `- 6 +| | | | +| | | +- 30 +| | | | | +| | | | +- 73 +| | | | | +| | | | `- 73 +| | | | +| | | +- 76 +| | | | | +| | | | +- 50 +| | | | | +| | | | `- 50 +| | | | +| | | `- 53 +| | | | +| | | +- 41 +| | | | +| | | +- 41 +| | | | +| | | `- 41 +| | | +| | +- 20 +| | | | +| | | +- 275 +| | | | | +| | | | +- 7 +| | | | | +| | | | `- 7 +| | | | +| | | +- 203 +| | | | | +| | | | +- 43 +| | | | | +| | | | `- 43 +| | | | +| | | +- 141 +| | | | | +| | | | +- 37 +| | | | | +| | | | +- 37 +| | | | | +| | | | +- 37 +| | | | | +| | | | `- 37 +| | | | +| | | +- 175 +| | | | | +| | | | +- 38 +| | | | | +| | | | +- 38 +| | | | | +| | | | `- 38 +| | | | +| | | +- 139 +| | | | | +| | | | +- 75 +| | | | | +| | | | `- 75 +| | | | +| | | `- 10 +| | | | +| | | +- 93 +| | | | +| | | +- 93 +| | | | +| | | `- 93 +| | | +| | +- 542 +| | | | +| | | +- 340 +| | | | | +| | | | +- 16 +| | | | | +| | | | +- 16 +| | | | | +| | | | +- 16 +| | | | | +| | | | `- 16 +| | | | +| | | +- 266 +| | | | | +| | | | +- 69 +| | | | | +| | | | `- 69 +| | | | +| | | `- 84 +| | | | +| | | +- 80 +| | | | +| | | +- 80 +| | | | +| | | +- 80 +| | | | +| | | `- 80 +| | | +| | `- 1175 +| | | +| | +- 41 +| | | | +| | | +- 76 +| | | | +| | | `- 76 +| | | +| | +- 193 +| | | +| | `- 49 +| | | +| | +- 72 +| | | +| | `- 72 +| | +| +- 9470 +| | | +| | +- 806 +| | | | +| | | +- 82 +| | | | | +| | | | +- 98 +| | | | | +| | | | `- 98 +| | | | +| | | +- 23 +| | | | | +| | | | +- 85 +| | | | | +| | | | +- 85 +| | | | | +| | | | `- 85 +| | | | +| | | `- 210 +| | | | +| | | +- 34 +| | | | +| | | `- 34 +| | | +| | +- 92 +| | | | +| | | +- 234 +| | | | | +| | | | +- 12 +| | | | | +| | | | `- 12 +| | | | +| | | +- 258 +| | | | +| | | +- 196 +| | | | | +| | | | +- 31 +| | | | | +| | | | `- 31 +| | | | +| | | +- 190 +| | | | | +| | | | +- 17 +| | | | | +| | | | +- 17 +| | | | | +| | | | +- 17 +| | | | | +| | | | `- 17 +| | | | +| | | +- 258 +| | | | +| | | `- 21 +| | | | +| | | +- 79 +| | | | +| | | +- 79 +| | | | +| | | `- 79 +| | | +| | `- 1364 +| | | +| | +- 40 +| | | | +| | | +- 26 +| | | | +| | | `- 26 +| | | +| | +- 34 +| | | | +| | | +- 29 +| | | | +| | | `- 29 +| | | +| | `- 14 +| | | +| | +- 39 +| | | +| | `- 39 +| | +| `- 80 +| | +| +- 2334 +| | | +| | +- 104 +| | | | +| | | +- 36 +| | | | +| | | `- 36 +| | | +| | +- 32 +| | | | +| | | +- 72 +| | | | +| | | `- 72 +| | | +| | `- 176 +| | +| +- 1917 +| | | +| | +- 59 +| | | | +| | | +- 65 +| | | | +| | | `- 65 +| | | +| | +- 61 +| | | | +| | | +- 64 +| | | | +| | | `- 64 +| | | +| | +- 161 +| | | | +| | | +- 14 +| | | | +| | | `- 14 +| | | +| | +- 37 +| | | | +| | | +- 76 +| | | | +| | | `- 76 +| | | +| | `- 132 +| | | +| | +- 19 +| | | +| | +- 19 +| | | +| | `- 19 +| | +| +- 84 +| | | +| | +- 87 +| | | | +| | | +- 94 +| | | | +| | | +- 94 +| | | | +| | | +- 94 +| | | | +| | | `- 94 +| | | +| | +- 313 +| | | | +| | | +- 75 +| | | | +| | | `- 75 +| | | +| | +- 285 +| | | | +| | | +- 89 +| | | | +| | | `- 89 +| | | +| | +- 367 +| | | | +| | | +- 48 +| | | | +| | | `- 48 +| | | +| | +- 445 +| | | | +| | | +- 9 +| | | | +| | | `- 9 +| | | +| | `- 367 +| | | +| | +- 48 +| | | +| | `- 48 +| | +| +- 2583 +| | | +| | +- 93 +| | | +| | +- 27 +| | | | +| | | +- 22 +| | | | +| | | +- 22 +| | | | +| | | `- 22 +| | | +| | `- 45 +| | | +| | +- 24 +| | | +| | `- 24 +| | +| `- 2340 +| | +| +- 96 +| | | +| | +- 39 +| | | +| | `- 39 +| | +| +- 70 +| | | +| | +- 52 +| | | +| | `- 52 +| | +| `- 100 +| | +| +- 37 +| | +| `- 37 +| ++- 87306 +| | +| +- 10194 +| | | +| | +- 831 +| | | | +| | | +- 251 +| | | | | +| | | | +- 13 +| | | | | +| | | | `- 13 +| | | | +| | | +- 238 +| | | | | +| | | | +- 13 +| | | | | +| | | | +- 13 +| | | | | +| | | | `- 13 +| | | | +| | | +- 173 +| | | | | +| | | | +- 52 +| | | | | +| | | | `- 52 +| | | | +| | | +- 87 +| | | | | +| | | | +- 95 +| | | | | +| | | | `- 95 +| | | | +| | | `- 159 +| | | | +| | | +- 59 +| | | | +| | | `- 59 +| | | +| | +- 14 +| | | | +| | | +- 237 +| | | | | +| | | | +- 65 +| | | | | +| | | | `- 65 +| | | | +| | | +- 11 +| | | | | +| | | | +- 89 +| | | | | +| | | | +- 89 +| | | | | +| | | | +- 89 +| | | | | +| | | | `- 89 +| | | | +| | | +- 205 +| | | | | +| | | | +- 81 +| | | | | +| | | | `- 81 +| | | | +| | | +- 106 +| | | | | +| | | | +- 87 +| | | | | +| | | | +- 87 +| | | | | +| | | | `- 87 +| | | | +| | | +- 223 +| | | | | +| | | | +- 72 +| | | | | +| | | | `- 72 +| | | | +| | | `- 271 +| | | | +| | | +- 48 +| | | | +| | | `- 48 +| | | +| | `- 936 +| | | +| | +- 320 +| | | +| | +- 71 +| | | | +| | | +- 83 +| | | | +| | | +- 83 +| | | | +| | | `- 83 +| | | +| | +- 284 +| | | | +| | | +- 12 +| | | | +| | | +- 12 +| | | | +| | | `- 12 +| | | +| | `- 280 +| | | +| | +- 20 +| | | +| | `- 20 +| | +| +- 7554 +| | | +| | +- 756 +| | | | +| | | +- 114 +| | | | | +| | | | +- 75 +| | | | | +| | | | `- 75 +| | | | +| | | +- 60 +| | | | | +| | | | +- 68 +| | | | | +| | | | +- 68 +| | | | | +| | | | `- 68 +| | | | +| | | `- 224 +| | | | +| | | +- 20 +| | | | +| | | `- 20 +| | | +| | +- 18 +| | | | +| | | +- 235 +| | | | | +| | | | +- 10 +| | | | | +| | | | `- 10 +| | | | +| | | +- 163 +| | | | | +| | | | +- 23 +| | | | | +| | | | +- 23 +| | | | | +| | | | +- 23 +| | | | | +| | | | `- 23 +| | | | +| | | +- 150 +| | | | | +| | | | +- 35 +| | | | | +| | | | +- 35 +| | | | | +| | | | `- 35 +| | | | +| | | +- 65 +| | | | | +| | | | +- 95 +| | | | | +| | | | `- 95 +| | | | +| | | +- 138 +| | | | | +| | | | +- 39 +| | | | | +| | | | +- 39 +| | | | | +| | | | `- 39 +| | | | +| | | `- 117 +| | | | +| | | +- 69 +| | | | +| | | `- 69 +| | | +| | +- 498 +| | | | +| | | +- 148 +| | | | | +| | | | +- 31 +| | | | | +| | | | `- 31 +| | | | +| | | +- 48 +| | | | | +| | | | +- 81 +| | | | | +| | | | `- 81 +| | | | +| | | +- 98 +| | | | | +| | | | +- 28 +| | | | | +| | | | +- 28 +| | | | | +| | | | +- 28 +| | | | | +| | | | `- 28 +| | | | +| | | +- 142 +| | | | | +| | | | +- 34 +| | | | | +| | | | `- 34 +| | | | +| | | `- 196 +| | | | +| | | +- 7 +| | | | +| | | `- 7 +| | | +| | +- 543 +| | | | +| | | +- 223 +| | | | | +| | | | +- 56 +| | | | | +| | | | `- 56 +| | | | +| | | +- 195 +| | | | | +| | | | +- 35 +| | | | | +| | | | +- 35 +| | | | | +| | | | +- 35 +| | | | | +| | | | `- 35 +| | | | +| | | `- 91 +| | | | +| | | +- 61 +| | | | +| | | +- 61 +| | | | +| | | +- 61 +| | | | +| | | `- 61 +| | | +| | +- 584 +| | | | +| | | +- 85 +| | | | | +| | | | +- 52 +| | | | | +| | | | +- 52 +| | | | | +| | | | `- 52 +| | | | +| | | +- 149 +| | | | | +| | | | +- 46 +| | | | | +| | | | `- 46 +| | | | +| | | +- 166 +| | | | | +| | | | +- 25 +| | | | | +| | | | +- 25 +| | | | | +| | | | `- 25 +| | | | +| | | `- 75 +| | | | +| | | +- 83 +| | | | +| | | `- 83 +| | | +| | `- 476 +| | | +| | +- 214 +| | | | +| | | +- 27 +| | | | +| | | `- 27 +| | | +| | +- 180 +| | | | +| | | +- 44 +| | | | +| | | `- 44 +| | | +| | +- 19 +| | | | +| | | +- 83 +| | | | +| | | +- 83 +| | | | +| | | `- 83 +| | | +| | `- 150 +| | | +| | +- 59 +| | | +| | `- 59 +| | +| `- 90 +| | +| +- 782 +| | | +| | +- 90 +| | | | +| | | +- 78 +| | | | +| | | +- 78 +| | | | +| | | +- 78 +| | | | +| | | `- 78 +| | | +| | +- 129 +| | | | +| | | +- 91 +| | | | +| | | +- 91 +| | | | +| | | `- 91 +| | | +| | +- 90 +| | | | +| | | +- 78 +| | | | +| | | +- 78 +| | | | +| | | +- 78 +| | | | +| | | `- 78 +| | | +| | +- 402 +| | | +| | `- 298 +| | | +| | +- 52 +| | | +| | `- 52 +| | +| +- 1180 +| | | +| | +- 376 +| | | | +| | | +- 9 +| | | | +| | | +- 9 +| | | | +| | | `- 9 +| | | +| | +- 207 +| | | | +| | | +- 98 +| | | | +| | | `- 98 +| | | +| | +- 235 +| | | | +| | | +- 84 +| | | | +| | | `- 84 +| | | +| | `- 83 +| | | +| | +- 80 +| | | +| | +- 80 +| | | +| | +- 80 +| | | +| | `- 80 +| | +| +- 97 +| | | +| | +- 385 +| | | +| | +- 385 +| | | +| | +- 213 +| | | | +| | | +- 43 +| | | | +| | | +- 43 +| | | | +| | | +- 43 +| | | | +| | | `- 43 +| | | +| | +- 184 +| | | | +| | | +- 67 +| | | | +| | | +- 67 +| | | | +| | | `- 67 +| | | +| | +- 293 +| | | | +| | | +- 46 +| | | | +| | | `- 46 +| | | +| | +- 365 +| | | | +| | | +- 10 +| | | | +| | | `- 10 +| | | +| | `- 29 +| | | +| | +- 89 +| | | +| | +- 89 +| | | +| | +- 89 +| | | +| | `- 89 +| | +| +- 2288 +| | | +| | +- 80 +| | | | +| | | +- 44 +| | | | +| | | `- 44 +| | | +| | +- 38 +| | | | +| | | +- 65 +| | | | +| | | `- 65 +| | | +| | `- 106 +| | | +| | +- 31 +| | | +| | `- 31 +| | +| +- 839 +| | | +| | +- 95 +| | | | +| | | +- 46 +| | | | +| | | +- 46 +| | | | +| | | +- 46 +| | | | +| | | `- 46 +| | | +| | +- 247 +| | | | +| | | +- 16 +| | | | +| | | `- 16 +| | | +| | +- 54 +| | | | +| | | +- 75 +| | | | +| | | +- 75 +| | | | +| | | `- 75 +| | | +| | +- 259 +| | | | +| | | +- 10 +| | | | +| | | `- 10 +| | | +| | +- 279 +| | | +| | +- 18 +| | | | +| | | +- 87 +| | | | +| | | +- 87 +| | | | +| | | `- 87 +| | | +| | `- 231 +| | | +| | +- 12 +| | | +| | +- 12 +| | | +| | +- 12 +| | | +| | `- 12 +| | +| `- 2393 +| | +| +- 133 +| | +| +- 13 +| | | +| | +- 40 +| | | +| | +- 40 +| | | +| | `- 40 +| | +| `- 133 +| +`- 30 + | + +- 13659 + | | + | +- 54 + | | | + | | +- 370 + | | | | + | | | +- 7 + | | | | + | | | +- 7 + | | | | + | | | `- 7 + | | | + | | +- 347 + | | | | + | | | +- 22 + | | | | + | | | `- 22 + | | | + | | +- 235 + | | | | + | | | +- 78 + | | | | + | | | `- 78 + | | | + | | +- 97 + | | | | + | | | +- 98 + | | | | + | | | +- 98 + | | | | + | | | `- 98 + | | | + | | `- 343 + | | | + | | +- 24 + | | | + | | `- 24 + | | + | +- 857 + | | | + | | +- 36 + | | | | + | | | +- 78 + | | | | + | | | `- 78 + | | | + | | +- 92 + | | | | + | | | +- 50 + | | | | + | | | `- 50 + | | | + | | +- 16 + | | | | + | | | +- 88 + | | | | + | | | `- 88 + | | | + | | +- 114 + | | | | + | | | +- 39 + | | | | + | | | `- 39 + | | | + | | +- 92 + | | | | + | | | +- 50 + | | | | + | | | `- 50 + | | | + | | `- 180 + | | | + | | +- 6 + | | | + | | `- 6 + | | + | `- 1837 + | | + | +- 86 + | | + | `- 86 + | + +- 10456 + | | + | +- 96 + | | | + | | +- 46 + | | | | + | | | +- 76 + | | | | + | | | +- 76 + | | | | + | | | +- 76 + | | | | + | | | `- 76 + | | | + | | +- 264 + | | | | + | | | +- 43 + | | | | + | | | `- 43 + | | | + | | +- 300 + | | | | + | | | +- 25 + | | | | + | | | `- 25 + | | | + | | +- 254 + | | | | + | | | +- 48 + | | | | + | | | `- 48 + | | | + | | `- 230 + | | | + | | +- 40 + | | | + | | +- 40 + | | | + | | `- 40 + | | + | +- 1774 + | | | + | | +- 36 + | | | + | | `- 36 + | | + | +- 186 + | | | + | | +- 119 + | | | | + | | | +- 71 + | | | | + | | | +- 71 + | | | | + | | | `- 71 + | | | + | | +- 152 + | | | | + | | | +- 60 + | | | | + | | | +- 60 + | | | | + | | | `- 60 + | | | + | | +- 149 + | | | | + | | | +- 61 + | | | | + | | | +- 61 + | | | | + | | | `- 61 + | | | + | | +- 86 + | | | | + | | | +- 82 + | | | | + | | | +- 82 + | | | | + | | | `- 82 + | | | + | | `- 24 + | | | + | | +- 77 + | | | + | | +- 77 + | | | + | | +- 77 + | | | + | | `- 77 + | | + | +- 536 + | | | + | | +- 198 + | | | | + | | | +- 32 + | | | | + | | | `- 32 + | | | + | | +- 240 + | | | | + | | | +- 11 + | | | | + | | | `- 11 + | | | + | | +- 88 + | | | | + | | | +- 87 + | | | | + | | | `- 87 + | | | + | | +- 142 + | | | | + | | | +- 30 + | | | | + | | | +- 30 + | | | | + | | | +- 30 + | | | | + | | | `- 30 + | | | + | | `- 19 + | | | + | | +- 81 + | | | + | | +- 81 + | | | + | | `- 81 + | | + | `- 424 + | | + | +- 183 + | | | + | | +- 27 + | | | + | | `- 27 + | | + | +- 165 + | | | + | | +- 36 + | | | + | | `- 36 + | | + | +- 53 + | | | + | | +- 92 + | | | + | | `- 92 + | | + | +- 237 + | | + | +- 216 + | | | + | | +- 7 + | | | + | | +- 7 + | | | + | | `- 7 + | | + | `- 61 + | | + | +- 88 + | | + | `- 88 + | + +- 12966 + | | + | +- 38 + | | | + | | +- 217 + | | | | + | | | +- 50 + | | | | + | | | +- 50 + | | | | + | | | `- 50 + | | | + | | +- 99 + | | | | + | | | +- 67 + | | | | + | | | +- 67 + | | | | + | | | +- 67 + | | | | + | | | `- 67 + | | | + | | +- 313 + | | | | + | | | +- 27 + | | | | + | | | `- 27 + | | | + | | +- 175 + | | | | + | | | +- 96 + | | | | + | | | `- 96 + | | | + | | +- 283 + | | | | + | | | +- 42 + | | | | + | | | `- 42 + | | | + | | `- 154 + | | | + | | +- 71 + | | | + | | +- 71 + | | | + | | `- 71 + | | + | +- 1852 + | | | + | | +- 97 + | | | + | | +- 97 + | | | + | | +- 97 + | | | + | | `- 97 + | | + | `- 2222 + | | + | +- 6 + | | + | +- 6 + | | + | `- 6 + | + +- 30 + | | + | +- 1763 + | | | + | | +- 175 + | | | | + | | | +- 17 + | | | | + | | | `- 17 + | | | + | | +- 141 + | | | | + | | | +- 34 + | | | | + | | | `- 34 + | | | + | | +- 179 + | | | | + | | | +- 15 + | | | | + | | | `- 15 + | | | + | | +- 41 + | | | | + | | | +- 84 + | | | | + | | | `- 84 + | | | + | | `- 163 + | | | + | | +- 23 + | | | + | | `- 23 + | | + | +- 2380 + | | | + | | +- 107 + | | | + | | +- 15 + | | | | + | | | +- 46 + | | | | + | | | `- 46 + | | | + | | +- 73 + | | | | + | | | +- 17 + | | | | + | | | `- 17 + | | | + | | `- 107 + | | + | +- 57 + | | | + | | +- 21 + | | | | + | | | +- 93 + | | | | + | | | +- 93 + | | | | + | | | +- 93 + | | | | + | | | `- 93 + | | | + | | +- 231 + | | | | + | | | +- 54 + | | | | + | | | +- 54 + | | | | + | | | `- 54 + | | | + | | +- 373 + | | | | + | | | +- 10 + | | | | + | | | `- 10 + | | | + | | +- 301 + | | | | + | | | +- 23 + | | | | + | | | +- 23 + | | | | + | | | +- 23 + | | | | + | | | `- 23 + | | | + | | +- 225 + | | | | + | | | +- 84 + | | | | + | | | `- 84 + | | | + | | +- 13 + | | | | + | | | +- 95 + | | | | + | | | +- 95 + | | | | + | | | +- 95 + | | | | + | | | `- 95 + | | | + | | `- 359 + | | | + | | +- 17 + | | | + | | `- 17 + | | + | +- 1362 + | | | + | | +- 241 + | | | + | | +- 67 + | | | | + | | | +- 87 + | | | | + | | | `- 87 + | | | + | | +- 49 + | | | | + | | | +- 96 + | | | | + | | | `- 96 + | | | + | | +- 93 + | | | | + | | | +- 74 + | | | | + | | | `- 74 + | | | + | | +- 61 + | | | | + | | | +- 60 + | | | | + | | | +- 60 + | | | | + | | | `- 60 + | | | + | | `- 241 + | | + | +- 918 + | | | + | | +- 38 + | | | | + | | | +- 85 + | | | | + | | | +- 85 + | | | | + | | | +- 85 + | | | | + | | | `- 85 + | | | + | | +- 327 + | | | | + | | | +- 17 + | | | | + | | | +- 17 + | | | | + | | | `- 17 + | | | + | | +- 242 + | | | | + | | | +- 68 + | | | | + | | | `- 68 + | | | + | | +- 224 + | | | | + | | | +- 77 + | | | | + | | | `- 77 + | | | + | | `- 254 + | | | + | | +- 62 + | | | + | | `- 62 + | | + | +- 648 + | | | + | | +- 80 + | | | | + | | | +- 88 + | | | | + | | | +- 88 + | | | | + | | | +- 88 + | | | | + | | | `- 88 + | | | + | | +- 388 + | | | | + | | | +- 22 + | | | | + | | | `- 22 + | | | + | | +- 432 + | | | + | | +- 40 + | | | | + | | | +- 98 + | | | | + | | | +- 98 + | | | | + | | | +- 98 + | | | | + | | | `- 98 + | | | + | | `- 108 + | | | + | | +- 81 + | | | + | | +- 81 + | | | + | | +- 81 + | | | + | | `- 81 + | | + | `- 1158 + | | + | +- 275 + | | + | +- 77 + | | | + | | +- 99 + | | | + | | `- 99 + | | + | +- 227 + | | | + | | +- 16 + | | | + | | +- 16 + | | | + | | `- 16 + | | + | +- 95 + | | | + | | +- 90 + | | | + | | `- 90 + | | + | +- 275 + | | + | `- 223 + | | + | +- 26 + | | + | `- 26 + | + +- 11994 + | | + | +- 33 + | | | + | | +- 250 + | | | | + | | | +- 32 + | | | | + | | | +- 32 + | | | | + | | | +- 32 + | | | | + | | | `- 32 + | | | + | | +- 180 + | | | | + | | | +- 99 + | | | | + | | | `- 99 + | | | + | | +- 342 + | | | | + | | | +- 18 + | | | | + | | | `- 18 + | | | + | | +- 66 + | | | | + | | | +- 78 + | | | | + | | | +- 78 + | | | | + | | | +- 78 + | | | | + | | | `- 78 + | | | + | | `- 296 + | | | + | | +- 41 + | | | + | | `- 41 + | | + | +- 923 + | | | + | | +- 112 + | | | | + | | | +- 69 + | | | | + | | | `- 69 + | | | + | | +- 208 + | | | | + | | | +- 14 + | | | | + | | | +- 14 + | | | | + | | | `- 14 + | | | + | | +- 70 + | | | | + | | | +- 60 + | | | | + | | | +- 60 + | | | | + | | | `- 60 + | | | + | | `- 250 + | | + | +- 1431 + | | | + | | +- 19 + | | | | + | | | +- 52 + | | | | + | | | `- 52 + | | | + | | +- 123 + | | | + | | +- 123 + | | | + | | `- 79 + | | | + | | +- 22 + | | | + | | `- 22 + | | + | `- 1467 + | | + | +- 90 + | | | + | | +- 31 + | | | + | | `- 31 + | | + | +- 68 + | | | + | | +- 42 + | | | + | | `- 42 + | | + | `- 98 + | | + | +- 27 + | | + | `- 27 + | + +- 16122 + | | + | +- 18 + | | | + | | +- 67 + | | | | + | | | +- 56 + | | | | + | | | +- 56 + | | | | + | | | +- 56 + | | | | + | | | `- 56 + | | | + | | +- 137 + | | | | + | | | +- 77 + | | | | + | | | `- 77 + | | | + | | `- 217 + | | | + | | +- 37 + | | | + | | `- 37 + | | + | +- 23 + | | | + | | +- 169 + | | | | + | | | +- 24 + | | | | + | | | `- 24 + | | | + | | +- 203 + | | | | + | | | +- 7 + | | | | + | | | `- 7 + | | | + | | +- 37 + | | | | + | | | +- 90 + | | | | + | | | `- 90 + | | | + | | `- 217 + | | + | +- 151 + | | | + | | +- 29 + | | | | + | | | +- 78 + | | | | + | | | `- 78 + | | | + | | +- 185 + | | | + | | +- 125 + | | | | + | | | +- 30 + | | | | + | | | `- 30 + | | | + | | `- 65 + | | | + | | +- 60 + | | | + | | `- 60 + | | + | `- 793 + | | + | +- 49 + | | + | `- 49 + | + `- 14760 + | + +- 386 + | | + | +- 86 + | | | + | | +- 76 + | | | + | | +- 76 + | | | + | | `- 76 + | | + | +- 210 + | | | + | | +- 52 + | | | + | | `- 52 + | | + | +- 152 + | | | + | | +- 81 + | | | + | | `- 81 + | | + | `- 126 + | | + | +- 94 + | | + | `- 94 + | + +- 52 + | | + | +- 79 + | | | + | | +- 93 + | | | + | | `- 93 + | | + | +- 67 + | | | + | | +- 99 + | | | + | | `- 99 + | | + | +- 145 + | | | + | | +- 60 + | | | + | | `- 60 + | | + | +- 229 + | | | + | | +- 9 + | | | + | | +- 9 + | | | + | | +- 9 + | | | + | | `- 9 + | | + | +- 265 + | | + | `- 125 + | | + | +- 35 + | | + | +- 35 + | | + | +- 35 + | | + | `- 35 + | + `- 784 + | + +- 64 + | | + | +- 74 + | | + | +- 74 + | | + | `- 74 + | + +- 256 + | | + | +- 15 + | | + | `- 15 + | + `- 264 + | + +- 11 + | + `- 11