From 12f9f519210df55249a932c3e57d2deb5162ef71 Mon Sep 17 00:00:00 2001 From: Tristan Date: Wed, 5 Dec 2018 07:39:48 +0000 Subject: [PATCH] 2018 d5 js --- 2018/5/input.txt | 1 + 2018/5/part1.js | 8 ++++++++ 2018/5/part2.js | 19 +++++++++++++++++++ README.md | 1 + 4 files changed, 29 insertions(+) create mode 100644 2018/5/input.txt create mode 100644 2018/5/part1.js create mode 100644 2018/5/part2.js diff --git a/2018/5/input.txt b/2018/5/input.txt new file mode 100644 index 0000000..8592237 --- /dev/null +++ b/2018/5/input.txt @@ -0,0 +1 @@ +qLkKleEZHhTtzGtiITowWOJjlLJkKZzRrQqsvVSjvzZrRhTtHVJvVjAavVRrgQMmAabegGKkEBnNMthVvoOHTkKjJCcmnNvVSlLstToxXYcfFUuCNnyOpPoOUgOoZwWzzxXZhpPxXHGgeExXnNzEeZMmyWwYGuWwCcOZzKkypPpPYHhgUuZzGoBbyoOYqQeEsSHhHGxtTXgxXhiIeEoNnXNnnKfFkfFNwqQhlLHWxIiLlzZiwWIOBqQbtHmMhiITfFEeCceyYeEjJiICcnNmbtHhTBMHBaAaAbcCpPhqQSsmMEWVvcKlLkhHiqQISsCsSwWMEePMmpfFmSJjkKnNnECceNohHgGOwWTBzZYyGgkKmMWkKwbiBbIaANnWwDdaAjJtlgGLRBbtCcTeYyhdDHPpUuBBRTtpWgGwtTsSPOoXzZxrbfFbZizZIBrhHbcEeIisSCXxBsSFfXOoqQbHhiIzZIiBxGgzZDdLlVvRfRrJjFOobWpaAKkPeGgEjJBbwQqaAzYyLXxlGgDQqTsUuSmMxXMmvVbBFZzkKGgfMSFfiIyYjJsmDDdnNdmMOogGSsDdLlWwrRkKBoOuUbtCchHiiIIqQPpQdDqbBbBUgGudtryYeEnNRFfJjwoOWRrWwiIcCYyTbBkKHDdhEOoNfFCcqQnaTtHhAXxIHhzYyZgsKkSEeCeEcGLTjJtgGiIRrlEePSsgGbBdDpWegGEWwFftTwBbtTbGgBCJjctTOFxXfNnQuUqNnEeoiIiIpFflLEeyCcYZBboOVvRrLlZzOoqQzwWPuUYtTyPpVviSsHhIiQqrfASsaOXxDsSiIoOFnNfdogYfFycCNnbBGlmMJFfoVvOjJjnNgGQqDdTtuULzZNnxXGYhHpPygGwWuUvVqQjJowWOQzrRZJjxXEeyYTthFkKpPjJRryYDOosxOoXSdDlxXgGLdTtFfEqQeMmhHlLSsPpfpPjJpIiIidDQqPVHhEGgeWwvCDhHdBblGgLckKeElLHRNvVZznUuYMVlLvmyFfwWrVvtBbKkTZzkXxvsSrCcdDReEQsSiuUaAIqVhUuHlvVWwCcLVNnrRvaAFfpPFfbBBbFfBCyYRrRrVvcOovVxXZJUuUujnhHNkKvVhHwGgWHlLhIiIiXxEesSjJoOEeppPCcPIieETqQKkCRiIrhcCHTthHOHVvhyYoOoTICcipPoOtBbLRrhMPxXpmHlcaAJjuhHqQqQUaBOoJYyjmMfFGgbBffFSshHFoOoOwWydBbDMmYnuLlURwhHGgWvwiIdDWDdVOoRrYypyYPTtVFflWcNnCHhWwSsAaLsSlwMPpmLmMeEARpPAazZzZQqdDdqQjJkzvrRVvVZAazvVIiyxXYyvVYrRNXxNneEnNEeBfFbhHngGoOUxXQqOeAaECcNjlLAaJnBbxXouULluURTtrusoOajJvInNqQidfjlLJFDLQnNqltTQyYRrisSCciIpPXxsSIiZzIcCXoOxjJltrRnNeETMmDVvdLfFrRjJXxfFqHhhgnNGHVvQqCcUjJuCkKzZcIcdDNzUuYGsMmUuSgfFSfFIisEonNOeoOApPMmaZzsSfFTtPpWwksSwWKBbiIgoOSdpPWwYydDDJaiIAbBzVvZjrisTtSNnGaJjAgYyGHhEegIYyDdanNABxXvVsSPpRrMqlLUuQmtTlLsSDtmKwWkMTfcuUjJCFMmwwWoOzbBZClLAacFfKkwVTtvWWnNRwWLoOlrHhcCcCvVbBKpPyYlLOokNnebBcsTRdDrtzZSKPpkCDHhRrdFftTEpPedDAlLYyQAQqNnjJlLlLQqFfjJjJGgXxSsBmkKEekKylXxLYMMmQoOqlPpUyYNnYyPpGjJgFfRruTtTGgtLnzZoOuUNbolXxhKxXxSsQqXkqFfDdDaAkVYyveEKsSkTtKdeEMmzZGgeAaQqrrRRPwWMDdjJWwVvmpHCeErRcUFfuWwWwsShqQBbzyIiYZtTPpPpLlTtRryYfOoTOotRrDdFcFzZflLCUeEpEeEePukNncQqCsSrOiVvICcNnoRjySsYwRrWJsSSsGgMmFeEhvVHTthjJHAaorRxXKzXxEeZLiIlncoOCnNNYPOopCcykUhHurRZzekKAahHEsBbSLlfFayYAOyYfFkKLjJlnNYyoOQqyzZqQYVDdvHxdDXAIiEeaRrdgGBbMXfxXFvVxjJFftTmlzZzZLvOooOjJVsRrMmSgGKYyKOooaAZuUoOyQqFAxXahPLlpLlHfsSyaAYixXIiQoOeEqIqUuIiQceoTtkKOsSeEfWaHsSRrhAfFhUuHRrStTHhswMmSPgGpsEXxeKGgbTtrUuRBkeEXrOoPpodDORxcHdDhkKCqQmMAaXaAYyYyxOoOgGdXmMxkKDHhyYbBPwDdWJjeEpeRrEKkGBqQlLAauUIOrVvRbBoEEeAaegGBbiZzeUuzZuUkKEemMEcpLlgqQjUuJGxXXWsSBWwbwuuULlUoOAdeEDfdkKLlUuEeQqDQqLOFfXxoMlLmVGgNnBbvoGgpdQqDBbPXuUWwxRrClGgOubBUoLBwOoOoWKkIiWwZgGzbRrcfFnpPNZZqRrQzyYHMmSKksAtdDTaSsPpBbBbwWVvhsSKJjiINnkWwZfZzFzzZWwWwosSBbfpPFxXORrmoOMuUcuoOTtUeEUudDdDOoCHhcpPHzVsNnSvgGZkKwWhCmMoHoOGghdwWLlfFDzBbNlHOojfFdDcCJtTVvhLJjnNFfwWtTkSbBoOBXxbTtsjEejNgGiYyUusSlLIcCxXYKkydXxEeCoOXxclLDfFSgGcCCcsRGJjgrSsPUuWwpmMnNoOMmVZzXxfFQqvgGnTtMmmFfMzZNaAnJAlLaeLlsSEqQehHhHRyYzZuUdHhDTrRtZzSsIsQqoOSiRHhKkbdDBiHhraARrRkKqfFbBFfgNnGKaSsVvTtjXxYGgmSsMySDdsmMJkcCqWwQmMuUKjJNnQGgqAaMEpoOcCPAaRcCrAaerRKZzdDsSktbBLAalqQTPdkKybBEDjJdegGwsdDjJSwkKWWsdDSHhuMmUFLPpLlOopPsSKsSGgkFflfqTtSsKcCfFfEeFWxXwkknxNnXNnNKkKdOrrRGgqQRoiIDwWeENiInZzmMoleEDAadFfscCSjqQNuUntJjTzZJNVvADdSsmNnMeTbBtEOoGvVgIiKRrDdCchUuHQvvVVLlIisSKdDkhHczZVvCyYgcCVmMvGJjhHTtZUuzTtZrTtvVRBbMXxmAahEeHmMhHjJzIiZzZJIdDCcibwNnWmMeErRBufEeqQqQOofHmMhJYyjuUdFfDCctIiTBbFXxpPMOombQFZzfqBKktTcbBgGCsHUOoYyuizVTtvZILfFlYyheTtSsELleaIgGiImMXBbxEIieiWwEoOeLPpvkCcKpPTtvOozLleEJjsSJjKkhHYyZcPaAXxkKpnAnuUNxXwEeWasSmMNUmhHMuSpPsqFsGgSOJyYTtaAjWwxEeXqQBbajCcMmJCswYyWSkKDdjwWDdbBJcUxXXvVUuxuEeTtQuUVzZcCvKkgHcChKkGWuwWUVCpPyYcvTtZziHhpFxXCcbHhBWtTkgGKjJwdIvVvVvpMmPtTgGymMYVztTRrmkgGKMZBbBbIWgGeETtkKqQcCXxfFyRrvVYFVvHhRrfcCIibBBbMmrRSsFdDaAGnmhaAHwWMNgBbrRvVpvkKJmlEeYylLSsGCcffFFzHSshLlRrQIiIiqfuCcUFyYpBbFfeEJtTBbLlxXhHNnXxjPOoWwJUfFLluOojOOLlooKkXxsSzZpPBcVeEzRrGgZzZLlvXxBbeeFLlDdfTtcGgoOCUuMmNneSrXxRgGcrRCsnNtTQqTteiZzEeIZZzfFzEZzVvsStTHeEKqQkhTJjlLPpLlPptwWuULlBWwbTZDdzVJQqEjJMmTXxtrEerRRtTCFwWgoOGKktTUufCOvVkGgKpiIDdPpPockKdDmMxGgXiIimMIJiIjKkOolNsVvuUSwWOoiKkaFUuqQCcYvVpPyIifhHiIfEeOGggGbPpfFBTcCtDduNnUrMmdMmHhKnNkDaAiIRWJsJdDjrRSMhEeFQqkKUuTgWwfoPpOFFBbpEeOohucpewWEfTdDtmMNnzZjJOHaArRhGgoNLlrRnGkHhrJjcMmCdEeDWzOoZwZzFfeERSSSsUKkvVuPdhHaADQWwCcNGgFpPpaDdBbAGgRrMpIiiIPKhHdDkRFfvVrmkKgQJYyaAjqSstJjuUpQqNnPdcbBCDWtTwYymMlluUWwLFfPxXOnmMHhBbiImhDNndHhHxXYyiqQwWIMTaoOAtNLaAZzlVZJjjZAaRrzvVZAabhHXxBSsbBLsSAasStgGxNnXCcTteEHhyYxXZlLzTPpCsvVwjnNrxXRqECclLwWunNUwWYUuRBCEmMecblVOpPXxovCSsStYyTQVvSsKgGkqhwWbBHiBbSMmsIsZLkKwkMGvTtUussSSTtVXIixQCtdfFDTJvFcDgGdEewwWlLeENaAuGgTtdDsShHyYFCcYWJwWUcCcCguUEvVzZevVOCCKkccCfvVYyqQMmFYTtyxXlXxLsiCYWrRwyRJjrcIubmMaABUxblalLYyxXVMyYMmQdzZDGgrEeRoOrRPLlDdpNnfGgoOjJnQqmMkCtTWwlIiiIwcClmuUNnMmaAMzZLwoODJjdyWwhLmMjJhHTAaUErRyYjRmMrGgmuULOAacGgCjJQExOoXCcNneZzFfYyasSAateETBbBbKkHhpPPpJaZxXEeIdDiCmMsSfFkKjBbTtJjJcNnCsqTtMmhUuwjJcCWlLOpPfUeBbEuQqFQqUuxXmsSMLZQqmMzuUegrUtGgTkKSfYnNsSXxyFIiUIiuZzsKkuRPpzZDdxdDXwmTtMZzoJjOMuUmhHyaAYrRbBLyYlNfFdDWwbVvzWwnjnNEejJUrRuerkKZzaUWPpwexXcwVvWMYypPMudxXDUzZmirDdRKkrjMyYmroXIAZcCIiniISHhsoOKVvHDMmBbdhlLhHXIixgGZzxXAaVVvvttYyLPploOplLdDBbfFLzZzRlLPpBbGsSjJgwWZDxXlLKeAaEkdDdrRTQUzZdDJGuUhHQqbfSsqSlLFfsiIybBrRxyYdHhEpPeEeDykKkYwdTtDDdPauSsUmBpPkCctTmMvdWwNnuUvkKVAaDblLhIiBNIinNnbHImMihXSsOoxnZSsuxXUxlLeEXnNzNJLNyMmYnepPEmMlGgVvIJtTKkhHkKjgGisSTrUdMmDMSsTHhlLmOoOgGkKGgBrRbolLMhHqQcCtlLxjJecCEKBbkQLlkcCPhqQoOHohUuCcEeCcOiIoXzGgVvTtZvVvVsSzZxXxCcoOPpOyGgHqmMQpPhoGvlLhLlHGgkKyYnYyNVLltjJqQQZzqJzZRiIfFHhrjOlLNxAhHkwWKqxXFyPpDdCcYanvVNANnnNtTfFfMmicCdyYzBOocCVYyckdDGoOjJnyYNhPpziIXOoOvVzZaAGIieEVKkvGAagZzMsgefFjXxJMcCuUaAmOoEqCcaAQZZzzYyvBbHhRrOeeqQEaAFSsfwWEQYDdycQqCBAaUVvubyPhHSKksoqQOpHbBhztTJjXSsxmMeEdDvVnNcTtCBTmMHYbcAaCeEWwagnNGFQqEEeZzeIWiIwmzAPpKQqktwffFTtKkDdFfFjUueERrcFfGgMKRrktTwWOUuoTuUnSNrRyYnVvAaSdDDSGgpPjJqQafBbQzZUuqNSjiIzDdZYykYyCnNXIiAagGxsRGgWwrldDKgGJjkvVMmKnNtTkJHhjgvVjJnNFfGwofIiWwmMFIiFfwWQQNnqqlEeLaiFfIHtThGsOoHhSNnNamMAYyjPpJkKgsSnNQqjrRGgUuqGVvgqQvVwWlLQwWJOgrRGFfUuooOJxXVvdHOMmlgGoOLohcZzCPpjhSsHHvVaAMBbmGVWwyIisGgSYLadZzPpMNnEenNWmhHeEFfMcNnCDddSsDeEeVvFfeEEHXxEekKHhUuhNnYhNnxEUusSGgrjJNCcoOhHXxniIREeBbCXxeEPaAAalfFqQEbtTBSsCckKMTmPpGgMOeEdDiInJlaAUueENnPpwXxZWwgGzffNnFZzFqQyYCpPoJUgMmNnnkKNaKxKktNnTAUuaXYGgyBbUlLunNkhHkKRrHhLlJWDdkKupxXgGeEkKPpPdDFnwWDOoxhHXdOkKoWPpwIiNnDWXcfFNvHhCrRWwGRrglLcqQVzoYyKlMmLkuUuUTHhtjJiIOZZzMWwykKSslcCknzYLhHhHlymMZOobBcmmgGMGmLlrRTEjJeMmfaWwKjOBbpPIiakhHAavVfPpaAoOfOoFFcNnCbBAErRewWRrxaADZijIZBbaDdAzuVqQlLhHcCvUinyYeYyxxXRrXYARKkLlrIiaJjKQqaAddCMRUurmMmGgXxdTtugiIWEeOoYyOoYDdwWygGzZsVvBbEcClLiIeSRrwReEWaAdDEewroPpZEejJqQHhHhHGhgpKknNQqzZunGgNAapQBDIisNnOoKkSzTtXxuUDdBkKXxbgUeEMmuUuEeLlFfOonPpNnHJmMtTjskKOXxqQonNSiPpEelLdCcpsSPDucCIiRsSrUIVvhNOobBgxXTtQqxXGJjrqKkSRsoOwQqCGYyzZyYBvVWeEDdujXxDdJVobtPWwRreENnQqZOozfFVvyJFnNAazbWrMmxPpXPpRbBDdbhHeiIqfKkFQpPjEWwtjJdDTNnXCNnsMGYcCyGgGsEeYyRrGgGgviIVcCNvVdMmDKkKknmPpAoOaxXtUgGKXxKkkfuUFMGgmeEuMmPpUVvEevVjJCzrRZoLlUuRrOkVEetUuTVoOGfFBbjlLHhNUuBdJjDUudDbWwnQZzyRrYLlLBhNnHaANtTnSqQKkKJjGgRfFQjQqZzpPFkKWWwCVvqYyDdEXxesZqQznNLlQmMgGqHEeqWwhHQOotTNHefmMFtHhqJaAYygXxGrRlXxpveEGgQOoqegGViIvLLlhmuUMBXxtTGsSgVlMmPpTXxtFzZfqjJEDdiFUnHhUeEleElcuURrCUXzZCoCcOchiiIcCqQIHbpPlMtGOoEeNtiXxIpPDdHhTnRrzTtwUbBPKkzZXDdxpuCcClrRLHkKDdnUuLJjBVzhHZQqvlcCDWwuUdLHDoSsOercCSsZzREwmMdvBCiIcwAaJfFFfHmMhJvvVVpPFGLpPXxlHxXhJjgvhHvVQqRrmaAMGNwWjJYoOJXxjneENfKYyQaAxXawYypPWWwcEedjJdNpPaJjAnDDzQqHhzZRrZHhzxXKkhHKkYymMwWojJOwWhDdpwWaaANKkniIFQCsPDdjJplLggGrxMoVvaAWwOdDGEezXxdBbDPpzZfLlFZvTtVgiLleEOoVvmMAaOoIiMjJmCcnbVvvkKhyYHVcCRrBKkLrNnUUNnqFfzZIiJvrRVJjzZutTORQqrvVpYyyYPoLlujJQqUvaAXxGuULWwsSlgtTXKkCcSuUEeHhaOoOoJrRrRooysSYqnYdDyNcYbByCQlLiIQQqMmoOtRreiIPbBohxXHOpOoGgTtVoOvhHfFHhWwNnoblLBPpOZanEeNYyAxXabBqQAFGgNnJBpPbuhLlHUYydDjDLSOLRDYyaAdaRrAcCvxXklwWLzMGoObBgOoLlDdhKkHpMmPrRLlbTtYuUtucCqxXNNnnPpZzDRxwWjIiGkWMmgGwKGgrHDmpoOPotTkbksgGSKNnBXxZwWFfzdDGgbBbBsWwyrRDBYEHyYhepYypiIqQTCctVPOyGFfgZzPpVTtMyYsZzluphHvVOoYfFNUuvPUubZWwzBpJjyYjvVrRJMKkdDiGLjJrGgtqQTGgTtIgGoOuUICcinNpFfZjnPsSpOhHHWiIgGwtLlciIhkKaAaAaABgGVvbHqeEQbUukKrRsDdSRrkgSsGAaMmOlLBziBbKQqkrQxXEeLFfljSiIsQiIqjFfJqIiuZeEzUbBbMmwWuUBxXhQoAaKvVaAJjZzkBbNnFhslBegGJXxjymdDMzvVxXqQWfQqwHhWVvVvgGqYygSsWwdDcCZmMmMVvABbQqDdXxpCdwWYyJjDgKkmMhZjJzPeUUuRsSHiDGgsCAacSdxsSXhHYIiuLllbByjjJbBCaAUucJjkKpPjtTuUVbOsCcsSzZoOuUuJjUxXCMOkKUuWkKwcpiIPIiCqGgQosSsZzSIhHiPplcCyYpPXxLlLxXkKsuUMpshrXneaAzZEJHhJjjMmYXdDxyEeeELyYlqrRQZzjJtWwTMmgkKGOoaAmnNtaHhXAyUuYLdLEeZmvVMDdAaWwPLeQlLYNxYyzswWSJjQqZGgXnQRrquNNnpPhEeHneZzRAjjJnNFfKWXxyYkfFKiZvTXxEfFpPkMmkKpPRjcpViqeyYiBbIzZLlrREwwWYwGgWJsSjXAMmaLlEexPIKkipmMPplLXpHwWgWwHhGffFFhaKkPpZoOLltTzSscCACIiCYycGZMbBDWAAasWmhkOBbzZoKHwWgQGgfFwWuKVvLKGTnNtgSsTtkEeAalkWwWXxJlNnAaLjwwWCcwWKVvfVzxXkKJLlaAjHhCclmMBtuzTAavIibTtWDdYBuUUuDRruIiJfpPFtTAajUNnsTmPJjpMtITKkxXtdDiMWwmzZYdDyjWwJXSsxwHhrRXpPxHnNgzyYROoUrgGRcCkqQKbasbBSkKaGgPAqQBDdHDdRrqQhICOoVvgGdsSDqUuQcnUDdkBfZzFAabryYyzVvZBbBbXNzZvvejmMWVPpXhHxkYBbyvUuVKkKUqQmMUuyYqsSbBTtgXxiyYpPtTLBbWHhqQSswwWaAPGgLlcCTJjthHxXeEVYPpyvZAaaABbWwdDzWZMmzwYyqsWKxXsvmcCiIWwSeEsMbTtRrDdeEDdQWwqLfFZzfNgGnzZDdFjJSiIoOfOeEdlLDsgGSMltTuULSdBbdKusSURtTrBNnMhuMfwWFFSXxsncCNfMmJiIjQbBnNqeEKkKkgGdVvdDDbBeNgcCpPLluKkRkzXxZaaiIDzuUxXNnuDuUlLYkeSXxsygGYEKZRrzSsKkuAPpaqeikecRzBaAbebGgBEvkKVwfvVkyIQqiHhRrTtsXuFfUxwIiWNnwIivxvVXVCFfTwWzPCcFuUtTkimMkKQcCPpsnNjJpjJbBUuPSQqgkKOLloGZIcCfFEdTtoyQqYOcCpKkGgPXNFfnOyYhIBbhEcCeCcHjHvVhJoSsOoOfFkDdBbKhHNDdbWbBcCwnNyYuUsShHvVBiEDdZGMmuiIkAaPlVvZzrgGPpRVrgGAaEnEbjUuHWXxjJzWAzEWrNnRwecCoOtTgdgaZWmMZzwCczVMmGgeExkdDMmkKOoyYRuIiUnAazZnXFfxNMkKgrYyxPpkRrKZzphzeJjiIimniWhHFfeEwYyINcrRCKLRrFdJHUusSxmtTVbhHPpBdDDKWwJjyMwWFCeqIiZzQJjAZeUUuuaekxXIiUudKknvVLjLlbvVQquUFfNnToBUTgWvWwZzsSNVvnBvxXVlOoYyBbRrDlLdqQxXLFuDpCeQQWLlafFAPpUuNnAziIZbBfHnuOoUNOqLuUlLlJLlotTOLCcoAaOZIinNYfSDdRrqhHQJjsDmRoRrOoOMmDdObnNBUuFfKlLziKkIHhZfwYyWnNFSsnmMaAKGkKmbBZdGoGgEaAebBoOagGAXaXxXxrRAAAaBbamZzYyGgIEsSeorEeRkCPpcKjJlLGgOVvKMcCmqQHhnpqQPPpNUxXdJjDGguZzZeEJjZztTgeQEnNGguUelNnLZzqSsMnzNcCiRrAxXasfFrRuUcCnNSoAMhHmGVSsvYzoCcdNnnNDOerGfFGAaEMmeoOfFuUnNRXxrPVeEvoOXBbxghiIHKkgGhfrRFGbBiLlLNnSusSOoUuLlUsrCcRRrSvXxTOotPQRcHiIbBboVvVsSRrRdDXAaxMLWSazKHPphXxGEEeeEYhQqHbYiIyVDdEevaAAmajJAnNkKRrAsHhUuSUaAzmMbTtrRBBbZcWtTOoUmMuwbxPpsvDdAlmXxgGMhHdDmkTtKlLVpVvPEevSsIGgfqNtDdEepPLlEepuUNnvWwbxXdbBqEdDeyYfFOoQfFdDqQoFBZzbLlfaAOUnNuaAoUDaNPKktTaAUuMWwvWYybBBRiqCZZzzZzaXxoQEeYyYyWwMcoTtOCNnmqCJPQZzqmKeEBbVvxkKIAOalTtgokKOnNGMmMmizZxQqQqdDidDSYyoOsslFxKOoPptTkXIifZzOoNxvMLlRrqQlJjLrlqSsEeQLjJXyYJyYUujJXAvVaAazMZbZzlXTtaAfxRBYdCcDyYybNntTHhbCbhHaAyYBpPVvHHhIinNhVKVvxXAgSeBbvxeQqRSUuhHZLlXxMmmfSyYXxmMDWWwpPwXxdVvOouUkKXxsFvVSsfFSssSAaEemuvLlVUBzcCZdEwWeDGDdgnNIcCiQKBbkqdmNnLvfaAttnNTjUenNsSEmMuJnNLlJmVvDdqQaAYNeEdDcCEbpPBeHhOoAbBEeHhnIiNcCcCMevhxeoOWwFfCtTcsSbvdDHhVlLZzvXUoOuxiImmMMAamzZMLzZmMljJWWrRwwfNDdsSwWSsnFrRiBbyYBcCmMeSsDyzZYWcCsuUtTeEfUumCcMFurRUfyYFwpvVPDEedpPWwaAktPpKBbjJrrRAIiJjpPaLVKHCmnNBbMhYyrRlxPpxcCXoaAQnNqOOnPaelLEAZzRVvWENnewLLlZzlAsHhSbBtqqQQSsTCqLRglLWSKkcCsPJHFfEIBbOIdvVKpPzLrREejUuJlLljJSrRgJvvAagGgGVahEeMmYNRwNnWrcpPdDpVvVWwTqvFzvVFiOoIyYKkEKmMPpJKhHyxXNnsbBOYctTtVjJDdlLTtlRraEWLkWhZdqQZYyUucCuUzCcoFnjJTATtEIinNeEewWnNWwDdahHkKaAOkmxxXCcljJfFWwNGDdoOZzVKqpsSPGYvDNnEMmpPeDdgAaoORPgYDdSHhsYyhcCjJTthiOoIaDOKNnLldpPDzrujJJjKkRvZbBSsSszTBTTAAFbBfcCaoOSswWZcEeCYIdoOwIiWiVvPpOUIiuAalLcCFvGgfAaKYytTktTOoLltSsFfKkgVvGMgJunyYfhpsrRSPHFkMmzZFfKpPfFvQPkKGgpPpXxMARnNtFfFCceLGAEuEeUJjSsGgblBQCaAMSIiRbGTNnxiIXtyJjYWwVHitTIOohOEenRQkKyYqMEMvVhjYylcsSCJofnnNNFaAOjjJDHhvVzguUGZwvaUuACcwdDrNnVvdDZRrzywWYWwdDxXRJjWEXJnNqQoOjOoWNngGtTwMmdDhEpEePzZocaAJUuCcjmvVqvVIihBbNnwWHLieMiIgGmVLldngGzZNnNRlLXeEAarRhHBbMmcCWVSdrRDvVuBzrXcPpCybeESlnNOvSseEKkVvVaGHhHtCeEepPEXxvVtJKUbBukKkxXzZdDrRjodDZsGgSsYFxXNnsYySSWJjXnNNnDdxrRrTtRcCDIidjVRrvTtSZVvzPpnNOosFfgbLzZDdLWwyYOvEevVyYVsxmUuwWoSssShKBPjzPpZgGJGsrRGxBbKkXqVQqCHqQaAoZsSSsuRSTtsfFVvrvYqzHlLhOoDdVENNnnoKkbrjJDdJSsAauuUUZvVxUuWQqBvVCQqcbcoOJjGgmAaSADELLsSlBGxXtSsTgSHwWOSsbsSyCcYBohTtNignwdDXxNnyojKEexJIOoiBBbSsbtkKYvLlrRcCVvvVVQxKklgGPMnNczZzaAADdKkLloOaLetTYywamWwjJrRyPpfQkbLlgGBPGVvahQqgFQoOHhqkeErRpBbiIPKvzDdZhHSsiIgcCDbclLLIilCHhhHGgOskKXxUNnuNGgnYbByeEHKVvjLlvVMmLlVWNnaAxGgaALOorRLlbunNDmMaAwZdmMeEoWWrpPjJoIiOTjJdLlpdDVvhHtdhHwMmvAaTbBUtRdypPxxMmInNMSyASsQSsqZzxXLlvVaJgvVGXYyTAavEeVfFyYPHcCKkhcyAaYIHCcZzIihRrEmOoIiVoynKKwWquUcCQqQdDVUWwrAPpHnMLlrYJjqQtTCtGaSsXwcIiCWuUvVQqIQmIiTeWwjJBbnJrGgVvIqQiaAPpRbypeEbJSgQdvVYDdyPpupXxPRrMmkLNnblvVEeLBAAaaBbcXxCLsiIUtTVOkKovQqESsgZzkbBxGSsqbnVvcwbBWQAaoscCIEjvVbBJLXfFxSMmLqQlYmMXhKzZcEegGOJiINnuUyNJfpPeECcRTtipLEzZMzZoxOoUuDdXCYOgsSHoOYLlKkyplLtTjJlSVvTtsYXjJxaAfkaAPhHpZmMbSsBmiIOoiWwITtbeEhHiIonNOBBbQmOoxXXzZxQHSjXvVBnNzZxXvVkGgUaAQtLltTTwaAkKVvBbyYymjSlLsJErRYyeMYQEeqQIiJjMmViINfFnvAaqEeHJDdvaJzZkqVoOvQBEPwkKJTzZzbBZUQceEnABbanrBbtTAaYyWwUuRNzRrMmyqQYXlLtTAIpPJjiaIAHhVeHYyDderRXnMUYyAaYeQqSsEEMCcLlmreEHhRtwWFmMfTNMmPYAazJjJjxFfuUGlLhSsNnHEVTtvTmMcsiIsSWWhqZzhJjsSoozPpFfRrZkeStTxXszZiooOIyJjWwYCFfwBJzvGggfJjIiNfFVfFvCpMmrRPcwWnOudDzZogwWuUJjNWwnNnjJiiSAQqnpzJeEjzmnNfFWwAaWgGUuGhHhHUujXxJQqTtQqsSnNgJGbIiIiWwdHhFNnqFQqKsSXxbNnBhHoCSWOTtMsJUuWxpPPZzikKgYyGcsFVvfttqQTTFfgGooPplCnZqEUFpyHBbjJmMoCcOgWvVByRnNrTtYzZGgyvVYucHMmVbpYyEipPIfXxhnNWwqWwkKzZQHqzZdRBazZruoOUAQzZqPVvpNnalfqNnQTUubqQbHhdFfTuNnAaUKrSkRsSxXlLxiIIirXxRQqrRRrXbhHxgPLlLlElLexXLltTPgoydDQEKkuKkUmMBbyYYhHMzyYNnqhGgFxcyYCjQqWKNHhSliOSsoSsbBFMmZSsAbBxUDdTtbYHgeEXxBRhfPpCvVUuicCNEeJjyYWWwtZAauyYnxXNfNkeEzZttNnRDQqWERRrrkKefFqQwWEDdsZeVAavsSwQNnQQCSsAENnXQqCclLtTnXoJiIjjNnHhIiJqaudDtTqQPuUYYfFUfFBkKEebPAakMmKaThmMzZHZKdOAaGoJjOoOojwJsSjCcWkKEecCwWIiGzNnHNPLlnNWTfLYyiyaoOAtTYTlBbLKtnNoencCosSuRcFozJjyDdYlLkKnnNdmMxXzroTtbBOcCFfJNiIFfHhBWCNoOnbWEfqiIbYvGgVyaABQXxYBhHaiIArRbXxbBfoOqbdDnNiHRraRdDDPrRrqiJWwjJVNnQexXLlEuLHzrRlLZhFcCbBflcCVvsHPpeTtWwETtBJjepQNnaAqCEeAavVZBvVpPIcHhEmtKwWoOgGkTMZboOBJjjJxoMxXmtragkfaAFXNvVYynbBHsSRrxacNnQqIjJleaPfFpsSnuUdDNjJdpIsSWwiPsSDdguUVvHLCcNnlGwWhQqYyvhHVHPpaARrjVvpPLlGgJMmgRoOqQrhHhBbMfUuFxVfiOojWwTNnLlEINniJCcjsSQqAfFgGmIiqQZitDdWwUGWMmwgHWRrWHhwpVvXmJjMrRfzhDdHyYxXOoYyWJjwVvUjJuZnNJwtVzZAjJaFfCAacvTBbWwWXiPpKkIeLUukjSsJOskKSoKnNKkYytqQXTTttOoXxtbqfaIioeEDdMoZLqAaQafFAgsnNrRyYSOKgGMyyYDKgGHbBvVhfiIFRVvVvUgzlLCrcCRIicoescCKkBGgaZfeEZbyFfDWwjCcJdIbAaAGgkhdOBboDHSQqUGgBBbutTAaYEmxXTkKqyymDKfFWVvcqQFfBUuENneVvBzoGgOZwZzaAWgAyVXKDenoOoARBRrFunNUJjoOBbyCkHHqQiaAaAvZnNvVhuUxXHAQqiInAaBinNxrRrYyXxTUuthHudXIoOvroOkwIinNpPAVCnNFKkfciDdkXxKSgGCcQqtvoOVuUTtTgYyGIdVvDigGTtJjpPsSFYPpsSsSnqdDYyPeEMmDYPbaoVvJpBqQqwTMmMEetEeaATgaqQTtqGGgAVAxDiDHhNxXnXxkKvjJVWQffFcaAvethbRromMOTBbnNFEeOAaoISsiNnWIitTTtkiRrXrWJjzvVkyYNOoJIijwWwGeEvqQxqEWwihHLlnNMJjkdbBfFnNmLjVbBSsVzZvAjJLlabDbBdBcEeEvVendCrjhHMjJVveqQGgdQvLlqUIztwWDdvLOikNeLDxXwWGgBRrxXnNsGgZSwWVvVZmMbBuUzRCcxsSEzZtudDtTvVnLkGaITtMmiAVyMKkWVvHWwpcsSYrRBbzZOEoOPpxXVvdDghnmCctJjvVqMFMKkmWwZOXxoaAOcCwWkFfTttTdDXxXxoDJIiQqjdUjJhHSsIiBvlLVbuWjJpPCezFqQLlVQtLlwTtDJjIMQvEGGiDdFfvqQeEEyYJEclLuABuUtDlLdNMmTCcVhHvesSpPoOSsqLarRVHFeAsDdNyYLlIYGYyAcsSyuUeEQrZzRqHhEerRxNnXkKTtsSHhtBWwMFTtuhIYypPirCcDdjJgDdkwktcLlCuUrRbBoOuTtvTPSxcCpPXcsLlZzSCcWDzZdFfrzVHVLljgGeLfYpPljJLxXiIyoNncQqwUmMuHTtxSsjJXvVxXsAaSRrOoQqwyPpxXmLuoOUlOdDodNnbhHBDPpPdRTlxXNCcuuBRrbNyhHJMundPKkKCckpDvJTyYtjVzZazDdZzOuwWIiFVRrvxXeEsSXxcZnRrwDhUpPuWwCHcZDdzPpEKRRrrCjyYJlnNzZLcWwkcXxIifIKRQqpkZkSIhlLyYqQgLlFfOhHQMmOJmTtliDdCYZsXxpTtPwyMRXUuuDdSeEsgSsGoLlAmgGbFfwQpKkPPpqmMXCbWwVvfFwWhHDdKWFfTcCFHhuPSyYseGVvgwfUuUuFAWwaJjQyesWzNBbnZCcKNFdjdBPpbDmMJYyWwKiMAamLacJjXmMQpPqsiiIPpWCccgzGBbayYioOgDkKIhoOWXtWwPzZpnRnNXxAaRJxXRrpWwCcfFyYLlBmMbyFgTuWqBbQZdXxvVuUdDCNnnNQkKOKkjmMdQqiulkPpXxcKnkKNolLkKZDdzZdlLFfOdkVhRmEkWqvVDcCwtTWdsQqSqQuUJbBjqQQPpCFeEvVOohoxXOKhHkVvpPoFfHoOGgnLlNXhcCHlFfLhFfKWmMvVXjJxiIXCbvzZUtMKkmlpIiPfFskCcCcdmBbZzMmSbNBbXBeEGgPIUfNyYnCYtkKKkTmMldDLINujuPHhaEelLRVXKmMkNENkKwcCUuqXxuxXYyLlXnAaqQNxtJGfDpqQPVPppKiCQCcywfDdFIjDdtNnjVvBHhPAaznQtTFGgfHhHhqOSrcCXxHOGGBqQbUugFfoWszAaSsJXxMXxCQntTlXeExdNQqikpDUyXxYVvglLlLtrJCctTnIwFfyYWwDPgGsIiVvARxXNnrQFpPEMmMyvpFREeugGayYecNMmcLvcCNoOiZlLlLRrGgVvVvVvsnwAaWrXzsSYlLyvVWwXgszMyCyYYycYmcNnqQCDdbLlBkKZAnNBzZbesSwWcCKgGFfklLmhJjFffSnNscDdBbflLChoZzOPjoeExGwiWwuvubhHdIiDBlVgGyjJaAMmeFFffMWwalLvVsSioHbBOLfkKhvVoDFfuUmMzZgXQqxHhpPLlImMabBIYyYgBqxXQHhbSkvVEYyedWwuUkCcPkjJFfuULliDdFfxmNjCRJQqjmmxXoOqmrYFIqQRHQVvvDdhBbDdNnYyJQFxCFfKSmMsJTtCcsHhHeCnedDEiYjhayAlJOoiIvMmJXxBRwrbLljdxrRdDLlOoQqdxXDDaxXtBbpPvezZpCcPjUADdAJjKkHharNMpPmwWEOoaEGaAYyDMmdwfogGxXxyYXcgGCTyYtMmOQzZqbnNDdkCclLKDeskKlsIizdLlzpPqQjvVNeZzcyYltypBzZaDdcjJCuUACwWqcQqhSsCYDgyrYVPRIirLSjJvxXRrHhPbtTWwRgGkKSOEebeCcOowWIEeHXjMjbPFwGggGKkRfNKICciCcONaatSsataAaorDdSsSswzZSsoucwPRNoKyYPyYdZDFfRrQqkKIKNTTmMfcQqHUdxXRrDuhtTjJkmMVvZbJjBeFKkKkJHIfFOOooKkxXjJcCccCgkdwWDKZBoteEZzCcFuUABbGgBnNVRrPpJjPpvEeXxvKkrRnLlNVbeElDKJjAlLCcmMQblMmLiYWGcCQuWwhHvhHVkKpOmTtMfUNQSOosqbyCwWmGQqqvyYVploUmqQrdviZzzZVvTdXxrZDfUNnuWtgRrchkYYkjJKyyKEehHHhLAVmdDTtXfewmMMRuXQquKkUYlxQuhHSAcCMCxaAUuXNncmdDZqQhfFHqCbBIXxLlkSsgzBlLbFfjJZDhHdVKhHkXpPxvVBlLuDdbXlOGgoDezLlYohSurDdlwWmMmstCcdDmMShnNHpfmZCcclLnNqCWwcQCrRXfAUPvVGVjRTtTNWwVYJjjpKreyYEhHJewWGEeZzEOIiaPTsStYXxilrfNoOYkfsCgLzZlavsSoQQqqtNPEaAffFkKGgnnNrRSeEsREFgGUjJkogGUaGZzhHgAJOfFUyAQqaYHhVvWwaALVhHmoDmqnDoyYzoOoFwaxXaAAzZszisYyOJbKkGvcCfRrFalwWfFLkwXJjxEeGruiDdDdjJCDdjJcSgGDKkTtzObtwoOWiITRPKTJjnNEetkprLlvVWfFUulxcWftTqQAZuRredQqDGocCODdZCcRRVVvszNASsGgDWwRrTWBQIUuiBiIEgGMkFOKGjJwvVfFMmaUehmiWwjKkJpkKKBgGkaJjAKkKMLlYyjXxzZzdDWNlVvPQqpHhLnTdaADtCccrqollyYOojJqnNQEJBPmMcCpVvGmtlCrRcFKkJWGgpugoOUuGzZeEXxiIEkpbTtHTZzOiSXxRrEHhJjxlLXQIidDrRqJqpPQXfsAaiIpPePpECcpPEEeFlGeXMmxKkIFfsSihHeEsibDducGgAaAalLzZVvRYcaiGnNgJjbBQKgCcKtpPlfvPzZnzkGhjJjJIiuGCcFfytmMDXxtHhJzICpPPpuUcodiIaAoTtwWdDyWCYzBbjqhHcCQMNUunXGgdhiqDdQIGWjJGgmMssKblLXVcQqBvHhVUHWwKLlwoIbDBbDdDdsDimzxXlLqXpLAalIjCcPVLCcVYymMvWosSQmMqHhnTtZNnpPSADIidapmUubRrxXxcIrRHtgGhrRxlGQAPTgrRlvwWevFDvAsSWwadDCcSUBUWKEYyprQhHrRKUOtTAQyYqvVEGNvYKkkKCrRcwWOqBbQoyNpfFbBQiItTPJzHRqSsVefhgGjdDDdDdGYPpmMDCNjHhrVhUSspwNKEsSHhfXQWweVYwWgNnVHqpZzXxQfncqQCNFrhJBbJgGPqhTqQKQNzZwSsWPpZzasSqJQqmRrytLlCcGgTCnMmGgBgqQGwiqFoyYtTUggiITwKkxTsAaNeEeEPvXxgPNnXWfndDauUGKkWwKJZfFENnayYmMxXXtTtrYyVvRqRrEenzUZzuoHhsAVvasHhCcSYNnyYySoOBlswAWwUuRHhuUoOhhPFiPpYIltBjiXQqAXkJjXMODLlrvfUWQYyOoZjJzHhfFEevmasvVSdNKkSwiIWFvBpftemvthHTaAtIizVvSSfFssonNymBbkKCzZhGgsSHDggGgZzGGdNKiIjVIfBRwwytTYWSsFfLfFhHSSssnvSsVOoNXgGMvbqQbGzdwWarEBKtuLlMmUqDLlbByxojSsqCbwWBAyWBbKRrzZkqQOoXxvzDRrEoOVvNPhQqHpNCcuNnUplvleyLwrDMgGrRAkKoOrpPRlLMmFCuYysSUSLlfFfTGgVyYmnFoIEeivVwXRQqcCwBunERrFWVjcSgIiLlfXKkpBUVvQqujMmbRhHaAdDaCnXazZktbBaEeMmeSpcbBgMwCVCySoAaOdQqvlhXxHrRXxruMYwylLyRiLlYyjJSsIfFrPxXpIzyhHYrkKUupmMPscCwXqxXQxWSjfblnvThSTDdKCclHhLkpPVMhkKHmvNewMXMEEziezadDSsOUuvVjHhVmydvtKKkQlFuUJjvVISXxaWwNnAsxXXaAxFqQaAkjJkdMGbBgmUubnIagfFiIvVoqRrVmMvJjQOQqVvBbTTsSxXCphHONgGZsULLllUunNqcCjFfDEmxXyeVYEiIzwzZbUnZGgSsLjJqQJrHhrRlULicCyYLlkhHZzOCZXAcOgDOOMmEedDzAaAaqnNzbTtItiITQTtOoqBhHrRXtTDdzZlLZwQTikTlpYyYeUudDxSdNLlvVjiSsIZapkusXxQqjJuhBhbmHhlLTzaAPoOpZTtbqQadGDjJXIuUsSpPPSophHGPPdExXoOalAqkSsTTnNZFnpvlSJYyJpJtTOHisvlLeeKBnHibBJdddPlLVLaAlvpRktTKrGrRgBhQirRdNcpjGozFHhdyZzaAbBYFfoYyTAatCciCqQHJjNnOlIiNTXxtHuUhniItCGqCEeNmMyiImvYxXPtZIbSXiaiTtfFDdVLsSbBqTrKkRBRrvVtBdJojJeMQqmCcJjVWwnvVrkwGgpVrUqXxQNnpJjEePLjJlHhKXxTtkuRNnloaAaAEeYyYXfEeyTtMmdLlDXOoxvVvGHFQgvjmMDdduRTMawWtTZJjtbmWvbBVDdKkMYCcsShAQrwWSsfFqwiIzZbaHJjUHIzXxZViIvHhfldUjhqQHAeIixXEghHLlaAjKkxXNEuklbXxlzipkKPyqVsWwoRGgAuUJmBbADMmgtQqTGSDtJoQqKZfsSFzWIzaAZitxCcZkhNnhHHtBpPsbNbjESKkseJxJjmMYLPpllEjSmsRrEeSeEoAsEeKCjJXxcBFadDAWYyotRrTiImejflLFJPLUFMIFcYJgXdDxtDdTNVblnXGKrRkDJUuPvVIecllLLYysWTFftJuUjfFebaCoXxBbRyaAYQOoqJrRopROohHZHhQqzqYyQGgRrqXxQvVnDdWpzmoOLlNiIgjMlLsGKCzYpWBbwLldVDZzdfFVvUZbBzBCEoOqQoVvOoPRqQuUYyvuUbBVlLrUrfSsFYxXrlGgdDLlXxCcREFKRrkfIaAlJjkoiIbGjJfAaFvVqKJGsSQAapyYuBhZgcaAEgLhHJjwWeTaAtYyoOedEDUuPpdtTehlPRWwuuUVVeEBpPzEtGgiUuHhfFfJjFcHBuTKUuUxYUTtAUuorDAaaMTnGgGgoRHmkKJMAaTAanNYDdWIiwiIJjZztTQqinNJrALIFfilKkxVvYibawWABEebBkKIhHNwchHkKCyCcyYcdDCSsHVQEmlLnAyZzNNvVXMXxARfBrRbFXxGcTNaAQJxujJUlrRWSbBoOqMmQuUIizyiLfTtgdGmMVzcayYACFfZupPKtjpPPjLfEeDjhZVvrRtbBnNyYZHsqrhnwWvXmaEOhHMPpmofFZADdlLaaFwWIjOsSoYybqQByYBCxJvCsXxNyYnRmMSXxGgBGhaVqKDZzKkrawjJBNcCuMLlFfoRmlNGYygNnnLqZzAallzlxXLVlLYjbIijJIXsSMFFfriTPnNbBYHxXhlKkJSIKmvVaArZzmORrRrosCvyYYymMTHEnLnQyYpFUunNEkAIianNPnknNhNnSsDrAwCcWwyYkOAaRHhfKOdMmQqgGVotxAdtTrzJUujhzAjXhzZcCHxeWaAzCxXloOImtiaAIOTGpPtTdnJrRjNKpqzkNVhTuDlbQIhDhZxtYQfvIGgaALlhYyvihccCWbLlTtBYymCEGQqpgbureNemuUMXARoreBUVPpDdpWwmibWzKbBUuIfCcFYyikxrjsvStTJjGeRgWUdvTqQtAaVvSOojSsBbhHBREIierjJOKWHhwNxXRlcEvVkIPwVQclPgGhHGgaAGxtPpSrRNApAIJRAarSmMYyXWwWHkxYycAaCpPfFtyUNnuxSBbdzVvImdcMXjnwfEsSeFeVJjvESbtgqbBCcUxXnNYyiIWwyYaAPpOEKhHkIFFfKbLlexXeoORrlLBGgbOlLTjdEnAcoOyJyYXmuZzhHOZzowWuhHkKUwdVvwWgGDEepQiIqAVzsSZvAmMRriNInwilkQqvIZhCcfFQqHOcgGCocwwSgGLBbiJjNTtnMbBUSlLfSshHUvVuJxQaAqXTSKNnLvVQqobsSrgGSdPyJUujBbCcbBkbBKAanSuoOUcAxAaXaCMeQHsVzrFfEMcfFQqCmLleBbYyBocHbBhAHhUBPRNeaKQzXfFxNyYnxHJjhqQMcCxGgJGgxUuJjCchMWUrRuouUVywFgWvgivsSBbAnjJKGgkVQFfJByYcNmoRVPpTsNVmKkMcyYpBbPTtsVIiaXUgGcorXxRDhECcBsSbCoOctLJBbjaAnASsNSLObBykKRrDdgSkQEetDckUNnuKhyoTIzZitrRNFRrxjxZzXtksSSsjCcgijLdDnNWWpiLllnrzRrKvkdDKuwLYyjtbXxKQqqqUNsTtvYcvftrLFjJLvgTIioOMEeyTGglLXwAVTtSsatslegSKksbOvVgBbkDLhtTaVvnlJrRVzZuUNnyYxIiwWqppPPcCjTObWxGgkeswWSXwdPsLlFsMmuUdPpDxXTtSCHhAlLzJvVFOoyBjvOoOroOFwWiSsWKkQGfRfFrFwMuGORyuUhHAaYlZtTzLDygGqIibxXBefbelNwWrRHpGAaNmsdMvrRagSsadAaDigBtTbLlRnNEeVWADlBPPpBbjKkNnAjbSYPeiijQIIjCdDcCgGuUBidORVvKhHpaABbLSfFwWOulmcCkuUVsBQqJNtIioaMfFjJmvaAVmLlTtMIYHhYTthmMiyYIaMmeNdyWADbBBSsNHVvALGjyfPpioNyYjnwHMmWKkwIZNmnGRrgNrwPxXpWRMOfZYyzAUKExaAXXxyYKosSHhJPpPpcamAaMIiDdZztTAediqKpzAajGgdkBbKflLqWFaApUuNXGGSdDCqZiWGqiWDCslQqLOobHLlSsLaAsSGGFoZttlLTFbyYBnPpNnTYVxXvSsMYMpJDdjKkQKFfCcMvYAaVGgPpRixosSPpXxtfUprdzZBbdhoxHlcCtTLoDdCAruURTfUifizZzjJkBHadnNagDbxXanNAelVxXlLOuuUULPpuRrVvRDdrxiIYNnpxyrVCBbPpeeSJjsJQqXxjVeQqczWoOwtlhjJHuaATubwWBAafjQVfxADdHXCpzRrZJfzZKkFoOeHxXHMNSsPpOJDpMmgDfFsYySQXolLhKSlNUSpYyUuSoaAUfFcCfyOofIKLaXKkxmyBbLlDdkdDZHhdDXxzrEXMFaqKkQAiduUkKEfNnSsFWSWGgOowFyUMtTmubZjJzRhcCHeNkaeEHhbyYYsdYylkCRdukIfFOcQwPfbEhMiIHvVBaJYyyToOrsSRpEePBfNYEbtKCcjmSHENDCcdiFfDNPjJIbBBAkWKKeEkZiXemMEsSvVHgdLXANjHhIQIiqiKkJngKCotwUpPuZoFguHWSVgQqfWiaAEeQqEebBiJjISaAsXsTtvCZDdkENDpvrUNRSsrfIclZMpRAaXAMvIOVZvFInNifVhlwjJfFWOsSAafdIYyLSVIiilGWwgLonNtsFRrXWwlvVbBLYIrodDQNaOoQqXdDjIidDuUMfFmjSJjbBcCEeiDdoODeEiyYcjfvVFFfJSsErROodUYyBblVcKkXxkcRAzvVZeBPiGnNDBPpYytuGAapJFosSEewWjlpPsiICrRDdpPbNdJjmyRSsrpkKQZmRrdDrBbxqzBfzZBJEzZCLlcarWpPwRAzvVZnIjJsUykKfFrffMeEmLlzjJZeEHwfiEZzZzRzMmbzuUIiEhFPpuUJjOopPBsSBDGYVvyzTtpPZIgMmVZDdvHrrRbBdNnrjNneCcaGcDNnkLlKcRrcLlCDdNyYsmEeMzOmzXEexJnCcuUJjugGxwHhwWiqQOzoYPSALuOQxxvKWXywRRbftOxXdDoOHhdGMmggscQoOajJdDUtOlgfuNlrRYSsqWNnYXxxXTtCjdDrRRYyqQCbHudwWwnNWIimkyJjCvXuUxiIOowWWwVFxsSJjglSWSRrWwIQaYydUvRrSWZYyZzzokREeXxReEYXVyDmMdglLGshlLGKjLlHhiImLDpeCqnkDdWnOpDeOnNoANncCaWvSlmMLxXdDafnlWwLBiIaxyTcCNGgogMmGuUtKkTVvlTZcCswFcCFKVomMTocCkyJjvAzmFMjnCJpztTXCcOaGaXwZsIfDdyrIvOpSfFsmzZMPBcCVTbBtIgnaOoVmMCUJfflVSubbuWTquUbBKyZzLnvVfrPvVjXxxGgyYvVHREUZJJLESpPNDKzZpaOoxEeBbXPVmxIaAuUZdDcgGGgFjjlYyxIEefyYaryTtCWaBbmGxVYrkjBbKkSIisaApPJKJjAAOxFWwRYENieEJCsSQzZnEegnJjuIaAUuGgRuUrZKljLCBzZcyKQdAveEPnRrGgGRrAaFnNfzZLlubHyTtuBbmGgmOTBTFfxaDdADtcKkVjZzAayuzdPhsSYUusgDTWwahHkpfKkUgGNeEEqQnNGDxKmTcWsCcfzqHBcYiIXmGLMFtCaxXAJkQqeEVCCDdUnlskHGgZzhkKLIcDsMpLlbgGkwWDdYtwWBbQAATxubaJjQHJHhqQjhqQvIuGaMhHCIoDWwdOoKaJfFDdjuOayEbiIPbXNeWAPpFOokCjpPpPJOPXPFoOoHvqnNQdatTYpIMmzgCOgvrxqFfQXbBnfpQqfUuKALHwHzlrXSQFbBMcUufVDdXmaqQyYOkBoORElwQqWBiTtqVwoZzODJxXhThHtvVytHDdnxbODdhEZPVtXxvVTQjJRrjFFWDChCcqpPxQqfFtRbTrhpyYwsPRbThHmiIFgWwyyYwUXgBXxbwoXTtxOFEjJWwIFgEtTejPYyFZzDHaCgbqQcCyYubuWdCUHVvYyEUuJjGgIiuekGCBQJjxnNCSTBHpaAAMvhHbdcCfyYrRrRPsMUuwNdDdDnOopPIiksOsfFZzKNnaZnNHVWdzZVSJeBTtZVNnvObSsJQqpLYNMbOVqbBKPrpPKpPajfFujiIfFXxgKLlkKmMkGnYlLeEcCUQqutTIrCcAwzZWxKVRiJyBbkyrOoRYKNRAyhHyoWwETHhtdyYsSdWHNGksTtcEinMTtpIpzZNpKvgGmMtucDiiQTgnDaAHFtVHIhJoldDGgtmMZzaAptfIcChPpPZzryApzduylLYIiomQZzqfQBijxPpTDjSPpNtpcCCqEedOrRXlLxqxJjJjhJjXxHAKTMEHJrRcCvVjVvhCcXxoOlqHcCRLlivDuUplGnNEeQMmNnZwWPkxozFfZLmcCexDbnNnNuXxzBDoOdmIpPJWwfLlFjiicSRDdroQuDFZzjJGLXOitdAbLUuZtFoOkbwbzLepQbWQXzZlxJjLAaQvojJmMOBaArRPsspqgWwxXOFOojJIraYpuYyuUUbImMPizkKZvRDdXECZGgCxXczegBwtMIiuWPeEjVKkINSzZBFfvVYtTfFrRnGgFpPFybmrHquJjUsoAaOWeyKCUSsZGWkHqeDchpPkiIBbKhWVVLDGgduxXUwaARRUpQxvVunhHcCNUpPXlLDdgjPJCgspNvsDdDdLlLvkDicPpCHzZsVvBhqYprRPSIFUOKONFcZzprRtcvcCErhHReAxUnXLKLNnRRuxrRteTXxsYhvmVgNnuXipMliIspZqJOoPczvJvVBhyERxXreLnfFzAtTimMYpPmKkGuukIVhaAdWwRrypGhHgvcsNnSCKkeIgPdXhDdDiZxElsvbBsSyYVRpPHlLtPpVRrgSsGqoOmMkRXzaYyAZOyoDeGjJTyTwyYWtYUfFzZkYSJEDdQTbBtXddcoXoaASkKIsbBNnegZzghVsIiKoOLlxXRrNwgGWQzHSEAHTtxnNXdWCccCVwEdrozfGAalLIXaHGKGFfzZdKSJqsZUPpuzchOoGMgGxVvntIiLcOoCqbeEsCcnYEvjqwWlLleEuUhbQqdgGhteEbiqQIZzcOXlLxfpXNopFkrARaOZljHhGIgHhmCcMrUuRdDAioweIdJxXjSaIcBmeABpPdMeLjJulXHAIYyEenNaAaiQNfFOizZrjOqYpPvFfSsZrDuyMXJnuUkxVXdDlsibwWNlLwOocMIGCcNhLsfaTtAYlbEeMmOMmTtoSXIUunaIFrDMmSsSEnjOQNnRnhHNwlLYgidZkbBOYyTmtSsTVVuUjJkKwWtKkTqZmzFfUHhtTufOofFJBbKmYynNMmnhLVZzUuCmMNnqkNnMrrGNAanPeEWaBbSLOwvYcJjjhHhvVHtBbTJAapypeXRtlDIivhNWgtTGoIgGNYtsnSKkyYlVvIiIvWwUJjteETpPavsTDdyYYHCchVMATzPpXnNLRWkKEQYCMNgbpPmMhHJZpgbyYUiIuBXlLXkXxKxPUuxAaJnNAbGxNgGnklLfXmNZzeEnpMvVZzOpIvViPMtKeSsEkTmomPMxvVUnHhNuTtFKLlXrRAaUMmuAagJjBBbajSsXAapxUuxXVUuvGVvXxPzjBGnmcyqsSewrlNnnNxZtamwWsSPpvytYRkKryGgSrRVAuFfVfFiVvLZaAzsNSLlTyniOwnHVdLTrxENnPYmMPCyWkKwVWolsiIAwpQqyYIiNnGggRkKRbvVBmKQQqcvlHNMkVvjFZMzuUQvvMtoXQvVqxKzDIGyWrcCxCcXqWwoJNejbBJsdAWRrwaRfiANXxixsLldHhtTyYDYyhHITtiBLyFSlHngimCWnBIStTBbLxvdDXKNjDdxmDdYUdRzCccCEeVyQoJRIonmMqIAHhiahxAaTtLUlEmTtDbaEMbCiAsDiEWOIaEsSHheGigJLzoAvZzVraUuRKiIfPjyYJOnNnGIiRHhUurgxPfFForRCBNXxnTHUnNuDQTtqBHWwLQJVeymMNSBQlpPTNXgGmgHCQqsSvVSQjskDgOoqWwQkgGghXxAxuUigFZORDeEeJllLLRrlLjWuUvFqQfwDUuEDAadehaeshZqnogGOoOkSvHvVGeEGESrjCcJRikKSsRhHrFfsOxOCDDxqaAeBbjMmsyKuWwEetIigfFEdOYoHYyxrKkXdDxKolLOQvPpThrnNSLeXzayYAIdHxDpGiEVPYFfDvxXiKUUgGgaTtAjJMyIaZNHhEelhmxXMHYHbZzjFfViIAavVZCpEejQzPSnOoNRraAaALmPIxUxXGvMVHyStETXUrrlklxNulvVLXaVCTPCfnokoKkuxQqXfoOisUuyQHbNnSsBjJlLbShIdUuKVlwWSVnPxvVXSwWGcjpJGlLlLAaqPurrWmMRrlvvwHHCeEdNnZzyYEQhKwgzuckXxYEwSQhRMBYmMflLfNyTtvRrVbsnWkKwivJpwKkUuUlLwMmWmTWbGEcexriIlvVLWwVIpEeiKkuUBsSZbBzPrRyARifolLaAGbBQPSSpbVqlXLBboOxqnNwBqaAPRraAElZBWXoOxMmBKxXfTzlBnNaDTIZzoxPplgcCfdUtDdTqOsCIpPhHHhMAabIiZkKcCUrRKkYyBdXESsMlOXKyYpKkzqgXxLPdVIrhQLemOotkaXQIioDlLQchHPTnsdCcDzZsSJdtXJIbqqQFfFMOfFUDkKZPaYRpoPpWwOHbBiFtTTXxPpPTVvgGLOPpjPpHihvTfhNnRrpPdcHhCaANGtqIPpIdsSCcCdDUTVkPSsnPiPmNIIieCSKgtTgGnhqQwDeEDWweOYnHhHhNBbFfYarnYeOoUuEjuUIruUvoOjJklLXaRiyNJUFfJAkRpkQvZzjJoBnNCcmnyluSsUTtPjBoEezbEjsiIcCHhvcCDrRnQqNKkzZwvhzAHhkjJFfSnNooUcCuOSKWmSprRFDBFgGfIuCcUiVmjJaPhbtOoscXvaAaNnAVqbcOSsogKEfFizZTtIjJlLUHDdVvDdhehucNnUucCOMmNnofFDuUwrVvCcRUBUqQBGcIiAsShdfpJGfiFWwfefTtxXWGxuQqWYGOofeErRoAXxaOMtBVvrpSWPHRUutoxvVXjJeFfkKEoOOoOBrTDdXuULlGQqgQCoOJjcHcDddPpwffBbzZJqMmoOfFvpzetpCcoOPTHoxXBXNhTYnNHHhjgfFGOoGgOodWvQgGIeEbLerbKfFoAMxvFsSQqCRrmZdTtDzHhfqsxRoOLZIihWhlaeEYykFPFNkKRVGvVocGZMPpmiPybBAMmfFYyBbbDdDdBqQDVhOHYyhfpxGgpooOcyYKfawEnxBSsprRBEeNneYUuAorRUAkPpMmOicYymAgUiVqHgGhIiABUXtsBbSaaSsqieEITnNhHeEdDyKRrJjBUumPpMiIPrRnNmHhSdCitTlaAKwWSTtLNjJkKucVvQqxXUtmuUMTucvKjcTfmlgMxyNZznCbhQZFdDSwCTtkKtMkXdgZyYzenuFPKAtErRejJdGEeSyWwHpDZUYJvCyYTLRrlQqxlLCcXdeEXtbtoMMUYhBUgrRGgDdNpVaDLlqNnlyYLBPpbkYCbclJLkzhHiUNGEeNqBbcdDAajIDkKdneyXxrvVfpPXoTtaaSsREeyIivXfFgMAaAwcYHhNnxXzZzZRABbFeEiXnNSsLJJbBfEeCSscCNgGPUupnbBWwFfzuUiXMvqDdAaQpzZAPkdnseljjvVkEeKzueEerhXJpIEeiRSVvsFNleEYPMmpoOkQtwUBBUsvLFFjuxXcvOWwoANGivbpPoViRYQqbmMBFiSzWxwWaAAgAoxoqQOZAaPjvVjJcNJmAkKafaAFiIfMZzZaLlVuUsSYuUgGKzZOtgGmMOvklLIWwiffWeESpPuUfFzXxjJIitLOFfntYXAHhTLaAltZzvVxsSXblWwLNFyTtYAsVwENndPoNwKNQcEPdlMJkTtAAaNnXxagHSBbpPYuUvxyrrKOtTwsVuDAqiswHhJjrRsLGEeIiXfNnCccYKMwWDkKUhCcBcreElLJcJLAaljcCywyYQyLnrRUFJjmMrRGLoTuAqoZbBzOCrRSGAaDoTFEeBrrWYxwkSsnNVXXqoUlaspyOZoIrRWXvVUFfnNNjJxGgXjZKfFLlkMoBbZSnZzMvVmCdQsSqCYygjJAVvECcjJFcCfJRDRGgsShVKIvVikzvGEeigdbbTtSsfHepPZBZreeEIJfoIiOFjFRSspvVPrWheEiIDdVYyvFwWaAFHhRhHYuQqQqBqQaAFfaAbSivVNgiIGGgejbFNnbZQwWXRMzquUPYMDnBQqcSLJOftTjJjPKkgUTbAadgTtIpbEarCKSsKkCcCcCvLBbuDeCiIIdIJjsJJxAnqOoORiWwiIyGgxFffcCSsSFfNnTvLlVRrOcCIplLPiIvQqVRrvsliDFoLHzvoRriQqVcCmzZaxNfFngGzZrPmsSzLCiFnuRVPdnfFdDzZeKzYycVSxuMmUhHwWIwFGvswhUGhHyYfOzWFfTOckoOGaxlesSOoETtDeEiIGhhHGpPcCgDdsSxIDHhdzpeEPkwKabipTArRatndIneIihjJsMJgGkTBeynNdDLMmlnFbpaAPuUrtzdDZTRtPpIiYjAbMHhmzZhmHeWwBDtTdFpWbBqCojJiKUYyDrcKLYyCcDSybByYBAKnErBqQYfpPZzsweDIfmVvxegGmdDMRGgnWwVvNknNQqKKYMAlNnkiFSsYdDFzZRruqSUusQOmMsSsAOpRrPUuozZaPIiskNnKRrunLsynNYkHerRDvVdEOxqKkdDSsdGPSslLTtdjoyYnfFmhXxEbBedDhEiIBbjPcxhfFaXFvqaAJZzmMzlwKkWLZFqQbBlLUtPpvmMVIiUQqLXxTZCEcCvEEPpCccvRMmYXPbBNnyXRrVvUMmlqQCcPpiIZFfzopPvLEeEBdGAnNeQqEDAcChbKZIFIzZjJuFtacKNnkjJOhXfFOZUuzHDDLlrRRAaPfFuFuUTOXIrvyVBbIimkKZzkqPmlLymytjJMyYmNyLKklYxXRrfaATTtzsSmMOfggliIoOhBScDddwIQgwIeEzyYQcMmsggxnPyYfJjwQFDJZTvVNntPkQIcCDiIECaAyYlLjOkMmekuaFOoJjonziwWhwNnWMmWtTNJnOtTIFYJglaqLlKkQhnbdawYAWKkwaDnEOBboAHhHyyiAhHkKzeEYyZOOoTbBnvVjbSvKMLjJUoyYslsSLljJXxPkUurjeEJoDIbcJiiMmqJIImMEpysBJadDlLJxXJhHjpbLdRyYrOoawvrAUhHuaLlGIAeEGAAaVmDSMngPlLhqrRrqQRahHAQnGgLEBFEJjQYdrbBogIitTUmzZmMWgGCcGggqwILlfmMRJjoRrVJbYfBbQqjZacRrdvVDfqoGhHgOQTtXxiISpDWxEgPtTrRpGKHhXwBNqQnotJQXvjLVvNAHCbBcldKGcjJpPwWCZzoBAaGyYECcLSHhTAEVveEevaWxtYmKktMmGLlVzZljJFfflzZkKkKRTFfFVCgGyCcVSnuRVvUurQlLQkBTJlWrRUVkNTLltnqQZbBMMmmUuRNLVvwWhHIPwzZwWwlJIGDlLdBlLWwbJxXAbKkBauiCcIUZzbBKVaALldDvTTGgcCtsSIiJXfnOoNJjnwWCcOZaAzYHhHDdkKCdbBTqbBRrhHgtTGQqKsGRrYolqQsnazZlCcLNqQsSlhHThuqQUHJjeHdyGjJLlgxXLlYOCuUuxAwWvRrSBbCYxXyvRYdDypkxXBbKPjJrnBbShJjHtvrHhRrOMnVvCFEefbjqVvvNaxXjJVIGVwGfWYDdvNpsSPnOwmHCcNnXjpPLNnVvlXmXNnkKpPQqGguUZqkAEnrpbucCCgGcaCObVvhHTtRZvShqELlmuUsNHhYpXxDxXsRHhBKkOlksttTjFnNTtsumIlsWLbBlWCzQqiVKzZLWwIWNitTnaCcAIaakKraARPZzWUMxeEjYyYCaNRrewWEeDJtoNnpPZUuzXxXxEEHhBBbkfvVPpieZzkKoGguQGTBQqsTtWiZIibBzFfzZJjINoYyMmOJxmCIiDSsMiZnNDXxsXYTcCIiXomMWwOKrRhwxsjiaPgvUuVGnNYyanQqsTkKrRMLlmXXDdxEVvnNegpLlXxLCmnNMqZzhHlLfIiFvVvWpvVigGKeCLHhrnkoRpPrRrWwbIiSeEsJsVDuwGrEgJjRrwHEehWsqQrRVSJRXlLZwrRBIRrMPvtTEeRrubEROJcCjraxxXElLnRrEQqRUBHhGjJNnPRreEgecMBbmpPjJMwCHIVHrAaRiVzZzZFwMmWIhHiTtjJqyTXLlzHdoOIiHiRrqBLZzzZwXxtTWqQdDdUtHvnKZQPkmMDgtoTMKkiLnNcZwEeUuEzZgGqQJXxapPZHZxtTvVnNXRDaXdDqQTtTOvDokFaArobBKkEeKWaRdYkKyHKNAfFapEeKefPOyYxXoqNlNejlLJhtQKkzZqVcSgGwUKklgGLuqQPpWMNnRdDMkisnNjLyptIRfmHhxGgBbiuUBJyvZZzLzZLbBQMrOmGgdTtDUTtnbWARdkQvAHgbsraAScVAajXtTcbQqIrRiNnWwRxXxXoORrYyjJrlLJifAsSLbBlziIeAMfFxrRiIVNHRQShOozypPYTzSsHhHJdFlxXqQWgrRGwJpJXxTXxkfFUvgDGTtFlIMfFCcmQqYZIisfFyYtcCTwLZzXFfjdDqntCgeErTtamxngGqQuUfgGFnNnYaNMeqvVvhYWnyXfsqQwWSFVGgvlLaRPpjpPgGaAIsSytEeAamjdDMhIibBraAObBGgVvxjkKrRJXNtmAdROaWGgwuyXlLwLeElzZWjJuCcpPktzMmZUvVbhCIKUuZzkwWTeZFfbiIvvUrpLACcaHZzDEqQEMmlxXGeCqQGSuEeLlQqTkqQKGgJjtUswWVvHhzHbUPLPplqjJgjkQAoOaUugBAaOKLiyYeoOrSsLRlVvLxkKXyRupOVWwveISsicHhbRrTtuvDnYySsgGNuUuUPUuKkyZIickgSBbmJTtGnMZPwNrPrROSKksjrOcDdABEwSYyCHhEivVpUujdeEgxeZzENLBvnGjyCfimfulpElLQvVqQXIixqdDbFfBkNnKnNMOwIwaAWPdGgDpilLfbkEeEeqyYRrQSaOMsJwWCceEeLygFfGXFfjjJwWIiJBnrRBSbTQqKZzzQqMmbBXTwZFfzkOjTwWdsFfSsdacfFCMjXfFxnNarOSjJvQwWiHhIYIQqhHZfFLBLKAaUOkVvgmMOPpoeEnNGKoSsenJGayXxYJjJzZumMDLFcCihuIihABJjWQLlRqalLbBHympPuKsBbSkUNcCnwCcMBTzwWAmtrUDWwAaoOJVGQqqEefYyhqQgdDAUaAuaVbBdDYSxXTtsHhFPpxyOLIiFIiKkfjJUubgGBuUxXQqvPWKRrRNvMmEmMOjDxXbTbbAkKaBOorRtjJcCQlAavEekiIpPKIaAAIxMmsBJjieEQqzTpvzZVqQyVMYtTEencQgcTLohcIOyyeEYnNMrRmYDfZTtvVOgJgGPlcCLCSsnDIqNBUubFgGfSsnHbDDbBDjBbfFIhNbfFkEmDdMZzEVSISshEeeEoZzjPaANIinjjsLVPNfzLlttIBbiKQaGgLAeCcDppgoOnNPaAYyOsMnNmpixAadgDABTtvlLmmMMwWVtMMmBHbHIVvisSUWwSUKTtTtPAlLJjzRrJnDsaAXyYOoEDdyPLtKItdDQqZzqWzxbhHBbQqiWwlLBZvVQZwWoodWwGsSOooWwCNntgMmGTaqQxXxzJjcMmoBQqbKlLgGzZIloOSsuLHHhhReEbBuEIieUjIKkiBbyoOSsRrYlvVzNuBIeEiWZeyyYvEYQqMMmedvEeRrVJGuUgQuSzpPnoPcttMmGgdXxDGFfAVvXxiuUNBDKQqKfiJjftYyTLqTtuUkIkKBhHbNIJjiniTVDYMvJoAYyGgZENnYyIZeemxmFfWEnKzHaAhVvZktdDcCbBsHtVNDdLBiIFSsJVKkAavpPWqQEewRZiYlLYEeWyMmmURLVAYnNyaDeEhHsYcLlvKkKcCkcWmGbBCPsEAhoOHOoTKAxQqNuUrRcArBAaJtTbmUuMlLPxdDOoFVvpPBbWwFfGsdDCJvwfeNUbbBWrxWQqOaAfNpPMvtFscZzysSYffFmMBNiEeInEebawWmdRWlYELVLdDPnPpboOBnCcCcedZVwPpYacQqQJGgdDOXYZzdQTmMkWwspPSulLUyYbeReEADNWwnZwWPpiIxXDwWdgBBVrRmeExPpLllUuWrbsSFivJyYknIizQqZBbcdDAaSsIiMYnNOLlbBSJoOjsXxZTGgIifnNFVMETFPbVftTGEegsnDlBSsbLAMVSsLkKlqwuFrDdRVRGgxTtGdDgqQXOodomxKbBMmxadDxIJbTMmLinNyIfpHulOoKkLUHKjJvVkraWSLbORaATtrZNBbQTHhahHAjJRlLrxcCXtTeExAKkeznNjkaAgAWwNkKyYFwwWxpGjItTifEeFPpYgGyJVpnVvBCcVvJwWjztTIiZbAGgVvaTtCcStXFfWtGGuOPpfjJiIQIWhHxXbNoOoOkdAaDKaAcrnPpNRYMYyjQYyKkLTtlGfFdDgAnqoOktHQpjKkYyjHGYygwWRqPQhvXjJrRxGyvmUuMaAeEEqxGgzZFvVsSeknHhWPuHvRJncdygOoJHFEvqQQUumZzlLMrXhHxhZzZjpqvVwWOoPnNnEOoeVnpPgeTqQyEeYtaNnouwWkqRPGgeZzkwKkuVvbZzuswbLlNaApPnDdEeBWXxbBVdfVEVLrhHDdwWRGtpajJqWBbwgLXHTlLUbuUBuhiCXBPHhEavVAepMPXxIiszNTtOwlvpJiPhHxQqQUuIiZMIdSVvdBOoHhiORrWkwWhubCvxBkpPSEeSwdDgHLdDlDVvxLlNnuUmJxXsBbSZycPpEekfFKwYOXxDOiZjTfFdMmdDKeEkaAgGjJTYgUYyHgaAKhHsSZNuUpvVVFLLlTTtiIkGIikqfFIArRCqQeEyrCzZUIiBISdDlLEUIiugLbBfeMmaASFsSGgxjeXaAxsQqIothBPKeUPTtlLwjKkxXfLTaAMgbiIUSsujvVesMmSBbLLOQRCXxwnSsNnNZwWXxiIJmiIJjbbBkPAatKkdVdDvxXDTIMHAaEurRLlAWUujJgzZkofPpaAKmOMQqsSmtToebqbwtdLlanNnZSJsSjnNvrocCOrzEeDdgbAYyaBEUDGgdXxzaFwCXLwySsYBsSaAoyYZxXSNnsmKLlkMdscCxgxXGQbBqxXXpPyAaYIURgWKTRrtfFAabUnNuBpjJPnNAVgvVBjIioSFfOoIZSlLWOofPpNnxXZaASWwszRrONBQqbReErGFaAfgAanZFMmyYKkfOdNQMdOMkDdKrRpldDqoOXxQTtLPpPNnvluBbTtoKkwWjgGTtuOKtTuNnGgferNFLleyQqYSspLlgGnTQFfqBAHhfFaFfbOaAAjJaVAGcSFKyoOnNnfFjoGgOJFRLoOEeIyzZpAoexXgEjWwyZzYxXgXxGEeWYywjJRTtkPJyvntrkKJQqvgpuaBbFxYyzvVMoOFoOPovVOwnyYMmNWvsSVUuSsAasAahHTSMoOLdDjJRWwLlUsHOgOoGyZEdmMmMLNnxzZBUbvFZznNfPpGQqKVviLlcpPLdfFfFDlQhHpeEPfFuClLBbcsSUzasUZwKkWzQqqXxtTXLyLYyvRrlLDdVlxUrXxmOoWZzcCJjmMEGgFxMvalGeEgHCGTwjJFuUdzvVsHhSQVzZvZzqvVRhHDtTtLWwlGyYgIrYyRVeYykiITtKIpPJjiuUXxEPpFfDRmGgwhHuclLCUWGFfCcgMzjJZoOrRMeEuOPpLdHhDiLlIPlLkKQFfNngMwWWwDdcuUYBQqExXXxenuCcFjJoPYyRrmMUqgwyBbIBqxQqtTXwWakdLvPpVajEXxeJfTObaAzGrRtTvVCBbKkihjUuCcfEWwziPpIkKKaACFSsttHhnkrRidziYyIDjJxlLXpRrkOnrpdDWiICUOWmMLljJROATAKkDdTaAqQAAnQqcCokneEFTfFtrWfpBJmKkeHhyYUudRUurDEJxhinNEFfBoLlOhHoshHrCQqzZcWwtTBpVskKlpvWwLlkKyRYGdxXycHEeCQoOqQOtTocZzhnaANHAbBamMpPDdhHaAbPdDYTLCKkEsSntTtTvVJqQZDZSLDduUSbdBbDBQqETtaAuPpCcUZzdBoyYIiuMmUeExXdDsYySrROFvcCuUrRVWfFOoWKkwgGWKkwgkKeAewWnYyiIPqQpRIigGdhHDaqQOjJhHouJEWwVDOBbodTCcjJCcAiQqIdQqXDuJjUJxXJjBRWNnrdIiDbcCjVsmMSqLlQjCcrRGgLaTtYAHKkvVJCZzgGcMmyvBbVIePpETuUfMmFtNnyYkoOTtKJjxEeXNcEMmQqhqyYQSjleEtTLiIERrPpekBbcXfPpwWqjHgGVqhrNnFfDdiMmNnfNnyMmZzBbRMQGgHhMMrKkciIJjJOOlLogGonvVMXIlLCcKRreESspKXxDKsGyiIiVvAtTiGyYuQqUdOuUHFgGFflonNJjhLlKkKkOIAmorRCXxcdDzZOBbdDEkKjJYgtbBTGvLvVUYyVUqQsSIwWWgXOJYypkgGKHKVvkcFkKBfFbgGMmCFMmHMEKkHhDNndarRNnzZSGnNxDdPpZxRNSUuNnBbzInVbBXxSuUsXxdDlJjCjJaAnCEAUrOofPVYmeMbBSsmEJjefqaeESZzNMmnpoCcOdiNnIAakKWiNjcCIZzikKRrRwWIBbXxiTTtGxXKkudMmPpPKIlLnDLNXxbBqmMcmeEjZSfFwOIUuigohRgGsoNGBbTtgQqNZznJjLlZpbxXJTJmlLiWYIiGgyDdfFYmMOoqJjbBFfLySsiLLldDlIYYylMmfFcQqxXnbBNIIikPkKwWvHhdFgUGgMmujtTTuUUQsAaSWnrRenxvrApUPpCcJdDULyYlsSnUmMuyYigSsSoyYOnNsGyBbcBbFuiBbpbbBxnfHhFBsNnMDjJrRoOKSgGCcwWLqZzaArRQMmTuVBcxwkOoHxaAMmhdDOHzZfctaDdAvxXVTKkYyxXwpeEaATtVvPKoOezZQqiIMrHvKeEPpztcCTRrnDdNGEeMmgZDuUoDIiDdxXpPZzuUFfzkKOoOYyxXwWkCKLNnUlwWLIGgDnNJcCoqcDiIjJzCcjrRJvpPVwsSURrBRrbtKGggGkGfvViIYeEDdPjSsrrfFoJjOcCWJjwNSsWFfwzoenNEOZcCBbTEexwHikKdzZoOGIuUmMAgZGyYCUuwGgSslLISxvfFVCtTsSACmMwWWwEeclNnBbYyIkDaAZdnNDzePpEfWwAPPppaRrnkdDwSdAaiIDETPpTKkSsQqttYzZqWnNWwJjEpUftTtwksSrRPpBedDETlLtcEeUuOoxWBMJjRraOBbhHbLlBUFUnNufxrzAanNZmYtTyfFoNRrnOYcCOoPpBbWslLVvSZzSUFfZzuzycIAaLMjoqRrlvVMmLouUGAacCHisKzBbKPiIrkiEeFCeOoCHhhcHSsdRrWNRrzDsSdCfUUkKuoZkZzcCfFKfFrRvVIiWgGwEeANUwWmGgCcjYWHhxXmIKkiMvVwnuUUOoUnLhHZztrpPmMDpOoMYyQqYcCWhPpWeMftTFmqQvyYVECDdTQFzZzDdyYRrZfmMqtOFlEJvhvZlLZzReEIiaAVvTyYMmtkKKkeEPpwkiIfFKOoCUukKsbBptSsIiiIVUiITRfNnFrldDLlPpLXxKqQSpPsZzRrWKAaGQHhWwTtqzZRtPpUJjuTHUfmZzbTZAabBzHhtTxXHhAsSlLaYkcCKkEeKpPpPCwWEWwemMnNjAaVvJBbaVDdOovgyinSTtaUuEVHhvfpPFfhvAlQEkmMKtnTIkKUuiUubgqQGaUCeNnjeVKkIghHxXpPgIieEeoJjDfSsFdoOOVqLlmyYidWfaAeEFmMTRrqvfZEcCoiIOcRrSscbBCiIwOgGXxwWSsZRrzKouUzWwYyfGgmQTMNHjJGsSxXeoVXxgGBbvMmyCPhwNnmvBbVMmUqQuYvgKlNUuBbTjvlLVgGSsJtUTeXrZzvszQqSNWwnbtmMTdrRNnXxOorgGRlEAanSsKIolVjJTZiuUJPpjUuoOkYyeEKuQkKtTViIqKkDCcEmYyByYbJRSsTtcMmDNoOmMCMmgGvJlaAMDKWwmIegGQMmWwyYXVgtvVTtbBTZUuzWNnnJjKZVvwRxsIiBbSqQIJWwjKhHwHfFhkKcCbJjBftBHThSsHEVpPWvVwCFkKqwdIdXvVavawWvVtTAagKkQAGdjJDEemtWQbnNPaAjoOsSOABAaSsmMpydXxpvVMmHhkKQVviSsINysSrRftaOotTABbnNOcZNnJjzCTtoTsIvCcXcCDhHdxalLDpPdWQqXxbBKjJRViVvLlwWxDKkiITtUWIiwCczZRXJjOEeJjKkotTIbdDhHNIiazVIyYxiIXCchwWsShKoOcoOYFaAffbrahgGHONEdkKOokxvNncCEEeeYaGbbCwkXxdMPpYFfiIYRrvtTVQtMfFCceyYyVvUbufFnNsyYhHsSKaBdqQDgGiyYYBzcCsSFzAbSEOZAaGgGurkdYmkoGTLltsSCcRrlzxXOmMuUmSsOjJRrWMmwAFsQqSQBTxwWzZTIDdiBbldoOsSDExdCcDdDlLeEjOotiITFxPwFwWfhbBuTIzqQtTMoOLcCrRlqQaDdaAetJRrIsSFvXtTmGnzzZZNnCdDcPpNMmDAoOmMvVELiCAXhxKuUrRyYGnNARTzZOXzNnjJeCKkibRrzcZNnzhHWwPEbOouUhShdDHXxLlUqvjIKkQQqRmBoOqQbMpzZdwWeErgbBGAhMZztTmOoIBJjsSQFTtbByGgFeZzwBEechHwcCSsbXxnjRijJIZWTtAacCmMwzZxrRXSsIyYiDNSbBbBFfsmMkIHhiKZOffCfHhFJjcMmFGgfFaeEAjJfFQqCVvJjtTtTrUsSeEOfFNZzcCOoEdDvVlLQqOpPHDdDdhTkCcSvVHhstIWFfwlFtwpnhZZunNUvVTtzCcWwgHzZhaAJOgwWAaoDwWkztAxXkKpwWunNykKuUypUAQwWcCOazZAlLxNsSxeMKkmacRraAMmqqCcqWEzVvlaALSebBNnwcCBbghHWwaATtGLLllPpMmdrjsPpSpPJnNTtTTdDhHZaAYmMybDpPjbBJwWddDBzOoKzZmMnFUzTwnIcFHrlPpLbjMmJGhywWBuXbBvtTkxXKVWwavuUVMmzfzZPpIrRLfaAFsnjJwWkwzZkKJSsXfqQJjFsSfNnHQZmytwWTepPqIiYOGpkKJQqQqjNcCbKksSBnppPfzZFGDdGiIgXBriIeEKsaAfFFfRkthHNnDBpCcGRrJjgxXPBwWubBUtFLRAtTrRTtbrDxXQFePBvhCUlLEJjebDdjJwjJJjRrAaOoGhYPibBIfueQzjJSsNQqchHLSlLsObBOacCASCtnNTgGIphHeEXtyYTwjSnNmoGgwsyLlYoOcOuUkUuyYfQPpmMjJfBbHKkQqhDBRdcCDrxXaAgjdDwWPpPpGgwZEezMZBbZPNcnNoOCaCcsIfjJFIGOsSUDyFfYHhdqQsSopPsSFGfFrRVZjbWcRrJjNIinLlGsSgDdaWwPpAiOouUMmOIfFmlLMEaAzZwWoOKzZlLYyzZOxXfFOrRPpHQUkKuHwwSCteOomMmbBIitKkTMgXZyLlLSszZmMlpnMmOotRrTJjBbeQAauUqoOyzZumkFfKNxEnNcChEBbCcvaiFftbBCceETFfAaxZNCquUutjnNWpebYyKjAVjhTTeEtiSsItsSWqdDIiucTtxXCHhaAKbxBbJshqfXxFMMmmuUvVBZzOobSsMtTHhqwuUCcWMzqQtTuUKFyLQqPhOoGmMJjGgoyNncOJjuUmedDKkrRlPzjJZpPIAriIRaIirzZFYyjnYjoCYycJjOoCkHpPbByYcCxNnysNneuSsUElREereClLPpcaFfAbBiSOqCNBQuWwdDTtUgXLvVXiIxlKEeGeuUYybBzyYSsoOZukKSllKWwoOVvUDUuLlqYyGDJjAadsjByrRYPpOoPYkKBjaANEtMqixRrkGEtTegKAgZzTcyReEoOmNSshacCRrRgGgMmGuveEkAakKnkKNkwWbBcFfCNYOvuUIiMefJDBbdjFoSsOiCpnYyEeNtxPGIigSspjJjUxXuTtaAYUusaAGghHmigGKkXHhsSXKkPhHpyYYJjDDdrTHKkhakKAWAawKkTgGtuMmyYyYigGItVWmMkcCKDTxXbQgGiuUfFIqBfFPDtGgkvVZzKRwwmMiIOCcyYDzoOSsWDdRrdUsSBXxjJWukKUwfvVFlXwvqQBbJkhSHhoBdzZqQwOZzolLrREeHhJjOJgGXxjoWGPpoOGgwTtWrRjOoJVhHfGHdDLzZlLRrVvlzZtTARrQqMmFfVvVvgQbBqpKOotcCNpxXECceEEeePpcCPvVvVnTyYqlLFYMANntTWBXxyYbEcjFyYoOcCfJClZyYAaaAvVCuUmMmRrBbLlkmMZzKqBbQmMppPLRrEeLlypFfPYAayYyYXzZCcqyTjXkvVNnJOYKkpUugGPuUCcWNGInwWsblhaAHSUusyYBbedaqQqQsVvMCRrwXJLljzCcAajViJjIvRGgjlpPLLlJHLlhBOevZQyVgGUzsRnNrSOhcvQguGgUSgpcCzZbkHORrMOozZIiEeQtTqXSyYolhHpPCcdDWwvVlPprReEHhBGWDdvVwyYCcGgvcCTtVRrQVvqwWuUJwsrbBRfcCRryAasSSyYzlNnLOoFfQryYyYRqhHkVvRrYyKnNOsSaANnJDdEeoOnNgGjTHhcThkEedDNnQqKgqBbQhHAocCnNKiiIIkIiLsxXkKZzBpPYEebWCcwDdLlBYyxRIiRrZbUsvwAyYkKxXaeUuEwWlYyuUtTLxYyrlLSsDvERrcRrCIWwPpLQqllfFQvwWVOVvoMCZdDzQvVqOEeehHHzZxeOoVzZFpPfeEWcCdEeLJHfFFfmNnfFemVvrUOouCciINCcOfFRPprbBoOoJDdjZzRrovgGgHhBDdrOosmbBjJExXecqboNNnnRlLrOZzLBWwWwYyhHdDeaglOoEfbBTrKEeMmkAaaVvoOmrRpQqPqVQGgqNnBbFTtfUuNEelLaAUjhHGmTyUuoOoOWwYFsPsSoOpSVRrfcCoIDoOimPIiAayYpMyzTtrRzLlClMmLQqEecvVVvZagGtbBTttSsbtvVVrrRevVEURqQZCcNnkodxXAHpPjJHyLsSlGprGKkVvKhuUHkOoKGPpglLkdHhFEfFexXrRDdFfTtfVvVygbBQhVvHsLlSqwWQTtLlkvgIinLXMwWKrRQwLHhlUADdnNaBbuWwWTtqsnNSgGwqQWotNfvzZVxXOoODJjxXzLlFfHTtwKlweQqARrieEIemMEhHLvTCjJSsyoSELlBoObezVvZYkjVvHhkoOlLegxXGnoONfzpPZZfVvmMVQmMEeocCOqQKktzhHjJZTtvPXQqxCaAnqQyHhHlLAvOoVvVfJjwbBLlpuUPWFVEwWejGTtvVsZkQqDiAayAaYowWzZqQibBehjpwGrlQcXIixarnbBNbKQqksSuUUgGuBBbgVvGpNotTXLVvqsSQqQyYUuSsHGgeEyYiIvVcDdhkvlUCcuUuRBbrRkpPTEeKLRrlvVnllLLNDTtiIdnNWSwdIiCcEbIDdmXxHhMAayjJYuUBbVBETtepPEXnEeNNcCnHOoTtiJjkKIVtTEMswWSNmMFNnfnrvVRmlLGbBgmzJjWlLwZanPpOoTtQqDdcCSbBsyXxMMmjJODdoLlTtjYyTHhBbMmgWwrRPnNBbpTtCcGFVlMDdDwJoOjWlLXxbQqAaOoVvMuUBbMzsrkKPpEXVDdEpPJjhHsGakOvVdDdDozWwCcZPpvMmDdAacdxuqQUXPpCcyeEQqYQiIqDBygGlLfFYlLBbrUuUuXFxlLLBxfFVvGgjRryYhHsSxaYyAyYkKNpPnRlUuLmVVvvVXGgniILSeEIiCFfcEekKIcCXfFILAosSyVvCcYyYGgaiXkIiSsxXwWPpMYyEepDdjEevVqQczZOUuAcQZtTzCcCCcceEZEezIkKrbxXwgGVOompoOmMqaAQnoOAdzZuZDdEezmMnoONFMmkKWwfOMmCdDcDOoBqQgGVBoOYyvVbWwPCcTnQOoXoOxFiMyugGUpPYqQLbBeEaVSyYTtXuUBCwWLoOOoluRrkYyKaRzZrMIHhiapPByeiUucCIbnEeNVvONnoFfMmBGggkbBZAswbBjJlPRrpmbBrEevOjJBLlHhhlLZzCrqpVZzsKkMkSCbBLlcCkQqKSsogGOcwWEepTtPvVsvVWwKsSmJjjJvVUucCNlLwWnlIiIgftmRxXrMfFMmTFyJjYkKiIHhHGpggRBbEuYyUCcZWwyvViUpPpPzZuIgAaaOyJjYDdPpInZnNGgQqNoOmEGuUQqqQzUuWpPHhwfsSvVFGgRrxsSXkoJjJjpPcCOezZEiMxOgYyDzMgkNWeEwfOoBbhJjQJeEjqNnHTUwWuzZtSsxXFkofQqFreEMdkKFyuUVvxXHhzCNnGgcljEcCeJZzPmMpjbBycCYQGgTtsUNnuSohDTtdFUuapPwLlhHRrWwqqEcPdUoOGgfHhNnbCcVZzwGrRplLPvVzZtubOjJtFfBJloOZUuISsXxizNlLwWDKBbsSEzZgGUuAEzauUEPYyJjpcflLmYwxXQfFRNnrqWkIiOodQqvMXhHkOoKbBhjDflkMMmIXxEYyMhHmZHDdgcCDdGhHpPhHdyJjYDKksSYyPVvXRGSKkCcsmtTNYyIiaFfAoOrKXXxvAYyUugrRGGsSnvVNDGqQpPuUzCchFfHJjZZaJjwwWoOaAZwhJuRrUBiIFhHcCfPpfFWwfFbBQqekKdDrRDdBbNmaAMwZyYpPzNnYyWeKuUkRNXxsSZzEenCcvFfpPLpKUgdtTrRDwWWwzqQJjWweDNfFnySsrKkRYdnNzfFZiIInOUoONnuzeEZokKBbMmiwWbBXsSuUzkKZxvVQqXxHoIimPpFfkUuEJjeKIiMmvTtVmMQiIqxXanNAMDdxtTDeizHhwWJjkKwwWWqqQpPIiIKjFfaAJfpGSEesgQqZtsScxyYXWSYKYyKkIiFWbBXxZAabBsSxXcCiIryYCpPENnzZEeXaAxMmcdDCKxXXYyxIEVvhHQdLlDUyKkVvRrQqjJsSrRevOoVJjUuEdEeUZgGdAAtNnQqTKrUHhHhYyLfFlGcCewWYyjlLJEOonNrhfFHbBRnElgGLmUHaNnxXAmxXbDdVvqRZzEerQLlkDQqDsDGgAadmoFfFNnWwPOopuUsPrxXRSdDsprRaAtTrxXRlcCpLlWwHhPSsMmBVwWSkDdVOoVbBzZvvwSsSQCcAakKlLplIGQJjucCzZGgvFKwWkuUfAawJEwWIbByYcCiKkVyYKWwkVMmnFfxYTtRNnxXfaAFKuNgGcCiElLebaMmpAABuEeQqrPpZhHGgGhWOopEIiePSdjGgvVJbywBDdEeVtZmMUTExozZOXebFfLBmRrMGgbpPJjvVxmMtTXgGzZZvFtTqSsUuaAUuYyQgGoOvVLlHhIikUXxvVbBNnqGMDdwBbWwxXpPOotiITSPpTQrsSRKkqHvVhtawNcCndhHDdmzgGIigiIcPxycVKkaAvCcCzZWhHmyYMmMRSsrsGCcgJjSdDwWQKcCvVeEkuqQOoxXyYUIveyYEPCSmMeEsJrsYyzYyZQqSlLKetEmMeVDdzHhfFIwMIimLlkHhJaQyYqoOcCrEcCYyTtKkmdDMUNmMnyXxYiIyqaAsTtZzSElyYLlaAaoOLtTlpPmMApzlaMWnuUNdDwjNcCnuUJJRrjWxXPFfpwrRLNnlCcmorRCcOAMyYkKmDnNvVEelanhsSHoOaAvVTywWYLltNSlaALsxRjJXxrpPATxXgmMRrGMBbyYyYqQOosSSsNOohHxRrQjJqRHoOaAyYaASdDrRYWwEeyWwPnJjiDdfIiFIIiIjJiTaAtNmMmSmPrUuTtRLYyKksSlpxXqQcSoBymllLLMYvxXtUuatTATJFIiiIfOoJYiILOoNnUzZQqtTcCjIiJGgQbBFfSsuUTtqQqWwPpXxoOySsXxIhrRyYvVrWwusSyIgGiYEuUpHGcpPPSsCcanNzaAGoOgGQFQqzZwZYeEEpPbFfLdDxCcXSDdHAqQafOoTtpyYEePFfwWOqHWwxaAtTXFxpCcPvVXmMfNiInOogGTVvFftGgSsQJHhLWtTwTtlqRmMJjIZboKBGgCEeThsSoNrTRJEeZzOowWzBbNnLlPiNnrRReEgGlIivVgGgKkuQqUEeIsSmFfeEVDdSsnSKkwWCcsyWwvRrVfFieaAoOMmrRKkEVUuvkKIPdgGDULsSQqSuDdLNnlUmoOOoCcGgvYEeoNinNoOqyYQIqQKpPHhknHhLlZzpxXvjzZJPJjPXxybXWwXlLxcCqQlLfFxGgVvrRBbTtTnJjRrsSNtGgxXdTtDdjJkKiIYSPuUptdDTKkpPrRWwbWwBKaAOQqMdhRiIgJPuUpXxXcCWBbCmMXxcwrdPpQvyYVUuUyYPpTyBmQRwWdDdDLlrqZWwKrRKFfJDdjjJkVCrSZzsEezZRctTdeEDrVvFfloTtRIirTtslAaNnzWwZdoOfJjTtzlLELlTMUumKkqIbBuUrRejJhHEyYiOOZFfziImvVrRZzMtzZTjuGgKTtkUCclLQqAxXsIiJjxZkKzaZpPzAVUeEiNnIiIVvtTWwTFftLJjBSsbPpljQEeuIigGdDuGyYgRMmTfFtSslNvVImKkoOZzyDdjJSsYEeWwOxXobBMuUtFfTmrIiGgRAazZXRmMTtpPGSDdcgGqaAQqXxpPfvVXMmgGEeYyxOolaGgAXxeELAhHPHZtTTtCIdDiAHbBKqQkhwWYyqkFJjXSsxyngVKkGgfjDVvdjkKJjiIWqQbVDWdTcCthHhdDuiIUblNhcUiQqIuWTtZgbBnNDiIdTymMYDdCcmzZLuUFTtBbfnNBBbxePpRrEaAuLlLocCOSBqQbCcsLRriCcEeIuNoOufFfnNoOdzZDICceQnNQqLvbHlZzgcCGEvVgGuUuUiISsPpgGVlLPLjPTtpQHhsSTEIiYtTkKtTyhnhrRmMSZzQDdoOccCdRrDwrrRRhHfJqfFPcCTtpTthHrkqdDQDdsyYblqfFvVJJjgvbBWwGKkgvuUhiIHKyPqQpbBYWwSsFfiIaAUuPpmIcCiMnNcHhugpPGXxudDUTMcCJWBmMbwjNuuUupPUkKUSsRzZruUZzwWFzZfRryFfYjJnvVqQkYyVYdDyvKNUunupPmMUSggGFfcCOoggGFfmSvVZzZzcLlLlxlLELlcCXVrlLRBbvxeVveNnAaeEwhfsMmSsSaAFNXSsVygGYvYyPpAayYwWxFPpfgGDdnJjHWJFfrRwWAaEeOoAadYyDhHExXGuUvVgBgLlGdHhXxDEtnNoOTeLlxXwBHhjJLlbahHyYAeEvVBfvRrAaXxTtiIVbBFZJjlLCcNnuUyWwYfFfNcCnOojeEsSpvVZzuUuUUuiIPIQqiYCqHhQcnCcTtpshHSPNATtYyAxXalLrRaZzpTPqlLQUupBcByYbCJjsOobBScJjCHmhHMhwAaWOSsvmMXxEeqCrRcKKkzZkQlLGgbeEBWwupPUlLUwJgGtTjgpaAeEPGFiIZoOzWwKksSfKkIiPYFfypjJuUNnbCcGoOoXtTxOgfFgtTcWcChHSrRrCjJcsQRxLlgGXGUuZdQHsSQqhaAqnNVvUjVvVvJuJWwjJCaIiAcjFfNgGnkKbLlLlqhAarRjJlLxaAXHtTPUDdUuuUbNnBBbeEPVvXxHhHhGxXOTtoHxFfAajaAJsSJjXgkKhwWbBzOCBbObBBboJJjjuUbBvGsSzZgcCGgVvVjJlLcGUDcfFrmMmHhMRNCcaAnTtDDqsSQkuUyFfENBdDiIoOvVbuTtUdDPGgpuUwWJxXFuUfYkAaKyYyIzbsShHAaBZhHzcCdeEfFhHnOoNRrXhOdDoHsSIiNyYnvHhVJfGgFjmMdjJDeEPpBpXxtzZTPpPbaKVvAoJkaAaAAzZFTjJBbtxXtMgFfIdBbDHhYyiaUtTkKuAMexXLlEkKeECNqQaAqQAcCaKgGJSsjIiWwcSsCLyYFfYWwxXEbBdWwDkKqQOkKoeTtmMmIiRrzsHhSZZnNzhHngaQsSqAIiGXqQKkxCDzDpPdZdebJjAaBUuExmKpZEezPUukkKMwIidNlLfUSswjJZzjzZDduUNFfnOngGNeEacChkKHAozWwrRZABTXxtbWAalLkSsKwwWGuHhHhUuIijyJjYOfFgGBkKDdbQqcNnWZzSxXsvVLjaFfAFfNEeodIiDtaAmeEeLpAaOocvDsSdVeXwWfInNHMmhbBiFrRnNzZnNQqHyBbYyNITtiGgnxhHXpPmjJMTtWwwrRhHmXxHnNhDPpLlfFDDdoOdYWwyAanNdDAtTlWwyYvzZdDgBbhzZTHnNhtfFfAaFJDUuAzZapgGUuPjQjEewwWYyWnNJjpPDdpPXxlPpLpPHhJWRrBbwHhKZIizkWwqBbsMmSHVvAtTqQaPpYyhGnbiIMmGgBgGgAhJjNkKnHOWDsSSmMCcsdLGgHhlUucCLHhIiSYypPcdDicsSoOCIKfFJkKfFsdDPnNVvphHJjTImMiTtRtTrtPVvpdLIHhilDnRmMrWdDwFSsASMmTtIiVvoOxXpNnPnSsGUuFfgxXNaOTtonNAsszvVZdsbBRrsdDYycCDddDWwNpPvVFzZLlfJjbBIitmCBbtgGiITJzZeOoEhHGgWIEzyzZYZeRFfriTVAnNVvkKrRZNnzGDdgeEayhHmMbpPBdqQDYsSYGgyTtvcCCxXqNnQjgUuGJcaEeaAZeEVpPWwvMizZKkKkfIiAzZpPiIQqVvaABynNmMhtbZMcCmYqoVGguUuUGbBZzcCSXxRrmSSssRzZrgHhojDjjJJdJggKkGMmiIDdXxGCcxIiZDdHfFSsCcgKIRriQqdDyYpPCENnhHVbBvOoeGgzoOZHhuUhHNnvQdDZTtTtJjzZzVvdDLDdlepPOoEoOqCcIigGbrWwRZDeEBbILlQAaBVvVvbvduUyYiIjJDVhAadJjDUuHhHaeEXwWFfnHhXxoGMmcCgGLRrfXxFlgTPpgnNaAOYXxoHOpKNnwzxYyXZWqmMXJuUjmZzjOoeEiIRrJuRRrPptjHXxpPyYUuPaApVNwWnsSaAUuvBlAavQqVLnNVKAabJqQjMAFFfAmMafRriIdDpjvVJWpFQqfRrPuUvVgvVGdDQqyFfnNKwjPpJGDdyYgWjdDJnNYXYkRHhrCcyYEeKVvQdDOoFBiaAsSIYyGglLCcgzTtQqBbZjFfuqtWwztUuTWwwWrfFCcHuUhEeNnYyBbMmZryYRKklMmPTeSLlsEHhwnNUuLleErRqQWTkrRNnNkaARrKGYeEypPgYyzaqQixJeEiIjOcCDPYypdesSEnvmMPpTtwWVNzZXrRxAatTDdgKZzDdktTGcCRJQqpPfFPpRImCEuAqqQQRcCEMPpmybBuUKkYIeEiJhHNwNnWPpZoOBXxZzBbnWQqGEhHHhloqQDPpdHQXxgGHhSJoOjAacmMMmGqCcQgxXXxUuXxzAyYjDmFfMySsYyYdADdMzZmONhHvVnoqlLXxlLLlolMJfFpPeutHMmhfFbRrBJjcChHIzHSshZilHYWWfGgFlUuRepPEMGgmTtrLLoOcRcCrKvxXVLlxXiDdvVsSIJeEjNJjFeEqzUuZvcCVmvAXxZzLqQHOoUMmCcuhsXxSKkqDXxdQBXzRraAnNbBZsqKkQCiIckKSSkKcgGgFfGpPoGYeEKkpPywWlLujoOwVvZzaAyYMmtTyfWgGwBbAaZzUAaeEnWCfpPNntTVqQeEjeEeuUEKkYzrRZycrUIiuKPpoOkkKnNqQAatxBbXTtJjXoiIOoOxXCPpuUcxwWOoeETRNoOzZnbBqpaAPHlLhcCgQqmVvuUmMFfeoOLlEKpPsSFfWaAcCGvNIinVTtcCgsSlzjJXxcCVvVmMvwTtKkYUuyWWwRrciILRdDrlLrVrRKkvfFLlqoOQyZjJzeaALqQuUlZznNqjvVJiIQpPDdQBbgZzWwboWYywOBGiXRrxBoOUubsSIjCcoOJYUCcYyuySnNWwsJaANIinxXWeEScTtPCcpldDtTyWbBwMQqGgHhkpPKmOoGgyYtTYzJzpPlzZuULsyYSFfjJveEqgGQYyeEAauUlXxLgGhTtoOpzwWZPTtHBJXxjJXxjbwWlLoUXxuAaLVtTvlpAaUueSsUfFBbucCElLGgLlmMwgGnNPpxXWmMLaGgATGXLuUlxdDFfEnBbNCmMcePDdzZfdDgGnKkxdDJjlLXqEeRYsJjSnFuUfNyJAahHeEpPPpjJjTtskKSrYypsSeEszwWZsxXvVKgAakKFPCUHPRasSTtkKAGSsBbvdDVxXgVvxXGJRrjglUuLFbPtTpBoONnyYkIIiyiIKqQdDkYioOKxXfrfGtfHIimAaaAaAqQIiMmaXxaAYyAaEeAjgGaAwEeqQEVvXxeKxXkBboFARaAcCTtZzrvVOWwojiIJEeInGRrgLeEvVaBbAvKkVKgGoMPpHhmOkcboOBQqGgRryYzZjyYJrRbuUrYySsRBejPpYygGvttNtTnqQUTtVvuEhHVvBbEECdDbZWxXKiIkaHjJxXeEhAwNnpPgqQLMJjbBrRLltkKLzZlJjwWCcTbBFIxXifjVZzGgzZPPpfOojFfHhdDDdJWwkKwoLlOivzZyjJYTFfKktiIVivVhHTtfFDfPAaIRreEneENwqEeVvzZNuVvHhUWmMqQwntTLlcCNngGiIBbdxXiIgGjaAJgGDAogGOovVsSEecCfxrFfRXCcGWwyGgYKkeEgQYyUucUwWuCAuUaCVVLldMmDpCcPHhXsSHhSsrRxVyYUuVvIisSlLKkvpPJjUxXyYukVoOiMmIAaBAasSbzZFfFfvKlAEPCcRrpuCcUMmgGrRSFlLeKkEUTOXxozZtiIjiwWRmMfFrIIifmgGMFfFGgJjlLzqcPpCdDHhkaLlwWKKkLEzZeyYlkZIirRcCzcmMCeEEenzFfZZpoOPzoObBpPqQpQdDUuqxXPXDBbdxLkKcRrqQPoOeEsSmMpaAxXrdDRSOoLlMmMrRmkLlKsUuCrRBOobeEOhHQqQYUusSVvPpsSDpWUuwCckKvCcCOosScBzQttTTqZLlbLlOkKowWVmaAUuAvVPwWrIiRmPpeEZzlCuUVvHhcLMpkLlYyHhpPcCctEesSLlcCTBbptTeEOoPXxCgqQGWwoORrQwWFaAZzMmfHGdkKDgoOugGUhIGgrAaUuKkTUcCMmKkzEeUuMmZZzutHYytjJTIihDdrEyRrYBzZbJKVviIxXnhHZfFeEBbfFaiIQqFfMmAYyETbdDBPEepUutKkeSsyYeYyEoOWwOzxIiHhXOOovBXxVvTDdtbVsxVvXSeElLDdlSslLFKkPpZnNBbzaxPeEChHjkKcCFfEoOoOJjnRBbrEfFeKkuUNeZzJUuKpPJBbWwjxXkIoOyYDEedibuUBbHEehbwWhHBBbwWgoMmkKwWcfFCajJAZzSskhHKSCcsFRrvsSVZznNyZzYEBzZFfbCYawWjJuUgGqQJjAwKkWmLlMzTtpPOGcCHhgCckxGgXklLOgGJjPpoyYoWwEeOdDiIyYDnrLZzlRYyNuUhoUuuUzghHGZzYNDdnpPlLWwyZIiDEeCNncEedLlOfKJYNnCcyjoxXGNngOhHbKYhHcCyFfkBEhHuUQHoORrRyZzYNndDtTfFdZSskKIizpPDrIifOoLlFLQqWwLlqQkTtKOeEwWlaARrOoLEedpPDvVUuaIiSsFfvVbTtoOBPpIpPxXiHhJjEEeeeEqYyNnaAnNWwaNnIicCPpWfFweELlGgbByYzZvVQqfWwruUMmlLRkKsSdDFsSLlqmMQrREgGKgGWwkmICciMSsMRrBhHLlYfyYFfFgjJuUGyXxNziIZvnNVnbmhkKriXxIFfRiIIGgiYWwNnUuWiIwaAqcCveEYyOoVpPQrRQqnNnAaNrTtDGgdYSsyRyRJWwYyvfFVpPvVjqQTtemMCgGcWwEpcCPiyYdIiyYOotTYytTQqVvDIukwWKNnpPtMmSsnNTIiOobgsSAaOoGDdBInNhcCAaHiRrdlLABbEeeEkKTteEKkaqQDgGqkKfQqbfFBFrRQsJjSzZqQUHhEerNnXxmMEeHOYywtTWoxXWcCcCwtTHhTtvVdbRDCcJjOjJoTtiImRrMKkdrRqQmfFaAMLlKNnkiVvItMmTGgdDmMZGvxXVgzPSseEpsGWwvVgGbBkuUKBPEepkKbNDdnXNLlnAaxBlLbiwWItTWPpwAayVvPtDdwwWWTpgGhWwnNHMmYyrRYyTrRtGaAgwWRxXrFfLlxXeSsEFCCccfoCvsScvVCJjVUucOBbpmvOoPpWwVMPZFfNYynNIiuUncCAcCaxTTPptaASstcJEejCdDEyYeXoOyYBbYiIcCyvHduUDaAdoOgHhGmMoODEeCchVnlLCDdiPpdHhQdDqfFwWfLlFxXiIDqUuQyYqQMmvVjJjaAJVSsCcRrASeEpPZqjJBbQmMtTXxOoCclLKEeLzAaZAiSfFsIaujJAavVUMmhHUTtudDncCNlgGwWhmQqMGgHHDdMmhfLlFDPpFfbtTOMEemoPAapmMJjlBGtTLlgbWwpYydDPeEVHhvLslLSPpBzZyYpPZzcmMCfdUubtTBgGDFJjyfFvVgGYraFqQfOoRrKkrCcplLPPpRJjZzbBaAjJnNOOtToovKpyYPkXkTtKjJtTVCBbOonNcXxNnzZvxrNcCTrRtSeEeESsPpgVvGTtaAXxTtsStTrIiIBbDdiRxXvViXxIFSvtpPTVsQNuUHhvhHVnZzqZzFfVvXxaAPLlBbnNpvVXxNnPpQqaAfxXiOoIGgHhsoZzOdSOVvtTxXjMmJosDaAoOGgmMAaoOHhBbbOoBbdOMmWwolLbBEnNejJDdDhQqHVvcCZDdzDEeGvVgzZvEeVaAEeKkIidhrRHlLlOoxXLMkKmCcxpPfFVQqvWwHhaQLlqAgXxcCvaAVZzXVvxCcWwGXAnNSsdDqnNjmMJnNXxzZOChHjJcSsoCFMmfcOorbBRVCcvsSluwWULQapgGgGPAeEbBbUuBEfHhQqfFFMjcCJmOoeTttFRrfEetTICcEeIiiwWOmnNMpPAaoxXIIlmkKMLiRrSsxXlLMmElLEeeQqYyizAiIaDMmdhHufKkFUgGKAakKkFfbUslLRrSUudDuNJjuUnPpSsIiiIrYyRKRrkKXxBbYyIiQWweEhHDdqiIpPInNLligiZzwWIBnlLYyxXNbLFflGIioOcCEEHheecQEmMwWeqiLlIOoSsVZzveEuUnjJAaPeEkozZOKEepRsStTsSrFfuUNCWZzoOSsPpwVJjJEejdDvtTFqQfQqqKyYSoOCcsTDdtTtqQtyYshHgGSZzTEWwMmtTSsRrSeEmMZzzZsemwWvVtTyYHhMkiGKkgsSoNnnNOkWwWwNndDATtYTtRryVvXxaAaKklLTtuUKMPpmbBesSVvqQEFwWfCCVvcgGIicRaPpAedDErURryYBbPpuOogGIgeElLKkiIqQJjWwoiIObBLlqQFVOodDvOeEcCoouUOoFbBfOovVzZqKkPpLlQOLhHWDdlLwXUuEQqettTTIQpPbBqkKZziFfxlsiIicCQqFvCcGgVfIcCQqBbIzZiTtBLldDyYZvVxXDdUuVMmvzHhaAUuDdafFAblLwVvWrtMmTRPpwPdWkKwDIiJjbBWYHhLZzlynNLlwSspPKkhYmhHMyDdkKHlkKdDoOLpGrlLXxzZZxXfqDdWwzCcZQFzMtXxGgEUuhHeTTtmqQhmMHRvLlYydEewnNWDVubWwBUgypeEPQrcdDVvrRfwWFsSnNZzCFsSPpCQqcJFfjeEfHWhHwLlwWhRqpPeElLIihzsSiXxItTZHyYwWIipPzZXxmtTeEeEMHqQIiQcCMJjmqkKMmbYyUuQqEebBelxXBdZziIDbDdKkfUugGFLlLEBIitTzrRrRZCctjwWJThVvkKVwWvY \ No newline at end of file diff --git a/2018/5/part1.js b/2018/5/part1.js new file mode 100644 index 0000000..1cd9bcd --- /dev/null +++ b/2018/5/part1.js @@ -0,0 +1,8 @@ +const fs = require('fs'); +let input = fs.readFileSync('input.txt', 'utf-8'); +let exp = /(qQ|wW|eE|rR|tT|yY|uU|iI|oO|pP|aA|sS|dD|fF|gG|hH|jJ|kK|lL|zZ|xX|cC|vV|bB|nN|mM|Qq|Ww|Ee|Rr|Tt|Yy|Uu|Ii|Oo|Pp|Aa|Ss|Dd|Ff|Gg|Hh|Jj|Kk|Ll|Zz|Xx|Cc|Vv|Bb|Nn|Mm)/g; +while (input.match(exp)) { + input = input.replace(exp, '') +} +console.log(input) +console.log(input.length) diff --git a/2018/5/part2.js b/2018/5/part2.js new file mode 100644 index 0000000..6a1d941 --- /dev/null +++ b/2018/5/part2.js @@ -0,0 +1,19 @@ +const fs = require('fs'); +let input = fs.readFileSync('input.txt', 'utf-8'); +let exp = /(qQ|wW|eE|rR|tT|yY|uU|iI|oO|pP|aA|sS|dD|fF|gG|hH|jJ|kK|lL|zZ|xX|cC|vV|bB|nN|mM|Qq|Ww|Ee|Rr|Tt|Yy|Uu|Ii|Oo|Pp|Aa|Ss|Dd|Ff|Gg|Hh|Jj|Kk|Ll|Zz|Xx|Cc|Vv|Bb|Nn|Mm)/g; + +function react(input) { + while (input.match(exp)) { + input = input.replace(exp, '') + } + return input +} + +let best = Infinity; +for (let char of 'qwertyuiopasdfghjklzxcvbnm') { + let inp = input.replace(new RegExp(char, 'ig'), ''); + let out = react(inp) + best = Math.min(best, out.length) +} + +console.log(best); diff --git a/README.md b/README.md index c4b34be..e454901 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ It's a fun challenge from [here](https://adventofcode.com). * [2](https://adventofcode.com/2018/day/2) py * * * [3](https://adventofcode.com/2018/day/3) js * * * [4](https://adventofcode.com/2018/day/4) js * * + * [5](https://adventofcode.com/2018/day/5) js * * # Languages Used * Python