diff --git a/2018/day5-input b/2018/day5-input new file mode 100644 index 0000000..490750f --- /dev/null +++ b/2018/day5-input @@ -0,0 +1 @@ +nVvNOoHhiJjlLSuUvVsHhIpiIPIhHgqNVvnQGaAbBiFfbBFQqKaAkfsNxXnpPrSIikKsBcCbdDaMDdmAkKEebBNnRpPGgxXyYJjrRSvKkoOlLrRsSIiVQqbBPpNnPQnNqiIxlEeLXIiRrXxcLlCUuNnScuUCsvVwWHQqhIXxVsSpZzkoOKPzZpjJLVvjJlUuuUPJcCYyjiIlLviTtOwWouUgQkKqbBGglZqQoOzjJLDdhHyYMmaAXxGmMfLlFUudDxXIrRoOpPiOeExXKyYkZuUMmzqvbIiBZzVNuUnkCcKUuSsWFfHhVWwvwFfGaAgLNjjJpPJpGgmMwWQqPPpnOoiIFfYFfyrRWvyYSssSXxLiIlWwsSVwhHZzkKCkKuUuUckKuUBblQChTtHTEehHtcIiDzZdVvbBXxoDdmMyYwWIewWfhXxcCfFHdDvVbBeERrEeFPpPpSsSsvVELdOoDYEuUeylNhpPeEoOpPHnBbgGKkTHheELlPpmvVeEMcEeYpPqQyhHCBWRpPrwgGJjbYytSseeBbyPpYEygGoeEPpOeFfXxQqBbtfFTDdnrRnNNOoEtmPplnNRpxXPrLUuuUIacCpPAiMTEtTbcCBqtTdRrUuDoOjNnJQmMPwUwWuAAaPpMmaWUVvKbBkBrRzlLLlKkDCcdpIjzrRZJiwWXxPmMZCcSMmsbuQqrVvJjRtTpsZAazAaFfVvIiFfFtEeTRrfHhbNnBmMVvesSCcyYaPpAeESsHnNiIWNnwhbJUukKjEeEeWwuUoOBmBRivVIrbTtZzrRBwMMBbtTmmFfKPDTtdpVvtkKTUuuUsRrXxSSbEJGgIiFfjOoGglbBXxLeuiIUZzlLOYRryoXHzZZzhcCXniRrINpcCPTtxcpPCxbBBcCzOoZbYLlhzsSZZzAkGgMmiOpPbaAmMBhHoMeEmJoOjJjoTIixXbBIipPvVdDwWnNjJqQtaAXMmyYxXOoxNHhuUMNnrXxRmtwWTEMBbIimeWSswqQBqQqJjwWMmkKsSVliILCcUuCfFcIivrRvBbVZzQdDmMbEemMSYhJjHyCTtDdeEhHJSsjZBCcbzDdcjJTtQEeELlEerRltTmlLMLoqQQqOevGgVqCcsoEJjeWhHwNnOmJjtTMJjZzKfFKkkmvVTIitudDAIiaANlLthHRrTAacjJCnkAaKawCZzAatTctTAaOozZNnmMiIbBtTZzJjyYeEWrPpRMuUsSeFOofjnNJXxLlXxLdDlEtBbCcjOonmMYbByNJquWwUmMSsQeEpoOYywWnNxvBbVqQhHYQqAayMiImuUGgcZzwWClLXoOCcxObBpPPpAatoWwODdTQRZzrqJjPpojJTpPSstnNRdDrcCcZQqPpfFbBDdhHXLlQqNnSsHFfhhHXuUAgGGgZzhHaxGgxFfmFIifNFfnTLOoEelIitvVoeEvVisSmMIMmiviIAaAanNVRfFrHrdTtDHhbBqKkQRZjJoOznNZzgGPpNndUuDcChaJjAIiDdfFkKCgxXGtTcaoOjJAFiIfbpOoPBUfGQqLlgDdxXKiIkUOouUWwuYyAaFyRrRjJrWMmwXxgGeiTtIEglTtRQqrLCBbclLgHhGGQKkSXyYzZxsQqqFGglLmMgGfmMsSTtFfrRjJwOoBbThHtMFfiIKCckmWzCwWczZePhHvVtTEsSFflLeTtEerRNvyPpgokKOjJyYGjUuJTaABbjXhFcCfftTFHvVcDdCdDcJjZzCwWpPxhIiHJfFPpcUuoOCjAaxXIiJTtokyyYqjGgJQDWNnwjJlLkKdlLlLiIDdYYyaAHhehHZzHYyOopPXxhtTVvpprmFfMEeRPIiPIBdvVDHHXvVxhPpCcgGhGgDCiwWIhiLAUuQqAvXxbBapPArRiyYFfISNnmMxXsATzdDtTBFfbrBbaARCcUFfuiIZWwRjAatZzTJjpPWIiwJmPdDeMmeEOoEnNeEvVerREOoVgGzZVAeEPpaTgGyyaeEAILliNnYNmMyYUuKmMkplNyYedJjzZrRrRDEBBbKkgGBbQkKqfkyJjvVYyAarRYKQqFIiBbLaUuAVCcCcZzVBEeLqVvQyYmMlsSbvZzhHKiBbIkZNnXxnxXjzZJNzvlyaAHhXxYpHTfiIFtVfFZIiLlfLlFzvhAaKnNzZkejbBgGJnNEeAsSZzkNnKSsZmUuMzWwltxXxXMpPmTLAadDyYPgGIiAapkzhHZkKfFfhDdAaNnFfsSYyFfoOMmCcjJdDHZzjJNWwOotrfFRSsTTYyUutrRXxDdyaAYHiIhFfVyYqQqgGQqPbxrRkKXrRXgGxXyfFYWwqQxdDBhoOHkmMYyKfWSroOBbRGgkKsmMivVIWwLldbBDNzZnkKwBbFfwFflLPpcCMJjmDdWwzVvZsHmYmDdMyMSFfsxXqQvVnNhOKkhHoXxPNnuUGgVvpsSFbBVvCcKSkHhUbBuKpPAjuUJYVvyccZzCZzYQqRrBTtbyAaCeBbEaqQfFyfFYnNZHhbBOoPpLlGCctTsSHhRUurBbDLaAlyYdSsgnGgxXNzwPpaTtAVVXxvZzvXaAxWtFfUuTIKkiVvdDvVpXxPrRkKVjJMEewWmvdDpPnVDgGmMdvETteZYyzRfzZFIrGhfFHgouUsSOeNnZzESsdxXDQtTqMFfmRvVuhPDdKkIipXxPpkKXxWwIiNZzRraQqAnNnjmYyMMmgTtGMmJQehHYyglLGYyEkZzwWXhHxKmMCcqYgGyHhnNeEgGkcYSoOGgwWyRrYnNqQMmSNnyOQlLxPtTaAphCUuSDdsyOoqDdQjJYEzZecfFrFfDdCcGFfgGgaAaFfbBAffFNnDrRdCHhIiyYuUlTtLcbArRaBxXeaAVvEVvFdDjoOJRnNrAGLlxXgsSrRpTtQTtqYdDynNpjjGGnzZNSsgJKiFfvVNnYyXxrcCFKkNzZnfRuUCccfFCaAlMmcCgGLyBvQfFqVbIieEsJjoOvVzZEeTOoHhRrJyYaRrhHdGgkKDuUYyLWGgOoYyzZTtKkgGokKfhHOoFRrAtsSMeSsEmTNnXxrRjUmMNAHhaSsqlLQvdDViIKkKZoOXxziIagrRvVGAalfFLTqQwspPSWtFfXxAaRrngdHLlRnNPWwWwgMmdDGvzZVzTccCCrRtEevVOoLufFZzkHhvnNaLtTlAYyOZzoVgBbGXxEdvUpPYrZzFfNuUnuUMmREpPeYkKQHhqyBavVAEeWwgtTKkqQGyYbgjJJHheEKkGgMuUmjefFlBYyHhEewaAWLpPeEPplLlgpPZhHzGCconNqQAEefvVIiDdtbBYyKkIivVprcCRdDPVvRrVvVwLlWPpNnVvNxmZTtzaAmMcbBCOoHhiImmMgrRsSGLlbkKZUucCOZmZzMxXzCconNhHNnzUpPTtJTtJjYwWBbgYyxQSbBoOsqXGfoJnNjtHmMhTqGzZnNyYyYqoOQgsSvVHlLhCOocbIVtHuUhwoXhjJzZHHhIWGgwipPQPpqcTpPIittaATCfFxTeEWBbQqwHyYmMjIiJhSNsSnAasRrjJEuUBbpPoUuIiOuUWweJjsSYyVjJvoNnOQqAoOaNvVQqsSbuRrHBbuUhHuwWUheEkKULKkwrRHoEjJeJjOoOUubBHhoOmXxMkLDdlPhWwSsHyCcYpJjnNTtuUmuUFaAfWwdKkDuItTiNbBnpnNqQwWSsnNPHEaxXMmdwYydDWuRHhiIJiImLlMjrYyHhPpTtctPpOoADdahHeiIEDdEeTKkCEejJkKPpfwkShHsFfKWcCFwWSsJjhWwHSfXMrRUumBbxQumQqMUqGgnNnNuRmMtTroOMayYxXAPYypmoCcOQdDVvWwGKkJTtyYWwjHVvhbuUBBbcUSwWsuCoOiIInNrRiDdcnNCmTtbBqQMwWkKDOckKEeapPEeASQqsYyIiCGgoqQshpPHSIWWwwiLgCcGlWzZWwLbBaAhHZCcYyVvzmMtTjShHyYslCJjcIiLePIipErRDdjotpPTOMmNsSnsSawwWWQoOfFVsVvSvplLPfFOoOfForRyYQRRjJrrqIiRrYYyyJyYOocNMmnCdQeEFfMnNmRrMUAaupPskAakKVmMvvVPpKSKFfkUyYsSyYLluDHEIicCoFfOefxXFosScgrRpPGCvsSVerREZroORWwSsHhLIilhJjfFPpZeAazZDdSsEHkKhzhHFfxXkKbAaBHkmMeEyrRgGYyQRrqYlAaFfLQqBFMmggGvltTPMVkKWIiuWwUKkwZzKkEevzKkTaAtzwWSsjVvSsXxLlLSsWwkJjdDKUWmMHhvjruURlLCyYMmGgczZaAjsSnNCcqQeEJuUyiIYJJVIivvVJnNjRrjbBSYqYyxXtyFfjJjJYuUTtBZzQqTtvVjJbjdDJbMmBTwEeWHgGzZhPpAGgaWwRruvfFNnuUePJSsKklEeLUEeTtupoOkaAxyzZYXHhhHDdlLoOKPYyYwtTJkKjWPIiaNnaAZzOuakKVvsSEessKkcCLlNnVvSkmMKmMHhsSoWdDwaAwWOStLYBbToQAafFnwWGgADdyBbvVbBDdoQqOJjlmMLKLLlpPrfFRlqQkMYxXyvWfFoOwlLDdVkLlKvVXdDxQotuNnUZIiKkzRrZMmzTZzODtThHdnNxMkGpPwWmMgkKaAIJcCGgjvVIiivUuhHWeEQqrRmMwmMzZLlXxVpPSgGsuUFfmMZuUlVWiIWwwLlvLPEepzpAawjJzZbGSqQnNGRAYyalLijJIrgDuUdzZCcrRsyYgXxQqjJjmQqAafdDgGFVvlLyYNgZzGsEBbeUuBZzbtTGgWfFSsQiCrRNnNncIOozZgHhhHbAaBYGgrRyWwLlGhHAaMuUzZHhTlLtrgGtTRFlLRxrRXeuUCcENMmnPNcEeCHDWgGwfFdaAZzVvVvrRmePpEOoMIiPoOYypdDRrPiIpyYUuGgDdsoOSUuNdDoOyYMpPwzTtQqqxftuUqQQqTsSuUqQZzdDsSFyhHNnLcxpPGgXCUuSsoUuOTuUteEYynrRdDmafFAlLMVvgGNSsVYuUqqQQyJcCjvPOoXxzZWwCcLlpJSPpqQbjJJIHJjDupPUTtdBbDxXhHdfdDFmMoQqqrRQOYyHhQqDdMmDrRsSkgGlUulDdUuFLlfRrhkKQqwptizhLlJjHaAuULlQJjqgGwnIicopTSstJjBbAaqQPoRrRrKLQqlkLlOVvcCOnNyqQeVuUvEYELvVlfsSdDaAcCQxYXnNxsSvVyXYTtEeIkLlKDoOdOogGifUNnYaAyoOqmcyYDdCZzMMQgcCrRGoOwWqmuUBbMiIgrRGBRrbNvhDdbBJnbBNjbBCcSslqQIiTtAUuJjGTIiCKkcrjEeJRfqWwQIiLldOZzBbEeofYsSyFBjJfiIQtSsULnnNNIiPpsSZzEoOeRrlAPpShHsHhoqnNuUxXQObBZzBFfbsOaOoAozZtuUEepPTSGhHTVvcmMTtJgGvVCcuUjyYCGGXDdxfFRrVMmBbvyHyYQqhYZzUgGvuMmRAaWwrvVaAUVuUuZzZzaBVvbbBVvKbvEoOeaAhHpKkWwqQdDvVPhWwHjJBmMyYbVVjZzeETtZsSHhWwwSsWIimMLBbLllJohHOjiIOozSsSlLqQAInYdbBDHCbBcveNnnNgGEbBVDWviIvVJzRrgGZTtjMNnEeASsXxaCBbcxVoOvWwdDOMmoXnEeNhHoODdFkKrRfBYnNyFfaLUuuUlsSunNUyYnHhJaAjWwktTtTSsneENKOtToAaZYyoOkJjKMcCLlSsxXJjmdYydDDUuHtHjfFciINUuBGgsJHhjMmZzkYyDdOtTaAoeeXYzZyxRrfFEwqsSQNnmoaURrbAaNnBEeuqQOnNrRgGvJjqQVcMgGmkRrKzEeZsSiIwWYYZzyemMzZnNdCcjJDEnNOobjJBLlduUbBfAaFzzZuyYUGYyzpPZkKuUaeEAkKFNnQTFfVsSecCvVeFfoODBbdDQxNnJjbBaBrRaANnRpPraxeEUmMuXAaIiwWzZvOokKrRyYCcmMVAlaAvVSsYkXxOoEeKXxWVhHvZshHSUuzwJaZzAkoOCcXPqhHsSQjJUuhHmhHDdPWwGgQqPpzyYZSdDsgGdmMfFBbPpRqQNnlpvVvVHhexjJXaAEHgZzGhHhnNPHhOVJjvVSsUujAaFfJPpgGPpOoxKyYkXpTUuhCcHyiIrRNixAaMmMJaAYyIiEeVNnvHhTtWwcCQqlQmqQMqNnLUpPuFfHXxhHfBbFhpeELliIeNnzsSOWwdDofFZzwWOowKkeEUuUuhVvHAaWoRdDmMvVMmfFOouGGggoUurRoOKDdAakXxvDdZOZwtTXxVvHLlhHQqCcOXxrRIiXHBXxbiIrRwfiIFWzcCZiqQjFfJArIixXLoOzZENneMmUuAgGahHsunEKkpPkzZKACcaKkyYRrksSplLPoAaNnOUyhHYuHrkWwKAVdDYyvCTibBEedDKkjXxJEQbFYyuUJjvVcmMbBlLUuaAKkWwIXgGRrWwxsSioOAwlLWAafFaTZztNlcZzWGgYyweGgEMmuqQUHhnNCufjJFUSsVibAaBeEThHtEGgeIgGrRnNwWPBbnNpbBuiXMmxIPpUOovnxoOBojjfFcCJDdhaAHTRrtrdDoOcCSBbwWsoOEnzjJUuOoZNpPdcCPpgGnNAacCGbBgCcuUqQKeEkDjZzTxXdDHaAhcClLtToOvVtDnusSgGUHhlLXxwWPpnwWlgGhHWsgIiGLlhiIHSWwXxsnNnvVAaNSbBtTobBOpPuUdHhDHNnkAkOpPouUDAbBHhZzbBLiOoTjJcCsRgyfaEeAUpPwWuFsSsSYVuUvGalLLRrlJjuUDmgGMeEduUtTATHFfhtfFrRyYVvFLldhHDNVQqvqLlrRAaPpQETtHhesSxXnfWxXmMMHhgGmfFxXsSWaAjJwCNncwwWwrRwuUWFfrRdDgGtRreEfFlYLliIdxXuUDygGLcbBEAaeJjJOqsSlLQqQOojJtVvjSsJTVvwRmvDaATjNntTCcLlqIiIilLmWwJAaRrdYuUyYyDyUutOoqQZzOlMmfrRdsSzZlLknrRWFoOfkjJKPpAawNKzZWSsFfrRuURrhHbmMPpEePEeFfpiIyRrbhfkKHhfFicbBrqSsCcQHzZhqpPbeEBQuURACcaVTtvvNWwnVCIbBfMmyYFyYOoHILWwWuHhUQMmTheEHPpMmIitqQDAaqQdUpPHhOoPpRDdkKuUjdDJwWjsSnNJbBhHyYPXxhKkHptTtqQIiVVvbBlLpgGQvMmoOnNLwjJlLWlsdDShnmYAayOPaamMGdDLOoYylKkgDdpPhHuMAaMmmUFfAPmMcgGnNyjJYTyaAYVeEvfKtTkhHNZkKMmiLlUFfgGuziIZcyYCQqLUwQigGPpLlbzKkpPZBIaXxeEwTLltTtcgGCQToOIiNhHTaAZDddDgnkKoOLYygvVGwWkKGglZeEBjKkUuJpPrUuRiNaAkKtjJtTXEFpPwuUWnNlHCcVvZEBoOrNUEesSunsIkyYXcCsSPbBkNnfFgGPPjxXJppgosIifhHFEkKEeQzqoOeEqCNnHhOoPrRpaXxAKUuQqDFIifjCLlWwiMmLlFfpPqQiIijDtTwxXxDTtdLlmMXPUrRBbIuUiPpupYtTWwrTpMdHhDFfmbBjJdQBbqDPfUuFNnRrYyBbLoIinWIrRpqQPwWkKHlLjyYJTtQPpzZWzVvZiIXxClLLLlRZzTuUzbBZGgiIqQtwWJOHhoijJIeEPIipxXSOeEoEBKkCjQqLlXxJKNeEMpPBGrmMRgbGCceEghoOJdDjHGfeEtTtGTtIigZzvVTJbPRYkCcKGVviNnIgEeyMmYOHUuhyYrCcRzZaMmAJjIvVicCZWXksSmUlLuMsHhWwVvrRXeExxBlCcGjJgcCoOtfGgODdhHoDjFicCIfTtbiloDrPpUumMPpsSnNRdTtomPpwWMOOJjJgGjSkKsSFlxXyYKkfFBsMrRTtuUmDvbBVdiUuGgIyxuUXnNTtYaQYyrRIaAiNnqTtVMmZzYykSsqStTqQskimMIKjzZwWubBUaAZXxzXTtmadwTtDdcBhrcCRqaAQHWKFziooVvxXOqYNnyQlLNFnNhHfSHJwWUunbAaTtWwHseyZzrRNnYWwRrbBuIinUuNJjnNyYUlLEsEYFRrZzffFyxXMlLjJHhaAmrtTsSAXxDMbBmAajJWkKuXqQTJjdDErfQqkPhHNLqxAaXdDRAfFarQSsESselPpYLlyjgGTGgDWwdXoOjkKnNJyYubBUxmEeHEehMKESKkrRseDbBTthHCcdWvPpIRrzZlLmMiIcCiVHhwhHfFBDdHuUgGSIisvMmVhjCcJbmSsMGgxXvaAcTSLlsHhtDvVqQdQQqqjeERgWiOoZzmsUuesSEuAclyYHdeAaHuUEGglLbBHdDBbAaMmfKGZDdzUgGeEuFnkfFHhnXxzZNYLlyEepTtROLxXlVdDVFfVvvUVGgyYPRosSEGgkKeSfOobVvpPBTtFaAbXEexCcZEezTTOVvoNnttAHhaSRrsoPpPJjWwRrpJiICcfFOyZSsbBzYyYzZOFfZzgMmleELDvVdKkjJZzXwWcGgCmoOMflLTtMmyYBgoOGYCcCNncyXxoFmMzZJjzNnZzlLZzOpPdDoqhKTtkHQOgGEeratUuTydgVhHxErRecsJjSsQasSvVQqllLanlLNRTtOaAorQDdgGqrRdtTDfJjFHUuQkVvKwWBbqjJvQqVMFjrRqQJdDveEFaNVvngGeshHSLgGlEeExIsxXmMzZSiJjHTzoINpSsmMxXuCzZjmMIiohHOuUroORyEeCcxfmMEepeEgENzZrRlDdPOopoIixXVvzsSZbvVCyFlLnfAaFNCcTfKwMryYUuPpkfFgGjiAaoOjnNZzdDnrRNyYYhZWjJDlKkaNUunALDBtTbwoWjJwWzgGQqZwkKOAZkKgGxnxIixmQqQqMnNNKBbGnNgnNtQXlZzqGgoORrjXcEecCPpQWIiwkKldDRiIVvdDJjFTPnNfFnKkZztTNAaHROotTrFcCYyxCclLXAfQqFgQSsqGfFnNaYcCyFfcCrRfUBbUuLluOoQqJjZzhHqzYUuqQnsIiSDdNjJyZVvkSzZLmMlDxXhHdvVJjriIneEFfpPpoOWwhrNAanQqKDdkfnbZzBdxyvdfFWpPwvVEdDmMUkFNGgnmMVvFUsSufQqoOdDUWVuUkKQqvVbcovVOCqQgQJKzZDdkyKkSsSsyFfyYYYvVSNnsJjIiEDSjJsSVvXYzZyFIbBbCcQEeEZVOSsovgHKkcXcCdvVBbFfUuclLoOYytTczZCppqjJLkKOhgGYyWiIKkOowuUHoMgGFCerRyYfvVFPlLIipCcwWuUoOpPDHGgGgckKNnhHapPAJxxwyQqhwWDdxRVRYnJjMmNxuUUrRcjOuUoUHhtzZwQqkKopPOEeRrWSDdmsSUuMsTSMmqQUJmMFvVtwWTzZDdBwXfnsSZWIiZzwKjJmaAvVnNMEepHhlLeEoOiqQluUmMLNnoSJUuwXxWeUuEeYvILliMPfgBbIiciqQSseEAuWKmMkKkHhoTjhgGXxqRjIWwwRrSsvFszZSNnXxdDRrpPOoJjDdfVasSpNnPXxArRyYWCjJlLciJGGgSsSrXHhXxxRvVetTuUgGQqyOpYyMwEeCzSGgJEeCzZNnusSUcjcLlCJjGecCkKSsEgGgdRvdDINnuURALlaZzMmutDdtnHaTteExXMmJUpPVuAaJvVhnCcNpPHaAlJObhHlnNLJxoOXKRrNnXnkKLZYeNnwsSfFsSLeEiIiGYXtTxVOYLloOyXxnNOYtTytTrlLPdvfFVdDMlLmQqDVvfFmMsSgEeGvTtVpYyObBzWwbBfbBDdojdDJUIiucClWwLMOocIiBbHhClLFsQQqqcsScCiIVvCLjJIiqQSfFAvIgGiMmdDrKkWwHuUjfoUuOFjNnIibggjJOrRzMmiIjQNwWdBbiIJuUVvjeEJjAdbGgBFfdCcBbUKkeEunPHhHhgGmbBCcxSsXMwSsiIZcwsQAacCABkmRrOoMLcDdCXxlNnqkKVFXvVRZzuZPpssShmMhHHdDcCJmwBVvbNKkZiIHHUVRrqQarfqNnieEYdDyUuSYiIypPpPfFzZsMMyYYsSwWyERsSIirhHtLliIiIMmYyuUTEeWuzXdOoDqQjJXxhpPLcCgGHhlHRrOmMJjgGPpjJLldDZTtzEeJOozZjmMcxXygGjLPsSGgKkboOBGcCtTgkKCcDeEIqWwAaQZhkKHpPLlviIVGgpPjiIJvVlLRrebBEwoOWwtOoTQWbcCFoOtRrTVvZHhrAaRIipztTURrnNWwfFusSZTtPMmzKpPYoOykVvpHhPfsPVvpAaEecYYkKyyuUGxXmVBQqbaAUrHhTtjfgPwlLMmcCwWCcVVvKRJGgEoOEeChHcFemMEsSYBbgGIdDbBFfoEezeqQKeECYBbuMmUwnNWAaEeROpPpqQBBbIibPQqoTtiIqKxXkQBVvUiIEeuTtSPyYqQRrpsoOuxOoLlPpIyYiBbyUpPuCcYgmMGXTWDdCcQDFQqfWMmwhnKkHhNHCRzPOoJXxVIvHhZzjIxdDsSiICUuUipPLtTRrhHnNltPpuUzZygGqQwcsSClYydDoeEQuUqJxXNnJjtTjzZEFoOfbMCcmMzZJjYhIAacCbEfFeBFfIWwdYyvVQAaqwHhRehHOoBbeapPJjvjEekUqQuSsVkKfxXtjNnJgqQiIHhWwXcRrIraARbBtmMnWwNaHqQhACcUDnNdwWiVPpvniIhHHhArRajUvVuJvVtdyYhHKlopeECESTtFfJjstSxXbBYykKVveEufFUUueQMmbnhHzZNfFxXUuyoSsOmMcCNAaiInYBwWsSRrBNnfFojblLlibBIrJxXukKUjaAJVvoOveXxBlmMLVhRrQBbVCRrcVGJjiIPppPPpgFfoOrRzZLlLkKloOPdBKkbyYfFiIFfOJjCnNGgfwWNnPmCceEMSgIiGpeEoORrwWfFPsSTCcYytsOofFeERJssTGgtmMQqIiSgGmMjbzZBJpPaAuULbjJIiPpXEqQLlWAXxQGPdjJoKcZzjZzVbBCcDhHdZjsSQqpPRrRUurvWwJIijJcAsiGaASpHhPKYykjJsAaMmgGpLlAaqmIiwWgWwbBvUOOooRhHqQzZcNnlLRjxXIXxizZKkvQaAqmrRmMQLlqsSLEwWerRlOAaoPHpGgGicCUuDpPdlySsYCcsiIaoTkKkeqQZyNnYzigUGgcwWwpPpttSsPmMFfsSppPyYMmLDSsdlTtTpPbsSYPFfYyFOofpMDyYdmMvVMmPpmgkRoUuigGjPpAagFoQqOfGCKkwWMLlxZzYRrJOHjJkKAJjEedpWdRrDyAIkKxfFXCtOoTRyYXbYRriIJEejtMqQsQqJjCctTCcSDdiRIifFDdsSrpPYoYiIEQwWBBWUuqQwAaLlWzNnuUCcZIiwjJpZyYilIiaAJdkcCfFJxwIDCXCcFSqQDqQPpIEuwiIEeGgyYYxGgTnNtnNcCXjJyxVvKJUugnNcQNnqCZzRrNnmWDdwhQqHyYMVMdtTxXDCYycUbPpBuTbBnZzgTtUdkujsXzZLlxFIiKegGiIsBMkrRpPsNXxCcuQgAaNnGIitTJvJjyYnNKSskVLlmMtTvVyzgLlDdGWUHhuwZkNnOoIihHdiHuKkKuUGgITAGuUCcggGqQyKRrOoQgGqpYVIihkKHFfCqQpFYemlLMrOpbBjbvtPWwXKkxBeBhHbuUPVgwWayYAcBnmMKDdDdkPFfchHCeCYLlMmyRrcEgGNntTpNbsXwRrbYqLUXxaAxXulLlwQUuqWtJjFsSlLoaRrQqyYAjcCuLlfrRGKRrZtTzbmMBPJWfjUussSOoSiIJOWeOoEwcCfFbfFBvDdspPRrWwiGgcUvVXiIAalLBLlIxoOtwWPuUmMqQHsSRrJeEsSBQqwPPmMoOCIicycAalLxrvVHQpJcrRVvMVidmMDDQqJJjohHOzzPBbbhHSsBAaOtaoOUkRrCdDiahHlLiIAXxMFfJDUudjLyYCxXEerSsTnNVvTRqkKzZgGCTtcebBlvrqQRYieEPaHVvVRlLZzbBYyVIqjJHMqQaATtnNEenNZzoOrZTtzNqQpmMUuNeEswvVsAaJjIiVBpgGnDdQXxqxXHudNnJcQqHnCClYfwFfFcFBbQYyOoefvVEcWwQIiqRNUunsSrCxPbBIgFfbBePYlLAyYOcGPplXxLaBYhHpPyOnNdDoqQeaNndDweEWGRgGOonfIQqhEeWwMwWmibPNVjtHBbSkQqLlKjJsPRrfFphoOTCyYcxCcXxWwcgGpWwtTkNTyYtdDBbZddntsmFOofMTaoCTuUcAlLfFIiwisvZzVSlLsgGQDjJdqgGdDuUUEexXMmPpfbBCzQqvVZktTlLKHhclLCcuUFfLlhHTtbsSBfFPrnkKVEeZOoiIzmMuQUuTtPKkQhHqqjJQRrHhQqshjCCcjJcQqHQrHhrzZRUuhLJvvVNnVjsSvqvpPkzfTgGzZMjVvMbBmCyRrcCZLWwltTKWwaAkzwplkKxXzxXPyHnNftYyTPZyfRiIrMKwoOWmMlLdIiiIYyTtbsJjFfZYyUMnRtTrCcNCgKktXxRroHgGhOmMzZyGgwjavJjVAJSDdQVlLsJjSfmMFSsmMNaAyYjJzlzFfGgwqQWLfpmMPpPnNakKYjJNnvMmVuaAuQqQqHSFLFfuUlfnjGgJNmMDdAasNcpIGgiLcYyXexboIiTtOvVMmBOosGgoOnNlRDbBkCcVvSDFfYkrRdbBdDDhuGgmXxkMmvVeECfmgIWwidDnNoDdAaOBbOGgqFfFwpPWMeDdbQqBbKkMmdDzZpPsSaRnsSzCcHhZEBbeZlmMPsSMmFPpfprkKYyNnRDwWEWwbWlTtsPpcUDdYrRyYyvUzZuHwWaOoKktTlHRVvRDTPpddAaDhHYoziHhJjIZOtTalJXVZcSiIPyYnaLXWwmMrkrYyOoxhIPdqQnrOolNnNdOeEXOoiIHhsCccTNxKOonlcjJzZCoIZziOsWoObBUxXRrUuNcjJCRrVvcCiInGHaLlNnsStPpLuUqQyLuUwyYWOqQoltTcmMWwkKOiIdDbBFoWwOftMZzOoQiMmYevVJgGPoXtTDHhwWkoOKrBbCcSshWwVvAPyvVYgbBolLBpPbqQFIirRpQjTPBpPFbmEeWwMjVvJYQkrZzetTNniIwWOaSQoQqgvOofFVNnxXFyKFfnvVNtKkrnNdcQqrRxFfCciIUuXiSvVGYenmMYngKkVvVrhqnNULlcCeSIyYyMGGViBZzxXqQHhRrfFvVdDeEWwdDbaweVxqrRhHUwWucFUuXSXMmlqQkKNnwWSssScCJKPXiIxoONnpxXMpPmdHhNGaAgnDoUuOumMUZzHhhHpPkQqONnyYuBbUvVSsxxLlXXGeEgKbxPTqQuUtlEpDdPZzeRxydDsyYSYyYNEOWTtfFWVvxXwmPuUpMVfnEOoeDdNBioOQUuAdXJjTtFxXrRAQflLFhHqCGALlHwHOoNsSUuZsOoSXkaToVMmOolMmsOoVfIUwaAMmzIiQUraCcACcRfkKxQaAqQZZzvPpVWEedyYWnNnsSsSNkcCBKkpPErmyVdsxaANRMmiKaARrmFoCuyYzZkKuUzeEZfPKcCkVzKkZIjAamcCMJjsimMaAITtSsyyYTtYSEoRycCYEyYerOewoOWwQyTWwFTtLLlWvTtuUYSsyrRXEeLlJREeaAaSsAEexPbBEepOiKkuUYBbcCNKYjVvJMmDdzZyknoyTUukYxXKYyvVvKpPRxSsNppPPjJMsSWgsSGxDdRrrQqhHRXwHBbSsijxdDdikKIWwDXXxWHhwxXdDSssiNdNhKxVvuUuKfFecCxWzNnZQqjJGoRFfdDaAQqNnTtJYsSyrFxiIoOWaAOeEowXyUAnjJBbYZEMLsKUuRCcfbBfhEUueuyfFfKkFYMmUJsIkKiEeLlsiIHbvVBixXIsJDdBOoHVsgsvRLlLlWnJjlrREIEuscTvVkKfkKFIiHZXxhJhWfbBFwWzaAZjxXbBTPdDwPpWPCJuUJjvAaEMpPKRhvVOHhoZzYyJIBiqQKktIiiIYfFkKDdQqsSmGLLhHanNyOoGgpPzZYZLlzrRDdzkKZOoQuBoOnNKkkKExXHhhHkKkKffFtTdFmMpPfaAphHXZXMxRrHRrpHhcmJBYyoOOzxUNnhxmMRlUuRrLrXUuxKkeTvXxXtJJjGgjRQrXxRreRAarmMEtTNSoOaAsNnnNGXxKsSyYsSiWwSynNLlEFfiYyeTtVOwWQuUdDuUmdJjDMqEWuUJrZzrRvhHVrIhHiIFYyHHrAOMmHhbZXaAGwhBVvRSsrfGqizJjPFfydDYprhHqwMZvVBbzXxhBRdQWwUuxXzZtTBCHhpPfFtiItTGnInnNNkKelfFeLnlGHhPpTtELlLaaABbNSrRswWcxDdLaTtlkoOKveFnZbBrufNrTttTdDRIfNUdDaJjNRiqQSBwyhkKaoOAHKkfpPFoOHNnaUuKkmxXCaVvAbNnPpEeqfmtfFKkTsiIUuWrKTtTZzLLlNUuVkiIKkBblLVyNdAaDdAaAoOYZYyCcfFIOUuXxmRrYzMFfVemyfgGuUNnrRcCavVeTthHJtTgGfmSdYgrMLJjalOoLGayYynNWwYIHhvwWaBOouiIcCwWvNyYVTlqoLlBbPpthpiQwuOKkiIoUWxXEBnNbOorOofWGgJUuGUqIMmiQugDpPdfsSUdlLDnuUfQXxHOtbvVrbzZSsSIFrHhZaAlOLlwWqYyQHnNhrRoLwWOkPHhPcCxXVvvyYacIirRCsrtTzyCgGcYKhHkaBViRpKdDlLrdbBQrtYimQqjJBILlicTtVihHIQqGbmUvVzZviQmMquUXjNeEVPLECuUBJAamMRWwbLbzBbZBnOoNvsIiVSJRJjVvrjaADqDygmJgGEeyYtTghLlDZRrRrmkKMLlcKicCuqtBbltTLHNgybQZziPNnqQzZvVNNnjJcaViuBLlbtTbLNnlcCGgUOoRfyYFdqygRnNrGgCjPTYyfIueEZzpJpPOojPwRrWJcsRTtrKtTkmNxIscwaSpxXlMmLGAYQEeEemAfgGORKkQqfFrRzZrsXxHhSsSkKouoylmyyYUvVIinNnBbNVUuvCFNGgnPNnFzZFkKbUuBZQyYcCEeSyYywWYsVbLJdDmhHZQqIkxTCdUxXuDHWMtqSBtTJiXnAaNeESRryQqRBbrnWwGdIiTtjzZVvdmEOoeBlLbWwKjrRMaAgGXRqQPMmJDdjeHmMPpZzyYkpVsSvvVleikKjEeJBbSjJepPKkIXxiaAtZURruEPlLUufraAVvlbBrRxtZlLjJMmatTGgApPzagUdPQkKUdDbyyMnNmYJjYDdAaWPwqQYyaArTtRdDHVRhHWgGwOOYyWwKkicwJpzpPZYtpPhEeFfiiclLZGghuwWUUgGiIUuiaAmbvSsIOozLBbatTAvDdCcmMYyzZxbNnBRrOdVRqQPprfFJmJTOKsSsSAapyYaSsDLlVvIiMPfFpLeEoOljHSBzZglCTBwcCWFOoSTBbPpNnGOqgQAhHaqUcCPpaQqAYeEdDbBgGeFiPcCbBpUusSZTyYLlhHWDAKcCkaCcgYHhfAaCHhxXqAaUuzSEiIeBfpPqAasBbTtFfWwMmSosSozZtTJjzZlMFCchHCcUjFDjyCBbznrRvsSAascCpPuFZAVvkIoCcLaXkmMDdMSkKYDxXtGOXzYOXxXxyQqlLJjoOYyLVvtTlJjeCpPcLlUYsMYMmyIisSkjJKWhbZdDzavVAPNzZgmWqQOomZyLZzlxtTXCcoTBbGCZFSsNKsZzSPpRDHUCjlztTxijJsSqzZOvVJpKZEcrtPpBcSsDkKoONndCgGxXcgOhegGsSEeOofSvNnYGRrmMLUuqQPXluUGgGOGgYyINiNQrfdrRFlLfFfNnTYdZPpdDZQqWwzxPJXxjmMgbBGGPwWVvsSUuYYnNOAtzwYYYfFSSCuLhuDdUebsSBvQpzZmBPyvsNnSrCAaXxOAauPnNNQuviKkIVUnNLuIiUkgGKOKkTULpKiXDHhKkBbfQlLqmtxXTNIinTtavVAtJjTtPDdwkpPKUuzwsSSsPBbOfxXFvdHhPprRgQqVHhirmMYDdyRIICnWwlLIGuUehbdDBuKkUmDmZDdbDwWdbkkrvVnNoOxXNMmGgbBWzjsSlegaAsZdcXMncoOCLEFfMmRrunqQBbktkvPbsSBbCcVUuBwWbnNXxgwcRpPrMmteETDMjMvPCcmMpZckKPGgpqgTquUQAaUuoObTzUuiIZjBwuUpkPrPfLqtTyasVIqiqjoOuGtvVTmYyYsgsScCulNVHhXxkSrJjRyLjvzcCJnNNVOofnXeEjJEokKMiImuUxizZhHIiCWwfaAlLUwWgGrmMakKAmWaqQAjJBsFQOoPpqawWcPWOorTzZtftrRywWYTCiIcAFfFjJeECcxmMQqYyvFfZzBbHKQlLqkZzcDWwrKatqthHtFOlLJrRIiJeEUrtxniVvKBXxyWmhfFiyxxXZGoDPqQcCVTtqLlADdagQDdfSsFeTkXxKPpqIHAvVBbRVozNRKkcCoOOohsmMbcIiCxXBGgxfFbiDkwkKWKJipntYyTnNNGgDdcCvYYyaAibDdDyYyzqQVVJjsEecCkqQXFKTtTtFIcEPpJjeCTtBbidiIUucZkKHpPnNpWwlLvVPTtLlsSbBpSswTHeYyyJaMOYyMFfmvVNHhwWnRmMrgGHUuAahlITtiLmMSsmMoupPHhckNnKCerrRVvUmMpDKhVjhVPZYyzZzlFfLpUmKchHCEeIrFVvQfFqFflfpPFcRMmhpsRSskiIlyaIRKxXLlyYuQqjspPVvYySqxXyYgnaobTJwWoOjZDJjVwWvuUAaYGbeqMmQzfmMfFtlSwPKIikoOWwirRRrbGuReZOozSNnWJjBFfZUyXBbxYCNncVZPgkaALRpbnxXcCyLeEezZIiEkvVTAcCvfvrRVPpmEhHKFOMmkcCPEepdoQqbBONnzgGwPpFfFfuUsqkBpQKXDzZYysjJyOoYdwtxyYXCfYBbyxXikKmMIodoFFfgGVvzXxZKaAPpecKIgCFfctAbXCcxJokwWFEetoTmMToRrOtYyvmcCASEbIdDmMiQumhZZZVKkBTbBHPVdKkKzyKfFfFzBbhNSsyxpSsFTmBjGgxzAhHaZXZCczdDVdDCcXxqQqYcCNnyxXioDdPxuUPUhFfHUyrRQNyYnNOoQDPPflbBAHhCJFxHhAkKqpSehbhHBHEeVPpvEzILuASMmIinNuuGsIOoiZzYtjMrWwasSAQOosKkKufFMmJJjhHxVvVhHArRamVvYyiaUCUuGgvfdDIOoPpORrcCuUQLlqNnxAacwFavVHsgaKCckAlrEeHVvEeiJcjXxOSJmwWjLdDkiIcCsKvVxjJIIPUwWGgnNVrRoOvpqQPpWICiaAbkxXKLnNMmHhLllIicSjJrTtDdkYNIMmeCeiIgGZzglLKkYrYyjiEemeZtNttkKNiMXxMvfLBCcbgGlNnWwgGOoFdFxXWxpOodMMmlLkjJKIhswWlggjlEDVvcMmHhCdLqHVwxXPpWvHBqMmLjbHhKkBKLZdDNvvjXpPxrRJGEegVnijJnNuZoOFftTzUDdlLIndNtjdzZAVZztTbJjBMUuASsyKklIdMmqQHxvVtYyRCcJjJZpKqQOYyzTtTsSFxXNnfAaMmbBEXCZzNntXklLnNHhZYKwHhWkqbBzpPpnVvVBbRrofhjQmWnlQnCcKkNFoOdJjXxlwnaSsLpENkdTtfQpzaAERreGgKDmLlIkSsOoSgmMGJNOonzrRZjsUuDdkKtqQDdzZfuxOoDvrRAJtJGnNRwqQyYDzsSVmmMWwWwtTmEeWnNwHkcYyuqxLlutTUWwFLLlWVvGgBbZyYxXXwWxmlhHKkZzmlqQGRKkUudDkKrJjSKjZCUuvKpHrZprnNCcPfFRrpDFEepPdDLWpWrRQuICxXGlDVvddnMyYmtOVoOvoyMkKDWEkYXTcKkPpCtoVvFOqJjQGgFfmMTfFtOfcBfQnzPpKkTtwqQnNrRsSWzLlmMTxXnHSgvFbBUExEejJbPpzwWSsZzZdDZzHhtTzwMvLxXJfhkFfDdXEAVGgRrvTUaAuDtiRrXuUEWweLsJLTmPEzZVyYveyIicCrGJjELlFEBuqQpLKvUuhzZtARRNnXTtBbxiAaxGXxmwSsvVzZzNnIBFAYUaAuERgdDKkjUuJSPpsKkqiBbIQqHxbTNtIBlgmHhMTYbBytGLbuqQxvVLVvuJkKDyrRwwWWzBFsSBpPQJjjTTtTMmkppLlxXQefXxNtTJjSsHhvYuQqhsLbIbwWydDYlnwUWwWzZRxJHcmJAcSusxdabCcbQJjmLfFsKkSluDDNvVkKgBbQqSswsSCcYyLpkUxXZHpPnWWpuTmMWsSBdWwDzzqqMmnnNQqTiGgqQNnQMpPgGmCdNnWiuGCoWwClLzZAmxBobcEpvVYyJTYUbBhzxNnqPSsAapkWwHsBbCcRNdCotTWUuwBboxXEeCaGgiITFaFScCEqvVsIgNszZGgHhuUdhyYxXHDHpPPkKWwuQjJRcGgCBrCcRJjhHRThEeEYaAyMmiIEebIidDPPpmQqxPRrfmfTtykGzeNZzvhHsFTkKNntFffiQqjaGgLlxjyPpFsNOonnXKINrRFwzZGYyDdSsIiVvyAatVrKkRcuUCvtsRrSTtIiTqpIRcCjJrCFfOxXrRCxVvtEecqIctTxXEeCQqmMeNnuScIiCzZvvVVssSTthHUKFNpPyLlTuLbkKKkxBVXaAmfTuUmeOQZKjJQPrvVRRXrIdDFbBVOoJjCcPLWwkBbKgXxsSoKPpDziHuUPphrZYeGOtTYFePpsEeOCNZKFXGIuLTdDMmDdgGtlLlvrMmajJLwWEelARmNhFiOosIZBZklLtQqQDFWQtTqOCRdsSlHhVvvDCcdVLDdZFSsfpPpuUeEPnbjnNWvKHhkizEJRHhrjmKirGoOBNgWMmZOebqsXAcHcTtfFtkKwaIdrqQvVFfSOeEAGqMZtWwjJxnEhnNHKNLpPltsPDDmijJUuvVUuILlVvMdDLBbFEMHhmexyBbrEhQqHtcCedDfFHhSJUocCyWoWJGgGmQpWwYgsEkgTTtARoOfFrdobgXKiQqIsavVASqHrInNUufXUvVawSsWWwZzivIaXxJDGgmJqJLyZBRtPyvVeEDKizaFvVcuUVbBGgtPuUxXdxXkUWFfEuUCcJFrshHXxSsHkTUClnNCJbOwwTwMYyfFfLQfxXUFcCnyzntTvmSsNTwWlMmfFtiOoGZWrRcAfZzrPoOjTtJpauYyUTtzZYYAakeCeEAtTOKkotrhCGaAlwWIiLyYMmIilxNnRrXNhHXkKtMmMVxXHJjJBhHVvkxXKvEEuoOUlTbTtkLlvGgkqQKRFkDMfJaEeJQDvMmTtuxkrxoOPpeIqCcQzqQHPjFwWfQZzDQqNCaAcnWEnsaAMvjjJSPpusSUbzHhciIMiIpFcEfFNrjbhHBdXxdQUuwLywtTWoeiftuUDuRCfFcrOoUFRbBHcrrRhHRRrCBbQqUugmYFfyrlZeOCiIAaaAcNnVrbFfcWzZTAunNbvYyXgUuiIigGmVGgGBNvEeVnbgtDaAdDClLKFKWkKJjmYywtpPLvuUTjxPhaATtLVYyCuUcrRvZzsPhsSQBnHVvFfxTtxXpoxXOeWfFwMmBpPTrRwyYpPCnNjJuUcImdwUEeWwTJmsSoOAfrBbarRAxXFeEfFlnmfmzfwmlRrLMIiQASsZzrOoiEJjPhAaHpiCuKvVeENJCJdklLKcglLKAYzGyxyYXQfGgrRhLloOKNPPamIDFQDOodDdbBFLmfuUJjbjIiJBRVTtdzZKkhUuDrlQeEqcCLCiehyxmqQtySyYsqwLlPIiTFfjEeUuMBZzSBuUDuTPoOBbBTtzZbWqQwVFeEfwWHjvPJjpVjaIiMmRVvLWiItTArRjBuAdDGzZUYHUuEppPPRipPImkJGgjGgKTFogwEeOCjOoJcPcjJUwWzdDsppFfaoMmdmJGLOoUlLuZznNkYeEKkjJjpPDFmMmMfdhKgyerFgjJUJHmMXAanUobByWSHBCkzwWFmRDHhFpyYSsPpsSmMIZzOqpAosjJSYjLpeTGNiInHhYyHtfFAMmaThaAWIqFNgMUuGgYHSTtzZqQeEtTSQIiqKHhFpPrRdRfGguPpDdUbIuRrUsSrTteNEtRrcCTenFQrNXynNoqWwQulLechKklLiIyxZEkkKKTmMNMmpPrRPGYmMyCuUIEHCcstUuSsjFEgmaESseSsyQoOqziyOoHhYYHdOoEXxExyYWkKAvWwdrRayYHhRrMrRXGjJRrmIYwwtTuHgAwWwGIExMmImMkdXudUuTsSKkOFcChFZHlLgjUtBbTEZzfkKFAaJjAttnOdFDdfEjAcCmtUuxOvVaVvLJacCViINOgnrLNkABbtTicsSUuIyieEGXnbHaAhYyBpuwWFfZNnTzeEZhHaAmMxMjuxXevVaAJxTItRQqrWwTiUuIrPpgGMmqUumXxMJtlUuEqQiGsDKVaXcQIiqxXMOBbmwLNfFBTlKxJjXeWaAjeGZiimHhEeVHZnNgGRrqQiILSnGggvVqjMmJjsigGIIniIOKKknFFLXyYjJxlDuPpioEjYgGWwmyeGoxcUuCatQsSImMuUrXxsbNGfreEuUrwUuxXWUwRJjXdumxXjvVvNVtNMmtTAaIJWzRrZjvWwHhViqxXpqbBiukMLPplkKLgghYybRuUOcCeEchHkQlZzayYIIiiZzxFKoOkivVzoOxXPpJjeEVdJjJKKktTDVEeUPITMvpFAaFDzuPgGTkKpIaIrnNfqQLvsrTtzZDTZdiIXCdgPoOlLAaGhZwZFpAGgmKDdqQkgVEUunnNmMNOtCTWqQGZzAgXPvVdBKFXxDdgCGCEMTsmvVGgVNnuGvVtbBoVoOLLtzNnRrcwWCZTtTlPyNiIcHsSBbBFftGXzxXCaHhfaxVDpoqQFaAfrQLwWpdEOQqyYxDyYmMPHcsILlbBjJiSQIHSsPsSXJLlWZmlSsDdLFMyYkWSTtPpAFvVBRegeEBtTPANEeLeVilyrTkKbBfNnTaWweEymloFoJxBRBCiIakKWvsJYIWwnnCEDXeEadDpRbWwkUhLWwjTxXaLRpPMhHlBkcCKCcbIQGQoRWrQuHEehBFhHopbrZzeoOcCEwquzBQoOAKXRrYyBsNHhnSbxiIjJVvVkmJeWwcLcDjdDNnoMqZzQduFfUDAagKchapCchHLlyCCgGDUxUtTSsOzNmXIDdifcCueGgEeVqQvCxJjnkJFfdDLgGuoOUlTYOZIiVBEZzAFfpPIyFBHeEXNnkKhLlnEewZMhDdENYRrkvmAUuDOoPXTtlQqCRIiZzDsjnNOojUufFJJlLuUfAaFSqnnYtTSCOgAKIEvBmODSmtstTiIWwzNrcCxXRyYDhlLBWRRsmkKbBwzoOZEuUAaFXSsxfaYyMQqiLAEgsWwspJMirzpPZlwIPpioDTxXvWwPuUvgGrRXlLhUfLHxVkKEXYVvJItTXxjrzZebKkQqBERpPWwcCzojBbtXWwxgGiBnNGkiAAaVNNfFusSoLeGrNnuUfnuZzUdDOYVviOptTPgFfGoBoOvMmhWwmCarsyYgoqPpQswWCAafBeESFrRBbfjcCRYvdusttBbbcNnCBlLdFLlXxFfvYdDzTtwWniIjJiIuugBbVLlvOodFEeeEaAGdDgUuJjpjDwWhHUeEqQrUuRZzitTFcCoPFzguJiwKdDlruFqQLlhwMmMdDAKkjQeEDaEZWwuOoHhYPuXxuUIXxGKAOoazeMIltTVHGtTgEKjuMmtTOUOJjKNjJjQEiIeEePxJjFPIiIwbpPwWQqysGyYTmjImFtgGYyKkmyYSsMLlOGVxKdDUAErgGHjIimvDfFdqQNUunzZmJNqFcIQKkbBDCoLwbvsSZxsAXtimhHCcWwEGVUoQXaKzWhRoOIigBqQXInaAmkKvIKsoIjkgxCwxXlsoWwSEBBHhbamrlBiIbLFNPplLaJwDdWjNxXnAJjDFormMRmeEMWlxYyXXxeEgGXoWGsULlpSBiIbssrIiRkeTtnjJdWBbwDDJoOpPYyQuVdMmtTykMTCcTrRtWwDduVJjvPzagcmhVvktyYTHxXEqClWnZeHzGGAPIibBpMgGgVvGwFfWWsrBbLMTtkQwqQpgrHQFbCWNnDGsvVmMTrfFkncqROlaXoggeERYCUuUgLLXFUpPdDNnmqxXVvRNsSsSndDwWaAwnNgxXDeXkKflyYLRaStbdKtIiTvJUujsSfsyLZzKBtWwTbjxXtSvOmTTziYQMmtTCcLfDFGMmOoMaAIYwTALGOzEVzZlmMLLOTEjoRGTURZziIkKlislrEPUPCtIAfoanFyFcpPJjoOJuGNvydDEFlJjZixTthHBpqQAaIRYeXpkKPZFhsJPpjavGKWidCRquAgUeeENiIsqaAvooBbIpPxjFjVxMgsSgnNfMmncVtAaHxfQnPtQzZqDJNfEHQwOAwKFbxkdDtwYhLlHZdDXxzyPpIhwsFUKJTOoCLlhukieDcCbBFxXHHMiQeJjoOtDdtoORrolLPdCuqSxlaAUKebFnAzZdDituUEwmyTJIOuUWknNVvLlfFPplLeEVxXvVvVlxXxAwgyhBTpLZeEzFfyybKiOXstTtdLIoADgGmdRxXywRfYDhjCcnWJjBbCeYymkKHqgGVdzrZctEzYfFyoOkKIiWtTwQTttSgmMdgGzluUmrqBXPidMkKkJPIUuAvuZAazYqzEfFLVHVulxutGgPWwpgJAldmMDiqQIJaAAGgWtzTrRJjIlPpZSapbBPdDJjWwsSAgGeSsmwYydsFQRrsrREmBxXREerqeEQBGOREeVveVvFfLlhiIhRgTtGrPidIAarEpqQaAMtTkrRjsHjJvAIeEkDQqdutTFkEegGPRPcCjdHMYymhxfbEbBThHPOeMmEfRyQwXqEelLRrSvdaAVvQXxUuMmqAaOIgGwrfYyqIUuQtEeyFyYfBhHOAaoDFknsyeKSsDqtRmuAjJqQRpqeEQNdplLkAajTtairRlLlnGgJXqalbRBbrgfxXtEDDdXiRIiOSwrrMKqkKCOAaocVyqKkQlLIEeeVEealdDAqbLmNBkfFxBhNjHhlLJKuUOoSsmojjgMZzGgNQqDdRrQuQcHhCqTtUduUDKtTGKkwmMSxXtiIEHYqQyBbGghTjnNmDdegIinPpJtTQBGqQCwpKtSgswdDiouUoOWHhZzwNSsDkKgGdIiHDjJkhaAoORrxXDcKcChvKWRrwqsSxdmkKHMmUsSkhbBYRZwfHgdbXLlyyYSwWwWsYgGNcCyYAauRqNRrnAqcCQRAGEICmSszZqQFftoWbjJqQYcCyPpPXxYyJqGgIrRlDgjaIiyLlfSXvCnNvKXAAFtUuTnArxOoHuUInskRXxrWkKMmzGmQDisSxtXVkiewWEuZcAantTsSHeqQlYyHhqQHKkkyBvFNODinmiyYdDyuUJkQqKMZzsVAavbUuEsrHhRpPLkAaXOfFoBQqpPQquRrSKVLMTtKkWwmlvQACBBbQxXROdDpPNrRJjfgGUqiRAcCatJqjUMbLeElKkwRRrdnwbiIBWNStTwqvhqQhxlSQqaAYIixkovbBbWnNcCkbFadfzMmZKkFfFBClgBXeExDEedsRcUuCrwWSXAaAMSpaAPQbLlBMROaKGBVCoknNaAKfZziKkIKGgtyYiJhznNOoXMUdDCcCMmEdzxgetTexJwWAryLTvqJjtTKAFgGSraANkCcGzfFZgQqqqdzZmrFMVMmNKCcRLlCcYycgjTfkgGZMuUarfwhXPpVvqxXUXxuDdcQGrydDYRWzZdNnTeopPOadWJjJvEeqNJTiZzIqYpLvVdEPpeaTKuUrMnbCcYAaZOTtozPmdLxsUuhHtTPUuejZeECchkTkjFByHhrpYhHAPpXwWpPnNxaTwdTYcNTdCcjTftyixNnKoOkMiQNYwgGtmNkVvMbfFBxXmeEMwKHPNviSsITnQCwJxkaytTKkKkbBYKAjjvVJJfaEZEUKHwBhdCbcCBsEhkKsAaxYQJZzUTdDSZCczjWKkbbWXxFAaQqWqLKcMPDdvbBIiAaCoHeOowqQqXiKBjJXvyYVcmTtVykcvVXxxmyYXcaXXxcOoCXxPpWwDjJhXxXuUOtoxXhxXHCcpAfFIiayYNmWeFGYzZxyJNoqQAzLOMpPmomNyKeuOQFaKwWDDddAaZzyvAhHiJpAXbCzZzdAuCceyOQRraXxnNUbVLloOvQqkVmXdQDgvVLlYGoOaATtTeCccCYLxIAoKdghRrHoNLPMmpZlkGQiSspqAWcHhgHRYetpCcPWimMIwvhrSGgsOIeKUiIBCoGhHgOtfPpJJoHhUlQoksoDIidCcoONIiLOIQqiXHtTNnKkTHcGkFfFUGgsCcvFfRZRtTrscCZpPyQAaLnbPpyXgyATzZzNELzZwFfMgqQqYzXGgxOgWymWOcLgGZzdDgQqUtMFSNEQDTvyFmtTbBsSybBYPCcypjpPYzZXMpPQCzIwuUtWisgJjRrTtXmtxSsYhHcrRWuzZUdDxXqRAardDQqrfPmVmtkbphwxmMHbBJpLlEAnWcFfyWwgSkvhHVZBbPMmuUpTBbtlTXaTUQeNyYyYbBnEZzaAqLlutAxJjHhtLYyJjjJzKvVsGYCwNazZevVPjhXWHPBKHhTrRfFMvMpwszZzZSWFRJVNnQqvjqeEQQwyYKkCyXTMrRjJxeEGWwwWSINnwTWiZcqmxyyYpPJPYzZpMfYzZVtdqyYensTrRtfmyYTuUuGlCVvowMYSswGoZyQGmWlenZzZtzZFfMmaKkPXxplLYmMGxYgGBNloOdDqYzSZSszVvzruUVSJoOjufJjKCCcYycgCGghtKkhxolnOSKOqLnNARrDdauOaAjjXzZxFTcTtbpPubBkEioRHVLlYyBbMyYmTEyrcChGlLCsSwaQlcCLPaAIWwqgKaALzlJjnLEelpPOGDkOaiXlAacfFCpPyoOgGEtgyFfoWwgGOGyYdqpwWPDxMvKaABuAqoYEUaDZcBxgGaPjIaGgVYkAfqoXxUEkYnMlZaOnjYXygfEwlHhLMPpnPOTorRxHdxACxEeMXCKYvMCwWxbQqkIxDdQWRrEhOcXxhHVpmCklQwKkfwBBGgwJMmstugkTtKGjqyEUueXSkKHePpzZScDHbTtWhkuUueAoOazVPpveAFakhHjJAKXVvjWuUcqNtiRSsrvVSsIFfVnphkWmKnMTWynqIAHZzhavVmXIYTFtbBJDbBtnCyTttDWtyPGgYyRYbfJKthHKHKkzJEpEeuUSXlDMpZzxXDPpSseEdyBNmRktaAAEeDLllWwPyQzZtjnQVjZzwnYkKyNDyYjJAUxXuPpEtNnDwGgfFgPpqChHBbQxFfHWFRAmrQqMmRzKaOoAFtJCcGCiIrQDdqknvmgGfRMDQQEQqeKnRsfakeEtTGgrgGRQVyYaAtlYRZKkzaoOfFjXEtTECDdlLcGXZDrRecCcumwWxZHjIJjTmMkFoywWYOQqOlLcvbgkAHxXPphormqRrsmUuaxbGLcbDAfBuUKwBVObRTtrBKXysoOOoZqQzLXUuHHVcQWswWQqDiIrWBmuJbBiIQjTPprIQuFLlJjCcnyYkKorqBbbcfFaqYyksUpPZzbBfFbxFfvVKlPyYpSQqeBSmYfFyjYIMNIdonfVbYKhLjJEOoMmlLhsSNCzUIKvxbcCBZKkzTXIdqMguUZwKSoONihXxXRahHNfaAaaxkyYVcVxsNnFNnYXxUeEuYyAJGdLiQjXxpkKBwWwOTiIoOMciegpParaQrUnxBbBDGhPpFWzryvVHKuhMDGgXHhdDOoPpQWkKTtwkdDVHicCIkCdHKzZdhVBbUuvniIyYOIAaWSGsRrTkPWcbBiIgHNnhbqRrjNiIGEMJtPpeiIXxZzuUwSIiAXxasWTsWuUgkqnmjJGJJCcOtTMkvVnHbXKbnMlBQaLwWAvEilLYvQqQqQkmcCRReEWscCorIxruURlLdeTFGAaBSsLAQxwWjNLIAnNJKPbBxXrRDnPuOohAAaUuaHUradeEDUZztTMrTQnNdkEYSNfFKfdbVvYTqiQfFFRWioDvVqQVsQWwxWqYrPpFPpopteBFyYXDJprpKnNfsaAStfFTUKiaVqQhRrSJKmkKPeRiDvVIpHHEVvrogbqQUubMeSRrqfSRrDWMlLfFBblLyXxGgUuYYyrRELlszLitZfFlLTRrMmZzwajLuUajGTZzUXLUfFvhvledlLDZQyUVaipjLxXlKmDIpCcxbQRMLZDGUusTqZeTCzhHRZDNnvQiIhkKMEcfFlLwNJHdHhyFrdDWYrDMYyfFdaOilDDdTScCxoIkBYYVvFfpPlPtbCcHYGWaXLvZznNKKHhkwoiLljtYMWepPTIUdDAZXxOoLlzauaXxwWVvNaAfbBBKkFfEkuLmgGFfzZMKkXsQUcVvDpOTTEqImOohhfcCdYyEZzAaIKUFfHNncTDdtMmtgGjkufSWHiWoJvVlLjdDODdTKXBoWwOfkWaoWqYyhsSLleFSsGgnjdsSaATwWYyprRNqFXhXxTvHhLlCNFbBsNYymMnSJjGGyYmXvJfJXRriOOVQSnEuNnGaUIiQrcDVvIwkgDdVASHfzyYxEyriPbXIFfzLfeHhHhVvYVngpPcCJjUjCfYfNAyYOFaiTcpdDuIipUueiIRLSILrutgrOyYEeJewWsSUutotTlNnvemMZNnogzZlBbaHhUutWSsyimgfdFljJbBqyIZttMVvoVsTJkGglYSFVkDBTIisArzZFxVwWvEjJlLXxmMuUgGlLdKkYyTgGtpPGyYsSWrQMGgsSufxwWllGucyrAaGGOxALorQkKCiLRrlIfFsgGtTSNKRwWDdtAaSREergdtTfFwcBfqhRGPWqnNKmlRFfSwmaggZhEzMmNHhzZwLcxXBbVvQehFfKHMCGATtqQZbBpUhHqQtDdmKYDvUqiwtTWIbBjduUNKdtTDkEKSPuAazZSJjspPGgSgwgoOGqaAQOmMxnNkKYyoOLZzwOBbfnNdnfqQMKkmEJjeRMAbesOSSsLWccCXEeGKJjJiOSkiTtGgVMDdNOoiiIGgxbZzGrHwZkAWwiIxqOutTvgefFMITxaSXzvVWwVnNBWlOcdUSsubBKkqidDwWcCCcCaAfbBQmMnoQqnHhgGNpPOjMhHVMIiFfJhReanNukdDXrRjJvgoTfMAXxaiJMtoOgSYpPWwpdDPBWipfXpEykKYeqJnkouoUJkSsehvLlbBRrLimEZkginNxXUpyUzeAJjIidyYWwqJamWHfsSUCOCcohHcqQRLZzGggGkWIEEtTeejoOxXUKkEeGZfpQqOfRmMGgrIOuJjbBUmMoJjudOhHlLgGzZoJPgtTGqSsQGgCJjclLfDGUUmMNOouKkUZyVaRrAnNfJMmjDIEeiTTSUDFfIiVyrJHhWwsbTtFcSAvMmIiVaBUuDdbOGtTfDdFSRAcqQMHVIibrRIyolLcCNFRgEloOOPnNpUnjJsSaAnvuUUuaNnIKtTgbHypPYoOXxhIEegGTsSJOZLcCZzlJijyxeMlLANnamvXhlPAapXsSxUuoOFFfYNDdnyuHxZzyYlLVJjtTpsCcSVaAtdwWAaOWLzZRIfFmjPSmVvMSGealImAeWmMeEMSrrWwFfwbHdnJjZaqQAxXWwSXfFxOoTMWwsKkdoMbVeiIiqQWwkRraGocsyeENNQdEeTRrtrcQqUuLPpmMxpdoApOoZzPaOzZUugXxzZGaMVoOKbByneHmzWOogGNHTwXxWrRtxuUhPpbpqQPfYiOorAadDRaebvzozZytKkjKNXcHhEUFxMnZoMmuyYXuAadccYPANEyYenHQqFqQjJxXfCkgGGIikKaAnNmOZzJdClCEkKjMKvkaqbZUQWRBPOfbUuUqtTRIiwrOqgkUutTKjJkKQqqSsiLmIirlAtYyLlJlxXHuKlLBrJjPLlAxdendDdDNEfFeczZNNWzZwiyjPHhpYyYytTWwSyYNnaAYyaAVIiwAcbrbXDdGgjUuIicPpCjJWwOfOiILMYAtFmMPptRYLIvwWElnLlapblLuWwUGErbsSfaswTtKRrGgmfaAxXWwMPpzwLlFfBbzZjxpcChiIiqCSshpcCAadBbXHhYTtyoeDPlcHhCqROPzZdvBbXvVAFAyYcZxgWwTbZzdDhCoOnfFYpYybBlvOTQqQqgUvGgbBjJEeMStmecCchHgtTcGeElLgGfEekbLuUlVgGIivDpxGakKgXxwDdtcTrRoKkevGaAMaPSRrsOofzWzTtHgCcpGDcuUxDzgGtdPLlpRSuUVlSKksFhHNnjJdgGDRiAiPtDdpUZdfDdNnfPVJjhHmtipYjReEyYsSrbBJsSyoOWwuvwWdkNnjDvSsZJjXxIfXzZALqOoKCRrTtGgSskKqLlQcCtTovVvVrBkKHGGwWlmKuUBbMmUxXIZXxBbzQPJjsSAsSgGaQoTtOIJwHbBtThjGgWwiAanTvZznVBbsyYeESJMzVvZUDxrlwWLBQqbWuwWRLlRFRQqFfHhaArkKgeEnBSRmXHhQqxMiWwqTJjAXOgExXaGgfFAHhYMyJeOIUdffNPSspOokoNiSmMJaAQdDeEGKkCcNoOkKKkZzLlslXxKkzhsSvmMMIIzTttTgEJwEkLtpPbVvFfnUyYulWMFfoLlmgGCxAvkEedSkKsrRSgIexXLRryKkYTjQxXwWROoitXXjQzZqJxAaALBFnNfSsIDdiblrRaQqleELFUuvwWVfjiNnIEmMUJmXsStzUPtTNiIiIxgWwIYiqQNnCIaKnlRcCNGonxXsSHhmMvSnNsnsxXSNAjrRlAoXFfTiIMaDuUdJdLlDbBeleELVviIDoNrjJRTTBbzZaWrRweuJGhvVzfHBbwWaAfouUtDUnNxlLDQqKqoOQJjiXeigWaGVuUviIhUZfFzWTtWIiyijfFJMgQqxmADVawnxXPpXxnvVNNXeeDhGgcCNnYyBbyltTXxLIBbcCZOoUuSsYEeHhAMQqGYyeYyfJTSheiIicEJjOIisSYyoegpMmnteLlzXKkceEWuaAUeEoOwCYlLHCEUqQOcCYxrRnRqNnRrfERStTsRoOPprgGiBFJjrDfksqeEQshdDymoOgHhGGnBbfQiwgtEPlUuJyBbuUOxXTtaPQODdooxXiRrSsPfdDdrMfZKcAabhswEeYObBuNTtxhjRKmMkrhHujJGfScIixXCsRlLEtTYGjJkHwWJaAyKliIgjMDsSOJjAlLPPwWSUuZuCpPplLoVvWPpGhHgGgGOftUuGgIiMXxrehyuRrmMsSgaZzUbJrYyRawlrAQqMmJsSEgGeJhwPtTpWFLlfuUtTXUuxvgGBbQqpmMtUvVdsSbsbIiIimJtpWQYMmTMXeEYMdDmHEICccCcIiRdjnNJnNfFHDvrIioqQAaVvOFMaACclfwWqkKBbfdiMAptTplLVvnkAhbBHaHFqeEYnNgZFfyakGCDhHjtRrTTtEecjkKVBbvnkLZzlaAUULBblucIeSsIRSsaqWFZMWwFIikKjJMwmMpPWYyCcNnLlNuURrjJLfDdRFaMQqjlLtXxmMdEeDuWDMiHfFhaAiIWtbWwEDdPYwLSslEfFeZzOWwoWzZvVyNzZnvVXhxXNbqHpSlHpXJtsSVlTWAawGgoOWMwkfkcTtdTdDpPGZzggGvMIGgYyGxVBUajJtwWMmWwTtKkbBwIiCBRvLloEzLRUuMGBbvqQVhrhHAaRrSRrnNyYsRrpPfliILxXmMdTFIEXxOmhHMdDYlWdDrOoQqRqjJDDyYJkKRnXOoxnNesSCfPfFmCZBsJVmrRCiIyYPpcSNewdLlqJVvpoOhZzZsSiEomMOXRhHKXUVmMdqFfjAjFmdKfKEekrMmKkgGVKqPpQBiItAaLpJjxXPKvVkeeVbjhbBbzhHZBdDvmVjJFfvEeTxeBmMmMbxXEnLgcHRTaSscEazZAKyylLLMhjJHmlNnARFaDdkKCwzYyIiyYgIWwTkKtRrTMCcmLtMmnMVNZYSfFyYslLNzZfdAaDuFqlFmWgGtVvkKWWoBXxkKjLlcBbLcuSsTttyYtTKhXMmLlVlLSsvxSYyRWHhwfCcjaAuUewuTtrRNnTtOomMKDpTZzGgJixXIjOXxEeoBVvbvjJCfAfFZIkdYpqQTrbzYljQjMQqsSLldDdjAipPZzVIFfsSAuxFiULmMluRhEeQDdgGOMmHhokxGhHBnNyYOjJDJjKkatyYGSsKeSxnNXJjGyPqMgnNjZzwOwEeYlLOUuujhKkbBHAasETeFfRGgDdYXflmnNMdoOdpSTnkeGgNXPmMaAiIyYpzZEeTzmQgaoOoIyYieBbEsRDTtiAWTgGChPpmMsSDJjdCgGaxSLlQXxBEwrRWozBbRrwGnbEebBgRIkmFkKfMMUuWwZzelLZRrXxIZzCcVwuUAaJBqQNzDxtTXeErcoqQqQwfdqTKwWzbziSrRIfHWwnMVUiIigxfbBkKZzkWwzncokKSBBbOobEfYybByogEyzyJjYRIjJcCZdknNOwWlLjJGlpvfiRxrpqcCPpkzqoEMthHFMxvbXKPpkOoBuUeElUtYnNnfSsaAWwkhHEiQRrCbBeETXcfFoqQUucEewWiIiSsPQFoOfQqDdTMmeEYgdDWfnivVdDkxAaNMmoOdDSNnOoNnyYfYJVvGgIiXzZEeuUACcxXoOJIfFRjJrjlSsLJSVZznEKQqkKkkKZQXxqgKYFMFZCczRrYlLzPpZydmFydDYfgGMmMTtDpXMpdDaAdDBeEeHDdtrbrqIiUphSnCcGrRiSQVveDdsfATtftiIAcOOcpLlPDnrShsPpcCSgGrReEKQXSsUuZKkxXHuytjPeCxSsWwXFfFpCcZzPuUcCfBFfRrjJObXMacOoWwOcgUYaATtyIwtTDdEeDcqqQIcCFaAftQdDqNQQZZRrcJoAaOjCbsSwNjqXxQpTtPJntUPwCcBbcCwNtOoTOohzuKPlVqQvhHsSWGHhjJntTdJjdUMqoRrOBUbhHBdDupPBAjJDXSZzUpoOPhHTtsCajLlMChYyjSsXQqkKvsSdDVrzrRDdZhHwYyuWNLdDxpPXBIvViiiIBlSHUGgUQquyVnFEqJjFrRfsSoOPPdMmnNDKtVvsSIitJKkqbXxfEzZebZcCcCGgCcYdjPpUlXUiTBbntBXhkKQaAfFGreFigGIfyafOobzZiZWMgXIaArraOsSwWmMSsBboTAPpEeiIhHaHVmMklPsSUberRfegRdNnDGgGgYUupAaUuMtIiljSSEesEeluUKkxuUuHhUITdaAcCtaAaeDdyYxKHxXFlLjlkKVorUuROmWZGKksSVvgHhFfrRcqQCBXcCewWufVNnGsbBhNOoHhtNAaQqyYaAnXmMxbsjJSBzZwWFXxfBbZDdCcpPnNZNqFbCFyuJjUYAaoPpJjaAofVaArrRRzZQHhqvpPdDaAuUOWHhEewCcTtxytiInNTKerREewSsmMdmYbxXBTWMmwxxXXNDhHBbLgciUBbqwPwlLlfAWwOoadRPzRhPkVDxXdczJkdDQqiIslsSLwkKWoOgLMLMSsYyzPpwhHlzZeEGgfXQExXesSUCGgTtKhMMkKhlLHvOcLlCotTfFZdRrVIivcCWtTkKrgjTjaVdGSOosgXUFeEiEevVIDdTKMmiVdDvMdkuUNndDZPqFrRDNYyncCKQqnLlePlrRANWLDmMkKfDdYyBbqDdLyYSsnNJjJjNkKvVwMqSsDdJHFORJjrvNgGuUPZCcQyzzzZZBTtKkbKKkxKWwPpVvkRrTcxiIIyYietZokPzMmjrTXhCYdDTtycDiLYxXaTwWtmvaDJTnDNNVhHNnnzxXlUujJkbNnBJlfFQlZzzZjMmJLbhGwWghQOolmfFMeLLlJGOoGLSvVHikKPSDdspmDPbBXwIifDVmmInTTEenTNnzLlEoOMIhHJRaRrAyWwyYGweEVvahHAWEcEioOnyVvKRsaACLlBIciUukKwiIqLRrRrlQPhHUzZlLuwKktTWufFpriIyYyYrRRiFfTeEtiXkHhVvSKlJQqvRUurVMnNjsoRrOxXoIFfXaAxiJCOojIWwhWwRsEeqQmMdBbXxDSLGSJjpfvVFPXxhAfeEWuUCcCXOooFfAxXacUumMCAaiFVcOoFfuAIMvXjUyYrRkKkSqRBbmJTykKSgzMmNnSUuFfsZSsUUzZsaMXxhHmrTuUtRUliUuZTtfxiIXFstTrRPiIQaXfjcazZLdDZzEeFppdtTaAqFfnSjwWYyWwbBJshHqYQqhHRruubBpFGgfPIibBpXiaAIpOIQvYyJbMtAafPXYnzZHZQqkYZzZkgGDdDfFvpdDgGhtMmYybvzzaAzHcrRCMUqGgUuBrRsSjJesaMVtxXIiOTfKOPpjdDBaMmPpTGaAikCEEWwekfwWODOFpPcTWDSdxXpPxkKkqhHPhHbKQhHSWHhZDKzZofkeGgMFkKFfVatKlYNBECcTtePaAYywBbUuWPpQMSsmFfqUurlUwQqWCGgcuKGpaAhHzvuzbwPpqQsPpBbLlENnrUcCgBGgIpWsgGrmMRLNNnnTDdFZEBgyTkKteEUudztXLlYyuUxBJxXjdwWJjDOANGYqQyQJpPUbBFfkgGyYQqrWwSsiFfQqAUBwWbqQhHXxuJjYzZLHKkhKFfriISPOoHlrRLeErgCcGCLDAadkKfvVRijJUukuUMuvxdDXHJvHeEOZoOzjaAJokdPuREVvYyvVUmAjYEhcCtWCcPhzvVCDdDfkfxKtWeEwTjJSvvKzZUukIioOZJjYdIUuvViVxXvBuUEevVIyiIWkKwVnIfOoMmFilLNnNzjJZTtPIjdIBXwWSGgHrMdDtTbBmneEZOvraheEiQSsRrwYytTtTWtENnDdqGQCcBbjJRrvpdlLOIigsSzXYIHMXxwYbaAXxkIlwWLTtNZzXoOmMTrRRujjxXonNfWwjJJjTTFfDdyYQTkKAkRdChwKaXxZzAuUKkkWzZIiADdaVXIifasSFIhHKksSisSWwLlxXRmMNnwxXZzpCBbrRAfSbaAwdDzZMRuFcfFhWFfwZzuUBbHIqQXJjOexNqQFvnnNjZVGgygGYxXJlbBruURPpYsKvvVczZCnLwLlWUGSpPpPneENyMgBsSbUJQeEIQiIivSAqQuUaAfoOFFfIKkigGHhYQlAaFCcUupIiogGORKzYyZkTFfTttpKlLPWwWuUbJtBtGQCyYzaAVmJmdMmCiRrIEHFfheWGwWvBpVzZKMmTKNDcCmMdzZUoOMmUcCueQqlNmxCDzXxaqQYyASGTtEyYLXMmxJTfFtsSZwfFnQqbBHhVvRKKBBzMoOdMHGgEgGgiNcWoKkOwivGTtJjDVuUNnopWZDpPduUWpTsSMQqFdIixyYZzIkPlutoQqlpSsPUuqXxnOoQyKkYqGqQgcCpyYURIiqQreEJjSsocRVYpbBbMPqexXEVEHfFlUciZzIssyHhyyWZfFTaoyyIipgkBbKpXdDmkjJvIiFfKkSsVKiIMSsnNAZzZTtzazOofFDZznNOWwwWTlLnNtoEeyWwlLtDoOFRqnuUGEegIqQninNoNngLZzVvxbSsZzBsSplgjjJJvVyOoVsSsFEHowbBWtTSsNnGCbbRTtzfFTtZrRrBTRCezFksSzZwWpFfdDKsSkcCPdGgDKXxfkuUPjoUuQIXbBPpZLMmJWwculAaLhmMdGWwQqgrEeknAafzcgtUuOYqMfFmKkQMmzMpPwCcMGpPnNnpBHVviIBbwmpPSyLNnJjluEqGwWgQYKkAauUSsaAoyZxHhkYyIuUDdxXiKogTwQqWGgzyYlLZfFwKkWSsFfdyLlgGsmKoODdxAlKyCcuUYkRrfFOiKirRIqQazfUSaDdXrRxvVNAanAVNYyZcYSsfFiIJEHhedSRGgrsfOoJufmLOoOaAOIiQIiFYyAabdDsZlLQRQQqqoPpOrcFHCchyGgGdLlwtzXxhHIoOfETtpPiIyaAsSuGQogrREeiIiTtItWwsfdDbteEmMcLWwGbFfshJfRrFmMmdzZsSAJeEjsSPkotEejMjvDUudDKkoxXXVvVlBbxpPXZiVtoPpOCcTSslLKkBCxXcJpPjMZzIjJeEEeSsgGhHMFfmMAaWwmuezZYyELlEeHzCIIDddDHENneTyvVPjWCIooWwQqUTtupPlLrvFXxfEehvVWpwLNnldDBuIiqiICiEeYyRroOIlLcpDuUuGOoATXuULRFpBmMbezSsTEjJsjJNTtcCnTtIEWTtwLVPpGgvPKPppPhEpyYrIixaAmruURJGgjJCckbBMDcyVvYCiIhHAMmaJDlLbBggnNlLCcGoOvVNYsxEeIjbWwsZzQTGgPOoSBbspmwhcaAtXKizWvVwMmfFiyYInNMjltTBvbByYqQqzGggGtTfxgGXfpfItTiccCuOoYMLYOUMmFpPaMqyeEagPzZfFsAWCSiXnmMMSUuCjGgUiFfFtpJcqQGYTtQrklLEGEegXxeQqEeKbBRDWwrujJhHBUIvDdiFfIJjACnLlPppIRrgGqqdDByYoOYGnxeoOEXhyYTQfFUdDOoIkCDdzdHGCQtTgGyYUFfraARbzZgGBuqQqcjMGmGggGMXxYdQOodsvSRrqQVlMmBNndfFDrjbceSslUuaAGSsiIgpvnJTtxXxMmJjXxIVMmuMBgvCaPpIsSqQiAboVvOjJMIyTRqDRkUuPrdgGDiIIRmMrTDdtvbFfAZAaRAahHSAVpPsAamMZzSppUuKozwWRfiYXEexxXqQFfyKksBRjJBTLloaAhqFZzNuFjwKkkKvVIiFIiRewWqYwNnWywWIyYlLPHTGhHgNnOhfFHQLkHTthKtvnVNKrRksSnUvVWXxwJjjfFJbSsAViIPXxmMpiAgAcClmHhRGyDsMFjDdEAEeFYMUuEvmZDdyMoizGgyaFfFfDnAKkaYhUuQqHvQCcqyLlYyYvVnNKYyvnlIitVvkRNfFnwSMFzZQBEsMmEeDdYyYyKpPkpPSecDLldlLXTtxMAGgFJjXxcCVvfDdhXxYcCkKhSsHWbsIrbBSsnAfFvVunjJeSsEFinNnOomyYkMxXmKMFciIhHCURUwAaWmMuUuzyRrbBYOoNmMfIiEmMVVvLAlQyYbBqiIoOXCnAhHlCcegcCLNlEDdhHLEiNjJgjJTfPpFAacbqDuHhUrbmHhMHmWXLlxNngGGgQRdDnAaNZIQxXAaAagSNnnNsFlLuUbHWgkUEeIiuIRPprIiiVQqXxvKxlLzBKkoWwaRhhynNYfiRRjwdDeRrrAWKkwaHCchRPpopPvEIHUQjJquheYsIkuUgUusSxEeXWwnKkKbBkSsDdRDYJjeETtyGgIidIiEeqrCmMcTxsSsSVtxMmXVvEXvuUVHCcuXZobjMLlnNCMEemPYPwWpyhXxXsPpSmxzxoOPZzDAajJFebBbJGgjfFUGghHquUAyaAYllgSsMyGgTkKkFfKIbnNijHgGzZdDrDdkmJeEjhHeVjfFLOolcpptJwHjHzSshtcKkCCSohHPpOULlefiIFieLxAYyFkKJjfadDNnoOXNMmCcjZAazJwrpPVtTSSsGSMmsSDdvhbjFfShHbPpBZzXxFuYyUfhSSpPzZWKkiIwnNUujHhqbBQrPrRrGgZzRpRHFFLlrkSlmezLlsSyvyYVFfaLlANLAalauYxlLNnXfxXRjrkKxXOgwXlLEkkKdDUfFXRrkHnDnIeEWwSJIqQhmvsSiIVxXgGkKbnNSsgGBYyHhnXrkVkHhyWwKLltYOydMmDEeKkIAaoNsSnZzDdXgGsSaArjxFfVLlDdwlfEbBXHhLlFfxetYHhqiIWJivpFaAOgGEeiEeIoUcOfMkWwIrnXSPpurRnNhHWwUBbeEDvYMRDdebiAaIKwDwzDdEeqXFEZzewWuqAaZAKkaWrGgRuJjRriEePpjJFnNvbBIiRrSyYLCcrRTtZzvOtAaAKoOxznKkhWhaFfgcafxMmDaqsTtKkSyYmMIhHbVvJjOwWoFvRrVvbTtBQqrOuUoRwWazZeveEbBVVvEAVnNaAvwHhoenWwcCOoCssSScXdjRuUrMmwWJDrtTLtTSsuUpIiXrRBRKktTrkooOjGrRgLvVxlLgiIGGgsVvJjxfxuUXCwpPWQqQXvEWAIvCcggFfmYnNimMsEwWuPpnNQHAaRCcJjNPpnxXZzIiWwvGBbNBXxbqQcCyJjNiIEyWwqQZzOopcCAajJPgxXsICcMmaAdpPDjJCDdGqQgoODBcJjCbRoKkOTrNnZzRRWwrkYfGOqsAoLlcCEeERUufFudDaAUKaAqyvVcCEeBrRfbptimMIJqPDOoRrdmMGgDdJjfFfOZztcGgCuUTWwGpaHTtRdQqxmeEMOpjSsEypPIDdqmTohHCYlpPTZzAPpfFlLhguwsSSLgLlGNkDdXCszZScwWvfFSsVBbntZzCVvCcvVmuUMIiaADdSxoDyYnLSsMmRNDhHpJjiHXsStTmaAMVvKkRKRiIxkKlLlAfFNpoLloOhHgGbBOsCgGrRzvxjLAyJjDtdrrhulLULtAaYywWFYyfZWwzTpPAnkLlKNvBbVwWRyZaAqQzYrhVuCSXxLwBnNezZWwbgVvrRPpqQGBNnlLdPpvVLzjJZzDdHheENJjrHhAgCcGzZElLeiIzZBiISsbKkgGBDdDdGgEoOmfMmgNnGQoDdUkKbWwBzZkKfFuGeEMjzZJFcoOLlDhHdAaKLlMqQUHKySsdsVvwWNnKdBbDdrLSXExChmMHlTtLlbTtBPCRrrRnhUhHaUuAlLRrUVvyAFXxlwWZRrLpTtPTtZYynvqNnJjsHhKkOorRWYTtRrTGuUcyIiYmuzSBDkKRrCckmxMAaXxoOQZzsSSsqmUuAaLlmMyYXFUuPpYzOEeGgopFhYgGeEeEpZOfFoLuUPWtTTtYcJjJmtFZuUKkMmKVQVlHXAaxXxRqhJHdDSsSiIpqIiUtVvTuvVhHUiIvNRpGgFRruSfFIWmDdbBfFMrRrrREeRSsWwnIiNahHfFCEeUutcODdAeEUutNnSBbOoTqQNDDNnzFffFnxXKiIPCMmXqQJjRrrRZzIiJvnkKdDpBIfFHiFWwDdNUyYurgJjAbfFLlxXBbBEwWrRbDdjJAXLlxanNAuUgtLlTCeEPpoaCcmHhqQMypEZSszGiNnAaPpqQpsRrTtLldDSJjoOfRrFXeFELlqVvfCfFdDsSWwfWFyLcsJjSaAcNLlrRhCZsSzjrRDUTthZMkXxKmrRzQqNLlPKJjkbYEeyvuUShHvVWSDyLlElLeYdnPnRFfQeEbBqqQmnNhQnNivBUuSsbMZzmhoOHrvOohAUupIiIhHyVFfoOwWLEdDzZQEerttyrRYQqUAauRclmaAIkOoKcKPjJppPpPTtbBiIutTuUAKkhHXxqkKQToBUubpPpaAIiZZdjJyYDjupPVvfFzZEeUQqdICKkcbevVEBLluXxBbUvmCjJjcCQqPSsqVvwWdDhzZROoXKkjBbJCkLlKYwWAappYyWyYbkKjhwWwWiIpyYTahfFHiIAtEeRrSYysQqWADdaMmwTOoxXkKYyXAaiuUIibkKTlLtxuCzEeWwmMZIqiPtTUWwupieEyYuUIPDdpKkIQszZpWZzwPSSYyVoXjJxFwjcCpfFksCcSjOoJVOHzZhFfoexXEvgGgNnFsSUJjJOfYyTQyVvVvfFBjJWxSBbCDmMdGvcCyYNnpaACcEbpEeTVbBBDdJPoRUuqTtQmMXcfFCxPpEyfrRRrLeyYElbBENrRneVvhHSkKsPcvyEmMePkYQqatikLlIAaiUhIDKYSsyKWwkQsSqYlLyYjcCqUFfnSKmbtTJjSEkfaASJJVvNneEjsSwWEeUQqtThHRrKDylvVLYuUuGNtmvnDdFfJjNCcEewWpPGJuUZzjjkqKkOovVHhQLSslqQXWUsSeiKkkKWwdPphpPHsvVuUFpPBbfWwfxPOoJYygGAaIiyYjlLpcdiWXjKTtkKGgZzeENnlLDjPpLIGbmMqQCYycBgmMzPbbqcCeiIyOosSOyvfFkKVImMmKkzdDPpZTyBxTtUuyMmYyYzZoOrUuciQkKqaPpYTtWVfetTEWwgeEwWGuXxbBocCAaOUFAavwvVpPwQtTqFLlfrRbaABPiIUuDjJahYyEejfFKkJojyXLvbBMmVioOITtUuYzZyluUmCccaAJKkIOrKGyBtHhTTIiXOoxPWeExtfFTTtyfFGgYyiIeEYXNnzZCuGIHhhHEeEBbKtOPrROopqorROZzQAiIKkSLrRIwWXxaAgPzZhpQqOUuoMSSKkZzssFUufYyVdDTtJQqrCWwifFSsnNWwIDdJTRrEetHhWblLBwNnPpjruVGPfFpMQjJPgYyIMmURrZyYQqzuiILlSgGalLCgFfGaAjgGLlVxXJYyzDhHdtTuUvJqQKkfFKkYVvyCGgkORrkeEmVvMKclQqLpPCEvKkoOVeDpHvVXxhgUuyYyYqkKaZQbBqzwmMqwWQBbzZDdNnVvexRrBRrlOcCYnNyorRSjEerpJJjjgucHbBNnhCUGOoFXxjJcoDzZpamRrMAtpPTZzvFgGfPptTGgrRvCaAaAcqHvbEVzZRrnhjdDJHLlNQqJjjRSqQKkmMuUmsSMcCqQsLBJKkOVvbGgSsqPxUuXaApHxXYyhEbBaXNnxAZzshHTecGgPRrpPOiSsILTtkRBblLrDTkznbBbBNLLllWZzwFfvVDdZEeKBbTtNMmIEeuTCcDPAapoOGgdFbUFfuBPSspfiCxGTUuFBbvqQKJVwNnWUuEeAMCcmOoEErWkcCKQqKwjJMmMmYpPyWEekDUuiRrkKiQqYbByHyoOmOwWTtoBFfhBbHeyYvVOLeFKkhHrRfuUQqEbiIBZSszWFfYTLUulFXxfFfKkyYIuMmoOcXiHhIyIiYiyYkbBzZKdDlLPIGgipJVVvivjwKkWRrpZrcQqdmqQMqwlLtUbrcVvCMmyckRriIdDfFjJlLVLlvExXgGoOZiIOAaiooOOywWfoOyeEwWlLMmYyYeoOjgGrkrSsRvTmMtWpGFLlJRubXxBUnNYRrSsyuGHhOogvMPPppmMgGWwgWwCSBbBEaEeAebZzWwAaBzidpPppPbBnNSslXxyYJYkKLlZWwzpxXPCHLJjlhoOOoeEMmpPBboZzlLbBFlLiIYyHhbBfzZsSZzUWxXwuwWnNTtxVvZWlLdDwGgSsUwvVCcGglUuLtTemmFqQfdcCDRrIQFRAvmMVPpvuPprRhEcCeHhhznGgWMvaAVHhjNneaAEMsSDdpPmSzUMmrmMkgGKPqQpxfbBvQqZfFzQFfwWvVlLDqQdKtTbaqcCSWCzWpNKkDDaDnqNnNfCcFSsnJfFsSVvmMZZzoFfGGNnLlBctTCJJhHhKNnkIxXiRVabBFfyrRyYYQaATtNGgTtnHhqslGgTtLlcCsWwSyUuYzZSuUfjJTiItNnAaWwHhmHhOFqQZGfFgHhogGmLVsSvlMcCxXRoovygEerRIjJluUBbyYWEVvyzXxlPpNxUuHhkjlLBoLljLjyYUvujPpLlWnNwgGMnNmABtTaAbGghNTTUDdriVdXxhHDhHvVrDUsxZzXSxQqOoXutTsQEeqOoZMmVvcWAamQqCcPoYEiLlBbIsirOoRPnNpGiIDdQqguUGwWgIUkKugrQezZEPpaAHBClLcbfFJxXtjJOSsweEyYUrDfFfFyzZYdPpRRrPpRrlJjLaIxjVvJXdDnNzZlLRoOXxrCcjJCrRAaGZKkzFryYwWRMXxmvhHVaApruUFfkyYKdwWDrRUuQqBbloOLRmVPpyEjsUuUuOIRGzZgrRsSrPkzNKoOkCcEiIeFlLxxXWbGGaAggXiIxaAUufjRruUuSsrdDLlRmMLlsrPpRuJCiGgGghSsHMmRRrrIPpQqQquXoOyNJjnLlNnZzaAVvrvrYPfFpOoFfyXHDWwdYwEpdDPeWWpPXQqfvVFjTtJbBoZTjJtCczOXjPpnNCUuhdDKkfFdOoEYycfiImkKlCcEeeKWcCwkEhHCZzXxccCQjJPPCmIilLMDxxXxXkKCCchGUJjuaAIiRrVvAZzapSsPuUzqQMmhzZHXnNdHhDxEeeqBhHAavVtDdBbTzZifHhxXxHjJhsjJdLGgldDDJjdedDrRqQuUhHUuCcPpWwzZjqGulLUrRvGggGSsVBvxYyDdeEcCXAaVDdHcqKkQiImMNnChdDvVvRrmMaAwICMmcVviufKHhukKiIeDVYFfiIzZUoOuXhHDNFRYyHlLRrPNPVvpXxRsUucCKcCGgtTkKNnmMQNrRnNXxnwwTtWCcWIihaAlLKkPppMmtfrLlkCcKLqGgCxJcCQMKkmDMmdLDUudxqTZzknLlJZzNnjXXcCNXNnzaWXFfxddaAQqbWwVvBwwJGgjOoWzmMlLtHtWaAwThTHvVxeEXyYypPJqGMmkKgNnQxXQqIJKRmRNnQaVvAqrWYpoOPykFuUtPpSslLfJTtjKkYcBOYyLnHhBbhiHhIHlmMLenNGBbVqBfFbQdDvPFXBbLUulYeEKVvYfFyxEljJLeXgGQqkpPJiIWwcUPxXEDdGgtTKkuNnqQfgGAafFFbBUenoODdidDLlOpzZPEedDqQZsSthvVGbBgXMmDdJQqjUuKDdvVkAftTVXxKkSZzqQpPsnNfGgjIiJDdmCcLfTtDdFlhVvALAFfvVqIiSCXzCcZZEezBNnbjJIivGjnNJDMXxcCfsPpEeSIuUbpPBiFmFtTfYAkKgaAGRoNgGnQqjMmoOJTtkKJjZfOYHhMmybXxmMMmFXMmiIGgcCxPaAphnNHcLTtloOQqCmMLlOoxGonNoRZnNzJjhHiIrVvBbNnjcCJjSCcsEeOBBtaiIATPpQpPGgqboOEesOrzZpEWwehHvcbBCuvjJqQoXxHhrkKwWQqncCNoOPKlLNfEhhHHSscCegRIyYJjOoirkiLlmMIYyjJOBnNUueEtTbocCFMmwWhmMeEeMmhPpEDhcaACyYxlLXUuLXLlnNxIiANgGnfFaCaBbwWUSMpHhPcCISpZzPsumMjJtTUqdpPDQFfwGhHoOroOJCVZyYzkaATuBbFfUsStEetkKJgGJjkKngGRrpTtKkKFNnRvVAaeEejJtsSfXxFxkKKkUIixXwiANnauUMmIiJBnNsSbPMmDdpjIyYKiIktTHhfFzZsVJaAgGjWwUuvSmMdzZaReUpPUuDduLlSPpSXxsSfFdDoOhBEvVeNLljhsnxtTXOItTwWZfkcCwzZbCWDAaAfFjFTtfJMxJANnmMaQgKkTtMmGAakWwAlLaPFpPJjfeEpKUulvVLbBKvVrqQRvAaQxXRhHrgGqSwWsAACcDdaSbIicCLVvljnNJLfLlstTLeEMmIAaBfFsKkSMmNnHhFOoHhkKLlfDdrRyYptgqQGTuUiIPhRrHJkKDddzZFAaTVfFYyqQLlvdDIMmjTtJaKkAiuaAywWYULNnYybsZzHhaArhHOZzoRSVviIKpPkPpuUXJjjyYDTtdXxJmMSvuUSdDsdBbDVuSsUKvVxNncCwzBbHfFgGGgotTOGghFfoDdyrpxXsSntThHNIiBaAjtTTtSsFLloinNfFVvIimPpMBbnNIJjOgAaiImsSOEXamMAxRQqAarePZzmMpIiooOZznkAWwacbAaeUuspXxIiPjrlfgGFcTlnNLtYywqVZtTzvtIiSsThhMmtaATHYMmYyyUwWuHhiIilLnNOoQKkqwdDRrRJjrkKYhHyNBSEesbBbOiIwWloGgOoxXGgOtRZzIHNqsSQnhPpObBogGZziUuIeSsFfyYEgGEeiRrnaAXxqQKkNXxTtBbyWKkdmMJIAaImTtEiIeMcJDdoOvxXnNVdUuPcCpuUjPxXpJjXxkcCKdDRrDbBjbBJdYNnyQqVvMLlmJVDdEeLFpuUbBPfOojUuJlvvVxXzZFfkQgTtGfYyFQZTtwWOoxfFqQXiIqjuUJeNntTCcJjqQlLAaSOFflLGTtDtTdDdKeEpJCcjbBxVvKLlGTtgHhBbiUuWYyhHwVvXfFxmGgMpPXaAxBbeEMmSRZjJYylBbwWLJjzbeqQVvXhHxzRcCrsShLwWVvPpWIiwzZUsSHhumMGgNnfeEeBbxkqQrRrsSRPpwwWWMmsSYyKXxTnILlrtTRbFfzyYNeEGSfFHhiIsztnYyeEgGQqmMrRsSYyYmMAaIiXxygzZzZUurRGuUtmMqzZWAqqQWkIiKAanNSnNxXgGgmMiPUupIGNnWguUGmMuUwQqsrrcCReNncCcuXxUQqCVvERulVBOoWwbvLiIleEIHheEeEiIztTEenKLlkicCvVIURrugZzGiKkAaIsSCcFjJtzZiIGqQwyYWgyYCJjptTNBbnAYuUypoXIixLuUlMcCNHVUuWwAaqfFfFPTtvVvTPyYpjSsJhHrCcvVhHAoOauyYTtSsxXqFfdDwPpgGWwuUKkPoOnNpkDdsSYqQLlEeyKliOohXsSxFHEQqxXeBjJYvVuWwUcCKeEgGkNnEGgePpBwmMJjDnOoNKKkkFLOooJjtTTYeEesSENnjlLMhnNAaHEeeEQJwWhcCBbHDdtdVYTtyMrZKkQqzNnehHrROokKEwWbCchHWKkwtTBWoqQcCmMjURruCTWFzmMZeuuOorSJjsRUcCsSOTtoqGgQmMesSEoOUEfBbDdrfGmMgOoKkypPDdYNLlnFTKkvVtStIjJlxQqzZXzNnZBbarSgGsMmRdEeRrRrzZFfKaKmIiMvVRJjrhyYPpsSwFfLNTtVApPaFzZfyYvNdlZfFzLJiIeSsRJOBbpPrrRSsZzRbXPpNTNcCRrXxngGHhuUtLnZzLlCIifBqeIJjtoOcmMyYVvuUaRrTtRAZzaOCcuUooOZzhbBVSEehHsAasSyYPTtpvKkMypPYbiIREereEBmGkKgGxXuUgXBnNbCcCcqXxQxGYygYjFfoOJEeXvVxynNwWSeEEewWAGLsShHlgsSaqQNnVvsHhWZzZzwEeKeNgGUSEhHnNelRaaouCcUAazZWwOoaAOKkfFAqhHPpQCcFfFSsOofZwWzHHhDdhiIIoOHhxXLlhwWxRrohkKhHJjaAoOoqQqQOmMRrWzoeHhlLEnNVvaIiAsSFfzZzZzVOrRQqVcCvxPpuUnNXuUUrOZpPXHhxJjsmMSEPlLjEeYymmMXEeIfFrlLRngGgGmpPMWTtwYHhtjYyHhJkKPvoRXxIiSsrEeLEeryYRmMrzfFZgoWwOWwzZGdDWJjwDZzfFpMYyAajTtJKhHDlLdkcCpxclLCKAaLdDTtKkljqQZztMmZzTKkJjUtTnNSsuLlJyYjiIZzLUoOucgGCbqQfFmMAXvVqVbaABvdsSftTXxFsSEeOqAaQEeoEtTEvxXyYtqiIfgHXxhMuUkXJjGgxWwKaAsSmZDyzZtTqQrRHgGhmVvdDMbnNBFfAaFfVvEebBtTCogGjJArROwWsiIBbvhHVvVnNSfFzZlLMSkKeRrUJjuvVfoOWwGgFnNKTtTaAtkhHEsAaqQZjJzoOWPpcCfFWwWHheEwnNaARDXxdrEwsSdDnkKomMeEQqOmMGgNaqQAdDQqaVvAOoWKWrRwSnNQqqQQqbnqQvVkKCrRJdDhyYTtZzTqQhzNBbpUuPAbqGSsgQvVmVwdhvVyAIeEilLahmMHCcNiasQqBlLOovVuUbJvDdBgIijJMmTtzZuXrRMmxUGkxXAGgJjdDggtgsGgOohHCcSsSvVaMSsAEeuUaAamCcuTwWGaAgjbBWkKUuwJqFfhlLHhTTttWwHFdDTtgGfFyYYybDsSJMmjAaIiFlLKktgBbdDIiaLSsHVqQnRNnruUUuuUuUrRZsSzPpcCgGSiIgGsQqiFfQqILIilfFmHOhHHhyYGgXxCKkcnNoHhLlhmMQjgGJnNlorROLuFNnxuUXyJjQqKkqXxFebBfFnzZNMmCSgvoOVGsjoOTtJzzZxIiyYXZrRNaAKncUuCxXQqcCNnCJjFfcNMcCmPpkWaAcCZGgqQEaABbeITPWWOoaAwAeEaHLLlLKzZoRsSryYOVlLvGgsSfFknvVNUuKkScCsYywWqUuQqxXQZzxXxQqdDtTfFsSXIiUujJxXKdMCcUumpKkCcLluUyYhzZHnPpNguUGjpPJYtTkKMmyYyspPGRrgSPcCAaTtpPSsBbhijBsGuUSscCgjlYyYXgGQwlnQqXxRrNbBAXxaSPpTtsLBxXbPxXpPpdDWPpZGIijJgWLlWwrdDRsVveGgEMmSmvEenRrNEkKVJnNjDdJUgGhHuTtAmTtMaISsiBbudDcCAhHaUjNneEvRhyYHGgoOAtTajJriIeXxPpVnhKfFkncCdlLLlvVDpUuQqjbvVBJCcrpPMmfPCcKkpmpPqdDwIixXsSJjTtvVSnGgpPMJpPzZCcnHhbXQqxKsSkByYzRfFiIrZHhNSszZHXAaUuxeEhhHCcpPTtBIiCoQqnLlNjJvVOcNneUuEAaKZRrzkWKkPKmXuUDdqTtmPHmMhpdDWwJeiIBKMmkbBeEWwbPpLliIyYQqwWkKEkKmMrRrRjqsSQFbBfaJjzZsSoOAYGgNkcXxCKHhpOoPnwpPcCWmMoOMpmMPQAaqmzZWwrzZRDRrJjdEeaNsSqrRjJtTOtiIyzgGrRZlFfSsTfFfkKfEeoZzOFWwgGbBFzZxXzZyYscUuCkKVvyoODdtTYJjSBbaAAlHgGhLUfFzZvVrLmIiMlRocCIicCAanGgNnxXrRcCXxUuqQIiNFfJjvCczZwRrWwwWWTtoOVAKkpypEePmMjpAaKaArRkTtJxXWVZaAzFfvEewsSQqIijYuUUuynxXNEtTKskKSkVkKvVTtiMmNnOooOIUOoJjOoQypYTtfFyPUuPpGgsUujJgGvMmVnNwWzXxZiIVoOlLLlNnwOoSHhRrFfsJuxXUJjjXxavVRrPpAxVrRvTtXMmRKkaAJjeErkiIKDWHKoZzjJODdYyWwkkcCKeEhRrmNnMwzoOZYySscsSCdulEedDeExXoONnwWzZPpmbBMJPpXfhVvHFPpxaAZSZzsEGgeyYmMZFHhfPpIUuioSsOsScCmpLVGfuUrRcpPCDnNdqTtpPQbwWbBBbPCcpuUKuUhHcuUOoChYyvVWjJSswIiAQChHciIqoOeEFfWwGkKgMmjJPpaHjDdJWwzpPdDYyZJXxjzOhdRrGiIQwWqvVgBbaAOVvomVvqDGgjNqQnfFkWwKKRrksMmKkJjNnSbuUBBrRpPSsbBbqAiIhKkHJJjJmOoMaXxVvaAAgIiEeGfFQQqqlYywaAHhdHhgJVQqvjqUYyQqzZzZRreiIECcFnNsaAeEUalLqQzUuZAMmkvVKlZTtsSebBElLWhHwzKkiCcILOgGaAoyYyYelhHtTLHhENxYyXrRHhnDAsYyeiRrZzBbIEQBbBbqXxdDhHEHhLlezZlLsAaSSweUueEEVvTfFJAaTtfFmMjtLlWrRHheHhhUSsFfMKhHheMmEnmCczZZzMhSsFfHUugGNYVvaZzATtpPyXxUyYudRUurDMmXxwWWNnZznNlCfFcKGtTdDBbgGXxgFfkBnvTtaAUGgudDjJVrRJeEiIYyGgjgGaOoANnFfQYdDyqtpyYPxXLTttTXxOVrRvolJjaDEepiIqQzZPBbZzdADdsSUuzZoODdOcCXjJqxXuUQxWeETkTtHheEDEeqQVTsStvLldhzZmMHwgxXGWKVpPvvSDdsfFDIiaAdiBQxXYzZzuUZCKkcOowWyJaAacChoOtTHAwWjthYyBbhtTdDHHCccCeElLhHWwTZzOjcCJZzFmMaAUudDyAaLljqQuGgQxhHXYyqCcMnQMmqTtNmKFDpPdfwXxWklAaqQQqvVZtTzLBHhGggGiIMAanOoAaNPpdDsSMEeXcMmBbNnCzIiuUZnZzuUJQIiqdDaAPpwWjNSslsSLQqnveEJjTFaTtObdDzDdZKkLYynXsSxMmwAaWNqQZzknNKNlLXxnWwiIvOoVERrGgzZGdDeEZzBbyYSRGgrsoOyvVyYTtCcuBlLbaATtpPyYVeEehyYUuJjHQuUPpqEXxwhHWqQyiIaMmEeAYDeMmKvVgGJiIjCcLlFfbWwBCcsnNSUYakKAYYyyywuUUuxXWlGgjKkMmAHhWwVvaAaZzJqQZrVvROouUKOokpAarhxxrRXXxXDGdDqQTtNAiIjJsXoOxSaOoAOhHVvoUuTvPwWtTpVrgGRDdFftknkiIKPpupPJcAaCesrRZzuUwWStTNnHnNoOhvVEzKkZybBYSTtsEeatTjJAGgaLeEhHlTtmmMMdDbbBVCrRrRjJcvGgEePpHhOoBOwlLgGAtTxXpHhPaASsaqsSMmXxqQQrRQqsEeSDduUNnpPlATtyBbYRrjKkfFkRrKtArRazZOodDwWSYInrRNvVkQzZqjgRgGKkLlRrrJJBbPdtTwWDCcBbfFPaMcCmVMmwWvyYTtRKUPpKkuxXkHAFTtfEeawlcCLqQWduUzZkKPpDUuXdDTtjeQqESsJSQqMmuUsrNnRqkRrKrpPxXRKkaALVvlbBAaRXbBxroOwWcxXnNPpComMhmMHhAazJgGjZfFHfDdLlFQqYssgGqQYyuUIiaAMmoObOoBxXyCKCcofFOkUuKGgYyYyHUGgGpPMmMmgiaAzZYyxtTXrjJNXIixUXRrxuUNnZuUZUuzzJLljZVvzusAaJAajsSBbLnNlpPfFmMGgyYkpRFZzfaosuUSOCcnKkNArLeEoOlTtPfIichHClwWLWBbwcCvVfFaALlZXNnxzPpRrlLiIaYyDdAzDdZHhSstThFfHOoSkvVmMKPpCvVfFcTNnkAaKtcCkGgKWEAkyYKaeFvVFfZzxShHsIKXxkjJyHhYfUuFeESseErRjJilzQqZLwWxMmXcCDdInNkBbKsSittTSKxXsSkspPqQTVvNnXKhHkmqQNnXMmxmMMKkUcCuzZUtTuUupNnfFSstkKeECDNCeEcwWnKkdrRcCkKCcHTtemMEoPpZzOdDsSoOhjJXxcUuTQvlLVvNnnYyFEeQqlLsSTtwWKIiaVkKLlvEPPpjJzZUupcCVIivDdmMIRdDrutkKTIiUaVvAkKGofVpPvFOrmMRAAaagjJfrzZkKgGRfFZjJzFMmmMRvkNnMmKVXxGgrdSOosDWEeMmkKoOQSreERsoOqbdDbAaKkBBwEeFLlfhHLZzlDnMmNPHhkKeEprRdMmSseEMmiUKkGJITtijgLlIiLuUlDduEeqbaABQzhHZPQuEeDdUkaAKqgGHCchzZbYyYyfUJjuFqQzZnUuzZrjJmMqQpPoORGgmMLyYjJZzxXPpPXoOuUuvVULlPpfsSsSVvFxnpPDddDWHhwUuNnwWYMmPpQqvVkhHxXKbBteEKkjJSsejJEvJjvpOoejJElLvOoVAaiGPpNngIGgKkBbMLlrxwWXwWPphHkQqKRYyrrlyYLfFMIimRkNnKJjJpPjzjJZtjJrXxaAWwRmMHVvuIiUnNjoOJIihNnaEcCzZYyhNnHShHstTeHhvVVLlPpWYylLwiIMoOdDmaAPjJNnjJeEBbjQqnNjJYyJPppKkPkKkiIYyKpaAaGgaCEeyYruUHgGhgGXxRagGAclbjdDJGuUIigGSsyYgBIhuUaAHHgGTtpPcZzEgGedYyBbxXVEesSSsKSskvVOoMnNjJmMmIcCDdiseEmCcMNnSrRrRvbAaAaMBbmNnjhHJXrRxiIPpqQistTnQqMmNSKkEfFgOrRowWBbFfGiICcDdKkAaKfyqQYCcHhlLFOvVXxqQrxXBbRFfKkZzVvjXxtTgGJtDflLFsAaSdZkKCcoOTtBbYyCJjiImMnNczPpSGgsdDZzSsdDyYEeRrdVvDSsyrRYFfYDIhDdmMAaHidzZbBuUrAaRqwWQVuHhUCcnpOoWmTtMwcCmMEGgKYykTVvtZOoyKkHhymWwMZzYugVvGULUulXKxXkpKvVkBbPxYkCSsVvcolLUnNukKOKmQqkKnNaUuAbBMCcelsjSsJSLLRrlLlPpdDlqQZzLEqXxQHEPpehrRdAaDsSsbBtTuUeESwJjrRgGWWwwWmjJMzZOomWiIwMwLlWYISsiGgtXxlLTfuUFKtTlLktfFvVTuILDdlqQcCqOouUFfSGgsiIcKBbklLCORdDWwMEevVjJmKkkKmwWMtTrqYfFLYylyQRrxXcCTtmMoQOHhegGEhHeEdDvVsSnNcCMYyuUzKkCYrRyqQbQqCcBpPYkAaKveExXOoFPpfjJWwVOoaAZzVvzZydDXPulfFLxXUTBBbbzJjZCLlcmcIqQiHhLlmMCtTXxVvlLyYAwWaVcCvnNKkOonNbBUmMTLltaAWaAwMnAaIizqQZOyOdDoYoOmMIYLlNxXnuMmUaAuDdUaADZzWwdWwLlPpzZGgRJjraAVoOPpXxgGLlvWwyKCcGOoTtggGQxXqqQjkqQYhhHmMowWOoLlFYyfEeOHynLlNeqQEKjPeEGgxBbrfFRXMBqQbUumpUjJulLFfJiIvVsSzBbjBbJCchHZYrMmRyaHvVhqQAGgFfvVJjfFRnNSsrJiIEyYekKdDRrqQOoWDHbtgGTBhHhCfOoUuFQaAqNBbnepdDPEtBbTcdvVwvjJKuUkaATgGjXCcxJiILltVazxXZDLldZRrzuURXxpPrxoOXwWlLQbBqkKkKqfxXKkFXxQkKQTTtLluUtsWxXwSUuyOoWwlLYqsoOCcHhSNnpPblLBAaTtEeguUxXeETtuUFfUueEGBbexXEkKTtTgGtiIFKEecCjqQBbJkgGRUurDrRdEeunNbbBRrtTyBbEedDYBGgUAaZzfJjjXxJYEeSAaLXxpPwSiIsNnWcClwWuUsnNFfbBOoaEeAVvDOaAoYzZytjJTdyiCcIHiIyUuAaHhBgOoGiIZavVAzRkKrpqQLnNVvlhDdHPgZzIiTtGtJjfeEFdDTcDdCsUuDdHOohHhkJjWYyqQbRrfFMuUEsgGgGSPpFtTSyYsfPDdpnNeTRhmMPpHtCcaAWwTrtZzmMERrsrqQRNnSNngWTtwGFZzFfZPHhpZvVzzKNLlnDIidiIkfCcSUvVIDdiueETtfFzZbBmCcCcwWkvbBOoVPpHhKJjMBbyYFHvUuVCchfPpRqQLlBbukZzKUuUihaAHIHqQhSsgGPDdptzZDdTBzZWwbBbrCUucEeiLjJZnNNnYyZzdIkKiRrcOoCDnztpPThHZNYmMrRtTyEeojkKUyYHhuJDvVdlLZzfFwGgMmrRWzZONnzrxAaXjNnlLSsJRfFogGfLlFlLHBbPbBmMLlOsDdSogRCcrGkKphHhDdOJjMmBcCblPpzYyZCWwsSchvgGVelLNnETtHXOUuGgOooWwaAnNMdDMmmDdxcqQSsCp diff --git a/2018/day5.py b/2018/day5.py new file mode 100644 index 0000000..3a35b9a --- /dev/null +++ b/2018/day5.py @@ -0,0 +1,59 @@ +with open('day5-input', 'r') as file: + data = [l.strip('\n') for l in file] +# import numpy as np +polymer = [c for c in reversed(data[0])] +# polymer = [c for c in 'dabAcCaCBAcCcaDA'] + +i = 0 +print(len(polymer)) +while i < len(polymer)-1: + if polymer[i] == polymer[i+1].swapcase(): + polymer.pop(i) + polymer.pop(i) + i -= 2 + i += 1 +print(len(polymer)) # Not 11196?! +while i < len(polymer) - 1: + if polymer[i] == polymer[i + 1].swapcase(): + polymer.pop(i) + polymer.pop(i) + i -= 2 + i += 1 +print(len(polymer)) # Not 11196?! +while i < len(polymer) - 1: + if polymer[i] == polymer[i + 1].swapcase(): + polymer.pop(i) + polymer.pop(i) + i = -1 + i += 1 + +print(len(polymer)) # Part 1 + +remaining_letters = {} +for c in polymer: + c = c.lower() + if c in remaining_letters: + remaining_letters[c] += 1 + else: + remaining_letters[c] = 1 +print(max(remaining_letters.items(), key=lambda x: x[1])) + +def react(letter): + polymer_2 = [c for c in data[0] if c.lower() != letter] + i = 0 + while i < len(polymer_2)-1: + if polymer_2[i] == polymer_2[i+1].swapcase(): + polymer_2.pop(i) + polymer_2.pop(i) + i -= 2 + i += 1 + while i < len(polymer_2) - 1: + if polymer_2[i] == polymer_2[i + 1].swapcase(): + polymer_2.pop(i) + polymer_2.pop(i) + i = -1 + i += 1 + return len(polymer_2) +# print(len(polymer_2)) # Not 10658?! +removals = [react(i) for i in remaining_letters.keys()] +print(max(removals)) # Part 2