From b3d780a4dba7edc1cbd151528d36761e936c4ce8 Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Thu, 6 Dec 2018 15:57:53 +0100 Subject: day05 --- day05 | 1 + day05.k | 6 ++++++ day05.rs | 31 +++++++++++++++++++++++++++++++ 3 files changed, 38 insertions(+) create mode 100644 day05 create mode 100644 day05.k create mode 100644 day05.rs diff --git a/day05 b/day05 new file mode 100644 index 0000000..d25aba4 --- /dev/null +++ b/day05 @@ -0,0 +1 @@ +pQqGgPzZWwSoOsgYLfFjJlypPGXxdDGhHBFfbLlcCGghHNnBblLPpfusSyvVYUzTtZzcCFfZFfAazZSwWsSsLldDbBUunCcNzMmZFfIiFnNQjJgGqPrRzVvZpDdmMItMmjwWMmJhHTCiIcEWweiFfgTbfFBYfFytoOixXCcTtqQlJmMpPqMmVvGgHhaQqGgAjJQFfoVgnHyYJNnEeQqjmvVOoMMmhNepPyYEGFdpPDfHhvinKkzZNIAbYtTXxysKkSBSuEwWeUfSTtQqsFseESstTyhHYbNnBxUuXBbaBNnbjxsSrRXJJhHgqoKJjokKcCFfGfFgsSOjJmMkrRUxXuOQOoUuGPprUFfUuuTtRjjJjQqWwZzMmpPJFfqZGgaAzQgGkKnUuwqQWNfFONwWnjDwWdvVMIimMsSuUGndDNtTfkKFlLERrehHfFeEPCcIipSsInNVyYOoviAagrRAaGMmnykKVvYBbVPpvpPNfFHuUSswWdnNDxflLFDdXxXhjtTEeJgkmMNnKqQsiISuOoUYjJtTykKTYytZzLlgGmMaAQbBqpmMFfPsjBbeEUuJwWSjaAJNjJExCkKbBCcQVvqIityYThHcVvuUXzZBnQqvVWwFHQqkKHhhmMpKkqQOlLoNniIPfGgmMbBduUxXDNbtjJTTPpGgtRroOpPFfYYyNnyspOoPouUiImMOeEzZuaAULlhjJOoOoHSQtTqQlbBbBOYkKyoLmMtfFTUaAuxcCNZzXxnXmMLlqiIwDvVxXnNenVvNDsSuOoUCcdXxEKksSeELlJjFSsrzuJaAjUZGgRVvrRrFfRuUbxsSXhHekKEeETFftyYAaoOsJjStBbHhTvHhQqCcViBZzbHhIRVvRrrPAapbBBXbJwZzqQUuWeoOEcCYyjRrBjJWdDXxRreELCcyYlwxuUAaTtecCmMkKgGEwOAaArROoaorRWwWoODoOdUvLlVthHTulLKkTtjJzZUuegnNGEqQwGXxgAacCHhAOoTtJjdLlDuUwWTjJtXxCcopPwiIWvmMVfFzZAavVRrwWBbOQlLpPqQsSERraAeFVvfqMmHhVXxjsqTtQLlSJvlLMmAZzaIuIiUiZzcQeERhHrqZzOvVSsoZzUurRTtgZGgzGMmMmpPWiIwCYYyyrxXuUGypPYgYyJAsSBbxkKktfFFfTkUuKKkNPpndDhHKZzXaesSESbBHdDwWhEDdeWeEwLlWEelLiIwZzNbiIBbVvlLsHhSxXHoyYOhkKrRSSssKkvnNGOogRxBbXhaAHMmfaAjJsSlmMLmfFMFlNnQJzmMZJjGgrRjqLrUyYTUlLuuUfFmMtXxjSsJSWwiIsuBbVvIHhHhQGgqHZzXxhqJjOonNkKQdDbeTtEUsSAaYyAshhHJjNnHSjjJJjWwzZJPpINniGlLNnmMgUuYgGTtyanCPpHhWRrwcjJXxYyaSsAQqNoOMZzmGOogWwztTgKkGTtGgMmGgkmgGMIpPkKHNnheIkKoOiKGgyeEYWwpHhTtbBPLlkRrERmMxxprRPsSaAiIPsSpIiXIiKAahJFfjBSgGUlLBWwbusLlrRbmMHUugDdGCcksSdDvVMmdBbbBDXPpPQqZxXzOolLtGxXPlfFLpgTyYQqjQrRrnNgLlFfRrfFGRXZKknNzxqfFRrBjJEebHhjJHhyYxXzZduUDXxXBbbBxRnNfJjJjwWFHhvhHVKkrJPpTGjJgXOoxeEsSRrtyGgzfFOOoEsSTAaFfthHfibBIGSsglLwWzEeZiIGdDRruKkUgGmyoOYMjJgxEeOoCczZXaAaCvVcMmiLlOHhoImMbBAugYyLliIGwWHnNXxhLlJgGjeCcfFRMmrExiWwIJAajXiIUucfFCrDdVvRUuaAsyYfFYbYfFMmhHiIyBvTtoOVSQqQqgYyYjJyBboOwWGiIHIidDdDPMmphdDdDvVvVslLQqzZAZzalLcGgCcjJiICHhOOoqLTtaAlQlLhFfHAaWwKkGgwWEeRpQqPWwyYpPIinNWdDwrYeEJjCcSsYyvcCVnNCcGqkKQLlockKZzCiIONhHDXxdEeCcxXsSEeUeEuUaAujAaJuMmUXvlLVDdxnnNoOJfFNnnLZzlNTmyYNkKjJnzZMtvfFLlIyoOYiVvPpjGgJtTVjyYwWEeiIjlLlbBdDgGsqQSMmljJjJCcLLqWOowJjQNCkKHzZhnNoOXpPxioOIHURruhcnKIdyYDijUuDoOdJkKSmMncCNRrwWsPpyYsSKkdLlJFfgGAaTtjVOovwWkKYyevVWwQqdQOTtqQAaRrGgKIikcCeEIixXwzZvhHVWabBAaXYyYLlVlLvyJjEZzIxIikKZzgXfFrRQoOiIqZnlLXxQoOqNAmMOEeoajJuUzZRrCejJEPpJaAjhHvVcAaGgnNnNdDBbOonNebBElLHscHhvVyuUYJjxXjEVvZPFfLliIpzYyRXxGgvVLqBbYyQlVvZzLlredIidDDJjjRkQqKwUuVWwvWIiroOqQAvVaJeumMLYyFflwrIiRVvFIvVisSfEeDdcOoCWGgqRrmMGgQkvVKeESkKsrUuRpWwKksDdSzZuaAUAKrRkaJAaDdlQqsiISKkLKRnNrkKkIYXxiIGgyfFIOowWsStEOoQqwWRrejJXLlaAxTiSsUdDqQFrRfpPBuUfFXJjtTxOlLpPVvoFfWGkKvVzZAnNaozLlNnZOggGmMLgGjqrRQSsmMKUuhBblcSsCScCsLHWwDFfdkJrRcCuUtTNntTlOodxXDIihqrXxRyRrHhYqQpPQfroORjJFPrRdDAauoQKkKkqOqUuQDdUhHMmrFfzZRpHjJNULlBVvGRZzrdDaAMMmmaAddfLlFwWUuRhHlcCVkKvLZzEexXRsSNnLlSseEIieElvVLjkKPpJGiLlUiIuIfZzQqFfPpFTKkiyYITtYymMrRtMTLltQqwkKnfgvVzuVvUpEerRgGPZlUuLlaAIPpnNTnNbBwMWwmWtiaKkAvVRrzjNnTtJwWZwWjJcGgAirkKGgReNbHhGgWwCtTcBdPpKkGgsFuUKYJjALlCxXcrRDdWwAaamuuUUmMBbMGoOyPpYJjgydqQDvZzdDjJzZKkVkjJRyYrBEebtTXtTTVVvvtxLDdqQlPpMzbBpPSsOoTtdDZzZkyYKOEeokXxHhKLlmkhHpdHhoOeEcCTalLAtpPFfbfFBszUuZoOyYRrrRAJUuUufFjGgeRJjGgrBbnNLVTtvlhHEveXxsSESZzsaOovCpiOoymMYsSMmYwWFZaAzMUzZumpPMETmMojJebBXxKFiIeEFaqQsAtTbBarhFffFRpProOIiVvXxLlgrRGGDdCcoOgHRrOoRPpNpJjPtTWwnajJIipmMwFfWPFfhuaAUrjuUJDYydNYyVvaAnNMmTkKtbBdDnLlpqZzQPaPpBbAVvWnNwNjJrRnbBXGgxRdiIDHxPxXnNaApSqaQqAcCLCcrRlrRSsgGgxXtTnomMmMKklLHeEAOoalLTtYyZosSYcCGPNnpPpQFfdDqglLRrFfKklLiIAacbvVymvVMYBhLVvlZGgmnDdNOoMwWjUmGgLXOOooxHMmhBbYyQaAqIibBhpPHMmlLfFOolUuMtTGgSsByGgjJovVOYECcecVvCelLOomMEbrRSshLSsBKtMhHmTXSdDmOoMsbBLlxqkKQkPpJjQVvWNwWnJjwJjaAOoWzZYPpJjfFywNWoiWwYGgyrNnVuIvViwWxXAzZaoORrJjyUuKkYgGIQqiInNUuDfFdLlvTtJCcjVpPmMtTNYyneEzOreETtRWwoIiFfrRYypRUngOofRrbhHBFjKwWkUaxXAXFVvwWfxXxLlIizWIiXxsSIiwmMYKkeaBAaCbBcwiwAaWIjJeiIuUjJEOoYyIsSipPAgfEeFGNnjOSsopQqbbIizZBzaAZOoTtzLgGlgGwWZBbPPTtpsSrRAapjJBTEeQqGgTttVPpmwWMlVGlKkiMmcCIdDCcLvVYyIqQGgbSsBiCdVvvVDcskKSgOoRriaNnAjJIdDLtTlSzbBNnuoQaAquUmMuzZxgtvVdzVvyCPpiICcoOEeiMmkKcCenNVvAaRrlLEqYiuUIIdDAsRmMUuOoOoScmMkKCsoOuAaUYyHFfhuMmUxLyYrRjJmAYyYyaDfFdllLkKNpPvsSqsSsJjSQQcCeEqjJZzVygGxRriIgGXYTIitcFfWAfFuUdheEHSaAsbzDZzdZNnvTtVXxpNZznPBwWfSsfFFmQvVQqqyYoGgOMZEGgGgezUrdKkDBbqQRlLrUuFfRuDUucCSsgYyMmPRrPppGVOovCuQqqSsQGgKkpPoONMmnxXZzNKWWwwvVrzZnRVvouUOrRHhRrdGgDCcrGzZkKxpPQqJjCCFbBfwWcYFfycmMXLMDdmlJiIeBbElLEejYwAYynHhzztTGxXgZmrRjJkKFfdDiIzZMSscCtJjLlVvTtjJcQdDeEQqhWwHTtORrkklLGMIimoLSeEGgtTslOKkxXbBTRrAPgGPppaCcCcCcCcwWtdLlDPmMXKkeExDdZNnNxXnNzZnzZrGpbHhBkKbxXBXqoOQxjBbNniIJoOzZShHsShHudvVDUXxOJjIiyYoyAJzZjGgapPtTpOoPgGMKAayIicCrRCaSsPpgzZCmMmMNxXjJnckKBdDrRbLlsSmMCYZzCDdcBByYmMxXmMUunUpoOPrOiIowWVvrRRuQqvMmnNVNGgTonpPGxXKkTZKkOozjPpJZDjEeEeJoRrzZgLyYQqlsSVvJjLMXxmNUulLKsSkgJUnKUJjukrHuONSmMsfFFfdDrYyRgCgNnbBGaAcrRmHoHhOhMGIiDdIkKCcgGhHwWHMCcmlLhAahyYFfdDGgFvJjojNIdwWDiUgGuxXlGgLptwWPpsSpPnNUbzZqQxXcWwnNbBCsSBuaAvVBbVhHGJIPaAzZIipiMmkKLTtlapKCcJjkHmIiMhzjJViIvPpzZZtfFTXuUOLlITtxXHhbBzZEeGgioiIfFTtQzZqvVCMmTtcuwaAXxQqzjJQZOozqJnNnYyoFnNfWwOBbJjBbZPpSnNszJCcjNuXxXxUjgMzZPpqtUuTyFaQqAfhHNnTnQwIOQqoxXitTRTfsMmeEVRrvZzsSnzZORNNnnroGrSQqsFfZzUOorRHhmMXxuIiZgGXxnuUNaABbcgfFGCcsSmyYMXQIiqhHEUueRrkKmMXxDUuEPptUKkuQqTrRigGIjyYIwWZzByYbiLlqQQqIiKGOqQoDQqIQGSsHZzhVvgdDhvVPpMpbBYsSzSsYysScxXCEgGeUusEeKhHVjJTtvMJjTFfnbBNmMtUuvVqQmkSRrwrCcGrRtTuUXxPpgsSPpbBOoIiHrHhAaRKYyAHhKxXkcTtCOooAaGgNnOakjJSslLGpPgbXxrRzZBpPtqFfzZQDdkKcQLljoQqOJxXEwWeyeEYqgKkGCgGpdkMmXxKYyGtaATnNgmCUvVulLFKkfcWwrPpjJRufFpPGgXxaGcCbTtFpPpPLOoIbLkKlFfGiIAtTatgaqyYPpylLTtTtYwqMPpMmmuuUUQEeZzcRrmMlefFELcflrRLTWaAVwWRFfAOIilmMtTeELFfmJQqtWwTcCUuoNnJjgGOfPDShwWqCqQUXxuRrRkKuUCeoOmHhsawWAthHHbBiIHNnbvVBhXxwWrpPVvRKSsdkKiIDkJaHhLlFTDdtfuoEeOWwAWwOoaGgeaAPplLNnqQrcCTtgNCcnzZGrkLlzJjMmeXiIxEhVlLvUtTKpPkHfFsSfFALlaWwrOlLbBwWzZNxXveEVnBbQqMmAmMFfajBbfSsLlQNaAAdDusiImlLhPpHEPemXSsbBRrpPxZlLzmMZzZwWKNnkEIvVJjEeAaIaAiPpYWwozyYZOyUuOoiAabBNnxXgGQqOoRruUMlLTvJjFfPkKpZOoVpPvDaALlYydfZzWwqLtTGgkKPNnmmMMEeKkyYfFLlhcCHqQRrvVpvsSkKkKbBVtsSTlhHaAQGeERmMrUuaxXGgKaGZzgCXxOoYBAUAeEUzfmMrRxkmpPkMmAaKeBboVvvVlUgXXxOovpPVofFqQykKYOgGxDdXrRpPsSLlboNNnrepsSPERpcPpoQqxXOCwWDdyYAKDoOIicXxlLrnNRgTtiIHsiIShrRNnGTXwvVgxkKenNEhKkJjtOkKqQPpRrZzpidDErRkKcCevmMrRhHVIsSPZzeEAaoixXIFXxYyxaAXfxXjJSsNnNnqQqUubBaqmMjJQXxKkyBbYBbYIisSEezkiIKZzZkKRrxXOopBbRrPkKAaHhvVZzZNJLljRraAswkPpNvVnoOQcvVMmxXZGgzCqUuLqQcCIGqQuUgcgrBbRgGGxifFaADGgejYyQqGRrHJjVvQqhQqiyYIMmvVuxFVvzDdKkUQquVRrlLXkKxvViIriIRbUuBNRkKrXxZSbBsDTCHTthzZsoOhHSyUuuTtUTnNlfFysvqQVKHKoOlLkhkWwGgEzUJEOoTtHhhpPHYyyYwoDdOWyymrRcjoOJYMVvmyCMxNnlnNLPTtpXZzmIilcChHXxIbBinNLMXxoOCiIzKkBnNnNWwxvVQnNxVviIXxVvZznNgvVGlLCaVlLdsGgGgiIhHstCcTNnSqMmIiAaIihHrRyGgVvmMYQBqQDHhdVZFfzvVeCFfcDdEuCcuUqtTfFtwlbWwBLMkKmphHaABbtjJTJjdDgGMmPtnHhoONEHhFsSfmMHcaGgGgWwwWAChWweEeziIKkAtTjJgfJiIWwUupPGnNgjXyhHeoOBCcbtTiIiocMmNrRnCpPUugGsSmMLlpIibdDBmMPBOoAatHSsrVMmpXxPvDdmMQjJCdeEDaAcqAUueAIAaLCswWbpiIdDvVDdgJPptTSpvaAXxPbqlvlLVLwWqCJUxXujOzZhHTSyYxXVqEyYeYyfVMEezyYxXZQqmOoYyVilLCcCcHhZzJTTtteEiIjCcsSKkcCwwEjHXxhbBcCutTqrRnJjKkyYyVvbjJgGJmaAMMnNnNmXAVHhvMVvmaxlHJjGgHwxXOoTPaASeEsUAaoOGgtcfFCqQlLbBTxXSfcCcCKkvVFHJjURrDdRrnXxNntLlTvAaZztTtBbewWElQqLLlTpdDUpPJjnNWwZzjFfTtBbWswWSwBbUuCcJzZaAgGMmdivRrvVQqjMfFEzIaAKkNnSqQuUXxutIWwEzUtTZzgGrRtTlLuTtfFUFlLxwFOofNniFfIcCXRDDddxXrYygGGgNniNoOZzLleVvBbMNSZnqQNWVBbVeQqizZfFIEWwvRXxRBbHhPDrRIiLsSRraAliIWEewZzpPAaMmZSscScuNnMmrOXxcJjwWSpPsCmMaZmMzjJUXtTBGgpbBZzAaOoPSspPbbDVvVEYwWyXVLlvwXxxiIgGqxXjJtTAxXjJBbaiIyYFfQVyYxqAaQKvVkdDXJzZjAaHuOkJjKfFwWglJjHcCSsOojXftTnNFxWnNtTjJwCZjvVJuUbpPBzfNxyYQqNEeiQbYHhyGgCcSmMfFEerRpPZziIfHVbuQbXxBrRqMoOFfmMiqQImdDZtwdDWyDMmeEvVTtmVrRtFBoObfbBnNTDoXxrAaSsRfFMmlEfFeIvViEWwVmMvmMOSsyYWwVlLPpvRrcCLfBpWwmtTzZaBbATmhWwHAaMMmrRTSstTOoAadpnNPwWGHzfFZXxBbCWwcnVvNkKVvIeeLlEwkKGgWCcEHtTblLBDmMdvVvVTXrRyYxgtTFyFfYDKfFkdghvVLlOvXxVoeJjcCJjRyZzwVvWFkKfNnnNxXKkSsoOiIUuUYyuYrtzZTRrEoOTtYCcqjSsJqQqQjCccCbBrRlLCVUrRuRrPpRPprvpAUTtuagGqQxvVyYhNnIvVmUlLgGuHhejJqeEjbBJZoJjlWwUvVJRrcjAQPpnNMDyYNHaAhnPBbvVeEBsSMmxnNQqjJrRXwuUWLQqlVvTtLAaWVaAvwbqQtdnNQyVoOHeEMOomhTteHhQdUdDgGQqHQFfqhivPpzcCAaZVZcCxJjXxzMmoORrKkDubBUXxtTlWwMfFYyJBLQqHhiImxGyjJYgnNKkbhcCGgEeSBUvVlLtTJjuMMkKmmbPvVpBfFLKFAafMfGgCkKmMCcYpZSXxUuurLPplqbBngGhhbBVvHHIinQqmMJLljQqlLnNNQqjXxJsSJjLlnBQmMqxyYXCcbmMTpkKkWHsSsrQEjJmMvKBbaYdDyvFfLlbQqBGxeEsSXLleuUKZFzZhHGKlgGoNneElEYynuUTtReJjErLlVvsCcSSwEeWdniIJzZjIiBbiYyBxXbhHAsMmSiAxoTyoqQdDdrRexXEDikLlKLcklLKIiuXEoOenFfNEoOeCiIcYyxUvdDUThtCWwDsSrulLwWGgNnNsSgQoOAGgcCamMnBbomkKMuqjJQkrRcTDaRrAcCdyjRryYpPZtTzEeVvbBTeEtNQqJjnRrDdqQJfRrWwFolHQqhUXxBGgqCcHxXhEeEMMdOoQqKjJJjQqFfNnXBeEqQiImMTthHzEeIivVJjUuwfujZzHzjJnNoSsOGCdBWamAPpwQqzZeEEPyFlOjvVxUucfFXxXxqOoWGHopsSfFPeEIYKkygGiOIiZGdDgzGkJjiIYFfNBbQywWCWdDtvVTcCeEbBLChHlLKaAkcUgGjJuYyHhoOLBgGbrRlHHxGgQqFkoOKffeEKkFquURrVvkKkuUKyLlYRGUujJCcPpyirRaAHhIprRfFyYdDUEeiIgOoGuvVPenNYywWxfFMmyYXaGcXxCYyPvvWwkKVVxQqXpNpnNZsSAFRrfateEcDdiICTFffOoArRajeEJOoFzWwKkPzZnBwWbOmrEeuDyYdnNhCPpuspPSrRUzZfYBaAbdkdDyANnagBbwMmWQUWSBrRbWwdwWDGXxgsxXwBblYbByraAPaLlAmMxXptuUTTCquUQDbBbFXxDKIVvQqaDdAQjyZkKqQOopPyYQqpPfOVvKeEtTuUkSlmbpZgGweOxIAaSlLqUuAaIvVicJjCSbBseEfNQqekjJAaKgGGhHcCvVglLEidFfDZzKeVfFZpMuUwWJpPrRzqQPJKklLjicUulRrQjtTdOLloJSsyYyYaAnNtTYSCcDdsSsyEelXSfFsxCwWDdckKVvJjAaOogGXyYznNZBIIMmiiRrRYHpPCcmMfUuWwFJDSHhkKmpPMlLVvIjJIiiNnfFvLibBHqQhIlGgghHGxlQqvVKqWhHwipPHhatTCcFzZfeElDGgxvlyYLVXrgGRyYRrERrypPlcfbQpPcCLlBbVvBjJgGiAaZnNcCBbahHIiAQHXyYuwWezZEIizZEBboLBOqRrLlQqLltTZwoAkKQqrRaujJUcJjCOAYZlbBkmVpPvWmzZCbBVKkWwOyVDKSstTxXYfKkajpPcVvCgVvGJvSszDYjJIiydiIHAaSsAXxAItBbTuiNYTRRrbBMdVSsOovGQzUFfEeuOXkKmZJMeEglwccClmQosSILAFfOPpAaosSPpzrcmMCDdyYGpPcCgRPKkaApvHJjgjJxrRXEGgeGzZiqQMZzmIKkMbIiWwJNpPaAqmMuVvUkKrcCJDcCnwVvnIiYNnBbFYZzLxEeXlVExFfXQIQFEefsSqUwWOEkKeouwWiMyMmPpjdDoOXxJYkKlcCSscyDdlLDQGQVjJvqgqprYyRdtTcCcCaCmvIiMmuFsNPaHhtXdyOOzHaAhjVEeDdMmhHucCUvPuxiIXUmlsnNSifFIVjycSIisCYJRbBmKkQiIqKSNnsjJkMVyYPptTmMvVOopJjJjPftTIiFaAvGgHhwsgGSTtPtAEeCOoZzcaiINVeGkoOKkyOoBbpWypPyYeqQqQBbVvEmmMoOUuiIHCcqvVQRrsdDzUuZVvShKktuUTxXMtTDbSRZzvVkgfFrRlHoZWwYyIPoOoOHVGyYbrQqkdStkKsSNyYeLlHhEmMLlxnNXCtTcQFrRkgVFAayYqQhZHhzHjJeNnoOsSjJEfEetTySsnvVjqQNUunJmOotTMmmMBiTtPpfQSsqFwQqrAhHYyijSHKkhWMmOoUuUHbByYnNjJbsCcAwQqWunYMmSRrgGqQNnmDdVHhPpBaSgGgRrsbBuYyqQaGcCPiIInyLBxXbpPkKjJPoOWwOTQtEabBRrvVbBArRXxegGIJjPqSsbBNnJjQpSMmgGvtTVNmMnLYSHheEmfaAjgGjJqEepPRrHXiPpItTxvlNJjgjJFfrRGBJjFfLNHhqSsKkEvViIedDukKUGgtUuVvKSsVmFOoQZzgZzpPnNSrwgGDvIGgYyOhHkKdMmVvgGpLyuPpUgkKPpGyotTsfdDlWYtWieIxIiXPpixQqFfZzSsJjzgortTROoFfqWwWAaWPpwiXxhHeKkEHhXPpiIpNnFpGgWFRDLgGKkCWKHnNhzZwWMsAaJjHDmMmVCeUqQQiIyjJeEQqKkaAAaBbmHWwhMTniIXgGveEVXxzfFDMgptFhoXtTxyYYyiEewXoOPpHhOosVvoOWwbUuBptzZTNnKQqbBfxXjJUXxqQPpDdDEemMxXduBbQlLRrcCglbBzrwWzZLlRJRrvVZoOznDdiIGniKvVfFEekcDdWwUuCWcyyYdXxDjPpeGRrgAuUwCxTuCFaAVnNeoOcWwCyYkKvVvGgpCjJctHhVvTPgGEeIrRiaAzZLlzOoCvGgfsSTtcClLZzLlfhBwqQWbvMgGRrlLNXxbUuaAhHJjOoJqQUujBnmfweDdHhEefLlYyFKkNlquUlLQHhAaeELlbBkyYwzZkKCZzWsiIBbSwrcCRvVMOomdVvDpZzHhiIPCVkKlLGgbcOoRYaAxXKtUDHdDhzZaAdHhyYSXxsuCcCvBbPpvUuWwEaQVvFfhhhHdDSOjuhnNQeTLWwlxhHVvshHKkSbOhDlLdzZHuUoBwWXDduULluUtTUaAtyUuEeaAwWYVvRCmLkKuOAGgaKkZzoeEGgbGYygmNWyLldDooWwOpjRJuUjiIEeMmraAjJyMmYyCnFaVNqQYhKkHwWhtTsSqeEtTXxtTRqQfvVyYImHhHaABbQZRwWhatTAnNHMhOrGgRsdDOLlhHzcCrRCXxGMmfFHMmMeEmhgYDdydDKknEmMxKkXxwWxXuCcUbBvzZdWwSsmNNNnDdNFBbfGKkgRrQDYeESsrRqxXxXLldDdxXVGgIiQqpPTgGzZVvGDdgGLfFlgHyYEnNegIdoOZzDirSszZgTtGZMgIiwWkKZiIQqBZzbuUvJytHhTKFAGgafiIEeEuUTtexoUuHcChNnoOJCcjiSsnHFVvodDOzLIoOHWwfKNnaAkoOFvMTaAtYyUuJtTLVzZDcCfFdOokKjJgGdDvhHqMmonNoOOQFWwHhuUPpHhNkbBXSsxjJgVvuUMmSfFMIgGinjJGvzJjEkzZaAWwuawWApRreHhwWpPkKlZzeWwHWbBYymMRrREdChhHtooOQgGqOgGlrRLqQMmCcqQBbvpPEePpnhHnNIikWwKZzNkKxXMuUwWwWxeEXKqQGXxuUgAZzaziMmIYyGUVvdDGVgQqJjLeElvPUDTtrtdqQjkKSsJxZndMAauDIidUxPpXWaoPXxNnpOpfFPDdcdDClLAdMmDSsjJpPKMLjKahHjJKwWKrRBbeEDdBbaTfFtGvVgzOovmMPpLlkKnjdDJNQKlLSGgsLELlIiWwDJbBjwWdSrRofoOtTFbBAVPNYyyYEEtTeeDsSMVvgkKGYDyYuzZlpPLFfUgGcCHhUVvwIZAacCbBpPIdEeoxruUiIgQYwWnNkKWwyqLlEAkKBcCuOUtTbBueEKoOktToUOodDOoujJeEUzXxZaWwnNAeEQGYBbZzyDEDdBrBbRbFsYyqNWwXxnMmQJyYjVztnLBQqbgipPJjMmuUqBbSsQzxXRrnWwnKVvkjBHjJhOoFfqQbkKnNFfWVvwkKQqRrAaJjJLltTltTeEsKkLiIeEklLENnNnefVoFQqfOJxiIMnNQFZdXCLlNneEcvzwWORAaroVvIjnNqnNQtOInJjsgRABbzZPaWJjwAUuQqBbKCczZthIicMmCrRXjJxcCCNnRyDdSqQslLXXxxCzZVJBbjbQqItTKkitTzehXAIiaAyiKkIHOTtYmMuUkKXUuXxxeUuEPpyGgNDKkRrdnqrHpXnNEnNekKLlIgvvrRNnSrYJjzrUCqQKtTGZzgsSgZvVzGyEeYZzlsEeSlsHMkrfuUYUuEsHAabBhSgzeEZkYyTtKBbBbIiUuBbhHKIyJjJjKhZzVvOeEhYAgpqTBbwWBblBbLTHhqQcCvarRoOZzTpPCrRcyYMAauLkKlUGgvkkWwKNBbSbaABZzMkKmhUusSkcRtTwRsWwSJfFQqqQPpjntdDTBRuUAiuSsRPNncrCcyYRuUdgGDIimMRrDqrRFucCsYyEKkeYxUuFQqzZLlfnmxXPpcEIiEeatTkKkMmKwWmGgMMbbBHNnhuUKhHcalLACMSSDytylLzMmZfcCVHhvbJjMmBQqRBUuzZbSsaAtTGKvVkKwSsHhWnFfNzqQgGyWaAeYVvaALeEdAbRUHhrRzZuoOrGgaABwvRdDmMCesSEciIrVYDdyBMmbRSsrisdaxXvVncCKOxXokKknKkNMdhHFfDmOozZoxXJjHhHoqQkAKkGgFfYPpHbBiIoCeEhHHBbhWwqQRQczcCZCZzVvdJVjmMfFvgcCFfcEesPuUpHJjhJiVvILYyQQqChHNfsnNJKKkBtPJjpcETmjJoOQqmzZSssSSstKkTzgGJXxHhqQxXvSdDdCoXoOcmAamMRxXzfFZWjCcJwjhHJMDdSsKkbBmizZITigGgRrGhhHrRbYyRrTPpzZntTIiIiGpPWHhwgYFxNaANnrrRIuUXxfihDdAaVDdvDdQkJHhWweEjUvBbVfFAagwWssSNZYyTtIihCcCcDNnQqFmMXoOfSsFdUBbiaAaAUxdDutTCcQaZzAqEISKhWwMmHXqQUuAbUSyYssSFfGcAasSpPlLCcdYyNTAfFtWwrRNngGTvVAIJgGdaEtQtEwSsWseUhHWwWuUpPBbwmhHMpCXxcGgxMmhHTrRYAJTLDEeaAfFFHlrbuUTtBcCRreEReEryZnnNFfbmoOMxXBmMNuUtxGKkKkgsSXTMmthHRQqrZfFGxXgbBNMsSBbHhocNngGqQOokKZAaiImpVzXxZvsSdDVVPwPsojkKMTlxXLtfYyFjJjqQjJnNMbBVpkKPFfdDvlLJTtCnNzZsScTwWyYttTCcjmkzZoOtFUfFTImMitPpKkQdJjDqJjuhGgPAaDdpQtTlztxyKJjPCSZzsyYDdcjJpxNnDWwdSJjHlciKkSKkMmKkseBohHeEQqOCcSsLQeEIiUqfFpjCcpPJPFfFZzIiPhNntTkPYyIBGgbZziFReYykKOSshHoLlvVcCUSsTEetwvVWyYLlQNnqgGMELlTteyYmebmUupyYquZziIUuUtTbaAqnNJjyYQdlLVvDwlLvAadnRrKpPoOmMdYyrbBwtWwyalLWwvfFUPFaUqQLluGcxXfZnMWwdIiIiWwtmbxXAyYaDKkdSzZsDKPWwrRphHkImGgYyMOomiIrRiVvspDLtTTDdYyyElvVuzZoOjbqkKzWwsDASxaAZgstrLxNyYHhzzesISHhsixdhHCcpPwuLhxXClLFeEHhOorRdGgOIzoOMMmmldvouAlLaSWZaYYgGuUHhsvOoFfWBbJeuwWUQqpmEeMzBbZuSsMmMmIiVvlOiIpVIhHhGguybUuXkpKkPukKsSEzZeVwPpWjJJjSqQiyUuRbOoySgfFqQGdKkDsEJpPjEehczmdDUuCcuFfUkcCKGpPrRFjJfgAaGdDskUuytUuxaASsDpfFGgtToOxXarQhHqRCKzWnfFYyhwZmCoOcMEewWRHhCcovyYVzqQkKfzDdZbBlWwLhDFqQZAtMmTIQjnIMmiqWMwxLlmTSsXxtUugngZEeGivYyyYVvWpPwCVZFfuUCGgsXetgSsmMoJLnNJkxnlLjCOyYoWnjJeELZzlUKkVvGTvVEeaAtqEUGaEBSaAsmMbPsaAHhSUrTtYyRLlZJSqnUMFfRrlZzpxXPbBZzHhrSsTtxXUusdDasVgGBsjJVRDoIcyYgQqbBGGgtdDTGgZzyLyUGgxXtfFLlKaDXxEefaANFfnELOitOotHhTLDdtSsgojuUJrxmMEYspPgGrCqQNnGukKUzZLlDdKNndVvPpDQqkNMmyoOYTtOkHhDIiHmMXlkuZzdDWDSQqyqIhGaSOuUosAVdXxJjDmMwWTtkKRrKiIkARrsOoSiNnnNIBbAadyYDTyvlqQCcLVNNnMAJjaeEHHhnrRWyYYOoydDnNzZIiiLlqqQQoOIVWwgvncCNIaKXxtTNXCcmMXxrOoxrcVsuUSaYnhqQqoMmuZMsBblLSvoOvVHgSsqaANnQBvVbGgnzwWZNFoWwMYyQFFNnpjqzLlQwAbsakIPnnlLaAXXxuTtYJjWwJxXEevZJuhHUhFGgiIXxfSDdAaLuEYyOoatTJlTQqtLxXgGKpPwApqpBzSyYDcCdszyBPpktTpPEeVZzvHxXOVoVvgtTcUdGhHEehHhcFLlLqwWXxixXIuUalHRrtTRpPWwMvVZztNBlhzkKdDMmojJKksRPpjJamMHXxhHkKhgGMIZXxsSKkFpsTZvGgSsOKktdujTtJUwWDpPnNHlzZTtnTEOosScjohHJLlqQiEDviScIieEJjKfioOIiIsnLlvkKtPKkrRxXkCcYYypjJPREuhHUjJQqXxrbMAamDdygGYzZODtTDXxtJOoZsSzUuOoDgGicCfeEWcGLlgCXSOoMiIKMmkjSPAaLlcCXxlLpkKsJQqpiDdXxEatTWwaOoavFfXWwxVrRzNnjqdDNYTtMPjJdzZPnPwZyYoNnWwPtTEeYKQBKksSztTZAaBRYPZpPqQzoOjJMHhdDMmmotTEexXOCcBbYyYyphxdrRDCrpPRRadzgRuElLlLBbhHyYCGyTtSdUuLLPUucVLnNlzZYylBbTtGAGIxhHXqzZQitdcvVtdMyKNKkXQkhQdMfFmAvVXxBNJjJjxOoMmRrTgGrhxXlLHRvHVvJNHWwhbnxbBXrRUxABWwqQbUatpIgGBKkbFnXxNnNdfFFQJuUjqXWwNnxfillwzCkKpcWwCPiRrWmMAaakNaAUfFSiDdzZTtcCGgdwWDqQIqQpPEyJjYeuUKkqQGKkMVfFDFfIyGgTGgDdtvbvjLjJdDhUkKqQWwpPuPTPuUpMmPhCHhHmZUHjJYfLlFKWUuFfwJjViuUiTmSiHUuFfkLlLrofkAVldDUuiILHoUujJeEHhgVvcCdDXICUuciIiwTolBbPytyYybqQtTBgLluUaliIXBbOYsNjTzvtTwWwNNnVvNnMmcKEeNaAdqGZzcBMddMIiRAaJaAvVuKkqQkQXuUxQnNlVvQRjJEetIkKfFQqSSssLoDdWzAaghqQHGBbZHtqpPKkdDLlZVviIzZIWZQqCczKcCsjJSkTiXxVvAaJMOonpPNDNnUuEAvMmYyVBbKnUuNiIcCRepRrZzeBqQJrRjMmaPprRcWquFfwWHCSqQFSsdeEvVpLlhHIinvVNXTtDIsSPpBeKTtRrPpvqCGggDtfxhHRrQoJCutTtTQqOnNoJoOeErFhPlLQVOHhHyKNKktTEyYYyyNnaAnNYlLkKsSiIgjIiLlEfqQorAuUaRfeElhjJHzhHZtiyabhBbHQqmlsMHEejJlLsfFkEwWHwWFfrcwjDOeEIQLbZUUuTtCcuCYwWPkhJjjafNnFmtKZzkgGiImmsPpyYKBbkKkgGSyvVYRKkaArPWaHhuUqQamMAZMmwWlUunwWjPgVvNnbBSKbBvVvutNmfFjeZqpPaAQzkKHDdCYySAadQqYyDafjzxXwlljmMJLtmMTLEulxdMYyWpCfFICciDuJzZNfHWUuwclLFfaYDdSZDqmMXqKkQKCugHNFfnhJEJCcBcCbjEeyqaAQLJGetvCcqQKyYDBbGAaAzYymYyULWIQstobBBWUuaMRvVrRVFfEeMXZgFqFaJCZXKOxbnZrJKkDRroKkauUEzCdDeEzZevUwWpPdXxqQjJDGsSWwguVcCCRrBlLpPQqigvuJmMMmQEoKxXkOugHjNSsxKuOkRpPyOorRqQHhlLQzkKtToOwWPUKhrRHExNgGXxhHoOpzrsSjGgZTtuvVfVvjRIWwhEeHxIxWRCCcjXxsCcBbegbBGELlURrnGgmMWdIMhoOctTJokoIiMmdDaMgGnNGDRdOJnaAovVONVBbRmNJjRrWpJqNnxdCJdnNQqtTPFWwyYgPmrRUZpPzufKkRrtxXTQPepZzPFrFNtpPYyPmMeBbumMkxXKUCKkEeyYmMcGgCgGHZzFfYyRITHBrRbXxqQcpPznNorRMmfFFbgGsSWwFFfNnfFcPpQAapPkKKHhSeECmJjXxJlLRvVbtZSrZzIGRbvfNGxXZltolLOTsSfFgbnXxxNCmMBbQqFfjdWVvwwjnjJNyYJUkBbzAaZzZSLlsGCcgAaKuPWzoOZcGgNnCIiNihQlpGhcjBbFfLgGZShHmMOouUeEOogGyqjJOnAzvVFbBCHOSTqKgcCQMuJHhjMOeEEQqKlQqnNLYeEMmphHemrRMYyEEePiiInIrbkfpPytwbmrGgWZYJJGgylJNthHSshXiOiIgvVGDdXEwWTdbVvwYGeEgQAghHxXGaTGgGqBXxbQgmMsSYNVvsSRrnHNnTpUuMALlLyYrvVMxXSeeqQOrRPGFfSsgmfmIxXnnpwXxWeBMmbEpcRrpPQclCQvdDVyBOoXxbpYyVSsiIvfQqLlMSCcwfCcOoHmMFfhYtTyLXZzIYDcCqaAnNQfVhHoieEIeCcEMTtUnirXxzZmMJjcBxhdDVTEetdqfFuiiPZdDEeaLkKkLDdpPBsSihSDuNngGNhptVhhTYLlhrZQqFfkOoFuUfEeUuMEaRrCdKsPOyIvABvWpPwCcNAxXankllPpCMemWwKOokuUaDdPpPppPbjJxXvHsfMbBbOgGqQeDwDiICcdrhHGgRvwWVbBWbuGkJTtWSsTtwmEAgGaeGnkKyanNueErbAagIUCiIeMNXxSpPFgGuUfoiIlZqQuhZThGgjJmgPRrcCprQsDZzecCLlEUjJudETOotTxXyGgQleOxNfFVbBJjVNFvnFVLKkRrDPpdhqBbQZzsSNnwKBzZKEePHhyDdMUQerRLlBbNIjZzJwWklAaAaLJQidxeDjJHBvRiIrnOuUAsUlLukvVdDFwZzBzBbZeEfWwwyYoOWFYyuUJjdeJjELyuTqhHOgIiqsmMWWwwlCnNCRryRrYcxXuUcRrpPhzZpNnHEeoMKkckKCFBxrfvrJLcCzbwWfFRTiTtxvVTtXbkvVBJjbKBMmNuNOonNnfFUHhNnQWwhnoOXZDdzgMmpPsoOUuPpTtpPGgSOqQGCcTtrFfrDXcCfIiFlLUuoOytwWHiIhADdKmMmQqcXxnNmMFdOGIJjiPSypcCPhoeOoxyYjodPpDkKOrMjqQJSsTBIldVGghHkBiIRZzwyYWrJJUujfPbDSDNnswmMWGRAarbBgeEPyRrFhHfYiNnlOcCpXknNKwCDRrmtNKYuUyiONnguBTIZzmMilghIKgCYXxyUhHuscqncCtIiyGhdDHIibBEbsBWwWwkKlcCLbfqQFTtSLlBbBGgbAaiLlUuSssvrDDMzZnLCsThHtTtMyYVuShqQqMWDdwbBmYEJPLSsxXkpOoNnhzZbBiImoSshHVvKgKbdXxsSbOyNhYFHqoOWrQzZUJghjJObBMmocFocRfFNvRjdrRDbEeEoKEWwWwYyZPpYVJjGmeLrUuRlbBIiEwpyaAYPYysmZBzZTTttGgOzZSskKoCfZhHECkTtyRrTtTzZNntAGgiIewWzZYyYUdidXxDiIvZzWScCkQZDaAKkdjJjTZDdzkEJjeKSdgGeEaAPSurRUyYsENuUsqkKTTmdcCTYpPyzoOzZVyYvFFfARrahHMmfSsvVbBlNnAtTLvvVVxRxYyCYqQwkKJjZKXTHxXhAjJNNoOSBbaCPpOEHNnzoeqncxHhwaAFfXuTRrHywWkvlwWUnNvnFsTaRrPbeEsiTYyqZzIUKkukdDhHggGGtQqaAmeEFXUBbSFiDdQqQtTqQMmemMOgGcCbpPpPBHeLRZuUlAhHaAivVIhHWwUuadmMntTutDdPZozZOOozOYVCzOgZmTtxXMVfCriaAUSYysmXxYMxXmvVIwWPBbomXQmEiQqAaNsjJawWdDAtlPCcGgptptWwKAaCIiPOWJfFjnjOdbUuAmMUuaLijJhHXxIltTfBbFqKKkHcChkQGQqgjBZEeaDlLdCSsitTtTKiIOozzZZkIdgGsSTNnspgQUuTgGgGZYyjJAtfqGgCYmztTDxXlLgDlzZLdkgGcuUCStUbBdDaAqGzZglLtoORREUwAaoRWfyxwkhHQiHPpzZaAtTZCEyjJTzZIZzjmMpPFUtrVtPpNnOfxdpvyetTPpPsaAPBqEMMmmpPuUzZFfcUNVvORrsNfFmTfIiUuaAVsNhLflLMbBscCtuzaWwNnOijJNnIuQsAGgahHNBbPpnkKnNIikgGGjJINMmtTHpPxqQnHhBTGgjTcKQqpPcvRrVCRrDLrGggOVvVvIPqfGlktTKpPSszZxzPrRpZANnaTiFGgHhUrEeMmuSEQyLRwWrjJbBSNnaEgkKGfFeEMhMmHvFhkKYFfiIySPgArPpEexdOvQYZJjzctmbREKkdDerUubNKyUuYqBHpPHOoAJzsOooOSZKPUSxvIPpiVMWwsPfvVFTtuXxumMOoUPQqAaKwqXAjPpekiIKZLlLGglcoOFRyYrKszZGejJyYLljEvCeEciIkKWHhwQqQyYPpqfAgGamMWkprnDdUZUxvLUgHhsdsofRdTtDXfFxZJFcCzwLMVXdDkrdDqlsSSsuHbBfSfqaAXaMEemHhMPpmuUEoOefFydFfWWwqQaQJfBDdTCcbBacIxtKkToOaAPlrGCeEufFeYyTAiWQrwcMOoOSsxgGNnSsmjNpwWZutTeEvVevVrOKSFqrRiIQJebBXxUuRaiIEndKcCkaAOEeoDBPugmdQyuBFlGgLCSscfPvVedEuUxFfFApRrsifvMLUXDdJjxVYyvXFjJvVDyYdNnehsiIcMmulYoTMsSPQqyYjSwWRrPdqTttTfdDFMmIOoQqVvwjoGgOzRrNQptZzTMwOHgGwyBbpPYWEHFkNAbOvVWtqQlLaQOoUYyhIsNnSxpZiIzKkAamwxwwFpLwYmMxXARrGCcfAaoysxXSYatTuToMOnNEIYFgXitaADMtHmJjXxLhFfUXAcCaxItTkKisSUuyGvNPJdIagGCcAcpPCdFqQeELlfoxFymEGKHtThiIiIXxFIIKphOoXxHhHKkEebBzZPpxXEeuUcLlDZxXgGKqQkiCnNKcCzulQqbXxXRrYjPUcCtggGEwlLWGgaAeZkKzGaATupJdDyYZPrRpPvnzDwVvWwWEtTqHhQKkeUdDsScCvwWAEeMmqAmkKMuuUvVNaAJrEqDvRXxsuUSsMEevVvGgVkKIMVvZMbBeZTtwGZYzGPpAyYwWRRrQUuitCcKFfkITIIUtqQVgGwDdWwWpPwPpWrRyYjOxXJjYdDiIIWtaqZzfFlwWmoNVvZzgGgCBbUMMukFfoOFQqMmhHmClJEeZznNJFTxXsbDGgdBQIpPXxKDdGniYKwWOoWwKkYVTmYVvFoOfJzmMhCcfFlLHshHfFdjJDubHORrohRrcsrmMDfNnJjiqKkuUQJShuUNDdnieEeAaeEEpbaaFIbBijWtnCKkfJjBbTtbkKayLsSJCONqWABpZzJjzCcyLlYrRcCtThsoOYlEWPNnARfwWOEeCcfSsZzPEdDWTKkNiDdulaAckaeEDkeEKIjdQcVlLaMmAyAvfaAFtISsEHkSKksUhOoHuLlAakLVvNnLlCZzMzuUdudIRWzkEefFKatPpWStaiHheMABandlyUTOoHCchCAKkYiWwIQKkqNrRnvjWGgzPpWgVFucecCERrCUDwWLIBMCRrBVcfThAmrXpJwLhKkHdfFVGgvQqDiAmBbKUeEPphlsSeQTyGglLpPlHhjVvQTgcCORpxXrjLlHhobBJmKkEeqIiKwWEVvBbsSqehHSiIzEeXWSsauFqtTvHlTtjjHAaUQeEqrxXvTtVVBEJzZSoOGOogWwQeEPHhHuqqQtTcWwZztAaTCZOXuUEebQgFfGTscCStjAaJqByYHhPpQeVMmLlTlLwAahTtHcduwjJWyVGgRJvVGYoSsRqQvNBXxKqwqIGgAUNnQqunMVghRsofFLTtvVlSsLlLykSsnDIcCzGsvVKkGohHObXkKXxEeIiEZzQqePUdaADnKvVkGeEhTcFoOfkfFKWBbwjAsVZhHIizQqSEcYirXzZkKxtkKMUsKkWjbBJhuwWMmhNnqVwWfFluwYDNnaBvVizkKyjAyofFTtoWwOIiSKkAWwWwAaELlRiIpekCcKoOcIiFNnlBMbbBHytoOcMYyImyRDoOoOdDdsmRiEzZIiGjHvtTVVAdYSFbBxXLmANPpvAafFOfrRlEgGUYySRSoHOomHhkFyRFfLVrkNntfuaBbtPmcKksaAVzxFoiYztcGdZzsShHnTUutKYiuFfAFfaXxNRBbhyitCFJrkBNYYxRTsSrYVvPpyRIJjAgGWwaitEeeBAaOobktTmMQqSsCcOIicCvVqiIrRQxXrsrpawxXWIeOoEilLrpJHhjUGgVjJInTtvVBLcCpzljJJUPwrRqQlEoOexEeRPbBNdGgDwQSshJjsbBnuUAZnmkNBbEesIikaAKgNyYnYmMyoLmrRRoOptsDXxUhFfHtlxXKvoONtAabBmONRrvGPYuUCcLRBbrlynixPvVRreBbwbBKgGbBAaZzhWOoBjTFNmYRrkKtfWjWDvVRXKxXXfuAaUFWwxkpPxrmtFsSfbLTLXxlYytOttTZzTHhDdczsufhlrRfQoOiIqhHvNrusIdKkDSsFXnXwWIYSlLKaeKXxtaKkUzgUuGJvUMDdOoEetEuUhBbrRHhVviOIBMKkyeBgwVmYyHHIirGNseYcvTgNnJyYiIIBvImcCNWZMCoOEbBOdQqOoCMUvKkdEGgDWUuBbEEaKTtXnhHVNsSsglLHsSTVuumBbHyjGGUUVAZQbYEXEVMJzqrRiIkKLMqkKqQUuPpetoWJjtYyPmMcxXuEiIXxMMDdmvVAqRrQqtTsSuiqlCzwtqZnNVpPQqvHMmFfhixaDuUSsnDXtTZNvxXlLVEeTuUfxzASXxgGsFfVbMiIcjsWJjmSsFfMcGDGtTAagYNMNcCnmdWCcTtEezlLMmAhGOogDKFvOoViVvcaRrkKbrRWlpPBoNXfTTcXXxmbBLXxfjuGghgIdDadvVxcVvooAoOkegjJbmIYjwHhWJTKjcNnRaAIbiIrRGiIgmMZafBIizZaAqYhHkwWKAzsDrOoRYzOCfpbuNtTZtlKbBCcGgaSsMRLoOlkKLqSsQlafbrRgFftpuTVvVTbBHPpgGdDJjptnOoYymtcUupMhHSsCYytzZMmThUuHKzVvcxrAAnNvBLRrMZXxAhHmOQqyYoUuJjMTkrHOBbKdDLQqjJmmMmfqbQQOoMWwZzmCcYyqqwyYWXIDdyYicrRPpMQKktTqEjJufXxVGWeayyMYXxOhtbBZdGPpagyYkKjPcChHoxzqQKPDXhHWyjZCfsdZAazTOodZjsSFuVvUklEewnzVvtScamxuUXfZzkjGKcDdqUYyuvuUVnGgnNgLlYyuUuUFiIQaATBXviwWcAKVmMkKARrhQMmqXxnNhHCDIieLDTCgjJDhSsIsSqApVaxXAcKrfFRFiITHhgoicfFqzVsvnoOEevVZzIrYRZpYyPsNsSIinysIilgGlLMFZCKxRrZzXkAeeEfjJFCXxmVwPpaiIwKkPeXmMxJJjvKxXkVjecyunNUkKVdSssbXxkejJlWbBwLUjvAavVOvVoiVtlfFLdrRDNoROfaxIiQRrhHzZzvUuCciDQqFrOdDyCsSSMmRGgrrGaZzAwVhHzOozxXcudlLSskKDvJnEeNkcXxUuLKwWkGgCcVvxNnIuUDyAhxXScCzIzBksEeSKKzeEVvQmPxXcPDsrkzMGBZtTSsmMcoSiIUanNAusALgGlDUuEsPCaAFfgwFfgVJRiISsDqVUAJNnpUtiikiAvVATCaLlLgSFRrkFfaIikKVAAvOrYIiLlyEyFDdUivxXWVZRsSrzZLPxoOEeeEXrREocPOaWvVVLUulFfqQDdkKrgMIBxesSHHrRRkKgSsPlLjnNJtSslJIDdDdiwWvORByYbrtfFqxXrqQnNhELjfDdcxXJGUPIkDXaAxOjJHfKNslLSnZMmzPRrdwWluuUpPCDbBtyfFtItFfmqDNGgnAAtxTHEMjBbJYXBbZwWBbpgCjJTsPpycEeGnNCYWLlBYybNnWtNoOxXDrySsTtDKShBbvSAKtfqdDQhdMmDDVVDbMmcRGMXxmOJjpznDyStTmtXcARyYEnCDdVvGTqAvSHrRhHhCPpbkKUlQLlwWXgGSMmdIivVDsxbrmHhMEKkNTjJHxQQqqXSeiqjJQrRSsMXxaFOofbBnxXNkKjJkVeEDdzZlkKZDyfuUxXGxVgvLLsyQmMRQOwWvXxDIpamdUunNKdDJjrDbZcyZYyMYeEymdZupoONnnNbhBDdKkSsmMfFjtMlvneJmLlUCvOojkKufFUMDEebzGguUcCEVfCvJSsKxXAxXaRLlrRrcTiWwwiIrlLRGgVvfFaAJPwpPWeDvdaARssweKGgsoOdDSkDdjJmYytUzkDdjUudGSPpQqgGqQMTvSsVkBbIiVrNnKkBasSTzsnNmYjiIZqQzusSoOusQgkuDOoAadUCcejQYvlgrxsMrRmSKjaSiLlKAasQuMZAaniWiIRvwWbVsSLJjsSeEpPUPpuPkKhHuAyYaYyrVWLLXxMtpQiFiIHslTAxXfaVQqUAsZvqXGgdIFfQrOWjsSQHbbMiIELguhoQpTOJsSWwOPpqBbEUoCpSsPyYdgGAaRCeEcKJHeiIWHnIlVRMnNFMVvJAFlBbXmnIaEehFfBmmMGrzCiIkOohHllpPspKkjmMAkjIvVYHOohCcSKVgwWnZzQBhgXaWaAiIgGCcwIsYyAZPDdrRRZFsSIQNvEGwCcWaABblqNDeCwaDzZrRPsIVHsShZzahWwgIFXWhaBbPDOodmNwWnEeEEeHTwyYTtUEqTtcallLQDHoJjIihuUFOdOoseEKknNDdnAMzJYKnKUPzZlizZIrlQvdDTKJxXjsRIBblnvVNgGFlDmMdLhHgvWmMJjdDnNpGVvQWwAewvnNDLDMmdbBxFffrLSOJsNnQUFhHfuqscCSJfFEtSmoOMsRrSFHxWanujJVGzZnNDdBKNkGgNppCTgGypyVvYffuHhkmMdAdDPpriIuUbBMmSVdVkPpByYBTOkiouIiUzpbzFfGozZuUVBhKUuBRVkSsKVvRhSszgGZkFbBqaAcftmdDkrfoxNGbAYMmtPpHhZdHdKkDhBPpbFfVzAZzvwWixwKDtTSsKkPmMcrQCOoAacoyYOMzeLksSJBbEngGiICgGrqvmkfDtXTDhskKIkKXgVsgLdsxaPzyiuHASsKkbXfmDjGFhrMSBbhIyrRYislYZHruUaXnNUhuYHMmBbrpxQJLljfCchqnZDdMmASsRGMlFVDdoPcPtTpDdCyYKPpENnMmjeeTtHdDZzNGkTjtTRgAaAaGrJadkTGYRhiOGQqGpPcYArlTtLEexXlyYVvzaAWEqaOoOXxPpwuFfikSyQtwZvaMBfxtTpNnPPrtWwUnTqiINMrjJiaRijsStbvcCaAJVfFSnNpDFmXJIRuUrNmMSSsmwIiWYyqtBbTjreEWHoOZWzZuLEeHhQqrNoDAaHpzNnwKZyZzjFWsUWBuUlSMSdDsUbBQnsCHvVZdwFTtvJjSDMhqMJXUuaARDBbyyYxHCchXYBbrVhyYzwYCdDtiILlLltqtvRLlwQqZlLuluoGUNnBJMotIkMtTmKyqLiNXenUtTuUvuUAiQhcVGiFfIPlLmMgZzghLlIHjZBiIwWbzJYQFOJGHFfkKgGhpdwrRWpPPpUummbBNoVvyetcCTJpFfQqxXdzZDSPXCeExXCGrRLlgxNOosSDEqsKxmbrCkKGiyHIyvLlnNKkwuRrEbBpPJjeNmoXJjxPpVveBAjRriphpMCHGAvGGgQqrRoWbyhHdIbBcDccCuQgGYyqeWvyYKkZrxtdTqYyQhmppHhCcuBZOoMGZGgrHlLrVFxLaAYZzSsbOUKFfmCHkKBbPTiewaMDaAuUdmPXxuUUuSXTMcXvVBbnyYqhjrQfFeUuoueFEXcBQpYhdKYyamMxOEpLlqOOIiybdpqNFPpFFQyYlTtbwWgGwWPpOokYXxlzudlhvVwiVJmiIglxMEebBLlKkVvJksSZiadGgyUmBcpIbaArRulGgJKkjWkUIYyDwWMmvaAbcaBqJPcYyOxiSbBbBknLtbRrBeYDnLfFlaqBNrciMkrTCENRiqFLqfFNmQtgVDhHJESyYcvIDQMgZkmUrRXtTFrKkjJHhHhUvVWwgGtTdRKriFKzHhEvlYEeHpGgSsvVSlZzLsBsUdyDdDDhHktsUCqkgGBbdgGaqtuUIiGJZzWpPRrLllLpkgFcCKcBRrCFbeDkaOjJDdySIiEBcBRrSsLmdxXDAvMeNlEdUuXKYvMHyYMlfFLlLmMmhmViIykxEeDesSLNnnEUumwWVaMyYNnlNnoOdDbCIibesYoAKdEBfcxXEJGIigjeNzZIgGinEeGgbCkhHfGKPTSsJjtwjgIiTQADrRtTKQcmMudDSsSvVTKIiddKkYDuSbAaPhjJyVvbQqBtTLlLVpPeZzmMZkfInhHNRkrDuHWwQqhRfxuRrMKzGmgfFGNnqdmMiVCWwseOojOxXodvGTqMKKkNnXxknQCclfQIrnectRKjJmIRrCRnbQALUulFfNdyETlNKCAacsIXoCpjQbACBGgVcBbCCcdoOxXiuKwLUAaBiPCPpbxXjJMoOuYDAIrRzQqEeKjHjJhmXLGgMmGMjvIWHLDTtAaUZLyBbBhHoObKBGgVvrRTtLjJhRrHqfjJffnQPSzZsDBYoYyoQPeoXdDpqsSfFQPAkDHyPqbCxesSfEAaUOEUuLlqRJHQNVdDvxiICmtxsxXAapMmnNzZZzAKkWEIZztpUuhcMkuLleEoByxXlXwWfvRhNnRWAawzgmzbUBIibYyPPMHtDTcCXRyYzSsWwVwuUEQqUOoZeEiIzCdCiDYBwOgVagBbhcmPHpPhHDdZzPpUuPeYyBbEPpIJhHabElLPpOcCMwWnUbOooOBWeBxXbEGgVYihYIgcpPRBMXkSQedyYCcCcgGnAaXccxpsSsAaPjEYOnwWMhHMDPHhxXgjofWwfFqyhiHGGUupgbBvCHqIaVuNExnIIilsSQYisSTOmOoFfjbugOUGgLUzWOorVTQThwOopPhHWHTcyWgGZTtHvRdroOcCxjmQHmddqQWwDsPpRmMzZBbrVfWdDDzhcSNZzabDdBAquqQmsLbJjyYwuSwfJoOYzkWYAayZPhdOiItTnRjdDJlUwIizhwROoPpJiiIIQFUufMsnijxMfdPsvjVBPpTgGJIwWrAEeqQBbIRvVmnQtNuTRpennNNdDEXeEFbmBbAVzvVXxWTqYsKIVgGvUmMWoqvVDdQAQgGewZsSLusSUGmMgRayClLggoTtIHrfFyLlgtKDSsAtKgnZzhaAEEJjJZzekgGpOvLliIfLAamgrazNQHFHRrhqsSXPRcCJjyYSshyUHpPuxARhzyLSHsmRaAHfgJdQqMFxBcyYCahUIYJyYjoOZvVpAXSDlGSvGOoxiSGVvgKkHdtxTdFKgGMVQRNncCcNedDfFjKlEZmTtXxqfFiIRCpbUFfufFBdkEeWXIZzVGEegaZzZYyveEEeZzuoOUDWuUwzTyaBgMmpKkPnXOFlLbBRKgjJGMTFmMZzCQfzZKVvSlLsLlHrVvvrbkzZLCcyYlHbvvVOgZBPZOIKaWwAotbbCXxcKvtTDvBcCNnbAhHaHhsOjJoDdRWwaSsDmMKMmUFHhFPYtcPPnKnkbgviIUNAwXhfsTejsScCpRrPAakKAaSjoslRFdDXDdldVWEaEeqwGpPgWIigPwVGfLirSktVqHhLfFRLpukNkyjNnZmIiaNSDzZinbQqBNVsSvUuIoPXSsxpfHOhdZzsRrSGgqLAhHCQeumMWthxXeOoMjJpAHwxfiGHAviSpYyfFdgGDpPdAOoWcEKWpPEewkcCdnQLaeoOrREAZzgeViInqidbIibBBNpPndDDfiIzrBbCcpzaSiAxICcihHGHbqNGvkjJsyiSsJKaJqQBAabhHPSLLKkhUzWwZulLHKWwcwKkMHhgGmWZBbGgRgOoMbHAiNMxLfabBjmfmrvLiNhgGwEhjWwkEIiervVDEjJTteeEchHnNOueeEsSQoQBtmMQqTbqjotNnYyPqOHUGlFfeeEfFMdDPpmmBYyBhhHqJcCwopPRqiDxQVzBbSGWwgauvAFxXatLShfIqPTmOolCclwvRUppPnNdDsSxXlvBVrtThHnyYNwIjJNzmUqCcSnNkVvIsAJkXRGLVyqjJJEyYKUwWuGVveEZzqSUPpUzZjJJyMyYSZuUtAbkKRvLliJjIKNntmsgnNjJDJlwWLKZuTRrMEaAqIizlLZQWSSoOpSyYsEePraADVdEpsSjWHhIJjtCEenzZNkjVcFkKveZBdmJVcuMjtTTttTENVLmTJxeEXEgGeSsmMbBbHBPNQqnxXEeUzHqQhAaDMmzZfFEezYMmCHhBbCczBtTdJjRJjDdkDdDMuUAPidHhVLloXxqrqxqQYyXYSllVGvXgwqQlLWFYdzLGgvVvKGgkKAUumMhHmTtEeAaItNnTEshtneRDdBbBTMmtqLuXqQxzZBcsVaQtWwgcNiINneyYraRrCxVvTMsYdNvVZPogXxrCxXBTtdvRrvddgGkKKkDHYyFTkaQiIqnPpuLlUNRrsVHskNngGCcdSsWwYRdnTwKkwycZhHzfFgCoONnPpYKkStcxXGaAPWwCczqQxymeJjhtXTaaedDEdDdQMTPpqQiTYTnSuUBbsNdcULDgGpDdkFnNeQqEhqQodKjJipugiIjYyCWaAwsSFJleHTtsSRQToVPpjLnNTpGNDdnQqrhhEXbHhlLimGBbRGwWgvwAoFfNnpRrCOeSsplzZzvwnNVIvVtTjJuTtDdfYeRogGVaavkDdNnKAKfsGKlAXxctaqQmtTMawdDkKWIKIhcCWwHITuJjoOPfFjauvQdrjvGWGaAcpWwSeqQUudLlaOCBiIbzbgmZKRSdptTCpMqBbeEZkbZiZxXBbsHaYMmdiXzZTtzZlCKjVUCZZvWaAgRscPpFaAfYoRfdIRrZzyYnNnNqQVZiIMCcmqXCcAFoNmMnrOgGnCcVvaATsSvIVJoOoOuIiAOoaXxEKlLBSrRDvPpFdDfYqQRrCDdEjJEmMeEcdDCpWAWlLNnvzTtnNtTZMcgGPpeEEaczfmrRguUGLSYEeSzrFfyRitHhTNVSvZQNnCIiIOCcqQGbBtdDfrRvVkCvVvPaQiHdKkGcKkaAtdgGlEdcnZzNSsHacCUuFfAqQavkXxaCIVchHCxUubtqfkKGNUunNQlLCkgJKHhFMACfFsTfFZNWJjLcCwWKfJzDaAthHDSFEeczLlJYFfwxdlLpkZXOpJnNBbGAUugDXxzTLljJHoIiymLDQqdlYYBbaAkKAEwgvFUBbGgeLgGlmCxBQFMJjMopzZPOlkfFohmMRKtazmsvVaASlbVaaZzRXCZkKxXkcmPSsCTMNTPhhZzmMHAabBtGgvtUPTDGgGgdGEFfjJeBSsFfFArmAkLTzVvnUBtTPFcoZydSZayQbFdDAzHhlLeEUuBirVMmICbEVveaABcHhiNnAVvPpsSatTSHAahsvTtCsSJkgGjJLltcCKkyiMbBqQBGEKBbaOOCXDBbAaAOoeEiGHJjUJFMmlMxCttKkFxhiIHnObLwBbkKBfFACCccCUNnzZuIfkdpPHaZnNiIECceHhwCcDdDncgGvuwWUIirRVSjJsBbgGCydgCcCwSJCULuUZzlwWiIumBvaZXFtFkKNFfcCnfnzxNnIidNvRrVdAXORroUuiBbIfFIzQTWmMMmZcNnLzZQIUCvcCGgVcQaqtTQYymeUAaCaAsqQSwWpTwqSSseEsJjQbtSsTBXxAaOTEOoQepPEpPmlQZLlxXjZzmDdvexeytRrTBqzflLFavuuOoggJdDYhfFnNbBMsHhSUXxMsQqzZSmUZzvthfFGSvVnvjJNhHPpxzZwWkAeewdRrbBeDeEVumJjWoOZzChHcwJjcDxFfGgXomMeOogGhHcmWwzwYynMiVbijdDGPFfptVnSsHhNCUufFWwFflLyESnZzgRhhMQqvWGbvViIEYmewiNdGgDnUuDdIWYyEbioIHeVvjJTmuUpPgGuVjMOomHhDdQqZuATkEAksyigGxNxjJfYyDdiSURnBbSsIiVzZQqFLUuHFUSyYZCohHlBTMdcCsSwJwWwFTyQqMnftJbwYyzZWwHRmMrTtvVkPpWEpXINpgYymCcMVmMnoGsSgMTnVkEeLNnTudSTPBbjJrfFfgGdDWwFMOolOfzZFGFfSnKMRrNztTaNSHqWnDPprRFfdprXLWpuIijMmLPpIiaYyAZpPPbBlbkKkKNivKkuPAaRAPRSTthHRxNnYaAyXrRGgoKErXyynbKRjfcTIYHAafFTtEernUIykNavVVvAPpgGDgCqQTZyMmIOhHfXYAaTtyZvSCMpTdDAUFTEeKjJRrRvlrYfKMOohiIaAOsrsDduhHeLFoVqQnaMldkKHhDsSLhHQqlfspPyDavxCcXhJgBbeKkIjJbBroOvVlLMKkwWSrYMimCTYhvVBmbLdpPYyDBiIbfCEPPprjJSseasmMGRrnNQqgpPgGcCTtcCYyfGpPgcCZzFOYanNJYZIpPbAdycCWSsULvQwWHweEWUHjJwSuTtEePpDdmTswLlWSBdDnvVNbRPpIyCesQbBqvSYyMmayklLKwWYJFhHeHhEpPfjJCxXfuUFKktHLOouUlgKkNnNupxBoOgSFfgaoOAdDTtZiIeEuUTZztIijJiGgdNpPKYiIlOSrHGvmNaGjJEgGeqQgiQWgGsbBSTtQkbnVrOygjruUvYXxUDCHhWSWwhHsXWwxtvEeEqhHEtTZzOoBbexozQBbUhpcCpPqGOogPpdDdDzZsDdjezZbJjvMmRvVuhJJXxLhVQfUAwpPxEeqQZsEmMQjJekVvQsSKkMjbZzBOhHJKkRIiqQPreEoGtqSsVvJLYtqEUuINniLHukLlMZzaKkIRrIirRZvLlVFfeELlzZzlWjPxRMnNaHtFwWCvbcrRmbilBbdYyfvkKGsSwZwJmBbMVvVkKeEyWwactVvuYLuUDNpPAbamEIATsKkwMmTAZwEerxuUmjJMXiDJjkKURKkAarDZmcCUuclZzLlKQqwWbZyYzBSsViIvKheiTXxVaYvNnCqIiHhFfIiDJidIiAUWwuKsgGSCOoLUIntFfwepjJlLFowWFrapweLybBkKSXRrxHZPbayYuUwZzQYynocjlIibnNBYAkKBfFFcEeYyNQqTwRrJfASMmsABPZQHhqoOzjJhHkKIiXUuxIBbaAHfFIisjlhHkKLIgiIGuUyYcCFdeUuEdDRSCBUmqQZzMDduUSHhhkkKKHZjaAyMtvFfykyINaAgkmMiWwqStfjfFjkiIKLcLsSlMcCQqbBJjiIJjfKUmdJjDmucGnmMZzOMWwLQPpATwMvVmsSiyNgGdDnvVpPoJCcHhEzZeNnvTnNuwWiicEeClLsStiWrRwCcTqQUuIqqQsdrRDSragZyzPpMmgWLlzuUEsSWwmHhzmimSvVJjJjrVdWwQeRjnBRrbsSuUAuUaUjJaQaVnNuyYdZNVpeEHkjJKhsaASJjQqzZPpzycnNCYyiLlDwWdjJIxdDBLPpUZjJkQOoqceEyYIzduUhHLlJjCPkXxiifaAgGHhkgBbeMYfXpPORrDzZiDjAEexXapvVnVPpgYNnBbkKXAaxuHlCcMhTmSsdTIxGGhHgXxfyMmieoyYmORrtUVvAxXJjaAOVvFgqkKQapTtPmMcCvVoVvOyxXWlPsSfWWXQqWDdMPXiHnbBaGCcgyYANuqATfFwoBanKrRfCchezZhoDdWqQmPJjxXqnZJWwHYyhFfWiQDpsxXJqSsQpaVvAmtOyLUChHSHEfxuMmlDGgWwdmhwWnNHVFISPafTtFfXeDEpbUYqDxNnXwQqWMAaGUprRbLlNeArNcCyYnXxEYyjfskFfoREvVKkUzPnJMSsXJZzKkjjJomCauqqQZzQUpPARrWRGgqwMzZmIcCaMuUmtEUcgRLpXiCAtHhHhVvbFjqAwDYHVvhAylLOaAoPpYxQQqFGjJgsFhuUURCcrLQRKxxXvmXxlWZfjzhHZzrFOKkSDSGuTtGgSslVXRpPVvruzTZztuKkNCEecRPKwxXFSsDdVeCcJEgSkfhHCsTYytLlSdDzXxHhEwWJzIqQiZhFIfOoFifNnHaxQWqQkpUEepSDdWNnecqQCEwmXJHhjsupkjahCcSsPphbQrRkmMnBqQBKkzZzMmZkKMTCtTyqVoDXeEBUubGQqrRTtXxgPpRaGpTtsbBcTtCHfVMKRrkdDWwSsmmeAsIilzZYqDrRdeshHURufIfFtXLsSgFQpiGgoGRqQMnNmldkRrCtGgYyJcCtthHTdDbHhNDdkKxyYXOcCEeodDXhnifUuFgPpeEKuUSUuqqQUoIpPihHAZLAayttTJjTYlhHUTSmFEelHnSvFSFpPfstMnfmMFSonuCfFedDQbpSplLrPpRESsYVPDXFouUZzHhTvRTuSfFsQbBqUukKflLbBZZzzJitSsYKkeczhdDImMHhqKdDWXROonNrYQZzQqqwWtTGgFYywjTtJrRUurOWVvEeuqQerVvryKpPVvkYTgGtTuUQjJuTsKTtvVGdnNRwWMQqmrZwkKWMycrRQFfnopPOlLNFTakKzWwtqGPStOLloDcAzeEbJkKsSzZCcJjjJDdBDoJxXCcNwopmMchsSqQHkMCcmTPrRYyTLTqQTbBtSnhHJjqQuUIeMqUuQDdqFfxMOpiyMoObngGnNNBuIRWBbwUucFnNoqQOOhHKCXxckovYydDlLzGoZcEevyWwopTUNDSsLzrlEhoEqIfsuxfMJjTmMDdnNKiJjoIiniUuIcCuUZzNOAqdDWwoOQeEaQtISBTtpLlTtAtSfNVuLyYVKbxXuUiIyYBmMSszZYHFfhhtUxlLWXYyCnNTXxXhHxqQtNQRrpPEODdYyZheocAsGQMgGhHSsmqgnnbBaGgKktxkzWyIicmLlNnsSMXrXlFfsSaLjJkKaABbZtDMRrttQkKuUSnenqQNSkdDKIiIDdzqQZispDsLltJpDdPzqKswVIiyYITxXrNnRtDuyPpoXxOEWSswxXaZzCTtpyYPcYeEKcezFWwcKkbvDdVzMSWEeKkMgyYRrAavtTyzeNhHnkvVOeZzBJUlzZLxXulLzZrVnrLlRrCOcCfCqQHGjuGWwpPgdYHiIhZzyDqQGKkgFfQqBbSsqRwQhyiIYfyHEenYoIQqGgiDdBTBbOoAatPpDBkGkKkOJjMGgHPKUmMVvmMuliIpMrEeRFfmjehHyQHsUvmSclNmddRjJgGVSjJLlIpPUuqQnNPUupBegbBYTNQCSiIXnNxZzoOcKsSkGkiHBFfbxjJXnGgNGLIiRrteEbUGoFfIDdiIknTMeFfEIidcTtWxvOoQqwWVIiPoLIjJpeESENnedhHsdBpFjboOKvoODHhkKLibaAkxXKtTSstoOmRJqQXqQEOFfZzsSjJHYPlLpspGdDggoDOyYodGgDYbBxXyfgiIGCTtMkaSsTYuUxdRRgoqQGWwxpPNeEMWwwWmsnNeESCSscHqQqIinbBIpPtrBZXxLlljRVTtoOFRXSsbwWfmOZQUuqLyYlMmxrRXrRoOzhSsPHaADdsAaSLoQQqfFqlLOoOSQxXGoQtgGUjJYhHVvlOoJjDbWfKPpCchAaHSagGeEdDoGgNVwWbhdEXDwWfpPFqQIqJjjKYsSyVrAaRvZzOoinQqBbPpEqumYVvpkoOhHfFbkWHqQeEmMlvjJRrfDdNVfgGaAuWwUnvOWwsSohmMHvbBMmnyYPpWwXoELPpqYtZzebBSqRoOKkKkGMHtzHXxUzqQNnLYyWPyYpwOOosNGgtTnnxXmEYycuWwivVGBOoRUdnNDAZAazYcCNgMoOYyQqVvVPpvWwjKgUBdEoBUiIuQqmFShVBAMEmIicLmFfMZzLhHGggGKVbyYzZaXxViFOJjofmMYooOpSkDckKAemKzaARHWwytVvHHvTPpcCZjJNLlnzPHUoOKkYyLlnUdxXsHGgTRrtIblKWwGglAzpIICcUQDvHXbCRtpwWPTtTINumOAaOovFRrqQdCvVcuUyfFJcGgCjiFfxllLFEeWLlsmMmFPsSzyYZjSsJhHUuptNnTPYtTqaAGgVvccCaALnNCMmqSsCmZzMLlPPwWNCcYyZzNKkiMFMzZHhpoEEsmRPplamwWPthytqyYrRmMyWBDkKteXxxEeIsSRrioIxHTDdnyYjLfFYjjylLzOodbBDpPwRMBWTPpYFKvVBYyRzfFZiiJxXjIaANbBIykedDsSAaAaoGgmUWwmqeEGRrkQtUusohxXcCpPYycfZgGanNxXKkNvVqxXQojJaAQYsUuVvIizlJdDCHdDgPTtLGSskKgqHInwpjJWPpDJcnXNBmpPDdMGLzvPpzZVjJgnFVBQqrZzMOomgXXuUxPzZpxizZRsuUKkzTBrjGgglLGdDMcsqQfFKkGwWgkPpqCuURrdMmhHVvDfDdBfMmOLlkcCZzJjKZMmCUaXxhHAuqQNnNQqnuUhtirUoOuaAZRrzhzMnNmecCEZcwqnoFvVyYIifONQOoOorbBRWhHEpTepPErRnfRuUwWWwIifEwWpqFjJMAaxXlLAaqQUuuvVUjJpaAzZzZVSszZvGfkNntTKpDqQjcDXCLlcQjPwlLUuiInMrvjWwoDrWwqQdgmAONngGKAaKkOjWwCHgGVvcCjHmMzZhOodIiDJmScSsCsMmiMmDwNuaAIiXxSiIJCcgGcrwKkXiXirJFUzJTtRZNnGgvVPXGgNiInxQqnXnNeECcePgGpkupZxOoXqYOorkKFflLKtTHhvVoUkXIinJhGAYyaUHlLheqjEeUVGXxIbcEccpPJjGgCZjJeAIiOdjRzWqDdQaAwJjNBsSkKIiXoGJjgHhkbBxmMQzZqQqWIiwvVsSzcUuBdDbjJjAfuUQfGDcCPpdyYaAzXxtTxmvwWrLlmAwAXxabOTSXxaTtcsSCAqBbiwYyluMZKkagdkViITJjEgdGgDjqUutTbBLlZYyzQlsSYJBZuUBbzbFfmMjejGUckxZnNSszNsSnQEedzsUJjaAuvVQqyyYXiIxACiIhFnjUdnNKkYyVvfFvVtTqQWwzZPpcPczZQqCOouUFfeEEewmkKDXsyYSLUWwEeerRWZJFrRAsIisSchEJVvMneETULlVlbJjdDBmMLkkvVYyKKknvVNsSsMmYyTtGEepJNSsLjJzAwpMWwMbBZZzzTMAJHtTKpyczBlqYyibhhHHBrRLgGlcCeEodJWCIiRhxXVveKSbBHhRrhrRmSLMBAYpPdvxXAaVDITLFfDdIioOFLIilOQqFeJGNntdDTHhgGAaenkYvVhovgGqpKkoOHfbDdTzZtlLyIiYfFBwWMsSmRkfFGLlgYyZzKjUcjpPOHhqmMXsSFUKkuYZOowWzmMyTCcdGvKkDdkKVbBGxXgcvVBbQVmMWwhHkEbidxuFfcCUPNnDfsLGgtTliIeEchUQOozZNnJjwCAbEijJyYIPErkaedmjXxItwipPSszQiIThwOlMmiTrqLqiIqKUjwWGgryYFfmDDmbOoCcSsCEeZzgQDxXOoaHhAJyDdaAYkWHhNnwKRrVvjPpFTtfnkwWCnTtlLWVGgAaJVvjNnyYZTttJnSyoxrGgzZzZRLdDAGYTYRrpLiIOtKkWIWwixRQqbBrhHHYoOylLhPpGLNnlMmGrRgObBhzZvaJjKBbaAFORFfqQZzlqQMnNmOoNnKkKhIsMtIEeIvAasUuSkKkfFyhMmuzzZnIiNMhcHpJjtpxXqQwWHlJEeVTtSsFfBVtTtTCvVJvVjcYidvmxXgOJjEeoNngUuGsundDKAmbBMwaAIrRcJjGggGZUJjuWLjJLPpIDbBfrRiPTAuuUqQayYXeEuNBnmXxzZMjBbhrRxXVtXNnQqEeKkUuncCbaDqHKqxnxXKkQiIqkYsSmDTCDTuUdDsSgAaaJjgVvLvCpTtllFfDrRrRsYgiIceEbBcnNCumMUeUaAuUrDdMmljWwJbBLGZDYyArcAMmMmaXjyYJtTHyYyrbtTbqkyPyYpplLOVvARrPpSshHazWZzppPvVvKkVNpJjDpmySIisIeEinQAvvVuUVaWwJZgGHOohvVApPkKAPpAmWwMeHhIsSPhzZHmsxwFIdjTpPdBYAaybdDdteEUuTmMJQqjoBIiDfFdcCqQqQRnNerygjJGpcCPKqQpTHxXqQhVKkNSFkCrRsIsSVdeIjJjOJCetuUNTyZzYqQtjmMYyJLhyKkYToVzEIietWwMmnNSIiFfPfeEFfziXEeJjbBxibBIEemVvAiIUhHurlQHoOTthCcqQqLbBSOKkbBZbBHLbiIyYnrRTyYmKwWknNrcOoFfChLkCcKhHAaAQlfPpCHgDuMmqQCGOZzvoZzhKbYZwWbBZbPpPQGgPaWpPkjfFkKAlLBbmMTteUleDdEswWUuHjzVcCCczZaAjWcCqQwQqyUxNNpiKASTtBzZaWqDdZQJPffqyYdDmOfsSGnNohHVQqvOhWwVPpoOdDmzUOnNNnQHNYyyATtbBvCRXQFfqRxnWKkYyKkwqZzQkmvVMAJCcrRjoOiVGvwNsShTtnNmnYqFfPpQtaMyYRrJjFfdDGgnNOoYymvgHKkizZlLQYsoaARrOdwuUMmiIUldDLKLxmMhdKLlongJjbBGgsScPWwyFfUuaAKkYpRqQSVvKkfFyuUkfFrRKeRrXYyoORrROGTlUJjkKuTIcColeMmGgMnNmFEjJrRezZdAyYkMcLlDdKkCNnALlzZamTQqaAuTtYEelYCDdisSFfOWwEJjedSsZzrvSWwbvgGSqIiAaJiIjQEezZASRccCCnlLNvVLhHCcmebBoOEuoYyOUusSNbBQsjzuJjpXxepPAUuIiguTtuUiIHheQLlpPnNlLguNeEbBwWwfFcJsSJjNqQXKjxXjJlzjJjJZPJjLXxlJjpaAZzjMsSmOnFfNugGUGLlXDdxWwTqQExScQqzvFfcVIiIDpPdgibBbBHhIsSzNnGmmMMNGMXItTiWmxXwRrQCcoORHhrNkKraARJqiZzDdIiYyLuUlLlazfdSsHFsSZOrNRrNIinyYMtKkcCTmnzJjYlLynNWUuHNCqQcwZkclqQLAPKkdXTYSsKUuSiYyIgFUQqufMZCHedDfjJFxXcCbTtLlBFTtfOtToyYzeeEyYcCEBbZYLlYyBGgrYyAauUYICcdLiILqQllObBlLsNnEetTWwSoDFfsmMvtpPJzZwWwWjvVTsCKkcSHhyYUwWTtKxOotTaAGgBoOzZYUHYsSyivPoVvLjJMmUPEbBXxjwVSyYcmMCyyAzwsCwWOofFCpPzZccHoOhiIXsqQSxUOVgaAGDtTrdDRrRvVOoLIuUMmLlQqBbiWwnNZjnNJioDYytfFTfcHhzPpddDkKDZHlJjUWOoDNnlLeEOOooXFfSEZbBzZzZZnXOolRTKBbkBwtTWwkKWbnNSjJQrRqVyYvYyGGggNnfFhHGLlZzzXiUuIMmsadSCKkghHOkKHhaAoGpPtTcwWhHZlLEqQeQWwBIihrReEHJiIUfFLnNOoeLltTPpYmMtSsfFvJjVVAaiIvldHhBxXbkzRrYyOoZbBmiIMfFKPSQqaAIfFMIiJjidWwHIihBRrXxMbBTZzKkDmTwWtSxXsNVvzFvVCrRFfgVvZbBDdzAfpPpdDuVAYTWROoaADhHUuyYkFuUFffNzZDoGkKgpPOVWCcBbKkqHhQBQJkKjPMBfOtToQqoORrFErFfRwdDsJjStTXxWMmaAhHLlNnCcuGtfFTgZzBbgGcKrRSskCEdDrwWfJnNJjfFDdjvVpKrRHpYeErVvRzLlZXxyfLlQuqpUuPzIiZqQwWlEebEMmoOlNGgnRrLIpPChhjJHHLhsXktTYkKXAakTPpZLtTEeqOJxXjotTkKSsPpHCchHYyKgxXGJjsSkfGrRgTxXKXWmMwxJjBbkKaAkKTtJFfmJOSpNnWpvvsSPbBrDdRMPpdDzcCCOGgwWmnzywWYhlrRLHPpdiIdDDTVHLlhgGIiGgvkKOokTtMmKQqzYkTtnNwWKdDyYyYPprRRQqeELxeEmMXhfrRdltjjgFhHfBbGJaJjZzyIitXPuPpESeyYAaTqTiIuUeMyYmXxPpgGAeEeEDvzZVjDdiiIaUurRatxXedDjJEnDCgRRrnJPqQpgGcCjmMNpPrMmuUuBaxkxXsieymMoOtTYkKQqUUuXuYIiyIpPtTBbuAagGdDKkkKLlNnDxfdDUuBbuUsSdaAkKHExIiXeyYjbBJenNEyYznSCckJjKGuKEeqHIFiRnaDdAXvVfOoyNtRrBPpHIaAtYyZzYyGgYNnZdDzNGgnyrMLlCxLGgwcCSMfFmsOoYySsWlMZzmsSOvVcDsVKvVRLlrkWwjaAIiZMMRrtIiGgAaeAeEaODdQqoCKkUUuuUuFfBbBQqpXxPbThHbMBbmpPUuknNiIEdDeRkKwWrnNvVjSFOoAanfFAaclLqlVyYOovzZyFfVvvyYVYjHhSCGVIiJpPeEvjzZbBUdDuDqXxrcOpPhusSIjJsShHiUPMmpyRWwOoraKtTOhOpPNDJjfFddDYaAfFyBbAIiDRrEeSKVQqKNnkBbvEeVvxXUukLZzlMmIbBqQcQqWwCWaDlxXyEagGAfFZzwYyYZPAadDgGRAarpvVmMkrXxRgGgJjrFYtTWmMoOwTYdtTssmkBWwmpPMsKkYyCcScCmAeZzCaAMlLEeNbBSJjsgRrAaGmAxXaMDIkKidXVvYyUtTuySUfSsYyQdcCCpJjYsSyrUIacChHrbrRNtTJjrmMYyWrCpPYyrRKPnNpHfFGkJjKgGgiIuUsnKwWVyYsSuUmtAzZVtfFtiIoOKkwWQPGayHoQqHHhkHpPhVvZzYIicCEeieEkNnBbkKvVGqQeNnyFRKtTyYeEyNMaAmnYyYmhHhSLNnLkhQqHEecTtuRZyRsVVGiGPpgxVvPEaAedDhRmMQohQqYwWEexYyOoXyYaPpBbdDxHEZEhHeuUBvLlclLDVvdYrsSCMmcbBcJjHhHNaAnTkVvpEesSajJBbzZrGSuUNioTJbxXBiwWZVrRxoODwWzVvfbBqUsQqYySSsujJmbBXjPAapwWvIiFKlTtsSXxSprRPGetTNnEgWNnwBBbbUurRLlLNnNjJFftwWTlzwWsSZaALrRRMmrWwZzNZOoIuZzUpPGlNTZvVEevkYyKdDSahHAnNfHhedoOgcCUuVvqeEOouUbaeGNnTtyYiJpPjIROoJmwWMmMZdDujJUIizjhHXODijeEJOodDziBbWUuTtiImbBMvVzZSsHhudymduFfUnpvwWaOsjNnJDAIiBbaAxXpPwWiFfIWwaCcdyYzZEeJjeERreVCcbBvlfFkqAaVyYLlQqOQqUufFqQqQuUopPZzZZzRrAGgtTkkpMpPmPAkJjJlmduUDuUpPkqQIidDtTwaAmDNzzZEeAaXDxXTEekKRdMmhwyYWrAaZzRbBuUHKkupVZzGoOvZzgugOoLsLlSnzLDdlOoZNlcCZGLlmMeExXgkmVqQbjJBMmXxThHHcDeXxQwWqrwhELVvEPIiPpplLPUwOiIoWKmMeSsEeZcCVgNMMmMmAaTtzZQquUTtvtTVmmsSsvLlOrrRRoVGArRjJazZRrIiNnNndFfDKnxAaiIsSXtTqQrNnRnNflhHLlYyzZPpjQqmlBbzZLDdSsVhibcdDCBfFdCcDlZfhNaAlLIOHhQqXcsSeEjPkKpJDdkKvjJVVvfFrRCkYjVzZzGIgGmMizZmRrzGgwWRGFfhqQUuvVoyYfFOdDzZtvSsFfRrDQqQlLrwWRhnuUNGgHydqnnnMDdDLJjlVsSGgPeEIipUrRuKkXeNoEeOkKcZtToqQSgGWSswFfiIoHmrzHhqCcWwhMiFIinNwWxorRUFfeEuOzWwZXrOoQvVeEoyYJjcHhCOHyWwnteaAETvQqAfNcYGgJPOHhYxXwBbnMzZBUgGlMRnNrAacrThHutpPUuiIEqHAeEaUJNnIiXxaAZTtzRroOosHHVvhHqlLAeJjJjVcCKkVcTkXTtxfFWwtZzTHhyRrqQrsSCBvchlLHceEWwwWNnsWwPpwhHWSkJoOjkqoOyYQqQKhHTtKWcCqQjJoOKMeEmQqLFfJjngGvVlLESsrRlLWFPpzZHhVHFFxXVcSsBLlVzZzZNjJngGvineENIlLbZGYyNcCngBbOoOmEzNnZEeJjgGbBezZMdDoYyQqOXxeEoVSsAaEzyYZFfvMVvmsxXSmXFfxbBBoOjJbMvVfdDcUVvtXcxXWLlaEJrRgmMeEGYwgGWCtIifFTXxwgGwiIWPTtTtpINgQqBbVvwWNjAaZzZLGqMmBbFYykgGPPpSxWNrRnzZIvVaAxXwWGggGuUOgGsCrRuUcSRxXHhrsSIilMmLUuHhHmMyYfTSskKPuUGaAmpBbPdZrRxtTNtQqYapPAquEVvcvnBoObBbNMFfGgdsSQqCchSmkYywciImMlfFdYyrfwPqMmQHhfsSPhHNnwWVvxIwqQQOGgGWwZXbBEIwiITsSywLFZzSEeOoOYICcibPpBYlWwPDLYylRpPyYrwLlaKkAWoqQiVdvVWCcbBRsRrPuUEzZhHvVewobBOWpFBbfGqysSYfMauUFfaAAvXaAMmvVxkTQdDxXnlZzbnLBbBbVhQUuJFMscCFfwWylsPQqpiiITqtopvtTVleEYcCfFNeEgWwGisSpgfFAUSWwhHWwGsAxCcXbiIkKHhqQmMcCpnNPBAqQabvMsTtQmMqWeEwyXxSsYyNDdUJjaIiCcSDdBhuIiwsCcSsJIJpPjRriIaRWIbMNYvGQFfqKqQfqQqnTsjJDKuUQqHhaAPpRsSBcCxXggGCcvhpizfFOhDdLGKJtTjahFHhfdDHAzZrsBUcCmMlLtTuyYdNnuUrjJiICcRYwWwWxXwjJqQQFfqPYKgsSEvnTtTpTtQPGgpeSHdDhceMmyvVYTtGgECZgGzEeDdrsoIioOOSipPCcsSIRsEDdqWKfFrRIiknWdDKkwNpPoOTtrvVvzZkKNnkKEeLMpJBMmDduQqUsSbrZzgGRIiZNnHhVqQbBkKNnSsOonNvoopyYPMmYDkKxIiuUxXxXTiIGGggApMmnSvVfGgUQqVMqQLlgGAaeEEHhecbqQBwWBbYysSAvgGVxXDPlLdAaDdYCNnLmqoOevyfTtzZTtyNWNkKhHdjgGqQRQvVnjdDBnNsSwPpWnVvNmxTtXXOouUxqQKOokxXnNhVZyYcCAaaDdlVvbuUBisSOYbBzZmMybBqMLCWvVjJMmEeWwAavVLbBGmjzzZpeETtWwPOHhoMgGcCxuXxUoaAUuaAZDdqqQgDmrkKtyTtDdQqUunrKkRphHqQPdDIUiacCaEehKkZVzZuUAuxXUFykJjZzdvlzZidtTDILYbBovFfcKIikMwXxeJjikKwMmWGgAGgLAjJalpPaTtIEMKLyFfFfaAYzfFyiHhIaWyYzQuUogAaGmMHIiHhyYIihnNJjvVbXxpPHhPcCplOxFfTJjtJjiIbBXGgeUxhqpPzcCYygGZzHhIXMmxbzxXZqBsSPvVpFSsCnLlNLcCEIiNnebBDTtdYerSsRdsSLjJFfrsSRoOgGLlAIQfFkvkEeKFfVLXEzZeOcCWwoVxhHYyXsdjhHkKkKhmlLMdDmMyrmMOobqQxLPQqhdKkDHpkKGjJgfFpPThHVvKkteEjmMjnNJSlLsnNDJqeVvEBDUieCcEPpIuXxdbLCIpZcCsSkKUujVSsAavUYyuACcarpPRmIXHbqQBhxiFfrReMTgGtmEPOoziIvEVMmCEeqQclLCcvkAaYFfyCczdDLlmMZInFQlLsiSsmMuUXorpPlLyYRGgXxEWzPBMoOcCIijJLBbUussoOSoiIdDFzxkKZzWGgwXYJqikdfqQBjQqJhkKHatTrRAwDdWxXdckKtUuUWWBbwqQwmMuAaRaAqQKkyYJjfWwgGFlKkLDdLukKxHhXqDdNzBbZeEtTceECnqQGYwVvWiZzNnIkKKDAahHhHQqyFSvVEaApoOsSPcvVCefFscnAaTYytNHUnQqNTtQqyYRzkuUKZdDMofFnNlLgAEWwYKkgrNnQMmXZZzOozhhlwOoaAEeIicYkrSsrRRKqnTtKkyKJGgjgLlqQuUKrRkEIinZzWwTtNeXxCchjdDJRUurBbgOowQpPYyaACXJoLfPpJjeEYaAxXpMmsSeaVvHhALlbhHVvmYyMFfDuuUUcwWgZVOoDeEEedlLwWXUuxvUTkqQImMiKdDMmJjtuEeheEcCJUqQFWTtIiRQBbqrFfZHhxXGWwgnJjybBQqqQSRnzZNrscCYjJxXNbtTxWNnwLlkDmmeoOoOgGQkKbuPpiIvVPWwpHhLmMOYcCtPYyLlgGpMmEeSIisAaCKeUunNEjVvJGgmiIMCcqQRUurgGUOsSNPpqYJjJbBjlLeEycCGnURgGdcRrTHXxNnSstqQOVvoiIBbuaAeEmMVCllLBbIbBOYtGgXJjxOXHhDdaIoONkKnaINDdfeEFxXDsaAWnGBbgNjJrRSkKswNeLrRKaAaAIikUEeKkuqQCcOLkpxXPVvkzZQqKjRrDdSsqQmMJfFgQqsSfYyzlLInNCcQqOJjoikHhkjJKEbSsBgVPeEpRrnNgGYjJwWyDdAkvVZzVBLRrlbVvUueqgGRSoIiOsRpPrSJjNnKktTgGhdDwCjJcKmMPtgGTtNSsNQTJjtRUszcrRCXxbBPyBbcFUumsSklbdbBkKDsHxXNnBlLqQXeEMlbtTLljUXxuiIBbBmMbmDRrJjdpWwPiILzZyjuUJVSsVvvsxXSYnNpPsSmxXAJjaYyMdZCcNTtnXzVvEeIiKkIbBuUuDqUuEQqFuEeUfsSQcCqvYqDTvVSsBMHhjjJXxJmlnNunNZzUIxXuUmiIMcCsSqQOoimMbrWMmjJwRpdIimcGguUCqaJeEsSChgGHjGguWoOwmdDMgGJjJjLtTOaALlzUuQAaEDzZPpaAdbBrRAaYyPcCsSpGNngRrMqQEeRriKklLIiJKkYyjYBbcCKkpBbPyHnNXwWlLmMPcoKkOtTJnNQwWdDkdDKfrRFyRriuUdDIXxzZHBqdDQGyYgiJjWwIbGZzfGVvKQqktbBuHhUhOoTmMtCcHhBbXxiHhhHXxhrRldDLgDvVfFAcCalLqwtTWHhQeWwExXttvVMGCcggGPoOOvVobEeFlHhCcoHheLOdvwWyYMYydYTzUBnNvIDdiPtTpfFhzZFsKPpkxXrRLlBqoOInfFXnUuGgpPOoFYSsyFWwfcAhHHhaJqQSsJjhPSsBbpnpbBPNxXgMmGvVKkaALMmlLRrKkGoUEebBBboUSsuOhXxmMvPpNnXWYsrRSWBbMPpmwaAyxevVRrvxrRXdTtBNnxusSCWwczZzZACcoSsREeCsuUkKjcCJnNKHwWhkCMmzHhsSZzYGgaNnAywWtTIyYQqiSsrRsSYyplLPdhjJPpRrHiIYypXxrrbBKkvvVwWmmMMyhHYHkyYKhTtOowzsnmgEeGHRrhEnIxRrWXVAajQYyqnNDdJvlLfuZeonNgGOxXiJjTcGgCFfUCcsiZemJVxXAaILlqQDOIiogeEDdxBbXGHhuPLlAGhHgDdarRZDdziIVNfFaAISsimyYMuQjJqhkKsuptWEFfYytTAaehhLsSjzZcCBDjJBkKbvViIdvVYajcCJANQRFfrmMaAUCceEqhbBHQdDJesSaABOobdDWHwWhhHWBbIHhVOovaOoKkdsSDdDJjAvpYylLfkKFmMKmMkPvJjwWVvEeFJjTtuzZUqQjJQvEdDiSsTtIeRrstTtWwrRGgtTocQWwNnJjmIOoiMMjJmgGCcFfkKQhdbBDHYrRyUqQuvVUhHwWwWQqOoYNnywYyWuBhHTtpViIPBbRrsjmMnPpNGPBnNScliAaafhHFEaLlsADdaSoOvVPpmMRhTCSsvVvVcbqKcCkWfFweWwEQGHMmhetTyYEgOMmlLAavVIeEydDYEaAaAYxmODdoMzZKkFGrRaWwoOLutTYynNUrRlZvAaVTWXxTQyRrbBYxhqQzZHiIXJHhPpPpUuQqkGcCgKjrRtTNnUfFeMmEXxvbBfFJjhZzOoFfHbfFoSsOVvSDveNneEFPpfrREARrwMUuCcmWmMcVvgJjWBbwGCcsxXSNEeiILlrRoOnRoODdPprFrRwWbrRyYBaAfRSsrXqaAacChHABbXzZbZzZcJEejJjgGbBmPpMCcuEeAaUWwFfbBpPYxXKAakSrRsVvqQYCnNcejuZwWgGrsSReSYDdGzZgLrRtYctdhHznCNnnAaNcuUvZfxXDdVaAvWwXUHaAhiIlGgLHdDhTtCFfcfoINnnNiyYGgPpOFwHhWgJGzZgEGVvgFfyYdIXdfFDAaePzZpEEaAeCxXilJjuUnNzZYaAkVvKyiIdDIiLIilKkKLHUuhYRryldDbBQaAqKiIkWwSsbFhHfkKJjBVvWSnzNnzRrZPSsKkpyAFfPVvTPpVYyvtpQOoVvQNnqTHaADiIdXGWxtTfFIwWxXLlpPitCdHhlLkaAtHhTOVbBZzvotTDOodcCaPvVKkWdDAawIlLiGgFfnLlHhOSpPsBxGIiKkuoGgOLHhWwOZzEeETKLlktpPvAayYTtVqQMQGgqSsUtTuKpYyjKkbBMmJPXFPpRGgvVrZyYiIzZuauauyDPWwpdsCcSTtYvVULlhHgGLlbvVQqcCspPcCSyTtcpRrPAkXbaQqAGgcCBRrQdDqxAgveEVqAaQiIFXhHxNnvVvVzBbmMVnNtmzZjJAaemMaVvAFfzMbBEpewWTtiIfdDFWwcCoOMFfJOojSUaJjgGcyYKtTkDdwWwWoOYyXxRwWrcCXxCnUuiIMBbmsSuURrrRHhiIqFJovohHOgGVVqQJjvkvVPpKRhquUQLlXTtIiSQFVvfqqQrEeRGgsxutTpPHxmMaArRMmXZvVKRRjJEIiUoOAaAuvVEeUuBkKbmtTfFMUaAuxXUSsjhGwWiJjIgseEmMSTuSwWsmMUSaMmAJKkjMmMzZSsLlEImMcCicnNvVvVrqQPuUphHmMfGiIgCcFuUcgGPpQHBbFfstTHhalLAabBqMRrmaAQAWwdpyaAYwWcCQOoqyYekKEFsIiSkKhHHhXxjwuUWXzZkKUuUuxXxxXMBbozZaCcfLsSlFvVlLfFXxrvwtFsRuUrMmSCyYCBbcdDYyKkCWQAGRrgEeEXxpPeOouUFKkfpPGwYyWnNRreEMoOgxXGmeETWCgGcMnvVNYymwgBYuUjJyimMwWlfBXxguUiTxXNneAtmMxXyYTIikKaEtInNtTAoOnNUhuUqQHgGEHheRfFrZzVEevMuUUuHhuUdDzeEjlNnLJZApPoOaDtTJlLjeEPTHvVhFfMmXxhMmVvRvVeErDXdDdKkDzZqQxkKFUHIiWwLlmMheEsSrcCRufdDdDdRbBvuUVAAaFWwtTfvVaAaWHhGgZcCXxQCOocqyzZICcihHCcPpKkxKkmMXPmyYfFHldDLqeEWwTtcCixXdDdOogkJhHCcGgQqWwaAeDdEerRdxDdCNjJVwnNWwCceEWwNnnnNNWhhHHCWyYiIwGgcvnIKkisTtyYubdDBUdDSzQqzEjJeAXoOKkxzKkOoZaIiZWmMGgwHhRgAaNLxZzCcXlLMmzZjJlSjcCJhHFtriBbpPfgGFCcvVBHhnNbCczZbrRGgTWsSwtjJYeEkKTtynNuUCcpdDPBJjCcdDYyUSsuUTtuEeIWZzsSAaqgGWSlLsNnwQSssSZzqNtaDdSsADdYSspMTtmPBiyzZYzZlLIfzMmZFbQiIEeHhbpPJjiIaAoOYyiIBmGDdRrzcCEuUiIeZaAvVAbBaCcvBbVthHAaEeauUAnNTWtTwNhcGgCWwHnZKkKWwEqQePpkqQPhHpnNWiVvIpjJPUKkLlBWwbZzXeExmMxPWESseEvVeLuUbBltTwMGDdgmMIimNnMmAjgUusSkaAQRrqcCcCgGDdsSKvxXelLETUzZwWuXxJoOjnNPRLTnNtZcCzlLVvlrNMoOmCPCcpNnHhyYctTnWEewnpPFfJzbKaAdDkBZOfhHFGgAVvaVjJfoyYxnNXZzOHUubpPBijJnBboyYwWXxEeUhxXJiIjJjuURwjJWNJKkjuAajLlBbGqQoOyYJjnNAanzZdDlnNwEecCoOWGOdzaAqQlLOhHGgsSojJdDtNngNOjlLJfaAFttyYTbcCnNLlbyGgQqQrRAaqkKNAanGTtgGgRrbvpLlPiIVBxrRlLWwgGXFDdiIfzZDdzZpnrRTtNPwWcvVGwWNuUnDdAcQqYHhCckKkEIierRQqDdKkPpmJuUbtTBjyYiILXxLeElgGlGJjqQgTttpPoOTYsAaPRrgRzpjJaAvVeEgvXCcxVTYytgGKZzbtTBKOKkoUuooOOvVoNQqnqCvVTvVkKgGxeBbEXZNJDdjRraWZztThHtsSTyymMYDdJpPVvVIXxivjIigRreEAarRrRIiNUfFuRBbqQDOoKkdhmcCMnLlLnNlcCCcLUulNHkeEzZPgGpgGSfFsrRCcsSUuIkKineEUcawCvVvDdVoOnLMlcVvCprRbBPXrSawdDWYylLvVgGlLsOzZoLKkljJrRdDZzrBSPpFfsEfFetLNnltFfaAEedDTTbLlqQAaRSwWoOCcSsRkFfKfBbFTHhZzogGiIOfnNFZzUutwWOoriyzZZznDdgGNnNQjHEehJbBOobBqIKkVviQIcYoKkONnZzRoOrZkKdkKDgLlGDFfZzkKTQsSqGlzsSxXZQqLlLXfFeEbsSBUOeEWwUZCcSsDrtDdOoTRdHhRXxmCcdDeEMOoryYOoeEHhPpGvfFqQuUVgaASsaAvVsotzZTOPoOpcDgGdCQqvSPpsNiIsSnCgGcvVLIivPJjBbJdDFZxXPpzfaWVlMmLvbAJjJjFfEKkAaylLYyilLIlLAaDXxAFfadZoOrRCcKkuJLlxguUYyDdGXeEALlaGNuSsVZzWwwQqWIiTyYtvVvJjJjrUuqQXxPZkKFfqQNKkpPncCiVyYqbBQaAjJvUuUvbBFfuUJwWjWwWwRDdtMsSmDdpoOPDdTqbqlLQEeBsSDdGnoONdKkDyBbiIYZzwWyUYyuYgVvJRrzZfFjmMQhHrNnRepPELlvVhdSsDHpPTtIWwcCOwJQsSiIfrbBRFJjyYqjnYSsxXysSVvOoLLllqblZHhzeEMxXZbBzmeENnkKHRroOwWBboOXbNiInlLbBDPDdpFfdyYBFfnNAarRxCHhcfhHAaFxrRXFsSfuJVvzOoNniqYyQIgGdDCcAafFQWaAwqHCldDdEeDfFLypwWPNnMmnUuNZzOtTTtzxXhHnJuURrjNXAaxrRhhHLlmMHhAUuaiIOwWpIiPNEeGgYyGQCDdcpzZoOPiIsWwNnNNOonopPOnXfFEeYmMyzZvVAGgCcSCcEeKrROokTHhLltASsfbSUusBoOfOaAobPpBFfxXwWsSZoOCcIizpoSjIDdiOoJsOsSGgXqQhHxjJNngJjGPkqQiIulLhHGUXPYyrRpxuvVmJjnVvNMxXrwZzWRgUwTtXxbBfFWEOLpPltcCeyYXxmLJjXxlEaGgXxAoOefhiuUIHQqBbrRyDdEhtTHOoCcImMBbxXdDLliJjsSaAVvxXxXBbehHeERrvVPpTtIPwWcVWwAJjPwoOOoWpVaoXxOoOhHSNmMzZSsQINniqEeQqZznmMXoZzOxMgGSsPsSRruhHWwUpFflLQNnGRrgqmmNwWnMAaNnaAXxvVQqnNGgDPKZzmwWbBqQzZMcCrRIivVHhHhERrvVevOoVfBbdDnNSBbeQqENnVVvEevxXDnysSYEuSsUuPpAaUUxXuvvVVeWCcwErRNCwWcmWwKkMNnWwRrnKNnEwWxXCcekIHhnOoeENKLlkpPAaaMrRJjuUMmGgAsyKkYSaqmMQWwmQqOEeEeBbZqQhHzoVvCnjJNjJLGnNpzuULkKlfFZPWwFnbMiImuufFUUByHLlhYZzMUumDBbdrRNNnQqjJNyYyyYbBOoYiIWIiHAauUfFBbhmXxbDdLwWlBmPpaAWJjwgMmLFfxXlGkKuUHgjJGgKkGhjJAvhHVtIiTaMHhfFwWgGgsXwWxSrQzZqTOotOorOoSsbBDDgeSsEpPUuoOuUbTtugGhHnAaaARIiWOowrvqQVnxXOoJNnjQqptTPsSNoOwbuOoQEVveqJjJqQjhHdErRedDIiDeoOcCCcEtTMmiztTZmMmsKkScCsqQdDzZsSffFBbbBFMmZzSkKvVEePpISEesRrsSFiSsIfiMxXdLlDuUumpPMLlmIieEMwWTtUtTCcjIeEoOEiIVFfvSseyYYyiGUuaAcCYyAaglLXKkxPhHDdUTURNnruDdrWVvwtXxTRtKHhkEDdfFUumMHRrEeLlhLlMmOosSTtuaAggGGwWUhEesSHdDgACeEcaGfXxFHhJxvzZVkKYyYAayXbLSsllHhgGLLlpPBWwCcUuCEDdUuMwWAamkKeUIizogGMmuUOZunNxXbXNnHhZzDdCcYyxNnfDdFBbBbBoXxOFfDsSdWOowBbRrlLpPVvSoOdDhCczxNnXxPnNpWaAwGDBbdpPVvcbnNjJBfFCeEtTztTZXNnXxiwZzUujJxXPpwWWejJxeNnEdTtSPHhZzpsDfFqQBbTxXYyxXtKkAQqaAVdDHhJjvoqLlyYLlfFrRcBbznNfFZCqoYyGgOuUsSwWQHhuURrteETuUHcBWwbCuUhibBIfFSsDeEBbkKTeEtuUktTKEVDdsSRrvUuvVIiWhHwDOoTtxXhHkeEKHhFfiIKKNnkkgGlLeRZzrxNnZzXELlJhhHHjMeEdDmgGXOoGpPYyVvgyBjJbxXrYyRVvYdDvVxsPpjJShzhHZYyHKaAkaArDzZdRkvVnNuUzZzZwMmoOWxXibBIaAJMmgbTWwtIvVBbsSiBPRrpjJTtImMiYyTjJtJjYPfFpWwIiIihHrEeRymcCBtTzZjJbMcCnNdYygGDycbBCHvVhRwWvVrlLfFGgRrhHIEeiaFfAxXpyNnYPeEgDHhdLrRlrRBbAaGzxXZARrnNRrHiIExXeuUUuhcCadDftTFoFfEeFvVMmfuUyMmSZmMmMKzZkzvAlLaVPcCEqQepBbfeEFWwcPpCZjJHhkKVvigGItTzsvwWVvVSjoOYyJUFrRgGeopPFfZlXxAoODdudDUaAHhWwaPpAayRrYLoCcOxsSXYydNnDYMmuUQfwWFUrRuqKkpOAaoJjQqwWPMmpFwmTtbBMrDGgqQdRJTtjCraARcWscCSfSsryCcYZkSsKSONnUuoskKoOqQhHzZwWOJjqQxKkXnNeEoxxECceXlLXmMdDYCcyeEbBzzMmSsZRsSMmrUgNnGuLlaAsSNwWoOeEeErxGgXEeCcRZSsrRhHDdZzznNmMyWpPwYNaAnmhHLlMdDpPcCKkniKnYrRyCbBwWcNpPTtZhHDdxXunNUuUuwmzZMbBWSFfABGgbaRrbLlAaBbBsyYBwWSsmMDdjJmMqQiJjbBKgGkVvWwgGKpLlPhHkyYCGTtuZzFfJLljUgcaCcAxWwXODdrRozZTYytLlTzZTyiIYqQttLlOooOtTiIdDKLlXdDxQqkVBNnbDdjJQqIixXgGHhubBvzZVeEXkcOoClShHsLpmpPMPoOKPpxUCkKtTMmpPcEeuUZlLzXxvcCNnVwWNnCcByYbdDBNgGnrRXsSxucqQOiIoLjJlCcCSBbsOtToUnroORrvVcUFfuZzRrCZzRaQqoOWwzJjfFbBeEZzZAYyuJjUoxXQUuvVSsPpIiIdDoOixCnNchHXqaAnNJzswWStTxXZwWjgGtXxTbBBWgGwCcbnNOSjiIJxXsqQcpPMmqFfQCLluYyBbwWSRrsjJUgZzGYyQnNlLSsqsSrRsjjJRatTtTihHPpsSIDdfVvFCTtcDxXdQVaAofFOUuvMmqOoEeRJKkjJjrQaJjAlLQqbxXoOZMMmzBqbBWOyYmMAagGoaAxXzQyYqZNnGgbBbDdBfqQdrRvVAwWYEeveeEjJEeEVqQyUuaAHhjVvJaZztTVvVvcCNncCWwWiICcfFJGgjMWiIdIiDwMNnNIiuUxXeExXnfFmqBbQmxXUuMFflLGgmwWvVHNFfnLAahHCcSsFeEfUuBMmbgGGgqqQQQCUurRckKqlpPhVcCveXDdvOoVEeqvqQVQPiIpMiiIHhABbaIxXmTtZzMmxMmNRrrRnwWqQBbTtGUugYEeBbmnHQqhNMetTErAaRlLlLnZzNWmMXeExeECcwVvtTKkBbuUuPplsSLtTxXPpGvWwVUuFfjJKMmZzkgDdGHhQqCcgDqQdVOovcDdUiIXxPSsdDPpjJpuIiqQtVvTCXxPpHuUNwWnoOhmMdDqQVSeZTOottTuUzEeMmKkEsuUbBvvTtMmEeVxXgGUynueJDdjRrEUCcxCkKvVFfcofFSsOUuXKkCvVsQpPqSIiyAaYrRMmxUuxjJXStTtTsXcuUeEfhHGgFgWwndDaANGnNknxDdpPXbBTtNjJnNnNaAgkMbBiDdNnNnImRrKABbaqQHFTtuUyUxXuYcCwWFfuUCxcyYSsIiCXcfnNhGtXXlLkKxxTQqhHrRKKkAawWoLlHhOZzfjJvVasSoOmMjLBblOoupPUdDJuUsShHAFBbcmMCOJkKjCcPpRIiWkKwrXxhHXqQunNUXyYxxAaFfovxXsSJjGGgvVovVzZOPpvVgXxINnirREerRAaWRrbBvVMoOKkDdmIiWbBHhwtHhTKkCciIogGNngGGgTtOwDdQqgHhGCcdDkKPpKkVgtTGcnVHhOovNAaNTxXJKiIMmBbkCeEcIxXgGijKJjktCcCclLxXFiIfjJcuUMmJMmjZzCngWwGCmplLAaeEPUudDiILKkBboXxOwWKkmMrHhHhRvVzZzZfwWZbBUOoupPzFeEQtTqFVvfZzAaFfNNuUVvmMttTTnnwWSsOovVOkKtTRroUkKuI diff --git a/day05.k b/day05.k new file mode 100644 index 0000000..1ad195a --- /dev/null +++ b/day05.k @@ -0,0 +1,6 @@ +/ not so easy because of overlapping matches +/ (*r),&/r:#:'{x@&{1_x,1}(1_v,1)&v:~<':32=b|-b:-':x}/'{(*1:`day05)^`c$(x,x+32)}'"@"+!27 +/ (*r),&/r:#:'{x@&{1_x,1}(1_v,1)&v:~<':32=b|-b:-':x}/'(20#*1:`day05)^/:+`c$"@`"+\:!27 +r@0,* usize { + while let Some(pos) = (0..s.len() - 1).find(|i| { + (s.as_bytes()[*i] as i32 - s.as_bytes()[*i + 1] as i32).abs() == 32 + }) { + s.replace_range(pos..pos + 2, ""); + } + return s.len(); +} + +fn main() { + let mut f = File::open("day05").unwrap(); + + let mut s = String::new(); + f.read_to_string(&mut s).unwrap(); + s.pop(); + + println!("{}", react(&mut s.clone())); + + println!("{}", + (65u8..65u8 + 27) + .map(|c| { + let mut t = s.clone(); + t.retain(|b| b != (c as char) && b != (c + 32u8) as char); + react(&mut t) + }) + .min() + .unwrap()); +} -- cgit 1.4.1