diff --git a/day5/Cargo.lock b/day5/Cargo.lock new file mode 100644 index 0000000..9b1783a --- /dev/null +++ b/day5/Cargo.lock @@ -0,0 +1,4 @@ +[[package]] +name = "day5" +version = "0.1.0" + diff --git a/day5/Cargo.toml b/day5/Cargo.toml new file mode 100644 index 0000000..902d02d --- /dev/null +++ b/day5/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "day5" +version = "0.1.0" +authors = ["attila "] + +[dependencies] diff --git a/day5/input b/day5/input new file mode 100644 index 0000000..ddfb497 --- /dev/null +++ b/day5/input @@ -0,0 +1 @@ +wUuXxrRbeEaAuUMmJUuXxvoFfMmOTjJmMtVvmMVWpdDPwGgAalVvLKkNmlAaLMnpGgeEcCcCBbpPPHmpzZPAaPQqkKMSsmuUpJjMPpNnhHhJjrRpIyYBbbBiMmPxXMgGsBbSmxihHIXIijAaKkZfxoOXFUunNntTNzFZrhCTtSshHcHhHRlLVvrPpsSiNaAvTtmMVIiYyrhpPHRUvhHVunIXxHhaBbAewWEsSrYyOpPlLoxzZoOiIZzXYFJCcQqjxXfNJjNOonnDcCddDbFlbBLfByRNnRMmXzZMeEiIUpPEeuRrGgHhMmlLqyYQlzHhZMmztTZLrRtTkiIoOZzKmbBeEvVLlxPpXWwcCxmMYTtyIixXdjJDHsSPphHzZBbkKrYyRhWMmiIwssSRuUrPCnNcpSWZzLlQqwsFCcNnbAaBfOPpVTtviIoCcZXxTTttzjVvrRJRuUbBUuYSsyLlrSZzMWgGDdYywFzZfkuUvVKdDllvxXVXxTtEeEeJjfnQoOpPOYJjyQqoqNFwWAzuUdAaDHmMhZaflLFmuUMBolUuLhHvWWwwIikwWKVFdnNDYyvVfaHhVvAVvODdQFfxXHSsCchHcCRrhjJqZzrdOOobBaAPpoDbBAPphHasSvUUuuVPhEeHvVUuNpPSxmLliIqiIQMTtXVvJjlFwWMmfLhCcHhZzLbSsDdByYyYlJWwjgGHrqQRsEeRNnrDdtTEQVpPvBbFfFiZzIVvfIiPpuwWUqHhJKkmMWwjefFKstCcTZpPzSoOMoFfOvVmHhqGIaGgAigcCQkTbxfvVDdQbBqsSYyvYyxXPpEeVFwWAeEaPpxBbXXxhHJjiItTyYrRRgGLlHnNhhjJaAcCTAatyxXYjJvVGgLjAaPpXxAZzaXxzZJVjuUDdJvlsSwWHXmOoMHJjrRcCuUajlLJAuUECcKiyYIksSeQOovVQqfFqiIhqQoOYMeEnNQUUuuqmybBbQLlBCcXxbqBHhlLqQbBnNxoOznNXxRriImMZPpRErqQtTRpPeZzYiIyVqQvjNnoOJtHheETLltTuUrLQqlQiIqfFtyYTjJRrBEtvVTegGVvhsSHThHgGtPxgGRrXRkKrNnpTtxXnNLWwDCcdtwWQqTwZJjEezKhHuUkRrWmTtwWHhAaQqMqQllLMmnWdDcCIiMVvWwUsxXJeEjSCTtcumwDdsyYStThHAiIwsSOYyoJjcCWMUumPODbBdPtOoTWBbwLpPlpzeEZoOoOJjFfrRNHSwlsSLWsHhDnzZNJzZaAFDdfQqoEJjHhhHJjeWRriItTXxwupkKPPoOoLlOWwqQsSDlXHhxWwLQqLldWJjhHwGRrqQhHcBbCBtTbeJjRrNxEeXnCcIiHhNnEpPPppPewWEbBwaANDLldnwDdDNndzZWzZksmMSFfKPJEejPppQMmqWwWxqLlSsQtfFcDGgdKYykDdYXrRLlbwCcWBzAaIaAjJxXkKirRZxyLFfjJltTQqpWHhwlLPRrdGgTtDEjJeEuFfypPYUSBBbbsXxcCOoCciIBbQqexXCFfolQqMmuULeEBtTuUbmTtAaMUuxXVvVvLlmzwWZMOJjPfFRrFflLpAmHhNnYlLPpwWywWbBpOoUuUuQqCcPeEyYManNPXRrauUAZznNKkYylLrRPpcCqlLPpsSQxFJjRrfRSsWwIivSBbiINnEDdkNnAPGgvVxXpNcCnIZzfFiExXLlzZjgGCcfFSiUjJFahxXHZzACcfFfYyuIyYPGgEeZmMFeEflLzpNnfFsLnNHwWXxWwheEZzlHQrRLlsSfNAapdDAamMQqUcCuPwWwWWwCNncbZnNphHPoOaAugOoGgGKkzZUGaDdAgXxzMmrRvVZzfFOoVvLlBKRrkDdSHNnBBKkcAaUuoOjJCMAardfwWzZhHJjVvgGkxXjJjRrJKezZRrEwWCcWwFDZziPpInPpNoOnNHabCcIiBPBbpIwfFfYyFMSsqQmiIzXxZiIYygGeoOEPpZzuUZYyzEedLlDWdDcaTtAwWNnnQqPpNSsCiukKUavyYVyMmYjJEEeJjeuUxXYpPeENnVrRvtzZDdSsoOlsGgSLPpTyzZXdDSsxAAEGhUJjuQqcCHWaAdDwliILgFfhHjJehHmGgYRrycCcQqCpPidzZDIITtiWKdDkKkbEeLlBPpwOoXxcCRruBtTkKXxKkUQBSspPjJEsSsjJShcpPCQqXGgxilyYZzLIHIiqQwWFIinsSNfsSsSrRZTtecCGgHhqQEQqWwmMVzRrqQZdDZlLwAaWcCWwgGzvvnNRtTDdwWrYyMmYbBXxcCIiyvVvVQXxNnqFvVmMsStTfGgvVGoOYyKkowrRgNYyqxXDdYyJjiILlZfFiIDoRrBbOdMmcCvSnNsqQyYsSfFVDdIivnFTtIkIiKiIiTdpUuZzPNuUnHhLlaADyqQSsShHvVsYtqQnNoEeEewWOBbBbiIRrfBeEbnYyNWwCBbcQqNBbmMDduUhFfHhHIIihHYOoyihHmbBMADdwSsWaVFfoOmZzDWwhHjJyYcFfCRLSslNnAmMzZaryYZzdsSaJanNAjyYqQpPDXxDdzZxXyYdVrRFPpKTtmRKkrMkZzfvFMmfeJjpBbBqQGrhHRuUyKFfPplLkSsvdIiDAaspgGPShHWwJydJDSsdHtTibBIlLYywWZzhZzjbDdBZzDZuzZUPpkuYUuyhHbBkPsSpFLVvlfWIiwrRLlclwWLrRtTbZzBJjHhwWgyYGXxCKUKkgNnCclWwLGgLsSlGxPaAfFPbBWMmwpkKqQwWwWpcCXRrVAascCSPpJjJoONnjfgtTGvVtiqQNglLGnuhodDOHhDdKkTjJtgGaOfhHFGgofFAHUfFzLUuvVrvsSVwVviIlLWtyYTtVvTQAaqhvldDLsSVoOHYymMcQDdqcZzCeEvVEeeECRGCcQLLlllLAaRrZzQqCDdcqQqHrRhlidDuUWWwweEIvVBULluiIRrZBbcCJjxSsXzIijEpiIPpPedDoOIoOiuTtAaUqQCcJXQquUwWqQxbAamzZMqVvlLZzQZlLNEefFnIiMmTtAabYZzyzZBhqQhHpYycCPQXxqPwWgyYWwZwWKoDdOhHkTtjJaAQqRrlLlIieELJwUKkKxXEekcBbCRkKvSsVrZzfzLlZxnNXFTFfjJyNnrEeRYpPwDdWOoizZeEIOofmWwMmMFtKkuGgKkWLoOlMmxXIijibBrYyRBbOmMDVvyYdohrRFfHfFSsukKuUzZUAahHIVvzMmZqmMxlLlLXGzZmMmXxzZhqQGgHiICcXAhHaVvtDdZzhHDAahHdTydDxVvXaAGgYDlLdjGKkuUOoAFfZzxXRrOoagJJSsLlOoFJCGjJgGOoAmMaiIuUYgGsSylbFpXDdxPyYfnNEeZzExmExXAzZnNsSaeDdCcMuYyUhHKEeEefYKkEsSAaGgeyKkGqQgibBxXIFkKvVNnIzZilLYyYHhIiDdyrXxRtTksBbtTMmBsSbBbSBbfFpPSsZKIKfFkisiIZXxqQzSkVvzZlLtTzNnCzajZzJAZmMvVQUuzZyYqczZxPpXtrRTiIfbBFYBRrbybiIBNnPpdDVvbRrkwLTthHlpPWsMmYyIiZzzZnNzZcDbBKkLlyaAwWYYhHyAaXJjPRrpkzZKxzxXZgGhHdKzYyZkZyYzxjJXTFfbMaAmMIimKfFYOoywWkHDdzZnLlsYySNBAiIjSsJabgGwbDdBOsxXvVSnNCcXxBbHHkvVlLKGgdDaAkLlGgRrRrjVvlLeTtEgGHhqQqQwWJrRrRZzloOLzfFZdTtJjDHLlhgGsStqQTtokKOOopPTtlcCLBaAfFTtTtCGgMmcpPLlNnaZzWwfFShHspPUurvVRfFwWqXxQMphHPCcbAaSHhmMyNnYeEiIgsSJjGmMKEekZzKkwWVrCLlzZTtcRLRrqlLcCQGgiIGglZMmWwzrRnFaAfFJtAamMTHhbLleEBjRKkWwrJSsjsbBSOpPLlojJuUxnNSseEXnNmKPugGzZmtdDgGyYTnNDdxsSXMxXdDMmaCcsnNMmSAEelLhqrMmlLqbBQQqRicCINnOoPppPyYQqOwWajfFEeMmSsHcChfFJBEJjeCcOopOoPwWkwWKyYuUWQkKqwxSgGKkUVvfFVaymMAadpPnzZZzsSzZNfGgkKqQFVvtTDlLqQYHhzZEeLGglaAJjAcCaHhHhJjyJjzZsSYAPpaUufBbFeESsxalLVsSvAxXkKiIcCEujJUilLIEIbBMEvpcnNRrCRrRDXxkKtTtTEjJjVvJQqArPAzZTtfrRSsDdsSnFfNbdDXxfcCrRScnNNnrRCNnszZnJgGhlLHjNFeEoBbQmMyYqnNQZEKhHkpPeStZzsSVKXxkvhHGYIiCTtcyKSdkKBNqQnbeBbmMEFFffIiDaAiIUcCmxXMuUuxXuLlUgGEcCekKEAaeXxkKRrshHtTuxXrRkKUoOwWPnPpNZzlRrAadDDdkiIRcGgmMCBbiAZVIiBoUuObiLlxXUuMmjKkJzZIAapPjJvDdmKjJHhXBbxlolLOLdWNnzAbBaZwWgDdtsVWcCwjJgGBYyRfFrbRrtTvPeEFfpqQiISjzZcCJlDdVvLltTLaAKWwQqkpXMmAaxhPyYpPpxXEeHPpPdxsSDNnNBbqQndCczZBIRyYrTtapPAkcCEeAaGgKibwWDxDdXdRZzSIisriIjJrRLjJFgmWwMRrLlJjBbGcCNKknXxcNnCdPpVvwWrRDeJxXIijEbMPpvVYymBUubBbAEekyDdYBbXxBbeWwTtERKkFfeErUwWAaJMmjuReSFkaAlLKfswUuWXaAEYyexOoLGcCglEezZSNorRvVcCOjJvVnbBIiWdGmMVvTtlYyLrRgcCSsDhFfvVHvdGgsSWwsSxIHKkiITFDdlLKkmMtTwWflXxOoLXxtBkKnNvVuUBbgBbKkdYWlLEtTeTtwvWwVjdDJSslLVIiTbMmBlLsSkKUiIHhmyYQqMPpRrYVvyneLHhlENnNIiVLUulvkKvIiWqWCcwQoGQqgofRrTJjZztUDduAaFgyzZHMmhrRnNJjYgGHgGAYyaxQbBqXqQaaAoOzZdDnWovVODjJFfdOowdDNmzZwWvYyIimMmjomMNnjYJvNBbrRKEekLlnIiVWXxuoONzuUZnlLKkXEBbNnexuIiUUAvVaBHhbuAPrRaAYNnyuKkUZXxgWwGqQMmKuOoUkkKUlpjMXxmJPqWeEHhOxXoxXCcBNnbvVwQHjJfFbBuKkaAZzAOgGoTtixXINzZnaXxwWUkKTtdycCYcCVvDvVhSzZnCAacaIiFgFrRfGNnkKcgGsSrRCcluULiIkKFfCIOoiIHGgDoOeKkETtPLDdXOoVvxLlfwWkCcKOoyYgGgnmMvVNIimjLlJMZzVwWrRvaKkAUVvuJgvVtThHqQGtTjBbmaAsZwWzSJjMyYTtkKkdDKlLbBNnTvgGVmkpdlLDJjPVZzvaAFOofmwoqtTQvVvOohZOmCcMmMoknuUZzNbbZzBUubVxXvZztTBqycCYeYYSRrsxhiIHXccCsSJnNpbBMmKuUWwkQMmkKqsRrSVvuUfzZJjdJjpRrdDWwWUuwYyJqQZzgmMGqiIQjBwZztTtTnNJjSsqQVnNGgjAePCBbRrcEeGgzHPpesSPPTtpHDdoOuUhSsHjNWwnJvbBfFvYPALlPpaWDxtTpPrSsWMmNnTWwmMtUooOOoCcvkKoOpoODdOWBbwomkKNyYnlLyuHhUYEeronNOiIRrRNnoOQmMqCfBbFymMnwWNFqQarRVMmQHhqDdJjPpmMBvVbRrWwiIvlLVxTtKEsZxswWSBbXzbDdzZRrexXCcsSxXEUuBkikdKkDPrCcRFfUXkVgHhGDaAnNfFSsxfApPkKqQXxayBYyHhrdDRbtzZCWwVvckkKSsebBEvqQVrRanNaPpAFsHHhwWrRTtTANnatKKPOwsSyYWiIBbXDdxWlyYPpkKlLLdAaPZzpLlDJjIiPWwAaUgLlCcGfFBfFbuTqQtAapKkSsHhUulXyYuUQqGlsSjXxJLgFtORroTaKDCmDdegGEdScZzyHhYCMmgGscgRyhtTHKHSfFMmlpPLAaKklmMjJbozkKZoOnvwWpPYydDCeyNZzZJjDdzDzLlZxXrRvVNnmMdqQZHhzLlndDbKkkKBtnNTsSCDSGgqZzuUMmRUurQbaMmAgGqjJfVvFwWQFEKkefKHhYyLZzodDaACcaIaALNnKkMmlGgNnhXxXHHhhGoLlOoudAGgaDjbBhHyYJhHLlVeMmdTtrajIiAaEeBNOonbJMgxXwWGgXxnNCcFfOBJjbrhHbBrRfaoOBsSYyIinNbABbFRQqhXxHoPppPgvGXxTmMrqQREyYeJrRjkdDGgkKrRKcCVvWQqwtSsFfgVfFsUunNTtUuDdxXSXkXxHhLldSsDKkKuBbWwUpPHaAlXqQFAafxKkdDXxLlrRNnLaEDdKoOVvkeSsPpMmAAaGBlCcLmMOobcMoSsmJjPyYiIpDjJdMLlLlCFfxXKkpPIicFbBuUdbpEeNnEefkKjJTtTtwmDOodPpnNlLtrRlzZsSUuLNndDdgGDZMmieEILxXlcCuxXDdGgiyYqIiIioOHEeYzyJvWibBaKcCNnkKkjfFJhHCAaTjJtjJPpckWsWqQwrRzZOnNoCoAaFfFiIOoJjBbZzIixXfoOHYKeEkQmlLGhHBbBbBOwWWzZzZWwbdYwWyvJAajCcbBlLdBcXxrRTtEeGgDdqQrRWLQJjqlIHRrUzZuhVEeIivEWwsvbBVMmIQqQpPLOqXDdPtxIiXTpxODdoKkaAOoLlKkVAayYZzkwTtWrRpkaAKsCcMlLfFFflLLiIXfFRrywWfFFfYCchrRLljJSnNsEeYiMkKGgghzpzHhvVFffGgFZCciIVvWvcCfFVrleEvMmVmSsMDcWwUavVAdDSsRWRruTtPpTjJtpPmKkeXxFfGlgGLvVgGaALlRrQGGggocCOlfFLqgvVhcCsWwXxSHGghcZzCHHhLzZlWgMmmMEeGdDAnNRrVvwnNGYygWgPekKEbSsVHtvVwZXxzSwQuUUYsNnsSSnMoOTWmzZBbMvVvVvCcVRrLGVqQtTJjYyRrzZvWwqurmMwWnNRrAoOhHIDdqGgxwcCWeEQqOLlqFfAavVQoXTQcZzCkKjJqvVvVGgtqQvVQizZEeoxqQfQqhHBoObFThwWbToOqoJhHjPpOFfFfQkZPpfPNnvHWoOLlZPppnOzvVPlLpMOomiIRraAhrNYmIiMptAatTUufFTLyYFfYylmMSMmsGWwDdFflTtLBbgPxXxXysShHiQJIijxXRBbqQKBbMLlbBRrhHpcCPPfFpquUmQJjGgcCZzqMmZEeuUzSsOoLqQPFXWPpPpwtTZYyUuzDdjJDdyYcCzyIGgXxpUuPGgEqQJbBqyYVHxXrRhRreQqEvevnUuZzbqyYoOtpPTQJMtTmsdDzZvVEeTtXxOVjrRJuOMmafFJUujAsSIZziJjtThXxFfXSeHhLlEUudDsxYyMmBqQhHFCirRxXSsvxXVPpRUuVYsrRYyzZTjHUuAaPoOtSBbsTQqKNazZHYyhRrAtRRXxxjJXTtHhDwDUudEnNZykKYQqzUuoOrYyxYywWTzEepPCccCkKZRrkTtKGeKxUPoOyBAagGBbOgGoKnNkNNDadJjNnDNcfFxnhUOouHjJfJjFnBbZzvVNrRCceEJTtlLKkpPlLktTKexTtXEtTjJFfxceEAaCvVThIZziuzToOAaXabqQBbCiEeIbBaMZoOqQzEemAJBxXGgbBDotTlUuLXCcvVEyYeEwfxXARrmMaFWeecCEOhJjkKhHHPcCHhpjuhQNUiIunqKkNeEnHUCcOHhouBfuUMmQqtoOjJTPpKRrktFXxBFfLGglMmbrRtKkNnDdcBuUWwDdlLqQEeZztTbNHhniICMpPAwWNUunaUuXxXxdDVZRhHrOohHzXxKaANMLlmnkkKCcyTkeEBOowWbbOgwxXIiZVGgtTvzEmMIiieEIsblMOomoOkhcCHiNnNCcIimMnyYvVAWgGFfpPwaGlLPpSsJQUuqsoCcOkrSsRqQZzBdFfDVvbfFHyYCRrbBctyYVvNRrnwWvVvKkULlUtkKTpPTtfFuEeatTGEeuUgAZzuVEesSCcBefFwWXxXxEpcCtnNgCSAasnNQTtquxJjXxXXFfQqlLtYypgKknNwWKMmmALHtGgThOjCNncxhrojiIGgqxOWmMwoXQJnNqNnQAsOoAUuatDWwdRrkKqQsWXxwhHgNnNzZnqQHhXxGasSAjJSsPsvtTVjJDqQwWdSxXSRraAsdbzvVZXxBDBbgGHeEAbBaLAjyYJkKapPEiIhLlcCuUNbNLlpvVPXxFfRrXxYJjzZuUysSgJjGAgoqQOTfnNUrRAaZzINniuZiaPpAYfNEePBbpXxkKPAvkKSqQspZiIUuVIivhHuUVjJMkKhFfFqQRrxdqlJjoqQVvaEyYKGxXgXxoeEWXaAxcCwVvpPnNsSOeEKpPrRknRrXbAZzaBbBxEeRuUbBOAaZlLiIzgGjJKuyYUDdkorbBPRlLQSkKseEfsSFIirRHxSsXQqbBhQqpzJjhHPpZGgnMmcCVvgGNtTolLsSOTIihvVFfXxDdHOKkoAahHXvVVvxToOWweEOotoxXWwwWBYtTybEenNtTQAQcCjJPwWbTLmMRSsJvVMAoOFfalLhPpqQWwQZsIiSBbvxSFfsKPRiInNGgqQPprpFaWwmMAamAaMIaAcyqFoOIRrkKIiiUUuufiguqQxUFfaArRMmhHLlzTPWwpoObBozZyvVYzUqKkbXxoOiIvbWZzVvPFfBbbQqBKhHflfFLFyCiIcGgQqlMUtTMjJZLlJSCvVYycsjUYyuOKOoQlLPGgymzSXcCYUudDKZzUuUulLQqbbBkKSsaPpYyAOowVvbpPkKbUOoNVNQzZHYyTtTSdDsSsTttTtWwhqcCDdEjJxTadDAtXkKeaBbLlAneJsSjkQqHhKrRkmMcQsSzZqCxAaXKkKEYyUIDHXxhxXbCcmMbSMmDdHeENnhxXEeoOLljtyYTagPpPiIrRCceEFfUurRjSsJXxBbkWwGPfLlFoiFfIOaAvVbBsSsiIdDqQGghHrRsSVvLwWGhHNOoUuYynlLlXfFzDtbBTJBbdDjhHKFBbUuRvtTygGFfJqwWsfFRWwrCcSsdsRyCccKkFfvPpVCHhPpuHhUZzQGoFWwfiyYtTIwWWwrEFfwsWwfGgFwyKkFPpwBbqfWwNCIYyKmMGgzaANXxnXzZeXxbBsSDdXxEPpMELlAaxXsgQqbBGiIXRrBbiwWIlgGSsYcCCcyLAagpPmCuUcMbBpjJuFktVNnvnNJjVviQqUeEukKIPpTBbkBNiyVvmMKGMGpPdDghlLHKQUuqdEgUTtuIiGwWzIIiiZfewpPWDdzZbBkKLWuYyUeEXnNgfFbowWZSEeehHszZKkSAIiaEoOWrIQeEqUuitTDdvVShLlTPpoaAOUxXutIiBbCclBbxXTtLLlENneNnSsbDkKjIiaAEetuUTJxEeKLlmMeKkEuCcUqQRrkWwBZzARrBUurRaoOAmMMbOXcGYygCxVfFaAvwHOoPvxXVSBbsNnnVvAaSsNqQDSjJMmooOKgGkAaWxtTabBUueEhHFQqvVnNkpPkKaAKKnpwWYTtyiMJnNbBjQqtisSEzAaZehMmfFHeEuHhWwmMUFJjInNvVjvVNzJjuUBmoOlHhdsqaQNnqAbwibBFjJfIzAaZDdyRubBWwcCzZLrbnNBwWjJsSJZzmAasSEOorRxXeKkEeyYAaOoOoUygmMBbsSzhHNnxZzXcCUuNnPmMpmOoTMmtOodDCcTYyuGzZgtvzZPrRpsKzcCRrxnNXRYyYyrHhZkXxJjfTfssSkKhHiIIiAxXojCceEJOSsnNlLcHhChHmaAPpiIoabnNBwNnNnvxXIpVvnNPpgGAaCYDdgGykIKzxXZrRNnvVcyYCNnDSGgstTDdBbkkqQKYyJvyYrhrPUukvVuUeyQMmcCqQALIFKUbBNxfeEFzhTtHfFWwuLfFcYybNCcnAZzaMYGgWwyGBRrTtbgGgRrtTKFfnnNKkNdVvvFwWbBSsffFnNVSgGHBbhsKcTNnxXtJJjIiJgGsSgFfGIinveEnNEeTtJhHjznHLlcCmMVvhlQqLHhfFSsMPpgVvGptcCFfyFfaAsndDJjNgaACcIiIApUuUuSQquUdDsaATtkhLpgmMwWVvkqQKSsOoKkcFfCsSRrXMmoOorJjlYyLdDeQYaNnAyWwqGgRrpPwkKtTWINnGbUxpPsYyBbSQEZzswRrMmWcuUbrqQRBqDdNPiWrRKYLleEQqyYRrDdMjzZfFJmxaXxsWWUfuwWfzlCCHhaFfujoMmOJooOOeEikKIsKkRYyOoZzEezZXxyYwdobBObBDGgWuVviIjBbVviJavVARsSdkKkrRcCBbyiIdDGgfmmMMFRrFfHhBelLRrloOQqhHZwWmMgGHiFfIhtTPPYKVvjJJjpTtnNaUuNnBbmMWqQzZmMRHhWwlLlZUucgdDGLllwWLIipjJPClzZSGgfFswWLtTkKzTgGtMmLWwVvGgNLlnaSvVuxXrAEewyZWwwLyYmMWwqTHhtQyYcCjwWKkJJjlBbXAaxbEeBjJrRWwxYbBJjcCFlulmMLkKULuUoXxOfeZWlMeCiJomMOJLlNnjcCQqjSsAqXxzaMmbBAZAarrRgWwrRLuUjWwYyJGRrtRrnnzZYEHlLHkCmMcIisSlipPnNbBKLpPlvVyYPpILluBbkrjEeUuJROclLwtaAYyFfwbBbBsbBSWoOzZyYkKEQqkOhZzGWwgsBblyYLqQSMmnCcNsCcArKkTSstsSmMTTtQaAAaBbJjqlLwWplnNsiAaIDQZVeErELuUMzUNnyYuFfZlpPDQSMSsZGSBcCoONnsbnHimfyYvvBNnmMbICcsNnkKnKkSBJqVeEIivQjUWwpPzmwpPWOEhMSseElqZeVqZzQveLlEEeFODCewWfIiwoLlOTlLRtFfWlLwQpPwWEeqxXBFfDyYdNKOogUdAaDEfUuzZjJUNnuFroHHvVwWiIhfFTOoGcCHMmXCcjrRJgmMvgbBQwWkKkKiIlLqQwWNnlIGgRrXxKkLoYyOlTtVBbSYyslrqiYvVqQCcyIEObBofFqQfFgGQpPqlSsLbbyGgaAaoOAPIEDdaAUuegeEzfnNZzSsyaAYLLXuUXxWJxXurqyVvYvFCcfFnLlBiIbzUuZzpPZEWrRwfVvtTWwqYvwWVyfQwWrRCcrRrRLIiiIzhHpPWwBwoWokKOVqpPOyYUuqifFJitTIrRYyPpeEgZzXxqAaQYLldDIhKknNHlFQTttFfHBuhHUjTgGtYyJPYypLdDUugGSiIbBpIiHhjJPYGgdZzDTbdDlLSaAsBtXERrmnGgNTlKkLHJjhprRPtMsOIUuQqTiJpPjZzFREZwAaSWAaZtTIinGUIiXaAmMNdUQqcdDSnOSsIlLNJjaAsSrRDdQqEeLgGvVDdiWwWTfYyFGXxgacCaATwWwWBbtDmMaKIizZGgrRZzDdnNqvVHhRMmUDSsUuaDYeWwEJYyKkKkjXxSRrsXxjJsOGgZJjhyYIigGiIjJOoKkVvVrCcpPUuRSwSxXsWoSXMmwWmMiKpNvMNnLlCcHuXoOVvnWUuLlwVwaABbWuUoOygOoTtGawWDdAoDdpPQqJjnNOYbBZzBbbBvNxXcnMmoOJjhqQaaSfFtTpIilhjcCJxQqXHUSsuvVaAtsSPpLlGgLdPpnyYTpsEeSnNkFCcKIigHhOoJjDdGEegGkmfFMcCCcLhHfFNnSqbBdDQsSvNFfnFOoSZzAiwWlLuXxQqUIqQYySKkwrRSicCIXhHXhHovBMmQgGoqQpaAcneEwrZzRhHwSOCmNoQVvPsScCrRsScwuUWfFCXrfFcXxQLTtlyYFGgtxXTTNeMmIiYFZRnNrzpYnVkKyYJCcjhdDEeqdDCczZabRoXxOeJjrKkStPpTWCcewWGgSwWDtuUXxkkWBbwnNKKZieEoRrOhuUaAGgrTiOMmXxoRrNPpdDnNiWwRrEDduHhbBqmWwnTtEeqQwWsDdMmAarjYySsPGgDMmXeEfumMKvVkcTdDlLuUGgpAoOKztTmMyrRlLYFjsBMlVvLFfHNMmnhgpXAIUunNCcuUUogUuQIiZSszNHhrRVQqvdDiNnzZDZXxHjJkNTPpHxbMPtmEeSsbSsBoOCcnVuCqQbEenPGgiiIIKjJHSlLsmrTtRMhOwiFfIWcsIixXBESeEsUuahcfFpUuKcCCcCcSvSqQmKkMsEYcCyqQeqUsSuPLlpiGgZwWJmMtNnTKkKkQqzZGgjvvVVyYeEBJLleBbEgGfFMmMYtTyoOuuUBbUYlLbVZcbNvVaFGpPgKkKkOYyXfGgFCvIDdiVWBvOoeEnNlTtIHCcerREYyXWwDEeAaeiLlPbiXxInNpfFaAPEeWOosSwDxFpohPkBbKhmuUJsSEezZkVbByjfFfHwukAaKvIUuKkiOCcoeakziIDBqQgGrQStTCcJjknNhHipmMYeEFyGgLfvXyYHhloGgOAfFxXdDYyMmSsSxGgReEcCeEedDAaEIVvLlqQipPPQTtcqQZzyatKNnsywLnNlhZoaaAtTzlLZoNnJjOiIZzuUfdDFguHJQcCYyJjqkqQXReErxzFBbwTtWRDdGuMHhmLFflrRIiJjrqQnFLljaArgcVvDOodmVvJjkBzoORrKKkkZbiIKpEerRngnaANvqQVrplRrCUJjmMEeiXxrbMmdDxXHhKkrROoTthUuHZUueTtWKkIiwnNblkKlLLjkxXvwWqYwTPQqEendcCZQqznjUuJNnsuLlUSSwWzZpjbBUdDEeGgrUuDdirRFqQZzNYynzokKOZiHhRrIfyKoLlxrfTlhwWHLFWpeGGggErZzRrRbBoOcCPdDwWpeEsjsKJjNSsLmMlgectTBbWRrWwwfFepPCcMmbvYwWyVRrBECTfFhHUtnNqckaGESswHhWnNeyQqJBbZzBIiBmdtsaumRggGGroOeEJjxXVCcbITtiaAmMBwWsSlmUUJjvQqxrNKkxhHGgPCNntcCTFfJOflsXhHdyYdDPpsSsqQIepcCXxjSLlsSBbNnsHuKkrbacCAmhHMbOJhgGHZztfMmtQAjjJJrRBbsSaqSsTDsSqyYJjVEevQPpqQTtDdDdZoOAaJQpbBbiHhDdzZiHrRZzKHOesSEobBjJcCfFtTEfDdFlLxbgGDdtTwUgGLozZOvVEecdBbkKZzrtXxtrRpPThXciBbtTTNflYyJvVjXxPPppinNAaKLfZwWzOovVuRhgGGayYAgZzHBbDMvVlLnWwbSsBxXTtNXUuwWDdBFiIBUzcCGgnWwNclxXMAamfLlbhHhHpPjZzZlijWBiDpPstTSDdrLlJHhkeYISsiteDdiIlWXLJsSzXxJZzbBRrxBvEBevVnTteCcjumMiwdDWbrRFcRXxegbBjOuUSZMYyUuljUudyYXxyMtTeEmQpSrhHCsmMHknFBbzLlWtEfFezZdDAgcCfTZzjyYOMmTtecCCGLlBbglbNDdnGCaAcnNhNcVxXTyYFfAambOSzZskKpPyYQqVvfXeExAaZNfDiIMmdubqQlPpLEyfFYJQqFPWTzZgBbGsPkrgBbIjJMmddDDleMOwWooZzYyZzepPJKkjaAcCNswWVvfFxoOXsSFSIisHhqQxbgGqNRrvoOtszZeEYyiTtzZIxBdNnSpPsOPpVeEAhHaASsXtTeEBMmkKKkaAmpPENMmdDfFneTPptdTtFfHhTaOFKFfUNdVoOWwGIiUGiIRvQrRqGgEpDAamMdvSdcSsWSsLlTTdYkKyReMiIzpxoVWwjJvlLkLlzZEeuKYPpykrRcCrCcWUARrVvlLNcArRAptUumGFPCcpJjutTUMmwDcqQCCHhBhHbqUhJjYyYyACZzZwAaWYanNAtTyosGgOBEpeuuaJjlAaLAtPpFlLLlQkwWKqZDdusercyZoBdKMRrzZVYyfvVAZtAIGQwVvFlLfAyYqQpPqePpIrRbmMBsSopgGcCXDzVeMmNzZoOnEQlOdqQpPDbBWwYylkKLpUwTtWuPZDLBhXTKTtktSWbKamYWwOWZznNrJMUJoOjuuUaAHjJLCclhHtevcCaHAauCzkdZzDPHBvVDEeHHhgGhjnNcUfgTEGPBbVPpfFGgMDAatIiTdEeENOoawWAdEuoOvGmMgSdXDHdNPpPpnNZzVXKkxxXHhLqtLhoOnNmMzZoOenQqbBHhQuUuzZaAUecCDQqdxXxlLNnVzvVPcCFdvHhhuceEsVQqqlLeEmlfDdFvVFXTzZWwRmOCcoMYyXjJxqQINniUdhgpPAztTfFapPfhhOoyeEYhHUUuhnNgVpPIiKkAnNLlalLGgWwkyfxtqQFfTPuARwTXxlLtRrWFfFfmMOmZzMoPmdDCPVPpvSspBPpSsrRaADmHRRrvVroaaANnADdqNwWDhpOogiEQIiSsCFfsWQaAfrWwRyYntXGgxirZmWVUuTtPpRgECceaABUuOovdDVZwuUkKtNnTcCjUVIihILOoJjUiKkJcjLlYTtyJxaQPpqrIiRAswMVvmJJOoauRSsgXvyVBbBMEQwWlPatHYgLloOlnNLjtsStTTsGgUutgXdDJjxWwWwZsSbBvDJvpPVoOHvKkvMwmMBbroiKkEsPpVtTXDdRrRtqaZbBzAbBQEFSaoOAapbQqyWwYBPCzniqPpQjJmMGhXxiIKkiCcNOonIehHYyjTZUOSsHFfJSccdoODqlLiKktNgGlLnyGtQqzgDfFCcXKmkKkiajJAwKlpPLkpAfFnoONWwUuLQbBqlCcLKThHOowWQcCqhIiHHBlzZQqWXxPpQnNqCiIitTvVLcHhgGenNcCdDbMmQqJTHwWhceEGgqQcKcCmMDgHeEhpZuUzvVPGcCcCpPwLlqFyAQLlNnfjcCJFOlLdDkKdIiHiwdDrRroOReEqUTtcQqIpzZPgGgnHQqhZZBxXXvMtRrTEdDUAaADtTqAGgVQqcCqNnQSAvzjGlOoLBnFfgYyojJxGgXOGMCNncgSAXxaRPYyprERbZMcmCvVnxNnCcaBbATtHPneaAlTtlLRrkijzjDkTPxvVtZNccCCpPmTzZtMkKvQgGXxqVfdIYyBmZpzZcCZzoRrqjOoLQmyTkKgaAWPDdnNPlLpiIpwIxXNbBnHDHYhfFeEebsScCBeKLUVNZgPnNhvyYwmMiHhuUjJLXvVAAadfFmMqLJttEebNpPjJQVvqQMdDvVdDGgmrxoOqQXjkKNnmRruqSsQrRAVlLuUuPpsSYyNmMASVHdivQqJaeEAjVTUjJfFnNadMmUuhxXldDGvoziIJYHYyOomMgGgrJNngGjRgqQdDGdDjMZzmhHpPIrRLljJwWHhXXkEFfPyKkMxXWwVvwWLltTqyYGPpWuBbyeEGMmwWdiIIWeIiEwiGtTggahhqOolGgLiafNYBtMOBbjzZJhjLJFouUwWOCcjFfJnTWKkFJQTmuViIwWPbmPUupxXMRaAYBbuUmbwWBgQqchHxXCoOGVYzaQbBZxXMJuUdDdVvrTtXxzFIiqjJmyFfYeEMzoMsSiRrzxgOlkTtKCngGgGRrizjHhVYyyLbBKgWEQdgGrRDMmTwpPQBYHhkgGhHGgKybjJqLlWtJcCjqjAtauNTtAAAwEIiIiescNqMxqQXmxXIiTILfKkFgeMmXxUuxykajluULCckKXnAEMYjPxpPBIiDdhIDkKtTdiXuUNOonWBbfMmKyCKkWwWBbqfFTAGdyYCcDxXgJVqvVQXsMmRBblYyLUynJjxXNkXxUkKuKoaAOKkRfJtVNnXxvYygGJjvxXGguNoqAakkvqQaArVxlrpOfFbhiucUuCNnXicCIeEmvVRYhHZeKNenNprRGoOgfFPDdqQEOHhpqQPpPfFCcWwYyDdoeNEMmJGgnPFfxSzZSseEKkCamdDeELlhZzHFrTFfYpPydRgnNnNGmqlLkKmuUcGrJyxXYjPpRBjGgKkvVueEUJbVvDdmXxFfdbCBiptTmhnNRqQvGNnHhFzZFyQQDqrRKXbXqQxWwDFfzBAaANnWvUkKtTuVwlbWwBozRGrlHXOodFfFVwMmOGyjfvVqQtTFJIwkwvVWidDINndCczVYcCdIiDtnVvNgjJZzoZEeXpqQfFXYXxyWwvVxPiIDQXxpPqpPXnNJcCjRrpqQPzrRrMKkwjJxFfSRxzZXOVMQlLVvHhFfofTWwdDQqmMWwNMmnJjMwMsSCcmdmrRSizZBfFnIilLdrRaAhtvVtCUbmTtMGSsgFfJtTuURrDfTmWyiILTxEerRXhHYyTRrtyOoVfQWcWwCwuJjUqnNnxprjSsjQqJLlzyYTdDqfFYCcybHhgGlLfilLIPzZDdiWcCPiTbpoWhGvRItnVvNgOSsyDIaAjJURrUrRuEIiAuCBbNhHsSnzyAXxdDQrPWwpKkVRrBbvaAUuPpxzZdjJbBUMXxTLnFfZIAaisnqObBlzTFfCBcdEeMmCOlKkiFOooObBJBbNnjRvVgxXnPpvViZzSsINdDWiIHlEeJHlLhTBNicKkPpBkgIyhVvHiIYmEeIIiiBBmBbUXBbxKMZOVRwwTtWzYyqvzZzeNDdyYCcTRrtOorgGRWwTtnUuNBbkyYyXiIxuUYUIGgMmpRkwWVCthHDjsSRMUuosSHQwuUcZGCchAwWaGgKbHOvVoneBbaAhQqTtHyfpPhoGUuOcCeExJVrnNZYyzsSdfoOhCcnTtBbjJNQdDWVrRvRrtToOcLQqlsEeGvVgaAfJjEvVbWfOoutTVnqjPRrpbcCTHhPjibBUQRrfVUtTKkSjWwJLTtZzfdDIhHrPpRnwqQUucYWlLJwIieERvXAKGqOozcEexNngxZzGholNnCbVCccCGBbEhHeaGVcxXCHhHXhHxnNxvykGgpjJPKYVgRrmGsjKkuMkKmasxdfFDGgXJjqQRJIinNSNgXpyYypPHhYBkpPTNnGgyykJjpPlpplHhJjLZzkjJXuPpviIgGYRaArHQqOolIfFljJjFTQqCcjsSwWJtDdGXZzxEpkKwgGbMDdiIALlLIQqYyVVvxfDdPZzGPpxcNnCWinvoOhiuNnLlOomGgRrDdqQBqQxWsSrXZzxTVvkazsnVbyYHwUXxufXrjaAALlYyYycCEeaJHeEwzQaizZTluUBqQbQsSKkhpwQqVdraHhoOvvIiHhwEKItTiVvqQzfFjdiczUBbVGQkfiIuDdUTTSDVuzwWZwutQFpPNBIiFjCcnNXgRzEqWbTWwUoOQqgCjJNOoGgRHGcCdDgnjRrSADdvuUVtnsXxYZJDMGgLfFTdDbPLIWrpPbBEpnNgwGTDYVviBKepPVBpOoKskKChLxzviSszhzWvdYyhYyiIiEecwqoMWwonHhNeyYXOozTtMTtlQgMuoOQqWJdmxXiDLlJNnjIiOoIAuXPPpeTaYyADdmutTiCcIfFbqisSIRrPpRwFSSKkCNncsNJjJUuzZjbBNyPpPBbpqaAuFlLsCzZLlcwWUMTtFfmYybMmdLNnRrkKeEcCjQxovJUvVLyYsLKuSoOsYyFFfFXXKkFfzZfFgaAcxLlKkBxmWwWRrGgwGPFzdPaoHbBlLhnVtTvNSLlTcxwWngGeENWFfhHHsjqQpyYOoZxeTyIiYtnvXHKGSYSsKpPXxkyehHAaCzFfdDaKFSkohkKTSTtJEeWqQwqGWUnlFfcCAarJDdjyYVvWPpCSsOCcvtTVPRspPlCcrgKEwWyCxXSscJoOHhjluUUuQVmHdIkzpPtiQVvqzZzYyzPHhjgRmIRgwlLWNneTtEqkKClFfxeNlfFeDMmxXRQjzCsMmqJjCcaGSlLYTtBbVkEekKojTiSfNHhTtnKgJZzKBbmXUuHhdEeuqQdDdDYyHWQWxLdcEXkkJjQwWefRrFAKQxtIiTXiIqmqQMkaEqBFBPpeVvYmqQiIMyYuUVhEeJdDnNndSXXxxgwWoOvzxXUuxxXIudYgGyDGDUnNMmsSbBxXCRZzrZzmMMDPUuwHviUnNyXxYFHHhVvYywWGEcCTXxOpPoRUedgDsSdGZyeqeizZIRKDdVvBGHJdijJDxNniIcIiCWQNnSUoOrGgXOlPpdONnYpeEPbTGnCuUOHhLNnDtGenNMNFfVvWJJjxTtkKOzFfXApzOEjtfFhHTWLIAXPpDdDdnNPDFHhfdoOKZHhoQtTnRrDlLZuBDkKAJlhHnropvVhHlXVvVvIdDAuUxQDiIdNJjnBbfFGxDsvYydDlyYTtBbcCjfFmQVvqTtgXxGYSvVxRjiIJezYBuWmMevBjcCcjHKkfdwqYyQWxDywQqHLsSloOFQqdCEtTdDeKOxibLjJdDkxpPTzZtMmoWXMmKkcsHoLNbDdkKnNcCjFcdYTkVEcCEeshHtTEdAahHPpBeCcEmsWqhHPFfBSBbssnNRtTNtThuiFfqTlLtoQvVipPIMmGgpPEeLLIHKkcAaCjJBZzbfkJpPkjJwWvdDLlVYEumKLlXxkMgsHHhhSGUgGgGgVvbfVrRBbxmMjVSXxVnNvAAaMXiIxhHHhSHEehgGcRrhHozZHfYCrRXqhzZoOvYdDyVdDbbjJBZsLsXoalLAeEUikRNFfTthLlQDdqTAaeEHhQWSTtbBswWwqzZNKjHVLloDdDdmWelzEevVEVveKkZLLlBbPplFhHxoOTtzjKknyGucihwftwYylCrRPpcLwXxWFfWwwdDzCZzvledDlLWwAatKkTyuUwcRgCJHxXaAhZDdzEfpdPanNUutTApzUoOKkuZJMsVKQWGGgRdXxJjUjJsSWDdxavVAOIiuiIYyZBbelvVLEzUNMXxXxWMgGmbbsSqxPpVvTFhbvVeWwEyYhHBHjVvJGcCkpNdhrRHDwpPVmdUuTLMzCCcwgbBGmDDxvGYIDdohlmxTiGuxXQqpPvtTcCJHhwWjVoOvMcCZSnNjJdDjBbBkxwZuNSsSFLncYpNnPgGWLVvnXEAMGggGFJjsSOMGwVvqFfzAayYSsDbBdhHaADjGlLZvYbuUBmeAOCcbFfqQBNZzeOoEPypPrlLcwjfCSugGCcirRcvVFTtSJiQqIpkdSnRrKbAnuUscPpCYyNaAoPIpuCchIaACOoJbpQzZDWEeFhyoSxWwWfgGFuVxPKvVReEdsFdbFxXFXKkxAaTtZzwWyrfFzSsHcCYGgyPphxpPXZRYxXhwWHsZzChHcAaWUuwnhrGDtTdgQirjJbvVvljJAvVeEawVHhtbhKPpRrktTQkKEeWwqAaboUBldDXImgGqGgQTyapRrtnvVNrTJjsSlLtjJdxRWwGCwWMzaLWJjJDMANrcaPpAVLlpjnNqQEfMmLWwVSzZTtPpBmMzDbBdZWRrjCcrRWwtfQwYyWwZBYyoOPpReErYMmilcEeABbZzsSmqQfXCcWwJeviztvwFtnNbIiBbBaAtTxtTVEaZzgGllvGvVgMmlLkKznWwNnxdIiiJjUuRrfYyUNwWwHvNneMaAFfbUuaNtNnfbOoMItyYMmMPWoOwiLlvwWoDdbvVIybBfIiFQOIiYyddHlsCYOoGHYyAahFtTRrEjmgGDpntNnTrxHhiVRJffUyXgNnGlLqwWxqQfkKhHJVWwSQqnvVVvYnucCCFDqJDgGqXxUQqNnuQdSCcZzsPJjAUuFoIvrRVZhLlMmVdDYDdKOokOoSlWwLgvssSFLlzZMqXxQKkarYyJjsFfSWwCRrhHjJmMwuSqwrMeWwEmSIBbuUAacvpPxXHhgJjMlLPHHYRuyywcnxjJbBGmMwWIdyfwikteOSMmIrkKCnsUuUupBbPgcCGEIYmzaAJMmHXdMmhbpPuUBfkKrraAJWBoYUNnJhHzZfJpdcCJCVpVFPoSsLlcYyphDdHrGtfNntrRiITszZXxUNOHUMCRYysyYSvXdUuAajJQbBEeqzxlQqjHZzhXtglIXSaANnNkKuNnUuUNSswaAbBWjJkIXCbhWYyUugqKsSYyPPXxvVfFtxwvVzqsSvHhoOwXxMTtpQhHqqjrRJwyYKXFqeSsBbryTtQqhsSfQlLDiIaAxzCcrqdBjJSQRDuUdmCGgcuVMVJAQqRrZzmMaBbzVoOqNnGgrYKkPWbroJjGgFVteEjJFfuVbSsXFNnvIiFfSLVvayYdDSyQqYsGiRrNmZUDwmMGgFfKoORyPiMIycwNSUWwjayYCcJjIiCcAaWwgKaAkTcrRCPhjlsSLkKnafQqBmMUuoRHhgXFfhHEuoDAjJQzBuMeIiqQFwEZwWoCAdDrRvgsSflLFGGQqgGBbgKsYyJjsqUuekHsSPlmMLMrmIPBbpjaAqMsCcSVMmljkbQqnLSsajFfJSIidUNnkgcpTDdCcBoOJhZyGSVvPYqMiKOhHhHwGoAajhNuUnhzvVZxXHwPpWZzgGHYVvHECuUVvcMlbPUAKMWZiIuNhHDyYIidUuRHhHRrhrnZmMgBbAbOEnNVvLUNAFfLlYyHXmzZrcCDdvVyVvhiIHSrRmNnsSYGZzuAgSsHEtQfFjJqLlTUukKkDdKednMJZYRRhMZzmdDjUuUuJJjRrjiIaYuYyUvVfHyYIihAaUoQwGeKTbQqBLyLYyGEmNnLAopPlTbBbBtOozKkjJegzGgfMmccjJIhHijYybcCIZNnmAaHhnzZyPcCuXxLFflrxzZqRrQXCnAQMmLTAatlnNlgAozSICRhAupwCccCMrRfFWwIvZJjvmMWwVzxXKlLkZzHtrBbTtGgRQqTvPpYyAkKFfHhfHEQqEeekAbBGHefFkgkRiIDNRPpwWrFfRfkuxXUoOjqYLlMkfFKyYuTtvBaAMTBHISsiVvyoOfrABpxhmgLzyHAdSsDdPDVzZWQqRfgnNQVgGgGOaApSFjEezZsSPpUdDGghHntTbBkKNzYDdkppPKkniIUuaPpMHMVvlZljJrRmmlddRrBbsSNuYkkmfmFfjTzVzHhZcCUHnIixXNuiNnzYyzInSYhTZzJAaqQDdxHpXxLlMnNazZawdCSsSPeKpPCoptQqmvFzZtGgnNpRcPxBkKsSqHJsdqHWwhOozUQKkMSkgJIjJlFfLoOijJaAlfZYCcrFqQMmfRmbnNZUwtqQrRAalaqbaAoAaljgGJgyYGXbTtpPFDqrDKNnPHhFVvfIiHzZkKeGKkxInHhfFBLmrUABuyYqIHhpPENHArRfkltTWwLqohJXNeSYslLmQvVGfFIiJNxRuTxXTtgIEsxyYLsgGSlzOoVsqxADdaXQSoOsSFWXxlQvnNVJOogjJjJsWwSbcCBnfcOAarOohWwUSwnBJyYAazDwMmrRgqANyFfSgGpcCqQLQDTtwuQqUxKzZpgGtOeCGgcvVhliILMaAMWwmNnmlLTaAdDPpPIiwWymMRybhRZhHINniQGWibBekNnkqQtTKEwSsWnxXhzlLpPYUgGlkKHfEsNKruUsSRzZeVvepRrGKaJbyiXoOxTGxcCYtAaHhvolVttTGgbBleyYEHcChRHhtGgBKPpnNFRSBbSIZBmXqQRrXDUuNmTtyJXjJODVpPzoONnZvnSkVoTtaJjAaHCKkcOokKtapxXPpPJjAiNnrRUuiNbBZzpPiSVEaAueEUBEiIXynhHNFfFVvQqGSEPpQcsSbCcwWRvVrVLlOGIigofkpPeGNuFXxizZQhsSdNkHhKnRzZkKWwiIRrdUuYJJtTjVDUQHkhwWeknJjLsSfrRaApPkzxXckKRjuwRNnQqcCCskoAaOsPYhQJjqBXVvMbBYnLqrIjJRToOtnNXxrRoBbBEebvViIuUhVJjzZrRvefFbkKLFyEeYbTOosaASGFfuSsSEeHZJvxXeHhabnTtftzZpPTywnKefjEDqXAKkdBFctRGlLtUJWoOZzrMABxXbaSbBsUOoutdXsXnrDVvEtMmrZBbmgvVGleZAmAaAadqQEEeNLQqDekZIiOozZzIZzOVvmMaXpLloOZzyYwWSpLJVvjBbwVmgGMWwCmrGkYyKiWQqwBOsLlSifibvmMPMmRGyGYesSEzOcEeVwxXBohHZzAKwWngGQdDEePtTnOdTSFlBbLfutRrZzzZUTtCBbNoxXFHqQOomFfCHTOGFuFWCNVfBdrnNRDbcFlagmMkKRrjJLCxuUCDkBbQLzgDtSDfFTpPtfFrLEelGeLJjDVSwDdiPHKkPhHiIpjZyvxelGrrRBbeBKkMpbdDgonNzvVmtncUPglITxtFcVRKkQolLEmMrMmyBLgIwZeEeESrWlfdzKCcTzZeEtYtTozZXHeqUHeVmUNnxXhsBbSfMBuqwfoYyUWhHSxqVKPpbWcCPYCcrWkKJytsSDUuJGoPplLKkoVvkKdDIOWGlLoXysPDdpTRruHvVFOlLmhkTiRoyqeArhzZYMjocyYTnNOzZcKTtvCAhHFoCcOZzfbsSZxPfFeiIEeUuIHPvnNXnbRcCxaZwDcngSMfSDtNkhHKnxtlINnGVLHtkIJaIKPPpnLkoAOFypHlIabJBMnNmUppgGPsLDyYsRXxgWwGdnkIiRRkKXWgGwacCZyYZcCGFfLUYMZQqhfFpPLnixpPEcXxjJUujJPdDKMmmMkvXYGqbBDHxXmMaAYayPpVvZzHhknNKWZrDIgVvOcCDdwWKjRrtFfYhHKQxXeEsQHVvLqQdRjwgTttIgobSJPqQcZzXIizeEMAJVPpvJQhKkXhHxNjDdJgGFfHAahIkKaoiJtTEzZtWUUuuDcoJjiLZyYhKzVeTBYyOBKzyDdYZeEnroqqCRHhrfBbwHtHxXKkjyXrRRhYHhfEeiANSvpDSEcgTtosxXIDdidyYeEDSUGPpDLOoAUEeXKyoOjJYJzZWBrdUuDMmFvNnUuLBgiIyjJjDogCZiIYXRQYmMUPqrmQCdkoTtUwgwWXcNnCnSsBIAKLoYyOQZGgzrRGuRrpfwApmQHReErlPNWwBOgMmauXxUOYylYaqyYGQEeCACLxXKkTArbpuCAahHktTJlJzNiInKkjZzSACcCsQpVpSXsOXiFZJkyiIKkZNlcCRKkDaRNysIiSKkYynYyEevsSWwCCcSuaAYtGdREerDgrFpFiICnTQYYSxnlJjdwWHhQMmqTchNzZnrkaArQqVvRjEACGiInhvfldDAwWXQqHfetTEGeRrEstDvgEqiAaGxsSODPJjHhpGgoBKeMmabhTzZkKgGLYypIibUXrfcsaAOonPpSGzZboUuOrRdDaGgAFfFfrRJTUutRPlLAOsSdgBbGiJUgoOiIDkKIibMmRrJjiKixXIkKIiIibUuBcUuWwAAaoQqFfgtFAiAGcCrDdnNXxbeixPpXYAVdDCFfcvmnNuTMmpRPphZLltRacvgLNEvwWDxwSoOXxHhsRdyHVvvabBXKiwmSydmSsSAagqOrWwRxXVvcgktiItTTENnaVngpPqOqriYQRjDlLdJFOfIiRjJKkysvbBwfFcChpAakKkKINnFfNoqFBMvVPprRVBHHcUaAuntlLqjEUjmMJYxDIiPkVNCcGPGWfzZVmFfiITAatPjdDuPZlLzlxHEpVXxblaKnNqINGXkdWwDKcCrDzzceeXLlKjhQqcCZXoOYXxlLDddDkSsjJjeEYSYhrRruUCVajJkIvVzJByCcDENnRrRfFsSVvonNOoYYylqlJoMdDWwHUusSLrJjnVBbvmyUcjRhXgNcnNCqQzZUujJKwbgMeOfoOyGQzEefkAxXkwhPCeNprkqQsXMdbBElqUuEIbBYXqiILfFveqpPSGPzZlLpgDdgzZGUkwWATDdsKkSTYytrRwYyyYToqQIYQgeOcsSGDuXTMmKEenTeayhmMWoaAsSIPpiOGMZBpWwiiUmnumLVgLliHPpSMuUsJjXxRnSudYyDbBrvWnvJtttlLWSahHAspPkCnNcesRrlkoSsdDYWTXwoZzOZyYyxHIYpPyirRisSCRrcKXUzFisXwpXoOgGxqTeBbMxuUzHHllwWYTpcBylJjtkKuUUgGvczAdKkODDBbdodhIHhiHdMbemRcBbigqQwLKbLlBtBbTEoHeEcrVBzLIVwWRgpNPrHSfFqTiPjKkJMDdPhzLlZAaMIieECJjDdcichdfqFSjJZzKQCBqhHQyLByYTYyjAxXKGqfFeEcCQgfFkqqSvVGMmyYSRrKHEehkIcrRCYoEKygwkqnNQnfVVEVvptOBgrIqmroORMJlueEUIWwSZzCWwpiFgGSsdQMmaXEXxYMmysbBdiuKkDwWBKaHgiNdDtTMosFfSCkKvpsFHWyFbBGiIEmMDfSbBsZmzTCGJGjHjzjbsreFfMmPHvVPolLVDrDzypvVjeEXIgGiNnJoTbRrMwWNcjONnLloaAJGrrRRdzRfngxwWYfFmMMhEeWFlLUwHhxgEnzoGqRNgUupmJcEeUWCgOnSMbBmsNHtjNntTCsSrsSAXxaYyvsSWeKBbGgiRlLYyHdPEktnNpPcnkEaHSsPcFDGIhHoOLyYEexYiIyIXxCpIBbgGNUkcIFcCbeEBkYhBmEzZEFfdvOASnkrSsQxjJDoQiySNnsRTtrYIqOddIiuUpOXDGggGhHUsSuXyLIvVXQsAriIkaAeEQoObbnOWFfwoVSBiGfkKFgSrRtbCcwWxaCDxFhHmWfYwBbWdfUchFoKkOnNfHmLtcsrRDVNIhHuwVunIiNSrrRmMOoasSxpFLlRlFTyAjJIQXOwqZzQWRLnyYDdxxXzWwcBmMEVSsWQqTtkKkIasqQStbCDTwnEeNFfUOOTtoSfFfWwRmgwPpWGMrFgGsoTtutTgGtXxTWTttBbdcBTAiKenNEwvebCZXeENljJtgGTroEQqexqQqiCcaYkkKKtfmMLrQqDdfPFfXQqARsuFfFfUUvWrRUKFfkgGinvdSCCcOoTtTlMCuFDyFwMfXdcANnXSsxXTtBTsJjIWwbsvNZzBaABzZqKRaGgSqxDdilYLlxduUxoPeEDJjJjXlrRjJLlLqRSIisKNTtsaUuoVoRalLArODRrevVeMRrqDdQbHlOoTtLyKkKfiCKuniPSsciXyvVyYYligdfGLkHVvhKlKkgCEsSephAeKNCTKEeepDhMmrIkEwVRcJrRLpPORThQTtqHFftgGrSsAaolTWwhlBbZzLomMGcwWwuZvVpPzCjMPGnLlrQfdDKkQMwWwWmgwWcCGMwabBAWmdDvVoOcwYyBWCqFTtbBlLwWgOZsZzSNJjeGXxXoOWulLfwEeHmyXEeGNFrZDgQqCZznmEeBcCoOtnNOjpPKkxDdJnNTyYtPYtTZdgGRYydhHvlLOGgpaAmMhpmMEdDRSBJZJhJhHgjkKLlTtgctpPZMzFdnNUSsuQZzqeHhNnVvSXxsgfYrRwhfSPVcOmnIJjGhAkrRbQKkqdUIDbBuUSoOAaexAULleEuqtTDfhHoOIPcGgNnsiRrgGLjQiRGboTPevvFNKQwWqWGWwYkeOyisgiAaIsQQmMaJYNnlLytPpblYUubLlcqkxXsfQFDHCIyHhYmiIpPHpvVmpZzItQsnHhYyNhRpMmnUuPGkpPKaANnaArFCcfvilZbyYvXxRChOiGgJjIeTtklWGICrMEZzBmDPpDOzExXVveYyZdpPfFrRoKkDaZCVuTWwjJbBLHhYqjJQPpbCPtyLLhhZNnXmEROortQPZzWxSIfZuxnNHhkIhXYzMmWxtwyOKLSxXEIimMjzrRZJKwToOTTjoOVNbBwVRgGwWUsjJSsNrWnNwJjSmsOohwWVvRrIGvlMUNMuIIPWwbzlLmgOoqQlLwWwjBZzbJIinijJKXxkIiSsINHYAnNEtNKkkiItxUdgRrkKCoEGqyiOtWtaKuuUsQExXVlzZQHhdtTJjKkDxyieoOUjJuQLeDUumxYySKHhRiIPnEcpHWKvVaKFZqgYFoEmGBWkmMzZxXnGsSxHrJCufFYMNnNRlhmOjLPpjJQLyOQqHhgGIiredYbjlLZiKAvcRHysyRrQqpPfFJKyCcxMmzXxvVHJkxEWwEtoOTCZFfZYydRxgniQkALwWBvPenNSxXshXLpUHclLChJpMvFwSsnNgpgnaANnlLvcWjJjJwtTCvVKpaAGgbBPpdXycCueJQUwWuTNChhbvoOZnNXxiwWIIibBzmbNnfmMtTQOniPWwHiIWVSYrFofrqyjJIjJRQoQTtOopZzPOoGNRrvAeSsKGCIioQGspiNnIWwPMUuDYKksMWIkxAVEWFfwYyKeEkehYDruUWXdVenUBDdeEbjJulxXrRGVCArTzHrPtUMayIEBuUSsqQfFRgaIafTGRrOaCTwXxWtkNnIBdGujIDBbWwoaprNgjnNJzZGnTtjONnoixXIXxlLBrRxUuJjeEDdXgsNAaSCYyWwFRxqQuBoOjJGGggPqQlxXKktHGSsRrgBAMNnmEDdkbBbOTtdoXgJlLjaAIQeGZzVdkKRzZrTSgTtQqFhxadDPpLFnNVHNgcaeJKTtRQWwqsSHCIitDLNXsyyjJqtNGgdDcfPUufMmPpRCcqQTyUsCcfFqQoFfOqQUuYycViINYnrAzZLldrLnzyYLllLYKjzfAvVaIJjxoSxsrRPVpPvvPqScaAasJZjLjKxXcUMmPBRatyYcClcaHhcbBqgQAyLpPoKkNBbnAGobnpLCchqMPaWFrRPUgquUELlelkaibNxGWuOKDcqMRQpuUuytTqrxyzcGOdJYGblQqVfRbCcJFfjwjYyyYkxualdPpguOTtgGlLGCcCesdPVnNshHnaIMYymFyHrxYoOJzZhThWdDFaAcQQORNkbouUbtEvZkHzlIOEeCdwTejaAIOAimMbBnHqjjamZxaAOJjoAaCnNypvVPYpjmMUusBOkKGiTGWJwWrzZDqdDQlhqSxwWXyYIiqhHhyYHtTyeEkKYkvVygGzcCZTJkpPQqoVdDvfFGidRzwYAyxXhHZzhjJdQgytTxVpJjCeXIFfNlRrHzmyuLllcCgzzAxrjJrKNDyBbYIUqQqQCcrRuiQqrSdlSHhPubjBAiLhPyYYfoaOKpPlNpSsAakiAjiPpNnKTxAaqQDdXhlvgiLTXTdslLFmsGfFNCwTtMTtbyENnAaQqeYBmWdWSsTtzyYUPpuAXrBNVvxVCcphDdiOgGoEpXzRrnNBacVuGgUkChCcHotkQqKCOJmyHSsRaEmmMMQrRYOrItKHMofhEeZzRrUcCtSTtYwsSWxOgwoiOOLlgHhGgjdTYjwYyaARDeEdQbiIaABqsGgSWwypwBPGgQqpkveEQXswuuZlLVvzUOmMrRFWQUbmBbFAaHuMvwWEhuQkKEbBPpLljhHJhxOykOoZDFLwRPpCcZzsvVzlLWaAMmiGlbYReOqrQqvBbCfTXtiLGpJjuCNTMRnNroRrOZOGTtBvVPuUmbERgLEXVYKkzxXJPpOaAohpIWhHSssvBbdMmpPyYlEgTtREeOMmodZzsTdGZlCcqKUuRrxXdcXcYylTeEtNrRqQnGAfFVvLfCFoOvncwfUfqQgMiImothcMbBtTDhHdhUuyaAYyYyYRrfIiLlOncuFfTUWwRrxXYyQqstDDdJjoNpqgGNkuoOUaObjJoOWvNLlnavVACoZbBygtTctOoKkLlRrTCYgrMmpVBQjDdQqbBJqIFIobIgVvRMvTtVcFRrmMfvWlPsPOoxOoAZzoOoiKEdlnecCDdDYyAZlLKkzaMaAazELMzRTevVpPdRNxSxDeETmWwRwoBbhHODdjuXneEKkNxTgrTCfbDgGaBbJjxQwtzZTWdeJFEkNKkWwWYFjJNBAPqQUEenNupEHyYkNnKkMmKhivUuVjJIVUuNnbBpPqQjzmMhsUTtggLlGpPtBfuuCcUUljJBkKJjEIiHuUwWOXcCxTtmMriRQlNMmymfFxbHQqpPyyYBxQfFqEeXbzDdZpSKXwWxScrWUxgGXJrCOoZKFlNKgGEUeEuHKbEenfHhFNGglLBhqudvjyDkKrDHfFqFfIfUngEZzdDKFvjJBoOCqQqesgfYBbxinNGoFfyYOgzZIeboOeIivsIqQqQnIXxIydDYOoHhThAOvKsNdoTtoOiIxjEeYMndxxMzZbaBZzbAzixEeXIissrfkcXxCbTrRJjiIrLTiIHhvLIiOOoVTyXgtIbBnNYBjAMmkgPEEwzYCaAcyQqZWVvkpPnSetRrTFBbhLrbJjBEeGgQqDdRuyZHyYNwCBtTbRrcbBWwWeZzKEsSbBNnLltTIwgqzTfFWwtrHfDdFBYrYpPIihRrHpTttHEoTPJRrsSXxjuUBbpPkXWdqlGgXxPsyCtTSscoOTtZzYYnaQQqGrhHRWdZjDdbNWsuHRAaoYbByCFPpwWgGNgGGjqLwhIiHfvjJUuKkcCZGgnNgGXSeiGtGgUrfFXnjzNnZgqMSysEmMnVvyYxjxBbXHOQKFbBahnerLlReEcCiQUbauRMlbDdNNvVniXhHgoOEhpkdQqsSsSRQdWwfvVyYBxLvVOZzBQALvVTWOGgouzMmBMyIizFLJjjGqQKsmOoqAauZkKQgGqOoQDcCSjhQEebXpCaAoOrPTMmfbBVMTAaPOcpPkEiIRrpsLlJZzjcDWrRAkKALlMmmPhXjwgGWtHysNiZZIUhgrlUuLRTtGMmulVvLoOvZtJMFMKKTtyUnDDLMEeMLzLmhmZzAtTLlNlLPKyZeFLGglUUtBbTCcuAaiIuoOoOfEuIiJfsXxPQqovqJjGFrwvHhdplLDahfcCFODsSdoYRrZlGMHXqQPbaRVvNFfnFHhcCYDKkdDaAdbBhbtmPpbVUmyQYdDHhGgNnyPpJKFrnTtdiIrXxKGKERrhPpgatTKOohsSiIBQJjqbFeXxEaNWhpPHwnVDdhVimMmWPUaHyYrcisZOaIiJjGLIiqaJjoONcRkuUKMmtTtTUpYoONMkKAazWwiJjBJUuCCFvVZGEJjZLOalVvoOMeglIiKkYlbBtkErRgWqJjOukKWwFyAJIiyYxXHrFfrnNyzjmNhHDsSDdhGalLUgyMsYyYDlyYLnNdRMMmFfxhanuldDlLeouUBiItTaGzeENnCcUzwCcmkaKkWwupBFfiILmAaetThyYyCcUoOuJicCIOIzZirRgWMxXcCjJLlmoBbkdDNVvnImQypzZsgYFfzHjbtPCGAaXxdDKuDiIsAVvxXEeVzZPpvGglfFNBxXKJLvmzZQJpPiMRmZzphKEQSUuSDdkVgGacdDKkOEegGzeWBbfEECcemUQqpPbZqadOUebBzZxpqQPGPprOiIbFAUuNtTJHptGbBaTtAVvAJGgusnWbBClpPLYimIpYrkWduzMnXuUUqQuxICcgmMSsApPfFlsVfQqxBvSlLsUUucCccCCfvVFDLldTvyYfPGgpKkUrRusSOTbeEvVMmBtRthHTBwBbdDpfFylLRrRyYQvZtTjvNnmvdDmMUMZZzzrqsbDgGYyQRZQqXdqTtFHQBbqYgBbGREQfHhxOokKdDkvNnVWnoONwmMWQPmWVQSsZWXBbTrRprRrRpkCcQGeELljJqQwHzZYtYyTyBUTtucxiGgKnBbnsxiPpLGjJgGTxJQThHtqWwLXXxZjDMmdJDEexVoOwWspPIiSwWlLrcDdXUuxmnNuhonuSaJjwWAFTgREMNWwnmePhmAatTMHCLlibBIOGgpdDQqfvPvdDcWwjqQztTZgGcCDPjnNIiFLljulXLlmMxbBvSszZVLUuyZzOSsbjJNnwjTtRRFwWHDxTWwtlqQLhjMmZAapPMyiDdbBkKkKeaASNKkcRaATtiLlsAaeERroETKIWFXxYDhFfHigsSkKXNCWYYULlryhhpCcgGmGVWwCKoODCcdGgkisRWNfFnQsUIiWmMcRAmoOfSTtVlLGsySsvHrRzPpiOTtfapcdDCuUcClLJjjKkGgQdfAiIyJjbBUuYacUNVvwpNneEPgGJjWyNVQqvsvjFYPpnNyXHWwhQEexYuFFUueEjBbrvIXAaRNTtPpPdGgMJeqQfXSseExHqQkKhgyCccSLhDDkKoudDCSQqFvVfmMUuscmOYyoMUqfFTttTYPpiBOGgVIuUcCUmMupmXxTimBFNnKkTRgGrneUuiIEAAaBmEVhWnOouFZzIiMmIDXNXxIKkiZVHhyIiXxYtTLLAOXHhxoaAepPvXEeTfCcWVTZIVEsSjpPQqQEqQqxBbFMDdaEeeEsSCLIIiNnsSybzWqWwFTJwbAasvlGgiIFeJPvyYCRnaTyYtmdXxBiImMbjxXwlACcOoZmcgrXDKkRjJtTTPAYQqtlLkPpKGgMmMvVixLbuQjJqOBgGHBLWwlTvWLVBRyYgGIqRHNwWCcSmPpMzZffBmMDfSDriIkIizZpPDbBdJjpXvUwXsOgLlGYHfuUwdqPBjnNciwWHUPxCcXZzpPipOoAgGaOncGaAgCSNasSBMmlLKknNyYIiksSNgkKhHPqQpGwGgbBtTGguIiUWsiBbIDYyKPBtTbjsfCIjJUscFlLIrRXxiJpPWCRYiIkKpnWwoXdJjDqQwWqQIixaEMytTBbZzViIoOzJjtTWwgeEkKJdoONiInZQaWUuwArRWgaAvVPXxpmaxXAoiISjJsfKkmvVaexNlwnNgGyCNlkKfOoZzsnUQqzIiEeVvqgGQWXKQqbaAJsuUzmfFuUVUgItXMLjJHOiUuPBbpCcygCcVXLlkKddDdMAaWcZmltDeExXMvxUUuuXWnPKgftRTLlSsSstrXEeQBBweEmnIKkioXwuCcDrgwqkvSmjPpDPFewWPpjcGrNnCWwWkeEKYpVvPWwEZnNzPpLVtTcZlmMLWWTRrFWHIzpPZCUgYNaANnRrlLJDdZItTiXfsTtScCLfFExXgGwMOHiIhZzOovhJkQqntHnrKItTuOxSlYyxXSzBQqNncOOoNOonZzoCmMyYHQxcAaysSFUuhOCAPFfpPsSpSsaszfxuUXxXvVFfFRrZmasvJmgGMXvVvFNnFffFfFBpPGFfeyKjKvVFhdDxXiUQquSslLlAayPpYswWSClLclHhqOQIXxUwWoOHnruUjJSbhHpNnQwPpSMPpbHhThHtDTteSEemMevTtKtHjJhyeEPpDCfRrFfJBHhnlOhSCxwOaAvVUgGAaUuuXKEelBIXoZzkciIxXnNDfLlhWcpPCYyYdXwWXxuUKkDkdDWwKJjFqQhtTJAKkaPpCJStaATsbVEwUbyQqZzZErXsyCcfFgGMcCAaJKkSsNnZLYylzLfFVSdXgqXDdbBaixLPHhOzZRNLSsjaTvVtsSdbfFMmUqTtQzdRrNEeqOzkzXxZpxLlaQGgqAaivVQqniRrIAaNljJtTZzwJlLeoZPaVvxZoXFfFfjwQqtTnmTkKtLlbBEgZzTdNaAGbBgYynfFFVvfDdlDmMdocNvVPpVvgtByoXKkVvxDLoxRukKsqQnNqwoMmOXdfFIDjhMmgbkrPpEQEYznNDEdDJVvhEejJtTHjZzXxuGgrteggGhfuIyYRrVTthWUupaGgdDAxQqXdmgGFBbfcudIigUiKkXZVGvRrVsDRDdrfFNjXxQqHvyEbfbFfKKFYSsaAeEyfxhHeCDlXwqwhfFUpPheSQqsENnXxJjHlLDUuyYxkKMBbdDkjWwGkFsIDfFkKdtfFJONKknttTTKvyLlsXxgbBpPAQfFKJjknyaAYqHhQBbLlNScZFfJqrFfxXbBdELnEXBbLoOcEeQFZzfGrVIivZzixCcXdaATBfFbDdoOTttDMUuUuXxrGNnJpZuUuUmMZITfFZKiDhCcCcMvqNPpCcnLYrReJjkGRLzZgGPDcCdJjyYpzZSrpFfocwsSiIfFRPpAaXBBbLlbhHxLjJNBbuhHwgrRCcQArREeoEeOajsiTtImMtIiHVvOKsAafXxiIkQqNmMnAZcEsAaSsgkhxVmMNEXzPqQPpbBhHJShLpPFfYylwXXcfFCxCtvrRVsHXxiIZzhOApxXRrDZfJjpgMXbRrXuUCGxxfyNnYfUkeElSluUBbuyLlYdDWwbBjPplLkKkKVOXqgkKkKGqZzQJKkkEeKlOotTDBuSfUQfFBbYNnnuUnrRsfWGgrYhHyQBeEUMTttEpxUfHhFYPpyaQqipPdOoIMDjDGgdwUmGEFfeqpPLmMgqQGXJjxmZxEOjxUuGIigXJmOQDdWCIHDZzVwZHhHZIVZXlHnDdNiIjJckaAtTTtKSkOoPbBVvbMoOjJsSmwrRQqWvYyEkQqbIGDdCcuUgyaZVvzGgAdncCNtHHhhgWtZzTGPeRoOwilpBtfiIFFfjmnNMJFflZzmdjzyxXSNoOAzZaTpPasJNhrncGutpPBwpXxPQeZrGxqQJJjiIfbnfqTUWqQUvdsttFLlKqgvurRZCBkKbIDJZEeUWwukeJjWVVUoOrRuKkHhbBARDveEwhHWWPHAayYqLsStIaAgGAMmqUVLlvuLlZWhEeoORxFWfOoFhTtBhHvNSGgzZZMmpPLlMmAKgGRrOotDdRwXOHCJjcheuUobWCcwxXMUyYwmMWIrlLRHvVuUVNIiIJjwXgpFXvioOlauUvDdVmBvVKkWPegFLlfTIitfJLiLhyVCeEclLlLoOyYeEUxKlLQqPoOPLKifFIYYIitLlKZkKEeziMlLmIbkKgGPxGnsOojkKrSAURrNCcnDdJSgiIMGOTtjJoIivNkKnVXbBhgDdppPPGvvVgAzZLAaGglaUDzZduygGYAgvBcLOHgdDXGXCZIiWYQqywQgrRkaQqxVrWBbjwyCMdDmWNiFlpPsdDuecoOCEvFquIJFfpyYjJJjVvtBJQFfNvUuUNkKLIiGgMmlnFwBeFSCtThHwMmqjJxGgXHWwFBYybDRvuUjXTtavWwVWJjwfFvVJjBbAogRfFrOwWHkKbBUuFYEUuEeJUujNhVvBkaAlLoOHdDSYyqQsCcuUgzmMlLVvCWrRqpPeEhOmaArJXYycCxdTwRVvKTtyYkrbBWplLPcvKrVvOoPinNuIiMzEeuUZmCcKwWnEtTwWZfFVQZWrvozmkXxumMXxzZaGgKksSAMbbMfFiGXxHhKbCInbtjLMmhwpPGrMmfILocDCbfBbFctZFfLbBoQcfFqQLlCxXNSzNGgjJltxXmuDcCeEXvRrYLlyVRrRqaYZcEeUVvaeuUuXxVvGmKkMgidtTJjYVILliaiITtoOAtTGiIgVvvoZzGTiRrrzZzGiLlIcCgYyZVgmHhMBbHwOPBpPTsStmMtIpGgwIeEpFhHyYhyYHBQkaAXxKtZJRcQRrqCPXNFbBvYXxVvvVtlYwkKMHhtFpPdjGgBucdDTXPWwpBbPpoPqQPpaApOxTpPsSHRrgGDwSsWzIieEZlLNbfFIsMdbBDDhYyHWwWmtdDFOjJiIqmvoxXrQqqQXxsXWmRxXZJAajxvwWVCcSsdxoOzOgGuUclLCMmzZGAGXxgwRrWaaATyNeqYyPmiIMpQqQcCEnvjJfqQFhHWwZRrfFDWwKWiYRrlEekKLgDdoWMvVmvfDxhUuLHsShxXGVvgFfRgrZIiOLaSsbfFZmMdPpBxkmMQdRrqqYfjJOofbfDdFAaBrTtRHhgVEeGDdgrHMJjfFTUuyGgQqYyYtCcSsSszZPIbcBDoOMHhJrRjuUgBbCMCVvcYyQMiIYyrqQDkKMiIHhmtRfMYydDUUuPpRruzZMmFfAcsSshHXFfpOoNKdDkaAKkOoqQjeDtTRrdnNnEnkDdsSEOoeYyEUuzyraArTtRMxZIizUuQqUIHwWBmMoPqQDdhHqQRLmMXLlvBbRVKKzCcZQOnUqQVTGgjUuYyFnNcCrPeEpYurSsSxvjdHhDGgjJCdDczZtTqQaZzzZtQwtTcYkFEeHhIiwxISsXxiHbXpJWIiwyFfYGgnNyiITtmeMmJjaNxiIJkKeEAKYXZoOzBbEGlityYQngGCSZzWvVRrJjaaanUuUAToOaKkJyYfFKknzZIiNXxewGklaAYvJZINcLiIoGPpUzZuWwXBbZINnoOoOmOOoAaZOKsSkQqoQfVvZWwRDMmHhjmoOziImMQqjJqAZtTyvMlIiLyrxXnqQNgGtTBpVvvfFUZzMsnNStfFqjfwtNfjlLICcilJHomTbyTtnFAIxXQoOCcHHAGovVODgYFfUwgQuUmYLlpeKxxiJBbcCVvCYycPbBpOoGtThyHhjZOVlLgLnNnNHpPBbDAgGutIDhvUusamMiInUvBAaBbbSsaUUufqQhHCcFSsCcMJRqpPmSsUuHhMnBTTjxXlQmMDaDdxQqXdDKkJjxcClJjIWVHvQlLqVcCZWwzpfFGzmMSsnezZEvuTtlkESsEHyNAaoOnhdDdeEhiVdDvGtAamMYHhxXnjVvbYyBvVJNRrMqleEZzjJOFfoXxJdDVvQyYOrRPzMbiDVvFAanNnzTXpPptKeEdJTtZJIKeELJeEjxXEIiNrRphxpPFfCcAaXXhHNcMCmdDzBresGjJmNbgJnNpPZVZzaJjsYyWkKwvazZQNnIidaWVvAawaGgAcXxCKkuemVxRrbzzNGBcCYIiybitTCWwuQYydzZfCcCcFqUuQaADnNWsgGTtSIYyhOoDPpoqaqQxXYfQWkKnNTeEEetdkCCcCtjoOBfFYyJjECzZUzZIQqiRrurDdQqdDRlNtTnITtcXxBbwtTLbDdhbBtkfFlQqaPWIwWKMkoOxbBZzdRrGJeEjZKkTgYTIBaAbQCCsjhXxouztwWJJSsAajCcwWXxyYwWiIENnHgcCTtBblLHnNeEhInNNhHMmZdDgSsGctTMmtTYykKEeCcAJBbCcjsfebBTrxvSefFIORhHDfFdrzrRnNZRJjWmFwWfVVKpPkyYzZhjdAaQqxXVzGPpXxwWkfFKTYkKJjySJGycVvChTAIipLqxXembIijJwWvYVQqPTtRrDdpxCcUBbuGxXIiHhIirUAjjjXxJjJWSXDaAdEeHhEeCjIuXxcsSCtTsSlAQqaiHvfFuCcJSsWzbGrvwDdMzVvRAfFaIYyFwWfTtTNJjfTtFFqRQUuqrwScmMLYylcCqvVeIGPcCNnHDdwWdnQDdiIEeiZzVUuvIZDCcdzOoOsVvShgGaAUuMXxdbcMpcCtQqTVvnDmnNMRaArdNjJzZdQqDHhrabBJjUBbHUuhVvfFxXpMmFkKtTfhHXOogGFYKGsSBbtAaTMmgvGHuHHFAXwRrWxZaQqGHDurMxXyYIiBbmtHhxfLhHMoObBQvAaSjJewWECnNUVvHOoIiVDhHSsfooOOeEeEpZvDdkKXmMYyELzKkZlbBOmMoqNEIRrXxitTKkbBHaACcZzlEeTQlvnDhqeEKktTQdhHxzIiZDsVUejdDJDnerRmbBiIvgGpgxXecCtDjJdEybBQqYwhHWeGFuCCPpcvVHhfiIFWwJdbhpyYJjKZcOoOLloUhmMApPZzOoVPpEDdwWrRThmjRwoyMuUvVAkBwsmMfhHFxHOobLllQdDcCqdzeEogGIiqGgQLqecCEvZyYfWwbBFdxGVxXvcCgtTPOVsyYrbBRSviaAEmMdDQaWqgiaFfTzzZalEzZeLFGkKgvmkbtvVXxAaTYyKQqkBDmMiOoIbFfLEelOKKkkzsSYXxhHCJjRHhlLRrEOoSUzfTdAIiaSsDTtUJDdsSjUgGEVvPLletTwWbaAoaASTtVFfvOzcJjaHuQNncXxyYdWTtfgRrMSsTPaaCKkvVnUQquKWwqQkauwRUKOXPVvpZzPZcCmEeErDttRyXxYmMrwCDbBTtnNQqsUuOpPoGgmsSMOosSoOVKkPeQqVisSIPpMmrDdGggugGhHaAgihZzHIDdvlLDKkIPpiSqQsnmMukSsfoASstJjDaALlMGgnNKkEVviIemMKyVvYuUkbxlLXxpPYyQqXxavuUXxoDbXPptTSTJjXeExMmXxVfFngGSsRrJjQQqBBbXlLPpfSPMmpvVnUuEuQlLqUDdOmEvVLiGRKpSzZzZjJxXzqQZtwbBpKkfoOGgCcjbBeLANnaVvlzZUujrRJBUFnzFVvbBoBEVvDdeMtHLlhvCnHCcUugBLXxcEYyhYyHoJtGgFJEejuTtUGaTwZwjJWMmtTLluUfAoOoWwOaNxXnNKnNhScRsPWaAwqYnNiuUxXIDbbBBMmJSsweEDiRrIdWrRJjLYyzZmwWzsoIicCJfFrRXxGEuUrCfpPBIUJEeEnNNaINniAEFyYfbRwWLxXyYlreVbOocCXjIicDfFlLvVdCLlEeZsSjlxwDZzdAaLbRrBSsECnNYyMmcDdfFnNTyEKjRdmMIbMmwJEeILQqzJBFLCYyZuVvYycCpPZzbqBbQfrRbcCIixVvmhHwWWtTwdSsrUFlkIzZyYPIiprRLFntICUkKSsuxJjoOHTkXxnNAEeaGgKGgCcRxrRXDCluZzWiIZzTtDdPZzpBHhLNnlXUuNnMmwWehkhjXxJIwWiIoyYOHhSRrsIeVbBIqQivEBPqIvrRTtViZJjzjzDdtTsSRrdUHhujJBbFBbKkxXTsSjRrEeoTiItpPPpBhHtTmMBRCcMmcCUWwAUhHJjuahJPEeEiSDxEaAeAaSkcCIiKIiYIxXKkkKiyCcXcCxRIirLFojcENnepxWwXTtXnRXkKzZVuuBbHyYhMLvTtmMfFeEMMmUuUASkKjJTWwDMJjbPlLmOoMhHpbjXxHhYCcZbUuBgGzgAKCQatTAowWOPhHphSsTtMmHSsTuhHtEsMmSGnkKkSiIJcCSPwiIfPpsStFRnPpNXzZmMLlJjxXOQquUGgkYIRuJPNnssRrSuUZlWwLzaANDNptWytTQPpVmMKKkJBEzBRLlzZIaAIiEeEeugGcLSqQsPRGNWwPVvLSOoUuslMmMLleEeECGMmRfFTteEJLlfrRNRjJrRXxQuUTRrtqUaAKkgrfZXxKyYDAaLldjhTtTtgGHhUqNnXxQGAOzdkKDhOouUHHWYSkTzZAsSYCqprXUusUKkuaLxVFlYDeEdfXxjJAaeDdEyPIMmWwWwUunNKsFMmfRqQRrPprqRbnNJjnNdZKOoABbHhlLPDdpEGgEsSehHVkKSsaAeEcCYyUWbBhFJCcYzZIiVvvZzkKVvKjMMTtmvVoOPpHpGguIiTtxIinNXUHOPfXmMdaABpVvIiIEdxiIhiLVbaAwcboMmHqQhOEeYWwXTtxyqQBxonNhQqHvPpyYoOVfAniIkKxXjJBCzvByDdmjHhbDdJJjjzIlLOowGhHgWIiGgQVAaoLTtlVvWwVzZvOfFmMjJsWwTOJjNDdnxsSXtvVnNbBTotxHhXkfFPCHAeXhHuUNkKncrRCxpFwWHhvVfOoPbSgGCNnIoOiDVvEedrRlLeEonNkpNcCCcBRrRregGkKYyEwrRWcgGxelLEXUgGvNeBIibQqgGECJjuYqQWwyUmMcMTpmBHhXsShtnsSdDKQVvqjuUJhzdInqGcCOuLYylwWEUueiKkgGKkWwYyaxCvVfFJjZzcPvVPGgfFpGKVvrRVhHvAaDdkpPmbBbSzZJsSfpLlNnZYCcykaSsIicCPmjJKfFkxXAaMOoOoRrtCUFHvVPphxMgGkpPKlhHEeLlLmdpJRIiSNsjJuUSMVzZWwvrqQRQJjBbUJjjEeJeEdDeIyYnIthHRHIzLlBUuHhGgVvKrRkrqaAQRbhHTdsEYywXxHhiIuUCchHzZYyWDdwsnNNnREKQsSqbDdBkOorBEeWwSsAdEeAaDQCdDcWwHvNmlLMyPWlAaLwSkdDRrKkKspPfFeEfdUuDydDEntfPpQLlqqlLCRxpqOEencCMyYgvVGcoVFfvxXsWWzZNlLCdDtTPOqbRrnCcNfFVObBnNxxyHbghHmMYyGSsiIVvLlnbUuBwWNByYKjEeJkhYsMmWvVsNncCassaCXxlLcdDASfKVvIikVyYxXszZlqQIiKkCPpXxcuUfKPfNnFgGpPtNjpPsSJDJKkjhHZzlGgTLnNHYyjOoJqQhPXxoeEOsADdqQAHNOoxXwWCdDlwutTUnNqQWLyYCcGgxUTthbBrRmtTVxXZzOonBbnVvNRrPNnkBbIxAasJjGghaAHOLluUsvoPpTtjeKkEJQqOvTkKcCXxtVTzZtHzzZoSUuyeEdAduMMZzmmqQVvrQtGgTFfCZzcwWkqQjJAlwWLJjHCrRUQquchdwWlLhBbLlHAtHhwIEMmelWSsGgaAwnbBZzWwHhNIinirRUuoNsCuCfqQFcDnOoxuPpgrRiINoOzicLlCIkKFhHaAHfFeaAECchmMjJIHfFhifFTFNnBbaAiIffkKFHhtpPfSswrRSsPpsPcCpYyOgGVvovVWdDzerfMmItiJjoGgWwHcCZlOoCTtcLhpPgGHoOzhzQqDDduUdZhHEZUuzeSexAaysYyTtIiOKkolPqQtTeEpRrmMbhxXTqYyfMmLZziVvyGYIiyzZjqQgGxSwWszNneEZVvXwWSsIQoQvboOBwOWXxbjJWsSJjwZxXlqFQVvgGFewWNxXfVQDcKkCdRRrUjwOomMyYyYTtxcClllIiSsLVvFZGjJipYBMmBeQRHhJfFjLviLqGVGfFsSxhoOgLCcvuUdTDdtDVAalvVtaFfAiIhgHhLlGeEOReuwWBoObKCckGknCcbTVvGgQqroOtIiWFvVEfDdFwvVWcdofZzSsMmwWEzakKrxXRAeEdDIDditTGgQpPLmDmMNndAwBeEuUnNbYynNWjzZLfFlJuUjJfIitTFaHeoBbzHhZzZnNAapPMMmZsgGSHhWwubHVgTtGvxXhBhUdDmMuHaAbsQqNDXxVvdSLlbBCciVDdVFFLDdlYyfcCoOMIHhhHhKkCcPnNpPpNEeNnaApPBSbASsasgwWgGgGzmJZzjVvsqdfFDdRrLmjJlKkjJeRvzRrqdoHhOSLgGPEdDeJjcCWLlwtLlRpPaBbSHoSgGsKeQqTnYyNqQWBbCoKNnUJjcCikqQtmMTILGUWwugKJjhheMmydDNNiIRrTglGDdRzZQaIcEmMmDdUuLNnowWOwCczEFfqnNQIZziTrlLRtzZyFfXWzFfbBnNLlYWaRUsOoOvVovXxVPJjpdVwWvDAacCWwAyQqYruUhHwwWxXAdBbDPsPpSkyppUufFFfnhHNuUGghHaAIWwiHOodDhzhHgNnGLEboOtnNXxYyjJVDdDaAdHhvzZTIilLcCPpYMEGPpyYfFVvrRgemSXxsiIKnNDDdUurjIJhTtHCcMmUzXxRrCcpPZrLlTtQqQqHhdDOoeEFfSvRrVfFbBzHNnhfFyYZsSUJjAFzGgZfeTtAaQqxXEccLZFAaUFucCwwbOoByYSAXHhqtTQysSIFfikwIpnQkKgcCsSUuwWGCWwoVQqvvVPpORroOoOEeSelLiTBkKbmhHMtIqhHBbgGkKCciIQqaAuLlxXDdUXumMPpBgiGqQgqQNnHhVvcCLlDdZzqQakKsEeSAERYyOxuUEbBeuLlUakKAGPgGCoODDNnCcddcvVlcCcCHVvyYQqKJjMmdDPaDdiGyhbBqQHhHYSYeEwWwWTwWNnPNnAacCtVvTYymmMoOmMSsNZVGTtgNyYiISsjbBcCCcuUrRjCkWdDwhsSMmGgwWDddDZzHhHgGIJjiDWwDZzdsSkVvvVmBEsSeCQqMmCSsrRclUZXsShHQqVvnvVOoukBFfbfyYikMmMmNnqQKlaqYtTEuUKxXnNpRHRoOVdDdDjtXxHhTNnKAadpPmMkiILliKFfaKkPyYpAHhPpcPcCiVWAOUupPMaCcSFxXLAalxXtLllqQLwxXbBvVWFSVTDdEAaGNriIRnZzgiIEeedxIeEiXdvJjZzfFVDwWDURrtblLBTbBfIwWiFtMZlLLlGYuTtMzZEejMmRMjJmpPoqBbQOlUOocCrYsSSnNsljJLWBaAeNnEQqAsSfPpFgGiIgPpvNnVGHhaQSfyLlYTtFQqDeELUuuUWgMmGQqPpwAaMOobQqZnKkJiRrfIQqTzZmpPTfLlzZFtSsdPpDIEAaeybBYrRPNkoOFfVqQkKvfkKjJAZAkKaXxKkzuUXTtwOjJKkXpPxmMMmujJUsdAapYycCJjJjTNnCcthWFzZfqQoBmbapBbqQPbKKwWkkwWmMVXxvXHiIWwuJjjJeEUKkhdBMmTsSyYtHsRNzZuUngbBGMoOWwhHIiCcmwssSAaAaCczOsSUuOPqQpjJoBGxwljJHhAlLacCdNnDIiEZzgGNnFzZmBbaAsSMvNRrHhnVVvwaAGgYyeEWiIeDkmFfgaAkDdUubBYXxOouUIXxnZzcCMmpSgGyYhHoOsQqPbKrRbfFBKfDDddUxXPHhaAGxSemxZOokiWwhHcnFQWWwdDdDdDRrfYYyWpPoOxXSWeROIigGgzZRrqcCRrYrFgGfIcCLliSJjDSxFPpPpyYZWwzfXqQxXQQqeEjYtTVlLXxzZrQzZiIFfzlLZzZqUuIyIivVYifkjNnYyjJJdAaMmLlZsSxjNNnnJLgZzlSOotTaAsSpLlgKpUuGBIibAYyrRRrsStTJssaAAaSapPABtTDdVvBCLlyYcdiuxXcbBZzCvngGuBMmVvByYpPQqyhHYWcCuPpUxXBkcCKsSWwkVvRryxsZMYpOoFfAaRPprcCaARfYyTtFtzZFfKkvViITrQqqkozmumLHhhHeEkKYVvtdwWDlLThiIHWwAQqakecChHaAEmMpwBcxiIXCVuUBVvKAaktVvTQuytVvTsSBbYZzZUurREIiJrRjGsSgAaAaeTtoOObBSstZIWmOoMwvVLlyYiuPpgGXHhUxXGUuUukKIOotkKvVEeTNnEOoebRrBGboOBDdgaAQEeGgYmMCibBHhzUuLyYvVlGgZAdDfkXVfgGFUNnQquzcCqKkHmjyYOorlRrBbPiIpZztBeExDdQqOoXnNpIisxXSqPpakKIgGiwqQWQqqUXxulRrtTtnNTAaLEeCcOLKklyEeYVvpPtpPAVvaoOPjrRJLlqrpdDNkEeqcCiIcCkzZKFfQAFfaeAeEmiIMoOOLQUuDtTTtIiNnXAkKazZfANnnoCcOwWNhHjJpPaHvVmYyvzPpiVcCvITtPVapndDWbBwQqFGgyIidJjVvDIzFtGanBnpdDPHewWPpAazZcClbfFBeEhTthZzHJdDiIjLqQlgGpIiGgfFSTQqPpALlMRrmCiIcaSaKkmdDMOMmNnsSPpTtRrrRRlLHRbBrXJjJoAatbBTHGiIgyYNzZnQqrRnNhlxOoXHYyhfFaMEelDdmMLkGPWmnNMwsLlSTxjJUcGmMTPUuhHYypUHhsSJjuDdNFfnjwWQPpgGUuXXxEexqUuJPbnNoOeEbmMbBBTjJgGjxKzsSZkaASTtsXJsqBbsSQfFSIIiipPhKSwWjEFrRfetTDWYywqQdgIAaZKIikzQqZzKQqDdQlLqLBSMmefaAFFGgIifMmZzKkWGtToBbyYBGkKVvgKtYAagGSsvEemkKTYzxXwWqQLlZyfTOnxXNoVeEfFvrRYlLyFbUbBLlJoxIiFyYBbfOXxdDWaAwdbEejcIiBAxfFPptoOZzZUHFfVvJfFjGlLeEgtaAXzZAgmMMmVvzZXuUaAxnNKkQxXJyYjmMRUurtTqGrRkknNRrKhHGqQgJjKaKsSnkKNBlLboeEFfyYOKkkdDMmrRLjJljOoiIWwTtPpWPpjJDdKkwUuyCcYbBNoOlsSjJLXCnIiABbRrdnnZgGzbYpoOwWuKhQqHkddDDXktewWETKkltThHzZLdDEuUhbBHgQqtXRoOeWFfXXtTAaxxKkHhnNuUdAapPHhIzzZZidgGdDDHhqEekKQCcqhHQuUOorrTnYyibBoOIkwWpleEsSLhIiJuUfFtOouUBbSRrFzZfyCcvrfFiIRrmKkMthBbiIHhaAHlWwZzLTIcfSEWwesaqQutTUDddDAbJaAjYyPwWpHZtjMmMAafFQqmXxJuUTzCcUuDdoUgGuUfFvoOAiIauUPHhRhHrVvZzpoSMmjOoiUuIDRrdBbCcxXBNOoVoOEQjgGAMmsSalvVLepPGdQqDgZyYzkKtlLTdpPDkKXxSsiGgdDztTnNZwWYZKkxjJoOIiCcYycCfpXxFflMoiIiIOLlzPpNnLlzZoNbBnrRWwCcOFoBbCcZzfFzOoZwWODdAacRlLfAaYyFUuCcriICfuUdDZQmMJjIcCIiHhCHhBbcnNinNmkKDeEdtTzZEecCTtkKkrqIRsSBbrsSiImMeCcEPpnRZziINnmMecUubBCEEerNnRXaAPpCcxHqQZoVvNMmPzwhyOoYVKSskZzxXpYXxyWsSwFzfFCyYcSrLlRFfsEeSpPsKtEiIeJjyYcCBrPpRHtuMmUIiaAIiJjTtXLliIHhOaoiIJjODdRvIibBVUjJsSeEvCcVbyYBxXbBQwWVrYyRvFfWwgGtTGpPgiIOoAafFgWwlwtAamEezIiZiINyuPjsBbSJrRRrpqKkVvDdZzsSWjJsQqnNTtWwWThvVNnvBpGEeVvtOoTFfawSTjJtsBpPiIbSsmMHhbBoOWrnCcNlLpPQqRwfQqFEuUMUaxXAwrFfuhHbJjEsSeBMmCrbnNRdKkLRJjwPZONnoNnHiIEezZGTtzZtTmIFfsDdrIiRqQSyHzZxNqRrQeEtTnzkwWzZKUfFuZZEeJfFGUugjzlKkaAbBmmHhMCYycSPjJdyHhnNYZFGgfzKktTemMEJZzjDSsKvQLVvlolnNqiSsoOSeiISsOnNoiwoOCbQqWOSsowWwVvDVDeqlLQEDmMOokKFfdBqQjbBJwoaAVZzFfNnaAfFJjbBExXpPeaWwAvLlzqQZbgMzaAZVMmvqyhcCgGOctTslLSQqyYSeEwSsFcCfKtTdDQqCctTANAanKTtkRZzrIwVvVAaLWwlLDdrRlpPdDjYYyZyvVhQXxfFSWwDdnNsILlUxXGgzqQqQrRJjCfFcOoLlwWYyMBfFccCCbmuUMQEeqDOotTdnNmMmJSsjTxiIXzZMvXfFxPpwnOoNWXxPpswWtrRTSgMILliTtmGVpPFfUuWwFmMozZOxXfrwWRrRbBWFjJRrpPnNPhHPIiBxTtXLlDuNnUfPDdpNgGnRrOmgGQqJbBrRYywWyYyYUuXxjOoChkbBKHzKkOoGGggVWwvHheELlcCyYZzZgWUdDMmuwGgkKoHhOAadbBDIDdiyYHhheDdDdjJEMmxnNEENneeDKkdnNmMTJYyKkCcjDdtrRjJRrnNGNdDnhQqHBsSWwBrRwkKWcWwCVgGvtaAOojDRrdJTuUfKkFBHhbEebbGVvQqfFmnoOaANAWwXxRDdstTSVvLltTYPpyUunNDZzaAsSMmbBErRvZzUulLUaAgGELleBbuUNbqQgGBncCTtnPgGpjJmMeENbBkCcKOQUvVuLlqjqQtTJglLjGgaAJyYEYyekqQKNyNnYUunfFwmMNnWodDuUGNngOxdDHqQqPpQinNNnEeAuUamMAOZzlPpBWwbpNnPkAaqRJjdDrXxQbBOonJXxjNBczfFZUiIuYaAyMmCsDdoOfFdJzZjcpPyYYEcVmDdMNgGDcCdZzBFffFCyYcFfbODdZIizmGgMtTcCBQqFwWNnEcCetUuTfuULlGgLTtImMiRrFfxXsNlLnhkmWwVvyYMYwWrqJNnjQOZzVvohZBbzKtTkmMNnHhHGlLCDmMMcyYdDdhHSsKPpGgkqNnQBbkKkSqQWwSsuUsCqQaAcAiKkfFIfxHhPUupyWwYDgGuUdLyWwYwopkxXoMmgGqQhHOkTtTnNtNnfFhJjSfFfAKKkTXxUunlLBbEeNYUuFJjXVvbrRBdvEeUZkKQqPpzuuUEepPKxSsSsfFSNnytuUTYrRFfNnOZzQqozZNuUGBbgZznTtfFaaAbBxXAsVLjJltTMmjJvWdDSswAaXxaAuvVvNnsQpPqGcCVdDvEegScCVlLMqQmpOoBbdnNDpPKIvfFVKSekLlXaAaAxXxXcCvJjAIifpjCcJPYcMmOTtdDoMjJRrPsSXxWwgGAaVOuwWFfkKqOoQwLBhHbllfFLvVRXEedwWjFTGgtfJiIFmnNMwWmvVMspSqQCcsPkKSfmuUzZNnZGgeERrSwWsRrgVvGzmxlLYyXVvMmMAamWqQwMMohHcCBbpPFfOTtOUuxXowpyVLlVSjJHhrRPphHEeshSsEepEfcCLlVvFNnNnOYyoPNnpPpNBbnhZpEFfRrauVpPvUJvWmWrRhHzZwMKkGgspPSoOEeIiPppPbYyJjyOoYPJjbBDMmFeEDdbzZBKkBbUuaauUBbbBCNncJjrmMGgREeAhHNjJcCPpnRrIEeYNnyiCcAPgGjCyKGgkpAgGiIeEaiIPymMSsAaHKkqQhEZzXcCMmxuUJjhHxXMmjJrREeVvXxQdDuBbeEUBtTKYyoOzaATtxlLXeEVXxuXxUvRrHzZMmNnVXxmAaMIiOPpCKkcAzZNnaOozZWMKzZMiIBbtNUuRrjJONnonnNqQGLrRlWwFsbBrRSlkKTmMNntwWWwcCpIibBnNJNTSstnjdJjhifIIzZnNizZioOANaAsLuFfgGgGcGgqQCcEeCzpPOopDdnpPNiIaqQFfDpPdAaSsIadDqQAiUkKcCIiTtEepPOovdEeDVzZSswNiXxtTwWUVvJjdDycbBCLlYsSuIoORrCXxcnjpPnrRNynNJLmMlhzZHyYDdZzxXsSQFfqgGGgCgGcOMmdrRDbhHBiIJCIicnxXCcNjJlLMGlIiLgeECcBbNpkVvOoKVvPnVMoOHiIuhHGgUhWwHhZDdzgGDdEetHhJjXxkKTzZAvVLlaAziIYywWrYAaAayEeWwRiQqYyIzZZGnNxXgEeRrMQNnqmCchJxMmXzZjAaSsAaeEGZfoOoOFzbSsYyBgaApPYtTqXxQFfZzyCOofFcqQGJjJjGQqgcCHmMJjAKJjkaHiZzIhyYHIihhOOwVuEeqQtvybBcCRoOrJjbBmmMhHSsMDNbBneAabBEQqyzRrZYbDhgDdGHBaAbdBGbaAPpZzqQhgGiedDgGnNEBbQqXDpUuGgPsSjMmaAJXxMmVzzZXxMmmMDdmPwWpMKkZwswWFfSzLlqQZJjBbsRrOoEStTsfFrKaXxIiBfqQlNaAnVvYyQqDdLlqQiIuUdDRrQqjJQuUXxqXrIUuiRAaWwDTZFfDdzGwDUnNudGOBbogDJSsSsjKkpyYnNdDPsSpuUPksMNnmsSSKISOrRosdDiPpcCxXDdkHhuUeMmyYEKkTbBYytsjJFfjJsSQhHqSWwHxXhMzzZUuZRKkrpPjsSJzNnpPFfQqqQhHynNYXiIxHhvVFfaWwIRrfuPpxXUaAmMMmFkKrfKkaAFuUDQqfFdYTtwWEeyKJbBUujJjMmVvmMDdDKUuiIkgoOGqQdLyYptTlaAlLCoOPCcpcGgLkgTrNnyYRIFaAfitCjJcHZzhsSfkgGKOonNFSyYiIfFsTszqOwWoOIiyYgPpGBRrJjyYdtToUuOCcAarRQqhHEeCcKkCcRrRrDFVvkKaPpUuoOpZzRgGatSsTxXfxxXAaXtPpTUutTFerHhRfFRrhHdmvwWtxXTVMgGGgFfbBpPrPVyYXxIzZUuiqQtYyTecCKpPQqkmSsiIieeDdsSSsXoOzzZaAZNnlMmKkLNwWnUjJCiIcnNuvVqQAvuUNnxXFfuCcdDsmMVvzZQqiIqQMnNmaAiIYoOFfyXcCuUVvTtbBzZiIpPmnFfGBbKZzkgAavVNoOdDXFfvVxMiIFfFfuEeUDdcGgCuUsSgTwOoDtTdmMWtGbAoyQqYAaQFoOfLAalBTKkoOtcCbHpPUpkXxgxXGsSbByxKkXYvrtTRGgUuVMMsStTmZLSslzQqjJIifNuUakKAdUKkuDnNvVvbDdBslzyYaAyYZLmJmMjlZzLMcCBoOSsjDdJNnaAfFmMDdmWwArRpPbleEXxyiIkKYDbBqQdLCcCcAaFfTKVwWvkUAaMmxXjJiPpIdaADDdGgzByYWMmHhwpHhLldDZzPDQqddDRrbdqeEQGanNAgZzDKklLkKCcNnZWwQQqquTlLtKdDhhGgxlLCcXmMpVvPqQokKWzVvSsjJDUuvVdZjJAaKkTtQqhGgBoOoOSvVsfFtyYTtfnNFUuZcCzsSCSuZPofFOnNKkpIixEeXzUiIKqZzQiKkwWRJjhydDYyYhHNnHrxXIAgGWPpwaxjEYbByeJLlXvVkLlxPrRpAajAadYyDZzJJjXZSszKBEeAahHeDdmMDdnvVSbBAaTtspKxXkPNPpYyVRrcCqQvvVEXIieToOtYpPzZyBVvDNnHNnhdzQuUqZbZBbcCzzrRZRrOohxKkXgGkaALlBTtCwWcbKHoOcCBvVHhpPfFUmMuLEUudDAaWwtTaAdVtTvrZUuzIiRYyDgYyGPpFfDdenNaAnNaAgVvGeESsgjJCccCevVEWuUFfkKTKktwDdpPOoSgGsxXlCcLxXVdDvQqvVWvTtVeECcwJjcaANnwQquUWuUeiIGaAgxXEHhjKjJkjJNQqnyYgSsGfLlnNfFpTtPsSnNBbfJjFjxUuSsoYqQiIyOKkCPpcWNtdDnNTtTnwTtnNgGPpMqvVQmMWqQmMwuUglWwLDdbBMmQnjJYyNznpdDTtPNRhLlrRZzHFfOeEzZSsorIiMmGZzWyYhHwEeuUpvKlLkVHnNzLYyiZbBzQqIglFfZjJrRITSDTtdeExLlOoBbXsYPphHwWygaTDdtAWweRLlriIEGpPcDdDdaAeYyCcWZzJjwYyrRIYyLlicCECwWzZwWFveeEESGgsAafFQKOokqpPKzbBzZrRKkYhzZHMwWmFfjhHuUVYhKkHkKQvVqHhtTlEeSsLwWLMRrmUuloOoOGggmMMmbPFfeEEbBKkAXbqQhHBNnxwIiWnNAgGjJaMUdDpPuvAaVzKkJjOGgyYoZkVvKzQTOotTtYySKksJmMKaAkjnGAaWUuumMUOGDdgTtuUgAoOxXeEKuUvqHhQVGhHgkLlDSscClLdaGgpPVRrSsYfFBbyzgGedBbZDdztcCJjVvsSpMmHhPdDIxXiTWwuHFfhUpiIPvzZMNnmnNVDhHsSJjbOgGSsgGTttjdDJkKTzZtToXxtrRrVyYvRiiIItTlqQLTLdlLDjlPpLJuUoOQGguUAaqIikyYKElLiIaABbbpPBDeEdWCcweEedDsUurRyYSJjTEetTTWwtXxeYoOYyyEtWwTtOrRoWkZzDyZzYdKwluUqwbBWiIubMJjhHmCchHDlLWSdDiIjJsmMuUlLEewQqqRQqnNrQdtTYyPHhSsrRARraoLlvVOpUYyhHwmMWMzZdDgGDDdJjdPCcppPAZzyYBbahwWRliICJjcLmlLIimMRAarQqljgGbOKhHkofFBTtGwWghHJLBpPbblLsStEeTPpbzZAaIiaAhdDDdsyYCwWlLcnFKkKkHKkhUuZCczWmMwukKUwWacCAqCchFeEBQqbrRfoBbCUuGgcZzSsaAOmMQEeBVvbhOopPHKHbBXxhkqHxgGCTtcTDdxtTXuUtXEemMnNIihHoiIJjUWwuQqONSsRrnNnhRrUukKJCnNOlLoceVmMvrRsSrdDRhPpZzHFIiGgfaopPOKeFlLWwvVgGqzsSwWZQqAyYaQFffzlLVPpvZlLZzsldDLtTSsjJVkFfKRgGruNnUKVqnNQvAamMxiIXPpqQLlkAxXeoOEaLbCcgQQqqFfGBfFlqsSQEsuUSerHYyhtTDdpZzTNneELlNFfxhuUHXnhHXtRrTUuTXxsSpPtuUudzZiIPpAaDkKeEdDMRrmdDmMDqQXxQzZqmMlmMLdrJjRhuUHQoOqNnhVJjvHEesQqdfFDSUAaqQiISbBYydDtToOnRrNLlswWwWTtvVhHxXFfpPJZzXPpAaucCrRFDdfYyUgGoOxGKkRrgScCsqQiTtgGoOIbRrBdDzFfPiIsSAapZvVBbeaAYypPQmMqmMEjgsSaAKsSkpwWiIlLmluUuUuULmMAaMPiIdDoOpdDUOjPpdbBvVhRdsSDvVrqTtQiIzwWKkEBjJbeyqQYSWwsNTtPElLepgGdDPpFfnuSsUrkKRyYQqZXxkKfPpOoTTvVuUttOoFnbyYBzNJjnZopaURnRnpPNrNrRrWHqQhHhwHcTtFfChgGMXIixmnNuOoYyahHJjAHhOoQqxWwVvsSDdXNCrRrSsRcigGxXhHIDdBbDdsEeDoXxOORrodXgGGgxSjJqJjQdDIzZPpihifFIOoiIHlQqFfLHjJyYypPYAahOobIicCtTmMGgLlyYAcCkKaZQqQqIizSsrAaYjJFfXxqQdDUSsdDLzZlubBNnVvyRrsShHOoopPOQbBkKqepiIDdPkHhKErlXxLREeCcxXlLXxXfuUFYyBLlcCvViITUunNoOpDmMdfeEFIiPMZzekKEmyYtHcLlCQuUqZzLRrlhHhQSyYsyYXoOxqkPpKBSGghHsdDbhHtnewWEcCeEfhHYkKYybBytTSNnxXeEwtiIVvTUouUOupPSspPWTtwWZzpPtTgUuBbGvVQqNnrRCcsNnOSsCcoWwFgGNnUPpuGgakKAywWYPOoBbpuUpVoZzWiIwKkPpRFfrODpPPpPpbBdTjJtJgGgqQGgGjsgQqGmdDZzMSAatTUuWwJjHhzgTtLlrRoOhHGwGgLlXxWsSzZwPpWDGgJjddDDRrdZvVJLljqQvkKbbBBjJjJRrKmMBTtbkVdoeEXxtTXxHhrVvRoOqQODvzZzeEeEvVmMmMZziIZRbrRSsIiOoLLsSwWeuUEzZiIFaApPXxhiVvIPpZzHfFtTfmMdDwWRrLlKbBTuaFfAqQhHUaWwAtvAVvnNaBbVkxVUuvXtTxXtvVWwrRDdTfxXFmpuUPJjxXhHhoObBHMmGgJnNYyjzZOERFfrPpYyeogmMOdaApPDnNooOjJVvOsSoSspPMBbmUuPpGEbzZBSCcsenNfFJjAaZzpiIPdDKwWFfwWwWvVUukzsSZHVSsvVKEekvfFhKkQSsAmMabBPnNpzZqmAaoOMCeMPpmEdDqtToOrRQciLlkKdfFxXCkKcYjvVCcTtOoJyDNnNnOoYVveEyhHXNnxnNIdwWDzdDJjQqAaFfJfFBJjbjJjoGgOljUuJLzZiIUuFhHfuUCorRLiIEelOzZcjJmMtTeEfogYyGOfFWweEfFnNtTIiuUToOyYtWwlLYmMynNGgfFYypPyYvVNMmJytTYjGgDxXdnyYPpKkRHhAaBxXCcIiUubPlLprYkKyUQqswWSuoOnWgGxNnXwTtgYyGAcCaNeEIUuilLMmBKEhHeLliBbpPIkzZJrczvVwWwWKkOoZCFfnMmNnNwLlWwNbBnPqSsQaApWizZfFIEaAfFZOozZOozeRmPpMjwRrWJbBUuelLErRFfEeHmMIiWyYwQqvyYVLlZjJzMmZoWwOeEjJzheECcaAqcCCcTtLlQkKAaHkKhXuPrRpIiYSsyqQUivVIVrRyYFUuQqfvJGgjFpPkzZQqcCfFKHhIizZrOyYotTAaPpRTtqzZQfMmmMyYsSfNnFJjxDAadqcClLtTQRPpZzrmoOMJSsOuJjUVvyYoxXbBXxqFfQjLzZMHhFDdGgfmcCcfFClTtmhHMZsyYuBbUfFNnNNnSsncCSQqTtzjfhXxlLHPKoOkdJjDpFfFdhHDjJDdEeQTYytqAaEelLwPpWhrRdVjJvDHEeWPuUpwnNW \ No newline at end of file diff --git a/day5/src/main.rs b/day5/src/main.rs new file mode 100644 index 0000000..d0ffd26 --- /dev/null +++ b/day5/src/main.rs @@ -0,0 +1,65 @@ +use std::fs; +use std::char; + +fn main() { + let lines = fs::read_to_string("input").expect("Unable to read file"); + + //Part 1 + println!("{}", reduce(lines.clone())); + + //Part 2 + + let mut all_lengths: Vec = Vec::new(); + + for i in 0..26 { + let big_char = char::from_u32(65+i).unwrap(); + let little_char = char::from_u32(97+i).unwrap(); + + let string = lines.clone().replace(big_char, "").replace(little_char, ""); + + all_lengths.push(reduce(string)); + } + + println!("{}", all_lengths.iter().min().unwrap()); +} + +fn reduce(string: String) -> i32 { + let mut current_string = string; + let mut new_string: Vec; + let mut last_string = String::new(); + + while last_string != current_string { + let all_chars: Vec = current_string.chars().into_iter().collect(); + let mut count = 0; + + new_string = Vec::new(); + + while count < all_chars.len() - 1 { + let cur_char_uppercase = all_chars[count].to_uppercase().collect::>()[0]; + let cur_char_lowercase = all_chars[count].to_lowercase().collect::>()[0]; + + if all_chars[count] == cur_char_lowercase { + if all_chars[count + 1] == cur_char_uppercase{ + count += 1; + } else { + new_string.push(all_chars[count].clone()); + } + } else { + if all_chars[count + 1] == cur_char_lowercase{ + count += 1; + } else { + new_string.push(all_chars[count].clone()); + } + } + + count += 1; + } + + new_string.push(all_chars[all_chars.len() - 1].clone()); + + last_string= current_string.clone(); + current_string = new_string.clone().into_iter().collect(); + } + + return (current_string.len()-1) as i32 +}