From ba2e4a4d1fbdfaebafc649ae7c7f305441a7c064 Mon Sep 17 00:00:00 2001 From: Yan Lucas Date: Sat, 31 Oct 2026 12:56:33 +0000 Subject: [PATCH 01/12] =?UTF-8?q?feat(computador):=20terminal=20na=20tela?= =?UTF-8?q?=20com=20abas=20e=20prote=C3=A7=C3=A3o=20contra=20sequ=C3=AAnci?= =?UTF-8?q?as=20do=20servidor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TerminalActivity própria (sem FLAG_SECURE), LigacaoEmulador entre a sessão e o termlib, filtros de entrada e saída das sequências (OSC 52, DECRQSS, CSI 20/21 t, ENQ), política de colar e de links, rótulo da aba, fonte JetBrains Mono Nerd (OFL) e remoção da bancada da T1. --- app/licenses/OFL_JetBrainsMonoNerdFont.txt | 93 ++++ .../keyflow/computador/app/ConexaoFalsa.kt | 52 +++ .../computador/app/LigacaoEmuladorTest.kt | 171 ++++++++ .../computador/app/TerminalSpikeTest.kt | 239 ----------- .../ui/terminal/TerminalActivityTest.kt | 110 +++++ .../keyflow/ui/terminal/TerminalScreenTest.kt | 98 +++++ app/src/debug/AndroidManifest.xml | 2 - .../computador/app/TerminalSpikeActivity.kt | 123 ------ app/src/main/AndroidManifest.xml | 11 + .../JetBrainsMonoNerdFontMono-Regular.ttf | Bin 0 -> 2573248 bytes .../keyflow/computador/app/ComputadorApp.kt | 107 +++++ .../computador/app/EmuladoresDeSessao.kt | 21 + .../computador/app/FiltroDeRespostas.kt | 399 ++++++++++++++++++ .../keyflow/computador/app/InteracaoDoApp.kt | 53 +++ .../keyflow/computador/app/LigacaoEmulador.kt | 135 ++++++ .../computador/app/ObservadorDeRede.kt | 26 ++ .../computador/app/ProvedorDeChavesAndroid.kt | 3 + .../computador/app/TerminalActivity.kt | 131 ++++++ .../computador/app/TextosComputador.kt | 32 ++ .../java/com/keyflow/i18n/en/Computador.kt | 40 ++ .../java/com/keyflow/i18n/es/Computador.kt | 40 ++ .../com/keyflow/ui/terminal/AbasDeSessao.kt | 122 ++++++ .../com/keyflow/ui/terminal/BarraDeEstado.kt | 64 +++ .../ui/terminal/EntradaParaTerminal.kt | 14 + .../com/keyflow/ui/terminal/TerminalScreen.kt | 175 ++++++++ .../app/FiltroDaSaidaDoServidorTest.kt | 74 ++++ .../java/com/keyflow/computador/app/Hostil.kt | 48 +++ .../computador/app/PoliticasDoTerminalTest.kt | 73 ++++ .../computador/app/SequenciasHostisTest.kt | 124 ++++++ .../app/TerminalActivityRegrasTest.kt | 45 ++ .../resources/computador/gravacoes/README.md | 1 + .../resources/computador/gravacoes/SHA256SUMS | 1 + .../resources/computador/gravacoes/hostil.bin | 2 + 33 files changed, 2265 insertions(+), 364 deletions(-) create mode 100644 app/licenses/OFL_JetBrainsMonoNerdFont.txt create mode 100644 app/src/androidTest/java/com/keyflow/computador/app/ConexaoFalsa.kt create mode 100644 app/src/androidTest/java/com/keyflow/computador/app/LigacaoEmuladorTest.kt delete mode 100644 app/src/androidTest/java/com/keyflow/computador/app/TerminalSpikeTest.kt create mode 100644 app/src/androidTest/java/com/keyflow/ui/terminal/TerminalActivityTest.kt create mode 100644 app/src/androidTest/java/com/keyflow/ui/terminal/TerminalScreenTest.kt delete mode 100644 app/src/debug/java/com/keyflow/computador/app/TerminalSpikeActivity.kt create mode 100644 app/src/main/assets/fonts/JetBrainsMonoNerdFontMono-Regular.ttf create mode 100644 app/src/main/java/com/keyflow/computador/app/ComputadorApp.kt create mode 100644 app/src/main/java/com/keyflow/computador/app/EmuladoresDeSessao.kt create mode 100644 app/src/main/java/com/keyflow/computador/app/FiltroDeRespostas.kt create mode 100644 app/src/main/java/com/keyflow/computador/app/InteracaoDoApp.kt create mode 100644 app/src/main/java/com/keyflow/computador/app/LigacaoEmulador.kt create mode 100644 app/src/main/java/com/keyflow/computador/app/ObservadorDeRede.kt create mode 100644 app/src/main/java/com/keyflow/computador/app/TerminalActivity.kt create mode 100644 app/src/main/java/com/keyflow/computador/app/TextosComputador.kt create mode 100644 app/src/main/java/com/keyflow/ui/terminal/AbasDeSessao.kt create mode 100644 app/src/main/java/com/keyflow/ui/terminal/BarraDeEstado.kt create mode 100644 app/src/main/java/com/keyflow/ui/terminal/EntradaParaTerminal.kt create mode 100644 app/src/main/java/com/keyflow/ui/terminal/TerminalScreen.kt create mode 100644 app/src/test/java/com/keyflow/computador/app/FiltroDaSaidaDoServidorTest.kt create mode 100644 app/src/test/java/com/keyflow/computador/app/Hostil.kt create mode 100644 app/src/test/java/com/keyflow/computador/app/PoliticasDoTerminalTest.kt create mode 100644 app/src/test/java/com/keyflow/computador/app/SequenciasHostisTest.kt create mode 100644 app/src/test/java/com/keyflow/computador/app/TerminalActivityRegrasTest.kt create mode 100644 app/src/test/resources/computador/gravacoes/hostil.bin diff --git a/app/licenses/OFL_JetBrainsMonoNerdFont.txt b/app/licenses/OFL_JetBrainsMonoNerdFont.txt new file mode 100644 index 00000000..8bee4148 --- /dev/null +++ b/app/licenses/OFL_JetBrainsMonoNerdFont.txt @@ -0,0 +1,93 @@ +Copyright 2020 The JetBrains Mono Project Authors (https://github.com/JetBrains/JetBrainsMono) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/app/src/androidTest/java/com/keyflow/computador/app/ConexaoFalsa.kt b/app/src/androidTest/java/com/keyflow/computador/app/ConexaoFalsa.kt new file mode 100644 index 00000000..bbd19325 --- /dev/null +++ b/app/src/androidTest/java/com/keyflow/computador/app/ConexaoFalsa.kt @@ -0,0 +1,52 @@ +package com.keyflow.computador.app + +import com.keyflow.computador.Host +import com.keyflow.computador.sessao.DependenciasDeSessao +import com.keyflow.computador.sessao.DonoDaSessao +import com.keyflow.computador.ssh.ConexaoSsh +import com.keyflow.computador.ssh.DestinoSsh +import com.keyflow.computador.ssh.EventoConexao +import com.keyflow.computador.ssh.PtyInfo +import com.keyflow.computador.ssh.ResultadoConexao +import com.keyflow.computador.ssh.ResultadoTeste +import java.util.concurrent.CopyOnWriteArrayList +import kotlinx.coroutines.channels.Channel +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.MutableSharedFlow +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.SharedFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.receiveAsFlow + +/** Conexão de mentira dos instrumentados: abre na hora, devolve o que o teste empurrar em [servidor] e anota tudo que o app escreve. */ +class ConexaoFalsa : ConexaoSsh { + private val ev = MutableSharedFlow(replay = 4) + override val eventos: SharedFlow = ev + private val canal = Channel(Channel.UNLIMITED) + override val saida: Flow = canal.receiveAsFlow() + val escritos = CopyOnWriteArrayList() + val tamanhos = CopyOnWriteArrayList() + @Volatile var ptyInicial: PtyInfo? = null + @Volatile var fechada = false + + override suspend fun conectar(destino: DestinoSsh, pty: PtyInfo): ResultadoConexao { ptyInicial = pty; return ResultadoConexao.Aberta } + override suspend fun testar(destino: DestinoSsh): ResultadoTeste = error("não usado") + override suspend fun escrever(bytes: ByteArray) { escritos += bytes } + override suspend fun redimensionar(pty: PtyInfo) { tamanhos += pty } + override suspend fun fechar() { fechada = true; canal.close() } + + /** O que o "servidor" manda para a tela. */ + fun servidor(bytes: ByteArray) { canal.trySend(bytes) } + + fun tudoQueFoiEscrito(): ByteArray = escritos.fold(ByteArray(0)) { a, b -> a + b } +} + +/** As dependências da sessão com [ConexaoFalsa]: [conexoes] guarda cada uma criada, na ordem. */ +class DependenciasFalsas : DependenciasDeSessao { + val conexoes = CopyOnWriteArrayList() + override fun novaConexao(): ConexaoSsh = ConexaoFalsa().also { conexoes += it } + override suspend fun destino(host: Host, dono: DonoDaSessao): DestinoSsh = DestinoSsh(host) + override fun precisaDoUsuario(host: Host) = false + override val rede: StateFlow = MutableStateFlow(true) + override fun agoraMs() = System.currentTimeMillis() +} diff --git a/app/src/androidTest/java/com/keyflow/computador/app/LigacaoEmuladorTest.kt b/app/src/androidTest/java/com/keyflow/computador/app/LigacaoEmuladorTest.kt new file mode 100644 index 00000000..8082ff3f --- /dev/null +++ b/app/src/androidTest/java/com/keyflow/computador/app/LigacaoEmuladorTest.kt @@ -0,0 +1,171 @@ +package com.keyflow.computador.app + +import androidx.compose.ui.graphics.Color +import androidx.test.ext.junit.runners.AndroidJUnit4 +import androidx.test.platform.app.InstrumentationRegistry +import com.keyflow.computador.ssh.PtyInfo +import java.util.concurrent.CopyOnWriteArrayList +import java.util.concurrent.CountDownLatch +import java.util.concurrent.TimeUnit +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.SupervisorJob +import kotlinx.coroutines.cancel +import org.junit.After +import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Assert.assertNull +import org.junit.Assert.assertTrue +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith + +/** CMP-23, 25, 35, 36 com o emulador do termlib de verdade (JNI) e um destino que só anota. */ +@RunWith(AndroidJUnit4::class) +class LigacaoEmuladorTest { + private val instr = InstrumentationRegistry.getInstrumentation() + private val escopo = CoroutineScope(SupervisorJob() + Dispatchers.Default) + private val ligacoes = mutableListOf() + + private class Anotador : DestinoDoEmulador { + val bytes = CopyOnWriteArrayList() + val tamanhos = CopyOnWriteArrayList() + override suspend fun escrever(bytes: ByteArray) { this.bytes += bytes } + override suspend fun redimensionar(pty: PtyInfo) { tamanhos += pty } + fun texto() = String(bytes.fold(ByteArray(0)) { a, b -> a + b }, Charsets.ISO_8859_1) + } + + private fun gravacao(nome: String) = instr.context.assets.open("computador/gravacoes/$nome").use { it.readBytes() } + + private fun nova(destino: Anotador, colunas: Int = 80, linhas: Int = 24): LigacaoEmulador { + var ligacao: LigacaoEmulador? = null + instr.runOnMainSync { ligacao = LigacaoEmulador(escopo, Color.White, Color.Black, colunas, linhas).also { it.ligarAoDestino(destino) } } + return ligacao!!.also { ligacoes += it } + } + + private fun esperar(ms: Long = 10_000, condicao: () -> Boolean) { + val fim = System.currentTimeMillis() + ms + while (!condicao()) { + if (System.currentTimeMillis() > fim) throw AssertionError("tempo esgotado") + instr.waitForIdleSync() + Thread.sleep(20) + } + } + + @After fun limpar() { instr.runOnMainSync { ligacoes.forEach { it.fechar() } }; escopo.cancel() } + + @Test fun textoUtf8ECoresDesenhamNoEstadoDoEmulador() { + val d = Anotador() + val l = nova(d) + l.escreverNaTela(gravacao("texto-cores.bin")) + // Pergunta ao estado do emulador (não à captura): a saída do último comando (OSC 133) é o texto desenhado. + esperar { l.emulador.getLastCommandOutput() == "Olá, terminal!" } + } + + @Test fun respostasPermitidasChegamAoServidorEAsProibidasNaoGeramByte() { + val d = Anotador() + val l = nova(d) + l.escreverNaTela(gravacao("hostil.bin")) + esperar { d.texto().contains("?1;2c") && d.texto().contains("0n") } + instr.waitForIdleSync() + Thread.sleep(300) + val saiu = d.texto() + // DA1, DSR e CPR respondidos; kitty a=q respondido. + assertTrue(saiu, saiu.contains("\u001b[?1;2c")) + assertTrue(saiu.contains("\u001b[0n")) + assertTrue(Regex("\u001b\\[\\d+;\\d+R").containsMatchIn(saiu)) + // A resposta do kitty a=q só existe com imagens ligadas: a Fase 2 (política por host) a testa. + // Nada de DCS (DECRQSS), de OSC 52 nem de relatório de título, e nenhuma resposta ao ENQ. + assertFalse(saiu.contains("\u001bP")) + assertFalse(saiu.contains("\u001b]52")) + assertFalse(saiu.contains("\u001b]l")) + assertFalse(saiu.contains("\u0005")) + assertFalse(saiu.contains("[21t")) + // O que o filtro de saída pegou é contado, nunca guardado. + assertEquals(0, l.descartesDeSaida) + } + + @Test fun osc52DeEscritaPedeConsentimentoENegarELimpa() { + val d = Anotador() + val l = nova(d) + l.escreverNaTela("\u001b]52;c;aGVsbG8=\u0007".toByteArray()) + esperar { l.pedidoDeClipboard.value != null } + assertEquals("hello", l.pedidoDeClipboard.value) + assertNull("negar não devolve o texto", l.responderClipboard(false)) + assertNull(l.pedidoDeClipboard.value) + l.escreverNaTela("\u001b]52;c;aGVsbG8=\u0007".toByteArray()) + esperar { l.pedidoDeClipboard.value != null } + assertEquals("hello", l.responderClipboard(true)) + } + + @Test fun osc52DeLeituraNuncaPedeNemResponde() { + val d = Anotador() + val l = nova(d) + l.escreverNaTela("\u001b]52;c;?\u0007\u001b]52;;?\u001b\\fim\r\n".toByteArray()) + instr.waitForIdleSync() + Thread.sleep(300) + assertNull(l.pedidoDeClipboard.value) + assertEquals("", d.texto()) + } + + @Test fun tituloVirouRotuloSanitizado() { + val d = Anotador() + val l = nova(d) + l.escreverNaTela("\u001b]0;build-box: ~/app\u0007".toByteArray()) + assertEquals("build-box: ~/app", l.titulo.value) + } + + @Test fun mudarAAreaEnviaWindowChangeComColunasLinhasEPixels() { + val d = Anotador() + val l = nova(d) + instr.runOnMainSync { l.emulador.resize(30, 100) } + esperar { d.tamanhos.isNotEmpty() } + val t = d.tamanhos.last() + assertEquals(100, t.colunas) + assertEquals(30, t.linhas) + assertEquals(30, l.tamanhoAtual().linhas) + assertEquals(100, l.tamanhoAtual().colunas) + } + + @Test fun teclasSaemNaOrdemEmQueForamDigitadas() { + val d = Anotador() + val l = nova(d) + val texto = "ls -la /tmp && echo ação" + instr.runOnMainSync { texto.forEach { l.emulador.dispatchCharacter(0, it) } } + esperar { d.texto().length >= texto.toByteArray().size } + assertEquals(texto, String(d.bytes.fold(ByteArray(0)) { a, b -> a + b }, Charsets.UTF_8)) + } + + @Test fun colarPassaPeloEmuladorEMantemOTexto() { + val d = Anotador() + val l = nova(d) + instr.runOnMainSync { l.colar("echo a\necho b") } + esperar { d.texto().contains("echo b") } + assertTrue(d.texto().contains("echo a")) + } + + @Test fun oHistoricoDeTextoSobreviveAoFecharEAbrirATela() { + val d = Anotador() + val l = nova(d) + val linhas = buildString { repeat(200) { append("linha ").append(it).append("\r\n") } } + l.escreverNaTela(linhas.toByteArray()) + esperar { l.emulador.retainedScrollbackLines >= 170 } + val antes = l.emulador.retainedScrollbackLines + // `onTrimMemory` com a tela invisível não descarta o histórico de texto. + val app = ComputadorApp.de(instr.targetContext) + app.aoFaltarMemoria(android.content.ComponentCallbacks2.TRIM_MEMORY_COMPLETE) + instr.waitForIdleSync() + assertEquals(antes, l.emulador.retainedScrollbackLines) + } + + @Test fun fecharSoltaOEmuladorEIgnoraBytesTardios() { + val d = Anotador() + val l = nova(d) + instr.runOnMainSync { l.fechar() } + l.escreverNaTela("depois de fechar".toByteArray()) + assertEquals("", d.texto()) + val feito = CountDownLatch(1) + instr.runOnMainSync { l.fechar(); feito.countDown() } + assertTrue(feito.await(2, TimeUnit.SECONDS)) + } +} diff --git a/app/src/androidTest/java/com/keyflow/computador/app/TerminalSpikeTest.kt b/app/src/androidTest/java/com/keyflow/computador/app/TerminalSpikeTest.kt deleted file mode 100644 index 96606ebe..00000000 --- a/app/src/androidTest/java/com/keyflow/computador/app/TerminalSpikeTest.kt +++ /dev/null @@ -1,239 +0,0 @@ -package com.keyflow.computador.app - -import android.graphics.Bitmap -import android.os.Bundle -import android.os.Debug -import android.util.Base64 -import android.view.KeyEvent -import android.view.View -import android.view.ViewGroup -import android.view.WindowManager -import android.view.inputmethod.EditorInfo -import androidx.compose.ui.test.junit4.createAndroidComposeRule -import androidx.test.ext.junit.runners.AndroidJUnit4 -import androidx.test.platform.app.InstrumentationRegistry -import java.io.ByteArrayOutputStream -import java.io.File -import org.connectbot.terminal.TerminalEmulator -import org.connectbot.terminal.TerminalEmulatorFactory -import org.json.JSONArray -import org.json.JSONObject -import org.junit.Assert.assertEquals -import org.junit.Assert.assertFalse -import org.junit.Assert.assertNotNull -import org.junit.Assert.assertTrue -import org.junit.FixMethodOrder -import org.junit.Rule -import org.junit.Test -import org.junit.runner.RunWith -import org.junit.runners.MethodSorters - -/** Medições no emulador real: não substitui a validação dos teclados/aparelhos físicos. */ -@RunWith(AndroidJUnit4::class) -@FixMethodOrder(MethodSorters.NAME_ASCENDING) -class TerminalSpikeTest { - @get:Rule val tela = createAndroidComposeRule() - private val instr get() = InstrumentationRegistry.getInstrumentation() - private val cores = setOf(0xfa1020, 0x10ef20, 0x2030fa, 0xfae010) - - private fun salvar(nome: String, json: JSONObject) { - val pasta = File(instr.targetContext.getExternalFilesDir(null), "computador-spike").apply { mkdirs() } - File(pasta, "$nome.json").writeText(json.toString(2)) - instr.sendStatus(0, Bundle().apply { putString("stream", "CMP_SPIKE $nome ${json}\n") }) - } - - private fun bytesGravados(nome: String) = instr.context.assets.open("computador/gravacoes/$nome").use { it.readBytes() } - - private fun eventos(): List { - instr.waitForIdleSync() - return mutableListOf().also { tela.activity.saidas.drainTo(it) } - } - - private fun sincronizarEntrada() { - // Com mouse desligado, esta chamada esvazia a fila do terminal sem emitir bytes. - tela.runOnIdle { tela.activity.emulador.dispatchMouseMove(0, 0) } - instr.waitForIdleSync() - } - - private fun texto(eventos: List): String { - val bytes = ByteArrayOutputStream() - eventos.forEach { bytes.write(it.bytes) } - return bytes.toByteArray().toString(Charsets.UTF_8) - } - - private fun medirImagem(nome: String) { - assertEquals(0, tela.activity.window.attributes.flags and WindowManager.LayoutParams.FLAG_SECURE) - var imagem: Bitmap? = null - var contagens = emptyMap() - tela.runOnIdle { - // O cursor sólido cobriria os pixels da pequena imagem real do kitten. - tela.activity.alimentar("\u001b[?25l".toByteArray()) - tela.activity.alimentar(bytesGravados(nome)) - } - try { - tela.waitUntil(15_000) { - imagem?.recycle() - imagem = instr.uiAutomation.takeScreenshot() - val bitmap = imagem ?: return@waitUntil false - val altura = minOf(bitmap.height, 1000) - val pixels = IntArray(bitmap.width * altura) - bitmap.getPixels(pixels, 0, bitmap.width, 0, 0, bitmap.width, altura) - val contados = cores.associateWith { 0 }.toMutableMap() - pixels.forEach { cor -> val rgb = cor and 0xffffff; if (rgb in cores) contados[rgb] = contados.getValue(rgb) + 1 } - contagens = contados - contagens.values.all { it >= 4 } - } - val pasta = File(instr.targetContext.getExternalFilesDir(null), "computador-spike").apply { mkdirs() } - val png = ByteArrayOutputStream().also { imagem!!.compress(Bitmap.CompressFormat.PNG, 100, it) }.toByteArray() - File(pasta, "$nome.png").writeBytes(png) - // O pool devolve o protocolo do instrumentador mesmo quando o worker é descartável. - instr.sendStatus(0, Bundle().apply { putString("cmp_spike_png", nome + " " + Base64.encodeToString(png, Base64.NO_WRAP)) }) - salvar(nome, JSONObject().put("pixels", JSONObject(contagens.mapKeys { "%06x".format(it.key) })).put("flag_secure", false)) - } catch (erro: Throwable) { - imagem?.let { bitmap -> - val png = ByteArrayOutputStream().also { bitmap.compress(Bitmap.CompressFormat.PNG, 100, it) }.toByteArray() - instr.sendStatus(0, Bundle().apply { putString("cmp_spike_png", "falha-" + nome + " " + Base64.encodeToString(png, Base64.NO_WRAP)) }) - } - throw AssertionError("$nome: contagem dos quadrantes $contagens", erro) - } finally { imagem?.recycle() } - } - - @Test fun a0TextoUtf8ECoresAnsiPassamPeloEmuladorReal() { - medirImagem("texto-cores.bin") - tela.waitUntil(5_000) { tela.activity.emulador.getLastCommandOutput() == "Olá, terminal!" } - salvar("texto", JSONObject().put("saida", tela.activity.emulador.getLastCommandOutput()).put("cores_ansi", true)) - } - - @Test fun aKittyRealDesenhaOsQuatroQuadrantes() = medirImagem("kitty.bin") - @Test fun bIterm2RealDesenhaOsQuatroQuadrantes() = medirImagem("iterm2.bin") - @Test fun cPlaceholdersReaisDoKittenDesenhamAImagem() = medirImagem("placeholders-kitty.bin") - @Test fun dHerdrRealDesenhaAImagemDoPane() = medirImagem("herdr.bin") - - @Test fun eRespostasRegistramBytesEOrigemAssincrona() { - val medidas = JSONObject() - fun consultar(nome: String, entrada: String): List { - eventos() - tela.runOnIdle { tela.activity.alimentar(entrada.toByteArray()) } - val saida = eventos() - medidas.put(nome, JSONArray().apply { - saida.forEach { put(JSONObject().put("hex", it.bytes.joinToString("") { b -> "%02x".format(b) }).put("dentro_write", it.dentroDoWriteInput)) } - }) - return saida - } - val da1 = consultar("DA1", "\u001b[c") - assertTrue(texto(da1).contains("?1;2c")) - assertTrue(da1.all { !it.dentroDoWriteInput }) - assertTrue(texto(consultar("DSR", "\u001b[5n")).contains("0n")) - assertTrue(texto(consultar("CPR", "\u001b[6n")).contains("R")) - consultar("cor_10", "\u001b]10;?\u0007") - consultar("cor_11", "\u001b]11;?\u0007") - consultar("titulo", "\u001b]0;Título de teste\u0007\u001b[21t") - assertTrue(texto(consultar("kitty_query", "\u001b_Ga=q,t=d,f=24,s=1,v=1,i=50;AAAA\u001b\\")).contains("OK")) - for (meio in listOf("f", "t", "s")) { - val resposta = texto(consultar("kitty_t_$meio", "\u001b_Ga=q,t=$meio,f=24,s=1,v=1,i=51;L25hby1leGlzdGU=\u001b\\")) - assertTrue("O meio $meio precisa ser recusado", resposta.isNotEmpty()) - assertFalse(resposta.contains(";OK")) - } - salvar("respostas", medidas) - } - - private fun campo(view: View): View? { - if (view.javaClass.simpleName == "ImeInputView") return view - if (view is ViewGroup) repeat(view.childCount) { campo(view.getChildAt(it))?.let { achado -> return achado } } - return null - } - - @Test fun fInputConnectionMedeUtf8SemEnterEReproduzCaminhoDuplo() { - val info = EditorInfo() - eventos() - tela.runOnIdle { - val view = checkNotNull(campo(tela.activity.window.decorView)) - view.requestFocus() - val conexao = view.onCreateInputConnection(info) - assertNotNull(conexao) - assertTrue(conexao!!.commitText("ação e voz", 1)) - } - sincronizarEntrada() - val ditado = texto(eventos()) - assertEquals("ação e voz", ditado) - assertFalse(ditado.contains('\r') || ditado.contains('\n')) - tela.runOnIdle { - val view = checkNotNull(campo(tela.activity.window.decorView)) - val conexao = checkNotNull(view.onCreateInputConnection(EditorInfo())) - val baixo = KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_A) - val alto = KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_A) - conexao.sendKeyEvent(baixo) - view.dispatchKeyEvent(baixo) - conexao.sendKeyEvent(alto) - view.dispatchKeyEvent(alto) - } - sincronizarEntrada() - val duplo = texto(eventos()) - // Diagnóstico do upstream: os dois caminhos juntos produzem duplicação. - // A cola da CMP-T13 deverá escolher/deduplicar a origem antes do SSH. - assertEquals("aa", duplo) - tela.runOnIdle { - val view = checkNotNull(campo(tela.activity.window.decorView)) - val conexao = checkNotNull(view.onCreateInputConnection(EditorInfo())) - conexao.setComposingText("a", 1) - conexao.setComposingText("ação", 1) - conexao.finishComposingText() - } - sincronizarEntrada() - val composicao = texto(eventos()) - salvar("entrada", JSONObject().put("input_type", info.inputType).put("commit", ditado).put("caminho_duplo", duplo).put("composicao_tipo_null", composicao) - .put("keyflow_gboard_orbe_reais", "não medido; exercitado o InputConnection real do terminal")) - } - - @Test fun gMouseUsaOModoNegociadoEProduzSgrCorreto() { - eventos() - tela.runOnIdle { tela.activity.alimentar("\u001b[?1000h\u001b[?1006h".toByteArray()) } - tela.waitUntil(5_000) { tela.activity.emulador.mouseMode.value == 1 } - tela.runOnIdle { - tela.activity.emulador.dispatchMouseMove(2, 4) - tela.activity.emulador.dispatchMouseButton(1, true) - tela.activity.emulador.dispatchMouseButton(1, false) - } - val cliques = texto(eventos()) - assertTrue(cliques.contains("\u001b[<0;5;3M")) - assertTrue(cliques.contains("\u001b[<0;5;3m")) - tela.runOnIdle { tela.activity.alimentar("\u001b[?1000l".toByteArray()) } - tela.waitUntil(5_000) { tela.activity.emulador.mouseMode.value == 0 } - tela.runOnIdle { tela.activity.emulador.dispatchMouseButton(1, true) } - assertEquals("", texto(eventos())) - salvar("mouse", JSONObject().put("sgr", cliques).put("modo_desligado_silencioso", true)) - } - - @Test fun hSixelBrutoPermaneceSemTranscodificadorNoSpike() { - tela.runOnIdle { tela.activity.alimentar(bytesGravados("img2sixel.bin")) } - salvar("sixel", JSONObject().put("transcodificador_no_app", "não medido; implementação na CMP-T25/T26").put("fluxo_bruto_sem_crash", true)) - } - - @Test fun zMemoriaEHistoricoMedidosEmCincoEVinteMilLinhas() { - val medidas = JSONArray() - for (limite in listOf(5_000, 20_000)) { - System.gc() - val antes = Debug.MemoryInfo().also { Debug.getMemoryInfo(it) } - val heapAntes = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory() - val emulador = TerminalEmulatorFactory.create(initialRows = 24, initialCols = 80, maxScrollbackLines = limite) - try { - fun carregar() { - val bytes = buildString { - repeat(limite + 24) { append("linha ").append(it.toString().padStart(5, '0')).append(' ').append("x".repeat(60)).append("\r\n") } - }.toByteArray() - emulador.writeInput(bytes) - } - carregar() - assertEquals(limite, emulador.retainedScrollbackLines) - instr.waitForIdleSync() - System.gc() - val depois = Debug.MemoryInfo().also { Debug.getMemoryInfo(it) } - val heapDepois = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory() - medidas.put(JSONObject().put("linhas", limite).put("retidas", emulador.retainedScrollbackLines).put("colunas", 80).put("rows", 24) - .put("pss_antes_kb", antes.totalPss).put("pss_depois_kb", depois.totalPss).put("delta_pss_kb", depois.totalPss - antes.totalPss) - .put("delta_heap_bytes", heapDepois - heapAntes).put("heap_max_bytes", Runtime.getRuntime().maxMemory())) - } finally { emulador.close() } - } - salvar("memoria", JSONObject().put("sessoes", medidas).put("metodo", "PSS do processo e heap após GC; uma sessão por medição, sem imagens")) - } -} diff --git a/app/src/androidTest/java/com/keyflow/ui/terminal/TerminalActivityTest.kt b/app/src/androidTest/java/com/keyflow/ui/terminal/TerminalActivityTest.kt new file mode 100644 index 00000000..a3456ed6 --- /dev/null +++ b/app/src/androidTest/java/com/keyflow/ui/terminal/TerminalActivityTest.kt @@ -0,0 +1,110 @@ +package com.keyflow.ui.terminal + +import android.content.Context +import android.content.pm.ActivityInfo +import android.view.WindowManager +import androidx.compose.ui.test.assertIsDisplayed +import androidx.compose.ui.test.hasContentDescription +import androidx.compose.ui.test.hasText +import androidx.compose.ui.test.onNodeWithTag +import androidx.compose.ui.test.performClick +import androidx.test.core.app.ActivityScenario +import androidx.test.ext.junit.runners.AndroidJUnit4 +import androidx.test.platform.app.InstrumentationRegistry +import com.keyflow.computador.AutenticacaoHost +import com.keyflow.computador.Host +import com.keyflow.computador.app.ComputadorApp +import com.keyflow.computador.app.DependenciasFalsas +import com.keyflow.computador.app.TerminalActivity +import com.keyflow.computador.sessao.DonoDaSessao +import com.keyflow.computador.sessao.EstadoSessao +import com.keyflow.computador.sessao.ResultadoAbertura +import com.keyflow.computador.sessao.SessaoResumo +import com.keyflow.computador.ssh.CausaSsh +import com.keyflow.ui.theme.KeyFlowTheme +import org.junit.Assert.assertEquals +import org.junit.Assert.assertNotEquals +import org.junit.Assert.assertTrue +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith + +/** CMP-24, 29, 30: a `TerminalActivity` com o emulador real e conexão falsa (sessões do [ComputadorApp] de teste). */ +@RunWith(AndroidJUnit4::class) +class TerminalActivityTest { + private val instr = InstrumentationRegistry.getInstrumentation() + private val ctx: Context get() = instr.targetContext + private val host = Host(id = "h1", nome = "dev-server", endereco = "dev.example.org", usuario = "yan", autenticacao = AutenticacaoHost.Senha) + + private fun resumo(id: String, dono: DonoDaSessao = DonoDaSessao.USUARIO, estado: EstadoSessao = EstadoSessao.Aberta) = SessaoResumo(id, "h1", dono, false, estado) + + private fun esperar(ms: Long = 10_000, condicao: () -> Boolean) { + val fim = System.currentTimeMillis() + ms + while (!condicao()) { + if (System.currentTimeMillis() > fim) throw AssertionError("tempo esgotado") + instr.waitForIdleSync(); Thread.sleep(25) + } + } + + @Test fun activityNaoPedeFlagSecureEVoltarNaoFechaAsSessoes() { + val deps = DependenciasFalsas() + val app = ComputadorApp.paraTeste(ctx, deps) + val aberta = app.abrirSessao(host, DonoDaSessao.USUARIO, androidx.compose.ui.graphics.Color.White, androidx.compose.ui.graphics.Color.Black) as ResultadoAbertura.Aberta + esperar { app.gerenciador.resumos.value.any { it.estado == EstadoSessao.Aberta } } + ActivityScenario.launch(TerminalActivity.intent(ctx, sessaoId = aberta.sessao.id).addFlags(android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK)).use { cenario -> + cenario.onActivity { a -> assertEquals("D17: sem FLAG_SECURE", 0, a.window.attributes.flags and WindowManager.LayoutParams.FLAG_SECURE) } + cenario.onActivity { a -> a.onBackPressedDispatcher.onBackPressed() } + instr.waitForIdleSync() + } + // Voltar saiu da tela; a sessão e o emulador continuam. + assertTrue(app.gerenciador.resumos.value.any { it.id == aberta.sessao.id && it.estado == EstadoSessao.Aberta }) + assertTrue(app.emuladores.de(aberta.sessao.id) != null) + } + + @Test fun fecharAAbaFechaASessaoENoveSessoesMostramOMotivo() { + val deps = DependenciasFalsas() + val app = ComputadorApp.paraTeste(ctx, deps) + val cor = androidx.compose.ui.graphics.Color.White + val sessoes = (1..8).map { (app.abrirSessao(host, DonoDaSessao.USUARIO, cor, cor) as ResultadoAbertura.Aberta).sessao } + val nona = app.abrirSessao(host, DonoDaSessao.USUARIO, cor, cor) + assertTrue(nona is ResultadoAbertura.Recusada) + kotlinx.coroutines.runBlocking { app.gerenciador.fechar(sessoes.first().id) } + assertTrue(app.gerenciador.resumos.value.none { it.id == sessoes.first().id }) + esperar { app.emuladores.de(sessoes.first().id) == null } + kotlinx.coroutines.runBlocking { app.gerenciador.fecharTodas() } + } + + @Test fun girarATelaEnviaWindowChangeComOTamanhoNovo() { + val deps = DependenciasFalsas() + val app = ComputadorApp.paraTeste(ctx, deps) + val cor = androidx.compose.ui.graphics.Color.White + val aberta = app.abrirSessao(host, DonoDaSessao.USUARIO, cor, cor) as ResultadoAbertura.Aberta + esperar { deps.conexoes.firstOrNull()?.ptyInicial != null } + ActivityScenario.launch(TerminalActivity.intent(ctx, sessaoId = aberta.sessao.id).addFlags(android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK)).use { cenario -> + cenario.onActivity { it.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT } + esperar { deps.conexoes.first().tamanhos.isNotEmpty() } + val retrato = deps.conexoes.first().tamanhos.last() + deps.conexoes.first().tamanhos.clear() + cenario.onActivity { it.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE } + esperar { deps.conexoes.first().tamanhos.isNotEmpty() } + val paisagem = deps.conexoes.first().tamanhos.last() + assertTrue("colunas ${retrato.colunas} -> ${paisagem.colunas}", paisagem.colunas > retrato.colunas) + assertNotEquals(retrato.linhas, paisagem.linhas) + assertTrue("pixels vão junto", paisagem.largura > 0 && paisagem.altura > 0) + cenario.onActivity { it.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED } + } + kotlinx.coroutines.runBlocking { app.gerenciador.fecharTodas() } + } + + @Test fun altScreenEscolhaDeTextoDoServidorChegaAoEmulador() { + val deps = DependenciasFalsas() + val app = ComputadorApp.paraTeste(ctx, deps) + val cor = androidx.compose.ui.graphics.Color.White + val aberta = app.abrirSessao(host, DonoDaSessao.USUARIO, cor, cor) as ResultadoAbertura.Aberta + esperar { deps.conexoes.firstOrNull()?.ptyInicial != null } + deps.conexoes.first().servidor("\u001b[?1049h\u001b[2J\u001b[Hhttps://tela.alternativa.test/ok\r\n".toByteArray()) + val emulador = app.emuladores.de(aberta.sessao.id)!!.emulador + esperar { emulador.getUrls().any { it.url == "https://tela.alternativa.test/ok" } } + kotlinx.coroutines.runBlocking { app.gerenciador.fecharTodas() } + } +} diff --git a/app/src/androidTest/java/com/keyflow/ui/terminal/TerminalScreenTest.kt b/app/src/androidTest/java/com/keyflow/ui/terminal/TerminalScreenTest.kt new file mode 100644 index 00000000..2c289659 --- /dev/null +++ b/app/src/androidTest/java/com/keyflow/ui/terminal/TerminalScreenTest.kt @@ -0,0 +1,98 @@ +package com.keyflow.ui.terminal + +import android.content.Context +import android.content.pm.ActivityInfo +import android.view.WindowManager +import androidx.compose.ui.test.assertIsDisplayed +import androidx.compose.ui.test.hasContentDescription +import androidx.compose.ui.test.hasText +import androidx.compose.ui.test.junit4.createComposeRule +import androidx.compose.ui.test.onNodeWithTag +import androidx.compose.ui.test.performClick +import androidx.test.core.app.ActivityScenario +import androidx.test.ext.junit.runners.AndroidJUnit4 +import androidx.test.platform.app.InstrumentationRegistry +import com.keyflow.computador.AutenticacaoHost +import com.keyflow.computador.Host +import com.keyflow.computador.app.ComputadorApp +import com.keyflow.computador.app.DependenciasFalsas +import com.keyflow.computador.app.TerminalActivity +import com.keyflow.computador.sessao.DonoDaSessao +import com.keyflow.computador.sessao.EstadoSessao +import com.keyflow.computador.sessao.ResultadoAbertura +import com.keyflow.computador.sessao.SessaoResumo +import com.keyflow.computador.ssh.CausaSsh +import com.keyflow.ui.theme.KeyFlowTheme +import org.junit.Assert.assertEquals +import org.junit.Assert.assertNotEquals +import org.junit.Assert.assertTrue +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith + +/** CMP-24, 25, 28, 29, 30, 31: a tela com o emulador real (a ligação vem do [ComputadorApp] com conexão falsa). */ +@RunWith(AndroidJUnit4::class) +class TerminalScreenTest { + @get:Rule val regra = createComposeRule() + private val instr = InstrumentationRegistry.getInstrumentation() + private val ctx: Context get() = instr.targetContext + private val host = Host(id = "h1", nome = "dev-server", endereco = "dev.example.org", usuario = "yan", autenticacao = AutenticacaoHost.Senha) + + private fun resumo(id: String, dono: DonoDaSessao = DonoDaSessao.USUARIO, estado: EstadoSessao = EstadoSessao.Aberta) = SessaoResumo(id, "h1", dono, false, estado) + + private fun esperar(ms: Long = 10_000, condicao: () -> Boolean) { + val fim = System.currentTimeMillis() + ms + while (!condicao()) { + if (System.currentTimeMillis() > fim) throw AssertionError("tempo esgotado") + instr.waitForIdleSync(); Thread.sleep(25) + } + } + + @Test fun abasTemRotulosAlvosGrandesEFecharChamaOCallback() { + val fechadas = mutableListOf() + regra.setContent { + KeyFlowTheme(dark = false) { + TerminalScreen( + sessoes = listOf(resumo("a"), resumo("b", DonoDaSessao.AGENTE)), hosts = listOf(host), ativaId = "a", + ligacaoDe = { null }, aviso = null, onSelecionar = {}, onFecharAba = { fechadas += it }, onNovaSessao = {}, onAbrirLink = {}, onCopiar = {}, lerAreaDeTransferencia = { null }, + ) + } + } + regra.onNodeWithTag(abaTag("a")).assertIsDisplayed() + regra.onNode(hasContentDescription("Terminal 1")).assertIsDisplayed() + regra.onNode(hasContentDescription("Agente 2 ●")).assertIsDisplayed() + val alvo = regra.onNodeWithTag(abaFecharTag("a")).fetchSemanticsNode().size + val dp = ctx.resources.displayMetrics.density + assertTrue("alvo de fechar >= 48dp", alvo.width >= 48 * dp - 1 && alvo.height >= 48 * dp - 1) + val nova = regra.onNodeWithTag(TERMINAL_NOVA_ABA_TAG).fetchSemanticsNode().size + assertTrue("alvo de + >= 48dp", nova.width >= 48 * dp - 1 && nova.height >= 48 * dp - 1) + regra.onNodeWithTag(abaFecharTag("b")).performClick() + assertEquals(listOf("b"), fechadas) + regra.onNodeWithTag(TERMINAL_VAZIO_TAG).assertIsDisplayed() + } + + @Test fun estadosTemSimboloEPalavraNaoSoCor() { + val estados = listOf( + EstadoSessao.Conectando to "Conectando…", EstadoSessao.Aberta to "Conectado", EstadoSessao.Reconectando(3) to "Reconectando… (tentativa 3)", + EstadoSessao.Falhou(CausaSsh.RECUSADA) to "Caiu: O servidor recusou a conexão.", EstadoSessao.PrecisaDoUsuario to "Toque para reconectar", + ) + for ((estado, palavra) in estados) { + val texto = textoDoEstado(estado) + assertTrue("$texto deve conter $palavra", texto.contains(palavra)) + assertTrue("$texto deve começar por um símbolo", texto.first() in "⟳●✕⚠○") + } + } + + @Test fun avisoDaNonaSessaoApareceNaTela() { + regra.setContent { + KeyFlowTheme(dark = true) { + TerminalScreen( + sessoes = emptyList(), hosts = listOf(host), ativaId = null, ligacaoDe = { null }, aviso = "O limite é de 8 sessões abertas. Feche uma para abrir outra.", + onSelecionar = {}, onFecharAba = {}, onNovaSessao = {}, onAbrirLink = {}, onCopiar = {}, lerAreaDeTransferencia = { null }, + ) + } + } + regra.onNodeWithTag(TERMINAL_AVISO_TAG).assertIsDisplayed() + } + +} diff --git a/app/src/debug/AndroidManifest.xml b/app/src/debug/AndroidManifest.xml index 06f8f0ba..276ac4a8 100644 --- a/app/src/debug/AndroidManifest.xml +++ b/app/src/debug/AndroidManifest.xml @@ -2,8 +2,6 @@ - - diff --git a/app/src/debug/java/com/keyflow/computador/app/TerminalSpikeActivity.kt b/app/src/debug/java/com/keyflow/computador/app/TerminalSpikeActivity.kt deleted file mode 100644 index 0725652a..00000000 --- a/app/src/debug/java/com/keyflow/computador/app/TerminalSpikeActivity.kt +++ /dev/null @@ -1,123 +0,0 @@ -package com.keyflow.computador.app - -import android.os.Bundle -import android.util.Base64 -import androidx.activity.ComponentActivity -import androidx.activity.compose.setContent -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.material3.MaterialTheme -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.sp -import androidx.lifecycle.lifecycleScope -import java.security.MessageDigest -import java.util.concurrent.LinkedBlockingQueue -import java.util.concurrent.atomic.AtomicBoolean -import kotlinx.coroutines.CancellationException -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.NonCancellable -import kotlinx.coroutines.channels.Channel -import kotlinx.coroutines.launch -import kotlinx.coroutines.withContext -import org.connectbot.sshlib.AuthResult -import org.connectbot.sshlib.ConnectResult -import org.connectbot.sshlib.HostKeyVerifier -import org.connectbot.sshlib.PublicKey -import org.connectbot.sshlib.SshClient -import org.connectbot.terminal.InlineImageLimits -import org.connectbot.terminal.InlineImages -import org.connectbot.terminal.Terminal -import org.connectbot.terminal.TerminalEmulator -import org.connectbot.terminal.TerminalEmulatorFactory - -/** Bancada descartável: somente debug, 80×24 e SSH de loopback com credencial falsa. */ -class TerminalSpikeActivity : ComponentActivity() { - data class Saida(val bytes: ByteArray, val dentroDoWriteInput: Boolean) - - lateinit var emulador: TerminalEmulator - private set - val saidas = LinkedBlockingQueue() - val dentroDoWriteInput = AtomicBoolean(false) - @Volatile var erroDeConexao: Throwable? = null - private set - @Volatile var sshAberto = false - private set - private val enviados = Channel(Channel.UNLIMITED) - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - emulador = TerminalEmulatorFactory.create( - initialRows = 24, - initialCols = 80, - maxScrollbackLines = 5_000, - inlineImages = InlineImages.On(InlineImageLimits(decodedBytes = 16 * 1024 * 1024, encodedBytes = 8 * 1024 * 1024)), - onKeyboardInput = { - saidas.add(Saida(it.copyOf(), dentroDoWriteInput.get())) - enviados.trySend(it.copyOf()) - }, - ) - setContent { - MaterialTheme { - Terminal( - terminalEmulator = emulador, - modifier = Modifier.fillMaxSize(), - forcedSize = 24 to 80, - initialFontSize = 6.sp, - minFontSize = 6.sp, - keyboardEnabled = true, - showSoftKeyboard = intent.getBooleanExtra("mostrar_ime", false), - ) - } - } - val porta = intent.getIntExtra("ssh_port", 0) - if (porta > 0) conectarFixture(porta) - } - - fun alimentar(bytes: ByteArray) { - dentroDoWriteInput.set(true) - try { emulador.writeInput(bytes) } finally { dentroDoWriteInput.set(false) } - } - - private fun conectarFixture(porta: Int) { - require(porta in 1..65535) - val esperada = requireNotNull(intent.getStringExtra("host_sha256")) - val verificador = object : HostKeyVerifier { - override suspend fun verify(key: PublicKey): Boolean { - val hash = MessageDigest.getInstance("SHA-256").digest(key.encoded) - return "SHA256:" + Base64.encodeToString(hash, Base64.NO_WRAP or Base64.NO_PADDING) == esperada - } - } - lifecycleScope.launch(Dispatchers.IO) { - val cliente = SshClient("127.0.0.1", verificador, porta) - try { - check(cliente.connect() is ConnectResult.Success) - check(cliente.authenticatePassword("senha", SENHA_FALSA) is AuthResult.Success) - val canal = checkNotNull(cliente.openSession()) - check(canal.requestPty("xterm-kitty", 80, 24, 640, 384)) - check(canal.requestShell()) - sshAberto = true - val escritor = launch { for (bytes in enviados) canal.write(bytes) } - try { - for (bytes in canal.stdout) withContext(Dispatchers.Main.immediate) { alimentar(bytes) } - } finally { - escritor.cancel() - canal.close() - } - } catch (cancelado: CancellationException) { - throw cancelado - } catch (erro: Exception) { - erroDeConexao = erro - } finally { - sshAberto = false - withContext(NonCancellable) { cliente.disconnect() } - } - } - } - - override fun onDestroy() { - enviados.close() - emulador.close() - super.onDestroy() - } - - companion object { const val SENHA_FALSA = "senha-falsa-keyflow" } -} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a050c058..6f7f7952 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -58,6 +58,17 @@ android:value="Keeps user-started interactive SSH terminal sessions connected while the app is in the background" /> + + + _M4A-oh>D1U2nzOc1E?sd z*ilhXv4a#5QBhHfv?Tv$cJEE@O%w2azrXkM`S0f0b7tnunKNg~&X&6&E<%WbgO~U^ zq_k_laQBR%r252zgt)hKNbS-4&zsJ!CDkwZ2nY5 zza-RG?rxvW5YK-VzS>>+Yqo@0aOsw=@qT#p?23c0GgzlDg8 zNYFWeN>kmoenO6syNRE4BnqiOE|FKrR8oz!C7;3H-;ypQ74lt4d+c3E8`6s;;rI>t znDn*x`J@hMNCuNZ*t5t`k_LVZ;s%lV&^Q3$LC`Q5d{cxP5{uMCS$&be3t5YlMDi#} zhD;jiPx?TH%2UmmqzcjoA#M;-CLyLC@;4z>p`!`7E+h}7wMRvcAx{?)53PBm8<~x= zUqIe0SYHQNi<;a=mXlMkp)Kn3F=AdJaqutQr$Sr7UIk@k1@|$i1>FU^4rwTZ?qg8O zfZ$HKL9o4GuL_Ai!QJsrUsy=%5ZbfC@;5=fnxORLd{8e$qP1Oq7V;M$&E`WEh3MeC zgODY#ux}C6LEIpCbQHN2o|&Hy0j*KRt_7_Lkaq#cA$BcjO(*2Wdy>3P)44 zO9&y)6s8th&5yd$b{~+Bt>DpPQF~er%|m_BH^@6WLbao`imiqA)4q0zR3p{56``$U zI`$RVeX#)BBM8%QL zeDgs&LI*}z-WAM<1mT9rO+oFe04atvLO$A}7G$Zd)H-TML)*F`up*HpB7Y)My5rak ze(wi~#UvWmsCJ(n1Pd!5zcT_Io14IrhKQkg5|Nq+JLm{*ja&q|`=d6_9z|LqW|VFH ze7narBt4NcoeYFu5^c04oiKuFzwQH@Rao8LwmQ@sx}cn{s6*9!(7G0kmTTb)Most# zD&Rw-CDhxml@{*d;bEtz)86g?jzE8;=at#$TZgcJX15@1#Z>G&Fe}m4ps^PE?R}t& zF%kvLPjt3girIN3xr?lUhnJI05 zf`0|{Pt3vS(=`!S4|^iwLi;V?DCnLC5ZD1g8mD%<2U_4Pw8MJnN+roir}L*D`&Ron z1A1$stQDATqwKm>L3|$Sz8)ndVxEqNhRWE#v84!X^8=y1EowpX`%$PrA&P87N+{eG zWjD3qM=irawK*}gk6(z~shWtbFY1yAy>)E69)Z2i77Z579r$q zv=KmCDer^4r}73O?&)A&5Sq`fZ7?eDw8Kzu!du~6cnD`KNUQ+RTWnb>J)6w7W2(SM zec@L+U$zCM8}(>YjN+yw#r6iMT{dl{JbSN$BL&^Ff^fo95t@ei(;H(&jQAl^y z_DLO_?Ny9qpPfRz6xykr51^E$)A%@`CTegRIxmyGb{NSMZj z$A{$qErs{GPzzw)TF|v*ZN44F@R@`jW9; zqw8CH%ezp(+t$%O1k3EiAhp|;T1(S#wxcw(NA~voo{a3aG}g9sOxn^pXqzO=t2Hp6 zEJq3VVa(H&P81+umYIR$CdACf`Y4Ok&HEZVodIZX%imq23wX-?x5JU8{ojZF+x7b= z{r~qhjw~@RfIhGZGscDB9By~ah{Izzn^eWzL`cQFLpZvK%cfxSjt9f}G%pvaImCdJ zVW+$D&Os))fp;N~i|B}0P9yU!1#yMki~SxaF7Gn*5Yi&=B90zN4ftBwCTOJ1tV>~DbCw{ zF^cMkkY}PM31Q11(bXx++&5Z&&dzJ9G(xc<>6Hi z!L>O!IyXDViil}WdfTBCaGlVW>0|>CT7x@WI?gqioH0^yzU+bY zp4jR7hK8AZE$`tPB;-FHD?FnZvUZLT!_J^kUq2C%;_j&yBR7apN&W;f1^`5Rh(CU$}qn~DBSd-%WJ>^5fYzKlMN{z7|o zg^*f==(U}_<>iINhFD62@#s~5NA~+r|3N(ZYe-K-*6@-0OGFB_BiPR|;_SYRwO??{ zyX08xXbtgpj>{n#P>k#REi^K1z4@^utX9sLvXf9^Zr&Lp+JUAxR(EQa7p9%&EXeI> zge9wjT)wwL;c(e}&lHlfWotP(ifRwVhiJIQU|b4vk#>br9beINZh`e-{&R=qil+s$QUOOL3wlfO`3hpg z$|{Hq?Z}WVWkHni^dd4 z6Mw0xRFK}&bv8O`?JZ;xY{T3`dsd_t^s>ma26E9n!7&#$V+R0t3@SGg^LM4363ST1EPTDhjKUt+#Nv zgu;rCE~vTP9wFZsE;T$H&KFhc%naf2j(kbEipCd>3D;IU4|nBztau40Hs9YgSkM>4 zvJ`6hu#`}bi--ya&|`}9Q75VBTm(IN=%?|8+wC9foxl1G7MX8-C|_xo7iaUe#)a&R z@EtP4;dbv0j}P+xP@ZcoBP18DD-?(8up%3JS!m>hrG-2Z7FCE1v#Ukk54a+Cjze7W z4@@5)#4;NH7~yY!8xvo zmhc`M@=H;_LMnLP$@{55MIrB3D@ZBeLON~V9Gt*QG#vh|BNw zRZx!I9_W{7fk+EOeKnLTSSGF#B4a}FG=I2%!lep)RDA9*9k_~#$ayu?+QsF}w|Jy& ze?-opPI`W{&yf*Y?K;qs91S7e`T8Inilg}=Z3@?9r{=eS9kTBM74}4tF!Ge-VMl-Q zWfs;GW($3S6x>Sczcjfd4Uv5d_k;%omC>g)p)EQ13<#^DBAX}Q;z~$M1SZ=uUGVI< zOHg_;sf2sb_T9W-Okv_Y9SX)4v`4U=oVy23d*I%QQ)867Hc}0}>bGNBJMjgcq2Z!y zNn7e>JI%f)2(C-M&32-l7A!qKg5Z8guzwZA73NCx_eI!oJMOe&3}TO1-_liB;Z;$n zKjx3#!UYjh277Jn^jQI=rEGb>m6#YCDhcbqsdz?Luq}32jOJoST2Sn8fp{dBf5kSL zj3aYMbuy83K`W(3N`;3CT0cA%_t^+~)TDyA2oE#3(^zP{2K!FfY9rqkTM5RYJs%Wk z3~^x=P^}T;JS1b&@VPo7fd)doufS{Ypfdx7m0Ms#FfGi-C0kffSmd3Dg80(7;JtHO z#I|lRM*U)p+eGJT0ApY+DT|n3%a^9BP+C%C7`_WXor1BrL;;&#HIz_r>moa`;Ig*EG;q*Mtnr?ib(y3Kn+|2IlCk1DM>!m@;0pssnE=8 zXTbBi68mRK8fiSP0fRj#bU%zlIle-QefF`X!bS!4N@*Iy((JmxEUX@=)uDEBH0R5C zLtNzS7K$xQ(I)l?yFrgvEUfR}hhfkCC2E<8IcTQ+-U}5u5hhn~HlpLFAas;G7A93Z z8!GQu@a*YGEyx!RrRPV0sU8f>vggG|N+~6D9uDPh=rH#E&A;;Xgi=GaOo+K|T2S}v z&RS}Q{zxs0r!4=C?fPuS`5Uw3P`iiMwO0-FjkL}2~a12{{B3D@;+0IRC-^}K&;o#J<(B1iK$QL2v zj|lzyz*MN1inmbhRb6OZe(h?pzM=O?!dC4?@|G(SQ#hhv*-$N^$Xot;WV@r;tZ=pVcUvwd)Uu0Si5E8`htDzL ze5tB$DA7;a+)%!2$P}D?LhntL|EDb1c9r>$TI}bTxE8hPKS?7U=alf){>L2j9E7d7 zUhz+Q^4F}63g`GQ+qbAr+&#q}UPJ^>?GN3dSepMPU%p5wIYTneY9bU0(xP@061dS| z@EW(+?6&XzGyTTaUtG<~+AFAHi>Hw{Qt!z1Kv+-RVi!a2{TA#cmV8|ap{u0)H^%5% zD70UfrjqWzU!M{x{V#idp#sYk?aKuc1?R8Q*6#Sl&GlM!9jl)L8w%_y;EL_Vk$qn* zkS>9{29K69zBf~?=$q}Z$J)mdib2bjRPTrpREn=7tVJwj0-`B1GRWUez%!>0{dsylL`p6zzYpfWLl&m2 zfGui&L0X9%Y-x@CMz_k>k}>j(cP%;ohh%~)KF6X$&*^T*GvM%jM=(SpVjYQ4+<&}k z!QZXedhI(lN;+E$`zs*CKH_^I_UN7QPro22RJT&E3D9S6{L0R@F=G8f zpNP>beQYK8IDD*y^G>E~JywGtov}*a1ezStgY4GIw=AsfB5F~(*2q-+Le=)S{dQe= z()IYYP>WHkomSaQHsg2Y*Sxu0Ni+5SuIEK3a)qg3?P1^BEPy%A?t} zKlv=8+WwuOt*4lAj62Pxymf^P5qD$5{asqVA~qBk(YLtBB5_UeE=sA}4f?oLouwz@ zT=;Khw$hdV@23_$3psQ3`G{+o8?VPZHz`$ucZnk9N}ZSU zXV1ty|2|awdFtMOrFe>yyO?okpBut;hdnC@k1pWx)hNt4^ta>%2oK{IObFV)ILxPo zetj6U#{T8HeO{Vq$3)x(DJbwi#?d)D1t>Ik=j)$NKE>OdpW-WVC2tGqD!b(58&2`t z@ABPn_F^;E&wsNkBKf*z#v;C=O-B%;68zt&v;|B^%N;TrV%H~X5~84rc7(2ALBgX;gw zy|lF1>-sDBKbFIpd;Z6a`adzJ==>6zIYX415#qyXspd5-HT9YkX?gj=|E)DzegXgU zOr!@Qzupv?R&rIGw?ayN=b+@w*PBxMHRkndEA2gr>(IsEsy}=yer240?Hn$Okx=Zl zPD!(JN%4_7|9heT(yH=?4gOE~BWy;19YyD_8!_&N?@yIhSn>TTJO}-{T>pY!6JfLz z|CU8~o)URyZZ0wTKb;V~Lwt>Di`>6Mz6QnStx#<2jYSr@$_S~smZt*$$*~i09t#;! zB6V5#KLG3KuLb_=8~qBSvk$hv*G<0`PJbO1+Ud85ojvl3$^Pne=q)@-?XMul;_WNC zJ72P=zch1p`c?7BJ^ZWHCG&pR(G>5WIJQv>=o_FyP(Rg3?6fR=nXw*zx0Z&lJaxiX z82c9co$BJgUHuSQjjuBnJ{Yt0ul4 zKk{m9&WYSXR~6J7|KlLn%w@0a&H47q{G1~>U*x=pJYVEKapf~uvn%(9t6Q$VfB6F( zzYNBixjsCc_%^rpl}%SRQA?bffNsu}u58cE%w3whAGG$B?N_#6oj}WX_S~gcKE9Nk z^ZS(@x$CY@zdYy4NtF9~FlIlMxs*(g@IwbX$N4Mkk$VSXYF{~@tLOZl^LuXpD{FI` zqts1#8K_AdzK2i0myhq`+uzI|WPde(Ccc&52w%&OMrxe%wR{?nZv+2`|J-m2UxISJ zypON#V?Tzp+V_ zz5d;Jj#M9!Ebe>AWR9zWYp&~F*Lv4xSHN}1^{eZ=E6*M6Zt6~V?{1pP<)icMl%(KF?*|XpCl~?li@DB10_1@=Q?|sah?cL=);{DlsUihWTqADA! zT=KbmqOYtk)>qxv$k*D}-Z#lN(>Kev)c3q^hwqITcZ?iUIi^}n-Iz8p%VQplc`oMl zm=9tO#vFiAPX{BUyD&uOO@{;~h; zqVqT94#Taw!I(ekwW~~gWRt6r>uz{#lj{Z7$F7sEbFQoI^6rN4*emY$++VxTdWeVd zsPLHI)5J3k9$N^Ht@1qP`NHe+D&C&nA>P&AhrEw^pZC7x{n~rNdk!9(2aj#CJ*N4} z`>Ofs`wSSd+b2WcQHR=qEceZ#QI}v#5Rge zj7^U16FW3^Z0yX~`LU~F*T?RNeG4A@-S767_gC{b@h^qP*2800s*!4be6IZIxNUKt z#2t(~neVX)@YtprCOkGC9@|jkU3lzdjq^2$?Xku1SQI=)j&3>{I8J^bKVJTc{F3n- zIYZ77+hYT%$MCEB6M1jvy@{30Q+ZqS*1>}$Z&==-JltW-v+t_r;+}2plw5q{BzFXm znp-AU&gF91TqZXvm*jkv^Cd?A!JI8Q8*|p>tfKjIM&=Cqd-M;V|FG+aSC4N${xl)S zAEoi2E01R#&pe)Sd@y*-rpJCgc8ta!`{3BlV-t^!1J~Pd{zLa2s&uIQx9>ap z3Lne1DYM0n!?1KVSMb*wu9~j)!I;h%x4m3xINE1YR|dGOpm>SI)t%;u++29p=gM$p zxx&8X?79VU_Wf_y6xUrLdDnc0b8T?h_PO9|y18C*z3TeJ;hm#vuj^YoIu);Psv?VWzl-C0ZnU?1 zFJ{pX-5(t0+l@qmBTDk&Zgx(6+9IYj`mc-v9iZrjd~h-Zt~zuuC_#D55}CQ zod^BN(*fw{>EwaWJn)&Ps|Owf?d}P-xMzVKUg%lmxy!TIv&6F$smp-nn8{YsH1Ml{ zyFK@N)_NZB*dyEXpywgadd~*W!$FCSo<}^JaISb1b02z;XRDp>aW9_KdM|r%FT{&E zHHt7kCWeV+{7f|_j;YSnU}`e87);1a0#k>n%hY4)GYy!A%uP%qrZLlmY05NXnlmk! zmP{gZGt-J`&9q_KGD%D_lftxP+B2vf(-G*zbY{9RU72o7cLqIyK~G?MGQF7IOdqB% z(~s%Tq%rBt0A?UFh#AZbVTLjpOeQmo8O~%eBbbrQC}uP>h8fF@W5zQRm|K{M%p_(q zGliMTOk-|kZeyl1Gnm_%namx`EM_({hndUFWA0?;GYgo7%p&G4W-+sbS;{P9mNP4u zmCP#UZe}%e4|6YbAG3zJpIOU1z^r2)WFBJHGaHzPnT^aN%qC_t^Cz^sVZCe=%djlVu{=MZvk7b+wk}(bt?auaK zQ`w$uFSa+^hwaPuWBapdY&tuD9mo!12eU)ip=<`5$qr+Ovsvs2b|gEB9nFqm$Fk$t z@$3Zl7Iq>#iJi<&VW+aw*jw4#*y-#H_I7qAdj~s(~d`huHP(2KHfgBl`%uiQUXT z%09+!VYjl6vrn*3vQM#3v(K>4vd^*4voEj#Hk;kXZfAF}FS0MOFS9$@SJ+qCUF>f5 zHTHG(4R#OvCi@oqHv10yF8dz)KD(Fwfc=pDh~3A2%znb|XAiKSvY)Y^vj^EP*e}_y z*ss}d*l*eI*hB1L_IvgSdz3xK9%p}GPq06-C)uCaQ|!;|FYK@EY4$hvclHnV4Erbh z7kidH$DU^|uz#}`*-PwY_6mEI&0%xdJdSWK&dqr^FBioz9LsSW&k3B!Nu10noXTmO z&KaD^SzH;eELV;z&sE?ma?xBRt}<7JtIGMf7%rCcbJe&wt~ytPtI5^kYIE^i0#}Et z%hluRa}BtL+)Z2~t})kyYsxj_nsY6&^Ay`f~la{#+WD&JExOa)Y?R+z@Ukm%(Ln!?@vG7B_+$ z$&KPhb7Q!%+&FGLH-Wo_o5)S#CUaA`soXT~R_-=#IyZy6otw$s!Oh}kb91=4+&u11 zZa%kwTgWZq?&216OSq-nGHyAyf?LV0;_l{FbN6ufa`$m-xcj-a+ymS??m_M$Zauew zdzjnEJ;H6`Hgk`1k8xYLt=!|>6Wo*BQ{2bKLXX3tWK9=C*O$xgFe#+)Lcc z+)nNl?p1CVx0`#7d!2iO+rz!dy~VxFy~DlBy~n-J?d3k;KIA^)_HiF`pK$xR1Kg+F zXWZx9LGBCgOYSS~YwjEFTkbpV5OhKz?kDaP_cQkk_bYdr z`;GgZ`-3~f{mK2so#oDP=eY~q-`qv+5_g%q!d>NZxLhs|AF*`tZr;Ot`6!;@S)Sv0 zUf@Mu;$>dpRbJzD-r!B%;>+-5`Eq=Dz5-v7kLD}!mH8@sRo=(P@Ugs~ug1sm)%hBH zO}-Xin~&!c_&R)Dz8+tnZ@@R?Z{i#Ajrk^gQ@$DBoNvLmuz75}&PvVpL z6uuqbp6|eS<)`tt^0)ER`5FA}{7n81 zeilEQpTp1P=ka&)^Z5n*LVgi{7r&Ta!Y}2Q@yq!Y{7QZme>cCHzlXn-i1*!~9165q=ZDnSYdjjNig<--!19{x@KE&gr(9sXVZJ^p=uFaH7mA^#D- zkN=qegx}8};6LR*<3HyQ@?Y>@@?Y^^^WX5_^55}?_{047{1N^re~drQ|G=N%f8_{;ni{wklt=ki$43ogMe zcm%HyB`^XjZ~`v~f+$FWEGU91Xo4;nf+<)+8KJCDPAD%_5Go4MLM5THP(`RJ_=FfC zR`3heggBwPP(!FG)Dmh7@j`-7N2n{*6Y2{MgoeURLL;HE&_rk|G!vQ&ErgarqHwd& zN@y*#5!wn#Lb8w|v=iD39fXcTC!w>@Md&JY6S@mMgjAuY&`ano^bz_B{e=EPnvgCG z5C#f^gu%iPVW^NHWD3KC;X;-$LKrEG5=IMSgt5XnVZ1OwxJ8&KOcEvwQ-rC)G~rg^ zHetFjL%3a-Dcm8<5@ri?gt@{z;Z9+`us~QSEE4V#77I&+rNS~{xv)Z5DXbFi7FG-Q z2=@y232TJ=g|)&1!aCtW;UQtYut9iO*eE4K*$!h3EPDo!i&O7!pp)=;T7RkVVAI5cuja+cthADyeYgTye+&VyeqsX zyf5q(J`g?>J`(l`9}Axd`-KC-r^08#=fXkZ3*k%QE8%P58{u2wJK>OUSomHzA{-Tt z3CD#WgcHJ#!b#yL;gs;R@Qd)Pa9a3H_+9uzI3xTi{3V@}JAx|WtOLU7K(JMxYjL3?d$cus~ijpXcil~a3sEdYZik4VLEGw21%ZnAniej`_ zNvteZ5vz(mF-D9P{bDsj#5l3KSc9$?#hPL*v9=g5CWv*!x?(-CzSux)DBdJC5*v$6 z#HM01vANhnY$+y+H;b*r)?yp6t(YVxiz#9|vAx(q>?n2;JBwY!u3|T_yVyfa6?=-k z#NJ{bv9H)q>@TK?>EZx!pg2ezEDjNeiWw-=zCsX(iNnP#afCQh93_qx$B1LaapHJ! zf_RHKQJf@B7N>|)#cATL;%(w|afW!iI8(esoF&c{=ZJH~dE%Yod~t!eP+TP5B`y}1 zh)cy~;&O3?xKdmt-Yu>c?-B16?-SRE_ls-A2gG&agW^NtdU1pJu((lt1U76EH;a#o zkBM8vt>WY26XKKNQ{vO&Gvc%2bK>*j3t~Xb7PpDp#U0{{;!EPo;!g1u@l|n`xLbTp zd|iA)+#|jzz9qgbz9YUXz9+sf?iD`}KNLR__lX~ipNRX#1LCLRXX5ALLGcUmOYtl5 zYw;WLTk$*bka$@9UOXZm6_1I>#UEhF3Gqkqr1+C~O8i;;Mf_DfE&e9{F8(2&5&snb z63>d~#Pi|>@o({>cuBl0UJYQc9F=mRd=zr8ZJqDM?C}QlxfLd#QueQR*ah zmbyq?rEXGpsfUy*^^|%^y`?@h8YhjHCP=qP6QxPgWNC^tRhlNBzX^u2knkU^U z&6gHP3#CQUUD9G{iL_K&CM}m%NGqjP(%sT(=^p7`={{+VbicG#dO%tyJt#dSt(P`P z4@(=RN2E>CX6aGsF=>mmReD@{LV8kqN_tv)MtW9yPI_K?K?+FO(l%+kv_pDPdP#a& z+9|yvy(;aJc1y2GuS;)8d!#p|x1_hFccgcv_oVlwz0wELhtfyVKIvoW6KTJ6K>Aer zO!{0pD19M)DSahD}5&&k`7DXOGl)m(lP0{^n-Ll`cXP5{Un`|ewKcbew9v3 zze&GKe@JJfKc&A2k2K+xbV<4_U6HOzIa02aCllEvyJe5;m7`=vW@S$1 zWkD8YNtR_rR%K1rWkWV)OD-dqmCMQHk$zO#WOxD1RY;DSst@Eq^0_D}N^+k`K$@%SYs+@-g|i{DXW#{!uO#KjpvVv+_ClynI3aTfQh?k}u0wKe5Rw^l#l`2YA#izt5 zv5H@*ro<`Ll^RM-rIu1#iB}SoI!axoo>E_Fpfpr&QW`0Zl_pA4rJ2%PX`!@K5|x{k zR!VE7jnY<0Qj(PvrJd4V>7aB}Iw_r%E=pIWo6=qBp`8JEp(v);% zfHF`SqzqPuC_|MDB~uxu3|F$05z0tqlrmZwql{I?DdUw1$}P%7Ws)*knW9WprYW~7 zw<*(=8OrU-Oyv$`mNHwJqs&$2DR(OKl?BQ|Ws!21vRGN7ELD~%%as+%N@bODx3XHf zN4ZzIPg$efudG!bP}V6ADi0~^l?}?n%0}f8Ws|a5c~p5!*`jP!9#@`Fo>ZPvo>rbw zo>iVxo>yK_0!p^BP1&yOP+nACQeIYeDz7N7D!Y{3%4^E&${WfaW>K2<(bK35JZUnpNHUnyTJ-zeWI-zkTb!^-!{5#^|I zOgXOnpqx;CR8A^CDW{a5m0y%!mD9>^%J0e_${FQPR9+QSQI%9#Ra8~gR9!VxQ?=AGYFV|MT3)T7R#cQ}3&acXt7hFVjtrPfyC)daPUT34;7)>j*-4b_{}MrvcViP}_c zrZ!hws4dk*^=7q|+FEU+wpEkVWHm)?r?yu+s2$Z#YG<{J+EwkQc2|3-scKKPm)cwH zqxMz%sr}V7HC-K`4paxJgViDGP&Gr%REMd<)hu;{I#L~_j#kI0W7To$cy)q$i#k!A zq)t|+s8iKx>aFT+>U4F6db>JPy+fU)&Q|BBbJcn3o$7pbfx1v#q~4`2R+p$t)n)2( zb%nZ8U8UZwu2%0+?^W+p*QocaYt;wTb?SraL+W~UgZi+#QGG<+q;6IpRUcEgs9V*? z)hE;^)u+^_)o0Xa)#udb)fd!&nyqeAx2rqU7uA>4m(`u>E9$H2E_Jv1n)hPp?6 zQ+-Q)TYX1;SA9=?U)`&Ipnj-+r0!EcRzFeqs|VCi)z8$=)r0C6>X+(Q>euQw>bL55 z>LK;8`n`HYJ*pm4kE=hZC)6L+lj=|EDfMUd7xh>5wECO+yZVQEM*UO$OFgTeQ_rgx z)W6k>>LvBEdPTje=BT-9o<=m6=GHu#SBugZjnz1f*91+}Bu&;7P1Q6_*9^_nEUk=I zRx78K*D7cgwP>x9R#~f}Rn>f2j25f;wQ5?NR$Z&1)zoTfwY7LHL93(H)#_>WwFX*4 z?Ix{})>vzzHPxDF&9xRG@H_15}meYJjCe=SW**9K?{cZJu_gHeXwyEz}li zcWH~YCE8MLnYLV8p{>+bX?JU@wR^OCwfnR++Wp#E?E!6__MrBVwqDzyJ*;ii9?>>w zo3%%^$FwclR_$@^3GGSkDeYPqh8o0qs-mGwpNjp!S9K zrS_Hfwf2qnt@fRENIR^3uN~2jYR9zW+7H?Z?MLmT_LFu>`&s)%`&B!w{igk{{h^)F z{?z``&T8kh^V$XNZ|$OXNxQ6F(XMJaTCSFdf6C|5-MUBj>QOqQvpT2qx}b}?q|3UZ ztGcG^x}lr8rI*pm>gDwEdIi0r9<5i>E9+JCs=7~)(PMSLUQLhFtLruNntCn0wjQr1 z=ymkEdOf|q-av1t-=sIv8|zK#g+GdKs|D&dN;kh-a}8-d+NRP-g+Osuij7Zuczth`T%{PK1d&|57CF}8G5EZOdqai z=_B-!`Y3(0K1Ls_kJHEN6ZBj3iTWgcvOYzhs!!8z)o;_M>ofG*^_lt|`Ye66K1ZLc z&(rVJ=j#jfh591>E`71SL|>{e)0gWj^p*N5{ce4=evf{yexJTZzh7UgKcKJEAJiYx z*XtYfhxLv6Bl;$Nv;L_5n7&2dsz0tjp+BiVr9Z7dqd%)Zr$4X1pa=A9eVe{r-=V*# zzofsc@6=z>U)6W%yY<)f*Y!8_J^GvaTl(AjJNmo&d;0tOUi}08L;WLtpZ>A_iN0Sy zpns}=rhl#<)W6Wb)W6cd*1yre)xXmZ>4)|2^&|RG{g{4S|3N>Y|EQnTf6`CsKkL8f zzv`#;-}K-0KlC&DpZZ_=S^b=TUcaFKtzXnH>6i5@`c*wg&(-q`Vz>;q;W4~Ml))IR z!5O?E7@{E=vY{BNp&7bi7^YzvWsI^$IitK$!Ki3N8jPb?<;}&D0G0B*0OfjY!(~Mh<+l=YP4C8iV zrg4Wc%b0Dt80(A&jfaf&#s=eIW25nivB}tMJZd~^BY=pBkSTpBo2_FN`mZuZ*vaZ;Wq^?~FsnVdHz_h;h_7W*j$uFisdh z8YhjPj8n$X#xKUN#%bd><9Fi^X9Q#2)0HWgDfHB&bY(=;u!j9Jz!XO=fBm=(=vvyxfatYTI* zeP)aqYx>P}B>g`NBGtFVpQ_Vcu@eH19BHnX}C~=3H~0d8awwTwpFV7nygNi_InGQgfNP++1OEz2rnm9@%Q<*f=< zMJw8>WL37RSXC{b6=TI(eyf@lXH~aqST(I$R&6WZO0eo!b**|dS*cxIDwKA+sYnV0M%CbgSBdt-^Xlsl$)*5GxwoRo30sYU>{BUh6(719*z3ae;@HEzSD2Se*CxM@UUcfH^o{hWk{}o;50BSpZYXNTyxbgtJ)8H--M1vm$+7P%2 zdW1`0}t$_aLohtJD~3uc;bMXh{w}+ zPZOXS_`5)-0k?vuPv5C7z_lE7A%Lgxt`(p`xb6c_pUBg;TLbzSupj)BpkDxAfd}=v z0BR@d=T!jOCMQ7A243pR>Yzh_q2S?H?`i#9-yW2f{WJK^plE9^+S-l2A)pUXxO?GU5BRIf zBJjOIH#(qgTV)e)3GoBa{ZTIp_YP3ef%`>J%>jKs!)F2(WMH4KtOMFFeC2^y#KT@+ zH3#$!4j+6$LHmfWz607vV&^Kygp(_?TJZS$|DhGHPgZhCu@J&E#0LbS-zld!F zfO=YiqHj=mQb1`K@U#O>c0k|DiKStHzMm6I(FuG<&@K+>yE?Jm9C*5d_HjVp-iht+ zz|$RcC@=zfF}7pJ0#m{F14X}!MW6FzfX)Y&f*%gL3P5{##(}N}wt}Ayy2Al|D=2oS z1NvrA>@EQPkIqA}ZvpRsUkr+ILP6)ISd5L>55X@7{lo#CpJLHo6rQ_5k2~KsSI`@#PTias0n1^C}UPXdVZ!iKmY=sXyQ@kZeV zs@Hem#ki|J!h!c9=mZD!ovP{+9e6K;qCF_Qu)X>wfZBEy|4Qe)@N1;qK5vhqXqtKSM$~s^u-`N3E0Ti~^T7oyWFy7!^8w}dKHVmxIARc2jKFtAx zesB~rM+Lq^K;i~;r-AwMDhXV}4^yk9Z^*et-$zbpe*;MrLm=-t5k;A?_@ z;DA11`~^1r$|HUls0efizX=p}oE`%H1SoW#UPzy@5Q45k{@9OYAAEHN{MkkLcf+R$ zIS2myO@x@Y;0;>nqOcwXg^wvL*p@fY0bNbz4R&B{1x0-*u)cJS(QFXw2`m+w0nHKr zBxp;Z75Jw?+W;xxp9gJkgIL=^I|H!W+5y@N7zchA{u_^rs1;$X^#x(vXdkRL>_5uo zZ!Y2v@}B&-;u&Pd=0!JU2unEp*HnRsSQ*PiL0Ovp-_T5A;k#F5Njd!2l?tRH{)12@ zQW^gNs4DT17)FOrwZEBJ3HuaVv4b@GP$Equ3U1Q|)jy5GU~Eg!{K zCdcDEJ)Mm6q>`m%J`QW&Sm0)4R5i!Uw6OZe$~B;yy`tg-f}f}f9gKvyv2(1`rBkC zejTs}YoSGCC0R&T;eS!C#_vh)#g~NEk_S-3`^m#(BiTUC;mz7x$Q0LD*Eqaye1~hI zYXW`KHb4@50n#_EUAoWLWhYU3b_p=O2c!iWMF(o8XN>eM>zfvE$7Q~PH_FKH;r?OK zF);y>9w5p7lx^rh$r(v?0jb+NrNsn1 zap}DVra?G*S(-19nu@44>CwJGGs-nfPxoaz(y*u|qJkk`pgv8nPbK%HrupEFWtqN! zkeZf(7#~d&DA$B?O){c0($mwU;jMs_JUl>pr3FYADjb7wbeBLC%2nx-xl<#FUdice1u)*#)Nh5GoD((44G5`67^0dHI;>cl3erUh7kQh@U(p#_j7qfUUa z-3?Fpva;D>Nj{oLs~hc@Pmh79jCR8VQMF@`nCx5TTZXc->qo`GLp{?nQlm3_rKkDR zW72(rHoeo37ES#UG^I{}O$hMG@!K#Z*k0!l^e6ezUHnOz0r#+x0oQOC5@2iB3GfL% zYOR85dC4${z}_|)=~N^m#kN*R*v2a)xm{B2nEZ|-CPa25$YatYZ3)sPFB^Q#t~NumAUpR`?;h^HNzDB2&BUK^cQ zO~`h;+Xb>RQ|bh?1XRK23#iGRY0bc(g#sE4^+HIq+e?Qc&31|pJ{S(e1A20XZ&`*f zpu=r-0!BiYK55zBtd#U>0eOUfMxB6}(4}Wum)=ffbPVE6JKjpjCPs4Kv~0sj4!AOt z0(v|ha_Cw~*(yC~I0Rf}(H5S#)U<3m4&kn(WoTg(tJRM2BU^|^f1v3!3q~?cO-D^S z!2S-1jclwEnlKxuG(Vi293ZW>xm+&0Ka@$pwCHZvCoN$3lYH$03c8={N0&?TWxQOz zybGrQlO!c2Q4d&1b7f{*Tzp`8d~__jcUjc2OnjX{xrA&NrRCvoN-HE}dnm1#knN>3 zIw3oX(n<;045gJ5vRO*2BxG}xR!zv}DUDBnHyr;5m<)K@@2eYd4W^@|P9PyHv21?g zWGAssSYq}3#3@dqFM$Nq_!8@hO16 z{V1)0`cYaF^`o>F>PKm9)Q{4-3BE*oAk|CoWdzD+_%P|YGH9R31P#=seYSo=pk92S z9>!w>422HpvBeHZe`Yg3o!Cp2KzFPYXc%hZY=vn@dt9JF?d&L5nRaQI6lp8o6y~0i zWEv&-8rzmPhBik}yQ0$sW}jlMrSYWf4xGsdNonP8mfgrzhSs$S{DBG-nYAmC2w*@76u1N?Wm2D9x^no|oYdwiagoI)T=q(roVsn=6AZa0*vB)WmHt zf7GR3Y#%6>oR%7mbE+>fy>51WmxXcLHX^lGbZSIuQbcMfZ@9j~Ig%3sE#kukLYYDZ zrX&Pf#xFznqkU`{MtVuMp+V~g>chl#c9m&2uI_j~6AQE?r|Psj`!Uk$V&pj$YM+oT z;9Ns{zuoh%uS<6*u7ll3FQ)#c^H`$4S#(TTe~C#C+SvgUaEthmS2`lpGCqd38TCuB zHu)~-1Q(QXhCNm%7~y8!KogAe&LzZmfjXCE2AV>qYeJwoNH^-mc5t_^Jx;%~C^M4EP-c{ER|>e%wq2APW7|c!v9?{58)w@^x$(ALl$&7NMY&sS zyC^piK2FSUz)5x}&;|*U9kwmlDb(pyERclIRGe$UQkiKEOJ#1gWoQDGxeb|b&euBK z4%sJoO!PLd z+tUsgO*ogOC&dT25dlxN)ES`@I{r)VPO`TbmXoekIM+Fse3P;XoAeSPZ5zZyk=iuS zM(XZu?`?vg1(j!`gkV%JcV~Ai{6es5lpQ4{y>9N&_sDzrJxm+iA`l^_C%sPEr`td#7UG`y1|P6SCwkIt?^qh96a5tp~klHq-9NhHv%jg*RC zeKx}{6)Q$XDYbXH@)iZWD{&%E*&daJe-Vj0B-gdkuSTSjRQI>Ix~`5pGF{y#@-DdR z1w_&L#+;vM!_wd2|9dM@tE^xKXyTjEc?>2<&u&0%4jwji5d(h4-(84%? zINV=y;XaldX`TRXy?l-Pb{fzJScm&zs424>_rfFqJPTQN5AKJ}0QM2WrvlI+bOexB zoCRFO{j5W{j|E-^uPg!f;$D^y7(|FxpAa2o==1R5X2cl*TnK=gkT(zDUeah_H~vKw zWXenf4&vXdf-eg_Wls}QZW3^akn)f(f0d950pJ`V6=8G5X9~;a;!=%mUT`&{qv*SA$J)HG!SD*V+vCI=#R_ z+~*vR`)xcYs5{IYPQg z0Ltxlk&x~vqdUszjxxHVjP59-M06HfCL}~7z9iMkk)4lA$>;^(hqw3EdgMAKiJ+6w)cZ={RvPWs1I}mGJqMt213%H zHw`+|pfe3R)1WgAI@6#tZ8st5&^cfo5CE>?pH{<$fsh{v`GJrhI38FCYyfru`+ySw zWC!^G$PLcnazi0E6mml$HxzP1A(wHQ zkj!(043mIrKqAlw7!NE2HUK+-eZUD!J1Bbu(nlbD1ky*gA!HQlKMLiHLfohWgp5uD zP`}YjfK9+ofX1I9WDEhy1IRN5dB!3<7W&6R|5)fB3tPuoKmw2gz}9iofEBfN5poO4nh2c}!B0ZmWaOWW{F9M?GV)JG{>jKcc_)A}rf5JS&<7Zge`lFW z$h1a4S0D?R1*`#{1>OM;0p|$0RRXF3$a^dD-iq|wkmt4~z)?b`R{~J4=_x=OFdmo( zK-YBGJAF5B060O&j19oo`1eK@kU_}I@&NM8gv=eV?~c`k%tG2M$j!P)$ZY7GjkwwS z@ahQoIqL|STM0m(xrm$B2$%-!0L~F|X9AE2bOm7Fe8|n81VG1p*fM_)@HKFTkOdsz z`~R4_|G3EJKK}pDnK@1KCChn6rcpe-cSST-Y||S%t_6i z=*6IPqlrx9q6>YX=8dD$P1L!GIyX`0ChFYO0A{+G{hO1ZXUn8?>i~$qmGj$#5vi40 zw{w0weeP()taN7p-I$Zw=-Wokg&Y^se_;yLzN=NbI~zSxdl9J9&P?}Ip$_!8w-bDQ z?i~Sn_fqe^IH-Le>mAIw$N+U0alMGR#pEt-LK~>Pn3?ZykvhriWUZ66&LQc6LX;wb zG3i0}A8ZG;AIbsu(N&3hG)qfN&}T_5$X!B@CDdEeg+A$F_8-YZ5jrpzCu%|5lewVwlg#`SJ)cTpPU@||g!FV7==U_Wo~HgY2I64< znHuR?>OY%@77*W;j}GZM6ZCwJTF;aJLIY-{ehUK_m0qj|JzwlZKSrdNSbw7Wgu?22_5LeFeWf7t+bE_;#Ly3lDL(`tt4(GaVv>i zN!&Zcy_16?RGA z3jY7`eksUbMeZtcS9O8)(RvJloDUkLk8)6g|D6v={NF`m#o+%t9~vnho}&qw>V4ZI#Glm&xOFAi<|EPXAAmn*(%Rg%&`^M+0@zEKs_ep*``IF zZSz6j9P+nomuLHKd3Gp98TkcI14gIELlfnYFxX{u*eGJiAuOvm14G zW1f80^2g-aonE_7%d%|Qc6s*7K&L$O1!~M^Z9YBs&O!}(8-D*9Z0RA(e?%c@9Ad z=Or~5kmt}6c@CrZVcj7AaQc-N$g?09#4ecP*FG`l5ySEvS&12b{S((bw|jUt_Z(f0 zT5x?#1t#Sw?~vzMVvZe>hi7unapWFf25MEXcLIASuy-PPCyvT<5;aa5kf)O4$pMVW za|-dNW`g~y26;})$Amnm6L&_BJUries;N<(!kj#3GTT{o{FPJkYDz%tIeq+9(Dmei1P|cX}>v$D}-$&4 zacL%qyOgy{2jsboIWKDl=a&ohNXXN`d<}E*T*2NI!}9PP>A8~oylPY)o*O+^6LU?u zJlA%}(?rkfa^$(5n%A>;LxVic)M{q$M%+Z~&1h+q=N5Y38sM+6()Tv*v$aQ_+Xv*i zgSb1J$8S0VeEuj*fpzl)lmr{2rJ(f<% z^L7?0&n6ch4% z5trvn?%~TidA>5i{Z1IDKriOx`MM1K@_bVQuD{I#byC&xd`IkeGxB`jD$ft>|4o9dJ2mqK)6PM$Tzpzf~%HGZ9zXSzY2 z->CWjVaDI;&<=Y3HVS6>ogTjv^Lq{2Foa2Y{>VfbsQCx;{6YL5v+~U3fc2Rs^nqFa zv_OqN>p<;4C*)a6{#tsj?ZO~Z@~ksK+&X%#>%g!)vj(U+OYCe55}?oed{A%w0LJC{ ziynWG`&T3A@z3~vwdh1rp1C+G(E(=ohr0g|{}1>44|V<-mxt#a&%b%7LK}uL z#XoJxL@Aizzd_8(t9&$~3uE$n3>2Xby_l5On};fNA}Oyg3zg``l)MJ@d4rk#0T@iT)~9Ap$wFR{-Kn-VPeBg7?ane zuGs?Wn!}iuH|&--!4O;xmfS zf>C)l&O#-+LH|t((F}TRnhWAKrS7KV^73rx%`5@6Gy5?u@4N!kf|z+z@@~c~o7IEf zn-jlz71}W-Z&n=i%IZW)-Ys&`gh6??WUehs(FN*kRRr?3nvpj<2Q}yc*IVbK5ea_a zkb!bga~o=I%RJjQBPnkV^>bP=Ebn%4RH6^F@@`MB?di3HPy+II;C^z;&@Jzd2C6YC z?@r|GOx(`o?A$JIUIoa_o04}I;&-L?t|R<29`^F-pFbn-?kRcqAa~C;c?+7rJbRg_ z!+^Z=iJRX7?rA=8^U2ve6ZF`doV|zSEo6qmY!ss!&FDq~DS7uXgM~?OVI$y^ZtRsMVT~_jdN~z?~KHwi#f3VG9Q2y^9&{CiZS-XwQ;&QIWih>2rUR zyq$USJ^-GRyblh``v`fD_RITt2PWiwA^>8aWX`87G|JoCD(}Pd_3{od2hR=OSIK>q_1DOMZBpJh0-(l7A?U&Ta_{@aXqIZyQ#DA6z=3LGG>S=k$@x`dTUzN!_!5-fSz28v(+fsQ` z8JLy#dkb~){x~G>Pt5ZRJ=PRqK;B=wMTE|YhT9{-q_lTRJ;dGh7swb;X4q~}z8#w6g`9r{i%OogM0_I$#-zCe21W|@*P(u-|@}zRao+!!2Bmp%2zop-zi!0Rkg`?I&0M#@|{JUvspif z-1C^ZmKn~kknaL&UpOpZ9liLR-FHcue3w%1@>2O4nBz+NG+Odq&EB=9d`--7U6Fj( zQ~!nn`I@QSOpWH0d^ghL#&-E`BK~G-x8$QuzFVnx+lYLvUmb+w(w9JNI%=lYI9Qe{Y|B_Z4AWzK(kN7BS1BPWcu$$k$1~2TJ67s9L_R zQTZMwr#mIzW3BS_)XMi{yL`Qdd{6ht_bj!aZIQ2!b)MUO{q%X!#Dsh=S7BDZ0s0Kg z$@i+jeY{4$!5R5pPssNMJ^2jN_ZB_hqSxCw@+~87IrWzlyS!Jv75QLqm>w(HTiGGs zJM?|0U%q!sk&@gDK-XMo)I+c6^FDr&8w#;R&C>#6~eGnxtFMu{68lkWrK zJ}5>L1~Dz)hs1nHj}Pm>tRD_zR=$sz^P?(s%Qr^tPbTF{j?1??E+5aozAq=_`-<3! z8u`Ail<%8r`M%APFJ;R29dmv+B;WTl@=Xd;^8MH$AJ4A7DPq^Kza}N$bdh|&k@q_} zzccepHkgHHO5aSse196K!jODxv%vaVW>{AMYOR}=Z?+r>`FKwBt?!oaFKYb7-rqtU zh@UG)uY9~d`2MLzLcV{g_b>JSP09CP33`x}p(+`kS{Xh|hLMGGG{{IBl)>|v;V+hv z-XkM8E5j_15vjwNjM$6}t4xM7D#M+S5ho{}lCeRij1A*5HlohPCWzU%8SG_}pV=*A z9{YSoWz6Hh4X_2hw<34zA{pDTx9y0GoIV-b(R=$m)Sv^z?$jt_w}6a2x@7EGDr2uH z8S}}TPtM+j7?!bb720L&*Ds?eL&p9sG7hwmFQeE*v5bQZ83)(NC>fA(XeDN399ALY z@Fp3htSzALf*~14N=6wq%0^`zRWIY{9vR1QJcfSd^g1>dT{4bK$~eAVMg{X#49Ylx z>yxrjjVT!?=b!-z8K<;jTE=PgIltitGKwnsTWM!&~fWb`mMpF0>&HpqC2S)VphBI8+VJ=-XwkGB{WW3cTV=1vq%Rt=Q<1!M1GL}() z89B=*WUMTe@jkWRAC)mmy$_pYd{if6jQSt5pJe?r&OgrudtWfimlZO;;`%FQoXC{% zb(f59=%12|@A_r@K+a@J#*cYm?8LFUqa22ZlxW{`2uo}&Qn@BHIJ=Dm(otiQrd~V zN;}C!nbImbp3L!N`kl%>ozDK5<4QY=9yOCnJEvM{4MiaLiUOrwSr7U(()(K0uNzew z-#^ouE0lISz3=E(+Cocd?d?jtcLcLa>!8MxDy4PTDDBZ9r9GAjX5_Q1v|f5W*Qm7T z$$6f*7fO}3v`=YoXJA-q%bDTbCZ&Cxg*l~tGOe^vx#wh;(s=$#TVH?{rTv$U9{JTO zzrR8L^lte>`52MkG%+lHguNK&R)zd_AyV=?Ibhu-C*Cjr2DS2USStTUee!3pwn>%z zn-RZxK>jUeQ(1rNdB{i&#jmLJl4*q?gcgSUpOiM zMfAToDgPyH^4Hg5LjKFU<-fuJu~)KxRiFHg)VwxZ{@aLcHIb5^|6TnHi_sxJuQ&d? zso!2Ge^-8oU!(lbaeQ%5{+C&M zWk&v`X}{eHgutET1upkDqD1M;sXm!FUM$MHp#{9ld8 z{|))y_RG)rd;fQF^veHzhWtMeJ6R(CkA3q0)Fl7UNZ|6UC8{~%{=v(mj; zC_$6b{c#K`Juss5Aba5orJHR^cZhLVb4{i5IY2sp?$bA6Z<8LSZ#tv&&F7T9O#s76 z=X+xMP6?&w8R%5{ZtUk5D}8qBX!cl&AEPKBXT@kHZR- zUP}E1rAj{{8?#D3k~&ARcNBR?TS_m_Rr;|tN>8Ek5ZdLk~g-XA=MCnb$ zHBT$Og}H7?D!r9Hx7RAY%~1M6>fF_?^t&^aeosH>aWDJ#btruiG4~Vy5MPt7dZjO+ z?jt!M{;4^o_vS18>0+fnQ={}(nw9=4xv%voeUO<3sr5R2-^d2%L&Pt|@=>L)C{p?` zIV($){%*a}M~EL8R{DFaucGg0rP4nzmHr`fd_?|O9AirVcu?t|3@H86Jf(lurSvZ* zmHt(h(!XXs6+pYvzbAG*>wncK{qGV5Jf-MRzy~9#fWHXS3ZxGy5UN!mR)B;87P0X@ z1u`=fnAeP11vZ;dVDoMTvdR_Mq5+c%Y?X%r%qWoE2-ddYdOInw1M#`k%4=0%*K7sy zTNKzmslc9t3hc$&e6IJ7D^Qq)P6hUvQ((U#1@`CsfP4iG98rL0p+GVH4r2Y_HU$pp zSD>UXLauT!8puE3d13Y^u0Sq09XQs5lwo-?ArxswXi4l8heN`VV9 zQI81)E;K;hI_lJMyoj}niMympfqGMcOPS+R=DloMfy;Biy)+b}SAi>uzp7k;#$qtn zHO&fKo2S5a{R;5?AaGM7W)!$38*>WWMc!Q<7+2tKYTaF{z`ZF2?z0r=NGPzV4%A&l z?BYfRI+>}H`*@&5fvyrvDzGGre@b1fKzFwSk26wi2?<9oe8WcQ{Y|tyvHn~h5{dO{UOJXx&9;r%<);9 z0;?N9{5Z$)F$KQpR^ZEi1-_~V`4i0ib%g@obSUs`F~${0cS=EDr-EtS3i{g>OlL3Hs$i%JNd+VM3PuggDj3UE&|=T!7_U}v!vUle%;-}v zGf%;-`FGP>S1QQsR&bkM1-ETeFbCU>D7ZcK_#PMBVNSu^X$5zz$CQFQvA;9*ckWU! zuMn*5Qh-hccg+BGcB{mog83Z^?%t^29<1-d`kuLH#-xIKG3Wfaf_qbI?{NhS+ZEg= zOTm5VyI&@H6f7!NkoO9~16V&$7*ep9{DY`-P*TBzi8*9ML7stvhYl-v7`gm?&*0(Y z96qODDfy+ulyc7NXmCL%rW8D)5ZuR+)IE~5GWN>)6+EgKg9;wa`q6cu_AznHDp)?F z;IY*T9!HPksauha8U;^i#E^m~22cj>ndhzGN%df^%6v3qTESEJI-EkSD*Bzq45wR2 zDR@Skg4HEp7T#|J&tmmL=u)sb19J-AIH=&wO$xSDDtJqQg12(dw{|LcTaSXRtqR^= zq2L`I3f{@uopTB<44_}ZyGj+jTcB_IfP(ilD0puf5(?gziBSbR`V{1Ili(s^7AF>;jaM8PLo6@1cC z@ToY)73?MF=}rZo;ohDh{#kOLC9aRX=SnfA;PX8S^2{3SA5ic`)?cp1jDiDw3cfO^ z;H&vyZIIfp_bd1YU!ylUA0p?i01^r=WsTRP;Icvmm(yc8`70U~9L7q%hVL-vyLk$Z zm>5;?edbv;so*H}KcLo!?0-}YW*Ey+kmuy!CsmkM@KfSHBkwczK5ti$*RkO0Sp~am>#4QA zUctWtpx$5P{2fxY@ZU@Y|103PJ5(#=X;sK;VoD)jN};rTh5TI#rL&(t zsZg*)AzlYV;Rc1wB84L57*{BoP{^KB$hFX^P&^CdZNPEELWMRe#i&9VriMj>TceoP*$EoTX5Wx*sZcb%+{G0QfM32bC`$EOhVgD zD75{ULOW0^cS@nWIfe2o722Kr-J2EKqe`JYTNNsxM!|qWdtrV+p}om3G{N;g^$P9F z^?uB<->gDK35E8@0W}I0Q|BPo4=zyXkWT)I1#yQm$6>i>SLpCsOe$2$TnnldI-)|M zBUvvazN|r^qu4)+`Hmh{=ooU2X~vX7<*b({6*{&UU6@tqIQksdtI+Xv;Jzx_!1@W? z!wK9MuYaMF@cz!7sWyCi@O!7mqM2gDs&lhT%J;> zA)ydIYYFk$aOf&DRw=~i!=Y=)xu#R0Yni2~Qlaa(zMh$`PbzdnH6|2l&R6J01KkSU zl&8?mMGCbHD0B;Xw^F~A+}ryVy0a8x3N4gEcd>WZoI-aqTRXk)CFj0Ej40GmsnDVp zg%)=ybbpgVomm)E=mGBYAyc8Q8ikhhDD+6CLfvf&Jw{KSfkHi<3O(7XP%rz>WMD?2 zK60O{Qt0^xg)L^G&rHq>(qRM z8gH~JG!#(it#XBya{hKLQVJzT6rd#vY_woXVT~!wdx|j6 zVPS8E!oFIC(}XI8(>V{+D;%0pI6Rgkh^uh!rPXE^Bq{rEkTRIJN1LLydn%L%=1?`pSV36(5r9( zH42&(-YZw(`K;~D-rmIT!}-4T3h&1pMfBdkP~ihig%2dYI0sV-AC#r=!CW6g?Gkbh zEmQdLV$3OA+Khz43tAOEqFUi2nYS#d@KNL*9mkBqymo}ksasC1&&$VO|fy=e8<*9`|$}@#hnB0rf8!QusplFQWEEoL@Yk@FkrJ*VE@x?&&geF7H;j zf%Pkx@yZG$6y|+SxUm?c3SZr&@HN!9HVfolNB!&hI^4i{Gj(pPQ~0JLQ2%DGTdEbl zh2FPX3g6bJ@a>%6&e!CQF@^7(Rd^w}ch@M~j(eze-+;m$g$gffS9mc!7EdVLS*h>? zbW?Gv}e=f#k@}A5L*2oN%%M3Tl zG|4ghW%6?xGnRpFnbx>WyG#6MZ)Cc0nLLx28+6LtkiCt_&ER@t@;6D!+;mK4CVe)m zl(~7U%q@u9vRCF-lQQ`kjkyi6+j7jQlDQqVwoA#}zE);#qs*O{b!YN-$(FfmlT2PG z%sn{YgSrI*zRb5Ddpuv5MGZ3dr{4bTA3&W0xxeB}bjv)b1QRk3o{@P- zz04Bol%!-H+9&g{GMR@9^y0mjxu8Sl5!5*{OD4}7=26r-n&Z(4na7Y@-Y@gm5t+vk za~!>nPs*%lk$FO~Ox{nKCsCu4x+fER3iots2Bu_I&B{ED_|xlTo*|jl)Hy2`Lo&~1 zuZFyH@?@S%-}4G&*5=4OzfI-^)VQ!!W*ygc(=spO`r<;g%eyNcYaIbM^J+0-iYx?GtzjL2*z{-!FKH&*rC^>mxeXZmFF9>(k==ebsy&y)Xx0q&!px-WLg ze4V{FEsV;1i+W2h%{Wmq{@@4+R4FA&OKSL4T3q;Zz6$x@4s#7Ff zqlnp|NVGx`i~rKO-J^(8tcc6LJEX`4mLeMl6xoR19XBto$Yy)UrJvO}#Rx#Z^#D6%6xb|QA?5=HXZ-<7!CIOj9q z$nHg$R%DNaB73q|(5J{=LyF92#=UzL*~b9;`<5zF6hH&U71^Kt1E_x>_r}jlBgG?% z98{yo!CW6g4gL&94lM+;9Y&qQ$t$f;$|-^r>L~ zgdRmsoK)l_>hP={Ifb>V97RrJ{q$@_s>!RKQRJ+EB4@K+!@ZqTqsV#riquk@@3)Z) z$i1*b5uU>%bJ+JuD{?9EmnIastXYxETNG(vtzl4+D;gBJvRjd> zMiptK-qi-EcMa>;Rw~j&z3ZkGxt=+0C|0D|ROCixxhY$b7V>Xlo?D5#HK|Bzvm$pC zDsmS+@6J`Eof+=o{N71LI_Tdqp~xa~7AF+BpI#4^DDqIJB3<>0EMfoQM$9VmNUI`` zQs*&YPLaoF6zLgP0_q89z~v`#`C4n37U)nIM$QsVqu=i^}n0q=0 z1B(2HKTNPb(}g)j{;Wq*5x%!a);589>oUN6>sX)72lZyD!)FkY_3ZN*MC32>|EAX8 zT+bCL@(*?X%>&o}k^djRp^)$YQ8i**QBM(A^Y$w0>sQpsMwOyz7Mc|G*C?7E0Q z72U2JNkz9OW``bSG-?9wfR8GweoXfj5D0L4@Dth>!qNU_5 zV73KZAJMPqk;IkJzl`;x@{v&VXy!a-O40HOMUUlPjx#Z)=<(D)p7n|$MNb%3^hElc zBoK2F^(x~iMGI1jp3M2loS#h1Q)T*Z1L z_tnVx)x=-J*MiS1qSt1Dp4Sd2+C;ym3M3W1t`NP7UQgWhRf^ug-VI#en4u`InbDid zFs$g!DMecv6upK0TT2wZjefV0-`cO}?bN-aSkbmtMHkZhu1ZDkZd0_K*mm~sVgH^9 zMeof6weFizbP;=tdK6tupT*R@zf@5^+lY2jo;SY$}CXh1QGT0E=8HXvssVM?)#am6<7Q*0A*Hl0)~b3(CsTyNH`*yg2R zZ43HrnNn=4TE((E6x(`Ov2EGkj-K07dxs2+DVE!&*p6L_?PQ`^v7Oo9nYFwsBox~< zTe01kakoLm@~O2u`+HO>R=}}fRD2h zBo#ZjOtBLBlrZ066N;7AE4Cn4u_IVJqEWFUIX{xvvKkO`jDc>&$_EuYwgf4~j+;`f zg4rwDFs;~$*@~T1p;#sRr;vYYrD9bU8ZfTd89AuKsAAPMik->zS!IgVQ1_ey#m?nE z&#P6emj1QWz96pHg_(-++7#nwNU@9Azl5CnLJTQ(DaXr*xolFghAhRd$W!b}_OIgn zsxieHTNJyRwX55ZRP0)zO0nx(6}zEHvF3WkZe-q@GQj=ZT#0_gcs+{ULJpsy#BMED ztc@BA1B%^M0A{^A9|^_U%P_9kJ=C~oK(TwNdmnWdjVQL5oW*^Lb&}UPsMrI|iap5Q zgTsnFL|hj&x~3Id(xKSH^mwFSu}7uYW5tR+o~>99>rdt=_7r`3YZZH%^JiFpW=64R z>H92o`l#_-mSWH6f?6*m6?=*Nm&Ozu;QW<(#a=DNkYcZK{(6;SZ}2sHb3m~nW_znq zv84@)y-mHh`xQ$RVM?)O^jk*X<#EMUP=7@UxLz@<*t_hHj4JjX{obEZY*mwDqs%p0 zr`QM7{V=K6M+N9nY^(vqecTMbPM=gL_Nf7SCA$^-tW~kk^FWQy=M-Drrr0>WzA!PW z*q42ZeMKy=`4-=|C^ng+*pHm^tQPy3S$-*2Y|XG@zji4$jo-!;o2gT5 zEpfB-Ur&wo(~A8~++0Ahf7=!NFB{XcJR`Eaxfqh=E0V?QgO%1O%a8O{SpgFXS;0YB zJU>}sVomVuWJQK$#aOelFeS?#kmWSX;yKB3=VWbABWuF~SsSsx(X6bD2K36>xI)$@ zLQ2-AnX=}wzS)qhtSVVs)XUnkUDj4(vUt6)wkgM?tZlPpZEvDh)(#!AcA1rxKOt*( za`r5gRgfoZFZSnWp;Ol0tRKMnfi1F%3uGM>mvu0`4`Du@X{?eVS%NK%B-xa0ET3p zHYMxy23gh2RGpG_CUws0msQgY_RndTbsqE7mB_l7eg14)msZKTtV7mSIkFn5*+`9R z(NvEfSv*%*H!w$Ytt|e`S}o+mKrZhAd0es2NBWIfXa zYWA`I9C^=E=LJ(%KVG8VfWY1>{jy$Vp4T`ZY?k%9LX--r@LOuB`VBu(yi*59(#{nT7RHQr1`|s4>=yaaqYukh9uEpR93?Uy%Pr zyR0vXo2Wn=i2bHo*0<#tl9g(d^&QvWGw%=V{n#bzXX2+US-)^xL(Ur3e{GdD9Y>`s zzL#43*|2_}mG#G{teHFv%lb247T-&)bWp7%AlbCc2S<}{fRk%84k>sU2LIS_Cc&4#Ow#Neu#lV%*ZY&1;;~iIC+Ox zV^sD6?t8(MY~GjHN7ARP2;>}L$djvZda9~11Z_3Wyn6A9%od^t|snG_RkuZeRe`N-`nkT zMrEH{ficy-M~SxRcyA1H>-m-WD?FU3IeC3uNCz|NA)JH!XWnvFydf-k%R* zI!9&m8L9mcxeu||MeQY(7?b_*fb2)|FeAIWUN-M5>_;bMKh`Syaqj=|S=l|rJTWNy z$xg8M6uG?_=#%|)k!)VG>}Q*0^BIr*T$}6{=+j>y`$hI&>cFh*m&?&FdtgZRD=FEp za?Wd){d%43H>mMu4yZpw-M7eJ+AjNTYP>xlJ5ho$*~{p={C~z}ub|g(x$KprvfttS zUFIDTsQccC?DwZ+ubPlOS_pc6K%WnbWq(BdkEUgR(g13Hnv|Vn|8x4RZjwEoE&Gc& zW@LZaEBmWX*%OVjzb=*iO@ZuhIetq{sv7k8t^r(sPuvfcV4lg8>>r8!DIa~Zf9{e! zMcf(#ZL)vmetxCrbgS&&nB{lo_=8$AwX*-rL9gt!bF$a<%bq27eTD45;$Z!6V*XD2 zU*!EwuQ`tY^G}uRe@ihX`#)y+FCj?|;IUYVR-INzmR z&aMWiyDRa#j?39C0~HvNlTUvBfSlbM@COy zJ&wpgvz#LfFeImp+GW)km&5C}!|S$lG`YuA$th>Ad``}>bzr9B8Zap5coUVN?(ytb z5MR-WDLE$;q7{>JPAmfTP9*oFa`elojH4c7a!$@hBSz$$l8bgZr)Hs7PE{$o<(!s- zq@2@PJAF#d8O(adfShXLs`=mI%uIC2Ig4Ir5py=zXE({IsYI)sb1d+6ICosmdDJ?O zoZ1Xf>wM-oe_GB3bx6p$umIG$a8^!TEhgk#QYNRK{L4nuf}GucQxl%)9acNw8*)ZI!$p<|GF_b*VC8Jt(+SguwzJ=!kaJHysCN(N_X>Gn{(C#++?R_+ zq~vsT%UP6-UO9_PFfQl*S~;Btn5~n0eV`D-avr3|gXBC!To*Y@SYN{R!^Az3fgw5F zoOdVXJerX67&AQ9CFgNsA7`(JzE4!58#8jAq~}utb)V{!!_Nhs-gY@pQ|sv_InS6V zLks#bCFfasK3ffHJUbzW&&`~^MkM4sXQ2vXa-QdYpKnG=&I{CkVL(nlu`gz$8r>lO zCDvXlMlISvpOdBT7eNcuMz(m$H5{wuQy>v&Ku15Cf9Ec%NZ&M z@o#Y-Z!z0jQ*xG;fW5aX(IY1jKp*DhETb;(r=8_l=#sM{AIvda2l}k!URH8^$3P9( zdzaepR)d-&xo8DF-=p7q?7v?R_EzPf7o3mA(Jto$;y>VCKMbG-6LLOcu8#)gj1{0; z&d20^oRsrP6-MQJT8ch7NopiJ<$PwMN6zQe_#*h$<5nOcH=d1lxf>Ls12b}Y zu5dRbXQKv8$j#`*nB0xo--NtP{&$>{yJ;mx!oDY=`~fVItYL4Fp; ztTwQ=1wFUS$AH|e^3VWkWiwB9E2iXbU4d!2+th)6+m@n7ZcZjTF)DZaLAg70%gvpX zyCZ8m4$IxC1k~7>nmh9~%%grDwepC|OUd1(04?Z~yK9Zy-Gq9%`Gp`SpWeH3zI!j` zc<0|F?=uw0%?+yfgih&j2%4H%PqP(G?LAopPM z4yNxR*=PoNCEQmD>m~Ja52eKsenv0NWl1L_>#FSmjjPRNpb zqJ>_$C&f`Hx0371O1UTJp;hiFZE{a#?NoYHF=G|?d|Hp()2Vd^IcG3Kbsy-%GlqMX zK>k^Sa%;$|sY6QcIpm&OCHK5MjL5B}_W9(W-;7zg7Z7t{G03aS26Zng#DLt3^U)#q z65=oEmRnDc`bN2z8le7VnPC6&EYxCDZbO;eE6BfsIjPT;C`62I}0<1#+8nFe&%Oez`Yg zq7mfYTmaTu8o==uj<<}-y_Nl2XXLh4gW9*}g5w?e=$6a-UiZ#sxovr6ufC7I}y`*0l0`0$k6N18zI?iRU^mdJgK-jC7u zv83F`Ire0OK2PLeK<<;|K1sbN*?+16to5?iOTFGnxlb2@_-9yqrWVZgEPH)fp!aiS za-SF2dwxjn3!J}Dg)zDPO-RXou@QY><`=2?l7TGH@1<_JFPkU_^{K|mvUUn zTyN*20h}jTOZ3QH7C<5Rnk*xBxdGyqbG>{}?h1jN66lfSA>#a>oOp_7_=T{x1tLBKNB%xfAr8=mvGaHZU&t zn>M-M*2+!I$o;NZ?)L@g0M|cMf|yC_{YbB$$oYx&pUW{IcZwcU3Aud6>i#k-cMbRO zEA@V5ZQ4Q&l5&5e?r;5ae;<|mM;WO9$B^6^VrE*vJbyCVTI#Ls!i3y))Lci*Eb+5_ za@PmIJnLEes|wWpyA&z8bJcSHiDN+Szx4W-nEwiqP+aXuD()#!+}o|VFMuMnfqf%e z@ic)wzkw{&V^Hz*TvUR+^a;fS>;-C(P&`OXut)I_xuFWoC?2lEtm5Xd;t>-AibvUx z=3zwf7`=HWiCb}WDQ?rxZo!1&4lz!@;%)}0A1_pVgDj*J->?V`p!P=OXRyCXqvD&= zV^h{M3l!&>BR-G4d2@)stZXpb7P+VaYg;50-!cbPAa*Oxw`x^9I|HSP zZ!L5wz72cZ20+}l^vtRLKRn%SSY_k?_wmongb*6mUiWvK5JCtsA%xHnLI@2ZqoE;$ z5JCtcgb+dqA%qY@2q9!-gpi*QLQJ^c{tvDPuj5?nJim9V2UdGG#{uMSR)|R%o0p&k z(=xUwKr6_}Vy>)V8C%kO%P|>SrJx@DGPaJvb7r$<6TgiCdT&e4w#?7(A;xy}*^Zig z2V!iW4rbngxE;vfk-Z&z!Fg^2sJ|04@67qmRbakFS!l$NjJ#aXXBX=3LY-YX+qD)m zGIkr5!S^A??)ftKUBlR;9Ro7jZDH#WHeP9PBWfYfTRK`IWsKJPggVRueYS815 zdKo2cG7fFTgp9+O;V{<2xj$lB#*v*ejw;8Tj55y3=zp|ODB~C#>>V>H<5*(L2V^Xv z=W!_@?>P33ACys13i3`UmT}^L`oP&qG3wASqmrD;5*a6Fp#wuQma?~$`=u2!PT~5L zDl}qPMpd?qW#ljGk#Q<9rN%@to_g{xib4EEZ89$A`eJe}u|e;KT2S{=>Rvi2<1%Kxj9D(v0Bd6=sCz{YnEQ%x z8CO=wxT;=86Z=s}r-c5~r(m~8Uy)rrs6oY>E=E%6O0G!=V?fd^*r)6~VGkYKntuh`gl)-l$#zWNX zBJW{x95ps1!7;E zlF?s+K^gqsV7$}>@?Nf%@rn)R8mO1?YPpQp(m>qn!!icRdt+3_o78%%Q^rt@jJJ7? zx7mNEN5;G44_C-|FBRm!PwfwKWQ;J+2sJ;X)`xX6KBC7*oPV5-AsM61pvNbfC;@do zq0b8PR#5NLRvBZ|8KcJ7qzvBm#>#OSpEt@Fk5LZle8Kt!>zCC1vO~sK)cI;k#zdKn zuMJS=Yx2Hf|C=ru-)5j&#$+n8!1Z@Rn~eVzU_!?C^!%QjDbA;;`9lh-Feu~467}XRv9})g>BKE$j)nE$ z|0>8kKCyl}sJ}jY>(45&0s98E4CY91Z8j)jrJzCyyFdxYN23z%h!S2NsOypEbMMb7 z5oCebfZAaxSfgrCFJ{(wT8U({5*w1cVG|~m*eD01N@P@mo*C5Hm|h#VgZNE~Kp)=w ziA_tC$V@>whLzZ?7#)~VVsq+mk%49pa#xo@tk2&}Ub2ccW%Lb@FGF*u4USO6)PL#GYIiq@f&bpyyth=vHEH`t4nUNhS87 z&pxwC6w-6wY_wuRiT%jmkDB{8C{bjiPl?3_MwK|A7OV$S|G)tyikm^tg9_23#KE~B z=HL+}4oL<5OG?50q4YR(T8YDWF1|NN9G-)2B}!RK>p-0&(oujKv|~<*BP-FP#8EL? zFsnovGnY*%aWt_<6L&Ow#}tF>W3$n#L^*ZKnSF_YdL@qYL9OE^l{lV$$B!vdL4L)A z5+`I}P>B<{KatoIro2Q`joi6R*5@eaD6AS{GO0#pHkwkDhw-ew}DD@ zDRGaG2YT@PLZYJr)Vwzv#NSK5d&iZy&qgu0zCR6_Aol(NB|15KAOmF}_rX+@fY^s7 zl;~>2h!PKT{xH{%(C-oMA1weYe;Y|WW}sJz$LaAnIZv?n#H12Eok~2Ji+T(y!M|%t zJk^S6C7$lXloGw1JrgVOtdAZgo}=z_HA?ic*VnDY^W;C@p~MTR;OqtBUm*8|StVY~ zMg^$(;*b*kqEc zen{>|O_)>SV``7GKg!-G`AV!HZw0ZR#^_gKY*>lU*#B%$iIqj@QsVP&CC2GD-lD`8 zTz^TeuhQ_}%A6DAf1L%+zDY+lnB!aaC&`;6<~wr#N00Bh|9(h`DIc{;{6L)_nEOY8 zydTGum}aJF@_)`jw-Ucl`xk2c!n6LGi5?|p>Xi76dcPNgm_La9V_1pV5>Wq7`uy33 zIVD!5fS5UA=Gv9`+d!cb|JZ0z;$Q0g+a*)E=$ARK5W_O(mttJzf=bNEOlg$4S`Efz zu3j&54X#tuQHK$k{LWymSpoi!w0tjMu0`(J)LfgmwW*huhh~}UWP$i~xnH+k=6Wq4 zHl6!)uG42_^1Fk%a84$_FPIyYfjEO+iE^2y5B5!JSlQ^6Y1`2UA#fn2vnre|PG zCf^g70WksjL95I#2SYL=o+%{=Ar^nf6<)GylR=d zq+w9zuGHC;oZZ;ltw&~l8R)$`xqGCdS>~P{GWlJ=ENGXxmyIErd;92=xlaaKWfsPu z{=W3tcR(iJ0hs%7zJCfhFUrKI%*CvW8!;*KfI@U)Oy+^9pnfrV#WOMwYLa;{wGZx) zc}NbZSyCYLPy^KCbG~^P>)|M6ue3qt5&7trd1N-2%;Rb>F7tTm@^=KYq5^F)PpFj1d)+*-Pv%KBT4YvIi+`_RR`$v~ znX{AIWiCwvKg*@lGONg`qQ=XLN$KhWHxRGl@B~OXgXe z^O@c}o7`IFtYwbcS()c>ey-3e^Sol2b)41p%RHZ)3pl%=8suCsBJ)B6xu``m20)Ga zeDG`+QRkxn)*+b}XM*RrxKZXMX{eFefJ=$Fv>tOZFQd+7lQJ)-S0m4UMG82(VnF7V z^J9wTGy4LUFP-7dp$L7V7-AkTJlhd zUYR!*f#sgPcE9C9^9ReKH@W&LgED=Fu3`>E^t9Lgr%)G9UNRFY}2k5Z{vy&U?sv zlKT9uz}SsY zI+-tJfc%%K^Kva_WxmoTbAV?a7?t^IKG=VCPUdUvGGEU|pUgqx2MfSlZ#2n#ll?d8 z`R1U^w;E**WnoC>+to7PF~I)2Jmc(lP8r~QYCz@>T>nsmHgNxA2AXC5#B=^shdG(k#7@)e=R8pV z7tVfR@0U@TzZRfd<_vo?)c=jR-#PmuMm73n&XPCF`X}@K*&y?;5}B*AK|Jqzb1nVGG=h0HuamU}b+gFHqDR)8tS!sXCu=L_ z+d4y5Hnp=mWNpLsHuT=sMzgH#Shs7CmBT)t>#dw=S=(2Dv+c)Z?Z7-cQe#JQa@pT0 z6*IDSW{yQdHrl{!ywk0`Az8a*g8W?#bjaF`+PvGX-3DakbC%Cp{+uj6>sz}|%G#q# z)}FbbM?oouW$l%X8c=udI$8U0zE8ibLh9_x4Eqks+OJmD{>)s&97V(|W`8mL4#)!Q zftl!$Rm^>HudIVQW%0eeb#S+=L#TfU^$!`7RZ@sPS%(sLC^3g+fc5Z9w8<*9(Jbo- z&W}t%i>#w^Fes~xxytB$G_gmwVougE)H*gFL$b;_FQ?xU;+Ih4IBFd?AnSPQ96uqe zg6k7FJAr3E(MON0lVT8C$#YfKVp`V8m1qO?mllDzrQ@HwYIEtT4bG@ zjy_rE)yb+$LBFi?%Vb@^KJR+#f;LRZx{!GOeSmc#H7@MLh^%_**5{xC4IsCEO4dc$ z;F&I>*G1E^E+*#UQZ%6l>|K%p>R(ceaaj$VHw?&!QNF|H_^AL856Ru&c&##YYM;&*V6ym8j#yepXP2^*YP~p z)q**$&j&SbXp_~_B-vz8&M`hjSgJ-|31;eu1 zxNoCp8}-}fWZllQ-OlwLC76|UXAy{PH_(hpS$CD8PZqx)Sa&zbx`*{1&N`^m(IM;J zQd##Ae;@PQ-zck-{0FjRJ(!LPjL3RuNLE*j8CefA>mxQMWIamlM|)&-=b>HJW8^&6 zChKtnqimzm<(TjK~@)MZc`KbI>k}e-B^{Q**dm)_e4SZ%Wqtq8&Jenj5K?2QUV7?AZz0eWSvpw5aWP=CdYtWPt+OrN%4Sk_nyh#9Lwr>xIx zjLKR`KEEGWpO=8R@oHK8eqeo>3Tk~-Dr0s}NSy?}k^HYzkY0iJn$FQtlnDbX+d9Pc)8R(VuJJ)~k ztber2nq_a69)G5xMb=-``->W@a?mMjjyiMn`J3~yo?fr0n(BUyn7NdD6#ZFRa0^?Db>Ndjo+P`F+4P^3W_hk%~I7 zXOhR~eA~)FuWZ`}we1Pn4s$uJvfXrW?{V%^!yk|xIYBThj*=42E)_{g`*Z z3JlBMpZy~CiV9>ePDedvWFNq+2a=FZQvJYkd z&>q=`m4P`9r}p7vvP(13D*K2Ow8%a(4V|FoQ8gg8tOCRyU5i24$K+u|_OZm56JJjJ z684txyvGr9JT;GJ)(UD?l!IsCGrWCbHmG+J@s$RsTR9~AwJ7k|m&S^cet8>7*yiYdocl(Td*)^Qikb5RI&a4A@XVLfUa?HrCrRO;* zp!PZBoLh!o+2>K~yk^;T=^(F;v-4TcXRZrMWb0!>sI<7TLUO?HhYBDf=eoxQTjv4!3XS>}KX`<^Glw(C=3E zdGFe{k<%t{eS44WJBZ=kYPZ|6?_#~1^_~K>f*Kw5VC7wE-#Z}t{w#FK?xbGlwCo3% z@j>c6I4t|2GTB{)n3c`vZ2J-BeY6B^7?<7MEc>xEkpFmv>?cxX_hf=Oo-79YPZ9rA zzwF+6+0W4PSsUH5pCj%$&Yq)IUluwrD*O3z%*lSCRrZT9h-WuW6QI%DW+u)x66Ky zI`4PM{(xE^bjltf?!z2V!* zmGoOl{7T|JFF*@sWsg&5yiWEP#pss(WhNSBe?^b48Za$;g1QqkvcImB{Y|>;Z#nz6 zTJ~g*?C+@c-IVPAmB{{{-0wSNPuXB*-hcLwX`tRu85og0&Dk`u(=D?3%xnKl?ysEv z+An*iM)q$x7?u5dlk7jZ=3QvdQsd7Q(DP5?|03?MaoK#vwO5VEo}>QXg_x85PYKBR zhq!+WFe^uGa^{uGneSsl&Vn@5%SnkbEoZe_Ijg6lQO+6$dgY`RV^q$X4WPza+^^Lk zXYDaLX*sCDh@5q)yPj8a5FdyWtUkhq)Kpx*&I~xqkF_0*dW2U1;4j*0}t6Pp; zjA=Pe9;oLUs0OoooOwfXd{%!_PC#5pzi?Pil#2m5aS79A6Cw7bf^vKC7m$OxaoUH}c>`e5_*`^UZ z>$c3XE%R(wCnqNj-Ey{PZ~GBBJFvGyJGkC42fcD~sgc_yhtIjrPNf)W1!gIseo3R8LsP&r9a@BDIfvEAIXoT1a!TpPXI|%sYB@)?$~lVXI*MLp zwP21iW;mKUM|aCPCLQD+ORaJt7v&(Yd{E93_LgLW{!7~B9M>%8_)<9)nP|kUoD;Y| zf%+%rqeIR~^gn4tPGy;#lheT5OX+b6bxz^BitA-uFC*sE205ptgPhYk{hT}n*rvi?Ur*c*XPz_Rt}$go%1H;)Dd4d zA?N&RuzvwPF3bUEyceB|bHU!l%ybEBgN-gZmy&;3mYmB=(JrTvo{hC~u3)`_`L4{D zb5#oJL2gqqX60PX{WXT1Yk96_&YR2ST*rDH_t!OGTF&(q=$CUtwVal8w8*(J6FkpN zV{%&aF(~I2a&H-yb89hX z)+pz7>b}nTAhCnwzA+%@%~3f+S#sVc_T36O?-j~y=XqWRt z7HTknSvfxv_aiYsHOiT0-svtmKc}M}BXWL;QHwD-zjFO+0q8$tBMhn#)#f+N=1|0dA8j7F*@Zg$icAO zlnS}4WyxJV1w|l!jeNPO#I5vUW&zkY=j2-D;M$s!YiFYY#5!C%wdj}Y=Av7!$7~*P zei`T=^p}0QsAxpcvh9H>bwtO>(y&ZVU3Vaxfy7?~~mvd*p6aglV~3SIW&MFS`ot zZ)1SE+fZ*?Vz!-xd(E8AZsym99%E=5NaGk{gOP;lh2Osq4Ym2 z9d%$fK0msLcgiiL2A?0@(pkAjG{`+N72F?{19Hk(%cxy8E%)d$49h(xA3bu9HBb)X z%4_8=DV2L%k=)}ss~DAgLa*EtyXBtLD7SJ(?#WYfm*Nz1PGP<(VwTZw8F9-d<(^gv z;;K94E~nRW>YmQLXQYFlK@Hbu#bAcBxv%vxB=;Ql&Y|WxT%XH&E_Kh#MmzjzXiTs;;<+hf|y(I(0-%79B@<2{oxm@0h?(MZ8=Z;(ua|dU4 z((_LC?;Mre-Yxeo^6t(8J?`$8drum;zK6UH@;b=7Hxt8h?`xKOKmG6TmfK11&MCPM zG|GK29UXEXst0jh#CKIC+t(=f`4mw9g?tRjeK7|6{jB}Ha$hn~ zhiSPl*JE7nD+O`~Y`L$df!Nn7!TIa8n3OwMCie~Id4s(-8|1!4jkgBn4pHZA4CB2L zx$o!6{U8fXn36j}{)d_9koyrmK4S0Va=D}AkG9JFgqojp$z8$Tr^J2QDR-EWR2YK2IPL9 z1!nzzTJBVg2Dv|w^8-0QW}r##Pt^U1n$vA^e@;cM++V1}`_KKA_!(-14w(JV6cGCt`F~Mo6}?tbXVs|OIb!G7``ZW4_fMtVe{(OUDuGgb(I=Shi@)okUkobio^48Cnx50m?X|&5raGhW^Ik&jBhUM9n@*Hv; z_M9PkF8eNZJm&Md&N<(QdRtHmb$^KT<*oqokH_782=4JCU*@oC{y5((Kj5&GRah*f# z_6DjkEN_QG&~L|PdAVgEW+$Ou-pfX1Ff4CxV)tggy&KUFYVE`QKDFSyFbBjIGWWi$ z`(*bY}q5-q=j-d9D%zGsFN73u3DS2hYlnux`n*F1DxoyggVlk!fgl~b1_wyM^^u10C{iE5x|Gwg!2( zQ|I<(d3SJjN4LB?3&0%h)VM1h6_}QHH}`k5e-Cx;p} z&dGa#vj>^yA#%G4=$H;w*yvHlS{Szf1w}+gbA$d<`piSOW z>1dYsH0#q{@_L!Qw-(fS#zz@C1x za$e3vi@aB;F<_t@lk#58M?1#ly_OAPUSp=$$$y=gK^x_u)*GyE5cg)gydi45T`%t) zp%BgT-evDy^5314H_UABWuQmi`?=_s_W?7GP;aC|-iPdc#7rOc$@`f5(O!9~ zhiQ4AQv1_kd1I+4m-kr~=&>>nWAZ*P0JX<6z-(Vs%lnd9zU2C=B238R^P@LGt#9bb zXGiawPI=#w|1EVU)6ov%zGLq@^1tf?_y42k|H{xW?|Yu<`&xNZ)SMcX_XE%OW4^qf zi212i-gKqBpMBKJ`-SUYrsVzFEpH}M-fy{}-tRT?{;)AAZ)O11pe^5n0cibnZs_-K`% znuQMeYi6Tc{#s?2lfO23e6Q-KHG_NJhyFS}^4H~jJ#y9?mY>dfdJ|^kFRYQjevC?V z%HM!K8&u0T43L}f<(nDuEoQS*FecwAz?6KKbFUEe^c%q3K^-RLhb{7X7y5BJ8s#VR z@=qw1f1=PW|D+6b$gj*pul$qq z;KGha0$zo}dP)rA( zGspcS@;lq)KS1sS>_1q7N%;>IV@!S*ab5IzxDEsIAK@7u;p~xC(Bsh<%i0BZPX3eRKRG1-sS5c|XQ4%YFY7b8@}Fg% zXNiA~de7&{f1zCdi<9#E3(yJjU#gb>GVw2S|4O0!fg<^@68jqK>)G-L4a~}agZ^*! z%YTb{L#^`p+oAtXyZm>lIh>9z`R_H!f8Pf6->2^ToPQ95b%b@KP5y_hA9lTJrEdMk1KPv~< zD~Vs(2(CY;=jXMUkw0Do`j2z{MIM^ve@Xo>>oFw%D`LMQ_Ny`Z6V#fRlK(Y5z8;bP zO)*C0f7>8`G6!Aqzsm&c|8g-Y|NC~#$)73&eSWY}jS2Zbw#fg9`aiM%6EQzC<1g9r zf6bCVlP>=^&VH+q|2uvED3U*0BLB}C`G0lFU)3gmE)PTU|7N~_i2sLK{;gM_QU&v3 z1@ludp9U~Tr(3ecxuooWT^`WRHO zUbljDYV#Q|SeS(tkiR~8>vO(A4u%vMRSFW>C}OI3X-j$$A(#$RIpLIf(+)(Aa>(a1)C7J>4<{O z$lILjEto5-5OWH)996JYpMtI16l7)g{+0$3iize_4i9bImQ+2PwoAgqlmMjMocPLT#R7_2M~8aHRco?NRQ%n z1qV$iIHU{%3QCxxgq#w79*5F{?=^$NVsLhNI*LHv;nXZGLAQbwkeg((WC^*(oP;M(&LcJy2A4lBroF7l#39Kj7Dman7lUfy27AiQI_@&IVbWp)5 z>{n%CT*0zF1*ejK8nc|%tDw3>!SXzeC^(%OXApPBq=FjioLP)91-!q4v&cQ0d){9G z@2{Y?O~E;-pw>B@otL4Yu2RAIOt?zne*~#1&!=qLEM!*%T@HcYFI&2vx2MhLH}#o6*iVot<2LptKgO#%qX~(_}j>9tH+Rn+o^d+ zI{sTn72H{=pgm2&UF6+G{@pf)72H#TP6ZvDb#Q-g7Fsc@;Jz9K_s1Ae(3uZ@b`Kcn zSMXqyf`^EGXih;_oq~tCewf}5Pbzq%4CFkThjs+G>aqjsX7d$?wfWPep zJ>3ePq~23Gm{IU_0hr-wYV{U_m}jW}Y&y7qwqL<>7AolX(WT%e zYP>X|;AQH*l8b2t162wJd8R@3-{AUbBu^ClF|&q0U61?i|&n39blg{w6vT-`>$ z!Zqp?rV_VSpTab9*BMl}ZjC}dD~0LAEKEZsMij1}3+nM1DcpdV4Mr6j1?W_mFwmvY zECO|`W`%Z>LI-XN=*c@G^ad6B6$%6Pf=Y}l4D->WFycJwRTvjzSYa{`>~C1Aa3fz~ zMw-Hn(-m$~pm0;}Gh;BrX5?(%s&I==g;})JcfG&l_ zQg{$K2NQn?O8ONZO8(*Ol@@{-kI2KE!Xt@4szG5H^^TrYcnr^4o~v+4g~H>=<8M-7 z#jL^;(-odnjWLCl-3m``Q@FHV;VE@shN?=1%Q!!kTBlOyv{H~;odMS61qx5+{0#DH zaxkLsOk&O)S9n$#sBt#uXU{3DZB}?r7KRm`Tchy26fj?19>x@&Pp$K*$={>G3py2E z$a*37^{n+g&qb^kbt}BMQQ;-jYN%CsX|KY|h`Br$)M#Y?iV}raQuE3og;%kE)vUrM zdR|?ONrl(Y=b90P*On@5_Q4F-Re-bW>2pIiW)!xRfxH{3abv5(n~1;J0B5bta0@+d z8Blm@8mbiD#xwKZ@bLC@u+M+P!#gt-w%ZEticx|lg?E#CPcfzyc62JdmzwuBE4+`` z`$iPrKc=vg9uHJ2d@vO~3LoOSiyB>n3LobB5$1lRTj8U{;JiBv9SR>~eXJJLc$~Ax zM-@K7Y(31-)2i@EdOS(|Q=C23tMKU@P^Xt?>77*gOsB$Usr~G*!snQ^F9XCsUxqn_ zFVN$~5{3Qg;QFOPv?+W!1(g_5_(~r76b`UAP^0iwA6*Jxt5*1W28bV|?;x|ikq_24 z3qbB$GYa1}6u!g#yTrcB&-2|`g~N3U-xH|wektY@e$c9LggPVS^LZoukhqUZ&;n|G zoCfNA+=u~%qp6_ZC^h-ME#$xZ;V0yO!ucmW?}`{a!-_tIpA!3N89Feda4Zi^7*Y5c zbA46?;#M-#N@}jG1vOVrEBqYeg9^WBz@)-2IsbA@;aB8+Re>Ib6DcSJHNMV53&s_G zL(DhL3coE=I7#kztqS?P5%T^Br%J$_KQPCSOtN* zJ{mEqXx(B(>t%qL^a{{tVY{OB*P!aEvXhZsJRHi5+RT1x!Xpp~S=8E+ye+#GZAI=@{ff3O0{yloK05~uinhsAv@Pp)xr%bg&uPQ7qV1V)2l96q zSF|HFb4L{I)TL`^X^)JF-5zzE6R^i3Fg?H8FwF2v_~;m_vD^; zO;kYd0_yM8qG)g8_hx?|X4t1g5uZ__LUQ+|=Dx)4mj!0v?@!VG1B!|Y6)h%aG5z?? zEjobbJdoLn%R$Y9YC-~Fybl8ld!<#{FX*Svv9gzWQADM<;MMu%^ zs0l@76&O-1iYkO^MJLoMI+2R)VwBMio_ay*v*SicV)e zy-U#|MQ7!MI%mgVrnA|rEyb{+b1D>_OYC`uBL3|~RM)BK{2UA_ zx`49_MilYATXbQUqI%Bjdlg+&h)G2kmw+0)@1h1`FHHe)ml1#2kfO`0(Wj`w`ZeI(H$jV<~xhg4|=rIvwc?4UDUg~MbSOf z?qH91UUVP*?xX(w+Whr zk7Z&;(c{C4o; z)^}<#rRZJi4-YDOpL!n@f$Nb9MIYuW`iOcTk@s;PIu(slZhP|KCQ8tw=xeUOt^n8H7^uUPqHhbq z-ei@c?{XCVF9WlRz8_IEHKgbV>iy8C=*Lz?Kc%5X(R4N@75&V7KTj+ArC8CgJjbuZ z&lI6o(QnlMjhNpnF`?*>az(Q?i2sv0{_I!uSDB(!?5%24G?xYP{^tH~`u)?a=-(p6 z%Eh?id0fxyS3ExtV~Q74DNeD`rFgY8R4ZOR9leUzs8F1mt$0nWMgH3CuRW(Yty%Fp z8JJYOZl~h)3NflUy#d^(4`NF3LgE+FhtD|iLUI;TbA7Hipza0}iVflu1(;E6a%R;k z=Dic!tPZ)(sA9KAvBz8E7F$NSDu@zv}li7(AWtKuVgo+GL;uJ}myj~r8cRGZ>5fj&paijT=a6J`}3TaF>c<%Jkk zyo5T(RVY55m*QpKk- z%c-25R)ulJ)x=a2znt^ai9MaOGpKt;r{bDn#b?Hf&nj1Z_N?MsW>54dmTG?-t@)<`mz^ z3^#FhQ>WsaD;2jA+uE%77J-;sh`qH4{fcj6&fB^bxA|yPd^<6>*D1b(neL#@9pj4c z%vRiL>&2z1;JCS$rS!-ru9Rvsm#1)O%o9@q^?)NS}vt z(4n}?K!f6k>G=rpk4!0kG!Oe=o8Rq+!=Ahw6RCz<0(_Mhrh z{B#W_75COFekND(vngm&%)2Rmu19fSx#H)!ett&r3xkSZq<%lOUNX?E_~i^R-z%k< zP(0A6_*H7WO3&BGdu>SZ>vf6;nT5|-zormL&Uz#9PiNU9p-wM`tP#; zF4x1Uh>?pHbSZw1=X{U&_o(&WFeVkhFWATfF&_~B0X06DQ~Y5%nB^n(KceqPW0+CQ zXS4X@43P723D_HDZ?qn*=*FPpPpZJ#ihjkP7NG)lXhE0aF>=PJGnRu+#h;acoX;B2 zrg$aiD>+|DpOu`gtf75~Qm@6`W&R`DOBif1{SWro>7Oe+2}6`3eRB^uF*K};zA zi<*Bi*I&6PK{a^Bzliy30Q6Wz%&HjqC`Uco(Fc02no&Ggr}%GX`kOiau|d6msP`}H zzon=_vy#e3IjX_^JR7a(#i)|=Gr|6XIVDrdFsS5e*%(%GbynWv$u;WGqU4&XO0LEA zT5U?MP0h7yF{WgiFoG#1*GU6;>lC624d?`M>&z&bP7U7eN#5>v@cLN)_N*Wbt1~JBvl8J65twJU3SV@OIyyufXy#ivQR3&5bH_XSZk{fZIkp}KF zI+ffw9X!XzElO@e{Y|L9Nh3y;+?1G2Yn9~t%VZ|=ZpO22UZ&(0shCzWi|5#qdRt4$ z?0O})DO7S>o*~CqatG?|NK7vAxg$#M#QjdQO72X*om;{6q8=slO2PFm8j?jRVUup=5D`k_T~r5Z4D!DOp0!p~N1_?1$B2 zP|3r|JA7Kn(q1Kxs8{mHbX0=tql8v)b~N)JL%s48C71Lod0ZCAKfYN>-p9!ksdo}N zCs$)u$)(JG3NfdYgS}HGm8>GJirQ6em{xKb_shszHlpOIB}$$~?bGOU8vRb2Q?i=9 zYU)>0kMBp5%h_MfbDU1j=`%{6QH(}V?~HB?U=+mEFnf)GOi;6i*qREog4{E!LEKq9 z%h}}B5?9OFIi*UTTZADc&tt92z_gO*Gt2qJUC^N9h4~=2KIQ*gpd+Pu|IA;Z1zKHe zYMcD6)=ZhdU_QTQOY;|K{z+OeZ{C8#wP3-#V^g@Acc7HI#_FpPzhL2Nt6N)aw=lVI z<9W#qk_(TV*YVFa^RoUKG3I5>U-9=Q%jPfo`^x!?G+$r*yK3Iq|JP%ovhp{h&O9AU zgWSc`oxfzYdGqJ*G5>(oQlzvsQx>k4{(r?+U(?!R;|1F-SYyLYw$IsN(Y$TVgt7WY z^A@BnP0MvR+|Uh!XhZko`3wI3du&73-7x988|mMFb?v-I=Djh0MfxWHkGVI2kL#-M z#qYUy_R%&P&5Sf!N28gMG}=d_(K@=L)mlB4E!!F|vSfLY<2a7@01n1k*qo3ANJ#?J zQ0Ob6uQ#lqDX$@9&&@XGXFe!t4M4KF`TWqdRBL zJ@=g7`K{mI?@0DXr6QALKY|-!41WBGVhrW*SBLgE5S)r33QuO?ky|zU;s`>=AX4X9Etg(;uSGRVtBdy{N<1N%}#u< zHMC>7cIjwnEOZ&K?E8+(wU=K=Tur=yf8rN&Ud2OiT012dDF-puMyW&URb%yDXOTf> z9ieioL6XC@7G}V_PfJW@_u-l3`y_npJ_A#fGk8e99E#)(lX~;CY zpoUvpd^OJEf&wOWb++`i_SFY#ntjdQ(&B1ob%CS6QB-I#N%<_l(CQ95YlE?9uq)Ex zMy)WD!XnJs(KWz2gZ^4mB`a~W+TZ}=pW`o6DCaYi`!RKju_+Zlr=Dm3HkmFMs`C4* z@M1%_HjNLaRQy$4>1TfS&_p~DpWr{z$7#Q?Z`4&Ms_XcVbSV4js9(SA$C{U|{il3L z{-IPSwMkE?)_Px6xxs8<(^FTxn9xp1F@Q$c1&LvsGRvxDFvv@iEXQe*q$QJ8mZZTM z8#9~rKO{_S`>TG`?A)yiOiN#TY-Td=LBy0XGuQtT+mGn=G3R%gdN zdT5?Nc_G@pkq!_Ys1I}KDye4JDjt8xT);vdgDj*?>^FBFOifpG?VE{hZQU7d3ba;U z+qLqJhxadqYqth_>O0R@wZ{6ahj#WP_ZjNOW8*v9=6gB@TY{m$D<`fzd!ehbVM}D_ za$lq;(g&6%{Stg&k@K7~)lKvyI1a;}=IliQdtqQNj9Ctv(H49QpD^iDYj0scQgE8D zWcs*SVjW>)3*!&sDv+__*hTC|?|9$)-k~l=B8%#|n&%(C`uOuTI|{d*-+XoU?rnwC z$4T_@yILQ1>cbO_%jg7~GFrumZcZllMk0F?=;$22diU(r&F8lj?hu_}80e!;IwW_> zN2MmITrF(~)YVj!dkSn;Bg>N}(BO=-m|>Pe$o1*U|6w_7&4u6VjsWk)x7bnwh%d0~xw8 ztp+9;IYTuXeyAy(`PmdeQG82Ad-hcyM7n*(^+n*4#5mVm#B#wbm#JtF5T zaopddme7U!=uwEZXGRQuG{yEWrr&o=`NLPX;d*lI=duO-pg^jS>ZQ2aCmA6nWTRn~ zWHxcd_>36>7TaBnsj9N55ad-`SzlG}aTQh+Re<>wumY<#Mh9(Ix64sN+p{a`5WCh< z;*PC*fCFdG9yoBeYyWWn#6&;6%6-0aylkhJnYw)X^m6*MiKXbw%m7md@H73{fti1= zswl6lEU&1dM}yuWS73kIqy{x;G$;y23c&^*PIIU1BcTSSk7u_@Hb;qr#2RS9VUETk zj)*Ju#V>yN^&gy*d*5~F_1DkMp&9yw(jpgPE=r|NwVjj|>Jf9qlneM==Yxu3STsV+ z_ZX;m)CzIe7Kcn$FS-}PkhqjT&csp`GM{Vvzek%!`v%5S%DMdq&i0J{8Jph94Ba~$ z`^P8Z`%j%%?mV^WYuXsbKntW#RY=3C>UI_3ZWu*|E6WBZ-wmd0Tm(Oc zq6;1UW3!)`+xBVm9lJV~?!+vNVS--5xa?A!+H6u}S;4R%3=Fb#m`^*%C3jwE9~Kuo zXkKv3DCo{b)6X7CKf`PX(=WZ8y8Hn9@9DwNAE$TI+)sfH74%=uX%K3a!sH9kDHUc? z4&hl1i+F17fzA5vaMKePX^&ja$}Kl}WQWh?^I$Fb69=^?9_jrOyD$Bh@|gq2^e1la zA7lIHp1b2fGoDwLRE(z-<8etosauWOuqXHf8x+}agg>we6edCWRIj+vo8W z=EKf(F_)Nrp+136c!(fKbrRb`lVxt!Ja$`uUG+y+t}6MR)rqB8|LS;R%a#OQw!YQT zwgWNNn*NgPDDGJqLd)d#(b4Vn;`9oVk!vwVi!}GN8Ek{3xD9NqR8Z{+B3fdd-80&5 zC|ApJ33}aU3!M8|Bn#Ll-z*?pKZu2Wh8fZ?rPyDk)AC!+e0kgT*P&ZQ8p8azu~#ak z1}Q3yszYwGY{V3SS4c+ij~w;^eqzY5k8opk6_eUq8>8W9z+cr+-B45@RkBLKJ~VBU ze(CcCRZ~ox0&b#D8+5A7d)731q;K<3&q&wOpt`SXq-SVz-|ATR$Vhi=bTp| zd^oydSMnEndv>(9@961W$XDzuqk~Ib?8;CyIz+GZ2d4T5rltn^r|^hG1Nc#jXCxZv zQX`mQ5IvS1mlbH727|^Q$pGn*XFYC7qXB%w6|6H`OT!T-B&WZ2{R1hEoZ(-)s@S?} z1{b^fkBp8VAzIMZpY_N^PAoev3Q9#@b|gJLxdQ-$0GCvh0aCn6BpL5zWq-B>sen#WsWk=K2n9MXJ2c&1Q?PYdt*B~Z3mYE>amVP(n^JA|cH>V z{BdMuGiX^dm<_rOOJ*jCb0c2!xCL&*9#1A;Cds~WTs9h4EE?b{S11rQ;u~FJNa?>| zf0Pg-DzH43`sNDJ-$mHHKf?Ylk!q#mQ&;ja$3ZjHbCY7Ay{#A|WfiPQ+v8BOjY}40 zG!Bub6w(@+F1&in1=Zztfo{F7TDK2(DslVjd{%I6*nFHyAvAQxWp=GMroYw!izIRW z{MezMw)yUXtX2KwcwgW6e01MX&#o?IF>7DrnVQ$8f85V*#ax~YtrNswUHO^SKd z%1odXlbo}+$n03OfU*aq*@k*1wYAho8=}Fw>PnBRsK9ELLM&wCY#)0pqkEYA!h8VV z_e3;K0TrZ=xxhuBNoTCF(fPYaAG-U*J=-TIc8sYFT~>KMnOeDR&oO_nu`!6()$x0F zvTbjE;+_-ff1Ta6bNtlgmYRyO`P8Yy=|5aKImKGq!>5~C+nP>=+cD8H>~2X8V$IA_ z5&0_enE`BBg7pmnau_YTXN+)x=itZ`_ zyMm^y-MY4>!dvEXI`F+hpBXd^rHHGR;I=ZDf?v^BAJ>W3hS{FKT)A_+C!7eJT)F>D z@9At!8D?{cY6?Z#%p z(;F{9LMTSV-B}G2yfh;rm{eBkE-B2n+n`uNsOx%+wz!%Zh}EQlMWDuXuADlxvV1C) z=<6FE?(0jWPT7txv&rS-cP_<;hvVsI=qH3a{>c)Q4LCkXk8w#MwJv9V;LITxl~@{= zvmg&`Y(AqlH;_T3()vSmS17e%w)@%fLp?o*#`o_ZnwlEgFTdEeJe>a9;r(67$sy)X zOw#?BL>t+{??+rk#-^2_&p?!D4lGjTV80l9jHFHGS}*X7x%hwhy#n9Z)2u%IEjA^; zIQRWz`jt8KjV|PT^lc>__{P4oN~%?|l2OE!)J(67;8stv{`42ogJ~9$tnR|xopP+O0Yd(*(YD|KY!f;3iU+A7OfxT|9STWQE3cN^2A&#^e;No=c6Z>Uiod z+nIyI6BEO-<@zrUk|~FK5DmBC9(g47!RLjYa`PFe#KeR)t zQ+;``PjFjtJ810s?HrQB;TGDhBjRk4X|i!A+2u%``>t$McAWb=8O>k3{*JPVEp_bi z>p}U>(upmB^g-N2mS}HC*c5L53@2DB7&pu{-=X?-F5Kchx^9I`yQ5GJiWYp8fM`6 ziGes)5%)?$Ru|xTof5Z!in;!qReOa2gqDLdbkhNO)&;Lag|`G;3*T`D{G1n3Wq>%^z`>>ICx$CD9ic+hF8iy_p3=b1IXnGX8^dX%w?Ysb5Q{O zH=?##8LVSn){@Pr%?MbS#??J8Mf;w|!v(Y=F{M_lR8u`Xz8ZyxXM8zWi=JrrSn8n|pT7@5&Po>S<$u+fc1WeF4l z$0^Z<<~(7@P#{*x_kIIw&}Eyj(IIAAS&pfodpzCMj1QBw9l1L-tHvi=o9-Ch+_`rk zzSxx-f#DJkotW72I!L{N(M`QgiM;BPLu0)=$;{~(9PFs?vDcK`F})8uBa>p7IGQuF zzfi2iu)4`*uzJdP!)NSxL$i>%xLOuujy?h+~>pD~(jnPDExVDwE90+W! zRB#|A;)LfCJOhmFCx5#8e7?hAaOR)e^DNj!VdqYdXQ7k5d_73x26f6Kc=jqOsQSGo z7;$V`M)!gz=`y4W87ZZuf+yv4p1q4-5&lr+wjEo0pjF9c!=|Mn1EN7jL*M3wJBQ#i zmkq{o@R1+-#$B#)pInjiE+_|U6UD`e+UqZ3O!XKO@p2E1$(avso_*XL&gGFj#ihmE zE_W&s^3{@ymRPya77JPZ3tu{Xr`2gPI;|)7f9Zuo=dDg7-rvnmu*2VSgzWZ^<6G(X zr{D5pM<_2Z==ew6TaRfKNPe{jw^p*Z&dxNpOKCCjdY>a_HWY`n_MLqX<`u|tVcvs# zzQY{s&(q&1^II&~M@{Ki`lslB9?wQT9V=wsJ zKGzLn;HpE!@#qsz{Kv7Rl9z-7miLup+qjOHCxxCet&FG@7Dz6dDtK@qyo3vv1UaYp zr%ciaBqdmuMuy3cZ+mLXaZA2pD6pPn+t~f-*D<*yV6z2E(rN0Xf9<_;#oGUZtO)Y{ zU)48F-FqHIlSRW!`jh%Ld=8%5qcze*!-9$cF*y-oh}XiUNe+e*R-&oW zAwMTybA3s?$u?QII#ce|c+si-pOl6f-Alx>dCsb8I`d_XCT^;?eV$ zuLoDV24?xx_KjQ~?#J_N!~7aBzaFWETT_ILFd&v-l<;JLMwm?5(Mn4hYpSZEtkhLf zT$G=OA$picBLOi)a^3qt$JzudKFzzqnwHLhx!#j=>9d%Joomyu z-B85<>|qwHw{Xyc(BwxddwKypKOp?Hz&w-}+bwmz8!UK#W)dV z&9$a)upMJu;qbebQmc<2dg{}wmv6(sR)3KGRr>G$<3G>^RuaKEZlC0H*_<({Niaet zN>UFuer@1x27*kGe&{3X05-L7(6Kj6?Dz~T4c0t4KgRxL?)v9yLu6O>qu&b9P@S}$ zI4?!Tgt&1N4J4@L*KA*x<8SyNt7BL^n}Esb?`jhhG4d)e>#LP1}8 zxBi>vMbJhYWXJT=f;7bNoisB`koOp?ZWx!V9zJ$_q%jEnlLa*&pR6YxZPd3Uo#3iQ zIm?5Ba?k_ureAwk`#p2S?!4E=yk1Mv$BTU;aNfLA`1gavR)8yz?`9-kz z+ZQ!v|BDq6pLib(m_sk0I)flhuxC&1v>JqztQ-UupzF4uC~-0&`7H@}ka6R}7F0^{pC)Hlu7_@pE1X7H(aZ0Im zwCaUAPw~$SxipIfLL|Igt;&2zq?|*#qJf}Xcm-;+OfRz*ey+2*9LH0#d0O4RCw00n zE(cem@k5KPt>;FF-O;$_L9+^Iw*FP@ZHNWk-Uj`GAEC^s+i9hkcs&c{*xQIO!3!en zZ4M74?FE4`jxZ8fLHF(hsjl{>j#%P7-SPc9nvw?$yW~hiQ%h&`!Al2rTeeOI!%g+$ zR<~tlaMRpoK$;rsdMza-56yrxW4x`HM~nP9%wtsTfU2w9XXH*sn2faO(1rJr(B~|X z#J$}H2pcg*Cv%d}*BGM)VbR#*{*k%&zd!Z8@A=9vZysX9b5A@mmwvXwPdrlCoQ34G2k_l-|j``v(nX=*Pw(jNlFKsKXI;vwO4euD{6MP%-Fm z3|6G?#qwcX!VeL=iEZ9D^IO^G9oIf_~=O4v5?gwV4Ie`)ZhwmByoZo+DA^_$t|Db@*R z;lpqpkEYn`=2GeVxor-6n*9=Xah)`v_Lf8bLkCiT5>Wssf|ZQe6g+eAATNODakrRJ z+5%66&*dyGvRk3>0{^G&(m~dRFbnB#tw2n2MblKx+$O+R3Ym$5dF=U}hs}k?`ozhT ziF#w9`S8x>=GIO_p^+jo#zI49YxA)kn?Dq7O}0iqw0TD|9R5(>xY<10`=M}Hv;WsH z-i24iOc~*_lGai=w*R7rvkDS2#7cNcg2KS*04)~JiWm>{Fg)G@X4(kXAKc|z@HQv~ zd_i9mT#w~I^l6U;@LlFPGtUJD5DyBCb+NfMW-hb#Mk2k|GIOl8xw&tl*-~Z+BkHO) z;Z5^G-!Xcup3PRvSPwl`XfmojaOYG=to4}mE4i3`3AXxSvi}8kwp<450cXIvK(Mj} zh#zH{LMcp{D_0xvKnPkIE@1QkLK$JTWLg{b)__AOa{_h;h;yC4xDFoQ@-TT2oC39p zD55|V0s^6soiMhkH_%aAURBaMKi;Rklh(%i#=W7CH#RobyGgvk-3a$R4cvDabnXz= z2?&=EX&QZM@PgL_B5<-w9-j8rR#%SX&E>I=6X@ITEvvo$7-7Kq{dNLBZI}NT^W>KX z)&81dy9E_Wtp&GSY`PF1Regr8-uyQ*@J2Dl$4R1jv&;eCLxRt{0hmIkONLi z*u(-l?I-~GI_6ha=KJRl!Y1x)ZtlddgY!>Bnwlb)?zP>%@aV$rwtMd}ugtY{o6<*2 z-7Rw~=6l$-&V-G<%Lb?}{sA|IiSob)-6##IgNy-kiv1=qybv}p3d&Uz-FX)9iV8Dgmzd+}k^-4c;vpskF4PIhNrZ7A zqh1iY#EWUb-cwe^rwb%rr6p>&1zJZ{C9sMx3Y%(;aAF2RQ2RpWPz=r@fL}duTXx5L>0#Z7Kc8L(%{UieRld3|}F9E4}>D{%hARe=6&i z{nX`a*RG|`O-)U)H|2O|--rw6;K`>c%JRS89{0k)85O}D;S~8idqeu(>wiT*(eKRK zLF}a;0;@kk`4Vns;;|Vc)Eg7x$qX)lyY*0sjOV9C)k7vm=xvdXP+hIBx`JzNeXLgx zDI-!MG&c&B5Rt~P(YPN%_@9IZr$i59aP8w;$7}0b>gytwLQCgl zeeWi-oHyM)xnp*?%HI_9wU|8l%LBcmU=_YZWOf&uHxEVqU8a1C8VPorV6UH--^%_* zvBFZnOY@^D$YwYuhcQnM;yKbP_s{N?OlGUuWWB&s8Z4M6NddD%ZUbO4M)RsVWK)2KsxuBkip%O^tPffx!xIF$`Usg#t49&?|{S2Y^Wf ze-bD=SVQC_jnfr!;S~@*w2A?-t66#)_#Riu@x)OVP17e;_2l%-2~|BY)1T_-NFkhq zpNa0#(eCb%gwIQeUav1Pa;*R8rbjm&?bm*Fv~KTtv}e8z`1?nDwztj?c3$ip9PFgl z7wJdmAkpQ=Ku;gSyp&4;=^YvWGEe%*IE{%#7-YyVObh(XgdUPi3t1<#N!n7bMl#Kf zCJ8>(3nbSze9f5o8hp+8)`F_Lngf*q-PH{A9MC8>yN;eCPcyk{G*@#aa1FZK&|eEO zW5vx~-R&uVmA6jmFb=dw?1s}q zh8|omM`R0@+fH#!n;HC^0s@fO;1@ecaI-}tOfmeu8CHa3vYVhgp}nz~r#*!zL&C>@ zvgbeh+~F^LA^p+MK6m5`U#Nfi<)8c;y*N)=kv_$K#@>$ajS1kW2Z}rfKzLt??Vy_> zrp%82W z8tflZ`?|WkRaM@u4MhGjC_78%zhZlP+D5&PUb^&|O0Tz)d~}!O_p|5ae*`Z$lZmN3 z3Yz~sXrAz#J$znTXdXzkK~~U%XPh&TZ8yVp(#~cS2!UK9nMQ$jO@O;u)9}`6wP`7lq*VlJ+)YlV)4R=i7Rvx(*7?$nANmT)n3T=XixX1@fAq(?9 z3$lQE%n-m87^8wTGQG{ZkA<(TP%0z=hJW1GCS({?BO$uR{)8uI{K?q&C_CeO6q|S_ zyPN&FGAwy-jm4iMFN46GZ{b*cujKXkfyK9b0m(#Si}vXLxU9wb3*o1J?nAuqL5X0`5FV;&JT;Crz&bRX{GY7ybpJ$( z-8DB9Xl)GyT1Iy!HtjY~_YTd0c7BX_+{bx5?xdg{T-(Ea?7?Ca`y9qCO9}k_OZa+i zz&kXmWC*ZDatQz~WdH_`&>D8^U3-DO06EWqi39)<0$Rf%czz$rcCvfsS66|EOkQO# z?VV1}?0Myc^582caK9J9lI~`|?=&MUAh80;`jo^z$qKGS!?+bb|LR(lJuZ1c-}h?t zjhHFE@%Na^jX4|1oScm8R({Ca&1qXYU{VvZ9 zEGMt_tL&E>e3@cBGzmuz!42NCCK5~Zs;sN4#EU)K3q!J(|ERC4Owwii!1H1p0r2eJ z{|e8Jg(4oakN;%FpZ(nGXP*Pl{@kI@K3D&*KYjUSdhz?fc9ysDcukdbg!70+WOac% zBPoZKxuHZV)7Xg&xt+*}l+4x(Sas}HhBOVU#c183aZ>zcH7@4afZMbhH#?E5?yPbm zS+(3-io`{V^%Ofi4yX&lo{JD_59ywTpjq;iJ0pnE`|;lFBKMS$m9CvJ6x-ut^Gjcy zPn+5OAG>?>%_sZWyF32b?6P%@4W$3Y#pPuv+xq%sT zp2cK^P9&ZMGWsw*h1p_Sm8?d3rW>B6#o5vvuC1x6EH8U4&k~8obVjKKj!R61%thhk z+-JM(8lLTY=f;Q}`sLBC?$PFkJ@!WT?YYlsX5Q;Tb+kTQ>GxN5#^W8;{hm&nY=Sol z-U0oYy^!*a(*NKqm@oKBpjNioWi5weNLXOY(rr@yWPC6Ft0!{+s(;xbyznA{|mh=s14QC<>j!08><@|>O;Xgzptje zsvNYkp1&1o(iR!8P!PGENFtPYTtwq>ln$FqHjnp?^#`h}0)fh^E${v2d~^5M*Vr#} z$>*Wo*0QRqva+h4!H(FFsk^bYS0uZxqob4Hb$`wM1hvvB4JQx90j!#G@r)+Lcm(vH z@f{%02t+w&fxyXAL(D9E+OOJjK`kQ&;;V)~8G-tO+QM23&sm_v6(MpnISWv&35r0b zKZWu*?woC|s6o;>IUz~}UOol%{Iq%=o`^E9pS%&*AB!#}dQ(8m3;aCiqo5i&s62xh zUw~qH?KblKfxm9NZkLyDdOe@GZ>IfInSLC%xNcc@{rj2rMVyP1ZYqJ#5x&()J`!*~ z#X^W?>_-FiGb==l2D^jP!MJFHMklb%L@fB0t_IjC2GAjvB9_4uQR_WcU&C1NidN@63)3^XV=>ok& z+L~Zs5?&dG6TocvTGstxG@6&-0~w?kvv7nASfIgB-t&!LgsmXKS0Y*V-=qgK5?Dy3 zZIxPzivvgjEb);Gg**00@qlAb$2{HuS@+la%>ris!kD`})=@gKbpwKZSz%UhcW|id zD=|;L!<#5NGIt}Qy-X>o^VULX!}_jZT`ZhV8Z%Q^2T|Ro#_W2t9i1tJ$q92QP zonxhW|IO>@aN~8I4mV!c=}=s!{zX5W-atjjtL3=-LS&T1)J`}?uw`NO5ROw%a4{GZ zY+NlIK%%P5Q%p2f;3Kt?@SI>Z0@Jwxt4~C>dv0z$V*lt-wt0%F8({k{!=r}zfG{w9+{E*U zLgc@K@5*Biy*Ki}1Ca+Gjy(Ke=L2u)eBi;z0}ppT{6Ob};A#G~Z=r6*Pmt|U0T07z z)d_#KRO>7CE+|$3As0YjXlsleEmO%o`{(_DY(Xm;=E2Q#$AD)sFl0*z zN5dh^6SQufZrvqFctqqT;Df@=F~}~>Itc^ut{a}I)MGwK(r(FPgohwW27D2fz##W076(hmmdqv{{!H%PI;3|s*9ioV z=KUexCw$c8+7;mzZu)9AFbOcn?&#v+;NEDWGd|nBf2g-DKC`K}rzJW(9PJvG-2;0% zTjyeZDI`=L-qgRlb8b^_@1`UrRE~9De+lctv4V;N^EpcM1{C2|zFr%zpOi6IH)(%L z-jj1ZFVoNIb=L_8Bl^E<-Sv^o_1DvN?1^gNvZ9D@H%ncxbw8roT%i0gGh0ZGI3Pzf zpV0})VuHW?gpDy21F9qyf@Qxn*hOoS5_%h>6+1@P&6 ze4)+N!3NvjsmWba4b7pN#1^;++84$jI#S8DykM>?Cr6p$cH zVU%ME|4-yIV)y?=`JB_kYmm>H>31V+F)N?HuF2=^H$gEjD)L4dy%E)@NodeC#{%*_ zFrn=Mp~r2!eo~XS8?T?z^fGasXkGNfJ;~@_V8LjQ2`tzNZ4Yd`eiGh2+G889pVIc8 zxSqw7-9^{I<4~6Xn2_&EHByr_txgcA0ty{4<80c)lu5XT;F~gD00j{5I|Ajqdp*9j z)(5aV!k@KGu97@E5;tpDjd1DaKu6zx4Urq0Z$@tGN0_rc-e{jp%NEgIN0o$TJPjwajhR3B8w zR(s*?B9B)B!C%Y)$7CtQPv-cV==_9Zqxf2ZPjP;wuN5#;IoGpmwf=f`t>`-SFZwy1 zSwp%`b1bflXn+D8F2;U_^|wQ(DVGvzT%rJ;Ou`>FpMuydv>|BK6gxK{)z@G&Y;hFj zA-@~Bu;q^Oyuv)-T1A$3)+`a8Kr=a-ay)}5A%emo!RF?lu!p{^y=Big)Ydl8>%&u1 zFYE8I{9KRtK6vIVq&iR<(xf_0dPFc#mIoa{QzLGo9}u7^t3%WP=usW22~~L4D+gj9 za^-;BFchGRm3X*z;DUO9k3&!pwp5&0p6+bfwXOQZaNklbl_2!GyON^SZ^WMX^$W>pR=wTuj}i&@w&dQ z;ySIL=ttj!9J9gc19Ara^M0^*cC2j&K1|@6k3Lgu(C}gHkTgC_F2{|tCAiyfhGm1| zrRiL^YAM4K*@$-wWbke|ka3a=e#d&e+l~xmoB(f3$GbhL+?xT74|Jvf<0<1>(#(-GkVLq>@(ndIYs6omiI1;Z#P?2dtDT&JdoQ4b&S%i`< z9`x>Z`vQb?M%E-HW>ZL*5GR;IiaBn~({}jarRblH4f`54W^9)?yWAE1(fabP>d&rA z-liOisN4=cBn&;|CE;ne)iW?f6yK7k%T+u5!KU3Xg{BsSg-b9p3LX=qwOW`pC%M9o zs6J5SC`1Qh%1&dBY6vNN)gGyPs0zX40S2Q|~^ zzKF(<7PPRSRyQ{RI@Q+H)!YRXY;{#dCQ~EK!W5FZMWzOz5$onSH=K6U%ni9#oAjDc z{;iWZDw@Rnd%LRE<#Q1KhfK3^eLh6{wcW1CK(fv3oc6}GeSAd7iw*7bH5%U7{*=5g zr~MVsyy)M$u08D?(f_%1?a9|8+83;APkc+XKd-kZ!OX`G`v>DMpuGcLJ&1Ac=KQ7< zprbcEgG`ESdQP2{I5M!lCcFx@kbbWNZMOyl1v+*X?Y zOh+u%(cax{JG$$myN_yl7C@=AUA>yF8t%W`Kg@sNu`w0@Px%lq9>@uKC)R=T9`1Rj zj1V3=E;xXAJ^+faJK)geJDF-;Pyxd1CZ;{uaEo>~*?B5zO)@P5LKK^%+DJUl1=XNv z;~@)KS9y`=LJoZ%fXm5|%B%&;o7=azH9iXn^zZ+EYVTg4qGxNmxc22Pj7xjL;(GC=6AJo1@oPjoNZ7v{F-`%tt$ ztH}n@KkX~g-nybrQ;@V}gqky6t9#7_1iZRuVGTyoebdpx|b< zu!0FN1M_|@Do#?H9Gv1SM$H)r{1=H0`p5B9nPLlYbZ%g8IVBxhb?H$P(yKe@QUhE| z&^Fms$P|TCZISL3Pthh32Eb^zfJl#GG?Nq7!re8ng0$L15CnuWrlO0epHi+i-|!U^ zJ~Ls(Zu}}q!!jl{HNxdz3#Ye>7ics}0TvJiR|rA{d8m<;o|Z%qw?d{rEYpopb~-lP zXInaXa%uTQ`pV$IYGKOQ5h~&=JpC`fh{p#8zY?u)jh)I17ivF#c`y%Iw>-eJobD8!f1}nO+7+(T-e}4l z|JpZjJ+1s1t|Q0Df$_7arK^(VDaNi`6+u|R4`)I5PT&cU;fJs?C2kp4Q~BXit1ZwAXb>-k$Rj z(f-W3_B2ro0pxtaMhr;L2yaz0>0Vrns{#>$-H&7< ztgLC#Zk4I_DwvsN5qq419pX{L62sTLjNO! zG%t_`APy?xq2{p=L&7X2F_a5X0lb^1e%&}Htj`w=`tVBs^4iCk^;3VDogDeCwUwxY zTUA+m{p=jOIG1jkTR%@3TBCg_Xo2rbtht~a!oBl4GGes}R1a`cPFY7F-ie8evX1%? z=lMXiJK`Rw^&+3;d$UE`n?K=nJ`e1EJMk8_tnn7)-=Y2PwIa&($C!{A0$$|Rc*PQ~ zBQFovkuVNkbdPo&R0^9Lm<}0M3BG?Ce~VZk_7mx=>__}M#pJ~Gq_~c}0cw8{{i0R~ z`W5ZHz*W)ps?2rX9`_S5p^MZ{PJ0vkWww8QUG#4PHi-A1+ulJ)kPkB_kRS|55GOGq z+>3Ow)4ZN`@}I${(B?nax51i}h<@M|N1Xu5fdSl_LA``ao7=qDll!tMCh(oRT%!04 zTtxt>z*R&=XpS9AJ^3V?WNnklNtR0g;AHY-`bTi=WOEW-)W3^v0G|ppUEY6gH3HIZ zm04fN;WY3HXfaNk=s#na46v1R$WFX`8TpA%PVD%HqVZSY=h`7k>m1*6b#9it&+|^*o@Busk!iI%4 zyS|A?Pe4L&ox>T(rd}W(MP>&jP3kFuJTCR}U^G6^)jdcS$kgE0ePYyXp)Wy6x5!E3 zxs>n2kTKt+D@Y2-rwCtXT|SB2O44(Me^1wQMSG$P(O#EN8~u&Co=feEIDZlC^EAFd z?TfhXBKm&=U583rkM@Iz2~|QD`GH{bHdHi6#UIH;{sj8NTE@B_==fHv5$ujF`x}uVS$fnabps>&o^`90^n@ zG+0*^t`2XoXHYLxcO>w*A|)rlzbR1g97|9j6ZBDE$PLj|aVu1Dt8&N&J5EeZVkXZl^AZYnVOuvgP_(Bz*52CC)!5}j z?Q<{E{T)<8zMj<+J{t}ap;Xgz5qJ^BYqjtWY1dRvH00+`m}5O>!aY}qXJ?1&BVIVg z$|Ci{vwsI*alkNdo9?cUl%YbBH&R7a;%kDzPrWr*Q(b4F!AxAx>3$}c)lnf4{CUGehYbw@o#Le z+XNfibAK;*(o6xeWLZ{FQYeEtF_}0^;-qfAIp*YMUz9FnFef+m zpvSZZr2g_+XH#v-O)w`J=+lFCN7zA7SIn|HrTWvPSfBVB6YZChWx(v*%&p`6_) z&)MzO=MKema_~Agn}QQy2|7Dh6h3!D#P-+Wb#C^>8|My|u-=0{cfC?iLq~CM$1UdW zH>L$6PAs51-{ceLN$z;H9O3-j2w~i`W&D;I!{r*7=O*;2)Bi^L{*A5aB#c6=LYY)n z;;V;lOc(;aLYSD640^yH6D7m)ID~1QPgI$xALbX2$x%(C7<((mPC3#6>CJ@avH%Rt zcpRSaT&)1+8Saw^g2g02AjywUS$~lDnnA;by>-#XtkwZ5^ns>z-$3zq22FndO}}Zu z0~OB-oSiH8+OibtGYR_($|*fiYq?wLdbH5x!oie!`sX4`Eg;-XKS|=l8%r znNh3u5bg#&nkfJ@uLuSTF7!%R{^_q@`_L}Y{+UvTTxSs7_=x(Hc zN4fr8Lpc{j`;>D*$~UQ4P?>m0M?$Gs&68J#?TT2tw0}c0^4d8W4yi7278L*+Y?NwP zjb8SE`|EgxQ4Y_A?NpNEs(XEGxI2IOcq-o8H;_tJ`n(8f!6(`h8bd zsc_1H%Jgvu5sk|oH^^h%xcA*K?iG!S^k&+)5iKf4&IF31;!N=B%(%PA(Z~lL>EOR| zhJ7kFTvltvxX+zS?I`6AMU2|rT8$#Ws9bRIBK>@0XNfjwtQpyxBYY1+v4g&#%YTHY zpzpoyD7VXK0 zA=>M{MbV!8+@d}AbK|)-_OJ7njs5F#H7S_)Yd9J z!D9OGp6M%B{7rJ-_|9Zg-Ssbm3`DF0ef^NfWrtNYC)j8*0yw2d8RKA41Wz-Aju9>_ z^)Mv3da6s2R-2D%ZbpOTW^U~$kpW=Eg_Y(P`Ah%~@)QkXC8&3GCz~AT>y4+5FRvUs zz8vp;xzBcT@yqwbheuHD`S^1BnZ=V+V~L9w6O>Ox=M~gpe9h9VIt5Sy;pOydCT3)% znoSqTN-@J0(n%MpTTYydNsT~eQ9KjXsj;^Rly$2^3o?Z}MbQEb7q~vC?lOyRx;;J{ z?@Yv&)S(02smZ?XvGJZA+bJt6v5lqJz-_kZ-uU<-oK&!@zk9w7bw_(QC8Av;$*KPS zsZG7{#VE};W)D6l57y308G`WjiA-Y3^wvZHTA6{C$h?43quph{%dpTzvi|&yc+Nm(YXllr#Mij8|A!Z?yo^G zVG=j%o_uZ49XSC$qEmvBT z$>BREwkF4~f1DlgcNG?P`O{CJV^M>*SZPGBe#)c<3WXH`{Rj(8rkoco?h)sB%XO!7 zR8_eB9zU=oGve7Hx zZ}ULExbx{^7>T+^!zZC^0*+t1N!=gflBimPnrB)Y4OB%ngs?yL@<3WMR17RDWl~L5 zX`n1nkk6}UY%CXtlTWlGo%jJL8#A1!TGMEU-9J@RQMaLHQ-yyjS>0mm+OnZ^6X*Fq zm$xdLKvT%L@^EJjJjsUp$RQ4iMcMb-u_%-SS15|XA_Fc{2{~H~mIA>1#3?FztyhIj z6gj6_LhDPzI*X=~p>|Wc1r=h2+@aX&yP%HFPF=|(d5OTcq#OqYNK2%US3V{c!hIgvp~QvR44c)rwbe#BwmjOXH0Br^2nL78g%^ndC}* zbTrQPVyeQO=^rfJDX?{Xe{en@;Cx=^!yECgnt$#FEZ%u7p0Uv{q{p;2>L}~4KM%P; zx=2W5nZw^lI?oTFODgQj54bLw(OZ6YLtBzPueB}R_qDb?0qoeuwi{z@`aErnwVjtC z+4$b47^v`Xtq3g%R*QhB6B0ce^rUKY8I_|-LZ}_ovHxamN$>Dv9ZeNp971QL18MYv z1Dej1kw96^1Gw584-*sW6EEc*4hik)eOg6tO^YHB`yI>ar~6V~O@(5`z^`Y^duN`p z4Jf-NY2!1B{jaNoul|g=ZTU0SR5K|QsBWrhsw}4ylcXwEm3c<4Uu6Qhl>4R!aMzbe zWSX+YpRy$^w5><8Psz0|0P*fv{+;+PucmS_$B_D{I>di)|I5a8*Y%){>wXfUII;z* zu=u@vKfRUjC%rw#adUm`BXnKh?a-d*Jn;6A89DwS{~9oiy#1%wwci9k6#P5b3*3K{ z@lVa;I_iz#y6_+A{`XkMpT%vsO#4<`hb@ctu;F+d=UsgKLVqONMCgOMZ6azsk)IeI zHMHlp3HU4GN9^Og_ESKu1>ffpN$@l9H>xX4I5xb`M?qjG&Zj_GJ8rQ$kb6&zD)ol= zX!;el_uPT2b0Y)n>ACB_Tspz`59b^3u@i>#Rdh5IO3c;K=xD2Que-`qMT$As(I7xK z=xCWD2pd(j>Hhek!j$#+j^*Rf(fWTj03D47_eZzzP(L)ZO2qatK8EPgbb!^pY zo)-x{9TkwFNUS@~@-gaCbj!!|b#_*<{5E6yI{z~0@GSDQzsK{mg(s0{ zIeSfL;dJeWS^)go1@=7uF1J8A9sLOPLr(JgAp+S#-@PjDV;@pRKt0^@1R)_9Fy<6bctv&{Sdyp>$QCsK(_QlN0#o$e773k zeJj3e((8G{Z^DC(AV;nk!!3>vP1$nx?DYzV*`nxg_;8OM9H9JLR{nol^4t zug|@5i@E=Y8>U`^`3<$K>ca}g)AIFlG6e7c@OUsXHxKy z*JI?=EosM4j1dvVZEjh;L&?GDlg~rH+q0BSj@PfX-`Sh$SO`24p6PX6ukRUc-> zUM1c5|FEtLO8@)n$a3S4P8sst!wXDDAxl5mQBady4YoS!<@*Mm`6Y>vzsB8(G05rN z^1iicWdweO|3B)Oq`%QMG}J{esuqNoyl*fP8KhU#S5Z-0TT$VoxscO+n2S&HJ#3ab z_*#TWCfra$=T@=-8{0>l`zObCpG^N8KWJZS{NaW@4zCIJI69ZH$>BlK_IPooWg}Vn!w^qrB}hyOFX6F`G&rnTv{ul*NkF!w&>7!dBL5_g6M zV->!dO0UoNt5|b$j9!s)x3{$1<1WWq99%0}Ygzk1b}cZ;H`iy3L>LDbS65$t_+c?8 zr`MuuL$I)mr7lhpVLS0ZUS|@X4j|*8{?l^goHS94(~U~FLP*P-4P!*Km__2UoDu7}8m zWPhaH7vI8oDc%=U?#1=b;JS%neEhobp#mEV{~)!41qdtz{T<|gU&P;G`kVbDzK}gv zQbG0Qpz61AX@gJdd6GAFCSwhBrX(ud5eXWwAe6Yo6rTdLNCBhMB-7tN$Xti=i;V^+ z@K-_ha(W;8-OgQZHv$ASh85h1=FUWOhrf9|f&U%X$4GOC&oOtn4aYOVA4BJ%iSq&t zupE)ymT{rCz$-)UK=Q@3O0yLeR70hrx&o;Rxksc~Ew6q=8j?m_Hyo2zb5%R$kz6Xv z$JZT{mY$Lc^CPSiU+gncKXFIY~>Dj);A!8mKNkZNMFTTmH1=ge8!ZFJ@=sm%0BvQMTDqVDEF z_DKq|r$2|+C+6n(7_>FQm^l4X#EAWh#>D=Ee-6wb-)AO?bT?5?md=;6OE?1^M_LgQ zkBAG)2(>&jNQyX^SOZ!1%GoN3ICh#C#hxaf60xCjB);oe~t_%j-55pNe~!k7yhQR zugj#cT8~&FD9kKNM~n&vT+id+4TNXM=Vc{8vpY*1Rtw_bQDCRE04V&t zNKtPKbzawb9wV-fhfBKxXAc}W8;F)Y@;~Z3=={8n`lM0uk49PP^6Asd=^sZ&{E8`g zY@&x%@-y^)&@*vN-y_OX;B!1mnb|ACXO(*$>jKK1r!#uEjH1ZKz0aURZ%%F*t;~Hm zy-I=FU^WZfW;@Rplb4KEP*W>a5&`$fHZvH)gyv9|pwYBb-eQB+9>@7n^98l4tdxX~ zh;tB{JkMtE7(Ez_;;_?JfY5>2q`5CWkq{vr0I^>m?05;{a$xSjia6IH=MbNvA<~_% z->IGCvwEFQdJqTsjKFU>g2x8`om%@PVcWn-+S%~b6(?3*m8>@FeR<3#+wKEo20<_s zC_*TanJ!S_2&w>q0KLg#MEFyyK!gXRnh|!e!w!zDEI~hs8~QO`_^mr4$iRPnK>r_% zWdSJwzLpkQYH4q2Z)*)V){CGi6?iALu~}};Cw4DXgPT|H&4f)k8VfeOf+c3N(ZxH4 z`a1?!Q?1(%B39bf)Y=k@wVpoL+27w8ZSP4P`6SlZyfD>2Z7>)HTSg~m5|yCs75@88f34|p-P7`T-bQlz! z3n4`1ZyLpR>simnHLk=d%Ol=LmEx%i2Bp?;-+lf1 zr6tq@&M&Vkt>gKbX2LvV*OiJ6LS-W<%7KQ$?hI*3vcNr@ZQt2zs@>7e-kSc-(px9a zEcXnT`v+rVqqdVPODNM*G1NFWHGJ;=g^TBtTlNm_Y?$g_QpYhS&cozp@US^`v*1{- znbS}TAy^g)x8Gz#+kWc}{Tep&t8Qd08s%?|^RqLnq*B#Y42^h#F4K9Yu*DozGA(F` z+*Se#+cn6~mE=aMI8oKiemK@*tG)NY^78HXr~ia~{7+JIZ+%m1NBO53CyENZ_F(1m z#P9>V@0?5he)5jinfgF}e=sC;W6nQ-T{clJ2Skz3vtEQQOqB_64m)TAXP0DE;hWHa zK)#d|7ZzY|!+)vKKvvwF6g_>Cm%$LY7wxp*@BEAo3r2ygpQ)q=t30&$-12euzS9(I zOUH*)oDnfZ^Tcfs9#5k4GPQUTxDQ1T;YEeEk7BhbGz5?+ccWr8eFV44p2_w2#ExsM zGFWp7XL9w-rB5T*1w3?JeiH6OdJ*Z4{LB)FZ@7o1F*)@D4I_Mq_7w{9HmHmX3 zP)Pl0p>=2q*9UDl#!PBqEhel4Kaoh3p5R9l(IFuqYVD+8t^B>GZDuzGIv0*x%qUHSXJt zgJv7qU&E~UT0_$|>^I6GLcSC#jaSpjECpIsG(bKu>~;%e_8(4$77>zEf%<++qUi|J!Bzo`ynr-mX z;9}>TVi@ka1mTn%>%T;YJ>v(T8(8A-IRxRgf*nVOro1RrBUrw`dTY#yVuPGL6|zFw z6gqp-DTCcUGWQ4U+u!t+Kgtiq(vHLe?TVN;?Md#u*3MN5BLW_hkP{8BD$w%qrc8n= zwObR)Sz3axQxYm!GiAI5Q5Fqfs`B`%9XPKEngT3IEELMTy5RLRo7|%EB%d0;OS3(~ zOj_&P6{(HagP_=0cd~z1XC&2c=^h=5nyy}jrt?VW_8#-1u`l@E-U;^Ij-7pv4D9W^ z`s<0__jZlY-V;2P#t(^uy(cgObS4$fnB-e4JVT2qEtB5Zz%AcqZu#QKXt*iJRY8_7 z#w!4{G)~>{HId!B`}S?|f!Trhw%d1Ky?S&n+nxTv>)IByx)5idJf(9=dib_ zW*+FKkJFOpLz`U+O_(oZ7*%Z|Cu?)N$QA@K-VfWVFU2s2#(e@UcmN+N`ShT5DBks#^4m9W{*_~HX)gV>om7|MBE}mgd=&YXIX;SFgG9HehXj44nykOy zgpRJxqN8g_ZxLyX1oxzXJfZik=5=0O0gA4qqk;t>nja(6xpFE~`uMxw9q#L+vj?Hi z0xEas5~Up6G51#bg#!rr-sQP_@Uxp}cjH-BG4Na;FaJBI#)OW&N3Oost_2;*YrlpL zBlf6IIwG`~8f*SE=*wGoSGG}clP2q+i6 zYHukvwA&Hz0eEdL51VNvV@@BPHiB({4ejtNFo*-3Ba$&}EUxroCsy@u+PQPnrPmv9 zWE$JsUsqpW*KbVr#O2cTH|EFAjm^vNNJkDY0)c<7t_h<8ESx`&6WPB&go7Vr9KgA+ z5~l%;nazfMRud9Y%SoD{FoP)bfhx3MGiI?DIIGEy%Mr^ADw=#}vVU^>_Q^}{{6T-P zu`$>WZu1T3U*Fg^er|jl+n;{lR5)-h*vRRKCYZ44Zju!^?wPR9Fp=OO6T{Ia7aLR? z4qCcvp@t)=j1Psg5S_qr_%5gWV;SO35v^y5`Z?Cj$(+*zq@>)&v47AkayUN*`@TE@%|e>64nIV;CKXw z!;FPCMv+<0|05aufz*#vA2@#=A%k=BTdoJs3tASko#F+E0bvc{o2M8MLJuxNR^y7W zAi>W7grrp@bU#%R1~Ez!otcKVb}XUUOqGP;F>q;dw-7N5BB#CV(exMYI(!%XPbSM< zs4(=cGs{b7=OzZ?2w2b_S{Hl5oN)etaTs&+LcH8xQqKJ);=ms>Vk2}<$3^y$^i$~f z`Z@H6QI`SvGl=gO;5k5xw0$IHD@ah^Rp8dBwt=VN#7Ol)$OVI$gO?t22RtLxD%vD) zb^Ba6aDw(oS+k=Kvh>VYGX1)~Uw_faYA$`d>aH<%<@(8QU%K>dc_4jx27FBC$2^t* zevIcaVNi1zk4x%OBRG2v(H4qnpr9|MrWj~6-Wi+KtQd{uMocUkx-b}$z>Z?O83k~h za0~I(BtcBl7yl`y``@tlNXvBF;l1bIyyrCDoMNwMi|Nm?LH@d&zMt(#e}rBbLnnBv z8@!e0p9F&nHT8fNQ%tDEL4Dzql)KdN*D%*#n8Y{B#Cp_nkpR5;Vv#J%(t3h zsZ;(5=dduLBXpdRSa2>X^t72=&l@lB%=}}w4X~8FH9;vS|C_ou4{WQr`iAdZ?XtYc zk}NOsBFmDzJ6`48@)9{-V#`jP#LD8>&gKvTSqNbd&;$yhP@vGVH4o6fl=p3+PXldv z3he_eP}%}bSxTTSZ7JP>E>Je#e7`euuPiwU(D(bEKRze2uBEwmX3m^BbM~`pbxVJw zxot4kvZ*IL9isfs9XqX!Q=P5LDBL94*VNd(tQB1Ql8NT_waD+hwZC%%C=KSL+O{A! zm4v++CVu|Xxtl90qY6BMP-V}u8#r=uI}1@*Jx5RTM!=7YJ*5SGb@9@n*FgKnB=ilhLxim z*(>t_`ATKqp^FIb7Tf=@uNLg3_&&)NhjFX6I2<~tr%P)sb~$A~L1kD%M3gT84hjJB zVc0jY+hTtp(geX2A^=x7q^$|i1a=x9(^mbQ0N zUD@vrzBqGvD#}}@rRguu>c^T&UX!9Kgwg-^phSNTc}YV!u<)i~T${boelkVxN4~{JvMvn%i-C{ik$^ ze8`F3%F*4_6b}Ec4-14ul>ZnczDD1SXawsF_yk@C37o(T++ZUpz6WU zsbf!h_?Yo*m3-2p4G8npNND1CQLIuMuf0>AICpU0N(^?de3-xRNO~sVKy{7MNv;JS zESpwx=@vW~ZC+_3S_w!bL^gBQI1UTy!zJsKma+Yj{bOAmB3dVVj}y;_ag%;B4U3+5 zzM_9p8ZSOy-7Y(wOR4emm13xcB?H7De!^aH`1QG-*-&Vk?p=4x2R2AT&94w zg;+pTA3K17kpId7zy%3(WHOH$r=ftsiHGbEboLdQMo?45XLl55ASFOWNVxNM@G4Z= z;TD&FiUT9Dp4PTrk{?=oVtZ$VOz|Yi4WAxAONb8?5DJ-sV9*X4*@`hy4B;N3M)s0U z79~ozqHi6d*L1qv<)V-zv{MqDzf==hYeV0np@E{y_$i&IHdfDS)Q_a72@!HgVc4qn z3UL!wArxUII90Hksv9HZP_pwZB&=cA4XxR*V#S6vLnG_fjg(bam*HjIG;ybLAAtPC zRjX!aS1F&G*fiMM$S!PbZEaLO)d+tQ3EmWZ-xH2Q2MW@QNLPeL0pfZ98sfY-WRPW* zA2MLQknJzso#7TNSkO$TwL|1&2PL4RkLvR9I!4Vm^$a)7biW$gd-ZvT4uzKXv9NRd zAov3u+fB+->=4uUx3w;#vry!FCi}=z;Fc_{0?cK=oa|)4{#0H87y1u22o%Ivc!@)B zJH%@P+6yK!>_M2vj2hS)V8wy9EuRr7M! z>)zS<^A1_$g!=gY5PS3~#@ zAU_`6FH3o#v7`e|2X36qmwT3z7A1i%PpH`Biu2_%jA#jbxhYM~D^JZqd@DP1D5_lA z@XjML%Wxll#a6p!*?UU)D~C~C@yf6Euc-x22wN%P1OXgwq!<+Gp+15y_k1j0j?7QU z;1wdi9F;ra_+d)FV9%<}jf3^uCiYw~IoCAUw4HgF^{@C*-cx@40e;YT1pXYU+!l&> z@K45%dl&feV$yhc3p{x_f*+>?IkU@AXOb{q%glYGQMQA!kjQCI)=vRl%~Fk@6B>S#f^%^1-Dlk_?efo7aK? zjiq%3FP!YoHM!G~Kt-}K_Q%4CZH=Ar`K|x?ow+aW zkORN{t@5t&o4@@HPsus)o;oM+^xj0C9@`K7o{Fc(H~$t-4@9`Ot~_H&aDFi$eMJ4_9&a^!Zb;Ez$D=V z4D%I%*ry|2a@oEeXP&o8XFX?pr$q-?|AVE@AD_7P*@*HB=IH$1%@YZ0319ed$!VdP z#9a|Id3G0{YhCOwvDjY-kn_g@M!x4zYa+pR$JY{TmLzjK<}hB43b1wlf}gA19#P+%DONM65M7WNy^j{=$7ZA_=& z^kI&HnI_h`zM)}#=Zf~FORvPM9ljt? zTZF?#$Xg5cn{_G;Uc~PcaFV#(#1%FmuoLJ+|6J@(%I?^&IKLkt>nBJohdE>f)D9sU zu!!IHz}R^ze!mg?zOcave*cymCN{+ytFDWEH#Yp={~fGmS@Xw%f9=?7j#toJ5Db=k?57+^=YihygmrVzt8LMi|iZg1+O3PL<#&HXI&1)O=sO=U0NI& zKSq}ZUjHOr+LsQ$zGwXzJJ#*l(+~%@I6;_*S8 zl6ZWozDp8DyaKN!&f{wxYb-ujW&f$rw2N5FHmGIq=kmXmkT@%w?gP8tgjE zdk()!F>foZ^U3@@29U(xJM5_tEF^TR^7mS|ami*bb~{b?_SFX$q7IgMC*RI@r_6)+%0T1H!mtc$^$?JPQlGg{|R9>IY;s1u$hn<>; zGbje|foe-N=f6$bmm|{{Qunb&;m(*Q=ZOFIs1q zIQjWV{zj+g^Rc5;K0h5tH!>?_rDs9)lWMmIIG;}`&L{y4`MW?j2bw^YHoC59jqF(W zhuGfBwteO^wQX%Lq)m22*UcY)_E}c&?b^zUI4{R-sNm%^8!B)DHZP3pIJo@YFw)0E z$QXumG^!VwNwaB&@ym?pC4&J1lzLWMP&>q8DX@^1qeSwRkk*xQwUXjhjcgYZAIT!{ zhXx>FL4t;um~0Aof8XD^l;>$a+@cWA14wlOEw*FFXrAh_g=DAz{h+ue} zFPxX=JdK5qe~)~C)27wH7jqn^KPE#E@IlKE#ButxHZUACB(26Pjm2$Xl+TmZ0e=@f zItZ_uy9uvh2LlpsURm4R*I5uP>*#B#o!E@A^E`n3Okd5<7>d(CPH_09{*%vTKLkCR zbw)POymyjVm;E zi`(ImS~CKZc1>oq(o?iX3t>gWeG5jkQ(MtET0k*N6zgEm zJ6h+8s|Px0NQbU|uA`)^tfWH@Jo)646Oq!$1al~V9jYuTrI7%{_(i$7JS2yr77M&o zz)3-1*1<|Zr6oabQU02=Rarhj32U(#tv7fYC!0-oXk7FyXi`{b%GYxmG zn2B{YHFw7n_sCPMQrkF$N1V^+dj)|m*z0@b%^bfL=Recrf_1Q|kvwurn;Kw9jLxZS zYRO+shC#9x={*x|YIlLxy$d$AfKthxn?FuAHNfpMz86}6jQye#w3~p*a1_MV>w*i7 z$FDB_Vlr&Qlae&=SWmKYt(+h;*VNaAolEqUDqk!5;&Il=eZ@K6#eK!UIDKDD6C}FN z{g;s4p-ZB90UuI{XM&^!*C=d63bc~RVT!Q8Xv{Mb5#{uqh^S^vRV{-!gf82(iEMR8 zj<86S^^N~Msyu`t6OZb}dY$Ikp3^>?*O1{>M^NOO@NDQC?z`{L<9{5#d0fO4OJm@7 zsa{tG@k5lAl*@=l9p!}6QL@fi5)g8iBT`1g;tVMRgC}8;d>=U5EBs$@NWt_r#vNa7 z9*(vp_`JOE%3;;t1@qB(?2qmf62nLI$put586Zimur4-pWb3!D9FEo=ndM^Y`_H~| z`0cmR*Cggg`qXp@UUm5UBWISZx>i|wa0ciEJ8}}mG-{$Pe}aDRN!AQS{$VPmfoHDe zeGtEV>OPWYa#9~ejzk}gKG#|pqS416NAhnt8ei= zrG5|JLF65!Ja1$^mB@ULxPWaq;z@O`t)5eIV&$?0_Jtau`*$FXHQ94<2{iFFUUb#FQZMMZm z6k1vKIn9t#6HPLuV13co0Qw^N>U4c2ZocHc771{oFHMN6ipIq_T4qcOeL?ff>mUgk z5r4q{7&%?_dNTfL;y>Y!Y7=sBJti=d90~CDZEYsN(7$b5sr-?-moz8`0V&3Ppsbk3 zNzWGIqA+JBK3klSP>+abKXSvWSuTFcf$vT(CjnIX6CQ^j9%J!Ia!VG%`H|e!D7U1l zLOw-qNllUbQMo0{X7;dXPfJTrY|qTho;@=yJ@52bcTNBF{5E*5BFo#f^5FC?c(Pt{ z3A|Xf7?364n~KQO3seoKH26vQZ@>qQXtWpLD&+wO`#C;eV zw1dRZP>T0>`b!dj!0U*lbO?jpw{NC+E&+Xidpu)2yJ^uN3Xo(oUNB_J*Q!+ zYo?*2Kj>XLrX2Nj_xE@6J#7Ra$H^~>{e{kO5$%V)&vmfG3(7e4G(H}mbAJWi{;x^x zx!#nwhp{}Ny|C5O^WR8nFLa0We4OS9?YS+S`)R?+JYhV-2a|YN_-bnHaZ(6BUWzq7 zO?*WmPAT{d^HAfY)lZ185NrQ&@fAo^g=AGP|Gl%Vt@FIL&cAnAcg?T?%3q~?b9y(s zXK%Q-H>}k6g%2L2=s<03OHMyF?k6Xk#qM8(YkFVo=5}d&(uz&J(%uj%`EDb~cvB_6KUM`mE!Zn3y zDG=O1@ImD%s8fgePI80>1E-?|Il0+L+-i|v+AwTq7Gml5w+apWHS7hZ_>sB>XkCo0ndG*y#oKZGb*|4ha`%C)z zmV}x%Zp;Z`K5(&3%H3;~F%x`Vh|d#q_foz=`h0Qwc<#7G?X{e{qCN0fYDn4=oybwERE|rP{n?{A$wZytbQc-b<*Pppih#eu1NPWJz z20PLogIQmPJ^kA|N2Xv|?QJ3F`Kr4=73!94o$Kq@ylgmoEg71Zb+kuDe%;eL4-t^& zU3UTz8aUGflAq5bn{@X0y!S)}cyp?`0J|La*QN4$(H`&!=$?zWcf{LMyl+dq{rL&) zx9UEOw{Ko(FYlv#2jcm)OA^`#656*UwCDK|)b_QfY2TXAzCw3r{P}gKY2UWc9^*d} zZ(pyqC-~?dMBFpa=B&*F@JN6Y$vk{qK>;VgORGiC^}4zbaeo8d0X;R~%;8J$IzQfD zrPd#Z?*hCU<}(L+{wCkQRVsYN=RyZW z@C9K&`}0-Z&>ZLh`Auu}(KPxnfpIM8l7fuuk~p0ZI;A!EUgEhj#ksBBC)S;EWr}lK zTX%8J)4GfH8eI|RJdI1V*Vdid3%VlOYjlO$i*@AfPhk8zm=VLw8 z=bx{BF4_}cC)(SS+G8K8?azs~ufX`rwf1p(O7r%}2jcBD{D=V$sYaw)S0UbBd>+8( zB1UJS{X3{-M)=f1aH!SrNyO+7K8f}kKH+oZs-{?ne%@X?|LOBJ9G8EMe{p+_ zzgXN}<1a*ef~R7cGYtQWWfb-L`1|ZIKcgkT4HDZ$C$48N>pF3t zNh%J1Yz|op8m502#qN#m)cv0iSJI36KgPboF64S485 zfG7`xK3_Sp5n-jDg-q8dyxK^S$w38S5^8rqbP@a}!^pFR_F_ElP$vcwAOjq{m(tlQ z3Bx&ZfwP>Cra7NRLk~`vqazH>urTvuitY>&8T4w@yqa8p%ET29vH91jZp zd}TJL*_q$$bhPBBmxJlXgrqsl@2?zYh2+UXia|Cd^7rDY8KitJ%qYxu^8p)A0YKkk zfc`aM2Ky4O7XvpL)WpZkvHNg7zM2t~zjNXmdDKoYpOZ(WOv*PVj{@dY=8|9VeKB`p zqim2qn-P$|a}Dx*$=|tTVNN(_G2}wY9d?R2k+y~4S`4{26CihY!u293 zUT_jj$wqrU_=-;G(V@G8#z#huH`P%Z&{Y#mLY8AxdvrnDZb1agg0&6xg6_L7cHezF z<$clDUysgTMRQwtwu9%gqEbz~+|nVqPpY-e5&B5I;0@X*(j4+$66*_#ic92K8@KI| zvJx>f_u&V9qSyC91fp-f6;*y2eV_V0D!t9_M(tCzZV5h`B*dNua2Mrl^(W+sWR(ql zeGQGhy>Ij1jSW1$_Bi}gFP1(JdXtGc!G@1>!6V%ZSw0V(D)g<~3mH)udXtRYYOuQ^ z(+OoUD=GGr<(DO8F+(;)B#cZD;k`+J)hGSM{*>kMWV!S5lrz>Eoyl?_&4n+Mn2DpI~bVrAr zjSh+ru4a&ap$W;t_aR|BhaOoq`N4Z7$U{r<4Vkp^86vO|TDS1mMWHZb-Jwu73qQmj z>{SN45PM&cn_F1;PF)*os|{4kx*C67Yik{@^fiU)!x89<;BYp=oG6SBiSAup* zhW+$xS-JwB!y3YUhLKyxMR8=LT@m5Q%_4IFDOivjpF*ff0obF5@315ldXQenhdZ;p z!Avu97cE`8G%y|X9G{V3UejdNIS^W)Rtl)9~o3-Fkrh-f=$iC6uGf{M@QDhYRg_JtBtK2 zIXb<9oJ3Yk)7pSs@t6voBzTZ!WTn%p@@Q;RJ$9Rcy*Htl2)zmJO!^6Uphx+c0SzF1 z0$+Vpa6-l)q$-s30QG8kPZ{6=4U5R)V*?x!_jVzVm!G_S>#eum1imP$d_Ah%5XG}^ z!n3dD&qnPaj1V!Qh(16Z0D|DQ;(MGHgoRjDoE0!6A?YzyWihBH1f3G>>bGvfbKl+> zWoJg&DA+xW?bGZ$_KdEV(`{Htp>Si6eJK@_#Rt7C<(1@r(Bi04WLLrst1r}{?1i^$EqC|Q9b=VkyK}fD|7E>k+(!9~h z0aJDUVl@Mkk-GBIB}+=LX1Ome8(g)9ofqvZt*r3}s(;ZnGt$#D&f$FsV>yPoX23%M znol#L3;1MV`_OOalchLSQ3wd*$h0%6812dQP@W;m9c)s^(a^=}P4z_lLHj8NLU<^k z!dKPMx{`~RU#icm4UeoHDsN~gFKcXI=S}q1wLJO*|43KwM7TB>tfiNL&y9fp(-@Ok z8h?N|4>}0#I0&sD4yb4dHw|R%7h03Eck#bkQz&i?{siBR7>uNZ8j#4I2|zNXFCd<1>_4| zQesNUMt(*g9IX>LF(fcb81wHh)>{MlU4yF!2G?X|ooNo#FDXMx4|eenGF+pbeJfY? zdE0$oeLlX_Ogh49agq&y|05a#mAg!QET|=%BB;_Fr%ZA(WlG88drWg5WBN^-qHtKK zor}!jznJUI>=^sL{GV7&6X%wZqe&%wP~We{gL(B)SvQLHODZOkBE(Pl>AG%aRm#s; zm3)44^F7T(7jV9P`ouo=3=2bUdrp$(=jrU1zcoJ}Kl^VwaRGakwShOdQ2U-Get!eL z{~_HkopZ|Xug3GA=JzB1Sv)`K{%djn!}PuU{3*Y`hL4ZFf8mthAHw&?`28fWv%BkdZYZ1DiR5DK3~ZhL&u?>-gyC zqw3`|cntDv1D*lEGY3>W7RIK>F+$~QEGDzbVm<&OV}moE1gpL=6_LvpqX}FK(@lfC z1EOZLby~7oyR0L*xgdnKxwTal1XzM99+{I>oEfmELAXZxW}$2$1D{X$vXaWB-bF;j zEA$w2KJ$9-$gUr%V{X68(_Gu!Jt^;;o}BX+ST0a(?4Qc9jI6vixQI@&-P4mh>e*)^ zMVS@Zkf>@Wrbd<(H|Cim*GD3@jH+yZU03bI+?r)=5Fu!;{wqv5xtdN*Vobl^);QR>){uZ39iP2 z^R!x;2#=>A@w=TN-!C?*ZkQw%`JfFBTnPHcfsdRsDO*vEm`!or%5scbRDf$CjT?!d zeqUiep60O^(4g(9sDkN++ZErU5DoaT$}O-)6V7>`>*S!lZ>(C?9%=6zZf$7mn;347 zwC-!|?P)#t!mfdVt_vyJ_?m03xiMqIvbOQGjE()#ZE2syhc%szjh*vP_O`ae5)YUU z0>9EYetD(AaDN`c>2ZZ0_zXI5mho zJ5(--+uhY#mRT;oCrx(F-C-vN?NGlVe;%vcdcg%-=gupiSyf$9QoU-X{Jh_Jii)h~ zZe~rJ&pmhZis|(E1L@N%HlI5xN3;8@m8Yuvu?`qD_ZdoobmEX8g<(Tj2s;SxB|Ut* zw<3>*PG?+=H@NUxA*2~~5DEm_nTq@*YF3mKBai&z>QZudqcqJFAT@N|o!4D==a%+% zR@Y8xWgcKdkh8ZcUnr$$cDN#NxWVdy_?Fjzv!%pu7UktSC?OpDVM!uXAq6@w^GX%d z*r&WWP|%;9WwTPPJMvE8`WRC%B=TvKlSMkICP{DLPLp-WI0N#H9m&R)$07xr)+`%X zJsKG+D=Dr^>9bVz>~CBh@%q81c`Szu*G>~OsihaP2S!6-;6WI>KKeG8qF#S0CPorFqJqZ!Fmo$*GK z;li>~()KK=E^RDpObez3>G;reJ1ICcSo}yNa5K!QKz36~bDCDQ97Kv+J0oq6s>K1K zzE>Iwm6kO%&3`y`jxob-l#Tkx)NTV}2W5kfeJ;)AN=wZGKDXAqUen5dDbE3K+FX5u z`T4^`Ip944>~VMBfX6d5GqbWX-_If)pPu71(LIXO$%3A*JKUM)c4Q)h zH*g7VwdB?ac?uGi0p}&jajQYz=vQ?b=}?{;+U|bnSh{>5ooGm@JmMDg!;N>=RNW7S4Dg=Ay%lgL zon?+xBn7AzGb%y2^hSdjX?Z{bB{;K-(-rw+^+p+*OEBSj5Elx$wt@%Hlhr3sQtU;7 zK`z@(mVIm&nW-%y(8Tbt!*$MU*~1;R8-C@E^mWKz6 zbD$?dhJI`@2oMk=bO(?L%>vcxryv314z`-!q1?b9&~BKCOAVL<1^LA0z=ulsoYO=c zU>PaxDQEy(sG#+Pkc^KIN}7f|pky8hQb6gRO^{=*h!#_7eUrgE5;DlfG+jZxSBEHI zBiqfI>go`dzimreMH>EZQ9l0*Pp89KZ`r!dQs;DZdVYa*ktNVpo_ERuP_~C#pu6YU z^hlz@NVl2{*Z~lL=p7;ukPIRa&R5BrYNcIZL8&KurkUX1$TKW6uglMTEW)alSJ=bK zF;=e}VN1G|XDj7HrIqvNmvYKZI3eP*Jizr_$tMkm2MY3JgHbK$3~duw*8>0*Pm}=! zqGOVjMVb#9jv?-YR$P?t;b&qRcz6^VHmja!pen>#5vaWO0$lMT+&Y)Hk?WROW&fG& z?PvB6oYAg)$~F*cn{n1<^sW6K%eF0R4h>kl_bq>Ye8cflndOQE;aQIask!>zs~7)XX44?@p+h z;YX?|pCk1C`^f8Z6u*a+Nca4F_lHO8*p2L_x@u)c*->51KF@AZwqOk8KTQ65#KR%i z8nk=-ID~SKfoIjUO(5L>^)v+7F0N+;^9DvVXhbnF=F)NNTq3K<^JL5NKN_l*wsrK! zbo*yFpWCwZ2MW?2uTVY=O_sO!4|LA%-80>|XW7%^7z2Difj_T-TJ?s*S*{EnXc7)( zEFZ)2k=7903@N23bO>BBbcY+Eu4*wr>>vi8%F#kO1tE$mKT?3aCRb1#y~_lKxDki=YrCfDlRCJ-Ju<%Xzf5PXt>gIuF*d7I2R-== zFuOb)B<7Zn44#a@9Hiil3-+L?x=}m4arMUB3P0t%01r+*!*DsW?Uk43?y%0ei4aZ+sfgu847H>qx}T&d z#Vw$MPP@YZeDa5yLf%GiHLGF3CT6`OH&q(E52iWwQ8_Dvb#MRmZ_c>W z=CR1z=WjCSrSWH?9#Wlr5615%?k5vzjR1I|+9o{>fgaJYq*F;y)=}TcdTa?ck3@hLPbG2+zu5V#GQi?N_ z*H;j(GN}g7Ct8yx1yKFTf<-bgc!J?HSxx;f_(P;gHoFc;=LmW2Cd%)?f;g0X!=vod z6$XRyxfZt5TH-|ZMCF1NEH|S#MY$0lAze51fmm<$SM;$khrxtC(1eYOIfQV~x>*P| zx<=&A@(#0fXNi>teFmnWTrw(~Xg)V$1}t}la)AaTNiO5hM{Wak4uf<%?a=w>hw8~%$WqPBDTth_iA!7L?ilsB@xgnV+gk$$Mf_W9w z?vfb_y@9k!yKv&r2BU+=u#p0tWJ5GBTqL$2wUG{;s)?8eiR(pfoLv6DA~C zA%cj%<}TZC`Q=lWUwY~EmCUNVedWeW|9tqf5s15oqr5z3(m1CdOiu%#wQ+jEU*ljp zTet@7f-(-Ics1U1(nio7RLRN<7g8JjL9W9mZ-T`wP+}69t?4JjY%Bn|Mkz~BJQUbO z@gKL#Uq1wbwk zs*SLBaVX}WnvkjAi?~JPvqS`&1Cm@`9DrUjp~j)dq>HxQcH7pARM36nfy0UGn+y#qCXHza2q(9w-GSYf(Bh+t%eqN7x=c8}blj05NXiWZIECu-tNcK!8oAgbJa`If7$-ux-HU7hnzobksYt3&%n1`J{x z@ob45;HFhtL?TfjP04e@-AF|r@RrnP@(Gb`9^48saTHF~xS)h9fT(iskt5TatyzX2 z4Xs~4R8X*dFF4xeKQcSbTXsJAJA>LiAapXP4%wdpMw z!;gl+V4pKwP(XwGk-?R+dHTrC1J+D^^R`ImTvv2#X(TE;Q!jcl0Z07OC1INr#10A# zh&iOuNFmD3l|Bcp7Kji=12!&%N!f%1dr(Y?^2^2N0{2-)Rk|4DDrTkdK zNI5a);>5NDCj{uz45QFiLEa!viL;icZUhoYQN@`mb`pzEs&+Siv9ayH|HIsNwo8e2 zb+P-EYklCFf>)5v8hIn%ft)wP*CIuNhX!TyqZKhrgHVit4DUk{2+5dYOre$0$5#er zWg0_vcIMlUz5dwS+7jtL{c!gi9|G`6bKdcwjaEsU^Z)k?#ACwM1@hC{go6CQgnVGy zu3XFR@9I*bY}fX=Km6Xur+tO;lJXLtdk^N`ftjTcCQ>RxkbgK14RCC9WpIwRo(LYY ze1hb$GwU$hy0;(Gb$oa(=BoSPLj#Z#gbgx*4>AF*u>;s?ab!TNBZ>!Fv3(((5lKCp z(nSkGj}T*K+9ny19db1?NRT1IsK;9S1;OVHxh!g zcF5}v5*$o7^R+Lh$#37Tys-T%>>hw)O_x9d4v8zSc#&{n0Z%ieiylZNR~?`!rMa!b z%Ighh!vbeA?t%`FR2SPoS4f4j6>2RL=hIDaf`pa_bEqJ^J&5MULm%5(Fl7jf$0X>7 zm@-6%@-3#WqA$d*7*Lk5X9tw?*kCWsq<8R^!cJ#CVMcBc14QrE*bZH-0b-8;GETOo3nyxuJ)Q zJusW#qn$V0{`8}_-+-T0H{5_c0~f#c+Qrey=pA=N;iZW&{03uq8IOZ4A(NR0Nbo*r zVP=z=Go-)(01ON&K@4w_Y0An$Mz%oFJ-9xi!IZ8B-Kptd(0#orh>v!Pj&Hc(_D7$- z{RVcU=$VfKIEaZ{27N##$QjS*mI9XUbb{$dkXb|2nTc7eB*R{B@QTw5#2$y6SMHmb znEwv+di>lv!cR2iE0?kBj_@<~8AMZ&EtF~nkn+~Y96=MgoXdT;dh;&J^WMs`zxUnmo_!lM zMyvC@-aI%_*DC*f<{8DyekJ-wB_`0;9lUSkeWboI>GTvN-%Q2ONKAzpMHZSh&Qij9 zp@aKXmfy?OAtKbA5(PCfLn!DXiW&Sfb@pfU^}!QQK+jiFcegk1{5b;^Kx_2+-Yv7-IQudMW%RrMk9H-4 zK2>OKjl}BeAb`M&3%XgZvh}_B@Y=eU>efB7G1Z|rWTrMjgZ9)@^MOA%#N6)51~@w~ z=~nn3Kf&`2oi%hn$)^Ef21F@YPEWvH<8%g_1;fB3*eqV>M=ucz^Rf2A8SEc4oeVor zM=}rYSLu{&i&AYRn+)?IoeHlj*a^Wz^0aV9R@*l|-q$xC^X3th^1QKe>v$haqfblg z=p*Hq^t-OKk6gllNQi~uIcvysnrb0hLC96L6=r&}p#ttYP~YZzm?WI3Gwm2%9?Mfl zNBTZWngnM97>eqb6zIr=l#PkUl_@Z|2FR`HVAiH~<$>YBnCvQp};%%=7AJ>Upp9LNFO%H%$<*W@Y zb-g$P%qEk07bISOW^7Hf%H*m+R1j)EqJnq>6->3r;^e5)?lK?xq&H25Jx*-K+?;H; zGs~HU!Nf_aJsqSJRMY`l%J~AYwRRE@StDdsU467=>YN)^DF0$Xf5abB9xjcPvYL^R z9aBFNv)r_4K7h&`Uw-bnaYd1IC*A=f%mAL*QZX!7qv7FHoGK_9neTyl%}v?}9ocIc z*h&z7NKs(rB>f!BKKN>qQW?q95V_^C5+7K?%96?=RCkoJgPB2YVBiVMNT=@x|1CTX z$P?V8Lx70`hO9KWj*B1`U6wOi-!^v5n$g~_{*{d#V}~cphrO*SB}E@rH+9XnzJgcK zJHO=I@{0y1504dZxVZe{;WgKcIWkwXZS|`Q*?xEXHs$B-bKQ-Tg~}DV@Z(bH1M;HW z!tq_B7gUoS+GW%|23aLO6w`vbn-E8aKLQMO@EFtE^fnR@;ScB4L9?kQMX6)|eE5Rl zxm3Ge??~NDKDe+5PBp9{0>O^p2>_N)iXfNaRiL1d#RxN1VvSVVda_eWhSkI!!!m62*rF(E@xH1wQ*ud|z(W*`$2PL>1C?VQU!}1h|X9cqjPvB^V&`E!p^q4&rGA z<&<>WEKHBH)=0JCiA5rQ&NM}w2Y8_xju4;x4wS}4fv56fcq?HX`QBR27nG(#733Cn z0+KgLKy&%{s}9rj76VJ_A)<*2WbTj;b%U2<-rK9Ys;|7e{nhz)2(f@croE>1j`k7E zx~#bA()Js3wl5_xTy|OXUi{M?WIw(a-yIJ2X5NBve@S`}zIDIB`S!`y2DW1qeNC}| z(jnysQ99LWObEzYc_jSBa+|ukn(n%*u;lgEOA7CLu&b%3sjI4_&|YpYEP5QT`o@kt8GfukgiAp#GC4yIv&DMUGZ zUu=K*-F6*KIz7FntD!TBiJt`&VXc+E(4o89R{$~*jtcUpuFp9mB5;FkD_v^8ElQXn z_AEje*sBZ_k)pn6u?~`ko1}MW$hd+YWY)f)ZDWc;r%fqjOtQhG5G5hTP~wt}CXvHk z1dWIf*W77n4WVD+W@2)u*%^_|k=T<*b?xKhAAVog{^9r0IPtmgmF0@6gY+yq*XaFp zCmRwdk@1=Sxk|fZ$70<_$LX2$!fB71vT@rd@ZJo=FqBt#Jn5jx(FsHkV$Xtk4T?e7 z*TnE)_9VriyV1fhdanhvC`8Hcz`%Z*Wh#GR=N%nq=dg2-3ixW}YT_+Gdk?eZxX|ts ze?g5Y$~Q!DZO~JI=0aag-9jToW<4@vYYw}r;J~%Tq@Uv=ix5|Q5%%MUzWd!Z-~H}G zav<{S=wpvXe~tb?RVj7?HS>Oo0mz6sJI3y2j{^Lnc7)28ksAhlj_@Y)AOkoZrQ*DH z*lq4qH;TBXuoR=%E>%KyYi7|U_#EqGyH5C7jxjOBgF zjM$$0-zWE3kr$5gtEEent4hao2k{}82Xcf)(Rs44@sINLH_7woA^sZ`N#to1MvWWaV?nZmV2ST%VHC;FVhhFXMwWd(70^|ci(l`Vdsr#!zr%Sl#WI-gPi zpOEGy&tD+hC8;D=nVPwC2h-wI&rBl zsPp8PxU8%&tFkZ{WI08FK#|AKKR7bjG1M_Qn^jdLE?m_`?d~Fvab-hU@lbIY|0Vtg z2u}cqCjr;f?_bK!E1ih(uo>v`(f(z=f3eT3uq1)q1v7vrVL^~Nhi`y`SPdcpWc$y| zq)pHTk0=*TDr{uaMVH0eBX}MDDZA(|8-J=?{+Eqt3*5UEk9nAn#UvGfOiVH?e>5<9 zvDujNOFlkzjO~yEDc6`yDhzwTt%#5>=^%IgqH$4@b~~{sKnS?dz-kSxvabCb=YM0} zIW}-8nJK%$ufXdxT-243(N&~;4>ytRGvT?|c6csPc03r{LVa$wcy3}=wl^1^y7n9N z-0u~2+U=c1EUei0bK#~c!xsnaDr}ylanm>}g!oIuCQ9-cuE5QrIv2M!z~0G&xj+v| z5e|j3z2cm+TF*KswydwIZy8h0*tP2nMP^FhvSodo?k@BJo2QWVuwFWD2-Ho}h8n}e zg<>Bitf0Pzk{!TR#qkR9;27@&PG~Ycm`FNxM6l6nKxRt3_BO^$f;KmqVCV@JlT69( z^?PX+F6i&66bPmQojFf&iz3rw1OM?KVNupm4)+X1+vop#4SJySBp>$sHpq}fn|$QK zBSFiJp-WU{5=0Q>2?UWsSV4s4u^ePaJYd3;S60Tvgj(^T7 zy@7xiuRp5q>@4l#eqTX;adCcuPl;$(+WSf4L_HX65k%FZG9ZSE<6du=#KELT#WTnX zA301!gvN)HIJCqeZ_);(jV?ai`)P#QxaeJpXrJ)2<|W9nm+*Y{@S+6y3IV=FILifm zYseoDBex)~nva}lABIk{i+(!AXhn$|{g}T*fVrZqq{d%!GO%rnfPK1IB!14G=014U z)ymE4g>cG)Ly%YffUT=4DXB_)DYqp4Mc0^k%wm z^uS1@f3&5cqXYHd%lnr1_m8$V^fbe9ot#2tDI(nqAFCFey@k>tP13^I%H-Y1dI)~o zup8~LhdUVa)FiK0ojoVumd=T+9&F98NPs=nc&jf?>8;xYE!vMQTI~uYT6;Nt2&bbYC;o&z)hCzBHRZXnsi91 zsX~X8It42rY#{*7viO4xX59gLl1Xnl@PF|rKniGABh?@>s-nECG>AA0FBp8_2=Uxx zDph4KvW#*?Be}#d62eqHqYr{P3F;69AdN+?sCn?&GK5xV6XsMj`qKNm#;S3dX7fJ$ zVhuAYueNoy4G$k4KHpL62O72Ydutp&eTy{_M#;1I;{N-=Ge7mzj|^Au1lb z`@~t2ojB)BYEb-%vv>p=)dKoHhk2LuS~%N)@HWsPGhNNt1Wdm>?kQ@E(OXloN8DSgNf|@HnU`#lgz1BM5ZB5 zXa@0SR;Y1T#Gi;wdw?EkkWGj;0yAc@9pDeeJqP}+r=rRsI_#3VI@(&A8|rGR1HMe3 zgZ3?H`-EE(X-XDW1lqHDL>Vk>Wyr(@;KbuQn*~iiQn2Nt9&u}Kmfz*etC?8VTG^Dj zxof}KkwUBG^rre8`2{YzE?MGDTh+DIno_e9OJv@jTg}(X?`HYRS4|ea|1G9zM_E3< z%=TyglNB365jrorr2u5Rvp@?%(h6o1LA;w)T9B#H0<+PIUEp9TCW|!%+rXBQnzq}? z?5XJ)_EXS83310(zCmo*Ab>9Nu4c@^GMJt^i7k>oBc-RNV?EB$=mzhI(+%`wG+Phw zu1qPkPiz^sw2TA1Gd$n`fW3(FezM*s!`02rL}!{;G_Qz`3=Kq<_JljyJRwgAt5#KB zhLF5MqPae-p3k*Fcd#NGB07fmY7IdOU)O5y!{LtPHV$iHvLr=SCuDMSn+C4(1TsF#qntHM_3D zPk;FHK4rO+7tL^b)os?|0bOlyUYo_SdfZ`Yw7kdOe=vVvonG zsAr!#Zk-zfT_O0epmguh{UtDyw533pHqucC;fc;PEDY(C=OiOyG2v;8U5$`mL}(%c z&}y};MjW7ZDven!RvdNh>fJ`r)_?o<$*{kqq^QUR4PHsG1c#eo2=a2Ag|0#pJWISK z-gIbF7RtOqc!Q}LR!EmgV+!%71{dkXKz4q9_Mt1NMyJD*>2hV_^`Zcd?48KZ&dv|D z*3~ro_Bb=_4u?I%c~zV@n7}!u18?yED&Gp_0FxLKh^a#=}A?4DM=2AQ?_?EE2v;V=>^XXT$S14vLVUi68PAiR625>9Tue9{ z`A|}9WHCd>v!CT}S6(Uh_)6^Yu(}@U(pY!|pw?CdL`tm4>GrtICKgACRwpfyZP5}f zS|(a5S>N7%o%SE|#qOe9qdNInI$KHGVbdZB5`D;_D}=8k+#51dGYZI0y$T@_E(7#T zUBZHbx1`E)s^tsHAGlz7a(_TGP-Gr?fnE~* z;uHD{HTvPX0o9hj(cq%~CRmf`3XxKrMm-{WN;7{U_Tnbx4C)NRpVW=BUL-63SjAAQF_a0OJp7>YyYa_3&x;6!I26o#`D-!=W zsULT$mHP2FlD7$Yo?y&|#6MWtF}s)d!3O8=S-9?AaT6)*oGI6?dUfQr#6Qr-9VdQ> z+)wKzFBo_81C@R_fz&}A-z02jO(DdNXStg~E+gheCU;Yo+Z6~J$;L_+BiKt2GjvZw zS#wQIb6G>QwKbY>U0M+eRnRL`m6BO?@sM-q;;PJ)sd&t{<4L0by4KfnzQJh9dKDH3%_*98kQ$i4&#U6L%* zV4p3d8Z48_U=Z?V7Q>0B7{61A{Uyc#c0iR~z$S#*2Z7QRvJlUjO7rxEA~2#6uV`>E^Q~RQJxx z)o{H&p+r~J#x<(vGbJ^?0m;IKi?{RPbQ4P7cRmW(uF58)PoCSfaBdh zmz!MqLg*V_eDGp%qkkX%FbUk7xT5>X->mAIy6MF7uJF&AD`t7`-K%@PGaK9WE=m_| zy5v{idc$*3Ep?ry&i{ITUQu0yGsBq$xj8U>!Yplp2Vp9@giJ+l5QSKFb`WBaPQMFE zp#^VpVFtq)UZAzmA39Y7;e#qtKv3*7IcC(uMc0qDRiUU#mvLB5%#M7W6;*Z>_G}vX z>Jv+uO?k=R>U3d9<@9Ns)t75ayjKjm>>t(n0s8AJfT|75TjXXpD z=jP_hiOfGK)%MOUSJu z4*mBlO`A5pMsxe6Y0#l98|XtfCg|pLyi|ggHi3?lRbvuMfW_j9CZ?OAMPj;fP}tJc zQopaLfYOI#!fP#SF=^+)FsG1DP9pf7{cXOMy2>mFBe-gF7%{=+&S&qpr3Ha1$*ZNCn+R0~;v#lQ@S5B5EenB)dB!w{VHLwoCYYhyt zj5-b2Qab4Xin~a#jN+0{P@1OZL>Lhh4(8H9hCn|A$VQmHk*8IL%n!$W^Xy%7b9c>} zW0qCdu3LBQDobeT=Fq05+1}wjOAV%F=aV!MMW5bypCr5iX>!?Qb7lwG*hU_pli_^4q$8~j6?H6POK2eG#^$6BH|rc4lrce>@BC5Jr`b1hJaGT zetdKh6pnH>1pWD>{qWCOgPIwl;wCmkk~1ZS18+*ix@K~p9JN$NvQG{-Z*p&(rCVED zw=N}5l-_}XURJxmX|}tvX9gu6dP;kiQM_#d`fKFwdM9rkS3~?%5_hTl4p!y1TvMa4xrNB8*))adGcpqRAuz zkVLj10+9O#OwRdvFiN?3qL@+(LXS>z(9x-`IZn5O)a3hnBjcF^n$SbIos=^$90>@E`IsbLDfd6sgV)nasA z3qxi;KGOZ;tR3Uy;{_N|Ay|J#j`9?Zl*S6rHsH%Wz?U3ht;5dY7(@P=+!;77NRe&H zFp6v!QdUkDx$nhMh+^DNjY1rSEsN1;{$1JpWHKr}IZn3xuvwGt99>m@4(KT>J-HXLj@(Seu4l z1%P2AVCV(^`&o*B)#*!AZ!7@`;M75+N;6yH-dHIVNJYDY_-G`iK+0x_lT&cvMFvE0 zV5&D3Oe=A3tdG8h10v|h7?4!VPTQ&&;2=N{Z$_>sfm3*62~LJJs9Wqal@I-Vk1dVp zQ+{qsB;3#rxYSm%2IXtyhq}Ds3`g$(0Ki)1al@_m=g#&L)dE0vvLBE7lvg-F$aW_3 zTaaD}Gz{d*2(Jt>r66B5JT)xr0Pq@CXE3Hv>?K?Oola+=6Em>eo#Y50A`eb>1VApS zcrZewZfvk_aI9|IY}4$vWBd1)?%xj&j5h|y#s=lg`8TGwZk^t9Uf?|ZCwf5V2dZz% zt&m)ap5qgtR*B~(h&xXSS99_a2-yKDynM2o-1K7XRYCGpbmBZkFxtoFY2MS z#zj6Qbacwd4hm;oTrEJFd}(}mwX;`a$TQ>yq<)~Z5j^1cLbcK9S;@X56hx;(F=|5O!@NG?`6}W03}0zDLXRD;dfwc+ws}qS+Ez2GqTkBT_$N-S!6X{94J~Wi zEib)fXZtdNRnel`ZZ8^Dp2>B8@%HSzMQf9TwL#XJVz1Ld zzE#A~@wq`b!Xk2?A@0(M5DiLEo9oN-xm{vj!lf~JUdYq#CQk>NiI^Efj;@3?QSPcK zW!|PvK%MFFtG+_{WlPcwSX28JAG&N_SGyx-(uqSfiTT%z(>=0?u2O~Y5txZcRgZ|=zT(={g+-Ui32fINt!ka8jLz=@5 z=?*g~Jk&iT)`0TaowT)~LnRIa5|tlnJ4$H+MW?{DpimqLI~wDEA5FK}lY# zm+Z}MgQ0z+huMsV>`>;6XJh+Bn=fdX$?WtvtCdd&eQl{#PETj%48*;zrZ!u#4gcGk zlGpPlV{Te*$Z>|Hr!LbG!nLuauE(O>I^mlN<>mQJ8G2{qiqMpABD2A%&oKG(lwaqr zvbX2vwq>p&9lE4XfLoSSgnfyOVG>+aIi})xgSLf|=}E|XYC@7zBS1ZgHzNu*&?!Gw z?4@1lFYyM8gN0B)IUN~U_ACKGay&f=g4mr1@ncT6mvXmx0U{*RS-dNU_7}0oi}ovD zhmlgRS0Hcd@sZM6v_EP7GKwFx^(!CdW@qQ(rTm8eOrnpJd6VNa5SZwSHY1=lCO?Tc z_|S5~KbD(AGbzZ=@#Z3OBO}|MEoN~_5>GO1tlV z)uLgy%!b3WE%Wb+cdUZ}uL9`5_hEoWC|7ORi_kT|0?T#$@LU1yKrvaId5kBeU`Pc4 z2O}J%>1nFj#{k`CBMwrGsF2wWL3_vq1%h(yQRV!9{ZM)K`|tjU-H1Ns?_rxBedh^w z-47pE_I>t8AVmp%6Ndne6h2V}6Yw5%o`B6^+}D{Q2nL6x$gRe?5m=od!@%rhR{QsZ zoG~*;VI5arGrUs)k)E`6#PlAI5Ip*MK?Xd7{nJ2>`!9=OS<9(H`#ewql0v!V% ziIrXh-GhnZ6o?5Dp3TrPfn6cShj=I^C-YFXlyL+6YK%N%>@hJnYcm)FF|g*V15QSPRl@EqdlaC{|&PJrDPkrN9%9XL8-Na4PH z0;7@5(dhiUN#pTC<%|#Dz|5zGH*H=TLx+5Pm{Fq_9^lf6`FkWhX#QQ!OpvXVRAJ8o z+Nvdt6yBsHp`2jsw3aEdgz4;pOuKc2q1+NS{3ouqMXU%ngDGb*$8HM}JEWPFQRczIxO8?83rqyjWwox2&nGG*sp-<{#igT2hrS{tll# zWQRnLaACs1?$vWLp~rTGwh;C}q>O<@5W)KJLC=Ps8v11c_ z#-9|t9Ql?+;al<+;GaSI6&ty5QuZ`ZSlt05q!;7@TUZA~ufZZodsd&J&!AM(e4CiC zPl-&hL|6DKAh12r9bW#@(9rzwtviSd9OF`_IeL7o|tox7p9JBqrD@v3T4b8VtEj;Feh>QZ8S! za^=cL#M??D1ympEIAV34#W_W}Q1?4x- zKVK)$DQ`0S{LRd9gdKY92j71b&j1gnK8K!Sejo+eK*^qK^5YqPcPa}7*=40w(q=r`Dr^U6YlQT|noL#Xftd5!-c zVl;pAz4a&t1h_x~klW>Q&-RLrDS$HXWld;!vGQkVkVB9L15CEz(LA?Ud z@~zM7fk7?qhTvKn@D>($vdY|L3;Ip+={mK3Gbn)V5 z4YB-xHiyH_|NIjQY`OmwY2UGI6S90p)-T_*e0}8Bj;7M4j!2%nz?~PNv8y^q%25#a zG=Y4rJ6p2Cm59`gsY1nKXHN4^|bOfe?Nm>iEWf#)%D%~6)B#XkI>G|(i; zQ7VBWVO2%JU=c-dEqZ7F3Kr7Gg~2yZx*-0VndKRFqdHc^CsGYJ5Qa&5XYpEYu!Mco z2oqiN>Jvtlc-^56>{<2w8TFl+wQ((e2lhjz$&qLNhhT{!4e?lr#B1534o&%+cJY=r z*pGtd|HOC`A)6Sxk$8Pt$bRHtAti$tnc%aj2laZ4%2(Lh=bu-;RLAUJ`V#0HbZhJd(6`q>&-j^wME>A%Sn*earh-_T3QKMGeNgWts}lwYwR%eTHW z_ul(p-O8I)p)JoFhaljbpLsaW3Ho9b!5KzhaRwh!Fb| zSY$B}`6{@Geoq|?pNm%C%OHX8CY~he=@>9CtcqM#A{bCq^g=B!D&+Oy-9+yf>Ue3- z5Xs0j5K{{h0pic##U$;l7FD}+>!MU56)lp+K_4JgGA>2%aV0&2*IIS`Bu3--@NOPk zv}hc71h+#c=Uzx0hlp#w>DJiJsBRq}2IN^uT86X!Hssb!gGH_cy1yxDXZVbCmP))~ zDw{)2Sn!gRHU~CNdx|VO%y88~=-M0tYphn&B;HKc>C7zIYO;>iE}<0o>(;JWH69&Z zKG5IS8}4jv4mB>Bs-2=r6h#HOC3z(-M|w_14pN1B-Q+)t`dd6~sMx53P>4iEA|Z=2 z%b-mCv zXz1HZzxwDg_?`48z>M{I4AE9^!ZxMh&Bx%LgKQkG$5`bt+*cWWg+Bw49qe=b8KNfe zsYJ#M9jqkCYXd=#eJ*y4Rmz#KQ2wsRkdNg}=@Im=-kXSXTyllRp6(4%Vkz%qv17_} zkKj%k`yB559KToFH@F#JBqYs4yExAKA+91L`sbAAjy)`pFie$$2>gH|=@7YYV5j4a()t>SS_ySVsu}JBN$Lz8vR`>&cVZ|`7BpFpvTq$d zI{*CJZ%^HH6Yct_@*G&g=f3@I&=%NB{~z++1U#f2??1HharI^JRpIW zfozZD%}khtOeT(W{eD&F-rKiZ-CAsBzVHA24N|wd@2OL#PF0;cb?Q`cu1WG}z;lB> z(H+K1_r%SECY-n6#$VRcl_*~q?+#O!V#kRGfAh>2UVIUqjO`t!t}t%(^beG|>X`Z< z`YPslH@$ifGGga>F(&dbbG}ezFU}a9$PD5k5>;}7(k>nOdcyL1s27qlFJFSX*su#C=wxN!S4aHym&cHS#O;r5r zko#8IjEqTs)SgzlIxRPwD76G~j!=mUJ+c>0o;)WGT6`hvK(K|z{a_R~>5UyZp1*rpz6Ya2U2*Hyv4M^E1= z9*4}6+_2{fMmBlAQobUvG@L~^x-%SpxVa9z7IHH*Ox1TLzPx!*lE_&`lefNTw^z zW)LiDLuzwuoV8a@0ik!^c_$#=J9SE8Fgn<~zUpowio&I&}(n0d?92>TPkQ z(eJeV0i7a;hI*`#E&y6_^dfUioq}ppbydjWKoxuNDDwo49GEF~z>~wL4OYrauJ9GW z)2zgzsAv)@DEF0P9=r}O8)x~(2$0SUKBXZ&OI7Lw(-rOY;W)FNM>YJh2F=@eJ;K&AZ|$@m|BnhKFx#l%upSnl&~yxNz)e^R8IT-_!47+N?zju~$RB(od^Y zk2Z{GfCjShYGX6XLS7_UgaYPUre-pluo5mK+ttyFnmjlpM$}UnC3%n=2f1}|vKsOG zR0mF4Q9MNz!POsKw(O&;Xxs&{@!`+t!viYdam>DQ}1xu^@>HP zMdHK@y&F4)ck)~(j&<;UNFJT(;htZTR%ax&w_zViGVI!sFP!8ybJ}5L!PHh^Wzk_6 z1_3j_tyLcIb$7KU+7jcB`RI~T=HX65#<4N2JZw9G_pO(h(vM5{5Lq52FY8;nw2yvb z?d`Fej*fWFv%iD#xxS_C9X0Y{jBXI~QjU3?PN-~I4EJ-+Gj zXWqDbm-y7Mcv0&a)^>wUGvU)>i|tMJkZC+`O(YcT1?(W8BkRZDGl2e258u7%Zd6^@ z!HZ8p3=BEKJ30e`XO%LrvJC4-Bd{On{0A>K;{XVC6d@G2Uz~^Bt#YSAUQMYcMG)Ef z=@{nqa!u##1Ea6nnn%B4YZ`rxL@%RHWX{Y(2FZ!_2E|~r)ERoi78Q;tI*Mz};#GKR zUr%-R^EMk@_Ot2$%KjLl)0I%rM>)SKS|38A4{_WH7Y#4qC+*68(l$&Et`4~}{qkaq zE!tbBF9bJJs}=>n!~WQksD6^cimrCjEb)6#xOgirGTgbN8S5w`>W zhRQ->JDh7cDeEr{9HGx_F0f4ko3RWfHBs|kXHB{TM{EM818IGPNTS?{p2i)^!z`E( za&q1)YAVPp^Q^n{zWXj+S5WFIXeu(;rcK;v6M3%E0;F-jyr|Tf2aD^YS@16qc1Kyz z3-2qcxwr^_J&!wfu!yWA{H2j07q+bUmxobo%fodznawTu<3x^DHEUj6tYs}yuz~A) z{>B0zDM#Qb%PVN~zsGD3LrnXKP0e$b7F~YwE`CD@u%PP2xE^P}0xt)b+!v8;5r|$^j`byg2l9J?m*7EEYs*U=f6w zB^eGp<`f4J$AqNl2syCC{xwe9D ze=8QRedg^4_jF!)<*r@o&pD0ex5Q7iHld&Onmp)(Ho`tJs!|sBB!yfRxYSB?+ zA@yrx%hi7!n@q+T~v}CR#gQ=-8)>7M2T~$^yqb7u)@IWY9^)1+%vIwz-pE@TH6$jVIz-1raa9b=;H z`-dS|8=>j0$G}z+pq?bYQqb3 z8)#|hwi%IPy41z|Mqw7rZ{1XUD8@CG61c~PDUDIZBM2YO=@0F~W3MRQ^n>qjE}r2) zrr;myi(#9ZEN&}sRRo52Joea*a{?94g0|wZZ)4Mje=7f4ua2<}pnV_)P7%p;^#k|9 zq5dh3ldHhOZNl{61&3A{NsTbN2PJ?5I2-5ws{7B&$H_cmatcv3+NsMt);2^7D-KGV z_}kCaw%PZ5Vb2~@ z>_t?(rZtI7dnXTaKR=noIh`BV0gyD9yfc^=`vHtl?wPRVm9;l$fkoDEvPIGa%QUs% zNAm|EPljYc`2X~V=6&N0@!rooL5NlU>(Ufi3bNcWc7?ir6xBsn&Y0!*50sBRi5}B* z0Qs(psa_wX2p%ddDKPFF_5&&T2l1d95SnG82!7E~3{vU_YfOwO|A?r7T>|A4Bvlm+ zR+_5_(&S$EEzMEr+pYcVL%xu1Hzg9IUs3-84e$?RpNeek5f5madnh?vru-uVf>$8^ z<7SFOg$qapD+`?3u_o{o;Pg((+d!{*9B!4ToD+*t1?N~xtfir@tfs7{vK*?URM!KA z5HW}qZy(493!RFTk{me!p{FeLtO*kIA$fI`(^B#&+C=JuO{@iO;oopNo zr1bM|l7E~XkWYo>pRFra0y)epL;f9vgTB%M3DNe0!({J32ORc5{Mo#M_-EKU@PQ!5 zei3wG0QMZ!7&R>%V~sUUo6Ri#u+b2aR>JkpGQ^*vrV)eK&2`mWxKfJsryC)oe$@G( zz^fnHRF7ju@#gRUU{i4ga#7fSXcz@!-+=;fRs_x=1uz__a6tj6bAapZr_UEJf))(QPxt5{BI4xxR zM0gu5WWj@59yk7vLP}R6FDNBcc7^9XLhC{zRSFBrWxPrg}~`a2IypILrly zAw#kZD22Cj^lph}rkj5*=FiXdTqEobDIN@rh2gExP@sk6-!*V)CqcQryla zd|cva301a+`Thvx%el?h{-WcI`;c@uu@m-U1$@p+lZ(i^Wv5Kw;2MPv$E8yP!Ko-` z!ZE7$Er^M5+Rv$~3_u8)l?b@R0Jyk1x18ovZSr_P(YgGiI6{+*JAjZi!Z(= ze!7aYwXw^(yA3Vdr{78@wPjrPcI$0eBsmZURHo0IfA#^41@Q3ihm*&@LlU6R3G zPrZR2hO}FquP~2c4DiXp_+tuvqZ7r&c8H!7f6e}N&XANQL9~Gydxd}zpl6CLGRE#h=s{{sJ>#S@-V4GcrgS?m%mhM?N+r4Te4PjE>@W z^w$?oz%m)6-2K|WB8$JR%Rtt69es(E{31^0Pl^3O5x4g*!=Rr^wk zhxa4zwSj94C*!Ddoz4rUua?vrT((Y5e+9KR-3+K{oMB<=G|y}%r>xFUby)`UU>0ph z_X?nAbpC08|9R@;YHE~GLtPz+d_^pKNkeIabwV=JW2KKP{nAXP4jMO2t8=VM^P5|>n*2ZDnHpXooFW%^e6~4^9aWSmRZ(n$|`v;^-a4%cl=M7<9 zgf?NH9T#+Bl>*Ncs@Lbcu|z744fN_@1KgpUQyf-Mz&>12T!DQMyYc+BQ7;T{gpwGB zHyzQVNIHH{draEgqPde6yUzG8@NZjh?}`l@b_x5{Ten_)>QtNdzN&-F3 z6N&t<>JywNQt`XQbuiH%R`R|o)PFqvFdYx!ne%Y2YP03xnHsov_!%DC?aFr8qxFzz z7oDkNY#d=seuSGWdr{b?Mz~Ju8h{b5gYaV8?V#V!hHt!4ys><__6f4o03J{c9ajq4 z)hl-|KNiA0=3cn(KsF>pgU+DTs4h2cYfv?c(oNznD>CIN$o+}}N>pUSy$MI{bb~iR z?ck|BKn-Eu9hhRv4ao`=S5{&*Wff&O`7RCz{XQ?sSJ)8{SSq!9T53-u_>f5>)6}Ne zQ(0eD;;)<=Z`9v(eI-M4b|9fgtg^B#ZoH2EI74$1P1a*Sq^Q4!eNqW+v_5$rG9Rij z0WSqHGu&hHv!;j*igc*DLG zS*)W^CW=Zkaj)z#I^?Pn$Vn(X(o18FAfZSCd%m6S z31Op$QQL4xBAsY9D#nBmUV$s~4s7Y^gdVx6u!a6)@;-QN14-@iZw|aCl=r@=JrBR= zzYi@Mx=;E>>YqS_!C#)xwj4RaVFpK!0?Blnv|MRc9+BA*2B`WD`*)fumC-IRy&oFYzU|p#4vGVNr&mR-jJ-Vte|~ET}?%EWs|$yjp!PjH55|7 zy}p??;uYl0E$LFRRJnEOnHG&%HZ0%I#*@pJ&)vU&(YF51^JdO2tEnlgtf;CfGc4e- z6UXU7-g&*7=k=f8XWQ`;)RwP_mX*aw=W|U1o42SzTulz}fYUa>>&5ub`}y+(*`sPb zYD0YsBvh3PQNLB={a_WHl={HM2;~I5;I70xQ2HeJRNzk7fESzCg2OX`+EXafRT8KQ zR?!X+Wvy{jAtKcfoB~;$t{@Jtp`)AKNu9j@N z{PInIziHP{@BSnIwIF#Yxd6Y07NKh>1IlL~1#ZoBTd0vHaRuf8YGWBM&uONo9Z_Pi zJh7#!Eh!EL3Ja8G(Mcq@O~x@XsITfgKGE_VFp;o&VS2Ya6F8RTE@NWDV2 zs?JA_tv01q=~T8R;YQ|-wsDMt<3$`Y(sLk?~iIk*uJL6LJvBW>n8&*yySZEd)6 z)Y*n;wdSUV+G=bPO2RkAKNhcHIMq=$aq^seI%wcIeL4f*@1xnD_ zm{{I({?56J24;<{Z$J04yiJaoE$tudY`^|v-Mxvfp7vSxO`glO=fwT4^-G5qBk+Hq zYw@ZT^D3gtYnxYgHr91kl_i(n&x1wYCX5xb!MYu?0O`=ZXyj!{F;2{gVB6o>AI7mroQ?Xtyuj2yhWmawRUw)!)pC3PxdW&y(vq$E9Jk80Y z4h&tk;O^p%NTj3q?gf_(X}|q9XL4IIc}ddwubjif@LLtbZ&Hs@;@r5kB~}B?M2a6G zjA7D&BVY42{l^dh`zjh;`3&pb^jw)Ea5vpXV~S#Mbv+HXA+?U8w2%ZdZCnd?$HcMN z?u8iEt=et37Lph(+9se1_4tI?`4o8uWLx;D7L^ah;_~F zqJUW{KkBM>SK}%&x#3;CxPIrNObp!^0&1ztlpejP4nXl|;=H#v|MlWuu3EW&$;$4H zGy6AmcW>xlwQtFieWK)beDnH$F5dTn{*Ar88~gjuN96j4SAJmMV&XT|VzW&vR@87) z8uo)>CjchuK_T}`i){(THYbBP+DcVpM{+2t#xDF6K8MvXjNp=`H-B);6=?DATOZgJ zSs(er)nfq(10J1GtZ2Dv!U=4*aZaPX;%Geey6pG#t>||Y{T3xD8LUDs#Jynw5;_pF zC%5Nn%Li{>y77uF*G6_7*`ogYSm5d}M9^Owf`m6P&S=XxQ`;hHE6ANp_x!?$z1h9> zgSRXpY|(6eWY+^*DL97Pj>7Kw55}YI^sS6L<3SO4DLf**m^wnlC)&2|-nitJYiY!U z#+D?K+kO(HWMk=4zC0A7F9Pqaioa-2cpB9m@l@*RjMtRIfMaN%Yy(zvaN&bXONNB^-^EI#tc_u@z}UGc@& z_@liuqRGp|QSIM%{v&!KmQadt_Wf#==6VPN1KKqq|m9Xqyf-+GaEB3y)fC56Q&!j+Zo|2o#)LyzD08h*QlCW zT~Z8t98q`wjB_75d@l?GOEhQ+BO?(9pElGd`h;zGa8_ldh{cBH+_QG=@OA&x-R(vJ zqS%}{%U7&jdk(%G6tRjU*L-;2e$b{3d(0N*DclTC&i8_4;BN+l;v5}Eqp0wVU@Yu% zkcW>B4&bRYjzeh^TwPUO7AdBhHM9}-7yCWXJ3)VUuw8|7(I2x_;;uT(e)cp{#VzS_ zY#V+O*&yc*KZ(Uo)GS;(udA`KYu;M%aj{DKOJ!YG>kjR!BCou@t8IsN*}03KeYQ0o zZ+-UJ#d>T}9hj~~{RPLPUy{5CAw{$+I{bl~T8x(*cJwzmg)5M}luI7DzN z1J@fJ<#}A|P_o;z3FTirt6E!y(wb-myY@gK(nTVSsx%VfswFL=*$2&rtFR5-qyaci zq(fwG&*-{el^~1AiCTT|cVl6|rMB>ildft=s<~=EH8R#mWQ4%UDws{=!y0+f#RzIRV3PY;L*;C)uuU#ir-E@=o z)jRHBnIjquFb(F@zI0B1cbgqWL2(A0MhuF4bi>JfAU{uayKhR-0?nl!$4(Vt`b>lQ zt@CH$0%S*f`uJ&II<4{JG|RNQrljI4+0M0cHHl&QX|G+4lN$|MY^084|?9@ue) zjucgJDLPP~!hw3-WP2c85K2SEys;UmX@m49MpV8Rfuo2oq_{OY~}-liF4wmeU} zK!7v6-~o8SVFtkg;z6k`CrWK)Ac~qW9FPq}6*pX(JCr=9Gj9XZH8{5x0EiPV@i_#* z?a4cEh7eHp4B@p3)jVsguc;0Py&VM|=E!{+b0^Z$&AD)vY~JqeMh3QSu(H#niYSY( zYHwc^$M0yH!!gv>HZ;`c$?IGG$>p8pDQfk#t?Y`gY-?K?A87B(FDvMpJGZNAuDa;! zLwS&68}8MR9RD0ND8lK{mgI$qT~|vmvlOgrR}WG?L$IIVs1Epgoi|Xf*E}}`Q(~>h zG&?~sIzh_Y1Onz^kw=hYg`Y1!a;^!47y~+G`Ya%$umQ_40-g+^?6#4%q6GEupoPU? z`LP*`?pk)&{qBIO2HZ9K{qt6BUUtRxD=%3kK0bFY^z&DL6l^XiXb!F(`>R-W^UZ(% zI4LAMt*kr_iZ`rM>PXfo3XzO;v0FiyL`^t;{6r*0(Xa=YBC zs;jZE)Kw#+V@(M>z)NEQ1mYoyG-H4o&pK!YQG70yZ{N>93ymi=C|8 z*@F4EL0|w?K0wRT)8>RQBcz>5GI1evyNwF(gbHw) z9`O4kZW!!{u$4YC#N2ip!~Y5iX_0H)5(w-j`@FB?O6ykWPnUS-nV& zfY4=Q4K&{kF;#9hX+uOYiGxmU@Kh=49Q9w2(WeRL=$9q8*9y0X_P9V#bsT`MusQ5E z6yPo`9iN+ib~5Go*Z{)j%-@b>!p&!Qbd2tCBhRi-;+?I{k^VyLTUu@%q|7B z%%w?3MjU5SBOkkTtwW!XXB|qBBcG&J#HNg*gImN)Qswt=ELxD?Th%^$c6(KC{(_>7 z!RKc#=xNzDJhJ9sX;o$E&EjUM^@rjmI7#oCTUpXINBgi?HM^rR?)=zCKl;>+aB(?? zkMY-`7RDU5<7O#~N&jaUaCn4B0P7Wo8vNf}8PV;^+kvw@QZRUdhCw_JG|cS5Hkh*W z=MFBOy%^@>thQO{hFrmP4Y{=SkdIf)1#v3I+|%X?iFJ~eNBm4`$X#VFm|ZK|2C!Jp zn}-Dxv{JFEDDbOGyB{`hPD+6}P|ltXUvQM<=6s|1`A!&fPG|lmoc22N-+!AQ86?8Lm>+B*~McucA(b=^s^R9c zSn@kyFIDBuUygpXfI?pzooV%>GcFkADjc4e5U$wt7)?7Ph z*}R#tflwPU5yj2_O%3Z~YgZorI&M#)NU>4kX(oo?a8sm;(+yKIH80?=JQ`^pmVrFf zZ%jD@V6P&Ga0ZSGxhbjaX|{!tPK6s$wGmV*$M!1J9&R^Dm6I!R#)vwihHCDmS_NTg z7G@Aj_~)&j*H%~8-d0z+_M4|xbo8H_Nv-pj4Mdx&OG_(z`v({GxD$=>xjG;COnE~L zQyEHcxrh;9(q=LOiyx^Q*y6~a?j-BRWtg;9sl!T?V&7bhK$lful#|7iIrn1I4o)V)03EM6W6VQL>?b@1F`*+FFS@4!?tb`gX(>3Hee znXPP2esE@odbVDT*{!q5wUg=9nYLFW!>ctFEnjW*b4{x1nK<>G7UviCBPsudyden- z0ria`u&{;FJQlp2MpzPQBZU3sq1HNVBR9o0!P7-?O)ji`h#g`-KuZ%M?;&j7Qf~=j zMGS97=8l*&>qNUPb2t2vtQ)S>Hh5OnZ5QUdn&+GBzc!lh#wt1A>E_>fXN?hVfpc>z z60`-zkzF~5%)aur@-|W>bl=Hp^2zz0(Bw<=TIRI%taF;f&Vv&(eIBiTs5)g+@`CD$ zfDPALajs4&8k~6tFlYFmH}`PUWy~$zqlY&NFKOPWI&U4UO-QE2n?ptKtqV40(DcP& z*M#E?SFC}(vZh1o{DddpZufe6Hzw_#we!~_ge7g_u1B2;e_6?gwXbeku%-Tm@0a#2 z>VZ$p&ax_fkp0R$Ww~;B^3ra}o9Rx-lnqN}J6UFvu_(DCmoHs7e_nEMptZksX2;pP zWGCd~DG76S7N3GxXK^^Nj_$!)Ogb8O$H<2ZlMUA`^Wp1)|G;M#x z)9Kj&!DbJG$BAnP2+z~kP`J7p3L0_>cFNUNJZ|%23blyl*zcs+Lw9dkH#&0t8PfeI zc}lPD)v~#5b~pIk<3zTO18~rLoG!93(l?%NWL9-k{db4MwE-)rV++-ecAS%sohSKC zqLo41;Pv$8_ZWN6g0#KobX+8IcPi{tbcyih^@=I@K&pA{{{kC*xpHxGE1gRq01or& zb$jzc0(YL*okv55AAoP1(H@uF5Kbgo!?aSgsu%81my6w@E;x{om<0}`boWs$k`mSg zVm=D_&9;vvg9vB+2!9sSp-MG2YyBIr!|mZ6ZgpS5MUS*D?*uD|kttA0jlIj~(2u8TC82b6I>IGjCm>?`8Q;k?h~ zdMk-2N?&(ZXM0OEZskPgmCV(BiUt1Ss81R*+4lR>AzNFf4`8aEwlt@}*aef)iO%dK zo&3sdWkYf;d`fhX?ap)Lxxr-)XC9gEnf`)tCVLRk1YPZ|h^?Oii!?AhI0(6NgP_QZ zrW;2Y$9B^>1UhM+>RmGhrV$^tp7LqePeugzO&~pT?dd~}mhs*I3U!8)-1MI0n=22r zj|Z#*;i3Zcu1%Emi2VU`X7?vr`&#>YyEB)YX**7I_YqcN(|0tLC8qh=nF|)o+$JU3 zM46vVrk!ac`kMAV*s$9VS{%MyAX9F5A^|=&(YHFtdP6iwGY#=KxfLvi;Fsme!nnh0 zY;MS^(<;>}R3-Z1b-%xguy%P+FC<_lV|D57MsO!aQ z?Qv~~SgAd!jfiu!CrDmTqR&tLH}ok7rH+V2+Bdb;;$rPEijm+w+3cm5uQ}#?6)L#Z zN|iQv%J>cDEZ^mE;~9KoWbEf7ar|e@A+a*|?L*(j zJpOn0tow#Yto;P z69a~V`#=IZAwAgAVZ@{Y1_J0#X@3MocB?OsjJ{~XNZ~Op826tXy;q0vsp;TB*Dg-J zDIPM=Fkwss4+{)NgXWgjFRTqr57v#?))eQA3XFzNjiAI`(pEjTfYvg=z*=@j zFnqSvV|#gBJ2`zky2B?y5CaY3kLlwfVHju-O+}K|S4j_O%7d^xa_6(hst$^TgpYKh zdSdh~&;u}hX9&Z0QvJKp$0dv;uh~<^1Ez~V^d`utqoLzL>;AN17--PklH3BuwCasX zE`i*DPe_qC-UX*XmAsGe_L5qmIoI*aQ(BWvU|n(0!TB3tE-IV^QrUz|?kXh)G#m>~ zb}ZoDI*dKw7(e+Y;i$gM{7hJ;!=+r>#0P+Dv)>F8)@D=I;YG2b#H?Z)2bd;;;;c?$ zo%FH#Qcvi^x8OT%dQwb2_#FUEYNq3Pw&TB_Ws#_w4)?6be~J2c5OM~bny<4PzYb2< zfn*O$cod7BGlE_QOVI{HYIT^&(Ca>!%24d;39^>;_2I1H-48iV!6O-z{7Lxf{Fz#G zz@IW-svdM9`4bx;Fj9n$8q#6oj-XU`xIjM^JK1f6D|d!n3-5XvmZavbo6nZKjrwDuAJ-sY{pN3$M#}X zw&Hs><2PnshsSo0i|z`HV@=)=(+p+sCg~;ZkLm%bn2?;5bSI6O?XWzhJ=tQg5q4$B zbqh^I;XRmqc<{4KI;@y5TXtm0NTsaa4-EytcDO+SR5Q4g zAxlY;RwJfA&NiQk?^%rf{*zMA>#!aIp{7hnFgoeXH`N1Bn!t*wc$Rb|n5>CmiIFZg zh-mOm+Wbs|j*uT6TLR4JG7;0@p7GdqD)QKMJIkdsBl!bM43gYDAl1LxjwjxPh6$HwH)pD5+r*!UZF7iK7)RZnz-f z1{PmtN2Ha4M;&=$0T(wnGx!n7R!O<4uNEaL$$;eH{)l(AEUlMH`a%!qLv zvGr&yg0LXQIRlA(;l2ikU{ngv7zf6JQD=_%a|pS9R?MC&<%WtL7F=S&)U9#&sHSY&CWOM^_JxjGSb00@p+Eqdo`OAY5ybRlJco$P**7ja!f? z<40VG3;p`xlz!Nx`j)n%VasVSQgidk<*`*zN&s$L@mC1dhD- z;!32roP^ys023b(c=&~giSRakM*~ew{~Z#q9vuOu>;zX|miulVH`CLBr5ri1ktm3g z!ZW@wEMS_ZXBKffkrobt>6BXx+7+1&+Q3*?z2uG1zEyaKG_bYJs*(*bQ#^Q!+j32Wzr?xft}qSK?;rO za#XxZbOD}(tWFok^*P{brHf7a*4boFU4#LN^u*xf=pxwLj(*S=qLn@g(!6pMvr3aN zx*Y@HeXw$hcpAJX_Z=Vw<#Eu1CQb5Z+aDyD=EO15GYS8k?WVCuK^LO8a!B7BTMmGfE6E{%IV#=JY(vl-f?sr8b-IAIcA#rVoG}jYF^#6L9jR$h zLn1rBNWAN)qwt{-V)c=uzgR=%9|f3W+@_QWyy3gfr)s`5 z!G?W4o?Eip=Om%Je&J1qR50+r63dX3>iPimp%d)hWSlMWgQOKO1uzuN=_PY3du2~j zjpS0$)#K5lx`Je%v92R+QkS70s!hx{-avk2jm7<18?qWfFCga{U2wLQL&3VJ#n4!(v7>$X7{4Uud;v1sX@ z$>TzD3SPr&ojFOJNOVIGw~UU-QD!xz z7U2XUp2TXwZXmf_fQFW}qEMNiOiFEn9`dMICn#qPV37F~y`9yKv;_7^aU{Lp;Qy&Fn~K9m_V4E2vPM49T`fz^Xv4Bjh(@vjbsf#432f4iPCH z<(@aF1m&I=zw@0{(s`l_xv4;D=6HFLFT6dKLT_qQUT=s$F^55;!iaj%gIg?$>t-s! zL7mep^^Sn^T-~RHpA@UKTA1Jl;}XT0>SLYEz;-DY=$F!Gs&YYy}cHB3X9+z9kn=yswNuAYku!G!)(13Q+)VwW5`m*6hlIcsFi=e8Me z^>cN`mnDe7qvK6hl`(#0{61hNE~@CIm- zhtr$YownWJ3B>kUtKEPB1?6hT!WW>}K36ZU@`;ezIXw3Akw)7)jiV*gYVW|3A;N0; z*vrFe=Miq-Xz9O@a>o0xhrnI~#TCpvKBx|)s)R?OQWy$^=w#E?n+I4kfDST2#qvc+ z6li}Me)rvB?N6cruSXiiTjH%oZJl_mQLEOf8^vQ9Y(v&*JnvJBW5gMfjAJDFPbnUe z3}cFpFy{*3=}9v5OUrW|KUXJazX5`h#`ikVCw*A!zq zjd2-$VO$goH1W77J~M4xeAeV5-rzl9`e_{wa^!KH`todqMv72A8GA$h^SW7; zEN9u2#wB2INdgN92oC*+lS8;M**IK4lqUX>W0&}lhm`P3TLkw$tCSe-zqO!BM7NSqX5lu+d}T3iPOVbTg>E<>feIJlDEBhuL&}xP zHOlqMN0g5#wuPJXp zQ6L}}rY+y4ruby~F|H06fB%2=Gqrqh?AL?FzyHa%wr?A~4h~-XKl&C*0qJT@{`;Tg zrGHU=rTib||0;h_{-pdx`I~YY9w`^fTo;O_f99lFW=W2)O775tVbHseHSS%N- z#JOUfIA3fM7m01+GVvjCrMO01FFqnZCT_t+{yW5H#NFbsctAWT9uZ#>Pl%_)*Cpp- zj}o^2I5PgG?~Kn3E~n3|9BzD$RL(33^u6(!@tn~IeQtb4Qeix6{fs_0o-^JX&k-*4 zo$Qh8kePi#-UeG6~33;6GMf77@85Os_%-o@W&J}BSw*W3$tKn-7^|A8HU#c=TlpdY7(ub^{&oMByS zbcnxbI67M9BLwIz<5O-+NZ`%!L93Pk;Qv4TBb%kk)K9aOxynK$;r;;j!{;d*ln*Lf zl#6i#{&M9CgXRlcTtLwQE|j`BU_ z2g(nXA1nV$`I+*+k=?JCat%%GNAjj2CwN5#uHKl-@b3gdQC8?D=~78q6? z?WwS?!f2ap@4)7tu^*DQ;Dl{bwxHZ`kb`c!n2HTNZr=s_(V9+Mu^IyVQnQdPo}*o^JW*f&iXC)x~>J#644PXDKllN=Ly zqT!WN#*c|8NH}OOs9VwGF7+-dJRoSUCY@s|?gae|>A;hy6L#!T?inm#5<~8}$iAO! zEY|rkM#8+O$UNP-_lCXbUR{r;#vY|{n9u9;iKBnTW-WKi<)(3TZ8=Ar2in^b@LCofW6RGt+VI%e%i`Nw zk{|xnuYLu*L*1%_LJz6$EwFk4OULb#+8zTK;ilJ4z6&iqF!GhXeya3QC!#FfJ3$AYQ=$hw z<4{VHlU;{`<~WrVfKc79ZtcSErw>CT z-i+(d5N+Uzrg_72Hjt1Xjbq}7nVAvM1jD;smnU=Xguf16mluHYD~Hfq>U#^!Hr3VZ z;-~r=pZp24m&EZWaNbEiU>w_2*)JZE_!-}4z%tR>qXRSMjq1Id<5g+S2z|YDyE$f~ zF1-6|RNsNe%w^w==egv&-iYeG!}qE41;M91t>^0=WRZhHBYJV$NJAo$*8ZJOeBu)p z82IZGDLAq&dk57AM>z;eF@u_txaDj|VQ|C*;INKr$b$x`JcUz9lmG&0&xux3k)x)D z>W*lKwKBJ?9dD%1k{KZyj9Nfc6a(iZiHv-q>9vlQ?Om{7?=ty2v7xtjLjtvedN-ui zIEtH3;JGM`--aUT&hQ}YDZ+Fco+`6@J2I2$D3op8;Xogro zm2sb5teqJ2^;JAwb)urrhc_pxo~{HIl4nRZC4IY+?Ls$#*c9*RH#^OPClv;;ZJ{{2a~3b0JExXU+JY#u8gX%++(OZph&Ww! ziQ-qDkY(Dd_rPF~rNppDzn;bSI16mh0gKGy8>mpUM zisYV9Z8W=h!R+El8?)QhDW#=9(K)AU&Ul%jEIO0TcBafsnH!c_WGKlvlUlk`b7P@#z{kA19XNq$_ge88&WF5E;UPr z{Du|2ErH+`6k3MJDmQV`nGINNNdSZmhr*QXTH@o#Mg+zs4G-->VFwmzIADnY1{mgX z<h8LP%j692r@a->aDkC)K~xW_+siHxW!&ZT_uhWnKw9%+xM})nVqW>5T4xL!Map$d8A{Ho3gPle zs&b-S3UR&9&humk1t9sWP>@Kej8(>Flop3`3%7s~5%EWBfCmT;8eCw|EWYU z#joYh#+^G~=l?Oc#4}r9w|)pK!w`}xMw~Sbs0M}qsCpFSFVe>^Sm&IseqlrXC>PaX z!l%gI?4m#MAC%D1-p1-m^@f>4Lo;s} zYOb%Y^dfUG5<0q7Z*}zzB_N``zUPJ;m$i4Iwq_`_dC848%xn}dS60Wj@9eCt?cBLN zo>WW9nvn_~$>5vI5KaQzZ$JH?sCWN!)VnI9{a_)fH`xEMk2uhjw41txxc!{=TI8HU zA}ud& zZL!*QQ(Ng%x;u*G)rKBVV{ux;3>*08CDqj>_|Z=4Z_;=@%~bv|KS&SjKNv5`s-kXH ze+@neDdiliCoNSf^FTFNVEQH_C*mLb=Gf#@h z;>Fs9&G-kDPLG}by?Va-TP2G8g^D1%vN#e#mh(8Qa^%-`BKE32(KAO-RqFb_M4mu( zEh-vL4+#huz9&J1K_3%Wg)1t<$j`p?k{O|Jz!T8E;4djGsTKC6+h#PQ_E1oKTzlB& z{d{3a*j9@V*z!MLnD4P|7V3|~#o@{V|B=GN)_73+lE1dZ>-kz`aX20lmD=Mrhc{H@ zaGw+lY|i}rd|#gPr?3vdEp^J3YLB`L_M!7Bcp>5~!9*k&5p{Du^|yuE55$srpA>sK zHQFc$Wu7vk7OOL%bDU3k?07cOfd3+i2;oleZ{{-)U%D>UB0qc7wd^|hm4dabPu zJKClH@{1+(`(M!R!)ZQ&e^&?o6#kA_9n6MDbp?Yz}0wbVQ35M+gH7r&YcQtU4$+{TS zZK4<9i@1mbChu*h+AMRbnR1bXK%YqRt&lvp$pEc7Z3qCwiVEKvp~Qa_pKNNrVx zRA}PrNR7`8bb^h3?a!sLSgCN8HG4g=kiVcNQsIC6D@7wUkx)@yWdkn6*s3FuY9w6D zgRUqFMXF1G_)uflw-W{$N5dC5OvlzylX-&nI~;p&>u zb$zvS6Sv&5>B_ul-N9(6vZ}mRy>G_6RV(MVoEv>%($<+!Lo+h ziWx+cYcZBLcr0t=SgPyNZ z7e^ZLdRZ<9B@b0>MY!%NSw4DUMB1Q;$2P_)swzX#gLTooD>vPOMY*=`x=_vPg^Si; z5EZozWx=Jrug=;szi89$;e~^ByEeWMJ-21<%2o5oAn+*vS6v_;V;hEVy~2lu6^kry z__3)#2yR?$paLOc3l&m2r>L+vR9IG2hMdSnF4zwuN~w<};}%Dv4ldy%u~rvoH@doG zjfq5KtlK4S(CSL6s!H%9dZSH=#-_fe=nDQDpAjxcK+iv*rY~8KoaG2kryM&cx0_NV zqH2>LNX%%#=7H`*pkfoQd;EcFGClEx_N&2NwlBAhK5ko0KY+gj@c&VV&-+n~4ccNG z_QjNO11|`S#O(x5B1Jn1U_$lWTx7c8NSE$B*wD+4C!P?i;)8>`+H9-aM%UOrLMg&9 zlAZv)*gue`|kl`=GZFTmSImllI)p6bE=q1`aqVh`d*$<1)Xl+^-!MPG} z-Z0@ny0gLIK<7xFAh+9Ig6Ml3p76H%#_;t${akcgb;ZJD46qSq3ce})iZt;xP ztTmf&sLyuL_&vSP>SRTM7p5p;^r3d-#SHd#1Yq-!?HP$tA7LS1ewDy5ewh${?F!@F zF7Ybv9M1377U*w?&Zl2jma7L~X%|zaFS-KZcf-mR0cq;e$Uw6!*S*lVSSgP71!%jS zz}n>U30D~QI4(uN1PWIouIQ1MezfgoPg!0;Q;~Q}t1fCPaFrI^wp>94@GpAHTzRTG zY)93=vciV|EfW`*O={TZu#upEi%?w)7p3^^&A=*6*-Bg@Q7j7B`e$94Tw*z6f(4*j zyyb6XOm@8VqvebUGWgn5Mg*0$#pz?9$)li2lQKV(nI+w?i7 zD@Jy@Vg!LEB}?Usv5 zfusm3U|GGVyleX=>7O8ieFl#ow|(<@5N}W%Ro+#1TRvBJKM#K6&-r<9F}0w(duVn1 zIKEelo+o)4R5mN`ih4_1QO|AZ^Q>+0y=^1fk}n+3aKD-G@eISa$!Byp*!LP(n3xsQ0hM2{4b@d`^c;PmY6&=b4hzY$Hj9MH2M4 z^iwEDVDyyU8;=A1p)EBBooVcnXN*x0(`2Wg@dS<2U>(U{I*csyf#>9WWTi9BTsnsQ zJmIF(+2AYc+d6-E&YZur@#mO7exAsz&x;N>=X~??ghvkg8XS_2J=2BxgqlLPF?|jB zG3JE0%A{acx)4;NjeIgiZ;&$Q^9FS!#{z$#01^TJH2&84gL*K=km|+2O0v2^tCZZD zBglfAWcyt7VmhIfK`%qDB%ZnmGWZHd^9adHrpl3;C}*}E~`lt_?F5I+glg$Bn% zIq5QC;Wg$o;|ZE0JS7D=3-4w;$Lx`vz9x-L-D6dahFmayS>z4Rf=TdC=kxTrBc3v7 zKo~R5&okCp=GFqhfqW6P#JaEWGCLN9EO)6%^pPr%~QXGr%g60@<&gUIj zo|kfA!GZ1o@O)Aa)FOqCNhkC(J-Lv$ota#iZHc3D(3)|~iL2!4GnEUo|BN}a>f;oR z@H9z9!cX& z(l$lmjJC9jPdHxc*%-5wdt>b|`A8Sb$#6( z@*bh~dHX}Opy?ijGvZk*y-YI&lCS=J`cfR+%3=RxKj^?#8_JC{iN2g?0s2AVd6#tf`1eAN3C>P z(fB1B^0;)tIMcR7Ysgd@u5@3|q`1-ZxZd^gS_D9!Gb;~UM$4R;d(JFRO1h-@SfA%~ zo}=f-%`@7_H7sL1=4hzJxREes&r6QY+1EH8L0@OYBis(Z%=tFQH93EATb8T|=gi>F zaU-QUGhi^7-1A{+tGD6?6Yv?eu*`_$QbQl&v*Si>^LLicPIwJHlV>7 z=?reiqtj)=9GeACk_QXzEqLnsW!;xc|0zc4r2vQbkDcam*D8tF+ zB@Iprg2ZRiIil8Svuu$$fWZGW)sxRP!AYB`ad2q5rXnu}q>OQ;(;Ij(i2!nHxTQ(K zINV6JOcl3`^((dEHTV*^0UoQF_ZcQ2W4x}cwgZ9+Xm@5{N7S>vHzmlB!Zc2i>P&(s zKQFEKaxYACO1_2Kar-*{M*o&3$Jh=Vc8D%Z%J}CbX$(DQu4CqtjJxUMHOx>0uF&_y zryW?K^J1n3JbW6Ff~&_24Xsn?+p60kvDn1Hs_Tb)TIL+0ch(zHx8FVvQLmg7xt%j@8T<272R#%m~TrWr6d z#BnklQc{_Y1Fv_J;*c(7nK&3?ntlCEqdO>(dn|J80X=irPT3%hhnAXE2~Xz-U4DgS z%}BN71$zShnWCQ5pMZ(!&n;6~o+mUW;IVWH8~PTFIRa2pj0V#c47QHR;lB#4%<4dhi#-^3^uY|)Y zWvY0kuUiJRG^zuh&QDX|10JK!UFnp|gb8Gcw{q@*tsG^AnvIHCU=w)#ER6TRIC~|C z24~2%7Oarf=BKBOevEl~ULF!>wfVC@&s58y$BY)~z0f##5tqc#`x4UT(QO8!B~dqp z8#g$EzR*riZVsJk^p*`zw3T?~r9KX3EpJ48I^tthn@;)gZ1Z6@zQgZ&j zz|!Y*0-a&Zk%3uu>`XcVKglfypP1`fO0qMkq)QX&nKPs>ghLKw0{I~PbMYD4L&@OZ zq%4t^QqG3S8e6{vTn1YYU=gyWIx-4yu4fRr7Y zsWVOUVzRl;gkwUWnVxi>s5Ot#q7@7q!_eKB@+rZgky&Re6Aq?q3iKh23>uAxW*wa* z`P6V@tuw(GrP`S)euj)sjGwN8ra0y)!=!ng(9YobH27729nU3lwYAbSrIHMtB*v}P znRFy+mMUd3KFw@N{p+ns0!^J}k->CLn896^_7Z_fc{Ce^B^7i$04IGc=J<7+-k>bM zTDZxA%k%GtegqcM`=O7?LKEGtw_=hxw`pUN(=!DgB!~nlJ2Z2yQeKfs)}Tx{CIpMV z9lu{O#zn0&shrX$pbwyc)RWFR!ExYcyriah@BPzD60i41FG*PMuU;}?(i}{ICwLCC z@I;2K4ro$$yx)4s#20Vy|D-x1C(lviDe+3CmP+F}0}Ips$t{8C=&qlzRCo{BbGD9n}!?W%Lp49qoJYc@9}e)rq>uIk9W#zp#e1) zWGgLG=9fXwiFMU@m{w?v=M?8UJLhEKL$HrQ&otb!(34=&=+pTp3rw=Ar%X=+YPPXw z&Q)rp|T{1By?+Sd0L zJ0#`t8b1#7!(AEos>K^hm$D+cG?a&X)veL8AnsK=MN74cx}qy&iAGe#bJ47;vAi`eS+@x5+u;WuxOD%m z@`m-gOZS%;@9w+r(sguSz0qH?-*|WH{^ci69-(X2rA3z;uP0CLDkya!BkU356&EgW zZ~O|}8?OadP*yo)G%@b0BXtyK7Q_8#xYLF)hE&<9xUYU!)Z2e| z#dqKR?z?#K$mv^=17V4hhpK(yL>I>#yH;th2Exk+|cbfdSD!@X$bizk1iPef!q0Keli7uBN6)$+rH1)vNJw|GBGC z^Aderi2QJSlmJAi54l4X5$SfiV#r|C6|Q#`M`Ar{Lj+k;T+VPTFb5f|x+5{Ct6YTp zs2Brfyeh79A*CGhs5)J}eF>-dwR@);TIMb4DX$GUleJ})Lo0`R0z>ZjJnxC3*PZT? zkjWil$Qco?dltP`Vw)B&Ly8|5U8*GKq#mTmc|L~~3%HqM{j*6vG@yYM3F32y576wX!l{Q;< z&zhwJ1B(KIhxV;QvZIa?e_^!yB7J@(-a%y8Qu^YFzJ{I#A~ncK^bR2**R;@o>BQ2d zqN=JV-Zt3L*;7@yQ;gTgwFPv2qt48gg*udr`;y7eVu=kinH zZ7_5Xr)*601(44Xti>a32=_(e#n2hZ=*U@xuxfNiiHV zkvlaMP}O3uSM{h)x5tSuU+{V=J)V%SC|TaqI8a&M*jMS@yJG#mkhmeFUX!0+K^d6~ zyhS2h;B&buy%klyI=8np5(x&1U2YL5DDe0SJf-FN+Ly}nJs#BP4h_$06$8WN6>Td< z_O7|zkFg?=i_(hmK13rGE}9@nGBQ+h;!5)^>ehC9pm-p;U_p_uw&ntLraff$hFa&_QuAIE1%ryMCDa= zrKh>5q&U#r94IaewL5Rz=UL)II>X9NM4o%-OfLN30(l?&+F4Py0xDNaTCULw8it1QZqGxqR_=UT+{&=5!W$-GL%+NlC!x zEccXEU-)Q$XWlI5eNl8`Z!PEDMui0iIpBMHva-6iFI9{l2zQZ6rDhrQ`HHY7^k* zAx1gqY6v=P$dUi03!W<;5;Yh6u0Z?xcJac3B8Z}PVo_-9Dx$qog#s%5s8dpk+|)`i z<_Fu)K}z$!*&>#R#6Z|Wq@i?%{Vsp^x9)GR9$FtSF5dg_!+QsZTKfXU_ur2aIl)Wj zb~Mhc?rdFt;=A8{bJtak6}2@@i^ZodR)0@;Ar~t8h;S_w$fiK4^=^LznYwI2vi^fM z@sRfUouj+1`bxp&S3d3&Z(pEZGxnQ9W4DQWwLjdZUZY(s+6WH#{B#8MUA}?4mz88A zMQVEeJ>8Uq7A#N!uJ?yxHfZGvfe#z%ZM{%flD{M2ZQC{u&3bay&<3&NyYb43pI277 z;$<^d^u^!VF0|dh99fV|F53Fb-I}`Ho~*4+{_>YY^|hnB-YuEgSXSQGIJ4wk8b=w% zF@$mCBZnyNL7OAU=P@BcRZyI`@wV^#K63L5{vvJHokD28Q^nG;kBiS~@7|_fO(PMu z531L1*OvW1_TD{ClCv)K?x*fmU0q$>U0vPN)6>(_-P1igJ3H5&?!9I9lFeqb*=&;C zggNld{a+uEh z{Z-BEZkEK$=RNMp(^d7z_~Pg@+BHOQ13K$O@@jWxwX4@Z zFl%V*x3AwWFpT=rJ!CQkB7gQ&U+b)Yu}|!--x{tzfBktov>WLc=tIhRWm=A_v5C>K z^$%!Q&yIdidsut;@lQ+NNuIN1l@uIC<+S?7^7{YKrkB-o*5A8Bd#mbq{%ii*KH9Pv_xBif!KmMs(f0ga}?)~+fq}=gK5biOqy5ZV)v{TpL;~b3 z9(>#AkJaqk9;8D~{@S|rYd4#a1{c(+x*)D$zc_^8OrSzV{nf)Se8Cy@oiD%i->6kR z@uhQp&#Yfj-pq`4#ppBU;PFqLt>YTTnpwxl5Ug_jx9Zxi&HX#mKEEgJbD0TBJ32G7 z{tKH0oa=9%FA+aYX}jv{zqR=|WB-)(OXr%hS4i5g-(A1{oyY&gWVJtC{hI|mP5qmX zZ`6OSQI|bIr|G(cn&kitvIOZv4a^G-03ndj0+ohViHBBCP-Jq$s+0$UHVINKPx0+_ zCFfSc`@u4A+~Oekw9>KzEiFj$@X)g0R_-LFi*U9DFY%LD*xl&0__E6H`N3#KYi|1QYmSH-?an>Yc zTf@xSIsvQAz%VUa*DX_3I@NqGh;x>06D~5g#^Cq8Zg)1=cc9vgqNq3*$8(ixNuJjn zU6-;<-Ez zJupqf$t^c6e{8#+5A*WZ>CAamqvlbxVY;4W8MxG7?2{E9aSO;v~Xv7jmR3a=V zBb<(PG9T=AtIbqmyf-I7LZ!((Viq+R{ynO{OQm$JOeCNJWUkCEzUg!t3=_In=6RAM zncB;%N#?c%XDZ+GDqe|)_EM`H7!ZQc7qUFkN10{G{FK^Q8eKWasz_!Zcym=6nN-3I z7UFuqWKJ6rLs-h3?yV;2G=U-)R5wMw$=gWIjk01$ZWdp%EV~rEN8@$16?s5jcuhZV zHLXa?rG2s@IHnbDRF^bVk~UUf(qt(X5f_iNh6B^F4GBxGh(T_zpEb=K^v_(m z97RFdh2YhLKoJdh+;Cm?Sg=e}XEx_pn=-3abTp@|RIhWY^PB0vzE`o)pg&A z>&n-(PCqzQuneaZg;to&ngvA!-Y}PQC?}h(Ghbll`8SSI9d?D<7cC!{~?$8qQghFHty za<-Gt8+tLw?%D0mmZGjlCYG9m$T45_Jik?}=bWN$Sah70w}~h2`wf^P5lSGFRQea{ z6sk1OGs}(>6!UxLb}7#RCWTc%iZTPb#n5GG1=>QfmN#4{q|Ya7rBdkUXpf)Ezx<(GFTXEv$_ zjIT|P@&+}_X)*_lY^5FPP#;H&wq2NsoC>WpjNKHXN33z%EELD89b2myMngABrD`<{ zDbg`2M$yZ9hYr-TdB5J!vST$SP~G=!*;>cXM!KU^(Q~PX5YC)AQQqqVVsvQ3T(ejT z4X@(ZGJSN*vuwb3)+lFvnS;s-)Jt_VhvdX}2$#+>6=*Hq;waQZF9?M2nQ!gH-c#Gt` z>M|h7H(jI&bQwYlfQ;muBBTUTh`i`*4b;OuI59zL>B^J*-JUcc&6Qp!Ygm(H8YDN< zdXf`17&==+3_G4YI4Mh*YSWruYS3*}D?xpxiX7LqicD(e_a^dlEZuT!kY5wzmk+Cj z(9c&Hk7@|=qm$iS4sP2G!a_GJGIb@EHgiKi5BGsT9m3Uu{DQpcgZ)g)1N#N6&=mDW zd8)7-KS6z5 z1os7JQJ=;Fk6f39OyJxU`FY^Jv9V3$*Kk;xhcg8SG$ zqH3Cg{7R(+`$3XgRq*%usE;+hf%;sx+iZIMldYCEKAX$2LW^f{pY-(x_7gI}c2eZW zihT;)_Z@KG4dA|enV@jF=}>|?64;C;VkMa#$xk{(~fV%vtC->@<5&| zvm%nYH>u)bf&*Dh+z_msG{Tw}d?@Ry5?`d!G*BdE!g2~SOO}I%#AUN23!KENOKKes zD0e|4lh&381YgdZQZNrlgUQ7@kj!b~MorSRBx$3!lC~yArt7@2-0Nz`1?@rIS(+Vs zuJ3~MvQ3s7G*Ze-oOqk;EqH3{0whv(xxO9v)`#{}&m`*{-D%jYk^dv1dF zOw)sc489BL%@j)s(&H63k=|6H;X4IEdLZ|}DHcF_LEeM3;ByY|0sJGg4956RVLc%r z4I8rc>ChfD%Ld*<#`B*;e39?8AON0(_`)quMtne$3o&1Ju?ehl_4Cl4Wu1@rQYyb# zG!SIEPeOa3#;3-6o)ucP3z1%jhc7^SYsJa=#KCUi0*yW_1O&%QWwW#%|rUY*K3JM+BE3o0 zFN(KkekAi_nV-&lAoDAkU(ft*=Jzvyl=%Yu<6mU{I`g-gf607{80a>Fz=~p5Q?->{ zFL$X+)#d6+bzI$~PN`?JyTpG{->Y7)-lE>B-l5*9eq8;8`YH9Z>gUyeQy)>ks{XtB zE%izD8TDE9dG)92f2zMy|4aRy`UmyT>R;8j)jBhVT{#q+WcOB<5e2gK39{$PzjJM# ze}A~zeNz6XxVF(nZ){=T?)@jvOKDw|vb3$YI@qY|X|JEIt|z@CZPd?y2i{qyT^n_s z?S~7mFMQ@n?=AgC8D;)2Oqa6HOBb0dKpVD)X8^G0o;dqfn@?&EJhT*t|@S`kx#-7TTvB=d>L@#aZ@Q&$6`B8h_SPoN1^3 zt>c)RU7P>T{R^K*S-}3?>HqLQd9MFos!Lr^PAR>%lP$A&=MwGOs0-+o_QQqO8_%To zf#DnPdG4Ar1g>3}E@hvWjurwP)exGQdLh8iJ#lsfHlHYP@BIIBP_w-9AIT&6|D*ZT zHFJx7!|0pt1;^3nQ!u9V3ywdSLXpeU!;>NA23-0FAeF{WVEP5eA4#9t$hH1Y8zmpy z1ZlQ<>k({9)$LGhfR5P3G~;2%&?eJT{0b zs#w)jL$ws9O;4hbSYa1ZF&AFj=TlJUC^OdLlPI;b*Z&S>mZ+j-Z@!+8MT1ScPl%COJDw)*8~n{4>;=|KXayw zEb9R@C_caJH6J{%_`28mJkQ^U-~5$(?x|UZ@qlc`EeA4u;(^%*{`i3|zebav)|^sH8|E{waU4CUUWt|I-FG=U%tJ1?L z*mv161KVKz7{W>2$ez1of*OcWje=9E9H&$hIWiQPbd z1tA;%A_PQom>#gwNQ8o7Qw@WRD3CAeJS3gAmB(sxI;Y%K@1?B0Z#^$nhwS zi$oZiWI-)9K>972_h^)wl!=ZGZCqL|=0KYQc`+O+a}VL5h*qgRF>R?tNhM6PN<7J2 zlfvX|IKVuWbLJ{Z*omQXY@^cSNhu@M1@^jI#XKhYCL+;%vTd`-JS#GDH-6HF0m5xs zVDo}f>@c~X2wl-SEUzTBt;$PE_BKlGUYo{mlrD8_7(G>z$5#eCFU3d)NN2~%F?|6V zEq8~T4Um4K2c-&bB^_8<<_d`~CUAmWz%Uv$QVn>iy(DN6*=s7#J@>xJ-LtRUmdo^i z!}vm4FLGq5S4%6WAu(rZ7trH~YFoXfR`R4M?k%YEMDQ$KAYCF|w<^sQn?w0cT1xV8 zIhj8U1r3&Q*s3KxkD+TswE&A`c+ZY^T18Yz`dJ#5ev^*bXpfz~IjhyBi zu>*iSdn{IE|8fJ(r(+dFh87l5%_vDggfM4BC1_TW1G0C#>1Zv@%PIq_f@W4!+%`H1 zd4QcWQPCq><`Vg95skf$Ii%tHqCHU#nm82vqF#|=5ua8<6oQ^sL$89~mD9XU8Ij|$ z-=T`4tffMGODG!!io_M6HM-gYvI8U*b}2v|04i zd0nBy!+1c%+?r+uC`53MKm+G#ao(j$3r7l(fq1UGI-Mcf88mOeF;TU!i=Gux8VzSZ zZ>R&u){J~$*qtmdBD;Yi40X(x^HlF7@cBPvu#wCMyStPXfEj(dE8Wb(a+K}o}?x-8zIwnG~LOY#bQ`c z1vy=~ca>jXsNG23QEClnkJ335b^1(QHFyb96h!^Rm>z5GjXd z8Coc_O|Eg9pnCL9K68lIazt%fpsNz;I}?|&VDmvCuuV`U`gAEqV?1p?#|tvFl*7)> zj3FP74i2SMX$K9`^E6COq3T47tsKJ$?3`x#DEt@^(oyi+Y%Q5IP@06502RoOLi3wv z@K`4DZc4O(;^`sX$%hx!X;!)>jw4`_npfDbxN9khObyn>4?qO;E5qt~=t%-gQKm;<;T4=$r zXiPz2qND=%$rmV=m@{H#(iT0L-3Gj2>o4YySY~&*pn#qfgPsc*&J8SRxd)sd43|M| z!vqwIL2Pm%_fjMwC2+Nxs?tQA))KrXU|*DSe5IC^W%!cim`4VJx+Ed76iw>yQ!7u& z1JVrn0*5)3LIj2NFlm+KcB>8a?)3rva!VS`TMHiLZRE`2(viuyNl$LHT54Po%$)Q;uP8^* zX42IVylLN~?M!eiV|`wirK2OA+3t1AbUY?Jedq${hvfN`EaI0}qdSDMkHga>#ATVSQPD#D#IElG9!?TLEfF4TTH|-`VOxl?qr0c1ntlgurA$Jv=Vgzmp z=wcWXw%|&YWu>t+#4e82;9@|R^|DTYT>^_2%c5+$q%;o*i_L*)XEFH!ZlfAZma8R8 zj3uRfO2vi2pTsN(3?G9pSl}#afra27!`=e60G0~s_KGT? zg`g&1k2zv!qlLciqU!X39szx!+Xbu?zyo3}VHlonL04eJ0tlf20C(yV!z&<4!%cvh zKoCy+j?IgLrEIV$Kn7sWqnzp}O$8`{+y%gx9&E-~@}%Ji02DCl*!isH=3^~eay8M%<*L^zQk4!ywszEA{ER|&9};lulcCVoveY# z1*gy|W-)IkABKwCV(cZf9%*1<3!Ec`@nZ|--WUcqrXjSRkIu`oI1(%-r6=WcB1nkr zPzJuF+7L?=Vt{~|&q7)VVoydi#hFPvNs`LIl~5K835Y9MO$>cLX^Gt5K*`C=&|W69 zp;%ndwAn1yRy18RvO*5?s7x9v)4};*etAI(;6-(;?jUr8N}wT3GTXLtS=&nK2^#MU z#)iIOZZRLEtx}jL&+)>5+#o zzx?4FPrU!ciT98G;mF(G_N-_8%+DOyII5G6KmP4+kN!cGRJ8t*$45ENwVwLN$40^9 zqpxZ`>P64ZUeVWTug638K<4VqGcwnalFAlWFnAvf6XrCp;9~^Q%!9*(cSE#d>!pgE z3J(i*OQ5tcc}XI6W69HLh6-IVuF$z^*W#6g^6E04{>Wtl7Jn@na|xH+-k?P5;5+Mi5`hVqj5XoB|b7}};{P7llR3Wh^M zjF3yP@X&71abmzuCQ#tCS)Nt}b5(f<7BwIHu-JIdvTwAiRn6Po>O@-ej`+ani=#hZ zYxW1RR$T6Pti_gNEo#yJwZI6s4_aDtFo;L5Q{m_zwQKo*Z-l?E7C4RvJheiMLGYL| zj4&{)Xttr%8{J19=`=W*ts0uRPq8IH2k*GzJvB|M&ot`QcYpI?rH#Jx@Hcr=arBvH zUi>t3x{+DT?8{t|xf~z26U>iWGPh&7ad+l>GWTM$@g^kdKazPj)*Al}dyS7}ekb$C znJ*$${QJx|U=&>VsR&v6oLW{p)gE;jZog~%;rO8u zrq9ceB-ksxvboZ4_bO_o$4RffVng4>6}&=v@axzh#})Hz3ca2rl}kwy6ZOJeNz&PD z33;;V_yqw8C50ORMPlPD#$Ub4YJWk+c&nWA4_iGi8)JT6&V(F{Ss@Tt8*-JWDKpJE zeSXgKOa1Obr#mYvow3fLKEJASXk}%(+ELS;+o!9eALicj^jN3U>B~VKI<&IfP3|Vg z*Dy4f2~ZyW^5)r&LcKb%yl|jk?4N(VF_u-MD>hP!MsrG%{QpsysF0=AIzP`w(%DQq zCOhr@QU8Ud)aeYN{of^yiUj;?3t$rlusR zTEA*?|NO$#WV5-ju%s=wr&e-$w{F%tbIrz9sI6+rsjfCRv&=7^%_1XpUM@j^RrOPo zYN~m1syQ_^pJrVSD9sq}%uO}sa)wqd2|-X@J)7;uq`>9Cm>H+Q3-cwo;EB&_*Jw|m zON+rj+wii_;NpgL(sF8@lkkqn$cKXx$+9qndphr)Npt}9sk`qsUTu4(X}=ml6jZHu z_uUcEFkWS2Uv9k$Q@PP$^$G3d92W1t2l0dQ$PNt3(-BzsVc40+#IaYKxWNyto zmoaLAYyn0Sh*Fb77pAuy;VeDqcU9DD_2H%9|KY9%m|nvFf`XFkAzr&Z(uY9bc59g2 z2g@h<)AV7KJZ2`@SC-XRiWTR|{>~FnPR%*b9q;W|@7s3q{?Qo^M(Yd`r|cqP2;cov z7h%W_xxU2rlgco=v|UuecS0DII+`I+nNwpz44`e&)Pp4Wg)i7rqp3q zdD%nhDP@p?m#nAMB)=D>2`@_SK8FOlA@fH3T|dKE%rcpQ>Ee@u5wEbUJ#6__dv+Q1 ztjO1eYT>^DGpX*K@%@sOt3^g>3a2D3XYAW+jtBGU|?+TH-GrS-JK)-xQWz7Vr^wIzsGoK#OG*ax_BFB01Ojqihjn? zeRZoPL&d6*1Pq)LH&T4#P}(wF9~eE}S9cC~ZZXu1_7OF+^`af>dE4hZ3#ZmU5~@@4 zYJ2yRk067D4p7tUVbmkB4 z-lEbdZ&hWqDG20SAwf=B*xH#-fsUqlDSsIjO znJ_$HHNI`0w5=s8kN$26v`>-LuvoU1%5`Neare>39$kM#yLSDNpG#zckm152@RR;} z@L`rG0RfUkD>;!1Xd+EJ&1I4ijv~3A`~Z1E$zZ_qCZ!>UO+MVvv9eU8)wym~C-Fs7f$9E3PyOy&i|Fv+C{MKF^bfXSQ+g&yxoygACE%nngQ0r6vlI(wB8J=hwRU2^FWc&T`{;HL5hW&E?v79I2(ImxTcq zkz-BQQlRHWydwp7c8S@&yPp>8FUy6%Z*C0a$<68)y#G5vXX2t zPjF#+ZECtU?pgEW?HvxH8i1Sx8Q9JH{V?%ewy6+i#((TkFctjJSe@w4x~=e9R!KNP<6Id{I>)r+qG z^RKw)r$?XU0=m>itp0N^zvpM%@SW66|32{z?RM>pnK>>9Wk9bo*^{nfx?6TP=~a%+7>Gvv_KIHB#YqmrqvXmLG*~vs%Ju%&YXPhwu9NsPq!; zi&x)PUh6t$qj2!j?A3>LZF>-|YrZf@aCuZ9zI<=Db=`UkR(uRRC<@^}NI2?p2S>@8AE3;WRC+=y)eA zV_-NlmbP2lnE+#%cJlzTZhcYPe{%omQ@oPAV zdeO&%*lHH7M)SdH-7scqaow8v=xp6+&DMbKdgeiJ%x{BZa>OwpT)=dp-zpbmipmTn zPC%FOD9{6P-L(?&c%eUlb1cB{sKdM0w82&V{#AqB*T4FD?ev*LYu&}}?)%m5Mq~8x zc<;<$Ftc~3Hs2i#y6b;9e`Npl*B&_h+lQcDwcXWDr@H=e$bA`yC$$3%^B-&nl-$!c zq*JSQ*6!DwW^?_qc(1g8mdwozws+S*H-BXBjo0r#@`=OCv}9+s+o`SpcI)sm?RX3Q z@jK`B$7&zsw)y_UC-=wT$^C)jH2tx9rI=A)xw>}4tFBjPZoh1;)9>t7+WmLItKN04 zM`rr;$mbT5b{zfm;r_vnwpQ(StLwkfIoJpHXEM9A>$JB@bP4dvywF|ZC>~7$3lqL; z4>JpbsHd*`rmMnn_g}x|)*|nl-$d7$3*2x0t2-V#>N(%^swMYZ-||#x%>CwLZVgfD zH^1o?$DL#?KJhQWr!Rt07pMh*#Cqdx%`M3bGl{hdU_xg8lmH2E{hE$unTeskxOeUi zi)-qmqi>GB*{X&_Fd20F5i8wSeIM6};-Eg;DuzVzP@jD7!rr|L@7-;7iq(a=1#jQ@ zYBuL8{G_ZZD8VRPywpJ=Jo>Y-v9W!?;cq|j&)QAemx(fie_D^%2?W!@ z#)H)YO|X{%jon?-h7FxGAte_0*LF>B@3nWAx0QEyz>1y15<))-$hQE*yu(dt>HjuqVu9Wa+c)g~nS3tcmGB+HyIE`xo>q z?@);_F__l}L%h_Wwb%5O<%XW(Wnvd-5M_WyP&MO*Kx3FVtTC`_31^WWmqF;@M%>r( zKu)A{$^BK6(T1c)e`A+{tE(}vwvT#;`p{YhT6d#~TDdtlIXQO)Wg>gXu_(H9Xm=ZrGS1kH0)4h6Q%|LJVD z*Kx|-*H6whn{(=?o8@w|d~<%xw2K9lE~rIBVvEF>@@JxEJ8MPbrm{;VBo-(U%E}5n zMD|`ew>H+O=uT|u{%rMNGbf(Qx}NJ7OXF=1pK+oS)EzrJ7l!3=Lo2xi7!r}MUf4qP zfl5Aa#@^cy`I~Qzkb-OOGrH4e;CgG%3PaTBrf-hj6en#IP4Qv*kgh#@OP)HoPA+$58q5y-$L5oS6kk)Zx zr2-93iMA|qnKa;E0Yd`q(nCMVPZJG7+G_2A8Rylkh zPz~9pr>-{~*ck>IgAso*2yg_1F5$=_uq4D46I0p_mj=IV+ywNel5XN(#E5GXJu&xkz zzw?Q=YmEfA370JhoiIQ20z+Xg=!_NoPhMhJG7zX$1?KP3^XT(rtmu5vGY?jWlbVp- zT%-I3IuE<6-K7O{4=a6Al(4H^6*p!G*|j^4v}&xXcT~Hz>P%dZ?lQEZM;Ijsz7$5l zvgV=KtfL5Z<9cv{bz>~gW8D))Xh5{sT25F6--tY?2ItUn?hbKq*0lF5)tjZbQf)Ni z^5eU@YqQOA{36GHDR71m3Id-%XvMHbQPATKmNsFHa0C2Xa)IX6u^M%>mvJod+2902k9cE| z)Qt_K15_h|T2eR7O`b5qdc7EEQH`7d6ot@nnan|8$Nk`umQeVa1cwazM6D$Jg34=4 zve;MY!agv5dQi6epmv#0d(_fks2+LjQCQEzYAmeStBx?5WH3mx}rWno38u z^$g~J645gm#YDn{x-3}(iCspK5n3H+mlI?D*cIzc#Oo6W_Vt@)N%AR{G%i)B{CL1PTqFby6!QoYyY3Do~7PoDc?MfDNBwzV8!!56Wq!YzZ{O{F3f(V_0Kea(U9VlAnc|`+P#Nun zbU_beM1U&+7(~FfN)RHZtakb5&77_Z`CcA-GT;7OUY{_6D?_y_Jeo5mL2dAOKA!xc zuWi?gcL&<&u`q8Z`%NvIJBr^KR$=1*#HUABl0AWp#Jf*R;{ z%btoz5q>4ITB4DGB@@YztV3zVpw*RddF4pEGPr%eSMm{7O!z?@I61qjvRey&`MLhM zQeEH5`(>2Aej&mLZz^x)LE30z&0xy%qn_thN`*S3qZg0|SMsiB?)*N>ebcR||6Q<) zwhLve)_%cdj&;vKw6vO5G1cc?=gZk*He1}GTUi%r5A;A5cs(JJSRyswzp)tPF?-8Z z$Dw2zwJ|NHf{9tg-Hob`_^_VM(}ZeGiW3upacm*W*(?-JmVibRLEy!4)_8&S`!-5n ztP%1(P`$e19`h!&$3l0g{%+-YcNcuW;P0`FtipoO!X$vw45vk6L})RSID`9{&kw*S ztU(=qCi73ohUt2JoGWd?+FX*5UW4uBDw&!LcV3g&3@gxwNy(G&+Dsq$QtYZJGB@muFt}wtC$>nFSlg%c zNRkAK;tQ=p%S4(iiNet^37IiGJZZ|hO_UuJdSI6#bPdYOS;c!Lp&j>vz$_x*R88=cWsO%+qpcZ8A3SF5Roh z0JBUpa8z6}T`YR67>YzJeBA69H24HBX%{AWIlYBtrOY%_X zN>;gU-5vdQDqq^A-H1GAtH`P0TL(SZLPXL60g&)M-7$(wm3C3<1LN0!*DcSxe$JWy z?qB~!pZLUX43$=0FZ=df!QbZ>%TKBg*3axc zbT^YlGp@OW2?lkFt~6I}H|+Ilnbr>_D=x9n~&0maxyV$o)&K$!(b7s?_N=>uyKevGvw zbYUW>11e8Q;1wQDtRz@WtWUmO^_93}cs(q3)KyG^qf6Ky8%tO6bCeaLFD*e&AHhxS ztm5TMyN)ye%C11VY+RabTr}Az#om-U=G3C?B3nLT7_|e2aR7?hFizAUfe#!&zFhT- z#-@<(g~xVV1kZJvyBp0SL3I5fimS1_FW@ZmeBSpI^1eOD7%s^iO6&lx#u5Mt2%xFI zV6^(J)vekT*r-JWQ+op8a9n|h0ZGCRuPiSO`zu3`h7dNwha+r#9yvO+AO6??eS z8xnC-6t4F$`+?EQ7=6?;UnUn!<_53M32PU?ts#j}+PmYUo#Q{&JJ@VCpKsiA#me;` znZ5e9>&us^U*;x%56hF9{V>l_m^`g(qff%E$VVq;M3RkL-*@U%?zt~LeL6Zd{kg{1 zKmF=F^^`_^2$Ww;}5{GA74F7<>MiFba?iC+;I2 z6~V0v7ZCx_Fxmy!QsP?eF6{Q)*fcw;*pURKUnDsyuG=YgME?+Hv%3nrFmW`-9p^rd zruq=X=6#M3{g$z_xSQZ%oN3*#<2Xe1vy9zonrC&wPI@!VR&~5i*fNaRb9RS2QN(-R zeE_TvdA$DMDUn33iEV|&Vgn{5_MF4SK|(Y`srS@HqHjoyWW~8cdq(i^ zbAl*;=3&h3?eTq+%kXMewAhS;cxq|)T(EWbQiQQucBQd*oT0tr%ma=e64m#CGhw*1 zQxAeg{~Iwp%k1vmv)>5jgP`8o8HmjleAz?V1axU0?b>!mE5TDlWtE;CtQMvN*%UxH zZ=qcf!3`>LNhlmpA_)Uj2%t}G;!U?5+VfoXM)@86t5d2)knx1EX&0<+HhAm7xrGDU z7VFVpN5qKM-v8#=L$4kkxcyDDhhC$8`DV@Ux9%nuT(x+2cYmh_(cA5=|H(5KYue)6 zfk&e{Mwt-}6S?FQA0ZA(U7*GER#O%}{@_T4G!YGhPK_9z2KL5=u1uJrRI8EXGep(F z)&|1)z{Yc-9r2=rQG6>b+ks#aG2)4P?l{co`@Rz`BTwA9-HG6QgT;E$>OS{@Gbf%K zeK3k1jh?H8hvs0T^o363G&*x7JItHqU-%$ampDUscIoBCpLoH^ zx3@}L#>(ZfEhTK_rq|rEUzWbVsd3PhJpWXab6^S%d7duF;tOm5nbC|3l& z0>k4v_=UjaGAqH@=Q@$w8-kl%C*V4xr?@G2U|C{ zF4fewi{`d|En1ADnZ3?lr&}dtcca?nbni?Y5vgo$FA0u6-)hYRmFKvmU7{a*Bkei} zmvkx3+|UI9bdXCVB)Z_8fF3O1*;?tb+X^A}${deE%Rz{!<@+~nk9HNqlRQ_pi&4i2^= z6q}eHAFGzZmP%(G)hDNpw5BVNN2*&}MzP;+R7}0psJ8~)E#a2=xo$ZRAVy2h8p&+s zy?#QZ>hQnis9|89j-0g8PZon>EGL8ZGdtY;XwG*S~(Prj?S;L#{&MYp@bZ0%Ih?mo12b}1~ovMU4 zmUgHz^W;}DNY{(YgCWslA;g79Pe_lv5)*lx^IE-z{*oilESH~g#ja+_(4(#8>AA@! zG>(xQHi=U?S(uHKQHHeMGCRAaSg*TYw78A_v^eif5RQF{_}mrh{9WEVPn735?CMTu zUY2>2npHd0CF+Pep{@fNzFyt09#Zd9?^hpIzoGt6{SWo^Oa^^@A{`ck0YOMI>}5Q; zQMZ*MCnG!us(9f5R};EkraV3xB|c|vgL+c({tT6WI}Qe z>PWQI@Dn1#-AYPc;u;yDE+hzRQhjPFkfsu|eFfVBQD<}HH}!** zgF&Kzp(F)lKod-0lI$Y@HQR<7Sw%ovNvvL0mMwfTyTb}G>j(Wkq8=~zVYpUoIHJC2 zPcShg2P<2QVI&rmI7iq+`WSdzrUxd7UVbh|lA&83lG@vNq_SFG1wBa~3NC{?0h6s> zxh)lyf!P#N9wPE8O9N!_wtHmip)c)~8|JtA;*50@=-YowZMYnC}Xb?1(( zol|+wu0Z~KYR52#ne#Z#dm8HxM#56tKi{xd`k^Ylux5768bML>Vc7si>3$)s1T4$| zli1&cQGyt<90V8`?qlHW7O;87WsIe3YBRo9JTwG9_-2W}9ex1Z1!iDNo=1|eXYrb76s5gL=HUF{oI>wM z6AJ+fhXd3`Cx{*??sQPY#7s42#Db`Z)FyFwLrf{uow$#Q-pQI4lYKm>k>c@GS^T4D zhEcTBWO&dXbr~N17W5F78t`|v#26(thf5rOn6Oad^e03liOyG!UXsmTa`Y%d*pLks zs5d_gd$w|EIpBrx{4*>!?~&hy=fmF*=~Xu5LAW$XH@B?(?8OJ>A+?M1IkOlbZZF^_ zLEt@YPE7v2c^$_*h&ZHjxR1d3c_v*)7eVgQ=i(~pjtBZQU`8m`a*;51;^c^XpLjjc zNKF;A5Kst+-4d7N;<|i%U(GO$c^N-i07ZYHa-XRiA_v-Y7B7UqvK$UUY(kD z&^gp|T5RuiKX02M!nLecENWR1fLNdhUX=sFe9AIBmUFNNscaaBL0%{{+tn4XE8)PSw<}j89FCjv$SnjH37Z7_~+Jg&5tDdU>r_ z@^i(wSlrKGgkmxy4d(qfZ6dAg%^ggSZWm7>eQi zFg=N^mCciQ<3#=Bw;p};mC=NsQ;lfX!COa*y+)(gSSdFqdyR<)Be|%bnwgxOnP7jY z#~y7&Wxp6k6Sp3`^MOWha-tlaA;;Oj`$(JYF)^O_KkP;GEbVo|BOpBhzAh(3To3XS zwj6mDl28%6G3ZE`d-{qXCXsT{ei6AbE&r&C9^g4{G)8Rc(W?$!oy%3`58zQ|7xj|s z>rsB&A=AD&46K94uE@!jG5CiV#;y-f{LH17TJ=hOQoXX2^GbozPUSr+_Ap)&x|0b!Y#5a;l3R$p6_hOyFp}IFN|MNJW9^#p+fToEdqK-pp_zWt zh8r-v)8F^FZq;!aFN{89W-I$Dt^Bo@*}?2YzS1~Q8(wkof%p&drGW6zzKWahpUs!l zw@ge#rN-B9|FL7kysk>Yq&=#~zN@$AuL0sB0XC`&eo(2jW+y+N4JNh(mF&l@^3vYt z@B4=cIcw#s*~vJb%=#zF6OAo(6b$ed@Z7(|c#UPodHX9Ez=UW>Xcd&*iTpYtX4W7M z5=;qMBDz(qJfwplXOi24#2^k=Md$((8K$IiU;U&2x5d4;_64{fyu!WZ@c7!`@ZL*~ zdbh*}ZtD-WPV6_0g{=a+b4qJ%S?%Av7cJ710AB4@+ZcTak>29ITUT}*+Nb`O!qk@I z0!!8S!HZ{gBzd)i2ev$KI&{r^y||?)h=;vXa1(d(Z9^??1uH0by7>`p%kd~DtO)PC z6Z-FMvUU&=p#q*a7KrPhi#`|+10ifuL!!QDhlOmnW1&b}!1O!gLSZ}zmiAt{t5h~B zy`z161Z$<@Vqt5(5}LVkFx6=fjjj78umjKbZrnGcZZEdhX8K159bE6VVCKwKYg(fb z#A~(Mk@*|n?}tV2;M~p@yhv^DPGj-l!CKX*c8)SG>zP;6&Z{yHs5LD|Tj79K$}3Aq z-e{pnkwr1LhLz_M9BnG+L2`{&qSuEvLEj1ChmwME!B>NCOPqH_x(tAo6S)LL%W$La zYPa}F?iU!kkP6U7Uis-O0ZHe`ky@V|wWa1K}dfO83RRT0DSyC8P zwHF6Ve1#~*@^pEy6R(lw;ZE!$Ad+$XtqhnTtK@IlE%8Q1)*~_-=3Ri{hNMw=YpHG7 z*rhU&h$%rWZ6tcsA`=f$Wb&VgBV*b~n?*XgyiyVUK8CQIE>kI052w33KsCK3>5%0f zgDy^0(8!|aBbI5hClNnOkcCtS*T(BWy7E&g^8&oWK-vy{E#K8;6l0W~klccFR@&k_ zgD|0OQv}UiLM1>k^bSQJp_3y-Cb4&Bc`HN?Wtmx`#p*9p+Hh%z2QGf$(nI2*OohXh zMY%=A%Zbmj)VMlWLG`4bEqEJJ040}%C`hO=e!<|0s0{)RdO;QtxJ8IQ~g;tGloBn1J4*xDEBPi~u#MPB$21SC`+6$u3d^@j&6 z?zCyC*ocTi0pd^Yk|=(^xs66a{Ro9YIazkPAch7$sC-2U3Z*6F7F3*2azbQDPADl$ z99hN3o>xH@LRjMDMQIZ1A<|q`^2)$QHpd`7$NjuHl~JHHhsNb_5hhpy5?YGSIc7lg z_y7l2BNeMby%>PK6fmZdn4G)7>bvlA>uXfiTEQ2Usfh=s8CfM6j9+$JfHf-LS-B zIKfAx-|{1Xj7|`1=NZfpgqxN>;{9SV3E3)F8@V7S(YNiqO?Q8p%zNhbLqV2Zx0hqE;9{&j;t~= zZ1mP3W|p^D2&bmQB0j<#QQ!psz)P6%VFiMboiGwHjnEwO5JDuVxirT>;C*)*vUV9J zQGS6j>3?EMi#I={6`4}HvtmsP#f!YNKR{6&S>0YB;T=%*olV!)!UGKl2&g3K|X5c1xxe26^&5^pLXa4SX*Pk}b~zdXg)jZ!MdJ z1flB{3!Yafv4=#!b}i#w6v21D=fzc9RpUCeS)*}vTLRkPF^cVK zmtU@Hyq6VX=xapzi7$+IQAieYC54N9#I^#q>W+uO?BME`+Y72ClmoPUHER*Jj>;*UJ3C zqG3@IA|LKE67!c4D-oL_GH4O|DIm;Ot58r$^dR0B8x?{80J2a3Ls>nqecG6tGrHsEY<+CTQ9)U@_A&J)E8lAZgS}jocV@=wv!g!+p876Z7a4^-@H+4M zuZL`lP~5UPOCDRk(DetKc{Gwx$rfDkrP4BYVYB=<=nt~!8xx7+hAl@Q;yU44*k|i| z9)5m9ZEyTtA=~xCllt~MkBlB}G}zSdJAW^f63*X3zrC2ba&zW3Xrk0J6$}eOj+cxG z!o>8FaV3dAk!XoD3d({RBb*X7VLF0xB0@tb>l*l4B@3=r`bhN=DaYC@HjBkNr%CYv;L523fVRsSaREvj9+@N zF+1C6&Cb^6>JNURwdfFzY4`G=8;4;Ws_Ucv_Cbd%4;()9z@OEde)M&$xT>Lg@$BRq zCuR^>IPIw+F7-zaU8eSTwtuXU&4pnu`!%t8St zc3Ua`TZaD?Yw$#&A&^?UatL6Pyx%~^nSs;GL_ABtv$Ps#a6Ff%mse26*?3AUx2r41 z5<9LR-&Zfjhfd%21E-In`&VCIgLB_QC@-a2Mz_Jm+I!%CAAM}}XA^$kyzK{XyY14O z`(9rB63+4C9dy$&tEIz|_CQ;w?HM8}!3;DJmWZpuQ#9+UgNutD0#Zemwb-ow=%^`P z2kI~Ry??D%4ffxB^XqOtf~kf2i;HGwXLo6|ZPI8rW@cx<-WeNBjkU@B7h|1KcRaUZ z-u#A}ZaQ$|q8CW>5}&lISTCctYR|SC|!cyZ~-26CT~W zWPbjVg%_^XuRr)>2XEN{ z|1k{VGg#B5dqux6RV_lad4QfsPG}6Hx(@Eb%D7^a58I=`0MkyyBf>d?!2~0NH=Y1AI>O*oiLWPf0moJ zr7xMI-$+gkbIDYf2Q^eMyN)CO)0$g7x4xlp`L=f-G_Uu)9)B>8_a#R?n;tK`mUIG4 ztsFSMixsaeOhQd|$Cvk=+$X&CzdrE+?RtHRy%?T>2Y&|F8$mh>x$b~?wlw>wT&%| zPiK*9xkmUZpk8(2opv_7?)WP9JU1P5!BIIQpUcgLGZh5RS!4Fm9kpH6R`DG#Yi_-U zd1Gd706(mQA8hc$6kZ5xBu=q+4PG7C@S-_n(uxYRTwx2iWr%=#$SBy`ndI$PYW%p+eY(>Xqp=DD#XTj(*e$LkI2JiJ}&1 z@AAAq@QX!14uV&PTJZ38QIoHKNRplzs7FW|T??ReZ0GE?ebA0r>@H7)L-Yct8y>*N7r%wlR0&xzhZ7j8uA8z zuQ!4w*z2i3_t(EhlhqwQHvGQ27q3&nsdN!*`*)Glwx}5pw*j4@LC-4jx^`t)*`xIc zYNFoRyY#y6|Bd^vzqEJa*&lfP1J8aeo|q_aU6}jW+=6y!IQH@*x4iLZ0?o2XiJ1~(KS?Z=lD#r*ujs=z+sRGu zQ2w)TX9I}KA> zuuN}$`z_mtr*|(Eb+=UTwEXPgnKz$Un$EF4VeTWlU=xKYjO?u)Gj@#GHdN7Y>GZZk z%i>h53abUrEp|{AgtcAQt-gHcfxec#q>wWYnrdayaa>z#9XY%;x@?|(pu@;>2^f(Z zp1OT2JLTk>*B1#V@G|xaWaq%|-@mp}F4yL>)oT{A5%D$6rOTsjYtvoi3Qm?i`-;Kg zH<{J}a+l1*ceR`%K@pp+PNz{va%ZWNu0Go_vu>%#o@3SNFl*iH*wLT}4d@oLt*aY2 zglN~m&R7nl<7Tj~ ztWy8BHKItlOnPs4=3&dMu1<{WzBbm8&MVZj#zcEts8lzfx?zP^-C13_ zdR%u(MQ8lb)@$Qj2|0zAk1CT>GvzyO)y=+F$PQk*zv#H7+VX67l5M9Ea;)hSM+OnE zTXM(t*HFHVnNSB3hKq=YPCd+70y8t29jwQS5hnxWpVZ^HWLUN<$&;wMTK*`{4O_4ADg&)z=44WPHc(|y| zLZTZ6@nyj{It)236b%d8`9&N&n3`VIkKeOauR2D@>&z1xXm0jM1IAB7SP+QN2kU)c zJwfm=;q@^v!&=LNy#pYa}5HV+cj$@3cG`PG}EcC zVcDh4dQgl(ygY*$p@FU0Tj~FOK<^zyws--MbT!$aR3Mij?sBPQpI8plkRt-(P-_Cb zl4Q(62J^Z;1!*F4jE)9GAw7YKwqiL75UZ?dm?EL1;3CnK9KD*o-&u>f3a4rh|Nq^xif{FV>pj-qBYJ1r=d3^ueC4v(I*56tY@2 zbPcvW!x?CzV>BDSX6G;|FC3^%G!>h1KU*zbUyj(c6eZ}EZ5MaKrQ14&ne&<_w|pUo z+{2wXxumi)C&hi)n7(Z(-?@0(mSFUAd88tf?N&I=SR2)PRa3Bgb9k;l)Jgnci70!m`dH?^OeRc>f-rfINh#lC>$+r4rxFKy!|YUe66T_OC5)1& zmqb|3gv0|ubSw6`#en$`2~wIct?_WfD*}^@%?Z3*VGN)ML1|JV&}G}wGO?Go*6XDL zHoxL~M=ah#jY++2ad&_9p4EQ6j&EK#Hdz^OPR~tuDw8waEz?!g?&Naeb7!dQN8 z6+FDZ5sn}U!pThJf+F_Azefv#Fbs-e^X$Vsjqy5<%hSjs&pk{M;*=*pTom3{;G*~f zycsUBM-;7NL~KD`DDrr^rfns#A?eQqKCXgydns27`z!1krX=Thwu^ujnA^d)O~Lr$ zR?b7IUmqGiq2++LX`1?(Mi&WN)|xDZg|O6}ZzEC$NZf(YMK|2(8fwR0?I%b3g7SP2 z<7W8lLA;HV*N@(m3k$xwJBM2NnML1@gVB$eW9r4Z@QVjL-)d;Yx|nMrYGb?1K zESieNM&m1SfMMrouN20K!i|3YFN+jJgfV~gCc+Wj8iZWM)uPzs39b4G`lSHOy-8L) zcEs2~GOwV9T5RK;icDl833(($3}gYZ#L$QVGAC2fiTEkRD=haEGWVG1B+#u(t$744 z3GpOxz@Uzp%Q9zeOM7P7edRP38D=ydtINZQ>B-!I13{}j5gslzN~T$ypME8F8wy4Q zJF{(riD`m{=G64Wa9ekP{6AFp zRzCU3>p!WMM=w07-u&!e`uMMEXGV{_SKaur_c8xRkEDG0BG0~?*&4v{jAt_R7aX#( zCiJMHrm@$?Ih_6^I@_hcyledGt4AMVehe~Cyy_(GR*ziQ>i>?KIB=#J%pOyRt@!V6 z{rj4s2GxTnuRY+^uAeV9&W!%@e3?lPTk=a8bFl_X`2Pt}u`$s_C?>>!2u&^$O+53x z-!(0O=8zxxht9YMJ(Td9m(OwJa`derpC25R*v-yS zXs2LsB@worqm>=UckVo{?mhGzo=$@HA-$Q>>9p>3D=EVq3un!%B&aBn_v6YAisOYg#6?gGqVG;H*&gP6 z7mLULhp;z+Z{s}g{4s;U%wTX0fWZt1fFKBf014hC4vC~FiIOQwmSsz}WJx|^%eLgZ zj$=DMWIKnGx{h&#ZIM8m1nuDNeXWT=~k}+VxoPD+V%J# z@L$1;MGA?>lR!9N%y*ofR3HULrP&yoq@MLi3;;w@Jb&?LzWp;l^KCfdY_5Fkd9M1n%J<6kM%(>XUk3eky>dVL0Jk|HIX4bjpfT~ zH$g?mlCH&bDPyQIW=5wfP5kagECY5qGFk?&1+uG--D}(4ELAYuf-VDjL-$C(3@M?1 zA;%x|kPqbx;w1Lay!=YRuHXOUnLX}}wV6FLwHtMJ_5Ats?u|FPD=T-NIka${S8S!% z-LrnHHZxOe`DfkzZmZ}W>mD+y(OaJ1e6*y!AT%nr>LKR%&&U3|@LF!&?#;Ifv)Vi? zwhqJ_NY--;izE6RRe0x#k>ttnoVVxUo(*CYd+k1k3~|5H5c-m*7XcR-OkklK?fN_` z8HkLSLqOPC93d)7$;1ZE;O?Nm5xC@Fxo&7p$nRI;GK_ z7u@j%X(oDajwk~zrG9%%g{?KTfXl2fhfCWlWHcmn&?U*4L*w76iMdLciZxHj5y?3i zX)F(moC(sF21goBYFDZ>>I zHeK+CbxWNO|J~d1l&t!5h{&i(pY{PuKHD?jT$ZI~w^D;{G?m z*Q#4Qoiy}IH}LeFwz~?JgnB^O$5@2y8w=&et03`mHovzLJ8){*;&@HYI(c@r_>7#FU)nv zxgq4qr1b_XlJKlf;$xBPFU%9|9Y|0~*n#pwG~A81kk=YOTv9ZK8~DsToi_C>!`pcR`%s|x*8nP*qhk3?z2i*bz+!B;S zY8de)yjQR&4di*4X)+54*2eY2tN;{Fn#O7%E^9#&`dFd2h2$rGdi(*~OY&epd-3_Rd7p4U-Jn#45UDCs-KUDhZ4R#r7 z%J!HYG=uDi4M?VnXfgoK6}NFUOLUrUGtOCX}QC_NH{AYY}1MEH&PO?8}hNOS7A9OEF0 z4IlCaNqy@dO~Y-`T*3nvj%_!gb$G?`in@}z26qYX$K6Dg3L`%_Mb>(O%-A|7yofv! z+K`A4?AW@a9FmJ{f0gsF3vBNQFCanC>{Jbr9o5cobmg@04zeL9;>e~Qogm{c@54i}!7=vB2U|(in>1sO{12}pqb)5sN$pnW zaiZ*$R_adbI-E|}z1mf(cye5N?!rH@Y;D~^oh%2!Mp(XNTV6yxtPF*`8lPbkVj9qw z@w7{bn1oVE0KbGa5HlZjT@?!^yZJ{onX@|2wwy;w2+VrmUo;-(ij6A0FfE;IcJ>WXLM|ddg61k#! zcE*8-4?2^sQ6Y3(R=uHoN_?P{*JF5zg5y%$lvm+W{JYSK;6xh9qf`m+P_c)g#h?Qh zvjN(>W>FN1=Ct9VzcqCPXYUxC}n6r8DFW z)OA!(a#>1*35|2UyenH=Wvh{T64}oi8F4qmL&+1Wf6~UtWMv%qr=Dx;5VwFNNe zo<8%+zuLu|_8GTizVfnLEK+oZ&sY8e*TIpEzt}k9=_^S+{mM(p-!R+RVvuW__m!GF zT(*p%?4IR*f7jjSV!15(Eq3o4w3n1!Nde=U)&e3Jj!tbs90>g2XF-aqTcRrQAH_io zP<%=RI(qP|2#+)qE7Odw{g|`d&Q2Y~>!c`G5V71?h7`D@5g)3j3NaWGevk|SzW4xy zEiw9V1I_q8?Zqb!zxOJjX6E;5XT}yFiP>=>*pNb1T^z_w20kPyZU8wjSqx_=ThTH& z1XGU0u!!ECrjP$C5i^k4$b93#VXNZP1JAF5Oa_!|A14mh>yV-61bF-UEZ(@Ug zx%o2Bq`e(STE}dG)?ioahm&@$G*j}VpcCvoIoE2LNw+lTmGESm#kx5ol1@qdmCN8C zlvMoUIz!AX3-Tx=c_N0z$;vy6y}Ydup~Suz`pOu2F&pCfVVtE4=}GyDR)!x<`_$&& z5PkDOGi!dYodu(Qb~TgE1k^)n0_Cu$Q%t6#al%y+>9)NJ!?5lAfsw_8;d^d(onYjU$W?kh_Vw=LmwABKe8Ur?1D6FpjX*J~@>je|V?mZ{YWpj8sQ?4w& zNdS%h3o!tCYWHr(i^a0!Gi9t%$phBD`ps{?{`KGd(1$+!;ctF3AGbf8AJTtODolO^ z@n7nBY3XaenRF~I8@C@xrS)eMi5n?Sz`I28IsY%-=kM@$)LCH#ZH+|w8HHvgH5_1+ zDB>|;jV;U{;%PDjGFR%|>GR{SpIBQPf5UiN8y|mAHXj^sZ$4BW9~&;0tIc+0O&jSS zDev1?KGN4dKdwm&ZKC~9`{L&La=Cnj-?etXytY=Bh)w&|zj>7!7S!Kxh%TDOGj;;x z{zoHk1`$a)#s+PZsZ9V8&lm2`}3T0W>QO7S&Fy zIpQM_8t0GrCt#JUQPw{cS$IR<6elp*X1}(pHhFeWf9ljVvw!>Gxxk5A2gY|i+wYFY zyx!!bmo8;vPBNMvN!e~gH(rX>4sQO^o>JGbD#5-b-zmNP%co53>DI1YZ(cicXGvSS zV*2nC@2@QBk2uy;rIv~%8@cL{?5_|5SiEW8B0weCTt4iUdf)oYC-b*H^EXlFxomO7 zj0Ju+Zk{M4iC?#d3e_}=)DP&ukhLb4YC#L+Si3mX$}i++Hdhi!rw|)TgE(Vk%0bRH zCZ-F;*l*>X7@3a4R;*D-=7ZQx#>k!t<^tAxdw9B^_@2zZ&Vhqh%#S;HJ zZ)j99mOVCuGfZT$F#j!!lmq4olr5wnrqdWPt7GCDgE!P?={&4pQX;zF9Rt~AVRwxD z%Q0l07$t0vb^e5Kzdz|9VN&(Z(D1T!-gKH>H$KI_2Y!NmKkLl@*5SH*Hh%FGp-rRjyvaA$G4 z+Ai67JsU&e!nfHfANZdKO09Ha^Tkv(J4z5)%q*t^KVinB??_Dn3^)fUb8Pde^tE^H zt(azI?_EbTsDxPy^@h#(`3$QB4Janb>aZNTV4y&G<;!PH4x=<=Bv2$PTmQ zluEIYLS@*hN6Uf%NI+<<2Bxp|Q%E#mFquipli~NGq#X$|`KTQSSlDqs)!Qh?MW z@(9J`;uIez-~%Q{Swqq>Z0~d$^;(dY z@!@k^`#30ZDKk;Yc=@`QMUc>lz$7;~Qu$C0?!`ipHi&$21R3HK~S}?i-a~+S# zYK%7B-Y1ISng4A19Z_&hy}K8p*7SdA70gO10siuw8B8apob$~JP{D?|K%u*2syRPD z(~1Yy?@|(48?S2PyXU&8^;mpmTB}t%$F=?(?(XS_#_b{NkT#3CA>|edfz$73Q6=Ao zG2w#st(-d0ky3L&k+)cSWvwM8RstU+;fWL}^oxbnD9I2f-nC=S#aNQ^$g0cE?szx) zciMONe6LQ5b@YWjt`A78u6aj4cM}WRvyu_UM@{~Mf=f1*G^@VrK#(# ze8djC$?_5&@Uz7J{$q40@+@`DelYUWR5inoTW`>R4NSOrCVGAF0vZE&K!Ln}qM~us zu(RG^H@>j?)?VZX##}7kSeX&CEgZ5100t08DHf)7^HCSGv{m;S9HD{LsDl)S%hp1| zWkiVgU=oVky9?nkmzeP&e(UrBwN?lHYzvfwpkd}g5)nBBp%2}!5NN>X$l}fq7A?d} z*_3r%{s3+#7B*S-DLRGdrGuqGKranYXo1z0U09D1XT|y>rjuL^QSAs2dVuf-Q?2TO<5=cxjDC0pJKmN7Hbhg zcoO-ijBg@)h@CEcVr3*0YjW6vU^EtXi!d}&kUGm^@#aEPNxPjiv?ptyFpb~BBJpQO ze*3#Es$!3v(2iSweEV%*+&o^)dB*Q(%MU+yC`h%KFFL=w;fL>4GG+uBI+Q61P>gzL zrtNH(c^T-3UU`W*uCL(!t!Fj`5J~$7Ks?@)e&sibV(X?~`5I!|i)jh1=bDF9 ze!~*=6eWZIX6R>IJ@1*o$RI!zE=|NBqebDAA+!G?9H=nCzr@=u2d!}zV>T{%FU9wadY5qt`Ksiy;KCyVwQl)?Uu6_H?{v9yO z`ZO32_*|I9p;~E5SP#k2$Rd*Hn9)YX1%vxjIRTmA@~t5u4Bb8ij%0$$!o1V9T|uTu z>A1YrysLf1+(-j!t3h=CgibsXl%PF>VNb7``WUo^RGiau%f~dgHo90!26jFb==V;o z0Nj*zz+HBdxk~@rUzsC>j1Y$PT7Mi8aw?t;MzB6UH?@boIrG_>cdaM&WU)zLh-9~w z#)W3y4sZB9-tX4PJ6TeDXj(l)S&8iIp>D$91z-ZGD!h?AH=`+Nyl5L?5Et4z^Bc#M zDU%nsR652IAX>M-D9p|b8lLKw87+!bMtFvlgk~#{gbJV)5#bQ)I02E(=Sv%22xR0h z=MBPR7C8=mMd|-5>HUyy+T^9H{#Sre3g2T!pA-+V7|J{> zW0HJOrN9jI7Iw9Q9S^#=akofN`?_Az^a&}oM8<_)T5;C&Y(~$!`u+n4?>>0o3O$?W z)z*rDWag#o^l8A(h~hG|k3@|nc-8m}aa))e;6@9dTmpFxtc>P0{X>Vl$LdZoo%WsQ z-<5Q2!ech7{f;n1BMrro#Gpss08RZl?_@>pf`@EHH03=qh@mbuDWE1S8ERY6mQ)iE zQ460aQYhYa7IS`;jw%Zf70`_JM9R(pD45UY3x3{4)Xt|erOK3EH?u@!$EJ0o;+1tB1>QEs zw(010_`N6TSXn&726Q* zTyh_X4F*8vLeC)g;JFreF`WUA()A_~`xL*XE~*|a8Ccyq3M z4gco4eoIz5GwD>!&HrqY{o|xd#Wkagy*F5dUCMxBlb=|4xVIXyjHx8T(}+}Sn153 zyIqp6?aq*%!>*A9rk?tE24aiqt{TcmCbc7lkdm#l8YDE#2 zK>Pt57MWVY7et;Fla2^X#C(KuuY6P07~4Yq{0Gk}nbNKGaudWbh(A%zOz#?YO|Xtu zo3lZ5)+)T`!Mnc)#G?avFd3=0+8!?$yW%Z)VPCkkv<&?REqjMwBqX4F7lj!V^@AC#ESCDXgC?=JxE#$uHFmF8O@rGnak6 zcu0HK-?^UW{vDCLda_=;ws|yY1P>hx8pTIsOFLK(j=r;AJoe7|(6M(mf}`4p3z^MA z#sd`duQHNPEtB;D-tQJn9{8{Pvu0noDO{^>CuUU2@@TOEV@`G>v}w75XJB znXiznI3AdaUV&&a5$Z(P3$saiCxD9_=R!~ ztPLC$+Jm2pvd9u6iwyal^KzV@24)OpU@NF)s2Wq6-umU@Jo`VX`680Y1fv zFr$J%Y>8b>{$oB>pce~$!IP1x+V2tgDl#GZR25NMiHG5Lj8`a5GM%I9Z?Nsik$01@ zEL0{xeAt01qr{VVh=lS;FhCBmhPK)(B#7{bvIc~nA#(D=Iy&&Rmq`dB41htC?lcHo zEt%<-%haWiMbcy)BwuU+00hZn!7l2tz?((lEpj&BMI$mLL_3-049+4wfG}2?D7X*@ zY+cn_cRe_WT$B(UcfmA$vIx???gFA{xUIC@RMb?_#3ZS}15~(!f`;)`nP#~&h&Z~R zBj-RAAukDjsOVj&LLy3#(ok&`UEsa-WX&J1lCK!P4~aWcw?y|HGNM?Zog9t^itQ*p z3xmB9u(S`A#UU;5j1nRc2aGQoA6R&?Vqk$B`r8cgaFt1Cz$YuuVQ7U^#I&X8L9Pz%eu7+vVu~xrAGff$mlu zCKUmvmu~mt7*xQ2#MKJ7<%!Jlfb}}1r@eYBnBQ$C42lP&YfVrci1Cf5fsy2Xq}f>U zf=+EFjbyf>)2KEm6TmQW9gVEJ#&9z_LPI3uv6fzlTb7=(@XhKbVf(HPY9W|AjZyFv z0OfHBw3`pSG_Z@7*!-j}#~y4d?}cOgks21+0Xkh|pyJR`(M_?cB8$s%)5c_q<^qYM zq{~+k)-4En4ASEZ(Cz~@jfmre=3Dm{DxLX9>ZRMxyfikrrJ&UxneUW+_w)Dkvv1hD zV=X%Pz8(9_U~G2f+)Vai?eMBUdor19wz7|rch^`g>a*9U5@QdIotvEZ>Q^@#SB~ZD z>lhQ}I(IkgpLSMfszd(K$?jABwNpVlXE-~w>FWEBA9b$1V)^#m`rnV$yEDhvoMZb| z&heg7)A40&;eQhOsmQNsNFKsvc@v4Vi~0lRc#q&i`0cVKcv%Yo$janZQGNsPw8EVP z@eP=F@S6ZgR-#Vjm#|HVKV2jWm6M1_GW`6a%@C*iGbDVhq6tYZF+^#Fxvm zg|C4aJ1z+neYDY*G-Xi!UUKZ`Zn*Ig))vSQ?>-?E6cro0 zBOo`$2fY=`ArT((PZ|hsSv}OfOZ!MOFv^t!!Gb)lIwXg~7JTK7a!YkWcysx}3#(WL z31VQcIwL$eY{pPJv*dfibg_Wd6pS}CMbFL{-=wU*NCgVr$!Xd`y5b0%t(hl6}O6zFsO7p0uAGEHDM)%nVb8dEiuG zHZT4A%B%lMEW#JiDG;FORFN-HCd5)8=2m!CK)!=O?ulOnSpx_Ke)~~TsWGA>onzY( z*^_t{Of&lRUc7WA&iq#at-7)t&&4RG=VtPckzY8nFk92@#N!@$A(@-+PQ*uV8^Jt! zUp}u_vf93ECCaL~cA!G-vV7$L87&|1o$)cuve^%3H-9HSuC)>rIR5o)xt#r6UfCMM zoTCg#D&oNmtHMhiSg|2qfO#3)qK!~f?29^x&Zx-6%x!J7Uh`K!Ia}MjqBaA9$bYHL zZk`I7pdV7&^U^>6AA7`vaPjjw?bC9~=6*6!nvJ<;bFKlu!3a5D|44ma{%pRac0ZxM zomZa_nDVb(%%2iebfF(8Wt*-QqA8EORqX7a&K^8?_TZ6HyIgK7JlGdsetF~04gQap zO5-Kbs<0DmL|4GUS*2F?HIdU~UEa+IuSOwVmS_pswWI>4NUy9G977CTZi-*jW!s!?FjIkx#u?QpTU`Kc1M4K}}0(koi+ zi>1;FC9QlDJ4+ngd_Vh29Q+^be1ToBuig8^cg+)<5v1(BciwS*#=H4-_s*w*=5E|t z{;d-;zrifg{nQ_QWVmwGe|T3dHu|eCY0oSyoS&P!vQ#XVHgn~oHdKCMe*W;>Tv+Gj zLFW9;c#q2Hqw|qnpj#Y|+@cVcrA9q5^gfaesSPt)06UiIRml5PzfqfHzO>NE2#%2Q zVPuJjG zG$edxq+sE;zjLE>qP2e7Fix+ZFKyiUqdvKFHYQE`0bk6USX+%`MK6t0Rk|`>dO?DI z9HKj%7cU-uKh{^rB+AHMKuO?izBmZ){ij@@|h>J3tn>ZpTc18WSNGDFOgU&sq7tKspl(PwIOhAJVeW9zNERxaA7!rrnumS=Bh)i-#Z83imsY4> z=sx(3>}IW7!!d=eSZPK{=c99<^~K=q_}=H{{+zayQkE2N4x^e$b|9)3x8r~WcN3Il z=s%+Wg6a0%>Z4W9qu^|*`bf?1VA&Ei5cSHY0!-4IBaIhr#uS_x(W}2-zYpvr!M=^c zE2;{xG1{tYrN3?K6RY36_ntkw{x(*Q`kOcG`@w^JVVCxwNW&FB(>8A#y2#lW3gWO( zZAC+e4FTE^7IJ*bz4h^1T?2H6rMv=tR-;lJwzA@VpJs9;s=Cph73{BR#_p2)QOs^b6gI zi?CgfVqY*>6cCKE(otc5i9G{RRQjnW4WwgLFUxg=<*A>>)&OC+1)(!ML;85@XFI-; zt`9FOhLk{`GPC;*bP^oSI3QYZUXo_f19 zM!9vZ0l0o{DnE1vTzTeTf~55V4DS63^M)-W1_yzsy35;1x7lD;601blX zokp{nxSA+_yq!@Nvjk-f7IzgWBL`?azlB|k6a?0qjm_q^btdZje$Km!m{5F}nFewCLcUCr?e2;l|sUasP# zFaXJAI-^I$q81ekV*2PRhaA<&- z9Rvb7F4?AbHCSIo3={Tq&*40gO~#NgUR6_@=w`r-A&wl$Fp_wl4m`tUibIs&cA74OCrWF?fxgK>~G8vzFD5BCuF zgIV&zS4-djja)zfm!9_=h$PvkvLl(?cYB-fb8PBI$L@;78isMBaZ3<0siQ&Bv8HJ> zV#Y@)!Ak?f_=IYpJt+8)f9dtScVxvyn0?mkJ+02S?Ye2)6zc@BSOBOS=f||%4--lq zn9&z)yCL>dnX41L*N7y2T)?{WrImFWvP< zh}4t{9Q`*rF^huLZ|d_UZQ04#8!g>=vuFLm=;nGrp|eD^1Z+#CSc*9{eD8l6xUc-4 zT*&i+FFeXQ8Ow|HY%5+Q`VF6?#RB%Ql~eE9#+Lgr-nEGg`OC@+>pW~( z565#np1dQt)~M^wTYTdS_04tv5x-t7-I+|fUoEvqRPjdXqAEmYZ`UY_hWsp2&fPk0&M&v?~bJn_98 z$PO0>XmaH~&0eqB*~PnN_`MEVJ~e)n67JOR`~A02G)G7u$miNH7Tdu4%T`ct4Cd6s znZVj@T~&$uvVI{Mg_oRHf;({v+8PFMe5*JW0RT>G_6(b5&Z{gXbKSN6lt~FUU0~0_aVPC;{;OHCJ5!ZPw^h95Ucpf8BQClU z8|AwFX0^2PH%`+|Ppy=y%`Rf3)73hli+S4ZBthpsN=NJtl>Dowtv26 zug)c@2Cmo6x7Mot+;uaEyNI!S_SmH}j-TsmMYD9jW7e8Wo4=nNN4y7YcPitibN}W) zoUKibw`M*n&!&$b0$r=Ln+g$_~57w_p9Teyjes*p(#e zPE{CT0$C#ILkmJpPzVt%sCpvpf+@y)9Q0fIHPw60-M>UhDX+6H>CVmnx4o%-oq~rW z=GPXln+;;l?tKj>ni*X2_=c4no;U3=ZSCayPp<(gHaEU-i+jy4v=$t9ZVoufLvv}p zUeB%8)15QNj=6fX+FX%mdzpE2EAwVw%e?7+JpLp;=lbj8axu z5wIvMFHz?*QP}2H_!*ND*S&_gvDk^4seZOjn55Vmu~))Xwol;QMa}tgYrQr-jN`x{ zDwLIwDp*AAibXa~L_`e7jbx^QSegZOd2;#q>!>RmEyk%YZl(gaFf-HAz6YajI}Wr7 zVL1q>WXO@trfH?211GXtobph*GeYqsd$d@b>F21$u_I;to#)r6_?jvuN|~8dI*+5m z21_yKNLpdkTf!~kCkSoTr~Hu-l@ox)H!)Nz=_lE9x5Ryc!z5uk-AK`J z{%ap9q%(Q_brTutFH0&KvLc@`tMNpkT$mB2%864%CurF5G;LX#_AMgIvgkE&8N zI8R)q3Y{aS3jV~X!c{MBkqJWVnOJ$mnS60ezTMQHscUzQ&i4Jxoo>(%+;gsf<4nzW zJ8tkhMYru1Yt!1NZ)sxKx}_uw0?6v}x$^$n9BMg0)2Kk`-gCA0%X3l3X9$D9&!d0K zN(TXokUt|13)p$M@CESSu=fH~FsW?=al_WbMXWu5c31HT3-6aDKrYc|FZ4+x%p^jv z`l4iLl-%k{*)h&Wwdv(4{hVo+R;uohI+CfblpKSclBwls{j6n`c2(WKE>z3Ka~44U zBh*SiSE$zV=d5(5TFqo^t!3zsg2<0F?;6%F(8DGtM=WQT9nH9lyRd#-Jh+^Wg$GwG zb@1szVR>YzY(DA)#oF@r7mI8|?8#Z|aR;zR4AC24NQra;Uy1V}Kn?>1=GD~~>c-}W z^E-1*50vu3=I8m-%~DDwR8D=Gru#x`RkjX&F}CUdCdb@ujx@fM|^dM zu;o4pg4HAu?x(Q#eK#~g>>Lb3mwTdLgNB|gXP-mLv%+{(H!fWxXI zi8F~t+8jy@8>3_QfjOKhw7+Y5tyhP2bbC@f-HFa$TS%o7$@&#hdw#HY>i+Qp!q3<} ztr2sWBIW63BGv2Wg8FEJY5?A~^JrkWb&M-^O?J{Kfo^-c+e^oio|BoJot;RVK_Zsw zDn1k1KjO-RN?bbga!XRnzb0c#O-^3|)@UK~lxZxmpj)$|z~ zSXf=yNIRb6KJvV*%6z2Xzs`pvANmUd`}D;57dPL#xV|y}w#D`R^YL`fSxe_|GB~N5 zL0wGapB6axOP({MIHEkK@WX8^X9>k6Hbe5sL<$u>12qHrQ({vTvr)l@V4JA#dIc!- zW^)KA^hV>o)e)rKPqn(eu}53oPaR2R-Sm;_`yZ`VA0-106C|e|V&Ns@3bY ze!oRk+ZDH*9T`47Qq|Z{Hvh0L?H+8i$0GNV8}v-%Jv_b8uqB2ak%Gk(p^Oj0$BA+i zoJAPrjZ+$*QR{G z_-X3LXOrKiTq4oq-*;tJXh zypn#yYqUz#DZ~ru=)E`IIzRuq$5OtZdTexWIze@eM0(%o8`+`XIWw!}Gn;Qr7Xnbp z(?u_%eNWnBR7GdnzQ=@;)c$Yx5y-2ogipy60S~#Xg?GMHZj^fC=)Q}0P8SNBzq7D@ z_H1{*mOHz?u)llu-+7YFLly1pXm0bjD%v$!{E*l~zXi_tP5N_CVI(iB5kCVZCQ7h? z*z84I>k)=X!Zi#N&$|iqtel>;k@bw=h<0R=oz$v}KT> zfk4zcSAaADh9o&zaH@%s!jL=C9?4cq#d5h>X%AD*Cf(3}XDBa7pDj#%lt9ZwjZ7<1 z*u4V*YM5kjGo{DJ8Wf(4b%x8MId{Tq4FiNs<~!=EL!&~?bmEyd@erHz`x*T%JZm$= zUV>(BiY0`_IaH{9){cIUIX8y1yjx7_yra|x7NuL>T}oIm3}R2WOb&<&$1yQe^tG@3 zzp1RB`c1Ms|G=(Te>76)redYB!lwP(@oMfjM}lrLH62{>miF%0m!0V8kK+cgTW^~W zVg@FJB(+tgX4Nm{QqSXE@4Ppj`dO3epTB6D?;{|mlTHPOe$A)i(bPMrYSmh9=LZL_ zc#;AxW49W~Y%Y4dgDNAwc!?8ub0YPGX~!AQe~vstoXaheHKetKmteP)KiirogGJ<* z2rx3%5@Rf{3`-cOv6t5u2}eKLdWLSn^?-Yga#jRRB&i#U4L@i09&e?JL;h&5SnTu` z8hCRvgc3CtdXvQ>nIuC)`p#ByKuG{EmIp-xvu=)yWOYBbkZr_&X^2RzBL{{JW3B9a zdQdE_8OHE|Lqo>U&@VxfP!NR?ynrbY(kN8*K{R6ZSzp0svoSgykGamRTHmmL zEFgW#NYxV=Hy)3jnCUwswdZ!mW?DwGcW28mTFLrCXY5hE82q1I{Ui{ei#yPyF?d${ z)xgPs-#k>W+Xc%wEPWupiWO`|FVF{he8TgQE*{V&q#^2TbnArZiN%XzbUjr!dLX0A zdJ!%PEuyUi5kV60f9aMvO{C)3x9E9peufP6=$2sftiGSMs=6P@?+M)e&NoNb6=LLV`nZQ;#bVhoTg=O)-F7 zc1YeNJTxZss&qOfr7@sNts_!`@l?{85HsU1vY`yOr#+ufIOA~=TwBF{yI9hSrSW1X z*@}N&_JcWWju!{5p<=N(Ug{*r652*Eaq_A2*H4jZL$F&yP({pPB5m zn`9|_xyHsFXE(;Ogf=f`T)%I|Qr^^1xq~RDl|8R~>AvY8-1iept?N%r_4}(U{Xu66 zABKPZ;^2wDZ00eX<{HiE&h1m3_Qt`n$*F}q=`YD+4*M**#jB8WRa_dfL87_r>BjqSJLK(UhorHYLEiJJ24cUnTeKz z#i8^;?a=zU+UO;;A@4aSHH1_qj0o)En<|%bcR*c3l4@3^fAY%PZ-b^&*Tl-@n(a+pJylPZN5+R7^ZxHo ze_6jNcB1YC?P@7K);cg_q|T%Z>vx=cw|di4=b!kQQ^#M~{KG?s4%|M~Y&J4>vsGTw z@`IFCObqQWy(MT+m#myxN^6U;{G{(4c-NhcVHw8@w4X%&-1(ZfLxl|AjB*}Qd6Nko zz|9)Ig=XV&2BsQ?)c+#S6$O9&s|f$ zJ?~wiubwz@!xLN2ec<+Xeg90xpS|LW$tgcLr2W;q?i?TK`_Dg=I=5@8l0U#>szeTq=3b4p&eMMAsl&J3 zesJU9{@-0cpl$vz$F3#|b`*L$^^Ye{ojUo%)0=iZ%JtvaI55BRbJywzk6ab|0ao0DvD42z7oVD&PWM^AfBO2<-}>aK z6ElYnZTz}C-1=|bI&|o8^SY5EwVJ+HqaM<=w`kf@f2Zc=z5L!{59idy@lAt#f`vGw z-Yw=E_Ewl#&D1laLY$3Y&`=CYgn3@65%Mv*w%yXT(@#i0o__57=@U;~dD|WDy%Hi6 z7X0mAeatE@FZ=dNBa_SLMt4WAw42Sv{nL{Z9hr@%zr|@M&Of#JM;qFE!{US7x^uWfltoAKI%Yo_ylecUnshXpils+T{;k{Eh;*qyJ;-<4 z@kV4u!}&5=i$Hcs+C{WOq1#?euocK!;fo3-KU)+IcL~>$t)&D};k(|xbLZQ4ezI>F zsrXuyKj<-q&jQPy3zgub)_2d~$IxIaOdynwaPhp4j};yq5Pz zT9Y$3%}kGlE5se^W4s-5!K=jg>VJ$^B2OgYG?^v`@SoklNWMnLjgDqVl_GON|Gub< z1L1@j)gRQAqfAnc+88I4E-$XcEtS37YHsb*S6=ywz((mcK3kif_KiKClJA#)Y(A88 zTO?WOX?q>r$6avUm3pyQ_qF1MhMS*Nd-Okc6R#XcR&w;8Ot`Nc*B^d9<0LbgWFr01 zOfkd%54(j~mZt}csdR8GSNNggXb_CPKRlLFU+4~{yXEPR&nO8)aSp46O$cKHf5O3K zRFxo%42%>gIfOFqss+|)p$T}M$h@Q$tcob1K7{Crf$|I6CS{MWp#ektw(A7>go+gA z14C`Doxr3Vce9UOIh~JEUutr2YVC9fJEv6fGJ{r}a1^!(TGZSiGd+~AG)PlHD>jX0 z0fCWn?MD~(o*HN?W-?CEp12QS8&whN!;KR&38Ed0c;fIg$FHZzOv=4_ZqI3ATD96( zZOCvF7UtuL6uD|-)0AS(TB$dbFWhv?{uM%uExlYA3b0U3FQ48sdky{d6gi52g8lAR zCJ-+ybqz5b2;pO%*~)k&uDaV0+qqKm>VzyHO$2^J$=!ZHxSaT0Db+2>n4SU}k>!Gz zQDF)!Y?$#!$$RbvF!sSzn8SMQQ^l*7OLbl5c)v+ zp-nYky=eGJqN{i(l7q?U(}#e4GqeN7sx^cuqGq)aYmmmK?75sBSSoHU6k3ZcQK6qQ^_~u_k z@ohYO7Qm8d-n{=w!a8D!lbUuClnY&6TjtNJ-(voJP1Z5YoJdeI5d=EPw7SaHO+*;4 z!z__~vJ7C?_U19A_yV;%ql*~Ml=_mp!*=?~o8R(KtG|+-+CRSHB=23DB65zXucDt0 z6Is$T)tTasm1ltd$wVuEcKvtHxq3m%SoK_DwNeSj%SWdh3DdRG@kDZRoI1%8iJvj@ zXu($0@n7G+`p+bWE3&AcMn4?o1(@1!b9p}coWU5N_lXqA^A3DEzoj?2@0goD=-v{G z<`#0UmKz?859JoJZY~yk-L9XXo-_3O=c0>qzr1vZt%LlOTg(-c%^_l&7AaYEyK~*l z;ycya8RA%ld44k@we~{1k5M?URT%Acjjh<*wm^ZfP68IrCyo~kNK7bXb}_Sw7z>y* zqI`f+2ZOeSsd~;A#Hm+)JVc+;Pre#CzPfsR^^+#9D)SM3!33?w14--=s5(t+z$9W? z6V?B7aAd9He*Nq2pRb%)SvhetX-!8={uj+POwhz@xumm^kgbDxW*aWPmY;_Q{17~# z8F_#nWU{v#bsm-V!J>c#3j;2dMFF7@`$v|n_nx&_pbZh!y6{8ZOZ^Qnkq!#&Nu7jt zV9_xU?bdtP7$r!J{--i1wb;q$kk>?-DEQi)I|q;N93=EyQPa!GbT%7L`i|ZkDnzMB zN_5b*Oag~M$n7sBV~y5=_=H3zwm2#08tj0CbBj7)sQjTeiR zMN+%S1nVaK=-yg16-`vvhy18jI0ExC`vvOVboY*U)EZyzl~Z16szSDl9j&xRJ^hxe zssX6AaYx4tF|n`043l&ax4JYxGgdF+YRpvXb-+TbiGH1cW)FM`(GIB(RR-tK1g+gspj2{T8&XA$}5#$ z%odBa`Pn-Amw#w^e+(r?80n?F0UOP~#~B1_sve@1^9m{<7J4A93adQ1op4_)#@~?> z+@(i%Fis>YA%OZ6)ufyq5p{5MlLDIs-`nw8KF~4xgvm;zhAb~g8YDUD{QZ}_?^tzz3xH@^$keg3!be5+oAZ!jT4P|+?%`Z}5cXe7%20<$t9g*llw|RA` zxwkbsySh5sZ3KR3o37QS=_LB?CHgH%EKo!VilQonF*$sW=%c>b(48SWWxgdDDEvp|PkZ%0FdueMMPwneLu`AP+P8jKY^9rpS3vpP zLu4>9>L}@4`O%_vbR1ItdtK65>fHtHSxO28wX%_H7VVMDP6UPg&OLXhazRDo9 zC|IOiZg2QdKJS$~ohv3Lv_H4C$>DM4tUsEutkwZtKee=n!qe${_N->b>>I=+X8HV? zAJ`o2bPjv@{2nrrmE7>B^uss7Ad?J!)8a8@A(jU%$d-~6d|sz1N~Fa!=9RQVnZPlE zvEJ=Y+!#N+yLn>&?zv48>azG_qvzJnR4N(dp8x4|ykI3i3QAo3bUs^3mq%)^JM{TC zn57^SWFGn4_x2mLwS}pIvn9h6U;Ti-C%Rk3)~OD|cCxBVK?bbC<3ZPLyPPm zu;R)yE73t@Ski(dA&9N!H=AwO$c&q}+=s1KJ2?5=(JZ+i!yaBSA`AeW1+CFf>E_iL6TH`y z)0pQvE<&tP%pQG5=ir%@qmRP(AGvnr4E>8GKk}@8J+uoP~JB5`XQ>Ytz5{~_qUd;|??&hM&y#^! zFSpy}cN)e!%QIy=7+$E%){521eeqJ;)_yFOis5A7Gjqltu1+R~Cv1!8G=fx|*Rz-z zRr1VY!?>^+aD*mlU2v=kE0N&i>k`94F0_L$fH}UHc52fjnHb8bmdGYYkUoiNqpVf)N(*93|3j>FeirrI~ta`a&ZS?Kfn&mc*eGL$A zvEi6)IkD=u(=?35EJR^w?-FyNp;OFk9>Y>sHJ*~Gzst? z%V1N8g~4VBWwhDBY3uA2&tIUX}0U5M9a)FNZSByd;9q(lvC*zDnqizAs%5M~=N0UaoRGx^I z4IaSH4YwHAoSW)*tg+IIaxVEh+S_d-72`fUgmX*2Q}wdL&9_>Fz;}d@j;0yYtr7l5 zAqBD&r0FBcuQI-6>{R>7W4oC+(kDQsi{zCSeQ^fjd)ywQ0LQ%=Sdk3G zUZWGwj{8G97tV!&g2^1&qd8Q!Kt~!AvLPh`*xD|hZ zB6n6brp42-YRrY&({Uq>6Db@H)oa>-oAKW(47dF8O18mFvImW!R@6w0PRpQZ?Q#W} z)nR6pi6l&S-s@?T)jS&9cgvWoaXp23aI5Es&A(N%aI5DLmKf*|gZO={RZl5=xC4>v z$RNC5_5BAUKLSV#)IBOwi%|oW4gqzNx)Qo%AO2yn?SFSI0=7@hjDiQynMNQDV%9jC}yc zStWhPsDfQYBrM2-@`o~R9l3wU{L6Gao=)@>cLgat>U!jUCq}2HMiWK>Ji)|p+iwpu znEej$(LWKAzxIr&&%J4@uc^a2Z9uRm!_V}&s$pg7)A%kQH$<``HZr1ncZ^EyA zfEetvk%x&1`ykx$XCuE7`Hjf`hsDJO&1_L1bDPS|vAxfqx;V^tYy-DR-s0l7l&&_QC~~$4cZ0E@8nyse2_? z3>zRRe&>Z$P1TFbsNf$lQ>ow06)*7r;?4;oNK0e&Qi8t=gw8WR;h|$C!`4 z>|=62v-iHJNg_%#2I4oCHDIcY0x%m^5~E9tLK?(jfD~(jVqh^x*??u5U{jkwA;iEu z7z4#ErH^UrgVm=Z;>@ywJdKb=p zm}SS-c1$emvJzIq3Tm*0-wPsPt z-n7=DueZVSM}@_ik81RD0I|eaR9T0e&3nOnz{DDV%0eBro{lDn{1x?y*F(pSSu=o? zB=@R=dt=}7I@Nq0hsN84pNCAHwDoE%&Bx1%evw<~A*gbjrw>Jr>bv19E93>-fCc&u zk*7fu{Ln>8Bt0yoMByMIC2sNX*HEJ3B;*7jcI83HVAVxlR)HqV1PcqR4|%q%%W4tW zUYIYD!d^o>Tii!6k_)s`+R?#HUuo7$@C;zxglW_&RB|?q&JL&O!ujWFrAlYNU7z}( zc`r7}sTm>|`J)?CH8Y7~FY)=#{a#f#M~9@$aL6AZLG~i!07YL)N?v3e+F)Wy23BvC zhS~sDT#%>ArIs)(f`KOr7Zw6dhJ5oM|DzT?0fj$oXg4#gjsu5aTobnX?0wmOX$JhjMcyJSMU}x0 z7i22Q{d;H4UCNT?JZ^BIr5w7*e&$I0xQs-$WVe5Jy^&jEui91~kSsDoNRYsd zxwWn$l2#M`(t*F^Ad;C{r82b!k=)A~0VX8LYuMMYHIfBN;sRq2s*>7Cq!(~YU=q>> zP;eT_%0eukqL7e!E^oiYszW2p#;QGu8FEQml8CXAnAl9nVlbsjL1=?WJ# zLA*?w>L1A?Mp2e63Dz~W{>09ZyC4lA*~4_El$cQ|!wiK8mnNw1xV3=wChh*G;2=C) z3LaqrV6;~)d#qGZm}t&Qu`?h0m~fdC)m7m~b~38{?l!Mr$=f`)bp}YLrk&?9wv~&{ z$QkJ*T$sxwjWyM#3NvCUwR7rTIpeeNBQIC2zwM%onK3Rblm93;fvdugV&^$u!`X ztZIZ<$%Nb7S*R8xq;nCIX<2t3Y%qJoZ~c*I1c!Uc#Io3XPkPneg|LA61B5GSLlvL*Y5 znr68qjB*JI2EJ%PAD$}t`H(i7DXkBK{0-tLO=8Yi;_XGMKVc2rNtImn=Wf<@$jRc- zIc!YhdgCg0o8$$=?lrU@L?CCGRD$y6s<;W64r%EL?K)5E3`2NY^O;a>;w_G5ptX>} zzAQ_t5MCn~qi3onz(E=be=hNmh6 z#1_2??-VriZ9z;iS=iYHHoL6_DWa+?NerFn!r}bojPRlkE7Th1h_=)s8yYPN+XDNg zbTxFjw6(T~w6ZO1?L=FhN7x!t)HHQJ^%`JYK*LzbP&K?JB1Xlvc_k*z1IUI60vkXo zmfou*thm7Y!p&;hD3*(ks8EiLiYi(Z>a1m%NKq6Hsm8LL6rP$1=|+fWdr{R;lpvjp zQdGYkva{t0KVKDXc8g*@A&f^$Ju0%3Wjz|(ZGtsrnLn>s&d-_JZz-}s$z^mm&#A_y z^{6`fXiS?{5>gedSJY`)d{093TXbRkJu9yvB0f)g(Xf$%Hg1GAo6V#?Sek;Thd()O}jRbDD#IaCT2$-Ph2P5BDOve3)r zi=(H6_mF?oL(yHxn0H}iZC}EsSXdSJ3+4L@TK1Ok4uNeg zt)ZbMl)y@?rl1#XNnrJgT3kz0CGc_8>RPO!xYeibN8*yTP8LG5gy1FH@=3i3mSzn4 z;Udd=EBTAEuqFXHg*CzQY@6bZOH_*#5Oz6DHz~9Lv)DcfEPjNz3acXtgM~ z+a&x}1qM;Raw701mxyvAyBm~}x+uG&{b54swxgI(w90hF&x%Sv?AAqg?|(d&-~t8i z&&2Swn^@ZADCjkn0}A4jOG&Q)h>%3M&NdP^wM8_*P69jHoZ4v`8J9JT9`&mEU+JIb6u z%qY^Iv`an+3}=;XWla!Ofs3S_s$-AKz>M2kzcgLZLRwl72Ih>;god9AT7nSM@_3L} z_Bdr7+Hrpx#LD<-%(xDNr+pw?#zf}de6!p!v0FXgN7Uz?s`0h59S@mTPE2+%FSYI- zW%+`?qTUU^0?Ek=jneognj=g((8PaIG_k^(c75bdWsiLh-R@(NpSzqELQ(495(9*B zk!4+CR{#Hrdl&e|?&{uGduwa&t*xysS(YVPmStI%C0XN<<+sP<@l0kslVQliGfXCv z5Rwo=I!(ePfe;`-c(+L!DCJcOfdWlwOX&*=<@NzB<+ikk-uASVa(Yfv&S_8IhtvBh zxAbZ5cm4lcvg}M|GP%$@4_lADx3>QO^!5yzoSNkK9v5CL0F+ScRQk9$2V-{n0ro6>#c~#{S6#zx1g2peA1MLh%>l*fGCg zj+w6nb!t*4^b}kv!3zbA7mP`q=@2w$^z}1{V;T>X@>*Ulj*3QfW3ik{ldNJ{Al<-<%n*c7_Hrh4|jm z8etJi%lL1MjVIHwSe3p$G4OA@8k2%EPzGs)N>nbCu9A8&UiavndsVaq34gs=Qacaf-9cGwk5~G{qd2W_7r4S%r>+! zH>s^F?s3rmZubaiK;Rl$C0m2CRBPg6?*NGz8tg$M~an$o3$kg&;mqDpg3%8|7; zFyel^&sI~o2tBFLkP2W&pcR@S1{}}^)ISPXU?0g}+)2wUfqTGZ5KYV(wu!EFf!)|i zWnc4ON=Yu{11G_zn}O1?O5tVzJ!Fp+s1@gO!a8%m5xvEV?vG6tiU6*r-wm-Wg@7y3 zANd6pm%^T?b=OrIihJHQP{dQXG>GtYo>+kT^xw-9AO+%%dm1&B3%pS1@sAWlec zH#Q1L(iNxttad=uhP+dxhMN`2U`-e8>wu)E=S_Qm6qy>G(6B!C8PT><1DP^nQ!DX8 zX>N3;qQaup=^tflHUTMS6c{!GJrJKVMov;JeH4UVDu7d^RQZ;4&5-?hYzqC0ttOGu zdu@w=xWMEpEN)TP*A^RDT+ALS;etvmdJ|OBJ>Qj_Jlpg(bX%vFL>IbcpKgS~aCiAH z1j(|UpHY6}&zQ#Nbx22KXX_rcpX4hh?o;pHN9B!Lwlz99Se{T)p)`_`3T3dD1?R%k z0QQ&A(Y9PfiJ?AhW{rPAFD*#76|$YRqK6ZKqSkgc@&NT#Z2>HC;;Odjqh-OGLSh8x zpqX}rio}}l2G4mMQlcdv8!HSE+VGrv@?&FdAuP~hgdO)DOp2KERo72CxWB2mMNudy z4PSMt(NTaQg546QA%M!SDiKY^WGJ;I`02!toH-mXPPu>PdX@GVky85PvGaQC=ygR* zFaQH$X=AKixdKL0o)BygJ6~=@M}>>9(jJ*wp!Y2_1mP!H*e~xe$BchwPaMX2xfT9^ z9vy9QEHMJTO|eTLUbALquzUR!bP z+T2|2vzbaRC|3%fmD+L=N1@@Pg)8*)sCm!I%+)Zjv*lvOvdXRLs_8CNTE^7aj9qK* zt!U!+X613x)#)srsTPu@Y^G#J^HFnpY<%xnL(lIF^E(yJ z?=h+D%={92mN}CkwoDDr)RVp_w&wn@1n^ohyQjF}gq~0nnmBxcu<=+^N$}*b z@e8uADNc+-<&PVUZyEmtW8w&$nA@q5@UYad6`XH7&Wn78)8ghv>L2xK0RyD=R}Ev;d(yywVLj0K-|rvy|kh z=iO#A^gi*H;AnZn2g~g-+!jblp=nhbtEO5oH4B9593)ER)y8^C02`wdnCJPDO9Zwl7j25yo##s=O3 z?{5h2_wmT%#%Ij}IZNYcYIf`X@MgZdd+T^7%kl&6V^MqcKvW8;?=xa6FR|~$P1&>8 za#t*~#b>u3|Gn5f6cqfy*whEi=qYOY-y4nMv)>T8PRYwMOu%a*x4>?HB`ksWMLwc^ zcBBUQrWcdlDK)H}?dV?ry2y(y+1vXCQBjzTn*41GlWv;Yioi$+t=6X;sWC)#oOasv zfhEHG+t=KMSK2r1lUUs3gv8>aJEduA1qIj>CeUYQ1Y0bi^^K8MxD2v_OxY&;l24O^ z0-^(1TdU2I+>tmgyOyz!}+Klx^DQt4Q_$WN=w`c5v;pasZdQ(K;@N>Gyerx50rlMP2mF(FVbIaSf`|T@a3^#FSE4 z_H)*1eW*T?o|-T0DY?tPDezFH3>ciIzb!R$lG=>J=$>Cdk_I_F+RMV~F${ndGz6RqyaLsJmV4 zlr&OWtCyIVkXq#xtK!}@SI<|av^15h%_?<~nTMqgFQ^HiST+`qWu9T1=S0vJUSR87 zo>+EUiwjetZcA#}EHF7N4ulP9zQ=Pm447`q#xx)o&_jk^kAFF z@QJx2N(;-U(T;+4%raQru@f)~qgq~?Uo|OCFLl1uAQNB-4>uF; z20|1E8p%hQ4f9Hpun08=Fu0u(nGxzKXFwR*7hb?d_n{F-9U^hk?M3E_>c@=u(!`3} zT4I7`N>i(9YlNsW(iD1Vb}w~b4U-Caddp0Y)E+RbAvB`z3=xKipEIIE%oNXD^za9=6aY-hsYc=sxe$h)9dp&CB)|7;P(YcPxliMFJYUGMC8d?Ab*8*L$@mBImioA zOjEr?1XxABYQ+;u-75RY}3sVG)5G&Sfa7R6HxMu=+wSfVcQvw8w?Z%4#b@p z4R5KJlXARLbEG^7nGD{0pN<%r3isA+CBZ)1QxbWnh}^sGunQi3)Xh;NKZdUNhP)iD znoEy^dpoHZNU-dKG34ncB~M2cYw|%fgxUprSY6K)>xb%g;wHkGe2NdK%%UMc62h&@ zu+gAf&rr&C?VKGjoY+!|t3?0GdZSaHRT9evh$fxR*{7^s*qZV%6h*C$^3B$Y=~B;W ztWJNFJq>?Turgp(ljx?zNfqtLhDF5oA|X={%FXDbl z^kIz~9&7xE6&gKBO{7Ssi~6vy?SM4|p6Fp5sJ!0e8{*D4Nf@xd=`>?8ei8!yrc;1x z5kCCgxO0=dc#~sXE!J^-1O5%a?k2h(PsWd^*W_N7!Jo$It5o1VUInKif)TGj1tSAR zEXcBk7kX(q7<*z63KqQ^eiH1Zx9HTH8Y;))X)v7~!g;bju{RZQpK@CA83IVn+LHpU z)2;~#vNeIqb6>9WY$W3(P3BteNxo76wlXA(K>=5P;xtvNjY6nUTStU6HC}2o zN^fOBycMk$I1T zpS8d~Fkry8ii&ajrtZjxF}W^PTJMTTKLf51zHN95#9$}96%Mk%{_W__QFinwlc3!P z7!9fsm+VzN;4R5)A)@lD?leFk592&fSfdy#-Jz|H&!Y7i+vbSCUkq(B7pIb9l17YJ z%h7=(9n*&Mb_`7*sZXr(t?44k;AN4AfIo;-K?liK+b zyd^dV!;J2RS5Vc$aSki2hK&#V7d|{~U1TqMtzySKbYTMgA@$}J<~K7L_z;W9WV}G# zMDUZ>(MD$i&*CPklkS@R5HRm)EbTk@!Ye2&iFdTs^zYVKc^xI}MQj{3Wm3dhR+CJb z0?7 z$4W7;#Nz1IOYj+68_NhBQJ{FA9)Lz0FOt0hL!W5BL8*A`0bN{4cn1q;v0!yv4)sZN@xC|g5 zdb+Vf*m4%TV%xgVpmteIs6cnT$4Uw3C*e*66$yC&=WYGG{WHDlXA zH_u~pD8_aW?NHY=0W#JatQG>1pj1ZIJ2m5zNnZpgKdb=stI&KHjglIaG;0nzw__QJ zRBVQ7NWFw5g>^~=T97u2z)BFi-a2l8vkMw3XGV<~F=W_dU3a7|!hs13AA1L>7Pceq zfNAZQJT-UG92lu(M)LVFlcvci3YW&nXltKB+jt2pzZNGeNsv`ZzH;_})5o0su`~eL z{@A^au&o8L2SlSVIhm3#fpm_3KOZZJ=}SOB?wNO^#?6_GQ(g!H7p2Uf81sG;^Ik(Q zKOepPTC~iCbu%_j7|DCe)_f7&EYyk~g56O*oQA5Ei$`k7c34C^eNUOx3#bETHB3%p zDpA^rfnlu;0u0J+ZSYdrMMo7jZI&tTX&K2Vo(2hMZR5Hmjt2>8^swW3$sG2^nXt;J z6K6H|>Gk@KIqStaa5eHd{2kHidA*p$%)}UCF}uq@9ixu4SEXKnmQ=G>f5f2WenO`wu1j|EWL~6=n#<0!Yvm}^BnM2;Uk#dP?$>NQz zkYqu7j$Vj?I?(6?4i6&}Kxx%MYMwFWqjlhvt_>wydFZuw^Cq^p@?5S$BMoP2hz?wR z%X9gs(BxQgPEN6q-E8bui%w+QUcB`Y?ZqoD3%^WcUn4e`g?z*RmKS!3TCo$p!5KdzV?D*6uDJ zMSFrcC@L_eDnGym6-NkCi|`)mqPN9A;z;#S9(99G-Q%CxN-i}d&2(hCn3OV9mM{K` zEUR?rzYOQq&b|W^ME8mN>Ck~iNA|@?-ykiFdX96i~e?^VvtX$UVVuOKNj1eFgFe-{4Bhm=d7IM+Rd z+c4(SgQ91<_FN46_X%bHo&cY@lWgO+?3k-|A0Qp^t(}EhgjmD9UpWRjMNEx<&Rq zH$Hp=xMX&qpy;`YK`-|@#m~*co_WncMw!t#pI9{#x4W8{hOCtvVHv(gSv5beM_x0% zI#?SMo!#`pULa2p80C!M0?rFOb^%|s-@s8QX1|9SZg5#`)ZkEtM}(WAM2lD`QVEqh zw3bPG9lDlU%$g@4 zOR=CF(U0Op3WgbinkDczYL|ijN`55-l)g-lf>+B}K`CR2tK*gEEF|8k!s)1;7LvKn zylf|#E6lsrTrT0;vr*>91U3-&$M3DGa8?!giFFcUpEo7hC%X*5q3EP2%^=Lx0F*Fh zaFVjMF%R&j{`2s-k`$qnV<=S)pl31Hw=ma}s>91`;8!b4CPb#0<_oe&ckZA#A|c6s zr_V`@X~!;#ChX6;WrayX{?N8D`xNarRY@Awo~(T>o4)}&FSaJ^JQ$zaDOJWQ%8)UO zs+A|&FfmY6Ua3QuGFf?oos#j~)ul$>uriHhFsN+f zNTX1HUZF|)z;Gk)T`_G|qzJS{?DAn^)G6wsEP{i-M$kOPO_F8YhoovauOCXq1;wm+ z8Y*9(Rt6g8OQ0CEI_Q?|=mLB8#B?mh`A?O(%BAGipY`%D>Xr+Ab0yDTe+$Z4ODhoO{OS1 zl*{X?LluHHz_m67f_*Lx)h{fp;al}3fl3KZO3@+8YosTV3d0*V%-=`k_$z z$%w{vq$m{Nr~B&yp8vX&fX4oL!7o3L#L<(;868MSVC;wl#%C;;%cAZ%JJlRb=4L$l-$Jo>*tgPI=p-qn!4-hCG2(bAw|wN=8(v&^}$V zCx<_#4yThlMPml2$Ru%>Q*Z-qQ*yp$q({c?>O1O-YJ*CGfAgXL%$HQCJSByp$UR`3ke6?eTo2TQDbSTC>1b(V7&?`IC|Q|HBuNYDMCya6JFALv%WsD{a@jNlDNt z)mUmae@W6TGow{}i%s;S%Y5#K&vYH^=T}A^fz2cle$ihr z#hG9~?IKCqx6u5SE(1=PAremNp|g?>Dc(rG%P%kVITw^3=t;w-ju|V8JTWC*L_qC$ z-E1SNPXqarG)IdJBjR}MZh=Zv%<3I3TUX&b*~CCw1yPkvt)}4C`Y{w6U@O)q5j`n7 z&5lQ?&&;Z~vnEAJRE3J&mW;y6CBTQ=bWIsaG!g={l&x`>e@=3_@y;Ps&&GgrZ5ND` zD7|yVD~0ybBf@z=uRQTzqqOR4(8OedOXNyB_xLUyU-a%FTNfEA8xvydM5#3V zI$(knIV;yu^EmeW;uL}beA8Y5!75Q8x~Oj9ueEzTy19a zV-u=$i;U(QLdevJJ}T9lBpXZc(rdv><7OIu)^n9?KLCdH*2ssb=<~~w-_+|;O3?PQ zEk#GM^tRc_{f?2)lV#D0gQJ*Q8pco%1*I~?K0^amdjhY~3>~8GvkP`q)!25j)p4Di ziZbY>LR+oS+mcIa%3e1Pj)UE|2q?YEz}IV}+(DOBBxo6TG5pjrVBia_bdh2jtb@A+ z0f9**Kj}6a*3uB^4(&fFgG)Pa5lN}K(Ixryg}t!}rQbI`xT>`g9>I&uH-U0>X&R5O zvlUGXAPyZ>IaEz5Vz4r*)6><2C4QDJl!1mrsn$_dgHjMJzVs;tm4pQ`;PRFSQN$dWWhN2WY^=9rKoRl4N(b=dg`1!nM769B8*HZN$J*0Q=~o(qv#y+ z{qJGWPxImmuayo$XNCB7^ z&y4Z`)!`tv7w7|SUvqd5c%~s$n<^va=_B!p>1)6k6mW>WXiVD4q#O!FxYrV_6Q+YA z-zns>3N{)$qu#d8SSOf6K}^*9Setu?%3~^Zk9_;GA3m5OYwC-cddfSwq zGHU87>ZMizvPyZreN0~h&&kwCEh|=h7;xI=*w#iUsMW3UFj7*+{JlvaqcOFP%Elsn zq|o~CWhD`ZpQjz0ZyV&(lvv*Z7o}^Kx5i(7ZfqG*l9eXjZ`_Pl8E0*f>&`O1Q5N(OK|^K_$Z- zMvwB-!A(Lu=$Xp>=8#wm5=rm!o0T^08|1tk&^O3bW6+CkJ0Kt)MIRqXED&Ddk{V3z z8CMvS-Dy!+2S%fgEJ=VMBvpywNF7k-WdkScJOwpC?nA1x4Yo*r6C);kWe4by3HCzd z(H;?|wBU+@KibAB$BHbY9Z{NwZIpN+2|%b}N;^ANp7KU1>4Fb58E$_@W3jJ-5UZ-G zcg5AIY&Nt(+546NmJtu!T?H-MIrA2&xRIoO0n?V#D5KSd5u++$&er*I0y@^kyx67^ zW$oLf*g=wuDUk7tn6=roGHbyYH^CUiR+JhBC#Z2KIHS}s=;BtFv=%Qo>6rSvKt;Wk z3Z|&uVZ#maEB0Qo5B1?Cy4A~$+g)c&=+oPSQdBCeKcKe39pIs=C`IbHV1@EaHbobj zv81DS|Lw5!lnt^o4gkCn?q^aFrO(pSDB<%2fQ%1Ixqy&S_(6?RzEBk!@Vpb^N5qY` z6ductiV}-4-cK;zX~z3G*lu?y*0N|B#u?`9(=9GYhT%9jcI`oomq3F2QwEF-vxW%O z3oI1%g2DusLKj3#5YLXq$D+P#oAxng$LAPMY8mSJC_8`EJiKrmJxGWA*i-*dj zbOQm}@uN!C$rbE{RA6K(!$5Q5cIEtOT_r}|Vq$m%>zX7^|&+$A!Jd#;WGffUxq#xC6EZ95R-Y%Vt| zdOtMWfHC?bT)^R?q!vX7^^RZ`h1l3tOJIRvaVkvdO=xpgt03m_Q>cnM4VYRkP4(T~Vw(8&eKTjnrQ#b&}w#YrVh}5o$@-?lX0ATZ$|<5sBzw1;+8c#W4=$(P zhuZFB&0ACeBuYa<72+^|ld@3aL?ina`^$}L|JGH;UMc$u?8SZu1Oy?a7;B88Bo^+h zOuWlGWy<Y7}v6y0puR;<^MIU6{`AWX>t-vu8mmbbED;I(9+=_bh=T%__F^eB z-HlR4m#kD+ssCvWzSi_^h*SAE2ICQY!hU8Mj&jtD$``u0eI1pj0u*m-B|^!~M}mX}KJ85_&x zf2B5fxb^BWnpOHk@KU{0aZhn*JmrBl<%SoghX-5;>qJZ}E1w$JSKV_sGiewfKfShg zdhIpS>2#%4-TM8*bH&QdK430xyYv_Ff?A>S^MOwR8J^MXhvq%B-6*?3rc#_c%vv{z zqWr$fRgi9wN?x`z_z;mE0wuOy7_e6Gh0erMUR_vOoMnk(M7-oD9muf4&+ZI56BRKr zvZrL)!DhkDNRm1uQ0&`ci&zQPq9AWH-K3#PT9qQzC1_OaSeSI0{wtaBYGO+xGew;w zw?7qIjPZ|HRxEc?V5*b3nCLS3e!r!@-zu!c(9YVm)yPJGT$-pVdj-~=Y@45crQiBrLKc83RMM^vpX>+_3g==($00d zRL@FwoU$q2MzVH}uV0W_HVe`hW5M1r^^;L6tclQAXm%%F>^(_Lb(cC+n9rY-dVQNY z>X`)gLM*lr>-&CLdRgwuIRH6#B#Q>+NGwVv-@vtzWl3B~a+gT4kOYDwBoK5)ihD=? zd}<#l1AktuH%sFHDVB0YR3d?~GO_Ha3>8TsGECw$(3YA@_3lkaC%Kp3Fn-^7hxs8q z<$<0S=~E)V!5UsWP34{zjNqJ^mS^h^wS#nJx{M4PL^;1`{F%8(7c6jNg%q>Kgp009 z66qz!-48vGOFu!)s`RlZJaQ`i2<;{!CombGDE8(nGq zh4~nmD-xgz6d}rL4bxDY>kTxRPWz?7qXA7;9u103f4$f&uKQVif1R^x92rL2b%-i`rB&qgNDdjCjDyl?Q5v7W*+%hQ#uWAge}GW0HZJY7t?f<;6kujjKj!P<*(lCNU@ zpQB4dWT2mTURPQ2<4T#2SEU%uvJ{#e$gQ1P zMR}Vv^9ju6#^&MXg8`k8vccna6Hcqo@t)@&g5Mfm(>H1fN=$IfWAv}&w{cUBv^2Nr z#1l!U`H3232&nxwF}1onH8DcARCKh~Jko3)`9$}of<^Aap&ed=kMQ3fUQO)i2z9p3 zntK?>QM#Z=<El z7EN4ZVxQY5m{u||r24fdKgAjPGX_#+uB$&I{`4QA*UGC{D>t!LMpQk7`=ry9>N+5z zG|n;*m7?TJJzJzWPMG~53<(xU2%js(L(@mZgcI45&@Jq#I8KcaK-bp^FUz@kdh78v zRyWH13laj|qQM_J!tFi-l`x6Tm|iuDDZSckVvXCBfg~HbN(84QNwWbh&UrQ4yed~J z&0XVH+GV-IZ>a070+JN`>4M3Y;8$C&|6f$0FW)~BN7+ye#h(Y9i4GQ+I3EnF5m>{L zRF$<0jT9vj;`_$~>K=HNTEaLq>+JpCaRTi=o^8UoYbYPBABLk;>d3l$S>!h3f0{oQ zfx0d6KfNm`Q)^xo4OO6)GPT&8l&N+9;g@ct3x)Kt+iqIV`erVj@y~eP8NXWaGq=Cl zxN+m9hv`Xr+p!}r$|TdNf`2BS9dxhv^8=a0fCEL-V9k2W-ER`3jSQ&I6pT$azg<>d z*T{1KR>a6V_2}m5hc}C@(gSBs-+$9uE(prab3t$}oynDg+}&?CmN??tN1r!TDh*xt zzysGk=M~maDw9o>%ioJ^My3aIrSuNFyLEH53t>G0pxiVJNkoo%g_YIk09 z)w!3R$mFWiW$LATX7rYFykJ%)ZYsBr9NGHE%Guh{b~Ke~9dBGWe$BbN%u}=13=JR1 zQh!ct@kr!18S6MZ3O%(3SQGOdwVh}_fx_>lL8PpaMR}JMqja&@+2AY+hGbfJTlUhI z%8r0r?gegkwUy14wlF5;jejalQ?ZS9q8gQAliA`RV;%RNEd)1`*R#zv8l;|(hJ)pD z6MK}Bm@e;Q<-0)1CogB;u!{ zv&x>Jvz)RgO48bjCZ3=ouwk~X31&cNY4@xNvV^q-&gIzOy4&`tuKAF0TP?owp=&Jb zstvI%PFdFKs%32g!kHF^1iclpDhgJcXh5O4w6@gDiBaKGF%+x9%?7IOqkqWn+7!l7 zsCYp(mHGl^Kc<8m_X4N6^(#EPG8(-y;Hj~)Vj4dTnqpYdQdNwLYRQbnO11J*GoNoR zeRkPP1qptnmgCqWMvBUYO(%H2*fLn24wCr-dMe$e#&?nNy&X$5tO}S%86us0T^ZlJ z*cakacgL6Kyvi|hh*bI0!^;?Hb4{I1xmq>8LMhoXzETB{RVCaMWvqpxt3Qu0oVS9N z#gD^!c++WyTn{kgyRv3lr(}o^UuBzD9nu4gwU!f=s?0V!U7*M6LNoVDZMMBn%r^WR zG27+>uFJ_Qp0Q5`HW~L)znewJI?eQe!vKF?UR{Qh6AT8&qS0d?m?S`n?bcjbX-M>3~b`7$yC zvd#lTv4&Vrvbfk?=p-s;{?Gt}5*XLdO&^_`KQ`Ujcia89?R(Ct)%~ZN6Ex|~Wk>DA zMC0Ctn<~bK=8hek+q$)K)57ZQtNdF#b$YdaI12~P_<~Rh*@8?fEBJyD`Ftd5yvG~{ zK@s0YeP*Nkfr0V)1J@r~ZUA{Xjm3N0>+9|Mnr+|)+V<9$Y?MTF$9K8nvcC;R(e97D z#1|YtaOR5T241t>Sh}1qTfe~F3zm91ayKaAH2oY`iH^PyUqtcg6hA|SbGk7d@wI@M z(Sm3@f|uc)Gc&wObq4SwauV$24m$jxloDQM<7YB4A(aarYD$h2V}W$|rDXuqWjH{X zb?Q}RvWJjVPQC2N!KZWe%^KR=Yy4CMWu2TCRgfXW~fS= z@yyPl5+pOvr#>dW%%N$jC0c$7bSiK$Cs4Kj<5bWI2*oC6&oLUe0k(Q<4YgZd#%iZ zLNHhiphB2Y?6oKl=YehiIhX!uI+sfyf6{QPG-vhy+1s}B9CtT*waZ^e)P zDEpcqDa*No2HjJaG3f_X;B8S>nd-v%(qcA?4^8bbI`eaZdGkmQ?mdumn4cVY%r6~mwY69 zky3PZb7u1;>j%zX+v!|;&nxe_cHrP$2WQS4oP6{a`T5XJ5ZcdbtzJTr64qsHX=^>4q~vYt-_?lug*+oe{aJ?jo8C{%->L{I_-k+@%%WYj$uujSVH3{xgJ}1VsbjRs}k_GSa|9vlXjVU8`qlLI!;>I4~h#R9O6K&qAd$Y?N9$*gN zLEW?q$(5{mQR>?GP;wPYJzCgcLLNN7DJzVHmO08C-gR*D(3zWAiEo6c{{kz<3?j*x zZbs|D^CxF!n8@=i#m%3*b>pb4-0RmTS&EA+4K<6g*k2)7YP=%c*IDyj$kv$b{OO*& zYof5eF%{nojNAhC-DD~1sqAdt8{XFX`uWYwG44y`1@Ss`tNm9_Pi-mgG zovWm43pENlPJ1Q4X{}x}x7I4=?6p?AlB<+kxx!it9`x~r&I!|M86TXzHnH~H6RW4z zDl1uIY}OfX$1=HMjSdjr^w`iqYBc)1yHBtAjfKkap3z|MNNY8nOwC_;bk?BCK_v1% zzT1-W`5TdW5HjgCCiSh~5cz(X+wy(Ibl1kEK#6_NaJ`hJ%D!C3KI=V(+PWY7QOsX? zz3+^j&p1w9SyjS$+M{-!!?WJ!WYS+tXTl%%r?c7g{pm~{7dD$o2f3AuFK-6vW+wff zYR-R8I1IhH@;MS*-Lqqc5o59eK9P~#)wkl7PIra3-yyo-#tI3Qy??nOr zEzjQ+K7VufIC_Z7>qP2y*J(QQZK~7Mt7Ll5BY}D;pF&JG9GD#V4VqR3Fuo1#HYmreMk%9aprmJ}ujz)RI4^;z z-k=VbIE#Uvy6=3)jn9R>HcqH!8hW;kPd!cF4c+ZFeuX;r&oqzynReU|OnWo(!jQwH zWkdSX-xGNSShv`_U4cNw^+$|DwR90?G!v`lwMW|RN(2*qX&Dd&2rha#1f~nkC{b42 z^9#FuXGtlbAr_)d2Jk5UQ0ueV>Xs@sKg=fo(2fX1&-gNAdcH7M}D1_6Ks zcBISg>c4Q|CY72@-%pb7Y}4tL6``UBJM}0tuN3Kbu=|3rd`KEGh1UafUYaCG)+AkN zT>2an?UQCqpe2q7GX-RUkYbzxTOWEToSY6YNEV(62HlC^duOMjcP zqyJ&&;(g|G`?r00(z=gpx7W^D*5P^b{-j^=JK^yERODA8ztx@TZ%4PCr9Pv$QB_@8 zWmm>u+}@TiQZwTJN5%f}K20ti>aebetSDz@`}dCabpLT`{KM|o^Y_AzXN*rvWNdWqGZ1yC3fLWVKC7OuMnn}$f!Tw87VZzrxr*qZ`JnI-DVINZ;J(U-th9%KftR-_PKlaJf}5z@}r-Ke1nr`ft;?9k<_$L4fo1d6nW#B1iJD%C`N2oTscPy(%{k2 z4cF;NNwK_66pky0T;0x~~8OI~Ciil2(#G9nX!HEPUajpsY?2az?h4Iu1QC9*5S zx$Y=3F!tR9<-3JfD1SSQ@#1EvFiaB_HKtW@k2CU%{&?Q$DSvfwyXw_=pl z*oRqDeK|fC_kDh>I!@ZD*?z{ZIfsTOW``#ZOc)+Dj20$q^9dM{)qT+pwwfLdS;wr+(Oe*XoMspikwh8 zna%+|!of>M%+8u#g3eFGzNOGIMZ)Qp!4XlpjRD8X2Gkc!CNusibroKef(WLO;0hTU zeE1IO!8BDP)zN^hI*@YXt9&&#?mIOny%()A&*|~`c*1xtIz}$`dCDK!lQxGyto)H; zXCgbXR+U2Drd^w#uklsMh)g_}vS>+Pc#(3$d~cHiB@{~IyG5fG_1-AZW{-|1vH@S6 zKFk!JR}031g-IF_#1g1GG0TSD7=v4B8g7bqL5vm&H2gPQ%cXcaadt+*iWi2v7vc*V zaxHaoG?k{rqA@iulgD>RZ2hagjA_uNi2F*&HysFX!wOO{CuyhB$#nY3OpNSls(sh& zmq}A|8AQ<`pN!mO{HS@Dc+o*@>De^{(OW`3MO2q0*Q;a%@>oP3dINIS(-ABowWyq- zPukuPS&I%l0n0fsK3tr;lGNWIS85a}6G}rpXT35!Qdt>aY>Z0M^%O~nQR8YWRjbYH z*)t$T(FUU9>%MVp&TgKlOM1_58L{N4HCjzF#eUn(r%39}r2o*cgUsM;C6z&FypjCUveCZxwxcP;>Hg&- z3+)%cN=ut5H}QfG(`aG!3Ir=4%YL02<+dks{Dbrffj~MnxOXf;xj`qp!FP(2HTzv~ z*!C0IIVyDqls)}2FwyVj`-LGG9V%-`f59;#57@e+5|qh{1);PK@id+&mbz%<`T=+} z5^_AqE>q7gEU^Pp)5z>T=v|i(o+vGjCG~69LE83EZyxr^K*;#(zI*#IQC`P_jDO5# zLEFb}7X~e_+B`kxX98aK?c;awY9TTt9>PG+9WR{y2ox;uOD-KnlN9P{K0|1NDh$VwxAv)ovj~n zlXAPpCuP;T$>i3%b|3O^_>RbwB|AI3lgCtT|C+EU28r%~C%{x%r~?G6$0m<2^tv2l zmR0}UR%`#sQ~Mi->L;hC*AGljA6Wmf=>zinfKfE2%jIdq*jp~|{aW<8{rj(@LiUly z+I3r>GOw84d&o2o?cICm-RdWgr}rLY%{>}0Bg<6v5$&U6 z=ghA&G_fdZhJ9{3te;<;A8IV;9fE%I@{8kOBJ!fV@toTF^KLqQpmxKRZ#w?`xrK%2 zbWY8bI#(ROqEpIjRMRu*vC`n_p@VK|D4Wb3Jz_l2zHY5nJ8-)F+*b_U@#3LZTy=bY z!I(KUQ#(9UD$N|8$>+~=(nHPCV~O|psqElSY(I-=y$N*$JKpbN!13$ z_hZ`@Qm-W~VCM>V%b|8(gBg~k^~6HK4>H%3s_okPnRffkdhJ-HTCG$Lr=bPliHJ8M`&6d+zE;+(R4eJUSv_3o zkj^SEhX?)Z)Sa`p&gOhCd*kHHUCs8H1CzD2GoQGoy|>xe`~0MfxJ#bEP$KO{T_^cJ zjH~~?(asl`+4kI!pLXO$@L#BC@u-tVK4&6dq37aH<5#5V`5+lm^NX`|7g(GanrKYq z=a=RGe14wC%d`2;+M)F|bM4S?Pj9yD!!CcXf{B&+@2V4XXjB?VmB(~qI6Ybk3X~2 z_T>jfM|gzpO<@CL?`)kAGl!nB(T~|1yxjXE)=lrv(U_Nx)xA`rPMMHLE$dzR5vtUM z|KF{zfT||l^!ilnSno6*9E+vASp6%KVfU4KO!9(UaOn4g?o}CW>Ed<<{_cI$vcQiM zO1X%R=6H0nvn&h|GPT(eV#v=g%~IZPUXeKe*mT;JMm#=FxQ5?T2Lyhe(*#w58 zbZx%t=n;9>&YZHX#kAC_o}`9;%EXCU(S?4v;9AvAF4xSJ+x7#McB!1bpHfuQxl$!3 zP1c*mQj=d^w)BvzdY!sf!SWB&N3&4Dcg~UbEz<3~H;NP&cx2@){z(nT0wo=#cRFE; zs%^Zb)V8a8TH~FnQK;sd`C7@C8PAnvEXRhZcN-t6)kd(Y#=hivd5iSzf^}y)OQJ%2 zFmK!`dFA#vuAzO{bFDl{pjP2CepFItyja09PWiN(wd10bqjXaGF>}Z~gg>%B!q(qE z>dNMT1l21LXf7g}YUsmM$6i-e$#l$zDG!(<_QVFx>qe_}7{+D?zAv2_$`li9l{1gE zR;qRKA8XBGRd>R({6g(-$mGtD%UdZF%f>?!E0PD7O?TLUo(|UiiOQD9XQ6um*j`C|OEZU{(r` z`P-SL{xM5mae(@=Jy8hV#iIJ*$|{?~%xW74jFzk-r(wUjl=I4f51tL?N`nQ0XSp;{ zR35lN)@qd>E4P}N;ISZ+31IS?W-*gy6#yTlZ!}A7w~)z^ro-!*s&A$v-zrSH;{)#A zBh*R6XBIj{A~%#FIEr!!95yq=L^cU|t~f;1%ih8Gmz-IoiZ_+Px0lT;8= zE_EtMU+7vzsrxG^_k!9wehs%*MYMZ0mI-XDPpPi5#*Jw)%Xk1KfSe+_25)_thrID# zd6G-Zpb8R1j=kcn*c`5j4vmf^2gwEw25&SwpW||8iolOA=s46 zbZF9-qxrHqD`=l!9uq-yRy}BpiX}r60bXrK7wUXhd5fPclhb#p64tz(zG}5<4LR9OpRvJQUa! zRTIX`f`b$H*-3ooc+woI)pNzw33~K;Zr$*)_3cXR%dAdET6j8cv{;NGdh}l~=>MCf zic8Y72V${5bcdsk*8p{(T$ts}r5i!sl>f;|IvFm^N>Yf2ZS+0x6kdz1I0IJq9I{d$ z#IkueDAvz*J2i>bLDhzCSVe-nG4ySb}N6uht;EcB3Ax;-|Qf2CA1 z|C+RS&r1V%N@pkBuQ_*t5UJMnEvFNs!Ne$U#mY0~*%7JMTI!5a`_zh!BB!HM(9H9( z8$6mgQOZ>RyHCJ?SUJY9mtmC(CxvH0yzMztVh~L^f7RDotFkvN7@Njq@{PoR{}SE& z{Jm7;lk>dT=tD+nhF&I(+-QgDtHaiw)mDSvlmF+GRBVuI8h3~H8;@`O3x(SZYZQwu z9v_YUrOO>~d-5gjRd=Y?`!&?>kbXcNcFvph9wUo}tzkW?%%r{@rXv6!a9ubz$}Z58 zvqzFkfWl|14%lnTmGaqmI)lbLFc;zLpaqt$7tbF_a^ZLjrIsih;(1-<}$$vHzQ%pbFzaC8hd5&ZT$fu zyIuEisjVX_eE~yeWd?_A<|`)NxR4m{T~DIJ3cPA^aoaNrieR=jBB2E{%vDar}D^I8!qZH)+D5-C|#_N*nPV{o`#wMzw zsxNY5XMOJufnF(p@W90vp65TV?#uI^BHx#~rlujY`5VeCj*tCph}J~3l@^Rdm%M^7zmwt;an zmFC*o$w!`eWOL}qsq3bT?Zx)YWVP>nDmLvnKiWNi`fxpC=W6Tv?EKM_&)ZWwczkuS z?_4bJ-njx{^v>NlY-dVy`pmfxpRFA@wz~XG&YPRFf^1!%xBS5~6Kfl*`})pfwRAsE ze7WwO9xmxK?*D}syqh`L9-GTOp2`T_>vylMugo=5;dtYP01tang+sEVmcaQ(ZiavbBIQQA}>hOm-_K!llDNz0_2bNiz=IRTpWw~SHyJnw%V!6EX4>Q*tUaTc%HqZAy&-g0& zjEqz7e3SDHb^gc8owX|JDm?q>Uo5}qIZK(7k8Gd&%bd%1-Epq|?6((MbEUqIe%@CX zZaJ}Uh&*H&C%NwraV`p#bItiBDYL59{`vL$%|mnYq2~_Vb8_a^FTLQsi<^9+KIcuG zgPh6O$alp#IrZ?VGiOdcY<%V;kDNUJ*$+N;ZEsxeAlDX4iR*JLbOc6)gICN|byw%e zlzsKjJ^En`>+sss9FLrREIU2;eoIHnMXddJuf?s zg%_ePX>NuGzvOd2{Me4`hI2kI8H4)ZS8gnX2fyHVU-15Uxpd!s@ZHqCs*V%-gwt2u zcq}}l`JVGH{=n2`-|?)W-tlyeQMYsM*2>DUR(ML~2VcH?`*W9rU7rI~tIxCW@MHSC z)iZMy4~RjjO68^oa4)-Tihl4+e{P)QJ9r<@w?ra#$03ecZ8NMV+ z6=1oFQ$_?sRSOU>9si5~hExECpd(?zS%4?d4I+``u{LHqix7a8q@tqopB(5pq_>8l zWz44hg1m=KuKX7eH>oqK$wLhcg>Ln{227st8i9E0d7)Kx&ztB}Ik9`uYGY74?-K9p z!e?T{>I!Uxm-wi9gK$Zg6*n=hmd~LKUg`ky#Oi@5x7Nw%44ggfE9Vjtg zv6_>nJJKAhShdZ2fda88Vaq`Kg?tD!30_K5m;m0lg!Tyms(L8YiU3FTg`cS2@`?Nd z5peJd2SW!3P@riDZOBxbhn)sBXqDa88fYq~_%F3fV%}P1s!s43E<^&!zO#K`p_b5% zTa-x_+1S2E1PL>Yb5I@=NuNq)?vz;b&sg^}#sw=1pa_yH> z!CJMrAy!Wn%-IVGCP((m<>oVzu#D&WOm7erAXX{~Lq0ApVreB<#4Db$T+uKf6qgKD z{&$Ism7vLCH34a?PHm3jV4PmHA}`pt`QS}ziXmC`rkMG%cge~sz2O7zVARB1?-LG@ zr(GxZL_>7EH}nzzXMM5PoSf|5c#s2^8>~{;{c=;##&J9r=We=S)xgx zeYlKTW1$W3hQgQ`>Gz_th6qtp-7>$=5GvsO94{ja=#o&qD6KTnGP;t0S*cVOZHhyc zwM!J_4LRwlI?4fF+!mTpLoK(>1EN6%UEF9DiaW5yoKFsk4Ya7r$x?l_ie{kW0OfQg z07*GPY4vWJ<(!!Oqt0+~4jDQ8L$|2h-D$GQw zcy^uQco{nOWopJ85ikB#7v0ukJjnWVsijvOh~>~AjWqRkoz;@buDga6s?^^ zr|^Z0WU-Nt`|+{KK|4cy{(5wUK@8}HWN^QRT(Ni4o9Z*3Snz~Zcr$BZ{4N3Lx#&jWD%;s#nT1e+CGwkHkELD(%f|&zzmM%(ae_}0)`k-rD zx&R*CCn6@>ODH4MEqpo=5y82LjF6ANf;_lhE;p7*R0ip00Wq+<)ijGE&8RnZK-H{p!lsdgJu4rRAdyO35PA`MZ5R*OT!u#$)j z(vW0NitpFEg-?&U--qAYQe1nfP4PS=;U(-DZy{Id!_tks%T|7B{KnBX0Lxr}6Gglb zR}%12?1<%kLblk)0>{3Q1H{09Ml1(&tXL1>nS#T2V?4YQ(&%;`v%KSsWyR#+d~6fV z$?q8>r&-W?W2cWeTR(Nf0}Kn#eL!}5eo)zxpcy%&<%PPPwd)IzE6nMY7E(~KvYva5 z9LJ9hYNGS6r0s|baW;8_A8a#}2lVW9*Q;4r7oHdwZd*PVlZ79~31T_)p@5~>jpcko zTIzBBg6!h_zQ?TZBYbG@t5dDb9Bnj9rgdBRo-s&p$8#mj^Tl1KZG_K%LdADn3fL0g z(H|!KyV=O+%!WBY9AXZ>*YjAzY}-^u)WJHIBu~46@&#fB<2u&ns91LxBaex51&^EA zn!x{IjZz3nPb-=fapdkXs8EGgP%jp^3$m{Bdp_ zdz4%Ex%CXUj)7~O%`z()+RLb!aJPQkHkO|7Z+1)BLf{j=sXtqG z(qF3s$tVbNFr)n@Z9-uj!CnCGPqXLg*upH|xhs3ZUwO8YhmT&LSX2arC=%;*zd9ux z*@2WrQD2$7up4~{0{=1BXE>AcR5uMKEt-G}w-4)un z6ml!)+bjO1zSZB=>z%vLSxZaEZU4QKne(jYaGmDnXb)#rzJxQ6=cpA3Rnjl>yR0*B zG=R_gR;5_<+%w*rYjZZH9;Mt7^-HLcFZ;O+wfXo_sQAUsz05ZaCN1%iEY|4fdTaD# zq&Z=|NguD^sjec2WFo4BE8BD5n{N=}=ZFp!qE3+W_2v z8Sl(fl>V|*(wTLyQ}*8Dojq}>@3Hmu&Q*nW=LB`;JKS$Gyx;3oCD>|Mo6+@X%_UXIpXo35d5;l@$sIml6Dx}5PSP?0MwWy|F8 z0Y}*Em|hy<9YDpUhT)G(C0elr)E&kIEo9KaOlulS3Dq`>bQ}jv@hNEOo+iZa;k?+Q zmXY&0#;hKW*(q$hXE$QXCeW)|lj@e187thmI#3gm&iYoQOVsk^4AFYPrbLI5wA}(H zDi{5tZDrG-L?RiLyf zfVB8wAo2O72eN4g$YNuQ3dg_NU5=ZArr-1jxV`#=i;zWjo%y{BW@)Qc{PjX}SM2r*1?f06M z<*~u>c42(qcr;py%}!K1?Qt{qXEX7H@6M3aWPG$E4?A3M>-VH75}#%#663aEW?~Zn z(s3^H628y?m4Y?z;0$y5AXT_NOhqSxRg4ZiQE`NY!i{Y(29d@g-&C9M{3brYzxhQ6 zd|k3&o_pl`ALy|&uuRh4K&q)Pv#kC=Q?U0+`k zACUw3OLC7oh)=;N;~t<8&o4F{;8MunD|2%j8=IZhbbVn36U+5!NQsq1eez>B7K;V* zgD{-I%Za4bG{7Vo`YDxE!a zS}w$W95>D5I33)8O|v)G|7>NhUOe1dt<`dA&&{#Ws19XkixP7na7X%4?2qJ~K}I`#foLGF^P*mODFfp0MBR3x zz*0;I&sAKc~xaX1&5bjH7F|a~^y1+!-0K+jygxQ}3_W8 zMmz2}Ti=xLB)o~Vd4u^m;=8X5Q9L`&q=$Rwm22c)6E;o-{XxRw` zsbrE?ARUp*5K)kyMrTnU%TJ|9l~gS+%x7}~1c&lwQxjFEjMnqmG*&uqVv1~@aEA7 z#sxzqhuca(CEq$pYH@l1pMAPI44hgV7yxZI%;AZFT9hhG#T<|qNLqHRS!u_|O1V)o zbjVJoDs6RaWN0`x5%==tN`u_x(ZVF%XNRE$CmqX<4-A07k(P!jIFJfl=)nYjjMQj+ zkZ^hQTmSa0zc+6-zZR(w4g4;$$0P@dF(bo(2l@Gcs%nfGPCCY7f1(Z65#uk5UHl-` zq@+KyH&Z9LN_5R)DEE-Z+@_PQx6FMcjbdr?n3ox$N5W7c?W8KTnOf$&mp(T!;w)Cj z7f4N=9WJFUA`L^OA)w2m6S%`;dw(A87frU)@#y@gV1LK6|IG_>3D?O@ad0}gla)-* zuhIi)(<`)EE5%H$T*`@SVO~>e*_G*LwNF44-Itb@ zq@~-^)v~Pn*s^TPvgGl2JdWddCX>lzGMR))G9<&0>okNkgft0h3Lyj%LI@DDL+Axk z3Tc{6DdnM*-Q7c53Ow9OAq5JQawzR-+3cPk3Mp+fn)7>?JVRyz`#jG%&#`P-(pp-V z@A7`{<^TR)Z4X7SRH`P7=E+@SFAc6!@}hovov3v`??RCVFD@u?SCI=XnFQ#3-;8z> z`syCDwo>+c9^%VBK)JnT)jS|<99xwjPG4zus!Vc&nX6aMyw)=-JIJ*P)^0a)>H+d# zt|j_BCJVGIy@HCLW;uYD1NZ!5u(F@tP?co@_-1vndTP)Oe%32V37VJDm>EexK@p3# zk*)^}Zmb=m@S}tfLY@zjL&y>rt4X4O;-KNr)SpE<>+Z6e$a-oGAD-El1emsyxZ%E( zUh9gVw83*Zc#XBAo6D}#5`CZrk`6WBCYY<^ZnbeCg0%8+B^JpyVjapWw~^>#>O6I% zgxl4mH;8oP>1xkC_{K}akzB2oBMocozw3_PBRg_Wn8zhUc?|@({gb#GO2hWR3MB}7 zWJrW#>LDcyk+Bxfq~kv0H+k}1>Ur9LR>x?_#24bpxRF|_DbHT7{rdCA)Tr{vr-MFu z;eMpr$)1C_QQz8m*xvfWZS4P-r@j;C*t>&cTcZ7qjy@T$lYkoE*;c+V{O}jPFgne4 z<=Wx9U-3q4mNUN-6O7vET$6Dn&Yyhu^!FD=$Jjc``{f|YJLGxzjW;Up8()a4i%CVZ zpR#_#j=&^EP6YMrjUscy2xW1RrZZ@RE;Ttk3K|y0CfY-v779H>Y|>dPg@}8+W|u z_}w=h{Lm3~X7|e$ci+Vwyzu&8)IPFAh&g%o<&W*%(?7bWwRzWzj{dqgzyCU=z2{~9 zJ+ImGzdUwQjy=M`oze8qcjx-oYzh$aMaO>lo?mSXIP{mx&Z%SDm9q~1%;UFh9Udup z#_`K9K0aiKBWz%$dgd9PSu;u%qsVEqfEtu@q{Cefi4pH)ZQ@K6vrPN`m<{Z6)TrI~OPFdv>q-8X)I0+BQbL z$us8Lsq+N_Xmq|aCY>kk6iqa`c_+WpPS~{WS<~XXGO1O6*WQh0_v#}hM(qpwGA485 zh4cFb=L@g`!ASk-f-^duiBe_v`nvmb&ZcD7&Of(#;luN1ovZTVbL~(@{$6Rw7vC7+ z0ncnuAoyqBRsNhk=Qb{QOHW$yr+pTKN8@MS6RMHGAAaVE%yO!)i*Wf_t*0!$;o|rH z!i)RrEZHb+w?hH`+Wa{uDXRIOcZzGCde^Ih6TI*~&XVb)=U#$uIhJNbM4LBUv!4Wm+hWW=kC93|3h8%{MVd4$0yDlpJ$vyJM$(QYlr7Hmo`_s zSFAVAzK!lxo3qB${a0M_)@}OCo~zHC124W0Khr^qyttk2J=$6-M-ObSA74HD3@?Ao zOKsoW+dlNxrhUPyNBCpxok#y4G3|&vZd#oCx3T{bu-Gwb=}scu$e2u~7t#xhlZyrx z5VSlCnXTvGUGUn%M$#~FCefqwkKLuX!@EkwmD?X*S-IoOrBbQ9^3i`Om1=G`s+cF9 zQhx8FrP4qU9^!{YxEv{Sp2#fp;XU$)c9mQr^S!pA*z#Leg2 z;meiR;2AePt*#`z325P>k+hS2%9SvcH$B1Qau_8H!mlpT?d%Nb7rPPT{#sx zyx?Uv`5G-`8{*Fwn|0I{uLg~X;X(Bc3`lWEQk#yOC4*kPMZ62{tBF62M?+kpGy!2a zX_?^PY5$Tqt7r|HQCd>`Q>zp;7SF0Yq?tHg;PPDT`@G=LfoC=Nie+j+KP#USE(;xZ z91cRgA+AkajjAAmK%Vf@^l-)r2*m}ho`@Eso?RZbpdcOuae;HxByk_mv6BK?M)f!W z77|;q?ILbJjwg=n8VzKt_m|dGy_hdo^1gj=U(j!LJ*R@pfPWd)Bn2Q;(j$+yho@NM8gmX6U+58GGBjiMke&5uvhG_)Ie zRvVLxvo*8oIJLLnb<~V}j)&%C!s8`>Vmy;*-~)(cd@V0{0IF6)kj0OziK8*ANybJU z9*VjahYl*O{Npfti}H^rezfoDy+685X*Y%+RQ~Y-Ox{3NjlM%`jwFd<2K}raIn~hW z$rC5Pk9_(+XyfDTMWYFDtukmx5p8+k$dOhX1*zl%i5tj(W()&`3I1 z#-cG0jX2nuFEFiwBUa5SUsSg{VTX~gXxXW3ryee(Z8MBhP-CbvlugSmwX1yvcQU?J z#u{vpIA4a}v7nB0Czk7rli;fbY4LRLyuW4OaF z%Iu*ZEZwkU6k^l?qq3iAhD)%#@RE*)XL}aovuYB3&;-o=Ip17G9 zpSifZ|GaU}&|s{BpHefUEc3!6H8!@3HhdeBMSLgX2g%^UV2v9rq^ru-AAN;PPgm<( z?+yMh{pd$Z>8oEIKK-q4-TVIcfANdTO~;Q9_wwPM_4Qv_Q+BQ?m#+QQ+WM|tyOi^H zeQuZZsYOlHi>Zmqh)CkRR`;Cvn6@-r8P?z&dH&?TQ{3&F;Oc*oU8S*u-U!Bj&{g!p zu2Vt{cy#a>b&p6cnJ+;Hv!OSjGe?_F_1kF9NUX?*?Y1ulU0Q^lJc3=7*Z6aDnM|_u z@qzb;UyQZdd=k*+pW+{JRZw$9=oYBfq>BUsa>yH zE;;U8bNQxMtWJdEsaiGS7Qo(_vBcUOesukr#a7zV{6xE$Rpz6miRi-itD{E9$n>W< z9TcoFQZbPF!h$;49M7hUBJ_bfH>VWaHvOSCjo@ zBfXRCHH8F|4q&H7umuxLz9%1Nf_)~$QPxqC(DQQ49lVoH9UY&m33@GfAN1iO-99=2 zG83G$#Thfcde|=3D(#~s%3nBke)tV=X?~vM1-sPmY^fTO$3O% z1VJpQ#FQyu%5X)4;{kG)Sf2=l z9Tl0XP7!7$D#~UDmOP;CfJo309Cx3YB@0LT$Vo6{Qk<3^uj}cIp(o~ER+?JsRkrO* z=;>Cz<#?ufR&A+cD1ye?Of-6zE14Ve|_Y#Zio` zn}rBx_*^auO`oPaz7|%F^Agp=F*L|?aiISs9S$~XQTmJ^lHr7*p!Gfica0lCr_#*K zUZx;Fkl;cEqMo175>jcJ1=u)GkLU_okYx0o&as>vTSN*U9J`!~Ww(mfZ6lsWHl5zw=9Rg3=Tu`8Is^K>T;iCJYJ1wb1{uh~&&mHCmxW*=xE z>x+JdZS{^as|H__sh`d?GEE%x98tD4IpQk*j7(7Eluzc&m`aqcK9Eo`c@);@7h@79 z`=GgXc3C|vbDrzn0SR-Xd3-I;0P%hDzsX@Bctj3W{+0-(kQ@8%Xsmh;Mi-bvR13K_7V9bUSEuIXf!G`rTY%}gk$w+1tgDI z`)H-HzcJPJ5oiEpY`UzVGn z?{-^`s7TpxM~Db}3%Ppu`(5>^eV0;6zPu}xf^Tf+4qdrCJr|2=Zru2cZg1|*$HGS! zw=Zex&1yr5dL;$WW+Jxn2%){$AO2!?qR-hC<-+Z*S5Q?eJxx79ce3z$sB6LqBmLy_ zW3%c@)%U{lH~@8a3(|+6#|YKVN-g?3EAXO(O$1ya14Vk3WCvDg6J8`)pCwz>N{SY> zC?rS04iY>WS0wNp5Eja~K%NMCo+I>q!B7V5W|^)szPsKIm%Hh>>BSem;3$@Uhiy*O z;~P7Qe%?r>>$$giAiqM1aKyS}v))$16Ww$|F%$9b7oerS!`8HNBlg0*A%y}h5mD}H zH`bh~T5)r(@2K#d*qxTtR*8~I=fAd*O6lJLKxwC_4lw*tuxlgFuD}UdZ|qJ3{UF#k zdk;6N%Fc8@12M1xPClVtuJu_*ePP>7#|a5r@oHS|OQrxZ6ZA@i>w;;$Q+Z%nd4qcK z%G+Dp)T`d`@J-jedcXgM*rDqb`#$9z%NGxCQyx6G;>FZyb?5MbnO9wV>n|PU9Q4gw zSu575arC=m|1FrwVpqu0AWfWM0p&MSWYVE>(YADjY#u$NtF}5z3@<(;uEo?vwPm-S ztk8==U&@h2U#ZIBD}-@HTZ1ntSkxtGDXeKD1x!v(d^3pon$0Rb&)PzbLn){ueJqN# z*nTVnaJX|cjzZ+P|5+oaMYTv6VidSb&6q5(q<*BWm>VGy?T{bD&@V0Ndfm%-shu+m zsKRP{JR4!DH84$fR4Wd$aK61`+j$vH!7d2Q3`9AB^kQIDzynU9O(A!p1~%Z@>9h&Z zK-UWuOa>UQUdxJMF{j~<;%u@4fR5HRv^luIL(i2$sBl<+j;H}tSwqwcAG4`deLWI^ zotdp9GUlewIq%#8>yT$T+a?PWT?SCvg-BefdNF-^c7sFn1}6i(fJ1#ll89X22O8tzg=4DTWKBpb@*#gicyzm4TNXjg+h@U3(=) z6v%$VR6?T5jg6HUA0H- z>WZbK>Ia9vb>rt#7~;pYyhREY)(9(LVx7aHiRRD~=g|`%82j|t*E#-3FK1|^tN>@j zSw_~83==ib{A8HPpd9J$)y7D@?~(B&TecpI6Rt{zCNG3YRt^-5tu!N3#EOhXHU}z+ zZ}E;{6xd-I`G}lof&ZL(NKpiWwatNCPB1M3(=Iry3`JlZDJT*bf{n~aKV!*v`9>uG zI4JLm9;}53n7X8&XsV-yB60F+VA8h?OkaQ%;sulPj%IaT?-L2ks7y+Vwl_xd%HQ?x^Q`FIu=dTbfw%}Zgp`k?A+|k zK5jPZx*acZ$h1GI*rR61Da9 ziVam2&f-etzFKkJboSoV?s2TuM6^>%q$DLG&zc7`ZRL@6O9u_L+-ndNZ!}m!^Tm=n z)jsjV@>;@f?cLi-H3ZJRcGFd>n6`Rq{pfWdlt|FfZ4kp~VHo$|U_EMJ(U{EGZ-4b3 zE-zK9JWS33AUMXK*sHUQ?e~uL$8Nyi6a?q-fQa#kP8zHo^eoUHh80FcDot05U}C{x zt1L2$y=omkQHao{lof?Z_r;6CdHB9Fr@)FcT`RqrT9^C{K<&#P3V ztsEyGE#8K{p&nY{?HwgH;}xN`Aa_Q`h?ed^cdaQ8mV7sn0=Jy9kFOU?X2~{dZd+U$ zE${*f(=O>nFS>rb;ipNwtoz6idaZU9;OQ60lNjQZdX#zGton77-HwnF9XSvw`6vI+Db_3US1J@Nt4#~ALJEd_0B%f8sNtlceGJ{OKnVw{QRKDMl zlV$yiH@rjn-mvK3{@~`V_YUt~QPw>#myLU6o_?Kew+{d2?e9GJI_1)b`@`=jmjz>D zgef%xri?+_%A}iywK!-lX1?>(Q{Pb!fA^VZzNgpQq_~ zq>!u5goEP&{ob^!rCJ;%Ki{0G+9lhCp)jPg4Ww7tOU67|%qBZ)=g-d;CRf7q+o)ge zC!n5Jl~;x}GPY1XLODS0l=#2}rX?rAf*GZfRir2+tC&r7P`KDMy9f(%C|yctoJe*u z0}!{MC1S~b6)|Q8lxWECBPSnMp4YbHOIQ<3SDl*({4jwl7FdjkLgqrRx#%a^Cdtad zgfbaR!FZZw`I9iZv4MpW=|{FHj@I&B zpl1F9pQ8+j8pY{Q>u$f~Jb^AT$7FHC>B^e@m9NANuTqUiHK2pgpcZ1D0RsROde$z- zE>5iMEGyaB-+B6#0Oy=!qmf91#N#y4h-;Jv%f8l7{w=?-kbh_VK)Q-eZzQ!+yy{k} z=}B=Oh@@k5B#wc*DOO zdyF?|HkrUcmUaq!-n7`Ll`I+upR5mRcu^#Zybau2)cir-NNWwcD7~@)!$?|;-yUj{ ze7t}~hUnqo81k85IIgM-fgXkM;zLGSI#_ZAU@J@DPuDp$nG5UVPEogV(V8>40|v}g zdw18`Rkrk2+%wC11wEvYtRSVdXpF@`H5+}3_%<6#DaM32 z*c=@O>JT_x>e0}Fs;|K+0hZC3H%wB%;nsrvk84en7FdcK;Y`LuAc;)chD`dvX@A;S zaxycS4j%H~n#7Z&p7?X+`@@`iiAwzAYIXR2^#ccQxcJ5cH(t!w1KsKs^!>}l!WI+8 zB90P(&eT>q5>-z8_ApH>l1lNz*DKEz(`aCUd|Kzc5089zqz)~D+2=3Fc(ZWV1%HzH zCTT?*6b5syS zkasf9B)}jx!f1NSC*moR4Z*1F1{+3iWB}7DV*HIT+A{lt(~btW)IJ~dM~bLi8q2h3 zhG}*pM#A}IU-^!@Q3z8HC7joyQG@Q)RP21I#iKF)+;lpeaZrIp*>|Ui4Iu)(SR|dc z3Q!H}X!&}Yd&nX-84J|@Nm^n2LdcY&6=O8pUO0!sYlsI0%^oQ*I_{LqVV%Iy>!Q3X zh^26@7cPV~L!2;3E|O8Rh8#5|nw@W<gioujs2+Nhp z)u2EEa6R*a!cu35yW=|akgbJtL_6e8(}?#|w<*`dsYTD1`;?FESh`VwN?B#W(BXx} zUo6U3n)oJxN++(A2r#o9v*)6zNg=J-$waU>iru^ z=QA7STKW4G<=daF)XMkWckI{|t@l;rKR;`0qd8S&e*D+5vW#BwLu#{XFcwG9eT+gG zbR>8vH%)J!>rAPiQ(Pw&kH*3X{4^DXmCvbD)$Kc5a~1V1h3RT-Vz_?jJMcZn!=Now zNjv_zXcTXt{Upn^aqt|>%<)8lObzkCZ zNRF|w9qJY8W8|+)l2197JT;ib?OkmsVk*l#2~rVuii9BFUhERleEf{@@{gZ?{>_D= zdYAp$dq1lyZ@-i3QsXxrb`Y8BTW@{vAG;gbjF!#Ts#*0>Wo>!;W0zlk#i!o*rrJ<- zd*Ms3i3b*{{_3ml-rVeFv-N5=r-+QP@d;c`8~zfWn)_j_{`}b2m7G#n7K0YWp%)lX zOl+C>CYLj^%?Qb)u%t%Ih)lk~0%EE&3rCVcpg1Ebz^r7Z@>o@<8W}ur^aM(PyyH%J zl$2(dc90gRnwB_okUU6>rr2DgFVm5M*x@^TBBJHAB$3q&5FGCpaUwPS(V7^H1RP0d z5MsA=#YxeSAZUL50VI8tR?cOlF4jq=_3^*2ZldANCz4XrCChX3OV}gC#=-#u+a!-QZo&$$QD52j?^<0A6FL62?->rRwg(3QcbIcv=knNLM&a-Je6W)TBU6$?vCI36&6?g=(ZbbOjjn2Y%3YnmE3H9y^_nK(RfMXutZjqVVn$_nRbB=Lz@|YUo4S| z0D>>urXO|?9GqF>SNSD(()SfD6~`fiM+U>uvsv`@WL^v5mNTqaVNWs?Ls7=9Z%{2{>l$*p8lNp?Gv#u| z_q>nMJrp~{1H)1>jVTOMyzJSZXz6Mu1Dg_3UyI^=qJExX#BuO*?i&(Rhk{r>G0@yF z75C&8xI$42@yneYy9e2DNno3PkeL_A21XP*a$qm?M}v%+#mqT1t8klCWbQCdgXOeu z^aCYNW{V8mU@>JAV_rUz)s%%(mS__r}B{+ysn2)A}oU0P-Hj8%3gNZ-# z!yu*xlBl&SSa%6n@6Ps<*#vc6CMLp8$Z0tk&!L%fQu%bgh+E4p;8ISQPKz$FGnrJh zWTAi${|BnErZt;WPCTK+cC8lXx3$_Vv0%;>*x_TL&9qjsavv+~nl1s*z-?wa%Q3?V zX_arx^bfcpB^m{?Q8Qwjd-tu!tVyHEf<#M zihvIY%rd;NiXspL84w$2P9%)h4=FWu2beRO8nT!jsy5|?MAda;=&CH4gkkdX-8gy$ z8FN+&O@fa}4vWBNb`h#lmfp6RdwwLuMZ4|kVtT0;-BvC&b2Fi3Bx-~T4XFlRH&qSA z%Mk4s+zwdEtv&3{B3g5aUacy)7SV z^-zO^M-3}Bi!(&M=joR&n(?@0MK5Zd8|hq_zUb8xPT3E6ik3+uQ?UtI@fBODDEbjs zZPp@@oqlh+?J?}Q*!X3c>8a>N=X~X5Ys1NzYvz6t!DK1zLZXb@)O8DL7`O|u7AsVd zm>HKpo{b%tf=xec7Bfba@&qgKXeVZ~yo=3{VqN_>nLWp-Xbz^0HGQPZGCk8)aWt!> zYw6!$LP9OtkQpxyr58Lh4fLsza<`|RRpVr;hOO+B$WLtZ2h>(`>G8#ZJF6wA2EOgbHM zCY32|y8n*J%H-+aKp#tCQ~e=w^Jvh%GEiw_8rYJOmLq9L1HZ6&snQmBi)lF&5@}l* z-Aozs$|UH(e4}l7F=|=q2;L|ik}Eehveq2DjI@;#s@y+`a#T8_2?^70wO~Hey{b5^ z8}r?Z4$y>AgC&I~1OhdFELTX3+HZ2w%(mOoYRwkS#tIQMTh>bLOKFjab4H_mMJ+lU zXRFQJ2h^$7(ghbR3{115L3IGQO|?T_q+-@8SEOjMvXV;c(|G`^G8W&#Slo#=zD(Um z(l?R|r-ouR&^j0A5d-3g5F`xIIhvtLwY1<7czCLTvejpkz(i!bz(?f&L&p;v34c$q zls~RUmynV!&PVll_K1%?lYQv8>iWLB;$*vB?|7LYO2ykyTHpU;7;@~5_uoOjx2^8X z9nVeN)NZ%5^dXRREaFpB7&Dazt6F9Ayo%;ktKLfzTJ!w#bK0zv>(1x3Tl_t4CKJAK zkLzbnN?Uf5J{DoIsc%iE9yWpl*pr5aG04bI;G|OZ;?RUx(U~NvGe1~#S zTjf=PxLq9-#&+6xAErnT!G@RM^dA6(yV9dKK)&N2m5`$56vlvb(<@dY>hH!uP#PX{|@728iG!e%t%h8bTd zGAI9)G4?muH)C;3yupH&PFAt=s@fMTxBcA@PJHccm2=*r{`JTHX!zUd;k{q`nkwc; z;1{`o@4W$5#xWFrE7P0bk%3nQTyF0HH}g5zvHxN0UlfpPN_`|<2n--zMhkJEPcdbf0X&an3?z(!D+C2; zBxA%mf)lte7>K|}H=0o*Qy7ZSdoqEHifjv3@j%wFuTQTB@lOQNmPsNrtr490)PZDY z5nJ+Kc4l!49$T|kq*=2e9$G#SnK;@pILy}23$y}ukT5Uq6|udVvOjxwsL^aSxG*_A zX4s(5k(e&Qk%BYIfe;-Tv)YiD$msaW2MV!L%3g7^c_%hroRZqfcvJI}UD8|pdc$Dd-(5BE23h|5cf!? zQlXs}Wx_@_BXlJpy-;92mRDyh>Er}DRMffPAVzAs(T~JKRtP1ZNUj$fo|r7g zLcsY{JDG^aa==)rbrDnc*%47n3;=sh7>|0NZMiR$W3fbRq8y2N-n#&XMvWNyAq&5* z{Tty_%Pt$BPNS(7CWRlO6m%l7n92NOXxc)%IV;AJXilWU zL(704DVsG5iA)9sRwJ~nP<0MwhzNEHl%JNZ_$7--VhEZTYGQ?opdqow)XI1!8VM<- z@q7-QFIOyFnk=4*}OA<1m;pDJGN*%3yvnJV!>2Oa#WXj9kV!ecuX)}@RdH-R6_q? zGB*OnBY4U6%YK7KAEQntAmSlNa6k-jIyo7q#*h=~BS*8i)08+Z#L|<8T)EtBu$2pz zD>WPPp=dci%O0;eA=el@^G(iFR0LW9K{cvAS1BTdT~@I&Ejc0aso>y)CTEceAM6l- zwoDNxs6{hoJLP$iFhI7V4Zc@MD+md~>YwhIX2;7Mumx)~>S_zWl*h zv0@Lx?2MprLb2Rp&o1{Al``aAw2t)q<5>5agU2(0#N$CIi5IR#QD zQ@%PWdP><+hbG_jmJXPAB0m%D(Se-5K{NzOde2J z%up{J_bk)Fl=0&ISj~%TfQZUoo;vIa4M{*EfE`K-0mzRLW@ZJJM8$Skb5ER@5b!(R z8|(?S!Cd{IN4y;KIgEW0rp$e4_{O9cbGUS5OA_k#WK0`l>Ka;@B6V&)GiR48lgFuc z&0!+Rgn<=RtCkA||GaHlm@I^-iUiRMhB>a;ArQi0zuuhvobcra?Se* z;ps;HffzUORk_BTH_iM#ulBoDvZrx0ys?P8blgiua0kYy1DH-GGI5N#Y>b|F z&4#0G!=dD-wb1l<(n-T{^(1o6ggrxv3CPh5Qw-3IVb{yeqYNg(!{1k^Qv%PcUV!yC z8ABw-Vjg}4&G8K)OmUG#@ss~{^0Vp@WKkzT*IqGp;});|yFu1|Y3!S0e?RskVv%X3 zg(PAg@t~F;Iwz|rVNrbdGGhZJ8?T8h`sk&i7qHIDWRn@mB;p6LArUm8~;~;224_sDxhvX~^Y?Twpgel~DwRz2qpB zYJ)Ij-yd`>KPBk-;0y?W(JRzVc@?~aG{*=87gsgtSzL*@6+}?b0D+TffKy8LAAMJ3 zY`W1`2CrMBin@eo#ZNaajC3W>Pa}hJo!s&J>4jmGZt)Uh3J=RkMmK~3$l+XK7aAvH! zkrKY4tYr@0<0PX1!M72p;YcvQRMhA73*xDC%`g4? zvbSbQZ^`G(-@as9enKl#99h*Uo?Gp!>O^cJ$BjT~sU@h+Wh-{9(MG+e`cCF$DABoMV^oCK?IL?x_(o|4jjgHSwv zYk?s%MT<(Pg}j$#10=K;CvI9za0fu^k~re5IG(lym?W!6DbfghF?v{V?-Gl78atqY z-L=fjtAYfnE>5O1OfPwe>4)a+r>lH$Hh9Gn3vhukD&a<@e0<+=rT9b7Zm)yMt*x#$ zYMZGe4uCXAh6W<}&(rhr50}Ukjgv%3oaY`nM z#$gFAF8I)F_Law~%cKiYveR*rbK&S-;_jAJtJW*IyjqQbeajcjP^sl)E2=VH8h&dp zVa)MEUBt6Q0QwSm?R_UVp|tdgKD6+-@$>$+32&zJXA{XrU+puo1pm%7p@<-wLewsg zwm(4ML}QrrS}fXVbU;|G$J5(d$|e4IFQgivtx~(E$ID0aUfGIN`YUhw)0j|~6zZTu;pe%tVGAK{Nf26p`c=I3kS zAstJS17a}=Q)xVAto;50+;~08UIhLaN~A6h*h8r{<1$%il||=UQ8yuqAKKqDfyF|K z;n$sEYDqFN60Z7M-D^a!4?n=&i=CtXwir9~G|cWTh?+V>*HfMqK0Ew-buiq#=RbMAZXUp z54@@7R$xU!yMw;QHfB4z)4HNZlZjHgJ?&?bN#%<5b9N7InCXlcA-cQrg8PpQf5r*)*&sO8&J`Ml7QJX)#L8num$D{i>^u3L{i|J^y5muV*?5A}&po*0`@j}RkI zb2U5haokGff_GD$_=8gI0{Igt6M-Sb3~!nuJu--kEfqp!C{ZPZ3t9!BA_RcS4Fn=a zRDqG@!99tY!`%dTB9dUV>T{eCmNyV+a_D}bKJZG?dr>k(tnjfMNKPIoN}?fg%F!iE zqBM+N83>=PU!Rr>TrBeBiz>DC)y2Njj_1`zX-}CsW`^t8{H{R~-oaeLFsZ5z!1l?Q zX15e$d|xq_lGqLw2&6b zoX1q2OBx&lmBJj}X()6SCCEKHQ=Ui>dnBO2$xXes*uc%G0C`o^-%*P3#gjrj(ojRY zXNw)6?PLuaC@%RuhYpD=z;y`zg{eP}6(@vuId^7j*L+$I9gzMv5$6 zd$fL!WRAfKK9)3+R$ZG=lHX7|2fi`<@&WJJ1L~uf48Q(27b!E^*OZ!!WrH~B?-D1S zB%^VXD(t(*Udjj_$k-9rwd5qtDn@gmyMW6IsUl;MmEMvRp%}hJ$!Qp^ex#tth>fwA zOhI{Aq^5DCF2YGlWwQdxca^{Jb}Y*PS>EBrx}?+$|1EU=4T?T#U4I?%W1-nI?_RO3 z7|AyCv6!->1NP6dzVJDkHyYEd>#sM7M`EuKtGfPr!u7~2z=5&O_Uohu1$f})B_aP> zUXFTQe#*99Mqfm!GR@;FAg=jr&WkS10rj=*9;9_-z)4aX{YzcVASwom2tntX;u|H0 z=Ayn z{!Qm%3A@^zWRNfsnW|_DGK+%; zCkU_~;tXBYMz#f?HKf6j9QBNV(1J_pZf?`OA)I_|{B@ZmVf!m6vHx+8@Zy)fY~vinY;pJQOOv#>$nV4I?~zOOI@aaW z5|YLV1~@Hm(e`+swxGqL$kCvHh6v@0Tn`>H4n%oF0HbkY0;X|IH5CHtV6Ox0Car6Y}n)X6wtwP%&~iKo;@hkrHvih7vs>d7CEDfHDB(4p34-KXKC@kNtI zz=%4}|3Gb)ehGRcSi6EAl8GRlNw3I5xvP7&76(v^ zG|3QMXl6(q8)adP=sHFQTRJe-7>R-ul@W}xG=Psp64w{4YBRlmYX6jf&@Zi(Z|mfJ zXb*hyXrl1pv}%m?e|Xg=GmJ-#&8oder9_n+VR#*Q7A9{!zrj51LX!?8lq zq?as46LuA1+!Ps6RwCx5%dv#{^(UVA`uqRO;~&_%{yVtugV=2sGXIcw0qq~5ykms&kU17eIwqRz!Tz!iji7I%4wvpe>topvd@TDa zOThK>ZuV%t*Ar$9aVqd*>e(y&Xt6}zOYuvNy#Z>1`aP0xPF&T4gTr1@dx$i&nJL@s znclMQlMrCHOreM7Q)nVh_=B@5IU?Yp`JMzI)Pn>Fc5Uu{W;T`zClA8&Dg*=eV_=$q z9ZKjyiR5y+kt?X7OI}sbE?P4pIMOJ@YlpJdzR&E(h)J3Dym8J&M=wtiRtPzRJ-b)% zj4+AULhZ%HPD0a|ujN*=>VOjq)~j4ki{dv$OEjVv($?uRa!@g`MKJxtRI!$x9JO98wFFhW=?z!@U)!qol7-|X0h zCCf_``itXky_Udt1Iu(en$5A45tH%kIB+B^tgn)?+~{{vei#>0#Lah8cB@=2JJ~Fr zYHTxRPJ?}2ALWkMu-;;=QPAkVH?=RjtSw_S>LZur+dSb!0=7fBBNSVX33H4Ccd=93 zQ`@T-*_DiJmHaqiL>JHy#U4_;BvXu_H_8x%J;cSY(Ttp_PWxftF$Xj`_m`Mklgi1C8j-G)a-Pe1t zbL0vCNEQN##3K)T%X83V&wcnoW&I%`1R5?q{KzBkd*tEHvFzO3ryhK5=cD=sG@!mJz`?`nj&CGT(%EVjW`p6>>zjgNN+}vCc!yc_A1+ESImbYah#?yy1WdMoR#m+ZEnu_$F8~JaBVL8nbMw{v)5EA z*JN*AzoS(u!9eVJ%KiOTtKUi~^^LjNO=g~LEblG-NB0_0Ge7WHsZ~B6!q564fEh#p6^J2*nOHJz14d5z@MU@L<2MBv!6)4%t(Axacbn z-8cLfbG_4bE73%A_1vq9*T2k$@7~O&^(stGuf5XJS1w-(`Dls-#Z4w-(cGb9mgwqJi86_q z%(dUIi5p2F!7em@b1{Ou*Mt~XdF%*aRw~bU`TZ%}g}x5E6vI}HmiLxiHH9(c>%)K6 zQ&M9@_bQtd*+3{$mBc=J2>&8et0N)VL!#8Zjb;OH-+o!-Paw#kDl2W+ySnoH31^_Q1O$Y9ihQQ7l1ZuP>9SAegF{&n;MI%=hSy+ShMAq3+^NDa<0MREO zi&i3{Re9!_yK3KV42R02DYsTD79l72B=b*qKFf7}@_6|ZYKJs;afczF_+u6`F;ze6 zW_6dmEG9bZ2lp#ApX@2VM41xR>}9hum6Z$9e-e9O{7=fC{pMWLfth6@oz6l<3N3QEG+@OVOelC|3caMRxhbc?tS*4Fs=uFpUy@*VG za;*N9`G2kYW?_lswh}U+Veh=tFNY^G#d%=pJ%@l1`^$`P#)cA>j}>v zei*Q<>A~uJ1(-T@uk8(Q+VD|OLu=^4y7K5+p2YRxl5%B+I)$M`ZTMRm2(jYcXr7H^ z%o5e@Zsdx#JhPlu^#5@|$BmXpu4Y=mAHn46bG3s}p0!-EEPk>i%3KpiG#=h@0!M6- z{x zF>U6JbLKh?4jPYo{wHmP zHb)YIPm`h7W=7hHqzced(tcv$j@mm|V3>uX`{FyLQpIwm@~i6Ff&I52o>-ZA`@wrs?#dDs2J>w-s`@hJ zy##fEEBh*yTW+9SD`!ZV<({;QtP!80U2IrN`?LwS#PAMeOfcSqTMRyt;nNT7dKyGN zZZt>F$SdVxzopxWRwF?+Jn9dr+j)R%RJ6#V=H9+yn&rDos=a=n>t~%STA*+6T4$Y` z6-)ASahfNID**-fEEn1l+YY0TTl%frsfvAjN&U~Yd&0gSzH}So&|p)T;V;)+;krKv z22yfc0>%6k)?FlHvuic0&G{x^kgZOWSt@c>hQ9PRTEXjjvojN|u-B~h#>)x6R#3j0 zQ^uoTEr--Z{`fgNr>4X4dTnOqvRrm5r+zS-Z7*#$D&1NI`XST%p`UkuG_~Y;o%ZtP zp7zvAIp4}>FI#Qb8dMnLqE7zP*c-XV^JTs!yG{I9!dj2!x^*eiqFaw(4vyYXDgYB* zR?1UTT9VfNelX+&&o7%&EZ?F<@R0TP^l@m1rwy&C;wEu&`N(wRf^#RKKE%+*Q>bBU zW1v^I)h{JthrNs&&{)iZ)d<5~MMz$jL_iM8l0wym((;jOUQ(?O++@mi#}UsMt#6@l zH|TntA#S5?c@F8J5#ErNPY{(K9c4zJ1BCY zs)d;br3`jounEs1hP#}XCJS__QT~#!U+tE5qstg;G9;Ow(kRl4BFP3a41>NN^>NUA zz*z+=9cVhu7rcJH*J|bW7QrWjTK8cLil#8c^OWG)TWYs@-8l-D6)8MbF3;7J^77gm zzn_@v_xV+SDV5G2l6)L|4{jp9QrTZ2YuQa4s$^1Ltd`m6oVPyT1xV^WwXuD3b9;aL z?9QFD!M#N2|34!NBix*Vhm4C~lXQ10Gr+E~Z1i*V$tP>K-@dnT`|XYQsDFCd zWyAMf#*cF3visijrpB>j4f%W1RvTTxac^hj9~`^vR2v0eI%z18V=^#;;r_p9C@aW3 zJ)LzrU$sa*9i^mZ*!Fz4HI?0qS%4CQ-j6RKpP+=E?UZZ1JPj!AhBvcQ`Dwd3t!Txa zinjaaRNrlR6}RQKx^}x;GRwF(Q-1D{BxNG*1qv8)lhjSE?VqGA!%1n&xL5Jdo8EoS z`~rUR__YTP9H{r}Jj=fpMH=~GkevJ<-22}X{TKto81z5pVxT&TS}FI=_>f5OKs`LS z)LZ?~bvJzRLo0oJ2i?xnu_b>9wbaH=XgMzU{;Zm9Mq=xptbLm!E#c`Aq%} zabI^+zqW!VeF>~@A~pJqed$UuS+Q|g)dPZALdSvMrOFT=$+UU7Ve-j&FZ+uGY~Y;< zMi0-J8{v7mCKbR4QCqUCk!D@x~Lw=L$FFeT^38!WRCxwDM~|xv{#rS&g@IrAno>Et4ospxk+lC;mI^2B5V3Fy{4%|Ly9XKiN6_ zzl@3#4$0T#+W9MU?Y{xad>N0_SP;*Uj)N8emy@`jwmLBARPiWQD~6bsbfxSkdyX!i z52b%c9|`Y%Us-KQAi6g6JFr(Ii)Dqkqkln zM5Yq!zZNLS=<|!xisDXSdYGJt_>f?QP}q)NceI~?6T+ktkRygr$}W+bluBju?o`7m zxAUc|YWd-}N_m}KqCORa$fSbRW6v@0ir!? z#4zoU9>e3Sku(_s9~`qLLUt~aU7&J#UejCSmgQtiO-;`apFlH=tkr7>PetFc!@Q=R zVgQMr@d0vXwlSJU+@MP!-`B=AV6@#w&e_e#5Y|H>77&+f@Yk2&K5}Ksm^u9rMFNdq z7eOM8D48LrzqIw*ltv8XE8;`+m};deN81V!H5<<_F21JM+qJm3vbgwnLc3@uA}L|e zA^}e$j%_6?mtFtrm$s=v^YFOvD;kvZdR4Eta_URFdc9YH!8FZK+FA{T9r74T)9q;@ zs*>hUL{#0@vlr#318g*v1VG8o+=RthqEq!Nb^BOuhM+0RMxvZc4uXB<>2i()|9kowv~7ry&T!y~;O`rdzzxp3uu0!HDnv5_T}2GvVUY)cpkPLS4;5Pc@# zMIZ}DtuH~C+@$!^VClh!*IX|)4wNgF*t-#Sy9Q>&D8P)4|W*WpZl!<=-Xt(q5 zh5L7JX6jQ5{p|E~m-0^JU!rc+E#ekGIr$FtI`9fF3A_v=Cqf|Ow#+*$Kba$9_nDG1 z6_|vlcas-1C^Lz<#ih!gaJZdv*DyNdSdfSFiXqeVm5*B;N4T#5fa|Hb@pIPp?LU9- zWyN^o{(O17STtM9$0vLzMqsFDTgjB3cEWkpsN`qn<{EGk%yc@}wdzwE8BPc^3qP6zzeR%i+Uoq zG?K{@BREXVCn1=UQ%UJa4%($5Vb=I!HCVq}xZ`&9hLd9_(R9A_%FkYZ{b#4ne_&(d0R|LfbR5pL9dND{(2Ym&s0?DON*~CB zOFd;qNUUnBKj|bM^d!F{p8)$Ro$@{9xzdpj=^wIF&>Y*|X0+!6YT$F-TnHJ`h_c|CG3P2(8D%r#m)Ca)}cH5eK&;gNqaoS@}{2 z)kxGlto+jOp9_WIzbM}awW&Tld`L-w^VR=}jd-o!H;g|Xi#@LVGmt}f=kP)0|CGF2 z;jLIlE7^7PnR?rhA92oGP%=#QieTIOKezwMk^C=;^HT z!7+lliG&FL)2Cbzuf_2sX}ndLiYPRv<|D8j5r4tW^yTzit6bKo{|D^pBc)|RQ|4;w z(sQr2mzKBBFc+OrYq0cN(*?@9k4x?dT}Rfu+6(-2p#Cw+OvQ}DN*nKoi{bHI+C;=i z4otWT&Do7ksRTt2vWW~8fc~aeo~VI(X>P;BW05m*uoI@k(Ov>t(L&kLa#HJ!;!yQ%SQ zxsns0Rcsgm7qS znqG^{!1ur!W-5uaBjGnlp-~Mb-~ z1T3wiQzuh5YazE2$exk^VJETL4bcRWgTPnJVh*XDmO;h~W@2;!veiA$vy7M-(d<~WmkY-X4H=)C_|jvKjo%R5 z!}-W#sRkF8TttwEnRG~l(+%H|Qhey);dhm;(inc@kw;S3sc(Gbp|`#j;a41fZ}{y; z-ul+s=da-_Cx3!HcT9cv*imdop{5Nc7Skb^)^hLC6rkWFV8blM+rme%pAKY#i<(HD ztW3dCLyex15P``B^awH%IIQrwW9)}n><4zSq&d#1Ig5Xue) zZ$JN4_xS0@uYd2$36*0wZP)Y$sC9|t7G}~~ma2k@6`=g9(?)qBJeo^lcZ&}Q05&q) zEY}RZkle8_gC_`Q8XS0IOnAh^qptdvQE%*0Z}hZtzqJm%$hnh71kC8) zM$O4{)!%o1{A0)Y@!iSri4)=E-9HxDE>4^!^?JCquEtgl7SH}JwJW?%NIeMvjoi;b z1w_fjUIi%{bb!1?YE|fgAn;p}u+&Hb_My&&pa%OVkh$S5ho**I-RDutW$74>$HWK49BxsDk)>7(sNM?<=RkuQ<~oSIGH@h z0B^C5=}(&a3Ndwve;?xua56$Ao`{yRs`GeHR!mq(5*~3?_{^3F0C5JrgXPO4Na&@~ z$+1%TInh`tl`%RrPSIdZ`XM}n-+)PZ1FpdufLpPgaC&SS~$j;_gX*6%xy^7e7b<9@k zce32-*=^f$p$j{}6mJ zUN`m|$Til=h52qq0Pk>dv8c)`(;8Ri5n(arFYMIfc!NtrqMfo;+Ll*h&oFrdE}>eG zR4(hR$OW--0ukA3SPg>@cprF<8?cjC=Ojll@a6`z*VcrRV$O6al`PI$$W+u6M=-5< zB6a@~jrwpcM5A+My{Hmm$D;JTW43;X+AB8zJ0xOsRHX=Wxssxk0X14G=A3X~&egyG zsB@Kyyr2XbSr|}sWIcWOBkXRMf}rTbh>m*&%ueX;xx>1BgAl07fmHyFI)wyoyX{f+ z^|?t+E9ad=wFF)@k|3`v^>#8oL(^s}6l$5%WNrOMs$8ul2+wF$Nu2Q=pmTjGE84eS7iyEE656&6;uV`1OvpZWQ&Be0 zmHrbv)tkY4Zeo@E0wbSkk7^>r*n)pGFyVti&1;$aBQIvKfxbdLqewWt)@#l;=%1K6 zAVP((5TzI0T=+Q=3i72uhG$4=5}xu5VnrQb6+qjT&$o9dp>2=^#S@)GoUGX?Nvp|b z;&IaWrfemi&o9-T7Ab!qfh{wPcRN9)nylHhYQI8VK<*p zWAP3NPI73oz{L3gUY00;$B|v~M~wXxUakv;g}pA&7m=8>O&~dWHF;X)loyg`%2PE+ z8keHhB3^isugDjPbj=O=(xf|-df;aY{7N#;g%KCAfgB2Ulr^xbfMrEA!VQg>BcxEN zrB+nsRVNf^%GC6+G=@C zG#DT+%=iif`2arHyG@W?{UdhdhkWj6x6#5?zeHKXelams19LR;E^@%HBmdj1WT^^J z6t2xJVFHmkUosVb{q^JH7xRsO}?$>@#%S6L}{T3q}g%I6&VEFih z(PB;^6qrSCh6dW)Z$`7VT9&pm_rnDpO~Lx_nC~&8b5yzhzv+4xIJeI7&R^%EbEKpD z?dY!2Z6u9Go{OZ>jK|~gWIP@_&csX{<2c4OCUHVy97vrILJ~q6AV3HKf*S%&Y5x2n zNkhseDW#NKDNx7)r7ZC8p9NaFY)ko2wq+@>f!4}?pI74qy4}&tNayI>-}imq=kj}g z51NIkZ(6}jorzN*1DkAOS*{Bwh4s)B?l7OWL_-ZfhyO*3Zkod{zt?h;rw-+kuKCb| zo2I!LmpSj*hp_c#@Kj}}Tw4?0h!#uQTCx_CK9MNtvhd(pTZI@qO8~)OqGl%D1c_*dO|EDoCJZGE3XTW8d+SJj@hacwi@MkPd zUVijt!(T9ogoZ=&*5L-9{wFf%*=N7YIQj{5?>*;b5Y3hZJTAJ4XdfbpMi!s677SlZ z5>?63V&IVHB3@%fI3m_I9f9Dm*ohI1{;&%&8rnLdxHqMqw=(>c>BfG-sHp4gFNw%4Deo1)VU71D5eR4rWZAi0LpU zxNtb59%6)O_c=Bz;t8m5AP@%Ki!h3ZL$!bF2yGn>fuwdMMIc`iv=LP5QV8r}yMZW- z3g)yK5@){g)py2BFV)n1v2m-J!Yt4-yPI}JSK z{pRcMGT&#euJZ4$*R!}U2iZ(pNuzz{&nT! zA72^%qk2=m%9A{o)5<3Dj8`CmPQbE)A*X$2_>KGTC!+Yb8ygR7Y@DQ_%;CSiUViYy zKl=;MYxEc6N3T)ML-pd}?$(ZUZX&OY1-NtB?S zl59Nij)Y}R`mpdRvVWtgdNs7IF=KcYOmJk6qXQ&~*XUY3J(ddx_FeOe8ysUb8jg5} z?@Z6ntPPq=zf1X(=7N@lwW3Vn4rI?2ckJ3UWZAjt8YgMk<>{tfW;TwITR%JrlTw@< z7hfFTLpqr)hZC>ZHnYuKB@7+6hTl$aURuAfQ~6^jsx7tBo_-eNxon_WsyLrifH8)pVKBaF9m&F&Gx-}~pGrvU0caTys;$gz z_{5-WkVpyFFCAqBcH#bbP$<#x$$=F>ztf*T zv9`x&SA049vR#{wkt!WnJUA08UAbpaIeY5bvuCfp=InZ@9gajI$yDjhpAoT0@E#rZ z%_-~&HSZ!FoH{{;mD}eyy(Wy4=QT(cnVaZ>GR=rV#}vdYrM7?rZj7BXoy`&-Q@^9?U~8>u9Gd;U8a)F{$+gLldGoA2tE>2@cd zb)xuX&G`C;aDwZ0a8U2X{poQs&qO)Ut>E~@GyBaTeB;?%33nC|pOi1u4?)VZOk4D`eq05_vuJMz6FrNX&%W7 zXc6FOYqOF{)wjb%3Uv)^HJ}`{ko0@}7tcO|zA_;-d&WVBNzheZ3THCUQxm`0T&#z@ zAp6Hm%*^bZ-8^=|-u_j^>CRwJtNG+J-n!$IbD>?mnQS~?S-xXD<8GTeu2(rc^O%7T z|2N>`aHUbjw@cHAG%lT| z!>cI)E`7k30ZAjvf3{XHwMvmf4ANpYjcx`HG{;nZf^{5AGPKx%wwI1E7?Iw{sol|W z6A?^B$9-<4bUnOCBdu8G6*-`~$_B@13~bD3_U6*m ziPZ@OVaF;&3W;Q*S#b%=I;T}lvGqvk=4><4(%6^1NB(xXT*Yg{IhFTLosENWleRjy zR(r|vDy%eK+MQHfyh5hc#-yu-y^C%llOe86-wKDI&V?Q#bupSU_$Jq1EI_~@K4dfH z&*xy6F-l{0$n|Pd=DwRqZwkXGMX3Pt!AMI&Y4ZF0Wiw3|@shV{U?4`jp>U+@waSv3 zL$1}>WT!M4k4w^E246fzw7+vl*sJGp_fqXg{{WhODu&cXol*U|tpu%lZ9mfm!v>Fg2*^Kq3)VP!t3+D76j}07 ziO%~f9eWOS&Cq(S@~RvsucXh@}*KZb+wyX@LzzPZb0j6KwLbww-nJ0IJr<?G>(o zl+02n9My6Vr)zqCYGv0-E&~{W*$fZT+GSKL@cUv~8qT{#xJDu&zc+xgN-ObT;2KC} z0&vNQ|CPR=Y2~FX{wkk~-_%TmLRmWj;mDgC6yprqft26>d-NT_-}{Yfl04Uh8vqq! zVA5-LwxW^S0j-%$o)=Ao_G<+!4r~Mp`Taan%1Z?TA-pI2kbTSYv#v}Xb42gK%JGjHU1Hh@3Yf|`jXqv7Ug$K6jUuJ+D1;HAcpr@` z0$J*eGW0kz$Cij0YB&=;J-0TP7hphIX#yBPP-!v#RZ@=(Q5*^*DMIF=IPTb*?-{ca z!Ng+Tn%1~*oWUH2#B#Zu`JSuIRbfDZ%VNGJ${CP%oOf))TaU|U)=m(go#z1DZ+G4h zF~Ifdm*G#uq$SxVN|CPMR6rby7$ua2r2L9EULehSxdvIW9dz-%>yy(7{4?m!($x?O zc!=^E+)L(KMK`CIkHmcg?F%-O?vKw-n@Ou8t*X`UEY`@&@tds)KnM&YIk8_fEcu!p z8mYjt?(NFii-f^st=E9<2%1Kiu#B*_ScWmf(8d$8`92d~imK_y5hY%NBB@7lD{V%` zB8^_R6*O|6OI8ba!LT&t7>c1@ElqpjnJ4!_;uqnt#G)uVA;0Go`=9`hSi$LfWGHrBD zl6)w_?Q>8x0l=WsVJA`@8jABIbv@xO@LhvvNFqJr-4$g{_r;~0G|X{g@A+EM1rA4* zM5!c2+!zuMR+GgR)K{t!TGGJ|@;u~u%7fa- zC=)G<-khw_6M1cEy(7Jz?x;K%=mUJ(C8|9yHTtAq%3zQrGGM^8`0?T=Y|r!w>qY>{ z!(He^#|k8>GW_xla*=ia??}oqB`>n^LX-^cuuy$vmQduvW{k?Hl+q)IE(&IOqE?>eo?qgoC z8f&;R$P+Ss(U`9mIWQHn68_HY7%mppCn-iEx8)7@Be8ukccSg;fq)%~<{+u!-b^Wa}au^p^2~3c1#N#2QBN_{+&dkDgF5jHc_Hxm_bZI-&sgTv7ChXc4EHcCSQ)RV| zZDkfoL9t2dgyzqAhgV#{T*Flg^|RqRa`G|P?-ouM#P#5A@H%J5wblX=@jXcK7{=b zs5B*^56s&Ld+?58#xW$`QLD%%y$U;2_?84St+IuBugEb7INR(enI${4nm}oAK4Vjn zPs2zN*-zM2>S8LvJ`lGKsWn_vtfws^N@+rW+-Ag9c&=pL3^Z?TW|9ui6H;hsIxFP4~#t<}{%ns>V` z`X60Jyjp+~#5$nINEUe}VpjCi|6Ozkw)v=Ex9QjrI`pjoe-E;Hi&G+bceC=!bbN{IAzw^%FM|6R>dtQWnV~>=M5sy-p(3^y22cgh9r%3eucM+o%Z^a!$bUBGyHAOQ4BO zRE7Z-IL?l%wX>}p33iR)>8tNPp2@fw?Z$YRsLt?nQ&a8s!&M5EPf22IhIG!Td(S=X zLTOQ-&*d8b&?w~p^7lSqHk;$)p9_mWj~+expDuXx-QB zxoC0G_BO^B$^@tZAI~?&y}sic;k~yUIkI!-k>4f!ZcI4g%!D`2_z;J%uVd>UXT1HM z;kybuMep(iZaMd#D9&y8CiT5Vm@YfF->G+J_m6L%nhI0j0shc!Q`c!tb8_W;OYIpE=z^l>|gv%384z|D;zfdtc0Y4Th!J+#nCF~emV|) zsJ1k&8)L3(4A+o+M#ltWq`mabOyRaZg%-NCVChqo?_i^Y$|fR+5lc zt{|ALC_d)@IecSByD5=Kxg9uxrluyN!?#RoH${`3(iri8M6uKXDXRR6C-B+bfdBXw z&wFHC4(L8q_z)8btA&?UYcTrwBpx?eAsU%@T-0T`V*99<$HQ9}I;sJus zvpJw~5?#^K<~h0=)ks)5qVxgI`~1sRPk>?|>el7^UD`*=3n)#NZ6t#&E0%~aKv5S6 z_%S;u*dkLZp8NV*!V6Rud=@0nU^-J~6qg)HmDJ5?*PSZWn#tC8$oCCFVk=y@G6@>K zIy#g-*(GB@6`}}+_T-sq1HnHMh%gF1hBsOm>QfA?GiHIf@ffzY{tB~Q*+1OxQ1pWd z4+WALUz{INV>#>*aos%fs?A7 zpk>k^c*Z)fWY9IUh=tsYg?}wMxW-^%?48v@H?w|YXeM$(d z_rJA$`yqbk=6<$)`=72lQ)0nUG`!^y;_ zUih3xtIpSoV0ut}lQ{;6je6BpMywi5_|28uoCyR!x|iEkbH|)e16FM;B({oZb97ai zHoJqD58wc#<@sUwIpG1ByPyZ@9h913UeJCh(LgvMKohGkWHSOKvM6TX@Nhd941+Tc z7tVhOYt;=s*KfG)(S66;(NeB(M&Foek%f>!KhDCX+$e3EtX7KUd@<{b=2F#iz17@S zEj8*CJo;&4oB&@rTks{)ZlzprOthNyaw%I1`m)7brJk$Wg;ZMneC?kXC=E)zB6wY` z$zC=$ad|kXQ~<))La909NFXv`ElT%a&O zDC`eg=^%~|Q4jd>&PuIAvX_t@y1s3ql%*6wF!R$;E*DNx?eG#RZJ?4<%uy@>?@NLi zo5@0x*t+;13fjR!9=)A>@^qBSy^?05bcqTw;6HiZ=y|J*A)X@rTBIs&@13KZdn7ns zwbAoMu@cEoBheJgkR*+4YC+*JI+V*>{0lW$=Ans}4b{XgBQYf+yGgK3Vli?!x(O%h zqqIEtVg-ABb5^7-Qk#Fi)$pK{jW+Bg^^+*|YBo!*o0Y2Zw2)nmmfdQpl}cL;>b8{Q zq&0;?NMi0%OY3@KzKy>YpNeS+i5V_lz6x}4g9h!H#!3PE7{F`@KW8AqHQZlyva?PF z4=PPZW70XIFo>I zyy~16G?#S1ytAyGgqimoRWv;D^$DtEW|RrIU+eGUS62&+|)T% zJ1O(8==7two)5cd!gE}rxGAtE2xcMp;Un$Pn;YeZjno1fNYFb?Ne)vDG77Qq>}9|y z7m6A}G>5bZp9yuRrO9!~=tttvg|^uum!Hz6xCMe%)M?0ALYdajhR%JSELrVabj{&sg}C3){{v4pS*p*d4ag8pu4`AoFar$#bbl$SCx^l>RT3dIS} z$4iaad34BkgQ46{+lALp57ul@fd%pCAFMP>aX*OgvQ(!4e zH5$wN72i}L-;c+&v9k81t#B?u-Qi1~|Ew*Z93FgrQGch_s5L3rTFw-UY03aZhX2bK zyXfhQnl0iktec8ODKG6rDlJWqXR_7ld~P-z**ZWZh`~9E8b^kAoIDAy zeG{J~&rW493eqIaGtwR%9{G^=*zoZ1@yGQyy|>4UN3DGKVyAzBitPIo+V_m-X3uK{ zUoD-EUL@wEfXL*@imLlqT-2a#}h2bvpI9y8GHryf4g@101;tF=S4Lr!}% zMMRc+c{koz7xBzS?T_2i*q-`@_Mi^8=98 zC5q55P|L(}3WwUQHKej{t<^qMaOg7&)TWBYuXhn`c%_}7Q$ja&%4BRpH09tN;n%au zbH5ku2X~2-f7enWtuj~n(T}uyhi9PrdsI8}!`I&Xu4g@m|1N%5+Di7p-K~F-JbmKt z+MJtCi0Jk*76jJOpC=;;xh+K`=Ev#lbB4A(9ry)vMSS>MJ~JJ9oeh{K987`8y%7hM zPg@IoQ-2zi?74q~mCJm&9)DW&813=+VbePIw|E)N}Ltp(HK-QOHDV6nKjTd#NPTI?6RXS4OqTs9aAzdI9~%va@irW6fSNCn-!)|u>- z)A}F40$CMWG|h1$;Q}P%e*a>z&}vmD)(?+24!8DgUUTpKu3hy?3)HTYNI22)b{bz? zp;j-IVEHzolOIo~8w=}2(#{=bBIv!h*ZWmmH4rKS#MG+&_vdn$tcUaA=KfS_*RFVG ze{*swQz!=l;oZCOLX}k>x;PvD5ZxdHQ{)Tr$=rmN{Qzw@D>8GGTPAHGFXarAHn3#i ztHesxg0hAYKC%;Kq8YuKvU*G6%AjX;WppHAZl+bXf(EvbO@wU z`Y&4XLKzp18xD2wyk=cbG%MO~WP^=KBY^Jiuf?38tyhdl^xuLgky*rz6ZjG(Rt)ty z;C#`WP8V`!mWV7)c;Bv-L@g6(+rL{T+Tb;f;0m30cm%t9WV2PPVvu%Se9 z@)GLnf!w~JhDJ_}!KgP%@H=-+kZJ~GZDfM^MiY0#HdtkXNq?+c0Ij}znh?}(Egs5B zDX1K=ZNLBg=j*_P!MNpYF`GXTN_@YOdj? zzP}6qqmn@*j-n8Z0K}e@0i`B~v^$O-BfUWB`1BX?>d~~|P!23CH27J7_-*)h5HsQM zpijOEO1m$Zj4tcp!GT8Odf8-inCZsh^+H)kWQGUYnU$~$(eUWp&wdBK#-D=HJtUrs zZaSslY|@iN&d6I#RsT5Ok7bo&^#rYZzO(W!0!q9X$R5$GMy7{+AJ%rh=7pxWzA!d9 zmiKq!)plUJe;F>y4+ZNp2^1(JZHF$(Hv-nH{4qN@)U%eKrf9j_Tjl9M2QCPIk$hdU zRifb;Cp6|Ci|9W+McAZnd;OtYU?sb_8NVieW>J52{8G)1CWxJAt;I7(%1LkNeH5G%9ZCv0pF08OyBB7Bk9cIjJKZZ4&b~IyF~VyHJhL{4Oi2)X>dbjGLw65 zn5Z_cK6S5lK+|()fbUh@6mo+`xar=F?~i~()R=Px{BI)M2FH6x*R2wrqUAgDT?F1h=L+k z43)6xjHt)w9RV_4N1r9u$ S_)w*A5IL(n96pN|ZjydI`W9UiyHlnzx(Sl41`DV- zoq1N+vJQA8aIj-76*-vvE zO`vk()USzR#iU2yl!3d|QRS{#9xaK0mPJMaKJ>YHfkreN=P|M>;@V>qR*E);gM0v- zZmuEdyB<`e666wSD4|@nmGaAhlNud$i?)vq}B5j`W*S45uMU_A&89!}Mk+&sYvkFJTNs`DTF%>-XH z=>u|KGB2to$WP}7~;Eugh+VF!{#Od2Y@hQaL_aJKEMEA+hj77YsDq5x|k(^I{Fv=-_K_-;)3}G_DWY} zU`QB-JLWfZ%y43nR6GV$T%CnSL_%^@LgeJjMhvaV8RQ!?S%?~y*hDDq_kw=(MaQk- zj|^WbXOq~~GrF}a_h@M*taEXyp&3Ma%8l#ZoLk}5% zXaIYGn;ia)hxAhqJW1N6jyN;-T}arK2!8VJp2EAI5I5Ix6>5q+?oQ-$*ef z7DZNx_!p7aw5IgY(#TqpDFtaQZv$jC`-;eC3A*oP=AuXD3ly|N|1IW0K}KilwJ`|l zf-Q8@oOhP0rx}z`1~S?*02720B_0|;QN!jSTavL33#6CiRl&%3*CxICPU0by4@1hN zjIz%tR?D%;fgqB7dMbv*LO2PDLKsjydjl8o`-%n$3o*D+t46y-aD=!h@e$G}CRa3* z`~PRpH2TR0hyV*hsRAnnxl(GfR30if%`7XL2{T7(^eyZ)_VAU>N$tA*?|IdUmn72{ ztlaS8kIh=~&qkA#fAtSP)^2N4VeKMcwOP449$Mdf!>dl7EM_+j8OdnH&D1J5*9=d9 z*#5=D_Vaj;Bzr_91B~Vs9`T$^3G$K$nn;Zvy0nD6WCnkJivc+@qpjIi`Qx4oKcFV) z8{#B$>xDDN?mt#GqoCPsPm5ASZdvW;~`i}NEhUwMEc_7j(pPuc#DtQj61pEPrr%l+2Tis z@Rtvg;^_Mp;iRw`FC@=B_)SR(w=mX8k;8@eO`PLo4{;z%>Fm2`i+6x`Sj9Hj(ioWB zn9gO+OxD~KDeins33lIRCe~|~QaxlEZp^ExQ0WlpEl?>YmzNKea_;_(GwZ9}8SR~!oV(HMnf}zxn++0&5k+sd{2~-7 z%MK{$E@P5R^lEi_dYcv8Jv%cqy+{2QeOKaJySazAf=zt`lDs^SCrl zt=hn^ZKJzLE(c1)+&EvM5#U{&bJ2fgBhf9;9K8L3_{M%^BhmZjOxcPcjch}~GPN_S z+4}q;?;H>j*OSRYu4S4>Nd{|^6ynoY_!oADAA5Mf>SS`X(eOqlkM-fl&Tk-F55F~N z={g+PjH#Q|PTv_m7k{1foAzYXtKtK_L3l=yjgXj>x=dYO>F~%lXvT z^5wV7z~E2{_=$oyhL{JQ`gq;DR@Mm9IAj3|$ee&_G*()O%_#K{O?$00l@$1!=vj_G<0Tv#_XVO(Wmk48kS-)IxUt{PC2IPoDNx@Jf=`#( z$Y=IR%L;odM~!OKRS-eqF!pL-46t6hR4hgTc;>k5*{$<)K#6Bq=hZ9SK1bZhB}>H1CmL&^_38gCU?6o|bl)XuCtX>s%`DN?C6 zX62!Yg-mC}EhbNEheo#ZmVn}0fiKqvhqXtU$2&Q}<~d~L58>?XfXBuqU;4?-8`cVe zux}t22wV~OYb`8htfaM4(BA>}v>o;jFOw;HJRK3{F+HWJs%4Y0IpZ?#!2~mFFzr$j zdODMyaF4lF8Eb~8feh^$mxDS|5@TG(m3k@BDYKY#3whNVh8kxCm$-5PWQd!tW;JCk z9?1b}xUA4xmlGXJbW*8o&?*(Tz5OlA3qk*Uhn{N{Doa=6q+xC?`OJ?*oM1J(a4H0D z!)rD^lJzzI!b!gPU}JvIMcwi7#07f_x9s0@<>k8zXeh%kqxy)_BTol(t3=7_C%x6$OD z)E%oiLVc70G1^3UE=Vn-B^e7k#kIpu^s<+{>~#kZIo8VR9XDK6AQmY7CF@@8zBKci_)525pC~JuY4heXdosAN6s8iutwBQ%h^~vaAj<4 zEE3w;VpeAmvf8Sa26G^M5ZjKPyZU#?fg}k+0^YwWZ~dSNGVp!Y@%qjobq~;=Q>2Z~ zC&(8a$BjfrXCgf}E*Zu1>E=v>nj|~5^lVf7POf?~DjlhBDL;e&xa89;bBaK|=4Shc zyBR%mdiX=Cw0?Ew$e=O&;pxoq=bO5|In+1xgAZ?P2qTJAAcrUoMhW@FdCj7JkACDt zcz9BKV5)mS-|S8euhAY1pV&Xu*Slx$@3IR!o;o=-b<78VoPC@#LIwts_YB{0-$DkU z=EpvM^`|^p&r8u5M9ir^LO&VJmD1F_#7`;oJ4)g~>(2LsUe!iW$}FM~Y(4C1vKdqr z05(%yhC5X+={1;^%&=lv>X&)P_CCC0f2lb&QFo>$*Kd8pM0uiE416yyRK@7G^cZDf z0UssQ=(Gb-iUS##X_FnAnij;yGq$hR(rMJ;eh25L6?2kv<0#=?|3bH~-G1PL2eMAu zmn$tS9%vlcySug0i{|T{xs@k^Ihf_?BGM0J1{Pz`AROla&zGc|XMg$ZPk3&B4cg>1y+VR>lEI{Idg}oS4U7yDShc1Um66m{ zQNw1SrW1K4GNfckHdTU#jL5Bl$I~9|#Mf%2?4xF)!IdA`^WLeJ11ooY*Im=QH#cV{ zO>Z4k#cKX^p>Vx+UGYpicRIH%yg0jkyV1eP7z4CVt#{KsN|I$%cFhjvn(U;P z8Pw6X9bJnN)Jwy6U`JO(c1f&fJNnMMh~q_gwuseQY6N6S!$|tr^2sOq*L3^0Xg3ev zq`&K${u5WP?C#F~{qT+KC-^eqr#?gOo+oi0u-_bYLiJxeo&A@ad2OvoBtiy=#@M>t}eRL{v_)Xz{npgEXm znMsBDwjyzk=5wa^P6g&$COjW#5kLs%15}7KjJ9c$gJNrWpBXcw-q{y|h7gyk=ovxk zoykb`H}D07EWh%O%jvwX*B)UCaOT4kGK%|Bih*M1&3XRDQ}&#lE^5tBe)8*2J*By-f(xk` znUE50?=^+16^HUJ9iL>iSsRDxnKmTvN>mzFg51a3xV1cJQfNjt z)viD8tCE>>P4r^wBofQlYANZnGhP^gezp+j(hGmwY`iQTL zRbOa>qtnY}l$~fNm(=UQkLGfEXuRDq$~F1`df$#?rZ!gGzP((w{p**2^Vu2qX^&N_ zkJ)x5WE?8_{L2tjgkBbk>&Aug)LQM4(eoJPmuJAyNwh&!8#=mZaCUVIMkm@EIoM(( zkWav5My(C0u*GoLN%vm6c9gJE))=z+Lp^xzb9GVw(K+@M%={hi&09U8uVqBI80&DgZ| z>h@UaU}ovHpG;vPXg8&`qqwY)@TQhte_=eSr;_`VFx-ckV05x3Da+ZR_>rgubOZFJ zA+qNveARJmt&6z#vdHyVnA)|d{84ecYJdZUUR(`o0eX(cv)mS?7TJ7^>MzQ2P~rkH zFZv*2rlFm9BAPTPEqd-;Dh_VP(H6gQ;f~`gd$M7!r!xi>A?er9BI1<8iQzbxEmSnE z<}a56(91cL6}Nq%kbYK^L;OMxRZnS`J{EQY!$0r!{{HWOP)hq!Zf6rBtS+We2j+XuX=-q|;dP07OZqf2d4gmX!xvR#I0w$9som1Di%sQTmU*1pMY8OKis zZ>N&Ujyt|?&g;Y}Mj7%4C(C#m-x&xMcn^gli9qBUm1dj@M~ZPKKJ7cW;q=HtmImOo z@mWh)X-(X9k<>Ux2$DENg>78M{=#ynNmI?g>&*V?1Zhk!J2H`Gi%>o@wnSM)z$}OR z;|^v2f^KJg0!k_WW%bBdCg04(0zoa3%D>Ew#Bf_=vYA}i8x6y{gHAC7A9Yke3(G~$ z;{m%lQq`5SLNo;<)*Gj!8udJGedwOngl=4R*=sh}_iXCg!L?@%@lbvB0(zWG^p`IQ)}pNN~Vym(?gMJLgNYhRE_1V(Chli!}yEJ!0G)3x~@w7cye zo_q8|-Kv=@)w}INxl}0qZMPHb`ld)aZiV%;*>*b%v3TI=@QrsqeFHyFce_uwE@Ie; zO#U-ua)kVkBs#cfzG>IgwaVq@sa;*OYn;1T`w`_^))!m+Z!NC>Xx~0W=lXhbJz4m( z?|xT1@L7I_PiY5+PaQhM5>9}TexKvmAK98SB53)e3a;GQxOZ+o-JF|8pHGc5l^9GT z<92h-XwEUL=P6#6w)Ne^pFeW*$&=?k@zO_ze{=GvmU>eA+mlb`9(g49$nfEZA9>`% z@45MSXYnfw!zY%G-~5=ivhWox_uexn`u!7U&i(w@Qzt(3p%YJi@#xVL)QjeNcH=93 zi>hOE0k+z8p4Wpz{jleYp8uvsqAQLYB|zv6TjJ9?k5~}5&uD1Pd&&CRa^qQO8On2t zeV49{+#G^xh!DElGXA`Ca7f~ZR3lUABn(F{B5gEypHow0JlhgneSV-};|`0!T)CjM4ca3snurV+eM>8( zYK-Soaeove*@pu1MG9FIR6r(Nnpq+_4YNDB`ANKf`0@iV zf~Mt`BDns&_#Dtf0_H1(=+@3gLuRmvUP9!m)$+O@A!^JeSXRJ23T-1m6J02fV=mT-l}bg& zH4c#o`42B`282?R~P?ZEN z2vd+-n;)5Kdi;$U8e zq#BpfU*AgP{SBT!riUge(STz|FwQk-bVmJA`Xn#uo8&o(t-Iyf0a-21M0{^HZpB_r z`CRFRywJ#}C=g9RngwFeN~uzcIFv?MmQ;|GK zd})6>5GGWI!!40eK}b3d^}kRcN<=fsm;l9GL!n?|lFS55O4KQdTZ!HbO9de*pP_9U z--hzd_|TIdG>i{EY4HC;Pku-~{x|K%;N{?C|5n6TGE?@X4Z*%A*zLMH41U z0!exY235u=CD{QfjlKpbC1#lkrIo4Wr0O?6`rPnpaX>_NiZUt@J^G7uE%h#5j*shF zLdAb6mnk7F;(v=&Nid-H>Bo7r@qT^L&{C7_l(o8u$HeqUNdXFnVGqH_oaW|;D~631 z840*U*$LpVB!R*G84DMEd~i6&M^=|EU-%hy%#W~#Mxjp6qaU#%| z^KCN{-UA`xlQte{gVI!Ln9Cd`&4X|s`N3tfkRhv_9qNO^!Le(X^%8pFr5b+ZXWW|7 z=uPh>fGYkv1KTq152XV1Z8YSZ-HhdcfLR9Q=Y*-lMt$ITV~$ti{_Nqk5)g~zcTqUN z>z@r++^pg26lQZ;PK(Ett3XSj&8F@l<)lpf9cr zM`PBJKsk_H&16$SCt&)z-iWz4GreJ&OTB)j^0aPTqrLAMtif<#=kOmUhp(D|db!`~ zERiOX9m(z&(w?^xQHtU3^H5pZuGt#KYK0HvpVlZf&C*;=-xxmq)cz+vtu63>c;koH zGxd!ry*2aE{h7Lc>+mgyU!=YI@ZqNqYc~$>IsCb;d4WV`{V&0+zua>xb`!nx-w*cx zV;LmgoU(-fukRI{Kcmd85u#25c?9Q^o9@lZj3S**>}r$?>SkyGP?o5&$a<6x1@QuR0oCBO%C8Vid_|87(r1q>r$09;($?)_aSZGPEU~RJr5X zoDqfLFkoM$Z4u2Bv(DQWPZsOo0+_QJY8y4(4p_T^e>9jonbA4`6-&N*yH9tSL;fa5 zfF(#x0iRn%E@FzCnR=B3Fi1(GaKTOCO_m?`V@NsESBK@80YK`IkHUjd2Uj8?Di9(} zU3efRid)iLirNtaMv#_FsbmWM2u=*Bxb=TXO-{O#k9V@iUepW!EH&9#GcsA~!w2zx zN!A&eL|VdUmy+Z@nlU$EyHLc)h-T>J#9fZdmH?Gu=llIaqF!56J|vPawy#@0st-6? zaiO_fwB7pT_)9;;mc9`D&FkieP~x8R1MI@T`wmrariw6h?SS%K?9wP{?8+QCZ-^r? zAv}VOrqLMa2SVOY9lOjRobk}`9t1X`>p%aVFKm2T_x&z!|C#Kiw`-Ae|D@T^0Mpf? z=RPNN6bO7v-xby9L*Mq%g{BEx3JHx$PHK-&PPW_akiZ8p^!BfdV(}d2aJHdqjl7m?Y4z;z`=qR(YTFdnfP9Df6bf@z1Yy}GHOsd2XNEs}UvTEg zzCUc7+WGPq9C+{*8!IanEk690d!N4d-lw&0BhXp|IcqhFMdSH}MWe$g59%SnM6jhA zR7V>v$072Sr4e5BJfC3+ALBaDiyMQ7bmZ7)m@=Geje(?S%5&=qFov;WxF_0k2WDop8_V^2DizA4HzGb*}UOu^;)-5Dx}@%$$X(W zvFFqkoldE6$3G3P(EDe){ak5qWMQF@SzGzqXKriI&&4Pi)t9pwDb%WoG3&@5Iv_+C zwK?(P^47a+dHF8wqo+1bX`hyl`q|at)SC9K_2DP9we?|RRr|&&hmzwx`(yg|-@@a4 zfGhz|UeKsqJVI3rnbA!!=*4svyomVr6c8J)j6}6-)mjznqsg1nYYfqY-~m$Rw$U&U z6;@GCre%2WNQ4hWVq_9R8yWXZXI3+MJ60Y*8kEV0k*D}~fl*qwNAV9A%5N`}9oMPm z-d-h&rE7OuRPkaXf`+2vB8JV=t1IhR9+tjuW%cFevBnadjqED54iLAHv>`zYVaIID zkkofy9PAjnCD58!V)%+?EuAVyPhj^L!Q_cVA(0)|9v}=S2DUGl7(P%5{#X=8`^SN* zc1>*f8-$n0KAjlzL81pUUPwzN;-G-Y`v447h$X^KPV=PkZ8_MDpI7p<0E%VWvw-xt z2rJ_RGvKQ|uY>RTJ)ZYtaeUPC=bo>4z6I~%k31d*1@aZ#Y&YE`nyxS*n^&UA4P&=mUh`&!GzV<&mX}1-1%rVHaky; zFX4T5o$Eh;(w@j?j7^$(bX>t0cU>=2YAc51V9ka?bYO4)+U=zJNCn|*u%Cr z7=tt>_J&w&H5NO`nixqsvDok%F)ey!ELLXm>wG-P-xp%B*YnMXWos>}y$xWbFEISM zdh5dAaFtBfS6SY#t2LD8;cMMx(?|Fl{-!$ie`Pyad<3M(FF9`|cB4A8_7HWSS+q$b z_1bsEVs}~2a91q$gIMfR>cd?uNBBeA`R!PYi{e+Vu^M)&nz=U`t7?@hK7=df({8vL zW25Dh&wo^36VKw;PqGg)dttQ1KIb<-WSb<8crBMzQFXveIUWSMsO&Lve_6Pc{vUHV zYc$4rs+uQ7UyJD{^iSb8YTHUN?+Wf71PA|E+BbwHJ}H$UeJ83dA_>p})e@&>gP zM6O1ZV3LTtT(2%wr#KiwB`v*ME@2dHVNVXuS-2v8Wh&-qV_IW$TXMzeL7I7okoI=lx?_Pq8sc5E86*+K$dZITsmyDY_Ky+d{^bn^UA@8zBxMKh?5;nv!oQKc@
;W}6z!U?((yB zXfHPPbeI4)Aq3O*rvo9)4mHmG3tr0r^{`G}tdr)OX~g}6+Z*NL@p=r`-aXXUMJY69 zEo(>4x~ko-2F~Ps$F+j#4ICgP6ACLkYJSjN&t#%?xXjXx0s#o`w$8RgErBY>6U|5{ z91anm4QDt$0e9axSyX*ONso&f>x9Ar7`F(P;_Lv&Y?cz2E-b)RCUD?Fp((^0xp=eJ z&+SMC=Lb^}Y)T`((5zM?`X{518OGxq;T z{kx7r&KimqKmGxssxXWl%z3ExKw3}fPtp+szM=j>#y%1EIvhTs+g=RofFvz{B#J&xgp zE5ZQ3NHp4$s8t{Utq_pzrsqT8qM2I6lvAJ^N`Oj|s7zm?H!?}G#N@-EmPP!ZmARf> zIjU*@kCq?4GyC^a(=0Un7aS3Rs22UhKctn1Km0Nc9poQ%VdPCdqs;pJd$p|g@|-q& zv3~66$_g65*|VAv4aDs$uCU|evTu(ACJD0b?R=1(`S|LUm7_|J;$C9JvOeW`A0EU% z#lBTlIb_I_n+ue?+H9*JfXE+tiEf4b6E_o*Mad@AU%nX07v(#$M?^^@@j{*wt^k~Y z0<}}xlt`cR=CBf&R#OBo;%loaJI97kgAAaWf^R6H42bi*NJ@;(trBfmCs)PJSldZ= zey{>8K64@y!9{-CE>%kfpORqA0e_ob-EFs1SH%FLX98nO;X*O;qGN{wNCY@!$u!ZL ztC15qga>j%cVF<{IZa!n7g41>=qK0-Rx8+kV*yDmYGByaz1fW>7^M?NIE$J_ue8`tVd=@BlVMON@cWQwGzwZIc6ZZ znF@k@4>=o7%Yo!8OUY1+(!xm1xtHCvBLSjW3mEC-!9;p`Ivo)=rr#>$$MOxWp3lsL zVmrMdXecN(3)P!}-S8{1#Sm!GQ!saszxkZchfe++@dNXiOoGZ=*qE=OG|#)EglS3j z6TO_;S|oodwR_Zm&TlL3#;t8>VstGwhL5w^D9gqwOK#AlPcXJHPNnzBx7stUg@xAe znpUBpb?cCWF%{%=JQ%omDP}|cm4#%om1~jB8t$T4yQHH~oG}x>TWySn-4Ij{ZWDcg z2y7MDG8pWF^}uOw^>sHsd~m~c^-iNTWiFtS=iou|EeOMeI_*NC(E3L=R<9*vA^I6v zM8qZNa=Ao12T5nH-AzJC5Dn#hfgCrqwPnKokGAsp&Tp1VHDA|gYyF9|;~PIir5e94 z-%lwXqK_eaT)Yi=g?8Lc1uu_sC;@enG(IJ9a1(FkrS}IsJmqnhA>EXETRcGp(-Pz( zPZb?OSW`z*$(9532O6*=@c|8gDw$XK-gp#0SecqynL5S{4O@Uvi)^e=!^T~ia@R>3 zPl70gt@*)E3+nOH5(?2>h75Y)@Y4Vpc-L0EJ`OOoLhO$;cZZ43e~X)5$)u+$WrQxv zLUIre`!9r2n@$-V;U3qpNA9710t5rx7S}I|%;+UzL@8x9h;WQLR>O^inm#`>2bl~( zD1^iO05g!+$b(%eqsGfhao-BM9N|S$b|OhOk_Lu~yAV7RLC49LtYpCg7eo1KZ$DFo zrYENMzUtK<6u=Ig$F@HF=i!eHb7FtjhFN>IZc#0F{VM%#o?P6Qj2B9+&cH_@pqWKS zr#6*fV#0143lRtaz*}p?J{|GB=FPIOh zti&~sfIHkc&_FeE@Gpw+6w`F%s2GhZH4No3N#VBhFS&7A`#k1t>q`ZS7oAm}$=H@& zDEr74JNeUAv!=h8g+`Gyq*5h}HxF3(LKWT!!+bR0T#%j{AiRvyOn|h5STYjWbv#0p zBQD5yk}Pa(_&r~%7KMB~j{|aUF_x2xq9{)0w;J)I1HT2^dpTTaUAWQJon|_x|6?dw zt}J$!TKP^VD|H>genJ&JzAx>VfgMY>{eWdvbNlv^sj_Et9pGmrUv}d+5Ku7l+xsxz zc4pG){P2G?s&FB!?v1D8b4#&&xn>=U)cwA9nAz(R;q1gjltS2P#9#XIOQ*f$=73A{ zNS)!U@cGt3#$W8YmN@_0JP&z3;rXoR8=miY{uzHhgP?c#@t!p%Ao1>N$zgoH`4hlOpD`KuUBhxKy zLIu2$7kPd=l~ZOdX;CZ`YV-AkXtq(aXXVt*S&Y^c3-fbnSuu;FXkPx=wP}2FvrX_A zz$PNvEXQf`^{m>5_r5*bp+M8mE^QuYuM_-=?{<`S3HO*uuz+w>CU#N#!x7!Xh0M(Vq@26d2Ba}>4N)! zy5B-M7S`QJBuLZ=$^;T7=ScUnwS>Ng5~yXU#tF}0Mhj=)O9Ay94^1*j!HT>VOl!XI ze(g3KRQoi3Bloabc{UM`H?s|_A#*b7Ot;&GWgOyO-APnM({Tb}#xi|f{Bq}gp4;Hp z@kB@dtr2hqBK2Ao86fsEvU21bBo#rG=)rM@bxJ@m7+hai_{74(I-%P2>yID5e*Frc zo@2r-mE-YpA>Qixj%SvZa)*yK2K|=id}5wWLm~E>|HSo}P3vz{u@;v`4@a@E$GT5MLA&*g#dG{WoCc%F_~LMM(5TB)F5=U*98EY5C0Vk9%^d_ zKfI@yvdjXANJSHZIYFpRK&6sNaOM!9V=ncYrprTIL|f5Ar9oftnV!W{8m=1qGF5Lc!uJ z5qE(sqN6{zQBR^M;y#@dC*0^IQ-j+6-<_YcPT}!T<=d2VJ(Iy^kj#)Gj#hp+64|5Z>|MT3(ymv6VNEIESMs` z_q(Ym^$NuGA)#V2#D#DJ4lHV8fIp%5Wi`f(XO!B`+<3ig#8c?c%Ca!I#7e~ryAsGy zE6r3-NgYVpNdgD^Nt#_8#|U9^ctT|ji1U^GWmRC{j#t{pDevN6PFZ@595IQQsBwM2aQ>_xFDu%nPqYyE7_rK?78-T-K0 zZ#-IfP+(jHLOQaq9LDwMiTF!RIl?t{6mf~cl{EMr6nAA~YmKN4+zYE^JQ0|%)i*jm z>#obZEz3&hSE5jRWNtadJzcHxLnJzywwnm#=6sp}B-m4lLu#M7|M{N>&YnFhOWLC+ zUd+#l<0tqze*E}}*RrHyt+(qh(J#bbyp5v`(&7nFL2;3(A{BTr;++*iG15>*G7tBt z_B*A}9hpw^aHDacG*+mja``x}tc-SvyI8HQ#=>d0?l_HJZ+dECB9nQyzE^jL!|`AU z>a3X@9L5k%#NA>k38ednPJFpL(F~h5>{kp4I>qmEuQH!rpfGnEFvMPt#{N<~+BbS` zlblw#>Hy23s*6*lF9-smvk}%RyTMG#wQ~z<27AsEU1f76@}%FEw0W^#5U!AuaIeBf zrQTfr4-i+f3O&){jm?wTKs*L{2rNsa@yv@L_(~PqDQdTs!m;f3dUL#ybt#z|i;M+= z?RGJ0EEcIAiLWn`1fxu*hZAU|Va#~Zncu{X%Zd?DJthu40}=&L+7JN?r-)^zsWOLl z#YX5CZ++snD<4Gnvb06qsfgsrVtb}spY%7K0EvZEu&h<4CrZUq)ClEsJv8#nB2`{E4Ji3ym(2Q=BP5NPi9PEl zPhNN-)o8r_43A5%YahPt*2lSJiS={Ol7|(>A1RD?*Gfcme9PHL?~$Hka9bn37=<~J z9><*`O6V>JDP+tu$3{TWdkAz>fy;u&+Mx7040*NZLfJk zJNlyAZ$5nZ$Yr;^@`Z;EUHYmUAHDS8kD15J;O^Sm+QkQ!#zABm;YzILJ??t-KuEt} z1tcZ66rr5~#`1L>7v0P@nHwV0q7{dNmmJt^&Q@y${LnviUP-!X4Piv`#g3#c9rbX>2Ko$>MNcXMtm-I_RdMeF9f_TWvtHgC=OCObT9k!hoxn~!@w<@pSK zY=<_B$=sX4a!StjX4Cytx~TV(sa|pxcV=%k)i3Jll)Pz(=2?DY$)bs2mBc11n)VDP zR?1Gzq%fmq?b%uiJFH5vQ;Py0vu$!%n$(w;YN*(dU~XxeX??CqJt?3UJ2fFnz(7YO zRs_*p41gHkbLG7X!`Z6QEvB!YB3>lA_T^mQga~0J`tQUvnAqN&DdKcl>{k zYxsBh#Veet*(3~9-nc}uKlRhP8!2NC-U=&ntO%PWX#233@3atfUj{@;YX4VW8edGEc? z%xGrxEsaK_kCn7qNh|GY*RoctmDcOcdhIwH$1%on9LF&s3C2*9h7fW>3L%6vgd~KI zrfCQ?(44-sPzW?ldnizvQc8hR%Au6f($XGE%g5=VZQk}Y<)s{=yubUIb%5)7uj^ge z`j~lU=9y=nkNe|)|8E4CYuVw(x78B}u4{ZE6@x28 z_Yu$XGr)g{B17AHX3eP7jRy?$`AQKaY`tt4A18;qn}GrpIScvH%NWm2O&|*)YoOaM zBJ3Y9iWwv21(Wwk$HdlXALJT@O4D(>aL$7b1e5{42^+(Y`pL+b$SliF2UI&6E5lTO;j=?uo0E+q*^LH4S*KDitGD(>lUt{!d+rQ$fqTmG%|Tw-CN1k%dKQ$FNe4}ot%8juNY@MSl_)fe3ZTGjI#HGoukWTZR-!QI$^9P zJ};GxtfH}X=4P{V2qF&DuTM_?`RS+e&chrsdFtt>jkiy}Y5p4t!~do6$CGdN)K_Q! z*`RHueJ$Ge3(TCt_bb?+Y0d|-4f(I*LHsJ5i5(V(^IrPj~#_g zu^Gtlar>&ZekGf!k@zB&RtjiHwSUKPXMy15na#k>ZdTkeNUhnR-HQ~KBI@{7zBxv6uV`YlO4JVhA zmzX;Ez#K>(C7gd^VAxa;k>QQ(&lCv^v{Si5xdvzMoWYfk$_IEUTbC>su`GP0WKTEk z{R{K`gi|NcjpM);j9N;xOl0y@jKp(>;DBY!qd?zrK&D9Ca`x?M=)Ll@ zIK90jHn?IcTM*rEwnP+<5m|(-EnT`epQ@A#?PK%%v+-aE~iW$kjsw5a2%6* z9(uS>HV6nevpKk9m@4s0mrDi9iYE&}A}Tk4&oV^OLzD*0)WjcRCnvAY*82;QPHY1t zsAo>kWQ`z`bE|N{l;ho{oRIZeDbXrzs~L%I#?o9vIB25C;vuin-x;UWzv=NO8rW_U zymi!<@44sh&nbWMy$964-TlTl-aUEhZGvAVruId~yYMURLBGCa>O(}7{N>bBQ%|Gr z`QSUdEa}fzmy=EFT6Gpiirja8Sa*d1uI++H+ zBFTe7O-|^1N$}23St-NUKG~~1H7t$vHj2nu(4U^W6duK${vD3y@H)Db?x^j^SdV<^ zj-vkW{5XGw0!ezp7dCsog}G*=7V?tmfy*(P{Jg_u&u^CwE_)*Fu&zSfIBv_(+DnHo zjD%Q|3)1Z!IeX85R9$YVhFTBHfIc@GtiDU;nsL7Ej8^jvM708ZwyP?&e(B~ygH)UN zZ@poyMHaeYb!Pt{<~0Iv?O1{mU3^d3t)Dg`Z&D$pBO?n8bAEkC-qS4W{uk z$aNlJhYT0vUx^yTN`|@IU_bXcML zSa>U?Tq-qP&yq8_xNxj1SA&^>$qY@o2K8RFiMccD&z+6q3Qv%h!+>mBEOYuui?)>&CU{*+ZCppHHTy zn_=XCXzEwMh5p{uA5Z6NH{?-IF{{kAA)>*RCCCxI)M^X83^y4*f|1$HXK1#O zRYP8~cg(<80fdR86MQJ}I)0OhP48mV$q$joQIMoCx_;=oqyS4-L(VLl*vAH0az*fX)QXyeJ4XUkdv%mnvt`~@h;MF)%RB9T#ngimo+ zwkNhYFTNT8Oh4N0YIrBfL^YqC@Gne*A*njCGnJosHs~cHMQza=5q{#Ycq6 z7=5CMX|^_II0#^EW@y=4LYie@xz=u`2O>*SRV$K=<6bf>WP6klH)}=+;+5zXLJr6w za*7-xS+XURU;wM*bDl>_#oHxT+=z{dPE5daBcdt`V?^e$lOGpWI}U?}A021R;}_r7 zQ>oPCDF|TjMkQ`KJ^B3Uo4&sF=uM};b^7$xx9T72uiex~Qtn5i(T}>RkER^HY`^-_ z3+}mhKyK#8)BzS%CgNvQxLCxEJk{mEE-LYl<5;DPOrv7Z| zDP)428i}qH8kiiLsxm@QhFK^bWK)NJ&tk|zu15;vuz@Zu>z~fgGp?v*UmG+rC&{pr z0foTIC(9|{hC5r%@8PqiNWcL^8yQw)0B2A&Y?!MBD&*t&7WtmbVGR-Gdblzd1{&i> zM*{ zC#0qVuVF&V2l@n(wTr9jGvbF3G`d9CN-fapzxKZM^>%xM6j*~GmdLb=<#N%h2-BB8 z=q8M|4`n4nZ4B=e;w|9-nbgLSb)ZeCbmC6Ye>=)Ff~{;{u_s?=lbvWIfv4nr0SBY8Ke%`A@dLvlaGG&B7U>S_K`_Ixa6op>1cjMl z7a`nh`il9cfCY~=(?k+Z82-5fm#=?Y7BS{Fn0ECi+$(GlOH`7ASb-%zn~}wY#n|M6 zl>LbDJR|=6%cBa{ctrWNfl@O@$=EUJq*TXJw)?8L3JiIdCrLQn_qQMVJtP(6*MuD1phkVg|-y9B`b&SV=Qh z{(x^8JiS%$I!ijA9gEKLirJaN9w(M$$IO|{WwTRoBuJ86joA*1g2O6;-el$$RlnJ3 zEVnU1HR)ffCJ*3~*QmB(+zqJc)TciAN#m1euQ_KK$L(v}di}^5LZm;u^o1v-8RYM` zPTR(l*5tzk;BC|nWj)N8?JZuyRR#@`cXe_ey>XM60 z`E6Y-N=Ne<5MLdFM!x;iu84D(cmc)LBZOs=hskCZfVFgV~Rya&81!;6K&T!&z z7)FL<9Vncyom9i7`k-*2LgARzVIFjhK1VR3CX88XtMk?{l12UiI)@EzRItU+1HqI8 zh>-Z3uyv{gnG_>@b(rQbNzN?Vd8iiTeTf|5ba|0}&=FRL>KBx1nC7~4_jSwS(?rO{ z0{t5X37TaTG=Pf8P)OsVYp{!je_g4+2L3_c-Pu5>IO*(-J@nfKqhyah(d4sRhT5Yp z7%O+|z0A)m^?H?i1^V0hfA1EFn1ATEvB`gJt3CG`<~R}=i?)m%m2m|U5=g5tRw_-; zVL<~D3+1>yGEc=g58!OcU!whpP$tMqr?$(~kdj6^=_T#RbcN+XWiu*QH0s2F8rH8_ z#w=rO*03(L41lu|g^Vi6@6&9CRNU$!cp};J!8MqSIDj2>1c;q2c&NoYj)2mj+cKTi z^~n^i@d`>dUO8*j8}-(lQWx@5ZPklRBn8E?STN#I2jeJ{MnX9`wLP0B?X|tng=LzP zayECy*k`DEUF`$IQuo=b0kVL3^fUa*B`^3@QNH3leKuz>NCb z14amk=F4Jpp2BW(%J>UxUb(3)B;?mjy$!4L2at}x02YKXFJdX9WuyvW)Ex^72r808 z3v#7RZxk9bmP-wD@nL4bc9=sX3wsaGA&6KJ`aR7=3om^(N%-CNs+$2du$ z_8JRTi-i@LdUk{%Q#%Vs1=*H1WW7d^CJjY%z*?vk>mB`jk3#pwl_2CHR7cXK*i>4C zb?uLAbPgR|a%&`_^5AxyKU>E~=c=~d3Tl=ydZ~xXi4;f_1_>s;GpEW8(vAe`Qzs{1 zA=#9#VWglRQE9w8S+Zbsuuj@m5IezSRb)B59p$dV%7S6{*zwfl{?swdqNr!}F)w@T(Qf-#kaMOQk1!Ph6Od zl3lAvUzz;TS8}C%%c)4Jyja=EdWA~%%Z;*nm`aiH;|}5JqFV|`H5SV`2`>oJlkdfm zi!tH+rpx31Z-{N_e3mK$RS zF)@-imXmIEi%SQTom$H!BG#Zjqwl@T zSb86946dwHIdC2k)9IMGmGKNS*~-&or&7CiKl8)>-#-83{Dpt;v4iT|U3aO?bCcJ+ z_08%&%;qmN)Vn4a_JMdl`)$tkPw-U*tkVmuXDeA`HKG$lMZ^NbkYjouE6t)O3p9sgXo7Iu%+i%GP1ac%m@tGYpfexY9fdgHs#e9Sv{_PSf_m%7IK z;GCs;lds*kHfoQ25W(f6Cw}m$yAT&Np5A+4qVIeDge0!UVc*#TCD)uz0G ztmMj)AW8q?6WjY&?s;G1K%;*5`wkpD*l3(RSZ_4y>YIPwY&NgI{;f|m-`d=M*;}vY z@2yiMe8WF9u2O#iwokP5dsxjsH}&sKuQ^r0p0}5&QY?B`s-GeDXLtEbd6%z%50 zb=sN!fkTQn2Z@{3p>UmO^MA(o|pcPKLW89Y^qr@~ zeBEh_ZABU=ygAC!l(Jv0O|1#-(Hmr%(8dsHW{!~iV<1Rbk!a-lQiHtB#;_HoU=wW) zSYfzdT3)WAyTXg3zF5DQ;$$I*nv_hZSf-Sf@k*Iu7G*rh+8$;sk~tt(L`soHIni*j zQHW-YmV!OOk7wejG@J(OhEvWXTR@dXvH?G1@3tBdB4jl=fLs9;f_Vg9pS(}p7m^Zs ziR(|t{ZuB3aKdEfu$d(Rv7W0&s&1~9F$jZ7H$-d4US6-FCP5#GKOEa1Cy@9DzLKjX zM%X?iQOG+W2Dun%W>D-AmJIBJa#C$ZG2(xW6vS^)N&bcpzBADgIU&-K`X~kQ6JW^Y zha4>>%~MepE0WG&B~)#SA;^6OYl7Sn_~t0`5VbZT=>;1a{pSei7{MlDn#6x#L{rdZ z(lJH&2Lq!f-vqUcekAr91VYO#h!xYw~D1-}%yWDw7Ab!B6CadPp9OPWB8!!tRHh+=LbN5haTh7|{r5ZVVLkct!_ zY~&$3zV`lOmy|}8#tGj<7Ly0hlZs-{F=I{|!X!JWC1Y4;kz=L0PO?Ty9%4cDv350; z%EXCBPEBLwrNxao9sv1kSlvlcLn{zkjd@v&INT}gw?QZm5rhaT^ec>5j=(!D^6cSu zA*_&#^9X@7(YS(sB7T!6gs+*)n?_Tz$M75-gijhwx)gniFbTN{?gDGpU4E2twi61JKEH zbn@vT|5JtgFjl0ScPD0(b{A{xTvQ3kgVjgl_~B0xHRJt22E`L0*Hx zD8P#wzL<=K&_!lx`MUE$;SOiy@SSB~IA(s{tz+ILz7nIiyf__(d0q%)Z5Fcjs_is7 zoFt$Q_=WX?(MA%IsLv4*q2YhKLx{Z1Iz%Da)a;ss!?Rj*Ootp1oP~4G2Kfe{Zc?A| z9yo2Mz_I~rl9>9$FW(VwnEsGdZ1R&&?w;#%HL1a<-9ez}0BV)v3u503c8HT?iOS1j zCLkJ4yt81j5V1#R3lH={C*`;eE%ZikH-`&g8#_xsg4m&dciIvTCrS{oo@K(}`1Rw9 zCFj&R6vCsWNegXko2Xz~U3w4t1r&936urja-EAaNbrcdhk=`Z{HymEPS$@j1%P~)= ztw`~df!QxGij9^{YEA5JDZ5hfyN&K>#G7BK5T}3|Q!CmBi^2h@agQlVktG0PGq>z! z2xm~`1kRn5YsHubBxz-F{py#tY=lmLBSJWiIA3NGtWZU4eiAiJgkoQ;EF8GvQB^X0oM7-aE7={%C6+5oTDP9lM}DlU;0G`3!f^i4u4H>~#|No>(#vWiiS)RT=A;44}xlgU&nJ+Hsh0{xNIt5l98 zyzN>o5o_lA$eZaR94@esRScjc)kzJKb}WFHDG|_92B*6IHCT>@4OBL-%^n<-D0IUL|9UV?9Pt;`2?!bo{LUjgXnb{~o zFnylrS^PO-OT{3C0ZD8LqN%L5ce`?zIKAM1B{u8sRq0X&^<1dv@}n1}81UB~6w#8d*24wpK|CaC77vqZ4tI$Pr|0~d zYD1_H1~mtRVPnL8{S!ro){u3d29oF3fWb>X92OM$)gA+q7Tee=+r{1F@Bmq!@{P3F zbi`aOE0CB_!ta#T3rYudQ{U#wSdx_v(D@KVhLZi0xD&Y#(V7Px<8Tsz3Cx5EqP?8( zpg*x=xs;QNu3wVfTqYM#4zC2lGls=9DK-*iS|R?6d^e;<>b^v0x@y%&2>xuETFmN zLzyc#(YvI9)a(gLCz1szYon^5P3VI@Tk6_Tuqe}r4MtFWk>@7XI(c73f^4<>PQx#@ zOI-#_u}iA^=eGk4$Bo8(fkkEB_h60jByoLCr4|w#Kvifj2E^vggCa>o6NC!H2X`*a_^3t9p=3It2(Bs|lDPe;I7)7Y?3wyZ z-0HoRYNHGab5=Ei=~o7g6%t;N#6GFEYI(wZ=1NsBdwt2PmD`nKW4d@%%6BnJ#0sej zPeXros*Y{%kLP)$pnSZjz-bb3OczDqn_+7q(B{oknIvOUKjuP`riFM7n%lgvOj~BM zCW(IHcq7uFoTOOz$ML3^-pHN(EV)k1Buq z8<`k=@{2PgX)`Y|0?dJJ)(WOu}y_<>gjOZLC~0TP~qrpvN?SFlZ<*D{mJ*_f5U#xv$1Uhn6pFX2~x*=uKDVlPPfU z%dO`2;9yg|sdZ3J$5{`yCf|Z|y#X9FnQa|dZe80bmAq`DT*^LkK;ElBS8xC6|#}XlyKv{^zYL$^CW5})ZL&AymazbHZ z1hLZLKor7iunBon7yQwIFCpdCV6c9C1IWLs))sIGq|$yqjC4z@O1G9)--fDSVO<+^R?PDw*olDRt4_V z2kfPu<|j;xe4pI&T+ww5?5VR4KYSKLLuIo&+5CxPXd119hcSe`onC`frMn1AY6FZC ztEYq~=!FlfT~?d!bO}^2NNGn?+&D}Ew3lD-$T-&#^DM3P6CLH>7d8lPTB}KxJls6<%{~IZbcCv$eVg(y~}M6jm^=A zYovoP2sT`+sY86P)z-Vc+M%}g*i5*z9k8Cq)k$j&sG9Ilai(h?>C7};17`> z=NToJV}dw;yK-w;kyU>3$5e;=Y!6kXve96Bd2(`T0K>!*@_Eeb-g#%&_Lh*V*&_^&XaR|Dl$M(% zQkgaTWdd*=Cz&{T=g*$Rj8q&oC$FbqxuJfVGJ`>LxitBA3`U8QKYQmDu-GIp5sPbxf+nnv2ir?c~SZpnV1JE1rEB zI7mc@eEdM16mcx{>PvJ!!_Sfs{gFsbV8`_llx@q{6l=jikY`H1-6@==$a)zJtDjaN^V@j#m@pvV1S@h@EiE*sv^Y98BBp#?tJPQTIwYedb@i4H6q-e8G-owxEd!V<_$YU{Ah)E=Th2?lZ*lrX$wZO|2bDbI{#hI7y zS;^&U>2f9;jSam9VUHlvyh^?pEao${x#9lxT^TQ4pJs`#T%A#%xpP~GhrOAgRPPTj zx_Hl``BQgY70KZB%Erv*$ji)h9{!E1H;ZIMtn_0ELqs*LS7R9WB|ZWi#qU`h=4vCOLYP?LB|$y6jTrf z_{zY#aqF6HrOm2ol7sdMhlOLWGW!p;CwhW{F%YLnb zf&b)My?6q_w6%6(rx-#CN0vVoKnhSiu~sjiL^V%k+BK_a%^QiGbJUO4TR1*lxmZ{M zVw=vi!B5>JvWL+OuNS<{AEO=%JjD*Er`A+iy=lw zOo4jMlvbAqrj;^zl3J3GtvoT=AyX^|>1SlCzs*thnjDvzLzMRd=r0jld^J zb0BHjSyH>y6IJ8V$sZzl+toYw1UXYpr<#q*Y@8sNd_Z+Pu1-t9FE9rMxYHwQIKKBF zj**{tGVbI92U0$U87EzxKe}42=NskevOz|9tx2FwC3^z9CQuC3&)^KU~ZVaUHp~ZU+zbCb3a4 z_vvWCj_rsqlF^}mqd`hsHjS`Ka|lbeo)UGTvHX?;X+kZq6-J(3Sm^OQi57y1cn9@b z>+vpaEYb?rR^z#e9P!Qi(RvJK<;#QZ?X!pM_0~qWTxm7V9vaQB9d5VQy5;hr!JyF^ zbvIh;_Mx-e+k;ViEf!mAAMKNsIa4k+CTH~r@QA*5CXUm_+U`%*BgDKtPb@X z9(z5nt48`9o;SagI25Zlx~v=9!|s9Dq1egwwWX!lw%e$82ipeA30n`wdh;1i*R4Ab zrm;dg^m4}Qdl{%1-`~%8d~n)lJidDR(nd!0i^WEx-)}UEk2iKInelWVo=mM8FCZS} zfJk{_Aqp292{#E>9}#A3(at-%liDnX&CUwX0GB6xM|@%K5X(vEh%TfJjXnc9Hl7jp zFXo69U}HG4+bW4cHVO~tJJJoJv&Yb_b}xp|CSnQLn2h{0Vlda)<&!Pu-%81T@6p%0l z9<c&B$FO(A${&WSAvyKUc+>* z>ap>`r123Wv-Cl`;_O}heyN)NSY*2Ou-3@H4*y9M=Ao$&<68W=9WVPREL( z#-h}U)_wj@Qc^wlC)@1{W&J?YrJ($E?hrRMTlBB+Gq#Na%{i5tjuVFhJ&Vb(aANMQ zc&YVvi4>5dVz16hLGsa*1@IN z%p=j|=Vy(FTuYbTu-JE&=-3Uj=1KwGmks-43waBlpBy-FBl*IHx-XA_rp0&)eE6X5m#HJV~ zIgIeU=}M1(_$|c;pzk|at9V>-o}ACeCQlr?tyQC5#cfsl^7p#NO*fpVU_j4QGQOW# zZ@2C~v@zUlHT)B!$M0^h3w&PNxQ}rCyJ0I?)$%i|t&PAat0&7Y|3ps0ztv`?AOai! z)L09YAj^UKNMC0JE`zG&2MlYSys8pPfH$UI?^UYH9@L+1#d7QJ{a08pcalKCy7K-< zMisb+e02<$1fh^3IAD~E7 z42tdUS)+T2@*(jGzsGzW2TODzY~AO`fA=Jucz*$MiJ1hu^Z;w9+*}Zj z%IAK{*wTVRTfXVW(M-QqH6w>>{nhzWKx9~|+Ul=tLt^~) z`I=8sxqN=GHFij3q>kpJdtzQ3eUXYkCy>QOnFXv= zXMXvz4%thZLCdrX>1I5e^e>KNE>zPwB2*fF-_MO#>v?j^j`uXk;F;@_A|Ts*IpH~= z8_2g;6OL^wPo2Q(19X+DVZ_7DW(tkAQg5J6Qd#zijhR^p3Txne0^DcPkqJs{w+u$X z#D16Y@SUmuq2|?CU94UN(D4EFF1#=A4`o#8J1`mz)F2hd-)36qv$XUWUL@yTcl=VR#us(gWFZg;klXaRs8hlTWqqN{~c}Zb? z0lj|U0l}8G+F9LET{=6VW3uS*5tCM_)N1B_`5Hw$aWkMyb!{?e>y+?N3S^a1#xpQqA+)ezHrn_3{ z3th9mr#TT%>GYvI&wvA8Ce6yiw-|16~gWT7Id`z(2Az zDB{w@+iWLV$7D7p96BM+KO4|5eo2{=aTWp=we3C;Rq}^#S>hSoVwrg<+?2`GZ3EA& zr>Ak*h%yGbjlss)JS5^W?UNC2i1itQGZrCwcB&$g+`xR1h+MB?yS|0z+uiEI*6Wgd zm=%gM`Te!)AnFr(BBOH8!ISS?<2-(O=y~FHumeJB%G4&d)R@my+Lf|fwqjk(#Z;kJ zJ1}|3Xn5Fj8s%2T`w9ZA=aCqSzkuW%Ww;{oZoA^X<#vt9KYEn|oRhCsqA#Qt4XHO< zjFx?$t}9-7ACGm+|5D(S9+zdy_>PKX*Lz37k0&o^XQDyjdA)EbJ88*|#E?Qe0hZIX z(=5@VI~nCmL&b+WgTUTf0#K;T|MEgLHia?_5vK{EbiHSbB z06#v+u1KExu_D0Qag}F97rF(GmQ!)vh+yH3gRux{MYJ==PP>trtpZI-C&QYXw0033)86wRP@o& z{QfSji?gM=wzz~qwSU+!QsVpI2F zptz8@HqnZ6IB?}39o__(CPM{RErSFo{j!z`WymtH7$K|-OeKsvhaU|5vF4ssk2&#o zpE^?};g|tS_t_VpdN-kjnb_Pb=3?n-TP3r*vII<3@E&IdnobGMuNw0G2_-Awf1E6lyv9OtLD2wK#uy)+e* z2|iz3TZ=Fe$p&5+dGy@Pv?AMfW|_YOD5mBVD_r} z@4w=}0U|DvSDkvMu}eKvkeG*v8Qs_Gp#TP$tW0Jz>&CmMFF70cEY^2@XTg#Z5~P|2joj=VW_ zB|KTLnR-yHU7&hp+8txBk|~_@N_=uJQe!cYxBfMJvjj%MPB&#CpcnZrE(fDQ7q~wQwd@WMi@w+`F@t*3B!+-ia19R zVUm_nLX*nae^PZ>^_@&A8$b+@jlFzjwI+Z>@@;R-v&_76b8)d#s?YQ~o!w@tTPz%! ztB(4uQgQOj(ZF@qKF zEkl;nn;)!94s5*ofg=w+e8jL?o?D3}-oi>=v|$`FVr_MEqR4N{IQWJS{GIx%$x_Up z-P)>0?53M-%qE|K*nHjk#7(exJ2e zSs7;6x(_GR>ljwJO_$>Mg#}fLoM6meJ~;?mAKuLr$ZF)q3$604GdUtFUhn6Ens1EOMSG6GOy$6nxZsJud-`(Nhz4ZGNw| zTOwUjHY_RC!e#ZTVf*)w@F8(Z_|Nuv=~Nt8XmK~J`20{Dg4D^0A;(=Q_d=*BHw5m zZkGV9wL`a7QhusP9I+KNP7P07GdZyy8zFvNFVV|GPl+4_=B*~86_QQkL$&$(FT+A9 z@>dN1W2{wacR`GcV8~=h&>jT?k?_j4T^BK}h|rli4W9`pkBn6$rGs(GZ|3@y-p^io zZfhMxwQC$W{ow15RA(obTkB5D^B#ATDL31j{4aEUa2yUPy_I^fRcTDV6(oiE7N87Q z1Vy2)%hz+0r*U30ngZC0n39PvMyNpuEB<;s3f)M|I0!#>^kwi7K;Z(X4;B>wL1LQF z{@R}LV&ea2$YOUPeRwKIhs}$vUHD-zPZ3xu6N6A!puX6h_IZyz3}Z4wi0zGaRYVgJ zTfjM!vJd~JIQv(J-)xcVZZCptbWs1J2P#X|&O)=+?bhBKfUj_QdmH&hYPG+9;DHCa z)t_&zt&aX%K$b6d+&pUTzhr4+u?f{vqXDoz66sd&pIK6$VqTAeIE_DWVjo6^@oKlb zdVj4qoZFATmT8$in)B=P_?2vC)jIx%t*OIPSBU+ENliop=_x}fzwqCPeR0KS>1zWW z<|~`dFNSSrMHl(eZ!{mh&Mqp<0J08?<|2SUvM5RtM3tUtW-CdsB&lY~iYF?y=x@(7 z-D(g6D+HrPDp~t{t-F?6&V zGDBQ6b!zIT_1thjKEHQTzmbkd!o0H2(9#@MV8%b8+#>VP0j0yqVkN#KNgS=kps~ot zLQu(41~4(wVczr^`dX+FDW*Lq#79*O&L9aXDY4nBoG@Pi4%i{UmEMZgINT)atRvhO z@{<6ned=~=4*|`}=n)dnJTO|f_pW0-HP-f6-^E1os#l3J0`|zRXOeYi)5R!eF7FOX z%l*Euw)(2yzm7pDmQ7b$H z^oYnVnFhc$C({+)2Gay}jIe@Okek}XWF(Q%T=lz8Zd@>4t5vDS-ETPXnnb$tn%h=! zBvwkbaiua|8z(Z;Yvanax@7IOqrtc`yRkN&Zft0oKg2zVy&rBqC);syo$OpLTgZ|z zcAPC3r%wLmSJg?i)V&fY!6H<~?;WVqx8FW_A0LlD^I3IzdGg-Fht&)CD9T(U*qUX= z>|;~kp88K#<|xsD5~;CQZL8;VqU+R4)yvhZ2qk|Iltq|t2>}^P8S|42S{}L>X2go1 zjUjY&)?Zc%29Y6shL?yw@N5l7VzMI4kc`P)jYn+` zffIyNaSSKzsUa~6;|_L6&O6l}a}9c`=o)mH=uXg-76{_kwt7uqdb+(z!!H27S*AJUNk@W3fU4LeXrIQD0%T z1q#m)k56X>D(AQk4AyXt{U$;JmdS`j2@41ktRW;Jm@o{Z>w1By4oE-`B-S3jI)RNa&QjYapbm?QES$!4HhRe&+L)_F$y(T zV8k(EC83@t&VXnDWEHBMOp@C*NeDpTlRa+*Z#yU$v$spLeD&~rb3)n!kfl{gdf-+g zpa;@$O?V^el9 zH8GrIXGgva_@+_#GWKLj!1jaoF9(VnkwK?%V2mv>F(dsmu+<+V18`b3b@IyFUwhT* zil6JlO1(ce z2x92O*JaY9gR{FJov7s(oA=e*bHMK>U~s(1MN08%G!K4NF6g;?H!p@xWXUC z22vsVeGR!x48tN%G4;`0nkG?{0h#icC}l>JG^ex;y42XA!7vBQeD>sQz1M5Zs`~8i zUj4E?b1n1S;>HErS6*^xE*4yM>h|1y*$XaFv(x8Ze)y7=+mp>%wRTOtZZvejNc}GX zDLgT%af&0}=J1YFr@uR2*&6;J^;?;fCvG}@znn+4k z;seGjVSEAIiE`3YsL14wLo1C+HS@OWMcXI$Zjk3Im(6zTP<4_lNIJjxE*)&wf|8Cv zNrdMl#3X~>CfG6pGbcMNbMvzNC6`<)9;VgxNEF4Ro=H0>AdP3f(Y^L$ef;}R8`}dw zvtK>28y*;7gB^7`pW1y8_KNb+!Jtae0E5`FlZl*vU>8#g7zEOn0b&7l&#V!xgN2q_ zF#9or5Q@d0L#zSA&oZX3e!<3GRbr|lasZ%WZfo&^$saGSti15%f7`uPufK2hNJo}} zC}h2YB^ndQ_;#e&UqVWBSW0O}c@GLQtn`vg%kdhcLPN*HS6P~5krgZfQJ9P@UX8Z1 zO49>OFW z?4&TwnFp?X`PFu^hwXruJC9|G&zQGy$xprOrw5rN+y6=xRAi>qM=zU8^~{SdnLQS@ zrs1Y4)=Y<3-&tGbVixpLVup91Qsm*$v`mH!wIm>Y*URKQVxs4h%yi5EzE|zIW_h;T zn4d`!Oi;q)l z!#hEYrMV~C>JK$AgProZUC z;H!CYbS;uW>l!>gg8!Q*kRGGUXUHXe-6f>FX5;EE3(&pW9nOEj{4`Rf1P@I>ibha zR8#aTG0Gwwf)%Q$x@xKUP*>N>fz0)hRVQBnjL_k8EUH=OxzECwpAhoOw&%WwMZ!(` zd%iFhEW@H=Tl2@Z?;Q5y<(oU(!dUSFHi7UzHCUDJQV*`aO0lpu=W8UVm49J1^moWH zIzM?eIXnMXISDoC01e3f|I`Q^8OQvHZ;{`5**0G7P>YTu=7&=!?;t2qeWO_Hc8#TZ zqX=eYz5yRz%)n^t6ZmK}Set7?&6n~G2wov9BFk*5%mh-wcZnCVZX+VwU^%3iRk2cb zn^JYF2w*IQL$PA@$hXwsM14}9)UCEP-~u(HOPnH^?3Q}Gd);mqvA)};0$sSV&R4+l z`Wy(f7(fS*4iVCStO8}M>@W`+Wn6`Z^$*{D;yc?&s6SB)!?(M-7BxU>=WF3}g|^Y> zY}BG3R)RA>bmghP z8O01qfGbxKwFADgNCp?DZ{>L}MI0M$r61KH5=44wGZm|vm36aWuH?cxtmKU#-c<{3 zfjTTLTE&7|q|?qn@lU@!`5$VrgEKj6EHFlpy{ShTI=_fH3-mNgES;_h-UWe5kfJgY zRwRppAQfS#YrQ?k-1U3RV&sqfk*_X4>ojK!fQZZ5VYiBZZ5f)MwWq&Fo*4Xfma5yI zK*oFAJ#oT59DC%E)Q+$2uY#bRIl})l#p1@TOJqKH0Lvm5d-nJ7b7r|t6c4k9`AzL^b~7Kh&c*3GWlgTHS?hQ2j>q@)MCuW51~0 z;oY#dcEj?qm#(h9bk~t$9yQudtYi znjqrla2e}>oTI(m7S}M_kY1b}TY6K<>5|||^GOcc!ifJ_fNfgBnpm)QaXa#Z(&MxmLu~_Jd6Za%glC2Q2pv~}& z>^^dSxtdggY0I`@7B#wfq?j<_;v=xWTrAGldo7@B==ru+>H6g$qfZDsL8?+~^lQwk z_{#~TssW4MY6USUQOhL0#Fs#Pe$9F{_aF&IcwxJh+cu8Z5{Xkx%aUG7J&dOAd%h=g zGigYG{8uWlpYfLpTJRW9MY*%0Uxa^v%1d4*%7IL=V~tE=iCBEHm~b{QdvX*f(Vq!V zXjF}$K?2G|#uE|%ATZl(r)+xvKZ`76Ne0)C!P743L)x@5!H` zFZ?GwqHmsh`_%u1H1a#hAzzvL`qV!n@SRaF!;W~bdMn7U$B;Ee&lXkUIl({d{d#nS zO2#k@8K?hCx7J`U8G(98Ad|`%VHhFp394CkK;gAA%98_I4-`EmP=;T+tiBN6#O!Cb zZKr_FC?kDkq>Be~<~e2(ia0X#3;ge(2z6D(w$(yAw!5PGF zi}-j?5%EA!8tWv2g_9PXLrjJ)HNYQf3P4VhVRwr>WuuTx z#_Ksn3ItFY86(n*lM5AQ_~e|Zp2@{@ELgImnO-)fF7wJQ%%zJcY=NpKu}~Vx_2JeiE7*Dgsx*%|}a#=Ny8D*EmjygaMLt`i7nm(@_|PP6G} zqK$Ye;V(1}LX(RHBsP~NX-d?{_j>vK)d8w{e=#cHXfw0*_k`#B6|a}_^UTeCn5mUF zx6iG|tJD5!C6<>k!re&~P3_K2BT2*(n+3l-gFo()aygj%oRI-O<+?eX!ou5-g%Yb6 z1HS=Q;n{y62k>d*X0q462)*qMXl0+7`WmyI9$GTg^njD;M2|Z?ob@KA64@zZQM_j1 z%Fejlneg}!eODJiOW%>0I)gER^BtKeWM=`>N>C7w9P<(y(<%@X5K2TTVUL*!EoQm~ zGO2KGEn`Swii-rsW=_T1Sig>i5TDy#+dY`YIkAg;7aAyhmOre%avnI(yAT=_lO_D zAc;sN(YoYqWZOZi$F3i_u3W9+Jt!|Eia!&HFr&D;7Ewz&Eio8$rXM7ONn-GlWPIje zWJIifxrG2RU1@9&Nn?^uo!q-NyXd4{(z325s%RYqPrU6NZnOxWgvVQ->FU&)_14Zsz$tl#S%Kz&ieT-HTX3y`!&Zya<-Pa5=E5VU zbvUq=mf}Wv>wq{ik}R`)z>tyI3)=*SVNXTxBgkbswvgS7`AcT35F{lThf0eRtb42* zVd1;ZF3cb4&csXQSugv$t9u$bFPoiz?bSyv>=hPPX23i)cJHlJ)UMu@hgXb?Cjaa7 z!hHNP7ao&MV*d*Ozfw!5){m&*7|Go{znl%QDsOZ;fEkUcUEq8c!TDH{TQxV%;(2h) zacuOmv3Dejr_rg3iag^wHG*?Q(-9dofCo#OtfkKjGtl!)-rc!w}ShKfKv zdBZ6g;ZEDjGPat#@fRCn`bQ?G0HrkGYk5dXHm_1>bs4C52fz&fiKhy;6Xk5{wkVKh zQM>r^sJGb6#c(d72mn!Os+}$25S46^Y}3Vc$|4<#g{&b}!FtV7OaX#ygRvY-R!M$C z>6_P^(O`nSNCMnd2s+c~vlJ_IcwbFT$=)H5stxtJY$L=$?xRg4EuL5wdknH%wbER_(;+YrrJdJqV=3?qgx2c zS-pXAgcv@ryrRVQe7zp{H%w&5`2)jhy!j_{EkvgWVQFbs755eu%#UcM2xlNph|?1Dgumt%#@}`L3a%$#-Biw|!--1mgmSGcH1d+} zCp}N^m1X8fYfl8>IW#F3f0Y)S zn~m?*maIr`4!kP?@+oCC3!YafGnR7Q!K7AYpqU7P@pSt`~ zw{iLLTW>Qmrk^DvdJ>*f9w;y72do+&@}nDL#-Td%m{ira77`0h<>Yd5W_#>QgF|j(34%5gezE zQ4J&2iT2b_(QFHmKwb#&G2`h;PxlEd)47q!1WPy45v0S>7eDRWkFf}*K263F<1xEJ zl*pm(aYnMc)xgl|-XCr^-akTJ7aiimOd)sWCh#`J@Y_e-IK$-!gz-A&*KUU|b@L1! zT$fM}NByTidFQVXH>aErFeB*o6aIutsQbNelD`M1$&LYPK1q4GWA?xx^H;1Vm9xTMyXeylrf*nl06e+t|U+4vd zBZ>hFExn9K7grGu3_q&YNm~T8)=Q<`=#>aC`DoI}9Xr}gB;hAB>{q^I@5Pl{780qm zrx!+}^-6JgdTlsdIBY<+IQd4R9Hg)bh;2rUL2w%q2$N9_EJhh$L={pG}nE9H#D5iXl{|!B z`)#5BLR;o&H3&(VQF`HO8O|c|j96slLr)-LI^aJo9?mZOLJkNgDQSF+YWlJ2&@bj8 zI78*R$vn0XU$Oqe0!$%oQ|M@67@s;Kk{IxQ^ZTc+yz}nj>Z!h?;he1}3z>0d#3W9)%!7YM~D3Kvk7Bhx@o+MFIC7x8%8DANl+8!gBB&km^ z?lrB)$ojmzTVQrW$H{qYlfG#38pf$IY+p5iw76;%4OGrw2NoF8W zdi`rxxdl{lR!F3B+Qd#ofH$|PGc;#-scj}E{!M)i{`>z2>-5c2KR5M`sn1VMWDJe- zJcE!XgcvkTGAr_680#YdQWAk9a*RWQMA}s>z7eERa8NutWYh~JrHe!WinTX@!ws8F zVFkpo?B&H^S{*et9k4t*cKJL#PDI{~o#)Aj`sNiIACW8ShHI=GDKRzrib62 z_&BV2hBzmQHrsZwgcRXjEwTrrBo19jII*{4jl%%hNZ3op9fUg=XR!muNaZZ*wP6jQ z0MB@dO1VsGHW*;l5u-kjW`uym#OPz_72Z)H7mZ=m^dSLniBrXe!4xhOuq;;XEu6mG zo|m(QM|pA-2_amoY*}T$C4dy43>?@(dGcK2XH#ayD5ff@=p2251;NU=Bwx-ZG2qr0 zQ$j6G%EDL~5;r$-VVb$tX909)i)V{yQ`r=x?75f$s)Cg2t zsZ8IrD@Z*iX(~z8$ZST=`PrgFa(aX!A=`fLIEj!0!C8mh5K=-o(itil8|larCy$N% z^BZt6%;CYkn%t@1h7oMPNI_wb(u=_1Gw41@Hw(KOFrM*fNbVtiGwV?VxP_5N#n6JT9IX2l5H@?*d`cT7KUex<7bv92SdOl2KsooHA-L)aoVIN;CmErNH#VV|qs0U4$=e8*UX6D*)9TDawW=4`c7)YHzJ>20&I*`b6k7p4A&%??FMN21 zc!AOQ)1Qi3j+@k5#cCWB?~)``5>DK~se-pH(;T2ft4S#wWC-$`*(|VGdzdI{d!`*L z4Z=QRSP9f6azQmKXqDw+S|iY-jkj1WA7Wo@17rerG*U)v^DtZq?6pRtO?KJO)WkAX*xcoc3TAxZZ`fb=SQp`KF5(e7CEmnp z&rK4PMmfK?m~*3ke*^?3n0Nl_(uA7Y_F`j#H6rn07kBQ=fPfVuQ#E8ou7eqp4x94n zmsg!yx94EAN17*1e0@WVqGt?P30bw)2r(hsWz!XUq4@2;BJ@FwpJPJWh-WR&GZ~f=SnuWCXs12^o zRT#-q_*5v5i}1btAnH%}?hrSN(0*o3X@EIw=#lFrIQm{RHKFy|Fav`b{)%~)&n!Mq z3orZ;wB{cyd zb?kAiz6)ZzJn<=d?tqU+s+6p9e&^k*V;KUtg|sc4=ZTzdQKPUG?d)>mkI80iomwd_ zVJ{K+)hSfaQUr=D%HqZDPJAqHLQ|od z$1r21m;gF;^f$Ned+MF{-Dg3aS?)J{()vyp)6UbyLSR^drAEBudM#F8u@NEaH|mU9 z12~3evWQSKU#m4Y&g^%9{fzQSz5dkKzU)U7=L#7ob{zEA*7HBT-DzLgvTlIi1h5{; zI}Twx0j0de66AmfY+MRGv=AH6-Y6Lxtu&OAjYy}}Y}>e$VQl@`wU2ZvNWA4X#f#+* zZBYSy318_KZIc#3+FY<$3$-%CzuSY9p8o&|H2o29$NWI#wVE$XuVHF=?c1!?9AC}1 zPOfB`ul6&A{L$}TV^FU>@c;3RViz8TmWOY(z6h0=!)o(3>t)c*4_mLcUT3|LNN;b$ zd+-~r_o6@i5OGz0#`?VV8`c+C+j;D6Vgk4Hu!`BXckN5|Rr?-K-K|H%GxCjsYU-Pv?bIYVda>^TR{W#>-kZs&&A z^-g%Fy|H)3yUn}m-SqDB9`qjbp7g%Pd#m?u?_0bNcpvsY;{Aa4Bi@gCpZ0#*`#0Xd z_kO|qRqy}uB;~I$feFKa#SwZrtwb!3KqKLsL7Nz0LPWqPzqYF-fv4OEzn7pl@Pok! zj~M(Bhz{A)LCHmUja@B0b0}k%(hG(?uIWKpHk(ACHehEJlPTV%K@UG30FQc{;-E9t zV4HVU39~m0sEII~l(kGE&RN9jQeA@d6hE%Zge!w7-Z^~EunnPJXDE|QClDG6zG$q6 zQAR)qKy=S)=d59JUQkZpl=p;QGsXOKPLC{uaxUT=Z#61d*G@1bO+dWW7c(+JAK6^%S?G;9KZF;gtT(4tZw5njtMA5&G6K&=Gb=!tBR!G*f0rXHFN$a;qS zb?DEKO#t{kj_cSL4ha1y$vAH_mU;k`t5KcZwBE;{rXKg|yS3Rk01yiUwi%zFavW`&?P`)F{bE?p+0xVG5i|O(j&p9^$$9PI@9H2 z1=S>8=CC#!?G6|*KzSI&LC+hQewbnE2M||{*+aN1DlujG1T~J5S#RuPKqy!tEumf6 zEAgFqJ>*AMLvRvpEKW&h)GPG=gb6y{-PF3-Wsbq;apDYdt(j?&FsQ>3@j%nXx7%g) zF~t*FHqj_xaM-Jny#QvIEj=b6s&j@+i&4{&`LsJF>-r3VV?2(riyYUm;=-KNBqABr z>`^K+=&Umx*O~ULpP`lx#h-OXJsF}V%(oiGLiDR}(RdHY-4BMWI|}Mek>g_%Mg=ts znF9liiA3M4pX3ZgD`p_j*J*Sx0&a~d1+39bYlEzM!GKuOLfFv1^vQ6fDM!_XbkCd`qDQPz0XltX&TGbi;bsEj zy~@z`2+cFn)B{b;)JF?`q;;hRP8msN*+f6;tX}3RyVQ(TN_VqbSr<$n7BQVVJZV!2 z)(nVjjAf19rWPy{hLc%|F=&sCLbH7aEjIImI;;$fg6R>&>~Ry;koHtI4$M1vp1r82 zg-FdQk*B6Lv+9^KQ;H{QotcH~Tk0QX2IWhB(4W=COTomzok65f*~lm)dy0AQXkW|lex9>C?NDhUCy zd>79g3(y2f^ec;aYw=Qj`KJc(%H%3baVE0CenCHu%;8^Aq->JRUEBTvG2y^mJt!Fw zBo=?9P%xFM;{(Ze-LWoN!3MNA#0&fcz7J%@zbLF_77-iS-dP+}vBmHz^_Bc8zEG}v z3L=L(z>||53KBBG0s&@?(;dTgmD0w^g_@*>{4`hW9C=|Pp=N{5D5Qx<38X%u8oHLQ;)-0$U0t-s-U`wN^2P5=3LP#Y z@F@8e8BI9EcM@QhVK9bBIITFyHwjj*J=S7WqRDafeUd z(s(INj_F`hGj1fqYaKrk^Rlym_>wQe3?`YQZmhK6n{Zmi%T6Kun9zA9kq68J?4&Qr zh>N2>)4^!1=u`^gSvYD=P6C`!VmD`l%S`#E(F`rB7`xWc1Qdf#)HQCzc-1MjqHk+C z`1Xh_^fFp0(+o4U#KCL+X@L1d)p=Tz%Pa^6l>+pJ(2f$sB>MsjoHc zJhw(36MO~bhNF2vR5mr$Oa(Q3Q+ZQ|k5flR{}q*rM;B8ZPC_{MnC>DA%i0=6bR|kg zLer)Bud0m9Jq@?TaxTiHkYE^AQmg|R=TwM9n{PJNji&l|fCMMVMz3;_4#ro6uh`oV zC(*-Bn;$0O$-BBdBq1O@XKKpw;Uz;Yl4QL+q2vlq1s7+hq+T+$GsT#~0x#}}>7kBQ z1PywKWuXuF7!-xr?O+?j9+tt5+Oocj%+(I-V-%x6vDxdky`$}@z<IOypE4h}|ANi<*%{Og1Y%6BK`#k4S=aV4vcv!pYsbv-&6H&5J z^8k>s$_`eNCC=+B`9#U1>~WIkWwuY%9Xk>l$(0_25yiNs|~0s13NS6nLqP zM(IYyv?K|AW}Z}9Jz!oW)b?lOV|J~@WJ&uL5sqn+I$AH&&H8fOta;UR>BXk2$F)W1G&Db0nDk@>K^j#ve*pH{#%(pF5 zAAKlO-62~z+GCp*hwpi#lOqF`Sio=JkWE)h>bB zp1>s|$$q|6dj9u6wbmQHvahKKUFCF z-+jodpZsUv{WY(=8GY)?5Jj@ z906enT4PTZM@KJ=7M~8orx!<-#kYL^`9H0#E?fB`hVjh4GAqQZYRNj)cx5RnLk?;h zl-aAX9!35$gbG-NVsz}Tb)nqsRG!A(_37Hi(F+^N)0~EW>-qJj@f&&J5A3h7{}>HB z?wHk8#Or#CV_OBPOoD~g-LYJpnPIOuJh|Kog6{g|*B$+p-5I%=+pfIf=tF-u-8p>R z{zLmjYkPY+m0XROaI^YEyckr-ve^OwJ zdlRZ4T*vbdFK^ar%STf}Jz!Ob0O0+<>W58G0C5#)Hcx)?lU`x16>3p)fafObYt3ea zq|W#A;dFojdjn&-z~A?CxEy3+fB}5#CmKQKPU5=0kzs`n%0?&epG0U)IY|i{#c2?1 zs=!1Awyn=m@`p~Gc+Lr1#G1kdqH;2+AN_c)0=wg9bBl}BYNrrYt9?ZIm0D6RvxBmi z;K2)^ZxzETApbls3Wb60F1-4McUpgo4cxN}pI!K`3xCFlB&q2aR&DB|L7(9tNGfEQ z!+~Mym>RI^+%`(4xt_;}m<}bQ<_X?Lft|nr!8Ofe$1{w|led)K34cjP)+|!wEk@g< z!sEIri`x^frQ$5z6n|>wCbgQEvTd3A(xcK9rEjARV`)oWrT56lu1qac?H75dOql)T z)j#*EbWW7D!j@xKoMJx0`UMb&6E?m`?8w+}TLe?8;F7D;0eu}5R8?ldNRER}z)c(<#n6i4+Ar=OkCP}SR}Rs9 z3+rZ{{sYZQSZ8g^kApl4{t(un1zc?KL@os=bRl z_HuwZcg8K%3y(G3*b`I2YOpWBePJ&$h~b;a$~oAm)O9SEoFeGNVci*a-+y%9pkJR{ zEmnfPeK!IR37EIP3hS6%gJN90>wLbBwE`d(xR7k1Q{^lrgB(P4smd`Y`>^L1?gHTJ zY4jJLmmPGKfj*v&Y}A@Sa?6mQMn7JhM@B)fxph2^=2J)ZjOHnB$>PIIQbciN%E@M? z*YRx*1k&P5^5P0GskE`B87u2F+vAyPGp{a!xb?cjt7s)2y{J0cO+$AY)!<`tdRjsG9qh|M-2wUL#uV z$LoYj&zC?7sg|>~{+a2hg#EPdbRpokF7-O~QjA){s}`1RoE$&+#^95o2Vg1csKHdkNv2u^Sto)rQeQ*D$Xs5#>DIj@+M zOO0w7oh{U#iwNSF;l~X$GX*(TxMR>RU;l~|5ESKNyme)K01_KOEzRh{`RO2^ z-OL4z?!lSMU%iv9RI=X`6Ti!f+nSF@3%5A;{s~&OcP~5*Rl*>#*|D23nBys9%p_s+ zLp{dfHJ?{Z1*E@b|3nCvqQYVmBwHUd=|;l@0hjVY=cYNQd4m89i7}q)%*@f)2$U7A z2@@6sz?!;d;*9N^@vC3`?xp(fRro{jG>H5{Y$GgwlHz2gxrp{KYSoexbbs7MS!Mar z%C(oX}O&j1>T)1fClzjH;9k=#b;x6V7mOb1U0N!n{9KC1k zf+exl=_J4VUv7Z)B@ zJUgSfFyw^sC^m`6-CTFsQ?F&)c#8}u>jLKtek4$R0vLP!^@ z;h9-8+P<>V0Nl8-czLn$F8l4pwH!;KXg&A!#R@!dSo+iJP+4&SkcNM~1a2EV3m$$a zHb=vot!BZuwyVrhdSY#Ox({YAVHzvz`)AgzYi+^|CzW=)!7Gd(#hVVT?Z@njV%uJj z!Exq;ai>i{>3E}!ey!hbZQxy!R4O^*U>90;yF>&r8`?TfDt(k|3sC9{FMJlC-5i*W z-?8wCg`ZmZ#f2{}{24Yg*YKA6U#t&W{|uD$&)GF}TW9Rs(Q3UOoz{Eo_t_t|KVpB{ z{%QM{?Jq*!{h9sO;M*!v7rg-Oi_SIRo0-MTL=I)JHoD1fy}j8QHS- zGN=K(I@prcyJ8{m)YEz(joCVr8A9H~PgTLt-8^avOIJp^6=TSvJkNR}T|`v9NSY|-I@A`5j;Sc%fDF1O zQ_a2_SNcRt z`f?T)6+Kfgr&e)wMJ{3Ep&JI$Zylfd7|Yx{&QwDJ#$`$+#O+Xu;jLRi z5%C{p;MqcpP;1MBM)9_ige($Zfj>-~QAC^2?U>&HJdiCHW`4WSY!dsYT&ZpEDnu`C z#RNBri=E=hr@=03Vu}r(Rl!4aT|hp-Kbxp@Ik#8M`fgNsHKtBp9M@9$8)YNWL1&K< zQ_M*md-?YuH~SigA9fRtpYR$M!c7q|9cqlvnFrrxz4EG;Pg>Zb0U<_RF;UDl8rdTF!zDXk zsa+J8f|a68qq_7RSwHyHyB-Xp2}Z-&fJqL#U0BUP3TAVd;TB6lV0G}5RaAnS9R?*g zT5r@`sQjf?6@)%)#Y-D_ML#lZ67o0<9Z)%N6)o39R}!JxXd6`biwKb6#K43_gkLX@ z;GS`nr#4KGVz;;Ei943Z9GVupm1FhzdE({zAQfr?uF!>6b&Da-WC*On(!(fU6C37= zOeB|qfHv>btp@p8H~-=$qRbi?pT66LIQEcJui#X{sNm!4L}j-I6udk`ktq)G$0U-M zk3}uLPwmjM-yh14gGL-ek_%U5Uy}NA#07KD$d8DxTE(TT!dA7pn z_|_sesplnU&#kXkA;QZCg!LsL^K@;|=n1gc$%pyU>HD4rOvShEUXpx~Oi@n3oHC>b zD4sOynJg=)3UaJB0&Q2Qg*p?#v`l;&c^qn~tqGNf{861i+!=(V6{CL=FUMMzB^*{i ztXFlAwMlodLf~{Ip@22jV$Ftb9V|#12Y?9VcytM+Wz;A1w&ToJgWHP;`lygrGekY3 z;5PH;Xgda2%(S3*#yAaXIXVTx7zFt`4!RcgwZaMH(F9}j+*iH|i5mWg`z02~=`FJ` zHwqXEI+$Zv{vCES_Ck(7XdM0DhSvTlGNu#wdR)gN_NmlXzXT})?FTHdD2=Icz2{&w z=e&rysm{H=gBlx?@0zak+39sM&jl9x+2=4q^UhPe%{d7lnAB^DGgJ;D$02u2tU?_t zymiDG1fLW?c6R|-AK>qnD>Re6r>Hy6Wg2dKic4c@vDgz6+So6c3 zQa*?;t-az@ZwVEQb?VyT))s=@*I31)|7WFhhTSdG?!Ni9+fKPwvpI`%Z@YQJ#BECB ze6G^(Q;?=#17g(2!G&5#=>x-_n1fyniQbHz=^%_?u(=UWGtdAW^VKuCO7!|bu8>yj z^q13&*tUp1N;{bQX~t%J3}rbG*$K0(M03M;QFs6?iU^$3K3M)uO;vPDs3t}dAjTRy zV~U#-u@sUL{D1e@?dQPk2)n4g%DZQ(H!AmExL9R*RxcjjDs2qb#bJ7Ohkb_wgvXp$ z*rb2nH0r ziZg@rmfOM@*emcxw!O6V}DE?Nb%?FV4@afA~^0d)hrngc7~ z#_iM7)s^;SH;$SkYw-lJ@-`RyC-zQlV;NjoK6!3;&>VEisyVyQ#;X&SGpTpC-%VJ27AFuIx(Tvc3YtV9^bE~X%G za9Z6O`r%kg0BqLA6YSdbAF5I}rm`iOjHW~Q4JDVH5i6JBYzK~dXF8e@=4d(u+h;o7 z8DZ~1^sXHe5CUx9+8xQnM)oT^|j2# zY4MK$x|l-gdzZ@yvx6R2dR@A}__3YyW+pBK)GY2OR4~y5mkMJ#MxqX~koGNgsWHB% z`u&O3;XEXiQj@4-e#5PRe(vVlYX`X!VBpucI=S{XR?h#^i^=-sFHRNx3x#513{3gd zNpt+)Seu$(x~~@*d`}_lGwEKsjA2K5^Z(~lIr5tS`A6T)g%>|e@yAJXG|Mhs+b&fu zz4`9#exXEM%tE2L)@)pQ=z>cAu|lpA!=e)fs^DI-Uh`xdGDsMRHsNyi1M57%@Nso( zv2CCE$lk2Pk&4lQXjqOgX%9t_b3C&oUnDeiSM;UGOrjQ<#JXhurC&e;UcuOu#VC4M zr+1nuU%`dc6KNJIN%zwG$KQ^xnpE=#^_>@(sj?2HGXDOa<(+xeU2m?s6R+Cp_usIQ zdE~;~JEVU;$j8HiSDO|K-NMdCIa5Rar)w}+NYJgl6~EhO7XJCd4=nt!LI3+4_tVI= zlNqy?d892_lWd^C0unum)zlO_K5ESZ#qus)wmM6VaFxXiA2)~{2s7H5ZNOzWFBPPokr`)_u<#}_M7+S3fHbZ{^Xt43WW=Yw;sE2 z`0RzlN%wHHe{kdaejH=_y}!10`SOkZ8`}lKwC`NDJKaaR-CXC!{-nQInXGj;Cs$h= zSAWkY1VwW9_O;2*<;#y*BTZnCR`}qH`*^1G=;bT+&d#;X?a|g|t5u1=^U*hd7=5R`xLi%0**(Vy=+%SV6ygJ1jtS0K{xKUjDI`Q7W$ z4z?G1XqESvX>UV*-v>C(?D2+lki3Z-26Gh^XafRLq4s4*TxfU0me8MW9 zc)vBe@xVRV@83G8<|iBZjm`bTtt44#Lz!M~So5UOuap~$#a}4`-n&?S&1*|9-XM=6 zcb<5n7_T+CV|^r_J;-Dq#P;b`PBwcs6J_oNz9S!OZk_{CpttHgRQB2}x3n0R4oVH; zUqsto<4L_w2uL@(xLkv16o}?FP6x8q`y**qFoAd{A zOPOG~>g((=*Og42YTl9>z4VsG5TH8#8IfE%8l0~wBReV}LAudGnn66yTM{kv)-(`lmlEehRkX3W4brA?S{}EKzbZ)Z z8Whfl{z^AvY~i^CHogJE(-W#*I%!}Wgb=7VPwVP&1^7GJJ+wg&fZ9ODmekXIkROsz zQ5_y+XVbnUqQH2)7`13xr+MXPlfDV!NP94MH?8Vo0W1+<`i6quP33aEei3^TdinSk zf9E}HDqKsuz6F?a`X!@WYrY}%|5m!~cjeIQ~ zRMUx+VHTs56M7f1Bbswo+WaR764}(*^5wUvxuLfcm_KMY)Lf-AQzosndKmJGnkEQ* zrT9k`f|OH4&U~8a>2%2Ddqg)eub59HklUjMoFO7O>+!_qS|4lYm)@S(y5lNiX-wEw z-J}AF6+52V_o2~3-9waaoMz`|EsA0%Dz22MT^Xk^tim{vVa7w-cUoly@5x8GsF){q z0>*YY$O`^KYS827k%90Pw8LVtR<34BL8%fnBi}2A}7NaWc0Wv};5h@1DZ2_`|invkEXG@_I6~HkIvLG&6e%7lNeeC2s zJDZPvAim0K6A^_Q#e7^U6Uu=csE8qqEa+bZH6`Mv`ERBJkc+7kQrd|`*so-QsF1Bn ziXgs5H*?zNB=tg6XUqz@jNk&XkTFI?0GYvrFsjsZKnE1#GCu9)EJQ;UH%F2d(49b8 z9sL(%vFZ?~pxBS_I)D$z%u|gcjNAmRJ1p-qwT5jrqpBp-CMhj? zWfxfVQlnG_Ggk2?lsWg1_k|I*IJ`)z8kk~r%gfSy|L2@)Sd$HyUT$0uiN-e?(2>gx@=KiIZe)`i2|Cr@#sU5tN_FJ&T|&%7NV=qEmq+Ttb}5 z;sd)|M70v%5U(m%#J)@xm!6OuQP*dzK@mE_SSum8#T$}X6DVVYV#CT;@cHDikX-$| zTXC|uY(l0pELl|g*a9Ow%NLURBFK+nGr%k|3KgnK;qVxA*X}|JTcu1jiSr?$Fw_VU zqL}zfD5aL!po`-r8s(666w8@*XT2FVvK_=))N@&eaI{`+#|~gcVH{RL-D=m0oQeDZ zzbXrKfSRO^(g)4=2yaY_p?5RIY!ss&D*^_Zao4@rFDzl>(B35aR%jQ?D9Cw>Ajjkf z+j)eXB6FCOh_yl>LBY_Zd+S7vV5(;Gg{bJFDyMlc%J{qj=^>*=iVYfmUCqIC5)(w^ zsX*{!V}Vg0LzVZ|u?^8hgkiZb&y)DU(*NNiQTEV6M|l>BlVi~qGkI1GF&>c1do>)- zjUbM#vsTTQf>7qBu7gA~Q^2MSPko<=g;Cs&7AsE8s#lbn6eSm1Tx9%6uL}SpFd_46 z;kw`O+=^Q*)$!QJ^dAO=Ue02R9>qljzjbFlSgPd8zh6bN%iy?(K|`Ek>CUp9IE<{@ z>P5{q*31;b@(4~p2F~^F&W>8JmGa%FYYe95?qycBCGmd^r62>WTGQzT9A`v z&&Yeux}^3NsXkr218s~JizfH5Lh29sdeHAhevj4smPhh?gu@{QP$bJ1wcy2e*H zl~*0JS@RpJnIxN3UDcA7&zK9SHnALH4WV}|V;cuO#G8f;qv|_y?!#3GZ+$Kz0ofgb z#NXN~Wi~p8SKx@=`RtWLcfS~B zn{Ro`%^R2YnrqsI!7_)}Dd97M30t^oE{P?M5CeoTH@$5N}b2|AH96}eUI)xPE-*B?D}9bG;^KT?mcqp@_QfI zdu=C<2|-gJu0XTU-rk-*aLDU{$s=umRtN>iqO?nm1j`2GD8TF{EnG{mwgOGFw2h5~ z+uD(FI7q{raE-)i1RbMP+H`*qu?fZlDEsLr77|(y62Ev!9H}k=hM~66V$)38^p7q) zPIzN1PcsF8lQ9gVEXor*FOKYmzh@o%8pwCmg${PSd*Ze#@bRgkNQJ1BgTDChskxSl z&u4w6lEQb(=7c1o$qbKf;m#HKXtep1V*AA(`flhZ*;-8HoBfYIcc1;zv$t-2>DgcT z%zJOU?KAKF*EjZ;mrtB%FE585+dupE8?Su3wg14A*ZO__TjlE??l7p02$Ln3KbY0I zjnG_bB7k&=p3RjGu+SNICF0ZR=+o_d*#5O=Q{eccfAQYWT)OSO4?ps6_iwBa_prTr zV)+~Q_doXbx4-h0`$vCy4JASU+ITWJ`kmFpWK3Woikg3=xI9IhJpaK*LcfadJw?C% zfTAUfOH%J>*^4Qi$CEMgi;jKkGlhqyd(7KLb8T}c^O^Aa^|ycL$3ONo*887)j5XAq zG#Z7%bo(urE`8$Lza1cBo4ohP`@=+XfJ<8!cgBtZ)vP@!Ek`TA${3|IEvsFz=?PHr zvzQ&PJ=AGe?!0=n8QwTN-0AOu^R%}Y6A`=8Uh8g!;orC)y!YPiK_Roa*eS1G`NFGS zwL7)`2As0pvj_eDaQO6AI|okULhFUUec{)!7yf%V$vQ~$Juu)EfpEI8Pt@Zp$cK(& zM0|STXBK{zef6&)TN(&kUypb72dy7Vbu!{|jNFC&<#;z8oW&PGzIxd8j_3c`y-@b! zPx|GTFm=_n*a-PKF^v60%5~A%#ktW=%3_K^>Q8YgPccU|7-kFggVV-Rc$S(DvoX&3 z9H!_$EDg?5>`WYV)3Ej3iBB&}jRD)sdg#d=wYO>OIM9f|;ZY9aT$l>>Qal$y78_zo zV0K?t&F(rZ-!L}jS_GD0yY;X#F_5V}5_S6+Sx9?fxKQy>LCVam&ts+-lagcBPn-+P zuPOs7Jg$!viDe7SC6)_fF#}%^FM9V_p1h5giZn9s)_dL|+%(S~IwsYBe|&AtT3>to z>e{!yw%hCVhNCOb+F!-HXZP^+4z1=1^R0}n@-LvbD0}?^@qZuzz_%r|7qM(O{6TZh zH#qcbZQt4EJa(-o*>Ej)8+{vLaEQiMD8rEi9_tBvW*zU?2teQleUBhr{vVh!?kDyT z@mfMckPRvB%0sKG9PPeOOe0hZ7!MXfNyekaaaNPBehk~QAC8umqL15naeh2pDwl7b zJpeKY{o+UC*gJc06Ig=$4<9XOlO%xf!f&OF5*6$ccqeQJ(DI{FjV!>^D}+M3y<77t zK7MUtwAf0q*??Ox41)tf>X$)zhT;J`D|hs_!1I=)PoU3-AS_fMGOJawD{kp@KT`x& z8iK^J9)nWh`M}2svcH3E1Uyc)iVf>wOweD-XYga}i-+q(* zm6FnRyP~th_L_MSKn`C~2s$7?KwyG)r&B{ahtN?_4+7irE4iJx6*l|C;XsMYOOkoN z-^#V(9fEpsl5*I%nKeM)Lj?XjL9`GbV0}_n!n90|AWmLBuuia>Phpg%)Aab|mkOf` zjRFR4VWV*2afIfZzkU7Mn{3%N=*Xj1IrmN1uGzo6*`ksaBHVI%sUQddG|f4`lW|)< zf&H4L!%&V9;bDm&(G^84LA?wDh0Zr#`V_UGh7~qGGWvY`13B!Uk=27>A46Iw%SI(r z*aB+%_(e04q(I<4Wg)^LfiJD(K(CY97<{+?@xm|J4?B6{bbswj5-_t0ST9->#1hrY zng5a)K)xU8>Y1d9PIEgIIcPzpDU4;B(v3L-#;A=jBuVdnxrE5R&%3twsaNG+u1WX{kE% zqo>i#)&r2;f$h2@sN6_k)Cw33HCT6e%r(MXy*k6#IA80o z(DfK0sIXcks$)!=DU>Vpe7L*-g5$!%uYtR9ge~mPgVz6h_}gt+uR;d-zggc+pU>!{ z73=}kEyUL0Z#~iBWwz2dnIUwOX)HwNiDo$Rn@;G)dX$Q36g; zbCoB`e|LV}Ow8Vn!2>h}8a*~Q(_W$Z6Fr0olY9q$pfvh+ys0$Vh3aKW$Q!JC7Ps~h{t5L> zY1forI*pfR@2sl2mTmxhtq;pti42ZDk0fq)3ytvrHtRPq-LrlAf z;D**8cv5(1UI@PO*~K!_8NbdWR#0q$^2pKXuH_M(WeIo$x};km?scJFKaCi(k+0#& zQDE1>RTE3Di7C0tlTEw|Y z`*qpz%h(Ar);#U|f$+7s<^isbwGv@w_>AlHCo+Lf5fTtR7;#ZUL}*M-bsBk5rspq$ zae(Ln0fX-;j;I7zp#(j&7U_+3o@S@?bpiVNv)CGJvmZ_Co^d$y`~f0u{LQ=x%+9h% zy1tJ^{fkRijQOtBELE*sxqS5BD&?cUMa^aXMBIwM8(7^28)}rxe|Hs2_t5@yF8AR~ za`a1a?!$ZoUvm=YF2ms#KJjUV^7>;C7c(V&XOm6+8lRy~2Y6l<;M54F3~Ut;xMMzX zjT=Baj(2LOt?{Jx!4JOS10PuXzz3eRnomA(>rZw*_L-eOdFD6F>*$vK&F_8Zl`C(! zVqZ1BlF!-qTVGmef+BbkDab-~1Zc`h8`KivEKSC%NXkL3;ka4{(L--Y-0lFH+Z=^} zZ=_d2(lT2s*3QT*uvq}qLz4FC_`fp$Eu)Yd1F|2m;Gs2+f zzD^zjL=b!{0})l)oK}aJi*-x!z+G#B)hN8uHc^ADx;J%y7jG8V`stqapPa?YvSe-S z*}n6*w^+gR$UR-nyv}KDNyO|fZMuwSgipXF`(gWoAUXYz^*h#|pzBINZ2A`a+uXOh zzuh1beJwS`ihALH% z#4Be1W}=Y0Ih2e!^4#Qzgr@hjv8M+KeGADCQ9hKRc}-5G%qcj=v7s^GGRS5$H`LZI zWk7{`U2-Q%6>LPBCFx8xW-*3q{J=DvgyL&ZzoRRsF|a8#gwp!txFQx+cc()bRn7;r z@3b4!bM#2&DX}q$SPRrEa3=u0o5t!m(>rbZfK2-nIWwi#(8?JN3+gDVJD{3C0Lf^a z1TaUt1N9=UvDJO^Rw*x27NxPiNJ>Ab>x{-s0yLA5zQ^>3+k>vjudk|M%uP>X5x@Xp zz)gc&f==S63CW5*x(~urFy@?QAhB*A&s2Jif25fYH+2U!M`O&irv~JtTxoq><5ANk zzN$*Q^s8=|#xoqI*;0-Tz&Gl{&Gx#fBF#*bon3055(lZ$j8qDf!5C?T4h6)d>?Q-* z97!rD;~a5~`pO%Y{-v2yhmo8CT{M7a9L!ETC;*9%NB}{*4%4~f1@+_ipw62+gWAB< zwoZ=6c``4>GV2C)qIRa8MrvS+q*&UhDLoe?XuQl6lbzl?2|cg3I$iUeH=1IRX3ARm z$2D?hL72Dkl_QH4i|Cz7$JEEtQbJbpmizArcAme=DaFe*wW60yy-L#<7(0G%KwMCIv@!Z6OpINr{kCQHIiKUAZziE zwJiSipV_F}@_A(_()Jk9uLP&*gM7~S#?-h`4Pv^}H9O2YLL;@-%^K45F;z5ur3`SUHWLVF zCu(e@&1NYg++|R?&3fG>Z&gx{&Zorj64paz>+?;tYTcffTb~8H!GQM+EHN_+&0IY1 zpskGm+_P$nUh*s2KG{kPJN?zdPeWtjO%pIH7VFpK2|`h!ey0Q*sS0}bn8LBL|RPJyQ_S=Q#!9G89gGOpo1-*pc0`v|@DA8VyFI*sm51d`#=F2YM z5uy?Z(@;m;ASuKVj}RdyC}J9pIw&F{O_oAMz(Dr!5QK|pUif_)2fj9_Ci+GRAa20- zst6H==+Q)!pyQI8G31YdDS{eu{W7(p61od&f{s0Dk9dxJq#J|wf>hLRz4!~2WDD5x zlN`Jl(Njk1K@q~j6*Wq=opD*pEyu#n9?yAneN@Mkp~jGg4y@+!B7xR(syLD;BYIfZ z@lb$HwxC@DbjXszP$z^ak%R9+pPKMIO>;n2Vrcn6)#(fh z_&pA2H0TndQZC9CGbM06QP~-TJ=BlgrWBiKWP8A&<>NG;l ztmFltPfRE@6Y$dNTl9-G13X`RbRoaxu#G0Gn29<7w|Whn`Dw0F(ozN!ofmusN?ZVQ zTf{wk7}_C4NR-K;aVhJJdqLEHkwstJUL-6byi-kPQDdTTlw( zo5GmzAf6PAiLy}UIXO3J4%^OpBSI;nl~65u4Lr#6U^L+aKtZ72A{4`arD2^6sAE;plY3ZdGV90-nvSv*?ru8@PpDegNbBRE_*A1mvzFDS6ba{ z_A3YhTg_7eNUlW4aLceM=&6cQs-r*6X9;o!#s{*OB?6cg2&{&=D6%+MMf{YDIY9cE z`Z&@oEoF)NrgmBu`YskJ|Hw&fB41%NyZx=5P8W4{1^$-?vr=2FcA=4RFC(!NHoCb+ z`ciI_z%sDCuO zF%lKor}qGar`~uqvZTL={y(3e;;u`ZlQ^ zxh5^3=||XpRwd0p?hHy3`>%+Z1VxqFQ4LPJMxCQ^*Ta%_D8Q$S5TDx&1}7sk$3>Q` zu%KF6rYV@WFvRJiHY?LVb}nvh0**5qv_QXDrYrp2HslxPo08)Hsk z3TdmCrAO>scV@ z-gS#`CAa?W$1YyH_{Y|n!P1iT@O1E*M_NmRNBA)vJhHm@NVCJ|KF<8$JH7B%l=GiV zjG@yDGvqUn$OaE6SfwNbpI)62*#*cLF(JDID{0yF7%Ov#-EvSp#6}n)v0ZA%NfNh@ z_V~NmzI5}Zb+~hRt=nkaw115_v-VEX@!f~oZTmk0w)6b|-X`V=(I4#l+nd(&-+1#? zKVqFYwL>7jO!nDKA-Z~@vs#Vs+3@|N-?FWrS{g;+#dZ2ccvSn?Gk<7do%1KM5apyk z^Yl*2AV5vSgo}w)ADK7&{?zY_&Q7JiNTu7bFX9En`oP<#%!kyD=_Tc+M+FyQ*mwNZ zCCf$(A)4OsHw6qA^;PtI`kZd56aaU{0GaX>_(-%r$#kh``{^_0hvA{%=(s9=Z$>zU z`4`h1DkGEY{+xwShNe7~DE?8ZZ?TPaQv;PUvl742@E^Z=2hzka*_~cJaq85Gm%Sm0 z{KC%8<^Bn6^Y>xF7vpLj$7K#{V6h+sa32z%N7a|>kok=CWc`Sssg$b8WeJX)h@FrAJ7I! zW_ibp0U;pJ5=QwV_aH^^v!$e57+|_YK+VPyL0F4;2Xn>~tp;1H z-0z#+LBxt@KO-8ac;$}QhmF&NtJ7%`(G_oa*@^9T`;N2wtuoZyXQ^gwb9VxkAn=74 zV__X8TsxL3Tt>Ofmh5;dAoO5a2J$GIN-SDjF(TQRXm}oai`r)@V8K)ZqNGLJj_c_87iMZ>>0k2O_L&1M@u&TE+<4*e>7ZpE)M;eiYd*orX1tl+3?GLM=V zjYf+xf>?=L?F2I4Yebo#=y^NqOZ7T1KVF5nJt0<%zggm!L0u7&I~Pun15!Kk)rtGiQ&Xq6%H8XQ?LYv zJ!e;X5+7lSL|92ZP<&-$Z^4xBBM*{=c#!z@fsbUMKby-x#9EuBCozEpMojYhRMLl8 zjXBF3vn?$;*|Z$myYeTS42&>1r@1v3)99Y z3j_mb08@yMgOxDni0_rWdmi^rt;tRxpWR;C?IbHJot3WApV^z>XCH{ba95J2k&HUp|&U!e=^qwl8|!6C@xs+{+} zb%7v1{vW|%dfw6RiEr^OIoTLS=uRE*qRKgY*{_J6z9U+V-`0le=N^rq9yqnPH#Rud z8yWkTuq>1Dm?FdXeRu%3u!CkTWC7EiCHF$#cDtAMu(2a9v2AY=oUu?i=(-m+HUKN5 zaOfR93C)2O0K_7ITWgu^ot;Wa)QRX1kph%0YJtDL+wCUdCRTFT?5$-8IEGmq7_3lWVo1E+My6j)*VQOrGQ` zxvFTM7GG(JOqV{k`^& z+yCDFoc($Gx9$Jx>^e_7-|BpHZr!AnrTAY+=3kP|OYGGh0xb!wc^9Fe`C!TEi-eeF zwRQQ;<{`V$^S0!uND4WtSqKA;UGApt&GnfilC13Xq@V3V^srBKhrL0!k65@rM%HL7 zKn)p&55;saJCAtKedUK3J1do>4<%AU^jS1J}WhPn`&Gl6OifjNQ_V*qiVA~Eeo^gf$%UBc#B zf8FFT@PqmxI)S1=Mq+c9Z`%%{)e*Cyj=Y({KnXwqhkiZ4D;V913CY{*7738fxj_c> zgq~tBREW}c`%?{Sz{5#x!pLz{N?_eL9>9JVMP7gr%Wi+#jYrsY*5c9bdVn{QWc1Ra zfE1Jp9wux_IW(vcRPS~mGHIW0#LXS_nSYPwIHY8CUO%?Bx zwtBhOrHTnv>kt0=doP@8VK;9aD9nkZ4_**;`eSw&{o+d`UJwy6Qea3&HhXP?*=o|| zv{))xQGDSxfH}R~R%bbzuP&GEILsIDdcm`SbEr5fFUx(5#LAifsT@0!XMHDS0YXhJ{U@$#0bz6w6c}B;iMO-oM z$xaF50XEvKyS;zrluN|Bk_Tk1>?=pv};TkcfZxNiUHwQP7k%wQqVjy9uq z;a{GE#D>ldswMnXeoK<`ZW(E->s@j4Sq%NXpZDAlfn)xWm1?WrAC=1wOmZl`)hg>? zaM!)HAAlH7s^`Zl027BZcnpN@_U0P04Xo9Wr9V+y**lYM9DQMUD&7v?Q~=St@SEHH z%|-cX*p*3k#+I1oV z<8&eJgG=wADphCC1Is#D0`uLiz=V`{fzc-bRI8u$pi3~5R}^_BZ@E~K6d$Ih$K+TJ zvJpa~D2N7@U4uK>5ibK5q28vG5qKt$MU+x+uC~A{_)c7pB^fctDZ`!te2$4>R*BAH zUI-Qd2PiZ^Bmr!WI~n3VbC_l_4G!LowF)M98N0RS+Jv}jNPa?u#cmfN7BA6pNS+XF zaotc7D(w39+UC|3ZtFzmpM;Y9Wi=wQf}G)OS6T=hJ(Jq@sZzd$hfz;rpQtCw( z$KPG|$`(XY>9EC3Y{?_Vx#v`Y___}6}@(v={U3>s~43{{J`joD(%)uh>`{J4~P0Le@Y z>Bnnrdyihyw^k|a>Mt)WV$FYF#!g)Xjkp%5Xe3(=H>srA=I%_AL#0NRD0`~ITymJp zUBX(*J#<~}By^9&mUpkUOuEBT_o@g)#BC%uWkTsm+=CMWQyTgYHHZ&!=llEWCld8b zNaiwjWt$E~fIPJiTpSvBw$%?^ycHx_V<5=T#0Db^C_~!bL`q3$kVE?s#)X)pOdJ0B z9ea&Tkv3`oTh(6B!=SrLnL73v38~cj0Alhp80?M@=28 z%9M!V(`fMxAu*|8Aj1_7D;;?lmXp@JcQ`0O^3a*M0=;9s2k|lWjXRmjHR_mKE0kh{ z^`*BHjTn0z4Sa%_ISyOU|9!Ura%BVTN!LC&=v3GTOJG*@D&@=NdIWN=<#bCIYpum3 zhfrdvb}`3cz(!qbd*OxE2%og!;8ee@XTZD4H!AyE@=dZ{_ydfP?zca`@CttDv^HAw zxdxl_T4!ErFv3^46-atSb5an+*%XdX_V`O6Za#$Yn5_|0;&W%X8$e*D3YZq~9D zPTywz+9sBe#q8puUmspNeRX}!-?g8st-a!Pr*9iQarx@jnKS*($;r1^kKMDidhsIQ zgToVRqinBt>149j3t7jt72HM$?Y@Ao$HEK$jdl42`(FEP_B-wOfeiYW&R^2tAN8L1 zi+;y{lmD&$Pxzk?7K3ZS*90F3emMBk%y(t}bLQ`|)oeXG&b~JLZ1(>IVeUlkAop?r zerSL=8s0dAjJ2X6;zYLAG3*%CWu24W@AV04g|~Uy=yMjtW`Z${LMlP+o24+pOMEI4 zQoo>6g-l?07K1u~vBQCV&cR7OHQc2{VHbeuKc8KCL}s|idQ=|-Fx;amY!T{iNLPI| zUC%GWtYMC9Zer~r*L@|fiE4gnH&U!Ntd3ZeD@3SD@bY;a7e)F%}bpB756sU(#U5l>Z9;}275x^X@|$Y3|^tbv}Szu>)e;T)`mtcTUj zDh(SP^Gtn?g3Hc>vmo*6jvEUPE4ZR`7Sa-GA0SwVPgHvhgQGt%x8_Yp&`^Z$NTrRT zU@E=Fv^nj&u{LD50O2UHh^NHS8+5t0j8BO+>k%9W3bTonC_ZQQV! z+82>Tt3he8>eDW<(cyef+vzc&Px(Qh+wK8T?C!82~+a4%WZ`+q|RnDW9q`s_L+|=Mpok3T`Ki_?x-i|2&K_9 zp+`<*k!Lt$7QiNG3w+mnOH~JWuQEckL+v3f0)H5B-QyYqyMkYoCV@JS`GN1J+>o$f zqC)!3-;{e#Bwu7Y$XykSSoIA(Erwm|MjbKM*Xcm^fb=c3Pq@m>6lg&w*RGFUR=^e@ z{!R@No|f8U>We7EtSlh1FzjP0^a8VHX{QFrbmX94>n*$8dT+>BYv9k@JU<(#dwHkj z`o>C(h;N$n2A8Nlr0%@2_UF?a9r~bU<3x2BVP+@I1-W5=cU}Q#d9!X1Di~n}za}$k zW5z7~Vy>s_nPf^Y!Nxh8sxs3B6-H6x(L^CdG&Q9d*Gd@l2S7frt^FZwCiV^;55YfR6n3l$rHSHuK)G@qfh>c#1xOb$A zYjy0v(z%W|!GyS;%rygBra7TWLOHAwTA*!4cM%8kzehA)QfPeS9l?$v*#~dUf?4_; zUsdIq;&76I*$bH`Ec?m&L{MuzuBjTVw{`WF@YK|4>05ndT9;;QcAAN{!w5iGWL=9%{NfLx9tNuy2Mvv@jDi9hm2+ks83xrS3;cM5A!;tZPjebW=IJMK$WRT39T=I>hM-?^IffB_UV67G>s~% z+ve0Z8#`-LN@ZnDThr>%z8>xBZQEosPAN~Kdy<)2JeTE4s>%bViK9B$hh!iPGF2gw zhJ%RZHY<>->M8@S8`|Ze0aVz$Oim8z_|BrKng=F&wZ1=#vmJ`NWJsX(~R+##@E3 ziPiecVRO$BBhCR@0|Pk4lL40)wh&hp%dXT&Dn$^+iwI$Oh2>hdP{HR0u%7}A$Fk11 zfE95ZOxiM)pn?*bat)Fo4|sN^Y!U2(s-i+do`~kTT*h}cK`)M)3dEgk6)Vz0p^mvK zHgzv5j<<-t6N;kp?+E~wh`77-`V}yqqhz_MU4zKrRXQ!@~ z$csi|rHC;gDmh$z=_7Exi|EGawY*h9RR&y-toUTVXW=JH9!+ESYo9bl!QCNiqd#F) zyHvB3&qiJj>1{w|d_uT`+>#YyI|4yu4GaikrtdSHtz#Z?m_Tx$^_e$3pYzsKEktBh zvb3E~GZp9!G>s@44Qh{R6`iHxX^_l)nPKEBNEA~iei5`&EU$8s-7tkSZ1f>-y^v{Q zW2nYB7&6cmvRF(3OpM@GX-F9WRb(C^o$`^!U2agy#B`zNqcn{&hNYH_Ec!PlnJI-Q zfpq8l*O5I%=$C9J(fp&WZ%dS?Of=8*fD4u^BTP(s@=J42HO!0K^aUI|Vj0lC!A_ER zn-`ee#S$GruF}z3mB25zT6W&6mkG#;^pIwoaYjtUOapO9jVCkNU;uN0P*)AD+OLl+kTaN&=F-5kF`)Rg zn%RIXMT}kdd=jZ{UQCLRNPnh@)W<6 zSjHpd&KFJd^rff&(EOY~N#=9_dU1e1e;Gq-*=|=G$zqG0jU+*#QYE&|Mu%8o5gnx| z>PO9Hqk2N{@Wc&}IGG~Ll`KAXe7T@O!i3EVT!rMY`;ES(a|Tee}}|502ng6qGA@ppG(8J7%F#dMO*VdRbwFu}CpQ@v3G- zP9uCk7KMv4%_5<;H?1ogyQm~t&Yviui%m?R zkg{223?PI?=2waUbUK7JKs--=tc{EnZZYmC5*#O6w8646UIyB~yrU;EMW<$(c}lMJ zrwXvLsGFBBU=L5I0-|}bacQbEg{Y=BqDl@!ecmyB`c+ws99V@sMVsgy<--3edIPV> zLIXW6gMR~2E+7_d>s`zn>4~T&C9xKXOb`fe36U>GMcUW{Ru>(?rUp=bMw%tNN?Oe? zEmREXH3V2A$=g%C#ooo4j1ducIf}x72nyLiVmd6lwB*T(b;P-VYJv`Ds;O*J``<*1 z8DZ834g4HdS~OBUCiev%;UaQZg!&lcYb82SB*+B?-_Z6GAP8s4uzIrpt1?vBWErMY zWeilLMxkhWMTlN>%db;eNy)X5ak-8)h`O3*0wO_hilp7AnrSHLO6|!^E&K;)8Hx^S zr1a@sGjNPJV-H}RBXm~vpyIgF^4t_H5Jk}|6b7Lq?_RR8S5^b!?&jGV3v86sheCqP z$(@j4q`|G&snpQY=?7!X@K6ptjAc3}KBiu$$!|lk)976eA=E3)C65s#8R#2C34rEc z>Jd_q`f57J_FYGA1G_hRjgF*mG|9M%u?E{b3m1@pd&_Udg71gAI= zyI0K0rYEF85TQZ~2)mH+s#t-rgHSPC913KT_wY5LKgf$tLBm_-c=GUE$J4kR6{(>H zQ5}#@e-f&3dYP{%Slc)Uu#uQv;xg^ioyhD;Y)lEaK*d;OTgOJTe1cNHcJg1h>;PugX?}4@eaKa%;x2=%p8%|ocNWJRB3h?g0TZi1*RgKQZp~nt zluFEtc8X+TIl}_va1tUHUOIE=4HBVf$HI}iu`fi_uL|u#r_cSGsF2wJ*f^jX=sRgp z<-4Lj6ca#JDb2tk=;IJYsezX%DhuvW0oFFXO((Gr74x0~m(Un2P@!9S*4UM*k@}@w zkuNw%X_azCl(6(_+{V;EQ&>Gh6vi_9gfX$>4$q+hhU(WslUI-y1Z&L;ouNIYUuZttOGGS473~mi#S7?r=uPT^ zMFDlw@vZ!z)OEHK;#>7lMr>`w_u)AbX-a`hWP%9sn{ASZlqdJmwD5;v2@kl2JwEYc zIDJUqHt8=c(rV?bU%)glj}(d zT@6J{YLqo|RhbPYgI>0`O@C1NfY_%fXQ@mW5SWNBFf;^qsH3{)Ax%c+Z;+{AKdGMP z@j}%Y1vVh77{a`}ysU{TwI9|MkRj}l;2zqH zF^=OHV@wDkq$V+G2u_+npxHE-H1&o+(=^M5EDdRHZo0SI%L6n89!go-r`u9WS=vkY z7Phy`)3UvkW_ifuet!QW2k3L3Y9!6fdHtXN%kTa7{mDc{LWiQG{qi-FVnE6N;!A|_ zL2j;-s>XrgTE!3On z5gXh(ounq>vJN#NBy?Rm2b+aYE9JUEc4W{P1ja}B0nOm6%w*o# z$yWA-)F0Ag&?31Sq+h(D2rWDb`^B#(AV@R#^*$MxS7+7z>M`}J>J#`P7t*L-Vs}j# zzVr2x!E=vF`-WPv5Q@3Se+7MiET$Z7i6Tkbk3htFBz9pg)&yk6@PVww+^m6_#h^7< zXlVPc7}T^qNNk{3Va4LC4RHL&3@FXy^X zeKV;i<|wgda}yj5{&n=BT=UXNyo;+tY=^JEXsGsUumLkLM%b+ zFBu-C0o+sUrI;QiSzIhz_~1Ch$CH>IV2CB6oQCNug#=HV>+Wu+aO)AN;f5lUZ+HjpM z*|MhLjy_?N44a}<7x2SaXq<^sg7|6y2UhBMH9l61hg`9DVVsJW#v`%OCxS%jH*TJ=v-t^!GS$?dqc3eciwA^) zYVq>SObC!`0@LV8F;)^mW+W?S82e*kEDWA7N+hI?0Ec!tL1kSU$S8@~1tJzjri*iz zd|57QWum4h&_?7WM=`Nd0XH2cr7S_LyKa??1B1xGLW_iMIm8e8%#K|m9Dzh9bS-4Z z!!qR9i$wiojOlB>acT6w1j#gLn2w8n#oUEGCxycrD!CWI+DK2@=$D+2tBh#2z!=A>`EgVY|unOwhVCg;bde@4}re` z_Yx2kInH;$Pm5DX`@F?#0lDChv+z{yIG(r(wAj-XEQKbORafY5lgJ=Q!I03HAzSec zvyI#EtGzgWsK`zs2Frtv;&>1zFPr2l0I>)b%Yvu9Jj6#soS@r~Ta8^RZIDM0L`v;W zp_xL8A?5f_G#zU;BtQUv#(*NKKFRmns{2I>$&*-POG&jx6Z&f5CgNJI?iag57l3It zAcUPG`PY-H^0L^*H^Relj>-nM(*b_TgB9)2@CMM;vP1-Mar`a3LF?t%9yiMoR&4_h zGvDmspoEgk_60~kZqH$poj8=F4zlB1{?Wx`^ZGeButs-9oBq+sb^!ENbZ(%mAxlxdllzR*!IsFkgP;j6}&P<bZ*qKi?s4G zaZ7~a70U&X#zm92(B;bYoLMA=BF44dm@5Ym#U@g$Q!1^K+hrM*mNZLeD@#lx)FWe* zGFHKI%D_(%5)~_w%ON)+I#945%N4|B{rrYg1gX)7AvVpHlQZcHBww=cQ`VeO09Bc& zxT-@(<-l5y4ysh0xkS$yL{Y@p92Bl~TO|CC={oD&0h`sie3x zq|@jK#9#78kZXjy=${;X2|zZD=V)!Q$+CWj|B*x~0bFFFOdK)CQ)p3w8I4?#h%RD3 z3y@l9IlN&U=~2Ewfe?}m%CzDnG0e4^3mJ?ja4Vrh$FoHWmz&w_f&nxH#V)Y{M#NGP zjHE^S6JiBJz%-x9cB85AP>+g;RVXRDkwBAX3Zyd|*!$ovVT)KBP%fe4@X?Co{S~BKQxx*=IJ5`@=?h;EN6pMWdNuER}|a`NmK+q z!2F5+1hp|H5@3upB+7Tk&{IVslwWNpF~=nPnA9U=Oz^i>iVDSLEEt(vj5dhIF4HdI zc4Luj33ic1st!j8T%?vx1{4P;1Tth7kcRkzDgy%<2~(X$S;d1{GA04FCi*y;DHXlB z4h@1@AeqX<`XCn-jvoq9oL*(bgd^Nii>HPaCG$~Qi87t#b$wK+{RNVevkwL)+I z`08owMK7kzt2Y0yjlb-CiyElcjJ_8wMPLZ~uRUd*ft^{_mquT`$GF`w?{Xg9{Pu== z=ER&485N(ftjE>L_9=4|k;LcVYyU)k?=kXw#{vf>78O$ArxJ=#ColYXLM?3z@`A6u zQLAcF2q~2pluSIPpkd2P4)dL+2!ua+)7q8A-pYLwyIQ5U?r#xY>fUiZ4*l&(FxIGy z5OPY%P7E>uFL!1pmeRpFM6mq)d}od|k(==}8o4uo~% zz457vix!xhAQsojR7?HARJE}dizo7P$yC8x%U!mX1;v#jB|1kl@Kv7C4E&qG{|=J# zUj+Uk@MFZpFxgPwQ$J<~j~nDVBci%Eu_2rmBv$;{Z1CTBa{0FN<{zbZ(K9F%I{lfB zvIG?j5-)5*D0Hrmzh0lZAm`W}HVr%T`Ubgq#A?|HnclgVeB<+wWF;3RLPC+e`KC9& z(Dz8}8QS?FwcjPSMQRH9tP~0_*_Diy)PvsXd}MQxs6{7{eGMR{w1Zp#To(vFBa4NB z6y1c37c1{Abox!rE*3i61tukUYNS>YrjV0Q^BnM zMw6;9C(7~sgW0o3mll`{+03P+|3%M~ohyJHWp`}a38Rt#4B=v$dkcD;KckX9y0vWY zHHAIv{k+Y0(bD80X@Z=~5&pT7K*oHe3LD)o(t||8$W8)gz^kUu8R7h}*@0aTiDT+> zE3Y}<@tQWwb~tatttAA7UM3`j?xUM+C0PAqVl2I z`1QHZS&nX$3~okNAQ9b|t;Ms;ak)Xg$oYaKA-JW)o~MeK{ev3%~@n%0G_b z?)oQ#6d{`cF~#f$gJ-LJhli7-E`>p24xH7Vfq0jNAe^& zNUjt~kvPc*X&5eWnj^JamS$XcG3QoX!s`=>R_>k|uqLe0_c*>_!Nvt*WwlVIBS=t) z5mkkB5KHtbiOhOQ9)J!utB?%cRt#o{Ly1_~rK3SnE=%-uq*@@gB9WMJ$%cwmQ#6Y< z@ehy`NEqeq=T=we82XLa>N2;}eJH%yWgIOay)^6e9~MoMTfq9jrZ9=gZpi4?4O5~P zj8vsmE|n_9vXLRRKw2Um0W#l7DuwG|8I?{b7r`ZtNcmJI6G!D34c%oT6_^PZDMyAx zFf=$GI2%bNkbw>ec!{=zDf8-<vV;r7XA=DMdg?&zL%&t{D$GK ztv{D@pBt@QIN5n7bFOno=c~Cptk&5%>-L!oo#))S_4N*L63?FM&KZxdzu>wrCVJ;m zXFGRaJk{-Q>Qv0u?7NTneLn*%~MmP#J=Z5ZQBKv|<#_ywt`?eRPI#SgRqS_nb|3(x*Yc{tbA|vIVO5r!8 zold@C?ga(RF+5M@>xshHRaYJC?Zul_lsW;Z0Z6Q9D3k`~2XP$B0CwHp?}~)14L)Kl z!ft>w?e%aLk-Ets5rZ=jAAAwna_2wiAw*(iz%hZLL3|)wW z06&OCt6_J%PLz?{Ubh&dSh90SOiKE`ywMOe0%@hR(ElfT1KTmD@g2814~?bE_sp<` z00G|*%V)9V>JxcJ#AC!{e%kVIMwGxK-}W(N?S2%5^=@E+{Bs6O3bMk;v$}Xot=f>; zAd%Ig=KFP9nj-ixbEM$$VBxP^ce&Lnm)+idFC9O2->uISA!z3vGqcrMJ25x6*4d)I z!1+XRd;3$-)w?q;C11*Z|UhS)=?yoKE_a9*mPwsGWq|t-NU{%=_2X*=f3=n zt+QvhU`0^tX%sSn3mCaBlC%DIv0R0K z#7lxMhfO3@ZQ90gJ#5q+r zl&wMDYgNWwZC+Qe?ODx(1x+2eiJ7^HvTdePp=51rjBpeZLuHT<(Vb9oelC~Hg2{LF zZX?)sORSf^yLHX_@mt>Zz}1IlO03{&ZEotuQuCV#AqZ+6N%lKbi1*T z4uyYw!Jge+%7g!{Yto92_c;8p5ol50=9<8J0>8-9=<=B|XW@0yTqz|k%|}1e1;sTw zG7K_blXVDoGEdYSQpm>UndCe~9j=D`@#kntJFt<15&jk6DdrR7M$rrfh|;`6@R% zW!t3}yi2eUgfH`p<3@BU5+p3NBD+dY3w@N4K;!YX_p&M^%|lNXTX|wv4C~-mLec7s zI@Wxw8hih$k-l;*c?@bU;Soe{80Dp~(T-awDJn?}-}h?>;FJM`#8u1CD z$lx2pkn4o)!7_R~5k(vs&F2Lj=Tz5uVjV%+Ehj#Ih`Y@^f?yWArH8F9b-Yk4tz}wA zwyDuv>XJ>pURhiehqY;rzK9%HID&d(##R$_h!+QC_L8fVvCgZNMC-N zyxH%AY)^LSH1lgpz}%Trc-W+0CEum%iCKcKp&vJ>PXq zy39}YYcQ|TyRe28i*>@FNe5>|<}%66x$fae+^J{32?I3LUu2xf0TwGEW8w5}5l}mn z{=*p=`UL#3R{e*lu=DBhq7e(bX_D0AvxC)6a4O467M2c=j3(|5PGl1j4kLmBL1{UB zHOVwE584NC1MBtYvEEmqm)K+wiF^PMjOwBovq~j9Z&vi&9-#Sv9wCaNmYvDNFWYH=}`M%Y8Yzv zf>}HjjpFF@#@ef&`LufKN3GH$_Zg3k{%G|5%u`RCG1Rw5^~Kxt+PIl(yq#zD$eaZY zPr&f3reNU>sZ}sofKxQ7xedOFF_)px#;c=D96MV)GuwLLf!6g(ead)yAu~FXDauCm zJd}U*wbldow~jv0YB6Or|GtiU+>4E?8rX#T;SUbh_E;n@dBZ*(w=kR^dim-6u)n~~ zYU8SzNA9FAhy3&Ma4Hhf?|bY z7U@Ed0=NPqj27YfD3ZJux*#vYqBZD?Tu+lJO`h0HUe!Rg?>l--}CFX))Mf@{Ks@ zO2y4aI;~9pMdPlmtve#Il3~uY7C{|I#454IK%`Uo5goH!1}qfX!e=%X2|R&PvoCS5 zw?0_h#?S&z6E_A}6tpH2Yr!2)2dvjdT6g>y7?2s}N`-oGlE*wX98k}v>4C*N1!?KJ zl8~ELb{6_F47x$4gZHi4e95vLC7r$*nG`EAhd4aWSTKs~Tdd&MBj;4n-zjFUUegRvE_lIA=j zl?XZ1b*?3;Wlr+#1@B%y$}#H8Si8?l3~kI-GbeA|yLj0~UxIy>oXq*vcDoj|i0u2~ zb+`35Wa~a6N}Tsjcf3M_IyfoLq}ww$8V>~zq21W|=w%04mE{_R(H!doX=kYxH1~o^ z9SV>B+UOT6a?l3^=6Ol*(aYsY-0O$9jyZmj=L^5~4|-gl0&TBMg~w&q@R7hNWSD!{ zD|AB01anqt}u28|XZ<%Gga3Jf3CT6-j$Q5R)S~ijH$R=)`Phr*mTpJUBZ7Fg80^qZ9+e zH|*G>*9O^aW6;R{zEm5soy6#^A75-tA3ge&%`29lUR+!pUc0q?#r1b7^;O*WqH|j5 zh;vhdI3!MYAkXxezL$JHmO^$X6xB-0f0BeEfSqG-v2)o$qcO<7JrRkrB^pV5%#|n)`F&0g$Pp4f~7|+d&jg_aSsEGsad3vo4ayKEw*{L+L-wlOUGr<{~Ko!zet3$HJHmuWc!wW1m{` z^V0m)p(WJ@LM~4#GfG~wsw1hXTavq7~nELbc zJ1dYQWH-(dD(50|$VBW*;xI4LUBxUSL^_w3>{{5;pmwWzuvMw7v`6RLE0xMdMM?tG ziKdamG+a(W`9K@S{+TM5=Q61Z7C;n3NE)P1#3p2w`!zWf8pzKMc{IA0Mq+2X?1NBt zOrv9%b3!QfIQfTTtTT)`s@QS*Bb7>P^hkSUrLE4jE9J)xTud8>68WPdVN;X1JLDgP#np-X!bFh>1ZGXs zR91!rB4{!p6qoUYm+m2mY5^GmgO|wYT$w{8?Xl5^X*BHxkBg97E=DyC(IyAG2ZVpX zU_Dp7FES5ECZ(yQA~y9tI1E?mdYz$7QBe7HNlL`($S>bGR$I$#5B&{-4p3SXc}36N ze2z;GxfD_qAqO^Tm|RW554g&3+D71E@rL9JMoU~!9^ww4lZHG6-+AM5NrDP6xO5xM zq4Y!7onJVBJC+~j4&y2YU97)Ypz%&<553GcU&6=SkOF;~2_WMqC^#G@CU`k9v+As3 z!xrl zy1hVi&}9rK_fk>p>B~49j9;ek2Wma4fW#h|Zjr1NF^N&?Jtj6cG%#B#5MYd47%xSo zo*4&={VYmZFbc(^ccE)6ElF&s$VbvgW)fLKi&4>NX?y{rf&nn7Xe>lg738u6P=?>D z!17@WmVD#khbc!bpV=Y_QW??|45J3yj}_kX7LCJIBV;am*=q$X`AAqt0K02L((o;b&!jdp-PI#*?(E@i#<)MRwRP*QTU&|k z?Z4gL1_ph#yRzIn{4E?AGlhuTTj{PO%&qQ9AdS9y)HrFp2U&89D(&a+LH|nN*8@*e zTljYZpAEbm_+sD>0)G9g{)YNPN#x@Am&_5f}g~A|FO^t@vXilnWd%#91#5+gmFCXRdae<1FmcXo$o{&kK zI09%V#C1h&htzo1W2zV-x6XuS?#jeB8wKKp9k(H2DeC2fGaZek+{^8FWomZo8tMU9 z(U^5vWik@Uj_oriD}$N2xyI&AQ6e~*j0HQ3t)rYhUk0Ae9xqPcTOD*0$!Q>)W20-r z#mZnZ1AU!@JCX?m=lY*2TciP@cyVdpL`QOT ziRgDCNF+fvWO`NXeyZ#dYJZ&yO_Zv02a3hrwOVR&MiM*emsr>tE7iNh%i0}}HJTrv zN<;{|R9Fyah;%VByK3mi>DJ}RnaNx@`hnfYr;M?Q2~VP3Ln@n08cStL)e?w0>=r3q z6ZSS|?Lz$TSKfQ>&c#G#^nbqcB2fFU0Jz^)-Mawu$8{4^+qBHMP6q+g z_jgr7gf`{W*%!~Bzu}EX<9%)pFHTs7qCVrsc9~i;+F!?1zrfe6!>kV#Lopj z9~cQGRT0#njB-^Q|3eP!kp-YdiR=)XBGCjqfGov9YnBD&=#Dq~R$m3NLYp z`*_Pg`K%_&(SMGnBYR5=eo#dPS;rHM5?9x(ke9wF#7N3~dUM_hH zbA$f?AAbFpXHkJ0UwZ;hxJXS@JXS<72@&FzH1pV~dQDuVV(8J-ga?(U6tFR&6Fn%! zPruZUtONux9!Xb{m9p64C2|;#fvKiKZ=d3`3T4LtW}ln33$Si+B#`2Sz%{kv-&Gy`@IN|a7N}=F{^|&o6)C{D1wRpd>Ddu#5*o0fDx+5( zya!cArl7W$SMg=M06*GC^yQJjX}m-4!mjlIQsOTMK8lnWpxg_gCAD5(Mo<%5_(xL! zzZs_xWSX_pXrh$%r9ikA3?~eWkUAtS8Q@u!7oHSC*_8RYGe`Z;6RJb3i{67?YZ7}Q z#U1GyR7B}k`5;|MIAPO&Z%QPgzgak3vrVE|0m`b4t2m!AP2`}nMp3qlsUlXuvV%5; z@+aDzsA_y5u8eP^-dd;K?wr^EpFK#(H)&_0b8&>RvV2C~%`^97%Gf?Fs^g5_o{|I9 z8;x@4_-vLS2J%+*l^tXM@lZT5W)y*KiG(I@BJ`GkW)e({phpHF!4R;TKXMd^G>t$dgy&IR5)V1NYjh&KT& z1oB>>xj2sruU9bgIcvki;3%A)%qk*P{go}GK=#SXK!~>_$}*4H02xPiu`=|#|4GdK zY?%|=pHDF4I}=O9I6hz+;DZp6hMXwE26%pQq!?d#7wajdjI=3+03MMDcMOG6i-f7^ z`#m|+Bc7v!5e@&9=gM{U^K-xo!j7mQyu`1mwHP!QAMuIXFG#Z`Yfhez&zL!?Hg0P| zM5HUE1EuGN3p;pb;!4vkW1j1$(mkTDOWQ(PymLi0lB-cG2+N09buP(vH6p@*63p8Y zNaQz1nuYO3?&i_~0^5g02)L}OUY`1yYoG&KE{e|p=ay(s(miSy8oLb~1Lb!}3PzsA z=7CF4=6(tT0HQdxd_ZsKC!G@1ZqYwLy2TojAc-hJNv5der;A67YJrl;&bdr_s(3@M z4Dd2Alw_r<3HEhL3~^2J%E+mfJZSJ;;rWtUMSLE{HVi2wH>IK|+uS;sAYn@MvP&(< zWU&;=TA&5ARnR4pX$p`OX*UQ@Sb+r50{j6*{2z$(Y0;G=9W0m?+Ynk&mOAMY#cv|& zVg4|kI5jd!+`=nFO-n-Wr8kHOBxOBf&8g^o!@K+EBW1DbOtKXHAAAdFMHcW4a&^HJ zFj$3z9mRs)bgG*KjFv(@iO*n|CrttAjPNM+49N}AWFj6Ky<31Q@}O7Q!2@rZ*=5CZ zPQ5-pZm1h?Br6$cge-(h+_Gb1#fiyM0`<+Z3VD_3;JE{d0ONbqtlSn0Mx~v>s0vVj zm0Ft)<8={R7u`S@DVib)D&z(Wam3jqq|c=42*gk57(YS^39f`Sh-m{(0*xeoK)y&| zfj-J4#hxR<%LW&S>_9P)87ZzHcCQps2ozbv@TJYZ2@GePm5}drq13^%e(J{9RB3^} zE&l)(!_F(Qm&60fW}cZA$?e6aNA(qLSd+s!PmE>~>7YqG_ovO=p1Y8>!|mk$F|%jk z*Cd&`Y{tl1VW#BVf(Gc~BB>(ha*qr#6+DXA0v$Mqg`MB!O7KcEaZaLau_NNG;|y2K zdo(LUV6#K|PVC@Di%CH@+&n`-0x_j`-bkU1eX?!rs; z`a-u}KiKU~tF6fL3-_MCK?=d$d-~c~DpUAhcYktkG)@VdtKWS0_18alw;G&5G_BTq z-Gg=2NF=t-oPY7yvGaIKmt#iZ)gM21_vu4UA(MzK9XWE(-OmZH5r*T(O_}168B;_^ zsRpD@sEoXX07JrF-vXi3^^wI9A;eJBGW`;Itns6dw6_ROAt~!{OXgmqP6YxzsHtLc zvF(-t2OrFoJB5~>ui`|AmDStTEYQ<0M+-BhQl28QaW59mjm5$#67dPRanjjv+pD9! zMRMu7Ah1cUD|iS(T;w@|)UQ8n+-TfRpYI7Q614$S(*Au76G^cX~ZeekX^>>ZreoL`LgfqNP8$!PG>Qs23WoO@eevW@0IqY8NlX=}0_78t*R~=-S$J zwHbs@4HiP(d^R^7!hh54XKThADU&z)hM}%e2A?Qjv^DzH=r0Z9&(t-Pdic7rWvGT> z$ouG<#@`(_@cmZl3yb;pAB_`63E$L*vHg7`@OOb%xf8<$+rJdHiW5SZsqO`FP%ze) zJW;Y;Uf`}0BL{EuxstDmUm9>!DZ&#e9WRqa0!8E`1b)lrgB&EcgL8?cLi!zx1`aXN z3-I*ulFV=f4f!aB25}w`cf?0KPo);-TT>XDKlLO85`Bq;5@BkZAL?re!eUh{l^hOp zhfQ;D-*zcYreWAFWK&PQ1`eH2LkO$b#7X?kgvx90S3O=TC-RiPmKXs^7yeltaih zieYD+^FrgVz7{kd`giYsCzRCgyl?gSd$}Z~sc0H6iGr7KdU2SLauA_RCCBk2`vso} z>Pt8$%#Ui8L}`la3)kKnzCEO8&KJ7M3jrHAcbp`|G!z7L1!_&Yi4a6CVK@&yC>spx zgCFDqrui|J1Sj5qKU+=fV{ADELBw|`emRJ)Vcg?H4uV-_uFyK#NuK6mT!EHVZy0xQ zuB>A}j`K!h>x1ZJQPy&YwT$9HwEP0j(FLzhLXJ#MAxU;^CxU#3R{55ynrfdrckYH8 zZrI%X>fBZ*m7Tb1ZMaykt8=Z!^qHll1MA&xJ{>fBGtEJN>7_gW@c8EMzPq(?eE#ZU zE}fq5EbqOw*&GDTG$Ppg%F@!A>FK;n+eD%IMdO|L<0O7vp#kimT6&8 z1#vo2D@Xs2^$^rwI2tbrC(a~$}VE6B@5zU;1IruBY|Uq6GTy*qo)x5n|d`8eGkdS zp217{04F0oqk}>R(-=BDj0f7vIcV|?WwP&4C<*!jJ)nPyi6VxomiKnvFMWnIAe{rD zs>zzBQe9(F?((~Eu zgq_SpOSS4vyL;7H_ST%`AXw{01vMCvoW-pXLG;{P8E&i8u9WKANK>6N4PzTco9o9KNW zo~J+-2IbYL@<6f#9Y8Pjr+RQ-OD0-vu)VT*(l~ago;kjPr9aC46SY`MEox*{`KnO>ZkQM+aqrz@58!P3pkH{O50x+{jk$F+)fc`TGmI^%X8 zw_eFLdm$=lW;pvRZUh?hF(z;X>#p-8pUv3le5u@RS8|z|nME#|$y8=~%lH5G{okdQ z4j~*aNj=qS2?Lm{XE7rBa#}QSfO;Cg9{4ToC;NKfTY(=0Ud1GpR%g`n>IckTKQ+LD z1>x}0q({a^EZD+mWDerEBHjaLBQK_(c(yb}z`ow7REcUKD+T7O*E$P4FTM(SiFrwQ ztPl^$$GmhIo9{b>L3k)Y0X-Bwlw|+<)Iy^gn#=@lKpYX#9V8vH$aE8+i&Lx|$mK#4 zfB%jFUhA<8j%;P+$@(MQU4q_;7g^{)l#r3&vI7C@N4fRpJGptg7Fy`I3wcye303N# z_6{k~iNjA;B+)HG^mbla7xrnQ&|=xFADG-rx<$-^JK}@%&d!U>Pl~{S%B-(f%>#D* zlS_)pljC4z#M>(AeWJ6BV$ju5Ya$X zC!~jJp%{Ti+zG+Y#MD zl#`=2DFu0vh3X(mh&sS=7}NarkK1r^?ow!4^u&4|#36Qo7&+cplrf5uzCq*$ zC=*_?V5oJa@<8{g?E`~44MpV1eJ8a`x2~dX-O=fCpKg6 znBOiSSh=#CNpB&TN)$E{D=iJmiF#C`Ac@OuP@vQCV4ea@BB%K=aA}?Gaadt$~I|xIaGK-ryafVi;D+8 z8~yM1{ilX=theu7>b;|f)w@O?{(WG`D4%VIvee{GM8m)me>#`j$YwXlI`Y=9eSGwZ zo335^;P}RybH6Zp@UMS0MB>rLjo`iEEXfo2O7aCEktd4B#>bBpFXbI6VtW4&c_SFO zjaJvl_=i>sOY?lvyhF@AXkw3|VVVMqLM0yh+s?OSNg~@3PH5l%syKsUeyq zA!$Nje_dV6f+5cl#S4@Vpf{b9M4ZOKY_sF}{2aFmqAJNU3#B$$AFS(01c28xhp+hbkU{}8G+Vo(4*nLro?O5Ty1DjbIktCVPb?h_<%*Xrl0!jI zgIkl1H&d#>nx&TeZZCvya|_O_AriqZ`l#%zoWp!u7>=-H>m>q(n}r ziS$3zoAgFxJp=?Sx`V7GqoPw>Z7YlASQx4pc*Tg!i4B=mgw1|wV=EN?qhGr95%to2 zd*<+y@u(DWjDIVRoMfeT7t%PJZgU+w6A$ldgmUkLSV(Cld~TH08~L#y*#@ z_GZTA6FGTMj${W#b#^Rm|NK}k7Y7-;m^b5bit|0udiv|o1|i;oY!+gemeg4qs(5hMu^gNiS(fS%M_heh!#~Hf7`{p z-XU#ACg6^Tz>mL$2+0r-e%q|F3^{}#NiCb@fufL3^<^t<;GhnOzs+C3eJP(y_xmp~ zY-owBvoHX+Pt5W^8(#Z3TvQ+zghdj?iW#$56nqC#2#b=@CHd?zk_DJ!5O%}(S`j`E zM~sp0PONG%BQTJJ1LP8=jMR9<084zU$N(60*&t_PmrVUEg{zb=A_k01bIXA%S5gEw zT8=J)9WlrA&&S47>6DxI}h53kJK`Yy^UpN5v(nLn@6{9NLTO=QT_&=kim7lUB zz9sNJEiXf{=R44Cq&Hu1Z0e5JvCPt6Rl8HO7#*45x|fAF7|jLp-Er{xvS6dxCyS)t z04j{WB~rFSmdLye;=(`=UfyQvGgiVe;4EHV+%ioG%~S1@PgH4Q;@qj&cDIYTR$5!z zhRsR4PcE-S3hNt3#SF2$J-56#_i&6LPK1rqPXW;I$gOgamQsw|Rs|r>86z=Mpz3y} zFq1H5V%=(+GMI=Zw;t2S@vq%J^JICZu)cnDh6@>3Hs;uxIC$_>y}sS+Ip(8Ze(bT) zOPqAa2|34@Y2W^gSg^lDBqxFwAss#9H~3VlmdeLUsDDZL%ZBC zC%~zqj(Z~21B@V(n8Tspc4QnApgL*~l{7KN2Yve}F}oRN3WL#H!p{E_ED0Pckv0 zj~+H-t>uzCS4BWlYo^hv7mCX>996F7a*O)7oZ4VzYMPhr*1k*Q=9785DL zg^I3ox8Q_;lV(`OTLqn^bj&KGDwf#=M#HR>m(0|+$YV~F<{GqwX#SDDRU}e4e3*cE z|A;4{I;q@@e-Kkq%X}Cdj61M@b(n$Q4E(>?=H@j!6E-I9RhNm-3qp)VkF81$Sf05- zIKix%x5U6Jp>C*i4bh^Z4Kf)ny{N6VBk&CbjX@l_Fi_EFWisL!sfuzdN+eot1HOtW znAs^RA(zlZg*dmvf40lW>a@J1iOAf@oEc5!(ORj*{El2pgS9VBwryW+! z9v!VC&nL5#08FSJfGHA;AXx-ZU$7aVzd*||;fPyA9>vr7!YeO!r1~kOgaLt&Ga&&Q zfdin}p%Ni=Xpb3#g2*ayFZE1BLuD+bGj84@Uq}oBty9&dPBQrF_lLVwp;!4$Np$Mn{_;mBb-t3 zvB~u~{7qNT2`1-yKuRDeQkw*|$F#E4fHo5Gbg>LXTeh-$t~8O&eJ3Kxf0V@#sAr;7 zoJ1J8Qs%GxyNWoU4?!lEmUaVKo_gY4! zx_09Hv*(T+)W-6k=pSifPrJmLt_3!DE6RROQls!FcrbD(k^(2-;$BypUs#pf% zisA8wJPl^pL60bh0r5>uWSoV*I`Q?!hEo|m_~dit(b=_ws`9)*AgD~F>K5kejnaCR z%D#yhSWzk0{o|FD`rO=VDOcjRj#6^d4|g4ksB1?L{@m(U_Nw&m%S0nlg~IyW*yXrX z5{bOZl~Tp*lkN5Pq$`im1fgGw*Th3p^ z1hEq~B*7gbj%i*e&t>ODOd}k`_W9#1aV-n|^KW|g&+i;v_*&uDAD$n+HLGqJJ@I$> zl3M_io9ksWUfm@dLTGy`n|8lFsIb;5o|ko_v5Z%F$hg?+T^RkZwmLkzaOa0#ezY<< zdP1!h(khGphIK@75;w03*)%E4h!m z&Ic|qYFgXEaD~Jip~ynUD1rFMXh3_r-2y z$tc3EQdIbjWjY(x8NAc2Sa;?`T@qa*6w!u`C5o;~J?Kn{FEbqhs3MOHUhOQF%N9l= zlejGc5DJo%cQ{u#d-8C7QHWLoY-3m!HjIm@C-sdBX6niA5-osSMYVh#tG<(8=xj%-^OnjtdSB^|$rH-8~;IhNuRfwvJucRuh~;I9II zA9ziLMdF1_Xr?F9X9$rNPBGtyaU>}PIxoH4WMe1aMU3q;LN!5s(+3GfVblcHYth*0LkNR|khULrhd zfi1AJ@sKL+mYr8(AXLFOJf*HA3@NDQ`XojaIWDo8wBj#W@vAt9FQb3F+=?2TAXZlr zW<<@CM0KMW;V`L1H?cHEHq(Z?Z@QAh;0J4*D^&^c=#(aa!1t|lVk#6$#r-cD1jM)Ux`>6UklU79K=IYARz>&+%6$+rFSiK)$z!d8KC7$QU67FJ_P6h4x zW)R70kC8Np;BWTD*G_RtgQJc6?o*#0{T&fBht0_9c4uHX9c#<9WP=qOoapup2RrhX@LjPN{vX&$ z#^6+Y0v{lw@@e842SRj&6xFIULMRe^bsDz>eg?LQK&I6?j?ocs`tTl}#H6?kMGo{Y zplN59SUmYE=0#pUg_EPi{4(sZ!E-NZ{yXxZs6-(sDH)mEL6cU}Dh7Uw8UwYwY;C6^ zNjsRu%9~6k7xt;xUQz(Bn;Fkh*dacS+1K$5RcbO#Y*VqZZ)rC<2C8TVOH=4=b@eRiJw>BoTy5NH zJZd~={JHVt;9~Hm;FG~;gP#q41>QctFk#gCO-7u2X+7*(pY?KGue#rGiCK~8Yse}_ zNcqi^M=CP}!;Tbk6&xp@_KFUmwcM&yLeOqyu^S9(>?iTIrh`fJ9mtoS_oJ^Mxy&QT zCVPdkF2G_r+Neow-}#0RPC0eIu>i{G0;$>PFjTx{F6A_{miGGD*ZR)Q`2`7DX8JZ~ z4a!|pU{zT5er-{b$Q8saxgQi&B4+ijUSmN*k#<~L;;oZAbJQiOEjmZvqmA?s6^=y* znWq`J11Z%jB}MZRn_a^eB1=N({LV}Gkp;jVlUrXygd>sl^0Nj9@4@<9+aJ_RMYq|5 z!UwfIT6g0@o`<)|#1rFmZ6b(b#rYB=D}4h8n+Ptz6kKn(&%l7K3$r2-V<*f1)cxd~ zc@Z_WAVQou&PI-w7B}!L>Y?GJruIYn{Q11V~4LD&yE@K$ZVyuOd_a?M-$Cr_ML}+K2k~* z#$sbC8hr5ZTfK3cWM+!%#Z)F$Ui6x6CsD|aUw!y#Vr9}Q6|Gd=aph);h(ZoE6GJJk zGZwtjTU_++uwtWMog!l<8O@D{C|DFHBmP(kQO0XC`g@B932~9pt|g63{_4J zN_|}EC8Vg*&O%*1o>KIj%tWeWVk#!tCfcwi%U9r7g zysTuzlE})yFM_*pS*c$t^?~+`5%C|Zq~qp+Z1zC*${1cTL4ZX1jj7y~neA=084Jhq zS47Q7ngTG>C>tX~#CPdHj+MorN09L|^ay(TG7R$0v3eN(f3BdX zilWIs^+N?z@&Wt}z=6uGaCXUef1_+-Rme)Af#fUb$xEmB!%ay+8D(}Ma%o%Em~p}Q zL;Q_*BG+qm-bW|*QI;U%SnS~oyfkw|R<_~Amoi~c8wnd?Cm#f%QrNWKfC3Pjl5>6J zCT}691@j%L0*i|`Rh0m-fwA|<#r)V9sXT`PGN^Bo`J!ohLUSkSgj5ZdjV!3VdE}+qDYSbUCm7IFI{9`}fze z7e0b-cRuhzvgIxYK1p8_tZ2gTF`1!i5Y&KN2HV%&H7h%j`}sFO*Jdxtr%9k$2L5h? z9W`6;uxx!8YQO(=)@U^CrpPx> ztE|ZlaiHm=(CXCn5Dgws0zy405y}_aFvg%mOn-C0!l{WT56ZSApRK@ah8ma24P#KD z4uo}Vf--rUT+ecZ=TTvhceI$@knlIWtvwuDTZ<=?zZabzq`nY8b=#?IP(`F9kx|3j z_!mo`@HZGcrgYDU_${ktTsuzs*!tvQf@9kTc6{ElTsnhde(>?Bf>OF<|Q`aALqWdy? zGnry{p{SxO(P9ip3uFSc(2Fnx);8d5F?1}-c&DP73~N0S88>5YQn*+w9tlQ@pp)Tk z2`2E6GvtetM7Ar+xlmopNr2GGlIJAQ@6d@O#BTRqyJ*yddo?aYJuo9QQ^ed1@CJ0` z9+mN9jeLqZfbI_kqDUZ%D0GAi#eJ%>{Mh;4pj>_=<4AIn_;dKF7v18yf?ND=ya$I& z@Ya>DUOX~4LqYO*LVag#^3cRYc`~0T$iW$Xs8vDk}!Ti_H?3@Pk1ff*6aZ!p|%^dw>m+RprB+UUv2^uWs48=|P7YjNCy z_R@;N;xcXYMsGpyMkR()5L0bqT_oUCn*@ct_wk@(AR(w8r5MVEdLS+Y)CW=bAZ-#; z>6_Rkyiyt?J8V8+HWnQT2cBpWJ4fkkpvVA(eP)&X&9r*GZPwucml-}%5|`$xl}O{D zX>QaL^&@1Y0Uc1UMykszCBBn<#kY;FQ7^X}$fO--Zcc0{FB(oe=bSl~a~h8{APTK} za9JYElhA;eWE!RVk?qDtmvb@9KrPsGk>sKul#7=oNtwP3S6xD_Dm9i!mJ#4q;~;uC z1K2|}N)ZV~5JcE=fn;~X&U7h7CFf)$lrvIB&IwPKU>31dvS1f>Df1NM^l@mW)+v66 zs57MqHB(9c{R(v<5fcCe7P&fjR=jZX;rddko-7KmB91h@4_^M-KfLzO;P-qZuu9B) zKn;Ypz`ylN);KSG?BZs}ZY6#kXoYX#?(y5NUra||eI6GO;vhk#c}z{Pf|6_rx(? zfQ!lzwZfPRrgHn%)h*Yn(KnCYvc4~snFtVB5eU?{?{9)hI1MV{7Bvd)4Llk64`8;i z4#ADlg)4KY+|s>h{!M?Pv#yxxWN2WlArz%gOIe6|XjoHN5;&UZd7`wb_m*j)O4UMdjS6X`FD|!ZI_78wx=A3B^=zRo(UD87cB(i76>pWw>cOMsTv4+3 zjIC(w7z`gFIITdsB+dbzfjXVzVe_rF<48{^Nu{m9j5an9A(oPKHy zz@SVzhN6ihG-tmPnb8hM!r_Vb8>nNg%&UQdH5O_o=YwIxeDnTUR17<88`)jm2Yaf( zneli$<;9mS4BDCBpy*7FdFV(Lu5NIDqmxV&nbC2g&(a0ET(!gnno@Im=2s-0~ z&{V8_3I(rM{>s%7ipnX#6MpQ=%+u%eIg9o&UNG_HzoXbH#ATbtaoLO>O z@|kFZ$mnH48Ddn)Gkd|vk3R#boq+*@t9>_TAf2I9Rs=SFFD5 zP%B()W(S@)X!F8APQXm^-wkS*-?D%7w%N+$`r-Xl2?*_5I5*pvDWsr;D#xTWJDEZ& zcX@YLih#^qFBi1y>9`ZycdS1#uZ~h_?b_{IoLU>89kI>qo;#+FRp;zfB{}x3iEuTa z-_z`k72PM3iR9FQ^@w{}{lJmShgNiHt5KW0X1SRtm8U|ZFV_l8;!I@Ep35))U&KrR zXf~Z3pFVUv9Hsav*`^?TWTyWqKYd%}7kj^zAk22Fm_{m$M;gY-&E7(f5L$En+0LZ^Ewfm+ky)@YFZ=zvIAoM(j0jx#Hk; z?a@10p#3#=Q~x6y+CD#3U9B%Qo5x?hIu`2Gi|Z=qm{%OLtcJ0>TnHzNbM;_4@$cPc zVz+wh#`^Iat})8nE21J66K*SX`oMK~{yJ~kSHE@}#f+4*9r@j0<_IQu3NJbtJ*qi1 zJ>^Y#NNz(l6()UWm=CKd)qbA}j^3h5?;ri&&t3S?g%6MZNkvCr7=1^5^S;s7)cC7^ zpzeO)SKt2|ANtUR|BW4A8~u$j99?nWkNNx^ZiTOY#Qkmrb8Hfy@4ccOh$&Z(w#-GL zvdjaCJJ1ts;2~I{4~k*gC*_w6`EYHmX^9mqcJRIrn7V8Ee zk?FDau5lu($=b&Lg3zQm4$D#~L6Ai@n+l6nCRA`5k+>bl=8N$I^}Z;^4xzigzV>3^ zGl4(HVzbHlE;iE z;Ah??>rJ*_dKXUtQ5XGz*w=mBwjQvE+Q2R{OjDv&@t;d1kq9(*BM>{T{_BwUA)m{L zjf;`U;=lZ(EGc_CL@UZs@-Ba6C-N^3l%IZ$8l}Noouy7zVSC@IeWw5z5nvhv8Hwo_}NqHM1S=n zCke_x#E6-h+YTMVbJD68D^Qrqcx`rUOt0&Qkj1VD6v%#@0Xbn4+^i$4H|!dc0+Lko zf+UU&3+Eo)3QP^b4;0N}C$Ra{#FFngjpU#{nm0|+8|Gg>%gZ+>)ja>z!1fM)&p~&r77Sf)MJ`0mJ@w2D zgH(Pz7+MX5-w`%TtmnPt`U-}i%=c5ImYyZ6WCod3qTA^JasN$Kc`_b;;EFd8frIVh zAs=9102kPjed?YG`(6$^>iC4zf`;`YCk{Cgbd zp5!mN_M@QZkFvTrW&_ygX3x7>`!_R5Z?M)wn#qS+;DDvz1@N3Xnuzn9xLme-p3Q;V_VlN%>1q1IdXfgoih@eZ*+52s zBm5l#YvN3<9rKAc(z(7MOnpENLonmhGV6%TP-*DH z0YlUIGIOv*55I zp(SD&1a<_`mpumAAd8K0QU?cMM}VHJL2e-2-LdoKnfesaB$o@o=5iJ{ehD5_brlBI zNz`Tw6*)3-6cCK3KtX_=uyBjOm2KZ)pO zyL+W{K>G<|m0Y+$_80okdumbTJnLb2q|8bxcRfTTbQl~4Q7tC@?zqD`fmT)uGF4Lb zG1X<8OZmqkQxFgH)3x!=DymJcb1_nsN2Q-_P85M8NM)2sHfIy4U~s9bH&RB08<(X9 zrtrO<{rcCVlw$Ka&#~Oh`QU`Xbat2x6{$!MBXrssQ@z;NT(JRW@QJzs*;r|aBS5wBvz%dX)=t~ zh?tQ`oW%^>^I!qTFQ{=(`{KZFYfU6>-IwbP_EgWn~U}}Tb&5YPI3k08ii8$r5eWGgaOL+ zXA+0(W4Q+2yoKh+zi_;lDQzi~udxY>WBI1A3OhXZERc9|ZN#VwsCn;cL3^P$P?1rb z7%~V)0G~N)(3N0D?qM-cqo|5~tiI)Y?}&rWITEb(dT;yssZ;Oz`a7&s+aG;0yzi9^ zZMO==CVsNlOidFI8hcbHk8J=^$zYdq$%vpa`5^QPhY#VyHr?o#fR&*KmVM``lizsP zyKcGVa_~LMAf)i(PfGx3h$zduP#r_m;Wzs`+@uEnn#ik= zT4f24p-DsrDq4;nmb)NvQDp6S$2XcY@B3hPyy;qm5EonF0JD56k5xO;JGsx>jc z&?H72A#3`5;FmB;N^69YIXxI}XskZ*D_|${#8lr6R|ETQ==(fohZuOVhEZpJSWx4i z(K`5>L?~W&_|QWS?K`uuu$; zoL`t<*r%<1`+)@i^b7~AGkf=&Ib-ArRvT9HvSJvCa;$0NKl}YpFL?5VF_#i7PO`N4 zJKiy@|C7f!L!fFd7@a#5_=MgZ$fD>+evQodzdP}tT-fif#dtiw0xIe6a|ed!HvZp# z;ldmOLfS{7=7p{|%>3^gr^e%|a*FY~&Uf zbHnvi=aJ0z7YmOS><0(|gR98@ukUd%^JJzWk9;DhXBvK>twLs;|CTl^ZRsiuHb`{& z|NT3e8mEbT-`vZO*`Y|&CVU4z+ezAI=Lj|yYO9mmulTihuHq9D9g4iSSi>Wbkk>x( z1AGXdZQn-3*GI;F4@~>_$3BJE;HSs_aO^Y4(tl2-`Y(j`_zFd;HQ@a(kRwx{e4PWQ{?dD*m&+Q;mR?bG(N?8`9I zet~_9{p0qn_D|Ti**|IDZoeL<{GYKOwtvU|sQoefGxi_ZpS8ba|E2v`_FvooX#bP_ zE&JQ{ckS=l-?tyPx9umKn$vTpoxU@0W}I1P&Y5=>oL$bQbDp#1>~;1z`<(;M`OZP- zV&}MXiF3mFN$01WyPVfM_c{+a4?1sk-sU{wyxn<+^G@f#IKSh3)cKh6m(JIn?>gUe zeu(r7?8suFq$=@8Y{N)OD+9R*e-W`{@z8pswS!-jF%Z$J$-3z;N;A`Ps{F%pLdRqN zLxztmNxG#)-o*7Cd=Q@3xO12SI16vn7bAS``C_6ch58WMs72Ud9S`_V&~|MZSW?Gg zX4`0e29pjlEN~Ds9U(7bXTVdXatM63B|0gU*lsMHh^;$_L6B z%9Hc}UOIkGpy;W=@SMw>R$UNIY;C!M2=ej&P7ul1wyUM6+wbzS13wBP6MnSPH><7` zR50-rj?t`&)aqqglQ!c6N+#=WqCF9Vb-hBW9C~7(v8<&uE{HKP*g1RwRpBa)QyHQj z!7_8ic>}r`m`x}3oIZ`oN9iOe*q1@ARuc|Ur`_<6RcwBvfGas8XD?k|iNK6`BHRO) zuEYmvChf25Y23tbb)9#q^19-jbRVxzV{=9g!Cfp~xHBpsGMz(v+0MhqM^Jguk7o9bYitXVGVc}x-<$0+{zfSdD3V|MXRBDe?&!TQ_f9d zG0&zxSbq|)xjHT1M^+QAV;$g{K@|)KVp+)gjgPlpIjP2M?xwxxJl9^E6W5~-TV;09GQhBGl<&CVNfC-a3Wi#4-kuZ zxCCn;WKWDi ziTY&yRBQXQptXUz9*J-iZU3D$PDi-*2hzWXBaq{Cw*Q-p4qbT==|6mTS)Q?PwD#a! zjFiIrytMFh!N&F%{_Ymx?sW`?fv2pzP-?T5Ee60EDq@AP`0%6;5Q*(|*d!XKg2sZk~IRya|)a4N_f_P6%)b z9q?veg>Lak850B(M9Z|DG>nm0s$}4Q27?27_>B&l&QfCksZ6h1E)@$3_(UCPa_l&g zZU%|0Amy;E&nQ4XR2kI8jByI$u?fe?f-5bB#0m&)GE+^}3rQP>P-g3Vm=%mm-=;*I zn`z`gi5GzBBH0FOBn$8Guuc?-C&CO_Z3yzrG3Le;y~sc(U@iRvgUTQbf@Uhqa3?I! zXd!1I03JW%1^K=|;6iANV;w8y7L4~bh);4gq&diee)O6nlT()sw`LAb^F$iPS@cN0 zjDe^O>up9Bx))ioCni!&j8oE+R$Ax|^M}@>f7*B)k^C#~VPu!b1f|88iHHQF2tmTC zY(^&>m`Y~0K$6VF)|dn`k(m|m;1FC(=KMfw7_bl-TP3?r=*gy&*7b0`PSE(wC?*6c zghT}ZT+oWz$$Z8xS$>98B)T$6`k{#+u5qpw=Ee1EUl`E4q+qdjA5I^d@8<#=!;?Mb z3|`_C#AK8w6EK+THQWj|+ySyY4MG-60y~09(HgkNV|MJ>33`SozUM=M5by1J^Pnxk zpX=uUVhHHH;iRG3)F-f}FUU*=S)vXn(-~Lr6j8ODwe9ccs1i4z1h=|4azQUB7kXlb zCNz`LCcgno@u#79cIhldd(dwl?z|M_8EJ@t-$f)}9n_sesdy?UNyNfqT~Le)PUK=l-0*XIk2~zBpv5 zTB~_@uQDci9N^V%8fy^U6DUt{}Bt=;al3(Y>QMjv!)KddzohcT{f z5>OBGhv5*qR?77<2Tqsz343Ti(3y&??K7>7DSqG6XtmE@&AC7KvyG7AnrOq}36s@5HZ!2sL9KsCl^ zxEl@NiumB!LvC5v@)%&1-~uCPSSYXx-h2&jV!fro1*vg<2 z3PRb(8I1mbRntFxp)9SKZF2{%eiEv5eQ+0}2$#2dnLfFaXlyMT|?#1nc+NVP+sP(9zCNEF4Ljub+16)O|vX`4+ z*)>Z5x!e?4koC+W*`$>$6~`${ubCi*iQbh9na-wNL?U@R)&!$SVYirq?DGtgzX1di zD3l0<6Q^Z^L#W!?vaGzd&NFVTV0(ZYjc*g73~DQ3_IWpx8@0{wOa z)?pc2*fr>~7EA7ESaG}C9)(IxA*0A&KL|=E~kVAudhDCwhgolBp;t8A~ zax-yn$pM{{AV3%jsfE;ka)FX!DT{(qbn_AL)ukP}IaQpsiRW+GXRvAcg1ox*>nv^m zi9Xg6B-6yS-h{q9g!a9F6&CtuXeB8CWH%+{8#0(fblIsx)}L(u)|rhB0$t%X-)`J} z`p-{qzuLO~MW?sBQfVGJ{mLuOcy{5Ui;S-HcPTSF_8N4Slp=~@tf~Y{8eDUgat+*z z9kL<`i$n+x#!(Z*TlDwIP0=@yY}JJrLO2Ms$4AkD`UGpiLYXpj*N@&5>L$?-;$&D~ zzWuJ}{p+cvxr19+Ib7KY!xN2uXQ@`}^lQg*$CnN));hhJ%)+tg7RAHy6W6--J@MAP zwtqcV<}MMHq8>ZsFFtf)qupq>4$hIVRVKW|`vHIC5;R35b!9UweGQy6abRg-ZXf9} z!bW@PV6E1gTVH9HN(()46@-5R?_>s*h-1K`TA_b@xN#!2!kN^MoO6A`q8MH9IbBJP zh?`@jr<5aAFlFfC`UurCG#v?;9ld=Vq&axsIhDuW`>t6#IUHJV{;|}7h2-ZO;nMQH z-6zMpQ&(@Ez6;}?bE=FxuDQ=IoqzE3{O%*g)SuKgy4|^cXJO@fjFYi{9CPX0&rqY? z#GE;xZ1CmkXt1VW(HI^;q178$YXn}mvP4WzoM@K^`~p*G9iApQ#t5oSYHSvZDi#Vh z3c=0qeCIn%wOT6mjVo_OX@)4A+Wto<3Jev0+uuM0s`*chefos4q)vVL%ZWQ4_}726 zQx8A<(1QD@ANgKDRChe;W~@VOyI=p|ohb8c|K5A=%=pI_9=iD!aN0_zz-g|#YPe|L})%8LUSnpKi( z^ogItb=~E)>w;S9Z8X)5A#ZMG*~7BGfVKY0!yp%B7T%<18hZh_ z5YAwv!zjTGf#4JlZ8ZY(GW7#SGBGr{h7X?g5r=tm(Fh_4Dl^i4a`jfV&4a`;aGeVO z-!zkY&U_|u4yRs*E5ehT2a7jB=^@5Qykva48c5(PHCF@R3#2TSB9mB%vy}(%lYNfb z(o9OWM+^gnx5qgPizRBIOXy)r2@I6QgFCo?#h{n?BfSqTG9UmhaSl!W1XuFf)Jaug zp25K|lqe1gy{H)0LeQWDm~G^Vddckopk2zroS1LfCaQ-yO!7`TSruE?unI}YMycGX zx(N)Vl2omuAxnQ!7oml;lmbi9O1vqZ2$|uy8c(-%cDulK-NAnFLO|C2f|uzS8NT}w zNVQQw_K&8`b_mrN{a?p0}cG2vmVC!Jw}@ zSkSe!8fO8ctWh(VEAJt=ZL>*Sm zXf(~C8+0`W(iKpYvo>d8JP zp4-iW@W{QFC`L|RMinq$II56ng9pp|1Ww7dtC$^%kAnL|4CTSdrSMHL7e#_p^FX4Z zrlMPW?S=V%XZLKYG*zKF)_U#m|MY#ZV8!8~VW~$M42L2Uz%u!SY;6!*~+bNZ<;yu6wRegEm)9q<7gdDUGivPCh03FFH?kF zg?X-s>kmO$oS=xsLjnINnmv)i-O3?sO@ctn)XA}0_-j~6-O4|Xq-BF@fmdk&B&@%n zmT6Ew0zPE1qtaCd0O0YGkzfaAfNJSH;t!{Na>xPNr42B}Nua_MT(fPLb3BQo0gw^l z1xVq`>)CcMK~vR{1rpXb$!ANjT+b>1%~CedRXRI#yF`&s6VHaRn@o_kjSvf#3o7@D zFbhaZ$ir+SpGE?pwjKx(wW1RV>IO1HJ<>kX0mF_K_40o5Wg%g?74a~itt(rexs7V< z+~{#1sF=Ag1wzVw0L7qIpM~kqV`YIP;->?^K?yMiy&>W^V~NgSnwmkZE~XjHTT%xB zC)x)gqFFVTwXZ-0nvJQT(8Tr~c|>!Kf1Hz@T<4h=ZNBbs+4qxvDcUo0@aC%yj}9z# zvk;K%)bif-!_R*C`F+LOV}4XFeC?jYrziDz3exOVDTt@^M5SH|h{`NXl#}E$MRUT2 zFL4eWkin>4F*TxwKyRv@RdK;wIR~QTrzufq?D4#G1wn4yE_+1+TS<8GGYu@z7(=`X zK*%_8xOo;6p@xviJ(OP<|?ObA+P);Pxrh3#f$gCWvg|M`a1>AGgxzt-DosmMoLk0LkWM7?t0BA!`k;|3p&AMa=+<2<aROD{gL9%dKYEYc!VbIpC^A=s*9iF4;J_KrTM z?VrCnDyKmwrcRU4Jn`JgI<(g#p;|gjH_VYXa=J-T^eb35t4z*qG zqCFQK9vxck7V@4qJHESxTG5_7-l$4p(a()nO2vuXAnA1>yUksUootkbwy**&O`th# zyGrRskhDaJYN0-2pk?fLVq{sH+p}j-jGBdfeb0GY(*uF$?L5&uE7{Isd+0l<$x1d; zt+bCcH(e{3pIdI0bA_p%2+yhBWFwca7qP0POg~?{YNOa%+qdV+)gtUzI!BP=K`o!n z`L+G4yBDLT?=Obw)sB(?n34B*^F@QV$Z*d+?)x*(nriD3r12Du9QiYBLew zcp-ONLn+{Jv;ZK%cOFG25#nrrAAY6@yVY3O+_-k86h(zFEHxXUo$K{-ZYLrDezQjk z1|l}nAGBz6OcuFzABB`$N`3qBk4Srf(;?vi-h1@|$e!=F&>v%_nn?_;hX{QGi7TWt zl)>_oI8Zy|B(fQD7o-a$fA}#xo4JLhTX9KAHw$<7ZB!VwR09YX`k!ywPJhBnrK;l- z%^V91xl{DlZdV#sxm@p*NsODN^qkbZ{vVzpMQgGK9Yr4LgL15WViw+ zg;Et@G?fI#k&XX@^!a&Xw~qZR(I;f{IqBlVfv6&R1B|4<6X_LW8f@ZeZgo*rrlD0V zWAOPm2L!t4qdVh|WQ{>UXv3WYgJm6vdq3VVR-ynhRRI_DZ9IMytxj-6-&-cbHzJU- zw@Aj49ApLw=d8_C?&EZ){dufxML1W7xh%!*bA^~ zegU@cw~f6Hzw-BCfA@clePisqj36uz434K&LYeIp=?!5YXfwt$yB)w9IzT_2fs9F) zbqb_YXVja@f2qmbF>_nG`GJ1R3F2>fnx+8*t zx#xOy9mr+^R?}{^X0X>kkV+jOVK6iMz(d0xMf5&AB=SGM+uuiN*JpSU z7De6WrdnUyIYMR*4iKd+eq^Ht+>hD2yYj0;QU+k~Us56Q*7nC4!XjlEe?xRgqcY?7 zIkdo02F3%&sNi&z%eLo8S~OR092qW5wky%XWaG}sg~^5Ck(If2Yhw2OiEd}taA|XH zcA~}ZY-^(H&LpzA!~jdr+(|NB)lbg6vey_VfpkOFFdJC3@Di?t3pcL-dz!+Y>8V3v zSW^=}(`X!7A%Z6c*^>*k-ni8$maH;HKjW11v^|WR3h47O*oRStNSRHTXt;LBHN)A^ zseRC?H;~csr-)S&M^Dkn6@>y`0Sg-tn#Sl9v1MjlGMZ#vZ;Z%)%USam~5&FWw_?GvSZ zZeYD~?=d3m?} zXM~Ev@a#SBfz%<8_Eb@w>D%!NYp;Dc$QFz?`s}xzK=|e&Cf=S8T+2O#f){W zoA~9VdnrQQ2_ipSeVB|n5qi}ht1d16daF?{Je$00XY<3>Z?}fI8!~=VdaWlOMHkj# zHClGV z(6bN8gs6+38ua2#wm1l;d@eF9=(Uj{mYD);c;2nT#N+y^wL*;88mYCr6&3>8T?<3( zz5oU9cK#(-DCP?JLT+XT=?+=d$*@4xo85AyU_C$STn1qCf~4(TW~Z*M6w2Mnssmic zO6DOt+cVjvPG_l9M0u!nk@_Ot9Jr!hK4=%R-eL@hY znPG+E=hB%rTj@g4eocMKwx{ZeZ~@B`uqu?Vxcc{}+Ts1!hXnJ%OfosckDYqkc)dL+ zyDCE;!n|e}aMI9x&yZ+hbAvth&!2o;7ezMsguU|5p$m7+zGTF;7 z0h-VVU>;bi~7^Ev)8=Zy4ikxu@ugEn1FE$UJ9d$d6u@;=5z#2@haV|+a`Lu zSC6f&6p~iD@vawM^H$9_`-y)WyUl*SeP(O||6zIAqTh-mAq@x@48x;oV7OiQlRon< z;5`C#6HEuxz$iDmC=Ay6*5a89R*Q@MVqtOD#_g}$SX^wE!llCe+@2{?%^sdPneP%f zDAmekUv<|kNt9>pCMM#eYWya5AfS@U>@o#q@mnRu;3 zU!zxyDT;YnskymA>#UYY24Hnvmf+~ptbcHmGfnItp#Ph8au!sgSgaD!hJ{BvrP5*% z;W(HJ>_WYum4%VZwM~XH^*4+S0lDWaAL-l_W`wVEH=pOA zchVrG>!mt291iTwvfr6^d~?6bz;$nDgo~u}z^BlpPywDKll~~j}caYzmYXJz%PRuX6gd`NF ztV8h4g+?pUtdVpGeM#6Ri3B$RayALl%k?}PPDSA(d;tJL8n})l+KKls9V1UBj(p5g{WOFQ9C;9n3anGBpx5EjYc9- z+lttVBD~ZT8iJQ^=5jOWc~mX9DFg^}ZOeX?b72YEtbH39!}t3DA@Gx}HWZ$wDbcE` zp8mqZQ*DPkGMV|}<2x7VZnxG+)p&i_`;1Qjt}vGhJLHzom8o2d{DEpG-C*+ng@`Xy zhRTb{ZBj$zYo(8p6s-$Yc~wsSz9i=$?q)3)7Dx}uQCchvqXzH^7uW@4bvpu|0j;8? zc#u2SC;b6wscg5S!oX{I0l4F+;I^AMg4Y_#A>1VQ@6rh_pfgMlt9qt)w4WgOqDRj7 zDlslTNM5^BhPM(GjRT@p8IR01GqBBM*KA@W2WD+T_GOeZ@&#v^;VbwOM-SG7h$Wg? znKuk_WwqSJv%G8)po|8Niki~!cbIh!SV|Q!6hgXYAsX34_y|{^Q4x?8Db>uYgnsHC z40IYg?WUp{fo>pzCJ;?esG z!_vLB{lQ*689ajkm1LA#g2#G08o62x?;|u@$xD-|da=}lnvxk6YxMnx%nI6kw-8DJZ23hPAY3n*xt-FY?^$v2K{}AqgJo7@JCflLRRbBquG=mEZhT&elR z+`%&lWI^;1h*5G2Lz-!(D5}5>_#u!8N#3x)l4REV_);yWARvq3T(fZZB0ITUtyQ=c z(_!Rw&5B&+2Cz|pF~$uc+_t|(JU&fR<>O}lXNXh)lty|sAWy`7F5@X2kzE=U;;|VN z&9Xq&B;zvUq)X9)$*iwfg?hb!0-bQa{8s)MUWJV|>Kw{d? z$Lw)L!$Y3|14|Y)+9bwGoKcJO3cV_WU~vqv#USbNMe&6iM5J)4t|(K*fOMylceNx_ z2<)lOB0a3dZkFOp_It99CLr+o8kfMx5?SslW70|hgpZksV zIgEO4HXv>Q`liYmK2!>&_)T?)BDpOVK&g_RaE?vkG*vL{g0b4>BJ+ma4L0)R&jART>-cT7#IGR(GzC;(GIr@iSn{AR6#{B0tL`z(@GJ5Y>mw&YKeiXSK|N_8E-Qd#|BEk|YW42ZhA zQMc?v53AC+$9zB8e3YVXuGe!RIJ%mM&>UQ;4yRYE9c0FqFw`W@8 z+(as940V)DLkcLAvjnIS-bIQjS&-m=$h|>X77?;Rl9f(?F*WLMN~+4zI+3o(<0g^J zWwAg4$;R2uD0f|c<&Oejs`I6Z!octHizlUYv3oeL z>HZQo>P4k;IGzpD>3)#R1(01}iA3N=xESSAq{mFBGmw)kCP>)W=K;4^{t!@|d@)-A z`^TUl$R|jTxu;z(a7kD0c<6t5;e<6Kh~MPJur1Pe&?M4%Bi#__H(dmJ5M$}2@Nvga z)F!D%zKlZBbBn~bC(SqwsB3Am6jBcG8I~5fXc6wCH|=>vhAfm6bWQ9TN@%0bcLF_M znggH`oG57#RDT2z!gEem3Mm=vLuu7?Y+XA)HpkR4U~Bl0xmNgi{1$O{7}1gbXxrM$lh?sK*0|(YgJTz}3bYB&n`h3*^4V z0_G9aNRDt6p???%ncMWjm$Eepx6CS`XP{;AwjXwjvWQU_e%>sycA@Y>sYUMflv|UL zd+ZosA5Fq`7aY6pV-CTs2~49fe!(?MMhra0v2$cPnXFV(_<)(l4RAza5aG_n2w@dK zQ<}!(6HXn^SgK;Ghsda8XvrWXEu(oyp3VZwSZ7>drAGbbeS5#KM1@4YjAJpjNkPp{ zPDFE2XK^(Ok&ZQ^FqmN6VOJhxu>N3zVA`jOGT3Q($|2pl-@t{DFv_G(w;D+O<-{(? z0#0*0fnY9JW6%P$9N-J@f(jk;2r}OXcCB0)EiEW(r4ndpf;fJ;Q1=UYoHsDn^0BL? z4|r!R#W48;;g;D5LqubP@7P*}iL6N^kpU|aVr)@y$1B$lr|V6~Orcm#G4qqje9l@l zrhN?zJy6(li^|~-+%DrJtKfR#I&@H;pf(=CB-lfD8`jw*$1al#4@=CAaCD}Rr1YZ* z`rOb5?y@!9FXaSIeT-=axMiQ0D!K_mFY%ttoS<7!RtSVXGcXt{%@kH;w4^X7>xswF zN}sjfKlc0>=N0pyl`b~=)iyMlHA)O6Ylsm#3czP$(4#%x9k+ zuZ^qU*j1}9CkpvojXX+(^@3ERO7OFErgDcmZoX1LM0SG3Tr}OjtX60iYnM$;S8|Ji zn{*5LN*>+`zi6L8oeUvRQF=?3P^Ap|BkTR{U|tP~Eey`A^n|>--7NZPWn~G-mxGsP zs$AQZc8jwN0(X`Owdq||g3~dNiz#RZ4)AV+o9Gy(Iz~M#MUV?YHAW}&FnG-d^29ED z0nTBJFiX5F+>`960j|^-Xay8ip4SI9pC;j6sil>Mox1GI*Uns) zvKuSIlfHZEfcdj`rNN>|-6iTp>0A2I6thodLGUEY~==vB>|2?J9xvm3woE^H?5ZF+pNG z2|Ace_Yu3g1A@9D=;{zq8 z@%Q*F`pfr^{mIx@$No)_W4YfEdLZ_lAv-*zbFcC{)v4Nr9 zT?*pKZ@4t11a6iD5Up|jIXQsNUfR23ieYZe$({#B)5rpvAv_n>au64yu_0|5LA_vA zfdS*1FmndNLZzFR$5e&cwO3+Je}LKvIeU7Q{JwaQbae(%8DPJ<2J=hGKjrSapGnke=n7dDWS7V|oE?{2C+SBbqSjfJn&s?) z+PJeMXb8gO_8(x~N$|5-m`egNz#90CSz@9k(yTCU)G8zN!=qSf_%v3UbOEX&`$cEU z>D5?nS(|W(B;b_IGGf(>WhZ^iwg1BM+XP!Ibe&(atV=Af=4YzbCH9dcf&G9pF|o(8 z9$vSsYaX_y>K($1cvBAJ`DLJHvA^CjbnR_V={3s`3FyaQivJ=Qcl`6M-@5bGTW__# z!q<1db?dk6w|?f+pZ&~d_=npTe+gE(2kgs2``Cx{b$h1r} z7`#8nJq~w!YS9^=Gk1sYD^fE7gz3GlL?v z=bef}#8<-}Xa}*KBJ~`b3(@Xq4fHYL5rGk>Kq!Br_T#cN?EbtPl^219Jdd!0;x#)` zn&4>L3fFthQd0nY!(V7IgbS7Pkl75Cgn!OYA9?v1RKbcPkAFZmv@?Ubg;h)>opf|w zws?AyRoYIbYSr9&v+hQ-bp)P*Tbauxdr`fH(STw^a7n#0r{o(jlE5#P-^+cltC$w) zN+wI(leY8BGk!kj=aaCvZUW8?Ueo5SS3M8l69x{BpgP^ds0yIwa6xQ;zGy8ZTe5Uu zN_b%<&#hiDF*>|w*755HUikbi(x=(AX?#nVD#V4KwM!UD`rB_I*ygHru zz@)g~U;!W=={U0SKA{j7*MV#=4_Avom}r;VNPdXpX{VmeP9@=ICsPxcW+$7C#v@pm zWYR8PKS3E2Z?8}!xiC)5>FxamCrJirvSQ?N!JLyX)c+zZ%4q|c40~KFvHci|e%MKC zF~ab~X?Y#Tp5FckJgigRxbK9L1h9g>n8y5=lIrf1A7bzu0p!P8qOH6&Mk97+NV*{o^ncK|b%|YWu3GW!|aXpGru|~28d`wE9 zP_(h|MO`5ynU9b(&)R~w`dLCPvBiwAy^qN2pev#ERwm(g6S>VILmT!Ii~%`>GyF;K z>j&Gv!CZfac&Z-qru85a4#S^i`1zjqdkjn8yPEI2{_nu@KFDMyY>?|*p~7wFRyF~V zPI*@Fx8FsA;1W{(x+Xw; zc5*A=B0cEGKqbAe9n;Trtpm~TqSMvo<#lYTv1&7gabR^+O6-1fUmi{J?X z@Y;1jXDT@pRW2zfO08-%Q^5*3m+z3+pwTB9u4J&Fbuw@pr6SzLtw}ExA&X)+UT^gB zdE2ghIc!Z-b`^lyUYN->hTY&!H#n19$a(upI1st1-R<&bFZn)v?g;pl%V1lMJ5xE8 zx(F|s1~Q}b$7F=S^bHOiDxM5eMM4}Gz^Z89Aj(9c!YFN}`sfHC6TZSIp-fO@hp&X; z_8qJQm^0(Rf;VF5Uy;js2g=EiP8%JcF0V3wBqX2nL$BfY@N_@)X+$Vv93znkG*dy~tOu=MxBkfbYwO!gt_G!?wcl+2ru|=0==}i` zW|Ekb&vCATGx7&(Bt~0DKxFtZ-hytx79-CLubgcd8D1Y3)E$|ZiH%1>tW~I z<}~nfH4fjv(+45*0|eR(ZiY9uGK^@kbg*cs{Fg>%M-?4$BIe9w=^t}_^d#tY70{VC z=KM(POMh)1yRfc!AnJ-hj2x?KB8;gubgwApd3Mx~#p8HnP;GI8dXA4Nkgt6mk$uNB zmTb!%BlBP&0aikD=)jPrhPh_|lj;hB4;l&K3hmpp@|K^ zHME5zwlY2Lg+%Yg5^1fnhmbok&qQXZR84zPS4x4tpvhS7?vZ>}@kbS=jPxGTAgo0d zDF)O$<|73-Eft^=tzuNE=F&%62%gK^finyPH6JUa&W39GL3fWm+T#$7!SJHGZrDZt zM8&BdvLZ&?Jbg`eFL8mS8dqQO2?`YL>$_H_^NjyBgQN`gpBzTnH_$xgalU0ocm$HEUG1l8B{&4$ zQrd{8?m9?#M!ica(?YpUX$GZWTPpDQ!ThlK0NQx{>Aam=P}x}U=TZk$OsdrD zp(Wsxnd#94WH%#dJ=eKW15kreglm$`VDafQ?3%2)n+F9&e?!Gkb=jW~a4!x<{E5C` zx8S;^wGoDl_ajOGU^G+?I!TNtoJC-T;E5!B=v{QX!Wi?GKL)QS&?{!S~0MQ^oC6)FoP7YI*Akj)ZyML$)ZbUn+K|<{FnrWtYA51?=2UfJrQQCZdgbLII3<1vJ4PIF^_r)*2I4ZIXQI@{*%B`L5=`_ zYrNR@^!_{oA;PQ=y0{(`1+(jWC1dydRs5%|Dk#(%0?dRnTjLM8j zfx2e`DwE*^S}$;-gLo{)&w(=rs%KE)u8WS2r)#_-J4!ZFkWBAqsIf+c6d3+UWB5Fp zLa)l9T%G}pPa9J1tEB_UN=JjS2Uh>4lyNLS4_sP$H{_Cf2 zcR&Am_jVF9oy(e&nV6`#??8e9l z_r_olD7*;CoY))T1gm4=KwASABK_c4fZX>K|9EL3y87M=FZ{%Pdp6&4VP;q6XY=cY zU*0H;cK>)LSN?J9n&{S2F1>WdyW+q3SNQk!tfQkNHmc{z;cX~Ax19#z^cJKvbbwC9kDjTA4CDNqpUeG2;Q`C?~2s|L`>?4 z;j?})x880qF*q71Ne(P593X3Ut-a7{A6P_&2os(5;>^B;+aS|X6lo!w3!^sV%x;mZ z@lXAIbBj}LE447bu+Q3>Z&#}c5+dzdJYXeC<%X+s>oXRq8D6UK->OvXg$WeBQN%2% zRFIXwGqx9w_!r04#;!q5z6I^cV<6{WV;r&SpW{fVrx{Sj7z5cDr!j;tae-C6t&WTa zQ$o-KsXT~sG*9kxhd4%g1XVKSiDMHtA=v@86i9EhQXN&XhM~Cz1kx5%4pTNVHut76 zG4{aVSLU|6DWkK732kR>-tAPneT;g=FUwM5I3N%Ek~#Z4OQO>UxGYem&WJ6N1Zc!k>B3Uoh51Pa$~xVhzKd*(S85ArRF{MBEA=8mIl6^@`k>IAhR zFlC86s#z=gAjf|CZu^7ZtK}~~3WHN4PdGV3;8CDOKl%dMY|(hjWnNDl!vgka?I`RO z&_p&G+zZGgJ0zlJ=-=pc1E^5$@_i*SUW>=w=p=y_1HMEYKZ z6UFFRtS{vS&_H=_JS~Acd#h_S31geF%itr@RAn^qgMpE5!JyWVTSojJfP_IpSJ%+2 z;4m^+mGw~+-zbHkh%L_;^?3sJQo0{#f%tUcKq^M2lF|LKk6}8+JZ=@U)(SCHw|@;q zTd_2C&%O7AGQ;`z&3x`q(*J$Am^s%p-hJ~V)UAwxO!^cH1G5S=8aKTS!XY(w@K7W~fo`8!$5yAga%E_@FjXI!@*AqxE>n4sGdy}*F1DWkV zCnHSqpVHK=SG?f9S+8V%?nOxfS7N5tex9@>)K~jYc0YwCa@}) zm`Jj6!}Y*4d9~JEOMBZcmL-I4nNFvJpg%o59fs58vJwrG!%H?VS}!qq?V*o?r(&AH zB4M0E{E@^n^I!rVYhQ$&;D^Zfz6r|rQm_C#N|4G}Nt8cL33>fsx3j+AL8jw4ZeHNx&^m#B#}OiS=a=Rhgp7I;#K}BBER^L2Bi4B48G$s(743=Q-mfuC}?#e7y2&eMxcf+TR+&%dq^QIz>+RyN;)ZVaxW!F8t)HrdAF$dp6%pd<|04jUK zaW;sL?%yO6c`_Wu_)(nWC^J?E!y7AlNQ;#sNH0tY42kw)rTnVBfz|70KYZEN)@MI_ zdTZ(h%EwxAtC8{r4H)}Dvp}r>*_q>8d#9!jUH{to z`Fk$$O2y{*Qn{4R*K6bBb*4;I$~}6yWgWlG(nSX^ur4!Kak2)!w-jHLN@LIySl3^> z(Ae0#@$i8I{pcMxoIZT`xSuGMhKq}s9L(UpDiO%7HJ6&#Ei`Vq@z8;T{pi%m7oWcG zxI#+S8dt6lXJ+P*2bc;-gD5-IzW6LY@i=StpMumWH*OBjuQE1Ii$LNAm61r;bak{w ziuXZvH1LF7$AolR$UeaUc=>l+@#()g|8t){yZwt-++>x{KmTuTI{RrWNT;{I4M9n4 ze;aLQnRwiub-}TB-v3+I4_|%%JC8nawiCfcUT;^O9>*Pb_+-kPaa_Z=tj ztvLHqDSNaPVN6voRHH@|x@??!kJX3*3S?Oe$Gj}*}mV(lEL}P-Al83 zcQ4iIlZF0y@3{2jo+Fo)UM8Wv=wi7;35jZPqgq3F!0sCfqKUf#QX_J7qS(H*-w-tK zT0e%zpW@Rz@mI9@cj3(YV?(&{=Z{@&csE{?+0fC9h$n;5QH<#=<5QUBj`5x}l9>zr zfq~c+d6G|ji%vKyVYFo&*>G-BI|>f!+7~I!x-19NS?txwap7P-u>Hml9KU3~ee%TB z*Pb}pp0iGW;4O3QlP8~l^`$4<^OtP@MxxM3k|_@hFduDPwNShcfkyllp*avkQzVrj zP2VT+i9poJ0RDhspYbHm_W}J~OD!7nod_xc68G5D3R0tVxtSs;uvSRTK~q@jGpPk&F#D>0WBY*yfuDK}>&1=!_9+h5 z8hQ?;Vs3%o?~6fa68rFSfPoY)m&mO6xp0Yne`YCj{7yhMUtdc(u9COdzSJ933Qv^1 z1_T>;s8K6CneQ)d=MovE(QsriutNKYbhGbkd%;5T<_MaQ+Oi%y`@?NA zrvbGw!2N=~QYtMOM=v>9q!NYU%I2_?TY6seBP|d};jD}!9>hwXK2LndLO ze50T9_i)6Y z#I=kgoKdBWMnpHO@6BRj!dPIx4gN(eCapNss~hZh5Ma6FeLpw{u2`3UjR^zP2j&B5 zCz>K4BJM)AmCvUYX+D>=4? zDt8dj!%C((3Y*9X!nxPFPHeesw~2rSCdQv;(;S1CsL7RC*!3K%Yt1KA{WoJC7wdxSUG}6<1(p7}GzGR7ZWn#vwKkFbk^_L;{v%j3sO=$7M+|Z`7EW@={+=N?4x; zJj2yX@A3!QR0l`ADD%Aj`4N5XJQJdzIt)?YYANXUutAjL_!pRr9W z_3~jmoS-_Ytd$4Bm+n4u{{!#1|7>QlaO6ubK6L1YL-zgeeed>HxBuYL z`hzE}(}{PTvaIdL-gWBfa&Zbz$!CuJ!q|Jpev3GBe}p9b-^Z9}MC&6Ns|9midMYA# z4?<~lL?WOXvtn*zR77*5s-dl+Dq)mOG08Ejj8hXEipj@h+KD^|7^8W?bK)oU{kWn8lpc;0c1X+!n_criQVNf*nV6X%hShRC9;B>d7DlfHcV$y@bT&~O_Y&^mvl-tV5kcKwrZNc@He_|_z2Hk#5*>zi0=UNZ_iOR6DOF} zYA4d^E-f8A|Jncr+4AavgG);Z@>rk&VPf(!l*_L+)e^+UNbK6RwRe{(@ye~e3%jl; z6%~_-CKwhcVOu0P!*oCq_yv=HH!n*E3CMsIjmtDmasekYUV^nqwoWmA>wt2OSw-?C ztc5c88SVj$MRU0vEbX;Jvr$>b#;>|eyym^m2uNB6-CC)w54_g4Z};t$hf`#L&h#=1 z_Dy8Qv>$l*^(TGmG`>nDYP6y9jvi?J#BupYzq3q!V>&|6sVj_dKnH=rBefU5ut zD^6+FGP4m%jMK7x=Gsqv>RRhcGa`1;GOE?zI^f8hGPuXqK; zjHQr+&qMZkkSv}*7~6*I7p%x?S{-P_BJan@XT2n43o~KhlQpk`mX=WB@TcNG0dCD{ zr~o#LoaY2*ImVlSg#5E)sH zO#-`tw-9Uum}R)k$u;RB6sOz3ajd2lNR8`4er60+jFn;A2{MhxydTZuKrL@YBzj6$>l-5?H_&~K@U>yOry~WaUSmFGR&OZu+tz{ z_eL|cdoBsH8Y!ZCHap>Zr_s!nHppMtbFGWu0-Q|JsrXi9&?DCkw#=>q3bFcLfnlq`}UVkyNMJFe!WTwYSoZ1^nq+`EQx74^L6V)dKnuQ~A} zClrD?e&mq`h`gR?mr3I_!&Ci`*jzl$>XbT-@qB4dBXp*n>wChxdyVWb`;~f{78{>Z zgEX?0%|^wUHtl2%cUa)lPds5w+E-Y=IrbN*u3v5cfPA%gIUfK^d!hRZ7pp?y%dCGU znj`Dza)`!9xdpn4bZ(8k{aCKx z6JVq)bCipQ_$=cj&jiGFX^49&7q55O$AtwqU=oFzit%zdO&F7?iqB)U%&U1Qtxj!P#!N}!PV@>>oq=JMhhS8KsUSwn z2!J~#=4OMVyBRHNR4k7LSMW_c@+F8%q>5kIeyY$#Dc8X}7>5hk0lw5GG(fxyF@k;J zH92Ol>Xg!{YeOd>D#)E7v@wpD3Ae-R%K!(WDiTLKQ{cKxXV5hWHUjhaXoyLR3Q&(G zl(G`UW>{(rQrckUr5e)zbQ%?eePICLB8<$lBHL11bW|+OU~QzD#+Ahq&LU&%5La?N z3K@j{p`O%zea%zT!yl>1;gcAGa6bXVKvA7A1RCwNQ8yCu#k`?@7!mz}q^@c>P&ZL2 z-6Eg};%|!8aM8n2sEm-QbgLQPSpBRkVaW)-3=1jfy9}ln7BGJr*NhA)-*{P?kDL)H!v(oH}*s>gww1s_v?uo~EZS)m1~!OwTY3lL5wI945nn1Yw9s z2tg!>NDvVeT}32Fg!Mv7s!o2px(-gjL~|(%cgEA!+Q;hP-^L#EVjBUX)(z zJ_i6wiX-tX#h20@&9+Xrk+NCX(U6_C+V3J`Xd+!Da1%y_1l=_?2Ks#s-;ieMFWw|s&W|eQtc2_J8(Hr>#3C@O4_m& zMB3XeryZJXWLd(jcAxsbmR-H({)Tgb^M8+AAe#-pK;MvV5?<~JEPc&97BEssfY41%a&EeAQT%)3!Kl1 zift1b=g7S8{JtV87&G^1O`)|LM5RMF#~)S!d-nXjNSlI{L&`Wm>7%=pA&z{CG^rYC zvc<;ghg~ztMI~TItCXy#N2OwOCl|ulHrh@Zw+GLEz~6(2-!6;ROiYosFGsh?=vs}; zZd-eQHkelN#|DT(>83WD9ISCgl(emkJvGuPk`K-30T+AW6lveEeS=!F)OjG@ibSWb z((2{~Vjio_0+6=jxTqUZ8S!q#Px8v@3sKQyF|-55wXlI{eEiw`+I zrHwxy3PaL5x}Rk$AWb3)Afh8?K7b9h6y2>3ky_}ZJVNfi2Umqk zntyxGp6E6VlyLwX44i@IKjQ~#cjdm_!=mDB2eT#8#W#i+4XcZ!M@79p%%pGrOsOp?5L`)+KiDv$oh2X&9=0u~bwqK0NDsWsI3)hy3_ zaB0AVLvkMGMD*q;S(`wViUN;Qr-_ubng$R=Js6jXBy6B4Gco{6L*0Sj@kg|+J_NJ{ zfwQHYY<_8Vc}AM%CSGAIa_m50y0%(KnBUNhk>CSHD8QVQUBQfsE25r+fP)8?Nh2U?mlQIY{%sYBSj@s6Y1@! zHqngpTn5jlrZd9f8H8ENzAtz*^l0B&6Y~t4d1s0gG`wxCHG#>t_s913u6XtHV0%&y z_Um$p=z#BL{UUDLG>9MVVp)=fYga{!ql&JX#lL#;b5A_+h0lEE$|mdC_XF2G3awH<+ zLL{4HnZwn6q75Nu_Oo{o(IQ5IG9x=YxA9A8u{#XRz>PS|DqiR99`;5Vo9a$&jf!RWFBC^ zuDQXN*n_iaE}&4&U_qOhA7(*;-?6<$#n@{jNiisKW9V!ZqxG08FBn)WK6HZ#O&4PW z?V4r-2O&Z$)E*r{BZ)x-6E>zE^Yye zM+WYoKDWHo9FUp0bA`;@E%RN>ueTEBaF}s}z&&cr0pQ0yb3HH!bAO|?AR3ZI|eEt*k^Aui~zFA8AYz(ykSmwZnkf)QLV@{BsGh+g@d!}gyj~4^2 zQga^Wqzp$EKrF!kXakA*@aW! z?zHN*uo&D_2SuhVy2=6cg@fedQu!DvFNnD<<^4Af{Lhn6sEXW&^ZC&yA31n9mn$ud{`|fReC(3L0t$7~v-|$DPnv6D z9`fQNU`qZ9NGsdez2Z1%d7yjg%gQnSiV+e$(=S`qfBASEY>g!(vd@1$EN94>#6I}n zzpxr&R+%ZvQ#*Wgy~Lx?YGp$^OUu=Z_wB0AO!=kmzDur|*;-$p52s6hX=XLtOji5O zzM1*W@JwarqIcCMRtr^ks$AT;dZ@O%oGP|vi|3r>p3SW3#un%H?OZC(whO6BIlWxH z1Qr{fi)u?7`??q9b}m*gTrhH1EyATSwPSH@-&Q3x*aAL1mWiFc_x95pefa`p5G3ni zqti*|8UcnLX@4@PG-tBKdLfQ>o;$iIeW=%%#WOc9$DGM&+y$52CTiSM0k-S77{u`G4g$0PFlQCl28sW0Z3Lm!{G2xQi4Cw|e&7R9=>3`O37m4~Bu-2>O4XJ00kd;55g zKy<@v5r1VL`jUDH_Bq;Iy1`@3x)$s{G6F!@XhnEDVD6Q4k9lN`?k%~T3zijq6FMKK z=Pas@m&;_^b)1@&%Jo7KCT$)IcMxW3bD3;9m(T2UF1_va{M^GwmhP_<3$1Duyvkx7 zP*offCCuZ$_1c){#m*VviwQ0gox>8 z1*xJvHGp|X5tTT@3M4{yEh@KaN(2h6nTTk31deJjBL zj@fpxEJ~tNYDhk`E9|f(6H%)+Z7E~w+lvIfz}&z`?u5Or;-F0pM~%8ib=`m+2Wydh zZQfDhxHMKlR1GU_UayGZ=XXRR)2^`J>5ibOkbRHFP+2gqmB`7KmYIYZC91PcR@2MS zP$Lj0+hX@AAj#7f&gW1PaKcg|6V~go7TqnjRIpoN`X7@69lMYQxPdtW2o3Zq#ZAFi zV9;r0@gxaYpY}!I2%_$w-6ccWTEdWBIb@JhG*NMHGV~vz7PT8oKvx290;5N+FPU|S z0`8*YHZnN+!eR>M0-|HNeZV~`qH+OQP-7LC$!q|2 z9^}THp9QW?FUk_hqDDKrioVzEWXdH>;Zi#aY2el1q5+S`Yd{PIKP?R4z0t^cQKc=Z zj%J-SLT3_U&kLPGhoC0RNWw8p=8(sudxBaD8{KL?Q%tKQC>E4ru_E?e%yd}$(Kv-H z<&~9Qkr^rvuTq<5;VF_eD)3B|XqP4mkm{CX&(N`OkE_I{iXN^@sfu2KbYB=sa)mZi z&Z9mUX4)-(w%!nyB5&0;bPQLD@CzVc^~z%2bV=MMKGcB4#Kf}rqO>~)YC(P?)hRSC zV|gw{rM{fQenTxxW}80YhQ*CB?;2YZ4(LtbsJjZ0z|bE;Cn|TR3ZAm9{F3y5c(MBC}3)prJaR zO_+ls@}#=n=`y{DfMO6cEjqL1*^S+QI{G{3v+=ohyEL6~i^0^w+FEBG3O_eLzv{&6 z%c*>#R=Hr1An&zN&0O-#N6amwx5(X%DFv;;g{{UER;ID(x#3`C$7FrkX-&?aXiRy_ zy|Tmo@hb)>n-*07S^47q6Lk7NC`4f?Rc^TGm~-_Heqg?E(Xksw z=j!JNPFi#rs3~JThB!DXHE>%NCYI5$+_ZQICnv7Nrsn#Io3N^R9hMLeO#J(aCqY5` zDi$?=JMrC#AEGJXqAO4Y8v&SHECJVXVZYxw-$4b*skX6sv3voJXbZ5|s8oFH;zIcS@jV4sfjg{7KoW&z$`D5=gRlnd z7BcAe=A-9YqR=#?)X{@@Rh2=``D5j>*iXce^938OPYUxv}IxeR6$=%&B*d2!7WKw`-;0CXQa8DIJj_R@r{+6H69sPrg ziFW4br|&s*@Y9D59a=!)6U;QiGriqt<1d7xYwgz5)Zu-2-ZOt@vDM50jb%14&wLui zV1r&m!i)}Halt>;;E4ogC1{`_n+R}+SYQL5dII&(3Z4?sFs_V#$gFu>vVmtlEuOOG zgvT(xsMKo@V<7E5^A+vhjG1He#xwVsr(u|YAo6`_1!qQmbX8Ebc0K`83EQyIT^MqE zIp{jRo8(d-H&i@#Ga3$7`{x++tYC>B#7C?q9Hy=XEHF!8 z12^V1OF?zZ`j$n=7mx{+L^T5A?F?&0>7Gv?I``ajuYB>j`piw}k#~5nJ5#iE}4jiGJ-nCmyx9mv-1jHXa(ragcKCG_!3>2Th|p(K7_4 zjERzdp?kP%Rfi<@7d;Evs;EdvMUg>5p-u;>CK6I3Nz4@H3U~xcL&DhgkPSo>ZYV*n zvqA~hBm}kjaI0G87FrGr5~X!jn!UF3kOzcVtT4LHb6&rF>Y|d0?|SDUtOpBu9(f$_ zHkJQfmoumEAL6(Nw$WZQ#}dv~TvD&UMuGJu&XqZqL*}MJg^l=rq%*86_R(KUUc)KN zh?huz0Z~cjQO>jJUpE7sE(hMH=~-@&_>_Cc_#`?UF*q6FZXpxkuw3V-?VZ!+&rqa= zfJp4Uh2iL~@%qeyhIC;Kri6D5hLNdj-WYhJufs#km_;5n8U87=s9qeMHZ>x)aWCHw zHq8?H((JEka*><1?V-H~k+c{h)ZUVS87dS3xd?Mw7zJl$I$Ao4z;wuj$dU*7su>We zztxY{3yn4oqG6xkINJ-|u(oWVf0&OY~gKL)$O6iQ7O=a`Rc%hW?&dPRsfgjJ; zbHEstY85!05J4`mk3lV@g~8!yAFD-NA%<*W024E}f}VRtlMxNfl*XilcM`JG8M6PF-@zCBMGp#4g!+%JOzj zk=|`s;9LUY;SYn)xyIMqvfDtt2w|*5U+{ty z-1A9LVTGD+zj|&CK^emkz)g$SXjAp55on!C*bLguIlMrmSW8UiihA=lrf(RXa0}*e zok$zinA%u%3PCf|YKvcVLtofGYv z-_O;~+j?~|1V)odxzq-*8OFrwb97D$FJT>!hxbgJgJ$##(2c$nJj<70r+y1m&Ruw0 zeG7EXuQ2z0XyT(2ADj4%iQk;~ztNojthFZo^2DD{{N=>oO#D5Pn;(G*6+rnkoq0H$ zs~{olbIx@xintykcDl?)o=@w-FHde0$k)0p1`V{j>umyhPJ0Y zf3=M>Evk&eDC(j9gg{Iw4{hY0zhN)_#VsjP4$=2ov$c!PNgG+wM(44A`q=5yKYHx+ zAKiLl!A*rLTMWxYz2aVRXyL@|wOSz;xD9j^TNppO%LhkaI{MsCG6U)ZC zjy}m0ki&Q08wn9@0el>~@_!@$6FCId6Sw zF10+9+Vaym_kcf{JnJ0ifYX^fu$td-0-NI1wX@BM5`rX=ITp|PtN25Gik-?ste#c; zz@WcflE_p&6;X=LAUReo=mtHt!pLhl8l$29`JFZ^D0o>$n*5)M>=Cb6F?DV`ITF_O z4V-?AxybziARUAS#tQX09VF?L-k2o4&n?NswG%n3>DmzWN3QW#rzCSu8&yPEBimJ2 zV%@JBiG?oNCw)1CPSH;goQ;CTA1G^J3-~7Ux>A8g+|jC9P94J*|sp-$VvRg^QM{FKvh1!}7U8KT14uPouBdX6ujdjd#@ziL}RWXm|boTly< zG>Wtu^&0dt>>JR*z6B{Eu0|}70FT`sIjX{G$N+{i` zp0()|iybzKQ^3m>vJg$33(_urS!hoGybGWUhmHnFOp=y}MbCc?TPzMXckEk;Lk*(BkT!YJ4s3f+ zGl8#(F&mpXeSpdKaNJBl$El*}&92BvhPBcCwk9#@kK43hL1HdOItog$e&iMqm$R7* zDscaEbr_8T9@EECgMu-mo>Wb>Lw1r16S)SMWC?88(1~ZCy8ywIf~(oWin5legLe*F z&#h(L8gWs*$1tFYc_t>_fD(7RtN@}XYl#M1?9isHJYcd?ImmkZAxvT}kn&FUk0Uxga7yN#5Lp6Q&orgyFqgp#pDjIGN^^9|zB030_iZ_-37*gx zc}Dg-`ad7~`VH)N_e@Mo$u_eD%M9FZJ4HxGNWv=2G-bfX+`_~cJ*i^exyvasMQJ7- zeC*?R&%OB*Z_G7YK=OHs#}OPSE_c0ew_B;DS}U^?+-r4(_-EOs(`sX4FSZ2r1 zU4Q%K*IjwlD<|fj{pX1p%KsZ!5Ff`z{}y<353yhWy@@}Z_=}0}I}=Xmbf8NQI4^Xr z0MzGB=U(UEIv;f&cm7}JZ=I)1-b|aFxNbOZUTkhLZvfj^dJj~V6-fuaGL*H;qLv_i z$1``=HpCvML*+N5Ki%u1IkX-%99FVcVx`;ujKSP?EHNT7Q~I<8RzOz(#+OArSKC4k zD?b(h9pNR~C5VX@t%07(vr4}zP(Vp-0JksG~hdygeyD1C>X@2wKVCcvfI1d;)SOS`&TLt}rH zf<`hrLhCE1CZrWz@c8+%DJ3geVv!mrrxMr@EJa#J*;;ROCF~pD9&{*0m-h0s?7_j* zm*T4JHwL~m+_jsxp|>rSZMj)W6*P?U=W4rIQ1MW5qAU1S>7fUZ4{lH$1Yfo=dUZC{ z?WVEMly~$}?82-9S={4sd&stnuCT5(SQ=r`AgXXpBykR~rI1=b8Am;aEsM~hoB4>9FBLlr+(&X@-3LIPHEtE2&aK>yEtnrY!2|vd@;4XQhz>r;GrO7?Ab|=4nX4tSnhs2? zGLM$`iE~m}uQ~TE2ZL=iw05LoVKo;fn}SslYGKMh=}z_7_{O*PAP6jmtYDe5sCY7! zuU!l01eQlE9$@&NY~aCT7mSq{0<`Kv7DMbpJI@X#jTEiZcnA;N=(8kZlQDA$ska+P zV2^wzT!6F6!s|Cs3r8W2tgKSWuosiGHFmxP4*a$pm%i2Cf*(-W2ITt)56@(#-?7FbBc3I zyf~y@e-Y25vDchK4HfR3WInvn?9O6OBFT8*T?Xnw@dYqQo3siq?4`*#W}Gpcwuk6^ z&aO9$ez76kD)_ATQEpS8&8@-#Id2xWXvI91K%t_|vJ|vya|yUcT{o;J!XUA7Oiva@InmB0bO7{G>Nd%b>~>i5Wca3!Lc4M=DHIxmB0|0#{geahnWHL0HhOV2Z(^A#qZ3 z=PJ-Gtu~jT^cF?LEVy&R#jUVT+w~gHEYwTP9adTNdt7gc+Cq1*1;pTxgt-DhmHGld zE7m;&C#dAy#W~7>J6{MO>Xh<$>Y^-_3Lu>rMN}67Ds(To&9x~p>#$rd%LQ}=ZApj( z0mH(-SJk-hE#^$3xj z5X`M~bC5CcreslRyslItsXh?EMs*J%ziN;+5G_rJ1azyY0&Op%sNHUu!kmZ;qSte( z3t2<@VIMEkT@`{irxNjw7+%0)XexjAtmoUCg>#$eqS^GQ}&;>5#!h10~suB|D=v(CGA zi^xuJsCAe5-ZF5x7BvGKrrq;;<#vzxJ;us_ZVh4jaFN#KLj{6BYYnOu9q0RdH$QmG zQlq|i^CSpV{gaz}8}%PU}X&t9vAP~y!oV=I_s?A#e4QnP3_%t@o;(B zsqH*JojL!1?d*4L# zjMaPeKu1Vxuv?Ft2s}H z+1!1#(f8mRZjByC+cj4^b@KGJhYlauIzpKO{zG(uK1ILSIdOn@dJ1m^H%+{D;`I}6 zp7?hYe>d?x=(-G6**l$Ggq5DEUwjUVOJ$y~%IJ@3h-_N5$lFEju|27kqZr6T>8PlF zU~NMaltsIUmfmUYzMv>6cYj@}xxTL{)4;-2ed`I~-jHMyy zEtr{#(0~V_gt533!P4u}cZh1A>#+hL__3OH;`3R_g2D;Jh5n@;TgAsCHLB6CIcbAj%uiq9n$uXf@{3yqE_!eFf{cq)+!nYFHRQy{hC;cr1WwCFiQr}`kGrFZ;k=7#18XBKO55>%|8oHZE z4xCsSsFyW%k^$Rl4;{Y54?lUrd1CZ9+ic$=4IM zo3xdgZs3}M6U?M2nI8frG#!wOps0f?gfvaqp?;*5^V^Bs?C3?Aic`(z@DEkXcCy*d zM<6ap0lIk3W@K(9no#}pVLiTW4?R@jS1iC zN}y-QRw3RiI>TzwnUBqy(>MP~>(S8%4>*l``XewCJ~sM_x%!i@-+1Eqg0o|k{POJR zt9VHt{Vl`J?j4Vj-dz*>8KsQF2#$o^3qvKEZbRl^rr#c25#rg-zE&$Envr3%KYxNe z@!EbjU@cBGyTRUOce&Zxx@;@htTgM3sY77&w$Qspk$<6f*wpKD*x|Q>Wph`zkB{*q z_2ouwrPgX)wzaj~Y7ByUt(o#*h6CwKtTrH4b0DxE3>HBCRoN5#e-BWbKZPT+;#`8$ zlwWf0a2|3VX63M>j**9g8=_Z@(jnticcH|E)TU8cVT;9FB0W6Wxx%Bz${F*E0S2fd z*rRc--wsoShak~ke4dXd{9Yb0PT{r^A_@)T4z)bAJM1;q*PLOEYFUuLMnqFcen*dfY4397-AIl$mxnoS#Y-%f&K-NP`Y$TcV`F z2dT?wXP|I|P61I#qaPMI-hmlN`tVGnfq^AEQ2cQvnMACX6_l5}5F4C&igd{#b|ZXz zCiK%O^swOAP2zlxNeIma4LqG_bg~VrPsWq!R9Ku&*P{R`gXS_7Bvp>14`=VQ!*SME zrUEqT;>iM<51KDX3GDUy*wWKDV8%dGqL3jqE_~S|r-`rIS|X!|r2`Zo^N8=8ETxPi z2~f>qxx(u*7-N#37>*tw??sBql`QSVanwhu4ny)}CXA<{bya-LAaU$g(C9F4GtL<< zA#ow!s3f0i)%jCR!%;4(@c08cXWNwO+h=0X@QT(b}!=g1lVd!w`43ir=_K0MJ4ufg=_w&0p>WpvB#;5}i$Wc--E4U=|njU%X?9f+A8Cpa~~(Aw}c@YQ_x3m-Mu^LcIQjG_Y?|ey2bLsn|fE@ zQVxryQswGWiPtQ|zi0owIUSpZs!p+^iIDuyW?eiVOMpwT1$Z$y@GqqmUxrPtZxuZvQDXCV9u-aWsw1Am<<7+&5ix4KO8(GR!1vVw>mIgbHH zryIwE5Qc>I7X1r%re%6o9Pu^lll2Kli2tLbeT(+xgw;-;C9z}igRot4-oCl?xy8}9 z@5^OApZTBPFC<3aNIm^$j0xl5Klh8M*ty?9`5@JI6HAE&bLV4)+`YzWyw`nGYIMQE zqPh2ugnOfL_TF{p=yNxi>z%!Ka&rCu(eX}w%w6VA_fD{6IEhWq%&etL#cV#GZ)-mA zW0DG|Qu$6XQ%a?SLN=evcgk^uE`V+om?>j3rPvNB+ZLP6QnT4CPft&W`k$GZ(RGO< z`_|PV{2Y5E1Rp8mY0)GN~0_uu59a?W&A2SOw1T zaKNgohr1vNbQUe`Y#U}IwUZvb?rij(YxDV3fBvExQ_%5v>HNjk3}E9yC$nLt|X}4!H)6-R^;nz61>B}p3-0_RA z2!AT$<+HPm3lCuK5_i_u!;6*{{zIt|w1P@CmMu)?OLN5_>sPCpY4l?7#8_%Hs+C;4 zR-LO<<3QBb5`{(WC!hUi+ThEa$rhMqajGT1mt=|XtHoY%=ocX~Klv_Gf8FTY&iyxz zZYu#BOVXi-49EOllDy^I^ci!JSgT?Ukd_I==10~n(g7il&=+KV=_ zV(1!(Bz|Qg%sG27s1Q*n%*0k=&2El!{xN2NApqmpI(D^X8uXN)rtI;r)W=X?6`Pvv zTN_J4wtF^BP*cD_VQYz;6+{>?a#jTsB(#0iX1LGAE0$dty8RwJ<#E60LDJD3_G2gw zb%*qu4QLsQL*Vme@+>|@2Z9OZUQ9Ez`=!_wF*Ilz;whOSWnpQN1h?0g+@b@J7-%tF z@Q-lr08O~s0U1Y6be}?$dpH6RU=FIxlvb6X*ue9vaUlE#6lSfg79lr#4=Q-r2fopM zH}E31zS>8@nA=K#e$Bo&MnoHXxC!lNDL{$|#cc`g^%*?9S_7R8xHz)YR9llRzlvu! z$jWekY!%HiF7+5gs)2K5Dhcu)h?82`lNNIXfKG3>B(IX5BZy@Qhm6!TWj`E6%Agd> zCHG`8!EV!G>xvBqWCDpm9BKbaR0sgJV}1<3tvn?YqFWLtqIZ;HzLn3%y>zDKCenja zWhS-j>RMwH4wD`#Q}%bHBCPpc@d)VVptBtw6x?o{BRN_OG>I~pEBAC z+R`Gs;1;E)j1YRn=AQ{)21A5*o&3stcVS_5b*Vdd;qEYZ*5Hz9gtqHUiz=Wk4@ZO|WxAvO!;%HBjRBfV?mtRJC_dTG#$@mzBTwuwy#maLNGYj-0KigaPA$Yg48 zCH%sbl~ToVt8mBT+ns}#XB*rWg*32Pi4w9^ge>Pu8QZ(hH>)xsqOG)OSan&taunAl zz>kU)6-!MMbulG~d_zIFhXiAsw#qy{<)~4n#Ky5X5{)Tac={7pvL4*XSstIUGsu|t ziWZ({KB$)cPHcRPBW~86?PHZ|wz5L5laiTNLvsD%p;%M8h#Rz`3%|dY%khPu+?Nc;>bXVZ5+l3%NJPOdXvo;&~adJ&f z^j&c>2^~d*-)r5zMx`1e@~@(t1$j!5l#NO;PG*^<>c`4tnU;zjRZhi*dBgt535(0c zxiF29PY$1}I0E!?S+olRKU*vuKA81PJzmch@%E6*;esBeyi~h1yr#MCRz%s6K?7MT>pi}^kIva*4v3qsw z$*_^idY_2bDyz#uao4Uj4%zAEuIZIzwop8B7*9NfZejEt_LLcH^J+-jh*Cq*DM-M% zo0|i#+4*f!L#kOLKqfJoFJom8CvEJ@(8zG!T3Zb@M^ysQbdTbex}Huak}Gu`yw+pT za-N^brqV9p(+r${iv^;eC>GluUaJ9ue4i-~Je^;`L@@5k_f)SjKK zH`~REn+4S=muuk}8}Hcpcsm$oSJsM^ZZcV^(ei0jYW!@W>Er${m&>AIW9r4t;jn_9 ze7m%SYr1T&0 zy6t41`T&$>eBvm(waeM%rk#0Qu1CZq-B+|zwL26QRk7-V>e6;|&K2VVYRQhzK2%XO zP&Eb_nXBB8gu(Lf`Wvy?s^9z0mnzOp-@!;ot`ZTiX6lz8s^iWgRXNf~ENwPxm!me7 zY6h*^(Qxs|74lYwc8_-Otb5wVqi&x{R6;ao_oDm5B4fVpEF|9bF7tuWLFeRk*Nq-^ z&W+*KbiO~g^P0?Nf7e{@WFgxCP%vM9;pF6GDONw^`^ke{Mnf*QYgZ*HeKN$=MV#ia zSeLM2a?DQ$aH++TipNHOwQ>5i+UnV-C(c1O^H#hNyaidzZ%zERb~}0*RyqQckT$Z? zG7-;0w`lua@iCCmFb5zn>Ma||Gq$HGO;FokIFpgDUA0}*etIMc3=xSBA&mN`ZE&W% z4W-B~^f|&)f#tv&C3Cb@ZL)-bAWyLk4d)2k$t^H;v*;I;C9z!I2Bm;H2dX(^55SYAW?=G4@(&jQ(5D0%R$ ziZ~9Q%%qE%A}eS%-Jb+CVxbVv#Y32PkXq#rJ*e*4s{Y};))iIGK3*4={0J6L9^paTrJCi3tP| z-^RRlp1o?MT1|)M*3hSpjE$b(WjVFI6$XL7OIuBlu$Ii|E2BTT$HCbw@53vM{^X1V zNOT6&>vGHp=ysxbi1Go|D^wC*1vYXfXf|^hYHY4ML;PEAah4X(m}5dS${auQQK{t3 znE_}fBqi{sE-BP9sQ@*DrdJ5?XVNNU@Y*Z!h^61oP_G-tKI1zROW=Hit}^9N=ng(O zhKP?iR)^JD>?pX^!F@*+QqHf&1>A4L%nrekW;<8H0D>ny|99>`xX^7Eb}yWIpuKP` z2yR$7hJ*NH-9mf!@i#tjsJozNqaSXE`uyk{(ZgfQ545|-3WRsgJUemdQ1i^8_m4IY zp-Xu93mndT)QN5$89#hJk-80cCA*}zC)+-Yr)Fca@*~;IZ|-)qwk{!<&SYxhKMsGgj<23QSpHmM+aQM|ofT9wF65<8|3s+GY&j40iYfrcj_uxj7cVB5 zI944Nybc3cyLre!;xJ;zL|~Dr(FsV{wABJXa=&zIJ3a}LoSVy zwdClTGCG>Ea(VRZ_mC@;kO=!VnEz~L{EUfCylnl;Kk!{l+Klsy$PhBL0VYsr*F#*9 zUdsDSypkM!IaP7r9*@60Rd;q)v%iAVt?th=vw|I!^_>;gJ6UUu59X0;k@(;gDe4pW zY%`x_^~e1kczF!o_=aCbFOn*1EROyJ)Vq(r_$5bPbd`Dh(b4-Kebl-9OW)bNvA^`4 z-8T-@ui*df!N%|*{B!Li4Y82uI@PUh=n^jYZZQ8DSXMlt-Sk~Yc5GX)tLNpevn~-= zi;gqAZpXsGd_HFI)ioUMdqL;enMO8y^sdd@Zml&Mv#rMT{90oQ?V62S2ZPx;^Ptmi z&VU78C>~hewYqxk!V=P}-#+^nrf<6QyhGO?{_tDhbXIdlY>5LK&UurE&O1=Y!R~Bp zmqU3i4HU_S_n<-ZO4jyIQ41!eNc|E{8VVLFA?_L28qiso!!=FoD>OPPvELh1JE$E{ zxpIubAQcF(=7%U*FogU8!$XsKl_11YWW~}(V#w@|a1TAgPIq5SGGVkblpUKw;j47z zMh2H+q|9)`l*}d-H6WZJQgL2#fHz(Dg2UBf&P}%qwbVkoyVczfc*yD`?u4^m-NzdR zc#X+HtGF}RJ+r>(EcmZ{^|6|^&858_Oq+Wiy0B$3KQEl8c~sn3l)d-9y%n&OB1fY` zq9*9Z{`v!q1NwyR5Y9(8$-St%;Pa4|p!>@q8z+&A@B1ap2 zX1e|YR3d6(c$kjsysVJAurPxq7&{#8@KZ@sWZ1xHund;si<}@ndJ=UH{9~79-gkRE zmWwC*usJ;Qw)9f^#oFQH8PWU^z!DTA??2++Tx=JKP3HbrC9Si4<6OqaTUg&VnKQ0N z8)u?4(7UwuKYE*@`y^<#FSr5mv(@S4*CSB-GPm4uEJ7$h{(q5%0 z&Q3mraL&PB#~x)x!t?;-S_yZ$P0;9RK=Td(+zAw^4=$6C3oe(K{zbUaw1X52gP(YtaKivh}r4gD>IpRwq9;$ zf;0}ps@hgq9km{9_mSsxE?Q8|3#_Coj4!Q*{NuM-M@#X{I2+ZXMh9?0)>alS2x2gQ zg8&=O(zR!^EH{N{1r*~rxaO0`10(y4W9yO=0U%K51uU|5Em=E^{ zyX%9!yEixcyK9@9gB73+-0%L*;^?=!&o5JIxiGk49@HB8yz7ph40FX|rs~{L8oj>o z_k+RT7yiqCnV2~E>_3k2+@?U`cnO+cw_%g|di?jiXW}Ey-Od}FH#={2-iEfuI~ikh zX2C3(71K8u{+UzE!B?0w<{ERIxxw6oPXBGR#a-qe^CokjdBD8gyu&TDOc ztP<^0=-p9I_ctROe;REXkbWNx5v%dxud;hV8AKxn*1A~RHl+dJgkZ0Ow?P&to%0=5 z<>YL?;UMc&uKDjlafvmf;iJsp+e_ukqfpXB=|P3{hLDk~p3XXD{Y1SBbTLk_q^tTX zUYW#tTyGz%tGZFaiGXM~o74EnjnH6%%8-&bSV=hsw-B)r3(%3>!;Yd_?ZIm6@_9o9$LwQ3zew2P*AqU%^zTRld_tg=$)7;K)`>6Z2 zdK}m3j7-I1-EBEt+?w(*>SFWsDe*jpgM5rOQ(NeF$j+Waf2~ZTcdJZLyH0Lx_14yw z5AC_|g25Y`g_23N&TBLmhs9*jnB2Gfz*II9E}nncHCOCiS_-pax^m)9n9nr}|m?M4weP`Zi%0=}40UgQ0w1yAjWW%CU2*I}~XVPT^0CAH9 zwFze~VF=sM!IYoH6P;n!fh0C^s2_%wubp%=VOc7DK%Q7RMZ8=_yN<;LSt6;0l1Z>2 ziwZ}H2E{>o8$zLUEMG1MP7o%2EH;F6#jmWyoETBkXm#b$(9Bb^e25q+A1k1ffUN=! zS<2<|S>w&DoWuX?_&*TBhCxVCE=v>>_t0}7Qzx*6$B5ENmdmjqNlmB+>h5`! z4f$6Y3WBm0%3uM2WmV2P8R{AX0xBJrX^;>&6|4(F2yzG-a;JExgongVVJjUzL^&QK zv;7<&w&e)JYfIi9Xd!mprFizjoR5E1+*O$^uk-*RRqD@1r4L6xqB>L|{0BYYeDu`+ zmk?!VieNuEvQyuFw38ExSEg9u>&MM?7U#-Gc`lFd-5c|f5eZJjcQd2Et%B#4Ojq#z znV5K%E`!o5N?@Sj=CLSD|4K3wn+FDR2+f28C=6RSlIFp=?$)uBmmfXcZZ?j*>FA+E z?f8lySlOEwme#K9U*A2kfTzdHE+50< z5L$4lyR~>2D4QC-N8#+%(E4h+EopwOSR)5a1QK8af%ZCwcD2xda8irO3TBL`)+aFK zXDbu3V+W}N{-4JS2V=)V5rs1RgKmSU!TN#=5K?%(q|LRI{iBYmE6gV$b7AWMPJup{ z&ShjkWI!)qv%qfzri9d$0}P-PwjJ;YU_QuglTt;upU8SnTq0xyhGhR$Ab9!&wlPQu zWla8l?4M4?M^Zb^h)*Uu;#`zoEFYuKALyV;Fw{K?VspSKf_hU7RY~JZS%;Kf0aP^E zQH-P5L%?l5KUM;jCKr4X4ibi%OG|=PN~As+V8QY)0!0P2k?oK9SI>WP_ijbD8-&ID5U5LQHS7{cOkS9!9Bx}n{(&rJn*Bi!U(bQphwjzu=ud9 zkdFVQ;IkL3jl>W?t1p6n|AmQHO}rYtqhCcDCz?izxZ+hoO87CTi)r@OvaQ$NzKfvF zYX6jFjxU8?F-f5Pt*1~hbbDe=fl6~ z+;Z{7j=A`SulSqAO68h*3Af&*Fq8SIgpY$~z)o|gvKcI-l0f2kDEm!;fLcsqK#qB~ zXUa}Fd2!G}a^$&%bLU=_ELQ5wD=Zet48TZvX6`(ZHg{GkdoMkGo4M`OrRMbM+iri% zm?P%oiJP5Y{II$Bdc0?LB}TuNe=m(2z7|W#Ql!yl(DKV{uW7@07kO;s z+aIg$UE&^Ka{R92))(JKHl2;_qD04WrKl2Jjgl#N*;#SjqYac6TZo)A%(0k~MHax& z7;iHNarTX7t4IINV<~7r4qU1&ZH9%4@L=`-d z2s3EjT5Bq%QIeK18&8;X^dSh5h{<#eG`(B}TN5qa*9n&%3hM_Lw~EF+OrKi}S5me& zNFgD6?p%Sn6gE5o*_Eaew+iUPz}hmgnv=&xEQaYM4=y^yK`vQu0ZEz3Io~UnTcbmG z&lB|ln{Q6OL?CpScc7}2vr^c1)n;^vs4&gcrKb_ zkS$sZprp_ahT6(YDS`-!MU!AjiZm8DI4&wlv5YA;D{2~5>4N8*546ga(WL@b0GEnc zq@jRlZa6RTL4A->XbfkyusLubBZ&te<5uft;tFKz|IWO~bl51Zft`4cbHq97-0D1t zo%a9be8u@QXJjT#&#an__^0BJ$DfEl8UOwGAH=`lO=4vKGVdnu72d7htGwI1U-EAE zUX4@j*LZh&ul4TsUgy2uyT|)C-kZEPd-r;8@$U29>fP`CviE@ZcJCqYo!+l`@Acm2 zeaQQ;_Yv>6y-#_+>-{J1N$=a3`n;1OE$fL}u6Ed!Ru!fSZN8<8U}0n063oR)b3f;|hH=i<^R| ztKaoe4wKRq`oKL#i@LcFXO)rHW|rhGIspttJajSYV3~0p;g2!rYUJ4Q-RpPS79fQ= z0;7D0dQU@BPO~+(P}lGEH8{x^s$S9b+vTK9>Oywp7OMcmS|d`ZCX@u_Fa;!cPyD_i z;~l|f7gKS0VWV_*rqFPuoc1BpxNeR|GIBXi)fOmzRom4v4Fd*c$WnndH`-iSRcRUV zx^^|82+^_YBhrmy`2ZWyYg0<*fC@7Jt=YG;1etAgtCfvGx7{H}QV!uEvMRBFtN}`+ z3yR@`U(#l^8Lnerr7+y>!h+>)yv*cSZTo#J651Q~k=R#dN~$8GfUVGdTC*?Xiptu6 z&1g9kFBI2olyq8_9|Ac=O@mS^H$9Y9SX(=DO{*kLbNW=P41@qH8ryp~TS9|U62mng zdl_LwYpyG^6Y$$?A0X9vh82XJx;?_K54kstrcpqxx>CBRGP5IIMvgup)R~p4hrmrT2#uOW^?-#h*9;Ib=3Ui>aL^kzzo99!+oe` zY#4Y-h>oIPI&8b@$-yaRB_y;)zbQ*unGTM+rE+5S4%Hfcf)D$u=!PomNg$4YMruJ? zx&`YGSB6N|3BA!>r~P_rLz|XTRK+MXKsglaaFil+HlKqb4fz8uidy-DkP)O3)@vpRg^$ zn4smTB8#zJ*RX=FrOF(QXLE6WPHr@b!CLkd)l zjG;Je59EiCw1MBvMf8K(0Aj}8ufQEcD9+z$QjKxjkCHj0=-KAav_H zjr8$5v&me089&zG5vY+Af3($);1(v-bE zUZ(6TvIVieCP~jqhR8vKM?H~SjBq+VoKhTM>P4szEaQHXD$s50;O*1kaMUXC&Ti)q zGcqzw#gYgcp;IKC5e7LI0s@yzMx+ZsxgylSv67yt_2vhHHjd8p9E~h|`H8SX5+l7* zeSO@Wi*p2&d0J*$BxC={4ILZkE;5Y+*QEQFI5O;9D1_KOlm@~Hz+SmaqFf3=HuAz? zKQe5yB^y7=WMO+*b2RjI#mG{zD5XzMlI%bMN^6J*5^s>@XE7P$YB%bmppZ_h>X3(x z=(0UMdPN2w7&bfN+hU9Q!!AwW?wpaz3m_DMoZ^gsRM9y7CTGA>aX&-DjlLLn9w8fw zpeRs>G%pll{8D5Xi6G&A8OUG4p=Otg#X(L-Knrh8HFIM(QE@!3*%twYD%W;YiMDjk zF2Sa%8B^xYUS(p-nLbg{(Yc;NKa(R(stbFqXR-?87M10Ri;|VV_-zpTUgVon zE)3L&WJ#*JjRrc|17>2|R?Wn|m7b#KDiC2R>@OA6mO^o%`JuM(n2Z)BrKa6)Qxq)OPdNQMBMa|`80B_(f^vfQ&N@_?R2 z?X0^)8;`)UA5^WBv>kgWdaIS#dGVCY#{s44uRuZpq3wyJu0s1OZw$GGCTud=Bk7|A z0N%&6(xy#dgU(bE>nTAUE($WPlFFcs5P_peTq-g((}{*BYzUI|0IK4S^sQeW z>~pTX$fjzm5Dh%V$1Xu*mOhAn9xa7jnv!yxv1mKbIB#!skMlM)n)0P~(fd&qZFwrT z0BS`#m3oMc27X-RC;*H+0{pRa_^|WaqpJo_+`kcf@rx8?=O6#EGy2-$^9cT>(Q36u zuZ}yP$if!vSX*o)!R@gQ6SD9rU4x16@=yRLUp#$D+PDQ zC53Gy1T5oS6^ub5DP zms2x}U-S^j+fp!JXaU0FS1vlF3V`A=DQh4xz0vPAL~z$(3$C;&ekzU}g!xXAeWB7T zC+;gpiWBo0(r(cQ@5v4$fCBV-;^4yI5>%s}f5|BrJ;Y8Bp2m;;N4$`H#x)=MRaz_d z8%mH-hi7(APGSbkL<1FJ8WnTlxl2b*6zoP+gmBN%ywP7qI3xN+)Maf4KEhZj7KTrc+ zqi(_xmURy6xQD2jmMFMbiI-`9*nsp%oQ%4eEQ*;avjMxGH$VpfdQo+>lL$u!Xo44@ z2}$-Yv;vS6QD?EegnH7WsGIV&wWjuV0@9_Li)5KU&>+$41J9u<6BY)XAY$n$5Z^ff z>=jUL7QsKrGnUGtFRQQaN0S$S;D$v44T5Wg9}J0e1wUOso*|&>2g^v-4bfRxFRzP+Wd+=xPj;4B#J8 z*P~I0z^h89^@Lbg{f&rjqlgxr~ zEY^V5gjY#lC$5}=YbbEW2w^p*VPG~g{Ojmb*~yL!sVC5}yiiI_dbnMp`{c0P!}A66 zt>C>d$-wrCiZVV`b5hr+R9sT$j%Z$uYB1LMCl+2JP_bte(hzz>`Y>OJY*#3yq9T$l zZxNt^x=CU|QKXTeT3HTq@q`?JqWJ~MO1pwefO`wYk?5I50`>*sf{GS+i?j|MK;4i> z7$egoa?v{hw1KvZmFz;mWWm@V3;I7L0CX4DF$54Lf}oYEr5M+!C=o`43i{AwM+c?h z4Q{7sL&!v^l~{-V)I?Fc=1@osqvB$tPZl zeB$S@Y5$J^Q!H@}=MBwKyZM@CgK4o*B9$5WnGt(M8?_eN)>b8PS zcc|o0aWrG(dtWy z*_)2jX|shFf6Q*2ZL#)XLItEfyLQW!aQ>%c0%&C;NZ=KL=SB|&nhln}F5N&FY4R7q zOd&x7om*r-Z^z>9q9}C>QMh1!lYa|BNiv}`dZlJ@(DRUXNOr-;nuka(p*@8JBq{gn zVYqv)Ne_-b>bs_ZC6I_)yV@g-z~v05TmyZ#(rl<`tyFG#Z)3?Oo0=0$Nqtd?xCtvTRbm^at=a;+KK{JnP-o`vkW0zTo?i`EZy_65Lpkiw0Lsp!5gp%-~f6s1Jxq0Hq79Act?PiHRo|3n}oFrqKOepEv*xtuW}`h-~!( z6Cas)Y~m9WzccooAg@t>hQ;9jAgjDna)7OpmhGDS3NR=(*4uFJrVZxTs}>ey4XluL z@yvPJ?jaAwB7GoZ8@g48XCapxz42qQ+Mv?_6 zf`<2^D_Fchh_8mIb?NCUk2&+<+mQF5hg2DWDA+ecI9U1)_Zh!a1>1tEnrP)znn44Q%Of1daur#-@Ft?OAoB+PrOEi#VMMryif!7Qx zO_OM^6bid5_5)3X0>aAHmNQV&=3267E-ZNM!@BJ1mTBLapbU7^>jKu;wfDfsMiUjo zD-O99VGkeHWm^SgyvnPHP0ogUAS_&#I73oAJ(IYskOJiL^p!Pmt~DhXPS$Dy_NnU> zoN7{#K_$ck|Fo1GN_mOab(Lnba@}>cb|I*pA!H3N)km((c?Uy_hlSqz#6I){-Zs%f z!}lh11Kv6Dm5F~u_kEXhxpR&4Cg;C8f8l(K-ntsudeLoQFGpR4Ub5v>;Y4df^viN3 zX(#DUuit|Kz5%0NaJS;8OHmMwZ>bgtU7@9G;0gPRi!Em84Hiq zku<=sG6yp;YccUVn#a*GL>3@mf&KC|Mz3P&v0T9p+Tv0{M_d!GH=Pb544gN^xn;S4 za~ra7R9B~Ch)AmILhq92YIwbr);6I@sb1B@~DpmklSK?ylGn1|~RK#*@cP$@yfGf`FnC#4wQ!Y-{!e2|2D_iACrMMFQ8vBW${FkEls+jLP z&PCDW$~70wSrHuejsx5lQzl5KTx#lMHf>HjnDIvBm2N`y#a@w5zWam{a$c5A`Q00d zj}G3uV_ikcLYTh;{VSWo_(wsN7avQuJ_4Dl;L#@uh4?b%Kq8|zKVlMZ96uOG(Ulk? ze6rpLb);a9d!tr_s1AChkEMZP&ccmZJQTdpao*skcC%7IMJs>TZX6UhN;qa-_Ua3@ z&*R!QMPp8<(KWv{H1D_%dCdA?pU{BpUAa^kvs+Kyd;x$hof$QWdD~KRrVMab>OJ`Y zZ_#C(7*~p3%6U&%traVW9)V_a%-vCg($tW|QI;<5Fr#9TR?OV&nw#FhvzKK(uSMhF zoGN0g%GSr9nk+{Qd#<_#C0v{g7(8y#9YWoD-4?@3@xlQxipW`$BzjHQ)kMLD+ znBIzqqjzJ&`uT~cu-`x1x!A$3feC2EXMiy}?G!a8Sv6V*%t$BX_d1B6_=+I359Hb%VT}!MmsZk3uoF>_C=J*^%xY0qn1%A>3mp)pVTU#or7Z=5;wWh-;tn&Oev@9VO{eQKEuKI?435>=jG~g6fOz1rOAQR$sb)om4$4fBZy|NQrF`DQRP!IXfg(F4zG_? zbUPiM=#j320JRxPuOewDpv>IFNn0E&8dNIh9|8NAmk)mnokZ*1BA4P z=BAXkP-qD>Z7H`+Ik|0bNK2v67j7@NEwrVamMG`@e@2@)oZippO1si%=9y=ndFFZk z&;RxJmn+LJc>q)*zd~QR%izD?LA1&);`U$13}yhzFvYD<=9n09m9&UcfHGQ6!@9sd z%U(55mod^)Mz~*Sr0Q=hu4V!SXzkZ+Rts z^!GjbnPli*i)14i^N`-_t*!NVt+i%q?IUZey^mPNTb8A{kylxdgiTQ_B{-`+^5M}`=?~A{XyiP@KsW{*3bg% z%{p9_*oein9+2nf|FYk*1V(0BYiXkPoyctMs+4V*KA2Qsa}Qk zgA*f>0+I*aDAEgzpXy4u7rGLUmT^6DS-XjBz+u7)u*MT#E5uYp93ej(hkc`XNSCn~ z3++VZQ1Edskc%%+;o`6(q7iUgg~bIjn=dtmHi=*90{Vpf9UUj}-i?zb5qF(d-rr~* z-`LRhY#d*ipUe5opTem%|N5oZG-+0Y72ANpVLpq1cclCCAejceJ zBZ+5HxRDPW5cyM{U?cK>{rrj?Dg`wi#CztA<1ju4j8dY$$w|m;r*xn@jRq5uc~}Ow zUGxl0d;-hc_=4jzEfkL&aG9XB7yQXCb5Ew_=1VAv%xXR$HS!YGkuDf;n{n|;ki6?) zdCxH_51=)QO#3z**cnSHbh{i5g_d4b>HkX$qt#7Y?mF3Ex(xc&Cg^>^H%edKns z){GAOmrbLqz$*Fhk{_%+E!U5pb7KTCQ+sVF5pn&^cGiQCa9P zGNy6}>@fVS&h((9FMN6CiQAD-NOe_~bES!ksyW4_LiBU|ZKMo+uP!LFZ;8Y+BFy8! zN0vBHi}9ut;UAwlWV=PbNrX^SL>Tpi3%&sO`W1K28tfc_1tclNB&6V6^-54*PS`f0 zyEU0t9J-mGnl+0+(xCCRY;>;V)aHdEx4AXu5Rjo>E#{6hU))hlRU1!`OdbyC9wSsk}cu9`;H%jYm2V6@^Eu(E7joNBYU)my?gG7R8_EZoT)fug(MIe;hL{Zs~qc{fh9iTMa9AvJF zaSIG^@BntOc0L4FW0`o=1FWAnlIc7Wfwrn8RI!K!aL5*1=#KnqH1T)7f zYuKVjwd9wK4izveg$mZVG=*7F7})5OaBvEX3UtC0Hs$s}U{=eM0Ign$Da9oqi#u`a z7*nJFH5%=br^Vv?`#l#_gp|1tmLE)&M31y_KC;yxS%AvF*|KIz2P#7>2qX}z zJj=Q@nW}3mz`d5rgrWGQAeM4{;(p+P7$)~y)*~>AW|wdAn;vz0B<^Ca?}Me`sX9G~ zAG2M1pJkmP@@A%F1uJsGO~Igez_NB*8S6IJZO~zYm7$%-9RDB@7Xfr`SL8C{q;F?0 z(XqIF(i_mb9hxm&3i(3K)nvJ1lFIrS5<=C7vJ%sUVK9Ynq4EnCO(AZIjai72Q&kF3 z6&{?-QG3|vED2UHA8P$&$B1-2G2e9&#|gM+f!_nY0YOgplz|( zY<|Y`nnIMUwmaApJ)wZ={!0u!Q&vc-tk{-XM z1QF7gl7Bl+{_TKR6+!w`;OhlRRo`R@w;}ClkCrWADaQPrQ2=9dA-{lna(Mw13$1nG zekjAAY1#{#_I2&GpMBSP=Y96B-MjvbUEla~V})!sEzbhezw4^w z8>169-E@MT<7XN92G8=JK*%^soXl@U{+yf>--Byn6$0IY2@q0i8X<2rONOGbk_Rg9 zP!1GUh6e(<E-gx9`G+xTFeB?5^Sm7FCX6=67Wx9g>^VB8;@Lg9Ui&NtT9D~ zcMC6HC46RSo+=jsdsEkEAfevky(!>@al>j5z1-GK6GcbhgC+da?%0IB4hzdq-F`$g z$TZFr3lw{lziyS$jp*K)Ck&jsG;o&7agvbZTD*x7iz*t09DnSOOU6}RJlNrts z{-4s!KVEnlG#Zp415QkPK2;;(4b+iU8(<&g6nF~Z`U972%1%IP8;Z&c>5ZT}t|k%# zG7bX9Xc6_U9OhhviBR0)bY`%I4%x&?j1-d!h;jHqbyix3iqvfolZm8*#6#vkWGhiA z%di*TMPBCM5rW&$9@FS5zaa^+hlMesMbdm}s^uJej$}IAAhsIEm$E3s=Xdu0%T(2Z4v3IKIh?CP-lsV`T=yrS1-BoCjhPA3!V#PDz&eaRKuqA^MD5 z6lYY>S;)aRhomrlpSEvd@7{$se&cO|S7NOER{5sI(YF`Nv;X# zX*L~% zlRMx+jCST0h*ADfGSDp4)vQunNH`DBx2k+;GPJ`=Ag)aVV46XW(*&eYrh}-P7quV2 z+VX%~rGP$!>NkA7v3_hF{H8^oy5wr&VN`=r(A8rB3h`R0Tm&gxJuHSxsp`387Dk7l zyN3^FQlDkS#GJ)i%VF%!H}nTV`XVON_xxi20@ml}zh2Y2vy%x~TC~xjpnPwD#V8s0 zm2$N~J|5TwAfwS_;?)_q+oNx3UjT?{^nd$>YKq&+2NKXV_KXb@Huj=)gP>JWc0WdKd3 z7ue!F6>2Zo1e`pb)!t8;ET{ZlhDdb4F1OKVq8+xtm< zl8^c2gf3**`ZzXYA4k~eNyMJP0=go=f{JYk@Ev4VH|F*(?Y$;yVwI?UE zmC_r{E3M|cH?H3LowuZp%xzrohgaN1gzn;Fuesso?iHVTB(Y;@;`@c*&Dx=hM;bZT zQ^7&6?KU!tNIts7de}-~O1gcmJ^FMT4j%PLF%T_E!<;Ray;QpebwaEP{L^H$`GdR7 z{m-;&04M@$h$|JQ@L}MsTTj-02ylTQc3yt#RS1J>!4e`LD zjj}mh-mcr21-EP8u2sPuLu&G{!ew^vCN(zRI)k-f-Xn@N1&wc10m9UsYOh;u6DCY% zw9NcnL^Y>et&EbzUm28@ZM#f1S(33S={4ikg4n^;eXUfnl$l*wtrhj}ft zpw885jfm(=8j|u%ZU@uktfVv-%eVJ5NXe+enBJ+N^cy)un+1KG6(2> zo=4=Uelsd3BJdGvV|tN1xg4nJjoSOjpsSZ<{v3mesaaN4a_zxb_`iimIIlJthl_fu zZ0alUH#m-z^_sblBFx6N-fFatz}BJng)cJ)dgCPeYG<{j>!*q+!}Z+_-F&+)SqqN^ za3|(jtE?aL^rCf#S=~zwncMURHZrO>)k6PiT9@bzUD7P7S(YK|qeEQ{m_$Ica8sh) zv1yRw$2w%F@?s zhPYW{62o8G(l4ygLXGUeoP$s58%&dn953s*IbMg0D!p)m!)5bo?nT#M*VLwtpoya~ zx^}G9xG-Uum$q7KXzoI5+TKPBgB61>+M;qgWtQq{R@yQEq;IG;6m@YKiAW;EQ1;HU z#;+lJUlzHXbpWU(MvY)Wkqljjy|d#jg3B_?RN!q0cKWrkq4Fd zC}sz_a}?qF2YM-1*A%L;;5Ujmy2w4h6MUwHA?>F z4QnUMnY>xGWC>y~(L(B!buFqQFWH5v2t76e6|qC=*evAG%+*_4di%Fma8NY7(zcoH z!yTPMr!_M@?I-d4Nl#53*y*I~*-DUVPv^<-{kg+YEQx**v2;&0?;Y?oCp~&DZsw~< zz^=I)D6q9*tA3Zhm-HFgoP&=OaQ|EO9NWH{%}nMRnYgoUcB9t<>kt=Rvt6$yKd4p3 zg*AhsDvve`teT>!RiZ&OovG~7b-R|w#Wt7oQd@wVbsBK@GB&P6FXNGyu|r?&VtiZ) zzjrG+5I@K$5u>31S6ZDq+%EWfgFxv5Ff-Wb;^ao?H#EXA1zK-5VWZooa zP=pJP%c?40JIPwbmiAZ)V8;N`*W)b<0F7;(&^WzI&c=nvX(W%WJ`h#DPSMKwl|9npS!spdr zgbbXKNQkpH8EIm>`6w9k!Xy5130FTv_;TcV%V{B#3UXTT+f+-%2T|=n`3_rvzjgl-x(#*6LB{DOR zwM|y=U_m|#>Vu`LxkTE?CD>BdZ#54YP|UMJ!(L#xBWoDYfXA;=T`q^IQgB^_0 zd_TX;5{bIs=0n&~N-?RK*yK6qZPU2E-4W$I!h}=;{eyhL3b1=Pu&4x4Q0ctXrqYjD z%7nDEAk=QaHsh2nD;(pp+3$$OS~y?AK8aWq)rv1I?TbwwOO%+VQH;PeD34N_!cjgM z(PFnA3JZ|8g9RZy%k#pCpxWdJ9U#|2|7|tHgx%=l)n3%~to{q|GVl_^!T>P~_ai)% z3IXV9?E>0!A>9S~uua!VV*pE$;B=bF15rvp?iJG<4tnGMp_9oSBOQ(L94Io?v$UW< zTh7ta1_Z8laK&5di|>HEqw>_lj-+4xamV@`8uxP{JigiQIAW>to4=#dcbgrL_mngn zVMEwGK{Rj3*D#dISV-+9ki3ahWbVpX*Phh%kL#=E-|6P}bbVES48NGj z=%Xut^EWG_PaP_j@qBf=Epv6ojrC{Yb^xp&J#{^N&$lqfSw)VBK7#~3_!4$Uq#gFa4v8vCR9F^f zF%ioUi{!T|DvhO>QckgFvj+Jly$1VYa_t%tUN^`D+y@On*0G>n?JAl?@r3rg(RarNerc5%J0nuML&3&u}H=&97VR&rZ0WZ+iN<%c>t9nI!&{yL!s<&ky^*W4#@HPH6;ZsY; zy`tHWN2|w3QqFDv;E_kJB2U@-^*>N*B169gw(w?9R$mftv_Hh&^OYZ+x%o#A#+^Yk zeiU|BOXgAzIU?NDypc=>$>fCF@Pp*BShJtdV$OUWKOmryTi74Vg64{dz2uEE`iBV8UMLwit{H<>g*EpzjOvYK}U#h zALoQ+n4efw6M~k_j_@KJmwwYGNI;dK`_+YUX=J07$|Ye4$kXjq-l~7>J0I5n;k_ zFB#*}x$9{C|*t52F zdD6X{7_sQ~&UU`6ZOP=e@LTI7)qx|)R7+&+C%@`C}=iM`btvFhiZq|8^fk;JT)*m;QL>kCmxl z_r@2l|I^1FD}8kIT<>dp_g=EGaf$joxUuobw>+oVYxJ=+pwaCAMi0@h-M74ct5Gb? z4oa@oE|msoK<5p&b+$CR6K(Y^qX%^DrnkSnbhdip#EH`C>WRI3_s00&yVohVYeCSh zBIIne4%agM7P%#=t-jx0B*o8xep&R{4X~X=mU&RSQoCCFq4uv}Iavrs8U3yLf73ss z|Gxf$aoD)ZxY{^v++)1QxYziI@w3Ly8=o-#cjH%#&lz7do-uyM_^R> z2pgMXpM-@H)ewM59ULfOAPa5SOaW*CV73jbSk_>Qz?G2%PcRYany9X$bfUJ@J{S^_ zG@yiVqo~OIJl~+L4AC92MGLt!Oy4pXIyO31DTc098VeFmrWl&Vg?&~o8pPW7P7^CN9B1~L=ph0qx9UbJbT%a{8{6_0Xk0U@qr8( z^?=6R&xNtM3VRL0h-xLh)wEGm@+>T*sB_=a02wJfm3%?<{w@?5>7>W`(Avto!SAyRczdiXmC?KK?3(Imj_~Rw^jjtR&W_&H0HdsCb z8D#1VE@cTel#MQ~$){~GPFX_fS*}gQMTfg5%mC%+0P=0gH$dcSc*+R1xodh-+@G5k zgP@|d6=xp)3KXst7ZUsz#1W96`UOlpT#1>|45++G-xbi5Hky5SeTEyMAX+muF_kD* zt)kly1PXGErc((xIuK5Tm%xw3lWnpc8d)MMLw|6BfeBEDfxvZV%r=w~_?3zCO~%}i zm625ztX$HK#W_n>OX?!{l>O=l9y_vT0$N;7_LISm)mnMl02b$7={$S z&MuKQV+x0VxmUOc@R4D<#6gX|pkrw%d<;Q(5`s%-*eFv8AthMUjr%5kp_nmf1dcDT z>(pu%;%)H%KreCK?1W~P^6*N80;eQ?oJJ%@zpict7V)=nf`k{J1xW|y5Eezy328ym zo^VKFCe4w%gs%yEQr)uZIN^7M!;x;GP(n{fGpN)u!#T&xaZzHoCEi^h;{8+pN@28nLoIPQq7SNd( z#M-K`b?Itidx^@1(G$)~+GNCA1mLO%OU1NQBJB|ouqg+XasYSSga_*3+z{(1?#)(xBd7nV4Zann5VErMxe=nwL694xYe z@=Ir?in&U2d$~9(U<7hSVK|AUoG2M-0={udBSsv*bQ86xxN!P#EciKR0!lQ4g|E{zeXSNcbSn45)Mi%>o%i+m=b&y$%# zr9PRBm4HM5cw9yj?s0t5k=!kBkLMz?FvA3t0~_RGGh;Z(awn7P)`DUR4Wnkh_-(mo zbwPw99ZDsT4C?-A1l7q6@FD+X`9oUql4=aFE5)Ei3g(`LW~sM449FcVryuyjyM{XP ze^O$GBElS_WT{1U8M2dUSz@JO5pk^;0Nd!T{LA~{QIc$8}vg}MWzU~ny ztNMdW5M}O|@#%QSEl!9ZoocJpL&&?L4)mNk!SIy_FGFAA+qoi*gtf}}llbEJIr8a9 zK0$$F5^{t2MsAZcAz?P?3Op2&yl^|}7C{GSxAC?}90-TWYr=lx&Y}gt6NqVZ2@=W& zkO@L1dBB3n!xe=%QLXe6w?i~zR7>GLjS3m~E4QFFAw0;NkFtR>;@}s|m0v!Vx!r?jN0=x6hR7X}vv9iu;U3@(WPO*l5+)AuikNnRC2Zr2F(tw5XdiLAg+D+B z+p1$%l$_FN#5(xa;GD}!4RbSW7ZzaYWJ}CL_=(7hi}iF!K;i;bk;;Kh;X(1^D0H;W zzTLZL4%SYd{NX`9Fa3uKY2}h6zN~Ve-K5{rq6NAiNlV=}AL`H0j>qiU;ouAa2=Qq2 z&B?a{y%2S7%N={PJe!?Nm$>uf+*M+~qpS98|M_4(&>z&Ns@t#q;YA0l*Pi^*MQd-G zECoq}>*!j?$<}o)#Aeb<1C0Tdl71A_BPd4QOkc*O$dGHkDfI?CYoccDI`1_TWrs^a zvy=Agsv5CfQN6ZsWx>FQ%6MrMxd$860cW*vW=eZ{G%va6zKS_4b+718P*UCUYcZ`Q z4yQL^ZAdx#0WURrn;Ykq)ZW9XqyLO~)VkjW!T15Oq4=?%Hr{R3@Zo2%Aii9%7DD@j z!zd{uUq*5grzMXX8?+b)Y3NRg8QrR7mzIYxj|7DxTCQt_?`29Zt}S2HkG=TBKQ>B5 zJt#Jg&W-|TSZdxXI@&i&ULu=xuldy%pTLA#oM<|=Vqx_6r#3oF7|Z(nqpZb}+v=s4 zeuND7JYM|BbQrI5qEL^*$I(Lw9b`a*Ni{+>Jdh1C`iyo{+a5Uo&YC>>X_HKb_sW#Y zCH$nLU$dFmIj%j)ynbHyU;Jj=nvC79W&b1wE{*o3?ECcisA|Bg95NDc7axkz4P$ivHFtN?CHSP(kH!caSK$AN<%zT?2UUacM&+%)>ZO)Kkn)XwU6 z9XxpT$q(PNdvU&2^A3+ba`?d8*LHuLYE_P-b?SZqoybM_OI(5dh5FT;BH|BaJ5r|T zI2bF1j>s`fb>V+)#Z8N!0y+>2#6nS7t4;ZdJzy**wR81+9SC4f8FZT3%-N@o9eexP zC!cDFt0N%^wX2*OLC7_{HOr=foW0c}N)uEnCAj5(-{S9mpxg5xiu+BS*`e zVx%(&MA?7>2JB4ER+Wm#&o54gCS%|cGE52CAs$pR8Q4C@jwPF_&^(THIGwbIw2*6c z^dshDZ8Vlds|b^$Q7FwAth1$-w3lNpiLa$&k$zShZ| zw>+$+X4a0Tb6`0aMW=7Ljplr*NXUdS-CMt^e*Dy_?K8w{rsk?A2fGF*CSuw|w&E48 zT-&ED&-v}%`nH)u3?^Dn?47R!oM#4k!tU1cZvk^B#@gR`j0Ps0*H+SYG|LJQ`r}PA z*B@uD7s+uoOHRv6@Ta^9)Pwto(fLKns7ItU4NPny18RG@-#Tael}9RSg@Qyth-A&+ zi*h=@pI8nbI+CqSj_uA>&~mrmY-^Mex>}ZMq$m_2Lwa|@?N}W z-y+7fQc=5^jYg|jx+y%g_*uME@hb94X!ap0WnyYk@skM^_h|nEFaH7|-~S3lQ(l8) zCSL5}@o7b37Reu5RRtHRi1ef3S?b5;NnU2L<;C<*ko^EPSvu8AUQ*8cvc>P0w|1ve zy>eNyt)wTatB#XSSNMV#bymq;O8SJ=>O?C2I`uP+o3;9hi$%IvUG>XTlr>+crBdqL zRJvL%SMa)aRx8zNLX}O0r`JtRcmZfQXi2GNQ$zShCwgj*$mdL-bJZ%%p0llec^<|vl zu;BX5g+_l>^BaRjFjVmP2!^uiEN8LK%9xb+DnjFg2K!6%;==}Q-YGGY(|KhPhtne( zQVl*_?AV_d!YE@A3iZlwV!{}|oIwrLfmV5yo54-*+`Wv(T^c9<#BK_Ul6x~$vrc3l zHA#eCb6KtecCqkG5}!Fh={5|1Y_@Jm@uw^v?f+=2dHNY$e_C>G=rgevo@}!OAdGbU zy4_hk%k-|ZsO$USs2@0bVst8Y)oowK-WAinDp_rw)_(-kuaCqgN~l*%U-R4%stkv) zP5w@h@MwgG{)>N874{5c%vy>;j=51xrH(WD8oC@RFwd%x7*7iAhoyryLjqGViJj5g zB5nYzN4$do0-Yu%x+}Zj0FhB7t~quIA8nRxDW>*iG6zXkj92;S5D}R!RZ-G9sm#GR z7!!9OW>2^;`5Z_KN;KpYA|wtUx`{t)xM3QdYp#I_p4PQ#%_!UqAIWu6?@wk%@5q$^ z5X))r^xU_S*GK2Le^XI6rggm~jQ1@wb5~xmZRa(y)HS!D6uRc)vNy=5U`ngiq?ecU zGrlu3`fo`ebi|}~`Ogp{m#XYdCrDNyv311KB}k)%@<+rfM{+-xFN)#_wz*};NNJCR z54Incw;=PX-;$vv_NqPN4CEHli}84wL^r`AYKEAdN412iK)KFF4T-Bzn~3WuM#i5y z(L_XnOJ4GqB2PinYvZ_vyhJqM-CkJ6`F)vh=AF%o&k&Aw*hCIm?tf$M59jCqaE{N> z-(P#})UCE=-Ksr*>(r@JQ@2`wJu~yOTeog(-8ysf+NoP?Lg{Xa-ZCZImJ?UGkwd=R zC3<23*-iYjZh#9}!n#8|Qga!18Nl=NOS?#1j zZ(2stB}$@tm2;LQV;u~FoFsd3+-LHpjW)>N{M3HYdHcnGl6u$SPwLt~=6o;b=SE-h z2^Rl_dgHCXVxl`FoWt|}QmZFY#YV$0zm&_h{oI?*#1sB-`>&X062Q9bce2^n{-&Qp zip5bwYnsuLJ{y0R^9%8J$G_#_leUrb_vDTo&t&V38*fY)$@1lwdzrtACBR%Z%v^3y zE_box=5M?ab0sq>RSFkq2RS z>`qR8A}T%LfKZG>D!JRqRrNOF#MBYPlf=Xf`2`b~#2qer!~H_Z1x`$X^A_9f!o z_(Ky6C|^9i8^m<@7-|DAAOlSG5B?X|#tSYuGrC(leC5gCU7ugLL%X{mu8sM8h2RkS zWP)>X2J}i=ItcXl_mati7NnBpApiM70h?bWat-6|&Es*GK}HHAHYCGmA3k-BRc6mP zZsRaMo>ziVaBbub#BQ8ny^$+*80jxn1M0 z!{>s0%SUrT?Og~DE;D%LgofBGHrrw|K9{v84f{P0?)qnJ0Og~etR!`PW*7(v-)=u%GdR3X2fs@s%tE)hN2`-kn z!NgL*Nsa-E6@!Oh>twK6wbZUtwX4EIW%*jA9w~UTy7yG|q%K8|v!lFL(@&yVs;NU8 zQsg9}6R(pe*<3pG-|>z^#^SBEm@OZetLizMGflAi;iA(9jOp>P4=YFrS27ug|i z(pnT`)$HW$a3CzBp~3!@4@Bzxfd@lIvLjq?{ZplWuegFv5x;^=QL+s>&i9TVzgPR( zz4snJ{#~c!>=qv&?OCloGo42NIDDqoFs{G;o+JxP@pEHG)J9FmD2jBeW55DP5_r00deQ$b`{5o?+zt^@y_sy6+EQPN#pZnbCIc;{d zQ~T`~U(m&0Qh(`RUK-K1=a_Zms+APcp&DWUt1;$tX3^!qx5J`|3!d;~Lv7om=e_I1 z>&`pxyyYv8UGcWF$3W*;)wW^JCh<{_(4TwbqvxG?-Q64K{l=cLp|Ol848#?K51`Mm=SkKWX|jyGD1r-B zht0~@VJ4R!wgp7|&Pv%!WG)!pJrE@vdf@~*Z`NXr6nvWr@#-OFJ{|;xl7`yzmeB`3 zusg{2YJpF#%cNFZuJ>4I>L1CL;92|v*{-rlbcpVMDQH=6Qws0hLB*no#gr$jy!zlv zw&Xwv>?H@HdS!X^<@qgJ0x+wl3e7|e$Mj!)Kb{8qQhzd|PwxHdtWpgFGcBsX1h|0A zfg~8+3aLwU>Pgz~S@x}?_iGo5*yyJ6N%Ch_JNI>~S~cgFN~HdbJNY1ICfzLP(}02$ zvwE(mRV63~HL)PZ^3Cm|*Ox9({U8m74{GqeH4$*xU&gA*J#ep zbt^>)-p_d6!^$}sS!8T6zm~EL3t^nmLqfjgqcVz5Fw?-slv3Omz>L#b+6}?K-yVmc2 zZ$FR7O-@g{SS$C8{wsi3R->`!{3*Q0hF(8end+TiYov$GE4HN4(K^PM{A-%SpcwS~ zK>#ze)K~KLD>};#6k?euYM~KIHUigGasF8u%XQq)5owU73Xl%G*d=?%kX5R)!02Q} zV|gRG=9G4SZ*{e|Ryv9_$TBjzS-=t>7#sj{XSG`X@Nr%i|5}v~{lV4V=*?SJH$V{3 zK9nLIYI5}Eq<_n2R<~#$+ET6DFc|O`AKbWnhqZ(MXTN$)JBUq`e`x}v^AeIuev0ym(F=z!&lD?E zm2%@#+MTTu$VD>qaBTH_nh5St`H?TQwTA;znUW5aG@qUmwDzwszrO7T zMaOD^Qj=NFfMFA4sx=RkkK%o$M_X$@C?YUEtbbBVxH+%h$mY5&V`|&R-ET%}(Jq%s zs~N3{(-SSX(W>p|AAY}uP3KdabMc+%y)R`Z?tpJSw5b85v1<0wZlS1o zo*c6b&vtchh}UG_MN7_GP#-uda(XTgaDbY&{IsW#T$YuB^eCE-jU8*JPTZqytX#i$ z@3D_QYl0npRppjmJ5Y7A*-=$}}E^WK4eI3lCVW+f#$Pu{3K z>OrBdKsTZ=uy7{6U6+Z+@H0AXfHR3#4Du*haBGpplXn%Tv%yf?dU)UY-JiNT>t5cS zYE5RcTSwPG;#V@-v16kjzQ-~D?jLpS_sHexx(PQ^#6dPzHT{3nwNIAp5m_z_WQIav zvUG6ERS!(-5B7TdG-Il`INh3d+_|~4$FBTrIX$J90eVjXFa^jh9K{-t1pwewSKrQ&n8+rhgArHhu{o=R=! z>tmC!6S{G6+>O>b4c`$v-YFD1f@M>Il4I}*Z4&QejPApJS5>G50t!omE#a~7-h(1D z^@N}b{}L3mrFUC}8#NOf5;lXunWJSzy>HD79nu zY$2_~#Bnuov76F!=-wbcAx8jWC)NZxx373P83*{?iv5>j@~joxk5 zF@Xqk!J0;NEIXer)mr7)W3%OQDX7+f%*YT4_#oOR@GxqPKtkftmPsr@e=lN3wT~Ev z_=BbmgHj5wdsJFjAX=>ey;XVsWse+(;(TJJkKXv^z;w+)Ru3H-Y$njy* zc&)qLBD9=H0uV_4O4m;l^9sz?=r7>r#G1h;uM!oB#l%Uqa6~NzJ^g30*-3k{yj;f% zIKH-Z622oVtu*w>bS554Cxgzi0D))MYS~mWJ%L{k=H#fp($2{p^@!@O&aeakW)32R zrcabEONqh>Pl2?R$;PE@(jnk9OQQEgzM9As2*La*Et9U+QmG5@fhZWbK8Tw~E?dr$ zVjV|;iRz+uPZqqtY_@8+4vs^VK|f~g|Bl^WNxS)ck2=RMW!mMx20 z?kXml@pLMh^J2L4fN(YWw#kVgmrBkCu|{k(SM#j=w59EujCOOnTmN!tBAtbnfypc3 z%v=U={aA4#p(k8cb%*RIpkW!YOqQGt30ojVY@1?&q%01BybBfFh+;TKrnrS@)VBV% zM5YHaMi77SJ1Ayd^m!w)V`v3|CNwSbW#@tF8B8bBO=@zrjCNX-z2XSd$hxELc6Ms9 zVsy0M^*hnY*?MlIr%MU4@?;Zn-2F*MvgSrDE|j+F&JZ6QH6>KOj@gv8D_Mvn&5 z)59Kf>$c`hWoBDv`j@sWbmteh&dn6Oe3$fX59^IoYWm*&``*=wkqx9tIMog3c~iC6 z{vr}8*xn`@ANtS&R&xdS$K4sP{n>AYi8ptUpnUV#&P5dMEsGpN9=mWo^ z(TVs(F%5n*dI{G_EBTaUB*Ylu@q?~&s)KJ8sEoO2!bxPg^_A(_S;V{9-nOmXxz4uP z>H6GU%?J9$*?|o$n)TvVt>{+gXAjOVbo0HL^32xqT$je?yS0K-vvUc%8m(35S_#5f zi0nb*%C#hzi9U^4X=ggsn#`NtRH9r?RCBtQ_vi`SZ;TZjvcz*E0&y!3u`E*do;Fl>L zuAts!y@H>?C>@Ifo0}(7pb@=`?3%e;Kle~BS1NG<`KfA_&v3ne={xk>_n^Pq(c0b) zR`e$#zYgX7ws2h17oxzQ$M>7HI`rQTyA03!mk%l{-G6*A?4(y6Bd+q5bBADg{Y1?j z5Km>rhxOit9z;l9cuC<4vV%gFV;sq*prRU5B&r>>eB! zpi#$}nOQ$@@IZgD-E!U5Qzx(LA4V8xob1jY@eWjj8N$Uyd+XQcWl?W|59VRD%K$Os z*BpUVriImDyz`ur+U+E_QF<9fiJXXkEWc?at*bZpJ26kl=1=Zs*?IMT{18POC1G6W z9ykq4kp<7ie6cPLu24;enoi%^`g7H}7vI*fW%d%HEru~SO8P#s6cIB99ma{*&K;+Z z@VLc4I*zag%tcN=E>4UPL|bH`7mczUQEMIY4hti`-?khU^@Ip?!KPD!h_>uyKdY!zqoR8Y@Q$iD zyy74#buogt0$X@GAU3H#YLZ$*64O-D{a{$248u-Ecref~Gs~$mj)UP~ggSo4Dfug1 z@@wF7(tTfp_`1Q&?)}vxha3C*#WEwZSOUkh`fNK>1^5=ATf7>2UJ#gz6J`ODLY-6 zoF)k$=s)R9Jz2pj3xrA`zA!63`cB+(fEu~jD*Lf1U9T*(ONqqAfDh%m)ftu(Is~V9 zNtaf#d^=nA;!UfFBPvUMV#|8Pc&~Uk+xQ?OpK1EeW;bq^vReQ=Rk)R7|3cAyO^xH% z7NK!OtKnII$3Pt{AWwK%@1okaqd}5z|>{Qq9;z}4feYo2_?4LSx2&4y~ z&3LV?=?{*!`IlYx7X8?0+jVH2eg8Utr+?j+e17dRpDiE#!;g`%u0+P_MUF)71|?X= zh7z1ag)hTzQ%HeCA=ZYv2PJ9^l^KPY5*fl0-;aTWwqSp)bu|(N3TY*1RMTmzjGe zd3bL2(9+UuEv{E8@;n~qIL@$}k&1_xTaojF4H*C}b z#qvaHGQGuwhZk4oEb!A=JzLa%^d1uMW;2!Y!IRU;(nNFTY8!=fY4$?Ei8<`L9%>@} z^;7#R)k1wS05XBu7($zjL`Z8})a?vF5*|S1PK zDUS)LdR+EUpA--QNoagt8YemnNIv0>T!r4EjO>sIHs)WuBln~5BIs`9JRSlarV5cY zom0RK;Yrf}>a_55;9g}pk$O}o4x|U=<|rl2w?V>ymGRj@+tsbIB_I-(5CL`Pa(f(N zjjW zK*J{YOZhzLFQGgr6h&Iw;Xu0yOiN*TP{5OkQU&!nB-%v%LhZ;yAutrRgRADk2q(c}h zGLbk@IT#aYdYXIRLzY%L`ep^YQlHdXBYOab+Poqa1kvA`{t>5 zCQ>L#kR0(r$OaOvL>vebLOtmgL8Fk6G}lS!o?VNY)Adw3llJ}Cbdlr{gtow165xdV zK*H$Z40ZxM|A>8bJDet6to9aXy6=KfSbX z4(KE;`^DzW{yo>+@XoI^n|J&?7c{Y~(@IXCL=Pnr6}`X*K01IMdoiL@;wWD*ze&Jr zA)29GuAa`(_Gq_NX;0`@V3nhB9msyYFi9d9YU4I^tmirgYC0`iF^NP=r9}zM?dw}J zvpPw$Y+%S~C`#r8u{QPi#5aJVl_wC*<4lN#6`>7X4gH-#D~8u5@r-%2%5=Py%ZUf3 zk_%l67YlM=m}Zq6zG#5B0qkfbFpe1s4^ugTp*hJR8Pib)NdhBoHrAEvXu!hBRnWU} zHF?Y#0(1!}Bp{YSVBysOAV0{2q@<>tM0JXKiDyck>>$KLMe9XL;}_U8)HE_a0c|31 z;uV3$gsi~QN@7MFm`j{7--09|o%}^?j$|R8!hKs>EZuuh+5j(bzs8I1q8}n>FRkO1BsMTpMR2MawuF9@ zP{D{5NlJmyk|q7FH|gChuY3FsQ+9VTc9-D@8Uw68xsqqisOEiHMG3D#ul;o`^#xxt0Yn9@kFhFbGQwfpp^j# zlADc^WPnuU#MCl*dWctu@A}`xvd~^a#?jo;n{+s!0IL|17#s`d{9Vz*@W5^t#6 zp@+z|3=Ob|ZCsSGAVgV9)PQiEgz5B*K@4|WcM^gKk%olZvFPyn11YP_$RWycIhn3P z0I7wE5sN0vIbwFP#_e2ON@chap1y4-ym+hL0)CTnf=rY&$yv)>)a`6xQjJDZ&m)f3 z@_6Y*Lc#YaX0pQC|{9F%gbF%p{$tl+hWXdL&%^qH>Z6PGV$ zEC%kvS{2||S`GYC*(MO1CwM_RA(S1PF8X!7>0us>c{??4r!)O}pb1uYS=e`%&+izC z-Rb$csaloEr`PBrv|ln!nT8Nb@UZC6==rmqK^0(J#v&uFoSwT9qKH3Q0r+FUqO5${ z1h!#cGBm8kqM6A8SjpH13FpsYIMnU<#3lZgmh`O5CHMuqUpjVzq8Y|H?l8al~mRP#mDW)nsQXWjQMBbQ8Y@(<|%b4W} zoi33W*0d)Q84EH=>I@kNw$n6AlQd&%U7KLADZ@fOU&4+~#1apX$H?SkXgWqBn$Nm8 zVluCC%}<^EcEG+e%1x5A3mHf-bIL&8dAVSfIY(CUSXD?)jwuCggFsp2_%IUz@tYiD zxI+@@85T`OCc)NpBZds!$xOz4AIcro2-y{I07a!_DW#Zc*5r}IE1eFmFjlH1qntlk zQ)@y6V_qYv&EmtFo?+C)9jA_gIXYD=L2PB{>M7y~xG)JKYq^Q}#g+qYsU+}v4a{gG zzpYnToF8oM+5jU64Z2&ND?oCI;`@d@Oo-Ml~wuoIa60x^Q{lMV%CL<3fj+$h-T zm_M`_zGq8%H}IwIyo6*0agqXJOyXiOmFLI^L{UN|g!bx5q5dQ};t``* zOvk~C1BJXn4kVdWG%8t|OnGE>sZkkAj0E>f)1wnreC4C@Txx<8Y1qSv4=__WzUve6 zZ0G{Tcj!h=n#^5sUz$~-l4LAeB)vV9h@qA?Q}u+IPBLI2Q}NV`|+C%U0BvN!ENN&)1m^6Ad%!OnoaA1NfLa|8)V+bQ?U%(A1 zXoKCZv4$}wBviwQ%1T5TRw(J;cp%S?STMX3=vwA(G{d;8FpY#~loD}`34jz%1I#EG z8SEBZH0rm7h!Z)7mn%IbZHiUV+hGBu6EeBv#Doj?2tKn$sBe9iJ6XIEBGUP&P(W3BjRNV)+df#O?)mD z%BSFMq9%>@#f@0DJEAgO2A5HP&MS@l68S_tFeynZHyZtM$O|I_IYbf>Cat(-*b3d(r#C@ZF~{Z{C&JIVe1H2r%_MG;<0M8|uGAN&}& z`d^KFC-OsbfB|odSH_jvjoQ1lhqO;>pVNMi#6L= zss|)eJ`i0|=XHhwaRDL((<3MyRN*$B;~Z3pAc9@smm!$8JBZf!uniZNqj=Mzg~LJv z4lO{b{1HYYCE95cV@v$@D|?js$?lU#2F-ygKlIUP$)8dmpx7dRwj6uq9HeiQs3<`@ z!v%aBMH7nPjm*7pPB|_Z);B&Ay@#q2R9lJ)K-RcMfc{_Iu7NaG&P6G|6qZ^Z02(aC z1BJ|wZPMOEXyIB~W~mJ+t_<&tt$)jyjT821>L4C|+% zQd<;#DfQKXmnFnAY>wOt5MK)%2Igx){6RMBl_w{cdb#D}YV3J>ZQfr%F-U)?zM!16 zLAQA7dF{Jod^G{lmvBPUJLIH5B}}!!RWIMXNO3zwo3gpB`AsIl(VrlQg2grgXep+k_CE=5Oo4^0f6zG0!p5MY( zBg6>vc|gwLCFjaMb*}!qq@u->+}X>%$JOzlEYYQbuR7&)Sd5+WH@=88>fAOQ<+qgM zxH@~^X5-YA5#83qR=s=^SG`h!wE2PYMP9Cxs?0;Ll#wlSkRZ+xAy>%g z%;KTy;lX#$X@GPGK7-OcK3;A@>nDm3tEzhGoFYfujZCU#g54drCXynGERkgd93BKJ z*1l|SV9Zu3=2cm9n-+b25@H-pq+@2*s^n*!>B3a19W6SbDOvB1X7cdA=7dI)H5|4P ze3KS3uz16;NGtypofSxyCuybnVto@2JPTZWm_T;3dPo~tCRzLBb#7^p#>jX@+4EhI;O`UT%vzjrK_k$3>FbS4cp&EwAmD@qi2F|-ZELzOif zs50je@NDXl<$^M7pho7e-B_L@&Vl1F3mrU%1^ltG+yS0-S(fI8Xl|uad53G(psB6w zyrBsRfkV?+{`T##w7X%cN35sd(b@4R^3g-ZEXvj-Lt;oaB9eFa$D|QP{88YZFeT)kZ!f1)U4XP-H zZ-xpOZmuuy!%zBiVbG7o+<4fpQN1K?x3r_eSd(>o;_mDANVi6dMCw* z6p->Sm)kruEdM93oa*a0ujKu1rQ98TZ^ie!{P16jum$re+kd*b^Z)u^ioLu?d!=~( zmCXeeKeb)I0Zgq)BJ&QCF(bkd9M1}r{}O4*^3DKPn6P3S5Mzom5Xf#Zjmb2agPDTW z!ko1fo-QmgI|a!je9OdPvfwXIA+Z>W9YEeP7qyiHxs}O)dEwG)TMW|J1R+&X9N#PV zU$G}qtrXh_y~RnKM+*hw)=(qr>G`YcU=uQHe)`d^JvXuUeAC#sFOlfI)yz!B6P2>R z`+^G=N0?T z$KBk4&h^)~MaV6ri5@A;%+#(a#j~!HL?QNgujhMLTygXWNH4!i1cJn!)DkXHbQyy6 zkjt#8EgMPdjaA<06IccCvB(u6&CAf!EA+DTA~Z(c#6=Z?_BaZPQ5jt(q+J;$#l}J( zL5T9gxZ^ZZ&@Qo4*fw$qfH|*hb_)+};y!D?+}KmgI$E__pNXfzFgKew_Ij_;zF{CS zl^vP;hJFGP{+Ug1=O30%+mqRR9(i8y2Ehl^{#2VRUw!tRICP27t}8iYUnqqb9Rkto z1-of?jG@F|=4e@AfuPG}c1f`QSSFEB%MP3-PV^E*N%95+5xI@0-}9;K&g&pY?5%%O zd)t4~9^WQ`kH22+ZmHJWtxru&RHmDrI96ynGF`t74%)3rmRyLVSJ zpV3yki=+Fsz4skoTRVQ=>gs*H-lAmE#Ps2&aQ6Wq$Fja4sdR{~8bt)J>O+wiB7Zyf zln~b|QrQEz8u|&!I2EHB?|g%2gPD^-EP*b{&Ltz3nrfiS zav`bWFv5YjiwReDYJIra>Vh{1TD5D~em}Uu08QT!;9J5N_3y zDRN_xJ=k!AJaCUTo;u0wiR&#NXi(GbwkJykbXpUo3D^xM;SeP)b`|j95u-iwR5S2v zX&GhlcnUK?-Y>$Ktq3O|X>58Wew8N5lUsUQl;)s4>tz891)&fqeb_5eAHmI`D00(c z-NBa)$3Mn855hLHzsll*i307%{aQNI;gd-YK8*Mo1JefzonBpZ)DG$n0uI8ZL-bMq>MHX8E##_vJn|fI3tP3zw41aKX}_X< zL3>8~@7gyQ#Uadj0UrnP&k=!G{i`)kHrrqq;^+c_6{9>L7zk=$=8&pIjkTV((10~) z7v@EP11dSd#gI1u8jFmftrD(=Nq2`<;HU5~FfRnfNWMCzb~D;gLsqQ8h}sJs9D69j zlwtYAT)en2Txd5N%|>0gEXf~&r%0pIXd=~t)S=EH?F^-*`NKY9AO?C7iW_+pD`If2 zXr1OO7ZEoA6_B$-7e^qmB!iJpwZvkN>n*5yC7~Bc&8lA7BK3;P62*lPR1=&AFV5ka zAgx_m6uk+Qs=X+s&<{|nDn)m!3k~C#*w8ujljp13l?v4P>MAOH?B!lsrZ)wIdSL(; z*dQJq;)3VZpvFdljW*xmqk|hEjF{^*(TJT;;v@p3!JV8vU0> zBdu1e)k<1PUa!~sFMGXSI~&Jw9Ak{J9mjEuF-`~&LNIO!;DiJM4K(FX2x*`pO>@(b zQrjKwq_W1}KnW))KzRs+)uaK!BpWVB3!h)XVFXc_?5&m- z%cZ!3Q)?)IHB$U+LZ_XFY0~G zTUgvz$bYr+46z!Th5VQE3yV!T@zrFp5E#b2_4AFAzxg#!(B)zat>V&0*~=-x&= z=6Un$o9g6Lf)Lab6LD;IKM!q}eeXTsU;KRHe@~oc7RH!P>)}RL!A<+H&z}gv@@s-| zPtKcbOJ$*sNXCTDK#6n)P4)pps@f3S^C{W@(WiPkhh7CB?ocz_smUjl3|;{Pq2Ktn zL~g3z>EA#m4Si8L<|$EZbRZO3oALyolEO<`@kUplm;6N0Gr@Ah}&+*N05|K z^{$@C5g1`&v?OaBHI~H%JL47>GGa$U!9dDM(HDtWf_9c1Y{il(?8L&!>0CO7yEJ+}nvi7yOm?)yRy4=X zF+$U3a4MX{+#B^@0nB&Ph3UX&EiN(a; zFz#P*SXF5+)WU`p1~HE{8UkyZ9?>tww1)MM%5h7`a|+#KQgouh5FQ&rp)(Rk=8MM5 zA-}hQ_WHL(EdCBL5q~=ID}^FUT?mzVrTP=~N%eX4topT)F}4sD@hEbD>x~w3-y1+c_~^*TfOsTgipxJU9_Fz}8e3VB zlj#|yjXs4TuwKw4AP*|f2 z*j0m~u^p9yDOa~VHkmbyIekf1vrrt5=hMVJR#n#d~T?RtEu@4MOc z88?}1Z{C0T<$E@Hvyh$$5o>YHaMYwg{KoQpuoH!;6iqM^&>%A*iV+-<2Owss7_=l5 z4krpE5%bN$!bs*mQy61RQ68HJL&b=OKR8=W7{a5M%(Cw;&l21Wa)>LZT8t%-Nn{tw zgt#M9wSrMXJeUBaAw*P$r1y~HE@m^zn01?Kc2=c7vUus6ZY799JP#Wl$S3%m@k!BP z`7+e2^{3bwKnVB{svaL!j>9);2Qh+^tMx5qso;bVaExO$+LRbw0L26u6BsM(t;B>vsZD4+0>)do zHFtsS7fS~SeM7iHDMJe6H~DM)O>Xm%!yclq`D*$gOS6}(jtfX-zUC?O1)fv8R{$k;gBz7yoeov z`k>JG2c?1_flBp$9ga^|*EQ$Mjd&svn~k!Wl0Ag14AP>qrIHXFB*+RZq7|AJ^i7P9 zs4>EHd35P1topDJBQOv7621rkOIScYIKu*lz#lUr&Jm`bVnSx5Ziqn$c00V-^koZ4 zH&&D9Gdu~k5s{$>tY{=VnINQLV9Kkn&#{E4NA9S+=d~!~V?fulh<`}xrW@_~Uzilr z;*=#Xj5uT@Nh<=_HO^1tv4G3d>Ji2|E*7|o5;4mokA7N_91<*=I?A?AN)RJmIZ29i z0N*+)gpF2AZW&}Bh(ZB7WXZ->QSQQrbRyeTjwncUA$qHdNgh9Sg=Ey}QH7n_xhChN zo{YZnph2taI{2mNi{)~CBWflUz$^i)Qc~FZN~B3rZKgd28~P6ePB|yl(qH2Pc18Mu z8Cwtss>z@4FTMeO{y%|@y*P0kOgoL+B;>0CyF180lmYER^8{X3cb4@fq1x>6b)+gd zWe*8C481H^f^j1B71mR@Yo9}x6;3#5y~_FFt-LwJd+WuFK?E;Qy^X3}Cp(@3jUJK) zbw>thrYjIf#lFt715(bhrdFp)+`4Dxqvx8*nnSM zLKco>A`;1MC^J5CMqmL`jKO-dxk*h=FU(g0MhdZ_JLTeHe|r!!EF9}Z?n%2B&Ty2`qE!K+_u~r4L#2~ni*>-%)mOGZW=Cd?`y-+TJkJ%~W#)G(ZS#H*CPLhPmM* zzmlMcH{EpEWtUyB`I@EwKEETr!&+xu9NV#Ow%0BTlKxGH50m9rmyO<{ZuwtZr`D%; z?Mkno+LqtE8OL_^j1w=Te_xLc4q!r{DIju^?bB96wlp}vNY~L_34sY#xXSdF1{r=T}ucESp+j{YnJ^26rMj6!9+>CI55U|`b~uf8j|x>DTG zQ;)>s*ds=&xpa+T7kF!EX~QLZI~{vdX!GVPUYwdKCyj%nWAS({A*d<29K(`X_tn40 z?C$uM&t8wFdC$Aox63D%2=0pcZ)QszC|0a?PQG8-9CAY;wd$I>vMU zXC(h|_NIB-w?S-1i90``g6&jrE;VPjv$$42cA ziJ%HRuOzDl?4iC64&}l>eEnT(@rTWxVELP9JA^dy`(T0f17BOPe)5U2vppk_H$bY_0=rA~XF?5zEX=mZt z^i-FvYFcmMWekn?%Ty2B8hJC@g*?ckNR@r+z_{apXrh9IEKIT94+}t5zsdl$Fs%{x zj#wIpd7Y7n8dtjx5rpPFFthj};XR9gAY!ND5xA8QR)CpQ z35WpXc=+$IuZxGK6N#{Oq-P{kINAcn(2K7uE|zALmY0Y?{0jQ?w~!~}#D0IF0e{Z~gRJi`Z53A#k zK5=UFW8=3z`9L!Hz$etF1NZX^kN#S18+}Y28vV6D57uz1r;)#J2HEi7#LJPxqZ!T6 z(Bo!BCQcW@+``z>8Iqbg*Wx5*XwZeTI)(h&x{>j=nFFDe^x@4{Q z(&-g_t>omw`_v>T9%(`FNN?l6HuVuf^#I&MeK^A%BxT!-V0+ZS5|Kjm*mX6y_JXhAk&!J4}B~OB^1ep-8ZHhPDs$h>>CsFa%!(mQdPr4K*0^ z5VH>%M~Bt&S9k5c^O|e!9DUZSH&;vPN-Yh1A;ZsoH&I$@Q14$dihp^ye#s?Yz4Okm zUY?$v9pt9^gQ-&L)XdZXB49uj?lBG_^9xG++01NamQa8)PG;{`>+c$U{eyR@C-0JP zH6PeC`o-v%Ds-FwC2@Zz_AvHt(MY)iAsdWJ*$Sii77>ydd~5_nN>9)>>o$L?(mYnL zZ%?Op>~Z5IZ;z3#MHf#T1J%phv&#i>V^avkguL-qEM!wacD%k2Pi<`8uBM^^Cti2m zMDn(LELqs(o`@io)_Zx8qh3TkeupP;!B?4vwp9s~LmVF=Wa6$l6hfd$1HWt|UAgTC z@4WVN@0p*^mp^+;==PH*%SNf!S&iPY!@KAm-@UDJ;EtD{xb&9K)ux)Syyl%B+Of2` z;U2t8)&O5#E7+c4VmkN{Y@j9e9tuuTx&T26+37dN^hFQ_8115|>41^7Rkbm5L02RL zzwXNi*-#5|B@m^Y!c0|{HV~{9lDU)x6geWhch^SvCkIRw*}aOHt%R)?uTf|k6GPu^ zE!96WzRCIAVlwpTTh2VHw!G%9eJ_6I{+o}jh6Ug#=>($5UGSZb`G%mefL#D+iAeyH zmD(6IuHFh>PzV@Fj9ts-#uR3&sPZpFmK4HA3mIL;+Sf3TXW|h`$>62m`z`WBQGjsf zZ8{zgLw0n7b>FM6fANd&yZ*%8saMS4vLNLrql`A|TH|J8p&zj3vS?CpK1xCm13AN< z+qf03=h9q&J0_!{z@!npbn=gIT% zkN2$6e+h-Pw@m8m&?sQ@I}Ykaq;+6Y~`*-pFLg7rj|SZ&)4dkE7dbZfKH zO1ZX0YSqPzD(kkz%`@BPLU-C|EnocVOdkvNpebvyfPTkV{^SErakawR=r=NwA>Mtxq zG4Ina(ed!o(I%Foh3(P3QP(vWC06?jUI-GCF8&+w8=K^c&pYqIgE6{NAox^)F$4c* z)YC*6O5W2fqA-8~zphyf#q$Pc-|^91#6)$rmz?kQqQ&jeo^>-hfC{2K<1VTMwyds~ z{$9a&%hh@ym}$Qb7&5>H?})CJqlW-FEvC6{?Hp&=WBK{kK2hdSdOUu3K`vPk9nV6v zyc+eMT3vlA?cTe(dP?pdkLzl{W6G~xmeq-ts9i6*y%g51{4A5C|gV#5c6a^ET@$!Q5$ePwgpFLIB5H9_JE-Z9fC0uu^>Z~)mJDV zkfSJpMOf9SbhUQGwnUN8ZS^?~qpo9B*BhdqMuOI7|AlTr2n{!!Mx(&^6ZWv-t9MDy zLd!s*m9I5dml9Uh{L3D_r* zafGI1XiBk;C{9zlNXc!S$b;^Shmo1Y049UD8wo@p^kX7L=FuCVUdWj?GG_a2Y=aZI zP$(b3R4I@U05OEZW+azRP0B$qT8lBB<29UL0;5;4bwF00CIyFB_2g~0?J-PG#ycfZa~V!}l>{IxWJ;5U~a~kt4=D8%lmy@kOZx zJJWH=5;!~0@0Hfi&LRO!FQ)dcEyzCaX@12=3PCt44h6i>! zM{YUu$;0{4AcVHoO1fxTPo5er)@mqnjcB@F+r1h!T(2qVe z!~}3c#>-gSQ#_?0cfV`m&WS&r_!K&V&rUow@ibl-U&h+x>sU!W19ICBw9eqy$U-p2 zVvf7`hZof>0d&@>4XO>dBZg0_YNxtXy;!|eT_&pulLjuYK{Rh10FaO4dE!=cRV>2@ zbI|FnSD3f;s=l6$*@+<;E)md#E*Sn}1@L(1l7j@~2L3-*6ZPj^MD!hGC=K5T7e@du zx3*i7XaQE1eraTd!=%qR*|l`p(uKUMy~erQvtyNN(S>~FbRdSHPLkixKbCCvZ=^vU zFsdORqH2_qs1?|RNJdOMB+0*GEm5D4kKa52xAY$*HeQfu?2Z%u2yj<;2M0_yt8J~ASUj0F>tKnS1bxbnj-Eb!+szIx zat}Ry+`9UaV<$&(Qa%}a;^}M6>mRu0y3ul{b6cl#a$t5&9I%d@K5%5Ti!_s8$C|qEspt~r+dBS{npL{z22zoU)eDSCwheNvle&tdS^$J{)AyZ_Json zPSvdZ%7Ftq>7lfDGf6kcEu%xglLBywY&Y?{cR;AbwNvzygV_W)%m|{9*LPP^8AH{l zohY{d;O$1;LN1vs6{n_WW-7&V`K)*%J5y2Exv6w!8f0c7AK)M;&fG$u4Wp_K&qqP* z?ZvWwQ6kw&f&-%*%wR-ypx#0|nKahv#T7&) z(l6YqlEieAm$rG{j?Mdfi73)R(jgHwcH$*=JJI+)AbT8ET^2?pkiu>gX01EWhgplk zzg4ArvQN?UO3cFWw`z0=sWwDT&?Aak&K<%@^@ek9b{MScB^RqEF2^jvT<_)%p%z7NC9zbmx}Yl;As zbuKySP0nOyP6YqxHtV6cAJM7@R>C%*^!@R#AVCo+1c zDC9@>F$1xJZiu*78q)H)57JiHO2N8lS|*E&&_|(Ib>TwbF63Cmj&<1}ao(3PQl1>k zrE)Rn7cud0VT*9J((9IF;N;kTtwR>c4DIS@CP=R74t=>8C(y=GNwLMLa*>uYcL!3k z?Eh>?XJ@z`pG;&!yo#C0N#Ghp{Y1+s%qw#?4$xV^qATUeh#dxOm*`hs=__`17KdYu zGu?2+DYw!wd|pv;BhwGtiTJ5WR;zTWoQdHF8o{e}hAC$T7PFo^{SrqMb!I5zImr$D zgy9IJ+_ac8$k^Dj8a}<^0-3#o35&r1Y8@AS0ioXT(FMES zwl0Vj+)`=^5o@*p$YIe;r&3w06c)T0co4I;2RBsoEDXdza()2E2S6xdSgcU-uFby$ zRuN4^BDQGP(cB4%#QrNS^hL9Q=2jy=nU6x%5J*VewwD;kjWbBVHe;{9A3ukQjP88j zEtUR}@gf*(bgFcoyyf>WTbJ=6ZxJBsTyq+JQhTB-`cZZ4tYn?jcN*6bl>kue@6F8*d@ffgQRj9>9kedJYp4 zeh2U*q1b;B-*`YmP#1*k3!$@<`B~aUm{!SDi^K-As|#70uDP@WtL4PtT~W`A_MsoJ zmf*?22^r-T_TXF)0nm}n&9DC*TKf0MR`Nvc?SUJ9DKW>cLgIH56!k8=iU@9j>`t}< zObg_)F6{?@!yM}5hT4Wr#I>^5L6qlj8T16g)=9o)?qR~f75osfha``s897hCKgANt;ioTQNj9luI0DYtnDCTV$l};u3JK!afE~7q?jJ%Eo zJcK|Z25`(_tf`5+fHT%B>Ph^xlZ8;(!EGRwbZcc|niexbjHcBW#6BmSa8{57YAg$2p0PMA}u;;>s1(k70Z`K+h)^s9!jb|cG>g;hOg(^qL$GGt- zq9UroAvnrOLdYrevNLnFt@Y(fB2md!RIy>PB{%HL>T{Lq^17KBSopGAS;FZwbSWSJ zJS_D8GtjFDF*F&sungS+;%LHw81NBndl+)-4UGCNViC622kILQ7J?i*6jhHKFMAvp z1LG*vR_oh+MYmATPkcf+TO%1%SF$1p)#JyFNbtQc$Km29VwNEkmJAufda0j?^84lQ zP85~)GL@6SvViV6{jzH*q&DEJB zV0mNuRqX%^N0)Vm;$I-W=3zP}!(I0y%GRo}dg|R@J8c~9U473=9xK7^E7u?D^i1={ z>u-2x-FtL@rStUJhi`f4@zDyr36cttJje`?Sg?o&*fGm+;?uYwTN$*@+{o70LiaQ^ zRm?t?O!tb@?k!-XBP>|>h;r9$%p#&eDJxATOb%UEQvorRmSapVumhkO&@%jg6FuYQ z#z#PnsM1ZWxtOu?ymmlSXvhXre3*gp%jCKlIH{^iAl6mC1jFC^i4~8EWzo+o>^y!F zigl^6v3c)6aa%=+$P z(Iy<8Ugu@CKy}C`4ex0^#h6JXgDfZG4ng=PE>J%IDN{tBrh7_gIR;{!Fizr8kmheh z8{*F)qcvx!*_;{Q_3)(!4z?Qv^~hoJxa*^rer)vbiOjJ}=j7HWQhTu6Mx2yn11~X-%czjACReq{vjC0xl&y-Mk2q&FeecR{Hb3 zSnj}v*DR#cmkhVZa*f#y?R1)i4YjlP2A$VTw|nehBbKuc3zS@}6uOoej+s*QNZ>nk9UMv|8zXs%{d@O?Oh>Xepy3L|{vG`x}S6%_xUbun> z$GQ=%5Cjxbcx&xdgWwV(gCT%$T|MH|`qTweJDCAsIT~2n4e*h};Ee@FqD$ z3bMmrvg%?sg!{LNNSYtcAcid}<~O#JVKDPk{Gr5v=}{XchhTZYoV!>HD-3y=^ZBaa zh%sDZ*vnWd!yHn9e?kJsRs(1va9oI6w2N;q8{N+0j?P5@X~5*e#^TK7mtA)GFN;RS zshLj7MSzsd2fd){G{dSKQ_Uocxg95XCXjc)Hn3w;_%`4hwcbw0Q}s{@==fP8)1nq3 zpE#z}R4SATp=DmUO%WXghF_||oFS~Tk@Xzp7q~6hlx9o+iIC6N>%J1K5kIDb#SXbq z-4^I=3$7?OO4|gQePe>PfyQ$+i2|Ntn*mcW*kWdfbee{g#baiXa>5*g|bCwqavFu zz0nF(8ZSLAD3}~0-R4_{O&7Tk$6O$n=*#%l7s;{wTsuMHB6&qL&QHGOM}6@n$Hiux z1U@7`_!8?1P;3tLjr1>lO3scG$*t?EWw(#94i(|<7DUR)v|Bb&d4*#)E}Z?5iyKDE61W>ku8e9*?`*|1gl+jqE_13 zYC8e1w6(Da4uzLkpG^cpw~&VUl&oC)OZ&`P3tZDiu`eDCLt}|0E;N zW>1m8CIx(^Y(wmw0G}XGbfcg9$`em~`7@sxz2b={)VrQ|!npXg|8(tZU;C|V)nC2# zpI$rqCqA@&!QW6$c;a^%6VjVmHXpuZsL|KQ3FsU4^|XuEL^}{t_nb4%&JLc5M~W?+m91HCeT*+f;_&=0wrJOAt$C5WUPWbXuUwEc`y!g!O4X2JBE@5RL@?0k#+J4RZ-g)D~_jc8e zJ@U}}0+BQXTZo`5A$OrpOUfa>nH=wUP~AV;wSD_NER|0)q8;Rmv0se7_^JyoeXn}` zF?9q3g;2-^arW|qS0g4yp%p@CA$C#gc%F~y5ja2sycfRv1ab>s{+mtB22yATp(L;q z0{z9_R6~HtV+d(n8$3dJFuK5FfSC2NCmqfPQI6)iV~75(-5rWUKR8g`A>Vjr(F)ZQ z>SL_1qfORPwK`uYESXDnoTh6PbBU;Ooo2C+OnL%&*7?Hx+2;sEyQscAy2DL+Nsr(l zuP)}n=*$=Eg%ajOL@7a-x{pA1SZl>cC)5+89h=l&RtP>{%!dm2`Gv~Gvg;XXx11#G z9ot;YCki#|>Vf`sQ0^u6)k;eB<>kw(2X8tubGUl&<|DJ0*RFl* zk>E|2m#?TDzWGS`NOk*}!`7L@)yr$STZnIojBtc5Q!r5;pZFzG$5}Om$}z2lW0&Pa ze)-D;wo4mflH@%DGxWT4|94{<21Yh%{({A#BQ{WMB`ApxkqOItJSX&;CdU$GQS|8; zO9?si-?HHOw-N?+ZShN>F5nJwJF$6Q6Il8y;~baD9$wyJ>8#gBy;m2!5jiIn;Wn~? zmsL}4DJAQDi(HkFx?(<}w>1s9U{P&kSFE(YU$3N8aUeI6D(L#b!|D73^?y4Ev5S>x zddr5SlMGA+0FyS%&B(ekxQYZO2??Xr{CbS6k#)wBlQ5tuB4#7qFd>;Bl^apPhZ2C` zpphRoa86@Ox*5?HCOwhrd@_faGk#&Gl(L!&0joHbUn@&hC;A*kMo0(^Miw5j$Wb|JrXJ%&|kIz z!xI$ED()9c|*YhCq0xFoT|jIB{Xu3QU{x>xx-( zJy5@392Sa|W-Q>$IHjV8v42cv8z`Ct{`Rb3+OV5q^dHAx4&IQ}pOsv~_$6^^aTdcs zZm*-6!ge|CL|ijaN`gy_IYiBgw+SQ(KN($GS4!jH7fu6yM5|R=xl+l+ogob-oK>90 z-^Rp_A(6`4R)l3Lsv>sGD}sNS#yVBZfBQrMewjA;5{V5I3wqB)?^Zq zy{VEJvshqBvuLafG4o+pq-rHG=McVw(H(K-T6rU~sRrAq9|22)yp?m@h6D2e;?=|l zj4O<-#HTzy@g8=Qzc=yWiH}U&4-Vo($Rr=Z^6t+j{$k=UC;keZyzJ%&ImYLZ;Vcn& zLBQivW9JXV6jARDC69;V_6C4B;1<`fvS+Q>)j@;67{C^=I1YUidpkEr&aSB2b%3KFN9TVAZIpmR zwcH79+7!$nsST+7B)&|u^OKF>?ocHa3#e@`+xwzR0kn^X+KV+%XDzi_D6rd{u@LXC zOE3gM9nHEZYp3uhSt?`!nx8w3n~`zntUKc-10d+Kfx!XPo+;uxQuoY!!JM2kKzyB^ zc1qRgzz+4y@D3|@MWFb(N%!l4#9z6|(J!jKHxH-IEZ?*|dL&cdE#L1*6;v`c9V^Tk z%U)UHvVv#3YoUjsU9({Aa|9Nc$XP{r7qnlFS+0bn z`%0l!Zq`@hrP`*-0-*%hN-=CKrx;2{%{)v{67MgAh-`VQRE&3s+?Fn;!BoL$1#y*` ztkvNZc%g36n&MDA-NXFa6WA+Ovx$i(q4P=OPl9g@-X6Rs_`~3{);u_hudrTez03NZ z^*^kCvCa~aV3WPmK4zb?-)XC*&2#N|X&E@5l<#tsu;x&jO{D2ItS*>rK!;G0+@`I|Av2oicBKJ$ zNu|w*Z*jy(Mtmp?vUrg4X4&esxp5lV$#T6Tl{f{Y7a<}2Ac1!fmR!deRqgK3(rac{RYux+ium( zwzwVbjjz2fKA=kq$65)S*rGo+D{W!i?s#oh$xd583bwp5zdLQQ0_9C=+iP!8ErCtx zYWvR37?ibeh#hvoCu$)%@#R^V_i%4|ri0HWzXsjbHboWm#TX4D>LPcadTlXUh{n3D zwv;ev4{|NKzG6Y#vUEFAFtjACY(;1xqs?xi*oFz{wJV!(yQ*SlNEh%^Y)=_}GLkg1 z9|KB;9b$6Paknj0Ep4&ptG8)I+MmHHeSjq*#(i}$Q-WQPa}*}y3pHK~fx2w3;8u9I zWmqz@{WnB;vmw6)&52ucqZXs74(gTLu8O%TLqUvbbGkh}%wIL5!gb6h$&O7c<3fkC zZg;S`r8Q@0SebQV9>o>XSA2Bo;Lc#P8nnCM%T$5>rIArb)%(&s{gzlkHCp{fo93>{ zpg@o%jMQe`FEY!k;)M(JEOSjps?;h=PtuDeZb0*UL*l^eF~WqecF9LwvMuT(6IH@( z5;TUPf=Tce)!t&XNkXDYN^2;;yKQ>AO*hlT^mv$K$A$!2P|&ZoaH5A~LGrXFTG$4v+F`tQ z#ZosXCT;@J!C>Z$P#3Bt6Gl^NeCKEu#xgbOLIWB7nDb>@OjhP8v%#v?$xT60MW(Y5 zM5z{g3L2HIYm1R4cqpt|vXRw(`<^_t|F&CgVMl`9_KfH^G=XxtzE2h9`H_GyT4d>h zjQjGkR;N3QExJA{t5g>|VQ#6*(~YYaNcu>8*XcZ-iP@;TLVBf+Iz;j^QS}|PEsYdk zhh>tQ3M#WKn36hwcOuJ65x;a29#F3`rlFdf2oi!FkEsNlE?FAPi3NZcB>RM3~k5k6Uh>t~0 zi=nK@k=I_5A{qS@fYvxb;Ven=VXYOz5!aLOg4;@_^O<3`u`JeU`Z}qITqH2{YcEOS zX5;%kFI9f(qIB9?74<#kOi~x?AHJ{(oaDKH55>w$zr^fVO0rh{V~mT~2Z#wVm+L=t z>ufTBj2G)+zef66GKn@(E|X;c*SL_iFMXC%zwrb*_xPG~kM|#xvG!nV#p&;HnSL5N zO^)^b{Te*~EGF1kl}iTx1#Jq8MC_#Ld)~#O z>fkoolUv_WF4O17_r=D5R?>y(YuBo}RuM4=*G2gE@Qe08b$NdB+R5`*olmC$u*cTu zIC3YCz+KYL@<}{sgjzJB?jwwMshhM{)G9@RrXs>eAql?^h(R2?c>SUX7h5=vLgs#g zJdYkj;Kjy4!ZtHy9150a#yp2Uq*$!+0f9jbi!hB8Y-jK}si^B*#~D3AAOh(sF5^Ok zuv|)Y*ix`X;aYi2=5aF`tx#E1XVMU)>E=S5Cf^nca@`l)hpEHaXt{*#uMwY@#{zMa zPzP*SsIEcirZ^tn6%5$GHFHGH8FFYG>acss89i$xR}h4n#xi1E{H>VzPL#oi%$PE$ zCC^1nU#dXcp{L|UsA@*8)Ij=qo~j{(G1yMOhg>DugePe&F>vDM+a$`CH-`fQy0YjGmLY8InfHmdh`3GSIK4JSt&{lg1CFEXKK|t*?aw0B~#= z_ZkmzR(=`I!=vxA2a`E26{7<3Eib9D|8tz6Q_tT;AFgG7{()qdo;Bz)ijW37|B@U0 z#*0ky@}Hfm>nys}b-%qJw^T`IIA4zL_yKg;u~UUu#rtwK&&nyDvkEW}pg-K7l?$iM{PW22iAvc`>NxR?%* z6VgmPiTJfs9aJ-(htnsbn4}xU)q%|Vxq&Z7LJ6Q2@>2a0T7h#@I#dzfK#xtaOOQx? zte<(IC7AV-32HC!LbBT88OTaY3vvmMPed>1ne@8Yy&>xvvY2cD02GNva|Svo?h5*L3+7e_>LAZ&ux$^Fa%iaf_N#YxIR2EeC0UQ-}X2?C)RDVm5r*;CJrA5k=cWH!X5xuhpotI;K5t#kln*eXBq@t zCwnD_LJKses`}RGL3Q-nc>KwFr=LDy zn4=qUv0{iBEz>yr1KR7SKjnF!dyWr;zBJu)&mA$;F2lJ0eqd$F?*T*R&EwZX$uPbx zW@q@<@bN1S?=$W;`0GLR3{s=4|If<64OJ?YvwMsm{fMDWPdSd(SN-mu9usdPp~6Ly{1+Xbgmb$jgv&;ZLf&l-`vt)(L!cmb8itE8c>HvkXBvZ#vYriL|8Iv%{ek+ZY{_@23i5(M{ zOuUFl4+pWG*woB6WonB9UXLqmPm&?1oYc5fx;^vd_<1M$V zdPtFuCtk6o(7y9h_$Yqzg5+tI?ipLY(+giN!kwhYqeSBN#jN}@&xmcs zum3k~_zgx~8k^>=V8FbLIsQtlMj9y;+PPGtZwv58YM2WKbPL#`HPP}N#B$>COg3?>J~kZPTmLVAJ^Mc^+eT*(z5Mr#XD*1Wi)UxV_6`*`C<<^qUaSf_ z#Z|j6i{$4@#g~olm%`)0nv-;2Jbz4@7EM(_OpeZ!_LS3q#R?sd3>EgZb}9ha`l z3O?S)Swb89&+&iLt3P=7XgpC|Ts-h0^{Rsl(_0r01_OK6txV^DU784BL+@i^?80W| zIJ1NvYuH3;=z?o6Snygjh-yY_QGKU5#jopM6*zRLiM)FFD&Wb_G(u9me#Q2#rMde(A6Zj9Ma& zA?V{oW&pR>vOW;W6ZjMywg~YNdz0_SIK?7^Iw5#XV{Eih#PcGffNKR509!Tq4#zBF$>uquJ7r%{H1*z>5F%)`-1bRHZX z=Qq?EW;Scq=Qb^4qf8bobmPI`?A-cw5)?WoD2Qet0UETkIGc!J=wVKITg+6@JdkNd zBEjyKkbC-cA~qZbjTfgEoXF*uA3X5KD=B9RdKjE$A~F+kP7w5E$QX#CSd@6PfJqa< z8yoH*26KrN1`c66{32J+(__rjQ+RLWKtW%}DteH9W}c$hw`@4aIoz1&5#|G|U*86* zg_ahFH8lD3z6}H(3Fu!J;krdM&M8iU`>S2qJXsrLoN#p`z-Zx%PLibi*tgZA3-!2q z+kFFA#oA)D?jCYM8!O|cp6__AJI%u@#R5K((I&Kib)mJxYn~D~m3XrluXt?Hl4-Au ztKH6l;_>5o^H8T;tUK0y$%0oZdHLkh&7sg?<)o786DcJto_w)DZ)2Bae z+_!J=WE+ul(ZX z_)4wp>`Yt5()>x|lg8Qa8pX5M8%Mm};+_hj+85K_{QN>`r?&C)ai5H_ovDkD;xy5C z@UBq-)RR71IzT6Yot!)9ft=E>8iz+;TWqyjH}cCB`VT2!$_Do`YRn~Ei|OHy;^-6O2OBoasDGe7?Ek2C3M*4S)#DGaegJ=4#gMLzLN64nb%R*cM2Y1K~|7jC%cpk;{f0^bRaPT@PB_u~Bym zJ}ImVfJ`WCVPdeKg)mp`Hdp|ZzyiR&r$RtKOwNf_6Kp^ztu3%4e~ipTO&LzGN-*mb zqKhR=6JzGrXoJsz<-P=lFlK6|RTDpHA#S)Q{0Z!ZwKW+3LxGte{SSf<1xMe3|5L_Y zWH8>zCIsQ(=n;_xy;F9X#sP`hX?@G|Y7ZcJiCYI`pMq%aHUu{8?)S4}Cszk69Rhno zwnOSykaX<1Y0t}O%Qxw^3_}4@(8mHERTcId>+mXQ!wD|o9So(kA(3ET;@xIr9GXyb z*jNaBRbvj|mj=JY4SEin>jdkao#ilV4{cZi7{o^ZbW+`N`i9Znn|7%ijls{r>rnM_ zer4yQow#bj>^|TcoA&Rr4y($hoe0JYh1$}I)`5qw#k#oEGv4$UfAJ3s54`e4pIZOG z)xk!kaAI>y^)`R$%E{rblb5Z0F!jonw*_h^UwPu>LaX}Qp=)ZFslhd0_@KgE;O-MV zr|b_7VH5jio^6>KJR^=T5N>LQXh3XS6s#&8JjXI_X>(v%cJ)3~I95?N`T-2BKUb$u z8SeyKEv>?%pMq!|4UPUSgsY>Y-uGTD;0qqL8OHBpA1}n$x)L6f-cG4Eyg|J)oF)$2 z=-==&PK5I5@Yb(_gTw~$4H^2K6_G<(V$~_|I`B`?_1;RoKL8frda-8JmaMW5mZ~-C zvQHMMOOaBrgSJy*0*V}{W#`l%hs~c{&9WGt4cSMI*r8dQMe^#OL=v|176QZJY;L7K z^(l6@-`vX>EdhaP?cXOBS(dr?n~u5c>cF=)choRe-pC0tR}2HoDvWd#C#R&1#% zc13%Xx!Dxv6!pHJ8 z!4fbLZ{|a4;$xUxuN{NC8+t1LKpCz_vOa|e2wae75nqt`B`-P--`!dT-)$Ds8`T6F zL4;iS5iV9nDJl9O(;Xr5M1Xl0U@`FLqm$@=h!E-)k=%yVgI*2Q6O55l#J4vzI+m}A zstJy%f?1uqw@^dAgY=g`D#Xr}8zM~@Jx9decv6M(QRf7zq2y@9F+Xq+@VqoK*3qvD zYy=fJMlz)d$Z zJ<+LbIAO=8w=9(&%N@&$!&%V$L?BC{!DzvjLSu2;92(AWVL7?@3I~>QX*nF*GBX#| z?c(zTCU`S=(5GghYng6DArn!{i`R#q`QF`kpSp3?xOU%D;6aR@8$I{Aub$R@F-3d+ z8N3j?zd11$BmTJ3GZo|+#;6{>IaSqDlrvg7!1NVlnlbdLIs!UZrI`Lv+KsQG3oxSU zX(N5oEmq&)-xv(q2mQUCjB-3NR2OGDUA2yeo#t+Xve8*z5 zWE7j7It*voDEze7baus?EA^y1FzyNzo6TYXjw$<(?|=V4-gzeb3?m8pBTA7VTk>~G%;t-N^R3b7v^dN~Z`#4S87oC>fvP#Z{$ zL~Fxmi1=^o4Z=e}gT%0|Lb%#GtPq2hphzAy!p23sREgYaXrV=J$;c7wq63wM$JLuP zVyI~@Np~-FE{j!HllenWbA{%w*c?bP=MYE8&?5v?pL+BDyO{-< zEAkc$733K#42TyY6F8{iq8eihWP`gT*4N~cPbY9my<|)$^7vF2vMQTvkS;FV`cIt0 zxbXTS1EaBP=f#^F9Tuf@rN|}4N=<=s7LeQcFO)hF05M3?MFY@}W3V{3r5syjrZ(W} z4~R!LD$_U^PkbNioN+Dm^>UHi6{eyZFN0mtJ^ic6MfR zdCxV*hDO5!KW6Wuu?^f3iP|Q?5XCc>PofkAqcgL*|b@o?B9zXu*qsJfre~unKPIaEQj;29$ z-U@O65C>`oS8ZG72rN`!nB%^Bz6jbU!vWbYW0SD&vefxu`!xMveI3@>wl;);_a|`x z>7u&%j#6uN^*UmW0$@FQY~S6-4;6o=t|w|}+$(y8qDw@DLIuPTkS|yi(*z9hiVx=9 z3NgOC!hFTeA13T*bk`d%ddmgs*yy&vYc{LzY~9?792>od*kA-0vF!-ayOLfm8p);{ z7*$wSg<3M7HumrTUHvy2<#If)_>!;D0pD+MLJL#n`PTlIRdMva(dXn-J^%M%j!A>L z|E?;HzN>xG{|q`ig@khN#A`v~{D_v*%xXkxCUvgCo}K;qfK9z+V;-gvR%KFS8D@#) zn7_PWBGq*?ZKxM!tWLG)t)Qf&LhvDuZ3esKhG3G6*LS4@Ft% z`5~TfB*DR>UNwLMu*@HWQNppPURnCkO@`vkP0UF0$Y|WhfTa<>N1S%JPCy{pE$}Di zDCjgpbhY7Pv63{RkNQ6xW2)@^rB_~A(O=II zDTkmru;6wF$f9wv(lEMOPxQ#yLj2}f?B;l3q<_3MUc_DPl1nJdGH4wb@Rv~JEw^QxF+XIHhFXKJtz!B7Y0tROtK?m@K-CyVc_Xx8pw`DM47VQuvf5UgjxxM zCEt>foe}<8dx;CL4l_VG>@a*8qYQNY7N(nwdI958rh$G})byDqfMcORd`J5O_=Hva zvC*%aOR6~C%p#PZYVX+5R^`__^VUohnROu8@(f()%>c2Zad09USfLPV6n`hIhInwenp5F6V&M(OO~L_ZrPvYNAhAqWhVWp9VKq!^Wm zkA6HiS@=vFJ&pYe<<9Y3PNdivMu`^E&KBHw#EGl&#+C!dqI!`u1ySchGwn~@Pk~nG z)3^4EK*RwR_cs$bi=wcSm+=w=)DYuaoJgd5Szmq;k~t{0bCiEd1YaAW?`jVR`1q!CAA_85+4^gNF<7LS;@Qmx-7s!DBcHBAf`_S1 zIi4nZ+;t=g{RKM;y`9DWD){SvpZFKBx4sXK+UGzU|FuE`!(0bLQcLa6x1*k0S%GSn zv>ZS|x)1nC^Gasl5nHl}=y?soX>6h`o#(Go$Sr7JAO3FWCuLpfA^)w<(gRsEGyWw) z6#Q!V-+0R~D)fHcUp!^Clv_3gsX_FYVkRzNZJu8JC`XDGj>IQCYs!$UT>cxEibcQJ zZF5Q@2~^IN*~txF3r`nf2PhOZSE=CRNZc<%XEB^3Djm#4SS4^W%#w|$V5Q8>;aQiv4^>Bay@&g9s6h!A;#Ob|yU0w8`OIZ6~EP>HZW zI^v~^1t^gqlR(vAd}^+1CR7cHJ1Q7Zh=^;(^)?#RU<5#uUWn(FM+zr`Mjdz~Z`J{^ zUCgBfw;wcqA=&b8rwp8YGZH>L2r~$pHb5&VcM7pZyc03y0D>lHp@q)QE^jGicDvH} z5sOG?mWmlP743?L>Ja4*idDLcZ3|BUW%pyCh`i|lbnFbAyF@>k^mnc~oGy_U4T*Xr z8`dEkRTS#ks_JqkHHIVJy}G*d+U-vduHEF`m>=BH+}qrA`;()u?p)cvtGB$cG%(Iw zbIl)Kef1xXez~;t)tBG#w?k$8)^Cl@{`r|3KQ)&3ODqTn`--PuATOUoAf*W=lSsdX z&4lw{+ovakYl{Sh!R`%(1sP9srcVRU85kBW!c#`?|0EFy4`?v+7ICx8cQ-c#loF}5 z9EjTttf`3h##>IgrAWk}!z)G>G*n4o+EIw?1~iAD6^NR-)jL_4xdXr(&I{@=P#&mP5Ge3^?X#0(vqXBN#f# z?$9w=WW(4WvRlKISz_~n>N#D>#?5GcYOapg^laJA!35Ipbh_Y&F*u_NQ5b+J6sy8P zc5F;pLJEq}Y{`zCR}Sm~#D~}rs=%PkO_oyVx~yzA1pFK~*Rwfp5m+{4*g*IN3DAwx zLK3B<%;$_(aAzw0Iorq~VFKL@(qNSrV|h4Vs!>QL%E)1PJ~xk_gBOLa1dK4lk~cOx zK_C|raVr%R6jTZp8n5!%XkL(rf-ok;u=CWM9xuKOeF|yX#n5@ZtI*~+V@68v)uboH zfRDj3J~!6154r)Q%XFod3Z2V4ydM)pjE-oNVyg#sDm;A%abt*NQbTEHaE+w6by*#~ z8+C5Wa-D&3qsUFXkC$2fjJQ_-@G!kp0hk0vn=J;&dW6=A7Fs`YnbpSVU;Xd%r<|hj z5lLczU4=a5HONyQp7@sP;(fNF4y%7BxXhc4KR5o;_=53e<7>v(*}Yc6SC&y_?O| zeMu^{=RSQ;-&Zr*kOl6Joo9}P9A`jybWvEy@?GVF$;1`@E>*iiY5p9p-KvN)onL32 zn?|wy8e+g956DT`TIfnsd;Vx0sk*%7HUs~9o-*fFJ$wgIbF;n0d2p~ST|@nJ6{ULh zpfCo=_+f6=T2ym7`YyUlD%@7c9FLBJX8nBoaT^{;OZm|_G8W|RSHovEr84?0PoyUa zH{<3~10ihw$?=_dWUN+TetiCC+$cOl{SVpi4v$LF?z5f41|AXi&K%>`M zfNZ=YkuXNB!T{MeQM+ktCxBuT;}Qzgy&=!4h(?ED_Ye;c2cm+VmY^zHv=cQ@WzB=la*leO`lrjqixH zZy&%oz^IsN>PtQ`v+TAs_8S3!+q>EHGFiz)@o@XGIb-=$Ytbc1zSF03r%L zUm%SK?EuRo7RS@;cublK3u5|%o_E4@O*Rt;^&HleW})F{1K28NGSe;{iYVI>fIyj8 za!Wc6Wy>3=f9(v}QAM9pDBUD0IH<1*v|%`6eAsDl{>@-&%cc%YjX;KGoHNf~<+ z896XURGJf^Kr#w=H^oOHj6IqUR29sni45=08TbX(VX(fiNfM?9&AW_385pp_bT)&U z-b81}NGa0U!j$mvE|ZxB8aW&zTB;q>n+5JGgH@(Jz{64$RSwvRG?^VZYtDq+Kn(Vs zQw-j&2O4~YEZj~L3M&}1oIo<@1|wi`1ReTDcFYhWo|>%@=sD7!OeX*v*+nxbr8%5{ zmEbg^CEyT60DK<_*2r;osi^A1&SxSZbgjwp$W8 zIXKgYA@KYhOcLlez)_d-AyPo`WHP2`7 z#8a#JDiEf|^wYcYRpVsu-UA2KZ3hlKcR-zB`ODh3G*A5H0nvDEBb z&RGA-jg!9`P(R-J&6{_A+jyi`xa+zJ^-}L1Wj^;@@0G8A{Q|qR;7AgJg%B?vHh3}^ z<${2wyL0Ns#~=R*ZmI9}9&a?%eroe&cJKc0uRdn1-~EwH>Y;k$>G~#-mE>MGY}`@F zuBW|S0qt3H19k>n60JlZY}B42QuSW>~)Ertv8(@De z%|ka>Yj+_)LIW+n>BemfF{r8A&2cVav%cX%H>f$h@Mxb;%e5d3@!J>F{C!06kt7GY zy$zNw2Z%Al?noSWe^aL$Y;o?5pEQPCQxS8K{G%S##`L}USK;wRbKK_zO>izbw-477 zk@2Hq?=d3ej!7~vNtq;5q?In3v1mGzNU$aIoiL;YWg6Q;AeLtq!11^uG}5q&O#@h5 z+cIwki_Go0ROqA0FqAuzKudsLK(gT$&{rc=oPaGvs&hVv+)PkW6_36BmNdyk@?M@~YbCC}k`e=5Pi8#G&uvQL0U1RRa^6bjw77qgCN@ z&~62Y47LNqtW7TzAP%iOWI0+QdlxU*Ic4O;BxgkNFp;@#+M6`2_N}$(myEJgB@P9Q zd%h^4kLY{l8qx*vZ)w8LS=A&}6&6z$V4@REH;qz(%tKsZ6m(6gP!^Pgv1}0c3J{VY zqI9}s#LLGPlGx{<%z}XGzsw4hi`i601j`@R<+RCm7k;9bU>U;UYSxo4?eKHmEk?0PSP4HyDLdUW8o z$z=7QP>xwKOyEwm!Tm8taX2x6WnA}d1KL!k&GD@3OT40#h(M|#Mp8W)J+Q82ci*rk zqNxf}ZQ0u7LXj0RoN>CEYB=P%# zQj#&Of4WZD;BjHRBqu&V6|tPUQHSvYNX9WJWns25=2<)$X zGf)sHNDu|9G|DF$ZZyBMl3sEv>ey1PwzPe6auL|RbK*(zPfD~OuaGf+YrFaQBxKWn zzCLYss2xJyQ-L-R9WtBg3aZPh0Hcy8pcNm{uQccv_q_K1L&`);BH&e z8+RT(6O{t20Mw7~C-fZf5KwE+*mdaUM~pptzq4l#7h*;K-@iW5+M=SppMG_s=BI*w zawn6JqGXW>){5}bBgfye_lhg7xVbV8Y~ASNa@vf=hZ&2O;7?R$e8!Fm)J`f&f2sHF zvRdwy;JOq4U_9Kr^W)p^eD2fx5A5H#PrsJ6_)454i+fV%Dw%dL(-)j3csA*7Q8!qBnK7_~G_nZ%rduxmt zLQK$<8Yd4lU=F<2Qy8wK{al zsWTrAoc@qHb2^~T$aa?R|Ih;usM8N9>+}O3x}P5!2mC(ckgr*2u1{}qTKy(_q&`ST4ZzYU=&8Oz z#Vs@*oON4Jg|zsVAD&ub-k}o&9WxeDl*hxKoRFb_1pcAnyfRuDXA|lRN!ud`vi4H* z)Gg>S20pd|=0O%q>CsO8(C#C#=%%d)ud#x|`35#!Twbs@B!|G+WVk@R)?CD`VGAc` zTr`qy&P3vu)Q1p~N6@*jVh6BDe-9?4ey(D1>NBJUqgEiDWBw;CcW5*|d)Z_@oFef! zWxtH^NP@{r$c$y2$SX$Is1e9zDYjy}lbiNSXJ#N1jz?3_kThcDK`#LKc^tWF ztdt)QB9F?&i2!LBu}=knwhdNtz~6mjvEX`wv1$LiovEwj{OtWU$xh2WesePB!{1zy8q0n48NZ!Ty8w(TZU5(~Mvs`UX-X-|%#kqF1 ztE_|ZcFV0+9p|Y?DE@9K_QS#8|vjnZ9->66>>JE(*L#f`*EDX$cL!+Cj!(n*aklHbn3a8T%lo^q?vR-L( zzL;?eU!BZEunUAZW{J*YtS4|gaD-wK_=wRFoxpN8d$ z2#9eb@03JFNPCN%P3Dt)__1dZ@a1CzQv=&H4jXJtiZJ#HkO$__|85z0guf4f2MDp4 z$;p;y&Dr*xb#L3Y+jjqR4#|Da{-A6?J-30&zxosxwPyYAzJCFTdP6KM*zEL!sNL&vJ(qGAmy_@P>h#Kzw{;;4he! zZ9=<980L@k4OwqvPHMw#9q~ePxgl-zc?{X%v=4Ses{6H^`Eh(mUGcc;V|3u;#v*4C z8>epvFN^XI=ji7f_M#2$aD3X!n+dF~qI3|;YT8BU>nhRnHIC`1kuAV!pN zzzZz2PR*G__zF3XE)m;~Bqz_GafLZSk1i4NLMx=KmLsfc2{{fp=b-}gS5~1o5RT@F z=*W-7rtW-;hrvY-N~WT*B+g8J zg`?pH;$Scx4&&zlEkcwl5Vg0`oXDn_S+&AMaiJi&by5ASEao^$qZ0#fVcrSc5)7h3 zN{iTqpaIe%^CF&%g+m!PBdLgVi#gn5ai3d8)GZJgsrWqlW^lr8GvAj1) z|3-`W&UlE3-j35+Mh{q8N3#7^6}R&wAhVFgg4sKG1n8I(ZSw4y@r3qqpgeRGvJz#w zDVj{8r%Ku-clls^crlVpBS!!^OsYkyC%R~X^ivpn(vPD_wL?k(DFoVJt)`lYwx%&L z5iQl#VkAtzrm$Se&L%(@%iNwwc!fdmJaKz-A#RC?s%gt8{rhPo*7U&h1OG7a&*DH9 z=q6$>DSMIl=@xomJQoB*sTX~*5ZO#yH(*wjV4o7PQbxWD(9+BGr9q~N?mQnEfi^&R zL!Xmvm`UjT+E~|;%yV_iX2Fu_l)&5tmBPuu8X^_sAmM`2|FqcUx4teZG)N>(H&>HY zY!??UUY7oLkzom!9M9A`41kX8k@F;JBv|7bUNzu0M!zMol+ZS<+Y)y;;^W4&0@+qS z+Z6wWv1M-ZbHtRTKH-GDK_{f_Lhmo_w2{eBKK%4-e@f4T_Bc00S%v?TWFI{3J zMm~?D#7f}u5W^0l61-J1k`t8cgcG=$&G1m>{YEh3$~E9>i6G7f)c3A_c#C&gVpsX! z&wQ;EHK}$K-2Thjv@w;*T1F11O>y(4BB=A+BIO zVpQkbB!CMH!9mREg;2tC$D?*DBLOCu_`?J^u#G>A63i9LO;I6`n@Mp~qUAdAM1%q% zR251mH(NEeX=Dm-b09ogCZaVM3VJsA#_?cd+7()*64i|BX3|bIONw+OvDEvsI~|Ljs8m347?%;7j^tQdn*;jR9uLJA zot*c(zj#us%IcclpMUc;Yin!2c@rP%hxuFsuTk(`T=(@xdv2{!7+h-`?;MOL{+g2E z)J-~dYJF<$HQ(I5wzm75uVJ41@kc%`A>56O)?*6G6>ew_l|0nOpBy49px=l zazj%i-bB`kb5aPV0R44%mlPD46Z|l@&r}jAUw_G>h_w9=iCE|_>dj=3*(O1NdVc#e zRR3V*1~u0-q-G0`6-7Z`q&|Bhpuc4G`8O9P@%LOHS~Y1)1zv))H!CScHA?S1O5ptU zox4W3e{Nm-;$~-2T*l-;(e3MYA?cFJwrR-8 z|Nq|o2iA|$@a^d5pE7q;3ixL#8N$pf#F{YZ`2SxT6(LVVEZ%&2I`g-0_&eWMdMPWJ zW5pz)yNUVM;$hM=T(Iscxo-KfaR&buH0Z(arH%Xl^>*nO=^Fo;&2sDV$aRw&y)b2H z8IsH6I{A|e=Knl&sD+;|U`KMe7;&RPc5ux?@Zi`IreT6y68|o=26hn*iy1<^u51+o zqzSbw$qRZVxHh3}_#|4c|=goooAs=lim21M$v-=w`PT9FEfB>YGX3D)2u87 zBX$&UusG~-7Rv?TvW2m64Wuj)7af1Rfiub%z#f`JOvc0x3xGp&8r+x$b5LBd7H&rl zPs>$tCmbi8&r7a|wuD>AT0VGLVY*G)!F(jHMEtKDAomIn62~JoEkZ%xcZzF~XPVT{ zMobg(MxmuSP9Ue?bpDH5;N|ZqXVZ)Q-};xVBv8+$W}TFB$NeIeGz5GIx586NMeA}X zp};)KmFmV&$hl@XGH6>Q4*?)>4S}%0cVlKG8kehg?U)Um5R-_$AZ{9!1Za2Gv5^lA z8`z^T`UFfltIVsK&n$vH?;Cj(Ywajk}P zaa@=l7oxrkFhg3$JOSuV+~43%%&@?f19+6=ei+mUNZ9PT6I!QI{DJPyrzi;2pGntcb=&5R@^afbr3(sGwX5 zZPSblBdJ-7gN-(jk44L3T*XmRxh~m_Cy@?Cn9{+p6!_-Sg%Zdg&zx%l8evBeDH$X3 zOoaI87gx^!ldfZ2$(Q`Vna}u@UK64UE=UeRh!h$lb}ikkt)CX8O)i&Vz}<5(qUeiK zZNvjyCR0cRUzzLrATCOOBfo|C_x&&tu)Gay`b)&Vy;icYq;(1v-|ra_E!mYR^v(T%!(L^KVW* zj!61f&#kVm?zrK|>JGK4BG2A)*=5h(^FMZV=H})eJa+8NY4Vlry!=Mh{-Ybm#>T3x z*|Dk`yX(+OrE+M6x&6*luU&ugU8kcD}MC$G8YiIXP}ly|J&aAXIK?KpD7>h^n{ zUA^p{!*951ZthHH?$~Q~9ShFRo<4f?^2=uf)v?xWmDZ}Wt+A1nLt~YdnQ7lw^#Ho; z#aNTpkjYbW@7yKaT`G9Y*(u+^qhp{X+9_*`n6BkC`9wz3S@L|RBLb5|xgkg(5Os`o zaslPr`4i-lNj`eL{3sN?6GX+QAEhP`4^_N(%yesFx;43iMHP1-HkuL!!PazRA1f~I z{bZq-&&A^LOC9CxJ$O*Xw-qT8Ex*H8zV^8XG1M@4iMW>ZPJ!HDgW^Z0aT`ngXF6yN z<~Cd6a+P@XfgfWx`!1PXW(U>>jtsno3Xy+6{h$9Z@Qs1L8~EYCj|B0+WlJP2cQ4X= zR)V-TG9GMf(1{#ni>_j>s|!d+Ah$3mL~IsShIS|}fy~V)LbNZp&MPm~^UK6%;VWxn zWXus}XKOnnViqep+UiK|la23eJ1d(}6huXmha?6{Y%;mgjh$sXYe+1Dgd41p1Wi<` zdTsRlVz5n;BuS_+ut|jq< zLP2z1S4guP#Yz^9_IlNVc)3|r$2S&xJqKkL3pO-13CV$)f`znEugkH9TOwE>K8b9I zd_+VCvK`S1rnzY1E5qMQMllvK00d^ZifK@4Wo zN4t6%50aFJNz@-N)$v`e*>PrTCliYmG7IO~`ah4?TC+Q=6e1bl z9E(>AuVq||p1R?y@v!-AmpXe&J7_Z6;v*#qwK7wu2*RA`Cwc1MLS6gW-hb_0wmjmQZosQtG}frMHyKl7o0}tJYA%o+ zy?yzTTtux*#5W5+geT}wYHcH*hc=xh6A2j+Go(rt{g3!CttW`e=xeMNo@Xw2ZmXY2 zj$0+H2u;i;&N2ei>0LX? zxN?)^AWlbDcX~-u@UCnpW0aSFh?K^MrY-Wp>%EbR1Wj_9)_B1~lV)qO>3XO4U3aKP z8sGHls*_&ccirBlLfTnbb-{&T_GMadgm9~9e!9u-{V}sn97q5}*PxH-%J5Xk>!$xP z?)R4j-Sy=ION)z3mBPZpvd&a+@?q5W&ECToQ`bf3%37!IPDl)kA5kgKbgrEirIu{I z^bcA**9y^wf0?C=brGjlu{n6x~t%KYPrV9Cx zx~njV^VPERg}?mEkXK9rLR$aQjPPAS5|FD)eVz!_%)mIFiq{NWF>n>g{zK5-qwE0( zMsMYcD3C*CQ2xQ?=?bBGbV4~8ykyko9T=}`-sJ%Y6yvOK~f8k=62+0$#85k zBJ5d6Ud8Hqk_<5?fWH#vU#f^5xt`>#9dkZZ`E&*JhnFU^KCm2*Cs0;ZNxba1B{prolwt6F8!K$W6epsy)*ZoIk0GKSDz2rNx=md zhll3x?YJaZi6t_rWAuP>w;lxw6en>&Rw7{HiNQRGu%kDEX%U#OIj>YZ8q+*V`fM|O z_6KA@x*Q($zJaf(g4&^ORsTVKQ;{T;8NfShQ|?AIdw8zyH>v4jWu?&5#l*6AK?{(k ztc!_AEJ}hwfK3}?f<%{m5N)wN(~qp(=s&=fBnjmS2reBfiR4ehLqP9p8Hi>tk_SNg z$Uf%I<$MW4KCuwfkcdmNFXzL8Wnd4M>!WT|MJy9zuv9ka`cj&}Xlf)}4?w(_oH*SW z7fU{@dRrTUST(~X%MHQHSVitaL+_;TfjeMJpQh;+g|;%5aZZpe3#)@BcXC})eX4&W zVt)eN&!ng@zu$&y`&iwHAm$}4w z`IH4=>U@jLF8`*a9PnTLVkWnP_t1MzbN#X?Ey}?du|cVDaMW^+YsaxEY1`#s-IDBL zIaLK**mIxfJjKH%E)Eu@3=UW`^y)uCr5>J6!~7hEp5t6u2i3!GpJ7@3`ov6 z>B-a((Evu+jsyb^yS26G*lFS>>a=YQF~E>!U9iMsbTCi zNEe_l(Q{FQ=`$E4xloL7A`iFZ3XxSpHj1wqh){nXr3yD7vI}Y)+Lboma7mIeMcTkD z1vXl&HgTJ$j0XWEWsul*kz2&>W!OVWe1ZKHmXS&tAmh14I{?Za5(8jwhQipp$TbxSUeLNqC6g69fFg;d$!`juhiHRhLg7M1mlvan zSPAqBZmqwBkbZ6l_Clwmx6o4Mq-JnXPOfiJ?wsZ{PxSrxTk&;Mbr%Z)Okd<}-V%by zTQApa=ufWJVfxQ{aCf)}a||A*{aLb)Z;RKAPmVa}xuykD?}*T&7H)g=lPBFmt32U^ z4&_DOr3^{UTv?)y5d|bI<0OnbS#ikA-6k7p@za+3kDbHS3h5Nxh0tPrZ@UF7G+9h~ z&2|ObM41+hGr=crJN0-_*@@A~>y)><9N~q=62zEWBl{FiEdxJfK&k}=!{w3owrs`? zg#P^l+ailwnw`$drOS)BUSIQ?YllkXrP@fwttFx#BDNPX$s90$b=KG)n1^SqlKtT~ z=phXD&~K<73V}6jh^Ih|_#zI$RHZCAe4p(#;*-EZ_^t$zMyckf6In=(hk#xo`iwY< zS)tuEeKmOo=~ex==CT?sHf`MnGUFloA>Qo*dC9& z)VwY5@-n%It)f@2rB4LQL_I&N`EPkgwa8+avolmo0xjP4T-bT#-+7)4tK@-3RAdXlm`9oG=L&XLd%dI0 z#c6Y+EH~0B0*=r@P4AF(Bw0&Z(>P7pq%?|guu4(zWvT@wt%Ix3{LnJpqjOkoC+6}# zG6U_9u_Kx*We*VQv|c|aoVJs*>+sh)0*4eYBq#B#)F;$M5l|=TzfOIYFDckpx8+k! zn#N1kg87JL^(^xdbHRGa+IMKLK}7&fLQewL(TNR&o-P>oska!Re-4>n#VG$(lO^LV z>XQqzX5i|A8T=iIdC{*Ofxr$;2Q`rh{!YNG7=bqgauv*4HTYPn)zfGnF&KrYUVF#@-3Dtpu$keg3!lZ?U zupMBK9Ie;Sv5EGC<8w+j&XQ|V3`L@EU{K)`(Fp1#@sh@6nf?3UF?iel{R$MAfz>N@ z&y6M|e*f{Y>LNx+u{GMAa(VCe2vN~#BA1fUcDocBA;CQuhGZZek6f}>jh0DQL6pq4 zvFh=wT=T}2%ZOEuhQ1jG9>TDR+)bJj@|A;BvehrzbL!t*vu>U}8(hEUwoV()gWaq- zd-UPh9m=}Ny=Q%Oaj}e3Bwz=IJ9C%pJW)7=l_uf>)JRcyB3WL!%rGunDND5|vohp( z)Q3J)II(lNGglHr92lt4ZHuex_qaD%>W=tskW4LVI&(pf1N^r`PB_^Dg~p{2;tZNa zo}KxtSIJ@Xdg{kdVWHbi29W_J78LTrh=j=V;)f1w7EOSe#SG+6`%1+vigPbRpVFne zpXp(lzdq>_-*L^y(}M1+Kmcbjf7J20LLB{_G=-C4AP+}{a`6Lk_pU-L8s8Z*>LE9i ze{U#|h`a^RAE3I_Z^9LG@5 zgksp1v4!K_2^b$X(nkp!%jLYcQbi;9-oZ@9uHXUL9gjqY?s8-Ml7j`O6-vK5A5^_x z(xl5dNLwp6p}#1?W24>hpy1m21uelKEm0JZkpyR?Z^Oh?-_E?)H}E}`SJUb>>PmHo z`d#(M>Wk1p?M|hWbHw_JpA#;@ml*ImC>m7pm7%JK{V-}bGfEQ%dX@kh$q&X`*aRb* zDWIo;XeiP^w}ao0P-MzD&Y*o*W5b5ufIJ$45_nj`nSIfG3@@gh6_vUtb!3G#`S0nu znjCFAX&fI^TKoF__0B%=pTrcoWnoG_lwhB39$(T6E;peHiWGqrve$O zpzC2EBSC~O@y@Y~fl7q~wGk^!T0EP&+2Y%a#_~zXOwM$hKx6dC(Y{gb(bGRgh=ugn zWBC~1;b=NAHMj`kI%sA|u22Slr$-za5Riy5;|ie77>pGdmKgnmg<>*Rpd3g(F(?UY zl;vd2axykJ6tjm10q5B0a!?rLA)F|3r6M^-F1l!>RwtCt0Cfdv$QKida^mX!rnn;U zQb_Etcn}gQa9JLwAqE;7QOpS=M~A~8155GvsS8^U;O$e9m5#J(oNKg1gx1!Z&o|0M zIo~FYhDh>Hs~LmHlw=LDdY_RL+m7Tl5Hk z-0;7-MCBZ{Z^qwTq>cu zo^F#aph*{7Fy3vtNl=%hjR2_>Cv&X^>As{sfVd*(}v>v0>Q;$X$~sok$=I#P>#KJHwcRlCwJQqvSed>|DnWshqRJ%dPc$qJ zVU>9MG;s*3{NSFN8m}%8rpMmA!!hxu@Lt|OKE8lfD&&CA0H=e#kh5-fmKE|&HK!IX zpPjw7RTTv@bE{byAPveI}1IT%W$&qXc*z72as_`OYjy?Nu!#)H^6Zy=}Q+XrqR z_``vJ2ZE9=*Cbp_HQkOdCZC#~3v`)-@e7Y?2`Cch6R;?b&^fC4C9x`wzL(P!6HX>J^U}8d_&T6tPs};yk$lkTqVys795N`l;g%Yp54r;(LQq= z>$4sjX8?gQ!aSCpRYO;7zjQnn%7mTkcg|e2di$1<)I>cuGqb!k6^p-i-izB)SKPk! zvRfq_pnK`bnTw7?)d1lcuU&@@@4U>mhii-Th1ht}O$~{@9B{WM$rB{~9gVFosGFf^ z4)G&zqN}@Y_;E|+iZjyjiEy}3u!2K?Io>6E8HrU-3MTx4$EyqYgAUAA^= z#0wbn-SN$Dx@mc8I-9*n8JS(f^}I?Jx0pcy=y;t2fn;V3CvS$Mw=@Mia{1*!GigUt zAv;rai(9sO-cWd78@iBfBZ(@tqmZ6SGvb1?xlEG;R13MZ6Y-3UGv%f6&ISU-t)cK> zK`cjw!PM4b#&cXjECx?tq~SQ=5112%i{JvuW%f@4?`M3p&`Gx8vDG>oI5aWrF&^rc zX4Asyb7I_tVcS+;k}2tdqsM@j1Vk!89F%FVM-oSJl(ZxV{VTsHAFj?EFZ67!wn>6B=2PlL~c7`Bd@hN2j zLKPPZsg$gs#)5wmx;n{RYYi+9T!L)fr8JB<7O}5ay2!(`-4=FN43t5P%Lz3zRu?~G zj!N({)YWTf{(FD;PJXDzWi>0+-FH(OUj3GQ ze59!^SJTE$V~a5b`5}+~6pK5JX@-@Wk`>0Esymg@I|aqy`8UwzCb{O1lRI|{*{v7w zXkCu?VE@2D@?#yvbNjY|lSJozVBmftVIQV)&I<$obKsvqVGn>HietJfP*$Tsw)a`J zpq8Tg4ZtlfY+R|ReMg>Rs|#?!zj*!C zzk0na@+F#-?2wbY+t`82Kezo~IbLSj`5kCLeLHGhk4|EJI2>|UQ_B7gadf;^q*E9G zY{YDBTbBf{M~@zrD0rpz3Tu-88;%Cvc!Mll{V&%a{nuB&!Pe_-cK|a_&i=M~_!@tCe+k3$X{~U}M z56KApGt5-TbV?O;B5NyAiH%jqT*2}{pXng%yf}a>7^zYG?GUk zfxHG)Ck>6Qj2fX?!&s8l#+nMSjKFODJ4*klzaK*q;BmlH=n4HG#Qytx__41t4#Jju zH=-@-#}g`(tOrH@!;;r$#+m|`=;XJ0TNk%huz5!Zam_~gH?}US`6(>ZqzqNj0z$k= zVnb80AM66_b}Z80m342K3q}sG?{CV!%x{T*{|n}K0?)PhymEN{@Uh6Jdh)Ty9)Iky zbv_?`)JQz~*kg~%KRa>E_l<+QrIO)}79P-h9#K=9V6I8Hi8BN z9LlGbpMLt{M1){cfgiz+?8Sp?^$)4P8*|)JsVP}N&FHOf2Wx7_6Xb)Oh{gup2(f2n z7a+LQbTP1zeSP3DCD*IDiOemz3Wc7_+m|?)4a_{zSmiA?3c~FT?S|8PF$cv)0aHR= zL{8jDtnJTeUzy%GT3YC9<8p-P)ncNOUFX_NIbU_=bh4E^(Eb;9FFLB&MEYEhW1w}? z+K3{>s_Zr=PA0xNSQ^t!UvL-NY^IM8lnJ}&-MHL}Ab;gRDUr!rZ7I8(#BzoZJV}O3wn;aN`xzXDMR?qQh^<7-CHd-Yg07|aOC#-cwJ0 zZef}98->Xi?vwiyem6khJ`eJ6g+=ZHJL)V09xDWPMEHaT6=G%}`zjbqP3*bqbF zcnbKI3#^W#OeTo9dSjWOuwANA-W^r>WGb>ZGgi&KC#&4|WU6DCy-`+0BfBSoH@#=e z7BzXbY9_GGMI(vc3yEliY;n)WqLt{baCr|3O+LEEb>HWeE4lZ%Dsu%Trr37Hu#=$uDp439_#Q>=TlIh7owcC~9c1(CwPY@JUI2>7zaR~{PZ$Wl;Uef8 z_#xXiIFt?JCKmX9RM9qreZf?)w+>+zrxLq%XGw9>CdUn4rLlHb5ItQ`A8or>Y|5Vt zFG)tHPh7u5m|Q0mD%Dtl&1_YFomv4%%J##>rBLYL?X_C1(P}mLYW0?i#a-;99y)S_ zigz_9Tu2|utI&9eP!Huf;aDupD^~Nr##Jn>mg*r;LMmUYk?0?$$TYgRkz{}W`EKNH zSRS|#>8HtHBjCO8sD_cpe&9e6c=MEDqIgEj7~VM(NgD*%ihgKEIHO!Mk4U(iA1b9I@*kt2w^72elk%V zUtj-87UWr@`IUlGC^9t$mC>%EWU}1n;$F;jbIfLBD9e+XN1~g(u;J69_&=d zAX8MX&2=Exi0IN(B+ZnfZ(Sc`y}rKwlf}tm6}xGuP_0!e`-&6B!G+QyMVuEGH!kEC z>%+!maqq5WR}t+3$e~)?d}@7Raai^n7CG;i16|{&@nP!F?PQEokxweI`wR!$5uJfn z1zYoh1R@o|lenN9cskq+Xo)hVp<5&|yVyiZ+NM-PheK>y*wRcFH%+Xs@4u>;DKr9C zES58S+q2si7Z$c`A!VXB^3eaOwIBqW;j!5niF~l<%SF;yilB2wO*@n}z52>4M@sej z)eARIUcB{7uU|MgI7lpcW>aH!_O^vzj&|RI-(-hQpUNDk(&v3v$oZ z$@F$T*=?k*h5uwl&D6;O;)YB~VY3X^jc`M8o{3>J4j;y2%B{)B#ill!L(CKynN4UP z_iTtJ>I=A-Kf4ke-v1?H?z1mW7K@~ifSDR%_nn@fd~u~xorG05p}a?Br5`z!syR2>!Q_c<8F9S~JkR4C=gY*%dB7{~>lt((zSk@iPH#_M{EWHWsNb5@eToeE2 zvpR*2k2?PR=Re3 zhfoZ0%vr!Ogle^@Q^Z5@!S*$x@U@jc%TU#P$@kxl$zy>BLuRyQq`{0RR@%!i3YM%D zbO4eo6GCsU_g4#~W>!KZ+ftW$7OD442yP>CD#yM>y^1)Sd zKq&LFFxl&hjTm8etK>LEfczp!BjT(`$971q0uVRxjI7_m{^m+JqF1=FxEz|uTVIf7 z;_(b?lJV7GKH)z0g^>G2+wJ$Sk1G#LhDmu=WT>p$bvsC5cCv$!ALr*Ee)_?;jj74E z{ac+#=ImVuUc702#eJgp==N_MqYaTOUq)8=2ApOR-~Mk5yp{SOe=O8Bi(p^_JC_7< zJO(YyGXnLSK9;wyu670YOJ)Mjz->AW5U zEsz9`RB#v?5XmK(+>7aG?NGjgpy843q4A$;g)2HixBUbcq5jC#P? zbnvKL1#xV0Y3M2_^YV z4Z1SXxE;)Dk*K1dw|4D!G>qz;)C5Zc-|r6#WFHcg%mtak8{sgrEWiY$#s2f>a2{;1g<^W*HFKXxo)Jj)z- z{Bd>g{)f%pbLJzDV5OTUpvHOV(=HLGKt(H*9)OccmK#o70n!HNqokH(+m9!&D>@a2 zzy0)n*}?6{5K2y1akqN*>@5^+oR3z>8>DlQkQ~-%pf~NJzi$Ei^aMQ)A;^oV+bi?9;3}nVE zTY*3Ke;cj!11Img{?MP^byBStsV&cRq$;M&O1{qhlm#-7T1Bsx7Ryb1e-gibEyN$T zRoT!)0Oe)2LzY0RWU=|Nd0rp8nP(-F{h8o%wV+ z+S+yc@W+;)S-N$nq|uJWF#<0Ov^Wrb&vvo~fkq-)i+ne1Tn;{TAAQ%Gh%{q!nkxEOo4Tf`Hd^0kABw9c$LmW+N)e!~z@WO;T^R8=p|B3N8G}NhGJ7D2&y2UtRT#s$*vsCi@=D>H!=>vz-L`Sm?Ehg!K zOdN{l4*(4)(5?B1&$9$oCLBhz_%R4s=s>gxpkOc`pSUP_^ zpTBsKfSE)zFUh&dbda1@%ONkD&9GA_m>Ke-TdH1V@#0h$FgQMho$04X^5JQdpnnX$ zt?{YnVk-9cnM@|q#ttkEw>f9j`P*Q0os3$+9oXJ8uA4}N!d^1se3}f#*oZA-A-N6M zoB(Em1oC5=ARwO;Os6w9B-NXu(doe3w=dRlE#$4>SYkq=$FJWHQN{d^YC&S(qqty% z9~)MU?7mMoYDd?Y9t~PV7s0=B6tE8`qEumg-()pj#NcY0MK83b_b~T1iS;FQEC`tW zaB`a22l+Mt+A!(FQj6H`kyALI7tRe{yl@DijpUc|1NcRH(mfz3pFPFW!v*7$Za(ks zvC2mdEpmi=n>C%E*TRCIbFs!)|Fo8mli0$Bh|1jrrPxXaM!0Cet_OJP48c0O7{bl$ z#mbgEz;$1Gmb&Qp^tyE$MU-vGYGd{Va&@!UYkqCZisuyGmboVr^X|#KV=$b%bjz;> zcISqx=$&K3-tOlI)463YGnia{-Nf?~6UL`+>YcdvUUje4wAzcIJ?$@ip}i-x*tVMY z-?V(VY*nMts#QL`ywbS8n9mpQZ#YLLCZ?;^>4^aa&SNWe6dw`kTnU2OpDFU`OI&rq z&Rj$|XJ62p?Z}+)_o~;3#{p>rA!NWJ9%#o1s2$+P?BuWC*rvDZ=_$9bG_px@A5LbMcii~q>!yw5?A*5bZLJpY zMj|2-p#)jPTtIS8^mS%BX_s@u8BD&(OmoxbMgdeG`3tjn4VeoGGD9NMr!!+@BMIM= zWGpevoIB8XqlWV_`EqJ+U=kXw=GVl+t8Dd(-Ih{M!6-G;(nn8gBA0nCLfS z%^iY{gRPJVXU$l|ctY&*h#{GQ>Rq?q!NQ0Ub&TX*2o4=VR}s`D$eJ;$-u-wrzh|vb ztrYHAT)Zd0I8oTYyu81#w|Mq!QN3J~uSTP=fBW|R#b+1qDO9S3wLN*++jw(v|Ni3O zN49VO$l&(U>vryZ-LNtIDfL*f_^D47)i5j6b)~=FuFe*e?5GMK;hNLX<0tU9Rj?^O zJn#q++CN8DjbMLh5#P3|u2)CYF~Bgls#EIynmhR>DvB$DlI3=4bqP&_ZNek8tww^- zDi$Cz)CLlm@dHDS)FMQ!BUBCDP2T8oGBQPfmk(dF&;~G{%`vX@dwSNLMK$q#Xni&< zo*JQ59 z)#k=v8(i41xO7CX6|g!MSdBRa03hJj3qNr6xQs$RSxD%&L63J?Ce*X**`KXFl z#EMO@1lvK~rAZ`CA$R!!XE37Ql534R-_wHCpOW5NqJL5K5WNYAHEt)7N1O#wdZaj{ zm0ppCcww>8w+YENUmg$}*S8FCy zB;!c{rsAZMp>YDmd_N9`J9Ino=!mM49=B5|hawtepp3_B6bNwAMqnbBqv{JRD43X; z9NAJ$Iq`J3LS2ff6#mF+6f>5jh8&CK$#9=aj>#D!gO}wAcD}S0i>3n15Smq;DF_klSZQ{iUhD9wl&cgRSI7&>j|)nROCy>KuZMaIz&&z(h{y; z7+@eqL|Y_`QJs_@ux6ZCju$24heIk|Q=bO;ffj(RNlrcSNeu<7R6ES%4bRQga$p+G z8p%Fr>wwmV8B za_S#XQ3HT6cuFT52&LUZ?;i?jw^mS3nWfT1?~dk@K_ySV)L)T9^bSU#$ERz2b`C<; zA-GxtR+FcmRLhOOx_)Nv|GH{NyEQw!YY5x!>#LWptzDAZyt!pO@c5}4_kB=d(Xm_A5ruqEf`>YO;!6mSh6+y1O?p$Vn?r&*P_pa$LhKB>Ac<;N(Pxx z!DKX-Be@J^T&M*Fq?{5@wIWFsFT$gV>0-2rv(lVzoGt{N39|i=*pXBWmq1KNml_UU z{L+YPQ30o{ZiwY5vl+-I3yI%JSI;{_C>0ZWOe`*;t!}bJcE=!)l~&lv6bcRS>3UnG zGBehR7H=LR1uWTU3gKWLi;f+RsYeUhh}%xYi$lXnb!diXi0y0O0DSZ$UV(#T+dVOG zFSxUh4gAr-pHVO6uLu4X^w}$lftb;^ozrpG{SMF^!`I+=*pdU@XD*r%2u+4gYs!3% zX$a}oqe283mi^7M=UEWzmoRdTJKKcsfP&o-F&==K}#)R+53J#aE!O1=sPnN2tSEv>%P;qFQ zWfmtrtjCksJs{JeR;5^lEnwg-Rr3BGQE!4|1KuP7%z~E(wa)l}ZW$J01u{}4@4VzV zd5Cv0U&0K)rnvQ9lv@ffd(mo|+971;h^7n0Vj(TnJEB-(PnGf(PnT0ZB?2~(1~cFL zz8kIKRB&sA-(l|B&Ibh3Ulo0Rk^;M)S5AHmXG7HR%4YACILuCra8^}LYbN8KTt>c7 z{>5~Ox+2j^GcH$ZK9h8#UewDQZ!^QgCW&Z=!x)XK!4j`j|DrA$!xHM`+QVBXG zWbV!qt6Q8SsM0NtCONZ__fq8|Kk4$IJCce8nK^KYpyO5(09?#OI$2Jq<8}a7Xr+QH zluTu5I9oDBmfd7xvRs}_tdMffMbn7YMld$(qv!n-0xTXC-;X_a1!k%v$e-J>MlW=TS+T z|ID79dv=}a-MO~sA)3*){Wx>(Stw>hGGRcZ#SWr}Ifh+51;$3_Mz#J6ZBHS$VE0vP zci!EYSniZcmi088mi$A#@2JVeQgLyi_u`km^gkHSo;bQ|dO8#>mlyZ!EwnrHu6w`d zHYcWgtNG*#=N7s79?rdryeHM7is1#nA1GSc=_EU~u5(GNk z#m-zOG$7ZVMwT8!`|8$nU1NREp7h~z(QD0@E4?$z`{tJ_`Q-Ff>6?sajqUh;ih&Gq&vaNnM;$qWf1Ix>-=B*?!qX>$N7bfN~45;Yl@ z`K`Su>`{lZi+KWJP())0l=`7vNYse_zUU&O(28VhOTMtt9O z_1nXH1Dz?*Ss1+?%nJ6FLSgT=#eIRjs#+vJ{lwgsHl+sMZ6|BE(?9&6vD{22;;Aqu z+Z(>p$fyx`Yus*{zk7IMm^f)B9wuo3i%urppkT;+q2Pp>#9-ma=e(Sb{rnKVxn&T} zs{`-i?lqYcdd2<9jb5O5_Gy?-2r6Vt+grG4eTWc2*$X^q6EHj(iQ6+83!> ze{j<{lq4MAeEB=DOl-b*?)t9axZj1?WB*rbw_BN%6RKpkPG32Og*eflbowiOo;Lji^-D-G)h-%5^(toBNXB>>Qi| zrI|%oWl-&D4NX(*IT-vXWwBM(z%ZC_NRx>SU*1bRm^CIv2(@I29S8GJB2SlNr+dm+ z4-~Oo45UZQE;_U*mew_iH-{acK+y9;;a@4iFlz3=0b?14B4olRIob`d*ra^Qosk(CE6Dwc=8 z9`9Y3aWC?VpwxI$`Z@X|o=j4V3t%LApmzl;DLcvlfi>gJhluFiwerXk**)gQwHCE8 zFl2vu(rje3NERC^3C;ib0nK{rG^$FBzN!Va{P=T;l&g5{@t zkW}!MKWvtDiTh!G(ZS=$#1*_&1a!>mI8yCm5L^^>b?O233syiHN>2y9Zij=WRFI+{ z9&?l*>MXc7BYAJqxy8x!J_Z)rcnw27M07!L5(M@?lJ~;2KADQGhjIZ@oSE-tIvNBE z5Pa|nRJX0DAR#qugBShnSnAK!2P}o%??5g*rnjjus>f@cT#EO>G5nXZ=ai*c5cWm5Se)h^#UZgwHt4 zg|EOZ#~9JneIX_?OA)1@4QRhRM@IQ<{~uFcmbG)a?s!JmUQwxWzSZO#)$SksP&uQ| zJ@?h#=}$e{d+QH>(EC~Ct6zOi9e?ywpSq#<)DQhCCPt_Cv)(^ZmN7p6^sYPZc>1(^ z^UcSP*S>b$byfW{eVkWSeqJ~Kv~nNq-T&yL>gL|Z)!OOPy{FD_sTc6~1^l>QLf)03 zUt_*$>Zzxco?ba$0HO~v08YV%s<~4-jz*Ul8ahHTLNg}xHeaTQCzmM_T`XS zt>oREgh)D|+RC9k#$eOj8TD%Tl#W=&M8k{kL=VJHT+BOEuilv~m8)i`U7^y*Vi}78 zF8o!aGEuASDv1%Jyex`+sZ7B!a^wN~tVG-5^2g-S!YmSk6%wgQK?w(e)=QR5Obh@f4HTpuy z$2@PB>s8!5HRU|_<*MgVTMl>8M5E%Wr_;`%L&T5XY~1qd_d~ZB#&OF?vI+yxpQu-l z3eP<|5=s2wv8i3J*&UBwwQpa0e&3b6_RY^-x$mlIeD{ORnFrTmhX*rnIP``>Cj6Gm zR!&&<+g5hGnbf7(+~MZb;R1Ed^gP|d{eEKL(7-V~tZ!qUVk9HHMvST4t&Ctp599uA zTJ^EIM7=XTkhLT?)|^l{VHmnYC{e^H21_A>ow>n#!~icQCPm~}AC5;?2y8(M&k7%g zkt`LgwU9M|Ny}Ko?y^V$j0r@6wL&ojxYaO=b*<{ zpZ9k)L(K&wJYrRo>3|y!wFOhGwoz-0jvsR4fhz#tTkpH+Y`1gM?zPsPcXm2LL%@#e zoGgEcR=o+?dMEK*@1TCogHRLEX|Xgw%{5*!@EJFvxSIHrGi&Ko~>pg!|l5YxBt6WN!2ZrpF7-pR+; zK2EBuWy5;ZG`7pSk7M*xRnZFfg9-0R)t`{Lhb^il9NTCJDx?F$FWO8%|CNE@ z+i}0WI~dqQE1}ysj>l|I|F+E#+7Spoz&?9KPLqG%hU5-32QK9a;UnMO zVZ;Ik!t7|P)1Ci8UX_hx((C0tzSGM4ftOD9zT0~qJA?W`8YkkJSHIuuy^Q0iHcM=~*7%^p5E`lm*5$VNp?wlUbKr-plI?QBoHpcW>>>?x zW~W;@F$C#QFeQ)Kq z{k<2N64PWgkURtc;=n`^1&npKg5-;#r&+^RmzJtbm|beF7>^l=Odza55}u=v!>mKH zB=8ma0tX7#%8Iwh_KS>63IPsd4TqdNtoP;jRu&ict4SyH>R-v6L>9;5Pt8%<)E)x~ z3E>d@4y5S9EZBQ{dujh|yMa)>lVY;@L?*~s$^Zuq2d$bL!0JIcK`WdLQrd~)WKp)r z#i#`MXR@mifXL+|O(t?f8R}L$nG7}Ox#n?~>>EN47|EC)$-k5_BDx=_2tJs{kxub- zv@?v`Vco#;?9%>=7S*1RBZUihQQ(QlIx__XNlfhq!NcTF*ER1YlZN^=Td!of+6*Fp zyUf=PPYVbnMm@WBe$hL>c)?oZe12LSrqnAPY+{`R=An&+-`ZF>x90!(>F3n? zYk&IM*Q($8!t%0u?^AayKlJzM)MPcCo=n}jvGCZ&!nrjn{JE1S53a8t{OO^kiw|CV z=bhIcym-l{JD0<6e+zx#TFLoVZFR}ksBQRw7PK_Sprk@+W=0$MK}P6rVV)Wc215`x zmX{?f)e<4dV&0Z9DwUsM8R8hwoPx=r+@^Dik(Vz-_wRR#9mu%sU9RzczC!83BaalQEbKThsiic&qx58X5q}rM zlRyQ>D0^a6^vY?9%}SLXXA$EdgPH>nD4-F3jY)o_M!CzeAtEP~y0_JA9)0k^){)+e z#!c7k-P?Or1+IDZ7eZ46|GGjy-3!X@6isx%Vd;`6dM=B>jJYrN4jv~$ugp)TDczzC z$J)}1mMg?u(y$7}khg$lh1BH4j4c9*zmntoHYJfzbjxv4G|{d$nE=ugHyXl+<+-(0 z@uIYe`(v)9(;gl$gES#vvyh|_h`r>o#YG%%=`xAh^5s%|r&n^KbTME!G+C=Dz*ul` z%PbRzB}D`)$#m2^Typk;zla-mN%)@`sWi5F@q{;0SSnX0rsL_+(Yb`D+~lQQ6^WF* zv9XJyVW#R}A|VM4;|n(@JSsb^R%>P~o@h9=+(^Z7B^D-x<*gp~N?tZH-T0k1on$kD zO8i&9RFrjBUm9?Ud>ch~JxUGCj}3fk;Bg|(zcKKwfqx|Gd>})Q@}}#ctnwvYotw>3 ziycG5Y*s5sM6Sqy)T0w95Cj=w*(c6@>l%mAo4N`M4TzL1Smb7U2=U-l@2) zy0*H)R^&X3sJfg4XR&yFPmK?CCpI}Vmt1t%acYg6Cy$EC=4vos9r{x*6tAaE?-Rs& ziq%PB@S?B+dW?m$j}?pytX2lGn1~*{BtR3f)5C$tTs&;sWY07Rz?a$prkCZb_jmFI z&J_t1{kp&D-9x3(p;95{tzaHg&!V~wl;R7j5|lUWK-_upE|1FAEZoAzcsty6Pi-3rB(+TNrGv*E>^Pr7s- zoxmtI*G;;r4M)NDCgy7^F>lnQ80l0IFgf^lN^g+CqH12E{7hJ2_ado@+?qoJ#O4l zh!*&l3$yMJ(5jIq`?|?0v?^9%ED51E$>T%VBNjJ_Q-E#D@xmQEMoFS8neIaAVhJXq zYX-4t{_@LE=MSmhr+X6uN`7-`^;-F;a8Y?Utx+ z*kh#|WEIzsi*QoHsgX+CM7-$DBmtB)Q77NZwk* z+kNw!Z!)S<2>qF7o?%}s65}+#uPv(lmR?CWE-H!7Cs*A*dpsQfVHAVb3|2(8~}Qd z%y4A8;cS~wnEw!Y+E!ypNW4G;g`#x|S8;k+RF~%H2 zIE*0-HXdLSut_GHco@h)>>(b9$vCsKjF)7RKoWMsLhu~Puo*%i@$&K}EJL!m{C=Nb zN$obtX6D_`zW=LPl&FFx!YQd8g;a@}e0@2li!G3?&k*G=F)y(gSo?7^iZYVplxF$;9R|0<7V+ zj7E^;6jXesoJ3H^K&L<`a=nNVC=U;eDW8 zsC-`n1cXmJz{-flQyOfQ!t-n8s;7&9U2qHz%u};KiAg`DlssRr=Ig3aW?iz^TnUsl zAM)x!0l>W*Z9hKNQUh_mxV050>^BHMEixdz80Txf0gCWPTad{##DH(cg%kvi_Cki~ zg#-Y7pXf~)xA4rs8j#G(1pyxrI@e2xS$&W@xx9_mlXU=0ghQYv6C{B80I}BVE2E>_ za$g0>0>+F{w-0oU=pd~(6qJSjjsHg&kB!4`V>MDgHJI9rF{$@LD$R}vWk@No?PSZe z?32dwC8RgB1^;hkkEg<@Vhv(II-!^LE+`FBU5Fs!53ou}u3DkMOzKtK@p zk18h=Rg7oQpZN~BRX7d9b?Cjb{~>~yj`{bA#F@RQbj-g&G>`t{!N&Z6RA8b%{3KEJ z18A|J*YO!Vkxmn~#4vSHupL3K2&#~-vZnqtdInyA)P-<{?FY~S2z?j{CSk>UFMj4j(4mYBR>jcnbdk`l3bviMWO6 zZW8}SfnoCyP@#Sw7;-N{D*rL6`Md`#s0Lz1XAmX&GW&1r=KvYc3k_ibYLu=Mt`YVM zcM6AuBf_5we=a;Lydazvej>apTp-IX79IWv8RZTQ{(%-1KMA1#E0$=i4+|Fmh?jRbIU@T3YJL2<006#N0aq_7dalL6K_&LRF4mxx7BOcxP+ z{^ShFBb=!ga{fWsRt#Fvb3^Xe#^ zN#Led&jP@q#(Jgu@bkvHMI@pgd30vDw;4-|>Bn^Y$mpP*br zd!mH)!YWkPstt67VI46e%*g8Y2Sg230$tVslp;$49j90alg$VJD;%LHrs%OrPV?gB ziUn2EZRXAdq90IL)0_a16MP4tRbaXLAN!EMD1yzCjs}|=)HTu^p(;U11Rp2O4e_ef z4$=&52e~!|KLiOO_^CB?CvL>)gFssb+_G~$^+E(SAf=BYM$xM8AcTRcC^BKW!{Uyi zgeDMEWG8bG=r$fh_cEK7C?hSfjD!<}#X`LyNdgx=KIeZX#S9Uvq)dudI}?z2)9yz2tzk1B0TaO`vpk` zs40cE&W2A&eyfk$In5aEHd7z?83IEQDObEH6{UMJ19>Gyci3#mqqMd~i@ zvQBb&2p1zW^Ny8)ku3Lm`dSb2c6P+U%z zSFXepp1}sizSuQ*M^)oz5VT{#w8l`U0k&DcxzNRIekvy^qX@XgiVztQ2ym``F<=57 zR@{%GqEP&i{Y3l__79}vVk*&I01_h#hYF9IMU)u}IB5@HlF=vh!GuNOp_{??VHv^q zu}EDoKbuh8l|~fIlB#&9Fdb9chYe~q`T-LKr6mbLOW2Nym=~p zlO`rC+Z|ZOm`DsCzAd9kVA(*7l~llg0-_H10}5g%ps!Jb5W0YJdXUo5a+%^OWxm!i z-wvk*rfXD5LjgwK*oVV+^Qx zSTC?KVN_|9K?X)mP9$tGFV+jXgTcmu)lF*)okG!0niyD`uxKz`_>Yzo$s-sY6Tol@ zGt7xSgJe-BgDD3B3DEI?wu%?rgcBH08)^pwVgpl+QYL^BBT)yFgDxW!1mRL!yA$#x$^omb&3?>SAfC&zMVQ2$LC^W*g zdD%ENCaG@SA-U|jTb0f`+-}Et;Wi4w*JVxm0QsQO2a*P_J=r~0cYKz8Q#b^CqZF^e zUZO+ z2DEwRu6fBrSS$?@%lMk5?uglQhhh$Qp|nY^Hc-n0&oJCo>FlgcWb#YHpYZy_-u>aF zxr}}mbirncJ~>Y_FCI4gN0ZV1yx*UzM!U$ieF3?$raYozkhhdZB!`FGWQYSn1V5#C zBiswxEe!i`(9sp}dnhOvCUONJuD{v^3B=PS^h?@AMgMHy#6(|0$z_n#;YC&h%7p0e zD$=cz5=IOK+YwIa@kbSjT_`VJTt5F~dGS2e*H3Vl72TRSw9i!0h zvNW;O3w8FOjV|&(`wNBmBk@9hU~=bTVW2QstCsqgUbVEpRIM-04-1#?oV-2O(=*!B z^I$w*SWqbZW6x+lKMHu&{DdPK&*$S&$3(t9Ia#OAl_h-_KlLrCw5|n9qs8KANgpoK zcZ=+%7=0|!nlWq@RFf_ZAMgaS`qyJ|^09^h22&QZl2(VtW3f;KE}5$E5qF3Qaz4RT zz~gmrHb8~SS{JkEINT9*Ig!Dr8TSgNW?@BDl)aX)jYrIL<(-9DTu0cbll zd@PMe^rhJuoQ*(>}I5G%DzM*mDCP4`j%;f?7q>Z3|Pqn(FXE<~-=&Bz4k zfYe3njC)2isBmUPCZ*f`@rl22%F;g5Xx{{Q|JK*&VOTF7<8d{t2A>Cka9H3q5ArV7 z0ON2!fD7$9UY+n!MZ6x?>kIjOA@4C62vMq+^?ISiM!ote8E1Xk)7}Wqd$;1|sK=wP zE5_NGc(EAQoAKh5OoemU86>fId_>7>L8hkFt(I#4|7-$U= zGAtCFv>4l$I}I~%ffy5|CNVDnpP;*m76X76ZW!3dF=OnD(e<~jkCvJ_P_P5}(O|Cm z#dx_qUa7n=?w4cUs6Q_I&10G9HvylsJX>n6UfnEZ#U+)$?aY2NKQNI0X14QhD@*>Y zw77&n-K)PR`(Kc~9`_6AoC7!IqF9IK3l}b&1y6XtqYRojhKhEGCMpqIv^2xc%#QQ(F0;uXy#E02`dKgELCXY1fh@_@g_uTf`}?xiQc6%2nIzzh~z^JB1Mh! z0TaTe_%w(f*hD!yg!(a$brCe!B{Zo^w8ABVRYgHQ39B%mUqGSi3mve3z;FLQ{s$`1 zhdrUUonGnZKbO4Dw~w2v`s-B-bE@KM5r3-FTxHR!XmWZ%Qt;<>3S-lPFf9b#`jiqf zO-%_b>}Jm>0X@BBnH{*?%a*WbCbtoW+_uR@cCoit^h%a>q8I;UuUIaNAZzO^Ui?G& zvw$4wNyNq;gohE8I@3JkmNrKg5Mqc2gV8?*q%&y8CcKJ`01^<`i<0eu2c)py9NyKOld=5zK?5 zlE`&KLfmNSPwtTbcU>CY6-lR}%?D0Jve}5B7Dj~y#aBxsH%Pz_ScSC`$b?^wr0=*R z9eFiG#FhBxG=6tK;$MlfB6lxs!u&yX#C`sER+19^x&(=Y69k2Z_A>w-9{WmRKc+*62b@D+`Lj%?f zY^|FHwqF0ydVOo_Hd{t58M2*^;-R;0~khZ`dX{(w>@kd#XU(>~r!CAB=Rn?5wa|R9&`% zqE|d5(g@2QH|IBBfIqaC%PNF@200ei91I5;cev#ZvI@?D7QoEItu0ou(H6SIHf^jB z{F)%RypddW?28L4-C@-wIJ~L}A+d=<|NZ^>q+fZbvJ`UI)NOepUwJkO9~dG%61hY< znn;8zIB+0T#1T%!a)=U&26M4Q|B{`PlRKB(2C=MJEOHs&SX)8Rx=IWMXU&O{xo_0W zin-}#e@@eK{mtp=i-*F)A3kGToV!ll*h?K;bfERnlAA3b5-s*1J3(Q$(5oJ7mf0=k zX0xo{S8fWEICEe7YN~y@Nlq>kaIgn4_m2P@me;ffMFqknrkBDc8(4H%66nb96`<1? zbfG_fMN&T*vZql|=TnIQn~5Lu4Rrew+hW`Fw-x{Hh^Pqr;&J`Y0*OzdR!!O-X48o+ zf-gVdOKgvA$32$L-2wNU_&Fz{F}fg&8oZB468bnROl4uY(?Ib@Szn1U;%t!4WC6!b z?0--J$sh>vnM2dlhaNw;a^*q&X<_lc2lg$dmqqM$BHVY`om4=LlY>*!2cMwZo;WzI zzr6Uy#fxwJgBur_Cik`F|ILv9ZD>(1&l8)K7Kk`OAch~#%Hs;bngJ5mS2r1Cl!zPr z6`3Stf7}RmCbAxXXJ?@^>K|QS$s@jZFt1;q9{|*Pp|b8EF8SGmlt%gOeE+wH00k4v z#qh@-T0gpNIRES1@Nn+e_|}e5)a;J>f9*{OG40p>=m*33ZQF1j)5q7FQA?9>eIX6d z)@+dv7di%+zx<^$qT1fW2Q})zhba7PJNest@4@lv{N=mOh*$jA zf3@Le2+E|hy@U1f8nnyH@e6f;P0(^6;eG*wq6rlsMsO3P7{Q7RFH``dLWC6hCa0v> zn7GwgMF39cnP;rS=Cdxb*_K$5Kp7v~-K^$eaq!zJL(A@-j@!Ox_1P+;({!l#EK6;+ zr6_eYd!KL?U$pu0Wm&Vug^4|5gF6ydzarRjw@ysoHx2jz?Ep+C7e6V#?fyA@Aki_y zX)*z4kcv#)0Ks$f&?nB3Fs@LPvk0mH(`@OX#tgT$SFlj7%2&I1Y&RBZ138g`WjXSX zt)^)ht6;#h3GeBQ4^YQt3$eW4zE3hHDR}8r{ zH{tXV4zmOD`Zqz_vslldN#JhKTS>zM+u`gw%ig6} zjEZ)P?96rQm&I}p*DZclK@y;ITR6@Z#KWug!y~9M&i+PmS%h!Oe(78(^;(cnE`zUS zisvN1Ts}8g9>m`{eR!`UDuhV|n}10Sx=Qn-s_Nm>-dbAn1DOMwZYN+zOuWCh@j z&(zi=s@250CaF+{BGp_+XZ9aI5%997fj1EF>NBbzpq2^!l~i?&OcX<2Q%SQzqN;bV zS;G#fAt9jZuc)DrN^QFEx3Ez-TlqU5qPkeiNzh$xut9CnmQqKu)Cjwk%n@uyWg>Vg zoYK#w!l(K&M^Zukv*8qb`4B3uISnhs;xhYYCj8~_&EeG1Ox3J!3D27sX8){72aPdl z)eEa1<3eP@p-E8 zS`ig_1dwTunz>$m6&C$9pqp^v>ZB{(XoCC%g_?+78I!y;4SD9J9 zjkFUWnLt%&AiIQ*GZugapSidSCzc4q5iTI!hEw5~5#*2R^RP^yb7#wwW&EvHgTZtt z_%Sj!^ktiNS_HCwGlW~18W3g(Nm6b|t5Zmiv)EP0yC;qzyh~|>-$ z4MF@#ssWPf$0Pw0y;IiwmDiO^_I#L#d z6w?o6aR6Qs%gtnKb@Y=*xluFxR`Xw|C|CRlU8d`{;|)lE;ZBNa9MThjb3I zxf%1>2~Jvqy=gIMagsD6UowM5Kg86Sq0tlc9X3EU4I@Odudb3A0Jd6Fmk4@8YXHm$ zrU2uZc92gPJ1x|fS5G?>w=9D4 z1G^^xuZz)+ICdeeph^y4A~5boUV|r~%lVa^D?v`w@qNqP3j&T#a^Li}g1TwwKw}NBilL z)z_l&WRoD#n*=;si^<|=?3SS+i+w{R4a4e&kZ z`pGPz1Cs1S#Bn~v6t|EOxeXsu9)^?*LkJU~cdU{55RTDEuy`sT)u=W)VQ)y5Ol0pj zA&`s}H$O6wyz47p+)-NfaSh$RcwGc}*v$e`7+lsapGzW8?#Z&pU7T3EY0cu2q?9i&2oGQR)K~6GEvU*)C;?P2kSDZVp~~)HJT)LLw3WC zv5*Y}QYpk$L!uQeBoz^ZB@LXNqiJlJLbPl|-%nN$np6G717yP9yO#{w`{CuZ%l21D zy?Dhg3lAI9Z+uVJU~!J%JGpH1^}9p{W77?LU^Wu(65Zkrc49baJMif*JSTj_4Rcth*{mpe8kgp^Xg{w64LrOmxBoyBBmaI&*^6@^n3Ih!xKIBWn2AW zk)6`tzxD=6Gi@}9C@;cpxmQ7)@sHI&U*{M4{JIi14Q7~_RoO26XxOE{4B$Jsu>L88 zwp_H;N$@5iwU1WfEF&?^5?gF=wJq9HTo@lm5GBf-1Y5!Cx~PcFEZ(hDOFVZ|2uGZx-o`o9SLUR;`?#lHPL!s_6`)H8nUhto&rOQ8yf{}9w7n+0>qM5W6rsR*_& zPB#{fL7zlWYJ=BS>g;>BD#}TylgcNMi2r3p@pYd31pZ&>P=UuhsHlqSaN1M{^OZqy z9A#j1IgO)usia?b=^0qtagF^TWwnl>q|16GY^ChZNo!D9?~UF&nO{GaTHhD7B5W0> zh!4YOi#%pQKS`ubaj-L>Z2+F&UVwa%2%&KbZcgJItu^cuqh?728T%bo;-ZEDimL=| zIf5jEG{kKx4?uhg+l5=nNi?HzxHX=t*Hdu`NNjNjl9%a-y;M)dB!u6_=!|ic0!0VT zSHBhpjL!Kt0eK!)Hqr?*4rb55Kqvr9z~CV{vJe|aNs3;98cDW*D$zVN)}Vtlr3lW! z!?985G9*{fKr$PGo$^a`M}usf{A+#nBl#g`P-d>6b0|-03%mxhtaSP?kgO{|=nMi9 z(m9ArNaE&~Vkl%Q3rB|YJ2HqujsxW(wF8bh40Y7MvxFMFsnSk=6bPaJ_8k~<+E)Wu zt4Cqw$af5*hZ$(*hzB>U+)yq{AkPiHc4>KmY;&J2<{+Df5Jck-jhhTyo_gc+b_IpW z4?@d3g!o#o_&}*tdPVgIJ+B~YTMY!g`fHuBR}|%y&e+ScNpQ0_P-sfA_8+2vyhHtT zY##mxuXnXIuIaBMk7owvQCnPNQ7vvoQ1pyh(O*~0t6`->=u1>F^Y(uR?Qfv{Dat{E zf6y>UqDfd4z{d4eMHM8M&sK{`g5*MVOJ1T^aJ>WS9OjKZ1n?&77AyWx8fp00vEgg= zD@p!jpTnyX55D-==-fL-AA2zvM}cbvr3iuayamXE)={Y0@&3$@GyVKUKjTjv8NKw5 zBMJYH`Lf50!6Sw`7N7@6u`wi$mQ(__&m|IM(pdYgDI(uAv3_IOAv;G{c=RZA2>Ve? z!*N-48Xt^Trz#(ZU5Y;FhmSMuxKqUkr_+wF(5s|6kCR_+?suS#96wI&q(Ffk80%}1 zORaLPxIs23)mZDCiP7o~AWqm2jt#a&=eqc~8lTCOZXtLk{41h1M>wpU*Ga)eoUFcI z4Z&NFPwdkN=*j`rZwl$3-p@J?2-o6@7Q~A;T-?83*Kt+z2kGO*qx=Eb%A1cqZ$ShK zc!x)_Tn7X5HR7IY5JYwH47$R3%0D1C>^-dWPGHe|1i4}0ffof=71(iYPlYSc1pGz_dU z=%o?@)M+DV(QrN-et{M@C1@ZWhU!8f%Lddv>OKFSRZ^mHWa?YBV6jpuYB-Wm;0@CI zxIY*qesa=1N)r3e9d3lsc$hGp>fGX!XmL9rZG9I|n3=?W z+zk*$Avc&8TyD{1v$)h9ZjalMB>q8jF2f%G9IT^RLWm%?kNokrd>XlyLsdA-HuP>(s} z16PTg5Nl+!Y!clbvEB_-cPK}t(!vIwMRQNKGGpI$!cx-L(QHQpkhnk|VnX@m426?9 z@)FZh=dl2!GN9K`W(o|N8E!6B>iXe#^jq+bRbDTTkC$Js zjO|lUi|=(M%)J)3e2&sWKW7|=72!-}Vxn?>nqGyoLFN3k5)3MP{qf*FEw0_7#r=B~ zI9aG&ZQ3q@V#2pJ$1tEmgr!W_ww|sL6dT)KT2^i>?OxP9uuAL^`_^2!0ftIL=h)8aw3Ab5V0lAsF*JBc z9dOCFDWM2&0RT5KCNPo1&?O>d2-l3oWSP|}&)H>@({6-H* z=gpe|V}(Pn^#IcTjgPIEw>8*T^M#$f{vJ6eAl1;KX_0(C!qb3YC*(xcatd`?Pmy-@ zDm0|CP=DA~o9!ffoYtVe`6QCBt!EKZc@{s)?U`4?p1A;Cs}710z*EtBvT9?a&1V>3 zOoI^6x15CTU_C41fo@qm$sVH-WIIn;k?wyMz)ojvvStRpCFElUd*#(=tMSa=?t`VK zo&^^XPwHD}d$Gsxd{3*jXQ>?LDeR?_Rv;d<+Igbmr|fP)1M)kNpbVZzDreiXKpGRf z4Y32(H6j$EGHizwO~A(2BVP}LYAe4;H2g(?8+!R1?njlA6PQCh4}RiV&q|Bc@`?MW zH9V?863Z_V)p)UtAz;C^u+pxj*{NWsmu+73nEE{DdC=dCkO~s%3<}15&un^~1(6Qu zH693xLl1=G;kP}IA&>fEe=&wMDI_emBq)NV?fY&0J-ymyTTMyz=r06S>MvZ=Xx|#l zNm00t&-0w;fzOavfIrWe6U(c#Mo&o|`6OwW?C@DD&9H1erEjL>Klb=3I4Q6yP2gO^ zLN8)c03FazNBA|5)L8m}P2T(2x6r?IR8#G5yZ0>gi&zi@CV)xMYz1xSn zEwc1*b+T$YD#`l)RD)|n-tWeQ()8vPC1Ku|um02FZ36?_hyL_xAUVM$;T;Ni)zJE7 z7R&L{@-hg`af@Xc%>j7og)a*mP4m#lI9UN&N*U2BXg54j3+O{=44Fu2T~p(T`p!@O z!}a&gQ!83r$Y;kIqvwTn#TIk{+4 zq8Pyh_f21F4I!EdA=Wg9y#v|lBHw2y<}y8f_!zxRZ@%ZA)A!t?JW5XZOJ897Fz&&P z=ijBfPT#|B3C2-1MSD$)2hDhI&6At$_-hKD zro5(5mgbz}xh>F}_&NOQ>v%Jx5uCSf#(3|8blizwMMdxI0wN9uu{9VTNI2*Q*y?d6aA(39EZ+(+?;^EMAbMtuZcC?9rrA`3kOp$z^2L)b1x z$P_@pRS~A_cR>}9?@KStj!)9R;J;z|7_u|43A_GFT*U=e#06Rx)K`o;NzGa;Q6Lq|nhRT| zS%Co*fs3XjStPB!6up7& z?g5+^%ZcQCcE53yD7UY?>xzb%hC+~(-S^h6k}GKhb+Ip-$H+u8rQ&-J5Z zfED;>l^976bkM%=WH^Nq&ta}78T-`@E|Zw0t0ehxUp9~40oAe~9~f#qWJAyX+R~{$ zwyricRnym$Q*2$TdR`Y$Wk-K1RTUmyTGOARYq(?S{#040qzd}WsXn1M&5Hc@F2g>3 z5Sq&*kLM;lkyhv=3O|s{l@MDp4f4=igbMhJ27AT==7Wt2B8FuoiIqt1r>bg*(`}Un zrjMqx%#F8YpCA6vfDiJD(_EGq`8w^*^5yUrTc?JP3@;TGS-iZ=PwQ``%1@S4$4e_V zPnY0Z?NEbk`#OBr;*rI&R9m{V2DwM}SjxV@I*7GXLsN8RX}P?V&Q1+4g`mq!RRoUf zuar>hbGpQB7qpj1H))S`2zqHAu>`{%ixAh|!8j{utE33VZ|kXDEeYKRO^o7KU{a?8 zQb@Bz*js0a!sAkglX@^<_A2I}Jxd8bGi5TV7_+6%VCqeQRQN79gt4IRy7c1#A(RS* zQsGOdQtwXnmNA8eRJEGYUsgkSKqv?%$lpJ0_^s8sZy^YRX2fmXf%#qmE0LdLLv%G--D{fNN&XESgjA#Ar=e8OE#hDcI(?59u$KR zfA9Aks2F1Z%vYBPmF_Ma?DZzXwt17_@z__=h+nYZm<>RFOJ{s6oracm^pPB+Fb2 zdeaHHZV0t0H(=-ScqNR9q2++)SfGv>3K|j_{vB7jp^Dn^q3=Gy#cZ*gyc5w0iaU!3(1_t||$2;8RA77-oHzO=&^vuiv-9rT->49ss~yj*w!1?>z@o zLiCIc9mDK#$jct$c?Q2Dj?c-92t?Ty!&9v9zi)%F(I(vAW}IqB{ME0-kO~A1Jm(bl zX$R-a-~$k(4Ps6TAPmWW?Qs11*A6XgWr{F-#>!u<}vgMWRNCF3!?Pj6$Mhp9ac z(jZ$QZU#3-Q32cgzqST7V%(g2zmG2c>Q@e?@@Ipqzayes{5b|M@50zLNIoDJkzt)A zRX9ruo8jJqo`p0x&CWW`+k+5BbwqXH^LVmcu{2fC0j;W2CkMtaCaa+RE{vX54mnuH}) z{R`E}ParEO#y(1~LWoW;t>~Y}JMQ|ko|yi5etBCASsBzf2D~-)`-I1hUmj^fln^KYNedo8B6eFSf!&fUKePPo4o4~W;_{t| z@I;?}niVsBeHm~kIEp0Tu0hzsFAD3!iEA$ZubpK(>n=}>RI~ca$$A}yW;1;Qs;s|E z9wpofk?m5O4#{vv@TVbxb1F?ldaiWKw0+0+;cxh&IE~A6W*2o74 zzXOy-2KJ5}M#)hjlOBc39U-McoxN1q|A{No(QbB7e}o@K^wEJo`lG$w-Fx|~P|Qa& zTW;N7VN?1M<8bR>F1Pn{pWDk{=jKF1pG z-D1Lr^s5M@f!&cb#5+Xy`vU1k8li+*B>PD*0l#%B>PuKZnZ3s#BLhHMk@UlMH=gDE3*)=o-cB(X*B}NX z0GkxqTrtzFb&56n8^@%2;ymT=%(@URZc&3mTj&9;8wDPwrWau|cd(bq_Ib%M8CKQ< z$^+Ib$aCC=W!t!s>`XXjTloES&!-4gNS5~-4h6iC<@5)1+eS!>)-7;Gd2JiH32e(2 z^J-(f3>n{u`6)vl+1POlsEo0zU?avnB10dB2dMFe#sdw%WlTjV$L#dCjf$9a73+gI zB5W#{OoRelw5s3(iO*zW2OozFT_R6+%clha+Pc-2@*nc2Z15>auuaLfs5N7ppva!b z%}<8&`7nA675xx@1@N+UBjPq*W?+QaHX_jzPPhtuxpgz* zyg%hfxtDC`%NCc<@}2`VRf2xEUGHh%kjfHPVM>~*JvM;-b6XHN5IeGh}&6?okgL>G~rn;TgR9Q>^+MpDWa@IveIpt zyR`)`iIFzMU(P_l(2&50IIz`~*Q0rf)%#a#!PEM)IiSAx<=7YkrSwPHm=;DZ-m}1` zVhNjOo|>}3Xf-(rbCqps3i>r(F)-|hKkZvp2?bX6vzn`0f4rV$W7)b%sActM4d(`) z6V}L6!A2~WsVR%3iBn4`b!6Ex3&V#cQ;>GJTu*l9kAaSN^9by@R)_#ZHxURsZ8>SK zQBmYok|`{klEkp!P^^^bhM_c~+w6(n)ke5mWx8hu@i}I@u)@lm9iK;7AQ%d5A|l*=>QR+pcfL1u+nm@#8BlN9vvyH9!UL%O6-WFti*NnCC1Z8RU4MPvo|f7dCi z*HS_xU(pK1Zv|mXScMs@_21hmtF?F!0LQHN6cKj;EN28FO~ds3+dE}~{7Ulp4CX0D z@nqPEqKRbi2KKyYOEy^!ML0rCE6cB=S zg@swK5WQ@p=n=PAEad&-*GvLbBvJn;Q1m=D_63J{y+sq(Z@>}~Y*$-U%hjSu6lV{y zqBgAOCE(}S9u#mwZuLWJVcDFsjk55Uw5cdiF58^n*jAPg@qXaZ1?OyUz8_z2kfpRWQC!sy`Y;Aa}2kf4}_M}S(E?*aixeN@Lg!b7Lg2X zZMB%ko^~=LiVWWb%_WjVmw5z@ut<$)q%V>gB@mad&V-gv1HQs3YLSfog_{dXD5S7; zY7hoe*5h&%>{11Q66?vf@~T~CkNDVKiAp8$YNA?D!e-}`FO*#l!~wh5%!cj`ZbG3= zEm7?~{*Pw`oy!E%-@39)~=Ic^`z#{Ku#lUG5l%N8l>79ufeQ^pem=9weX` z0LYA|ZJ?qkL^)vXW>AmONKS!{01{Y3kT8;%L0UjH{lG*5Jsd?QCP01!(F1q<#pT5Q z&T^B@3pj9_!}%z}e{K4|IP9^`*vNE2L17rcOgNnJ5!8D0gG)+3wkft)6cry`Cch8J zDLXeVH7%J)+;i&59j2aDdxn-YoBh#UkKDf|w`eo_rNjCt0>fN>pK80&$}D*Hk8QEZ z>B*5!0i4$9Ld;H}&_C4gv$_=ERx?|8D%a_73X0Pgqm!P`l`Bu3x+gL5=*Ge8SM`{L zTt0vJk?T79_b;t%S_JO_t?5<{g91IcXzUd1V7`1|d_p)bcDG^Hfi*xyU|-EcI7=R! zgE&snd-pxb<8CK*4-fA?ylZrH*TlrG(LMY3?-|}bVRB{`_MHD|&%$hWVUG~%S(q8< z?8$a_c6MibI?wlpdQ|o|O;K#>m#ICl8S_0hjXky>Rene_?_g<2Byc6b=mb+=me)QZ zf=|(C6~8d9|FslHns{7d=b6*KGOehNtTvxiXb4Q1mcg3GEg{Ano-Px(ODh6}yu*kR#3JFUF@<9hk`t{H zh*KnJ8zyeU&4|^-lV)HL07nv5T0Q1fg`F9!lRMoxx4poG=ql@7b}*dV!8GDMnL**X zR5ig_Yr^5qDYk+sGGk>fd@t1#tNE;`kDUO9jTo`SRt*U;eARph*v$i0>#CSNV|EwZ zx8s(=!2A?2n)DA4H@jc33)Xo5>Z?=LwAmwB6E-))bNL+}m$)kI^PAmyx4jFz&$3sH z3H@t;a6?~X+=uc-j>F+3ubK)GsXg|{g(a=duu&o-DULsOGDvT6;q4FJ!BNnp1XHP$ zIUcC^l9UlWYm+L>Ng1#*h;PiLkyrv+K59 zGcdTuqE_$l%;uTlM1tPp2=k_}fD>^3$AXSL-Bn~ehIh{ti!*g4EK5obw~o$ioEc7~ zuoV39*4;`|$(2eoyATd+=#w$zWS>Is5pu1%n5V_Wum;JRoX)Id&*)R}-rhJgp=ZKA zUs#{=2%F!1R~W6N^kAwYzpM23EAPs9!m19t&>?&amPc52k;`jnaw@HxwtE{ZoSe~E zIFKpXL&IzP`_~R%DMuZ9(7-(obmgQYfq#OuD>pc}dT@|!q+=GQ&gyUMa-fuq<7wIK zc-j%?d3YCpGd}k>f4fUG!w%CkR}bzyiTKQuj$mx|cZK%v-So5rKM)JbyAkh4siV=| zau7Z>@L3)Gqj*Id_m0l?j~t|sAwfkcIFr;*%94Yw0%?*WLounDBs<){c5rZQ|KoBn zchlJ9Ju|4+s~}U)Y;A7cvm?qU^J$9YXtzTb{7SQ27bb3+RDyu5sIRZoi+mQJR2f>38XuvA@wTix*4?cx8VB2m`zelX{b#SzaP+ zj1rwc6VDqoVy>62QNzwMY@qwh~eUyh_rS$Y)~v;+!qM6$%Rw|z0Qb5txe zpO~_UmbU@7w)FF4cQ{L82HHis;u@^uPhcH;!3QUaGPU-q2sN5izk1C?zDz9PPDn#! z&7wtIAo(pRQX8>{8(dpABqO3*INM-n*50-je`TS6bwB=|)DluOff(VzJUg5p9?mDC zj+A!HDj!zN8C12PEMI*ey;c-6TRyyg{jKZQkLKyC{draldItxQ>pM7ztlz;wZ?GxL zOJpJDe~-TLYi|rjJR0jHa87E#IUyMi=o&n2jz$_|i*69*p0&rd{Y!1{($7#8RJn&< zeoz@3tFRos>R$v;&GELK^+!MAjrx2L%+D_DJ-?(fHeMFKiU=)V)HKg`eu*z`>VzSV z=G)kdWWPi#Gs8|ae%RQFvmO>hq6C61X1Jx!L0+cOYiX$%RrZGd0B_CS`HM`#xUV~+ zKM>1iV{C7v`wGdi&!xKe5e(Kox9Y-yaAdr!A1+N0cEG;Mm>wjf1=|w127~+o>B}m1ktk-297+UmEo639*?03(YnK#@OV&>14=)&YG?;0D- zoBkF}8VmeeGlsdMAf!vzRO8<@Ph_4a%Y17|@d&oS?`jsNj5KGl??=?OAN2uYLi`;w z_a&=FG3J`BkL+G#;<+?7JJgE$Llz%`FIsjxLu?`;2kIbJIfZ4^JXNGBbHfX^Cv8@8 z|6Y0zR7&iSGj~$J3|=yyz0>YKA>DVUT{;1Pz~yt#%g6coAiW{_*cPQMOfo->nIM=u|zf?|->F8eMb! z?xOy-l^h|=Q#!b{_bGf`0~Mn@NMjFBr6$6G<9Uz?3bF<#m^Fa%ks?xTK??$1H5h$c z!-|k;6C&^p#sPg>gc>&jAq${!?A$AogAXCXXh%w~fT`%`Ux67~e^qk)fCg1?IeaH% z2S!#9vXNIJDb>$<*jpx;!qbrp9g*BM#E9_4d`Qg+Ps?_n4{@3Lxie>=_x=g^5Q3D* zf(|jnShq%B2)kk_29*t!C?;4lQGQGi9xEqyI+O#IiStiZreSx31#Y@BEIF1-iZo3@y3;sV zj>&&lKhwK-aqj`Qb7!KbC&7X~HBt6?7LW5RRsPLh8!}vFmwkmxan4YN>k23J$qc*z zvax)Ydr5BYxF5X&D@?R?V}xCRo*Q%=L@QlEC;{3Hr!$l)pt6j@XA4MPs(lCea8jG# zGbLbpGBqqPfS93;WdSx!To;y0Xl78Ts2ZG=5*ERX{ecBohU6Rx;1dt3hef35+7jZG0JtTs!x*W&1N3if`R$=hwQS(^Z`_n2LR zbKXeI3Di;G$hB`%HJ{Jrt2*7`ZnIrWs?fV~0jI0#m$IQfs^WSB z0{eJ4I(qfTmizNt>gk2y2SwNyU9xH~ID>+!a2vC zZhqZnS77n!ig?V4NCke}itG=WJ<)j59vo4-l2MQ4X3ZB|P*!b{1;_;!9z#nn#yX3^ zN=18Sm^>xCI385nIXmZ~{L-kWTl)p@B-kz(>NMXolzl@bM=vVBT#Xghd-f<5WkVwT zOehJ+rLP6j>43PwbN=;bMEOUO^rPqP5_`=lKL5Pv{Kv7s-VNB=k6ZAkh`UAh^N_Mf zQ8rlVoBHBVG8y`dP-25;uSB;?df)RulAeXr=SQx-g$r-oE#fPRd5^`i$KsyD6Dcct z0-B8x^8-bk^d}iBi!5+ljcV{LSJK9_v|u>qVm5#ZJHQa*D~vBbT8GI5`~4H-3qSu7 zz1|<`@t}6IBG~2b$ihJMvO=Wn7Q5i+@_EZy#XDS1b*i!*#o+9MQwb!B1Bz2%uHMQf5yn30kNj!64!jd{)N?o+ zyCI^D&%YttXA+J%+z0ek4$Bol$u(U8!?*}P3yK+kMFjFSd@dsD!Ce82SJNg@Q0~=W zss4po21qi@OXfY%oLN7k1z2tjKS$92WB{Q9t!=%q#>RbffLOHjL*jbt=o4g#X4iyXWM252W)6rK$nHO(y*_()21`dG!GkWx^qRWLE zCq^=d55Dm=MY4&n;b$s~tNYgp!Bhx2ZV1A}gAwgkgrnWqFGei36XRQfrMtCiV1oor z6U#O3J#L|5v@P|psv!`RD}F=}lJHW19?ZIOVE0DL4%o$XTC_hcEGUdc)Y1cFmDizf zGe=2{96)M&k#y!GYM{EI?`)_?W<_Mf2n#Y{zcrl_M@`+MzS2nPkD7|T9wBk* zXeirMdcsX0#Du;1@ov7~$@xaH0Sl%78?^q%{1UV5ZKE5#$DfY4F~84 zDBBRE1_GF+jRAhulJ|3i#hIWse1f#)!-om#_rx&#wD|{Y);h}9%mDbNTuvNAnswsy z4%;m@h%)usxobA3v6uKObM7f29rZaQ2&l zZ*QMi3kkxy1~X*Lk+HYuaeD{+&zJ6OPRyY3{>H}sx4H*v$JLoPbI5(;pe#}E=FOQp z0kb@OEw=Wvnf`k2G#qNVuac9Vx}{0mY?^Gnat5ECYox#SH3N`^Hg*|_a90p4%h%lY zYxQ^Q>C>=z=T4{V`y6ga!3RlMUb!8fX4ST>C6^odZ-j@j0Q-6)ddA5Wjd9zf3L z?5qA(B>fqHYus#v7vt4O$QsRV_G~klv-J;~Pc)1AOU2RA;txurWBvoX98w;E8hNC$ z6*J-IyyN&?KsXh%)ZwgZBsaG7J`%c4v%0H0_-5Y>T>dNA-#5sOS*vBA=+vI^n_ib3k3N0+ zvCbUGZiJkfk&HiBURz;%f_YhQ4ohU79p(*dW9(t-^00U4o@ZM_S$#(O-#%1QQ> zL^*H*;P)=ab!+Dxm&0y-nG$fGh|M@0r=s2y!Eu1x22XgSr)*O0^QG7c2?q7JbRt&z zJa5A zFKF_68>U`=Y~MdO8$Km!7nMZ|gWjyy{fx_NPy0g?)66-YNTz&!)?Ne^n%s$j(3CGy zwcCRsYs{Juo|3GE-okQmI@|2sdHZ1BM=rnI>qaf6sl?{`{Ac~4$mVs|Uv~LS_L^H) z6jq2+xkgsQ4ADPG0IylhW6GCQg zq@niV&_g=G?ssTGQUAYz7UC8WmiR077Ge=Y?K23D{B`ShH?)6OZCRlxWdZbWJ~OpW zRN5!12&$Y7-^A0bvvHC}Is=_yW1?qHB7;Z#l^zt85PgkeBSVV#t5%;cd>8&8v(aZn zc=C*iR=}%YLv?Dxgamiy`0U7Yn9@Ix;u2o8xODEE6bE?FhfWCJ(BHS&PyhheaEBH@ zKa5KAHvRqC69z3^fw8`e$4rdzSf06#$pCl88Hxb++w~D@0;eJfg=_N=PJ;|cCG8QW>P_ep%^xT9l+n)1q*Z!ArGiNY=tTuppb*H z9Y`8RDKywH$nMwXm2jGocbkm5*wlt40XrIscrl|4r?HIY`HtGnOGH~KlKy+a^f1xT zQp7vlR^aETUH(qd(z zYhP!Q75u&%1BG}%yV+OjggxMV$9(R4Crr1Gc6=6l!VpIxqmdZ^`@?EMM@UlVs#jaB zCqWghCrvF$g^94`4fUQAgepSQc}Ne`y$09rP__=PdomqlA^L*0qM{;K0?4`mg8`H~ zq253-B3Km!TAPMN0X1r5Hjm6!6mvRNsbth}I2#Hx?|{WFNCS4W+Jh*GWfqjGl>{j< z)+GsU3raxS7KwICk7jW!z-@!Ltwgtpl2358Zj&vV(;`mLZK}mF-H=`3yu)PoWql4y zPt+qdf^s2j@!Jb>upzsHd57S@HQe2)xQuH)2d=Si)X}V|`hCG%IGhW{%VsHVLwaMg zf{NK*$CQME6@oM^NnycSX-cp-;ZV|uN6MKx**hJ8LKyz z%4p+ZMl)G6LuJ*-lkN4(7W2N~jaA?a+FbE5o2&V3PW(fobcKK92zg4nOGbXZ!b3#v;*Y$EjM zXG9c-A^n-TRqGa1gAq1Efxb`cPwDSaZFg3I0=+kuF_R$573i%|hhl>QU9oLOQ4vYl zLeQ;Crp&Ne8VWRtv0DVm3anCC+KCS@gs;m7UzdSOOu^5_I-_J25(Mue|b;S8iuJ*WcrKLH2lEFF5Z$dAIXG{ahNrQsQ^WSJM^cnl-Ug|MuNYxjtwI?_g$(dx*naKcRo{YTo+6gX zUkX=00yzkwh@$18i}4^LOa=vZj0z=qa(U=H8LTK%tOVdXj9eO)8j7s~L1F)dngNr0 zlyc3v!_b_iT z<8{PKxp0wvPpJ1;2Xl^PTbn|2>oVte9Lu*hn_HJV_D>3#n&Ru9T$sCc_ICXvvxgrE z7V`8wUmP+spYKKJ^M1)?&ayO0{Pm??%hYNaR9{dd5%q^^e*g!;ta7>E3r#h)49|Rf^OVw zCC&{d4lx8_(`|{qQA6e%j-?a#C^1-<+L2qZT;F-z~uq?tp9sX?Zwr!Uk-c*-ehR-RV$5bZLqFSiM`#XT`Vxx|%Mg{aQIRmQSiKYcdkwL(1%k zC?Y8>=yw1e$Y!!gqSqXExE+Wjb9dLTZuSmUQQk|81%q+XVzEQt<9M~k-lrVz82HD0 zSnEb%cUeMpe<;4xh?zqGg9#z!s0^6wMGc2W6=}rDY+s{_D41jh(;rBVBKE!tRUwIZ zwg!qB!Zm_>Mv<}T51?Ekz5^%VTwFX~xARj{w>B-B%*WseICfIL32!&atbR_UAU4n648-G3(b7a=E;C-m`*Fh58KBeaP>j=z3!?c|+!|}069HyR zw_7d4u>gCUF6drRx+E2P)4ix-XtvaFWg$IX|4-0#@5Yn$|HLn_h4>x)&RF0aDzo7w z#)_i(9KUpqJUP~m0C?JE;AtdFlmD|sI68=!FqjwzKPKbntb|Qeh+0))uwCs4=>X-{Q=|sw|(OJs9}rjq-b`kVFFSBTF<3+Qen8) z1?AEypB}BGUX2e0LZQI$yn%dNk%RuXMf?4giS&Cr9wkM9r_W&}(Td;-6|D&RjHS{@i?h!8ISU4~oUf!Tvny%k-JnV6iEoP+6-Tc_ zDRga%7kteBOPk`{=J4j@z40EGgw$4>@W-MQ+&>ZuFz|HT*r?KBr{)6Q??IP_!h|)+admOX zlnjCd+ifmb0Xz;1u$lddB7F1nmj{!H(DDO7iPB_gCrpg6F#;C>2vIT}<5hna1e#6^ z=i?R0A6Md0b6Aocu|9vCZhkIR!W41;hl2i|L4OrQ>Ylp}&ze7ZkEac0&#s zMdDKxnnl0|J2t#P*;~vqe+EXf(LCQmKHX`yD~+U~osc z9DFo*$a_otpg=e6YMuDBNBNow)TARL)`A{np*0_fagxT}@0gGK8 zm>G~!3GtIgX#J(RclyhMQv~)|H-nK=wj20QKNnSZJeiE!C6~y}^K;v8L;I(&TWFaO zMIrJ_3xJl!vS#SU^J6Mh9n+L7p9;DibQT$IOw=HmNptIBHaMc=lTcSjj=d! z^WlAq1>|?FJownbJY^0F4Sr=Jar6EA7Lf;J`p{zsyMcx%u@M6_{Qy1;PoMw?Who%+ zeEHZkxkUEcrQ=AV8y;VD;{=IMGY40$xNHR=uqbk4uFu#8zKs=!?QT#|%PhYJ?+(n3 zwP5RvU(}y!RS0?f&~&i{OiLv~b{d^g@l(7k$n>F^c3qG~`>+;_c$xLWN#c@>ljR|1 zV839#`CuBj-NJ}|+Ub_1`(FA(dSjQ<>+LUn(h2wTNjc~~|3i1s;|ZbyqdSN|9E!Ew z4ju2~@DvV$F3=(&>oRC4SyYTQ1aeE}4lFg%XgCqMI80YzOMgQyR;O= zMB~WdKLr=Nz1S$&;h{f;#G*KKt0|{le~Wd<_G$kgD8rM(?gs+XcGq@*Siy6BBT8eA z3ZgyI)fGW?icyPfyHT{0L#rE?r8VWwOgdJcktr4#a_9fQ@mgQJ@ELZf#iwCr0Ld~8 zU62A>2L@M0On(u~b{akzVVpBtR_(mh$`_0X_(NgwwIxX%v!liYcD zBihd2IA2>pnjzn=BBW8QZj#{<8)0~qxuv5)d;;!1_G%~%@Bnlk;F5f-AYP{QNk^X+QWMAmC_hm(KA>4lKEkJ{&!ogf^LnVodrVV^q z#EU3~y<@8D?;`UE9&ddOn0WY$L?!1xjRE6hf!&?5;DjOb897z+;l&(4RL3$dPxl%u zF3X9JA=I=4-Vb8e+FxH-=IHbJz)KR*n1N&x#}`sxX-`NR;Ny#I(2G0wREMr*6!-+ z>h7xUuHMq=bh?>A60B@p&M>#jJ*$|I%HNLe`W?1%3>FA)wWJ`5Qc3{&UF*A;|z--ro_;m8Mk*ANh-i%0;Xb4I4Vsow z8U)o~N2bK``mLZw_~SYR*S39I>h&$FYGDRmf%>3gf$4J)$Rgh)N<9Xo;G_>oBj*k; zsss;C`lUpN80{Jy9q5dPqs%~g*R!Sv(o!+quB2l%pDaApJmJ1=wI_ zRZ$5UlU`X-CylT?jY_WJ=ow{Py<#eTM&Z{m$HI|b=Gsy@jtb_UM6Q8x?S<=O%L9n$ z@b2u19zZJYQYtgVD%;WGQHLNvl)S~g4q*}b4s9XMJxh6wBg;|BbqBZH2sV@MT)tBEf+>N&I&)Dzw@ zX^!Q~Tq9}J$!Cgn%-6`T6%G&d&G&iOo;3hr`qYv7x|zOlzI1ZnH5>Zodv?!^51a(q zwCbFqPiFTm^v&)Sfz1}#x_xsD3Dw+snrkjs7pil6<-6gyf?;KdZ8BsA#i0MDEefsV zK-+a~x3t|2?ZhQ|q3NOp7b5qBhYON=Ka@voCK=-1I#-ZU9-fYYR)DD{OZ>fDMFqFZu2D|=8Tu>YLo8t2gZ%1H(WuwXf_cK zxnJX0PGsYkkrpLfPkr6FWNGQ0USIh14#7##v5C(m^0u8%+yw*>7K9rNQ`b%71vCU0 zU_as#9kg`djky1#h?388OaOKJmf23THCa{7z&=-AaLWZU%1C%M`yzEa%z}gHZTO!= zRvqRH7?5R!`=~IK5CJItOa*PwyQ!$5P{~v@Q=6&+qcSyJ5fZZeY5FrXq!Z_DFqnt+ z$-Z^PA|O{5elwBRQpf_R)l}`+F}6!LwMyFg7L~6ZrgIKgr>FXaO5bErei%`}hecgp z5VLkMl>lx+m+xMjOz3Q*s2@q>0>u-VSz6g+SI}6>4V&STDWO(@ume0`X1`Nq8`@{)Z?ZkjrOa`ODCTCrBdAD*AE`NYxj7Tj-wxG7=j&>R92o6Bml z1SCY|Vp3s9K>Gu_$0u{Vlfu7-tRKcwV2yh;TTeO4kA4&qPqm$D6NPV5MXp~+Uh!8f zD!h7`qFknT#eYhLkA52ON?vxEH*)jM5$CzM^`-YP_MR_=kfccW;pQ&~n)d-6yah-h zV~qG|kbjND<=5Va$ECfayQn*TR1?f`PPIja&n~+QwhB3Zr|1p@ArI$mP`mkN4F^85 z{2oZg{R!Sh1-?RRH$;_4!f_;Ra~ZM#4${UDOg|pI#*NW!A{N@p284f5*bXYE{YqHc z4uabNfF{owLM#BE0NO< zZmvvtCX!Lw`vy1EyQ+$wjR^OEBh|SM9Mlhj`D+H%qrn!;GfAm!3hHPv74U$}AJv*pGGx41gHYs*awD|htuZGXp(q=%&S(LKZE zsY8G&zx(i%sxl=Ml02pd~HT( zUx5EUA#2VJBii%0$-6nSJTXFQe%+B9YtF=tEXo%!F%>@yk)w(Ds4j zX4bvmJ+L*efbXmyatLg%0?&(fb#M$_UKOwzkw;BHsH-J~{2ManrCtHd{X>laATa1W zaC!6!!o|tesULa;h>I>U7>cfaXl=|2O2T@tpdD7s(8SFvL#BKs4*E^#&&)#LYhN`x z&9Aa^LxOdWqCZB0>c-RqUeOHst5v8!lKMbhi7AJ!K@A5mg6XDs%?2Dh=ob#@g6}== z#cAK$eDAKV8G~^dX8NEnB!aw`?W1AVfuPSl1-0TblD!yq-%4)^f_Kb$7n`bdrTVi3~tLAefJ z$d`C+XoTf3;PDH9MDYvuz80(URTv*W?JA;GRxVTAOYoda_ax5ad}zC8=O@4=zv0r$ z(Iu1`E`f`l@ooYb^*PGOgnN;Dt6CFgkk6DI7+oIJhj4WZ8o#qOBw7AgcmalX|(DSWSlT>WIHbH~5`J3yuX^&+fAJ6wWY zSuuL}oHUFve-GqImNX$=-9+wnryFv0Hil?uFAW|v2k&sFnc2v}Ohy%&2Oeo*BMLs> zxk!H4#XB`?zpR~4D&YB=y#G?v2pxi3&s4|9RWqs%57F}IsLJk8&66*ghVOkn>AN!B z@AK_=3rOdDccH4zTZ93qr(Re=oyKGZ zx8G1B*K~vfmcm2H2(80&#yOeDD;174fNsG;7O-u4?ZWp%5ufRIF8m{3;Lk6XwV-^P zC`h+~e@9-!tI=@)Q)luE#h&8o;%&Xf&!_TJY}=(G+l$z__PucUQX<~D73Ay3z{4bq zFef-IPv2s#Qv91#aq6+u-xT}uQ+f0ck_qnEu@HZNo3rWDgzEsqf~2|90pu-aBbuVP zD;hFR!qZU<^c}Uc=IT!lW&fnOzV3W@J;>52WBivDo3j~>7~JRcD^s(8PMH%MAeu1Hgj0v10^H>IM2 zU?plky1`1WCk_s{X+{XWQPu}3M+mREfln&`=!$`QYXMGhls@r#4b+k7=(?vXlZ?P! z>NOct`bycg<4;el&4Pn&eW8&AVM{0*>o0Yc`=Z%UDV=N-9tkCq`Bd@|gklRx)F2N< zyUGY)f~E#@Q3Q&k#Jb8cYw)b|hx%;HQnCKVd1pC@Zp4!#-T9D*F?e;QV76x@8TTrG zRcw@y^yGdv-+_yLi(xh%;#GApKoz(E_`3$NIV?^-a1kGZ*AJ6e1l+8y`pM-WBsa9c zUNZK$y@~_E!mG}s#UYf2%0}<*ROK7sl`=E--FMp==P3Z4XF-uLp08wgQ<0qOP{=xs z12zt`cMWx3EQ{ycS!c0R)lq|IzH`V~K)s#MWo_p~wt^q!;V{f5c2h~7!v`RP8?7oT3_fV@EGZui4MqMT6#00h9{H{=7QOntl`kp~I(K(KH~b9qd|XkE4|%=A z>DhsS*>t*GHi{`vyvXBe{~cp72Y(1=1LBq|6)6A(r!o{o0(_zy(!7uhk;u;ixDP!5 za|OyyCUpJDgPQrFZ1zK@cJN6+)BwhhGD~|}7Qu?A$xmxxmK8U4f>rL~a2PQq*11v4 zrhaJ`oiAf$A^S{*v5he6__p9Nw^=>O2u4ZdD>_Oe}Jva1O2Om19p^7$g3*P!C z1U32-_p_FJ;(~j9j}YSM5#I;*Jdvw8zgReUaN!BX#{+{B{5Z$(?pGm37DI%lMiGDz zl*3qv)E06Oo~H37E<}X`YMPNv*wB<@fQBhGzuzU97CQ>19I0xo^xhIPk-&ET{t-;g z6X{HO!@%WaK18;oZf$=16jcRbeJCO3b&hz03^9ZK`@NbH^d5WooK@$f&B@Z>dQQRb zf8j)Ju6F!Lp#cFx0Zlhgz~$c?fDdgBGdOgxrX(Ss01f9QIf7x%wcNpF<)L^mtk4l5 zSwk`YrHE|<@IoF3rvNRUt+}7O9EzMJ!i}CeMSKI=57V29$kHD>T6p23D zkH>k9s}PFn9!Djs4>SWysM*B>Og#IBUE0bW5US-V@nXBPm~fuwN!7MxC(JTRVVRZk zQOmZiZTw@~5!A;)YQg331tY|@OrE|G&o^lX9nIHJdPAOXI1yh%^o>*`;`!zr(de{z z|86W9Xr>U%qa=5~aHleVNq~y;ppXX|I`tH;QXyRb1yDL)ve_Td*}x_RwU5pPhIl*b zdSdGc^DE~mW&q5ESb|oeIw%SvYN~uKW$15oekg0eavyy{)&T7IsY;j*5&v90Ld8rt zMp!ZGq1<%CZE=4_KO_^M{J7%>!C#_RYHfi42e<^c3PsL!cr0m2P!uhUEEp9H!;8c^ zFSJ|aNg<#mq^oJz&W$b}rb7si!gNaoCSSIap-|EiDvhp8%#4^`BTOa+mcv-?Ua=xd zeW0sxVwwuZ1g;+aj(w>9 zoyqUi;H4U$QlqJfL^f|gx7g=cLkCKU?;<|TZa-c!AhPI zR8wl2Ay1I~2!r_z<(qIqgYuri#$O$nQ=;8PcLCBzu!PNzYi(?$|jh}(p z5Sfv?#Bh0{Gb|nhNvLS5`M(GFSk_hX*c3Pu(0kbQqQ2<-44zUMWK5liv8y1D%Bu{7 zS7_R@mK8-ks&?wae^$#NST>owv54JZUMN?erZmeTy^K@Ia#k1K&mt?kx>iP*^VeEP zVg7{$KVuToAXcxH`~-Axe)`Na{V>@pmtTElH#Vsq=k427Kz&YOpBk{#t}Cj5tobHx zKX>A?3RBIXdiEs)=Yqx4FIBFnt5!fAxP3xH-2kn61>QCFbGMHZ+X`v=>+r6*7X|t| zx+|}_%{wrlj?e;PaA%S(2J#qQte{?U2Ly&GO=hH*N=scH-T#fMRx{7qL+`z6X6C9H zAGFw!3r0rv9NIGyi#Uqc>x-2^_-%->k&doNJc7T2?uZc*rM2@EmYZK&dKdBv5taiZ zKT;Scso=__@cx;rr>C!e@1eDk7(bn7e9tIj@@=sgvqI2qEhU!vynzh#NVtj*{C%~w zw$wal_4LVLzfR)xcs~dSw{@aFJ`63k2eCe4T)(jGt!?jYyRGdGFiUV{7Jf}wM=c%6 zP2(fq2)frG_#N&?n9VkvLDZNfn=Wo+RHS4|PvrSGl#gH}nm_G4}DB7S>&}5hZ9fRNP6K`=?meMwT)n&+pZzS>Y8m@)Yi6HDR{k7QGM}h z+URU7ju!F9jIF+uaHOkc4(BgiW%l@)K7J^O=^sOh|F*dePpTs^y|=j>f) zSF2}l5oP=WbiW>)0=|Y}rfjN+rcWFZWv|SJ$r0hU<3Gb^`0w!7P(#xq+J9);e^7$ji!W-dpx7brcfU(1Z}KZtTma>Cysvn)xb}*|0tpSf z;y(v7f%f7*P@#ZVv^Wx0pyvqiT?_vWvGp_g>-}EVMa3IWen-=Vi!_6nW0zxj{qSv$ z!mqH<_O`ZL+dkZOyzMK{P0&oRT)5b-!S97eqXIKf^c%y%2=XU^W^9K6$_GrXfkr8T z*@SB|9zJi^8t{SemL{Jr>9|mL+R=t^S99x|`>QE$iI??+wlEZf48Vyf*v}7vmO~^4 z#ViISzdlarx`^S0kAh^^6&7_cchO|Ur!I_HE~ZHolk1XZQD#h6|Gp@&OvSJd6jP9* z2vDLDu!?Up+u4~#Dg|O^mJR~4@G(6b4(ByNMi+Pt)PjbvU`Cyn5}gc&ykX@#J5kNp zQ1NSUdn1}=J_;N~%D^(pie@UEqhL7I4I}kc_;E6D`tJTDBPT)m#DVHmv68+U1Y`SBX&Ig=4gAY8%)V?jBZ}H2OMyOIcTV6=G`aF= zoY8y=clfz<0+tlyeI*NLi->yk{Fehp6(LHvgsp+OnjFRxGW}Uro2}^x`f2K?=_mTp z6zJoMsddpTexu9NG&XQMbXOQMG*2Qfa_WC#UiwEM$5z05ybkOI@IGO-q=00JRAwNjl3E4tLd``hr6>$@Wqb8#ZMqie88vam-eX< zX&>B_@N2T`O~ma?q|#`=p+ly3CyHWrD4R`v3-N$xDjoifm3~<@t%P*9vi90pnYw=uTy7%N~sx#?OAW$fHJ#r{*#zRRWDM_Z|u(-*FJM}f>zcR!(CwT>O zQc(t*j03LXLc=e@3s>Qr1}bMHASp}Zl)4RE*4)@aGgDbu^aiMb@aS<(@Sv*RcUZN- zw69s(LvTiG2k+ybhHYZIfa=_qrQM=$*u74>6>?O+Ra>`v!!?PrD$8nlprVSRS`luQ zW8V9>9`pud@0dkOb^Zge!rID}H9!rklaqgxPWamW ziT3t{Z-pc~TY3b?EB#EVF$P#GA*MBtlu9iRChuo)%%I;I)c|P*G&+@EV z894nk!jEMZwB?V(*Zy(Y4yuQRxA{yov`bh*WT#v$!4Z_>~$DZ-A%m+ssjlW3K9~}I22h-Fz~feuTn_Y zAU_m&Ed`L$q8Jm|KKj9ySwC zW>KyjglBdZ=|HCQG7-f-smcfCjfOf7HGQ0f%{V|RSYU?wAg$s<_~D^oZ^pSY(+9rd z-h}g)!Dz%1?g-k-VOi}~ed7fEaewdg;rHI>RG%*hhIxQvbcoev3o5AX zLiO)MZSNxKKv^(&+c7@TV;*Y&u}6VZ9z2CYB;y~n2|O^2ZU}k!b+G^sF9lEucjbz2 zm-*iV*k;Ky6jMt0YbY+|G=(l!wJC_|y%x zj*fMyG6qnO>@&S(P@7%mi_11Bu0j<#s&*xP{*GG5MR7S8FWrd^cc_B*eO;F^X2;Bv z@s5?DxA<2@dsHD9k!MshdN~j@pe|U3&=C2ko1qfwXt4UAp(8=UW%4H17w1;O#84H`EUxigZ$fBY8~lv09FyeX+$;lO0j+v6PT9vRt!*!w5@H}Bcf z-@j$g=KjvY>h+Vw;^g|(1>qmFeG`ZRjdfiS(6-unWsM90>5((3a`=i+Boxl1E>BPO zI?u83Ep(o}{mpZLqAx#HC`_%JER`mk?||@ERQEGWD1Itwz2qzNxc)QOm)2-a3QJUP zm`x}vLCK+aA-DqlRzcbY3F#s3GK@S?BZ36Z2#5$_v53p!{wGEk#>W>%g~`$Ko;`^S znDm2Xm96Kd(cu*F=i!k0~ z-@%w8jLI0|DR=W)Se@`5tZ(Z2ghm08Ne4_Vc$Hg3&!lOfEMc=T8w84S^>w%#p@=Qp zKz?#;0nP1!-YGUyC6?KP=@Pi|IkhZkW}gZmMjeYjR$13WX@<2aFwEYv`4$lA_`NfS zXOYInvb}2Fcca+yyT5KAPTWk9Sceb3zhj=c|NcC#bK3DlbV1pKqxbp3=OK78az<)xQi zef1?lJ96X*f5)y5E6y=0b;9uB?HDZAfp8n{fNEtE$c$5T%~_Ab={7 zIx#hos)rx&q$8TQSJL~B04u;LeaU74k9(qTGJC4chpAQd0v@y>7EVS=X5xff`9dh= z6MgaeueWbMdi;2$D`fkCrYOX%#ZY{^nPLgEJ7FC+O=~u&AY!Xq{$4O3o*te_eD!;l3nOJvt zwd0X=zYN>fFWa98)h*R0tX6$qWrfek#-E6p!X1IwxSh+#R^c?k-Hh$d;!Li{>k|HH z6~vjk%K5rK=KX{%`Zg76lyz93QHIH&^;mAarpXRTjSB0S8=x>f zNj@)W?7!nhAy;HNUT{9h>%#(LC!9it3Ce_Y`3P}+G-+1yVB{`z^XA=NNG>KjM?(G? z00f6-;`MA3oOe-S;~J`UvgYK;XUNa^OqZGZJORI-L0ObX&G=-zh{7huG|C0@=W%Nd zgj&3Um?d0)VrkG#$c83@f}YeTu^mP?X;su`-3`>xFooStJTQbbSNb)r^52jSHnanF z5iBG&kljImlJ6VZj_i;bg>wug!<<_Y3c-TOXmibAWz8DGfiS-4cWigm+@=}2zKwnY zzD08&k99=dx8V%V-6lUOs@Le;?kV)I?eFo*fC~AP$iG{`aOI%AlId6yB{xVteYS7PC6AocpUbtuHV<2D?ld!GsgoG#ZqhjM!=;7tPLZDLRL!4UFMPto{2=kYyfeOFgn|e*!V3U2@KV^XxaeYNgqdAe7VJDD~smdu937O0hi9 zIbEI~l{Il-N3FJFV0!2w(NgyfZ5tTacIl3RfgQ)5PnV}V`}%5~&!<@DEbd0=0~>%WkLCw=BPx*&*QG>_ zrgR|mjRK|ApShojZ={N?9j8&ZNSth)U-&QJ&jD$NHvz>n;H=S2)x41bDNp};GAM~q z^@J<|fA9%XU4)Z=5A@()Q=fKLYeC_A^x4{ya5uWE>z2;!;UAfD zIkN}upp^STKFmFIeq_&z%+ODm$ewMkeqXb&g|7+^FP)3}{Qrk|hQQ_nnuh=VJVPP< zckm49q5l(khG^c}hH-HXM;?w7n{Nnec?UTX6!c!#M*`Pq9VYD(iakfiaA$*(c-I>Opa10wTXH&N|kz>Pmq*9&mmbm&u2OsM} zcnha#CWZ=4diD~v3!H|~0Ht%_lbV*OsO-Sj4^)PRdhS}L z52`$ZTst!xrAWX;*TVxj0h<;y3@xJ~wuC*y(p{H7=N400x&)BNR zv{b8qu>ZN}iYWdb+k&hJRFy(%#K{-e0Fe!JH9mxc#FLZ>?;?u$mFA94wl zrg+}OL-a#RZJ0U?K=#z(WpP&8F{C%_Jn7|7BI8$$rQ|05gtf%C)o(r z5XNr$Ta?x_LeYdzB`gDH)WFF=+vQBYA-uxBB!k0YV6m)9AZQ!?qx zH@prj1z{C9RFEsnsHhCUgk=0j4OZ%a9uAGKK>%Fj1>nd&(6B(zV!jzfPhG(zDs+y& zSbv0ohNS;v9o`yjgX)KK;RPZe0_m3^wWrqSb`emzu?Wl~7)pRVfYb;Ap2q$$u>1y% zz+^IuxJ0zQYrIiPv}JoZtm9ItPlsJClk*o`ieL-A2Vfn5$*Lz;dn?X)$&t= zapnQ1eb}6Jx-S+M8wg;>VU@`x zJgGkh3P~#y$p&IkpASjHDJ3)zH)9IZB}orR$q8^2z1lVhT;I)@ZNRhyeU6y^2~tB2 z2{8FlLLtx-Y{S8XoG^9u*fBj36%z+7(|&MHPNn3z2NCJM>A?L~N?Ny0fqHlU0juJ% z-{;qT#`|oBGAiuUuW^kx;Tps{j9h?TbPirsfTFJCR^=c@s#lKc1uMw*fvt-`+M*Ks z<2fajQs(~H4g?Q^%P-+Sc1-nIwuBqdKCB4odnC^~$@dB2QJdMf`+YwD?NO;Gc;NnU zOj6dZlM>+vue2i9E8535G2sJudl}3vp5x{Ec}Jn&PLUksf&lp*D3giRPODFJx3wlW(3k0&X;hP0r@UPTM{(AvU z9>bQIOZ?t#rw?*ER^Brvlt&9=(ZX0>XbS|QPX^j?3Y?)tUr{>EXdrM8&M}5zHS=}& zFfx8jp2nEo>HEmoy<=}1%dT|(sxX>&F-Y#bKup1Nh?wjI3;0{`lo&*~eGEYiI?SU` zVPSu`-Uag3glM{eXr#nHgB#w+dxozDK@tK9Hzf^5WNSLcROWiQV?{nK6C|>=iL)t< zc1Qer(re`HuIch*Pgf+e`Q`<{1pD$y8!3&N9?wi2x*fa}hMCFNRw1n&dGVDvP114a z+X-4t9B1)7`fkkAVj)$X}9a{xq~{MJNwqpRVQ{ECu| z&Fo(Zkj~nX#$=&-JzNj@geUqImq+3XH-$bFvT?n5s2if85Jwu@GFzPZkSdf%*7R`2 zpz-jDl~-;e`>yFt$E+5s4?!rAed_XZG&tbpy4oBPhHJvE+6I8`cOq?a7oqK)htie3 zy8cVDKk*@$ttA7{!kY7u+MI`-RTIvyt$$~GPfxq^k@lWS`d3h>SRi5;2VnSl{1L+T zkblm_dbR^;Ho&oF-g6!{$FHUuK?&LK{btGRVEd5qOY61*(f`Fa$f#)K>&^3@X z+c;`{9r|t*##^qX+93;{Qu6CDbYt{KJTs;|5&(GQA)t~uuAM7*Zay7X{iu*&X;An! z7@@>Z`a{0+B~kLoiY8w0DG3?%*V~r!qgd>jP!t6QW3&(}!@>0oST=sbbLp@IyrGu~ zPl=kWPP=jSEK_ByvCcUrit>HYw0fzgty44M`@$Jo+#qMdAXHo@ikBjl^*&&bTZ=rd ziQH9>kH>64%y1?`mt0#MYk(okS_cXZ2;%jSXEh3o~7xbI0-O)!XRL#Vot_x(?*N%Wb#;xXE2j%ql%MERqf? zE6)cRt+bZWuLo(F4s!drdkmJj(nEXPq{(`uW3WS7_B-J)MRJ{w!wLo)!A_(X8QK^5 z3Io@nNrThSxE=l?ja7FeKMJ%)C>QqvXBHL8&I?SX%u=XU{bp2v75YX&Vs))=N6vTHB{VV-^+ay4>B zxb7peY)Gq?u?{Cjt`VyXpB@hVvGfOz4P|gK;19iB7OLZiMW)06m);1&=^|H;0f2G&yo2K?32?Xa;J{N(#m7 zN)*U*bpuMth@uOUaxehIhZ|jRk#l%pMCX*275b{7t;hRbuNfZGw;tL3SbFD|$k&Ar zC7CX`Lo_FeH|-M^=2!EqAlrt^R-y~rP$1fl=vs< z@dm1sdtWv@sSf>R-4~0GtY52G>JCL&X9)kJHs7mDF=gAxHbv4`Wcs%BD*qgldN!th z6#dYq;ZRif{-;s2J-&ZK-t)$WZ>^&2P(lh4heTj89Q4uW(Y{^q4`TRI);&djI=I1u zCdS%Oti#P%228mHyr@Nqo|F11#rx`f*%g#*SU2;w^PxoEw8OIl!oJ#U*jX_3odhV^ zshiJV4ekTuYNR#)%?{l%jUCwjcECtJPe^QMB|$}m&)3(Ap4mFB;b&qXVFrU{BH*#8 zbWVuYxm`-~@)FFq?Lb$IaWrgOh{NTexzH3x$>BA)_m<`oH|YDudzYYJuleoA+!W9* z%KJ{uN|x}kX14ft$Vlg$|L1$zUY@)v$Q8hhmE>A!tB#DMpzi!F8NtXfuaHHYTB~eF zzB>K{z>#4fD_z(uC8w1|qW`kEzZX8CG{);Efu3HC@p=~K9GG5Yy2T>siLJmnrFFxu zBXzw|Tg4!fNWF*w7Doy)0_t=C#H&tt_IX z##vZ>lixEQSJ{0UaJ$~;*iSXTU;EiN{Gt*>z9sW}W^v%Lf!bj5uDLrrpX>cBw_W$b zuYD=vE1ih6QKTAks|RzXLU4QxusViftREm}atF~09>){Qfs0x=!F0dQKDel)l*P&?F&RRAwoGrKc=9Tzn+HzfvwI#06_|IhYT4z9mwFs^N^r*g(sGx3iDhTJL3Ve z!udUXz%v;PguVUawQ|=;x!gB4si@eZsJTu%j4ffiENqR2B~P5`>Q3Y@MI|X3*Yv5~ zGt7T<%m}lpC-~O#aOr0D3CZ*=QVP?e-!BFicW(|m|JL3G-)@whKZAPq(5W$#g)qPyA*#=?0p8Z|GvV1ee5jQao5>BwoR>2(dxc=z zjT~Hsb8QpAQN5pjTY%;PVdj!@AT9Q8dpMgNM*YrA)J~rrP&$*sXOm#^{A_sbTCi*h zV0oHg+nc|Y(F(x{=4M6;x;@k>=7($nL=+$etxRi- zHy!)}v*13k?U#qv!MX$zxstCj1|FGDUEe8OFC>l0O@{sCGFAGCRKa)0)=W=NW-E%iUMXvD zB0J?xntbJ@azsV?YI{4VRD5#4AYLpv5<%fj)pM?jx`3d_Fnfdw0L&`bKvgRe92Od8 zbk7@-F6>1@n5G4LuIVv-s>GN-B1@{Tu(P0fB{_1X>@lOD=CWrVnv0kQWr<0lNNnK? zTkP;vWY_!#@9121FT5#lZM&xJkMM@57Aem+r>=!A2JMUHC3;f47c9}klNFD{utZXb z>lb)gbPQ}9979?e{hrTloJNg~!QnW%^?T5xU;{)N??})=Da3>6ljce)Uq~hu#U=O# z3JtT(?TlrmkUiz~wCmOAYDHadcPUBcTOZZ6Gy~Uk*k0`wu`j&ZtFE)l*r(CHZqJ&e zHx3H*wYI$)B&ov-lrMk_47bO%sB=nl@j zIYpJyx{gOu`94FP<#(44gs3dxvvxKV)Pqsva$w2QgFY(jLEw+l&=B=~&r-XNA(!I@ zv}&`>&@}YUn{9mPI^ezXdLuG!)^A(rG2 zcmL2&vF2*;!WS4`)D-;oS;pGEzNj+o^(2+9IEwMCj#hQ-^{uwUQjW2-SC6P`ydw76 z>-k>iB;MGp;=!xcK|?={7L)?YYTI6`1n6Zh?UK>bv}?+?rxj!R4(Pca=|ME?oCGNR z@Ez>1I<1NcwKK6!RVV4PDY_|iGR9J%wv?wemXgcJ&7i#o$fR0()2ddPPN^x;lyUM| zu-+xq)T}IuDcq7OzTPfIjVP+l7avk_@h3%5oCDzq8-56F1beNSBl&+W-%Lw(rMdM1 ze;({$NI>`pI2%JV7tM9cbDs|8e2DT6uJgd0Y!~_?;2D8qj5NBX1h6+ME>+6(1|uvQ zboLVv`Ry@Z-~*~(_m0hTfbz#qgC<{FQ|fKKnd1Q;fXnpbmxCzWyvYv2n%dM0OmwD~ z%P{wOC^v2T4KveT`wXwiOoM@fc?!Ya2^97{ph*uC8VwP)*S=i%-;j@WW;@7;+_fM! z!1=Ofavg`o;4x?vzwv`WV}9TGzRS*zbnY6?PSsNjvUru~^NONZldclw+alr9Z@M@0 z-vj>B?GTD=+B3MTGjjH2dnZ!$HF?=9t!9GkRo*SC3Y%iw)`bV=gKQgeX1X}L7V>5U zlzpKTK~jq;TZ|&M#4q9c(nyhLnm)M#^{pX1G}T5W>j!~V$Pz?GI=M*zYx42p)@SPJDGq5@BG4NSav)J1sFj< zD=z#;ZajFXJTg)~WR2yVUzAp!UYm~kuQ#k88I~s;xZvb_jbPBY;KoQn_6VYqj|g5X z#}{)!p5ysf@Go14yTPX(0*sCuX&7Gc(d2^7Z+EEGgGl5h_sq`)Fw2IGqLs1cqUrGL z^nuCA1Jkp!bC+J~!8Oz2lL?gNjhXC+%>`lQ^jmLw>ndlbu;-HZ??c}qo#+ty&$;js zQI(oKkom+uKq?$*Y~-WoYc2fL5ac}GdJ{ZHf*L~~4O65zBwlMhMg|U9qe%OKE*Oao z5sn<8$`X`7Zi?dd*TG#+Mobt@K<$U-7^EqQ8*y2{@7Cn9pk8@oaQ%h>Vf)~Q4TH|s zzPzwKUq9(U3oba1sxW6oec6u4T)j#jaY62Lk&l}${5m-e&sDIP^suK8Urk=~yGfqJj0>M$_wFM$lT%Fi49aDn= zkML>uy!>A0UsPjAiUia*sX=8oks%C}Q$jLbS|&qMhyq|r=H?Gfo->^2uCT+bgONaE zry1=X7oM;B-2DCq3)2{9Zz%#r-yfs zibK2i?;alBJMn%)$2_UehzO`>k&t z8hZ0vcS9>ApO)K4eaJ&1PRnHhmp|xMg`ISxPti@D|NCxHcog@CJNx19yDffSEngew zNqqxf8-m%?{oF9-_UfPn+?Xro)ZwpHppb!8p2r z=ZF;Ot%Qm^9P7@9a5ux)BcKol7Q_h!XFDbsr%Y`HwipZegxe{Y;q2E8wi0DTD9phM zwCP#rqx2=5hiyUUgTm+O4LabwHP{@$Xb4E{2do(|;=BEz2H@Wj@&=-K4b|9N{>df(qjRA7KK{uKi{QFs z^IwVg@@7JXENhPl7gRa04^iJa{Y~C2=pm&gcc*hqI6#57-}=TaT}zO?wfvfU2o=2- zaq~SCYtw{}`+XdfvKzRU{b-W_q!S*m0r8H+4>?!p@UWqiKd~a3pefyop!p(}lM_Dn z{F^hD@D)o4I)hebO1KQS4`0)7+IF+^_<7n2FiC)F=C7#47M!0eW!3qG7PbKOjcD&* z`fbMI@11-dcY#lfViBn11|l>b>GR+jNuA(1K-~Z0;gJS-8DC%u>%MX7P{Z z5yae&3N6orj_Y|7?eYG$Q^I+|*Kkk3QMy=ZOgqAPnbx(2g^SZQTdR%^=f}C<$$bXO zIpp<@fA4)4-soN@-uV7b&n*-u?!Y}RDahobYbq6F*rP51t)aMG1vJX@w?0T8z%ruj zV>llMb~KejbuM=^_U#9p(fmH8GCoVYIst_u9p-z8jsG06Sn|TY3E76Y-f3YrAwVnU zuGiMJ_(e$`k}m<}f4CfjQ0vE?5Z_XPG#OV5Dwbp@CQw;wNMR}ANKQ)7WR8Z`B1|k3 zT%Z8#45uKx5??M34;Kv!Vo%dFJVqE_27qHHe~ujdRA#`mKng%|FpMQViV6ha_kk|c zrs`m#Oa+gGV5&E}URtSM3eK^6I{s;CyTM{u;L z3P>m`Gk-vVFUcR;7YGKl9MloshpC=Cle#*uyIN8qJtA4;88m@A-7Ikm5(`JV(DGUOa}S5(w6YJ!9L(#@bG4i`SpE=5Uvt zjzr8q#fi-e();$mc{O-MWi#aY@i^txjX$&Q@a%BkBy|YlWXMFTL$#elhQ(~6aOF0& z%P~qhe|h4^B=xg7TV;!p-&#Q&7ZVJ!{%8#I`y)>(spE*|a{Cr5wFx$W;u6q;xyFQ& zZC-ftyeEG_xkJmB1xa+UQJD0p3$ouYcX`uW+WmomKfRD9#+*_bC^FY* zpd!PLd*NcJtwOzrHJ;X^UjbUq`Gg*cMAOxl5Wj z?`Ebl+*`n~m)N|j-p|vWJ^+Ca)WHYUsMDKSWwdLOzt5v4qUt)UV07BaK>2Xbd4r=- zb#&-HRgENas%+a#9n_SxjFMo5PRZK0qkSILxtLy3{W~--yA^c2_XAmGXdfU1`;G@> z*+{jojF!zYf1=;5zfew`l`uNB!r5DQ-ZXf=<=m+0p~P^mU4j|3Ml&Z2O_q#Rxg+<@ zC6snU%lNv1G^e?g-cIP{4NFFB=iOw)F3RRnb4>O_7W{t&jb`9}^~jA<6W+ zF{fvcQGtABSQoA;T!Q8|h;&j9=CTsPjxCHwfp5or57m_%CLJt;uz zupPC<+7D7?T^Jf(4BJmSPj}Xk!`CTH6;UGbUSTSnNLeULoJa`fbjw(o1+C$TnHFMJm_= z3D1W!>|Q*!JBxuc_wr;R7LI%8whwK@au!`4VvsT!Jh42#JEsNxLoR#XGag-}b*JDIJ6{j-*< zxOGEL6jEzD^FpC(Hd*X4wA#o>4Hem3Ot34fbI|g;k+Zl3&;2euIqsGRejzm7mp~#4 zelL`rbC*!N0mx|j=f;ewb$|b{0RCVw69SdYd>)b`?T5C~tCj)mr#FsGta>yQUkv%d zg9i|(VQpt|>!_JXIG;z2)Sjb9-*~Tck?zg+X|VERay?HX07=V+;fq^%(~Hq?8Rmaj zn4`#qv7b0%8sKiB&<%gc}2_6D~J_ZN5VFC9eGAYI_TmsjDNTWqS;Hc1CS5V z@D;@@{Osd9tpo@uRM>RqVw@ZTSI8Jp)@#}>LXP2;Z8wo^NANrD@Z{Z~#dVLOe%u9y zcZc@^LC29%&3p+)#_^81N2{b#n1=HPhLYWXcGoyH0ugDh6#F2#$0U3&4)#;dKylo+Ym4t z85Wp7>KF`YW7mFQo=A+Xa4t@>>U>rA=~gl^a=};^s&m{`pR0TB(G95!ppk9JrLSzb zWCQ+$=yqvQl2GzpI$qt_=ZRPnXeb}K$QvQ;B;vj3(U=vA3x5jV-=*u}#pgDSd%qdn z?-gKAxemVlI$YRIi<4B?cEEqQOT0CkgKVv7b>ck|C^IZUzk~Pn57O_HI>tWfI<9UA z`h?|r-b&%ZN0AkCtb25{TiDk<;zKbiKzlv}T%S)4N>|B(auspsUwWx5{G+#9MhB4# zf&O}bATI~}a)DS%1%Tug9O0gFYo2rR{&QIhM7rd9Y`?a$86>_$6?m zzZ4a}c05ri@C$8~<*Vg@a@TmW79GR~K=R7=@4<(uA2G zeuoD6Z|`ry@c?3>h5$EBlYm+-4ua0Co{q&LD>C6&EImk7kYm8Cv)ySp$upT)B-TD4 zp@wpV_IzI{g%gpm_D*jJl%zrV&n1Pu6R7n#(~fvVHW+JXD`L*YvG#OS_^2W}7t=3= zdnMWTJNImiSTcMh5$8)06IBSiB0?Wd=sYW-%pIs-g%JrO7&7$Q&e3CaM<{9u^f(;Q?{LmrfU?5j^37>U=sg zkO5f9^#jmz97j}bidcZaM32draNGPA2O5}Dmb>xsguUqfK#ijDQAh^u9TPBBlCA)| z9+OL$R-25R`>liWj=AFE2fkmB5v8J~53VoB-k`vfZ!V@bN)Bp|ty2;PY+$Tvd&#^D$IAZh>> zAsK*fVFYanU<{K@2UlM&1~Z3A5bOmObwhZ6VuQ8sHbe4Vc7s&D{&FoTRX>x}lfPDN z^)ZzhUr;@T&%Q;I*>wpm^VuFbsa<}wTe{&gO*C%XXKhH{pn23k!?CDQa>Zv0jLS~) zu}-6HZsoO1;WZ&1Gel-kgAn}(KqI_cxTX5ZE=7ysF3<+Z8|W_rnhn4&xv1c`0%kh^ zR1-03lU@?7PcX_v;5l9cyT&zbAZ^HiEP$s{Q~__0LHHVG=6I%(0pEdch7;*(wiEpm z1s*hHa;GQYyBgm$uy6~z6&&G{2N%PtTGMP)@(Tk;4_qzit_YZ7n`)xCv6?M*%BUoV z0#S0Y69knT^9j`~E~sjF@!%wcH0RwOfq&>8_=kdRkF@xxeVT+AmkIzmCEgMjw|07>PbH^d~sMdct0JB9$9M)RNqRl*D82J`zR^tFH-l|>^E zxQ2;d(I2pJZOANtz$f}tkGHwaql&T;@cTfR&z!AYUA5V@{lZjj?a80_^a%f>H|IQ^ z?Rgf(12VRa*agf5Z3rP+{0Nl2VHwbEEy_fq!T_))Dx#_fz&I*UZrG35ZdS#EFg1f! z)LWBvJf19K0Eoz^5oLZHj>_l|i&|O+jfswIF%_|9P@mF82&serbPMlSL@F8WH5rcD ziC{1j!MT~T=u#lT){P-Yh~w$*@|#ywhu}y*~0}sceev`Np%9YB3|ECK<5D)cT?WVUfm`fU84~ao;V-a?0t%11UyI~nKsb@h zWmiu&;rpkIW!FVX8n5fR3@w=(sCS#{+0@ro!|)| zy0lif;CEC!aAm7|F9Dz_C{9KSPU~%R&1sqOb7nx~MJl)fwk}lNII`U0Ic*886@HYk z9&ry#yz8{FBWyiw1bLRd53;{Vnk|3gGZ^kd+zcg~784tn4$TWMD+AG^-eaWG#yu)R zFs^O&v73>(%Zohl%L;9}xZP`-A2tKt?QlpfkNfcJ7u=|}dlzTW?Q#1T>I2aapyb)6 zYIW1D`6?_bdbV30B16u3l&w8@?BH7ZnE6a||E^6{;X9}A#`#vOxV&fXAh$pNe;@ek z`@m1*3;z%QDX}p! z+NxDED3)Q=1v~^fpLO_4UAe+ba~DnxG~6OBUGrOkGE^o)94Z= zyGBO3P#bOiOUj$xvs-CwC`^`|XG)WW4J^E2(Ccr^kBrPW40UkB<&)dDt(G=5@~c5e zS!iscxcaG20rwT7s4NT!yf_|>2_l=2&%dx8no&9Kc5i$gWuCvRSqb^xg>?^5s@*^D zFm3B@Dv{!W9`>we8}hx*Pi`L{2;0U%=T&HF8vFjevSGs$=05Ys@yun!(lI-P@L)?p zKgqp3G#$=I56g^#V-)g;czqs9{1)DUoHa~^Curil(YcXac*5Ingd2!;p=#AS^}aq_`$5>;Av|vhsLL_%jvnb{uHmT3Hr zZObQAMBnP<&?Y5mxy{16-YO#$GUy{(sXWp0S6VTwEbWPPcRMNJSM(H)0`tTY*GSSD zGEan;!l0HTN2GA65q7Q?9HWj0a%PrmZX##7xzsA z#I<+bwj$QpIWWommP}J{TfkeAJBqv_@I)laapULk3!ZeLZ-lk{IZR3bAL{J zqA=!3Vnd%Y7{N@P45vBU{AzGPF$S zqF+sYSv65>%95{zUKv)el`T!a9LGRucD|~*^8xkIdz-QPmIYQKngq{QK)onoN6F0 zUusNkTsXbR?h2P0YnE?W*tn)qLO$8)d+y;JHL%u|5p*M^pKe}+1Eqh0HBcP`hCKhv zxnCgzIvHJ(E-wrFv(o?}_nB}EW%@?e%&u-v_Gi54Q(go|J+Wka$J3#qGj6GQckE4G z56W}(CDW5v`nd4g*0- z)vy+ciH2t9GiKevI%XtyTddCKF+kyH8dw_JZa|%aBZHCpAn~lc<^+)t_ot8s3MsP+ zr^7HC6JRi3y(tJc?WSNXwtLgkVsO(Y;o{|Mo1C+jR(Egulx&F;BK{!b6IZH!rg^VS z$n1!Fp5Q_tcJ;!-rg&g8S)DO+b0Bur=FJb z@Mn*SL1mok8zo?5C*&ad3klJdjvoROaT+|*MOb6~cxR}<+r*YE&4hRb-IRb0uK-`F z^DlZG2+~Dh@zWeQh{{eyP%bQ|`+5^yP&__zOW+TH}tt+TxMpK~Ogb0i%d?aOF1vPRNKn#Hn4Gb2r$@p$amGv4AY zj$@nPy205T6WkC&ZV0Kf6cV72(j=rMf9fVFOGzP@0?q9W+?0PwlP=*l4I$+NeE9To zSp&^&dkf{(^8fq1N17Sifrj>fld*KPo%5b|dERIFJ-_FUYHs}~KNud+Hmo10-Qn7d zZhPbGx4Xbbxf!ZBk%)5OxiIN^H|huQfs|@t6B@&Xf)rxsH(hHAndC;Tln+J}5!b7s z#!fH*=n+fzEPY_In=5GBkKOG zvS_E{UU^F6m$tnFbu;F8yi+mgyn@~|h294~rU23(6R`9?7bV@VpjK7 zDNE}&#(sI6(mR})1Cpmg{^}(aGm;kfU^DL{eiegMK@U(`-HG|8a=L8)yx||wwr-#9 zsEdHb-v04ky}&yr%jHS6rw51|Jl)so@--o!B!sMJ&Qw|g{#{k(P5jyHit0TTOk(Y; zfhGx3w8~y=nz(=%+Mp@ir#Veq-P}I2`dGdSq3qUcw#QLiAthWUEM>wINO zy}FHJ&vWDBox}3$(a~e_Fo!ZMx{K>;5FJforhO#xbvJR*k!3+oP6*B9^3tv|bEt~9 z;=T4XjxDq_xSmUBF_Zep%$=UZKrVidK;mw1^B8@10|1aIFt@0r7_&^U687;vxgdiLkGen9U}bl$hz`lruoda_dumx@KsF;~JBiLB_LUC_1@O@%ya_N)*|-v}qex9f-;Ms>#Iw{w z888l`tQ@jVzX-higrheSvCh4zW}(nbeeEBd)c-Wisc#6y{WqpeJ8r$+rx~v|6D93K zVcYlDW++6g9_U;#FzmPA)_Rvu>3qv=EGfQbH^Wu9*d&Qg7Y{NcC=-%cEO}YU zs*lj&t2MYS%hNc7o6-UsjlYu>uD2*K*VH+(^d~x>q72lzE!Sp#3-9jha2WF-tnwa& z>(?b6;_FjB9k{9Y#n1af&a2U*T`516N} z5sg?-UGKsmJTj+*#zUlqifOpIHZRzKq_V=YjsO(L)g;tJbp4u%R0-kJJNEVBuXKzo z-z2GFY)u%EZaUF)6_vxaCm~5wn=EU-V!q1J&4i@GS-k3v0`ci9$>HRf*tWxz4Ibhn zodfk*Pz%SS83M^`igEn#e{!?Tz?(VJ4zDRbBgu%*6vr#+=rf9`{+Vd{!c#IePw|Zh zQ!2*2;!(fd3TDIZyM;Bu&Od?=<%{wF?|tv^=1epp?Ae)$(sz<{(c8hEzz z-6DZ*$!J_t2&eV_u;e;sqJK|IQCmj#gsh6?+`K1fjaZ@ov^(e@u~;lJ4|_7^V&tRD z!yZ&rMxv_1u_~UK^nr7oV8>cHLXztPDpnVD;cQSW_EF@Uy72=JKc?b_C8CNtX7-XF{RZ%e1&>gzZEL=XAD z=<$4Upc?pZ{=xVdVREt8_nQthI`-gTq&ilOz}PMrQ}Cc87hKpLNxQaHfCch2I@+kh zdq@lx0vTd3J>6CC#%fw1CWUs4Pz*TnRNB|mcDj~ETA$fDy>ZeSu$mXOE_TBA-Wv?u z`t!TI~Gj4k)Uu`^o6vP6ZfCzao-qSyn3*i3L7;@6(OO)AxQh z5PSaQM@L6Ldh(RchkT^J@(x8r^?+sVu#h*5iTF=#+Wn{K;p>I1KAuJpNQ$)rq)OC_ z5RyE|ZlD587-CYR#1ySfRX9>4krEIT4-yfpN|l?2jZZM})BiNH)`(G3T=&l55+K~* zSaUO!#vt@CH%kNs(^5P3{(A#~d*83e>}@j}n^cf#Zk*cbP%Lh0)6C4K*21m)r+x9l z3n@V--(M%c_n~Xe@s7_U?{E#D!N+g^^!vWpX#DBDpAN($N%~_t6^XCXIpje9onNIl zK5|m+*X})AjMZl0A9f>wpi!!_8!3bocbMcp)b=F72}VoJ$zR~!wY}iO`MWI=i||DF z$e=){L%<;k3cwpG0SFk|F5(71ka*57&fmBv-usMh%|9+S#Db^YoD3=8`M&-U; z{xH`F-su-y%47ZrF+jRTa(&MH18d}ugl4HOxnA3;?bG&auhXv3uGWreH)?M~ zdKD2z@z%7-9#g7||HhOG&Q(XnXeZkZQB%zXZ%vvNmck_R%z$iy_^z2Q1fK;d z)kKS5vdPH-BB@!$*h*JQ$y6zoCd)N}>2DCepO~6R1C)^T6H(qKicD=mc%`d}wae-{N6i%R5 z#Jb~70VEYm%~YuspDLQr6&vPMb)u*c9Q+JHNE(dC^bplfSLqS1HOzNf!;R!bV{)R2 z$v)jO8x!mgZEc6+HOikRXsPR)YK8q7G!W^0^#6R)l;ihsR2_rn}uo&}{#SAoKn{Hbmj0#g1p;3`lb^t_IK2jv`T8Z&<+wnT^ zLF&0omaJe~Pv~}KUXTbxSMh#P=n}~$FXfsvj$?V26Y+hH`Ok^ejx@dFkraVl1H5Ug zZl^ZR7WvxL&Z1+abjvC8Q^LB>Q$%Y#wP}{&ReG@`e16^vShCb`J`%{e3# z+w)XEqkyKoO_W%>T=zy|r=O=WKtK4=*YwVBCkX%6GW8=dhm2#n1iw~oCGtt*%6WFl zR3JZ|C=l{Y*>Dx|m-0zaNPhYA@VaLapKfoCtvXztuoPQNfZIjPdpo` zCShs0g!Bl}YQ9g$a1YzYxszN5g%goaWfm?F;Q~6DcoZKej4m{hK&etzB%2WbAx-2I zb_|S&Zj`f?wYrnDB6)8%k_hDH%3kmIM(W|w7Q{Z>7qry6hLaLccSf_i%{V2pw)Q+B zL(&RzARqs&QF=nlmzN0{$Q7)EWqC1#0QwhEbCh|<@%)cTJUVv@% zKlgo!pyez(1!x$rL=hDao&a~0LjydB*)(Or=qwhrYfoz$K6)0bhr(q#OP818Ul;NN zbW+Yj25vHeG6~-nZYllYN?3PrQ@hf znkw`)4Kues)uObBM;NpPoZ{$GqmR%SOBNKS~4?iqB~MuHvnz0k287n`XBmadP9uSiU}!E7(|865f$o?^K*W{@H!QAKbqO$Q4%Gu8uMQfYkTUp&02XAW>0H6q<3m#nL4zP%Ns>o6g zuxv%rqK+9&FC~#^7;8V~vXj7>~H9v{>bUm^1kNL#ye+TiYOj2(bIQhbDvcBHQ`&B zQY?nO*om)qz}8IiD4Tz3lFfMOU8InxOC+^iJ59Fh;N9uK=XA6zS zi{(aRpLB{?G zy|uA#t6+b79HY`}BHYA{B4ItxppbzHII%vjq_&iy{w}SePv}`w$ zLlv7~$6yX>Q`NFFP5}snTsMT+?^Qr$cV48OXiV@9&Q|Atj z&4DoW9hh4q%!4(|1F4@&Y?q}$LV+xh$su816$o^t>T_Wc@|oB&QX^1BthFa`X&ak6 zhy8Xipgp|V#3gMWC&1VF4GKeW#9u6EZqgo>e2vaw{bq7tj0N;^D5D(fm=*JWgXL@; z$DTWe^swY3S;yFrXTHZ6ey5uk))$Ye-j)ap@qQXeBVE+>kn6X{IoL}fQ0rnUlUsXq z_R(C^In%drMEh*#73v?4YcU?JLaOshrcg|2kxX8}A(Y5*1(bEs{rO)!E zdS~1Cyk5-Y`SP|*E|-yc)vXn7(`)-+%9M!PvM&-Gxe6+YY+3d|cD<7jNdaeNmWZA1 zI-lK?r>^tJ4L6~nV;f2DOaE#&&mEncJ9_Iiv$NOC1tLeWR{}>tieH6VWMAPtU*AZk zsyCCNP{w_!{1ogEl>I6f##6aQF{N*8KyBZwRJ1>wz2?^LdA7MHpb%HYx(apzPO05A z4^_HR%VP#p!~MQz0!}_PUbv6L3RQ)Qjrm4}(&4QNapp5Bm+e>aO{(mB91pSxRER*r zU^p*`>>fYqcVZt;YmJijhs8$vvA9MC+TK9mQ@PkJd2I4J1SL%L9(4yPh-H{N*r#liJNeeNN zP-KS)`Nj$ zC}u?peHZt{~w(*_NuI-X@g07RmK*2Z*<9j>3b{vcMuLw zVWFMun-@&KL}o;%6As6=sCput#5ZOXSwaZ*F#!itldeK)5Q0sLOAF+|4fXuS^p)!d zCN~Z%a;uzS1-&;@y@rRNWk9E8eJ33JD=YY{?)#iL_2NN`d~q8%F1h3XWRG6nDsF1# zX0JN7^Sjh6&^PJw0|AKmN} z6K#9bAa_ZWNpLc!k;dj^QKQ;qF6}eok+e=uUuSQ;-;<6#_82uN zcl!tYLC1H&k%-^_dv9plranrztyw>HYkg8J^h{s8f2=utv2BMsr$u)& zx99xB@4Z66?ZT^4qOE@bM?;1k6Z#oV?E=etfa+%K&UQ!}#!Df6u2x9e2eYXf0`*cG zckCY{|D7L`7vdh+&cFQ2znuObT3IVw9{Hd@^kXNaQzMr*LQAi;ymgfd?Kq`uO8cHeun0djKot`o|v+6@CZdW+lEeckmx+^Bbzh&zY|$@1sPZExi2q*#pU6#p?}B#- z$z8&Ys_6dkkm7wz0rIY5>@XJvDC=XK#5vj`(*>2EhzlvSF34mFb|U#?l5xhLOP(Rj zj95Y`_g6+6bU{;{g!*H05=UznOM*+`Oz0zoy?Lut?O9dYmAXDXZAM6MnVt0qeZl(y zj$qD>P`b_bnMsNxQ?hNvYsUMg@m*=Lt{TaST=? zJL(wX)pUyavtA_vF9fXoY#vV>IaIBz5z!yxdt4%gjUKTwqZ_^WNil}R9>Ts^8_*-8 z8A1OUsiNbJeMslzGrZxo)p-It6I9E}WL97aqC~wLrWtWeUI5Z-QY|uQXwl<-;s(e4vt_|N zm1j>;u(&!ktUcwv^nYUM6FKZWIxs9>&}tRVJ6#DkCVOX$8k2HHIeRcJDzw76y0R#Z z9w=O+!kxI2olrXHHFX2wQP<>P;&l6P3DTotG}3V|{oH%MdW`Z*+?v}_oBE6WOMfoT zt33N}+~k)z|J=b1o{x3ACW%7ES^g{eBE>9T3%ObMK4+N$+lkuW*!Ons63dDlG*sDM z*7q1?v$_MRB1K)~LsRThNth=R7!_pTvG6_JMA)#zlto7Z zXCY=qk*L8O69i8OJ=1=y+;A#J%(luIq5=k7Wtg!>Edr}iq$cmz11ZS@N|jN7jY?o@ zYHCYkUo3kdqissqx5Od|?^BT&p=JJqgXk}D0XG99-rm#uH_`f!v^5=&K&ErY` z4J<;-^Z)9OA6}yPVC2Vk$n=s3ZYq8JLgf1W*c8H7;zre_c&(ZS=4yIFdZ7uCn4}7W zwe!(o!_Wt!Ji2nfr0Ioz?>)Z$JnD)^Yj=JhirH#1h5JjpOgNVQA(HTE+anQAyhHvt zoTC(UxJ8>Q&cyJ8v8=9QOAqdHJ$EyIC4+bhEjbo>kM6zA4gT8z zP`bhY$O}`4uG!ye?Z4*G)Wa=tWX!ZkxU*UuN37P2I5Je&e`h+q2=9}G{g3OuH+RGS z4@`GUk53(#p7F&)W~*g};=Y+_Uo2!yw^g2jn&V;*-3cml6r1=UUIvkMSZV@B8PkN$ zL7*m*yD6|INsUXJcxf=_*nS6*U}$}=t${YebjI0Gm4_ZsEUn-sfOD4EKO}im+w$1x z+O?yHV<)l&y_kJ$7P6eR<9joSacsAiH?TKbe#$Ync^$iKaQap%Rs*6F7!}g8QLs98 zEtVQ}UK$9a#7<4ue|cg+@~UscgNVBk3n+5uw-1B21W*nA7?OSY$aD+n_jI& zCm~%_+D|!dr=8qf#h|N4`Tt!f6i z_K{5u_dIz5XZvuYtgHuxnE0kVctmfZJz4`p}BN(M%NRo+9q;k~o+&&Fa*j;w`cZ4bIYU;DARFscR z9Xuuzho5);3{cBrwK+1&&l@Ap=e03H+n>;VpLw=9+Ds>|@MqF7LT*nLs?YL)tPzcW z?i#7$8yFHTvoti_Rwj~4hnEc0m3C)iD^~s129-Odq9@G4 zupKprJ?;*&smY7Q=9pV|V-L58c9oI#9xqSuOV4E4t=9Ql!f>>udAmz-^yTuT{BYPq zW+N3lBFf%!`_#b`P~oo7CYK%Z*eagsyq+FLAt5ZxOcgb) zFZ(V$+`bT5#*?Ep#5;bk)X}wX58Ed*!TlRkrx) z;#848?a`Zd9y_-4riJFGo147eO*}2!BtN{V^MX{``*gNg&aBOr%Z+mR>^PVyxEd{L zR)LmA(^X>K$uvn#_kZu#w3GUaU!1*EFL&O5%cYk-me;oFcU*em_Q$H<=!1i|R~P0& z#WTk~DXvkRbQ}?IMvqaTG~OWK&E~13I0EvV>LE&8N+?8Ci$Q4qhiZU~{6@^O58f{!2`;fhHv zo3FsRPQsidAvn{&hl-y(w`KCoxgbJxUbQWZ-bCt05=>XU6I~#p=`UTxn%>ic{_MCNY zOrU;|LyVW|Jg!3pZ7Il>9*V9^yg3dKjvKp9uXR*zjY7zEVr0|+k@Iw9yu|O`YjaBG z#<^!6jt&vqoE$>xxg)sp0@`JrF9WknUn^-m*PeBmWancVm^ruoXZ!s6kt}E-=l73< zZ-{AE+FTQSiCfn%d3I;T$}qf0`cU5;)q!Mkpn7(nbrN!Kr%w;RleT?K`jsx^9>q7h ze4kliagKKbh9bTseoMG5Nim8^E-sI3bjMYP)!oh;7~VIo^^ILt9XR`nBi!Q4axwLf zTRy)}&%IMq`f@1hk?mHYzR$YF`arewHzPE?oIC!im*Vc!2y#nj%?sunSkvC^Fg=jL z3?AAQ^x#qbz+CrEb!i;xtVjUQJDct=VxtJqhf$W zwU?Lkx9I+=ocaf6H~sVrs?EbP>CRmz=bSe#um)41-&daa2R{%j=5X%36L%L$?cDR8 zJCmg^y7gg~?w6j>>piIGS@XAZwRW8g`Rv?Jo0t8(L44~ad@Gxj$3dA@>~}~iWd^vp zf4yTCPWzm@L$b-eNj|akUTFyB&GC=OgH$m0kNF)>(61_-kIQSdaC$uD%-BarfyOZX;)jm^TdpGg?Tx#dzKuXN(BnNU4 zPTK{HQ%zCH^ypU9EKu`7+tdS~EIcRP*XI@hrF8z+9#~*pnoXCb^DV#rmc_-ltQ?^g9c+zn|$-2P>TW3sri<%j? zk~-(#8qyUEI@+&aXPR`}$}Wy+&d=h~S?)Kt9^KE;KG;KlmgXUQkZf+(qVSx(zb)w< z14}B$in00`*X#l=sOUBADp|5)zq~?MbF&$^WOs`?@1jHp2EZvPMeF?QowozRMdEHp zsQIp{HNA2x)L!NW32unyA*$2aYGY3sMf{6`HK63>mDm*5q0jXVGsY4Z13f9QW2|Du zKmZ-qw<+sOTb`Swb|TM787TXcZ~e9*(x7pRxUa@vxl?e4OV; zz_~xC63@{X^{Y(Z)mNHeI_|TLzw?$W zwGUmUE*eBf>D4+3phr-BMN?8Em5|^zt`&*Ix3uBFz+lQ3%nT0}A~U1i$|u@RC*V!x zv$0&Imd%gOmQ`^S+PSRT#^ES#NiJrb$c2qm!Ki$uc z{07Ru>jZoA0|g-h-n{q`Xn_Zk9b&J$g%UVsU;VL>>JbS`oPGgOw;Mc8ijvp;{U3uy zc%{vl#XC64JxJV2_^d^!89+XI9LCd=YSXF?a}SfKqPX}m58LF5aGO+0P?L_52E}Cu zqAJF4B(8NCjT>*+Eu@*9zg3jRe+kT2o7_6EnCv_&x11huLh0h{JucC){yt&eJW?I$ zaU1WH#5_~jjSmRVSrw(pj-2FG)xk>OMGdqnwvSSBhB08?{y`RL=X|Os-d?Bje zg{isD67j-G>5_HzuZ+#<>&Kr@M*g6`TFGL}-gXJ<&b2$Xcjt#6Tu6~D*X_z5CUSXMo1a`ZQ)LyG zrg3^G9YDebD6t%`MB9lVX9{)Ec2&;R1D44?siF_Aw3lzl9McYDBR9tCMbbO#HR4#A zNXEF)pxCGtJ1h|DQ}VFa3e3v$ERZnwz`4OP_6nkXFX=Q!{X~`;YWCXE6LrJUk4N7U z&2+w`>SoS&o(gA(Y)u%(O@^iiE$VC9;ZP`SYnh;hi<%RY-|C(?c*@x2H7&!p%LqB< znsTN_eyqP%TPyrp^wln9Cmu)Atm|8ZH$>1JbVJu7k>E<#Xp=5<17O|CDd&SeA)-|^ z?Wfvw3Jl?{mZ$yXrbzaQ;<&Dl7hj4+J}aS@(1^-CQ;O2O$uO=p-k5F73KZ|G+x-S0jdbWY7q3|4k15&RBMveb zBLIP~d30p*;57%E&4W`LTaOaZ(mJ0X z*)%e;Y47Hdk zulwW5H>5Di!h)&(?USv3(b7Km7)%p^A|GK`5iI80jrUOnVp$))~i+I4GPZ$I! z5hUVGYPRCw9T^0MQ&m-v*{wb$_$vU>yoRq{{fM86qgSL0(FnN7d%yzqc8VGW7{BU7 zO5!vckFnuIv~bfeU3w_ zVasoMiBiGwW485@oQVgm6Y{gH0f$zy{?Ku3!%$$1Z+2dMGeA-EtylYRmNSIFvT{gF#`S>;S5in&yz!RW1vI15j(aL`!n@=I zNf+YX(#LK4G`K$RrI-3nZqQ!p)Hb{#dZYf{fYtfFH|Onq-y$hGqD7p}b6@?@kG{$x z#RuP^p2tCI(vO0PI^K7ZYbctM#Q3A2 z1pfvXYM>TK@TH1nWr`O0LB-6{k>*&QcxXD7w<1QS+m;qtr1ngVlOB?NIi84;TJ4&7sw zrfSxn^nY|ER;3`NS<@vo0QTVl0ho^oU((Z zl7y@vwGDK)1GP^mB#ri|+mLIqTb*pyp~6G=I1{<;Oy52di1rD+e*N)GY%kf8)?W89 zmU+BR&QnbLDBt6Uky|5~+HJRW-kXsldB}~Et-Y|1T)=%oOjjQTHyaDw#*RVsxekU% z?h#%8%opJy45GDV&?Tq=t8UM|IfZ8##L>^%C*K-0R@XGC>#{E^vtL=6?kjD4+cDx8 z*NhXs@Ge|M2E&$Hc1ALhoi}ewWFi}{KY42*Qy8Yk;%oy$yX*Xx@dB6 z@Zvjn1zvAQqxS0qyYAXCD4ctP^KY8xPmXD;&N>ln+Wnx^7$B4~q!U_ti(r#ja(R;a zfY8CUj*>vnrywdr<)6=$Pyex9PQE|p^XIB*C+&@=%bg$QR{LT7bF{aAB{$spXtf>> zUzHpy#G_7oepb7?ko!t}1P6rZCT=XUYq>Vg@%j0I zioRf%6Tis?2WlxN?Te*{wfMjqiwkP|Udjz?2dk^&kt@~pLR_!&)}euy;x(=%io6?B z&k`fu)pr#PF#id8fGMJ~aMD8Vq9n00A(R$(-ba9+sv_B`&nptzO=sly0{8;*Fb$oW zl2~I%6A7!jIu@7kiCo8NKsl5ojD3iI)`d;VW(KK67M(gEDd%oD`PDH2WG9h9h@C=? z#~@*jk?O|FRLcH+rH9Ke#ZM!OD~WkNtR$HX>CB>66*MC^M~fP9U-3kkT9QkADlYSY#x|;aQt|R6nS?a zUu53ggJ0)rVbmEGMN-Wk)ja~iRGXUYRO_f2$o|G#z?O`>%96?D(oooo#PK zHp1z8c;7^+*4Q*Lv8nO46hUHZKHMMj-|7!YUQ70`{2^96W%=wCX@vQHY7skW$~p!0kq-q#K!LmC|#TJtOxv zLnf-FJ*TTo%jClqjBR7#Z-k64+g- zE&L%p1}TKMEEknn(|zdnlIkiH9Whb5^Fct%3fMdSPqwi`n!UrYpWDW5t5+xmiM6A% z*}4M}xl_;1j;Df?Kq63IGFHd4v1u!XPgdn;PUJ;+p7 z<(pP(e@w

3mGmy=5!m+Ti!i)XUY zAIhosZ+J{j-7dT9$;~qggZ8c>%P*pLnHd<8OVLPAiP}eQ|4dfVBgmdj%3G!ibkTdN zG=TE4xnHEG^jxPPfqw0qJl=LQ05Uxldqo~NK4n{}L=1zF?0aiAmO_;12fD?21VvEp zES$uy1-;LAxZPL$;YK4fLVx;Q0K8L+ghVokzk>cCfy|yYBLJ9&K~yziOM? znN@{)!ISGe#KD?Xt8~5da#Y)J`MPy=eK?c#zul8|Iw!;0{2|FeochF#*S@t=Sk+j? zU%OBr9IO{)Z(h<}#BbnA7{;T;ans(8fuM%|J2~ z2t3MuVcisg^*NA=SdSXFyo+q}z`N`nN47zG3+>W-0^5%4xFtJEnE`8bYFrpN#;5o( zKhf_G2WNtjusstDckc9k*vL2@>!#6QG#VVe3F6v}@nPSG!x^W!Ze7#Kgh}!IU_Kih z3}pugv%yutED4aoh!biD!{MOPU5+qs-bx?z!(R8x*fL^eDmAg&bo35nWA}xpC1gdC zt|DF$so{syP>QW`(*iwjPgCjy*Bku+IRhV+iV)uM6Fgh;W_!9SZ=vi+4E6!FjXx)Kk zV!^IwV7!Pq*;K>cmS_ZcJ5!l0){H>KcsOELY%lH{rOLn|a>~ma?}s@nvO8C+jpw|D z@mejn8x2P7U1xrbjrbxSGU?X`=~wAARm^0fDYa_w5^~!mW&Vk^Sej5;Ff&XnM$kya zKIo^gUXo9%Fj2U@OO}P6gsMhPCpN!m(3PqX*rFKW+?te()#SMrsA!|^Z^+kZO)DD| z7ta5#hC$dz{059rj**L3acml+$XCbbK*(VDb=#tbNmSndFCJ=)kjRtzorG^_)bQk* z#UKn3@x=IsvS&@LWR3N2?XMW4<%GxcUIM+Ft+4KYhgS8iil+3ShXhIJK2y#R=k*LZ zDFaRjpNG07@yIH}qv@L|{}GRlLqB1R#B+w@4^q;@=Xaz{hOY_(FAecnLH|!Y)Uk+G zGsdCqMsC-5d12atQ#}%-b*6o4BCCqs>wv;1vm3A$WHy)G*^FcrULJ!9 zU3KH8vNsCTxrmXKgpHzKfanz5f-EPsmo6bZmkxBJv%OTeGp${kv8$a9YHKWiV$Hgj z*42}KO4WZR80p-h#Y**h=}qBO_)VoXYb@M=FLFe#Cv!l50xY#6Uei zqSXf1WGTYB=6E<-hz)8v@EK6)#bfq8Yf6ulnpqJj*(Qf;{rT4y1I62eZ4kArv6=0 zh3;R1{{P3X9gEp}oOE=rOaVsB*%J)oeE3^=$%DT7chb;%o&M(72KM9+mO2}y+@fAc z5BX2|gKLA~Ju=*ToJ^G8g@b#dcIWRoNMqBB43jAsk_tx{eYf+2}@t?TmZPU=h{k(flyI&S9UAD@9joqEdKQATPrGjl|Dw}vd zVBKZ8HEi|Tiek5!#J3`W^Ge#{s#3-m506v0Ch?9$tJZ0CYvMi^$$9TK?9QW74mU-$ z*!_)6YVVA;10PJl-XgSATL6u2k}7ta?7(-Wj!hT;M}PFWbtt4BRu;*Q+c_@9YDLv* zyIK^9{UX-o9UtP@#XyOQ<;GnT#!y#f5HMKxjs)FES> z(lp!$ex$x#%-y^2Fi)y#y@H1pVaESB6=Z7$%1uBJr{o%KLaG9!$uxmMT)yFcJiM$P zSEsw=b}MJQY;W2_!K6{hPZnwcGiduRT#QH4{?8bi{|i>+T`OT!89>_(sMyc^rP!(2SFX#85|w^Y6y z)`&`WyOh|$rP?(?KPdiT8Q8}pCI&+4DT#jHFE8FH!GXqe^5Jt02{>FziK7+xBe(q* zlPUI#-h;qC5J=41l@JENi83)+h`oc?bXTUj6-oyhlNf5`2Hqgfc=!X=^GT2nJ=>=W+I!VV|L?Dw7q}({<*!vR3TAL=dg0 z*`jVt!8PE?c*-AcY-vC^r$$Wh3AR7&(ktF+E*x1jua_ZOabFZ2d6n@RyMLfoa|cY@ z>+@Y^hRKb5PK;p&%?V4Ii1JO&Ay40r#ewgTy`mV_RaQzDxx`?A6LKG2?w+cz9o0A9 zLKS)A<*Q)tELzr~Ll#U^G3%b< zCLEsu?LMgCUcS5YinPPaKeruzG@K!o+d;IMtR5tQPue2QsI~<tKj<9kQuwkPV`IkANtrz>s(V- zxQJCOaI$Vh7xQ%;7$S~IS>ln2f>;8cx^%qKjns23N)+cTv`PnjAdX^%kO2~#0LS{h z+hwNSPUPtuCuN`kN;|KYmwrA7ZeMy&VASrXKOa_;aN&+)xH6ddu&l`9aXyZFgaxo) z@_6tgN}nvR1F5?Koa5}$X_Up3snr|D*3?;9o@eI`J~ee{%1!v&_YiaHPy@z7uhhml zW*m3PfX~Yl)IK+L@Y-&c-#f^Sx}5o~>V;lw#Eql%b*qeDY z>qW(z>!Ql=YGZ4sWy+n^_OzR<+ES^i!i*^)v9ps^B>_?;t0Irv$)~0d5^`19WDl`& zU)PYtt_^0)IPUvOJhavJem@e`E{pg{Dj@^XcN?`0y`7Kwgc&xLKiD77M77UP9Xci{ zkjD;9-ECQyHze70-l9ulSd@``0ECM6`M^_{>czaZGm+XNnWp-mGS#owjhiC**wfgs zse*xzV};L7Y;4KT?~PU+wx0G%uoy{TCX2Aurbn=``IBTk60N!@M#rWnEzyA1q`-;Lq-kjbveQ;{b9Glp1-FH495W;s3BUpWHLekpz z_}QUpPxH{V2PenokDqjZJAbk<4lOY!+dO50_qd`xe|)|(^8qt%n|Iep+KifQMtXS+ z4>5+q)0Rh)ji0*`0si_#u}PMQSF>kEl|xK%;^Iw6YG3dCZga=>N$r=KTlB4yo&Brx z7eBZ?zxqM#^6~uNLErYm-{r^k2T0O5)!YHs?~&$~Tk_-gbx!eV=Y?(gacz9+zVW>D z?U~bkL25jF5&TjQKSi1gh#EF-HaEe4R#3jlza6TAZ8iBDf>r(Iw-9>NKH?a+S;oyb zF}j^Y2=z5bJMX{J_j>L4>pTBT9`4ir!3n(lIVTf*ru+QEKl`)BgAaCI6wI`TJR7&Z zL=QiOx`f0D>s(7~52;49LR?Av2rA`OzAHOJS89KGQzw6=x;Q|BC-GJ|4>z89rnBYA zhn;stvH=qJ_xRkSyTo*Md;lf5GC&qf&U+_h@^= z^nqruXxf^>FtkU!z7P1#%iw#|-978A1o@-(-0HVB%#hxQ9i7|QdRTvd$BcbAsVpy1%ZSmeWX45p9v_`+5;a+&qqzEVNzg*f2~jQ*hVoA; zIeXSSBAtDTvkFibKBD&9np?MAvt_ZBm+Bd-we_tl?js?`Y?x*m%LwMgy@-p!3z@#>?3?3PKoYrrj#L89J7PXdTGDomDC23y-&H_)+1ijo{oC1 zm)DMVK0G?(ogMvzj2&6Jxs-M&m4i6#C;ZzMaBO=Ud~6)Ry|!)J)A9xndgRIb# zesBKt5*ND8N`|asha`9T0|9sL^wS@I)K|c=-box#q8+3`tJToe;9T=bOe=hdm?TX^ zDA~ivNxsH#;+0(j4!b@XH|(dnr)ad7f+TL|^tzAQ0OuI(({$%btKQTX$UaLn*HZDE zVy9S(!hQhfFQLB(9JrCp%oH`3ofrf{usWvX&KLMjXWkam)Ekk!H|1qcQwbW98RC@- z0jC2$FwD-*KdZKFio_h(q)p^I|D4D`yZM)ioaL;wT9wXJrPZov0STR}{YtQXw;|of zlwZ70^epjTxhNtiB;BqQN;MMn1#hX?>=Axua=6Dy(F2vsYqUsq_ijdNx~Enp(nb5O zN5sO}SRMG(d*|JJF3GUz{P)9$W#78a=Tji)AG*&z_g(#M>&CxQ2NQ%(@y!Aa+|c

M)68;FLI*~*%Q^(`|Ju(W2eC#V;KTQB!p5vMVo z8A&AG8VJ*V(aON+@gB&yQay<;YsqXr(Hr^O+U(ll;VkO5By*B2W|7HA#8ju+wd3}M zg59q=0#=Dlm%iGmB5$LST3QQi-aM8a-b?jXXI(=D)tKlFV?et=^7tXBfnbz~l%@?g zdkmoV6GTSbN6Sr74zsxeT~f_u$Bh`F4MD-#u_2?R+ z*R#=wp$v(d<(t(>%FxQu+P?O1d-#u?dfl;uPAczx7*m9Ro2;NcnG3GWSAySdj5tn_ zoH`sMl|%cdr>3-r>f79QuoN6`&gLZ*BtO>}=V!Yk(Q`iiSgA!lTP!2x=rvqh2cs!f>ogDMokLdfNT zQI#?4F7bWZ%WIlN#@8=3I z4|z4Gpo1wDOkPqFBT*@+0oDyn$OmeCj{ky0$m(UZ3HQr?;JIzAjdo>Z=Z+&&JEnee z@@gvR>Q}(taa*oDsl9dQ&RoLr4vkd4bmXF`9e2F;WLvxJvg1m(2ot~g3$i8dCjY!E z?b;}B>Tg32H$)l?RK_OTQj)|dQterTFeEKv3jG5aFFqAfFD6FO3ehZ-xIkh^Lbv!G zI)9lSC#QpxEp}C!I~d5em}JrgNz@i0#OZ(pa7J8sL$$Qf_e{3r@Goi+oAQI87;vSM zER8BFBj_>45QF7-vZpYdjU;s{w3L$|Hl5@u2)@E`D+4?)QYl2sk}Hra;VO^ClF6zo zC5=T47zC&F@U~X;Aa%hJu?`OKfWu%4>fw5K_pp=bE%)6>sl^dsjlpuC-oV`{*ZjD^ z<+&pqa!@f=y!h%Ncxj^qi_wKL*=%pFSR{py`f`FU%-faC25&oIcjq=O7P4`wEAp2* z`ISD0j)FdfcVWTWbg7;PO3=MqF5Jp&RNfk_s75I^vSAe@QcUK!% z?sGE~pouuF2wHRu9B-~|MZlEjX8#=f>$Ef%Z6vaP?7TndtLyYn^lz$Bs9vp&-4 ze0Que@W6mp;a@r$4GtbVC9GsiOB-gZu+F6iG_4d2xiJ$S4r|18OAe`e(s7OT>5+)X2S^obBIY>^8k@%GRrV|D;Xng`$g+VNZX>PvF*-gdrmd|H$xx;BS;-5b z;gooAEy$<*hqUE#4(4Vov7R3kt+;;xd}Np9hU3oS`(8KTpXWGHq5mQWRct` ztk7f9X}O)&sL#@gn(aH>CuM)7J9lnRL};!h)7ZplJ2xcIW|gQzIa+B5xpN-7H9#9m z-&T(*D|iyMFQHzF#1A~*t-EhW@QCE$f7~Yn0A{RzKa@zoj`*#SwKLIbtJj|HE%g?y zo?M>PD!o8ajA#_cj@w-var)Nuc6Z17=Xwf`<3atYOI1oaXBfzoq!3c~#u%ahY9)x?U@qVq;AJ>_ zI2z{0`L=MHQl*(Q!$^p@(v1tX80r+y!mbp*4X~2k^$6!vOF*@OIE)#|wBmF$zT8axrprqN=yGFi(rSwO`&R@cW1WU;c$pYaIPz#IuE3THW+BRXNPqJMoV z8~Ogr$C35bu7+qkq<)AL5T}^38X0z&0OBIU$P|fB@8*{%ZaEna(#!GoF@jLqBrYY+ ziC?~}RjF)lJxDc=VoIglIJdVpZ*D!Ep~PI~S@E+NyIPTLG>>K7K}CQM*V^rxHVxxn zYcs3}nPT3wHXqom!*pz6`dilBl^K$0??PiQ7BcPn7i(?tyUKq*4iW9TPp}gLRhN4d zTM_dGL4l}HlZ*&13`Bk?G1W2tP%}iNN#YV7CBru^Iad6$ZGRs*gySSrLLOQ|8Y1VE zG+g{FNyPA?TkmJs|TML;@2m0QdwVePODhkOEt zg+E-1Ss4bv{!@8!*kZkd)1gqwNhadm7Wqa-JPPR3Vf;Y0XdB^l43N4Ox80FiHX$vm zYpc7vg@%iBK;e?ELJLw%$g-v1>oZ6nr_Yk0DR{Yju~3t5>fkWRmFn20^dQxNF;X!~ zq$kqBGeO=QdAa3c0jN%f>CMesd>%hQMRm2#m#(8VAOE2*SG zRX0bldjR64_#o+9ygO9VPF>%%^gKWLD4Rs&t3Jj=Koj~XALSpPObRfGMHM(X2HCom z+KcLSjGP?FDq=Z)pDgc%_Cazx_aX%N@}4~9vqbROS<;p`mOM`3*8D}+Ui~U`ojSN8 ziDkV-Y-rx5sEHMs%XqP?nH>?>^a`0^Npz9D^0dVus6=`ipB$%Kd!inD?H zm7vd1n+Fq?cU|dxFe0g=8GQP#_~78ySSr=u4I_Di=t)8EtD4)IuxZp{ z(%6WOQVgQqXk1e5ETcv)d^e z6}g?%VE4*q;Q%Ct!@;}WuYG6g#;IsPi-vO5g(;2V&u$;!f)g4>c{il z);bDS%Gk3T$@Je%+Th=H1EgPOTWa+!n|K#(EmoRZ=% z^Qv?~x-}V1GGVfPgDBt1$3TJwiZ37%at9m3c&dEmSK9s+t#% z``M5ez^H?)43~xrQ3pxN&qLJ&$mE%5^apaHdip?hU|^s%%I7+@BBQZpL9OsPKm2zr z^=D#4qzCAiQu2ZSL^pc%u?YoIA^O9kC=iegZe4$jKmXbF_~Vajk5}`sa#p=v>RX?E z{L;rY?QuRI*Dfn`4|tbgV|8~AXdh=gO)U6QVs#vZw^sC)e{koy+1UBpg zT_5fG6t>Va_(=bu>)*95jVd|q0B= z{L16^xvh4TV;L5#fo!!;R{La_ub~3om^vJ%xHQFEgVL)%A0MKa}EBMrr{59r_21|6!t%>g zeKl`=PBlL-p7xh3zM`qcH~do9LHNP1MW&4~ZwbGe41aNn`4xsmHIy}daM&v#h)6dP z>yu-XQ04fli3o4xJ$fRu+(!L7QV!NGQW*AokxVp`k7u*pb?E8_E~#30A`hCWjQ1bZ zOH7*SO3wSOXlVDFzzEoxjkQqTj$5HoORqLCtQw`nJJ8D`L)o~M&(*H0thLd~KIT-) z$#P2TyC-N~*owNZ5is2Lo};ix1oQT(3f-h*M+q)Makyga^=cC7K{=&J4S{wR&}~Ht z+W@~NeFRll8HqU-*fB*PQvMjRgtWDGCQ&F|_zo@)bJ~980ha#vLa-1V10GcCjn^{MdJpJZmB+S~p^ZKiaz)*jS3C=up<=HmD)m8BYYMK77e>n zUBm>O!@EVm_V^P}sJ~2i=+@o=v7kAZwt6n8l$~%-FlDaKJaIfLb=gFQ`Wzc+I3C8( z<_=(^yr=5}SgZXa>!gDzCH2_FaZ*@l>X^A>t%0!>RteCrj^d-B z9a3JDlle9a=R)CC&PrL86Wvy=8#=uX4~)NRAk;bPbTS2JdI1lB54-ce2|64@5B;`!J+^P*6qU%pV{1MZI*oaGqfFYq4&Cy%rCM^Wi()qG1Lo;$!K?m4FwaE0sD&FMS*LCL!OC z?&&)mJ>t{>ZQ+YJ)$v7)6!l9k$ulr2?kW!CaQEJ44ES?7M*Fm1C+Y1A*VUe#X3mxv zpnSfDX9)5P7bDA#latkk*X5F~E@JnBBoujrGg~Ha3EDByC;`nJ!~-fuFy;SJt`d<} z?5s<+t3=BNWCV-U-l(_3V?&>`QpwmGVk9ksjjLO+a=s4zEFAc;^?B#P9@9+kopqQe zPcQH9HZP*bhKlg`M&CewaUwxL*~nZJ(^}nEF@xS@mBBn&P3?`q?DLNIzNQ5$EJ(^X zl=I!W%-(!C#-xb4^XLw?GqqzNbLA8mXrGQ%O5=>t+1u_E1ukJ zb?evPWL2oj6kF}xP3wUc&~97}H*U;HS~ta~c=CK&J^4ubS3US|%5zKKeG5L=OW~hw z@Yd($$;s1^D5tz_dFiL$Io5_72GF$JUB$V?uVu&B%a+A95nEHNi3iM*xi3m=vKXyo zsPq+00DRY?msb1)623C_YfpbXDog6)pH*hbKTAs6yG-+H$xeuvHEmXQ@Sds($1kh2 zLj>Qc22jkri~sz)qw^)eEPhAKb3dp5h9#MTSB&#EiD0Cws>CHJ(D{GyoL5A3RmReP zO4|l|x6dqn@xSn#`qI@Z%edw}B~Pi%Er zRGf9dmWWr8K(l-(_A*Ozuz&Sc@(#&g>Y*w4w zH`lX)0uBjixT8DlW5@^6tcJB)957GbyN01^BthYr{bD|Y*OeMT6?cxfk)WN7%uh|2 z8zCnvaOsm~u~Z$Nn;Rak?!+-kLV{zf@x9zGGuR_nF}?*#A<&SsJ3xnNSai5w)h@)= zmRqFLLSgY4DfL^`VWMSFQBI|#VMxAqtU7nQiokr#(qpvCTa)K*m-Xpn$ZwOdG*E0! zrNLvA%QTF5fndYFRW%H4(e&<+hS82S`B9-=yw6$ZXc)tKQZ))qLj%p3Q?+66pVBmV z*YT+nhJnxIC30u>=tuEn`zeB?ErPIO@Uo@yE9I+2>$%&VJ`Ep~`HD?}w;9SZSnhT;pYbmlPz&ZdD}UNd{N ze0Sv%kq`$}+H0kg@ap{C(-e6;G>u13I6pr*tTP`vx6))-qh?9ygx-OB;mWwyLdl!9nZ&VzN+g+RW+fDkfbl2 z9CdMsAqJGCK+ab!><7oh0_3%nB*R&}mc0^N4xngED~5Hy{kGrw%xe$(AMc0P3XP4CZ_@^>7%{p20T zN19XfW&xH&wWnw~9}r>R1CaCYt%!Uj570>%8elqLLBK1Co9!YalE5d}vd&$r!t zJAaq#mZF5M#B`igb39*$V3d_R^7+FB3OyEVM~hz#x@zaeTIr!9uf2T#$=lv`cW9cS1xNqNRLEao4c{UoXa;i1lEo);}o*l3hG)vYc9PpAnfL7d|?(qUZp->F;}lP z;Vy-w6c+g~N?|Ht$K#)(+;6H0g=^%JWwE4x_?q(<sPIDp!Ih`J$l?uYRzhuYCPp~A8BLN zrei-fJe+~~ESel0zT%2Ctz?wYWViAed=y=KHQ4^u$ZOrG#U)66{S^n>HcYRN4Fa@RS*jztak*7gw7jgPP&ZVu@&9OBO;S zdNKPO5oWbqH|Z+*&z7}M>%Doa*3^1Fo00@c`U6q_J=&jBWvma+yLh?|a8F~o$uU)j zcnBh8)o}9CX(L{-J^{+eZ$h!R)@oo-{hTiQZlGR8l=Dum|s$HP=hQ1PD}WokSKkQ50Ou%Fr$W#SbF6X9hKGx&g&A3#`|Yp;gihq7_aI_9vwWW$!su@P4E< zwdOsC4j#IP@W;R84=pZf&$bTT<2~1U`s#b{z53@`b7}FA^h?oKegD3tau#aLSM*Nh z21kGq$f=zU#it3@AjX$7f^unTNg0q??Nu$<5n^VecimAxNdBjTgq&;%jE8@3W)ays zca`?}almjkoN}N4ZYOx{{qpBO*Iecnse=^pzQ5FJ)oMRKb6>*sS_Ch@4$TYPxEAVX ze0N+4wGAroa!^@LwjVEa1vE51RQ1ho3FgKiG^tf{iIjEsb})f^^|jqKAd+w;>4_s^4tw10l=_#SO_^Z1^3 zozCO`(Q?Vs56rJ6duV=m?N|29GOg}8-tCte5ceD}MCZRBYeUM6rzp>^R_zwSUh3Bwz)piIT42j}?}` zNUBD~vQ%1&rPA4S)dt-WCB!Q5OaNJCx|&WUa{gAozRNXZ2_)6Ov>Ud)5J(?O~bl^T>HF{9N+#|PE{ zP3V;rH-D@es{`r{h;p@2!xgnw8%1Et>)}mFTlzhIvfUYbd-m+nZbw6)S?T~okUdtR zR3=NYT%yd0T3?e^QjKBPs+)tGt2LXlW0wmC1|ZCy=M5`vlyY_+V5^J+(2P#E+dGym z&~-zF+-R=oropbjwit@#?OcgMyCZ$QqFMHmKPwpK4(CxDUb?+quSd>j$3!{gndDoE zGgL$TX*`L9SCzu39uD`lGOn)o z4VO{-5UQgqOWnf$2Ngs(9QzqxTEzeU)j#!b9ue|PpU2(FG)pg*IZ^3kxe1-%$r8)u z7fa0}4zt4#m=Xk*K+<5uIC$0%VEg_C1E-~cc>Vm@KI%klWpC(gjp`%K^Qkj+0Qkes*<}#AoF|EP4OlQ&{RLBxsH1 zF-hqa*I_AT%~+{#N-RZzaYj|y6_r`roIT|`ydYPH)VA4|*o&u+<2V3+pgK@}cwbRv zVR#&Lp&QEN$leZ$^xX(%Swck)|M>wvijHLWmXhICJ!8U?uXVgl2 zS8MNwY%i52L)-$X@M0>R*590}N5B4OR8y=1IQY5USF(RW+GS^KUruZzE0u=E`!ME~_o%wv(D(Sb&KI!?c*U@U2 zioWIAQ87rvlODH*IFYGS_T?@1_aXBcoq( z#~1^4ycP;tA@XQQ2<9u)-H7)T6FKm@#9V95p*OwE%k4ebX9uC?2Ty|HLLPEoWbNA7 zT2LE^03T7doN$|5ik32l&bATM47QxGtI@T61zlOx($PhW6MX?&+SUPo znW0U^Ojp?^CEttrvk$#u#O*5*JMGn&#go z`p|bc(|a=M23l9Vfk4{@$=5$>Aeu#+kfS0)#%7hpt%hovw6(Pi2)wd;L#au zlKd$$9L3d_^@0KspQ2LyrH}j{w#GZt8Sp{cChgbfJI(OAQZM9y)4Ph-K}45~lFXzi z>AJfmbP*JKwEsdg8MM!)r|UgWZ_1<}m)5@T0EpoOn=9|+#B`*{`Bn;*nSja|8m_dR z%xS(1N@C-!>6-H;&@zHZDmBwhls87^D`^hV;DI?P+oQiCRB$UIaI%AvC4j%Yrj&=? zA(QLFAQlbdbFf!vhYb*}-aQemASPJEgqBAN`XDmApK!-DD3y4MkC6k9XbFZ6^Iw)f z77oVqJoE78eBMyw75xf31E z0Xo0RzfnrxC=O61Zcv7O&VjQZ`6sXjfHwc3Jo!(T7k(HC!jF#$StytV-R0RaHVXm+ zhMraOg4Mbd^w1#A^EL%z0QA}ogd(*{Y`hk5f%9r=&`%Qc!!16om@89?D zX>b*3ZFIk>f5IiRelIM4#XF0&!d>h|&Jb$~HCbWXcTvpgj9uJ^G@E2}3sa$Zx8+6h z{*+3M1ENAslg!kjh6d@0YNJekygh#)XEXS5Wk3tgQM{X-opL;~o3GqR_zJT{uNFnw zCIL_Mb8mK;D$Q6fK=yseFI=fdc3oM05$rk?=!5vzfl0{9^*g-{P1JHQ>YrTZ%s8b0 z84zzQm3>0%-J;SigDvnWbZq}LRyJ-b6$xMN&WK|fhp;HCccEmlxK~7-g!@SzhVHrh zW$3Jkm~p8z0@_z;j^2kedM}wPaV@lc_Q%04>GND zUwDZbq|9@W@XB`!KQOE5w#(~gHELB9(rZqbF<0fMBMTeau z7%dbqbhiE?Ns@8jZ+nmF_vYQyFTX)EO36DuzVXYHoB!$Kw43P8;wyMSuqR!-K53`0 z8YCz}6W|=gR#6UJY0k+(eY!-&>ydJKei(q%bMyPl6u@Yhr7})SgM@ zbLnSr1bM3sbdaa;0e!5py4nACXOkW2Nh@4rK@8}`RY zh3zF{5ipZEvUWpw+xS-n@y)x%cH4;U_Fg%^O6W&gi`@bO+CV(h*TE%>wX|(Z59P6~ zZYl<;vUkrtnQE|jlViINEt#&X-*hSuG}<}(Fiuc&`*yS7K77<^1oNk4*wI&C>YAg5 z(R;B`hWSn0%&%6bE+UhF3a9FdwNqvbK{xrUhqOX9y#3=z(|T)fpqTj0-=y%HUOIu2 zoBG7|{CXqtuB%KvcPwt*?CQ}2@3O=Co%TZoy=U7^Z7{PifNbbB}$qIB83Q7wwnM2rPFCQ-bG7{wa#A{YqdW6 zme<@R;n|md=HwT)Xop%Y;pAww?rz<9*8zpJIJkL1@j+b4`@5dnfrIGK7j|6<&hy<} z@9+A!$U~X&un(2;EC%8PbcMdM(P6-4`dO(RNzap>NSs2PX!OK$?5EbV-z#=gzSGX> z{G-*`!t`rVa5^Vf6QaPLP{~%T9&+h*XUMu-cZ%LU=rg|xZ>#n@eiyF!U#jyDqC$up z^yS+ve{8&BvlU)G`V+2m$}f$23NT2G|EE{z1B!-?5)G~*AYLcObdC(g7(|_O$k%Q1 zAs$`6`GbWJIkU#R{j3}CYc8yOqCuo(3?V5uV*aTWOPu*FGEsC2|J^QQ=_`z(4wioK zG?sql>yX4bUuXPnWc)FAF*$a)3kA9ZPD!5yv+O+@uf%^lUZ}+1r%lC^tb?A? zd&IIHw{R`rrA=9<=fHbqww2@%CM1D=Vf4z}Cn8KHz)loDqc42rE2%2kT702DrBZ*) z&wO`Ees)*&;jesEzP036zbYJjt>jm~k{YSX)+!FPmGd8U^2E<@&iOB-_=JQd2!)ii z`(>XFLstgwxo5-|P%k6f1aq+sA?0i%0LkLHCdX%0O}woz>S;@||5B9NG4g)J-t%?3 z5_;4k8Dh+o%i=<0r{4+!;O&U3P)E=qQN-n2n-~(t2(h)$B$j=^B6Nw(D_ufK;D;57 zW@=ILa;-KgvBq_-vH`vAScck>Vy#y6P8O+PSJSpD3()%%MA}S25#zfVoJrzWGIby| z#`A`Gz%*04O!FhA@jRY?_((GK;`4HfZ$4jZbBqybG^U@I)40k5#nC+H%6B0?zF+w+ zI*qPg#kpJlbE>Hyk)}LXb1zEsN@J^Qw&=4TBs&MKS*cqxH=sVtyhIp})>F2#I9Wsw z@by*YO7OLUtfB3)VikcFfvNf3!N#pmzN1k?9|eaTCwfB+>51u9JgIU*Z}xsjG9m1( zT0V)qyR~mm>s9Y~$E#X<`b=nCK?pUDZ8?7Vo+sYA~Sr-53*^BxuwOX*eL=>AmXzx&ysHpZp#DpVxsr;CC2(L;$r9H6Qdmeu^g+j!+ zg3T3CzwxuMLP{OK{5M@l%?&=cGOk1fnB+y%xiQ23H}uL3T}a_ZiSS6HNqGb~iBzov z_+xNkoRd`1d7^BoSy4o)|;K%;o~>DuH~TyWY`80RO5f8qScXg$)H zF5X?Ld*iBffp1&+aqk$>60Y7QZWBW)zqKZ-0-2P~R7ulA#6chqX6$bP$LZz8^Pjm} zy8C^HFLDw&`{H@5< zoyaTU>J}YZDZL_9bLmcZ_NP&)Oo131p9DQKDMU*vq8=J~{Yawi*;F$87K*$kbKex{ zqyUQwZe{qM zij}NW6f%fis{Baa&u^Y^XWfaL&)_7`sK2WU#6fa%z4t$M$Eciu)9F;qNw~4y7DtxvP5P!^k0mdoBaLoEk5p1bMGobi zN-R~fA-FlLHKv>O+R)wF3~Ubb`f`01eY26t6sBee5RP_Xc;=9G|9P!W~rEX)YjsU+6nty!}23e z^cw2=My{dgXY%WGZDMc>_?9HUtqUbusZnCrit->5LHV)#*;G17C$K3lLx#ba_KdsX zvDpo`?7nn^RiU8Mr7t|D?V8%U^@62!0E8>#NhBYpmRVB!fxBVDhR1H%fSLny!ljSh zd~EkrI+Mvv=H`*9`P4_%XEM)&qZ9nHYl?f4d}Yiorgdp@9(pL8Q|bVde|u7U%mtJ> zj2-+Ng$KMJrwZ>Q!>U1*#kaazZkTa3^+1oTk2J`ydS3zaL;N7?)Oq7rY+VRB&bgM^ zvXu)XU_{SQGKaIb`a=9v%{*BV0EnL9N*lD)4Vev``e#y3`ewhT^s(-Rd?I@!t!2Kp z`&h4S#b6f6?|xE0v6dY-XlXgZrJo%mjHV9j?oMQmr1kXIF3TGMhEngb-M_13<3-5E z_u?IwdX@-ZbW3qEO}0^F{HFIM%&0#Sr1x>xcmk14XahVALq$o{)4nNjp)$tRi}Yil zP`*vJuQ%)jG4D`zO?z?iWSfCdkra*OdleSGky(Gq&h`CQQ6N^=?^3H)XV-sZra!@9 z2?>X1n>*ih^kUNQP;ezMp*_Z0%T72m%{I}W$!t>{^*%l^agzD$`t|*%xIo2qSz6^# za+Om#Gi!G4blH_Z$-BUXQb=0WlLDsEv2T)C*dtwY=!W}2v%J~2bC@SPdX4f4(kYcC zv#bUQlZZ%T5yl`vJAzG`Km>_#`uDkh)|4`^eE3->npeh<_M9?+UV2^(AfoLUKm^Fh z;qn9M=r#wCD9#unM&TLB)Fz+KW!vQ;U%s^v>wJE znaVPt<4if>K7YwMvw(rs*>CUZ{Z-#e((k{-c*2Gflb@CwlCHBnq-ii^DkvYAa*I9n z?Q$6(NNM-f^aqc)RcH}9d;^dnkh=iwZMk%KZpYNrksWib>VI}sTf*4eC6ohV^ZPYx zYjQOa9wIG$=ZG3pc*@0mmo6!|ORj$D6&EcIUps7N>xl9A@PU0hcI{Sa&=S|s??V_@ zbGfjY&v~DTQ&~J&T~p7xzwP5SPHFeA#>!XM^=kn&xC7=EPP}a9a49q^x&@&Y`i0EV zvb8p(z320H!YHGXPlt*4@$nHlJi2`iR98)?VokGE;%Q2RWQd=(T2yjm z5eh6R?V%fxVhL?m>Zt$3;@xp*Q+>L2`1s)(v73}p-gjuYSys=pJ-@i??2rzSePiJq zPk!es+K2by^9jpb-Ob%n%~9Lj3~Z6x*6JmztWGO$=dXCSCsuo zS*4Ni0fw=^WP|eail|x!wuo?Ig6)8Rl&GprxDu+BJ)m(_UUIcuE8YsnNv&{ev9^2n z<7a-QGP`&G==3HM7v8md_hVLMx0qLvCZG(A20|W&xf}luaV}O8-~S+Xn5r}fiH7k49*S|#OPpI4y!30U`h-6ajA%aN~5mZMK@qu4MRPWQf_>K?1 z{m(io*J}bWqJ;jhQy)r9VfW-aE6){_Y-CJ>#qACs>s*fdnj^2jMg>vNmAh5 zKWF6!T)z75RM2EX*}fhsGV}$>-?V@IBIpz5k3F2_NF+uh75rih`5c z$EjHPk|#78mug#m=Lm#v3;^XP!8yR3dD=H1ae7f{lm|fhxRu7&317O76@B3a;%X2> ze4<1>!k2b{xP0s}oF;gO#W(ER`3};1RAqYiO9z1ve_}|{7`L_lUcFx`I4i%ASXTaY zD3_F#_yuSjf&Nd7pVFe`?0~zi;{DI9ROI%)rLEpZ7~)%fO)S9WJ4!UgW)=2E{a&}? z_HEx@IdY`0=^ad`w{G1k;nc0J!-{4fR@a9dh|%ceF%|#x?JkMW^(woI*+Xy%KKX=t ziOT#E-z)eYg<(=r=ifnrO#ND_WLSGTMim8YNKxy%?DzK1&kH&*=D&6J z(biyUANgO5y$hTi^>ybv|LRwDb@i*dySk^Rr>Cc%~&R6_=o`{bbTz~Wxevuj5XW3 zds);&`Wqe9!LkN)scr#A)OzhxpOW==q~k;Cb=uQMlpo#)PZ}XXw*Q1a`>4`5Q`@lj`?*R;`;`AhVk ztDZj>phC6k+tJjyQd4k&*nYpa*N;Y13sja-KQ<%EBr>SkQEkz#yrnZU+foD16Ct?G zvFvRm{WG664?mX}J)yaOzmK{nGV3BX=vklWLt~Y3&>)^R>(}EUI*v9^ePpGNU-^pk zkq$T?Nw*1A%(;p5-O~%{Oz!zyF1bK`Y5g%v*WS5fq(wo$(KB^d>qpxNjMigg)3p*^ zYkzf8+X!c;f5L-Iex(F>#El&yB(tJ~2h#&MTRyXF+H8OKu|VpATv}`6!VbD(exR>c zcfe9#GMFaJ&0;D(>uc*n#Wd(`oft{Ox2;7C(;CNZPFT0L6IR9Jt&e6fOJw9`?mer? zuUh|oB^eUUJ*y98cEY#!LExiiUoma(Xfy40%lqHjMfI1(bnEBsJ}A$9@az_z`A@o~ zIvJNVT>a_Um&ez1;j8VGTjDzXMG|9~bX|YC+OM_kPvJ2gL1twR+GDD5k9rn#4>VoL zto(bkU|md;TiO49Fj6Gh`#(IP3fWb~j`qbT9rriV~pi_2^VbIy^Z0INrL8HRfFym9R9{w|FGz z66-+gcWv5w=L1Fs)R*uR6Plt;bL|@;mC0?j&BNTbd$Sf~<(19%57lJ=(8$Ko`b^4= zNp_C6eIHvv+VCJtv=0?&S3w zn1X<{fw*)@C?-Pntp3e0&yk;{5;Gjse$9Et=^^4(i%10HLb>E|k#IMST&?QF}zPOY{PgD zF2EQ<)3iX>UV+kuv)G-?d7Jg=)!6Qb91<>=;Z2KZaQhr}poC~w7{%)luj*(o%AfP0 zhj02UU*x^@gR?oyqxU*kTx0jz*2N}koGi%SGTcvRcRO56FR#lVu5cHXybgUR@lxE4 z9>ar5H}zhd2gIIhcOVyeM$Gbc2;L+3m41;IM>l`p03W1%(e0o0@tOJ0yG?I^006R-$#B{o> zGGj5Z;;lJJw;sOSP9~y#hwYO6X(FpylWzgwJUoQ;C!b2Gv^5EKs&$|JVb>kK&2hdJ zQ8(G)(5AP-aK2w9>lpdP@@bLd13!Pnx+pM>^xZM1h$wE8E6JN_T|lIn02#;c^iqWz z3)MSIzV`-klkOYe7`L24%BvR6yfN;#{uQjIus-sFEZf2b+rJU(LkHnoVwn~r_|`y= z6*BUX_{*^$WVG)jn+$AZ$VmV!dAC5LASJ5rcm4f}k^Jww;*FgHtv?fBSTPjny3`5( z4DAXVce)rK*f|jIYJ{9r=&=xH#<2QG*FSjnI%7uXmjgQ+-w{w*EaY6)6$q*S?)zfv zPRp5rc=2~bDTiOCC>1K>(ed-YVm<$?gPfu&s{y1P;y{zY)7G0QN)Wc*6oj^V;dJXM zQgbbxJ_X`h)0WX=LZC44hSdAgqeuy6om8#(U6)_p`k?mz9Q>JzJ$+Ye?!9f-qx`n5 zOBF<>Cy}S{Rr6O&Gn8Y}fQ^1=Mr+FgF`d-WBQRn0`JX-6(=$BM*VmKiv0Z??vBxMgf82z z)nqR&bzEf4S~p=$l5A<I-QbsDFshU^bInn|PNv3$cS z=m{g(HWe8$3H@klQoU|x?aD~Swp;%aQr=u7^vfeX`FTH{&wnS8xh{#_v?r9f;^tUH z$6k^pTwLybyeaYk+4gj!^*xEp?y@%9cF$;qyZtfPy{(i4cxdEkJ|EBbRJc>P90YEC zeJ1fZ0h}?cwXjn%rokq?n`1IIv6~yys;ksceGQ$HLj0*0K?AqI(GPUoLGPy;dd~}J zAE_7&1g38%amrQ%1bE5K~j3L*uKZ?(3bAXo>ql3uBTU5Wc0l_WV62y;g zMoB9TW>;KRA{nG7PM&lK^``C`5yh2(QLh?ywpCLkKn@eXL4+=w5rG4|;ORWF-K%<% zP2l5+#KROip}_M?+sq7algf$eD9(19;wSKgM=F#=@YS_fU!AT-ob8mk?kAzQ6RBpi zWnfT5G!xQHK^hC-H^v{*&IdyF=)2B8GLrP2kHo6(-O+4v>~F*)$pj^0tw+pgZexs7 z&bG=Bu$GECTJhm5@Wfekh!XXrM7|UBArA6Y#0SeIWcEUh?aSBrKYrS`%q%J15DVHs^9^?Jm`y~A3JW`h1qaT!yX!td*dyJSSCn7&ecMlA7 zw;t<;g_r)X`zZH*o}EqEV>r7aWbD-Izl|jqs+T9i0r5xyW6|v}PIcL;`*0LUlOTU- zrSJ&+UVR*Cf7k3@&W};`Qb0{&jl#^deMzDikudId9c);OuDj?|2noJhhkQ6oPT5_O z6Kl?Mxw$~zmq@^5-M34p+Kk%P2r&*7sTcd&-`hzF-1HP0w}^1AjB?09+YaLK2`)`IUn@ADtS zkbaW;yw|jz_k8deA9a$S`)J;g*R{{Q|8vP~;r`E==i+)bd;IPCxvtn7`x|6Ar5Bp2 z06}YoQ|5vGkum3aeRtpgd553PzLH41;`#nVpBouz-;ti&yd+P3#;v-~P%}GU{{+ua zL^U3?;?@UckI00e5vif8S=xV4dy2)@lch3Q%dM+lOwFghMGS7Q`cyTUg3q7mxJUia z+KDX`k2$6rZ7LSA(EM7&L@f|3ADVouUtBx=cze>RpYd71BmF=^s@6^t$o>xNi+x;O zC`aV02m$(gRmMWvc@OQB+RIp8jZDXUYBSoz5)c5&5@C>Qy;L4lXADRhL)oCj=Cdbt zm~o5=bx6%Yv1#>?_#saPcmc2()?c5PW6+w}=j-hu%r+kq^tJk6-cK=i}?`xR#Mchi?&$N}zYpUH&*+Rt+&5AQL%pgk?hJMivroGQ2@0(z%=d;b{ zvmae<_Wjc0&)u(gdnqgp?SJ%heEaCm^B~N7C=mi6fPfbLAC*$Xu(A7$c zTVEws2j`jCV+<6a4qdz2Pd+Z76N}M4%-(yPIjitpwpi`3LOzu(R)&6AG#7PBWk%C~ z)|m_^6RFmbG-*-`FMcnb_SL5ht+bBhQ`Yg!D_zx;9rcpErB_>xA<0`y##xQcRUHp> z>`^aRci=7R$V{}^tb}wxCYt*`@)K9`thq0}B;Zi@CoYwzUZcc-Ta9t3QgB~$X{aJE z`yTaY+=n@BlSZ58$u21O1wV~W^%`1LL2ib6CQ{ zXGcxsVl7KGG)PH6%!n1*e2Cjg`-VYa85}bLkruRmDyXkr0FA_Yy9*@`Rnj1nXE`tU znqSa*-7aGb-er6l0$@J-`H<}D^CcXj?f$CwiR`5x)%q(cIi%tmth;>k*K7mO)oW?F zFXVn&y;ldqLk~15z$*zFGGGWYcbKjpyOwOeT2`01xLpd3`HST?;k9mM@7GB*{o#OimfzlPB}i}3VB-z z>~KP58+sEQnx9+W(^Rhef3cV9ef6yNRY$FGeK_a#0ZFVnj&)KuM?oPG;_6y zXN10WIeMpEk-pSdF~OM2&AJJS$I`s%8p-P1ogJ;vz^IE zv6-zW6|Q!Hh)_x99KGUjJc#nZq6^5SBACc-4lYq|G~$?ml{7?7)jW|~v~MS+(@dSYiPS`iR(0+K2cp z35VnsFk9t9#eFL`yJ?>;5WjEpW;dR4T2GJF`(xzrfIk*ui{o1QQ0-$9 zi6{s49TxSgh%^k)nt2l};bxA!BWABdW3(70I-EyDlUF0@$*XWIiO_f_@ZKK@O|$x9 zn#RvsezMp&@Qy&f^(>R+i{EKwzP;^jOo(0xFuGN|VZh)Z#fSz^HGRmwLsR#hhDGcW z_TWdS?$nF&9h(+AO~wp;+MfQfTrQxt)%6-dpC#WIY1}B3CtOzpUL#hUABU^zORaA< z)m@kGcwdv3&5yN}-2bRHZ9f0sl`?E4$oV3V&jBaWy{WYl)cBdm=<4jSzDURMO~eFA~vB;@{QvBpxISjJ9F5u6~g8MpQWXZd`pt zy=*=|Xe{0j>Pugai*P0~ka-5u6l^nTUTR) zE~eG5KPY7ms`0;!qn_=2S=Up*IA1F~sLLx*h#@ULu=UvWHo!aN{xn$YQpkR?=BG%^ zyQ+^Y>RY%EnraIV@-Q0jrLB8bpR2nj59S*8FOhoJ+@CS(*Nzg1QM7s)tTaMOd(gs- zu;PAk8Z3=;;}6n2tkBZR9WS>B?>CH_q4nPO;Jr-O%otq>oqPZr1gJ{(ASQv?7eAuj zGutdo7oCR9Nrg#u)c2ls-Di;d!rc0JKz=eYQGO;((}NQTJ$eT=8(tOU@< z;ihKR+VS&ua8YZY0MU%o!rWi|MlmgCpvwb#3R?SaHy6|j=80xa8auF$4QhMG<@8y) zs_p#ku{D#53l(lD=gjtD*d>Mv?fR1iqJN`}8FHz<-W*=pau^UP7t-#DtQR-_1-?ni z6EW$U&Z@6nw9*gVdd@IprfbrF84>H+cGnm>Jqm8?lls=}%goKy#Rtrt`KqrsSLsJ- z;+CdB)_PrTegb znRw#c8QPPGXTDwXGKu)N<+`}|9)-+j$ai^KTMc=LHhnNY;^49llCq)|Hkm8l%p}yU z^*Ci1xq)db_+W<|Ro@i9yO9mFuB&5_m?Nz?tf=*({D?_P(7^`wreV4&PY$#%rE?@v z3WmHde>qLAHZoUvU&7;@D}O1S&5{`>l>Xh{O*`3KHvOff_02>w_tLc-^yF99UFYPo zp8V?Cm+;+|vz+2aoQiR(S;g?e2~nHY>?u)j(s035N!VhSHZmV{gEaMaS?_rw-9)-u zc)L`0Eal#%#kjlNAFK#)JkR(x1PkY4aXJ@mSUmJ~k=OKAW06!=?5jSzsF=R_#54=d zwv|wgGZF7iy{0t{E0uzEZYO?)cw*!F*+il+JX|Q1 z%j*kyMyIgTl#x?(&S+abW+rhy65B5*7;LY-d1GNxv|DzS9yO1<2&%M zYtEa?UT=w&FdUv=+9rv?i$!a2aAAh^hp_9-pQsiEsweQW^4uP+XQbfcUuU-;X9i@8 z$kPaUW5hKd5fw2bB^Dt~Q2?aH{6*TA=*7JMvh9Z_M@zn)bryz(bl}F^%yes5`_yL)2k_m;-W-Q%r?E3oGxKOk3CpJkC< zDjF#SkMG`ne772~dbW>logX>>{E_+jk=lNBQBQw=Pdt9X?0&Ux^X_5HS)zG3p4 zNnO6a!Z-NQ?x`u+CTX|fU*|E>v{=mc(o#*{ny#f*9WB?NHLHdn=m5r5zRiMY2)7Vo z$$vkKw{!B?u}Odv+2=?+0F=r|`=O^ngEzJ5f0)-#8gf$jLNcCsW9)e?Sl)>vtvJT9?KaVRfTVd7*7w zBEsFoFCs8sF}6cHJ-Uzt`!v+0i6<|@s+pa=iCz-?6IuKFHO%~MF3HRMpzIchgd7p%imx$1iwGCbbXrc5fdobv2sfn>K9yIwge$0p+>hE$^D# z9&`H#O64Aor>Y^6wV|vwdqjoCQ}@r1>>z8`j5Z<~ z;&!oIv^gZ(q2A;X!zo4r)wI%&{{XxA^u2!p+%FV~@>3zW(#W^-RjCnCQ)3zRjW-hYz9)pmIH%XT9D73sgkSDUzi z^=QOn?0TE=SDz1G-zS)F9VcL96u?H1ez#?8ov3qZMunNz5G2l!Uyd?Tj4MG7ml9yjp@2j+b|)RsB-FQHXcF}BMi_^6)yI!5FKm5?T zKAK*_wBqdYvW0r`+^r)URK2tHcf9)*Kl$q(@^$})pJFn{1~d3tvcJ=bdW)16m3dV7 zh~GoM1VbrEE112;>a#dEiPM3JV*Nr*A^|;l>%w$lU~JGONu6ZajfL}p=_h}7v3iBT zx}4`x-XSI@C`wkZZGG2!KX(2aIU|Dxw+^Dws-;XXc0)ECL^y53W?01NETdvRexcq^ zvFZLVJbCM>Cy^8{Lina2bNj;&Z=b01XX5tTC92{JB5W4Z2ikACUwBJjv(6*8Cbm?G z$udEKOoWk@*%4CI*7>P1o_@zzJE{1ljiPN6D|Xe208JJ5`m}YPdPVMqekEECTYrlCA})xYV-^pauqGiH8qGxc4O60uCz~_i3?0E0f-_9nxT>=5je;o5-q=1R zxH>rn>@J(Q5x;WwxtZoi!0w$(jhb@-?|lUPq6F!y3pk$5fmw9UP35v2W}9f|-sGVItND(AE?n^Qy0Bn79E&9X{ZdvU0H z$x80iom5g5q`d%b^%+AO2G=sh6rF zscPzZiopR7feufTaQr#!2qIjF9RYII>b+LRjf+4iQ)>Odfmpt{IL|*JfxyGVIt=&( zudy4%J2^6#L*i7fz^AvyQE!KE+Kf7w;q4z%T&v|v_pI3Hri<(wu-_7MU27;AwfS0j%j z+=oNPa-n{2j(Pwy&DIIt%BALf!XW_~I3B08SaRGs<)CXPbm*Twc`cyECj9qTv;w3_J@ zU4UkUI||JRnYNK@dcfI9R-tPeKx!N_>{Dc8P@n{nJtO&hcLiIg~Q_}unah&?T-8mGcgd%ZD4nF`&~1(%;eC+2o6-8B97godxWnXXtM-IEM=^;8DK7i9~1FB4ae zstl7^w=12ltAX7o+B9u))j`v%J;0GLHq{4zg_I_QNXRE3HI|nd#!8ySCoapLs5Sjm zY3RUSYsZeebg{(M_WYM?`{NJ?xonlou)nAC_YL1!r|ojQGYb7XYjo^Q3D8|(pBMGm|A=5+d7D_H@2|Bq(Z zuP>Kp50FiCSE+QOzh_W%M+$;;+iDFO?RO5$s-E(JS=wgt-;7HY*{-9%ivAHn4AZ+4 zFIsWcIaIVB2G49`Z~Q4)Sn7TXx!CSd3WZy|E%w)(TlOEAI4 z#XqizMSs7$ioI{k?BiQz)p~3G(>=A2C`wLQr%Lz4vTf z&GLfRWt5c;53j?MWM38At>_tAl0hYDOEj9>>m)B|U*_F6IYG4=E`F_skmlMu={t&{ zU+%H?p6qWcHz5NJtY0=mG@pdlo>v;W1}`Rg9r|*Xm2<;ZC_whtWLGj94kY4{aGX6* zg)^zHq#X$a0>QAG1Ny^-!2p?B^@SlkW|4SUk#9yIi5Y&}zV?qPHI6|lj+Kk-mH;86 znOL06X+)TjR@g2j5uq$AQHsRLstg=498EYG!aL+Ls)Zidg-`Rww)Q8L&^6 zf_*9p9x|iFU2RMp(VjXZ>>2?KPY=4Sj-6pX$2N(8CR{*Bqu!WPe>grwxMeht$2`PXFC%0XB<-McB zpA9ls!;L z5L9Agd_q)gP137xl*iJlh$dt@Q`hTA3VBK$PoZwPwMI_JQWvC&x@23`2?t}p09)|` z#Pd>cWU%Lkf!>|%G%h>6!VSRE0;FnogHe2op(tsLl^gj@FM?1SjZnLV9N$hL;&jep zIJE3pqW+zKLc_tQD0+_df$VHGAMcc6VXjm6F&+6mO@BBNbAcR%N91Nw)XfP{QYq+` z1Hoh@6f1>8am3$Lyr)`-aZVnS@9SP*6D!yYUOr#_v|vQF(N0lZz>KBnaqpvM_Xn|h z8df0^3?n3KS1(@~H9eSG88IU$OP+Nr*<{;qQsf165R)OpC?ltZVzEEzX%SHvg9mr) z*W+k38!fY_N4HVm!w#orZB~E5o-I&ISIQ5Owi!_!c_Z~G7CSdVDG=%a0w`qk$Q6we ze$vnG;7akOELH|imIp!dk**k#wR{|X)oER=&6`?zd>_?|!6SPMKy@NKX`!2O;t>Jl zs(iJFilL-ejI(MIZYYur2Fkp}gF#fz0K$uMha)6baQw)y-|Wfvg&e<*7(?-7zcZd^ z<4!TA4zikHarM5jm3*W*@=(OZf-YhxELcXyn#_!;_x(z?7SM@De|x9%m7sNhE3r1) z=$U7^h2DFvW`5p}wn*FzNH}fy(zbLa#n{v_uHYbSgwqp^5lz7CPlDdiNifZU5oV>T zZ0p78-E%u;P>7JlW_HZg2c}=Ns3t|hwsLs@Q|Z79FV-gq$|b}K%PxE%@b!tM;M^5) zlJ$~|BN*Xrc;j5~g7L2hD7&rhv-0^U+2(pG&EQ1e*S}sH4>spX>hJh@%hqi-@?58m zeic;*DH&#gFhP-2q%%jQ!Zunx)(PqQTc6uqzYl0X%aI4hN5H8_O1UZ!b{ zPc4ntw@>0c(N)%n7%cg*OuCQch7uoA*N7gn^rCu3Xn3S=g77&lAL)X8-O3s?4%c?j z)cu#_o1ovyQp!c8)Nc-ME$950y66(WC+<;^1QAI>W{guv!V%7#Q9Z3!)p;qjHJDq{ z_YJ8K{w{f@b=v%TjeOKaZZ)HcK$5a605ogsMxua`y;;-|9bd^%X@x= zI#qFgB(9l$KKZQh*1g0oI5xMDu$<&wWN_~4YN(q5YzsYL-tBmSH5Xt^#s95MR)~AT z6-9}ZhH8;i6R)-V&P2+4rJA_Yar7tZv)$>aeYa4Q+*?@i60utZ7JW&Am=$d$Ym=T9uw|i0+Bs3rSi&-j@3ex{r!?c)wQ+%3S{o(FtKUxW zdf>FyYnRuKsJf?PR-cT-!p7E18+&^(Qi1AGaIZmr_uWs5&U--PT`m?i_!Fqe#y@6k zt(&oUh`mn~ob0j_l2st`qLw4IV611Gud+G7fuJ{S$kK0PV&X>a2~AG*p%AH00}4Ox zB=$}pq--fOSrV&Ef}mG06eTpQf_HFwFL40JEz+{x6`m~*HC=UZ#y;pa2d(!flet(Z z5xZm0R3VgzQ-zR#SpqDv;7}(cRSXxV_S}Ib#0f*fAGmZ=Ik)T7!<#NWwJWFdQ5d;C z!|r#SYBRq?CW;3-9wwu)$vv`4i&LV|1+vTHgI1O41*A*itAq&GB+%9&nH=RRQ%jRh zvrEc4#9j!uQ`VQpT^rEgRzu!|23#Up1F)_!E;zAa(A+X4)`s=!W_$hbK5} z9V`}BGsrxFn)P~WVW7D%f7unM_G8-e2g2m+N1h5(4!nu9l}NC+vT_IvV>D-r)HYyY zIWS1Cr}-;YbGA> zXJ&R@wsr2*7&dO?%aOBGfW8iPz(P@+RFo8~nC3F_=}gzKY|s|$tvFA}4VWQ*g4Rnz*+X`jlj zr&m--Qmm-wmJ`fnTYoFuMwLi2Co7EK2vqKy8o9hSz1%ISn1*Az5qu{9vtz`%%K9yE zMmq%6AaN{*lq7b|(1aQmlJxg5;H@#s_ zzK`Fs`&}1w)sw$Eu{Rl{&T2Rk%#M$r7pLYY+U`D;im_E4ncuo;!(@aEpUO(P$y|19 z^tKs&z>S|n2BcJ?zqGXHUAJ@=GZ8na<~Ae~{oPBC-a^%ZNG$Yw$-U#KHCR{NZQ~PJ zvW65%>n^-_7X9QA#t8qKR&xEk_NTGXMDEwh2R&s2*1Y)-hQd(Hrr8e-JLSZQv>gd{ zQ!yuX?78!|uWM!#N7ESiK1e}@q_gouTZog4Y@~`o>S!|R>_2b&;rCoe=Ce{rC(l~d z`#rMNbg16dun^ceQ}65b`AEN*+Zm&`^7KDV@}@eJIj2Jn66bz&nmmaX#@2M z?iYT;zL$ib5A>m)uXf7Cr|l7kZeI`-g8Sks+E*oq$ugCxfX+fz(_ z-fSkL`LcGOloNH4pb#S^^E|gP43kyrZT5Wv1K3Gi*REbvq zeke9FI&!G5uQ_dvD~iFYV07D{N~R}!db>CER)a}*tiRTTso=O%w-~sZx{T&Yxk&x{RPmPZ?UdB3gAh0qA3g+gkl}|(7{X8)byn>Cs(A1 zp&RoO>7*AE36lDBb;*+IddXxY3|MubTucSrVkYB8#E=^2Mp2JCmc>p#r*fB`e0+jE zK#UfS>?5H-L-Txgk7z)OQa(diWKdE0G7zFV2{sff7*ck8UJQ>1#Qg$sCqy(cUxevX|ofJt8Ss%0NA9$&FouR3|P_#;9PJC6*h z9z(`n$mTgUzcwkHKRvU1=CT4w@?cDC)Wu?jUJ8|t7)@WAT{}3S=f@wSgkhDcz%}iwPm`{!{U@$dKS^QboJFhL4k-8!wg8YbmYkL*Ff`yEU{akEfupbBoZ%V$1QcJ zD4+Fw8yzA6SDM0SvP-OZ&{u8}p9u*2dPIYinDTZ_47fa}WvkMvB4{{L(MVIiQafvoj8n^fDHF9;65$~KPI)fq?|gW z*9|L0mqq4W)xKfOlM?q}urQHc;nV@Tf#^0yVHh{Dc;$?wM9ZG}p`3FBEr-9Rjv2TCp&S zu*5*&E11@@)A=Gh$z~xoA&t9Yc}Qe|Y!31&FaYx^yMgc~F;tmX4a#Jzk>5^D{?o(+ zYE{tNi5wfs?o7iECnw!tFugOY3ln-FT$OLRCJ>TqLc!GPHA(BEawwEsJ(P0CC#V%4 z%(QQv3Wnm`D7bP>CPZZF#5k({%Hz4l@Z_c0M#1%>T}_zz#x zl^xomgYYzMOw)mV8cWxhK)Mzag)yLL?x(#gqO=)bshEO{s=#+C*5r>(Wh3S>SU<6U z>Vs4Ih*(7XtoXN8{V^f?Q0u4Y+NGK1x~^hVb&)$5Di4MEr}}$3UvDpgD=jyc36-K` z`YK&`o3BXqgrHuNgM>4s9!(1gWj<%=P8CcE17I8F_}MZMN!!WEg#EdA|FkdKE=| z9_zOzbw_ljv@|@W3-_sNuA33k9M*HiK(mC0yU1RhP5S+jV4}Y^G`)G!Ij5a#W@sGLdoLg+2s&5u5Tj zKER_LAD{vg(gvndk^Qthv0A}|L7NJ*`RV`SzA!K>@%96h8)pjO^xX!U$UX!%1MNba z;k2)#-&iEp%+ zGJ|tKr~KLq^~qE~f9n3V#P+QSP5`_nD-_5$SUbOM^|zPQKVrcvZQlFV6;+o7#Z+Dy zD6A}|nHgD4dKs~t3^`vB2uR`%H`3p|yq@p}^T%E@*1}gV)? z46GSz!#UWEGDFK_Dl2?rF_$Z5QiksOH&8%+oxfWzY!X5AWYTTAL&RnLGwS{|^z|(d zT1L9oG^fXh!M?}Lm#id1pt3cm(@vLC&8{MBrj+t!A>Am;$oJQ-qt`q2I$B;VvW)cT z_qSIORK2o}*6O8ELG(zDEg{&^JTjBGGeiZ%1hNsRi;i!UFMvrcs>MsF>%o7#)3%8v zV-vNUy&%|#+TF`XyP*D-q$q@b9o(WbXzD;R!czCsk$pP2Z28$zrywd>0cJ7S=}n-D zd?t_7hM^v2T!&L?V`rXf^*W#bugMKRj2qA1_g#7FclT+K$dB4#WuIt2RD$#N@yPu; zIu-@r*cZ$*L0qgx9Pl`kLLExWqk{`fM8LE1O}OAn1n1fP*(WgwrbEl&n?JqFw(n}k z1MYj7kx98P?~^z>7ZB6h=Zo*4-Q)VW9%?#n2r>yTM;2gtM{*jw8}Zv6e{#8Na69_O zD^F1SO#iHh+a(Oz!^0J}z5ivFHjj_JykCz|+XgFRV3T=3BJMkSZ7OZglYCKnmQ0L|5zdSeVxMz5?oRs&RnUQ7w(xc^k}zXkbM zeF&i6LxDT)^ERG$toWsGIlh-mS5i68|9|i8nwZ$O@v{#FgAX}>n~RxKls3;D^fqog z)@2QL9oshKsiTcrZFj97(?FwEKD6!RR_}^)<~KHSsZ_49ah{Br-quIBptig9=EnK? zjRSJxlPBjrNv7$|-Pj&?!3s6CJS(^gz0nyA3EV?_v<=hMHW(&e%OYnL!uV9B@)EfN zhYBw_$CoIg8?+Bm;?`cU!-r6@EPHagb$i=9sk&p|%@0+3^WW|1z2JBxkPROS+2;xe z3?IU(8tp7zFgL69U+&l& z+lO}8?^zDk`HvMTE-JvgFE1b3mrm;>RYQOf1-oQyX%}?7r{n$5?5K~ZGG{@PROC$r z`j}e1D^JMY%KDuM_YE8B6q!Z;Wv2Ub0$wDAJ6i}t!InHV+0O@!J6N^L0hyOg0!t(( zM2(-CREg}24;DQI6dWyDtI=WVevu6e`#$G900S1jP>v8Fk#K`z$gfgwM$0Y5g0eMG zYt^IhvLtoeFInBx6B76KKYT1>RyY)R8S97G^D&_`L*$>jgX2!jvd|C%>P5^Vcscn* zDqmCxkeg2Q|9FdKvs2;Q{GvuDxAu8tievcDQ~sHl+joOOU_ikv3Ry$~Y>V*0Eh-Qx zcB`LtW2bq!>Fr9s%*ax1)o=aFC-T|&bS!hZ5}Sw2!)|P5cfwJ6r6LZJsP@v;`w(-q zAK74sBf0ft!@#RXp~$x0yG4N4@E8Vji~6fz_}OsqAE?Lv`L6nsh~%%Feicz%{ei$- zB`@x);#wnN@Xl~><3>y&U6g4kZRG3?Hz3Bn^2xRs|H-;3OIvT-uw}h3&{OyCjzhZ=DI#|~{5E=T-Tj}VE(9MP zyd>h=Baz4@8^}|x_kam)(^Nm*Um=^1qgfSt*e`u ze&E6%aV`NxZh<7o+tZiH#N=9@bCLr%mPwsven~TsQ29{@s7vMT#(zFgv zPVauYP)IE~&XNb*>FHr|=Yk_v53&;pkwSf>iUKg#*}t$6Du_8VoFP_2&S)ZyvIN?v z%=-Tfc9=o(qD{$81q#vRNy(>k7C%x41P&68fsOwo> zl|U#Lf-D1Y)~TtfX&hrpZ8;fu-~l`?0f31?Tm8UFhtwdSd7|1OmF?w*qf}=QY$5;i z1zf7mdAZ229AGiX{%-7s8LG#h07?H@(4=}@oCSPgGlyX%EZL_RCk8=}miQz!^s6ze zrpAXXJ~!%SHxpUK47Vg2Y^q2-QmylAjdhlDqf?`L=jTI4oZX`GAZ9B&zmFiySga7=G~1Z;ElJA&QGlEc zs`PnXIO3xImYK5El^V@uC&IqFmxeZsj21f+>Pn@Goz3R#=K1q)+c0;eoLE19=#cueQ{|re z$*preJ(6dGp}<&d%A1^xjQdIvXRS$ONqpV$X?>-VRmvj*2H`Bfvsa#9nAj z$WpOC%3_W{LZ}7M9WGKMR>=i=gO#N$dlbBMgQ~<5;iooEpLf`@#wT`c9om4)h(%N5 z4F~newqRhkIadou@BbfH?Kt03=Wl=S*v6PsibNN7Q;yBD4qgnh=*-u#Z+yB}siWuZ z7#;}*H*A>qb3h|1q3B?DS?w5U&RW6YXyjJ)Yi?5vF6A2|WkQ1L4SF zsn#e%ftYaa1NYLm%P)vVH{3R|VOz#4K;GbTg9)eiudjkxuq~uIr?<=vgtLKw8%P}g zzlTOfx>*}wE|8_YOmUO-#Ieg-2V4PwIQ60k6GMpN$H__NRg=N|oa;LK%_zD7IG!+Z{3H^;P0#evGV_BcJc3Aa9P5Kj_JhuXg-d z$F~`Yq%|e~6#p7i`Kbu0S3?cH>Q0)86zbFS-J|mWZf*aDOZD~10M|F*JNhSiU+|U< zT-ch2=ef~TBeId-aJl}6a=3g$1a6K^=6SNdYr~J^Bl2`}FBl=4gxp*+Ah{_-#^1BEsokF{BKvm23c!LihTg6I8WmzBoFp0PRu$F8@ITZHF2>)QCL&-{#~$HLS`BUc2sIXV3c?3~ z#L}9YL}um%9vo&}@SZ@zl099kr`m+H9wwcT!Q<~7EZZvRB1^5NuAgzVn5}wD9+fx|JPRt`{o+$&=yRI5D=I(b2E4#phF?7ZY8%_ZjL#qK_~+$Wlw1YL4MuNPv3`-3XVAXrU@ZMTjjscehei^JUS;0auXcvOk7Buhni$S1l%FPBZlqZATx_~2=ZYA zvgfs2do%m$!Hx(!OfPe}1^HHNn_^`jubFqEpd{uVXHj0{(h+7Tr1J`DLjihsAFgmw zU1h|p4N8mUS0+;wv!io^*v{2m`pwF=4iG0fKrYyU=h0eE4Om%!pb50B^|A4Ky~v-% z(v3SNkB`@C7-(8A&{XRnzib<+A_N z_@b)yk4q>p;2@D5Zl#YGp*f1CV^lF6HmzA#Bo}6-O$m5QTW)2s!m}W#3E^zHY>1CS z(gr^#i#MD7p;{@NC|JHf!{tS}+G>KwYO2dmG@Jbs6HUtrfEdWs%-ZoOJ?5JRO|c4C)O*j$3z&9sY1DX8qPV>CVH0yz3BxQPwg@J=}&1%gn6zk*RX0cSO zjs)q4l%jfu*J9&{LX!Phki9HR2dHV7J{tJG3T_{oJ%d+8{lj zY6xQz{~vA3PqB?@TJJF7l!jS(;?skl!F@QOhCkQ2qZ75I^<=cskgP6+!p4n-!j$BN zi7qZZ%_%NueW02L#X+{;;ne&vq1x$ufn31qsm~WAe3oAq3eyAi-Pi`~pYx;NxXdfIeq1A%TXOrg9yhmaHrwen_^F}8EOhv+!zQL&YtmTjPIc*vePY~ZHtRVQKHwO>Q%?`eZ&k3{liwjTRx$x%j z-B%3%xZE5lm&b*7U3b?{EMHxYEk0NufQVym5{# z^NGE~)#`BdJ?~J|=B-6<&MI>Ae*Lp_nm4Ig{TlbE4$mQc(fqG#SwbonaC8I{5zwN+NIX~TFL>E?4Rg`a zOu{`7dxXrN?UDJm#*y*ej2vHaQmy@FEeeMOgeCwwTzL3%Z?s$Az#rzJUWX}xUdD6o z6P-siIZdc0E_2lZS+_b}zxy>AUxMHKl@AP`-j|SwteeT6h&-Rsl6!t^L^B*s|FR{J zNlwcFjDslGZKZ~^D>zg!Nin{}7LFjw%4O(65Ep-0*OOmEu1ghnSZ@d$GWq2E)b%bE zX5Afgd#5Rr84MN^1C_af>PtcQ5HisAx&6hZpkpPF;KHQ@GU2?>hKo_^M_C~c6Qw8h zHQiKY(ArThCY)fflmPkVAiTP*mTQ;mJ1WIQut=2&LZwp)#7duY*d>*3tO;>iq$Al0R@6J;1?H4?Yv?nACuPNG(qc6ue|Y4qEO@?2#FGOMic?CGGZxeS z+}0=Ow`M&Ol%Bn++hu`@>WPVZT~YM%37zFqaH1SLxRpN#pKx2Tl@%`Z&VOT@4IstF z;5MkM8T>!u1d@~pFxH%srmbc{kX>)rGtWG;>skJ^-aHGE>HF&F4bR@dpItZHpdxFM z9Ow)#nm!(euWbkABBD|_lJ9HC3;E+CeHw|yEE@xipU>pwixC&YWakqqfIKEKs$dtl zx^m^EV;gg|>Vt)PHGizu=Xq-V+_CQ3SY^zp)ZH+97= zUAKN9J;d>JdYzOWYAvMG>bhIIZZ-Pw&5X@K`28px7O4Za;fs$0sg4TRP>xW@dV!>h zqSwc}h!%WCyqFBJ`>_!K-ylInh3!zQa^oA+`b<%6>`d?U6lio|S5dmN!(nGN0!uQOeqjY`GTDC)s@U33I4%&5Uk@${ke z&hN>OiX=baZSCH-$SCP{Hh{;LVVo!kFv?}){M5LF8MOst(SiuzoWomM*AiCN2k4I^ zrS$=vJA%78MTrJL+jW28(6K$2jpMl}QFYp~{KeVnT6J=uP!xSFOQI5ZfJIWq;Qn!7 zGY2&yCq7a>KastD_u>&XF|n(!+84(XR&oNRb>q9M)ydi2mApGxaXo@gdt5&px-C!i z%hCl`5GJu^KfjC)u5RV+ehEqjMzyAA6C6RI7P*!V!o9RaP6wf7xmGLYx`S}O{FrbC zEgnv-`2JqNAZHI2c8m_s%pACSX2#2wC7%KOr?7WnZmC=vDwN@8sdCBp83On<<KYs=?@sx%n-5$#IjJ_!?5)@9^ji#E0V|lr$W`7jb3iR_URd9(<$IlpM1RCC zAJe2ULWA!+rt8%JJD#U z{@P4DI+XP?G`X+PnXUFUJ}8&h^;&&`J*fshUUVfr9RmL_)EChtr|o7~ze%-?6rZDw z6XeBHzYrK5-Gejm`0mBAvGO2-#kOJ6^A!@f;odt%pQk3(ou0dQbkst}*nNC-xKynk z-fr8)qB|d+sD49jk#qnhQgl%v@eQ#YdRsM-r z$lw3ta;?8s>we8sBI7Dz3SYC{Lw*>33vX`If>t5a0sY%n-#|)!i%;;ppOpLh`)l1l z@$_?vGa6TaV?7GClw7o;g|tQF#z#HxC*3vvbgM1iX!MV@`u>N6n(_qA~sYD4Qg@}K?S=l}HcPg#ep@6#>@R-B2# zvyH$%m3iyHG9Yv^nHrD*N|b)`lTy32d}g4nZ+j~JS~s|_zVewDe_X2bq36dk>dY6< zd5;Q6|H*J@5FC2WBIJEWWcab3v%i+x?&U5&DfP=;^qBwrf2v!UFKOf1^Oc```+R-- zH8WpkvPDk#9cZ{0i6O^28j|cpDi`XX2+5|+ri@3`cv8j1!D^Rf#m>$bwy+2`A&jF3 zTQ9X%B{_^LuEc)cL{k!rm#878Nlx zvIUH5Nc7ni>&UeFA$q^mJn~!U{bUf%j%Hh=@@UN=2ks=ZaChqKDgJd+B<90kPbR-E zsClXat@6PD)QfI51;Ny{4ud`uAzS}AV0;|aYzbIY$+|dZ474J?{j%ko*BxCBT9Yf0GkM5;>KMco6lz zv>lpzSh$*GEMyxMbwfko(N#opF0(ET6Nc6q4=o!+J~l6u@)=&xd!`>=Ts)D@4ovTV zZ9fWA)t!6%mRla5Q-53V(x_9Pm6rv7dLWxUvAB48>Y|I>DwS8a-17J>gh+{f(Ci8Q zTAsrSC7E`$C?rM&p-%zsh`?e#LK}fR6%6#1=BPGQP5J635MaSmVba#|;Q=5Tk~`$K zpcDy{1H6CM+BUuo^Zi|7KA3jhJFz=h_jx4L4Bi%s#pJ^S`ppUb65li6Iv$L*ep{V4 zah~Gbhhwp60d#ygCJfB9-C$yS>Bb5UmyLT_=uE06@m}rxRBb5gAA6UCNWdx4eTM+6 z^$?sr=ljbL+-JM|CmfgTxkM6vQ4P-JeJT7Vxe85wl8lU#C_Y9aGC>R?)XGwsAex_D ziHXtxMP@FkK=tAJVW|rf5ntfP3#F0CYwy4RFYZ^(6yboKSK$aV*+AQALdzxm?zmPh zGXIb-G)4@&`cp6Fom|{`^5o7s!~98#@U4{sXU*jdPDwypEhNt^@491gvpiUggWdVOm^Gfojl=vd0*V!v^ywkz@R7Q8SK1E%c zysuvS#V@6bA-C8%8LuUhV0J$EC2Z88Sf~2scrD&*eYy2RFVUNC{dSB+;1Obyk4BS~ zytmdouYJX<@#fv82G|GogXGZm4$)v!p44t!)3(+I<(Y_$GBs_lI+U+q7gepf2rI%A5iWz<#* z_FY35f*6o=`+okrpcT47qVJMwBF1N=(_qLx#b3d}>AX@}I5&zD(=#G7rm^=U@C*2{ z!34r8MbyxCHBVD>FC0X@(l}@SsoU#;RB$MlkM0X6{aO%++XU=;B4kHH1719`FX|^J zLJ|AR)nUZ|$5I0W(^A6A9y-|=P)Lq9PHjIlKY#n7?NdQ7GT&IYskhh|jZorq*Lx)G z@q2brLp40vm#@tXlolz%`RBvE1RbQ@O^pFea8dir4Fdz4y1F(En0+RNUN3Q*^Yq&A zMcMSUV?g@QD?S>d=KESL)6Trry~f_M5vRkzElx8i_<|w?!l3S-GtiNwjgV%WcL3^6$2p zb{PQ?F-a_TT3Uh&R3ra(bHN8l14(aEv%Q49$ftk1ssEK`CeCW57pC~Nhe1GbbO&5IXR%qe|UnFrzXBJGOhS@4Pz zz)7*6;G7ldSK!f`qGVBQ{~N&|tN(6Rn+RK7`6_@@eJdTiJ2pyGfjpGOSf6N+Lx??# z+;g&P$ZACv5eE9!zZ&hTH}PCnuV?fMo!r8Q%-?gT8a=quLw9S>j5MLQprBbOc zI@U&@K3b?*^Ad_$)gH?MT-H+!L`ljpY(+g}I@Nh`e8<8nODLnu;BoPFWT-2(l;I_ z)UPXb9vMW_otJNkZj4gM^g%`3kdH8^ z(Yf47@SLDh$z7GJfLDqDSwh#RryK^`5R33luI9gFp~!bv4)z_XKM zLJGP8psOK!N0tGChGqXTKGQf6jL07y&`R6(BWi(AlPoc~0u-q!Ru1XdBghwFQV3Oq z-)`BYO?62f?%9~ovY}|xA|6v6o>y`5!R=2zfbE5<(A&pHN8cDN2Z7M63maYUbb~vfDpZk9Y!f}CdEF3dj7t1j>L!O)#AjS*kE^^3J&#B-jD6sH?#Tr z3*tu>?#pK~#2~j?(rW@_@ zL1KjwEtxKBC&P=x#C$#&o;G1It?%xl@L<;35E%eZ8YI9{jDSFQ~j;2 zgvF>0J$|mW)dbLdhtCipvf)2>c*OjC4f(sD?>I9^>wuhx45UelQDt;xGn>k2d*x;- z-UC2Yi&v_1q8Yz*=I2B>IrE2i#xLy@NAH1)tgjWkV)CX7I^VMx%Z-laVml9aUT{;A z^ay8uk&I_6?ea)L#V&v#-9>|7Kqlb#1cc>f^^oD=Nk-e z8%o5!f-}J=UQUW%1yeP9q?U=r{{~+YxB(U;x+i@zer%*=F{`wt zWXM#+>D6yXBsqQLm&mmFrbbJ_eVe6^b*q_myak{>$14?*X`COB{_Rp~r zZ-XJ7`8!s4i$^)%&oy^`k*qmvdz_AJ!skqMRl}~gug99lo;`c7z4luF^?&^SzdzU1w5JEvyH=R}A9CzP zZzouXDKBS|F`8dN-)P z^?e(RK3>m!K5OI8+i~?zjkRj!IABGY)-7dQoIAGxn>$OPRCFr94Tx zaBZmhlT`}s{||2qwOV0kDy{sNV^odvhuvz8FTX*vYLa&nR1*ND_$oZH{D%Ghzi-d* zOrE&(CXW5PoOLHu#xa~JL~8wzso^M#LC!0mc)Tc`vX1txM~dG-9rY?Yx@T%6qkOy!psXis*J~=Gaff#58+a=LoEvk_NPz zqcoo4^cX%qQ^B#bvj1{{{CP=|-P9rDxmk>tSgiTf1LebvsR&VjOACpi)4$fXu#5!&mv11sy1 zn`zNJu-q*!@O0fbaPQMA;;y4Z;LC1z%W28h&A+aSQaRM4o@nWmJOoUEobClpRRNcsZ~lRDeSXT`d7AU9aDc|uz3tWtmC4Wc-ZlaI`&{2 z=n0N!&`N(FHy1@j41bt&L@Ko9fu}%E^m)=jD99LEtoSU`)SDAwAufS-N65AJonW=Q zfd!8V8$WQw4()fG{g!p)02vOl?S>G*s8Fa_w}`Ru&`-8iFS2om_#piu%Fv0Idn)P4 z0GTuo`YVBApyGc}CXtjFC9S| z16oV-We#D7RPN`0S``~h2`9Z5k6b~4%GHy!(~1(xy^^J$vRA}f(L+Oz935yS%!)@5)xu-O7ycG0pUV6fGo@wKFrP@3 zTFsO%PSa-~`YcQjW!-8l?o&%kDsf46xX@h)_?MEsn|ca`o=v@^j8R(pRI_D^7zTz- z^TVTsWTNEYt+7)Fo1YmOSEgA?CeQEbq?}uKXCX~b>p7mGw)y#Bc%^=JM~a}Lp2|Xl zCxcuEMEk{oEq-3lyDQts80n*Ax|G6x{(0@Jl`86g>$!BXPs$*L$-#-lS#la={kO8Iyt1WYOU-unVSB3sDc0UB zcwMs6rR}zCq%GG|Ul3lTeym#VKRxdD34FdCv9T*jar?;rH> z2#EK?@5I6-Fd6O6)^mV4p`4fW2CppR7nc+7M{1aLf`K+UxBO!huBv8c>z|bA2o;6myBB} zMcn)n2&!JnQG-Mv^w(SKQbTMx|GRQMvW9#9o!Bzo1gSXD3wn%``aJwe%V{~;IHnHc zx|wM{K9fvtH^y0j28+$9;vi0p=|r;gNBrwdCYpatGA+=LBFiSnU-79XSUJlpYvzhI z@7MWxLQaU}OZ6stz4U^5t4gcd4PCD|%DGX`H+QLLj2i#|*UP7xI#(pA(ZEEvjdGK+ z;GC}&ql<%(0yfmrT{)dzma7wf7AgthxOF+#+_1WPc&=0$Zr(RMr+y_KAHf&-RP#P{ zw{dcKZf^M0%{Uh4MzSNZc*)I{j8C8XhVC~HJ1e}w9Uc0BLgiSW)U2=)B45M1-wwc&s@0mT?enbaO>957U3B`*T;JV-D0yBU(+#8&yR))#X7}USoUCSGWzv+ z&=Xrsth2t~HxCMw-m;5BOTv`A1g28$9vNA%yk3OJwY@#3J~+P*4qu0~Yr9@%b1q*Q z9NIrWI&${b)7wdXon@zrR^M3gTc(~Ub9hJt9+<~d?#}ww*u9Si*>*mz+aouW(>FgN zTY>g?8%bqhqpHvE6Cs_ak-5C=R@aS`mY=?jz7#*chvx}*%ysMqrPt!d6SoqfUQo^Q zM{wMnMsP#e5hL&f-~*L(pieeq%9G*+GZoJ+4#a^5i?ck+aC3l)>YJ?NDI~Nbk4eqE z4i=NIkW+nv57EJ)BIpw^zrwZW4_y@Pjpq3a+rwev?F4E7RO@ht%J|U6P~`@pr0R|O zlL4pK8Jx9K>nmGW-HE)Q+@j>+AWABVTM^p`niN-)qfihc5O91xGf1*Ip$rF2)#rni zTQm3_KYp^=9M3gE|zXgf61pd5ueFR^570mZ0FE5;0z#^^~sP$~pbF_LND)bRs zTNXjZ`%3Rd`h4pbuCM)LZ?}%tfy8awrw&3)R*ok zJ6M61(g>R2Xryz^y7_InbmFN5^Hw@#euV$iv!XU0f_bx>T-2qwR1uT^n0W8HlZ(}M(7d&p6D zy1^vDs$_bI`(fq$p+d1hh-;Kv6UvWU$)RGg)R?Z2aF(i+`SA54x*eWLN?V7)|@ ztzvbiGBcfw-#wJe4dqn-DCN#`#8nd8);hVQgK4A*Yy3Xy7{t=`3oe`KDHf`bBH1=f zNPRus#iPR&BXoll+y@NPzVrizAhALM0i{w8dVQ5 z&zo=e_EN*VMkhjgoJf7(%cVvAy`BajK74FzEn~F-(P{wA5aWw`Bg?jg+|@gqpY1GE zb;;nabQdLq>kuj3HCpcC+4Ki4)YXGwwV{0QJ=KD`WVvuKDE9z+Q7N+dqr0Sl@QVo< z-+|Y@PmQ+g$(Kzt+o!15{(8pmtnfRDfF#DJUl=i|HuVf4e4QW_Bt6DM|9PQuelVbi zo<#PwRYAUiUgZX4N7=}fAo^dFxGInFYc`xXF%6fG6}Ia4&z)BfM-XH89KF5UCtR6E zXMOCD4Mo&bk&p?A&;Em1ADrdB&Z!L_Beo&*#!fJBMLNA}ORr(18}n>>e7^|v)eiC9uWLetYc zL85wdn~!o1CO0Yg6^E}+^wX7V8pg-5<>y|LRJg<}M-^kR>l#*QkzhOiJr~tYp+(Cd z+f^TfZ^XN-O$l*9$w1_L&$}%Cp67nFcms9F7J0cr-R`x) zjT~RT1AkN0?m(;;T!KOQz#z5&Gm3}MDBQ5PI5Bab>OHUQbV)c_wd%mBUnJ z5B*W!89bdo_ZZ$0We-s@y<#X<@YMIPU{_@XJ^wOBY)GEwS)=1HxSn^?G20{Fw3pjW&ufFl%!j|4UZbdYIuu3f; z076y{-b{xAy;KIOx%mh1-eQy7KCkW_*Kcoce#$M>%XwQZj85llZytM?(E;!pR|}d7 zUKw&a&fQ#mGVSJOCo?8j#bbh;$UB1QyyvRX%f-6R>n_<~cYZM8O%} zcUE$*JL}Sx@LJ$$+q$$Ql##yiRIHdQZHUH)2D@`5E7K@sQ}H}@rMj}*o3zSnu2?hF zMJc1dAbUBRs${dKmCH8Y9wl2MS%JCQz1PEOykWPxVQtd>LGsGfmGE;>%qikmS18lE zD&bfA{V`aRjVoZ*+(jjA-vJc}U6*No*&j9c!}zuT8hanAL`&Xz_G$us;C!u7HFP<5 zQL(Xv1cAuv$xPF!6kNL8(MCWBAWNd1%OkG)3$jSDNug9svk{Awef9T<6$GeI)yR?b zzKF%I0fZ}78T9^YmHcx5o++k}R1%)s0yz;SsckN!Qm~o}z=FBUSck!MG9Uc<*F!_; zka3jjkl&Tb{x zR&+v<7(*>XP94nIzGHqjVnb?r%x@hC=dA0=YQ8>9O~LT4UE$`p^h+`qzCO%<wL@7Td3vKe61^&q3<2lQU+l}++1S|+}|+psaO!9#_wCdrr(7kyTgZW^L7 zPh%3d(!-4LA>)ZLBl3c>y{Gfky8p!qKmK?~QP>jgInbj~MHHv)o&}cVG*}b4Q{eJ*+K={#1kRm1}`%(17tX+k7RL z$p+TFn4;voO20Xt9=F^t|3=)`|CF!c&pD^Ic1GVBjVC)*?!{DRF0e**^!)IKjIZ>* zc=jsq*0vO z!0gs!zHDmwcP1w^fKK#z?N{|;x2RnJ0OY_D%}r+#q#nO;$u)x9MMW!5Fp+q^jS#P6i?=zim{W=tCmXaI=aVLOR=_B%R?qH5z zh0Q$$f68v;OSXYjr6;oDl#$6UVn)V>EV~#o3`Q|^m_H!ZB@w4bDnWAb>tR&ZVwWBD zF8q+~x;?)TZj|-$<1sHw`1$=|9N5J(BDq&}D!`ecV{0 zPTMejBUY=pen^{ZDWJ?s0YmG-p&>t9Hm?X1MnRJG2-za?<^dqR>7?<*k+~yJ%uVlh zQ3DHA*R3thZl9W)s@7gy7$t3fp>B-mZ1E#cJaHtnaC>Dcp7-M~s^Qn(*pB8B3GGCRw+xDE-j4aa*zY$j8{(mfJ;iI^G32zHPY#S zecR|lo-Zn8vf)IAi=Xf)me9pWl8n9_DXk@-2~MO(VAiEjcq{FJ%N1SQ%!)C5O@+w5v4Z)GO7beejT-M0m*BoV?)%@(kr&HEkU_DBF=T z$-{^7wz|eeRPHTd0J^WsI8Mw=!BDy}{;qeCJ%m|xLcX*j@>!(Oi4*dy`^>whH!;6F z+wR}lblnR`Qr!(`Ld*T&R{uSX_t@X114vtI_dvxsA`RAM?@ye7_>1r40?4xF0ua2- zFP+c=7{kxnCpm(lq~+@Sbb$MG1fLGRU{J^6q4PMDWB{)9$&$;_YLXJ^85Gr`HzG=Z;1# zd<(5PrHx`e#+iYh`K#A=|?gkb4J#n)n&$#_{drI|4vmRii`Z*!|D z4#E?MB z8UASB$mY~N_r`{|$I(t99kFND=Ek=yTJ`E=FcR)A`t9ZwxRDd#>6uVG8J-!nBmWYk zm^a1h_UtZ)9G{UiZ+*Rb%zQ3B+P5xDvDPi4nPShuH^P)2AW znoJ2peI%LD{O8So3dIudz zY6+yJu?JceYl1n0bkaHp%a0b(BBxYnk=%&ILOu@GN{33Tl5#z3LS*sm`uj7wYl6AKD?(6I!=!w(4OlrTxq6>wxgD zrLryUC!5Kh*6K4>RLFER#!8^KXI}-lZ$0EI&yr;TFA!XQ;=OSnJ7WP=S9f&{w_G~s zFYv~;hBwvLs3B4h(sASRw~c9rpie}*3hm1o8o2F@)w20!$A9((`c+?ueh`7EGv(6kXnm?04CUSL8z1%^3|Dh& zhK42^`}g$3V#Sf+{WlH|t;tox2erIOaQwdjeIi-1lAq#P`CcfA>=af#4`<}vWW57- znn(s6<>d~1_7hrx3NlNrJ(^&54C9rjSr4{2EM}xDZ6vckF*FH=Un3MhWFhM z+VqWTiFtWS#{}PtcVf<)mwFJ20IWhM#uTI=2bYh@u2m*4QlLHlE%7xbdX>+UP7Knd zo~bQO(pYprZ2XxO4*9lWZZv;3*t^gjzy(R^Mcf4Iam$I~yDiZ9XNiB*HAwFw>p~Yb z3>xpS6E`R9h_7md%*dK}sWkBP(*twy-pnQoglNFEhI)FevZOmiV%=`A-`~viOIf^r zbxi8?d36Q#82;A|;SGHZKc3{0YP&>Kq0OW&lAer#J*yK0We|&9#Y3i_Xn&i87D_Hj ztKEWh{F6%D42DSe3Wa7PRrgwdpsTNMezDNqoh2Xu-6!u1h3=H}@KET` zAv%BpO6~G%t1-P&vyzxk`nr=iN7J`K*Cv(9r`y}1El{`Eu-jt1l{KIr8@uh(u)C&z6yyB+-f zOSv3)0jN>N_uP%=MhBt{j)7*}}z(vs_K?gRSn7LV1U-lgeMvVl9`E<8oD4 z_Q0`D8>EOF2B0h;q@Ng{#u7vqOZ5880Rl|f-WWvVeS*IwqZ>N@#;dQWkA#{JfSnKR z+7(>1-fukaHh&NT{PNgkm#N>r_&Wz&cjorBYVc(iUT-XU*w`2!e1U;UuoE0=QXaXTZVMIInN^x7uFYf@t39!HT3w{z<~?c4z0xU_Bfjd zr@tyLD64x?4p;16gPhlW)Ry~1bHu7bmg?w0TiolbYcHu@R956JRqs7Kfu0-;Sw(7S z@fTH62S=1kE@5k92^crP*z=2usyBCHKneB;y^r=L`19mKo0~BOe^?hNr#@;{t_3eY z#`?7p8G1fD!&)X>jlkefdlfdbUv~R5&wS{_XP$CCbGZ-nqwfxlh zeLj9@`Kj^y7TU;lg9Ma2LUx11pjJ>{4O}M-T|IJjnZCBC#3ed{RAsC( z2#x6dAG`nlk2UXT;li%iE@j%bPpK~Bq5Asu>$hBRuznf(v|fqg5fzcW@4v1E8T;H+ zl?q>t+CbMo*4Mvdef{7CTh>2VYFFN)Rbb#0?1$=)iJ@f#*(Y`2Il1Rh9%vw%u}aF` zvrGjyHwTacoj&*C$lS=t+&AQD#8q48vivKR4heP4lv-F2vFXN#V zdmO-TgC`+{&=9T6q2_cepohAs4FV_;w2MpYjfDIp`luB+*t^0sO=t5wfRx;xk2a}g1YMx1^{aLRupKz!zY+P=Kmzli(AZ%yO;Mx9(Bpalo(XjSiqPDcKuT`{C zQA=<(i_2M7LvcyyX}C^_pGsT)sNqvjLOF0eK2(Z-B|Z}W8fH5P->To)Rox z?#YGy$2p-KlM{Z0H$(B`qzs=dafUpJ^|f=tXA}4>QX_OwxHP0YR7%zQ!DH*#0{tU6>8AuXlY1MrTAZangh$YoSRgaG+PBQx zy2~SAy;lTW$hrGD5p$09oc6b;?X#NHsZQv)@pG2U5*7ZVw|nV2FGaB`^u4+Qee*8* z2xvB_LajB+GK4P*54vb3o;#uy!Sgc47_t5A>J@F(UIAQL2%+WN8SQYE!L06N?M*un zNC8Q;3u)J}_slKfn6uyQIFE)Lzmsl$U1qpi3PC^RNTq_0XnU73KZtDg(0E_bu_EL` zDHTYjh&=So?U|3c)>|WG`+;ye_TMbC`LqZjevo#kiK23y6?J8$o-RaW(s_7e(cc9N zE;)dwp=?$(1FB*Pk2?PaoL3!h8MLUktC2Nrr1+maoyeQ#1!M9u7p#hZjDMwbft~)J z^UQqW>3HzGATP0vs}unr+^AD-t1; zZ=?zl#1?O((A^xa{(NUoDShSAmJ1dl*6{GchS^Px#@eBA;KUa#J`k?3dJk{y9Z&bn zE?udP$qza^=hBo)%Qt^NFgp796_?CzDit6*&Qz;6ZNBo|wSjM}*#SPYP>POy^I@lg z{9ZM$5+HvB^Qc7_zBcwHt8mU0G9TPNbxYW&1G+V;!Ie)0aaIXZrk;8(?B zh^D#C??EH?&@U4G>dK$fHr6GX(#u_@y*<8j$OMm=$4Og2P&vv}uJH{l#W7?ZIiliEQ{^uVCxi>A->Up!+wW@Nsz z3o%8B>*@6lptoSmajIierLKT4;IlLHzDo+-wiC1$GR27TD1nthi$Vt&mH@PDm;s>= zr0`ueU#iaKEdwM7_hB&P2IKSwSqKt%uyYQEvXgWnKq}T|^PylZE^%!iXymJn3GPh^ zRMaipA3Zo^$b(<>E?4LfH7kLRZJ-=^_Hdw8-+}9H?I%~Qot45CBe)wue4g1Se6{im zIuWtT4Sd}N_4?HCCa&G#;)CbaHAwK{sewjgU`h?)6!6(4V>pci!53P~QetOVdbqj( zbsdDv)F=l!qi_#E%@ykNuT4=%!*A{!%_d_eDsU7+&F*Z>G8XY7jMlf*cco9zJ9JLa z`JEFwp!czAqgHEtPFBN^jZU7-73yvhOb;7^bYvXDPYOx-0rybg)lX3~)O5En%DvFc zOB6*15+}SOs^d+J_wO3Fkkf&ep3ab}^g3&0|9`}9pqfRhcbUrNOzamduGs;?gQ3vHH zrp6rjutScwfkJ3t(;P6O-2ZiYcD90_+FhjMZ!%525Q$7pL92u=YG+rl%#xA+5fErbiDBtGpG=C=d;p2== zKmPD*jjQR$8T=gc60=EV$25{yW~025p|sMq7-f=%L^_g5kMgD^Oj@0p!m&0sK+JS; zez9(#(u6F3eQ}-vB=>G6C+!@a_otmgu-+IA7U(qp{HUHy?zE6=kv*Su_QykqnR>fE zP2D5-w?6f0DG9mCIg=0-qYQ>ksOZxfg0*830LZ!ngtDgh)p5jLzlae-D!mI_ zVL7TZ-ssKt3ARRj8``$j&JAzN85>U9+&G4W1iWdgTngjfnF&O9gUJx0r=>CKNIgJ!dl9UJ(Mb}|upV?-+L#v?U50_z>Y z;~d~0|x^*ccA%H}Tg~D%ykuVlx2})mT)jO{xL-%&OWJi=e zq;A!$c+FoQvXz^N+x1dT<+ABLyq7nrt0U?j_k#m+6cE8NkZrK(hKjL)4?cmqz53cG z@KRkSb6+z;iVaRLFt!uS8X4j!4r6r?D_pyG=~^55#aDi#Ty-f@!&(O%Sc{bKAgRb3 z5&nND*PH(LT)FY4+wC$7cw}w!VXiM?$JH%sZG$L6!oEG){BKE|ek%;QV zkEqer+h3go5qww;zsn;09ta>a)T|ejYW~69SLs?qC+CoJ643SPM;5q_Nj%k5g__i0 zP7P-gpT_d|Md1J?))Lqr{AWrwi$Fn9+zieT6ns z%bwqhm$Y-;^3&7uPCxyV4q7~5S%=UZ$qT8fS^2K{$*P6k$fldpRG${c4eJ38&i}W0 zFY<|mLNV3PeVyKD75@#xl@$|jQeRL^c1CM`#n~ee!E;`l+`{%Xd)N88umR-O!51i3 z={N*#_gck||2wYJSUhAEv-@PdX0=|q)eKLaWY;fIM)9Zn`u6uu#dn6n*-^w#w{bZ5Hi%3wvX6qJ%u47W|nD~h-6iH zP|fX~>)K?+p@krI&A308K1Q(vp?Znu=2)v)=ZgOHsV_Rm1dwA`BkE3(dCdn#Y_#p9 zbP<5vO4w+8`Y*zZF1ZMaW!R#|z|Bb$BWc$Uw6%y3b z2Z=a$7$f4R*4^Uul1YzZ6A1)xxp#otP_p#g-Lo+rZ$6fk4vI=rQ7u~r=H@taL)DpRHu_OF-uxMQwYZx!^iH>3_$F?`7j!-m8-_Ry|6%FYxe6#Yja&L1NYklBT2Y(?a|O+J~vdT+(L%6k#upTW6^~|rQB0FOcA^J zZmoaH1;k%(IZ@ZyR1KCVyQhW=^;i#h@NB>g6qAXlKNe4S#Z8KiXUnzGXg0kYOmk3Q z1D7K3!BsvYgBUipxH2bnW~2sRdYBiizsUe&O&|@JW~{I}Y$8*3Os7B03K^}s^IjD? z!^QCl;2)!-)!O6LG72A{?p2@E>$g7gowFPrf5MLNE=R0#V%p7II?x;TK9=;y)xKF1 z6ek!?6xj(iMiB*1W|#~GLQ*bq^5&}x%~zGRQ1;J{j2J^B^M3#Q(8%67_4e~+`}r!; zoEjcE@4S%_H9T_PUImuw6!H8$#PgFnlUxK2OC~8XV$I9l?Du8BhH(GN13s;5%T~8( zyuprLN44}D7Xp5tbtq}64}9yLv^#Pr5qTHoDsGvzl811bp7g(vR!-;zbsK=N)Pv32 zRPz+5sgw%()((E=h~P+k+>^F1ykA(NbaY|G8LwS*ULKy@jxv1U;)!6ic^|nwEe#gn z!CB6_>Z}!-GX_J}EIRfe9b$a*A@uLytmTaC^zWAKsO@JL)M}oL+!9!%zQER_fq;ML z$Jn~L%ikINE#?yox?s>AWgcv#*YMs8q&)+$tcBEJg+qvosPcRwVxq|M0M2%Dz_^$m zQ_(;notfS^I{LA7siI%DC@0{=QkkQpqkpyzj7{_D4}3uVEYsiLng5k_se&**DEU>Y zy$Q1&b~Zb}u2)^v9@p2?rq}B#hAA1>6djrzm`qS=W`b8pDNHqV;>>@BxqtsP^1pdt z|Ni~|L*Dbrt9MGhBICbuhrGIol5xyY`zQN3Zp!Qjx?=iLncj&2R#`89>aU#UXQJxC z+W)M5GT;1W*BAf1{^vWJpHjy+pZfHiN^G8=-8%YT*Ee6Ceqj2$&4G^Bn#IkV?|I?W zsTZXEq9=LdzyeWJVr{)w&@3%2Zem=cOC?&Kt%xnoI-mnW;?k3csKPvC=E_5Ihka5_ zPd{c@Q{`*wU{nVNeG;v0Jsed4D3;aG&LVc>*fhhO$M^3Y8ln2Zo||?R3seg$lJIR6 zUCS<7m~;N2ksXz1t2;(?P7xofOS>yOch3m@1;r}{E%?%$_;_eM?hu+vT7z+nz4li` zr}FvGcoE78YtT?b!}splGk4yHi``Patowh#OP!9zaO%zWKU=wMco@oe|IqMd{m=Ga zHpByP>MR#Gr+T0g(s;XqFOMSVk+PtT;lW+R^Iy?EgPD(WHppK`g{~|HZn>*gp@t%$kcl;@~ zjORYozBUOaiAY1P_IbAuWnWy4Ew7r0rs@EHld@5!RAZf30%k*QY?al9XUYWeX#Grn zDjpK?ONx`Os3yhl>%o;pifKq4+9jvdQcXKF+c-k+TakNJ*{*-s{x0i2GRlO+c{yx{ zQgAIeiF_pMu1PiWogl@9MdwY93H`E5c>@OwBS{XFKdc$#_?ICHqZ)SW) zD%zFLW|R4NOqldBFbrQX=rhDq7tBQc{#0_NcK&w;G*Qa{jH3R)uS()-7xy~oyN7$7 z=AC}=8E*{vb0n!UJp4K8E~yQEP*lhjv^o+$Ob~nFwWPI#{H8frj1LWs4t5n3WpttW z_Z55Ac2c_CAFOrv_oh(UBjwp_HV_&MotMQJ3_7INgaARBki$U!58<@i)y2q$!r!sG zKL90!aJ5VSUm zM@I7M^fEHwLuZ8lDw{S&{dBInOtCaI@084yowmBB_~&KgcA|GdlN`)uM7SR4?H~F= zcJuuwPcn4%IlgFIrJCf04Dh*?^At==nO2cJVrMdjy!3vN_1dCQ(b*x$IcA5xVGXXi zad3@wmjIjYvUW~3c1G@ORU)OzJvlSr-_>}Tf8)?cjxQ{Xd-X;+m+HuoGjl#UBIJU} zP3SAPRu_^_T8N8Q0L0U@HP}J|3*vRwbmhiOX8q{K*#lFlWY8pznc22ApbGbx#4O)S zW*qw(#G;QzbkeZ%-f)P)V=`2g7S1d=Y>0WQ)q~phFXA#?RNqy9F zfj74=>2sa1)qUzQT3d`hz;|#j_0mlm3zA72+c>go ztu)Rey_TbHe=n_!ED_9c)s>N=8+nWz4C!yNeGJ#oDFKxFAIaKUbT{$OaXyg>F;wF^M(FuqN~_VifBBXJ+hcvJ7fh8m-Y-_ zx@T-tU?kO3?DnZ$X1rR;q@!fHRr~RD6TB^#OFjAXXMg1;6^p5gFL>VQvopcDI{j~8 z+N}0Jwe_El#3Xf5(Q~pBy$RKy=zaCoSMzFX^LhC*&MW`mAO7keeLraaoiRAl{Fat+ zf5EjTG`?+yBO)l;z{<4gU-^Wvg6I_uMGz+v)z?-POR%7j(J6cB4E2dLa}R$hJnzl# zwBD2XY}ZAv2pZ$Flv*Kg#>V>`H0tv^$*~9y)_`b1Hxn`)d0Kh<&MT3^!Qhnz)#c)G zLU1FZ`;KqhhCH=i``@qqZ*a6<0*{dEINI?@$M1H0yyNR?joPZNXEY3q3-&E7u?4d% z*ORSh#BHn>V|^#(ZgK%l$wB+v{)Ts2mLV31)(=G{ zdk^%Ix)kBi`-|qoL!3l%5VRBub=O#HS^Qa)N-WNXl6PtLOM?lwQP6TT=VPVE$uT#=LW@oHpm3;%bfg5;#7I`E_&Oao zNaf>1Dibrh3w}z^#w?%X3#Ai&G$no&AgeZ!8%ZYC?(7d66dm-B4VZ!OINV76K`U86 zB8T#QiEvh$5b*Wo44dLUev-99aAa6UO7-?9{5?zpv%4?FRV5sCE8cv|3}?e-oBBXe zlMb@OW~|iP9nHG&Sn~unpQjZYiB#HU5y4kP<3rJ6ECpoC=%=4hQltlX=zpqtw3F-~ zsvY6ctr`aLBxv+lN&MMhm@@n?myDJ~!p+z6oud>B zbu*LoP2-aG6^5ki&zywZKSN+nFnC54^@x0kc`-OMKX`-5X?A6$LOfJuBRl+IasI~*i0EQ$)YsWa47i1t${dkv_^>LuS~B zI7YBy<`UKLXkVh+Fv|EA84(`{N{8s9Nh*o-n}W3lJr+e@I4L}xAdJ7FLUgY|+!DM7 znF%e!t-m#G$gYsNE;CCMc+u(mWuDY0t5_c*AO?bc>>;njT4aW>pJ;#3BB~$z;T0ZbCBdNcD84*`9-g#4)G$#({Oz^P?j(r7iD2usF3pU5Hn{I26zC zKad|9X%t3=#&h;Qu2t4F?|Qo=??4xaVgAZ`hIEuw41EwG$>JYimJ^C-2}8+`7dus= zl^(K~ixjPmM@ufW#e;0qx`Q@h5w^0MF;&_36jtk&nWMsNBhq8nnDseR&8$_#<5Tn+}s2W~VpWWRP z{Lro4-D}2Xcb81{pk%li!u}Wo{NhhBuWish}zMqJwSQA!|=?=F& zb+Kg5_=08x7%!2Qh@Gr-qD`#g5Qq}ZzO-X6BcpXibOi2RE?%cVEvwO#x=eOOtUB*VvP$O2#zG})YFkYjYQ7|8Uo1T#wXI~i(22; z>xlM&F@Izs#-?pd8qO$zyi4J!2^G>0va)|6QVAB*={4#}AJsE|gG@HxyKN@xF`3*^ zsT%Vh2PnA}j{QM6iKxnVO*D^!f3&Ha`{SrT5E(E&+0~g-1O-SrIrUY)@1!GCq22Ql z0i(w={MtdA_WXE)V|=OO?>qjbbu}%Ept|YP%!3r@UGd-vFjE@aFT-9oXzwapCL4wg zwIMcBskvDa=RTf}-4p|q`KDM}QExbQV+@=V&%_uXg)gx=t4kOle?)r!AN>6v{PgFY z_Ln`R{yk4-&roxN+C{E%tockVo&MbyVi7AHe}QY&I8lQNiH{pQH8%mV&=vMI9}{9T zO1f6MBn;fL1_d`L+t#6DhzA!n6Ga}JjrV3kg|?34+1XkLx}6Lz%-FeH8r8r)P#76$ zq#Gk6g#*+UOj7`0b_-?n9QGP57n1SOvTv#myFq?@>!~|)&gT#DBgb}g=_g0>{2O^P zJqpcJFn#Fr45DYCmMQ0-@m?73E7#Cq-b*M)Eah^l)h6PDt1bhFkhWi2mmyssJGQfbKQ)})ThO=Ij1ND4i%Z>I*=#$<;_+=D?)HLo9N(MtC%3ge zLzUFnn>Lcw8>=;=TD@^w^(kuerODGT=8QKV&G-t@{nzq)pL=Tz@F%CUom*WW^(wF3 z&yzoMl-OqI{CSkdU**tOr~C;HeM!QX+B;!c6MIv>#3h_6;Y(lL{2(Q@@c?e87U*#p z1cYaxb?+==A90PCR8C0IU$SDNWz%1X%4s!;v|*u<;btO`^bR7EG;)X@^d1x*Z<%S| zUKm`nW5+Gs#lz>F_n3iN9fiy*L@gF1Il-QIEfDJGp@ezU9Ug% zx_!pJ%KZHHn|AIDRrc(;<>1E`M2M7CIgap2_$Xy*T4K7a$P+9b3@u(WMXYHSQMLY)v1l`TIQK|6+ zD(lD5qEU51ABRZmO~4K%;n^ka**yWDtaz+?zKpvMO`Ce1;+9{f<3v5qAMuVNQgky+ z@dl)`vixL`K1^BM5bJ|1*D`(eegp$0%IkSQD4iz@Gpj&#K(FTF0pZ3V#`GfAm>dMIkt1 zmtYc{qkus5-k1=N&ad-H#NW4WIucn_l;id-YVXH3rQDo`S`H2vzKex0BC@z9s5-fR zE7bgl;F?8oyIgGetAo5oa;~urr-|1u8+9IcK_XX4N!}KXPCUzwl;zO69=B>zD>W0M z+Kn*;DFfe_>|>!PT@h_CI(^`d+#RFqryU}}(+6(P-LZcCbkH>S8MhoVE5(9!p`Gul z_U3ZtdDc|-T%|!h&S?N@?OpZH)~}ai%-(kYRsPOgWw57|N|*a8)oI_a{6TnWyQi1m z29EF=xMrjR;8h(5LAu_FWRZHa11;-Wj8&f~T-sHk4QfnU>e7nQFV-zaxHoMYBYO6T zYRbi=8f-UY)*y?}=HL~6j_pqZeH1nr^jqT>hW{f)V) z4gLLlE}9>A!k`+kSA4!LYuCDBuo!{4czyPU;ybOI7B61E-XEBny7=PtJ$(xln+#e3 ziX!;aYlr5XxX(9R+}2+yl(tm*>C$xO-b3x_~Cz;|u? z!)Egf$yBv}^wO&?aw287FF>e8^~4j?5}Py92gWwX{dXQ9sdu0@y1v+LhHC1arjt%h z%~yawB%RsO(WnoKq~`Mr0H|hXOIEm8#D<2Xjrbw_b#4Z-xj{N6F zRz{(|N8E4Vxdt1+j+QYpi~;T^j~;U38KBxhBez$;SHLj&9jz3P4Zb_akVEP%4Xl#g z36y}YLU%odbvb(R#d~Zn+g?0xZf%wYV7$}4p1smqT)RX}l z$sq8(Q#b?jrBXc|a>}Lj^a4&Y{I=88bciff)SU5>KbbE~4-VGS^9x1PW0;fRM8~ps zaiUo>)Qkluw$Q-ihFzqc#pLO{_6q&^bs`pVk6Vs97a|3j#Rx*9H`C7spClUfiq&WA zo~q^VZPuoY-KU;1cJHrEoqB4j_AjM1)A!vsz2^M8?)uHU?oz$ewNj}@ZSGb2v*ZCu zu8o$GIt;g}Dg@yfjeTK`dXQ<6F34VOXPzq&=;_;n!P{V_4ux*^Jk;{Cidc8Fl@zQ# zb~hOLH-{)f8d*RX%A&Af#nIUQx9TVM@%vcwqq?f`@s8hO#JWK^rjZNSY%DmUV7By5 zaR$m-1Z;$UVHaA5oEKki40k50hKLtNk8I{sPzn~Y1jur-S@p~B7@-_H3qLjQz3t0q zk)5(*`j@=Z64%>HpMG*ej>E6A?tcyxI(tlp56C>9lgjy!;XbR6y4dfGh)XGgcgc+8 ziYB5XQ4RX6mz+@8A7wB#GzB=kXVx&11AmL*>%|l03p7kBTdRBdVJB1CDI4Zz;jRoD zW|B=7!Le{E?tRETv=H!Fo1M7d@~7<~5la4KT_24|Q!z*Z1_aDo;7`q<0h-Pp>rRZq zwIOr|f3BKMSytBSjabeo4z6GbJ4;~Le&sJh;~GVD?ZxWiUX`l39@Fpd$GJPh>)s1f zmTOnR6h|Y8sO7_xN5+(|HMRsxDPxPgs3ht_8x{#Ixj6V)xRL!Ht)qeSY)pLuxemd|WeUunhUUhB9$7`z>qbo?d_FS-fXy83Uc>XWnrb-(#$nL!LLYeAF@ zJ*o&^c=n>SNpiKuz(k6M)+;U&N%HI^VJjudm!v{^XYX21*E-kL^o316`jy-tuG|ZMNMS4y*y7R< z87r%=7Sa+PX^iF8SlB`v`7L6(g>00VMM3g;IXnqR*mu$nk16tF}${&n8%- z@Y>{dPh4_jVS?)5*88r~RNV2!$d2w@j`&Ti;0Nfu0TBP%K=h49uxl{Tg+DhPkNJ(h zL}COI#yI6I{*%L6I=M|%OB|1*4mXZ$-?%>wIxT&v#I_GK0SLeAmK{n0!E5@?I*8&%6OeGsu}7u{!z?arqc4w;s*7Ks*I!)%$cab zVr#T=OXN*f${K2dlB}y!u*A;%?_cOlCgHs7{K6N=BIWf77CDVxOmX1OnsOisl~ zwM(PxU^YZ!?HQQcxs@pbtkZ!0tM zq&6OWSlQy%9(6-w!9I-O)8{O}j$bZ^vER$+VX@Gwlol>ry7Y(0o`LEwOl-6XyGj8) z9B4^-+peqki*g*Vy@KpwsjNqiyRNH8jlHm!>&|*k?W(JcX^=+|wO_fDnjnP^GJC0G{ighi(8r@gMD3fLIPUDLQ*FW|}W4iv1P&K2RBhvxp zpFYz3vD+VtrSc{-z>S&tR7|}U2s6yaX?0@HOi?ZFDb5tPfz$|WQ^h^h7Zp?FL5!H; zRQ}UIv;8~$=_s0_)XEXgs0j984dmhiInmdUWu>)8+9ktfEGuJ%W=qdXe!zqXQADT= zybKGfHx9kM$D}ZJd((j23Nb6iF<_#`$ewb9O={AM{E9gz8~g4~rpD2hJ2&@KJM*a& zxSu@5Q#bRMN_FO|YBPUq`v4oNo$CGUq(5&i@w-YgIljCHWG}Nql=;EdQ4~Ot%)9?FNpPQ&jFIM3@tpB0-gM{rd|d5L=FZA;&o^H%jJLwHVh2I+ZWrJU*F5K4(u9fe0HWWA$k({00rVuv1vQtq2uzAwB2oe8 z2B88kT3}{Jv&`1=0LBB!ixP2Y$W0T}2#Y+uuNh~~yK8=+rk+jZ_ja2^f6c-C0&LP| zG&V5xy7rbt-}Hv_uDi&WqISJ9@aYp1%shRmQiE&zD{8PuZJFMlzG(OEkz%Lp!NKwNH-vlwKb$L;t=9yby?oepB~RV^VxK!t#_&!0(J3 zVFJ@h-MIJY_U-S!X>nxKsE=>o`~8#kT4V3R=LJVqZ*gC$yE?A5tC&5g}C*Z6V?S!;bm(=^NF=y16x@gf;SlJxr~(bJeF z5_Um6sInV@PCM588Hkw3V|MaATpgDbcuygj4+Y4A!j&|G-W)KUOs)agBKQI4t@uOZ zZ*?Xn-rblmrv29hN`Y$tuQj6Pw2#6Ez~H7MZh37s;f{@&1TCeyebDM$+nXP*re){m z@4Rg^7#w|Dr<;K>Th^tWT-V)1A2S*yJ?871^o?b;H%bP-%%{l|Ta|J2*`uTP-@fG| zGcF-oY(Lk%|GuO5s#lwPZ&KqYLvDJ8O=-S>pzeE~kEhLfmTz;O^=8NLuTEroTf}Fi zm#qhYExczRZ9WkCgmn`AKDcXVaGUl1_ottIu0?$IgGK*E7b&&BGc$AR$nf7SbD!~3 zY9jS9-teGmiI&uPgU&egguaY& zEd_-=!OOp3ARuMdAzjW~gHjwPd7HdP1Ki<%DJBFHi5@9IP&px?+$kWJoAkWXR= zdXDnruXO-|+pvbp#P7>6Fq~K>S@89wGw0Qlo!#jSxeP~t=cr2Bk-WXtd@4) ziQST74qZwWv>VU8mPoW$caH8n93^yAJHCtYg<$uhzH}b9o34{`OuFmDW#;vlN6NXn z_vpMc7b0~Sx`%>`Ze-x#H5Te5Z9_(oG^VG2=P20}>2wiH;e65c=aZj7_oeR)7($U9 zCCS`z5G7Nnzj^#3(3n@|E5WlDus@19gMi2qemC3WFFLhiCY}gyTDzA1D`&bhX{Thk zW!-(rKDsYY{k3pk3U9s*nF{q!v$)B<{#(%@!+5pN!`4~G1^BtRZj}XQD`QGi4hzgk zhpfb2)s9qLrs7AI&E^28VS2fZ2&@VruJLX8 zu9c`i9;3W%7b`;Zet*a&EFPMgLY)||+!qQyJT+~R4QNf-&U6LhQtrFK-+j!}?X9d4 zSr5F{WhYxxlm-%rWqs9NdaW+XH?+`GtK{lTV|T5}iD1ViriLo}VX}6rwVSpd5+0mT zt$KuS)ZSfF)vCdcyV6Oa1|#Uaw58%ClgHwjcT=4Z44&czGxYjBa(5C zyS*J8K&DT~Vkwq1s!TTBf>qHpaoqFBqx7S4b|O+$IsMT$Dk794{pB< zfBR>i*k4iiKJf&(3zZ-7QmH&Q!$0+zJiTx9^;GA3(QhS=(X26 zcF?DHqG6`V|GosSy>E5=UB{2;Q*)rsrDfYCNLk=#m9I*xJr6GO8AS%~d?u?m%o+$P zp^29Z(`Ghb(kazRbA$59Iv_4!0CHZb$DpKr5eZ$D#uLZvt?;M8JVL%>w z77Goh2MNTT%-SGr;}7{q5h77}MR7uPm3@HY$=9tjNaa-eJDX|fEv`A1B`<|6mj)m@ zqCDoQZo}vJ11AJWg(jt@HkkHQr*B{&7fM@6&~SLvsG^2P?c#wjNxV`=6+HtFpS|vg zAEo}sYn)b;@Ma-H5!4h({d8=ykufPt!n_P0)x*ek66hBB?$~{az=L~mraIB zh)5&&a18&y3O^>(06dJ~>jZwc2FfVIFeg>rbg=I^oARX-!Om1nh^Nu}LR3+Z*ho+n zIy;4;?LS$*=tZ$!cW#2nhy`1op>8E9`6UawPg|D8CPQs_0-_dETO@x_8dR{jIYqsGqkpnOt~2nC#v7=++rB#J9Z`)iGk+Be=O~_ zjx807f}|{r#l|CDoZJo%);FvVC;BkpxFNZotGfoWzMx?mmkidIhKB3W<4a41@44gk zJ%elOgB1!ol)Ad+YR$J4x06+}KuN{&+6@DYFe9q`>F0WigS~l0#$#eC+C8wg_&~Ay zf|)H7>#bB@G-CvPVfwWT2DpI=aVsR4_%=MdvIMvN?vC4-_agjd?%-Aj6%`bMV;$L% zo{+FO)160Ff;tkZr8p}*pTucnN-Ut37-Z5`2PQph1~z7y{sS_*^{f^hn?UYlwq@{e zJj2bE(MkMUr)OMfr=168pn#`{VIJ5~A)b8Z#ysYK$qzB-NUe~jHml>*;`gf>5g953 z$S=#=3e)^F9>0J3_ININ?19_@mato(G%sM3X?_u}Ik~huZ=6qnG@a^BY}iQt+@SN; zjcaQ7(leX@wadNd#?CH0Ki##_-r|UV+s2txP1^G=6q;f$vo+NfNf&0&_|Rn@n7J*{ zxiIiRXEM~4q^xhbFce(mur)||vRQXtuNz*C!5p?|o$-0M=+8tT{75dX8Bnr;{^)0o z3P>LkkC2Eb)GKru{R}9luOc3H2^ixFGli~&imvjt3}J0{4Tu+4hPt-Rboa`lMEs2y zhn9%ir8b#JEhO! zSO^gqMqGfMRZ@wL;-|#SnSD-@pHQk4X@!xh$p6^8#!wQ zfVjFGUe4kVY23jImQ-pUuE$4mA^aaCC#H197MOx=NKv5aS?dMC=t|LgBw{on{VE@{ zdvzk=ita4~cYMGV$csl6;mS-9a~6?MZky>W<0pnn-zlZb?qc~n+fJY;6SlBi2ZThc z?n(0@l;#hYqC~mEa;uQ!cWJ(A*pQVo&iTs*;z*!h?S?+>qp)cTdxytw#d=n#hC%o#957QUDj5+a^ z>#Q2BeQJ9bH3e8z3l@R`>fu6ylcJ-XzP(SEKVT#_P`z8b^|RXwERUa8m-q50AL(Sc z{#Nbf{kZR9^+^vya>50Tb3y=mQ>GcIdkF~g@*ntoi2m+(;X@u=WZAe6^EJ+$*!PWd0`wn#Bf(_$jN)B z_1#N26_&qq^jG?Kuz&~^O?y{ZXhgqmW7i^*iIrrwd)i@nz(cPwKQ(;q|0V5h;M+RO z`)}Px($U+|v8;E?vMkH8q{xb5%d+Gsj^nzn<2tShsY%^5O+!f2w3HJ1Mpi;8rL?7k zQo1g@j&&XDpzFH+yAHb14d_@ujJF3^$KDu!#>2z-Gsd&=XN*6i;`v_pk(0EP5Bq!` zCz6iNo6fn+k~z?RVW-@aT_e$oEV>Hlxn(T)TTc|0 z$$F2II$F}ewFeFt3ecn$3WcsM__=5#qYiYyu4Ta5U5^KCu62EULNY$$v)zXsoE_IG zMyk!c`HbW=;R8gNkmDFZ_{%c$Adk$kS6b@p`2&slg_Zk0``Pc$L#r$Jybex(Q$O089_7VANbuZRKuO(uszBSKQG@Iv zPsZoVcoiJ8(RZagS(vfH7AMPEuL%@JN~Ksl5Lj4^3mJ+$1EP)kd%*tS6EyH>9ZcmG8LkJP({w=8vbENp8Z9~n^ttVPIhKCzp(GydO=rIOK= z?OLMeF!E)V(DQ{@CLlpmZFif>ma&0>e@bRmHu;T#fp6l)$R>aC`Okmu;isQA?)Cfk z`b+8VH|c!){QiBE4@s*W2=L&_@^bfm3twB{w?y`C(2rivY&Q+MNjTOo#NWaF;QDI& zG~ok1Tr{$YR8nedvV<7YSJRupkQ-dl#8h+2J5Bh(Ig*PT<03`nz=lt#x?${FU;jZe zax@-43Ig3QWqx^ zMRPu|8ld_6qBk+4>4j7Mu$t8X5rR>y`TFesQ?i#bFCV!aaLI5!|IyOXk!$%JR!n@vq`TknNn+jEdD0|; z9EHtL*yV9A>R1*R+=%-yq#28iRLq$dF~cP8=!Dn3VpfYkO5Y%JAx>-YsbhUf;?ihg zdP*jcFU`(X8kIuln?^EP^31%5`r=lp>b39WsZ#TO>n(uAwZ(WHl!R5kGp*vg#|n?l zs-0KHlB%NGKSzS`g@J*W1(LB{-Jg}lsNhzu4G!)KnZ9jq-#Ak29DTOHeVs21O4>>< zm8I7)d!v(T2fLpAd?g=nrm2QIi3AbAQ>!OcOvH+gWyzyK=_+kPAVeS<8;_ql_F(3E zGo8#A8^$pay!k^5%h~ip!AEaC^}T43*@U8^nIyzf7UgU+$>5K2Ku)O`SZmb_(MTPe zjOrtg-*R{&N3?2eSrrP~wvCJ|Y*WXL{_}5qush?kV?1%6Sdqx9G@U$V~6+;dFFA}-@;mi3*86p=gEcXu{UzEcD2#9-E~L0%m_kEvdoLwchIQFwH> zl)j7=-h=*fvV!mHl{8V1AgLT_5G3)U%%JMnCZEPh6Lq|p%^25ECeJ7qp!YVG^XU(; zU1Ke}-_!K_=<%5Xu`QXa(ovP~4~Bx7fkue?Ou@>6S2d=_Hq&))Z=mH54whCS_?x7) zsoD2x6`6lVz!;hI=N6Li^^eq#Hwpx!Bj}m5iPY?p80dZY%9jP#CWW_nl!9^A;G%65 zSr?GAPgHK*Or^HBB@?k8y`q^TDK*GNq?OkDSV7*AI4Cr-gneZvnIr|pq(k&tp=`Fl z2-{CC*AT9As8a!_9;4J@p$5Leiu-|}Vq^Q&yp{83qYL#Dqfn;e+TN zDZm5)F$zTCSr0Z%Zq^j7QfrN+`a;yWY{0g&1Itk$Z^uHGJL@e5W4np>7s8}?VQ`1P z?DvPa4(7KljFGn!UX>CtE1*`QW63_tUk~?1YPdF{-a)t53|&RiO|btk@yS85%r`=ljh1}O*4#49#k`_rx!m|p1p zc}I_?tv;Ajm*o6|&t*?mVTO9H*s-=GGVqc0QCGD4Hs>>Jy>U~qRhQ_H7Wm7Jjf`QO zytz=V7H;;Jl8?-2RePrQ@d&jYuisRwMcYQH-joLtznCBnet~d<$3(vv5*vQ=>a`i5 zFWy-)WGcdAfFvVTlMcd7kM@eei{NgSJ#j6;xjzQPKS78ZDr5&kavw?OHuOg(UJbPh z+|gjbx##Y89c3N$UbVPBJ|PbzLxp`xfJftbZY=dkTNMAc^ZrPxV|zXv_Kr!FPB%ziCJPN9z`Ajub42UZ3*${vj9&N00c)15_s| zJrf9wJN2r^qhvvy^anD5Bhj!1vO0bSCr2WSmcWd21`pK~bAqPa)HYG(Xx&~sN&GM( zx2aRDMVg*C*;%H_-o&HVpGl~A7*+=BrbqD7`Q6s9AN7|o7{ZtT3TC{r$wS30wR+J- zozNEQGpWeYU*9{IAam661}{8zY?tp$%0>4_!GPsk8goaneci)5Juia@(BJO&#sjvY zs6RPsUe00BKqu-;T9gP&1cGB&qOf|Bd$UIFjc`@CAuJf_Ge)OlW#VzWj45O73G3nR z*V1dz4}aMDfXZanB2O6icAt)XC-R=?BWh89@))VO=W_i&U@89vy*Y&p+eYo0C3^2w zt~a@U)%Bq3_gqi8{+zy?(sORP-9(x<5-DF?fCxzNbC!LA1we>9>z(Ckju0@uv;Quo zcPSU({wcK?7J}WNi)=Hn@lBb(;^C?S`VntBFxJu_F>)$vwoRIXf+!y@5WM*o` zV|V|z#qmC3((WpL1z?);W@I@;HmKt}=RKbJot~2CRr6l&{Hr`E?=8E$-d(qN54cB0 z-13SW1gVYbmJxE#&jBu<_j=BoCt5v!p69sXeR!u_iQC8x|BhT<#PGbgMQVe`?8 zLfu4Ef!SO-Z&Jj9NDvY5$tfe@e7fb<;*(e>Fi4R z2{F{=4D!!MRE&$3v+0xQ#u1B|IiX2Y^C1_@ZIKi->HJcO+vT^~B@@Owc5SwtX7>p+ z$9W{}(jpMx60UKAW&q5CW->ER(N{lN1BOvBK{gmfV51gT7*ENv{b_no5>`zTbO;cD zZ%-RW&R?qMa)u|8qZYgoonSo3>2Ug^U$Y~O+|Ca~@h7BzbIOy2OsbA@ci5A~-9GYpuTKOPNA zb`mV$24zGkj=`w}Ef1(?0q%RQ!_=JMawQZ@h*}aej6}Kz{LxI@qBm8J!hf=Z1a4z{O14=>U76VuX^25_^m4<t z7NCL^i}n$eA>0}cMEU?6xt|UL#EA_=EpI5~^8{#*zOdnr4tQ+0cNjluBH$s)3!>K_ zi+Jp4IGjz`cz3;)C)}S*_y%c)lt^6US`=0(l4AOKqQD1&in^A{3~&g6qDJQJwn%W&$@^%3g@`>lbX;-_Peoe(T1&bO}kia#>F6RlOh67$PYLC_A`1=C4hx z|Jf!?V4>2k;?dglO|)XEGX@@(hi1%0r4{o`e+ZnYl}h454ypU_8@~~Z&rkRqQ0{8> z-XYc50#o|XQ0KOCIWTC&J>@bfJ~`qPdwO5>#~xVGpzpS4wZk~5o*@nBRvf`cv-jpI z-KOSN7sm4L-M8PKv8~&0N91Ae*+0of_`=&yV0IUIEdA&I-@Q7shUD%#^DB4iI8w!` z{qNoDQ=LwbO4o!}14~QffWX2X39t_M4zbD$E(m(UR$t#Qz1Ig;Rz!|7Iavn|a0(^_ z!&+UnL_F(Nd0C@vv2&j7E_{S8o+I8E@FW_$BetSc4JJp-HTc$2cxjPq-H3t90gHc2l1Ksb}}) z;)%DN00|Iz-CSc&pU)qd^VxmA=y|@d{olE}JFB=CY$|h{dPrEIZ0jg9>_M?7k#D_w z8zyqOKs@c$u2V0*KdteLxD(O#i=JLm%Pf?q-rgoAfcBVduJBFMWAz#uLRM-C+H9Yx zB_{f%Sbb-kWDoJ4Ne1v9UO)f5Z?g492_DH#jC%R#eeL(y;r0_Q!K{+YWvjLYf?{*K%o{K4H*>mH z!Ap(>$sl;qaL`krRO{$X4m)~EJ@cI-0hmX6@szX8C9=-vKhUYZaA2rf#16LyotqzQ zz^S|SA^|Y<5_c_TqwXO?+P-yWNU83?%qPyLw)!D=u_@Mh;74D4 zuWtm|c^a|5zwGu(pXXGFv$;_XQpCYV$_UA!`aqyBG5f=^9MgpxUHPbjoULPNj0hl&z=G~M7N zb;?=w61Vtsa&C5F!h!=RxJqD}H&W%REZWv8axWibW6qNBlJ+zC$PfR7)TP8SD`W1U zlwyC030BrbY+~*J#NyJ$WD?vL<_|#-2iFR+v05Vaxlo8y3k3pXa7ff^ON)(8A#dzo znJ*Ha!QGN+S#~X%>2%aJ`+{oUh0D=sJXqRVzxh>1ZhG|E*X&z-Rc`0(>dTIe;ptl$9ni#(cIkB3>DmR_?wrkxdIEwB>AnTRz3$xBU_ zeYCs;o_y_TpRsCL-S69W_xsG0z)q|a2fCjuxg{6~wX79RdcF(T;1;Ge*&ut!!J8g{-UAb< zE2mG&={I*2?34ao_BRHK{e&R$!`0e1Ufx$49wt}7%Hw^hY?)N1k*O6cTb4T%MO4}0 zP-t6F^+g6U!^4ZiTT)`+33Lp%OL?s5ciY49zU+mMsXy8}=dCp3fwjJTzR!c!9}XA$ zFj0Iy!rPSlNN0^=IiFpM#1e@R>9^Esg=|RJs4%idrw8CeJC%U0U`qy|h#E+bjg1!5 z9&<`y_>d%%m*>uO%Atz?_evAn5|9#&FG5T2CMWv74_lScxUmiPaD!NAVazcXIeKiEucPxi}dMq*K}s z*sK%3i)h1M7!$5SvQ3snxAy@hq3QLUwoQih=Hv#N5jPq$ryk+MGVPFGle)z?~hWa09`+3fowkt>?byCa~OdZDF{$mT=S z&0ln;7oFd}_}bT07alqP3b~pe%gH0}gKaZ==)6bId#sLy2#+9VcI3x-*iFAC$X(HU z?d+1RN!AgDcw z*&VBw-*Ly~duDeeDP?BEnCHpvec6@T1ibQtLm-Dlj>$ZH7e2EK@zstX%fy1ak}DDf zF;^r5OrDKc6FRqEU!JHr<;^`9T0ge~+sDWW)2a|Nx2U(`XXClDO3W3p3|mv`le4pt zOg556pxEh1E4oTy2(Up>)XURs%4VX;EW{({Y${kmb*ek3Q>fK5j)np74Z4;&0*iU| zAKiaW$06Ad5@{TSn>lF47P0;y7-!Ii{$O)!?Ikw;BUDn)IpGL2f?%j5lv&RSua>F} zi!fF23{8{o^nTY7dNy;DxDp#v4$wD=4BrI4$P}y6dQ5%qj zZTi~nkgW`Vm^Am%zO3m3Xzp=GU`hgY;rAgV08<4(1L2Js=z|3~Y{iZBSF{cuynW@i z8dd4$^M!r+DEbbd^}sZ8z}y{c5^KliOi zHf}-w3)(U{m5^3xCsXYtym-R%f&Y_@G$ik)Xv;Vgwf#T>P$Lzkhl%>F!?c1w@UdCu zTS;@10}FbAQ)&^yS@a1IDe@D%a|C;pO?A-9E_G%JQTvmPmF{<`<-_e-W;STpA2Kuc zQm0dl2km%snYY5tOZdx{8|pBueZ@{^$Dvr-3tu>ElEyz0KpqmuH!e}Ry3dUya?%yT* zLbDev?u7a(kS~`;-ZkXWo2_Uhwq3m@mlwc^}=6 ze(&P-_4S)>{_wimBj*ZHdzXo1BoK{#?&bKxUT!8^+3cXz-xnUtW?M<$URLfkQ?0?F zK?`d^ujIL&#ZXva<}1WTuW-HIbsA-Zhbm4dY2+lRF74Xsp$n1vXHgWma{v+gN}HlD zWgFlMcz!y}tVe{53TBUX5?7Ya|7lN)e|ppx7qVNe{c>~xBJb%opX}Y-X^{6Yi6zDi zo@fjix;H$8Hy0U!Z>=Kr7s<9b^+GhpzvYa%!_@o4vutH4Ge_EVZ32%n3|@$sv`Hx^ zA-zmnxx?m?_-(P}dGmMVfZYWrVRyCh9{ef^|^=cQ{Hy~Ll+n8m3SAG zf&+#K4VUOKUS7b}n)c+Bap_PdtY!Mm$n*m|7hw~<95nc^5(i1>J}&AIUB3620IN8( zn=&epMpQAH_gZ;SRkn<#8rg5oN2pTV+>4GBa!3rYS1VY=1ykf(F|^8*aAqx0|tW( zGV-~6?m&k+q?ugW`ZU}eG`-HJ@t8*pGrfW$Qma|k4=SZ<(Sz62pUZmco`ofx^JI(v z!xm3!0A44{GXT{{E@*E_C1(dx{xl2(@#bJ90Bf(|>3&NWlu>=b2z|--csx<9ChjTm zjJ?0g56VMu)TQ!Y;8%B-R4yrdghJgP#)@0s=oxnx%e#$<*WuLVQG)Y#{Iw3A+zlEG zOk4j*|43}wt2wMpA1w#j6$!Dzbdy!ZYwLv^wIs z?(0j=*S~NNV~+YW#8oeKPcz~=E*B<+JSUzRFKsuOWi!Sci^gD!|4W{pRCEN^!avsQ z{dpX%SEzK@Hu@$fUzNya+gm!rJDt4aS2D%25savj|HS{*_OrS~Z zC3B+BH1_)7iz<$Wl5h)qeNT>#KIwy_C`%F@YBsJm(o@L6F#L9CDFxNF2* z4C4-?7>^cLb8Hi|E1?A@Ie)HHD)N*O$Jn%nWiQr>C)O7h_U&80+PvduQr>&ag(i;z2jkQ~B3TZLHa@AbxgWMExDu4)n_0^R~rebzUmV1=E5XYX`f&_KN7&T6mfu~&; zT@C>Xng_v%0|T$6M*g4&535nSD`}Zbf=o%G3QEt|*mB*@Q;(ygpE`6=7^=&@aA&t@ z=ZDTKhJC)+o27WL^;0ro{Hvs?hXU(j#2B+%>PlzjwgR~fVY7-t?O!N{`=b%-%~8KE zd<>)JI>HH|h~g0I79P_Ju3h+xegQMqOVRJV1nmxoYhQ=Mr2(Eb!rkmJz%?M~iPMbe zpiXa{6OYkkNP1DnZp7^g(-#6tA97|L^LU{g4)@Q`N7EFXizZYp86{O;ugSpqP1yp+ zLCqdkIMbi(K9_KI-CV)`#wA7BMmSBKK5d21eEHP(z}2ymRq0QC>g@9OK4t0qDKefP z#o}?rB#@-Bssi#u0`-rIiGnYUJJX~3pAUXJmd(cMnRqO0%X?PUuef`0(Regl%67>> zgds=$L>98~d+t7TXlao)lYt_24{v9TYypM2&vnT4M!J+#eWUl#7$fu(+HiElk#=Q% zTx?oL2o!v0mT_E=G0p)Z2RUFIRxsvTv7v~Ujp+GVrvM{gbkt1m!}#FxIjQXB{A3D1 z)qF6W?9?rlcTjZQZ&>wgE}0I_M}qh0Tns>CUnNMb?JKfbJ9XJ4X&UpvItO;Yq4P2F z)@`I;NcH95iJv;#f6AG&xq9%J>~KteCYk;~J~kq}uQlB$sm{f|u; z7^T+o13Dxzkk1e3G8h9JfWbIXJ~;0jD`$}{oURY+8Q(E-feL2EN0?u;*sLJx$HX1L zKZYt`2xP*P%!59&J&M8LPK^4bK}2a0zY(H42^ok;4(6WzW{NgqieW6r1*lx6vGwef zYO$*_%7c^yVrs#F@(jHy9GtI(p8fU2Ka9NY;1+*0OOl0%7kp{n?CZ#!r$l1Jh#gbZ zrcFZ@9S+B@E)NYAuuFgEW&Ug`Rhhsg4*_^m5-q*nk)4IXme=@7S(Q}!D@*vApbaO^ zkM8HIWwH1BazkYmk|?^uQxvmQc!Wyk`C5N;V{DMJ%Cv{PoZQ^4d|^h?=8U*g=-eVD zfrrS%gNjTbHO0j0%s_M&^|#H^t%h-Hso5-*R$8r6adT0xUqQ<8r|vKAq9TGh2lV=y zRW(+c4w}21Wj2JSS6N*u_2j0L??21vl3tF@Fa2B(E+mC#Ghf|TlDUp4RP=k2YUINa zsgBD3bD8^Jf|@v;zAjyIwD)4>x<-M;MlqMZ{(5j4FF_^qrR4^Mmw}ywP?$mAl-Ut1 zvSPUr-!&H>pv~~b_u4HE_x^6$js}A=xFBS~O=yC#4`q#p#7aAI1JZu9ELAAmz0e!C zfiD$(OV%*pj7*D374V5C-UJ8Ig6`M2`w*2z?R$?MU0z;ZI##WCn4RyD5UOy?1}Q7559LGdEnBX&|>Y z*OE`BI)NUDp`+)r=|m5VaCQx17!|Y2QOP$*%ktPll8&fdc?BT<(Fq(6~;GV`g)iI!8cgvez_ZD z1L~cAznboI=Bv8voI_0S)$CLzL=2jg_3^WdR`=bOU-dbVhwi`gc}GLgS&fxav4K~@ zZs0QVU>MsAg~CEMnD+#a(^V~g3A@$wuL%gExBQs1APlL>UUGg&2 z#b1vk^8?g$2?qPrZFbxpFw=Q~ZVLihL!M8R_88YCBP9|bPf+t#Cd#GRR%K!dUqLjo zG*M~IE{W%ohjdaGX)P6>e%g^m#F{tASq$KfZ3sG8R7tM6T|Beo$aS^GEK3Jva|Nbh`Rk8#CgFhHfyW7jsVU&wlo^zvjIE1>eW0 zwm${IuLU;_7SUgjE>n#d4}sq7@Wzf-N#PgAKo3hG;=U|iQ4wP7C5i!(UOpHPX4%cb z3%`*v(;so0Liot2&IDH@ft&hMX`p}{=244}hWq-`52ux9cq(8gg70u=em9-7Um1*t zgUxQ`6_>gDz_+!+AM&W%R;`9vjeWJUW_$SOt{Jx04#>HXMM!HXB?6iX5g(h@-jfZs(MugFPzSgC$ah;?Mbcn$x0R~h! z0zoJ~I;}E)A}0&30bb^cEm*QOH0a3Z!RN=MU(37 z^%qvetFFM>l2B9k<)i6=NIF9DH)|TBYHqZl(gUO2&taXtj#UxfBi}9QCD>+J%X>t> zJ@Z3Z>b=RHECTFoMXc@z>^@Gej&fMH#_7~$vTOHu_%6Syj*e0^wEF?dhAQ=I;MrIi zIwZSLsZl^oX0rAk&`denFrh7VY>kkB z^d8X0(#ymTgT-QM2_TUlR!s$n6a+eZ_B?#L6YvX&bMn0T-Mi<{Q|SkHNI3@;SiS1l zMN$SU9ei1|zfq7p_qu>)A{ud$=hDt^JFOtO8cM(uhV1qdor@0IQ9g3%^q^QuV5B`J(W_==$mKM%~q;cFGYu;m_oTFLljW0cQ)E)Pvz8} z9J&m1yXc@iXNdY8ZPbh>^#M8`zPC<0a~wTZtF4=-k@etB0K9anVCncc7|(&4z_vx$ zM&dsaNh_jt2I;DoWvz%}P#E#Z!@adfWmB$dA9B6}o)ZZ!v{lK?BUxwsIGd|J|KT%$ zJC15NLR~((|5inq%l8ifk$cuB1e}!^YFN`q@;QFl^U>)=Z-V-u-w1P#Knd*p| z`NDsH5Fx016U4(zH`GakIleLz$IJ|Gt-`o4@d%|$@B>g%_0;zG=+lrjwE|~*V zB=Dq;25|lPMvaJ@;n;vg3m+#YJAXl`Ra!lA0>>a;zC}h55Nv?WOO~V1~^TlJn-N3!*um3&S34(Q@;0Bg%G7~L$wB0$uxOtGCn8flNr%jTCjf4^&B~iqw zAQu=GIK5+|B^`)jg}(8r1Pct;~3qNowlwrN6zhVodd$%}RNC zx-&aDSxAJlgT?bt6vu8%CQ4(C#*K4}N4x*$#v3o$*!b-|Dm{1O(Xp{);s#Y5J8^z- zFl!|W6O%hT)6?bhV8$O!9P2);Zj>=AzK~mKvwc`513KGw4ZT~?9xznVZ0&O)tfGoh zeb$Fz0nQPvY>F=$_9m?;Mk~0$&G8Fmr&uur3mdHz&W=7MwHH$AyHI4pE_8i1*|ku4 zKt-Sjb(a_F6;H&7ET-ed`!dzcpA^7$(S$_qKyRScRZ4L{YoPDVXtq##ppcK4b2ZbT zH0o_7Ke#8qabNfTB>tYHx(+VH?zbMgF1bQoDC^#b9wHB!K1Jujsao*oAXmXPOEy6< zn9Dw7osOFsi3I3&xENh3hITNjrPt-iuIpXD?fOI4U%I~L`mXCg;LfvE2GeD$I$!No zR81>xn()Zlq7Jc;rUaKM@fPtjqG1)9sma9TkTI?%rYB2NJB{tCJ(1du4Kg`3Jz1EZ z98F9L|7Psmrq(Vf4?+(^Runi|H3psnQRr)u(#Kb+xG^>B#*saRT9)9q5>t|Bf*b4H zRqfG)6MEIBN=&tza=Hdy2F}Gn;*OxRl>tD(2|NuDoL~@vqhx!E7?JGLE}M*ylKwqW z(E&^Lj+QNQek5zM&8au{!KRYc`e0TQ0_4Qh8ZA%LZP1K~BgUsEQxom&n7flcT$NMP zsmXR?((y1zv&ns{A7hA65`lEnC#58`btg$6x3Iv-w{9UcaOQ9I+|Fd%&wsa8ovjsS zW{TC>2WDnkho}zcA%{ZJGLS8jrlCJ3gvUj?h2Imbrb)-}_|s{+3POd*gGq)1-6R^% zigqNqC;r(W`vwV5Z~#Qx4Es6wHLQ&3F9bmobLyJkOlKsYg<6wmF3(vo*Jo=*uBq0k zeSydT-X+ToxhR$~)vIBs(MyA3CZF@i5Kvcl?@#35Z&25P1+@FFIa#fy>X?-2Zg>3c zwej6cw?M_p;Uza$AO~P|_fgsokqht5neQdd5Ej4@<_QIaMa)g>23hiQYpBsa!ZhA~ zvDNx5Pb`HA<@ZY=%A7agDM^w`oInij5ReS4cjr6-uQ$u_C1*Q{Zz=K)sS6kI+yQD{ zy%|S>1n7EycSxcSz@*&C_4Kxt3+w5s$R9EM9r@!$W{+!zf>pSKf5ml&>u%QruHR&P z96FdOT>L$JilatOd8J#WrZkE`vtprD7o;a?dOdoa(8wd7bj(M(lN0hONvNkiO_!Fw z%&bVllingLq~p??#qEU+1dWk%5WQA9uvdzt@?UgX1SDfyF05hXh`r!oJ=+JLjd+sr z3|ULkXXr7r6Oxm0GFl84qse_hG~#gr9rkjvib;b}o{t>0>7Uu8lc>%aJS%UbN~9t%W%v*Ol&%D)GnlgaF@BV`1TwkCsX@Nz_gk()?Rp znV48voyb=Azy0{}T<-Mg(}xb7K3>JVrzBFZUj~^Q^32=2(Xn3ddZ+7mT~E56L9>wQ zP20;2uv5r-CUWLNrpQEGFZ|rh>4lS`knowPvD1>>I@Oq@Beh2h38cBmO8RJ4vetL0 zCO*Hi>@LAN(RYOvJ7LB}19n!+qMSvmYv-ItI#rQlOKSQKV#z10x9HRfdtUY?*#_ zjKmB?ZGr1DZ3qTnfX#aDJg1ZA9?E*I@kmJ!h6e;}q~8he>4N9jVa^KODEDJS3Y#;p zmmNL1-i|PJ%buKe!BaGhYdvODeu$pWJC9s!nBH?YVILWVQ{VuYyQ{%P-HJ4lT7{yX zl^xfL=r<&rzDO{|9LN}xa3eJ>6E%;7rx&N$6Iu=ty@EoUj=S&E?B9?0P z62B2MBB`akIPX$nS2SvZHE1kAX9>iK4{=%p0ZP+5RJ?dkVNR^zXtPjIbsvD#SNJej zpo@I|t3Ju!j;brVKjrq!t?HA}H1u<`JB*93ZHA-p@RHjatZr#V7pMG?CZ2CbeR7EU zLpj`Mbbp1^)2T&oH!21+eZ_O;y2rTgIbme|1y}x}>mG*3L)>qOg_y`p?t%VcLJP{A zqet)53+`hJ`pCsEx{W`2E~Cw75wN$^y!qdys)oL&7vEBPVX8l9o%f z1P~w&@v{4mtjuo>hJv>_vE%1|=ERh5Q*X{H>Me9XHc(Po<6&&cjAY27g;~~Z-40@= zkWtTSzlak%k=Qx?z=Z|NFlr#=&Iy2wC4?Lg6<4d@%4h-v2k508J|Vng zTlGOTC*VKWs+7;cDKvUlE23F0i-+ihYs5g{fjZyWhCHV`;{fBPaEO>f!OXIH+n)eP z&^~OqzzN9YN48Ckj(6rZHs-cfLI7w(Dw$87hI*$qXIuypLC0wIWsbqyQ>kp6+Q9u9 z>N|w1JQ*3goD!4lEItI`q1m7oM@no{7#Vqf;)xWGnnaM$l6a^-*l6LW)nxgMFen}+ zT)PXNCG{>W%f-U$Lz3U|Gz?#%(BHkIb+4(ae)ApE_YRgD^-wlIVX0x`1_d+Dr0fb~ z%F~)6EcDHLr|&g=<0c=2YS?E41KHrVhSPQzf#5w+|Qqddw5qMYY`g&AvboN?Y5sshKVrcK>?AbnesS`2rS*biY>_ z4NNVg>WX(X9r5^yVoJBxx=lp)ZQ*Ndx*l?UPI@>^AweJU$MJZyua-4Ba-_N6+Ee0m zd%-F}Ksx;o@P(r=NaR2QMe^uDTTNmXBH|}Sbm{JZ^kS`EC%gii>&nyHm8{&Z{7^O*L-x+UAH)o1cr;Ba7KA)O;)8}SkcRpx;6ux&8X)|!gwzMp0|5|{ z-cW!5p#1rRgXvhD2(O%k>Kl&&9?=6o79T6&B?`KWD@D>7SY*M&3Zpa@6Y`erWQZs8 za8SA<;qASz@QiJKwfo#K)bO?MH_kiH5hQ0m8>3fPXu!gHEZ6Cc@&(h~_rh;t^Z*U; zMy)GgYSQPhx_^1S15JruPwFj@L1SRRAX(h!=98}q!6zN$m5iC!;wOMV5xboRJp&n` z=|u--9LEx8x`}iN3ExghC`@H- z%iPEy(|9MGFs&wTuyG2TA`K@;Cy6nOz0*K7W$GNI>oNPtsA46ZImH1}lWa%#)T|Kn zK(V2;Ma95#zNzQ0i7xJ=qEuK7Br*JO>MgIWtx)7e8L5<^!jKHBy%(s+)iVn$1`BMFBWPHQr!WKo z@zE^2K1DnANk#iHNuiJk0|;aXcSE<(|AaY^SpZ-`uNk#hO6(8WF3dgRTGgl?y}%be z_3ECp3(0_+WVW!pws+4k49I|SApiDy>`Z2Iw+DvqxRo>aj*d>h)^~wtGDVq~)LgW! z?%lVg5_2P=;4~*qhG2_jk2Y#!Daj}KHtaa@^^5i$ARHdgk_;6e>%J2B^?XDT5LXiwWks zw(aLO8SB*VJKS{LZ*57Y7USsq;t;}Fo5`7Tsxa2D8Dz9^WPqWVb6f60zGSPB{EnHS z9IJif*=nI0hgQ_K!`7hB8Cwq`6DJs3IhnEPGg>)AC&a7gfa7Qc=_;&Bc^m~OuI~Fx zYt5)sTA!I&Tf46_yYDmmIJqk5-@<+0F82KEt7^vtyrp?&zos9>*i>LdP9;!nBV5CU*sBN6>%L>3hSWjniAc zh$uxZ?tMeT$Pj5GOtpp&?U|OlrLtFy6=#IVR(vDnHU*%Hg{c2vBtC&BS(i3pOUBhgdH){rf_T!u`_cw zE|zBMV2wZG9UW~<7DtyF+l!^ULR)8@ukOhqpGgE=1&Xs6<^iAYXR%DSqGItGiUs@e z@{u`7icxrLX^7Q!Uux?W18Xp1z%Kl=9%uVBIcux1wjXibps@) zZCF)cur(N(xF6X)72@bt&EsIV%&1 z#9(A@dK3NZ-#)9rE4bR<&mu}3?pZT)f>0~ly_dC*iOwdH>jppjijH#UNF`T z?l(UTq{IJd-O1E5>>9MAnZtLl&C8+{XR%V6KL90?iD#+SGFmgMk`AE1%(RZePysZa zZxVO<*;B@bI}Nh0$=JFGPw($?*WxGyq zE?>;&YZFr1!svd@T%RvhY7>P<;e)}i0a-Vj&zhbOpD;aL@)d&F#YNm;>9w`)vlDk7 zvGEn*r!lQKt{f(rq9kM_=L_}>t_07KWG0PwEuCz{aV&w1V4Wv=O)l43;?^q6J@5|z zxDm{ad4F8&^^XUHIs9gx7zBR7)Wns)1{=S;#P-I97PTLKea%i>#lLy%pvdeeM3^!Pa$4px2g^UCd79;h#8zN9AofZy z8uwz2(oA}$DeDH4`|j83xO^4=i$>9Xb!n;r`aaz#3gXYkHi;pab$y{7i}Y@+US0Cv^wtk3j!Z{6K!oO8{V z&Ny+LKR~Lul9(f;MdQIu<7+2X{T9iyxTX7*OAq`CSJ!Cl=AH67*Nz$wJaNk#F1=K# z$y@ec(ydH2?wxEfR+nm}E3?8Od=?9AkYPogd8$t6_7Dl!i#ebIs!=z=236}^ua3U3 zKGDXlkKTInG)c&Rt6DEAKh#j~?7r@nTXYQAvFlc02VZv`b{*56-xIDIiAUY;y3=(p zKH&GdJ^&*1!><3~`k3oaT%T}#foqW`fX_q(_NYd8;~;=sPu{e8Ct^r+1m33FlL7@3 z0Vh3n3PX{X^m7R!@WEV%?>9Nwo<=#uvnlIYF-e~NG-c&eZ35|K)D4Ngm)m?VO-~}Y zMoC^8CG2W)6mgXTho;yo0bvCD`G|z!P9|JNJci#z(Ev_tjJ7A()^3sx*yQ*4srHny z0*`?`tNi8+8SS?BCXn*H*+DhKFjuqT@QwhkRg<~Pd!skv(VKQsbi?Srbz)*tO|(7U z8MRY++ElEZP!GI%sq{r_AiV#;#w%lY`Bui>blEk=yb<#xU-`{%G|m=vMFBVy6xp?${VYEatsJsYWTu-s&WS+s1E=U3`Q$ z2Bgefg!%bKya7H-J8}#x;x(`jvZA-~I6D$PdwO56)if54bv#GVj;=8tU4x~rG`}x% z-O5M5VxzZLB}Hd|&s| z-ES$NRq@=t_dcS2{8!!Q|Frv$I--*`=2E0I~TZ*)hiM_dI`Zi};v&`OH4mZLR(h`hGV4}6^@Zn2l@7s3ir8k)N+poTQ>zE$z@8iCwVVWJ&Rp4UG@g*kXm<*eiV%YOV zUid7Wb*%4q>$Qj+x8zdFp2$P&w9^r5wlOg`yOggt7x3-6N~O-sLan+u(atov~_ zo~mw9sqSBgA>qj9DHx^ghWokxIoh;A6zLLeH*h702%nZ&jQ{qg6zHim-gBO25ALSp z09vP&CoIO4UPDX}cWh6~byjWe)H_ghsQ|dx=so~Q33^P!z{buct&N$5L*1ts1zDLD zdH0y>438Y6f{D=d@7G^s&e!YK*`DFm`%t$8^ZCl;B9qT#VQ9z>g+@~8cx&;{LgLYD zOpiC{<()tCjgXJv`rwoK^#l6k^3ImOVK=sT`Q(p?j?0C~Yy1gM+(*>45A=;>6Alx5 zE7KddfvIh4l=%5XU@rojbjo#`#s<8@bw4@n?{j?+-|WM#M_iAQCGb%s@}Idr?fQ(% z1)l@5F$Gahs!#EWEhXRevTP&ih$x%$l1TIBOV-J<0Iy=a1YbUtaH`nL)Ef7dX?Crd zAm1l7ya_*u}yneuPhu3>}{kR^jMeE(&$jz{sD~uC0H-$kpa+?+r)8US7p$I6B1Vh8+u!upHubam-Kv6w``l8exLo2Xtup|*xtGo zV7%xGZ=p|Jgho;!^2YouKx#Ba2||fxA|41-E5{x0a?}(F!HX#=5f@_yr6(8&KmQ&5 zY28Y#^?wWm!ri}GNb$E&SK}lFE!2(GsNKC8B{FKMdo*&xuGjhOKAcQ0q|^06UiPXl za0y%!_KuMj<{homp%Vyku@+-URL8_{_>Y`^#!56lQGB)OB5xSL00YF<)80vOG>8vQ zmn9TENb3}c7>VMDCuzQ(#}AOKRG>e|<|^5Y;8C*KN^UNLpIwHd5y??@b9Q~-TwyMq zuEwJj*`<=1j7?l}=(+qe<|dNSXj1m~7iVWy=u5f0D%R&no=Y?u@kBVBNMwg{y3Vas z*rWP(AAM%^15O^+zM=?FlHV5E>LG-Tfo>C_xqxK`NV^gVF_rKpWs}DK{Z5CsBLmk zUp057)bS;KkT+F4=XmEt(iYN>owm5Z$!f>Dl}sToN9w6F`=wf%?==xk2ud zdoyl|_FX$5CyMLyEy@Y`I&kevw~ubB=f91iB(2o9orczBLzPXg#s6_#ZX7mlKr508 ztJ>m-iIATnxItcAnSc*MS*N{WVA4R(9y_*e{j~r8`qG#F=JdMyWAdQFwy*o|ec`wG z`&8Nv+-@74Yp=~8nEAHK9k{#u99LG0M4zy%CkPlwe*0y_Aa7tEY6$ZZY~^P}2Tvj) z-H;wB1}G0i-1H?#gJcx$AYw{-$Mi@nDTbMhM)}8(X2k0~Z9|SgqY{HwG%URn`+f#g z^_?WNHYn&=hi2NodJx94{%Zg5@L=X@AUpNGzIdbXxipbZ|qR_i-UtuLYi*N%J_Yh!W)eHg+V$#7=u*6=B&P$-y9qaJ7d=2K;D7X zv>{Ogi51CBGXiCd(lZfCK3ZUNz=~V6446flN_wU4na(j{HtrN6G6t+xczVq@`)eeHc_uvyDc|2Xpek0a@3t%*R{Ya9Es*@+@<@Zf#`cAa}>^TZ0X zU}JET~?5z z{UqZ1kwp4vw#QK_eL7Ogm^u^k%1Fw9!xX?dW!J zY(u&Ln%t;JauG|iGclgB^eSnem~52@t|*6q#b{Kg8+l>3k}jn863GDny>=gquc}qr zbg-KpU{}BrK-b`qusY3ie93l}7~6tpW9~rII-HJH4@SsrWsZ0fm{fzfStMg-&bW`i zHRsP4YL45vw&0&LbMbVM2wOZ?!oQHFNOwFv<_iRfHw6M$oa0m;OrRx4Vd|aR$XU_; z@zo(LHT=oIg^~g$(U251vFTE_s)Jd_1wFH+KVHbN3zcBxCwel`;cxMwAzr~6g7Jc- zkUpke%i~mspqYhQ*>Rk-TW&&~PAk&`X-TIoWdg=W=!{Hx9!_gI?I}C4Gij_RHK<}~ zHCH1k(6Ezs-G;2gz>}L?ZRTX6jOJIqzDzwF{&LNr?TK5n#kd7#rLynl8`n$OLc~fI zX9?ZlUNVkr;Kj#ldCJ0sZlZd-eN(b;W;m6kTA)pEhbpU~Kq3(cG2JrWY_ThCBNPjT zq6yf|L#b3y7I>QA*igWGajL6`fn0~?jH)rljnM&6awX)9)<7LEq*Q_CKtKr)U-}Vi z1Xw7ZC2my`jOCW4F?>{Yu%7dq#~`G)I{reSVfgdWHw3)Tg-dGs{ic!i^+){^v%Xl= zH|93q=r)6UXDg-h5K^X8uFT>CR5v^e_e(VQ=1AXBPk&qmz0X=|z}t#MUU_Gv|9}ap zt#9X{kdLZ!eSJd!%7PQycKRgv7$m3B8AE67feAE$?bv|lF`m$hr$s&HC2F&%%3iTl zMUXNUaNdq2CACiOKE>^f$sU_8t(IRnH#c|J+$(n8HK)$AyzbOoY46Kkd#ssBn(Ez@ zFLoQ@K)B$E#uMFfwd=0AyLMW0>XwWcxu|W$#$Ue ziMHfMiGu3H4c!vNmpFY{9+zosJlQ>X;DkXfXtH52>rnL==|-jyPv#2MV6<`|(?qk2 z3Rwi$y(IkjwZqp}XS*MSRt5(y5GViqz1L5~J(gAL#DnSC<&PfQd+=7^@Rps7mp~4a z(S-c)R5JKRoAcR)C~Bd^3J@2b_zaZ?*RI{Sv{+CTP9=~-L{0a{r`D@;@o3$MWEWN- zfiPTmxlXDt8yi@9Fd>l7snzWmup(48Va`VAOEgFZG%+9TG;6hK61IGL4yK*`%LtID zm5Y*)<}7terNfKVmRwa|m+f=i{}@43uubF;OC!O0eRlD%nw(giWnMz3I^a63y2SH_ zoH(URON9W8{-W&PE1_Dj}A@deciv%7tT+gx&H%<(iQGsk2Znm=ut;{t}{L2u#;Y( zCyUMNkw(D@PT!f@Y!+!99O3%4q>mAM?CZk|$*kS!0yl&>u1 z<|>s+9xElTugqAXtU<6)2pT?r7^<^ia;#XL+Xezf!hg`oL*30$&{;;2hG~DjzN@;N zVn6Hc`qrgQU&nL(XP)aUqm(<-ZK{3Onh8kXi`*^wDcOS*RL&bDTjTPG|LXti+kdisXPO^z_!DM@RV{T?kV(e81nx(P9OeVv- zF`H%6)qQ{o#!_SBGu5gel~0by@n!{~(2^TW``2gYHj0U&`Pr4G8qBP4IL~U zGthvC;ji=Oh`s<^f_AoYq%xnwsTn+gCx%CvUC0%SGbkYPWHfBr-uyCCEaoJ}1|?K9 z2fo{{i0qXpc*lDwV{CBr5Ksr6CgHE4q4^ zV!G!@bk*_%p_wbG6+JA*XAcH{ktq4gq^LCGAY+q5iM$pq!4WD-Aa?@%A$YI_10%p9 z^gQ6qXE}UYWgXddG!;NaKQC|SQYi$qBNrhZlGYH#uL}%*k9Ms57G>pzm zOR!Mb-ukgk7f@qEuDGl_4?*x*YnId6Ue{!C9-oobf_GM2h5?^aOjM9$;Ycx zi$}!A<0j|%Gz`rfplLPg7YpF*6^qR+sM^gK(V2Nh>+o9bFP-fG>fYl#KQ0j#D4tW) zpUz|_Chne?IK0@bW+V+ZYNCBx){*Xq9Z|lqDev-$vrNxTpV8M08;2lUFrCF#(SwfBH?Ba*C^9<5VrjLVDOyiPBEs8e=v}pXqDFvW zd1igo&M6^ikrui3vI2m-+#U)@R~Z@;S@Tdb zdf>LS(w>;cb!7EMbphkD~WVkJAELi;;Kr zWQTuSea@M==MDz)dUhGghW5Z|vnQ0raU&Cl>u0*1<2x%`CMNHmoY=Q>T1&|3={}2H z*=0}2>T5PxDYH`Z?3^#-06@`Mou{Ykyp)b3+Re}FHE+;5%^O~%&xlU-=jc?@4#b&2 z#B1px64Ge{Zd7gPTP)FYsCK$|ctU+y-^Q2pJsiGZ5#YBZzc_YPki3^cB-JEy`O9@) zxv*`SX9|ItzETXIg=niu^iNS?OFIq0X=r^WWtN?dY)+J9-h2_oRGVidrmUXgzs`Wn z1o!RtXEQ6cYPDFLE$powt-#OH%rt|ZdaatSANweoMr5v#xOO6F<}zupOqI@o7qZ0O z`uMGL^N-KZ%^74Wq$|-Ry#2XgFhp6~x$a-Ztl^P-zW;)^B!c15(aQ7%ZubXQ+oVT= z>|MJdZH4>$neQggv(?bgk-R6?Beh7dD=+EcoAFcQQ|c1Hj6L$5lZQmOIr#l`ji{LfueQ~BZi?&X`_f6#dJ*umT9W;*qHHhVA`FBJAx z4=ybVbV@&mZOF~vBn~23BQvhQb$uV7e3GBmJyY=J>L#rdS_*+8%CJesbD`j7!bA`3im8ne(?>Vy=i*D_q+U(UzITlL`8gkhjUC zK1Mrn(Zm?}ZCNFK3OXizBRFPpkuip)O>vY9d4Zfz{_*qb?i>keC`pD?TnqZecK)dV z-N=b7NaCd!L;r>+Cj#!m^GR8-)I;`yRYjAk?j=o%Kb&h=@9e-LP&UAn7(kwx)pjlh8*3OxQQ37;7U{>t9ZmB|lC7ed znk{9Sg0(uRPUAHclqLkOD@IaG(hc{mIMO*S8DK#;7q}gD7k8}fGm`}?@`;hce5DL9 z2j*jJG-hxj{KAa~K_1!2N?`?X^L_oa2(wNw>@a}P%iH^o;C)u7%g%t>649fAXbvwFO!ryV0g$+=kGGm7OB?X=IL{OPrnTLZR|i4BpULx9SEM8*nZ@n`?U zSowdYstHD%mg#gQZC2=BB~DiHmD5S}#3elxu}B}HlS?v=1c@ELniOl*;4=Y%$xc9Q z=C6O)j^IeF&*pP^8=g426}V)1F8tvHOd64iQa)=W=eFb;i-4fk2~nE|6y zcam)e4e~-7f`8HiBDwVF7dfJ3iXMAO)jgmde}h_G_>F4iu~WC)a%|Q9$7jO|7T-c>Waj+YoXP}1zWL%5t<_~oJ)U@NENJ%my_VOQJ#g|3j}^DPcj;ws zcuYP2KbM!UI=XVd1zU}Cxfqw2Pt7atrVYw_1(0Lg_29})XRx!wqCqbTjruY z>Y3r1P+D~7hT*nSHwYV#@b-*pnx5{7bGE})es+7E?Xdf#jn~%lD|qpo_gApiajR&O zpTDUMuMTro&c8Zbd%;F=y~sVD)t4ozaXy-Y_CScfNO$(}$iz+2yIZoT|3BW|2EMJk zzW4XZY!fx*-iEO-l%&bR}yGEunP% z_jXz73M-*wtb@WWrF77B4;Q+@pxd~;?BTMm>)6BH#s+M#U0#fFw~jwi@B8~Za*{%~ zb@#qr*AJ4;qt5xA-|zeTK778PFMwF-reZovUzMk+l{NPFckRw<<=`@5Rl8Sh`7L!-28bqKJ?Pxtz-Mu(K^#|!yyUw;n)C-FEEcG5bTywW>GHRcuF1=CnAA6T+> z1;2e_;*$N#M_^CtJSc^cpAr*vbW}7h6tt~dg?aG&8rky7_n;P`N|3D=?!LJuF30gK z4E|l4tt5CD>Oglx#pkUL?O7gy6kjyr*pxf#R;F+`J%w5XFUNC!wq=T}qH?T^y$NHUiURXrX8ba5Ii}*$qY9sWzr6mHEaz z)27vmMpm9!i9}oCwV0zMWd*DO^TtLzLnCw^!yNujs}fJPm_~mccGAwr8Y})Ce!%6s zcZZ1s2X^?&<%YUyx-xv{J2kjaUc+|he^y%YL?V&x*La%EduV|K*)Mrbul7D19-MH0 zy1De`u%?~TE8TnR;jUaeyMnb@)|zQ|#lL%>+31OQR%mKYaF@y<;fPQAwolOnaq7Ba zimH1-&^I(KW_+c$eeNASJsI)^-pDLi3B52_EVkE^HE@2D@UudDCiQ`efWD6D3cnO~+i021OwVXD`!NJj|-2nD08 z*R!0U!dhCJ6=$kmg+`DP&630LJ@D#UGi?GyGcC>m7gBe^Oc6S9CLK|lWsMxg?Us^$ z`A$}`f>+dDUIj6(r`(DtuZU*w%I?{Vm`+U8)rwEPO9mL1ueD$_XzoUi2kD7g+;aW? zI>|X*DFIX$J%w-ODmmUip;c$jCH0uhVo5trovL0dyUdVihYloH#Jxb|13=nsDqcl5 z(qF7U=u5>QkXETy^cg0d7FX(C5-a2y{l4=jp!RiZhFj7H;1}p#IhQ3n0@LOKJY&i) zt%uBak2g6x>AWB_xC>Fg*q~cSj0e376P&Ayx#w+h?d&1PRa(ZC22R>cBxC;9_nT;& znSQbZm5++OKw2Q|BGri^#xX108}$TB0yPU!RM~^BiEf>&i-PNzOd(Lx#={YNsJ~Dj zj*mXJzn`+kVhV`b88xZ(9`D@(BHzR82th>%#n(Ym^%fwQjKTiw@r1p8R#?h!s4Fsl z_w-V+9f($)U}8JX4-{G#n0Cf4w-S zaYdO0%3^XxZV7E3IN{6y{wC@Nm4lRfF{~P}onSI?J+N5{S_lx9h7S0*_#%4`G*(A# zuP+#+@Nuu7*dh44z(96Gk?hutJtM8|{rJKAl@Ch3EVGJDRi zhRLH&s-C`rmuDk92z}A$Sw$!TZ=>yJvi^Lyk|e^$h5G$rKf1I(>@&eTq>0b0VSfDLqTGqrUye$jI@+x#Y*IQQb+>s2C+0k=+UuwWw_Vp@dSzPlg9?} zt*<|p@&v5Xo^+L#AgD^-1%_IrTusCjtV^VzQsfzwVlW;F#;E5E0~5{c@sq|(Ckk;4 z>N&~i@mN4MC?HKfWmlqJ(wpmsDwJU?NJIt#W{}Ow8;HfLK`$ksXx+LQD;9jd%%J+% zSYarW9xDzx52GXoZ4k>8?`BG)P2(}K-+Ij&r4Y-eS8a>Mps5P_lBoc-yuE7!k=Ce> zmQVwf%Qkv3?i3G_q~cc$^c7+-i_ubI4tk9nN9+){ zY6fCuGm*=xfnM$s>y5J-)7e-x4U3H@7E1u`QY6^^^q?IF5fJa(MX6nUrL+nCDct+t z%2~)-B6iFdiu6)VyB9)zo|Vay^LqBEf(`vTnfrbS21X5fKW*&`n=ll*y2k^?5n}

a0}gl5$qr?YAHsYgW-VD2pMPQZo-@baxM$B#SWakcAU6gVeW+A|W}&2p>|p14!Z>zN zjRx(`^S%(W(D#JH9;s|Bmi?$OdsCV2(_g>h3bl5{Ti&w9oAHJ{dtP`*?b-W6Xegwt zp;E0@(jPcuso44Q6K?p8H~YyCfw%gQZy^(|ghG{YhUUzwWnC2G$rn3sx?=6*Th`Xp z6>D#K%au9~@;JI}1#8aMIikW>3G5~2MMWvKh9{_5*P5xClDX68R%I-J5byeLF94!{7J9igGw_b-Tb7ileD6`w=-2COJMiBR? zq4PweqRv)GIufV+rv1p&a?XbIQ8q*Ub>}9(l%kMnlL{6qH5#RlLOgr)o_qeEUC++W|N4J&J%YS= z747r=XJ6gbh~4{t{H$K(wLEn6)m@8m!L`5+0E01O6U)H0fhrILv~<$<4|SaBE6?{9 ze`lak`k@ZDwT$;XzEXXA(D~&Db=(1(itP=X_H;r6Q9Q; zi&lr{IIqA4;Q?};2iSsQ^$im2k-9->bEu${)WN+A&%W4)uE#<6Nh;Ngz2!{rp`G)G zBAK!`pXuE?uiBYdte9!%2e(4e&F088J9ZrIWpg1N(VL^OVp=vwGQGw(8wGTnm1U;( zLZi&EUL5^IG~OtFVzgLbx+}}(!15AP&$-PMCfnQ`*ZfMZUuXzC$pYBJo&=6>ge|34 zkhr)MVy?@iSRK+L8D9xfCkB)lQfe};yKa>(ZcL^n9Aiib@s6=l`_(Gb@q{X5U_}0@ zSYNuxw2$+yFV=YzOR;GDHNkA3rQROw>kD@7AqV)3&LkGT`7^_VqkCi$iOP~;%h8EM zQI7poESqMYO^{rl?t^iPV}DPdry1IDJFW4R59{3TGHN9FVhdp(o?9+GF%~tK_{@_h?E1mO|DN)ht-L@ zK(M-Js?H=!5P&j|H@h5HWWBf`cI|Lz4oMV6^XAJGC+oJNs-w~cM3eD(w-&Pr>c@Y^ zpN~WH5wc?7%gTM{SH+UDW&>?hG=3tHTR&qt>ELIqbb3-0L%qK9$GppeY53HwfyjcK zt&D~oLws}IynFt#VsUHQ`V2*=tSz#87)P}k?tGg9Px2|Ea-iL%@{H)esF{5}G<-C2 zF4^B#gm_3U20b{@+v`8#&nI5CE-$P4y4T6o4rQz(!M=3pNazgba4+8%V>>njixhqh zM`Ouy2I$3g{zz{^kdd6foQX$!%~C0tP6w}plSedmt|=_X{Ix6u+|OJ-T%Vu{rBz7I z6?x~{?n#Meb-gJi5qmmANyL!qHAH{euH1qzXR?*f^E&coR7TfFZR?=%phV1`uVl~Q zK@eJrZ0E|6{UbZB4(gg7=f5K^)pU`mWMYU+l`c0KBfZ*l?z^;bO~o`1e(3-JHgfya zC=M3ey0iPOW%Y!7`)%2>aV6T#m1s9_MC}m$=Il4R7tp8l6$MItZ|%E)-?$IXmnJge zO+D{K98PcdOl-F%wj0u0by&VcXzW4;Uc|oRD-pK>x!eV7GjLGO#HQt!0X2m+U1cQD zOX>EE6A8)DXd*$mGl{i{(}}T&c%?0$!G?MH57B+_$VR<>;^l;kH_Rap@yS}bLIk2d z(p$t$i%>L-r{VW#MdM{&vsnS@#Bd904Hzh-4@`^0y@n_1dO`_B7(F( z&du$%iBx9Mvvd^R1vrR6nMuAH zUN0!)0wP0ISvz&d`r-9k=GyBBp7rJMfFzwk~f?Zp%;_IINU|1vmwl1+Q|=n}>z zfrD+BE1mDL=dbZWpHdF}9>!WinX(tBC-R`%p1g!x$xFDJ?6@ZW+)Fl5MIzlta0n2W z)+nimXHh=%PLR!=zE1UzSp&6?N>b8g=kSfBB65@XNoX z-_FFSeEvrL@vY8qWzW4!qZ>&M7$$ zdMC9CuBM*L1U;8{3(`-USfT+5`yJ}sqxKIjir2kiL^FkYq#El+ymSQA-N%pb)}Pcz zMvosKRijd)rp~5gvgHQqBD-Z1BJpD@tT-meP}<<^fqB_|K7K)4j}w0YVHE8SA>Ca! zul3((ZgjRG(SM=8B88HH+52i5`a?m#8Vm&9ai{7XRGmi#jb{o_A4*FfS-$hs(haZB z(r3R9mcY96PIX7UmCsKJKjQyw8>b1u>i+TS+W0nUv(EFcu8B|1kDfSDU%>C)ZDXlV zG>$i7QMd7S^&jXExF_5TRk}+{x1eOjzuPVDaj#d6%DeFt1uFjSt`UuPulej_@y-6B zK*#SjdZ@?9%$%Suv^I3A(_(yxcSK^?c-&o;Ts$jihYULZ7%T&H=rmX)8IN>+i6_cC z94~rr0K{>j<5>c*3M0YXH+e z8ZB0`7Ue$RR?635_^vsISx*AFcL0eL^lov7w8;qQ4ItKlIKX{~<1r#BSy0RqYh8)# zmSAh3EPTE3NUj+*VayS_ko$lZz?gd*Q-3n)tkffwEZ(WOy~61+kjm7_P3BL+>Jq)n z-Sa(UF4ZzjB?1c;m!JW2a(4;nu#o#oA1=|p)3oo_9>OiSm!yr5aPFItoY2q!9S6j~ zBQPt?DNV_%%qcp&t{YBUN;-=~=O1qOh$b}MK(I(N%F~j)XQtt}xNyY|%DPC~rqp~L z26FBO&Srp0Cw8OdShuWQo2<8!peUHeX=3i)iPD57<+mf0`bPD+cIhxK#&*4i!6++a zkMo~kYN1{4s(EQ0LF?q7@fv$ipxUfm>rj2y_!Vli7{FTW<7ebqT4!h>PV-N3Gr;++ zsQ20>qh4zppJTNZ*r)f|nAZ#41IqLWmZdFYJ$D(qj5(^R-;5L=uHw;qR=6) zZuP$j@r@>o+JHAW&>OXzxnIZmtx^Lcp{?YB7-@QN@c2LqhT{RJ0k8-6)l-n@Lig{F zMuK#Yy3>R@KhIK?6rA-U->lDv!gn?~EW=}ouQ z@;B-^qqpZWV~=q!In1|lhjfl}`Bf4Cl!q%$7k9w9ea8($N*paBz8N01={i~PfBUKL z&KkKh_cM1bJ&m0yK`sFxvEf-E0_^;X>c<1Q*=%2+81eOG2C@Yei{*NI%^l%G+lF7a z_lC5`TW+Tl+pLhCjUO|>0U??QlgSL|+2%p}^b-lWf_l%+B}ACKR`~k)%ZID;!5u^p zq{rk$Vv!i{8N~dh-xwt_NQ4R7W7LspR7AREH3!S0StIS-qlfM z;7PyEqCY>K7|bN1QS%(c0Cdtw$%O8Ba+FRD5!P46J$;cbiwX4dtzV#e7Kd3I69~y%%#Aips9&aS*3zgYP-jqcf`$FwHWjcm2=}L~}9Z02CXXYLpb-oH48%$Qw1&n@Vr+H&G5*;hvEY$m6B9$19 zAQNOHNA2VpE$0?$`4ezl!DW??-#oi&)XO(zaybe{#Qy{{^*4_T@zrsTz&>Y)Z!ShQ zKd>IV`y$3b9In+mnKV-0^zNSb@tkzmm)S?=AZNhC^O2z}4d@Pm?noi$t)(9gvXI?n z;ufUnpvc!5-T-&n4{r$QAAPLXTl%=RtW%{UCKnuUiAe>~(27Q@(Xllj` zEng1-nWV)=5i!xwC~J|x8^SBijZJfRA&AdnD^MzFxx;qjZpwz_=Pf(xt>=sJeS2H2 z6MM6j+($^(!2*b6XP0vE_Zvq807=cK03A*_*D`NK%nurrpXbp9qGfrzljkZ^s-6=? zEFrJ52CTd}BC8Ku9y{?+f-ugZlul2Vo9{J|Nh6CT?Rd#_c&kP;<8W z&Vvue{GMp=+Zz3J=7epZaIMO3Q;3$pq{q!8eohW~j%&n4)x|mr-@C8`{ws{{+CfF1 z!r^<)S$+-#N6w7K_Aq6<66yP|M#DE$b2(M75hV{${aE^pkNPMM5}0Hq}-!hPZUwsll;fm%%N^9VLdV^KT zO~K%oPs+*%?|h;@y0o-<$CH)H^78t^O~vxc^08yfE4x?J`;(cLlh4GhxFo}4hL)X% zLzNnLZ3DzaEys#4ed5%C<>hka$vgHfQK#+fpU<`1%W{U@M~<%S*8R)%E7tK%2!1Y= za-yG}d?xV=G+HU-8GS*Ak0c4nvK2HQ=(~YyAPgUNRnh^wiX$r7X0C1}WSD zNvpU1&2M^^J3Wp9w@}m!_=tJ(};lq)f@gTcwY`nP9dCzMO zv&%JyBl-G6?|t7-zvh|&y+k4kW2@^skg?T|h0sG%ObLI+5I&VjfgQS^iLptz+Oy9d{Wh;hYe(-h9%Q9^kCB%iG6;un`I0W-7;ONy*UEZ_uI#YPsdH6 zR!tP&a5|pO;MGh9jtmaJadsjin)0wew{`2-_~=L?QK9f)Z*QdI-22Sw)6c}v5cBE4Q;s&wo$koH0fp?WkwY?txR71DMeS(Uwl7zp>7X1d^{|3OZ2 z?>9J@6E!$dsVlSOc?v#zT#tJuI+3jsl9Bm|Qda37N{Z2_Wu z<;h?W(AT&jzGs>YM~tS&Hw?TQ1?S5zPl!?8g9{6zU@;5ceAB4`Nq3O_0SA|HAQ}xs zNe7QFEKp}Ez7TKZ90rAB__c#X3HATGekc#-z{0@=HCQ-U_0XkhYb2dJZwqoWy35yfRU#L?5FSL_2Ct;?HrjWwgiD^t*CE zIz#st=$h+WXQpzSf!X0nFY6B7u(h0WCg2j)8LsqkxjzW;i59SV#A;DpJys=EY zy>%!QjTt8k>0iEM<0`dr)!TpBiA6gP4USA_BGE8HyD>x{4$i3{hXNo1=%Wa%Mx2?E z!H|H@<^NG|3w5~1sE%O*TQ5~bl2QE0y-=YSz($Lw1zo4Fn-%ixh_WH6Su>}m+eF`3 z+bdagPC5Zm$8_4*C`a##+N<6baSb>J9m{dz4@L9ljTF~{b}bjM>UT?8Z-6Q|qykeR zwnZLBIX>&96sU2tH)r2wfF2s|yiob&!0D1wlfOrp&548+tW+kM(ojW5j;4w_d zc5FT|*3haaNgrV~@D~3fwJub!*A8=&5+inHwgEmPPv((~)T?2=xwYrV(cC_yBaB}l z8|kaGgMS7<3Xf78%08Y@3PlR5c6v&RR+Or&5f{u(N>ph#fWKNqD;8yIy5eW!q$pnE zIAw34;6)ga@hXcz2F1AHu#!pZQK&#q1e@QW57Kx>ajWqa33l!7!P(KsH@}GW`tbg>eZ%yapv?5^f1=_Knd<0Q#k8BZ=~M1-XNq9z>pdHs#$s-R(c|{C(;t+@k~|C`bF5#`ppNWNRCDD@SGq z5IAL>goM`bHIItR#Dw3HcPD_W%1V;iWO_yaN1JWpB=SN)i(Y9wj-DwQRoBW9`rq(A z!6$9z2Ri>mew9fi$f620F{$oJ<8tB)&!o?H&-3>^zplSopC@oYPRymseBkPJA|pe1 z@ioSt$P43zN9Z5pvGDjO#dGaf0C)Vj_gZ2x^mJ!{+FkMGdM0!5#s?`Y-h9gW#3`zA zf4{Y69jwpKFT+C7`Rv?*xw!-C*ySsKS*iy<(EE6~RA1UUIe*6|4E4;?^arK~2e;HZ z-;JjQiC-tHA}3W zY&g87CL1YO2GbJ`pBoH;(&h(0rQImg;pc@z(*vrJN*Y(GC+~Rkl~*PJG6v(ZXg^dP zqq8&V$ub$ZA-ZiiQi)JB(o0>F{3uegzc)70Zf^%-NbmAfbjkf0-r1iE_a{U+vSFyG z0L6t8ijpIsY_-UAU;dSk-AXXsleuqnUn+T;-aDRLSvihrZ>%k4aDq-XmTE-+y79U8 zO2$bR@^L(YXl!)XI9`Ri(=1F))icpLetdjX*hEDPG5iE{OFA%4RNGFX)8W{<@W)-0 zw7r-8khcdHiXrxp{LdLjse?4YtlfhfE&_O)U;3n;v9$Lo&C}D_uR8cE9aDBO)$PrZ z(RSI)4Hn17rY@S<|CXTd)+?`k@^<4#_RqA34-8K&s>P|{k&((y2XEMkRBGwq;cKh) zzRd7mrF>T%c=5%}QibuFCJzlmMN2noOLxa-MD*Qo1 z5_6^_PD*-am5!)w3F)S$z^&)$1Z3xmcgWqZGBe4vQ#5BVy>W8*i$-fS+_@8-x>|GI zHE{aC+Hh^SJUCd+rxvf-v6lYeYiAD6#~?X9d$!MK;sweL6!yRVAB~mq#>xwqPshr+ zg8K3m>-D){FcKNQ{7@WduE!YNQaN0??aKZ`*PSx^;t?k`*ywy~vNBvTO}{_Z{PXdJ zg(n90kCt*}rE?ctEQ?3W0sJ*Xu_15)g3jBFuhQ;mS$0FTQ>{7m7iYgl&-@F(AK-rb zIz!ZGyG^~`wu13+=cln9ja=tDDgw{~*hS|%F2U46VQ0V!)z8_*3}uK#X}k>0q@9ay z^tYQ2C(4S@ZI@c;r?joi>;R#(5MY|0CbcpabFLw?5(x9feep!p0HSP0Gs=nWxYYcR zcV|6|f)TUvOh@WFiys1qJT{Z*8?N+G0A77I7P8X=1M{^lcr`N7&LRh{+*(?R1k;gx zejkQ^crX}VD9%;o`M>niOMh-0HvSIonwzMK`Y4g>t_YH646ugm1Zgs^SHll2(D5=ivcD$qKu7G5Ouz7mFw~^FE2u*fEUS7+wY&4 zo7=Jfz>YK?mQ)&WN^s&MS5=GI5I?%aDQ?Q^JUUvH1iQ76oD;_w!a6wC4E+~YfT?7(6NP;4t) zD85YkOA|FKG&p$UJ=3i@zO*u|p0~&`0B2N#U@%w68Yv<^9V1u>&S$euxqR2wh4+e!JwQKmyLNz}?2!5b4Dn~Wt>=sFzb!8V2dwmL)E^Ymo;srO`V^Lh_; z{&oxrYB%QAs0&a&VMLR;h@l?+v(ac|D)Iypxj2@LE-gY97nmy~i|v4VeDy`CoNTpb z5!cpt&DF8hl}u(Kl22xfO%CXsXqnNk6AYN|{2F`kW2(Phj*{ZM+>Xx8IU29m1h?=o z5z1Y7X$izDoB$FY(LD=atYmrXUrAEMZlY_VIf_rvUqS8GB90OeU?@4dt$?rwDz6oIq~-VQ%JMxleUhr@ncc_kGU2 zug~dgGd?S~_3zx?i<|d$r+XuEZ-Tmd`7;FS{(pKeF5pck+lmDzm=L!;1OXs@A^9qA z?#}snjP7h;VcyCnExkZ3k@*E7nzR06_xk4?MURk^VAWfkQJ$f-upnRXgZIAo|Ki@e zRW0e+?%nb*U*+9idxk4KAlGBf-^nc||6_Of#WR+*?%vh>DY;1*m*QV=YfcP_tk<1W zW>~@>^ivIm5d6^&LniGC*kJopIQTvVA73=?bTSS#a&6;ALI_VDVJ_QEf_EVL)I&Ig zaFJX)OG!)HqTf`(Oikc_3-uH<^B(8YPANS63GH)|8KfIkk)Gg*iQX%e*?f0x@7@!~ z-~av>_I^s7+?KU+1Cewq0ApMw2{&N05s#{8Us&Dy(1{c8UsZMJf&7ppQ_*J-S zj|*Mip(Ygx?104Jm*CGE=(MFSVpM(CiFVoncct~Iz0X9QzZKYzz1O%!qp{6xNPM&H zbE20;?NH|*SEG(^yD#c%`&6akbp8t8k{yb^#nroS=UVrlW2A>|0Td%zl+IHZz#tbU z-N+Z4i6vsySb8SrH&(6aCj!>z9<}AMnDXK5w@*EL=Gi;$FfQ{)I*-K6i#?u&1b08-KhpW~xZ2WrRMjUsf7IY(L${S+EU(~`EqJ$Kz912!dkCctr66Ql;~J=;_H6NP z+liii_RQUU>5pww?`cC>@Ke*iD2fz$g8Sw=Zl`D(haVu_?DcjPq zROupVhpxEUZ+~l|^@h`@pF6GUsNGgyD)SR*&#ctN#XYz<+gHgCz^-AD--je2A5x~t z59oqkpzrRN5RH`Mx^1)A*YC$~-hJuKH(%NwPdNFU-5Z;&ly_c!{r&e}fBmjqDwT*u z$mPUrbx3UsV*CE0)bIkF9}SHZbUm*SQ?6UqOSdgva^vUm=l2ZbF^^5Ae6f?|<32_n|vF_v!tPqSN1mm$*laG?`!cE&8iMtm7&#qNw0xV9B`3d&}GQPYqA_ z`})i+xo`^(cY8THkbvqeI_&l2DyglvU!%Ue@zBq`?w8WbDpw9QGX=Dw*Z)!}Uy5Yg zg@KF_e78@`+za9}9?2&VqieW2Q=&eC&eneHz=0PJ9JoUgwLkJtCr|#L(C6V(i#HiH$Po%?x43f%B`Q^^63sI54BMTjL+6J)fB_m|!LIfHVfIaT5v z))f+#2ZXYBK$&_UKBhUqWW!{V8n@K0$KRUbMNYtKav!N!Dz=Qjn5rB8B0>37aYWTY z?$*^vK$fd|8IOBiRqF=&r4URqSSr(1e2UZ6>2X8cx3ab}#p@(1xDm8Oy6jX1NDnV^ z7`iDjs>#aqoGRhR#g{Al$oeT>SprJHUsYb@ak;-DuDZV>(#0XeuV)&)y(mdb@;-pF zer_48IHC=iEAC9~Z@?u!Esn4X=$O>Goi`6U|E|xB`}q`l++= ztFsq)U8E0-14oob-J$gxHduE_)-B)e?t(ta&h&ff`W_$14#S7P(%_$@Th_5z&Sbpx zQh9fO_<*lRR(F5p+qx&;+)3U=rBzsQr0Oy}W%sEa1BJnXxoOi3rQ&8#uD#4{l=KHU zg?ve0KRMn}fv5N-I_r-Hfl6e3Wv~4A`(l|&qp!a;rP2e9N=BXX?)0Afd+74l0+k{S zn(x!sBX=R!L3XVq@A4z9qA!*Y?naRrdM{}Q_a0aw>wMHKc0aj?x!Ye)My&gjx~{u* zbA@gzq>&u0|L~CNuVE1bM9#tq`C&=7t$d5VP;n8<0xvk}cpiG$2)y=k+K${|Ru~}+ z8GeST4Hq8vdV`6y+4v|1dczZ448Mig+ot;KdDmVsoSKlk9X=E?r56 ze6J}2{(p_vPF9F>Uf`$o;1ko{@?611ToGAA>rdr5JaMu;;=W~M1NRn%r` zE5XXjG~62{bWXin0%r4S$i1ob_-bC*<`xV-0Dq%pB+u`a23EQ35(iVg(lbK*JGwmZJjV$s#tTpUA&F10StAW*J1>9XDv+bDS$OvUX?1iACZ0u ziC%K!+OlZrD5lTlVVCB>fraFnkpMs1!Tl=-W{<*CWZSTcNc}+UI06vKh53VvbNC}D ze&}^_m1E1xjj_eWmN{B3s(X_8*_C2$GzUX{JlmRGXu(sCMQ9w`sxZ-)U=G?oQl}I- zmN3p2hFK~HnUNYAoP*V@bKm6TWInaN|HRh9kg6Kd*6f=H`zQS>k{B6j4wbf-h>i7; zaBqfmA8~VCEI1a2Kz{0M0dVtjZ$4K`MRQ6E`65#x?zRek`OS~W`b8-|c=oYm+-SNb z2yYQvcadm|Wi~DI9{u4S(^#v~=)kVN_^ebDeD-cwmT@0~=Fo344~zc175(DF=okGU zONgrCb;A%RpxEuCt|>?3QxOiA3EGr&SfT2p3wERDMiyq^h+`LTtgr08_O8Q+4jsDt z;L7so-~Z-nc3*S##v4};&+e|=vV3xlpOd@i=her_+?>7rvj-<94;}ikyRJDjHh$&l z`>G=ib>qV~?i-z3B!T>IuUH!%=K4fenBW?Jj;nQRI)O2YRTEN!$ybdfhCM^-tIbb+ z@8t7^CpwQVwAH~UIxnc(3!N8Es?R=s&(s(8)l|Ln;J(f`-1`;2#ZQp8_12#MPwv+r zW8%ci!|ft|VxoLNC_An5=DY8DnLgMyn8c+$w8@^5cF;pIEg}m=mqD3od%)y&kHfQ} z&!dl@9G;%?mzb}U@=Wz-j^eYiW~#6EMryU*$lsVHQ;nHLQ*G6s7>;U;uP7*^oWjB$~#E;e&WdTFr#6!HF5l z2v_e6hZFnvC;kDP4RD;){K&iK_CpA*9;?`qgGDzA`{YYKqw}5T59aeSZdJnAP@f^v zF15`hcL|;(rb5vN@ypIk`uv~-NkE=S`O_)blcp!1Etpn$wrrV&`C_0ruUh+-mi7hK zmX_9Te&Pw0xIg*GBgy+8f8>!jx66%2x$VA&2IYC9=)d&8urK}ud36!rrl&1*ME94G zSn*e|_+@0syaeG6TSS0h+5&14#1)UVIwhNCDy?*DvGU+elLv>($wZ&&xx8K9c>P5; zZk;UW4V5d-&Zyt*4+M+#eed|#J2S7HnY!-nD-#n*Lyb?1tfI!f#i?;ZlEnY~EvNx##BY z1$#0uZuFEzuIbs?BdHwX|8~SVK228Ug^TJjc|KT%-_zBXaRh|UoclB5X){YA<3Xvgw2E$0~R->@8 z>x=g*UUqeAu95oU0Zl6yy&L90CgDI(dA_)7<$NbOPP`1&DXL$em zt+(!9f9$rE9e$vaac62O88YTmrE+~`B^3fT*4NkAvd}*@W#xVsPCDO3d)Qs=U%&0v z#|qw%w=y`&nYGVO<~Ns%F2G1`2rgB7)1}|}MNn*d$R&U%-aGs$h)8F1`V}?F(G#&a zNSKvhc%oS@Hy5DDK7d-byVZFNZoOnYcNZ>ZnM2~%ui!Se(TmWOw=67_o6VyO^BWuU z3vlCgzA?R5L8_f=`q2 z9JIdd^hR>&FH@{4l6*QS^(C#&U%<%XKPoRj+I>Ij_t~0%L$Br8$oLTd*88YM0Yhp$ zPthpQNi!||fzB%f7I&BQ~2pUyRdc*KZGa|$Yr&HPm{>9OC@>*8fb+>1p$VQ?0I23*6i6^*6`e7HtDfQ6G^hBQPbZk03 z$>cL<7+^-PuaAlNRBRdR7X1S*au(>>* z8GypXrQL#da<|Pim7%zQ{n5CzWB1nbz3RKXD%H7ZU|_w?|A2a;y`?Una>jheCX|`P ze=KkIdM@9t*YmktXKlURW+@L&=*6C8z)`2g0?;`+l(*wM#yurmNISu0@++b!#U!p5 zBxw;HXf@tzZ+ZLtFigkx@cbRBmW!(^ygv9Dh|zgx{$fTHL$U=tKF<~EBjXbQd#)K9 z@c9PDu2K0TsvvByL=a zK+Bk>AM2Q?pcC~~F+uT5b>GS9l5g5%GiGU(1*4Vq7{%qS)nz8?6hOXmeh^?M7`nX2 zJ6f%_+jpNN*DU4rbhfryD$~AbaauL*d)FWSp^8(GWUf}s=i^jLbDXJMF4Jta4%aH= ztXC?HMyu7{{dB>>z$=Vq?%gfkQEHuU;De4ML#5K|7`f~%UFQiFNe1YqIWIh^R+>)qmZ^7hmV^o~ zn$6#8f1vx``Ppvmb602VmpLHT%zLEeQ)xknmP`yT_pbs{tm^{Q`j?DBooy< zK6QKr)G|cZ#cRC_jS#2FqK>_9rHJ)VcgX5w_3^ z=KLUeIx8pudLU_yrV>%wb*aNL^cbDqD7?LSZ37UOnVH6CPoLsOaK}=wL=-T=7GY?1 zHJz{ps=|sC20cSw@tTvxMBbP&;7t;yHhnl}3WJ!pi1tt@JbrY1wL)=f)Wpc&Z|Xts z_E|~CXNJvo(7ZmBgvG=cIzR=<1Bh5MHbU2%!8Tiot0x&xCV9BwNFtfTOTrDJ)4cRm zFb982@7n3kd=Xr@JKYi-g5cuXu~@3yh>P?Q_<)Y;aL2uTPCFHblE_cGAz>F_rg8@D z*x(a;8CNBYhU0j8ccgc2FZj%2d3d}%(w<)Wk%i0bXm2PaMa6E&g*q8w~tua{@HE2)^=zs>*;1cbh=x#R(7kmqQBUclF(K)=*eW}?{(X#7d3r)=1u}-cSeWriPnZ#*C5y{V^l+oVU=-1%r@qd*p7Gb*No_+kgKB#C<1ty(2d5Q^QcU@K$SI10OByFZU zR40+@G7Vu$?j)4jtqU$81)e6ZNKt=8iPz34*DaNdf66SFWT!J^DNAr5V3Mefw|eiW zbCS?+yUsM2tGBV-rwUl)`D8&{R-LEBTcuWUTs;_xoDpO&vMiaDtTWD28J#7Inxb@d z4i5y1(MUZnx1@a%uDzl40(3DEB8U~;?V9Scvk?_O3qMHE^ITx(igF%umZtgeTw>kX6sE2CP*{`4Kztc#M3AaqisSHusK(m5=;L zG-~F&cDVQWk=N~7-a`Jn@!$t<5>w8;dSNHWedSy@@ybkeY__*m8cD1l`TR5rn1E;}Wl71=Ych91I?Q&Hzjkqp!eOcPV79s4M zTl>RDRnFZDwmJ8rjd1N#q#NK=rb&9aIeI?o}td~U}t zU9b}Psb~#Ca~r?Axmn3H_E>XsB?#3I%aO4nd;E9d-NFTB`*!IgG<>x$R_^kD1-!lT zrE&TCZLhrRk8EC~@^O{1STi1r5!c}aP?N#wrLR(dm-^bdbKQQPN^IA;yZEo&FGc-~ zoZEBrO7uz>U8`^J`*4MB)@l9dh4;MlvP0ePi8L=b@^-lo!cDxq{JURa-(UE_>jbac z7k|YIrO!(uf#{F#Lwgjw!Lgo`J?|0wXJ!JF2og|!^(5sId(e4G(-RuODGPZ7uHl6ChVo8m zcj(iiPzM8cwWUag1$e_}d_Eyb$JaLaEj*ut;MIi#fpXZIYO?#r!->EkiS+G8BwSa6 zOuv3{L5o{SW@x4`RhsdmOQVx@-#ARBHBKRZF4Rr!a2BQeO*2+W; zYxP=c_1KZ!#iVIE845;5X;s`qX2xcMGx4ot0!!33w%5!IJ{L7+IEUrH!0KT+(Avv^ zUh*9>>`Lo8(WFiCHfdGl-J0D4Sq<)W>&WE+gR?DUJv?zw3L4#vZH5xklnDy=m?1lq z3Wp8qS_B5N9}E$j%5+YQ?7Q%wWT*)I)K4@Vz$tJQjF9S@<^Om$rEoBY>C$BAWeqBtO)>jlE;wudIgj z&d#Yb^i0P-W5MAvJ5{dGSpQbXu5ipNbX{Y89KOun(749eaMBRXc1ABKr#RGn6}|Q_ zE%u5%Q`lg;4^oOWH)li7p$BjQ1GWN#^iCMXSQ7@+r( z>gTo%JyiEay`G-QuRwW_F)g(w#+^6rfQgI1dl6M;CEKaz;*^Y1FW~b#5P|T9(MwtZ zNt(nY;N&~FSgXv<2CO1n@|2At1QY-?SSgGZi*ETU_8KjkbyNLwD3chj#QljxdT6K+ zF)!|H>6gH9zxt#8N+QwuJ6}2t-k88Hfp8{^;7C2QK0Q4*(^j5K6CsIFB}tt0`tkgv zhHAjzXn#flCv3mr|GHUd2JLB(Dc+s)btVN+_n` zu>*pHId*vb$btU;rOURQ2~h-08JejCcg>I1QW1Z^4rXR&w`Cot%r$umcQIV`n4PCR zAH?U;1_}QYv?&viUtIP~C;W*t6pw*~+hl^FFR?rU%*UOxh9%ZJ;d*cZR-{J^Wa2z( zD?4gW0}{|B*3hgC#G|!P)m~kCrd~u5Mp(XV(*#c8s-rmEXUl})N_#C`5-P9gRmt#HS(~wL@ICtVdkws{SsLwF5jA3`I0EJC&*njA7D&I z?FZN+VE&4%{gv};AHK0=d)1#E7+cGk*20a2v4C;da_HpN!!i_X^A09HuEM@|qpj0? zm!@FnnbW%f|F*`!quORO%ehDMV`D9Ar8R|OO^q_r{B0&%JK!#g#EBLIU?9ne6(|KnYHVO1t6T6U0@MGVmTbbfY7yW~4kM`*a^_vxNrDZgR& z{_C#Dk3qAZnY_+V$pMVHvoDb9hVSN=*2x!TKK2Y`(sYY*U#4CgAOFv4J=52D#x4LZ zyl$;M;5DvX+qO5imGJQ<`oF1Ph)zTe}mcm6T# z|CiLxKi<^cd91*rMr_ z7_`%sgtP&-MyHx#jOz)&9jodsLknB7eG>x%F~cYhUvlD&my8tc&|GVJ=hiK~o_uBX z_<==Gm_^9)RrbBUE2dlOo{}+CAQS9{Vo)UyPR62kZzhd!*}-|}%QQY@@C8*BAKeDCVhhmG0UeRXwD<6cTzwcAN^Y|*B!ZH>qX zDejtUusa_n@C&@2`xjp#aSdd&L}7GpndAe@n5t4{MP|3sq$_!<2rfO_@#OtH`0j86 zwd%?wWSKq^)oxSfA*N_c_BS@NnRBTQnx(e0TwhwO7bz1MjRy+F27Y^^kgX-fD26Ad zmd&!#i5nKK(sBizFz_8GQ%J&tW;#TDvXF2TW^GU~xTdefMmbM!o9P@LA1_ZdN+D0G zzd2NF-`p50?~YwGZzYibrE-72?JpEY8|6|U5wmjrwd(lTe{lve!1GbQ-W#-HeX*#& z-tV`H$Rp#W|G(!VV#Pn%^J6_<1GTEXAkzEKNp@Lq`?ySn;s@WndR(qjk0^V#&*@Wlse207u`L}w807J$6!LH=p zYdlr=i75z3$h!&swh1RS{dp{y;p)WQk`*G-T6n4-7=D@OX1# zEas044nQIRy3XTE#qi8f*oCQ+`GM3h#|vVRG%u=Rs2CaEzFf=~#2F7JuoO?%rzS_z z@v_WL%JRl?;3Z8z@i$LEzQ_o8QlnC_MMa0>(QMrkub}dI;-L_8s3%HgmMj@yRG7(a zSzg+bL*k0I?x8r0*V{{-k2**}<&A_w^}gO1-Xw3JKb!Ilmxub2Fp`H-{aKQ;e5CvQ zMJf*6n~!gz)`*w=L75 z^#hUFdI~?Io!YX^4l92}5{%QEwr`9S4Wu6fWYq_4_?Gcws9q2{OpYQNjZaF__0^dm_2sNFfrSvK+Epu$VZE0#-3Cp@91wL(@d|I)ksi!nRX+H#4wQ}I)W?Oim{ZeR2CQa+4gOZ zB}sL+sQJ0PbVD?--l8V^9R0_%S_|+DE>IE-<(Ns;o5>am$v_eoIn+C-mZ9OY7xyht zM~x@vohz4H)Ig5ja5^qTUEXJCASv1x2|R&sO@gPWep9V|7cbSecpg&fA>Su%YfX{$ zITJ^zd6Cf3If$YRY{*CMw)qydS zxzG;z$wzg9Bm4w+xn zq|@>R0#1fRGv93HxdlFBF-tHS$}$BKOEcHKkW9csbge+=-Ly7*^#h$pfFi*Rs;;w2SUC~&< zjr0CwI7u1XmHf=&_4lj!kbTAa`rm^(x%JY;*K}?_b$YUO{mKgaK4Qdu$9{D8=twQo zs20=%N3U5{_{gra@TWy|y%Z-KVkgD>9li23JqY zX!Tr+*5tHgf@}^CIC2o$rmqjwFyzz???3&zYoGb?dtZ0Wwky|8w%co$&#G;pM)p3X zpq5D%<98f6diwMijvk)7<+1i$YwEFm%VYC!_ql#HwnBjK6Z>Kax33GhXoTi}{9Q!@gm8S9(F}FJf8?m}|;bg=oYqWOFrO z!OQEBz{X+2IJ^;vtS={>`5GZKGm?*Z^Z86|J`fZHb*`q%<=u2A3pl>kWw}m|}S?>*O95O~ak9_iz>hLE&^PvxQe*HrqQosG) z&hzhmuNp;4AAaq<>f)u(>N#zcIqf5O@29opL5??SxXw0BiIFUt>M+C(u29;12VBGi zHKE-R)yed5YzR;a?DR9v+rDRgyEdE4%|@Fm<+8eABhv!VE%}q;WMPoh7DwxLAY0C@ zFRH1|Us>jN7XoX>)qSm6=YLjn{n_QFN;He5J&X5`)DQLb<@y;+ao9ZT#wGswLadxv zI=J-vpX%HcwbU&;VA#@iNL=}D;eEZK=WVbAJ=F72syDvS18g_W4TuMx4(elu<(C8j z?PJA-D!rEfivECdU3CPSK-ZWzP#3jG)-$wpYwb~G9+tV-(FPhA52?LTxSG&lZ!|Ak-V#c+JhmrG6LFPUNUM z=p>V4V|gP9TFWNZmqhTQ_#63hEe|#(Gg@4r6uH;I=_A;71Z&cZLOvP^B%#(cB5||D zX(GvdhZMddW728_90XJ@TP_#9U|Z)Fnq&c^C*TEYGx>}8oQz!fsk_xQ59W@x*Nz9u zqwxQ68D(4ka6Vye!7kC5sx__+6th{vbQy#?r7Hu>+R;ZUhaAx&RVCuY^p6uw=cxBQ z6i6*p5~aR@{Cr)-aE{_d8Zw6wV<|AL|&p&pB70cdR42QGDZ1|@KE5+5pLNb-^ zwQ;ZHzk_0c#(LnKsrH47*cUu!MCZU4Z)_LbJrV#2+k#NhbYqs_|j$cLD~!nTth zDj=g=+@knXg2+a|yuzX9Izba!L#vXc(tWbhr$lCp5-0eVX`!_vVgOn}ki37iP^}s7 zTK6^z)mE!o$^Z_U-xwWL>-G8wKf^wArl4Hue9b+IK^IftQ_gD5TJ z1Bossr3AHQiWN#Rz5p%UKf#;V9owSeH)p*1N$bJRuBr#i8t6|l?-T+VXsu+#k(bPX zLOIGXQ)^D#l|nL`O*%$qp*A~J%atq8dq7BT=i`BW-arQ19gJHN%pMrsLcpeEvmM9D zRIVfqBU77YC>Ub_vzRScvWuLOAKn118|HGv+qs*;imrmv=T(1?mdAIB!8On@qfYoX zl^XK*5xDc90HQOipr1T9sd40!O4hpu<0_tPpj-aj!?g8?!>0T{PZtJ5-A-v1Z=~%>%gKEGBSNSMze_{ zh7vLXR6<&qyhh>N+$7+U*@$M}^XXXHi9P)lC-(J0dGt~!eei2B^}(6b;qd91k6spj zJYDJhjnpU^RDHvl$HNzl%LraJVO0{j%){b4rp65q&uIv@68cH88ketpnSHR6zWQzN z7vqii7royyzH33T@@R2%w9u|ZzQr@ibw;z`{J&+q=Hni3^wHklN26ZP$5rRM&jpqB z+`TZm{!ZxeWU=#y{b1P=IWNT{zVBEO<3p`bn zN|HV=K3cJbN)_GBCHl@3M6pN_9|FGSK$nz599eGaJoxhqw(e8MhSHfvq4N;D=jqJP z*GZQTd^>>CqkdaDv&g!1aVVqSMOG!=Q63ThCKYmRv$VO&cr2YB>J)}3d^n{3awwhd zJk;Joyw(oZa|1uU$Qjadp7nhajO4{M-;49}a=izypFF=_+Q84h+XgY7!UXvVms2}a z;xW*@X)OpZ9kVgjp>(0fm$yq?;}hIq7PwwF&X0RrTm7z*@#@+|eX8@2R*uv$vA#PG zyu6+MX|bW)=6T(|^G&86-E5OrYNj`lSXSV!0h|ZbUk2>$KiF)aAH)364W3>&--60_ zzJdOYhLf20CI(0<-py%-#veujNr(>xnx5mD(VJaIhe}CO6O&kPBwR(_QFl@ItP2+_ zrI#UtZYpMoTs@0OgY*7qJUJUr*0Q;;!kvReyc?P;i`VV~-iiwr;1Yg0N~rVQOr|W{ z;Ui;IZES#%e1S!?bS z$%ddmZ32)>De*&TO-_#)t?o=u=)NK`V1C_fx|x=G58?T|(~cGijOFu{(QNkjV2bE0 z6qvx&=L(MVaLq=upDLCk0i#x1o~Le!6(y~;fqSQHSefS3*g^H{waPFMb1S-1-!_;B zWpOpLuAX3@ky2xwUsR=*0r#9z{kg_KVegij$7thD@og#ekKkSjLwTNwR_t&@(tC8= zF@_J}*TGF@V1nu9GWlI`(VW>#^pnZMGo*`=n0}Y`T>x0p9O`|A!O^XQgYyUT|2)~; zwLIB8x@-9(>JNfPF1r1qBYW;Ua{G1nfiaGq{TB%BzJ9P!F!F`bvH61c{w6>7AMJc| z;lP27qo?mX0#+sCUQ;)RK{#g@z^+Lw)Qw$|o#>8i^pfs`z~o02R+cWDEoA@;{>+W? z5Mb^apO^qu^#EyuN2#Ud4n_5VR{iXbO<{!xz$3Qnott?3-qEQQV98eJdG=c|^11bP zE>BXxC$c!mAUMPAdiF8*6vhUp$ky3jKl@m{4Ic8@l_~eEQ!6Ld^EuK6BwN6p=UjO$ zIfd?QFW5Y{zN^S6VVKhGIz4l4s&_|li#vBGdsqC0t7OKpPuh;Dw)N$~E1yMYRU$s{?+9WC)}wwY$8 z5RHBz8AtA+e&ulJAsPX2ui)I2TxD|wv5ow;ycb|r1>@gfo|nucZkgGKN5nk{?+=+n zKP0Ysn41#&f3x;3V2)kYov-%M(K&h?9UZ-no~2T$RFYb)R;yGhRdu<#x?Ei@xBKOC zyWMU##xERWOw$-+I*zd!;~3*Ogb>Fxj{)K#;BXxW9B>jKBq13lLteyT_!zE32+qw% z7?R8I5t0BG%lEgos_Zr}xigbn>el1D&pvyvy&nJdU%3~FXYuU6NIuH~qcI{*T|;E9 z)q9_{q9fe`+Y)Nh+ia?)t`>OV?~+Z`ZeV8LobrapWC|AMh1`RxC`*K zZ#?h2j4gxzvy81@B1iB7iJ?hYL5Ix51`^-KwyGjhaJV2?hlV(PBzbC~%celkWoCl2 z)uaYZZ)!K5r^_zgyt&o7YvarZ%H`ct(^zKj%O5y;)abNcj|GpDU0wRvhdBjkER#J}Ie_0Ay)ifHFI z5nrJqw`iO){F*fXI1VD$lu7627JOXXnkdph1d54AG)`om-cD-OjE!90IR-Crp(7&4 zLATxFFTqFe8Vh_887g(Y1+gu2fPSjOm#tq+*9mzO3x-N0rVDZGl{cvyg4k?E3ftGq zvlh@?0th8M)&Qe{fne5|#E>FkGig&R5oa+*7`2E(oDCBeOSb62lY~iT{!YyUp0Q9# z*hJ9d7q2HdoNFX6yy2F0CxW|O&8)wCuGMUoz&VWGrGCYL;49awr&E3&-VA%9oRsi= z5CB&!$w5ic#^R2LO8I;_7Q+M!SvJ0&%H-5iDwS|U_>`&lQOo<`-)Od)gPZryKJ@GNLm7I3>k znY^}U@+Z`9iixAc zX`X!IyJdEl)--oy7Q+N5Low%=xCKH6vq>CwTACOSK@=}LGZ@CLQkDC;mlwFkvS?`d zKLT2%=W<1w;TPa(qoPUWWzo?fDb~uE9_`|Q3(3&e9RiwCJs`4_YxdRVfquDSblP{E zKse_|-(6b%&{=Z`DcRv654oBz9-!h-Q3D_;9b|lFP#=8>|44ti-9EnDZ`9kWRWGg_ zUtT_YV)P~A8ylw}D?5Dp}vS}zs{b!vn~)m@slY;+%d89#h4>;J}k(Nos{!mZ%) z`?uW5x<;6fKBe#EhwtUz^ju`Lax)V$r2i+M3*7bprn`9xUl!4#r^Yw)|6?D+C=hk; zf8}2Ot$pljCxxcrT>azjWeFK9G13@8dvH*%7Xhf$ivfx2j=2guV2d`G&94o- zBJf(NDX6bnT<3bwPHHdR{CM~Z6qhwkoJi=`qVP+y4t;2BhuPXyyJemY&E-Wf%7FGo-9+L9*FcCJ-K9#y%{VG=II{t7U497Opz!FrQ-P0Qzeb!0^lAYCeM{i|gpv$-Q*J~+U zfq5RKoa|Fz+nlgb*{r3U{OFtG%>}Bxv2{}aRt^1@6&qEYkos(Q3V)$r-IO;D@Ay*a zRaR}!3*ytBm8`sUR;#>YWl@?$TeGw?jW|U3YrHdUB>Z}`F=l*lig_F}S3E*|6@7}b zne(@*KhW^yXTPHX(BzrJHsaNb6!$WschX>#NA$xa8(PtWhEt~rMql9Kq77r|^BRgQ zFy_xU2BoB(izUKNEOIBVOON8|$z+Ns?dZ3NBkdNvIfsR2&)Z$YA-`>VoW%C1VkKS@ zxJ)d?@$9cHKx9b{q?$Z_5tPJ?W;M)bOHUGqhMx5F2BM-sU(F;aU^dxh+$+@MOcERG zfACVO`eqX%xH$pdp#*k_sBxclTr|?az-}b&+KYfB4M>j%2vbfUetaLtC?GILN z*jRt?hULMaTI#&EIW5a3xlxp~`dnko$%&OU67m57Tx- zbR(J1$E#&oCA1Mzsp~E}dR2`AjYP;Rv;Dn4|ACN^EMIcqmcwT#YINBr_usd&G6mNA z=*r%(HCa6{eZd7g_ZA9He7JD6d1X11OrM&&=mhQ=V+o@y^nqWxXz68pmXta=XR2GD zee`>~;^stUSTp{!+PClQl?M;j(nhed^T^@jKd}dOcHAGwyy+Dxx&_j5KSVO9YJ&1^ zYq+US*o6jfeu)2Z%VgV2fZvK>L!mlRdts~kwHUF0=0aih2Nb+Ec2eaz21=<@J@<^P z!Mps-IWnBz`wVL>%YKIQqbsSy@Tc4dKg8JM_54^U8&$!RKKoUf@zi|`M4{9`SiKMz znjm8i*{bj_LK!3iQ!X2ykryz$DgoB-^Regy`S$$L&aFE-2bJa*#-@Bn zlW30hKpF38vY?;$2X7m-5)k$o1MpyL9en{GI(-Buk8pj9EkTT=**Kwrhc5sT-+3M> z?-rr1@aw`~y8?UK50&^S{$?f~kL=qQg|9lQb9QgF7K1I8TUwa%A z_h4%+;tyMef#Q$pcL*$IL5XFJ^Dr6~srcj&`Ibb!(da7*wmE;U5)|!UUhwm1K_EfE z?O-MhL}QsK3~PkP08;Su8HXYzWOFP5zR4_rr%yIP+s1mB6@eo50@t90i+<-}Fe`)Z zo%4}Qk}|1Rk5A8LjV7CEV@?lsEt1sBkfglg&4eBPA_^!Cx9vC0$GS3M`SE1HptHCPu}i8BC>!)1)GaaK=qQniWZh%w*j1 z0Op6>xQ!UVvk(JfJTX}bVb_F6q)C@B$gGgnrQo1D4dl|KGvR}<s#O>MV!L1id=rp%lP?51ALRj>qye$)1++X8o()CiVBDeoQ6fcXo@$3`o&ue`oeVA)&})X14;#igV>5=9L{T)Ik7ZD^O9U5 zFK9wjO+ukvQ=WZu-dwP!yTL60oAwY*P%4S+l>Uk~5k+ZQn8QjJ6P)>zE%~Nd&M?-; z|Kz~%D1=Af8a)+-Ee8pwv0$W^F@-o5DZU`S)VW8T8kRHdMS~Ck2!D~M(5?XlMU#-2 zD;v|IE&hqAj{S@29W6@J{RFVp;FWquuG%A~z(Buov1!7+vcp^-3MG2-d zi3C;4N&TT+@rnQr0qA0po8jl^J90U}AoxQ&k%+x6^BT&Lp+1LzUk26F%QP~4(V;3y z^Ernm)H>{#KO_jx&<^-;t^m*UhQKc%$%Kb%fx>t5_H>i?IRWue3tRM5R1(38ZVirR zmQhLUjpl=CHU}>??WMO8{5X`i<1Iz&CGSmdC{9+5Nug#HN7KPoyEZp9P5URMwWn|& zAV?X)pnAq(jOHD^-c|9vJ5uFTdxcJ|uA8285ngS0ab?TVNTU?}1E z4b3yTV?lxMvOsKhbJL4CFfBPT#1X;u%G=NrAooll%N@rk?d zzVpscga|mB4}C(06I4PMW*tD!jO=&a5wwyQGjdMVYo|e~?6hraFodff6bRrYY<^`(1}o8HvO|tP%m2=OgprKH{Ul zK<>izbbGKFndw>ZoYM3!2&fuag0pb@)^s1%LT}vprEl{hU_Jh_&<9N*&+qw{JrCvr z*oRi3@wOo=%t*?EdDHgN#agu#v|5ly)4vLZ`qYFEH&mRGt#m;<0zb%1*ezx9g{&V8 zwUkQPC3mJ)DTfn9CldURwOaTkFG=OpeMT41VbQ5p%Xt@p>89{uF&M&*kkfg7v4Tw% z1)hMrj+&g|C(j=ijFNVYC%&f zTtF2f-zNHOU%Itxfz%pGEXqHJ^ymPqjx};i88a{!Gr%ByAI2b)T zJa}-Z{BorSxJe@#5Qvy4Wz?QkBqm?U`+=c^3VLVAQN!hC!STY~z~PCq3~)7CET*a} z(Dh|Ve|>mnW`6X+!NG&`>eT$f(aGMKl5K}b+QO`lkmv5LluOXagOFe>*GX$m*iN~k z4tR06E~r}FlO2>Dq7)RyiR-N_rttSg6VhGIYoAvJ?hd?>kt`2a988+eQOrgpAWbIr zBMRRSf1*il8%X*KhSK&Y_9&xRVjw^Ki8ZPXkF9}?OIsIlXTlW?^K)xbu5V3r(MsO$ zihkNX|GiTc6_u(#Y?JpYot|vbJO8~?VTG{!``%YIul-kzJ9h6DOpn6{Tkl3W+S*@^ zG1*}$I?UF}@g|)g*}}UYD^8QaJwvYU%rno>e(JeVAOY_6_X8i|7Y#K*uaLF^v!@3V z>WMI+NIH;K-E?Vs1wdjbqw4%+W8W^F5iCi@YNGLoH(4}1!Fh;R83hQig$}k!Mz4%o zMyq@<^`Ig)U$l%-JjqHK%XI5`aRQ)6@^IB8JZBiqXr@Q5nh3_6cpLz9-zmD_*ZVt> zl4daPyyDcUS0D_jw-RsnnIf@;K)_wU|tRu z>vK#-O8kYRU3Jyg(VU$eC5ZRe>65S^M+=rtakOG&GHU!j$6J{cE&Iq#{ad!Kq+PZx z4r`ZVK}TO}c`#Sr+BG&|b0n0JiJjw%b#9q^`4K8=sL13BSH|)7RmaNsk(bZCf@|Z} zc201Ij#IQIomd{T(+xn}Xqt&6u495&6>Rr%33hl9<{sf<=D~X731O8 zH3x%*mpGdh-S|t;{Bj*Rf?GhmzN}UqVLy_7Z(87W8%h8PBr|LrY(b9_P0P9kLsE z3z;7v;fH`hO?0k0RTKE-@4lXL}B-o7e&b~J$rKxpAz6lWz=VS`#T zf&*)OxFg_`nN`WJBOQxOGu##FPF^He>XHB0%{F1I=bjCQHl3+3|G z4Mr}f3`$njyhu3YhFy=OC!t^qI*B;*3WYg1ldZyTJeP_Eb9sdhL`(`NMkGu^bg@WM z0krk4pb1$|IN=eJN=0L2YRLPOG4j4l-h#%72&OdmYxu!9)KuJo<@~J^i&7QJfe2B3 z2JMt=4c@KR8d#1fJpEZh}-~dtZ za<*M7Ojr};jbiJ#HIvV&e7ZifY`3~Ml1LR#-|AL5HoM*Lhh>-$na z7*)pHyH_f7#;j&52$?*l^KjmbDkpRzk_3B-suv1gzjc$!*usXE(A9neX%c~d2QHe3 z3e7}tGg6d9+q}(%2!wz4kDgJl8XZtafw~wMrBg?*xMK8bHF;FMNmW1pH=~b@KE?&^ zn;d=JEfnLsjvpW0s;Uq-8i7f;1NXokxI`V=K$?J>j&|p9e z4R9@$Vy^|kV|4MBKKKagr+2$2`~5EE0z2(itJQATYwN96-Os<_UbEfyqOD#J%D3XN zA(><3in>OT)P_c@%vX<+>&ThFbN_{B@hpU#B6^?$2>RL>b9 zBV$Y$yJ$;ffEE`rT=!}Gi`f5QCm8V}Kjb6Z5WvgA*d5u(;b~>#?a?l&voiIwogVj1 zbjrzbKzM<5(xO2;gLE_<1xK{aK`}g*Pg{azdzRt+x$zV1%IS5uT>K>4k9BLi0W<=# zb~j;VZIcm3N0613WLr`7lK&_RoKVD+{6K}7WI*v^?#N1q8BcL|C#g?7jyyh}TfxsE z`T^ni@vbC^k!;a`|62~g@pRT0&dnJepU5r92}qLG9u|pq17W5Jfj$dIl5^>ckp4)# zT!2sw-6=V|$a(Mp`V52SY*X*fvJ6$9r0FH%n=lrHDuG|3VR9^9S%9irtGUNaPM(L{ zUxK#6%fl^ok~Y@>R>$kFn7wK<;Xc$blFL_uD&+``woM`{K{5V8U;`eI(}@! zxocq6Cu@NGQ4r>uUdD0o21uG1)Lbr=SGAqr#rBL=D*h7=DuGoY@*+Fowh;#a+omia z3e<9yKQ^##9Av6xq{-8u11*>2M~ehBYz%b@r%J|hR%!u9B1{!%@Z~WCMUz zAWA_i#)G0Sf@3iNQ&AAvQs0>5h;lcRYKbq$sF6KwT0<}cjw{{>M7&`-^){oo4ir2? zfgJv@W7tZnAT!z6QwGT(?jm6 zTy@<{%G$&@;%el4z(rbR%s#)xPl~UzwdsD`HOqj;S<;5tgUq`yqCM=n97Ad;b1Yhr zpi-tAx6_`tU2Km zsY*1QS^rF(=xO;=6}&RatYq-#oZ&8N)fWDdl(YI}XdNuS?fZvuYZ=UCz+!>(grn*& z5)?&;@gk4X$sbMu6)V~#)#WW_PMiaFw(7)zMF=fMDjoJyxcEI5@Jvx@am!#`Cv0|( zJJl?L!ho6>Rs*K~MEvr~L@FDGpX9ydS;uW0U|}=#2m*AewvxX%JUJP@IKPrh0<(~r zuQk!$gULdIpn>zRoGgli!wkm!99L+22{#o9ao1)zsYoy}LWxo+-iMvMYbYMRYjjiP z3ey_<;41QB%A9pAGFK9&E%*qEL>Zw-G7jN~5zOT<|2cZ9m@G>NRwhQ%zIsJH6Wzf) z%@yHRA$@QP$4NeBafA$h6a@|swqNd@?>or5Ru>my=nbTDX3}Bme2>2CHQJX_K`I$c zQ&#i9hEfODW5+^C@;@(aH_^H9e`lge$4rOvU25mXJUf_AM}nbftVa%|kq5*P1DlEK zhkl6L#!@}#md$WFPr2Zj@5iZ8Y1?MTjHO~!vqY%~eyv+gsZh+Q)y?%&WwCpX+*F8B zE7i%bIurE%mlh@~_KcTgWThg7 z7WpIFv53Qr3#(ZE0tx_2Wxa@R*#L5yP@OB*FwI^n}BVgk+pfQ0*z3p;#1`LFTXebRoRHd-qf=T3Wp3+R+zw zeDH%iim*hX8x{~Mu{brUQMh;%#$+@UOqj?(`i{6XdF;X6xKEuBsJ?By0W_1iyrpw8=GX$kMNu*@6fTl-Z$%4fqeYB!$4n!WHSnT) zxa3rvQ-y;#M3HcKwL%;=m8Rl6gE!$N(y=hgs^KNQd@G{f{M6@HR<5Xexib`+2&$K- z#LESRN8z=dUvN??9C3cWn^S*-g847m5cd@+Cv1*rptra|1^~lgGS-SUB8Uw=4mfAz zCmCDF(?o?>fJ7jjXfkYiZk{qq81BibOsQZdXb00~KG+k&*G7VwWD^6a3R5iAi6*E3 z6%EIl-(N7Z$j>UiXxPlA6Gh7wwgr;X%7`P|^}z(k5}CM%5uD*@UO?NY)+AQid@ieM1=M>p0g1%5594R8h=({c(| z&5G66<11MKC=6pQYfHDLP8y2y7`2(n5-%DLQ&FX~^P9(z*Oa#A=&;$XRf~B;J-`(0 z;n-wmVoLQ%HD;EeJ%|G^&&d4E1a}WP+oG?>ppgJP;DgXFD@W=K;Ekx*H_{A>!mpy9|c z)HpoZok)WnSrZu?#zacszoTQz34qa&rY?Pvi9DP>d-)<|&Y2VRpFV~p%aPt_r&85o z!G_5=WWkpR0Kz5(;{p5H@#)SNR4CtLI+LD z526v8*hF^Fn`YT`dn@$>nO>w`=6olfQ);T3O1tWfI9DSq>=bilC!Qwj)S0VQ8@9~~ z*|<~mOK!Z*Vp&kd*7f6#@$vd(wcBx-2a)_L<)_oV8jEr{mQ|qa35OF2H_<7NUYpJ| zNCep0yz0uTimVwgaTEOJe&wFWHsXpzi&02zq9WX-khE&8cDMkUf-KOs90GpJR2y@0 z$n-K6zXELmK}f7pxIB^K>VhvMljRoMFSe9Xzx?uKxiljLnyFNMFW`@h7I$A5^b#Es zCllFdcy;Q&g9GY{94r-!>iy@U2BokB+-y0;l@-S|H{CW+m{ca;@;0N_tZwxBwbiIa z*%+5VKlNf(JBtV3k9WMtUjsDM7}GNLTg9jyc6s2X5-Y~t{W-r??Rvh#N}4XuNzprHTH1zH@(pk0=uBZyKu)Z%7v zpajE!gbtVSnO?$Yg|NYD3!JG^Sy^niHkU@9TH4%P8h-KIxi6kOY#dwL|GVq^@4xQa z{iD!d;&O+SMz|kvqX93mqi!|>vvxRTzcXU^%81@91I0kYOStfCS?WDIT6;#ny=QZC zkGg2jrh4{E=T5(p1B2byamo$j1~~Ft5>Xqcs7-3_!JPQC!~?9KH5uHxam3h|Zb#iz z!yBCV=5fH*t;OTtIxaz3XXUXwSC&s4Ul~%hC!-!pIgesO43D2!Jb3Wj@WctWaGd2k zA6s5t8lrgP$Nr~)$@uzHyloOAwdgx|mB&L#9>#z`vUD99T%;GyDdgzZKtt1zZ*%pz zVU`3qK^CN!eHN;{ zKn~wwN%K5h1#jlh1-=~kwhAzte)mUHTIbrbQlx2Sih$J8IH?;AOzN^EtFDllTS z(bKp=drGDUUSkn5){VrhmWB8W2ZW5zzw>bmFwy9_LmvSpOq-GwBd0BDIZ_{>zzceo zR(mDNr;ozP@BaSSn*{?g3tQ=HVvI4K+Uy?G?QL|em8bc>ZAEG zQE3}AWN9l}E>^ax7&fR0U=Ny)%xY4tiqptpdDe6*I+U2abg8+myOsN8O7lb03shK= z`{y_a9DNM%)nZ@kV>6?n_Km$8xdlsiO{+~o$1QDZAF?!8-ik5@RmGd^#oLF0S zJ+toCZgSQ7g<#>SXDGFrl@l8Z~s~=-H8^A zbQBIn>g<7#MBxdCM(?iIrsB|@GKa&JWx@Gm3QM}osT|~Ifqt09VhQBD95m!bIvJQ! zvwjVpf{7Y=^VMp$GF^j*1IuKO6^umM$)Fogacl;conKnXU75wcBxTyM%aL4Gr$wjo zu;y_dZllg&3oR7MSh$G&%83<`*b)^mt#CaY!RMKcr$7qe>AX*TqSRi2?7;i;Z=iV_ zi%Fu9o|@l`sSCNlNSp(5)xk6w;1SrhY`;{Ah+=@{PJ?f(*l{&W+3-kuTL)h!hB1sB7_F?I%xgqy)E;K?cEb};mj zAjuj=B)fx4g$;-+!T+xOpb#0+-%XX+X?b9f!kB5eK3Ecr#>0mgFcZm=14hov?#)h1 zFB{kw}eP$j+$I8VyG>k=P6X3^NpWCM3!Ys}avA6titCKgLF=J0Znj=oBGb zLtfBn&Qx)?bCYIW{gzjj{t}4|jb)BY3<66jYmmtP3GnaPf z2S%ER2+nOtmY_F_G-KdC@YjT75XjwHDxFgBYK{U+#J=86JfIu6a+@#KHAJ3?;Kry( zgFG8gRY*`~8r-*A4qA|y+DAGEy=GU>WjWagS<1&2G){D8WaUCdO%RpVhm<*<%0?Uw zSEx(~>W|kO4fDiX9$DWwj6;2W{qXSz7=fMkN~`5Nf^Oysneekj*Uo;!zvR3O;EiZNa-m7P?pzbvhO=&h|8b86~>%dbx*p_iy9 z+#rJ$x;(5PFknf*0T+s`TsGnbtPZpeWUHo+P!xfU?>Ns+4H7d2qN}TT18dP_#!X2w zW0oDK*a8C)En3XEZMrI4_2((ty6pGHVnsmn-TZRP_wR2HQmK{;%^YxWw^JMvi2&9m zY%+|uZdpq2-uLO>tK&i_56DPu&rD^~Nn%Pi^mO_1u57kC)o@7+WSW3#X6d}^O_K{K zmVkgm#~GV1@N#m^8hfFAHZpSwG#9nv|KkpR)c78~o156ap(n}*|JB?1QNw%$+gN-1 z_8?RFSMN^aJ}*M={MkSmKBptZs?G-PlUk(`*x)9Z@@3+c&dCHW_a-Kd4!WQjqYg+* zuymnGM;|od-;~LkpaoO-aG}Y*VgdPe5E*(yo5yL3X29d*NH&TYN{9QrHYt8%w7ayApR=T0goh&>j5575L>z<^E*dFou8)S<175H68=UD2^WEi*I&~e6hy* z3MwlBT35ZhOYSFR<_8zAUhEVX4;)?U8L2m2HByN#`=>R zMCjyAL@emzsl(ez&-|zDZ`Z z6Qx)vU`Z+>85@T=Tv3kI2}5plIyxL~tRIH}f4IKdZavt}tgK|(*mXu@QQMxE@?73X zkGlkGWUO$}&Ik<|3$&m{>g_aW{Cx^jEhzqtS#f*tsI-%iO+{l9RjtMo6dcR!BQ-q7 zUKMT0?;N}RwqpZKeMn=X=Wv{R{iS2ao~Av|0gZA8lxAA0dSE3b7-+Hi*Vx+2sDG}t zSwOalx7<0lIly(Fc?4Mlx~ji4`ZlaC@@1*omWhmWy|C4}u}%Hln2&o#DkY{RwloGd z(IYUd1#HaQ*a{skjFC%edV?jPZZQmY1JrI4?nX&g}Dx70O*Di%*qms#4i=6LxpI8yeqGZ{8bzS% zKkhoyBAkV810N$IN_z%1uC=)>;sVdTjS4 zdlmU;w_!Ek4Uh4g18+B)bgF3@6XL*+xF*j z4E@X;g$*-{Jjp%DR{g7dcA(X{rLr> z=5^OyAKkIo+Vg7JVR6S_|J=pbzxpTC%J6+(SlF@HzyA8`Zn=KPB0$soEo1c_)4czF zl<2pj*%<5Vs5jqTyhpyT>3@8IR(t5>tKar(&joG;PmCG@dGF`}YqPz$y1aaA_0+8@ zdZwB`Q@v?vIQ;nHnS51`m*+laTpOGquN@zQ?h4Gtj2f5+<;l~1nVoc3%_irJgPGLd z#nLI~@6cvS=c@h#Ii`%<1E*G3-~NMs<~y$YolL%Hr~`P4^TWLBt*)LLeO$&R&vAq2 z_#nQ~00Tk`WZcj?J$}nKh(H@V3T4b{$vtg!-<^qs6Z3noxZ=(`Ph7FrsS$O&;#-fY z<5zt1ieVz1j$pX`LOPuoE~`5qyK^sHE0uJvc*O_b)c8|XUF+x&hrA+tw?lX0k7drpwET#f>A?&55KH*6DRD64+ED1wW+)L-UWmY$d|}n=MsM6TS*=d( zQg`oKtyVvO$^2k2IJh=D8zbyqNCczDrsuRAmzuV(l{&?O=-uuSkd)9kBsd^Tg$5Os zNy}LApsH6-!32}Zl*W`h-=N?w=36-u?LmC=SN%-7{8`qwN}nw^NS2_!ZXdmbq>TQw zCSjG_r?=8amq9!2LeC2%0jE;}kOrQSXk=EO8r_UJjx+)}H5K$k)xe3Aot`02K;kUT zc`Otm)E|2wN&mwFqI+Fkbq8edE}=^FH-Pnc-7eVhjefgY3s=jdM^E)yEXg+{a)L6E zcZS9(fi=v3r%$bfbgsL@Art1*M*k&gVAbJN`Bb=@%Z5JR-zb%KTy;u)zPoBi++%oQ z3St#v{h99G_q<80i?HT~k@@@WV6849JM(5*RlqFV1TdQC-^WX~nO3+Bt;&jbOv``n zf*uA;R1;gE%}b$Ufu4-#{@i%75XTWsf`buvJ}%8gM||+c17HRITnzr8|?gTyMHv z2oVXI77G2^WIksV+RzyJ)03T2xtWBxI82T!Rd$$Pm<{zuEcPymM`1GuIhU{UMAPN* z>v=p*JN-xcK$bR2+LY2wHj^{yWG>mWo4w>hGH0AT@x?EmP@VRPd+s^WhCk}jzB+Z+ zUHaqkXFsb>^+%5$Jg7gmIB)_ta?H~lb3d9YJu5x0or*N~LO(10heo6sd66-Pbtg;a zwwCo~_W_*lW&7g7+}^CYkSnR+R4|?6+tVE}Rf!e<145tfLpBe8U{G!wtUWFoCQIlA ztUOviOcf1GV}KNF5nh4f^4z)67tWpgT+3{!)@m2mg*Z0Gvlm_{lDlfR^)LDrSuXA+ zrH&L233~*8dhG?yysD0VF!}+W6!W_~jHd2uV}481|JZ|HB{t{u4?lxeTMb61_2h?`h+S;=QMM?v~YArMw=x>=WO; z;kMOw(I0dNSKn(GxAzxM-Fw>#!)NOm8npMHG1rK$s_la2n2b{lHC~)Y6Sin8THLqN z;#N>bw0Mn?nN;fX{A#LF%db}|>r7`EW;DN=-|Q7h7Y40&s=H}G8CbU7)`Ep1vt0fU zjmpksS(QqLs-!x*_wL_!@mza$GUWyBeZ8yJJ6TXWiD7pMzs-El$JZ_WO*-8nuJujG zxmn35Ruvnsy7<)jz>$x$k12pFOfBdoBr43#4Uj(5C^wAX-uw$GO{!uRNlU2Iy5(vY zv~$_4I}e^Pjry>Kv*ewNl|iGPQJY|Ygd9X{f6CZU}__u}aPM~qm!2u*Sx$g|zOLY6!1D^cD0*x z!ST8Qx7(C8*=bZgvV_imJO4YYc2ef6xlD!^2UtMcn-$~lMQ`YP=P$s}wrOUZ?KT%R zC!h0NfnDPmmYvIzjYM6|9Onj}-sD2;>G=hFE^Fte=W|ZO`KX}Rm>i$1sP9Lq5yqk? zgyG#W+y`85^hI!_`AoE9xP-+)Tgj$frxjgpf7UNX>lOFG2Rm0A-ZHKH#evCKIyJ_z5M7O&Qw!(dYg^#m)tvgr+ata-Z|5|(>eWz?%Cd% zp1L{KjP3-tp}>uFCkM@Fx?tf!?QmHL3r6=}Pfpr}O!U`7af08!G5VrO{iB%io9wo% zE-d6?^+`AP-k*KR=&{5~;w@I%dzn39C-x?u`Z;J7-+Xl;XIJbG@;h7(|IAzXoK+W} znM~f{ZZ_>t{#5T(vv)kR>(%``6R-Nui95Qdd)s4SY-8Hw2tcR#g4AFL6JI4nsx=#t zlsyJ10>swBQ_s6%q=*RB(g6Wdr?`s9Jfqe~)m*4w51f4D)|ED-4#Re;EqFqdqOmM_ z_@>K3R-xpSW2J(Yd?6LxQGCt&9@vd1we99OOuC)UXXas63q1E7#_N}1zl!6T%Y*-) z28FRp&4awSRGp-s4++d!3z;Db!1Qot8gD2O1ADj-$~ESFsQVb$Gh%cRx3L=w_&evp zAZ2U`=P|@lina3;iDc>8K3z3i0gOa6ZGp&{F-y#B*jUIl5DtjZA;-)%q%EwT%+l;K z#Pv5IG$rngq2C8Z3I#XQb{~i@U%J8hhBeK|$TqCzg4M8l3zl75fCj(m8VLnFq=`Jt z(BLu&u?w5Zo{~;%H|80ca;QcV-N0wL#kXE_L6R6mZZec}z{Hv>#y-h0fYE#b?@E?C zn1# z?(LLEMm|;3aJ>KuQ3J`Y>wv_Q{%wUKoauaJ_38s>i#XY4mGI4 z#?6~}KIs8SLLvz$0>E3?U6vpdnH~AYAGre>eZntirRCzP6||?}`Q>Q17WJa}XbNYW zX?6S>-rQPVz?DWyROI)aW+c{dElU!tD?Vj%|5#4p7rGq?*f4p(g7##vNjLS$xLwPL zM0Tm$B3Kl+1{B@#PgL7$GO1giqoNC6qQ(Q#srf4segSsQ)vmijI&Qfs_4fo{tn3j) zPB0kxAhY%8qpezX<{~E@iJLK|xbh87jdD|VgWCfk2#5Gq$|WAiEs^|BYP1(B!e&*%o$|-g(#*-;d_Y* z`in(;d(e*TJeYQfNd?LMCu2Ko5~U|PLLwl+4kPJgVqsDnB1Xdt&n$-~YN^-%RYk`W z$r*`Kn*^MKD)5x-8SV<`4VcSZ!i@VWk&et%<|C0-O!;fXXF@@NiODkza#5%;j_syj z+6zxlIB_)~BqPo76j2wzc%k3{Ty~Q6U`2w^gQ;MWDg&2N9l{Cv>LhD!-A?M}wquY1`oL+k3lddzq*ck!W% zC)?Lvvf|;L;vwbAlLcUU)oE&XUwj;;X#aCR2z(G(vJ*?OO*EyCwz5Qh-!-^*WEMRZ zI1xA%xQ48vo2d7D2H(e7X4W?_x85IkkW8b80_Uih^S;3Q1CKJ>emL;az;6aV8Tj46 z9|ZmoR)Wt3J`Y#_(}Ax9{wDCXz&8Tl417EA&w=j;Ml=IKE21eW<%2h@kloaQOWVLG~k6kX? zbH4xG{r-24sa+OQonSiKpF?w{y@+nr26G5RylA|D$*RS@laQ|AnlLG{P&1oT;ZXj< z=6^W-`gs*fhvxUb{*pf?uts2&08$W;NRaO#vT;O9=O4dhF~;=#c)^R84cUIYsXmB} zoEotGk1QL2c^fa@K2vC3GVcFpma#7<-8!oN9vu8O1_L-t306x?U-_|Sk0?Ma7WXcA zNkl!dg39jZ8}KTWYh($8yT)}lTrKO8Q0Uij+`2CFZu?6TH;@y~yK z;~!eP^umEV9Qh3|KGa(X_3=-nI|9`4Z_2l=CBd+n&+D-^BXOOPcfR(4J*!6r^QmYU z3=LjP@63}}aI&nc1Op~788>lEp{vW~PBjno5l$lOA|84299X!^>94c6j+k!ZX_+DmEP{byoyJJTU zDacF&f^Zf_9Ki@txBEjphrPk9X7mD%Wl^{ikm{fz_kP#c3_yLi)E80AiZJV!>-FB6 zvDR&`njOif?oc(gY!Lfd()ZOY|F^s5ch^Iq-zn8*@_7FHtG({(1?^p65Q_ODUNM`s zj94-lk6Dq%!g+B>2WbkIhSnjUzj6)g)sIOKH2}pVNWp9CiQ(Nq(UHd{CMsH`psBcS z?l0RzHv0Gs^?u`O6GFj)8KOhn+%#>22K2%`_AIMW8+N)yu&yMb)K4GGtSrJ+=s8~M zaGx}lR%0oJYe(4b$G2{-w!5?ib&AVC5DCti!{-~}-&0wQEc+e1(%JN$@U# zJKOU+clCD8UzSf==1s#U6J|V^j2TuoTl9|Pi?NtlOt&w%a93}&uWF@2y;k}i%bXtT z+t2;?z^ZW*zIB^<4!>-=Pj_X43+YezW`NcaXQU~_b|*$m%L(b{=#&S!VsSTmUyV5Evp4sHN)0^%PCc@0YttAM-2cCH z8khg7LoR0irAL2#qdzm1iY}B^tY*FvDVf%5FHI(b!7J|%#Z$RL!B0hc6AL@s*sjH? z&A)h?9eMm@_oo%Bci27};bMUs634*;8u9Q&w!Sv(*VtD`S_b zF3nc+u~Mp-n(X3Q8JI;B!Cy|zymPm=%iVQ&?I)t)Y^sqyx~DuevvEICnVEkruq5;D zK{PGtGayD(tJL3UOidWJch}E1I`6D!;fvaF*-R$wN3WQ&OY2q6&LphVgGq&xd4m zB&TK=7&{e{u+T5)XcifPIozTAq+xBL?jXt{-W?o)3=SQigq>^qlMwmwI}fP#H7D*I z{jSPfvwqDF%3krhwXgb>FN+tj+BNf))<-MFa<`m$Umic9*Z1=%L$M&5psY`snTf4tjoKR+=-1?XQo~x>|e|J2Ya$fn$@%t2{*dpss zabIV#;7Uk)aJ|WpIHi)}TsEfhQpgR>P3Z`TjU!%eP{IWw{Rinoe)_~+8{YcaO*J@s?But9Sw_P^*j=v;s+K zrP}U#eyYpeR`c&n6^*mTZO2BB-FE!8`bQtF-n)5PZET+I9AExcs(51g175NG4~?>K zmh-iHs+~-xQ@#0S2_25#@5q#^KCTzxt_nT(E_mw}@Ij`z>*>HwYEv9!jOi47%)M#s zyD`(=bYnc;`@^lz?cYI0l?Zu0v`D~Q8$0jBEo{~PTNd(gQUu?Uru0Oqlxr61P^?^? zujO*J{n?33X5vpuje`d}%bj}ZiVuJ1@t?Zz=dQo*!M#^}Sp7wX{W_IK8GhYX`Mt7R zX&0dMYN0!kWzW$qrCckS%au-F`_rHNR}wXR3Eu8o0;kcSUr&vj0K*;Qn;;k26cX?vKNdyTAI^)`J7!DS zjn8MnUI1%}e1VFMwAtMB-1HpJz6~<)0=1+T>}IZ+qavyRPz7zn_PoX$k9S;{l}(y@ z?c8`v@kNTtfb>F~p(Y@o)T45=)CeIoU0z|vjYy$UDt-RbCp84gY< zH+=V7$YO2<6Oy>^#zPj463gl~`Llu~^H@eAjt@z;G1$gpL(|&5ORra~vLM$m=aw(s zd7^aby`~@fcZYVq^0Eu9w1m&jo5O{hA%WaU&H;a#OHyPgJDr?XA9`YR7ynjn`@$EV zKuLM_L+YnTcN-_47@gEuoo!!xihf>ad@lr6>E}7T_x3byJD%JEpSgwHls%nek>;9M zn4>C8=!K1@7VxakO{z5f6Rc|5AAe}A-KcrP#)*e&txYd=YhzPUxwzrghMNyOyxx*^ zt+6;4FZ$)t(t2e=UG&En?4P*qu^*`Y z`^z_6w6V4Fu_bj;`8tJ1{etz0in>U+yuTm#Gy1pU?&9>|cLjc*R_YQ3gRi^UAJj5) zp;>`Y>3K}|uOYG*uZwo96Dk|(y2rDko{pXDLncd^7THX?AwAqcZxtl7_S2xsvO+p) ze_<|@1-ZeVvTw7&2XnG`LNN*DBxt;uTy{phHZqeY6!A^FM+_e4RIMq9HG8@z7>HSk zclNTB-9c;0*amLiL^hF)`LWSo&JZP!?#M6a-N~tH+|6VOQDT4KABYD5KLQzz7c-MJ z7KgjlUcm{4-NKr=^JHgw@4C9O4#*N4J6JAE4Wep3U&s-u;CG06VzFeVgr-j}T1U{3 zsp(#nijP1fV=6O|0|p=6BYpwBy+&C|^<4hmrMNgFkp=ksp)~l);*1&FU0OEHbh;H( zxIzTstH=-1U{=FV<+$p2H&ZH^W+OqJ=Dj<0D8R^5i`B5~PSi*%b1G|;6+9DQb>ZCR zLQLCpYoeWVZP^{9e8#7k%>Pq#GOI5y`bXl=5P~$|y1a?$Wn#P&&JG0J=SI(c9jwdW zBio(~Jgc}P9zqX4=o7KdprKte2ys3fh4Ozjg4Gw?n z#RJ7u$7G3Lv2F~^bDsoY$6W_Vy1e8l`lWH{7D^QVn=be`$>u~jHpIn` zYjQ!#jW_U#T72Rq6gkL3NgQqHy#|fpEc*hIYczXMV$u!mhMmha#j?&cxe<$w`TTzt z%JF&g^$C3LOpGnE_4&`P)WcyIXrv^wH1{J08w&os#L4;EfG^Chp~F{bH%*UF6LnHX zksPTu*9g@Z6#Y50#Ma~RqJ<7=95&@3+`9Zg*KAlhix7uI zy?!|z!>j1I!Pu1JRv}BH28cy9Wt?4ENS?~!R6GosFDxWr+m{7;tvaomKP>bx&(_;R#Z;y{Wd@c-g7tydlJ3*&qz^AuDmV)Y~;(-#I85 zcXWoz*jPUojUFu`IOIf>A+TV$QBuT3Z3TZY-Y3fWx zjrIqPN;W}qv>!FUY&7Nua9;QReR)Tg6w;|($#gJok6sxgl`fHAa}u$1^CKanyjL02 z@mTB`U&nU=E*ov!NYD0Y6qNuMjW>fDu}&}=Gkk|cb1xBxCx(LA>G@tHv3O|GZFT1D zO1#~6C#+$onV3AZn27WS87pq3I4>L>3ECTB5HXyHl?lZuKIhPoIU|~w*%h6w%(W*o z_#6S{b0Q`~;OMRq^r2h{#v@3lgsvhU5wQ>sM#)B}iJ{J+tT)*EC|60SC=$m#NpCRR z2;g!Lza`I=)Bqy1`CNOhG8^m6Bw{L0unDrsaQyeC5&+8!Ub+U=#P00!9$c zdy7YvliJvqNgAn*$+m#I+fx@OQ|SvgQcmyC#YSRb875+HWtgxkdwS_Jvr|EHs@t6k z8B@E<#;(G8!Xo3cyau&SD7;jjPCL#%zx$9uf+2!@N8CxGWd;J*FlW66+}2y+9s51J zkzWdY6>g+&Ynz-2K!&53)!26~Q4PcZBUs)u%LLK?ghc27{~4dyB~+1jc%&0ff-@qpF?6Hi4$a>}(dv&oPVM@AEG1=+70 zZMHYh*M*@3mVhzNjd`d!xoCO|!!*U~Ihag*fR&J`3&SO5v)cRu^_1rN^8?@%+*@uI z(9SHL5K@?M2=quD1(t_fT+$8k;`5B~KOx$~9=t#nh#X2RG(6%|Qn%2964W3LfeOgX z#k*{hF9MUh26j<$>7uK`(LsI3OrD4VL*DRCRN7u^XhrWkb=?P|CQu$&E(i`pD~?w+ zfL0Ry@QpfW_N)g4N&)?8(Q;~1$DAXW<|A@KYH|r$fQ)P)?O&0ClyW&Q{N4J*T_+Ek zFdR_CFsNebm{APEu#mJuX~P$*R)X<}Hsp8)nQ75$_2arDSo^^itKUOA}3O<4(&o!b~Y01Z}FZ zfD??_tBb_9^%l$qGBMF%YpQ$46Nd5lcb_yLze~bQ+)db#$djpKK@z<%y`mZJc$qwP zt%)AHgHEwhr6z3Maf@DbIpaYiBJRrxqb|8_(J@ANUc&&r=|B&wU;U}Oo(w(y zy^k5kNdc0_tf+F9netAmSR@-PtPHAT3&r5*HF9>9jC;~z!tDa%Cp;C)PPjN8cTstg zG#V-}8un5+*9eRFRO-#)l5#`l1mb2U1pS5}HP6@E?Z8PauJb&oqKnFS62p?u}lc~vXDMz34z zw){Lv7Y!ebwxn~A@!er>6Hu&*Z&eD(o*+O!0jPx z%c;7aDRy_}(<FBODz8w%P?+E8Rx zW_GJF#q&sGiCElfOxh6bn>Iv}&2gA10T5143HETIx7Aqh|Hg+t^o>VHUlid$Jb`u~ zoeQcM0;a`U!^^-IPxag7cFQ7yNlOu2h2SdVH>iY{_gl1cukny$sWUX#J#^)<8~T?X z{rg8B{rf`#1*EHhR9hnE0F9aDB`e8zH16gWTZLkZrX$E6b@z_jGXZFxN!^b}RVpVg zQyT6lLXpOu5f z-Ey=cZNW=glXek#PV2}hAFH*Z*~$zu-55KC<-5E@wUa?D>LlH6YgUqYI%-@a>*p4b z{Wb|UG;xlv9A35up>Lz0%*niB!^X!+c_bWxFVcV6xJF@Vo-7Y0Lqwl1x$HPkO0G~& zggB9_k|#dqlG4`^B%2q@j>Gm*fH@+y5fCi0nRqj8-3xMP${d1)+Be0`Td2n4jbf2h%vTNV}P%rH zP9M7o6Uz!h#X_noX>bH}AzQfwtw(65?UyobAv3FfTDb(*;vuiugc&Pe1Wz{O;dGI4fX!3LGR$6z?^5WfBQ8^b%C+DjJTRCaJSf znj!%)7z-DOg-x09WOz6H0}&Kx9Ch^doV3G~GMK>K%#fb<>g7F;M0$MHP$)Tti2Pg;% zazd2^K@f|;wrF!Sj9dIw24DzaMP`l`BK4iLVw(pjv^Ox3Q?^P{=oSgsC(@FGNTQ-0 zjh7~h`!B9GYiT=Q$xg*{m2@%;R~1l#aCk?tl7rf+HMv-uDAtolt*~3HQ2D~}lRGQc z>jl7o0%8OUAP)>gYB?JX0_-5W(TW3MNQ7sS@mjQ%FD0@46HPC%NFA579gL-cGT5qR&RMOj<$xvj72~}a!H@Egx4{!AQ8~w>>G)Z=I|Ef|t8wapAbDx@B&Bu2{C)2h! zJ*7rDz1f?)*EtadUEoEpD9)(LMKEK`84s|3f1?dfCE9C4Hne*9t{ZM&?KfbiKDd?{ zeMP1E8-u~d!zVLFt7>^CSHqUxgB#HIwvFFR;Q8+oN!u?ueLp-?HMu*YXWRo|$^lBX z2ot$WYQ1oq+Y=gsO2jUBA%yL4YnI!ZgB}^STEo`+mT#hvrsSac8!fct4?D%OD1KHo zni<`xHz}4Ynd1Y$$drEgOH!1*VLS{@^oj4^!2YdaZ5h7LXsu47Rm!-b>~2^XP#-oDw&~68|xUkN{I+E>uSuBObYVkxT)R}sHB|4sKh2~Bp(;?;%r+x;cmxxCZx*~cx zE?d6H6KB_4pw)B*(Ih1(DW{MQgU}UmuY?6*dw*HS0mR3r7xEm~p_jp=kt^Wn;*Btw ziI@oC=3)t)joc3Q6}RSF+@Kg=dWk*$qA_SjD^)h~sZ0^JywO+k^|E|lhsiF}bsIDy z;LoBI3_xi@4@Kdw)*S#tu;WpS30{)hdgv4Ig9}ln{iS0qEh2p6jjloW~iPAy^@tH2 z;y^Rth9=*@%|l&|aRYaGw2v+qK1yNd@Gw>3Zg?~D>H!W53rxlE{{hFG2cC@gs@kt| zX@btss;0|NrHiF>vYc1*BznBA5mQL2ay%_gK{Oh>DQsA_atbIcsm$)|QYhGpG-A{7 za1a)ryh6|kj7XF})0&)dg0`EO4#z^qjA>5Zye9$SYXtw2Ln?&KP*4t=R*?*H*!yXj zl3y+zVK7re!gD5y7>!JWZx1GMW@}bhVw28wId1Cb>rdN zM<00LK)!Q$aj;UYox0-yI1qK(DKB-FjxRQD+Gq@lR%LN0sdL)jKfqV;9|hu6qahh;xrhJZqjB4>0g*v3E2 zXc6=wQDU*p=>1x8VT_0X9=k6YBQh2kE?9oXtT;t+MP@ML0afbYm#UU;Iour@;kDM8 zmE!56ouO$AyGK9ODf>$Zl0xpCJU?}C~4tzy9(sXRaArL1b`ovMX8-rOY z&LGiz^^1pZE|f}lzvD7K3%Tp}DYucm=uNl$5%S(o+l8gn)D(!m9C{9f3qeqi$$CtM zk|+eJ37m|{INk&!?sqEtchF5rt@Q+%87TuomZ?O@p}L1M)2A%eQxg*$D;VHd8S&*=u9)4bGo z(2j6vNSeJTeKTmoLtAT%ClxKt#oD0J$J)1+^H#by+@haFc=JN4>&J?!9o(Bb94HGgiU@?FiR#bo2J{IB^l{G-Llf*rGLUG ztbAe?5}T4x1FG`CCI}SJ=QGmeji&T+Lncd_f1fd!W%i$=UHRb5@-fL# zm_zxHIEem`$_7%gt0w9Yv2>ltVq0=`Iv`ANZrU!ZS#0#}wPI(;C=!*4JHtQ35L7ed zK7(H6xkb!ijt}Nd2qNg;B~)Z0xn=6D(26D8zDYF~_J;7*P!XmC|0rto3{GR)a)VJf zR*%QC?J^vCe#;IQ8mR1M9LC2`aAMYoGlSr3XlBglbTScx5}b%|sEv|r+0CfK#FX4% z#xm4y$Wl!yB}LK%z%qiDg@W{N7BCK#ztQe?pVj@hDZU%ITb1?MM9!k;cT$=!CWe5o1iy_O+so| zPX!g636%~r&$)SLFC7)nABnfIRAd52B{I^2$sNuVm4ud-7K3m_tg0x?r;$W3S0X%U zSqb=8F(d5(WU`jE$H`;JUgQvsQM0PREt%5Li~%e)vB>xk9>EHeIdnoL2xv*U{%s?c zh{bTBh7uSQF`S-7YTO{f%owF_fD{)>_%;eotayuM!iIw#g#9_r4ZVwb?l^4T)h&DB zQlvo>uF+v{6223^^qv9Dm0)*EiPJjkQ(7SX(m`&cJ*4z5#ojW!!u3z2@i}_uhB!y>GcURY|R};=Yd# zP8`31zvCwc1EbUJcFwG~+c>6+KA#-u_y(VrTYM1i62mxteEZ+2<4(qDv*~ffoX*+& zDEC*<@pkcmXpK}pwPX@DDxaamhm2X|Rzo6fyxL$Wo@exup@*52ft?nmzwA}q@M^hb zMKe{TPa^|13K0~hvQ7`@xa;Jr)FkIo8CC;7mQ(f{c^?NUpr(`=Dx&3xUi92E_?o_nRQd}3B)I_;i=kZM z+;B|TB?4o7S8|tf#oQ0dIP>e4RECF4Cz9zqY-$0eb$ZLL5jqg*k2qoF*cf2Juz|-; zKJ`-h91sOzJ&+sOl#}2mZH$*SiP;iMZ8T|O>LhV~N&Dc3d=q(w;|m=KA!f*=p{dcv zi?s7$w?B z1uE^D-=D`NZy7lv*y$XRBV6xpIb1Ot&Cc$M7xSyd^)~*H(ErQWyMV`amiN9|-&(WQ z%$k`s_cf!@Xf*d3jb&*x8qLVEEX%T@$g-m-j^hX?D8@LB1ZO#_59 z1)5TJNJC0fplnJh&Ed&`-NNYwD7)oQ4u?%Chs~yJ4!egUHU{YCfGWAoj>=Oj+ZVqm!JL zTjYjAr70i-==VM=T1)wH>oV<&y#(ahvNvu~D4+1h2Z<;uWwFs^WBB@ZvM{2Pcu$u`cS2{G?E% zVPcRuer`BjBA-M4 zAxUY#-37$0_nAdTM&^JxT(U~YLM7x(8VoC?GQ#C>5R9BY3^6+s-54Faswm{JsG&lp z1?y5Zm6H{ZWt3bHdBc)7bu<+jZJ0(9jH@>H>b>wm$wgQZg_M~c0x@^?%A&S%JQ4;@ z&)Mi{IROJEcj(^3=VJqeJbMmqQV$#IkOtK@AQF&ISpr% zqa@u1(l6otlGBSx8Dvd0STuDr!gu*5Wj{14wmX<)UlvU{BfM!q@us5=0e)(*NX!{$ zV<7l?alDO>WT)c}mmA3vhL(%qjDyOVa&y5Ev;ptB(g1wPcn({n-tbS62*4ka@vHov zW*pwCeOLQO?O%*rj9)T-!}zfAS>tbw9~du^-EhJ8uxeSQ5R-5S;kyzz=7GXkld&oy7?8L3u3HjCl0iBsTSXR~H=;{0jWSYq zrVBn3iL8k0%L_8>e8q)ilblRW$vm7vwd;_;*O4k$=#G3VL1Ni2uZSshWj+!6VoR?x z2vx{MIvg$Q4DTmZr^`N<_VTVtT)NhAiH$+0Cb@VB{=6oP2=$tG0TvfsPBw^~!IF@} zSX-oO9C85nKhKe-29dWGb8_Z9YZ0*pG+*!CU={0ig^p6LE4e_t<9j|}7VktD00@-^ zk1x09xdHipu>47}2|}M~*TW4_V?#Dev$Ba*j;0t;x$z07+N7e5OA@=QS#?hRdvtT=Zyu+lq!HCSIgWZx8_ZU7PnkaqB?N5+&LFx2dgFe z!_FrrNWCT|3VX7Gv^la~+u4B;fUJgRgq~yd!L#UfD7P;L54V^eTy-XmrNtl^lfl&n zT<;+yguspyu@~?_&Q8R0x-H{ES}aW|B}u8`DP8F^%H|5(*uv7I*PuzMiPh_MD|-m- zkEl^Z(HNcFx>td?D_l>~!P2ANfa6f67(FMCCxz|?KR9=%xnb#6j*%a>FJe#5xa{H0 zQu+eBk~7GD?Chy$)q8jmN`xWjE2YInJ)9t#EHz6Wvyn^&ysV& zl{tgAo{O7Te&o5l{*#Ld4b}`cDI1b-!zd!i4*W-5gyxJZn`vDB42T!S(<3ud4wRvb zz+pZKDzYjbXa4hFy{!b#>My(KqJ|GMo?&%0r1 zQy!<>27)d_gPZd%3?zN<2wXpfS-)S#lGkcg&;hPV|A;`NIoiN_svdnd2l&NDoG6gmRKVg?I9_i|T@anszOATm&eD6Q5+~ zUOQP%);rvCJJn(y%XvDUI#1pVJ_(UM-jv{3u+6;NmB=$~TLVhW4N4n$ZAG8fJ09#_ zgh&~I)^U@9E^!6V%g-#6&y_k$GQU&3PM26w8H^L(fz}0v%ky^VOrB1LyVMAl4sSD6 zxTLZ;LfSKJ2`>;{i&@$`ji-Y(36Oe^lyMOxb(u^(rY_znP9VTgSwtD|9hzGjoLdnL zu{Q@iPUCdjlxGy=yElZ9hX94;8k|N(2J)AmQcqR_)?Qq$xL0L(^8CH7V3A8SrPnWm zp26iTr=RI?FN2GUQJWHVlN+b=JpzjqKly8ZEIGBh2`C1yX(yznHREz>uHVw1ty=&I@UWj9AU@?1K^H>7SqN7&9!d~^bi|LRiQr8Pq)Gr#l*A;2)HX~V7@T`t&Gu1m&Q#O{A#@vX`~bFaf>5(N zM6LjV05c0H(MlQMz0gnt1bGB~h(nrsCZaFmJ~FY)xjhPZuz`XmD3lmZ_+)qj`9)3D z*^lSs+McQ_VGwx;*#R$;=+L~yL=t6|oda;PgHqB7aq!eO`Yct6!7&Q!GsWyA`vBxB zM7%T`T(`t&_#?Wmc*3|K7vZKzX61a!B&3gdmZza9=@1}*#Wuc?%0fQk7HHXVsSM2F zSPz^w!e&u@C7i=Gz>{%tPL2CZSeB(vqzQO@Lpvy-EKNJdSvbNN0jL(n^_9kBLa-T# z0<9F~2u?+tk-aB}^N73$=tcKoeXtv+0?mf=B}V)5rDxMfThK?`nLma7W0ow-YagZ8 zITvp&67A)NX-By!TwVhEMgJFcD=sRjvCce z#OS?LelVxDauxPa)Rbs$N5$cmZhwa;rWGp%$m|5Hb?(G01&VV&!tn=K47BF~h28RqE8qo*SIWvj&p#ixDt;vj`=nS5J>3X^_ zK)cu!P@VR8o?>T+tK zm0-{lC}p-GMaknC9K$JOT9CzJ_!+af5dcKWU>39UEpmF=7!#6Kkf&VaD^3rDif#h| z@k8uCoEADY{@AS3d%lqGNshtj<;gfRGe@Dkqo$Ua=C~UqW+Y?kDLKjsQiX?4 zww1F%Y@2bibA(t)#tgs=3`V&zh5?O37ji#B-N4BaE#&@)t>_B?%%Vi5JiW*Y;swyB z#CRMy7`R*A%=q6$8}O~%hB*zwlV<~ysg8K#od;uFXzEtxsMl-|CVSJ3C(zz*@ic)D zGfw&Jt}TIAm?}cd1R&Lukw9?I}u8Fo3cO# zj%6m9*FH3*v@%^4F#ben5NItM_IY}f77^LR(fgSaf*yT4PgrFWUGm#T*d${glq!M; z(lEYY($H#QW)00rW4v8XjgiH{YJo?jbvgm^PMGMHk5Hb>CXU_^R4#}~Ee;Id&nygn zKn|3zCV48#jcG>#VlwJ9?SougVkV4EX>#__PH^jN;imL4M)_cfFet9%SO!8!jnfto z>hrWx49@@S97Jb|KnBLCRq$Oftb++4xsZa%^yjqK(F$@-`7a$R0~ksh`G=fALeh~m zNnJWLNGC`OdS#qsw)_gC!!ON1SBpgDa6FhISf%$lvu>T0m4aEIeT6&W8qzxCC&;Ms ztN!ocZKTVXWUsS`L$HW&4#P~!3l8)Jo{JTN7d#r=4OiwAoR^FHjEXcNb24M_&bwEhDabEy2=eKBIolv1}r#Z+57{=KmA>jJdLDF36Uy(ha!r-37_0Mo6 z?m?>=gw%(_qf9huV*G-{Cy0*lG*rQoRYm#$(S{hJNr(#akSz0pQ}QVI<)L%PZ?F_J zZ!m7r{eDSiVuCP=nW79&bO0R^SuGTiCNll0u;zg2#m9xOkuodn3;_bNgS9;zh%)!- zi;(W%^ChOlO2RBAY9yURV3kY|&7#PG(nlbjXEal-fn^lQ7Q`(pSCDf-gRZMEvka*u za|qUb)*TohffQR@&oWRYBre6cfkQ?{0Hc=&^nl?3o|{$9q(Haykvucsfb3$}#mRx7 z3v4G~!+Ou1%IH%LC^kQJr*WFeGQy2VBRoH0uQHYRG$&;+jZ{SBF8~wv%BIj+Y$7?t zY#IKHBSt<$nbCj-0V*--55}^@$2gkj#vc~2QhuB6^Z{bgcoOn2L`);*xIce3173rX zz^OO^PQ5G>k^T!r04pj;NoCbGsW^p1<*DppQgNt1AY3WcPAvjo(&r3Is7I6a6037oc{U`o#aEB>TmI%kNwlgMDfe_&|=pq?d26)J{ zpEc98#vETMBH=@je8_y3DTS1la&=q>ybXGQpQ2h!KSrFArI#3-?JdM~JzGg=q0{AI z{Ax_b8&|a>-n?c7m9xlXMB($ipfo~K9zfcKS;A9ND9#gzoYh9yN$C-)Z-9TH-~ms} zqzA%D!iPCr%=68AJvVaC+H? z0?j*m+RjsJnn~s|!L(QyxF*AzvSmnl=$Wk`b4as!4x$Xn9mm2SZDm+OePjqBPH~UZ^xhy8 z#Q?nxwbSE$qg| zFRC7OoF#TFYbFEDlv1qnD4w{J#mEP^mO(0_3K7mD7(iup3$4-{JhYK_Ub!Pi3*cg| zKx=YCQrv@OpKr7f_8Xd)h&$>oYE}kG$L#RbUs((pbp+igz~Ime>~9bsWAKn^GcdPM zXL$-S8f1NE{gVxJJFjK{dNI!Gj{)+fO=N-e5l})Hrow6%oEjl%sX{9&D8+I}X{XzP zB$IxVl8PYQCqgOd^nV*1FaN0GLWo`ZB0xh)i#0_XVSFRxy|o?nTsIaZ35D^?xfqNL ztZ5L8@L!L*PGa$hhOO^^cmtojV(A8na7A40~897?bSl)D_qZqubBu0i-p{2Q4 z%#OPYYvTqLmq0Y6YcI6$?!=6SJra(q36vDMmV z`d{ASf!3OLt}HEnRr5XH|KgU=|8(9yJvZ`IX=jex;SRNiY!J9vSSfbHf+{%b!!T#x z?A6(LWau~9jiOhAoJm;eefa&SXZPUdw#e9@C80kxGp3PX-kXA>EltEF-J7+#rP=9v zihZWx8r{#=776Kt-BP{eel=@ByE{8&rp6Q;@-26|KIZGyfr&)OOJ{#0LLG9x+^6l= zr}!|YdS355na@+~^T?5>H#d(QQO3GDT63~$eGT#O^u|U*Rn|i8U25G}bJqFtKG3KO z7gVVNFCdCQ1u;UWqCqu|9HFwG6E}bpt{e8cs#T0qW1bEyD5Ij(da0q*Km6c2hf01@<#dkH_ps8NB|VD5`Nuyc0t>lFCJBSw$+sGdi%Y=W;6=p;YW+Di`|Q3y4~OARgJs#AC@}gdC|)WujPcA7c|oh8td@`4@{wvIgY-rBL$%`L_OhP{X z+5E=b+=hDBM=qY+I5<6j{6hZV+za2@qkZ&ECpRzS^BeLHZ1#GaJr6s312~;uO|C`CK3MJ<{{mFw(_86T3@w!t~?g>hpXY!h`$$QIyp5_ZxRd?=Wslo>bSn8|uh8gx=34wFe(J{r4H?{q~lz=!6RDUQ$xmqVZ@l>V`6Q z&U~={+}hT~{+Fp127t&GSuWgC1Dtbj=ygMHfkETf*&>c@8M}yU2AMd|k=rJ+ixDbA z(zLwx=dFYwWHb|cAf{kS;nKl=9Chg&@Q3KT?4lQ$$%^@}maLw2}ck2eH+PL-BjRJqyPMum~_w`e!o@_2O zn+xi(ka$$mb2g<{2MqHpK{`o7P2>JB9|K+)UGGPMG;*rP(^(vhrDbY=%CDA8k z0-`+ zSXvg{G3jQyN6iyB1dLTXM5;wi2;Iqfc-Sb=?zXW)-jr$A6xjz0Ej72IHA5SnY}Qpx zjLLX?k|PX7Qr#+xCv7{>wC=#dx|Xu+Ycp}p*rl{s7(+VzUDv?hH9@|^0t}V1 zVt8_>EZk!rIQiupL`ZqUhuR=}wXVC9cBOXy4(^3&U>}luf6}=tKJ~;LB{AW zAs?>52Dlt1F?iy%^d6SVJsP5@JZ<&L_4Kr8p;o${s#D3OOo0eC^V8Z78_UjPsgXyM zX_pFjnmHtcGX4~aFZ?Q07Hi{<$ka&C#F941zZP6rgj3z|xwnj&jW%S)9b zBrKtB>?An>FTJi8=NF0WF%gLp$sm!9Wm9f|D8Fn#EOTlpgy&Ykbh(}-CP96xZq|An zR2QkNt`6-EQV!O~{}E%?7>08&qPNDN2Pb@L`5i!|G3_|c7Tv&=gq2hK`gO;^6DKDF z=3F)#jzty{Sml-xo{QopOv1E=H5?lmVFddV&B)CqB1u}L5OhY$b_ovd;LNLzP1<>) zs!6<>_5KTmDH6~Uqf@xSQvQw;2u30hVnl|cIt;=1J9J;v7rrkTF+vf?!Ok_`0h0{T zb=F`gGW0aS0i~>10+wq}niI_Y4<&1Ie7-c;I1;KT?= zTtG<~&0oYL;A;fN;wd~5I2PQ?vE763x;D#-IB8wB>0UkTsPNGawK+ZvLMkhoqz@tTt6`Q;rVag|I-jmU80gIcpGavOkH4yp=_b!4S^BWW_?}3m5{-U*2d7l z?>mn;35d{i7v#*|W8XT?vd`X&KpyWsfKCu+7A1(hAR1$e#U1yy!Y+u}HaW zr&WmWt@tO1-ye_O?Tk>mk`~wWy5jX-e9?{G8| z8Fq%LAN*77#8+V_23b{?==q_9SYoE-O>Aioju%i&y2X-FV+R=l^)8y9 zw=)^_Wq~Xr8)SUUqGban2qljXC)R^WFd%yu&aRHD#x*zJbn5W#_G&hJMSczlMS^tM z`baD}7Me8|i>0H7A6`sZ(FtZ{vj1Hzc=dtujkTZ|N*QX`waa_U>aBrrH$z&cnH*hAB-;mH=!T=g0)ETPt^;S& zj*$-K5+uR}#-fQT*1l(x&XfE0IPYfA=B|d-WN28Mp`S1o7_ayN5LJSllr@hD*i=$U z#1d>6h*#i(#Z;wS*S!K8q;j&7f)!n$HX(AaOU*HwCPj4`PS%CFKPN!e(xF2nF*U_y zZ1~&xkFSnQ`h1b>Yon2wiR5kdj~fZ%8)TvpwT$(D-_SRl`G|cWl7_b9oVNGBuPN>3 z;{Untob8_u`MT${nUaEKaPozxw8{Qg6j|a6Nwt~HseCqW#+U6i)c;&^MG9=FO+?>T z#h>>Z1*}x4s~Y}{KYLGOU3H>&7S=P58yWcMI%+)^ALw0os#lXQnZq*JLNW|haTj1@ z2@8wh$QT+l3NL1fr6N&6C{HZM{=#9uMt$J_o;bnUKeQn82{B%AvShEXAIjItFv0>_q# zH_2IdE9dj`lkM-j{+wYSiC0MOunkO|N3&7oQs&uCUI;bF4e+f!v1e{39D3aq=g)?k zc+&r3^T6cIlV-*UFU9&hD2)&BFFB8guZ zIc4evUvvMFJ;{3xPH(xxmzS^Hw|UFIQ)lim)omz&hO=?{+}Sluk>mHBFxNx*#b{#* zUm$#>l6U+ha^@Trz~4IbE7YDCViBe(y%ZB!%)Qx4hYS|)Zn`UTTo8ABSHme-v*a64 zeI!x|f|Cs*(SeG~S>&5~%^Xa50Ed8(MYj|*HA;nG4mm^Dx1#~ddl((X&ED$@dAoFT z9;1Ag=a+jCn-J0A_RtR*7n1X=Y5!rV9?2MqYSs!Z>_70~BZprtaY8K=HrtEi*WHwu z?!vY#x5stamaS6>sz935 zq0Fe3h=$54UYez7NirT?u!F_^w<tDNY}N^P?Qrg!g!cnQUv!Sz_JpD$ zSB;vxv*}$55|V6N3wK$XgZ5eVYbXkCWMzDE_R4opcM{dgJC6p_qt^CZA(4tsCeb^r zR3lMZ7$tBOfb9v^I9cRLA2lPfnO&nX;zHrM8!o%-iu1wH-o5*OcTGae`+`OwrNyVU zVi*r`D-!*6V^1<=Wz$ntFrtlB-M6RFSn6ogsT6kFRKxF!AMnFJ6UjTNc(5E99v(|4 z?2@vIBLT8g;Wo@O78RV#0p$E2Bi&9iHb}XZZk5tnNpyC4S~_&VcO*UHsTC*|0On;L zQv^&>cSQq8xu^mt1-c9g5*zkuo+=={sI+ly#F%(0uv=nLzT|F5B8)t+A2jRMTy%j_ zI-SzSTNZS^7JEy{Dv#L2{G*EzBZGwFUm$P;5p+m=qWhzU8v@j!+5Xs)<;x`1r+oVG z4Q8qye=2U*^I<22e*nUqFokx_KsjlltObki?)5_b2L}`Op``8xA0rrA#;Eeg>~p@6 zNZdE4fxN@{QVu|X6ARwrqtt@Wt{Qp-k^^enl4tl|Xrup1R`?RN3f_os@&RhOe1s}4 zvMMGSU+E6=oLQVyDQq3A92w2t2o^B!;0>I_2Qj-d3lB_6a zg4Y0HC&$gw9elw%UU?^8_jHPnbdqa=HcqSYF$oGFbI&%IKzp6*Of#7EUuk!b+aON8LhP2ex zj!xe%1yY-EpPC~-9s#`-Ec;YUfUd{>2H4l0ubIPo|DVUfGloo(`l6(J0bD6&LS@q& zHT^kXB>+c8)+D{j95(8q?C3HS+8r~a`hxaDJqxl)|XN6RK^sE^iH%Cx~k?G{e??*>?bm)09H$iF%r<1L8uI7DP#A?*aNFGtBi2I~SpOtPK5n`$6<`5x&h2a}os z1;$HAUo~ZEf6FvZHpXqrtCfn8>SS2O z&4>lU2{e*Ku6;s%Yx~F3Rs4$4awH4V0e%w;R0JXFS|X{Bq~_fw_KR6F(WzW@c_kZ9 z!WvR z;Y(2W%SmT#BNhO=;shhbUBgsvNI8i-4+W+Ma8e~X%IY5*o*d5>)6h)dTrwKT`tlw# z9rrceYPkVohobT2+-{#g8*T(5Ry+n?O&=W#g_`AZf&B95m^~S*LW}M57o8Qt9X>Z& z%;m-t&Io#yZH!dH(G=F4Q;v^LX==JOjAa*7?%({eX1**&dm4sl_(33Wyi{3I`e=62 zB(6#&IBTbkKIJ6?+C zOgHDxJZ+Pmg>ENH4z!W51PIcYPYNnCj8ORi+oI@0V!g5>7P9Pb_)pwpKRI7%!DrgY zyKX+C9t-YCv~#oV%dToC!z9n9ja_XOn5!kCV}f51L<6{hfO5fcV4dL7qna2XY9bVZ zsP#cA$C+g>4+kF)BxWq6iu)s1t97dvaJL0B?${``|q8qRVF z$1)bZ`KOn!S|9f&F5#U^-fdb3ehM*2#hRPeF*Wb$`v_)s~TY89AKh-4o}C2^5V`dBe$+S=b` z$5S3I-wr0+k?5KQsMnaH>ba$?1SmQ!O5AcPHd>g-K%A}xlamGev$0|LT*pgRHfep& zo{Ep~C3H!4YI6T{23?0`6{B?2IV3a_oU9_KzeE@_g0#(utCi#N^4zEk{EEHROtxAL z1Aa+FBV@n+}?chRS_I~kb+jfYjUjMiGOF_Fw#8R;rive+#( zBsDsXN7sW<>zhG;&7-plQRI#y%e14@83V}PGSbz1lb#Vz7-HJX)|@rVI73(y<_Rt^ zR%EHOH?oIDG8EpqJW}X6pZD$r2>8HX_#OrLSDmL3T<({5%s zmaN&4z~L(aCt6wz!Xq$WnO&AM)vabzzDQ9kUf#`x>Pl+ZuXN0UD&1#qPDDGo!iIYe z<}iZvS));K7drWnV^%Ksvz?Xb{Mk|^RGDj0Rz92QC@A3MFNBMr)J&H}gRq!C3DU(M zEhS-2so@jD;sp7E;0gH&0V{LPK83_Fa|)YmfMuA&$MtTicgie$V(1TszDU2Z?g=nQ zx((A?<`-E~q62vqn(0Sb`6S0lY$$%pDOc!T+R}xpH!VBpP&H5+1Wk({rY*0YMmsC> z7w6+_9ldr+BQ25~Mc;IftR}I1>QbSWK!0AFN$1V9WK7}ul8VKiO=O8ehnSY)x#UaY z6v(R-?+4z|uGWMam`9G=d7iZZI~tZ7rGNWBiMI-N$SqOloz8M>z(l59noGLt86y*q zh9F+6>4`{sgpb+730e>b{KBf zky!v%5pZ#)qp=wJ*nLEq8Hkd>&?;44U#qHXZ#fK9FQCE;aY!w~=@8{U!1RaX3z${F ztCe>An!c3wRb2aa>`@sMlUA5z(q$@fv!6&ay@@;+Wo z^(gv;{1aW`gN;44+MYAI=gYDLAELeZKZdSl{l6Pz6Wkh}lFO4tgb7c&h#&7s zi_GR;_w`)%ylC2F&A58^^=%NU8Zht4<7F>buggTo~2GW`=@)7 z^@$iub@_glo*YOj9j(h| z#0)1?ahdu8R)NaXd}w=R9&w(Tk7rblts&cySDd`Vn&{bL~m((-1$ z6fJNiO77*7g#Pdnkj()oD_L$#X}DNOz7u@(_PrGp2W`AupVCoLP#pcf>)zs|9k)U- zIVFr%GHim72&31a7=^N%2eeq})E)vNe$py{$2A*;qjTxfDYE;={`?_^MK{;!*HZztH#ZdImE%d@SP@xJWr9?73$O4)i zhIkDCgjJ^7lE5PP$VS}wyz+kle;9n^m7@l)>?VT)%%nh32S>d8OWyOp&O}zn)?t6w zKs2aXrGw^~G2jPT$AzMIlmfXhtN2b!Yx*I>xZFUmRv;7El_WN*b9BMVDZQpmuTGO3 z1Yo>FJs@TjH_?=H1ll}TVR1kl(7T84Y+Dt$p2Jz)QuP8Jz$$((+%kNo;F z70xajx&m&Ea3ZCdOuWc@O9b~0bV9a!urJwv2QYEzFNiLN zU$vLeQ#ap%#Mc6+7u zTs8@*)hTwIuk}BFYIXJ0%Cq;MI(7d^_2mPSgGKjQYPed3_cJ*@->ao+QzOIi*ZtNn z{^FGryXey?N-Vp+6k@{Lt65VeNH8FX7C3po$;?l_FJ?7no^x zc5&0PZMIWR*94B~DS|BROfsrEV_Nitzo3TZEq-Vw9bRUR(rS|$yJ5`%nW;CyI&p$d zdwQl-^eluH9-BI~NMNQA|2HIvC89wTRR9^(N(;dndItKf(BsIBa*KnFc=xyu6iS@% z$aC*nLM*}o@CkUJjixru=TefT#bqnj3!lYc?WQ}d3N?_DU3nhSk2wdZ7AzRkm6=4y zhHs^Y>MUe6f_!HMlhf|h!Tpx;sA+!P|8>K7%)Z}PrFaG8g5Y$ef`#Wl2%(^&&E}|w zPMs6%Y3RWH*R!bOSwQI|SH=LI#j63Jk&5cD)KN^m|1DWma1qH~M8>HCPiBu06t_?# zh)m+9WrYB@1s5Lbtb&|b_C<@uZjcW~blqeXKzqbh!3)V!{Ew5x2CxV(26jEEM0_t- z;27|~9BmpBtmkkRwZT6Q=GNqdvWc4)Ze)4KnUjOPI1>bjaxK|7K#`sG(I~#1m#_Oy zY2hGw)}*XkF|ywPi;&L+9h6j;hAPq@HNsLaNTcpK*@A$@CF6t=fJkKFmZ#aseSsYx zea{$^oGeMh(ycl9o;zf_77hd*7DmciNV*+omRqKf8a1UjDyNM{utlgaMmpFVB>6*V z63II8k!uL0y*3Rv#+NqDFla%Yp)Nw24#FkIP~dU^AxK~`QnC>9h1`f_+5n6&kf8}?e`FWB?W|apq^~8lJVHyg5E^8-qjchzSH{oPf7AWguJD6Q@3ZzD( zcHG5B3bnPv21pXAI%F@bWbH4;is*uJSwMx|%-lU$2iu{wWqekggYQS#*u!*12N4cxd%wGewnO*xH`_ z)khchEce?Z2Rnhx`T^a&>X05gcC{~j4cFg17Sj)1_G&=Xt?I&}&lTY5d)rz)`E`T5*`D5e!dI&srl7B{YV*8#4`#-YtgfNu9 zG%?{sOEs}tO0C6i&QbAfAsZ^JbSm^*1;g48<@Vx4vj4MWQtnaKc0@21A}9KA0^sUoM$X zVn+z|qzqUA@5(pKiGjKWk_YA|lvM|BNUdWIRIZK&F3#2xBgy0mC%AHa#0e!A77vy- zMzUAqvn1IoFhJVAR zc*0(ej5xTLMv_3ku%SkC_>&c@(r|o^7-8jSg?foXobsULS87p_%(=2;l zm)yHqYi!hNn;RRo=8;Bi1BqW)D$R$wZoyT)C$!(>fB#S4$3I2hYc3hR(n%zw)Py$< zXVppip@!FSsOl*mUPK2eBMm4`O9x=6ftKMt-d@+#p)ZC9OWvYEmg?H|+GP)QwziJ{ zbZd53NTtFxf}qxDdEuFbz57ZhTERHASt2+2wLlKelE0uyNBmjqK&aW-`pMR{YOC|h zm*YAl;t`y>uDr0Y_k;V2c}NZHS~x}2G(*)wE%28dIpP=FR(vB@(l+-ZtKUur*E9Io zsHlMUp?g70UBv2OXrPZXv*b~f)iS5OafKY^hka&2tq`8D$dhw>@|?XE6qhgo@qH4T zc(51J6V(LSirdALnQeDE<*UxJE1tQ*i$~z+u}N983_}s(AO#maix*#BiMs(S#(?zh z3^Bb`l5`>EpJ1-Wp?0S#nw`t$YEkuck}7U2^Psv(Gm)IU5VewR(078UO;+**Kjyno zzQ>boGLI0GVB(WoXUXe|H=F*+kkdv?PRwObvEKLpy8qXJOI(ohr~H%oP@|Eh(oMJ3 z{VuDbQYCQtfccK{)*sJML!qE;yQVqOkrH1{s15A}ngD5!ETk$N0DqJRKoz4-K26CtH|Wn_2ifH?Pe-uR zFM>+!+(pL2qu3wd)eLJ^SHW~{pNg!bY0KKl6M-}?GH9$Hh6zVPfiBe~yM#2|4O9Vx~?~HL%ykT4Qz+>?lRM56I51EQG=6#X| zdSqa8uLX~VcJKZZZhjjGNZf_=iyR+)*qe|P@#4T}fO*i&l9@ekd_IBBM zv``LOYg)BXUfK=QBxsmMCLBxKv8C%@`{@2X*Hj1fbSjMfXVE-OtWXF3ZL-2$>WCMfXTFGzd=NYTSMhyN>74k#$T_PcqOmT~1Wa&Z zN%F3YX!HULurA{FKwWSx)~vernP_HgES`NX74yxVR8@^K2%GzLbz{DqHmvFmdo}H& zpG`rCVpnx&P6CDLY7&l%Vr4F)JsV5M^1pXtTC>Z;>P;8n z4$-N08nN`OojP&dPqCUfS zkG6&UhESDPlxkT=P@*R(aw|F6-pXLsk@3iVei$FxF-)-Zc<5t)o*Z*`4eQY5=CYao z|E|UUj(p~XlX&-YMkGJmo*a!v^oAQ54QsztENP?JiG}@zgwVN z#Wxiq@|^r0;5pw;#`7rn=OI`wh23(XED!^da6lPQBYj1ZFO$K`^XU!Z1oR!*p`G>n zj(_N`l?%;E<;?tO;rxdUm0c zX|~?+rAJ#$x3h5TCqAj2J^T2%g-m1P_RU6S!RrHFHo3RA3@w4{dy;#jmBks1KZ4dC zj3#M#2~A4l4>mDx#k8Tp=?;Eqe4mUL$G zfP?2E?B-gFu);Xu>U4P)vvwx8FC1*N%#@wZO&^G0hKCDN#ST8|(cw_5S*Txq4t3Nl z>)O`7B3UK2VZo1J`0kikmP&Z63Z{Q$_Z^Vk#QoSS`gRpB>=<+&MqUu3sbB_c1_~2X z%L0_}Q?&$r0gtJ-mUijeceCz2P0!L3GH<|Ir_!l39n0P;d@ zr^md|Ri`}bQlOy6-wrt27z43XU!zbdk2fM${#H1WN;lSt z9r@IRc6F%eHy5hZw@s7CauBw(8+53AAX?MO8p&3nL4rGk`YhI{=+zd#1DoR%*xNgX zE`S+)Xy`FCDlfx~=>=#!ughF)p~7@w&}IJ2l7R!xr%REOl(6{X1Ehc|vry)g&>m0f zxaH^~W;71K8cHxTkqO3R<5{K&H?TcD-Ez>|yCxNqLIZ;C(aj?BT-`znTigjMxF#ha_vlG!lk8 z;xiI}v*?O&4B%NH4kebIO^5R%kXyxLJ{?zM6=fC@F^LcZouRrSJc$rvW{v&hzG9tp zfS_eg7)75Rb1gr~L7HBfpqfU6?9Y$}a3+=3e_H0N`h6P**;Om}m&^N8mE(pPKd`#%q=g0bqBYA5TTz6qO}G2i zCn~_vvfq{0T>ql>bTpfZ_fJGK87+7F(WAE?{nYmI^7hId`3cOqY&474Dg^06zSL@| zcbM~%H_FsEjYYq?%|X#^go7hRYLN)%bKY6K*W27^|Ho06O59ZYDsbMTx6iL^udHlW zDp@yEqbPc%wc4W1r0oW|aXIl^3$*kgWAydhjBg%d+$empL;0k^{wyYT=yGGTCglk%3KH&BgPQ zt+3#S9!42$bAc>Tm5a_%$k%OTv(#?OX4*--bPJ(|t>)%H(1hlNPNAL2I1Oaz@@nDs z`&OgQ^>>vrnNs#XdCjQD=U@?;^zWyVJn5{nnw!zA;R3ZV!eOnHF*B~}QVlN}R{H|L zS$f7^GgOYuV@JCa*^y*6F)}=n@uy;YBS2U7J^-ZX^}lp^@s6cEt8W@E4PW|CqtT9+ zGyZ-Vn{B9yttW~R>yhQn8HR~WCT(+hp)s+bmR674`Qf`Se)Nuwe;z*ESlBy$Rq~^W z-#mShpwx};OL~1G>)(4A)irN4|0}YAb&p7?hti;#Wr317538V{bGlXwPZk$qxvCS6 z=h`f}M;8{3E`WtJx3;z}Ui|2mX?9F=`MzyN+OpyAY%Zx2E0fP}FK;XLo`tLT?!9`% z=ezc&uiDZ+eD|BLHNgn`mS4SnpLTHhxdT44bF_EOWj6)C)7t&&@7QNAqnzEqhjPjG zP2fiv$5ML90G19!as1Cww0*qh({vDD`6S6y}c=8?Tip1=H`X}7=O zou9nGA+k!T&KI-lS~^zO->W@#d;d1=(I>L^_D|mXgi?R=!h3F4XJ7Z;{>j|`s%1Xc zzx93EZ^`qB-g^k!r;y*3Po-wHk6e7y?_=khx@BwSEUUp-Ssyucb8j(E z_#?FM`0;(+T~?y#oSh=cR%iyPcwq&6*X|!K7LJ=|!r|Ad2U^VZf}tJRzWCAKe^aBz zT4N8VCnrlSOW9lPvHJY+y3b!icUV2WHs;QTr)E}3;UJ_!E~tX?)Aw8JnNsn!M{N6u zw1LQlL7xU0(W7Km4^_PfOL-D+HYI7(W$!~hC0`hWNHx4KXC8US>8%SFww6wuSZc4V zw6nEZ|5IKMzy2M6{z&DnXWw*PRXcIdiOOZKS^a~z)MjeWdHg|xIkZgwJu-BL4;U4+ zu#1K@kg*mkxn)`sVUVP4F`zDqUs`|AE$HNfkU1+9jz?T-%!)}wkDTeH-RTlh5YZ5{ z5?VArnRsp0$+*!D^(=8|Q?oN4H{j!-sJuf?di2%{c?x|t+6&P&H}BR^6)5Cs;2=}+ zd}xW>_EJT5E0uC);Z#1fNx<%H=uP-As?~Wdl}{ChmvYrz)6v9%*+^PTMGsQzChx8; zhT>6YI3G+odv1@ospwj%7zpRa?OM7}wDTFCJu_FRI;k;MqN9)8bTK^Yt=EEidK&wD zl~%G4)M=}pvSMa8h0KLod@$WmhS6ySe}Sk5lz~3$$!R`<+CWUp>W3SsSLdU)tsXxA zjz?~NNy(w46v}&)O?r9SrTh1IemNEr*>9}e( zKdwEue4_vUX7gF4ZteeNaPd9LUYuVH{<_}oJQI3Co0-vMEX(gZIsbk=A8oX=!_Dsek(a>*FgP{Ycy?P@FeZa3%in)}PZO6xb(Al)=cRA!?DdK^d*R3O1fNcZzTrJYJk)>k1I&9lK>OhkND!Z3Lw-4_GxN7Ke6(20&Rb?B+qMc#Tj;Oi7}An;=~670=m!_}mdS z*W3_W3dA&b=&wM%MaL0`x*aqFAc}7Qs<_R3#Uow6-kn&n?*~>PW?t7$hR%}U$YD;r z@V+~h`56C4_srMki$b|2cBdXCablaB9sY23nR$ zI0G1h1Qb~#_zI#9L7wBnK_m8hBV(Ds9#cOsLWH zXOnibX(zLOPMrJxORe-$iy?=IL%pnxL~gf{Lc;cWl68>X^ml zt{AW{ZzaN)FSU&K{^yMCm+$|I)*B4QPfHt|e@TiXL5`W`+TA$B9MykDn#$Yb)BpC} z&JeE1)|bEc_I+hz4w@+$Iw`}A7Z^v(wdD}BBQnT#M%YOdJN_?1gUtV>!5^B_v(>;N zX#azZm?83{P|9Ea<0<$wOd7qT-m%1x8z=aE}VASR%0nw>dZ0Y?Ay?N;>Vi&iZ-_$R%X$fR2gJ7IOJQXJM|r(27<{WNFVY zEgU(rr2P*!Rtiyy)(AlP9iSlk-pPqh)d~17(_*_;_jK1%(NQbtkQ}8_q$5TS%uMYc zPnu@26r0tq+P8ScK)3jN?3nLklZ|1^V8;O1?ht4vZDU$O?Zm4Dzb%13-wfXcaFw9_ zNUR%e&@_?|I{Ppmdd)vZ^UHQn-?udO zbFJw78?VA2La>En-neNkaLnUYzYm;W%fQwbpTDpPtuNpe8H9){dXZF**-^w{&=Iqg{ZHUHb^VxPEw|I|$HO}nT6o%ZSdxntX(a&8k} zkm9$8UiBNqm(Y_F0M!R<3`sO(WUk;IdmdklGzO^09kgUJ<>f$mg91OJZXx#M@@o@kV6Sj}4ogm<;ufc(Kimni{a!=szIK2vDa7F6daba#B!iC5I)rIAoP z``C%-{}Qk6@mcL^^!@SSVJn}pO3?``6&VhV87ZQVjj`0xK-@Kr(%7VKbZQ@Xp}z3n zwf(tKJwHm6%zLJRO_uSZF#t)$y2115#WXwzOC4Ga)>SE)E^ZexeK35=T0?6gm7~i! z%o!@Mn9=o2!_G&$@&2Dav)F1Fb|zV|v#!WFhwO$z`_I&4FFaGtP$S%L$C%3jw;V6r zS#g_zGW(W`VK*5{>XDH|FB=(g#{9xmIB+O#sV{-UiD5BL3JQdn5&ppfu^?C85ER0# z?kSBp?R(-D5qrA2^Bp^RaNUkJ@!`AMXZznc*S@>+qvP%6Pc9REY2N$Edz_}PnR7F%s0%(x?8 z%jat}rB~Bid@PR*m4<$Q==q^<4toP3NayZ?Il|&Vnc8Pv?P!R z0K0@cKz?una>p?DNI`8v<>FxUWQjDrhnmGFzy^5LTtbBOh;*3e8W0(>W1lj_Tb@Lj z0WiW=>W;Rk9@w4%P1{ONcFr`BuaadAyAwW2iJ>dC^#B{_ni#=!SLZ_5qHnF(fb zdtHf;l(ec^I=eU-4^qT_WNPoVoy%@rY!Z3F+Z;;mp5LCcLpHAJc+9(D`1qOx0b&5^-j;p^aoM-*`GXsv9ZF(OV4@ zJ27JCtO9rpr8!Y6OG+x?1S&iMz}y`TxFKqB`{LR#*m{n~8$m>0oh@eP$tm?khqchG z^3`qs2(_>^Be@u}h?1Ndnb8YINu$ESW2N@uVuvh0r`ecmwMuSjer08zjIHE+XPJCZ z!M_UMBwYGJH;2z1zA}lpu)WC$4gol%4zPW!v)IkYR~wTh@z7J(yP1{vX+G{&a5F>M zS6L$AH%U4%No8_M$@>tXi+6hPCMq<++2#M8@yfjg%09!SRBJkh>p=Mj;G~<3<_q6$ z=0av(QaimhXqEBzkl4Bj$}m>RU5HufR25R_IubGVKUsSp__pf%-rK(;Svop8l8^pa zmStI%Wm$F{#jzb*avWnE6O2hraE)=&G)>bqgf!%a5YjZTz$j#erJ-e9$k;|HYq<<4 z?RaR{b&S!%D7T}mx9g>>x3}w3Zr4%T%R{-@*0s&yd4GRLN*r3c=k>fEaHOMij*iax z{l35NpU?MSH8}E<8=s_P&GeX>ENpRqaL3pGRUMmjU(QY$d+wU}cE;@o?s1>Z2R5fa zI{o#e`mEo5R@sHXj9edmw&8cU{swS@IR4uLt8o;|Wu{?{EYR%@yZO~d9A7P+1HsOo zVr|vc;n_2*uv4GH8Q374Ta^uh$h|dMhsx{Us(*g#@tah7-5ulODm(4I_F?rMoLy0? zoJ}UP$)i%OG2(@H|@Uq;hT&bkE-}O_lFY`cdT0{C)*iOAFYkq6gb3?{^F!m zddyDguN&))L%a7}|H>D+tQFmpk`pF%9Y|##mIL24zVpiAy?YK8xRgFePD|#J$y}U! zNMy`nnWr2FHzA1=xO=h_?yINbww;cjil=Rx?8*3T`r~c5s-7QTb2;Oak2be1>un^b z2M;Q-im}GXrgvTUfVyn{x_51|1BrMh*~E8Z{@!J+&4fpcmM&l8HbiVE25=sZJVSth z(w~HuWK6z?F7XC@eWg_O#3h1qmfMxa{C<-iE+m`tohw&PNoMurz=lGfngXNk?CadH zvNO-Ysg?bmopR6$H#wvpxm>us za#HOHj~BT-KT;eI@9E61)aUe1vBfEKdAXD=U*^)O6xVat@R{LGg|&Xs4$t@;oC07! zCS=;lQ!;DfauA}fP3NjX?f8P8wf}(u^u~f6j8u1zC)LT6l>rl!QDmdHZgRP@+Jj~~R#J)#wf2}W{Gm1mRW)GVzTGQNZWz5|~G~hPh(ASZp zC{E<}B6OWGL(u~fJLbL`;#@ld^@c*xNGQ~iTRt@OW+WbuG`u+!3WYMED?_0x&1i&p zK+j+3=~C@f0zZrGpabZIimPAGwz&R;&LypegdGVWST#c7@n#*;4@fg2)yw2xGco?^ zUSc+$7^}=Wq%%9}kdrF8kEyxYlPC8-=^mTi|AhPVqW(|a{{5!ZhSAXt%p!42IO;ZR zaQ}1z|6TL_4W*L$c&Wr2f7g^s8XMiiyzGLDmqn-Io@B@?Bozo_0WM_V^@;*H3Cfs{ zbPL!N>>_=s8sp>`8Vg+H{^`E*y8BV`9Q&bSIxRgCQklXd>`=~7;pj(uw-kCmisLL} z%-GK881rDehin{;CXx8^$$V;|IApkw{nC9crRLIUeQ!SQ?FH-$sSc;(aDa7c{EkRP zXonk;Tym5jw&+x#Ii%(n#No)o(x(SmSEA9-+|*k-9@FIs)Q6;J%4Z^Be5h0^v#g9| zDf>bAn$5mg>z%y9(?4Sb1~yi!Jw0;e8M1fpwyEMmC9~i8Cu}u(2nBj4svA{rPj%u@b0kW~kK|X>yGLtR@M76T&+X-z zAHuE@PO??-3ZWCv%O|lZ(2!?FR!4X$7QiZaAIHV1DhEa9tyB>W0D_E=K=XXi9z)oO zun?d3!Lus;a2LI|FxJ;M#zKzA^+rCIjQ?^E5x?dBDTD2?1rFL#0*U&p*YKeE~~_}FDT{38oz>>lLKRR6y(+5PYFXyjt5DO^QX za*k_-C>0w`x?9*}9%MVo$jQ5>*GSCR?Reku0ip!+v~UldN9IN8Xu-(SQUj!xt%6n1 zFX@BYFwlCnh*1%)LbiGbHcbi~l`Cn7>USPkH$8V?3!%cvRGk0t+n71pRG20O0-Vxp zG1DuXa810&S>jD8Y-R(p5R^|4hTo*{-#mFyTMx_`xA*oQo8NJ72bn)XHJ0wCr=lNj zP1%^j%Fbe0ylrL>`ihZ{TP_y*myJ0NwMe2wy##`E-jGh96m7|dhN7c1h*^aWJq8kZM zPlrPm8CA^$(oXK!F1Y zV--tJl7@tgRYD6y2}4135)D((Ve#Zc8$BtIB#bxi`;A0TZ{pQpBAInpW_vLV24KeA zUWl$qBDPg3Z|o=*-PtIaOv&DCJgTU?4JbxDzr2~R<&iFq7#*Vjc)c%{H>}0uLzYZJ zOA-;zqQ`MFEILo@k03JO)m?SLZf24jd`*b}6ug8YNT&!xikT{`t(;?;qb*U-~l%PL(U|M%0W|!<})G}-7p6*}S z7|F3etIJuzSg$CVcXY+!|wVe zAB+p+S_eA^R7+ak&TN09vo$?X;FsjUwM##!XTk@=Xa3y3vbl2o4|)+SgmUpPwa93hPn0J%v9BT0NXW?*&J0WUhS=H!s{fUf< z(&Fov2|{tAk<&j72Io&kl8MM2!QiJQcj~{YgF*Mjp{}mh)}iTeG*XiDOOgGVq`J%d zPQu-rh(^>`1Mc47kI4%C7>JF#EBC13`-WOGJ*3jD(?h#U(MX1?Mz8=HWd7g$Ha5V| z;2`gy8q$G=o5=gQPvT4yG48BImVr#ZJRXdirBOF=&}4-kI0C6JhcM(^6far7l~r8@ zd=f${-agIX#n=-Hs-4(_UZl4*dGRe`DD-jfJDApRf6q#kOZvQn@L8=^6Qeppig#f{ zAg<8fEwkL3DXMg__0Ei9s}++V1(fLfJ%8i-#S98lvR#{2C+xp$Ee`XQ8=6wBnGD8O zYyEh*?d&FPPQsUR1#Nb4wM?tFt>hwHSszGI9yx3c4MkcBFh2bZ4fsF|!;P6CV*=Yb z^LyzYcYzHnoKHp6qXFNY*sS`tuzcK!;o{xAr<}Vv<=?~*Y2pXMi!dh=ytpggn&DL( z3BP2A5#3EqVcY$zD92bQ;eGq}*KD}=LXTGyC9o37I_qg(o!+7pZaM9+l7NO? zU5m3xU|AE97eg0-X0*LjSLv(LHU!redZ8vg&_^H`Ayn?UFZZ=v(rs>jp}9SmJe@kv zciLweFZg_}&;K<`-B17?h&gGcKJ-F+U-RkaTsvnrpH8*=Im7pY6gG5y7NB*+PRAUr z3wYz3YUr)=M1Eb!xGp0~BMDjU3@~eff#aUKO4;iR@q!WfWws>jp3$4~#_5-ZB$bF| zcrs-_jP)*p#W`tmYU@Bg%UJZgFV6z1h(Y|QA>q6P{&3a zE?VOk0Kh{%uv8vhKR^~gxFV9sfAf|tQgQHuH7?TrQBz@CaI943rHh<{Q{I<2u+AIu%PZ)zz(#`qb7eMcFhHM_kv^vh`WltSa}er z9b8xlrXBMZ(+-Dj3E8CLheMZL7NVCZA!(so5Vqc&aZk!c$L-@5J^QYQ%m>Z)P_bZl z-U7n}V3fqV(>jj&vNbFc$RXz_gn7wEou>xfP*H<9*e4>xG@^wfDZoxoN!6Tz`k?yY88ByN_^U(!g6HHrJwRtEnA4i!AUoU_ zHS7YjYjV_wHU0v#v)t=F9>;!T@hqIvF+8Jk$x#7xz=S+RM+F4(slz$ptrll=uxphD zaRex;!$x7ZTll7Cvb8blhJHQ`{hUX1^deLQeXk)lj&TwJMfnRYmwFf{(d}h)7(}sO z^)SIEeOi4+F=fpaaVDT}q%leTVtC6tkr|@% z6Tsfo*8~ z%zkasfre{wqtAp-%hB4o#zirTGlk8ELZOGuaO3GO3ptw)he8jV5cud$m4DxxY3dR< z=71ItY{>@}o7t=1<)c1AHc8z5GK=SaD`nnqx(}#H5jXdv^4`z-Ro0W+wmmrtY>ZXH zi@B8zeoQ|8Bq{qCW+1q2-UhGs4t=sdN5<@|T#8aPZW()O1W^;1hM4wej4wey#dN`6 zRS2qe{gif)=yb=qUhMRmjg_96*|}?a=A*lI&Zq&7x5VVEmY7;NYg2vj`HL=6GZ#Jo zQ8iP)hj)@s-UpfhS{o-H0Ww77Fz{k3a}ON?wCnApjI>a(;0B(5PF5`ejy-}sV-9LY z&e4^Up{a#u7am@j?M9hsk^fp9czt(al@Yp4dehP8n~N@+n7H`h!sQVrkBIsUFWh#T zB9-ede9!nQlzjN%?_%Qu12mGF5ezIle`4m~BQ`Ch$?-48`T-8&PQT+ATPp*rjK+|h zO)1kx)?BqCuP(Xd02qVqD9745dHydO zjgdT^PA!?IW@-gVj$V!D3yXt@y(dal>QhA)TT3dg=Sgeg%$j-#Nno4nMI{N0?x%;e zX*^V$vt!I(T4rq8(6gsbAR;!HVQ$x~UM-R$oUNI|bG^Opmt^8Dy5b6%L{C1GKU52#HZCC5D3DN`w(}g7l^9QJJDO`-sr) z^;zgTaL+vfF&A@3tf>9SYhXl*5y1Vs?@ zN-srP$_kBpvFZ}sq4iu&7?e0WP5-rHhyeIJ+`MOy3)B=#QXGdsIqJ(-O+8>1z%e*2u5GbsD#&`(BmrEX33{CHKkSQ56TMX>Cpr%VZHN~>CLBGrA< zoA%7&8Q8OD!vuCDoeTB*&`YUER zNwu(vKsgTrnk28-Pgg&qkSf}g$Rs3!@;_84Cb-PuDGj53o{gKDHeYAXGcuH0rp9sY zyq9(&GVpfo8!8ruXtgPAw6SCEZuo}!YitJT2n9>R+aoJc>~C*jqAdk!;%x~Okbr(rX78uq{ipio)^dvx3^ga%V4;TMvv z4$6X)wJ%DUkearssh8*NghLYf#y3ba*4DMAG5HE=Z5J|AAX*_}Q5Lz`&#V|$Dw`c> zrm6rc7mx*EaFesDP#EV15~ap&5^jy|fa-}ir;}^C3f-ki%fti-S_!@oi6jTwvub#S zuT)B9+ES&GaeK#((KQ4iMN+9&^`Jl}6mhWvy|-=Luy(R9YNuD;PC)``&Kv-0+UC&Rq@4sC*;dtOAQ zKn7o3h=oboZq`m_ZEK*Ql3Nkn(j?eEfv3tk0k6fW6ScOID=mDJ z+pfvH<=8D7vF>*0>Z5h6O{Sx6`Z6o}Pdr4h3c87EE)t}Q2?~W~M9dn`$9Is7Iz+=$ zXRA!QK4qj^khiKJm)+V1;uGXT*9`(n(&)9x{BA0NMUA50*y1-1lFvPvEFO*~HPm%ne|Qn8xeyLr>i^Mr*uFGV*keh@_q1K)~nyI>tP zTB1!U_nF?Dgy%5#;ybZe+s}~+DY+L73CTb4peN|jv)|7EQ&rD)qxiYTQpF$;a>n(B zjX);PJT0OhwgFJVEj51XZYmOL7zzP$ZkG6rl!IR$>~#3|f8V&sA9PDV)87gDt(K+~ zFsEArx*RU5?+j%cQ%x-&U@4yv6Z-_v<%tbiNAzs$cKj=KFMVx+VP$&wu7@=e8RMDV zT^g!^{=EDw&juCt1q;F*5XI-+bZuDKvc<>=gil}}qe%fc_utGSZ@4b!pz&gEIiC5k*)W-=YO~7Me90 z5Y&{A{>*`eVh`%y5@+4OG7Q z^v8&|x+Ze^>1b15Ry9TYnj}}FVL5B@zfcvZ%vzkq0{Kr3HzI(cSFCbjB|-pHc!lw< z8p46$&Aw*PA~eMi*C3Ne8akJ`f~eJ`7p?f$o*-=6qX>LY!@mVZZ^gm9 zHS9lvW!>#<{uV&^5jpZwGk)@9L|!fHE-Msmju5Y4H%CKzQbY>HBl4=O(0|4`&dyMr z6D$s4cd>_q76GyMUk@*@h+Dcs*~9Do?#BA|5iCZI9Va#^N`V&QN&ETdeX7)U(t!M} zd*u|)6P>7`;W*>Ej?6@KqGYh9VlW7@!q9|`sg&)W5Jl(#TrN@jHr%KVJ9CzM7d;L> zDK?fRJH<@Zn81g*-gJIx#d6EmDdS?*+vYyqR)XlyZ|ik$WNhBJm7LC7*J9z=ALDn$SNMK@_e%WS zSW5zbqJQgp#A-Zgrfk?i)8*)=l5pxOeYHO4G}jUf=Mj z`YHLI=$Ub?ws`Ccg5sfp{A4JCfnz{u;*YrxEF)#@V`c6))o#%mx$0@F%`u7!opj9mxXArD z%~R%n7zi}Aul4}?m*oNWs}|T02i+g-*ZMMdP3BT@$IRH}?9N`>%5FJK{c@#Yi@7e(`ej7KdeThHJK2yHt-h;_N8 zZ5wZGM5!j1cxRHI&B8eY;gB@m_@m7VljzR|9id%UOo;nv zS;{fHJ3RoD!AQ{6SHpI{WW;2vJ;F*fpU+Vc*VE%l0;stNnAw9y`*&ON{VZDh^) zmbG#Tb{m09^~0ymKzS0;bPlLa;VV&;w2~;qBlNX2fN2T1{?shBlmq^4Vm33DOCpw* zpzA~XJAw(gQ7ITd%J_yPpW4t3Aewe6A)BSgx5ELK^nMaQOum5$-lMTD@!R$eI7$6H_Tf-qn zT@*a6G-7#(_Tq7#1e^%mN$ZhX7w}@D`1zuS$>0s5aA2tm5GA^OqZssOAWe`=Ejl?t z!n;K+Avs1{`Jz{+)Qt9_#F8qRXlqL(l1E`~J!Lf?g6*5;1s9m^ec;;{To4r0*berT zFAJ&nl*r!HI-#y=bC-d189ofX|H z)yi(1w~i&ph5`RPx4wL`a~c>sZL^6sr4_C-Z(8iaSs4M)Vg9Gfn6MqKWa)8{ zz#X9|&1eJz_AGpfXAP>#Bje+T7l{)#qZ!%>+F6sHg6oNdcp@+kGc=#FCQ-V}vLeeR z+D{sp)C84g%H=2WDe;7-EaR^6^B%cA&}C-Bp@f;W&4gKM+Yk;tkx5;C-kqroXm9YZ zCPT&w2yzAE(Zh&rKC-!7euo6BOAHC?{6xby)wAkNVs0Da5{ag#SR*;2KFY(vQF}@! zU=h#h=rW)q%|HN&)c@_6U-`KH^nH=#{Ki*IGGppCkHk8ho82#RE5^E)!R%QY3f|mZ z^Y3whQtqNf&@w_tgD0rzPC2;dZeqkarvEkaS+f0S)uE-4;na9Ru-eZ4Qqf7R*P-Dj zPMp~9zE}$n4-_R*+}P*-={4uXiGvh5-^b0%dy@*f?;}E7l~0`D?F6CX1dEqS-6g%2 zu@#;&-swvawKXIw4G|;@N{E8Rtkv||m@$yD@R0lZ43SVWm}=__Nzw(AFGz~a+0AIw zeNp{PA8}22GhY7NEa6qruP3tEghabUqko&s5;%Ptp~QZ@NAtRy;Vm1VwI#3#C-N2mQN=DZW++`ROeN$6?6Mp@6 zyquRW}|Mc9t3iWvWMi@hv^< zH4|UPmOjy%f;|t>lo+o>%^cqD^hX^FaUQoywu4x_S(~e9;5GNHSh`fnr&7%##pk8R zgf$OCpxV#AQsx`PIPVab>X>YoCclBKohKOS8~7y_btr2o`}J&TjDRa=5iWvkFc;

A}EXY#feG?Nr*;RqYRIkR)v5>7St$3v|SCG)uhF<=z{w(Tg^$e zPOmxlNwTlgU)2JA%6&rbQ`1xYKDz>(y$8iN9NNzfht0Kmd9D>7<1a$+$&j~W65v!g zr9Kma*8D(lWUSJ9wdL22z;}p8;brrYrRQKhzco6q^6iK8pz~T%Zg1vc1VO3o;Y_cm zAKZ$px)`Zk)O?|V3D#kNbyWv;srd~UPF$2Th&0(EhN>40IMjkOu-O>$0`N}%A66`h z9)#op7pV>VW@qX!&E4Y!gS_eg3Y)t^eacSaM( z8vU5sMh{i24^6oLqKuZy@TjfD1MaJwM-rEDV~SHJl!*Zkt6!*9&eBny~tlVt63E) zWhDAlqsb*{2xOzts^E$B+5K{8u<*N)|u9;T8*Jf8GV9^ zNoFQ)rqg@V1rk=JmP^z+Zl0JZ?=6?fZ=t_>W^cO4vk120;hJ51V7b-> zA-R28W7LqPJelxfgp67qOR0Zw(kN;FAc|Tz{Jj{9Hyrz3%D5{P`(9e2Ryl#VJ$*(# zY=4h#tuk=euqNL_=54!J6b?GNEJ1DZ33=&HwH4Y!K}tP5VmWav88KQQ{iJ>RM-c!< z?-QvHr+*X;wVXX9@Rc!;CBGvZ|7%I5kW7kD=o92ukjX)kMM%%xf8jos!@DGgkzZl> zWeti_tV1aHJ&`};h_2X+9wFf*4}f9e2Q{b#&k<%ErXaJMIvJn^Fhn zgB&kBh}HIh>=9YSF;A=nsElfJD#bYXs$o3SD($-coO5mA){i!5} zfA-GJkKJ(OySLr8eY>3So~@PHY#aR|Gg7o${76^w+k03GIW&-pjsO#>zH}b+w1`ns zo0r-&iAsb$rs*F&DjBQ_r?0Js5*sxYirIZZ?bQ?M-lf6D$lHEQCO=e+L^APMhRF0t zff)6o9clG;vBS9R?4-VAg(CFuvuJo>y(DuFyg6w{3S=lnNCK9xbCEx?Be8f!*^zh* zQ&_OL!#wY1s>fu&;kGp(5aXIA&ml?1JM$-+U!?-qg4E%1ABBvtAnPBfUM(L) z_{cHq5du-kU$f$Al37USGU8@M=x46RSL0D>aS@-xRdap5+4dsF?Un^^|9 zX`zQ3j)Xv$xNT}t-OW8(45Br73_|7-#e(On=v<{GdkyyD#cxikf`GE8M5Xv8nuK-A z+(CVBDv*;o8pu-?!8uU>R44=}VSTHICfCuCwH`D=kg-Fj+f$7`(?J~i5~Wk61eGD) zxzK2yeJDo6P+B|(d#=Lw9dq-+_iB709CPa9#0jrbeVg@Lh1xm-Mo$NU)ZBKBfb~F(cM`NxciZ=ZDqb8`N5>Q~>jNE9cyaT)CW6&ycLZ zKKFU|d#Fz2({A4`I<@#~eu^IXkJzj|qNgQfoIIDvTl_X_2uV2`Q!foKiDhY5JIBTr z77p4=TsK8q-HYQ!95}>Q>{^eGv}Ww!!p`BM`7^4Mv6xKlip* zHJ=^0E}t-NxN%i@ncTY(sZFK6$qxN{;YIgVeN(FD;(7a9qv2JJ_lg6jMrWQrA>&9S z;D2yG9tT9VkfJg-4dL_ASeP$@bpPrz1vfZ#VgA5O6<_z zsb{eHva*&KRL?G5u00B(N_Z+=X#_{EhyC39tU$(K$Alp&9Wn&(cus6f^DFnU=?GI7 ze?S(R#5-Q3Jq?m{$Nh4Lf;f2b51q&(oz5w1fkxMzbUySH zEx3;k31+Z$HhS%A=r;P9^epHr(Xr=75uKsPjqQEZqi9!`wf9nTfj)F0%l!;}*uP+A z%#BFyh`IXy5H-xt|D1RJ=MeEIsP-IZ>bH=w-5mkIAQT8k^4Hp%oBP_`uX#t+2vp== z_qZ9_NDW?d^~XhG)1E+1MudMVjdly_%9Zr<^D+)Uy$fzSLUqQy4Z`K6=>z}Q5;TTK zWcdqS(2GNc#6x~j-(;LTD5g*qbDgh@bl0rr(qeIJqSTXuG|I4a2TDaU^2kqn%$R!!+9m(oF^k+r4_JGj73g8J7>>{&fN@d{-*5Pg`U`xBq#$d&v~I$AR=~?F z3w)mUX}8|7W2TW1cb>Q-x#_TZ{3AFD4Ju#0SN$`XPztH4rI%iE9&J%A9sSM=ct*(T ztj}uz)c;SLEMm*N{dRhEI%>+g#!Q;mgp4vkAl@ngoB{_A0-~!gTJA@;n&wt@z|#7; zC%q|-xWnYq&^_u{D8;&)Q5<9dsE^CL>)60wF+;JqQ`rx#3MQx=FxKl2r81K zVLz&0E7rd*B7pc@;Y-8%^l5z+IKx?AzzVFIOPGA0r`Y{k$A3DJYyLEDLsj7!SBq|w8;AQ4|&XT|(MvPG88>}dENQ~eu}5-s}v>p|~5!-G1BL!PLH9P0>bhCqZ0JOHh=Wr&8v#5k}6y1a}+3}imv@yA{S*dG%arfv&M-V}-5?qRaX2h_X2WZR9tnMbWGU2q?r_8Yr&=$Gvt z4u?M}A)B9+WOL3}w{;HmhreX|E_#$GvuNluGjx&n=;>DO^I~EJB~R)MzF1#Tb$5}- z5|5HRr~VnAzVL-w#)c?kl~u%&^O!sc3Cxqh%fH_u$ygdr9DA2w0rH^pyphYYo#?RzWm8a z(iV-zaA++XvPTUDL))yt#Y&RG6wz%@sh5nH;1F@35bs$aAXyA`$AplI47)e#N5!pl z_%L@zI~XmRnw>#j2+m@?!CU3Xp3NeB7N=q_Ea5jbmJ zq*y(LL;Swv7?&o4zFZJ|JPcA~B6&F#kIJHQO^->S7d&RIM;9NfS`|9$w zYH?)dBK@ol4R}#~FkB8+*CUehzWkizrfH$wf&excV7uS+R{}2sK>K*BEq{U(_ezU40 z-}Fw|1HaLBvzC=2dUZ^4sv2z3u5>B(0XJgs!AQN3^i|a!BV7$8#Xh2X@jej9BGue)orx zi<9%`DzaWAZvR55ANL2`7p;>ba?R*T()c7poWGhJYSGva!;+96$5LP*w5d=NEzB*kuGNtq zFBw#i(Qq|hb0H*y51IDKdT5xp@#Q=2`05>Z?ANiOX0hfjFplfsF}nZhU^JVJ{U3Y& zWBif0N!SK2;gI`X?Ig%sS`YB(^Qwm5YPgkoViB>HhKPOFD^c?{xmU6y&vI^T9l=1g zopXk6g_V!M#l4vo!j(x7{eUqS2_)Z_bvi7;)l7?&LKUT37j#FfpwNu0&s?8QRd2S~a_%In6>~o(J*==F@bF8d^-x`@sRt_*}qPlqX%B6_yk5 zuaBmUQr0wb#0vD5_RX^M(c36LTc+Ix1mqj4Pv1D))LTBmXZ#Xzp@2{Y)oM|#>#``eCvd$m-Wt=^8L9}U_9 zC)h#BDOTS$7L4og5KiD9{;h^TZum^Y7aN{wcn+#)PWHeL#5u!&O8?)HlCW{Yh_nr< zJu&2!GM=!)x{e|t&&`!pBSSsHB_VblORe9BIfe?$NVn9EL0X!x40}8^CFalhtcF!V zIYC->iI&R@@QdC#a`mKmJ?M~l<|mlERa8zQAS6Wv>x!-eDvWu!Wwq)$WH_1i>!_kC za6ZM43h|_LW-`?Gk|~n@U>JNR*NAYmm*EpeSw3WWJ5FK{O@B++xLGN`D(uAn0*OOb ziB`Ra!(O=(ef@~^qGU2$OFcpc3G;+$Oua)`M!S-ypjP`OSrtX3?~WO+AtArMz`^o8Y(vklM%j z$BNJaHTzj1qZZM(+pO)ytQsb84;abWHErJ=1|L8F4x; zdcWSZoARH@NPIpl48$jefAxEAO57w3LtNS4^9f|n9C3JUWZ@LPl^>p^70>( z;u^=z{bTJketR79_)jPtEXlGz0k^X8iwVtsQ`anM!Y?MZY$Z>JY0&c{D8NXuUgBf8 zXNeVzB$G07QuJa;i6He&>{Np9?HB9z?%ukq|4GRVd04`0udfMct7g;cA|0fD$@myh z%eXOwO&AvKyeJPZIt2!kkF~@Q)UDRefF2b!J=}{AB(y(d8jYu`m3ym|$#5a%?o1WJ zljHe}Xe=3ZWaDV1QkmPo!%C(KMm`<4c6iV3#Wdx~0lSP$I-cFj9~a`RS$8FoRETo@ znZ(JudR1d!gr&mxT0lNoqaOaLSF<$YKr2J?d*zK;)}F@ZMN5c_&GZThXkKyvHxW6h zrR=FpX~Hon*k)P9qVO6iMJ`4apHg}kDHYaHO}R&@Q#u89fcZWDtY&b}?)vD=^e%6k zE5(yu38qDqg{o7CW{!2|;ZwR*acrXL-8(^E2J7PVf=GzLGe)b+zWJ;AVLcY8~L za7lHA?L>h7j=Db!PpZEiEt!Otn$@{WBmtq+(>m7YlM)d(`vX)xS8uqll>|w~-pm)! z5Vslr9qZ{+>KFm{lTVE$o$cyS9}C+y$M$X9EXva6N~!ns$rAm3QG2r>fJ@e)=&n%x zf2g@aeOj^B1JPA_=xtQipYvdN`b6fOvPEJ2gc&)ju-c)kJ%#mOYe+s&r9k=E6Gs~M zssCy0(Dlz*ex4|0z`Zf`4f6XBsbD-4Kq>_8xC19FTs~s#$i&@Qe7*jI2T=#q=i@d` z1i9XR6ogmQw>92LsE+Ut2o?K8U-Bjf>wcXn0cjjRW&*^?fN8xNO8AK2o#$MGJRF#j z=<_TA4>nidmSho~582nk-A@dUre`llYZ>+J-lHqraQmLd(INm@ePx5o2sS8czcyVVV@eOmlj<9VvL%&E ze7;`(CsQO#g3>=NhL?>X$UDjQQguQ%>wq_^tFf$?mpeLCdn`V>jNS~zEO80T$y41$ z7dWgg-gf!?VYKLu_9ADD#^UYic%Kw6C7w)*ld9YC6zR{FalhZ1CMxrFD??X}Q93>3 zhpg9`@)^s&i#EN6dvkqjw^2KDh!aP9^XUvHrVX`+20MfYp^BO=X)^LD1LqZt{J$dy zPBTyEQA=Z+&K)Oam*;jwRW1b!JSrN?NDG~b#la#fH9KU`?WIyTMM$4eHe{n?^{R_6XIK@KV0N(GW80#-brHnraFs6Ho?P&cezXYP#oGZYPo zh0>v}CU}NF5=o_GP+w&h;@5G*q00Ch(5 zixT$uBlyHNk}o7WFS@G`hvzib8ZUBFYrJCBhzRN7IY)d#Cz^1Cg&0d|st1}P|1TJT z=m^$cEazU&r;em>q`!#c44q4rtwZ^;@kKgxVSDqGJpVxd6o(|`PX3rks7h_N4jeJI z;h<05(A??%9vewWhZ?z+a>t=C*t^h@`}yS>rH?MZpnv6MVgCUt^!To&1oUMp+phlj zTI&XlEqgMtOjRtwWO+o9zh_l@(GEZsSau##BM++ex0IX}TzO^&l|7I{glq`L&*J5N(W$g0qS?Dg z#CkQY9#`}#guuJ$ z5{+e9H+bYyvT~|>NnlqnihQpd#X1@ zU5kK|j_V+lXrXU7>F>)GjRRP>rrp~=78oe@Q|#PYnC#8x{Yi7UxUQRHYg@wecL+W#ddVPhMi+wToP!hVNzn7f9P}{K z^k$ZMkx#2+Kf4-b0(3i=>WJ)@<4eJ0kP~UtRW{{49xa=ryUc-snSeRGZx@Z2t?8iw zb;ukRKyZ3sz~tC8_Ze6UIsfePnU++lW#;nHGaDDL9&HXrH~rE3HU%Te(b1dVw+S4^ zNUk1T&;O&zP4}?PmY>Pgid5ed~-O_M7t5RCCdd4o;wzo{Y^d)&hnVHr8=G9978MW8J+7A6* zdl{to<J{;+}FPL6~e`T z)cD-wbB*c+(`r8>zCSR4r5S}nrXlC%S$S+2K_QPOt)}l&n?JsKuR5k z$8BZF0Oi$-+MZjN)&04-;CZqPJZ@4i%>Zv*nA{J&I!#ekdYb9HcS;jLdYXPH5 zzQ9*&F}@44@L*xwID;Zb5WisXVzhYhj&>lqX>m)s|iSFnd}yUb#9OO;%z<}PDJ zj0jdce%h6=*qAD5| z`}Z?%s$qk=T>Zj}cNZT8f*TqV*rg;lr(`WVwtLK0yOstP33lV*SShkFrR(Q=8m?}* zN$y!JJ#7R?_ef9s3+6KE(uWD5cynuwt>F3eEh;hUer?$ZnQg=_D8=c^Ns?>J= zrt$__m-NOJdeuGTH@_G7 zs(6&C8UFK0%bGmy^%fw8;?38g*OO$vo+q+aGUhxX!`-op(0;vXOsPbQo3AFkD2jIF zqwcMSfPLetOQ??TkSzT z`%q!U=f>YisTq?btTf3MW7w&i4i#8)kkC@fX? zRAiswIpe(w1zPmzf_2_l%4f`Ab*(=oHE7$~C}J#s#Sh+h z-v?JLTh?k(4>6nZ8R7Jba$jGevn^W)QBCyp2gk=Zt<2#V=>!|->yKx~E=;Fe+p^8g zK`I4yq&qefY$Cdr=f}trA1$5W#Mbd#5oc^29SiR9Ip1KRr`anL0-1D+>LpY!{^}r3 zBdv_NTge)`{!GDds&L1X+xiN!?h3tzyU!};)m*-8J#KBajGJjXGl2E_Wl%q)-(;pV zz?OS&>H#eC2U1U%0}@I-U>TzWn0#7y@_HUk>NrOsLhb=TMMt4)8%x6S&lbv+q2E?!+i+y2c|%OQZSBo@_FQGa$L(;aLmv?$`^ZEY+y8 zdouZ-6a)4l(>!DcaFJ8mFXvYWh){V>f>ccFxzgxR1_xImW$>)hgo9OZ0>gsC*-VKp z@&01QEt|N&%*XU=nJyNSCeJ$5u+J!gg>~pCaRFdN=y)pP8APmZe2H}`LxHsE)|5N1 z{+6&R|MI0s8M*5i^XA@viD&Gf>38427BIHCN3e!0e{uU+0PVx0oCcDTi9gSgm*qp< z{`YDodmZ8>r>~_EJRVn}aO{GZ`Y;V{Ml3`L0T8rQ04BLNE%wASjDDt}62faJzzI`? ztxJ_rm2Zp^yiYyk?GwWnC&OVnLlXKM3$0n!aTu$m@mM09aqMft0ETUm*d?*p+}ECe z{_CR_3G-&i*lQTq({(aX-aVX?##Gd-O*+n81+U`7glT8`Jpb4JzKm@y7A1rwvt`Rx z_lboCEIkS2mY6xRV~oSd`QK?c=J9)vG(44oqOCk=PYZ?S2b+a&if~`421f=NbLn7( zPTC{=we)%Nz}h)O*Ayr%$hQgYl5Y=cM&W(AtN!I$g>-?>Yib4c0@2Lr-pY%bDaM@v z!yqRH@^j`4npojvE%X^=i?dpcje&S{!0;Ehd2~u>D8;QH$pLzqZ^R!P2TO4Zz5Y^x z(>Z@mly%cyFpPn?Qv~`p&3)BEj+)*5tTsZv`qkx1Z3ji(}m^waq5wqa-f!i_QF z0D>yg)M!W2Q`FT|5>S>4Icg@CTU!c+N;(R@adb^|z#nPK4ehtrnaf%-j%p=PSlNC+ zDconOjjK~6wEMh7v9;9=`J;_3sc^e9YVRmS8UwjzGg^#xM~E~;e7tL<*(zA>KM`Eo zMoh<>|El{K-%Wj)tOP({`sn(NjrAZD7<6im2i+Er<@1`dHVmwqCh2_z*s{(Rw4 zyc!m0IfdPI;FEQ44h!AgJ35-H(62tK?xMxokbBRmoBY!%Iqg@^9hdlK351r8i|Y8l z3=9tKTv-TOI#a|7UaA)Ewt`n*9hB)|e(Ju?2wUWC;efu`<^BdbJjO)Z}F10s$OO<{2(zZLveU*}TzbrRo#HT^u=BfMDpu2^(NRDII zpztVf@xX~ZDG<yjMJ6a8cO z^Wyf-Y3d?H^HV$0X;L3arpRRX&Gn|U*>vyxcjo$l9doI^x$n#qx8UTacI;S}lTNp} zshvBfa*q0T4nU7GNT8CLMLcKzJK3Zt(z9DrnJlG#$b2*|S*sycNU_E(EREY;s8;nDMv3~!Pl-=?Nw7%KO*!?+P z_Th#LG`3e`Ql8D{g?iu>fuWzTC<#}PSX4qH;7+I%8o)$b(5zfrhvE$PYIaK=ehbJu zS)3XzyXWj#a$DDz{IY_1NWqp$$&lM58ShT-Qwuz;=1kkn8xJIGT>2pwXE04ts}RT zq#==I4LsjBbOi5mXv4!Af*#T?>r5xrC7M}g67ka2Q?ny*xQ(mGrit@PD=HJ`ZF0ZR zT2S%$WvZ!rmxij*3ANEFyvD$9Ya zkKQE?dh?w61#8dtYS{Y_exnUiEzhjp?YS_yH}Oe$`8ox#Yxz}delJzYr>S1pQB8|X zK=@yke31*ini)4dP4m>0rI^%|CKInvvZF#AR!5())LMp;x>cP{$jGt);kQ=p+ z`Pe~TZm*`e%cx>nulk|YGjs=Ht3?FpQP9ktWu^xrCBgVwZAFVi3bG^v=nwkl_z36M zA_0bkb&MLj?0)HQaepkW($9xN?>8e6bKD9BaHZK+&jKHB`L3ioFMSa%$&T6^NRIpC z!^Vzu>=SaOPsGyhL!q>_n{gbs=v+cIIu+td(DFDdl)tZf$;^_+{8gRJ%x6NLcOO11 z&oA`ojrDnW*6(ESYh~Txru^x`3|hnDg+Cz!QDEgoC;~k~s}kP3#@m;i9Tc9-pT4BL zi{iTEeBG8x%D&gG8lZ)PR*=t7nh;t_UD;(>efe}tW6+>Vs!C)?OlxdO=a+}guC~c+ zAsAVnZ)rg%3uF=;q?~{-BX;>T6AO(QD@;x0CS~S}VdhY_2>kbgGP-T7&ZIEuHe~*^Yc$ z*RTKiNRWGL>oUX3y*m%ICf9QLfd27Joa;A*`Eh-30e@2~_tx4}JFI`6dy`vF`tW9P z=jtoBo92{WD=QA`Tax(`o2%~g$&lr;(6C+l7@h0!IkzGli?~Iq_iIgfu(p`R=IGM) zigv~l1Ugs^Lbj3>r9}&@v$mnB90y@fX{kqO2@9CPH--P0Do>dd{%7&mNzkXbxJrFx zF+~tZ#8}dP+@cietF*b2Sg8AmwSK#@b3a1Uqe^P9F)XFkBp5^yFc4@pTEbC9F?-Xw zUi!c3=GT+@jp`>?HBkbF@sWSt7>zX?Zg{-muUOwY$YTj<%JRndB((~DGnrTMlZmOu zp9Tly{XZaciPW!Axz}6+6#xo{ulp>0?@Q_aD`^Z7DaGn;D>9P)M@Y@-poHC#a;z2K`QuMix+C^Cp z67^7D4>;hWeVOJm*8le^X`1x-^thBEtj z#E^+H?WEkO8@*08k`Ok{!W8j$*Qh`X24WELH?DKmbnaKLTBo^)d3RMWVS3^youdjL ze)HduL;pkfdc}+7d2r+xYV`+bo>#X%M8KS`Hw&tp*D2hR%U^NM_fc z*}qMy)^zyDtp=%DEw{E5+-d3RY0TQEzYGq114&%J?K=|wF#MzW%|9?M@KqZu5NwG+ zU5g*1!LOZxIv>{1%fBx4gALvh%>;rVHnkI5QZ>mHC@rQS+beH8C5N3$9CqobvwoKfn{Wc5xter2VnJKI*FhtGJnt*5)KO=Ynk z+uQ^7{cXOUo{Ij^mUZ9XLwC3OX|JC-1s1Tx&J*9#kk-Al^>((F!O}X|s6E<)$Wqn9 zUO)0%suv{BRCu`kX(_66xz2Gv|6$t2Cx0cnbVIFf!6%=_pSY;=+Ry(qp#ebeTIYE; z^M5U#j)u6_>_ssYOiXLBD1x1yg;^Jo$k89gLpQ6|#qsl!ndGu%YutannVSD}QHWSi zSk@CE^I|p&;bFPn;dG7TSEOXCxWc`Vl6h&pp&%8mXEMBf{2xj6k)}Ql3i(ZEM(dJ;u zAP2qKY}dc_VSGgE@y@P=>ST$mF)D~)Ol!|%1uT%Dg(^M)jX@z>XyT0CE5BXR&=#dm zi59}nY2L7U>>WytZEu-ezFZ9qUPNKV%4}cfY7!8v)@YNW1yp%uXMS=3wc3cztWay_ zl{%{4v3g8Rt_rRkm{b=H4$f9o&!p1?+$5=n^oefkD0k)uR!)(>U@jY0^K0m6j|QWlODaV0Sr47I98xdl<~3SFH7jST8ILVWTg zJoCW0Pu)Y^FQ@*1#JB=t1X|BNPPUa4ADW{T|6WS|E&9}?x`d=KN=b#S3mU_<;YiPz zgm#`C693OFW7p)6**`F8O!OnmFi&!Q15*U$n7zY>O%?+w%Jcy+7ya&+H_Blc_`2Cj z@1)}&?wc{~C+U=9NFI{(bj_82o}omz=+B#2Ki4t03skiS@79Qq_r#(cXuwxym)MFH zFvb8=&H&;F(^i25XUeu0ELy3eD`+TKa034Ktc}JRLJ8`m8;FlL5` zaXL7@!;&UF=Fahh!viPG!p?lb*g3k{EDp%C+GZsk9R@J6Oeu5Shi;b4rKd9iJ4yv4 z%NkatB(z-YH%2G(!-O!U&0KM4s8}{G?jLGx&-Y#N!SiMUjg05TTAJj5)RWl6>(oS$79SJW_By+7sIv9z7y3xSKKL1#$GoOsdyVQ7Y zqA_I#b467wYyHgQK~ghwQb!G9@#(M$FVU3YtHEh7=qe?Hq(C9)34jScdaQd%z18Gc zGfGyag!0aoSl4k5I@baJ?PTEA3pFw(OEQ#6BaNE*mxm|&!kE6*#0yn(uX(*~@H6ao_L}_WN!BmY2 z*Po@9hRnk(R4TO!Y&@(yFAr(VdyOe{z5ai++~vS?-?BblyMF?e8nIt^0-lfTXq}|& zJt7L1)I^cz@?w{o@fWTGPo>)ZIa49n9CZCFGbXlkLNgT6jm7Yj_GaRdgPZh7k9!Fk zMr#(0xB$SsL|^}wNxwNh zHTA?%^>_N&f*W9#aFgn&8BUB=LzsFRm|*VcLH*B@m(9O&*}S@J{sTKVZmp$-ht$Zr z{RGdB2mO=peD~DUQ65$E1Mm40c#Y|n1UOX-llHU-isvPL9zgKchg?ZiPE5BV^PChs zXunc7-7GrfsMMn=QpA+nzrXrS+cxglc64fL+h%#HcxJzP=oXVi2Fle0i&slXn)}$V zdw{Kz>gPwFSUaVkVCC}jAi}fuq@y*0)kG7KtqcUBOCxFjp#ZEBD#{v_&suvLsfw$Y zT`;;X9dTFN_AiCNwX2J%^$-)uhtah?==wZMlXiT&o})KD2`k~BZuJZ{zBC8vY*Q8M zH808N8cnOZp~_!+d%j}*rNy87N1s^xLCRFK#DRdq%IOg2d;DM@R#3 zouck(WS^%+8E@1TbJ*gHrQ5T6ylP+GoBF_2lISTf?o;7CVgA%&_^L2}##80o=~t-u zRn8e{{l+I;*L*0iKm7_O7d;Yc@1B0*>4OP6Vl*U>1)hYcmt&zH##`{E?|xHEHQRdC zG+&kYXG@K}fw6>r^oG;|QMd^}6-)nG*C7LN@+-eQkJDHY1u7=K4?n2 z-Ilh{%XZneOSxR=pMP#|OS^2_rF*xOWxL(Bp8UVRb4GrI(8t}+|K=f$Mx&W?e&=_7 z@5gaPMu_rp#XQN&>ps18IF>+<<5-MMi!4c=D%p5>A1}UJ9^RUWvqZeB7#FxW1m5~V zg`5u-rsY9tAvmjo@4LDB++q)4>h0!uIo zvd|Ie2>nH%6Zb0=8HpJPZ_vdCIL_$~oNQLIoVI51GpuHnJM%zJNukYHuzs+iLoDG0 z_J?HW0zHRS)q0jwMIwS$D2m`CWuoo zL81*3ngqJt&5}h8x2>AEn=xl(Y}Kk&&=bSidKwaeBVEsi|Ji9WdHqukyVF}NUFj+n z5$tMnOu<8MqAm#bK0MZK??V7J9nlH$NV7JKL{2M~T)dVIwJ}GiIa&f$hWzKYzz6MA zlMEG&5alB=i(7HXep{(6)NE&M!CWn#v!KnuX=b&fwTNmzE!)!QV`NX;zU1!Ap$fTU zoezd6kH>6k@@2CQ6#ve33YsC-vBxkCpU#cglh6(LUyMd5JOS*71fTu)21LgEv ztSXYkIG4bZV>Qf{EDpdVcrQ=BdiZ*7$wVG(OzMEk0!|APx!@J05^&Q3#G;F#ub?nK z(p&+DH!U7xd$AU7%bjM)nhIW&o+?K784{XSIAxD0#f2qG`ge|y0OL78Q4Cj;z&@K^_+c&kK4P9D|Hx5!em zSc0Kqi_Gs3f%y%@_wkISAo+{9T9)9BJ7UK85j1cJ-$C-qzy@R?n<^{N924utVqrNP zk(}OA+35xa9L+~kxv*5|u?PBlBB&~ChTh;;ow6Mln$>V@Y@OL%E~3DQeFIS4+!M>p zjMYlfM7ccHAA<|kPHt3^IV0$S8-mdeeB*gbiOgw=vPSq&+H zOY+=jBZOL>@Qxz=5$c3urzG=`5Zn~F@=;j)30_&8O55X;-%AoKcq998ONL6Ta$CVt zK@OJA^M3885X)iiWJy)~DGV&EnViS-a`rUpzTJrGJ@CdNoTxF-?p`nx&Pc)fFNgsX zI6yQRo^Fm)LJtx7Z6u|lHJ}LJ!S+U3IQ_0Z(n~O1f{Gq2CwM4vD-d=3>WxF#v{>H~ z!r8FYZhJ|8%Y;k#2B#KZfODl10SlpU`UNjRK6(;j`@^`6+fJ|O_I~J)bc8pL!wnPtj;_eGbXmDQl2Y`$&}~K!zNzs}Gul%CA})J`7=dDY1dn)_ z;-w|{%m^1Kwgk4qxz5$3lmRDbgK^0af;$3n$+Cg%C~6E6$`HBCBEOBqVgXg`ORf}D zdr(kzm8wqKy$7t0&!dvB7bOHgxyMsVlu`eW>IuR#hU$WL6abWsgZFZe7ige*?;t8S z{S}H_+q4(q=H7IbRh=P6+6?_{k0%itq*{a>_(a|>E8Bu=hwdfMn+Yky__Yi!hN*FU z5%FErzn-X#0d1VIO%7Wh8@N|-{qk(e1dDaG6gGbo^hUWnu4Bdh?z zzJoi#wwEx!M0h|V>T`JIY0qaTaO!9xgg#W*9%!Hv4kffF7kn-!PL_BK;Xw#g2ucPX zXiuVG<#u8TVsBy1^j!vv2~M*-zS@I=pd0XxJ+v1!L7STsd&Q>>$?_V`>R&=^7*0`y z*g{*Gha&PRItDTqsnb|fs=iLZKl{jcK9-|Kx^lKw>xc9CC& zzkx0FMOu76_u*el#P_Pt$6^wy^}mXI)K~d|k?0NWT@n9Hc7e;Of2**HbNLTY=B_D% zFhY?@{UGd`M?y=GHm3*^Aw5N36_OfpmUL3FEQGKmB+?giIlHvBO-M7pu*C*w(Oip- zd*9q$gOX(W+HR#%`n>g|1*sEPUS?tDezx{4k#c6xT*(*+2Owe80jDo-;Vxu1pNQI zc$02wlZXcbc_dB~h!Fgj;G(_Yl~8ocuE@~@Y9wM)|5rfc?K4YGGw@VGP`Mw*E(NwH zX+aMZ6v0Mychck%y*$f{1gU$uE;fUrj1zqkmgnl*8#wMmB$^IiAq%v@i!x|L@ z6Ks?MsCB9jfs2zo6ncWKV1X1saZY5(;|a1Lej=C&J5(>pj2+ov(10yT64?0cIBFbl zBFCfH8iz;Fgk(-s@cPk#60!n%k(_-C;UXg?A?*`iWN8pU9D^)|+&I1-9a$SfL^GVK z!woqC1^g~1b|9RN%SEC#I(d|~f;!UX5RqtP`Xxz}zyM)^jJZK1hwHxgEWQH0K|TbP zm8Hu_N8nqFD}AI*&?O*Ja0H8lwy>;I2{;K=^>HOofcrTbzEgOy7W+=Y z5(5JajnX-rKngI{mWPS&8xqVc_q z<{^+v(J~3`%Fr_@;}0Whzc=Hw2QpyWXkvw0q$np6fLGy=ve@-oFnc`#v~v7aDzEfjUYkK}&(SZ+n&G{Xmk1BaUu%@z+8`CkaT+?(d0tRW|Brw3ocZVuoZ-$l1wZb)Enq&icNwJaVcyHv#dOe zNXi6BT6j_SDvL&VKhX7wpxcvn2Qq2Z%Ha1gX|HWljd6%w_^-mdw`i;-#9zK?tdNwj zl6Zy42O|}YZW#~i;`=#i#B#%5iM_VO-xTOZc+uhoPmPomr(E-@F-h(3amy$Y*Mpww z3e+F_(=z$1-B6Z`Zh7(0OIDZB-6I=qMsK+v^*3Xxw+1b>v_f{GuJ{{fGm3~?-JP)E zDJ~PieBqj--r{12OF&zf#8Mm>vm+rn6s!^eZ3>m80`j*R07dJ)a*%4T%hX`#9ntQ*1&>H~1QN%xzE zq{j*dF>0~>v2oC!olGUP)rZ(1nOnGe!yd>W6!~TR&wOLyU>^fLjiF9LR2_u97=NBX zIu8QD2GuAkD#QYyvMBNqU@zruetZv8US6A7G>LrB?^7JDfhJ48$pp(3nnD7z`^|x- zs6)ww@^JQXSkJ}R#3)ZwXcDxo-W*>;5KclSA-#`YxsiiQd8E*h)s^p5yj(o^#(1kN z?_e&gI*R{(=P1f7;~2JhzjLMk;t@GtmgQUIPs3I}ivKSEN*65lu9Xadiu?nw;h%%f z{V=S^qwvI2mV%z9qI**sHT*$zML`wBnsF(LYcg=9HO!RQo>0q$z=86d5c_n(jk;xt ztfdOKau!PX9i%_sp;z%A%K2sHwR@~a^Hs&J;jVQ)cP$5f(&{jocA&I9n>Lvd_`q_t zXQujFTc@I}t=+j$xGNOwYLO1usE|L3^@uY5NyUQQ>NK(M4|jE;l4fdc>F?l}LxtWX zV@U)}pqS&|l|I*>Z^vC)H?;oLe6z=D_1w(yQ}}JX@Y^h>3e!9xJkC{7eHpV0GTmtz z=Q@(i>E*&8K}$#`8>!)+;=Z3OVf09>=~z&2Ix>N1si&wryy=>VcRA7%K&Q}c291=c zOnZHY-|>_<`IJMI4#Ta3vNSPmH+SqLxI2g4k34A54CgSfN>j&f_1n?9#OarYo!Vza zVIiJOOa=&{?*d`pTv3J#!Hdhoz;TvYSo#GH>D$8@+-7k+QKM!Tb|;}UBGok%YSu&cZc_j3-%B15)S%$Fz{}#{(#D@Jr`oJweoHFPHq5G|g z!Sr5E2=?yfG~oA80PW{|`-^=~>xgloZ~P`H%=?dlNBBg(0KBd|88FEGu$)985+a+S zB6@t8F)|A*tn*D#+=@zmw}zPrjg=08b!_E}ycNx_@PW+s#3#;ju0o%Xh>FkpS2P}C zt|A}UhNy*6WR@Mq8PZaqxnRk_E3l+u9jP^juK$s<7=zTyp2A$y1geA`X`y%07pdox zuM($G?t_Jq1jazEb5FegQStQ`ko;Mu$??t43rp|~~z6_w7hS5@xGz8wZ>a%kL$^}Lk# z##n*~fwjnKG^9a~X;+|NFCZzDX@G@HTYS@i#`kgpM!=;7rlJt~SClEFf4Sg0s&B&) z0pBuICzp-KsO|&0K%fqUc54%nFM7EL9h91Q+EtU&x#8~j7Or`+*qO!5I6s3N)Wt8*8zOMjYh0k8qYF5Wkv2!B zSC%#^q6!8L7T{pl)5MUB7I1p4>fJa1WYD$7DL?{yG5-z%r}b{26`%t6(3ksg9Y4Ye zRa(d4VtYS_Cc#Df-?$o`7QM)FQ#$#2wuk^1s2I7_AL#HGLyf{}P2YO)ZxL|*VkO=zCHxST=PpwJ{7vwK8X zH&MTsr?44N6ckmyJ#4s%{Np-Rpb~m~>tkC~sT5VEN2cu|X020R1j$!3b3wX9P!>cN z2~me;PjN?88PYzvRJoSo1sKTf%}-=g94O*==_C~xY)!GgT&^{eY6U*Ce-8WSs}rhg z{9&~{uh)}pZ%59u%c11kdDkm)N#ye?)6Ve9guE(Y3LzPyP$AwIlq$TZFW1)Gto}$X zx8?d+Yb4iJ#)nXIEcbc8{exAd6z(*-2MBZZV+UhsJP!^Xuu4zq~)!F*efuQ zW1W6XNP7|3O3_KgeMcr+BN5H?2VvG0E4a{%x(NmtI*Q>ydTTJwzTC=h9BI!**w6kT zcwR2V+-|!6C;35)xv&-IbhQs5Mt+0g7Emk5+0fca9fl)Q$0*VE;?JU@3rJS<7qqo3*s5+{3MnJZi) zA>Ats;~a|BsfX2GSOLu1;OOW#?|{7zR(6zLSEa{(y(t$8J$5XI#!uj0b~JE^&G<*l znP>mc0`F%yrQP)6Tsw`DtyJ+>*|TU~bSF=jX7PB_a{_KWgplczb{X0poA z8H^UM(=xuF^;E{kD`>|KPa|4tKvPa80rz=5el6;f>b^KjccV@jSJKF}qaRq3$l;-N zpp;lh6U3ebm-`9 z*iL@O-j=xwRIB}ikuxpQ-I8jxnXbM8cX7ywI*WK8r5ARTe5a~IK6I2SQt%_Rc@kgV zfJbXLKKdx(7i9nQ=OGvTchvGQ_{dluC;5jC$h!b(2&KcsK~HZ1Uhaorf<#iOKdf!# zN78d)?|IyYPR`y&uPmzlnBJu$-Z0k(gl+*zJ@aLYu5Qp+XcX9lCPn!^PYN_7{)s4yT-H5#&KdOG+w%_z8vtTUB;TKgZV zs3(!|M6oA2z22xh!IJJ_>6_Gp+cvbcT#h3gO18(l%S#9OIh!qNw+$|xK@lH1UoJ02 zPfKbMy=Evg60(Okh3$c4A~!ggO(uf&aG?;km!a=+xj@L@ZeU86VU4KOD>@4-Fj}Wc z{4X;2Gr15*+83aqYX+#p1Xz)6V}VExbQ3iXf=@q4#X>#l7e8j5lZodr<4fPy$kO^w_ESrdh9`a&uBBzO{pZS8dw z?M7rP+e_gthajQbmEDk-aWhgtZgJb4FbzUMQQ1dx7byaCCKQW>5Cj402DL`Q!_{pR z^Fca_z;!q51RdxLvkEv5Txoccpo|2X(!zXFA?&9nbQTZhN0uuWL)edS@$*9Jy0}FC z0!UYA^VXOV=?}B7qW<_Rer&U2s`_zk2kC1Y&{QN481x7F>@cx{2qVc|en=GWgLa;Q zrUi9Cdd2HL#3HH$)gy72Bz=vArC6a5Lq@*e9{^s##>jsyc+V@+X7(@0TB2?ekd$fA z!lFaOE(<~@C>)7|^cNOnA>?JjBWUEDt$^vULNQS7?9FDOZ1fg;!}*RdK4!A(D#hO5 zrgl#*Lh-ASoc}-Dka!ymL|b#7_6$mAoy@sWLIi16S(c_22>5Vd9ZS2{rR*)3aKzCb z2(+PRPK!O2a6}AnGaCA&t*B4$1;<M;cFx$(k)>=p~5yP_D47PIzM z{aX)IP<#*fB$}ai73l_lWwAOH6#vJqRdcq*^bQlo03Hj2X9PoX{SaR(xfT;P4Mt*P zhioWZm9|)MYi5rHtWN6+JRCgO=H_EjEHBf;Oif;o--K~GRg67EPr_kWm+HivOlXm7 z!gRFHqgfrC1Y~N)?J#6MiT9Xnu>f}{MzR{S_<-<0m24!kPFkRC5Qzfaf(+X$Kr}ej%1<_#YnlKLUaX0`XyK8sae3& zMK9z-!&^|g@Oqpyboc@gCw1!A@%w#GXErYs(--;m`O(F*IWA?j$^d+5_`G`1tA0vcOQzk=L{kb4jd>&6)b zCo9Sz0(m=XwGQoCdS!nT@oCrkA`u_E-4{Vquhl6T`_-+a)3AWK<I8gccc{6wIE?Re?YUCO-VQ54iWP_Za7oyMAZV+STNO|@mxI8+=C)FQbXcln za1$6@+(C~+@%mURa$6VZIB~?*@_Z@c;RNpnHxh_OeqqR}6@4v8xxsbB+R0lz?MKS{ zmcITiTW;DpISK!&>NLyw+{{TQ+E=06`{)L@JJHiqn;9MLMOwZTo4n-hH(s%2>C(+I z`c0~m>*P#6hl)0~rVXoBwda{sjI^v;HB*CWj>dSoVHND_?}J~k9Xy;Cnk+7m8cB$x z@nOJ38eo|Q3)Zm#Q9FUtumD>3!3wya8hR_I(aQS_!?s6*MeQCmZ}G|E7Et@~LU znH#kq?YDYS9O^V8GB1PKkk_u|FuGM5mUSD<-4B8q1771uyIE|V~uo&)RQ9KzY zLhZ-&Ry8$B%8;RjJZ$f52NU4i!@qsNNjI-C!SF*q?MvdJ!5n^s7>TmvI^ z+J%C{T>q_j8qflOjEh%i#c3-C#C~p|%@*~D{Qil`Pk+Q{YPF~7QA79%c&;J4rw_E%86$7c87K6d++GcxK= z808sq(=6a2Hq=r8{~}G5Zv;#$<)3S!jLCRK4uP&yJctIH7?}1myt1boO_CoP84Zcf zM-X&&kFpaK7aVf;3hy~}Gt$2PEr=|ucI|>ZGbVVppzHLZNze?SLad%>JBG@}kRS^uo3i^E?kjp`HzW?&g?4jkYd6pr+S?3$2TJ_R z4EN085=5>_*FCdKL6tu1F4WILo-JM|v1r%d!*vL0L@?903D7za>01-LXM2>4ONbuK{83`gjbwN0ntS9CE{h6O~chgiYO%$knV|S zQ9EkTaPdj|4HAqR>;^2sf=GA-&udTd?1I%Q0^unj{+*4yD6-@%Cl-z65bJ*ao6=^Z ziuwsV$u?-fXn?6eYV^mRBi3B4-~<2$=Rts%he==uaM&9&y2L&m~Y9IE6(A_PhUF zf6sUn2Oi+Q1e%BhU!y$)X=SIP#>UEtC@Bj8I~v}j;JX>I8zDcOYtVwc>K429ujUk# z97WB6 zPehJjD|$h6@Lnu}4e-heWP{=d+`R^I1OX3Jz$I8U!D>{=QW-t5KplWOpiBfC7ZKt& z`G4Yed)-ebxDW6wZwB$mOtsJ+Hw|WO|n`{ZAR+a+F+{*}M0*CTZ7q_k6vGpW>P>Ue{?mT#nnYDeN|V zUYn8oDCRW*YVs${t5Fb8?B_=6D6i(l^{ie@&Ex*tIG1CR@J?&FSK%w~+sauA1n_{ym+v%2M*5i33GvF5o z&`SxnUgWrP7LIbkl-pL#~n$RwWmX>cclflTPIACe43YtBuAf)3Ir z@Fa@g#i-`Kgn=Ffe|p)kim`Z5`)xLx?W^W~WsUgNU)84857cVt5piTA%WJ=B&ZK); zn7*?93ZYtF)Kv~jHI!Y~ev>_v%Vz(>>W^4|RjbwhihhF{F8EDLZ#s>i;ER7Z!>vd^ zAvh6p*@H3fg*EF^!wx`-`v4(hkujvz2sTNse^@&}0&oD_=Ji`4jq#{4Y=Fgwgyh%@ zLRbf;TX0Cu1d`Ip{k3W1v3v(hMN4TAckOO~&X~^+lWkKnbebd-4ROKRufN62UUQq# zRA_CTjJB=>MR#C<>D9_!7~I&=F_@|Qy=m38Dvz$X6f$I!#`=~v`{S|9hDxi^9F&bt zD!AxGBeMBJcux}+OTs9Bz$CX;a)<A(382QRqIeT*3VGx3nFf5`0WaTbUd^AtvV=4>GY5(=4mO-5 z9DBGp?}z)f5zfER8_%URZX`D8FyZOnELV<2p=pxowvZpJ=5`CQzoA*tKEd*uQCyQ-3&k#>_0MJw9em(mA-Cax z?03(;hOBw{z=ljHz~TE= zyUvn;Hrri(i%NNi9+c$=VVgp=wS}#buA8rrIWkSX$EIN_e3I0T3&ybQ_l^ObwdR;x z!z{t68-x>GxO6$N6+4nn~qT@oVeRtmFFwtTcWVr_`--^;Shq{ysbgVaRZz~ zLoVj385vectecbL;t3P~iuNs6nBcDAo0=jWxSa_riX&lTLANv!!^1rci1i}DuAs7; zIEE2lR<-X5RD`7VfT;gKa|ml4jl|Jmy~N2<$lpJuF$3kAF_nloewIXzSKanM<1@o6 z)?j{4PS}d5^UFAJO_#FC>p~eD813mom;w$&-7m;ciN<_{@agFPdTbR@5a2j(05Lo46^<5U)HRI4+ zIz?>d!XXM~!NqO(&&2Xn;}zt&S||&)$)lenlh5MjeITirvjqlWeX+iQp%9n{RgK4K zDQ}>CpZ0?%P8>x>2_`tz4|lapwfd>YorHwP`KmNDKa^%+$zi_6M~|u}PN>=ta`Ny^ zrhjToHSR(ORO2qln`5D7>VT>5*%0P6gn8{S9EB(1wBd881Nkk(Im4@lUt#qc#uh$& zHn(jOdd&-3LGtaBRL{{*uo7~IaiVCNpS@7KE_PxeJ_tTTI73%9Zi6d0|KaE9MOfqL z$>fvL9||5944An$Ph8Ned-nL%W_(F|Md)`uR9a%u55>jehkXDV0G^5TizVq-zkHbR z#7?h@@~i$x23O!%?I!?hd-?i^Q&No6UvY=omvIGO)w!QYF}f`+3qtAmW3>Ah-W;j` ze-xhoQMWxs`z&R@k6vg1Df=*_Xz_&7{FTVW+Dca}dL!5Uu%GB_ zNbI%@`T6Nh`M@@Q8GrpmLq*hWe4F79bHO%XU`DJ7VGarPkVGi*Uxao^8(vnMT>&Fr z;dIu()`+XlAgI`;kZ*XjB`2du zFK+Un+$cvWPJ&42<@hKl5_Wewh@3q9Ob?!d<%rU=h5JibvGILxf1bg;3x>s8Dr!%< zQTzI9A_Vtq5N+)4#)n)q%I+T-g)Rs4z{m)h1=P`zxsR|F*rk>2{oG&!i4IZU%o%cN z|ArNUgA{fa#EPI~acgV78^0#Qj@`O)r3xbfz0G|Vu_A&mirC{N@QI`96rccu0N)8T zhh?x7LcsO(RsjTo{9LHRgms!+N$WhZ6?G{12GX}1#6i;4@$**3r;oUJ$Yq$j-R}1v zq_AYPUk%4;H6l(n* zHk>d#X!wlb319(Gslj4I{3j?gnRA59M%FV-jH|*tg(sP)NCYBI)+o-7cVi_K;1q-G z@CHF<=9FpNFQwB#LASEhZX7qJA8{&)oFy17xaERye3?Yqi&c1LL9@hq@a5>Kru5O0 zj^0y698!S#UAN^-xLeTN*J=4-yOEQs3*ED z!))xY1Fkjvr?EiVWz&8uZWX}&Z0f?}ZiI5eB0*J{T>&$a7?8YxsO;kiCZ-C)QjiZL z7O=6M0c0QQg~MlTXu@uH*}vs*eB5E|HR7LxT^DdW5Cf0aVvcmciS}FQJKp;~m!0jR z$mBJM{0O)*JkSH8f54_~;&;Q5jlC#4?KVcGJzye%tGB)13|sEw^ecSrT7#}!jXU5N zD?9IZq+IwKMKp+gPJ$HeXs+pqTzH-VvA9ZJ5(_xT5y-f~J>8^lmnmHtfeeUhn5&Bi z8`*fHF5a_(29xlIhG-~9f`;`vJAPn69lV38_5cj_jVgFE>SfymMI@0>u|DSt@MiXW z9`msoon+VJE;AB>i1(6E1W^LBS#Sas#(=l@3Rf5x9A6NNu_!QO7=mC!Af$IDZQ~&r z+Yo`lyz|Fig~CP@?FI1;P%nUW0I*&G4;e}NL`n$H=OT?!w<#q~i{u8r4G5Ka`7@6D zx)jKNlN7NyoFZXgU~}>9LI!`^ei2c;AMq1R>cAP45F#!j*805N5zv??) zC+dsQIcB>OL21m#FQo8c6<6s$q|U~4Yh1y`@e1SGmAE~*6s$3)mp=ffZ15n=@hkB($Wk(88{aW}LywW`wDxzl*Ifp0{eKG}nLDSQ= zL})sgy{bB{MAJNfTY<;k;YPSSw=B@^#^q z*#e#wP?tC_f3d6!J>bJ4Z8{oKg3t z47eBnDXOsGm`>ZhbYD%z9q8he_nf#_%KK6oXXws6=78or-}?g=Pi_e3s3nk#(2KGP zF-fS_z(vrp`JNwLycIP*orqb{rC}Df!Ho+`SCKv<*<_0MFEjSbC$6nNZ%HM<%&!mQM-F<$3 zj`?uO3Cy3fcuMg{z26Etw7}$!AtR25FJG|Nq^pySQVArJG~%(Ud|d+&yIB2cM7oN` zV3wz`EcmldGQmoO8pZ1z7K`?8=+mY+tQM&a@34!N`j3S}H}@~;%az_~G+tGf-Zx}P zG@VfWh>cL}MvwJ`g$*(4vgIbeBsI&7?e`))0+CkQb=+rfPFz}1)#~OoGuK?RVcGZ+ z#=2HsxOUtB57*8D85_vh5VFaF%WEPFIU8nX0TvRp|D+`?_w*p|z>A1696+2gnjLCS z5B!+OYQY(c1^EJwKYpnnKp|BpvT&Wa2@cQ|4)0j`F#ilkAN&MRI_CL?gL^5Eoz|$h ziQz64g`;8T@x&AGNW$#Xf$%U%+5+M2-h8)yrRM`w%D@WNoj0$|T>f=`F z+ZWnx*w3^Om8S(B&X2{3DC7*q2ymZ#Q@1EImFXcT2!x9{yOW+L>fzP8K;9qNBB8W1 z(g?Rm_s^LsbcbQ$EFZ}h$@(~V82{u#BT8c=8r4jgw-eeimOMs6P3CBy(k>vGpfM0$ zI(1>jYVtF(Q8K-T_$c{^*{q$TbkwIPB2yb8*+68Y+Sm!%gi_2V`FgXN4dM$uS(UE- zj!myJzi=EBPld>U-(#;tv3oLigP?F<2lzAG&y%_a5&W8{oxx#ytEJ3-f;g%eJC z3#;YkXZ1?K&sy9z;p+ih8n)BOh4t29T1WU8fFn54f=cUblOlP;C~E-4%DK3WP$zs0 zUgf)}#BPN%fY$$h(4t=Md8f`%L|ut*3l>QN3~_GGJfPH6(r;sO%5T z4EH&meZw;$znO{@&3~3|nLF=Zbe-%LpT%A~|E#ph$ROJ-qpbLb?atyO2M>@M;NZ$G z*iQxSM2_RSTu?P4+Z`f;lm+gQ^okZ6#D%Eq8u>Stp?FI1)`0ye z6>mO4WblL;X4OHza%#)SRIl0GGxp_NoeDcD^&Has{Hj;|8d_Q)*)57t_f*0kIGibZ zWoIdcq-G;4m)G8Mv*OaeYm`0Ea=XB6j4b3aNoPJZB5Oke;&H zZgCHLZdKJ=J+ZiF9Ip3cH%QVAAMwZ^VC)0nJTAZW4s=YpL-kwl_nPj&1$UTmwh3o# zI7w6IKBY0t{Z{h%7=SJf1|9)%0k$;C7y`X|D!j}S3XHOFN}V`E7NMgNFCrB0yAKhb z=s0i;4E4-}bgSq7X7X7(tVhnk1ObzfadOfKD;J5MXO6(y<(8W77c^YJy#oA3Tq@!; zX*CJAJ7A_lEh949=_4Ywp3oeFAo~x5Uld>=8<0f#0B~b+@&|H)xD=v`zmFEgh&<{-K%nU4_ zlz_&!pyr=VmU?$rHb#(UYqxshvG#ST=16Nr(@6hT9a4}4Cad!wudPu~oEH^xFIl_V zg)^#!txc5&+q+n-1s-U>)nl`_1!Ap%pq;`9F%wGO{ZYAvJlQA&>$OWLK3tn*U8)CP zo6udS!T&70!w>b@nKW!OTxq!8a2wU9fl5twNfF_Rl``nT2$&-0T873R(s^{1`)KEl zIub_+&do@9mFL(Q|DrZQH2Muaio)pI3W(0)^iq6MZc2R&vDeWxT=Q zNgs&bOTSrH*6D?|q?uKgqoW_TyVI)7*Q@ls({Lj70mXRt}>=6P<1N9D}9g3&`T z$7jhOkX0OPh6YaFuq?Q&z_A;!pEtl3U%>Vz&7a%3A)*3VI4b~$0(#NrKx8Rtot$R* zEz%}4wlp%8K>xK@5&B>@pF{=^jN9yillXu-182=X@n)f6VQnoa zsYb*T>j$RQQ$31prmqKfWSGss>IL>gD}t3%&-Tme1LSX(`zdq}xSg3-P$0BdKLsvqh%BFOPCRAc`hD~|&r7|#1ZU5MUkL1YTz9p^2Qx>M6b(RsvX z;!W^I3@{v%iFu)T{RT?_Q-1J-3Rm8|n-9%uliCY#^Yy{O*Qfn2D=YM!P>(K@^Zkh6 zSw=7;a{$L@1Puum0~4H4XEFdLL5GtEz=y}j={sl${oTR%gJ_)nq{|a`*O7>-b=w?q zcUWm=pS;P0!q#t>1(99_6olHjiff3bwX)^o-AlWE(bkiaZdaoR?XigR0~yf_=!EKJ zG3}&ezY7SCe|rz$6_Fta_R=RsIb@c%|6{8PgOP`$k5*|;<>&i z`~d4?iF3<;Ab136zL`iFHCK>H8db`XOd?fA;n@u8ULhRWD`GdaBizM>0@i-?os%Ko zq|gKxn^-x0vCa^p_K{r|iI|Kg zWlh zY!{y;nMcY(JUP@C4VQh2$L>BcSZ9y-b$A`j`Euv8acHOnT(LW zK~33UZ{Y>RK6+asrOwu99HGZ?_)X0-U;2{IZSx0g4tO`X|8EjBg&0`My|re1<(K1!tghzd)Kftk{K_ z^#lFo4#n;Yc*3#qAEN^m_zGVa(f6xD^^m|&T0w0{S`(QPoGxLHV*?U@5pH|(dsIA2 zzY8iumckf_k#RIUij4`JP0NkLAW!N(QO6F-{e`GLhhW8zXtTkeDhY( z*VrJO1nW}%Lh{}SxBd?Hst9&Mv$2bZS8MN};Kz&6-CHumImhx2)WtUMYDk1A%bG93u_Pfhh_5!f0OFh7hMXz1%l z`g*e5+>Ams&QB;)1N~E8#e)@;ZOzT2XlsGfe*-NP|2=44d)Xiyca>yC`zAcInk2w`C3|0 zIrH9J_yg*nfe8GWs(r?K!fHLCF3cfqLj7@M!Tb1{2rCU=B_hOhSlQK*fV2e<73k^V`FE=#v$K> zjicuF_&B&Y!r7JaF%;B*y--qd3JYqNYWZMr^7c#LeR)0}PL(aeN$NpH(v1)Yapng_N~%%5EKB&Fk=Unj!izyW!#gQDp?Tq@P7=EoU@B@)gC(r zCR)VG_8Sz&uZexVrv z$*49o5n67H%aT(SsHZD$SQ-9RPn9YYk-B;ZB-xE5hi-u6gpq9E3dct5oS#ii4Q}ON zSGKO3IgB1(;S*mzapKGD5NdX@4ZwZ3eS_$1uz`yz8?3Bz3eCGNK^b=18E->FuUDt` z({D~J*cWa{;Y)yDbHl|@NyW5454h-H4HO!T!9M(BF~lDeo*+gY@+4xS+-w)lIg}IEfXiI-{NE!83UN)8sN#N zsTkJRCk;k)K{i4{Vg}j7-<$$ChWtWHOatwvG<%-#sZ$ zGO5kxS*#-Ub(Z_fvDQfPZ+%Elgz>=#{Drqe%1h@kY#Zj>U$1)L9bglv7J^c$(jJ4! zM1V5%tu-JWV!OqNZM&4MGZ-9pY8j88p-{3%u{L+0Ux_c7O^2#pDWJjF8) zpSiF6LYZwHyl>gZrrEx)+ZyBl^l91u+&UDnCSc z->$M@ZGAl18VVwt9w{Vpxsc1E4uWw4(z!*FEqhETkDw3GOz}9|A^C~{cC@1*aJb3m z^|)QQqa$v$20OZ;3v+T#U^geT-JT?NY;V<5M4%~TdLn>8{;CIH*FUa#ed~c*WpL%; zw|~1<+r7tu67eC&p0Bqh5^Z1K-|X`>@BezXP{>N>W;U+ar)jGpG|#9Xbg*ar~{+*|K%3;DdLFv%tsOiJdHLg^$i zsbG`aNs!0Sl(=PXLKI-|=D8r(JiF$9Uit2KU->zVd`)w~=PNX?`G?lFwpQufb-T15 z?79vkoxK)5(EW-s`?27vPL}9gMTsL4#lcBljL!y3N2OlI8Ca!^dr;#6`;H@o86_!9 zfVauC)C7cZVPJFn&}wY~tm92_{eK#OzKnfUdyy&HuUUt7uvU}K<+L9n4>5-^;O<-W zwI_IV*Gu#~gl+AinKuy7WRkaA@X)2Qj(>oHm3BQM;1)cM0I{Xjy0yuJ*+>%x342j8-()})0+Vbu?J*dQY=;5r6m0;*4h7U_ z$gqwX^6kyo)_$)G#!SU*h%nSsqrJ_e(h13uyo!p4WJeDO63{K{aWdFw0wyYLoMeSP zH{7si-}U*O8&MRzSWHd6eDswFTHN_t+iL1{yIAk8>#p0ieur!JCYOt~<{sR2-6hgw zXjM`BR&iAb@1T%?5@Z^5MG@-+O362k%@)7?Z+oBYs+ z*q83U`#){}FeHJvW@-u7}jLIMbGxr!kj<-t~N#9z9y3I|a z{ixBn)Ckleir{qM*LIH=*rRe>1!eGcTYO1l(nFwN-A2orQ~m$gefld89-r8a?5xS* zKW~@LX`g26U(*6?yLOuI9d;iQDQF#L@RGrpOhC%^dWMiiY!l*C(smQ}@lpv7hahFf zMJ9BKvxbNsVTaJ}m^sDD+Frue*>xQ3m}gnPryp>S&^%p;W;6rRBH10s##3elPrIF@{)&7 zVQFtGzaMw_SnTpTLz0qvMz5^l3K(oy9& zO#(DID#`fUAORFOMg8fx_?q#}eXwwDqhDQhvgP?5Q~e`LI<6XA{hq6~UYWmqyjm}J z99%we%R6^pR~hKOs&^>awq)s0VuITO~!z_w#< zoYNb(o55K5Zdt(QEyU*aZA+WvpFYpt_#F0zbQZ*7ouK0a7tUd41`OqTm&c5hS6~1M z5400>5@BkP2%i_h*%p&*K>F6)`gar6L?450LIEJFAMNt?+;A#Y+_*D;^p#o+D=aCq z>s>q6_%fZ;Q))YVt|_m>0AQmmsN&mO_Eoj8I#;P*HHzTdl+J}(#aoFT8EtP5ai1Wm6PlfIuk|M9z2 zm(l1|@9KJXckS`vFN0@%Py2Epui6R-h0|7QKg#_FyIY&a{AEKgXoFiS!Tw9@S~i?r z^H^wdQ{59|lH6772%(5`fk7LXXu04Vs^m><78kc0AP9m8lKz0^w#pvR5P1jo!}7Ig zg$nH0fy4|>4qNI=-uhbLk!d^NzI5%JqCq5dbGkVOD=IazTs@Bt7~5GEsa)B%-k3S=vwRzIEEzHRFMk%6VFjd|nV zJ@35!lzZ~_+W1JO@Z`!%@AtSo12uKa+BKK=jf}7CAD`a7MSI`+j&hk@GPq84Us};V zIX-mA_-{tfOR;hAJA&gHPGir(dr8^adBaBqXq@>}SONN4n!&Rr0CB+y$Sw^CCNXVY zq5)Gk?f^GgzSfGM28d%!X~3@IVpnmp1DdvUEqay!)VlPxxeiD%Lo^ad24Pn4kvSP5 zQ3el#Fu;YlEXhP34lHsB6NB~%H33k>8Cbue8G{WStWLO3opMi9*IjXi_BXZKFRWhJ zo~=XU<9F1+ic0xO$PB;Bmkw-w^oj#zNZUwFV?Tx=aQxBL8w2grk9MsBrUTyzMh@Uw zvmtI+RUc^~sWj}7beR-UU8b81*yASoc!QfR7ZRztK}r`$qs^?@A|`@S&a)!$QKGBe zLKLNGu&#YK+^}!=k^GMJUFme!`W^WrB!j9~Pk(sF)mQIWx7DeYomZ@zzIrYDSYSoR zhdYL8J&9*Jus1JU&vYv0Qn8-##(K`5c+2%LNWK6-Ud1x5)0gy?TJ7^#$05F=BaxVT;EG4L9w_CR zJe!%!m-u3CT>a?yMoH45k`!QH^RMc9bQjl z2-7o?>;^U41T`DccmfcZ-5j0*MO#~%v8mB$n@^~THR)Q0J|UDKZK5@;b~_nN2qY^} zX9^&um`{KeN&nk-gZ6Z$ynY57`i8H4D&1Aid=J=p-mqY)xBNe@jjOLXz|5j=j#DoV@}E)SPOm9U{JOr(@I&YfCL1Z zNCYKCEs6g&YqSIA8LR^a3WG5(`4>}F{PbQlQ;29V)OGHBN1sRKM=iCa%ffd zgnzW_Q4xnsHU~G>&+=8DleKjUXss+VK80k9ojrJJEpJ1|BOJ_BDo92MdI3wH<@zxQ5Pj+Z_VeXtiMU zN4?2?^S^t`t2fuvp^(GQ3?zt!;-Pq~E!s*tlh0!hI?xo}U}IFAlSjS@GD<253HdZx zf50g8XK2sFAlN|rk|pi*KiJX|#Q%T%{QWHdaqZWb`n&U}hD`sHaMc9Sbtp7DO_;4o zIlR&Q*PNeVU)ATIf-U*|Ura|p8rXz@LkF^uU|d`b2eQ5BZ~$erY`4J%xy%BbZErwf z{#S2t?dE!1z@R-BN`;aHftE${xBs5`vx+co@cPp59smY!zW@f>`Hw{cUuA1|Z{2!P zF#PUQIkR*kH~Y%wUG>Z+_6Cqp==WvdsnGAi4N1S3E~4KHl$E4`KU&AHzDdWgesA#4 z|MKBIV}zx>BR4~L&@TP$XSMe+qc$rrG~WgK*U*<#$ihqNMbx8&2?Qws(CtAR_{K3n z%Qqn12G$`cHPG`RQm9NNwI)t>A(&do&_W6g+rMJvZ5lUDv5Kt(Ai2j zZ`i^04(t*5O)bW08>}!~^Jo#b%hE**7ZLyEKOhotk<068$X1OD4d^#?@#{8&`WXy` zj(mG68EwVjBc3K-D(SI9J%*j5iAz&Zu7m)}ZDC3Nip>L#Wo*1AU3XY|+B1Esd1+^F z{bVYCb1Kh9Yq7|4<(A+%U{Pi`*-m?DbU?dQf=xK5T@DjiPrG(`j=d+j#G<9xd*Ve^ z%h1kh;1kL5g6+vuVLN;zcw0| z89Be!89C?I4P3qW)tl=uxf=|mh9fJj&DVxudD2N}0nHtd6~$Ts1ZFVptf#t21F#Uu z=S}Ls?1Tb9lH>d46oAJ-P$0n69+%ERT)c8C7aq0WJuei1%b);Ueg=+$UM@8X9;nMS z7s4iu@}TISpu;8t*x-y4_UQ{?)7YZ~8!Gl>`2Dcql#67Ui(Y+E*!a>(f{h9LcCj3j zZU`}4nhp|dJX}#?@1BRvDeb3o0`(Il!qj4qGnp$#Td#zwG@E(;atPFy34xjehkcFf zNVJbpKngD<;7&85m9F~&Tmc}#0)3JOas|qUn_%SyN#-&gm;%_P!2&_lVp&RTv7>Pn z=vhOL1ohM5u=wiDb?9Xz4d7|bz9d8*5?xyxqH6;+lDaTJgdLOa+`j!6u6ozHv3zA{ zVBp9PU`Yp;AIo+e*qTg^Z-mtIBxm^Z`X1RG2kL!841wwsuspIgZ((=@I$zxI7zIUL zYYnFFaIy0fPlJ#s|w(g4cY`9~{*5RmS+RAq8 za93%yBWtUsT6-Mo2(6~E9fki3O~)WSl#oB^-zKp#m_ZNRb zDutAJ=j;dB3)+nd5qC8S-A$1)7~4hdmlzLOu>WNHW#{hePNmwXw&$1cB4pU*r%)GT76JY)QcFd}g{3dV@W#Qju$^Ns?o<08l$|EnHJ#h~!jceZ-``>Ko z*T4Rc+E<@>h65Gr2wG0-NHtp^FZ$e8GyDmFC|SZu=E5_v7l28eZy5|teq8JH`r~F| zK9H=Dt<0^b473(5GPrAeQR$M7u4TUHs~`LG`-<8xLmPS@H@Vf14xd!~zQ=P*Iz}X~ z_LuC6*}v!=`cHcy#P(@_?JZG{*`=a&=Yu9$JVy&a??8RJOD{$Io#`8oxkB{^Ctf2$lMhw`I zv^Tl7Ur9ER`kzFo20wu>DrtNj$A1Js@b|}Gd%RZTFYKY$YPHvD+SVG|Thn6nD%~?M z@c1vjP^*367t5B>zw2pVYgf=K9*@f5gCJ+VVgg6tdqRdurHI344 zi0gtt+LJMf^Axpep#*t4XVK$xGL|ON_AqX$JA}-R#3tw@df%1dmPHZMl*5HEVJ!bGQe^ zWM79lZ$_68ANPtHd>6S_nj;!sUMr7|qG)+}_`t9hs~=>DI{<3ZshLsjg+y`Zpl% zw_iJireV)Ta=D0BisYVZYeu0Ln={bd7H5S#UC@7pR*Yn`5%xS@#oWZRjhI^;vaunJ z_=yUyz%<`Jz{sQUDU6&N5WyV5v$Fz{Un{Za=t=rh4@N?nSYIp?im<}H2u7|KiZ`<7 zS7ame57kD4pi4;YaCt+`ALFGE!2}5g`vK$K*hMbD7^@YuWUIk!kgrpB(Aa>uRA3!{ ze`R6lOIx*nSaE1Ye}8%P*zU1aY`Wvy2RerQZySs+jT>1N=kSl;SIo~1nn<$~Nmx7z z7se%6FdH|nA{f>mmCA!srKbqY=-U=eL<;$Oz7R=7r+YI!Jrg}WncBgPg~G;z*B;tX zoV?@Co?=VTN0qgGp>St~J=(LTQd!fprEu9hu6xI2ot>AxW8l*FBUnPfS@cJwh^H9O z@mW+A*d)KAAyT`k`wa?PA zex8|2lU;0E*QE3zwmsfA4Hx3 z=|of;5|#!siYCeB2O*mqo`N7jBDB#Y0y>+p7KoDUtqOefo0+fN-KwOUiI_B}l~KFH z5klRNzI10fmS)=3=~$^V-QM57eqeyzUoMvek&fm07MQu5&Y)w)=I}SSmCLb^-(f2c ztf$Kste00*?q@nC4j>erL{4b!D7mO_WPLn*bWKu3i-l6D&=LH>yY}lusWeh5eNVe@ zZW*O}k|FKB=G2iR$uQd+O0F!9bajmswXe5C0zM=II?%UQ;NnT(;xLa1Ly9U@1LTM= zl2M3h1RGm`9nY0}6FK&HKGs{-ww!yYP_J*Q*Vz)gGtd&RR^yni{b03Pt#7I0AHdFG zPqFIjU>k@+zgP;a1ZX*Ad89A}0XG@3?oNrz*(g(i+L#rQ2$Rhi(Q*d0U;zzuQFut( zia1}VH=HWew)W+m%KlVey=V{j#L%)M5|fS~qE7V&VwrU@ForPB*1jLGj?Vhh^s*y?dU9aE=5+d8KD&c?y}9i<@8IQwoVSTFldUv{%He}N-w_e& zY3QKtQ#}@_FqiBo^7zloWwfC1I9#fYHT&9}wjaeh=vULe z?nt@paJ!lu?q}uLy8n;0w*hSHD({DVu4T!VZCTd0Wm%T>ZCR0JNtP5vRun~XUB`7D zH+5adbxknEq$V|Knz|*FQk;EKaiU+TrA ze^R_{=g3=r!GEG}On7>5O?ad7@s5o6xgRD1lik7Inz#JoQ0s~M4XA@?mqgPmLA`9W zLoclD#yrU?=i|edd74;8J6y{68PKn=>RSU?q5L)|l>_m`pNzad-dE!lLGy@yl$38 zfUM<_@Q|*SbH4!SFO2LjV%O=m_(pB6*mc*%5K%eV*7og=?gm$rCAeY3vx(c1bxrJ% zzPQ^q>KoPdP4^{zNadUKF>iO!Yg1Wd-Q(S&H))O7!Qf)qDuqAkahAisz^))QSF9a7 zLZhODYI`M;eJ-O(_FJt3Nlhv7&OzSc?F%b^irJ?4mN{2bdrxp81o28Gwj?| z&tODfttOB`sfb-;Oy>vQDO=fy_I+K~sc%4XLZLoWq zr!&=;!T~vO_>FLqh=+Abmv{Xg>(}40cREwsq-qY}?&j_8RBy`757b7YVbWaGVTBLF zKLfJ|d==;x#fiXTpIcFQ%wlQzS^BkwmK>u3xQj3oIX)nq|H6(^23AV?C(H|i9C5#u zW^ortn^KLXX2NaLX%Gol5RaUh9~qe+NrHJohSu*%JQVwfTBWW|2YE_Y7fiw%^l&(z zK?ue=ty&8|{rqpqHETw;baibJ)_|pw7%Lo0V6TQu4rs{=oLeLylw$xSqK3hU<#}i3 zFJjyRo2L_*?dkOP2d2~MX*2P4eG%c%64wUi&A)gqJ^hh8)~&naBh%@NX!vyzsv9u9 z{4(Nqlwo&C-n<(qvV=B@g)C%@x}yYHSfFEdjv8o*10M&^OauHEJ#Or#k@i`R*gBG@ z178s5&+c|wb%XI5Ur$6X571?uj$gK0HMs2U#btR0 zUQ3y**OED%-P+A+Ch!7NF1%sYU!SPZUM+wo+TL2FmF**q?bZeVpyYfnU0(eCb# zR~hszb-osl=<-+=)~{c%c-G@3{)Sbr-vi!#kHtgt{_+pdZyD&i9o%9Dpdg(xnHa;W z0jnR)b)NeWS|{|D=zNs+x^e}+kaYk+L$R@8b;w;e-H^|)N}K<6zYX5FHm|Z$=ePCP z{D>fpGdAdVdxK`=Lo;u72N#bAy@O_CK0{VbuRr2%-ng;ZUmmaaKRmi78@s-FmEX3h zGt)Ktu)kXT{hCk2yNn$-58ZJ6{!VX4a`Wb7hqrV8^*0QS1P!V9Cx9*(N6BXioG^?e zkw6oX`$56rjbt~*T(Ju54uqaMrrw8eTKgWXajuG$sp>@00d1voL%-k>cEb)m+qwunG3wWTa=8=tpLuGpgI^NnHVly&@THu3bzjnd?s zL-HMptFjNf6r>b~Eq@zmK$#ZnYX$xl#f04`k)*J+04T!xAQni3nT*NxMkM6`oxo}t zV87gDpJDrLGxq(d$y91`Hyu*;bkJ-LrtN_Nzki_DH>%kwKJWLM1tH{3^qI}6Z7GB= zbWcopCy;M8!x9Fzi#g(xj0))gHqKcwDD)FCov?sqTD)Jj+Opu%`0V@*ot3bIB zVHSgc71fm+FKgjyC>`2&Gofs>NA10-CdpjUgNgP2Oc^&ec$8RHxTehxr=P#3hRzlndJBA!%mJ(^8M6kk}$b-1Hbp zu;N1JjBXD+wR7AiYzvW0JX)SV7s7S=WScQ4J`u$-*{AX~M9doPOYnDl(Ta5Dviiy< zpD)qYHgV0f(Su64ozH14r>6x0%@POW6Mn41Aq_vYURB{fhL3S>OL)OEB0% z|IBZ+y+68%_JT;_TZ#5H0={3x+-}55L>4>HqLqO!gKwchk3r;ZYLQx2kL|t!`@@3h zj7%V77+U%-NFP1d4;s@V1F< zBhlHAI^nkYCMK-zgb#ZR3pFs|YmQWV){8Gg{t{>kPfT>&xYp@hdt=AMMA*`f(B`al zy{9_T>`P?OXtWb;q`mejz*!5rs|SS9N)nEC5Trm!^Iu)MSTw+}*LB+!XgV0-W@yk9 zE$9XN8hIJls8r(X^acM+7nH$@A3fWj2+3dpAOzEcazttxOk)G7R~6oe*^sOX{s+Sr z^G&dslvT)Xbllh1x7#I+zeGEUBMKsuLb5E2ye>m%VZ;-rowq?+t0h(ql#JYeo9xYvs(P8K!E_yp`RJ!-`($pvQq^RNtyyJicq_JM%}<* zwQc`FSK5E63Ol3X7pRyUZ_JHNHOA(7;J=^v80E}$}Hrg>V(za9r16MWw#~vC8jd67t}U`Chi;eMKnIO8!>Hc8lCX` z2Ako7>Iv(0ZELrC+28lKebZw3W*fVny<7c3eT(=Nt#+iY?u$CB!C=)9enYQ6Ec`R} z-fKZUXfI@UOR`S~-x7lUMPn%}Ge$V&Lr6t@VFzy0(-#9GLzm-61oA-mo2cMy(l*;o zS%j&m);1fOTXZ&?-o%6^(_o;nqopBL*Vxe9*lsatoq|c*q*e;rH+88-nZ7mIB&${4 z(57t^n&4fk5}LKEI=VKjzc%6vX=_Zd=Mic&UbUe;7VIb1iINs4q@qA9J2KlMYo#S71Hobpti|n7P+S6RfPqv{XGTEQ z-JOW^hosA_9)U~vm{A~<4!T7_5CHbhBU1(9cr$^HCe57FB+2*L>n7*oIi{A$Og(X% zs!~Q7DSQz_RAoS<3(Xn!`fHXNIuYDDr9p?Fi5j~P3UI_^Pml*X4z~Ok&EsN*;LygJpGpXFZ{)h-MO?EFv!R=LCSa zOJmUkiQ;l!Lazdj704Af%Efjw6fY~l2_Jduaat{eLMD|;g;WdQOZE2N*V~)+1_J$l z|MNofwv^Won=xw$R8dHbCHtKglP%(Y<*XUe5AcrmKQu7#P`@uRp1}KrHxL9>gd;2h zVIf_mI}mWE5C%?X#|eg&?}Pse_!)-TWEm>wtRc226on8diSZ%Cr1T=tUIxWO!S1-v z5C0XN$)4!(I=xY*?bxuP!@piGuWWA9bm*HqR;^c7t)sHRrRHR`6w^~$og!s%P^mQN z6r@mAL8lVz0U?qSuvfy?!eCqrC&qGYm`GSqhgxGEMGQM92LgsDVxT}C5F%`wIa`8V zCNyvm}W2hK=eH2&pso;B<4SQogV z<&7QI7O@%61~&8W7mcIsANSv)Z#I6)YCXok%r!OfHA|wqb+q?mxeYfEovWtGAq1g# zAr#I8Bv=n|AZ&24Opp{@ffTnfNx+8CKDZ(nL_Y;DWoL05R{AX(v(4ZQ!30UAQ)?_v zv!*iOG$0`8Lta%?9o*eitql!2y~tQ4CZi^B(cel1@Z3WS4TU7M!x$ibJ3EDfB337h`S`Fi!x-E;5Kb-x~d&E2Fc$luR zBf_EfBXn(hJ3s#f9gm1|y2kNy34XMnh81|sScR}=MyBZfVN^UTo{jzxfM3o2Zzlyu zW04n^_g@>Xr$=JO*N@DO(gUNjc;NFN9ijV2K1%Sy`d^@dM$}SF^R(y$c&jVO*xbkr zM!a;ZET-mWDDJ`%Udu6mowS!C#w=W3Trd&Sf@ls#7$|SZ5Y^m5Hfwdq#{Q#*6HeXpo5tQbsG7`E- z^PFTtTnnfz;P4eF+?hjR#Vf(NUFWmU2M=Y>?_w%C&e4TKEZaV}{%3cy+V;7-f3{xy zFFMX0qf6LZFX1lDLy%QOZ8aj&tC)BpLf991f&B%r7-;K{{t)fD>itg=<}&~2ESm=s z)BU5fxW5?wgtvu-8hBQLS=j056o!|UUNVK@D9R?+NJcNDKJni;y=HFY9wJstn@7~UdyRc@5QV}KS-t|@ITjdKw^a`?lbl>{1A6c-vR5ItZK zFHAgJT0=5N^f0B_B%$WvWtA;~MjC?>{K?gcyir%9doO{q{V4RpL$7*B4LrSpd5wd{E8xrfFxm0>5N{QV>hBAyh?DwrQke) zzKACPPj*`T5B3Gxub14*O?$yXu-xxrVut-AXAVS235)K<`V8k7a4=PXy@zcoP_`ud zM=Z~TdeZV-^bF`Co}owZ#7u#{Yf<2N(NFsH)_4%p`54((_#j~aLVS?xN(ktPq zR3}oZUky+FPfUF5-R#WOD4kIEr&s7w*a1&VV26F%a=4Ao%`Jo4MZQEA!7PWXF39@| z@TcggGN#Nk{_M zHwa9~wwq-A(8l=f@n}yp>b&=)hPEPd&v{v1?*@v%O#W zAQG&uS_J|&(uJIINGA900|&lyAozLB-UjBA8c76LV_4Z+TKgP?^HAG zSg{EM4CuT5s4W>V`}_PX8SLo^UM_=Oj`fWNMl)Jdhg~+b7`{i|FOA_Xq4s40BPk|H+^^*G*X=;>j60mKX zH=nk6cZRYTkYJ5$H$#~*v&qva7|hI*}9P*>2cL^z^`sK!rmO z&JIW)-CyiZb&sYI?fq*?QzZok?o*nC_Ex%uUDNaHR@QTk*L%%1YzSwqbXok(hOP~_ zuB&XQ66cl5b(JQ1MB)wiV@$dMA=&{N&`MY~mxp6vW7uA<#l{Fyqp(L2zQti*_pUYi zcj;HN@hR3XKDFiW=o3$DVN=_;KPmnax*d(UBbAyvae`nCdyJc5kD=xkPkIQ;K~rE^ zL2}*{tDsoHu*K|D7&}R%0u1}qr#9{16znu7C)w(#dCg=OT^L|O&-AAbPvfVd-dIPx zYjRCG7LImJCOEZ z-l9pz$3m%X_isyuz7{+ePY>=px^HlB-{67s1X~ymT9XS#5Xl=6@(sAJN^dkXyckTHAY_An78OVp^hQ**qt-J z=brP;uyf)W7Qlb+y>xzW@@y(4o=K5SCC#gkp^R%`b0^U)p0y?~a#DD(#m6Qe+kJQ{ z?K7$N?Ngc93|c>K9~sHL@wDOl-#0Yr*_ggb{ElN}B>$Gme=o{^U%{FRRLK}~6c`0i zFETggwru73@npl@ySj&V>>P@YY#)h6N22Mdw|lsIXLt8bl|5j`TX?Ym!xxi8s#-%RVkKp!3&5~nk)Y&lOt9u#4Iyb zNL%npUtmdogiWsekFg-()OOUfwWJ;!x1xvq>1s6rs9XV|cX2`p78YJdlB%}?+jz3f z?VJdOdXZ|gw|A@A+{eF*!y&6~f*sUZLlffk!~|G5H@_m%)@_CVF}f#2w@ie@$0zs~ zehK_h=JFB2P#&kO+cC1yf|3D&ce%3d$`ecoQW-^KxC_EdK2LP8qJ?mt1ewv;iYE>- z{<_Vely%!8CRM@~@Llm$F00WfEmozjMrn%Jx@DFA00iwj27Y2UIJY92Ikdr+ zKnf@Q{V0vkEotB0h8W}0x{YywvOm8#@+CUIR2LRb+yh+>frr9b6M*DG9O<=doK89} zUVySxWw$RKp;4e;&-)T8Wx#5K#w)?D0m)j>A%#h!ZlUPwM55KKukWU8FQUP*tL>MmZ+6Ck$l- z#uIAFb{2(6S_%wLEDA)x-1HWqbz9QqHMM%ZY^}e+&?Vk! z4+OG-K-pz`pnRg{Bj5J_=R@u5n62DvZdTs^VVz80ompF>ujsy2=yZL`(AM@YWfe@N zL+fu{pA5iTUgb|#CpQH*1Ogj^L3_3G-LjuB-!b*Nt(q97g~QbnYZ)6G8y`=Pk2A|-Rl4S6BtrTi!$s_Hv&a8rdF;>VFH^FeR}{FczkgPF36}j|EpL(;{&acZWB;4u z%T7OYMRB0Td7R_;LcYKM?eZ?||6eUnu#a9@9$JMtk-?mxc}ezC6t54GDD4%!j=I_C z7Q8-BSZ#E}+w6-*x6p!NHi^M8!4KRvFD5ORJ;L`)G+CDVu7yR~iZc$f6>WXEXx@Dp zso}*p#-1HrKKT|+h)XegnP>^|jvGPG_JG@x%7uYlIoCau&O%{$=-|+i;E5p5=nXS| z1DpM>_{KSe8HyX~#f@rM53;YSF^@T2&X-w5R?eUgDAfaKV7wsmxT53(n@{}or<%Z% z%L_li)~vpw_@eR&4|w@2mkie`)XS_WyQJYJbcMliU|HGUrT&z(pY)(o`>$vcq4Eb?}Pv3+?Y*5i)Xub|9E1B@{4gD_=K%kv0*C0hQj3^n*c#( zay!i;Ut{{2K|IB#g&!BMF{7j6Lt|r7dxwGJGdaC>zC<2EP0E`ThCQj?LAq{cSL<}@ zcL>YExTD-LmVIA0K>kQH8t1$~L#7phu^r+&`pyxHhAEieWqafc( zZgnBGvPG}Ot^lZreL;A6{{#C+_wUD4Uj~7|*h3GE?cbjtw>%ukvO8Zx2^`3F8kKOx zVa0NIu&wYy!+Y`dD}f^Z3YLe1gN>(vA9*@$0AEJ-*w_*vR|;jir`;i<&~tkSLdYvg zBYak$^})kYK2`}AOg*me<7aen$5=WjjJnIO})C7Rjj@-OjqpH z%h$w5zmT z;s+hfC%SiI~eET39{9|ofp$%89jju6Mxpg!KaQ>D0 zwCagKTKxBs4RUO5sw)4ROAc7Eb0QKY)g!OtPs{!E%he*xF&kxwfnaIv=ii zAfm|G3JOhvy=VnKV2-t9!E4Op3;B=XhCXOwY?t-W_ z4rwdwP?7BLA^PFTl1swgQ=d!w#f`BTyD$|qG=J`&Kd0`F(lc>yn;JQDb?Ta_PNR)o z<6Z6XtoF9Sle|u^LVrjm`Ol!kzr#$xd3{TH3&r7%QrfH?kY6uk$lAOd9eEGQIxZ4*fqp@4B*}#$ZX;+6 zKy_5|^|vGSm;ok(1FyUqkF)dfbmgl@4K}v6gWUW(wyTY5ya)e2W|I1Mu z79gS_lH8i}UfdTSB%?q!;5Ur<3M?k!Q+Bimfao1LisM1MJ+sjNK|?i7ziPt=`xoFU z=YcVuv?fXR?@HKAg4(;_`iv6E0StDiZu%!nD7gY%gypzF2=|MdRvY)ivVG+Gwf1&< zgXwlt%boUgzcqd$#XuZ@r>Z3+;V=e_#90^8J$brqvv0dDIAwuvk=J zsow;%XMjuJ0_wsITXTIa2T_1+DB}4&J2sXYAOEr0ogGdyw=y&wQLBct&QZ5nZ9 zwi^3Vyx9j`4b|GaHl9kgG`B=<3Y9zhc0#i1T0Gw9s;gC#Z8q6lNOOqBtp)NoDUQO5 zW5*QmUkbw=AC~Yj55nu)L{qdc36VguZy%1V((QD{1B*Y3yX|g&;2Ddh^Jw}#^;K}g zHB@OP(nqI^Hk*if4QuAe-3_>gY6)}t0T6AA30>7U6`7}du8;1m*~yc zWnkz*@#T&nuT`A;#+AXQja(rxJ9Us4lJ}S#7UkT0pYIT$LFkM=b=&m#@V0DpaA?;= zcV)bHG!#wlND2>K63&cGkMu{!)PicPcWAr7x`*UF{?SZa+-*-pb`dTTy?GP#;x*J~ z<8s#+;wKW}L`@{|LiG^3a%KwM>dgAb#$LDi16DC@4S1P%db)3VT6j%-8?-|1w=N#H z1OmWqi(h7!K7SLaV+u4$&sX&fWrD%#DGAm*1)CMjE|ShbtOg73Af>y5 zi!}m51Yp2)`S_V}5}fuLN2grlP>!)AEHebNb0a46)q z(~nuYZ3=onr`ZIzQ~KqsJ>E?};SdT8B2DsGjmDq~-FMWR5Kmrl%hyb9v)N59T!7yK ze0nR%LbQPyU7aq3XsAEIz9>G>x9iRF%EhKzetq)(`RHB&%aVlalHU*#>p+X;q8Ud? zT*{@W5?u_UZ-5>=UznI4Hw_B|`0x zxGQ3IDX=K5imu!>NB$?$C%`6>d%ciIk3Ba+*5A@$@!TAp(El7M0!Ge|{}kKfXc#d$ z9Hx;52d=*4Xz0Qj+^b-_w`I$(N1ErEze|FR#C!KbHhXi~c-ebFjdWZptI+c)0ONPE z{|D`XJ_TGUd0Qg+F(j7?PAp@<67C!g#|`9MB^L&)6R-+bSOu2>w9{S)I)h^28)LxT zl+Xp>ko8AYY9SercL(Kg6gL=pd^Pf5wla_u)T(HoOz`*k3<0;o?za!vZJUuD)MPW6YGhug|4F-F<_!G4Mi%KQFGn%gDg$W*kMr1C+(P-*k#oR)|x<%QyhO&T=LllR|$a_BQV zbV6mkFFqdacf0RT7y_Aq)#>Zq)=RJ}zr0v>7uvA}9Xaf>$ z>fr%ngtGu-{MZsjK%1cTM*9$^hivcZDgg(S7{2()T3vZn|1axI@_O|>uc#}vPW4@k zDQZ>^Zf*0fu7;aPh1+tnsw?Q$=w)hWM>OoHuRvqNwxAHWCRiR6w$$nsYXxuWtB{&_oQ4}P1>zCG^ku%hJ*5>%_?`h-=)*KR;}`?n%%8kt5$V^kQ9%hhime= zWSvM0CnC}cLVF2tW&kK<58*StuyKOkjtmy8nwojD9T6SuX1I_bn2nlQBnMpKkh-?3 zR(+;cvrZYXpd^o_y=tAN_6)x)+Q>=QtmbQ`giGY_;-pc|NA{rMg(V(&D@e`?u&)45 zgIG5Hyeb->!Le?))xySXgZ|JczM93)*an3|n;ty+;3j?uxw~)a@Na5C#7L`HlRFVV z+h{G~X^6tMaNks}oIyQgtU)4p_%Okkz5*@=MuZZ;h{D$(9Alc-3{ivJW|I8;UwxIG z7ftNEOm0b-Wiq=waV&A{;ny)C<^M`Njo1gq_`;@RipJHA6}1(1Md)*hW5l=0v4#&~ z4Hv-MkY$gevmWjj5OsRU%rsUXhUNDQH{Ep8zlgtE^-t@VAd2h$X%(yb$IlFZnH?M+ z8bY$Y$IoO$yfSCS&#=k`&Lc^CGpWo*TCH>CdJtZOJDj5j9#<|7BD~Ba9(HXim3s8= zZ4bA9;~VV{+y4IJ3?V97JYn{eKDGLl)P2l~-~a9phufchw*BG7zdQI9f7ijT*1^Af zSHGv2&r7@HT$zlG|4^-Cv2l{BrCo?jIjZU3Z=Mz5f13;jOFg{Uqz_ z?df?O-c5LyDetMxV#LG%}UkfU#g>0vV!wilIl7#{2r#@Ei(MvL< z7y=)V7>V8YzynWO_xp|?_wBb@!Al{b9A7`NcwTtmBcDI_pzn#}z6bw(#|Ku6i>r6A z(8$O=;*on`zJ&U~hAgw2CQrT;vOUu(y0z@~vYllgD%)H3@vl@pK$ znUSt#r4R9v^q>wu;t4!kNzWr0J3h`y&$A&qMZ#RFN~gOZT@?|w0L5yiq|;&POjYv1 zUbc7}8@-kfH+q_yJdFo5jrH}78dfV^757lrNV)0B&U#YJa4C; z_nY2Wwz+H=o{ihe?gVwpk7Z%J3ttL@TDU@+Z6x-Q3}Xsz;a8$eIa##i?<*9e$X{W7 zk|(vQji^Sm3x+;E3%v69M}TA$3(_xy4@)fk?C^>qaONl9PprMvI4daZcxv9>lfwOYlGtY_Cr5AKnQnZs55 zR)+n+m2jnbEWvYk*`BfkWrxc?Q}(xIUoC@dy)b(U!m7fT!n`b8smRa5!k2PmZnj_v zH&Pf~aE#EhN%zsU804OL5|D>)0pf)(g&`^oT4CHFtdPc2pZi8`kcAOfmrRN2lF5{t zC+r8(J>p~1{C#^y$!Cr*tTtflCL5N+$q#c_nDL5bEGtcG1nQ+3S31WoN;8*j%N2M+ zn!=HQQ|TczVWpbHjlWu5UM>A_`l&kBiW91*m75kYIT z>^)`M%kD0_zwE)4>3UH}uabZx1squ-qxpd={8Sj_!aYkr<&osdD{KJZI@ZPp$<1JX0yf?_|{3l3zj`vI@-B>v<-S5YvD8MhB%}c-CES>#OdSFtjU`DzV z)0NxHOYums&TF}NmG+s z;>~^rHrofy-eaNAF<5a=BgR?A13y}ERS~~m34X*1SWx!QFsL=laok*=fmWACJc`b6 zG6|y>xSz7u#Un6Fqe!xl8T9qe2~FY_gk2FVQj}RK#w<+qRt0`d@FxE1e(c!>z~xg^ z5s9M<>!6T>ECOOGM?QX6p*{$@S@*a2>s5)bXXh!3*QHBrm*Cy*8}qVmaQvU4Yi!(P z6DQd?hm};1lSiy@BcL#8y%3uMAvDl4YzN7+8xjV5SQ!SyT~5?f!82&Ss@x{yGTk$ z=IDeUTz>T*falM7Oe8*3t_qA20>TX1;kv>6Vc|l^xj1ET{zC0$$=<{CJ7DCHCNg7+A>ALHvz?Mv~#S z#3L@1mG_sI@(P3zuVxLjb=U!FNor1v9X|8E^cDC{DA0+2lB#1n$n7-g6Z$LImB48i z|MU!9%i_g#OW19`NGD=2|1F)(?n|fl@uT<_u2!bgvzg2+KQbBOGcsjn&-x6$AUf9i z421Cr;FwuhkG~ANZoT+4J|(#4`cy^hFckHW8;}G64pREC(63YuDy_=yS^KQ`*en8i zT5+!2FzcXGg72RN6M_SYS+PCjHWvg3vgRU~&~Mat!W=k)aCi_5XcJ5K6HF)ufuPG~ zXYocT?Med4;xG7E)kx)Anm0oT_r z{+!OM*Nf8_IwD9*O(fW zkQOhonl!5sFX3#KE@4!~X?)LQ7U(qB{%@nzf?oVhh9YlL(-Ap;0Ru}fG+1gjqz-@9 zSP;x9mIJkk#)1CnoZ3g%NPeIHjjodpqxe4RBRfcqoTUT3X8C*Z7uoDy0G?n^qanS7 zO*ya=4vMSLenP@ka87<27Z#5L8)FN9ZE1B%8VA0I)AO;J1!G}o?y=H+^dx0>%0 zwU=N{!jJqvU8D9>y9w9mpS~CW)4g;L!GJ#LU+N=zCLx&kRvz)F$8^R=k52HyaN?Eg zeWA-3F3dd|Ec6?_U7wqVG#MqFq^pt+V+rq;`pjtwx90|(B3cDG3#Sj%`UN0*I=w*o z7IIVJEGG(R=7R)Mc4qPCfbwrJ98|}jjUxnu{P@!+Wz)*X0wEaY;YzS4_~r4WfJYo8 zAWH-v9O%6SGy)g_kb?|U6`$+}ga;LKC#3~*nfVwkbV(VOCUSH(1$;>z(E zN}?}n6@5}``H1q#O6{YuMSH{@998r5B+I8Kkqdfp7*;PH7xWmd{{j4@xg^agf=!;@ z@s{LTrN?I;j?`NEjoL@o@@)jBNzju>5rdXo{f+oZh1&fFY58PWKFY^_t8E1YlS(L&AsxoijRbJEsqhHR8n7v z=H+QOp~WhRg76;kj&Q0-I6?YPt^w*r zf&jPKVnc{TaI@#&8{6Isvt4PW9*ZbZ~n#eTN>=fFvf|pm!AAT+u=P8F&DOVe}ZRMml1i z4$^!eJeU#OJASWYY@aXg!#mg=w8d5Gs4bX;GQH?wj zs;rT#Wr>7Lt&@i$a*algtxcBJR!jQ^J2X+*_UEc6*T!_qELJ;S{8DWpZlyo+TUvF??TXt=O6AIkB zk$$JVq+G|JDp^b1sbYol)u;WBqK} z@2Bp$=g+Q-!j(Xt|7X@Ua+t@aVdz_aE|$(h=Fi3H*d>J$5DvkeJ@=hHFj2}z@T>*8 zTdZ0L_(OrvxW6Gef?piy&JGS{H*8A2|HeSz#`g<{ysZy@?*H+6bETkORyI?XWa7%t zp9%PHx$CZ5{DE96ghRE~zgqY!YwgnWgj-VE>$s&BY3HHUgXs!a`$602Q8@GpSQH=y zO(){dIGS6-;nrqHTd&X8dt&#^QqHKGci;3~m1bb9Ut8zv9qRS{?n5`-^r2x~y=nK& z9Dk)cXy0ENO?xdY!iuY4eqJz&K$V79ZXd|_GUH;gMh%Z?m_Dd2Dw@MQD{1z zz4TaRvWOm4VeKhHBwLUrt;oqqf?6Bi<;7LEg?r!6Tz$b=BiP=5W*Y7*#?02ZL*U7#0&a!s{DH ziY!Q+2Y0H6t0`2aGdxn;HnT4k9WY1DgVB`Fylp_%*C!j;W}Uou(vmx2lN(>Z_9p>L zSLddRicOtemO!sT?do%?^?l*4u5h1T?d)@@v0pDEdnhTVgn;iviz$C2^patOR;%|I zuOP|wXnG9)lpT!)`j3duv)3=qaf=&?I*%X(n|NeSnCwf6_p-fbD9+=(Bv4~}O-}LN znHlSuGjm*5Nb__n*4XX9NQzhpi4{dtfDBMdk_WMivEB&U(FuKgt%cZ|m3dwYvgq*Y^Q=isML;M6p{f&zo&Qs+hCi z(isa?wG_TZJ&<9!ZLs(fYA6FDWjX2|@>?WSYK5n^|ZI7}u7x2r2F`wR4Yea^N;5hn9>^2v_D zC%ZG;0;>cF^2n43uJ`cVhT-lYVmVNV##G|A#Gn|=pCu;}gWIRrKfT}I*QWI%d;G*2 zeA9RwEb*Q-Q&ZBKK?X&i#_qTUd<^ABfCSh>Oh^>gB3N;`ptX~%m*9wrQH25vu~wmi zkt`JG8=W(2jYa1L%OOD%i(hQ_khdG;BOoh&9zW6qWL2}KE;zDW{u3UNP62v@$_K`munD!0zY9Z zf{Re3SBn0@{1$Ib9A?nod8gezZnrz_L8n!N$fGKa)frSBPapRsyirY0R+G?l_h_Qt zgrFiKv2`m#Lwdz|CmzGU?h&YmRFCKo#WtJph0I<}Pmfx_LF2ZBdFM4#s6>z?eLLNdmwDwlSp*uP^} zXtwFuHAY(uFVPT#-S#y{ z-@mMGDKFX|shdL0f|ll6uu|>WnO>`ZRQzPF4J+3FFZc9XaL-xZie-30QF17XC_1|W z09uG4*XL#Sge_ANrbxkwY!C(?O;1eV4SW$lDGZn3OE&w;L}p?lvm7@G;(r7;5z#WH z<3f1YFRh58;?aRY`yk!}&VhjyF*PtS;1mW2o%F`$knlA>Hx!uH*kuvdLeXHaHbWGE zI-9<5;phreWK?{L^)p#!VueX^K8w1F=OWdI-J;$>-g{T8ZSS#T?7#{&vHizqSEvM4 zaNTL1KQ7avu|^7U`dy|FgR9w#*9(XG#rDN~^hc^1zaxQ>eqt}w-6P9}KYdG--V z)XpR7tU-Jhg78N!FeE2g+J{x*WGP1LYB6{{`?&afVasZ<9VU7ofWg<&I!ZZLCCfEq zXNv}h z5U3b=&fx!9vl(;2)> zPDDN4&??@;S;CLCZtyIglLCUXRZ>zg>tT~)&Ecej_vdcF>SkDp(;i3)9J`irHJY?6 z)8fHipSgH(205L1i3ld{yf{9NHVmE@#v0}dg~55`~HhM_6296(p)G0t;rsDve)iR zsr$dOgWY1nLLup{y3p>wgw34=+;j(z7Eeizr9-la}-kEX&R4?SfhS}!5_7vdTPPopd0_fE-3t$RQ*XYW$?w5xRbXOdqsX9jiVJd zn+e!#)&g7Hu*~j2TUuy$AnD%aNM&Byu!7l`7VH&f9`;I}ZEV(Q3;KF|L7S7!io30W zfR)YS__{3+NCyJjza<|1*0*-<6fTI{YzFYmH8nce@}3LW7SG`hn_#g8#P89a>3|qS znwI{ZJ4ru!`3dlVt(fU#OX?{LP}`P`QGQrr#PmfFe3C4m_4Qm|7xVOSUA&F!YId*!dQsW*bu^X`UItA3|&*kF`K^IgJYk^{kyi*iNtUA%`9YVcIi2x*7?z0twB zEElwY%TW!sFiFFVJ0edDz#wNT|2@mh>=z!_^}mWyLW!u zw)x3GDIkB+*Z00{eSO=0y&P^do>D9y+OuJC)Y3k_nGx;r7-{PaDPN3aeB=y)J*yS@ ztaF5ESgA8rp4B)*Y9Hc2BbAIVpKJgTQZt|yA-i3WA+k{A2~EhUIgOh_$V~5_nvv2H zQ1oaa31bSp(G1MLyw5zvq&LIL2s>GBbA`=d%&0}SbJ*WN@K~V$md6ZQMJFZFAPx)>cm(iFkuN)?)UCweNU>kX6(;AgX_<*)81&*JL>g+kxgrk+su0-iG?qYn{~&d z;?9%LKfCyj6Yle}lhg)UuWtdJyc45Kat@+Su@+RE6K@pc9MF)EuR$FvtUh^ZM`wLD z#I^^6IvZ?G&EjqYjD)OKwqI^mi=Wh(VkNQ zJ`fxWM^+=XOR`rYT`1rAY4tpRA?^G+72w=lV1xON09*s@KtYs;2aisj;yw=D@pv>E z6`wsS3=E17u=@rP6HvVPDqW1yPtLXz3Z~u>{=Xk*GJIiyGjM=$aFsM<78doFItx>9LYT&?SJ*l&pR7zN-tE?g~ptfz5ntN_6w}XU{e?o zYGOX>Yt6UmXdlwIX=>?qVJ#@}sW->j{d-LA0I|63!Im9r7?VUt7AI@LAb;B-Qr%G{g9J>5$U)YQr= zpHtO$$jW71&W5_$jsGr=O6~h0LI+d(+JW<*g>;K7LP=5yffe83fmD>|K?5=-i6&h+ z*g=&;>`XCOSzF@fn-e1=GXx_vq#nFx5YYSw!Thi4CdHkRJAZiJ*5vJ8g6xEN9FTo# z7!EE;@lj_Gku06kaa&Dgnu*1Bt=lqr%9T@ z1?WNNlgMm>>&WVD)hGo)eA8^3BUSH3$pe;lQWS@C7h-=5d{-%CY<~X z;2Y#L1=4niDL^T6tD^@>S3OVwp;p4==*vyBkccg@Ig!}yHJiPxpL~pkpg0XpJ1%Zc zw3xknJ&pW;qGA7WJ`3CRpL(Ew4GXb>{uvzG$h!C-g5Vz6zeUvP+u zzr<>{w6Cw^9$eB^D`ZgEX;E!KdZ$vZ5vk`=!^z}u3LXaH7*ol`UvQjw+>G#KZT?j1 zrc~Dt#W&gKI`mukUQ9=*&HHvI@Z=Ww*y*4T0+&^@Kkz-2DT%}!^c$Y<_OIpfx7);kzr?~s`@Vt1T6g*_ll)pBSZT3PIt=X*$}l% z4LaJ{5u0(-CUKS|YP*d#+S`;#ZJ;R74(x0|tyZY4BHtY5YSCkJ5q9M-NbRGL5KDD0 zE=Y|-*3j93d(B5g!%{1STS{7RD%Z-vRgE))gT+lP8VlMH=3={mfgxrFYB8e%qJx$k z{yK6LAmWZE67fWQD86&&ka*e_v>#v#HR`yUbtUL^@Wv+-t5@GB{_T*l#cmj4H|gra zVU?bb#fLB!H{>G8+(xS&ww?}JuVL;@ALKJi9*PKAiX2ps^^uH|_NRyiinM_EfRT7z zVWMLbFJTWNY)Tr7!KKKg=fOxq?dxrE#@Z{DGKEa0lhq=pTtd+)YghRjQfnSt z(`ELn+GUZ-1gpevIvMU#RtDlO+ee{_gPX*2(#P#dz1&czGuMIKTdJxoSfA?5x;ld# zUaVe=PmR1|HlMdrqf}{>)=Hh#Y>rwi7Hh<8w(2UaN`%nVRC;}O%mua2;vH5~THV}x z#7mAfCMSI4)J_vQ%K>Mg!OZ!(mV+mkq@qC4V!;6u#SwN)9I=H$Hg*hJjEvBC0v6IW zh{)g+F2Sgrms3{uKEVCG*!M$6iogPtWGZKuLRQU?rWs>N_Bx3XAa!E?W4^KEn2#mq z=H^UxJF?F`?i&>^FvBRf5veZQ0={Jte9OvK$7LK(aw3kLq|HqMWhi$p*km5wAcjxK zk5~N89@CjlIuULDyfMh>;NjX0Pgq&MaOy zkDKud2KXyTFRTbT><_D9oq6S$lG;t z+sM=64_HL}0ZEP+stk1Z_dn9t_h^6r3+%;5ARd^bUxaP8z&qnPM`5D35>G>MS4f9L zduwT!^A0(jx;udTP)otXyAv7(^q-KE{&~9Mi(sK>ox!K{LOPQXO6If|QUA`GoO7e2 zum!+6?Mx*Sll}nZIS=?J6UkH}#qk0*^TGjXzX-KAA-mDxX@Ru}nc9_euXzk_XSo7W z_Tfk0e_imd4Nc-j+ch6iRM(Zi$Eq@x-|*nn9sQXztA(4p9$Wi%D)lzyfUT~mt^Ms| zUE)ta^dXGr<;w*b6=kS^bkl`hIt6toN8o#-1FIY|sJdg2mBsWb2FWam6cF~oC}+>C zZ?IN;tYX7wd+zR$?UnbwQ?t{`xtk5U!}VH_^Kwchz+T+9 zcszOZ`THY}J^$s*EGzqkcpG@0eayP!$5!#;4)F(X;Bj7tBrAo)AM-Q3^alkS_#`lq z^f$u!C1j&RD!O~;q~|1A9kj{x4A7bWTC%gV`)0vj9TJ~j*t=(;v<__Up-+Ok6Z{M{ zmK~+$9bgx!sciaHYS>#a{Sx~a`bRuxULIIW6q(hN%$A|20inD;CB&GjZ+Cb1?tM&E z2~c(K>P1S##p8<2v!9;5K_R}`v+G*%l=y4KwRiXA+wlP4)lVEk6>0Mrq~a4NL;Km3 zV8xfC5>(9aB*lE>>yGlXfHdYi=7mNx_c9X7X|TmC4wpt`j3bzU(^(XyHdjXPj!fXi}Y3$)kUPR!?Qt9q{@Va}3 zj`*D?oKjqVyX*#G40^9RKy6iy>&Ffn@>?#$Lgy5ESPN8tU<9} z+iA3F92qfWh-$M6{d$?vU|nz5uwhug;e7*ZEr-clV6|)1!Ms|Z{%IC))f)u%qpCKu zBN%j;+p79yGVxz)JIo$^qo*DssP)PE$7?ICPA9v>%ZzoMmYy#wyG=+7@5?=pv|+J!dfp?XbGJc=g2$5I5mqfLP* zuV0Jc1D>^b-V-x*F(zK_I=!Zg;^cIlzVdNu`weLOA?eu|r7WYm6`uFv83bke&UbR3 zH{{Al=04F;JbO}D#r}Y2kynP&k-j(AQ}&0`r+H7QeXQ&wWw)`v=j{XcLUpjer{4jA z&*dJF?t2*by)4}aQ6Bp7Fn*?{7jC0E&!W9rsuR|1xF=udSrke47R@u#=(*4U;uIYE z3O#A$C0Px``kherbdt}UM*(LT*hHvcIfTPJbSv}p1xb0KTkzu`99oln@9kZt3v(oT zn7d%=y8XRLv3bsFMUq?)3`x!gIgju#<^n|}ChImtg>&&}YryW92iB=*Easfu7&W>* z4*b(@*JC6Rw+pT-1(~4`j+MJDO+H6MllVjw0XfA7uX&n{$)@XN^}kU08X{(m_9ghx zzG!tGXm0hb@%hqGv(q2<3RX58N1#sjqoJ|N-D<-_HnM2coKd1a>xesli^}>vHd=0x5VllzbLbZ|GTVl!Jd^}bTiAD&z z{WYOO;u%U|{#ODH^Ghwz5bPJ0H$w;l2&h&(yC6Q5WnW&YZd#Wl z_>dhA=1U>3Zw@S1frkJ8Bkf(_+bYjAaeqg$B+Ig_nGBjnWx4*W_rYXa) zOgE)$OKFD&hGqEmPY(a*{XWT-Y=<(tx}0-#Bz^bGdwt%MTMv$&x=j5iPa&LX&t)sT zFi)X)o$ZRtPZnqN9)0`m+-2&{p5!wO zs!u-dKe?aF;e!pyK%RR2!OUPL=#pnbI1cR@wm7Z6bpKFa#)EJ6TAdvUQ!3KC?Z~#? zNXnGxa9UlK^ibMz0a`OZbk48P*8wk}DJXi|24hfXPlGU>3Sd=#R;i z4r3O5hWM0Z!Q|oAvu5FL=mpCFt6RxNHn@mqI2Sp(BOkA_4Ki%RZtXs3eQYs~tMA^8 z6pQx3$NKzRrfIx>{1(>axANM8rDUs<&#_=X#XXadFOTnte3OAVh*mt4%{Anm8P05n zxCFuVa1N6r5pa$P?^8E!?;n6x=ExKv2j0q#@5Rry?;X!}g}aBk!;UZjk-Nj0-I-8y zM81DCH+tXz0~0UySE0kuLCRkbnNKs>gft)oIUbs0D0@ibe8ROPDzrBWN`f!oz&5G z{q3Xe?W4C}-o?Pc8vv6NpEnQ*9^GFJ#9unX$b%jKfh1Fsd+r>kiq&=`lyY z^j{-W>67g@W^R}qU%7I8@`lX1Pkb z{AuN#E1Q;&h&Cx1U*v)}zYyF?ym)jmhIwJumaJ!U1(?3_%24l>AsnxSsWGpckh4^B?c7{- zDChzj6;?J}!42{@Z*hZ-nR^(K2Q-27u!*8vT_ic40J!V9a|S(N)9B=ax*HnH_A9S! zx^e@RZ^M=Qy$~hWdfQD^=_(UHz?hVUYq5|Qx3?Po3#(BCiAjQ}#@Isx@B#Gn(@%f+ z^waP2Uc`7oM@kQT_b=bYYkz6q&5ac`XgI7qv#CLGul5Gw$=Nmys70!;zi{v%UePUE z3a>)iYYv`0c<}7<=IgF&{_JP@k@ugl-Le5UZ5569I7I2-1`3u+)K+Lo&@+qPZ=5%F z+554Mj+jY53ba8303_dP?dWK=7`Eyya52(bVIn>!ieq0kjvBcU(gALdRPt#Cf+(PA z5xSN$z~{2C8vtugc4Xit2rm~R@djaW$KKS9o3W|(G){t;=FQ;Uk}4A|_2Y5oOBRQo)g3lsk1)xOrdy%h^npPOqYa9rR=#I^(* zFSH@odX`F1r#~)(J+fb^&4!{~20&1qEEO=m3tRMHY+Wq8GR(d?C-)=3Ha_-6Jyd+H z60oU@R)jq{IoUIMU|~hrhP&<>9qnFF5vqqsn^U#L^>85&1Fs3BIt!bOy(XUtrqe-_ zt~=t-_z8H;x-i>w?N_xmt$^;mswvy_lLfhpb>$xHYgd4awP0jI4uScK*$P}n$Yjy$ zaG@!u0sz#PjIVi_h`xk03bKH+Gw)L=x^u8ar{Umhb;(=U1WJ;K_?;e6GAnep&JOnd z8I@o+Cp? zuENDiNZK>@8UdpD&?b>?or#(aVZ&n`D5G6IPsYY+zkMi?8HJ zHII03aC9{OCEqtX))>QWxCC;;f|DrT`K1KvCK_yvtaL;fuS%(#UBS+ySIRHYg$f0O7l=k_9 z9{CtHc{oAfhV+9~&%E&T>OlPKPk%ig$e(cQnc}{zCbWb3s{-~8&O6e^EX*Xie;H(B zJg^;NCz0(&D<&y>nQB5k&C+g|s9SN!cEsF7>CF3FvWjTQ=GxkvTl?8Hb628V-^bpz z1ic5&1j;8gB?2acLSz$%4~M6xUpjm^G(G+6Lx*q-@guE46|>`?FcP$o^$?c77yCdv z<}Eq{%qJKr5Sj4+0M%h$4P22~E*g8Jx;4IB@>eTr>LvJ%D*|!#>ENL~i8m&@-q_PQ zI+++urBd(b831qryCmgP8qHHm31>;Gd{U`&2jRmO4_N8XIe;Fl3RO zm)?||(2lq}W7Dxtvga61vu@bNo{x2Q#)f%p6>1Y2n~iA8Z*$~RNSa|=7yrSw3;I z*u*G`R>b3ivqSVCY%h7XCcgnT5q!Woy@B&E!XNF~omySmST!uvi~>{kW(=;md2SbV zy=;1r&~eW*7_%1yaSO9}G2-j-hbIK|)x!KP*4F`$+EiEnE?H?e`-Ch*tnU=rY-t&c zk1k(=nk30^q0fN4AJYCBSndj0|H6V8HopuT-LZ>de~&Lh?EoK}h2{CXYp*3ua(lj5 z=L)4NZ5NKMd)ZQ%G3E#;YGE11p@T{r^z+)Bbx%)EtOPy5DLKb6q5>i=mf#Lkn{`_iocqdNEy!$5j2Ns+C0@ z#RN_+k`?d9iId}@?Cymb=DY9D?8JCe_Re|v!utwvGE7t>Jg&n!{SJZw z5Rd>nMuF2ka6q2go&pr|GjcDY4fO*Bz(iO8@;lc0>npx_)m6+SzmsHy3^1=vK~Y_{ zP4hWlrlyyz;=H<{k^fo_py@DDh~$p9Tqd`3Eg#%spS-2lGWJ zsc(JRiahO46i)#ji2Hw#|2IJac-25^^r&oJh?u|xfE|UKDXzhIfjb~Rkeen>z+PCV z-T5rZm9R8jczN^m2f>(h=p_SS+x1$jB@HlaN3=IBJs_6nVSr!XJZlz$m8!j=p-NZn zFsrL<)~af?)@`ZxznI6Jn`^UA(O#tAFG!^>(_W8rd0d!F$u8SsEL!%r$ot_J`x*B}mI@j9yDeo3&v$C6xZp9W?kuM*qw!LARcOT|cSLc7TP zyZ&w09i?I<`Tv-fAnY$R>T_*K{v=CCo4HC-&w^YkiZL)tv>Zpb{A^1CniM-mbzU)b zyD(y-2x$562IqeE*`M`Q+p6(m#?m4n7TVoAv)p13RpsR<(1~R4?Z)bjy?y}~1{QTW ze8#MB7=zyu%_A|N=*aX(<%z*jjb`i6QQnakfWokuqw1f4tIlTfY1*o_YqugllIsXr z6Y;1n*hv6!f+02$)L-+Yo8<*6!wd>A3C{*$XaH;A7D?CL-90Mn;G$_^@8c-n2eC>v z6na)Z@3aQpDG!8AKnG_(tBpY_@?DsAKVGwBNevsRS+X8dFuWjAwwVo;8cn6aY`Y8A zv7+CFo~d9Xw}|a~fR_^VkYtxn!U682)8}`vVTa#80Sp^BAMWX4r!%mA?sWQmPIlVi z+v~>%cDi_tRdO$bddQS8wg8JaYo;*k$EzTIi5ehDj)Gjw1aoAyA2JS3_rkvz<}OU0 zPM?#{3-_nfg8H+I)1bC%E2ww7y{pS^2OYn)OWS#FSh{0+Fl-5_~AP3x=!u7t?Sk`*V@;e!xSUBMYM~7WBtrhy<`v^$BG75C(wo^av*RQ zHO%>IyWekT0QdRzF1w!_zLZo&5HiW&vmu1 z<{(>VtXnO!^ylKbep2Cdz^VYgn~R#2q$MkiXM|0M%jb6n9hcsAKuRQ89Uxvx=f95d z3rmpXO5;1QBl0xsL8xu=kej3+6@rCjKie-y+OBGcv{R~?<-w24oA(ZqTQkTH%>}n* zGr27n0-v_1xfdCj3^pxad|vpGJ-Nf3$4)wtqNcUG*}L1f%kPNz$n5WS~x1yj}B6_=0TB^5~yZ$JD@A@^@1CAWgi~J>z4|vqz~%`q-;t5 z{XFCUulRiKsx@n3kZ{em8VR@N@}u|#WEn(dR8e%yXjtzR)fZLzl z`F=W_#%un9ee~#r-_168hMHmd%f?o&T-M(Ho6==dzBUXwKw;k_?z9#33B|oBo71}z zrxx%Nj$P@|JByVvdjSwW!9wv1Z!`M1xivBS^;{@IB~X8rIfF(+Z=XS{8h}s)e)~Pb zJ^hUER);?}j~?|n;*G(XUwWYb;E989q3?ItD;0_ci&o*WXv){%Jt`ct_X`(wk8oD+ z;35-?YgF9L_piX=A-(A)ME8NeW2tD40EU>+YgISH*^IUaTBGAwq13Qg_2L8JNW;;Y zRf=6ZA%b08yW=AkdUUd!24%zLpjIvevJeGywOLbNJOcT943uQia^%k z?{R4~O2q0hX$)bdN~1R=OnQ|{QYsOdNq!@o7*R??#TYotPKPtOIx>mXevJWHH z1TT+@bq7#u=X|O;5lZX!-1;=z%R)4Seas(E!eEzM@dE9Unj?v3P}#7%ao0UK_1UbX zSV<TYm{1Psnvq;ux53gt}d&MwbYe2HvV1nI==Wf zH#u>3Htjr1!H^Igi676+y5r&EoIB;lE9j19d@6m&qt!@=ZEkXV93Gw0VD&ildY9W` zQtE-p?Xp<4CP}OFgbW&AChE3$T0MBB4W4kct1BAz7#KNx5DzQHo$x8i%54b01Km>(>;$fA~ z(@(;PvlFEs9OeI!AEzJD=b0Izf#~qhFe?@QX0*2pTAuK~%0NA1D?kKjlmP{VNiUU> z)cPk9JK&tm42c~lP|??3`(M~;;>45h*bz_uPis94Lg&`#LcPmSKT%Qg*XQ*^MTwsS zz&uYM?IBsFrgA~&6m$|4G=;7J^^Z>=)AvIMgLog%#oz+5H1_Xb6X5j77a@n-h|vO_ z|6(4BL;_%sncG-?1p8TpjC#fqM8K$CvCpIK`B*}iPX|$UM9dxn#{@(s+KOWKoZ`Nt zLvy~Pq75&fj!w>&L_@j__!5-zk<4)e)UVCadt50_6=KHOLh7@No9V zBa*q;&;wFrO?o8Nni@%K<}Ux#IuwfyjnRQ!nZS4IR7#DX&0WG2=<2bnTlj(Uo|7GE zu$Kc>1~Wr!P{iE-)nYJE-`OE(_vXrQnd1B^drcOvgL6f>Y^i8$3VR6^=)bb0!UkED z0(xhnk05)_<(|9s*5`5%`|d=1;Fo_3n7^5slQ4NB%#jAso+4(gS@_YY%dwy~k|j#A z5i4-HRgLK0wxo2mLH;+5RV{yLG%^h?ScQ?vzxv5fUOH#d-mhZn`?Z*0vzIrs9XH=h zZARmLE`2VoM0$(o!JsE7hjRMzdC42Wul$dh%V#OSwd;+Y7cT64gYu>|<{`|172v2U zz)cvzO>tCxIP8O=2tX>|hzW-9^*F;!AJ<$ne*D>IpL=d}bgO*!+3~S4rW})Z@9piC zR^0gW@$sK8ORZQDXl?C>!P{=U8e3Y%T48`sdF@4BeV`tR8Yp-)mzgm(LHc7`ukt)?@#ryV|}mTip?B6`23+m&p+SK47gEvP~E8C z>yRJC{RP${lnf1xW->#7m%3RhlZW-}g-h?}BybbGcE6Nk|8k(?((&4chFWP0{h!8i z;s0i?xkL(JsECUs@Lou;EvmUF<@ppZgxVY?_@lc_jyCzplGJ5gTgbJ{<8Ns2dm>9h zZBk-3JLL5-Ec6u`ZVgQ~p3q_e3Lb4DR#LPBT7urtR=_ox6A4X>CO6G6_>T0ZM}|iZ zjo>vr(!C=pA35z$B>bnLGxQ@6@1EAFEvBv4UVH6luIL1;Q|M);g7u012#{HgDjPm~Y zVbniKo*IY?h;*Ak@&UM<;thfv=CV0a295$}wM7Z&+^R-&3_>ZWVMn@m>Idz^A9PE~ z@0`;mGiHoH9^>KfG1E09lXs^z41Iy9bZ%eW&Pj zEEL)sekD8@8e*^h29NdK>+`4X2fMp}(}M$_8~Htpd%wXQP2|D{8FKNERSayK5$Xz; z7+`F>{D)0=41W9D>}>X?RjY2w{)nAjH8ce1!AZb3@7+5%nBBf_JS$JK@ZjVS>O_5d z5`7xt?FN=RSpxtTyvg8(l$;3s$Tgtxqo65fW^%hawv9YKGI|uYHCpC=w2tBTO2(?b?ZJZxib!qDV>KoL#ZXm_koxpK$fInH$VVy#`+9Xwz*8)BLv`Gu+R@p0*!m(JGK*Vjs!HF7n3SKhdP|8d-=^&;OUYOI5xIS6$Q$^}74 z#UZL0I@Ogqy{VL+0=}9| z@`T=GLGaJluFGaK%$Zm^5=f;2Bf(_GtRKN2a4=^Uz55L##a~9HsSd(kN|c{g0>BlZ z^l*&0OxcULP3p%IUz}<1OD>b;+$e>mg1^(~()RYH5OZ``U~LE_vr)a}2@yqDtk?g5 zwljh^g6?^ia%hBRn2e6d(ST4ptu|%_APn%9*l_slxNBQmVoOGw()Hfn**)oJ%Z1P3 ze>}TvP4kN8fp|s7jVrIn>&^1m=NgJpTwV~3A;f2^nw;$dEbK$@($-ehz>67*8JT%; zZOghAyqJFFnmBzHO~l8_a~Rup&c_v{WhB=-facC7^H_5-BOR$o{h# z`4tw*oMo@^_7>P$m7pz}1a_5}?=)f{zn!!DRSSdqcykRHxoR@BkCQQFI|JwdePE|o zU3VQ`Kg`{l%iVhL*0pPI{lQwCbMEwKEloN4oU6AbaKTa|nd`30upf9Zh3uJMC%f zOnE%1&Nk2U9=h;skqRYBp+rhvBC$7%HIq=3z%I>6Pq1p0Q@dc5S($G<4BV2>u$n&9 z-+$;hnNG|5#Kqy`gs0I0bj&&e9x>1*~(BYYt2Q zmCN|*Axl!%K!*g26q04w5QsuJ&af%_gC>L?P{=4qFf6HBWZONY{Tk$8l zOJ$_B?W8oU2*3h`c!C75?SS=@SS2xp232ufKMWx%sV$BgV0_u&6a06^hKlPqeqNtYvp#&QP=;?C*?rC8()ikoUd-wt9&D zPW}aSWNzqe3Vd@hMLZXe0lKRB^0IQs%OGC3Y$OJv&oNB+8(5SDGboq=O@W!!$RBoi zvXGXGQ#N}dd!nP%9f3nN?B7qZ;_w(PIpxPv*%0bBf%O1ANYM!kQWZcdB4-Yi3oROf zXb~zW7Hj+SiB}UG#;chb!T8Ik5oDvT4goe;r`1hsOaT+M&<+dgO_3mJg4V(b&)Pf4ncu4T=hB7rXroqA_EQ z2Qc0D*^x_c16CamHd_vG3}%pZH82V$$3U~!%B&;LJ^r}-HXWtO)2HP#Z=F8Pa-6Rb z^OVvTKBI(xR>o+q;$<@<E_~^t$`rI)5n$w7S64cDc$7Z$+U27A?}emY^UzXb=F}^9K6FhJhVvX+xEaJL+qSmC-^P z$NBB`38hpQiaUGp2_2U&?pZNd^3D3G3Vl)xr6=-zO!9{LZJRDz`)Nu(+vT$t<^LB| znAh;mPtpEQh$`d<%Df7pJ`ymfgzpr``GNcsdl$L;SRkWe%}|dp7177BB*h=Q;S24C zs)xoV<@YLTH8?O0)8h&Uwq*VAM3srHzoCLv*vExs)qQEPG%jd}vb}!ir;2^&@4KiBHcf##D464$> zHGg2>)X;3ePE*j9=4KKa(?Uio7}Q41U_?{#ErC5zNAJ|v_xJWrZMb^Rc zVe?bqw6Ugg#q4%@7l$0aPj8)?vhK7LE^?FoOibY! zQ}qlrJkYK${V{)wf8zJ4Ttq(=>`usYuOL$_P*5w-MtNe$mfr+vBP?KQVDezUT!^g! z7(TLIxj;i0agXSLA)9}Y5gLDB7=x4pN(r9%JNz1UPjm~wCE>ptEA%CEn#9>L zHhaOs&1-U>U9+aSZe19Kmpk7-Hum$+fBxr}IYOp5Hnt7#vC+{{ zI?**Mjr_%YC2v+(fgunj4QUm5wPSsK&fn4M3()b_}0Wg6q`e_ zfzhjCMKqp>Q|gWDnXo2Ox0G71KmqywjBjgK*S0RtS$C1T?D$y^>%P9LYb$_Gi&q$) zwy*^vAJ($Qh=kwGqBx@sQ-)#w~wIOwe34pLx0*)e(7GX35w-RUDSljEbyIqp} zru=62zCOLl{%peIpG*PFIvjEPoUQsyu(i9pN55sND&NgeHvhzlAgb5@_yG%SG>n-2o^;;JU0p2=Xf~SE>(P*^ja= zZph_yTK>eI3j#@dv0_Q11Q6qM%3V&MHN=MdRfdp;C>ZRDwPf_?lv6 zTh1fAK{5$uf;UCM459(MV`H)fek3hwF4>~(l0=OtFydg+nPg~aJo3DhhFq>Qx%Aeb z>LV_Tv(=<1$!VfK5nx3^ahPm zr&pQu@Y6aNiM#_ferF6(o4^?(%BD#d8;Af}w_``X4r6HBv7&iU1{B-?i697Ep#jRX za-5Hfhn&Hgg>m3ll4gr|$QMRNwr(96ncTW{3$+dLbtc$SJP-K~bpDX_0JDJ@eYkRx zQUFdAJXj@aEI9obOnQ@vmW0i!;5r2e6#36!1p)C88JNIyA|Q2ES2y=_L_30+GdSjAMwW;*M^rKdhB2@RGw{UWh&!x zUzH9?Kn+n@ZnSBQ22&)^ZqU{kl$y$Nw@O=X23AI8Lxr);(@ zs_}u4J6}JckI`^%p#lY(LVrpMpn4!~0o5Jwqr92{-W1Cr%fZL9Jf=Co z*mEJDYbclU!%ziryRA-lC^l_(+C3(_q|^FvFXXhsq65B0Cgq^iBto1IBj}cYbxlQs z(^8>#dfm%BVY^eItTZ~kai_C7p{uc0>tS$a&?+?TeMM^zNpayKMQ?hN(K1|s@up`W zDFHQj{Nu9ma0oV+-0m{8o$-&EFo3j}d1-i@u^U675P}FdW%08c<&STqOL}8871lUH zF@OrIk#sPe_a&uF-Z4qE6~R|veF2dIwf7uABzs-uHn|M?>9o!S#yHpS`BU4LleIdKlvaD;6$GTn?U?0dgxd$RE<6o>$ z57&;gRYz*rPpa(Rbd_=Cs@v-7u3XjB_jv-I$%LQ=C{uj=Z;1JD4Y26Uu##Jie)I=0 z#$fD+F~^Ou0xEwX2Du@ON?~?{FCad|6oL;Rm#X2O7@rwFEY*G$tMsV!nksW@>GJmG zh}NpsSFin>24lIdGIHzH)kagzy+eqW;r0IaWw-D0*H$3tj>EhxXpFm^lEZ)H6+^=h zG1j=OrgrI2m)>YI1$6dGtD>>?_iBy0c6rmXwrlq2oYyDPiT1e1>{;sc2A#D=ol;S* zTk0QQwti`lvCoS&L+p#>j|U{!hH{9MAlLt`)OP9bIZg9`eAU$hXac^z?8dq^2&oRF zL9h?OGR5LJ)HDKk^3thS_b{b6${+37%{nK$k1{KCjYqqWVm&JPKm5|LvDuQf&@z5&8$~~{Xx<~$q&b#*8iu$JZXTa>LD`WljfLzq>>t^v(C0O2DH zF9-zG%}vN*{f8{bnCs$2ii<$a1`Ca#C1}LBXFBC!Q5J zRD@X@8QA&b_DH1t$94W%vE<_@zsIfnxt+h{gu;ZcBpk*zT*MF7Vs&dS%b*o4PFSy%mZM>5&* zZc%x|n|A(_tG21yYOQXnbzy9g&Ry)SwUDDO1I>pu&Saih@_=dOoTf^`(0;BO{*C_4+cx|A8(AjW)HlBKhK)_pjAY2%a3=vm-FZVse%Aqq zAj#oz4BqX_nuFRZDTsM>&-xvyQ98V3cOTLo10RT_SWpCy%;1vcKd zGn<~*_Q#wQEyj7y>2n|w@X?Z<0NU|t;S+N6>e7}s7@baUU7bms{=WtNAjUf(s#Dn^ z|3qWYZPD|_xL`n3$=R}FO$5I^hrf&>x6KXmCk5g2ClS)cb#Xp&_N6!H207D<;SW(a zE*y`vL;0fmST1XjJ|jI2E&j%`>&nKTE( zm57zaPuMZ}C%-M$4&n@!WX)v9t9D707=Go)l<*)i7w%%xVBpaeB>M@3tE0Uan56{Q z>j9aYOfXYLy~SEtU12mC0IDvjjnxcM))fYQx!z!|N2u^Suh02ydZj|8w;GJP`f77U zxn8YtnEePmTcMJebgv{yo=`>H;|Z!`GxZVGGLNT4p;+e8NK6mUbB94;{70QpGCIx7 zsQ=$8efiQ&OJPo4p{~@Kn(k~e>MB*z-(b70^CKdv#_Vv{+R8PGYNfF?1-JWpv%bO- zbT%(Z)!V8Zx=Mw=!BC-Kj=CjAUAa_Y)%$dk>R-xJT@gija@}%CTHcvZD4M;ENku|o zsWmEUY7M{~HcO`3nq!gzfVi;fW>UE(Yzl{s%T+`M{(I-ZtYx*jFpgk9KNrjG6Xw8+ zCMS*l`^8L12ea0&Hk^uRLzWH#{JzW-SXt+#Ij~Gjfrnl8u+ds$3fpNZDq2g)6D>%T zZ0QUD6^L014j#)8{1o}h1ECd+A}|aKU(TNdGg`?L^J%mWw^MdO2s?byO4k~Gd;T<# z-_sij>l>Sp(Rd&niG)|S;|ibnT@(oA6qtV~vbl!D6-10c=LA|r*eQ|8Zyd#npXl%B z!S?zQlN*;O`lXI!0#~nX+?d<}Grj(s64-PFeI(LU5egZhm;}5lq3Hgk#9w&zK#EeO zXnwO9uy4GUyyqVl%YGuZ1bocAmv32ea|UkI?+^MmrK!6IIQWUHVx7KudO!Y#e$ z$xzoq_YLmc^C!2sE#FK_#A^jAp6cSNI`$+ z+veL2S!|~%CO^L26f6f?`e_xWx#wV2sjlRUY@Xx#Bo5zST$EnpdJ&^TY; z&Ip8)fWP4453a(ZnvK$iFtGA5KpFY$e(?G(o$0lHe30)Gqyea4|h7`>87wa>)py8)Qzd&SZw+ zVfi9^G3=BF=sWh5D};O$W#f>Qy~AZ?WF1OlEKX4cXi(K+rTS>gdu(dUi!UltFTNO+ zPqCqwUXmwBy)5WCA-f?tJ19?hkq{0JmDC#mNsCf4z}Kx_J-Ygy)#Kk_N1DEVkNj^T z>BQ9Nfdg+Jmz|-<9%CM+LqTXUDae7`+!}}1l4`n$BnYUq4eEc7GzbzO_MGceh=kf= zTqHD^`O`v~kODd&EqJq+z!`kD?0VD}d>0H&NXpR+{-3yD+G5Cqh5+aI24$f=i3hkue*CpiszmG(WoivmI#wAL|~RtMPDP^2TA(7<=Zq|@}8pf!*H z!lc!!bb6D)EhQw4#$a-%oK~b^a{6Lzy^r>Vov|ak`1t)-jH~POGFXgXqZe_zCPYVS(85Fo6W{VQs3)n@0?FbbncQfE77V??s$&=AR z`FYkss>=QF+9Owkyl3!8^Ak@jzq+s{6xKYfqzq#d>s>i#EvQ3a0*!17EQd6-Q8J;vQAR+&oO}OL`#@x?$ z4w`E^qf7N|-f127us60N0f)V>wRd=zrA>=6QoD#gu7K?Xt;XsAz%8-OhZ#AuMu8a57w(XVgU*GV*;65n! zF_E?c92>9+Nv7%dR5J*8Y}n3Vp9f)AqV-EzR+W9eS6ipOAsdOvuYR3{qLJ(k+Aq@m z?_H_Yjm_#+I_ka(qGJGo&x<1AWw&oWp|;0By4*$;DX4B!@9DRF)a=D%71| z>pE`j>gh>C@#=TzbOZX%u3J0$4omlghwI)upglL(k;HPTyn(`O+LrVcb557KA=P)D){!jm=^u zlGmEIN49~)CYe(;Q~6hcECxx8ui-E?aHuyH)<{-en^qNyaCp+KL)xIBQ>jypAQ&9K z)@g7lJ+OZNRjY0esVd`DdR3i5s_HrLxBJ&$xYwxG#TAMx)YUqEsaE3>#p3N!=-+}q z3v-u{0to__ES?IefspjZ@ie!XjTC@03>zOPrY^k+SvJgjpe3AWZzmWFabzdB){3l3 zNpmIvJ!iKRkZ#7@%~BiWXKp+O@fxkn#GVov2sRsQGR-EEa3gF7)@px%m~RsO(%Me* zD#60=O|(EV;jri|7Pr=-jSQ#oF{Cv_GzNz<65`)j-B?#6Lv4C}FsL;|RR)I?X3%u& z@w%Ybg>W;Xfk$sR9JE_0yu8Ms&;MMfr-UHJ4cd`~)upu{Au?&_{rL#`Gl47c+RWHk zzKpR}2A3!1lV6t-^5`${Kuycagl<6CO%X*yKC!FuAF&pauLDK%f;oJ_03lGgSa=7} zW~6ZzmQPG}L7jC15zPSEgRX#H!VcAhIQ5o%lC!|^gw~avJ1V;_`V+&$?;Sl#zqXr( z7duUdT^FH6Xu>-2O+0^Fe8?sDhcF1y|7_DLzFPUrVHhNpp;>ep+Pk|WcW z+M8<2q!9;ATu9E_+uG!d#%gDs!6=S1I-8>E-df-Au&?&sDuumL{wU~YfglCcSW?f@ z)K?$BhraqXuHYX92`7eL!6qVZ46weJw%sgB%ZneM?|Cy6;=4s z$b}0uJC5=78xe7&uVFUY$vPZH;e00%C2a>y&7D*TvezpOJ#r&kw(>@~#^GzMeb*5i zj8+?;bARhwzj*k@$jTepHxRhgZ1;sew<#ul?FW%>VGLq_D5^ulBIO4!jwKI0R=}8> zUkP?d+tV8CFooK((f9qJ?@Q|dSomLqRywfQ0Hj04Ii?LPuT*zWnl0rs*5o zzP-3FFQk4kA%D=nefwC^oYZi8Z9&6%RLm%VLpWIqCn>1&5f%?BB2sgy&t$h`@nVl& zC=43ACachq$Q?$v{c_ z?bzNcf7m-Vul@SRakp=r)1?9fkjkIr@d;>a5Zgl`z$d}K!h40tZWt95mXbJPmy_k} z+=9Xo@l@}y8=f=Z(B`wawmRhlG^S_VN@ch^=m^bto_mfB#XPZE{cXm&TEneI2RM(Rj@70&sqZkdVweWC6jV_o|neC_2n!^?q>Q^Zb#2^PNO?7)c= z=Pph|)o~2W`xbERPhk;#$UV%S+Sr%s z+OXN>GEbUaODwBc>K1h1oJ}^Zi)2+8$@}m?0s+{P`86mlvo{9rkBZL)X++h78}prk zu;i_hGT-jDZb=2L?lW$OG_u+5Il2@6+9`JYmY&8_MWy|TC}bl}ZrismtWPx-&1Eh2 zg8<<}kv$wZKk|zxUHTN{vqBObZZ1T7Pe*sJ!9qkNK&1<7*EE1E`qTG$LN5KTm)XdK zR%3`6ENpM_mSoUQvVMch?`ZuKmftzvi!_;ySRZ-*WTrvJoe)?Ri;r5&=urr-yl)Kn zf+m;bH2MAawQ;NNy!ql|y)K`}$yQVuYCrEZ!2FW^vUop1i2KGEcJQJ#|MLFy^ZomO z%d}4vCsvrFf<9VwuZ9gSxG|febZe5|I(l^HmXi4+55i4z7qifgR7!6wzEi8QPb0#{ z{GIyDPWeL^@|IE;m!{qr7L(Ohfl z@zRoK5c017V{oJNrs+@on%GbCwqZP7Y|(fvAO?<8e4f5kYc`r~P5Fv<)W7_N_5KBq zQi1?!&)J={7t*gCJRWX<8$p~1xA!->J6R^&x? z;$f`8C%E^m@T!QB6dt5%L7<8u32qnC$hwu4@dOcDXl(i zg4*0+k>7&~ioL|`K}jwOJ5p)Phe@UNAt;%g(L)GpVHZr!yjiLIUWPwJxojxc574Ux zzS9Qo2s0RY<=@4YteCtg09HtH9>&l?fs7pD3@B&vVYmk4!EWuAU*Q*_ZjjqOzkx^a z1%3pQ1Rj@0*5d(vm&m_BGm%$LJ#4gtl)n)+JP=%=;$CApjs%}-^X7#CK+!`qI&srj z69`IC|IR-nP~i!xyjT8ZU?zV4#p*HLNviY^dp@lC`1Y zp(^S7bE$q`e&xaL2UjEAhpLP}dQ&9(<}1(td_8kuKa;=@3je4|k|%Pk=saMfqNb3M zw) z=Eo?MBs)h5Mfu=CSerkwW(}bFvF}5UEo@wBu;*_qyP@pc=vxwKkWh<@H8AZU`%tUO zA-n`Pogn)oA^jjAD7DH=zlODe5NvXqhJ;{TP6jauo1`RieEf?Yxj~D-) z`wIIoH<6@-AuZ?GaDj>-u7xQjXhbA}Vvy#Ry;H7ezPfpIuw1WFs5bA2f3`&hgCp6Y zs!*24*7yD3k!A&})R%{IT~BtdT~!gkONv07!{cusY+u?ITzzv#=WeHoS*3ElPO7yx+_Q207q8&o zEp2ewVm_5xp^-i()moP;6jgc{sn#j<<=XE+UE9^TlwG+FT3<<-_4-+(XSGVcNoi|b zlId^0Dhk_90RO3$t_cKk!R~~^thbg|X)~_cp0K7utM+7TYzj$Jt(6pOD;w%O!_7%V_jxEeZ|V9@s(+nu3W9ku35RfbJMzsu0UH`fPlI~85Q%P)t75(@3Gc;8kg985w)sPrK#4} zwrUM(NwS&2xLZ_Oi=#SnD6I?Ues#U3+)$;H$|DoW@R!$xte#-9Tcb4?BFRVASJZgq z_iD-k>Sfn9yX?#AqD$RNB2_gGC|VORoFiH%CT)=(!#-JFb~E;nXdt?RqMih-wi>E3 z)jS^c3cCR)Xkee2fV!?;VYT5)lIfwcu%PkM$fhw5i&cgSmqDv^MB#6zR{}pxf-YausH|?SQl&KY^*fxBMpEiq-5RY5*k2Bn#;Uid zd_IF;3)d4B(AG>yNUyW&k$%UnP8}rCL|X`K&*el*H$s*f;MMhF>Z0~uVa|);030(K zEd0rFK&Vl`edn3du(j)Ui%O+;nu1oH4xnMypvejAR()Scq)UmXn=t^ zc~)TSj?>m!0Dr+wpQkNskZO&d1tTu zwscC~(cjnG+e?Tzy?y-A+sozr)V?BrfpbBiP=SUxptcT!6l!~Mm|RMTooylku+dYM>1CA1DoX9VnJR7 z=vHpflK)}QXdPVNRNlyQ@Ze*=odC)7BW(+JMC>|3g)ErMaSti91zVLshk2{)6-_qxIY0G8nZ+ zrq=}2Fx%Eue5FFiukBTOj7KYc$~(9Y5&RzM5Gz1}Tzjn)mcObs@@dpm%aKo# zwg9*U5c4hI&x~fTnLX|EsnXlh)=_Kv(y5Wx_Uw_$cI|pv{{5;|7$jeof6wk% zfNiYw->~|@<`p?M)Bst-21+yuLrv3t_sNezqPua~)8k*fe;GhEYI`7}-xPl4OY+%& z`cKP1_ZR%Y1sy?lr0@?QYJy>MKyNAL_VGhf`0(LN=g|ct%z6kkbdad*-~EnRH-EH+ z$+E;A2Oz5>2*v@tM4rwNR5Tpg@)WGG5#iVnf4D(W69`F>rad#P>2o(e!ETdpVPE}R zw{%75(l49typyf@*OMnb9rF1uGV4XVrqHf#v@0avOi{%YjgtG2{5aG0F(41f&%1vo zpL(v0Y=-kZ64k{3%9Z>m$#1&}IxZ0ls;m*So%|=uy&Nnr-p~j-gcwTBS%A8>SSbV& z6ijeD!3A2NMl1>Vz>bhNk~|HtJ0h`2!b&%Ar^A07C~CRjo7wD?)89dlAFW|muGvrV z+14OJ(aaizfJV>?_De(n0(doICxMHmdqpuzL?6_F^7n%B=NQY-PC$%LfUIOkQ!KMa z`EVaxfY(f=Ch-SV<3LBpfov8YrogwAr-?9NJrJE8M=5twS%Iv9M;fKrkMe={{ytZm zUkSjzQ&eJk8Hxuls}4R+1wTT*FeFDP&K@jB!5SK)EzTe>S^{&Q))8`-}+E* zIXMc)&0f7p-f1avD?WP_ybR6ynT98xfa7EJ3_hX%XzU0%BK2UVtP^90_FGVjfb0=6 zG&O{=u_PBttz@_)d@c|xID(GFk>pZ-cs>*5sApzEKLUXYP}Tl}uX$pzTnyn-JPr#k ztaeY#VYNbZ$Uj;fo|w~Ob-Y5qJ=Dh%IP`yc<6mNHqtUgoZ+M#ZDo=AWtm>oQ+Mu>F zh<{hBkfKLrU@?zvX{9zOZ$UiSjbG+#(;b+X*Umn3(jl0=zY61?N-i|M&M&beUdAsI}LbL2A|MVy#f zJ8hn$SVs!wC8=nsjHn%YU(S9;ZIY8pF08+&)30q!Z{16<2J(3>5*>4R(&r{7_VRud z=_xV3^<{3PNq`JCfN9wvnzyOV3u~~YYjC*d$jQ(nn)l#3(erk371-IM2jA${WwJ;6 z4zTV|D8G`d4FDIHv@OhG_`rDgxT`qXbJGWh7fX-&;PdFe8?c5fC!2Nn)^dyVc4p(U z35+#80_wp)0N!)ZCJH1e5@66gh*<+-9Ja7FS+;sS)~DLuw0iteU&e1RF_&HcsNQPT zM>A2qwTsM?zu~d7tL+UdJoc;W8`~RH`oS zTN~Q7h6*yjc)-19FkQ@-rv(>$UKGo0VNk!>V47dNS9ha4K3*~_N@=&UYdk1T-)sTf zAii%OXI%!X)u3n9RJe6DJeFnE^?GPyc=<%%lkO0feY7sw78$W)6B9>EdSiNcV)*E} z`JGGk6&P8B;EO%3c<2-2#_U=y`DbEBIk@~0968)7I}52d!K%vV2}SiUHA`Ud2VhmC zNqsERr7=Ts-LPfO8#N`#e`nWFX3(){7HrAUTY7H6VzWp_bNNvDNjE@4WX{O}L#n)> zbRaR3Hs`9p_@2kO&IyAl*DdiZleglerb)D36*l z{MXa17p`g$GO7b5>B^Z*D4P|pd5Qm`a39~6w1biBV@pepmWDkI3LYq3#{8FC#`roW z_COOfr5q^`P>_iva3CR#@^X^;O)4hvw{+SUU$L;c=6Ko&98%j@S{L9T672EY+mj9QB<=V&Zm1~dx7&n`Z8c_3P>W|-t zoM9Al28t&~vsmB(m6=IO0+E?sK_WETrQvP~5jnkA(Rc>1SJI60)bd>`Hr>@yqhI}* zTiS48)vtQIs<$ds)vJG4*Q;yLZK!&)vR8LwRbQo~U)E7&X`UQdv1{{cadFFL{PsUo zZO|(!H|Ty?*;lnz->YL9{86l9B#XQQ);&q`T*a6WR69Y&K}`*dKpG=zXs4~ck1m< zos_%%w8nveca3#*jSg15dPhg3Ht4U>)w?Q8-umP|ot7CLreW~x%{u1l*s)sPJv@x| z1SMZYs|$Qu#BHl-AbU@B(V48q53pYOnFFO)0GaOKwhbL?kksYVt3g`DPho{lPzpuw z|A(}Q51_OP=TBR%#p*djiOf)Hb64}y!(Q_78|dqIz~NNWUPAf^B8*}Fgkuvc7lbgl z1x^>U@gM)Vp{3=`Cw$SU?+Lad5Z^lj&gsymFRZ@liD+jt`#+#;*Eu&W9ohHM`*#kl zx*lywb64OulkFxf!?6Ki07KaV%?~DUa{sk`%-$J4d+A*0_ZvUg`ooa4OEr?p?HLWd z^}_BmWM0nqR)JwizJ!p<)1nCJ8`mV0g>xg)!Sqn8EHEjAU4EifvS>6W*cwAyY|vX| z-(!!r$*)BFp3>`|(}(oW8JJS5wOipn4?6&p+iLGTe%uF(&fcf=A;Yru z&&#G?{&F1~Xzpv3uYsspjGsxQ(~oq}^Cjt!=LB^&h*7`-3QORY+!TQ0flP!5zm~^M zWG&FQqc?bbM(Rh&!!t9%R_jxyHgK}3-rk-5r{?DoD9r=HSx&CxHyl)g^TlWp@TNQ` zb_6K(z^e!MK7~gvSjdQ-2V~DQedl&h<)$duFft?htxz8;X|GCZgw%mrhqi|VQJqi! z{ZprMZg*~=knX9Dx8LqK_4dRBpIe2rFj0zAqW*)W0H4LgO(0S7J1wvlg`y*Aio6Lf zJC`GmV`8@p`LOf3sotHvRD3|Q@fyx6Kaa;cv8^BAQ5cEL(b>6f9dGBt|L5n=cj)|oZ`->! z_Py`T{`s~q-WB`q_wxAzcvxz~80JxHN@@U69Tq~o1&RzA4+;aqq?f)Bk@Hx%Q}Oi}{G#jIqG>l8lL}!|VtS(o09>oxmG8a+Jmi zt=Bi>_n*ZqBPtH{q)OpWT;8Q_f$9Zo5V*$=*%tYD;eBh@sI;xSdu+6e^`zcvW4^Yw zZQJD6w{4>|X$`*>X>R6eQhW^ZbR{ccgyi6{Lxda&9y#Iy=u#U1{le^?UWwU+sdk8=&e`sH&?fLxk7P@AS4GmG_ zH5a_e&4rFcW&5T6#|``TbznvVI`Aeh!>Mzcnbs3{m-91P2)#N<(E8b5@gugwAZYHPpFlYPD*mLRV2;WvVsJJo~5Pf4R;5Tx0f;}LsS?q zTrP8n;dEBL&hJ2!b!5(-f8>z}eN5=+=T_LLokW7y17$%mI=Q!BhlKG%gKk z3~J0;ixqhLGO&x}^Xt2N*30KtUUSVo5AN)~h5h)4>@j&Od#wAK-9w@s^Y+R-Eefd~ z$Cgx@*0E#9VBdZaQ4+dgfi*Pr)XoQv?(AloGwe}$ls(!##FOIX`rjzmA2DmN_S3rG zNCJDza9W%BnT9VItZ?TYxf`#Zyn1_X!ZA3|Igw*S@~OX6Y{j!Bj1v-A`qQU){I2_W22;gf;Kr%{}r|A49O3OngIoNM>>pt%R)CC2V*N)XImpGZ6#$Xl4@@kbycftkP{X(elrhEiMFrU5X8FHf{xw_?SX6?xf1J}!aK5H`?iKpc}G ze97{ei#u_L@h#feKq`AsfZlHpB9@ehDCL14JB65{cX$8~M<|4#6jP)Ry0pg^3x%ZD zUVZh_9yS=-%k~YTjG%S$`Bre61iXA&-e~qVQFhPPIsl zEyz(u{;=y>itH4YnCI13J+Vtc%8T-5`(7Cskk9YkTap)Hh6_9+Pyw^P<3(AKc>tfj z@w*51@?cr{jHsgWR_2lvTOvhZwP`SDhc-Zql=2lWdkB#uOA;t0?n zqI!O{cN1D<)7^J(dgX5U+^;rC4{W;o6@ED|@TS~ z{o^Z}m~qqIU;Sz?d-at~NT0^w$G^oo_Ak)fmN7rJ4x~haHZ1c=l1P%#IsA7ZAH*j$ z{6>H3OG&!j`z)#*U7;>(hbH9kr>s+lbod6@17n$c;dw7 z1JlFo$DjHCNqZacwyHB-)N4zYWLcKC{$*K~Wm%SFS&?N~mK0f56k8~caU92(5R99K z)C4!1Qci|RO$a}wIUSl(hG{v}O&Nw#N)2rp9xkOb)Xxm32hy~|&Ga&%W#$IT zv?&J|CMBEuerrj#>=@efTwA|e(%x&Yz1FwBpZ9yei6>q?!M=Ir(I+Nu`zD*elFQG3 zz&X@nFM@TN#wRa20kb{WY6MP@=QLxkl(d=Fo+b8Murvv$<2*1;!x7y4Ij7s6_wzS0 z2qcop7tBtl&*{vY5qNdFq}q;4uN>}Zay585hOfM|V;lU{xQ#hm8X8)hWAsfQ;zwMc z!d#ZV1OKLhqy5YIh+v=VuI_@TmGX2cD9jfPirJKS=_o`BU603#drSfLzHGL7tk$!q zPczq%(6G~&^qXl*1PqX#)1C;MNhXJq68o;ziwsWd6Qj2UhV`9IfgY{$2iazmztJ34 zn!_EQ3xCJtCjvb^0d{48>-+bkeF=^;5H$lgU~bcZq&q>3FydF;1${^9J7h`1i?HH; zI>|{l@Q^^)5&s6g#8$L%Um}4=+@!?Oefv_%4^vBjY*T9AzN0A8wXgg~zKncdnAa&5 z)KU=)6yrcDI=qiKMMo0D96nAe(?RwT|2&bhBDWk~{RE6dA*H)(SaaB>cj{1dM)xqN zy=@?2uyxcpO}em+-qzGSq~}kzuyO{QC6}{R`MJMgAM>^Yn1k;-^$+Rw{JY^ACO6bX zXjhIJr|xfPS2fNWW)CZ`(nmlUG&MD}avkXeuj?dgN0lxUrXU|)J>4j#QMy=S2J)Qr zV|&S}n3}m8K)v5<6!mlS$l0U~Y}D7Xp7fpuF?dzv;;* zKi1Rpv6+wc3~Zg*iW`kV(n0?o=V7SwQpGJeoyrH$Ag6oP$pG87G`iSN?`F=?d%Y7y z4y!9n;(*!sK2*n^Di)<@MwHi&-Phf_X`ehsz`U{gPj5n&&AT1k?B|th0FqhZ2H;V*+3}d^^N(5 z1+#gaN$x=L1&w&W+Qh9OJI2&(d+ z=q|sYJPi_dQr2r%hV5R1>~(I}#C%r2UN##1R$olB-RYGT{j<-qg=c3#=I4~&GmqH_WIEzf$+6=eEOw?;M_O(?Q%GUgcb zcY&y>Rz0Gzwwt@1rnvc>$#f1z)9+2}FWI9Bb5MVx#$DgwZ*|o->Hd38qX(~IcdLqx z*xF@vyurle-}7(d2i?5y1$Ltb^K2cWxf!6G`eBhdf~ighNu))>DR;mMJrvkuYChax zZ~<^3L?(W4sjsmT^K3Rev$u2R^q|{4n3T6GC#@c@nZ0fGgfpRH=r|}ooNg9z+XFsu z(1ww2$o!8!>Y`Z4U2VlqO@F_pvzTwTu$@*j9ov|lJy(+1}?{0;E>XwX1{O+&^ex>MwXAm;>@c5DNZDbN!D02^DWc5*6- z4^dPQvk_-V9%wsR;+#>DSmv&q)aw#%S*^ix0YtOLEbApRymD$IvevyC2?d{JyVE}k z>J1Ros5Rb*H)quwCawc7o%97Tvt~bWzlYUm!1=xZbIx-C`4+tG3tL!m*jAo4lJ5(dn8`&z!Ixn`# znjxKfUaeE5j~1rWfpj*UdnoEPf`kpJe=<@PB%RS4J&_M*(}B#MLS!tH8LN;XD#XDF z%L1Lgtp$E^6KVITEJ_v;1$%pfJt~K(^(-^MpL@*f^(s-{A+s~&p7Qm>QoMd@s=uY> z!W%94>+IFFSYHQzv86@X+Q~>4TkZq$*P;)EHji^tj!isG;9OPVuDj@aljy7W(N}#` zkI&LV_0vfKH{1gwC)u@+oZ3RY9(v!aGgWd$h5k|aC1y;s1CP$)n~3& znPjQj;`^#MTy0RtJX<{7D4J{4IJAlHU{bi$_PQ;#7FNe%j*As{gRD0c&DEDb-{XB;!b$61s~&SU@{ z&)ir-r&C_hNFJk6~l}__fNQeE{zMCgA^}-q0|uYW;H_||D?|Bbw`c4WWjC? zM3VV0#pB^(#BSF)Ww>X7!>~JLPt+BS`U2Dkw6+OO4$_`rSL2LJ78#9^E|4J6KX)IJ zB&HJu>9sVboL$uAlEc}lTy|-^kd>d*JL>eG zq+$3;L#QVkr|;J z;_ z7m9NjxY0;1w>_Jknw*}VyxVLJ9KLrBwVUoe959%cgSdqdN|4C#E9DC4a*bCTiL7!>B?0| z;5Hi#dE_O5P->TWmlID+J5kS?ZMs(ygM*1zbhc)B;&;8xy|~qx@vFK-ouzK+mcRyV zrgI@XNYpYi;%u4`nduVMgL$?JdGF|yk|<+9ClQ1bfS;I_U0j>&;&VaKfWX2raY7zf z))Rm(jB|p8a~(q(-iMxyG#XI!frSa9^8|=p=KP6eo&QTMYU05q{@p*GvSxntMJo!nMwH_o6ty-mIlajpAZ6t zvLZOk;4)&Z8ez*;lrpxaq~e>_g!N6c`Au^YPs*v2Cr=K+3CF(j8?*U07TRWh(~|m+ zmrkB!w;f?e`M#HHqao7G;HN~6!BR@ca&0t_lpKSqzN#kL^Ur@+J+yu_osaENjD=f} zMbiN5{;H}^R9#<%(zI~p5P=aWN5E0OB>YgRgBBf-+Np@)h~S~ZS^&*g>ARpUwP9|z zRj!s=%xsz*oO-H4;3RpZ+5y|{K-frzAO(KU4FB{uGhH(5tln2 za;uMFKImW88=YRim*U4>BxF;e0_ETJW}{ArIIm1k^4BsCq@kr9mh}a--R+Ntyz<;m zo!M!Xb?hH?AjB>m&S}+6(vh61J%9c8# zY_m9CLe-bcT%-1FUF(~hn{P5vsv_@uffK1m9E*IS@u~uy{jwCGu$hWZ0d{t^P*{8c zZTSVKDW@g(mWz8+Qr@iMK01=E8_2=qi#Dh@Xw ztdt&8it@nua52#fl5gUfTCVC2g2l&y8xgLEw&R6Qk`lh8ve)W8m53zSgWyJpCU(!z zLt8)Fm-JfMar^FMB;m0uJMrBadOb5Uqm28Q$M>A? zxgA!#dtkeLhT6ZZj}tEpArfIL5F!ckmxow+QY(f5!4t3%pgS1eTzJ5TUy3aCbi3XA z*vJm%P+BVc`4>a`my5Q$H*k)E~K@1Pp zl|Z!6xAC@V*Lqu<&zAH~{^iC#OhBpPn3w)3M=g7_G_74ou;|2czP50T7sy^@JCMMTVEJc zSyWz!zu6S1R+-h;98`rp>%A6pwO&)LHd%ccEHb1+eFbaIde|LqoU6dsmAy>R0gy?F zqFGu5T5S^i24=$%b-&s!AC}$5n^9*zuDmtDP9V_MdfZUwHviaE_m_4Mhkso8{qKK| zU2|@p8?k0yiF_HLEEq&vw-8^D@J+0mifuq)gWCoyM&zyts2l*%MEd$%ev~k&la&iv zjRs^WZoOPxty2_Vdmj<-Njq}jdjf5~*^qcnVPx>M`AU<1e{!!myN`*>AX*)Gx&^d-C!t^na&{()N8dqLQhWTW0SkTw#@NIB(6i* z>4VdmF{4LATpSbLiDYJP_Gzovj@lr~V^*Kt?z2AjW_pqPlLYrZB7PKeBIkQAz?CI> zAHc$?6fgz>x`$}4GvTSZ+}>OE=H{ltnX#kNH@DqB_C|Xzs~yOFDwmttfY4uW`y0rZ z7UQby*XTgZmFtt-a>YTgK=%-fHI0C78(X#B-EDRzCuephobqHILB%{&iDf?12OQ?F z^Uz}Q>n7)|1IevhlgML#dj*9Y^t2Do;@Y2upQ@ClMJBU2FoN+o9e%Qqlci=^FuHln z56?Wbw(3luEG*`q@0ZRZFZ_*ghUp8r8JusfpuC$2zk!Vxswk(vK#Mny{a-ltKjX+B z+NU-MZLZZ^)UR`A7kSVA^Tj>eGSJ)3MyPYi4=D0$qtHORO?2VV{?fU?8AsA53$IFhZfkBJ|Ffh_*}>FA#T};375~~@-2A6 zdA)K!hBnzmHk{wzfkih=Q4kY&=fR|axB@y5c_-aeY7MN=S_gaqyd_xKOJfMJA4lGt z3_SJn!KV@Cw@-lLl7a5Rb7ZU}&_O8XL`a`mi6`46l)V8w(a16%@+ zs8wcnR90GNYA33~fdJDUG8zLY1`=?MR8SzC1P{bIn^g36Mgj>-y=?Aji*z<~pU|@H zX@^_^$gM3%Sl?1OmY*L#F``|l6g3WlSx4xoiSj{{A=e0K1i@8Nu1C#Y{L#fnWlvX5 zq5%}NJBhxfJ`nv|Pf?{6J&bf+X9JPY`kGrC#>9XJ&s@?&OH)$Y{Kxr}a-B zXWN&$I&|{*eWkTX9Lq&nu3((T8N)#@LeSmICry+?yvNBkN((Cro6@Dg#lVb$7kv5(1k{-RB9UEzoXaakh98ooF<&|y4M#HpB+g{; zBAoWI!z+eEXnB~ROVBS4;Lc!S_xrnL=YqZOm_#XIl( z*o|8^88%tFqX<)}?^J7TbuKwqm$DBI^^V>-bc_Ek)dT9G;)|2cfZy!$+hfBXD2R5T zi4zBQs7Euyw+!()C}b;XULW2WOL?vvszncYV>v_m?BXP8Cx@$ zP8{Z1txCdsgUQ~?;?9P4yGg5>1)*C_ZH-nJvo=@^nmR51jMWCS%hsu@(HeAMr{iN| z8gh9W@w%!M)*`G&HCUz2%^sg1;O+zn_s=m|Id_iR6dwqDld+UtU1ft`rMt~WvJIAu zjYxawP9|a|%d${-b@!s%-8~^Z!YmOiP$xnWQ{-*Ki zKpTDte@zvuMktd02|@hynWv>6zN&0s)yf~(kMK2ai#OxD-$e_2$e|vp+Fi9Dzv35$ z%OP>G9QJB4u@R-^a!=dFFCt(iLI{co?H&o`$wbj>KZOtBiUA@)Wtk*ZUxa)K$YWs%bJ+X$m_N_rL_4o4H%45X< zs=}Ox0)c^Y5uNSZb4TZJtE_X*+HSq|$gQ`&Ub$p(pQn(ElnF(sZsK}_olIUjC@8Ru zX+V+PuA=dXI~|r-lyGFAlf^SRHDx0e6ET?2%_8`KKXBThya@P8$Q3c0C4~BoH=62{ zzT?NGriI>KR2os5L344As4fU&j=5gKdRwb-!laXx6cJR6!apxTD1f0H2nwz9_HA3% z?}+%K>pS!Kc-!rrSBzhA1z_HzN5`j*O<$MsCyRxtvFQhojy?<=I6Y6IB3fN2LS8gUDFbCMG5MVE#n-{Tz4?Bhuu|1J4^_$gJE ze=pC%5>B2zLIK)ZC95c%Tab1X-X=xmER<;)BLWv!%d3oG_RjBALZSlLXN$j_MR^!+u48jgz&!I`N;`wAR5$MwO3kf&$Q$Aop#T2L^=JO2QT@S3;9#5 z*4E^`cmIlYOCFrmY{Y87mJ6@ADteSGQ=Ol<1*lT!c#d1B$Vi3(kcP$keh;Q@i&Yg_s+Vev3~ zh1Cl3e$msyScc%>{}N~kFc1rQ3d?bE$H+e$_U#vlpJP}e`SYKUWann-t4upLnyASY;kx~taVp@SLynTV`?bBt4)Q1H0ZHa zBTKTL#ozKs4gERNmEUFhMdGK6a(+7W7Li2w^VV z42V#1D-{vSOlCZjd1g*zwHHE)mA?e3-`pH~fj%40AR`P_<=C+Sswy`?uNUbB*Av9~ zEFYhcrscgu^orxPm0Lh0g1k*j!M3HCKFIiRNPckk;v9Gg@D9W1tN>FdO9D+z2WBUE z8+dar{Dxk?E`ZgG!E_Ke>Kl@mBBn^3Ww^Ei<3LP?Jf)Gl1xWZ|c|jw!M(Dawa>@IK zo?@q!r$gE7SSFr}Su>~z7w}_>+YQr&1j--f{E+di;LG^>PxfAx$%GSIjjpD^27g^g zzT+qPD^i{6P=5g5@vZlD!GeWcscM3({2pHEu^LxVA|41@K_7x10(m{G6i&cciteB! zCY#PG-Xk-6j?ya2=RSeLC>=4&=J)PJ005+Qll+5u4hp07MC7Yzuz#LO+QN448HpU6 z$B}D~UhDnFX?&$(j*D^s(WCyu2mIP2y)w2Sa*|wF@dL2S;)LXYatFiR0XJh%lY+|E zs^QFV1d(ZLwIi5^?b_~SbvG;yI}`((9kjFXo+LlDX<}o~;}e@AiCy7LO`rDe#Bfi~ za6%w!b+v zHH6zfokpW`ZjZTK8eqob+nvtsaoMQXxLmRAghbT2*8Z>GM)iao4tLVQiz-QdQ#q zG)Yv+9_3w7&1ISvn(V}^axY50uz6+j_t*sFw{mZT-+ye|r@st8( zX@SrS3%<`4@|5Ojc}>uA#x&@{&|xb41_Z?(A|<%eQ2=x``*BwJ*#a{z`vq?NG{K~~ zo>bna%=Pdp%6hj5yc#rNXp+lr3GANpm>O|_4~2;B00an!yXnI*VM>l*EEVem)z6La zOeZh^;hLatMQUJ9gW=cJqNKzIQzPT#n;IA03FXByZs?U2Le#XRFj7 zyjxYoT)qR=4@sb2j2t*Z0e}R;UfV)G4MfGcCxO7Puv0g{vyhX}9ola2mj$%2OBo

}0tGgrDP*`7g>8EqS4fnH49O_Trj(SZ&2P$qkI`amYSu6KKr z&D)z%Hk#G8hD)Q}6g&9f-48BEpOAirm4kdiUF7J13Ix?O2#G^(Hk<_9YAh1n<{j|0 zeErm^pQqbH>m#4Oet$zS|vKjJaUY=}SE zoysJSO}SnX#milTlRF355JMrsi3Rk*y%b0DQl6XPUX9m|nw>6}pO-oJyN}B9UbJy} zUK-E`0ko1@hDK2;b!#=AyKT6br8oQ&{)Tx*63OAD(V&cufKp4m8cy;}(mhx|dbUW& zu&euG&lc958m5=WQnZyd>*dmMg}z=yt>eRVTn%}h5Y#1PF_0I491=nu(*?m^xT>f} zD4U~Mg6Kzwkw2W=!N7@;KN27@xZ+C@eSl?z3mZd{Pe}|*C?^5blj2@28j|EIwc2TA z!ASzj#a@UsI~(g8b&{pdB3nFeTYaror&1fVk_t`@dviww1*7Vlv<#FFvZVKQZ3r4Y+*n8Yw(@<%pFTG$u!5P^-5$BEoW2 z$9mS|37PBgv8~3~(AHR^s!^%6HPx!RY6ENUZMPblv?`n4*x1&fRf8&n=};N6PK(br zc5l8k(VRBb=-Ybq9i3g{U8?%N*5)pQTBq;W)DaJA)M|7~qrt2(u5-6%S%&6%$xqNo z%n&w=MedB~!QufA1p@iF(=&3nITsYJ0F6+}_-4|&Z%3HafxpXL=F2S&{Gl-Z$o5+v zeK;I`_|aRoKQb;wtWIaZDRMW;`jU=fy_Ti1OzI#<6mj7Iy%{y-q3=h$-ox^E0uFQB z665kDiph6*qh8$hb@oMuuDmqT*EusoVHiHIgsn~-r!mM~vW-ENLLQb@k~bJ85Hh6q zAjZ4=(OMrLj}IGRtWNEdN1{aV03uW{>sa|#Z=o<1Ua?(zBDD_5Zjm&&A*MXR=H{SB zc{ds5`ESuAZNwIA=W|M|*(Dya03m?%Kf^(S1h@m=FF z-9JK^2Ossq>{Szm8h3o4wQIbybG)mu;qDT$y9%DDvj5;>Oc9}ANPhE)0#4V`Gn&y& ztcZB-mFNvpIq41Vl>keERxyS28pJ>VMmtAPV-7YhZDB^?KHzvGlv6qm1?V`+N*%|4 z>CN#cVV6WI<6qFNto^} zz{}JySoK78^4cId$%|dru+RP5Cc@Ieq~iScz4*{*+FEOJ#H4SNfW8f1>Zpcr3m7N~NDg*hd0mD0n^{h-XIOm+c|@h-0le^eT}e z7^wsIVEGxs&?dlGNYxDjG}cM@D{Sn=Lcz}aw=0j?eFpY2it~AJ&-pU5>>%I`@Q84FAmA=Id5L77WnfViND zzpMx2nAm)|0=bCyNrI z&SHk*!Yc{Q6Y^#R=gIjahf#v!?}=dCFFqxk}t{mt9LAjKm%m0 zZ4f?O(S_zlNI@0uG^RMOw?}zv)jbBtXlU*0 z?Q3m-&&bc;RK6A;wDwLYKNDe+7516~mb9n?DB9i4VT_{fyk%Olt1-Gi%c=GM}dF2;LSK5_c-MhD^ zQjL|3Po+{bjd;Kx%?Gk^gsssa`nU}|F0Dv>%fU(orkfiaRO};_M0g%`F6mw(-qd11 zXnn-G8E-`&W6^UP3~?V4m=EmmCiKV;=-k z&2puMeYH-x*2?a+pSW9pjq^=rx=Nabj&?&b8K0e;WPi`+zo-MnVCv8Vr0g=Sm1#Zsd{b@io2G z?hQrKvRkj#-D^w)!f~@4LW~);xa6=gfSe7p>@(VRdaLY5IhP9$?RFs1Asl}0S*u)A zU2k)F!+xL5WYXxs(C2J&*u(u+lTll%);ndNh_k;48A_U+6}}80<%Aks25XN>7((#6!`X@@FWFn7EW(Q= z7GBIxOF4ckAxARq|Aj$!IPO183}asl#3q56M%s$+on4Mtr+qaJ^_y4`?AzBj(*oPJSAPy=SV;2@R)3#b@jZ#%Z>2g%u+06K< z?O`@QuADxk$G`57{uc3!onJ6)->w>Zcx*e7#*JeRV=`1#=#L0XcT>Rt5PY_zpw%uu z{BU@h9ar{FOIA?M?Reyo&~$naenaa&xJ0FILzDFK>=}`_gE8cQFOS9?rg{o<8$cS` z5=;_HBYC#qS1CIaABy$&$55%MU`&JM-|u%l;CDs`^$ATn47`pe@$(TfNhe~M-KcktB}Iks4@JkyepkpRw*P?g zRFoA_oGNyfdog)UEs)+TKkQ_iZhZa1Z+PTO1Oc&k>Z>r$`2?;=E#$@qWL`NeL2Y## zMCZFnvYH?&fkR}G#5}D-k0Ba~Ue;Cv%7C9^wN|Ctv;YzY zwSmB)UCfvdO}`Rj#(S;{i~{7o?;qV2^SZ4DWXBo9 zfmp;F2-^)K8C0{94Hz6)uReGNd`o5?d8d9CF-g9(BR_A)Oe9sLk^MNtI zsouxm6m1u>+K6*{u4JEhk)aMB66*!C&7(*QN>7BkrT?ywrAz9Q^n7f>?ag&cv>MU%(wR^_GoYBabZxFdv7vzx z-+o^-g{Z^XVZPkmvS(&*}lH23ar&itCd#1m4FOb z>*WkDR`Hqu6J>BpKmTJd=IL)0KH4xa@U8y-6DVN}j#lvsm$5?cAuJC0*~<0&gwjKj z52bJ}0+XQ#HV^Kx`3a&k@;L3FB3%jq`lTij&sVmB%IA znjhDiJ2-o|!n_)}wv41uD1R+G>!~=DqANG$$n0$2jW@njd7vA4GsJi;`G@V0@fcac zFTNzhDdrkws->_6M$+xu3Vlv9lPr$D!nWIg<}`oX0@e(UBO5v#ngRu*c`9^x2>BfE zpS0TTRuYZWpB2Y}7epY|G}?UifK#HJ0v@l5WDGQXm%FFI|#sj#yKa6u!ov~z=i`~g5ZGMU=VHK zF!4kJkx*fQb)8VWsr#yfslpTptll8kZ_TfeR8x~7|ITzap~=DiLdWt~n>OfuFt zWwyDmZ({BmmZ@p9)_N`*Z@%8+bY{oLy|MN{ebcr~(+!Q=W@>9aozskG&od$h3y%Kqe*NZX`GH6s%gOa8dIu<8mSn%@NVcU zV@-B@W^`L~G}Kz}9!a^!x(sH$V}tiplfxml`|I6X((dUal0@5qm_xbEhldR!-Y}-k8^0oLnjX zF8txKXuiSHro4W_jC8mY?9!G_ueY;Bd4f3q*m+U| zw;Vx__c^W8Z8E8w5bv!W95%3@hBw>wDsV;Vy_a3qT7xR+j=@L`(^%w&I=xQSv^#st z$7Sr(VAmPyRP5*KdQ)A!O0L(+)t+Xxd}i06vqf*Sge;pRw#jVWbCmED{MXI5nHcIx=zD0frp=QKd-(8BM zQ2|^nt+ z%LTv-!DWW9&kO>^yu$lZLgok<1i(33g2I+e1{S#(p+of_fd+DO1!s144TKI#+!BG} zmv8F5=_bVM$Zq}MP0ZQXxDCfSyiu|m&QcMbv{9H6ejZpCT9#(sHI_W2eOZJiQpfY77GzFP^O zBfKJO?!68E*3{a^V8bXeRgg6NNOz6mNJCL)EGv#=KL3OBG{?!_71yf7%ggf!;A;RV zm`7R}2FOxe{Y+*$o7B4=Nj$92jpg=avwL#+i5-V0CZv0Muk9P#Q1iEmzjfF2^j>?@ zwY`^2{Kb`5{>8+qV_=~x<@BvO2KkInf;KAbG%ujCaJtATq;lt^d(yksZ%Q>RWS@{5 z+S9wP-<3u_#EN!fEU&%KC4&ny^x}QHMJ>^b_m6T(bmQ0gHjJaq@W?b!b~*IJR1cg~ zfLuZyt#nsGIYVe#XzB4}w10fOKbmC49A#G@_f9-f%) z&o{9_2sg|I&V;e_yGxVI2cDgS&1>r^Rd}3Z|tL#~k8L zNV43pVaJ9Ir0RDDHpbG?rJNCVC^wPAjU697`r!1~RH2w$${MMN&l%v+3y`;Xt(gy( zD`E1=5}f04Dq285(6!{if&G*+zdr-oLcp2Kv3@hyf9zmaw>pjH{;19jwq~yrzp*>Lcp2*#`i+>&IZ{fWfzb78(@cY94{T<3XzOKgEbZ&3H>x!0{hBIGfjp09QaP?l6-_n!p zXzxyZI?R69Rctsob7_9>hCs_+Xw;Q!KOy-MM<@NFoQTU6xJtQD0yI*Ol*|@^`KHnY zERvhf_}pR4 z9N3e&M^FPRE@5-|a)`?N&CaOP8F88Y2A>@yE0u9I4eTl}JY^Vx$Z%lz2N;R`;KKRM z6*NK$k-xX(Az$MYX-7&4ZDubgH%B*YnAo^60v^d`t3{cMY|LK;fF=kMnnC+>&yz|1 zwbX^D^6TiU(an*Kr>*j4d`=IW`3C+`#a7YBRo{brX@Z{INcsGPsHa>q%EcfjM;p9E z5Q~`pNKu4*0nkK>Tu@|}OO_Dku*$9Uq4K8e8sAqe?t8Xae0JBa zUAx8n7rX)0h_wYs3Y1ggLDe40hCANR9+L`BqIBs)%s{np`ui6b2L=|I zUc{E@_c!4DC($Cvq!d_$wLu#e9$K1h@c!Y2O>5yB78Z^l_jo)Dk9+T(z1QP8bqa4h z|KXqh!WCD1+id=wb$Z(R))kwsxYca_)=jKvGWlhhsTzW?2U}F%U}DpN#05@(UuUHdQCA5jaC1A1SMKt)j zDL@0H1=5{|v`PVD5k>&R5Y|?rAxCY|$Du1Ic=e zKVl|e!az+j;!qw@1C{d(0tQG$rJ zK0ziz>3Bjn1DzM+C=RN6L=zQUV_v6!mdyhNL8yoezn(375XE&Bza!iakRSxuBFw#I z#XbZM>*Vr|*pUSk!hrc;l)pBm!18cVc>Y`Y6!Q< zKEJV{iUuB`NJAg|t`%2@#?bOL#eC*}?I_+5XFY z*{$K;t9w;dLrFzR4ufP?N)9Q9h7OMz=H?8bzz&aQz3JTmdeEE_F`{Zn}z zRAd^v2gFeC(&Hh~E24*Bom&v|z63FEfh`L0wzOW<7)sxvq^sT3ON(ft%10pEn>)=n+`rsz9(s zqZK+sBJjY*oyw0s{ykrN=RoJqjoaGWxA~$wKfklR#baQp+G8e%y%hn7_jcy|x@Q9tbv+O(v)P?pu2?VYknqeEf+R(tcR~v~#rNgJt z$X4WC!cyaq}Bc_UB6HHh0l#L*_j>p z`Me=FBKVPhqg4~tRnGM?)|4ZKC@YhZ*N~pw%4_1zvgKD;A%Cs>19M}`uUQk2$re#VL-n~+Qmni%ik}{)?SRkFXPDY zdQ)T-qyuD>@F*CxR^&7BI2~PsQrxWMl$=L2i~~23vUKt!s4m2lMIqdFriGHD4pC@y(P2l6UTc2;pBXWaQr^5x_+c=0|fCQ%gV zDPS*?Nq{g}(eCAacR9}Gb9lvLs%=;}A>nB<)7fDBU=#@hv70JNkOgLw0$|kT$e-i! z#rSc808Pa`R`%R)pz=mM*7H_R9Dm{kT}WVo#5@o>waDK_@N>!6!sB@4bXj`AS`dDM zVL*5pKCDiQY`?o;X~LkOCq%0LjplW5(|a~$Yr=_gX#cQCEgy`8}MQ+Wumbc56;bG-b#;*q~k;S z9NZP7X+_cdT@vqq&zDScj+JmP^ z9{?*t#{N&NuPR7=QAH5h;Vso=&n5{8I5C)RXtqfCFJpH+aMvir!6+DyW>u1I{FdP} z>hT5^77DOOjFV?J~)r-`U_sC(M{`iNk&q61Nh*Bt;i5Fk&r~Pmo{ht`BEzh z!*>726N8@{ym?@~<~8lNnkU%R@~fKuy&HZb4Uyyv`9gy?56&T#L!r3x)Lb<3 z3LDl9-Oyh;m#SJE_aD%L8nI^eco^t&Q#K@`A)+lj3l(byPxtJDYYmBiuuU?<%HzYC z#o-LH;YZT_K3~5Zv|*FOk<2g~k$ey8cV;q^h6f+YOd9>PkUs=4h%e-N2o!SQH1iuL zGgH(K4esmEj&H#F7T)3@s%@3~fOi4!2GCM^kU$(vT5KROM)NQLC|jInZF#XEI{Ap1 z5=;|?`1#pHVPVAkt6jTh69G>|zsGY&F`o5!vPe&s3WzL+BB=3H2>A?SiOKAj^y51Z zj`)-_>RrEuQ_t&~cF)8HJzk%4SBBe6H=>PKay%RAN4J*mLY)vJpPeazcPKT6gT6_g zBcX@?Aua!2f`zkrOeUPOz@#B_6_^sLp~kDgh_oYCv*|VeuYc`-ZPUNuDe!CQ+sgUF z8xGHHxK;Ttru{sGxGDK_v!R7O=7^Siv0lU}e-@TZmG zRAt?#QoYG!Z|YN}=Za(1L2g$qgGb_PfJfM4Q$(HPbKB>pDwmcQz7I%dq097xTURVF zq(_!*3BD$*+WV^WqDqyOM_9(kuov0dhY&1%%j;Mj&qYVSP!L)S^PpgQN5}(A?l4@e zPJ|e95l=?AYYzzSHzZe|sD~(6=Q;7xMfu#UY6|x8+gNMJ&NY?y-GdM}1Z@Cp75hf# zpea0P9@!6Z1pA-H!TIN!x_%6vbR3`(cbvqYJJEO)P;^J9Q1gO|I*ab<}g zxIcg@cHT|-XWEL%}=nvrhNF{L~eX`v4XToRa77NlnVda!goI?7UFnf6J(L9~U za+_A1JKJAsN5zSstUPZT|9}CMdyC+fs3-jPV!6ZSBzdmfWs6ggjc7MN78@*`KRmid ziC{O$R9TS)Wu8|Caee^xx=JM%)pmc_t&@FLcc4Jsuzv)*qIp=VwFu3o4F&_GH-!)3 z=fW!80>Y!Q%{LZDZ-3zS(YyC5(x~#ZZu~DcZ@Xjb*4xKEHE%gVz*HJn8zCFMh?qn> z^t`g?y{&RzSeiv%DnjbCUl=DtA_Rccr(OGZCwC8@^T%rC?!diYdA9H+>d)o5Y=D;qu_mfgF8Tp$WXT*|7E$ClBufM+RI+e* zjZEfQp3zfOEpuk%0bU}LKd==Xwm`8`)y%CG$0fWXY{52Iq6D}`m|2C|lmW7FsGcyP z8ajwT_^L}$a;(M%^?st3RML!Ymq^AhiDJ^T;>%JIGE#7QQT76|9CPzGZ(>?yGi{_z++UtUfk{uECjp(-~QuA_wGG< z97SX4`hbVIgxM9JgB88 z9?W+_1Y_vPKw}fv0{)@;Amh=2Ix6IH#@73HgG*78oL28XuK|@*&OL)t8XD9FbcddI z(kCu+dI$eRdh1zyq|StZ;+G(0hJoWA0BqWY8KUHKl(sTlt*w25Q! z$jaxE3|9|cdU1InX^CD47rat$fgyP2xYKWxQC>;kj_gNPH*Lt!KH0I*21z=F7v zc#G6Ue25J|P$9`t+X@U7HXueUf;l`F5|ft(1%XB=Q3qAFeMD)C9rED-xt&VV7aVj5 z3jG=l?@?Wcyxjf)v#ZdH!fY8w}9SOh^F{)*QF2R#Y2^9Ct4zGr@(8Ho=v%cg5Tzu<3B zKGx9M)Qkl8st>+-uJ6h#`@j^rd>kuU-ijz2s+AM#>xzR}RvsyP^2N$Sd6o{ez`pU4 zr{Y-bdrJpGN0Iy%`Y832@Fic=Q&cy!8uvB&N{J!*v8ub2Qv(CHB3wx4@guCo^>`&} zPhl!*ai{%(5?hHC;FF0QVJF$9{>1@M#*5zwd~Y@8HY$X0q?QRa`Zzy4xB3y*;(mZu zD9hw?6`qXpR(J>CNMdIw36(rbPCu12IR^qK{svDcQEKKC2+t`+8D!^FGr$_j;*0c- z>?O2&`5F+%HLk(xRjrgOS%O4~EZG${2QBP*{*YgVUx!7oNJ9$`h-y{Fzy%i>RbXBd zw}(iGjfb0CNu9ilaWrIYp^qwBue@J4T0rlB z0c@GvP+7-D287Nn=BSlt7c6QZSQ_-G3y*2FE93Oad^t6Z`Skd21O;Kh{Ks+7kU)AsEhvhLyy}%id$|D_ueMt`HOr0K5|IL>7a;iU)=f2RO;bmgOO_08{+w!&XlVjBfg?*K6%jvS-u`Md}cxK#PW(I_TqsL0A;>VIpTkGWbw$6m7<~Id}yx1 z%d=KLa>>9o+>7SxYlLN(TWi7|IYL5g`C1BIA<|O0QB0%fPrQhb+Ej(z{xDYw_U(gGaBh`ESf=v*JOyL;=;FG;hY08uV_n6$YAE*fAuX$3WBp|YWcYFI zfJRz~`B#hTO(ZP&c;nr3k+fcx4fTYRTdk=z!sTY`R;^IZFwWqetX%xC)@>LwOs?EY%z19(#ftrtU zk}H=qQh;y*7j;j?T&d^W_q498@-u@CQzX)t*BUX9N~|ixR|07ZMs~VPV(5}qCxrU) zi;FWg*9F~W$-eyR$iN~W(-aFS+a6lTrFOy0Nn?kOM#~(H?4|W@MVtQk7^hJ#)PKRZ=9u)v#jHyt8s@uI!g( zIrSmOv8*8tmZ#Gpl2ZVna23XT*N0B4r&2v$Tgu@jaRu{5`Qe9LvWj`IET{etTE>P~ z^u!~prXRa~WnUl?y;7U6I6h&AiIoS@12}oONhc7*z^TD`0Q~@(P1_n*hM0P!9pyR5 zc@co3gf4>oq-7C035#>vvKbM4jVqiOHp@bE05g#MqhkIE8#h&zM~f<2K>1LsooCe; z;0~_ItQnkeH;&1i!I_*M~-$nMRYYYTJOBNM-Dh1UuIltEYj1RT z8&lq&i{*DkACg@T(x5-qVq&;jtHqMF)O9PxsB*6tr0ZV7%y@V21{pK1E7bMHRaX-b zecu$Us9>Yd74r4NMu3l_s>JtD1KY`6CAbmDKQB-h6i99%!HY{QP->^tFt&+YN~q6jF13D+3S?tRQ`*2!V{jyvQiyql8o zu|2t%!K|E#p{Q}85XtG|C&QF$P@@0Pv!{N7vkAsYdD#0S5Hzv@@;zfd<~Zq`!)Y%1Q#olGX= zCzGZ}>967flHWGo-HamFD)@RknF-m~(hj%lbd9dgR{I65-fH;a9kShM?61+uc8ld~ zjmcE4KV4@vYU6tCU;njMFHI^gS5Vg{X{$%oa!s9?JsYoXHX&g^*IEs4GMl#eYd>EN zPpsNtu`6}#-)m~6br-%Al?=EP;CB9?ln-AIyjc!4imDj(J$aAOM5;^F2JKt841g9% zQ6{(%+)_A|viGQ*u8vWd(gxdr6Xra=zCcoHL$0sB&ePshr#C8}o2sp^uXV=joZ1K3 zHoaPJ(I+Og&bn7^9*?c7p|-B>|D)~Q1KTLid||(%t7U1dyJT6GW!VD(v&7{NNJj-!LU7So6;1rl#f!HvXpXIO4+Wr<*+nO zDcj|+EbVp!%UMzm-H*fK;rl)BNVXgTJ^ROJOEaU|i((jjP ztc{vw8bDvzRT{0u=n&}$(a~uAzG!dk6!q66R91^h)%p#+=&`M{c{&^I;$7>mOa=Rw zX+)bQrfGzSlK1riJdY#L&yuLwZKxaBffo$@u=7_{ajaq32d9nP;=1sR2zCd1dfUQI z3LW4!dcI$?xEZ$b7K%q%HQn>)`oVMYpYRqDVqT@N``V09CYS0~e zg(G&ObPmi}u0RM`(L>w;r8nB8dy^o+_j}>RtnXxeb|j3(-B@eQiDUOPt2U!igVGtb03~-6xv}2vU{(t z+klJ6m;_9QoG2CyU&(A|K>?O_%1DpIYpvjlj4Qy!Lvd4-ros;Lr)*dSuUaq@M~ZrM zR`z>m)MGaLVlL@1Zzkdt-4VOqs@MCXal1F4@IBs7Q(CrMKSMBKnMW{6u6A ziZ0z5NfJFqc0wnJP9M_IYprJXHLEY0jQOmtNXF}ohuk2OL}ZC*52XiOPNhyg;8WTo zZc%z?DyP+%y%D=Pkk@HUyLnFasyx@$Bv=vBN)k{xzdV=!|HH3@Y`wxw;0!{(N2W2+ zBg!DGk|ztn>|(KDw6{8vVNHl_-H^Q^xoKeauHwMW>xIjjI|9+~vBpeExT#%Qr3$ZT zix23t^#k{oJ1!NrI{=vq`azn2yx<7$&w^v0#S%rMy}Xf!&yAL?MuaO_2du`#n3oNE z$E0@?dExEZkrVI&=lDiGIqH)h@qosl6c1ZXk?_%P-L_%FZQnW?ju>s>cxj!@7!Dh4 zPlWycu=K);X3w2>-kEb_DV>Y>{S|qn5`!<-hj{h+>W2PHwW*YzM?(?T!;ud2VA@R3 z3I-0`fA9l+WW|z|Y9uPb{Cc7j1I>Wm6$-iZ|5ue;N%cX1D*+Q@L&30WS+-pj2nGYH z_H0xgu8|4VkijZ8r!GI(S5hkKReUC77dwG>Au|Syw9*OmE}-*CohAudHarCTBR6u(>Am_E$0bqlqe+UU!faTzN1XD_f0Q#2Y9r&x{4KxshWkQPJ zxpuM$o1yT8G$tz~dCX)fg$k&QWA+f3iB7^)1JZSnf$;Uav0`zeSbR0kS7UZTueAzB zaIu^B?log&6s%fN5bWLkgNFwD-wRmsdCPs?<=%x?xj2EqNc@_XXXEi;v?-}>^TpQ1 z*iARF*x+)%SDkE%27!xdMso*-rbdsH^(LUZ!)+=KEUxG-knR8qbP$}WpFQh^>hpV} ztfUy@MmsxhH%kL^bHWB+)YK$x;cnHFO{NuQv*ejvdVU?D)hr;uRD`)moCV=00d9F5 zLj`i%?`FrnzkhW1kv)?!qf^>t$3^4^hb#D`Eq~S5_s=-@ikfTH)Pdp_a1HK-uj*cv z@~coUhdeS10~c2y$}9FWx~#Ca=G0V;PTym=D2*Yi_ocdZ!h~>`dkw?f-co0Y6VEYT z6o7>n9(~$I5C9(@c`s83J8fANyt}F{`40QaG12HeV|s+mXzaQ{t?Fi#>VQf+pmV5=>?@}F1Nf*le_i{tCpW*j z^~YQO`l`z{n(YsK$}=U;zty~|Rc>kMC?Cw#N^EXzfJ`amve`Z)&+5vbl%yN~cGWZ6 zFgyKX?$Rk&{Wk=!5A2qHy!+K%ue`GB)f(Ninlp|>xYmt|S<$Yk#Ai7XbxFym8=2!1vEJq;0K44pPiU7<(brL&ir2mrCqS8uKMhNf7ceC-Ivk>sJoQ z;gnj^t^tV>q~bVp03^mClsuLdV^Wyw3KZDNcPA-nb2*Rf)RAtVN6X1X)NWrcd z{h$;{j!)5|pf!gAM!a9r20}(L5HjzlT%ty#d)2y;-8$mN20jXIqi}W5Z0QcSq;#z< zeb@Kl)zYd6NHU8~#Os_W?T>f(cjX05@XrJHGK5k)tT zXQw^Q0G{Gj;O)izc^D&c9cV3=;R(p%!ZP+7tN0k(THaME?SgaFXcdl^Za92HAD1(Z z;Ws7B9MCf^nJe+x{>}Sg!FV0sbRMk0&cl^Hv0?uy7wacKIfW~Dacz?8vRx2tGG1rVzuhXXYzP)$v+n|u>>{RILrPaE60b8s=%YIa^TQB|4=VNPp zbPMTvh`YX0co{P&WV~#~h*&9OD+?KkMGQkQ(E=Nx(Ie^+&1wsvvUf$JSNHZRnO;Bt z4~7OMHbtEfHZ-vO36{L$4(YiQ(finz`;=y#&aAvoy7#owsMixPkM5a_DI>OD)D3*_ zR-}qat`st9B$d%1a||9c#68#xSZvSDF0Bi%{pW9X(}sKho~b=n>+W;A?Sgf;Fm6}6 zHb1f1rG&QR+WhzyY~-yYCr7M&L3Ja$jQorOyax?H-VmpNC?FYR zR#GDqdq{lctkGpY`?X?X!Zi^ufOQQY&8OwnHrPL0`00|Bu*=~vSyJIf5y&Ah6atJm z)f5mLLurfYxO6uK=CG+N{QLL&uh>Vw#_9M{y4&nBnOx?HB`dl&Y=Og;yf(N2vRy;I z8MIA)W*N!G8($@q(!^evynSnNEN>6E3Wc%4}(*D zNk~sVb`+`32M@A4f0SLHWjDU}6tk`U{9T`4i+WI-lH)sQeCGKU2x&o-E7GpHxd!3! z`F`Q?rLu;G;u|O{2#-`>$cYZ36E?%c(Jo4E_J=p$eDlmA0+wesTlDkNb)6gqjJW_O zwSnITs5?PM*)JK95ygEbe-YX~U)otL?!0wZvABz_^CtV&(ku0>y8iR@<>#+oMbAxv zx7?=XED>nS+;Eq*P`X+Cv(wy!_X^z9RRf-MnVdmW0)ODrayLRIBAiW1fj1F2_=(WL zU$Gn>FTF~hs)U1-Q4K5>+9_;^;Y3C%H)P# zZE~cbR2D{(+TIPxFE<2Mmu$W@s~Q?st?}7Ps{_&_wswme1E@l+R@55=r7hKDu^KEE zoxvA0IGv5*R(*q|NyI(m?Qk{5(J#SfG1N~TI2g}u5Z?@tDk>@rT0lcpBA(_%3Ps^LB^;CH-y$W6F=&S z@4s2A9n!g^2U%vn^enXt>IZpT{{*6(Fe7rSEAb@~*)oEWhjpxeSl6uUy=DH*TiC8! z1Q8$B>vZ{Br1Q718*Zs-SA^##IeF>0m{MVgX8epWRwI{5jZ2UnQmdm%quSRmyR^Pq)=c|{tKf+(&UR{c*PPK5ah?5x(NOHO?Iw9F1Z@*7XCzc-j z87_GVc-b%gtJ_d4RpV1XU;T6Wx>sUey$PP;R_OTPrGswU!m7@Uip!DIc~bWYT*%}7 zvb@@e8cDH9PgHL->W|YR<~BRW5aguO0wku@mUX+NXSTCEY#l9)M*VKR*<{$QH#WAk zyPf97MpKhE{pqyUSzpp#B|Y%1p^KRlUC5 zJp+0fP=L(QIY|(a$23SF78rT58T5G>IwI$fB6%M&s>80C4(#q96s_Gw5pIIr&z~GK z8~2D-~E#ox|h zPsxRl!RQ5WyIjy#U&t6QV8FtDvY}A-qG@63OrpdN?S!-(+TLq2AZPplv0qd@9 zn_BRGkT;YV4P|0_c>`_WPuu`@ybOgdnmbg6f(Mx*@L|t|O~r?n_vNAxz57;f|AB=+ zlr?Kb8y*VU#|_kk8rdEZLWn$u%Fh6XL5vU8=0LZc%#gLs#Shyp8a%vszJ*30@=^@! zsBH*Cokp)2P?%z z1%g{=p}^FB1@~@W+~-c06V&=n)8fN!lCaTe4+QK+#6~22MyohO2hWIB>EMSpVw81J zz9x_CVwNhzLvh&GMSZssS}5<@q%ae-gq+&7YoU8dH<2$*y*>9F68+81P1Y>`_Xm3U zTDkvQ*f+r>)K+=(XL=jP*)`BO$Ri6&8&s-_hmu-&FEnJN`lNPF&dM~3h>02oEr4}L zmNxK!n3>KP10LS^rNN^QIcIl`&j$X`-QxAObXQurMQvPfV&?TmwZ+YQ0c$<_-KN=E(H6Es>dm2lmFr;P!OV^xhL$M%>dCLj;nl%~VUOanLAZL+$Oz#S0Uta?5?V2u z3oETa=v=)~((jQp^%Buz6bX2%nxS#6^WY-#~ zy8`jSH}GrALdk-9O=RDdIfy)g3l=ZRNQ}OVj*AgxK?mmwB#%(@!H^DHA(_F@-xV0P zse9x2a43krPusA{hC?senw#6*Ew>|4Y}v{*oI{T0zz)kYokilXmK(@p=fa{@E{kt;R$C1YkGw|os+AB z>(PyHlY3|_ky?E`Jj1`J3aFdz`C7+P2x+8v}-p4x)_E+Hino8KCEi%qdTn>I#PpBEJNUPOXL<6}*88xSJbgYtdH;R);{|_1 zZCfXAL)%gn2V4TFF#RK&82)Q%YF^LJPEX*UFJ_lg)kun-ebYDHG`+8;OwfNR-3upA zm3`KZ5H&d2PRm6s3hU!i1veHukj)Cgf@rO9tJiowLm-pYoQuV3BJ{V9YqdT&`R!&a z>~6@Z9m(`(3ZZ}=nTO&2cY{6sVIpDb3>5zmX{GlnKie$~Wm5d&xMRVw-vO`_DX!+<_w2*#8q9~f<-6 zeg%c>OhAeV_-gAhnsbit?nvZmG935UufI4S;xI>*+Ox`F|5^ zg*9@Ud;c|zxBp5lsfhvbBm90|$qwMFCG)F=T6pkM7&;T^DK3H!N{^ksIGW&o=|2wB zITzcjKsK_h$+3iz=mMZ&GGjx9ZueDY_#)h;oJn_i<%usX+n?qm%36^-Y0)HATzZAQ zXU;4!Tra(rG(5wORPM#+aC0`G283$Hy$U*Dl%qicpzq1a(~|^KeC;&~3S(#ay*q*9 z^RQj$i3zZYwGl1?qK^syPYuHMvrPLOJCKuJ+V<`pg~+xiguL{H9;V&<@Mpd{sJdfi z`?Wv9b;-6RbEa2)HFX3OLhKv@C~f>7$v^OzFH|Y_&i3^5`~fK{<=@Kr2j$Dw4pW|FvoQtfZurHZV6pF+o1{E5{(KIzYGIOtVlsPBk6BF_A z@ff|N7;_4lLgD5@!O3^XyG5K>0XyA6%)KKhAz8%hEHcq4xa`6q%==+NKZRhc0%as3 zjWHKB3PGA_S27!BR6Ad*|2chmp`#GD)Hi(m#=j61R$t?_&CN}|fr3e=F&STw{=sK7 zS$wxo8dQ!pL#J+77|}J`3wxvXKl7>;qA1Ro|^?eKo~)T{l0x4 zWDBEbEpt#ca4Ry6s*6p=Peess9C$$i-?iR71%Xj`CJFcf+41DyAYRhFm*RcRCq@#9 zk6S+BFSW=XG^!#y131j`%`|r zD&v6z_5C3ql|LZ!QA(1b+AJgNDdC4P@BAN;@~c&7Xk9)etz=3 zb?P}*{>;?gy;J{#t;SkdAw9b97r*!g8^p3^ObFr0V-Cp@_&XHl5|)iSO!=a7aZ>@6 zOQV3^fn`cwTT-)SXhB*b6G#N`VCmT==#^0dI2qM?0zR#J^ru=MaF>Cxyr9tNje^qB z)MUB%J^x;lPKjB-0EDu%g8i*tY&1wc@_2m(>bMV@5Uk2887xg7$Qev2gZ&^aPh}_V z`}Nb_{rdgZg8fl@zVc}r9_2@^1<#|NEB5t1+Pe>b@`~+v^ijD@$TD#w=MS&rWP~+J z1ujYS;PQp(Qv40&0;Vr~zBfJP&O{GVUO3SB4IZ44j^Y~70p6E+0Ts9gMJi)XptLEL zkGxuy5|-UFG?csag$D)(?j9OStrL!;05?tb_DgVlmM!IeSmF4P)3-QKmT<}eIVlUu1XCDB;RCoWB>3oLbQTm1^tCP3rRV=#5G=!0Ul8f@YY`9 ziq9(HL!4IY)DZym^;#vwZjvozpBMRnjNGdSdDgLjt%6`gA*(W57eQG;h6BtJ=1M{k zY`bt_LfRBcPlK8|E$p41m0<;EXV0WVXQrpm5KM{VqvSq7xfiS0S!jlUNzf36$(p=r zM7;!z5?chn5hV_}M`^;$Y5+8IbZKl%s=yv_Rq1XJ8nPMV3AI%{D~hvNoiLsmA0K~y zV&cMt&?1-Srd0UMzI`Z*)MTz7QL9Jl&0jZZ2SF+`SZ|C(5{WM-uS#5bW#XzzS!G$P zdOv*d1l5t8{}K0u2(?lA6u=By05h>SXj7LGgvPledTtgTWzw z_mnSfIO6mxUI!p`bE z3U{R}SX>gMH~&U^6O9{9CNiymVp)@Y8KO>HO-2!p?8kh`&efnWL^io#i|3N~z2saU zRE^0#Ym0djLEj_RHh1L{ptE>I{c(R=vQ2IWGKVS6bX~BnmXQ6r4#p`arf>b}Ai{-l1Lw`nbGkJcFg)%*iL6u{6l);j@&UnMO;+ zF_=iCg9Nz~mU;Y5KWOrM3`V2DBQND0@m_Ll_QpJ(K&Ri|8R+%25WpR6M3xoE4_WmL zgM&vl!$a%p!kl066vHTwbH~jN=K8xb;-^u-} z10N{Z1p(i(H;9J`a-%0iVY;K}Vbt4r33(F&K-g#B9nD4e*nLrNJnoJ9>^tJc_zv(s zx??f+nHwFxWi89_@;Uf^M_bgpJk}O%bKHnu(e=q@D_@_+TLT~SNe=Ep%x*6sz9GKyFc!T`V=reU3{QD``jk|r&mV-Ew+I00Zd6&%ILV-C9FNom*Q zB)rif+9M=p@hAN+`2_2*nrvFP?iQSMGwlKy-7VOa{O;u3WqG07&xE|{P5H<5mAO&5Qku!z^35z z3(F{7#6idsy`s7SN$;XPDhF?w(2VF**{~@KGbhdgtN>03wS&G#H{;)fJl_PqTmCiw z_U7b(S-4#=4{RG4NC!M_x7U{*z=xWhZe*CDooRO@)Ey;zJFOTT710d9{qjm0_X3LO z(R$RPD0sbsD5~*6Z$!M-R(YS6AHa8MJ@mD3Vhye+2(A9qz?x63F?+^Z%nTc}SD~ov zHMNX+%-ETYWZT=b5$PMzY$TG6vX3wQ>^Cd*T7_9}QW>;@ndQua)}S&Q%!>L3rMYb8 zdqw#eX^)L|idGz9;`8{`kWFrcR6)F8++&VD#dTn`w<`Sv-NH(rqsA)dy{O?qKUga5 zF^jIGQ?y%+lcM>2x|B?o(%^8eiGavV0zHvTnj2@xb%R8qbC+L!KLk&N9)*Fwr=X)n zU8oT@3k?3ySZXnpDHVYw$btt_dnBEN<)#7`Iz!R5Y-n=h#xfh4e*^L_5Q1gl2jS-G z`CXCH+`4tZ?jgjs#C};b{`KKHwN4;tm9`~q zdjD=VU&&Wd^=lGqn@rA#Ih02JBUWc7a6XdBM9#Zh=g%v;UDo$r4|I12gt}1XajQ#u zVhMJ%5%S_{xxHI87EIrM3k{ceMnDi~u*nT_7)QCVM*2M_<_aUL022uT_o3kPzy-v3 zi<^r>!-dVF&z0=gx}v-}M%}uB1Pt)ekTX+&U4(4=g>HK&THM9H?RVMC(tpAnqcYo? z0zGRw?e;avRh^@W#AxTL3Wu7a++d7Aeo+98;CHRkc)G?1Cc$mDbwD~WIa>0DE`)sL z(Mk5OY;BS5T7Fk!<6X;HY|~x-(~Ug=f4=dw|E^6nHd(SGeuNeABP@p>VKU_HOO{dS z{196{!cK`tQt=Fv6X-)79Z1N6gy9?eBa!}(xbmIt<;%`Bh`O;L_E1T@N$CDO>~;QN1A7jyg4Y4)Vo z)!o#V9DufiAL0F<_}#B4)0_#J>ncBjzzP<~oorASbx~FoS5zlG%BFUVI6d+Hgx9%I z{_Wy5A(J?8O$q^p&@qNfvWKOS4_tD|^_Zrs`hyhx9J~rUrAHU9$Oe~Ok?M$09rieR zS@`vMU;vLm3Rh3G5hZ2L#dApKyFKKLkoF1cUI{wEnj4gWNm1o)IjveMEGf^4%X*<^NR$x0v;C$u0U)padd zy&-Kv`DpIOEkXWxHE^fo$#D39fOG_**pPIG90S1I$QtM}CM;Xdq+fj_cB6Fe>#23Y z*2$HdK8_US!RF2E%OK%CxqQza_UD7CV2|;^zxa!ng6SYXzuX5J;mNy%m)!x6UK^Jo z(Gjf3ccV1AoaXuWkPGqLJqhU*z@61BfVg>KtbqIqDKCYu)qZ-d zZw}O@a$B#CJ=NSy@+=^XZ}`&5FKyrpHZ^iPG6;W@KGyou8!=vW$a+*A#FPaqU7S%$ zL86?X=OHT_G$_!!D(%&NBBKHO)ZXhy;~Q?f_e&c(J|=y3gUN1b?C4nD{&yq%&*X4C zOdD8BXF=z)eDr!yd80fV@;gWW+-VLs+Jy}pHvC;Q9FB(VrfE}Cbh@$*S7g2-@a4zR zu3J%N$YQ|m%UsWBK8SNhfm>M?ju6~kmB`N6@_(!orF zAbsvmyI0%I9ygzH2b^Ibpn(U)kQqTGUC__qG5E=bM_ZY;t%u*#ef$W?h5f>R)(blzYdE5xE*4N8E;s5xSQ`lHmRlHWFwj*e!sO{#jw^XtK%Ni&dfE%5f!rQGh56uG=#_OQIlz`22GIWD`6nkP zIt_B!!iNE9HXcfOx}4q|in;rv#bhF;)lU?-2NCxbfJK^gM|j1^F@z?FXA4-LYGKQ#Mjl}Kwr9~w z36@wD-&t(@Yq?C~;Oz$!nf%wJ*SlT)BmJ)K(BzKEuffb!MDFSHNXKNPg(9#jpXp4e zJ2O3{*Rsu?7I!w(-Yy-CuUx)-W&FI&Bz0m)G_k)o0YoX!k8(RyAdUuYF$hbKs!I;x zwgNi@b7n0Vh2{h>>8M4e)+Qft0xnV1#2uo=EkOw5#;v$-{>U2~Eoyy-LJfOJ0jC(*Ws0 z{QG2-g7q|P0%WACEgTVyk17`G1dW*>d2(=5zM3*+WHE zr0qiWKFDQLW5lQU6y){8^aFwF;zAC2%jw51E+|vZwfPSB)fSif`1^lATl**Zd^nFB zv5U^l(-{(8lce$|oRw(T#Z;TE-{LtVeor7ekHJA%;gIAX<-C&7CzH!t=6#O(R zg2w^a8T6n~*kLD_D$P0BkYb^>7|I;gnTM5Hm^W9-`B_`8)Z(hQ>TJN5nzZ&+0b84O zotSB;H-Sz{Y+~PPU)|omdgJOyWOaKmlUWC`yW8a{<-7s>-0RX(UI@LrEc(=Xk6u9h zXPF|hwIZ8{lt;_R0X15Vkk<;YTEC6#N2_3#C@K;LOvD2&u3>cs$Io8;y-6O>3xKiw z)84)Lz5Dh_cgqWQ?LN9MG=9mlp8;A}3JgC*V65vb7@~N@KG~*`Y&s=NFo5B33C9od zfYcxu20Is!zY7~QzL6?4dBAPI8D>#Q52GkDyYXaild~S{&31P|tyb&R>djc`5R2s+ zyjgI(3p*&Rpznemsm1m#ZDYaN6SX>x28Z!wQ`6jczsuXi*U%<1*n*FfsZ7kIVrh^t zJ}bS%;10h>nq>DpN6-Cz9H+=&%K}SIT@Z7f1(CrNfM3!4)fm5O^6PZMxWleJlE2L> z%--$x=eF+sIHsd$$A;TZ-L|14I{P=hz9WS%GV@(`d4`uEBWcgpT=cT5BiFCoc-!Td z-?p)LSNrTUyg$O1SILiEeO`!lg?F;@20E&ZY2il2pY#spM?7~oo5pK){%zq6JQo4{ z6o@Jprun==Gwd?vfKwA=uR@K1H46_@G6NE@l!Lt|m<_jUFR%ZK!2;xqwQ;Utcf(JN zRwkWPU#Sr`iQ=|xW}Or=x*mAIWqjrcLH@`_SyMiL9WeeXOsFbN)((_eQFmq z-orpi3=kU=(Hv!zJA}<-Bqt2)$F{Jc>*`GVpgZ2vG2DSMZT@FVKg&9a0&VDjU{s+D z>AuR?0yn%`VhjdGtA^@R zT^?^&SN)Ji7~k{2={v*&_uVWGX-99p`{3yOg|vD|>$zj3l#cx-UEG-FW0CA9+93F)Z1waDkRnjAXL_}ONaD4u3rS^F;6*#%QfP2=Yw9t>&=HCFZpkfx+9!`W7pA9C zJJhkblUWz)FWmw1-nVc!gu#jZdnXd3Nw*vI%q_hGXK}M!c&xQ!Ct=waecljXs-ldI zZ~EZYXvOdebB}DeCFmhh+fo7|@+;F@0Jdpt)0ofY85kUNcIR_;!R_7VH5SX#nT0qD zX}VnA!(T$G*%t`-n%!=9#_nvgHMh0>)nPD4A13=e7O>dkkI#$p{0+H)`H^b23-R44 z#L~(OGD49jm(vT?_uS7)|Av~B0Wfx+K(mQ$&6Cwq9q$QQr# z?U`2(UAOJwYX?6!K=&16NaY$Narl6@`v6`GURhZw3)|>Y6gNm)0^dSvk%bW9otPye z9#20~Zk5rUOZ&GZ$~zui8lEEUl8ImL??Z1!j>*G)$<3cF?R<0x%0Y64TwiE8xOHTw zzto#0BOVwDJ+KrmU8na--tVU(Es^&Amj3qk*2+OxuW9Y?yh(zK8FNjYoU=>|bYTZ< zg)4F4>WHYI=hc-U11v(oI2k2IYZAhMZV77?Bpk!(7_O{2Q4T({Gfobb8}%0QMXP5# z9w}SBTDPb)D(}f>5-0TCF!Cc64fIm|>{;5L7Se>jO8TVDhw_iUn%@+N7a1^H=EO5`ul7K+WEm7LGgg3*p6fxy(KLA)%~e+_Vv024dl+NeIS1$jpU z^$;vkTa(GH<{iUB+pSyp*3j??Fh&HN&i!U5ycEtSE<`Q}+qNgSZcT1C4h@@kB)4u! zZZ{7PZFTvaPM_-;ys|Wk8y61$H zhz~`}g&l>-d}ImL{YiG$~17b%MIYjyc)H3SienbOj zGf&4NQFU&*u(NzY7{5^7S(wggBhhFyQ_L4LCuk}W^?UZ{nL8Fu7Ym+&o5%F|Err6C zyngKF0Z##AIZmL>=XH@=(c09RjGB)r@)$*P7d!(ON94d61Wm>PHw5vy)pl>D%na`^ z_HP@OUS-dd|8V|wqU06q@ERfm_NMOPIntTrddoaYYG|Bw%s}znfYQT%jp?53nCr)K{9KknZ7sZZ^^R&L)tn9uKoo3BihJa0koQbD%sz$v7-N zlMX8|#R2W=*EoK(@-j_Gefi;G<283mzdXs7OaH5(wc%s~)3JDiS9h|Z;rQYa`&w`4 zUw>dNyT-+qe^WZk*5a^l;&ACKHcn!LHMj1PkKl4@4`jGIq3ywz18fZ%94?r}_ypuW zVz#NdvH#g*dcSV@wfUZ&>8TilQes?XYRaF@33r+#DK@n)m+Qs;I$PXSGOf!0g4_8k zV;#^?LGqAseOu10Ec+qJU`A6a(d2;6*lK4pdh-RnIS+`|U?`o(*pLoM=R#>V=$i%^ z&C_Os^jBDs4xKktZR`?KPRvFGL)268jr4;mogS&=?@Oni$_e#vm zLB~v*rN6;fqynXC7REi0oB4B=_x+l3kpWmKLY|j^Ho>PEF_-Q-~ z5!#zbJ`hG`@+4wgxwEMY6sy3wdsq@N7oTNfXaD?Po_X_()YmL@txL1aI(8y=X5e;k zQ0H>4p|rq#uOut{x$tqJcj26xAeo4RG@&`NL1@JCNre%c^v(QR%iHHqKK|Q-*7@K4 znb*Cx_7?5@-ux5nmw$l&5_Vrpb+!x=)QAE^ z(xFojJ&>7~O}+RVw6Y>w-%;-DEO(rG>M7~pPsNM!{oMx5W;;fNHk<>2B@j?$8>Wh| z{1~o**^#qTI#Ajb-N91$JKyoA1ednW*tSL6Z2H85$-vy!YmItDIwJHWQjFx1yNx=n zI47DP{Jk$dm(T`q8+duw;r<@RwY(Q!s{-eeFNA0YU?z*j*g*8jCnFhlJ`r$z{mJgg zOUJBkH?HEAeuuA$nc0_JfhXUKbid>d!F@yaj3~Hw?gMTW!fDV>Xd|d~kp1xhA>|Rl zRj{^(!kDVn^>zQb<@sNJ&)vQ{Y4Og#y(TfzdHe0ld$+qn+ix#MnfqMS^B>MPSV4Lk zu_OJ^KdBN$A|7;PNUX>ZJF%-EqMwCL{HpM7vhHCECVX zq~Bx*&V1HhuUD_q*qk9vy+YaH{+>5F0U43X_WpmOY`;R;Y~-6j*<^FAqPF6yu)hnX zOI1oobO{8eKb{XH2umeiK3u?@?bQRODDE^(mJ16@FmN!Cl3i@_B@aj zF@#)glpacsrH6`BPaX}}U86$Go7b6>ffo{`Tlq72ADkM(ulc>IV<{2TxjfR990!hq z&m(u8&GovLB^5u31eqaW80|PS_o$iC{ zrbkAm*Bx}T-N{d!(Iko5Oena;} zi%iw-;w~)MCUF2E@5qi(yY~6YRsncQkWbAOe_CS4&0+x1K-#`f1RDXTl9_*_b|swX z^ATLh$CV!}B)w>M(;=>sGa=ki~tGyT22$4a5;p0*V!$d#WEi z4{bqM#|SA1bqW>4HfBq{0U6y-bO{7@2iOr4B%vqZ+)r_UJoXZ&1b*UE&&|!1*f7Ks z9o6L!E!+_-q<4UVER~>&mCF(KMmh33u+*L@muFCDehhmS$r6W4eeqEAnIb<~x#woSgVSL5ildv%_>M=dM7Kfhl!IbK^_(sVH zoyh^3R6@RueU(2v0r?Lqqx@R(kq`uxwq(Hgv6v-+vSCy)5(`n`DZ)ggDsal$mSd?l zERsS#*n+b7Swu*LHuT!1zs}p)zZy)vH}#(BIn$fR`!0i#{2oGcuY?qkSoQV_*M;Z* zKD^PMXC-@n+GJ?0A|RwTI@F|Z&7YxNHz7{6XCK98Y8UEJ24$Po}~fGs>T| zD^OhC{5iCVT({JYs)$)?_pm8UK+Qy)8fBrxC#k@Qj| z@BA9HjjB1eVk-HQpV2y~C(v7A1Ddz;_6c@^LeIZ0T0w$$>FqOK{&$G_V@de6RXhx4 z1uU%6A1k;+fDffV@?HE(cDzseex<2Xs-u$hALztnFF1g4b|bVt*;( zh0bgG&W$UiSM6>szfo^`5Owqw*cB_J z-&+4q?zi3DzolyOc0Po99;&o+e{JpLDlN2gKE7jI#~A*>_AWEB35PCj@spF~$;toP zb;zp0fvcME2d=YsG(I*KALYvrTZy0TLa!LsN45Zw^lsG+WBBTF#0vm zu~Jjs9sy0Sv{Xk5B2{(Fs`Rqzm_$8|-cURs7;zB^fO86Ze}!5a?_VNq4?TT>dfo*g zW1u< z-rhg(uK0`mL}98?ytXi*@QwI$nmYJm-mgnTkG}`KbO`-%!Oaab0<;Y|o*3=2LP@8o z!cTy&0UIw|C?r&`Bu4RyOFRqM0!8N|1ewK_gW!GT${#XTR0@g$)2r6ITn+W=o7MFV zF4uZ>16!#Ol&ct9g|Nw$tUTzcB1g*a3Q!P^K%4Ri>3F)2VMl&~?CBf*tsg{o?Tb1*9;0Nl2>IaiuP2wCmK$ zElRb{YR>7DakVxf2nn^4zA{^vex*(d-8GJS={;DEK?Q>B-1?AOcbQJ<5VZw(?o|b? z=up&Orc;Luw(3_#^+jLlSzE1f@U?Jv7%w#K8rvkroN-b(yX=Nx>Fx`&Jy%`TGlBEdyuaZ8hAo@` zPXNl;gz@wDZXIzK9y!SNy>{5KbJMXaEQwd>z<9d+(ysqg3vwE-TkujsAv|Cx+xYcsuPd6u;DtQ*G0R# zM=)@qY!!I}y_~6Pl%J~FBmBBn-GMH3S(4cvxNP1d1wsPj*8|Lvr^GH~<4089MFWQGNU z6gfjw6@&{$mZcDnn70sjl~6aCa&Ruk%*FW7rlDAA!9T+?O&z^$M06D&im~;%Xf!to z-ofQVaSELv(_|%I3+d5vS=6v9LSu&(N}2*JtyTLPdF^^C+zvLD1Q$&#nw!f#x!~Jy zmtwejTzXr0=Uw3o{93hFk*_OVcHa!HMLu~s22{i2&?({(2x;=klYs}Fh@A3m*aXAj zVh~>CYdVBjNeFb0K-Yw&~w8FhooqRog0=;KAm|6Y><1`KR3i)ST9Apu>AX< z{G{t?RD;_(5_pa$Q7h;ZuvFn6?2>%Nek$eIPeDIUOX1|y=+yDYw~bDbzYy)Jl7ok5 z=Z4WV4SykgVkDK3$(yCx;28`1*%SBRZ{x;7E*6vCKD34DHcI6~qlMfSVfUdKVP5+9e++_?NKByhA+9CJcCC!PD`Cy9OL zlT;V-{m9RSI2dG&s173o9|>qQ2*N<^&nD!Uaa1xZjMI~tW|C+3*qPBY<9O=>)52cq z+y(sQJ)^tN&|hG5n$AzMu{`!x_1n5G)Rt;YR6G{EiH8RiS+vYgPJ)dGxL08uzoYv# z1e?+k+-Dcs3c!=uG&y(R&j@3f#vJ7l0CHh}c_9fm!9eeTDG1h5x1X~8m%j?}O z!A-1uDEO%$d&wJrG4|q%_%e7^sHM3+);G`^Nw^5sqvlUu%m-SfdwVrGF`^#o#A+?N;g?W_wF5FS@-7YCA+a>*V z2P>JJ;ntxw9lDm*@WAz!F_?q_C=KA=Wp|&uL>Qr~xUZ<|}F4SG%HNQj|@4Gb+ zcyah#?A*B+i>l4$8TX`T(mmLOt$}R;_TqZ^h<2?hW&UEzWaWPbJdqFw zC_cDiN3L2~#Y6r@BQjxg$ZXmD_FXjVEmJ2Z$6ia)ZQy@mGqGPY=hsH6S>V--?V)mpFF2%YPRh0DZP z`4#EN5c_?t<(lrD+~)LTn+=B5Byo2k*e}ZzB+O`-kO~`J(qB5;T5kvnsopl{zpQ4T z$cHVg&B3l{-4&ewIeXjDR+hd&WurDCb7%zlh(!Z4d;}PiP(HF<)U0`2Y^v)w-KU(M z?o*jl-T24SYd_U3On+;m*S_J@sSVY)-MjHyI5&;OGJhiRR6(0yrg}y!Lnh2J(mT?7 zLkK#0PuMyCHd8Y-fHZpAy2S6A7=B0O01SXx<&g9+@V6iMmE5+feG;b$;y%|4?5%Cv zB$1t##_<&m7mQp0ydBmYOKc++W||ygrxy;JKfUBQJF%`qFhu%20f{~00tcnR7l~9( zMDPR|3k_ICK|`#fogqJQp@RFA;_xZd5=X$V!ZFTv_PAgGy1Z0m5k(``0)gG1{!wHUN!gFf`*RkwgnsL}PwHcw1VNmwq|aP3K!GGXJE9c=WmtAeX-VSK(PFL z7N%o3ABEjk;nsv{Sw$fmy;X2LveQ;Vy({|Nk%fVtSIBEVAn)Kpxh3tO*5n;J*1ZevEe53WrEW z!2qY$_`$V=H4Sta0NRQ%?RwGXXfz8>v#-e#F*upS5Vkh? zY&Hh6e!IP~!36w#z0T`Etc$wdZqcapFhVrcV~Lr!UTIM2bZUd59v_%Or>$2jnX*Ay zZ)Wu>g|=R!Q8BI3sl?Z6r&1%R99o6iP_Jn1Fk2Bdqczuyjd}%sqmH+l8tqMDg9S(l zXR|1_#+3^EpkC1^>TsXc%ume#h$EWy_*U3jgNC%y>bCe?{<3CB5qBC4AseA8Y$1c_h%1IPWxva3 zaa)yXL$KAhf@H~x45op-ftbgLrz?v(5FiUhg1HkQErRqw?`dX8rnB&h_$uF45Q6g2O8{+x3;rSL`MzntvxzjPiwnjG}V&iCZ`T^`pBh%3UVQ?UTG0DS?a>A#FShTo`i@du4ipNP;J1weRd%@CCCNa=)E}u8gP~ zyzqFq?$?O%|HqK>R5+tWo@pE=JOb!@7D)HuR0r!sJVKU>xUgZ`&h6Z>V`sz19UG=5 zw~t=G&TcY3d-C`n{@XW%jXQTrv7I~bnSikR@bST7>BZ>pgkt<fdFv`xC;hmr)ifCVR-uV?U%y^Zj`w$e%iG@W$AJk#Pa|3Gk&nq$sKzlTo;L)GlK@Z8oP9qD$=#KpFu}zN_YAz^!!C5iX@S zl#9Z(2%ieOmDXnS3-U_%K`z>wZfNpZ)7?(Tij>XQ)R1na46bcRI~Z`RNZQ+6l|4Al z)n-q2I|Hq{R9iGx0<)F5#VRkQLpgH_j`UD%EykCT_H~hOf6Jd;d8t`=XkMe zHv23fqjy`RUGf@r;$Je;b;pif2V#{sbt(B9dbaQX2=Oa6Xbg+7ch!eN6)7P34JQs< zAl1*}vB5A&+5b3m28(3}2X_t*W)Z34%U>3yn3a$B1d_>tRO&yajlNXM#~#9xP0>+E zIdD3+H6I<$`w;rFH77g_iU7PulfL;8$~7W9>`U@C=f=H013Q`|BQAbX@|Gwp%qp9M>!xSa#0j2sTNZi)?GK zD-?p}A@}u9pq$rXB<1|c@Z69{5LA#28Mbo@TBVVxlZ^Y}PKsF-ATT0=6tX*|9E2X8 zwX;|#?X)xBefpSlxW5o37K)HpXLf0$aS(nWVNF!)GHSgcV<7Uc>5wzp@Bm0Xo7qex z(75WlRh?J(>cMr_zH{I8A6pI!_|Eovb5p(Viq7TH!T{HgWM82QPnjazG-PHCVva{p zmjbktLi~;G?O$bf$=%ztqUS{R&fd0D?C2YxZa=|nE57;7KVzSj4v+I^BJ0}}*U<^T zY8}}RC`B8F04}cb!5E#qvX4u!P?Hyq@i4_A^$v3Dy;R;lIjFO$b-K}=(<3^y-l7uheQE+M`t-TgpDpZfmdC*cCd5MbV_yb*LR?t)3!`uy-EY;R*-2$gAiJyFtYC~^6~JzeVBhL^PwEG;((Q}opc=Xtik4m z$nT(uoFbMs;zC*I2Mfd4-CpnA;F%kWO~=>?eDF$l55@MzrxF7o5$aD?cxv7B{SbS4 zf8~H_fX1-R^mNeHfjrSOq#;`H`z+%O$o|IJEXfXPfe?umw>V~!DhG*e=Un$9jl@Z$ z+}Lqo%4`l8(@bgqjoo$RAKl+-8zZQDOOc96e^Y+N!FDP-@3iTd3+#>%kL+AY)4)_BmxrI*?tIQxnNTZkA=Eyv*Lon)K(tp@QKhYrUZpn zXR>*NHu7dn^y*D!CjfGgw%294eirNk;5E&DV$fL|t&O6gw->{5ldWE->UB0+Ek=ab9#d(KTtQFLavO>S;(l6#+X z?m5qS{{EiivG-Z7^O-Ncc;=;iq3}v}8{AWgpC{M~MOMzdRVbiK(cj;}wJs;SIJ%Yp z!~eto+2+YDlW%O9oD?pfoV@L-E#IAlaZUY=Y6pj1vgl`lZ zTsPI*`^Q%sx8GTNHMtlkXxpq&N+nSp#Jg4WB2ViC<_VA3;o&S zxyu5pSD(16=AeA$1!V63?e?GXbEtGs&Ay5z-o&ravd%rWEpa|UpDg^|6*WkkHD2+( znKY5CrP36_nnxBpjDB7_l<*Ehun6#Ico+&em@4dbkoiJ+p;7`&e+x?y0=XP&QU^Ui zqe~i_mX)Ekvz-%zmJQmNCzx0z#EQjbon6SSd_X&}%@6j00?y93&6bE6SP{!)EFazK zjeGH!M%kXbvJm$)wFWd77nd(s5EI75V()DiD|4&OfhMiVU~5fStN_ z7x($lq#0`makP5wX@(e&XkY+9BS``-PhFc8k`vM?*z~MrJ^dREBZfj0AV$N+?Ni&0 z!xPa0j%-}J>G0uC4jm-0NzG564r5GN!UNbm5B zef9kHC^U;@?VEY_^K}A#e)6_iaeln)8XCHXWtHQ~+g~~Tj4`SwjeR;spb7k% z4~9IHbrK>GqK{{mA}s{qB4mg|+=f}T9k-Ew&J>jI4K})zcl?X$LS~nLN3gv;i1?G{ zRB*eTQg+X3sosjim-)NI1%Og>XWkd22kuz#&_fFle0zfRE#T+51w3&n z{62O__!Y3}k{KCHky0eF_K~3H-g7$pl+R>I1OkGdgt-b zV?@~my?Gl*oMDr%MD!iixgrd(ep=zI@Y*3vSdDPuhEpEvf<2OE$+D{AB}2GGBmiR5 z)CnFa@1&`H&@!hpFdaA{u)lJ90FFC>oE(c0Tb{c+qMYIhzQsz+YN;2?cTUC&f(<$4}x zfnKbn6`4qf8U5TFE7ozYR`6n>T(t6j_Qeg8db`1pi1&`;YcE#x=&Oi0?;!OI4-WBve`bKk`PZjGDOT5>J~R zTvm(tfludndi^cXv|()3Ia_>}dS-_kx~iC_8^9j4*4&1%wFF#<;uMfehY{5Ta}LIo zFue7H4+t&e{rA}mcZ?Osioo(H(r?cGJAU(@>TiHaPt^si#KIiuM;`g!;P<|F`Ibi> z5#E0oNn$Y|uf>#;4?nEVhh_NP%@qMILshhsl#~FwAX7FOub~c;(F6(!nZ!dRKtYN^ z{!}|W?zE66((VvM*Zd0epjWV}IlUq{X#9VYpilzL;6JB|@S1Ug1y=Pz4 zt$xY`6>aP(56r6ut%ppu*o@R@8)z3BW-~T?WVlYQt~To@SbY3%%{Z(zOikBnpfOZl z56h8&-w<)D#>uF2W)77i(0pzguhy04ZwuTYotO#Mrs2~lEqiD-L-(t_5YQ}&|tV> zc|5NC(*c%F#Fwu%2z|;wcuzJMaJaRVrT;?tIcrTUTWf&ximzE`Ul5j7YM`ru3lVbR zIb|0xFlG)=LIwwcifp9@5r>Kdxr4AIsgOT zzwX{2uA6u67_LR~Mwxd~#0m5svQi;+D$Ok#z$u``B}6$4O;~a$R)?E6s00lIMl!gL!JOB^b^GvZ=rK_WPbnPYwx9ycLora&rj_AfT;)RfonobGBC;QxfS27w6pZQ_{Ii-X2 z-pO1ReI(c)J@dwkkzf+wal21m;=Ux(7HeCuWbU=H|FQ-Bb63fObZ|~vv+^#`<&5@$ zs1UlO+u%r6Rq;8i`u^%@RbgK;d!Q~oEX;yeaXMi{X7ABfaWe5WVY%0#Y(;ey2ixrM zDwnX$Ye>E<`4LH{BjkM>q@Z%t%ve+JV!*$9)ZgZ-9dMPZV|mw zP%FWg@|B4WP%IBwsWVRRYncolFjxx}uQ7|)naLw?; z(_RI>s`P_thnKzo;2My9dzzWjij-!XvGqD0Oev?+X^0>yUsuOWSw|tSD7U*{rQ+co zu<@Z0v~+Updc4le)ODXIoKWJ}2scrXS{X%n8;UU80qpKO?oh8$)-}`!7+Q}@i=od< zXQvrmi6`2O3y}hY&Zt19yYp;ChSu~G>xZ&KcnEj+97@XJ6SBX$>83|-x`|zJ(@p<4 zG?W<{`nv0s?OUi~7-&Z+!gex>!*uvsU{uyEoj6M|Y&$I0Vc5+~GUdz<=)vUwm=6=i=EtJ($xZ`<86Dz)emGaB_-p$E z6VOg089a#N)YEGfj-@dkW)_76-s;2@m8rlV>S0j64sC^P04B~8t?W5h5Y8a}m#3l? zduW5d(<8i}9!5XO)4Km3bdNv^AO0EEMSd#fC^4e#sqM;9Y+l0*7i6zp`A}-~+L=Xa zTr+^byJ+)ldSH4!t9?RsPAJZ-8FNjY%1|EA?CB>Zt`U!+wgW4mH0uZp3KkwO@|Dnj z{GWM;Hy@4PLxIY0;7^g6=wzP%om88@X(YRBSr+$$)_8TU&%8dxxv7z;(^t2*Q8Wah z>{D)F2z0fV=H&0aKC;XM^(WO-uF~~y9YF#WGT`|2$I=1?d^;7^|1qLFQ|yxrB1*wU?ctg(en2WP*12hGrS*E z9aZ&n5{4AlZoXn-e_z=OFXfD-=4Y%cjb-L2UuL=-UbF*x(Aihfj?b~DBdLV+Btq>f zTlLBYd%>f)**lMI-wyaVat*M1u)R&NpSjZ~9Lq+|9HN85a0EApf+*FsnXp?Ou;bA9 zpo-03Sr6eNb^vV^kuX3*07faC$tZ$s3#AE&kdOVhuq_@xep*YV0C5|aK2n`Q9d@CUp6QB+`AKf zcQN;n2QdTGs&0_I)C_yL`=^sK02)H&gUj8iD<_aNr`0gT@=5mjo@YKlQo^-Ca*Kr+SMN?&iKZkokz zu~>dc{X>1Sr{1#M^Ur4U{)R`utI&zEtIra*?6Fv0vbgrR{1(6WB~!w(-}4xk+tmAE zMhrb<003Zo=|)tMEIh452wh*gAIitd$0w2Bu-fA0_v_};eQ{b#_vJsC__FfxZ|db) zvt)o4sdIJaHThiqeb=R_jOA4KP1kn^U9QQl~toY!B-EaKK`n!K|=Du>wPevIWKoWeYq4N*0$^a15W|b8t@_!zcL}pnoE4UHQCW z!$3~m+1Q`UWd`(_jD8@49YZ#27#Kn#5-?(g-Fd^!OXe-PxduPDc>p_x{HAQS`m)Tt z%w^T(o$tex1B1>C+Z*ZOcJifJ(>~zvl(cY2Y^plW5#T@@CQ}`Qfr+p+f$RbI745Z~ zI}>beJZ|%PB5s!gkUe+A<6%4CtsOiu0JnMI zZ52-_pYpV9o}A4n*Xvv#R%88vv;s{R93&lp8Mh=&s$M;t7Lif#_&M701pjebIv^c9 zNE`P4nbRhl%_NwxRo?AfS1hbAYVZP3uOj>3>Gb7;>GYs-3g0l3VgAf->g+-jTd@9) z^+ka#`1UpwoZw>%de<=Yt`g8D;ZIK3$kKRSPVZGIdAjGw5waSvd?0CauY7kmNOSy=8E)GduKi$%An5{&;TO zQ`l>8MU4jOxlR7@X90yyPz1^wqA0@qz`RH(bc*7w)#hrC&*#zE>Wpr~oqz0c-*rRN zPFHm_lIoflzjpML6Z-3omu%c59Er}4;&Ge93Q)$Ncj{%^L3)}E)O#&jA&#UiXeB;%bs*YqmdL;=ucA(uo+RkVY}*Up6& zTFXg_P_MxS7k&k2>Hz*;r425oJk2K0zuua)sr2jV^bLIMECS!Yi*q1al~kuIdK-RW zhnDNkd10CbP5bQF&-)5;G*=iN$tT0%+|G@ia`&k6Vlb<&Y;l_n+%e&>y>=ju&I;{;>JW6ACkx<0-tFb;J@)j*tn}jr-l9le!l6UT z>GQ6#h$*X9t$INye)-(2;!a?SHVO+VmjqejC=W>WB~YPa)x+B!eRR{N+$v$=3oksc z9RH662hW>FHgIEP^ne1CY=G7-G7M1)Bf*B8&m4Bo!>E!h2O}gCLTW4=&t&4^v9)92 zL?)AntYl+;PdFBhc)e#1dA;FSEQ|slNhRSAzA#kC6^6(*&Rko(lO)986LvOG zf3GtTaNb)Vc)2)c%;$|`MY4$RxNU8~c`JQ#D=k*%Y($&_9=`zQKYd|h7@?Ah9-x@# zQy{a?$l2jiLSj%b3PedzE#(#N{mv{ zdoWJZZLA$x03ArcAkhhL?a06aZ^a^Ta+HOEKLP2`9p1KId6jK@;LMvEmq`d}T{#xI zO4$^07w-^;X{-F(Rcu@3ng7dNUnK<0e2pf4uI6a?ASotk>{6#*(7a9dd5V{SOVdYu zLMA)6Uk4-i0Ali7UT2bTQ;5+zbI9#|WzCvr*%U?cDZL)2m%%X6-cBNLX*)20cdri& zusKkKzNq{3Q^1}}UeE)NWd*bp;m^2dwH^{u6kI-mwGeBzl}{2?)T?qJNvQ0pgpi~< z^xAY)5CCBmO-s784&HdMc`*9@C?*)8Kux=pR$I5B3Nbr5NI1HW29*L-Gj zX$Li4=c8_;=dj7k60FN)de&gbNS;ZJ#$xbHiB4wXLx=N{^0{a6{7l&4(Kt9OFhIaI zN>i5t!=dxQE~QJe_t(BAc}<5sM)#vmuVxTJ(r2Ibf9Rc{D=9}=7slslr#OYWV){w1 zEn_e|D_T;|WbT2Dg7}7dJ;FqxjITK?oup(I)j>kS7~;`^<&7d*!_#e$)Ha+($3A#aGniB+2et=xpbMH*fQ)=su(^=i+`EwR{^v4cTCQIbAO zi-D@>JAg6oRJ~;ap**D>-skEy-B^{|&R6>nKwJAxDU5fx|RZR^tTsg)ThqlKh^8$8U2n)An+@x~qKUG6})GHjAjopJ=g3 zyC|nU14)VN1u9)M=WEF70ltA5u0ET-wmZODddOD-90c*Joe^XwbI;@d;Fmjsf}4Ob z2;Q{-ybJ5M)lun4SEi*SJKlS5$C1j+QAK#~J*FH5ZRd1?-&<$i5re+~v8LcT-%!1& z(^(8|@sBR+ayq}EdedLcn)T#lpx(J~`Es>?3>YiN!4FkSJ@>^-+XJkKYK1685q?lg z65LTjrXey4vS?v-KEHYkZ61z0ow4wWB+#P=wximIUwNfa*otbgh1IvM$>-PHwz|L$ zw7TrAjlm^%J%|DxcU{)D;>i>5FDTukmp}tL3pSS(71z<|K{6lZz$227U~UOwSOiX| z8c;(}!VbzmsVsdAJY0dt++lhQv6MmJq-53~~SNo;yV4jXMogEo#>dD$x&jTV#9CRz*{n@ul@`nV|hqaLU6%%R?d zo?R??t$Mw^!7<;_XwmB}Ui+2MU>XwscvGvVR`j$6fLrxTcy!dRqJ&|qm+-A3>uEB10+v`QGdzNT78HJ*?F`ke3ElhdbFw0_gm~@t4o7dd}yJ&4fxJUEXbtvAmy z`2u>gqt4ypLA45VW2~_b)*3DsnlZNi4zpi^)yPAk9qdLV?dg0jxB1wy&Cwv>v%8{6#QM6U zF~RGJ-Z*dUmR9Bec-a3N9_kwGy?t@ZrQy?e&;Qoz^IMu5e0XNBy}7Nq>+<;0AS8G2 zsWQ(X{{i{UV5c|h9MCN(OB~?>mFae09Qu)67XobGkt1hL9XY~Y#B<$|Bg#D^$3{mh zGs^o%k0|dk=aHkz#v?}#u$@N^9O&|oj;gWus(f69_14Fci(?f9j40H$Kz2K4%;XKl zk_bJjq{CY6Z8F)QOSW)W{;FssVYsyM!2+FXJlZ3z0G{jtXVC3Mb;)Rt=P6n?cG@PU zrr3e0(_2jPQ*cVB!cw>x_9P=VxyZ%`BLF7)(}43Qp2c&rSIuo~2-LH`Kt;AqBXe4~ z>H3FBS!0Pw_f-5gV^>1hvB*#uoWr}9Al zXfE!_xq*N!YrlL2WmDlOg4{Y9;Z4$tk#$_iq9_;$T!>Mh86iX1D=-q2{vjVjDx>%$#9gW14)G|6J<*_74myE>WRy%! zr!1L}YN^qnhOkB>X!IuNaZV92?Rvc=%l=@*?}QIPZwi_Wc$NHs!;2cEu+111Es~t{ z+YCm%NklZf!6J=G76VpV2-QZt5;Ss6YZ%@R{v*rNsGZqWXbRgoegm>It|(|0wfg7!@lClnyRs$y%dvXN z?VG!Bu79?_9(6mcW(cMfr{cg`^)x(EW{jzB&{gI?)68vp2eTj27^LcwJP+(mD6P|* zvS81@1B+NxHL!Zmdtt_P@xnUEq`YEst}DdVhttF&CJD#m1@>wb6}md2$5i9$QMJMd zTN0`52cU)BZVI*a*GAeet&OxTF-GY?wD!_uMC{}1ZWY?{Pdwv>aPkw>n(62_BxJy| z2+1ExSxBC4CgFP^T+CisZa0f=?;1rM++feHo*o_wryN%U z6owbi+wA>;GVlxU#*RK#h;?3l`Tom?=2x|6l~c&|2MoafRtDH(yV>di*)0_F`J%=h z98mVex(%JS!9iQ0#~>pSCnZ1k3g=sD{Yyf_fy9E5$b%uFH&LJ$ELeerF3^@vQ4}AP z{d4t!p_m;wDCD;Hyok)*q(;=dC}g3joTAm2D%UD|bGa9BIE6xeFVUE%@ul(-f%`fA zq#L$bf6oQs;66=j6junpdd+#8*joXYa*BM68StOLjagg}zyCE98B zk?aa77N#ouX^&^|_366n7q|4)S2y?P{r>!tsK@h&@%le)^@SE+KS%b>?;q-)@6)|B zV~r@+axAT>qynR}WtfdACX)J{Y@`rL`TMfX)Ginmj#ti}Ls1^(RhwxoIb_y~$eotN zbp-smPLvQu?om1#qtQn8_lF+4#8yh=<`AI(b8?>*1tWr&Ba=|+k``Q#KHpWY*LZgYixXSv;YzB{By!` z2Zs%vw0*`o1$UQvdO9i5a4l%~7OlwbJ_hiYQ>%~!PBKyXIN}z7@5HQ#EG9fB<$kM@O6rO@{0%0_Qw(|yMM*~OZk|pn?3V3zS@~FMf=xh|M`e3+t!Ol& z24qcLRbB^EL6byqaxcI9GU!8F&JqsQ7qEpm(M3G{ff6(jGeB+zvI|qh8T+fu(@$p} zd2L|H>#xraha+AfB*odEz4D_Uz5IRgAOBHQX5ShP-x?>-ZY&q-xK`ymYB$BT{r6jL zMgpZDMIr|L9N`lk?!^aoJpX=+aeKYICI&NJ1x6+QPW z!y!H$B9X>*r&k7yWzJ2?@Om6%ubsVwD!(Y);!JH)PCvw`Qk_`!SgP@mZ~(^x$eg8Ym^LbKL28fG)FWKiM5V6#?*8K zJ+u!slpYb2)0Z6>cxKI-0|%bz_3XPF2Ox(>Pr*P4uPc=Y-{gJjrGPSpL_>C@{yfT3mijiOO< zNgKn^fSCku#|+wn90lUbw1F={Y7Vu1g*+WGsjs0=l3*y3gqbwDP{^bc@b_A z^t#R`G-C5uEFLNRC0bE$TzCeW7tO{5)`378{toi*0xyNDwjq0seD1TOOo7R;=H>gGoYvd`H9o!N)&-XXZV;WncR^~DyKH@nH+m7v2tt#*-Juh z52C@nlS+OwB#Tky=-AK@o8W8S2DEV*x74F3URq1}%TRh?VkPho2ZRc2DLDYlkX}kE zReK0Q*j^dg$&p|t-lOT+7BhLAZdWD@+n~{y4;K-*GPG*VU~eQM1YwTUI-_=ds5=RW zf`u7(vE5uJL>Cw|l@R2TES-*DcIoAHF6wtQw-g&l*^p&i^)%&fQ1stg}S%_PfC zQ>c#J!?>>=aA~qBAPC719!RtWs$juNz|ljU*7n`+u3&$c{oD~)!Cv2d6?|Lf8{QP+19&Nmw?{KXXm6<1<*s+MWh02`9jk}i_YPc{E2@dRuo zAhHlisd7jQX2LCrI=Fwq{DAg>K?P$rL_!$z;f8K1n^S~gWP@&8I}|PDhQ2GhVQ6)m z40)%`74+LAP1qTQn4gP8a(Ib4!y3sZdtJ7Er^T5tSp=IN>xjj97zSjwTPwPi)1oAK z02(nqBdIic`MNHhuHI9pulIapXom05>Cn&4h0`ym!yTdOdZ*UZY*;-jRvYtY>*6MN zi#aAnuhn_#^>vsxxEHhQOII8UDeWj6z&J^gE&_wcNWIQlbnO#>KKJ3sR7fR#C{)q z9lQXh@=0beTeNs=$|nQcg(v&JzeM?roUuM1N%p`*-O;bMTRoqaYisaj`M@~7{=|Ko zZR{Cob03;<{snGYwzy|`@xoWZFhd`!^~#Y|0hwACGW$X)SZrwYuw-^sbe!o|7YF+` zIXgWMuouID>y^(}XV}OhX>?=h{&>;u$H7q$2~p~Isz^f4Hq=11@o2$H@KiQ-p@QXr z&(vS2U^zc`0RF9Z__qj4paRzE5KQilG_qBM_9aJ-EMe8kZ|PO}t?=%^(W3*(XNov* z1U2i#LJguY6K+F*18uRzuh`LxKZ29q5jePAI9wUJOlDgQdC zyKRKcfTcdhtO%k^YvCKgLCJ=AChS^C!9(CSy4}GJX;$h5k4w|H?SXB5ecSq7PDx`j z$(FUQgs?SiT4yuPj%b{T;^QE6`n`?WO_$iIigkkb2}1!u@2k6lZhm9NkAVhh5@EuXBmOFoz=+Rh`N3($MIJKGn`1pFMf`ZFtxlQkP^J z9Erefj)u(QwA(QmNJNC_!-K5<;fIyShm8@JoJoPR8i)PKEygI`Wn@GpZb<|OAEtX* ziKoivD5eNb2rhT4#x*h-1ga2!-URQW52I_w;VjRc$&#R|9H+!*_9!-3V_23_T!h^y zvU=R%_d6KAiBC?SS$6JR`h>_)^H|jO65l9SC8)5XmoFIciyK2Z zN*J<;kAXC1#~5zM@WpY;W1!cQiGEuyZ|P4=CHpM-yrnORDV3W_xsyqEYAWMSrQD;c zYJZYcT704H$z-3kgMRX4;!;~~UQUPaq@PUFSMjm|MQQE@q8Qy9j2z*+Jl+eQ1r|8Z zT+55WQ(&vQ++h6&mBMh|bI(xkmY$w1y~Dd;Q^;#wtMl2hEbw~rt6drP{J?dKZ`-q_ z=i0$dx!k7Ag6zthugMnY9+}C5D7Rmxky#oI7=`EVJ(w&X7pieVHFYIufM9U8^Kr4h zJPbCdqhpuTzy8r(yN+iu5Oz5cf2iJ#o65ssJ%-47pYv|~DL=c(??Agr_fqc@kKu>4 z3b7UtLL4aoh#=V&?_k*oga9CK?F`meT`y)C%L?;aiX%68JU3laeZ9WM z?5b~aYOZe##TPiQH&k04|KN`yvDr^nt7(7OEa;0w^@17wcWxwuDvF~crmiyhugoo& zZQ#Bpiv&hqK<(13I>^zJ*-X}*p`M(cY>!f^;Ms~Hce!IrWByT}GmF9RzWltoclTV> z51s2Cn%e-9xoocXv#S4-ESNyW6}t1&WR^&!yAFzcHqdu&IA9Kx?tK%E5`Y;|oXuv2 zvPfKXDmy{>iRl5cfsX)X&=1mx+_`hJ_@f#6=;fD>jXhc(5+E4^VeVXqf9~9Gq!WAt zA}}aYS4Y}{wkEvzlIY|a90g!FFatpqs=`r<5U>+7L01lT}HYMzy`puKs?2{*_u8$Sh&&xH;YrN#T@F?LU;!$pQg+fnyL;%w+{@j{4>Ib2dt|6#F1rc*?gzvU z<}!Bq<$QpiP&otT9rj?2+{Q3OCpE{l|Ju_m|^Nm2dP(Y2$i~tMwZt^tA{6 zpOWc)+tkUYa=E8YPUW-tS3o1bl{40&dWux|#x;>M^9wG5k1EF>Ei>rzR=!7+pFK*~ zDAh=*f^QU+6G-f>JXc%gy{+-VH{vJC1y+8#t!3!-7FIK}%nDzF)ciNfK_vNx@*oKr ztPRnvrRWOP6GTbrGz%!yO@}9;;TYdCNs@^+u|%Rbapn`+CZ1-aK+{mRlW&Jj)Je+z z-zE0!Iq|y_d$qVQz#CD0&R(9Xblr^LrrtQslu(h~% z=hpc;P>if0*fcn$@L8b?%sS4iSvWl8q)JX~vtGX{JZUpN&sGY%!$W3K`Fqi}v#k!J*jiUA{zw}45~t`G zHn5ye?}K#CU;ha7UxGdIDOSKDIhzU*aG)X9q5M5tvHHxR)vNyq$&o4bS^i!5{`23J ze}hOXA24js976dP?&qpio@9&pa}#^+tJjVfTp>0Mflg`5TnIyrk4#HFsDYx8Rh%cHNhH zlFkVGnY5DoYF8(Ks?%b)^cKUY()faxwnPWrEfJeWpbD8Ef&1ZVj zIdS)t&5u9+@)J+I{P^Rip1_}Q$tnCPDYy?`emQUoB=Y_`|D2pg!lIz?bUNoLwiUls zmX-#BdIB1GK9y*f05*d@1s8#f>)E31NzMQT&e9#?|ol-&qhY+ zHjlzy^-^iiVo@^FyFw@C>Q@J6^ov+>rUWU$rc)rK29*?A3%OlFPr=vG}hm86ge%ijsO6# zu$sY?(AIuZ#dLa3eNhg2Pz9Jc3qjv_V8T)MdQP8IyeHY;s5ztR_Vkse+9?9VnW{Bi zdF7R?4s}IuojG?&)1wNKu>69PQA)8D<;cn7f!-(H#yJ})RVd01LsnBI0lhUa9N|WK zPBZl$f;VhBo(_P_@icRr2FB$$hdq}* z&}szJ;41HUaDx4{RRh3oBFRu)(T6n>abfq8q zR)t{6=KbzQzZ3rKEX2&k)EFJ$&Ey%kGgk4{ro_Lo+8}<%k>a1|90(hw#R9@&faQ{7 zkyw1=hG;alUU@7G)gI0Vwn?&>!pb|DSS;A@j=H*xD>@4(AGvMM=qJLI&)Xcd1e==y zzZZT=u0J!Ysje=;P;I#sJg1$y}pq!g8jOQb^Z z^?e<=PSg417RG{OMDND@)F+e5uHR4d{Q1{{=K1prlUSpG!R0|sro)IkFr&UBsI7y^ zKaG$&^;PSKq6_;wUmB_OAx1OoxmW?pYYyWZ~c*_zTWa9i_2p*;M6=@ z)1DV_MJsH2<~)Oa4Or)FUH7tO-Nn_p+-g%SC`Xn2wu1+SoeQP!+`rkr&@{Md=cYmB zgJ`!!`PAHf&xwZw=^>o1A`E+ToZFi#tiU-mv+#egM&*}+q#RJ*tb9Oulk?|F(C`b) z2a=Na_T)(!k=4H=w3E}`6386 zbuD@B zlk$@KDyv6(Wg)rb$-1c5+l;T{i%UJi-+2p53xIC+#=K?|!x3DY2e2?4I1u57bH(l!G%wVVdT*1fcMNRL2K!+X6W2YWZK>>c-n5pe}bYqqC% zm&vB-e&c@knGI}Y+bL#xZsJ(95Q`O}yf0Kai4b0JVHjL^0um3TLlgu;eM;geNf$g# zmlhWxgK6H)dDankPw$-K(&Bc@Zui67|H$xB&<%I#7cRN*#ba*S%L(-axt~jGc{vu1qPh3xw~=SRJ#nxs%RKVC`7y&T}GB=m^cY1SyhjSxH6O?U3db2bm_mC zQl9K!7YCfmll1}E0`|bEznH?=`CL)^Nk#poI0y6+1^|EZZh{ty_#(1B(OtSge~h4# z#E9A%$Svp@K}>w$QlTA77ha`Ge~E7ccIc4extuAl|5Y_CB~S&Uilvl(wzRDM@13b&65 z!kDnXsL>P!<&&&v$_(`yOu$o_%=%L%;Q*i?a^pq4*J8|(X3NA@15!goU2OnsxJ;tQWO0ondMoAix?El_GLO+U#0N`07s^Mguudm|!G4b9 z#TMq{!RL+42S0ajZhX^tHj7P8Fy@m%}r3Z620)j35tqRV`}$+|-yiGW zS4fT|5+liCBBt>wo>(#&^C(_TEWx(-NAJHs+P^O`JU*O^#57Mm6&#-!4?gvjCLU4S zrs4+iYns~KXhgAcY`c930?TAoZUPc2Nvt9-25 z*OE@R_>|xJs^Tej*I>(m11*COwJ%?@ygk}l^~^K!+Rba_XP&8Q<@s9-efm87ScFMZ zQHA!w(Fe(y@=)oY@@?RJ-q9bEi*ZOwnRqc6@86Ld*xA>;vTtQ)S0>Y4T+zR>yKm~~bwtVymky4}<5K-(tYSUadZhKL=M z3#GDY$>7`S%ZxUPWMzjO%6o|xD)d_wV0Iz@!)B*q7;q7rD50=j`T)uzXY=IcV2WOA zF`AH)f(fS}FwqZpM$Q>T6cVWfz>2jPrvMkL>_t>_gF!D@XIT-&oS0)bUC-)}s?ta- zq!B;|s;1DPd=#k9sD6BkCF|q7}neYfB)d-RV z*e^*+LEA_w)|U{(SfLO@H90xiqZdv7Sj^8>N?z~7!F8B_TBZnlD--~l>;ROc`w zLr>ifph?uem{4d2@Ig~Pcu~BnB_P&5XmZxoK^Es*zHX>E3*<54Xf;;exfkegm44#c z=e059r?9T_ctszm0~aAW>JD$#S8s}o2zTLL%xqii9vpz+bB{%mf=<`6Qb=cOoudwS zEZ-FGQ12MtLk7ZaYq}^=#c^R__>sqsTRD))tg>}}@y(Q@DR>t z47pieqwmaVm43WrHSC3<&e0;bld}zARD#!jb-S}u)@s|jTNjKj2rP|+;?)by4YECM zbNg%D@tbQjO#_x1(b{j*KRipCGv8HL@0c^+^G3F1!Gacl+;6To(LKa-1pTl9nod1r zWGL8H)cgbzLW~#v!vgp;y zWi|eh!B~kmFXIii>YM3LlG8IVAjyU*hYhe7^QWh2b7N~=Rh3<;(mU%MUR4(@^O^$Z zseE#s&uKXS_@*g2yMdWLEDp10pJ|g4~g|X38n(7dq5K>L?-oyYfqZ2w;OiVeH&M_J;aEx{QUaq^gE~TRWp68rpi_` z&s1rYkfN&xwxEdqcn-AeX@LpZ9C84y^{1&iCWT}% z9d55Rp+l%vWeD0ei?&=EkM~`5X-mtcEzx=NhI6^-WwRrZ@V~J?_D1x%oIdPl|B%o)=0O9jc<+gxRt#|cTYrl zX~IO)dWNr;ED>{HL8Yj(i*RR=_D?N9#00GrTt0BjSmJq>fO@zMiSC%%R)-ALoZ6*p zq9%DJ!kq(MVJhwg%|T_M5CaJ$#u20F@rNNuV3F(fc>A_`&3;~tr8am$42nLg<9gf zAjOqw+#s|8>8x5n;z)_FG=Xir5Um?V4PaB<-3A1`EHg-K=}giuK&vt`TJ5w{Uwknt zQRznseu>k5F~-rISRtvx-G86<^7J8*7YI22Q`$!&oe@0LZkJQZFpI7-8cY2gEI5@n zN2%IYcemc;(vOmA%xwUwe(ZpLybwK3!lXL)VZO#2)sPeb1}OFWxdVJuwNOSBw;2L(GI?b zdw?H8M)~PkaBjh#!)$yJZ(!`gZJ4l$BN=Zl=CZkv_Ae`&kl8>ruTUU@ro!snFj!#O zKZS$*DUG?v<5K)*y3nDAFWePVL!Dv>B5jB&75OY zskG~05w*i2>cuKe){41^Agw^mI08uFh2Uu+A;h~;Kqv){YAbn+XeEyqMO|PXJ!&OW z1xyr3WeBO(4d8;nuqv>}G=g@OUVp#aG%OVpJMnI(rYCIKV0i%VBhJ;s7H6awGYI-I zjbSTR!;B5PN40TY(CGL<+K=6PIbh@^ws=m0Ht}5 zhLCL))4RT0<%r89XFmqU$(vjz@l!ncmw0X&dFS!e8=G6Y+lJcOhE`qP)^>SYyl~M~7hUv3W3;vyTfb?2^MYCyZ4}<@nz(0USJ%dS zCc1hOL#u|8No*3mg%t%n&O97NZrg+$jmi^9L5%YCQuS+lurh!?isHp!QY*+4|0H7a zY#zf-YI>Dm(RjD1*XGxx^lAdFKB@Iey{74cX&bu|ewWMks$WC;smA{*Y>wVUSB`)b z;z3njJ9pg_G@w8D+7y>bF$^I9T-kN)Ja|ftjY5nH1rU8RX)hq?8GoLWG|WeGo)O`j zX`MRV>!tb;xtOOH7C~ol&&WiM^OP+3;U0KFnqX_I;4#ktK7|L7z=TkDo&(WfeTB#X zfg*(EN(bJ}88@WSbeDfYAJjbHXdFe0-@r9`@SJu%kXp2Z5$Id&al|ibwBbU!eTaPN%e|ZZ+Med zC)tM}E3~s>AMR}e(g&d+A`<{*e33Mt z2FwW_q%M>K+%ZMl=uy=cVj4@oCElOx|I7p2C6C2D7|Se6rIuyjSP`PK98D^NSvLwx zCVus+U;R1${E_tX80z4z)Pl1X3ztKu;7B1v~^9 zn^(G+8!yV?uC7rC&;fT3KHx9=?CcGwGA@5L}0J z?{5HY*Fd8*lfR$|35!&rm|U`ImWqzvz`H~VE77s&y6D)zeT77F%g!yyL}Bk>YCMwY zJXlOdSFPQOYE|o!@nRU&O^Wg4!JxO8NEE%er~EqWaGe#fvvJELBB1EBm=5JFdZLmX z)0j$hEg+si1;b7-7_pe*HfP@JN_yq4L}aWu5`1=OpqNN@PNw38Jp(r5a3Ye3tP)lP z!p7QSU0q(ZUF4|ks%-qDE3XW&UwDeOk=aBL8#a0_Y9zxS`Fs8ke5n5g%BaFgJ)~@2 ziz}@flM)go#ZABQaXbkGW@Gjf15@`fL&!2hnqnhkZ)7qW8)O=nZG9%ARriz+b47q+ znIuswgrlVN(q18#h@y0;9@UMFn(!M(IuSYs2w&y1^4|NR0o6qfyZ5QDZyn$7GywfU z1B8|Rn4X~hAo?;wdI2(T;KAUm6$IP;TB3!jx+7z4#`{$19eNd?TPdFniwX~BU|W0r zVT-%p`0{eM)Z(Zxd14)C6%1=+Em-9=(v##KrZ%YBWs9qHU%7;8ea} z&TpEuMWNRkUAJ!tkBXa(78nhY4IBf22>wjQ4aU_T2EM8h1!FMwP66ceHmLFuMN`35 z69P168u6IOD7Le2{d)ed%MUjGVgA>@&VTsp`5%5bpT-enjA6(a6!|ravC$(WpllhIqi`1C=h~ zNvMWx_F1u^*r#6htgsuwQ$JO9FiOp$HZV8F&=gU1E)s~j_m*X$GMzkzPNlTnSA`5p zHMZ)TsU@nS@}>-&j&>jVc=ArY%hCukCJE4 z^(d!yBTeVby~_N1*-wATqKkj{%U@DEGbdBF`$nD1J`o(c-DnQdN;bZdZ53(u!5ML&>xi zjwhfb)UisK7~}wU128^GjRFdUmJZAzKvJ@6lTnJsu%v5bG|w2fL}8jCIgijn04Io~ zO{>Z#RhAi%HW&NZ<61%QS>{HFjn?V5bZW7TyTh4Lk5-HL8<)uvTwjcj1QCy;*BCU? z!~H@eDhGk5)0yqF2=8Rq4aUx8ZsvNo_4aPNZ);!QRyN+=t~}=5ytLL*>$-;7Dp`#I zIZhfw4Xa%9Fq2B})A@jRmQ@r{47jQ5-!x)1+mJ0T+UWaLYxL*m*YG{_WZ%|5-FnF- z*!0oJDb<}bfD1ulM&t(LP!^cM+}c#hov7`^bzp$v8z1Giw{k}jL_mbZuqdP*VYq+C zyThA?59tkIqY25(0B6$Z*@S?Z7m;jXz2V*2owFA&4lkVjR>$x#(k=|TZ;$G$YpssP zCXJ@L*5VSYDmx?g>d|lONRcGkzJ+mdEgu(H8yH3|dHt~%Lc7($TSL{oAnH)GsgOBy zf}U@@!CrF{o{GCLIa%n;X1Wwv7^4*5Nu#Mt6bmax3)yYpwy1CSUlkqD7w*HF2tJmA z3<>ukgeORgsQyM`xNzy`R(s#N#KwUMr!5@1w&n9`yFPCa9{Fv{s!OeojZ1D$tc@UV z;PdM0yq@gvaD$ya3!49h$4OIcFxAH(8!@QI(1HiN?3t&USd?XrY2ve%#k6U+f`hu3 zV6;?dQ@$9Mk=eMH8aO&-*EzkO1`mOJ=7k!GN(KkqlI#b3l;md7&%{h33!4-&7WQ&g zbKKt?#!VaaQE=5d~`L{>UCP)c1sqc!CePjv0kj zrw#Tx_@#-yItEIyQzf_a_q1;Ef0(e6vaYmb;S24M%K3_g$wXo-@{3^OB@qjNl5~vz zw`zp$k-;v(s6kr1Uvk;Hqwq0k+3gxpvN@x&%_(^-ve9Ie!;wFU#GKv;VkqKRo#6Sl zfH~QmE&=#xDX;=y{i>N*$|Hq1r7DGBimpR%}#8~`o=p1~=TZp}s>NzEti6nB)%XqEON{vu;VNMx>`F8;QQd-r3C<)Jm>cI2%4X=H zGW%3M`t2En)`;odf3A|KZ#CD|RJ)W-z7lmpzpT`Rj+IGlT6o#bQK=5pUEkLkX{uq{ ztHNcv5HnCQg?ZyH@qc990Kea-!*({)A^tb#=`|_$TY5Y>_LB0Hmf@=-%Ev$aArs;5 zQrD0Oet!_FfC=_8KW22B4skQUYNu?3c3>b_!P|MR6_i0^7JfvCFwVu~Ru(U=Ij8H*CLf`vH_h zRWScY?H62#hc>ZU7wiDy%POvuijfcbsWQ|QqB7!5X*;TWu&&IS42zB*J*uocIzBFZ z%cy9Lza3xl^wXEEdV0zDDkNu}lN;PTVzk_I?Qo9)?|{}=ZoA=OGEHCURrXr42R1y7 z1^|KawJTDo71+20gD5L6T0AK8?jFny3``6RvdrS^U?+5i#A;y{OI>y2Rq6CqH@29n z>nd+|hiAboz{wYV%YAHtN%_QT; z;$b7Sc_Sjj=OK20j~?{>y~Hid8@245%C9u{)o%vx(~M6mEGN&A^>Y~ zM{)E8tfmRzl%Bt`{z=q7vTQgQaTU9Z7W%d}WM60DF0O&fOLH07=-%do8HfOCc|7-w#3g1#`3 zL$NtZ@WY>Sinc@p$=-hszS+uUtQwNwNy@^BeU!7*1c3;!07J^d<>x!^2+`=zw?qfo zGucP8?_|59C$>a~z_riSMpb3_bD2?uL{kC6c{MyTEYO+hb>_1P*Cef^2^T+f=vDqu z`a3(f6^q*ng{_^Pc%1ow=acYU7X_=uuZr|{0%Jq{qrDT`ww2peuGL!7DJWKxTE_pe zb6!5l@J|;!m0fEn*dJJJc17A15?>ZHytq07_% zOzK%Mu58ei@g{c2+Xo*LGMiG~EuPGCQ2XqitnZq1DwQ6XKReNxxl6ut@Hyq_fq^@3 zxdqpxdvUFBweT%Skq(Rqs_sw)Gb8A zt!ZDFDZR6Osl*pyHaliA-I;7^N=8FYSCinR?+h1|(=Y_M{3(=tbQ+CJA6plWIkQv< zaYr&5Sv?*h{!x-+MUHq9f*Y2jfeT3)rEt`^GrLf6>Qp2a8(OlU*g|?z!waY6BKPM>u427yl!M|bRXUsMz;F@=Uw^^KIZ*U z{tjin(z1bqFJo(f*sx?q&auSYx^u z&>_{(XBh%*i2Djv)Q|@<02A%Wu+BtyaDD&C&K<%Va*B>ATVuVJ%)kH&$-eg<+N7>` zRNJ8v+D05a5q{A$1$k+8P&0`alc1O)1Q;0H)Fx4Mgcbnx?N|(1{OSJXztvaQX)ATg zDML*SFyOC954HbmapRyRW|=jy_@Wyxx~!9Fax2sQ-#>WNa@A8tlSQkXsun8is(*Av zTB`d^`s$9#&dcz<#S^pqjh4$d7MFY%3GTa+WN9up}p7A&0<9 zN(vNvOoQ?=iYc4fAS;N9#h$r$WE->FnC&R~Ue{P&+*D zh@sg{lB>xy6XG zyHm5VW?^Ks;of}7>O$GuG)m}MRaT$~lNkSH9-m;JprD{lF=ERKR4Dc_<(S(mJE1R; z>g4uDB86yFxVX`(?6-Lut!&ihSzKSA;E$F18k5ygU+=J*YV^nF6z1Ro+DLwQ8oboO zt6PPk2V`)c(QkBP>EFR8v7HYf68WKMl03>OBV`CWEzt9!&62H|y#}C60d*)$Zg03# zb{jQ4s;Y*%8NGtWV3ge5sCp(DjG$Hd{~7xh@V2TeUGF1Vl4V(z^|m6*dP|WNS(f#R zEh~zmI7Si1F^OZ0aY8V`q-k*75KMTKh9u3T8Jf~yC{2M&(~tt~Figr&CS@qYP~Vm^ zosf3gUWNk0FlmOifsbL@UVL)@wU1=WfihQ*qodb(?6ddU>+!FDy*)eopRt&_0VI}< z@C-B?TDA3WINRtSn+=`zSgb+UXll^CEO++1xb*sY2JQ6<)medd9wE4ES3Reo-(7zEpO<`LI ztRQqwCN+{7vdk!S%>9#)S2%SK{CN59uXMHbv$J~r!x=W9Z;~&4R(Hl9*6h7g;i?}0 z-EMT~Xyf>Lr$jYEAD)lc{;vTl_{NIST+{}J` z^UY!py*ba83A;eMoyoMkM=4-45(_uYwhKBh*$p^Rp5aW;ekFMZ$}5y6MX_>9bM*jb znqgrOqSKO$cYsd4R?hVO3R~8F6L9HgP|UNcIWkFVy%bC!kD5D`D?> z?I^S)MfI57_5md-v|e`E_ia8yLu|Nn#oVD-*lS~duz6pNMqfoa-Z$m(VSO%F-nKM1 z%HRt?M5-y}qcKK)4Y<;H_8NaN(m5oWkay#U*`>sapPf5!Kzuyp57|*0!`|lzdr=#4 z*jr44{#$K!hvMF0n?2+eronM}%P;HHCh;@1b%Iu>R-1IqElgF*?$XtZUv98Au}O1X z9q)537;k?A?>YL&C!A-M_Vh95`>!iDZCbJE>z!d=Gy7w+@74D9SAEUmo3i*u!`N7E z(Kot0zS_9GM>%e(njG@^kV#E2|8i~{zi9AE1<1!*4ThZ;l#o@Dfrv{kS^bEo zN-M~7SV%M^9gR|mr!(L~SI}bIpG;Emfh3ZqO7Y}5UbfXPO4UGxw(eG4!@HD!_-=!) zwY$5urA||a$FjuQH~<6EGGg;BS>m%vOG#cy^Q;d2gk&i?DdMWa`~X8twHmTC9}KIK z{8b_9%mV8iJegfcM#xR>;d5?mFd7})vOXHcgB0TVu=SC}uE}mb5c!bIMAvV*JQ}?m z|LR$Te{5OP4UhmHQva5Y+e)@giZUb1JsiF@?tw>z1cgTi*<*o{MrQYEB%9OFkz8j_ zO(OP+BE+F`q2WwZ!-!Nd0VyY_pKwDRd!y~r%jg%EUD`&u)1;e8xX*f6hGFvY@EUcJ zr+F;(9%LBazFu492h@>R%E*gQ7~@e^u4LQXn}CNL?E~EkvL_odG!M177x_ zw@W-?cFUP49_wN=X16}9cw*;qvzf&n6)vyzpdqz#ZP#*;bv@c_2tW22)BeXE!~Uqh zNb^KJ^%uTB9=i(2YE#&sjG^R!zpcq6zG8OEma$VB@wSX0i-~UvW5KzX{UMFR%#QeX zcZpGE$F``gqL7hCV9O>r?h85(4U0}F%}5ngf``rlM=0{o3 zatA|tIOPtTEdWfuCzorTMtf4HHD)t{WsXM7JF)IH+DGkrJr+jcz`{Cq!^gqDqy7F9QF;^2+^I^iz(ryV!VIGgY2$>B zfDRJs^s*suY;JB_&y`npUvWh@EnjK-c^mvb8A6N;^3xd<561&_sR%|x#|WD^56y&( zEgo42k03#wZ+{8mD&OVUML*`14KzC|Yqc!kBSj{h{)o)GH__i6fv18%%dnGk82t*r*f#TV+;?e}FF>g+r9Au8E01`^|68?ss=~ z_QqmvtY5a+N!27W_T1}C;|_;y2kz)QyF|-=&;V-s6%FrXrl#`->$~rsKko?X zG>!W3%4PaSRI>)evPEyuqU;t@afBoIZD-TFO?co%*NvZl#&2u1)v4|JC4T=BJ#d)L z=D=R#5`$rhajdBskrVius%(9->Eh6-K4Q;N?JB?qATP?7pK8z08}ecLiAVyLm69+~ ze9DOX3#il?4B9L1!>1i6BZE2s3KbX-tVXNg&{0`un^uoFQOKx^A!MqsI`u~3NVR8i zm5Ac5Gxf^G`UbT^fr2o4%SM}4CR3=a_Gqu)rjoJS1Pw6%dRsGP@JjMjx(+IgU(8}< zFQcq_`kXJI0>LwQ@S#JPj+wnYB}}h7`0&AXd_mhIdAb_%;ERZ8P?VvD`7neQhY%B% z6nW@`jCdYS9i61$=)#Bx@*8{O(MRiSO_j15O*Zjc@7{aw$UQ`v&*i@)2h`lhgCd6I z%8K(C268xIdKb@BG$*R&hzdkt=Q;%klG|n$zr#nqCivD{!SXR9S|j`we137BdDj6A zfzRg9hRT$=Qd$+JZ8Cc}3pfTmY=woIGyp#tOr1h@f3ReAqY#|l=rD#I-jL&0jxgJv zOcs;Eh>kuqiu?Nx7X|Yd{3UgJi$9?h|1Xt~`9^CJmvy_B%nf4Q#I`LHJsvqJhG$riSCbjQ0EbB{swNwLRYBq_^KpivG>j zYnZ=!xOq3QOo17%N*7VWek8pNx&VB_L|;{AMnducHMYwF`y+u8#j3r@1OB<6>ojas zqkU-Z9shl~0hF%>h~n_=nUw~K$-Ev0r@1*89~+QCdRA)iLuke|+vwt18y+D#_# zPU4)n0qATfbB7vxmJy8j`$?hXEqmsc0%$)@wgt~rQ=0{gTG~0Sn)eMekW{MR$6AT zZEaB1Y5rG8sctsnz2E8dU#Mwn)_+rr*8ZlxxoNdlUElEFYBjmz`8+JiBbw(We?06} z-e&^vlEM0ik($6AD*e>%k{Qh>0~kHz zM61YO%(RmGmbl|(+$%-1g^Rrq&Z@nBbuJhy6gC$CTQ!^Ixy_)|c*qMoH5x<3R{lCg z1WPZ-&6<3##w--s1j{6Xjg3LV;jf6+F&VONvHDN3zS#VO*&@uQsgq-q_4UsJA8?_j z4afdXFgX)09aDm-!wBzgdFUphgxn2KhOZLHZ@5r85KM%%6~lNYGC^_y+xtIXigvJo zojqX>I9HCZUNtbXRv%m6QA`v9Tay}7|HP{0{q~*Nbbh?o8!=lQ zF}tH+vx^_d)w>7QuLo5v+LP=K4UX#tXei{>pcai0%?&hKGGzJACEN-i={N`iTj#L&->HG*_cz)6K7=>fO1N4!tzbp@ z7OOuO>I;YaLOH)xe8J`oZ5@ukij<9DPJD}sU&Z~7+~&TD5J~6UyUnP(zj&(fpNc+b8 zqJ62TSNo_~7v@+cOurTu;QLHLfvTYVI@#nfZF4w!;>1qu64ua9u}ew)IKMH!vHg)p z*ee11*Ya10kt_0FtL%}t{Ytd`m*8pCVSKvK_5pC{akmBFwkRZu)db@nG}4I^5Wxcc z>T4}mUTIm|IJQRNz)k#~)1A2V((R?a>^oz(7R{rh=Hjhmy<44*9nLK47fx0gyu z*0%@eMq_9j_PMpZPY*?zK6bB&(IS6?mk;y=vI-1rCe@7>tP5Ny(J&f1BwM-vp!=OSrAGd+z$GC{enOkzvPfo>dn zB}ER}!M6+L-BNMi&FjqYee@T*RI04PtZ?|X$?2q8;dbIpR;B7HmL9O$txltvJxBfs zhdCa#hPpBXU`R)Kj5uP)LrzCp`Z1E2bp1L(->=XLfV%PxrX9}llF?>^D71}_qrL&e zq!DD1w}VR;55Jelki68Ebe>XdM6&77mk2nHQOTdR7`dRfrK&#C^aLvvaOw$3OBC;m zkHmE&Bf4~de|p;3aEymflqNF_7;XXpC?eT1*kQnf z*_Eh1(!#>Nj?Ecc-t=)C-V3Rjt_=@zhxxtxlWCWOG>>t##gICR43y zHE$Ow&oIUN*aS4DD0MBQI&(BR+MI;d{2LSEXt)C{4V8e3cabB6nB6!!2=bJ7MoTUI zMk=&P?vRWBz|nI;)E0C@Qij#*wYr(O-yTt~*XV6Yr`~Qh+jRw9Ld}}w4@tA1WXMG0S6L@ zALR4<3jq2=N|9s7LS2Q=t=b1%$t(d(03et+S0thS#`GF4YWy z$B^%ud`?Z0XSRpyJY-VA7U1T+^ob`yx)4X{!WW{~p%TfK=`Eb)XBL1;9m+^ivLrnV zQQ^A=yPH#V~gH}XH&;2x`rfgGVt*n0nXJ1FFaRu7Y#Q6CH&+NAigPR;XO=PKleC2*$3jbU|Lw8o_njyFWznocCmYRv*ufv zV|mc&3@#U)t-@Dg)MPlM9}d^UJ@?ZdfPgzP$WAd%x>2 zyIXV~PM^Q%_rPdSkt47M1;qP#y1b;(_p@(}r zI1fA;9;g_lM>N`Xs$P{23tKqTA1xH3xe2&dx8-PcN6~KFw#!oLZ|zVPD&m zy3P4ssN%i3ZCU(|ul8>nGuq}hACv5jO5IVOYXD=nHqex^_~IbiYsWkhV9y^uEZ#LR zatBjP&%C`SnPjJTe!7U-B98I%VB(ErUNy!UA`Dg7D--%o0FnBYlou=6c4nSeD5>GG z&Z=M+#+wwqvtVY!sl%ngA!Hx-lh?CbGhx5E7!GUFThbc2dDp|R?~uxi7v%Knj!-ac zebiyg8U3N?`t8z}dnNp~FpRH4eYW1P*5SZvyik;oveL2?Dhw8aDu3FT2a*?y9v`yvsfZpA9m906wT~5zMYEy5AhU6WlS(Lr2y1J zz3dd$h2Xt~-`;%h+>1Bg%i8ZP2uJR{`L~7p#5W7~wPUSvER}7*KZ=xF*fTW1>F?N_ z^6aje=#c`u<46H(nN>6GGdKN)4Pdcqrt<%*A+K(LWYOUmQpgZ>RgF^i=dIqWu@-CQ7hVF-oE&~Xspdf# zV?K*ISp&$XLUvGD;o*7)X%_Q1hWQn)h|uq3l^=IjR^|f?5J{5aH2+D(FMgp0IcK?W z#IfjwJ&d=&GCePq9e>UtCA&y37itz2Bi|yyq>x#+B8 zQ~m?*2j#f5kzWNG2XNa|rSKr|jEr3arUgDY(Df0)!sQ36aXIOrU=Kzd>^U5u^YyW@ zQ(m1l==BccHs{+=fFFF zn)7`7sLO@Br52)|JwMeqd4!5SvsG-Dc<|oh+O>RKm-|`ye2{jDp%XyXD`X1)<9(BT zQ!_J_KW~BQ!fw3x-h0*-NibZrKO7kD0fJ`nzwzDuB_&GUdrzr^-;>{CL9R-*JW#QK zMk{%8Dzg!0bm>x3yYl%9($mGB2XBE++`dig$c!MbL5CMOGBXY>JB>^#R4*C1zR}@m zynaNmw_w@bjrT3$dmtW^^kj;O%OJsA#LY$)4fKo!l+7YU1qKb`8s1)#KcRJD^z%w5XfA3aNF3<+6e8iVZ$dsLxkTnFH@A4p(>`PrN9ZJE z73~QdkkqJoed_jT6tNsfG-}pr9dLLU9d5}t*WOVUMgI*`C5Z^ZX64CQf#9LNx5$+xiv&6 z+Oj@LiVZz6D`Ds$;RwAP{R-ezk`d)qVIph{RYAuL zP)#ue;w1I)#G-e?k#4ayBeZl=qTloPw6;z+I^MXqrDeL2wdxY3&dySz)e{3%rH5%H zkXVbi!vkWO8jg2c2_MXt;F;3{k>Y{&N8B+rP2lB1uY{8fr5epzp`BG;W%La`_my9l zGeaxoRn#KpqX-BdK_)2bG>TgB8|(ziY&JAtRmD!=V@-oneuxESLPMQQCN{GGK2p^R z>-Hn3PrUX36Y%CPv8GnhP+P|Y8T+kxb8W4rL6FH1_lgU&N02Hr~`ZVF1e30gF7A2s_n=J`A!z7hnf=dyu3GPUax`?I2`St7b z;WX>bZp~)5?xsb~Ju>3u4>v#%@eQV=W#`?WwI)p)n5pNw-PiT-h4_!2k&()yNeV>B zxv_l6?GC}=8+4{e^Fh1X;m2oTui70IUjTy2X@z;iU)TgdSBSa-bO{I!vXyfAh__3_ z(%Q6_5Lj4$G2}4PSMVT5{25gy*mVSWEwkGwXh1cGM+uHoYy;PhWN8TF^f>xrlIM35 z8VmB90*e+xokFb8n3e8OQ@I}mC!E6drK$NNCpWLpY+KgjcW6d?hBQgnvYwu0o}^}V zXPev7+8XE?UJ-0<4X$WwgoH9dg76o1BfT1p!trd_oz(11dsU8LZa5RP%Z(6W!K^y% zCTb>cQvJF*=?!Q5=+}Up52G?HoGy3^;2E73*SV#+iF_H2h^5hZt4Ux&lwm?cwPV~p zCK;dV5v_wRh-?&^{ynp^Qe~Cg{{8#&4BFq`!rr}wAHdypIG>;UPpFx*>@Y3&A#Vz= z$p4(HxeU0JJE76^)@*}?A@OU%y@)`QQbG7EG#7cXh?WsrpQ?7|0 zx;EOGegdDRCF%2L1^NylKg7W!_#Xv&kp@iEeb}BQi#<*t+?Tfs#(>76S#hbg zLHIUnhy)s}kznm@iXR6uEp^LQ``sy>U*j_cbL!53)zW;K(&}QKs7HW{(Jo$StP8I$ zW*Qshjef*V8;iXyx`rj1t7MwSP{h(`(3{p+?sB%)wyj>l}Zm=3!|6bm{YHgQ8F8406=&dq&wA3S)sT%I~w!38RW@E#4^<~~mG7fdb?aVJR z>z5gPt&XC{(WJP)))=v9!^<@4+RvJ4j=bEcT@Zk1R>At=`sC&X|!?zCOAsz@8f~67`;?K!qE%LeeChX@5>_=bb zZ-Mk6-Zbb526(!7uB0i2&O#axJ()IH1btX?M7%G$e)Ib1dF}xsFVK7Jc@T>MNh}`D zIFoL7(uwRanp}877|9SRe_hhc2*(1o4BD&#nXBlA6kAI{=VbeH_aDte8=4W%Kr;hG zh7>AuG9UB?K5eO8mTd^Z@6_v0$WQ zATZWhHZgh#?ny(ro4LpYA$Q+&v~QY{?V_0sM;K3YlyN45oIN&1DR(xU;q-Z6Rgkeq z^Ce(wV9JWSg(JNkJv|)+Fur-smNjeW%^IxWO|R%A9%t{#o4dW3C7XL#81Fd<8E?=q zi0S?rPQf$dh-Lq5*0&bdTtxynHr z$ikC)CmE2HCwpJiNDg$#c|Kk!NRKV~yl_O+xK=$S9=aFuW~dMnlC zL`<{T1)PTi%n>ooOev_>XBT?h6y73!OJ`uU!}wu+JsU>hhGBJh*y{d0=7jnEn)rS(t5by(NFeOF zvue+%qyfLAg$^p& zx&?vABtcHFsRLv zl{e&+`m}YZL(^zz%t?AxWnaz2DX?g7i*g7M@A|}D=gBE5WeU9h=MSR07LQ7y3d|=f#>o(?I!-a@)wGjgcSXr@yy;w2|oe zZb1LI8eT#t>GjNL;x=ahXj?x(2uVwVqN!!NI8>n_LOtTI#{BL9=0+<>UPV9qT{x?^ zs|3HjOA!xc5W4o;GK$lY{;{w=>d|B%taF zsg$Ylaqx%;sBW&&Img%k;)v6zQOh3{_KI(f?*uuDMm>8DJX>z})Xb=0$;H&HtWT|2DrBPHd8b;eMQ&Wb6S|ti%;rf`XW>5V*0!F zA`sQpz60{bxuNq)Q9qjV=3Qz4moD}sB;pAub38Ty-54GUsNfE(^|f4%==N#L9VIJx*^eBP`cd^1J&0?$FoPNpD!Gb(hL)W9|g2>iiY!P zKUGn~fgE3)GE^Mlhp}hU8HdWh9+a6d0Fdss_&EMPD(!vM@^mYe%WN%3hfIBiY=i|} zx}I>jWPj7VN9MMSmV`L%gyxJ|oU^lq7he?rkbhA)vTuC<_&!$u$SQUN=3p8h(sn2l z5FRlAJvkOWMP4TI4UrY!Y5Gp?@sj%mckiD2O6=g~?ATbA{kOP!)20VsJd)kC2@h;% zA%6hdA^#yX9?6Fd_db+)4=fe-R?>UQo9xewG4p7qpS^!hJm*cPy+TcXvpzmL8rN^G zvLDqPuZwvO1aQ=^P+$#!Htte|$;#fh>7Kj&Ih`(~7vFr|r~!7=8+AL(&kINN&*Jk= z-BSH;UofdH_4*Evv(@+yI7Xpn1o_S)&v%AVf+650Op;ia@Rd^G=Wmgdd6zpL z?~TXPjzT08R|ybzs;u9t63k(vwl~Hh(;?({0fmx==GH?^BCnU;2!yPazy>Ty=bVe5&_TS0=>u1YTRbKj?b@!~P&D zNCc6|{%7|)w0sDUPu};?P?{(4kpEkX^Kt1^)skHKRd%Kbio$+r*4;mIe`8~*@poU> zv8HS8HS5CK2ZSA3e5woUirVLo;$;i6;&ey(n3ZH+1N>vuH%V4`TuO?zQGgfcz}*gl zol+^q(P^*sG*XL3MtDLp@+PN+7OUr`k)9De_*km3Lk6706+sNkK*)5icP2r`1hJ=3 zMtLll`({#Z3oqUjn2qO$!lg)jP(Q>pMRRs!?wyfPbn*qk=GZy4%V84&BZ|!{Bc*U^ zSw26I%;)_RT_cB&h4nwq|40XGtJ>F3xpc%nvIcwS?JouFU`JL*aXiErK<7r+rxVd$ z{#(4GPiaZ!Qu*7&uk7|gn{AK>etRj(IQKgL;91ryK6Ajn-Hyi~?sy1C?1M{|4BEee z*!uT)Y<-QznWB%DED^s4qJb~i*4Ywvdjceliz<}?CJP6rbb*-JmfGx^w87(1BHi@!V%wrJ?cM@ zdxEde+S3!O_hf}@{d2$eb<5>yg-l&1gVd>O5ag!LW`nW8U{E)B%=Jtuk6qS! zlS?ko4#ZSF>tcUd?_HfYx!0_$uV1;wZOX6qN_|l3)12FvG)IYT4r&rw6UhmUI1xmS z15kEhAHu}}nAFfiKb;~(RJO|qR^%yfQLE4!wNEh(X3)mZ{PdwAeIp7M7z_$+(fgUc zOSGnRR%;lq*zT46p)>wZ`=iO9`WE%EKf7NB>}O$o{FC=RKE7(4DbkMn#V9dV(Ms6%Wny<4tmv*{b%_t+XEV9Pvif~!dgX191VbX&o90G!E zc3)?oaXR_j3uik#g(C7nf2jA#h8$NgY zzcPFFpC4e~E^Cl<%n}bK*JrB_PKNE0It%6O57I$pv!Y6TR!{&ppBoc<$Bwf5fv2xJ z@Bja8B>4X4&VGN6{V^-12*?a!-C`~JXr2*soMP|bS(?D{@@sWL1kqX@W`co^axOTL zlnEt87VqduuxrhHcH5OBPc*Iswk(BGT7|SZ@0N_dF1L zEXRDReST8qYn%l6^e|%JVFfIv{4CoZBy=Ep$m*wAUIsPy^%5{wxB+s78_!|42PeIN zUN}#k5{{InN`CmG3As=#&LJOm@b0+ zqKg~#pTCRkR9_>m(=Fc8;-2w|-NO2j9aMFS8NxiuYgVDQtO>ewJ&sw@Ai-cvYCdIM zpv}m5H7Y>JJGuvz+i0eb#nt0+)osy+T=XRBL>?jEbN9U%^5i=f7 z({~};*+UY4q!h=xm?@1gtlS15*+!#@p76cXHJpF4A3d?{36|~co#^Y^*4KBsw|o$nEm}D6^cjiy9vTn=&+T z^4W7WkQ@URAFN>H$bm+UY!jM)U6?Q>(+bo>KXUKvaw|~Y>_wC{cbaXwBC2Q01#>nz zptCB*8omQP=rlSBc8z~Mn-04&Yu^$M&?dTL&NPxY6K~|3+G#l z-qS?3Ia-vExk^g*PVr@}(t`xA&Wr%K4|w@@XS2JrncbPpZf4B#(EgFRw=!>BfBp3b z@O)z%yZ-t`+a(?}?#rOMiV6?te~JD(vh%=kTDhG z!d)Vtmpo?p8Z(>O!p-}NP0Qo4G+u<^2aMva0Bbqe^G-@8_S(!kJ+fpRUOn;53pS)- z1JR*TtMte!E_$utv{j?Dpiyr&+Vz3}vMU`xv&gXV>UCzDe={=m>}KO#TBF%+G-~h5 z0wIbmM;u#F*iEh1Y7~04Dw>2p!mUvVHn~Qn#`Y*(0lUCmVFR<4)(VG3JjUN^zz>1H zPFX1^Yn7HH$I7x*;-G`WV!>>HL^=wB_8UA+nDbd8dWMOq^-7z{0p=4bKl90TfJFtbnAZko~eHSt#@n8^4Fex z>2`6ywsFm+S8P$&uB?-Hbtigc^8E=6weo|GM~S%f z)v!lyKrGD;y_Isc))8+6a^Rqy!zT-0fdWVpX-SD%?JSP|2IW@z2zXF@=mTXiLOjrI zfdp-3oNNJq3v^ltz)oCt#0O+y&#mb-gzM_UdM5Z~vJM7H21TiZ35jYQ*2v zD-J2}sAraX)j_4$%anT#-w5LMOJ%Z~JmcGZs516xncTC_bCXPVDgJrm;l27h@7&Mc z+`Zdb(rQaZp&-cD%jJVqb6L1wp*Sks|DIZ1dAxV_B|$EK+4|HAFP>7X-+udLxmV$tm`mBg0|GcyG|Un+kf99iq3RgaQ? zjIS>7c-F4yphtBDLCggAvT33gbxXsaA@`wl3rQtrl( zQ^?~uafR8b5bT1mM`yFTt=5-gL&^Rwr&YqJf9U=duszo2?dDopM8+D_GOtXi^)@sJ zky;tVK&=o(G_MY#OAcqaMh@~iL8^c_eQzCaTPf~Abp~Joa7kZQ z^^x0YlCmlmL?VElg1WyyiAPf0%pStiDZXxYfcoYkSk&*u`}^blPbHIEABf|lF8bmr zv@c!51^b6QePjXAtg>K_(XO}^WIS3ZTV3po_$2FJYzpPimACf;jMqkNnMaYCrKwS9 zvJl^la#s*9JW~krOc@9Xk zYzxhu#&0ymV#DgNZK+W=Ua!_!?IE24HR1S2weW}XelGc+2%lkxCIVfwtX=?jjMPCK zMOEsC53{zxgY-efPuTqc)Pbi*o7-x&ZoOl|Y@W!uBhegKPWO+!cDvWD*L4Mj4NdkY zJT{@cb}v2KBl!p(?czT1-`K5}`9i@wDZn_EG&t9faBY|z;4y}<5T;8<*|#EOv&jt| zO#EGp8O&YooIPS~vMp8A)m-TDrp-*>A->bTzCCAG>D2as3%)ddZjv3_$h~Xr*v+E( z30D!ljfx{ce}x{)XhFTjRrzoc&+${LlVJVdsuzE>UZ+t_v)89p8vP*m>$P&;v^T6C z@xGHMkun4bNrRp(qowp7hr|1OrRHgdXVQ>E=%ZC#(fdhg@M*IRm@FxnNW`2JAxL#b zc>&^D9(;h$se@FG%^z3AH5Z}U&@{HIN=6%v2L>?|jRodFb}h=(BS@!XJr@^jy&?zB z8fR5qWvc4hi{ixLB|cxG9q@Xq8JUVShOfc+*$&-ndCjLFD;6D=kD~bjl7OF7xil3; zJuYy@LO_y?1RSCQQ~TIfK)liDO}3fEb5b>SWjs+nqf8s!>`UZ#uSGgTxD z)(oR2qm$Kt4~3}zOlj&~tIE`f6!}GclVZzDNxJ|g@@=`{vV zJ7!qCaP8lRs#_}1W(;IN`&$s{;bXMCKND;M@@^pd_mTY}b?VRW5H{8)>~NK9 z(Hw)xGUXw$Woq?JmvUte14<05sQZc8N11@AIl=&;T2f2eB z$#A*JFsvzM0^>gbJt3}i1uQOD9v%?FK~=N3k}0K&oUtW$-}*u>IEEyzF>lA`y~d{H;$gXs6+jI1E4|*2r%pVj)2G>_Ts$DWRt)C*(x?nJf=Oax#OpPO zLogoQg!_5%BZ^k4Ju13~Cp|Sj^0kw>W*IUrFwC#M&y(PnR$(RdEEXlD1d^$*Xv#l#aN; z7X-A8T`os0Rd*yU9tY%q!XKY|ixnY*quxx$%aFqB0FeMyYrzXWW&fMXZ&2fim~1ieS7;Oo%1>?wuIytdu-EQkjmn2*OT0_e z&0Tug63-I#Un`mF2rzKX?3!k`Tilz^@7R9>e85NhA|abXrHA&W6&xW!r9k;fm|>Kk zuY*=SVrOlzjz_r4Gz((p3Uc99O&HHIZCUwJ_48 z*@s+HLa+Fq-g?^V)iEugB&YSFj#I?iSpOY&n8R7K*=)>(*^R8RiFvHASPkNPO--*f z#f~-yY_>r2AMvAX*krMo!r5|Pl5)+713y$jb@4Dh?;+6HI$?;?2%gXDa8(33LQ~+y zI560k&BJ9>$n*^!_&ESSC}qODxROb~e_L!^`0l_L*R9*ps`Ql z3Hzczy_T0&A;`W92M|Cv!$hq7$DZ{)4Ti?{U}h;u6P6Z+yT^B5+kHiW-IB{~a@m)G zB;VZD-Q89XhA+5p5Y{)lT;`BrSF!uLZaj*+458Ld*{mjPj__+F*+qo3=Pd1pi%lTt zrUZ9JzCXDn;SQCC9N`zSN>dp07WAU=D#M5jrEwBgzYE8O9O_ByG&X$>l@#sqp`7s4 zB0C9Y(>d{ORtowBOf7CRs#2pwoJ#Ar`om`n1%8Z=q96IWJhMQ1AfKX#C*WNqB~fA> zO_WaWK(_nK;xllYX;?3o;*W$vtS}__k$Zb9JsUOnwy}}EZ4|$^v1{W_X&&2%{Sa=K zSN}j=%v1m#K1>f3k4Ly_&z?P@(b3!S4DH!_b|QF~>4fP$dxN7R!QjYfaPQW$+k$s9 zBpZ|dA>}AiehsXYMf%60ig`YQ1Mz|^CV0zk?;6i!#&;3tL?&Dcg{YotxFo)viS~|- z^+q#7zU$gufAZ^Sn=rS&(??9wmSudnWF6mxTu-x=mz zz(du=P{|baJQ24>oD=X5Ts=aaE5Wruot#@n5NnBNvI7dgV*TEJwPN$2Mn2}|?+5pz z^t*9pW;PbXE0()kCwoh`U&1!AKd?=1>5cgC406wASvVG(#Y!y3{qB;Eumrm1d@eD1 z7IqJ1VczD(IKXH0B+Hv7VTu$|?1udRU~@(3woz_{9RvF!-6-o&ybqx@c&7Q1J)eOZ zA^nc9?(~~8s0RawFuc}|lO&r+UP@z8%IR|O_%JRtEJJ85hy@T25*+m0LhON$DS^UH z5bCC;0ANYruTJ1#=6>P>{SAA`B;Nhm0i8zq!^i6C_518Suied#TU_aW^_5p|5)vR# z?}Ur`QudY0ZqYP7{&e-S%UR@>*TU%OW`e z{5Y9@xKn~j3T*~z!vIt)YNjS&2|H6%Nh?JnH728P&)uhqS%VsF5+#gva`ADmofW)J zy8|qCgI24cVwq>3-4U0E)U$^NnDVQ#2DQOqxJsoAEpaeRl;VwUrv^LvT(ecC5?7}f z*6$k}q;^}-R~mSvkYBkJQV-xZ_sc+7i1C8xhGb7qGh8F@sZzhOcf{`6o%=Ts z^s@=FpxfI=dQ^iORB*>vT@T6!BVITpj3UM*F-v4o_T%H&wrO0#g;~p&0UDu7*iA|o zOh$=@dyt}v(CinYiCO2uO?+!%-T6R#y`IJO>&yE7vJE$Mqaw(n4AC3F`sZwQ;nwQh z%$LLi=xn{Jt386lUFcJE4sM(UUAs>>2N^$n5;BMg!T;g{_VLdhx0?<%cM8v(^L8An z_|hjHYJ~qh$AA70-4QxGe(j`OiYCbV8Wn1*BMe z#aG#bbGr{7gx6K5iCs7Xw{sd=6PXQ`z4(ph#2Pj&csTV$0SWYzg z;8XMyGy7TLvgO6F{qpf;-OK!uVt(`1k=9GD=;>cM^yz4~5DP^1ZoX>Z&C*Is^Jn_k z+FE*q*`+MD(QdRmeX&a;{mpHwu8g-a`SR7Vp*iH;5=h`3O=tgR*{$)TYeI4APrMPG(My2-XAdoILr?FThcWSRj{M zk}R!M389#=4_jI!9q4>Z2#?jN#^DbZFxXE`f z?U$?^E%_8MV>eN;bi{8vQ6tIcvOsA9Hx{1gDQI-BH@*FXqcGRfxB;ft|In+yusyr~ zS+fI0mpm!46w~#4YC&fBRQ6Gk?VlzMQ0!Navv8nR8UH8kahN%!WV;WR94KX`>bZ!!1JR*R5X~ zSKjRtI(PX@>FvLIBc0BC-8?ij{&kJ!E55lO&wkzHotpYT?9vzw2i`u782dkf=7X`( z1bq=+R+x>9jFiWi@EA}>&kYTUgM>n20AoqVQ}G*EiCKl=WO%*d6kH>uRC4Q%%0gAe zWm^z`C1aK>2jp91C_ml~innZ7Yqr|Va_fHag^J{|J5d;R$Qfk&k(e6ugVQR6gtu_^ zFhV7GY<6QNB7^)P(3y^y`$B21w@JR+7>~O_Z{vapGb=7Bt}@ZHLtUDWTu4;y-3(4m zNMIE z?!?A;qh_6^(N4}?J70}&Ot_WJjo{h&+0s-nm|7|=%k9}MTrJ$g^<)np4Jj8iSD^Yp zk6}rmqf%qStO!sx0;%r)?|tukPl<0%Tz4J2+&dPVo(`^QAse`5&7i++c|JBqN$~9b zzkT}Y>#mz%%|8F=&C{bTExzlv2JDWerB1)MWAEPbzIWjIZz*SG));)2TBu9ZToUFk zo+NrYDr<)tv{pdPA0|HrNi!=umCFG%L1Y@={QinZK}Sj!)ZZGtFGEUI&#NkAaG9XX zuEe=j?CSvf!U7c~%?89C$UQkxSS6`wrzMJHmRM4T3y25hj{g4*qjC^GrE6M2*n@J_hn41*QF(|z||hqPk*r-T_S3dw(R zw!7<>Evt98vu~NNULoGdzPMtur4eyHl2NjG4zW7K*??Ry0I-T938b22CRaR>!Vq*t zP3EVc7Q#PLtbnjdtqGP?AM&(f|yaO$gH{mjy(>8l?3%iiFI<8)pMJgfOc z8!^)WRjv%GQttiFVXv`Li&HXCI?sC}lM~pUy z!)839w>iWQ0U5>P+@Elpotc>_xwGbN+sxVC483H$-~zx8xLlGr$myEHz+|;0$_u?a3F57lJ|NlI04>`dGV0vKp@y5N6g=T;eQuUn@ zbEkyY#H{xer@Z0w&9~7XJQxkIo0zGNB~YjZM}3B9;`fRl2%aLX70>OXYe;rW)$e_Y zI%e`&s(=4&c>KjP#s8?rb_!@|LjQNRGgmdy6h^O!Pe}}R=le`|4DtEB5Ya;voVPmJ z&yR$TiRVdXv)j$i9b$hP^m0$qanRV6+DZkTg;x|ZR5n(7@orG<0s2I`ywSzGGP7Hs zg*!vq^1!0~CB;3@K8O7**lLp0SunCm69Qh?0(=N8<@tIBC$??fx@}@{p!25ho+N`A z+ba8Y>!I7B_wfiv7S3GM{%L{A7%<_fge;>cW$lP(B-bvOX7ndcgo?$`i4#WQU#c9u zVA$C;5lZZIQJ$S^XCgGQt3i)_Q5zL;ZTEw3MGGlH`y=2BRarN})etzwz1n^-K zYqy#<27?<-KN^V;rRxrpMGD~b%533f*Q6T)y5)*V1$h@F9T4* zXSa3)PAr(HdDSW)3S#;vtf=GCYqJY}r!i*pXOKARw^e=Ybq3QwJbAP1_eR6f<`{~L zHM{Hvldq@PNz z|2qb*78I0HJzFnQ4QwFOr7q)4EUJLH?ikg8vJR!ctH@uVC zD+#gi)S`5<_+K|-(=2i$n&aYa1LlhHvT)qYMMrD|vpUbQEf-iBVD_Dn7hjC*6yM57 z+msHR)z5GFqGK*+Bg}7`HN~hUkhLcaSNQ5^FHRSO>ePu*xWmIyefWrX;;@$_LZf}my6H0hU82hw7J{FS?((@ z&r^hzZQ%%_>duT#LiKq-@hNG%u6ZlL6%^FS-_^~1ptD-z?75P(DhyX%h1bAka1dYW z*e;!sPh6sv3a|xF(f_=>4J1E38m#hRL6kfy4PF3QtMGyyC|zF9aO;g8}ISf)32GS$% z&d;LaA0!LzN%4%`>UXB8j;`?2%-nVWljmJ$Fggdx+Diw;mr!0xr&ggJlOFmqweN*r zVeEZ?Bg0$>Y!sTcm7yCW*^T!rVYp3Hw0$mpQYQvpVXh93c+%6sPWLfyU!QiOOEj|g zPlzW`rHjvLlCIGRow=NW#r@loyB27Aa9|Pg2mycu#tD4yv1BbdzM;}q3Ab(A6d|iy zubs_njd`12Jo-S;{^nuXdl<=3r0=BecucsL4m4qTL+&%apvNDq%6t+TgsGR zsppn7k3IxUlv-&>U_MBZoedUaGu3XhiF-4CAu4LviLQ{`Z3bI&CX(Ei@xEm@cD-pg z2j$zf!lyIhoz0$1Kd6cUH5zDg?jI0PxSR2?(1V_as1_%@x+g@ z4XN+O@Wze&*s6OYgXbb;hUrJPeinJtezy{qAYSpaEa1U_*=sdUcP!Es&&HxbCjc1g zE@#-8jc22wup`?wmUf`lO3WFGdEItv*xwh`gIfW_SLP*c9cxzhb#=G-9FBC48~K%~ z2IW#~eUDP*(KHI(3>VeZ2X-swJF_onfSwK zclV{u%|k!wb$i<%AwZQdpQEEBo6F#e$~qZhqJSQyJO-3{Id)8Z=HTd|u_unflW=P8 z7@Gn==b>94WxZA7vJo;y$}>aO3zPCBN;iStoKJId{8-Bz78tTd2$B(le_5hM#aI9oMOZbTf#2qTp zzZxHm8xl1L9sz?TlS`miDY1QaM!Lu zc6jTS@p1OmUEkbw?T2s3T0eY)x04jlAiopO-$Gmv`Ib$-2AVGDPOPrN@CI>k1F6U2 zQZ^($T6y}}9`Sbei^m_oV<bh%Ze$P$s?? ztndhVPJ<*g+UK@S+nv4Kvc2ID>|H|eX18qVZn@W#^(`$d#lx31-Rl4oT5ktf_ac$T zw7a7h;|xBnqiFXyBC(J}K8RA>DGtQ}EKqwaB$?2<&_~D@Me_!xSKzp6p?BdcL6-lN5a`=>e$=<(kMN@U+KYaZQMWs=5CMi=J0(Et* zp_OYAsg!-tA5p1vVU5Ak(v?a@U8;uKlF6x+YJRWBvE2%fyPu>aN{i#*NJ}SYHHRG{ zbwP@n!Kp*DDk^84ba!bdgI%b|TME1F8UN;Rc#Ah{2Zww(h~lq(Le}dLU)&n)OGdh~ zU>``PquC%V*<* z-BPEz6{x{mRakpebql^wG5Y=%70o3Vpf|`8&>84jqIWkLwF0^0dH_O@axZywA!b%e zUPUAHqyFsw9qUy1`9NN`sr1rhEhw80#1fZrbs5d1#t4NExH%qm+j+)^%*_kB6lxr953m_v()?PO|QScapdw8E0`xYZ@cC*_a_j*F~ohesBLU$n`gLY9nlHQ zW{2p+aVz1GUuIq!1043UTokzQB^monzB}dGdCf+XA-2^S09aPwdpFhgj>(CEZ+)`o z@{P(@5Wc|vGQ9b-byr`r(Y34F7yEu76~OD<{Wr?FCSzSO_3dwW^z?KzvCoFi{h0Hs zs(!=;35R%cRVj&X;rRm57V0SGKIU*WAV*FF;Xy~jTZEnFst;c(*xzqi){a>7{np64 z{dp&;P7u7w_v|-Z0}|}bHd^_SXraTu&Ga~-H2G6?$H#b870@Py&y%-SJG}ToV=>vm zc~B4_9bw30*9spApy{~7my=((#bDMAUEZQ`#yhY2 zbX=;{Xe>TCzq8%USfkNctzp_~N0%#jV{3J5)8%o|>J{2P{uhQOLwajdO0y3x zLmLVTsRHdw+%AYM8SB`TDeezNE#{!fVn$ejIb`y?{IbO?nMAz-cNb zfl^9uZY-h|%IRTGdZNnCDXUu(e)(m%n!gZblf;5gr6z@hN6CB0`{;eWUU~23m*0=N z#P_Z4DA5yICsn?YyuK-4KnNp=ct{#cSTa<=sa|ReFlb93$$-L*^jH!}nk6+OwA=+b zOc~{oOg1bRCe6k;LMY55Bj?^98DahLlPQ0i&8C8Bp_Y8G#0VMmA|m-@DbvmLp_!Qz za7DXhWMu2cK)P|GpNyp>h^S>;_8kbKj5(BYjbacn|B#X+3X!Wi$aX5)1?`2UduXj{ zxZ=KWZaf$Ev0GM^&~>r8jBGTd{qp8qS0Dv;zH+>&DBqx~>aq+g45B=^4il&%m=CIB zBm5XS1zQq{mSP;{Q$s1)Y+0}f!}}0i=64^n2t%_tC#QzlVZ@t3hns?24QE;5=umR~ zCAEbb{XMPz#P*@j4q3kHZpQ&XTYJg+#CGMoIE&X7SRn8s+FHu--2l1*4Ow87&V;l` zkoCY=fLr2kwr*8rXw{F%1nZ*<5=0eiBmS&G^#g;a76Er* zFp%;IOg!EQ>OB+62MH}HnEwFwL>N;ubBoHExjAS%^C9Ii*y2sN0tO}%Iq_4w(ilT5 zY*Dxh*qtP;qxTxY^?}i;)^fpta8#kYAO~~u@=$vbk3;rWhezWU+)&VXu+w-PMMSR8 zAz1;(XgZMTX?K(}K|9)eG8qK06I2r($@zXa=+z^jR}K8RR6l6h%6@L-qDXnx?0B#6 zUU`{A2O~&cc%;J94Z0uttLQU5+U-)bnyMLyitVaa1dT@8aUJFkkMs4bF{t1}z^#D0 z!nPHB7>N6@^0IM?0rELnRSA!ZxZ-;yK|sP6x1jeS5?q_n3R;uVr`5PM zT8|)j_yK*Rr*8}p(dbZc(1Fk)^=;F zou>LGd;vDspbcoXK~1e$(_K?h*J|h|pqFmPVuXob;a{DIF%q7To3x}tR|6aFQXcsd zMAa~)xU%M-E9gmzLzCg%gTA?kW0|V=BmEJM(D@}aK@5OW&P7#o&z>dq+#GUJpFV9i z&8a*09Gw*I@j7W7Am>-6&cZi6218$@ShD0A^r_IkZY z6KrZP=X{+IGEz{j?urhh+u%W9kL04dd=g}Nc`G@+dDrn&0 zUI7)c4l&gMkdF8b(L;E}F}pwXKIh&$cI=~+=l9)baAD#1m4$#SSCr-G z+Ew~}_o-QRA6B@?jYzIi`^X6D2g$a?1e8FJxG5X`l}v!yB=jT1`>4@}cN+DYphn}# zxHa+YW7*2+!($r1)}(Rww&I&d5tu|{PqmY4C}%LUSGQFsYv4Y?EQFkili=1?=}?4!`!E+NB^enuT9@dN?u ztB7N2BnGm45lWmgi>)9)invR4Se?)1gv-?2nNz^cQNl#q>8+Mujgbf-g9XMR@nAd% zk3@4Wppy(m`YT%GAZh8~Da*mj;b}>(f-nZDL3?Bj`WE}H>zl@UkNqmMzE5wS(66h} z8%=J=Rl3?bpVKt*Pl!R$)fnv_3jDatXcqi4z%h4<9`j){Fi`Ynt4o5RlJc+%M_eyE zjb^>U05!6Rix6PFYE1)t&RT0)B^R=KZF??vse*gP}>OE9_he(mH4df{SUk}*n z$R|e^fIJBI4?98?>=&@ zZ)g5en+Hod$yh3XRL%9GWjPDF19*LwSxy}aiX{_~tvIWuk3wCrH1juXXUEvQn&7c; zmJRyjbIP$fxUkCbGhPJ$bp7=R;d3@LI4!5Y`c<~AyM6HsUs!DKRv71{h&9Bxtg0Hp z7(E1u%7R%IfE6SO-@yK=YpV`c-BNW&)mN&%UiD23__7+KS{2*_S}_^W+ThXwz~C^e z7Xa-6JwhM?ke`@8&=5grt`{)BepQxF_$llHKInFlWP8%9iSReW*o1ly1C(?D7^8rW z2f>Fga5B+IiZ-a>v^A=0x;;@7*`UL9u)iQH2!0lbAg;(tqB!9B@e6o}x;-Jcd&UIh zN{i29(0cTG=P8H7Y3egMMUi%4qgEo^9!YPw*_4n(t9ltwM51o3)KGlKZ_sO=Xy^*2 z8k$`B=B9>JP?j1@9UZ0yNv=HURZl8!w7Kh~R>|aU!-2O|szVmB8ol{To~DK#S*K}! zk=1GR4L5om=AJH{1|(HD|K9m`g-PKjs$_s(=I*W3x=D02WoLn=18$KJ5}=Aj*C8aE zb!A}x@90QJ@|(9>qC49|?v_r^Xy;Q;{dB+{gP&I1)nQKwW8seUpWU14w%gVfYTCT= z=MKnj={x`H`{!;N_^0ty?_DvMxqzv_WrbCCF8H9g>+IFs&h?8udsuwWp0|{rgOT|8 zg=Q|EH$$E8FYL@*KVAO4 zb&WfaF5`l`INp96p7ks5)bsY)v!(i|_cKB(pRCI9*<*)M3qlu}F6~;kK#Lff7y*ic z6h>%HI~OBq6u&=GmMiN5iAD2LO4_WaK$; zIYZKvBs*M@k*J!z3n+M>(c=Ps< z*Bf$d@opH6^qPrYpiRKv{1kNIcc2RaDnEC^L=HyC-$4F=M=Eq;K=elgW4ZBC=wcF~ zOYD!_U7fj5=cjzzw{2&R_RsWmU*6R22-GyzJiD#0=ka=BcW1T}uXFEzbK5Hb`QCP| zykRgF>}l7G{N;^KsHRc69EzJ%o`zc2j6f{*v&O9T@VVJH|qN zTOuKwah*|TfZnsQGqmHj4*Y&cN5@#`OBli&k2;0^{|e{+36DT6g}wAlJR3R9qN?SF z^rA$=d8ufDWH1jFflc{^H^y!rXnuMK*XO%s=3qKR&WW(?*bf#L6(UvOV^37gvqiKe zc^81kDOsyytZIA$g_&Rri%JHWn0`=M4$fCWV}L5-nc%3%$hh=Ng&tW{9^<V}+#A=b{n5-!=cdGof0 zbp58r+;9@qt}8W?Ys{KAHVkgwJlL?&oNL^4S*i>4FL_zcmZ?uEw+>%+*)Z#{`gZ!P zxX!%I7yeix+|dzEd@StSh7;MfzZ$IHXg;-m{m%94G5$iZ*@a=VQ$3qWu}nZz6l6|8 z=SxZ8gz$kYcVBt^_1GLxl+9OOdCT~fY+@^W1*_u{J!<% z_g{iqq2Q<0x9$J@AAkOmRk!Uw(2rN~F1q>hU8|wHSMNztAKc5c62qlz#-_Mu>i=jw~yefLG~|G{(g43xdp z&eR?x|5@Su!`0ubT7(`TgfDEB&+TT@YqiU{1-gH!ABAg5{a9Lod0(zte{mDul}jx{ z?b2WB$q5{m+NNA)-19@*`=TwfMtk$ZYB4}m--TNABU$!1U(pVB0z5JnW2<&OAoSED zvQm?hQ1$eKHlp0kx}}3MH!o;H9-q$>3d-^vWnpwU9LmhE9Ue*iwJ1q6i;%M6_t#4~vFP+)~ zf0B=H0or$4TSTHUPBOjfqev0`8zHemsmboeIDPJ3^3PV8fyU!yD|iz&+*E zmZVj0z|BYr-G96vTRF_-{;+&{*yHzmj?-p%^k_7+;B&yWaY2qQ2nRBmpuuoFlZhLg zW~InIk!%1ab))8Go<%CxlSIARxPqNGCY{`;+Mi=9D z8Y$qltL@qyu&EwvaOGF^({Q;^9n~lH4=^>zCwojo9vSUBG;79AHqQ>B>33Qmqj9EKG@FxOEJAc65R z1dPGK){jnh)Kvn(D95h43WkAF-~WMS!D0Yfk7Yn-|M0S8ayhxLPtN6n+3fEt5S9jc zQ?4VM?Z`o8QfZ4J&nk{D42+HzF7YmVS8;zQTJ`~95oj#WpHhdzf5zb>m8%*Dq8=Ry zpRbY==nUE8c@aR4*a_qCqCu9xIf|Gp9Ta6;#;WKl+4GFLqp`>8pnv^avb#bLidjJa zuso9phIj`0)Ey(9kp3z00R2V{n2cpeD67e1)tUgUYqpkcmT_}lg!sC0Y&|9* zG$GvPNp>(Y>DU@-%H#`z;4zrLGHC62M9?2o#T{6~$m+!gsd1He+=wznh#{vr=YIu$ z@!v5URIE$YXN_-#@drD<6MAqZ3X@8wD)FBPNqgy^V+NJcpDw$#ZNBYR8b{Fgm2|@7 z7wd-HltL|t5Cp1u`789p<(e#ow*thDXF!8o2y>^v7Uc1R@?3=qIj^R`-KFj_@@Q7d zOdp(1dvc@fhuCt_@T(+MR zdJTCNR<+lFA#2dt>c}dH$mr^Jo30B^E!BZ;@Lm)aVb{@gynk*|aWNBiW6b&p`-Sr6 zBma2vq~qktM^4^<|KiuK-x*@r)boR1{k(d>n(zJGK=O-qvR{2U* zUZ(Lx$Zxnm1`$Fph^MxB-+$=ghmX9!{~?6;3D+F?tG{~acfWh++TPz$n=i`(PRQC- z-KsAn#b%LPv<^)VUn(vH*sYM365Ww*Z#K>j$r(v3M&yHXM952#pF709$nkfg=|qS* zT=K88KFK3xgtvm8!(oI&%hD_KELsmpCOSsmn3N%Y9g98r>nA8$?n&X8@*@hBqwA!`j{Lg$L(~fSd5i!-s{-N?}J7Z=?Kw-v*K_ZpYUowS7u;YJ?dHJ-zzI z1eP?9+c3HE&UvzRvT3>*d|JX4@jQ^rR@Mp84~S9hW)T)tUV87f$CQ_pmr$Wq{Zp<- z*{sUcQMV$P>dgIz4@2e5!-nXQtfo|%WgA7QE*!o9&bLcMOP%yd)P>Pqlrxn##vnj- zcxBLU%lAh>)vECZFIVq6=4Ho!{UmwGK9OQ^iVvjrTvea;ia>v=6XQ0)7%9?ez?A}5 zXsE0Vvik9w;|-2;#1F7lHx2OdMx%BGng)imP>=fnca6t{sl#rIYO7doE8>lzRbPSU z1a^<2qkwD%^E}1yt-zBU8PBlccy4x7c_)p2RJKF`@BVOZx zFuwbe$dJ9;f9>Glwf=5#d!&EQSpND;k~@7C_Z3k!&0Ox9ruD8{NBZaTrE%s2y?6}u zg5?JC?uuHG3moDHVs@BPi5GzF)nyHy04{^|C9CN^hry)ZOWx){S9uGZhiO4Gpmmt< zhL5!Q4wpel0c3jWx#!g9oc~9(pZ3F^gVrk%9t;f3fCzq|{uzF26*-{0ARzDjwcP9&M+cen6O=hxt9bxC;;rxCn)yHY^`NuJKDJp6U=E!mj zV8E_!fj~Fm*FvU%&4Q9T!^MphyyZq9DIN_dj92yzy365rK4P|>G8rs`(|)bNsL=%D zPK`mJ>WX90!KrYN)hho{?kn~%b>J1W`Pp{8`-yI2qubYgsZXaz_F3cBaoEGE(SuVv z#IB8dF4-_dCYdE(=N`fdX_r*{u@|C+H_;6_0|)3YB#NN_s1A%4!07p>7>Kv3phnHS zWalICggxW7nncUE#bF+VGnHGWAnTw8reUii10-jwbsW}VvjIsNeJy|+*-42})Uo?U*AUh9_jBhbj|GF#Mdf|2MzE}q*NbQ|?9DVGjv%nmES4|yHx zkwg4%_*$dGkTVI;RI56q1{hdi?7~=c3t9nEqsMB^jgEq89vB;x<-xIjhv*p{%~`GN zL?+|eae3Bm_lRxno!dIuC%OhZeUj+0+q0vi)K*;>_njE`CUAR^Sfd2y&>x7@!r?6Z z#2te0Vv*JdDZGT7!DKQh`wXT-ba2RI$n=Nhd_-o?AmtMN zlsm=@X0u_8X@yy{LGjUtakKsdgK6Age(Q!G96I!a8w-W~YI-JNw!ptCuo09Q>uS~2 zDD$-?c?x(}q?2xk>Xx8M+Es5&8ym_qS2P<}3fX8@=r0^Tdbn`)-o4`+Hf`91*S^9n z1-x)C;$Ku7w4HS84Bpj1{R&h5St!(#F%z{wJW)+Z=Rhvf@fFdIbDVQyuS9&lxrCU5 zuZ_iRj2bh31gkzxp{kK|ycpNMN76WhQ_@_w$ilsHeZABHJZ~7meNFd(&$z1F=777} zr<=eZRPd%wj2elg5lFE>8|NG?+n|pheGrhe?)B~$~&H49Bafj8gwx_BxRXL)S-Uea^(CehOqh43%j*dha zv;ueEK<9H?N6faQ$|G@`3MaIkc(h)$nSWSs{}XFtovq$bU*C!;Ws2&IwkBIk!y)AA z-1l2}R6FYHzY2fl!~^USq>a46TCW^M{u|SG)e0wvZ9jaHA{l8!CKd8KaSW#(AEtONn%>D1QtPuUk?J4*_Vk@F(YqTL|&ws1$ z|DZPf;J3eJp^sY33;LN6rTK5Q;vX_D+4SwVKmAe5s9Dj+mms(8fQVUER$9H4;TcG``|{6Ob~Sju|A<+*XZcHB=M0426TgUb@fi90L4@^=?tF6 z*7m7yP5n8^bZwsg0s=u9zaklavH7Fj}T(Lqva`f(Se(6TJ zeE9C85h1c=!`*jp*aF$L4-zc@ptk+Wa;f+tsN;u}OH(SBFizznKfs&Ne%nz(6-!`8n0i6@ZBjm4E8(ff%RIrrs|u>E^CWV6{PvL9zNow++ZaXY?d z-i3SSpu4HV-2g+-2H$#h_mk0^2wwiBG3>4oat{$)AR3#t^jj)VSwE#B^+1{<9d4QB zpmh~9qPrTb25}jbYNwT!B*$3*gC14S&A z;v2h>r3c&>4W3ezC31bn~(fW2@?!VmM z(-ntD$K{^pW>09KGv2*E%l4oNFf8#_@rS^|66eiT_86T6`%pRtE==DH6HNYnPu>GT~77^WQu)B99D*M@GWKBeMGAoj6l| z;Wqr4Pocb4loy@}jYJFrZ- zeLVq_=VruKk1evJMQG~k9rM`Qdb^sMx-wD=Z2uKwk7x#uLTtngC&~w%A;k>}wvrl` zk9&2TVl)vJ9qK_BjN?8uC)Dp?xq&W8K(=ad<78o2m5g?E%GAm-7$MC<3gq#An6Oq8 zLuRzfTlMYBahEh?&Rv<}b`BnApWVFqv+z9=T=I_3UaxwdVJGvkU!Gq)zGbx^ep$L% z<&Xb7cAK)}YGQr@ z_NbwAe)yzT(<#`T{Roc2DSXBKP_f5(omhkTRO|_3y1uc|ZM7=r{a?A_imw!08#lTN zOGoUHmR6t5Kc4petbA~bMf9~~eH*X3MG6MCwzX{y(3Wkp*!bxpyTj_XSlrgP{H}D` zRk(Y6{O*D)m7=4uqx;Nys`A%zHf8K4HaE zGdNw@e-y)k6^CX!Z~=*gbsw7@*iW#4b25^6!1-A@)7~n}Ak(T$s?zPU*ScyIYJ=|> zzX#n1#u-o!$_Zu%qd^!Gw5Rb&@mu)E-y&`1C_W8;MT+vuaEmbz0*Z?ZnK>ARiMFWE z(sSIyBnCO2l7z(xrYH8o5!|nEm=zXI&oTW6${5|`RmJq`!Xo4H^D@nc6pGn?0p8r2 zICE=4%<;06@$1OvQH=(HQWK;{jSrz{gOBzEZCqdQ_xJk?`uNfjp1NBEu-%w__qI!? zREWDh+tLMdUu$chxscv?DL-l;nV8leb#9p8l}%Wg8-Y}DDQVRh;^^RxPR?dnsF!nn z*fBpj4;v^S5P0m0HNC9j4yXs+8{+3Lu0z#~pbmspOBg6{hFR?Z%-wgZ!reP-_IkSH&0Srdy2eJQ)w*q!Uod&} zzWtpBzf>c)!J~q2Ivb5U;LT9Cqt5cHHGO?){M`zAyA7+ix@LfPf~pUy3TR=#kRct# zE6O-LXT%3mKXgcnJIh|pX*{>KIoK%q$=H=&{qk)~6K=!xD(d*tg3qV?CRG&6tb@xt z?grU}oMRB2D#WvZ(5dhb269Of39X{@X4iNe%Fob%>`BWGhn)6kjQJ39Cn34ZqF4m0 zlRNCRXb0nRpHUMU4B?7gD(ncwhX7dS^1J86anOzBHN$`pz=?$N11q60e&81m6c60| z3&DM$_`ol4aI?B@s=A<7p8XSamah*Sum=edIqV{#G9nLOAeI%Ngj01?YR?hOCF+Lp zNC6hG-46}i(BFTj*k$hDK_!$~D3()z*4sR8}Kb$1(}(7*ab^^E26(1e4()U5Sn0BwRe7XmUDDs2}OC)N!Q;FXV;}20HVk z8et7h3zwq0DN@vG$6ArVA;QO()6JbSN^WHIU37a)*u`($CpczansErThgPOvXWQzH zI%~b%Uf-xUdTh3aIhJ*&qHslzrrg;VRxO4oQzgF%LcDr4tX{&<8)!nNa!Tfmk@!~QQz;dlw1X{Ff%r9Ng0OXUP_6uQ_k~acj z+Q`69jF+SbM0p|R5OX3x(j3+s;1tGefIi@Ctb|-|(C{nB<@2Wn9Bk7e{{4odroD!zI=YHnvjIhr|ipga1^2?KL%AxUOY;-gM$vmm# z5^Vdm*ItVva=v8&b3TnZFY(b6wR0YkPtT?JaXX*{z&8-Ti1-u`Ca?{d#NaAUhh;g; zvqGhpjzW^l?e<{fl1_VE9=8WCmq$ojtvq*BX?Hp_=rlU=g}lS)8Vm*tN=t zkj6o?iJueFl_j)VGlIJ?T5xHC`BAzUo6?EZZO4%@+oh!jgCe2ajDb?asTD|8HXfT_ zYP03mdkbhq04n08dvm$@7FM=iM&m-s+yXDu!iv@-Ijr2L?YvLdY&(0Ix|P~W?NaLG zwOVa{MLQL!hQk%X7s4_2S%bZy zMn?!fh*rZpNf1tC++pudAvZJ=icppw3MuarP@eFZGB72$0Jx#N{z~6B(uZVr|KQX^ ze^#=gy*(Z13HEIMn~n*G2q!DSAz0zv40q_t3MnY zEJS~`Lp{4AG&=gT``E@_5j7iBvn`Micyl3z zIaVI5LU9D~=}I5qwTw^p8j7Nvri>~qvzV2Yo7tS`4$B$k4S1?DmtJob;TJtAXk0HC zkPaBfyKsC~dCNUEo)L~_WaSHT@1v|o&h)fG&z0@$Y8Bb_V(aDAT0gA5&UM-bG0t@D zHqAQb)afm@%L`JogWO2?*imIZtoT6r*V!7|&`NARv#ba8qwd28=do;v&GSLu49 z&Esg(IUb?ffqIj2*e=56tR+}0#2W#(zT3-V_tDhl@IPp3kFepMK)$Gl=&l#n6}JX@ zl)qxTZry%s@AmAtdoEdJr$vAzHhaPKwr~8;)UqVh+)9_iHBgg4?MXn*YX;p`jx~PKPK6CX3&)&lwdC z2hFpVr}X+sjb?Dn>=VaL&)+#Lh4&(%ndE`XuEyka;3h-! z$LEJM{;l^v-2 z{{yXu2-&$4^{1>xT*ja|jw0LJFym>`z_v>kAIy*PkpQy~zVW(ito`UnRdYWU}%khH`M7FzH2? z!ICo@qI&a?@@j?4=kYD<(xD`Qcv{VddJ%cwn{0KRCb1>4eX7z6l;)ugehXXRw}5%L zoKK~cLuF<16bvUm4{t`h4nZ0Z@W?H&*x*C(g5is}OuUFY#|eMsIbzFKUq`6Z*>vj0 zR66^I9I*YFR=2w~6ZHFokM_1gnr!V2`27LptIOxhWmRQ~8jJv1cd>AYQRoNA*NEbn zF^b7I1vH-g>;efLmWd?|C!1H!^dDz%EHXLuW&<2l^!~(%#poUwayaJtW)73gb9koj zf9~GhK|q*w#>S}0$fo}HR+GNlAHDaAty#-GF#B)bcMDxviK$k$0X0It2@=)741zF& z9XyK+zF!SdrR*ju9bA=!v3)Gj`81xCrw!f8fktXGV zrbv#xnF(fZ9vhp<__IGsr_(P&Ipblc9Fd&#+H1H9isfZKcOCSjZFoMst>NPaz&0M! z$T6DAfU@=m${)EnS1jViWQ$Rm0NQ|&oiJJeJ9Ugrvq945;eBE+T<}fGG5UIXjvY}> z!WA04M#&!2$Rp3z(4E!r<#A0No$|`QVE-e*HC1)leSu593ud8GX4aFAlNJNQDM=y; zIB=1iZ@m>dnK=R6EQC_*!G~|Lzfi9DHZp<24WmNd=D%&nPj&d2om??uEcoV|@=5l9 zGImmVJ(D>|cj`I$w@l`#f>-~RVv>_UJ`WJMiI;`xYGsT)aFRIyWHt8ITb=mv52zRy zK9^)}%7>|I#0_lOx89OZWKRBo9>lJpBGY}o#T-3I?MHLAEF&B70oNl165=AEE9FK} z)5#G1o}5pV9pCQ6bHB|Vyx@23C?jl2{D*Bc5m8C}E`;i0&M5EDht88LpVf#qX=vk* zvbRA2kGk=nKqU)X1FJuYhlN)CrW<_#I?Eq~@+t3}km;hi%3q^!G$y-1SH1~dOdRVJ ze9PZ@zns3GMIiJx4`)-(p3Er~L zEJi%xuqWaeFgrvGRuJCj<#Iv}`8}nydn2W?#c;sOrm86^6qyv2YZml3x1nsoM82B} zd&=x|AOpmO#XK(fa|edVWzlSw!V%AqXx@iXnr6*pJ0f23L9}N(=(HNs0XoAF>7}z% z#toGvLD^z8SPRLMjKlDjb;H7Vg#Rh80Z{M|vYtLUJA3?w8%`ZM6tTLTh+`JoS$O^W z2wT5Cm`DWwrP;TBi2i0t$>@ijlw+HywlwmBr1eZtHFaB{wZ#)1}_jdR7d z6Nxi}!Hy0V?C^%yOZ5J0duxZ9vhkio-qGe*dZEZb|1IYlCM-T5^zB`UyrP`zYP+X{C$`Mz)&14f2<4Y*%TfEn37&&I3?n@1l24UYy@2|lEB>&; zd&FHAFKw+y{OfY-qp*o`2kcsEdK^@a7d4vz$${h-N3D(ty{eQSWvr}h;gzj>;XtV< z<%f3n&+r zO^ux+o1F{eH-YwB#Xk}%+0t-?1;y@F{fGeK3Vi(-)b-rka)ql0d*v*O22eyxWWX5F zhcjV)#5fR%3>ua`P*7tjpDmJdWQZ}Ccllg+ji8P!ttzonIB9WfXW9Hdt=n?q1djJ92WPb| zSXg;g)+lf|ic6=bacNX}H;PNu<3+U|s=T+{zMP|6tF&m{kJzYxNNa}6jkls1`MSAW zCQ#mslxWR1D)s6bO;PGQEE!AjGaE6$y0tnOM*yq>dq6T__XnU@pnnegk=%eo9eoY> zrvy2%Yav34_6`1kjXC`jTBE@#?mFc1`QqWZewRlI`@(LYNek?-tVZKX>`4Us=OR(R zJ}8`b`g|d=}B_v|3U|lir{mdyq zWpReA7AejBn~0xKX&zb8uyVtaD^WxWpQ@|rNhf7rTScMSF=t+w3BJ3MP+v$ntm7RW z9{WfIjax<9_`FohLI`%GD*y&|BN93jH?vYZz%N0+r#{2#^`i1Imi^3Ulyl}L8Y1ipjHfn76MLf{$ODvMlfNxS zy+KMOLJpEAORrM7{sesHX0Ageym@uSrp1tV9mlLwnLDz^E%h8vi`17MO)+C0u`RPF zPB8tEBU2`kTwsLF0oQY`0Abp1!F~%upl-FcSS&42G^;!~(Y&3YeiEJs(WwSY0-Pta z$j1X5I)rynoZTkCBq3}L>4Xoa3)AdbtHYde7>yxQRD92BGRdZhHDz>Rd1ZU1cRhaJ z$U5H!Ynv%%9}w&7z6|{FA)Ber}&hi?lM zumE!(8;p*I&BM-tgL~7vQsL2P;f8*BY+q*J#?X)(5>wHTF2;jWB$F-7k0{2}u2j63 zHWc+E^98b>_NBxAV1<3Q4sDy{=(YUOfkYAtt3WlL1ydfG@putzY6Lm72IQuw<9ZG7 zb5L!-21&W)&?I3Lt#EL_IcyS8DtBbeJtW^S2;|KE8wx0LYF8RaVq-a{6!)7W?z<(A zY?Yijl$eT^%|v{DDyXtE=ntp+hVL9k@%6ki$OgpbBcsv2DZ_*z?D8jsVdG;VJjmg5 z%Q!W~*ORIf=sTITlW?eEfe6&%^5Pt;lF!V&a$@lSbIb3{y+Zwrh~y=FRX6mjy;UPs zpFn@3>IlE+j@n@wK;3mnPpHa@gyiL~{_wBc@wlbSu{^aRN*C)`(w>+``ub9ygf<((rE$UGiCB!LL08ypFeFYP^M~Fq`cLg2^yi8*%<>^$zDYu?-e>Xe z9O{dQJR%fK&sux~lHV_-ETPn(*EY3o=nQ(&kz6Q>$@^UY=x~29uN{h;MQu*#3uZ*4 zb;6gj8clsKCS(a?A@bs#6OrNBdFCg9+8A;~uG=--7Y`z#ln@r>Vki;`^^5WT39At% z6Pn}u&mUvIf?m>!)c~HnAZz@eyhYGib||0GYs-BGM2=szN4k0=y>0EVck~Po_lS<~ z4S%eoPdAh>+cld41MG+APMa(kmVLvM`y*o5z>6Z^x%}ijnWH#QbsS?f0^5F~>WZqW zWO;UxuQGunawi<1-y=kal!*|ZF|lGqjOmz*_HY0K&?xs%5@Sf5O}I5c3+rWc%*6$* zcL4@iU&ikkPvobK(LO0HA!#E*Wd)y~@~UHJb(;)E-5FezcZcq<+;A zojn3D&rJ*mNT3=?URd7u_V4!%56?)$!jN>`g@t0$=k|NI4|~1C+r9fa4gD6{wG%B2 z%~d-zS3oiV5Gc|;vr(o|_C9;$K9lMA9VaIzpMCbYDQG%QG@#@UQq3h-@&x%9@dlzj zkQG4X;4VNaT>f7IK;Z)=Y6rGF3_{>oiEBjMMa2Y&$imNw`M4zWN;B~W)J;FjTVNhvlhx`sj52X44ja%}W& zPc?N|9rngxQ!3un>5|N?y}iZWCSNgL-`?BXf`50$?b+h;Uw_9J1}fw=!q#pBeTQA^ z!mJ9_#I`~Q3oUgFz`ZsvUfj=eMP>!ZT!yeG;ByJbOM0!!ub>=*#to)Ee1kvE*Z&HA z@$cN@5_g0)5JG8ntQp#~PyXXiM_>A<-|qhVzXx{K7~OUZDY$;f((2q$aobcKHuzX* zOY!DfQ=#MBPs8kaCAyU~k-`I4eebF#uc~+!rZ&0d@QzS}Q27LJiL8 zlHMc|4InI?c8Ipl1m}XocxR9f!`L^>kFo7DCW6eLH%>fh4fgFc<=?Xg^Sexar>sHY z0J3f`Qa**!E|Xa(&hhtYc(JN{iE3}K6AlSkn@HJ3CK2dA379LO1I|Fne?+x2L?Xph zsu&p`d~9GmGM-9dgToVvo$>h2nTbSVLO8nqN}RcJ{gtT{Hs!~0r zKNsVg3)0h3Z>tKA73VO=Fgj!19M=ejJRfNUVADRv0kue<0d)mG;l>!Hppmzmyxyj_ z9p0X|i{2(=81*@d;I)cdy6{&jPg%AlTUiYJ4;0{ypsK2CK-nSS!#~5R5b8u&+3K@@rp@(`NTqvkL zd{9B?35k}&Yn56DK`(%Af}^>xoqcLuop%2}nO*u(y{1-g)q8gS+0I6JlU`SEW$c^P zpK8^vtC_B^zr5D5POEMC-WR`kpR=K>wMMWyEBHdfA0%0Yye^j=6yXl5%8V$2daxu# z5|Zp_xP%%@45_LRd4g-7Tnu6~>6ccA0w^wDb2BM)mbWx!NG?&w{8Bj(RSm*iDhiL6 zAk8-xNY(NUC761EM;}-&2&+=FZd7jBbkFP#dD%y>$HE`}cw_I zCX)qrY?H?c*Al0Uv;lHHyZ7e3S)bKual=F(@;#Q^I-l|c|FFt5Fk~bN1>4mss6087w zCZZJUSsOsdV9oV!0yS651@bH6lpl^cWhEz;WNsIR)z>S1yiuxYHMZ2cwz*rjyIL-F zyS6v$TWVXio<^Zf<7l-qi}GhZ7Hx~gP^Vew5k0o~o`!0BqsgxP1cBM#Z1OevLanat zE%frY3kMvw!x5jsRr=GnZ#dlO>^Y2ZjQT(QQ?IGsddnZzJDSXz+itTo+s!vE5T!ZV z%vcNmfvPK2c@Y70ZyoH06u}N+2}4{BR#}+x5HaKpB!%%}@$_7APB~aS4HGCc&0)^Z zeXA$)=v=Y2=lT|$>pgwC7hP4co|COpjXbGpR5ec2McrJP(aWk~odim2&6Tlcs~v~=dcE8X*mQf)B^mYA8|8MZg=OWomUg>Kd)ehR&h}g+=5y7x zIQ7*wARXEoOm=-;t3BOfskiCajNZJiw$bhZyoF$q4Q7MIcw>J~GU-iDb13fcTMU5U zkX%7vX=W_eP^2&t_eUhBWR^U7jp&O8Jyyx$^hBIiv(Y3PlmT#IcX_pr%V|6!u7@ANghS(U+rr4yO?9i_c3@B0$3Ix%Uu# z=#T}yKN3}5R22S6@kgUChx5^Bp66jN`BW{@Zt|-{{&@-yBN(P7u)QT+#%ykxIPj8pg+0~1zn4O=-#;&+xYzG^=DLJ?;anntW zO-@S)VYUw`!w)^g9xfzKB?{xB^^{dSPhDH3K^%)3BawsrGE#LFYDvM;NIAv*!EE-D zu7W-^HBuD3nN_|QAWDSpYIbYym95~{qLOBK=c|HI{4awBe}?_8(IJOHaM3Tzue$*l zsbWSFuP}}AJq?Q6$hDY2A_Y8TH?r9xr2w}>p`Y#a0erH0sA}cO5fvzsMdeI{gR)2VzHZYAYu*|IHue|H(t~i0^Vhw z1r`%5Y|DX+ejUuVkhkzo+5rx{Zw|N~;ZeSm_X^YFd($txA^_y8YsbF1&+G_yjeTZr z-vi%WSorQg|1;g2^y=>jSF>Nh!c`B;`w;bXV>cE`d%b`NGTQM^HeFJ;0WMPb2c$cA z4{;L)Iu_aS~>~sTnlh++x?I)>YS6*G%Y4tox>8hJfD19G2$B zPOUx`TtB={FV;8J$m>K=W9Tq@bcR|B=M`^4|8GaTB%!4mMBA(M26ntyH`F>Y^f{mL zc8qiASN*^l+MrT)K(yf>xHddq0fHQue)yOofel|G053$je{%ctd;F5Tzh90F-!T%N zOlJqQMzhIef+`BkoY`W0A>E(Z+m}U-4P^Mp3NEc)qZd8GP<&@1GM3V3vl>I;I@e$b z5?Dd<I=ylCzl%K7I6K%?q4gL=V0!y5g5HS|@#gT9J%8-&pS zIiL}VgqA2Z3apOhr85ZTX$vHOu$z5-_stEWz188^BDS=2!ndtW?(7S%Kf0T~+FhMG zHz|DM%MLf3KOJ9o%PyDfUJPf$cqz)B>FGW6{AJl~InNMLF?h*x_hb0S>hP+@CxT8d zzu6H-Sp5@~IRL%O6AC`kIftz7+0T^&_}sOA{ra$j9eH9xIrDLbPvPrua=-cxQ~j59 zkmPZ~vl*^sizNBKAr?_Z)a%$R`Hv`f(U#3BZ|vOp6#lAHDc?DV4_o1N0OFr>2(K$U zpJYmZzMtv}PsP%@RgO(1Z;c?=23%nOBxfuNCnc>wL(Hl^mt0MjKBUTV^oXWseuUD$ zd?JyU!5`%urM)oc5tRZkd_}g1*de9B7U})leE?yEe@VWyr+f+LzYp9m8;?5%2hYk~ zu0ok{CDjH#j>9~3kHei|9@|U23)E4vylK<;rcLt5?U!A;aa@+d8`tMB;V-*=q-Qd% zH+6P@;*+sZy}suY!f3Xb#p{{jBcoGyP47?p68-t9k?H%643DNKGm7}aj40oU zG0(0~@~fuMXRyhh{}0UnUt)$(Ru3uzLREMX0@b=04ErFwjnqX@mooXr2L#ze=(oZH zPv3C(8w20?M(|ir_@(#UEk=S~Gzwqbpg5j-iv7(!+qT_<`(q-O>;-DJNyMvjpB-d? zRv*HhebM#gl0)xfl&hOR0Wgmb7Ycyv!;3PSDen&||5e6!L|!!fRjwN~JeC@MZ73$R zA<$>Fy~J*OLIH}GvgjD@*kk2=j0T&&sl*7+jfz6>s)55~I4Tcq{Xctj`d|n?;=l zej?%d%I4$Qx;cG(u$}wmo?ervZQ`vF+_XYaTALr8(Y`j8#ORN zRSBSuwDzs6CnOH4BVF*d45QD&J!jF#uIor>2#&Sdbw%VIGiAE|CctHu$855gaR?yDi8;V$+$@<&uee_0L~|ShBT5aX@>TkT~YMu zap#>@x1I`$&{Mttv|9F;u!~AQHhuZcR?*#JZ@lGal{HYZ#f49|pu~bU)O6e1YJJpg zWjn9qD@}m>36e|UF+iq33R$b0^{@s^FSU7>tig>45kts0sSz5^j>*}qJT@lhL!rEU z(iK}f z;1)}B{J${AU&0zd5$i+)VXe_&u_h}en3+J5Yh-|R4N1e!{MA&Tcz^-wH9Fz%?HSy% z{kHAViT12|l-Zr`V9E40+AIH%7Jd@+ZI>r@-}1@7_(ae<#EY#(C-Wjq;{5VKRmc4u>&lG$owMvusW|vNFx$Y;l)9KgD9P7BOxES5CSvm3Dw?bIFL-07CG_nn1cP zQfX5GZNQfxKs}!W>4CAAoM&Oz=qdJm70G9Rqwe8mTFK+L;f`SFaYNdwMmfaM^P8#X zuw^HZr#eH3fpc_A9G_)>3!4q@3ElLgq?kV2)6z@hiWok%tQ0%mhEaw1$JOpbtK&9m zFy1jIG1xKpPFP%|V`b0=VDCag$urKN-=)adGHu@ykP2I<)VC^uW~Iv&2sX1HyZk*I zPlX3nqc|0`x6BiP`&&J_YhXocL~ByO1Bthlig^zp3OuJXr>7V8uEKLtS{d@e{u_Ci zRz8RF5fk49PaTTwSdDJKqQ2ZDqv|TXXypADsjeoInZ|N7&dz@oXyt2HcJK9fH8wk~ zWF)3Oj)T_R3;iYaF_c1NVWACahk#Q`-VPMoLGooAp%?U<+3Jo3qCw58fCB<) z4hwWez7i}QP@hmQW9%~dXnHYY3FijW0O`*ZvT|YP$Q{S;9Nx(mUnmyGbI#d*6_CGw z)|vC)RUAGtGIC_Nco*sgI=Zx$x~e{hr!A?}pQvy zKzN!_n;Hof<1kGlA-2hnSUD>;TBADwW4@pl9X^vuW6~P+rm)|GoS$xkMRT1T^2N0V zx5pnAtwsn`AbeJ%#VPsZ)CH!7S<$XHuB)qEC%H|m8Jhn3)~L%ZnqAHHE|XR;8k@sN z1hLNPw7HrZwAC7`$ql5+YDjubolIM8Y!vHk_H2($r#00#rfs6OTBp$onrfY{UaMu* zbq$yE_Wc;f&TUvhTgbzJB43EQtt5Tq4o%<`$(rsi)-7a1DbQq-@eXW4!$3N5pL>>l zUD@-NiO8SHY}`lR?t{b$A1d?0drzklPt!PUJpVNzU!BBkfnAHi1O)vmtl!YF0&$|$ zdmu=hrgHhfUrktLL{!+VM#0tLS0?-&t~zF}b@w)h*?n((GwjT|Yt2^%lF6ZDQb@Y| zn$K_D`gup#+$tuo>G|~F&PY#BWar?gd#*`}t;%o9*gy2ypPEt1hn zz6;=Zxh!^F6I93d}quTi}@aWa7>EDgxm_H7aJcRi%Mg@cxi|6Omy>a(B}2r zSBy{{sv1Dm)kURZO@SN${M-wdpn2p-d+u-_7ChGvbGakbUMUQ|D!Yyy zD-@0$bHo2e^qeX{8Fhro1?5a@S7F=WHi!@@QGydY&DrH=G*>UX?JnQ^XaSh= zc)+ox`xdsz?rn7If5rV)-qT!pPefyaidUCzq-2jBd*$fTO?U}WMBIY6yJ|OI@~wnz z8qHpINGAv(=r#lOzzu6#5?YrO7EgqRjuY>!nsAQ~$@|YDHtryM0mf4&%&F>5I1n0w z#TWkQl9S0!X()7Ej$8-m5~sPS?kd))4%qIyIX70tpl4OrV+^!zwL2h|@=}4*5N!mf zL*v9oycPX(tYKAbfCHSL#H47FJ-e`AHf0J33pWjB$h?~wG&M(x#f}fFoOnUqlrt1305zR2Zjr+lrzmO7E*ecBsZ!h$#@$3oV~M~}kC>;A-V)3V zNlR-M9g-y;$30+(S@BUhSxOQ_^hup3WghARZIT_@YVs!_M9kFz2Of@xDICBgnBbG( zgu|CPdsdksq~2z!}I zOz(Z7XJ3ez$vl9;D#Mg``z)7@`+#4hT)H()r>n{{@{tO%su1u>E%9B;F}iB}93m|d zla>U>hejcQA*8|8(VKj+C~}uQeE;)1BfC!J@b{x#;hmAl&anRe``Ik^?2^8|hpt|K z^)J6IjDK5s8b|Ce)?dB;OMSn&Sh%2+gmoA0xJ%YTFKq3*daD(^_0S&0j@~ z>oaH1LO+GGtm+uU@`yjzF`;UKRApSAyA9*)W8ki;+KJx`kmH5cYXiM@V+u)d(@h{V zo=(f;ghyH&&d;Qxt|3_-az#@!`Qb%LdOJCI=}_jtHO0*xEq1%;XzAEoyyigW(jf@3 zREO{3{&vt`!Xxgk%9W7u%IYN2xx%-UNUt42I_NLBDX_mKNcDOKuuX1WLE+#+jM8vJ z0;&sQ7EpOhP%JQme&8;_SH3l<`zWYVdVDyAS9^?Ly+i5ZB^#Twz1+Cr; zBk!GBy~Pf#22 z%h1xYuEk(Le}TT9{{_l=9vqkjlm}YqMl6TW4?)@43fw||P}8=OG0`D@*cVTK{p;!Y zz%$QC3FPaFhpxMhjVifiC5w_{&j`14Zwz&$y9Z*izv`CdZe)S~7BsnM2-1?t|37nY z1K&n@=8O6rNh4X7$Fi(1%j5Cr!;-8hvLefpq9}?Y8)J-P9OD?{8soYq4QU!onwm7t z(ku;Wn$1ZmCrz`IvMl64O1W$oT*`7-ek`ZAo8?lLlV({C%VlYoaww;lr5s?pTs)lr z^NwUY2HM`U{r&FB)@U@6=6&a#_v88aKmSLG|8x#@pmC=2*jgd~VwG%45h~t;#>ix= zGIy4w4GwJK%eEE+{8_vIf#KB9;P%0RN0P;2vIG>f-Oi#?EE5Zta($(N9fL#L2TG*} z)MT=h6j2QL=QWT z8C+}na&_@fiM7ulKeP68gRPEzNfayw?FF-BV61lS=dNd&D}H>{k80~|1|b9ejF*Yc zjcDT$Tq))7=xMuz5>W+Zi3PY3BUt% zPBA`}Wcwzz3vuP~!%4ZE_~BzSHzE0^65E{;V(QsL1y$+wPRMd9F%{L`eQNe5tKwun zs}P#bJXa1#&cvS3J|-yvdBCTH0n2s9_lBN2JUC{FI&Xo$c`~)#-6g-ebM;*d_0;taYBv;CIc~bVw|sG1K^%L%=|LP)WcsU}m|nLIx}R$_xE#;&cFR{x<9|KdVElG_TNwsGuFo6PkTIn=f9pHtt>>b*( zHoE(^Ke;{;z3#TTtT`=qTe6KogTdHv!YY`3*~}4 zqF$-GRZ6|BzSAM^|E#uSUl;o0Pvz73F@zJa^m0sUhe>c|xd$VM=VAW0QT zmH@K_$mCATz0*TbFOvQcR7K(Pu(lKaf{RmxX9eFd3FlDv@g?duTtU$BFWeiIEO zmVV<~by8Mv2OAq1it)9qp<>28{5Ku^th^Zg{_FR}%k6hd77_rlc$))b@+9j*oS+H1vY8?W}U=T4Q&7tdR z8|x>6K17uScliDFHYCY0*L&Rc4M>vXYzzO8b2%;dnR@6Kl*hP+U7$=5lNIhp#X1#% zR?E(7b7Vp$?lej&yLa-nSUx|R&%Z^8!xhPRK`P14P5lvlG@3ulbMjX5NsEx~0pDd5 zQ$!hIKw8Pc4$v>V2}aFs+VRlWU$^!yNbDe?NO+@%>OL z6%r1C2NJ>}^pg+n0fs0B`H^Qrh6TihfyCo(bno44EDslGOxuGDa(mvJHN-Z=-v6ng zEwVZ-Hv5|Z4#X1q{ACz}m7>fpKtxeayM2HoAYt^I0pB@LFS0n< zt`H|imMd+No!0NSel7`Z3h^4cCCncPNW(}&rI2g}REIDVz~Xz3l1_)bloAHvXWS09 zbgnnKPc~JvUx*0T!Cwc&0z-d?{sZk3lO6g6@eWcK!B{a-z#)wSa=cUT!9c-S0B2t= z?Q~1G#3Wl3j+op;0;wuhr_<&{u5Y#Ivpe(SbVz}Z$>|%3PpQK0XgGhIA8>o4u>>Mo zEeOJm#%xkbDY|{&5jJ}5mIR$pk}|Prm9KXdKOfxz(uYWg@KkRsny;&gMF3rm7^;0~ zDcpwbd%2P_R!uP_1y(-ev(G*ayhJ<@c#6X&0>VodD#BK#&dV%UfDfA{`B1IQ>8dcBP3YczThXx81%hj5l~YUpqt zke1Qxhy=cHupZW)4e?{0uB@rf_k>sdp+{RZt< zg?iAh|CjnkDvR2{g1P%FS{9=h4q_dgX)rg^(t;@r(-pGr2mzO0U4z^VKNZqQFf&FW!69yvpe_{J+>}v0ocfod6XCuF(OM)Jsl-&8gPmlW5d)xr$5t30 zIdb~Qh;W3Jk7;k`rc%4!-D6Bo=1Qg6-dQzN3aRvZHZT(k%>F1a8wkv@ivi3X{-do- z9=UAsJxh6Z{l9eQ-p+rjY$^5Nb9}@9Bfr0`4Ntuf?7)2?j5tNJuRw_FH;9nI9<1~* z*pQ&K3=GFKp2JM;RRV6Lh4r~rMF)e=(BWM4F(gSvkOElUBnvDhbpNa6z(U!GwAz@` zJXt_}XfDEHZRUXod;zCq+Y{R4Ij7L?3?&23kWIoS5pegjab_pP`GT|Ti-!YAJ08hE zI4+lPezL1n{VzJRF|ov!fc{^`iy(AXUoT+XN0;kbmjb@uZRW#?hLrwnQb1}E%<>>C zIFA7s53V?pMYxjaAtEV&<4&+X9X2-shqP>oSt@XZMppAndBW6mi0_VOb} zQ5L*TF^^A#9U%byQ=zwjf&sq9D@P@3!uB2yd&P#`=guS7ZW!OsE1-5&R=vgL(){qj z^SFP%rrCj)I0kR3!uie6W+-+bH{!4@U zL5(?uI5fIPAHZKC{0g%Hl4B4~pGy)L{w*+?;Wi<a(vGtEQZiQ5uKb0mtqp@=d9E>`pHbcp=EnkQh!9S(5yt#Z zmd4a7Nc#d@q`d0{z44qNmQz+AvR62^1_dnyfY zbEDsFN+a_;C3}j6i=qNr=UiWO@z>G*yu~6bVlm9d`VS1U8vEiIJF6MEv0oUk`%HbU zU6H0^7xk{0mK1w!{b%a5=eB(Lax?o%eBCst5}{07h~`6@(s_U~1;0u@ zHWE5^EHrXP5**Ojs!5t}LNG`pl|Fp0;B~g^3&efOEt!Llz*y2x7zO7=0GO zeRAP5QfFX`Bs8`#K78~vrcK&tZ^Q@XL}0e?ZbBYJ?yzFg;YfPlU3Jjw#o_spkrB3o z=3D*OhfVQNYiGeU*BXkOa;AdzWJ||bM@xGC+xS54+-SO94y_S0=Ji*n=hO7j=vTk` zRWvW}V{x?9Y20NqBwSkSo!tzXqpB+8CFQ;)zl+$xA5; zHwrQBmAhtd)Qf^Oo^0;iC#1(%Z9sI%rI=^0gwOk0)SVi>Ix669(8mh3JQW?J=J&XP zrs||@V30Ne@uiN!Y5Y8#%g3C>5Tn&Gqu)uAO6jD~^39lmBBFjH!*b3D%##QWL-fVQ zV?K-1DPoyV7;|Ja{!Je~EjklkRlLh)3o9ihY@HerkueUx)(=Zoe%LmtA7)=RB!*f# zt?oL}nsl(nq*bhQTRU5Z5(cE{{Y{_MdL0)v<&l}JOuEd>dg`b!r@Yn0v7cPK~5E~;8pN2SyQQi)90L~_2>4PJUT*!1JqHF9f z%9C*c?(iJtfH((kVF?@l27X3`J*g-Q9KwOkDuTL_tvFh;mI^>=zFE-U#i_VGQT>ccs^~GKX=PbU$^Q|G}8jI5kPI|Q$ErSQum*kOZ&I8Ip zN*c1x@=#Ot_|hw12v;aO1fe9~A;kyN>)~?waH(_%bgK(1D97cqrL$TRn<;)_!tI#U zK?fU_*)4MPFg?!FhU!6Uq&{zQ32*g%VNI!^ISK8YJ1jk5s~`_P`)7m+92UHG_)guy&UWBdT#a~7@LMDg< zr?PMF-Zfi-&D!|}>1&S`wtSVKP>lqIYWze63dQHxD=@ykfO{>IzQgOtUC!Kul4Xtl z2;Fhq40EJ|v4Bt$7;gHzo84-?VA1}x8%90V*^q+sGpC&u##K!S3}-Tmo0XiBb_XkE z5V!P%T^3U;Pwh_nr0y%$W7Nos3qilB>M>u6#6URSg|viS#10O|O?Kn06S-cUZ%}&< z+`|E{n@t?)O_h@;ljUUY*J61u;uUCxPQ#{XX?u!MF_)4n@4b_L0X%kmq| zO;KD4R})Dy)D=aJAxEY4PU{KsD{y7I%z~45C2sPGYVWJ*nN%{Zo-GuT>0Du8Rj0Zu zl{yLXx!Hk%vjYROm2!J=&yHbD400Wc;ut738su8M!XwI!Tx9HXdt7AG&B9Eu>N_l+ z9#3UL#ld1IlNtw_848NqITaom2~YX3dgsb>hvv$;;iH1mbw#?p7!DWP(^qsY)&`t3 z7MwxLl~+YZMj}_SA0o`L2O`m24}OOF(VV1@tvX2HLCo13h!LYn2e)!fG2aKnw3IuY*`<2ZUiI_~iZA0;P76qaX3w0~-jL|S+-}7S^25`@ zK3eiVd-vViuUcZ3&wb7kYw7M@+I!)%l~1d$E53zG;IjXJ=CO3djRfos^a$MHR&)`X zx0@P)NzsiA7%#$F-Le+@L!e-^4mP$eKDu^PC>;!>Qh|dS9tRJi0|^HYj^e@BHNA~2 z+_t<1ytA7r8kM&aO#ukLCh?I%1X7u$*`ShiNQdwf>7RbrA?ht5-j=@mgf~PH@sE2Q z!@xq(=0QGeyhF>v*+}nh+&J9m^4uuCgdg;| z>G!S@pXuRtJ|g&%h_(a*Rv6&tA|jJgFpGD0q5~rE-R0@p#Jbyru55P%|H$DY3|lNW zT71$kk$K_9<=uPw#F(+S*BBG~gx>0IFT2Sm*S%OTN%b$+!U|8oH^D|?Y+OM5)eLV4}b_rCYq z32$Ir2iT1Kavl$Avk%^{=@ur1Z=vU7vTn*oOyoKeA(CQ?wnNh)5FFc0$X1JVgoqS} ziia)QlB}p%yu}aP&NptmjRiMb%|)?(i{h#?*bdkXbw1xWD?biDGtu}{Zto=+q*s~Jmlv(=F2bPo>iwLbNdVe!RX5k#5 zteXszE)(cP(2m_)aPTa_YpOfK_(?oqTPc85O(~GPhZS;2e_;bBC-6AA05Ok9*Ys7h z0PH9J`8@X^=3xa=4Q1fdH81i;>9-1~CLnEi$XPmrH54)wfVf2#$y7!yRvEgrSpq^~ z2jZ!V#lxv|e>#2CX&3BvYsd+F5j#L2BWK7W;h6Tr_`vu;Tzl*&@@NP(<4CF@DCvPz zY9L**`qFNPTgP=_C+)KWWgPS2KOXi)MPNnZVOfmACcxLO3DkWat;Ml^#Q8>Ct}F4_ zegp?l;4;vKX4vD9phJ+SGYgq%lIb`STYKbS`hcb$cxGYe&V?O2gbf=IsiYwc3Vb=& zB3w!PCcE~VgFCMs9K3etiuF>0y;H@EN<69Lb;Ps1h};$6y5YBprdK!#Twu3L4PTKlur+k^01! zagAG0vKi|;Sy(XhkPQf7@6;t=8G(csWcmCp`LlcWjE%AT_wF4V`!ah9ASHTUfrGi@ zw9(I3u>~!i595?e*$hcVQC~nYsk74r$rE$^kDNHUr=M*beC$$Y{^mF5<`$nh zd2+6b1JiYzs-Fc@BAMMHSp(`w5##3|N8|q-d{qT@cmmmr@g&!!rqYw&$BLhzat;Up zR2SIeNra*LvEe$TCJ2&4?5H6=s^KFg)??G`$f3jL*Q;gAivS9ASt9 zWTsk%Se^O?AAVDBGg^&}4IQnnMuWx3nryXbQ;Cgz^_!w>vD%HFxS_?|czM0$>$Q$% zY#Mt_rqcY6VbNiKe9+gJNCfNak%w4y)mfbe1ROQGT086wX0yRo&)PiAcAG&ov05W* z^)$%hsiSP0aeD5?a>V# zAzK>ztKQ-(Q`Cn^R?u}WV(&&TG1K%y6gIf$P%t`SQepIh$fk;xCCE05_OqdBs}&Bo zqQ&d5TBdg~nINNigx&)o3&vsXXFF%C7Q4?B;gb0eWo_3lj8GB==cHsQZoy@1bx-)bfopySswjT$c(_YyTIL3F+gcm0m(VXnJ0thCsVz&z7_Y+0cb!bMb$$b8tKlpV0X`Y%E`E?y2rFi|<{h!73}22=%}Z;y(AU0-lft4h=b_w{nZVy-hte%qf&5t)50L)TF`|6k%d;7z9UNBk7X1Oq9V zYGJ7G}wiS7;gXzA=&iMZ&) zU-^2{eG#3N9q;McjQ`DSOZlp@aEg@6+1bB_DP{1lSDy>sFW&x$5!C&3=+>B0DwhHQ z+M~DA#*BH>&M)mOCL?Rt*>Mr}xcbdb+~KeEU9on{+O>m;j?Z+gb2O$=^JYh*dI};N z@29#gh|o0@m5A;`9cq;nQkAC+T}f!NbZySeEnZZ8~qWNhba=NV8- zs2=WdRj;P3FJPDi7h?tJ!i{p6Vh8~fY=_4SW;*nMxJ^Q+3pisA0Bz*mJ!`dUT2A${ z2el!W8;z_CEZEdJw%%4aubv!BhP0<`Aq<$Ga~(lc*={MBY*P=Txzsn(E)fVoij z;fuG89@Y-+s#NeUUY!>{+zxkNemRIB-^lWM-i_Xl>a1v!9!MdV)?9}E!R-P1#HVX& zC{{O5RwhJ9UnG)1&E;LVIyZ8+VWbx^ru0v;Y6~i(&7vG|0POMrd)V!DdsQEJ*^dwdBilh+;c(F?g4!jX^eK|fD7@91o}lB{pgabf z+h4<`V&QSW-SD966mztC;JTn3!Cp^ZZ)!LWKr@q9Bui=A_95~)3I%`fU2{SzW>=x= zcr);G+XbO-=b*qIxae6R993{r zKuf^lNgW1%Pz?OKfUIewnkKxC47iKugaq%8x(|uGN0gPj2N#07DG+dojBA;&8E_3A zEN$kYmK1>BwJvNR0~|mC3D(Xp2=1OPSn0@X11lYSNgf=`Ih{&qHoiTvUAB#Q%PE*K zUkyk@vwi#e9B)kwIEJ?~BlZj1kqCQeJn9V?`}VWFtxc}nz@@Fhdik2fHETchMQ>-% zx^+E!12Nl09iI#qg7s|wOh>t1OyIy9c(3N#MKyq|0WEk#_npSLj-fQc_8H-5T2qrh zMRZ{hBC%wk<7dzTxC;|0R|)e#ky7S$Sn$zfy9o90Ircer{kOHBP5j~)6Q`Qnnn2QK zsx?clIO|l`I;?E1$8$v@d$lOs`~vtTrnTpp5RW&oPzEh@`-UTmWTQ0|dsI<;so@-gJ8qzQ?53Qh?ZL5}9JL$%C=jNndYLT~%;teG`0 zK0{mWzZLD#? z$xsScgFbabj%D%fcZEWyXC2_DblAhi5Vw#EJ|z{kS#Ug*K%{H(CLWU}OzoMR*aH?m zw^s}o2gpPoM)m}s+cCN4K!O;U6DLP9^wkyhBij`5vMtpwoejXt3%d~6Bi+AK&CtmP zZwdr%I(1V3WEdY?FP|ig^!5!8_c<)mN7RYz^iycFJr(;EMGD~_pk`GURJG9{`;nxt z2yk1Y;a0|HA^{w4kwCSn0Kb~OE36*5Z@4(+3!i>Hli8h4@4`L*m(IRU{QpCxrO;e# z?E1-(YkjJBYSZNPS};ow)ak-{Epfo3eRR7TJmwyW6nC^)wN3(D=1sVZl+l`=fRQF~ zqY|N+(@S-^>zF!!yc{h$^_Qby)=Q^%FW2mgD{AxO&6m}-HEoJ+95 zgv+#Jj!Lewl0ZqL{6gquaOjIjK(Eh8e3_$k^h8s$M9lPZ^x0=a$&zG^T5LJH)$Krf zqj(@!a)P%O1aOOIpn}2+{c`S^fpQXoo*@uGhTIa+W0FKUs*`2yRT!qQrdIS`Ai|p< zsBNeuj3RlEWDgRDDrj_QIrKTPX($07Fj-{ETTmqXxpSO}o?a9jB+plKXd~yx2L(Z) z-oZB;Xz?I9^eXh5&p~3Ko*ag9fhErj5?@H{NpqUV7i1$W z=M4*%(FvPzD5)f+xFznjdj;FXw8c1>l2cMbl$jJqYI@LuQG$9QC8)l!!l@Lfsbp`$ z>$MtX=dFdw%6o_VJ!GkmAr~>djPdn)H|jToerwF ziQN0zFEKsYw72>5dvG6vP!aCZ>u$bzw#VPobML)3m&>^96}~O8T0+xCr6J3fBSYm40aMqqh*JrB5jo;;kG-4oi>ZnXt%JW{-xE_HehYq+= zrvYt3j2XPEK4P%Tqzb+aOr)~Xlb{&`qFpWaOrL*zw{l5a5mbt zv%lvnUwz;8Y^>XUr~6J>z&Nsp*mKDQi5UU*NPQ|>+QCw)ANege{s1DsqYk&l;!MOL z0a#;zlo~CRLIPfk?fQ%Mas>=PgoHO-w{7iO{t{n(QR+5#Y{k4v$~RjhP!;#Ru3X z?XMmXWe4#LEbHVA++Ty4o{`+Uf>yL*m?s@{1K1%eG#*ezFEI0IFTxxTiuTeG!Wte) zm&+HL`?NWLfG)q>(QsI5O3m`Q{wtVEFTqSoK5(cpP;GSgvngHS8QTbxnW!RGjOdSb z2k|lO5Z{rbGum6zQQ;D~b3m{|>}zsLme;i&Z<2yRNxwGT4`PSys!flUhR4wi zTnH?;v|2^TRZQ-8EN93Qfb|9|nCN29ZHHiN?3>;1?zP&F?~6TAK=ya_7)bC_-g5;k zYr^dpCK~zHe%3-vm;|+w(i}`}R3(G@p~)xC7TmSZ|I2sjz{YbgL%UayaSt zTa>a$M{_R}^9%IbWqXW|>dd2L2>d}3r(Y!N5Oq32A2+TLF!RJ-&OlVIy(`T2&z53o zNeXz!#`0sxZs+%E*Lwq!)Y{7aaNEJr76UVS{n~%nh7a?YZctz3%OKzJAw=eopQZ+b zEg`@M%O_KezUmtxlfCerFrW+$q`-tGg^Yc>lI8f`U4zbWLJs(xebYPRxze4t?et|z zYAUSE96eEFf9$jQ3R^Dm)vp9gZ9Q!)=3;JmkJst%{n~l`J^SH>Q{uwK zGx#CEDJ#d9%suiS#_Ca~&F&z2C0=M3-cd-P(Elg|$rW4)5<8L%qy|-WF!gLIDksqo zWdhr+9%*~_!0C8)<dWeWI_y@0L?gfmiga2FjNKt^9)U#wJX(8(6yA12vY^)l3&> zMuVpAbVZUF7Buo9XTYgl93L-g=draZ&eT~U=~O`1glFn(O5YVuRK8H8FKc(rVsQWK zdx{gUe6#e1?k|lM-7ZJDA!r6#IU8I6Mu`xnhtQW{sjZ!SgL*F8L3J5c+KnvW#G+QU6~f;LL9iP)>4m$< z0JTUJOyESkZ=h9T>awd zi?E1c-oR)Gx&pMpN9Ya}Ycb6wE+k_w<}-&f`C_4vDd!I6${B!8kQr81Pg*e?l>(Cf z6ci0Cx=}EeC~D!?X7&iI6uG3I$uQCzH|&JP@T3A^50mH zJOR{1cGU}@kO0!+mK{z9&MQajet(cIk8BD|K=e!)D+PiT)dM`byR za3#H8>OS!Z@xTC6Nj#JKpyh^BK8QIF4C+%E(7;}Hd)Q%E0yuh`_!NQRUST9azPXd& zCj`g`Mgl}3od@r6)kv`Lt9_L=Hy{_?kD()HYD$GO&7nIZ=8*p&OI7gV!- zI}61feGCs}kElB7W~Eeab6Yp?5`AcI2f(EV}2q{o96 zO*=nybaeFSkak{=Nk6ZQr_tkX0ILRPr?~N#~Wm4{)BDFha8(Os@?U`_)ipDBQ1viaXy+gp~fU<3c&Er?cO|F54CD_m6d!c5a&5 zIMg}j?~i0dK-2TJO4n^#D)u7y*eds(xZ2SH_>@E14T${_i9{HRWk!i5gV01YHIz#Y zi3dewWfL(TPsD$8Qt6cnVY`g*@^F~VSMn%~zaaI+b3?sp$xgZ1Bs;QNoPJ{q#IXg@4_rY=KV-gvstizC7d-R4+Jpmyx`AoSfG0x4+@qO= z;n{)x1EWWjS;aTKcN#0#LSB`N#WxUo|MEhz-##$lJup<-T^=njEJRZXw#0&2RDdSC_EEWJvS}}6J_mf*@6g4pM@P6OWt!&a+E!MMl5O%6vQ)UqCPevBT|5usmG{V z;IRPHVx`C?Dw2!)l>#G(oAgJ}RnCkiPoGYXo_U>FWk5NjK9uyXEPCB3u*yE1a{5H} z)zQw=r#na4pWh4O@&|p)-qH@xxvTyn&X);$7iC4FKg2--9juej z>W1)5982t8Uhp0+59E^*eN(-C`LSLj;-ky`%kM>tbze9~P99(<7OL456Vs zE;>RM{YWn1b65m^L_4GVpY-{z5@#a8ra*c!BHmXp4o0fWuo-Z$2wb<+&3R`>)f*VQ zaV6cL&PVu)U5ZIwr0?)r0Sos9+)`X(>ujJJ3}mxGpS#|cElm&^;fQ4GaI~gEHmlVZ z>}qv%z|ycRLsNZJ9<@Qb3l=~4e!>`MpyneT9!rf_$-QErT+-{fXOpwF&;>w|Ix><= z-7yk(dwmK&wQFqAV8L5l-~)KRz z_Un$e@YvS2@V1VQZQ-`9W8pUKf7-wai0o92jrC29W(z0r!(AIGlo>Y!0@59;{^nY4 zNg~1r7f>5;*N~`rp)E@oA3HvJ|0}OL689(VZnvFTv1Nz;M*G<-d)O80b2)dTcBviX zgni%c!Kpv){KN+JG3UQ!?7mlDbtLaweSXHy{>JkYzKSeiA9H3Hj&NN}S$%Hr*ezr1 zu05+x{Wo+)zoGvB8|{;0Utd)SogY&`&Fz@u(iG>1h|q9@F0Sa;a#+M!GiDX4NK z_Q4bHXgjuUeJ4@kb5up&C%kh_H>6dDComGfWY5A70LjOtB^ZTUKpU^x2A1PJbk5o( z{~ZauM5IZt?IiZ%X~I6OCA4qAKG{}4c*UQ(k7O13gJ3r&vikMkWP{bEISRo?h84 zD3=o+f^MJ-DuX5m%l8>(^j!EB`xuf1Mz)Db3N z)R|ubYJZmRP=qMJMdx~c*EX%T8)67}y{Rr#XR0sNkJ@vool%8DR3B`rRikQYZ}Wyd z%(ti>Z$!wFsNRFP&)P$JmH6S`rC!wUs7!MH$esovcDZDrLYnIk6cub(LY)n;Kkb-0kM^~#|Vn^JF- zL)ycL-4?~LC_Vf{@rNjyuRY7y#xOK8)ZjNFEip{FZrVgfY(y)59MJL<5R6)~Y)|!` zNT2;UDC40rO%mEGsq)FxS*j1UM^z_H>MLPI;`w-IHHlrwIEoZl1mGqH2lnJ@t(08X zm2l%x@DGoof@M2S@6kt;I-jQ7>s z1dSc}aLIOqJ`IAJZl3-CdoQ1$2ZiaJKxzhTPnxz(dc6S;LIm|~_5SKQPb1nAy=|2= z4?PEdPr~uKFc2iD!;rt0yu>R4^WQ8ea>Dv(p-{F0yo(Th_&4PXLh+%D7Zw6OxMpNE zHIy#U$1=^W)W@zwo8Ex&wgEUYssrreFj#)b)&ZNKZWAF(KIvc|UpMdu27D)17(%Ga zf%Jxu6p9kps~T5ywToAEKHz=J8_GK*Jr{)JfTiGJ9GDNtu-VCh^iaAeDH8tmI{#P1 z-G6`{Nk~JoQ#B?LGP$l2HMw+Sm3Trq_vR5jVFT0RAJjloC&mJ)phti4F;6@c*VQ!F zl;9x+UbVejgggnj0sbLLMqKVJahu^E(IJ}z*uN=SB0^}6Fv-9KMIz=Xdb&OEx`h!` zl#S@7f|OeT_YUx8qXGOoWw%la1x5n+56z74m{bG9sx8)66hwPK3|RV$Hg7s1djV{5 z(9`GZ_x;+Jav&^C21RyEo=Gv2*x+Ga{5K#bCM7tVm;?XL|JZK(uXUG(2K-mGw+VvT z;kef5Y7%Q*lBLDtX!O#v#p10i2pNy-D=wriZ3SdqZ%f@*QHvI!IhTYTK5_sb;vN#9 z*tqw^P#H>4|2eXa+@*)Wuy=^?;(DBR?^$Bp)8DcGXLhz@!-kG~Bl0hR$fu1q2jfWW zW_ovF*?LZE=pHK&5=$Y7=#e_kiq)j1`@`Y>sqItzC9FrDoTvn#r{REUxkaCd{I*H~HDqqjW2fr;QQeZ7s%oZQFztq`~X6E3) zz`;|r(cYh!I666bY+^!t{lj}xx~^u(4cs)K9Ur`DVBn@fwgD!5l zrnWpzZM@d76Y{&G-OGD+b{OYU1 z4eLVp2UDrw{h@W*2gz;gEmvG&S-&kA*&GgUj@%DljIx0Xk?d3~z-=yJ(( zn;-ivWpCTIej7P(jfk-w7p}rwZ-O5`L^j#1r_n6B+YMwFB49sM{M<+yRt-}% z(9{(PMJ}>72|dTn2&J=}mz>P_HIrhu)tz%WwNKjYjot?PMSgGWQzz_9IOAG7!>+J5 z8Lz;%>ulPYMu+hVYy6)Yo9zxyqxK_j;Ga<+3OLezVIL>ASLM(u?)~zbE0#SAWJxE% zrOL}ew)E=rqmKRWen#<+i)Rq{38y~(_%7|}f2-bV!qO+gCFHiBppE{R*m%KX)!Q#1 zezo#IyO0j7&mlafrj|tjYva7Rup9!ZiAWwdJlSlowh(3g57^y~n8WQDobnEqrEw`2 zONZFa+7CL|z#50g(Sb(a6ij!l$4BKsF9oatd%kpj;zH5cRwx?08>kjqv(WD%u*i^^ zi!hhfeT)HWW{3i`fZ_=W7M61tWLX?rB|-w=h-56<8@amx!mRG?&g{lxS1y-(Ap;oX ztS=`UZN`A8y>(CSo}3WwzFYg}7eJeEQ)P$4AMfVdY<5?67rRf+wwO$QWBs@B16+p@ zPhEx~t}V=c}s~4=jCNG%!;MpO=h+p~!3|{qt?MT=)|2W`|?5_tJ32mat{p zFZIw{&n4lUjs4Rl*Yx*abIHa~y1hLe(vF+Ot?)h?jHaEU)s$*eQpP&*Ge(o4%~>}r zS}fwQ)zxM&89zgxDsA-XPJF63ty@L2ux6`mjT%MvbYM8*wyj%jaW$OGW!FX3c->a+ z-`4YB=-i^TdU3u!vkR05h+^s@w=$UoglOsZ5*xhZju-E|^QAlP5Hi{kp}o z7zghYE!3PN#ir|1tfg|AKd+bYCXZ$IiK=O_EbiyQCtFncWw@J3l^t{^E;i zd{uDIe#oVsZmwF81CgBlAO?VTLPk^`_8IhdpJFk>E^E(~#>Y!622zjbNI7CLj!1b< z=sz(BL3RAV_#8sh&LYX*@bl|>C#)(>0hnG1v8ewog^mEAwE7U| z5CfAow}8T}4;eWUJ{b?G;gA<2z~%<4O4w}|jd+L(u(yKIVt0e+TSBad#o`W!1EE;J zD>>~Jd&q9ZD~z%}@95-iui4iS8Bo@_96?tsEV*1#c#SjA1~# zl0Z|(wS}Qfjy;jf4UU(!7t7=9_@i2pJ}AZWxxpOVrGq(kWK#9{)JZ-@b&d;SvyMWZ z%tMpF>2-5{C1H`XiMHN86 zgwwq^>%ArOOq+2D%s%W7L?aO3`6jaU2Q6H~W*B!pl z4Dx`<1-JT@t!QiX`^p*(gdf2ivF;-svw={&Tzya=ui=>6Lw*GM46xU@XbpIy;fz|m zeGu*_F`f$xLNcEjNZS&LRA4raMD{17=B-^(+1+wbdv%Ss+3Iu}5=CQQ+|gid_O7|g z7ID`*|6;N@iSkJf`2_Cw=V6_I%)m_KUFoE>Ivx;RB@(fziG8;gpUVh)7sgX5@2P#- zbe#Dpf~Hz`@;3nFwycN1$*HHq4)72U!p4TX%uYavVC&#oQW{ho*`OJkLq+gL1OXr7 z7l4Z#NwG9{6Xgmn`{ZQmj(vlo1v)ag#E0VhCeEcslF5;o(PROG6p?`|@W>m|sbovb z=Ics4d$2iWzk#j2lu>r^=2~&^hSuch%;m}CarN|MSD2I%cZy?n1mug z!l8drz0K8~_O37tjMaCHJozHhE#n`?8=6!owUWM9@#uLn?4BX#j4wAlJU29C0|^qi zkhFJS%-;pLHKH!uY+!h9x>rWBJDdG^WR$hp<++`9M_wrJP53t)dFQh0hlj7f>~5WH z?C$JV?e8kYW3OK~eDP$>J3vu}mlQ1|d;>FV$Lc~3j})D=hv=F}9{fMi zXQ7*7-k>Pnnnt+VJy34Ue%`?<9&b~U1Y2Bha0v?^;}3QtS*KKQW<-1X&If#NPNz?t z)>+?#Iu?y~bg*a#s4xN}9(7koPfN6Cy2?F8W3~llf1fx^bRYu;49RAg9)o;l(&Gg^ zK@8*Wbr{u<%4qq*Fs1?pmnXTf# z1usarn^HuO-GE?G1P)#RcKrRA|x0QyIJ+O1(b@o;8{SKaK0W zmY+L7X9jy))x)k2tu8;tnhuvYrwQg$bM`EOw9kSo-_5okhq=lzJLdauOaV#$EjmOS z5bm#`zd5dGY#w9JHFB&K^*bGBM*hJFa3w^uP8_W`zb9#ih@bUjVfYM3gz@-j;>P|` z0j&_7N*8v7$3WV@uy23BTCk?sd$H+s-s?ub>To(Sv+rm4jVg^F2pmeh^Z-5r|hS#VrVdgKvB!^ivurRFg;giW<_it z2$~xa8d`ek(wE47q1AMOkLM2PM8t3V2WZjiG@D&!3*(b3t%$l_#MNfdg;kUypc!xn zFxV=DVV)120_cB$EkMpzp&Q$Xjt3+`8x*TFX2v$5`b+jTB^KKl?fAhOvneWCQVmXv z$uwdSERM!5qnULW#WjL}&pMdd*yU)nu-XwM5qC7EEF!+XhH2wXEiGYL{(P&!;4_GR zmx+mKv&rKZ1)ssx(qg0+zsH2sG(b%GMSRK7${ty>VGaJfgQD1PHn{37-3WQ_w$!_r zLFhNbsR`SjrO#*pMUj}bARTztT<!U3MiqP1UnnLy{kHy>_pXZzvv*EM@c*WSuOEfiQ{|3!S)Y z28lQLzaSU1Qwzwxp`9Y@HrwF~EWW~xCFst4{NyoyPNG!ZCheC5bh37TQNRSmIT~p? z7skz_H=nwBRM@(BM&Hx^Azoa&7TF{R2KNsP>_0Mipuhh>8d^Xxjwy%6rG8%GU&UXmkp)f(fY(Q!obP|c) zi$Vx#0cb2M@Bn`?6@LmWL-#a)mYF9!=ArG&s z&1tbZEDp&idKIgPQ`(>q;>0LOlu(`#1zW-C8;*f1K=uh~q(l($ZBmMClF=zzB%{p< zcr?x~xkZN$d{=gxRS-p=QI#AN#zzR>R1@f$Nm@l+i^m={aL+~kZAf#qvVuoDoB2*GlWD*omSGVDWo_w@`aJTK`_d!NN$uB5wR;#hg;N5jcdZqku5B|XB>Uw zkbNnhk+9mF0|cbk1$V?I|E0mBvO!J zW&4_7Z9eQa*GZxfanwo;^_PWBS960Ij=`Zr-#WBq%gw^q zSfgYLwu z;<^*E5}%kJA0D-Z-MkWE+vxE4^ypy!ApS>t*>trMlP6A2q~g=y4joK8ol}WaArYUL zh$j}5N>!HYQIAmovA3BawZu{d+Uu7un%xJlJrxHZzIH1MXfLh2*mJ%B$_V&&A3Jtm z<=kZFpthZWqya~2^$LMDB)tPMpOq_HgNQ=9q=o*`!Q+X<@xjsliHX6P$$^2%*?|dF z7@z#cH$D+kcNdGh{q3xNgW)2 z&=yy=XdxlX@jNz(iBdU{kz;hNabG@GMk)w7?yy)KaXFdne`RIkQUlX7A0JY1{mN)K zUr73TeKs35$)#pqaldOJ?fE~trb`v%m7^wEQKwxq6H`+YGrLBH`iF-52SSoCZd_gHs65uBfj9umkW8>a<$v5cR6&rQ$ zbjRJ=eaG3DJ6@9IT`}iw_c)H6smvMG*k3lw% zR^C)7aG>DO1D+?-QF;GD=kg}GgJ zoA>eLNK)~#FkTQZ=?kmgTWrYfci@1&4W+%_bm+FI955;>)EI6b*W>L7$6sOcMm|m5 z9@%uE2?K%xmOiXEtqhSTm1f6nAS@XiK}U?1yDyC20Ws zNL4YAT97IXODWVHaMfUl^JT>q3}?vr0!QRnIs{!xWlzvHlpakddtd9#rHcWdWb1d! z2;p-`?g3*-?C%$T)wL~sDSSX*B~K8$L5W}5HP+SNo4oYWWUuy0XT%$=uWgcit&L`H zo73J9jlDgf$B?Jd2fhIbh?tVHKrW5bY{b1Au65w{#RU*19$rQI!|gX!T^}F*$bdyL zr~~V9HCasZeA+?~X2n}_*ojCv#5yBhCZM`~;Hz~GGY8CCF6&%n=C-zYdoq|C`T-s9 zkXIkpt_rjS{ms1>x7o~!gZ6?gfg^OLFy)P@sreW9|Na|hE3$`?=K;+hfo!f@sk+Jk zU*UkKV@q&SLCxi!yNfax-<2CWj659g{m>?5kkAo~TQ9%tu-#*~9UtG9qTMI&!J`IR zeO1o1^Zu*j4uKX!H(id(M?Z*QJW~LWA|OI-NwV-)r^KbX5tY;(1xrU(Gn%l}&f$H- zJHx#bGZTGbZLgk_fE68H9}?WZjTf}}FZH97cu{@cm8K~Wnqa0HySZuo`lg%5)=gX# z4qr6!iDpXjQThL@kCJ})^lc2eKVXQ*WddDUjcFiD#)T-Usw`ibX~IEM^*X>a>u;(! zRH@xp;-yw#6}5y;zA}!4ko%Ph`lD#pef*!|1NA6M3Lm6t5MmwVObKcG@Ss3fMd9arMT9g@5MxX=&d6$TA+%%Xt3(Lm6LqXt|8%ANnn2AZ%dcm3kQrq){Jz9gQEl zj=twCuo}%I@{vU*-vkHXhHis zgs1IzQ(t!g&=>B;9Y7xeHUlz1n|w!Y+*#M*Ts?*#5O50T;tLV;*5?JO2|9;A(0DhVelhmkyV@qcW>@lAYF zWL%9^6!2PXh z=M*lqSW(7dh(5x2@p}&)gSBqW-pz$b{-VzL(wF;k;XnA^L%r)ZnED?4v*H?rx6ysj z`w{6*I{x!Ra~hFzE%^v=Yc>%Ki{^~797bf~dD^}XwylbPAW=vc?oSuePay?1_>g0r2de;^oQ4N-g&KZt%83bFwlPB2T$>}+W?zx4MAU;D$+F!x{xj?$)Eya z8j>s6md%_0w6kL^-GJiSXrh>ruRZncja}KS@D1%DW=i^}x)DvgX=kZxI?&mD>h?cK zw{*w%efbO3`*fvn0_>m@Xfa?9Ncqih2VxK$6jy}nWONRC$d ze=+wq@NJdn-LUT?S(0U0*0*F?mi1*xkri2%Wy!H+MUfT7ag1>s#~5KU6AYL%H7Os# zq#?~{2qDmnhXyyzGDcYlDPK)fmxnQymr=&NuA^y4fu()Av}^kY)>4<3@zNF_p8s_p z$+45b*xtRrXSP0$zRtPNeeV0ZuaE!rzl_zPo)ELFsnj!hc}1X6tFKby17lTv%dow| zFS#iX_B^}En0h$W3Wj;MbVW36aHw<&ZB?}+=#Xc_-C+StmrJTDwFYLi z>19k`YitRdH37e=sy-sf62TMfd81vgx5Faf`hj$=?Szq)tjXBwm_(JiQx+ z3lDYkxKQVLCN|{EQce{B&HI^3?B}y0$LGm8#MN>!gz5v1EdCq;ViX?ZsR09HW6}i~ z8*9c_a**OuTO|FL;sXvKS|LASM!{sSMvv2TIVCw0CIp6cQU31 z%a5zmx}D+-a2Iem#N!X>f^BIEhI54i8Jhm~dxxQOh*tt2DhzxnQ#tatLmu~m# z+F&a2aWCZ+l0U+Pb=?cgA<2|fM3vy(7~`m{20CM-wLE}D9U2rbw-yw1!Hl@i?z8B6 zpNfRom+ zPK@_2W7QzMbr~RQUQWp6Hx}bD9q{^N8kj*`4mF>XK^dV)vBjD#`&(}z$IGn>3@%X^6)mc6_TIYp zrGA!j_|=f|VW5D}2qS@Ch|r*zzR?mh7+X7Nj$xvK0EMO*tZS@MxRJ9I;{eVw(%Bo5 z)_vVMA>ZAd&2`%y4o6&gSZ4|%Ol(sKwy|t)8lNIfr6-)V;K^V|tzhvd+qbiq<(vD4 z#|8QL(eYIJt}H7PU&_JRt?`)zd)ovMM8o;EA&12-XBm&n?h9YyvF>ZtZ?PFrJ?jUKYv4iWAm4%^L9*l8jDhFvd9)(fdmprWK1<+U|~j}vMJE)iTFI4ozkX+y!fuc20K=# z4FV!$QyXH2Qw9+L6*7ZvotTV^uJ3izT!h~Mk}kUWz~(5+zW{DxS=-3m*4~MUUSaRt)?gxmX-oE2 zE#~pJ;nS{x6$E>Wj|#qibTS$3Ge8zS2@WF$Fjf|m#n=kWo)BrgrfTKV#N{5==k2R9 zy43f1c30`-ORBWSTkjE8hvr^u{G(9o<%yp%@Gm{tuXY=%?q4l#snRTw>Fe|?JT@k+ zXOdsCw#Zabhh+(i5wU}C)^(am#yUR_(JP1h?uN#`%gF)ik{g=2vbbqy%%1@H&7Qc)r+VYT`FuED*% z58n^k+}%Sz&RVj4wtmaAam?N?FWcDhT=qsYQ&>zlE&GZiUi;OAD?Vw?niuFMCTJ!R zcq4kTN{}u>ZdD1hK(>6E>vF9S6Xa1&lFravdZG6yoAC>CGlU1iR?;{4HeoE-?)K5P zbj+2qk8R}}?T(EOyag9ZD0WwABNz+v&HM?xZMUg|dEoEV!v40=tz)$v^|9s4iW_NB z);78<7+aECa!1=}d$0u?^=!Ppv^}+CYk(o-rtnD(T`w~e>EGJ_}baZJL?Lx}9Ec_L&>a_Xqnp98h4Mp$*~8*j)F@By+GWy-H&Zolwohvri-!h6 zv0Zk*AB|%N?-n1t`!=o7P|f=2Q9SKN1JwpfpMc_lbupJHn38cI&w8Y3Q7R? z*ae6CUb_&oXA1}eUU;bWy~~Uv+xS?PWRaAOauNHW709eArffh)4#}Gmq(t1wHl)Qz zN!*;rkpNi2#&sLshOR_yE<=Bv#1X2{W|SFVP*I334(d?N*Vx%d#O}2$(?2Vmq+f{> z;!BgSNHv2=K7S6s{UiLgi0!8Wab&zS;7(R$g8fQ#q@nIU5zoZL<2hl&sZ-*QGtqP` zmIe-O6PNLn5Ba&`KCo5*7lry8#eGNH?7(KwWgbqawQ`*znwUO#@YQ&nAL|yh`D#e1 z7~!}vNH8`jw4+4i2A*jkS^(LSij2d6fEQg-qA5^7s&mZ3ao#XBSlH>3YYq01-94Fu zhYx1*HoH18K0CfE%z91Q`vG9khT6g!Q^w-4^s%eddW}NkHeT+!_2^Zx*4EgSl}zYb zzWgstTR_Nath!2L^4B&r)cP$c8unO#X}o;;{vFI5$PO&(-*LZxd~yFuvGWD}3+YzW z?LM}P1GTPTDBnHsalIVTsx>|^Jud3z1^rwHE^Znt(KWm?Go` z;76xP8t{{9OiC(OR5_C+#gr%@g0XI9XYIB;AKKk}M&Pe?weP1ho*j>Qg3+09TZo4E z{aTYL+=n5~zOK2F#&zNAx4JGjcz_T_!Oy1j^5x4-Rn`9}jct?Wsw$&FQ>e1|X^^9% z7mV@wUSA+M&dUp_PbV>Vhk<^V*y&0qc7b#VuRXN<^8Ks7y-{8*EI)LBWWsPFcHMJV z{cL-=ULH$)`_Q42i)4Wb5#QLQ#wZrg|JcxUwYxseh;%1zxb#pwKW@m5N4%0>JS#+@ zEb%b|X7c#-^jT@7$Tj8XW#H7=vjb8RJa!R?ig~h{TlIoe@`X~xI3L+X>EPRiSp_$iSC2q^K<_nUWrBi$00+u48(RW1WM_3LcHF}*5C3iJ z(_J&6=Q`?y(CTa!yg%75F#VUr(Z;|1+nH>abtWtxuSegOxXG$v@gp~nJIRor2U-Q% zPU6YRejXL0(GBl*zbg(UUP!QUcI(K9c>jh1HM7vp4v6DeE%|kl>Po1oZXoy(VZNjh zno9<#Y^z5JBL)>Fw>-MB-;qAP^Bf33G8;zy;aIj!*m$>fVr1VH>-N0W-Q69k_nYk% z6pmVC8_}3=A(S4uO1K{hC*DFszi9fwy$7a`i)9ufw?JX=Kwvzh#5u8GJ0p{~whHEJ}hQe!0Bi~QbF z{W1g3GD((Y&@#!cgqmVO>0(}jg$K4vc^>l?5In}@?^OoK0knXFeL0q}09L z*w7JgY|hs-)H$LnS4L~R6okJwd70^|(1@!cdD&%2gtt?TjckY00s1<-8s4g5P-Ez{ zOqGuYU0R1cKbmi&%-y(ey0^{m8VQYDJMLlV02=PEJqh9pCM7z2+)o1-rhap6IjfJ?V=$9`H3XTn4RLmgI=DG_8J&S-hy;{8WGEnv zcxUSCAc*<7xa@$y{H`Iv7y7_fh=X!h?Q7HUecXtB+<*ue^o9mh4l^dK+)T$_xaSP8 zwvEqcH#uFAey{~Tc)idTHW)UspQ8?hMhN#uLMfHh7RjH@^V?`*n%!p561I9TpGC>1 zqnCf}Yr=lmFbov1aNkbP7w@M5!Abas$yw_r4>1Bm2>G(JU@Rz1&K;ek=ie5@ z-%5MEy|g981gFvW4vd!o=lN*k_+EEOn}P3$$hkWqp60it6k*DJoF^fnItQ2|{7#7i zWYZyC32Zgf{LzUwzDIpR4y3rpC+<9-H{h-Lc8%Amt*+LB+L<2t8(--xc$BJOg3w&8;Yu_q9%z|5TmVp7mlHD?t z&J4CW9B?)NpKH$xO#T18Jq`bL{qw=AmuwD~sh{$CVLAFQYtOHaU%EN}r`q%C{{LR> zIkxq`S9@-4|L@hFVdsBEd))tJYXo;JY zKa}RQB1C2O4#%pk;6>F}+n8C`{B}tk4y{P96Cdd4U|+D~PyFMK4w8#n5$Gy>`xULN z{TOB8KAJBM{Gq>B^C)R7JxA%AL+Azk%1kz`F-}j{q|jBW4r9* zp1bbyj7P)aFake5$6Px_yo6Wm{t@wQ`oghIuDf=6HVqGl4-FHZldeyx4;taSNtdlC zTY2d=P$b(#Wr_eXqgJe!+E<`iEd+i&nAW=*n8VR;iM8Dr)^YZ`6~@vs*9f zH*u$Q1sAPsxoFT~*Q&L;pu?{NXw(wTU23p7py!>>BMBgC+YCHqC)nV6ft(luixanD zh)d*RBy_@;EhyY%9#ysiHEb!SJK*o3bvg`UC?EYLg$Ei zJkMbh#P>Y~wJUSj8IQb>jYft2brsFlkTrdI$7P*(j#XmkE!gO|yyNmzO~@Km*A)ud z6)t6kbA?u!t&cSejfwhfmY4-vyoLG|jjgSXE0$^t74CGpp`27Qu76iyPJV|o3jm5t z2F<0+0#I?2MInU~0Oln)Anv4Sg7x99_5sUic%v)W-rwKuibN4)?G^j?Y8}%w=A7yG zGftolf^1@-J?PmG9<}t}I*>*j7PsfbXMA>_ogK6LsE&uv{(;ZVbwuC}BP(4TCD08N(?EC-u^o>RPWcv-FdXgaj&|eL6YZH1MPBcG2sF$d@rm#KO?1^N z{sBJQ8>|z?>w>{L@ks!3L=WJe@Ed&eUF4!GV1X@oRJ)t2Y3QJa2-^M40z;<0+hwOgp(7c>ekyHD`s2?p_D zM<~xWiVx>Q4z|$|3W+au_I6g+*66=usI6JP$rW-5?}VJ2y60xPHzA+cDQtI!#6t-x z)|0U7wi%pu!*+u`VX@g@_w(^0VgCq!Lp}>7lGKW!T3j5WNjCGkUudt=+R$(l9E9~& zcWc9g;!jz9o5v#lRO?U<3Husu59M%HnBTNwlN!Ahw+psK`H zA}&LBFT}RXFir%vWJ!HPO-;jcr$*zf{j&I)&Fi(1sR!o*Og{F#;LRbYXJmsf;{-X6 z%hAn(KKtCy`7+_K`{rI|Kf|RUU+qVK#km>~y#ju(#q1%=4YiG0ezo&g>|g0FGksKc zml$HN-?h+Q)Nx;tlt}{UG~%m9s)=P?l#(AA+>$#K-g6PodFYzyLj!dD^Zpl#fmyhB z6e|ijgk*3CNbzueOKImw>c-zJFUL19I(V~oXnPy>4V65HBWgr}hA1ebXT?Wz}v1=TcM^~jf5eVNy60%*9tghGBXLm(2nJB`V@O$KA zS%)RuGu#`J_ao-+OZnkM$c?jY*@(y9=j$_MH)Lb}m>;((d3VeiH)z8>Vcbjx1nPa+ zkUY{hg!V0NWA`VtQF7yx2LdY_39Jqly{M@GS4wAsXx$}Ry$1;nsOKE%(HMfMRIqox z?Zb)OxQ0$irMlE9*uZq=%lO;EseyLH2yh1e3_pXcAf21t4reJ{&(-Mfdk_t!dH~S1 z8oc1!@dmtBuPo`d(lcJ8I>Y?bo!<~V8x>K-j3TDmnApR*_Z%KpOeluh9IV?h4#Fvo zN_8BS6X2#a>|`coVf8e{1kZxzeZb{fG@fdJ&Ftq z^3^F70YpfoNC>Vrr5QrS0XYV}jelSQ=-&)yq!iaKH<^hj1pm?(B(EEO#&<>(RKo^S zy{{qJ*%fHYjAV4W+PYX!EeKV*ntER(zPv5E#BDK(uh|>?Ee#Fg?^(6Q7wzg>9z$ZT z(c%tRh^FMUy31U7>YXC>di)gT+*_`+ zs>>huA|+`BV}O>KQB1SOQfJc&6`-G}1v#eLVypp$3%L=woe3fX;UHv8i9wa-fu!SD z34TH^yo4`Jv>=#-bdp$t!FR%Ilb}8cqN4EWg+u#YZNBpu9ACRrof*uCuM9ik)j=Jv z;r5hpu#wmi8gKNp)p?t}xYf0J0xd1#hbQTe$A&;=CTzu(p=x5(tKb}D{g4)ZVjeACeM<-=3KzFA~+}8Fbj(@cnRgrH6X4D zk;iZfj6_rHCGI043B<>kbRHV`&Ae0_4H^UhVU$z{8G-;jgcwEPDF+v1);JT8%`C{s zJ>%|LUYoq63g*(xe zaDP73+p(r`f5DY>%T^niJK^qhC0#~ii#LR4y6!X=5m^H#E8%8>WsrWxd6^29ZwkK8 zH&X&9QF&|lj3e;G5^?~LFhu~b-d(X}1#YIA;rdPPi3b{c4;<)id}!_{-iyXOSJ=$_ z^SdV8%W~_m3BIwmY@166gDJbTybDOA? z<3|2zsuIMt)6-68!QpVWx9cd425~4_ z7bJX04Xz$p)6j}ZB}e2iU`8G}I;g0$0|0zU%|5}NvbdJCFa6;g-_zIFeg!Bp+ZoFn z*ZJ2u-LX}xVxV?T1pUGWr)_6Y<%sXz9pC8*deSzRg=H+R7xFQWbHG1f$dBdY!8X6Y z4Q8t}uB3JmV_A&QrXRPeDiQFa^%EsVk;VZvyQs=^FhA&A*&`RX<*)z#d#0gywE_jU z5aby|i!Hyhy#B*C*rOLWW;fI9M1pcqW7}zQIc?&L2vD*OyLU@ts>qYB=a_vMZonO4 zK+}ISik%Vzm^BHl7Dh*aJ(vecg$5{5XV{{P0?slXdfg06D8_}!5W(G9qbfT!U+l$o7!1jdGj))o9(eas@O6g*d7-88bHX#;K}ygfy{ zTosVxh$fM4d|rWM0WRA>F9)OMbSdpoJiUKp%Z8gzo=3B>m&CEDEnCjM`l@t}^ZVqi zYHT5YMGLq=VZDHemLw(v<&%q}>0Io^7sLE%ETF8I+rSRJfU-K+eR1F5R70Ht z(t#~l7s?fZ29}JO8)QZ-2K7iHK%y{W1@AZ_we=e-3D??`oluNY`f!*Jm@=0kQ6U+-Q{{Wdak7^s9vcyOv9h(_bWh zh|#v(-L$sJ@dk}jHkFV09E1KrQ~vsVA_&-9BFHoem*skkBibK{hw&9e&@XCF{2^;!?Zki@M`qUE%WPNJzvd|#H&c9 zMd^+hkQ=L6E1W=-SW*f3F;_U@7tj;pnm$b&g#5Y09!{xL>wZOW}m3T7zr8lwkLE|XBiLXWk`WmvX%us$1 zqo)idcMQ5A75jz9=rE|~Qt6N<4$=c>ToYHItfwPoH|Q*ixHgXLT5a4DPNnRTv@_Ig zv2+iGG(r1pNNv-xN3?cTc-9`&gkT2sF0E#|aN1v|bUW&xBbt^jHQIGmbq=@E*^mz7 zLsw^0jo;<+BcxXotX!R`(pGCSt2Kcda%FN^Bju-4MRC9;32#j5emRCM0fBJJK-r~{ zr9v5MfPWB*6z{N?kWFo|d{p*PnFRpckTZcwb*47Wi-Rv3e6e$es81Ij62=J;oHXNG z=43s#t>$ppShM+W*8h#Z#cMElTl9^CT!(XG%zOhHQ<*WUERQh|c81t-LF@%`TzIBi z{HQF?^3-0$V?X*|`0oD$Efl~2Bgn>=GKSR?Veq-12Pq{)$f4lUyW%V2%lY@;pWD&b zSNvVsxA40#JbgGzV<2IL^n_!;U*3!;F0vJhFPn&29<$X-VZr3D?1h3If+45Tu}vnO zrahbxbn3lotvnu1sdc884BGu#9UFVX>3l+?)s7n+>iCdrKN%JKUBhtc>DuI^HgVnQ zf8zKxut*z$?WWb2k1Mjd0AG-BgP0UN_6U8CJ4Y{w?tL>l&}7!GOXaUw*|DzL935b$ ziyWasO=Mm4{%XtCj%Yp~?bvG8-5*^SsoRn>uNyFTZCSruitp7TzK6ant}{BGJI#d@ z&s!#NGln|9`p^RuQo#!}5~!=a{o$dBty=~ou*G*6d|G6bc%nW_9)r~4iEuWfj+@pm zUAq1z%0PZbuhr_Ko?yta+-zR%XbgCw3)VLsyh2>lT~PO75eQsKY8xjG!#YdrJ)cw; zx&+#}T6-7Ks|vn|2Mw`wn|vI-to2>!D_D?~cgy02QB(P~`slZ1Vc{y_Fvge}{@-gc zD?CbA4gm$GaRPaw+*kvn2N@aYC5u)Fm=pL6FBKR|t)LlM0JL& zJroVa93H{0_1jfCwFYmuKkV=$k3eSvd#_r;I7o6t2CW6m$0+YMzwA-{%UPfbCc$&7 z{&C?Y6ed0*&PE1fPUkE-oW`MqO{wJC1(tlS6eHZea33(23I*Iyuf4b<)?R2I8CkTm z^STpp0@%))F^|^6%YQNMno6qSK$M|)X@||j+17Hq84I-Wx z(pYJl(6G0{X2jB>Oj@D2vbbDcvhmET+O;2U+_f;sJyLCA?TYkCGwhk_uTvc}CUJfYqyv zD+3)AsR=Y-tK5pXp%=0a5W<-oZkQPxn;9RU84C?w>0fgHeYxCyUF?cbgZQSumrX9| zU%xaYy!hnPPd|x!S67_nSKfg?JUzW~<;r+2S4Q~#Vr@t%N1((?Cb6F+5jErd>I+n9 z2so_EbKt;tEwBfu_$qtRiQrL&y(n~x z%h}&N)bm?Qq;775bLmp2@M!(qa_}@sb3?MHh~p(j8G<}&BMAjccrH3wpu+Jm4KalP zA_Zm-@~^;O0X@iShHcmSQd=J(fA+Zs!V(FZR;TC#S?5&vWuhvJ4vrEbnqjlOAnfmJ ztM=B2zpe2)Tq`ENII%(&&vz_!R#(@D@2HJs8;G=f-8F+v9bd@?<9DK&3)W*ZF`SF>*s;W@QzlA5{Uw`$UdmbAbV?P)h z6ZQ+ad`4C!f@D+LV*jtIVqKGXXA|4#5w`_uJ#4q1_vuF;6?GgZFa(G|DR>A9X_i*X zWW{-zNz0)q6jIQPJW_zk2aW98U)L~@ezLFKsbG`es_AssJ1Z3Bj}-VCBRRFM(iEOcIZC5N$bT}O(6(YgWm)W@wFO-yf%L)QtwRYg*n zy2QgT05>fzwQ}?vb5t}uTn-oZEjjll?~uu-+^VrRR|SKeG`2tASZ#JJcpDc zwV-l1v}u)solwgYsgz0~zGHVN&`ES{&bP6(Y}v=R(#S^y#kmpM2*g2EzOcRJ`lS9+ z4ZT89;iw;W)owlCTro9#sfMyq-Yo4Co^5jVo}hq;nxT(y8g~@eB*b=j!`>E_ML-V z`)4V_$=qfu5|0I<8bJvpS-_-(M<|{Iwt?KfXR;fdk?}oyMw~W7q5aH>i3#WEj#zyA zsPL23hb=emx#wzU1PS%W+RC3+YWc%Yzrl=7lX%)( z7o$HGzVl9#6MaPEYhfE8fB%E6fXu_XO*+EA*Pb8SY<(G9I%UiJyDj_1nl<6ok;rO- zvvA+7%7%xETKjhw}_HbQNn6j^Ia0Gar341&k}FbINC z3)=2%^BYtSDas<{JNw$iL+$g5LA%g~#DA?pqYYbZo;HV6^1#vN5nty4mXpQnw=gFV z`hAH{o7eqCf50PiC3~Fib4OR2RAO2^I&{lN$=pTy>hH^<3ea?DK^Ew8>vjq96{TpXcvA$POn0 z3Oq!d!q#4_#mCOSm71JH3Mb;osYPux1D8b%M9t*UzPOFlMA)|%HIZYq|HDlbww`ZK z7^mZk96kR=YLXo;wUF1K{^%DNTmOpIma3^O)=i1`6&k2pzmUZ1leP(I$Am#9%*_oA zJv})15>oz~3N$9L8%JFCgUDsWQ-<`Mrs$m5|%ec^YjXVWZhazS0sql<;Aizj;a1tI0kg~rLe>S*v@K0I>TO8r)-c7x_up>6uvUcy+nfmZ1Bc#z)|12W=(6oBM`oEFm`kQ-nG|U=1=!T z3ppQt8C}!qzwDZUd;5PL>R5uGqJL<;?*K3HLXIr56`L26WWlXL^yf-2v6qv=NkF!w zKY&=7wbg$iOV(W@D;wk4e*i<4I>3StuBadVrg#~cvX&?cjo{C^1X-54EgV!uK#>&> zJ(zZlPLC5)R_4(lQE2^V+K6V&x6TN3PoVXa+PL|A+a~r{AO6Jl9beEgw)5fs;OMi( zJ{(0KQgp!q%QA?}0#wrj3oM+6a@J6D> zC%DD02GKiw8gPcCqr~#Y&>O2H>l_I|XPzv?RRO-6`m<4_mbBA=9Q;6@2km<`f zMzkzhN=rt=iAkvis~K=V^o+}l=mvRpi$RY0gh_XRq#5q>$dCz@!l6*0Xp&CDUKO8r z;3=O#@g)9^LnTK68F5!4VQ*uD_zv=>{#mI|l~?ICYc~3?> zQ;#F)+Yrxh&E>WVH|B54-z2{!c~!#Mwt7kOs#a%R$Q#VxcK>aB%_mvx#PNq zP!EqBVUR3wYZ3{NLMLMia&%S2SVez%f7i9gg`1#uV|) zmcf%w$4uj3oYksyCC(@8FJkuX+dDY8w@*CnYu8z9hUf60ZTFd+V@~0X-7|%+Pns>a zAH8ZO8}r0!47ciP?1tO4HF&YaYKp~72#u0WEuC{E<%>zINlH4^1~f#;f`Z$h&8=Ir zJwFFSXn<&KL+bi)AsnFNt+X=(BvjSW$ z>&iyTt}B};ySZ#T{2C=>lJ`?=aOQH7CsJrqG8b_c7i`S$^Wu+4nGLwH24H$Snb3yp zWv9uqO=|&Xu3;-)If_pv(odd{Fw%&E&lH ziIeI=CX*hy+UPKT!fov1KD)#RU0v?rXO?kS(Zh*iLTlU)7+7-EG(ceua%(5XTZ9MiS{Y`Ft~Qvr(^?twG+} z&0tX(gVWo_4k7E6;IuK11m{PN#$blWwN$y$e10_7E`6$SAj-8^C$v+f>mr>HARHMG zg-GuMg5y#^3KWhnJ2{d`1q-30?Wst6dnDB!1sn(Tf9FF5V_o96X1X5Oo=P=!bT)P3 z*0DezRYM;I+yy0`mZRh?>bnK>3#o&_EmW)^2+8}hqc9nXY%MshZvDEqmkrxh)yrETz%+A(aj%jAt$r+{r z`5v}eulU|fPV65WJIapH!;>>z;+C$NyYHUqVy|`G%@y-(melhsj!SFKofxz0aJHPG z%;@GzFwi8hXQX&XIhRV3G^O|l!4Bf=1(R!BeCBQOti|bMyAG*!TFoJdL;tw2uHMqx zD*j#EX<^GO^?z2a5kIU%_BWGP>f+BnD;-nf8Imx6kc{qDsoE5(XHtGJOi6kckc*7A zkD;NoP5`sc-b9OG*Xm)3&_Dk+QUlnVYkE+&QPMXy;(R9f_sCkC|E}~4={J1ubR_&% znCR*4=|Pe}>GyX0{#m{PbN0og+XNMrCN5=5oAqvjMF!l^TwxW#Yvm`Sp1^3h2C43# zW0xZ+P7Be*=r(o&Tu{3_gDxj)+qKJ;t7U_sFJ8tf?ZH5;_;39n{r;a#z2>&I@}@dB z_-p^|En;nx`ll2dG*e{Ch@E3Kqxci$-Aam3O9NI6s7(?ggt$iM>AFu%pOP4qIBat6 zU0u-Ru}|B4CciGd2T01j0$9k!ZQOjPWZLiffk^k+9sURC6`upr@hQGoOa4vd6O#$Z z@6dI*CWeLt$Oq23^oxyy8+LK4tb&7Alg!7vap3N__~G=ca;b6h{DO8J2B9@5tr4o^ z&j8~6T%*}bE!?YBKU!*^q?1W&DsWz4^2bEr5CB{PtfiAl3QC?qfHTlBI3OOSkLXgt*F=7lNjOiY>A`2CnCxW1?m;BUXTt*%X#+*m z@XGEHPh%^ELc@i^EWSgDM67Hn^!`TZ{T94{V-~5`pdutXP69t-NXV#qqW1Jjd&oZ0 zKiPNkv{u$;pF8oK#csDmBB}nq^m9TMnLpCllKM{v+4fnSiNw4vS=+#O#;N|AfC@|= zzl?|N5ywH?kwC$ulLJc2@!0WXixqF8;8?(ej1ens5$?fHESBITqO#?!3ha)5N2xfE zfgsVmF%%9DjNdvw5DL+g%A`RNECGgt)?h=SDwq(qw9^(6f-XBiBw+7Er7N`sl`^5m zt8^L_u$(BICD*9b3XMAG^0V;;5Q^~nE#e=RjNfwO+Q!DUH{vNAW@(GvXwgJ?1v9cNmt__KqB5%Jx&k@qZe@m=v9r;lkz9FfR~IBVZ9DP(%ooBwoNT(y1K zpV?UY{_xU6;v0?Dug2NsGLtydYDlM(EWz{Os2x{ArrwU(6M%n@sz&6{4vq)FutI7P z1~iYZLw*pYGCV$1KtzJ}5;++rl{C-e0q%w8bBg9VN-A~hdQBdALM2HR@Xop{y}Eo1 zyaHg<_})}u3Z-mOY1c-A1-?kYSnYPxn;tp&C*__u4GxDZmQP8J-09iW^sLVY7JVJ4 zOnl__mDUugAN9Ns@fKl`U?u@l4jK(wrh!KGwnCE+!2jb-z7#LS?Sg~wIKoT%!q#=+}W3eWfmbfm!P~0<_7)i;I%0^`|6i$P}XA9a4KTh{fPNt)3 zq4AD8cA1^BI|{7niq@*GRW1~~FxDws-8Qwda9y-;$7F#aBSpG~akS+jw1r|{Wa&z+ zL5W_dvP!S91+lr0YZ-G6-F)+q%N7w5rh+Lk(k6GggtA*>!)6YWrxYJ1)v?_(eZJ^E$i9Rffh}stKOFJ812dyr&X;SqW+=e5UEXO%nZMTa$~Jz z5ITXXi*R0XR9bAc&NJVjr;s?HL`sMZfeQpMQ2G4lK2KWZah6&kZ!1J^6-Aw0tF`Mu z+CvTB+crY&ZaV<{xqL`h-&469%~|d?I?7uHm$LP@{0lU<8olAy4%3cXZgGfWd;944 zIJJ@dH_|n%z%}H4J0s*rAc=Bd3hSq8>n|gj$;sZd?wz17tMa*uSJEVJA4yDts+ZTS zNI6_|!CBK1R+zk_5UuGe=v;jox}aH~(Wz)1ZeoQyep5yDEeyYNns?m+@)Vjcl3d~Q zr9vRRM2P?igeC$kD0)0SJ2{257Ns)~nwXtEH8nen-_Y+QZYXJ1I1<@(La?$|tWl%YJ+2M?ZQDZ#=yA%*2}%C}6nH%Lya+u*k$v z9yuZy&audDw&^Xw_?YFDd6CyP=<x~bFmea+FELf7@aw~YvXR*nb>uN<=9ILjqkaCWv9dl`{v`1 z-;D^);4zF2*pCfLl#A8}k_-)kk^*2t~fg1M2SV-(FV`z9u4$-{(dG+cL9BlqWT8+c-s!4Omrq-ygXZKU}DhFI`{OK4y z+3kC!SL~Nsqfz@MdA{6Mb)V5uwaZ=!1>nQlAih-lFz(V89{=1CaNx#kd-nk!yc?F& z!LofHz%0}3m= z-x0=>RuLtlx*PnTK|dtCl#Nu`0PmH)1f??WnGD z+3d_vqf;srRR+{0SZ->xgn+>^u2$A4EJ}enmU-L`kGIj<5SF=>4h5^RR;`M(gmnC8 zOKO#Dsnsqx8=2mwXTGW`TyaI6rcx%iR?2mPuExN0T3NN##F$K3>9keGl%~c?b)`wI zms@NVa+peLrL(T0N~pBiP{X+fY4ILMty=lxfZWf@D)j<0)%vS+`kD$kCKBm`(z+{y zR{_|X1_(0pXDpU)oB+cu3xFhq@?m3EGCe8(lp~Ng=UnH7oGZsvy9@$AHX*0a1{iI~ zX~;*Ot;W9sj*n2bp$3qe3)=%pN7&~8d{NLJB&;K5 zD)-oeHAhwi)OZ6D5PD4fKxzrcLOWdVOm6gzj`}uE`f>cXvf0Il7az>uvU26;x^JQ5 zo|myyJ(1^V7d@<~ap6Xmk>n+wcLkH2<$iYZvU53`a>C)yx5P~b2h}y$Fg-1rc!h%! zZk5v_LfTGA)!&epAyt8+^H#v0FaUo7VVvL=kR+~zjUhi50Y_zAjj}RPEVyD|PdI`C zE*`PKj)Zm$?l>xIgSgcAVyMXco-a117J9{Fr%oM}WT&KGNW7Q}>|@$9FkaTAm3oja zBJVo!!6-vstOGeg&cbdb{i&6ns2C_Pp_@aEgQC;G}O(SwWkDRwl?%rt!!`}$PvC5JMg zSr@f;^TC7I`QlwubNj#gRqX%YYb*K|ja{@?@mS=*fyf0NAZnUuf1k3gD7bQA4@iCc zFzxw*U2~;kht%4Czi&yST-@Hxm$+Wym8FaIsrpuS@m_g*`!BI;-rPf_-9tBiyzF1t zH^Ez=!bm7Bl#JN?H~00iUthlYa@_Dy**Vt0wy-BJ_#TEx8_4#b473GslloWk@0c-i z!RON8#)<^j29`HOkQvq-3L;Zvo77fzMtlK@VZCkk;Y7GUu8w9s?dOn#5`6^Z79HzU zkwjo+s5~EYFZ13BxFFYqi({8`fihN{84wp7+qE1A;gWYvW;r>(Sio60kQ{|-&DxIr%fQ~!qk6-H0{A8za^kQc(JXaq$LAk3}3dNL+ z5MZwrUf2L|fk{5+Q(7HI;z=6#vs=`f2nSxL^i>7vYD$;)rV94cLT3RtX&sXC@5wLd z=b6)dm)I@2vZ?Y#s~0(0#Kr{U3d)!poSuk$Bu(V#v}EWneIm2jF_={-vV)GznG+{` zIg9u*c!5)v+%~y*lnu*;!#gtR4BpJOXPmA~doJy9A|1i=uvV9*Ksn}hQGc(1-wRSW zSz3zRR!DagMgonPyEW9}V?$VM=B@xO&=YJ$>OwXY$p9L{o5@ z@A_Hs?5S6gHZ6|woE}R?LN~N`3Lc3oI--vF5>xEwk z$`4wIZ{+!ISz@1}``e2b<}O&z4|H`QD;lNjNT*wnpU2X8#7~vMU}dN2jpt)LArYr^4v~QMMD9FpW*C8AEEg&Sj8WcIa%y5Am^0r%~f8 z8>PyF{4vs_i}Z*u>v|%(Zr0Kn_Bov1P}=GB)pddx$mt0!7o0vH>`$Ffq44QYdPG-g zDA)RG49dSV*7&sLhDx0!W6}B*OzGERtN5`|aX0@+X|VdmbpL&8*WNoYaPL|q1P|!D zqlWH6^D2E)H?9F)TgfgWe*+{wVsfknum&Sh)*#XV%opNu1d1YJo}?94DsTB2=`3cP zZ9V-xC`#pWnELxo4i{TR2f25xc$yzo2s|F>X{)bq>j^wwRb}q)w`eHUj^hqW$0fO2 z3*-tq7JfwnU>fU02vPyJBg``dAf18?ElTo;WGinE0y5F=?@CP@ z&~-<3Jv)O7TNiY;^=^m_48)*Sm0G&iusWh&^#pHj(`tS5s>c_#mbahTl55u{`xBS< zC8a)l0^`a-dI0E?JX{_O~~fPjvei?5`EOTlM(ktAY#Xt42a| zaAX^L4enY5xiHjGtGzfs(3uHLAIg{Z3o-xD5OSsp(Vuj0?|H<4xRuGNIG)LSqPjt? zFyWv3eqd_D!-?nUk^hQk zkda9#Eq&ZyLWbr1#v~h$b|V5U)mxgLhBNP%V1L|*CwTMX9*?j;-~4S*bR%2uD>dHK zs%Ca$bAEaizOZrCZ+tPYH|ASlt5jlKA-2h_YSJr8D=?4u(b@}(<%8U=T`=Xz#wuEd z_jcWVcbE7+Q?ts2cHx3^Q((WO^>Uv(7VcsM5qs=l$i2f1N+<(y^fw#2`GE&+e#&DL zZzfK}nbdg35ZyV}y-`RH{mH)dU;2A`m;H&&tu`zlPqU|CX|obMLZqwa6?~!+F5+2?FMPPL!cK>Ech2dv^&4BNxC^Xc}dxzI{^W}%T5oo zv*Nq-?4$?&4%12`>RiDSHC_wWN_GuK4RA=<=)=ITP(CMJPl&f*LKYR73Q}( zu*u^ZUSXr~G*(A=7a^eVPYII&AqU?1rT(@h5&zW(^1@TG{@ie`zbz5ja3Ckys4b8q ze+F9){UgzKBokD?iy|FKVg0_>Cr+Ey3UN3bKK9vfgu}w2#Os?+TS89%>*3I`%}<3W zO@RA!I`y7>KA%3L~Kb5fMDGkSByN(*z*t_K->RAy;_I ze(}BNkH=9y_Px;^EM%Gr3W3^i`^hUB!(TBsf;D6A2cgg1eA55aK&a_t&lkkwx`$kJ zY+64;IQ9`}JfuOF;XviMFJxc9_~0|$J*=sPB)QIDARy#Pi|@kRD+)_lvFTh<)(Uv`=Q;F|mH z6SWoJ-MNmHKk~9iHf z^5bufJ$BDMNOl*0!7U#=2>UO}sugk?B-FC|+&sH>ySNppwFYZ9@`1ad?yNE!Y~3~* zcj}M6D)h;cxMpZ?xd#?O3jicSpTME2w~AA*-oU=kzArYv$_`!hePawkFE0z|)xs_G zo!i)r|0qj}&0;hA{;Qx8;Nwx!eMxo^@}nrFfFq%t0XLSR`QV6~_0WW4T106^CZ#Ew z5?wy_0()%o+aUB551@2~P{+wlZ-Jw9;raoeYcYZxaqJ!xXo+4y-k~#U=J$n+h_ue~@OhWe| zJWUeweG0R^75MF5aIQ?Chfr6G0v4?(f*gQyCjFDHRuqQT7EW0Q&D@fN3JGK_6p#i8 zD2ONsDg2YSox^dO@f%9Vf{O}zxH904BGbPWiVN0Ric9k(tF<|h- z6;+kChHd$O^c(%S1?VwfWv!}}sdT4}@`_r6Of9SWa;V4N-Cg%bZQ5E(OP5+-t$~}4 z%cW-_m+X+8RR1%9xk9#xNm&Wggn9uiI?#W~`~gE1j2^GW3hfyF5m1_Y;lV47I?(;x zySDice~2>Z`d8dleUqkZFss?3{o)m&Y}HMw8rP<6n_RYvEt+hIC~WS&hxBL3)${uV!O#NAxBODG7v&`xS$u@Q<& zDZ}_jlsajI@kE)z(j@{r09d#g5Sj5NcoT?)O2}1K%C3|dE5z1HwNQ{5Rm^p>x=LGd zGx}A0Qzh4!Ri{<*`;{iW@^+zDS0Qeygg=l?Rcgg2t4&o^rfL;FlPmWtjjD%KLbX}B zL$b5UkMs=2BVnfNxy}iT54H-93u`aNH_A!Pr0^VPtAHW|J}_9`WbY4$BHOn|LhT0+ z+QXiWz7U9$SyW=na$p6(Ar}*l%my* zX$`K0F^eA`jj_ZSFnzI@p?Wug`evY}Zs8<24}b*cJF%H5E`udpcQrg6iTQl31%Lto zdk9oa#Axv3#pxkg5^84df}@;sj&>7<=aply?}(>OnklU*=81Y@gH-g@6|!p$Ce2_j zCq&OTB=EH=ld0 z;x3IYF*k=x0eLP*%xRG87u@et?gsg6B5B0fFcJ}z43bBol);lA1Mn%)f^fMI6jdPg z7E~W=#Rhab@fj61WslHn@fn?t4bbbMvuB|j z-ct4r_6xzqH9QZ3&X@`o$UmAGK+b}#P>q{QdJ^zlS&uuDp4Di1i4#K!e1Vzt7KXh* zne$^`keAD;WNac%oR(CO92f_~#{0jt(RlJ&J=0yg?_c)q+o;!zzqo&+K4#b`?8jUC zuGRhdM%Y65+L!Qli+=sSYxVkT`COXM$0}v$lr6}~YJdP%LbQ`e#}LL~k;3`&sR>3% zDM)NY($i>&c)FCJbuR2r$NHjafB0N9mmAGxV_+r-f}9{YZ1ePnLcK0aVNuRj=lJ2l zwGLesLr&emy2I*~*K~DVv$D(4SXbBR5Pwl?2qY^jlL15Rg18A*ZMdb};2H#UiTzr9 ze}Nsyar@+fr6?76F`Wn5MzrYDDj&dIaFBUZveHBsc1WP56cDAei;o9J+Hvu~EI;OSiY%6*tdji0 z2Ix~IjkN_i)2Q?c9uCByTc9d);lxc!5@CRNayjaT45hqDsOYdfsa0m4PDzaLV93_` zax=M^%q!U=TGY1UBwi3FqA7S;^JO zb+f<4^`Ptu@-Wb~kf`F_a9F`_B||q!+NDV`pRdWL#aWOz;sydn{*2d|486)AIN*s! zbEv~n*|_G)-p0n>E7vrNzs+2k!Rwfe+%bZhw~*} zSMnkg4*}r=xPYe7=LaU940&J`ygW8vv~;6AJ%$6*)3ZG~U60`K*-!uu@P5FcCLI|E ze<1k?8AJBt0q(IO4Fp%T5kA+5KvO-!v;rw+q<%>UwZ`@HNpMT9S&d^iGq&t`55C>xS>|b?-=UdB+iDoRL>Kx*$dixZhbnWpQ)&#dmE1Jfr91L& zOuJ@wv6Fa!#|M~rahfCJk*`$R7S@7t6j;ld8F5&VHzJIEasg_k)#myCZ`Er?D@lTg21i8Dyr0SQ(p5!Yf9}u)g z3W$M3A3h)D{51hj9xQvlx?maLtBZ%dXUk;T#Atgi>ll+D54(hMKlV6oJayklz+QCL@Y1)>Un1ZKz^ z%05$e6V~I~%RXQB1wQ_LBzIG2WJTy!}D9rGZh#I`Z&-ultc~**QS}_{p;L==9u&=RRDA@AbWE9;lhC z`D)GgYJODnGpzrx3s}ql)yMQ+_3P^6|35!VRVuUeneq`e!pEV6CXmF7@+0&pNNqqi z5rF~LVhA_MA2rq)SzK3VNa|F&X@XP~lgPV0b8(Sl-y4H`h>YQQxvtq;?`C=RX@yxP*Lturk(Z4OA_XPun0J|z@ z$>=i)YnL}^N%*>KNnZ+3)}$@z%{0_!*vG|dz4lC_;)tRtXskP=w05^%W?*+{LOOP& z9zzfE*q>^4VfQ$Hv7Nz#+L8i&9cHb_Gqa z=Yx@}B0dRJfOZroP zL^9ulRu}9L`>ZZ;J=;f7Xz!gv|NjC}ZWn8QD; zd7xsn!V{(P? zTftJ$l!UxNt`am_g~6g1!V1BJ)@W>7aq=03+9n7F?G%brB=D|6t=0&?P`2BwGMp4; z`fHiM1SM#8Yqd&QU1NhFtT5E-YX$X9;v2ULwY4(b+E)#0&GsfY8 zx-K=qoq2T|aizCSOtQiFnjSUnJ~{=C;gk$whr()|L62|E2ib zzsZ>6@mmtPEjip1x5VQd`y%Nt3akMVk7^5{_@O;ea0fD4&Mc z979kKJA^QtS@Fa?98b`RpuJ=biMQFac$Y=SbKAD&o(_ek=8xkxm^v^o=%YC&f1BDw zx|0+;poC7N2daeI_#07j3`O&t9Wn@oBqmew^h_rfQQkahM3ScndJ)3EsH~>~fobrB zAx;Cgi=LlaM(5{ETYmn927Q16pmi?z#|Se7hEK3EcaiUuKVX}Onqw{NfIRq`LNLJ9 zJPYgkX9*TC1Ze9T()@4n;9MVB^U6aa_Z1nY< z_YAuj*W4gRgJbZ0%dPM`pSp12xL)1YTyv=kQ27!^bGdwSP?b%==?_r;%mQ_4xbXai zD{)5pN~Bnf6xb^WaQ4|AipEAahdg#RfcQ#u8}ACfcS(Igyq{d>C7m0)gfggrS*j`? zw5n!NDOcD+8kU7?!j2~fOk<%jmnShWkU(a>OgMCU+Ty|8HnMpnZnwQ;LEzrB=g>6U zH<0kRUKPB`blJ9nl`B@Rz@2SyTQhFk(NKH*icVj#$!%j@Hg^WU&j2}2vUnW(-~Bum zJVE+7D`&Lyz=)0&9eXZpdU&MdV3g4yO{h^qs1n=>qE+d)V<5u=>8_k~1wxT&= z>5as_=8dam`MhlPM)&@FDU-{|R(=#9k8p}bD#>S@*K z^4SiXDZ9y7-{aEhzSGl_7e6}Ti%mgESgdO|&p3M72dZmYf$$14kaAp+aOG~^O3usO`^viQDue}8VIsY^j z^G$q~3HkgjJw3cVR`mUMA^A!E_xJ7lGK>+%l5+P~fKnJ=L9~MAoG`Y{9?qwR?J4_6 zDj#xe8)ixpV2Uw?Cwqu z8jQX{ztQ-2Jy(zA?_D)Ewkoi0-RIEl(zTGdC9LH*GiW(5*Kp@&{0K5bf$rSd4= zVu2U)Qc)LV#~^za?GUs)6Plcz7jhxK2=!cDDjh5o4wg!jY)ZUG7+Y2q)Sv`|Q4w{Z zb*9p8E|nU&+5h~w4@x%*oSb_LupmpqJX~n;PQu`!#ib<$J%k2N6-!lRNNv4jECLLA>% z*lOCkEP`VHxd~zDk*x*s@vQ||LM5N0r0*~Cc4m<^xNH}~wu6Dw!swrmAnreav5!Af zpas?#ZVJUS8392iL&G1<4%mGKpFQ9Rfv03k>0k-LYawyA1Op*%zQZnhVn6A%hqi19 zHiO#V4adgYbR}`kr(g^`4Z}dO7xn=h6?>_!Fi({CvE??QB60%5tB~xb9w$ARRz}pF z+bHREn*K@S0b(36qGUcIuM8e4+8Q4v1mo~CDMpN_D08eCuMVGKvVD_ zRO1I-HkT=rN?BZ~xm-H^8nG+R{2T z{(c%3K8nRAu2ifnh%>`#zI2L0L!%WW0nTKKe{bv}voqnL1=A7jpf6%L!Y3r9ND$wZ z5SS;BQBI7Nk)$P3*Mwa`uTI-ujcqctm`p8(+l#=Jo;ulkvX_tP#rOeY5CaSwu1GDo z=KyaaV=Ih=+?hrxGKfPAwlG3mDqxMo+6@NsS2bHp2@oLUeF!38B~R8dMXHJGur>S0;^omzbknX;3Yv#Ex}5c;abBx0S_v7s!Fa4!Qrv*1z=rUhOp1s z^lG)^w&8qUV<6w2Hn-Vg*}Qj?#j+_6*lZqj9y2p`-;~;*8Aonogg7|^l<`M6Z9s6i z-7sEErAnn#q7jqzFEHVOCl@!;Q@1kr*@(}k(UsxJK za%?^t;sEN95rL0aZUf=hpiD1*jVq8|zdlV_B-`4=yDBL&JWaD7Q`hSnbT@-n>_Yi7 zLLQzm!({htR|$IU7{oT8oeaT?^=rjU0Vu(UdZ5ps+CwzBKt*7zzMwRheX!x)$FKQJ z_mZlxZ9MPCl3EL+NRsjL#KdrJS#7fCr~Q!Tv&0Qh;p_zp5!ItAdLfBP3neX#Sayg! z2#%q7=pVQp$DuGo*&rmZP>#)=dle5kG@Fm58jSs)qX+2B08x_{rn3B2&NebUG(7VB z*#{r|;s$;bI?u&62+<8yzpvEmg0;dg&pyvjBK&;Axl9iCSOGxye_zW&wOuNn~ayWG&LjhkfkSPc(p(`m)==^U{ zA|A@~0Mxe7CyIuETH`U%US{%WG(Lj}!`evx z{#L}3n6d59HAB$V@r~QhJ+gh{wqq;|;STv$^v~!`g8sNK6!Q6eC-sAH-^7NrkF(zm z6voC1(6-%Jc+&WF zI(dUoB%5?Ldf6(s-l2@<Jz?wlVVpNAqVagueSpT7vtXbSy|kccu@D2-$o;NY0;qG$r@ zNwUiYv2Q2RwTMWdO%n)finxP6Bxp=arWFD|VfQrgk1Qd<5cr0nuAx>NXtgwV_T{`# zKN>9>*rCkNFqW%lB^$!;5-Zxe*LQEqxEmsU;b>QTu&vb_x=;NPgQYbh^ajuUN8mAC zz1FZIu2X}H(Wj_ubvi7%#%GmUzx#`kc4TyOMLN>g@6KAoEZ?4@!>s>|G-tOQprFtQ>1qa~00N2P;=Iq?{U~l`NQ;540x2erk;Y ztV$)qr<88=29w-W!>3DlCQb#7q+S~Hhyoitlu0=Z&p)GhGCTL&$XrU;h%{3pC^2Ok z^HAJy=8)t0-->6ylbg$=wvX_&^SysX*%V*t<+gjwl=5hokuFR%0XCj^3}BxPK-I(> z!CI0H!Il7#*2>lacHZgr96VM3*;u;!3l^uj)v#toY-5XYRre}(%~~8Emiv&WfKOj3Lf{0x4$YO zRhg}v4>XMDO6`TlCCRA#)_#)->7dr9z20lW|KJKEO;p>yN){@gtreICS1O%0kR z!edf?sHOGLLcbs{AGs(ntWg?8*VHb`q5xSE$rFs^6=8-pd#TK8OzXuNVhv?qX!3N6 zTkd6=zvbDg!r0|`nG;le7ASuts`6Qm<$lh-;BYP0gJisF{3s%h$cq4FnHZQCHP)aq zZUyoI+vd4fN$6o)!E=Y)X%C&sy)i#eIP_NO?fJ-8sC~=Ni(UC5=cOgWz5L8)PaPLe zoOkN(mV{%HoT7Axo=3Os+V=Fj)D z2$;_d;^VLKr(*yg4j&o$cLU7P0x*VT-}(|-5B(ihL8UPWpE^JY@U+7~&7V*az^HTr zy&y>eqcfQ7#5BeZ2k5;FF<)s5dBNG(ch~-%?*@g+FSFUTGT)HG)>NlRPt`XY)qA^F zX|*z~PKM3PAQ)B@T2+cVMT2ISyk7VP_F3)hQ~gh}D?X%<-Ko{8teQK%*iffwYPe~t z-qfPH#oA^x8$%&gy-_QZ3oBi6ht&ig4S4hG^u9(x_c<*l5M9Gnz@9l|D{fj;vTE0MLQ`78p{X(SmT|%Ba2I>mWWAV+szZ>%}j!dp}*T&^Cj` zKNe}nWLVL}T5U!fh%n$^&^NZqV@R}QOv+telRT+2TXY9|^uGN9c`%~97X8>Lh6M}lg|LN7Ses;hJ=b2E|1~94d76jmj z3M%>auo^GWgy2GTzl|y(|7}dF&{vmMxL&u0Dkr<2ikAuJ%4H8!)o&Z>XI8V%P)(>V zHSc`~?o&rpCav?7$=3xb z3&TH9xRHd)zEA5g9MD?iMfo9sM%fwAR9vTOsIz>wp^-h;*rHP(_ZsYt;u~+gae?|X zAi1#TK!$*2pNyWX1PG3C3*lGTp(9W;U1)&#n$!SWz%K4(W8x#i8F9G3-aBtz!CP=$ z?XyO!_1sFd0R2;rKW?TK+)wfw{lTq6LOMNibTOnoCI18}C1vfzAG<;(`*0xF#T&X>f=Rozvvr8cZVIgqw4enak-lGP*dEWd zp+ z3xfB;LAvtM!T}SVv%tOTBeBP02uL;PXPsIp8BqAh@uT5L)M63y7=aGGJ}NyuwB)J$ zrf~K6xG&P4PfcdJyEBu?RqYYq__)R4j>hu&{zA{dK+o#6)7uiQ;+wh_9q#ke(=~Kr zhyI!+Z%T62yXc40kgH6XF#*h(ibx#8mla(FotGClGA(Y)|EXtDxGXK&fEQRRvF6dTJ=NFezq=@a2wKvLm;?uL`+OwD%l zIqC5v2uJRdK0(=}_x)Mz#tMGvb{nQrAEe>svi~po{NK>$mSwFcrUaN}v3-*@vsO~) zs(SsfD;gM({@9we0S!@cU>!iu*HB*J)&Q@|<=>pLIo}g=l2t zzTLZ}HvgIBF0}e0<(hV9-@o8R9b0NIMU_^@*wXecq7s*M!$AzSLL_3Fc1E+uGZFR( zOnHTH#6IncWR7Q}hh}e?l#qB{%y(!*ehF?$5FjqK z8@-L)LJ~p=$w(mGdK?hb;WFV64>5hMP$-os4#;tkA=Z=-HDz4Q-Qp96VEA?fxvbia zYkV(8Iw6h7&WW;&X0NmjK^*Sl)@o8d%i&a117e|uwM(|F4u_!Np3-Y)wR(DT!eJ`W z;lWqz)avKS^u%GKv+OrHaZj$nU}(TYx3`H!ntWcnc)H2kZD?T6g22#ghZC9aGbz;X zKH&GU9Qs!YAitF9SX$}k_f^c;l~ATlI>F6yrg$Wgcy~AvO@#zod_W9EQ})E*GuebK z;bD$H6pfFXzc0REc+~Wn@BY=Cd9#7}*o$ViNxz5Wr;08>=vP9&OS=LF7BU9~!Bi?> z10lWMZ%#8qd@K>N=?`ZPTS8klo{hfv&th$|MnjZ(s>3ybUVtVawXj=LUs&DOn{JL)NtXR{5g<9Fmxr} za(F}d`pqX30wpRRNU8uinTZ(>oiBY$7)u0vww2ezEJ!) zq<$z2L<)916px1r+WzrAeSvj{vWjbLzB>9v9i5;zw$tXNZ+LCjD7vp~_S-+#ZfLd} z+gIz>(l1tYc0vxV(&s2Qc{^opgHN7kEzS!d6_-hIdAOLwbcEHnk){SJjO3lLEJ&?9 zFF$#4A#Fo8oZ1|XTWp!^M8sqP0UDX@ zIrY)m^=#`KxV$caVDNNe9v2^b&wpd=P~IH#Le@IUaI_j_0GEKEettzji4N-%Ka`~7 zij>Lm`IOgzJH+r@@wsxpYu-69(C@T+Hco6rmO;;EMAT(-84WF1B=FHl#*E^7rRZ&W2wqBheRD9{yg`r z#K_Gej_DcOOaRpFaq^Jk4gi?aN2DX`{ z_2@E_lbQa#1n%V60YuwT4JRh^n>OVq3zLQYfGiaD=l4%eKD{rW->WT;fOpX+)Gk9^PW9#%*>oY^6)u;)ujAw0#=_x7$*aefFb`< zz6w->_ok)~Xs>Nw`NB+@|nD^1dg*CfSMU z*hvYvWysiz9Hv1AflB3yA>b(D+dDYxi{$f>s7qCR(ssnQ-FDa_980e7Ldfc&nU`;i zTkQPVf=7E>b)p8)JfI?e^8m0G6or!l|!&<_TbD+ z`Mh^mmG$%Q_xB$jZ@BHY`U$pfK@vRW2olNDDO!hUt(5#3lzWfz!ayjf#_KU|{D9F2 z158oD2oiz^a|Ps5T}gH_yKy7#;xxM(@i%$LR;OGpzH9M#EMLn$Do%fm^=!;++?Zi^ zyKVn~JaxMq4!4zEWpnS`h1=ik+I8VNRActuzYa%2`9dh44;AvEoVc6ahl&&&+g+&0 z+r)zMc=mDehR4OWRjb;1^5H!0?AxBEpDDD4nHGn~%C2kj?4H5x@tK(=eQyK~ASTTO znhP|^=r4&sz!PY8(Eh>Sq0fS(gpyh$jP;z#p6>2GojujF=Xmx+E_Wh(yu16jo=D;K z>~{L7`xNA6db9gPPtS>NXG3EnKBa3ya@0R#jrcFD5LWD5d=>(0Vok%LYXZy_$Zf0v zZ%-7)-`+hmG*VEFghv#4cJj=b=udwtzRE7YmL;DL}I{xH|T##{07?~ego$uTX*$2u~wXa zR*o3rt3_91)tRw0AT`n8VE^FKv)?G%*Sl3U|AxCWU7_yBEXxH9P!5k`B>puQq!BAbhcVARouHjl>ai6TJ1 zeVaY1oXWGMPu?H(72}TBsBp|$2ciNS>lp3y_QoB#wOjf;N>Rh!QhJ4f&83_p-s|lg z#imYUWvdbAHGw#x?fEc-wF`5nPclHC<~DI#R*lKvVp_8#VE!ffd12 zYJDonvNkrJ8}j)k;J`?*pU@U9DtwsKtow?{p{6)`94*(!>T@z%ov`sH= zuN-OE$JJ`_6DAY2`MtNxI$S5k^}}0;h-+>}<(On8Y+hXU#9Q$E6W$38x03zQDbPl` zz=a^Rq%KP^rNyRLQQFYE0!PY@tDVv7u5M5$o50VI@cZL3rOj5$R`iaPLZZ6~qOsR| z3RI#AUw_}=2q`kDTA+ru2$>$B`g+YyZh^2`ADiVSRE*tVW9D{bJPirV52W0{5i$jS-D6*H?B9VZD zmBJay5n428#iv+_IB6E2GlQY%ET2n1M;+cnTnN1L&|Q*VXwJ~0@l4n`r;rygph&Mq zoQS|t4VdxI7l%f(*Wa``J37=`x?C7N^1zWHAsl!qyE*I04TbTP-OSz#9U1Dr9!J@s zBcbr8@Bj3mF#4AdlzK(H+Z`V2@pNy#>H2OyhuTnwuSn~WpAT#52GRi06Bq9c=wC2J z#M73pWI%>FPy0Mfpn@E^dxYVP$C(QSoQ^?<02be;;0D;$c>%)}%693kg` zBXGotbd;GP!|`yIcNXH?kdcKrD;J*MMkY(AMN!P>iwY(WIQn5WcR=jt`}li*1v^a= zGA#Gw!wM})8?HfYk~7E)o=xMY=D)eCG1YyKnrvJu^W|&qwO7 z9c^#FcH^GEyAdnVP%0%$4DTEn**Ppey%{jhp~MXZhdSm9$Y%v#0_L95=84QeDm9R) zvWuu7m-02DswPr`wWxp#h-$SkZl;uYKe`Y$=D~6SJ-kvUgWc}4+YQT7TY56N$?3^W zDW@|URwSHdWaL)6zZtd~=mJYpT#DB^&57pV?cUB#@9q8$p+{zDw6m@4Jx~WIoR`;E zirt~yu#{aIRzB=MREuEcpq9r~a$psfw1B_-5>Q?Ej{O$nVvJq6tsnl*WKe>{}(nu9Lnsm>5@U^agvWWHTAmYNtkPvAG6IHk-$yqI!|s zU76QSKt#ki2Ac1Xw2+dCNisno)x!eH)M%C#V{DvQaS>w3D@fd#<-Kt+8(o}2;XQ)y z3(im|7Y;i!!v<3#0#YHDR^4w<#3CWPD`0Z$6^_9>UX^6-X@te&9t&r~xQl0QY#d5i z^bN|!CgWY~7Kc&C>eRZ@l_Xcb_dCp`-(xhkQzk{iq@nLnBkm2v6oHBbDGiY>-XQG{ z7?V~|L2^HpMP`y%RD-w>xs6eiA#N*02X2UFQxADYbK7^vL$PdZTVLVqU}0XrF%)&= z^Bx;gl0={Gn#`ucp0+FFO{VeQ_RGU7PL@XQxN`qWkKVw#S4Xlh*RLwAa)*SPuKuvK zqt$1zBC>_swaWeNhD=X6yH~?&xV~lt5!^LKzEESywsv8EBmWsEJ3#d%kd-x6i#Ql3 z1M3`#FoX(#(1z%?l#<916ee(xTfixrP9&|~fEBB~0t>%Y@gMcIZH>-=e*H?fjAfX7 zlSp4#?I) zcwxd3kghp^iJw6WyD#@g2jM>k_B1N_z@?m3>L(`OIx7ClK zi|a^>stkcaB-^#XverVBZ{$2iew=gv=s#p#$-Xfp?ympSH+IoHF*)$K>her*b8N@E2UP~RWv-`F44yR>5^-vOAP zHf<7L4cPS#m0m5(`GH?4a*?{0PfpSJ!s+`TfHcW}3{zR54%eqH`L-2YFrU)P|A z5J>%`M%|vr)gs0gETn1PFFewbCVF-6pmVTnVey0!hkPYKA-{GQ2?N;lxkpM9{WuyJ zFGL3?z>hK{zO{Y($?evDl&*@Dh66qYr>#H49umiS1&&1`$3WeB!tTL{P-&Un<`MUe=f}qK7^%|u z__OLDG2M||i1d{2EDIV+u<4>dDb2<=;PxFQ0VlPA|>4WqJ4KIBLTahum^q{i~SbZlb2-4 zaYK8l)V`*#ea)KoKJ)>N!^?!Lg*!MNC&(>RG%2Y-X7(&p0;92u0#<7|c~y#7Qgj%M zX?C^Mz1!*$zsH_~;mWexW8J-*<&|=04jF@LeYLB;(fzn^hsTn|b$AXBENAm%t?r%K z?BB|rSqDPY1M>J|-H*}rAn>oWRt9Sl;1efn{kob_k|qfA0;n#bpC$h(?4%1vk^>cH zge7^s$t41_k++uA5(Mj)MWU|C0XvZxOMpzsf%H`x{fh>TU88kQZ}ZqkqlkF%S^h?S$x6~eb*w@j4yPxjO z@qg{@jTej8bhX5#aUop`u#G~WAUtt;fh0S;v=WgI(554Z+22kni?<8~whcOoyp{Is#rC=1uT1ptrCNydUc8OFHbH7#S{|gcOSh5A z1GpT#$QNxU%8U#;k6*G}m*f1levq1ZGfDYc{ihvGTUAP)_ z8{oTujJ-$ya{MULA0-iui0{#54n@S?}h zTga0@-X`5L61A*KP#qzInMN$YLf~T0(4$yj&(Oawb80N`zypCX_BoI;pXMHnh%+J{ zxp#0K3qSeEiQxV0f#5`?pZiem5nx}O*yTExU1=q>J+f<>gB~cfG|ou>0~5bhNiS+i z-m)^bW@gQrnIku^S#$GKYi>R=v&P-C+1$29xNwAR~4j(=&-tRbU-%f9_Fg@Dedh3U}dS=jQb@k#Ijh5+~n;joZ z+wEzc<{5hP8IA6HhpC^-@fA8qnl#s9=a0U!pCXa+Rt#^%2r9EcU4$KR6|*cEisC#Z zGMCA;NqS;mqhYyE$c^S8FgR^n01I@UdjxhRr!eM>3|L&2h5NZjfG;@{LUwgeG#t1G z{YCr0<>;?Zpmwc%gj!(;_EJ<)I*9=YHjc7t4jUVWW4bmDyNa?Cc8LUtThpD0RoFU? zC^UqgAsWq~nbjEPc`%yzoN!uUP$(3q6?%n=y)cf{(uhn$gj#Fv8eFx8Yi{nLFLt;8 zLZMJLDj1#=jg@)xYxpSNfIU(V>>O4|So|c5WGz>P0E43IC;by<6fYYgr$eCCBeqV^ zr&4p7!z9CQw`WFDsS#$;SsNRzI*@bGEtLl5PCPR=#|(3G+|K?>^ud2)H3YIu%cmll z=ODlU5-p4kAAR8Ha41q3JTaJ$hM4?{Pf^^*RlD|Wm|)j#*tbjS$M=51&!Iz&6R0t+ z99hqZhY}VlWO0Q4;v~=?!qL!=CYW+~{5b`uc%g+Wl<7_3cxE~i52u{Iy>XKUE;JxD z5~k_<9>``*aq$FRmZi+OM?3~XrY>T282(AH(}HyGQ*mH1A4!;S4Lvbo{7 z7cW@u=xqW#bID}DlN9#f2`!Ya`7G)>2Hb~~4MCJOI`tpKw_iA&YPE`2@iNt4JpIDE{IuZFIC${jlf0m3EG{+! zzFTTj#i!fGqt(%&K(d>H=zeZuAsQlXT~mUn8S7VygKpc1=FUhqZL)cE@{0xpiZBMZ zjlmfgvJtxqF8ydE=5%f?jOW!^hs)q}nZ$kM?>($_`9=m}@w+_2N1n+~N;?L6CJQRrSh)Z7>_3zbBJ7rLrdn zFTN*3Go^U|od~HxP9p)$;@*6=YHuFTk%fT1LbzB`MX*u7vA92T`$5&7P_dt3$NHdq zG;N%cZg$bVnxl1d@3&ufcjsU#SzI?M??r{b7$u~uVK5k{q^Zy!mrrI-oOp${>dLk~ zSlP9YfqzCE7+hQyBjP>cJ8;we>G)t(yCvL|#Lr7*ahV|LUat1l5(1K@3On)i(<4Y3 zuc!Z%c#scN8W~~@l%^q@i&VQZBz-;*x5l#RF_VpEpuGhyoTVpgMq511}gd zwRf;C5OI>}1;HQX4V2~f-+%vp*JF>p{O;eky1K^VvHt)k|G!Lr`mXEPHIGIA{&0PK ztn0F*zlr^Klb@fPaEKqp-r^?<3m;3gpU^yn;3L@{+gQ+AEqGY5;>3f=47KAq$4C_B z3WvjG`DNzmz=C~3z1buT3m-+dB7)qgMDwSz?&$9F+>+{{ z07k0~7M2oP;kO9RIWw*q+;koUVRBLGCet+Ql#;Yts>KoWsqj%52oL#EB!#i2)4 zV0nlH=pqC6k@=;?Wp|>c(NX&s7R@N^GrObi?AzkmW=GdpmqGj;u6rM7R9u!To7M#I z^>+Us7b{Hb0Ig#mMW21BMhW`^SS^gW6o83z0kcE{<4obPKF@QWLGiW0L6(2_T_GR> znsNX0&of7!eou0pWZSdBAC3p?Zeai_ysJhL&A zCFoW*lXco{rMN+#Q^kOre40e3+hnV1%?vl$J7R_v(|a z9lbj@Zrpem{>9(wyyi}y*{_N8UR$bap8`mifYiQnEU8hdZ~D({Em-uIwhw@^a^=7F zz73tMZl3UEs_+l-u<--8Q+#hp`v@2EWB6i;iO^3oMrlpP!4Lug2coqZX)DPPx!^77 z0K6t}Bb&y3diutv^wyg};^_Fc-uj<5mtOy!s9C0%-Z?O^b9(S8lR-REP`kch@Yo(S z*i|Enhx8VXLn-r2)xjDMepLunR)Tw9w6rZ-N~JAZfS=ZywyCsg+k;xuFD(wOb}nQR zzP*KRCAjFH$fz7g^iI<~dW))Geq2jFA&l+!fISob3r9SIH%6D2)C`h1A;4k71~%VB zjz`*`0qDp2E{S~rmyF4;xNP|HVPoye%dZ@{ab#uB<>Kp}Xh&~H$NxSn(~aHQbnZ8x zj(=I9Y9BH)%gn%<6uJ63n#j?IYroo>&G})Ig*^UdkZZ*qc*Y7$cF-ShzOb%x;My zlVr5MknZpz2ZOGsVO6lJpUkRXOeX*6in?%@=6f^j(BHx?$Kyo&CM8mk1pTxa!IsLb zwHBoxnM>1+;C2?S(u@D4vM9xO8XK7k2du7 z;=7;xB$FTb^>lSvl;4Bouwc?^yl8psKY#S2Ef*{Azi#~XwD>;@Ih_zj;Kw<6lucj}%WP!AHN_|PbC9)BsJmeF*cneYD`<6MqCJ)%%ou;r1rkCEI(F{pTgSc=}iGcUd{+M~k`iEMd$MIb|i)CLM%x z=)mcH`(GR#JN@xnUmO)`ERTK7^4zohk^6b{_{}p|wJD+m?t1<^5B(6ThLv0UgJ~Fu z+u6s~6sN*bww<0fzIf~2(^qVK@wQuD5X{$W#x^!=xxV4*jSWoq1KZcXZu`Lx%#VH@ zuxr9UN?79tXf-&W42C;XMfoKiWX(amZRb&HcC2s&7O;wbZpFSGe=Pv&rP)xq(|(gMWC znD5TxIj!b9`ymjaBk+GC`sF%EUo~JVaZ6FvU;7$6=(F5+pT)QH?YA8-{St@JV_GoLYk|KW!p26Eo<%t>*9}ICJ zZ4M~0Rs*6SeGQr{%w=(_vO~Z#Or=WbUcof=Olt8ZPc4|P1sOszAXwyb4a5eO8as$a zy)%;<9*;&93PB++>>Td*IMq+70@3`y=%&H2Nyz72P@M177Bn`8OP!bv=xwRZHkU_} zkn4Tw`waF#Bn#%Gl${9~RbDtH2q022L=0M$Lh)ieJ{40aG-|bQO74n=#)ij=1EZND z2$T$pkPR`ss(k@@V5e5$LDE}o$a%~ca@h~K0?zEy2B#-Fr}r34eOnAUt(x~Au2K!~ zcHq>JxFKU4??DkvYj815Fo(fCh<`5}g~3KpIkd`F$x^KXNP~$u*eq+bCWEnLP=?{3 zNE`7ELE)5u=wc!O22i`B_V-HR|C1xIN+F+-vFijjE3chljn^Arc>RTG8B{q=R5 z*(jd2U4Q+rU%37S!N7z=3Ssqrg>VNu1b6e@vObxtS9UJ_NdX6I*zHs4se7jPOtb$K z5AB&oiW{c6HIrd!@!hx5Z?QP2@h?kHrH}5-+#<~*58C%A#>JIr5q4)U<%Td*q&*Fb zPAgq|;_JpA#|Xhdg@FLu8c&0UuUX9am|$<9S_lAk!3~04@x>=$P&JtqM#iH)T!Nf0 zgiO82!{l`J4{r3?={k9FBoV(Sj#~ zU9PZ)_w5so%C`-Vf%tpdLtC?j0|iziK2uVu)LM^8unC#zK|wy&ml<`~>~dE0xojRm zuU6=tF>z-9elFkKfi_%*m5ZVZ2?vR3i$Lmh66y6%h44LV9aV!%lj*b>1 z8P=D-A)mitFFoX9!?D=#Bt5WC#N$ngE6pkE?t6CGQsyg}x#z=sKitC~#OaO=lN&nt z17ABO|3U+|d)IKEHE9k|vk-a~uY&R|@es1Pae}$IY^K@SWyrlnS0VesL#+{j@N^H| zyA-ciy^iebZak3c*C;8U@TZ0PhD%}bG=IV?4ic6g+1AjS z6)V<+q*p7}46j)sp5{+j4@l>d+Dp-19as^%v4(ol?~=W|j1LB)ffP*w-gqUyz6@_9 z0^nVXV-De49t8##t`&>eZ5bzg^iLRU(Shn0gL+>yDxOkh2XgA%DOIjNSHv5>+&7KZ z$Y5KuHPhOLUl}cx7wg(t!>PLLx~$gM-tJ4`yHC`04`kK6&Zl5w75RSbhvgSz9(xI& ztZs}PgesEgP23(ZJy<`$vEU&0caFW1^NE|K1aq_HCq0o&>dUW~=xqXD`PnA#am1w{ zUi*C?(7yz1l=|2N2`d84Hjf>Pa-=|K!A_H~reUOzYEKbF0GD5~@@XqlIbx^6A42eG zvFfDVoH9G&J=(|uff0K+5!m))YSWW}oR~kaO^Q??9L^;`5IH+;(8%-qfo?g;-|&QH z!}5f1EO5n&)y$FGMlBASgF7zT);d-CABx3m?Y+fox9`6Op-egNsmbc9UsK>wu}`x>x)bs=(|92rm%$-qK$KiGw4QIKvBFUaL#1bCoLfE#ZRp|7|R zaN-~vM0jh+fd_CC^YDJK+m@8Vuiz^<1u9#L@MpgOeJyBgr+ZKG*vE7Kh9pi8in9-}X!yXuwuy(r%j|;bLNpS`>TKLLu^ILOjm5B-j`GBXo(C@WTD_g#}Wy=@) z4qdO8wKPjbA2>jLOY&_61Lh;2lz$P2R`!i{V_T=_Pb7&?Vv)Q!8clqWBjFVKyK@7B zV=m`;cr*!%=5nyD^QF?f_@-tlB8~VU{{nsfG0bucM$#G}XKP@Zl2m^qEt$~c2r1bH zy#WN|Kq}WFJh}V_cr3(HB}m;;R*O0ts(lC?0lrw!2dKl#4%L z4D5RE1pB|p??~;gVO=osB8yELB3DugsG~PYei#-x5*6>(ur1LelhJ6D)i?vfa5Q>u zj+G3cFrSQ0OvENaq#%$EB(0HTGsph#2KAhk0`dq@1uG)xmVx3y@Hk?{5k!tSlw3d4j zUl=IVg5c;dmVe6c1?dIecA`5J zRtttCy}?H&Nyj)?&fCy$b7?GKX;mZNj9M-Cm=tQHP|<=x+NS{HwB8YlBBY*1lw6_F z2qul%rdGh@s>Pe82LJaCAVaON%?`DHSg?$~)dEt=m!PUD3a8 zSH4%+l{>t4?crR@j$3ct(IP$WyKC*?M>gGi&z8UV{HLjG{Od5jz7IQksLazKVVk>v zbcr%4G=pDS1;XwY7L-&M;C4`Zyl(PSU?^BgSVW$o9pk8Y;HW^I1Q#wOE z%PH**;0|pvx|DgD6DQLdjW&}_s~69>o{%{$zK?(0Vlr#K1rmnEe6Jc<7F=Bas9t-m zUL@*4#Jw!Z17NIOgbqxSd_YI+vFPO;9Yfb%-rjz>{O+Lv*WK&aZ@g&>!milLEsx%? z@iSLu*UYfbwqJfNzJ`bP_x7f4VfU#S$H7 zUcpf1GP%TyEcsu39FI}4JS!_3BBu~p8dU`2%K~|GitR^o&@p5Qk2Gk_&E5?gyv>$|h6D)Z)h#V`Eo$P} zzzSV+7;~u~^O*S3A{3X?NMaGhXb_ z2C}&4138w97K`IZc7y6-SG5BJ;Ry+1G3?2pvf)6SjU6t(-M|b=x_grzJhmJ zkj=&kx4zh>I@$}3R3QROqdkq@J*Y;xHB>&k0jCo0t127zS|j3a$~8~!VKMr8Xw_%zpEm{CjUoU#t2aJUi#NC%M=Z{0v>o+i~U$y8(qPmci@8 zHHJoX14_Z!aVgF{^5&b!5OtQ*+b$(Bc^A?dNq(BaJo(w;h$|Bn@KLuXzLw6sXRUN~0TCA`*@FZX$JJfz7pd5`U1Lal?r#Jgz zv(nVyWivjnD6*?kHjUw`v3SAKckf;tmDS~IVRw_thn-m>>E#o2&upx3_A+;9VNk#M z=AX1VU%4WS{UyyQ7+<0K5+Fuu1!aFO4@8=vI0+w%bk4o~@!4oUM*QMAAnzKnG~kb4 zd>UA|EKBDEpK+BjMGDg%oRsD(4J&C-iHOQtGOiSGO0h1Zx1R9}+1*WJ1;`UXarpPD z#tS$zA*V0=ftPP_yv)#u#mOJUfWdRTzk2LqZZtFC1f;mXqepA3AsRmGs#S}db&AfPyJl|}~d1@0Oc^BiRTaGFfc5(+IW4G#HJoYHp(9hB_- z0Hy0$)E{*49iLYwHauzMl~;3WC#~kyMZQXfgE|q#p`lC5yFKVQNv(FfPrBWpP~@_p z)StA*!%vHKscK%zmbLjLH{_rhC#%{h=%@)eZ|_NVw`9c$Qo<{ozN$Tx@s!WI%8uY) ze(sa76CFeh`C{+UnJJr5FX~-MtIAJXbzb5XlIAntYtB0>00ifs^w6cxY2ez!d3~K+ zesUU4<-T5CM!BPJzy0KSm0!HZ3w?si$af|9ym(*p5wdi*JMYYce0n)T%P-^~X~1Dz)L)|B z6a~evC6?wicE$^J2QVM!b;yn#4?nzP$MO>|_H!-YJFqNx8_zrC$%D(sa_=SUNKp*Z zK7`d1y-RB-X5jLEIOzx!>EeM8aOsGqg@)C?{yIH6f)}sz!nlT2#cS?hA82Ge{4g7O z_~B(ICEc{LW*P~3gEew-72)!n*}HtEFAQzIRxa(L^4Px6j9)B^_IcnUu$~aymBOw0 zHoLqWjBq}O&RFGE?}`FL-lzV_at^#^hPnT zwQBkNJ}qwIA76i+9?6lhY}i)qS<u` zPyqpptTC7i7d|o8q~+&4dFar|EnAkIv3gucYtcen{COke;6d!&%f|-oCFhL|!p2Fy zWAZ3P2poX$|g@JS5qF&5&0x*Wp(!FP0pwN9#+MwNVxXTssX{@{5lcquX7K31E)Ml zD`CkI#-gLsGgBKQWx^NHH9sFda)fQIVseRGIW5f3w;erNwGI>N02d4KGmB?b!e_H! z1-$U-bA{;xd(0rI6W+P%THg`2Jw-jMD z5Clui(j{@4gecmKN=OL2d*U@IQvXe|;^b(87KN7=QW4*c@cdJgN3$cj+(`E1LEZ-n z*pYq=-=Kjq!Wykkpmsz|f8Eef91X9-~<5zZ# z*R6=G+mBQG!mU1EE3im>pOs=^yNQRIal<>I$T)b6%<~ke#jV=p^S}q>RKtN1X;oTT zCs~s5N70Z$GAF}(Kn#;G;0t30Lo}2PBupx~E98p1!Wym3(I3l1Gd`_GA=euW79<=| z%heje=1N3W23yz_4}mS)`8$KwWSaOj&D1DL(RU~ct9q8X$<6Wl9? z{cTNQfyrcQT`l}yX1%4Zp$_h$c4t$qT%~NNe>2e*u)}7qORfynDQRA__s-U=!1a5W zc2mCs0cIWC{lE{9B@PYdc)2`_%De%h*-ppPWKYjgx zxlXUIGk>~u{m`0tv+x&x_1D*fbWO!(pa0>Wb)Q%_DRJRQI12$tDL*RDgMZ4_8|PeP8?9(=R^_ewBwDzWev@zu$LKJY6W*0s-3@w)L^-Q{r8Zl&`Y0N`=){m5z;;wq8Ei*}j5ECH!jt{$B|o z8I^fEVm&&hU?I$>OJOF(Nt`grs4);0pT^`ApdEuy`W&ggp`$ zRI{dl$}=oD#RvA~?TNdy&N*jxUZce~Ltx^!+q8fJL;|xu6a2i|SlD3MJl7}QGlUQw z@~`Ycy{=lQ7w9!USj`{NxS|*Kuj@af-|j-h*<=Vt%Fp-RMO(TJ1KS$!CrPZ}w9+>QGHp&3XRUEoM095c;Od{X(tYJ(5yW0?YzllZU{ z^lBBYO?cT^eizFSG3iTRMc@kNGGD0j0-UjQGU-QH+2|}*1r>&sPNBpzT;cQuPi1Yx zY2$c<{j13mb4Tkn9R`_Dud&+IT2rm9R^HtD7g3w3PA-=N6JJ6tkB9oJmnJ5bW^0U*T^{lQh6{U)0M$zb)9uEgZE zBLk&L`yst06b)?N9BxntJjJ{-^U2cCxFGbq9m;O6TBcT-d`hDw_P_p~sWoP2+wg{o zbWtWC*jyM>s0KQ#0ID0>_Dw#)lo)X!hCBrCG4H%qcC%X*hA%d#TNk|N8F zqBxE*#+cL?V?uDjO-=CJEKP&MXj*bZ3W1yDQfe5tV+>qiluJ8mD9tiXOBpA(+c+#_ zte5R}l+u1E>w1!&wuf=ZpY#1ak0eWegUPZa%hLaO`#rzs_xkl5OF}iz%|IH#5Mf`r%x*~XD&GvkMRGO+CXN5xzQuE5Xwz0 z8FB1v4h=|Q`99tbzIu9gNWS;<>AAtvBXhU}+9+KEnkeAtg79E+`wv8xMlwp`Igyg` zyE3V<*%A3ZTyTjVM`m}O$c*jE-i6Mde*X07*{W-CKNSuI(#(zM#Oc!*;HC5Oy^2TV z6YNmcXUPLg*{swKwG8i!ryJi9tzd@O9DNsk9zH!Zdm0gd%X3Q^z$HIZ2`G?%A7_)V zVt(mrm2=E5glkrgAO08{nnscZlG@}JN^~xsr zQtyQd+9jUOEzu2=#itK1MzfelraLV~PG5RsZn!jub0c@rY@QgQd0a8RTA@p}mo0&q zD@yrf$Cn96EX<6cp1G0JgP3wO!R4!u{t>+S1K9WIJVo3RcpOE}Q3R8UGcJxQ!hP{p z==UY0RHaiTg@GoM8oy7YQCYQ85J1@YL#dIH{r!6f2BhDrRPA1kbk)71Q&*n4O4|E}s z{Pa1Yb5YF8weaO|oI)d68+gzaz6*d6`aaLWMFat^L#K4ehf=Dd>k!1ni-b1j3?>cU z-TUmWm^OhwUH+5_f9iFvs5Ze~0~l=3;gFH`h-cJNba<0Nr#;Tb9)y^iEB+-vO@9re z9BBDYYxL3oEXGO3DdGW8Y+%`g%5%%lL zF57pk)79kLqtO08r+@+Wl;8Hsz2UsJzU$NDoA&scT%E^cuRyAn1_xDxx%i0RK4j3# zuXvF};PA4VL@++?NW_O6-jR4tk7_Rn>p>rB-Y+2LwTkUV`FGo%c;wDI@3a8t&DEA@GJ4)CpkE|22zx^#vdc?e zJJ4k-YYc&D&@bdWBZULO-h?1{vMUKENu%$j#CTG5K9`%!$-l`ZCzH{By{sQNw7_qO zYP%}_rCdP%H?}1u|6lAY@?o}+ysoPUp~Z>UdwO#e&q%f{(Y}_)t-wz}NP>u{f(Fb` zK{0w2E_>F+n_5H&O#+b3qVA!i^G8*kh`CE_waqeg4 z?T8r+y%D(dw@f?#fYI1y>@--k%t(d3<)1Eo4WuIITjZRIYA_`ZCR9hT;9A(vfU|}r z;>qspU7oscXZkl~`|O+2^+<0&W^*HF{C4Dw&&n52`K$W6WV6JG%xPOW4rirZ)JD_W z{q0~b6U^X_0Gek@?NDp%-8b1R1=aLy32woiMXMSG_?v-P71u|RgDXwooU=pzt0Al) zzD$(kAXZQ8Mq-%VzH@-8a=GXcSXJ=7-#9q<{e|45G=V=SZ{;XelR(D@WWM~Hd8`xB z$rfDy0kkBr=qP^^rWRyJVZEUF;u-2MKxfEAi?G&EDv82f^U2>&zA$-L?r82o*Qon# z?NQ{*#QP%3XkS*xUUB_{>pOqC?@#~NzTti5?pV@UKg{YIv?q@q{fmY+F(zSG6!BKn zo-d9RXmdG+$*kxyvzo#FgI|vAf5z%2yyI~4;L!u@S5H1E|73=pcqp7g#&3{0;o^j?mRQj|CwFXfz*&qq_aAWCUP zgSk``lR1r8hDa=&VRM;qGy)LLq~8zY>e75Jr-wWkoSY20?0P-Zi|SDF3lNsHUN4ZM zwagI2hm%2cldq}Ban!&UhvTnY?2@u_&_~jV(m@-5f4aN6=f%b53v+okEIIA@M<*xe znJl_<)SGex{KsE#Smz0ABuCe$xbD*Rjj*I7h=ZC-z}VpLBEZ`QJRuxW2owte@fedr zFf2iYSE2Eg4RF*@X&OW6#tVs^J8#;#6Ht?67{0Ch+Ei~K%Fq|Y-dVME+IrV#{wWiV zwb}hvR+yihWXDC1mjsOeTL{LZxzVW{y0BLd(NcGmrUY_kI0hCo$@@%xrO$#6Z^r7a zJtu${KxGMmKXjllRlxl~-%KCNDJ6$B$0Fkg53=9Kw{O2;`}W&gldV}}y|>S9J$dz( zEGz+hPQ>-8c14?*lbW?A0I{%q1`ye)Dx-;)Ck<>KYhq*iv97Ey!hjmaq*|JVO-=r- zf8QO9hHO5oUv#4rk#(IO59|K?=f~NMUT<^y$91($^+C73POH(?9c$ILXgAe{zC?Y# zVf)kc;ZCod&SbYB1+bEb8?g5y(3vq+RZ-Lmij}shyii#AVuEn+4hbJ+QZ7YLQ*i3C zaT#X8SG9X4_Gk-$VsaILh*5CG^K(b{=P#fX(*(*g2_W~C5zMm9?DsY%r+k(M=&ajD zxrun&D66IKO!Pg_9BgU|BDR6^|C^-U$Sp8~!YMne#@r{lBA++&-HI7bQo6(wWlebJ-KU5sN*3jG@?diFuCws}?!K9)#~#ZwqW7*;T#wcB^yrG@=2=uMnaI#2;?JeP|Azy`ns?6cIz`+0YH$CHUq z-88m&OXrBk(Wt9eg*v|Lv@5h)N1ap8ZtNTH?H%t+xI5gq6TN8g`#tO-8(tY9k9Hzg zYbUacuO+G}%53FmRv1sY#gY{4?x4p@Shp@R?s0q=VG-o)k~D1M6Od}UlL0GSQ&g6K z2bq#i&7%Hfaxj?)8mv~A)q20fZ*aMtTBoFCDdg@dbt=8vW$>SIha*lm+wFEnf$h%_AbzU_25E$1yxw`A)Y#D%&NR(E5g+u9UpGPW2S8UitOZLPY~uc}w5nGrdg z{srwOQ)6>5*xYE=YU@>|#+G25WXE{0rP0)?QENA;FcEYnlwx{K@VF!}2V$ubR;Y5t zeM05vK#V-qj==4OkBt&*p{Zel*Z>9ePUPq0;oLOT(5Z+%9Pf`?3>rIv%T*>I^Rj=8 zZbLBdR{5oLx+T%lk|>13cjg3>K2 zvc_eYVez;|DZh8uUH{)igXu6cHLz>+rb`#b>g#X(w|^7Y{0gpl8T@=MeT&o2N54aR{|q^=7aW4t2%7+gNo)uFAQz^a=b@z1c)I}w9k3~C)fgxQ zrAG0Q;vZf3pe?Q79|HqPry5miTZ&z7MGn5A*3{ONR{cY)$?sJuSjy36(m+}%+>U}m$JE_NTr<|RdIV%rO7hah@K0WPv^;PNqXXJ6XV4sq2 zJ&U*S=Ja-a9rPe_1HfsG;2D%O0qNg{(kqxPpc$sp-ZUkGVB_I`oB34nv$=6|ka$ny zW@Ge}$m){5#qCceoU|$*6_B)HD(X1mOB8y?@|pP0#iwsy<*uFul~hVU&@7*r+7od|VMmze5I(Ikj%gFxD|0&T4C+D#av}sAC!_H|2QFM67?r^v*);?7sHVM0i*Rc>m8VFM80KsT+crOrlU^9{gbVg@nsUL;Y zbFiD3^hl`#PLfuq(W?;nFZjBM!zk^c6(JZUrJX#!FkE^h%X0KZDd32`21oB}(&r1f zRYt2_dXJ41wsTpavJHxs_?T8`{nl^kUEtcU)7USc5NEt-PXRlDz$<|_n-p|b3eARB zuLyGm3s1sYOPm501E2sRz^B^>Z#FwuDxd7`XBvubx%4YBPz)ByBV#+OO&Os7u*z^=RWpKknd%Ma;OHy7I#I;a|R;4A7b#Vply(NIP?^A+pM z%?oOgB}zDj5W>sbpG8qF$cf+cQ>mrQ9v;h7g!{iO_2txU7hI_*(*07d@IV;%peXCK z$iL!r!jy%=01pzKvKfE{>}E3n&c(-bnTRz!fLe7IM1dzRyIhWaekWe>>&%M=$>K#RkyKRTo0U2Ft|V(wN!C3`WhvR%3+Z21ANJVMeo&F*eQ$7ud~Q5tJ4{A zx!9z|?TR=Z@=$`!#pMIX&)y|H2e-T7to(Z_LFVz$Bh%jL3cJepCl(guk?nLW6HogH z=d$!Z__G6=P_||})p+MNYMd(E_6SCL7Fua_R#rn7o;VxiC)0>DhGc;s|1=uZI@@J6h|l^7Xj zwoFmw`7Wd9LNR! zs77y9Weqx)&cK`|s`v3DrIp^bD`Bl6v}Chv&3*jch!K91gsa?(4k)v4tRGj`(30UpRjqA z&5;A_|FC)MZr%Ci?CIZjHfQf^-Xi^htcw)9P3*c&n;a20kPg0KFdXXHlKp&7^H;OY ze2k)9%6}F-nDCERHw?gU59C?8*YYkP5jqww$S3Vyr89hx9kY71F?s1I%Z#UTsVuu+ zpB+4!J#!mcN2O1lRRh&J%jtY=!aDF4`aK*~e zIRIl#ZfPEH|Cr+Fg$p@Ccqy)>tU-Mfy}-HJ1a z6yBoX*bQ{uDvF_%u3YhRSj45=LS@r$u2^^&KKZS(6CjS_>cdM}Q`wIawQ=l}%ASxq zL6v1Tni0_(SU5MBmST6P2XtF=a?mG=6I!PKRXc~~ziRi;j92ZT;yf#=t^-f$$~{Q6 zwdl9{YC+J+^C$yGeUYI*&piNoQBwn;bhW3N383$5_8#n3uDYCN8af*eq^7PCnZz36huZ=3XNH-hD!PK0&C$!J0M z)?2zlG&!sbC**g2@-S|rE~@7M=a88HN6?=*PIo6+z05rSPn|B}vk>?ett}m5u!NCQ zpi{yjhl5=r&>(Bq+5BLB`h`TnoAt_PAWHdjLHk6ie@1dg!>*u8JDdm>P`oOb%!S#N zmtQ{pjB@8@?-nl!U4=G9XZjlXKiYevObTq?8ur>1$}PdRp2~hTBKnK0alBErh?~Tr zCCrY*l9H*d67OBBMD}5npu!MB>>b@qe`>-GkY_Z-`q8~Y4js%TgASdk5KIhfRY6xc zD!)qoXMd8vCf%tF7lQaOdbfG!4}02zS%t#x4fiDi66zSXe-WMM`qf_n_qP!%iAV{X z!t60`g60Dk8(Qu5b>DHv9c=uLJO1&SYsRj*rXSwknvZIbNBYe8_#1DGk8^q#eonHL zAZM_MSBc&*85Y8OfG+YP|RfmF7)IT~nnc251lE}YsBddAge*86qzZRr@{!8bB zS9L|M+LxKUOn&z2>4(P`HuJv*7qG6x7fS8eAgy(*Zb?M}s5nv~zZcts6_aKeJ*aGX zcmE-O-@YT6L-+O%OT6_6{>~LL;lUNXc=f(pvqx_3^B;Qi)bKgcm$r1F@8&*V1PJxK zPydP;xd{1+B6bneXZDoX35@)Dw9S2#WoJC(N8zjlrc`-`?_z`gJ|GkLy&21_CFA9P zu!kVKIxUu6;z@p-6pIwQ7(|`4psT6L#b4~8k2o#;;%OK3RNVQV6c}qwptW>OzUDH) z5db(NaeF@R8CA6H0&oauo`hYPD0wDDEmj`A1B<}%ToPl;23PhHpy=#WDI$kv0RfYW z0Dc>4M=BF^#&loS#hmm~{(dAJ#+}zJu^ROKfSiDjn#pZD+FH^PTZ^N~Ws9VH((Sf% z=E`)7-QJSEGUKDKL>e1x1_MfFh{_q5XPC2#YfpB42ec`Qj_#}};A{Ym0y-IX6O4-@ zM!RTRQ>KWIrkG6IT?}<3pxXh^q&pPA|A3OILIfUSfnaU}{`yOkIj2dU-Dh&3R6%sc zdcZBJw5o_A*TlJ?oaL*79%31fxP(4lE0q2I&Wh zB^U@`6vZ}z@f7MK0>WvvfRPGODK(U|n^G~W*J91aCgD^BE47<4QA^Nd&BiBVS^4~o zHy3jxBl`>cGC9=r1==B_RG7F9Hw`LCjO4Y2g03&T#(V6PJ)UzXMlEljJIC~JbRmR> z)7WL;vtNOg)CNtD@JMTn92BiP9g_mYX6Y{=SE>}=3Lty4C}^0(3ixme-mTK(8=3DHzR&w9F!&{4*%6{{0EKf=*b_03dI;iNok`oMB0${i0}~E4 ziu&p}mF4qDmwz`H)~JFGz?aa|gZcPtuSByC`ZIQ=CKG%`+IQ(gCTaSDjv!Ew@_sx` z#)mZ1@`Ku;*e|9vk%B**Bl=zDU&JLt2*pxdVL<%a&S_jKOg-Z>-TSvkIm?j2mOKR z1NM+K0v^)9dxs_hZNFrofO2c}u&-QqUGH_*_FQ*e&$ZXKztN5&)R)e6`PsNXap}@E zY+QbdJ+*sx4tIF9ckgDqB9Za&OScoeJ}^Y(G0X$WUV@LK2WE903t@8sA^^p1mms?> zl0ZZ9Y3VbNp_vCCLoE!O0^;3+{L`0yGs40nZx_FF_^|vkzQS#k;(LTcM$(9gox(UE znUYzrC~yE{vSe&v8~u~2JhIK1U&WYQ$^VdQLffhwlZu$9(m!&K4d~s zU5A5tMJ(C|bn-)|zqy$lip!6f+hrTP;K8Drg)rE7gN>yZP{75JK}Yb~#La4`LVERm zed=c5$JCXB=y#ym$y(vC2{;_z-2j4>`0Pg?fVSTNMQ{WjSf!z0!-i$_)iGq!AO>^1 z>-y`vzA4M!B;xz#HwhU-`m!wV*~6r9Stg}kJ~B}?ZWZh(CdBcQOrPYgH&_p0EHrZ; zT)@I3p~~l^G;w4wn;m@S$Ur7DaOB8fDl;ID9~sPK2A_eoI}Ts>4ExfKE$M-89U0uR zWl#X@Dxi*jjDtsKxo%=(VvAMxS~aCY*QQw!jE~oD^>P zHaxP2Uw%n?nO&Itto)X*>EB$N4jicOMk$})H2Hm~$ZPlgL1KD3@fp5vsTP$&iFpT$ zK|~#_>Sgtw?CH?lAXSLgS@iz>g9nCWUNmR_e)j$S`(e9RC?Al&#jd(^L$sCsptWOI z-pYP3jM6$=Tcc~p0m+(e$m;nN+A0ZFW%Cw1ghJFRzk_2)vXlzZQ^+JLEW=%ic)C>| zMKoHJ5P@CD5Cw!RxfUw^s*WSc=5Dl_#%AJ(1hr0Qt3JuTLtpEQ&KMj$ecq|M~SrX#JRtr_ekeDk3H=ACZIQKX-Ms*li@c;Z))03)5qC z7~|x&^yWT2M&L_t>kuO#8YVlCpkd-2-kK=%pMG%vQanPsH2=0T$H0&PPYkd_F26%v z)3e&72*kyyT}(B5-;RI_m;EF~UfAs~uSoTK%DunOWOvWyEw6<$`e2s5qV>A_Z;RL` zvpmp;UETmMtQ9vrv|2UQ`I*ml=at?0Z&(K+)*ZKcz3QH>?6|dd+voE6&vE_&oG9rh z;4T69^=cSSmt|Xiz+*E)0Vh)$n>7APLI~}gs7u+0`40BBK zr4#*H!kONJ(~n1-l8upAQ>l+VKoBSG647<2>k(NlUOgcHN|vd*^@on+WWr#2`&lQ| ztR^5?)UTFq2|6x)0L1&5$!^7>8%RBTzt>!c_PzkV1cV}naC{O>jUMjliG2HC^xw`i zXCB3Zy5+ywinJ+tM<2dcalUVY)d1gHRybfFz@!x~!%m~%J5s7neLFc}&+v<}46p0X z{^rBP^@4%n6S#9WdmzNaXAk=9`wg9M3FA$r(o${QBh`M zr%O4MK7%b22F$1dj(3;SfW(wI#Bl$De4gynWThro&3T$9T2IjjT2CAY@QRe@DzJ9T zu$$5iQAw-YgwF@JrByAhZfAKG;r1l$N?1x!xv4ZlC$G4k=Z_z*(bkEI|8G3DI&Pn> z0p2U%wBdhCuQM{$ZohxB-!d{{VY)RM+^ZQI)8r;%v5Dtb4p8%vj9Qb|N?$}vE@+QI zczip+gUB=02|Elqb$r;azRjRLa?ICSsRB;G7ODk2x*AoU8YBhc8r4V|wFT5TL8Yr* z+Y~xuz0~t!PNA!-(>TOf~h$0#Q(dw)+`E?iVu{- zDT)auaMG^-8Q3-cv+Z>A>lX7AI5~F%xt+@zv_;+|Z_jRe7|KX0m6Sm`)e`-gk0Jd` znZlpS>3J9vbQenR(uZ){J5O)O?;%!2yN5n7gtx^79;N?G@1jrbdP8UMtCS|_YtkV& zZ2$^^O}A+G4;Pz7+xR~-lM= z1|_rZr~M5L2z7%dP=krEYsjtvYbBUWqmd2|HHwph)sO*IZGkb4;;m9P7*yZAYcvwc z#xkcev1}w_V48Q&%KP&}vwM#plAg<^CgeYLqAYAfeKWi1nsoMTB5^0%oRGg`jo5;k zO;;g^g4z}Gp&y!PL_|m1V0<7#fYromBa58~{tO|782K+E)E)uwYJ_$`DFuT-kqrVX zIUe;oUC83dA#Nzj3*`l)-r$Wv{E_qfa|eRMCxgT9Q<8_v72W5gr<|m3Yp&a7_w{Vk zI@)??4$t(q;l^Lg1Low9TXCB-L3L_@7%9$+J1|dIVvZ0;z>-C?9wY%3%~S}+Wr`cO zCTgv27- zn#A6`3Q)rui5^vb(N!zdRLR(T_CDDn!#mX~z4DB+hg*fUfV&6R*PiL4qZ zwhF5*R?nA2U$!Ei6zTDl+MD9XV$^QBXk>Gw9Q=l3Ad zLvFydbQz(bbg7MjTH~3w_P_Pk{xhVOvF$%)S0UfwTbHvR{Pd?Xg1$IbLUH~Z5Y5qq zlR1s3@NF2WU~zO*!Lpa?Lbz@)R7;ssX{bz8UX238AajaOl-{6P%*D@17Q#)CO#TvjO2Wsu9Hl?pf_%wj~6{HIm2LV`(!iqPpRZ3jO>h*EYW5O8@d$bLn-Inp*F z$pL3B=XCY;tu!3S_c(_~dK&ArPG7RUE8uTcD3yu^%e(k6Sb~%D8sU$rc%ksb_U&Tc1kcKIREl&L zu`AMY2&g(#ekmgAsXzn7Zc;Gt(x>KSMBrCp;1=}J76ys9D;>Hk^|aR!c3KSXh*NR~ z@gkOjp&{Z7N8ARGgTs59Uvh?>R)g!f$$<|bT=9OCFnV%NA8PD5{SGNL6vGGcN;$em z!lj%R&A?DfazHehiE4Gmv;z0NY4)wS6JU`UkL*e^{=UxgHgT^sQF zkp2#!dJrgJHAq)#z;h@jk#epe6RjdheBNq z7o5#Lm6GjXy4uV4Huc>8XP2iZIu(u9>vFeTc4U~bYe%-UIXfnIIc>(4EuEKJnynMt z69Y{B41!%{xx+cUrKR(nr6m5wWm@QH>gNdhE772?=8*#g^s%HTT$K^U>)1V~^z& zO@Tl%5M(p|+S}fK__49$=3zep-VUYxcs;r`IHMJd-C#=o{dlDejPAhv7c2fD^ zGtcaO>)W^u?cFO~*3vjVEk8Ov-PqF7$o4e0$mbJ@#N|zR_yF!uvM;V0H^s*iP&JaU zATb8Pxw)E6-eV|2{1@ITUy40s6~ng5dogV5+#HRXy|!!DfyzP4$L#LK)T7D8OlJKt zlPpdCBO0^tED7C*FnxX94Oj&}YIMkl(PGH*1bY%gmM1V|c5i9O)6*X};!2yUgz=MY zgs4Z|g)sU+V>(bG9+>1=^vH+uJ10-F+({@m!C*2NeDKH->Hd@MBS${`@JK$;9Sn8{ zesc08&ekhy?q##=Nn8)v&^Q%^l?9f4RCnUveBs$M>`C#B8@@w9s8Y?ZYVMWlR(%KQ zou%(&mb9hs$iMy$R1T@;nVKAXs{Ea*&X#*v`VRF>=(F#^U-}DtyO!4&t{&*gssXZJ zRE`Z_$G2)~-ox1F`xu)U6H{syUwv4#N?&_Xj81&#S2d+JX+A3EmHntZnd}$kN#yNZ z38bM}X~&8=3_&<5&Y|kr@_gL)ofr9ce#OF4-Ky`{knLOi&aakUEX{}KJLn6|A=-IL zx?hY3E5FPzu;53;fUwGYmdB$I^IrUpp3_VDTSZDKeo;_J@w>DF3~iR={u*=Q6G;3Y zBiwHw$D=7)uaDjUum1pAMixEA$)%z&cb|vkkJ1m}pFpj#LX_t@?ABURe0Ut64Z1lU z0V-+Y@*b`71kx2Q{Z6UsD75YDakcr?T8*+rrK?v+ku5lxuDZ_UlTBB&XmAGX_(H%w ze5Kvl+v#T)29J0(8u@}sCrQJzxtXjJg-i5SQ%dLZTHUHRLN_c9SMI}mN2HTVO@9^z z9`%Exuv8Jf37JYqx>*2Tb1q#{c@6=`B?2Y6(}Smn1=*Y0s0)?c5Rj^gxe$ScS4gFI z8Jvb(V!qka6>e!pC}AQjf48;X$d2ochK81waDvN8%WZM=uj=*$SK?V&My`>gVh@*c zQOXg@VRgIVL=G*&dM!Vn2%kH*RM~P%3pFa=W~^^zmxU9z_V&)B?mg**qJ850F^W(L z5H17)V;U(Uc&V-m0HiQ5fSdx=L`Ft?RhP)3g z@Y}qpp1owMm%qy{3nsflEiHt-C|?h8A=J|3W8dhd{CV^RHmPD9u?Acb=+R|PR*R5c zQFN;wmKz+01aC=PnMcsDDBN^TlZjjUBJ3@!3zBEW~UkV>B+yC zZ?xX}_FeX{JZbwXLHn%{{B2V5-Ilc?uw3F`ZweB-GhrWGmC?FPqUx# zZe3Q`{wnX*cF}Rn4V{%4$OsR@BSkUR+{=kdUKSKGg1NUgU{g@9NxUd z36Y(x^qM{T{3iKr`EC94-)n#t?KFJe)6&zLYt1=5@v)n(j-MBqv3b995+&@o3{dPBKzqr ztt~9>Y|VVyyisJ%@sM2yB2-E9 z6Y*)VzYu9H!9E4VIF$MuhNulo@z;x94g}q>MTFigaGP#Kv{YyAdN>$`z$}SrJ>)Mb=Tkfp*nmYuSoZ?kPUg zeiODkGDmkchOh(q=fDIgf_4#+N`_QwF@vJx7gDJVo>O=)^(g;yZf@?;xjAVQvb)}V zY<4!Co}GOxjsN0?x9DB`(tOexDPl~Npqe<>l6D{yaaYY`%?&l5#jdm=WQKlmNVGB) z0?c602m)IJM+*J{H35}V5l~}GTWv{v#-`{d4H(WOHLsb96@eOoQznEDA#MzFPQUm* zT)PMjQp0CPiRElErq_pqNM?5Ghb<0GVX=VZJB>b>(xJxD;JqlO>biGOhg9EGQvVaZ z#cCOL@6DvFQA=2x8McP?XHwH%?P%oHVV&WmKj=2Oz0bz1aqFY0+f#n`l$-VE?NQ4M z*@H2Yb$4)|MX&SwQ7%a{xR_A75NNWupx5>9)hHcKNflolU^TmdqosK!K4`G$49@Vq z4vo`d(htS6k*qXjH^uE=j?HIdkv;a2yhbx+k}L@aB3-$S;7g#-tMH2AqH8!T67+Az zb#U^5b3gc1h2z_|%fCN+7T+OWQ~4c^HpR%tQPkh*y8*h!Fw@Duh3bySlF%jk|rmPzM=loh61t zFIrig>ac;7LcyHf4?tm4!gLP7AHOjHBITU?n;{WHanK$#?b~MxCQP_V_xtRx+s*QC zjK)D@%pAdxzN_8-BZXE_Gn8lSnOvJ-yl#N4p8xCQY zO5fpMe$Cm0nA`@VEf?lm7iGCkz$viHR{rp{*RUeR?))%X-A+I`SSeYXwaRnNq~f&3S($#;nmCdWcy|Zgwzc@DHmH4S{LX4`MuduSM;+Q6Ly(AA4y$N41ak3uHF|NW12>F~_ z1|fu|ZQU?i;3$S=sKgEegf~F`O^8q;^NtMP;#B~7eYTQB(p7qa8kk5PLyMqFe#rG z^^1=J_(pU4BA~uB!5}>@9+;dI1)9YpU#~gv#2fJn=T0}moXj2}!2hxQ_8j}ItYfsM zH20hFxj%!2YHtO7s>zjw!yn`pf|>!f(?)tIMLp9; zcz_8+2e45<$*A!ej&1@+NHByz3B1XX>_qwb5X};Ej14A(7OeyM_L`Bx;P~i?(Rg%t zU}WgF0k?a9AwF(*SPU+uR%?((v+>~wB3z@fpi||ZwdAJtDj1hz*=RUSNRd)ve6KSI zut_U`B>{RIi%Snj-3i1TnXC@Kclbm&GJ0ZU?+AkUlY{f8vYA3G9F9j_PLoRIa67ZZ z5V*59W=(plGMSkhNGXFTvgq0qQ(COn2k339+-zg8W7tR32%5g>>{O~6~*#nb)(CL(p(SHcRcR=ejoiVvI1Hk(2 z^E=M~;Fo33oOIzsK}=mO;tD3E8>B<0=@`-m?8zzm-vql{#RVY)%+PaAA^671VI2_J3*qfW? zcbFP>bZ@CwFojaBH+ed?o0BFL+qbF9rmX#Dy_p#u7G|hFQG8{pf0hAvn$<;{n%e6W zy4t!rr#qksLQA08~^h9#7& zF6dlA7%5Bul~#hD0fnssWTHia{w|fCld#%oRCX8AFIDj0<6N>z5x=10d%y#Ba9Nh@ zV3a|QUx<;!YuQ8c-qJ5(F=be0Bvqe0*!S?BzC77>KKif*D8$l399asHQaoS_jv{pk zz6Q)JU^&R4tA;lshN|r8Pzvv=)Jz)rpJq$2^H}oc;LV}B&cJ6kzpt@r`s%KeKXPo@ z5;n4{KYw*PY&C8&G3hVy~VjEQ7|0#|wRjBGsMX^FuYn6JTNqNuUB%1fnZ?Id*h~2%SztR@E`QS{rt#$1B zPyM+k(-_F&JkVuyrkk&5#3g!tdevs1w{ur3eJ+*sUy?IdZZ_#KWWKleVJ-Gz1_2a>{^XO@9+e|G9zYb@pudBt>reiLFK=infz^|+XC%T6hPbFj`K~sVk zi_DoQWQUy?4KW=US$O6TM24>J@&K0o4keLb?IF=FX}nJZKre(c+JhQrGI5r&d~`aN z5fuj_5L;tTmo*qg0wp`;cPC;8<=0}~;6TtFgU`kp+1Bo~LJCeG?4jPKKb!qjPtT{a z54OZwaKB8avoy6{e!1J;xJmb=W{pF$iDBLlgF!Oy_dqX%^F=j(yKC~W3eZj|hvnhS z*Gs}62MAJHG&ufMVju)p)adD@<>c}K$Nr`guIbqZYS+!tb)OANF3;*LO|t*MvGN_n~f1hpW@+ z>~wYXnCf$6$IUI&Q%D5JA)N+Mwn^}BR3Gc7drw%SZyO6*1V>4Ef5$f zQr0ZYsg;q+QC4^_IwSAR#s}H$1&3v77vkux%(O2W4#v)BcID%X+To-t97ZIRG}JEt zmtV$aZjSj{3`d3wT8&YAV?(RID>z$QU*E$1YFAI!<=RI#7Y5q4wBgSCSi(p%f{r?P zL|{pDu4Fkx4=~hmN~x+RjA+1+2wYrI{g^hg8|8!n@rK&R;jll!hLirV{G)zTZq(%( z$(f|;GRQxu+`$z!kfY(@F7@D`x@(yFTg+=9Tvzha#z6D1Od~!E*_PbGtAI2IH&tm6 z3Lj3cR=~NzT}+w+n@^4=BJVGn`?+Pmaf( z$^Ia4aFgTm(w<`}>2X2Bvg3{9nMX8M2a6K0>oZtuY{{bUK-iT?vTPPB&XXgst7^f` zsX~AUZkooebWQ3+MhU!xVUuXRnc@@p1V}Y}^h|NY4+w`FNB3 zR8u_f?JWFkJNs2G+;?<*d^Q*C`#azbyaB)}H+$NSf4}n%K5EYt;!i&v2j}MdW?AO- zKz>|RDHI6d##(R*_&UfCOKK^&Vr8{ZRMnK<=an?6VrW&p&~x0z1>l`>(a`PO)+X9C z@Rb5@s!E9A{(RU@NnjdkCI(3yP((5!C2I zJy6sZqgbm_QBYcqiZwUD*HDb#t{Aut6TfD`)|Csf;J1?v0?|B(fLdcU^Nw5xhqa)o03s{DSo0NaQeJz*Wb zrsudvkLjz|rXmv%U96x_+O4o$67;)QSZu?u%lr&+wXiqgZ5? z7geP8CH$85N0?6Ts!8BB4Pm7qLvL}PtXvxG5x}T(`o&IJW1Bn&$lfNG>p2(D&#T64 z19w8cDv5DxjcuEoe9HKYW)?#o+-AB6>0K)ZG+WVwk3(WyB^4Ayk|7yu#R`H zwM|6z-DCZEd1=LRNDX|J0Sk2Y&Q<#Ye%124Q+!eN%p(Z1h^DtDPvW+?HTJ;QXaiu7 zx#ueO9gW3Bl(jq-3gZE+>^kIrj$a-yAREv*W)%crn8j`oE&p9bvw&}zN3v^m_c4Jm^YsEy zqq6UW8(h`*^;rd6{J1SmZa|N`0rpaL!&O{ixoxWP*izB+mO>E2;t;Bwj)^R>dX}l?t00 zw|6g}Zn|T~N{sTtYI-|+C*QI-&kC!Fu99c^R?Hulph}iq&NI7LkzScyuAWZ5t$a=M z^Uqb$pb7p2ig8~(wvAZiJofO%^T*tC^Yg@?H)f8@G`YN&G0Q?sTXQd?7Ax+n$@2Jd zDz>{8VOGxTT6-DC4=>2QYC`EyUM-%t*V-Hu1L$NMzWJ6-_ZhQ4gWT zr$L5Q{U?34vi}=zU%K>$8+dy9fd$}1Z?J)@+NYZJNZc|boqoNkL)GP#vnKy;`&v_0 zA$!-tHp45J`?{<46~u`ZLKyo9BFe=TJ7+~7t=#L6T|(eA>z=*2jm4CUxeaG!d4E!U zZfNo(T~dT14+!CrifeJVvujrAMv+t!mZ`A#FMmmo&QMk1>s9-dve!in37z!f7Yclp zOnVL)yma#;(R}|{Y&k2PtI-$Fox6z5vuYwM$K~abDrMb7goeS2y#AabOpLebJy_jj zrHV*O{MxNo?%L&klx0A~oglG$J-Xwk?JClH;tBcLC!Sc7`YO*2lG!-@0bHHJ{3}N& zPz=`~!-WOb@xTMCX0URV3<#X?~!Poe3#sCA&uP+yKHeH+SG+I}g#S;8WDLA6!rb1qcPY zXkeFvg`^?x_VqyyQ12#L0Yts5K;bXLy|=w zcyDqWt9%uGBGh8SJLQ}Ku@TUr!H=+6S5~SgsYhthM8m7k?vQi4BYd1~f_Z7xB2>&d zwdWR8T&X-)%{OS74|vs~N^JG8&)!SMyp03{jclkNOWhrgu&7E;z}>HVICT?@`C9aCDC%03e4?oN5If$; zc2P<2tHdTwVm&=YN&|^k%st_)bn+PR>Q*Z-&D2F}P4&oE${ZCuWlshDuk1_(H=eBS z7sHHG^DFtQG{TRfV3pdqbI@MwGaY@oJjhr!T6712cS z1-E0bAbXrkRI8iJ*el48Q~u#Es$HhFiGS5txhA?|tRKGxPz#*o*;UO~EC!v+y(X9X zi!iEhxDl4eZ{tzYH9{{gS+=`jzYui4mIT5`@h7QPJUv~_^r2^M4>gM%VtQIj45^UY z$bPxZ&>q>tL9D=ch9PA|gfa`P*WIX-l|uQ!Jopr_S`YUP-VHdEdl?54z7m&aUn zcCX;}FbEL)6Hgo2Omn?OUdW$T^rm8CRMMiFBY1-|!fk_}wdVdTX%?$wl_8v*+hMij&YRw@2J2sw%He)&s5ejCpp*Ui$L z5%SGN8w`|KHRyBeDN5&-m7|q|tXzL;16c$ZS1))!9~Y-Z-}?5Hb=AR&+1;S^N>W_j z3uRj<=#Y+mwJ*K)jwWL4@2AIA6gf8b#1r^s(bd8&&faCZ+=NK98Z#9?6}FVs#K~y~ z>0zrV^nr!TFJE|Icz6XP$K@+%g|5&29Lr;=TC)|qy42Xl)H*!O+eV1XC$djzz?W&1 zw6E15ob@Mj_0FE2MhYRjVvSi`oG0vD$;nkSw@d?cP52$keg4=< zTd_P9^v6D$oJ4yo5ee6(y|P`Pk$i+0(Ap>NF&LzdtvX4#HF@JRSJ(s^u?~=@($)UL zbMSG^uNGps;du4QyF6EAdqAnrRSdS8!qC9#HmW9zH@Cs*yBrVGfb)=K^q!hL5Dy0- zvsoG`$O(w#h~ z#Guu!m7?xKAwFPnYoe}x`P-8)Jd&iv9(DMwb`-8g&L+|&aAU_=$Bsn6>25H!Mmx64 zA9M^Pe66S_)7la1-#_{KT}A4*Aey?6TSv7!m?i8*4Wn{p14NatjN1*0 zc2VWH7ugL{l;t=zRow?GWO|BxE%!k*RM8C{vO=aEbO;G}nD$a9roz-_c#5DsMxDGL z&QbQRe0s6ejk~GIyNg{p)_phijtg zpQ_fcVzthkOPR=hyJ!5M&2!M^-NNML-?AUsJYMTT?>z_Ev@)pFE1g+$dOr9^cR06X6NBH#sykGjzlij${x^dcVh(@!0S6*v90)cQ<+Ltjq4n;MPcf2o&HV$2W-tz4xw{{;enu; zUjpq}&g~K044Jz;TQ{D@YN^*R@h89givQ68?|Nnaw#$$GSMOsxeSCc?+eW<4$F@z3 z4L}8G-?l*qzV02}<==(-sCRVzZv0pNk*mB{;ZF2I@rRZD;gk+RegiW+TZw^pR z!S~)Fa_Gmky{F7Q(+#5j}*2VI&7h6S0T` zMUDNANNjqPYA}aK@dP{IYvHNzsC)dz3HK{Hlifh?nyd&^4!??ziZAU&S!6@lU=N4i z=O3Q9aU8Jay>o5NfgAQs`J3D3Sm^`ebCXR?zHr#LVAQu5>}Tx;fO}ZN^WkscledX) z-SGbC=p)pPN9M!fr^Lr=DDOqg8OatFoW&i4NlDfM(v@gNQd~eFiRXadk%oNGq>%{A^$G6D;C?e8xNz4rP2B2d;Q^vmyedUBtBU9 zp!c)4eYTfB$oo65+H+MWe+ZO2Kjklt8>2y=NhT8guH${)jH({A);EA_A{g6h^HI9a zI*Uv=3EjmtCjc$lup$5ovQl~d%sk155YLjqfEXNK^J8vWj8QDh{mZM0MOYdQW5Mtu zd|`fmbaZri;i4rnh{=QH6=pK6S5wnu^*V;nj`9V?#m*8*oD&Ph_LUd@wmE&pqGBFs z-<`r4o<|fig($^#bODU&)1shd|CQNgW@NfY8C3|o>Fc)(;(%y z_dV0Qoi#UiCXOaLQ4;drO`+I)EU058s$12j$d*6J7)@Gx^p%$8IMTTJ zc_*+4sNemdI??AYUi6hGke2#P86uSRqgEk{iZ(13m>7I_Y1z2Aq^3`>p{U(zwWH2T z9+_3)zP_AJqeJpeES_+Ay{<%DmUFp5or=N)_-#^>fKF8C@B4ONzta&<98Ja@PWgl` z$OmCDdHEPD%z|?~VxrTWekPF-=Q8pABk~w%41}(p1|@#7k#wQA7UYLe`8jMT3<(-t zcbAKO{1A@6rPN8vA1y7NmQbkE^7ad-m!wZJhB=Kzuhc5%bK2nd-A)W&hXae`4iOJb zJb(~)FvS$@06s}TC_bLdLowrghtuAv_~m>6h17Uiz@P}!S+A6{d4UI*QPU7;4@IJO(#(^kQaqS zkuIS{1XMtRLbf64aKM(tyzz35C@`c)+BNi{G~DJF{hNKh&Hf7zevtqtzrg=Yv6ZKZziMl4U_5|L!M{76M{ZZ#FCVQ*7UTx_8 z^7-JV&D{%Kchs4h>ZI#D%xBL&6#01_Gd5}N(b5%+4$VC}tL~mUgF}0d&aAyhYjSA* zsB@puVd`io-0?>6k!&|heYvj5sHvzCL-J=aTZwawu5K^52thv*EDLrb{gBxoiJ#qk z$Nt)Gu=H6CR*T;14niYCT{x6kb+{&64hzmXt1|{FyYx;f=(g(F7srs^)q3@iH{0Ut zu{XB2ex)_h)Y{sVXx)AjvhH5G^klBp=i1`MToXMA`XnE_6S8PcNmGNCUY4yCoETv1 z1VR*vH_qjvyTB|*amsmmBgdX~-IsSyl~Vo%h=F`PN*A_5FlJwo53|p@@7wC0s@NCQ zE@FUIwn_?^C_zHiYDCnY2%cIz79abU_!U z^Op9LM8mZ2OMPf3&F_=;B7kuVwEqoz(g*mj-}sXUf)B3Sn*~A$yC;zNe8+?09CJYb zd7fujQB58|5#cPa7T(3_USb1~ZqQ}a9V*Ng0 zFBL+q|Cqi#e&b!!AJZ%O)RV`KQD0~cOMP*Ye{1cYGzgQqqBL!5^nhA@QcTh6#vgwi zcGh7rF%{#dI*$RO-=e;?cHAP-ZC&gZ&$JHyu{*E`f;o20(Pddko zoMtFy6sHw96WRpXSWEoDQzj21^qv#?VSm(gg0DF_J>(C?xKk*t9`ZHlJ1PyzrWT8( z#f12XO?RR_TKnbpg1k1x#x0_5cNa*s%e+y`53-TG9539seh2R4MgNFG$ht?>x9OgYe$$v>40mXn~(IJ$ABkYLWhKOc*BQV|C&I| zmt`IDJNO}42pPhNLeteGqrf3TkbcB)bEsjvo6e43$R`L1i5&tCQZ~A8HZqI*zUb^c z9Ub4ewbd%$V|BOM*cYs=@;BONXWM6QiR{}KxrNhBx*pNh7a?(T0WP$Ngw^s^boj)T>uda#X}Sb z|8aekf3t7j@PtY=u{b)qaUXws%PrTct##M@IkMOI`7Lx8J!R_zC=(deOgUU|yOJM^ z=Q!eULOQ%Ofx?|AO%8M)l&4Pl&*hjt(jUG+#bi;$9EhFA7tZ0IvKxTs1AK1_yrEJ~ zZxeLf8iI-Y7Bf|0J8a zfT}c*vSA6$6)UtHhcmA@4nda&iU&pB`f{BvGZ+NmpFQ13SFf(SwHrk`QLhtb&1xT? zd|PktNRLaAxqb_Bff zamZ{wI-Rz17#LJsP0*GirG{#;F5_D=fHrXi(-5=f!|@D2*>fZP;dnTaK?renv=Bax zo<#i2ltkq%ypVsL7~azUh3!52uSO=e2QT}ngjHyZ)Vb|*+mhF#TBB2L#YdCZd*#FM zZm!sKgz)+aB|eh1LQo5#?tUC8!&Q@;+?a-4hv(-xZ~i*wC&{Jh04xRo41>}H=oVfS zwY&J(U9QxKlSBY%qEcs9d#clf>gFX`W<`(O6=-@SNO3MmAYvc3VU=jG?CmrzJc#p9r7 z30)8wz2b!#NIxDuN_gx#F`IskVNrzU$Mw^0z)e^0lh-DlUgx{oXeOqO zSPG+gs~u>ltEl*=9UXv4{jt&7Xo}ihF8g2OFC)m7>^h}>v~ar)tR_`Ev}zv#hme40 zM4w>Vp+JdRdRpDDij9>I=dICF4=v~}i>}qj%AL04vPX-Z{R;0YbsrsGK3ml|^Px`& zOPtzM3rB!n5@o4vT^4|sq&STMj|s&g^$ZJ$U71MvgD0Q7H)sVL)S8O1`-Z5??=2*w z$-Fn{I#B9p|8PHhe{gJU&~8X3i_6)QNVU6cR@Twl+F`S|EVegTtqtu+l&Pp2qeH!t z9XRt#W-yu^ux?@o9I^~9CbH`S#sTOUWY~a6U?E_$U|JM=AQT`j%-&!%wYtq#)}D*7 z|3C&#PdFTC2kc9%uHC#nY%(@F^$oUWpHu1EQ6FI7l83+_zJ{3vjPDPukwANUpuN%6 z-u^e#dtJk}HggMKeMKN>QZ#!|;8?AR@7daa1+kdu)%y*=)Ac!>6*N(g8SX_rjw>-9 zGJ>RqWzV7lYA-5&+fr$~3E~7&5usFs0E-3GH3{gq3a{E~D-N}6Pf?df_P8rzHM!j; zs}!9fYW8a!T3)md>`bq*1cCPYeq6ZA8F-2YyhSOS*D5l$sSDuA(R!uD=c}x z)M6u6NNt=WV82s;NALZ$d->)>(a15Aa`_Du?;Sny*gd1Pl2_d``gc?X$=&L~t@Y=z zo^0nU{H2?}&H01yPd33{+rhb~O6)uWumQ<%W(5emR4wNez&PbFQg8~OK1GpNNE5-U zg1h(b4(x1=L3^v$+iDN? zr*}?d_FWaBqUaMl(+Ap(4u|o-IqhM6BcVMx{~P@cUr+@fBg_(EH(4=%+;K>~0|OG9QEOD)b4aL}r0DV;H^ zn5ZDCgF5kxrmJp&m{+;#csESg!T%?TG}I!&LNrOC(Yj9rL(%UZnw^5)!iQ4 zlgR8HjYdcJ?w=WrNN%fAvKC_2q=Sw+$A0lN=k9azTi@aseGA`3G|67KKQcN)U&B*I zDcMmzD^{?dH#q29Ce+FDIvl5{gqO?dcJ*O-`Isg!rg?ZnjMyRV6cJL!9_5rrGfl=Y z-q#Rq_ErW?fpHMRu3A<0=%DOa3~Z1~f3QuyDGuis?QVy|ZBJ!IhqKOocDHHIl))P# z5Wk`1!Rc&v`ruSfX?JOc5A|nm9En6mZp@7Kv!@#zP41>9gLwKsx3oB2&K6gXGw10r zPO%#dF^|D$G(6hUGkxeY+4S|9`W>I!)^^48EuXofjYzkGc8P|lLi0K_1RUP3(7L2U zXFpH}^%pJxBMPrpQ;gX`hyS;GCV>--SA1T9E!ZhtC;d5SsI6=YP#K0dT1!2a7!tngl;dF+wDRQu-%gFVcAmH!WKSk z%XU+i%d%ZEJ>Tayk}Ww-O8N83(#&Wyo_T)n&+GTGOPOYqXm*>dff3eWw;4^&_HKiz zXO$RfbBiXcC^VaaeW<-(aJCpEr$G*Qkv-nD>e^LiyV+)Gw!6A->vr0k%`6?THydJ| zvdzE(ZS79GNw6tW)GnAk{yQv)AqKz|0mqq}dUS+A$MwDD7rY&lCA z0mMNguUp4c-Us`FC;&X)Dh6J{Clu7bs%khFzKH#;XD!)krzAQ3k%*u6wGY1U9V8=C zeXb0BZMldyUwLgIUD7gopIc#B*>f>G$i+*_58-FOtWIOFnvt%$zNH)Mlq!u#Yh3bH zAgit#59t(^>KDEhC~T;|0kGm&@&0>h1?1#{2mW2tJA|#md%2Am8Vq-VrU|4ogP{sj z84z4e3Jzg=z&A`D(46|*eUwxYXW)^hioL6L@_^Nu7$yv9MzyTiPVB- zdLh%w$g5EHorBW8gYepmx4h#Fq#i) zXH*Zet_w4Kci{z(nw?{J^X+c>|JwW4v5^~h+(`G}JFScxHH)5&scg}lo4?XwWlwwC zvvb-W+AdIzF5Hvv^m#mg|AYI(LF?t| zQC;l({ZXrHtM=H6w4k57`77{0lnb1)xawHoq-}0u4a!{jAT9a{P+pCi-#{Fit-5^R z+A(B@#p_;umw2u|{kJwZmKaTpY0vZB*t5^_e!BR4H(IHU$G-CXL5W z;c4iq21y@)`2coNZ;YltFo!fV&~$;-2Y=`g_yflZ&J%Y02-r{ht%E^nuEGn2oPmfZ zg`ywV0R>wTMgvpZ)5GcQQvo2%M#EEimt7Jik6o1QuKZLeD%od3TkT?KOGvbDQ)Ro9 zuLMHFp+F^vtkAzIW?~_~OA?KuGr9E4o=`U@V`|Jk6+bMap=Lu<@r94un_T^ol-;HMp$Zs;%CMtHmkA7Bp8RZ;EXs5fzSlwGg1{@H)~+L8lpes)jCyU-ILpJVJ5-@I1{ zp&qR~UtG;?mn0i?wb2T z7zx3VKHO>sNWb#w8IMa49(hDCS|vr(>{bE&NH9L2ZGR08Pr_>;osY4bu@1Z&rJ!7n z&8RmYMP(USC!;I|mBZx+V8PU$7iP5QzYB2k*Ie#h?B9;ll;Y3{xP*gx7Zx%gDawLCw z9X@k7oFTj2(dq(FvC`r&iyiKc=u>@Umf~g6bpoXGp%tmAaV>(eiPSt6pKjZv`7ERX zz7=Upe}S#`Lh|6j_aaTUS8w8JNPY!2> zrcp{PIrL}}vb~cP zb&%)k#-xR{0R*BX1{{!)6d^>Yw_dFE2-?JVM7baq7J;L5OohVL`~*xty~0ejEGP#R zr5M$WFKDlY{3y@}F9ymqfim%*cOxI!@}g+UL%Trz;evJ^<*AkGAtWwC!F1Vb$^N^B zXIy!EBN9{=@TvFleXDVZNMD%Gz$!;!f_bX}h}dOBa||E}4$MU~2HyN@VaDJ^E0BL$ z7nf7&-A{nK?Ce~$T={B3%(da(-Y|QVw%QbXRGa$8k(+P6>*kwBqP@MN*{s2n4PTfH zXR~49v2b>arcKY?J%{&nZX}x>$?>sw55~a&W<8w)Zt5$0HIl)A6DPdyb(&j)v;iv9h?^bU0%O0AiGW!EmHeD5=Rok@k$Yu8jDWnKNJ5^EiN@%oa%1D*KX-Sd0< zqxq5HxvBXFk569ESg`ccEFzZldG~w540{uD0Ieb$cpre=%q{eTJZBp5;aE+OVR7kv z6(Il@9nfY)YrkS0n$c zJ1)c3Xyx{CJu@3`jE1N4VUIT80uw^Xb)+brrrLw?G~fvmWJ0M#L~vrOJ2*Swtv!zr z$kf6D@2~oEEnHfQ0QnfLjA7cx>qPe}uGPrW^MJ;{Yk*^k=t&ouR)Q--H~>%k^Mv^Y zDX#huv<2zA7SP}NtK%`mW1KOKEwX8N28~E?#JXOF7V5>}$;-!idp}t5d9e0R>*X# zi4-LhdF?)H(8W}L$g?vnYL}Tsk`kRot?aW z^m=KU&5bh{YHM^^;&80ni{L_4r)-~2*)NXn+VykUu1=f| zX?t^KRc0Z?oyqyI_L8t=?@51HCs3C9qk{jrop;+^nTb${-IbR;A<*bj&3Q&DzB+l7 z%k+!#=N~m)jMkJW=HuE7Q3tft5O)6mKU^{5^Yl8v~p#`uv37h8wRe+w$m5rVS-y%Kik)yBSu{?hIaz)j_zkv;j zX?uBqe?yt8NJSrj2In#%_x?dIqHJGAK4)-=AV^K}K>XFbx&65u{&bNIF|gN|Vm z`2`TnKF89IuunC5o}sJMwJ|*xQ6n{tZ*>LJ!}#Dg{sCkFVAnTNRFB}G&n0@D)G!t}cMUJT`bt12xCmQ=y?L5L8egv6moOHvhEl(7 zm>C)h$PsNW+sYi^_;Pp@OMP3%Ff?qAoe^uNU;uyi4 zEXHJBwv5$rbl@Vqiu(5Bqe=%r+jP06tLs;!P88NB~xQTORdmz$;P z>z8EzE>Ip+?2g{(=5dHR*!P7id37^I2sG2t9 zqRLpZ*VgFTfR;xq6VeBC_|)jg8A?02|MC%0O>c4;EF?WXPp6Wz=Q_EU=?|NEE|b@P zADSEIx}~uzgL9$rQa{JJYZFCn5TUlIsh2}Gg6HQLVzek>_$+tz(aMeEXXWw2L0tew zP+wQXSvRy`W49XPqvvFKOPTvX$r}Z}M8cpk|pH-!9KKSaU z+iJff7N%j%YOFn-#B$H%nd^(SEM|+-SAGION%~MHzZQHflu0N3H&JFNeYRj!08~D%X;EgqU)97Tr?fa?9aq9;aiHML{x4$sh6Pgd)aPtTR7To z?#`Bo$ax%w9q_K6VB}TGlAdka*~S{xeXvPqmLcZj?_My#-5aAq*9y6Zx==?W!MQc z?RVzDG1z}QOFC&(zqP?6b7AN!OBJ!@{t@o>?`h1(QInd5>g&D|t%eWVPDnZu3OT>xt z$jk!+Nc6&WXiM`~0s7csvXM9erviQE$B0!E~jRY>TYN4#7=y{iL^{=m|1AGkTvuNvq+Ae5>CvoE_dJ1U0(gJ z+QsjJ=Qqy4{To@yqdxlFs(pfOj`T+Go}F!9KzmaD%6?(Huz>l)2R;8{&UWTi1sHEE z-m(x+3vn}Yy%zdl{p!sZ;4NK<#eLZI#p1;1`0!z4>*upp`}?;{eQ3yL8T;c8-LSDc zx8b|}wvrfskF7ts%5p>Z#v9h>A0HSP5Ece(6SuCP+Aj`@H=URo*|*7J>tDUfHu#>A zts8P*zF{PpU;ogmez9arJoLm9AD|j1T#fZV)J+gHu_xLOdQ2BHM z1+X4Fq>%F;atH>BF}rvOAPGjYvCw?^|6+_fxTZS7wWHoDI%QSkhvcU?LmniMVJIRn zGK|C?LqoCP(9jUG24cXer1U*{+5p6(B4xma4M!2HS(ifqkKyvC{w%WAHnn2K;$k;x z8J9m{ZtlpDx;rCH4YE!xyX6wEOZn`;{Wru&!PAqY9ntI#E#h)Fv#mSCAo9(I1Cnap zagpyE0;VJuV%BX z2R~u+5hN3&&)N7kchHSDwI$6vdYqk=Tjvm?2ID#mRrrwEjXtXg5REutZ;67^ptOA& zka_|l)Sj+}!2!*2_VfZaz_$zI7W%xd-`7yJoxpPdyblmKsFQS}`;lR+3m+g9@dvV_ zr%ywl&Qj4Q7jGXbvH6nFf9@Q)Wxx@{A3aAnfB-SXGia`{qt8DBo3sn^1>v%k5wSs0 zy84RY&ia4?5sRDhm|S`>xgc9E{D?8cM;-QXAnI_LUJiG@9J?*-J)N5| zj`RuI@JBmL{#dtJc!p57ib-wAI=UAb!_Q0Ob7RS}(P*tC#&=rTxL~%sLeaUW?dkNq zUD4ifiGi>P6rrqOwVUC5L~TTC)`_a8-fbu$76v%?W5YkZucDDCB!!B|xiiiR;hO^A zbF`fYAwZ_uvVf7QuMY+KR}`D-0kbYuR;*9Iw}pHV$jc87E~pNrS0M+5cuWYURpdnW zsD6*fA5_F>KutvhLck?jjea;QTh*v)7Dd@_v;qjj7=)(|R%STu?b5aTkIKn_%VU=U zN=yy=RlD8g@h9b=UzB8jK(dR`%;`*2lQr)UEP3jbhkbPRa|gW2t*34Pmg@~N2|9rAz>ubOjJ@I723if$NMn1gV{mRCXP){ADcKeSDC|G_{XDXXHR{=s~q_3 z4QC&w1!8D1uTb6nunw(EJG=zBY)0!5O2BVjt-)Pos=;sQ&p{DtPoc__Z~oH}s=Sdu zons%Io7hUi$C7IH)E0zdCWYYVyDP*zeD=_J6^^0SDk zyYOq`4~5``m*F9oqMYa{McOI(J@UNlPq{oESGvFdTv_}65-+Pizvdr-nO_HI=c*MC zFF!nkGgX=}Jv9(8U|*QX^!`s?Q#$0Jb`;3YhgQaBW^Z12iW50I3EzY~<0m zw5U{97gO!bIQs@widMmv1&5=4yFZi}$p-zHB(oz){zVP=L)noG=1YHcUcyu-!;g>e zSXAFHxuC-HIi*ddf+;IvMKc)y+*vVWh8FOZT0D@p{?ZD}v&CQb(B1qpJErf863v4W z@wjikiGJ`sNTjuTn7gcjZsM#aAw&Es|%g!(x)BRHP1ec`A;3e2gTBy#B!uePV z3BtUO`UwRr_;BV zLp?qJWBmGKv%@jPVo_qlTaR8}uLIRR8!H%zP+O4B0w9T4r}d>*Uw5-g0di3xX3!r? zTUwV9_(aPx{)i+bw?EOJPM6F@Ag;}29^5*XpU%W6oB7z*2Xd-Ckq}i;^ef>YoE4<; z5*&)HvJwc#(pjaHDykm#rBF|%lW5+5UZ>Y+g&8 z_?^K>M|U7>nJuN17V-gnyY_z*IK0I^!WHE!+5fd;=NI0}0RUq4q5}ZYp<}~&IZ6wm z!(p7m<*F7$!{uShcn$)>@kQR~K!oSkk*9P5|qg%wF)j3K2&$P1&<+^%sJ#)AzptMgV%>O z)IhiIWz%vl>`K;dcsHCS;GDwlbwzre$=Z!sZ1%MF1mT3S_*YC^4j#cAaU5JaML1^Q z#Rits4dI*?sdmIbSRy8m1kL?3uZj2k#R!)X?? zsY1ej98BfYiXUo)fGfR^*^T4Tj7yHGifRNV_pDJ>LSfmJjgA}d-xZpkR<{NGQGZyl zl0$EP+>WWih~ch!1W$`4PEkv7OUt@jy-K~JY4Jt~|9}2g2i(Bk$vRbE0`XBU{x8rqSAl?D>{1!U3-vcLtISwF+ zDqbYRyaV%Ij^W<;p%;-U{}KWptzz*4gUN#AwP%x} z^pdP(wLOpm?b(nv1(9$6d}!3@q4NhrY|GiR3t1tUv?`LOWuJay;p`hPs&8o8ygDk$ zip;_XL)xyhFTVjlq9vLP;2KkNgfJYZ_ zN>9uTV+s8sj?F*iuYV_P4V$lUj&8dNxvKM}h zi_a`Pg>UdN398|;XIH6cd=1p9A5)La?ovj^LU)I>2Nn=Hn^m7&KtWK4OXE!>odomd z&?O7l0B^n)a||E?Chbf<{#atC+8A3Ww7<^Y)&1o!v*ga#wT^1!eAQ-IKMv{MWN+#9 z0@vOW&%s}>{_b%d#}&$GlpY45or%XDPcDB}KjQo=d+wzC_H~av-}q3#pnRwr%U@qM zjv?dJBdB%62bl3t&>TDwm!LWJ162Sa4)e*!A5YGoXY)G50VOe|T&CB*tNZaUvE;kz z%T={+Lq12T3LcE=`ezhSn#GbW-MI0Ar7DI23dW8OysP_5kK-9?rI3AsNCkV}0L!2E96Lq)1SPYa!&Pnvt|8rEI>KX+Y2Q;P`h*E6VVvFx$fLkVVhAjUVZI#C?|L}il##^RNh-x zF5VZr`aCF#1)D~*7#pkhk4E#-Y3hoPqxN>b&R%M?n>UoJ+81GgL&}AMkEZB)Ghn0H zXslH2_l?i0Gfyu)_TL*H+Gu;EHiOJ5d<{C65Jp0c1$Gl36E6@bu!U3z5^HCjm?BuJ zJTr4}X6BsiNh366C>9N+J<{+NVP;bJ+RULDytO}0^^6UFWyE9}`O5HEPs)8o@}7H= zSJd-P20k-lT=Uo-EZ_C6hGes+nTaqW*>iO`k=lzDygtazk-{-eImdxO7}xe}U=wFi z46awvaVFf{rxbpB@XAHtKCO1TTP_AT0rjuJQU*&7$_6k4ACw?uJLJ!t8M5xkZrhgK zVI5jLGUu%0v5}G3xHY$U^z9s8Y<~02%5{mvwD0E4SI&8Hbe;E>&Hdx@P)Em*Jl?1X5iMOcC2|6-@C5qN(iseej2c%Sct9R+%GJmgA9GjaLHdN{&400VF&KL7h#3> zjvEp3ZXGq6#go+&W@GgP``yAqY%I2*Uor-zl@w$5@7Yt-zQHPNhuJJEYA6=-_!ad+ z^zHvr?PohNW^Tclabo>|)d{*JT|>F(t8O91WDFuGA32JzvyTe_T|Bl{zZQx;EjKnk zKQ@*RMx(h{%wHM~dXh0fnwMCU*`<9!NXIHg7R;2(nMyhxf+y`Qbou;vC6=TA_^~1* zgv=fi!{Olegc^{g?UhGEnM@@^_7M8${i8nGliQ){#v80oCiFTlJ``n1t_7s64kltj zHW7#+(^Yzh{u+K5FX04||7m;p=({_R*l@Np-1(8t&hW!wu1EPN)XRTzEd@n`GH`{;uKF$@N10$BfAGPx;dCZ63kdK`h*iSrgci#CzYU#0 zR8hvxvdXK5y%>x06lV zF&7YYgzj0+v9dWRFDe3x0x!qog&KjxLyn!zV7 zuWHN@mZo=4l&&vs2Ir5UWd7Fy384CCQ6S7h)z1IcF%BM11KR6Dl@+K$_+Ov?kJ$DW zVmV<(64Fo%2Lo~pacD+K4!Kg&_`;Z+c7-I#h+sE+R1OBzgp!tuLVodTLaQ)JQplB- z$4`t)DOX6QtHl^y98(a%U1V=MR=Yd+X=d+|+X5Y33X%;JSRR-mzOIh8fHP`GK%Y@^ zgxsqg;|rT>*E3=1dPkw)Sh`$bpwWS+I>zroRn@Kilt+|2b0`)9wrma-WgrGVHF?)$ zNeh)Gk0ay)hQB{5Z-%q|;8^*OaF*;EOT3H3GnFjA3yh5f&IGoF6jxp(z3BDU-IbYx zAtWI@)vd)2$l?^e z28}90fUrUXa0#Bw-5csNWm#9h!wxhqnMr^1DjRENOzA`1yi%Z%HjJ zR6hq!pF6-#snsRT;jk>`i4oslmnmn=IdA+{uvT6@JUHGhh~OK0i-|) zfd@eYftAPyWPeNF8gOaQKVUJ6M{wTTfhgKOTn5xm!6IKbuxH>p`I>9^!HnZ-?H{+M zo4eJ#Amj&H)7yl_Z|Z7WdaJ-L3|!}2w@$vUw5NZ@@!$U~UEjZ_ur`=#$!rybtr`E| z+Jaj9(vngOoYtECh7$J z{Of16FS9FQTd4N`8s4-D4=lbaUey1&X|L*ZgD}{>Dn@s8SzZBrTE}1J(A+wE_!gkt z3)vx^Kdz^R&?uIV#FZ&AAvZmkg3A-4J^nE4)|V&b?5VkYGSCkF3KrO0OwCxIJg6bS zE$V;b36{~GV?Q^W)v{_d#>_)!%4bd*%~>^;j|HDB9gGGvuv6^i1KW)uWE_)>31jYw z${9X4>vRx**a6>DtQ4@S!4gf=a&ISO5)fm;{9qygG#{Y^L-PvZR|j?*V1?2XPY?}k z=fTpn_9zHB&(4`8Bd0`rp?s!%Fh7o1MB~iKax}mm4nz-DN^@Hfp*Ui!67%)SnKCBW z+<0yp^#Wbhn?Dw2gdKHKx_V;hoj}Besspqe zu%{34vaF-oA-k;W`pizVY1U>j^-b7X3|8$Y);mA*ovrDuUl8 z-ymB`2*k2Lf#zU_KZNwcb3L+T$!Bub4tw1Hw#sqrF;NIg`;~pNSq!o5Z>v-!Go;Wr zPhwQ6sC$ZnhW?mkE}ILI*dnNSb#y$7t||miiSK<~-bmhrGXtb~rW5R+`o@&7jjai7 z+}OL>8?mnL+^GF%c;E2wzGM5YxMJVeuGlx+n_1)N8s2vW`>#kuv*1LBDNv^G$1s%o2;YQE82+i@aB-wR{Pl1#Y)zJgaDRAPId}-)GD$PO)axLc zvF;~HcGEL6p!Y!Efw+Lifs@JM5=^-BL|Kj zz~<|GA1?3kq(y$o7g8lkn%%Jk|@(MQyB`T?`hiJIRtK7Q}$=!x<1Jp@^K*MrBW zrjEZjb^O7*YF}`a&uIHH`Q&DL8C)2|UNw%-s^P?*jzN#N zL~LG@1$bF`;AMRR>w70gZLw*nX`ExNrZG?fw%3(cI)J$ZYzzTn0_(EC)ecKLh6z{! z1No)^MT^_f!T?r*#|xHw{@dbF!59B(&uDXx89*Gd)`Y3~!~QmNkA3sb;>I+)S^Htu z78tl{ywA2#$`#{=(y?BP%V=rwip(oBt6w;4X;;01CD@_-g{7^-Yp`LH8!#SoP32!{ zO_5ZHhWA_luBF-H zm1whi@#qI4bUJnXKIvt!w!wR|PT;0k+Qwzq=Y{-af%hJAYUoL&x3PTyV)kfvVQW5n z_H1Kjls|6sXy?IsdYJ5K%MKkqI`k201Cld7i2ialdX9slRx$r%3%(^r7Rjy5nA72C z#Fu%pTM}gAqRLd5`N%ew=-aCOXLxmbLpmMyIPEO3<9|jX5B}|g5z!G_-QI4F4sIHZ zM$61_bz>!ZNA!Tb9bwY`PC_xkJK``+tY{R*=?z0tw0uE9+u6u*%!tai)kD!`|S zhyj!^mV6i*3XoHDGA|-&2N41(x$}efe6X|ggPTKUPT>D+q~`#U(PCCNTy@ok4U>Y$ zs}rY>{|%_4KSK@C`U2NcdM5fCv@sSicxi^5@Mf~d)M6lrD@NWa9<@YV06vRBBwp6L z^K+q1{tsP!{S}k{c-87%k97IVgd(CDW*!KR( z?@z=M+855y!g+=+K63`gC1l>h8c8_Z@cE#5SeKg!si3wNHo3thQbYl9>0lH=io2F3 zxQ{XeI;(ykhs(hz{IjD$WcAv)^XofzvY?)pf)YUBGa3zi9X{28=-~=G2siFBJgm#w z(Q^5BmHPfmmLlTT$!P*MbaZ2Qnd)*X`G)d|KHmpnlBOBZQxlXpWG_jQ?6p)mH=9qD z$|+>{Ev0}vFq=cFv1D#*uKZedWMs$aXn=&ua*EC4nj3oQn%*1en(o{UxxrLwFgM$m z8oYI6$Ht92MsDrkBB)N|5>6Dbvl(#03JpRfK{n$YWCr>m+KN7a8=()vJA2t(Wx4bM zd>UYqBv>x^I+oJ1Dwps{#pGN{Ql+x2N@*OkvC_F}B7k|s&qwbj1u4WEeTTLpo^FXA zj&8UzZWY+vLL}QrQ+SamobN^Yiclk>RUTvsGH9vMCCDX-e@U0*(nTm&r>kUDcif4G z#-NUKqd*FQH0Y-4LBeJWHK!RlXLX)$DeW=Z6L|)FjY*$h?tfVchhy0-SwYs$<4|E= z$P6Q;b5gBT(sYneE5d=bVgEZN)&r-CFjCcC=kNR(OKw;bY3q=j?a5^2zf(h*aC?U= zw|93}`&*5+IM=3DX`|e=olu=#g0}p!jMQdMT`;KS8MI2v$usv?=^HZZ1U3uP+P`$P ztw7*wGfE!ruAk^1A}^~5_scg6n)|A!Q0 zz3#Xd|LmoIT|JH0_di6S4D|onn@tGwxbu$bEyRw~++BAcFi^F-5abOsrBDE3VnpUh z7>A)4L-^F0`dlnLO6X^!3^pS6AlN%VHl>XV{Fukc#NbI;psUi_kc(7P`A!HUslH?Bh`TDm9cZAf;AvjSKq%%2|cM{x_ewXjDX z%|50be;L4DBAm{wF6+x|-yM(rR5F;;-Rhn5#QUVx)Pn?15duU!_X<#JqU-Fx1&4W#Xus+z~4WLPBaxs2C0&?+GWOs|N;C zBp!pzZo`!Vg z;_@;4Wcr*1A4O?<8Tu~ijpBXO{irw4=c%U-A7U>&8UU)O3$F2a9b}$EhqPZl_85Cn zi?Xz<=pX9Wp3g4e5BH}&ra!}0_0gzi5qDz@^Zw;DQK~w42J0)W2@XhjPz1t^t|WUS z`^KS1wYjI*fj~mcX0@}&#tx0MyYXaUx<8cAj%C@4;~;=}=KKMijm?~eUjvTjvLHYJ zubcv}{8_X}1?}BeW@HTk&w;g_G{9(td>SBfXq$o$fa+LRtI8on3B}=PRubwkmgo)3@@2e|vi6 zXML18{)CUEnys~pS9EbP$-orjHY5%e!xPFD;Ln3BxhOs+NKB8!vn^$3ZODVDy%+@& z5hh6wvO+|oiW~^ap6HRYrxuSFe-AVY1lmeJD&v2?Z**Td1dUS~nrHkqc06-tK|gMALfU!sr& zFd~;OV?z;n!<`BXp%sdHcj)&hDYe|^I=2%2E0nh--Eqm{)|b@`Bx|mpVThE%l30LN z1DZ)P4RC&t{2aoZheaF=mb1RN6DPQ<7NilZS!^#L6P5X&7iWv*c~9a#7+J+nKXM<8 ztzs;r?U^h;68vUtC>9%lp_Vi zwD{sB$S>#i)={tBIjtAqXVwpQZWYd6q8J13Xnjvy`|`(^O7SV}(GWw25>b|6th;xi zBnl+sHNZX`Yr4K^N7F4$JJH`rEsxqq8mrziTXb?T)L>7+>2l_QJ2u0HXaHBnn+wMU zaK!M9uKDO1=u%jXBYiwg^5VVRxQuSkUP$EgiBQHGi&--v()9z-)&=t!^dY&iav07V z{?OQK(WsaSCGwDPJ)tcUvQ;2^ZlZ{Cv6xUZVk~A3d8(H_g)>DU< z6&5m!zA11R4$e72&4n*n!e8N;mGsC^UuT@FTugnIXN-2ZgWHX?bBRWF0?OSne5FoM!t^uv_4OE{cdq z^T-sKCjQbcyTobP`a4mYwj*TYIoW9b?${VqqkGcnm-K^N)HU)_v8X*O2V%)6#a_fx zQNMinpdw16r)M}XpzFvD7&l})0ngr9fD)5<94NfK$fj-SG<34lliI`-0A&swU@2?> zdyP06HUl8W@q_z0-s0^36B@-?6R*C)J>kbycTeBqJ()^3g);yW7+&(GG(TO7HodKi z^h{RnRYWT}z`>k@clF59wRi;A^Ir1IB6$kVey-wZFgTi*kC){<9Ti>d*~OFPg@tdQ zIKe&+D8YZ}8d+l=8ZxgLdEesEp2Z{Wr|b&tuNM~H;B)3DK+{^#w1h$rZA6U{;x7v1 zD~3I}!V|wVKji8kSJkn8*T?R^KleaBo85VT4mhdz#WwYrueie8v*|~l{Hpc^wnh8N zs{!o|X8zv&D0B$c-X<|yo=AU zFq_jvV=*HQ4l!z?QWyTV_@d8!4vU7Iwl`P(IA=34x40D5UFp>T@^02s+o|jB^)2Y z($E=<`_yJ5<72X>EB02$4m8zJ5yK}8{S-=L1Bs=;wzybh%(@yC!_HEfy)POlk-it3 zgQZ4o@GIK0zb=>SRl>UNO7qGrK$!`W?xgO^NeqBE(=H{d)EJqc)WKH;N4qJz<#debx>(GCuIe_GX zLE(DgFTmCKp#y0mp&CI1rXCt4Fpfl!pR<4vhaPuXP$XjvHYxU>eXVX5)~?93rP->f zjg0+#;75<%pxN$Nz2ll>b8+^aSErhbY2o8yNX-aZIVcCm$DV$9^cCr2S*RPfrAtz3 za{EkKPEGBAdWU1ww}XZ+!!ia3Aff;RPf(z2p}$T(UgNQK0#~Gpq!_b?#&PJxIG9|mZ_a`Kq9u?R8ki->@wAlRh7U(J5ET97^i;)Xt>IhN7fSR@DQ z_o!+z*#1LrFqmvtUrJqo{|eWgox_@{VHL&*0iOyL3RIHF)!-m;fmjngRdo-RWde*M zta&7F0PQ_kt)ZQGj{L+Ey)8E{o{hxO@$N_LoKfZ!trLZhq}oHR#z+W;3F(Q zy>tST3N1yX*rYvqeIO77wx>b{(FPDrF*oxIAPRN0!#av#PB%ark>Q~s0Da&sxa=3s z4zuTmFPs`?FPhD{kl(*Bc>-wlIU}4tF1#?z?pBY6w9|r13J*a(6|>A(Bi};^?D$}v0uVmfz@#xI=CeU z#TB$z`nIb;XY_5HA20rd3+{*}Gh*p?(R^9V++DUuv%w3mm94>Sl)aLT+RN56VyPHS z{ybVN)qa0ZPn)f5pYG|hmu+9M4d$b(61Fwn(Y62GRUEYS{Q00g+SAt7)73m^`>L(9 zwu{Cf=7Gf+?^PUAVkt7-z*PfCa$2t&z?8aNH-IKtt{dQi^gQ(ZrJ>N4lA5pzc3DkG z!?J*EABt72B+YatDGf;!wrLH8hScd254W$O2x#XvbPR3@vAEmkHMU5JcE<)O;Sk-j zRozkn@`2ZAmsY9rdO6{+dU0~PeSL#5S3o)-GXx1HE0(cd zHE?keSBz>urot%ESX?UI5p~7VUMA%I7IlkyiPB3+b+Pc$1}Rxr`0BXVZAO%Hps9;O z=m={ir~4tVxEg}n18)wcWPunyA!N>nlT*mD67y&Mp0IJ;iX0ll!+iUTsom`9{%P}X zzW()pj-(5=*0{UF(cuzXEMc!rv<0lq)+z1ELVjZH)dk+S^t?(&tcnh_f*~7mcM-FW zY~c7~Z%hbJPB2A#Y!92%{P(gXxVn$QU21Af3kcH-d&c&lNPMko!`k{499b}b;64#| zfo`K)YglRc3aYzxU=3aF5@D5-(<-G->@= zja_KK#DO5LORI%t>OTgWNyXC3_9Xj@0L)9I$J6QY+3{3rEFFl&@`=PZw9^!^&Bo!g zpn2Hc2na|Fv(FD))8Bv1fcF2T$8W&J*rWwGX2tPF$j*gVDQH0O2IChZ_$tg$naTE{ z#~;x=NtEg~2`tjkH$Wc_k7Ovn!Nc;!5nmY0KrEH1h-S%eG=>v%A;?Xs&|Ct7p z0W1$#)CxF7%Nl10O}cf*OZjKg$WIx}z}Tpy#z&7U0eeXfs;Su${5CwZs%W=Dg=rQg z5e~khDr;x5QyKHI6ERtt6|#wNT2WHLfMS&F_%&5h1b=BZ1Yc&qV78`0F1sK0z08)3 z6tF6}sGNp_lA-BQ_%}ZS|7OZ~mIviPT!4`SjYrK30|&Hpe7lIpfL|B8<6=Yzdt^;l z*P79HZ_0FaW$3f%-J^8oFtQLueLk1V=K~HJn@sjV$`w(QqjC;h6fqF?Ryf6zOq)}inDJo0bod;fy5;pYDF z&>R3bvJ>n_#00l&3qpnQtw5QKz-hU8d}psEi%_;q-16XXh7DzggFj`v9#L;mAIXjc z*nNTF$qDPxBi4!C6H+QIO&k%Tsc)yk!aE{2-4rR_w|6hL#fWxg=QqFE$sWvZ*pU51 z?(?6|@p^9Qh`URa)AR(2tczp zE|2aQk&&MVQGI$!GOP9?>`vKmcpqR>50D}106PJNBj7zo0L~Hc{2*+kv&Jwx9L+@W zK7U|#fyYPa@{rz-XwLS5<7>kF(HX}Sij)CW6`4MLK-;Igc9bal83HVH#}f*#0CK=f zgSQU64i}WD|9opSdiOh?(Z|1j?*RAMKo^9|jX>QDVm_s*MMs6OX9iD84mtvQYA56xNJXP#SoZ0TNc?E=oZbe6e?ViB zG#V?vzhXf%S;+Fc0=ob7U znj3tJ*Dwuj{XCEmqQK3P!oWmm+@l*JEk@BVx)eKdz6DgjAG1Tq6$*PqtAa0qkS7Gx zEtU$pM0mKm!Uz)cD^}4H#zjI9U(^5+#sObJwEL6g6|VrWjn;im< z5MgCD+2nw=MRa~Zv>*|(h5iRe48PjV2H40%yUmGi!uyKeex%b_1wAv_>T2`kqA?)O z4Lh}1Cn_z9b)uJ@`s~VmKCf1=;X+ zA+g*f+aC1W6B5PLNeSd3Z~VsoZQ{KXcyG{ImRBZ|gg!Gv+pADyxyrJqK|@sF9URx?Whj?Jt+zx;TCP9r#q$#Yf(orH2LvZJCo zXvIqahT8$r7=jUuHV5=G{70gn>_2+Dkd3iEHz)VLcUMbLLtCPNotpScQt3*^5JbtN zl^ajDaS2s>ynfec9_6AZ7e0sZs($13%32`b{|#nW!mdDsf*TVHp4g}ROX$xgU&suU zxEanf@^ko#%W|>P@XkIz3yW(Bu9fgBICoTXrPY+0b^%uX*s+u>Eu>Nll02KH!(%&l z9>W(NCwVjGw0DD#ZYsn{J8ZIasVb9;OjfmD-JJa-D`@}gli5$A`=ai2Urj(TB1p;W z11n}B9EUJzm?%VW@AO|MS@M(JPkt@Q?oX}y>uZH0dw;xZ^!~)yu3ck^`$u>E828Y1 zRWs045zZGRX^ab9n^Dzc=)rlgRb%06XW;yB?*f0G{y2nBdKCFS$>WhSrEJWPE`a<_ z2e$0lyXBjSguj8GP*XP(_R{)1dZ>PuOOlrITYSYFa?b-9A_l^E#a%}HL z;*W_QJwAl!iN6&+7E};H7XSe+M~Gez5FObv;I5+nCz(B{{puO@oBe`EaokJ<+-z66 z)$SBr0Fi9c)veu+8hu~(eXPjqQDGr*>XmQtrIJq-5lyE3`l-~Ns56$=zI}i8 z{$1l$S|`w6ccSh(;MZ{3y0dun+N<4ndA)`FMqY9K%o@~wgGzI*P-(K=V5Vvt9brA% z-~VOLeZ0++f4_!WsG z@Y9?I_LU+OW93+=6f;ln*&VC6GWJ*|Wes_xQSF(4z&t7K$1vc{CC%(pquUDG)~b%p zhsW05Tz>BluUy}jTX$7C?4F#vwue2~eTp5*3_!Nxa}{T5pfYD+%OmN#Iv!J&!uz?lDd~a3h8LU_~XL1b?q$V(MV^xsKSUcPNkDnYBq8l5yfX2RaS81T1`?K6K-;{{c70H9*P#Hl>y~e$U9}^bNwn*p zS!&n(cC_pGVcxDQjtBkOYv7ARoem3lFZ4B>RCKw5FU?F2W-4@n+KA=tkB7|Yjrp5s zJbZA|+PU(3U!17$@zCj>ym>k!JeWGAeYmH;3w1_qJ&krdNFKE`Z({;ObL;appXIe* zVZxsl4(@yDf$Rf#zqD*lq_)0n^TzeN(zMtYxp-Rq!M^F*#5i-QiE(=GPpeboPeCu$ zr@l_hO;xW&vJsOt9aYiBxqAa1&hF=1nmrw~IZ z+wN&kba)HTb;0Iu{lJZu7hrNbK$(`;1x>VWoy3h3pP z=s+IRK7wX~(u>RYK;nw`si4D*VT8#8xu~3d1us(2)ySBeWT{&wh>RKF>rEq11J>ua zMFyv1HQMkYw2TG*h+(t{TuZ2WVUhZbo4 z*}e!pa(T9nb84D$;HA>)(=!2}?Ve}^>CtX%S0{SLL`RF$Wp{|1vJ+~12NF8f)w>%J z-g^96CkL*r0lcXwu@CVoU_LLCwF5}cpa5DYP_PpOq%H|0^!i1Vlt2hEPuJEUs0gpA z5mt!TlOAhp;L$5hl=&B~@Zjs0h5i#`j|L(aG%)F*MV2ub8fI4Qx7*lm?c>7CaD6Z@ zyttnk8sc>^i?-hnj+Jn{C<=sYCcs74r7nawBiH9qqyr`#-8pPAR7D7G&z~-CBZ-Iu z9Y88Sn7<=`@H|hRIW>|Bd6J5^#r=;y!gX`Du zP1ma32Y0V(>$+*@_9)-9@e}OoH|FN>ran%3(MI~qB+vX|C4h^bF3MQKG$!9hIRI~$ zBh>(Q**~B(_(yL$xm$A`^9b7GIJ~shp&Xcyz?bLAV-@udkSj{uisdH@uOfLHthX6&B}O(dhSSScBfCSrd2f6uIdi6?!XS)9R|XHWhR5wDw%CAyGOB`YzFvjnDsM3$qiWa8$Iw}HsU-p z8jJ?fBzYCljT1%_FkWqd4WDCfxh-TjSPb}I(PTFIfE4Kp!@=FcTn@>~%y#eX#oW}I zb<8axge%Uj*n8XiMq1&ZA&+ZDUwNd)0%=26T>fNDrq{Mi*r z@kEn~3n3OrD?XMoLt_H9xCmr-k7BgT!3jDg0dvD+xB6uxB_AJ4;Y?7!MnnpBd}+AK zY=@o6ssyKZPK^}Llq3T7l}cxdBUAG;L61m7jn8BKXy1D|%#W$wj;3fCK1S4Lmlm^v^IwI%N%dZX78i<5H*W@5AvmO=RD8|a=r)y~k^Z4iGz zf%epx)#t}!=T(lp-Ni^F7isTYe!=eDRUs)7@>?2tP=)(acEaK$< zS_NB#$XXCV)8bRTqGWMfGSeL{i_v7W`z-M5wX1kgcBivhG#f2`pRvW&F`cov@b5~y zBH3D9M!TY%6g6WkN18;m zRsoDRMphbw$78`jq^1Sii=T)MMp~hGjHZ}8SapkHf_gpH1wj?=X>b5AcOj32xAzQz zOxw}rWDzepkaM|QavsnRF1sYy?Xf_P36P>L8;+7snKMPx@Sfs(B4uLR02wlH(B z6sTCWT{AQ6QBm^bJPupi^i(`@b2Py^+B!C=Z5@TS={Ek8w7zf_bG&^du ztX^%g*(`r@r>(igawj`xu`y}(!oN6NqRZIo?6@uMt?dEuww-6};|Xx7G1+C^vZr`3V7+0E-hC6^@Z4P#|Wn6Uz{HD323+tGnZ{t-At8 zCju`LWO?kVQ0hdPmi_Wj@i;S<2#|5+%+9u>R|meI3bFm6)caDZ_P@*XADAz7v8kEc zXYi)B!>1E{`HNWnYj#ioLt%}Cde29O2dFLkNTZ1vA&d1RZiyHW*RGS$Svz3%fm`?Y zYllkjPFNy-Hb=3DLf}VoyXF14_kZv3)le|^L?X-y9tx^D;fuE(IB;ue;3u0~C^;ym zeqdfa*Zw_b*P{4+@qG#UutI}F>UvxBjovzNpkEt$8}tqQKIHNGTZj7lAK-lL&|zf2 zXJEh@Y8A6sLtSK0e4^)5K1nwwjV zrhwUMaLba?5@nIrkV*8LCD%tk`H7>gZcnpGFniqdduMOlx3e?2$<*o){EmGe+B(&t zv>L?T%1wW}bxqj1(dv-{8~$oThp*M>2~0k5b*sx@7#5wP>El+HN4?N`mI!eZ4nWZD(16Vr0HIN{fUS78AzdiqPz2Z)b=Q2B00fRX;Zg!()Sd_= z5X4ygCZXaaJf46(CMEsJ3{HJKyKOWU8{Iayop#%^jX2EgFFjIo-rwHl@dkRX%ceXn zcEEsCzdaP&wC(1b=-+O-dE2J{!`iz5wppHM!+u`Nk}S)zPL^a@mS3G^S&$Y@GkN*T=Uh1lPN=F#W@K&g7svsp3Jzkqnge@5%HwW}XO0}n z#JgX3!JQ1>9gc^#Z9{crr}Qeg1)5nHr5g5qv3C`VBv9ikljv@5|3)GlPJ}>WhM##K zJ!ffh4WC5F|vT`fZ|I4 zr(g=SGAMRA0Y#Z~0#C$%z88Rd0P{E%_du*R7H_2q0sS4DXgqmBp->_y300V#SQwF( zCXp`XaQnSZr%`!t#0`A{8k!g`1VhD>a61|WHm2+|nUYDJW7^c$7xeOmpf^gbb+ znHGUy^n;v4)Ky<6D$*a1mG90kR{o|bEXF-tJy6xF$8v=`|p z;r^`K9J7bL(fnSx+QZ(=z~1%7*rWyjKwSCs$oD20$6ke+j|Kz$KsM{IxA- z4kJ$&5LaluDcTGJ;A6&~?kn$_U}p|gLHi{O^XSo|*{nbNU_5@%5B2OQI3^>}Vl*1U zo6;G)H4K>h{mK0ufy_Vtg%IfQBbg%A*42jF4>|%JxCPFTm$0H@1LoC6=sDHIiU6i{ zgn^Kxo3d76qQFO3H9ihR?Xf2c(t(~Hwq?UOdrVsQyH74_cyvYc6U{5wmvIPwoEjYG z2mCk)ZTnPw9l}senYa_mBn*E-YGS{Ve)WZJ$Fr+_f8*_c_EX#XdRM>r;$PEh1A2rsKSJSA(M>!Gcd+@Z94*JHaZ z7KKg!vQc*sHN2D)sMuo@)QWv}VKn{4TyrSYocm%r*w!YEEC0-3tvhJdFdHix?RMk0 zn9vCjG%z9Oe}%sJcOdSuVw>cqn&F+GKnTE8Btr+YR`Pge6Q@5#L=!vKX}jMRf6Zw0 z+oiYd=F_6qsM!~acg2Fy4F|@f!g7<%X8N0|b!un*^LC$5|4onf8s<3YZEyD;w5)Dh zdF!n!+W@hi_mLB`V2h0DyKvX2!f1nY?ZUK;dh}I09QK&Ca0s0pEEHgQq%u^<()AaQ-XpHAlq&p|BI+Dj!*hb*KqXW?9J$zyRJ6=-XY>630d$Y~if$xtD>?t@yZi*XTM0@T zRI?N!X6e3k6kKi^vqO)XbNQrb(d)EkGuW{6C>vr^>KzJ&L$4GgVsVn~J#XzXb zAAP^DwNTi)dvme4i4_XHLk~Uu&~R`5!P$MgyEA5eCOz5}3L!Bjw?!y)Pd#*RclW&y zO?4A8p|q|Nmc|YbL>M@+Tm>@v=PWZ&*U2W@oF#%wLYK;HnR{n0t!VDcb1%*~Lr9Me zPeYB$BT^tgvB&WY&L$X>{0YHG{6*iv(=+mau!%5nH-*0_KS{5JmxXa-A^Exdcj@EO z)5G$II4#osm;$(um!SzzB%L!%5Q3C6926!6=oRX{C*f|diV`;ma!Sb>L}^g+Y!R47 zMN@d#Y2F_93Mee1)5i)zQR*+Es%9}3du`h`vnZNDy>pk#?40TB>{2)AT!zk>>#m!b zX{sMLI}dSRIISg1F*p7Md9j2nAT(>DJ<6M>Rv?Zw73B(umCBz%xkBb077;F$OcR^n zjKb`fq9cr4D!Xw))Mm4L!ggaiJo<`wR7;ds;qZpHL9*k@_BSN0a^V0dR3B#2E?scMAIdS?R{-+|AlmI~EaK*xL0xi!M;EV?N zV{SwUj%+r1gR}9*fwjFid`jIK3D&llIs(!c7rB=x-Gb4$_TR*|Hl$jyv$M~!Cp2+4 zN;>@Hy%A)M?7_4$7sQD6S&b&>e%$C#=-FGe2N$8F$$QWQ`f37uq88ge{64^K`5+vH zRHau(*ip)WMQ!>C>Fn9FNMC)A?_1^n0c*$H|CFPuv>0QXAh+e*A?^l96Q$-Sr>WF^ z=~!-C&gRYJzzdzb;Fv%nRs)LYLSAlZ@L+ML1->*&JQSLvBB-MyY!9!&4hC(T*KP(~ z8<$cavAHw3YzEY9VNkQtd6EuMmf4Iw?n0?$rkHq=AX0N8KZ7D!2suLPIeFh38F>$f z9vR{LRrz=_^6J7PVl6IrM+yf8u5j6q#fP@zjb` z`0f5=(wI#i+T~1c@(vH1jRQvI=#X*q?#(}p9ezIE^Esaw263@&Wf?4k(Z7pHwy({ z&iA{NX#E|YQ*G|w{mv8F`*EahP@l=iuR;c+lcTWsageleVM9om<{K?~E>7^tdbS=1 z-YlJ+Z}6?7kz$PL-mo79^yB`Ir>L=Vqtg9ok{XV9+7LviG5%rC3**OAf9ZK0-<-VM zX`MQn`uOF~iy!C1oY!U~=U?fxdU4Vp;FLdrHt~Ts=a+VUfXq?%2OmV-5u6wHl@d-< z$9XQ~jCkrxfJ}KvB!a9Pt{v9{IU)BXW*laT3mXbmNJd~-aM--T;<;&rg<1HlbJ`z2 zJ(;C!d|^0P3`x%bgQ>&UKy9QWa6eT#js@dHjXs%`&wU5h$+hTZ$`KSXYS4wUMUQGw z4E8*6nvhNmsy04DM?fI}81d|{aeNl0V;@H2(;&dlvKM761MA@->rko1p6N-P>;K*P zVo68<;eWOB#i`)u>gS6Ugw7XZX^unANuF(nG)GKhSOf4#08$Fq9BGN<#%RJbeJn%g z*D>Jx7F3AN@A?s&|* zQ}394W#>*%DWMDaSYC<#{tUDv(j|ZyrzwO}B;Pu6f00q?qIHFk2}m7nH@E_9bL=Ov zXDr~=7aZP0(o0MsonxU^1RON!Bzr3B?y1jF290nAO1R?^@)*|s)WxK&#(g_B-}c`M#CXd z+@D^TiS|YO-kcYOHr+OiF(jq)2(h?=wGV9X*NPmRBn+#&3 z8B#DU}m|>vgf&u9Hr)Qce{_`QT~DbyGdAM)=SUmjg?^a?a`aZov5K> zb$03v27RZ~%3iiQXA15D-H^vRj^Dypk+3?BH{1mzt_tV>Q1J;|m-Se!F%nE*X2Gzd zr5eTWFdR5Xiyx+P6`dO30ZO5|Yx(UgV)Im1{=Rj2;R~y8T{qa$%KS~n|LsVBt%-f= zV{2CXtTvs$t`O>WEK65acQ*GeF*a?;u7FcZkFhW3XsWq>F8A(o?0u^c>m5WT+jYo3 z+E}p}qq6LRhhk1v1){Og;4loxSfU6l1_C*_(Us8W%rt^&imI?|2I3TClUbo-*k@XW zM6w;`Nj8%RcZ4g|HDTB0G}0+)FN)xrJ&uTLBkh1b_}!34oMNeJD7xg{r?T+a zYY{3{1(eiBDf(N8-|Za?YO@h(i(iOIXWTiP-)N>FpK~z0ZQGGh(3tcGb#}X7AKB4R zuUw*VvIG9vm)Un3ZGjEZ*8IaMw|8voc0+6DBN@?<(bfmBb@4s9%nM zwXSPpHaF3QXgn(Sj%LsFWV1c8ZYjqglHB$Tl>DDmDo3e;tq;vRfR=UWAW&<-bf&l9 zSx_xwF`zxM`J($&}Iu zunmNTn}mvFl0$%fW1X`7)YeD7woYkY6b#*b$0ID-P_tyk(&K}-BF8RMT>9j7x4yOR z(XFTA3buLOqmg_jxDID!KlH<{Tt>uGF^924y7huJgRYvKMQBoD)KC$7T*LrY1m1JB zf5cKy2{M_%Oy=EztvgSUL6cwSi1dz95^f|GVlUHYgBj`A&5q`O`7G+z&upK#B@~NL z*`U$hMGkqtlCNQzYZ@4OldHTZ@(q)F#pF#>HgBl>5fw5e6(uX9=MIe=%HmFA^fZ3h z8F~~Bg1qr(HqTwzZ+$C!7vjQ;Y@Uw0?vj3X7k=0xaMPMG%*UzmlminJsc_?TJc zI~gx@mrX7bkM^5{he#AiYYJRN{&au;-huc4p72wC#dHI&54^$NCSuIT2lmDH4LpvQ zLd}5uvv(l5M*ew#zwy_iRr<1397uiUGpPa5%5JfWI2FV%%K0D^BO<#%-c_OZP-UZ% z`-KNG%72)UFvf9_DF2j5ky-+v1GEDa;6N>?qlYGtj|fu8gNI;)(u>2}l3lrQL^>P} z<+_sWF=&=-$HNa#J3Nhz9>?_DEB2zv(Jj5zx-?Q(7s-W~v)f^kzCAsSS~Q@zgiXPm)Fp8+ZI@ZFm-tANEQTiQ*K5! z(N(f2)F+opK`d2Vk}k7j_ML(F4D!9~!I_|a#va_ARce%ba0i!YvG}P@p=g%ANz#l5 z8pj(O$DgpbwAh)ZZBdox^OQODd1dvYHbOv>%_U;p{1$XK19T$FpfAtCxePV1F5x%f z&k0TeB@KY^sS^Ug)amedPVlpTTHMujOV^6U2$RPU9^b93s#Vog2ZuI}7xn%dZd>dZ zE%miiA@(av*Q#aBst6vPN~Z7nNEdEd3au~p^r)1^2Dc}+>H2`aIDXqu043fuHJ=Kx z=WMFxWvjqC>0EYg7s-4675Ibbic;(hIvv9>qTm7DRW8PUAsuH!^8G$q)hjE8hEB*g z=~WuDbk3i}Ij@*MhOew(;5lFj2*de2SmJkrEB?)Q&e6}9)ct1Ze=ly|N*aFYo^rAK z%8j$3`(}?Jdw+Pi)H;LvirSXP0?l|n76?0KCI2#V+~E`eO-m~yNH3|7Snr^0dZ3Y_ zx-A@W+so>#^#6v*e3{I8kyYKA2cJ)mgdI#g2g{+@#hBiI0psrX*gm|J2o%2 zYEh%8>C@EfjCxQL*TYh?_&R#eAPdPpid>I}LF;d|;@|@%|0Ky;-A@=wK4yLc|s&zLl3p88m)Pa`e zHGgl6+b!#?OIU-$Xl2ZzP#LVDJ6qB%xUtCx93E?fc_qr*Ej9kArmn_jxl561S-wQ2 zP>Cs%G>!Uy*49YGivJZ@@BI$?uNL$vtwS=WTogKe4*L8W=$jwG=pfJ^FlJbDNJwu2=e&aC!dK=|k3|Q0kIN zol;RqNBj=6{xs$odQ*?$;ox)Bqgp3w$U1`I^ix1$gbib0DmqPIBm+kqlf zYTz$bNb0aoA!HSr?*nWB>_I`$X#t}QMRXQaRjKrOL+~FxO2l>e%f-!SY3kTcF%}cq6Yf~-eQ4a>(df(4 z$y|I>EI&0kI3=BA{l|_S6W*Gdih5_)d1EoJ@R&PxItCYYF(#b^{h-BS1C_+_SxsmP zrZas0CEZ}5Y-F*0NcpS_<)cc2e1|yzTZ@qQoY3R@a`Nos()+Q{U@#_(7mHB%nRf5) z-L#Sxg@fbc3+X(*iW!QV^nt6X-e7=2a_yekW3F-6J2NwTU~(;x*$O*&p^Zs0!`cR8 z`+wW7v@!BNC9?Oqo$^kAG!G$B^i5Nyu zcT9S!G%}8bc7}!C<9x2mn0>;^5K^YBbGV?k8emAepzZQd* z(&ueb>x6&Yxl^MR^d^HvXShXMbB$In{f))l+`yI@YOb-c4v}?^bgHfC^~PF@!K4=` z#KwKya!z11dKOwS#pl7pPT_gfV6b8XfD>yDm9&(-!88T`?%n=^^a1OVZ0zl{Xp_Lg zCE}$`WD`aIr}r>_=jclI$rY(@lJ7$TA%$r9{U+k!^-dWwC*}g+#t=MK5?aX znPVg~I+|f`UAA#*+lTq}By_?BZ39<~D+WgiuH04Ho(ks+;R0^?aN$eLjac9bxQCq5 zAWN#fn@7zkGdMbWhGOQW?+KbC2sRZI8tL`Xc#v&5AO>H59U{ON8p3`W!G22mX&sP! zh?BrGm0++psI+3e3XUoj)}95=?BFYGF%f$u#^Uo2h2!4Jd%qO(dQW&`Gl#qr z4{mVAXAXKN_D?wCKjd@un>gnt?rlS^59v4X%s`L9szNGz2j_~x*?Om)g?FzK?kxFh(bZ5P}@LW7Y*4F zv-Kl&QF=j+56NrWDd^-z?yusC1NU)r%L?|59APlXCJt0XTKzoiz)UPZghK#h0&_iP z0V={Vlz;Brp`rXCLY^G5*x7r8UXZppE$hh}y*@w0ea-SbCSNmgBmfaKXR)Lb2qr)^ zi=e_L%z3ENR=^g>?Jfh$k$sEWejsF~Xcfgl00Cv;U^?BOPCo`>r=UOY4`qU0B`9y? zyp6H+w9R`6d2zw6fnv}SPO{IX*Q9Yf6KES;>|gHh4=ibI@Qz5|B5jOKGFdY!wIM;4^>1%o&PoIrmt6N1a?83^kv3x1Z8`VheRp7bp?feOLi1}Z}Vfmbyx z9&AG(GT6E#;QcX)TNd4yNUVwjzyq5FYv*kkXSZSnv4Q6bJgD+Gf>#LW2|1I7h8tN2 z}2cTe6t{( zVIsZY@1QTpKl>E=!d*VDiB=bRjVV3;^Zxze?|cW3t-Yd6x7rLdy$<60sv#IP>30I!kxrR;|RcmalqaZlls_F zW8EH|$ynz$j2qnaV&Pw0W|>3Ff)#@E-1(rClH2k^{l!m8?S)?#7PX%q^OTpag&g8Cgn%o{-rG^_6NuQuZR1lBCSX zWGdEf!17MYEHqsc{L86!zo64aZ8;F$8Iio_Eu_`T$94YW0#Y znpw12fcWz39#^WO0}{^y4&u`=zJ)xw6t~k{)%qyy`kWe&u+Y8X6U?!?N!-W=X+UQ4h8$3jlxcgC`N8fF+Ye zET$ge3R)@J`DUe(mtmMuSm4+JVl&#@w=Jqkr)`lThi(7U`)$s_h%KG=_Rffoj8mg7 zC=^EXBoQ=nmc|I1NUmPJY4z$sn{KAvchxbcm z2k@d^nlI#sX+{5k1xP0+`k(L_2vtBArw|^wV94E#&2r8OW-2=h<%kunbmb^WJC#Li zhs^=ggK5RMdSkL5JLg7COoXdCgrSYd-?KF2Cp1PuE81gfgk*|*ud^wc z+3)C2ipUCg`mrMx%nsCpFtgKs#}kgAMk8v~b~~_0_{;zH6HjQ30w{2~4j{+Z1=?o} z%w=K*CP~5wldwfly`fQd6ekD!;}Pu93BE_mAjV`0xsli}4X!x0Xbzm`unMT&QACb=f<7zKUwa{0ZDT$BPa#_Accs^(Z zaJz%MWGT{yftmyLa2a9;&>1G3C*eZrMLswJNPNI0=U+>tkc@*}4|WR5Jn_AC41i)~ z*yaFsQ?rgX+Xs>AsWU4dWE0b<6B#TzB7=^MIc?V{jpnq*>Gp=w{lX59{fiAqHn3S# znx^V%Zv*~1tAbQ|hKIvcfa?2R=wa5{x-_SOM=L*EkiMIP5UFLSdB+!OEO z==XL6{H+U=pt-<2{5d?hqKbo<7-OCFzw!zK|KT%0`BE;)OxODL53XO|70v4p+XwWA zE$(QZz5bK*87T)8q!W0$+8e4d*ONM+)p6N{`KQs)JXoZLImyTgkLTYWOj^w z>3MitCrk3^58IrP;#P=$#Lnls26O!-AR?@YZy~B$+QR^~gO}Bn!tMY#JfMtL*nwD} z$Rex*_%g-!soh;aWV$@6-9MC{aX_~Kl-T+HtR>1xxiH)StR{yb#?Ot18r^J zJqO2$eZPI;si&SdHkwS0#<3OYba!_;z2e7h#B1M{w$)#Iqw%Tl`WhrvgRe;lJw-Co z+PqLka9zw<;Fpz9?nWq>3q-t%e7~7^^U-FpB%S37qP4OAd~|1}wk#WgAxSQoCyi`7 zv0@QMHCeW}mkKsfQ35zBV0Xzo35vtO%8<7=Y;|mk@^IdW562^e_V4q+Tl#g2Xm`E< zwOM>VcW>!1U z9XT*#%InmJk;)$SOMS=H@!|LWd+}J`^me-+9mD0B*M)#9%#`RaEo zQyJ-9;0f6^7FSA?_nl9p%~d=DsKSK$hP0uV2M2kRmN6A({kAN7%WZopeVi9}J!W<) z3X{@9VYY?+`L9@`&9%gBl}^}PHq&o^bsX28dW&!`-4W0kDZd}bZU+GE`EsMp!^znfb>>Y8bRRc3Fl_P zqA_dy2ty!&POVpJ^={C9Dit`MM!CgF-`Wof^er}LNXw?2A!oF759cobHs8Bt95K}; z!tA7(=;QswtaP>K4UYs-KCvDSdk&9qlrO;4HZMCgy&ctw^rvko+&fKRUt9~)3Cj3n z4R+BodYFQ*hyjs5zKrgE2ADt~17*}ywr+J~(isPvIp7>hNBxcup4`9x$rHc2gKE}Z|M{&$L*jtE#~&3w zQW?jrzYdkEc2@ie_7cqY)MAts#eMIsFm=zW+Cra;n`dBtzPEo(L`#LN})*sr6s#Fz1(x-H8)=CZn9QaKUE``thFl8SC|}r zYfUv%)YTiT)lH5%V6v)ffm0F+du!{=jnFM?YXyaAX*%p{)YMsOP)EJmU~Tq>qlRjq zFSTfS5OoOZ6|VO1uuZ9{3KmiwF)fZO+*cKAa0%AB2CM7$AMIc64_7yJG)HR z8XWxgJuBP|Oku3^)qyT?Eq`8TE5J^IYbNpgkC} z42}0iqkZE;7N+T4AMHJ-&=rDiFzBY;!Gcb)^PCt8=R+Yks*9m+*y&Z_G^a>PhYvNZ ziWz(n_mbig_aeU`)|yA5>elgE8yK@|`I;x|$O?FmZCrc8ehd^$Ea~&m{!$OqEim`W z&<^PV_XMaAk02H*|2aM$$}nwlVDG^AvGKimuB#ka>0bEM=(FE$^b$plnxFd>AAig=8aWp zZHK0tVlMtI6UdJd*|pNs+j(VD|Mt3YygwHWu1gl~jtvB(MXwl*33=zb(Clf}RTLx1 z@9WKx(0H`iy+Jr=G$uk->zu5xcyY70vn@CfyStFMCD4}ZZx7!b5+dE5(d(s?RR#Sm zZ7%ps_?|8E7OJtT*l^8Z5zYB6x&8}+{j&aRDk*?|;O3wNQr;YV6e!&RCJN|gDRwHh zV#WB16)}r(Qw@vU(I(Q1jrDcCb#=EI&CSgpJ)-~Km?v1-T-U0%Jp2(oY{EiuysK-x z7}RXi+r&tpJEGlWWJh$psQR*Ap`AFQdvTquCu}x~Na$aWHy7G(G(ri{1A8Z+LS)>7 zNCDJkgbV5sp;B2>SVY=^OF;T6g6&WfJ#^WH;X$=G8_Yzr@oY2`%zD*>7r*g(IG+yp zhS{~rY+Hvv<5l4so{YbvEz95NkpHEF-q@R86z+xMEU&SfF?ZHOn{MXbNHWdm%ySuE z4O7xKxF zYf={%h*1SH`G5+UxhaZi$#ASwNYp;XLuk5zf*rV{!hro8qHE8wdl5c+4mx2nN%~Hg zMLe~5bu6}e@fzwET32LWfP!K?WMLS59xF0*%l8GIyDjX51U~J_EcV{go#=@;F&sO3 zmW}if=6wd*!EI`H4-W?HlT9YwK>R9!j^Y z2(U_(#!%m^*4ETD)@f_vbQrsFk7XUIj+dtswyWy z0ySBJdee^L4?x>_R+}5hYo7(>KCUJrO49T4wSHEcAIQTxcH0ku_ab=6?w%%=wzzu) zFH3LYx|8iQfVy5&7||j}*i>*xC{n7SN|5G2O9R#_zH(K=59TpJB$|Qqni!Dh(9F1( zr(ReF4iQ#cRaL7{GSoMjY`LeY<@Qggt(s2t?0c+Xll0E*+gq20bai#QhY%KR9d;no zl zhojKBs1vsW9@#mPOsAG5Q|osI@%>4J+PgsB{Tz!-N~giwQH&G{5&lShMt&SQuAtzV zx*=YL4I@3Vz^GM0+hCM`dF7$c9};b(6WbWmXbS4B()Ty9wDfccsoMBCfF&k0 zWXEtnX_saj*w@wZO-W3Q=jiILBUcNN+jVn>cosH!?0AMH2{}^W)3< zn+h5*U2o#&rr4JXdAubbK_!$7q&*`ZW1QsH7N4$Ee|HV(= z!5;Wt@QnQvjqI=P+Im;(n#OCVi`CVsJC-OLC4b<14{Uwl1;2E<@e@e7mHS9;m->k8 z#*6!C!7#t5ug=gGHpYIBLDgMdE%(>WllR@6yBRkeoBFJ*D^n)7c!fUWDOshdbcMc? zPRMP2+adjvgZ(cwwv@MeD|O(_|2fwrzvjfJ_%PNJ9r{r|p9lg*{F(=R@r82)C)A^{ zYchAw{_$QmJ}Etev0c6i71j2do@%D)xJUXw_pph3CfSPOq7}s`rcALLr?%ky$d@CZ z-@G@620qe{6G+5f&?I|Tr^!rWRP<H05A^r*yd7EZP@#qs<((u9=V?LDSOz z)5HQzXN%N4&Di3K1+fGR?R?l^;Cbin4%+w-6GMb7z>wa7osSY?$cCj)gvjja;E|r^ z)`L+-mq{9RUGT$A%)YKO#$#c6T~J!(Orw`jNN%zZt(c6|v<5K=`<&;>2XUnqv+;{P#M_xQK2xJGGGFYTx`n`@8U zziZXC=32I`*38Ddv6iCru_{ZTmaYrt{rQuK?TEPktrgc}Pk}PM=7#5sZ7125D1w7XSP6K>^0y_wND2<=or>tvpwb=}cRJ^}7 z=4)T1PP=l7k){Z3boJ(mTF7w63|U} zJc}6K196zR@2UdyHej}M+((rW7UO^{Oby~Ze`a>todafwGzHM;$8;J z3;byTlL}T4ccyVH51eZ9Gjk*EsjRnx=m)*+Azk*l=)TC?<-7DM_8hf#-}C!W|5anz zIr`v(0*tYJV&u>sacpc1a60UP0|lr$3(GR&?vGHX4u^3q-fk(&dKcx?nvdv>QALPGPQOy{aA> zrSD=E_Uvn~vGB#*>&I_xa@=|!jz_wKytYy9y$5SZEn;JVE3>LklOOc8*CwyXrOw{j zb>FRyCRTSL*WE?j>5B8S=l@N(QTS)fS&EFoD`KKGONlj0NWtMqq|dVN5(^P2sj`m| zxXkkVwBEu6k(>qRvbTVEf}npKw7g7jw7Wb@ZKg^^iv37Yt!r?_d@7ahoWgAD0MNmp zM>X!pDwnXW0f$R#3)G83chDAd8NGps%~`F>MPk8^OJCFJ;nX(jP#o#I?ct^RYKOh8 z1y!jQTZ5|2rR#vTR}j&INZ%x!2}kji6jNcCG7D!<4i1I}hX8X94Go^m-hBN~Xb89K z@dggT`#y(bJj9QIVaAW5B6A8zARNg@M7l7WC@c?eKNXOmZI0(0dffB@GOgsMB)=sT zGV_}y%!c#**`qPH(*ifXWoIN4O&;&dJ5i8sJeM87T7d8JTi7m!Vq*VBn?nnVJ1~wR zi2+<~U8oYIcJg)gW03EoT)t+C;&2JM#RvTxA~M$k*8(ARN$#>lyd7C4HciFBV0j_| z6DDY1vU}afvTIsfNQ#!$`qoyq2kCR~HF&{Mth0HfZ-1n7e0RBz7x%6(QLjRmA;9x0Xfi4?TY)t2=t#h%bt_V*)c7My_9d$??N_s6!3g>`P@BlWf$Y=9>* z>HJ>~4gDp%eo1%t66s0rZFh|FFGcL^ptb(K`|7Ry`kg;lkw(9K5i7cl;v&GO!CP2W zGL$ZDll}cz>t{X_l3r|Il@yyb(N%qgW{s_OQ>`&;VC&a~_U#Mp_z$9g_>YF3)%XZs za2Z*nv36vnmTaL*+Cyvbv|XjWn?s-37ryUu&23%>QCgQ?r8(YS5a)Lk{YqZR3d;6C zo(wkwFFiZqhX496>8nfnQeLs9{o3ogL`{Qki`JAku?KSJh~Mj6sStKxqm* zxYaDAnn5MvBQhw2$+%0H7A~qqkzxfZ-ly+BmG&o}3mUz{>yy$ZuTxt{Tg2Et|K35P zH=PvSJKaK)8wrF^T$8E43N9KSW>vrTG^J9-^k)Kl2czzT15+OKZUs1VhryYveNQssN$FK8A$W6QFu^`cD=<4QNeob5>DB3V^hz2WUbu%=6Ni(D zp=u@J)B?WxKvW3E9z3x>w2vLR7v{kmv3*-kp5Es_2e;*dn1~uO(ADPkI4EP6dz`H* z7d*Oj>4}akC0`xT&*KGQi99aKX&{!T?CH~>N}8Tz6C+tdG~qUK`ZS1$`1`1`ORt2r z9Uj}yIv$?v{{Xc}{0;V>cl-?b#k0T0r+DGb(wcMrN0`&JbJLaK!9VDrGVVame*y0h zY4Z4$%cVf;$1e-}{jp%q8S3A6bYFkSnG44JenIW^N8Dav>#=PJfq4CuRiVWl9XBq$ zv1j$Z>#p0k`kK+DH+FO^zOzadj<4*xwsqhW+t-BpR(8eVMdEwK2(Hg|^r!_p1*|0O zRz$7|n?wanV_at2v|B#ItjlXEMzBu1shSUP*0iT`?nv5U>+!2B@!N5GE|7px z33LaA*#VI$!-S= zOG9&b<>JgO=~7zsWTVe+_ch9olX9vwt;3WjDaTGO%&DXG3RC&QUA(G%7KnUfz);2? zUeTQAcbY4Le`b7!he_VYqqH9nL8o(a#xLeX@5~|ob21tgqN`S+!0F@sn`8A&pF|~I zl;fRgu;{hgIxCN$phD_G`3T=n_+2Ni6C&%TOJ(6Ri)I(@l$K8`!NsQl|4}>1cZpCa zz$$5H=0*PiByiunP^uX&78{F6kKdiHV#`?D6vSmYuJCtfg;o;RgK3=UhR~H0uwHO-e11i|g z1_fx?QEFMI)I!}yl@6uG;f$g(I>6&-UWr;JDBJCJ=R~zesk93MLM&#b@Fg|)V3fOd z!2zS(vj-(njsl0G*tHXnD9xdSlV4COsN{qK1w-{(xbx8_e(=6p1IryRY$)xbQ?K({ zj3DaJfSn_v(At2BQ9ux-#t&Xi{EI+tR9X*9SV)=S0Um#7@+ExAg|m%vvakXMst~Kh z6my~Kl=HANlt;mLV)Y)D&Ky46iy!P_C%wI>`@Y#vI86U=P8z2d>`S>}zyDBAPtS9` zy_v`ZvvSN-5+c7yb_jN_r( zGdA~j#cF5;#(p^@E3bqm z;^H*W1C=GWR`KbJq66gaOL2l$&~JF!gb1bNsGxq}n){lWhYbR;6|~#Oh}Y|QSFvX+ z12wt@MQkP!$Qp1))Y@K@UeToUU`0Y5W#z63b|#;e4&)X4guRZS12^e~pRkFzWIVH8 zd{t1QJo|)3ePFB)0db>ZyF#rr>Onu6et84-R<57?C(h#+91}(I*Bb&Vz$DvILY`g& zpO<6@9Kqkb9dzubwCtj^)i10eVD0$0V6g}H@DyzJpAJkPZZDVe!pRQ}&!1`jFr*Hq zuve5@m?vC|hy<_MzcS1A6Ddv9?j{}R5V!84oaWHr(vdoa+*e&z^}V1b)ErA4eydK$E{ zoj^d-56Mb)@LKfY4$S%p#_VNk)ge(4K5=4&q2bxCA}S@PfXz*CjAW;?BV{y#SNcON z7&hC<*mFeH$&rzqCf?hhwJEiOLWX!d32%>R*#xrQ?skTCNOW`CM@E8KyAh%Lc#-5G z`=u;TBQ%Q3N>r|%S9xX0E>}P=J$d%S3pmP9u?B@DFC!+!7t8q4=F+IEFr{2n;DM5^ z>xdRa&PQ-@3xcu@2$)EBQgo2a-zSPnyIy+8Xj66>^=?!nJ7Cm#bw&x1OtwFtKe~4> zJHBVnF+F}}r1vQ*QY_LV(_$px2QpyKD)9gl(=xBl>?3nsRcdr8gGi{#CTEhuMFryv zN<8TgfMAoXR-r|@{Z8L4t#!3cT0L_;;FAi*2C%o zC-BpLYR$j^M5KJ1iaQ|Z&G2`CcOM=y>kodgb`x7Na>q++Z)2IY_?+g5T&u5&=5{s0 zNJvpcDv>ZOZFwfLm#v$99f!D4+VX50{qa1e*1R3AhaHZ!4{5CPg-nQxgVugDSGGI0 zZyAh42DgloJv;-L-J_w4eZZ2qv;!YJ#<5j&?PWi(9#`H)2!#t;xS*P20M<5nRZ^(r zd|@$^47YD~ZOP}i!0U_xteMdG%q1<){yM+qzT1~`E9Ox4DSYSeNC=WazQ$_E;Hkg_ zp4;1Etog;5XKSpe%t5?TV!U1+cOLyv`Sji);1fu9)KHTjWQ4?MZZlz-6K z7m1H#)H&ibJu9g5#h6`@Rd_>Bp+=rr`IH69XhwtbY@q?8R;|fq+=80zGfU0|={K zAwltq^uzNNmFZbYTF)NE=`OggN^bQavV&8rS24b|%`fX#EaPt%$7hPt9~P9Hcd%Ff zW)C<#*w2tD8KDdjcG?l>lp^djj!omNd`;nuyWo1704PL57hgXSkg$>IOGe7K@49Px zp{z7UymWOIL?5gRGaf+h3I7xhf5kAty;$o}7Ja2<0ayX`zD?7bj*h zMK{Ru!=hP#`E;z_=V6)T!Wx*x3&&v{#&}6hb(hBMxw$zSwa=E zC{lx1$8h+6bdm9Yubnu>oMT|bjU$L z0Vf<<57VCJC+&v|&-seydwIz(C&_~KQpE0q-5ZHi3|q`%C7dwG&jy5%iiN^&LpS8u zkA<1yLFrsXuZC10<5C#?YA0L}@GziGr&6f!|K{&o@f9Y`wpCSERe~c(gRgc9z=EPw zXRVUWNbmlJw|fixNn5z@v;u?4j|Kqy_6JlT{{bfrE?r<;(6hQHk36YwHCUM0&}!_( z-#d=nGHwVPo;-3wFX*gH!dt!gd&d!U4?iw({GG%r4Ve&?43?L*z4C=ETOX684N2yX zP5hB*SWtSMJu$llh=c?5f7HM794Ob^nD@fXxjbQO$;-psJDb6iGLp~#22Y^TLop3{ zdMCo)WIxZZ&Exjh^o^0cv`c>eYx!NYNB+qR+m!2ke5jVW4~-0pIUp<+Ww|8C)r5M; zhGHM0_^SNGHh?w=e_mbGz4Vo^cnX+_xf?|PpUDrvx-9LS{FUW*t|ot27Put8rF0rs z?dhZ}^b7J?uqpW&@~f}V|0}Wjm9O-im~)qW?j1O9YV zT=3U1dC-*3uY5sDvj0vVIw@In={pzv`GGv3N?-k-UYAS9)!gY_?Ydkzu8w_}>vG|+ zDqS9k|34d7Rpn7MHy!2%*wy5hPL@P2&4}^@`7k5vg7F3U=l9bptU-09%uF+xVko+r z3b?=+k*EU5GoB#t#OaX{>F%SzDd|T?QT=R$xc`NN?C9FHU-{{`MsB=uv-aVVv;Q>dT*> zZF&;bC9ZUi9WX$+4Ki;>edzPV*uFxavYl6H@UH)x>zBG>TUWk*;H18A{t$|I!Th0- zeewLn{K3eU-di|5OY^5AJF;MQ()=O)OdjWY88ds4t*BIi-zEXwxE%^6H|_!7MM*fs zuG=k_n2m!w&CJ`k;n4|gF8qOIT{be{@VdvP*APloTw+6h^jhg3O!p74@S<-0A5xv6 zfNN3wx65zO)70a-%@A~=d!gGCL(p=JB^a(&xFTgDBiIc*T2E?xk|!4dg;w6($OVD$ zUOc%V(FUf*oA$6-J7g2}+7IF%X!W9PNQ(lj7L;EL0n%^N=}w|@x!$JNOUGqm!VluY z-Kf_kT9R7*zs_?G@x~jp)}1G(&>y%jT?Ef9Ktfd6 z0S*x8>Z$h2zC?isUVIrKUns6F3jLMbuAY^hCrI*bP z^)hXnvo@sGx*Qtm(2YG`R-)FttvXn7zBU_JymIB@mJaQYRx3M{0b7f;bKPnKPQqpr ze!pU|GbYBo?g+hbM@ui9F~2)Iv_`h`XVi=-J-f>hA4b|H@YB8yfUKWUcxJn?d?H8|BYO8R&Jb2I>AgnyNL*X7dNv ztnJ!PRZ2y28)CBRy$;D4&La+tduMdZYsaImS~-pV$O6acPy ziSb4J~{2@bkcf1!MX-_;ee| zpX3W5S%s2b3FC+;b(GxA5djzktDzp{FX%&|w@-RDIvN@c+5A!e`uMu;k&yIiush=n zJ^G&8k$wK|NM9f8j^G=y-8&;ee|9vKcBZ>S#rR{aaQMBRC$gvRjq;d^92ckoE={h~ z+JcBh2e2U(25X7w3?L?x0s9EuVBYh1B!z3qbw*1h>Zt@!{SDz4L@~f)3a1_U;{lVi zu>K*hq>MVF{-~pOkK+&NG#f%O&2)Ny8n9xwEyF6z`lMTWAa9xYOUV6*w z8uGF~N?Vx4vDmk`X-U(Q_@5#CT9;YeP10Kirz**uOWd1?X>y?rT!;R{S`=8ss#uD$ zhJCQw&yG-CCZ?0#b83Rpd(rP_vrZH%klwN=MTdCWzhIrFdc@=<#QH}g3EO7-!egNV z6X)rizVLu3E7x)3jUCOWfBIADpR6j;(freLtgf{FmyWxTk@JG%F67`mA^nD#nOXV` zN&B1VJK^Qa=>~?*<+)$H_L}rYgWA>9{2E%IbC)^DG?)PxxeT!++EReesY0xqymUNl zLBZ~_D+cMtw}`AO)Rx;Q{aI*(kZ3d3o!ZkXeZi=EKxY!Z)fSSz<64)@Z(LRgZBW-` zZf(9+XZm!j)ujX9jf?Lca+~!Sts!3Jw2Wiom|TK1T}A-xE{O;;T_{GIwYw#AFiN0zyK%NfZ+4L(ez608d)$1co7maoNPwE1PO z;Ul!p_oT7kzC9$^DW4B}g4WZ1C%-d5+3Jz{f_VzUHYpDlpK}&BD2QLMxGipWZ%^FUd_&*{^EDfLmb5Hs!R?c;LaB7710k##;G^!y05?>S_7t_)fiY7_;fF?#00;Y&Gb4OT`PRQ%36n>w7|5jG;D#`7lFkes&1k>E}Q zJks-!Gnssoua0;@KNOv}In(U9fu!9go(cv};d{HyZnxQy95~gV9!U20CsEiWZO3Yg zXc!+ClNf`;7=s2LD{#@8K;;7g)ZmysVh5)Jg21LiJh}tB5k>@07zRc!z1}VDb+6A) z8aGT&PEJp500N_b-@x?rn$Pxkw6(UjNr!ht!av1N7#aXyf8B)BvrS<>SxEe8nSQa@gM_ z(!a8Xy85oA!r#4ma{vC5lCi744jE`mzDLL^j~@--cfL=HFk zq?c!342L-wZr*6jcRUi?-QI)C$k)I-Hk!nYL4-waP zXxi--U=^)RKpP9c%nvY9~j1m z_)Mvu`%Gs)3u;ynA~0R0LdD;{PGG>KHe{<%4o};_56EZ_^{Ns!_KtI`?8mW~xSSscz5e_JRjd{(He zV!rn6fAU*pgEbsTEzZU|+M@1eX^p`Y3Zxe$99~VW(e4Q)pv}Twco(|ZTGaWfgDu_x z=@tXh%bP|`0TSo3lC}w@Q=rIES!nipOP#vb*m3K>hHEC$W8F7gUg}C$Fm}_5j+SPV zuBy@>4YdV=PKU6j^15p_cTKV1Y|S^ElY&l$m@{T#Z?%u zGPjnUvPet`!gql1TL9rVioJ2_Z)`*!gn^XtZPrMV&R!v@$^$bJM-1omLUI;5-?SeOB* z8SG%cULV|EeER8=#qEA$MBn%Q?ZNHB!PSOEhTyi&li&EpitRxI)A#Mz;fM7|<6qXv zv=ty>SjsqK7cN0FtEYhiu&&BlLg^!g*&m?G!#{0bTIzVZSoIcutw;uby;RC@I@!Ow zFP#ocr?g&YSVYKK_FDT4I?wO9|E}L363`&5Fl|I&lV5Vc$cD5s0AX+k z3BIJ1j>>L$ISBr6I2}cji|Mk%1(!eA)ynK(LUzGcCnF!IFDyDN#UO$)MakiE9og@a zk;Kwx@df;f-{^CvqM2|Q9=AqB$whhn#?U_p;b}UDHiNy9JiBnP3tGLvDbPU2xXLR|KM4E;Ct7%Wi~gi9qPEh;AQEeX~WdxYI!y&|XN7RnOt_2(lcxESeuK*7HhL;yo9YtPgK+sUqL!fk5x37 znnjoF*9GLR&M2H{8NAx3qHQ`~D3}Z-J?)Vde#yBi*#6rz4?nKUEN1NOh-CxcT3_>d z?~?+GgU*sB1HeFh&S_yB+63j`ApL?N+?N^d%c#F^&|3_aK)lmzY_{Ao*A{4xN^P;u zLht6@fsn#dfxfm@7VE3^;SmDhN{iF6n;h|XJDj!_OGsz1IfL=ic(JeD>-A-em3~TwfX`HsjJjPaXZU$d1;u8i+TN^F`}RV zdcwfKpK-jBMwsGth*51^r&lMg@5A5yi;o~u*eHu{_W{gkpZdmr`U~KjI91=kEB&$3 zKH}eqzxo{7t&v}>iI`y8?c*5u&p!JTc7uBGC&KjYKf&KK&uHt~((glpr=1#p;31^= z14ZN!HvblT1$0!IU#O`g?8(Z$XQ@aO#pfOE>wktb*zb_`1_s`C2CtjXv$osSQ}^BZ z+rP(lv-R_n!l?QL8>Qb6jT%ovF+=coZiUPWwWiR4m4>>JawgP8C}K7>;2s{$hDdPK zWniycoGAv&X`kkqsa~HQ9?lYE5IY10#d>vly26gmr~+`PMSXtQm#zc@qL3TUjcgq$ zW6wpFlCe~|oD$Vjo6BWdbBXV5=!z-VJp5gj`6`*HLF)gfJ1oJ2K)tu|JY5z1rSi(b zmE~pk*CI>k{sb8%XagAqKsqj<2pZm8CP3s)-GlBOCcadjAr(sbsBkw#g28Jq?5PLl ze5riTXMS`P>Fv4vu>yT@59g`Eklo;$3w2civ2lgEYgB(0*?mYiNg!#MH~nb=yp*;A zkdsY+%#*>l2iTL!!KgZNAbN1m@Sb5jfW+x4&gAnm#i6TRW$WnGtZ7rKluQO>*KYNR zUD9FUXlh4l$ByK7$MBxp_tZ*4e)IOt`SGFhOiq3NKHwsil8*cDI64%ad<1PxbDZLi zZwJ*q@D?HO^7B9~vizX-T43*j4o;((RB*s*CQv8k$!Jio2UP#8@mIYtf(8fXyCm3!Byefc3ZB$Rcvv0hS|gGD=RL_ zv?Z;py81rb)fz8#{U#gh8Oh zjT;qydfZ z0KrgHX8#LMGKon~KB>N~zWt;SW)e>BAVfF%&7w`1;*hmiyvAOLfd;OVgd# zt>pCCVs&R#C=2kCEsa&B0KQKmme1w-fE(l#(JHgm*RF0eb`I{mFcq?w zfyw6bIn{6H6hLJ%+{9<-q(vcYXNA$+AU?x4n7kIZ*t!<=rTM1G-ER0zD$wiXk^xLyqUV~*FBCL|lp6$Bhq-6w=Qx5l8)#NG;cO*l78Zc~M&!hyYa?hS-fsc>)) zKVdsXx7+V_AJtxJVr`-(s&_dEhs(v@s=scFl`N~yAFo(Sqow9m8Ua3EaX$*Pr>6*7ZWG(sPi#PVviH9ln6OTI3|uU+&yD-X}4#0;O2h!Lz7cO zY{x^FhJ)Ju`Mq_lSN)Im>sibE+lQzS;=`Llhne0#|qdwwS6n}7X;(1>pFqSOM7NPw7?1d}4 zBbTQy_g?s07Y_BV>BU2xSA2rSr~G3k^N)(}`L9iv&Y9&caHbM{;B0j5 z7A7Z#4)_w!6M5_qh>M<$EVfqtuXXE~Vg7@JtPx1WIZpAh_a(Gf8DlztU4tT^npg-1 zdXG~J0fFX-w1GKg0rs;H&-5dAuJ%Myl>6n;lIVEXWo4s;LQ>O0uJ@$VsnJv_O;4f2 zuj}tp-*egm0h{wjk-q5FS|qi7CI8d>vHY+}KUvr3CAgj*v5h1P88G7N^g!vXV0a+A z4fQ51jU3Yj+ZMg@sAbGU;Q~j_qki3ONv?1>kiycz&Tn(5ad$^YqN8KqSZe*c@zmJx zSoavBc!q|AFSLn{KQ|Uq>fbsYp^(GLyw5sv>OXWUfq>FE8}@~}g1%rPdsm$AGibP0;d)5(h*N@W%}DAC4y%&WMnT3cs#Dq^*i}=8 ztHa9hP)(_2j?V0z5%zdQ+aCd?r7;-hAGc-H|D%nD=?A~pe2_ii#6*R#8&FBf36v ziTQ-+U{yJ*9+EP01~kL}`hmnq@`=Pqf}VlO?7sc8!a=Fu_LTY`PO-C7bh3^_UjMXc zpMUWOBD4MA9e=#NJ?_6m?v#Vx5RRSl3tu5OAii%j<`&uEyC4-nGCce20t*VyktL(! zm(H=BGg2A}syM{KFP~`Yx4vt$1y7r8|8M%A&`Ds={{N@{pZXGSL+H`@-uwTe|67qW z03`pn`hRx+zW;Xjt3LGqSF|;s)`%0(s1x;Vt8aGBhD%I|$X9 zg)g(AckR$8hpt}Lz3Hw^!&iM1NH+KTlhH8Sy4`PB57YE3!Sxq&rM=$Jj?>S zega-+iLS)JIg=pi(Fi|rL9kkI>|VG6c5eRRmk_3lT$A@}FVAQ%K+t)k%&ww@lIsWl zHz1bs>-*JH{paU$=hGsN^8NyJwGjUUk`RG{+%*_^UTA*{WU{Ay6EYrzKCUJia2GOh zBbaARXHvA@0OhVDjSMAv0D2l{1@bOtf z1`(9cX7v`SGw5OVwR-)HHW*@4sP7W_bTQvc6CAyOG6ay33U2eVmoX~sa%+%J6naoCfedRLwRMSgPE;;i0k_o*YU<^)E zKa`iwLWF?F5Tp%wFdagN@EU*{#B zwyVc|KH=_r?on6WbI(2OyZ7wsi$vybz4h`)H>b`e9B9ZJ5<=H zS|POrun*<9Zc0Nt*G%68Bo4#~uBQXY6jzdBvxIoj-|*kmvbF&dz2C#bv$9-{B9Iz4 zW%pLCzKMzCWH1^80uot1My>dRIy?J9l&Kw_lb#NK$e#Se*mc*%@ORx&j{MILv9TB$ zhIlGXuG6&6wBPqai?#-B#;5XfJ3S>!fXFw1@V&-vzc7cq9OaN3I3O><858ONo|YWs zvIU}jk3A+=@Ta~LOeQJpPD|!-EFdYtVpu_zg48==Hk}oPb(&0wqyzxlffL!5wj0-{ zQf;Z!jrH^%lmtW)|F*;Hv|3=vbV`9p)?&9KJV+a-je5zb6KOC{tIq;55F(B_loYpA zdEioEg5id)cr&Jm(Y>q=>K#Eu10|DBsHgl=0u)DO|12_NW?^n}WwX(wWjWpJHCokE zZQfQ#i`m@bX!WkoW|fMsudNKQdLJBPXuoaH+KRE#gMF*k1Qqw`6q99Jhh+mXRWK(* zU1Wq6CH_C`h%rvAxk3B){@dN5{wc`sYXjhZ884Nczp_^#kA3_u*2vefk2uL1155{~ zk7*}i00V$C@&Hsuu*t)4M(EFRg$5J)0Q<2vB}j`;^M;nG$s-Tk4m=W;oW6dVec2%u za{#4Hx_v$b+8NEcqB|^Upfhg!XkxglYdFE~i>;cTUiDLtD|VejCmNbfEdZW3*{_Sa zJh(>r7h?{%zmQJv)1dQWNRTF2x4Jl1Biw$Fd70KqH=^gr_Xn;TQ2t+GL%dtgDdn=&^%7JD>^b#`>~K!myVvT1 z`C(Lj@90qqg_yx!RCb6Y%YOU{X!-yY5sC`*@nB>Mos2pA4Ry$jLdY492-DrFvHP>d z6Og@r#6o=$^+cp^ijDo#73`%E79AN8x0O`P$A{Gu;cPa{{0BMD9LBwWAFBabiYe!L z7j{=;8mh!q$4l9aOPeidu!d!Ve2QRnQ(m?1)FBZYzi?qi;aX0L-hLJE$$wsGO4 zY)JPrDlqO_e9PZ(neEO8?(<_kn!*JnF2quMSaay*3#^Y z+KT6!IuilY`73NJ+Gep@Epkk>wGMjN$lQo$(DAr8tZ(lK40ZcjEjC|-T=KpAi>o&4 zBRvuQ%xa5Gj(X{GRJOIa+PjAW9qszaU4R_2?6+F?BaefuxZJX$j3Yan+f{avTfC#< zkYL*%SCll;9~=oN*^!Z~5;$VLGXO}Kktxlz!#98H?SD?s;97n1qqFdT%`2Rzz1vRYh%Kzslfch z9D?gP6$Z6u)FVfqdFCkRp+~Sb9LB0hSQ=m%kW3S^&p`b^8h{Y#1K{-mb`r{RH)JY! z_<2I?JJU*bm!iJ@Atlgc-|;D_Tu}Ya2Z{6p4?F-TuQTJQ;K0sPx?v+krV@#{;X+F0R6JTXv=l-aAKP#)x zzo(>q9}rjqd(s~T9=`hg_bV0BQv0Unl2Jchjru?E>9;~9O?ytGEV3Gh!L#tvnAW~p zEgR(_u^RpJ+*LpooBjx47PuQKIr5s`g)*ZvL;x!%!tdRGKT2g!qa>I9HFYE$&`RD{ ztwfDdrCP72wti?{)})OjPLxZ>1O30MzU*n_Nvdqwa{oCh&59hF6%}9AzHzQQ*3O=y z4*#G{M-|5()xA+Z`4y60Zy5!@MjJGUP!Ii*hNx4*{uHG<4X>$d!vT$&eO2_ivET*>csN}fP7mLGjMdaEdi8VF_6x5}VIDl+t|;vv`E+xb0B3EJrIh?SZL*XY^$0`xFjZIHFgl2y%|sll zCBwfsc5Ep{>`f5iGQ6plBLR)5n^v!m7`-$rwf52MCZy}{=X~`!wEeJ_oaU4c9ZZ-c z2&1WhnaU27CZ*Zb)?lJEF;NPpGnI5&eWhZ|@;sKv8x!@<! z7H=||a2?q<@oN&F=t=~i<1~gBN;5*&z2FFVhELprz6`&|cwQni8*SUb4u#WPtK^MK z1*n%Oc_21+{u#wq#)VLPJgY>Ms5RjC^oEQ^9WX1S18u>uI}~BaMut4E4Dc16b}=No zLq59`(uH1ZK`t4|)zRs6K+OXDPiHIps<~$(z4-!z({$nGeKWmAolf6zURozuZ2GPn z?x;#@kI(c@^fnvKM%{)|$DG}DvHjcSE6c$^TdMoK-8IQ2*`308V*b_m1+3jWoQT@p z@pbJUUo*3|7%hRe;Km*V#>KO>tn9LR^wws*C){3IA6y}Y& zrw8R*4RY&c2!Bg4fRLt{N7jk@=2&F4-ezKk!Bs||H>mq!&-p1MAWcn$3s{Hxj>S0L zv#~V0qFHvV-m%7$uu08i-sW>)Gxo0CeD9)loqNd_!e00W!Hes(*GXaW*eP~Uz2U$a zC-2-9uD*Xao_7VST)+D9o4D`4;J!v^)tU&GrCn&Lqj3(>? zn~-_ZrM|-s&Ofw&zcACFOCw_I#AmS3b?l_oVYjK@vpOGDuib68`5ANE90^%%j&_O*^@vD17IcS|zoKxCzxw*u zK|Jjbnx4-NIf-O-&TWyqV?#Kl=p<0Y?KEfR=F{-nf{1MZT$}m|;yw@oay`@L3sljb z^%Ta27g{&+4#`qH6EGbYI0?uCTKNmQz=9?NkrXFlu50dO9!(a4^0)vrw0^kA&_Zxj z16XDVDwcw7cS)3`pd{tflW9DZsw`KP^h72zk=7E%26L{AD;Lz>uy1NVmO3Ro)@v_+ z$dkvmx3#tNlPu333-{4>ep2siL=p&p2rhsyUlDS_`k=9GxQ}9#a$EyMS7Rt@@uV28 z&+TQOi5P}BD>3<9BYC^067^HG<}9dM@t(PZG2K#Cz8Z8R^aFCaGhmA`Y)M{Ys7 zRT;DNb|?cT^}ie*kK@74q}rM64$S{4b9_q~7*N>7%J=_LUH7eTxzQLwH^_xnWs!IB zf?MsyyjqL3{W9cOhJ~R{EhZ5_5H-qij_B{Ro+ILL;rh~Z=aTEKOU@CQxbS`UGWAeU zIw%JuDIhZ=4mh2EPrH1;9d_e!Nc&Vf9@IWkKhQp7zew68k0WXKdi!3ndnLy!c1haS zMb~hU>aU?LL}J-|*Vy>%sE)CU~0Sp9C-xnMtj~ zUc+%0;Th6%W(IKcjU=UPn=ee|LE6Us1w1vmz<|}JE_)%!9j+U|KQRr&onALQn&a4M zxjY7}r2;!S8P05vj+xDYV7Lrm2;;s7;1+JSJaXcJvFT`Ldx|}3Hmk2#1zCEnqJBBS z(W)vyjb_hVg%W4VNvE(_?t<)9FBx7iMiVe^F)+Mwz=4w_NF^Jbh@n|h`m`eLok8h( zv)TIai3il&%<}SI3BMpkfi73zIa(*KYjkmieOzZyhMN0cb zhd*4gINX5xa+pPj`awQ5%HTXPvpM~2K0Wf8YLq#fJ-g#MqzHL3T4kf|fxbZ5X^UEV z{mpi>!P;uKy2cAr>mTizyyTLpZ{tjpXEdK1Gx|*Ps=)k>LAIIY)(Fy;=fLppA zQ04)b>mQTjNI~qE0^`X*zSX~}FPt7rrN+|XzD<5tA&|dd{944ihpZ1uM;Jkb4o z&($zSUEHG@^MLcHU_J?a7sCM57Qj|^AmrW~&y!nW0aZ{0DLOoSytc&`6!ixmO};M& zD_57V_cI|HsE*GHTcY!CDJ?(w5*)9<3LQ zaLseltgCb7pQ zJ}Wx*4ev+SgKd~q(wV(O>4`u}Dg}#4AqB7i(RExF0&XFln13<(=}i=T&Ni~Sfov+# z9Sij&d-sJqdn7sB)8_w*Q@rIkd=ja7Fz*{V%80wse54QuLGc?)LPud0Bi3(`!_d{W z^aN-?+WH5Sd|qJ^Wuw{5|F+QI)0;OVyEBfuVlg@|M{yM1Qu4UEc{9@1sc&IHrtfL( zRgZJAaw<~fO~TuYXV{?T;wC#%m8N^kHj&jie6A>*S0O7(yyrM(k4cyyB z0gN*x2!Vc7M8pfgVGwQxRyz&h4sR*~*;Y*aGad@9!=j0OYW#_waP}A>m+2P z+vS)IS0;>#dGg?AIc3Qp=4zUEgEY!J^Zipu0>jq(?a&u9>MQ5nuzbzo<@xMcnB`oxIzzOe1L+~5F&sFMAd>P@NPOF_-p0ju-@hK zOH!?d=djx+`=dr-+AL*~$ys`&#-hHUFEN+ELk|0*Y>>?`^=p&AIX5k>D&0T!n*ool z%`bU6=-J-l84QJA^h(HX$-Hgo0)wg5&pPmMAs-` z^6pHnHe0KGpI(5LZOjf0;VnBfG&?*zJH&EBTZiyahv?JUnzp}cIPnd9MDplvDl|Oi z;M%J#_-9^eJ>xrvixV5Jo7k|TJ&`CT64$KQfOiwc4*u>z2s%6YyCgoln?AX2!~df1 z6%*%exOQUVTD&8$fyDgRF4#3OvFm~#Y9DI#e*pcMK}(n*TY$rYT!Sb1FObAZSkvsz z`tx7c{A}oFYpDORkks*CH2Jp)4!khacxjv)NGQRR7_jjpQ&UIA)f42dBmC{5lQVy? z*CT!U;Y&^q0T5mrM+^7SGGH{3kAo?V`@{^4Zim#qxHI9`(@lkG?UpP>x364Xee132 zc0b*o-L`P^Lx<-7#W{D|$nkC4j*r|n$DZSb5x;W>>N*7KNn+Qcz{t}jRDg81bn&Aq z&>9E09F8}~-c}E?8vu9#!Llx1Za;SH*-898d+gX>uwg)d6Wj$N^oPB{YYrdI`)|E< z5}i#8uI39*B`&caAk-1kqvpdyRs=g6Xb6ml|L!mqLoxb?pA~>Du0ADo77Fk`S&I<; z18nVs*Ze(h%lFS)pko?^ZLxx$)5a}9%Y=bp4s8$FfxP`_K8k<>|d0zj9pKy3jR@tsy_^FWO&zA7- zmmZS*>IZ(HYfxWVFh2eo5_SOmFd|gpMzUmNtYqGtGX_H&ENJj3?qqrGgq>PS!om56 zGucCjbD8R+4+GX`JK%@5%`rVv`NEI%o3u-R>JVc)UhU0BquJg{D)r@Fg~fUmnUoKt z1JP*EfgcNV?`1HyvD2wAfwZ$xa;JKNZC`ATg9jyb=q%J+r2YqMS+k6uTR`CdIwwuj z!Y6ugF;)CEgKc^WkgE>R4AO zpP9@Q!h73-sj6dhs(Rgz6RZoix?6LxSS}TpeKFy}h^mWRBiaguP`lS^YZ1MB;n&&| zZ0oP44A(WMuT7-ACHc1eZMWsRyRW*ci?^E=TU>!$KGAeBIB}F7$0l^z0ZaraBIqBi zC*a1s*nk=bY+aa@6t))6FC;KnP%$i=2x)!Vr+C7x1D-x#e|t*jOr^Ud{|di*U1FoD zxI$+>-+8{Zr4}5KJAGNdKG|RF3H8KdPW67LuPrLe16HTA&F}; zmR`^B^5R=d$rL_`@|O`X|27*RTJyCO5xOd+{-;jY*#p(Bww7shHS*Ck#juu<{gYVw z#l;@E4xt{R1MRtj8wGFI2w6;sqrN-@!S_;jt@;IFdRh69$9sN;zcbo_qi~`}&MXQg zQ5GHsHphz+391c3_ZbOzD8UUXi`+If;gieS99OB@>L0T^*Q~ka3QoH(BFrVbm&^W%8jH~vIs3S&`HXQd$1 zrz!!Xxs*_bft*-MXNI#vdL$#H#>WTn_`UH920A76q^Gmf!wheCuZzZkaS{lGx}$^P zo1$rc^c5D zS-%jS%G`G-yG@-1;1_!U#H#m7(nvH>qQZlzXbFisQ>md;>M^R(c%JK&A^)rE2eRPKy&UIuJ7|P+h>o1xu6yF}sk%yFvhn6CQZQuwzeH)i>1F#V4L7 zPpp9WI2W?avc=)^C;e{G2+#<8G#z{ zVBZQhwthulrZhHIf*UbX&e=@z+JMOu-jOq!%tog7mOH$|F{kKp`r`(@$>MFlAa1l< zKW7n4widn5Ve^P>9=lTlT!h8m&Urk|mxyQG*5c9O&V$;ZD$vky1-?$x?rREvEiPRV zrF3pCnacyS3XdUj0X{(PQoKeDg!WFs+797fNdU8lp zx+(slS`{c?3Td_!U#(U>#JQ#2TQixhPwa-0%Tb-X*DVeq)x(;2JI^EKOHeAQrEgBU z?1#kGY#aVv_Cc|=ExQ?q`a0C8&l==B*ziB75wCfpQk<7Y4X6Q7nFv|R&Rv(e-E%|4 z`%U6-EQd^_a|biOv>w^ERuS~`>a1CFa-+GejnCVQFb_V1RnE^NZEPFx<`2Ei+6-B9xR-(~LS{-HE&W}g> zUHupLm-`^gK;8&?A8M~{RVwT08|y1dLCar6dXhzYqMGLTmr`VaG8CgnS>}!R%P3P1 z1pKc)Bz))BAuyg8Za?1qyNhIQFBEv2%|Slej`i394HNt>8SLa<3 zpAs4DC`u=p<{p&20{jX2dM#@Cz^g;ApXHep4JaMO5e2l}u&|IAO!RhRHSp+8 z$Y-Xw2SFgqcKCh(CJ=t$fD^fA@y9*-chV7h0JVZ0R?XgcWA?_M!qNW}dGV76k7} z_vR4>jUsQnQ9bqHjW_Z-)zCk;hr22d)N~X_$9*ILxE;;z~I%#E?p=S?Z1TLvl92@6pc5QC~%Zj&A ztLp2oTST-C>SR@@LiEQ@)o#*Cy;LSuNW;a&M!;>8ztrQCjf*p*VM ziBe)~vXr=9?{`Zui$opiU|=`^km#k3m#-CHFh~9FF?~4@E@!r<dK{Rsd8!?o(GHpNfzPA>UO1-;8;)r>C18&tyenSQ_QfcGg|H2oo(Ch_it~@{!~BZ z?&!mhnA7LJfvtjyvkIq?CeAZ-U`%}zvm}JsSl=3u3D|>}bZpdcJeFb$EF7|XZ{fZ==*ln`h%blFv3Bz%_r?VA4iwlY-+Z&AbG4avwXnmB_doLb zbt|s>aS^$N%%8N_zWA6{z+=b1a9`zvnNjlXl~C)$5=6?axs+hBaErzuhH_Z{A(obu68hk4T#n{`tFv z9ex<6H6C26ixV;f;gJ#K6daPl2@+T;W~hz;R*Vq}mx*vhHk9QywqiCLO<2N0V8#_e zD9*o8Or|!EG2_^l^xtI_G2lqZZb?cw0%A0W*!5`fKt7dm_!3N?kR55LIm*fH<(WI9 z(YvP0+tue}hhCo?N+OZ84_U)lDv=17gK{z{2g!CrvQ2}|PH-e^&qgU!y+jN-&4V-+ z;a+!nLb-<>f&>U?QO~T)X|$`;8ikppMlj3&Q)x(F$rtw*^JQaA8k#+$Zl~3S(;VRR ztM>>Jv7MIg1bqFkg!+M zbRqt9ZZ)ay69l$t{?s&kTvchTEd18SBXi(wr|W0VNGrUI3X3;k-#}pEshcj`f6-U( z`Dy)Lr{+(wP3$rC;a&H!vM)}`BF~F)&xtzgyZ(XtZ)4iG zDv+n?fB8H9tzH2TW^iZl!gYoU#bQt|sPQ8JgK=SGVf=Q=NIzfKu-%_i7N49rCLTKWdxFc@BMD;!i`i{-a5X3#ey3q5YWMC)09B03bUvAsCFTRT#F zq{i2&D8~Pzut!PYoXJ1u3|eS$AX*UW3PQXEq@;`=Q^e65M*r^X?5nP+PfU8G*6@l8 z=C6OCa18gMxpfWd@*9vHIhWH)YYK=5(SVQP5(f-XUR*qx&Emn{OJcM7-uJd{6@KG# z_0;8;v()8-$T*Q4WFO!?(FUHlK3^B@!B`~#p+~GDdWRG%#GDOqbxVJY`iX=>q-KZ3 z3$9GqxJQM_tH;OH*K0_Hjz8o=XD=Q+$luZVzh3a08`%1t7yRrNctfz4*2Mj{oLqAY z-pv0ConxhJ&|rsrqvf_C9U#^u2m&S~dE~fhCMcBh@Rc!!ejTb#l{ROxV`fW2Nn&|Q zKb$P;D--3C`p!9s+%~WwVKI+o`!4YZSkG8~aB`)-I8{0a$((012{XX}wu57Wj2$J3IVM71;*@(+2cYpTrJUV-ep!1!dHnkX*X5M8S`7F2hqHP`Yhjc(xM zM{7RJHY8^n+E%{yogIVQhBltrc-g34X*8c(msNBMZ$CvB&DL8mMyJuRtI-1+6IG~w z;i59$gOc>Z!IeAC>+U{p$IA2Sjp*92*octDa zT8RNhXpf}ruZ1kI$tj~MrRZGPBe5ZJN5R|@@WK?dwWV!U^Vn7n+>nN6Qs$EU+BF$ps;=WLSVliC?`}jv@$q8!?-N$ohIPHM7_4 zLv-Y8h}=fV>t@dV-3!EY`c_1}6sWD=N_9Roc--Ctp5LxsB1g+hct2X5AuDSA!C8+! zjnAMV?*$*I!x{>m_-z}`Uoo8ur&sh=v1V+zEipAUrE^alp4xin)w@d3JU|$ywv8bo z_z}L{JWNs?>ihA>bw1I(;BAV%=kAI_X)m2~sD%2E@b+t915&J@#)R{30V zY;4S94avZWrQXW)jushG z1%c)xleO%4GVJ#UQ{&kh-cFV$%iFHsR+`T5uGPZ%u^}a=Sj>{&;;xD2ti>^=vu!xC z;nD+_URjI<0)Cpp zO0MHk#?RKpe{$uOm2KN9{CKv0J+y6G`RXg^D_2|%Mz5*qx3KPA$mduD3m!Ow0XRc? zv6O*fff|&cNh*RcU9IfczoSwW#tx0UMYoa#fTA>UXiT`UdQBCN3l2}}0=~FC5Do_% zN_&TH@~}2e>M}d|pK*&VWv3#$fWd z2_}P_OG%p=De{asK_SRJ$PoDvl#WS(pu0$Ch_nLW%K7kBW8d5Xx3U8q)M%eKxFhH} zPNtsY(CZ)PV_lOgi3YM6G}O-sGFoa(?&x*Tm@R~OMz$QOca%Q9jXWqE4z zWg7a^s?OUSLeyE?{T0NQ<+d->epx3|%WvQQ;PQIQhzMV-_v!shsy)qyt4WO6{8{>% z!Gu%XacnzP{2V1emG=e<0}rCwnDR@;xDHa9pL?rd=)yOoZf7~8#*MC^?Mxf=Y`9oN zhB-?Aw0y8@1AWI1n3UMf`5&Kcw5tb#UQQ4n^~>ACPWG#XaloKJ1IFTMJ|v9+&xWbi zOgzi5Q{Vmjfq}n2ZNM$cf3(&)U|S%sP1Jl~Y3*T?)24Hy(prTP9YT}+^Z`iiu-FoK zCn0YI4Mj`{$>ov)?=Dh@_BdYHUT+cg-JrKIB7>eTmsfUnd4s1>e0pC6>z+kOWmxa4 zP`y833`a|8B%f}OWBWki(^_BQoG(W-Sc11Nq3!9yK%KH65Nv}ODzq9c8^APnmbRg` z6O;6c20Xpc1uGyz<-q`A;GiqPtYbWDE!m)$xqJv-fx9hVEVnnvL~^lw9(mA^Rt%ZL zCMV&5^K^UrD@!Nsjyl2H3;BGZP?)?1XmL`zH`tD0uF*-kbac=l5C@cp=QkRy6%7V{ zM)CIZm=NkzxJf{4)jV|bh>!F1(>z4JR&uBWcESu>r~b)_PC4?W$c-l=a%bP#;XWM7 zl-U^yT6U-{5?}+09D&YtZ<(o-6?I0Atjz}chKKv2Z8#sC`QH&)$qP}hGQijOZtUs5 zkFm~o+|~dY#k~^ZQHUJGiXxXL{2M?8SV|M3syvVdJ$s|OhDSwrv5Md$ao39vY;rl^ zrr|P*%th|k`-gW$M@6GcaEW_F*QN(v1Xee|Sc-0O*U->GxJVK2@-Ha&O`M^9T5U|{ zWZPL#eQi6ghMsy-7??M*8zJw{H_Zr_2zxZmOH4;G6o~eKVi^*w&d8&IY2Lu%Dg<0} z2p^nt;Y>g{lgqCsH&lo%zinJA%!KMP zHJ}C&oxl93i2F2m=-jig=O6Y6rfM#A^H$J|u3{>-VU+aq4 z3Y+q_NaDGq-=BOg5p&hfFMQq|@PHmL^ZZ4t$D`<(D577{JC=W*svPM2$=nc}v`9-BRsmdYd7AARhxt?W_Bh)g-b+~bcUm(tMo+N4V!d;GD{ zIcg`2hbGO|PWNv@#BP9|gpG{+FX3sMhdLZ#bY25LH((OMu~sse_(kAV79=glAnY|ziM!#9ULJlvm2(eg z)hhy)vLzuXWmi#BgXy%p=z3K@T=8d$#yiU=#wU}L!o|iwzhc~%aF#sTiFDCCQhKaa zZ_oC~#aH74!}h{c9eJ4rPLwxx!{LeAT5BJ|dq=D*!ds!dfK(MPFo-E0laM=_^3UF$ zwNBSwQ-tiU$?v7gcPFR)rs0vvBfYOG^WT4FVOQ#Go4^h~x$3wUJ~(%-lX3NF7zb><{{;vZ?P)CX$scNaOix_qtUVu3fA5PxsuT zwz<56S@W)w8x!5DNZ~;1=vIuu9emAb2EPDx3%_#E`U~~(u`yBhUIZ9!`qqQnQ9p@=kb+8$P?=Z+p_cU*BrnW9y`176|Y`G=SOhHxJ68!}e4 zGN&$Hn45c?J$%L8cLNZWV}&C6X4`f|pz-k?L_0hVTQZ@pEQpgT98~5I2737*jH%_yKM-I&>(LnayMz&p&@~Xb7Zo znekH4`bjQL6_A*+0H+Q@t&W>IdFEz_Dqa%|(nKmbWKkF_%wx!96=7HBpY(4Z^6ku< zcb4Y1mUmckJAH`oc{m#tP@btA=wUy z2Yt)zm+Jj{m2?uZ0LtD(n&FU1r4_{MW)gdsTQF7Kr{gT$omP9}pH|Z9A1P^uOn2Xk z_jacdp}I^b|0`^(2)HJy08oi7+2o;Jq=1bPG4=3RTN?k)ZL8|zsRT&eMg*pooGz!1 z?5p4I#aDWI@a^6!7f(SO&38>cCT=Un{b5!C!IW(4kp}022qWHp2>qh{iq_ixMgZHA zlln(G$kgPTPTn0J+Qt2Qqw-!kx|j5Sh}~C%qC=qcD%(Ye3m*52FZ`-iy>|vxz5d;I zk!)v%;EC=9@M9F55Weid&(1iq^h+;QDtG$>K|VHF9+-z;hTaU?6Yd5;A|A~Dc)cGsk6?T&*l9GJe8lu=@EYV%hkd1=D}TXq z(nf>LU(h5xmr?gjK0Tfl#B{Zq&f`*U6tVK*bQ%E8;EwZ2eKu>G1JLz>q52|x$nne@>7+tF8D;5gSbO`?`w zax)AgCyXfu<#gNx*%m5Wt;={k6}=%X0&;I?G}7lL?V83g6DvrF)KGenYL2BwqNCww zgnj;~nVrfTqy90MRXrsFZ;z#{E~HKX)FwZu_acpgNFS*00gclk&d>)lK&cl2zL^-F ztR>1hVb7H|TiPO5lwG@GRqub+juG-oA$ywbMdb8pvq2yk;R|37eQx? zxjfml1+_I2pdri07>o{U#_JEKE$-f-HEH%qXrPcZQ4r2ASZrpOcoEf8 z{k$9s$sxCVpC1|v?)y)FfqLC2>j!|Zd6g#wXFds|$3YfImum0~_3 z)Gl4qH6{6r_;Umi_vs+V{GFdC)g;B zC(+_Ah7bw0scCc5R@j1e(s(BUC{7OjXcO4_FgB@|sn*cqAxpj15Tql9(uLZl8{ab# z6mBQUrT8%h2DkCR;O12d;ACL&2Z>&zL5X`!d4mL~;(`%Nd%vj=5d={T`YqXu6pWZQ+fIEa=l;shh{I1)j-{fZ% zy}4F4suOrA>DA#(X4+L|9R`C^lXF|W&gN`9IUQbeS&cEH*=L0NemET_M7WZ@&4F~N zrZ#xtv+TOQM}z*>UXK!RS^+olq(!f6bRq#HEOQUHOWoCWyWGaQD;*DRIsPeXQ(6bl zY|~v$2hgerb)z&k1inQL7Uvr60?AKkFi0+huuGx~HMJK;AgHfdzs%;r6Q8O<#I(32BFS;GW zlMZFvfmW7llyo)dK4&X4z26}_{D?AlNZFCBEc%2o?8<`u0Rq752BOrkSQ$M76=Yn#WEL!q?%nAxo00)&p1u&NAwG+DuYi!`kqxMl=RA zMC3xYU@}5n19t_rH=;;jlOQPN0wQ*}RS!K3)=y-2oH?$kKd5ugG9An?y)LbX zjQakyS-n2KrY%1!Ih*@1QzGaehFRe=VO9i#9qwLFJm9kSc3A$zVo;`9Tg280xA_m+ zJ>9E2?6R-B+MzyZHtSk?%py<&dc!8G(-gMo><%-trYv@Sv$-c^w7LvoD@;H2d8754 zCLejhLu_dJV$)YKZ_YN((bUjDU>U-i)JKygrl7&&Sf61)1t=}%nq(^A1uc%5M82VD z@ie$gMEAh|>5QHRYeHF};j)Cj?&ItHFBvP#mp69BIlF-!2_ynOEAWlYqWS{z!luH& zW-te>4j0nqifN08prCZnY;_rfRz0%h;+omPcAYT*TrSvfk%<~nMD8W4A3u({J1o+p0%YSQ1mvfi@26ktR5p z#4HxgDNI4|u9hI5mMOFG->j{AM~~U-FsD`maKmj~>Cjm{9>LjTmL1J>&D7dbaq3#0 zZtsh`v*pzKv{1dIYL^{Buy(OZY;~W3_0{BN$!>1Vsvnz8%+}p(1G;*5r^)It23vHZ z-7HuauCW%UfiCj>3Zl30r;wN_yIToj(84^KnRb50)+}mAW@1HYQH7JAz&2QpubM{mx`!L-KbKza_ZRI#4lt+T13Y4$1Je>kDUMNxKN1uxrRh(R1f5E3Dl4$QB0|1L#%i~VCSsdvHpcP;=6;bE} zC>yd-)4GEu#AdMyklffVXwOi>NU{kn1NbI9ncERKFR1gDlY*OBj4nH{uDflDt>tA~ zOnd}yUT(45llEvuRl6BmKO5S5*=3IHrgi5v{3_$s!vHWF&nsq?JvmVkHWv?H4oRmSqNEh_$j$n2+DY__CL zc}-{X>P-fl!>$MLdspoDoa{fo{x@H5Q9n*LeN1)SvL!St?6W&f76wktqg63#@3Jw` zatinP12HDzUW&C_{JdzF^>(LCk9_3Kg3Woq^4&-O=F!oQo4Q%k+q0dY_{3$Mvsj-R zxkt^gy1<@kp#2-6j||x|`;it7`BHI04t`*+^8M_Xf2>#}*uXoAic(}RJXuuUejX{n z$9=_-QfYKkv?LrUMp;eC-#))bmP!z^NWVrn|Bqp=g`v>_zASDH_Y=A!xMN~Run7S` zj>?3>&$&M#2alM2h%$9MX;qcGl#ykxxu?Ffg{{}$?F#og! zXV>T8>wy%euw+4wK3YD34@MzSBPInYP>~Q?L3UI1iKzUNj6yJAKK`hwO}I>WhVp0> zxK}S&Aq)wK1n?RI`%6A2*t@+Fu50f|fS~vMV-hvM=h7&`HR5IM5ZjDv0xoo<(-`(T zTrJ%IAJJP@hF2syFHRa-+N^GCbLW9b0O}}<*le>%*kx^2udl^sGRON@cI7SR=$1ok zHwsaA#Mj*!?M=Bm;8ZKPbjA)jDw@0PHf)JTn;-;T1HDesWN{kI%%C$nMW@3A5LjJv zOBmQl;y|_V)%~M`tgQtaf+hpzxrly!4l8IER;N6V9))0u4n~+3XEC|&T>UH`cY>+Z z(H=&t*MjzgfME+xH#8-X5P)DwoF@sWXahn}c=uDewE!iuc3PeP=CB29t^gYz_{h}` zM=sxg;U(VY^O3jIiGZs`uP^mX^sF0-ORM@ef2x12Fyiu$z|qu~r&TTxpkv;bgpBTY zsTI0I<8k8NJ;J1kM)OUDl*gIrrrszk^OhoL37P@D7F@#J>Sqs@PEX(2ql30wS zQgiClWC3J1NWmRsYGqGvR}ZF#dwYk|?3=I#9^{}uYmXmS-$A@TUt_g0NzdNMGmlc2 z)`x22HPP0^MQYTToE~`5`xcAK19B)c_N+$6$@kwEj8wirctG_+)u-4E>p$6hUN0UG zZlA1^utd*Ee%OSho8UTT&1CzlNGUR;pO=F`JbIe=A9jNrENYZMD^<&6o`3&+_HXI| z*k^^%f;Dt4NZB{GD^u(3tz{m(rlFT1p3n=v1Hc2w1{H_x3wa|TCvyinFAQG;F)vJG zo__cfVPuirpqYUK0*TarTVD^K3olg`1q*%_GvzZJOjf* z^MD=%ISs(UNz)4VQyG_Ge~Djpm$`_zHkWv;YPvg zeZKZ#{marCSjf}H0G$W^X(yl^0skHxFc5Ingfq@RDJ1g2 znqP>&A7^dOU~81O-DnC?p^>kc+FxA+QU!=!SM#YwJjz^ItOAUcF4f= zNu$je98%vN`tIrt4ka9FmjUt+6GQ`Cv|Ej>(mkI~M!kOEu>TvW*m|Ja4BKC;VC+tqiFYYHy`*VMKtmvHyQkq19FG4Z(v zk4&6sQ`*~=HtndsmswHjU9#R$UP|&w&Yo8CGJK3y&irBV<>8973d51k6oO#6gpMVE z8Hr^i-H@Adv7BpaDN*xpRCnHV?dsLn-n6sI#0By|_ridm;hOa zf;`A=1|d3_;1uma^N)rQ1`TI0u&gphbN1t*0xr6Hs#O;g@rGR7#Q9%MjyTN*OfKVu#3X#RaEV`<7LWnJ2_E~Q-; z7-fv%!~1>Ck$i~*>pq{!(vfs@e17-m_gufvXDRvvU^Ns90@w^hg~-tsM}TVcy8{PU z4V^t8J$(R}n3&5ITX7{$r6S`fX!5f4=l7~Nnm~v?^dibt`AqAf^7&)x-__N1ptEy- zsU*F({L{xY#(;kUY%k%0tW}Q68d=)!N?U%ve*YiT^Aqdzzfcd5e3~G@DZ1!*pTa=n z@v*fyg&v`KsHrl3bcE{$&!ynVi&g8eRkDaAZ4EC5^5W-*xqjv!)JMpEieg zODep|tB=7-z^k&}RJOUsk>Ep_)@Y7yunt*>k&C$76QLVOzv@fHSMIt}@OFKv(A*qv zHdQCr_m`UeK{SB)4H3L#7VWBJ4j^Gf_PY?nFsz4lVE|cYVGF`}1j3YAugVAZVl<8X z1)h?J!G&?%?n?^m{xY^8DCZ8(yf114a*{;rX z*TlN8rq#MK>9y9a%}f8zd#;Fnn(c}XH}J`g>;3*Vo_O`e`xV*UNjgBS;gY53#;^n^ zyuBXwL_c%|7%)FJ1uX$)x7Pk zU;XO7`yiq<(*5BXyrhrFuL}MOOZrGfVWwFqXXSTtS#v_}Xixs2h({1U zR(Y<_I||ugVOyVj+kM9$-Qm9J?dkMqKKGe49U?cqvkfQrDs}i4`l=EA)THe0z{8w} z2_?sH5T(W9VgN3SPTFAzAjYr6!gH}X$?Wl%f#>D%%>9N;kQ@iiyH<+k^ErC5#7I7$ zKjE@MEr$!G-?j7S>wxDkqUdrC$s;XMe;JYWQt+9FQ z0wn8@kBhzI`2KCiqz`38g`{EI{^Jw(+%s|fuMac@^F#Sy(}BAlyX&sUlzY7gzl7Jx z6OM(+IZ(b05b-b_$wiPG*>$TSmWdf|9Ud-!V3W5DyZt`T@SAw^yN6L94zJ36C@Sh= zcM4au6S(E5q0nE{j}8x)KfDOrRb24Voy9~##GU206@JQlO3lts<`dsCj_nw!9Y~*dpNv?OdGf@0! zCKB0fHa<`0KpbY3{457^{W&}jL;PgjB%j`Vv-IuR%)u~i8R0KTXN+}qMiw(zEFD&- zGvIQch-9;u=4iRgvbi!|ZgA=?$T`w2Bg(-n4h0>w4T?)JB5*;u@WqLa0yP4Of<_kz z8bq_efGL7eB_-l~XNJOlBD07*9GUz7nBWDb%gK((U$Z8&;jY-QnC3hhzTTtBuGcq+ zsk)kzHFYCU+-5YxW~Z~s<(6Jbu|INnQ)66C;LSQYfaMedOb!LNYRFetS*4>N$cQrYG-O*&*whiqBBU_%A@J?hFg_yC}CSsw< zu}o&9={mfW{s49Y@c`xM9#~|`S3mN_f!51+&M(wWD|cQFF;)IQ7K3b0_g5%pNBKWC zl`qDv<+-Tb-$=Th5XAZ-az_A;n5pLJEKEEoZT;>nf5YLsH+Ak@BUe)?czV;_hbQ^$ z?%p*!J2}2gEtE=79a8K7_aNau0MeL)p9TmKwC`&^^`&*=yLOGQ`_iY@u*sg!UhcAc zzxp>{ZL~Wt-&d*oS=61{Op<81{@8!m*;xA(a`Bt4XpgbUn>G!5U33t z+k*cEhm1)>R8Hq04v59#F)DND$xk=*+{YcQ^*;1BU-i1<`@i`oo9X|i7y7xLESpMS z2O#oJe?pP8r;1o>k7KR*DH4eMH{_5?yje29)>4FNmX`NZik5ROd}Ke2$H#yZ**5n5 z{@G0%nOBs0oE`N}r!DZ;PAm?WEx`WW`{N(+-XG81zH{P7R}BrU&4uF9PrmFH%wB6l za#iJn()P++fw!$3*@;Zm6%v<*k0GRyF#FGIPE1dqxMq5~{LX&c3ldGjx@b&S^PwJRNTn!>076F;~~FI z-+C*P*mUs0?*tzE0SoO8?iTRvkN;YD6yK%;(+`Tfp*$s8Y~se@2d*NCl)OAyAdKK? z_ziH1BNge0;bKDw4ajq>_>F<+z#KsY5=x~P8l%z1*haz9dDT$I6=E7NO{=enUV-Oo zKsKetE3Ulbiec`BxjqKPcxG@E9-93z{E`w!Sc1-u;G^g%j*i|wO5?aNr%1MoqxDn; z+7RZYb6U{|10YXy!pj8JgVI`uZJn&KT!SkVObULF@+Q5Qy(%4F-L8%`)fPi*$G>pI z_orX$+{x|pcLakS{`1Nk^JK5eh6UI!*0giM*6}slA6~WLlJ6f_y|atzq^`6{hEU_@>ip zVAqd9i*JrMm}~vb`_tY==XIU6`cAgGWmU_jjq>Hc?fO@2ALZRZtj^GZsyhG(6rEbHhABHJd7VMZm4@ z7&wT@fSvUDh5MVi{;B@{T$f13Em0^JP@Ws`jRbwuU~T%!>l}7U9YfDz45$IXK+n!Y zW3%o1zrS|v2W_m`y@F4)doI7e_?K`)c@#SgxALS~ey- z{<6(RKW4(8+(+ORlqN0eBk5hGEz3ITH%e1zE^+hyL^>$wGv_-A^rbS@S*+YSr5UAL zSPvjw3}l(D3!8+`j&?irXOfw*t;}#5$~z_;oJ|jJh~0rwtvxp zo|+J-j^(jrJ!KiZitt*>^7p)GI=>vx*@9-hHxhJ+9(h0q9x2yZ?FdGBy;-pFVu|WL z)qkK;b2R*;|N7`p5r5r+RZc#U@KK@(2<|Hjlq2@Nv4cAIYD9~9vZD3K^n3TSsH$a0 zQ*f=QZth;!ylKv$Iw0@!Z-FQMCGGQ=x1@pgPr#oYzUllAegKk&TUSkgbc~&qFS$1L}Oh9UoU%XlBHC+K8GjnQS*pi&%N61aK(YWl}PZpx%X8MqqwE*hD8bjGBo}p zTcukj&>JV@mM_STluN=*dS6o5)h|M|CjSM}o?8GpQDzzydm&O6batLY&Z$HN6i_;{ zztqW$P}k8J9N0^z*hb96aF}POaU5Sufc^9pS#H9hFJ#+Nc&keJV9Y3!MS6*)33>(W zI?$PeidQ1d2vw5yYZ+%72-lTLM5Jjb+)h=hfO>pZ29Q~(hSbXXNqH#Ofzs_LxYyWI z%C^IDCQNog9Vk~K)eMmsofQbjm=77UzeBGDlt#pJ#pcG3vFHr7uWTbx?2%+itD?Ll z^e;-5Xsp_H}}8c;X33dg60tkXlJtz`uh9j0r5E0hmnoK_4&qQqWn6wibG-0HK1tunhE+K~{~e}?%72yLv5O!A3hB=X zh#89GxmQY1z#i-@%^e58P)Um8ixi`ebH^im`7%C2FqN{t6$d_i7j(#Y;MheE{TVBGZ%?=NAVOr(qX_3kHHdZ9f*q=o7NNY`LxO4gS260fZ7_L?9%pb8?<>h z$HwBw1ziN^C-Z`eZj$n`ApV^pwvy1@zVc|p??-e5`DLNn9YtV_04`@obG6l7EnLyw8ZGwFe88?)j*TJDf(rUt5p@N50N6E_ zRwj#stTmvJ3PnXFQYs_DIZ@zQ(y|=~)C6asG{JwdOm|U>F7XJ{$Z!RdoD9t9b#0Mp zN?}@lFcZNgj*cD}_3@)|mk}=YoNGf73u*YGHl}_V|;^-L}dg6b#zV(>Dh%^Il z2rstZr@k*lJ3A}S-=ogbyRpvBSZ9%r=uvs?DSj1|%uN+*xdOwE*+I534fdG|Scpa+C>BiVPF*fl@ktCMEY}blHtnz z**R#TW@X=urT1o+Y@%DkUvRGKa@fIdgWiF#Z6WxOf=?uO2qorso{86l$zhC?F$kCf zDFI$0K61oXK~3*)Lcq!32xnO~XBTUuEoxsA%dJlV;Hp-3Qk1?INUt`hStpY3`8iu` z=gMk>Hodl8(=60`TP#MqQEfDA_)@A`FCz2?k(89PE0k2FdpmBkxRII0($F3;uQW>k zZ)2j~*0ItNZB}tY3nGp(+K8{Y-cf5u0E#M?Wej16RkECWDc0)e@Dk7@5Y!t5Sno7+Myf;gQ&Pw}pN)5@S+2@-5&UXfp3me(4 z=j)e2?v7cP52gnCha!BFXH71B(cyb!c2BvQsAHMOBmSfjdp6Kk6^{lmm;wTRfO7>U z2DlAnDH3su`TFjB*%yN|7~A#o{$8+t+j@JUfqdB;gLwF23|ZwKn9GY|%*!RcF=;D8 zl!)(p2V?WIMLbYtrPIw9TylWH4Sfn;Dx9XDWOVR87Nv5)Tt4?4Q$P3IvpvUpWd>6& zvr<&=+{;{Y?qxPOg$LGs#Xpqr5V14L_IA0qF)J1r4Wi9uIx{~BC@JPHN`VF%S!!NHPWv;s^ zdb~bEx*+%f&_PiWk?e`Bf--NxP6%5Ab-Utd0!R7Jn;dzU|4o;lvabJu(Q2tZ^dF(Q zABK8N+S*1-qZ8h9g0qp^Yhr$9qu~4$;(74QOVa@^9qKU#d^YJL!IjIognO|nD(g;* z&%}*-WLIkQ3kI-G25ZFg|W#|*cYHRvD-Q7wYm-w^hpe}3#1?wm;?D_6S0G3i_s*qpsM{C1_QIm#|skY>Wt ze|6uM_Dp>7^OvsP*6DP$wYg3?3$eez|F^-Qqu2`+9)x5N${<0$14Jv*7Rx+%K(D1XA4Z zHF`jOO~C0+mKvZ&Aw6gUo&w~P4~h?NGG+hxihd6&V4wh*^;U<7xD|7(EB?tI(!Y7jmp;@w6QqqfnbIKnPO_6w4%xu=XL?pyD1M7%Q zDof|L<(2gC(wVW>>)qQaiu;Y!4y#~Pn|Za`6)~xeR%)w4cMoB|>BdNr|D?HC- zz>e7sK2enItH^jo@T^E$Lxx90HTlUy0^Sk`h|@a7vWDF63|HLRz!)l&i9Oj-d~Uv3BivX>FTq_VwS}QBzZU`xaA^-w2$^ zAn!7nn1*wDHAVw(XtMlOX}pBzlduruDYy9vv^fOIcnR7Jmmu=kM39T@+Acfa$lmR; z>pz9yWwA$G=k)H*^}!a9V5tt&C75K8=$Gwo2m`oe4%L+c@8!nE-mH$z>o3?a`u;-D*ua# zkrHk}0r!Z@0n8+u(H8f>1;NG(K9|en&;s@~;X<9QUf;_uhY^1!C@paXPI$}zB46P# z13Mosee;ULr?i@CeT^Eap3N-|tQ$>@sz$9h)zrltCi92*QCov32>jaSs55Id27L{O zU(GQm_`5|qMvC2}*@)eUkfH;~nrFjKuOnVW$sXqbPa;RhW|319eqr;a_Z zS=7D}=e4#V&|rR<@JtkWUJbLYIyu;-EoimYfuQt(NATeJnw4jd6(?8ylXqj$9lHal z%Hlug^DB#*8qpP5XY7bNjX`Jqh`FJ`@9`AeR$6+HuRf?+fw_1;G_h?m@_Q(5Nt`t;4RtG&&3y(6r$vU*VyZL?+{uC{pe)l9Fhw&=GA`f6`LqZiz@h6cVC5vpRf z%UNrxuQTY3PTruluuWXGwJz9dKGfPh?r!*LgCP*8t^GzcQ14bTEAkOG3N`BzAyq`J zOSc-DYsGA1wtjQ9%UZ3r)WVd<4L87@tbuQ^)`jZqmTIeAYq8^_wV{rDT1mbqAGJS) zmenWgyDA)<4pJUqXfdTRsR5ybo~3O`%)+b~pb%p$S+M@udUhrW!~x6zPiD-eEt&v$ zUbu6-l%Mg$^?h2~)Gg+&h|93q+m-N{i(6g0xIu)eAZX$k!WKA>7>qg|4W6{_iK-p0 zGge-ZUKA5*Pr+=`b{7~JYk42}=vCD519+%F2v+>!6?zXyZW=eDByuPk=o_{-9u zw_^ZthGO0o+{)>?x`5MXuX7vqVM=JgboyGA!D8_EY8~};?t14*SC8PWt20>~zQB3- zIQmZQX>GY_^!CHeUL))^2rxC8YAm%jzpJS}*ul45-t23#*<9@&m%(ARnJsO;W*<0F zSx%3m&W|9=)2gcLt8T|Ug?E4rDk3;uQaUwqzg&V-l%nrTfr<$K2Y*gr7(u3>Ke^ef zVY5QBNEf-#ZbX68SHR?zjT*QbvE3Llf?eP)g?JgO7ODl4*yeY8-0r3}u{vM~7-FGN z3~vFW*w*C64^8n9RKmhPwj~m6(l1Rlyw%C7t7~g&s{OheRkfCKJ{a}bCoHVaXsA3kEw58Fa6%D zhU=t4gDT~PN!L&*5xj#8AtbA{L5MCa78Sy_3-i2E`ujEY1wyW#zG0OLⅇmU|cgC z-J)0OaXW`A=(2*%fcW%9m9f2$I(j^BkZEFt$03_nRXvt2Sl2L=p0dQIQJgN|_ex?d z#3NwCiQc*2u-Ce6juXjl{4-)!)JQvi4`MNbxRS><`w5& zhQZ_9bJDKDYdLip{)yYM@?7!~!@5=8FxM{a3A)*n=h%&_{(gnEZZzN;bqDW99cT~u zJjQz?xO64raGs|VvjB`wlBEVLwx481j*~JDL2v+Phl>x4Mv!|k!+tRQOKzjzCHAO#{*r_(q5aSA6^PzuD8O1%}oOR9GO6n3HBGJN`cy~|2@EaNO^l468K z!VK!f;CKXSA!F=JZ?PEZEJg~22(Y?=yd^#25zMCeV8ZpLM|gQe`mk6eJw2|1X;SX5 z>(QQ@Fk&8z8M3NV44hr=r$sgmhQ?_Y70vop(!a33Y;5p5rL|7K-^tu6=`Hq`(pt_} zD1-|u#e7~|SvX}hALorPlj>A@+98$uTcAmrSE6IvF1vIts3W1Wmt0g7f%b0qc#uXfrD$rIXBOBghFOEvDsJD- z)xf({`Zgeozm@>-P$J=8@7k*9L4jCmkj@*dmKtU@Sful>)0mTtzYcZ$BKn9jMh29* z4Yw{kNYG-xWPoK-I3K924fO>eB(fQY@QKBywiJzK1^>)!EN+oLfRH%jJujW~vKNq3 z`Q&--iP%+jD2SFO7D>Z?D^TI0>4)dqAVq}`_e`a5_je1uO*Od3!W z$@9ztd}UcBgPb++2PnUKp?V!Tf7%Php$81 zVz5TTBC|06${h^seqxp6T^PzsFe5gkd{tyo0JkU~LX{7kLyCDK5f3|qqixb^`<}x* zX*5on9r6e1H4mj+_Z(GXm!&g2edQtCG)S!tkw^pkQA1ez^BXP9e4{a7EWfwZdpx0r zhJGv02OAn-45l}E4wrSxwOBiz3+t`|VWkvhX=ga?WQcsLxG0=GHZ^r@>ewp_4hqP% zd8n^%Y6`EjFTYG<4|-C*cQx(}kLwU=Ie>`TfmC}Hiy!q6#rz`U*E!sA>exaVeei%# zKleV}5if2y=AAo^To@R2smP5yC(GEkVQyUsKOQs%{)6R-O|}&>c`ekQsq-lwBO`gA^VOjyF1+H%dH`FL3Va=2}8L5 zC@}b9g(YRc<|vn;&<>>xoh-$`z6?hcX9xIU4-DOfcaeOwpDnu0=*+VFK=HHaKG6AGaF?f-+~T>>8Bju{ zF61Bg09Jf8qPt<|%`*I{oG@{d;|>hbs5%!aWbm_at8}dl--!VGR&5fv*9Is^Ufx(hrg>m5^Q@d)&+R zC;M*~G7qrV@0Cwy68W+I(gP{q?S1fvmU;0Q?l+6w$ACElMK%j4U4|V&lO<2nfCfPk z_+$6P4tIKHJe@xSKKGO4ltSUX2iY_?DV^-Y?8GJ_PR=&ufcu( zpj^krHDpQ+*@@&M-M+_tJs);AP4u@j-tmP)$+qGXPx;%LZw9jQjaxUHiW@hit#!_wIe(jB$HW9>NR~ZOJK8!z z!BkskYwMr1HM2+?g7MxHJIsx%Hj4SIv$oAUfrq!bv9Z}pbpsvz8S3^9=0+X%K(eV; zXnnmitrfy{WK03;#wCj!T>dps7g@qO3;B^0Vg2Kt>l*9Ab84paNa<*7s3-`RdHhQ>{&po4(*uUF%)Mn0xWYJ6XR#%u4r@@H-c+M2Rj9!b8vL1(|0yE5tV)h zA|gb#=JGp+k~QP%G1Ir93FfWF{ZTi?T%wMtyDsWfk(@es*f=*>C3ur9DpV3u6G_gz>O71qm}N?{*fye?a$$Jr{SD0amsROch<=M0+{2DHlY(U-U` z)moY7HevBW)djslwjQz|DMoapmqwJMz4n^^`f!c2*|grgvo@8w)D(BPpvH@*s(k}p zX0=YYu9nqa#@*W27BX`+`YukR)kQI#tK>0N+FVC1zOaot=qv&#LIu?XaY9fcbvQ`p zjT(^BcZsU^PAvfR%rk1WX@Rd85DA0r#;(d(tH*H5Y*{%|wB6dGP>14$Cg zT0utqdc2m@R(iIx6A{KsDkz~Qa|uk*j|VC0P=erjqs*A;|`;#u4ad^&csI=Toz!; zy5UbD*>Cna@Af;NM;}l}C~Z^f(E)uFbZGz6+ElE7pbvrnre^O_1m)|m|6UcmIqS)J zvZx|3h33lgg5ujMW2i%u4hEv~GGWumA|ascLW4~9*-u@XKbzmQ0ww*kLnQdt%nZpsv&7=ESwL?!+3*VQ%DU1>Eb&JdVgpu+?5kt<;oH6E= zUiHO%F}cVR+!RwW>5ZwWZ{KnYJAs=oD$ExnCmTE#_ADJmJVWzk4{MO6Aq|-cUcKDN z%=x`+|Gv2o+5T5wES#9W>Z&K3Sg%d`>o+d_+))0~#~1Fg1-zF{<}oZXj%yYc4X1-F zP%uDd$jC^LVmKum9pQ9Bq?wfDsCst)K^xx|ZSm9xRVqH&mRa?gt%&sGomNw|cHN~t z8@fC5LVMV1N&6!!^Tm*Ft&jaq`sb#o)5i3cW^YX$tizRt)&h^f-?UV-dFKWfs`K#)OWN% ztN{X?VhT=IKCrWJ8HGnWWLu<7pMOph#0!k>bmD0Y8Q!2Zh$7aa1^dYAsvh9%UaMqW zg}*O7$x1?y+K@qU#FIMRPG&W@I8*pDnnvEj9pF9XXIO-@LS|kolO?A{PL3&4QLuYG zc1Zkl(izUe-op9yp1NvnZAhqxA7g7{oz*G?YLWZdQ-^$%Moz77pr3<*^3Rrf`nkH! zV=`!24fo+CTel+Df~BdwBUoc^@q{|+JpQR8`EZNJZ+C=WpK{pibliS>eQjNxkLT3J zdSksEF}vi0kp z7JE%F)6RED|Ib6;+P<1yQV&BR+ta*HYXlQab|z&H($4E<_XY<}2+-kfg`~7_1o- zs(Hbvyu_N$kFP)MmKbw+gkvaj!#KJNp4eGfb^HdY)P`y2qAg8#8`<7d3y&urW{b~R2Fug1N9pZhDa zH4J^Qcd!;JVDv`%#pxBJqXmI81Ed;1aqwRtg4=3Ud$%z%tSh zSag={tB=L%@%pN;aU=8l`}+RbSMrDsv-G#Izken$+*WwyG8T~5Tk$Ua1N(CtCn{Hw>lHjnQMO0u63zhe z95Bo)3<+`_qZFM5HlhtH3nr5&YnRqyeO-sjnrFUco z@wC@F6Z1MmL(~v-_+lKia2%|zW}6oX#`vGn6UD+Fqzug$d9yF(ayVQupLx-GcFI!u z!g5|kqe(hw;!hE2MQQ<3TUFf2<@gCXR{+Zs49ANs55I9>+2>hadNB_xQl3->+)LM zm|)Q@gpjf&S|~)fY~ilEUfRjtTNwqa>B^N+7K^ULcaYY_<4%5vylfGwn$Oor&}rFa zB#ef_sZ3DCl^?!6l?0;4a=C*_=0Eb`_et+>UFL?1^xM$6-F7`C#MO1)sILY_nm6fYD+0?|i-tN|piVhHq;3JSvZQc0P3RL%#) zO{&iYSqWp?Gnv^+-B7{YKeD|@>-o&$s#UTQBK@R!A+76AW*5^K74|B!z*aF#OJd6A zZO;Vj2J_H`0jsbfpI;!?04KzEn0-l5!hwDFnNb-x1H^OSi`|8{-zFQ?Gjv!wW`xg2 zs4-BdEZ~h$n(oD9oQ%vD?-pRz-h<6S-Zcihc64^`xD%1IQ@2y-Wu-2t&=NAcQby(L zBz(Tn!rQF1TrX7a?PpLq+Ozgyo(@2xt)M|H@|h++w;XnXIw|%Rd3Z)f$MG1IHjk38 z|LC*N%5S6WzVY#^uD+T%vf_9sbM@7kFmr@6|7RR!&_27MtFF3`Qjx`Z33ZZz7?&!c zPeTNi>#M{lDf0}nn%{n5+E!J0f?Z@D9g`-pxY@TiZKC;n-s$r@m>Kg~P6`a?_Juv1 z;%&&{M6foPzqG9(_Ew(5U}LIT7#^*@TiDG`Kljr=b@fa5V2y>i4(Xm@1i^laEaV2m zPlu(kjUXLYxXrN;U~yU~t2&kOaklIwHh7RI?Ba?W`N!Dehx5b3-1IVY{He=vJ`W=S z$}0O)5q|?!;l+AhMP*>)hR2d_d5m%}cX~v8_+bEQ+z+AmOj9h@1OS29&!^a?Z-0I) z{1AIMJSMOI9hgU3AlWWt%92Z?8AL__^2(xd4uMF?TGqKD~W_6Mx*q!)&)#%-ez)X^GI4Qy|33J z5t@nSg9-lmT}b!heaL9^+Ik({y`%BsXhLh{qgu{v(;}^fP39$)y;q51Ux87eIBMud z(qX$C&PHy?@*lY&hn(rK1}~=!%qu&P>gY#Oo}{_{frA5`sp))gte6w>DLx+exXdQW z1_+#ex8AzXV05_pkUz-5Sz|6ST6CG%%1^r^F8!v)%bZQ$gg{c)60UVJV|DG<8%G*r zjaN4Qy}90QG{G^^sx$d&Y|Zu9Ky{c43O}dlL}?WTDB6Y+7ZU42nV5AL8}KiIN{9hi zmJC)Fxg}wa0U;dHTKU1ImV^wQE6uW3{(3D1rXxt5;6a&T!Am-ffOaV^uaO%tPi`!) z-~>D!s?t;-gmuab2LC#_cc76|R4em}4TzJtfP5Zw8W54dJJ04K@!@E^vlPn|#n?N^ zo}P&wWKIeO6G4FMdy8K9&xrt7eEr$t$cYt%vXXY{Bza3XbO`^adA41(kDL z`35Mq9zL<_mI0HxxUF-r=;?MP5AGi~skxy;Gwfjx@IND-xkr`%IRtFqh|4vroW-~= z=yU@T6$kdBKY3AEQ|3Hznf9f=OG9i;W z+*SX+T4U0b5F>{$*JtkxJ=jDb9J+x z%{H!I*N((%A^-atohi1>>^9?Ry({!rOs_Jx)HPkUDUYAqqdNl=bZ>VZk91?mhjqEx zqmLMywg|Vq7eb?U0ZEcx# z-|RLDhV0>c+5-{Q`jE3bw6ZO5P0zL0UgBsBr|--9uMK6t*y7gjwK|#nMtFEltjFqnoQ#VvP2=+Tfnj@;8Mio#54re=(afJmf zh_|S6qJzj$SoRFYbSXOn19KFgW!0}%SDzBGZZlZD^e@~<=qi(4xFVid-((NznU2?e zDa3YKs=M_ri(vqjabOjaW^6Q?uIzdCY6&cGd*++G?Y&rrs$;(_z0G zdcu1e@!&0{+CW|1m4Pc8Y(7_wp=*31tOt;J{GO1cs&{l7FdYU2q+o-Ws~sM|KnS`$ z<}|xCmd0yBPVdh4h|Zy}tGDs)rf^Gx&uFk1>!fL=3T%=`0a!1@O9Ew(`y=>wfON|6 zVN3L9Bx`Yoz6Wlf*O@)=-h1qsjnWV2^<~o6i!!~t68E|7lXwCWU`g8tB1nYrf()pl zY&98Uv#0TpF~Y}OLHHWYBAw?6a0z%|e33&#p{v#N)*8Y|m*pVDE?9u(xkT%9VVNt~ zlhRP2PDj|hpP`+R-DPWRl>XrGVRnmz*AsZK|BxQf^YBF;zQtWHow77ESXi#!z2eDR zfb6*fTOjtBMfIpHTUQjk^o5#0Ui+llV4vw&s7)gZ|IFeVeQ9`@gk_drTB8-xFPL}5 z;%Z%fG@$(8_7QmQZq#nf8BPNhcW&!fyQ#`U3u|Y$WA>=$*BWMLq zoZ#{j#)Vw7=7&T&hS)O<%XC35SCJzqZ!!7vDBKqk^V;Fd)5HSKrO7eiX$EZpaA>#h zC`r3YrPsG--c`IQ6(9u3#m;f=Qf5aMkMuhBD8vgTO~vgbUa;GhdAkAg?JjxWf@Fa; zOUeik_(WyXa>}vXs|k~@Lhd<73F&=2R+0+oSHc@t1cD7V+uCA_k z`x;vNT66brSiNf1V?6uOjaIi6Pa1dPF)QUN-V&c&vW)Wc-;_>D8p;s$2{ninb}!Un zL3dfh;d97Z^AC+f`#ZL~~l|QoEb2j?d z{bW3?ytqwL9R5Xf$L|vS{YblY>cO$Z2+RjnY-Hbbj4#G3j->>ROB4d6+KDMcxPB ze#{*Vc-W*XAYIKSWnIrlF9E|$4Sy#uxPo3~#{>fla0zVy;L$RdPG-FX$h;gbf>0P` z({z$V1-4$9V_^|O7%r!MR%Yh1(A9-#yHEm4NGVTy1=IUtXJfvg1L+k_HiMzZX64LA ztHCBle4^f9jrn?fF&pA1eWLVaEE0+HW(V&vtr3R;5GShML$Pj;$s!T@1&N6APs+~d4&enoooz6O6!qtWZH;?Y`vC@! zlX5FasrM=TwBpH*j%&WL!oa#h(v>d1?(sML{>~(8{L<=_(+>*!gx?7Of=@a9x8!d_ zm>}_V{|GC#7fzA6l427JG3jnW1XYMgt@~MfV~L#6)A?K!b@>c&X7#x;4&R7PuGu3m1fMc_pvlXij=AkZPbTwPl1s7g zpia#uV=L-Jn#DV>RBCtI3&Pi}$J75HH)MO@#q72e6yVw_1Ng~)$N)v~$^+n-wp87O zeM3N$DS19AOBURt4q|O3U>r-p4t#U@xFGa`dDfOW%6Tba-cNfWyt_gW=e-HpD+!^X z=hQi2qOWhFPhIfFBZ;2Lo>(MRDy76YJ|-e@Z-L|RYhThOipgM5IuXnWLM8|o)*wC= zkXo!4@eUk-i;|+q@?OCfa|piPt-ZY|qfzh~x{O`XR8LPTiVw!&9mB@b!ikbW2pUbP z-rjB9%n`)hlfmt{5dcr;Zh^~lCMdp1ckfNz8%*JJu)KB@-4oH_%6Kxs!cPQ& zRJEijmSs!qx-^!MF*^c&$Qj`*r_E%fJ2CxUfqqsFD4;D6z}4)W=iou$z3hw4?jR?9q`;!8pjoQyPtiH5nPgxkn;3A#4Oodi6D z`KHu}RU}U&P>{2IA%&qwK&k-2gZE+FV_GT0YiV8e9qfpf}-Yklvvj-yX}4ls%FnKsIq!&dx#tk0i438noL9K@4ob)D|j~kejH)$HKC|u0Pi`w(&wHQvy&sYH7 z(otx-8=-LqJ_G{~OCFx~4$yul{NtRk8JZw7z)!BobRdw*B371h(gD#zk@B%=?e?0S znvESkla}4b?q1ov5)piSQ-l9Ujd5?Qx4}AUZNReu;Rf7ojjXPA)r~*C@d_qQdZViF ziiD1m=xL+HyPuhvdFF0h_jx6M4dx^91=HMB+z9GPSQ=oLNz*}fAkrh#9|oUo%9()B zFbvCu)wC0WH5^!F_bRa57LR4L*1{&6c)uoEh-!qVQNwtnQb&`sT4QT)n;NXsV`Jwj z58SBPG|hVD3MObHPS_5doS8X!0KpU1qh=RxQyX1I8;qSwU6ojzCLr~$qM4GV=@3Z3 zlM6l^2n+`!zZjnn`jWEDu1RBUDLPQhanOAtrBHy*>juALvkI?7pzm}!yhxM^8<$O; zw*q#+e5-yl42Ot>XOTf*C;1!$1H1$I@vsYkgnro8((Kz)(q9R$j@qyNghF!~Tr1pu zm&@-ynDu~$g8Vo5oSQbK)8I^(w<85v9NEd1*IkaIEVoTlQJ-iQRT;9jyem+1l$U&h zJ$+&Q7n&v=QJTW(mD-;(d8j>^%)o%d=i$V~jc6*j?0U2W?fHUSe@_V7`fNkigU!Mk zQh0&8!Bek?HH=X0+u>ny39@5jCs>rpVu@wkS;Wc>E9m8Z88tmDZwjy?ARd~+z5_|8 zT~42i!OJ2#Jgltma^hh;dX8EA=JEM&yMDX&^6mO z2jxS9eBuMA*JPnU{z$n6YamxuA*>kjlVB{e zb{(j^&H}H1*N%UpAI8ZX~BQI1C20&@X5aJ*zjGIDAwaa8k?8 zv9~cF)3Dy{eMzU$RBHlEz)@{fDIYYt`)IC`>~f_nqg$X4y%n{v2arLHrfb@-#ENQQ zyu(~Y)oga4c7uNpYrzhuF*(CF3>_udRP-R>7SKCz!GHmP9snxRHLM)D3 z7jR>P?F2q0qKI6@x57)%B^o&&U@$nNDd8}oD;>yluH^vXQA8SMEi!i+4PLqk+ZwnE&O zx2d#3sIjO@YMbRQX1L2z|DViUQ^V9MHJ;3fa6pTXv)NQlRotTcg4g)CJBPI3&&W@X z7_W~nMmoKFIxl4Mz4?r=;81 z))rMb6=^71iWG92^P`ApTG{)V-qHK7WTt?Neb3q~M4HzPmYVf~Rk84#2y_JSl+LKu zWE=dczU*irQi|p`=We@7ghYg1sL%n@uQ)I&Dl95 zT;Jo1(~3$@eYltUi}Y`b{3Uxfz!F-=$SW3J^XZNzt^)w{9V!G}u~~1yd!k@I2rpuM z!e62A)SbEWT%J6NcS}FoeLpG4Fgjp<w-j1*78Ch$V*(0(jPa+$$$#EvC~NF7WR4xJEZ zq&mmWMCZuu7rZk0l@k3@))oYRCoI><4fLcprp`ypfgTbQHS`2nW4Tqo*2VgO*)i8V3 z=tH_%22+l{=Em{nsI^*S)TLg|)dDT)Fm)tV66*_Da%Lwn)83w2)?6il^ zGp@LE3irdZq&t9@R2+|~JSfNs1_otjNy?yqgLzO}5gct!TZsA>|BXwaghxLUWyJQO zB~}#W!7HcB1-~UdXU+Q@F)N3(SDYg=&KcDScW{ybf$2x=pA$>E8qyA!wO`!bx?$fbG)9*k>oJKkzC z2rzOQ3^pWg@@mx%m_|2uY1N!wogXwKg*wOS-!s~@CKq1eQV|FqYE5R9&x?>5gE}Z4 z($sWae)W9~b`O$B);E0ZhT-*kcGd`rZZ=Aq28+wI@{6gMnG!>pqiwghgQf3;65ePr zTnDJ6Sbsw^)9dw(uE5nDnx_K(*a}UxPLpYFHY@k51V4GUUoxMOH0e>eWPrvbZTYq zw~t;{?QINPw<|kTXLFmqwT_V0@~D-}Rn}N+RZGjN*td4?K6#VM;w>LL>YO7^lo$b=Q0_ERw#9$T$*9f3b0;sUBC%pf@7yb%ooArer!F|-o85p;m%`s z3P#>_u}bi!{_fJ?V9BPoURXTQ%=wsd^7mLot(5>!CEgowJ<8$*{2j>?SaORa%$4Zx z=VAq*qs028Gx@|=Jhvp=oPxlQDlYo3i=xj3{2kI&Eh_t>z8p&F8qjFMd=FD3*rLF8 zrC8}3eJs{@wr6>HzxYMp43fZs+oLgGR2Bq|%AT~im8y#OC&&d+882I2S}-pBK+Git zQ%;C>>V45=rAn`P6S>|D=M^%d8o(&>zO<-p@*KNp=^7~EvJh7Yx@LK~()aq~`}W0u zus1O9=?F_I7QTk4v4T*GlnUJ+^o6V|Y>9miFt%v+4I}G`ueCW9G5lh z<>UMI9e;e^zU5^>l)u;*QZz1laCtGk{o5ud2bUGlE4??cZQItNWo`M``};9IOYjwx zX*eal-#C=`5w|SSvgD=faTQX^L zvirjgb8mSfU7X{wwY7h6s!Hbn8d0Bb$yB?F2o?JYS?L3$-wmz=aPzVy#ML z;s4cbJoUyye(&ms9@@K?`&P&;>FO;SwZ#);|M}2(%|R*r+HbNT41_u^0n{GbtVE+(Bq;%NO8)RTK~Bhk_BSchJla_IrcN zmLdC;xmJ35y4LKz;cCltD0u-b4}eFzXm3E~U#J63HzZcG1%lf3tWR{+~-Dq;>z2?+E9BCP^nz0-`?ZM(;U}>` zF(yMSa>|nG@-7G_2NJnqN5Pu$rMkOQ!MrtpB;o4cJdj*AHV-8R6NR{o@0sisz4^m& znDhoOq}v}u>s06mz{xBx{-v3jsbvL85BBv|;xOm;yNlt}gmu~QY6J%BR7>yu^7uGE zxIGftG2~r}RWq5&P4?&~wrIPV9&j~F_Z;uV`V-`;T!u4ok-b2ApQsRmLSSiNcrI_Dt3T7#l^M*XN{LcxSp$R8Q>^NvDmI80y({!`8`j@e^e{z05WWla z8RQp|A%GL`Ldv=$J5^-vH7@eTt(&z+q$6x&sX&!%56;- z#kzH^sq|q3?*9yA66!^Y6bEh;OedBsF$h@Ex-b)x`~=fa@X2j2o#~l8^U@$Y9&VEU ztE-CvpvZmqSO4W-zIr#=xGb{I8^xX>E)qRZUqiMG6#`Z3ONX92lsq_gaN^v=IaN-2 zj+H*#%u4hwJ;%l8PM60M=r`OCVUHz@!zu>Fr5L7-7D$gI!_uD)2cVgf^b2VN@TOT2 z?j5julOKR=2PL=x3NWm^vlpyZnDm3i9>J#O)M~Rem@7tk;D@F%LOeGxvIqW()?k-l zjPb$P$n7Hl6LJK_Oq4|(0+Q*mwx*P~=x;abR4%?T;)}Rr=4xG|U8mmom5~YE<>ErUO7LP?$mI@B<;#d6@1L$z*p&$6=u(c}Yjd2f>bxOOhQYmV8@}lRe4g+Q2Fp6+5kLQ2Cxz z?xY-_pqt=+@=-cI{}CsiP`+@Frui$gG43ABRl~fVF$t7pCA07dqNlf2eM-hdg&s%o zb<&XwBW5ePJ;6LLTV6=Zg$%^hW+>`qPZVfv+QXy@AO;Mk&Gdln%bh+&ede6Pm1>{ z-}WG%B`oSg%G*)JPG3M?DV)wLZ)`HwWpKGNJ%%0Dl%q3}GxlU$E<@J{osE`&nVcm1 zzsp#P;&kcGBg(zbxgwOC^yTt5x|bL^BEMBm9;XXZV);#>PZfP`s%oTa4D$&LVG{+^ z>f}g!WS{^PtlYh_54%%DUqcf}_|#+_fiE=pBtWzfnGEAvP&KT%EJy~K_MKU14V*+h zbYUWNsH!0PQeDY{Bk1yZ`iE@}s|y_*=Y723Dj?yOj~olShDy5*?kWvIHB{&<`Eog% zsRVRIBbU$MOtB>3jIq>Nh?lK!~dKl!@r9?{b7F-eNx@zD7b@lY<&7(sDdcn}$OJ_zrIAa}A&J5u}eMJ62ac+W} z!49#o{y;xN6nPBYU8a71W>r1}Dj%RTRc70~{~e&3&`n5E#K~`3_6?dJ(!Ghh?hctO zmIjNZR(ZS0WUgxjp0M(Eqse0C;g8T>dgkQXXcn9g41TR$ZEbHR4;+k3_u?k3pRVA| zdrV%_{Bv44S5V$aD^!ZYRyZ{?lZ%&5LSIU}Mb%2|3-@7<&q9}~(3CV)d(lA#19tks zo;R_2sDTxy4$>xLm!M}yQkM#oMGwnSUNfXp6A5JB=4^L#w3FJI8-Z0Z4)u%-n-B#A zfzimG1yGM#ZG=Y~JS%MoyA+0e!l2-b!sa!a!G03=`C?`@GE54bnDOut(FG{*(@m|d zO^aWTR2wva#@1F>OaJz3QlJ0Y&>%m)Qmaz~*r3kW)@0In)UM2WH}5nyEsCpwc)Ipb&`yzuB2M) zi#ZaULB@o@R}+5Vs0+LXF5z$_)Mjm0=x+hSjhesXMKI9!L6*!X2N zzA`8u`@h-7d8ei9JSnXZ&V@LL z${A;cf-dxoR&J>)q5Yrrj0E=^@=|$+4j${1W_mMEk$(=}l#_>*OO|!wYU-;+ooMe= zI?+*d%AJVs+!p2Jjqv%v(_2eN%NcqzoBs`(V5oL~tbBvF4gDzF`V`#-(T2S2J$4yZ zP-R=4-)I$I&kV#{S+C21V#a}NK)^&o7#51MB}xUFIqx3|E))VFL?7rU*chc@goBRq z_LOu0HW#bU%j=_qTSkk( zb><8EjO39l%d);alI8JuEXk50D?-t?Wm!=i;kb@tjBy-eOq!;Kx@j;W4Z%Q4LkJ;I zma<$3EM-|Xmxh$DyGzrSvMIOQ?RN8a*}mK~+ftUdr7Z1sxon$q`$4;8xc}#j4}K8E&=?c()aBOyKiVDU%17djJ#3?%ezKa3 z@|d=#Eo66ecC?$j$7eQ|nz~k$L|-GdyFJi}l(=WwLZLfG+YTPle|C3;MBkMIm6dDP zvXf5Pc2df8y@zT)y?LwM|p&FTh};Xqk~O&9D)=yLR#6E8TP`jP$Gc;!5;ojHBQ0F<&-2MxVVL#T#Va*n;Gs3I83Q93$hM_QTUC? z-puaNj(+v&%->sBP_dWn!e?$43`T8zldp&*ZZCAOZ5D&}=^Jj)_kbSk0rx{jNh8-b z+Jndta>j&RnlJCr{&7HBEba&x!WUo^2$mKv5FuJ5aLlc5SmP8ee_wsCPp9derQ;i80Y_f5Q*(K+!Bn=Db-& zU1WNdjny}*YR-#Z{Q^H-h-^^D&G?lB1PUeUciJZ6o2|B_4Zb*%4Kc>UZpCJOSV1Zm z_g%xGbSWy@s`03#Gt_ko4WwHoouTf+&pP3o9tQ8uqbkvv=t1s8L4l{}R`f9NJMIP` z&WVWjGCK*haG!r#K^_F`B$bMqlqHLO)M*jg!flT|=8G`P-8U+--z7=TfUMYDw`!+m z{Bp?cRG93LZUh;8?3geX{vYU0U~OgO9EIE&NJ$6g_V+CXbkDIAU{wH^veTy8?c3r; zK^nG-FR>*8b>DQd69-}KgoX`rzd``B z6c>mWo@kxk*JF_4Bo;a_v-O598s`h2+2u;CfmuG>euX4Gq&ONH9Ex3%n5*6Ur^-W( zZHE0uR6AlKEim0y46HETay<|> z1?WdGq9EFV`OPw8Jc>kO_GsuHuiqGpM*+b37mElN#b`nC*?fv3d+k0Y7O@u-NQ@RG zmk>(?3|peeE)|<43!vueeI7$Aa@@CAoTi5MMHq~pc+h0Dz&XTXG}!{3>n~{#+eHhb zW5Xp&_G7}Mg$Fny3Ou@;QyP@`Cb%i1+fow5R`_8pbK_)3A`@<*Vhas= z4`;K7W%+PEe^^rQjm=J`)00qbLp~oY27}l+XOjNNmpj_7$>ac^a}}J|e}-J7sma;N zl=hWi-(YVr*gM!4TtZVDXrh^FB0BIu1g;4O^7(;BC{XNSX~otEN=3twaM+Z)W_IK4X&bM2KaGDFkg>CO0ba*uq%_`kWRXBt%b6JH#4l_ z`m#$5MmR*CnOMq6CL(?nQji~W8@e^_&EiR6D6lJTxMBMK8!o%->OR&e4twOr2Jr^5 z0lvdSVx!P!5RAB{j0`3C+RTQnjUQWCFs<$G%$RRlZ4|y*+Pc(Xu= z9~I%~I0`3x$nLZ7HA#ZKPZ}-aHaMp!W^u|`o+=2&sFD<{n9~gl?IN5w4vq&# zUw2C#v`L702aXgHNOE9$11X9)`3oX>*Y9X`68CCptDzl5(kIewV4F%|1;ZwdWej}) z4cyrULj`yCDR#?cH{8%ZeZviX$#vQ8KV}0-Um%bU1X$yH_nfe->ykn5kY}~ixyC!# zm2HYQX1hM%K_~W=jRx(d<%Rl|fBgP5I=ZM#m9}j!F{E9JRm^)5l`jU_j20`hn*EAESDeXfJ{q^_E$z7cq4t?Y<@If2*uq= zX@1l#8U22v*Qo`Kl6!2-={4?8_+nn+y9X9C((l9dczkFr)(>!cU9IzjQg_og20bCy z2@%;EAL}=RSkk-x26N@R+@DB=T{jA=S(@vXv2sFH90$E!_0Z%XIU@o*kV^gi5id;Y zq_Y?`10nuD`AK6X4v4kGAA1pj0Qy@j z>GO_9|#KNGe=LJJlzVwJbnN5 zq7R;3=mYTDu<^o`-i0U7TM>o+ocs9k8#%6GP%Jh|;V+UNdp+duvqPxK$@>1voq zZDcLRB25t@Sk|~uf)L-D&zP9&B=%b<=t?yO;Z4dR_+grTLBBgFY7dCBcU;L1kd~}? z@?>!yj+s8urZ~O9lL$7Wx?ocwo!|qQr#fy3ch82hDC)5#T%te2y;K8Hn8v zBjg9F-c(MwDB9p{&^}|cD@niEykTgAT)3dEp3O9z`Ag{Mq7AL)&u(Npu3uAJ)7Lu} zHJjOtQH~d6SZys9e-c4g+Jk1VYW7<2-J=t1qF5}K`sa0>!{wmq>V7W5dmI^e9-g^(Hmjh0G6I0x5bqz5V9b%Qq_wODsYcgy*R z#X65)B5C?B=9?^$p0?|v{I&IZDi?BP)xHWN4;k_TBp1Qq1w}hjbpODv2$RK!EODf} zd#K3Y#4Qg|Br|JnQ`I)@=ZI*2i{3FzFd84{rIWRAvj`>;cl^y%Db>E{Q&nG)ABaey z9X0h_(C`qwpdO-;WQ|AA=LxJ6fR^AvQJnMC{V4mG$3YRA@Jl%5wre|W2t8nT*`)p2 z+}3FRrWkwhS^`Yfo}uHlx3W3yN87r4_pai!>g5`+{t%k=SrPhFGQuoEfPcXTi!knE zZ2OY(_e=*r_A-2L!2~C0UH0nod&VVdGcg$@5z%!(bISkeMz#jevb%`nmmO7r2za|uH(aq z#VZ-DE?}M9KNx{vorc=%29FPe6;VsTNkn}L@f<`z0%-Tc+VlXtY{dySrD)r?62M~=y;ASU;uv;$1gG&ZS?v8UPdH^W@%zd0GK)pPUB z-@TdN|Edp&8?k^FVw?piO$HeYmjo;rh{H9BInrgNDGVu`A;1%`w-T|wq>#uG7?EL7 zll>}k&({(g#bQP&D7h8U;=p$?YG#O#9Cq^ zVN!{mc~F2Fz$io$gK4YX?j$2Ro~qyIv`B-qP&HWfQw%AZsT4G$?$42*;7f?dB1}0R zO~5^es0phP&Vaq#L*li>zLX7L7S73vv(acs{8a)T=1!%J9nv-j^Z6h<98&z1L?Jmn zoh&3OemJo#Et_UM+|;=yfs_o8hhY`urAr?6r8ry33y;Syba($%%zYt~qI;raRPY$y ze1F?b)6+L?!y57kXnmH`3QZ{#gBZMgQ-^ecf8Do`T=B97xJ6`h*iqO+Ah=!t!3JZa zQ;~CMM3!y7%;-Uwt&zRFlxR6pYfJ?BQGzQI)o15Pm>Tl$ky@t^!?e4-6@2Y z)~o>M06i=QA-JL9mSGqw#$(*gup0F-KdDCYBO^OTrAhWRvRag4hn51wX%myu$j*_G zd_u!Q<&vOBG!6b!^n!B;NrCg0OJsXaN!;m1C=1_D<8r^{sRc@eT3OPO2 zVo)?VL7tXy38!l3$jS4OG!2l6#XdK~qYX^Yf`0!`Y3>y z*}}f5kMFxi?-#s*II)lr4UBYRGJ{Io)0#Kxx)D!we}&HmCCL3H656|!eD5pkFea({1?@Jh*z1vd*>0nzV#fv1I zZ=X5J2?F9T!DND<;e8QlEPKdC-%21!0!be5^Hqv2UUN0TG>M{0Z)U>NFisSAVD5qk zukHaB@G(B_v7-ApV8lSXLS)4myl*||9r!t5!H3vGk`FoM<)9_yzAKrQjO6J=^kTTy zpoKRaEg68&caD~~`z3d2&hMSE0T#G0UYPPmZ>Xq#OL@n>xw6mC5p9m^Ej*^b5U4VG zpSPlSb=FwU7(2Qvp6(03Bux~OMU&sJH|#W6-L}sA^=3EgFSNhC`xxToRzM1`acRpv zP~j*Lz?N2>cB#y8Z54er^5ToH4i66w4;xm*)H9EBV93AzVb2R^zO|nJ(KugPeod=> zR{6-@K*8wetpd$59@omjbE_Htvi9No7VDw;BnwmU%XDHKUj*NXS}hcwp@&96rQ`{C zps#_BgpRs~1TRvGmN00n!4_jZ_RtGLN8wIHX`q4Af%Ol^+KlXL4F+4k+0yf&o@VZL1k4R{smufL_?6u>OZ3kzVL-_-{1Fz`TvyG z7uo9%OwE5mJM_~=rJk8` z^+J84m35lwD+D*wS8&a1sAr-~X+&FFg&UFW^ot(VW=l<_TsM1w3G!xr&?Gh)67>d; zsacea##II+KJKco?=m*9X2Ys_0~{4iCXdmWFf=t7gY{eVM5D|5!HxXRo0jwgtRz@8 z{&Rcbl~=%e{ik&SQu)r!{RcY$d-J=`U~N{oACn##p!)?vqSN0PTEGTjyMYuckzh*< z1oS?gnM1Mi>d7@_q%tk9nJle-6MXj*w$-uKp$|ts_`fng_O!kL|c}q8gWaH)P5(<`l;db3ucl*P2*XEuyVzge}Cr zAwg!;0=Qt`fZTsi=%ELLcf*u2p08viH`w*N5K7f1}-u)8#qZNANxkt-7xvhFQ-1}^NfU9hup zV+dGRa)HBMt)pha#NFbaV8=H3vlAKrCU3}#$Aq4N^(kM#hXC|=_d~T<@m(J%I$qOJ^j=tZ`Z!Rh6Or4 zFuJ+Ge|tICC#*ofKFT$!Fz3Kp8YZlp7I!lj+^bk#3WVBh4vaR8S`K8*kVw42;Ai(* zd`6?&Qna|8R*g;x$KX4?GhzQ}n~Jr0@t7HW}>XMs@xJ0BuJCbekdC46Td z5Y1kts2ePOz)C)I^w|7KiqGLIA=Xl+LHkDEBjE)k+2ZNyN1UU4rzCIdxIpBmLh-^G zaDcU)7noT3xF_gnLVRdRz?#O*%+&-9IqDZkRw=|iYcNy+Zo>-jpW$>`L-4`Lsi|$V z^GMo_69*0kwc}Q2(aCH&77(4p<0N*1(S3&ol2iCy=;)Qm8vB6LYIW+o>3z6gy$c#p zTAB5Jp%F-Wy(;P&x`vi$QV#HLsii?6RB5EwLYv_kb@HUsIT1n~F_Ne&`M0MDQ|wH$s;%R`)%2E&DZjFF*-`uHcH-4BI8kI{~Zt>z*fp zSq5bV>4cuZwSUjACC$~6t1)vHf2rV?NP7%Nj3otBi!s2D_j`h&T1EhC@seLIEoJHZ zAM2#lEqkdFrkA@wq)y|%pnM?3f<}1A2Vi|$QVA>O^M!&ePv}(snlL3l{pnf(tnNo> z;~(?ib5DEx`p5Y~J})ak#^jfxA3j~}2VMvHQehw*z+slte>W8KvRuI5;^_MHrw0e=i61ZYKgOeL z$*+HmpD8ja_32J5{D9=nt1*{81gl0n$=)si_hI)6bR~EUe*njJmY_YJ{5#2p-vJQv z-1zwB$dSkxv>b}+PE=y)h@3w@ez#OCxl3+g%h={|d>xD_aWyuO*s~`wBFUqLLt}U2 z+fvC5I(h5?;bP^nb8w9dL^Lq{^dE*Z1~;8U|4O!VT8g1f;@blWy@Z|!1b~)QUz59S zWoB$3QVMwidG26AIS23^S3`$gG8>Cn2wi4FlTFP`I~p$Nav6J%`6b2fv{*x4w?9!D zyCE4eTO$HcT;O$LnV%0K?AIBMDGK0m{a$M@ASobBL4WPEoRZ@Gm9^9(-%x)f;X=E02*YpnZ-G?8JD$L7n`-zKZNM{YhV37Vc$7Pf_$l zFn9-D@G2cZ4~^#U?~!3vpR)8)h5|d?f3$nK1%)^ zQIgc0@xpKAxG$N6)4SQ?&0}BU>$HxmNBqeOj;pswSvB&+fZ^N@rEb+H1Asd)VF0VY zp077LCIUtpYlOyd?xKsba6`<7!;id?9a$UpA=H{(wN`7oi2ZE?Jk?;X$%a*jo&DR$ z)gySEK&%EH?COzxXD9hDYCG26%1-7-zSr2$Dk*NH3e8>MLEzd_eX12&XWW5hm}o9? z3k|pc$>0KRmT2&Vm*(t>ik1h{@%^GtoVVUIynAWlF0Ev~=@wROYSLa64RGvl{OYtm z*8Un}t(ki}QRYsd=um1OB!oiiQ&qnwvc%PxBCJLTb?U@7Nwzc&31f?=qTW#wR)E|YtzaO(3ZAEkg zW;7gk$cR?+Nu4{cZ!xGyZpR6Ht#z3g-kO_aQ) zmA2L$a7OQI z-5;(6duIYIro9ZKjhN9ILt4Wc#6pXy4D(bAHUR}Qhn^UWAp_Q^TxTxzwL~dlgKG96 zn^#Is_yAu1u=d*PG)dsE&ITd7GqorvE7vkXQcDUURcEyjZ)<7>L zl`d%m`*EW~`=g$XPu7t=>fPhQw80Jjo#r^-IDzCJXMHf!#Azgwor2O~=CVlNZW0wC zN4{R2nEVddXS+ZwT@Lz%g2k`Yo9u#`O{=kleQeqT;vsEn~aW!6d6o z2GhI8EZU1!$znuOX`5G&ZKBg}m$EUZJ0?%tN2ki=sWIEM3?NOUZngV?zmwcOfmAU+ zNdkt8c@_7>?o&>;Y!@wVo0Iz$RP9kbHXj`QB6wCNP(o`u$zce?8ZU%Tu%IOrtixx1 zLAp}GddMHq?u_^k4ZH0uW|NNFy`(l528V}qtJ08fH2&Ok@ll^JIc#^k3zF(~!)QeN zmX6y^em4n3ffliM4Pp1fni)<(W;ID32!gyf`GC%0z~)3~0}u?G#cmbIn&6(BB1f1};G*W3H!4vg(YXHTKqmSW~$x~cm|bmoGe+ET%+_Ee#O_LBVfKQWITJhqqc z9C5ZPW$8njFQ2pnV^~8TB=PIqFBXs+UXAxxrpsmcC!kBcuO`an&Heor^e*~XE4%%Y z|b_gTgTei0slK)K{ZKOccJST<{+I2qagJaUhXuSHs8Jxx4z>OWu0 zMov(_&=}WwV)6}^a7VB=lW|Kg7kMEZVea#Q3SHPdk(a5(Un{zwS)IG}3SUAUpCrJ1 z6wW@XeV%Q23>9jKoH=lUDk2%H8~y)T=m@ynB_y zr~O(Ev%k>(s4~_0Sm!0$w}h$anUm3k9S}eL&%oPUozcFkLQ>|Q^p6PUH$*xY; z2hSxs1_6NK4nwHk0JbX2;oc7j9>_wpWcb4NgyBxq3pH&XoO8?Muo+eb`^OQsPMW=`C&fwH> zFX)y)wg4lh$7zD~?gWkrw7W1GOhc6>$j}chWD@|=4Vyg%gC6-KBIyNbk4}?T?KH|p z)JvVtAJp)@YaV-)e|dG?TG+?n!vVG*ygr0O04`&C;n{+Kdh$i6eWq8}S)a+HZ&eEp zctR3}f<_N{gZ=q6R$0ptm7@RcB zp5|J){iRZ*T#6Kn5rjTFcb$1lRtj#XyI3gf7VRgrM+ybJE#@`A2J<&R;Xi+}R3cOg z{FWz=qqU(Hi$wa*cAhH|-ApnCcxhUPAW0BrcP9zaI7yN{t(p3|Nl71Q6=hEr3Ol~x z^~-0z@w(sp4ej2oa#WV0g(#GwR*Jb~yYs9ai36`G6xgS|ojuw$?9A2iYJs!+TXCu9F4(nTQXs7y*Ti`+A>+ycDbI-YD_tVy6Z&`yO?;TsWR*;skrT<@r+}bw{hR;Dd zX!dXHeuUsea42e4d{utIfU=v7TQIcB$hwZhW2uS&A}nDyDWt)Ynb zw?l)8K|F>MLqn`_?azdD7ycguGd_Lcw=QgrI@Ybzzex-YE?KV}w8{XQgv(<(pGq*Q zaInX%!!zd*fLv*H zR~5(C>M1C|_3I0x`1B8!FBZU(NXU4p|~RQ8vT9+lkD z#nXtx%-+QRw5j0q(P_USZ$sQ3k|dgeL+v)(#$&NyOqlT6W8*-T#TV>t`odz<647^} zHL~q0iucXZX5DS#opOt9VbJyS_o=##cX{O_a;?T%Sm2AsBT)T?RTYsTDn0 zPb$uY5-=1fCh!g%qN85Fq|MIFh3Gbi=H`NlMET{hY<_Oe7XySv$UMweH_0nj$W3i|6DqAQb)}ORCJUL&)#>#2GpdiV#A-e#^!2d`_6yRraBd~X5$lLo zLDpl6XTfB{*rXXjjLSSF3d6o$39?t`r;1ZZaeZ&Vd*+|#YiWSG*dHD0o0`G{eY41S zshAC`xF;$FT4Zrcb@>9$S-6kr815#ETWvy&i*7N4wG* z-EQlHh{+pq+jiO9PSM8dN(9(5S&9~H2c^P6NsboS-hrLLA;{8#)3)2{9vRxV??K}A zOF;T~dE%zY$(tsATa3ukL0j^mtq_$tt+(M`egF{*3b&Ub#|MZ-x=~Xn0z;5-!o>$C zS3~mgSEH2fAM(7qWdX3Knw7skE~_E0%wn<>^2=&8T8_oOwpI85lUuaIEi%I^+uR~+ zr_GIam#4MWa*I)2-g z>cRsaOuVo3oGcBn!>DBY!3GXKkOBq~A`TrVrY}J}ErQ!{JXOvk(jo_6M}_@FJL31d zoi>bMv(0%3*p7e=dEv}a1WzM9i_lN59@;HA*4*k2bgb$Kw0PG>@+(&4BQNlTJNo$2 z>7blgL9Q*XwVz-e`D(#?NB2o2AZ$|XxjHf8h+S=AJM>z=v4jw2C+f0nPgaFvwoVK? zfof6tTJ7h^nnlF8TdyMO*eB>Isb^m0Ie@Sxy!&g|Kt2Q;h=*JJNgpu8Wk~M8RaLt5 zF>=&`W)GM*gn|<8Oqs}2F@%UOu++5J0qzWW2=SdsBA+}wpnL=~m7I3^Ma8O^LlR9! zGv11-TR=pT>UL@m7M-F3yN&S>DP;~6oC09`r6WoNiv1zQ7d2~B=BTjS>%MhWm-)rk zV94{Lxog#}uGZfDE~Ulx$A28KHM?*5qh@cb-FO=^pLpy8Tswd47{;Semj^zW3P0Os z^f$bMiH}2OFzjmB)F@>sgz+r<(&+BdzV5^g|LulE?1bBQSu5-zJBy>EMeVNmU3X1R zA`9S)vfC{$E6;oW@?d>=-z5?j8A?S#czz9YnX+w>CJ!N+w7GFAu^+R;Vr8--j?Hj) z%PZNP`Jth_HLc1?SxzWwn)4yR!xFmjd*Val0yak!p_c$QMC5B0txD``#%Ou8KVlrH z<~iR#IVq%vvh3D4;J4Oa(41SF?d;61&3PLdnk~t7>yqG3NiJJldpTc8Y5Y>0vowGK z@gOANAG$shyR`M59?n%hw)5{UIZ7<$XJWp4dcad|$LD2hxSjm8i9=m1sVn0NLotlZ z8DUfMoFcV<=@3>2dQdP6FDdyqs`|$2R8RWvE{V`QfA?AVuXv%^({rE#wV`G*;By@M z4iiQJ1%#841BylH@o4(D!|n)ol~wo(%spADpc7kI*l8n#ze7w%@e20z565!@>ry?l zx#VD|vn3N-kxQ4Omk(YZ?Nvj$_;7y@EuqnKB_Hwi4T!6b`A?-@$G44k*J z6=_TC)`<1TW}g+=j^Wr6M6j@3@~M%R;}HeYgEfXVxEy;8D?iqMaNu?CBDh8P0k<`& z;MHn;Qq5WkeV9(Lp0|##`_vGR-d3z3XdKV)h<%&{8I{*y=atCd;kS!9y!KVFc zi2g8UNPfV56u!)Ns02nPmf0FzunQox0lQ@q%s4kg=U|&UyUSlJ1fyq;MuP=^r0}pm z80ilM{SW6O<~yr27kLZVaEsg-K7KshDYx|7l*V0O888|LzOt*aqshrGj*)*;>{Xq5 zkhDZUWX62yf`0!(tauW1c@TulJSF^Xp#8$KZWHw?9D|6{VRa`l#;o-J2b z`X&V#8B_Wm&J+rnhx>;13|9NyjDA0{pk3o)2(5jKvI#Mx2-{1s>xvAiLVNzxlTIFbXFANH3RSlqlMaXS?8XPuDH4W!ty^$FBxCkE*XV-JCleMjqpjVB}Qs?YR3s*_t@CUG<=2+i|rO zq1!=Z!EB|Fpmf%RT~k;2q_YNYRK^xXY1rs=F2L7X4}&QdIDZ=z@z=0y>+a$ zbqxNRw|m>$y%L?pHm1)jy^l=bg?$*i=zX&3!=Jk|+`D}{YYt8g`s8(!>)KlH zW|97u33l@iB*XD^sE8Pmw14!du~_qkSALWkbJ}cMcKni5>XPwCha>(ZpRK%HTUs92BrtWQ!b_zKJjzn9+s&YlUyQjYhYvQ^tltm%&L_-|nD!#^Ig`$ml?Ff7NntJ3~FMii~n zwf$X!C5-ROItKz)&J)HRhG@e?1KDYLk`S7PWas7k{*`ZPUjg&~hW#A4$>@mH9;&1}InwWd=Q+;>=$<+SAv!eQq)`r1Ul>fgGx zzkdiAd-<)pt>wf~{0TdiP)G^MTAW{eQVtzCFr)p-uU7naw>i(AfgI<9rD(eU03?6f zkLzl*DzNxO!Of?+CHB13^2J48kg)86t#?62CA$O9Th~J7?`E1#)R^;7{f-Xa^#B_w zYl;3NAXhu(?}yujm@lC*=h9B3`rP~bDJd`1Z&1ed`)B+I`l%_@q$T&f88aPte~gPm zi~9o-(P81F1qEbriyLAT^W(qr8e6{9mXlqMt9LZBjkv7S_Rx(`+c zQK?9949&zmf;o|=3MsTnO@V;<19%B~4#oN*0rDt~GO|}8NiXhs|U|78LsNEmkP9kELQn9XZypfclI@GF> zLr9QG4v3UaSeTqYbZEY)+nipp4D8(DhusB#pS|qhZBy*FK&y6tYd}$Yw*;fBSbb~Y z`upzdyZ`>`SXitJPHE@Vg_s6UjyuZKhdY;51VDn*#h~`~Y4+-}dXPEmzWYu>o)3JR zs^H^ou@1BccN#D%fm$N-bKAp)s68joZBO01Q@0(wjQ#LE8$@G!u`Y@SKfA7Kd$9YV zJ~tmo(V+vrbv*zF?{iDUw29 zUr2YP(?NbzLC7{x3KJfY4S`;yf2L4LUDFE}8zD@L8edEG7jh@6ktfJw2kx4c^YcT9 zG%Qx}mc|M@#^Yai%0%KlbO_2P7YJpuL)YizkKA?e;_}sNYUoO_jXU~uQdc6IYN)mC zORC(l0@3o2)!Dm$B5X3`$RB|quyl`B52<}uk$~#S}VWU3sWW zoB#+IlKruKdEdl{05B-zB~@+G)YvbsOv;-{(G{DFs6sG*j~W9Sx<8Gi$7#T$?)@l| zWVwdce|Tg~r^DJLwRf%R-Lrnp8daI~wAowZovAhcRl*)ilczIR>5$r+Y)kP^$Z9n`}u-U(ZLGSKE&u>9@wlK-$vBdyu%E z-K3q$WB|UB%^t*aS>G+cZ`~MqXYJNHaj?muo5(t|^mW_+pSGE3GB zIE>8g2ifj#nkB1MGJo?Cn>lN?+eQu^#Cp1<%vRD|bwRm^NYGp+jC^$v$OwQg47c@6 z&VaI4GP~C_*TD9fjm?d0kHu~>{asZ2OqIHE!!>DJCEwM9DVqX2eRL~LwlBL zS&CakcqJ{|A4Ja>53ZZ+8ywMxGu~KK$#{eOlE^Aa;6D_XPXIi0i32{f0l)=T_E#!r z-i*lm@h3+FcO{~|QZ6$y{{r8EuPLr&8`gsRlEZ7+$+h7yoGH&-A$WCFbu>r(B=Xj3^7=wByquUI16_M{uPMiubp7JGWjgC19`2c z3RbhE>zq<48!)&M zzzdSnZMk7{@XA?xFyXd4?aAO-hRxSzXPxOF@-8@on8atdA^4tc0Cz@JflZ@|&uz;a z-k^Q(J)!_db$;LCzC6x9xYI|2}G8BqKHcNN?SU@%y)A zkL$wZNQWulr@AG!kdGwAc6gBeS7K^3X?x?~J~8M|488O;%c?ACp^DVRL@p=XxT2;0@k=yG}tJ&v0L{cKFv+P_Y;W96yRqW$0ZC40O2` z{toAI^>Db+iGUAm2TLgi4<<9;dsBvmex3}dt#Y8FwO#gg1mxC^VC_|V;A6A7)!E@t zY1+B2=)>B!!Yj0Qv^m5EWj*p8BC3+T%A8pF9JW5z>=4?S-62dN%1vl*cCd6y$G1su zck!N&G(RVWJl(Awd56tpwIR7YS45J{rPii)?1dCFF+d(euHQvBq%8RJQcPw2?`%Bx zG$gM6^n17BSYPbpb8{b$^$GHOcESymYd+Ym1;Q z4HuZ?R9qlFIp=|jGy@zZa4;-3KR<1bmIg~vb4g5=66Q%IDVA_1m>99SgO)fO)V^5M zzNi$ZSnT@iD|4mNT;-xGuDFP;yyBwDRi&#oxr3FB+FQN70IOS+Cl={|L$qEsSOrr6 zof`_90PoJZdXNUc`4tQt3yV#f6D7TBB4&DiUQU>UZre!0U*@zioAy?b4V^hURaDq# zi3C(%x~g*hv5l3kmQ8b<|Up~+A7IV+%au@6EuGQy)1aqGHh(D_*)&gri z>Bf=rh=6q#>+@12@RD~iT~{J7gM0% zjrnBx89MmrmqjVx{(2|17}9qzz_}fv)p(R@=aaL7&~VX5E^W=4N;Qy0Y8ewr;}!m-TDomimZ% zkj}Zw&|fX6?T|mGnhn(ie0Yx6$8~t;_Sn4YryMDY?3;0iqUB%^$6~NQO1&4wca!Jo zJ!zry23o_p-1tSg+}Oprv$~P=6E&J$SWn0@bq>wHs~0`UqFzh2dTx&{()}$?J<<9w zksg#nF*M`-_wE>o&t%5IOYr?x&%?0>s{=qLy1{u4rm@x-Q-_D#eS%cnjXR75j?L#L8HvJh3{qtvFcfTe-5U(m|YVN2QC|0tH7p zwrahj5Wu_PL@ezn)L9@~UI@IRPeZaI?Qjt5Ne1z~mAWe#bP|jj=mAs|5EanMG-7v5 zE$9`A+kRJpH}4>bBEs>+h9#AN5CPQ=c1|D>if}}L3#6%@VB4U$#LplBLySlQ=O6#Q zkS72jfd^2t5JJ=;$UxA$KmZGhA9JNpvq0wLTqX~2B@NF6yHQPAMq}fWPAlKjiN|t+c7TiSttOXS`Y~g z&|<+sG~;aAEh4wN&1gnObh^%Hx8ubUM0_;=q1lQzh?X|`6YvtkMP|WRMD7XzU*jF} zB%xrD(k1zE5yJhTgck9jbONYDG)Gv`U^e!7R~XEVD?CN!FbD#$9eSD?nBgnk2H-?F zkeH}m=u*TF7+~V+7tFp*tifc6MOJ`JS95dE_gxJ$Cew`B{e6qM-e`Ch`7u#~XsACX z*4LXipy`6m)Iby&jH0cn-XIty$;bptQ=>sN8Z7k!Gc;HlK}|<55FYS7Gd5U2g%Mda ziYXLnuCF&38bJ}@DwzCp-?0`VQt7Y{qDclT@0T0lbrv7%mn`i0rt-{Mpua`0tPKKHoz|=!B=!s zChuGpLj(A&WQyXpQjGl^{A3h?|K=xV!R9qfUaxeeGCW*xI+Ykg*t}kO$Tthq_fJEj zGX#7SkQ0BwI0uQ-_Rq) z;@;qZ&m=T^%&kMdk9j;OxhdEcYu_;3<94@aBH#yjyNK8Q6TS`)zmImIWyE#C-1Z-8 z-y|7bcKp6JPX4|&UV3Tq(o6rqc9tn3@!b1I=xMe4=ULu10_%h)-om}3a0^<=6L4+` z=YDDiyru;zd-pbFWTYTTKrW{nIqci+`-UjV{4UD!HhEZv3xhR=*zLl|h>{hP&y`Dv zq=+K^0x=bAlwau17qim#>NW9@-_CzFCl9N^L0LpiX5X-Hju&qWhGNR-a1r6^+2}w} zkIX=DM!8HrX7B!$aH*jM8fusXcqBEgrlg#~KZUdshX;)l3=g+od_ibUA|D4hZy96y z;@h=1Klar2uNmB<2M^DV%~S@m*@4Q;*zDnhquS%&`OeocZr(@v(5;asn6igqnoRT@X2Q?p(N8@FYFhO^7Q1|Ig)t=d&+m zpN9zYoIMh;+mXFVfrVE_)b=}U003I#NuSGRNy|MTsUHkEa0zob9OVvW%^C%n-nqQH z6?0^c`-FoTE&X*y51(o!`o#0jsd|@JP z#N;;_M2Wn6x)4t9f&7{RPKiqxd&Ua~a%1czkTrj2)fr!u?e6Cv?n z#}i*-Swpk4>nah6@Lbw{S4W4dnO(Q%-@p6a<~P&Y|3Y6a%B;hvr}}`-YyolX0uxnghVe1ZU~b#-TWln3lD>p zZ4sEdzugut_4Jt5&R#dW)?6rdGO1l;{Rr}w*v6XCGlb{>-V?rwOI^8uoCx;4 zW+Geg1N@y-z5)9fcR?%9^@GBo&-dW(Aheg~;Nsc1ifvs!Usv00XA!#Cj|R+O(n8dc zZw6_3mY~a~JPY zapce;eVq5gU+F&h&`9VVKQtdu{<0QDz|v=G0SI|q2!n0Q=D-U<9Z9TSD9rQPhA^(p;&&roJ_>b z*3HGjHot#jr*X%`!0tPDS6-)hH#R%4`@&El)*J9|&zCN3Y>Z#9YR%4_1J_k5*FDt3 zlqYD+L;qL?4WGhntH%AfC{7uQ8il;)p*#XF2}%f$$H4mxgoQB=i$YTZp#K+rdILcK!p%KPrWqs<$*{BpnIt1p_Ij_Ar8 z_r(1H?W0|;KARNTnT)SHeDN{u+r=e)qh~?jy8uVAUx++{CrTKyDyfgqH->7*u*rel z0~5P;PGqO%rnA}UY-Gq6@o!EK?51nd;iHx726pbuU6##WHg{P@X^(`$7w*3E zx{CHWy;CSQrW^9Y5x!Mw%wFV}tv zpalbNgZAi!jg8W7kA-8Ak`EHm{8_9LcI=w9Jjiuy71Gj%^~_A1G6*k(YX@m&VNqBh z|J*a|TZ8P`&U-rCRXSbT4?PwOC-oI-kjpi3zIF*)2ZVdo-+F(%`&pvaslDN~_^cI} z{elSL!^5w8CG{`+MB@?9njK7!LO6TxB;C%!zKQMfeB0*1mkyq9)BFKjhpmzTs&hFV zqWXhf4rf=F)8Xh>+WY(4m1TQ?u9G-Nx_>_!iDh<~B7&6NQ z)$@25Sr;9Qlnrawe&j>Qw=gra%+-j~spI46x!K{G&!9J2%*{?pMfuF@g8b6XY4I)! zVLo*FG}8zMP<;leII4a9QOy01V78qvzdO7rp&3PggI77LEbzZmQ$n;4rFA^hTb$~< z^wK^Go8tV2t{YpG=~v~|H53!cY%7;QIt7D{O-rn&DJj~Kz7 z*0U&sT_Q!~To(HLgLxbd(BT(wl(3BvO4XHi@SgTrddnUdlK_#WzV-a`W7;EZ3!A+P zsi=+VpQyc%YqtKfsoATvw>CHZ(%Ss|7=}dJ)Y>emS~4^DyzVP;Zd*vsSk{bc zqyCWA0EW4<9<71HYU&SZkygjHphW|OK%Ia7`9HW}S3Unf4{irrqwhVsouCa|1Qhll zAFDmZ_~`u(okED>{%{Dv_lI)P!C#H^2qrPSicDv{%nh|F`Ch&mAF{;?Luod>nIhcE zL&^AR+a=nU&^&m6@S;N-i6`8B3Y<9c6oSSDU9f zrZk8wlRZUPxNMX;2}>lX~( zee4(jiD7#o^kXQ8UJZDUwFU#eW8T2edW(JYT8A)+yR$@BY6X8oQGVpxhkJq`mVg7$ zs?fqg!9>ou;Vzz_Ii2gIZ-M9+u7@u%C2LMIfWsnWLx??@Hx`5Oxc1}0LH{H`xh5xr zgM-@F{jr$8#QrU+CR!*tUQ0rauFY?}xG%V3O>cZ~@Z0OUF8}%Em(PFV(yqaigTdg6 za^K2e-=EWcBD^krJdvHH4SLZFfRscSI)il=L+5xo&rd&xT+25g?-+SY!HK|xB&`%X z1UUr!G-Qqp4DYyC_>e;eBhofPSBi9&Et!@up^riV41X4gBQO_c0v`M#fGb)OD5?c! zYs8F`ywZZOZUDeTzD-fqot8k@gVJ)S3H)9F97-mEI$MM~9(u_GStj=k3>>!E4qKy} z4?c%Z4v@UYc-_}(o*^W#?) zLba$vIQ9CPFu4R$7b6K#1lOA;mA(c&d9-o zkv;2(j{8s|op46Bw5`iGQ?>7X(TCCZkZG%VM+v(SBZCkYNx_HsPXtKAM-H}4ijoFD zN%~ry!-NJG(^)@DA%~dm?CyxyF9;G;ZP{SNX7NfPvuss^k!=6dVmUcbDUFC}Ia(=i zy>fDEJeUR!g$>zaX94cyLv~JQWJ0vdu!)3xBK$R_0U5bNtKkpKmgE&UfJD`oAO{>o8i*4|$F6h3}H+d-%->~8WgtNNKy`MU4L zdzFthi)?=NqzS^4QWIe(D`JPl9(e$|WcY;AmPt=!%EfkBg!3kf<^8-!`#DrEqjVW{ z_$~SPdd#u-x#~NU$nHj>2nd$joz`iaG#<+rqqCz4(K+}uMQ#5ASciu= z%33Aw_vigURzt`d%j0boZOtD{CWn$qZT~i&{?$8UvDqw#5`r-6ga)9THrucKg-StHaqyo?4yIA;sdLV}i7TznQKWf|(~#zJzy|c$Ef_U~ z;8W+o6nB^?Y{!Mw^v-9VVWokAy9Ni@$y0wJr2pd7DeRAL>h}qGiG>&NI{@_Qzv?0> zk4t*cW#k@s_E}a6P0itNDzuMY*h{Y-7bcJYBD8tOjvd!r9=hckyy`T35@lUnXMz2I ze9JMF5DHH73v()!t4G&DlY<=*Fs@LX=+71=gaGuF_lcrkEF8%n(cXN8Y|6eorC`Go ztju=pG`p+5t*5QtD*EeJeYWSwr=ZLEfJY^A=H{-^epc;+Yf%3Ov93~{JxH~tPPj{8 zKR&lwu=dc|LLHcFhVNuf2qv}NiC504c-}9HzPya&IUr2fyd%9u`#Ka#Y)GnB{aO&p zd%9v47wCPU&nYh?dh#lOPAE`&F4aLW(*>}QK&4fEg;zV_@as@u1UT0v(7ehZ3g)^@UwETIh8tJut?3 zI`xY#V5!r3ZKYG^BMQ#uX_j_IqfUCxvjapJp3Dv}C;Tm;ZJJGO(=T)4hUj$ZISUA7 zh&=z11&(T!pk0T>2P#+u>vRYXxJFjZF{CZxDT&!lTzR_Ln}?-ivn^=51I#OuO(;jp zk2Al;EZLn%DdPmf-klAC!)v}=zTetvxg6S>L zr^5CqPTpi|B=5j!;H*~Z*JwBJmVrZ_1y`{|-kgayB$$rr#=C+q$ zS7~;ItWvYi>*@U|LN7TBly1xdEGJ=8_`kGcAKR9WH(d~E{V(d@2QO{BQoOSB#s8{q z=6h@q>)n&sC&5=@sU?46cbItyoS#xqvpmr9ru_bj7DWV0{{v3vbNxUTROy^hIdcRj zr3dVJ=d%dS*Y8^bpWl0vg+$V=v#oMpY*|JG(z$ z*8Y0s6Z`h=tzUDGLyPXa|K@M?cdrp1IaKcGoapHIOON(9-B0b?w^x+@*pW8g{J_oH zFV-NWTi<_vh&Y^|@qG)P#SIkT3?Z0lQg1uRACe!_SA4nKK%=2~*n^#kdMYIy%1aOiqoC3pxxGfVncs2i8VgmhIuk^%q%Mi$D`&_cvT zuEwx%yjJ2u7S6C^!C~>VI1*BWQJ=zw6gd(^YUOy^A3Av?8%ZRba2#<$vn|U`Jz>Cc z$n8FW10v`XK9!o!DoIvf++wvmflKRkJ1rK)YLmR`a7?u*SXHnTd>w$#;4))+CV^RG zKt>7t=Orw^U>;yYnuHCB{Fdv0$CN^h0cF^t#t^nU^yF+}eC1Q$IdimUD@+tZckk97 z;j80XRJ)1oD{L)HM57aht^D3BEsG?)^OlDAE*_2S=sdUFjl-FzGV9sX=ayec4-cm` zAm{P*dI`;)dOZ%PU*PZE0`9Jw{7Sb?;WXr0UQ@TGMSDNgBTV*e_1!#vGajhs-8!BA zLbWy8p1pe~_wJ>7pkrH7kM0Nbds>7bhnneBuX9R1t5qPnQET~=gp>uQm*#Gb0j6A(i+57fVo$A%4qOq#v)P)-!f_$wyL12c~Up%)KQ8td=)99q_Q zG>6JOW)eMko_mERfh~lbjx7Rm*86G4+4pon8yikPl^Oo-?`X_()g(P=BjXNw<@bU+Pxy-o4{hBZq5xOV1)r$6ZMO_H)7B93ugBnmAFKDD_Ou4K`2Y5!RBx=8AHNc+zf1t%|-L#+c(pb$s}^!<1m~^ zcq4fPzxvEZMB3UC7PH@M&9eB23;YbG3kyomQOeBnMiI^jT#xs{X< z`l@H{i$o%W>}x|qq2W( z1mwxqYhMWd8X4qP1u)XMZd#|4_E^fUL@Q5S7m!*#H8|`{m?sv5VgwFxe2kFE4f7U* zJ`m3E5N+yd#JZ%q0Ce-WUO(I9_dYsoZSwj97d3{wJssVqlHA_z>C`^g-kxV{`}Sf0 zaqoYt{h-t1=`0=@Hu=3xH(%sYOsZ;*wHGGjp7y{+JKKBYonY!0bI3dl#J$$5rsDndfrk@tI_^r{79R>=e5@^uxT@Kc=9UfZPrS#+nI zfAYx!-)nyZ{)%$J(_Xunuig+gfwh7Z1W%1xO8T$QUg?|Kok;AST9$TRyQi;j*GS{s zTq7)_`d(Nolj2d|Bd0tRg4GJnn>PON>nFRd{6g>2BDiie1Q(9~Oa^`geYtI9&8%M%m6fX4!daoyB z+2ZwI2zsx-9v24i(tBU==RYs%Iqi>{>`jjL|I6CD zz_(Rh`NG*pvLws0EXlGY%d#vTJuSWP}&<(no@>=G=xV}pn+x>hSIb{UCQ)F1ErMVwt=P{;Lb3iLm#(;58r?7Bl($x zWWFm)$4Ao9*=w)8_uA{dj2@HIRBig&Qhay$QlYBeWOJZ`xx(V~RI7y2nu>uhVPf&!|+3`x!h>45ih%Jo5@jXD>rr67>Y32rBkua zPTU!DD+#{X4ZfHxnhPpnFXC1T@T&!c6W;R4fid1@|C~n9M?J;azzi!?7jfTC0nGK@2F`XS8%>HTM`oY2L2Z)a> zw$Cf)fTGE+0-&ukM}VY>fLc*xMcBx?bZI#&QPi1rDwTef&Ld-7)_u!3Ala5OC(*1fHiN}pXc?v5)gIP# zhM}Mw5qwaOO+oPHGiZx-&lwh>mN&|7ECO)^mtjksJ3xF~J_GuFHMlbyXf2HkO(;+` za1Jo5)j~f6H(^vjBSXu2IwKdFIM&BEcHmpz9e-_h%!>|c3Yyb>u>?2lCUBD0r z8%h!zL~~NJaG9NLmhKjUlW!b5CJeQ=!x90X!B8&GzT9>oo0YzttyuyQeMv+65*+z` zH{!mOQCthp2&^KwwJAJsAAb`v#?eg!S6yr|8eV?j z?hn85ckHj@yw_ids(jim!VT^N#r+*oD8?@!!vb%9~7Twy+1oLHeNQrf!D{! z?~`xeoojz1bV|rYeyzmqIlnxc2Ap9^loUmAaywwJ%uKoRv6(9DIE59I{RMecrgN+O zRW80$!2QfNd>H?8wSuiko(1!p+aNc`Y-eqDRBl#!ZK`?VX{Y!{qH}U3>T^K=VM>PJ z9H10>{^+MdR6xZ3d4Q20&}_VLkGu23jp95&oP#a6!V(P93+IbGkb7Q0X$CT9^5R8Y zlAY;1M|2A6DNmrOlTRJ&0{8`l7yg}L;?0=>#ZDCPU-$>qL;H6o{L9kzxn{@Iq?no} zQzug^<$}94XK)H{KfQaiyEXeA`lo=u>y^TYa5?Cc9-Ka?Q&kC)@gx!VVTJJk2^^4U zm9v(UVP=|q$6zdF<)v;d4#tz#hD+H%gO%yKx*l*C7%bOPr{4L%&b@Y$%t+Rj=Py+N z%V7=>e}wd`Sq2^n(XkL>E)@yRvR7w+s zQKk(-CqAIAtXGQ{Jy9w3{T+b4y5oESO)ejc6beakUq?g0U z3!zpZEn<0@UQ-rOl3gNq7` z+HeQN5j-H2k#v~v*aoKy(}zZ8_|O`tgs>pHF9j# znkt2TxUSjwp%G8~GyJ39USTiQI!rZwe~rnZHMyz-eq*%}&$Z^7%E}t^ELdyd`Pu}m z&xIApCrM3~(~vmkN}H^t2J{WhGbyUtMLJs-v~>kKWi*%RM{?`*2FNajON;Ab6JhqX}|KN=FV8Gv$@$^TUAwyBokjnDfzEz&C+XTZQ+!K&C;u) z(`)w|sx>I0jqo9(0zwc3oI2>{t81%6Vk{=EhFRPzjObBOcm#!oX3{V6u5<92y961P zSJIp)SnWymG?&>X7N10W(m51-9j6qYQzuhdBCN$*vCVo5xl{JN%LM5Zs)U=E11Tuq zl-@De^Y4yQ4$3k43aHZQLg^4ZP4RyKPFoJ7W%v)-$Mlx>-s`9~NWV4OtR_}#sD96C z+A&HWv09_;VfmWT!lkp`VR*SNNSLIOx8H;pg z;a<4zc%E+=Xc3qr)ycJLEs5^#P2JrsV8A2b!N*;$tjm?d5hkDAv7r`e&j&FfHnd?V zmh0Zo)3c$wldg-n_PgYV%zGDMqYPI(-gF*Z>Sh%skEdlxdXts}7~r{pLeifD+*^H7 zRD`|H>Fh>O_AEeOcFhH^rF*UGx#wJKTe{~0D%0%GVU2tNyI&=^@ddCOkzS!HX_cK0 z$Rx|14p^P^_TZPd-WO3Tof(IUm3Wo8@3bBfz93Eh+qdh!5mGubwJIGxjU8z{!fAkf zU-Dsq%P=DW2gDu%2Y72w91=No*#nDaT=1xsUfj`Ynb)RTDkNP&E~lw1)3#!@lwvgj1#;qny+?a& zXG^Yy>f#+jxx2&=A`nh)huQ?M(0%6&>M6zM(*@1jgJo$1@$mre<3q+`YNI(&$y^s;pS*S^NqSC5eI*(I0I zafEP9v{cRsr-7{0$YWJxKOoVM+?S|On1sg{uihzV4V8Br3WTTK2f9{yXqvZoj&|aC z)ND{jTiVBSEX;uJLo^zEP(r=h={Mii{nhClrY~_{6gCIk0$#FA zPkTQ6pUPR4uY!@to@5V62(YT7od$9^5W#=j$l!LV zj{CUKU%12Mf1JRB{b|;X9v*f)vpTCT+>Wmmc`i`QlBaODX&_WU@#XksYWpIme0NFwcP?_ClIEa`3cg|?)< z4VR(YGv*)Zc}SmuS;>1bqg|gB9xWxaf~DlfVdeovngxOM=*K$EyKHbaBqtE&JPVkC zFO;ZTE}jb!s%~XFI39|6f)d~r8D|Ke3K|!ddL54xdt4fTroyzw@$8z#$dZq4GFI%* zGJJC@wClACT)-lDxO1-)d9?W5ebe<=;I0?s^;j$~I3$Z=JnTuhZ!(t6jcO;lr9bi&gr@qD7mQYDPyjOMyJa6x<&8A+G_g zhUZgK#f6$GE;1mI0U!k_ih~vbY9xL4T|nm+v+3Tka5@`pbTO^U=xA?AFIlpvrQKmH z(YhL=ZLHxuJ6`e1bkF;374ep8za^$vVXjzMWvS3xs}@#N_A3z7Qyoj{+3Ra2+&w_zwcctJM)VMBjoT@sI-rcoLTD>+S3B?+Ymf zf1f|x8}fFXc2L3|0kE0RcvQ-p!Mb7@m8Kx71?(tI$1tWSwVf<1);KYfJl7*9(7fXsE{ zk^CU7a7qd{&5*l|%io~DL=A*{84Yg(hh6Lo$ z&9857Uys_zme@edZZlMQKkhWBo@x~^pZ2kFG6uZgz;4%%mmeKZ0JNMu~Ez}q5s2f;xupVG*7Sj0|KhsX@E zU8uEre%^+hZZtl{-xq`FRH1(_|{X=HDL< ztK0c={wTcKMi1VOoR99@?T`XnjTd=x&u<5*tf-;WFb_U8w;t8x!^8s6em-qGp|*M` zi_4jM6oBZAgm+-;Atx04k%%}4NCyFra%^r^3%P$HNeS`eBxzeohcYEs&IfRvC@Nhl zA*e(V3nZx!kYK|MF+gxCH7=LZsS>;zB;C+vkbFb0rO&nd~7irWMT^R^xFvJT)_H_cWpu7ak#=mu9_O zyorpT6bkD1VTMD^hk>nvB8kno`BH?qe^2 zxqlvUDOP}+;y8Lg!h=0EgUGnp{xc96L$%HLUi@G(HBD%~?gF8irZXDACu=fEl%ZOL z*t%V1#l{p@E%m!|qs3IBzK z3&07<)S`$Y^5lZ|;MsbFKEPXjsuz?&P3~O-o7tTnDaVx0NgwOr%1HvU*J;=306OFu zn{M;H_Xc$ir$}FjPJ{vB3-nAkyHg0akl^m_aBcKD^tzPZywR*nC${JiFSya=FwiF( z%zD00O!cXO{Ql?k2UAeq&AGE3I8o$pLWljx`pQn2S!>>hCt2(yVd$5|VSM5gQOrEk6V z-Pi}WcN%YeO?V-c4hGYqCpuqys^x?J+wV8&x*zQ1d*vs8#yx+9U6VAg$RSe+*)Cq9 zW^wp;C*^LFItC>e;_q~KOQ(j}fzd}t4oe$Ct}a)oyG!`huI}z#%Px~XcZ}s88+lav z<9oFY4Yg$#58gkMzLSQIY9Dz4d5Ijc1|tM+3Zev;EOerUi~LqF&Pkjh2Q#ei^cw9u z-8VW6pADBRwL67t8x}gh)_1GBrNwpYiVs^a6`8l=YxHa+o+N+4s{@ge&B^&jyun^gUYFOlYf?E)SD$>YP32UbdsXeKznNn* zoXh%DRqvKzDyUf2`16*GQ>$)D&Ht>KX-APm&BBlq4;;@AQ<6tVspNA;9_1G~a z;>JU`?4iuT&wu`)^Pm3pbDtZPe%;+Y%Iky?pHr;=O40!L5#jk?$QKnsaoFWSGYck7gre1;2%lSCVLY)>Jt%GM1EKSn9mU5QeduR;~1?N ze8P~ISM7(hMA8EKiKG;y+zv zgBJF3Iv;9r?aoJfBBAu|eE;75+@|b*nM=Fo9 zTB%ucxqh&GP&ZiKwL-J{JDOD*)_*A;?A={>3=Ry+{{{x$kPgGQ8{=1?i&WRr&ovcA ziEFmSu@X+IRDKcLDc5jU2CA6GBAU&jh4qD9QjTw$;eE$V{X>4&AOgxG-QDI_UPFy7 zT*T~B7O~7=zu~ZIkKlrV5K@7oOmmpX^9(r3v0k|E7&`-nRuc^Hq$|KMoqKyeaehJH z*_TT7b?U?2e(5hT@W9A9k1(G^-MegmRv+|tclY!_rovTxuRu*kMFTi@CwQv`MM%I! zB(2z5!LvXau8s$iSSwXl+OBpPP3J>U+AM7eXaj6U%QeU%gBVK$8I!RhJ`0Z~OE@A^5q!0&BP{>fP5{ADm ztz5+cmu7q~eW|hWjbG0AK=##@b+1Zz?Z{OkTCfV|K(%-pmDH7DM^Fc)AlngR#=0S4 zLB!$@CyCl#8}ybZofM5Iy?OK~eS7pM6sRZmLxEa+okP-j z)#19Z^b37Og?_&@WYSeNI_{x2_xS#-HJZwm>I!YSk$qDkM(S9&b!98_R0o?H5?xho zDY4NNaW{4~<@3=MReydOk3eaSt5y|wx~4K2a|YB7mqQa6)*95xa+6VuTqDR^KKaQT z@LTu`c0Zz#9Sc@1_yVRLB(MmKww|OVX+*)ATMJTbKV0gcA)Dh)39 zMAsHDT5WEdP5KJE$~JoK=%Rp1sd2J$q)!ZL%r>E1saZoG)#8kQR4tS%G$ZvYmCD7+ zOO&dBrqU+pkT^0k(rt-^u2(9vqTcJ>J20@<`v-%=q|#-)p$9Br=)D$}OSHEi5&R~* zD44Whm2wsV(ep0;iCJqBXMHg966~Bs9f<7vCRg|%zMZV(3o1d81K`(bOQkGF#dDc# zaz&i1m?ISf7>zi+YgX_tFu(AYGFLN`^g-&uvFWpMTCHnjE6#Vgr zr2l;Lp@*bhg_9&b9^yx;3^B%j)*tW36EL3(ZsZ{NpTgaIUhwXH^E_a^F%BKUIpO@D z;}_C7_*3rpdp`Kx=_1NsBIcJ=g_b;4F1=RSgYX`{;G*Bxzd-#sxQ z({4GQNamknn8zKT&OxE7;VceH0sDv*-be_rhvTR0czppZ6oeI*YrNO6wySHcq1Q4p za>A@dH#)miX4EyKJT(V)@9LH-u@es!%1fJ+mY|*uxST(8Iq&b;fnToM(PLY?7WgM$ zz?t|@VNdP)^ghky3TOD&frXq=BK`t8)<3^w{P~WMu;6U<@Gekr8p)wJg}xZ1(t>IIW-qt4Ws-@5H~Em&NX5z~3i?EaRFH|lVp8rt@^ zO{MMP=i53|26Zy7GnsUEZ2MxzMW!-#h0es%u0~&*^i`$VqhsIy+Wz6|Fb1SAMqCIx zg?-0QzSFdIP;3^@X$D>rQXM?!cuEr|4;Mzt+(05(;t#|vR-vzNY~#kUK8+@;F{@l& zeQImUfYO;}yqBVOi(L$|?G{_m#nvycsjjYBuC7vN)oO=HZRj;tF0W7f~8#coTENF+(m{C@#Gd^evTotPM%aXjA< zV<%_T+?wi_8}pue0wq5QqhO!rjTi5S5xkX<%BIcw?yk+=ZoSH6)|0&1vs0Eg-yNO! zuS%7^+rN3~GJRDlD~pvodwNN%)K{{Wv|0CQ!P2(BOYB7_ZH0L*zI`dq*F&O5#R@1G}+ z$8J2lt>1gsT_OYk;)&+d+6%`w7zeO-tpcp0=RY$rFZSkg6X!oWm<{xlmLBIJV!-$P zJi^lpNri-UXh39%D(;3)a#2i0dLc?P4gO|7*sg4>M?XF~D!pXrj>$n9k9ya2*#`Q| zUF(GVSM6Aph+rB-62%aQKMs~<*T!ONvl?ob?9wt1Ns*;7cmnsHyKSC+gY#Ta36QM@ zwkMoHWdPd@cpj7$Cc6x`JAopT0^!V1ZgAQ~atIb-s6inmrybj8&TBR}1v-P-rugmQ z3E?1E#5vvglipx=jkxRvUAxBAhhw|e&}Y)N>kM{r7$56LNfpfTY8KWC&q3>6&TaX{ za5f&z7GR_ihc-ayuj{BQF)HiJq#qpbINp(CYo&LjcWzwI46b%jsSIgf_)+`u5jL`Z z*RJO`zZfIj5#MKqU+i<(;q^Q}3RenKwq0o1lL737Z49@E5>3t9SXqzgJlA5kN|0Xc z_~8=izc0T5s+GFjZ+^Y{A{Gj%RPM!fCFTFTMNEvW-e3bDne3rG1lWlBbdX}J7h&XD~!86XV~Tw{=~=2r_F zN~BZLsqS5UM*YInWvQi0&0Z@j^;8P3RxeI9Vx_{}>RGy!ZAV77=XdUWe(?S+W~D0K zom!XZjdXTJ&0@$bIy*D|pP9TN3|}XTadin0Jf`8Zf*&A`Jt82o!&+sT4JI^r=K|4@ z-q7~H-*P(?Q*c&3c~&S#3~P7g?_0nA8I^7(w6=dgC#3RTC+qYnhL$pBEI^t^a+HOU zhdX_eb8Ng>K4Nd4@@?nRHKc5{ClGg2!7$myRS@8j-;1Oi&Qzo`auBanL|O~CHPL4O z$mw@pkC(0cE*1@G40g&*&Bi96;aG3Ud0UY6(o3(FQ0LEh+G^Xo5qqRRVvpKhNId_p z{E-avt)LNIShYH6VnCA_aGUh|RFp$J4m}nxjsd?<2q10DFJjt34xy?lEhO4u3x^#D zd0XIYY*n)pcC*7F?F~B}X2*kr`%_#3(RiJPmK$3Pen=qNte{EXoAT}#1~>1w9bpxX z6-Gy`xytS^8bU*DDUDg3Md3GhnO4_pH1<}gE35G~E0habO)~q?(0Ve*WB)6G zo!mn{54A$->mE%*PBMeknhNtVR}iYSXg3a|2g^d`fqe}8TD+u!cbXy zk?3I?{bJOgOD#6)zx}t3hQLKClR6jE8#%0h4;(MVPC~hYYXGZ}3|3W1gn+R|@UQ@-HY8apP06z?7u!6pCX#!zyJ(zBf!qK}@GA z^-J?(o~3$KB}z5|jFn$Ub4H_NY*Li@&FmkunLvGL=e3R9k2d}pAa-)tP00*_bmdPD z^rPtIX1$TE2nB-~X$Q;~Wr`nM+t~F8L~?@hM&M=ul#?{~1S1xSyqi(XR+5Y9pr1sk z@yCO>;6@1)f)Qv|LllleR!?{L9Pa5(W2vYtDyLtc*q+d;Agx<{26Wzo_LM_&6Hfay}in_W58HT?`_?dH0s!RaY zK5mGcL+GGk^LwfaMb!`9-Z#8|W3I(Ka39-Ptef6#6Qa%$0 z*>!zLyMkn%JoX)&3mHOUNvjV;vn0^$Lqb9~8A?F;k=W^9d{<>^SBsYPV`-Z)FTIpP zUX^csOL}=J0uk%1?&FI;gA6NIWgOBcHt;wOM`ix4!LdVkb?KSg`sKwC0H@nG0!LKo zfVWTK{nKp+-0@~BlUuGbB7+WgDe`iX0VuY9rSx{&JJP!ia?`24^zG6osT2o5dbrs9 z7k>LTd$fU?m%g*;lJu8!e1lem6N>Jz77!G;i=|IiH58H#2FF68kJWy98e5k$s zJ+jraUI=k&jDg%fje+dtRZqV0Zz5?^(rw=o+QLK|5OQ+n{blU1prQNo7@9<6j)N|`1MX&+fbaCyN z5CK5-Fv10$mOO`L#tC*dVxp`pj+|-WK;YP^XO$R74?LjE>ZU*f=}!xLQnL{=oBUMJ z4O(75L%5T{u4gX2-5|uIOy(N0i-)P^I5?L~3Id-?Z7;HMO;dai5QVTROPry!chzx%@Mj`;XK{NmrAr`~0;HFxj8&JkQq%}{%?h6l3tI*Ob^*hjd z=5fCeJFapVETRj^Z(X+IhqUY39cjy8rspR}$Ml$g@@1ygW8HbnSKp2g9MKL#ImpKh z+*R;A9X{lM=lZy!5q!!Es3^T+=nL*&SjTEQ#a^(O!Ne*rW#kb-G9u&?;b~m{0tLLy zWa^dwu|e*q6v;gJbhzPHguC%&Mf#qz~m-OW|ZH*SKew3{|o?`e|NXUsv zX2#~qxQr}Fqw=;ak%Jz~PV6#GoC+duE;^^ps$7J4QS63l4^>@D&NwfUOJp!3d~rl4 zW?`7}B1H$*(cw^9rPal>DWyi=vL}V}79BsbmQTU@bqfcOtf^_`X9pH`I|GKM<<6i! zwtVWWwJ;2`#vw4h;-gXY-6@%3-!L*u7$?xt%z{9IoKd; z?2G6%i)N49%ym!#dPsSEXcfRqp3+{40mX%l-_%;jdpk$HYtLu2KBhroyF8;yJ?x(l z(QxJkF=J>>@L`y_797}jvD?jB3xzR2O)9L>3q|~O{o-XJ3!OK*ukRO`Tc|%9nx|tZ z6p+oR+626BC_5AqZxLz3&Vk5Qa=ovBTUU`AnCRW=3LIZ*Xtcs*$vWH zO*U1h$sp=YhqIe?q(70d*`3?8*kZXw z&UErHW#ONu!8UL)put7@SKK%jb2%5Ybxt}bIko|TC+yB@pdn#ZJpV$0X0w`@s&`O8~m z0A}rTvQNr_BzQk6TcgGcv!77OP9CL{W7rPw873y5;de5BS&27@fyN&;8cZ0PGL%tD zmt#8Vqr-=DhYw31F`e-Aq0v2~hv5j2Op$A_~4#<=(qFQByPD9@Y0Lg+|L^n_O-SG(6GBkp~Tep(dZpIRDk*Tu$1ThuKT0ke)gu95{4na>FP)LG3{vEAYxZHx?Ms zsVF(<(Qp@ji}<}=U0`(Cwr+Ai6n?#V@}te01>NRnrM=HS%eFr&%XKqgh|5hw%8`Kq z1SCuxJop3Fi^dNDh*2pbw_k{b=CJcQ4{3?)WEAqgpN03M&&V!4ER6`;D02N71hDVt zeJN?2F~U63zLMV# za>{Z1NEq4=Am~CR-2!N8CRH}CGY4?jHpDpkds(?IKor%!+F=+O_+ZJJ~9{8U5dO|V;&YIjS( z3a9EyccmJGP>APX;n7i>^nh)2bnCG^dnJEts}w~r$lZAT$B{K(WLwv;mWe~sSK0U> z>5pzAuGEL=Ib6yuA=A5&)n^3kYBz*ozL^G$oVj+w3-Xvt3Z4q*hMAa^KFY9hBoe$_ zX!6%dUDaOa8uq2%E$ZLa${uR-*pbnbL3onek?UyH!dDXe2$do^L%j^HT&OaasHy%T zSM`GF;CTv2wE6f)V3=)=)ByN-`L)^BzrH`lwg-n?B64YL>^6HtsSuvu1K=xcuB-WD z(!VgavMKSoz$)`H${*sZ%hv|$7uDDE{>yMVA%#FwdKS3gIzr_(EIx{hkWEG8_*K+K zp8+t7C~b)y(K3S>P<6Ki?L)!i4uUK=3$%~Ls@nC^KLzw2cYIm*re)?;flCRpMfF@i zbr)z;J9Zg4i%K(i98lGG0DG=1CC$>BPwUJ^@Zi98CXP^J>n@vO|zRQnV8M@gN4NJGTe%E?QSuoLV-q-UfjEGrdWfl@*GIFz19 z!(S1p?A{Hf+r#)el1~eDaBgqxi6DpFX3{LMyB&eibSRXb{0Y1JmUKw|HUuG)_^d_1 z-9Da2kmqbetyrjFVNQVdlW}FN?7WASgeYpHjiMUtoOwak-#}6!k8>=sKObt(hw^x~ zhu97};+#IwuZ@WL4K}|mGPE|P?}=*l&Yk^X|FJN97f@g;&_Ne=bKdg&&9E`P!X zulI$^S1qpn%&I`$%FixVEZ=0Ti%J`v4GkH}*)`20lHWSz<6cnYZe;0Bjx17Rha+Ja zwU3T+Z43~X2g1S!Q7DP^j=ulCux~2a-*V}@?8Kox9S?WN_m};u$;*_-1kn9yLec$6 zrlxyWp5ZegJ$XuRKp}4jq?izG|IWD|ux^v?C|z?@XF7@uF8qXlbaeYnnQNw>E06hx z>o(Uj74=Oe#rODv_Y-VGe)n#sA^rg;sQ5Jf34L)JE9chj_%?ek*katnBrX%(z6sOkFfbUH)cnr9=bX019EPPTErE91~X39Aj7sy zlo(dcEF%e!(&ms#8G*#+<|JibYh@NWgcvc!P%lvxdH86S55Fe40lF6hI9%SjZ zd4tg`5-s^%PLmk21tY00l%^7pUj7eRvtBe0SwxdX$R5oY^iESSX7QUX>7$&_L;4+I z9agao`m4o|**!c2m>Rdp6;cr9$D8C9F2sA$8%k`4I0$f-Sc|a0BB&wB&!KNUTCO)) z7FtYto%EW;QmHSe53K)&d~13g!+E8J8Ol4vV8t(6GwbyAt@ZlPw6$(`G{t@4urJ>9 zJvun1-pXeuJay&e!M5$&gXJ9^`oQ+>ZJcJvB6w zSSA5(bC_bepK-musppD?_pqkg);g6cpwfMN@v#gmM-6~#T;WZ-+1}y3xqJCOJKe6C z>_Kx{RwGjw`Q$?Ibt8ClCLD8{|3mA_iJsVM_C0op_+A;3*&w95#(Fw_Zx`61=hM53 z&=mUb!~A*-qgBu+qkl1L333us2oSMwweTpZWdRHuO!UM)VLqwYi2fQY24gPgh}Uj1V)G!n zUu;`XG1WfekI**V9~?N6Nz8>o9hXgj2w*Z>iy%mULruEv-d|3E;tX{TbcPOSWjOv8 z&3RMvfKj+ZogqAb>5}U%mtr3L7~U2Y&=l9rumr_nQh{+`ZUVdxM_OI`ZctT}h@EcruAg@P6gZ~bNsH0mS76D3#}_MVwkzp`@QhF>F7Qw;F);XQ zUUv;i{3(|b4)~bIW-o-|oI=NlMQw)p6=nsTv!kH#z8c33Hjl?={D-%8mwGqr1}LjA%u*L%5rYLVE2|5V_T$ zAv5rQ2lM?}K|89knFLMm1Wx-=W=Y@DnbjDMhEvMD&uc}y-oWW|5Bj*9TljA?6iUVSRp|QfcSCkBr#S_-0cjyl*g|+FNIh9G7bLq88A=c*{$qTCR2HlPA zj;=08Zij9|SgFj9IQ!m2J!FH;w8cOLs|>>Ky9MEH=`M{Xv2(qgD`EZ4ghta6$?0@X zd)gUBvR8Z9nYJT6LN?k$yf=Q2`n2>9oxuE(X*_a@&CI4R44u69B%aK1^5oavejAr@ zn%9dl+64_G)zSn9%vZdX>c&vySS4|JYD_FnX)rZ8>&ISQ?hb#>CB2CtFh|eMZlSs+ z(i=8<{5?A_zIbQvfEXSP-gx-%mUNmO?B3Pm)#BTrsO{dhe^>XsHX-5^+61>s*5qQF zNtv)fFa+Dl>Cddjc?24@&T48EZJ*zcZF^&;)}bh$1x7y2?1x#5Lt)1SnGM%($Z8$- z0x-Y<(L7n^Hy{!ho+(L60!E@T6xSpl21+O&3*Yhx6qKV0z)l5ek=It{;{V-dh|p0{ zs~m`Kc4BhdLz=_={f9LnyBLjrT=;l^E{goxTI*T3FyAD6wWe-!%@^xzNrc(iocQEd z?5j1-t7`t2d;yYg@$o6tmXfQ!AkPW6hGTHR@E{zN>@Or45w}CU#7*Aj&|^$^tRd!= zpxBij4Xqkjr7*`t>G0!^4-7p1I2#gU1JdC)hVYR4K92EU&-2JZPzEI;ZzY8Gz<3P| z@ZARbW18Bv49l|$YnK~k@m5Y>0op@ivPJMy@~9i>;Enn17NS zrp$M0LJ4eH-8;IaXCcgepd^SzCbW#W#_lpmV{l{aj6_(IFYB$f*=lQT$?hFp(&=(N z;H&9x2qgVWFwvUw$PUK!u#W>KFQOrdY*5-&OmvuoeRP^+<|9Ye?T%V9UCeOg$a?m| z=o3daWZTE`{h^*Gj&x7y=jD5pqGxv81^J}Z35sGzVx_|E7V}#tSw1wB&UZyq8;ke7 zem~v!af?cyFuPiwDBj*=o4P;w99;t#FT?xOgNf{HSdqn1hwmaE zesU@viu6W5SrF}wgj~AzwPS1Bbz<;{-S0&NH$sdInP8X3WrF*&oz+HqBX~A+TbuhA zF6?i%c3%N4qfqWmdu>&^rmhOJKkf%GL@SEp$oT{#Mv7Q558o_sq&0ymVWfy_@ncoO zpRyCfmEi+-r#U5hv;MszAEpy`>CLR^k6k;ulQdMeT5tARd2}4fT00+~4)pzR!Tq@T ztcR0>hjO@L>&!BWrG>9|VY$Y^nzQD%vBpb&*>}vRLy^d=>X1C+p^oVPj?WPs0FY5c{ zC5>YXXSQ?WdRzCpbl>Z}{@@wfk?jm+6t4tp(3D062}1Z5Q_ukhkQ*2Hl&SqkqoeJ3 zN`DefhDcACRDWS1pB>vVmd%a{E9kq?cEv>{*|EQ&PjYTIIknyK&}}QwH`2LW4jf*I zkyB%q%buCo(ovVMYO3Us4@1bMb|@)8%fMs7(W^HWbGX7zCmezt>2;~px^#ZroXuLs z!rRQFeqrps`zHT#-+fGp8Zfx(x%9ft>r(x>Y&JLW?_FYMkF1}W-FBFAv{Zgd>$5!x zps1~~s?Q2bKG+owcMWufLS1=(ulZb1C4$`p-9dhMX4hC$q<#34-vT%P0sdO{{Q_m> zh>$Tq3lK%p3f2u?%i+E|3oe7V_vbd`avN{lh{Fq;{aY+A`X_|{*!1LU-`%+JyRSXD zY3Zu3eETbdgE*{`KH1{mvUS1>k26{K_7vK6g7-B;28}PEn&&HNhVx2qP=f#ry}&au zTA@6_KFqmdlsQL)17&}&a>KovMCyQF%_VQjPfzN)IO5+RgX7N!1`Ueclo$@TMpM=KGAI_&uhI#BM2;|M73eFUEHV9nC+pA!yr7%hN0ns&?=cpvP2I=0XeC<$KhnOuD*1D`Ih{NwLBYkWU zkp<-?ix?d4iwJk4)Y{SrSp8XLCgcJuS?$Ow6&bXz?Ue<9$=Jbn4!q=fRGPM3ko+>A$5=XgmD}mq+#?dP{sC{;|K9h5oI5ed(ZUefV`(B$|yxZb#L1m(G;U3YO7q z_C`uYj(_~=bYPY{i@CPbKK;Htn^c) z0Re+4UoV-mm1WA`-Dw>N8>e^_OFNg*`E5VV15)OLo+D7})K{*l_G(Sh5k# z1Hnz&(7*fNcq3)+gh_Bd4CLE<<~dS;AsHYTxJ0fxD-?za4u$9sJ@LdY%h}-Ab|2s{ zDaG4w-vEY?c%}~2>#IV&KEeh0&XO}-vr#7OIOEA8`Mhg^zcGC4@EOkh3K+AwBohBU zNmnSCnvXin(%oi9v^}aZMD=~lVmCc!awt;ysMN`x%f;@{Hc9 z)0HiW=9`wd%(`34%@gdZhCRR0o5hKcaCt-&nndY`fl;^sHHoRbG^nqv z)Vr+>x0uUEM<%c%5TEii=1dLtVyd^+K)E(4%P}}xc|TLgdmtGT5>q~$l@J1DON>u8 zWPZ%5ZwOp&%Pd?DPGOM+0E6x^2BFChkg_f>ZS}z6Tac?5&NhCbU#JjPW zv&Ez|=q!2@^P<$NAojVGa>-ZeXZSK=w?{e?32*Vq?Ps&$Z2>)6dSNh6m0&`?Ht5U! z7utufYbz?MDk{oCnSaSh`!BRV?-~~%Exs`sM(_*+S`3wJ|MYzVlh^74y!AZuD+c#sykQTboxU8fn5|74x zMO!`;Xay@aO7A^x*Ct5A0W}A5j%golk@n_>hjtAQ8=_HrEM`Xq;%JoBlrHXX`+RHb z=db&GYrNF)Sj%IpZyFxHX>~vUy1J>UItuN>^j=H$N{SDl{DM?AxS0~_TDeR>L^gm~ zD5NIeZ)bPsCnw0$>5ao0&4lJo_DY6bMSf22O>}5gv6xCb(caE^A6f5KNiiR?mlZAg zg69fWeq|sI)(*FZ1||WwUpRe$I7Xw7MhzB=foX9(XlQ}x=0L7gC#t?162kIS%3_o* zHh{LUrwvx=UT(vb`iP zstR^YZ<7-2E5!Fzffjav78d&sSFJgX!9I$<`+47iV_tSiQ1(ji_geh$%YMq{_rGq3 z$9+i1gkvsO4BmDj)Z=(-WW?*3Oq0MTylD4NzGHLriY?Jl23u1&+T!g&_xYI0w2x{X zxAKg(;HrUp3cM;f*i+$D;pGB|+^c94*{&k=0Sfy=>?j zm51Yr*Ro-^GV{Q9cKXCR&voXN-`VMP*LnWX*f@MeleOJX_EGlLOvr_v%@xz z*V^V~KiV$3MDNZg`c2!tPC6MdVMhpu_lG0HDZjz|Mr8B_u|>?-M8P4(=>LKRSHe*%s!=$hO?iwf*CuCwAT zN>kY}uDrs)5l~a-sAap0@4aq%FJ0Z( zXyaGjir@Tj)=&3yv>*j@5iNTn;o<$mVU({jb*+zVj3GY4&e3EL+V7T5&VIiS7a!#p zZW#`5ob^lT2^cRjsFN~{J-!}3`4h1GCe|b6rX-KAg2ysBRmp~*2&;st$&4g@mv~6mukG?AX&RHL-J?(T~^ur(CwP>K)UmEi*U*5X1I;dkY zfA2rwD&q~W);lJD>Il`X6zs=0v6lXHwAOF5cw6GjrGJU{XQH)%3ah_44!aQ1s{(vx z=;ooD_JISDqp~Q17xNIL$$|{FaSoi71BbMk9JT-!D`MGL@-zX(YF@31J^82O72jRH z+}m90uU?t%?e)jXg4HWq?IDK{chtXngI2xt$;qF(Sh{z4ti@|J_`UV%e(94H@n*lZ z0(7Z$Wt^|OG;p>b(mVG*;}$6@97Ul|vfdc!ka+4oc&*E>&)ol+4sv)DUB$}Re!jFu zvjQceyZ%~PWAr`Ph0_)I=+-akjV`^hPH%e4SH0No6FeKsgwp;}yJp#9JrWnLwfnyL zrLIzYDgAa&WqF;c++`}StF!xj_O&zYAK1Z+?o#-)578zBr{8_jYtw$d0rcS!aHQDZ zNkT%60whm>7XfGSNUuf?u=F7bPrKCZ zvE_tCqto|AH7V)QEnC>I(P+DL5o61>Rr*q$x!U@e^kRXA*WsQ|f>)%7J+O~P&?0&N zL}J|%cQR0d0z`ZxqX3N(IR8z>&ZPBv=n)R3ypum;f0bT%(;|I5!o2Bp=3P;8S+?vQ zM9I3YSWH-%R>L{}5vx0m;IvEEw2WN_YtH*@#3rV3_vaW&jGewCs3Hk{yf@aRu5+{>{zMHF1L7Ix%QQ)(Le)ug#Sj zlOKt(gJWX}9XKr*yb{A^^YGY^**uhh!y9r^3*_+XVuros)YvDT?r-T&_4V~he?Y}a zgT>UBiACY<5z8P$wBMh`?$6`sWFIQ>tE&S~5CZk*(k2#_j8t@i0+P5D3QQkGqZ0k6 zmld=SBp^UrVuHfD;3ENZE%nz53hD8SPQ4l35Z2@WP{M9Yctg@%yerOLW^jcx{TgS) zq3bjuYkOkcoH&N=zL2@I@#>%XHSN; zb)DwwSmyZ^$-P!ras~QBazrb};~wc<4$BqD(wi7nkf)QPPg6U6)N`uxEGo3I=5&4p#)2D@W zwZEpuUo9X1nN=8>$M&kNQfpMYUX}jvD&n$Hhw@cp?3eNt(q#Zr=FQ~&oZ=|3xj_vJ z_huO?e*pC#{FHGHKu-twvDbD7Cx0E@!l@brB(b{} zEgD9Z$=2EuhJyFGCo;zxPOlnPN%n_)7Yb#jb9PU z3b{}gh1mAo{{%ho4+zL8Kspa=)eHpt%d+Xs1pRbuYTZG>wfk64=p!+u0h5fsD2EKG^J=YY{#SL>9Y z!|b8|lz{*Y}VYy);OXfvD}}Su^G5t*z`^m?!(AE7#YbaiYk$D8c~S z{>+xo0})e=I~|DgnwlKXs01V8#oC^sf)e(e)_fiM;ar`SGaJ$>&B9Cd2`s36k@`%WPoI zjGS2jY2N}Ag~zbVA;X4g%4x~1SUbz+(2|R0tYz{OIy)`FT!J-*^y!eJ;O-7mi+6|% z;1OI^>^KtUng5DnyB1XX=+$!PaC1g88 zIfN@AXbDD0DJKN&-soV=4wl|)zrIM#{%?3mt^w>zdoHwu{Y%zceIP2+w9Pi(^>uaG zy1K7p*1BB(PzT%f+JNR-gGZ_S~T93Hv641+uXyrt>M$W;S)EHJxGpUW|4r^(iwIaOza)P&?p8KXfaO zh<1FlGR87`LsX2|V%@PA>%1%J^9_kwCN9b^62(QLquE&hV8bH*cFDrq$_!eqp)A|n z-RyDrT@9+sji0Gr){M7&j>s}hF^f+~-gSMDNaKZ%kGWtX+b#-m+sY@?SIaJaMR_kw5smyIcCcW*e zjw4K2EB%JGUFDO$i!0eb-nQs?vvb97F7=>z-jNcv$|}9UR$-1nk5!Pd3Z5pF9@%b1 zZZ~mYwQ4$*6akD~Z~OK_DyjbM+j&-u_5INd!nKh+gYrq;{?HwLu&`r)p=24qLlgnU z4hRc=^vS(!AN1?wAAouT=ooJPqgP&eMUk4EknTk#7=i`0P=p3>NG{^jDBBXWw}s-| z_-~}KN2~z}@-fb%Pn|k>sGAPu8Bb&63~XNp4kS*Mw(w7AFjbqR?_u{_CVh`B!<$Y^PoS59+A|E4fSmS$%u}kFFgf*r_6%^TOn2?sBfW$v!q;GN zj*^GRr>z9+aiq+qNvtTUr_Qi6!kxNZn^k=5B641xv#b=|lE#~kmuhG(v(L-T+GM)FFRRj`HiG6nmemTQFL+x+sjd{yS@}({{K2co1@@$yF*_>kqpApBi7Sfz09qH2T-ild^#TC_=%*dWKb2Xi5h3nd*dnPm* zT4!vt30g+GNyc>%-e&MT!1e!R%>&o!8T0u3Nx(;Dlkh-)PNmVHB<9Q>d>TC%F!+Oa zhBa`-)E8-koF7ENEwbcw;D#}Bwwc@mO$E8B%UNemXO8j=WG8uEtv`Sv_0#Nuhp7NTIpSwL39@3_V%dY z&-JvMT-`aZ-D0tOb3w1u)ZUZx3(Lk>YOVb{rM`>w?Eh%S(A68oTosR7632hSCQGZE zh>HL)0YCJTRQAhBZoQra6052Gffm>*Jir}tpEs)z{)pJb2x5^rQf025T{Bq4mfY8K z^EYnp>AAUAt%#1Jr1J=43Z->GZx1eh!f&|J=bl3c6iyQ0V)SiKz#JpR-F76K>n*f)BFTla_rW;fW_7 zt!y(tsVJ1I9VDj#gKxP;(|gdfQp+o~L;GssdL-|>cMq$f{*<|~QVZ0#!j63(=)GZh zrN-1w6?YU0JBlOwEKj04BvVw|Z-TsqYGWbQ8;$rvBx4|Kk1FTA$Cxjnh&?g9XBY|R z(zRb*dDv^D<%fp>FJqSwD^4XgS04K%WYT%4>hfy*ax;#Y95hngL%8RfU~~u2TkP3b z26rVHdp7#qE|0uxm+ToijDOD_Ir2--u3a9_+#HvoYW^}CM;qc13prqRkV!`4LoIPV zTnSy2Ua41s&gR)E&LIba?Dg{_wt?wjczV!&X;pTmYr4-czPYXs43o}5HP2p$y^O^B zdI%eUX(IDAg4DYSB?a3~M;Kg$v_#eG%~P^yNt6(-CCn-3&!0cz8IHxwh;c)l8_gAs zL+zRrMIHbr>JHSy6tB_a+Ir}05mJcw4&mk_V5#c@Wc+3E>2tt@I#Vp_45E}7$w;C> zH+P;{&<=a@$S;2J1FyGe)XAo(6wYMAQp^azXKGXT?(bIpfp9&yXSIMwla~*bjwo_R zO?Rtx1S$H&h%t;f1^CObCY&=1NZF^)(P2RTW4mHaX%L=8RT}9v0sgbY*2cRUEm65` z)Aq48dGIb$NrpbZ`hq3)VKj&D1Lc7_%J+bZlrX+Zq$iL!%Jz_2}PW^lu!N zI~zPq9f)GuunM8y`O{#9BJH?_68#T$i`_y}d2|*(DwS67P=M-9FyK zj%t68@V~qjTH{cM#(UHD)y``&{)|34(A!X{)FxFj^n?fj%T!vrL zAAo~U3dzC*htyZy;pT*}Fu`F80TPhj{CTU`88i3qxOu9*(c4`5ylB1JDk@)di}r}` z6>;+B*}le(cF}5TWb5w!Z}=1b?%lEL+V+OZjt_Q-Uysly=Ob3B&ddHH-Dm2!_U0Qr zh#YB;Ty+2ouWo_XdYp=c{dm=?RX%m)VTzi$AW~g(>iQz&3<8Rwg^Gy*Y{`n`M?gMX zBQ=4d&tIL}lIsYI*3VmA9q5ESVYs@h!#};P!)gpE-DD8n^R?}B!rc(q-JEm7*#6X zfp?Nxt=D_V%kD$X7FU0R3CaEsBxV6=^sB>%|EK>i_bI+)VIL)MtB4mrMmI)Cs?-0a&6Z+YcF!O7YooV;8E&# zgoH%`kh3U9V^m#YABnO-q)j}ZD5GL5Fe?#3kpfP>Y`34FCz~yyemJJS6Z)N&hu*Nb zBw4=9Hh0A38L?5b%3%rE+%m-g{@4(?b=(SLGnj<0^zD!VpLd zS}wfFMu{8+xgP}h^5-Du%U=eD7s$C1nviZpxFlCVld^aAFrXz#2Uv~u@p(irK^DS^ zMoW>Rz!s2*u~HFC^&{mkvtLg)Ny>2e4yT2=nxx4v^Rj_LL9zi1`Kj>j%0UFP+VC;a zN@t~dU5baI%&z6vi@?rm<$%TrE2G&!152*_)W7~~QEEzmJ==S3*`;GFd7kZjp~&1e z387j`$3&GQfF0Qk5#G_9)70UaFc{Cy9-2L*oSFR!y7?fG)_=KH+2mti^DCP$--)$r zIjv{#M;WiIqzk~;-wh4}MGMKZydr}hc-4V!9E4y?Fwr^*9V^V{&c7|Bf^@iAQ18|p zJVVuPSv)9uyny4(8kxDT@5Z)dW&~kHvfZ^u3fvWtq=3eFuW}Lz>@-H7LA$-Mi@A7K zFZMjfpP#l@)IJX}+4|lz#8sc%P7mlv2?p6N0hbW@Wl~Tu9#T#skB#U!2|DsMIzl9M zQwj{+_CyE#pDT`oSRIF@I{lcC4TiJXFlu+0%;Bf_h-8A2*K^?&Rx8D_j z{=?qYta~&q7+RZKJ}d?I2VGK#v4$hc{h*2VUn^+(I?ix9zc}yYf$;=i3iSwQ*F}18 zO+(NiU?k@(!p8^*@2%|h8DpZ5FwBr!mID~SV79=}WeM+y}C#zuv*ShdyLeemy+UpL%yk8{h`hqU@rQhAq zQTTZ5>{0@WV3^f$o9`tw@?Jh>DEcmZjc3kKZFADSfsVsRN_CuHLKWfRBiX2z3XbT= zP3cIp*AP2@JT=HI2?vZQAY`0?i67RLQL-WIyE`aN=%$5zLDxqEgR7Od;Y$9ZE7;=m zyH$EFdVaw0PKR33TA-NQ$oL}eP#J5vbh=! zXUbt}k9pFxDFFf!h4idc#S5WvlId*V+55 zFtmH|T8CD=u(Ajo^2*ngAYajHnt%Uwv~(=6{BzZXo(^3~3{HzsE!xi+sV#4y39G>F zwRMdRNI_gSi)@)cG0j&s)@^OO(P|FrOwHJHwhQzB%43(7($Gb=@!xk;P$Rjz*;W`B ztZ3O{IZWH^%!!4Kw$jj8TddVB_SQEjA(mpdRN4q(oe)SdWADS1xZsCW5`NBO$E5}N zGJI+H+_`Cr(pE|;pC}4SxBoRYW|Zml_jQc z7ta^ZOTk1DrA*?=^R(L8*W#s&>_!5VyBN1fTG1_u!ai{S*=S-kRv00!@AjWB#gn5^ z*&7R{{PEIpQ5JDqMi13Gpn1Gp!_7GIRnMWyF0t&9p&nuXa%uBL0D#J7i%Q=aB3Sma z!z)q149ZI$f({0WM6yISLLKfkyYCW&OyY?YqUVEvKz0X+YQTB!_MJJyPMtZUY&~=4 zJj#!q#9KVVEy^sA5Hbj`TTyL z56G-*D;3Pg;uzG{#ucuN_nC%^DOkQ5sNGsVbR+EH1rk91~~Xet(` zZ??6x*lwOi=p7z=d-2|V=catrdqZr8W7CH>^~L+*xK-!71#;pyU~lxpL$d*#fHF*x zUrjO~u-?KE9c6Ox1WcZOnlm%PhT$x^%9JDFl0e8Pln06bR7j0y1~WMsbjJ@zQQY_zwA{a6FjugoW}hfLteZCU0zHIOZ|w;=}9(|7x$x zZ1S)6xXk9QpB$d3i*#hWH>$_%FZ|2k-HBpxs#Idf;-wOv zmG7JFbab$BWW3^8cyRrNe??mTnyJ3NsWr;Oeb<#r*Y&X$^>|S}?`U=4Mm&%9m}=*x zbFZ{&9AnN=Qh}q0x-4YSA|o%d>R=qAHNyuLCk$0i(xZ+Np}WA{qXT*%mAcKXrgS?5 zVsT#@FKLBWEIzSN6wvS08MFJc;UR4*nGs==v5CsdXT9uoZ&;a+dE>HQR%-%UqDP8R zDQ1?9Zi_o;F#%LhnDe&gk-ApW>sxI?qkf~6StIgnDz(Akb_F~kcPonzd6l-d&}<+d zM!=z@$9EliYpW6~IBYHErm)K*8(Pc|9aTSLjpxBVd&#L|z36Ot3f7oq%ySbnk^zLy zMHMTC_83J=aIC^+nl73@=wIq=LfGP9ILO+Cn+zyoypSqjdum_EL4D+SV;J$8KKbH&jRG&@q?H0@JK^T1DgRVIdB=Fm7}bZ-kC#TDCp_gNUd8ClGKq<#a++* znRyQvkq%3VSRy(VjmP7XAjabf|JEozkxsyNF+#q9AjBfSa0(JTqG!DL2e}F^WaXte z|DKdc#QodC^b@*L_z3-KBy$2;xVX_AlYF7}!vGs@JMwPVft#x~L4O!=nW(M>B^l}E zh}0BSb_d9S+P15z&X@KXr{8&hipU$N(jG@YYJ^0$`p4BSe4qNc*kP1HVF(f<`W`^f zxBBA=mGtPe+KX4z9-Oq1O^rWnv{>-awD@XIldB2052;U>8*==p{i$KwQ%2kX_xoHV1rp+W z9Y3XN{(?-FOw;htgC8yb?9yHlvO4vJy+Mx(o|RGFC3=YFpWRKJQeU51)-~b!rM*%% zvi;qQ{mGp=mAmNO@(#k9T9t39UhZPf2i4G{`b_y%Lxc}h#rW}2PXJ^IJ`071-!!g zh^5K+V}9IH;TRNXw`lW-Zw^XeETprl^G4^gY7NpInT<~|`TqmXz;3Y07 z)eT#WwkGo4mhU$fzgKx_?ON!}zP0e}t@W`ExcB09UCDN%k)qPpK8!VjtoL2vjs*4 zI%s*pM%2bGj0S_FdCRcSs%)X<{?~W%jJRO6JlqqT@{L17joq7qOLR=tCm&wYYF%Uv zpeEsJ&|gxX5XXPDWtPZOV+Hfz@UA69NNjGQ@uS_;T7FX`$i|k^!Oi37Gva(!jX>`? zg!3GzCbiHmOcmCY>In5&1$)>%AVlqjEYctyeP6PM6Pb}gduGDKJxd%yUK5DOs% zIN;!6Z>~Via=LA16s&v7?_qbYObnY`PJ5e=^_Dc2Ph&c`|54S8G!*+n+oFy_0x@h$ z=4BaW2q;EyesUt=^_2WlkuYrCMer?_5avpr#6-&U8dC9)@vc59)6hAVv_mHf_vP{( zN_!GH4e)>PR}OgjU~kdc5f71O3FRD&aB2>=FNny22P@S^+sN7Out)DupD9bTBueh&3 zr+`AF0)MeLgHp*IR55)^EUS$TPsO0t@f@!*^1Xz-hgOD1eN?V)vUYAto2~z-e67EN zJTLN0_V@F#zT!S>NTI2cz+MW9KqD$(#6=YOtth``CktE4YCdxr>C8exChrwiCOs-U zi!AuS3(A{7*+xDyvg=DF8gt^$YWpfBxyj+>>GsU!aWt}w;^mLy~d zNj`qWa(8SI$-=c0Jq$iY8h^f16qfg5gB)pahbohvABQ~z+4>hD$B2utLm9+Ew>wqci$ zVg_%(jm=dFVRJmrfYb8Fpe2p*#kIPZ(E*s@g^jp`n%zr6$6q05AFladJ8Ezc9c7Tn z?K+>rbt}+PDH^*2Yo6lOYSs)S=D{CSHEqC8jmmg1iBuoSG6Ji-BMs9+y1NdWz-iaB z7pZ)o-2TfB0g^s9ktIX~w4 z(0#QMe=P3wekl8^mX=@L-QGUa&W`;5Of$v}XI=WrX+E-T+mRzzMzMQlW?i;M?{SQA z8J3!Qc;Q9FPTx3#eTtD8Dt}3B2wL7D@C=Qob^; zoZ#gXB{ngZ#enZdq4aFlE)7Wsm1jK?tFYIj(dd)vnE!I1`hv;3kDx|6iq9v#Gf}tu zZPB}%+m$X}8~>q|apl8%Wg}Z%w?)+Dc@XQCqMTZ|_D!g+RWoD?OEE%bbe=X#D;Uc& zn?jj09l#8oFiWaw5ZPP^HodiGag)KR|F)hPZ?u2Q zH5dVAW@`)khm+Sl#6*i|wE_mx6^0`czX$D8e;QmAG1ZMB}>LY>*D(w?jKDX>x>{^|I0$D31b)NpXHFV{NF zsAFW`>c#p#0emqT);fwZ8APu09QX)$oIe61JJ+^QKn1r*Hs=uaxm0>Ox^9S?vR4QZ-WeX4b z-SB86ByA~SN$yVBbon=AH*B(63%gbH7|ofmR#F~LSpc4|4f|7qC3Vz4><2J=em_96 zgyejobkQ~6>hnNv?+fGKBUY_3wAz(oT3ezsA!=MYU7hlS#yWrihcrzNZ9}S8>yAg) zCnj0~t~Kdwi#KXISFdSoa3m$Y$K=s;C?AV54th|GKp{hxQ5BO@#ll#{>#6Ws!pr@{ z_ifGbel1?MRUv+Kkhe=do?1==p{V&tpRpp|w;N`Fi$)Mf8qRXqKA7j{KesK# zb1gsi7@L|rKKTju>7I*_T>o@4W8YK$@n^h`%iH4h9Nw!n&_MV)mud06+I)HP<7%Vi ze_7f;8rSys?jy-hkTBk}<@aivO>XX}HP7WW^$a5$wigxzbx?VR0^#`RA+Oaz8L*S9 zfyDC7{&dN|&vr@uMyy%djRg{{Mkytqz{V?**i{T!G?SZxtB}xZaWiOZw3S zy%!NU>>_JFH;k^(FN9ZC`vvWobYtExHF-vr?}Ey!yerw^T32k3QdbOSwJZBfX3D2g z+NeA1$5NnoFzuy&Y|LavsUP0ddS%4sX6BDd^(^(Tl;&|*ThThnzD@olb^NK)ZwKrw z5MwakG^lAFB3Sjakc}HuQ<*I$LN{-Cl-1!#s>Kx@WIcI#J1(5 z!h>GtZomhkz%xDVKDGR9`;qAO98_Laz>iVrm+!*0Nsk;NeqX8ysAa;w7TO%OY3r`$8xS35p z!PoFt6$Oj&Rp>9tj`i4gORi7)LpS=oNbI$fn>Q~IdHS?6 zcKV{UroZHl{s5(xY zL1gv1PkdFqtjZE=K)!E9@aW;R)gJ+DUfgG zDP!(D%y?(WE`kSy^P&yv$G5TWns_@1qgZT3-Dx?#-_9OF!D(hXG*CW^yU>KFro%i4 zs$nf6p&Hcd)adn)^>68QYHNk4ukJi}BhUp-E;|J;GH9JY16tuuhxT73ShYD8@n^Vx zUOEp_IlccA*(?;;ELa$OE0@dWa?A#nCFVHiq9?DjrR7vh3u@Ghr<~p@U1~g`6Q?FlY}5?( z>4EnKR=N;OMcN5+`BjfSoQCR4L8g!+8Ui(V93znJ(dO&Lih2Aij6G#{0TDNc)t_>P5NCwUAp~oL5xk6i)zr`^R4E`V>Igv80g+w( zdkDYN>mtx8fB^>KffNiUT?qN#cu#>re$>O(>vH%K>T1$8DIg0fi!h=Un@o0FXa9yj z+tA->aWphJHBFkjL|aQlthYD#+8fPgd(!J@H8-~VOm>4a(&FjVX_aW5#?)xDN*aw` zt2Z=S-CB+2Pi+l)En`}}DPYoTn836;(~l&#NzZf!o7AKi^mRQDg(%4qb4MXziqcsxcEJ_3lY(SyZ?oWKjKuELoA0W3`&T#vh*)-4TU z8>&uZ5ieDnfPg>1E*Yi>q?a@_(v{}M$=xwDF*%fvc+aUoE#VvZC>r+0L7disp|{2> z8?Lo^nfKy>`ZE^UE&NyihBmv!VQLZ=XT@P$Lvv!ciVctZm9>|j2*!qu?6^9B?prZ@ zrNyCFluJe_AKmp`|A@(O$&>`kb`kSovV|Y>|N3$>fLiFo+}=$5T$Q!7I4w9zD6Hxj z9PmU+f~DO@#hz410^n2iF_Z&F1!y|YGRZ-==h(RuV|&KNvKC8bI+K~+HJv$kdT1n} z{JJRY2y8bS(tY*qn{#7hw`}UmOn;ER(w*$t^7$Len?Lgz^{gEQf4B$Il!#d-PRajw zgC!!`m#q6xln%VQ{{X+Ae7tbF@VF4%hWFbJ9GJtK!sF! zI&k3Nj}9C>pgemT7dkEYx8cpqfdiQ*3r`jxu+X`4Bd+s7tUaoNu!S{(!xqkzr~ zI^pa(xZu_Cfsu!Z6lAY*a*Ft6ID=pSlkL@UVws;p#hozFkN2L+Kbk$o-d0Y6bEfVg zH+1wz;F8ny*RWf8?$PX5vX7#9PQwR5!;QZO4b5r?1<9*?b_$Av7)^l&v*nd>*n^b^ zR9Na4KmbVi-^w2W(JS@w2Ai!R@SZ9y>tYRN`j3-G;t$II2v`cQQ;f+s{hVL6r**ju`a`WA;~owE85ni?m2n(MVc4qf=~ zFDG=-vjkHjvnK?PzNJ}^4Q>Y?CzXB)mfLp97DN_qAFWFs99VVS1EEg`pkN3_K5Ga| zl4>|2+71gNa1Nm;v@j{IFDQL;uhC@L`Xa*Qc6dr&tyvq^{>y>Vfl|@hIIVi`RS)_t z_20Pudh%ENb8E3p3)7g^e8+*($Cl7z!wL-`_K2g$kvs_+Xbg!gCjjF?3nEmOQUX^4 zkwC#H^n83~=JkyPrH~DZ zUgZ!Qyv?0$)iO;$+j#Sb^S5DL5&u;Ag#&bSknf^unMnJ6vagj&a#SbV%ZX`Q8PUjc)F6Bi5py8V z7wEdCtL_g$=aD1XBS$_21cqp&)naaK@y7d;vM;fwz0}v<-qHj`W|3BD1zO?s2Z?_2 zz7x4X&A2jJO@i|FtFH(am0tF>S6;b1wJkF05*!&<>1}yGTGhBB5i3kZlCEL_P-+l? zFr-zqL=DhPFw83E4QW`EM9<;?B8i91Vj?pe%Veos=drQMo^pB5J$uXLz1zsJD(oxo zsU#;oc26`Rpxk76&!IhKWovR`hQJi@0ExdikNG8g#By3FSLh0;Av|etO@4nLiYAGo z_b2HD|5`PtM~%5{1V2b4=5`af0zZ!++N|cnW;a9}oJ?5z-P{)9bm&nh3kM-icQT`( zb~cJ=E&C0CJaE|6u5booKF$!c&16xEgO;qhU@H!1V$oqEvpH->{aC%DrpVu z$OP&|2cay8rn!L(6r55Jg|^uMeD@XQr!axs8a#(0)*U_JQmC<`-0{8s$y{e$dnJr- z0giO_`p2%tcLFs#)%EZJ1rcdVIV>ANR|Gj!-Q;f|7L78XKk`|^5g|Pqs$>1ehT9sfe%X*Pd)#@GRq_bhbo>sSGB1R; zgr9d9T5r|^0MVS3ZLH&EtEtCiy=^jYG5PCQaiiHH^f%x$*T(kF@W_z6WHrU{&5i-% z?KpARU&t-bw+*jT-Z0e1r7i7Jn-J?5%-(CVSsP{9WHWOwU~vIa#mSsuNM24z>?tZb4zC!m&*O)XnE|Ag6aFxKh_E?2 zJ#cgcYCtVOLHL`{9kFbkrd6_<@-3}q=pKGLQ|tS6p;6@<3GekiJ%dq1rJ9EBt+Xi)`=nb%xvRVj%Um-RtA+8jlp+;))yfQ4EK*(QLuMU_2IWl=NFd6p zpXPpX+Tn77&c~-c3}p}EgeDGFAPhzfrX()ZpD~7 zzofUSs}V3cq&+Q8Z*^uhaHwT5ktlhNNNFdISe&&9;4RgbJ+fM=bIYf6(%5YFSR0H+ zW=Uw;+?K`|&c#;W>r`uoJVP}K0=f4&MchQf zjveoNvH=!w&tP#cXd#(Ejf0{13k&i?kps!G3alZNPvZZ(@rYnz3I>j!1F8ZcEATrz zr+kB%mABc3JI^78`ULt%df4LimS1bxHJ1HW-A|80=LzyS5TXM?I-mq?2dudoB~&qq z0{7W3Q_9}dZ=X~i0dhF*`%?gpeopztPkzGevrnd^RBHczWGsOe8gI1*v;~s?Ag;Mk z!VLK9C}Ea$)@qnxX~R>aBl&glU~yti16Xg_!2-@qQPeisAcWA}VkrVHn3< zQ9DwaEX9jBo(zH{x`l!1LQ)$WM7{DDMuWz-itT149|FyjdeZT84yZ_wgkVqe!C8fL zu*r#``3eVatIXfpyQ2_ilkwgU2sS1tifQ8Du!__+d~iZB0zYoBP#6S68|Q0ktz`>* z=~RQYoA{cUb%1H58I@ZjR>sj=p#FiMX{c&x#DPN?FECOIuY`1uUbgmW#XjYCEv>hJ zg*}k>i^`8JF2lr=n^S>Ef2fe%+C6y3x}MF)vpv@4Qif^!O!^yc;cV-7J?ul0-)f#v zu0c7j+j=6ENbdUXTYJ{sIXL<02@D5cYpPz}tswg6>$(bz`j2Y&5xA)1M$p*X8ajM(qak`uN`Q;HKnim$mrC zNn^!k+maYbxd!iSYHmh#r+6mt2_p96=GObBKDMT_#nxak={H&RwCp&2WvuDrunEKW z0eqbtVAoOA1~p3cs3cEOQ#ovFRFY(`DQ~9og=~CA-kFduycWD$w=*uElK1Avj|Cy! zI435K?pdwhl45tac$DgUHozK@t;dfGbr=DR!@=$?xwSLvMj{d)1|sTv z&gNih&E&PE)uCo*gy1o4pi=wpyGv+XP0^7HChSXTTseD|MoOKT*4&ovRJga*xiB|5 zv{Yx51N}s1U8Mij`|p1b8uR$}MPw?+_*gFLGGq&B#c7W-2pX#j;<50e4nx+;NP*3T z)%2%G7MX{n+Gozg2QWK0csf6dMBFju4X9N>Jdpio!x_`v_UwMUJD3&r(N|_sx@q** zQQSQKthWekprqDk*A=hZ4)X!Ou~O zL3)tK*9FKPfj+<_0>O?@T)7({qEAr~!dlG*tW+vuoQ!nmMZaHsJF#avKURLsBYf`R zPaz3`uf=f1I46z^5Bi)+*6AbM)m&wlJ^0nw9~U^PD#urq?=JZ_ zC=s1cUSl$JlFYUAc^MUF5Y6j7Kkb=5SG`|E#5{mp%%rYUxd!zCbkP3WfpxM6Csq-8 zZ5vm8fcP~Mx%^Ph%`n-SAvt@1e+svfn9bR9$n&KtWF>q=LUkDFv{*(Sd=JVcv|p;A z3Fl%?bmqc!q8@RuwGZ$aH{BypjeWP-tCOrvxrj|;$!Y7@eY$qnXnkY56f?N2P1|gO zwOgwdj_9K9jYdo)O-_JTS;p-vAzQ3q>I__`pz!irHSxGaDOx z^$|_W50y_S=YRO>7x7gtNA_Ue9>Qu;F@NBzghtyPu38(aGFZex=g|VhF1VHzF^ASL zO7=)%T#}|LyGr9nzi@1~jdjY$v|9FYT1SgID8-%=f-G{IT+GKaOh{uPA9M%+ljQgp zrY4mM_V_&%S@7iAdyg$y9(iv0i>0?MN>;kel}0053E6WsG5KWRaHiQD~5_~ob&Gn;~L<-6{n z$^4xIs^jAw^(p)^W?k)*+CHKNx&MQzcVLP+7~OI*5Oa>)an%QdLrQ(YK8xbk(|d~- z6Z1~=l`sKzpn&I-ctXs}_gV4b?<}PUB)qH=^N9KcdPtv9WlSFL6GA~`Shq<8hW6lN zLOP}Fk$hQ*j7V!y{u6t&xEj?IKAqzttmIR!!|zELtX+d*+!yf>ogpjJM7aGv0xvo2 z9a*2m9!M!gcAY}Q-+KV{Xr8atqj3hTy$oyfw{vqZ+;r2N<_qu4EbU7p z_XF~oUO;gU&{RVSUy9#+{761JKOf8-Sq|L%c6aEm`4E(rrQ=T6bCi*_{Hh!q8cH=p z;#_3ur6q-+q35d&EWiHsA@+xV*Vi4Izl%4rI0q}x4W|RP9w=XWapgDR{L#bN==}2Q zo(y%c2 zWJSmbx==Td_|DOvAq0||S+ls~4dWm6G4(ql`|0u`_mW4_x)syV{vo7&2__LQhV~!7 zduZtHLK!y}%@*(m_0;5JWRLCDex+47>zcETpf=5w}; z_eGmzl5~%FDDG`hA83FrBS!faAude7@(!1PrpB%=)eQ)Dc|~lU+a`M^ar^3(st7-v zoXjKgb#_scsmu&=O(s$98B9aPsHzFc^0n8NlR>V{@NrzwWe7XRPtlhYNB5ME-MYwn<#p(c z#aPUf+nURSdp%Idyd5oV+3RzWN>m4Ztg@D?jTIJ+4h~jt1I$mqDaP)}Zp~MA430*{ zU?N$`52f;3v-xNxD%yjo^3+s06|{?ZOJfecynx#ug4G2v$5q9aTQT78Qf2lfx^)i9 zwT3%(7z{hT!@0?8v%`fQz2o;?-4*Un<`apYt}+Z)SKqhy@A^)xD+jq>0QLL32$L1QFZkJqKGssN`U}2 zcy@uF)iA5zKh>>RNOfULBp~n%!0nI*6v=sjQdF8sBI7Zdgf*}@SKJGc46p*Szqk|m zyHr+#nZ}NN;pliNE0&6Lch40n_Ci_s%2YW!Jv=f#IGrg^4Hf1}bEhT>(M)EjG?FjP z6&@rQtWsQY!$m`0nv&%Age9Q9#N9!!Uo5MpF4wLU|Mb1ol1x8 z5`HD;R}ac}kmH5U>JMQKZdi!IP^B;u>IpWy_De zQ(lVo-pJxNs;_!uEROezn$KQ98z*2l8iH466{J`0kb$z@f%r6vlp;44g?XftaI$H* zDW66v*R6i6rcd)<5pXzn{$r`A}hO*@MZT-4ja;m)KBwD5)HC3xd%yJUb{E1;Jg}#~!=W)wVji zetrJhyJCCF8xO@|hc=e?+&Jl!Odgj>vdy@7t|Qq9KErtxYOfxKRiA2;$?%;l#ajJZ{@-))tTO8MfWmws&yjfvaXSD4=*%Cgp4s#Wv@Y_=Iiuw|#if z*)D}y$Qg5{>UGA3I>?y(j8*fK&CoX5DE7mJfEi?fbM+Z#+oDCr=YT>DeZJPIJbNQw zPWXKfd5J5S;VsVr5phsW=UKOmtk>( z!DbOn7C4b?I&)A!ps5)2R^le8wkDH5=}+CB!V8$TWSCSz(}CYbP>fYhWj#Vd$m zv>Sz>S!c6ojVWYueWOliX?DrJe!tkBlDoQ^T`s?;tJ&fx3_5KlgGTVTM+0lu>J3em zikTVoYuC~Tg2vF$>>MmOEVg7U<+5~j$*FeH-&QJku%JoqRQ>-HRSU^29MMOR@<0m- zX97h?CIpI9azfnENAz_V2C|A%W=FGnBm!CHM>?;zw5>8dVw=i)V-`=`Xw-RvmN|<> zuSe|%RwHDuUnPMVRlX%n@^qS0%&SoR(oj-NDJ zOkT6mz}`W=J>a|eS@IXW?hok+0r<*Sk^GNndR{uEnp}r?WQu~-JFS6acSI9tUJOJA z!rq0S^=)3$IP$!^uQ}?8#(OF~iL`TK?3xV|xBc(*U@A43W;W$9Hu>CxXD3ZIcR4T0 zqq3NvA5~uZ#f0*lkUAH{m$*xauVGd8C7%~XPb{L9A?C~3j3Yp&M+SK=iTK-W8cCaW zk{`nnXQmB-2Dxlqx{En0a#Z#NJ%VU{+wy{2^7?~Ha;!WkdF>|C+@Q3}7Ppxm&dhlw zQJFuH9PkVKnq_ypyS1+6BeHUTi_6@^qBqaH>1flBGFMlp*=ya!{@{;I2Kya_jjJ?} z!MxxVPk=hrw~XbDIO8r2W;hL(73LQ{8R!5o0MQI{AC>BiuY=tPhgK+u{L_WG7B=hj zrh04G>GSUBZkbAV^fy^`PWx9kcIVe`FxRAucTs9v1+ZJW2Z+_YY!ZD}@XOig+@svp-|9a?>3s(54H zF+uMN2GUppRle~7;V@PJVIILZN7XwbS=h6nV9>c5jvyaNU7F1#XTZ<}uZ?P$&}*xm$wDyC?)XRW6@2HU%86)-F$rGtg*E_p&oZs0<&Db^?Rq zXzu8d?#|e*x%N>1bh$j;ul(2xTlAqc!k*KIlG%{2DdqXlhgz`^NG}=|YIIU2X=No! zHINx#ALs5Rgg_wt1Xz42ICQ8+Dg@6O%UeJgT!HeV9j-QI#N&!ft+CrAmzbRHD zpX0DwSupN!(W0_f7IqWFtt0eAkMIjTW8cv%U_D_?aE?h^;F1|YEr>Gv!)7sFW;b3s z6C3=yHLM&rHC@e2P2S~`akHO&suw;l6jIk+-;1Vx!ErmI;mrJ zM^|&pzb$ksS?%WQfjvzP=-VcHz1g;8rn>kX^4^i`|3mEc{{xB7LYPd}W?wU6U-df3 zB9SmA0-`6BR;QTL_%yV)S7)zgPi<0Gu`jcRPxc$d=0wrnyv^8XwEHvbCp(l^Is~g! zFAD$Xou6ntqxa;}2D{O2(=}#v4NY!?$)!xOZwaO*jgHGjwYFiyQCrsdYL{Q5yi&c$ zg#&yKhd}37v4dM`XMZh-1;-1eI3jSc7VJSfBX$HVLf}$k*(2Gpij0IMWe+n&-ACjw z8>>|E$$}DNFBg)>gvXS(v!kQgVAMSe#H;U9=^PDH# zC_F70Oa`q{lQ$dA36{ai=(eYh!Om#M(^zH5B%CvtmG9^TgUOQ2D#zIE`Gmz}5MX#- zYNyiSG$Qm1Zn1UxuuzG~Qy?p%lIejW-9#r>wjd3v1{VYq31CDNrITg~$~yueDW)}> z&Y(6kJQf4vZjZKBMcQMEd5SYx-EqHry05o5y?WejYUpcfDh8xRd47YT-qqMzD=e)^ z8|o`J6>Y)e00~-7Cvk8eMw07A#4n&IkgtU5IIEuEX0;2a3~uf3Q^Qtqu$q z>WITmnX0rq2<%m(*MXA-a$y8;lWNDlUmPFbHvv^KZ$2m$4qCj??3>A5=CFCdrj>&u zw_KfDez~dCfIMB#KB$&YELPJ^oOg69?@u;dTz-~ zNw;j5cI=kLUFqP~8>RxO%(`Gd*{eTqDj0*t!pL^}IwqQBbN=C6=k_{gDeOYpW1ub7 zN!4~%tukYdzr(HkD2Rh)%|~cWRV2s2bux!0WUXt)oo&b`BT!r#jXGmvb4$3ZFX&WW zXI{VZZ>+Jz8kK(&_PGT(Yi%}*KNii#vL1`+Q}e=wV-K*zQRVye$j=ZpRyz#&Bdf-0 zb5AJFf+`=s&z(8Umkv(;4Pd<+vsCTPzb=@9h?mT!Y~oc>9Q4o3_yWehy+~f@qD&2Tr$T75KWc!jwLWP(WqBqGm=+Up3Wvvves6fWN*ei zVN@aW*n{~8wRjyLA7!nUpCdHMV+Fhr33xc^QDu8 zzb&7v_w4W+wDfHDY6r2Dibo0-bY9Mi*}*A3gI`ESW5x0i&EScZdo65=Z-{qwxOzR+ zj%GTt<2_z&$kNqL)7tevoHVU$dtjaDL=u799dUL(yz&Sv^+j4CpLt<1q_{DXC&^_{ zJ!Zje^azSZG&FS=V*@U&ha8QmMR+ic2yq=Sogakf?0f=mH(F4a$!7Bu3IOL0E5(Vt z{9D7oXA1)($w_ZMHjv#WWWzTFe5*UV*WL&uBNv-9BG2*HLqoY~Npfxc)85H^XDL-+2dNm7m3a&s4QQWP7R+GRlHXveGSw=qL(Kia+00k5&`0qmyj%%;=yP^F_4$?p3KUWE8k(Wkx>|?`x3I;Y7aR6ipgpp`XcMh>$F$(29iBy zGXwubB~oCWj6$xFAvGqjzX;WNRmiRnWMSG^$cun=gJYyqpnM(pyxmEKB*-m{;7SKo zeF6%vKg`Q1s^3gyg;96eTiktcSE;n?;9R+|^Z3r4L!*brF1#!W1uuK^!ZW7}Y-^#g zZ(m-hY^&ftQ1Da8jQ?OMpTB!|xxDKD{kA-`bLXdajvfAPp;*r53xzjud*cn^?nHTT z>wqvAC&YD16xO0Y8*m=ni_?lS&LaFYh0mEMnNdCwte*5hnP+v#aH2YX2$<4GP}G&O zj}@<)gX~7`F;LcCKQnKBKK41Bn&yzCd`k+2BzBb)D!TkWcd<|T7Q3nsx!aFEAN!*c z$916g-Dv-tIFCH=@RNQT;0O3c=q*xCZz-#uojY{)@SAMJY!d{V`BC*L zIgs+pG0&a~i=RFF20lLw0_j0W`IE40rHCu0_&!nFc3?h&@JLXE<$E@XKu|DgIN3m4 zEf zTzW{{TlmC z_UKNDx%$}P>DkBS;W7Ea(&MwIrTM9`$=JSeZ_GYxAB*mE54p=~yOg8)2}mtuJEk`L z5qJ!-`gq%v;YPunIDIh-5E<}_yozkcH_P8l+Re&W%CBd|xVTH4i0zh#-H_6Ro4^VM4#wedCN4^_hfA5gD4T|Kz&OD}pEv=$ z>*@1nG8@Z&x5wYw(Gt$EFDY&8$2IsCrSzGHrtiG74-hhoF(=f15d5=;XCq#o0s!3c z=9^(4CXWR-w$mApIKK3`l}I`RYR)49!)$?12M|^7L0OTgLcj;=pSYWqhfE$@TRh$t z_>*&dtls^1_^@W+!)m}9CMfab(xYV2kqAz&kAv2w7O zeC)G(Zt=_9={NhY3&;~6J+^J;malqlb3MN0r&a&XOUu_14|PupC?N{?T4_U0sKD zb*Ea(0=tWtomvcpL?6O7qL?)3f3S-YOfk7BxX{F5+lQ7WC0xim~ zI|kY_Ya{F0H|Xl?bsIL&xNHb@2j#}`Zhydwi0w91Y!@AES+_xMv|8O3%k#Dja-3p< zX)FsT8j80TG5(pbCuvAkEVgpE01rq!=oU>z!0zs)nt8PZ`HbljTES5#p5MT|Jf7C5t}m4j?WIQWoA4*^Gjjp zYp;Fb3(8OM@ET|)9;D`YIJpEx$Wkf_6RlXX0(D@j={4%)Qh(4Dp5R30A-sn)NUIs3 z)i^rIV8Ffu$tV#{R4R!PyKUH$xbWg$i+zONpB#uY?Ff=fEn$nOyfi{Dg`rB~b^7Dp zM8zT|`MQ|ZAgPCJ&6 zYRFpX5@Pg$WkwKVweM0gpGr394Rh+MkBN%iX0ulk$`K;aEsG-~qU?^+SLi`Fh(DFt zbATnW!16FG+Jfk4C4qc>RLDS>KxHrQmd(b-Y_?i=_F4dquyovQIRDawGQ;2p7Hgv( zNCH6Ry@#C0Myj1U>SH6K-%eyglTeN=9r2jj8&Ih{TOD$x>~?d~+($1RZxDDZA9B7o zA;Al$c^-m>HlhO}6P%kQselEnfz_Nh4|$G_zikYPGW(9VAco~#<(;;mq_eX^o-9V& zgwq#(W0L@mP#CcLqqcB(>h3ANM;G@^1CI>F{^TA=2uFz6)${#IpCGiW8%6ehGs2!5 zQGWB(izCWUnIXED8D1R_9vu11@bG6we!OAis*w#3UA1l;<4b%+&DWqD3S8Ak<{O+1 z0i3LKrc66cl?8Qm0#!bW-B976o4UU4ZZ)&Q~S8!|?QPw=Y;hAURYhtlAapiXpZ5W|- zM79^z=TDimIKO%84wc2Jfy9(VL&6042Dn25Y5klS;GEQqS?nFe{h{EOPP?IWZZ1OfVhIJfb`) z+4D)Dv||J`pX`3*L(hC>Lp+k~>F(*D`V9IjtQv%_WP`4xBYxNH@M)aQ-8|UAnYDHg zvgzL2dz43evez8f)(a*xWeu@!*4uPo94b=D|U$gN+T|KBO6{GdASoZ6T%` z7$3aLH-dk{(*w5-ZZn8`J&CO6t zQH7O21wMfSe7FM{21QExTuK0Mf4DHyvo?DU#^FvQz%4X|>+=J54A*xxYK+ZZ9IC_l z^3X@(ROCjuvuAr@%}&=J0$yU;V%U)1k}Z~Y53I4qY=Js&$C}3L9}VBRZulctq2h7x znN`BO@2qlSEdC3|f-HlV8wrT{uqa$Tuy4I~NZ-(yqhY8UxMuLKE%$V9{A@;es&ebV zjKRLw8{d1{dvJ7ceo#4fPiFLUuqMNHtE^J%CDS;-R`L6eg4+0S;RE?f?r%M=K&P=@ zSJ3oq%MIK{wIT8p>Su+ewlq(Ph zMhP6mIEMWWY?DYB3kd=*P^DlePv>AQx8uwp_$i8t$aXPywdnJ8c-zFGy9TcrP<|I` zi{}~}^h4V9`_2eHK@eI6y%4HzsuT1@lw~wV>a?xeIxoB+cp>ORjg58sVx6|mrVG{M zyV^GPhBxlT?L`dw=t1x4y>aheyJ2SF){63uK_>}1A)^({Mr~B5i)xK#L7PFwquC+} zh74e!v{8d0YS3A<8J!l1kF;hN=jx_a5S@R|*#e{mI2zS;R|iHPxa`0k*RBQkU`n)hfm>#oJ!y6kHvE%j}|a@G@j> z=)s9Vr{YB?g3zb|h6g_q)(q|Ml5KgLHQy{p+=AC3dRrpG9r+LBOEELq@Q}!Qdbynq(ILmXN$xEK z9YNsCXC15a|Qli(%uHJt@6AV z_j~kdSw5EJqoWTWAM0E4v7#ulEGe=qD~@rD;}|CxV@xn14J@Q-NYgZgG|N&N(vS>wokm8s2w|?a5sNd4D*>CUa@?6?4#jw%PyqsUB z6eV(zo@*uB>moweWn{!$Oz3(KzitAT;r!VJfYEQ*Gn6}?jV#|tQU)ZgG^C8>rtSsk7zB&|zH(#o7UgJWbvnTr@m0Ozre0B%ll7Sa$(5xc5Y#r2Owb`Op08PVSY z4(ObAlRfof?S}o11U?FdT(te$p@ocYU$h5y>=@ZjThw{|K$+CpywsuYqJ88|tr1lQ#eyajvgV{670({%_FA@ zLSZ7INphl8nwY@50B|qdhn7KNAOA0mn5kZMf}CDZb?YKq(PG1-0j2G11qjSLNbLs0EHAq}c2TyWJh>B`XJ)4CS!>82PCT8@&ZS*cOgfLZEUh zawI}XjU>CR01HM7Hl!yF7ff)yaU&;oUe2uWl!z=zg19rAI-bbo630^muZw2=JpoKd z`e_g*6xMH@$>(QSJP`1;4TQtY5e^Ro0s$uQ*lcIdHCwOg;dfM*dEcKIIfr=mPMD^V z(jNN`EFrLqA%LA8aEsUN0KUu?R@(B`uKRKdVxtsI-+JHf+>lDoS=BB$YIeUPx8;Xh zSb2;7$j!e?-|AFSU%Bt*WkVgSQmJ;;?rU6Ox94G{g5B_g{|md!|AfzgP`I2ymH56a zfNoLA@QK2a=3~!{j2_+-3Y~p#MA$R(?w)K=zhfgy-8*uhFg!YX@1D?PXb*&t+}^BT zzY8B69yyF(touUDK+{o_w1ER?U|FASDGpfJ>Y_cZAn}D|H(I3pY-F&agjMX=)YQZS zd)V>4`6r&(@!lb@LcRB1ZO>Ehy(jcdO-`=*%xCl$KJyv&;Mb1->Q~1P{%Y@MKGXjz zl+e(y4Q<(oRvEGLlxu=etwt7Q$gm`Oky*ACApykXXu)$r9Z-A)RRgSTYDcSem&*E);eLhlP zpUwStj=6fGh2-khn{tO&uTB=CJ+I`x_BC&NF4ykG1MaTtq0A)|;7sH37TWL%BDskJ zwV`Jg#ny-5^dwGuav8QG2BaOHF#`nRjZW2=Rs|k29eOpC&eooObri0W(Ra6#$sJN$ zZd@D(7o&=Y+;%oT>XIc7ilVtUTb2*#j4p05TTnus9DqnP$g9I$y>KXz!vrY#0t=I6 zk)Xls7qcZB6{+b*jT*$5rl$2;nvLi$htllXv@keV5&bmPj-_+sGrU40X?6Q{e7g#( z60CbvKk^CGIX+a39n3iAWV7wY=*^^BY@Qs#P;}Y^!4oTgPDTR2XR{K=a$h6_6|%KBZL8ZYY&Be8>A&hNt7O%f@u5> z^9c^n*u1bfaD*7V`NAGU4zgiv{|CGS*TKV{L{J(>7vRB2OU1)O;g*2JiD{U`;Z8vz zRvUexA85*`6_9@T4WUR!=^f~=aJoaQPQw0&|Kd6}FieI3Yjv3Hf~C_D3uOnQO>T8C z*AaItT_Ko!th4NPHFiu~JJDgvM@vq*!(mGFHuh$fRf)0X;jCga+p}SFw9D3^fcUzV zF|bsMW{bPp*y_&3khRg~0R2xU99}Z6E^XQKJ73%;X4SQ6HSD!pkl0>m>vEs969pY}?QyKL>hFN!SzxBKp}Ke^$44`Yw`H1>!3S0~x!=DST- z*%ZjO`eSalY08oIvMXGk@4EsmE}vWfnLonbT)1!B;OW1dq?>wn2w)JfQsKX%g^H;| zmVS8g5)%L7Yu(yU_by-a+a?2@oPKCa9J9KK{ zMD-Jc{T{d>%;C-z&Y4FOyM{(SGot72oQ{!^esyuC2P$>#2KWYVg8%1Vx&Nqv!Tkg% z6#G~G;K%-CtEu$Z`#VnGukiEv8r1hw{7f-&f%?Kl%KV8K2(OV2l%wQvum}y3p7XF* z&%PnZXWxiK*w}%=knTLmez0lNqbtLYf*}3m$(1K>yUp0!3>l=qVI}$jd(7Nl4{60X zbn1V2MJ4dp_2=}8Kc~--fgSrZ8&OptYk2-Qwf;E!s&aVxuzE^Wh5Oo1s2ys1yW027 z_6~Kos&=%uU#;%$XrFHH?Q8GYjZd)eehU5aGxSTC?8&X(ZVq|3c{!~srZYL!flr!^ z&;+Lvb{{VwBHk#{X@QcV@M0PnB{ap65z>X&)3HJ(<4`n@YE92LN3GfH)7h+f)KprZ z%B!V>>lJOUwvK3g*5S!3o>)oEY3pC|Pnn;pK2XhOarcyYiq9R~8GY7FenS?~wT1LQ~eoI&No2<91@9gVK(!ez=khzFM#PCO*`&%R> zQ15!-WH|3vUn1tG%K1O7S1aw)C%$xs7cei=ksRXXmOG3O4OHB1!>LKoM?|{FHVE}| z1sf%Cb}2S;LVun&<6yd40cH3dgfM3kN(KGYEhm=f-}z>>i+#SUudhcAgEagLa>!^J zKhx@cBq5^Xyk24?ROW0KHcQ`|s2$OS=MP@cvhQg9N3`$UvdHg;fT=w1_gk@*K{}Xk zqSu{-3<>#h!N3TabVdIqZ_+L~a$owy=1lpVfztO>yOyBAJ9*=N`GfQ~w=98ii_YtM z+uRtp^U7xE<3$?wz?n0rE@;$Sy+1S>H2<5Fj~6lkNmajYlun#E!;W5jhz|Dt^r8ba zk8@}yG)3#eDU3KP5WSL|{f0SCv%LG)^&cDIX1NLzKdci` z+VtqfI&yy8D0eY>^1R(()@%cJl3!E*EF)^^lP7|Su$T%y{+?x zp?>!3R`k)avGnMeHiqlys~2zYlVfYNHMox9{-Uim_O4CBw6GN#)c`DolY9;tQB*$2 zMOK@Xqz7Lftk7^2!#NDW5%+MqU}LU3he6X_gpU}3Rgf?9wmLN=#8G0z;8?hyEnT_t z+QGpGkUL0p#B5A4TU6C*QJ5_zI;_mL+-7TPirGwx39exVpJ+R?;}eTbKU=-A%Dk=2 z?fYAIAP@}%g^v&7m#!WBUzViR&Rpi4)x`X^7MtH}LAY+S-I9RQ6EPIc0#t9mXt(*y zmYj*TG?|iCR_^HOC~H?GOyt!4O#*4*%4~ zSfknDh}ukTCPC;xkFYkAE$VQX?J(|}Ey0K#DjWK#gTeFO7ztX;CjG3|U5;tY>omPo zNTic)uS1Nzh%Q4r>s?lkEJXp4Kee%_$!cXTArIpN^S8tAEKuKBtU}BtSYplSJCj-P zxBGCP7h0GrW-=>ci>$=2Y-{guz)8(aiqCc_xu(&Hq?^}ym54`+IKn%LHxxKNLy(4R z1b9^vydY2;luIVC0!OTIAQb91CL&v8exxw1-_O%4oI=h^T&K@~Cls2}TbxOn*rcCJ zuw@`YurB8$g;7 zM46)Vf!$|z^Ew-6vq)n`ngYaWP7#z5S`od8H&iI5-5ih&iakV1apH3x#hRJezUOcu zvSG+xo*s8pt(A$H5zU%gmx&De3&MTlw}0h}1u00b*uE_gT(%0wVI@1UDSd4|oes1u8{)4o zH~RX6pJDv|jawIicH*ae+(H0gBuP%%S^+#Y*aTp==s{9j20LYUL|@0A_|cDkP6z*t8srpA&9k}F}!RuKfvRxk2kpSGo@YegDkFwE!S?D;a^2vIsMjT^ zA+e7^%A~yxIuPPu@;#<#GHQdXt=oqfr78XEZ>@jy(W`G*?!C_2dmXEqBhl|6qvXEd zfAmpyzy54rAM-qZ(@hK3h7Em)SjiTgLj7zmuA1!{8GZHD(UI5m)3So?BE-J&)1R(h zjayFXQWXu-4gU=zuAm9+g-(VA1a%esLf{5P%+mDm!CaAU z+ZahHAtiO+#Ia)&6T*E-ih)Wd6?RHVZVKQVk%0bxZ@X=R(u95M-~bIDaa+#H@;0oJ zX7o$lRvVq~p>VMSwr8wSly0$+>XIyiq{Rk*SCZ{UhrNc5)18NdNDhEY@VNf-^;+sx zZN2j~+>Yb-(&aX9YN$)EEMb_GSN+YoFD^mi531-#XCsW zOn3B@KBVWfABuMU8Lqd|9U_D3mq)7f3supY@QBlU=pUF!p<~n2qDS>OLiA3^=~9h% zJUGbdojv$8VRuf4LP+yiQIsm4D9W4XzC@o|aWm#D$!S5HIuX(su^Y}s{TnzmQ~e!^ z%W%VVM&=cGG$`?CmYZ>7e&f{vZepc4IJ%7(gybh?NsL}KULpqYeo9Kq*Yawt<=Z$u z*biv}oQGJ(ped>sIA=7p)!$+7B6HwORX>;?8QC&2Qt&4dxkOAcUcInyAA4$K^9Zib zB=WIXKC#bu#n)E7EE#BDBQnV-jfm#zhc<;F7_J@D`R`(O)eHabKBC+OnQmhHcqFqv zlA3!R+_#TcLVrFM#G5f?UoiIKcr3dAV;fLVL{B z=gvD9)?w8uUKd`+RYLHNJ9O8osMd}e@oJoovhQD59}oKH8F(K_4~P+qA|^u%qEL{d z1tldDFldM8IH%_H18iH|woS%B()=OZ?2;nZ^1aV)F%N-v{O~vXi1BIjk*P6wqL(akHDvK_ovfB@*DN8$3F(E^;W8QiKWc zqB-}P6&I@*945jyAui$i2$EXPS8YIS-+y;(uR*U+}v<)10p9_u0v2wu$_uRiva#H zA!FirbBZLQknF0^FMwr26l|&qk(9-Zi6JB!l25m#M>OFeq-m*|dl6=7D$+Y}=BkL* z%NA!}X9OHtbST!}wZH>Qb7>l$!61% zCzH*jaKn>aM*n3^%nfIUbL<6AE|=9b*>0ai*04lE3@TzQ5mD{*KB9^6r$k%{u($Fr zW^*~uq{B7$u0Ab!gj>xftI2^JVftF9tJz_)m;kKCy`vdv!(5I3>1bKubUB*@tI3>T zwx-5Lht*`VIvN|BY)t>rlJ9)yrfEl$&14d+tk>pfw3tkmM#t@28y(>MGkwy8^vV{y z8x-KV=k%UXqfXVgIYgs(MTb9DsFd>&yTer|SMzTlJ66Kw z7~6HsxCq-_4n5{@xg1k2`}+=Y%Hh)gVPL~d6@tLbhW(?XJ7#8XotZf>I*QDI^Dp@R zYP6>VXL}E#Qa=+`LdImvX9S2nSg4p;zFgG|I&DOI&TVn3 z2{DnJZ68`aTNfFuWFsC=BwHDXg{q~jXCpOiqbFOc=3X>MO2dykJ&J2Q69VSQxkJt8 zQmV)NR(ed?Ol{fhN~AN7i5@FB5EWs&6v>tchX>2qh~!eWAa7_;Q(dVSwc$eSDVN`6 zeSXj(2H!y*r*uJmOGt(IcRY&ZV5(EJ+pX|KE|8@MNL7TzkP-Uu zY*q@ansTaujogL@D8+)&P+BL@NHYR0FQ}+Q{0C!8H;!Xp4@MYYg!|Z zxBj%Oso?O?GUy{wmYfJ-80hHf^qY}?$SuXQZHnolN2lM_ zxR-e%ZL+D^sVt3o^)FeQy&YZ=Oj}?iwXjBOmrbyWQb%ix#g0%2o4Lu6aX!)#497eC zZd2CL(%9G<4YqvJ)6uy^>j1h(^EqwsFpG9BbJo{a0)BQn?+Y{|FSf2g?}ufDy)7B_ zVS9t@x!|_QGD@UUX^>~e-nAAx9@y@;R?bO!W^<9 zc5NMeY?K#mHgW@J+AQb-N5rhP0Fk>mXlG69b6FbZjGR-UTrR{?!3I?HqnM%;Xov~bbLs{4r%k9(uVc!IOQKJtd!3lg7SL2*D;%iHs zp{SwN3bIiHYY4qRNnuFz4%rq+hJ+0nGJO3tqHOSv@jc>I3FG#Fs=g-%W8z+QvqQ57 z?V8=LIW~v(s*{zAeegg^)7Znf6E>=o_);t=?!$kl9F7$I0RDTQTDjN<`uiHPnWi)h zdcz?4SVA8|+oZ)ur>`Kbf9$}}(1FL+n@U5sKK?Ddpz)aZ%ebH$*S~EnFsxl#he$w6 z_M!CTwq4sNGB8<{Ym|4kCft|4;-;H#x?;%^{*dlnanonF*YKOBxiPk&2C(FTwE>2N zR%E{Dne)gPS~n9WpgL1#2Ys54=p$h5nEVB+{6ar2j6P$A^nd-mCF&pf;JSt0p}zxu2CbwT@D&ha}L#q%&|+E<{IU_5&ngtS?* z6Xk(vNKQ)Zt{;qO3!V?%R(Z-$`4E@ z@;h0{e0?xJ017T#2ND7O+t{;jobGw8vsCIF(Elk>OyFw&{p;fSPouv`W;3{TDK4LD zXAAZO!y${>qJ~k!>fO#vhKeM~ajp|U2RObbo|@NVj#*?D60*_^g| zVPDnIL;5TA4twI_UB$a+zPmnmUOy2>Z4Tr3N3hAX!9oPP8bJ?>HVD%I7@5f4P4f*I zVPUxdX08YRHNv#ylMiRt*G7(LBQ&u;8pOi9A8+*I`%ac2HPDcD9*<|L|{!0;`FB*>(I)Vh4EhWqSVd9f0Q?w33Ph5w-y0>R2s8_b}j@2INh<+z8lVp#e#DKvimAQ3020D<$fG)Q&PoE782v6<3x2tjS#Py+*d1VS`uY>B zI}+L5BeP6jx}_!33407fc<_&`to;_*Cr15jGm^mHg3F0pZZYgbhTW|NnmMt~^iiI; z`D~t~K6#VpCG#{Y%@sV-Kz*}dgL5kVdUj9>*)_FR%g~dQTGJ(Vj~}|hkbhhOT9_5Z)$J^UJC3?MKAG^{Y-tj41 z{^V1iGUm_UAsfyIupUNfl26r*`k= zX~^&ZYnNVL@DbBTM-Lw!899vnXE8rMo_&~o7i;9^hQDL_Y&||wEp{*X`EyIYSYen` ztl{ra&OwwzxQn{g28(ajZbHbm9ww3xsi+&Bf+pvXDpV}`f#{8y(=pagIpouS`d*bnr}^F2+Y z0Rd`Zs}EOppO|keEQRNeC*@FFW zkv|nh)KSLJHS&cdoOiOp4nUyeFwJL-62A#kz_*65_%Xy7rC0g0m=XdhV~FmNLGLX- zgs?Lc^fkB}c-y%rX|Y@@xkg9D@<72gifb0j9nI7jGk zLC*U9nbd~-x8GC(GA~s2 z4ozgIV@PWcQi_eK$)SnSTURf=EOmw*?$=+KSoOje*X+%(kh)~alK2#rJBzO-37-Vg zD4c&}U7VHjIT92KB7;+u>_y~q2Z=0BAi??S%naqT53y%)e?pFV?4gY2PoL0Fm$U0L zCE*qQy;6x;)9Tq{gzXllfStbGuVq4ZPfQNMI-ZEg9*<0G2eQv>Jz5}z#%Z@YU-ki# zI+q0Xg*$wa>QGhmno*&rg_-r>UwK+i!9|eP{MwWH=~8xm7L{69osp*}C!aohjI9f5 z>5#*dl2OCciI88CP%EtB**Z~HOM~ZdE(ZjitvF1{$xUi9PE`79jT+oooD$84k%CJ| zF4o0ImUbXBq3TyXQq7)_x62884GY5`l7orurIeCRE2*dNO?mWt@162IXV9w%uUO44 zNl9cYLlcMZl5x4~@WfChn^0u&>|Of~?U*P6K!NsV;-YX?5wnA+nP1Scxb)$eT-YBt4sgWDde7x=Mkil zzpA_AuS3b=nl(4Ak*?OJy6|zOOZ_GB(kLDIEAu5XKk)fHUpD6Rhn5YCkXNMk61+>E=gd#A^%;GbGWn$xg-yZ#@dsE$p1{? z9}3Ul$uFS@2V+2V%N5L=^t3d+by}i3VL*S14HWp4F`bnJq_Ks1vPEJKv9LrYe^N2nn)NfQdk1SeE69m6I-KC zz@p%JpYBe%f^tv}iGn7FRI3nlZ4P?a9#|S&`aw^Sz32CwR6>z#LQp)Rbt9RL9;noq zx8SN+hWNC*A>w z8=ztwGQLd0H}RC@ZlK&KZo*0+lLCIKms!1(q&I<$0!ag4tH2(DpP65pbCXj*(kQ2- zD7drv5^=vrR8peL6ia3ujlFJfn^|wk*NMqF4 z>1kI3O^r>F1egHTXbe`YjzpWe#pCHWyIYd&tl1N&$@YJC1>i9cj5`r2>~=G)u?hJ` znjE!U-0T)piU?|~_QtqfYMQN0+~!I9TU|D9szqWMm(OBp5|b@XLGm`aES6}J@D5EO zf6*+vlC4gU>@74qL@?QRbUN)VD}wIkwp5GDRBP)f2Eu-SIIxzAm4QLvydg;8B>Vw9 z+;=s6so^1v#)8hqknk?%y-mJROatEA(Fk1Om=Opz*6XT^sI7np!1`8FpRs z{D`=nexJ2ICW^-_1?NUZQCcl#j7rBj!*8;-Vw0I0e<@x~B&s8HH+IhG34g#R3?HJD z-I+8-2mvk07Ka%F)MSaax+GzKfb2HWX^c>7(9~WZAtk9`eC8(t!;Dxs5ATyGcqrj9X)(@Pl>5ZXO zd3=25I^p(ECR5F3UO0RDsi%Z=HMcYSy=&7OK@DaGY~Xf_Fg*DQISqsXl6Up zv7wkI?7&-@NJO|f?Ek){+5IU+Iae9eKTrZ51k$>L%IgteF_)6eL%y%OFuw<|zs(~{ zl12^r7PpArNJj!8Dez^3oegJnz$!Q`C0B?m=o54~x)qma zj~0u3OxB{@-+@)v=$F|tKeSiiXGPhz3VQ@%^?FwnH|9h)Re6>0`JJNn0&l)T;Fv3 z-Ceujsfq+%Lb1Er+oL|VArSfWE?kc9+SS`z?w$HCmOFd=UaVXue^|l)#tX*y(s}!v z_ccUaz|@Nu>ua{TTCQBYvky^c<3jW6N{sU@bK~5}^W2}e0_q1nCKgRDvZ%~?q+!j2 zxbLecy^xI=R|#%Z%;tCIXB`uA!^1ZW59cEp=QdAvJ7oH-AnXpw&sm+GZNXqjV#9K1 z>o#1DZri2|Z63n)2f2{nwauw*b7mums5AQNzc4?N09|E$W%htEKSFc!qkLSy;rMGn zWo(IHh6G=X#GDC6XoBo|V%M%;PDL`Cq4ro&zG3IFLbHy+{z`e$8#vc7_HMCrXR4ryF7b@>wi69oU0|(t1JL1Z(Sd+A@y%HoTroBf z=b7%Qzo^a=z}bIhZhWt5*m(Z_w%F)`h}eMEx3DNg?>xMBgv#fje4M6`SkA%Z*Lleb zbGF?g+b@SYs)0@I7R#?_m-*x3QGNd(vs+X_P|bjsTf^~LHR=; zF?+b#VPX8EMv;H?c^91+0pT-Y-*c8`*G+A0VK2MX7pCd5?dVN6JpoD*t8BJp&8)de zh}vvXi@n*DwU}k3zLCx5Wo9NengRc}#>|bP2`>Y52EmzO%&B3lfkV)%B_3nlk5Q%6 z*VybZc*JMYFDnL>BFYfW%7spfG6$Rhp#fxr$T96fHsBAXG$|O` zeDsdHkUMQ^A{L82I zSJ?M_Rm@hz%0uxfk$G{kL#)9ird?n>6%{+umj@GmF(V3lFLspu-xg=OwY?|qbTl89<~a#`2OCsQeKhtL@maW468q?vHrpi{P}SdBN3VBxyPa@I~Gs9_NZG7bvl|7hx8& zmMOzXLX9D1O(;Y6CQa}#?zCx8iJwvjMP=Iw1iT_sz_&BY{~kd9jzVuU&TP`DQI}c!_=iX{JAQul z)r*Y$0hnh_USyn&{l(A~=j9XN=4tkQm~>*9rGf7`%J$L`p&uY2r7oW6{u1(se4P%5 zx_}~wK0&g{SLp7??6>vL$stT~qs<1t+&l^e+B~`IAeTcITrg{Rd@|Oofr!I!81`*s zk2W@EFFOd-=?NME8iz>m1Q4jFPH{NuDg7-Pk~6sNZuTHy2fHy4jRy2D1){y4=1Q{% zckH>F`*ySR&EMR;n~z1^w@E!ClXl8;j`(<}rw^GDx{1ZX*W+7C0cwVCl zkm-K5YfOLf-i|x|U1Z+oAu_XS`q?8?hF~A;EJy%WvWAxe=@9%7zWVBO8c3?2lv;BjXAo$HK)h zv@$Zi*!U5XH3Gk~bAex+6_oyEk-#sGB+5tU(B5-TZfudQRabLIv-_dOVpe~B2^)>I zDOs!BA`&R0DPa>p6WY;XwIJRrAvRf=z1L=QIukaNYO;hF3z>xu;}e_yd5_YT0G-`U zp0>7FTbr=iC7yVT)+FMSOB>WfTLs5K(RIqIS?vZfsNH1^nythaYE4*ib?~>ru4VW0 zx1EA!Rh5L_pHN1F2}MZ+(O)Esbz$8880**I{UEF_z*fXsLAxE@Oz5q-GZwNxZ98DD zs2i@hUz++Bd=|Wyd)(}v!NCKy+QET=fgIbG%}OCvQ-bFqN6Zy2|f&*sY%ebWM^z_rBKK_}SLBt6Z~h`TeUbO{_fsAK|-MZ>N>k&)Rhs zhj}T0QcKN^){mLZCZ)A;wZ&$$thTp&?!~g^_I|eU zv@%1RX{{OSJOX*J2E;wQ^t8@-+jGeOv3T1N8iLj%;~5OX01PA`Js`&!mmDBUo3IoY z>5&L>i0~dEA|;?x2t)@f6E+WkkPE-2gWSH)=`U1(shV!;YU++$B3In*ip(x=TDi1M z3j4M%@m#dqG&_CQI~dL5U!6;q4zPpH`Ce3%3p&x}`W)-2g#8b!Ufq;xk7l~N)A0#k zVCl-HkjOf<3;Wghjpd!qOY-Yt`{CgcX<#xEnykTZ`LLvd zLI~f}PZI^ud){{ae|L3VUb0FUg ztZXWXiQa2~jkuvN4`+Xj&f7$zo!caA1jW-PeLLMB zZujyp@dql4+R}@@{XNWHocUmRhM=4D0tq`S@6t;PY^L1!-9wR|u-$1wM*ICjuesg( z+c#e|(bw}y_APrf4WMz()Qki!!hL5?rynSk%d%pwRLYgY_ATagyAHDkILH)EM zC;dxJxwfQRjfBIIuo{o6c)*395wmqQWYk_lNR#jO;+5*DSH7h#qsHeNW&w{(AK-Gt z^YZh>DmYhtdkvTQc2TTRb!+t(zo>2%lnZJaF`954YQJf|We3mxo9p^74jtXR`RLFW zuQ%qFk)NRvJC@9|>e!Mvq(RyU8vtYxJZD(ZfYQ&ck{+R@n)=CYTK<((<+J|b?qKm2 z{hf|gf8Tj>aW`K$=Vg4vcGZ_EmaQPxv{w(M z3$LZB2mB-XU}>-ZraJs%?N+c|;0iX(Y88e!?e#+X&}*q$Hkcpr<2y%&)gNo$HNL~Y zX7p|!h0UljVv`<4e*_b~m>(;y1M--^@y zoxe(c@mANq&PJH7Fh4k&8|4u^x zYwdSNLReC~4-EN}_Kh^*jgj2a5HT(FCpl6u7NU@D7GJEN#M34M_Fd;gv4$%`F9MGTGF#6y@kE2`@w;5qANJm4_E%3x4 zT=pU4RZ&<-^q3tAJO$Z7!CZduLCG03(|H#C;69-Tem^4~5B3_afg3d;<=mERBaDqPMN%a4`4Bdo14ZnVl zzSzUL`?y+-g91J;q;=F>0`#wY$Mlf>{;kK^R)0u%=>f{!sJVlrAC9uGl&xQieVwd@ zqV=Wg%IB4V<6>bMad!tZk=+ZbJ76Rz=DboK`quL$UP|GC$kV(WpTx^K$l5>l6uWY{ zQBd){>mtC#QF}(QZV%v;>mc?ZzUNuJR)9j2z*htC$F%{>ZHCC$o+!M4)O|p_4$4-$ z@Lj=f-kn3@SrH~Oy)bI_sBHh}7H6d<9Eh#hI#jt-yW$FMxUc=@<(ZXCjSH=7q~&jX z{^S1O@=w&~bNw82!ncF?<9VrvyR+xz9{aCVjSP$!Eo4D#-pe9%yR)^y+7- z;bdp=+M>-iy0f(@5I=jYE$)^u+qf>Xu>SoGL%&J=anc)3PhjbO!&W$j{psP!Va@d$ zH>D%|PhG=ZxL(*CKL3pNm@pccfAJnrTzqJk!)Am|7pC5?8U34Z1j^jJr~= zz=KB5gs2j+_w@q_qaMPE1(lfXgQ%%q6+Ka{?rV!1wV`z=VO~BBjAw$Qrbr|*p!P*> z$h_zjob3;7a40i`>mcs+A1H~T=>e8;Meg#uX(COJd z_FOF#3KgbvLS$^W#~DnVeLzXLMBYgY>$QYOw_LPdi}e>)$cI+%VGh3cs2{D0uNesZ zh;U&=$%j%w|J?@}m-0$3gS<($EWj}+oggIxGwTlm;8FC40!sTIt-H*`P9;3PZUVDb6xEzKRi+?d&BcD9;4U48kMT+F#=rNz*|2NFD?P z=v$%e@hjTMfH_f1s3j?wPx}wb@&+92Paw~wzZ8M235>lWXZNses)ER;XMs}+Rzhqh z7gNeg8TnY0a!yToLL<8dGg@#gm-vN@;oi4Zg(Ia1fsiHJmY@U&S`=-gOB4SaKes9c|X6$`viD9Qfd`S{= zbq|TVbuMQnvR9u8cbxx$f!%SIR5s1HZuuE^sukp>FU{!v|}i zVZ*KO>vQ!e`j(NaZ$U*Ct;E)QTpRV*>eaZQ4&T1l{aftBf=Vn{H`LF7$6lm-oRHnW zNoVZ#jEtQr{hA)R#WnJ|@`b%JZ`%$+A0<|``o0LGHWyFx5SC^csBrj!8v{{ig>GLo zU(DlhOscQ~6nct)JQR#Q)V2(v#aLoX0dmA6t@jrbKbD+YWnf0d#8sqqGLo$-!}`6h zpsJ})sdm3`WUE$tClX2tf*i_fS%(?k6l|9Yg62InECTA?f5>_*E7q^%^5A$10TTRs;L}!+mEYQiU&Peo<2yFU|PH%A8vVrzegySSC@Kqhg zEF|qaIU7xd{gFVLfOBAXCj=(#6tq#oWS8(Emv;gVJe#!$I2hC=#5dEf#!qyjuPz|k z8M!NLk`22XZ|nxm>~e~#$3K!bM>JU*nTVxdb!4-SVBVe@lC6$0dk|+tVkjbM!Tqmi0GL9kaDlxefPHZ};=lQfqn%nNVFlJDJVM0>i=dCu zB1GdwhEtq}SwxaB(!wu;h)6(9;ejyB1H6foiW>6&T-lk3_z(Icg6m!#$T!I~YF7s% z*+|6ik)9g&hemI`e{75M1p^aDC);FXI_nRq`$aO93$FaVERXLh_7Ru-I3Nkxi1@9L zf9$}hw#B0njxG~HGZy$?f;hXo5U)9MeoM#+MU|D73OjW;UZp2d)b`vKV-s@+^3b=ifTvNZk z`Br_0Aeil9Fi}`PwefHzWi|^=SL88O^-G?ORF^}yzHJ^q@CZ(kPzI>gV^ah6NLs7p z2Xl}4B~W)Rn8ObAONQI47Stq~ps|J{k*Z@tcHDF8Ljnh_RyvsZyq&Aqri5cS<99g( zbE=&+n(HzPGlk>WvqIj#@1_dRZW-2a|6PykrYf` zq!`k9`VGhC*K^LC)3H&{38iZGNPe@8+cdHrD zXW2c1DkZ*)7iE_SXR|8Ba>lnDE9f7|Mz zw^2tMZU(MHz>Y|{C!!c>oX@P=MqvPS3U@Jr*w4CcD9no3JV4_{q5j;|&Q7e;U`yfP z|3koXyi7}*Y0n(eA7YyRa^V?VghbEhL-Hr&kpAxk0l}#lDsU{S{uj($EcSrLhx9Ll zGe>}CLH1u_;HuZ;T$l-xA5#V3J)%G4J_2Odeb zoqdBy-2^$98aR0H>>F%s<;sDTD3!(koGx(Nq&%{y=VYP~XsHFe0l&wg9;7nA1zA$)#$VY>o1@c1^^iyC4xNm3H zOI5^%#1nVq_8wk+OIx!)T4{FoiH-h=Wdq$NPBRI?I4wJ0FGqvz_q4V3 z-7vVIt|mwoJ=i}mU;Ybqgxl`KN2uSa-oN|ERa;OuC!*OAViGUnl%F&C|K=TejtlRR zk5JvW7rOR#e)O6zl+~NKHD!UHauxvwh!IW9h0_375)8T?M}(n~H`IylJwDAD%5$MQ3Oc)%&GXlnFcTTZlv{+s@bsG4YF z&$lHO$TP&+8HXma9Nya^ycxu<16DyxJrV*gTO6x~^M&@~WVAaOmwkYd8MbB8DSas+ zo9JtcnbP_X+0kaw23?OH>27ZMMj(cajYpo4Wp>2NGGa?dT9Nw0+k{UfK{8q~B?6i4 z?8rJ~ibcNI-|MllSm5uX!RQfhRqoLLx$DoY=?*^v6IBpa8~d}NBT~-$CD2}aXyq)d z^#v6puj@J0k9Q}@cax0Q+qbal|G2P@Z(5FYi=xp2{YhE=#zrO^O*^;tKpUM?)yo&Q zW9_M%K2|ZBhgj|`d^#!kbfEFXqhO3<%=AN+IHmv3H-s_$iL+m)xikNrChV?&Vt@pN zb-O{QV*2vPgAeLI{vnH>Vy9~N)!2Jyzpg(aj8Wgr+e1P)IiNprdn;){#FfN}83-B$ zQ4N9|>C!-BQ1VmXvK~4#dRbxCxduZT=ca?o-IMR>Mhc5%Kud$YKvi6_xKkDg#YeGwpX9Ts7RS@MZ`CXbU#>e|xH0 zLpH`#t(vMlJbrM@3L3F>S#v0#Q)6mK_Pf$x`$}kIhxD%gzRo`Gw63xz`#)au1*Oco zr3w=RE&%IIEZrIOhAv;SVhhY!B*PkGlH@Y%>^Klkk2B;zMeZ)*$OMZRF#L0)0nGLs zB7mvXFG0mz-Lhv(wYsHBK>;8=o5{@%%e%(N2{-d$5iMfN(#tZL%hr!)SUUzNge@)E z)~Z~-1cRf0mk;5BF)}38k616@VtRgUeb}L&3pak0x@<2&KwQ{IP1Hw=joYv5FLuG` z1yyr(>;A3P>ed<}STKs(##~w!FEW5F=9ZT1+DvBc40sq-3}rZOT9Rs$+ONp)VZ^>y z_s>Gw2Pi9Q3Y(xUh9>lTCnCauO$3{(x5e<|5-N4>o1LsRT>mzEOW!%f8fO1V-;Vr9 zXB)<`UiRZZ0HK0%4Ks+vitL_%E);oWOcZEe_zbCB7HSTNHmCkpbD+iEd`sd#Bsm-L zNzVnt!eyb2f*r8gp#6x|ihKR_lXo~0{zz8bzHeYa_ssUSasH4EfH20;3E+<*oj5F! z{07y}M^JDRBssh$Tu_oIN`eeo2K6(WMs66;3Q#otBeYm5Ky7GnGT#Tj=gomgi>S7< z16O`-vdzRCfrviVU+wJc>#X*7_V+KCbEK7=SGM(>vfFY1N7H-%tdEN|VJTx)pyk6zM3q zn@naCYYR9n9YZ8#1EW+)hiDH8nDm-5e0XXlJqrX1UcFc02SReebTxyRW$G zuF3qe-cFWqHd|w(Z9bdbVvevnnq&0fSMo1K7ShpxE$uDkB)R<5sJ3PFu@QDc1Fkcaxfa&#Fom959BB5)a2FB+Uk zg4YTb>28?Z(9s#-&k$t=J1sv(eFiKf8AXbd1&u9FrM;mJNl2DTr?jP-;A$~-s`Ap6`m=WDU9n}k z=v|VNSu|~xrs@C3>2~`(p2`}t5{lVHDbo~Z<@nj}v$ZVbOD#?21s3UQ*GiX_6jOiy z(luUD^IFWl4sGT4oc4HbRd>vpDRvFabbVpD+lQZW^Z91<1?Q3?&jMIWNpL5Nd?Q0# zmamX>6Q3QHmrv-v{*cXM{TEU6U5zH_|NPYhFN#e37reJ!t6aa@V%dk}at-cA=halL ze`nW@{H@(hZ|t*Js-VpxpI*H@Vv$EA!K`K4O?-ODTIY)cnSw6&0ewphdUN0rsR&0p z{5e-Eb0t;@%s)3);}HK%XsJn&WW$RckKp5vQzr*XN${&2 zT8Gn4c1mY|S>3vKYc+QE4M{wD=%^^O+qqi1P6Yv^7^-cl;d&qx5|LY@ZnNnXu7zz_ zCXW`63daP)T7q$jXJW}=N3+m^L}(bM9bN%(M9a}9ggd?I+>-6-RN7=q2>}*p_pkD4 zx9Rs-Eltg_Aae(t4yAcSXf$;=9BggZOzX+=AY`R9b^olpX0qoth6(6C=%!?z`Du(KFumSO=uKGGuQ$R#lW z4EuBuHX#fUNHUitFm`}wjo)F|GsbT}=8r+(w#NK07L^i$BngRvro8|L1CVt*hhPaj zY|)Rh_1j=aOKEneIsKEllpaW@q5q|dSOi&3l{#Z>&0-+lSxR~7pX%3&_YZBBmKJ8S zAw*zdyC^=W3%t2??~0EEC>W@Lgo3jt3VsKe1IZw51nU(@VL)7kDOn)z0=Z8~nd(Nv z=s->Q>QFtt`X+kGpnToxas5v{<`vhq?tC{8GkID~v3xSw21){t)XD-ap2mBx8CtjI zbEDe5mrO}ZyUb2&GQ}LtZHYEqX^l>dUbp7JXfM`flPcX8^^49xELljvLTzt#!(MM< zORwR!>vfmhE46O7SrENu`hQYeTQW$oEeqT0f<2MOa+$H0KzcVqqT*1zTH!&*_Jyb| zLV+7CnR72-kN5IMRo$(yqwo5--VtK$fd@qf`2E+)@6m4Sb~hOh4=tx^_t_MW{+ciR z@vksde~qbs{D*EYQ+<)y{q$1^0l_uuL&VC0z0L_cBjI)o%XT~b`Ut4^0Zg2vXf29? zCXL&c>;vaCLi%WzyVthqZvU5GamKHGG+WwQ^2R}#_gJY!b@*MU^UIqiC*?1H&3WzC zW6v$$u_NaFvZZh%6Z*?JlnZ(KgGYoZlZJUfvJ$MQQ0`$g^tyS$=nfO2a8Vj!f4uCi zjVCw7YRBI_UW0$WcFf8S3c|;}hf6K4|L?CIKKwP-8n5Yp_TS`3e`XQ{Y!W1|uY@di zCq{wn9=0SVS24-4Xk2@0r|==dMZp9F+ol0OF?LV#_u%lPJ7MaM>sV*;y3Y1aOS(Tj zma!%L9ZR;zVXY&b?$E;WCp$}>pOnLYbNh9j#f`tMDbD6pX3dfoIoK8I49Q!T^yAB+ zuJ%q%=?cl8H0ovG;H`Y_8};fz)=|=odq~~om6}D6bXT#z*(88yX5T-*viO|TXjE05 zt8B2tEQ_6Y1R{Yu5}8b*A`YyLnB|rwRjRnXV@Wz>56f3rN|zR_SIFUb<|nsr&`KLi zb`e48cW6io@6qr-69Zx;kwMzJm_4MWRXbXfuBFi$`pu9$Y34Hj{8>pTq2-WK$X|}Y zX|xCDF%L=PhXU049tbPRS?76iRytWm(h2OzTspDM>HdZ+gCnIIvJCt>LU-5~D5sT< za_81SR8f??^a)XN1>5y|aKu}&7PhYFTBfzz7C;XW~q{? z5^A#9lG-Qy%e~&MqRCug+j0JnIUQH{BQtEpiY05ju9Vko@rJdPSlX&jTbk?084X+V1gFm~Cb0Co?g`!*-1Fjo5nffB_Hx;pNkQ{bA)+ z&V1{lMM|XXQG1O&@gubt^8Xx^^TWzzsu4rP@1IV`TT@pitN$Nu?*iCnb>5Bpyt-PJ zWl7e}viwSZb+s(ZvMfuoEX#`HIF4hCF~%4-4QX&`8UhU=fC)4UDWn-?z*w5G{#nOZ zN*Qe_qXzm>+I6&JS$8Q5`FCCStw7gx9c#PLcKx${Rck83;BGZTs#_&W~Eud_m~o6RhAc} zzc^kx*1C11z9p22844 zU(Zn3>kSX}bjQ20{!3J>6S#1dSTo`=ojW#RKk*6pxw}hVo|R6=&Z5e69LUM+UNcG+ zUjR%`*l&=y1cP}AXbiz^(Y-eXk8&e0L@_5FZN7g|1!>6a-;fN{3@zzBZVO#s<}$fCq_g=}z>;GF@?K)Vl}0 z@Twu&Ntb{PoA8Hdg%MFMv=hxX6#2>mjR@_$VFt}$<{vnR{pAiGY*~L{jjcI03hYYzFD0joi7_pk z4ag5`Z6>XL4|_iOMj#gmr6Mk07Qioo*p!cc5XDF+n(nz8=_~esfBxv>x7p;!CH8{R zCk+oTEO?Sixn{gi$40(1ba^*82A z?Rbj(+6ayq-=Ifzd^+AOo_$$#J!y4#du*+*_@6iae;bsvx*IT-*!S<#Y8@`^eR{pa zC4VO|lT@EB6!u+hjQMN|YyEp6bq)Dsuzby8SsQY6nk9_mR-Nr71 z*67GD^?zZ?d#OeP=kzI`bggfI^gB;9MMcT}F(wSoxO7ns63LP*)#_>~rinzTq^nht z1cjj%hU9mGmU>04q0?SyVMpe^-;qbw_MN^uMJ=<9?vW}R7?kGdkW6!+>Q zT?+P$(Emb_NvH;}T97`4fC36Y@JE&P5*zFgY#mX*Cni7CocV>;3DMOxJDYxK(5Y^3 zAMln1Rv6FczpXaCy1^H0(m`xpHm&w64Kv@4>b}R5`|8&JK*V&f8R9tKU!DQ8%ABTtLfL^!yWAzU%h||V}-(LwdqHr zQpBj$-=}pswA%Z$Zuz;pe2=UWPMX&hU5g976QgXXD7dv!G zW#5>YyT?~zM^}~d@e7nex{bOfB_CQ<#*LT%(Vbgq9G#CA)j8$Z7Gua|SxP-idaA;M zzkBEJtu6;~@pWxd`Js%dX%QGxUkK|tKOOLfg+{)%gqg@xeHq{WUDqAId%^ag7?_W% zygg-Gt}o`A@TOyruWrxkJ|dY}MbC*<#z#+Dsd*VFUNrqJNw zl~wIJSB806wGA7MO+^B$in`M|x>(2ObNgvkt5)^XGa#fou9dm2A&6LqimA30$0tRH zj$MOO$Hx|n@su!!uPYX>8?CBHR~9kMmWz9D|HuZO8%FR{#p(+WuFPD#x~@*lA?w!F z+E*UOYgV=cL(#ELW%4sChej|eSJ#IK&-2s=ts05anzj9SCAMB&KkQlg_$nTrzaE6n zu3wMsp>-?ze?l1H@32kht7|2+xNcqZF3bYw)J5^Y>-Luum|g2|Z^wG|d=h>~aNBrC z{e)c!=8pAh!Yr~*M}6|a(tJ`c?-%MTK25DD6Fct1RI^TH@>eg5ZaVf3+eLHGdhI%~ zyiQG@T%mcXzD?&JSN`%ewRWrcjI~Z>a(VKqug`a0xd1Q~=Ee0IMzh*FwS97h&u{g0 zomU2Fsa?0Cb^GcmB_Fn;M{4FC#AJIQTq&;PST0}1y`BE8KqK5lfK^mh(yncTg_c6s=+uE8$c z*vwv8xA)OtZ*MRYijO2e;f7>#yNE)U6MHVQif}Dt23iY%I{{2kiKT{@HI#WAtVOYj zgbD7bY#;#yG0gf&La3}jgMD968w7*no?LdOkO;~9LWzBBAGsEr&1U&AHtzv;H(r}^ z+ilhz`*zrDJF;RlnvX>8Q0Xj9wtG5yK1jHVpWDZV=zDJSW&7m0(yL-$|Ar0yeZ~LP zmB&wDC9aiE%D+l|h(k+F+#lfhaF9TV1-DkgV)FMP#8pfko=z+vZfk!byZBuSoroTA zl>;VVZSs09W_BPI|05Ze{$T3X5}uH|r?R*x zzeOHDr28L2{Lm+HvguH~6X1A(UL)HUvR=Ui0Oc_{lk}C;d947m1FWioUq{MXJB)WQ z*~6-CuYp!2x4;1jR(4q0)A)8-N`;PP1%KeLO==Hpd5sqF;-1t!lu-JweLBJ07--dN zG^!zk))~|yNor@OmT>KY@UGCQhEy7+g}GDJp;FzeK-#f;@4XpthTGZ#KB+M-hEh78 zG`uW-$m`Ook}8u?2m_rb43l0`t8(EYpf^~HK@$Rat18setWGiDwgx<&01l8E&Wrbf z7i7=OK1GD*ABfiw-yq%Eur;$-@lYSUjUhz!f^(yaW&Q=x%Q59!>HE@nJS_6$KSb8 zrgJ+W^2Gp$fFu4wpOw^M_DORS0)&wS6Ay48vXPpPq!WrUDFa&;mu>d)fG==M+U@c7 z^mqep{Vln0a`Wb64sCa_I6oppLM@_D)MGJTqLnTD0Cq0fR#;@q7zFK2V(K!JXDt^!6ZN(Wk~1^yR~ZIbIwBP zpq>+eh^yA_)*2IP2OxjbTEiZ-K%c7hDV(>@HkA3X2YIFrorfniczjN1)B52`0FN=9 zgJW7;h&@TD2Ujx(`e(AnaNfhdr^L@mp|yGTJ4R!FWU{SjwHDhZ1DVDiV|&89rLEZ5 zazPd{)oLCZbZYJ4iK{kmPPUBR8|V+L*&?wYIy$7_b<_{7eMNY3S!C^sO#id+m*Hq zW$NQH>*T30c<5W0{N11wNQ7D2D!Ee^YUJ*Kx(SK=&Lej(Y(x-gW2eW~)fO$i2#Omw zem%~`FJ=@>Q1|JPP-8b{Rg-xR!Z$0JjH003t>?mLGo&Dz5I&Qcgzw4t=vXZ7vl*r6 zPLJ({xCjTM=nju9K04l@sqkp7;mU?xkW6g!f^S~}*I?N@kU-}J_~=_p7AIY0Sv((G z&o7Jj_(>N1zgU~o_sREh*o%L$apP-8 zjw~(xN7y6BJ>js2o$`b?%5iq8?rdPjoR1m5=18xCDHMp*M0~BgQ|Qc@GgAvw%k^5F z{O>O>-*PV9PV7t@ND)(_J6u}<60BEsb1P?-m!}qL+^S|rNr`ZnGR&UJ=U=+zmgVLD zs%j0C9J5@bP#eqJ2($(t_I5+c?oR7OrddF5z`brDg+N0Kws$;I8Ji>Q3V3WOHU(tn z&=GtJJV3}vM2UQzb_wkBGxFDG%n9kF{DOAgY#U2B;-*D}RGS1dqOm;=`3KqO<6}9= zL3_T7+QahoLl?8+B{s=r`{O*j++dkE$DE0cR?DE-WwDzr_SQD5T@si$xG~}JxTIPc z(&2moZefW;Ob(oeoY>1_NrlId6Nn&CYL`ND`vw4eb+^fMsHLy3FV+@OCnSSO1rWX; z2mf*?x>0KTM38+~*KV3Qr1xy@aCc+g$QpsY-t}{cov2aAXe}Y`TxO26-4T+kd9V=N=KGSBTzla{r?F3!kHFQe{a>h#vG!w^ zB#C{ZX~OL=BIws786BnxEt`(mqRHs)Xx{q$c>eF23{K_{onuaoSN(+mb@NMc=%-#>HXir7$Ev6BVoRT4lH4<#AX*e2@b3hG?9-CK|N@7 z*n5!K3bc|hBbEvLW9`J5i2E_BbmYh!8bA;Y8t9~b2pl}memlfYo7Rh{mweR{&(QZ)tbfXX;~&X*z5Jo-FWGO?@5m z>tpQ>BXe1rOr0is^Cq34!$5tcc}srlEAa8M@P@C_|6RNBxh~@ zkHB;a2ZHE?Qw0IcAo+HH9okk6vB{yzU{9861>PckpLNaNHLbpUJeHZr&i2J^W&vO~ z?$E#nfGAIG7#LFfveR8xW}{XkbDDi^QTfk}wwK4QURK)&uT+075_UOMw)y)`90@t* z68h}KSmDsVFZ)8F6wb8bn{T>o`tgGS_l{h2z91z6g@E+U{o6wx!EuvgG&Lj12cn}> zjsnZ>j1(hg9_LJF0A=2@B91bH6VU?ZRfLJdnXBAjM+Qg2YBS+ROgk+!w4a{1Bxr$n zm~r&N9@O8bV5QKelj6xaQjNb)a)vWDT`+i)jt#}VQZlf~w>|h{qouz`iU^WQ4VU^B z4?HP#PEAm78ZFJzt_^#7zaDAd6wGz|+pNucK`^9{tKHZhDE9yH=p+-41#fQe9N6YE zXMCDKl1*&$M=i~o#H`CQ8f@%rWSu&b-sJMD0$t6Bb}}`wtHK+?mX=6+N2^5w6q4Ki zk;#FfEly{o&G(B@PXcBxWgR$xJ^4o(^bN&^G3<&cRzLxG!PZ-mbUF%Q5+mV8m(rPD zi%2nwnIKd$5_xhhCJxb2KaDfBU5ERxjYjx?nbi@O!(ekDaiTH4kTV&h5ra9QHM@ma z6rULB6PqEvm^GOq_$013yVY?vnM@|xJ&=CfUQvD%N9)wFSot@AN=9k;jnPEE5$F?O z7&%0P4fSN@pB+EGlq5Gs%tOhB1Hv@gn1g(8;d{Oix(ehbouq7mn=an+nFogvnh#07 zA<{Sn($@%S1Fge^5Q1DNTV*F?0#n$Sq}7`BHnTJl5VDJLqtzffK!rO3q#FWiH5)?_ zlPNc!sD6U2mdju=*-XZVX9D~81zt!+%z7ihB&}AnDH>P1O!%205;dB#i!tmPlmbJs znA(K`O~wccG>K0uy!q6$w0}RJ=l^fC5iNA;-enu71N-*ByEZP*RNMFgp;+oiDD|;- zfA{@puLOS$yt|e@H#L=Y`LwQ-(Fja- zchZ&gfDa7~k6}*{!k!{P2u?gigp2|jI7w4CmhNz|skSIc*+dZ*h`nW+7GIu@lqbrj zoTDt}5`8hBk2%ghI?MkMI>rCw)5cK1sJ6P?X0{T)Y%9Ci)wg#}c4%*;R907I{9AI&B^TPm0=T$o} zw;+ib=Q?q49^;uM#VRG*ka$0vbR1tJ~cJ|$$WCW-RW{~>L2d$<~N94Q{J8~ zaRUx6^Tm8& znZRY`0*)z<3JYU$;#&sW$)k4!%#=jMTpaU>V`HN4YDqGiai0w+AGD83g5S!PF2zM= z!2?j!H*NCberF4Puf@NFyC1J>VkE7I1``o;ya6cl7lEI44r`?g!!e)2ZaD%W_K!G8 zAX62b7%3|f1t3&MJtjI#b#w)tFrb09Jrt%L`9O$G=5}PKi(|(F6LS*>jxLTzQ=@;I z)8`E#1;-3^0)Cx5t1MEBxNDZsUiBCvNhL9S?@?ot?V#QhnoK zG}4&dyf~Wj40-*oMSAeM{GVK099mpl{N&>1?$qeR(OhG`5pvFOSI!gN)FvKYK!-zZ z2~Q3iX8!;`AyCvE;6&3I3Jc8u$5N7PKI{?QVqhU4B7d0xs8fJ-i7qpLIVM>p4?dNI zV?#5E8?;N&34eFDf1>*;?G1^Up=kM4`Lk#ZEjskR1+g3!W@je(=WLRh^6anVpUtt0 z?86iv7}+{+k$HQC1yi#@UWTRrwzS1Sk=8fBAE+uw5Nq z@8aU?uMZF3atkacEh{TtZ-?mhQbIEM=eOK4JpB6Wi;G?_pMT1^J-D}erkvHQm2!%} zVgMx?omvqYz(ZYNMTJa3vLIhdYLO)JikJ;%yI|QUS?MQ_eO*kt0AIA>rm^2qCJj zoK6Is<;g~lv-?isNQ6Hj!K*7J5=oY_jQsl7IPBn$_)qiiKL`u#EgqXfI-f+CLa#bEL8$wAj2B&3hOgCUIh~rBMZf*j{VH6 z*Ulr=S!`-?Dkh512_Vwruq|dj`@_OKoT(d-CSajJxcdl)Kwv~@)bTY61-b38-eB_K zYM~H=UWeLWrGb2q-w74mlz#zA3a3uJJ!0gazo_s;!7Oufd@!D=oDVpf%l9Eu|s%$^U)rwSS&YlYQ;2 zpTgGrFVIoK_}xm=5VRWLF;-S|L6CBM!-lETC@H3OWuwn?$J~v&#z;r>l6E%T*%%GJ z%>R(;|X@h?%ls5e}fInf3$nIprcpga+-Zh zxtGiNILg^lEyvPt@jE%1o5c^H8~^h1ampZqC6<|%mxX5esUg6G$xpGZ@>6Tk(FPVeG4R9L^Y3dia-kpXvX~$sDD$Xe!`Zi;?DIFiUuzc^M|J2 z-YpFDL#sU`zl`AjE@)Tc4Qonxcc^h#1rv`VporYHp-r$@R(?;P(v&PHx%U%u!Vk1S=R&?%vd(sOgvU(g+qsc(DfW$$HO5a8Y@%7^(gs-F)kitn1bv@;Sw^)jBebBWP2w!ZUikf zM;^oP^QGT&I#l4dQvc@iC`2gS0((?`X!qFe-P8se*Gg<6*`&C9u#z_kP3b&c1^9t{ z7W^*c&i;_{5egnm81i*o@*sS|g4HN*qp6#nFj^snNNJ(msSa906uH*Y_(L8O44^PP zTnGFEx>Ki4p%gr@SblMNIgiNAW#u;|JvRRhLbffKPC*9#o$T;sw}0+)bGOgk{<$BM zC(2`wu?Ctl9#ikXitBbqaWu z_@_PQ$};8Y{M+T_Ga}w2a8kt93xAS(5mA$+C(uiJXr*3?S|ki(;0@x8QBzxWnJf^D zM2OG`k$#Ntel?I>Ck<+d4Pj{V+OcWp`8hC&y>fizI90zQZ^MvhvO>slBt_Us zwC&V;%*TnUJf;9Kzp{v=Vzi%Cc;5ng;6aD#Xdb~(>^qWl=YuGVQ+>ZCT-{g~HW{W-5YU#gv=Yii5DTvDq4 zoMLEn{81DZqJ!D#!T`$3O67pz8OO%WDmR zc)$=iLv38y!QW`};t9-t@KeL4n$D!W&6F%Rzp`9H$gHi;i_@kOXTNrh)ZOo(PIP^J zrReHXt>^F@tpmS!SCd$kdwZES;{5ok^fz9jkkx&TfQCw+*OyZ6`EogxzAqP4*Z)f2 z5p>QuJ^*&*cXhw6N(ueGMnnjqX6jLJ~yr4Q+gO_XFJW<;k zDv;B}=L#$`plX#|C-y5LX1z7CP_DQt31A!MTV;(Xjn|SaR5?ieE6W7&4I-HdUn484NkpL~nW>VAiGb)Vbug7nLRcp|;WcDujiPI0 zs9O9va#XHhl`Mso=-IknC9V)>i6eAB-#T=>%=g9f%r#VZxr-|+QdPDHx4wQoD)-H~ zRIDds=b@uc&Z>mq)f#JKc`Y6&aYR{*6%N3q8X=Hn)2xuIS%1Zvby=RmmQz`bOT($W zJ}wiqwHrZ9)wWmH;_%~f^$R_esKuGERf)>n#&wp?p%y`{B9VYD)&>zj&- zSG9KSs-fwuws(!n*J!gMbLBo>zuon12fxL9Rmv)@=RIGc0qsARh&mq7nM9dah>k%> zUUep2ixCy+uk?bZMg&URv5N3l$f{hakOt`4l34KVk}}gOqEVW4m5w@75leo4QfQ?y z0!;x&M=H<2>r-3Lxpzr#dHkG1aD}ZEidV}u?Pkl=mgkgrHpm=DKUa#5jYFyP3ux9(KbLj=i;In((eD==9S1mC${HTtv zvdpd?UqqQQvzKMz|LPd4(7E;~tI}J>KqC6e-B*5Io8o#&dN0RWJ<%2RRz{klBbkS8 zX*hh0(-kW4@<31QpJEn3{ZRoXGIxzXgK@+)kc-a{JvQ`6Jw>FKYh=Zq{MTin3Z z{_w}9Qx{*Hnx=Cu>0kDu>>U-2-#KM-FOT{%neWsiN`YoKl)k%9afbvd>vEKJ%ldR8 z^C=l`2(mrH-nTLJ1^J)ZQX|X+sT6C=W`l!+%I)dQJkl)6y7qx|>Y8V=Il7w51{KU< zs^@*E=SIw$q&31$517k-X9`H=&N5%HgqM4Az(4S-bb9tDEBkEjhvYMCO6^IfPt4Ay zXJ=U?-KEj8{^zX*W|O<@^0lVf%q(uGg7fA!)H7GA2d9m->*-&k{Mqj@Z91aXvXoMG z#35g|qpHik0R1Wq8x1&B#_|0>natdoXZG9MPsp#aIZa0<)9}_%K0GuO&JW>{`La>1 zmgQbRGu*Q1VCub|TrQN)D>t+SaSCt!gYZ7#E!fawgpQXfqbG8Bb{_YFG=+pnLBU7P zRtI8~fR53hEC^x7K_n4glMdY;N(Tbz5c{0={lou0{64K#?TvW_jnHZPce|H$3qIG& zT14j=rF`6_mjBA$Wqd%B?zzio*o90A=}?IMaCCmY2%vU^29Pa64tb(tAtHH_;~{pF z(O~;!;1w$jJ=DjF&4v7oMbcxybqtQtsSM2EVY@S-gPR@v2*Vn136ui~7G9UI;lkI? zH>R~2wd@DaeeKbG?ornvm)go682629t)>&(9owyHTpB&?8`GPtTK0JCYhQ~!y3eL{ z9dwL(4vq86pW5!&<{5PybdgS61;5_6ge%xf;2q_QZfGs@4uM@I*GA%y7IAQdc27{L zu;oL2iCDJKDJ910RVDuH<3=Q=YiyCHS{l_lmtCb(HHYnN#U3%@CF^c&YYVk|JnbQR z-lx+TG)C5h$CkE6EfQT>v<4hkX&zH_eR}wh!%T*FC1s;RCK2Rq9O#Gm2n(@73^)1d z#g*k#i#UWlDboAcTMZ1Ef1$NUFk$`MemC&maSu0U32X4x7Pfhyi~F(4%g(%NoO5m&;+(^Q&r? zL8xAK2jcPZc%0oI$!2G=*$8r|`CKkxc6)2EW5nr;kC=?{g6(#vR}5{pILuDptiDa{ zYV9_{+uQAE#vaW_{OPr+Jp2qs5RU|W-IAJaJ9p$0@413i*44gL!71IBL=REQq6m2>+b zG-L6uqiUp;a+nS97lo^*$7)4}D=l)a8MVTZyVUpGBWRBt5DeFB~|k7I5)c zZCr)?C81Ah1zNjCl4;-t)>E(hO;|upCX)ljqVPBo`At(zYt(O_35v;LV{Pk~s;%mLn|#0w zQ1;KDxgZK_9c8|pAhdG$Ig@`0hoi!Ffe#QKy+H_C;x1}ReDw#+nrAT_)r(n~Mh+-@dDk!hyZK4eTkiT47vWdd6 z4*L?!_e)Fmj;;7ze760{t@yjLV~UTUvYLgaigt}^6I12*0P&XL~v94 zjW-TW5@-JU3i{d=j-0n^QzSAT@!`-|EAN!A9{NhfxQ6WoTA+c|vbCT2m&TTGV^hp1 z|MKc-`H?B11>l=YOD8w7mtd|V`;6jKMJLfwL`7VVaYG&yywMc!lg?Op@HEBz!Lb5? zA(#hhu3-A8Oq{Cn!c)Ccv)f^@$*9lhmU6RsPAjGQ{|<-m9CEV0u|CX|Js0nR_+wxB*8f0G{;?t_ z?`zoe-g3x^P&@)nr-&5TlhUmTAU^W+nPiY2K!Wz)e8^bSGmd~h5t!7DrKjnYG^J(Z zF00R&!6m(zivJzYXIlCB}v@p3(*;8dE<0 zx;&nY{l4h%aFmayfumH8$If0+o;N8^XaDCzq4cc@u0K|Ak9oGk;M)N(hre(oUzDv5 z3NxoiuDJLfhZOb2?3Vl4o;cq}6q75!cSN2DTE<{ro2c0E)Qjn1c zmF$qe0l#YJ*9+41<3b)Nh>?5&*{6g|Fbna=YbEz<-vBVQbPqVTs?hp(6I0TjBgr^nY#ojerX z@08eOYBA?go75q7^6{a^@A{jjo=%9swY|mowdiEAJ4T&c>Qh*;gg@UDz?MK;!{O0}FR~w+O);}81m9%D_nO@y zmnm*?$0Wx-Na6mfQ0_^HHpyU63-OuQXfl>*F~(Xu27*RIQV*D}6Mr5SV^uM>sDQQ=0_}sRBON>vaCI#>gn9fvGglEU6rJuK#CcV zLb(5S+j-Lm@bh@>j<85W*&*p^-0LOBf;u~u)y}(op@c_7gkba@cffUDBp#0xOk=YF zwd*E65iBa-ugnCY-b7GxUalDoB8`&PWVyH7;%>8c51Yp3H<}9JUZ>g88~&^E1k~IGV3^echIJx3wFRJU`Y_2q)me z&DW`M%xQPw>_w4eZ$}oLG{2QwQ{NanBKo1+%OLv>W)H*`;SnJKUbe1a`r_J1EL%Iw zq7h&8kX4xx&2EFk3c~oiB4Gmvp|0eiKT2G3+KtDK0 z%}R;DND;|mX2UT9Za(G7O#Zic-Q>lcDbI#!TttByj@LjK)ucsrA*ZWPk$awDjsuaE zN~My6xGOcdtgl;``E^Uudd6Zo)9SkFs-4lDJD1o;mzH*R` zvgUeb}@ha?4!rwFVCH6^YGi^k$vzPsxM1dE~{Js3|_FT z^75!G_B=0#7g#Ed7X&|CIP(IF8|TfRWB&U-$L;Gwe>5;Z&C}$IjN>5BOhx|IlmdVv zDxk|J9W~C2{RCTpk5XZt|0L7T!Aam0ju5+$uHPXf_bwb**lTtO2ra+ra~ zpEo*D~u#m7vC2bf^oeUVTw(ziKl$u{@5Y#hucbNc_cXDVrW zxi1n7l|BH%*x=x3OR{+uaP+~i=Pg$V{fS5*5J_z4>Krxon=)44G|=jE>c4Bd$dsAd zQ2x-ju_bBBSiEySYsS=fDKP5&U-udphHCW5R%lv%@Z0W3YYITl;CPQfts&GOM1#U` zj;53j@EGP!U5L<$=zvdImuL`WoFUB4;j}K9(S;ph2ll%Txc>iL@Vef9orS5?5i1LC zxXAa+n}MX}8q-5&&&~b1uL9Jgu}{_GO}cD;Y13HeANLssoBv#r#x_ZJnLRi5=_s|= zwVFMF4wYKn<-2G@*!tA}P6muE*Jz*hIt;+RM+r7pzqd!#ryp$IxwH8{_Xs)9-Nv0e zjaPNFHSLjT?uPs|bVL3=!}k}2|A`nj%-w)>0qzaD%RkUcJ6pI=qK!z;J_Ji7w!2(9 zNhXC(ttJF;tb$jQDtx){RGVLZ>8Z9rpzWZcH`{Bttl465TP$o&9aguf#bK{HRd{BE z$^N!m7kotm0cootmjK6*-Hz$BYFQjvy^v zWcXk|LTCP>(zTkW^7-MX1h4!$xCn?nCZYD9R%p5HrF{M=c69i-Kk3H}^^$#7;StrV za0qKC2l%e3TV==Mh!_%*t}17ULpY}*Rt`z-D$_EbPV33KVK{%waEU*|U>V!(3ZSzT zR@IZpY~aXKvZul$Fb+%`{<$|_W*3cx-^ExM!TGv_uaM<l%iGW*j%j3v0Er|~Khmy-hU|_5vkW5Y_ z5-jg9EtzZ%^G=g324G)Lj3#R{PRt8}+3I#k`y`||jIxI01inwfpL8xzVvKwkBRDCb zT8ccaP?{(iD*bfACsn|EM{L|-y4qy5nL+Uc5lbj$pmu_ZYg1drVp8l@VV;McsG{|& zinLSCa-)I7njY+Qb^9t2CGD((iCE585B&!>{Yl%EK5K$Hyz^(%k z>}d!yfGm^F0dB!6ZTsRFx7cK7SlX}>aJd337I26@`RAcjDr6?(wnIqC`y=Re*@9MtvkCZczvPYn-dWc{3vOYU-OGy|Aln$yk zFfADTFB5CZ8XQ*kji5aE)8l%TwGrT0XDpvJ8FG3{%f4^;1@q6oZg5iUCXENB%w~RK zAgr&tGW&tr$;(wa?creXRn~Ze-ena&i=qdAeeJ+eD*cCpgQ(!udrkPv(lY;9ls|ZP zTKpoakbi`OKkA@4;tXQ0U*Y>`9*2p6)k)EXK}3w<3DH_M2f<<~A%V+z`R93>l}_ga z&*s@HXAqnTOVBc+#_)=lr^LO|*yyCJCzT1L;>ChI({P)zAS8+F>@rwFoDL^@1*z%+ z$X175m`bJO`|^w17V=YhbJiCTlkyQGboWm6!Dfy=tUBp_?{oIEQZK_>)hG`d1fR(gFv#%}$`)>@LeRM;(?HiX|;&X>%yBGW0o^wSu z;1996`0M;YsQ<<|yQC<&L;spc{A!PXA-t%gi%`R9MJ#c< zyasXxthESoJ}C$pb(Gz|VZ-f98cT_w4Iq=<=?;s2)X4uz#C_=-#o{;4zR~F|(*#G!nZ@<+e|6LVua_SOadtz6YoHpvZ&!TJd3cO9Z=plE%ceqf_EyUx5vcA zu?KLm14skzb7xkO?|+MpLw({rQQ z?PCS4R-gS^I?Xm}yL9b6upi=?wJ){zICW9|_gJpEi^(Uu*xsnTUtI~ zVo?gzYWU-~9$?R?ve?Tu;DBL)h;?GoZg{IF9!|@zWx^^$JpSfuaChUe>ojK^Mw_SM zI}oPqjtJm}BM{nwWfWVs3}8H9z~t8ehgZEuc&vgapHGiw4`oNw`FtUlz9XG0;g5m?Bq{3$h+%bv8ALwldt6ITF4St(~-v0yC19CwMbhU=INFYn%WV;_@5(SvVG->XCmH-->HJ z%z)<_dRr+U;D0%jv4(zZw6d`*B06XMHcSNgSF=&5)ogjjV00qNL26a5H)gx-H za)vLL+l-l)c6>^?e5(%aVp>x!lOR)Yr?O8R*BVyz>>$cL`$8U}$?`Uozg$~3KuQpL zEI**ouJBu#+v9x9m%$itmQq&xFjoCqv|ml__NRi~z#3?-FWtaGtKlSUaa(Wj(! zQN+9-`wfbC_V;rqG;&148b^2d+R+^$$w)!2^OI(VJhiyagu<^M*CwLcfT+!Dqqrwx zdj2}5H%7HlISb7SlTQKecTo(u@;vgH9|@EP^gsP6dxkh<>tQZc=>JxNw#2_($wveo z3u(N_&l;XZ{#UHlsFd^s^1GII6#||_Aj&>9H8mwXYs?;D)!~muNVPWONJ^7FC^=0eFP1;LXZzt|Jep2T z6eiP1RS^p1t}gOxBKIW*kzU7_3Q@$ApUtA(538O(x1~N;?0Nxaz1Ud(m-FDm~lVGt(Q`(01_6#HjDH z=2&0UWdjD1$K|)UgmGtw-L4_c(O0H&Jr^fL_rXIOdpkxx+iGLsh|lSAd8E#iKNU4- zHurURxCzFCk7GrKX>K4L0`03B%2En%*>mK%;y?@-VP&4996iDU#8y6St(WRKo5uq@ z+yc z9Ubw=Bxs-@BF!v0g8sm0EbPh$JV_}Uh$TZ=2T;YBc5?6D$-SQr2ZujQV|Yt{s(WBV z;j*H7WXXq|)Hp)Xe|h%#0(~3c%*+hTUXs4#-be^v$V?4S4y3!&8%HkRs4nhuq%Xlo%6ID8&U0t3S#MqA!@7!3 z+_@A)0@iQ<`q|z^_Qd%KG4+iO4bM(po*Y>OIaP|PdncZ=CXX@%6+Q{%RwQ4 z1Nmj3AW@X+c!Zt4508iifd4~TMg?Px@G{hTn=qY&qf=qrhFG`pf_5tDa0meWklb+* zUlEKxa@VJ9Mpo-7f4_gZqs3)07-IQkWTQPlY~L74X;i{8KIst+8ti}zF}BOvX2lJB zRK4{kbYt6~b8SceL4XN$LInsX+UF@bKky166e=8pb--5vSctz>*Ut?0p#FJ-DdfBu zNp+kDTspsN+8H)B{)Ikh-?ZuZ>BzrCF8;Td?*lyMruX{vaO#2ER zyi3QY-NNXeVs1xr$`-piZ8MmXHS?Yi-rLxoQgIYH#m~vVgZM+?|_)S>VrlOzp0S#4e9UyTe`HK>mL^ zU8){uTW@EVbHv{l?HbzBJKGtFe0cB!Q*$r`{5tL%A8~d`@x~8!jbD=66^ZyR?d3XE z?4wHa1Z7T1d_0INM%Hu=vM4>p){Z^kL;sI+Jr8{=DrK&L$~~ZTVkeD5GlUT@SvI% z%z&k+zn}!015)Zht-=jT$eg37+%itBQwfi$WbmpCfl34&`(?=U6G3=QMAGoNocc9! zHkX?fUlRl#yMaJj1UASA>Dgvuhn4r=cim;On(p%82f3)hbkvO(?xRLS6agPOc1-al z#QaZ=b=KDu4?|9S;;jdS2+nPUXGWIE25br;Z^~%Jy2t$$YTg%EgeaG z11_J$)Zcyj>F*kC+9kax>X)>(Ux}`0Iu6vxxEK%6x#+F8Q1?H;QbnVf(1jXW%UFY& z{$8XG!jT+u#8o*A5=n?pkR_5McI3o~Q)i&clOKRku@Immfy{*M!w-R6BzP7diLH=q zLCzq0vQIHp*3{XI6Ej)m186l(rj_F!ER<+=uuKOWbogTfQTPE|RNm0zG3MYt+2Dpj3uQ?4;L z1AqaYxUQZ^$PXmP$CLV4dg8WYw@svD`ox5M8vBauj{Wq&qRMbpnD8A1t@dGG3{C*P zGzJ82M}5G(jrn$vyT8Y_OlLDU{&+<(6uvYbx~?#J+r-3elZER-G0%1sIf_9I00sn0)c1h}TYHuZdv~!Z_Q>a%0n~lsN`#N##XZ!|yCB|1;-a zDSxzz#a6I39g`o8rBiV|v6}5l07P#R$Nh-t0S0*49oj=JCQ? zpsa%-oq)*a>Y;`rBzi02)85yx1AVXuBe^Wf{pA;RDQ_~hhjLx{D^8ovhUp%=t~3&; zr89k$&_XLgAER^tKJTmhJf(c$gc5&v2Adj$AwE)*wXwjwv2WSv!fB5M zO-)%wTg&p7IroK@G}MrHKc7zU2DW@kEwQZFhS?;{Pq1S@JaG``$lE3ovx#5g{)2cS z8ZE@-(+VSwDqlXLXliyV?-rzVa@=9N&*~aay5m-TdghxmP@XC~Ob%M%whBIF@cR;T z@%S9MV1Thc--yNOPja;R{QFuW&`2PKe{R+Oha!bEX9jw`s3UsJr$9QqFX z1`;Ut`~7Xo(*v-bwmTi0Tx3)Zu-n&^ANh$EJHDlIad}YUZ%r6k3bqJE`cU*NjaTS1sCAGL6LvhJf72ZU0H4_O+U|M#l97Z7WW>$uIR9Z*qr=;HJO^Z>%?6%spO-| zd~#fw#|fVrGxetx&Y1BIOnI0r>dC+)eUbA03o4DVQ@zIe{!UY}a%=(z4mpX4J^m)8m^rZ$6E?@(0|}@$qk@CWgH}U%=^Q zTawnccCTCAp5HfFKKuH08YQenxsQlp1{~`1^RoAKjMKKhaOK9zQ(>RiDyr;2Sh@eEf(3Q zJT}QA`fQ%!;wX{@xEwwgdjY?D6aNSCUo6PqyzV+7`=;8=X3kCsp#@w_06riZ2t-4v zP#kV!7_wM#p(i3g$}5qB)eNnShufKB+`A2U@DyEb2Yx|Zz?lxpK^@0}$H|iWPZ7{N zpmou5uFybEDr$(`Pi=x*6-8#Vi47l0>W%wnXAh6+wUaj=-nI!~?SGTg4;jLHfa~6+ zUF_bxxZ$>;p&^T*4WZ*0UPGIAZf05+jdHwWFqqF-BdHweLXC`i%)Ecs}h(12P zZ8Y^HFy+(5ha)+Bn97TAd9xwglFcOr9N2CoJT_y*0PQ$GZ+#Gbcn$iH5Tr;`hrNHM zg^^W};uo+wsE}@R2+pB624L%1>5oiUCoFvLdxAT(Fc~*~$L!Wm2xjAL2lXEP!P|`H zUn%=Q&+P1%v)S(%wmV`|F^?OW%>T{2832PlPO$K>B4+- zUS*W~0N1^CQB&6p6+CJ>l6>+4Ye=BUABN5+;vlrKKEpED6ujp(Rfu&v!mEcg>F7 z7EQ@NP`p#vH?pxLe5Nib`a;3Zk=aW=F*EatKe=mWD3w|yzpJefF5*>{hJNlld_g+k ze#;S}9Ia*FsmgihLX^#onr8RRnnveh`TPP>3Mgm!^H3^#2OM6nV}O08us}Z<1{e$= zVL&#wk^CuSk^Bf!IK_Rq;r50j7%xt{GXte1=32WBNdUEwPCF2M;N^@dIP6Deal{AE ztTT|V(2a*W%F;DRj;YnV;Dd|6<-oWMORFd=d*#ilA1 znQTTi>INi{pvN!aE@m`1O#G4>IRnWR(iM3}-)6!dpJSH7!RdZiQC6#xzGs*@Eff`nJukNkLCMn%fOhOL*j|HPlJtfpn_1px zvRTdS9<%KZ`A}jknH)=;6s=23R*`+~h}Q6k!Fi*p)!HIINsl+)$*z;XdCfJO7IS7&Fwo+FWt*Nn zeE2~qSWTm8t9f#4UuY6NV+K`+#}ur9vBdbeaLn5BsgE7rdXcq-?KfL&nx;wVhKVhD zi+(t3YPD?I)VpcCcbskR9p6+l&iv4~_VO4^3F`JbI&e^4MJj`fmM%nF2S-294r+)L z-~?kd=_e=lNt`x^aes+yI3danNx=lY>EGtYqA8!chUQ<`8Ye^hHf_W7C2%Z4|= z*39-d+t~I%vTIEKu*MN?X5X$OzlNt~!Wd&=zTHK(Te#=aPO%XtQ#(BK1={61nR~Er zOW&S;bDNnJU>|+e+kvg#lvgs{%>F&=4D|H{p5HTXv{;OC7wn?1=3V1kM>-mvZLymm zPvn1c6=dpKzE?NntV|Ys>`r-FpEDX`jbnBY=N&89tuO1{5Gdknt+)ASz&38Zz}eg+Oi9@Iiio<>V+QZ`wz7`C11Llm!`7Ngq(t9VnUi}Oaa20Q3{LWh|$%fK1I zP|uHDFTNbdbi>a{YPl=-&WFHJZlat|$9u;uA)j1JM&R`Lwqyh+fwG14yprg1bqPoeWBjIl+GHo`UXgH8bakk4_(*$T5>2mBo96sSu>7Xy3{>EOsB1J}6mUYdz3)W`JD^$Bk+47 znm+`ZKU|`@3p9^_-{+;dmeMMxG0rg3xKqWtw6DSN5aFONF0y0m(+`3xRDIHvCvf_~;LCr3fiTXxG9Yxk5;Jjra746A!Jp2XXJC z@7XES3E`KKF)oNZ=1BaEvW!r|LT+RupY*yv7E`Y9%kl&KYw%#tlkyIcKtp*1Bn>U! zjG!dEe(L6%ZcNeebYa+6T3D7SqwJ2lsw#MNgrBXx+kHv7^!@<-gSEa?AR;Tejb>wQET$NJxZaSyrJ0c272& z%jL4!$Flq6ALepwK9_q^euA#$=wToH2y^=)@nkIF5njOOCvoMz9|?D6v)BLIAiI1p zcSH92>$7KNA$R@f2L}gpxj}pZKkRpQB)a?KlR0*IcHiKj{HGk(r7E}N8@9TQ??b=7 z=WXOn;T`=OwUrQZ=I4cD@3g&g89t+Ctgh8&vNgPmHY1>n`qft3uVrkp6vA%V!i*y93E3n=Ix86dZ&iimAM;-hUC`(iP z71&6Zf{|10ce1_Fnq8i^GC-aL4`>de{V5k`$R*sYDB%)KM4jkC?g{}Pi4O9UARl`g zop~m=w>x0UX9M#vuYzURf*7a>`DnHxvW9Oq z&;w+@ulQx6Gx&8lwsX6F<%37ZV%cnr9;Q8^P&O1{M=MuiJ~u)q;BkHxo0T7L+Wh`; zoG`h@FzJ(zb_FeA0V zHwUP>l#J9XWOPn|G9c8PKRKBxnSAWAWb*UAgX7}|4~>s+Pp7v73wj6p6T19`FC@RQ z>7%%O=%XLK^2&jME3br^4EkgS?;Z9m_kx8vm3rA<(%0v;jabiC)EYRblFo;#S{ zu$U*JAJs&H}-HT^O0tXp4yjmG2%XxTNa1gW*Z3Ja{S`o{w8-^6IF4~0$4OH+b<;GPx~ZFb)8K|; zN=ZWqX(-)nC?RyA%geGMgi@fe;j6ISQdr(@>E)Jg-)@)7vc09t54!Ab>9Smw+f48O z%t*HEIQ?SZ-|u~GSsIPxne%*~=bZof9}4FxYoiZ8EQg~3_H{X2xt(0Ll?vBS0bSQ# zt8HT6s6^VdO>L1#+h5*s#~l|gJp3?{P|AY2BX`6 zIt;SVi4)sO>|k+f{@|4My%Uq#?@|*xCsW$}?61~c+kD`2x7@z5ir*i_Z+tH5oeIwx=aRzYt@F`& z?(~F^6ym3%f-n~~e#NQyew>Tm6Bao4c>G|L>XFutO>A?Og9jp!mml}A>U$eUrSe2- zSJHOw9Czw7Yg0QjcMRcws1F^{&>}n z=5qV9*|}Vf`(n_qZHAxE&;G(6)I|0kP0Z7e(T@VCpRZyb^<#ZY;!bHyn&4PM^^-#z zfBnFADohUt*19hdGC?EA5b2;_92!!A0HJa($wK@q!Fr?^{(YEmfW?Yrn~Pf4(GN`JgV~D)LQ~_m{OVr+>6uOo*uKHHJ>O4R5Tz z7B04qL-@L-h3f=dEatVem~aMGD^LJXm<$iaNB@O=NDtQliYn&^@e=YkuhR(~^YG-L zUvi=pcSHrn?uFlkHwSFsj1P)lN7`KwKwK!ZGThJb`nC*6zbK6vfv&YNnj2IA-l9`7KK>NS(Q7p%&IkR1|slo_SXb~>AI=_<7ko zV?$3_$aQK8a&_p?6iQ@4UJ%3*SIu~fD96PE>s$J0L7g8Rvv_T}A@Y}e?C6oP2`_(8 zaC^=6`@yfQxZP9BUY=R@uKL-kC)tNKlHnP2v<`q`={4ZX^!ce}A-Qk)%riIxf( zONdb~mZ#MLTvWit{~&tyuKQ9Ce%ZF|p1C=B*XU%pIQhiM;P9dJE-n{6+x&sY_U-Gu z{KWe8@4mcosPp(Y-S6pG>!3NG)*RzLZqiI^Gxq?72Dt#?vmvu9`DYMXiwz%$A&43x ztUbOjS-vm9o$3TezcswD&`Id|P5|U@Oq4&~rR#-D*R5L<>aJ|+v?6bH2nD(L`qIhW zyH5gy|Ke<-eAmUdxn}onLE)xFb!4-1TN?%>eE|wcC zMJq2_m3m>7YwHsK?I5aqnY`e%SnUq*bzo~s^#TjwvWox2qD?nZxu^h7(ueEUktqcR zbJ}+-wLxU{I~i@zSiKq6(v>%?wZz$)EgAQ?=*D{K{-b*5_4o#rll131uwHM47nD|O ztdNwKpqExd_`B&@2PzXL2IzdOK`{gcikX=1CH4A4IeeEKrlV>U@&3^fNgB}))KoeZ z-8r)}nu1g0=#k>dS)?k+u(?cOd+FzEW^!0E!-^74j;C@nYf`C{+|ePYQoZkcU*bhd zKXCcb(BGA{N1X4;8kROwWev@fn_z@ATk>e=nvpWQ8u?6rY?4@Um!r#|HQ?sq*` zTs?f<^uX0u4^-oP4Ly-ClPj*(*I$2)(o2^u{(loOVUZjgP*;Bh4SA&;XcOH6fi|kY z#;@xdWZP5sxWD^d_tf<8cC>w^Og*4nsg|#X?{O`c37bG%d4Kv7Pi@=wbF!jiVSzb!ym#29xNDV2^MmF_GSH)NMHozVHWKpg5JL&*6cH1O>D>qae_!6O<5`IJJEnUI z&S!^-f&^S7wS%uCl`fLMgLM)a>e(2rG|1MgaJ!=BB3@;#n27HO|2d4vL3{}eMP*41 z%4M)a>GRAn$TNn0Z4b0O(sW_Z1wsT2To}n9Lf2_ZV4H;vsYdD$)73tFKoN1Eu^_Ea ze-mpo!n24_jZTGh_=XR`x5^9>N+~mN#UrpG!**uy`hyvVLpmfp!`o-3wzqW!nKOb_#V}MQ^mjudGWJZKSe6M9h;!#j?DN(+J2!Jg^+po>tj8gv#AZ z)>x^;W`W5MvmdWV3-4qd5MqL_pdx`2~S~mI;Fxg<}DuJg2uiCuZfiMx}C50VxJG7m8j0nP#B{zGH zK981i;nUG98o!i{o(|_q_=015fat6P&(iT}dRkbZXMKOR6ZLiw(v#oEORN$M8$kfl z_1{H&AjtCcX66cjn##N~oh$Aj|7;RMB8Z2%f77z6Lq9!7L17S_ze^~w9v|)6A$nfbtgw{gCX`(xzEGPl* zZEjhAU8uh2+Cc_~n6HxI#RWSYk?d+Ow|eh9efmyMU@+i0e){xrcU!5=edk9%dZ)XM z+Lh+R`%y854O9%q4DlQ;GQc&)FpTs#(X@5(Lqxt-PwMD3a+c)bI05nT8KhjZ z3x%{QCoAlb8bnB(DA&gX@gHH|{uSD^i%gnR+JQ|_k;B)EVTw0w|(>cL0=MZEym3711wkBtPJHd|9tv@`~lu-e=g&h87}?pLf>-i$i$9<1C0NPOptqL7Jhg%mo`&`_DUKqyjOxHXyuLoHs3)k1e#B&;4thmt%hs)>($?v{aUyT&zk2`Gxvo46 z6o<{WPR=PxEaG))uWa4Ap}&8FSG=li4&^>J0ji!`|IqjyfiE9iyom{HXgeba3E^T6bQ=@7%gG$q3?qMcQ3bnR|q~V~b2MLS+ ztJU#w?R}~--r>*U9s;tkgH}KWMpl1+EDy(EUc{h@!D!XP`u(*@*RW!tg8*6y*Bx_< zH(h6qlm~L9zIaz#Diba34CoZGPcC$|wzU`iUYC-%H*to0DCj*@9yO;f+>hnR9`ME! zGN>cVkL(O*!+0EANW>FkVo_Cs`1+@)pV!AJ61IvkKBEoT2zcs3^I*P3SH%QXADy>& z(h7wnM)pZRD5TI4Xo8^0!kDHyp;FhJVfsfIk@nsQ$-Bqvj!(q}?@JW74m{Q3`)O?_ za7$;VwcAS50uN1zR>Sj(K!e|bH(a~1Hr(J=tZuheak~~)oR;NaC)1BSXh&tI+Fgc;f1aP319agw+SjDjoOv z-f#unJ8rSrK)!|U3Q#DMIVGq}pN1|u{wC_+BkfI=X-iX+rQ2!~QY|g0hW2(r>0Y3T zj>e*lzIh&+KnU@@#9C#I`K=z9yZs0>hxLS-Q#bR{%HwnO5b}cC(LLL_?zyclt-_pc z?SHmKqir4Q8(v)>Y>QN$`?Ims-ie=7f-IpIpb>i9S`x>o2{BPi<)=w)QDu*NdIhAF{VI}v$TW{ql0 z=SL%VKt?y|Djbp#W9^MuXs)mt+#)&)54lrfdHfTKOavIJ6{d$+lxHw@XAqihJ%w_X z%Lll?!O_(Apv4{CogH4-210rEub3M^Br|$2z?ngyY;$Z|7@jyr)nl`{?EbM1y-Bs3NjrOZM&XoZq7;fWC|kO@@Qu)KE)vFbpRw0ja#NGCAb1 zIB<*cV-sH4{H((PXE!f_q|%!SV5XuA|0WO&22wepgy;yHT~RSHXGDYJ-moPQV{1gm zs_M-OFNrn9VJ7LzczjtaFlnwnYIHO?fmV?83hM{;4pc`L>q)22&mIV-;#m&dZh&kR zqN&GUc|@g{ZtOm&+C=m3U5*6>c;a zXGOviWQHDpJYloh#GJ@+HV0Sv1ON(#FU9E3R-Lt@Pv2v7AU+DRz%8BuXtonsVfp|G zvG!4%1nYBkHj-@tsQuNJ2Kp{bDM?QQk?+q@l437c-ht{Qc3g&ijYy?TUJ1W=*rrSY$j@S@V` z{ka3ZHOk&-3)KoayHtP|>&shqL?tx?BRR9bZsQfeT|ia#BXqNLz$*p3L5HM1U!rP2 zZAHCOI_!04C$x{fPP1~*gFg-(updz+gp~%)CmZY4H>sUa0^x1~3IU2Sz%CS$0B0s< zM#Nx3S5e41h#_hC0+5c{ViO#R%y>Ysa8py0mLo&^EyB?DpNWZtBkY~bN^$MQcrG^q zTGnf{GJ6!Me4I^P9nO5L;ElJxOZ&w$b07J9_9HJu!lRuZ`~Hz;zcjWc8)4tdU6#*Z zMjepmaRZk`arv-lu=j z9Y@uSR{*t%BzV)?v;(_GhabzO(vmzhvYYF0`Vbp~hv)z;w)UUBYHLjHXlv_`W36iM zjP@67^Vojp$WW+P7;)~`b;u>z3JsMvAl(wJ&T<*`0AD!zFD)w=JAWg`>*XDq*gwJS zuPgO`1mdwa)?6p~SZ>Rfoc156+7)F;=xp$>Q^UI2g8`47a{kTK_E(37hKGlS0IRDn z#OsJ3+OT10!-n^-ta{ysuvGU6?CoiteKV53<(8TiYk%*nWzJbn08?m4o7BL@;0xb-KwS&`x*T{SV>zJJ6j`PAXE?I(c zEGz9iuv0?%%A_`g5HZU8Dva>~^8^*h#@jAkqLDBN)56D(-)0nu-MT38aTLvLzI4%|U?nX_LAac% z6%F%c!wIy<5VRbX+5$@*!Atb@fW*ThtusUUeQC1Y`tr=2n#h;|7n?-l`wSBD{`}|Z z$#i=1tHVLB{FkD1BU06?{ zR2fmVq8_%D$@jaWq$-90qkwwkg0CEAld=Il87mcKC^)6_iQ#xq9?1md_)s#LVrSyR ziA-D$W=7=Tah#ZDkK$W+ATxHj;w@!Hc#fS?zMD!WaYoVRgpo|iTe0K4-o7>2)}U>- zU{|puo4=R1y$!<%bX=%+{WXcmpw_Eed+C`b>8kubdjQpe>7?ICGc|56{gV z(GIc2Kk6IMU#fB$cGD^od|tm7-47{j-hh-b%-mpmbA1~Ue7`ccx`^LC{84S&-lh9% zhdA?V2|IUTFMC#t>pE5#W90$xA{(3}dVU)hax#ItL9aIBnJNz%V|*@n9gx%sqzTns zbUQB0IK1YQlCf#nW{*IRAFy&22%k@*PjOC50&7=s)B3Z zdO_8GjQ^NCl$%YZPNly~CBZ)##h8Hb_%Sc$yQ9d?EU|j~ z)ZQBLy+zDZ%!<7);_kD(zIa?uQF7$wN=wnjwos(K=5kXeh&J|to*GGa&-7_Fi%5K- z*ixlds&vJ?z5RM{J{vMpNBpXnIKFjS@80RJki1Lz`3!lDEMIR)VzdF7W!|LNKO8&{ zo86lb{O+&d2fVAVR{ixRtN~r*DfGsu2H!|czjXdQn|5c8_J(iw_wM`T-ug6~)n}{s9;j5n5K?6Z znf&1X>31$n1G{liKe=>0#z?0_813r)a=%`#)$38yi*@n6JjRTR3M7?rvA3Y{!1ar? z6aA%Xe?-~pi?y)u6cwvd?Ie1!?)q~o+s)Gp@1$bEXHo0_M(i*}6qOMjNa(-WhMQ?d zfa*`{tv?E#wCaV6EE>OIv@uNISQ-|;Nj7fm^U3VAm^%Xa;>DBj9#^kfcalOxQFH7J z*}AjpiFiVh<mR*dyaTzMut{o#4f6a(H^0 zy9!=#I7}~hGh184<#H=|!z3PS(hcOU$RXnkAIC?A(fqG*0*rt6;e?H>=$kqhG>`nAJySMR_l;#Y6H;sJ^}_sH~gy957(pjb)vWT`Oxk2{dfY(KNlew z1TiJ%J9R2e@~`)o84Nha2RiE+*fD`g(G$z_rLo(_K!W=eHUOop_G5zr@>t1|QK#L3 z^U1=`49ENMbTDHnnG4DD0hR>I}qq5Z**?dzGArGm9AiN zlVg~T!_`iER%0EpV7Eo=0bqV1JSW@)F`8w`)Qq4HSY7c1B#qyKghib(`1L|Aa{Q78 zfcJ3BQ38b=d!qN1p2_aEE<2*MMoo?xMK^Bx76_EGkvmX_mjnLUZ;hf~ADsgV)=nVI#ZIh!}sho!s& zq%REL0O?E5Mq_Vp)Kd%a8m+KglPzw=UExm={h?0SB`_zDXz=bM>+Et_>V(j|d+jPK z-=o_1o{1OYXV{aUsuOE@aL$E)9-{0G8$xm{CWqMO%yRimuWEYk<~1VG5d;w!=?zl5a$KhuN8-IXqVkKWwS*K zUTI2lKW@uB%PX);s=J5iJo}#1A$g|gDrt|azxOeReZtMRSq0u_YxB2GO*sUm z*(E#NyKML`d-#?@cZbx0$G&v2+2v}U^0Y`p^by(jZh!Sp*pE$l-OFv{oTJG`r@ZWQ zk!6>>c`m5Z?EPQ9@=AK($CSV7s#o?*O_@IN<)cUc$I+wOC*J>l-KT2Azz}AqL$^&( zerwoxbT^F^>zoBlu0V6ZJ7I#43l<;MpUWTy87?=nPz^AaCyo`OoCJjxw1|u-k4=ur zqExAre;Jet#rwf!o6e?TgOaC?!jrL|Jl9_U7uY9@#Th&T!6GM1axf@M_|aaF)cMH= zSX9Ce+AYc2R5Ytf2PBm#QEe~WB1)h@V~1=wzBuoSIgV`n)EtCH}QhjZ-g3)lo ze&NgZs~n7%Q0pveH?>HJY}784|80~#HgMxW%Yf5kb~=k$WOOtO_JOfE{K z&*A4xdUzO*$5ZKW8jn;oonASH*;7|#e%yDwcmIaW&`{>HJw0kqPgsATeaP-<%rQn( zI5@9Z26zH1aqaq%2Z*3Ii(rDqsAE68i5SSJTOV*IPmA{7{cdP}#H)t0yK;re$^8=( zIU*KCmQgY8-~wV&lKC+Efa#O__n#TNYmZ>!`_|{K=^vW7c><3fv0cRDFMMt|OIee% z#ih@^OY4LUmW?&Y=S-_y%@N|q4CB*{neavAmn0^4iOvz+==EnXJO(M@Go*ybhAPF* zAQ@@^_EWbQu!oTkTN3ThJzv^eam#`6RC-%xO8Zv}Cywso&YY=CodFqtkfADFS(j*?)GPh~dKF1$?bJKMrBiC)J zj)N@5!F`Ax@t_2-%;_Bg5$IUpXjuBVQB~5CV)!7lJt0)mCkxyjF&q{zymae}4<7u& zDPt@d*Ki@?t^rN}*gNVjv<8u&bRp0O6c;b0JlO9O>FsXdC>xw;2Vu@=ZF0hORg`(zI0<^-JvzwSG0d;PNeSJJdv2dV{>BsC;FLVvt8>B zCDNs%iOrkwVb_)|T@&pkef%4Ji}DXN7%NvTV}>aW^G7vaV1b>1UXdFcKTSaT3qP#| zPkgPr``=K1OZy2Y^c|qVS6nG%b%jhAHF+a6z_^;E4Tph~JUzDjlGjAoA8CL4t6zbS zt4=-%ey-|O33QcH$ahDeMdQlPZA;7O?KR`KaYZ6n$$22cA-CPa&xJYhENBlSB z_0`!hVG_WIjGJBXq5;>Er=)e1eJKAFFA$~!nM3ILs|V~3Vds;Gu|IQqtR(Q$#x0B} zlbf5qa?LfA31UDm5Y4wnAF=4=F?vL-6K*=)=!+*5r<$j^liNXE<6v;kZbyl36~n5; zo|e=n7>6EmYR<+9{0^MjP5tIUy{>B4j-aky``Uz>LXj?Ui=vi%aJsPSeIC?4sc#eX zHaBw7HKV`7W9otQhRv6-99Zv2u_bV0BlfNsPx!Deq(?l`x1jJEXJ8RIy#OyZPcYbo z+o2Ht2T$xd7_hb5=pEy|wlW=*ZC)KR%Xp~2Y>bix1q3<+j`%s8!mAv_*`SQ0_=rA+ z>SY}IeWcW#k)*1>HE~OnQg%H1`clV1IX0Su!fnj`S7Tm!2mD6sfzG@V?Fz^TrV&6% zh-IQy$%K<9Hwcyl3<)q`>X1#$y}AcRPeDT{8T=!Up@}7f2r^@cl7u=2uMMJ(*^k`b zv8l3DPFgH>8>pZiHlcuI$tks{;*lD$R7SkWWmXub_u7$YCL31Lmi_xJX$D3wK>);@ zw?#9VU+z7<_cZ&Z?PNH4Y?cGS#t#1DR7ouk7t~Vf6H#|Is1{WHI?rUm#34tOcsA@+ z`5nTvnahl24~%8tA=B;p|B15y9rjPeZA8&H*yF=7LUZ$*%>Il`6$%gUAJ~^`IiMZh zS`O$q<$&JJzP?%xXzkf!j~(Z}f`CK?0CZWA&8_x@Eh0H_wll z?a1ZkupE+-(5wRv^KHCi#Oy%gHiu;o&OIa*ixU2{pYXXH?;EQ62XZ|9C$IY|jJ+$(iA(iPoej%Z8bM@wgaUFh zWAg3GqjQ1D)u{Icqo+@^Gl0os zTttmAtlhnE9&27}cyQwAM>l1rkwH9i|6^_kW`oO0A2l*AFBnENGfN96<67B@nhxu^mb(RZ1qFM~67iIl+TAF+Z`sCu(UbY{AhdL?v17 zR{W_fUb@T4(^n6Y?TYL!MjrO|Dx1t&y*KoOfk0R3^njCIT_^3+r%H@DJ^BMGJ_$<_ zQVddmr?(zfS!w6aV|W_? zP`wZrU4QHgw?5U{*{X&Dt!lEPZOubg+nt|wx4K-d?oxM&9dF%VeFxbIpKH{wA%DNF zQA0xoyy{JtV0i%=^;!O{6hr$pwE;VY!u*lgiNb_iDW3=u@wKh_mZj;=v$Xn3D9qrU zt^2EQ?ljuNjJ$jXk4Ag7cQ?QaLVXwTO`1;py@VP_F)Pneqr_@$5V>e3dGPN>dc}ez z=sS3@t9N75pE`=6wwPT^7J4poQWiir`zU4$@Loq9E)wXBk{Qvwa`_=)A`=Xn(Pn8y z4N$WL+zZB1j93(UhdOVBoJRhpnw({5@NZF4V?BMd^1kw}^Y1$Ul9C>MMGTa_#ZP1u z)nbY2LK|vMP3Y=7M0BECz`kQ(4fMKv*$UneBuNGQ21oP#@m7Pba;6YB-uP4R%LIJmu$p_ zkQs^F0;qGcO&NO+8!!{d)Vh>k$Oj{Q7otkuY&o#q)#GZ60vWY|HR>fWii202&32g9 zv?B(OOP2`Zvh_Q{EqQO<#&$?k6BZtw(%p!^*-+S{Uv^w4ROcVPbQE%t)5 ztF6h|B!@a29;dfaLW$MRc3+pXwaF}46Jo?`dL z?*m3XR`3S@3I=0b>yrHdz2H*)00up72U>NpBYd!}eWK0O81P7XM_{76t|J(=L>-}> zE23mAH@1wSY=77lLdA#!2XA&bfWiz=#khlkRVoG*f~^Dte&Y$?F3tK5RIdlWCxQ?n z7!;AInmXoz19ll~%g3X_$=!+P#|}_s%xb@je$m;?Yya}izrN<(&poGC2Kj%C@vvmq zSwgE23SfnOhZaoObM!y>bXGm4=(}1-yT0Yq4#VVxpEEo3pR>k0Z6`a!-HM!aI}zXz zp#3t^{3-Z-sqVS7pz~80G8%XllC)k%XpBHq3;@ck+XE495y}Ie?=m){w2#uah>P|@ zd=IolhV2lqPfbrB+p**L^fZVKW=oV7kd`bXARlqy)z4n89pO9pIX}Gs@t<2Jyuss1 zk*fyhDD7R}f&O|m?A$79Qa2<6w-&RAFsg%-q-r=OaK5pUayxdI9ro}ZHTf+un!7KN zrDV|AY`~37FtlU{?8czi#UsS=&%bRb|1!abXE7i&FiYt{s~#m;lW-i;ca^aWL81f?2_OioXK)I9N z@w8~On{C{V;Fx7tVLTx3NLVnXoL00S+hhUxI2>()#4Mc|v#nriEZeP>CdZ)NvDVcb zQJVa|c8+UywW{e3zNMwaICFDLTRV^0jmq*W^fFVI?n@$c9DZRog%+?5hKhdp!r&UC zs0WVJa;wjT4HgB}VbjW)rmmbG+FQCoG<(IuR6KP>_xAmRiHSk=ifbmi+IutMW=}E@ z&U{AG7`N^E(u_FNCV&3D!5#gB`>#j^2PYC&emML$?0tcxuQ{6OZG(pf>;3gax7N)a3_KHldNZxvmAPV2d*HsOyDjT9Pxf0OmT7Msb#cDj`Ap}{pS z$DcOY4k9Z=r^`#X^<66vCf4;x~oU~ z7t671mKTHcrJddR_gjjY>7wziUv)+~Q#z4ewDbQV`qFjq?9plivwI&>HPHHsIgelq zCua6)PtWY#vuE!Ncir{c&FnYY)7M|W=lbjG?9WZ`ZRB)bYb(+mB7HEBiH6NVH|G+K zxPek2yd}t(P%Q|Dh?;7;+#(ebdwOI<2_nUU@^mdqC!m_k`)=D;E=-B>TPt37;`mJN z6pz?-QM`}r)JX6;p>&LlFhvo-gz>|My*m1D16 zqStO6?dt)x#2zoH+$zO<iRc|X}KSaEOwDQB}hFD6th?}rl(V9-4C6+v` z0m3t_J*_=G{Sqy}oOt}j7quU~!~`U}X0xY28BBX!BUiEwItAGd`pAO?3%0S1g|FTP zSBwtNttt(q?3W3GhRhy%BtLe)q&v_(5td0%llw?*&^3m8=~;;nZy%0>!{B^|RY;IW z4f6hJmePR6fgeNP5wnz}mSL`i3ATK1Hd-!6vkT`TBl(968BMw+iE<4#AeZqdTlH ze*&wW6}5&r8`LXA;GMO;A9ZC{qU-FAMFz?C+hN61Oyg!CJ0M_gB!-D}Q12zM|O1!-zB(W=7 zU9qj&XL#@(Ut{0XzF%N}=noCY!Ps9bhZ+7C zBXdZNF>{r2pm>zigqYrm5S|tRQhqt`fGjJT_NlQkW*HmPem6FDgvx$&49=R13VH#j z;Th7NK0Q8m`ZS8Im)qd*G3j#>_9d=$%msKA;_9(}!ZE1V0@hU^+znzSU<%;NK{gzy zE?`jhvlova&n2?q9RWEJo{A=9o5doJD#>s{4(tez=Qx{P)Xpcfi7aSVxWjj8Pv8E8 zb`t!)Y`^HR+3b=wZ?SO>x7|)2a8UiRyWQG-4xZ&eAPE`GuU=@#qwPO}RjoGj5HLVb`N}pn>(|6PgM_<8zSgBsA3$e2nzOmUGaE4p_ zYZB{IL6hHMVzS+{rpwf5wz%ahGsR3HmTHqYo99NCw^eR+%Mo*9Q=`S{6yl&LG`V@! zM(I4+5u0GP3Et-LO=-K@e|ExRcG~Sg(qGf1-h}Nzpd(SV+MLeL#KM482>eh0N1@Ga zi~8N2Vzi@G3^xl1xb!BRrytY4yn*y;W^gWd;s}ib6O8d(GvwuA9wSErt>SB zUeOtqEA~Wy7$#PpU=MXj1h|gED!u$j4rjuMKDgT0>Wnka7rsl@n=qUR%=L zx$}ixi;`mVbzAOmVL>auS&6YH!}jd-rRApi<&V&ZH-K@^$TDZ8q;gPItzw>(vc3>z zR6QJ(G&MpbLcKQTR`%lDHsryKhvT_&ac^;(mae@k%@h%&Q%#=E{+~ZYQbSL?lMT!a z;K&{8WX0SSzuoQiwzN8J z&K9S;$*H!k@d(x?lWm!QoNB3BLl^tUX?Cx%@-2DC>lg*6ovuaaI7kKYv$S@Z&;m41 z;3D~|KOBBXg0WR?5pa}S4SzB_^U_P_4WBq7lNY_@utS{R`6N3wc$ysXH#fPQbzbso zuBj^rp(Tlx050*mdjL0%38FKEeFe88a_71m?ajPHxWyj|M7UJQuT8UW^DWnQ-nkEP zw}@|M)2$J0mR;!&Y3mGIBg$j+Q3w1i@Q!<8Rp&mDxC4l_@^(#(+~Z$Z%g*{kEqt#y zxcsKz!~Vz5feyZadw*7Fvu4&A^+w{C0^8u>aQy?&}ovL&2_Eg^xP zf}jA*akN0y9N~ZwE#)AG776Qi-q+W!2jH4{q7=!EO7`YLRzr8@|c)t6#Zp8s7Gfx-sFzj7zf}S=oKS3KAho zKGN?u#X>N{_vP8nPkkhkd*P4Sm0Kg)|9*#tp7gcb|6(oM`Dbubm|yr@F}SsJ6pVO( zymsx^4gow-Ki&vI6UHd$#kGlu#S2@5&*}?NUR`Kv{h+)-KpkA#2odAjG<#%P@VZ@d z3VWw7qW$4i2e#fPW$hO~`KQ8t?6;9=tL%QvC0jFVWZBpGq4;CD&&v4GKFs`6lg0Y` zD$s;*!b7+K*fhwNPEUF$8cga`$>@`?E>mfZs*OR5)l~)pbma0sOa$Y}NV;dk+Gf|< z!l$h*Zx8uL?MjHfD>Bic{dLb!BzSG)!A&M91fq==9^JGj;b-!Obiw6(v^dvyhJnR{ z*Vc4yF1)ZIt*&)m8~NXx)RbznHj~Px*FTu$xCI>zFhZ?Q`vVJww3C%#03>smuywN^ zb`-FX!PO2$hR|jyhB?dF8ig>}>N*DSad+>ID?uB-)9wb3R%wirf*4+k#L4E$zC*K> z!cOf3n5RGn#@y*`sqK|QWqWEH7r8vwZUPw2-;y}Gxhc`w+0)b6+GQK;7d`9tmCO6q z4a`)u1A^#si9&j7di{+3*=OxD>v4#(kj{ZHE$-vc-d!jUMq9qNHX|t5@S;X^h!gl1 zt;oU-;~oHYq%Z;49K|^x5C6>o{{Jgna_LT0`wkcQ2cg}1OZJu@9@1f%_=)kvt&pt=e}j}}^Mt<`)eYcLCFt9wNVL;))G>SW7ItBdJ`1PQ9tD-G& zOj|MjSu&SNLeKTO`RBdzj`{f=viEu5C1nh~%$|Gi9gn6)P7SA{j{_-7k9d5N+vf&` zHYf(X&r25i51aVB7onjN=)1L7@GluPl~ObF4!w&%9?-$TG|zq$^Q^CmJ*;V8m`w@U zXz1*u6L2PNo7&f>PBCr@uiAs#x0}2f^}_ApOaecdFb8&t3r{~&?elHuQ(w`q*-o6F zHJt^$qo4kku1i_hiFb^h)Xoz^f9QL|c+p-N9%c^?BTL0sVr`m3j)m|Oli9BWac#?I zW*&P?`;QH}-NCqz3Em3253Tu-RZqr9W>5SrQ(i*UL&40~e-4*V#^vGf4beT>xEvqW z&a?5OxFa)v=CS2>1lfUOXaj40?6LZJ)QWoot=PnJ`VfG6VbM*k)qBSB9v$PYY3~=j ztOKNPkztoq{9Mr=x;gS}zX`ZIb~|8Ney9|~9-6BG^1JHhi1rWplc>Wbz06+g#m0SH zG16pK+=?Mk4CpRb=nGxO%?kI_-HrX(-xN$Cv8mOYJL!EHYcr|f}K+o*ROMvAOC^owEc7Nc8m?~2DS+_~5te{<|bbVqEr z>+b8T_C`c&uHN&B_`4r}9!R6-UPXzQkAN4B&deNr?C4SIlBWeTM$)L%Bm#Y7c^W$WumucDRl33J`XlOcw|OfKG+%+Ry{~B9WU_vAC&yQ&Dma zN3>5*!C1+@@m_!EnNJJe_j0EqH*24fR9XIe`7dSJGu-*iE%}=t`tKqCyU+62U{QS= z_vIUc*h8#=hN0^hy7nDIbH@5H?XKvv2&MF++hUnO4Ci9My=5&c*LB?^q0lYuQ@1>D z%PsYt_iS-)MgRR}$GluR!Ob6}dZ_Qi7tKCPeHc0=^*C1uPb+7)^x?ywXYBKzUuBAm zKl1?NF5J!?)#rMHAIk9YVsGa0MfxLtpA|@VE4q}ATwtV)K*{oT9%4Vzj_%(5@UC6j zSw*QJs2@ba!>?2hnfZPE91o8q@4`K+>sm^qLB_1U%sLMGJASeFz;1=TELLr-JrvU;`eW<>Sb^k(@^x^Y!r=BP zd1e%zL9borZ9(@oLEHu&#gZL)Ed+~YOilBNa3PwECNjl|dnO9mcq*4HmTmDs%FVsc ztF(8?@~GU^j@MsY7H)KVY>m7uxEh5<*^RvS;7e}wHu0wDFxDY8F1Pz#Zr?{048<>d3!qbleq`U{&}_O^Pq z_Tg*?^{MWTWiO9*bW;m-7%%L(WpDNUa>M(eb8W`#haD?vRrw52(itHxq_qPMMuwH2 z&8MTPsO3aeMT$Bzmzw;`V)2iq=V-U4eO6Lk&h9Nex~-;my;kFToxrDH(pY{?#3KAG zr@g`+hyJp3QCyK-`Ta&=>7tOS&i-SCW{5~reSHwEv;(f%i2ZqPt9A|fJJ^~Fzl$W@ zAwT=@MC6O?3<+oN=4_Fq&`M%%?xcCX+Gci?nP%Ury~nESNVG`-o&r{--WXyrf2O-p zxZGf5Lc{gl$p~k;L%Sc`vGBcUpKWf+v#hqUb2HSiD_ezRb1ai0=Eg47SJCX4iUp-3RWW!+;)O7I+KH)#Dw4e zk8~uy=tKj$z?a22xlT{J9m(UfL4Px6Z#4TF9qk?FCiWF`lNnZ2i`QXkW?p-<#j^%b zhj(?Qrczz(n_V8WCv?r4rj`~n-xzSUU*2hJTXSfg-Q2`+=ElI=LV+z^Es{6xlAZ0X za&t?wt=ZYqDVb~*o^St?tF%93*IuRDlKvTEuA#K}d$G3sa z0iEL3ZT5o)_-)Je7vk>K`9x6tw2=2!caG?0{zW;kuf#7IKTLiis>Wh(NU?eCj-B-_E#_@mf0WUFok|0PoML8l@b`Ymu`sJwtbe8G`I&29-J)s-VGvj-!)h=gtMk z#G{ith9{nxOwB!jEDRu14wR+vZDs8VDH;xx=zZz7+u&rs``t6rW!DaD`MWLAHQMLD zK^~lM(5K({Mj21^7XLh0{st!h<+74j%aC;y*|0AAAvWBaaI&Hxrc25C&-KE6@W%T? zV}ZkyS8aeeT{rKSBH`9S5@zt-?;advYwM+Bm*0NflHmWmx~xVVl%bEd(QIX4ACW5? z%5H3>+^{|X3;L4r12-C_&ZVd1a4wt!5!nJ@jpxsU>pwtGKbRg#4WUj*Ul~RF9dB4@ zcyGg94Igf}ui?`TUugImjSYk24Aw$Q1wnLY)x$+=9rpiqwmYmQXhsThB75hX{g3KD z<06X@v5N;-Tnx2uQM15y$2fEG0ZX<;eeN55V4@e@ZS)e&(FwN?uSntMYjgX2ZU#bo zpQp{&p`WIY#aMq#ba#05k2}2k@PBPcks-FU+|%5``+1%X8?V~Y=9U(b=g;9&Ki~2h zde=fP^d;_iJm6MsN)R;o!MI{~D`F7Y2?FsrcusA>`eRXX+m(0_>>h9Un_^JG#pGyQ z!2LzxC-^gt@Vx9z{Re1b(urPu7VZ37jC9IXLAZ`V@Wv9dtRHg>Y-s*GHX;b+zC@@N z=03D8S_iz-{#xxXHVkuA?oW-RelU_6`MMmRcOwqXEvUSkodkUu?;b`N*TMKxY=2ry zlSv;t6?RkvPCyBAznz)sO^x<$+}Jxh8f#NMJPbmVR!&vv8KxTEqXy!qPY=m;WPXVQkls>KySf`-d~AI4^K`g zQam*?l?{Ad(%G=f`VW&|;VflUivA>>{z+Wa9+xsZW>RrcEgz~J!Z);09Q>qGSuRgR z-#7PSw}bjcOfGh%fHu{Mpx@gF8-;{1-8Enc2eSnvVh@!ohxVA=RawBzEwS6AIA~}` zm*m>}aJl@jW)6gF;y_FiQLup6JE{w)?S*JmPcqv6Jmx$jLpi+VZ@!+ey@zB}ZLd{d zw;_Y;?%kZf9BPgHLr>2?#QfUht$jOYx?}!O`HppWP@QeU!J%s_*WyvDH$%Q!y}|hV zR_bj@!q>0As+_m#b=cU}SrZRplgQONB!RWRu8MkbJ(k`=Jz|;$kw`vER0Qi|t>4+Y zH7Kp=xnW0t>$d{Y_4ol3JAT+NhKIX1Z0H8P32a90iW-RiG@brwT+$v5^iSWAic6u& z`zlB9O>F=N_iWgZ+JJvx!`;I$U)8mFtxolLlQ-QL>!oGiTfhFjGmWmQoa-Syd%v_M z5Q7Bz&vKa$ey39T&V}E$MQWm=2qeB>WihQ)7hZc{h1j~zY;bcp(OZFefi8*=7$gJD z`*B20Scs%2t@VRL90BDqt{@1LKbaKLLS}n>`+R(&G?|!4ObSAFK7Ih4=)y#t{mh*b zCVoukrs7l2#3xIW(TVsZPG%3p=d<{K*w-5D;Kn12@u`OY#TuB*qVN^2WkYN)yO}LO zmKgYGvprnan$IC9I@*tr>Hd5_t$Eqbd=_{xM11vUt$@kk6TGPXl-b7O!~19_=v#nK zXyH^}EQ%DVa3mn)!-_>5@8OSBE%1l616ruh!G15?+wDZ^LHRW}Jb6Kc+ebj>KGEm* z!qi8H8L`jmMd&c);qW5(q7R?oZN}$^UX|;|d!+E?05FH?C=>IGxqN?)azx+^4)gvD zRy=U;4l-E#Q<+1e=DumG5q#0R3Cn=AlUIEbqF9@C`|`2@>o>}paqQ! zP8?bEDfNSs3S|r{&i+IdCTxu~QbLC8=KCf}A0XmuF3^ zcKs#`3oskU7_QFRaAd_j8XIv36K-L0o7!-BNoulu&T2C?gScO?*qv);63u2u#QnAY zVw)Aw2cG6@EG^pKTbmngO|HhKag)W_VzxATT`?4^Ng3cjKL&gl^Ee-Gb9n_6%EFtv zS%?=LmVe5;t<5g9r?vz{Q=>Kh3k%<5;#;ggVuG{LjO`UWAT;U~(PU*3ATx}!qF@0V z)nOAVi|c4&&FzrX(-<&n!=zV6pwVM#GPQH8*<|8W)EN-&sOu(E0NWL+>Sl`-VMV@1 z!DKVJ7wZ}|Lw7JQRkw+&R=3Gxrn>M+s9ck@vN2KN7OHO4QX4awaB;mktsL{AIeGR& zsyqZJGz~JVHQ{Dr!ezGm*l=8NwFkD`TNJxpv9C>}t<5ISkIYTjj`G%ft>#A5zZp3d^}SF4 z>*ZHr*&vSt^lk%ew;cVpsQY**+{k;EBU8!R@6vrx#7w2V0-9FY?Y>9*Eqchj5{)WI zu#wU~e@c!T)F;|KP{PTtymUV!Yx?Wm5pK2+FrjeYUi!|z(b7X~qN1H*Htn~UlHkHG z*;7M9FG38x+`TCG{{{WftFv8H0R$FnXVao99@c-|8WYQN`H=KZd$PZ~=?ZrC)dq)4 zXob7o7a^{rP%gqHr647b0M=)}APIPAaipw}*gd(ZUS{K7P1wg%L`TiPL7)j2GXaok zplpq*_b*xykt_*#p?fkB&Cjml3NZLoWw@me-q2RT#oZOnK?2-r6rSm`Y^ta|QDmTB zB4Os|4N*|s741yOl-H?stUOqM;B+DSpi8y)(R7uLY$QE$sY=)8h_h@I$}%1owLhVF zUPltbZlV3jI8c-6(h^ns!Tbm$GMLgXDVWh4zB@9yC?D#H`lq31lMkNa^&7A*=+;9W zUxMyojEn(baj^n;YP$ohL552nC_Jb;H82OWg!k-@bV~2Gcjr@0?`~B)rGN4Ak=E9@ zQ^3F$81rtvd3-al+*c>QuXJ^ly1Lk*Xg~_zA5dxkilDc>0pyN}?%Bh5iX4{Q+E_4J z7#}|{?%kQ#LG17)fVr3C?f{Rw9tV?$CQcP+*gjWE4@<@Ci2lnj6P z?_nP+7LW4Ma@iGVB$pJN^vv4WAa)*#6sQ{=4A5@^fBW+W%hl@*lP!a5Z~dFUd9Zcr zuHvNs_-hOomMk1B2DC!4aMwk{g=ETLZum4%ROIK4>AZP$gVc&%urx^F$?{=Gsbhs{ zJQIXO|6||NN35d~it<;~M(kz9yR>VUhIPpdi64AB`}eiRzzwPG4o7T$9uoo{{{(xq zJ(AaMmek(PQFaxQ#uVRP*VbLw*$yF7R6`zhq^Bo^Izj*(U#1gw9oUNgj!4KW8x}gg3UW=mUJ@(%tuoq8b3(n^G*wf#n^+5oJ$Zx+fUE zjBeEX=b#x|8+e^>Vg%9Gup@RhQt|Y{`TAh$tztWMT$ipK>bcek`9<4LlL1dsExPyC z7>ck%LQ^%6OYA;Gs{EWv`60cKCrrHeUubB)yCoJHa$uAOLPhQGi(hJP7KjQ#U~`G9 zLy`RE@tZe$V>CufUF_>$3bmEw_5tnJyaPC85U+4w6@uDM5J}k`NVmk>hNE0~Sd=7j zJDHt;DW=3$)en*33gM~e&%acvo9l_AbC~)m_6+Ec)iPqHgrNd)v7{jnGQuyDAvJbU z3H9L8r4pi535^4awcAeKK012)r~*PQv6M*!#O()_U|>4Or-KOB3r1(>_l3Wwe;@`D znOo@_bimv*Geg5{@8e+tsD`yKhf85D805eu;N@-O33D=wpbS~s|=2*nG*;M zwhJgL6we{>q65uFh4(_`M)VLezRV2k;3Ww#ItCd&eEuvZ+VZ zwJILkcR>Kfb#wri6oDW@6&!m!$UK_PXiu3I%Aa2;9N7>5A(}^)%b&o!`Vg_?p_!fSs0PQq9qp7 z@qoDPfT9F;WcgHZ_SU_@@ZJM^!;k78AUkUMAbkS|876-WY(59s_V0y@VLY^N;YlBV z4)jI)XxyAc1EPcObO)$|V#@KNgX-hY%~J#Z`eS>-S#ss*{%=|{{v0!EJN7Sm%%l?y zR~sJ4{xqxv6mSAnje}1WuyBelRAAk(SThmb7p8|vP>j71P~pQ49k^Wj7Z0$a`6zr3 z@R&u6Y0H?H*{LaUF8STUoL6F1#l*(<7PD*#9W)hoEtnK?LEm`%+r`! zjR&%07zYoyMRPI8dA-^%Wf|0SV2u^+j%<7+8XeIuS~qSJK*SECJ{s~c9vKy3tQ%YC8<&^aujZSmI@;l2;!CM`pTe@wHH`YdTN50dv*1|b3 zY^|GOY<%XxAjWJoXy=hP9Nk7y-|Nx*Eo=?T^~6Qr?#34vNSEFvI0;!&pD8e znbu2QP?DVJof0L^t#FR;unqBm4lF_fD<{TF4AU5{QW$OT0XOTYwL8 z)OY8S=(74jDlG0)gXp%(?pz|CDUZyKFMdJc<%MxQ7X-q6yDl3TPrSQJb%sn$4wv1* zn(ZzpGEUo_po6)_;&)%+Yi-K7Bg0M2_|$<9t;itOnF!{CtUH(oT%dj~CQV_wVGnen zT302k!ZNL)pW4glttcPqKh&P9cU*l}R!gj2=Yb_ujBi-i5Zt0%(&z=051EH{{Sdl7d-6IHdIaq-ghyud~tG59DAog}D`$_0HHD;lXJSkZR4B@rqKlr5}i zG#1>vv7-H~QqkMnz;f}3k`7}fqn$7zjA+clfSe~QIkmWdu^YhHU@^te^oSusTBcs0 z^0BrNHXph)jS)*Ea+P&(UpYM$x+0?WsomFdShXJL>+1A-M`zlU4gKem>n6%K4z5kM zxw?n@dlRbYCMRNI7Wmm6yhD4wBirF|UD3(5d75@ho^LeUTfiODY1-gpM^X|#)P7N5 zUCqr~TkSaveMHtZ3-)GajA?^IN`OZ{sk1NFbbktZS=`^~L5#Em2(GfdS*iRdk(6iK zU7w_6FegCBS2$KkDS=(gyeqtLd?B2;_3*8U=Z5H9KuHyj7E>|~l11(tYlgvB72g=g zgDu2|*IfAb<`y3Uu3Ma5!G1+5bp@Hs_KEFnk|a1ih^E1ZJU;WcKxx$5rsjX8K1Z0= zm4odq?PZ|r*LY5TpT2kPx@)gp$M*gn{crc~%C23yoexQ%szw{KG*SFo&gTe2L?u)4x_8epGt)E&1o~zD2f)ES_SD$#fk~D(QLT}hn;D?fk z)7>A9v$yZ^wzhgFIm_q6gJC?dervw*|RD-YmaBicO2#DRR2H>MAHZ98=Mq~W}bl&bvQYU$4H9p`s>btPCT@4;fV`&aGVomYkFJU z)CG%jTbuuCPpjnh@y$@6oo?CzVFT+FKuh+QBi$P}c8_d?%eA|1-iac%{A~?@azPs; z=5x_c8Zg!uKW3AQ7Z+p6H3~>w0T4S(JeM#l{U{X=Mzf=~?P+yamdl(d4bLB)A0D0` z@?zg9cynp!%+Nrhsr`#btRPO_I=QVFRd*+!4yID&RPvn3VQ;gJ1e&6fJ+#9kGA<)T zcZJr5LIqWO9IwpjbhB@hl0kbtXdoEOPN*H)d}vK^>(+N{6?Z4E>0Z~cbGZk^pM(_voAQBW|)+(gg@l5VbO(~z4@(r5GIxUx^C9I9J(5o}yrb+LJi^L8E`V)SSGutG(bMwr(bIYy9m&VCUQrZ9mTgH^6h(0y$C$(k#xcPS zNywOxX3`J>O@ZMCN>g6VP|9UehG{9&W+FrNx`W(toN;_>YWf-QVl+q6L(oFAM z+UamREjj(awYOx;iIV`G>qzo5+H0@9_S$Q&$G1oxaBMN;XRwD!6EX^RZK32prrjg* z41~{)qBuEtg^Tzb0V*}X@0KRIcQk4`SJH2&9nFFtpsbMGbA#+f+!`AWx)x8}@VwLR z1l(}Uz}-PFj^L$i9EB@xMtJ1t(@{M6x8f60-X4BfoVm^TS`6_ERLs&<0jo#*x#3vE zjUbl72`ttaKMe5Sb3$QI#IXc><2S__Rgc2OHg^4;*Nr*sza6`7tYItfm4p1} zzn`xzFK(YP}f>GzDD>4V6V0}Hv;#3 zIlt8r7->4iSatgiH%NYdGae;p*I&8Z+r&M28zdfnt`AEL-_tknfH|GpR@IUELa`vh z*RCdC7nK1dJ)cbmfNx1TP;XQQo`g$vm~AO$n=4H$b$O)W2BX34S6W$n_3YupA}-nV z-&A<*E)L2CejCVuKS0ae5a0k;R?S9!$h1IRD)KjQ3eAZ#rgf^1X7_|7P3*4BRy702pTEXw#E`<*;DO2JX54GARhs1i?oorFCpP#O{u2oEBCD2 zQ2*w6m!g{fV%vCaxO~YVO!{zidA?lRv$AR3xBVd$+4zE9RBFnSuJ^+*4}Pno`gdf* z_m(@?n7jL;)A*rjxx(;?z9g$2vI0%lh-DG>*W$+5>rC?~_fdIRzMfM&H7%{} zSnqNn&kyNUl;f9FAMu#$#<3lT=mLxv7fyQ}TACd2E|Ax9Zc$}iiBM61)7Yr%KvojB zqA6!rVD=;jO-L88ob~e0s;{%-pigU1npBx&#gB|J_S;-NPvqVQa?jBZ)nLUp* zsWnD|NyKiStH0hLlxP-&6U7aBg&f#W1IIHAP~{PDBXS`+D-BY6=oET?^Q2-J$KM`e zgIE53(|4LF1vgij`u1?VFA-TL6^9NO|M2<&Ko9gGr{Dvn#8cJk3%hO0qVYZ~Ano_& zSR``^oaub5K}vxO%qKB03^W@-qn=>Ja7`r1&lCnTwHAT?zL~AeVL!=?-YK znPUQty?Glz;YkDh<>%Jomg2|&0m2e6>@`I{s*ZF|R4&NXB>L#gN{7&w`GdeK_YJ1U{* z)7}V44$H&v9)YN9R~j#zPL-fb)Yu2GMld(vlAQ}>Qa_gn^1vvaoWhok41xt=OOKAS z_~+nc39?81F|i%Z;FiqTCcqZu64cfc%NrIn4?zy6N?Blf=Ig@6$d*pa97?*ty5p~9AQRlBe_+Z&M5lvzi zd&WG|>8W&u2;}Q1{JJ6JG?cO9txdfoxRpe40D(H7u7{)=*uDhwfcB%vp@Inm83yz( z>5bTCe9vuCCW}Bls>IedUu{=ZBlcZ{cos zQN{RGZ@61=M=~hNVVO1S>#MWF`B437bg!bh13111Sog4A_9^PVM(nNE1cQqjwzTobva#)gd$%2Rxj{xE8caV5|bJnyolBr2#wI1gcj2P;r>kAVNwivQ#un zVintXJV%^ocHGLF^_D(la|GNaoFP)tSjC~QPX08ZUdeiHNqn1qonu|8?6E}X$JGLUrl_)XF9g#vesZOnVE^;o#!rS$L(w`QSpeU)dbc;(7ycceGOJ{F2U{2rM_zmE!4g&k|*3(?%OkY?yAI*49JTiBv#rD8oM;{N6YSIf9Bmnwef5+I0RWz>_Ou>HJ045b37PKD!yN; zvG0A6`G?PIFo^*3eeJCDO$9L|8EMpatQR)7VM%R~<`qs==A9D4+ z*GSZxr->?m`I#$dg5SQM)FqrnK#6*Tlz|>ekw5!cNAw)D1(m}OnHAUfJZPhM7V1Qg znhb2Y2cYo?1DN{8qIQ&svr%DoZ&%TR7nZQV9O#0qlx(Q+D7`vke$Z~8i5XALFvIv6 z&>$)&pI}q!@Al;5Q+GW6%oECW($+n$>z;Xrtv`CSW*nc%TU zE0sGY(zk#6+s2dli{BCzM-Eo6uH<8_`=JwZphL?wQjK~0nNmA~3%Go701h0ZgvbME z!9HVCpr6gtq2y-qbz zs5TN=lrTha=3qNe0%I>$aqjj+S&aQC8Yt_*tMCZwZ|lA4svjh#&1AB%&-Nuw{;tX@ z?8Vh8tq{3$-%*^%9v$OVAD7Ef`|h;ef>%E6<2*zq(=8_l1zi8 zA>>9+2Ya3z+Lk!LzZ$y2q+LmAlW#|;M%X@r4nNj|1VjakX1Nxd|DazhWKPm6MioH!-pcJJipdU#5$57EUWE#4d9jt!xK$E`r zE1GrXJAkPt?r~e~VdwjUJqHrTVN)rxx$^!ys^-XM&`SG3(CUP25UM@6RtyMaY;w%@ z63iX{CvXDDIVI-ubP0bN?v)g6=iGt1e?yG9?Y+**2D2|zWMj7{T%4V_otnlP3NezjwRWF zzs3KVW~-uIt4#Vbh%%>F;JrApdsDD1+l2R=XaO~#nDD~zuL1DgH3!g!QW{~+p!odO z$yxp}dFxS~zR+uXuislUev9yLvYdVrZLRQ-KELUG7Z`VmzhwKU1l`s{-}QXAzNd~y z485jHskACSaoXMmeReS{?FHvyKR4D>7VLo@Z2BmB(a@vRUIH!% zIC`SS)`uU)IW19#-=o!sU9NIItIO%5PotfdnEUy7|MxcDpYGnLzCY=%r1#QTD<5{d%FBV{-MQrGKfY^bX63~f^EP69PR%i$&>eA%Nw+g%HdGZD zU1DS(An65}E)jUKsbMrt?U#m+?W6;HSRCHQHulRX9L)K=Zu~O3^|~SXbfU)%kHUh> zD$JJwI9OV01<>%qch1GkiFOfcJTs>-*wmB3m_)g{=4on4!3|_h`FzmE|zY? z%x5Ta0za88McGB%WP(n^rsI)#pA9J$3bW8X2@pomb96mw+>%Q960$I;_Z2Qmz%?R0 z4>Lbd;KgiCe1(2BbGIetZEsIs94o2O^x7ry)q%k3-X&|(-D;@+;(oR!%xtkvhlN>7 zHfHINd+ex7GDjJUno%-l?U6ey%vQ2UmUaNB*~PD5=3f$wg+j65Q<`RvZ;Dqk1!Rw< zDPWFIg`!<5%s?&7t`rXvY@X=&c~VfI*>~jjj6ZFTE6c^Y+BT{<19yfaVbHq z!V%I-oF+z-Loom!PAkd>yP10b(St?PV?lK^4LEIGt0i}2vpbSCRhP2sd9Nj@N>}OZ z`dqP`ucfEc=`G1xzFf?$M~w;9MJya2k&zPgCXQ|NARp`%$?CYoF0vQY2_GNvChQHYLt`Aj-EzqV-C4W zQrDA}Tqc(($0j9dGFHyO?FM{+w)3E~Zvpy;3>%kjK`NaLu!I1H(q96GdSE&0Pnl9c z%g4`Ph)^)>BcosZ;@aacuN(cj@!L^tPbnN<8eyS}U4O2w8CL&k%*7JV-E!OWxBTcw zU+=&0ucwTE?V0`#+K2WnpBNb6`=SEfaTHdysA+(e--KQ{gSh+Nl%DwR@T}AFQ10kA zHf(sj@JGordyi>ymHG0o-{gMe5x4PVpGj#qCoGl(P;Z>3K8p#;Rj~!23rw9hYusXq zo7+20d5bAvvnhU4$`yhx2sCtom~#L*1<1+u4&Zn~m}73@HmhwAxG%_%SWHj8srkQr z?c2ha``WEd7F<;8+j?#8kJOOt3#?<~K^#Y+COg)f5~hugD~v1OB3H<^L;nrwbC3wa zrU0JQf*mA4a1a@o-xNQXn)<=9!k4~On4uOT>;~@>Pk8V6$Nl^N5pTu!&aY^MJ7}zv@4l$x+H0A7 z(Yx2Sao>yv`X2`EsAB|Z{~);`a4{Ps3kqf^yb}wfM)0>wTWU9c=tDOe$wP-)LPK># zT7s`1I<&pE{m`Kg*Arp(#c+Z=v5D}H4`FT+o?tN7Tk_ewr}6gW)A(hIgGImU-7*u>}?xvg4BnP z=g;+7QKd`&0!42LH&7_GH(J%TqdbdBo^&LqFPp6$cGvq=ZXb)+r#J0Ug zsTU1Zo(;I=cH8^PW}D67Sn5PiPLF0+SQfdiRpV8uHeJ&-O~^eWm}ohxslwTg_m65 zLf_kf-y$o3$#z2C$bJ#N2#TZe`>L?%nsDQYcp{yRA~elrhv;}$qR1NESqsIVE_a=m zO|4F8!Jgmm?Hlc5S0_>~707Q0D46a@u+edsFBWu1C0{;WNDe0}G5=$~tHkp;BN|J3 z0BxuHV|OHtedA`d@{3U@v4y4}?yiteF97bz&TP_zEA*Mk;#Wfo__=#pXdAk1Xff)( z`YubWA_e|wPT;?b;IjTakqihbn8iX#yL_nlY@N$J>^07oeK z@#s&$;^kNtFi{An4Msr#ed;XqXXNG(e?}ICm9AXX@{MIud$mgOaIsP|MpeXb(leP@ zES~mVKec6>$7Ri-)?eqproU|dhhMFXYFcz<5+B1hXMpOt0wL3-AJ6q^u9@kPe@Y^6 z5HQ%$XcZyD79HS46bG0rXQI8BLb}XbCOw|taV!?oeb>DS$`9V)zUT6;Gf-|rpW4e1 zm$(AR=NBSt{s54zKGpV5&|y$lRvYXqO3Nd|Q1lD}&q=3Ivmmerz!IIx>ve-L4E6bhA zP!$zlK)eX_1;QP6ONVPnb2_zl#TisB=7_82ktPOa=?aR~YP6E^ zwY@{eMUJshHq|X#SgI%3H_>jggu0xX$IJp=C2|RHD|FQpb+PWSCz3{JkhvnBknYxR z_XjPeF0IoOFnhEs9a2TmV_uq*A}-J$X*UxVzZG&g4mrFTr_eC0y<6HIX#4zPQiw8s9GmdD zKmuS`16qXyu|?=8N8t=oh1TfSM1Z8EResUx@^ldssQFylV7Vi%a7Ga;_0g8bTX0DS zM2sI&7KUG8ft0bdNwSc9n51QrIngdJl&P;@PR#9BGH=%mUPI zAMQQ*%D;U?f&}$Si%L+(5xdDYFUL{9XU++cX3wS5Ifp8xv1UE;f#03^k5N^Ss`xf=<#Gz}l@z8n9ra)v!evpR5&o*%ucKM`u6m5)D zmp$mW26m%?5O>ZrN;=pO%gA&4$)vfuAOYu0#vBr}>W&lK5< zTP2qt6Lm~Xpe>un?~=BfWB!q`Y2=Ni$5eE9MFz$T4%Ow487Gu95*8d*4CY8`$>LZc zJC-T#CO03)e#7E8$sJs~Edk zl*~UpHE^u@0IDH9xDOxo*W(@)J95Mt-DCH~>|eqa84bvCdc%~Z335;Ie5K1`o5#NM?flLQp1cuZ+ zm>sB}flQ&w5#DOJ>qr*KS=)mI$j5ZF63gkY`FT$#=>HyE%ruFCTK{BxNjG4`nubfvjZPh-Z~ z1rEhD7_sCrh0>{WiwGwCFcz{jIZ)WFzOUC%M)ZJmpR1n6tTE^LxKYDv&-)-Wyvyhy zmM;ZhQu+~?X{1vlLkqq1&=YigJ%B*T5R@)9x_L3Gs+l7#>{RLr z$D?lyabb};NFiY;8{RMsL(DZfK!;EMW{vivRkW0ZHw~lQ-5Z=A=j2Q5r@tB*`IYhc zDqBWlk=}FQ9`pn});g@pIS)DJAf^CJL{fRpjO(msyiT}D`qb1DTH2=+w-$MJ^_|6B zDlDOV`WJ=5FVI`$`=;V07l}OT`7y${2eu^;{uB3b^1>4+qz!2P`4qh(6u|Sk^H#K0 z;qXj%U=Ypsz~t00dz!Mi_r-KE4j;qBmK*c&@v+{} z`ZTk<7g-;k$-USDZJK@WdmHn4qwCYiAzyTTK1&(nXI!9<^TFtRieUfzf7m}UoKL(D z)ja&mDQna`0if;ZHtsKx(;5DollqV67ftOdZ!fa9U3l<9JhtDcl+xif<)qqmW9O$< z^d~~>KSPP4)P?Vwoc!~5`@*R*+mSAIzMJfsdAbNEY8j!QV&5%X zR}78q)>zmxk;Z`Q#)+e)R=YYZjkR8cyz66{AdizK8LzKf_qt)rFG?Wk&ra~|@8N%m z;nd*h?}LRoJcLuFoKO)KCeXicCU}4?|L%%iE0=BP{_A=6Egh&Y9h+X4$*h|mTlzCZ zj_$j$vb&<|t>XWZzO4*%C^NQY6fYo!`-22Met6o`;1?llQ7&Xd^U|G>7p6n`cG0R) zORf^`ln7?@T9B5ALmP)Q@)T3B88H*~p9$5tndtiK?ul&m@)ZMndb;zu=T~hkEF1J+ z%_>V9G%g)e`Bd2bFH!!IVOQh24wB0#8hygyfBN;YTy$qSpQ~j?w=`(Jo2JFjpa||X zBzqSi;)f1s%@v;0-bjik?QO{;#Su>IJhJyF+Ly}1!ppyjq{v_UzRgds^>li9l=6-; z+xb>&I)y%?jrN+XEhG%4gmR z1EgzyJu>oZBT6~j#0TPm^t(6B0@^=9XH#q_PW`gxz1t0~6TwB9+5jPzi>%E608<$v zL-);Zm5!$YdGXGSMYeRWj#|+t>9;ejyW|P0@ofFkx|}fsuQ6%`#J}LX7?(yxA0~

7l)Z3?(-{?4pRn4qtc{-? z&o+mD0<^T8RT}q#%}IPSqCcAGK%?iVN8p$W=1b-7Ter%(7@KvncB`(3zQwem>Ad4LKx zSXB#n1d*Imyyq%cS(Lm zAdPGrod6z!KOX$|!kXm+t+wG)cKqewmTWhNPUssM8E^%GV~*rh!8<`)1o>Fv)aq+7 z7r8zI_Zs$M;!M=-aA|@#1_M$J%2u){RKYq*`GuQzuBMcYcRji7-3MI)2?W znn!5DCtfL_NGT62kl}4=usP2YCz`W7@o8({2%tT_0IOE;Ufes(=sH2U!bmAAI^pW3 z%SR~z72+@PcH<@X)4%(q{r6)CBD}}~C%;1>1gc4xlx}0 z`r1}>G>_jlur?LnNt##4n00PpFtag~ukV|%&{r;s9JL;mJLq|LF5&_ibLD%QTP z!hSYMJ!L}fR6-iK-1r2$h(#OiXZEhLt$ta%khh>oAw2b2;}c{95if;(7N*?7v#uB2 zJsSB>i?7=k3B+Lg^*xa}Gv{Xj9gYe+2j~QZqTU$O1KZ|n;30C&=GSj-Z#C{zmO&fe zO%w-1xCuG}TMR8momt$6B^?b`@2M4&8eO?g6bdKM zO!42WmD$S8>GZ_@iCogVw}$u2Q6*$G1aNtXh(sDL&%Y(tE4B`N zW=TYkanzGJ-jATIuf#i6OVveuU)(vyuJ`NY95eQ4==;6L9(%zbv+t3WH0xW$-$ib) z7LVB8wB`zTOb|FB+vw0-8gjGweXBW#wZH_u_^r$WY7h<(cqO<4Py|p@(1(~3W<c9Yz2Xh& z0cVisD2e$x+o*csd|)+P(sn7$n*3fOc^WwoqCXDQDmq!=;_=3Ook#}tqr|{(X&M{2 zCyP@qg?Eyy#SyF3ZdRzdt5(#sV`p)AD$0#<2}^C@cgL}ib z?)}liH9kcOOdAVTXGlvgDZ$(kpI!;K@W8}*K$))ZXgdfV(AEW|-~^XW%$riP(ICK2 zZr_-dei`T;NcHj-CYxwk5 z@z(|C>+oBfoy8WjrMPvPhaUj|-P8bvzNaK!e0%QM84viRWYz8pTKzt|-}6gfx@!0M z?LGj6A`9vieM{1HiUvu0(<|Bo?sl)Y-5qFe{ibE_^|h@Pm_cvef>?C@c*mQ$X#&Ku zb=K#e^C>I(io;Q*Njp54^pmI&t~xwHyU*kBzYzwsF7Kc{(7vL{j`r4XAkLg0A|BTZ zdrIIB@_5_;`7^PQiwEN{x6=ZV6od0N58nXt5GVjQoz~3ekDd~J3!WZydrF+O$BJf6 z1l_hUtCnVebLv^~mD7T4w}~?rRp_{5^ZEF2PxuO|@6xzY70HTi)aBUbE;ERj3Kwi6 z>kNrRgFS8p;D~&JEWqu7jiBuu9?`}PLeGwG8PDo!8XZ84>vud>o-DIFuO3Lw-1}NM zi30P~SLrIj)~bo&?06QB;biDC6Ek0Ce3=~{UQ#YEF~0uJfyAYM$!QdJb_D)*!d~K) zw!D!Zj9C${rE4@5ktIQBg1jjRYNAS;zVcZuu$I^l6;DF#hW~nOX*XHguc`f8jQ?BO zRQ&38HHjA33AXwq8!}xQO2Emz6puQ5?T?2NOE23p@H~Q>>ALYU{n=omyIya~f}l(A z4j2k=fOq7en&+LD92r&dwvk5Qr%5A4e~g>AeYLo$^wpF9snW>FV+?gs>V<#bykwF zu5;Dzr>^HJtfIl)jkKr_Exw$53Fnveh6QUmPmf(l*c`uX;1@gxXD1Gj?epvSI=c=l z*Oavu+T7Oa+&Z!wh*VqgsY14NXFiL9JQNSLYH{6Jc88IjR!Hs7TIs1rJ)11 zfwS=LIqo514(we}a-3Cnnir=Q41~W3WHxB*01v;$O3-?YLr)}>iBSr>{eQ!Z!f@RtDaD7$-R;3lCb>!SqaILcqeeh_q?%1hd>=a#<& z=$v!nG&C{awd!I-W7ig1oI0#c%-}0*WL8?7a4o)To?N&Q$p0tSzMEHlBBED1olxlD zIlY`RHMH_v-6wYOoP^dF>=~h--PU)LcD_$+RHkte-FwQqqeml2s1{>i;sX1;5RYpb zVoG!hzKXMhq;%nCZl!Utv*S!MpmY6)Wx^J>TkCtT<@p0aKV01Gx1fGC#+$+1peKSD#4lB*}TjvX!ythsOchM!-)J9pIw z2iJajt!LA=p+99uhK7cu!s^7b%-TZHxas!Wdv}lY_XkFnC;qy}L7ok;(C+;NtMK}!&kcf=Q{{h=TQInmAW=?C+4!Sf0o4N@jY3KaQM6{s(xp$u-kY+>rK}vDy0AFJ*J1X~w3!&SV{{}_oE*&*C4oD&6SVCEZJ|Zhi;80BR%xC|%?zCM$f1Ek z{pbTnYx#jgb=j2!$9823!;|CVf+pqxJ(8MfE?4F|Sfyw@9vv=B#cra7%gB2t%VpTP zZ*{$R6?f{K>qUc1onyT&yy6N(Z{WXf;K(%PhF8&_RdSFmnuPxk`=`H|Jr>(kFJxx- z?99YmO68$^?XHjB4K7`O^L1YqSv%%63_K${q`#=nKehjjhEOjhx*{%bemm zB_)R~SVlFSwJObZEEKSg4&>{z*x2qdJSGpwg;)@{89~o}Sz3}=(vYvE$GxuZ-rnxj zeHX^w)2V3#8EMDBdFNd|w(j~XJ%Lyso9bOI@ArcI)7F{rKHk8-Bm?-|%Y0K-Uw>FX z$2woXOuz6w}eJ#mN*4@3xG1M$XhJ3v7TSDbN8i7 zyIm}e_LgDEqIX%$Y|vz}b~w5%=8(w}iI`Z( zZ0YW@+6S50((a13t0rrt66_A*!S2l0qk2qpnLYlAdah8&)zj(p6Z#>$-(Sv|?=VX_ z30dI)fQp&X00TP0N9o}?Nl{|Je-b~GtbP@p69EW^C_n9orj7`Sf+E}HSMHI0J~>y-%l=Uml1;Yik%L@^ z$eFuuijM%+se?au)4;aV(*BwY-(rR7{BEUv_|(0!DCNDrW-Q7k0`bGZV1A}yH=tp{vIQE-+O{92J8 zu7G7282NTy^{Xg%t4vht)GJi;Ns*;Xnn#;qioJJDKKc1xeHcJM+0LHNXU7wvXtHOy zzGP@9+u7v{dwHE4@qIt^)Q-l!qWaV~u*ac4&w0!hpJ%)KR+FyDnJua2`L=ZFcVq9t zsasqsL(}thZ|X_1Ly&d1kZWhKLt3vu3l@1)oM*dR&$zqGlauAiRwek`CJkAOIVaTN z-{5a9yb!lVPLrs+po|0ZSGDj2i+H+0!c|R)!a=8m&HE9$otl&{iqpJGQS#7G$N+q?TnyTUf2GV&r2s!&Ja92TW zy&HU`_&S<82NK-4rGpSGBoH2$pg0#zu!M&^B!_mb&( zXKe4ozCTMS62s~3|v zv7p$XsHhS8vJrpzfYH5PatfNY}Rs)1))Hi&JK<3n7 zcaLQ_ZX05BJpVWocDf^4Pp+O>Rl6-yW2=^=Bks;YG0w{G^Ksba7{z&%oqv8+3O5G3xgy5ma#4(++X(O(D=lwIB#aH0~@2jZ=na(Q?l7DNF6G)U7v<*Y7=cZ@s8$ z`tDbEAI`GuKD6%9(WF}Td6XmQm&D%I9+!K(8}+Lnd|P2~urR8amaJO!G2aGOSA1S) zCsV@7l)B0%zpc~jk!L#TOp@>vbcT86u=PxIQhMsSPSV4=)JmzQ5~Y*F>vP{bjnsR4 zGu@}tdU=xFduC$iY2`VT>m4HRV`=OlJlE2)C1`KhgAqsiQ3r%}6M5n5}@yXBRa zotfHJ-g?PPd>Xw}o$}_$)Q2njIjQsLgWJzY);teAlvBk3lF9`Uc+ED}M{3nOPtxMq zr_j*FAcXMOyIu?ijc4lje)L|?{vgWhv*j#VNO#D7AA4<7kum@~cqKLk13r%k{wvZj zWEAmxiVxI%@(hr@FaLb(qb@ zox)lszymT>={vO95}&SdsVXe#`{}S?9|^ncCe39tvl3obUwQMDt5;vSCaknerpaJW zDAW`D3!t|2fK5N3x6p&P(Erud!Jr-r=|Q!`Jjaglda0IAC! zD3^gUsi6?~Q^<=Drq);VTjC;xs%9L4#W|Tdi#Q>D18E%W%CNUn4hN$Vli4g=%{7BaGeQG!v)=VA^->7WWU7O>5?_f)qM*|#* zuPf+xm`qVmyGaL}Nexf7{?G>xoo|XnmyDjLrZg?3eggj$?_m57@rHj%?~@A8eqd{F zVL!KB1RsPPUEOva?eaO%;6i~Er5343iH%|Nqobi{SOQlq7cb;931OR;vH;c8VnY^@ zTnllt`A~GuuU#TR$Va6?LbfQwg;?bBXilFxHtR44@ntv}l1%N>D}4-e=yFB<4xdl3 z%HEDDe%?VV_0VQZIlleJxrnxu}dkgv<(bcMaH_pxxN zO>4aOlY+F-ij(-dsizP%MgKC=KHxg+ z*8al0x@zjAIpt(|3&_<)09`lV2zBjdhs9D+Y&LpEpxH(bj*h-_o!u_?hC&{>%i??c zaM-xP8wkcj>RN9wgimR=8cGC%Y*~-Rq_y|B0btE4c3YswV%8*G#}Cbxo(_ODm@3R{ z^|M}!gk`zi6%O}6g5PI02Ye36q`B>;sM}_);5mBm$idO5*3p6Jy5d;5LBnS?9y}20 zRn^|mo%j+z_=x7WNqr`#Y)SwTBjE%FmJJ2-L93}xayl#tAXu}wv(r>y0Nuk#Jz=Z^ z-J!)gP~XPgZTGi*0;_N~@#YG^9{^qex_0(aMZ;-oG=j3_rWz$}isj_OeVUSF1!PiK zdkLdmlq1pNw_voN?kNJ~-~vz4d2Utl2G?BTFb5Q{9SzPU`vqk$UmBZamu;PPdvnPw zwusGPvRC+vqXPhh;iYc%-D0(RuyS~?D*#F;S>k?LGn2(8chIVtEV^!Dv}^&JofggE z?r|{uxTgj-f|=~QL64%kGmag@AOpDOZp~S_SW&v%Va3rEaWJMu`65bC&T@qmHMR@B z)J&4Y7qHty9%oc6>Sbq{*!a+ZGajP=ih?fZV8LA-74C4YyK#*LP&d8T~<3iqb|F3{JL>G zkn*Dc3_1rWObr~S8FWs@cV-UVq_R;$6(z`CPZ-+U+ZF7>Mu>Xsrfxu_uqwTb|Ji^4 zv-3<^B)xWBh!l0`7*tC_RgEtRWT(G?Mhqpx@8T$=GhDs}KWuF~+TIS_86b8css=ze z{)r`N84l-ZGfs%cC(~n$9r5svt#EdKC7M?!AG;0HGt9xk(KSX zb*f*y+5a>I9w=80t~hUglVeqBgI3t>EO}H~9Mlf$ZAQ z-GZkDo>#O1JzsZnuAadxIGvF=BjE`x;*Q*~BE_f0EX@Tm&HH6p4MwAqFb@>Fy@scb z=lG%Z>kp0l{0=FmMU5B096;-8c)GH;JPJ-PU6y5NL|F~JUc@fq%IT>hrL0kb4ShD?GAyP9_PBt9a(PJtQSmvL@@WF z7LZ?VGl(7r^SbSA|4((>;D3cqdzESb75Z!?*JWbJylDE1iHri<93jT_Ix zqnd2d-oAlTY|+!Di%^=`ZWqvNJnHC9Zi&JkQ6;l|s)~N{Brjx$3axK zGhzl*_bBc+lh9%_;3vQn`Dxf{f&zVH?vh-bw>QtMwB{{PDgkIbr3)=`$B4^rU*oph zd+pZt_Q~5WxZt*r-F5*pBIvrDq3mnCWVBg-B$A0l%)V}X6aIiN8d(yF7=OEF&CRP< zzjw_V_B`N`bidskgP}MAqtv|V_G5@}-#V#Pqv{1?|#qd z!I4S&VKi!dc6gXMMn(=JHT+)i20p;M1dDD0*D%KIn^-( z8h6a2X-gwM*M|Kad0!Nb#2MCP%@r%zg@Q@%gdi`~v@PKL(nys1O2t`er?^DJw*rSj z55d9ol0yms3gJrV;pL#*hYhF}LfB7#hdrgGZ`I?qJvZ*D)%Mg`Hmw@R_BHmjhM|O=EaFW9-1q`ZLfff4{P4rCKKwAit|aXmAYReGYb1@!hrq$5 z{vkQoPuPfFDrgfa!E@je08FA=FlC+D0Gf|~z{wXV6A6JYA?{rPc<}S7!5Q2h;=$wE zc(%N=3`_x4tG+tJJ__Lck7jcCk?#l_PYSpA|C(OCaZNhCX5;E~>55_^I|aT`>{8Hgh1WmJD+vkbBHtf?g21jP zpeBJ!L(Z}QuK~mDwpsBs-^+DD^GghWoF;I{L3pXxBS%g*?tzty6NY8yyI#K1AFqG# zn#vB$Q1lB5_r%nA=nIkaS*?@fi5W+htWBlXPL3>DGD7Q2`%%zK_$Pzl_IZ#r&RYt8 z!O3?jF%9@F=VUBFc$;J*%sD*fU33HJ{N@WJ z147DLCSB;4+MpaAWeF!)8HbMs&5S$tNNsOj+mbJDE#{3AF^}vB#_z|q4z7uy@K0o1 zR{yifVZfYDAnT$Yob>OOGVCF{Ov=b>HAmp^7?SN46MB0LU%AejUS8Z<>f7QCCoDeM ztyWZcEMw}2y}@7t*W=%KWs4jNJNKkkPYfp#!xO7hx8!?k?+0JzZE!nK(^tT&@lNcq zIgN>CJ=ig&hPa}wDcp1XFblMJf9G7nT~TJCKwc5iQDPM`2nK~ec=01HF{iU2;Ky+- zN4uqGvb+70Un*`b=eKC}y|s~RaE1YkP$MTWe85(F8Ag$m&KphLyLR|+5|;z68jo7nB?`b2|;>=)!^N`wx)zt)?#m$nv{r!8Yw4v)TTgd7V)CisFQ z3@(gLO)|I3c5TbfPQO=9#W^=!y;f7m?F@R;j_u^Kh^YaW<}6>_n`$sKwVK=80&}l< z&%1~ttdLU|K47rqOny3Q6dM>UfkR{>Mc^K9-t(GY%o|AX{BrD6Ukc^_gKUqadhGTw z*<&`>7djB?dq>Q06u`XvoG=x~#HVz_c~IACQL~IrZCBTh*O=-6xFV8A%)lqM^Jf*G zVUdm;9Jd$wwb^67U6`H?3$y_bZH?l6@HVo&_6Sm1#aSWvKz7phw#(6v@E{~gczp+o zfu>&zfotp;LJMBpFVH-|&&@e%E&&uD?h2lVZQ<}KkBjL}h)*#Ou4{|=2Xe57l8bXO zD@p1usbU9%P9W>i9Ia_q;~6kb$_Rcm7;#kfASSW3>O#s3e&JC@XB`>127HL!c(mjh zSerFV9yRAc=R;LagZs27U#UIGR)y((!k_j=0MMctpCE%Nt$r9k z!Y^vhp4@WX=|y8+w;L~Br!O2vmQbq>BP;S+;3cCk0l&?~(C`v+MtkrLuZ>Q^wTwO&TghV9b4LMyq>n`0*|HtZ&MY3INfAaH6{F%4(hjV=11a)5TFT-m6A8Ut1I>udEB)0` zyS>%xJVajSc)t|#*gnWY9`^Rc?Ai-Q-#J>?ow#2dl4Zc|+e)S};fOKp zE=T4)#-l3=cDKqt$ZYPgv9@=%AMY}?c6Y+~1>DCta~*C~Dp@}W-*%k$xR{rx0&KQb zZR@G0>N)4!h)VI3j=vx=hjResp5Oxvzj;2OY7lB(q`XjAX3>z?i%S=0$r2wt@frB? zJ)x+t53Kom9!&b{dG@dy_t`LE(-mQh+3&<0V?oJe-&FQ6aLT8wlVVHG$f+fnoQk8) zql7$5%)vad>|4aWe{W&iz!k_F_1LXfq_fTF*<>2!t`*ITKC3>~!( z+XyNuzEFD|F9-9hb1r8*GyeARMB)bG3*89>U+8??Lz-$X(mv-u2=t4~YZtY_Iwz-6 zF|@XTEaiAn&e_h?el+fyV_NSV(`>9N*g;L)@i+wUXD)_weQ^e&%`WUvhutS5sdG`a z^~+?OT12Po@&J0$#=v;%hXY5&)#)MtK1|H-c3kMM-{@L__&E-gW zIuf|u*q-=gbx7MB8LHehSb0Z+J-GS6&~#a=Ol!BXixZz5icD{gd~$m8;KAxUdWDSF zA>()QPP7qpM_30LN06@pxPoF7sJWg3jp9XGSpqGhdy7Er=iQW=sf4(!2hb(70egYg z3S|C8nRzlA)Lrsp+6%g$JuIbTC!hJ{zyQk}|IoA?9H{seS1=8uB_kd6DG8u+p%I!WOuAZHp~W5{f+<-58d?HQhoe3$nzlKE=83K;Ab&|K>^&+Fl2o| zb#HK@pR*x=2AE(!?&!ev80?qyX|t4%`3S{Zj-}&bCW?L6b59Q(E@CcU0@h3r@GI8| zMt}>C5EGbw6w=Y?)3Fu+QIo>ziHkIU?uWr14J=j_my1{6!Y zXPGQ__2K{Ccz$&JMvKMK?_2hHlkD%pn{-`l>g?*GH~B+b$7R$@ld;a<{Nt5KZlYci zG{<{+U)nPKw{@K18)&9L>?e49n^;jy6;bNB3HPGt8lnp*7WyliumZ*qI)@31hod}z z|0;g$MI%B?xWn%DcDpkkq&;+byGJ}W6U{nfv$a2T90YwU(BqdoKW9Nkd8glJt39DT zvEs=m9r)zy;Czt%ktf-;IfvZ6*4@GE4%OG&;dXb+uAD6U)_3?VJB^>x)b5V^mfeQ7 z4uLL<+?BtoaFy||FRwpPI51%oEU*|;&s=pWt*?Zq$a&Y`KSHH+6GM3g3-qV@n@@l# zE35Lru133Xe{SQCO|GoH(Su~{nWA(x9J5AcwU?=7E6<*5}xl!E#(ai5x|!$F+ZwJ zN|Y7Qu3OA#To{d-!e$hq*z6@LHgW6i_+fWdBvk#R)2Rp8c>(acdd&{zl$ImiBiv=OE;lhniR1m_rVd3~ZnAcTT~1Z)4uyEGt>A;+wuP{jT9M=y z@`0~HzxDqOD^$(+v%VKhY|VcGGdj(c?Z!8hfw#nv#y)rt&Z!NJuEb~C2RvF;0S+-* z^7y0W>2kR;h39nTKze3VuKe@A#ts0wV6f*Z{$c#D;PQ>`N`>z=F$V8ldT!Z=o@9%T zqehM0NV}018Ovq4c-HuWyE&dX=Q{{>5wHe`k3-s_nOHI9?!`$Xo@lW=!2u4l2`Ou0 zR}O8i4B=V!Z|~heGYPq}2_x)qusdl&%V;0Z+YlY-9oB<0-4@`UPikMBa0mJWrWWnt zgGaYFk;r-ovvDGE@^^)im%i^WS2hm~;d!N0d`!AKk#&X8E-JR6cb1(u`!f5JWi*(v zA0Um7!DsS^lWn4|ll<$1P20nL{7|ycO5Ie~+{4u|VPK>NC`B9%GjJ%0G&jjQab?$^ zZy4Hm?ef&gZ-9zWaQUYDHbgR^tmCr#LibcwBx9un)fWE zUAdvO{x;vf^NsV_k&lrlCd7di{_}a zwUA_4pu6ba#hO$-H%|(i%q34g-Q&kCY1zb@7w3q{%oDLMxR(e^&P?QvP^Hv74GMa_ z68?OQ+guHxPKp3RHBmVY8FmS-FIO?53=25OhAl4RfBSo+TqtVP*)PGQNm|1nilw_9 zq}}=Akth=8S#Yn*tiQ+(gEua$UsvvjX`&3i+juDpa%9(9>v_&CkPrTzr$bxA3koT?r~! zn?)t`~HkK|o9> z$3A>PWz(Jht2P=dA_2|R`Th@FP`TjexUu(y@{`-rcinXtdv&+GTRY(29W`6iDtIC7 zR(9o#=R~*h;C|!&EnA2ukWE2@kPA91NH&E$^fbf+s4Ax&WvrBvw!rMpunw!s_(`Cb z{q3g81>XWqFN2l`1X*keD0yJN%Npg)$60b3RHZ>xj>wr7q#1`fDJ`_jpX-fXyvVuU zx@%e!Ae##2V9Or)P|M!AqC7QKo{~Hb1#|EGM!9`{`}~gnW~#Ao=GRD^rBsL6I7!*U z^W1bMqMDl+s^!s$D)z3^+It#V?6(cQV%++oZg%lK9MoI2%N%8`YiB~14dD{>G_@YL zIcU{v3lxeFsnUW3zUyFg9GMu}$TqWlc%ODKmlduT{~IjGtl~fqJ4pKt_~g zfys7cqP)@gzMzQ+{y6(~BrK?PS(ws7q~yBHzn@IEvLK4nYkdCY=$xfA(@Lftdq7~J zi+qi)25w8M4M(K#Jy<|*qy`(Q@e(C-P*LmLh9u#qjreS!_vCA06I@%V99*&DUstS< zvb!C-qa^*<1$-~UqD~%$iVRjX1O15c0iLy=LXT&Tp6op5h&fHOb`DS)ra})D2Q|xV zCGWPTORc%|5*8f0#ss#9$5rUs*3!FX5af(?$4IUAsLiyH5rKTFvD3-s~1(xP4#(h~!+>=4lhMHm^Sx9BQY^+9JfY9&X24cP;ZTLS5@Q_qCR- zTbU=1-}yvdkj6c&+>wG{o4APqJf!8m4IM9S$?TZQOUA3bDN2<(Qj2Hw=uzn)Rwh4{ z=l+%5YU~>Raq^`ZWEr-M(~aHM#@uwalLO@}Lm?+-Y5-*bXCBUF-MYtk0FC%!Dl%7F zM;gT6m<@j(Pnl&ew(ch)fxU>1d4@i~K4tv6*%)5BTkNZtYTUyKIc98SGkc7C1QjIr z+c56~(9fx}$spw3!Zl2utG`9XkHnrur*wU??i(HRJ;7yvIvBf}e;7Xx<~Av$ONyH^ znN4Dki?MaeEj*|EC(bo~Q~b|HgUh;Q);JDi*?Bt1_apXUA0odSu<~ynYnz8hDDkJ@ z@3JDr1(6<9YSDLZ1oQVnhn~^xR%C5Tui9hj7|ILq^&3IEUE@LL8l@9Bu!xMbe2ppb zxTBa?C+0<6r4e^TMjO$_DgCeMtBKlP8~{9A}S^R zH)~fqI~Ao<=?rvtJKhw?_Kxm=?4FfqmqKbXc!ghf^-^sr)uST4xS6hrTn5^t2;{N0cp8Tp9_!1)!_P;N z;D~B-ycDK#C{T9UJ$5-BER0q?ejmyLa#ID-4>n3aye1gG)y?`Y%zqHi+qG?1Y*Tc% z>c&I2=GLW`tTSAv_cC zPN`G!BfZ5JuBlo`@rTC)O6vcla3$Xd$)~2HJ|$+gy6iqzY%DI7XL57D8jxiLcn0_TqJ=^s>cfk)uRH?? zgvNhOX0s@Hw&xT%jW<>F=s+4ldym=S@wk*s4r!7Y(2>r_%8Lp>sr|}q)OWN{I7;uw zWv7gD;2wPC02+>`>EEHabQfH}-RR9Q*n=EzQvlQHfx&0(f@_>5@FVua-!Iv+VcCk* zid1H^VV|1X@mFqE3LBpZ#Ms~a;wOK|(xnpfz3$IWWIvOvq-Uu--*Im={h}80`{Gji z|EKL;z}u>>d~xq1S(0U0*5l|%mStJi+p;Xnk}S!#tSF9f9OF2S3C1`fq?weaA%qY@ zFd(r7fuR9$5@g*7L(fWJ6;P3fIzUj&x6gYX zF!0y5VSBcPK*E`jHHkJLHYNuK$h22I%=fRfG%rADO=7@`WK<={qpDX^8- z2~rLM@|5S1i@+HSVl~M0f!2roU3{BGaUduB{(BP>YbWCI2s(ldtsV9{-QmRS#NP3V zqB}iU*mURSLLuuePK@tk2hijiw|rtELI2`RnX>N0&``pgHm0OWwrYIuk$wJzXVaaV z1_w9o+UQ9H_a50hUZZ;V-I_tH?S4f2dU$OikSaxvXes<0IZY~BV-dw+O7Etj>u69_ zh$6U9$U+(RLPPgNx7#1LbT3xjvhc=*t(~3Ydnc}5)ER#!IFM({i>;Z# z&Q5oCySv#_ANMtB{w>5%WwrZ??uPi{?uJ^X!arp*otJ-g?|3xU+8J7~{A0^M8%TI= zEQ~Jf>|8g|lr(2rExvedlmFi!n9TEVvOIPnN}(nI*EEE2V#>tYs3xc#e4X}c#*R*H zIFztw@fw+@=^ncVP9g-BVn5Sw$_@`d-Gr&R9|j(1X;Z0cYa8uLBk|6zw%Yab@p`R_ z*%}%G4XVF1n(Yp&+0k0d7HMyl{~NY@ug%a_Z?n{?jcR1us2i^pdIAr&tcbcA?Px?^ ztF5nh*IxJEY8_L#7JGvoa9h@2XH@BQT9eiz>I{n-x|r7QY|({Rwd&2_b+txKgHf-6 z;z9JK@Nge&nY)jGAxU~H_@3bioNt27pauD(_kxZ~%6 zxgQ87&-WYIZPE;v(e0p}Z*xmy4a2rqItwBAA9fA!1ei8@l4$?LJGiLYdfJ5S+^bZ1 z#d~Uhe05=UeE%sw%Cu~jA7f*}x2?uDqbQ%5yt`}l>vHjK1#-2vQ2B zfvkw|s7uYpoH*eHKjZ#sWwH~Z|aU|jlwt(N)<)K+M+j?XH{yX`^aA7E`b6XBO24or)Hm}JD7 zwIFT;y%Vqk)OS9^*2-^%6Kqs)$ZsXWNV7@gOfFM+@afa1XJ?u5P%as6sT1RS*^+P~ zf!JT8+0^*DHul4TZw}0U6ZxxEbfM-p!XPRcqLvVHkq|+MG3c(~k7D93qy{^n9sP`VjVppZ7&`*VLGa=9JSOK$SwHtau9lgE?tFJnD&_Jvi!)L|tb` zM@L3R1^?*fQTG?=;d1ms+cV0dqw*OxQ^NUggemr`(zWACMW;(#zn12YfpI$1@Fa^; zr!V3ZJ@grSdR;TwZfhehUC{Rj?+N4 zF}!v~+@ZH5ET=6p5@RWr-U)lqG`od0nwih>g2SqJu&xzr+Z)X07tD!!l>!Fx;ahKA zNpwJTsK7vRl(Cu&qVJHmg43x~V?cRQTMZd8CkjWN2e0(?5_r2g94=%d0UQ^5qyj9u z<(y{5(_Xcy1aVCHii;o?`cOha$(Y6CKhA@1R(oEMUw^^laVt~!k@7ux`wWV;{b_il zl7r}u{{DD`DeFVvu^*uSzs6$;ygwR`d4l+l#^W`mDe%4b$I+vTP6Sva-x~;XzI62Hk&PP# zgU5mJRgXmXmmHqG6ZE6-!1Kp};`+fO(TJBEZBsV8F`K>QfG6=&sfB<3m>*)qi$~kD zXAj0Xxo6MCb5jN)*|&O}_Zfw-c<~4?z4Q_@zVy#fP|~%~*h>nK zl2VOh4Z0AW8r-3tT7XDcN?fU=w6G8*@FiKs-!0wd@P-zK+9OTw^vZO2adS9=sByIU zMd(*sUD9{ens{eZb7o~)yDh-PdqNAtf-^DXxXs>+|H?+f%|q>(l|3y@k+5t~ngE*{ zRs5ZSa)7*4xK>q7{RQPK7>`;6!BwbQB322rOZFs?E$cFR_DH)maC{zmsWuX4R zRAKW`b|&S|L*vufee_(iNvNv})hlR_;wTW{aR=Sm#Q47P@qLM0F0FSM1htSuxmW|G zd>QmYUL#qiVj5vvVRIoi&oJaTWAcfLABfstDjDz=xhnRjK)O@VbZFqmTp$GYj_n{8Tnfm1Z$M zxT&D%&YSyiu&Z-Aqt0Z}7&HIeTw^gA1czlj$EOsZRHigkn$D{D3iz$~1IwW` zv{9`w0T+VNpur7&BXJjvqDMpuGtYsX*W1W;K^3FPKw?(fK&OK5yBuUCmIN2M5oXv? z81i3z-z7NcbIkp6#s?3U!w0;tY^c}PsdaVMM$~+eY*vlN;ITFaTP;=e-T-?}53l}x zK2&XJ?t>ct9|p(O@Hyn7pPha61MqqtoYw@{-JOkAPeZK+^+y_1M!nY9pwSW{wN|s( zDmE&JBs{JJAH4-tNW$b5gM6phBYm}8aVJd(tQ5hRr2RqxKuc^`+q#$;$>={dn(nh0 z9T1|>yfxa13h1$$*3PRv?IXdHa_~jxyD`3X*;U@o# z(1Ml82H5&)yG1!3q{a#dcL4W{xfH+3l_xDOX@|rqzmEH1wti+tURCAOVJE$8cmHhe zP-W?9EI-$clvOwv13PQ4U!z>MZX;)*L09f_r)qfwODcbHrbd5cT0Gnh2UIz|?XTGZ*nq65`R zEUO)om=eVmE~7~!s!c|nC|HW9CZ7_eDQrHyOYnP;)f?97EowAw(U^p5^kQ1YgtUl! z5Knu4q2E#Gj$R(c&0Xj4FI*5tQqAuT=%yGkXf^OpH0Ww|DyCBF4C>kjmoM~*cKj^2 zH!N?^SeG~0m($Bf4INfd*KtKN(s=9Z(A+?!(TIAr03$omsM0sk3ZI$corggu)W{I( z0YhoVj^L|CA*Ag>d{HI@vs4B}y6oBzZs^rHHK<#gSiL&2RySCAmKq5T4FyLuiG-%| zEERrfQ+SB2U%F1Zs=fUxY2DJ%k1EeT+GiSUZ5=c%?d=;?o{jePem(e;O`&0cR-;CI z!xHSFyI{!`VYi_^I`)tjN&O2DlvWEhje;&v%@v2m0u`QS=oOv|A$B@+=x}J)qn8!G zKKDJHW~yVPPNS`>(>3Zeo9pVnQl~+sQ7yeXsB^M453O4D&{ortBc|QzK7U*z=?!lg z)Fb}zdYyQm4vV2)<8c6<+6p{%fX5B%K@T9}&O9wbDJTYnuml{{Qrwzdi<4HHX%z5> z2-6;?8i@R^1OVLR#P|9F{Q;+zEW4WS*vZ-X*I{4 zx`WEII(CMD+)CgYVu-Rx@qh*przY<2Q=eWR_K&Cydhrd1XAS;J6GlX(}3jY%Cgg+^I>kzNgfug!<)~Gz6YK=}d;} ztxjC)o1h#w-=&CJL-bYB>J7nCf}1APBVp&c8Qox>%-B@ejz~%J@%Ql+IHq8cwTU*^ zEHzp;wj#bs2Y$L%Ls_?WRap;av+m)7D;|lgp<8s+??m6mbz$5bs09-DN6`v8F`130 zy%90%o^}KUwI0dvQa&e21y9(M5K&|~XmE~-JHUV9e!no{8JSyemp~)T-XsjbzG!u^ z7Tk~zikFLwbsDig`*F3gG0KlqxnL?Muwz5jZXs;R3?=d6ig(* zvS15V+3diHJrE4pS=8Z%VC^}M7T=?Je>xXG8qaO=K)BJMzv7xT=rV>fkw&+mL*li= z<&8u)Mk8LALv)#Rf;=2X7tR^fG5UF1r^nOTHWA4C{rNz4m3?HyzUmi^NLdopcRZli zKX8Xyg`%z>Q`OctHlloSEebrUYqg-qMwnEW*Xh@;)z{s^&*L`G!9(zD4AzXmBU=;b z!Ia8G0AsaHDieXV$BVhrbnQq9plDKXX)PuQ4or(re7c9)ooj87g6v%^P)?ggNJ3@F zogSBWG#XyZNx>Z+vbYS67w(Tk2ghkH=6F(1<^(~Fp*aU4yN5l~^8=TEecD>DJx_P>@yLTYU zyeej1_DhG~m+<+pw-&v7Sg@(G*bntJHO(w(g&7p3WX#Fp-V=MD+$$g0yGoTsf3o5` zCswUur$H+WciKab!#718qw#f^cG@ytyEZ9I6^nDni$!)kA&iBm*=wgx6^o}%4eoYs ztdfE3u%L|-&P#=)cuTR0p9W3>^3#ws&7B_HQ$vRu9601GvEu$-pVzj9*tTds>JSkU z0}l?WP>a$Cr0ZImZY>tK4fU<}wsqXPX!&QywfsxP# z3mLzw@E0*JkZ~YiLCPU(I+TZ=Oz9pX&6*61^LH}wnNJl9g~G04u_(V0c2UhKrOXt2 z18)_JM+^K99tx+};=#d1ix#0m8-C>9qfpxcIaaPZ6_US*j|K;KFIqH+A3X9WSp9jw zc0Jdwy*SYlSjPkkO{B;*>Hpfm75RCpmA1>AoH*EKW<=seGhPT3kd z+u5E#lXbfxdV51p02O7Gdh!aM>ySHS=bc2T|1LsrIY_XIr;`*F@3WznxG-)&{(b#I0Ef0wq^0FYz$>^C_DO5D+dY+w17338K9H5)w z>Dw}2cu4TwB>%EfbST8OE_Hk)NFk6 z1+EsxP4Tr#R;d#8HjDtM8bc><6ZX^ff(K>NKCzYT5BWsr8#~2}~m)3jlpM(>3U|>My0wREpmzf}c4@GO;5A|i`PyQ*0AzD`AmT7m} zpmoshCjN|UJ80<&E3pxGCQeda(Mpy*r{B@+1-C166}3$|CsY#Id@w9CH8cM;Xa1y zPn*iMpxBmz9`+v{u^XLRemtuNpUvgu9jM}@FPC%zO!McK3g?0oJDj?WD7yyTZD`k^ zB32{Il)|kvwo0We1U8^lAcPP}OCD9S9t$plM!r{Pc!Zse#>Vb&>(mO)&LPaqVKE(( z*3PVz=wU@P7mMYhsH`aKtycEwzcI5bhwZccAp5SFss@_fJ&P9g&>dn&J{sjcQOakS zl11Z&q(F6Cs?RW-U=l4M9bJs`q+kgBu@t}CC15U}VtqMRzJg2n^knW4qvp5o0d@Ht zyL`hnYzG}*hv_V{h^b2h4m{I2R*so(g>FebEdgXLj{FwXD?k}2&|zB&UQzN7Lw8H1 z-@m_L3Dw6zkCuYpWJ0w;G>_38)vszL%Hcrn1@+EP8%5@FyTSt*SNGz318!t(IjG zJ0g6zrI;iUg+ub9Wkjuzz-r&44_Mt1vw{ zg02>l$00~N8xDsPDxx8P(U zFMpc3;cOam>b8=c+QMPuSc39TK_}I6Dzp{$Gb2?9g%cyb;+^?*%$;K+ zs>AZ_Ev;QEx+_wBegOP}<3Jfh0~{zaybt<$Ne)$n_xaPk%mi_S!26(=U&*muMoZ2j zpX0~J_bRl#?cAZ(7B(WkKC8Os8dbj{q7M*Tdz_C;bL+s|{)XG?9F)&Wfg3~ts5Od! z$MdHKvgJ{^fQLP>84Hhk&V`ep1fA{#;oOstQ#C7-iD{0kmakJA5~G{qC`PJ@p9C%B zAMwWUx#p-cUu9fHH?+YrMLAGqc^oIFuOgG95`t*s@;Fq#c?c9jA9l4Xl75)P}GgyA3TuVfCR?5?Y7) zW_HZ=hd;>rKsx8ju}8ZDY;MbzmbXXPTY;W|7WwXOtQEJ*Dtk){N^wEM#kG(w(L=Ew z_U@2!N!CVGY|nhZmmT{<_U#sQC6^Zk(zmb{`MbSzX(8SFAl`fQ>AiRMvVRElY?FUU z(lH;R%ATOe!QA_b{Y!Lmu@sDPNnfUzHHAx`1F5jH7GrEhJjV%>jqt`4bX0plD4#y8 z>R$0_g*FeB8%oUYPm*t_60@7zbT5!N%QVUOE?sb5M~$a*7RN=j34w+7$Y~A%`{)Jq z$yr%TtGf(^a?UDs%oKf5;SnWnb&(F9sZ<@SF4e|f62}!$wfA%PsuEY;rRd+cR(FS} z=JWG%GWiBL9Z|B8;%HM)HGiyE0m7bz;=KbyKcSP~$TN@OO#&=0uV4>ts)B{Bh7LZU zsN=t9qWlQr@sm&F2ju^K9zcW-#ZRGvmEB9xuCzWXADUc&?LqVbZ6#x{H^V@#n1vCg zT&bAH-ja3ft#?-FG&_S+5xMYY#K3lhr#xON;x{7tBiRUUg0vZ}0K*!cLt`3}55{($ z3Qvl{@CMYX3%ZMF_}mvpG#lst3M}O_P&u1X5R8M9tek;8+<^05Fr`c`10Z691Y1^~ zVSD6***7I4+i($N?3mtdBFM7GvswAkcjRXso)wn@4m4isLqNQmDj$&lANlQVJ;Zga zN$Q(Odbh3Io>s|Bn>+3mq`6m*oziQL>)>n}+|BKD!i&3h9h1kHAwj!J&Xcum5GcU4 ztH){Nqwop~3d)`x=dv%Zmtzd1kd zsZ+ZKkI4tvX8Fw9@O0_*^7iuJL<>rcy24leC0e*NU!6|`doQ+nbjs_Q9F#^zML_~< z^|;us!|KF}-BA+Nq6c;3{0sOiY4kXiE8^}v5Uh&5%ABXp z3%A=VfUwo8SF8IlI$(H>BwLpUdSkv%exeGRY97&y9YOjRFh8%$D6#>tujny7+7ycL z!R-p0A*etxcq+C;3U*U;Mp9&)LqRMyMs&NJkLZ|paL^Ogd8FZl8-K*1c(I5x=yy6z zsL3@g-`>?1TdjwE7Z5or{V@FC|%4!=*+SvJ2wK zu;Q5W`hrkh6>Cs3Q)0hm+}YkAY~T|Oe>d|3@)7W1REam~UaiPf7lY33^S3g1ULam+ zo~)pDp#OXC2mX2Tf*n>t9&1k#^*AqiaZiLl9It5pZ7yex#bg}=>t05SCR8bI#n~| zy>DU{H-YC-opX!NDj9{?Y!ocuWMy;)M z|1p@TSNo2EwSCPiu&QYs>Y0kRmOwA2Ob&vc%WDe0t-!d#)6WADUNz_tA-fN@mrJ9V zy<7!a(BTCadE$vDE`eC~Utuf8-z1lF&d7BW`3Nc_kx6=U#_H+357d(g(9q zWFzQ>pUS5b{vYe%EJf9Zw?{_$sM;b+Ig9?7gO^xj&spp?x72J#rW*R=iH>(#0?C&C zPt@1jy}iBOxVPD}VnbKk)MphqKL$8IUV@YSK<^DF-zyiuNdaSm8`gY4>F`9;2eMI* z!>CvPSpIRse_H>J+AGQO@K7HW!-KwG^hfXeH9Kjxi!D;K$!sf2tg zx3^`pZC&2x*3Y3J9)9Na87+1S#W~Ox?f`))`iF+x`cP{WyxEn^gam{<6$nxJCI64m zOl2=qH$C@0UO=+t z?LBNq;7Y6AWHR*ObuS>TP5anK^(alvr{MStz)9zf62qdbH$P|IbG%$!)8-f@9g`*wmBe0_c1xUbm*XV3s@$1FfM^mZJF^E5HP z*DG6{lx%Ev3ii;>?{%E-RlJgoTKw`!mp|xaPq_U4NNQ3V9p5B4E;6b-*_jA5vu`&C z0?l6+`(x`??_YLllS-8yE24f?lqeM(=zOT)UndWomRzjJs6%{LH&N&Xu&pvl^RT(S zF#0$r^HVSCJQv%1{;IXD0-i~ApS<{m&6jU(w)J$by(E-Gqe^UBIUkgw0jUp=;-U^| zQ^-Dpy$1)6FYEB2R@Dy4bJTh05b{ffYdm&&m)(OBqo%K(WM4QmarEd*UEj7Y`sWWjju0Dx)ZCuJ}7G@P@!mOy27G;~hvuz=7Qd zH3EB|{l?>dLjIxC?{_kY~5-g9-wgp9@GPs%@J^hPgThPMfp)v@V zYSms<^uS7$(GW^mC#k%f4b?>x@+L=HIv`l&=|4Q!aqqQg!{K0`&jgUF{{NL0Qj z5s>ZdY9W2Y%8h;RJlNa#W%+FPDP|31#x6_8R~lUcg4Jay)k{g zp|NNABZfwk&1^2gslTG-iCaCT;9HkdjDOWL%&it3$BS20-~_Aw!9FE2_eJ*>l={ZXp-6h+SKIsaxjHgkaQ#)814W;-z|R=r^4o_58R4Kj_!32}Mm`+4 zov!IyyJ9mdT^|z;eP~F#Zy7V(aHD?g79{P}RK-`5X&~CGWEEfkq079x8WX-CwE8CW@~MZKGe|! z%4B}1VeF=s?uNm^`ow_aU`Ht)Td9d6ftR&Y98m`2mTP9upT_pU#V%M>I#FDm&mSh~ z@S(n!C2wJDWCt2mvHjwjEvrS#nk{Q4!nsH!7alTFZn5bRa0Zl4?)5sp(|N^ZR#8kY zT$t>J`=te6YH#nS?>J4IUnp=n;W_7i;)~#-^Eiq628eC^aIm3xWcsjL|Dk}h7`_ZU zw?=qR2&;J`d5B?wQZn#)E(~(B?IB+e;t+W&SnT^>++>Ave%}TkcS2l>AZi{Ja5NNr~FKU@RoJgDqBx zY_{^~Bo9@OtBFPP@~f0d#PndaW7P7zbzd;#W+6m9q_y-v zDC4G0N_NCmqK#!n1M`Nmu`USM6WPR!TD=?1mc8mVI+s%z-SwqiqocdVM4d&W4qAo` z53Ddc!-YqKrcIV7bhKo zM9F5Tb9h^uYqhAg0x}%^^S|0P%32V3-tYNdCT2{IW%~PnP2Y{T_4aibQBlO7YUudY zM4HMLjYr!j@sS}MTzZ*dzEhFlN@Mb@#DC+qP#5fDsm3Oz1lOX)?*4x?)e zZojTC?|Hs2ZcI<~<@2x8cT>ptj2Y8R3Z{)Q`Db2S6A>szlQ%N7Zb+z(kqm*3dSLY` zpf;H*FkO-@@@cm}vt0u5J0R3(D% z1QFE4Bw*H&lI%Y98uSEqs>kj)%qht4_3Dhqpk+#D+QCW8AwP2w0YxmqplLrRvAv>4 z7jYK~@#5A(Ay&kzu$z4neQ-@im43-5hB^Jzb!1)kOn-}u)0oxaiCsiMef^nCKhc-` zLtk^N(TrmNJ$ECEMhgq0gK=+5tI5;?M+oizt6=B24Ust#I6#={NT76#;s#OClx(oe z@ct{6-2+xs-bRQi2M#H}zzbA*vH5^i{1+7mK&l7ops=0sVjQ=luzolV4v&1sOE2T> z9_25>;H7BLD5WH0Fe*7*dV`errXxm&F_QM@Bm*1ub#>AA4b5obpi$%^Xe6_H)!%qrr)5h64tY5Ye zghDXVQ0CCY>g>scqHG*r8Yt8Cn^@zfTBS$gj zj!nYGLlYA}zGz&Kc}+X!^tF53-0d>CIWJUfOJx|kP_F~At$z$8 zTC6F&$R=MbQU7%1g2=SH~?6CgjhYSjq7 ziyQDoYo^E=ZB$JnfKj>Eg3A~DA*rF1IU6C399~cgaMby@Q4c2{RY0TCR2;c!I4=B- zX>_vnq=pPb4j~bq4yIDU>BNvTHEbAmq=J4;Du~Z>`BeCeD_1&v?Zx&)hyIF;!{-=D z=2A;jLv!Uxk=CluURq4F}dqwom- ztn?jhgNnPZ?6!L;ola-7^pN6@%2T|%F`eF&O5qVV!2t0sD?dSx$`2b>{%)%L06f00 zp9cLIq4hTNC?bWYBZL}99`sAChVl!MX9%M*_!3VwL>3D;64ju>$2^%=ImGs5y)N%K z?#Aq{tZ~m!Un1{uYp&aOoyP6SCvt)@Haa~Li;YZ=#-?==^^Daay%&*sPne7ehtY2W zC-a*8Mk!%3m0;5Wwo|akv`}<@0BcP$6y4|J=}-T;^f3@!koM`U`d|w1i)j-PMJs&_p z_$iyRx|&4`v-(ph|5fvlo|%VnmtiU!AsF>W2!hDGsks&SyBe!Z5jKhj-@?5r3N0>z zY{=PS}@SnXz{t(g}vpBBAj zGUoF2jvhF0|A7Nfojq~l?1`!?9*}n)IKb{aaQO*&!FRsH{uhpZz=}cR;mmU zd(7AoECKh6Fm<+Y^@gtR{C#}Gz(;e!_TqHmdmG{>PQ*6|Pv@@7@&8xys<9Km%{a!B zTAWDAe+$2j74A5Ba%W*tVg~%YtPILtbhc+)cb3u^xhR&Zm891r%!~iQbhy)6RDVj6}RY3T!e@Sg!bmQO~?Ds=!Z)Pd}|CM5&(f8osCfZ!sW(^NT?(A=p5c&Ie)(ArT2 z_3Yo+4|}%$*$^f^xOvgda3Lt`Ha|B1ztYe!-1~;N57F4E;eE`DneID%X8%Y+eyj9< z3VnkeB7!XiY!O?oqHz$9Fm>7Vrz&K={i6fyURf4cO=0?ca?f2?hDD)0q&ra=j1s#q zlRdxS&cRg*;cwcxslfL9C;M$|VTJq)D4(j#X&$!n9w1Kyfr%h}5&+6O;ZxI>4SW=k zRqci80tXU1LfI6wmle3A3-$!fn83`l%GQ`3+*#OEwL2EZ03z*71uhTh`%y@GCHkJ< zA>^O!Y2#BoZ=JMe)-7VYeyH|h)Y({4q!Wf&s1G;e&;Mn%5O0pURQR| zlIxb-y?A^1TIa#XAxdAgkpK+AG_>}D4K;Y<;N@%YUR%ATs^G(#QcM<={;Jwm*yU^) zfs`7a-(8DuckUZrU)o>$u*0fx2QFRSW59b7#v4V{tKMgXE{FU|2|~W#HtpWDXmst} zAE6C*9^Q!7Di^72J6xLSm<}6mxU&C-w+r988|YGY;N6uysNf86W#~G*Y$)wM&U~;V zMd=L!1~B1P=0E`L`pXAz1W-5k{0nVMAnts)u%1M$6;^=j@X5wlWmk?Q2tsg%%I*Z# z_6^Zu&YwS=*37^&XG)wOhT>ea>@f>d3hl@Fq423`AuYUHlV3-4|MZ5$i4%zpPt#Uq z0>55m4+Qw7d~l1DG}I(A-La4xO6Nmi6>Wl*l@sEEJy5+j0SSi;3|<7|Bl!X#3R83} zVpo>f2RjK!6u6Mt_b%rj1fVj{3ePb25Fq>_3UK_=I|ru+`BBL^#_+`)V;)y6PAD3=edU}zMQ{=h* zSJYgE`A{@OPf`n+8mhf=r%IB@LB=c6zd~?1mjYiiwWaq0RevEEw{g!^PxVEFDbe6B zo+_RyJTrLAC{off;t}teoQ$nl5#x{YIDc#IxBQQ6^cF<{l}U@c`2SqfAo8?iJcte6 zMW^V+e@sqxm2W+R_(5(mr7wFMMEXwYr^-fJ%cWvF?6qVCBr6wUyAYQUgcXX)O!3D6 zY*yMJcuski3j}(jmVd5%sC@SheY3m8W~#}!Q;{~^KG}?#yTCoe)##O`+Yv39s1O}f56%J zudttymA)KEXGZ`7f)XJIQCSH^V>ZJBA8769$VVa%TN;`?)2S=sBOhD7WO(HBDdAr` zaviw++@dvgUy+#nv{P>W$xqlf4uI>E4XYnxd;zOYkpz%ixCYKOZWR|8>5W7hI!}^K zUNw2;m6H!9{SRI_=}%rYIVpTWUjFdI?C&0aSUx`KP0Cl`vq{1`>NUUnUFahXz`36) zoieD!^lMklG_XHl79lOHoD>gTvU*a#O0aY~amen8&?PC`HHZQd%Rlqg&n)i>40dI^ zCT>Bg=q0I5X*?!xym8_dmBHm2Dy|)0I|Pd{Di#dkX>sWJk!>rAk*wrN507k0r5zp| zTAQ|xZks6bIV*deYByl#GkaSG8kl7B zd*#@wRf>J|CgA?siq3}I5o;+T(=U zHGuDV4j;#p589uqtrjE!M>n(%_rzc0887&N2i$YNe|gff&d zh7U8aqVx#DxS7C!jesKU!6R{{%4_1WJ;|q?`<;7c5f43^n?5(qwmJ7X=3fd|gZuq& zxBLQ38=ZK1y5%-*-ynHJ3wZyzW(DR=Oq+9VSYITN445|AK-1LUQ zpnq0!(-(}W4X>v+1kI(gcC==|#vO3~R7Eg~er>5ij*F&=U{lU{GqAsUxn z$2@sGz1FX};PdZavny{& z481*8)?8O}W6k!OKd;$e^TnDYH4oN2Uh@w$2hu0GBK{$t(XrbPDeqD4a+(LzCG zhN?@@qrLoI6+K?+z1k1?Jz+#Np!tm3Wbok8g6Ad=J>nfB9*vhotQ^~u3OgSov`$!@ z2BX(x6r2|1QyBF6o%Dv^XmnYSu)|-w(1@MC=AX;K`7d1f4?0xc)U!K%6n53x${(lE zv!-EMdCnhwb>@Z(*R8=EyISLx`e@x)z!`3GxthYxl&+z!u0eNGb346mZ%*s$@uN@w zk*`6w7s?)`v!GmsitWu8@@$Asf;cZmRXPXc8eWZx=w6W(C}zwDno)uuDTEjHDqpCF zQZa2*4MpilK=dIrY3sFKwYsJ6A0Ey>GSK@&`D5()Uawt_+r3`KldefFIr}~tDDp6dMbyG-H_*o@dDlS?tyQ1?u z4sS0-#3Qsy{wD{rbAHq-%Y|+wzUtfU6ol1&9_&`cVdl<*9knYif-8XVNZ#Q5edbe! z-FOj%@7Cz{vhRn%Ixn0}3HB>5fG{Pp-mjP&|H1B4CgZcq|77>kWVj#o96SwYAs>)0 zHv(NCN1ac2O;j@9D5d^=wdJ+o$2K8&{vEOx5vNU7o|L}~4~o(<4&k_u<9WjCeNOo! zzlN>quvm6c2%E)nT=}z6d6S*>JJ7F+KjaYiQMr}kE|uuZ>PMoX`Ln`+cm|RwtNnsj zI)J$q0B#?92KpEkCoVYw!+PCwI^DT*Zn%S{g@faJzxvtn@z0`fjC@0#R;O!l&qD8m z%E$MJB2yWVTcvdMt{&yQvPlpuF;1g0D&!$w^^oI(mFmGy@L}C&0fAmuJ^I|sh0UM3 zapA%nKef3q%R!j!2Q&?JlorSJ&mUpG{*N--3*B`#Gs){BARu=bi@hy+JYw-&QS=UO zE^OOAGcg`^IfUyZ@7S2fA-`GJJh*CjX6DF|s_QyPUcAJ0wG<^NUE<2&i2T$erm2fA zZj|Sqi=y5vuKr=+MpGK{G+zKWiq>u)zZmc>rAvQk*e`K)1$H)a(EuFydz29b$mPER z&VPel?*fN{$uwiHC8I8Py^zvX;Y#fO4bl9*sC*#5G4B=!Un$T6oXcsp;@xZxZ!$sj zjE=gcxkp5ILBUJ;+7Km5*CtMpexIw~cbuid!TIaEmFw>n+;5_H%=`czj+@^B_Ma=3 zgwncZNE|OYpE~UpUIq#YZv0QXje^`F;h>1;KaN&m6=3bBd71v+puT9pjOJ17@oSeMe=!02Y z4EN@d&6`Iq0s2ih;R6NdW%vV^9-|EZdyG<^$HfDcrcxS78SCGH|Np>#^;X8JpueNunz)^PRJLTE&I`zR>DfaDATLlwCg2Gd|uku{?W4Q;Q@lv$Yca$nOqZzu;a74f?vWM-kKZbDAB3ulS5O_(Ah=NEbF;hnQ&Y@5NHJVdn+G1#E{ImVzS7asU z+Tx~6xCxC}R<0DXk)mV}R}H14p-6m%2L(tB5l8&VU90=tdLbr7hviq91ZxiXOKk-X zGp{qlqkCbizF=sc4VR&4;%X3)Mcf2Kv5&2)hM~A5Hc-2IeP2**F?i7LPl&tvjEQk6A-b-^2eCdhJP7&|!MGFk=;MQfF^h=qLh5*MFFH|X zJ!wrof;NCDVS9b!l4i63tncx)#eWj@x#|M;;6qzRf(x&{fo-jCjJennbi0YS`FehF z{-+Pi3+mBIGt#qg*)>6{U*`-2oOM3=ekOHvd~_*{vEE?No3%tT_9?gDEyNVv}ZJ!Lo>rv(Bx1D`+|;~)3bAY=DK{5Jr|5e3-LZr*ePXKjQ5Go z)zhoh`Pf54E5?VyMa@{sBxwr5U>MPh;wpbuG#Ce8Oh>)?m@EF`zE$z@&AWd*ciIRg zC_Om7c1v7}={fyGElghE|CNSR+WT+4AmT_A9=xDDUE;T~%3l z$mVbW@P!At(-!;baA<+r(U@7P9c*7R{_Q}#b09v@7C@cl{_*jC$+2?vHQN5z<>zm& zBbS6w0T0Oxq$emckQSVbvRP`-y#lQh5uRU7WoTxu4cW>>iTtVzMQ2NP*kg=$Gy49M5tG@R+c`9rXk>R8l6cIo7u2r0iFc0G+2)_4+yN+)!= z1}*x@pv$E&;Z9hbP3@XpovsX0hN$z6e9;nAjY6U2Fb$^M{KGRcQLPBK&Q)4%McI; z3}DoP6aRo!K*>;u&5G+z@sSD%lax*AG{%VNbXuZDjV_fHy%M_HJmrasb0@Mf1dbF( zV%g!LM0PzQOWF3R?Nh_>4+wu@vjlE3sf@LC=v}BWY8!6~SZsKYiXsP0_PN!YV}Vwy ziJ7gff!OAu2>LP_S)Eg##B9R_S!Z(2BE`Ki@T6K`bek4Z?;XK1!Jx3?PWK}Klov{qxDp8@0Q-)+*c=? zEv=!hMZy*6y~y6kW_y3=3HQi%O-^!u5GfQ&Jacv2C+UGCThU$dJCUSVegDA7Pek6q z<^G}KKjkMk9ofVlLX>D)ev%%QA2y`?-B<|%Woy$DCEu78^!E4MXBY>yaX=vsB5pkc zD3L8k4PmFOJ`(1!x33iy4=MnKJWa?Op@sc47 zQUdDISj6Y&b!(a$z|XA%xqhU^0TC<5QZ8FIr5j_f9T6T^`FJCei9UU6&7!^L>WHfzOlZnbdGMn1kOlD?3X-dgI zZw7KZh%#Ih(HVj4gX82qAwy$=bf#34Nz{BWd{b*}8L9ij z0y+2ZXBwEne+ftl&W~eFKL+0@#TXEzAU85R5$foEaU?JKn{6;L`zS37?JD6{vZFAp zkV+L$##1sLGdiU7l+*8&$IhL5&7nqi)@ce6J$*VTF?W=hP}FYxc%#GC`0>W3s9CaE zF3-7}eABtpXxDQ2t+z%S+e$dR1+cB;uz9hvamuUz0NC0zTC{@!Oo3Wk&`XViLU_w3 zq~iHF0e3HeOH4YwPI-vAEo#Iz<>X^o9O|y%s+}*t{4%R?s9$EDC`wtm&`Wil5q+eu zGfGkN6AYoE)VnpTZ_AcGxBQE~6%G%;#%zlb~^=ocyN3$7{o*P^M3|1 ziq+Y3fp2W|=Nv3{qd)I>F*do#+aJARW3N5hX6|k39t6x3^r^tDM%;rD=Wr`HMv7z< z>xTq3R5q-UFII7l!XNw2hlTs!{mImDA`!q;!uTb+$ZOoqpdrbsNk<{o5C z>n)G5JJE4KS}pe7@AV4@va95%l=HiJ zIH)dbPN4Wh%NIbjR^O!}C zwC?H1U?dTq2`0itR`Wqny5STt37T*bEr~2cLza;!QZnQ>%3#A*`R;cRe_;b9v?7Ly z;_wu>df+`Js7c-%0Bp;dLgb)3h#pC-sdO-@%7XflXPy}` zz$C%t#1dQ*Z1A8=vY}!%X+;%VaH&@X4p9hfRIsWHl&_}(EWk&6VtGE%iO(!25SgHW zsE&>pm?Kbzv9ot^-`Z^-=^vKQm1d+8$M>wb0AAU&9x(bH^B}KxZp`P_f(mkl4f1I| zOMr_xD7p#7YCs7hlLHJX%DIL!WWN@-wQ8G*D}ewB5WceKXU2Iv)kL{NALwM@0V@LScLPe)?`oS z!Z9^1BIOC;IEY%TGF^{@t|SZUSUDUh!)0-VhpH{evMO|0yRW-F?)5b{`@He?ZeROl zAw?fh#z8HGES*e9>IhE!P0}% z+97O}8>NFd*bc!U87&g*h$tb8b~W%kyEMA9ip`zUJns?E-Q0k_cNU#fkCd;NTNKdL zPt=**9{LBPCGQXW!%nZrg6i5vmlX|f&|j~~(qK0=i{{2AU405&O1Pzd{IefHYc-8Q zrO_L;&6j($j=;?sji5!LM3rOE?HCDatWX)iFa+k#7k@z) zHsocfl)NH^;abZKSPt2a_3gmijrY~$FNa4_VWZ$2{j8+KY= z)^p9qYkK$tTe@uHGTf^43DT!Mi0b1yABA0&n?}M?=7YG872pRcY0^~60F)8Zh;D&p zx(3;9gT8B7XXCmyhx`}oJZw?9f(W}IYIk%ks*f~xj;~>77j^0DceB3OvM#S@9Yc+g zb&c|6mEs~xBK5^slf5Hy?RY2cCCU+1=tKv9hYvg+(gteY(lH(~tJ0KY%$tc&pa*Iw zQ~8A<^hNvGbTh8EraglSCG{0p$u~nCT*#MItXT?A z{53oa_&oWb`UF*#Jy#**jAfvwLTRug*h7oj_=IA-XGcVmR>C&a@`<7gHUFwtYvmtc zu1FrHud*omR~9zkN$#D&c^A{T;^9hI!XgT2yAJ6@i$z5L6)JF|yHgBXB)mH*I?&-q zek(W~lwwThdb#;=NnbuoHn`@y<60KMQ zJh6#+<%8#?U}qGUy=75Tlg;au&+$Kn;B){(f#$eeRpvtj@BuDGEbYf?Zh|KQ!BRXh z5G!gADIAF+0fCiL@^kqavhAqj8-h?nm1n91B2QsuwWHDop^i5TB+@3+s~taB*}p^JSvXcMMG|{qxaCN6Wy5+n&}jbO3C;R_F<=82t#6 z^83e^qWZ#cuDv6kiHiOXzgMz1wK}a)k{|TA7^_9yUHZi!YXmS*&sEy z*4KU3p_7cPZGabY7@N4PJ$c*5^YVY$>>Yl<gaA7&-W4Lbx!CoKHX{IHF+Au|tw zrv1&>6*J-S-tq9vgEvBn5A?Luo6Ys|G@E42@!P`VOO}j>ZyWi+jZoly|HGKs;4+xx z2da6w8PYba{Q+DTNx{er&Olp-M%NRfsu|d{&|Dx6nWB2I6UYCe57aF@JQ zeJV4_did)s(aMz;jD)%0^%QIZll;Zgy`NF$QN{zZDd_wt4^u`8?2BzEW3C{AJx^%a zEI-D^gg8eD#q23hzVROl>}ufkS)2qE2~B=@I*<_ET$Z7MnjSNS0g_Pz_coX*VGpt$ zE=)x|o1-4IdEV@a%7ufY{!zb-stfEX;n}IY{FXa%nA$`fj=I==Fy0?J^yFrDRDNW1 z6gVS3KO$T$?8Y;ylH5fx07#+jiQ7=09yt>wDH_K*nM5Ij(uPG_LDGrIG=~+`vJkog z(HWp|3mI-ug^SZE$Y&b9ir5^384Z3L*^)-PCf|P9L@_+AUwpnT3|-h&@-7l5T_B}b8eO_sIv#d#c;UjweYO#9lLkSkL-}reuE(w z&N;I|gC4~eJZb~CM=CLtI%G7`c~E0j;zGPZM3W$40dqh&4Xh&E)<`wz&~kz@(r|bk zhTRZ1HtzRCy=ljz>(YHYwz#}ghS9VoJ?ubQs4$$TZ%oboI_jQvXI;9JXN-NutXp=v zvm;M#_QX9LucbInif`|NOq~Z_DOiFAsYDEt4TQ{{i0PxsL~i0cQERsL^OL481nH(S=e~v&wwVQY)5x zRDLQea9CwYpVDv7P3HI<*;sSqEJYT0bIvct8pnXd0=~ zAum)+0ZU+bKAb%yqhMcB>Q7S9V|Y=ELkKZJ144Emx@DtsvB@-{7lIne_?*EIL5jaK zJneT_4D6@@MO}nGU$+mp|N6bJ+a6NsuV}PrbwO>T{`Yl;uDXV>OPX!+H<-;0KIbg( zHqV0yM#L@t=}=Nt>^}z594auM{bRtLy;Y&p{||iUzq!RL07`{DC15SNOB9v{rzAa5 z)WB2_Q3LjX%BLb*BDgl>zlwE2FpS=R|0y(r@Ju`X;kbttys@zCNjuo8^b={8ke?b# zj3ie#P7MH?Hx{h$q(78tEKomalx}D^$s7?l`xNk4avf_T&&F z-C5b!RCj|ch%n|>1os|P`xzkZ6V4t4I4kf{gaZ*tWfcJ7+#A%5Mlc-mhUI->@1ao$ z4N;>cpZUe$s^Vt!vhhfgFg!XEb72tq>vhf`3mxSyC}o@% zbRd2Q`kO%T7-i!@jI8`Vd$BqxW7^1c1Gslm= zf`X7}(1^?@cAA$>1?_WUy8C@L$D3R7W4MqexicU;~ z_ERUWi!GclX0u!R`nI_CyIcrSe8Ay#vA)Uu``_$n>A=m_unwkBJlH$TqG-M&oBbvG z+!Ka}9Bt4>ZtCk}pDW>F-sWG=`6B0s$iGg~>}fB6Ez+()cmqz)z6ddCiV&yF2z zMkIO?A3d}qkzk)nBo4_(*lOGlwAiT8nyrN%Pl2kDqw^N;JMjfr4$V~cAOK|?u@vbZ z2Afb4Vb8VOmL)}&6~%FE;~2*{PDq@Prop5pgd`KvU{c^u8A#cNrc9brrlpi-C@m?ZkTR5Z zDAUqTZcBS94GhEWbeNW5(v`F`)7zosaG&=(l9w!$xxfFlWi3at&igIr``+bwpZ5^G z{(-D-g>7QlWnu2te_pg|amP@WITwwjItIIjZdkPUnoHZ-QqNji+>O_{p0Frx`T~pM zv9P~&ecaOOYJ4HMCgAa{Xl~qvqfj38wYD9CzPcVfU)!-l*4qNAY?uoC9+khbGs53M z>pJdz1nWd=I9nfI;PJ{w3;lT>MV1!w1;aU=c4Q06^-k{Fmwph${d%K??k#{3OIfd8 z??wn$Z*-R2IHX@E%Q3`okLqn^{f&tS>ETH1HhSm2*j9RYFfzHRA5d`iD-<0EuL^n; z4?+lUV#%_5`DzbXw}~k zKcY8Vae@Q%>c05<`Kxxhxqsuv_HQlha(=C7^#sT+Cyi|>)mw%BtnG#_xcJk&qH`0E z&36$loa-F%`V)Kvmy3o&*H)#uSM1(MCLGR0_6-jk;gfL(jD9(=?p3hfg#G@n`-9-i zj*NkMd%ZW3VmYW6C>$6NCVcJfOWMP#<=9W0KA-bq`;x#fSiU9Pg4<{D4sL4d`;Rq; z!_AL<|ATv-EiKNyAB51D>rY_qY=sZGfpGiYS}*YaM^2t}UO zxOY48i|UhMKXld$pI<$Rd;?8}vM?#!-*9`wJ-D)sq^4kon~c2rGUDWTfy4xhn+0(8mR5jsX6&3kKK#%r;|{DxDH ze>-{dKtu}nT|FMiUUwp5Y*B13I||e^>P<#Vd#h1z&>5K|+8dh;&L$74b+aay$!5{p z8eL7zR)>yRO%9{OU=a*DlflI79-rvb$##@`Gw7R)4xz0@ve|GQH6caI5wNzpl^&Np zEiIN>8ue16&(dP|dOTvZIcRn1twxvKW3rT7vaiGE`*9m{m>hypvit0W$4!9Zd<7ZI$Bm8C;^vFPim@IwOn`@S^LCUbE3+ve}%Q{n3_|sGsY1 zJ27XsLbn@kn4~KY1A<|LR!;$DD89JfIFtl_5>lMnd6;4DL!>ox?V!t1VNsY%b$@xT zwyD#)Jyecax`sQrXJ~Ysj@+n?@iz9oLQMS+fi2D60tJq|j zLRDB_uB)r5+11+WYF7U?+m>1!$WBd7;S!>2XclJ!tSaO5UZ^n9%XGvF7lRKO{CKbf zeW>388pzQ*CMNC}eK@dgy%N#)=gl^~MISDPEqdV}4xE_$!i>jz?ZX>SsDB^vHAhlA z#;tZ!+sbm(=%jOzzV~0~>wkcU&qr1q1^G;AoGWTzbV{VDA{G{>g5|Vf=x}cm1!28* zQkEhCD%-24PE~g#l=bUDHE71UA%V@D@7J^2XU~7&z?ok#x1G8z~H^?G2T9-UE9gX&>u~i$0$i z?;5iwyI0$jU6u&Vy>;xKLxYY$%tr9-&UI{XgSMO`aJyB#&Y zHmcIi+ruBBSe^9<_g#A}iy>^}o_(;P#jva4p8ou~;Yc;*#0&QPuedjKob7NTKl61q zMh|d*Y;`JrH}Yrw{Bg!Okxx}$gmGV=XFr2q;@8mhk=fskafaoNrHm8?1y}9l%l=CiRJ^6S@cX4XwF7FkxgCTg)T-9GyX%(YUBh z?r5~yLK%ZKlv!@EH}*C1Kg;q)yJdOMEHlR%`N|6FcmLbazJbjnKa@hEv&mpKIM_Er zOBk?hK7lO>IdK;@S{h9cGK3x)jq2Mh#~+_(zcX4bCiUo;Y|_8fGtjlMyFox+_Rlc4 zevQ2lAqteIJ@;)<3UvsvKf|y zY}UpOkQ^Hgwos?!lRa@;BQs0{?pTB7^mR>kSFUVk6AsxFM8nZ&v5`7~{seT0;0!Gh zd`hfU$OQjRLYdDdml$e#abz?4vU_9KK+j8hqkIWlO9i0*11&}esL!JZs2x}lLJUx9KdTjR^ER7_A{5gJ5&E+QHXogrnB)n<)!8*Gto z9vsfOdeN?4OOs`g|B04Ct7u7=2YVOeHTzG2-4N+wZ5?g04vlo7rBU@{tqYDtz{I09 zMr-JoSqruB5A|lhL7kv}+jD96;@;0t=kS<<1M~SCyy_>}buplR^3ZrFrl2)6U+_^v zFl^K|!v4|a>4I*Li`;99)(-e;kK9q)W9Xf};i}d(>Tv7jit@;yx79t>r&ybP4%w)F zde9y4ObvMgo(=HZmMx9ykC#nXmUmymvVX38AlTYG@Lkd4lGMBU2Aj=hgWvhUP?PBO zG(A0dKRsYl>hY(^>;_U&lQzyTFVeE0CE)@i-#xg)X-YybS-3Kj*!1i8#Cgw*sS$~XW=r5{s5Y+zC?EO?x2qFE$9vCEtr<5cV8RS1)ZRQ zQ*njz&iMRnGlyGdhPyWgGp`jc^RQvGSSh_F4}7X%iZ)yIhIor7(rB@?CiVC;_7#PM7~>?b=Y6D0Z|-YnDz-gmQL!qD>kvL5D%Hei_X~Bh10LoDTskD_Ha;t|nJ-$Dknovi_lNojZ zn7r4f(#eU5WSZLo(^%uC@vIRVYC{3B5FHA6gyKjuLop7M4;U11j~o@5B0YQagrNRd z&%T*T&m7+`WRhFmY=`^Ei!ZVRW3d>(|I+o>+tR7c>gx_k#+=v+D(Oa!94|TW&i%W-3m&Y-Ex}(@&o6=>ra5M=*ZZELZ(B> zNK!^o|M3Z-wL?+7=FflL>{XPG0DI!T6)Q9y-;8r>@!$Zok$!lfMu6#_fWHRW$YhD) z(jeS+XWSU0n+bWs6czRY*oVR?XmlZNXs3`bu!dx&zyFuJ3-wu zL!~(Ak^Qw^XS2Dywu}7EMx)Qhtho7_oc>{JpxI{li+J3iBz?Z5A_b*Xs}p8jU{O;D z#XWlA2>lj32^%Lt0R-}kG7LLy-u@Kh`x~Akt9cA~Gdrmh3cMmBb}dxOGcANUk_JPG zlI)*yL%nUmV8qwPF3LKaTiX2kmR;(12u{hiDoKOQ-=g0CZ!N5UI8)k`2`4hiQYt(2 zMSocK2mMba1H$#lO%AB98(&qOeSA)6etvyDhQv4O6 ztc3MrcfFpkCc-a-6V<%>Xi7GhjX8Mf2T}=h#b^PY1mUg5DU1s!($yWtvPqUrWm96& zqHxFZ>qka@v}zUGu&8@^$JEG2R;_}Jmh;L3vje@`y*aDNs z1jlk$A#REjry8^fECo!REC(jRrxhqqmS&DC<-^M3k1L1EfyZZlJK0v=xO8S_>Be%~ z;)&Ltk1J1HJMa5}=D~Dk+IO=!rb|G5l7AZ;R)j+zSJbcYFJP-E?}ye& zZR|ssos03mJ}~;gAmrXNAJG_?P}#B@Pv9=*PP8bTV|azl4sI+p00DCYTZTqck$@=w zU`vU_-}1b%WHt+W$y-)$9_riHzwfnY_mxDO&_Y5Ndc940oylA>KEH)GY0LNJrnYEu z_0X1;6^l(Q?fa)^KG=W73Wzq_uEU5Aajva+Hv{!Nx$v}Kp9i9K`QS4FOUdF`U$|NQ zOoF|CMh8!p#p;PI$M&CaUkAsQ4s;h6$MibGb?W^I7|($F$N?`77-#Sar^l@Tf=x=1 z)*pm5c4AjjaK&QX&harK$Pxw#V->@&<+CPV87es5ESSJ=6DM#Fhw%t{L6~@5_S(Fg z4mj@`y~BM#-s$$*oF~VBV6jxUyHoBRRZB79b#G^n+gw)nbsILYr3YMhjNa)w(DcKJ z3EhXhI9$Q!u3B!fEWgU_O%$z!g`STqBM!1wXaw-Y)_5D@z-z})F^J0Fwz2x7_B_s> z#$s4XrS|gX`}3%u;B+PuzsDav*8kXJ$9b)x+dXpbaXfziQ40RahD?= zcL2S@{lQva87St>x-c>xEN2Boeo=VF!|juRG4?nii*`n$jdUBDA2+ zjRPH78%+=_h1xN_v|k!i9~L~~bUyRk4!qTLQ zu)1*OxvnL$y{)q&ms}Ep$2}BYlFW5vf|A!CXfO@-+@yS<*;^^-_tk$o_`nn zg-T&lw3G4(-#{KA)q5a}p{6#tv_JtlN$|_u@j_uVpTDUw8(107uYB+?bj9K@-PBi< zNIv#XgL;Gk3Oj!cUAX3I{QFVVg1`+s0$^ZX+@Np*3r5F?czgC3vf6p2=MWZK%AOLG zN~w5rzEmlf@#Lmr?a9I;XC9sb0f4%nXH?B}BoZCa3_#a?T|5>`u-<^81bW%$kW$5_ zkN5DnCE0S?*mgBs-ms%#FK;)-g+oJ)G|&>sL_RX7oFDqf4^j`*E^S@H(6emR_)bmK$#Oe9-XoQbd^=;5o#NKU`o2K_Fr zp-uBjB3MocTWw9|W`?4uKBw8*q7+^Js9zVcJ0-J0WDc{~mmZ9_#Vlfr)aEx?vrcPJ zv3naG*>rw$d6YF8M5oyfCZZj1Hv8eX+8u5|R!_=7{R*0;ow z1$`dZY%Saf=M-4%eQ*FXEw{3Om4`wUq&T)QM(Qe_XT4x#(l-i@_D+YdZB$YJw_=3% zjp3!x*mf!G?6xz1MBss0EbwvfQ@?MIw%A!W?wJtL83jjYJN#CLR`vHStJ}Pe&WMxQ z0|D0EcB%Tm?F#*yPH(?~*ZNBOm*)xcVU*fI=ggh{dD#gG(&{goUNz%s#3 z0?wJBpeRQVmgW2x&=f`o4i1ctWwWwgs!mqHl9e1wf=mm~CB2-@ zsy7EI>Dn1Vawa{)Meh`5BKXNWoMzOxJegWvT?|%5$qskD-7Y~b(vEl~v(w2gQBU%$ z%am2LyWu&V_kzX)KKa^sw35XK$82{yyk7_w;TbRhdBPl$Zi9L@-8y)wIjoF>$ht9+ zb203(+ngioN1R}hp7!R;r^|WoH0pG4C_(`HA)c^RzwPbFb|!m&+uJQK>g`=5clRQt z+wW+boNNOSwI;`9(3h`4W)5~cDE1mq4O$?HH2)8YQXx>Ip6Ktd(ygzr9~Qovxr~57 zpAXf3Rv^2S_V*3=&TFxgMX2V3tEOZ2VlLsr<0@s0tRn zPOsbTEe>U$OOK>dBa?Ku-DxX}QUC}H^A(4z8s)1y73>}hGJ4gei-wY`dmb~v z?K7wUQ12iT99_bw{3EnR!tD6GP$BDmQP0kS+YL$1Sn1GtFxY_mC&GOQZi;(}9t_SO z53mB$H@tLRG$Fd2p6-AH2vF(64wQlsbt~0-%8o|SY+`#pJz!d2PF~b8+A}CC$x_dF z4}0JA4KMGHCS}(_DIrSC^LHftsSkeuEoofIu87-2tL|Z_7-itW!RqGs0aql*`?w17BmOfYMK_BdOK(icnn#z7JCpOO1+fmqxn#&qe= z{vkrb`vg~JcP9=5dBlIPmHPc*Tg;f}wJ>T_c{r-QoC%Bko%)-BfELif=h$EO^dNH; zIjVmZ_IS#nP;c8O0&TrtK|zg^Ju|)6mG>CM@bU6Y&+$MjrLt0fYi~JkWE{s{E(0M4 z>$<*v&Gk#&(yZ717^HbXJwkvgf)!H!vyU$-bIpSj#6c)44-OIhkRJKxYM-U&bc{?^ zfzvqm1AYjOX5bLlS{XO5mkiSAe-$ePRVCYVKRHqHo2ShgaaJ z;GyIHx#Cv(1UtCmMBj-%Qgs{5i0PoFj*bwiRPj}UeL}V#Hc=pvQ3QroXleuG(RD+v z+8@+OP3Is^UK%ROYUXe9fo1Pcrpp4$4IWC`+8ex;@} zX_(JYUAH6Kov7!iOQ{2S$94mX3_Ljq*dQ9rQru&Pc9Tv=P8}USC9FT5IhZ+KE+0P) zNEsk*NQtL8lR8}vmX4Q#+VobGFNz4F4?&E`0WPJvGgxxpkg&?ljiKx<(CJ3+{)53lPw2 z(!2Q)u8U)PN6XPKrUlA1*Rqe#Dcd!zTR40eo)^-tds@NkfzniW&T85qeeIb9Ui2I} zfJd7Xpr+=NBSlmFIYT@*2V6*hz|er2`&?1ZKC*uX{X z9bfAcWGKB?X&C1i>ndmu?@1{2sTsJej?>)*WfPQZKkuzzJ$LLX0E(2%b!?dUDjG^AhlrU#r(KYV2+te{{$3vIO9f*y1Eqc>H1(CBMx^`3=I127 z+1}NTTkr6Uvb(7VDJr}IBZ6}Nkx!lBgKUDxhfyLj>1T|Myb_0$rus+kS_5%ouF+uPTQ(^~e` zt?#q6`*N4c@})U%#4_*taB?psGF&j41XVFoPzt;TNa2IKr2-!Z0U3PxD7-O3*Jzs@ zULm{F)|5rx_%#Fzr=_Jnn>}I6cpm(&Q%znzR4iW{mV+yrYVK;gg3uAsQY z+wT!=mp$)}Kf3X9eoZ7X?;gS`sj*%|W5(r(zu5||;E@^Xzw0jcJW7hs{t25^_mFV? z(7?b@|IpApJ=ag3X5iEiQPeV$;n#BTyYAUr(%1dHpd!@2{|MrTY_;FILs;exEw{baGTlta0Is1LO%9Yn& zSwRYz=+KMJa=lEe-v5QVOk`JS_38cKntJy>0Ab;I+g^NQ_4(R8RKkW!ZPvb@+D!PS z_u6Kh?N78d`v#N#L^~%)25O_W=bv|+P4#gGpCmaB;W{MeAzSB{M{gS)J@CMRQGFtn zOK(a}rA}8XiE=qnsU|9wG5zRA?*GW>=tovJH+xxI;of7toy!;hWp8hyvaDknZpeoD zzaR7YlI)mDPCE0FRM}an?6_%1MF^k{E6Fu_V9YOzr{)R8yuHWn>lQz)TejoI9o6cN zWlfU4$uF-aIU%gRCEmC>oDTx78tL2b9+vH+Oez?8pf}PJ>d*oj&!{Q|hVYko3)ON<&HR z=$+GdwY+NLETP?a9@on3W=tkFIS$B;HkTV%KXQT8=m=y!us(Eqgzo=2aWl$^s6bieCDmK&fp;^ROM;Xt+w<}2!eSFp0bzzvGo(65qoRL zkJH1+<(62f4Zd2(=bGfEs~dejhnI6lP``Z}^3eY4ffk_UDsgmZ9S)j{Q3MTDMBG4( zYT91BtM(K+m!<;>G4<=-K)}oT-GPAnLHwxer%274%4V|w2FFCp$cP2-)K>3no&dkQ zY|WbFnl-QKjk+dx(+PVN_cvI@tjKk%x=e1&49Xm!(L75kK;02Pi--Oja;aY@$xy)J zPsyhK`pGqGI?g8?`iu4<4etXR@vhwV=F zN3iQ=;Le6t|6&aRGB+o+3QV|GG)x6F-Vn51_|6F>OO4^OI3`NKju8wsng90#xh2VWEp^|Uun0yuFkd~K7xWOa2$0zEx5 zbwCCB9JbawuVIZk4a+nE&ts`!V2-yj3^X9mJtq%3WmJ+cz1snIJ7?iHg?u4jz3Tz< z(4vVtWS+r;4ALSm-~kj(rl&-qxyLCR2S5g3bF+geq=vF+M!&Q-@gm!qQ8QVrZNMn8 zTfBZH83@XOp^+gJ)Lpk}U8Lj>Plf&7Qn@5d5*LhkLj65w6$sNkvz!p!VSnQA;Xe9; zB>$RZfIX-L5Dx@1XC&_r#)LTDIIA}D-I|z2Jp`ZyDc%O8ywN63o=oMTxrM?wExqBcm*%h$t+?^=zvQ0hmi275cPHXG! z3Y_aNI9`U338dZE&yuNU*3r=dyEozO-(w4AHwT9HzM4edxft<_d%n3n9Ui+2W1P5Y z&v0;aE@<1kJ6YLdlVi3$uWU~T*WZEj%-MDAxTb;sMcl0(ER37nh@22S1EFVv9w2DQ zOL^<&FGt+YEU*W{0rxhGH)z}To7gvj`khGo&D-Qec4F(gOlDm+QVNI51La7h?2T=5 zvoG3LZ?gt{)+-7TcEz^Fmh>8hE#KCaU7lUr*}3-eiB4pk^bD5qKZ8Ay5AFW*BH~qC z)*j?$eH?uv*lWtl4Q%?*LriKuLhCoYFG^tI08Gm$j{PW9#6qA7K)*oi@ymU9nz&&tpAT zMydEmkKe$q*)`a;UD%0^CnJnw-ZbSC8OLE`dY>(r+Y%Vr`;#Pd@3Y1H;@(%0t*8XteuQ!cynY$9 zS?pG4F}UG_tAbm)gVqmzFu826y*XyvcQUg&p@cdj+4fX#?-C%dTRi|x&|dHXTrXE* zZurlh83;SoW(F=zc6ZF%x7!xXYzhqQrfX8*-Lc#J29tg98_wwj_05HLIOm98IP>Pd zpY(Wa4diXP(0T49kIFi>;{4}Y%bgoqd$fK&-}z>*|2Xe^ZuFnK3eYI;emyZ~VY41z z;{W@zi-MQsg4R8IIx2r=r?uesi8-^HUt<@cA3p*el#j2=M?NvK@1POSTM$qK2974I z4{!isVfJaGn~VKEEGOMlHaTFM`c>rFsj4!Lg@Ac8ea^ASm=etN_hh;}~1m5UB640ree-?~P(| znE5V~u0H#teCZAFg7Oq|qd(!I+gD}p{D?ieY^T zLE)a;)xYgx#@jEA?XJY^x8L45e0x(Mb*6uiesEgC9o0Au7Grf>2CVHR$PppL3MI(a zvw&u^n_$1dzsWILxTozITp}EUQkkoMqto`Wa154&wmZ*}sn(Aa>Q8*y?u{#`zL5(` zF&6L^M~dD+tO$0wKryDscquE|%hRzUUgbyJK`_a)`c`(cTv5J9dqY(a0%G~C>9SHryxN2ph8y+S42 zxXC)ZFwZ99aaaURx!KY-AQ9I-4u&u-WmAJ#a56S5|FGG(>I3V<;6|nhW;MK|Mj$z% zXKN$oi^EyXzlSG|czjgaiIPPD3;^nmhOwPe_I>aUGqcu{yFt^6)|IuM+>Lgl*H2T2 zy4^%Aiw=HBd+!#%e;_M~rJ)iM+6NTBFz=N*C0fG9aL{6N`nLwnpk4=8x#e!XGv+kH z*?^nT8FAk{_aQ&P(Sfir2wd8bHV#{~0idyjJUJSg`c3Qp!`fi{AQ22EG6RHL?$0KI z;TSzn1P3yrTQ4OPw^=^sPfB`V31xF4VKgS3vdr?hbK=G0^r565A9@gPyXk{&3>dBx zZLPw7fWj5fSc$jiqzTE{ct`Swub8HsG!#Cb|fBh!h zqHYV`sQu7dK=BXFk1_XM@ZmJ$>r5~>T;$NgH^Nk;4FJ*AqAI^Se%sg>6UU2V!ey$L z{i5)n|Eaz_uKmz=>fiYfjyZS$E3Xx-SU~SWlQij2`od_+d!w*0e0W~yH1bC_o_V=* z<@=UD`lagD@2f8?PcNyy@8YhIW!3027eCINnU^}*;rCUSq?d=fr0SQx)c3y8?@x_B zaq%;woJ$Jl(#A;#&xaR2^C%y$f)0iOY$Gzc;ZdCKOh6!YzMRSQ?e7$- zix*efKXraceK{stdpg6-wy?Zu^p;d=)w1;X)%X+}@9gY@eE3kO8m+8KFWR~$(=}5v zc3&&T(gaW=|BIHVE8uw}^nD-<8d)ex^`^m(P-qiSkx4xXV)m(_p+iGM)BXLap&{X` zXEv{T@WH1?KKaS12dVF9&)3@1#I4bq{YN}F-0p+IM{HNx-o+C!a6QBC#J4JBvC)EB zHw+okMP8qec+*~IE*8tW?}%+58QBh6KK?rA#Ot$(Bh~SkcZts#%f;~S#oI4l_-ejx z9f5p=$;Vp$CuJ%CKn43ot0@q|y3ftm>ZYJO;&x^uk(_jWU~`qfcGBytbANcU+D{g3 zo%a%TOxX);8neI^@i-#ch+}_f`KAT0zBb2yNo+5C-(Q9O^;V3A#+0L}`kDjL2R{q0 zV7>+}0h0=JO3tbBNE{r^%SV?-qsyOjG@t0PbdHH0-~TM0c%7*&*IdJ<6V=haNThGH znz&zb`<-r4Hjlj1P@IsTS5NSHpxHQN@sXX2ApXKQXWi!W!N)@hmq2DfHanEbX0b&cd;RE%*R$#eIzcU*>S8FWaw<;_8vZGD~TXJBpJ+ z-+%55Wilc9d-lh6CWo4vL$=!E3!GS){HaTE{!gF>siGRz3|AbOf1w)-ZN?XcXSJsG zci})T$J*Zhl~i?qBlpj2Z`>#vgMDoV_3xMeUEj0pVB#mw{mQo4?>>}x^d||Upbu69 zMp1q1*}iAB`D?~`PGDtHcqjL#Zlk2In)zKIZRR7ptWERN{~Vm$CS{tr{O?~?a1ec^Zo;g5jmWXfZ{XY zP6Z;#z^g+;!^1;E@I<P~+@l`4=N>kwDFGM{!#jTjhd#+n9-}0XM8HC738)^Bt_6gO08>cEiO*mV89Zb& z<$MLrPQ$X~0U5HXG+vB`t@+jKhQe0ZM0Qu7n@z0pZQA5pC0(|12mxGq}a zQ+(ZpM3+bLWLC*}Cgwd%EH>s{LrY{u#ydHBXISoL_Pj^@$HiM#MeR!`w~WNZ5_?Sh zAH0Eou@q|mQk?xVywSAatJHU#wxt{CD@v1F05;R+r^fYRL9Y{X9;NBD@sA^bVDiBV zplzNVeDqj)%cI*K-EuhnX!(}R*o^wCZQI!NTW=knnmYW}+GlQP=HEv)hQ?pkjF><- zuWCzHY`hT0p3%;;R=Rm$5fg1L*v|cGF#{=`T-gK;19~KPu6U94uh_Z`eROhs!x-Gj|34>$bm)D4I&0?@>B`Z z1o?o>Bw>4540u@VkQiGWhueV41+`Oq;eJMH4#iJN{e|N*M3v`9=1cxsX_J@BEP?GX z=SC~^-kg3?F(&h$ilEVA2Dp8Am(=WD|{%;WvoF#=k2;9PFYSqs7isR=#ngQXx` zy3b;b=Hz^0skJe-#P>nHMW>jsPpx?03fxYp->FPjTI|-~U3=wh#B9qYigFJ1C->>~ z0U+IPgyp)WuTOoY6vzej-o6^%Op}G|8LCEIMUU4F;aSJ!`Pet3bfxj`<<;BKy*#)O zj{WNr5@rPzhFua4v&r+ze2tEo?~SxYRzhS}Y7Y9%5n(@xx26ARkO-oJ>NDqS#gnjF z{0ca|EtOzCu+Ciuo0OjKXJ191lEqK<7z|(5ovFbIF_E?K3a#$G_IYc5SA`*Sfm{DD zs)$W3dQRH~+ta&;JMVtM1s`l|X(W5n%`MEu^cu~K2%gGr*n z43bgh^|B8}o2O#m+QF=LyS2%7WjGB0b2^-^>~J-==c3K-=+L6&$>j1yyS=Tl+*-c| z8bAdoJc*gof~ZOdG+Zc9aS8}%K?*IzM+zb~44sC0ivod%$}^-4vKOY*KlBIds#HP= zo|*#qeWZVCs(&-v`3vApV?-W~5CW+3V%Wl``uh70^i56m(KSf^)VcGMe*G?IcTli^ zPV71VnWs)nO`W*VN$HGzTnE=nU%5bPS{>; z2p3RxEGMgK$6Fxp2IPQL{Ve{a?z8j2jS9SZ7mx>D?x*sYSQSqX(JB^0@AL^96k{!3ognJjjQI}R!&9AwxX>ZNtFZsVkDIqlKle-u*e0KN^DCiwIx>Z2Zhwg!-6m#E+*5- zbO~{WSP4&(#W1@$j1Wg^B%Lp2Dv5Q8#QInzQ_KUi4l!Z#{jp&k>HzJB{$|A-1%8Xf zYlXD}wg*8+(lt?zk(gLnY`9j60+ihOi`!QpS(`0?subKlPl`obrAVrR$uMe!V5(RUeX^#&u@D6V(0vdk1)b)#^z!@#xk$ zwo^Qeh$}amP{$eW6W)E05+;*Q9S?VPh1sLH|6Dl07TuH#tjuP^O(N?W%8DWm>)hG! znK5YKVc}Rfd*)r#BCs4iR~%n^ zW>y^TQO0O;ac~_T1U2Ie>Tx9oGNTb(nK${p!KpA-`h;S!B=RvR{E38c&6$T0>J!%A z8duKzl1MHEj}li``z9xSaFt6AI^>Y>l#kJ@Y?K9{Ko4zTXA4DM1cc$bC=_l$>=7$E zUjTtxjdQbe5hJVxuI)L|6aulI`BhD5_}45J$d;GGQ$a7uYX;M;@Q3*lB5lyqR}&pk zN-p6%nQQ&{HQ?Aiu%lhvCx0GE3CubxV0NB_&}9~kXjmO*kN!iXtEmaY*WboRw;#hT zirIyu`u5wxv7@!ooHxD;=N9rf&*?WPl?%@JUmyPPhZlbJnd@J9<(0GM2k>1No*($i z^UQ;1L5g;PVYhw$p@+^l&cXA@yI`CVZ+o`^r88b|_`(l;{`2RI7omX8GhSrDE$Ag} zT+Zn#8ikvvw-)w0cAj&-6>%agiQ0!aNfg4~!Lvr@ zaaor70;$oWQ<9vy@s!ek);IyHeBp6AuL$QExksIDDeqKLup4cbpcG8{o%sulWVh34 z&w3-hDbZ%PCznOMw6t(tSX*1P>z5F#=jr9y>zCpe*cb)4g(%p83mKclg$MdKfs_JN zquVLv-~|mzVY4lG;c=fz^+GJWCg`#x2}&~3`ZssoLQ^@fgy$7({u0b5hWbx@un37Z zJAlcBLq{{^mEtHyOwz`1EKg&&aNc0?J4cGJwil452lgj{(@~za4SY%Vv-nLhzq~+- zh37wW(l#|^TPVO;a|iz83(uV}VStQhNpYUJa{z|?6rt+p577lC&uYuX7h4up!rmOJ zfQVhba23NqcGUd2Lm9O1Hg^n&Hk&9Gk>x8t#U?0S`NFdYg$1miHNEdi;zyv2K zbkaC88_l9K@LC=ey-v3>FpxrtPVcmz5GDR;Z_MdU4Gbt=Y26UL9rS1QDgQuK_LhhJ zX?@0@PB<+`^=5i2k{IXWy{&3<;#U?1s`}@WV_F7 zszm(kQGZ1J#Z&t$d;IQ7B~|H5R;$TAf@X7l_fp7n0NHB&7=7wp{K9Om10`6hAMP(2f9*=`Ri>oT6TD)FZ>&X%Tns0HdiW ziXaNKxlyet6?03*(r{QQj{tayyj=EMv)S#CnUAPofT)TF>mu);mNPu}44w<1 z5Me*T{mSh*AhAr{z{Z8T4fvZW6DLjB4`$!v5gGS#1XLxbCz%+L%j%Qm$uhKT5tLD) zaG(;F)feS(kp2S>7P^OD7EEX*Ib509e|-N;rGi_%@4p9Mxq-)`fw(2~2AZcH>P>kx(2N-+ckCgBhFAdK?*iKA~ElMxfns7i^wZgJix zDR6H0Ne`t@u!J&{Pq0$elJsY*Cr%_Jqnwuor@neWj3hdr78|QYo?P%@gQW_osc^58 zTM*M0dI*0+)yd+(RB>vkC$=wl;5!*7NU|7kF>@H_4 z92BKgHtALT5xJ1}Fui%nLM6+(*H*{B!IX1&g8XlnC@#HL}%-Dof~JqoDT=7Dw{$e0Bb6Y-rR zATOon)*bmd$hJVn47JGofSWG8yCV0tgyQOsu3x7urMnB@l6 zqMC>gVBIHnV1g_nmegJ7G{sGEUxL0@E5#*cCeB8?khaH@JSbZm}vkHQ>`@};JK@7g{)nx#PaX!~Fd`+0h2xTJq zgwre|x9PUg6U3$vp&LKP!`FGdGoJ^$@)J{2E56;`{cUaR=d~+xp;pBysil4r-Xwkk zmO540fjpbaDLM_EY{7}pn1MU5kfbZ_95~X_{cX_6t)O#K{5~aY5{^(76|NL*0~U3d zOwerLA0{#@FY*2h;Y$vWbuaO`bh_lgrO9++e21uXSg+_`J$TcIo-uV#E>p_obJ@&T z)+Qkpf2Wx6i`()>pcXdoj#C-j0&Hqd{)JX5K%YuG zihlpAM~=LzjWgAgAHpi2XDYiN-ZG`LQgFFDw4ju6Rl z@jYuJomaDITk^j9Do;7Zd^#7rZ+~Uerl%_E^ubNx>~6j%Yj`l?P$b+Had>I1B)}`K zI7$G-j-j*^NvfSB0q9{yr>B9k7?8ehbaJ|LHd&;0&VpJFdZ zN<)P794bYGiLCn5n~TAe5g$wpr9PFr`DU|oOL+R`NGVeLm^Q`>Wr`5j$Gb`u4aGx* z3470y{e*3o)F;jFNxuD~zgQ@tHqS2tR`ny88-z|@!@aZUH~3*N9k_$G-e)nIABH~x zT7_ZSGbxhHtSUrf+i2m6TvM?MDRs5lrmXKe#xb#KlqP>YAFOM!gW#*_w2nNI`?63jA0th)r|c%>2G+19o?dHeMI% z4Pxs2f7T=4k<`DGgy#R>y5;D)b-(?;=^4^@C$WC)!yKWjx{c#`>Doeqfp$G1kiSU4 z;sMJ^3+Y3_EyS5hrKFBezKE;(HK$kHS}lV@vOfWQRG^|5L8|{$MJSckLzBw!%Hhp= zacbXfF}+|^DgnLinevm+V&|Wm5VH}Al<+HP{<$#hN0kq!c^$5s)y3m;4_s6c1xMj8%MJfNhO?&ajU^5Me?n-G{e zJ~;^z4z9=7abq@k>fwn+rCAT^S7G-7mjnz1ZJ4n2z$WQ>qsXpC?#0jl-nTFME%m30 z65JDI&Z9>K|I(%E^Q)JB^n~vl?cdsWbm>R;MAgsk;eD-rzm^eC?4a1OeeK$&jXexB zv^<3f8Ba(8!%3n0Fo+P1?g?U{3w$f8CKjzb_?@FiAMq{S-t^@n^Fe^`K@Q4V<-u&+A7RCukwz``*1jpGE#}c~ZEj zto|swIB$0z2Ze2ijkR4%eTv+l4I6sj`}s8uf{!B9fddr zVCLk}VZKqtU_Qf5At*OqAFetY1fUn7?|1-GpbE@z7@aHB-;)@(BAJIxSOb1pU8^WR zv$F>t@He9z$~n>r{oOB(<(X~f*8FEfVf$5^!`0>{^=Ic1&#1DF?gU_=OU zL7G;9*G&XFsjoo5cPu#?goJ!avj8VT`*LivDRR{K-ULJl=N+0rGy6+t(sFt{WI!BDV^6Y_(dgVc)m?v1m3MO~~K& zg%zhYfD%C-^UhExWKHy~UJ;M4SlyTS%1-brHeYl3)XB3O(gBfIb$0&p?DqUS z8i6JSF3M!$uHf;2U6SnPvs?4?>~I#h++3q*@1DaSQuZ=MCy89^ECix7&&ifRV20kB)YQOp(d`8*pKm%wu=%c=f6d+BQR({*Ix z?O&#&aFCUrrJq;TquT2))1;wmV+ir>+tB;=TCOOeUty0>k9!TUireGe1zJ@ID2-G~ z5NP2V;S!Qvi^UZWQT!1(l(43?x7BDjMl9+-Kh}G!ytM6urP9BaVitSx=&3I)UHT=~ zRw}7im*|Iu15k4GG0V|o8AzafnYS<3vQkdszFhg7yRqlzJw1nXx zj)+QTNP!hCq77V&$B_LIjHRc8-s$S*ZHk;v1^q#=qrgX4+>#OWMsvh%5!B5QGkB=8 zdgBoZWCu`kqn z@NdACl0nVHZwdZ?l3GpIp#gz=_88a6Dn!H2nmV09N^gwRfCWdst!s0X09 z0kH$}3`{A+Bal6U_G^yeG=;Z)1%%r0X{0fc3+J&CA~qrzKatKCi-P`Ifyu9n#4{F4 zOQHqkQIv*v%(^xcaT+W7cDJ*c4eF%ECVdMwbAuro2G@!u7PdAb>95t<(I}(BjLVJ4 zjsex}m}pV#jdz5F?jF6x?tIB=sb-^khnP?>Ut+C|QM22Muf=zpq6Ygr4U)alsvwu) z=V3Q%b__C$0p(1DW{+sG=e-`M%@vot`hpy^`b-8_96jW;dR<7AO^6nQ-hLN?CYTrK z&u;YRUty>J5c0}y#}!85L~QPK-4H<)G-_NxfK}C?M7UPqE=T;408U!RX_zqtc4oU3 z!-4OZ>saEqo$J~--s80%p%!WVOL#hRz{id5fB-T{Dt|4k=WT7%o08^OCF(-4i`H5{ zXW|jwF^bD1M8UMqJ6xXE-+s5=snmPif45?is9gJ@gUcI8Q@ma!mYl_g)NvP4;Lfm()Iice zNK?KtAn%Y4cK)1r93H64`+(9DL0^k1M3A|zNP%zg{XN5lb(iLcOIv%!Z$C@g+s6yJ zYH-69>x0!?A<_kmTvm9tw6#2O^VH6rQ#VhPx0WWxZkrgHUbkg{q#xKiF+BnXSM`e^ zBTpD($z;q3`4hQ;Y<2)JIa>F$_>ckmtY)j3$h&ONz|QazQoasl>{9HMV1&T%fhvR- zXrmQU$Zn6sh7YR0Ne`zIk)R;iuD{W&m~Xt^CJ94kzw`sWfBc9NL^ zBD$$wo+e{WwBKtdSM)z9vsd7^AsKI;fs8XZL&koi;)aYP_tu0P@&!YSgTc?(q<>ta zw_R(lOKH%(Ey)h{g=@H;@IkBz#NE(J)#>YsKPmt9z%maZbGvqa!59>`i=%o^2p{By z*3VPBT2)c*(aXN;1?*GJvoflHvf!fDWD=FD#jT?35idvOYNTdLPeW(El&V(mb(`AO zge&h-i^gD)Io-j`3KYt~{NQEEXxF-4ENuY*s>954xYH50clNTjUyifKaS_%R`T0ckMQz`&^`! z`q)WuzyNyrQ@1e|K`Gau*Il|Ne}aIT@}@*?e@r+;DRN3Y6c;Z7MZYy|$h^AZ)-%7H zig#ZN#1bDnO$Tkn+@d-s4a6f#do;4X+Z}LM;e_$p7|}GxxhbCx=iaT1mtp}Sm-{Z; zyD6dEQWM2_jGD^&`T5zXzmyDRt=*GPvKKcW7X7aR!b$?Qv9ViKTU`vEu4jXdj(du`K>5`Bfc2Z~((tX%<+jeu2wA?|Vej@TuM* zRlY(^1FCko1P_32fK#s>rESi9Kf0@UkE1d8th#ryrT9(j1KyJFu=RbY47W?Y`h+w7 zEX!`#a1^%OPnSNzZ8eMq_Hm#3*xh+%sr}P@JIBJ26kyISKvteD+l`3^t%kN#=!K-!@U$O*7plpd%HG?& z?tS+wMQ#wVbF_gMICXHe#0@ zyW@dd=gaHo88^6+Vo;#S!pNH1u@BNOxqf{V`sBxb+Ci{y{fpZU$g(JI+|qFa(%{SmKX_)=88<*V!pR50~`tA4pn z@dbT;ZkKBQ?>dhFU2y=&Aa@B7KC;+pRX32iLlg|i7H!AH*h9dB5c}q&94Sw#`zP@z zD0Ht@Cd(0dk_}UR5@CJV&v~Hn01|5Lg+I)uPjkP<+2(;p^cTc(_L>U&@=G|1xtPmkX;^V?pohvmv$ikoBm@}1>QVxXosDdp~G#hOhJ%|!)>(vKIR`SmVu;xDw zIit|4mq6O(U@77H4UywvPSgN&^Crb?Vyp>sk|HZcH`-@3`Q}dyU`)tED4<&O^_Fxo zZMl*B8BZz0sp8gRP<>hBY)+Jr>_Tk*m<|K6JR9Q2M-GOhmZdcSk5BDnv1t%I}ab3HwG zd3t3KXg4icR6cJTwLPuAj=dlIQQfG}o%6(1PiF?ZD$r_mX8`$k>Mj8{{61Kl;rr;} zetE2a#0yTV0qoxHPVyA6hhcDo%I#nvjl|8=r`!Q5LOG2p_Oea#(OoTh1-=Dlf}rD@)lrfJu8S=W`)b)_p^DPwMPKq+Gk ztYgk?;Fw(Wq9Wo%t``cZAR-Pd2*|~kXV}2i{HzFi+jy=s;qdXu^D`Mc2fYm{RfBi1(`3Yn z>U=ID7U?!fZ>^ZirMipjcGg{`?9-&3!Jq+15t6Mis&cy^MUkxs*b(RlVi=0H(V1(O z%j(j81Q-iQeJdEa3gBUAbAm)FFeJaiJV`OI!GLVtBiUbDQ&zBVe=l+`XG0Y?zcG~( z9mrc7PUgmKTcib}#jA^{Q!%gcNBvX%{mHmLb}T1GIDpQUl7ZfULsUmxHnjmLsMY_r zB-Q;%VL*paJV7_EJZ<4}k$ZvGt5d53aRVRmkYw)90I_bG4e5M>F=n9@h!;i5=;SOh zRza0)&SCQpCIum$)(Ji_;B~l`F5nL&)dH77EeW*_<~4*E%1`K5k{@mapI8UJ+a}|8 zgE3I|!B&yUW8bLl2;B zh<{-Q5W`aFlF5q5iPT6&e>;lQ4#Uu)K;Y2rhXMw#>n-TJu!X3d5TYwTL{IcPbh zk07vTGd%#5J7*u+Wv2nc3za_dsd>(2TvDimCySYKDt#y$_XJ`}} z7rRJ$41Kg=Sszh7FY?UFeFVBPFmsYkijvJ?**v|M&Y(%n+xX!Ffxv+~4g^48z;U>gc5C(V!VRl0bZ4mjvWU_|M9VU1Rj90*6k!zbHP(+q^7Nr?R zU7orzap|F*AdIIai*R)O>m(Y^5|huOY{tF# z=bgA8{+&H^$dSP6n4{Fq+ z2B9`;hiZyQLS=!G?G2nA;w#$zsLdh<;ziNtiFiX69gj?M5L*cp#E6bJ7?9Wzh$VDJ z!MnG2SFfzw^v?Fl)sN3L zgj{D9cW@1sz}X=3xQg_eO?*}iS(so;+l;A^WNLKlXo^FHW8fhZ$~H3=MjTV|X@9IR zJY2xKKvq1vhM7@lFaE9J!{=W$Y@do>)ZAJaS!@K^$CUkx zu+F;(qreUsKuZ`qQ~^b^IDIgcG!8d5a(J54`7E(UdPQl}*w(7mDZb0yK1JX%Y9y(Jc=vY zhQu!K6|3Yi#}LZ#CQI|Q8T&P5GOdJ8Ci@r`XXzUYseoJ z)wrQx@_82ttr-YlU==d)$r=kRt>k5;c*Fu7oG#IPpjMi9O&+xE4Qh zuh=k6QxAu9b%tV^#v0pJ8dLv>X>RcMG=H%eZw#lNDpV%&ShUN7A_z*BD-unTjH{sI~<;R4DO`@*|@Wc*H27G*3b~ z8i-8|hP$Uv67IN?>8+C?wJn8ZK zJ;^xx-Tb`t+x&dq5Yk_f*N2`oS#?>JUiwA0!OMorg*yw~tU*j9uSvEwh|(7f!T4+( zEZ=Ht3XTPuY{-IDWaJCbzU$yOtjM#J=3*X001X*~0<`g4HW-IS7R?Nzv7FyqL-{)Ft9CM_Sl?k zBl;(d0oCQQfYY~P{Qy%391sd^wEzPOMkpt+`GR)x-w^GD0Y+B+VXC^-XIx%(%gAn( zzU4v~Fe_5Q2I*U@2+Vw#8NG+9Rkyq%EBIXBr%!RXL(Wy9IHuESA&b>Jrv~z$6RxBG z28uEs&-ZukRAQ@YV@L69e#9-MKvRos{Y1rgOi+YYk+>ZULk^|xal`!Sjw&WlWJbw0 zQ5YM=(2ilM@b~K6uyi0kCx(E&AHOLi&M^D`K`Q6IcQ!nxRgp964_S5in7Ox|~R%`Rj82Y6n+_amwP_3}&qDW85l)vtoIU88#fbn6k(>_acsA+{C1e?nf= zP&_jdMu@|%B^D`6^zn6{E)`I(k$DWlb(ym%C{5H$2W2TU&O%~ zj^u9OS)Dh%*FyzLLUZbDuG|(eeKK<5mH(AxNV0ulW+p5BzC*49q{wD^?E0ihVTR>v z6B@C4xHIo=kr}2IoRci0R49y9iNWf^?rvumBfG?CmUbe2XhjnWIp6N{rV?LuBwE%6 z<4);|>~?7<`{(?PJX1#^D=Z$CoFKv)*;<=D6wPF!A-nAgFZNHtJDX+uW@od~p}gD1 z{(<@m>)_;ffG?t!`F=fCrGj|~Ma)WkAJ6b|VZteVq>I^6LR=;+3#kx#lWqVop1XGK zA{)}Km*f}HAAz~|p-+5*p%~wZ&wk<)ySRyUiKY{u^(DCf@r2YfnDDWGkhb3@^8=-S z2q{#_8LLA%bm{`!L=MCQ`z01!;=Ct53-kUYa(pLIX8}LlttWno|CapEKFhv7*9@jb z@u14})ObyKwiM6a0^36!RV2mMmF)~?gAObhTvCPYEDP9yY$wdromu*Detv%H2Pd+jSl}_1T6#V)Em77gI&36!2SBAZ8BuTkssDiv?k2Xs}idX=VGW7Hy9r_m}lw20!Tr5|y~ z=gv-K*g8I_(Ff~WMn zk871)u(QlW7Q9IIQ7HNn)y@h*LRdmYQ-M~XosrQgKv}l(1`1gYf^D=LuDGnCGm$tb z=w3ARufoQ^AivNiVsNuiv>I59#ZHVxYGzoX@D9N}>=2ic4e% zQK{y*j);;CQ&nVE%qxctXOwMXjDOI!+wtnMemSe zQ3g2orV72WBm=C#OQl#Usq?{TmVEpz+t3>(Q)>8M&1O$?>|#f2px%#S&QZbevvaiw z?KycL)@Cc#CZVXxvDtDiNX>i+u4avNJoPBP9mrrqhi9` zZ*e*;(I_4Jg?5o`m~25h*yM@p*YA?C7HMxyV4t6dwqwT($wP`H+J3&~6|>FOWVL?Lb?N>~9S$5WO!l?6_a)hp=|CZX$F#*Oq~p5&;Xtt;l{n}i z{nq8-d7(Ep9q%(5hiyKK1!y~kfq_D9U?3MrB>R#uHPSfsW1MaV_a$$C7LoI#;9P_Y zO}LT}e#uyz#fxU_@l^6V3Tral6C@bZz@c>*Kw9S%2?uK>iOg8=t{g%$bJy)&`N{ZqVNk~hM^7%#ai{&4c1)Y%pL;MGBJ$wvE{WgBci8IY-|(j~+2h2jZUbjC#Qb z$PU5icOjhDbIi!i)uSGyL2oglG^yUmGJ5g6dbRZ{zI2nAFiG7(3p%EQI>xW|mUKq5 zu0CDAGQ?~;>sUzo;I6^Mch1&Cc9&nY<)iu1m`SS`_WKxd3Hi z;VWK41W*oB4uI$PYg9wS1@L?2OKXeE!{+dM-+ZqWGd9XN2b0^6H(Fp*a%mi%7(VaEJW#DC0 zI6n@!fZii0d;WS~ABPMR(~8w{%m%9DW-s~5zaL+HBDk7<$aYl4D^jq#YqiVR5gxRQ*%O2a41|}CAR*9@5b`YQcZ`XKX91m=EphJnd z@sP|OMd3KySoQhm*fW$?XII`d9@fgeLfjb5>MM3l!dy_+4dz`mgrHjl?jgu@B zPPNU-?zUQayI#QMPX3>hzlXp3U*YeT^FZWSPUrzulbCGTAQs8_0BK}D@rKi><-~f6 ztzOi+plI3~Q25lwc7E>Dzy`NyH)bZEx@hJ37Qf#z(7PFQ(>(h*H^F`f{hYKMlC;o< zs`^cxr5H}A5IiN2Deq)`3eojSy*m_2g~|abi@l7*MOSWSh7gi+v(h2?MJAJZQS>8S z3?Ct7?00^5-sR8dTU_#!^xGB}VubVaKk>VNGCTVdydzL!XJFOf*8r{JGtg@Z0G`zv6dLnGW#aISQ25OgrxtW4!l!6B157I@Gi0{lH! z@Qa1n&_FKtBS7Lmo%g%XLu$n-#7g%EzF=YZ<^ENsb0+jZ@|Wd{iVQRX8DI{a){b5b zDPCAak0PBU8q^^CP#e^`5gwFRAuJJ5*Y-}ljdp5*M;_I}nm}`MPde~x6l<7g{9f09 zYcF21h$B@j@YBE`wfL@(SHkShV7c2nc*76HEYD^74TIz#9|H7aq+_+7Fk;; zl?q)Ex$e4%XJ!GruQ;$FOD5nH;X5I0-^ zak|15(f`qa_~^{+>^r25##mW5M(EgKtX}Mtr-;DV^2tdo8(rWe?pzE|r=2KEq`i?C zipPg0h7yS(dGbj&(4da=PWIx#z7KnG;hTx|7Y-&8gBPw(u-pA^=>|lkyV*Xs{||{( zy%+ZOJ~DsgYc%ELzEbERorCJWCgn(o)9jyAFH*H!P+t^G7O7guD}!Ge%(VEdk0 zqBD^!gSI~QVIq#ZXgNjFd2FBbcgyIt5P=u=dSwz#pi#lISL*pv)^iE+_E6mgbr;ob zue+>n7Mk>1x=I(rH7M96kDwqq)FnenK(feh9mpm3Lw zC?@+LYW@FaZYr0XnxR9ke>XIb!#M2jhoK1Wpad0BbQN6tc$*;D_}dJGCux|eo*h6% z1&jBm{vki-h;518i5IrW*4Wby2TB98A5o?lm#SVHH%PC(`pDI*<-`AH5>0rtX|=fS zxYdH7J2#HC7oGC?2W>6u{kGVaq5~Nyjg7xjp0dix*bi@e-xn#_gW_Hk`JIQ254N>1 z7zPmeG;mYEG7Di8ma9cw7%Z@63y-L3PEhupkwEgYfb?=QCjHd!y|!pGzAOkOX$L?i zM3zZRkZIm!o0&n~`Dm&P7sPlw!PetI$CB#6Q4GM@kv_Pdeg{CC&;~GuK z%pfK9FQ-f#NI&EXoQ*mZUtdOD#+8mtAi(`>6eihll|qW|&cLR72W%tj$qy2SFc0$+ zpv7Q*icm5cW=Rqy6w3@sA96WhoX1KgDJ@6NR;cJ;;}CnbwOZ5Ipb@S`wU$U*XPd9! z_4OXld3-(VQE}>3jIB~LV6WEm=XpH!dVb&H$7L1M^fJ*E535+uWKT~!UvGV(T)wVc z&S?1!28U0j)?CILG-+$2HLb4aFIQ_+&5rsJ=h*R9*O zj*Aq-A(Yz7gg$w;E^GFktH(kRmOULYf1-ZF24kB))&X%R;!hYi1U|zCwy#^4)@n>$ zV*s***=n`in^a?@Hg8~T`)`{y&ir3FVXiy+*G`s;Xs%EkMQyHZLFVqvS=#tl&lGzu z-=P?Oux6I|4&7(#g}-W+Y-J2{L>|ZDMjFRZ=#tYr>c2Wg$UclIxP5>{x*`Y=#U$}P zMxD5Pj=&K3-!(^M&GoP2D$M!VV}I>5IdzUuyGYu}3MkYsDDW0b;7>11%qxDd4qt&0-52t?SKLa+hUK$q+QA!S!q%BTVc zzE&n3%B=)kupK-q<%9%Ym$Mli<&q5%&bCq+B23Qf@EiFY3@_?(VRB-8vRGD++$=q< zPA5Kmb26=#L(14qy*{I0K>jRoM3jga-aT^j zi1gf4ITw%T%2R!_y}c0HmhbsySm~o^7qs&{$`4}Oz+O>?3A6wX4A^_pNd-rlT$3w%KM~UsCP!87o^C!ESJJR+B z`;&i0xmM2`R{etye!3wX?hJ?7?@!D;QA~;HfLi^TCqf=c=LsRV;z4Dnk$&CVi}q5y zmU3@3ymmoqG4NJ-r>bVuwv*fiS?5$j5Gt9y_|7ix#U51ej(N8J{HJ#=qakYcE8^~(tdm02ps-Cm`w_bd4&&3z- zd$KFlkPfI+fA?g#LDDvao6rZ;Kb_$xr+Y8HxOW;|u#6U^ACNEj&iVn<0DVDbjJNKO zkIRI7`i`z-C#$zBee!SYPj?Ps^}YuuvaUUWTiiWYK{Gs*=M@b4V`ci&Oa0JoOsg{Y3A|| zBQG8g2~N2+YuYPo+GU6#xsMdOPU$1}S?9_Uk$DoaAYeh$&TqY|5r z%L$ZfBqb}Azy15}68d==u zzCQ3ntu5KyS+B2_zK^(^Th6>e%pl$Vn);U79cT@1!g#+Iwk4|RNLlw$bXxTnHmpwB z5ewYVPL~_5dbqw3_W-{XI+cr%f>!-Ovvi^_ohbBYq(|XP7bu=*>u4Y~6G9o=r5_6M ziKTN%V9X_0N%9{HX_pdfuEYi?kp|Gq zh#!#SN|kMa7$4PgnR_4Dz2kW#&`(GY6@HmH?kU}K;R8FKi=6lldu-*(Umb^qaG8F$ zjMr-w$54<`HC1oL>%*6Q&c9APxZ%PzBQKoaK4U$N*YDdZ4sI!qJU<+XozCmYPqz|% z`-wV(>`_%b5U}(qu#r&Pl$!7uV^y}(Ng+63z=WO7`FY;gOPEQz-i6);{x$pve%&AG zneEUuQ9(#Ptjj;zyYT9xQsIXx!Qf}f6F+|x9>G)ZsaP0mR+ZE4OyDcmjeIJU))daHBN&Xo=tUOF1DOvYmX4*ICp##3&=N z2o8yyniC9as@{z130#g>iwK?f0PshRh~^l788&QW_07M2;-$+5XMRyE<5KeV5Di8z zs{Pi6e!EBRw|@Auhw4Ta`|PT^Yr#vZ{U!&mco)N0s{N(}ub}q;Ru8opPndzH_L~ZQ z(}}(z(=utncCb9uQc!vm(CaRm9o4?e_wW^8f@QDWXu^JkJ4W8$VMWBV@XHT&>Dg6V-`@GT>5BPl7$S3Kr zyJ$$UA#E7Frt0Jo=_P1IwI;1L8`NPfoi?k}yb5sYTDMx$sRp{^Rzx>%nW!Rv6(|I8K*a>nb2ML&rw|V7-i{c+@XQ6^pZ}XVXaQ}QM;dS=# zUaj7!YZ4yTigudM~UD-ThA`%l^D1wq}u&}R_omW>Tk4K8(X|& zqoci3xwlD<4?`3xZ0azV+L0irjk;ApHsPs42?85ButV5k0*fL%YtbRajPY(=v+n=Y zGwwaQ`&mmkwf^AzKu7)I`@=gbJGgCiC#U_*a+Gd)GkZP0MPMfBGOMFr{~pHdQZ$%q zj5W18>@VIQmOf(HE}gtY#mtS(o*He02l)tM*IE&Cxti9Z77i##^Vlqr9tkB$4(dUW zHN{&yNn^qn6o34(R2%#9j$?^JZZuggr$%zSYA*`83?j})(zEhYCb#4p?p=DxJ)*7m zv=pRWg%(de)*-!Nx6m7{^oF+H{Uf)0mY%i8ZOx%(n|wI&^3v;N{p~@1Vg|gLP_W!` zoPg6B1%3utG^Mo50T$Hxl(YiBm=aI{s|ld6@P7FaJl?)$d#b$>%Z>@A;!MGvpUmYp z=hml;4c+5=O$QR1GquM-*wE!|B>dtGq^QG4eE`#)%p6S40+)#l$U9eFn;tM+6##r#W*c0I! zci_ErQm5N-eUM#(i|vhe6ucWhuu+4)0dJH*FM>7^`Ayk=kfo|C9^IwEv<{aUwi!3% z(`eStjY_}Qx9FwcYqdZbQ=7q!1zvjOzHff@t6#nIz8|oMvBrmu9{y6sxJ!8tt9*CW z2i6S^zVExzYjm&0z7ep#{S^PHtZ!JawJVr2n#Fj~6bln~#`?}94wMRwSJyRTT21}L zr&h9Zc(&I0o{!X*~76#G1ag zY+CcPes^WfDYPhlAHtMaj2OXuS1n(qC?V}eupSHs2(W>lmGH4@VIwd-$OeZ)lnU27 zIOiLdem3Hr8ycGP4zbXPckd|~ezz|%Jk~ze-`w0kCN(S1ihow&e?}PzF+}Kk2!aLc zm9ukce(>6yma?xXF&3emSfoh8=2f(8<&wkETpo*7Mxg+#N*d8m!9X}X*2RXdAHHP$ zNLUK{f^K7Df8lZtjPO@$ulBC{P{c9V^=MmV^t|hb;_&|%t*LnW%8e`Ce>2#4_1Y59 zoX3VPIq!y{u8|=7XtP!?&R80CGiJ{ZM^-g4Zm^Agp{a;Vsg`#-`fVIB6p}gTC)u5MRixX7hZ$;|pwf2D$bF2k+k$zkoe>!Hovb`1rx` z@$pzPp7(Fsw5dHlJ|0i7kN#+U?0_UmarS(~_dvY-U|(DuyDgqh-YfD#>`?sGXB-FO zGcJTOkZyAFVZ@92Fz35S`hd7WQGE1^Xfy{Op@=+;D*YmaKa&er>!u=v&A~&iK->*& zFPUgIO&Tf7WK^eCsTu#J)-1bB3y|@Y%e)(1vWyqBqfgdB zKR}cTnu~r>dIK)e<*kz6qBEjd@`L3WU>K>onKl5NCrbDv*D9UhogEIBmR<&V`4e_1 z$*a{aS16W2ij&&mibv8YcK6<^SyKFgUat zUZwJ8eVv(DUuo%WwmaN~%7-d|>jWn|jzSL&v8S7S?I9K8R92lo+|;{aWlw*BLcley zJ-ubT(zu1L;Zxd8$fq>ENs1w%IPgcUsz+PYeb{ z$W`(_RRG_=9T7gEx~+AW*X^l0Sa%rIMDi$6j_DSlDTny$Y)%f3A*&@!7uY!SPOXN7 z8$2lBkoGc2Wn>)2Lk^)Kc?b{KR8fWw7fMsU1agq6oDF93Vt`@32K!*~KxegK+<3EA zqgHFQX2hmyZC1TjCpaxk59|cHMy1vYdOE*9m`e9`tl%36PPu^>%=y)gR<~f%Sgn`m z>n$qQC;B+f>#{l29-9ELX1cTVTboDsT48LgFqQ$tDz0eckj2d-{0xbv28Ttb(^*{d z2ly9!V6o^H&+kt6rSTZIi5|bl^U&Z#&UXi#rJTCxDD$)}E*p_a3YJ)KOS<&%IpJ|I;zB*|_h`&L(w0z8zZ}02ZH} zefqz<`-wll2HE~+SdnDIp=>Hb_d_HW_NGplY|?mAb!wmslkUt-Oq3CpIk9WkP~nCF z?oeT9*Dk3P8+u~T5I0c9hl3|xXT0<#{h=5;eq?@k$~_`)dzUcTJmKL#$K9ld02LWW z`p((!I!L)cm|F~Tv68&WcC$eIS%C>WqX{m?^8ZX z7IKV|5D|#rMLr7;jGU7a2ERvfJ%nJOwK6Vj6H6&s%IN*HYp$}bg2yq3C7FhpMSu=2 z%e^R7FJyW%F;B>IKyYy;R6E$VcCB>M85QD&mRw7z^HRYrS}rxY*Ec5;&1SO|Ft+PO zbj31xgz$f&awdvmO-6KK%^hQJfrd#O%Z)hzQo+|iO*l=_Z^VWvIFF`BEnZIH+^>Q& zgW5D$b1D=Xlb%aNN}0)mI*t0|vBK-vjgh|YiGgsU|6UY5VIN;h&0G6Os3REc2uYhK zBdBR70CGU^2=zvvp`~R#k#06qGuFFJmzo>g!lh=k1ar2kXHZ^nJuDiq?6u&JOpGum zp|VKnWZlFBwizJJF5Fp{|NN6+*JxB;QY1j_mt%+*>&?y??M2^|EKFxHmy2-nZuZse|iYS$2P3UTMJW za3h1anIWNM2~9Jdi^3-L+5VfRZ>k&zDsifI?S3i6zW+a8sa$`_^=q~*U7hY!cRHOY zW_}8x(JV9zw-(ugiJxra;{!^xxeM}iQp-UCtX6rP~`qusQA&gMbNbPyUYXv!v6~eJHDua$4ot*BM?O zW{CmTqAf7V=iMc`lYCJ)uoiDul5?|f8yuP=TJFKy+U@Ap0P<;v;I=exC=(f01;FIM z5T2ndGh#zXLbgH`Adc#WwCD#bD36z)Mdei(pP}Y=y|-KXL^rc^x0TCnd?(n0WVL#| z*7j3)ijw7g?yGCU+3=ZnP~24Kx(`41UgU%>tuG_`EQgi=9E?kHWzGc!me)q2IFcCY z0wYFd6Kzm=mm5ctJR|r9z{uDgUYDahGE#QX@u<$|a_J(dhp7vsbY5hcMKUfadA76c zh31hBC8x8rVWivXnpQELkd1mm%}x3hz;n#8R7uvN8HlM++QDTOVq5wJ@o}gkPk4u8 z#{^qI^ajL0%BHqC9HLDG_>MOrJ#&_mrAOVy{!3zylNao&CcE(E=rCkvofy!2eQK@I z*=`kEyk1TFlS?N}%E?9z<`KmS7s2XpgGb2%gpdx(o+DgV-pA$L&=+AW_F+h}nMj&r8h}#n`WB-=;qtdr*2HlL9+J~CbVodFD zK>Kv010Ix+QYUt1A|pkckm4Pl-Dmrpu-cx8ZAA|~`bS&JHKQ}U=J5txk%SRCXFxOr zM1&lA0FeH=*Aoz9wa@)>|1J7K7268QBXML4*4gC@O(Z)-0dI$im*jXP znZ3iQ_p)asmqRi4vU0R(Xl3v~){;&s@|IGZyAeVfh7%Upf#G*9t1==0Z`K9NKVJ? zH@ehCi_vQoSVewHmn7Xj&L{pfhVnIjQDj~lRi_cvKu_8=G7=wlY>lxWW+pn@h7xAe z{Ey|__eMJYi~FLsP>*;-L>_eQape4~Mnj;`vr#<;*Rc5uohD#B<?osw6MQd1vHncreVsZNvMsBxag2PmBx1J>uok6 z3k1;i24531dRe?=RlDmQdcD=7`;)&ZoCazmWeu}OyvHf2+u29&1-1lQnFXg7l{ zaxZK}ahba(QGO4mF(9456Gyf9Sdd{>?F*yzpDLl5P<*4Udy@dCMf1hZn{1+6&lWl|hTvUM!025J;4d z7SAkx2Py+$>ibZKke+TvGDFhuFXA1Zb}H`x{<{2a^~2B8HED{hy^W47m49Yeh%J{oI#m7~W z@uml*m2~r!-WgX{XLBc^a4UDeoLxAi@;e50@Af~){&ppiP-K}0To?V5A0#Z}O@vd^ z0*>1*&$zRo)le1`!I#Jix6@vmbegEviQ>JG*h$o@DFHEQAr$lay}&`1t7eI8cnm+> z1}Vv&UA^;8OOsj&9Tiq}7_=y}R9nTvf>~aMd_{#L1%@*vibSa2l@v08L|^Ze z&o8~UV;%sW$LB+qR7vp2@ST8s=6UvuWF?iVBqb?rixpxXU!-@c?Dx-jcTZ03-aQop zwp4^LJOSkCH9DwIPo*317K@YqE$9ZA3R&o6x)ExD;71v+OfLJt5`h$;LzBnPM)Rv2 zw+LCui5`ngKaeyz?yab{=|=l2BO?`npISmh|Kx5R(M(d$<#r$|L<_A%|TINQ468ol)@k?A03De|~fgrSkK%XHxkpI64 zYaG5jtS}(#AfyGm6qqa|qdaN{ppNW=j=0Shk6Ucg>k7|dpV?_J0NV0iV9KIalR*@L zkEBESwD=&OM81vzW<{6iD(M7+W#?4xXl_bxjmNFl);POQVK&mQ5(d%Ij_i1~#@x^b zpB(Tagt*Ij<3#h03wz&x&wy2|Z*c?Z)Sx+H&}g_n?0R3{etB$QUgExrc7hi#T4bXVCt6Oj|tIgU|X)7LU&FvwXfcX;hD-r}<*J%o#0M2Z04{t`Xmg zMo)a3T^{k}tTx@2k6-1lb&A2zZ85cIf|8?g==V_ z_E0=)wwkF(0Y7Ili`)D9j^EHLn>c3G@YhgW5xhu{jcXBz8ajh;nXMn*Qpx~hC)K+vkn;Ib0d~g_ez;s^>()wc!t$A2 zx3PO|vwBg}9Hdm7KbRF;`JONG$-vN99 z@B!F)L}`!^3Uvr&FJ$MX9U?W8v<% zTEAiLuu4DnMg!^An4OCSG9^~ArOfCr;w8$xRM^+*n7bYh*>l|x=1eyFwXZ$(lz7g& ze%r?FULbQV7N>VVqxa|~MK!1oB z$}cP|ps&AWcqSGg9yjLssImC?KCvPi#>DYL!B=3PFGE)Pj>oViln(VC05IC|P|;g> zCR7MK?5e=-cJ_NyGCti~gFI|tCDF?^uq3h^!EdhoDfeb|j~9&}^^DQ&1F>fek51>{WhkH*)=z(B59eg0vA)V|P&+9gA(&fiHqN^g2Rnd2~wSCx(D}@}9 zdX2qVqiI-S(imNcJfq=S)@OE%RRTN?%dU!fi_8XaZ!DEEmyOB`T*e^J0%nkKZxqWe zs#%<~6>K_Q8Lq@rNwgw4l6cwSb8t4F13ouu9Gf|_J?z@}s&IH!e8niG`D*hUlMf0` zhxsAF;Se^;t(4muH4jM2Izk*hg9|3}7%@U2MBL&6-W(S2cB9wtvBbcM%rCZAr z3IAZikxm~udN`Bu1crPGb@Cxs&YQfA{rRh#dVb!Nm}zokbHzfY)8pLL=DV^vA??!Z zKP1Z@O8ryH8l53QFYQoAzv_8cw%94t}5o8?|s)EXcUm6;y1?~u63&uzz7=tUJ2Acnd z&)neG`JrBVm6sO3MfzoG%wKt`*E^OYs`$s)vrMh6jEz-P)<)CSLZi-D8M|PO z3T5`L5G%B z1?jhYMs}6P4v%n~+Su7a6{Lqv9~gM|yh$EMMb-;qwE=-lk%{Dxv6^fqLy^k2#=cEP zUR5NdwNey|2Bm@Bi1se3UFrDX9YgW7Lk+HJ#M{{5orAHAi{8d(r9aQ^z4p+o^u(@_ zUymFf<0gQwE(kgcZxN&^!6LuI!6LAE!2*?y3$PI!ZaORo^E+f3m(~u=wRg69pm38D z9)T_AUPiY{eF@(ni=TTrt^0X%;;S+(I*iY8ywa168q%Q~Xs&QL+DX=s6(T5!RS74! zs=!_;ocO`owQqc=;%j}54)G>eoVzZbUnBjBZIM2+c1^tLLzT6yzBN819?>szM%%!PJW1_eid+uWP-Zh@OEZ4&&<{p-uUW_2 zb=_S=|IzCYtv}CUVtY)e4--na_Dh#)Tu~F-d`6pyp9K+b`~|GKlx%5y+n&#A-I*E; zAF8_}LW01%5FR9h^wmb7$7GjBVEwSeR2zZy>jNo$#KnelfwVs42I%+t^=$5~hv0Ew zNwbbr&|wX=#B%5VI32J#LIFUY<2>jl8AqXA8IPViM6LYABXaKMaCwZ3NgkPXI+fb$ zG@(z=!#w$v$!bur`PbsHacz^6|LYT<0A#$+2lV$Y zlg(z554be$H;+C^$oGMh9!6t0Bcl*3sL(3;#G%hRpzAsneMF9g+%r8l*Pn=SUVplD zb1Cif`9m30JG+@n#QWo^5n=1zYe$S8R|I}ip0Is#U!O?2DG8f?_Ji}!XDmn8X6o5a1t8b&0* z3I%HH6qIld-#<5@kU;?o(sSjR@^5}qp1I=|5Rw2zaP?ajZ1DGgaFL$Fhfn;6W&7V$ z=6CL#ul&t+);&fPS*=9fSc7nlwXwmn$Ews_Q{)e-G)2|B5K9r3d14lNUTvF@l|D?z z<%aR(#~)^wpZcp&O1o3s;T030ZbTw4OSJmWP%{nC=5#9M8a zFhLN7jg79q?{I(r;lBR<TRo6 zA7B3b?@;uQv*Fd-J}|XbYM=5@d8`RAqAMW5fre&O=7k5|&c zrj3z}_R99kSEKpXR&3-`(oHVEBf#n}ze8LVVhynMQ2(jxoF{MRR;vow@dZSPH-P1~ zSo2X>I1uOTMqk)b!6XA_lZ92R@5FNp3tVDhK}zHAmW2hjYx0Td>77hmc$~SUmmgnX zM-~?5r9BJt++CH>^t8;szl=6F;rf&b*MN$3$f67a2-?~SYgIl4<^`P`a|b#afhd7f z0ATtU{!Z4-&Fz%9xt%)`V(ICU2=DIgb8~Fx+#ImS=U$};84BcnRbqRn4lbre7~>2C zG;$NjQ9DrfuuaPb0E}~{EJp&`!!?J?BFH8;@pS(~Iusp@dlS7gu#HB%o>3rY#>&Fu z(#=%Zs6UmnxGZ=a0Ls<8U5qzP^|t>Z+#W86j31wBDF)*Ksp1U+ldz+s#bCAKy9&Ql z=&MTXVVO2Edh*!(Wx9n+uF(KrvKhu}aY}G{6jpKsGry4p zer7Tm5^^XMpS&wGp2>{woXEg^w^%>0)VI|&!tv1_wp5Y#o^qg6zVXV#6qhpy( z@7~nex#`kPozi1eK`<;I{%~WrKeY$*mSmbD>^vVw40o6+Alk7FkYUqDQJ*A9!r-uY zN*3I3N(}>$+l4I?)}VY;i*#hN_WrBW(GeBf^fryz;4vmUqn)iE@p`&rqK~hSn~^)_ z>WFsd-ZOTou%-buPdq^Z*&h9Zb7Sku=5)Tuww>|i{H;!B^^z7tgE5(jrsKJdPIEts zdj}d#deOK_*m=RmmDyAy$`DfyrGPc^3`Rf){^iFk&LY-cu0LRhA|zuUYBG7m5u>nz zJ4g0^YE3j<#<#diGr%rx)uFW=&F$N(C@PBbPte_*@tfU+V@+;fvoj*w9$HWb68d2I=2d zeY&qf??HZ)mAmlLOY19LYp+?sG5l9kgW;OUKceuN)oZHX-Q3ElIh9JyYnrXs80-^T z)y|#l+MuUlEnTOv@~%t1dvwjG9C~Xbf`rj_lJOK>-U&=>YV`zogsjhZl4TQC9Qg>_ zM-+Zyv^od7H!@bp#Re~-1Ez4a5=R(xq7g_yFl^H#1-7P!geMZ1T52y8+^#~hlAOn1 zVRUpsXE3UToB^fU_(DV{xcE5CABJV8I3waXkmUAse{QezoW(Kp&hM zyF*dv)k=V9ZB*VWFuzGvCWS)_=B5NvA*6${FRE+}yaQfnxUT@Dsd$bELp9jRek-^{ zj|*9#iINB9{!mHMTb33|sC^1AN6}~0iB;q3u;BF+(kO;nf?AP@0PG^krvu!NolQfUxUyl3!hEk&K}VZ&()bL})b$$Y7P!!nbH&Zi~`BmrnZSzRZElKEF34 zZplq5Z555Y&4^U_h%e21J;LzYv=L!gmzGNJ*NfD^kIT(fXMXya86)&l}#JCP7_(Gl|lri!@=bpL`Sj^i#-?Iml_G@3=9sS8z1D zf#ph3!H7I%;Nj%7vXVE8B3+5KN3F7nlomEB{X%FX*{!@&G#WFg`^ z`3z`-V&Fe6S^j>NWUd3Ag`>+=l$9jBB}k zUm(v{o9wZNNKBmX)SY25ONCqz%8~=$r-&gp@+AnUagh=!r4ahykA8HMLT92s$9{MP zvGE!mAFR^$oxF5Hq4GV>n2Ges`jA?W}+@chT_-*o>AG=ER|4i-Ir zwJ)%P())j?e1+9*s_W)dkg;$LI=Qz6>h7uD{KE2 zo%oW+o2r){E*9UrJGi^uWYFV(bS~t^zfrdq{dxeo(klt05wZc2Cgk5V9rHQLsDNOI zU*bI^A>$YOsf&Ct5E$`_5GznGm;8b>Rh1+!$k6!LUxk<(1pxwaFA{uJaB4*A+XBtu zSR&>@3cLxZ@n&DU!^Nvr_3ogfrKuyBXX$(T@4L@2(0HEJvARcX(X{dacrytOiHQ3U;55o!wK~L? zA1Xg6{dDl!{^1*r?jPads1do5J@Eqv*o4ko^74W@q{}>5dgvB@Wd9&Aq$_&|QO|X_ za@&K$`(;^e>HaR-=})IX0zodx07n=mZ^atqy4$*u7tuXA{}+&aCcWe}l<^DRmR^L1p4r>7R*L;X3-{Ao>|VcK z5C_Fm`+7W;ilkDpbQ+P2Z?T_U+}McjUfd_NsTKHcY(*+6$3D{jrub)!u+p?*&Hx35 z0qKIOgvyd?6w)|=cv177#BtzVL$_>^Gh0BiU5-0d99wgC!A`UJRxA%gtX&+F5kf`oIq9bMl&0>?{W4^MvFW zB4FLg#&Ks*qgchWKyd1`lb;FfP8ME}a=j$Rc)hbT9?V%54Z@Sq_ zJ@9v5&u_eniN#`c<;rNW$f8|coa@Rf5$c%rZQOX}%{NQeMH4M0=Lhe*@1~oM(RaEc zMb-t`M4{_K_@CYb3L7yht1zqNO~-ZGrUQrv{Ay%SKwvE_YPc`~M8U$zJeUurwVio) zXP&)zw0!ha%(l9rVzHM?YLhmsRvVaJuTr1**^@`|cmLSk-0Ws+-2S`O8m2MF3g#H| z#?H5RO>6}J8Z!v}V#Q)B7ZKN}wy2E;BPyl8$R0it%Ng%NeZXOe`>tWGlpHwRU#6~= z`}acZIq$*jA`i_7+CfU3;^R<4*`dEdf6>YoJCCid{-{6 z+l6R6`7?Ztz2sj^#}hJsn`go!J)Z#d`EdLJHTPg@U?9axzJ$YO^MwXdC+qz2gzt#U z{}f=GjlW<=lD?!%*l7`6!exSpHxY*|nY1~WBSHA-g2RA}zyu;fjGQgBtumP?C47R# zYe_8gdFUvDk*s6bFEKAbYYm#6fGH8!$R7G^YP@eebv)*g9`?jyo|j){!z_H?iizL- zZeqp1-$$uW+yuhcq~tca&tTEzK7}30hq&7?WGZbmormdHv0ngb5Fqd1&$9i(oy9HX zIs@Fq(aTwT_vMn)6ACx{FR{BjJ)UybFZe(AxrOfT?|t&}WcTIl??MfdT?{2s{{Q_# z#|3HbQ;#J-cT~o7rU9$nm#{rTXSpvp6c~Ur2lGNy1!F4$>hLe8+}6y$_`*?rn_=Oi z?uFBCip2K+Jo-MQ*njFV=|BGPhwg<1nj>VFG@!lT!VJmF**NIH(|tzEGfEe`fr2wB zpoFZ`N;hy59?OD7^azE4V!{{me%Kf>DZwSbmt zU)5r9T{1GpnK84$6eN!zWxwKA_9r@nO8g@Uv|9euK;5}yGD#(S)CLalW(mX<8g!`g zV>mr@_x7a2V>4Qeypdo;ZDav*P>~;qNg8N%h4`u`@z{AFv1p5e3af&}2}f!nw<33#5{F zL?SY6iq5WuKgCV!30@>hq{+(mzGcsf1vM|5aWaunBkDmFMo|??7@ei8ms!+6d|mF4yRehLDtF3qIR4wqqEu@gzAF( zfQto@>AQ@ibM_0fJpJ?=Z!p{2_YV6=Y;WwwbN7(Kdlb1t1s)!#&RUrs8W)msvY-*W zDdab7zz~ew6dlKYqeRF(mHScdDFn%VW;8Q8^Ji8;F&7Gu%fnHGVj2~f|Hm^kvsfDx zr=Z+NCwt{29!5~Unh1CH+B(d=CY(rFGzwRGa9(liSI?ewW~C7 zptS3I(r@D<1MxsPwyhY8#r8pQEo~XG#UjJg$mILxm8FRd2fKHD_xae!+F0{PVp~i2 z(p+n6Yw2C*J7O`IsTE$J&|t-AH&PTCQ6USA)!db=I}E2b@OrSZ6C6V|oJn~CU>Wtf zOx2!=LSfqCc;Ff7+x~)gCM^a&zk4^h0D_mju3`osf~wssf5p_(YM=FL|1&><#y`^{ zBAKPl>S?gGIa^dKiv@W-Dl|375#bSeJ?5cq5)hA!e*(_{^mhVHi9}U!F-PsutQ>|* zA*3wva747cA{dOXSS+s?jYiI^<9)|U4||Ut!_zS)yvoLR>^6PLT7NyyUvIEUzqcAt z%T{By#@RR7*5+-}h422y9l5RHOW){**^~H#g7aLX2kRjWZ~GYp5%@|(m0F?)l^QW! zKod=wv(Xh=BJ0@XWNC8pj&JYSEj(;79^&~!pzJjZDC3bU_uH-hZPMh9Z-cDR&O0Uv z_F@urok<(GIXi_kt=v~KX{YoRyn|5SL2HIAc&u|FBAS11syDr6W|r4Xs1E1V^S*`h zBi@CD=Eus9UD&gVwE<^#RZpU~mtAz}HKs?c^*8eTjiB-s`IXt4Ku-I%mYve@rQf@> zuswYFLp?o-o>gtVY*pK;9@L>YA?JDQhrXVG_C*zufPD@mHtI=uv@p07h>GxKJRm8j z^8`sGL)st)h(=f&4dk_12b{;*PS&S2^EU-t-g>nvuF?L)_i{gEoNlTQ`MFuTNy7i{&^>=R{FU@~uU(59 z1MJRU(}fo&=ywz72JgpG=qb0%_Jb@YXZC~7uXFGpi&B~Yv*U&&-Q@<0;d2382%WZF zr~f5Xjh~x^c77oY4X>H&>R6M}(EaekOmoD-zWHyDTwf?e3q8>u+zJ2-(vBO=8H>SH zx2#TcjZSxsPCruTGHA8;T1}gBGUJxpHFNXffEdx6qpS z#2@n)dkY3Z+h8-TH`)4@eDtzw%?QPjdXW0~bq#_5PFlmb>HZNzEhZ({94A}30q<T#wIoPnbtoI_uHLfr_IwCoftM zVbu&70-L6ti%F18D=xMV;BP}Lb~(KBS#DLeysyhmxzSK_ zAlF;PCab#M-sTorj7O63DsqpnEb~CT2OI-ZAG+XIScGSk-T?D}y5IozJ;bgnwc&&$ z3yG1`NLZ1-YtEQcBlL!s3pSn0T&`uEogo8L9{L}eU?;uyH^tR?td4y`prg1#T(@$h z=Nv=;1xINrFOhamaswWI2MpRQT+2VOI1<^uZTH(OH(D$|VEanQulrW-*1n#ZmX)I2 z*09n))7`hV_w;9}hFB}Bd*J9zgM-!cj@l+GITlT-uSPbSS=C+5e$${iRhge95BWMg z3(h`A&bB@zwOM{3f}G-3{|_vn$F?~!63--WOl0Gur_Lg*Wu}J{*4hfvgk>G0iS)Q* zY|Js9PKxmTTBpj~L}#$3?*s6N!r(C4RdsoRq^D;Qj1>UO!JaVe@(K9jx82U=^agu9^@Q zyRKB47oLF?v#bbVi10lJ5o#F97~pFB9Q*i8({-%t*8@BEE4oShHEu}VCL=1<>;aU;d8vmeIkI@~&Vfsman?An zbD(34H73ghCD$}_qS-6AsMMT3VfO?Fc9z!OaLZPFcU4~i)R(DyfT*XjK(;YePpHKh zCL01k;R!7ha5?~bF*x9=gq_p{zrDfL#chPxvm;JQ+hngh+Jemp$`}k?6JxmJCbVm>w;x~6COKsVm#jQzfeU2w&flkK|$>^p0O z%RfGe^AJ6>#;N`Sr;1$^R@tI@G@!at3L^lL0b0nx!%U35|Pxn0=N5g{L@3IVNHK^H!|#|K-HMOd%_s}7bLMB|^) z1gBrMN1u;=uo5ch+4S$8o<=aOa#&7IB+WKLm~#7xd~^zKAL5OA?(@@MIr{?iR~oSB zRr1elf{zEa7KjtOVi5D@4DJBz4p)RKa5&RRGDcHRSYA+0Nq)a{D1SooN2kXU%sYAI zmHElZojZ@ABiNs@fBWTwa&nbvIF^rjhKFLLrc|{@`DcVfadvy^RXT5zZm*JMTHze6 zTC{g4uUq2P4HGXvg7x8}upj^}xkRd~U+h+AoWxt+3ua9(qb%}Sr5`3tr6EoyaM zgBJZh<#(1SwRbBTE?=JyGLI_UTVNhl7+i-1sG#za*+@&XHka? z5o8`nX(6#5?n2`bj}Ixailj z3@H{LIV$_{lF9y?$0pVBHrFP+z&XgQ6=^^n+hBrfHJyDMrZ8)|`{-Pg-AY#Q&9*u@ zdFXd2CtJP-a9+-}dHbaD9$ybsxxEfEihOOe{&|A6B(FWo3R9}{-P#@!60NQi`PJ;} z!ba7%E?ePSU&NYa|6*l*EuS-$^EJ@wMfmS(+_5Vc0=%b&Vgk5z05VS~)NXBcu`jF& zo&Ixyd2ijhI)B2|DrAA#9=FQML$ZHmV1_j-zhccF#}HC}Racw)bJbqsWR;qas1T$+!tcax(e3+BzQb;MyiAgU9Bi|-oI)fR_oQ05rO)w(j_Az zbs@U=ockbDd6ewGiLCnr5S57TQ%(fC&p{HWDFa^J3tr7z2M9|TYrDbE?W=~gUe{%S z_l#ml;0>Qm_eF&t%kMqGu$w)J$7pv_+CH}Z=K?E)gIh*MGSNOLnSPr;p6HXiACE>t zP3+rEp-|KBEv&hj?c1Ftv%vBT(8exwED7ycvEwE7?VoGv zeor(i%bG%-V8g=nsdKIomKIQKHz2*ZJj!PIhCoCZU$AaaVlFM_$ckJ7)dG?;$7O?a(VUrQi0)G=7PD^X&lj(Cf$!Pgw@9ICRtNs!$-C{ieNHjM~vLN1vBsO=F~ z*L>0{DaB>VS;}asCe)-?HawLde_k7R?5|Lnnx*@Q&r?P15#{2I%Pt#8xkK}b{Kx7J z;F^;Tt@5=2>kN-YU}f(ZxXQg^v*{wU@oxd-z|Vu}Rqntd4?yKVxc$IY4!@IP?#z5t z*_(pNKp+`Zz8Or?H&e`$;(BnUZK@$9?qd>tGloxKsZ)}KnF>M$^Y)sJWA9_~M#d#>Q^>I=+0%ntrMS^=Xtzxg2!O`H588+PIBQWqt<5Ov*Mw?qdXu zj*Fm0A_nA`MW{{=nZw9Vi<~6DN0WsXiAcWz{$x;+?xQDJzB_s{ny_q6r8e8Pts33x z*u;-USKT=*j_32^=8os;$(9+aKGOwn?szQ64We+Xm%G&$iJ;F5tP47asYf zf~&*affy-lfaT_n}xTxj`^oCq|A{(T60 z%H`Bkn81MLrNh; zX4biOQ(I7K>A4F3fIq(&Pt-perl;%;+J+0_6g`uHmR;1LF z`*eI9FGM^pT#PBT7q4Q>6pwnc6GBF&BB4s4uh+tMQ6v zM6y682UaGAPQXvux(J;!AX6Yq9&LE6u%qb%p2fNyAQcg@Ux5*SU zDmO&C9S+Gc6wHid->?DO(Bp?=_#R|_P2wAFW8A15$VNRji`NgyA&arnfZXTh$bAlB zEMR6}USKyxVUR4ML*dz?U_O#ksD6lpgFg$)SKRpJzgc0aP1IUCpQ2J(y{S&gS?eJQ0d!b!* zMIo$!BROCPM@}@77bzVY70m*nw1E<)A!*~?owgR>Fm$%~J9n~y?~HYJnitn~F83KN ztf{lJv(eR=Ov;T(nf;T;(JH!(rT+fs*R-~-c|Mu^kgxyw&6}V9(1$*x^1dJQ;WlLc zsQM6UAkpdJt_ehtBw=9Gcm&s@LROm7#a>?S>~P9)ECU@KE~POh1Y^pd1XIEhLj-+? zr=??KEi16@;mLLQ`{qTzjh+6FHrCLwChn-0484WIH%GiMh#7G0FBUckJFpM-^U9KI zk!=FQ8S6xnBkFJAA92SK%ufP((9@fU0_B(wYM3abYFIPzF-0e%Tqo5C2i8_DUQA|5`13b!%S@-@;aA>z*f!Hw&c+6?CzlE4+VgVkiv?TMLFlCLX=iAj zA$x(Qm79(02QIyt-F+Ssc6&TSTg)5wybLP-lV^$;+c8H9{7R!8?_{^9(juGPR4+`pmKG-z^+8c?S?xRFIFBZce%TJa(UJ=7!|EL&WvBDhtjyAuOw?%Y}4(~vEYwbxTnC4 zQTwDSHW4+V5_TzyQb>oKx%r(@UgsA`Vz;BJm?v4(dS0f>qCC0p7atbw&IVB4-W-d8 z?M0&THo3J`{=7z0w>;Gt8MZhami7}Tc7itAdsOD?EK*@sh`jwQ$lKt z%%d;E^D?W)$wKsz@^A)y1~{S?AdX@H%7Z{<<9jvx=Gb=zd2EexMHP9PmYu}DdDpiY znmv5&^Ei0cjQarOm8aP7dC4nZ-2r|rS-y%mT;?8599>%#S3H4{2hB8>*3gPYVjfK~ zXv)|SfaZ)xc$dOmjxMA-+wpNTYsKe)3w5P6G?8dR74|-E8%n{@aCJ~l+_Y_Yc-u`0 zIe4|+c;sd|c>2NMK9Bd#zT;}?v%M^fyyKxvcvKFqO5{hh!^PyPpj#NViOSKS+v{}) z89?CJ<5VXtMT!{FT7!M~MZOPS^4IQvORzX3gh=)FXMjdcncMJH^JjqD@ou4bTKOIJ z1JNirq_CF?0S!x{R<9L;ev4j45ivmyXMBE}*=GcxT2VkPF_YeJ(^DNWn3-ftOtP$Z z_#C6iKKDhVryq=keX>_#|0UWD$x8y>x;mpS8E{LYJ2B-6tn_MXYfZ-fo8#`<$h4=f zq2Bm?p{~_dXKAQKIWxD<>ao~;dP}`Q`_&N5hLHLwNi8EIUYDf4;yk(?Jn92dh8-4> z8i;}D6Db)v6&|ylL5{7w=S(9ch9hJJ*yN{kBP+6>{TV-KH7g(v-~$*IG5;5w9yHlM`Ki#X$jHHDD68dRwY5w0n)pII#_ zTVu>)X{oJiwt8YsmQ;f>;SPu0Evr{Q;|}>!Q|U(8W==Z%`Iu-ni_wDLku=L;nf+M~ zznVzA8kUvUh0N3pyvg%uA$#M((mu)a5rZ}0OjU{fWXMi0NDizezLxvg>eao!&|BUn z($1zw*vH9$tLxOz&?!al^Qr`bCR*Qh;Lne0>LJBOYL?=vKtxAUX-*BdvC~C>5Ut`m z0%8Y+`LMQQDDpim-37tLMfpAe1qW;g1UqO{MC|j4*q(So7)}%tubqCdJ25)2qcoD} z9v(_{Z|P1Av7^U~rf4*QQj)0jsO&XjfC`Cd)MR8o7>b2Lv7taT8c-hHu_F;`v0E(m zmQbQTjM(n_P<>Rm)?~P1gMB4RD%RH9>}JH)#aG%lTwySwJDkrh^y%B^lT7`gc(+_6 zL@~1{;@~CX2|b8CKeY!QE2d@o@Txmdc=hyy<2SRP7Es+Pn7`qMryh(dr=Z7yVJnJ+1@kKHZ0pLO zN8^2Q&*qs;LO1b9Wmk8GvuP-mWmi8Kwb_U+n~ezT4tnEp@1{&P`8&!VN&+A{=(X8~ z5j0_rM$HHX;n&p$9()(bT21iDV(gO;4znoqAw8Pq z>1L0|>v8|)3%4C%JCA)q`T1?iGmP)y&_&;S0ku7};IJCm=K}|4ONo_jqO@_tFmBbr zlt7ArpR=JhM!mqvd^xbz0e~=Q*r#E;zI=sUDEvI{h`>#-X z*>lPa+pW9{JR8h0J#_AI=-d|AK+kF|j8L*lwiJ~Zbqaa6Uzzr$Qa*OjpAxQ?9H$%- zf6#c{8UJasKa=qbZw3F^AxqM@LzW%1r&hOt71Lfecg&`;xzvc5iq$uOp-Zi)dkUtc zSN2nLDcGTo$@`Or_y2q>ImufqcwMQ+hoC1 zS7&D?b;%{EOlN0T3IawoJt8DuK$#$Om+UHpnMLXZ4@pGi5R5IbfWSh|=LKfS+%s{G zM;94dyZE;dgG!&LkLD-xq6uY95+;%DAcWRnkRDIJL6FjZ|J@lX4d$LT$`3Mh;g zHq@5Sx4E6xRLI|DbvD{P_M=!0a64Lcc$B}O2X!B67cLV14i=;qtOq1PfxCd!YXy)W zv{c;b!Xls#(;E@ZaOfcI6wVV0h(mA|Sr9S?z(|F24sbjYMiw5SEcLPsh6KzC^a4)} z%!3K9>Q`7O^ieI)gh_!6FUh84TplCwqd>-Y&#ek7DYY=qI zyn1ajps#giqt1{=GKJ9$3<8ZuqibH=9Bamn{Z01btZ4BrK2+LjuXXwTu3G!nlJZO0 zZ*q7XT3rgI)(RetKBz_aIcJP!UBDpBv4$A~Vx7tv zlNdAz9oZ=jRq{-fi(|3;zQf3d-} zAkXTFC2d~k8GQEChS~_kz3rbwPuzp3S((Qat2!c8v{aELv7v{s7!nLC7Q=R-D@}+q zl)+*}d>{GYxP=n<=1yLW4q%2blb$4`!rdoNO5V8FY%1(WRXsAcwYlL( zkwnRuJ;L$eda(z89&!lzNeDBMyj6s^S!tcO12iNwZonO(3|*~QoU4f;#0E|S8%MME zsT7P>2DPa(eIpwTb))bN#QhOaU_1a^HZ*Sm_HY2+}yio>KK2 zm1ncRWNB-=U`+>rYgv7gH{3I1=I<2Xu6MIG!dqy*Cm6RKkePF@%NNbqg7O@F}MXk8oF~%9zbYfC<5lvr-8B0F31QMDNK3?4rHB616hRN-N zgMV|B#slfMZj9w8a75Pb8Y)m~KeKy0OtrPk4qpT>r0J{b9Ch}0r4oBVxkH#Lg{guo zb^Mqoj7aL!Z@jS}A8{tNBhU(~J4mf_KH|cc)Xvb^D)pSyj{Ffcx0@!Q77OAq$h_A~S7F69r1NST=tzBRCFopO9|U|^8N z*R2}(pUT@a$~yxyGiZbSlMY<3r+Ky&S)L$CKo#zELbxJpZA4F{nsCk1s?!NNC90np zy13v%u1H8J&p9 z_l{qCZTE)mR8&m*02r4ES|qpRvq>l&j|vpQyq^s@B!3*`;XOfbO!Ar&Nxj$MnNE$} zJdQKKGk)#$V>m%($|HHTL60Sj67iA%@F#~C1)q$jxO*}$Q6Jws3f+N50V2(5N8}-l zUD${43T{_ndU^u@f_EzWghwtu{ouv7+;Z{F7cmLE(PBp%27mTqho#DTh|Pqx%7r*^ z3>iIoO0eGCz7OOr7rjAmV{dgKqm|weA(oIVNB+S1Bi{}eo*Fa&&a&IX1;?tZh3=`i z*wH%sntTp|oieNr@sqoU~XOec&IK698PchszPkH(W@iJ0;mfB^s-{C*U?@pli= z0~;s>1z+N8(U{hapIgk~nAzg>OeIY=U=HHcaunGTf^0S=Ehc;>3IJ>zOU6gK%_yNQ zo0a1@Q66>vaJKR|+yWkK!5(kJ?v9mTUGXtguy@g(?h4Vkz)nTO0!dWtmsiPwfc(wI z;F5K^38lCH@;)5WjQ}3B=@*ILn@0(}+g*di!?tZ3()WCacQ2m=&T zOMA+^KC$^HU8qk?sXn>##BORB72XQSDrUQ8&)$7zrv%ihFA3Aat-LBN&r5;@0I9d+ zn1=44b4r9k8_vN+1LRpO#RO2>VsZ$E1IvJwTif+mExSVFXfmP#rSSI#jjfIyHrX}C zzZX`CZsV~hhfFrNF>~Z~^UH5q9HydKJo389EsAc_>%e!Tw%4I;8&-Xec0jOf)OxP7 z+ySOIxop?~^zuln4@Bs1+F^8~%-V+AO#*@wlyQ3RPQkp#Bs=cV3&)Fl zSdtTR=*SL}318jx*i+`L5zRk+pT&5!$!25n(uYTk5TiSAWC^ zeZKaiGe(z%>DNVWF$%^-kq)Et?+kd~up$x}&?5a!YZgsQ*Tygu97dgYsZO%j>Q}Bq zVahID{gL+7P0`@}t+#b<4fw3hq0l>i1#EJXE-Y58F6iZ z8-i6Kl7*owYe*Zyu5hH6RkS!)mrD=$0zHy(=7+ldKIR)qj`#+Kx9Ig-hTS*er7YTP z@Nb*ccQ+5a_48xS_UaplKk|{`#=`R0`sFPj!YdE-blg5O`(}*jr+C#l`YEGLmFqKz zyXuEE8MY#JMjuE9)~GfUjCjaB*d<{hQEATwa#BP>SXM<8sq_|QSt4gg&;2gDA(Pp# z4H)R_y>53VnQ<30!&>cdM!Xa+E1k?B?tMr*kP^@6BoC}x-F5M{i@W&4Qk^9Y`*cG( z)wD7tkKvVD?eyl#o013prFCm1#`|Xw{m_6hPqEb8%%eNw`N=I?wil+iT+K|C1F?J{ zY<}Py&w0Q8jqf)-eDHbifrCfAZ2TckH8z?=JVWa5{m2z>UC~ZH-vF5OV;K1KhjV z^&{Wgx$}nMLpyg0`F;B)C!ZW1zJbZ!fp{Tu-{y~m4~O?W&FXLSby7#2@s zRU36!&k4_?Rb5#T77w8ht49}_!$pBM?+UpzygdvurvYzLtMmUCu8;melD_5tOWiyRm3WS{3m?Q3cP zu160iZPa7+x$3Lre5zrgMu@6L$pBYo)arI=9o)PTdY@7|5i+F)jIy_2>~YMTesG4K z)g14mvHa0ORPuOYUaydBcK+GfoJy%rf1YV}Ha0q&uTgDJ+~!cZ-ehxdL)WGpsdk=C zLdGCigs|!wbgq!P{L&Ikv5p2HqXJ5wIlWOPeojjf8tH-c-(5c;=IYnhcWWXo z*2n{i#z&e*lb3IZl4Q<;uH1O_Rhtd^DFX&<%2BBV(s;9X{#d@ z_BF3r)6}ZzO#^ApY-mmU47y3tViCPNB(u$78uqNu<~MgI-IA8RF}!-wMxoGHzD@(SQpqe$hM(Mh+$lY01r6L z84?=W^hE(1ARKPtJx|!`K4rFj=~K~6Z0Q;lSVS*2FYau&)}vPe<`lyzhc(?+-(J^} zY1P-kN1N`|v^K37_h@xj0uRn2KII>=jZ!fjSY{L5oAcTAo?+^pWP2FW`Nj9d@cB0@tS+N-#dY4OHKs$viu*+^5q1 z4!TpSB7O=^JP?l?ryW#ZGyXraS>@kU(qBbqo{P^TKE5Ij!q@eIzh}|y!P3u4>dTOmmtBI$fN1wsDf*sT%NSFj_hJQ=&GGtMTzBBKYm> z3zfmX5R?1Av(We;%XpbqjBh?Cb)d9rT>&xYpp|fr=@QV$ekGGpo|qTRJ zG|%$md|WRbfBXDX(n^JIvRFx~`Kzvnsx?2QX7$X?$tqxr^Nov8n&_^YjbpPznP%OY zqe6LFOchd9b5W6I$1=^hv&Kc8Ox~h%jb%X0(mFE7Um6#cm5|2tg1nCS4e2nEe6va` zh6PQ>XBQgB2co{)eJZ`RoYGfl1;GlqAhrFNcqCI-utR3ESolVn?jn4w3P6X33)%pT zgLMin)xG08rb?!`sWiQPe6M~c6OZFQqrA(E!ncqbvhmBliKQCN(utOPHzK}6*)fxf z#c;o7kgh4o#;Q$QLM#H$wv-uDzbU_3L405TJ}COoJ-)R>5u0fF^4{XM>$djwZM|+=kzGF6Iunbf zaOe8Pdv8J>`Z=UW)k;j>1b#omo4}(^NSEfeMZKMv@_cx7cr@5Ig?SkRdfM@Dw`h#| zd{LvA-LAaMVgjmOjEqbbm757$jqNHhRXzI&9@=#7C!7E@kch(!MFT@?4C{3e{u zhGho`_9u}$AdHl+rJAElJ{UFL1!02li5Rd@gLxR@2(^Y4D~Gyh3&`DqPx1*~>3PCV z`OkRgy-Fb2QQ#&G{#% z27$1X#St6a=qCaD>mzuxBuW0|U-^4a-Zc{4(Uwzx>F>tT#sMOO(-FfsItV?0aKL$e zzq3KZV8Y|V83&fcs0XLIgnUPDdxOO)ei341{Gz5nv-0He<3q=f|JKs7Xi*D3xK6a% z>aT0CSO{Q*JxZSq9anW%wM|}g(e5PftLFs9=b3nA<)-02z$ST|H*nn3A=>TY9U@AS z?sWO3KwLPeo?Q8A*xhfhTPHg0=4sL1-(a%?^wS;Y{@qdZ^G4``jgarw*K9%@Q4LmD zMD=oq4F zcp~Zj*7}LsL~}UPTv?;QD5sUY<3pvOsrkBHu=&K`U*Y2tq}_{GwD5g6RYnjOc<=9u2xeO zvtuK>A9UpgMm`gCq|1-87xpv^e`$7oY$A4SJU$`yof3-DL~P=PC;X>`*C!{hRUVs& zDN1aDjVZ4%&iD7e58pu@q|;K(O2lz(MD$iohz$RTF#vbTPeN9IGEVat0s{hc$+-@r ze>S(6uUkA72u#G!D25Iz8UFRNuCLhx7@=vHI`sVPa3D}B5o-1R#Uyt%$5}@db?U+{ zDT1dc!j>{J(1JzJ%y2YfuQkJR)jT|d*UB@|Ccj?xBBM$0c#IAB6M+Zj3d!!IQN#;` z)V4?gZ=>GtZj;{BdxuwTM`~dqTU@oO*qt9JZr`zL*keQnZhUygtml6-!?CC&&lF1Q zr#zxD7%z@(Hoj^w`kA zY(|T5cy!C9)r`M%%jhuP*30gAYHSCOV@4?Rj(V?FnDMbB#Tn2x% zFfwhl75m0d|3uaUCE9Fr>*c<9Flvhmez=89ej#cLhvR*Ru*7+64q*S$6V^?V3zlF# z`2uWMF-WE~Q!TjcM{KB~m0ybLVHb}XE=0~10Y{W;${mE^?t?@)$ zh{vh?3!-7^01si4V0x9+$U|YDcUrldZK3;;b-~V$#o4{c$Ey6Dei%Q%U%1iT>|NsV z)v*cXA9|KRks>>rN~5nFQG#p@phOswAkToHPSDFAl5~UwK??WKqj+jI7pf3Q-*jPA z%%=_X;-B&YPYN%-YL*dE&B+6aN^o1!KYmGAB}$mAkV((VAv1eZnUe2V5^xtlqVhug zW1YcuAhU{}nzD5mIR;3({HwUR<>UwFU8hN%N!(& zB^B64w&kSq>UkKMl+CYJ*a+&@oS%j841Tib2(GfqI~8lIZq_GIwWt1dJba!b?^-_a zh-6+Bf0s?ESDZi2GSlt$c#9sN8DsLve6c(xE40qx-d0fyVdq@qlMn{d`uRLn$^GXK z$kqz6hh}+OMRXj)laEdmgWZ(}YiW*GXs!5KXgWZuC)ten$|w1mGaWnBSuTpXw~Fe8#w=e1tVn{dFnV8CsRrfMbnl9&qzWId5Kqs_*Uj%LE9JYu>rbKF!o2u1$Q_lqJBm+2s40A% znW`{5#kXIE7%c-4h6mRnqz;Z`*&`yL4u2$DSI5+q&z3I7(a||)zTKY1_H(>fTY;kngg!;(Y?snXN66?*4U-rshbnBiixP;)V^y zP1k0oQerZnNceqj)UrzMxb=kI;~PL4UpNy_x&0=y#qEoxP#bxc-XNr{0Z0jm+ed=I zLNrq9K5B;Xi~~+#1IZKopR878aXi4Di->itUVnq`Oo~5xfjBzTR(DC)bZOb!9cpid31QEsvq|^5U)xsnIEsExGM))X{lkS+)aSOCl^1w_xvXA~z4adv z|L=l*s)tLCH6g_MBlZ=-I!(Wdq{mYwIgm?xMKLEyl4Br-5v)Wd8eD0_)Zhwbk<35^ zW?g#ru0!zm4G%=M{(&*y=J?CLM6#Gj9KDx47M6qVVr*z)C|0B(i&w(IaQ4Z}jYX|P z5{>%%!wJwW-|ZX0Z-Y2POxhG*pTKX62_H%{%Hez5;n+|Nx3F8;2T%whlMRQnPg#JQ zYT4r$iF=bqB%BBsql?kUFQT`w*>c$-MHnDCIHcf&%I5HhMTYySauJ%qPIz3@#Ro1b zI)G^B+?d`>Q$LXJC13N<&9dgO* zbV8j|bJ6b62fL+OOPy6KvR|?lSHwF<($PYQnM^_Nqu0BYf2ocesQ72d*GQ3>lvM-& zQ&&I-!~qmIXcJ&cg|>E|a%{Q5N`aveX^;V&< z4jN0`qT9E^cMj)8K2%6>uqoEjrF|>REy~-p^8K?T(Fu} zY#(RS6~W3?gS@fU2!eTG&>}Fv09I@l!8b2RUZqy4mz4vRx0wzV4w>YqzQ<~wGQC%` zFrkI)NTv`iLEbuk64dojJT%*K7R8~iY>-n;^Hq(9A@0?XKbC^%VLhm1rt>`|-K7RC z5Cho}k5Aer`8-t8X*8Za07PIMys>SYP}hVI8CO&LiglyyKn$E0iHrHP=WkM4TWnhxWpMj_vYTOeQbt+z!W)i=K#P z*YDVn9lM(6rH>QxnR`Os691Z%92!a-wRm@DwZ_aIS+cPwHkn9*HH3$3>dw?_w}i=x>L+c)IKl&_>h zu1H;5vB4qzmUnjbKs4IlxK{coYyWDfb!chpaZB@68G|8nRkNQx@u51GPii(qlQ>8F za*MfpLoTV(?Fi67T9`ut&0={ z(gRgnV=FxT8AvjH=rhMP0uVV?FphAfZYV0o5gaU7>tKPz#U`IQf^Q7S;mnaJV?eM( zP7iazV5i>-K-TU|DdFrbcoI#Wf!>CwRT^uEHdqRtj_)af(5WM>f>5 z#C_{!o>JhV`1xzJM!Ji-i{g0Mff)c=ZYZMN<{LiA_@&Qr@)5$K;?zjBW;EkI9y@9kVGGg!zZv?vX2_vGM!ZCs>1(1>~1xyGdq? zCN{U#TdglyQ};GT-0n!@E1ztSul;J7zbXwBA)DZHh0y3}Q{x62^*~omSq|bXGep46 z3VG$P!|MX_ZsK&nJVfMp*x^}Xy*?jS;$wcTrA%=`{YrvUEaV%*O-{3ebjlB(9eA$) zuE9Rt(%xX3%=8a&e7wP?5c_W5!@ho?inr;+e|T=-S-u9TG?6FGi*>hy>?}D-GJ^e; z);mIs5nN(0h9(L(glsDEP0~r8a0QX^O2qV9^k4RxpH-#EnElTNrEhp;hOI~9E z4-ps9i+bNc3yAAS!|Q-7_zY3?klygHGN@$(eadq^y1u61c$-c~B#O$P(F?GQ&#n8x zw**#h${cFsakua#Ks4wA-bGhP_3d(VW|i3bWBjp~l^8qiSh;=W%3R2|KK3JcE(-1K zg0@h&GoQbsP`J?>?OwHN`zptDbSee`q7a9Se~QOZ9zfI=MKsmeaam}%lk1=;KrZ1a z*Ay;9VUs!6sobh=e`{T8)!HFnohk(wbg+vsg;>0J@E3&>8Q*yIM*#+UHbRvT-w)lW~?+oo;yjz})l?eltl z-Jx8xk{_?;DS0`f3Kk+Ykr7h~DvdLhL+f;d5C#gkM~8CLv7kW%z#5)8^DF!e4X8{A z*&AkOWbeIID){_*eb84J2)jjxkVz)CC2&h-B#YZJHWth4wHBiVaWMxr&HpgSe<^AG z!&!Z7}*VR|=m7v3xs zHo$>_%9|50_Trt&Nn!UMaWXbJ8Joa>qrJ0ou1a2D`D`Iz6xmxzY(DFp!_$RpCzOdl zoO$YFcPqz)Le=THytfVO#|-yNk-T?qg-C@ggOZNRMp76I@(?x@Ip{_4LvK(v!>gn` zkDz*w6!rK$xFH@eIUyth@(WGCzDq~i8efnD%{FsOi`k}J)VVg<-jiJ17W4btqxnTW z?a8%(ZB_Yq1!&sHX-Y!-J`YtP?rb23O<4-WtfMK(3FJNl)d3CD!dawBvR4jU+{p>R z?YnJZ*&|DWAWI&HgwmxBo6jK&=>=(DE_(xkTrd|0#pp#m7s>_#-lZCCldmn7aCa_S z*4enIJ?d-XdbWtZJdX?@C?6q+ah#3WoEjns#|Y^=z*|F5zv}*Q+JTJ5wkJJXc3)Z; z&Kte{$$Vy1{7L-MgQh*#o1oqoV&NZLIrIJguKxUo3;mb5S37!xJr@>}I%)6l^6i?o zJg}gY%kRZr#bwR{a+beX-XGkMriUn3h{g@+HuMbV3dvYBUx99wHBgCI@_=D$?S-I? z&1?|>H$+I>ix^U`oru1{27^@&hyjq#5?K7DiGv3xZoRep)>~P7i+Pt=FWK6~4_R4b zzrp_NrjXltjmt4=71@eDvwWcjU_o_8qs#w*PrA<5WfzUg@2p;vrM0EDLD<@zTdcg% z&HQ!E-hQ@8RS*bqcmi)S)p}wO&`sJN=#LL%89wlh@m94edAS ztUh0@#XlQYauN0obzh|1pRt;CHJj)6JVafCbV}@_eXpB%~WtSg|0@#(pw<~<1CKE*K#kKdTykN64dE4F8$HPVDHPW$``OmryEmXH##;s7%O1bi?dP#c zYV1vAF%Dwl&~_C|dnb1skcrQV4fskpgsJp!6Wc*;L;T^!4p6m6W#z z281VWs?^Ey52*hG$TlsN_&%ayxi}yd2Y4O zh#|rTu>`IFixnoddZVLnAn0)Wg2{MPJ5}5@b}5VR*zl79o1Adl23Y*kv8fHhx2LZ1 zr<)=sgGQ(oJ^hz0nNqH?jU?{6>n>K0GJRU*f8Ui@VZFJ$Hmi8nlqVh~Ib8*_f{F@Z zm>VN1@X>_Fnx*mvC=Am@NrxB@&PeVg@}Y2p&1^g=EAR5Gtl;gtnTRS4`*EKZ?hVQS zG(DI|PHc{%lE(;Ar|=UbukTG1;v>_A#3+T+aQ>*YP&8H>d{6UeQ31$57%>3;@V%+E zosSyXe1r0Y&+|U?3}UVS9Q6BgErR#w4bSFHrjdLQ=t=?@{Ec0bf0yh}mXhNM8L)0a zzr4%8Z`Z3a^n9`qA082I^~-s``)k0y*+kswbNlnM|H^z`x$(*?r|#IbYjU#88E&B>c%sr&GeK?Dxrna;FjK zVZj8rCq(0B5$G`|eX{Ihj}s;&upSAPvMCZs&y1(nrE#loV9TCxZGiEAQK_@D)l}zT znr@%V<=f_SjfdzLD}WP;V1HUCcLPIo3i~)=NyDzu$Xdf)0on?&{Ix>CqRN@P{4b9j z$wCx{yi19;$P0qA24MY8*r{NL!cNM%Oh*E;9ANRFtJ$Z#NjiwtYN!)Y-|ld!)D$tB zTN}l`#NePOYBu|t#6e`ND0jok?B7Fp&05n<(~!FK9$?Yd=At0~w&aY>l;5 zZPB-XKcGHnL1$a!;E|KZ_LtjJ-du77=Iwy2w5XpR>DjM*i>@Dymo8ktFQfHVL^n`; z2>I8bhLnA1+?$Qfj_g2LINC5|P+{tx%UH*f%M_=24K=U)$r(i8=oJlK>yy5R9{S0b zE=w%AjD59y84>eV47-Z0;P98fop^}arTJWGm-0auY8iQ2xQc3{8Zg{|`xz};^{@Q< zJ=Ey8-+uc`^IL6hVgGf{HM~jX$Hn5OihR6Me^vju1{NjQPsq)2j?U6NMQ7PXr%x-t zRwtw87wwV0rZ!<9Z(+Nz8l$Ru;ERXRuw z&2{kf>C?aCty%TIc=bMN=$XI#v;ElpplvFdHH2z7HwM&b1-kUSTy*79a4*8e=b@APTm{<&R6`!x)0jw+`Q?KG+lA10KXQ@E~%KK@j={ z&o?RqLd^-o1_w0bzdP&col=Gkl=0GY1X8=h|m&Yz#EI zl|GYI&>v(PbKc-ISU|-=gT`ulTo#Q608OQ}Of+f2216L|6q>YN<1&f{830sTV0MKJ zhLGOapiSwRJK)BR{f8*m9)CzQ<cb(-x1c z@RS}kxt{)6{wsH=ygB{eFECF2RJI@Z)Rmh2s&r@83KT=9hGaW}Vlc3KM@R1(8TsPq zC{jBbz2*^7_-UP9su$|&C0$)?1^oe^@Mm^c-3rn6AIwn?K+G01)dHW_Rtt~EFSkUk zg({6v1}Sf=frU_G+M26sGA>B1wO_0kzB$+AHD_?P-a^y&y9|szc&4jS7R&V4K0bcejxbm;g(sZFyUr>JKI0M{Ug?|P;Br|*z zeEJA1CRCryM=P9@$NumfL4@70R+3wCt=Sw3pxGfW3Hd@MY*SJ;^M3gS7FYI|ZMzZh zAGSSslAV0g=>HxJp-0TNM4a7ZGXXb5(lVRbq7alx$||( zMOR5WW;I)tyQh0Dx~NC(e|7t<@V}j(0=54igbbArysYZ^iFq^dj`EU95bjIB85IwwDN@Tg2RHdBzEFma|lQD%x+S-)G-GYbaE&G=q?U;wcbQ4%C+ zY*f?oL3#5*NK$!o&j%#z&EPxA59Se9i+x4CZUv5-x2EQTnu}piB;4E@6m8GKH;1em zt|gP3j>~IhnT_HYVci1E_1qCDZn$Gu#iQZ8@qL5pl9|#eY@UftH(F~23aHMBG==~?p0dP}{vr{^lsr@m^f@9E)d zn_7#8bmVUEr0heTzo5?MJXKVo%n}wzl1~+z0K{lm9)wH=h#@E%alj%=*=eZCN|F?; zlP9-~ZZX=1P&x;1B`6~;A&FZol0)1o$_ZL@*%TDR^>R?FAG>MlCbK_mz8@uH_?(}k zEzM&CKR9);;HZQl1=5g)p9r$=xoKqg6M6f`sq~s`G`=65DRy8#5vjbfb!cnQtu;vq z)HThnQG|D`Vm5a07?WO(6VBIT*k-u0is(K)#bf5|0id11)0)OhCl2rkOh))MvN?L9 zuVA?0J9xk$1$J@0^));m4Da@N3cJIbQOfc7ec{~&k8k&V;eyYzIebL@5?wr+j zpgvH4s@J?ZteqNlSDEXD4xpA)kG_qm z2!r$JQ;fS2{D!zP>^8WcL5K3vk*ls^9X(f-*AR7{QjNN@7JOz~hD!7yDXN4!O4Djy zgKrck`uZk{%A3cIQE14q`7QokdvEUry~VpI{NtsU__|eTQ*Dt}(KD}-Y7>Oc0I@1G z+u1Id8LBRX932`jMWdy0g#Gzu`#it(e?=*;w$fS({red2`kDQ%L?j|c8}q4(4zi`_ zs_p{Km)TKp`UFLO&)s*E9i@E1+2Iu{_KuEz7Pl2Ez~*^#8z7 zGJ;dy#2@GP5S08pDJ=&*K*@=8#PO@#-A=442k;~5)Q)iNI(+n$%nnlc!?L2H! zdDz4DDLW^H;mP6Q$su+qnDWUmFQ?2v8;6!Hn_RYx38h3NZ~nUtuJ26;TC z8WW-7#&*Jww786|G>&{b+OsKLixAP(m__wfSv#!EO$zrR(E)*%3qD6wOd9etz#3fr zLXcw!Zq*8-S|MIcM9Fx;eu_tBh9c=Hw6f}9+H6C8bK5EP3Hvg^i)YBok)fl4-%XY= zwSc&?2R|iH-O7Ep%}l?a|3KH6Fs4)KZ-!w zKfkZM>+?IzrWWRvM8mn#&C2tF-JL!!$JU>$k{jy~LC^CzLv(Rz*Cuo*SVX&8Vdw4& z2x;Yw-yWWv@=XFG>IF%9M0qs-#v_jun1rH97Z6HRyR;3SjbAM$9y8{s`8-=A^wJI* z!dzj1_rHT3qR)hym+{$c{4@A7@o5juDCQ^@_Y{lxk}`o`-Hq@3xcnVN0q4r!qIvf+ zzE~(+UH&frz7}54&kMD)-*1@z3;NaF{3mDuzvYe45BZOYUfe$qd9jzQsMup*K&-k) zU?*_SySoHqp;)Bbh;4oOsAyyRPQBrH`Fqmgdu=!GlJnkoPB>nC+V=2%#|_(Uc`i%b ziZ)7!l^~?z8rUwl`-DqSi0Mm5)JQdqAWFp`sewTJ;6dp@#s$7g2|2L0KJ0hjL2|;Y zuZk9%`LR-xWxO$q=ypq`B=Y2jDrJkcNjGKIgNyY z1dDSDWvP@m>$xP47)JcPom!@pr$#O7E}d%I1tH75sRUTaG&Gqr@0gYCl?ENgd4 zgWE~Ns$QEl7^yArXhI&twThHQO~_ibXt`k8qsmtlq*X?xz-v9Kc2jf--s7RjY4(GG z_P-@vHr(FPJDB)+jKxBqeJ8fOE!%NT=o_}WC3%h6`e~N#Q zVaB0Iv651LZ5V+h>UGBT=PAkX#DZGFg@N^|ENPQOeeWRvMc${fj>VG$lI#{OF|Tqw zQ7UaAF2DRTaeSZKzd1iSnV)1ur_{deg5mbTWY}wBCa<-*ePGkT1>kafdk;#_Tz|m@ z^hK4<8$stNzviIxeAj&8aXD+i%tdBL=PR$wADyy1lu%xXji{sZ|1tL_@O72d-td0* zKJz@Ej3;ME&dEH_<4&5UZIY&kbV^Q3)1;+oOD(08Q7C07AaJj!e4v1eh_fPB3oj0! z7xl`dUI7IW$BV<2_fxzoSDIw!{jX>5lbn;BFnHhJ@B0cTIoacS*0Y{9ul1N71a(%I z%e~aRw-<&IyVVgw)*`1-Q06KcP4WwS$7z^hFWJ2e7V%?ML>=d1Px{#*`C0x z8!3J?-^d8#^&-$1RMosG0A9fJc(9V@Exu^9bEY$OYInE8W-0INM3zx|vNJW{`gUhg z=+w=<)rTJuivo`By`AjW1F6)2a$ED54h@4)bLYs*bFe#bPq`8rm=F>2d)c8od~0v@ ziAPlUo&kJ1a9CdP3!Gw~4Aoad@R5*cK}rHvJ=LzK;S0fBXhWCZHl%~HdkTx&zu&i` zZF6fN6zJ$EvsxXU6IV`j>}iX{eAd7gR?YhKHde6k^__j}xkP(=Lb=Ql#Fhm6ln*D` zbR*4dU*E(;pHhRqy|zH1{yJ61L7lkfr=?!U6#Z6vL4g#x3n@y?4S+3u%#WZbmJ8vv z2fa%5*uJXEdtg@o3in*$)E-BmXPBv6-s`^wJliWdf z$3Hb#BEI4(R=KXeTz(L_tBLZ``gQe>SALN8!z+5W@*A<;)g9FvD_{R~nR1EMjeQt# zk2_FVJX`rx{Xi4DuxfzM`!ZfZyzdaNWf?2#t?FzX2L> zg9hqQnWn;uDkjW+dY++3q$zeaMIf<$DM-OSQxxh{{?fk-E!(1)eZRXu)w!iTSQ6~) zOjxbXt`xhfb?bObGTAb|wRJ1&GuT+{Uw6q$sAIaz9xOD7ll|=1~<$PxlS^O6$ z?<;SY##-0~{i%h!ThBSC^_*=jcBXgqp)WS5^#{RfIPMqwAe=&`EkTJ9m?~h1f}qQ$mV(WS&!{9 z^;Zbl_J~Z94F^sB+1Fk>bLI>_>|5R4q&6uJb$RUFK$W)mz4BmDFb_h$?God3w0`(bMF^*b}k}v{r()wsqCmIfW+2<(_k5vvH z8yGlt)6s#Vg8SOroA0}idD`3C*L7 zF<3bkF8BD#8z&A;K}JYZfH&j7 zR`TrNnKP-7#W#G#F#fNdh*k!Cm92(&ygAhzqKz!Zj*sF0)D;dyKILXK*}1|dUedkr zm$rJg;i?b3dlL$tJo(iFJDklaR{Gox?OVn!92>jg3U7W{3)>ZMw!a%@b{5=5a4Uj( zU>ToM8k5v@C5QyU%-QAKv}`T-v8%;p7(wUW_V&G<&8bdPw8+p}=?hdwCu-F(d2Aj7 z8_Y2b_KP#@#%_gmOkX(DUca@8*>?6<=XtA(!kgaxfvYyK!cc9l(U85T<|IhGwvI<% zbK;-6;PV-v7V4Vfci~sQ((5nCAGvyD;O`jS*Va}@#q8tcC zJ2z59U+?L8_gB8MyKAPibLNtn4%C|zL0zjZovc$KEXa3CKIZ0Nv1cD)w{xl4dI#8+C=&u!Nr!}w~zG@)zktKp% zPEfdkEqV|Kd!Qm@6 z5*_AM$14pp&wi=<;a*EQHZ|-G=@9S9fW?T)Zt9%KR}Aq!YAMe_L2_RPmMFbB*itK^ zsLP@kDy5q|t{&T5N$r1jhZdS|?d8 zc(lANF0FIe;Rc^8Yo&*w0$~f&Qd;SGuKUTk**MVb2#g|EGbPS;E9V;>3I8FtSIS)N z@jBF9^*;98%pr$A;5y_8)Ra_Lm(=8~cl-TrL=8A?W{zXSTaJRZSLCC3tH9S91M%5B zE^Q#DYvGwK&v4b!IBqJR8gW zOug4e)peG|ZLt+%Ci!T(K?`wSZ>;{!BYCthkISJkustD9$Yb*@6BTC55io%0o>@66 z_U~uDB(~2Sn`v*vriVp&Y0`TC$sy6>5y!ffD~3JTw#*^As8bq7mG(%hGBtBd{nVA4 zxJTBgkPW!zsNR&=GKbWApuiI-aD;OV>9ti9w>+l7R?$=+Up=O6haJ9v>!2f`y4mxF z$h%%k^F-^s2y5qzCL5{a{98!I2B?yH>KWCLKt?*Brlp>)?8?U;lSiA|N3R_lyLPmG zPib`^uQuumN9&Ob$5O4>dN1rNl2Zf20TeQX^TZRf(z5x8Z}hsmuNjMmYP~2)XmQqW z`T5W58n;yzN2}s3Wwo;0;0y-BeuP}J;59;$)9zg>IXJN<1RrwDLc&nC2H;9>@5#p= z+uMDhv-3drz>xw&H0+Aj2EZG4*QP zufSKo?Rw5;Uwe&pS}agWGN?d@o+Q{t;@Qi(6%jdf%kL&Vjd!$uCo+)Kv`hu!#GdvX z06BENvDZME>;}A)FF5e?Re%*00U%OX2_`G(@H?89AH-SK(v%Y$tvs?uVi6$`Rl}iB z6Z`B9j`FM-bLE+2xwlt-?6H@7>*dz^`{eq1628%~Ywx;#R2K*|j*k8Oq^w-u z`#`i77a8u)goW@^fh-(#ML;#hR>;euBqw-nekd=zPPGS34ro0f`>faDQ7LQq5}&*p z$_HGoXmzcOq|xhTW&dN!O}g#_sH;g0t_1df-*3QW_2CC7yvo;t7dU$qYu5ztF6rAm zR}V8(-y#tkjgy2xxnU;Qq;^Bc;R#6(_w=0C^W5W)KOPA;?P?Ab7H+v=%a+s0#y#=c zV4x-xQ5IzR-|oXd_PVS*U=v$Y&5f11u^T>eL$Wkf?<=T}?{0kjl`L4O185cW{uW>j zTM5=uA5fLGYo3a<@}Po29cndus=mbtxMSjmNVsSA%7Z;U2YVfUy<;^{kIM2jk3W7# z&wWt-Ds5u-;qLCkR~+sZ!=V+RMIV1fR)z_F!WYq4A@KDO@I@U8;>(A(BEkn%*5$T|I6g>aBAqY1GESqTr}2xq#tF?9~ znCFs3qbn+wdX|7B8dCSNQf*1{#A-NOK|?Uf2xHuiY%#*G#63oBF>))BQ5iH6RqYMi zd|6c0Zitt+?`;kD_OhaQ>A~UQW^A?IY>Rq`L*%uKSIP@N?rah>DQzg_Vy#oG`RD(9 zby?Z)q2bC>r>nNVJ`b>Qx=X`Lyi8t&Q`&cIE&DMy+*z`+eNV5cw8+q&MUv1fO(>OJ z4LhOlg$Xc29@2Qz4t6-DZEk0I@sc^h;});qTyGrdU19(klUfTjf}M@LT%*QcWJ z{#T=9I#j=-5n6n_a=G)EcyaH-3w0H`O{eZSIT|gh@f6gQPSnAU+|K%5+(~`Lv~FV@ zw<=sJ&jY<8(>}dw)3%z*OEUN%MeI4p%Y?60hcLz}=-Odk!p7`$z=XQukw<=?0p`0x z#j8N<*x%W?@8W%(k9_6DUS&rns2tW(@V?J$yf4jva*2ja`@0S$gTZ=ZTQKqFOPy6u zM8i7<0>h&|@ffZ5a^1!&Z@*%g49tS+=#E+-a2xA<{)8!+G_`N5uHL57W*R11@31i6 z$$H1W?`hcH)^caPOCYir&#;@i6`^zQ@tJn4c^Kt8u;zWRGKa6Y{mP9n%5`!Eq$;ec ztX1_j$_Q9PUu(z?z!nywVdSp&%5wkXk3V-GYj-#rcgO3Y z#f3_f5Uyjo>iXtXYxI?CWyQjU7xA66tXJi$K(!7*RU3Izp9Qz4NF!i6Sq}G-T)lF( zCkIF_$-njS#~bcrFFyV_7pM@ds{jjyMe!gPs$Bm_%MbFaH4t}6bHfZhi4+dat48ax zt;N_JY-yw@5RaoF7YZpjs)x;wI0}iB>Ue3ENGW#&Jn*e`cYkSMAY5$<2R1f_@XI$; zKR5{aqPRD-STf{GL$3tKn(;X&;%tL8)g>NhxVW@o=v%cRw>w-CYaFUsH>m1QY4{1J zU3~B7WvtQ)Mq8WQh6Kmzn~wxk8B#6Op=0R8>Ipc?v$XcoIE>bTGiNSYJthdHGu*?r zV}MD$4H@Fdk{2?FUERvJ-*jkvZlYN44?r`doqaZt1&&+_wap5g*HGe{TFS6lQGlC7 z2pi!)D%?bOZ*+!0-L#1COapIs*P?PSq$Tle7o-ZJUvNBJUDH=nlR_w1`S#xuzba%x z*qiSx3Ywh;dm^0IQs=IAhwK)2zCU0u&a?R(1?U*JzOuV*|Hb>-JsT3^Rh6jaIQ<^8(_h)-viQB#c?NSyU%nHYX8Q_iYAe@Q;{UFF?d|(g zn-W_Kur4UxxCdiBmagl-o;C*c|3pgwqtM!2pdi)n)uZQq5GCWN2S+ytu^n9{XDZ8Q z%4>&9v9Tk*RL+#+OR1;~oEeIi=7k)}_kAAm^PcGd{mYknnBM52HWePDLF^G7!(Tg@ zpYLXj^@KK*eTmkoxYYCA2#C-H6}`C-kMqK~gEmZ4&<6cG5{$I5-zztb{&G)irOsD? z5sLx@k58r+}p3SJjK8_We&*sR_QNsm@V-sLY+%*tjqZLOD31Ee#K z9$0TMGNzXrw~So0by9q3;gv{_-`^dj?USP2et!?Ln-=2iuZj)NMg}E^MS9p1ultT5 zxQq=}aVF<+yEu_?{9l%?H)S1PevU;X;6-F)3SvFRNOu0NJQEN=b*Icd#)7 z;(7+N!E7?(I=#nW4pv1Z^x($cwoPvKjW^zyeeJALlVVr0J<5H`^%zy0U_W=!Mb8E- zPjT2$Ma|ziu{bIU;wwO1TYG{_-GB`fG_4v%p z@jY83g-5^F)z{b6Da&WJ41}CVQ>^vy@#BY-C-)w+6c)wC=hpSI;of!YdXn( z14mVo*%KH3O5Wj1K`YjEf2VbRBSM77}tP1|Uvh0PUM43_v%fXF6Sn zj*xB^%&6*DDF$TA`=EXDu%#*!Znw}ZH#qF5x7X{i%_^t* zwFco9+uXl1e;Yfng!!*7FZ^eWm>RU`Ybe;5g`&P$`8h9Lg}B~ zTvCN>9*R|}FcDm8BwK|GmPrrWzMq5k#1krTTet1|)5u)}-CZN=(%{W(50g|P=W@ag0DY~lE<5k4qe%*+hY!OY_5$b|)CkpO(I`iX-xsj~C)n&93li%Q<D|~2>V*c z5$ltMAIcUJ(}5$K^@OiH;H%Qg41!K?&>bS4XwsW!jX)Ed7D1Z*n{CWw5~eJmO0cBD zkp~-aN8_qHfKtxE`Zo)b#JND%iaX`HRX5?$c&-UKf~)VA#wI6a&{TPX3Edq{a*JGB zooFm?EGaI`_j=qer(KA%GCNiTsjHNV)WUy3wIceXurQ1!XojT5B0?OK)Y$-c^aUh! zYA7cYfBm{CS#yru+H2aKPLH#EdQS=QM2 zSjDFLft{8qZ?Yq~$1=?HHT5Gq$0~;#>Ni!ems@LVTj`@5uTLcE>4Pc2-0(S&+?bn} zI6u8elW8lDU#iKjmB+7INi7aAh4_2juQmSu9{`jI zbo`HE9J<|vI@2L&01#CWQIe#C$4Q6P0}(Z?iKs%kaOnaO$3)@0r3*2GvYQE*Du>l< zK=%XY$IhydUzGm>hDEt9NMryD#q_Y!?p;l(zJ|tL{bmk(iLg$Vu@WT+qf>&x#Pm9Y{?LkH7*+Y; z_c5U`-&f)<$sA6Ggvc6>m&_rU9aK5OrY8J*vYMJQe3pjT+1XH0vGV|n zRmaL|Ys+Hr{t7HTCgfkV%PoZ@l0;^Nii~DD$aJIKOGt~s-&26Lok&DC4Pxojjm5kP zw^wg2gp62{m#d^h>?8oX>n;`BlM}PQO>SQpSN?b~dGI@FoFCYE6X+9Oedr(c@GI_r z*dmE~9n*MNu>hO_bC6*=odDJ)qCMqifXS8CLOGH?4O4U6wRqpDin=b(RhZCPof)z}bkk#`gq6o!)}1qCHy zd{expA{MLI(x>cUACDyBk?%c2KNVF? z1fMrj3Sdps%lmoWm-) zfyax)OE~X>{-1UHD)C6>ao`KC7zG`fJ zBKmrW3iqJIZA(%dj zze(TXnpYo#ytU(LpaC#2Zl}Oy-4f%m0X27*OI$V&FV<+^_`XzMYkR*KUwG+ITlawp zc3k;L-?|~0?EyFE@F3UHC*%o-vmgoydV~J73GLbpr;WLQi{`js6`X!Qa?$*G{=8ry z4X+uLkQ3fSTaz&x<_8Z?UyuXtsatQwQd@%E4i0<8Lv9#ZX>3NpVMTTtEPx3HQ8;8V zi3S5V2Xr%3@?w-0Ev9DY=N~V zSeRi+qc0(vI&Bgmnb>KwQPk@(N`pa~fo4Qb9AYUsuE06EOgE#7?nyb{XhfI1LStcG z!0U0^%_gJ|8i*6-Re9S`uY{edbB*iLTejZ1Z#>DuS%W%#>#bvBQ@I8tX>(>qMO6^- z=KCHh)Mm{MV4}}z zCU#Pel4EVGCMq+U%wkDj2v+%2iH$u)B+6v0{AY zwBIb6g_-w6i_umyR2)tJ-nSY{H0M>EM_7fhaPT1~l*2S#LkB0BBAjP3h+IS0>qTHo z6gxyrb;-)JIKCNUm8QWu`bbO9w_&uluq|9%m>2YU9Cme_X=O4!PH(QcX4R2+Jc7>` zGl%q}^hm_H)kDdkUkUu>T@ZxJV+nD>gu_tBPG<~fW@$K3F+khd7oB@i?G_Y9Y*KEWhdW@>A)xRJ&Av>dmf|%h$XtyBOn|uqJyud2~BLFe3oRcXwI>O0A@j7?;C$cfo=e7I#6R~ihIR{3#{DQCi zcI217_n~|SOHji`2pSI49Rsy7C@oz6ll5pYirmSiE!<*U1&7UA7eRSnc^-<9YKM}( z2BQu`_hZ4L?XAb{v|CK@mlZLzPT}s-4B6MzsG4`wniGPNIW;M`F*Z_DMo^-Nrs94i8tg4cVzPb ztZqj2voH@bc)$`%8+kB-l@`r$RhkiKtgTQELw+8%^6I39l2rQ zrG#G?)9kR(l2SP?7U1h*hu-@7T6)9M^@5J>FzJND>8Ep^YBn3Eq2=}&K}PKY zx-g>&@hL$><((+N2dKVF&{^TOUHjHaEUHLB0TT*p3u>z>;$_irQDMOEbvtZksK^w` zAjd7Lc0{tFY0m_>X~i^i&W-)!p?E=_JJjD;u6=2k&cgrA{vv-Y6sl=V|K6Vq{h%MH zzG5w6aY3O+?&KaU1Ua!J;S_=!VwSr%DF}mL92Slqkr*F$I8&I2EBM%-g;XO3K}uav zRlAzHB2x$i+do{q^}s}HRaM)sewDi8j)USWGutS_@!oOe%WU)bdl80VLO)R3?=xDG&vxAKvSM|HDIG7_bB_UPt~0h9DFP zXpO*dxkvD*t`F`^&_|^q;e#M?2FYg~2?<^lz$X_T?cM@?7?}5II zj#2O#T8t3k&{5H;0CWwut~W|hnkdw2!%n^EBjB_-9d?7&V1<=IAy-n?w2-S8z5$8c zKHu zS1B_5Z^@(r;#6b9&#{+p<>6t%KfKst9PdLCG9 z6WZ=&dq-jehnoVv7iO-ryF}4py=dko@8*WB=+{!L+#T(4I(wq*Jo1e2vGaG5pSm7< zG$5YtbtJ{f!g|(!slW$P8y9+06SuD~2h^p)N8W5kl22 zgO^TckY+P3$JLX#OJr00#x0X_0hBSJAdl9+&0;d@O7taoC))a9g3(IYO-*VWaZIx(~V#0lkjefilJS@gnb3R$ax>*))R%_tAg z9OHUguGmJJCgW?-B)rA{7)}27oi}d1;jV?R-*v;*8}IzYC@Ww#Ty+6VCU;;H?Y zU6v*$^mOhV?7g#hT}R8rfnzgw%p6?_o*hs;vbx{j?DeXlp>P)&f8m*FK zGhH?PRLoP~J#wJ*GwzmheOvP%@~g;CtbAV7?W);&STQ${9F&A4Y&jEj00$iWA)!@n zDk^llkck6?fptwo59@^!o}8{E1Ylt11(^^G<%RrSlR#k|p zyzs{69_CZNU4tSA!Ye$(q8BhmDL#b1F`bAC;@~u3gmOXw+2s_Qs1PlTd8*Xx6r|Mk zF|`*4_-L#bsud52JCUG<9TWVMRl_y=%j-6Fc5Y0G9W#9c``d@*166};@2TdU1Kuk4 z#)|Hdk#2c!TiafF@OV+RceJHq9Q3~(cyj}$LS%h!l7~DD+tUJNh~9|0Q^*HKqKe^A z+SKUXj0mP)z#`x%EG}X~X|$-KxFXz1B9@49rhXTydbd@LvSF?rvK$qmukO}(F}Z#%KCYTt?E zrrxUFP5cMo-vs!jW%#Ws{91?`&D$*X_YZ98JhZNui>$kNvPDVoK_jc@TU=LX>o^|C7J-zi61Io?o+p9Nt z-5&3Ts&*0upmU-z2|P9|Y?gk3yVK5RDa^tel`YK@Cn&yyafBkft-Q4stK4-F5f%i&U}vJko?@q!ABgsiExYz# zY}q|l(J<7#p?j!2#NIppx6%rB!M+XC7lIGJXK{}GfPKen6rYD|yOuJ|#7C5C)l?;% zzXOB%CHtn=C|sF7&oa+{0Oy~i`-O{hp1%dp|31GT5jpkwS@*ve_diPKMdVB6IR8%^ zK05#7oab-A`Dgk4FQm_B!H+B=_5I?D>GN6dzY+KUkdOZ->GM+N_-?`d-{a?@2j#%e zd*D;}f%prr0rK&tHj?+klhjY20`= zKbL{a>v8T0elD4P4!q$mSbE==)-?5V&bzSj76yJvvH8D9k z+*8pUEhs7v_mduY8@rr64>$^tRR=D$LJn%ath78NxgzK%mxQ5SIHw4S?Qp=wi{eYN z5SkA6DlAElC0W>{!b+lW$wS2&H%;ys9o(T?uWKl+YQ)Z4{aYtDRWvqMRyH=V%eSq& zeR%u&w!&C*O>%Tg|GI5`4T(epeTc`3!u5dv2@U>Hc~iC=%!FH&hd?kAeqp(jEEF@r z_j@%ayA1vklWpKO9mljL$(O;8uiL3xudgqyZU}5A$T6A`KwgOvu*(OV^CHdF+egRb zf${NyJ2&n4WnCg(UmuUx6HmBt@d)@$E9i0?==v|TE~G~m{<5?#miQ5!SLrf~AKl1Y zSdUoaIDe;l_u`%WZb`Tic=;jlLi$ac&?&bq%T^2=vgZ&v&;)66Nja2+b8^X7ivBhu zs{zUR+`C1IR|vXrEi7BU23N?}O}op(@q&`d9fN~A%8HA^(ZsIfl~wLwUA(NmpsT7S z-`CLM%Wq+qZ|W?maky-by293V>smv#cAL{#6YAW=kRNF(@)pHnMV`V}%0j-7IT$qI zR~%Ch{M`(`@C@q${-9yz;43#{{XN6+GqGyj-VEG5BmM}un^18Feyrk-2{!|G&q%#k za!Gk}AgA2c!!fNlP#bYoelOD%9B!a1cntHn1#!t8^K&JU zGTJKTN#jO+L$tiHvAnRt+Ruu9VsDQ2j-}Y;>ss4vcgGgMp_DXj)?qt+#sP)~y@qQ(jY3jt{$K z%h2uXw`^H|`_PuY+Vb1!@a^Tb>e~K^FvPAFPjNqcy<7vAE%*^4;;>RhX%g&FgsBA$ z>l})4XU4TjFI4H4^G1V|5!YtblnofKsfla9*&iyR(F*z~yVKt|UKb0PdGRs!Ik!>p zC^GY^a!bp+2ObwMM?!Y7cK)L)&kLf`%%Y&rrKk&b^%RJS*wTjbk1*JRf4#_AO&ojfq)JJ@N+@N|!eNZ-N70r?tMfIA~ zl;vYaCB%ERlMs;-+~~-dhTjtp!u>`h<8e<5&vb5b3yTZqiXTsHXO||~mGh4Z44g+D zi{ovLC6+lB)LmgP@QbLUk&M#(CDP40q*tor(V28fy#?9_=yUE9OYbQVy5)|1uN@u* zIOKt{8W^B0x9~Fi z6MF<*p;M?2D01t6mJ{ z4A=7Lt`@~dB7`J@+ZI!Fw=J3=21z+-y{LeI&5OtzJSz@q|4c$@7438A$cZcKj4Ln@2Exw;*J!-6`7XB3;XT+zU!}@sRYWSNa z@W4`3y>1cy>3@xFE`-vw%m0r8yh@bC zm3afH(YOyjCGA!WHW4pl!ln%a{c>Mtds|C=ZB13#aC|rx@nhK|m}C%2S*Z)dN8#KO zZ{y5vi31wo_|RBlWX+3=5HIKk${8m%$89mp2@?m6PJMa*MHls#>z&4f6E!t;%{r%k zU}R)K@6#3{#QRp9=#M4K z`sg_OiD+;lP_~3~wFf!X_WC@1_>onpcFWAz?aUWsN*zfOy2Bd zX0vHZFqz;-vD<+a~3@=BCO@6q^cN?M-rXUu8{YO?6eg zB3@CRD2)~u6&5VbOc^V~UdC@SGg(NNnk4kk_M;s_i$T>>urC!U*0Hsw!jNEP%Fi@B zvvS*E+lO`E_kf+)h;vBkxC zGw5Gd>3{Aq(0@YE!xEu&pnnp)Mp=jR>!Aym3guK~SICtClzVb?f{|e*(^QaMxDyU6 zVG0#^v=p|Kftbt6%gPh+Yy!3bO{i&qYXYV)Y4^l=I_#6xfAna7T(aoSo4Dwrx<=6= zwKO)gN*1xP?xHiPqbumDW7upS=E7F`{QNdr;`_xG;F!91B!oTkF0fGvMgz~d^SVTf zRc|@yaf?=Lh%DHx0!O>Z_91uK(7xH{6z%p7J6s=NAf>TrB#Z}@gor%zDUZzOg>+H> z`BBZ+)E1!tIR8)@6tcmjuUVL`WM5mAN z?+)cwHa>K3^xkKcZzd&MQh5sdMm*bprk}Qt`0klAg!AW-2VN_DkZM;K&T^c49>nqa z+i<)tz>zM##oBKg7LtVm+Q8T0nFUv=HKOJ-PV0 z@C)_$+-v;3A^vQm5L(=;zIT35sKI+@>E5~Xg*N_-I-$*N6e5c!ag7W9(g)k{qJI(9 z-+14bHCT}~bq|dq#AB%X`Dz@0fXB}x=q%JDjIgee2PxK6Sb}oe5Zw9U0#OnoNQntB zlg`hK76X#3);ep(S!7+=@c`M1drXqL2}RAe1^qho_2tF52$e28Bg3n@=aM^Z$o`7DhNaC zdPn+(+gs{;8oDbJ(YjbIrP~K0r4c6-;xbbEp#t!%P}TQu#NHoeT%SvnVVlGcDh5!e7jvmN!@+u4WVp^2ExQMd9Gd*JMok;w#HUU!}ulMIGMA-;afm5Wm~01DWoS;0Wp z8jN7e>ZN3HsTWdIGFDXNc2S~qQArW_M9}XlbQh{wE4kCcNmgZ=)AYA;Uuku9DL#J? z*3SzPoXAS zT`_!p(>0f>>x|Cgs_^0oV91nSUwF=U7Wc9SzFteTbzH*N@uOI+ztWBqZ%7Cww0^Pj zN@!j4=YI$O-Y(8R^b4=x9Aw?MiT4~_;??@O8~MHZ1?1n5ym&w9_23tXwSEY-nW(wq z71nT`p-K%_$3f&~0?R1Jn6-e8JIr9mxNe#CTETi_WNYvbGEn^y{`p|9GR~gqTsSM1 z$|za+q|)8Vl!aG%KbyQa`Nc2d$7cy>Hunk02njNxP}m}mB06a}?O=AnegiVjQ3Z`U z%Y$6kBv@vx@CgVE1cTpGm}dqJ7QNks)dImu<=snA5p>It5rj&~;KG3TQuF+ONfpiW zAD1pq4W-17F05}B|1|%4v(!8P$-$#v9laI*z5Y7?^;P1r#N%r?eq)M*L*J+4yD=Y+sK<#r0^hOcaD478jw8N7*Uw$X=OdQp_b>AGg7fh2ff3}vS63~3 z;-LbjLy%2fHjM%b2Qjtq(t#1eQFll%+D%qThYYUSWu6G$r|}*$7EuQn7Fr1C!1Qw5 zjVf=WX^nfqtHLGu`BV;+C@rZDSLKKDA%vGpgWi-^(Voxx7FhItDEIKQrdgBnk!)sE z#2#7rbiyo_&;MyHp7Yye^0iWLe)8F6-U3|SgZ+eTk`1_YXt;C$m-j*+aR8URC&9g3 zA6Z;n_>Ity+`1#QMxC^B9HhD6_%onEJJ)4!@8W}yuU?>5m9G!-o27-P7jI&}kv2k) zsX@mhc;rLHqG>n*GjNmDEE=75(V#aP4nmWm(l4?Dv0zAHmq4w^p=+qGtF5W5C|7lt zwBq7*5uw685HXUDf{)skUDID8;PZZm2!A75xS$n%Gd8D+eJmNR1~w>eq!7bOv@4M+)N zRM%n?@+sB{&pi}pMxOcVg!CO0oL-O7c^uADNLR-p%1I6QM5EVaJP34o3|`NyADf^e zO`3`}X9XAXFb0*~$CafcavbVdlqphX6vA&`_ z7NL>~O*N$c1C$P$?#b z@pG!TrOl`pB{%#E4#*$D=|{$flM@`;#RxmGWF!_~9xL-4qAGD13fRWh+F=ECwXeF< zi#uH~szI)F_pIQhTfHl9os?^9s*8&Rp{b#|t){IC3pExgN)#t@N|zuOZDhq#%``PK zbqY=~8E*Q8xeS9N)A$fy)s&5e7?!Mfr}md-ex$9C2hv)|-Di}qrIiqlOUR5{fJ@31 zje$dbQB`*9skq5)fyWw>)MXVVFesmnp+z~BTkz^`uh%{m@c5lNZfzCHT|O#&fK%vH zj(bHfT2@M~|LTg;hB7F)k+7~rmu0kNuS~#;-BRGb zM|&zs|0X!~65or);mITs0uM>-$%(_q=6|^cHX8|tv4TRqz8pS;e7(M+;05v(ys!eF z-ZKh<#;Vsq*sF3x~p37lH{Q6j2Lh1r!) z3VK9;J zM4y?OgbY;GSmBvqk!8bMow*F*zhVvC*K=gUrXyXmJ5r7P8vmmY*#E`hfqqyunvqV^SyEIOjTRP$F`eKs{|VhTh;>2zuA9JP z&X*5b%|k@;-bG4yhB=maMzx+eH~!B>iq53O@LJDkvYsWdN*96XB{ zMA|EnMcrv^xr=k5D~DS`6Z=M@?;t+JFO>W&s(vj8pH+_$dcOTy^fl(gmo#!R_$|IN zFPJTt?}oYeX}C!5ZZiV?`MvV3Nc96o3{s*j7AbKd2nL+QOQYeC+rWx|9G?dY5%7X7 zqfAI21ZK+7;wR`gc)cB7;AYF%=FySiO&d21tshi{a!)t9Dt2{t5Lqpu?X7WEkppLG zS5EqOCZC1fp{Y&kZ;nG4B7{S<+2gC3YFXDFfkmv&bB!tu)-QS9Bb z;%g?dvk^{zX-HQQZ+ZjEjME_Dd#kWh*u{5UoE5$-Kj=jY9AV!iH8s@LR8=H=CXWBc z`r7Ks^0?o`Xd-A9Oac_DSr94Bf{|vSndS>KVG0I2f|!Td1Ly7EH#5C=YR|d5ccmsL zcJA1|ZR_|sNtz#FL|8dR?|gn*-p2gAoq0;nTdw&^&)XY^vga)?J#VYNWKH1j(-XMj zi#mOIQRVlnn-&er^>yW>uAbNxlglTV>oJfSq{pb9&R?ifquOEAOOo5~G^u>X!!;ML z&7wn%dYVZuDKDzLZWW;PICc_)U%ru)7c9V?>I0b9%DftjU%Go)^>LDja`>6k<8aQV zRUcZuf+v7mJu7d8AgC=ZErRY-nkWTNBblu_Q2sI9hYUXAWB9#-&o57u=wy$~pO1N9 zUt^D?v97W3$CJq~o>_!jMT9+a5A`zSyEnl*Kc8`@R zV_+)?r{N^j>2ILuEA-QY8R>-NwIXMbRlrVq_-8~vD?MwHG~V)CWoC?>TrhK zXSA@)KxBYYj+hsf9ArRW!E^Q;B~`C`%O5{)?UYKm>W8Dee7lu#Y1O9-~C zKyZXLv4uxDl3!S`bW4r%4<26lIsR5Yyo_r#b~Nt=4F8WxFLO_DTHtg8|CskCOtW$T z=kEfZOhSoVgo?{FhL9emqR1qe+-@COCICk)#u7%{!}cAex4j$;C@XF~83RufGa)QNAzY54*fB)E1}& zyJ`fUj1f?-7>$De&Kk*lJs-($E@Qu$dyLVqvtL~`9zLS1F`*_1HC|TWJ|YareUuy_ zgwbt-dhnsuvdDC&z^P!3pQKz}4f~R$p8{jk_vj(EaAU+%7WL(G4%Wi?IO_eI;E!5L zH|9Ny+L};m<@gwvTv-VV;w5z20NR__F29_ zG$d>UoG$5lcr%ehTZ0x>LViG$(4S}-PQ9qpQ}_>5ETZ02&nv}HpBD8MM|~~>`j??w z8G=%3i8ZoTN)X>eu%GslMpCWTT8S!Cc#3Ts)2BAf8 zR42U^crJjq1DJ-zOBrSvCE{A6L!Q&kTQi_B7bSH=V~!QY;3o9Doemq7uTlPLgwMX# zp;S#fp){NbTwV#plzA6Y7M#8O9Jyn|1$(~mg_hpFR@QydQ^$^VZ`g2bYW=iHvQBpH zI56G=lQ^k-ew>LzU0rC_23#xN#ZmSKaNR2O%e}2&VuB5RQVD?-ofIuGf*y1L9a*4~ z?iAgCtfxar{@}sQ9&rqIKv^X0b-VN+U7$P=%n%E-X(F{qeGA+x|DKZj#W7`?CA?vi zIpS7Kqnr3dY}mRy5e=2vMBHzUDNm71vB2qp_Pv%$ZBj1WJpQiqq-OfiC{ z7#}AxDk34!I}$2%R#@8@8a%d)hKVY36k=iqX&q1uSD40_2hi~`y#iW=R*+aNm*K&d zIKrG|*bj&y1t_RTW)#Ik(y4)%cZ6h$~A9(MOXpSN+FHo6QV+^}`e z)-#_o^u4_Q1s>3pET%8_uJ2qP)_qwNdEw^dVdsN@7COTdnA2ZktTIs_#wv+biLz2I z)4^%`;-s1)I}Xz-@<_EdN-76LxhWnY3se_Yi!N|fzf|ohz%KutD;LTgo z1MVBhp85D_Oq=@M+gA-gb5`&Bgk=RC_yS9Wu;qLe7ZSy`#2Ku`Mp*rW!ftsIeS6Sg z2ulyPt;Ep$Y?jJwC2%?F;OMeBC6qExi4GBM=Y+AI?&c;Y$i3ZzJ%iwMUCmu^Le*3x z;-w|U`N4n>ttRzCBWrZ0*J&FXIjpf>Ij6~9zh&w58%cj*p4rRgmtRh==Ffh%rMJJC zeJ@;k!Jac``1j~(1(+&3a z4yr$iMs#!6YIqrj)xR70T$jif1sFph&u$ToExC;AZy2Zr{XyM5c}2v*9}x##UUZ(_%`-P?C>**vm!bSu0r>-!M}X=`byL;GcN z+7*GX**VUJ*>L_!oV^3wy)9g>M(UemHXF-lFUrL73S_@I%GXA|HU-kcFMxlt%SlEg zgspNiLrNH_k%-aCkXw$(CwQ{j7Z=JA<$5uWc9_Kw7^+#kT5M30xi!T`WLa!b2vqq- zn%Gp)A#GYXrOFQWIrh`F<%fsc!9U`5@GBTY1NtTAqr#eE!PH?XZbl?n)Eh`XBTTOs z_Cap2X>e7zkBvr&(g(Y!Q%oszMWaD79$Nbb9lZC273EC8-WUxP4Yc}@Lg6rDA6S;4 z>^ABPtu=t43W((@T5NE=)DHq8lc9xIGqsKJDgW>Glk0CgdGVK2NS{J($0brVc?{|z4V3i9>V3+JGF$TPBa`=)_NsL)_{5H<>cjeZNn4Hqv^Ze8#RFvlUpy>%io zS9w7;<)zxNfrlGueSJtU^GbGm#t|xf?|SQJ7?68Ft$5P+dyH-@Q|fUhw`?8XFhuFD z6FbJw-Foim@X$FM&gqxCI@($hS*j{qA739XDK3Ib6`gj_K^KXyeqc7JmXu*nUtWro zp;MJG_>8HIql1CgsQx6!MM1_dC_@*L1b4n8e<43p4BnES>gp309h_As{PcBK-+b!k%P+m?IXORGiy?q(kmF0`8;J~7z-7?~R!!5lzQN{{ z$}=iUh^J?W{e=BA_uTv``7^%cmlpO6MDu;1w}3UM%CEdp4!tr4_{-q9U2IpNNTLizv=ft6@+Y zv#8}(KMLOz<&CeCWiz)skt>H+^CAyQafW6={D_=2dY(6qA^_x#3tHYd?u|vtBGnP{ zp&4@(cBQKrz|1KbB}Scn+SCm3)`rFwHADQO$@BDT4!N9=Ec){%m8(-nc~#a@qIgCI zInNo-l^YJoVc`Q}@>KDu;H5>tS!F!P|4VRmm8~z{g z-xYJ;BMRdD{h*KIoIb3=4%KrOOcMcrsRW%Dv(`>Tf+maU>C{MwrZWv2 z_H@Y!o?asu0#6xFiT}3Hx$yT?nr@_ZsOOUAzq|N;;a8YLs$aAU*iVaRY@r>q)?Vt8 zwaN?)!Kxs=K>OU7n)_{v-9VY~>exAwb!VSk{G9MC#!1h&BVs=#Td=jb&8o+Uv?M-H z`dy^ugL81FVLpc=SKT9ebZIczP4-o#k9^Q7Ow7+(&{qc4UI{jTX$oVP#FV&o;S221 zK*C~41eA3^#{8q|NBQUd$_EZIhr_Sa2kp$0F-PPdKB&$S+7oLF71a^cfRDS2p(ew5 zEVSz}S7qczCW2paAziS%0w(3aT8?A_-mm?K@7l~|%-%eF^^1J^Fn>P=9W`+Lnz5>r zvc=;-+p-MoI@R3@U}6%4il*$Wlojywbk>q zYK|oM^fI&e^xEdvJ4> zkH#Kv$uHlOJT&p4`kLy74>h#bRoia8&U9!;LoeDtnu13*B@ddezur`y<)$=J6lHbBV`T<$K2$((tm&V~SPt^DvzATt3aVCNrGflb4^46+I|z(#!fC7}lS#IsnJ zd9-IBYLcMqU_&K_=JXOeRZ(@UUfhWcV8}8MIQbd4t6$Wwj8&$AA#B0lsd8|t?@*rp z^PeaF{AZLxWK?U^{4M!6{O?n%FdQbT!a&@oQrM5$o8>x-3smkCg&-27oq_>7i0wpP zJ#-e7S->*_dYH!A;#C&pAb__LqcP$_BQ##^y6hSYG+~1a9r@pCbp_?vs$;lqw@WQm&7=8WdE5_VWC`+&TSk*uozpd%-t*O2gK^wyjq^co$B~1 zDWr!&61UYQnGHtsPV5?CL>;Kna2~~xY_Qjs$61|@E$&7KUw~!vLUQRY% zQ)y{9tVWp9o}h3n9E(P@ot-iwO)4I!S~7FoR8s;}WYw9F7EZ^M=QRZUNsPSlK{3L- z+TZh^79;3F8p$d;;bkYNKcNgzl%4Rx6W|5C{m93q>N5Wy#L#FU6hq^`vtnq<=MY2t zgF3W@U#KIRfAnoc(P(Y`9W`$z_6I&L>V%8g7q zYdROZi%04}M-po6N8zjAsNoAz5yX{#GFl9)AyU0ww-W}Q9vxB<7Jsv@6X{nG2If9t z*z?AH>W9sbj=sqM2Y*Y~^?QXQ4}0Lk;B~(i=mljEy^`)2$#_A3A+12ly@S9(l?w?y zXb7lrp}jz8zeKJIpm##&{Qm;(`5#M%({Rt!BC#ZL~;zfxl$T5`c5ok zkhn4qW2&_rh%G)SDZUaPymYEq12V}@OYmx+)s7;5A$va52U*y+(^vjMrwz!)E0rweGH4z{6DA>LptWF z8Zl*S?}AHmbk08_9gsK5;#U{SJ0;Kjzh@VTF>E^=!o0dgh(CGjucA`-95C`7Sp(Mz;6D5YWEwilP+?QW{_3&Zc zy_$J3b@(&7`<9m2R9}q6S@|j(0}2E1QYpyn1=L%k*6Vqy$Be@Bw}_f9hJIL!yrxSX z2ho)YB!hkA&V3Pb%l* zD;O+63L>LlWD*g7U4FkEoCfRNp)t-5;BQTr9la*m6*%$ z9M&c0{@B;2^UQtma3)mhYF`En^`h?*`mx@qRy{hO$Mds@{!rs3M7dn}ixA^{$|0b8 z6@;g{9);70@{1C(^PrlO_!9Sm&x)kK(Ta?D_=-e37Q`|LxDdL*C@&GyfwN6|_xug; zuzfYgSq`dzb##XAATe!}7aE^me26F4QSg&m#B~5i&vy zTUFetI2mKni)g+B&O;mJs0mmwkjXygsR|4hdCVONQoCp)yE2tJ`^l%sEPfiDvKAM< z1fry|5uc$k5udROsJF%5L1{jN{6?7HIzl0$c!WaTUg$kKLScHra7IIKh)~P@m^TvS z<9b?u;A#G{vv)tmakwZfazX>q)11*e`JC}C;~DQ%{jfP5rmJ5`TRg_3^ec5Ad-Bll zes}nZxxLG;d`Wo`1I^+~;oN))IicSJ@A?eqU16&KLWNk7fEtXf&^C+qOWGN30`Lln-dJCg26}=%AK7{p#+SUIJ zEY6(~`Y~tx_#9M0;$?qU>sFCv3%>qA_`%jM`%#d50vZKnYCgud??>@c5@8UY!zOnE zxzs$>=GBESh+9)BWu59b+|J&$pBI& zsSVwde>fZH8gj+vgnLccrMcfi{y#3+IL#Le=%ZGgul8P~1P{FqU4pnGw46G;ln)A4 z)VAaYZee~iprJZS%AtaPGIf+a>LYisPgy5!oxhaOsjTzHt=71gJ$h8SV*ZA_^O?&A zw{XD50<+{ldmp<11aQ9csx6?``>o0!iLXe=`8olkCGAH;$MMF};sUAy?rtdaQtFq9 zN!1KNkT}x)hsWV(+q$2n8fvm!YxPxdt?BCim`(z-nZE6Xzu0IBo$LqR`aIC#+WDUofH1`<%iGKhd+Js*0(Te=Hq3*7_+Vaw9q__ZhK&rQ!i80Jr zD->60v`<9_6G>bq0(kbOp_rl-% zn%^FF0!N0Ev!>Ihb@^W9X$^Pi2*NC3(;BGiM}Zv-`8U>qc@Zx!sZl9nz^FbHl0Tw(>$pFOq1fs0Ag>d4AEwoUVf&t)dscHmwjQpw$3ZR8S>LMRf&A z7^y<9sI-W;4ni$REo70b!R*Uo%``))+={Tg_Ami&jPScm@*yN3S*{zKZin>?=MKdd2TKAkZ6 zGwwcAW--HBI%L$%TGI~17nbJ@f`|MgXCRaRs=-tytd|FXJ^+RYXUGTtOBo96?Z{sJ zhn<_5z}W$4hNtt>DyTErpo*{L@_c3jp2~8A=CF65AN(KY-U7OcWoZK)ch^mforDM$ z2<{}fyL*5DK@v!UySvN54({%DaCdiich}_A>;wo$?mc(Cf4%j>+SyHKX1b@ly1J^m z>Z=@?e>7}D+7VI(r3Vdnbetqh^eB_l0b;ge>rRUttfe3?BS# z4V<0K0$cG8W$X1kRvNS5pt52!aCZG(|K<2#Nr6SCDh1a~zv04FCOgo}&jyA@C<<(lflN=TtDh zVE>>$XM(lahDu6NBR^qnme4&Ti+$|>eV9`ZsVY}>tnw-IohqOI|LZ+c31va5I$RHk zB`C7k=PN~0$>nd}BUR?t9X6Z*%_kcW zhC4v2foZ-oqksws&Azpv}5`c~y_t3d^TCjoOE~jZ$0viqeEAREjS%g5t$c} z-UZev8ctyd6w)9=Bvu960-+Nx2Pc`}yHz%2e6t|nV@=TUPF_tEi-(b9!59NcJi+D; zkt=l_(>v0Xfw*h}fk6#(E{9OgKHu|j{^uLO&)VCoZ0X{WMG6yRPPKfPB) z?}|=d`X7=C2>ZW^NZ^4D1pFf(XPQC(mB_#SM;YpC-|zHXra(|QP_}9Mdiw*#|C!36 zHazklC9Ry!hyyhjES+}fefHx93kMGlaCu6 zeZ@I zrIN!<91N*Exw4040%gt5$7QJsNNg?87S2g-5Da*TM{Q1zdhB{>8Oy(CG!EnWdOkyT zfF;pc0VC3R;I?Dtcm@7oH~(*0kF%V@@3}Gr`{2BY6Y0G?hc`!skPz>*)04LR%T%TP zgHr~XGbt0;ADsAWPrR~YaR90FZ{wByJocl!Y4r|>p$*Oa?Si9ps6I69qe6xuA14^N z18RDLm0=4P*!$Sal$hEt@1U)<(3Z!};p6fobWLsYuXYXy>-RKC{;A1dm1BWPofLejW84er?AghLh2Oi>C?~oob zH32Uyc*s=-lDLF6&zLV`h7j-cAvJ53%9KB2V2GDH7}Jun>7}kZ5a7Y?LWLr$IHgcO zvWkBY@IufxAwDlV_&%3_ef>xZ-UJ_(4%S*R=!TQ(`uqQ2Q97ur4s2^a@COl4S^((t z?{5LJF~So_40u9=b2JaA=nO+ffyXPj;j=8)7?1}GbKs;?^gB2F>mx+;UpxVj2TPSi zk&5L@Rx4G_$)AubN0v-Mfqvk7qJotXhN%Qv!f}L7J4~KbY0fwSDx4=P4`g`z`$!c} zl$aA=E1~2sDd3uhm&}ndlb2s;&CpVrvlI%;lruyA3f!1p@%?{>vDB>Mgt5fNLVQcQ zvgp2G2TnUvrq9mG3GyjaD70vhQ!J8G7(A_ieA25*_3M=OM7NZxSr4LHmO*q2gua|` z2lffi+%ZeG>{${sd-DFEU=v6=8}RJ=u;IfQL?Muye(d`k#SL_*jszTB76^|eoqZqW z2RYtq;G|9=t--|y?yC!5B-#{?DoE7BFTdXj>7D!h54Zl<_W>^^FUVT~I{XT9_Wh#h zpG7M0M~5_-e-^81LT%b(NY=)n=BXW5JDmZ%2 zkSi#KA1cp5z7D*{_yyQ$8C019p`m%xRyY!YaL_5c59JBJ*b zshhZWIw#>02Rjx5n1jxCoLXltIadD4a47VK{_k;x$x7)jG6j-#W$JdSp zVk*DN2F{TG$Ne0G^!cA25E1eHUJQJ-`T%cYF@*i~8GvMl{c|4xwZ=J%jDnEJMs;gf zuUfIZ69?%?Qx17LKOVIpuO1>1X+{2DRe-;z*EIBt<@GqtJl9eQG{<-SAUqgm%h|mD z133qSDLlQImYh>$-W1Zd{CqR`EOf{l4K`3$hCo+Zf=*lh3$>^HqgPN6cg92bSW5Yc3SoX{c-W^n1w!B?3Q%ug%A+aAW00cg#^4Od$^fQG zgBQ?GPzl2}z_s(gf=cMnJuv6}(nY7ch0vp)CZk73Ku@oFzM#)3olWho6FZaK1Pe~y z<2m0<7h%DP`VR+aM~g{?`M@C-aF$%dg#`nk8`wQsBrC~b$+I;I?eFaGNkMpca({d^ zn9gk^b3~|fN{xU6iSw{15>y?KlK(cPR0?W%ir;2RV0B7)n{QyCFMPhFe&gW*zJ7s$ ze!c)XXczEWpb==)bDrVYnVghizzboA!hsj2^^8n9>mMBK4<9_c zrxj=ko>dOdlqv6_*8kfCr^W;mPX}rlu zcFzdB41oBcN!@UFa!&j#@Z?hER|&A)+72-wph-LH>lg1(%lQiiM~J`vp>Bi&l>){$ z{|rv70_tEfdT@*(b%u;4Ey*gm%U8)(Kn=v*MGe7-%oyO44m`*}Pk0G*+%9!(_(pi8 z@Daz29hj15O;?7)3{S!?2t3Y7!Y64#b7D^dY%`;~0Vf--9DRe#u zqFRMYbYR-Ll#%2SPWN|45_dxOQf0S$zKUKxe|Bt2q^^{&lGzzQ;D^bXlfA+3;J@?3 z6j1aOZu^5Dp8LsNfv3Z>`g@-BKk#(ORtTwRQWYSN{_~^!XP*9}u^){(_*lxdmj>)+puZb5(9+lPuK)>gB$^^1CV5WiLfT|1}+{wJ=WVrXF zW&2(YCLV_-ehmTD5LGq&Q%=BBAYTHZNk7cVC6v^$l;xc_M__)_D_?N2JV)}{qUzPS zFm7b<3IHt%1;5GM$r%AFS3!!EU*&WHrqsg&F{B9&6jRs<)3s9TfEqn~(fJF8RH+*Q zx~VLJ8<2tmiF;BX!QesTp6uG7G$viiTRb>hc|O3;FI}M{xkG&m__ID)P0Oc{({?Tx zyTs(#|DN~4Tsc(mx4idd8rJK1c42t-kpIF}X9Daf=Q`m>U1zxNmZwhq zn>y)7-3UAg@{&3C%0KGXVM*vb{5I4nKk7!{+2A^-&uW^wGEg@j>a>(PAfa1W0krdf zk(+dwy<7PjMPLPH&GO6<)(3d9`ajK)Bf0$T9ASOZOcIuq37*{x?*?EctN zQK`IHv*s<;5c}A#Uzaik(uahkFHpvr)c?b_L9%f8N1FHD)TK#6(f{7|9FVkqkuE9R zH6uv)u%rmA54Z)*f;G&8rpHk5UIqUwfBd)~ zW;)d>2#DQ(dw1Q4^xj@5667EN`+9|Vhx{s?IQTRFB%S;^dymrxfmz!xGFK*dknJh7 zEmH^nmpON29XyMkPWMY^gl7N#y%2~hG&F^%up~E_=hFes6%PE=;}r{HKm{N+IDLXW z9Y`B!d!S=8z&nB91?YkVP_pA60(49R9XmP;>=ur+yFH>X6seIve`ybBH?_S<{hIeos{Ie` z9mnT@Y-A!G*Bfx8scdTq*(P%lNn_RqjLBE+x4SZaq?XJy?v@`mM61Cs`Q?{;B{OIIi~&~)WU9WGes zFejjAICSYo#;s3}!YMxV-yzS8pnE|49^JCBqH*3oljg7Y!W*X2 zCtRN*RYNSMM^N_l0hY2j=}4nh%)sp|4NNXH&fpBZ)h=9FT#?t;X-m( zkKCvKd%miGB@XziPHG-{{1aaVC*C~3<3OO87}F#+cSMC!!R~PX;8GPL@c~`BbSVYd zG{KBsDuuWHpSAy!xBhH@Q}ZT`>-@X+Wr%44{_3P;`6vDgp_~7nzy9^&RQ~GYozCH} z=~ch~#$SKF$AWA$S2oJamtov_(!Ngnd;ue%`96Muul}XY}<_B_%T3=(O)K83Ha8iKc_I zLO~Us!U#yZ>f-~aEzY{cAxg(XqyMjY<<6KEvEO;6hZ=wIN>~SbQ``7IQCF=acJ*XUg?nEf8doK^)%{V@X9n7{*SzJU3Nw;R?{7k z0wtjN5556&k~{?Z?~MdF2yj2?%O9+t5TQ-L845x6fn#Tqgk25*d%vgm1#-gy*9U5l zsy;wpJ^?;JUw*znsmlQl{b%Y*Wp{r^R7vL(`y@tJu8RL1LB+h>GM;)8DTs|tEmMdK`(95Y;dqbKdIl`ayHm?75=1x<%+3!WAj4T% zN*TOBh@Gir5gAJ+rIsbcn>v_URuCWBFQp7O8BBO;83kbTH>qU|vFWv`WgOw@&Ys;8 zLc@@)@Nsrd7XBK5`lgn_=!{lRE#pWLv`uQ609?x>sbv!Bgr!R@Q%H8~SZbL@n&Ph1 zGJ|ONiqtZTl*5mvmU$!x;o#Xg?FvvHky;kf0K$oxaq1-`4>cyWtRVTQyD4RO$52ne z1zZE>lwdlwKVVY|qx+{`14(Y^#!i`GL8}g+3nImlIHWz&6_DFv0N0=ul8CqgQ7gOW z<3?&gO*GV$gWrirF}NxUu8Tzypspg^84DjbQU&VcKx~dintASzL^{HEE2xY2Tp8+l zZX&dkfD~|$@S&v`&lMe!rbrmv6^FEg+P}8)cXi*}&4?hyVKEWN@DlxHrLV;}ATE--{>ew`_ zSzNnpKW_P1a_)ua|FuKk8+SvTLn#;ntfs%kJ0Enx`S!eGV2f1_J=Y#RlI z|Nb=hpYCqe$GV4!Sp&r;gC)!(h2$+hU9}!F8JhySdiREbNDnxGQype zJWp*7SC;ZTH_<~NY2LC{bbLZgT&z1sSkCOZ3c3>$TSRqCjB6DWo9GVh6dsl@ELT|G ztht-#Zkn-RrRezP?ox5Fi3$IG1X5-z>z~H=*Y}6X%laQCD=o#xc)A_s83<=hG>6w} z=b7#{P!|V7F+Qq!bi1hdHtx6A7kdv~Rd@g3W?jfu_TE*}@0kQf!47!&I**0F7LY@0Z^%;6Vl*L7#a z`4{Hl1&J`_Kl#P?RgQdLfSo&c4r?8q*wnLFoptzs{WOPnrOeZJQgZ`-uQNA^&_`!! zI-D)#3TJ$pdEP$(emmsZ5yrxq)p#g7yv(__I#L!~SKW~Pr@iOepG542`m|4QM*7bS z$XOQ7Cxxs2UAy0V69qHi@L7j}H1*7j8+x3=G2Kw-v>OTNsZKc&II8D~$AfZ`&O#8%yu!NYlVR7*-vsEqyUHUUc{mVD`kI($;s!7WjojFd+kbbW7 zpKB|Hxqs(3p7r{7i!tqEJ-Y+&n@4MIs6&dy$F+f(i0;ras;x6wEu#`U#z(^+io?}$KU#A( zRcE74g!?*rHs%ygjudYj=QQ5TSCc#v}-6)EVZ3Rqe-INvwGnq$Gqw+m!j zFOc_rz!K>P+Oiw*2iZRm$$$g_>SqXSH5rjiplxP>EhY?TIy@g3TrmY&`jp z{IE6(0xDQxh~+DaM8KLU27^=rDGAhH8Yu&-xg7Ar3b2h=f)!B(R#Y`u<28_)uy$)B zb>KLo9_09H04T+c0K%mS5(O5lxyS%8nQcQRArFy3$S7nu@;kB^nFkiqVaR2qKQbQN zv?ydGSQm#NdywlWgUmpdAn!n$eviySmLrFd1IP+k)yIan1>kY~tH;Hxn}DD7aPW06@f!5v_QJDaq#4R-<_ z@fhiXbOULwJJJ*Bfowu%BfSBUw-3@6d5Szowtxc~2To=J3W&WK_+9 zW`)EM+0g80IPw{}faU;~(OeLxng`7bIaKna1t8O7A#l$tg4{;#pheLLG!iX_7Dr2< zCDBr7X|xPl7A=RChx74@$SPztS_!R;Rza(x)zIo_4YVd&3$2ZOLB1k)k$Y$zv@Ti? zt&cW98={TS#%L2X3T=uuLz|<~XbZF@+6s+9Tcd5zwrD%#4>T5yL))Vrko(93G#*Vr z6OjdIN3;{#8SR30MZ2Nh(H>||v=`bN?SuA3`=R~O0q8(<5IPtgf(}K8p~KM;=ty)F zIvO2=jz!0z5z?m209a+h0aFj zpmWiA=zMemx)5E2E=HFCMEEjvIe4_KL|37!(KYB=bRD`L-GFXHH=&!+Es#WOE4mHc zj_yErqPx)D=pJ-0x)0rt9zYMGhtR|55pXy;h8{;xpeNB&=xOu}dKNv0o<}dB7Xjn- zGI|BQie5vnqc_l-=q>a%dI!A=u08kB2k1le5&9T?f<8r`A=A+3=nM2E`U-uGz5##O zcj$Zc1NssDgnmZ9pkL8%XcC$X$GUKs3N{=9GTBn#3(J6O7Y7+p1n?S_Fd0)Y72+Cn z%)m^{!fecirNg{1Z@}dB#r&}J5C`v%1z>?#1}q3-BSWxIEF+c)G|MblRxAw52L7wz zSPm>FmJ7>`<-zh|`5>=w0jwZa2rG;g!HQxLSR_^qD~^@GN@At3(pVX+ELILHk5#|` zU=OQ|Rl%xa)gW_74Xh?s3#*OQ!Ri7)W__#ypiwu%8e>hcD6A>g3~P=>V=b_jSSu_B zYmK$R+G6dnSS$`}k9EM}u>>p;>xgy2I%8e1u2?s$JJtj1iS@#IV|}o`SU;>kHUJxl z4Z;RvL$IOPFl;zB0vm~q!bW3bu(8-UY&%*gR}Lwg6j*Ey5OKOR%NbGHf}v0$Yi#!d7Ezu(jAaY(2IC+lXz#He*|`Kd`OX zHf%e#1KWx1!ggbOu)WwmY(I7YJBS^^4r52Kqu4R*ICcU%iJihuV`s3l*g5Pxb^*JH zUBWJ7SFo$tHS9XF23d>UKsF#7k-gYWWF4{|*@xYNOkTSohW<9P6xom6!R})BK#$*n z-Nzna53xtcR_rnM1bd1-!=7U=u$R~?>^1fVdyBop-eVuIkJu;dGxi1hihaY9uw*zE zKmjBKP_N+J2k_{@Cyd28oW})Z1TNwdF5?R1G}3S#H*gcTa2t2w>2NRH8~4F|aX&mg z?#BJ`06Y-SfCu5hcnBVfXT&q%nei-mRy+*PhG)ma@f?t%C>Nd^&x1_H^WypN{CEMp zAYKU0o{Qi`@d!K;nTi)frXVly;&=(XBwh-ckBq}h<7M!&csaa0UIDL&OvfwXmGLTg zRlFKr9j}4c#B1TT@jA#tye=f$sgF0n8{&6hO--GYP_u>2T1NcGw5Pldxf*-|?;m7e4_(}W}ei}c6pT*DN=kW{p zMf?(e8NY&G#joMl@f-L}{1$#2zk}b!@8S3H2lzw$5&jr|fHHlh8ZK4iQm#9b7CmIk9iAF?Yq6ra2G$oo5&53BD1<{gd zMZ^%Ti8e%Aq8$-S#1ZX@4n#bWKqL|!iB3dkq6^WL=tguWdJsK{UPN!A57C$CNAxEK z5Ce%p#9(3wF_aia3@1hqBZ*POXkrX8mKaBjCngXRiAlt7#AIR$F_oA`OecOPW)L%p zS%51whnP#uBjyteh=s%=VllCVSV}A-mJ=(8mBcDyHL-?ROROW-6B~$)#3o`hv4!}9 z*h*|8wi7#uoy0C;H?fDOG};xciCxJq0jt`j$io5U^RHgSizOWY&w6Ay@o#3SM{@q~CvJR_bHFNl}KE8;cr z2H8x!CEgM5i4Vj_;uGyUNHdSrdF0ojmjL^dXykWpk)vKiT&j3!%< zEy-474B47&L$)Q`k+EbP*`Dk`#*+zTBH5AbM0O^-kX^}cWOuR$*^}%=_9pv~eaU`g ze{ujhkQ_t~CWnwi$zkMhas)Y&97T>M$B<*mapZV%0y&YKME*ujCZ~{7$!X+t@^^9u zIg^}4&L-!ObIEz+d~yM~kX%GACYO*)$z|knas|1PTt%)X*N|(;b>w<-1G$mhL~bUx zkbjU{$!+9zatFDS+(qst_mF$ZedK=f0C|u+L>?xOkVna5e)szueN>QHs5dQ^R?0o9OdL^Y4=#Zw7XBGr-VM0KXRP+h5RRClTe)syN)^``nzeW`v_ ze`)|VkQzh{riM^MsbSP`Y6LZs8byt!#!zFaanyKf0yUAEMEyohrlwF+scF=7>UU}e zHIte}&8Fs1bE$dMd};x;kXl47rj}4ksb$o1Y6Z2DT1Bm<)=+Dyb<}!l1GSObL~W+F zP=8QcscqDDY6rEG+C}ZA_E3ANebj#H0CkW$L>;D%P)Dg_)N$$rb&@(oouIQX_x<%cl?ofBBd(?gE0ril2L_MaSP*166)N|?u^^$r; zy{6t!Z>e|Gd+G!Ak@`e^roK>Lsc%#gl}sZv3W&luP0%EGVAC{1vouHZv_OlrM9Z{7 ztF%Vzv_YG+MccHCPDgvu-n0+xOZ(C3X*cap2hf3Z20DlirbFmZIwPHl&P->av(jO7 zHaa^UPUoO=(z)o|bRIe{osZ5>7oZE$h3LX`5xOWHK}XWX=;Cw2j;9moM7ks0iSA5yp}W%E=?oIch`_ldB z{`3HPAU%j4Ob?-l(!=QC^ay$+J&GPpkD*)3L26`jCiQY_a zq5q(_(%b0m^bUF_y^G#W@1gh7`{@1j0s0_)h(1gop^wtX=;QPW`XqgdK24vY&(i1U z^YjJ!B7KRzOkbg|(%0zg^bPtZeT%+L-=Xi)_vrid1NtHTh<;2zp`X&v=;!nc`X&8} zeoeoj-_q~s_w)z)BmIf~On;%j(%A#p-e_56O)>P!u$CR2;4&D3G)GWD4HOarDN(}-!zG-0Bcrc5)YITOva zU|KS*m>8xt(}rowv}0nKIHo<*fr)1lm_(){(~0TKbYZ$O-I(r752h#6i|NhuVfr%t znEuQFW*{?&8O#h}hBCvL;minTBr}Q`&5U8jGUJ%>%mij4Gl}_)naoUKrZUr*>CErU z3}z-Xi6xy)Q)t}@q{>&y-2CUc9q&D>$`GWVGK%md~j^N4xOJYk+P&zR@T3+5&B zih0evVcs(DnD@*F<|Ffo`OJJ_zB1pKBqo^!sBacyalqmyS&F3r%ngDGS)LVG5daru zR$*0EV|CVGA!QP4vo1Cr>&1GrKCCb6$EIi9tUnvT2C^C0AU2o{VME!BY$i4{n}yBF zhOyb$>})ujgU!k2Vso>3*t~2$Ha}Z{EyxyP3$sPoqHF{k$rfXavnAM)Y$>)hTZS#m zmSfAa71)YwCAKnKg{{g~W2>_@*qUrDwl-Ubt;^P9>$45mhHN9YG24WVVwiyH+C{Rg`LVyW2dvf zvoqM4>@0RRJBOXi&SU4Z3)qG1B6cymgk8!mW0$il*p=)mb~U?(UCXXx*RvbgjqE0N zGrNWTgWbw*W4E(A*q!Vyb~n3+-OKJ{_p=AsgX|&pFnfeO${u5nvnSY->?!s%dxkyB zo@39m7ubvJCH69Vg}usNW3RI}*qiJv_BMNmz02NX@3RlshwLNvG5dsl%06SCvoF|} z>?`&)`-XkXzGL6BAJ~uVC-yV@h5gEYW0Tlq4&hJ^<8W~30&qr-<`|CUIF9E8PJ|Qz zGN*7Vr*S%Ga3*JQHs|8fabBD^=fnAOeq4Ia&G~ZyTp*W$3*v&g5H6I<$YtU(b6L2o zTo{*)%g%*!Ik=o$E-p8hhs(?5`n zxfWbYt`!%up6ow+VtSFRh^o$JB%N*8^8_Z262PAA>2@I7&n|7!Hwibaih60+*ocLH=dioP2?tVzj2efDcn?U8aJK$ zotweU(v7kGUt@Q|=k}oO{8& z7f_&`1bAH)aqA$%yGkXMv3wlgp6|fN^9g(+-;wXccjmkBUHNW&cfJSTlkdg%=KJt{ z`F?zVegHp^AH)ylhwwxBVf=7@1V54=#gFF4@MHOL{CIu>Karor|He<|r|?txY5a8l zcYX#xlb^-U=I8Kp`FZ?&egVIbU&Jrwm+(vZW&Cn}1;3JC#jobq@N4;X{Ca)^zmea> zZ|1k~fACxRZTxnA2fvfw#qZ|#@O$}v{C@rbe~>@KALftnNBLv?asC8w7>|gzzMt{2%;cC zSfC=Pf+pyKA((5$X!{g!)1Qp`p-7Xe=}lqJ*YGGoiT< zEwm6?3ax|~00(U&v=!P3u|k~CUg#ji3kgD^&{60lbQZb@U4?E!ccF*SQ|Kl17WxQ% zg?>VRVSq4D7$gi9h6qE2VZv}>gfLPVC5#rv2xEnD!gyhVFj1H!{3c8mrU+AoX~J~j zcVUJwQp7Ul?Zg?Yk!VS%tvSR^bKmIzCQWx{e{g|JdsC9D?K2y2CP!g^tYuu<3~ zY!%Ar;ev2cxFlQ_t_W9!Yr=KmhHz83CEOP72zP~h!hPX^@KAUpJQkh^Plac~bK!;X zQg|i27TySNg?GYx;e+r|_#}K5z6f81Z$grg43R*nh>5sJh@?n~G$cA=MNZ^JK@>$v zlto2UMNQO2Lo`K8v_+SgPV^GJMIX^u^b^yIZqZ*15Cg>wVvrathKQkJMlq9^StRhwwtBKXc8e&bcmRMV?Bi0q`iS@+>VneZ!*jQ{LMu|i8{$pzmUvsdBiP#Sh{~@ss#j{33o8zllj=G6brj5+>miA(0X#(GmkF+nmHpf+R|k zB!lCnDrw+%X-KAINw(yY(n(&Dx8x)FN`6v$$u0Ry0aBopK?;(Br4T7p$|z-$GD}&c ztWubiP0B8XOF5*RQZ6aClt;=d<&*MD1*C#fA*rxbL@FvpNRd)8skl@^Dk+tcN=s#= zvQjyzyi`G|C{>awOI4(*QZ=c%R70vM)skvUb)>pdJ*mFbKx!y8k{U}*q$sJW)J$qF zMN2KDmQpJzMrtj!k=jb_q*y6VYAM8Y-dP{wz zzEVG_zcfG^C=HSZOGBig(lBYbG(s9Fjgm%7W2CXtIBC2zL7FH{l75pWOH-t&(llwh z^t&`enkmhaW=nIVxzapozO+DEC@qo}OG~7s(lTkev_e`bt&&ztYoxW(I%&PMLE0#7 zk~T|Qq(7vs(l%+kv_sk{?UHs&d!)V6K54&nKsqQLk`7Bpq@&U?>9}-4Iw_r!PD^K` zv(h=~ymUdjC|!~+OIM_;(lzP2bVIr+-I8ugcci=0J?XymKzb-Wk{(M>q^Hs|>ACbm zdMUk0~e2TlSHCWj{H+?3VrI069?3AP338a)=x%XOuI^ndK~U zRyj=0CTEw!oIGBhAWxJh$-l{yxPz9HX~Z^^giJMvxmo_t?^AU~8J$&ckH@>BVl{9Jw^ zzm#9eujM!LTlt;*Uj86|lt0Oza3zP5Q^}>|R`Mu$m3&HmrGQdUDWnuuiYP^u2qjV}rW997C?%CrN@=Bx zQdTLalvgS!6_rX#Wu=NzRjH;_S86CVm0C(|rH)cpsi)Le8Ym5wMoMF)i4vtWRhlWy zm1w1f(o$)q#3-$mHcDHiof50WDeaXGO1zSwBq|-1PD*E`i_%r;rgT?&C_R;4N^hl) z(pTxH^j8Kb1C>F_U}cChR2ilWS4Jo!l~KxQWsEXb8K;a_CMXk?Ny=}^WMzsnRhgzt zSAJJ!C^MB=%4}thGFO?W%vTmD3zbF6Vr7Z4R9U7hS5_!1l~u}WWsR~{S*NU5HYgjF zP0D6vi}HuERoSL&S9T~nm0ikiWskB~*{AGR4k!neL&{<0h;mdprW{vJC?}Ou%4y|{ za#lH~oL4R=7nMuOW#x);Rk@~IS8gabm0QYf<&JV!xu@J$9w-l$N6KU6iSkr=raV_( zC@+;)%4_9~@>Y4LyjMObAC*taXXT6XRr#hQDak6h1gn^et4m|9#dp_WujsioC2 zYFV|MT3)T7R#YpgmDMV0RkfO0U9F+kRBNfV)jDcjwVqmEZJ;((8>x-eCTf)0RBfg< zSEJPyYD=}18l$#W+o)~Tc518|r?yu+sPSrony7YEJE@)3E^1e`o7!FNq4rdJslC-c zYG1XV+Fu=@4paxJgViDGP<5C(Tpgi~R7a_!)iLT=b(}h0ouE!sC#k=wlhrBeRCSs< zUHx61q0Urisk7BN>Rff6I$vF&E>st(i`6CSQgxZSTwS5AR9C61)ivr`b)C9i-Jot% zH>sP|E$ScYR&|@YUEQJXRClSn)jjH7b)ULlJ)j;`52=UMBkEE0n0j12p`KJvsi)O5 z>RI)idS1PtUQ{osm(?rkRrQ*BUA>{+RBx%b)jR54^`3fPeV{&6AE}SkC+bu6nfhFP zp}tgKsjt;H>Ra`l`d6R(=|ggHA}NKmzGZR(!4bv%~$i&(ra$bUkiW~uNkx;Em#ZDLbZ%qCM~m; zMa!y%Y1y>wTDX=&%ccVw2E3Kt+G}{tEyGgs%tg0np!QbwpK^0tJTx$YYnu9S|hEo)$V{hHE3Vk=iJ2v^GW?tBupfYZJ7I+9d5aZL&5+o2pII zrfa`zGqjo7EN!+nN1Ln7)8=anw1wItZLzjQTdFP7mTN1tmD(z8wYElEtF6=4Ya6tU z+9qwYwnh6x+p2BTwre}Io!TyKx3)*ytL@YFYX`K0+9B<*c0@a>9n+3$C$y8=Debg& zMmwvW)6Q!bw2Rs$?Xq@7yQ*E&u4^~6o7yeywsuFmtKHM?YY()C+9U0;_C$NCJ=30R zFSM81EA6%RMtiHh)81K7@lC)&VT!reGj_ZU@>Xc6FjLzzu&g+6M zLYfm9GOek)rt7+)o4Tdjx(fmpy>xHgNB7nJ^z^!0_tyjTKs|#VqzCIEdZ?aJ&!lJ8 zv*=m%Fg=@|T@TlD=sERVdTu?Bo>$MO=hqA91@%IDVZDf6RFBXj^2dQ-ib z-dvB?Tj(wIR(g!yT5qGb)!XT@dYs-~@1V!)33{U5QSYR8*1PCk^=^81y@%dY@1^(F z`{;f3etLg>fId(kqz~4I=tK2k`fz=OK2jg0kJiWNWA$%=je0wdHQ^Pfxb{*q%YQ&=u7ow`f`1RzEWSMuh!S-YxQ;ddVPbw zQQxF**0<_)he!^mmmGIASvjJ!rZBfn9=C}KhG=hDIZ!vC+hcGMXCA zjOIqP(ZXnHv@&9h)CF8Pj#kgu*Gp-vqjGM+SO2C*!m6#rSG`Gm?yC6ERT}GjWqJNs}^ZlQCJ7GkH@m zMN@(ZTE$dN&D2f9G)>F2O_!O@^fJ8xY{l2~Gt--H)87m*1I-L(kQr=-n4xAyGn1Lw z%wlFW!^~`Eb~D_}VdgY*nYqn8W?nO&ncpm67BmZ)h0P*nQ8U7fG>e(V%@Srwvy@rd zEMt~6%bDfP3T8#Kl3CfTVpcV)nbpl2W=*q}S=+2*)-~&y_00xmL$i_D*lc1(nN7`R zW^*&zY+<%ETbVItYqO2n)@*0SnsH`(vx6CLCYXt4N3)aJ+3aF=HM^PJ%^qe?vzOW1 z>|^#d`t+kU7{KVh%NjnZwNy=16mtIocd!jy1=bpE>Voo)u znbXbR%^BuQbCx;VoMX;4=b7`(1?EC?k-6AhVlFk8naj-;=1Oywx!PP~t~J-0>&*@3 zMst(7+1z6OVQw|IncK}B=1y~$x!c@h?lt$B`^^L9LGzG#*gRq$HIJFc%@gKH^OSko zJY$|U&za}V3+6@hl6l#@VqP_`nb*x5=1udKdE2~W-Zk%;_ss|9L-UdO*nDC>HJ_Q! z%@^iN^OgD9d}F>f-2pq0T2vVyG;E7ZzpWwJ6` zS*)y9n3c`SZiQPptejRZE4P)$%4_Ab@>>P0f>t4`uvNq=YDHL)Rxzu%Rl+K1m9k1( zWvsGRIjg)?!K!FgvMO6utg2QutGZRgs%h1-YFl-zx>h}_zSY2LXf?7LTTQGetEtt@ zYHmeaEv%MSD=WroZMCu5TJ5Y@E6!?fb+F>C1S`?%XmzqWTV1TKRyV7=)x+v(^|E?f zeXPD#KdZkrz#3=`vIbj2tfAI0Yq&MS8flHPMq6X7vDP?iyfwj^Xic(yvnE?ptf|&C zYr6HjHN%=|&9Y`&bF8`6JZrwSz*=Z6vKCuQtfkg6Yq_<;T4}AaR$FVVwbnXoy|uyG zXl=4KTU)F@tgY5IYrD0>+G*{wc3XR_z1BW!zjeSmXdSW+TSu&;)-mh2b;3Gnow80_ zXRNc$-Krx@q0AZd-S(yVgDHzV*O*Xg#tXTTiT~)-&t5 z^}>2-y|P|gZ>+c0JL|pm!TM-@vOZg1tgqHLE6GZ>5gWBJ8@CCYv?-gm8Jo2^o3{m9 zv?W`H)P}09**bu+nYLxyw#!aud)eN$kL_#w+39V!?QaLzfp!Kv$PTtc>`*(SoypE@ zXR))|VRkksu5H(`>)Q3~`gQ}mq20)CY&Wr^?51`z zySW{0x3F8eab#< zpRv!{=j`+L1^c3X$-Zn~v9H?K?CbUo`=))%zHQ&J@7nk5`}PC-q5a5yY(KG|+RyCg z_6z%^{mOoAzp>xi@9g*X2m7P_$^LAAvA^2i>?Awcg}6``=E7Zsi*!*g+Qqn77w6(# zf=hHsF4?8HRF~$`U53kaSuWe(yAcNK6IbQN+Hb`^0Ibw#)$UBz6* zT_s#4UH=bVUl|xju5`N_aG0r?nPOgg&dQg3+0n`v` z1T}`5Kuw`$P;;mS)Dmh1MM15hXeb7Xh1x)Ep>|Ll)E?>p#X|{DB9sIrLmi2VB z(xFaJXQ&I*73v0chk8IgpIe0Q20#O$LC|1m2s9KL1`UTsKqH}1&}e83 zG!_~MjfW;c6QN1aWM~RB6`BT3hh{)Cp;^#uXbvx=nixjx(D5d z9zYMFN6=&F3G@_t20e#fKrf+J&}--o^cH#ty@x(PAE8gsXXp#`75WB!hkigmpq=Y(^?x#2u;UN|3|A1(kFgbTri;UaKRxEKt zaAUX$+!SsGH-}rmE#X#h6xeu z0sIht1V4tKz)#_4@N@VD{1SczzlPtyZ{c_Fd-wzV5&i^!hQGjH;cxJF_y_zG{ssSq z{DJ(5WI{3{S&*zq5Rwhaj^sdcBDs*k0IkYL1*gdm}ajf5e^krGHr zq!dybDT9EaHIkffkYw|kxEEqqzY0MsfJWXY9KX{T1aiA4pJAXhtx+JAPtd5 zNMoc4(iCZiG)Gz>Es<786w(@rMq-dyqz%#*X@|ri?U4>hJd%JUB1uRx(h*5PQjs(y z9qEL0M!Fzfk#0zLqzBRy>4o%0`XGIgen@|005T96gbYT8AVZO1$Z%u?G7=euj7G*F zW07&lcw_=H5t)QcMy4QBk!i?uWCk)5nT5~0CEsHgd9eW zAV-m7$Z_NZauPX(oJP(dXOVNrdE^3e5xIn1My?=Nk!#3xBbRoJ3U5qY4m!iwi<>(4@ zCAtb-jjlo0qU+H0=mvBnx(VHkZb7%A+tBUk4s<8F3*C+GLHDBj(EaEE^dNc&J&Ybf zkD|xW`%Yo&@a$&i#JXl^VAC@00fEC0FVTG|GSW&DP24OIUU?_%R zI7VP3Mq#w`CpuW?#y1`lFcFh58B;J7(=Z(~FcY&d59Y;uSTN?tLaxiXbsaP78 zj&;I1V_mSWSU0RY)&uK_^}>2%eXzb*Kde7C02_!6!UkhQu%Xy6Y&bRo8;Om=Mq^{J zvDi3lJT?KFh)u#KV^grH*feZ9HUpc9&BA75bFjJCJZwI;09%MH!WLsou%*~CY&o_9 zTZyg0R%2_hwb(jrJ+=Ych;70)V_UGT*fwlCwgcOV?ZS3rd$7IOK5RdB06T~s!VY6c zu%p;9>^OD;JBgjbPGe`Vv)DQ8Jaz%Qh+V=iV^^@N*fs1rb_2VK-NJ5Tcd)zIJ?uXA z0DFi%!X9H!u&3BF>^b%Vdx^cmUSn^tx7a)EJ@x_nh<(C7V_&eZ*f;Du_5=Hg{lflo z?sWJQ&xB{jv*20rAUqqM9nXR1#B<@f@jQ55JRhFl`BQHN@j`fEya-+tFNQ-nj3YRT zV>pfzIEhm@jWallb2yI+xQI)*j4QZ`Yq*XZxQSc12lwJWJQ(-mA$TZm<6(GlyaZkn zFNK%J%iv}4a(H<>9It>!;E{Mmyb@j+uYy;_tKrr08hA~-7G4{#gV)9D;q~zbctgAq z-WYF!H^rOb&G8m^OS}~xg}26|@fbW7Z-ckR+u?C|d%Oc4k0;=XcoLqBcf?chR6Gq& z$2;Mj@h*5*yc^yf?}7Kkd*QwDK6qceAKo7yfDgn6;e+uZ_)vTpJ{%u`kHkmeqwz8L zSbQ8l9-n|u#3$jC@hSLJd>TF-pMlTBXW_H)Irvfsz8qhH zuf$j3tMN7XT6`V89^Zg(#5dua@h$jPd>g(U-+}MMcj3G7J@{UHAHE+yfFHyU;fL`f z_)+{AejGo6pTtk$r|~oRS^OM+9>0KJ#4q8O@hkXM{2G28zk%PxZ{fG`JNRAv9)2Hx zfIq|^;g9hr_*48D{v3aSzrj(3WFj&XS%|De5Rr|@PUIkR61j-nL>?k9k&nnv6d(!`g^0pL5uzwjjDQH3KnRq; z2%I1YlAs8hUg{VqYBdQZMh?+z#qBc>7s7ur%>Jtr!hD0Nx zG0}u*N;D&y6D^3AL@OeSXiY>DF+?oUhGiG! zbRs$vU5KtkH=;YygXl^0B6<^jh`vNWqCYW!7)T5v1`|Vwp~Ns^I5C14NsJ;!6Jv<6 z#5iI+F@cy!Od=)|Q;4a=G-5h2gP2LoB4!hFh`Gc(Vm`5eSV$})786T|rNlB~IkAFR zNvtAP6KjaI#5!U|W@qzeAd?G#*Ux=^7H{v_-gZN4OBK{)( zApayYk(tRXWL7eW%tmG>bC5a7Tx4!C51E(DN9HFBkOj#?WMQ%hS(GeBLL^KgBuZi= zP7)+ZQY1|>BujE6PYR?+N~BCGq)KX}P8y_1TBL{cl0Gt+^phcEC~1>nWO1?tS&}S8 zmL|)PWyx}6c`}@=Kt_;}WJR(PS(&UtRwb*E)yW!UO|lkQo2*0DCF_y($p&OYvJu&s zY(h3An~}}Q7Gz7Z6&XdgCZow1GL~#Zwk6wykcngxnM`&hQ^-^@jZ7yy zk)6pdWLL5q*`4e`_9T0ey~#dgU$P(BpBz9ABnOd$$sy!Wau_+B96^pGN0Fn+G2~cs z966qxKu#nlk(0?OcpIksLBo~p3$tC1cav8atTtTiR zSCOm9HRM`y9l4&|KyD;Ak(Uy-lLH{@IL9r>R8Kz<}Yk)O#g~qe^Gx> ze^QyK%v2UCD-}d#qq0*usGL+TDmRsf%1h;=@>2za@@Fja&qN)@9Z3U>YkAxdEs zP7xGIQ4~!v6iaawPYIMrNt8?}luBuoP8pO*S(JzJQa&n}@>3yHC}mS&RB@^VRgx-2 zm8Qy2WvOyhc`BT$Kt)iIR7I*1Rhg8bYq1saIs5q)U)q#qq5~xHfiAttAQYlm_l}4pg zov6-K7pg1Ojp|PIpn6ihsNPf`sxQ@#>Q4=z22z8l!PF3HC^d{4PK}^OQlqHR)EH_k zHI5ojO`s-Hlc>qm6ly9pjhar)pk`9DsM*vUYA!X8noljD7E+6-#ncjNDYcARPOYF; zQmd%d)Ea6nwT@a(ZJ;(%o2bpy7HTWCjoMD_pmtKbsNK{aYA>~q+D{#z4pN7x!_*P# zD0PfFPMx4mQm3fX)EVk5b&fhuU7#*fm#E9s73wN=jk-?Vpl(vPsN2*X>MnJUx=%fz z9#W5}$J7(*DfNtcPQ9RBQm?4j)Enw8^^ST^eV{&4pQz8&7wRkZjrvagpng)nsK4kx z=s)R9bY?mWos|xvv(ee<9CS`P7oD5VL+7RQ(fR2DbV0fhUD&y1p(tI9hG>{ZXq3ii zoF-_Jrf8aGXqM(^o)&14mS~w)XqDDzoi=EbwrCISrG0cT?WaTNP}-)$=;Cw56nEx-wmbu1Z&{m9O-Iu)bS&M5ZcDeLa-26g@_ zAI=aA$xsZuI}!c=9dG1ZwGOiiX1Q=6&7)Me^1^_d1tL#7ea zm}$Z^WtuU~nHEe-rWF&#v}U527$%l!!?b1EF>y?LrUMhtBru6g5|hkyWKx(^CXGpF zIx(G@E=*UZ8`GWX!SrN$F};~SOkbuS)1Mi@3}gl|gP9@BP-Yl2oEgE4WJWQgnK8^* zW*jq~nZQhBCNYzlDa=%68Z(`l!OUc4F|(OD%v@$3GoM+&EMyijiW*xJh*}!aMHZhx-EzDMC8?&9+!R%yqF}s;P%wA?6v!6M@9ApkLhnXYH zQRWzPoH@aqWKJ=snKR5;<{WdLxxidxE-{yxE6i2q8grew!Q5nSF}ImJ%w6UlbDw#@ zJY*g*kC`XTQ|1}-oO!{#WL`0^nK#T^<{k5%`M`W+J~5w}FU(iw8}ps{!Te-?F@Ldt zuz#|d*vxDeHY*#%W@EFnIoOMDVAm#mSs7XX9ZSdC01q?R%JC-XARb5E!M+&SsxqB`q>aRl(pF~wm4gYEyTC_RCR>ZG&DLS-vh~>dYy-9-+lXz< zHes8x&DiE_3$`WOij87hv(an}8_Tv~+p_K0IJQ08fsJPq*hDsoO=df?DQqg6#-_8K z*v@Phwkz9>?auaKd$PUQ-fSPXFWZmp&kkS*vV+*c>=1S+JB%I9j$lW!qu9~x7 zjvdcVU?;MZ*vae^b}BoKozBi+XR@={+3Xy4E<2B%&n{pWvWwWo>=Je=E`T zdyGBKo?uV1r`Xf%8TKrDjy=y_U@x+l*vsq{_9}agz0TfXZ?d=8+w2|oE_;u?&pu!u zvX9uu>=X7W`;2|gzF=Rnuh`e@8}=>xj(yL5U_Y{-*w5@2_AC31{m%Yif3m;WzqmiR zKeXTuv?*mz&GO<>m5m`MCmIL9P&2m@C2+<%)3-2XhFAIv2d- z9Kn$s#nBwYvCh>`JST7>Cvh^Ta4M&9I%jYuXK^0R%lWuq&d-H#p`6WyamBe3TuH7J zSDGusmF3ED<+*UK0vEwWauvBsTxG5bSCy;ARp)AOHMv?`ZLSVim#fFs=NfPgxkg-L zt_jzaYsNL_T5v77R$LUTz9Sq*OTkT_2&9;eYt*Ie{KLbkQ>Ae=7w-XxnbOJZUi@y8^w+0#&Bb~ zaol)r0ymMH#7*X=a8tQy+;naRHH+4fuw9Bfc@; zgm20>_?CPtK8kP6NAod!EZ>H2%eUj>`1X7UKAunD6Zs@QneWJ_@Tq(npU!vU zJM&%mu6#GXJKuxv$@k)W^L_Zfd_TTFKY$;|58?;&L-?WmFn%~cf*;9`;z#pi__6#r zemp;cpU6+*C-YPIsr)p4IzNM-$zkpxJFX9*TOZcVyGJZL~f?vt6 z;#c!)__h2xem%c|-^g#`H}hNgt^78AJHLb9$?xKK^LzNc{62m^e}F&8AL0-5NBE=s zG5$Dzfu{ycwyzsO(WFY{OUtNbIfYz8ZXu75SI8&i7YaCkUbc`>SSTVC6^aRv01JqK3YdTk zgg^?EKnsk(3Y@?Tf*=Z#APb713Ywq`hF}Vo;1RrnPY4$LLWmG5*g}|4Tqq%w6iNxD zg)%}}p`1`&2p1{{5kjO;QK%$T7ODtUg=#`|p@vXXs3p`E>Iij(dP04nfzVKBBs3P9 z2u+1%LUW;o&{Ak6LRqL3sc3mt_NAyr5d(uGb! zXQ7MGRp=&k7kUUig|zcvrez#Y9MiMZ~!k0TXeN z5J`~|X^|0GkrR1Q5JgcEWl<4TQ4@915KYk%J)&3iiNT^@3=u;`TMQG6izUR8Vkxn- zSVk->mJ`d1;bH|bLW~qEij~C5VimEfSWT=h)(~rowZz(D9kH%hPpmIC5F3h(#KvM1 zv8mWhY%aDCTZ*m3D6zE|EyjqkVjHoo*iMWS+lw8My#Npxyailm(94(F!$BN^` z@!|w=qBu#MEKU)piqpjD;tX-7I7^%@&JpK|^The$0&$_ZNL(x~5toX~#O2}&aizFQ zTrI8<*NW@J_2LF`qqs@jEN&6Eird8P;tp}AxJ%qE?h*Hj`^5d?0r8-CNIWba5s!+; z#N*-#@uYZ4JT0CP&x+^7^Wp{ZqIgNXEM5_>ir2*J;tlbpcuTx3-VyJL_r&|+1M#8w zNPH|l5ub|B#OLA*@um1md@a5a--_?V_u>cfqxebuEPfHcir>WV;t%ns_)Gjt`a}9t z$|Pl$vPfB_ASs)aUCJTllyXVAr94tzDW8;IDj*e<3Q2{fB2rPQm;_0%gh;4_NzNU& z5-CvF>7;Z@IxU@%&PwN`^U?+BqI5~REM1YVO4p?8(hcdRbW6G|-I4A}_oVyM1L>jk zNO~+ik)BG=r03EL>812adM&+?-b(MJ_tFRHqx4DoEPau_O5ddK(hupU^h-ZIggxI&L`)W3&;iKLULibh+I@ICPOkTBQh#uGAFxs@Cxx0a*j7&%sMBe#{?$#HUfxq}=pC&-C%lAJ7elvCtXIZaNNJIS5p zE^=47o7`RQA@`Jf$-U)1a$mWh++Q9b50nSVgXJOePeAWj5$+zV@@?H6!d|!SbKa?NI zkL4%wQ~8~YPRI!yXrMOZ;DXElFN-JfQ zvPwCnyb`WdP$HB_rJ_Piizrcz6(t<+KKD)p55N&}^#(nx8nG*Ox= z&6MU!3#FyfN{LchE73}f605XP+A8goIHkSPL5Wuqltd*-Nme>4DN3r6rlc#Kl+H>Q zrK{3S>8|updMdq?-bx>(uhLKHuMAKIDua~4$`EC!GE5n+j8H}@qmek#sY^Xeb!pK2yG zvzkTCss^dq)a+^wHK&?O&8_B9^Q!sO{AvNUpjt>RtQJv=s>M`Dg;hjFRZPWILM2s7 zrBy~{RZitqK^0X=l~qMmRZZ1ZLp4=P^{8Ierv|HjHAD?nZ8c0Su9i?ss-@J@Y8kbx zT23vmhN~6S2sKizs8&)dt5wvhYBjaGT0^a=)>3P$b=10QJ+;2tKy9ctQX8vH)TU}P zwYl0tZK<|Wqtw=Fv>Kzvs%_M^YCAPfZLfAv1rpnv)V=N zs&-Smt3A}7YA?07+DGlH_EY<-1Jr@)Aa$@hL>;OQQ-`Y~)RF2ab+kH09jlI0$Ey?6 ziRvVEvN}bbs!mgMV7(I!B$W&Qs^B3)F?`B6YF4L|v*bQMnJ+x<}os?o;=x2h@Y=A@#6&L_Mk=Q;(}B z)RXEd^|X3MJ*%Em&#M>Ii|QryvU)|ms$NsCt2fk}>MixQdPlvh-c#?Z57dY1BlWTR zM1870Q=h9Z)R*cj^|ks&eXG7x->VM!*#?GNowEt8g6 z%c5n~g0yT}b}fgNQ_H30*79h1wR~EBt$jwF+8<7O7R#DruFqDq2;onpRz_q1DuCX|=UFT3xN4R$ptNHPjkujkP9PQ>~fS zTx+4V)LLm#T5By@i_v1WHd!Nkl zx@q0D9$HVWm)2YBqxIGLY5lbU+CXiPHdq^?4b_He!?h9GNNtohS{tK{)y8S#wF%lp zZIU)wo1#tCrfJi)8QM&3mNr|Pqs`UkY4f!O+CpuSwpd%DE!CE3%e58SN^O<4T3e&7 z)z)e2wGG-vZIiZH+oEmNwrSh79okN9m$qBmqwUr9Y5TPU+ClA*c33;29o3F$$F&pM zN$r$&T05hi)y`?>wF}xs?UHs`yP{pyu4&h`8`@3nmUdgaqutf+Y4^1U+C%M;_E>wO zJ=LCR&$SoYOYN2RT6?3t)!u3EwGY}y?UVLd`=Wi-zG>gJAKFjtm-d(bhyJIYNzbfj z(X;A7dNw_~opZ(~IjR^pbihy|i9NFRPc+ z%j@BK1wBHK)GO+h^vZe_y{cYKuddh7YwET1+Ik(mu3k^CuQ$*e>W%cqdK0~=-b`<< zx6oVat@J3pwH~d<=&^bmy{+C(kJH=h9rSoTK~L0^^kluGo}#DfX?nWeN$;$8(Yxy1 z^zM2Oy{Fzw@2&UI`|ADl{`vrYpgu?+tPjzL>cjNm`UribK1v_0kI~2KdW-y`U-uezDi%MuhG}) z>-6>d27RNxN#Cq*(YNZ`^zHf%eW$)l->vV__v-uf{rUm@pnga{tRK;j>c{ls`U(A{ zeo8;BpV80i=k)XX1^uFaNx!UL(XZ;)^y~T!{ic3PzpdZV@9OvT`}za@q5epJtUuA8 z>d*A&`V0M~{z`wXztP|7@AUWj2mPb|N&l>W(ZA~7^zZr){ips*|I7Hp_|wQ_WHz!G zS&bkgn~~kfVdOM&8M%!-MqVSIk>4m_6f_DMg^eOcQKOgv8L)vEsDT-{K^UY#8MMI| ztic()AsC_|8M2`ms-YRWVHl=iIe%>4YxtatApAy%5$aqC5oQ!ON*E=LQbuW`j8WDo zXOuU>jS5DD5ouI3DjAiHDn?bKno-@TVbnBg8MTc%MqQ(xQQv4_G&C9+jg2NoQ=^&D z+-PC6G+G%^Mr$M5h%sV~Hbz^coe^iWH#!*cMuL%OBpJy@MS+8ASuHO3j^jS0p? zW0Eo1m|{#drWw|W0SGj*kWuowi(-v9mY;$m$BQ}W9&8d8T*X`#zEtdao9Lw95s#^$Bh%l zN#m4p+BjpJHO?95jSI#_pENhlC z%bVe51vA2oG%K2w%*tjJv#MFmtZvpYYnrvp+GZWIu368lZ#FO+nvKlHW)rii+01Ni zwlG_ot;{I1wHa;3n6YLXv#r_Aj5FJt9n5$$!Avxh%w)5pnPR4zX=b|F$?R-)F}s@G z%}~cj`&*4$26Lmi$=qyiF}IrA%+->eL_nQ06{pJDlpn1qVY#uR>n#auJ<_Ytp zdCEL(o-xmw=gjlw1@oeL$-Hb{F|V4}%l1QLC5*S+IpzsD)X$MOdUoS+vDi zti@TpC0L>*S+b>As-;=FWmu+VSsv%IALn)$%Ws8Pp_XlhS;egqR!OUrRoW_Jm9@%Q z<*jh5f)!y!S{1EIR%NS-Rn@9yRkvzbHLY4!ZL5w|*Q#gLw;EUttwvU3tBKXrYGyUJ zT39WuR#ueN+KRSftXQj!)z)ff#aZpG4pzLCU?o~fRSY54d zR(Gq1)zj)_^|tz0eXV|0e`|m>&>Cb7wuV?ktzp)1YlJn@8fA^P##m#man^Wif;G{a zWKFiFSW~TO)^uxzHPf19&9>%PbFF#Sd~1QV&{||Iww72+t!377YlXGaT4k-a)>vz; zb=G=ogSFAxWNo&#SX-@a)^=-$wbR;V?Y8zx6aE zI%S=<&RA!ybJlt5f_2flWL>tdSXZrU)^+QKbxK2wdS$(~-dJy~ch-CBgZ0t+WPP^2SYNGg)_3cN_0#%g{pIGWA$>quI$>YiE$>+)MDc~vSDdZ{aDdH*WDdvGZum|y=9?XM#2oLFT z?r!uj9@fKoc#q%_J(5TEC?3_Ld32BAF+G;Y8a?cBbH@Jtm@NV{ zBi5Bc5pIpK0gj!J|;FOE+Dd12JMdn?XT>%KhEv2%Alojpu?*CQ)907|2(^`@Pz;wn!7{W zl-StB_^8B~xagp2QPJsXu|e?x0bVH&WOz_DSNZsW$WqPGEK9ueBdCV^RpP(C3UO&FDo@hCQ$clHh2M6SC3bV;t%f1X`kL%<+~_=4)W zAEyOGmU$UXP~X)cJs`5yPl-!xn>9V-XP)~1ZhxNif2Xq5 z2Sb<+hOps3?aI~pU(b#I_1yKJ=b$F8hTQ@pXOq8YUe0cRKW2?jN^G0zYH3HhGR$4G zp0M&+YdW{MC1yu z>-GBFR(gG|CGz@0-S_<9{qnyh_^y1oTOJPbBf)o(p*h;7M0JXFuGDIsBhZ$Nr@*^D z%bO!GAO4l&YU8uqKJi&Ds?W0Xv`b3r5Y;-#tqFYZV*4z&%|6R*gU@nD%I9%)@OjGT zc1E;yY=9|8ys~4G16jFiCd6f! zS~pSuUoYpZnGoyTtd#LxfjH;&|G>%`z{*lSHZ3Y^#i)dYC|9Ad;A{XdOB1IkvxAq_ zxsxz0DoX}n)~Zp-$x)64OK2Svm8p7qrW)y)8pS!bCD4LQwc;|@X_u6>Zd}`hsLb`E z(zAiqWOlA%%N*|ftCbq(!juckol)QK7Ucsk{!ZtN`nw}?$No#B>`p@h`sB#aC-77_ z-7Ww9X&^Ie;QK7Co!7Ir%}_3DOl*8wR5nmomTpc#=8Qt;VlYRwjLNch2&fhxP|a;* z`S47M>6yC3WlM7P%be0K$t?-@W=#z!ndT@78jv~JQ83#1=d>qlQby0`&ZzfyyYl^4 zJ9C3d1MSTX3ImCpfsX@^01eE{3Sjb70F$qRJNbewPvE^^%bmHwmb;3AEqBs6n@mvd zeisbZN3i8i&S1-3eZiKyGJ?U%2nH)7*m7-AFjyhM9@i!XdjKw2F~J^y>jAhPfa?Lc z9?)K3MS_793HAV7U`2vG?urcdxVA9Z1Mod=KLmRLz8ByFx)1gOd@sNUi!~T5)?lz$ zgTZ1A_5!`V0N?9cgkUeg_X2z`!1n@tAHeqkd|>s0fz=E40em0O9~gyTU=)IZQ3&<{ zd>_E~0em08_W^t#!1n?CV1OSC@Pom)2Lt_s0Y2Ct1P6ou4+i}o48}be;0FWzV1OSC z@Ph$j$`gpf}hh1p5K5AK(Hu2=)V9Kfv_^TtC3`13bW;!C?S5 z4B&3gpCbeP;mAOLI5N;aM+Wd58EBs)1MPEUpnZ-E zw9k=&{%~ZVKO7m*-;n|R9r+tKpuZ==?O#U%eAhp5(g43az%LK*-TrsV0e*Ra@9q|y ze1Pwchm!{Q`vgW0pZS4ceZ;X+}Z9(fF237j|AwEVL=hqoeLsk@-~U6Q?p^^3iT@0 ztyRwLYp)YO$*9edA$dBcJ3FNew>HJO6B6V`=5-ufXZz+jU9rw>v?)OeafumDSE{q6 zOaw3af^)=niFOD-rggmgnQL&Jz)V0PM+Ow~TCO2=WT2^DCt%~g@9yfHbYLJI`MW%z zijxkg;>f^2Ix^6ajtq35*9rT$_1J-da?*i;a%5nj92uCXjs*4Fpne7dn_(G18;i~HibJg{Px$1htK%>GyV_duE^|*G=kw7`u-Z^QYlxydlG^o$D zZ%!IC*|lemGvjuiCp;{7pux`k$k4)Vy^}~!&htAzpv&KHWvKIaB10p$lihXe^|1t>&}rtzld@Hm*~Ya}{(nXpI|{@Ondl{vqz%@P-6zuagh@D+JUT z0$LN|j;R-z25+dlq`jf;T=a&5`hW@WhJyM+!*eG)ff}ce(px(tnfG@hBPTX3hckX| zfvdai&+T-b6P^Qa|4z7XgLgo`*`OC}&_Xv7;q|(^DMx}9y1OYS4O$o$oHHZb5g(fz zpPuSg85WY)%}Pj*Pm4>A?+UU35?GI3cmL(o1o{Z9PcK-X-Z0QdV4Zs1{fXBL)~gq+ zSFgK2aq``D>jg&4>+TD@UUwhhNPq*3o7d%euh->yN4n+-vk2JLlu-ARM71)Sn_ zdE4uC`O=Y~=UiU%dR<;~q$g{;r1VsG#`s)s%j*R51HIyNy)7s0qWN6!%1OIuAnxGx zxn7VXT`hdTwEA3c$H{kl%Li7N&-G@U5R1D`e6APcq}`bWLJv;p#hu+C^x&l3dEj%s z3@82jeSix{&j(1)2T0Ec47$(tGQ2+5%W$MSPkgSI;iTPB@&R)6fmP^py$q)u;JaRi zlLq*%m*J${mE?213?~ir_PgZhbG;3(&-FGO3Gl&c_PO4MlMng@tZtv{Z8-S=-}N?} zG{ASg4JQroU9ZDQ1N;zxAL6bPAFvEQU>STNV7xlh@u=(%-%i{xf!3T)i zXM_F-1A2f}>;tRV2Uf8UtYRNn#Xhi#eP9*)z$*5ERqO++*audz53sKfu&>YcGQ2*( z!al&lKG(}|^1=KBtn3Sq$PpJCttTgSj!ns*@syU-wrzZD%Rol%zl&NXCFadYq{hd_ zCbvvTiiypYm>wVRP=yl^k1vv%7L}4#vrQ#uSLj5FL2f~iTQ9at8pz5Yn;28G&A&1r zHzOq~F*PC1xjsB85xki1)4xc9c>&+rg z@HZtcs%>nYSm$Q-zw1kF7uP1OX8La>^9ItDe-{^tiAsyA7MIu|A~iZH`F8`0#l&`s zi;fL{ zPI%KXxRqn#e^-V7pV25EpA_8z)R!kZ$|3aMU0yKoZuQuhxby_@LV*naOp8l%T!P=9 z#Qt07!foQ>W9!ByN2NGH#^0?h(l#Y2J^8

  • 5eLq{RGpc423)llI@4x&J-zd7O}B z?BDnS?r%Rv_DNxu(eP2Ku~yuzU9d>hS~W@dN5{&XmD-t|{;XD)Iv= z@&hXJyMaEZK6k14fj8g>n?b)D@bmh?rqJ&O{G7DAsquqNqTdbpIr**$an3Ydd^h0d zpf};7$15fS*$i@Bsz-0R{R21^V59pV#jO{2U4J!6wuXDAEro(hn%o?*{yw z_W`~e@N?2G75f2o`rUw^lkZZ2-wpUVX_pH8Zotp$cLRQo1o&>i&q=#f;0Ie-KiJCp z0TuhfR@M)w*bk`K52)Dh2K=0Q06w5%KcHeipkhCuVn3i_KcHeipkhCuVn3i_KcHei zpkhCuVn3i_KcHeipkhCuVn3i_KcHeipkhCuVn3i_KcHeipkhCuVn3i_KcHeipkhCu zVn3i_KcHeipkhCuVn3i_KcHeipkhCuVn3i_KcHeipkhCuVn3i_KcHeipkhCuVn3i_ zKcHeipkhCuVn3i_KcHeipkhCuVn3i_KcHeipkhCuVn3i_KcHeipkhCuVn3i_KX3y4 zARgck1>+y;Zan>=&iqSmonhGA^#tMseh??{J8^=T#DABA^#|evemgYlzf0YXh#wHY z-y#0^HvcXM=)hs{I}Srinp+;9<{Sye#AXfr%ofwZl^FpTzjI*ZN`MWVc0X|1{lIDW z11G`n25X(~+--*+Y%}~|o8brB41ZW;4#x;PG}=0;i;Dm@8h)@*@H-oYv4R4KI5AZg|m= zz#2GiN1(p=Hg0`xc+n{b_-=U7Ndx@wuprl~0!G11u~ zIJDt@0s;qq5IFF=0XwhX4cIvn^f7Q?{BEet@olXfNzrL~yI5y06sRc#%={2A<3m7% zDa6_2WxUxf%I)J&VDUqNr4I!bJ``BIP_U9hL4BcMC53`|L%~W41uH2O%$`s%3qrvx z2nDks6!c*z=)+Jq^yv+CLza$o87>s`Kq%;eP|yRRpa(+TV52t_^gyT^Z1mcIS#7|q zHegm8Fslui)dtLJ17@||BQ)oGcPyRX-wO1j4Vcvi%xVK>wE?r*fLU$8tTtd)8!)R4 znAHaTYy)PsL4VtTS#8koHegog_lI13z^pc4RvR#@4Vcvi%xVK>wE?r*fLU$8tTtd) z8!)R4nAHZ%Y6E7q0khhGS#7|qHegm8Fslui)dtLJ17@`Wv)X`JZNRKHU{)J2s|}dd z2J_4Y%xVK>wE?r*fLU$8tTtd)8!)R4nAHZ%Y6E7q0khhGS#7|qHegm8Fslui)dtLJ z17@`Wv)X`JZNRKHU{)J2s|}dd2Fz*$X0-vc+JISYz^pc4RvR#@4Vcvi%xVK>wE?r* zfLU$8tTtd)8!)R4nAHZ%Y6E7q0khhGS#7|qHegm8Fslui)dtLJ17@`Wv)X`JZNRKH zum?7<2R5(=Hn0aaum?7<2R2|<8!)R4nAHZ%Y6E7q0khhGS#7|qHegm8Fslui)dtLJ z17@`|nAKq~8${r3z^pc4RvSd%Z4iOCK?L3g%xVMsXoCp64V-ElaH|cRYTI^=x^27M zY6EVyK`_n+!8jWP<7^O&vq3P<2KLbg&bbZP)duWp19r6myV`(VZNRQJu&Xw(t2VH! zHgMu?;KbX2TW#RP+rWvpffH{7C*B55ybYXq8#wVcaN=#i%{Fl2ZQ#V)z=^lPxrFT= z#d>Y`sL+vaki~Y73Z1kY`4mRLR+dV3D%H5r% z4UQme_o&coyGMnNboVm0dsOJ8-QArHjw)=xyEfom8}P0Tc-IEJYXjc3-J?RM9-u!6 zsoG#iVuO&X9SO!i65zYP28yGtAJxBZ*H-NQns9PnQx&_B}M`Ph+Q{Y3)& zNT7eDyZ*xfpN0Xu9R}8Q7+BZk!2X~d;Qw+~NS=R1n%cCGqqi8OumfVR3}Q5)-pND zi8==$Gk(L+O=iz1j_MrM)vYorE~TY&hTt3oB{)Z(ZQ+d4z!^+pRD8?8LrQvbMu;g; z;>5dRQ~tXoM{>O0+KF>Tx6A81WdtKyCZ;E}j!ntsBvYKgSyEzr*MiCMv3hiRN{Vy( z;;0^9vgV(<^Qm6NAgB>wkaJG9@-9JuxOK zF)aY-e*B++bjH{JqlN!`nlDhlbJ`v2_MJ1f4&Lu{VxZ=~lhGYoCd4_Xw+?Wiy?+-Z z{+%Bfm*luEu};J?Hl}69Y;}H-v1MvPRD66um;X=M|0C>8n;hA3bj?p)U3;C{*RFfJ z``)oJ8%wj3YgK)mp1$=rWG=}id1!GRxfBt~Uq8?L0;IbXk$EgFL(ZK9K@bE$uvXw{ zc$sP5t^Y$^do`sN{zh4lO3t3J5|!-JwM`>x)}JZshNXyvc0UKnCZSn>ISav!&AWEp z-_6r)lmK^d1&;U8c(!U5th2xzRS>ZQxX+p#4A%1rY3k>`Th7k?afV*_-0wYMuO-xe z|5ZILh(9hU7O^cI{!Pg*mRm{v$*O7JcrIAB{zfKEKY!@&e%a*5s(f6I-#7`pM5*6@ z?)$?pBBDD$$S(6;8}-olX0iE^(~ynsf2J>4styZ|r!FG}?;ayYXv=S$I)-N(mi@2q zBQdf4dBoA!V%HDtj~(oh!k*pKx$k#F`8sc$jPUk^hEh47-Y?v{r)DQY>Wq&asnHa@ z6G2Sc5q;N6{;6BZ)QH}6r);rV^wHvQK}`NDXH9xAJ6(3|$sjx<-Zlt^i@SbVx^Jh; z{5tDhrSrNai0BDTK;yt3c{G^A`@Hnu_N5~L(ROc*C%ZQCb_X=zpEJ-S1*iQe$UF&R zmt|z6tEax-mjJgmHm!THzYgE+9DUF(a9H-gRKrJf-{*5H3f`Z7;F!+&kKO0bjfZkX zqo1>&&$FkPuPaIuZ6uMY?}q;1IXL!51mXv`#rM#$Jw}z6T~6%rdS*cy;V|AgH90Yp zh#)6!N+u0`g8{)~VBo0%8i%!q&u+AvS&ZSbsKZ$>t%dgP3ls?)Z9P-E84w@LjcZ;J z)1HnboIQxuu0I~Hp3PO?pPk@(SJq)Hxsb9yI_DZQhv#egY)@AYa1BlkF0k%qU0WpVR23rG1BfN{SR_`Qu zY@UJ)Me27KZqZCipS4xHV$$10E=;g@yUzXM^XOqOKtgJEx4l{nngxPYE-fuKQDwhc zwX->_TrB%V-yLH3+Bc%8h+2GM*%W|ZFy4iVx<%G>Ap5doIeWI2hsH%XhV4wUK2xuon4~F~tu#Ahn!jdjnjnWEu|i$AEBFl#w$DdcM~_fS zty#BM*p0Fw1SUZ6gJi%#fO1_Rz`Qx|&pGD}woIC(dAl?~=k4Khdk8WejT@r#uHQ7D zK`>(jTcNs@tNSJ@*0p@`xKOjz~}bV7ld4F zcbI6+`ht+B)74WHxI6FQ;bXF&5ox;+Hx8JQ)rqxlY7D+Ew(UWD#(LucuF=S8!lhUE$j#b%%@Q_-!w(GCZjqA9~_ib}_>3x4e%M4PxgOFXQpNDtk>d(ei@^$*d z69w3@-z*zy(bjUEtuMoQcr8IFbp6%K62F*6t@`yh)9|M0cE6oQ>~t0oQUA>}R`U%v z^n8=mk!tm(M#cVmS{7JC8it!p11!)@1A{31cGv#trsU;tVC#moEt=u{%NI$1yonJ9 z1V*^A8~B{LbjI;V+t0o>I)&zaq#^n9QhDV3NeKeMpO$YyuXd|Ku8y=ot!AkZt2HR5 zPEdBfCJIWmvI3zx1s+csa2>*Qusq&-cowibwmUvym5h*bL{xT;ww5uV+qo`i~{FfQw5ZFGkF8X zyMa$ZSaBZPkfFN_wLt@pQ_j=avxpKy*$$h!9wHX|-vSy()Owd3GvGsN_m&;TA>xr; zx6k`^M7L?RE2{>BnZu^-&UM1mKuC+Hwv=(N)TSe0B_quaYv7@hf&e$fq}H7Sys10m z>U@qp^=Y)$rkNB2Gt}C2=NP$^u&nl!bJ3}T$14ycjA83vN^o*kgjEsq(Vt#TEJCc> z*ra4_3~GBoK2>pG>^fYUdtZ@%npB6Rp3j~*G}OU6WaYa?Ey`ehl{gk>FR z+S%^tqipUn<=@H#PilK5wf1bfPVXqCdofM_&sXZ!D5iPp*oPj=@mUN1e;nExySp65 z*ovDHS@fs6>vD>!K;0nf#PaSi!kigc*Xi&=tE*8xMr5}2xq4YM$;xnKNy_r6O>pBq zgeH~TY%cq5$-(T$b-+!njKgZbtaCZx)xD68@ThXFoLzO z16KaVfIF&YL!p8WCa$)76ibod1ag%yCDI716 zC+DQxPp1oh8Pjf)Utrp8@(WD6O@4uCx5+Os?Kb&SCAZ#lD>bMyR`;sPGUSe@eW+5- zk??r;s`S;Nx-L~0l8v?&bDIc@E+`+)vv0o;|Mm;<@4gWK{tNLRz7YTM3-O=65dXI? z#Q*&Z@&Bmw`F6Z-zx`6e+b<=&tJ5V|`Y>_JD00#1(CoX)Ny#{E1CmbI9H>cKN#|pa zkDNnar$`G_oMz3S2w2TJqi9>YL)|^B9D$@Z2w0lsBjW4RwK9juccof73F9iy5XX#+ zt@~4D3`+k0D4Vq@hPKcbwQ?p#Umf91j#o!`ljGG9-sE_7gf}@}9pO!m zS0?jjJ9rHpT*0^{e1Dc#vG=x?SF!gt%d6OXo8?vPz0LBeF6ug^@K?WFaALwVV%6jO z>ohwY_kXyJS$AjD7&3zR&20h~GgjUDE|T1v%lucjIVHjW*-g|>AV=Ms;e6$0((4|+hw-K;V1I94?}!B?|0G8yhoZ_>Oj|$9XvmE z>mO(9i{tT!k+nG0Q_m@*bmEoC{WSH**^`Xn~&W-2f5qFfZAR6+?{@r zWl=^iBt?l1El$$1?h-vN;{Vl96g zbco(G!#*=y(6+|syy4zj`TSfzL8D_7nh%K{3mtWjn`2C*LV-4DJ{DV)9lv)!N@#Xr zRgusxBbSe67!Tx-cl`qc{bdxvrV4?v{R{-!$jS;Mjpl^bF0<^GtBdaAMW?`n-$p{f zZq{PDv|P5!tls*YBaR?giHj^UJjRqRE-`|o?BbncIggk#vZ>!hOnXGAXCy-JcZ{i6 zqDjQbL}ZArquxhC5*Yt0C&Wb0ri-nWjZLD#z$BdmBCTXw?PVV!aXs^9Xk!2ht@`Ka z){0Ac86D$_x`G_l?_DzwSc#~`nu~$2`*$(FYYf&BtK>oeTMze`Z|F`m!1rhYQy^qnaM`fLt#a*qoba^tfCm2|6xU8P%S4KR1Anh?siB z-$}5K-4P@?e2Y%x}2G{mURn*M-@yBJl1-AV80 z>FJzXm<9UlfQ7b2jXn{Y8=4eJL>y3xpGy}W*ID}$%F!r`Z~;ah2*tQrtj3<;NRO8TMg*)&RM)gBJ*u5cPyChQRyp?5x(32;wtH#VKZ$21*?A#6AUq)*nb53{T)C@2uhquPO%i& z#m?G#k1jPdtLD_X$1L#o27^9~hK?RMj0D<<=l7Sn@?WXi@emaXcCivAizF{KWdpNWs&fn`3b{$e;v>MF%ds zeRLa;bc4Yux6i1c8KBVvl=En`{vgmv3KrgQTnA^D{=L5ztfk(F2QP~mJGNcwGA9*E~OAH3q3LJLnIF)Ao2kZ(}V%g5Mo#+$vg9b-zf5ytx zlPqG$l4muZJZBT+GF5kT*RFGKMLc@oVl>>IX#4=NbiP1hQ2=q`?%clr49nTLWMQk_ zJf>ryVU`%A-8w~YrEf_*UbI)PT|}#PkhBOwhzmJLM*xYlN`G))kT%$8Ir?I3%_$9* z)bnLZfLDq2#zCvTP#m6Gle96&zQy?>*55+Rt9t=}xZ_dQJy2^FF$H`s`bXoFjxtd< z?9UEgS&Nuh_MYLA6hqEOdV?Oz#Ac5;kDV>R!tp$pW@=Cq=qNvj-`PFFRO+hBE*bo~~;tzRNAe@y(wszY@D}`;Lu+kU=y#vKSV!OThf@AtpU{ zP;9lKo&l>19`(zfJo5YQ<<-1M7u$%13~r6}jEQed-}{G=@mX{BH^@c32964`AuLft zlnFz?(dUHGf`l1SK-Q?IM?50SOE5rnvOcuuqL*eLJNC}J?>(epDfa{39KN=3~ zlt>q_bO=JAn_{54r=4$(>-5KkEjdu_oO1V(-m!`fEHKad1}2Bw6i<=)vW_(bpKv}q z9YMnG@{EDI>cGm=-hDDK^!r2C7<>;+i-j`Ns7pLferWdIV?CS)&S`9gZsY;2VSXel z`_P_klsp6v)Sh)j%niw17Gr^B$odfFID*Fqw>J!Qix~5Z{Vtlkzzil3w(t8mCvD#k z=Cik-4E${)&sPR0(n~2*PIEQhhwN_9#Sqa&hg-R&NO zHQFI2;S!EB^lP9#Y>fNJYTa!v6}EAJgcsE>!|j9 zb8UX-5BaIr?LufCOaoNYuwstc8s_ArWbO7ao9@A(d+uY_bZ(@dQI2n98rv?m)dQEhmQgdJFMAa+O>H*WPi=)s{eq5CdUWuvma1nJ_NKDpNKp1LhBIy}CK z#dm7v2$1&Q89F*tbMrF4rD=!_PVCjjgxZW&J^oq%;-~|M5xJq`=A-MD(g)rgVqC&Y z!FXVIfsf z4qh)fdyan+RvG1VcBq@v2~zIbMuDws<0Qk;#Q7zhVD^L2=QSSIzHG=3ZfaPD9Asee z9PpE8Fc0u#Q46c;bTtkP66Nf47f~>h=o*8F8sPBR1?zz7?aVb%XX2%!ZDePt=v|`! z7-rhI(KF@11J9wT(jME)@7Qr-Kynkv3PI=RL@nCr6vv4}`Q*U5jy@mD`TuwY+EK-K zJC-qG(GWuD_zy3tTUNn>4tb=9sGNiS(^|fY$BGWoI+U!7gA@l3_6;eVVoXS0>ggxs z)G?wbHtD1;2ry{NSj3v%Ns`E7_IP+eXLAQrxEy1M0$+%@)4Uqwq~S0+D!X(2i{P zvV0fJp$rN`RGx#3o#E^}NEEQTfEE3(deA?s5c0!S*Dl#FCDi9?B;rUUSDqx&f{tPv z&Uk{38XT9WVcnSmJpSD+JT|bGhhV%UwRf&Z>6wiL%mgRDh=h-OcK<`J%cOJ*H-`*6 z4yXD^+ON;V6n|!Q9FuSus{TI?yq=W;C^Q2PA#mbLxWTmm4$YD80!FXm^#2G5f|{a5id5J)r@^TF3fpuq7Cd-8Nv>_$=eDLGMID zlEiUO@*3O-x7!0dd3FpzTWSi86i6SsXP0pesFWo`NycH$acAdj^Y-yN!2+%k?t`YV zlOWW&q@aau1*XF#5VS0|_QGrs`e1@!(tug?^FBoz?CU8u)tQ+)u`aA{_&sEWMj|kj zw|m^dCC>r**yLJuiBlKgJY!40A{BVDL|KvYizV0XFa#F_buQK}+RA0>8)zn^*U%FW zr^B@2tP7d$=1Q!aXPMI`$HT+9$bK!F!ba2WqSjis53!$zqT7ArwKj41A?s)5hV07~ zb2ey#%~(UUP?W1Xd4S_^7so(gIZy5$B7Ow%$>|Ov&klxjBXoZB(8P$~dOpt!58SKO zNzJWoo82;i$5-dMb_cgm@QV734@p%VP*a%A=?VEWJ#}u`WD1`>A#m{PWV2l#WdrUz z=HOjyF#ATjA5SNIKb=7$6$iu5FWqyk9Y|~w`y2dk&x25bTyWRE?&~%c=;I)R z?iYzM+Gj5dM4)l@7yrx-AB%-;CO+VUJ%A(faq(=f4CfVHs<@8(cb-Ocv`q2Za{(n4 zFQyYwruENz+#ISsbhd8yJF!Tv42)ve^k6u22M6G40N&yZ%5k`gjCKw0(!RUu4xZZQ zptW3Lfr`W`bE~ZJ1r)&`G(U~P_59iG=%s;0w|j^Qvt||_#7J7z>qR<*uIhNm_7OJP(9tgF&L|(LFYD+3bNo zwk>->$1;wId=%McqlUUb6K?R46f$~|FPKdOr z@J+K^{!G6%R>kk){D%s`(4j@mj~T0zL+@`CW)aS&>aNTr!P{)xUI*8CZm?J)Gb;-| z=U4iSi9ro!XVFd#=PN&VDwjsEVd0^NpD5_vfUQU0X^QF+DRy%S1P*d+;yhBG;S|Je zx7YTUuEWx6nK$5G(_I&G@&M)|rZr-@TMtwgEdG#DhCgIL!J`ZGLOwbiCHKs(0&x@K zf}?M`?fPcvUa`Dn7o#GNd*_#6?WYP$Xo_=)!S#trzJ8-39!g}gCfOHwetVzO7 zsmBLMkRScl`NXYDXZrsrA3CPXdNNEcF0dJ%9e*JgInXh4`ai!f@Bex=gV={jEr0xC zrvH331$JRl+B5T_zhWs=cz){I6&KOl46(3uE#0%08bL2@hHEHr#zP_3oD5Bs!&dGv zcxlJNmEoQ1VuK8a1;!OZkFd0!w3`S`br6lr;mI;Clrp#uQddLqtn1xF>y?xd#R14o zTspLgZdzlFk$^dCuiJ3)71ai@vKOsNy>OTSioyZKP;`z(QM!w=&=tJ6xJ&Ab5~3Zk za+N+s<&L@_p+WrR672Dj0w>#WV^F1IwDOSS_XK_y8R5#giX|5D;^zRoAh41K&%*hF zvPr<{uIR%(_B08DbZB(HV)8});jLr!N0jRBG55hf*mW7H?E}t$h)e<-Z1E(A!-jU` zU^73;^;i;P0asdJTXPLcp4t&8MRpyo?fx;Kb;~Ic9;Gp4tb7u_Q0r;zDK~s*pi+p!1|sZ3R3$nF?njCcjHhRV2<|0= zJ_V(9kF^fHr{_aZT#^d&_DDrm>b@R&-C<>T!6WJsGIs*Yl3was4_eU2RV7;LHddtM zAxMav^N8r1=fHz+#fr}LORky z?Y9Gsx^^=LKZQKqknrKEk_03^Ob*5q!7xbxgmlbRoX{XX8~;S7;I25}vsK8nlGY-w ze&P-+Vi^lml+DGx7XM4wz|;9cldj{DHyeNh)&{lb5r`c6b`^;FIcVB; z%+r)%@EHM80KdW_Rt?Lq&4R;R|Yt zbr`c0EVKmg@-UXq>v&~hghFIlzEQo5qd4#znA$wu@iBxBXl0B|1{-@H3`pIV;K%Je zFS=18q@X$km?vyGv{0rX)3V4&cLDdzClWtB0k94*GX*)K`}G8XOzEZ^j}k4WeUNlp zkJn7&kUJ22zD}ze4x*`CBViVhec6YV$F5`hAfJvIdS(Ye?r$8mlo`vWQ*4+Vvi5T{ zoxFbNY8<@8mSrO-Pi%3H>K*DfMqH*lRr8q5G^*67%h78kWzI&M3n$Y=hRZ>x(~R90 zN;LBN?pa~{OTc@+$M?9;J<;PM1mhqAR)WYDb+5rI9;$>pa2mcMDtV>R6e1DJ9bi!efC1IHn0Xl(5Ao3yn&x~;Rx36aW^Oy<-FSZt6CS=V1rTg7D&C$~$K`8uUDf9Z#3g0j25Lv6q z@FmW3^aZx&kD{J@&DAmyF~vsW(gfVB%tn(N)j=a&3R|{3sAV0qs7%s7r)#IydUaisA;^Xxmhga za?RD~U3)+M)W^kQ3tV>4)yv$AVg zU>ob(_6>3dEm@-}eo)yNCRG@F9<=Yrb_zWUsw@Fc%&^1Sa5L-{p|9ZaWHJD7oc7By z$@7YriACrBG7IP$B>cu8QCMcS&H@3aVAhNX*02)4pyPaOJ7`>u>OQbmXvE;fL7%VD zR|b(Http}+Y+mDH&xmR;CIUO&Fa|4N?pt@%N&!Q!$bV*@+MrF$H~v!~tB6ak2B=VA zjGDpf`#Aq18mjA+C4P7+BD7~tWTAow6lT`UVX$floWZzVX$2y)Gv^rTkUZqFRw(IQ zQZtws%@8GV!dn^;V=TBB@prjVqvEjUVDLbBEGC;R_A${lg4VFx4M>zsP{_-(TdCQ` zyGcRfOI8VYjX5=ETEuI7HI75^RPHo9H6i$69}1Zlkc1Q0A=1?ct<3o~zC5vbJvRXz z(QqwH{d&5&G=?_)Y@7qVsm|CKpLK<1FpfzDO(fzs;6WLEE4SfM!javWWJ7ajj?)JA z#H;fca6nRurK#Tw{BSWNL<|RF;1(l_vFXwTWCn7qR8H4Yv$!+I4whTmxF{YPiV8eh6q6af3Fxvl=Uoy_w}CT5+ac#+ ziYWVXPNV^zCx|jpP(_1}nc*|GB=l?WAmJ5A)x45sKEn8(iPi|Zi1GF&R>t1#$*{VK ze_%DC<272{B)E33n`!j4VmSgYeVkTY;$4IJy{v(4_k0;B;#tf{ZB9fPRv8t2ZG+Q* zX~jg#po&Y*?o*KK$vhi9B5aU^Y&9vO*teIl;>E3)TK{QaupitJMV+CtF zL@o<2(eIEp{f9>KVm*e)Jr7joab9GRjv_O77D6)vEB5*GHF%F~%WK;-3mNUwI1lwc z;gB>ZlI{8&oR;3tmeGke+toBsnZ4GC`O|Bru#YP%5y* zkY|h2;)brf>rh>^*;X<{RtYzO9r8HKon48g&KY44dqg2zF__puHDkp|jcbluXNi-M zY_`a4-4#HV3W;%Bh`TJwp202M)a|Da+T~4gI2Up85@M%x5o7wbi;ZG33ug_aJP?Eq zEqq}(zVrqw{zpVw(#(07Aqg=f>~%ctTX0h^qs>+YJnz{tz1R{fZgKR~kCNd4Kwx}q zK|#WFcjPsyXBwtNAGiu}&)vZE6XKJnm@+#29fLx;z%|^=%BYx^a^ntbseQSmz%a<@GFSwq+=6i z0C7nkVclEP%NpgirFS;`j)PjCU%K7W5Pqc}mfr=%yTBNR%nhCh(rH=&f5>|$%%bx+ zcgn%6LNJuIyhUbUNRk~X+*P7&P$bT%Fg56^xUFUUwE#1w411tB)M)p8wpVZyEyK_q z@dDMNj3y=Hi<5k=iecO3UM6w5)is8pNE!STcC2MnF+NSAA%1HfV971VGcrkK?X3`J zpM%RC6O0v!C|=sJ!4z)Y86mOmZOAcF3Sjz=JQCxBr6)^#gQU?OCTBi`2FODkl9Nqq zmSb%Py<%(?%e}@%d{vE{3YC4BqFWi5mdK94^iU?zrPCSx{OsXqUCa@`v zTwG#zMd)Sh(0n#sAk(fvH{{C7EC&$W9bs&twX5b$5xz_t1tltFAoa`3NDWU>0t z#RH4neG<{r2>Iv-ml1e(gMeJk^YaKZXgieW?&=2`MXPbuEH zL0QFa^;Uhss-Ah7M^=OgI!LA7$Dn7dIb zdc>@ayCmu~o0GJXM?Ko`2J?6n)SL@?J@i7*7V;s65yT@8U7DHsau7-=7MJF5dH=@V zhIqnVS8%YBRwW3saS5a^zY?NGQH$W-ligIEd6Lk7I4K9ze|MF?e!j%Du`A-~{!PfZ zMV6Fbq0?S(I=sO*0?u~Sjlg^xLkVmWjG)z|V|YGL*g|GJ{)rP*B^aszq-THPB!Al+ z)e!k*xs3skD>-A#Hj5oB!t&;i&KTWagk`%;CowH?ZxDrHU_w0>JFw2{Tt|eOST|h0 zu-8^+RE?6uA_Zu9kl~H)aCt9A;@*OqaI6m!yO4}M4>Lc;6Mm> zdxu63`Me3sDpm6+lf?Mgx4m%W@$ksQ4R69MX!Zn52P#ySr_Fw$_jTSd)8SNM(l0%6 zpsKH&#@pxL*Dnz^-{NBaG07udTpP}V8a-L@h8GoTSgrH2gGMRKI|che?|LxV9JG~P z>NT(d4Vzy^;W?y1?*YBhU3HH_cDn+DjE@<*dW4Zb`1+rGiE#NKIFr1uIEdB`7-uWh zV0r!j=A$Mn?^qH$V4fB7u~C&nHW{7@Zm{`@Sq8Ho^#Tak!u?GHKfY$}qpx6Vez5HQ zjAR2yXr={;8led*K7mxzwm)HrEa)K&*109tpDYS=aUJm}$i#=rl}I(gH|V1jL67VE zATMSzgwbU7aP(-7u1>cfrmK0Jgy0j?bZdBs_+!6|@Cc$y_ zkRLsKCfb2Hog#|S4*DJ*glTq)luhpp-WNB-v3xbq1>_m(FldR%Lv`@gmUN0bj!_c* z|ACkkf2lK&Sw5UOfBZrb%_{dJdvp#B{Q^aogoj#z*z8u6tmo*u8P5%0Nbg4*?rn8cd zV(vsh_HbL?SHldJkQ|y@7d^=(@Y6qKZv06gr7&44kjjstmqRRYvB7f7bcL@sZm;T-_5`lEO~o8(%BHjcnb9+j-l(;~=YRA8FQ!TNKG zL@mZ-JS)=?^9L{J79?+Lk9*(b9wR|=D zxct*=EgYp%I=|Wk3~cxOYF$I~m)GhVfS-W>?_W!t$=$-M?OBv!6ut+Vo--1h*+$Gh z=r}FQ3ZihYBX3$}0{z6O{Z^8|Lbo!Xt8?Cx#04Q@Z??j+k?Dvj)#N#j+E78UfoqZ- zW2!fXbdV59aGFd3)CmV*(`zq~=AhanVClkr!?5LnDN9#$fnr zqE~xukOS8E-I+G2&|nJ%BfPzw!v=wmOtJ_QyUgNr*^Bb)u{gA_dQj>pr)CQksgazz z>9JaVV6&LH5_O9ko=Z&Vu|n31XKz^WwY-;a^4i+eaL;hitYPP=w-t3?3vm{_yDR{p zzd|k9y0gncP+<;a;neGOF*ss~A5u@YI{C0!3M=m8*hX+%Mgl??xVe)FHCwo8q{d>S z8BVEboGLm&px4uoume2F=xt3o$Iwg=6m5YhaYhWv%4V&xvV`er*j8#>9G#w=L65E} zLa(f;7y3n%_BaV}$w71F6b>Hsd+1Ez9B=D|n!*ih^&_69736VNz?)@O%D52)bqZ82 zKeuK+AiYSaJ8Z;8kaYti!3}A_$|S4xaFFLP!)y_dNbLjD@XQqoQ206MI9HKTJu6T0 zsRP^Yse>CkE&qrd;{@?b5mDRpzm)LdO9>ypl<-N@Ad4UzrpDF<8{!W*u9FCnE#tLeNdLRk za)_AGWN6G)M7cr&j*)QpLKPjspZv<>$w3w+vJK8SX6=V9AXPj&D*K`N7j?jP&R(!E z*lGgRju}W@7;TrX3F@e;wJSg9$O`Ls?3XUA7fMwqS;6tiQ|^O^4HGhX2WCT#L!g8( zT!~hK)ao;NOmGKzHu~h|xBU73}`$LPUW@iEvPBCPIW3&)l~8fXt$_7DiC7Bu8%=vegt$YO=~0_8C$qzXw+ zvNbIqNyFogA=-ZqT#Y$)k9f(WrB}_PDToxb(z>!ynrJ|dwNv0LjZ->@i5&u5Q}6Hx zgA_uC)1~s5JC>pprs?cFVrD|urNf`P@j*sl<4m?oNQj43aEF= zD+@NxE2auf;K>34$3*j&qe%{YwrB$hn3Zs@j2_kZOe4==_T8Yt8;ayA9*fvBXcnhm zku{C?W|q`__FDv^-2LSEqAq3FmsT2Yq8T%Ejfbl`x%`b2ViRMxN!UW38h{-{0IF_h zc8&&c3&NAznAsqo@|wvp-r7G49L6|yKjutK&V3vQI~G+PuDYTl+I^IB-L`|cZGCCQ z!;N)DoGwSvoc72UNn&(wM^;#0n)azlzf~ioxo1F2iv-JB62Vd=PE<9WddSB*lGqZU zN(Tw{)Cz86XJ;v#Yz>hyEeC(e%E5On)(4@paYVr0Vun!rr@$@b9itw{!Q^L@_YjeT zt~V8m4!NLlSM^3z0Ol^Asxy~4If`N;!;Mr}N_9-e$%u#dM`4iEV?~mx37Lj<_!i-n z5p#%FBxALBV=q%?#D{fk`*y<{+#F$Q7v)g_n9MNiAGEh}Jdk48sp$=ykRxOvVc7jbrpk)9c zENnM2IVS5EkH)Spr=dZr?>9taE)*8NY7E8kg7D-~y9-Ay3kN6x_<3{B<4U(!dJIL6k+(L>XtwIuoIidDr0S)V)0+!|;= z+>}&Ef;Lw!ip}L>(nCAihYS)UFw4E$%QjDAC!M`#r)wgX_j0b^V|S*?__k z-XY}&hs6P#q5-ogDrA0myHPM1Y_Trf6%ws zbKGTWA{<1mrPrPvkj7dS!bYET*cL?-gRh=(0R_YcLoTQC7M5a9%@Z4&-O8v-?7F=c zw;Xt*Rm_uq`jaA_J5RO&)a@1rF^~!qIBjBOeS(%K%XuTx??b=A563!I7VA^nqgoiB zG*`R0Ix^SHi|)cKMIB*q%uV4mJQ!u;RKG%|<=2!$_AQhMA$Twxo@g$Mn-5_ZXPX*# zv0*#FW}DsCth0TuRvf%cMI%BYCCLYXv1$%^1Q(&V7YnsNZ@SGz2{4XWa3fH`)J(nP z#Drv4{RU>i1BsQI%LT4#h9d%NAgl6buWYb7MlZ=DAU3(@3+FRN=3|ofXh4Rin#CI$ zHuB6b*ZDQ8w~s$dk*Qp1+vNkTrYXZZ@Ov+{0dX2`W-C6E^!V&)_G%E9?Sln|^M+|u ze|7rQ92;35I7aEJB=*h7^HgBlaA8e=*h;$82qPhHI59eT+bjKKTjBb(8e`D-Ub23H zoB2q9|AokYFUc#^WWAA1f0+qRm{-tQ?dUCH<2b|;$^kZ@Uf^_o)WCum37>a$C)MUZ zjlX5ylS$U9O@gHEb4-f}A*u)b9e_D#&zBi0re0cHKEfsVB!+pBRF;GKJs@c?@Ut(l z?_4v;OT^lWjNG&>lTW|mCaftKzeFoxJr>ugdD0#J!^pYOEv4n`iiZ(}Ic;d<5V9t) zAL#&`HS|&w^VoqqX2y_Sv%$@tH949nMl(YZV|tutcwTFOIMw0%q@s{sxR*@juoTfl zv!}6vj-B42*R^kMQ0g5Olc&(iUJlO6tHH`4O(HS{Z2{)=ka|gY4kf-qos<)^KXu9{ z@#VX3g)8y>$*KKXgMn`02utKy?7H8a_j$m%Avb6vgKI>;HC!d3kSJFMP9{X=mlwmM zx~U0ANHBOP_Ia%aSO74y>ImtVZ5I%g!9qB?)L;^MHt5y@IYGl?FNlC-gV}lulhM6* zd+A+yO=_{#Ol?lrM_deYYFV4sAw2U;lqa}Vd-`^xz1+SKl7|{g(rpbr+s8h^R}Y8@ z4DkM|vt`g>Z8LG+G2)HkZaz$Q3Jk?**fK z^#O_mG?d_M4v4LZt(DtKLO1mWRhfpwK8+dE1un!(r^xeSKht}lni-jBOYjC5QCR7&zdT_ESR+ji?oz$Kd;`Qukz`T{xY2tvW@ zo!ZI`N)QJJa#4QRK(wTRPWhhHlffP2rEeFn-iW>EH|FJOMlMvmxu6@g<$~%g->hOB zrVwFWDCCM2cK62%_E&s+P?SbtsS9>pqtjOB`v( z`SpoS3N~xB#!%gRL`c>gXo7nKLD9LH1_)Wu(eQ36`gE=hI|#`T65F1jTXeW3^s4Q+ z_1bGxl0KYZ4&oapR&aLSneig3ICfOYX|8IO3%6)4g)V#Uzi=GX1nUZ;`9brDp}?zg z8sOB2ziMISL-ABMdy*thdsQ>Ap>Se4n|{}TZn|&O;J_A^dRjO#e@}?ju%!pwlTt=> z&B1-=`ohMEB+-nUh?(xW;%!GocGAfSdWCHo_MuM9a{~7iOrWU8eIbmXTqDq%yPRRX zw!))|On?Nx0ZOMC0AQF>h$O2i+@C=i&C`!UJg#VQeb6*uAsa)DPMPDXf>8Bxw1olA zto^I!K77y|wY!#@`8>k4A$$o^$Sg)GUo|-0(1Nxi@Qu~8;nDC`N9Eh?Bufaoqb68n zd%{H)?WuZ+!U2E_F3c4#zF0BbuB}!}7Ev%!*7*gg+exGM_K0*>>hBd`<$9uG@w%&n z76Qn#>B3FVoI^gsbk({D@Q^aL5LkxNSJ{X6y5uC8k9Xu4Z8MAv{Gyrh!Ea6spDw3B2naI8+%7@HO+p zT=6<~0Rde>Qiz>^1=09`GQaQuN$@}RRAC1kWWsyQNf&bjaJkuH_*^}6^Cj+lQ9XsU zIYI~60wD@szF-F68j-KanFmo>0pe4gB8AonGc+}5AP$!9g{hhpKjvL61PGqd+8{Mb z7Ir2$E$ex7G#OQVF%LGA`8+dET4rWOSeQP^!3GcAlxR@;%cK2r zu3kWuxS9tvVdQXtL=4VLJ1=$-TASeItqb(oR~sK7+gN#zmsA3Z;H?Lx7*}XmKKy8^ zp);tqP0(eagllGvLH0~m8>v?{5IQ5F3fGBo9-$M^y?tR!g^F?5Ef#@7I8Emy>MaJl zIR2@T2A@_>_l7}+RM^YiemLPjwPDo zJsahy6tMNTV7b@j1LX{bvL>dSD`&xWYlk&SXUla)NujK<*1A@T@KM_VVgb*tPMv4d zM8)JOz{66DJ|Y=;sF@Y46SV5JS)zG@=*rATZ9%}-+k7{LfJJRPH7f$pj-%-T0#vAq;DXl3(gU6YPV97RNS<&_A#PYHE%ESeFWWAv-Tmwt5)QlHUi zsDk2QODHMdMYdiMz?g1H4m`V3MtBm+0gnTpMY5<4Rx9qDkw2Mk^*yd*8<07R7prN? z9BQyCf=3`uik@ESBvAaX#WZ^r1u>m~0HI7(BAO$^S^=Eflui zK0QF>5)nG&(vUhp6h_FD4yx$i$%f3F^aKYHYM(}Ptd`%$y}DV?dJ>3gP=gduEvC}~ z)`;Vn=M$T-QH~r{l*1p%@EH>eG77Hah*hhr!m+Q4Az#>->CR!n z2XebiN#UtX`LX*2MZD3NWDBf?K&bXYXam_Z#W__vA*ezHW~zSDkiBVW>R{xHM>C-u z-e6Qg5*|Tx!(|LZ1Ih1BN=nt_E0(>>>kb@3cn+01mioA1O?xaQfo>94NW~=Ta=go< zSrO*s3LaOf7SK(k@kym`VlU=tZ=%Z5wF4^kKhA*~o_wMV|HenbF}A2#^Td4vS@K%< zr2^0m=2x>`t$)>>mjqhJ-)c;56W*v;-OMIRvgXl4@Yd##_j(-)yo?sOp5y+Azn7dw zIC_ZKN$J6hhi8dN_FmZX8BUBkiX&dWgyyyn(K$_yKh<;8SQdMkPSgO$8q+HxLUkop z%alx*ED%|gr4M9pA?L)s{J?FjFqGn)jdV~ASPZGP?QI6eQyq#y3#qtcqN9q@n>~5P z`&7hgd!F@X;{o@02TK(qr{=*XBs4KooY(~=B*Gk_lvg3kF(GF-11DsKkNaYA3t|sT zQ<^|* zxJlti#FNF;V$VjZQm}B~V$O~WO42>4p~57qf0Yd3^OYa~GL6`wCO2lsNtjjKrn zXFj+ViWpQya~bj;BtdXAYN+T{1xVE4VV+~ryYK&+3b2E*c=7l~o{({>^I~yLl`Xps zGA44;@G`b42Bl{Ew0r_>dtWh9lSQYj!HB3B=!m?A=CTO+J?Am5^6pH?y?dKC^oWW% zM2wGGLt^10SZMxIEMXi-%Y-6P5j62p%?TIPLKuwAdHaIvJeU&LAFsL>h+~meertc% z#LYXdaETRCMOGyaBa14{;t&*2c{BN9GoB0xY#ObDE?Fy@a3NMv298C>f-32cS1T+; zFd{s8(MV=%91`Nbk>c~R*-gArIL{gChc8doeniM9tO>+cYk|FqaWsto)Ns&PVT*5S zsg~Gc3I!{Cfyhz$hDV4a5_N{n8k)eZ<*2UScI7@!r45tnm(_>kqypkHhnkY{vTl^j zd`z-l!2Gqp%=gLK&b>z%j!a4;W~O1x8XxL(meK6E^K>~({;J`FD=Rv{5Hbl%VLXp2 zrP6i}ElA*<3Sy}S3g@by=jYHL_wp@C%Cax^{Ls2ep@3_6u1S1!Dbz&|-*t8Mg|2(kt7%x1=2oeN|c7fCn+sE9X`NKC@RdXNb+Uy>fuFM-Jm5>1LJiDf2(00o}s0Z z@&p@Niq6jq&6=pN+Nso7!1C7B@X$gtYX+OZPhuce3y(?LgYD1F4oNPERSTCGRmMbm z5~V^lE*)wspQhP$mpElKQ0yp!=`p|}Ab_cRaw@}R%AC!yFDP0z8q+f%QZfBzCe2SN zCY;gy$U+H2T@P5C|4bfw^a_I7$GjbR2vRYj6|ziH zL@BHnr@dp-B{Q>&VY}U!nx&AQc&fvOUz?>uozEhaxiH`t)Nt1(`;F2W)T!daD<(u z#E>U5;1+-6(l<|HGrMBT=YebMo16>^rzdQx*KXBeovgdK=6ldZX|96!8sLowSMpsO zOxFcoKkm#qLWP5;)ff9Ahdq;pU~D47?65Jdz3>LaMCih66kwub)hE66v*?hGYspBx zpsFU9wT?D-pG0I2;{9s%-~lD%u9z43#UM@Zir0=hbgEbli{8e-V&HC6t|sT0~GJiVf@RSPih8r_)(uKf!u zr5tFkxcy6KDs)aWl#Cgi8-)!~O> zWj-5%G#@zAo`CBYVDY5IXXahAgmNq9i-7eA!4RVl34>Kr;@+0KAE)w8E8kl-* zaF`*mmR0b(?}Q!%p}>N>yp<@%UQ5jSae~H+XUwa4*E-QwJwO9SnsLE)6#;R#Tl&B^gu?BUzC( zF+_1%1kM}55HU|9>K1=!rN~uf(GjUvCp&H7X*^$k;!8+Sgr!mdve7j@5pv$8CL~ES z3rUKPjF>#VF)Oec#F`Pc=zw*Pf)sl6xaGyJp+mId010m$l@B=<=tN-JAvBu+pxuEIJIv7hri;ILESc-&kmX=QFt*U}%Ca5#3>zDRXefR+@A zzXhKX&OGWviLzA0Ga&7F-luY>I^89MCs)%U6bYkpZ66sLMcC4%&7uLDQ>I*WW_HgxcuUhV3V|ky99@M#<8WL{ zV@IetY$F{KRq%vIebF^)fW_=C?lKn1t}ZwVKeU%s5TICN<3wEGJ=r_s8pVy7U5!Nq zzge<%^gd>HQ@%$~d&cqcqu-^9}} zq6!i>tm0-Pn0sop%DkSi#HpV2)yeats?eRh#uCks-+p_v0|CrwIHEH^Bz4LXZc{X; zRj^@3yVo(NM#b6PoKubSioD6?<9cW}I0E4XG%i#k4u#dSbWTTK%*oj?gnddd7r;l* zykX$vp_xnRs*aDvJmB+Z<%v^*O_jN~1ooUe%Qe^!MnwZ;QTSHJsv3hghhlcEIihyC zw!zOtV^id8uytL_<|)pF$4C-xWBu9_a5}15VS?n%Y_{Rl?TxKNB?WoTe`9_iR4n4^S~>)EJfOg{m#(ZT4(E++M-L$2s<>x{$0aPe%Z|_hFOM6elrFI9`)`OXv3 z18{HRtaYh!q~lTluCf%@j9N|AVf!hVOcX42mla+L^^4xEP+K@@7)STIoQ$hef}4og zH((fH>Qxz+%Or8Y2TAYiE7Nc+&qr~|nhSpfN_*QLQF;;#VocYm7Pe2rcB+rsxX+n4 ztWDLHu5>i&;#J4g0CD=s7j3mHpxDSxbQMG3*Ew}nc}(!LNl}SP z%Wp3$%aSk=mw~+}BQrr|c*UJ+r{UBrgZ2W4$QPh^)Gx1x`Z`vJX`cE;bi3mnbw0&> z%ScmDw&)vKf%#n72qXO$&Zz&EvxmR(pcC**ez`>`l6dIL{Q|@uCO9OA6+^>YknF;> zi+Ra$SHqSXxEni84v%r&PLJZ)@*GB-(#RiLIm@(;_MvA3)^5o|t^Cck$#c5|5Sb&n*H={M46rBhnuRjJb(#4I zj(!rH**3+jb9kMSAtRJo2o|wef@Yk0#IaYip%#1{QO6F!G{@m0%ICzm(5}Or@`r^S zJgnw;cMa!=2y>JjC9W34wev#iu2>q31v^nr9X(Z}J z-WtH=Co-E%;jDHU198TQGOR_+@Zk`znKf=5{3cQ(0BzQ0(*7(XW24Lb9zmboa|Sq( z^Y0^T4VNmikOtm0KaWg%7K5%7XY~X@ojwPT566DUj5-O(_Wf5;Zfg9W^}<0w*R!I5 z3x3?u%C2$7x4BrGU8~{JwI4;T=gV_e7B=z;i3pUuWj4zD(b+-CZ`q@VGI1D+l*;Cp z<+^LL=4A`-QaYwnWAg~#or#!cV?0%0jgW*Dl=ZIJ!ro9MV6D`sZ} zlQLQ0f+5LjkrRQfB_Jk#_+`QoeDHe$b>!Onj@KLo*Q*gEL{@B&ml^$;yLyN0m&iN% z%ykC05PR;&9!kduqE5iuX?Bc}kq z@R}LFlQ5P`K~d}svr}-Ea|cAL-4%=hL%2|busyQMzSLjY#+=JDlPTo3JOpf)^+HPe zAq(OlG74r7*xYgDP*x434)cU)LT{AWGBum3M_kdZ|Grm~~Z!_-Ota^RkW_7z~ z_{wN__x#;CKe1XYh=3(Ki>=@_bDe*^> zDf{DN7GU*oipo(y03=wF!=%gzqmctH4@GAJD=&$o4sbd~bFvr`rr({jLOr3;THw>> z8l1$)J=)7yj+Bd+vAT@^hlJZ$Cks-%=*#Q?bW=Bm+Jz_99vgI26WSLHFbi}M9G1Dm zu_!E1!dvQpNZdee@_1TSs8fxfuYY;{Xa|d@)sn(&omUtEX8#Nn`%4qiR z=`%)vr;eKBFYXWSnPizL?-kG#1K%VXRr-R$v) z4qR@(7*7~kB49>y0(GIxBq%Mey9jp?BgM|z?N~$P?yw<^23W3oB3_9;?HFrxg%=V% zZPgW?YlrbRR*xe1uS9O-;NrY_LULTrEO@T1d9QBLBMsqBU^2JC$BkN)Xxs3RpW0|3GgvE)1r>VTA9ckr# zRhKO$PX?d6UW~J2HG~qn3B$5JDX+sOit!+_hf`j&PQoFT#|V6= z0_Ut)qSB_x6w4j5@=z%19z)gppwpvL(SXQDMGS}nH)Fb|yTBI1{hWsJ8S`m`4K@@} zkr~q{g_Himtj0v1NEA2NZSb2U+)MK(Wd6F>An8%~zBQiIC z%O594yBH_8OR$1YJ<#_skbm2s7+L>3;H?M!hOESks6Tx7xlu+8s9g^6+#_YPZ$H8Oi*4YF-oSNJ1>Pl2_LGGF! z^qg#`LD3Y4n3@|rF5*1abdSmA!csjS|?3D?QkQtycRlJuc(y4HdV?}Y_C)x!a zWA_?^mK{e$O4W{LAec5)>SN6Ni=cKFFNScWmrm3x-m%CW%W~DBr^CK z9ly-L3@#M!!H+zH3&HZCr6D8N`hsxwYmZL`j3y?U138VCADw>h?vyAbTwZ!5Y?fc^Qm`w+#?w$Yw+OF&IlE5=G~vvl);>NFd0-%_fICYkpKsogxVO8 zSICWO`Hh+#-}FtOUx~|o+OtyP%6q8>C|0NH7~(Zf*6yyk?{Iz_opQuZYd7Y=;ZlhQ zq?ps$J=Tux9_PIYIYf3t8D;|ZP3(2H`HD1KbW4VdaL}CyOZ=eaQC++~qi#$ycysnN zXNhMIwLF@rXOwtOqV+_T$hd+U4WsvC?13%rzuuhkLeht)ENZvn8G~#giw&u@+eA;` zlX#!dd81OyLCGSWHC8?@V53SeJ5Uez>y88oT_{7Tb%-ip$v7*B_9r>O&<^V`Zem;qSSNz>=usk0>EoQdzmy>+KJ^pGM(@S-9 zQ#aI9IV5Mn9$xkd_ua86%daQ3l$SLB{7PKu*dJa?)7gF6odnBtsPM7V9I#(vYZGw3 zsi8`yqYU<98WXamX&G-)^r%N{d%nqP3CEAr*`-`Ixa|&4b+FEUvkVhHCE~{i3tTqW zpG3&}lUvBWN({Kd(hG-QMjk&`UUZdv4^SULgxvuL3nYJ9a;h3P=wuBwDw$vQ@xkmx zWNDj$vF!VeF;w)N2yv=0QLbol&c*o@`zRQ3IjZ=h^4=uK z-w|6P1rcwuJ|Cy2vh6LOy|y#z~s6ZK;L63mxnI={V-v|wb6ExRj=-xCo6 z6tTlzd81?$oAbpsyG|3zK|3(ZG5`Nw+qq9EEAu~I$+2mlg)1e?UG=i7e!cohN+~;b zH+X~F0ZC3W=1>U#LpK9*+^Yk+Pbn>q0~&LDaX`*8>GlY(`;=0>7q8*(DH~_k!RY>< zDoi7C(*Ln{FOo_N|M^0L}tD zLy7vJ95Ive{g2xD+xXJ-|9p{tH?o_GCw;%EcoJVK_L}2`Vrcu}{4Z+dY|829j3otA zNNf=|s`2~e(ea)iywtO&RNtZ2aZLmf(zZ{|_h>iECs7l*xpYk|^YCh?>{|2|g$Pgz z$frV>97UnSRwO7L7Kuvbr=9~lh+Gnuuf_P{(T%CR^-3*#LQ3G(5J&WAcL1< z3oWFQIk}bT2(^X3Rvd*e{KakY%VCQF*+Dy_9n0$j+3K(r0{9~w0|-)+U|A4?ene+K z++8ZgNhkus*!_*2xEU}`-AD7HBXw9np6pC~M^WQF!c}kRHJ}|;G|@S|y=F^BK4r)7 zvOPw-=f<&Gl=h$GSWahJMYg1qyAd2QV?nAa>m8>bIMln*;$=1hd56{6ZQYFJd86v` z44V$h42pPOYNj^W|64CGxXY!v4C?{XWKOxol1L(mEPbX+4sNcP27A&=U}iI1!=OgN zKk7+xFNhimOts;UHpQrpWnVko#v&j(3&_)m z8O3kEb@M?1#oX^&W40pfIUIx6DFbR+DRG|mni`15E=mDYvPlK*3}MNLO$zgSWOVDn z)Ku8>Q1T?AluoG*<5t1d(*2rXu$R)o_Xj@N10|eOlyE2oUml7h;IMecbPP{KYGWko ze2kh6)^KYnu3!?B)5{pA>tqDVA5d|OchX6CIA5_}8XI8$jZrwa4r5}yO~K>2RHHi2 zCAtU#0B)ZKPh52?E?=Jj^{LMYRHMZCNi$+#*Vx$W+%+zYBl3 z3xB)|f4U3*Ejx>~k=xUYx~6Y(1{@!}8{{!x)&?vxE*YJ}V!)ysy@+A14v}fls?l?hPz*9vtISl(xY% z0C2d_km#-RbqKHnoDL%WJ6|!)h!vP+k)EBj<4uC4rtF^j5T*(-^{z`E`Fxhtz0a#| zObCInx{v1TLnu*)PyC|Tt#OWQ+_=EmeH6h`Gms5SrikI1!MG{vI-CiYmZ2UWLI?^S z(e|#Z9Z?i@L!@rR>_n^F)i3xXZnx+KljK@4Q`*T&5-*T3^(>qc*yuuoLDr=PPTq@I~lnBagCbpujM_Y?2Mi_D%TXr}DUBoUt zwHbx9*JFc`0`xvgK>H^cgSHpe&}_H4eVnLvU_eF(8568^axSo13d5qB4eT z)S>6&SU4Vzj4D9;fVZ}xyBUZhwN5avCX~6+arrJoVn_5eThTVwTIx_UN7UqO{d!7i z$V8@eI?HBDw@K35$eX?&s?zyztoJ6VR4hr}%Pi4?PN!c=E9GN887I;r(d`^JEFBs? zo?1hS?AvWf!kRYs)q5xXtZN%EaO}9z%=hVYSSdhECStEad1=F}Qh zYbDwoZd>x?co1YdUOigvQ)P0Z=Zav{^U$3tr>!PQ4t0ky8|`|%IzggSOERtE&PihMWV`l1ApIa~Oup>dQjS^~&6xC4JlExqo|va)-` z-L)GKic!y#m>AXlyFQLqHxAKFw*QndWpvsnb+4 zt0?<+Nt^aAk;a&x*)0ahc<+!U{)8(Hgjk1l%x!cS?Q+JJ>ZeT?i`tSF6Bi|en=C0t z$ZSb;W7?zeVi+JuC~JD_C*BGI_ENc*3L_Pb?5;I}Lh8$0z?OEqXppO;%n^1xiSrr0 z1bIWguH=U}#*?#ThHMgjKjEH{NxI~ErL6Z1x#?325}xbkgO{fQx~xF%W9yMC zMjC&vOk7BGi}gvV6XaH(MXA8lrmMtX4bRc`+pTE&Xu&3QJev))WYP=XUAw zU!s$UFa7pU)No>%FL+z#ytoPD*X<^}p2yaE$^6~nHvOuXPagDAc%iX|WTqtq;I!^P=g(o@flw)#vM2l+2C|oGtX5vmoJ zG>NyO!!n5`Ln%0r5QVaXgz%MNw2>stLlo*Hd_U^LQ;~L@{d_xyL!Nu(Q7CTQ<&h z+@rRtnprQ?W=73!jgM!O1#o0729GY4xzE`wyh3wMaFjKiN$CYdXAiQcQc@ZC_pB6PpEK0Dey1;uq zTA+T|A=Tv({Va&;PV80KEo(RR&sJ|fvrj@C2gi`OWx>=rp>$l~N7kZgj~JYpiL=u{ z%$YDtwXj{&)xzPZj&y<4g;6vEIV~s$WkyiT+BCD~H5bfHvH>RdFNzVIf&+W-? zT2Rb)PR~Az?8T=avq%JlTtYlL0XLNJ<*N)eGb<+8%IxtNQF2bo<}Mx(mjfW5kfJle zU8YB#h#EHj<$)O2p|=&yau+!+`Yim}1kDjiaJVQhCbYxxGNg26)=}7RQbz+=OR;*T{57OFd@F2Gr@@LhwxboiGVTi- zneajF+A-MxuxV~(tcjR%Fg4ahR62yPs|Yt8(IaX{xDfGZWaiVm=)UJ7vWQKYv{g{v z6Pr1Te8{!yfR)viyk#~fgUET9w4+VmK#5968Fy9|=VMPjK21C={E8CdTET4+%Gon* z!yk_fumULY%^ZT$+_G=XDy%Y#4vt)Nik#TTa#)t4t{iHV_gB}B8!MD@A5nW_JSwTcf=QQa`M7k?6 zm2O*R?BLVemr?ItM!kO-_2FgI$Cpu`wC`u{X5a7(~(?X}oA)lQb0^Pc63 zU^2H6$%!X4xF+6mU1<&_EcZk>crw>Q{MD(0T`p9~gx4`9Dv_q^3>tETqFN_2{b5RP zOs^q~!8>yztINU195tPe|CKX8%RC6W>t@hR2%U-4IlY;!j{9Nx_`qL{IuXtwXDb+S zJWq}h3JQvuu3%=G#6s?hUrSf2yECFcdcUbaKx`TpV1&{ZXB4C2JSY0ThM+_qc{0%# z+aAvCcHAJ;E*C*wp>WMklZjPm86)w0VY5@RCZRNJASpY~&Z-)nJN#iE4~pq~E(i#H zazj)9EKWCIoXYNxw|$>)N+t_#2Z_gSV-PUy_t?2}HDJ&_b(aca!#=f3t**NyJwSdG z8kTqol5Fa#jqpXJwtvGSdRVvN%;?kHB;6pIj7T;c^Q$OQ9EiiBDECaE(|GWccW6si zvua&g@eD=F+Eq22;O;T3z@1#->L*||mT;iC0ktMZI(K6y3qiXoo~111_ACh|MsB}1 zJmW06fEX>@d_>{=d8=W>i^TE;T~!Q<9-T=-Y2yaE@Qi4MYXb5U**=%GCt>DKLnJv)3I0&E!hsqnc$_uK zy!zB{s%cEvO{I%7LpjrPvU(W%%fa=!Awk#S>#Ft{!d-gW7^nUvor zpS^thEP0^FcC?{VeP*T%pgcQMyqCN65@{WtMV%Od2}!(U_g&T3h+g0j%mBJ@htoaL z2TKtT=mwF46OyFNmHYGuOco~UBB~igGN;zYP+ZUxa3d~&D|DWQ3r*F25b^hXrw-ha z66Y4_I6*`n+dj7N-MN)av)CHH^RM}*cGwuFpe(!v00j* zyU8lnO|=HZj|f4kgH(|-dmWQlAMK1)JP(-l@%F25^FdFD z>o+~P3#qp4I(}?Et4n(b2%rV(hC-%;Dx`o&o3KaUaavFZ6`Gs^2ztBFj#$2Z{<0;m z`dDKTubYgF5mF=y`)UkSK`W((@pXBLl~<#<2PSaW@MJY^@p!6bfPb;r*!@w!sevQr z*BJOIwi-GzDQJh|wht^BIHgH6qyCV=&l1cQy3=RIWfC>K&q^YXAF|PO*DMb_^Be9! zHP{+`+?cqJ;VX||9YW^>$}O-Sfd{}TyVYxhhCDsv-jf9?*y z7W}$9B~ZHKrX3k@a1}jLR8I{aIWFE4xbw6%KZgMCXrU5L?kqrM`XLc&D86R6pUnX8 zR0x)e=QCEi+A9%-knvzxT(owfx7@)-jD7JD~Qk-3#Q|Ax>rST?|luP1tKdf&qg>DL(rf)(Y`lpK53QvU3>h@fj)^k0T@4 z&Yq?jyv1nkWZ{AuM*A!?s-mYQb$#?Y&E^QyOV4J+N_`58EKI|tk!f{ij6J+g>QX3^ zw?J=54rvzMTum?47zxJM!WrIW&gCSoVp8d3kr~jcM#kY0z#34V0ktkXbr~D$-e6_H z74-EeC*jgPkJ9mJ<>I;GeFqppEq0va>9bI^uqdGBtp*C>)Ertv!dr5L@g!q_m*y))hHksq6iHU5@x_ zU6JFJx<06`DKs2Wz%&KqN9Fu#Ba!2kMw~FMD;g>LR%vYt`%m{{bi`Mij~uTw|F`?P z9P!nD|G2Nq5nrtt?wi;}ixWL5U3xrFg z8WF&{shgK?L$MiJ&UUyQfudv@gfxlfD3z!4;wuhh+?(LAdhngw@?FT3$gsV8 zRoig)@5w|Z9khs=S6?l#MWUr89P*+PnryLmQR$jT@Jshlf=zznjRAM$^t6TDzFiR;fY2r4C&sQf5v8A+6CR!OPuNp3 z%lJ_AO!!Od$K9==QdT$;xvdSH6agRI{dmv92!~>vJ>`gn5Kz#*f_heaj2JbkNJ02$0f_hLPA$f15YhR@6LWv%tQgA`?Tx{;;xz?cdj!Mem}x;Sq|y@~o>2br8lBumjv^Ym zw9s8@QXcn2+#L7B@mn!86a&fAE$u$NtILqIuz5Z1r0_U-Cmdhp5M|$6UqgC#X5aG!b2p|vhi*`2(?TCFW&FJRWRngXOkf&N4g^}( zM@eJi`y^rs2ZXlRQoSURR1CjG*oM%iC03qzj=ASJQ z`SpSG%Qb>BoD`eyppY(2-Y|a#g{087p+ddL`}Wn1<6-w|!$+A!>SBhuj9=1!Sw_%5 zp1Nc9b!#j$K_CiKpfY^}ojJ65cdyl6<@4Q_FUD`@mTiN#s)-izwu%JEMJp&QO1ak@f;e4VpXtbkPn34fN>B9hPt`oZfJ<7=BiZ ziZ=UZ^=3;{Ys{!ui}mvl>8S}pcHGlyIK9!OjO6AXYmON+pl{~*Om0G%Tf~v!Exz&5 z&hd6OsZ;PH8$0U1A~p+iOuZ`+OwO7;?E+dT+2F3V-Sq~bMgu3{4BiA%Z;6X`@)gJg zjmUHE3^i9_;rB(XT&qN=j~&3Gl7dDhOt7AYyoky6iCDjj{CmE98wsXGbUDz|Gi!Lg z0y5<1`5mP-uUb%`) zHVLfYQMZ)io*D@|NaW&p@C0{Qw#NLNw>DeUzc>Y%EE1aW_$jGrWfs$s1u?-Rpp*OO zP=jG60y%SmgRt1sNv2NYuRI~`Vey){=ZhbDa6q0oq72UBS}}g;p37Ac$D;K?iX+Xn zH*EYQ$IFnH6k7#%>$yyM?|qgf3nrhsc^?ssNeE?W`PhfG471K z2?3QDn;&~JfM?oR21DaGTJEPPlw|d2KnI{2h^`-Bjc{V4EOB5hAPwqgc`{tgSP2k}QoPqX zEv?=+4dWYk?VGMnx6;TAyvs~k_j;rAwBd-K@&Y@c6BAg{ zx*kGqP+Yf|+9)HY|H+gsl3bBLZ;CVMFbgK`5oh579^HXv^^E8XJJ~SHR`E+`s$4&| zYtSD{jC{wKnNwBfFh-%yHK_$q;pS)@>LYZcs(3$2u+!nm8N5jyW%z zovakx`OV?56}P0r7^FeqWZUnF(kTBO-@l{1#%l2Vsu!c4y^<3IeDb^rDixT2%GgGT z;?6%SLaD;uh_AbooMAE*`gv0y*v290_&B~rmSx-i-WOJ`aHS)zD8 z(2|3R+I30!!{g?!Ln`kH74!+4? zNQXJHL4D!g1^8>hSR| zx}Nf8j*i;nK{;yIj*{>DktybGpJuA^cO{N-(jgB|@r3`cR)}ua4XUfJPe#O=%tfQMtQy9i3 zGZu;9`rLONb$2pt(A5Ad$jOHSCsdbC$&Q$7Z)^AhV6MX>qco42_=E)UTp+_K`8QUu z5F{sb_N*B&)YSmgpsg1&&Xi7|^+Ip4?0Tkb^mQ<|5A|r8#RosX%{I7~%(byf28Ec6 ztuzESleTp8JulS+)Y@@Z-pQ+-0_uLnc5j&gZ3CU0?rkIsX(PoWWMQ(I z&qS+D*Y|2F%!AW(8+Gf(`m^|@hk730u-pb`6SUvp5}}p0OqM{AZ`r(4(Mn~&2`|9ma9P`Gx*(5n zpHNAK9dd}?N}Ijl(P}r6wH)9%*w9sq&{WckMeU$|%MfqA_?UytiuEePyTCKxayZ!c zy_JBAw$suK@u}sR&WHb!CBep76yqI8Sd$UD0yIvxGuB1E%to7Z1^VG0wB1NBExQ z%-`Xlk(v-`D(rOHjg-$3=02>Q&GSpeuON#cqNN>-i|Gd55RCd!DXG-=ui6#(_QrB*O7~ z@8Y#57a*Ea>{q!@GK#S}bEH`(=qy*DSNMyxE4XtQrZThu%XIMWURUO$O)*NHjk#Om zYnRqUR(*>gK5lawyj-tJFu@#d@73U09x5pHW;PJll<((lMF5Z%;ALP~qdrb2tRYo0NgV!u?9Od8OD3^}M7d zaS1G=4oLL%QWibg5dZBGacA-^A)gKLdP}oTVAt2_k`AB@f~DTvHD?W+Wqb}T!1AvY zMZTG1he<}Ws7e+DB4R$0=E@`-gay0yft;UK;?H39IT9lj9zTjkdYTO2+}Dn+4A9A^ z3AME2($)gGDF6MBC91C5VKKwbAS?Tyo0UyPsy3f`4he|T+y@go@X429&BI!5wz_R$ zm&)c(H-$xV%x+0ZEHekc_kqHg-{Lfm?0QhlyB}jD793FuI}Spt)_shhz`aB@##9Kt1Cf{eZ5QOMhSOBUqreLGf4PNhkJ) zDIOV2R@Vu>pRzf^`Sp*T+@yB~Lo>jug(M-D9`26=ra zp7|F66eX8scoj=^gc~TaziA^>pR@=pNo84!5MX9mbn)(o+VqOp0?m&`FgLcZl96m& zBPOF8YfRhggTu@{>zLA$mSGYgz290E$@IxK!JxBVdv}!jel9b-g4SVaBno2$7))b} zuDQ&H8q;1RD)@&uAK%gYO{_Z&=lIhi8BeSbdr=!Kd|%@=-&zA0kb4Op>=`VeJlhon zlf_SILxYJ2ynGlFh%{WcnBLr|?a0U-MBg2tF-(S7Z3Q!vc2{a938*@POcGe65;9s~ z;E^z4L&l-iB9pD5c-aW})iT6VO8?RF=s@b_sbdgqBX~@SFG=rHrAsmCYSvqEP;KYY zA9MKGtSPPZH3)PS=){cr0>;3Y;=|=-V{&L*(k8GWiNjbyopc7L&G6-3N>ShCjl0ID zVwnFO#dy(rb~??m{^biUZGCyZni-EvYzoGe7`IySz=>hp?GPZ1|I&zqK}36SM5W8C z6bzx-S?PuPyHqN(H6aVS1E#nT`rZm8sVDtkjG5y;;AdyeS}l=Jpm3%u5WCi1IfXN< z?*yolOrH2DhyF@!x3p#ATteAi{1-g6`Ev)KRZyE1>Nc8@hLr%9B0IY70pW5CUwnlc z+&c$wsZ0U_a}0#O2P6#M1OgQTB;iYeoy12s&JjYJ7!1$!iMm>X&af3iFt#?sNh08d zSq7sN>7-zRK;|((UBSVE$559t5rl&i<<)vT7-NDI4+J35lxO6I{b$)!cT_90YgtC7 z;sjiUJ9%0u#!txK{$)?w|E&z>u&##jER(v~v0++VHAa>)`-^lB>^VsL{wT$&*~O6H z@szW*3I#d{!rW6eW_CXOT$MAK`yLOr{VB&n17kKI)6z~;p2Gn1%v93D?%R+Z}w zp$-$s?FGT*?^jle6^B?dX%q?Krz4(qjaKw|wM30+>&Nu5!!WBY!$bOSX)nt#U2$Pp zC4QlTR~vgAE)E!EXAbRZ>N5gKd=aJz-`94R9bp74+niX=5vrvX25`~p>>rK#Kb7+RlD^n4luK4L<$cd zCLkwl7<96Ts#y~CeX8!!xKP~D1q03s6DM4hYz2r%SCB&YE2*5CdIN_t&_sq`vW2p~ zV7&ji@a1$&?$$8Q3lQjx*VhejVOy^#PuH=c2AV6Hz*P~m9_`ejymKU~C5);N*KWb9 zF0%;vdW*_OOrH3_$GhJCR4tH&D_~W@1`*>WV=wlTMX6*>;M1#TV?Y-LMBOe{PFThqlQKz z$OP-3>`~}-L+yG6-b-;EHs@1m=^MbSgxTxN8a}(lCp2Owaz6!4a@aDPc|w(g7ZS0D z9Qm>VXxus^!=tNDcN>gJTL(JMR>-7zgCTn_uMilK(b}lw-2rY}qk_Y3iS4!HQz~`x zg!A!4Oaq&yg(&Jtb!fZVqd<&Ccg00e<4TS;;H2D)q|KSO&@cgcuU7y>e8U{ELe zTEDXp6Wu_jRrLYkx_r{><3_|%q-*TBKj;3UX?6Vx5Ttc;Cc#Xo-^^ShgWPGt2_Y|x zr4smJht%^09>OIZ$(bl5arpWKMZ}>6OxL_K=&hd_PxLmED!Rl_2T2;@!JhagGaOeJ zY8Qgg(^jO+xP#H7)m5#6anyIUg*E+Dt@|Y(3^%~cJ@v+s)Jl6+LEi;D;xPs=-;L(P z=_M0LwUCRcq$_3g6Et47@NE>=nGB{SEUeLMF`Y6d(~3xEfLca;8%VhXJE$|AA){We z@^e=#H^6Y|VriVpMmaTpVKbWzLIA*2iD%oiJK#8F!5zaEmTW|f%26Aq zw|L@5tekxJp;8YIZ(l*Gpg-%Q#35#PNEV;T;tfy0DEA-AzTNy6;9N?ZGIutjgv-pWs7%K!2@ z=f9jnA5z~VGE5)5eY35R3}yU)N8V-A-?h3B296vJnl4?%fduRMxr-FxSZU|fNt19U z9D@~3Kp_*jCu9FtUCsm%!b-`A3+mf|K$J!9^vb8K&eoTmgnp*z@v^bgPx4&m-6C4& zN*Cilv_EVKkXj4wu9htM1v@Od{m?r^v9~ZRRxI{>{RTX7e#f+Y&Oz*|cK zT*0aVJuecjaH4m2@_ocPo~^5-RN+(?=jSK8Pa$S7o!|Gbub3~C2Dn%(Go#fPACh@( zKPp&E-*1@z(yd;hjAK}%)te1vA`*U=R#rbH*0Fiwxp+Kv5EDyife!N`d-I4!5`8yQ z9x8vI|M4I4Km9}g=YPom?H}@g|A+iP{vrR*f5`vWub2$HKR;&P(Ez_+WKenCZ{Hpi z$iz%Vd!sq?*(Uvs*3#O5a60*P3P4=S=&mlpj4u)PBg}KMF7`z#;ZecqOaL|4$D`dO z`5$(&zUguj79W0FZ@`qkH-x<~y>`}C=8q44PP|`ON;Oe8)Zm;h3{*GQAfT-FtdvdJ zCwlO7+?hMhGX>%geSEt7kn`EMm(5u^pz{j{Y8(}@MX1{`^7(e3Z>S$v6Uc|Dz`DS^yTK~}dU~FBq18|146{Z0Z3YNBB6;MPIB=aX&Y2V~q zHu3F$j)rm)67+%^rqa|RQv9IL9=D2mK{{-2#RSV2k_C_S@zI(DDZfl~1E|{tQ!?Br zn;DNGofL}KH*M>XB#tcCqO2eg2;B%v6(@xpbDUc2B1iNv$k*o=G)d6;NN*3XQeNwz zm#5zf$~%IEfC~Dc-h+)}#`Ai=1%pS}*$H}WrC;;ND7KK<{d!TvJeE{<_HZ;b*v(7S zGtM0uSJ<|%!f;4)r5Ga&x*%~fk7Ux`Kh&1|avZ&djI_voo!Hv0Lu&#{zx#$4Uq~&* zkoBw-Q~FmlJBcOr4S2A+JQ18r?2E9KGliwnv(I8J^t2VYDZ=f5Hmp(oM(G5Dgq}r6 zB3-&Q(v}TtP#$f)6l`xGcxmB2$cl>ge23dH)n>{b4?S1rGG@vmS41XsFOife>)jG5 z2^xw#0AdYVB0|qtdg+QIK-IsIf)yUR&(f!BM#2lWGW-DZt&FM->`}1J&=-q=M^oaV z6>omO4ymHjFF&mqXjbY9ZjsObhQ;rPk5zRr=&+RF81xYVS{Kgijs4jCBG~3)w+Zei zIl>uS{jPfG4lpSmFtc(T|1n+VOe=BVE4ogzse2hNtLkNn+CNkuH1V8-vL|mw| zu8~A50G35cYC~tiJs6SL47!$neg4ar6bqIJ>JXf|CPeXfL{I4NGn^-ZcF@LBUr=mR zqNIWXGcio&7Y!_8;7j<>tBuD96}kC_9vcG2@m! zWlblTq05g48_gwg&mb~lWMz!->O*YGffDG}B20<58KO!5b*2c#m^^dgGHSDfl<&+e z`C+VBcY|zRU7XkqkMTH|3b8?SI58>2kvZ#7e6Y|_W&?4^fj>*aXRz$!Q^8|70-hhmj2 z(zAAw?q7rQ6g%oOnHd)?iwIP!gI)%-o+b6rL=)x50n>%H7x%UzG>2sV2%B zj0`w=?!#^gZGZM1+LF*vPgjO}5yjCh-2kH$EHHDG)mZ6N@S#!c=dw{|uo*02{xK6o zQBP?}a||Y*skq2}4%(RU;-r=G7_`BrD-Lp};(0A?K01(8f~`1QS^GrtBbyi|fR-<- zA1jDISQGIdi_p?yle2dh`&%MK-<@?J`<%CI5xYgW9XGZEj7?6p72NS`1TsX%CkmNQ zxLk2I-om05tM9(X$yj7%A;X2Ee8f_5LRrb5*fBu}2%3{~214dVE!;9@KX)H)0YBaX zequG2pJ&a#kad1`i8+);tt|+p(e;oTl>z?COaASd)rXE8DhKYTwo1)-XmlCZV3Y_i z%XvgEG(${Zx!d&6W~dqMq(pWyHd#B%m=M$6z{8UiVv5Z`gd1=NY@mkAeP$~q4nYB_ z;}Laddq;cLoz!i3-1c_i1eG_l+aYO+VT87|r^m{j1bZzF@mT6wMuw|ZJtJL?7G-r* zRyletyE>T@#gz;yqF^nif|usg6g-#pq`Avcfq$9BI7QC?TW}QhUm~9{Wgg1%cjbZ_OhY32dq@i_l1VD2RHm+2& zAWGzg@-ww_gqULIOv<{|g@sHI3b=bKpH8cLDG?agXdqKN0VblyrIW}fPck}`2AGJ7 z7(@6<#H73_N^9gGOWs|L+civ1#6MhxhNz~YKe9G-MKK%&40#k({CP_%F zNkwTQMOYcCnRrD~dj=QipG|Q+m=!SVL(&2GkSa%5xVt8gz+&UyJnSuwmIbJz@G^t# zeO<@L>pF6)ncJJ%`)Ez?bse9s>&VS_UB{<)>iB$J$FLpev3zzN;N%R?JMl0BwSW24 zebcvrA(%fF@_72EPXsJHy6#_A&17sK8* z*vJUPj;Ja?^!h@`Dbo@fl{v5kLYcqC>k5%P-oGj4Mb9=r>hH_V7u}n$l|uh;7738I zMSD!$y|Y{AC=XBqvE^)i{g!$X*JVl1ai0*qU>eUwt6|OK&>Vgbj?HOpu*tJ zY?;{F;I_rpo6&0k@O~~Lw4MQCs@zulMwWsH2U@p@fwd-7!-|`g3^HT(F1E!dJt9h+v|p3ULRyB38jbOyu%0qA|1D@istn|&zk-vB+m&HLMjy? z2l%d!e&P{i#10A`2IJ8$`Z=a+Q*qQ%8@fuyR=*LVnJ}LMW&I05m;hrfNMC5-{8h+a z(X_uB0reGqN{+IdHmP0u^q7Itn3vRoKW^PaeD<{W@7{EmOVwlgPD*vZtVRJ@xd8cY4v$G8 zvVukMz}XtpNRm-f4ZmYZG~H8G9we235Z-`7P2Kvlk)&Q-?I7&^_HF$`5t(&!e)sA3 z-ykXV)=%5$E}jnnHK2tXH$qIKPDKz1_6i}iJup8KF9HjwxFw1l!PACLL+st~NNDAw zHXHIa3at#bTUCJeMNYU#saGYL8|Ek`5n9w!rH*<%t}#q<=1I|HP%~T0F+*4>`YofF zC{vq{W*abWDZtFXwydZeDAniO`_P!Y&SIHTe>NQKta3tWj^6h|&J;6=u11@Ysg(*_ ze%JApd33fDofKLis!35iZTc$q>paHvRAO>tn z>Jf*_kc|KGmX@}Tx}4e_4^MRXO%I7|EMpRrPo1D&`Ll49QNPKcJl+7|kb0Aut$HJ! zA>n$SwI4Hr0AIH_Y~C~umV7y&J!D#f_w^2<+DO)>ks0MqyI2Z0c4kCgkr1iVhJ{jC zA0CxJa0pf;Rd80gVbEOtnN5&dK!!4vm2=oL#Rt<$h40+6GX^RK-mnq?affX zd5COX(YCL$9I7FI2LqR|>dII?muf0suqqF|sJd#6Y~+6htS^|r%Jc&HmUxC#Sr0jg zRT$YZqp6#dvNudbgXuGK43RC1gIH<$%er4fs||M8oa=FbwKu@^l{=D`eUKNY>)uY! zm@>+=XGrV=EmK#F-$)Pl#}wAl(u6N)nIl8tni2;?FpV_EFng-HWGW3M7L_d+jV7P? zpiq0dvdrGlKbbzfzP6`p6T+(@S%xv;PYH|1Q|jgthjf*LVkh^AccSbt_4tAam}v6Z zj~!oS%8k^S92ZYK50CzZAt!?=wD%x0sVD$C=Jb|Q1SSjyjsOZwUE|A25leTjfYn!+ zpcg&&X?3-KXcJ4~)Vr$8szgym2&6al0n<{@;3+v*%+<+^E12w_lA|Hn@MC&yK%18y z+K<;8CnuJc42&H!AV@g~PTB;>gHALlU#!ICC-Q}>PQI*JDnP|v^~`Zxp<@>!e(o-8 z6Rn!lEbexoNzNG>gBS?9Q?KuS{KuWjq}RhLPOi2v0E`q#h9=zY2k z5z*g1{NE|_J(r)l%H*)XrdXKsLNj`vhJ_TSY>#XTMK=iJTAzGJTSMKi^yaTsl=5t6 zp(lWx!9l?prUApFDPGg&QD>8`2@qyLhz^2;xwcj)R0%UIq#M>$22jDDySYl#9D%o# z$f>5Oc1n61LADyiw>;sqF`cKxLG?*cM=k(80wBXfe_w2`Ea-L5auBl{rW%C$N*$@o z4e9C;Xwgkh%pH$?wF;wdJ{U}$I4APNcnKGhGit9px@@ZG<))j zWr^^7$C0VvT`$|I_%Er5&Mmh%@JF|*djtA z>5zBSl?fJE?2-xmv_07vZ8Fw~P>)uN28r!kGe2uc1e4 zF+V3;wMe)YvjIb^>k4#Hb(%E`Cgjxf>d_N;mQ1C-(HWaJfjB`66vA*7FVe_b(ebDa z0ojYKkORX`F2#%>uj7Av^3l}ah7q6ha%ZN(t?rNEv#o$NvM_~@V&*Jri$w!H>URwl z6pZt!c*;lxePrK=QIT(Pp(CAX^O1?O-u7PA^6>-UMV7M55;Amq`19or7R#* z3PpK$R~UIg)ynJEG4m7hwz{0A-pZor$pz|;0=Jy-YfcMx15(*Yi&gNf$Kz%DBpl)7 zy@uu|%(SlM#VLxOKwxot6X^q?WojS3A~or3@DB7nY@)i)I~^<|o%9h0%$p_)(nZ_z z>48DL)RIuP7}8`Mu}yMtVZg4T$PAmvg#(pZX;5N-GtvE^=026N!nHN}tE1FzXwuE( z!AB8-^Z7Q33U%;5%brWte>OpoZ1?a&Bh+5fn_@z4?mk>W9JX^R^XaP0=PSr>SCHSY zAb(sz{shCD39Y0_pWwv9lWCd;tc3}N&jRG&0Z%RT0 zD?H6P5cC@4r{d>QpRP-Nz6Skv4f-7t?7A`T&!tCL`l?hRK8?y|l2+2(kK;>|F5XNVF{H_`(H z_o1^)fi*Ai0%9J|U~cH$JFIGE_|DU7jEY(nAF%bVfb|8$;{0PT1#s#|O zjfvmK#2;hg&oS{YbhEN+l1d2*jp&M_BZpZ1mOZY{SkA++m6TtG;+7E67o0{9KxAgg z<<#pWzI+xo^)3oE3EwTXtK1bA!o7 zRgwELhwh}EKI%e+5P%;@h+bdBG`q@z*o5N11I?5}zpYV`c7WrOJl)MyR>=>{5|;j~ zDF0g|SQE4nz?_<(ErHbomU^n9GNRK%-EHz6u6?TSCK04WP6^B9Mi7r$A4k=$N2GWq zV1rcfganeGnaL6ikG>6L-=2;C3IF4f;TEPI|>A9Fp>&DJkWym|z*R z2;g%Eo;Z@#ama2iqWV)e32{N{r5&L4jR&ik+Qh@2Lxg zl!K#a1xw4pNH<@&Ga1$-Q=bNG*f4-oI+l4NwT6Ovz_vHk+&QP$dWmun8dmzc;@?Bq>pwA9fqr%^D_bG2pHjQp*lQpzD8oCPYs(>aws$~#*ar8e^-HcyJOj=2$^7;fv zMfh1Trrm*1iG<0jwM2CT>@l$3^=5J>K$T?fUL!(3nGjZ8vmZ@N4_rjr&nisGt&nTjNVk9#Xhx7LE zm58;rojkwFEm~Ivn|l@^!h0^P>}!QDX=Fd|A<_SPQgsP`la94k(C#14&%(3|&ek ze(pkMv0f8k#Pxd|RfBQH(CZ0MC7qGa<%W?&Hp+5ibSKq})xwOU(&MQGj_5u?-UB+_ z+^^GClsR4?yU2t7_-OQwYi}Jh)iN`mz+gt0dAv!wFAOK*w^fAF=WV&B)p1cjGFP=F z2ZmjyH6L~H#KFcGi+t(a?5?R}#x&!sWql!3t43_+muzS8A*o8wS+lKNmMGt=%o^() zrh$2_rk0dZ!5b6>+8;{SrXB6~49EIpL%+JSrl9)B)RY1t4i5<345_kFGgVl-P~cvL z;__J{>Qxk^%JwR(ktlGl;^C@_f>haFg|!$3?p3U>swha6?NwOwQQ%%h9i)9A1*x*V z3TsOW+^bMblf_&Vq{{XxtYIl|uR=Bniz*6IWqTFY$`rU)p_{rz6$PoXy$Wk`3f!yM zUR6<$D%-2D_NTzTiZ54H6r{@bDy%UoaId1C$?GdpkSg1&u$HO7y$aFz#atAm%JwR( znJRFvVt-XdL8@%8!rH6?_bNpA7QHA)mF-nn16JT(#qp|&f>haFg|%h{?p2iLrcY-< zs%)>qnzjP>D*n3aMM0`;ufp270{1E;9xUdfAXT+N0! zmQ_W-^awQz-3t*~ryy@c^{^fTHdSS$)v!~5B?h-6PcK=(Ia@!qr7>lYMbKB<0eie? zC>y_(>`#1PD}iRZ?2ehiOWw<~Fam16tq*DeoQnU-s;x5bnc)qF*SBeKZ9yjml2 z1+8y9AuYH3SG$ehXyn0m>N#FKvVCpPs%YS9A$ldBFfK6KbVaY0(E7&n<0wN5X4RNA z2W_cu5DdcEQ4fLXCKv`bH8Os2w#p$3ppW5^UKXo^WaQl&gyn#OgS z16c^$)})mMP(47T-^i>XLg8801a;yQP%kGUpOR6+$WVT1acqX z%W^2-fl67?Z8r{%{Ji>!a@Qo#TfnNPMfWV*sm*%JRwR~C4~_>js`Lw99cCM(%PD>l zX|EvXHU+(6XI|$?JbZFgy6Y_4xigS%jalt51zWi`f@sam<5|HeMS__K1p<4Nu1b@J zluw)us{$yFy8=2)G{O*A_M?p0B#a!-?Y9ga+HXbopc0#=<1-B+$Dz8IG}g3%LMuHa ztLyLp4IKIdy47y$lHp(`m$0g0EdSv~`GVal|M5oog54_r=|=g2-75e2M)`u>D*xM! z@&&t9{`VW@3wEpgA2-Su>{j_dZ!j$QFw{lR%`2DztNb@^kK(m}yw1+(6Yb)$~jD%Fd*TG7ZQ1xXw( zRf>mM5lCbK#|zUe?!CgPNhi5_vS4BSm6Be8(YFkRClnQ)AEQt3c1TvmjIc|CIdm4` z3RqvT2+GuTi|#F?%8tO)?x5~8HhyL$O{K%T0TlI32X6M_hI>zQcFf5)sUasY4$NC} zju9h2Wx~1~GGKu%fO?%>psQgpaPExp9zAoJhhS})YYD6`AQa&SLID1iOhR?jEbn;t z(e5ELyuM?+?J}7M%0bBn2$`7PG*I2svx2&-)w}dW<93|txS7p6K3~4V+3ch-up2bG)Qe-_V<+B!%e&5U##XHg8cfY0@j>F+=Oq7irl7t!)_G#00Ft%}q$8 z;k&c`7rg>0aG;W-qptK7;>(Uf&Fp%2^mEXW7GajTkMQtpDw<4zCp{+|y~ho3%`%2( z?kx)<(dC=xt0kByCbXiRlpYC0GVirHF${?(mSMyyDE`QK10j~Y?T4C0$qwP+#c6mA zEz5%T&0bPHC7xKX$h4Ni&?~HGnOy8T%S!j55xWVO70-}~R>d8SLC}g#U6WAIa z3$=!S=&c&weu^zQHQcin4YwA4E{2xrd1yc1Z=q)`T43F*)AVYB4WZ$*PTh=y6`oEO zPP2iU_SRBzK>S`-(w~5oBKKLloZ0EBUHLW;3mK#Y_;9*tp8YO^wsaNMSu5HjlNwPC zd!JIYfZ}f)j22kdHYhxRYA=N6V;YE=eUbTs@?<-s9bn-A^b(|0zi_K&Q#$BkcTtz| zXqhFa;s9rsXhDrRV%F>GhfHvyzv`rkBrecWSejoL{H~gFXU>{c&ay0&8ipMwy`6R` zOSIN|O%WB5lvQ04&kiSgNbF!(h;35ufb= zGVr{%_k#W*S}+UG+j=s==dBKXdC+`dYYgd+i}a^OdbLR3FVcRuV5rYd7%wY53bEc& zG@rn>1P75E)3q<+MD}F49S{R zR@z`iw}@y+jE=Uhq4f>;<6Mc2kn#Fm`HV3II`2Cse@s_7)+*uS#qA@qN%YN;H^gxY&Ww#9J!$wiv5k5YE%FeJC1XSRQ!gGf!@n9PV z9`kUB#Vq}YrkP0QC4t}QrjT}oU4ANPWbt{Gh9U-a)m=+Xg-N+0{67$WKHj3Cu7g}r z*>!q)Ue7A6SS-xf{RqhYRz|76edn z9pWW3LoTnRAu`D1doV_4ns+4%l@VCv5h}{G+{%l`e#aam2Si{5vgYl~T|9&la_(PS0|>Y9xTaxMl~Ob-7fim{Y_rg|BK43 zzFD4^UKD}0an$pUFPz^pRo`1#>LySf`PIsI4g08G&&AfeFdyq znZhnMNnm(pp=L;xW&YD4Nsr>m7RK7nI9dZxCFzssi}b(`_95nXu9wbRMXOz39_-r% z`o?Vtrrb<^q@>H+@N!qUSJ@n;fl|$Gf1;Z?)e8s?dVjwKb6$OerAOxR3F#lB8r`MI z&H8=559zAa=liIW#m|p9p0u|B>kE+52U?6R(W*hiaeqL@*0ok-GWw>YuI^P_L8@K} zMlB-s5K>Ylm~)nbTzp5Z{%cQ~NMOP4$oKJaK>D#0i)Fcazz#j3r`NVdGBiUPkF)^8 zBhlajoa1D67def4TEN3OqJYp6W}wnE17cR%wM+mM!^~tW0l>Y!hEf|?J(tZsGf8uX z8?)G%lN8iDWb-O|@l(X&4bGwdlO$@^_30!!$_zUI7F)&sCv1WaaSN=WK|*4Vg|Jw7 zlxob{Pr3KqpaJfd2UzM!d;ytXVPjp_Od z{z^}LzHJ|U%UmzXNkqD=OHt{0hsyWZjLYzgc$NKq2^y!1D~a!WbHWU z{bRks^d(HhcDF`mh>Y^;64=gT?k^0%-(=sY!k<+g(4V=At87=n&WdKFyMZJ^$|it| zu~>@jvac0~)lmpaUe%2te=7%f)<2BWg-zQDCoWb)u(2ldg*2xz}6o=Y4G~aQ_{X0 zN7;Zi^9Z@is=9KGMQfZD7m>j~W%TLsX3{04;|`fbv=PRT7^5hJ6-hw$as3@aCOq=w zI_w}1uL`eiHqKu(C$`-7!E;d;_IYk9H0kT(C1crywFGZNN@8#cBta1nIi9Y3H)>r) zDT7c5)@->qqo&AXu$JQrI(}1iJsiI&=pugFZnuIx6PR0*(KI=ho@avVj;EEJ}h>d1Dl@QjVnLRZW? zaf513kFqnQYMsjZD4xn1Qe~NjRtv{8STg~tBm-<2ae}iQ7NDD@W6w>c^Nb$w-Arfj z9tovIc}+_h@8b<(I^2!VIu!zJaHjd2U_!Yr2a~NEI%)28c_4>&tSQ&+&07a*C|)WQ zGfdVDsX;M<%4zIG$VtJyov|Jp^=~Xi+N%yPR#%k)A*U3JnI+~(e<)DFekQ6<8BDSArwLR%0=u(mVE+Lo9t&+J7i+| zn5nm~;7&_Wt8?SV?~|hjp4qx$6vMo2pdXB6q$kxHy*_XJR5g1eHRw$#H>T?o25%NZ zPyI+&ZMHOUbtfBeU;AGFc^ z1)6r)e3M8e9bcdsJEMcZFm^^+Uh4(AVW?xyhj(+d_22pC)4Mq$5bu2R+q*fxznk;N zyE%WpoAa+JhgGOKNVD{@gUqQOG-}Vh1sCikXIqa#1K1;bo_HX_KWZtNdBSd!mU{}yUd3d^<*nM7nPkIEa z#2dZ?sA`2Ky#09He3P4D*m~i9LXVe%It{WW1(%PHo$e}qVB)cafv*eco+GldGsDYs z5Mdpg$UICi>|wU}hEY$tgDh`20ap)>++JS=SS0l8489x=d6mx;RcV>D9ad{U!)ysT zLXARGhGfka<3}+sk;oQ2!CUk+ya#82%fLBq{J@BkQh>y36oh^*ipTn)FBc~zWrQps zwFEZA?hg-b4{>WLQwob)qc++&U~%gTS{*i%GUvAaz_zh*wBq)LGLhZ*a8Vo|A+K4U z{9UzKOrx|6y=0Vlc!FD&nXm(Q%9chiC;3(-f7WNgGlVxHwp4LL)LiNesj}c>oIrY~ z%&QV9omjgyWOGPjg0TIm(S^J?=Ab3Tz&NT?$Y%>Jj1T211}2Qp=jw3v#B42L)iDMk zvnZKZ6@=P!J+*zil<}vZx(NdTws9(0(_$cr4#y;Kx%o5Bn`Se**G&%kovI&#=QraR zgr4VK?>3?;zU%9$Dhx_Dt!zA9=W{V_a>~9__z4>AkFv}W+o}5*uD^wLbSt2`7zZz% z&}rRDFkAz5$gz3-`V=1k*hkb}9Rd>Rlw)gjX(`P8|XnHq_N0hxNj+Q3a1F_*| zSkP!%W8n){2>dvLD{?)y?@=>HG9|LZjjAY zTmp{`AN_>c45=w#u#WSk?WOS(42s}Wk4H(xHvAPGl^2-6iPmfyUn4-h)6Ck|8tkhS zVnu}+n6B5u^glEr3`{#`BkM=se8=-i3}A$wl7?4u zuBB;0g(gg~-RwDF8!?FyGQd(mYgQvf;O*g6N0+ZiNq2@d1v0afL;D*x(nNt!EC_KE!uYTDN3bd&RFcffkgVa;EdpF}trLeqPgNO) zH7Xb^Mzim(fb|8qK4u24n>QJB5&^Amz#t+6C~ha4B2)rMP!Xw^b+T64S|d$GQx7p) ze*NX{ELFAK&L5sRzOB`%(Qa0**RN5Dnk41FsM;)6}i0rzwgyyZlPG6q3d%s zmn$cx)`|MoN&@T^Pu4JmS^x&@ZngfRfXR>ptl3H(M|nK^4rf36ryGM%v|59}#_bS2 zQ3X2rQo;J36jPYBD_|`HRcLmf^&;BaMyA=pk&FO#pLrI5GFh~fk3S(nE`6@o|7eI_ zRN4~+(5%%_6x0UOKFC_CIzuz}p`{LgEfSc7R{?f%!Ki}Y$*v@230hE4FuPxLu72`t zmo~!j)%$?UOT7u$!nRO*!T2ru^mdd1K%8dcjB-LF?Z*Ud9%9;5-L9^J_85xkeuv9u z477_pFTnk@3ZE!WQHgb%mAw{d&IXGx(0xjzJPdl9IC9K07 z{V~3TF}ww@@0bFNUA4#Uh|Hd6shQx!7oDklKf6X=zT==%%81bU4faw`@okgY*wF7} zRX3QAp-A){e7^$L7bE`@S`xZ95L9MlNVeYi;20>ZNIJB1EXw*`lV_e1T9zan@v@uIMY5f|RM>o}0vSI)gIjO;>gsIcICyArzv9_}-Drdx=bDen3Ta6puE%n9)jx zIb5vxj$fQsOjD)eriXzQq;tvCyFh0jVP2S~wab0OA=UME32YM#?R`JD2I9qCR$Q4( z9oJt>FU$J6Z6T1M3rar8@?U6+G)>?G(3t;K0cc;-G@@eVGYJyP9S%$zIwzOaoqTOI zfu3-pVwV4H4i_F$St6-@cszbq?^lP!f>t##vdxhryWw$$8pbjcowN#NwRL*yl7jiv$`nSgsW`V z_vkB~f7E_%DL)>XyKn}O<#-clO&bgMdY zvJ$gf@MqU7x~rL4^wwlB2(i^0aJ08HQ%1d|QmYQOk&6 z3TMnCkXT$iLt61en!~Mar*JEGYXwq*<_sVWK$45LaD55hKgwwm<{O)daAHo#R;RCx zpd&2??sa1&(3q|)+w1rokR)e z6d^XfVYP;2b(L>IWARPonWgBdu?)<*a7orGlW<5mM7^5aKnFB4X6b*^|bz)H@`rXQs5my}NI6&J`bjIzmAh zxBYVsU6jeD*&9J^B;#uAR?kd;YJ&sa8NwJ&)cRfd-n=PQXI&wOhM=9GD(${SY1QYx zwN#a1u#a-vmp9gGkPuAJ3S434Qi;YZ-BqSlu@5({jUN`16i#5PI6524PYf)&8Yadw|Y}d9P zpf%z@NXL!7YxU}9Cw>@WGxBOgDj8y_71x{bxwO-Wtv8yNi^p|y^3ul z4Me00n8cRb$YZn>en643mnh6)p1T}lA%CIfv z=t#(JtbiegPGZUH@5!?fZz~C3d9)#ade9?{F+G{=Qnu$R$ems3+;M4#c3f&F>yEys z($y*NqV`-#LA_moj=ENFEr2tlLT6JI#$o7Eu`PWzCe0Xj>p%$+p7PrPTD|azsQ}Qc zC*}$<+e2dwN)t2ok0FNvKscQ;r;5*rzk`S&9q6fQ!iP{RqmgkLfH*c34PbrYdSJ*L z)uEv5vEe4r?lNq}5hg|MF9Ka2eJ`nh^)VeS=d?hco~kmiYHe%rd~#)2_R7FpC2dz8 zYf&F5CRl+%pw(`Rb7t_yRIbOcbkgPxcb!n^7H?+MmyA(b>SvoGMrEuOmdz634^Pf- zah}axK;V0bE`zEz`qA&MYmIY56_eHFbPG={QWiF(md7SYRZT~*7eo@2#u$+!I2nOt z55SGqMlZVq_wniQyjumfGI3a#3MXH|Jcim?%CL>5fc{T_YMm9147hessHdt7sMs#G zzW- z72fVWS>H3=xSxuiX4FK95SY>nSrVd-qI{XmadHy)pDN8 z=6AnhJ#2`uKIzh(T6(JLjxrM5b$fF1)o(pATzpoQL?|4Tkr_k6m`$7NT{!Va~_g0rkO(ce3hhpYKD+UGuRz!mVMt0k7{M z&W(p6#Uz#`r;UDR=~)4WNrXrkicU zGeOo*(BZ@OI~udY<-70CrW>KP?^Gwyqp#E^(3d&1s83%o_auQ+r*6B-M1toSngEFO z1~56Y6Hxcfl=)Xp97{aj>_+ctqo%$HnKu6@n0q3Jy;&2?RPwnlo!>NR63Pz|sbol3 z<6z_yGKdIAQ#sBQmdnX1&Jk#>sm{yY9YcPLcZGEab2zLRCYqEKJU46kZ7|?qab&}E z;rs!^W=KpDLs`I)<$Ts`WzR+sAr?M8x+4}T)t8HRg!^PqOaG&zund`ds>Z?e1T^N< z?1sO|IZi@|pdj6zRG}N2YAymSW_TfPD{kjhd-O@N?A!Cbv>wl9Bw9*GlOC35l;))r zwZ;z#_Tud^M{oOL11^&GWegytK=zd}r3|TP<=Y3wG^VQ@OFqHD7l_amu)Y98r%b>1 zMQ^U5^$m;JMAvYLf(NEk3$VFi7biX_H2U1UJs1BtFtEg!g-Q3VeB13~dA91%h=GNs==RsCjc z0i}vwW~|UBiIAYaVR-&#S?Kl1b-yGz#hs#eW4bueRm&tAXi1rl_0(7fTeWb1 zgGu^vd|L5;C*LJD&q1;86fBSy99`FRECnTOTA`Bz0i%8|(o~-ACSlh{wtiYX(>~=rg1jEigOcLAt_-5J;4T%0bNe z>tuCmU`K_R8`;@E4)3D0rWnw2!Ea{()HO zr|v8aOIDL9MHdu#z`Mv9k;kj%hNa@HqCN`@Or-1GC@joM`$(rv(|e(EPsgDbz2C1` zD>iBY@tAj=1Fhh)_|l&S#G#RUuj zpiPKS6-$+5MkP8&{EZo`K^E&#aXDwAzkJ8I_^rs z_OtV06I4?K&gsHXhnTJgQBoq!`C42r!K^pZkA*u#dnF*OQ*eBm-OYnw-s_rm3HaRntaKq?D6w)yM^iEw;$M%s`UboY)gr-}vC{wKdiOe*Cz*qog#Wyq?@lf%Z|z1;-^-1vnU$gH_O1GCw8Gu!E+4OsF%N*6 zb4tpErTa{$BwsVBlj_NFEo`>$ zqdg0NbGF7NHtxE`2BlNoNIT22^c^@7P)3`gvZ+b4do@b?LLq2SvhAJ(9R%h{&{r`& zm=`}3IE0ZlzKe+P>VS;o>}nMTAdxQqo^oI1*rAJOyK5o&$K@GhCZ?DD0><@J%_3#O zKDl_)o~km9&7m5m$E*U0D#4(_r}Zqe9&HtCS^Um4S^47h+cUa-6Hv*ycW=)MT^#!W zWJ!gyX)nka2m1&eTeH5SXb4MvIp6Ez{S?mEwus>nrh3ivMV^LARRt`K?&8tOVC`LC z#)%6Fnxcp@TZt;cT&G!sYvsroDuOgl@s)owl5W6{J6|%Ydd2QL>U!LFJ$%sY>5UN} z+6<|-nbQ4MK~PR8IZEJYGLq-5$}$q)L4&ERSW8q11MTxBgDWntDe2i7fo3_FE!V!u zqQQcBVXdjpi*K03?v)vvmqO`S6#%x&1gH+VBt9z+Y4z~v1u#Mvfb+@JxxIVBgWfuH zqCZxs-p;BvXnentR^d@G)TQUQLB4|inX)f3a^w4q#G0l@jiaY^OJij<)lPu1y*VR^ zfOj3Ph1R2j1+lYhHNmrX53xJihI33;18rx*OSPRj2CSh3s$i=;8BB9vdpW*|ZDY|I zNW2l&9kA(|>$vNUmzk8L`naCZprw8}-|4!VpwjOiM{P|o{hC^zlSp0D%^&mL;x?c`-hYl51$S!4yZX`@<9u$tuNm4KVG2 zlRZ^sSk!<Q!5~b-#D4k80AojAdIK4fv3^*O3o0hUicCl<}EHHdt z^v>wa*C`XsT%V>98Z%EMiR{?$MXpNrrcc`Rede;Hyu`u~OIk%5tRd26kEM}s_SOuk zvL;E5?Ay@~>}_A(8C0biZObqHM#r5~4B<~y#S zRTBs~e{*@YJ;3xu*A#gF<~_e!_x|n4s+Hx$WK9y*?h#Cjz~|6SvYZ0#sLhGMFB8|L^jN~` zV}>~7v4`0Q3s99dk5o++kbT+9v+=>X8B%4Lq@L61!V-47d@$tmZ~|84A@pJh?Igkf zV1GPAq(F2q!CCtvSWXqeaw0kgDp^>M%dcv~qeF&w;65o9TEG`pG(NCQl?V!21vCN7 zIl>=jn%v|Gz{;F2K-C=m4aJz4yo@6fmRP!5XYPw%5ASiaYDu$+$!wM`)3EGMXtMMr zE!LL}9#xpZT7E)ZKJqu;#Y@|OlHrbz)bD}K03~19%c$6 zT^Lggi(p9>RZO^ zvB-^l<2Q_Ys>;xP-5KGppW-w9Ob9oX1!j^H9Ll3C?g_IJXq1du=BJ$^D)b;!-58Rn z*BSuo8$TSb-*lrtB3_s`oXQwgK#>QK^{%YU0Hat94OAMkT)gsVuMX(AvSOlVNR?$8 z&9HTuz&CTF(hF2e9>@|qvo)rxF6IRr4+Y0VImQ%V?TlIw#elRi`xU_L(eEGGxa;_^ zWt;3|o+HIp_;5k@CO|b1_&eREYI@C0&UdVW);A0=LX0x;)X-B^hIy80ik_%yfrbh* z=!>(O;(9=h5@CYdV|nPyHMH6R`{rD)n|ZXnb&jg0<%E#8hg*Z6F;P%|`<4m2$pyl2 zmR8#fgz=$Ud9XDjGKGRGN#f$eY1=P9^!wXYD@ZrgI;;tZvRCj6J>#H@t|LVE3*koe zIM#;siug<54FhV3dyJs?*)K5Z{vuOz`SKV;cbf~Z_Q8(-qCACYGY|K&RoEgP-L{(i z^ur`xK%eDKDD0R|L5f#nSYbQNC_}sg))2vt8<`O@_hv?YNsncZ-6UTSGi>zpnWiqW8#?Q-l)paOVR61+lu*KA5*+zvCwgGsF7P&xv(u?lR``8k3>+PvKKg9FK~ z>Izknp&)I7L&gg=I8noi_?O`EVx<1L+K+)vh4Nbai|vC-b>@ z7BtH_UFAAb)F#eS15&vU@-NjSDB$eD?DJs04uPoZz|2vM?7IY7#7S+tP-vj{{|Kl$ zSg>cAC~FD*%8%Jcn=2GT z_g^qtJ*}i;W6&$7pQZEJe4|$@J)kCoctTCcw@SyF9~La=n~d{}=;SxQrz%|DHQcGA$lrrrQmwS9w=2f^x0d%NA4>?H<2v*KfAbY`vFp>yx5bfJ&&L zLn84iwp7h`D`R5U%1opW^5c4R1IIY(ch$kxHB3Rk&cne%pKrnIyVka)lGb*}D2WfP zj4C?$dd@XERrRnchBh_|te+uOw$rdE}t=kzm386Wgqq`Z#GEjOk;#>Y!Yyk%);luuu_{E!#qxd66vh zboA?5^=y@bp%BwE3o-l9Yu{p^iGWafe40~Q^5C;D<4Zdk_63VHxv7J@c`*s$Tb)G@ zU`X;j!QZtUT&sOLc^0MDRX|kdpRu7>^UMoCeKeNzMjA^_J8LXy6dX%VILTsFV>w)g zUm!4*i5}C{9gwTwfp#F*45_kAVIAh$?U3{#S*1o+W$~0I6{Ld;OGO1kvMQiU!S)tg zN0(;ESQgJV(e1qc_Bvw-75CnJif$NwQEZ~sc%4UVIrEO2KAP5qX_ZFiQ3ibCqYn1E zFay#VZI;cUr0V>HLdsjhLW-x*KHFPHz;AQ<2VE2nqS z=luou?Fb{sS%)&h@|2GcXYR!?|OLxNkCu}?^7qHLQwGbg61gVovduCrQ;WLOA8Cg3f&!&R`79-bh((- zXUP5#Z~w630BgDuMZ}D=$ik=bkKs9GY2Cc!3~Hrh^^Z$(trFFw?j|ecE<2ch+Kj8` z+(Hx%04Ij=R+9SCW%DU%hs z4Q{zSK;@jI3mF*$jtHi}k7BLauJueWt2n0XYgSPv(Bg{=!c6<>EL5}RMCI*SFLhq$JRG-loF3JPVi zz1OpZA!37^V>x$_QH;QNU@jmb#`M;VGD8ylf`7=;$EV&?UvH#sqfuWc>&cIFMPUh2 z9e1dwSL=hScdJNxuRG%t^p+*d^vbw;0Qp!5ojE3s`dKEm&cY}->>;oM8$=#6DlSghrfHj0ocHVpxr29SG4uLf9jgJm0l*AzbJ|q zgkDywav$8m9Qh6CR14k8%ALkahfY=%y4`qWsUM+qQ1NY>As}OA*?b3j>&l6F3adMd z>dfYltf>I24EBhbuAZtgt)`fPR@1yL0ZuRS-ftQZj!E%OkD(5_;S*hpd-Kgx!_)jZ zHfm6CCVa@F5`4(=g{?up3l$bz3s6i;0hmj6EuiF@+N4Y_>f{xtKl7`nCu0p2F~uV z@Z*r+yxML)6>+FRsw`bR?~jh6iIhc4tM7VwD~=mtNw9WS-P7T~B;7^0uZ-7O(M=Y% zm8=$6SOfh-l3{TU6?QG zQuOylU1xF+VOJgp`H;u(-^&^-d>3tLI_jfETb`D8@;p72x9A7cR9TD0G+mWrUT-;V?_|dG zRVM3M4lu#D8-deXMobaQ8>pD_o)FnrL^jv$u&U7LFuqJ83g)?3z^XjkTwHEi5z#oz zZ3=28>pfZDu&F48^cL;K@5*PRl~w}N9X9-!u5zGcgU3*q{spK?voq&lSw#wv;B7WY zktH>c3(IS0RcopT6UYsS)$K0pR5kD@*0>2xB*cAvRctWF)nExn*yYtkRi&U#W|j2Y zYv{I==qDW?`q6_sTZHtaEkb(o(=Te}ba|p`^p%QFwxPCf+n@LZ$ee&2J;xwRijTGz zc{mcvQ4;vqFwaM1{@NL*Ho!#$Irk9sicH04|tr{xVMu1 zgVn&k0YnQUNrPI)bbaNMv>sQ%sRMwROGFC!PRe10H4bMW0>RXGD60&W0H>Exbh({G z9u$s@4F5DhjEd5560Nt}h`wF6Im<+XIE|5^}b(A4CO!nrc8C1`S`mg ztDJf^O*b9SWdKj6t_ZH|t8oUn2EdVV{Z({)n&ND!IzoqURbBZiKCSQZ5Or2>7wz^; zeYlv^DX;oH;m25c{r=zczXWN|QW=YK zN^)xYEN^m6q<@Zqv8RmrlLw&`|^xY1RH*-RF&Z{-~dkv zXRxn|=ukugJm~h5GK_SFdYTyN436odUrV?z&1iGZfOovEz3GZm_@xgP+d?*W;1#MVTD}vdyS>QbzFZ-^7)CeA#NUaD+T-a3p#lf5rC=!#Dllj)y7jivP4oUd8yon8ZzV|kSj6ccR`M%we7Ep~*Rag17|WPV8`0u2eQ?5X+! z{K2_Hx)Z;6K-!mrx=ZAyggSg9YM6-bUzhOx6skvSzusaT+aTy>tXU5J_+h zW;xBDd~}9ma&qr>`cj|`_6cpyVA`A^)g}wn9Ha;dz>-XWDhW9XeN{dRwRJqXtTv|J z*K$AhQcW`XX6r*-0_lfj)!9pVYI-RruScUbfU-rpv5cbcgw3 z<$9_<^=iAmATI3ZC>7}{$35KnAoolTLgXYVQGNTC^mHsIyR3M>UdXFEkP(o~^3GP47j?g<*qP=ry#yVUS!-I zQ`C1$Bev5Xatln&1g%AyfKfk7iE+0iO=&!=JROog)~IfTxea9H5m*FdghdO>k}zW4 zvKKMWNgUYQZ%&K!@}6#Gu$NCFDz<}&pr*(fwcTaLpqJ9E4DVt*vuHDz9wV|M5F$;@ zS=~g24H0=hUz=48jQ=fot-0wE_Bf%f?G@6|;lrL$U;1>nQId3m#^*{@39v`kNH!9R z8@0*-d-f=H6bM9DET{&m}c zX6-U&y+_Qvjp-_f&P+zKx`8zlqPmvp4zjM! zrtvsJ7My@Q6giy5TLz0L?}ImtX9A6sM~_mFhFK;nja zvKsQPB!X#DUA_t?RfovMf}&NyGPqiqvvKO>NQ5n#$E;u2y7jF|OVn0|LEzaR8^(_a zhUR==PS=V9hDTv>vD5?+&N@aOH^^zme=CXdP+&`zqMmyy2`N&XLww% zEMZli;pBBBRw6W0Nn-ecX_dx(JJ%VSQDBM{oCxS~GcSfu(uVxa6pBOF3l2tCrT$|o z6~0P0iv4#h7NI5L$&6bSqAZGLv*dd%n>N}yOwKPinsg+e?(1@^2<%(51L8jpaW(al4a>7j=@FMbFS2G*+`~3t8bPVcJj-x1KnyTZ!CMZE(8XsbDCErT`G#g zRNl_1-uOrq&x8l2Js3C@$^*`TD(P)0B4cCUiyug>a!9ixt1ryo5>}tHZOVIgEWduERv&K_6ExtFa1z)VI>IZRjTG3DgFj>J$G!C;ST62gW zQPi(TjM}$My`ME|kgClSEBSni(W%bK+ma~j)i`KHGyH_)Yiw*uztBJi5e|M=Om zK@l-_XJ63y2TudV)3A}uF;LG%@yccP1!t5$3sG2Homui&z)@lcW)8_36TIgA_T(^c z(k{sIL{78To;h{aqjB;$@CjjK>5Sj)^NJQ+ipMcGc8Mt?Y`vf+5kx%N2S%85T$h|N z=^)h-Rvn@#=Y8}0QTc_v<@$462_3(&m18JgbMdJuxLSuhOenOX>5^t|33Dym{S0Jg z&jKzaL4!JyS@~nt&FkR!T>ayqbeMJb4`k)i60YaXcW!!*SSL5r`5?RR(@NWRYesfR zR$U+=2&XT_^~m{;%JZlYN6nynsy+fGWnTBjL!;v^Y)oVA!ii~ghw?Q|4Id1ua>H!U zzDyMII-B-;YHT0$#8{jX;dJ>R{T{Y?%q_j@&nXB1(dvNOwaQ?BR-h}X1ErUI#Ii0` z>7oJ>N)T8%m7U6OO*g~@fUNcGD2OQGe1cV<&45G%SJ@6~@-*9ajm@yG9T*71G5Aha zRmqsHi)c(pO*b>@ORmdq6bJ-_hGk}s6%?Bx(MOK*TkvXzwOQn=ciwz46T>>xH>}6< zo9GuC+wTu^qy2TsOChd6u|~3%OHWp44*zl;E3jgp-BZt*j#lyDfo#ezKX@6pcJq?8! zT(ALEWl(HU@-Gq(`EUw8`TMWTh}=mvV|Ty*$_T>(5``jteO&Fgx(w4rf9zq-J1h0& z6U_8B#j@vwWtkz>2`0DYz>b5K6QD}c$CeS(!r&I5D(y9Cx(QlokqYIh5F$#8VC6ni zS$7GZXb+$FtfU7Mpqlm4wtAzN?CV~5UeLLGm|M-|16K7Lxmx|!?&hB8EfloAVMZ6Z zQ7Ie!W=4I8`3ury03k0Tj}Q<-z=(Nt zx;w8ZqmDWPi z>%?c(I*ej3Dj{%0IXJ(=$@)!>g&`5^HwADh(-GcCf<`gP;YGNdRJ~=(*I=URiG_qM zP#Y>`pkG-_YhW=n$VSU5(U3}rVf`*h!>l4d>`1du)@3o&8~KO>E(N<@1-ceXyOV~v zw8VxnD=x#uB@L9U3=V*ql68KUm<1G=!%G3C04^m96R-QDrIDpL%p5YI!y;WDuCKs) zY)=nIHFB9YInrCTvDih9)V69}JHMmD#N3Tsg-McN359qUtiIZzg(kvypcFr;D z>ApH$i1M;!uG0Qexi(};V#NJ4RL8%#~Raxizg_cB;?X0tp(qvW3{}C zmP3QR>&1>*f{h`Uh6U2hkTH`;?WTr-L?ckCy*N#(F4=ApjY(x^D@&pzS2}eH z5v7%+W*t*nX^7*UEi#GGDrJkzhq?4r9f|W*hm|Nm&Cg2of-Wm%uo;iF=%}4V(ok$> z@<22ktQRkp*b=c2QUKWzCAR`qQxUTz5@*xV$Tjk8wD?&V3N;SM zA*2|OHq;o8)CF}ylDocD0=8+zIaOXU->#*^nb|_(#_A7g$&ECw?yik^yb60tvC)Yk zPVO8u3w0iW?^}k8w{pp0vBJoXcZ(eRZjs}XNUrsyX^KL~0-&|C(kH_(;Yzc3)ej53 zaoDl%rIQ+>U9#y?ZG`f7@HO)JbrN#8D0mBHy--oTpi9O2uwbnqYGDfCQhK~et$Vzs zS|l~wB5-xg_L~QCSXsF?%F2pm+rXDL5mx{ISrBWr(ZqKVPYc^e(lktit3EOn2<~Cj4yoF`x;^$V_ zJ7QU2hBzn2V4r4Ltp9E- z*LpdJ_VPHe%az9!XBc^9kZFq7x)m8q#=$`nav0fK98?cwCLx!GEkL1K2DV~9?9wH* z;rLE!!$Dlygf2Nwc=P$Ee(U%LuK}&~#&8mJm}s@|A|FnGFufcS(I6WtKjGswO%$AN z!pXP%Y`YX(9>}3&lfk8}OS*7&LC)L80cQYYQwc~Y8v1dMkc@<>tk~vWsqdrks>EcF zP96YRvDO|{1;^we59D}YQ}Cl$g~Xl@bLlC<^|+`~-m1W1f2?J9EXuK}@}T39%a~x1(G$y<2XdGxy(DVmT5{`$T{<=v9Kz$#46MD! zcW6-@{eUqTTeFT!8^?;1Q5IWTe+ld=2=xo2lLb0+dc7QDOON%ZjQ*^a+E%YXd5&a%hD0L{;eG!C-|$@K&4qdI)uSF4O#JU z)L0H_Vc0#!iJ`t_B$WcVlv*{s{|aYav4P08wF)yDC=-?-W0@ zO)uWE;k$}(ogEu~KFsmqmyRvaFP+~BrqW^BmP&`P!>4@~ZtkJIqN>Oz2lgr#sbi{2 z0nlYOW3F8uA>h%cJ#phEa+Rf*RE9um2;;N@!_6GMa`mJpmO+%B2UQ!x)E-cht38TiaB5Xerw@^Y)E33- zXz`I++rMzAHU_)y7^6ltR`0JWuLJ_VL6 zYJ0sn`vI4Vz^3OJU&=fw*T$3_v?o<01@h6p*N+4`ztCwJCF0zOmr?TcB?cAnj--Mo z(HBYUxapOP)NG*?Yf{mcjNnZ4#9{P=YH3J9X^e7w(#}~a<>cuo++BrxFWm_V(&-i3i>NG@QLqfFg>Yt}7UPGqaqD^YUFED>kIgeArr z^mpjl@ln|MFvkm-OZJD+3$Y?o0GE=zf=oK`kuJH?=d1NRBpaL`c6nI&&OobD^Nc#@ zIE7G`hb2hI>eGVxFqd9R5I-tq=K?NqYBb=djK{eyWon$u^0^2%F7?BXHrs}SCnL=? z#HE!^Q0`HZK@BxnuT@HIp-SH-hf3=;J9(V zvQj2;!oz*aDh*lA`?*KuEEB9XcV2!e9~j{S2QiD3gtU8kq8PX3$rf=M!eJ}ZN$(yX z$)^6}+@E`Uk{u!&h=RD+ER}&njkvfOsdNbe8yIoeNr?isZys@QKmpsJYvTkwDKkNvk%g8k+b`MDz<+5-qEmlGjV;P`%DgZj{ly4H*)4LI$qw_OE zEG6OkMSjR~>{y3`qS9}vwOvvqvW}%evdha2u^E7Gp5y`y%Puu3KSmFy7D64dez4hc zvM71^TophCDBi*aw4NTCw*KIb9?e)myv5sZUXLbi_p$O)EgcQ^J;zR`eUF+4mW#H{VHfREE~R{lOLL?E`AWP0=K%6Jbzsls%h^E+{=YK;$S)S3l*GJ z)@#(Twglt08uxFqN#pYb7j)Tavarr4clk>jaS@c7@Ye%kylg_(H3fuCuvI$vv`s+x zMn8Odlilw}c28U#*`mu$iP z{*Xp*Hx+I*K5Zd+JR*yam%zB5(88U7OXNj2e9?&yCHmxQVduAZV3V4vavzknb44Fs z^&vGeu{{{RGQj(uaYo<1*~NPf*>ht%k&*n6K|UuZU-Bx;rX{%BlZpvNUWurp0s)!>7t7W1v?FTA&!G)jk5n^u=u@G7>?IJ9I*2#Mv z9v=WWyGFt`#@$B3tHG((X)p}~WyKo}-A%~UV5))-6TKx%K5*k&3QBH};hBA6m#diM z)&_htC0}Z?M=69lmEq8I>Cz3GC?3+Zw}r@Uf%0^t*hE<##Eki*T z-V3@^Y-tMC@t#;=!KGoBP88MJd^epVUDq?DN5h3shli~*9gF#%HA~b0U0Gkzw-$|g z-O?qr6Fvx+Y_99ZZGpJ8VkOL4evU1@`uQ2Zh;y}$6`J+lvPN;MGy-^SL6VRTi1MX4h?k)I+u8TT=&(3i{K3W6QyVn`kqx+C{)`d^r z)~#RBBcB9wlgJI%q;e6~i7Qd#5>xD@;Wh{vTBjf~AxJ}5d#u(t7nb|UK^*2BN+jpd zs-a6^5uHipqNb&Cse+_Hy1q=6jfuI1W#Ym_6d&UA({*(H?B!Abrv^-kg;sp7f&&ao zSM|!r`f{h`GFp~(a!;fmb{ScK_}2eUT$8e#wjd30X-Q-$PPk&P71j<_EKFkpkB@;- zP=1bxzC>(yKG30H6-yts6!(lWdmL~nNW?yKjP(FKgD3-oC0C%{<>C-xke+~>N@AS( zIOj6#zuNvtMgrb#E1kU?yX8_=b_5%+iOZn{tOItZq#kSo<=cpu%gBmV8ss>Wy0%d| z%<~6z3UO&!3ilBm^mN%84o;J!HmJ-cTyaTuzG&Rycx?_|tXL~d$nf4{Z!#d%mPV+a zhPG`|tBGK4CZl&ra$A64p_$;UFHWYoT`xQG-J@MWmG1&9mK8UVOlaV84z%hn`EWQz z+(yK`{7D7$^HVq$Vv70-P_T1(c3=^a}-(}CL zr$Xuij>}(2Jsp2+>YA>g>?tsH8Q+@9t+Z;BIQHmTgDLR}8Q=G8#2p~K)t=fUjTAcx zoO{Sw*A&2U!q(vSL-3?Y-x|4TAF|lM+U`Hb<&~9xo_uHX)>H53GiZ_RSYK9_*wOl7 zm)lFXo=-h_=_KsZvE{3Iq*2k&72<^$FX+-IsiezbO=_ytl9HE--H4Y;#ssz^q+nR8 z!)Qj&d09-!$#C{z3S?))Mw^5jM^aM3qWzDQ)C;?G2@}#OIdH;+9VICR1YC-QEc-48 zO~|B2I0-x2izVsOyQWk(CFQy{DoYyTXwfKh!N6%9lUH%GtN4)PfqDbHV!x(EVVZw5b)cnYjV$ z8J+97V=1=VB$3qg80ND20E?`l$w1V z4kLB@CBZoN44j+Zx`iu0>@biS-qY*ufnjgX6~i^M6%~Ia3r%HF{4k3|dF8_#W@>FZ zE?GzPbV&#=mBZA^x<(qp!gEfB)zQB7t5>XFk2O2J-E9%(891tU zj7a@HoTABF#uvS&E$R>M#L-W@TZ)(bG|~1EcwM>nx(9DPTc8dnMNE0F*{t z!5lh4k)&rWvuS$C{fd{ym890O1}n!)pB{d(TXF|QJD1>nXWFb3z~`i|do$($9D0aU zS(pT*h-q-wZtTROnVc`9!0m+@x$!b|TG5SzFc`SVTCj|$Xu@S-Aq{qfnF|V-x{Vff z$Xxw^T`m&Vl>y9?Id8{ELLTVkFBMuU`U;p`3^`~QmRdjK*dMIH8K32RCs8iTOG1q2 zOlR#CXkL0PiuE!^<_Bvr?(8Ox_2MI3dV3w@V3n4`69|%*%Zq)K9Uoc#T`$uZ?$@yZ zx^ai>G<|uGUVFPnx~PWkO0KX>LQWQflZ)xBZ73^V3HIi8u}Q%D-ss?Yu8Df&?5EB^ z+yPR%co72~BG$$dbXr(>i{CAg+Y#5Tz@2|`A+|<4yW>T2RHfqz|C&3Vz~N$0a`#?; zu_^lU9iL65n;Q-Z4QGl(I@)1j)6!&Y(XxBuFeF##6-2q*Y{yCNGzIPm9xKk}r;hNG zy45i3EO|VUm#^>pi*PyF5V2$43)#oZ?&KyP=F(FkcvwWXA;d!+6?;f111>35#-`97 zO-v|;BQkCjL^$lE-?QVR0&HDgv1lFce3vycEVe?$X%ggSpk(_P9Wbs^#?E1UM4vP{ z_vt^zaYI$XJbfJ7ynd@6BC-Weh!Z;655) z)00OH(_n|27HKIqJ$hwK6E}8i0NB68Ff~_f1bHBbi+sjW)&Nn@@?kDL%b>I!M0zN` zn!zCiEiqrorj9A|w&vIpQUI5oMpYv?%;N|k3Ar>Rv2MwgP_C{u=!iILUnUk!fqK=f z0Eung8tg%KFB&@`V&Ux4P;A~#?x`EujN)x@ekN1FO$SBs??GA*8qzyddwmg^j{GN;d= z>r!}pidGvmMwz@@n|JY0*meU(0X`MIwOrvG$oXNHj@2MnV&Q8lEbZI57EwvWMLizIYk=PpbEIB176KL7X6#0{54G?bZXgLsex2osDzI(k!(0id@)8%fMAk?e;?j~Gds5q(L>VHhNp~QZ znmXpjw;Y>OhJM(kqZk}q)=8L{L+Jvb%Rz;A+l{I_?v!F7)X9Y^(TBH@p);r{HV1b- zCxR3z28pZu>nfo!IKi&>4AJl(Bc95`QNuB!wNk~(=HV9=piJ^}5~Gen(+nvp)|X5S zxacGr!Lq1r7A0pT@%%l%X|!DrvGp^fv~p0rmaa6>ehIq#Y+9XmFi-T-S<1OVNk$#W z1G${6sU*s22*(zMP?v{B#+`+c63J-I9T-(L)lrC;BP{=6EQF~JiX(lVYGa}oGAqjm zI${MmXqXCeh_$l9^fX>+NTirex%JYgltejt6o_p?np-kbAcatu$7^<)M~_sdGT8MY zDsq2thpK@2aBuPVK$nO$y*}k~@uX!udEoP95O^F#6_?>)Nj~% z+Dq@Ub#W{MU!BM2bl8`o;nQ(ghg=Gs$dC*rA(xw&-E1Bkr1A=_i=&>nxb;i%t*^X6 zo`$%zYGkp@y)M-Vl7p@gJv(|aqKov~E>;JNykX5U(F*zC%k_S=X#GYo7mWhCTs)w= z9y@cXi}uMh-}p*iWtF}F;}5Q!l7&v|cdSzfu_lF!ZoTyh%B29vc`bTamet0&6$>h8 z9>^vZem3^5f*xZ}05AN=ckl68j16nL60^ZhJC2dJUpu>(;XI60Z8DmU#*R7VQ~-22 zDBX0VMMZT*VK(9sA~gh((g!#cRGX!1FrL#dvF*f;4T{qUTGX{0iAK+iGoFIH?CewUgCg5z|skj=L@M>Vlb?7JHMY8L;WruftHC}9B?V99aw|p zvXO09tcYHW;@HU7y2e1>w1q)`WEj&&O=3ZlQHg*Y;&f`vr*lyOsG|@xwh%O~5H!9J zG@%eQu@E$=5HvZW4D{tHxAnr-l!mxsQT!SMlgA2*11<$i8IP%TMUvIDb_EOoq(}rZ zd!mgdLv#eXv>0RJXX44SI3Y(4_*XnjEKLueIPzXI{ z9vO5O-91 zi_9X)TO4qRsJFN~LeD0rcT!n>@p6RjB(Oy!Ag^NBGc$sZ7+@)p?5tmdClhd*k!KpM zsbZn}0Xtq~fP(=!CsO!uca;oqys%3rrQ+fV6-P?t0xpH{31Gsj<$zhaXDl;YW{m?b zD-Dro2s?f*01#IS;8L=X5@E$=NeI^DM2knt1Iqp>E%yej0%3nbyt*ty@1`}q7)Hw_ zH`eQj61yJg_M}e*D*(D2w6pTwCg$`j)=3B*tX2%0g)9kaHQ64?L9s=?ez`mg#QvI^ z!n7XL?Uj-#Hx}XPN_lXC4JG-sFn_kg?Sf;+I^Ib$Kb4)VaJqDiD3_aMm6PV8D6D!3 zam>z2m1T;2zBn82H^L#MaJ&ST8y2<@>he%iBsM-KEmL1Mhkn4v&Lvt~m`lLN&Lsw_ zFjvZM#ifclq~VH7m4Z4-Y@TWM)pW@;l4FE8m%?2>R*U2l4r0nFery^!AEbBmA%_h) zJhV?1>J*Xsk_U3BWvHXmYnlz|VqBcmj~|!pQ(#MY<7!>U(NuBJWfoQ?6-6e+i9;?8 zEt_IeQHbayRa!Jm#~}?&D4N`gUgFlNrJKhjA%~l$mxCFsW8+gPd0S3`Yw<3a^vg-e zj?ZZ>3V_Z=lQoINc9A~{XTcJ<8*Ec1{7MxgTQH0}31D+KFX^NWL-(|%t9uJ;$$A~f z?AhgILu)ZP7+}da-~js-vf8~!UQG4E9eMF%^TOlu!m@#nRUfzbDNTfQJ(wsQ2N533 z4(>b%D^=`Uf=ug-1xwb_gg_c3_+>K6t$0~+19}h26g8_ z3^sGlsprioh^8)P2H z<)uRTQQGE`GOU(ekE9G5cDa)>h?tWyq|Atyiq{o+sq$|xQch$`CrKqiM=>cYR}B*G zWevew@vxYzEl5HRj|?!Rmb_&qO=bZuWg?5jYPf{Bt}k8)N;u=KGYMx5Ib41k{Z3Rd z`DbFhGti zljGIp^~=Sd6;Man2CQEY&{2VB4{iPq%|BtRL`a|`H$wv1W&9bd31*L%K*h4ob=_K; zu@%c=EMseyrKMnVbqLzA)yu#Z##Gq35iHr2{28az#!i$#&B`=}aa!*2Ub*3qDUMgR z#!9)z$K^(nxZLBjtBH9+b~Aq_R&0(1II(7Pn%Kmu&FM

    {Z$-W_Oh)%ucFZ#S2CH z*oCZED$&^<{!GqNz`3XbyUnT~^gE_=kup7=NODp33jX9Ou87m-YOYA}mCIFK;qjHr zF@NqXsS9RwOvVv{SW-nDV=4PMX0imb8~M{wu`wnIzpK$)N6p4G`Hm`Fei!R%{qB8kbn2qE85zL7^lB#rWWmJqjzX6O7EYFdnUmLHfcfq@&BZ{)MN8&~(@bhC|L zy#(hG9Dz0X>a&|wlmlVxf>UY9oE(A{zf?_bVujYwnDy&BB7pcK)iExo4bcXsBaf}^ zagk`3R{glievBx#3O5=Tokcn-_Hi97-{i@PZTuu+Q$-(V8@$Gh^|6gl(UI0?iH=Ju zF&a1Cr!!9Jl%I#oN0%f#kDW=uMU%=`#qe?*XR0)eu*u&1`I-wyR(xAuEpjTHe$VvM+AO&1M5%tx1WZ8N9Oleqf+;|4Cj0tXjyluv%f zVEJ*$&=kmz8I_K~_P|mQgrf35y!8r-hIB$$Z5+H=CsEZlik%{<4YFZBO=B9i$d9YB zalJTqF9?qF0652Iq4gGuH`G_)?Moc_lEg!VQP~xZeG)M;4r*B>iN&EmlI-{-8QyL{ zv$o>#rPNfAMw1GHfk~v3K!bq#m17;Fa1*RDY$bM_4~z>eRFPEiKvg>V?enrerK*+B z-2v!_fQF_(e$3!>OiZE9!rdmipsBUMZfq9z3ZzE#5i>bzC2P3e0~`ySWFMrdQ$!lm zu(UpCT!LVr0(_mRR#04$Avpeyhg!iP4r^JTusS>rCJ~8Gk_@!7%VaGaMRk+aW-eENoK?AEDG8sTL~qVi-oNCdse$z51$O2g8TH5!?4Q11ae zr5mVVzjkd_i4a0ItB0TvoTRSPbi5SD1I9tzAjBCGRi?!&F03KW(&1!oBAA9GoF7&1 zHzC1=k!5ajlMnU^DUoG%B9t3f!Bf66Da(zk!Y&YqVoJfTef$uON|_i&j606j1Iv+; zk<1IU*@G75X^wF(ihar~Nu3zOlGwzTq#K%~OKMY?9f+xNA|uH$BuO0mBw~0ROlTxN zNm7?2NeET5V!R%3a1u@xco5-9PbLVDb1>I03A9q6uKTwEpG1v=;a74D@c=2J16@SI zZ=D1A8eK(TlBPZmrmzWJKii;wl%a~tZL$|8tPP5T39MFNKB5|-?RS12z+-H%f_*I( zDmK4Y0-KP1ikE+g5B3=ts1ZJ>Aq7eaqE4ekx8qK;UV+-U#jgUeIQfLR5^EoW5_%0Tm9k?)f}qYt`M{VL7wPG8jLXF(WSSf(?^mlsB;z3(>;Zg1 z)cJ5Io#YO2}!pi~tNkSND) ztqb9XEG>ZY$u?yFJnjkc%Tyz|J+rB$@26o6my}*#SXhiINy6486zk()ilhoGsmei; zOw}b_1cfCj)tYRTnWR1OA8>tIQ!5z zh;BbM#ZeS_z$Qta08<4UmLHj<6Z$I9q}x_Os3Gu6SfAwc8^J&iyhKNYgFTRsp}~VE zUSVQ*681`*Du>e7wKUHt9_Ll4ppwx*qX+d8OI!t4ipOFZ3hTh?@0dV8=iPu~o{!14 z4PfyNfht*)!x5@Z4a!1a9JEQX!j$C00z?wPLR1pKYD5y4E`chU!RF%|CvgLDl5f?L zPORnU$74wC>>Zai;0a@ z$^()mO+;0BE7J&;+ciyk?HVb(wdqAjK&t(PQYN-*y!6`jRCvpDJ(57X90_lQTfP+V zn!Yvbg~tlX#xgIx!dCkPRB_JpN1lJO=O1hR9bS6+U3&UmdiuxKsQL(gA?^X9d;pfA zz^Ru4OOgpdXyyY_ID~qB3dK>iLRW852Wf-8{E$a_rSe3_;uxnU~YoD(*U#i7xNjo zpEba5Za1HY`vvm_xL-71g!?6PC)~TtU2y-^+z0mo^8nlj&4Y0FnQy>-*gOpP5%UP# z$IN4JA2*M~{hoOW?$hRJxIZ$_zOK=aFLvUX<;N1M$yaxAm^9I}_=1*|{ zZ2k=QFXk_S34;()3o~IBZdq6cw<4^8TNl>Btq+I7Z44XXHiyk{+rl=u$A=@~jtWnO zn+rSOP6#K#of4i7cWMY}httBDaL)?QhkIf8ez+Hhm%&{Sehu!+;mdG;AO1ctnddXl z!+j|O&NIKtfajv>BGh8hz#>Sy=%k{P;GSG`GTc8Fy&0I|us8#ENOo{wvaQ+CaK~iF zz#UunxxmzYx9+=ef7lMU{d>`%z(mJI^>BwoO>kSH7Pzg^2)HAoQE>M}UxNGP=&m5l zWpgb-CU zP71~arPCLj)f#NY(rRn)*vyOOwVL|#rY~qUo#$ULr`7De=z{ZG&0F&j8_vegVrzI~ z@ZM1;rsMyLat!UKB!4ZghW8Lx<9mp!={>~N{2tLquc^F zS@t;L)TK*TuMKBmdn*^th1(I%gF7}{0C!xt81DG62kwNh7w*Jx9o$Lb7Pynctyt)Y z!fkMK;dO93!W-a@3wOdDAKnUgLU=peiQyi&lfu1lCx`cP>m+=D8+zeGID@`4+|OP5 z@JVqGi2IzlFN*uJxQE4kL)^D;uUlUxz&V1ROzHadQ7%&jwRiaD-cOf&a>o<0; z&x~BZaqardDcn}cbf8_ST?&F*Xmem8%3&F5U=iwrp+Qs7611ZAofw=Fj0vKk1GZp7 zFe#W4oDob9X2OD<6Py>!4K57k1(yaN3_cVr4!VM6!OCEDuqId+YzQ_5R|HoDSEG;o zc<^_@KLk618-g2ye-3U2z0U-nLx1^&;ETbRg1dr$4Zezg^FH*P4+h@|{wsJScr^G< z@ZI2h=tZ9neiZy9_-XL7;OD`i;FaJv!Eb}tgFgg+4E_|n9lT>glQm`NSF25}8D#3s z5YuE@Oq&^DPBf#*;qoNlI?>1L*xZO%65n)A(t<{~rC%r}>r51J2|#irAA znI5y;tTer*&#Z+7-e5MFE#^vdmDy^phNa$Swwr6sb>@2X(>EB{IrM?|z|EMO%%{vP z624#De;4-wasNZy2gUtQarcS)4RIe5_rJt_Sls^>_YrZwDeiu8za{RY;(lA)$He^( z+>E)?d>Nwva`Z3a-Y)K~;(kWl&xw1RxVyytEZh*|hObI!5Beoz?uFGi=IgNk2IC3z zapvD7_KV_vN!+ioV<9R0L4!=jJf68Fb9?5_%srV0G7o1S%RH5NHuGZUmCWmzw~E4| za`eLuMZ=3m7j+a(DVkAqZqY?W3yM06Ru-)*y0Yk+qU(xoEV`xW_M$tB?kRep=;5Nr zik>QZw&=y8SBhRQdJBDZdGWyFhT`GHql-I=rxed9KDT&Y@#V!m#eKz_inkVTFWynS zvv^nW?&7`0_Z9Ce-e3Gg@qyxl#fORy7au7;n$2dbvh~@P>`3(S6S7mYv$J!v^Ro-H zJ=wnOrtH@2_Uw-A&g`!2?(E*|ec654{n;n72eJpVhq8yWN3ustvL#g|^(8GOBTL4V zOemRJGP`7M$^4RqB|Rm5C7VjNmTWKCQL?jSSIO>@y(RaR>?_${@Cv)mSyfqmSxec-vN2^7%BGghE}L66zieSyPg!5trn0SN z+sk&8?JV0>w!3U^*?ndE%J!E%QFfs0VA-Lv!(~Uxj+ST3tIF%kTgpe4k13x}KDB&y z`P}mPO#gU4mmD$Rw%KFNd%8`|0DkoGVVk;<_?%Y zVBvtC0eu5D4cIzh`+yw-b`IDzVE2H%1MVBJZ@~TmPYgIP;NXBm0}c;3GT>-cwyLVC zzN)2aWYw6e2~|_8W>?LvnqRfBs;8>2YE#wLs_j)fs&-cGs@h$(x9YyCeO3Fbo~Sxd zb+GDC)#0imRY$9{)m7E?)h*Q{tH)GNsGeFqyLxW*{OX0(J=J~Ho2s`~Z?E1_y|a2( z_3rAu)%R8JtKMJzMD>B{gVl$s4_6Rn4}V>uYYRxwYnwn!9T5t$DEKk($SAp00VW=B1ifYu>1NySAvdsn|4VXnReWS(GSfudAQVXAB ze=oG~c{Y5&{=Q)0uV}cb*Zyu&c+=H3jBz{ZG#$3^*EQTc-~KLEcypHxziNNqvhbrC zZkey)mc=%Frw!Y3wP5T|IxTN2d>H%;4_jz|F%y$;kBwhx!-wpzEyu9KHvGCxcSOUj z(=^y$Ju*C0$nXgY89r_JRtvdDaSXS0b9|M; zj~}S;E1A7Obv;am-$VC(#Z zmo?o9RwgGL(eTKXnr@`!XC!8wl<`Q5XXLXs{-DB79BzL{D*VLJHhiu9z25%bVB>GH z;e$48`4}}t;iIN1eAEmZzRmvLVSo47_`5WG66UVt@1zEWpVVT*m{$w@Q44=u!=oen zJ4NB6r)v1*Ng6)c(mnYx3%7DV`8f@rV#|4o#dFHFn(vewZM>D^se!^zEmHWYwjNL2 zX5m&or&?V-)#~c0woRRC+tir(ntzO~=P|aP$Go6;##r5Mzf8mJJ(|AV%C+6%X+L7) z-_rP~&;D*vcyyHwAF$yUG@P??$yvGNc3b$}nl5**hC4>t-wuU$Ot9hmZTMjgkG1k1 zJ44}PXIr?f-?4ja_%0iNw}!{nYj|9%4O=}OXZ3WvwRPid`xmQ4`A)mghWFdwCoTMG z4WE9BhEKQkbo$jcZ0Vo=q7A>Q>CdqBc80CDGi<$`Vbh;s<#&da-x*fkXS`wazp41n zcw56$7ues0_P0~xr&{?<-Dks(YW$g2ug;ui!&YC;+^gx%yhq{F#@S!X?=;KrG|TTa zYZsnR_)nYoPsYQur*Z_p>Y?vu?8SH{1AIZTJQI`;vvftl_h4`OiAn zhUaShSr^%`rGM7F8lF90<7Y3nVH-c&#an%zZQIHF0!{b6%QWBnI&JtN`}>Ifwf6XZ z)*hd2+x6M48h>_|{avnj&hEA07wzw>7H;+HoOudAXQ9H+v2@RQ#=@;0pL0mV=U#1p zt-hXX_4T|{6n@?W#dF>i8@}8AK49VdG(2ax{k8Qu$JXZ@TQ75VY5F<0Yr6BZ_P0ji z=hxZrl{UQ1hHZVFZ~Nu*t-j5*^)>f0O*i*``}?5gpKIlO!DtO%FiGPtuzXywN5dCZ z+FvX83ma_M>eYp}X#NX#Dg6DV8h(Gh4c}l+WNk<*M>LQ_!n&Wu!b+2q~XhE*zol>yi>y; zuy*4ERW^K?#($vGhVQcB`!u}3re9EQ!}BzLfwh|p_So<}Hr}?!4_bZupluf)T(0pS zyhqc2@IehH8#A!hHX2%{0SR=PUAnM3^ZZLL5xF^z-8y)2$?(vO_ z#zzyPiP5BJax^7cm>ZWHpPP`In46TFoST9@7X#`i1Y?64*r_`!I6t^JScR3y&B5(v zm}xb~V@+_GtnjUpHNG`i<6DnazKvMt+l-aIE3nr0w^;4_FxLA%f)&4ya&N|b+*}`> z7M&iQ5lxNGjHX4?qZ!f6XjZf+cS`Qm+?ZT@F3RO{9l5bs44aA-v$?@#SO;ARx?6&6 zSn<3&cp!KTtC-IPF9oj#Zv=0fB2#JVuu2)3Nmzs2j{Uf2%?sFZd)2&w-L%rMB^-^t zu%c*nbWL<)?#!S#S{L0E{d2Sv{xEtOZYH`X`kI7xM4v|dKSZ}g{}R2(wBb*p|BfDs zehq(hv^ZK4t%`c1uSX9=PewnAo{fGI{VaMV`a^US@kP=4XhXCezLN0!(LY9?jXoEB zK6+bXP7a@sP79w7GU37KbgbfL!kZ$*zr z-;N%Oz85_mJrn&V`fYS1mqDK4(bA|p>WQw3wno=SyQ2G|2cvz_L(zXl4@cjOz7stj zeK-1k^uy>t^yBFH=;zTdqhCd@Mz2M`i+&%y75ya_S{N-t+bPFBT`|V|+^I7Nm1EVW690>2x2_nwbt4dWCRX1Y zvHm_2>+_3(&R|$@CH^0ev?gf4A1q*~R*MjWRL0Eo_V|V(RU=mSo4sAW(ZR`BR%uHBUbkR z37Y;1tnPm@xCtx#JA+SQmH*S&7rzxN{kwwC2Df3o|G$H82Hy(49k1;F06XJ93Vw{$ z{paoa{x5=GVz2zyvc~_r;P0{}j9OKLb1M?=$DbtNsgMkrtZ8vX=h|bEEkrR`LHC>-aaD zPn%n??|!TKjM>GVck?;!yqi0)^S&GV?t8fF&eeAF6|)zs=XYZd{TcIPwBeta=gjlw zp!q3U^UutS+(|dTK)e1W_tDKO*hhcW{KgzMzcsI!-(f%f_vQ`r2kfZ-(Y$H?WZuHA z`rFu3KWg6Lo_ZK!PrWEC4##n4ocrR~6`vN)2xo%LldPu}FN?cZvDwEf%dkF|fN{qblpcFc!H z4N+s%gq`veBkaHbuO?y->VGxy{{T&d4aON9v5z74JnJ*pW7iYAS(%#zdOQ4|w5NXD z86TVtferg_xZlKo16%ejxZlQq1Dp08xZlNpgI&w-!To;f1keuw`4Rpb*t;LY{R#dX z*gc$Ef$hV&8|-iX4DQeI-vqzFe*;_iOSr$%(?hU|26pi`aDR*cCiorx8`wyke}SF+ z1KdC2zX{&Le*>Gz(cw}2$2J`nk__x;2)D=-!Ofa1+){&n2KKZ9?f^3YZneRw8SJCh z!X0FA@&zZAj)Obc;JgWJEza`5-r_6|Y;H5$VP+WIHq!?8cym156U+&4Pc$dOJ;~tQ z4eT-7{i)_uxb3DLE;>E9V+}@3u+ih;PBatY!dAmQ-JA}0s=+9jZ3XUG<}A4HGw*|Y zjyVVJMF#T#?B33UJKxNQdzrZm?gFy_?&Ss}U)c7Aa2Fele&cgh{|x`9494*G+|x5* zF*=rU;W)Sx!U=FEVdTYANZQaJPrs;a(eF3-`JZ<9^uv z>*4MQcfh?NyaDcwIH_aM4?y417hsH!{@`Y~w}iLAy*0cQ?yhhb+}pz2;NBkI4)+d@ zEzno&hPx-+1NYAGPPli4cfs8o?uC1I2nnMPxd$%#5xB2~ufcsid;{*0@CZ&nl%j=2c>i6*${A)u%x02TZXF>7Lbq+ixSF)rfRNW+9cgM)1QDFR_0-w(aUn2Bi@ zVf0iEOv5p*VMt-f4j<3;)zXJCn4?iDF`6>Kc`4wH&_3{=d9%?Au|J`)Bt>J1q*x+& z(2nq5{2q-8OM@u`jPHn7xg{hU9fZqV90P_pp*0u25S%W;7_Stkv_|8XAuSC{fN?MX zBOS{XpzIjKO4uMJA=PnSElCEsYw_Qep7=E-&OIWBi`Tpyn}*RU!Kj=F#L`fR<90D} z6QWXS0JojAQ#7p6zee#S1B?lwNfQUzYA#$^VBIn(P}F_(n2lg zrodIaTFaLq#9S)3A;CzDzBN9yQgb1u0YzKCT54?N#`#Hg2tq}%Y#0~dgrAel$Go&Y zCzU8)J!S&)5uX7s)H32xT9l>gNP|eLur>hC)4N8I*bts75nPIu^-G?3GLbl4*u|1t z(f~iG$6hIE!cR6g26X3)^~&peFhj7X_7hwpE*aG5i~->mYA z_S>3M{7P{e@PyEVnNq&GpcP?qVE}R1IY(1Jp)AudxK5f{C&QEmO8Hg9DMlmnKeY%Y zG5@q*CHSMOSVQ>e_sh#NXd2QR4u3ZK#~6~u?wgBE>{khDp%U^Qg}L6@h$j_?o7gf! zhm>6HD(@(-)j{S6Fj^v9b22;srKx$j6j^ zi*p(Xy+f~`P;1DAg_UctmX7?ET_tsUvrC4{-ow;>k_%L z78b`C7Yjy=RrA{Kc%^~%+lM%gD2Oq{`U=}#J^t8k1FWMEH%8P}AB%x!U~pylNYQA( z{7?pAjE7|OGdh)fT3$+r(a)`Q^Lbn1L1;()aWfg14C4MeZZtQ`;!}1QeVFTSI6eze zdQwbU`yjD9Ltr-}`MN@+gH-&d>3u(I*SB=1Nh+0TAY+VdbUpGZB%9NbA#vtYOe`H^ z$(N&(5kEs|OE)#Pbj%SzZxap~X1ScDV+x8%(rFVo z{Tdgb4drX%43q@;p@|r|OR0!ODK3v8&eBi7`CX;S@+VYXh_omTrR?lHF$P#$SFRY# zFlJ{cNm^pFVs36jtYS^eML8oE8q0R5BP*?yq|6!Nf;=i+#*ps&kW*#}sWIF8;=0mQ zXUCj;CZK>9nqNq+BI<68ltzw2o6^ zOZ+&FhkvBXJOMCiYrVy`R;8`n=(v=S{>nHfE~8>PUpQ=nb)AHIod@hHL*+&3v22dB zjQGcx82F>S4$JJrd>Z|g`H{_##X{2@d{drQp$nr-yQX&__%|;)Fs}lBQ;rkO# zs^b>VUZGlYCcRv>^mx9FyF@5z%0Nct+2~%Ii#kj!8tc<=ZCpolq!I$NqmvOoL+R3D z{vkE%s9|F{&dJg)Kqwo19j>PEsr!D_f@zX>V8DF|H!{+CJ|4If^YMsPzk!c5E{B`0 z+sos+-4tW=E&9N`K169G+B*=vtkU32x)okuz6%+~f948wUKTBhA=w;9Y8so!S1Bfa z2=fxRqmvOoLuvT}ua&P->lE6Wlhl_2PgdrvO3|n8`&GWEEuq>f8s%n-j+a*8W68)% zt5<3RKWTMKtV)Doj>YmVcy}!Mjfiz=eNGBzi^T5gFPSYaNACXS?ttgb7FS4V8ZZOp zngOx786l(z9pPF@0$~Z?Z3aoYI)nU~NM3UiYvBxXB%tJ2OW^n-g#dfVoI^SpGX+Pd z$()sbS+TJ7t8?U4R>q7amR{sS-9>+pRE}0Q$2lR(N(pndWC}_cU|;Vwp+ka$=rLvY8GcGr+~t_Xlcvwh0fK0>VMK? zY5BdN^V3HOYfO=Zl5nvNClKZhZEE_HwGe)Ts90Ek2HrlwOnM9{MCJ2rNY;S~ zm5x@DwYeSKt$J)!in2pbE)~C89c?9PiYmnbrz{Fv2~#SijNoC&)rXdEGaw0-0B0s# zd0+70Nh|Sfe=F)SJ*QlbJgxYnOT27(&fgaMm11km8|$eJ=^b1wv(zvl0e08EPsfmB@s{p|TajMdtJ2AUCjaNl1EUF{?5J%O+ODMs!AF268~q5brtqoze!rJ! zg*7Rx8$$VyEr9-{)CPWon2$;0fzK=XTvkH+=&CSqM$pA&7tm!tJ4r8a1=ax+R+ zI8`!)LKfD>ho}#Rl{@-fNMp#|HsQuei><=J(i*l6Sf$lseE2($2SX@k9HZr%ey&Yx z+j8yCfF^Nnmlmuu6Xmrw=7za^-Wbw6g_7Ft@$tOy;V5cdVN5Ub(-jHdJ}nk24pxvt zEjl3@&Pd#1p^6&>&?4A-=C6`p8@D=x^yKjGV+%@Lgj@&e-~>`SgfMH8@ND!`xSGrN zE6-df)|5`a#sShQ&_W)4j+6Ry^zj`#`Z4VJq-Jy1$L&G6{KuHfU&OT2Tq8P!qRJil+rh=#h7X$(v9Nu(;2_a|d{t0vzRQ}2ms zLEbrzGqi@&(lmtAM@~NtH(h_9j`{3H zoZ~Z@PYmz37fU$ssXBifC^^53JYg>rjt3=vuNRZ=f)S&9a*fE%B?<9s)aNbTi!r5> z0O=>Xm2S1zHMYH&QsbA#E+?gQ8!1Ly>sEez>b_rfYlP%&6VB7Jz1^GramGMuT+`t{ z(o5Em{2qn=R+~mwfCB6~OS_Jq7QS6CJCfe2bP9n zR2tib-{HaZ0&QTsQ{2;~RJv-Qey&3pb1!rj?zYf9 zcWP!bI@J)%qAL;_rc0bmsnTkT{TdepTs=!`*VmOlw6txAQx5z&4sY(^+OzU=5z_D^ z0$raUhJ1dKnYW%uP??acAow@oPVof6{eZbOOk(y=1NiNol5u){x~zdSwbSE#y-s*> zDM&l5=^8_h9sr&~-NyN#R7?GjSW+Js%H)XrCc3Tsj`U)kteyP-GcJR!jS_>(Jdvgg zE61e58cl1S+~Z+$vIP5L-X4uH_Q%^T63d>PaLglF(5j%WR&r1JchAqxO&RS+8_6JJEuWg?vt^>5nF5(=lQ?C?R zk}Icujt>_$NS(xzVp=y7E1a(PZ|3Rbe&IIJT>X+)#gOJxdDFQJbNO=_mWdpaqHA|b z-$|A+t_;+mw01onQ^z_-OkF8Xvk-s9Oldf+^+%pggP$m%@kC5xYmCwLH?CB=YR*%E zV~|Fvv`VR35jM~c{v(I2v7b-_=#y~MrFt@^_z}sY>tl(2wn$wj``k*ezmcM=QNKkz zC7if1@q@!l+qgcOx%W;Bfx2Brq-McKZ}st2g#@2KPM{RWJiYb^~c|A z8+y_!&B=2yC(IGxEVgpOv}ZJK6K1O>&y;_P<^L zrL=Cn5bGA#9a*a5@tYpSaUP-jY&we5@+a6cLdnrmx-8#|LM<&5g}I(rM|&@Vu8!ia zvZFYq=vtMIz@4pd`y|Q*p<4FDLOJZz+yGz2IjL*-7yWScQY;1bl8Mz~4y_xlgHaNz zBTVd9a3#s>TYf3+kbT!w8QCpHYK|?F@vg3}>4?|K#aWtPT5aLTRORxraPBa$EWc7d zqX&g5?Gt?=RdDiiY0gtUr0v>B z3YIY0t5L}p?!3JgmzV2J0lt&ax%~r{zEV3@O|0O$6u*%wZ_UEdOaM zm`d`6>h<-2*p&~wnhy#&z+lUwK<(OaCaiD z55fa*s1E)l)&l1AIq~Jg`DcsWHRia3^`My9=9Ld$?-Hu1)@(9)oO4ImX)KGy`D8ZY zj9YQ~{P_Nax1^`#D2M$bUH&6p?P9B8AO6k&;$E9VC0N+?8Trpe;Xg1>7ULkd#6TfY0-=7*En5tCUR2jV6$dX*xu_W@U z9{iov1I6!CY(v@dMkJ;N`lh?CJV(IU))rd^ws|LgwFDfgP)2RgAjTzO&a3@!YtWhs zyEBQ*&$)%`U#wjL7s~r}v0WjjKJPqxl+XJ>X)U@Nud;HdcJv$$SU?_o9>~})N#qN8 za-kR#-6)S`PyIuUi>o-uT{*EO_Q}*)>`WQ(yEjaUD8_N@>eUeIsHog`A z^L5|^KwL^<85whO(1RDQov)NwuFtFPIf*FUHl-9xM8l*+%hK8pAEPWEj5SDzuRvnG zFcvmSd5d1R7KGF(CC)iDjn1;VaJvC1FUUxe`{Q3{n53io1bT8r z+l$gpIP+yqzmt3@eo9WiaLGGq0H{jc)j~(i+jmpEOWJ7#s9=$Lg%%!!6ivz+|Ma-y^fIT<1RJ5CfQ%M_S1#MbDl zT(WoU`0z)x^e0+G%g2AT63WXNmX{|}yrgYxf7*c?cwncUjaBVPDAC5M_NHs{Orfnj zu^iKsI;_C=y|NZcLPrzsESQ@=wn{lVZHYq6e|*0ywLKALW+1ie#VCOQ5Z8kLB-Hh+ zSTdUEESTSQ#uN=CNh$gieLt!DH8#siofrb%34s3gvlavW&&U4s`dBOE*a;m^&yzai zI?W(fB@MJF4@0DYFG*0^wDc9`bkn7C>tk<;2GDMjq8pE1E?B8I?A;QLqxMh+q}uBF ziB;jsPphP%U(*G=10k;-&WY<`8RDoN#HczrJBB1OAZ>qjn>_PB|G5|g?|Dd7I14>5 zwiBchm^m@^<&s;e`+cc$qH|mJr2S!qhKl@LDKD_?!?*UzV`A+!OrDQbg1O3D^n`7l z$Li<(bAXG1&*{0rngh%D{sIl+>Ws>ZZFO-RqV!#!LJfL9_;LLq=+DwBAB-U% zm&SbDXZdgxRh!-E$K-Tva{4i`qqHvhA!k=Zi6N~IfL38U!|Ii75ws?OS%6fa4O`FE zEw*36eaokusjaU?tUq&9d*fSJ-|u*Gww_kYNtSX6aI1==zCx%Izq2tq3K}kue4DvY zxN!X(^RV2GUSfS+S%(X?h0t=BlGOEvG&~k%+p*FrEc*z_o zk5m%-@5X;iY-xiOJ(aK0(DJ8cw6uUme(3 ztqTF86=1KJ=#-Q53W@X2AC<=S!dywsgc71IQ2+9^Yz265cJ)^&ihfziMZyEi5SUe7 zSsBaq0hJ*sI=`+OFtwCb?qQ@n6{FIahP=upIaf{NSm@m~Z8hT4TC`eepq)P)V@#}{ z%Cq_y@?29O&uUMe^e0-+5GAliI7nN}HQ>R?^Hs$2yFsl%U!H{JbFW|6_}{#^Zx8+N z5bbw{=5MsDa$_Z>rx<;ClFLM%)u8w8@?2lQQSuedHxWk~EO%NztBxU0+wXD#4iOL{c8tLa!*`=nAC){k$G={Fb&*o`a4d&%Z5@=OEFvNTw3pGFD3PEBZ(AeQ&(I4$5^Q0muPb^`NJ#HVe_M`IfQggD;P zvIxIv8o1Xqwp&Vrv&}%#pDDK<(64Jof%zDGX&N7kY1|-rcw1>c4YoRG8~Vo)N&Rh zXJGz8X~>4MK6y?xRvJ!5(25dW#PoZsGGWcZa1q!+ET)`u7~lA60A9CZig zpW&9`w(GgU>*2}aso}@le}*?o!+@{KegtVXJ?|moDPrc>d5j#P!8><|-^SNyQy7eV zFT>q3r5NHJ(OGg6$SQmvZE)N5I;7u>{~6w~9Tf2$y&#L1^wtDr;Nzos?et@4&5d|H z@A{wxcV~~q`LOo}O9u40LhQKXmqG6Zcg9Tm-#e23_m1TMH}6P>=5__`IMext>C~I^ z@rv+Ybz{C@IHUc=_80rPCBGdlm-a$$$AA5=yA?mNH3c`}|No^FHMnzS3;sgbJ)ZG@ zFRTjsUA%Kphn1cB+z_}8Ja>Y+9u0S#ykX$z7}SrmtwwCC5!-6Swi>amwDBK>rKfE* zVq1;aR`w=Y%s^?c^?zVEvfzKU;ruRfUT|Wr&Fa}-rDX-W<#^|<8IJeAreF9!l{168 z?Rg)6gl`}Cjz>A~jt-j8n}ud$4ts{?O5BJPnsvCFCp7E56z!4%JDx~!s-!q2F9r6r z@Dj!pxPx+&;g;jJ#xPgm;g~2XCP)hG3L?cgNr5p7-m%z>mozv#&bD7I^?d&SZ9ivn zMed~zxnLGHlI>X`yeAB-DB?;3F z%x<{Z_FoVpUvp$N*7|+8=MTRPKKTMdv*>s>73Q6M72!|tro~lw$6{0X!|*`(qwtyV z$9SEBH>&6jNqU0{XovfRHfM8L+)SL{27BBog-ch=%m8L(%{j#8~zaEk+Yb`ma+ddV{tQ8l16HdZ?ecAN4I<-pC!cm(s~k~V@I`bp^P0fV&96yz7>moD-ruv zF7~Zb>|2xAw_(vDyq3`_R;~>=vJuZXQ6eE~_B6ab@cZ`H+P~NSMr7LGj7p*~DvFBR z|J43xyh-r8_Sf5=Y=5f#`|Uqyf4cn-?SE`P5)F!KqD(X}s*Y;g--^oG--%9&Mn$9X zazT^4V9*#1i&~@Oqqb-S-ZB^-WuwxlJgSTaL{(8m`(N7MZa*5)qMn8uIM2oHWEY~p z_yAtRelYk?^cmm47gZ1AUiLTfTJ@iUzu>)UV>0qebpu|fKE;f|D=-~q9A1Js+bl8n zn{Swhe^pwf2IA0?Z0k+Q%d`b_FuLiYJa)?SMATV|ET={US{}B`&;clmhz28*&0!% z5qPWNw|KSTRlM48*elCOl;&KN+&%$ZFA}aF!b=x_0;e6g z4}BhPL!Xbk&@b~igzboSM_xmP3Xgq?CM_Ajim{20HqhY9nqvABC4OhKi<9&)TSC$Xx?%xVoq&5>BJ0%zt z8P}TpHWQVlTLh>Ng8p0WPwDvCX$=N%sLAL{(Vpnb(OuD3kh2)ps2lI}yd3>X%M{%i z?T!95qU}Rp%U6%&{<~~DXZ{8+)KChKiJwwHS))^;Q=>7_+~|Vn!sx7McJ#jJ?C6~6 z+~~Y$PQ)Iu8vS(xdWem%{?CR#4S$XoipJtisVR8jX*#U9a@8Kqi{2ky6kUuQ#X%E# ziC^H&shKu5iY|*TiRMS#X)F$gq9=I~?^4;57*TU{0^p(fW2m=s2hfEs+*cFMnmuP; zP}RF+LmzsOBJ@$gJMRD^t;e{abozp`T7z*jr_ZB%5#95qFMxag1#{qDbiw&>=Sl3m zi_U}J%N?#>vTjvSwR+X+RVW>Ihl!Ij{}6vX!(NGY(FEO#gs#DNZ=`REXQOr1;4sB* zgv2*ndS1fLZ9;BSbfgF?#8_6U46ZgI-i)Zi+f@yw6*k}$SguKUsbQ8m*IbBq7%n%R zcwMUxBati3)p*zHdc3N0Gv3g-1MlVBZSFGQ{%~LT zNcdRzBXXaMCVZSG{H*+suv41GDKl3==v419WF!K^#vVSdeB=dG) z@b&|~Pm5iwzrYXIEDcvXe;n(l{Ga$^Y>M-L=qhH-+pk}F^WB)kcggivqJVflAWAQ)0n_%pL z&c^=``FEcP0f?j$=&;rXbG8l#t zL`TrdH@Sk7%^aMr8H2IJqF@}};re7S9&c@ZA(&vkZoVE&G>@1^f=T8v^H?z1JZYW^ zrr_PIH-a<5y09*o3M+Aba3)?nxjmRJuahj4*GU%1>m-Zib&@5S=QGa-oki6})xpxD zfkgv@uA-BQP71nRFTYo4B>R+vY9qya>JBmEPVA$EgJS`s#uE8Iy z^Wdhz!{Lq^j1#hhVZ{e?HV_P+hQHb3n*-lP_`7T{&Oi+A8oUzjTKsL2*sI{XMts-8 zw*!AS4Za2LZ32TGAAFbi?iqal;C+K18T{DbCjmPku;<`=QG74McUXLH!1oq?L-?1) zU*(X2Lxv1#88QO?(fGsg7VZT6oi4r^@SQEbx$w;s-vam+%E>k!|hp;L#>8hY-~3y01J>~ev1!na&}eei7%-<9xPExzsW zU5~#Thu%DN*U&qL-ULE!#=o=;P0`9C*dBz-*XKw!hIQkha292`&NJ_02{M# zEAcn5aR}TN{Efih=*9@{1kz|cy>Uk4*^P4>=QS>9T-?~x*xR_SaZBUY#%+z)HQvy; zv+>r(+Z*>Z?rprc@qxyN8uvFo-uP7GGmQr&?@NuZG``k&1X$i~3Y$uss)C@YuBoA^ zwF$MH4M{;ogkD zT}^kuMeQ`*-E<#Z)QtXXLj5$McHlmNzo(l}H%%|#?@-gLa8WZ&Z#Esp;~qu$D{roW zTaUk{=HYNrC(UD;$H7ING*4@u4HtFNd{Ogda2MjQiFf+X7h!LCe6FAuTN} zBj6j|617ZdIUT+kEoZmPZJ7t(f|kWCJuSWPt;63I$*~o_ZQ{EQz8l216TVwpZil-E ze|uZ*h5G>h9%|VS_i_9^)$$D7gZO)?6bd>!yj65mw#W{D3qH4OCxcRv15S8zM=w;X?c!#2RZ5`R|@Lv0Paei&+N*v)I3${y;SAgrbF~|wvj%^b1 zp@M&v%*%w#2Il1DLM{Ltd0xmM5XmcrtN^O=7D3hn4S7wFtw4KT7vwr%1FuV7FR+!^ z4zNCAd%^Y-JH#b_%(c&h zv;i(V{B75O5_=hBB~Wdzgk{T2HQq#C)jRc`@jwmI}CP| z*m3(Q`;h&-{i1!ue$9TvK5oBlzh{47pUR(+pOrs5KPP{FzCGWQ@6XrsWBKLz3-fF8 z>++Z6H|DqGuTqr!PF_m>T7dkPzX@y$>9&LIBDM#tpV&dLBgBq@ogj7^>@2YhV3&wp z0lQ9Y3~Ykf9k5Aa@T!9o#gPfXvygLuTws9%Ne(X%bVMLafeJ?zuzTKF40ie#arO0mq=@q~i?OImfW$vICxTj5=;QZaMCP-FG~4s?M4C zah+Mtxz2e`8<@-Kb85~Kurg<*v)Wk;w%EDU+3ais>u{2XzQUoDJl-=0n;6 zkIN6K^HN+fSGjAUtHxF5THs^~%TaXIBxpt8q{O0O+!Dp@`z%kbe zNO;S2)&)+T(AXhhuiB8f<@e=?h1Dm*dlkm zyTRQA)(W8gA>je{I$|5#z5FkZx4L&2tPe+fNw**D5U~NUL1HI`6^_ri&$)+5ciDZ_ zJxc5*^tXuJ1-nn|k)n81V5VmlJBUTAk?Wu)a3@r6DL$(1O zK)0s{a-(N6m-dv0!#V4&?j-_^`kO_<5cJ9f%Pt2U|$2rl781NkL;lOTjAWI!U({Y(224 zU<>4S((MAjt`!JUH1f`{UVo4lD^ z=gkJ@5X%KyK+M4P~-U08R_oVlX_ndbay34>-$}yVEaTB^*-n)?ZlR9|65Z;HJ3Ctpf7$}@q zXoExy6#5D^$P%E8QY*o#iPdt+UxkZ-rGXf4RW^m@q0%ij_zWMx^ zzkGJULyTgD7~(~|d=xdLD~BCLj<3c@RD5+wwgjn-z81(;NnIz7*80{%Zc6I5;E3YN zhqw|iA4M1EzJ8$rJLo&&JLWs#JMBA*qYIRJ3G527>tJKVCcy3xo8*$ee26mfDoPNg zh$4<37G)=tMRRbJTeJYuk<@vUEC_vs9~G4X6-8B$i-7u~2FNC$l~UWe&gy zq~N;VB-@Ik9hBM!wino6bO>^Qbc0|giJjq+zlzR@zhJ{jb~(weLO)t`6Y^G4cQ?uI zL;r{$`Bh*hu~~^!|J)>-=ePM?exG0Sm-x&4mHujft$%Scb!n0{qm(v&YO zB(@oB8?l{WyNMxo{RfC020Q9M4tWX~@}Gyi2#olzLEZqy{kI|S0T29$*1!xPD=-@} z2bdqQLwW#zK!=P0<$;BeH9%beu@`6rS^}#eJAt)<^^lu@ErIQjyMR4`e#nEsk-#y? z6Ts=fS;z~(rN9-)>%drG0`d+p8F;ARQ7e!c%!Zr;VCCFlUWK_mquKxwc7vIny@Q`5^M*$g6kkR0KLJjkUM}r{JN78+z%WI4nPh9Cxd4o&jG{OuT=?N1xAB6 zA#VY9gZCjHDg1ZsXF|>b=7#1$+5i`RCriQS)=H=(R0dfIREKII7XwQ}&5&(CN2nXJ z2iO?e47m;18QKlG4>%Ay40#kd9y$d%6gnTe7#ay(3*88fhi-@Ng&u^av>95KHe1Wl z=4*D%qxm&mi)rQBLaj!t)0SwBT8p+y>(th2>$OeV7Hzw>OWULMYX`L>+A-~fc3L~D zUC=IRSG4Qem^Pu^(I&Nrco>x#&JNEB=Y|)A9bs=c7>ixFOsWZVk7G zyTa?j8^XQet>GQvzVP1g{_vsjKzJ~GGJGa{E<7B*9KISJ4c`pk3f~Ri4?n^W0?*WE z>2vjYx=nZKK3&sG^fJ9tuhwhz#rjgcS#Q%j^lrUJ->7fax9L0e-TFTLfTHM!^`rW6 z9c`cw>F4!}`Uu!H{f0iS-v+y7BCwDq7>&8&o8zYd%*mFPP$ledGW&H z8XVUFOGwvP+)})%xD&@~f%T-@RJ^5ld+{zD?*aNrhd3=hLhKmW31X+g&Jw!-c8S;( zuKG-A9UQ>aY#1Qwd&E<^0UYiHlh`GRg#5AxHVr5{J#Hzt+Ut0{hl#bCKUTY)P z0oF~d2W%s;&0yPz?F8FRY#-PGVu!(w5<3odir5g?d14pAMu=SlyFqLm>^8A`U=N5* zDN4x<&PuX?*~D_d<`c7nd5HPJbYd~Ea$*a?YKYZ=Eg{wj)3FtRL(ku_Iu|h@AjCP3$b#1!9-Lt`NHpHb!g$><+O>u!o#QIWmc5gUun9 z3$}omBkGL?qY)gJMk}IK(M4eO(S~SKv=yv9+7(?F-2m1b-5T8y?E~8z-5)&^9RM4Q zo{XM}o&y_>UXEUkj)L8c-iqFh-UoYxAN-yfo24kRxv_aMTg(OKi)pcvSQ%JltU6X3 zTMV`|)*Ne#b%1rpdSV-6o58llcE)zc_JJLU9gZE19S1uV8;YHeT?8A6U5nj_jf26D zF?bOYevD0V7Kb0>@FFDq7|$UFKgQujNb(~wKbQO!hezY^CuBL7{1sm){(_NjNeBPN z$-nVNF!FC4{*9A=<7>g-SxE9NG59yWof!NZC;!I#!4AgZ+cB^jyyavwB-KPpRenPHdQpxkuViUl zOSyWA*M#iRUYtKeE@5vj&Cp9Fd@R+|C|}Z8mSAN=C5Py9N72roi8@R6I;A37o@`-; z|7gNh<5P^(>y`2rh}5Zj3RAu>=|!8wGoDN4t)}wVlg7>M<=9Z}Qr>b=2ctEn&nxPm zXhW{AG1tmeTe;@t++O)>;~JACD-YFwL}_itd8e=UfVq50BbWS4oa$!P&Mf12vXw+1 zdB>#jrP2KKiCn%6vu5l`8_7plO~cz!_O$^lCMR0Q@$3Vk*_78nXb8^ zk?LvmFX`&US*&`ZIHOgnIJx zBSx!96HlYz<;b~08T`6LeMH@Ar2d;2w|RdT^|VSAb+%6BXR%J@wX#g5`pBuGp5~E9 z)X=OKbxWt`=QZnPkGLsH`QuTvk~B*DGJe1{q!(jRNc|idIUeNxYuJ!SQf#DNkSK?b zy0Xnu8c&4gdsKo>=M71EJw=cI?J`Qxsm@Qgm+P5kj;2{ALf0#gU_QEDIg-ueo;i{u z8N6;OPf|3}m|RYlaq4$+Pn09du%Q-CwV9p)6Xo#HEX78OsDur_ zt`r;cf~aBQT)c&4n<42+*HcT%s}Vc3j96s}9^m~{xkkC_mFe}~%cK!!5iKTGlGUOF z-eSh8CL(D}t4;ID$Gjp{u1nXROC>);IT+cdTUE>jhVQ5}adl#4Wn8snFJ=m1Pc}+} z`j0LR`C8AO4l_ zl++I8lD%AxJeH=6GgK3~ofDkLp~0o{<&h+1ZBJfKvpSXYTG>d^A|f+gIq6pvKI*^b zxkLEfyaExUWjcEvdui;cebU+Um1;VBzV>&qYD0Nd{2q-h@{@;@HkbTsM5f6L@^d`7R~oahRKnMeOewEX zD=`w9^@i7^>*c-J=qb+Yg46q8G?d1B`M^v2Ez(^UBq=KnkExs|uPc=C zEH=NZIvX=DU033B6N*F9h`wJ!{*p)L5cx}ZP}rD9Z*g}Z+k8arESJ+w{*rC#O*S zyl#p&tGsp^hpqD3=?>j8FOAh!ZIyCwXlg4F&&Iu>oJym;u}YNmB8JWPk|KJ|t4cBN znC-`LQ zlzRv1vxzk8K-q&SG0CG{zNhfedBs}As1Mo8^Ly&Esp++cd|h&0!R5PDt2i{TxL%=} zi@BhR`i|hTUT`DtriMP8%+fkk%D8wsK`kKiK1;3S-XYg8rFTf5xyWk_ zkyjo`KBan!^P2VMPsD`1wVr!9O*wRphMxMhC`Z)aY;PX%jPpw6h%raZFLM25y?ni5 z{1Nu@d1ZU~ys}q%1Y&*@!qKX3w{IiW93&YOX;KU zJRfJ@W`CfZVil}H`6a&X+^kHn?RaOh9c&l-7VBew!?M{A+269+?C)4Vdx7m|KSCaS z|CznW{vPjK_G9dy@De+M_si@j*hgVLJBhag`zf4aPIel*gSfD>!VvCl@l9z~z`rSt zeK&^jE@VGvm+`+$BX|edzp|?=guNI3orP(SnJ62_JI*H9=d6_d3Omk}v3vM#btSvc zzGQ#M{u}Qni^adj|Fy+JgUF=D(8lVyF=Num!Qxrou9TY+w$M3oHN}fEU0MW&Y_f zD+MZmDqs;%kN$$4`dJgu3bX@VIKw*Zr?mm-1-8O&2lRdTyBF9G90CS_LEt2C1~>-{ z1DAoTz$kDNxCPwBd9Z^Nd!(o;9Hh#JXAw zEC!YW%>d?QwFBq|dVr0Dy*z+C{nPm%vwbL zA+$she#5L8V{-@g;_E>RZC17^JC)taKIMRNSUIX3$Ld;?16PcdvxV4+qK+-Wo~JFS#V33%IQ1KnBZkCW2%lkQol0o1 z+5qSB7yJ$o9P{YZmr||);y3t86sbQYc@**!KL4S7F25u>l1Ab))MTz7fM4Nvp;H5r zBn9b^Z9d`sY#Mw@aHc=4=HjzAs@d;`g6jByjc6H95oN2BKg>|e$A%v6-K0Qc=B;0kaZ7y~ANJHRCH5KhOR zZ#dfW-$hYa6VM8@16{y6U<1$#Yz1}z&pz7zZbm&Ze#w3Qw>@(4k^1Y8(O+*Qa$)r0 z`#5I9|Cx~N@u0d3@?=I8^w>ih`=)%29aP|WOf;>_-|xoX+}8Hh@4{0x=;4L6%et4h zt!S}*xU##==3ca-tHri(bw~Fan@H$#+dOUE-JNSk`JmaqeD(W*u8)>=tX{Te z<(fbTaul`l90gffUfVk>n%AuCUJ}N(C49wck^MU@Ex3Y}%U5@-aod)C(A~DWYmIGLM~iLw>due4R=(TT zJzbx#C@s+3zPdS36j;->Jn(M&N1bhJ0(EbEr}E7={O|L@6|etqvnL(@m2LLFIG6%+ literal 0 HcmV?d00001 diff --git a/app/src/main/java/com/keyflow/computador/app/ComputadorApp.kt b/app/src/main/java/com/keyflow/computador/app/ComputadorApp.kt new file mode 100644 index 00000000..23130a76 --- /dev/null +++ b/app/src/main/java/com/keyflow/computador/app/ComputadorApp.kt @@ -0,0 +1,107 @@ +package com.keyflow.computador.app + +import android.content.Context +import androidx.compose.ui.graphics.Color +import androidx.fragment.app.FragmentActivity +import com.keyflow.App +import com.keyflow.computador.AutenticacaoHost +import com.keyflow.computador.Host +import com.keyflow.computador.sessao.DependenciasDeSessao +import com.keyflow.computador.sessao.DonoDaSessao +import com.keyflow.computador.sessao.GerenciadorDeSessoes +import com.keyflow.computador.sessao.ResultadoAbertura +import com.keyflow.computador.ssh.ConexaoCbssh +import com.keyflow.computador.ssh.ConexaoSsh +import com.keyflow.computador.ssh.DestinoSsh +import com.keyflow.computador.ssh.PtyInfo +import com.keyflow.data.SettingsRepository +import java.io.File +import java.lang.ref.WeakReference +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.SupervisorJob +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.launch + +/** + * As peças do Computador que vivem enquanto o processo vive: repositório, gerenciador de sessões, registro de emuladores, o provedor de + * chaves e a interação com a pessoa. Nada é criado até alguém chamar [iniciar] (a `TerminalActivity`, a aba ou o serviço). + */ +class ComputadorApp private constructor(private val contexto: Context, dependenciasDeTeste: DependenciasDeSessao? = null) { + private val escopo = CoroutineScope(SupervisorJob() + Dispatchers.Default) + private val atividade = java.util.concurrent.atomic.AtomicReference(WeakReference(null)) + + val settings = SettingsRepository(contexto) + private val cofre = CofreDoApp((contexto.applicationContext as App).authServices.store) + val repositorio = RepositorioComputador(settings, cofre, File(contexto.filesDir, "computador/known_hosts")) + val interacao = InteracaoDoApp() + val emuladores = EmuladoresDeSessao() + val provedorDeChaves = ProvedorDeChavesAndroid(cofre, BiometriaAndroid(contexto) { atividade.get().get() }) + private val rede = ObservadorDeRede(contexto) + + /** Cópia dos metadados das chaves para a decisão síncrona da reconexão (sem bloquear thread). */ + @Volatile private var chaves: List = emptyList() + + private val dependencias: DependenciasDeSessao = dependenciasDeTeste ?: object : DependenciasDeSessao { + override fun novaConexao(): ConexaoSsh = ConexaoCbssh(repositorio.confianca, interacao, escopo) + + override suspend fun destino(host: Host, dono: DonoDaSessao): DestinoSsh? { + val senha = if (host.autenticacao == AutenticacaoHost.Senha && host.lembrarSenha) repositorio.senhaLembrada(host.id) else null + val assinador = (host.autenticacao as? AutenticacaoHost.Chave)?.let { a -> + repositorio.chavesOnce().firstOrNull { it.id == a.keyId }?.let(provedorDeChaves::assinador) ?: return null + } + return DestinoSsh(host, senha, assinador, confiarSozinho = dono == DonoDaSessao.USUARIO) + } + + override fun precisaDoUsuario(host: Host): Boolean { + val a = host.autenticacao as? AutenticacaoHost.Chave ?: return false + val chave = chaves.firstOrNull { it.id == a.keyId } ?: return false + return !provedorDeChaves.janelaAberta(chave) + } + + override val rede: StateFlow get() = this@ComputadorApp.rede.temRede + override fun agoraMs(): Long = System.currentTimeMillis() + } + + val gerenciador = GerenciadorDeSessoes(escopo, dependencias) + + init { + SessoesService.ligar(contexto, gerenciador, escopo) + escopo.launch { repositorio.chavesFlow().collect { chaves = it } } + // O emulador de uma sessão que acabou (fechada, caída sem volta) é liberado. + escopo.launch { gerenciador.resumos.collect { lista -> emuladores.manterSomente(lista.filter { !it.estado.terminal }.map { it.id }.toSet()) } } + } + + /** O `FragmentActivity` visível (o `BiometricPrompt` precisa dele); `null` em segundo plano. */ + fun atividadeVisivel(a: FragmentActivity?) { atividade.set(WeakReference(a)) } + + /** + * Abre uma sessão para [host]: cria o emulador **antes** (para o primeiro byte do servidor já ter onde cair) e o liga à sessão. As + * cores iniciais são as do tema; a tela troca por `setDefaultColors` quando o tema muda. + */ + fun abrirSessao(host: Host, dono: DonoDaSessao, corFrente: Color, corFundo: Color, pty: PtyInfo = PtyInfo(80, 24)): ResultadoAbertura { + val ligacao = LigacaoEmulador(escopo, corFrente, corFundo, pty.colunas, pty.linhas) + val r = gerenciador.abrir(host, dono, pty, ligacao) + when (r) { + is ResultadoAbertura.Aberta -> { emuladores.registrar(r.sessao.id, ligacao); ligacao.ligarASessao(r.sessao) } + is ResultadoAbertura.Recusada -> ligacao.fechar() + } + return r + } + + /** O sistema pede memória (CMP-29). O texto das sessões fica: só imagens (Fase 2) seriam liberadas, e elas ainda não existem. */ + fun aoFaltarMemoria(nivel: Int) { /* nada a soltar sem imagens; o scrollback de texto nunca é descartado */ } + + companion object { + @Volatile private var instancia: ComputadorApp? = null + + fun de(contexto: Context): ComputadorApp = instancia ?: synchronized(this) { + instancia ?: ComputadorApp(contexto.applicationContext).also { instancia = it } + } + + /** Só para testes instrumentados: recria o [ComputadorApp] com [dependencias] falsas (conexão de mentira). Devolve o novo. */ + fun paraTeste(contexto: Context, dependencias: DependenciasDeSessao): ComputadorApp = synchronized(this) { + ComputadorApp(contexto.applicationContext, dependencias).also { instancia = it } + } + } +} diff --git a/app/src/main/java/com/keyflow/computador/app/EmuladoresDeSessao.kt b/app/src/main/java/com/keyflow/computador/app/EmuladoresDeSessao.kt new file mode 100644 index 00000000..f1d5f851 --- /dev/null +++ b/app/src/main/java/com/keyflow/computador/app/EmuladoresDeSessao.kt @@ -0,0 +1,21 @@ +package com.keyflow.computador.app + +import java.util.concurrent.ConcurrentHashMap + +/** + * Um [LigacaoEmulador] por sessão, guardado **fora da activity**: girar a tela, voltar para o app ou recriar a `TerminalActivity` reencontram + * o mesmo emulador, com tudo que já estava desenhado. Sai do registro (e fecha) quando a sessão acaba. + */ +class EmuladoresDeSessao { + private val mapa = ConcurrentHashMap() + + fun registrar(sessaoId: String, ligacao: LigacaoEmulador) { mapa.put(sessaoId, ligacao)?.fechar() } + fun de(sessaoId: String): LigacaoEmulador? = mapa[sessaoId] + + fun remover(sessaoId: String) { mapa.remove(sessaoId)?.fechar() } + + /** Fecha o emulador de toda sessão que não está mais em [vivas]. */ + fun manterSomente(vivas: Set) { mapa.keys.filter { it !in vivas }.forEach { remover(it) } } + + val ids: Set get() = mapa.keys.toSet() +} diff --git a/app/src/main/java/com/keyflow/computador/app/FiltroDeRespostas.kt b/app/src/main/java/com/keyflow/computador/app/FiltroDeRespostas.kt new file mode 100644 index 00000000..3252f374 --- /dev/null +++ b/app/src/main/java/com/keyflow/computador/app/FiltroDeRespostas.kt @@ -0,0 +1,399 @@ +package com.keyflow.computador.app + +import java.io.ByteArrayOutputStream + +/** + * CMP-35, lado da **saída do emulador para o servidor**. O termlib devolve pelo mesmo `onKeyboardInput` as teclas do usuário e as respostas do + * emulador, e a origem não se separa por flag (a saída nativa vai por `Handler.postAtTime`: medido na CMP-T1). Então o filtro olha **o que é**: + * texto e teclas passam; entre as sequências de escape só passa o que está na lista fechada de teclas e de respostas permitidas + * (DA1/DA2, DSR/CPR, tamanho, cores, kitty `a=q`). Todo o resto (DCS inteiro, OSC 52, relatório de título, DECRQSS, qualquer final de CSI + * desconhecido) é descartado antes de chegar ao servidor. + * + * Sem estado: o termlib entrega cada tecla ou resposta num pedaço só. Uma sequência que **não termina** no pedaço é descartada + * inteira (mas `ESC` sozinho, ou `ESC` + uma letra, é a tecla Esc/Alt e passa). + */ +class FiltroDeRespostas { + /** Quantos pedaços de sequência foram descartados desde que o filtro nasceu (para os testes e o diagnóstico; nunca guarda conteúdo). */ + @Volatile var descartes: Int = 0 + private set + + fun filtrar(entrada: ByteArray): ByteArray { + if (entrada.none { it.toInt() == ESC }) return entrada + val saida = ByteArrayOutputStream(entrada.size) + val n = entrada.size + var i = 0 + while (i < n) { + val b = entrada[i].toInt() and 0xff + if (b != ESC) { saida.write(b); i++; continue } + if (i + 1 >= n) { saida.write(ESC); i++; continue } + when (entrada[i + 1].toInt() and 0xff) { + '['.code -> { + if (i + 2 >= n) { saida.write(entrada, i, 2); i += 2; continue } + val fim = fimDeCsi(entrada, i + 2) + if (fim < 0) { descartes++; break } + if (csiPermitido(entrada, i + 2, fim)) saida.write(entrada, i, fim - i + 1) else descartes++ + i = fim + 1 + } + ']'.code -> { + if (i + 2 >= n) { saida.write(entrada, i, 2); i += 2; continue } + val fim = fimDeString(entrada, i + 2) + if (fim.fimDoConteudo < 0) { descartes++; break } + if (oscPermitido(entrada, i + 2, fim.fimDoConteudo)) saida.write(entrada, i, fim.proximo - i) else descartes++ + i = fim.proximo + } + '_'.code -> { + if (i + 2 >= n) { saida.write(entrada, i, 2); i += 2; continue } + val fim = fimDeString(entrada, i + 2) + if (fim.fimDoConteudo < 0) { descartes++; break } + if (apcDoKittyPermitido(entrada, i + 2, fim.fimDoConteudo)) saida.write(entrada, i, fim.proximo - i) else descartes++ + i = fim.proximo + } + 'P'.code, 'X'.code, '^'.code -> { + // DCS, SOS e PM: o usuário nunca gera (Alt+P chega sozinho, tratado acima pelo tamanho do pedaço); o emulador não responde com eles. + if (i + 2 >= n) { saida.write(entrada, i, 2); i += 2; continue } + val fim = fimDeString(entrada, i + 2) + descartes++ + if (fim.fimDoConteudo < 0) break + i = fim.proximo + } + 'O'.code -> { + // SS3 (teclas em modo aplicação): ESC O . + if (i + 2 < n && (entrada[i + 2].toInt() and 0xff) in 0x40..0x7e) { saida.write(entrada, i, 3); i += 3 } else { saida.write(ESC); i++ } + } + else -> { saida.write(ESC); i++ } // Alt+tecla: o próximo byte é tratado no laço (inclusive outro ESC). + } + } + return saida.toByteArray() + } + + private class FimDeString(val fimDoConteudo: Int, val proximo: Int) + + /** Índice do byte final do CSI (0x40..0x7e) depois de parâmetros e intermediários, ou -1 se não termina ou se tem byte inválido. */ + private fun fimDeCsi(d: ByteArray, de: Int): Int { + var i = de + while (i < d.size) { + val b = d[i].toInt() and 0xff + when { + b in 0x20..0x3f -> i++ + b in 0x40..0x7e -> return i + else -> return -1 + } + } + return -1 + } + + /** Termina em BEL ou `ESC \`. [FimDeString.fimDoConteudo] é onde o conteúdo acaba; [FimDeString.proximo], o primeiro byte depois do terminador. */ + private fun fimDeString(d: ByteArray, de: Int): FimDeString { + var i = de + while (i < d.size) { + val b = d[i].toInt() and 0xff + if (b == BEL) return FimDeString(i, i + 1) + if (b == ESC && i + 1 < d.size && d[i + 1].toInt() == '\\'.code) return FimDeString(i, i + 2) + i++ + } + return FimDeString(-1, d.size) + } + + private fun csiPermitido(d: ByteArray, de: Int, fim: Int): Boolean { + val final = (d[fim].toInt() and 0xff).toChar() + val corpo = String(d, de, fim - de, Charsets.ISO_8859_1) + // Nenhum intermediário (espaço, `$`, `"`, `'`…): DECRQM, DECSCUSR e afins não estão na lista. + if (corpo.any { it.code in 0x20..0x2f }) return false + val prefixo = corpo.firstOrNull()?.takeIf { it in "<=>?" } + val numeros = if (prefixo != null) corpo.substring(1) else corpo + if (numeros.any { it !in '0'..'9' && it != ';' && it != ':' }) return false + return when (final) { + // Teclas: setas, Home/End, F1–F4, Shift+Tab, PageUp/Down e F5+ (`~`), kitty `u`, foco (I/O). + 'A', 'B', 'C', 'D', 'E', 'F', 'H', 'P', 'Q', 'S', 'Z', '~', 'u' -> prefixo == null || (final == 'u' && prefixo == '?') + 'I', 'O' -> prefixo == null && numeros.isEmpty() + // CPR (`r;c R`) e F3 (`1;mod R`). + 'R' -> prefixo == null && numeros.isNotEmpty() + // DA1 (`? … c`) e DA2 (`> … c`). + 'c' -> prefixo == '?' || prefixo == '>' + // DSR: `0 n` ou `? … n`. + 'n' -> (prefixo == null && numeros == "0") || prefixo == '?' + // Mouse SGR. + 'M', 'm' -> prefixo == '<' && numeros.isNotEmpty() + // Tamanho: `4;h;w t` (pixels) e `8;linhas;colunas t` (células); `6;ch;cw t` (célula). + 't' -> prefixo == null && numeros.substringBefore(';') in setOf("4", "6", "8") + else -> false + } + } + + private val cor = Regex("^(?:(?:10|11|12);|4;[0-9]{1,3};)rgb:[0-9a-fA-F]{1,4}/[0-9a-fA-F]{1,4}/[0-9a-fA-F]{1,4}$") + + private fun oscPermitido(d: ByteArray, de: Int, fimConteudo: Int): Boolean { + if (fimConteudo - de > 64) return false + return cor.matches(String(d, de, fimConteudo - de, Charsets.ISO_8859_1)) + } + + /** Resposta do kitty `a=q`: `G` + chaves `k=v` separadas por vírgula + `;` + texto imprimível curto (`OK`, `ENOTSUP:…`). */ + private fun apcDoKittyPermitido(d: ByteArray, de: Int, fimConteudo: Int): Boolean { + if (fimConteudo - de < 2 || fimConteudo - de > 300) return false + val texto = String(d, de, fimConteudo - de, Charsets.ISO_8859_1) + if (texto[0] != 'G') return false + val ponto = texto.indexOf(';') + if (ponto < 0) return false + val chaves = texto.substring(1, ponto) + val mensagem = texto.substring(ponto + 1) + return chaves.all { it.isLetterOrDigit() || it == '=' || it == ',' } && mensagem.all { it.code in 0x20..0x7e } + } + + private companion object { + const val ESC = 0x1b + const val BEL = 0x07 + } +} + +/** + * CMP-35, lado do **servidor para o emulador**: consome, antes do termlib, o que o app não quer que seja respondido ou exibido — + * `ENQ`, `DECRQSS` (`DCS $ q … ST`), relatório de título (`CSI 20 t` e `CSI 21 t`), `OSC 21` e a **leitura** do clipboard (`OSC 52 ; … ; ?`). + * A escrita (`OSC 52` com dados) passa: o termlib a entrega ao `onClipboardCopy`, onde o consentimento mora. + * + * Também lê o título (`OSC 0` e `OSC 2`) **sem alterá-lo**, para o rótulo da aba (o termlib 0.3.14 não publica o título), e o entrega a + * [aoTitulo] já sanitizado por [RotuloDeAba]. + * + * Com estado: sequências partidas entre pedaços (a rede parte onde quiser) são seguradas até a decisão. O resultado de qualquer divisão em + * pedaços é igual ao do fluxo inteiro (`FiltroDaSaidaDoServidorTest` confere por sorteio). + */ +class FiltroDaSaidaDoServidor(private val aoTitulo: (String) -> Unit = {}) { + private enum class E { NORMAL, ESC, CSI, CSI_DESCARTA, OSC, DCS, STRING_PASSA, STRING_PASSA_ESC, STRING_DESCARTA, STRING_DESCARTA_ESC, TITULO, TITULO_ESC } + + private var estado = E.NORMAL + private val seguro = ByteArrayOutputStream() + private val titulo = ByteArrayOutputStream() + private var saida = ByteArrayOutputStream() + private var descartados = 0 + @Volatile var consumidos: Int = 0 + private set + + /** Processa [entrada] e devolve o que segue para o emulador. Não é seguro chamar de duas threads ao mesmo tempo. */ + fun processar(entrada: ByteArray): ByteArray { + saida = ByteArrayOutputStream(entrada.size) + for (x in entrada) passo(x.toInt() and 0xff) + return saida.toByteArray() + } + + fun reiniciar() { estado = E.NORMAL; seguro.reset(); titulo.reset(); descartados = 0 } + + private fun emitirSegurados() { seguro.writeTo(saida); seguro.reset() } + private fun passa(b: Int) { saida.write(b) } + + private fun iniciarEsc() { seguro.reset(); seguro.write(ESC); estado = E.ESC } + + private fun passo(b: Int) { + when (estado) { + E.NORMAL -> when (b) { + ESC -> iniciarEsc() + ENQ -> consumidos++ + else -> passa(b) + } + E.ESC -> when (b) { + '['.code -> { seguro.write(b); estado = E.CSI } + ']'.code -> { seguro.write(b); estado = E.OSC } + 'P'.code -> { seguro.write(b); estado = E.DCS } + ESC -> passa(ESC) // o primeiro ESC passa; o segundo continua segurado + else -> { emitirSegurados(); estado = E.NORMAL; passo(b) } + } + E.CSI -> when { + b in 0x20..0x3f -> { seguro.write(b); if (seguro.size() > MAX_CSI) { seguro.reset(); estado = E.CSI_DESCARTA } } + b in 0x40..0x7e -> { + val corpo = seguro.toByteArray().copyOfRange(2, seguro.size()).toString(Charsets.ISO_8859_1) + if (b == 't'.code && (corpo == "21" || corpo == "20")) { consumidos++; seguro.reset() } else { seguro.write(b); emitirSegurados() } + estado = E.NORMAL + } + // Byte que não pertence a um CSI (controle, ESC, UTF-8): o pedaço segurado é **descartado**, não emitido. Emitir deixaria o emulador no + // meio de um CSI enquanto o filtro volta ao normal, e uma remoção seguinte (ENQ, CSI 21 t) poderia juntar as duas pontas numa sequência proibida. + else -> { seguro.reset(); estado = E.NORMAL; consumidos++; passo(b) } + } + E.CSI_DESCARTA -> when { + b in 0x20..0x3f -> Unit + b in 0x40..0x7e -> estado = E.NORMAL + else -> { estado = E.NORMAL; passo(b) } + } + E.OSC -> { + if (b == BEL) { emitirSegurados(); passa(b); estado = E.NORMAL; return } + if (b == ESC) { seguro.reset(); consumidos++; iniciarEsc(); return } + // Controle dentro do prefixo do OSC: malformado, engolido até o terminador (pelo mesmo motivo do CSI). + if (b < 0x20) { seguro.reset(); descartados = 0; consumidos++; estado = E.STRING_DESCARTA; return } + seguro.write(b) + val corpo = seguro.toByteArray().copyOfRange(2, seguro.size()).toString(Charsets.ISO_8859_1) + when (decidirOsc(corpo)) { + Decisao.AINDA_NAO -> if (seguro.size() > MAX_PREFIXO_OSC) { emitirSegurados(); estado = E.STRING_PASSA } + Decisao.PASSA -> { emitirSegurados(); estado = E.STRING_PASSA } + Decisao.DESCARTA -> { consumidos++; seguro.reset(); descartados = 0; estado = E.STRING_DESCARTA } + Decisao.TITULO -> { emitirSegurados(); titulo.reset(); estado = E.TITULO } + } + } + E.DCS -> { + // ESC dentro do prefixo aborta o DCS: o `ESC P` segurado some (emiti-lo deixaria o emulador numa string aberta e o que vem depois sairia como conteúdo). + if (b == ESC) { seguro.reset(); consumidos++; iniciarEsc(); return } + seguro.write(b) + val corpo = seguro.toByteArray().copyOfRange(2, seguro.size()).toString(Charsets.ISO_8859_1) + when { + corpo == "$" -> Unit + corpo == "\$q" -> { consumidos++; seguro.reset(); descartados = 0; estado = E.STRING_DESCARTA } + else -> { emitirSegurados(); estado = E.STRING_PASSA } + } + } + E.STRING_PASSA -> if (b == ENQ) consumidos++ else if (b == ESC) { seguro.reset(); seguro.write(ESC); estado = E.STRING_PASSA_ESC } else { passa(b); if (b == BEL) estado = E.NORMAL } + E.STRING_PASSA_ESC -> { + if (b == '\\'.code) { emitirSegurados(); passa(b); estado = E.NORMAL } else { estado = E.ESC; passo(b) } + } + E.STRING_DESCARTA -> when { + b == BEL -> estado = E.NORMAL + b == ESC -> estado = E.STRING_DESCARTA_ESC + else -> if (++descartados > MAX_STRING_DESCARTADA) estado = E.NORMAL + } + E.STRING_DESCARTA_ESC -> { + if (b == '\\'.code) estado = E.NORMAL else { iniciarEsc(); passo(b) } + } + E.TITULO -> when (b) { + BEL -> { entregarTitulo(); passa(b); estado = E.NORMAL } + ESC -> { seguro.reset(); seguro.write(ESC); estado = E.TITULO_ESC } + ENQ -> consumidos++ + else -> { passa(b); if (titulo.size() <= MAX_TITULO_BRUTO) titulo.write(b) } + } + E.TITULO_ESC -> { + if (b == '\\'.code) { entregarTitulo(); emitirSegurados(); passa(b); estado = E.NORMAL } else { titulo.reset(); estado = E.ESC; passo(b) } + } + } + } + + private enum class Decisao { AINDA_NAO, PASSA, DESCARTA, TITULO } + + private fun decidirOsc(corpo: String): Decisao { + val ponto = corpo.indexOf(';') + val numero = if (ponto < 0) corpo else corpo.substring(0, ponto) + if (numero.isNotEmpty() && numero.any { it !in '0'..'9' }) return Decisao.PASSA + if (ponto < 0) return if (numero.length > 4) Decisao.PASSA else Decisao.AINDA_NAO + return when (numero) { + "0", "2" -> Decisao.TITULO + "21" -> Decisao.DESCARTA + "52" -> { + // `52 ; ; `: só a leitura (`?`) é descartada. + val resto = corpo.substring(ponto + 1) + val p2 = resto.indexOf(';') + if (p2 < 0) Decisao.AINDA_NAO + else if (p2 + 1 >= resto.length) Decisao.AINDA_NAO + else if (resto[p2 + 1] == '?') Decisao.DESCARTA else Decisao.PASSA + } + else -> Decisao.PASSA + } + } + + private fun entregarTitulo() { + val bruto = titulo.toByteArray().toString(Charsets.UTF_8) + // O corpo ainda traz o prefixo "0;" ou "2;" que já foi segurado; o que sobra em [titulo] é só o texto. + RotuloDeAba.sanitizar(bruto)?.let(aoTitulo) + titulo.reset() + } + + private companion object { + const val ESC = 0x1b + const val BEL = 0x07 + const val ENQ = 0x05 + const val MAX_CSI = 48 + const val MAX_PREFIXO_OSC = 24 + const val MAX_STRING_DESCARTADA = 8192 + const val MAX_TITULO_BRUTO = 512 + } +} + +/** O texto que vira rótulo da aba (CMP-35): sem controles, sem marcas de direção, até 40 caracteres. */ +object RotuloDeAba { + const val MAX = 40 + + /** `null` quando não sobra nada. */ + fun sanitizar(bruto: String): String? { + val limpo = StringBuilder() + var ultimoEspaco = true + var i = 0 + var pontos = 0 + while (i < bruto.length && pontos < MAX) { + val cp = bruto.codePointAt(i) + i += Character.charCount(cp) + val tipo = Character.getType(cp) + val controle = tipo == Character.CONTROL.toInt() || tipo == Character.FORMAT.toInt() || tipo == Character.LINE_SEPARATOR.toInt() || + tipo == Character.PARAGRAPH_SEPARATOR.toInt() || tipo == Character.PRIVATE_USE.toInt() || tipo == Character.UNASSIGNED.toInt() || tipo == Character.SURROGATE.toInt() + if (controle) continue + if (Character.isWhitespace(cp) || cp == 0xa0) { + if (!ultimoEspaco) { limpo.append(' '); pontos++ } + ultimoEspaco = true + continue + } + limpo.appendCodePoint(cp) + pontos++ + ultimoEspaco = false + } + return limpo.toString().trim().ifEmpty { null } + } +} + +/** + * CMP-28: o que sai de uma colagem (ou de um ditado com quebra de linha). O termlib não publica o estado do bracketed paste, então a + * confirmação vale sempre que há quebra de linha. O texto perde `ESC [ 2 0 0 ~` e `ESC [ 2 0 1 ~` **até não sobrar nenhum** (a remoção em uma passada + * deixaria `ESC ESC [ 2 0 1 ~ [ 2 0 1 ~` virar a marca de novo) e depois todo `ESC` e controle (menos tab, `\n` e `\r`) e os controles C1. + */ +object PoliticaDeColar { + class Preparado(val texto: String, val linhas: Int) { + val precisaConfirmar: Boolean get() = linhas > 1 || texto.any { it == '\n' || it == '\r' } + } + + fun preparar(original: String): Preparado { + var t = original + while (true) { + val novo = t.replace("\u001b[201~", "").replace("\u001b[200~", "") + if (novo == t) break + t = novo + } + val limpo = buildString(t.length) { + for (c in t) { + val manter = c == '\t' || c == '\n' || c == '\r' || (c.code >= 0x20 && c.code != 0x7f && c.code !in 0x80..0x9f) + if (manter) append(c) + } + } + return Preparado(limpo, contarLinhas(limpo)) + } + + private fun contarLinhas(t: String): Int { + if (t.isEmpty()) return 0 + var n = 1 + var i = 0 + while (i < t.length) { + val c = t[i] + if (c == '\r' && i + 1 < t.length && t[i + 1] == '\n') { n++; i += 2; continue } + if (c == '\n' || c == '\r') n++ + i++ + } + // Uma quebra no fim não abre linha nova com texto, mas **executa** a anterior: continua contando como linha para a confirmação. + return n + } +} + +/** Links `OSC 8` (CMP-25, CMP-35): só `http`, `https` e `mailto`; qualquer outro esquema nunca vira `Intent`. */ +object PoliticaDeLinks { + private const val MAX = 2048 + + /** A URL **inteira** a mostrar no diálogo, ou `null` se o link não pode ser aberto. */ + fun aceitar(url: String): String? { + val u = url.trim() + if (u.isEmpty() || u.length > MAX) return null + if (u.any { it.code < 0x20 || it.code == 0x7f || it.code in 0x80..0x9f || Character.isWhitespace(it) || Character.getType(it) == Character.FORMAT.toInt() }) return null + val doisPontos = u.indexOf(':') + if (doisPontos <= 0) return null + val esquema = u.substring(0, doisPontos) + if (esquema.any { !(it.isLetterOrDigit() || it == '+' || it == '-' || it == '.') }) return null + return when (esquema.lowercase()) { + "http", "https" -> { + val resto = u.substring(doisPontos + 1) + if (!resto.startsWith("//")) return null + val autoridade = resto.removePrefix("//").takeWhile { it != '/' && it != '?' && it != '#' } + // `usuario@host`: o trecho antes do `@` engana quem lê o domínio; recusado. + if (autoridade.isEmpty() || '@' in autoridade || autoridade.startsWith(":")) null else u + } + "mailto" -> if (u.length > doisPontos + 1) u else null + else -> null + } + } +} diff --git a/app/src/main/java/com/keyflow/computador/app/InteracaoDoApp.kt b/app/src/main/java/com/keyflow/computador/app/InteracaoDoApp.kt new file mode 100644 index 00000000..f15ac2f6 --- /dev/null +++ b/app/src/main/java/com/keyflow/computador/app/InteracaoDoApp.kt @@ -0,0 +1,53 @@ +package com.keyflow.computador.app + +import com.keyflow.computador.ImpressaoDigital +import com.keyflow.computador.ssh.InteracaoComUsuario +import kotlinx.coroutines.CompletableDeferred +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow + +/** O que a conexão pergunta à pessoa. Cada pedido suspende até [PedidoDeInteracao.resposta] ser completada (a tela da T16 completa). */ +sealed interface PedidoDeInteracao { + val resposta: CompletableDeferred<*> + + class ConfirmarServidor(val host: String, val porta: Int, val algoritmo: String, val impressao: ImpressaoDigital) : PedidoDeInteracao { + override val resposta = CompletableDeferred() + } + + class Senha : PedidoDeInteracao { + override val resposta = CompletableDeferred() + } + + class Codigo(val nome: String, val instrucao: String, val perguntas: List, val eco: List) : PedidoDeInteracao { + override val resposta = CompletableDeferred?>() + } +} + +/** + * A [InteracaoComUsuario] de produção: publica o pedido em [pedido] e **suspende** até a tela responder. **Sem ninguém olhando** ([temTela] + * falso), recusa na hora (servidor não confiado, sem senha, sem código): uma conexão nunca espera um diálogo que ninguém verá. Quem desenha os + * diálogos é a T16; até lá nenhuma tela do app abre sessão sozinha, então esta recusa é o comportamento seguro. + */ +class InteracaoDoApp : InteracaoComUsuario { + private val _pedido = MutableStateFlow(null) + val pedido: StateFlow = _pedido + @Volatile var temTela: Boolean = false + + private suspend fun perguntar(p: PedidoDeInteracao, recusa: T, resposta: CompletableDeferred): T { + if (!temTela) return recusa + _pedido.value = p + return try { resposta.await() } finally { if (_pedido.value === p) _pedido.value = null } + } + + override suspend fun confirmarServidor(host: String, porta: Int, algoritmo: String, impressao: ImpressaoDigital): Boolean { + val p = PedidoDeInteracao.ConfirmarServidor(host, porta, algoritmo, impressao) + return perguntar(p, false, p.resposta) + } + + override suspend fun pedirSenha(): String? { val p = PedidoDeInteracao.Senha(); return perguntar(p, null, p.resposta) } + + override suspend fun pedirCodigo(nome: String, instrucao: String, perguntas: List, eco: List): List? { + val p = PedidoDeInteracao.Codigo(nome, instrucao, perguntas, eco) + return perguntar(p, null, p.resposta) + } +} diff --git a/app/src/main/java/com/keyflow/computador/app/LigacaoEmulador.kt b/app/src/main/java/com/keyflow/computador/app/LigacaoEmulador.kt new file mode 100644 index 00000000..be57e373 --- /dev/null +++ b/app/src/main/java/com/keyflow/computador/app/LigacaoEmulador.kt @@ -0,0 +1,135 @@ +package com.keyflow.computador.app + +import androidx.compose.ui.graphics.Color +import com.keyflow.computador.sessao.PortaDoEmulador +import com.keyflow.computador.sessao.SessaoTerminal +import com.keyflow.computador.ssh.PtyInfo +import kotlinx.coroutines.CompletableDeferred +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.channels.Channel +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.launch +import org.connectbot.terminal.InlineImages +import org.connectbot.terminal.TerminalEmulator +import org.connectbot.terminal.TerminalEmulatorFactory + +/** Para onde vão os bytes e o tamanho da tela. A [SessaoTerminal] é quem implementa em produção; os testes trocam por um registro. */ +interface DestinoDoEmulador { + suspend fun escrever(bytes: ByteArray) + suspend fun redimensionar(pty: PtyInfo) +} + +/** + * O elo entre a sessão SSH e o termlib (CMP-23, CMP-35): os bytes do servidor passam por [FiltroDaSaidaDoServidor] e entram no emulador + * (`writeInput`); o que o emulador devolve (teclas e respostas) passa por [FiltroDeRespostas] e segue **em ordem** para o servidor; a + * mudança de área vira `window-change` com colunas, linhas **e pixels**. + * + * Vive **mais que a tela**: o registro ([EmuladoresDeSessao]) o guarda por sessão, então girar o aparelho ou voltar para o app não perde o + * que estava desenhado. Só [fechar] (a sessão acabou) libera o emulador. Tudo fica em memória (CMP-36). + */ +class LigacaoEmulador( + private val escopo: CoroutineScope, + corFrente: Color, + corFundo: Color, + colunas: Int = 80, + linhas: Int = 24, + /** Teto de linhas de histórico do emulador (a bancada da T1 mediu 5 000 e 20 000 no fork). */ + scrollback: Int = 5_000, +) : PortaDoEmulador, AutoCloseable { + private sealed interface Saida { + class Bytes(val dados: ByteArray) : Saida + class Tamanho(val pty: PtyInfo) : Saida + } + + private val fila = Channel(Channel.UNLIMITED) + private val destino = CompletableDeferred() + private val filtroDeSaida = FiltroDeRespostas() + private val filtroDeEntrada = FiltroDaSaidaDoServidor { _titulo.value = it } + private val _titulo = MutableStateFlow(null) + private val _pedidoDeClipboard = MutableStateFlow(null) + @Volatile private var fechada = false + + /** O rótulo que o servidor pediu para a aba (já sanitizado), ou `null`. */ + val titulo: StateFlow = _titulo + + /** Texto que o servidor quer copiar (`OSC 52` de escrita) e que espera o consentimento da pessoa. Padrão: negar. */ + val pedidoDeClipboard: StateFlow = _pedidoDeClipboard + + val emulador: TerminalEmulator = TerminalEmulatorFactory.create( + initialRows = linhas, + initialCols = colunas, + defaultForeground = corFrente, + defaultBackground = corFundo, + onKeyboardInput = { bytes -> + val ok = filtroDeSaida.filtrar(bytes) + if (ok.isNotEmpty() && !fechada) fila.trySend(Saida.Bytes(ok.copyOf())) + }, + onResize = { dim -> if (!fechada) fila.trySend(Saida.Tamanho(PtyInfo(dim.columns, dim.rows, dim.widthPixels, dim.heightPixels))) }, + onClipboardCopy = { texto -> if (!fechada) _pedidoDeClipboard.value = texto }, + autoDetectUrls = false, + // As imagens (kitty, iTerm2, sixel) entram na Fase 2, com a política por host. + inlineImages = InlineImages.Off, + maxScrollbackLines = scrollback, + ) + + init { + escopo.launch { + val d = destino.await() + // Um único consumidor: a ordem em que o emulador produziu é a ordem em que o servidor recebe (um `launch` por pedaço reordenaria). + var ultimoTamanho: PtyInfo? = null + for (item in fila) { + try { + when (item) { + is Saida.Bytes -> d.escrever(item.dados) + is Saida.Tamanho -> if (item.pty != ultimoTamanho) { ultimoTamanho = item.pty; d.redimensionar(item.pty) } + } + } catch (e: kotlinx.coroutines.CancellationException) { + throw e + } catch (_: Exception) { + // conexão caída: a sessão cuida do estado; o que o usuário digitou nesse intervalo se perde. + } + } + } + } + + /** Liga o destino (a sessão). Os pedaços produzidos antes ficam na fila e saem depois, na mesma ordem. */ + fun ligarAoDestino(d: DestinoDoEmulador) { destino.complete(d) } + + fun ligarASessao(sessao: SessaoTerminal) = ligarAoDestino(object : DestinoDoEmulador { + override suspend fun escrever(bytes: ByteArray) = sessao.escrever(bytes) + override suspend fun redimensionar(pty: PtyInfo) = sessao.redimensionar(pty) + }) + + override fun escreverNaTela(bytes: ByteArray) { + if (fechada) return + val limpo = synchronized(filtroDeEntrada) { filtroDeEntrada.processar(bytes) } + if (limpo.isEmpty()) return + try { emulador.writeInput(limpo) } catch (_: IllegalStateException) { /* fechou entre a checagem e a escrita */ } + } + + override fun tamanhoAtual(): PtyInfo = emulador.dimensions.let { PtyInfo(it.columns, it.rows, it.widthPixels, it.heightPixels) } + + /** Resposta do consentimento do `OSC 52`: [permitir] devolve o texto a copiar (ou `null`). Sempre limpa o pedido. */ + fun responderClipboard(permitir: Boolean): String? { + val texto = _pedidoDeClipboard.value + _pedidoDeClipboard.value = null + return if (permitir) texto else null + } + + /** Cola [texto] já preparado por [PoliticaDeColar] (o emulador respeita o bracketed paste). */ + fun colar(texto: String) { if (!fechada && texto.isNotEmpty()) emulador.pasteText(texto) } + + /** Visível aos testes: quantos pedaços o filtro de saída descartou. */ + val descartesDeSaida: Int get() = filtroDeSaida.descartes + + override fun close() { fechar() } + + fun fechar() { + if (fechada) return + fechada = true + fila.close() + if (!destino.isCompleted) destino.cancel() + runCatching { emulador.close() } + } +} diff --git a/app/src/main/java/com/keyflow/computador/app/ObservadorDeRede.kt b/app/src/main/java/com/keyflow/computador/app/ObservadorDeRede.kt new file mode 100644 index 00000000..72cc53fe --- /dev/null +++ b/app/src/main/java/com/keyflow/computador/app/ObservadorDeRede.kt @@ -0,0 +1,26 @@ +package com.keyflow.computador.app + +import android.content.Context +import android.net.ConnectivityManager +import android.net.Network +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow + +/** Há rede? A reconexão só tenta com `true` (CMP-22). Começa `true`: sem informação, deixa a conexão tentar e falhar com o motivo. */ +class ObservadorDeRede(contexto: Context) { + private val _temRede = MutableStateFlow(true) + val temRede: StateFlow = _temRede + + init { + val cm = contexto.applicationContext.getSystemService(ConnectivityManager::class.java) + if (cm != null) { + runCatching { + _temRede.value = cm.activeNetwork != null + cm.registerDefaultNetworkCallback(object : ConnectivityManager.NetworkCallback() { + override fun onAvailable(network: Network) { _temRede.value = true } + override fun onLost(network: Network) { _temRede.value = cm.activeNetwork != null } + }) + } + } + } +} diff --git a/app/src/main/java/com/keyflow/computador/app/ProvedorDeChavesAndroid.kt b/app/src/main/java/com/keyflow/computador/app/ProvedorDeChavesAndroid.kt index a309374c..4be89bc3 100644 --- a/app/src/main/java/com/keyflow/computador/app/ProvedorDeChavesAndroid.kt +++ b/app/src/main/java/com/keyflow/computador/app/ProvedorDeChavesAndroid.kt @@ -136,6 +136,9 @@ class ProvedorDeChavesAndroid( fun assinador(chave: ChaveSsh): Assinador = AssinadorAndroid(chave) + /** A janela de biometria desta chave está aberta agora? Chave sem biometria sempre está. A reconexão automática usa isto para não abrir prompt sozinha. */ + fun janelaAberta(chave: ChaveSsh): Boolean = !chave.exigeBiometria || synchronized(janelas) { janelas[chave.id]?.valida() == true } + /** `INVALIDADA` quando o Keystore invalidou a chave (biometria cadastrada mudou); a tela mostra a mensagem. */ fun estado(chave: ChaveSsh): EstadoChave { if (jaInvalidada(chave.id)) return EstadoChave.INVALIDADA diff --git a/app/src/main/java/com/keyflow/computador/app/TerminalActivity.kt b/app/src/main/java/com/keyflow/computador/app/TerminalActivity.kt new file mode 100644 index 00000000..0f1dfeaa --- /dev/null +++ b/app/src/main/java/com/keyflow/computador/app/TerminalActivity.kt @@ -0,0 +1,131 @@ +package com.keyflow.computador.app + +import android.content.ClipboardManager +import android.content.Context +import android.content.Intent +import android.net.Uri +import android.os.Bundle +import android.widget.Toast +import androidx.activity.compose.setContent +import androidx.activity.enableEdgeToEdge +import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.ime +import androidx.compose.foundation.layout.systemBars +import androidx.compose.foundation.layout.union +import androidx.compose.foundation.layout.windowInsetsPadding +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.fragment.app.FragmentActivity +import androidx.lifecycle.lifecycleScope +import com.keyflow.computador.Host +import com.keyflow.computador.sessao.DonoDaSessao +import com.keyflow.computador.sessao.ResultadoAbertura +import com.keyflow.data.Settings +import com.keyflow.i18n.tr +import com.keyflow.ui.common.collectAsStateOnMain +import com.keyflow.ui.terminal.TerminalScreen +import com.keyflow.ui.theme.KeyFlowTheme +import com.keyflow.ui.theme.LocalKeyFlowPalette +import kotlinx.coroutines.launch + +/** + * A tela do terminal (CMP-24): activity **própria**, `exported=false`, sem anúncio, borda a borda, redimensiona com o teclado. **Não** pede + * `FLAG_SECURE` e nenhuma opção liga (D17): a Visão precisa capturar o terminal; `SemFlagSecureTest` falha se alguém pedir. + * + * `Voltar` só sai da tela: as sessões moram no [ComputadorApp] (e no serviço), não aqui. Fechar a aba é que fecha a sessão. Os emuladores + * também moram fora, então girar o aparelho reencontra o que estava desenhado. + */ +class TerminalActivity : FragmentActivity() { + private val app by lazy { ComputadorApp.de(this) } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + enableEdgeToEdge() + val primeira = savedInstanceState == null + val hostIdPedido = intent.getStringExtra(EXTRA_HOST_ID) + setContent { + val settings by remember { app.settings.settingsFlow() }.collectAsStateOnMain(initial = Settings()) + val resumos by app.gerenciador.resumos.collectAsStateOnMain() + val hostsCfg by remember { app.repositorio.hostsFlow() }.collectAsStateOnMain(initial = null) + val hosts = hostsCfg?.hosts.orEmpty() + var ativaId by remember { mutableStateOf(intent.getStringExtra(EXTRA_SESSAO_ID)) } + var aviso by remember { mutableStateOf(null) } + val escopo = rememberCoroutineScope() + KeyFlowTheme(dark = settings.themeDark) { + val palette = LocalKeyFlowPalette.current + val abrir = { host: Host -> + when (val r = app.abrirSessao(host, DonoDaSessao.USUARIO, palette.fg, palette.bg)) { + is ResultadoAbertura.Aberta -> { ativaId = r.sessao.id; aviso = null } + is ResultadoAbertura.Recusada -> aviso = r.motivo.texto() + } + } + // Pedido de abrir um host ao chegar (uma vez só, mesmo depois de girar a tela). + androidx.compose.runtime.LaunchedEffect(hostsCfg, hostIdPedido) { + if (primeira && hostIdPedido != null && ativaId == null) hostsCfg?.porId(hostIdPedido)?.let { abrir(it) } + } + TerminalScreen( + sessoes = resumos, + hosts = hosts, + ativaId = ativaId, + ligacaoDe = { app.emuladores.de(it) }, + aviso = aviso, + onSelecionar = { ativaId = it; aviso = null }, + onFecharAba = { id -> escopo.launch { app.gerenciador.fechar(id); if (ativaId == id) ativaId = null } }, + onNovaSessao = abrir, + onAbrirLink = ::abrirLink, + onCopiar = ::copiar, + lerAreaDeTransferencia = ::lerArea, + modifier = Modifier.windowInsetsPadding(WindowInsets.systemBars.union(WindowInsets.ime)), + ) + } + } + } + + override fun onStart() { + super.onStart() + app.atividadeVisivel(this) + } + + override fun onStop() { + app.atividadeVisivel(null) + super.onStop() + } + + @Suppress("DEPRECATION") + override fun onTrimMemory(level: Int) { + super.onTrimMemory(level) + app.aoFaltarMemoria(level) + } + + private fun abrirLink(url: String) { + // Só chega aqui o que `PoliticaDeLinks` aceitou (http, https, mailto): o resto nunca vira Intent. + val seguro = PoliticaDeLinks.aceitar(url) ?: return + try { + startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(seguro)).addCategory(Intent.CATEGORY_BROWSABLE)) + } catch (_: android.content.ActivityNotFoundException) { + Toast.makeText(this, tr("Não achei um app para abrir este link."), Toast.LENGTH_SHORT).show() + } + } + + private fun copiar(texto: String) { + getSystemService(ClipboardManager::class.java).setPrimaryClip(android.content.ClipData.newPlainText("", texto)) + } + + private fun lerArea(): String? = getSystemService(ClipboardManager::class.java).primaryClip?.takeIf { it.itemCount > 0 }?.getItemAt(0)?.coerceToText(this)?.toString() + + companion object { + const val EXTRA_SESSAO_ID = "sessao_id" + const val EXTRA_HOST_ID = "host_id" + + /** Abre a tela já numa sessão (ou pedindo uma nova para [hostId]). Chamado pela aba Computador. */ + fun intent(contexto: Context, sessaoId: String? = null, hostId: String? = null): Intent = + Intent(contexto, TerminalActivity::class.java).apply { + sessaoId?.let { putExtra(EXTRA_SESSAO_ID, it) } + hostId?.let { putExtra(EXTRA_HOST_ID, it) } + } + } +} diff --git a/app/src/main/java/com/keyflow/computador/app/TextosComputador.kt b/app/src/main/java/com/keyflow/computador/app/TextosComputador.kt new file mode 100644 index 00000000..38292da1 --- /dev/null +++ b/app/src/main/java/com/keyflow/computador/app/TextosComputador.kt @@ -0,0 +1,32 @@ +package com.keyflow.computador.app + +import com.keyflow.computador.sessao.MotivoRecusa +import com.keyflow.computador.ssh.CausaSsh +import com.keyflow.i18n.tr + +/** + * As frases em português do núcleo (`ssh/`, `sessao/`, validações) viram texto da interface **aqui**: cada uma passa por `tr` com o + * literal à mostra (é assim que o `TranslationsTest` as enxerga), e o `when` é exaustivo — enum novo sem frase não compila. + */ +fun CausaSsh.texto(): String? = when (this) { + CausaSsh.DNS -> tr("Não encontrei esse endereço.") + CausaSsh.RECUSADA -> tr("O servidor recusou a conexão.") + CausaSsh.TEMPO -> tr("O servidor não respondeu a tempo.") + CausaSsh.REDE -> tr("Sem conexão de rede.") + CausaSsh.SERVIDOR_NAO_CONFIADO -> null + CausaSsh.SERVIDOR_PEDE_CONFIRMACAO -> tr("Confirme o servidor no aplicativo.") + CausaSsh.CHAVE_DO_SERVIDOR_MUDOU -> tr("A identificação deste servidor mudou.") + CausaSsh.AUTENTICACAO -> tr("Usuário ou senha incorretos.") + CausaSsh.CHAVE_NAO_ACEITA -> tr("O servidor não aceitou esta chave. Autorize a chave pública no servidor.") + CausaSsh.SEM_ALGORITMO -> tr("Este servidor só oferece algoritmos antigos que o KeyFlow não usa.") + CausaSsh.BIOMETRIA -> tr("Autenticação cancelada.") + CausaSsh.BIOMETRIA_INVALIDADA -> tr("A chave foi invalidada pela biometria.") + CausaSsh.DESCONECTADO -> tr("O servidor encerrou a conexão.") + CausaSsh.ENCERRADA_PELO_SISTEMA -> tr("O Android encerrou a sessão.") + CausaSsh.PROTOCOLO -> tr("Falha na comunicação com o servidor.") +} + +fun MotivoRecusa.texto(): String = when (this) { + MotivoRecusa.LIMITE_TOTAL -> tr("O limite é de 8 sessões abertas. Feche uma para abrir outra.") + MotivoRecusa.LIMITE_DO_AGENTE -> tr("O agente já tem 3 sessões abertas.") +} diff --git a/app/src/main/java/com/keyflow/i18n/en/Computador.kt b/app/src/main/java/com/keyflow/i18n/en/Computador.kt index 419b5864..fbabcc6b 100644 --- a/app/src/main/java/com/keyflow/i18n/en/Computador.kt +++ b/app/src/main/java/com/keyflow/i18n/en/Computador.kt @@ -4,8 +4,48 @@ package com.keyflow.i18n.en internal val Computador: Map = mapOf( "%d sessão SSH aberta" to "%d SSH session open", "%d sessões SSH abertas" to "%d SSH sessions open", + "A chave foi invalidada pela biometria." to "The key was invalidated by biometrics.", + "A identificação deste servidor mudou." to "This server's identity has changed.", + "Abrir" to "Open", + "Abrir este link?" to "Open this link?", + "Agente %d" to "Agent %d", + "Aguardando a confirmação do servidor…" to "Waiting for server confirmation…", + "Autenticando…" to "Authenticating…", + "Autenticação cancelada." to "Authentication cancelled.", + "Cadastre um servidor na aba Computador." to "Add a server in the Computer tab.", + "Caiu: %s" to "Dropped: %s", + "Colar %d linhas?" to "Paste %d lines?", + "Conectado" to "Connected", + "Conexão cancelada" to "Connection cancelled", + "Confirme o servidor no aplicativo." to "Confirm the server in the app.", "Desconectar todas" to "Disconnect all", + "Elas podem ser executadas." to "They may be executed.", + "Este servidor só oferece algoritmos antigos que o KeyFlow não usa." to "This server only offers old algorithms that KeyFlow does not use.", + "Falha na comunicação com o servidor." to "Communication with the server failed.", + "Fechar a sessão %s" to "Close session %s", + "Link bloqueado" to "Link blocked", + "Nenhuma sessão aberta. Toque em + para abrir uma." to "No open session. Tap + to open one.", + "Nova sessão" to "New session", + "Não achei um app para abrir este link." to "I couldn't find an app to open this link.", + "Não encontrei esse endereço." to "I couldn't find that address.", + "O Android encerrou a sessão." to "Android ended the session.", + "O KeyFlow só abre links http, https e mailto." to "KeyFlow only opens http, https and mailto links.", + "O agente já tem 3 sessões abertas." to "The agent already has 3 open sessions.", + "O limite é de 8 sessões abertas. Feche uma para abrir outra." to "The limit is 8 open sessions. Close one to open another.", + "O servidor encerrou a conexão." to "The server closed the connection.", + "O servidor não aceitou esta chave. Autorize a chave pública no servidor." to "The server did not accept this key. Authorize the public key on the server.", + "O servidor não respondeu a tempo." to "The server did not respond in time.", + "O servidor pediu para colocar %d caracteres na área de transferência. Só permita se foi você quem pediu." to "The server asked to put %d characters on the clipboard. Only allow it if you asked for it.", + "O servidor quer copiar texto" to "The server wants to copy text", + "O servidor recusou a conexão." to "The server refused the connection.", + "OK" to "OK", "Parar o agente" to "Stop the agent", + "Reconectando… (tentativa %d)" to "Reconnecting… (attempt %d)", + "Servidor" to "Server", + "Sessão encerrada" to "Session ended", "Sessões SSH mantidas conectadas em segundo plano" to "SSH sessions kept connected in the background", "Sessões do Computador" to "Computer sessions", + "Terminal %d" to "Terminal %d", + "Toque para reconectar" to "Tap to reconnect", + "Usuário ou senha incorretos." to "Wrong username or password.", ) diff --git a/app/src/main/java/com/keyflow/i18n/es/Computador.kt b/app/src/main/java/com/keyflow/i18n/es/Computador.kt index 9fa916f9..5542afcd 100644 --- a/app/src/main/java/com/keyflow/i18n/es/Computador.kt +++ b/app/src/main/java/com/keyflow/i18n/es/Computador.kt @@ -4,8 +4,48 @@ package com.keyflow.i18n.es internal val Computador: Map = mapOf( "%d sessão SSH aberta" to "%d sesión SSH abierta", "%d sessões SSH abertas" to "%d sesiones SSH abiertas", + "A chave foi invalidada pela biometria." to "La clave fue invalidada por la biometría.", + "A identificação deste servidor mudou." to "La identidad de este servidor cambió.", + "Abrir" to "Abrir", + "Abrir este link?" to "¿Abrir este enlace?", + "Agente %d" to "Agente %d", + "Aguardando a confirmação do servidor…" to "Esperando la confirmación del servidor…", + "Autenticando…" to "Autenticando…", + "Autenticação cancelada." to "Autenticación cancelada.", + "Cadastre um servidor na aba Computador." to "Registra un servidor en la pestaña Computadora.", + "Caiu: %s" to "Se cayó: %s", + "Colar %d linhas?" to "¿Pegar %d líneas?", + "Conectado" to "Conectado", + "Conexão cancelada" to "Conexión cancelada", + "Confirme o servidor no aplicativo." to "Confirma el servidor en la aplicación.", "Desconectar todas" to "Desconectar todas", + "Elas podem ser executadas." to "Podrían ejecutarse.", + "Este servidor só oferece algoritmos antigos que o KeyFlow não usa." to "Este servidor solo ofrece algoritmos antiguos que KeyFlow no usa.", + "Falha na comunicação com o servidor." to "Falló la comunicación con el servidor.", + "Fechar a sessão %s" to "Cerrar la sesión %s", + "Link bloqueado" to "Enlace bloqueado", + "Nenhuma sessão aberta. Toque em + para abrir uma." to "Ninguna sesión abierta. Toca + para abrir una.", + "Nova sessão" to "Nueva sesión", + "Não achei um app para abrir este link." to "No encontré una app para abrir este enlace.", + "Não encontrei esse endereço." to "No encontré esa dirección.", + "O Android encerrou a sessão." to "Android terminó la sesión.", + "O KeyFlow só abre links http, https e mailto." to "KeyFlow solo abre enlaces http, https y mailto.", + "O agente já tem 3 sessões abertas." to "El agente ya tiene 3 sesiones abiertas.", + "O limite é de 8 sessões abertas. Feche uma para abrir outra." to "El límite es de 8 sesiones abiertas. Cierra una para abrir otra.", + "O servidor encerrou a conexão." to "El servidor cerró la conexión.", + "O servidor não aceitou esta chave. Autorize a chave pública no servidor." to "El servidor no aceptó esta clave. Autoriza la clave pública en el servidor.", + "O servidor não respondeu a tempo." to "El servidor no respondió a tiempo.", + "O servidor pediu para colocar %d caracteres na área de transferência. Só permita se foi você quem pediu." to "El servidor pidió poner %d caracteres en el portapapeles. Permítelo solo si lo pediste tú.", + "O servidor quer copiar texto" to "El servidor quiere copiar texto", + "O servidor recusou a conexão." to "El servidor rechazó la conexión.", + "OK" to "OK", "Parar o agente" to "Detener al agente", + "Reconectando… (tentativa %d)" to "Reconectando… (intento %d)", + "Servidor" to "Servidor", + "Sessão encerrada" to "Sesión terminada", "Sessões SSH mantidas conectadas em segundo plano" to "Sesiones SSH mantenidas conectadas en segundo plano", "Sessões do Computador" to "Sesiones del Computador", + "Terminal %d" to "Terminal %d", + "Toque para reconectar" to "Toca para reconectar", + "Usuário ou senha incorretos." to "Usuario o contraseña incorrectos.", ) diff --git a/app/src/main/java/com/keyflow/ui/terminal/AbasDeSessao.kt b/app/src/main/java/com/keyflow/ui/terminal/AbasDeSessao.kt new file mode 100644 index 00000000..3a27fc7a --- /dev/null +++ b/app/src/main/java/com/keyflow/ui/terminal/AbasDeSessao.kt @@ -0,0 +1,122 @@ +package com.keyflow.ui.terminal + +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.horizontalScroll +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.heightIn +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.widthIn +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.DropdownMenu +import androidx.compose.material3.DropdownMenuItem +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.platform.testTag +import androidx.compose.ui.semantics.Role +import androidx.compose.ui.semantics.contentDescription +import androidx.compose.ui.semantics.role +import androidx.compose.ui.semantics.selected +import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.keyflow.computador.Host +import com.keyflow.computador.sessao.DonoDaSessao +import com.keyflow.computador.sessao.SessaoResumo +import com.keyflow.i18n.tr +import com.keyflow.ui.theme.LocalKeyFlowPalette +import com.keyflow.ui.theme.SpaceGrotesk + +const val TERMINAL_ABAS_TAG = "terminal-abas" +const val TERMINAL_NOVA_ABA_TAG = "terminal-aba-nova" +fun abaTag(id: String) = "terminal-aba-$id" +fun abaFecharTag(id: String) = "terminal-aba-fechar-$id" +fun abaHostTag(hostId: String) = "terminal-aba-host-$hostId" + +/** O rótulo da aba: `Terminal N` (do usuário) ou `Agente N ●` (do agente), ou o título que o servidor pediu (já sanitizado). */ +fun rotuloDaAba(indice: Int, resumo: SessaoResumo, titulo: String?): String { + val base = titulo ?: if (resumo.dono == DonoDaSessao.AGENTE) tr("Agente %d", indice) else tr("Terminal %d", indice) + return if (resumo.dono == DonoDaSessao.AGENTE) "$base ●" else base +} + +/** + * `[Terminal 1] [Agente 2 ●] [+]` (CMP-24). Cada aba tem alvo de pelo menos 48 dp para tocar e outro para fechar; fechar a aba **fecha a sessão**. + * O `+` abre a lista de servidores; sem servidor cadastrado, diz o que fazer. + */ +@Composable +fun AbasDeSessao( + sessoes: List, + ativaId: String?, + hosts: List, + titulos: Map, + onSelecionar: (String) -> Unit, + onFechar: (String) -> Unit, + onNova: (Host) -> Unit, + modifier: Modifier = Modifier, +) { + val palette = LocalKeyFlowPalette.current + var menu by remember { mutableStateOf(false) } + Row( + modifier.fillMaxWidth().background(palette.panel).testTag(TERMINAL_ABAS_TAG), + verticalAlignment = Alignment.CenterVertically, + ) { + Row(Modifier.weight(1f).horizontalScroll(rememberScrollState()).padding(horizontal = 6.dp), horizontalArrangement = Arrangement.spacedBy(6.dp), verticalAlignment = Alignment.CenterVertically) { + sessoes.forEachIndexed { i, s -> + val ativa = s.id == ativaId + val rotulo = rotuloDaAba(i + 1, s, titulos[s.id]) + Row( + Modifier + .heightIn(min = 48.dp) + .clip(RoundedCornerShape(8.dp)) + .background(if (ativa) palette.card else palette.panel) + .border(1.dp, if (ativa) palette.teal else palette.line, RoundedCornerShape(8.dp)) + .testTag(abaTag(s.id)) + .semantics { role = Role.Tab; selected = ativa; contentDescription = rotulo }, + verticalAlignment = Alignment.CenterVertically, + ) { + Text( + rotulo, color = palette.fg, fontFamily = SpaceGrotesk, fontSize = 13.sp, maxLines = 1, + modifier = Modifier.heightIn(min = 48.dp).widthIn(max = 160.dp).clickable { onSelecionar(s.id) }.padding(start = 12.dp, end = 4.dp).wrapCenter(), + ) + Box( + Modifier.size(48.dp).clickable { onFechar(s.id) }.testTag(abaFecharTag(s.id)).semantics { contentDescription = tr("Fechar a sessão %s", rotulo) }, + contentAlignment = Alignment.Center, + ) { Text("✕", color = palette.muted, fontSize = 14.sp) } + } + } + } + Box { + Box( + Modifier.size(48.dp).clickable { menu = true }.testTag(TERMINAL_NOVA_ABA_TAG).semantics { contentDescription = tr("Nova sessão") }, + contentAlignment = Alignment.Center, + ) { Text("+", color = palette.fg, fontSize = 22.sp) } + DropdownMenu(expanded = menu, onDismissRequest = { menu = false }) { + if (hosts.isEmpty()) { + DropdownMenuItem(text = { Text(tr("Cadastre um servidor na aba Computador.")) }, onClick = { menu = false }) + } + hosts.forEach { h -> + DropdownMenuItem( + text = { Text("${h.nome} · ${h.usuario}@${h.endereco}") }, + onClick = { menu = false; onNova(h) }, + modifier = Modifier.testTag(abaHostTag(h.id)).heightIn(min = 48.dp), + ) + } + } + } + } +} + +private fun Modifier.wrapCenter(): Modifier = this.then(Modifier.padding(vertical = 14.dp)) diff --git a/app/src/main/java/com/keyflow/ui/terminal/BarraDeEstado.kt b/app/src/main/java/com/keyflow/ui/terminal/BarraDeEstado.kt new file mode 100644 index 00000000..a78c75aa --- /dev/null +++ b/app/src/main/java/com/keyflow/ui/terminal/BarraDeEstado.kt @@ -0,0 +1,64 @@ +package com.keyflow.ui.terminal + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.heightIn +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.testTag +import androidx.compose.ui.semantics.contentDescription +import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.keyflow.computador.app.texto +import com.keyflow.computador.sessao.EstadoSessao +import com.keyflow.i18n.tr +import com.keyflow.ui.theme.LocalKeyFlowPalette +import com.keyflow.ui.theme.SpaceGrotesk + +const val TERMINAL_BARRA_TAG = "terminal-barra-estado" +const val TERMINAL_ESTADO_TAG = "terminal-estado-texto" + +/** O texto do estado da sessão (CMP-31: nunca só cor; cada estado tem símbolo e palavra). */ +fun textoDoEstado(estado: EstadoSessao): String = when (estado) { + EstadoSessao.Conectando -> "⟳ " + tr("Conectando…") + EstadoSessao.AguardandoServidor -> "⟳ " + tr("Aguardando a confirmação do servidor…") + EstadoSessao.Autenticando -> "⟳ " + tr("Autenticando…") + EstadoSessao.Aberta -> "● " + tr("Conectado") + is EstadoSessao.Reconectando -> "⟳ " + tr("Reconectando… (tentativa %d)", estado.tentativa) + EstadoSessao.PrecisaDoUsuario -> "⚠ " + tr("Toque para reconectar") + is EstadoSessao.Encerrada -> "○ " + tr("Sessão encerrada") + is EstadoSessao.Falhou -> "✕ " + (estado.causa.texto()?.let { tr("Caiu: %s", it) } ?: tr("Conexão cancelada")) +} + +/** Barra do topo: `servidor · estado`. A cor reforça (verde/âmbar/vermelho), o texto diz. */ +@Composable +fun BarraDeEstado(nomeDoHost: String, estado: EstadoSessao, modifier: Modifier = Modifier) { + val palette = LocalKeyFlowPalette.current + val cor = when (estado) { + EstadoSessao.Aberta -> palette.teal + is EstadoSessao.Falhou, is EstadoSessao.Encerrada -> palette.terracotta + else -> palette.record + } + val texto = textoDoEstado(estado) + Row( + modifier + .fillMaxWidth() + .background(palette.panel) + .heightIn(min = 40.dp) + .padding(horizontal = 12.dp) + .testTag(TERMINAL_BARRA_TAG) + .semantics { contentDescription = "$nomeDoHost, $texto" }, + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(10.dp), + ) { + Text(nomeDoHost, color = palette.fg, fontFamily = SpaceGrotesk, fontWeight = FontWeight.Medium, fontSize = 13.sp, maxLines = 1, modifier = Modifier.weight(1f, fill = false)) + Text(texto, color = cor, fontFamily = SpaceGrotesk, fontSize = 12.sp, maxLines = 1, modifier = Modifier.testTag(TERMINAL_ESTADO_TAG)) + } +} diff --git a/app/src/main/java/com/keyflow/ui/terminal/EntradaParaTerminal.kt b/app/src/main/java/com/keyflow/ui/terminal/EntradaParaTerminal.kt new file mode 100644 index 00000000..2230c3c3 --- /dev/null +++ b/app/src/main/java/com/keyflow/ui/terminal/EntradaParaTerminal.kt @@ -0,0 +1,14 @@ +package com.keyflow.ui.terminal + +import androidx.compose.ui.input.key.KeyEvent +import org.connectbot.terminal.ModifierManager + +/** O que a tela liga ao `Terminal` do termlib para a entrada: interceptação de teclas e Ctrl/Alt pegajosos (a CMP-T14 preenche). */ +class EntradaParaTerminal( + val interceptar: ((KeyEvent) -> Boolean)? = null, + val modificadores: ModifierManager? = null, +) { + companion object { + val Padrao = EntradaParaTerminal() + } +} diff --git a/app/src/main/java/com/keyflow/ui/terminal/TerminalScreen.kt b/app/src/main/java/com/keyflow/ui/terminal/TerminalScreen.kt new file mode 100644 index 00000000..39d20e0d --- /dev/null +++ b/app/src/main/java/com/keyflow/ui/terminal/TerminalScreen.kt @@ -0,0 +1,175 @@ +package com.keyflow.ui.terminal + +import android.graphics.Typeface +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.AlertDialog +import androidx.compose.material3.Text +import androidx.compose.material3.TextButton +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.derivedStateOf +import androidx.compose.runtime.getValue +import androidx.compose.runtime.key +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.toArgb +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.testTag +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.keyflow.computador.Host +import com.keyflow.computador.app.LigacaoEmulador +import com.keyflow.computador.app.PoliticaDeColar +import com.keyflow.computador.app.PoliticaDeLinks +import com.keyflow.computador.sessao.SessaoResumo +import com.keyflow.i18n.tr +import com.keyflow.ui.common.collectAsStateOnMain +import com.keyflow.ui.theme.LocalKeyFlowPalette +import org.connectbot.terminal.Terminal + +const val TERMINAL_TELA_TAG = "terminal-tela" +const val TERMINAL_VAZIO_TAG = "terminal-sem-sessao" +const val TERMINAL_AVISO_TAG = "terminal-aviso" +const val TERMINAL_COLAR_DIALOGO_TAG = "terminal-colar-dialogo" +const val TERMINAL_COLAR_CONFIRMAR_TAG = "terminal-colar-confirmar" +const val TERMINAL_COLAR_CANCELAR_TAG = "terminal-colar-cancelar" +const val TERMINAL_OSC52_DIALOGO_TAG = "terminal-osc52-dialogo" +const val TERMINAL_OSC52_PERMITIR_TAG = "terminal-osc52-permitir" +const val TERMINAL_OSC52_NEGAR_TAG = "terminal-osc52-negar" +const val TERMINAL_LINK_DIALOGO_TAG = "terminal-link-dialogo" +const val TERMINAL_LINK_ABRIR_TAG = "terminal-link-abrir" +const val TERMINAL_LINK_CANCELAR_TAG = "terminal-link-cancelar" +const val TERMINAL_FONTE_ASSET = "fonts/JetBrainsMonoNerdFontMono-Regular.ttf" + +/** A fonte do terminal (D16): JetBrains Mono com glifos Nerd (OFL). Sem o arquivo, a monoespaçada do sistema. */ +fun fonteDoTerminal(contexto: android.content.Context): Typeface = + try { Typeface.createFromAsset(contexto.assets, TERMINAL_FONTE_ASSET) } catch (_: RuntimeException) { Typeface.MONOSPACE } + +/** + * O terminal na tela (CMP-24, 25, 28, 35). Sem efeitos próprios: quem abre sessão, fecha aba ou abre link recebe por callback, então a + * mesma tela serve à activity e ao teste. O emulador vem de [ligacaoDe] (vive fora da tela: girar não perde o que estava desenhado). + * + * Os três diálogos aqui são os da segurança das sequências: **colar várias linhas** (confirma sempre que há quebra), **`OSC 52` de escrita** + * (padrão negar) e **link `OSC 8`** (a URL inteira, só `http`, `https` e `mailto`). + */ +@Composable +fun TerminalScreen( + sessoes: List, + hosts: List, + ativaId: String?, + ligacaoDe: (String) -> LigacaoEmulador?, + aviso: String?, + onSelecionar: (String) -> Unit, + onFecharAba: (String) -> Unit, + onNovaSessao: (Host) -> Unit, + onAbrirLink: (String) -> Unit, + onCopiar: (String) -> Unit, + lerAreaDeTransferencia: () -> String?, + modifier: Modifier = Modifier, + barraDeEntrada: @Composable (LigacaoEmulador) -> Unit = {}, + entradaDoTerminal: EntradaParaTerminal = EntradaParaTerminal.Padrao, +) { + val palette = LocalKeyFlowPalette.current + val contexto = LocalContext.current + val tipo = remember { fonteDoTerminal(contexto) } + val ativa = sessoes.firstOrNull { it.id == ativaId } ?: sessoes.firstOrNull() + val ligacao = ativa?.let { ligacaoDe(it.id) } + val titulos = sessoes.associate { it.id to ligacaoDe(it.id)?.titulo?.value } + var colar by remember { mutableStateOf(null) } + var link by remember { mutableStateOf(null) } + var linkBloqueado by remember { mutableStateOf(false) } + + Column(modifier.fillMaxSize().background(palette.bg).testTag(TERMINAL_TELA_TAG)) { + if (ativa != null) { + val nome = hosts.firstOrNull { it.id == ativa.hostId }?.nome ?: tr("Servidor") + BarraDeEstado(nome, ativa.estado) + } + aviso?.let { + Text(it, color = palette.terracotta, fontSize = 12.sp, modifier = Modifier.fillMaxWidth().padding(horizontal = 12.dp, vertical = 4.dp).testTag(TERMINAL_AVISO_TAG)) + } + Box(Modifier.weight(1f).fillMaxWidth()) { + if (ligacao == null || ativa == null) { + Text(tr("Nenhuma sessão aberta. Toque em + para abrir uma."), color = palette.muted, fontSize = 14.sp, modifier = Modifier.padding(20.dp).testTag(TERMINAL_VAZIO_TAG)) + } else { + key(ativa.id) { + val pedidoOsc52 by ligacao.pedidoDeClipboard.collectAsStateOnMain() + LaunchedEffect(palette.isDark, ligacao) { ligacao.emulador.setDefaultColors(palette.fg.toArgb(), palette.bg.toArgb()) } + Terminal( + terminalEmulator = ligacao.emulador, + modifier = Modifier.fillMaxSize(), + typeface = tipo, + initialFontSize = 14.sp, + backgroundColor = palette.bg, + foregroundColor = palette.fg, + keyboardEnabled = true, + showSoftKeyboard = true, + onHyperlinkClick = { url -> if (PoliticaDeLinks.aceitar(url) != null) link = url.trim() else linkBloqueado = true }, + onPasteRequest = { + val texto = lerAreaDeTransferencia() + if (!texto.isNullOrEmpty()) { + val p = PoliticaDeColar.preparar(texto) + if (p.texto.isNotEmpty()) { if (p.precisaConfirmar) colar = p else ligacao.colar(p.texto) } + } + }, + onInterceptKey = entradaDoTerminal.interceptar, + modifierManager = entradaDoTerminal.modificadores, + ) + pedidoOsc52?.let { texto -> + AlertDialog( + modifier = Modifier.testTag(TERMINAL_OSC52_DIALOGO_TAG), + onDismissRequest = { ligacao.responderClipboard(false) }, + title = { Text(tr("O servidor quer copiar texto")) }, + text = { Text(tr("O servidor pediu para colocar %d caracteres na área de transferência. Só permita se foi você quem pediu.", texto.length)) }, + confirmButton = { + TextButton(onClick = { ligacao.responderClipboard(true)?.let(onCopiar) }, modifier = Modifier.testTag(TERMINAL_OSC52_PERMITIR_TAG)) { Text(tr("Permitir")) } + }, + dismissButton = { + TextButton(onClick = { ligacao.responderClipboard(false) }, modifier = Modifier.testTag(TERMINAL_OSC52_NEGAR_TAG)) { Text(tr("Negar")) } + }, + ) + } + } + } + } + if (ligacao != null) barraDeEntrada(ligacao) + AbasDeSessao(sessoes, ativa?.id, hosts, titulos, onSelecionar, onFecharAba, onNovaSessao) + } + + colar?.let { p -> + AlertDialog( + modifier = Modifier.testTag(TERMINAL_COLAR_DIALOGO_TAG), + onDismissRequest = { colar = null }, + title = { Text(tr("Colar %d linhas?", p.linhas)) }, + text = { Text(tr("Elas podem ser executadas.")) }, + confirmButton = { + TextButton(onClick = { ligacao?.colar(p.texto); colar = null }, modifier = Modifier.testTag(TERMINAL_COLAR_CONFIRMAR_TAG)) { Text(tr("Colar")) } + }, + dismissButton = { TextButton(onClick = { colar = null }, modifier = Modifier.testTag(TERMINAL_COLAR_CANCELAR_TAG)) { Text(tr("Cancelar")) } }, + ) + } + link?.let { url -> + AlertDialog( + modifier = Modifier.testTag(TERMINAL_LINK_DIALOGO_TAG), + onDismissRequest = { link = null }, + title = { Text(tr("Abrir este link?")) }, + text = { Text(url) }, + confirmButton = { TextButton(onClick = { link = null; onAbrirLink(url) }, modifier = Modifier.testTag(TERMINAL_LINK_ABRIR_TAG)) { Text(tr("Abrir")) } }, + dismissButton = { TextButton(onClick = { link = null }, modifier = Modifier.testTag(TERMINAL_LINK_CANCELAR_TAG)) { Text(tr("Cancelar")) } }, + ) + } + if (linkBloqueado) { + AlertDialog( + onDismissRequest = { linkBloqueado = false }, + title = { Text(tr("Link bloqueado")) }, + text = { Text(tr("O KeyFlow só abre links http, https e mailto.")) }, + confirmButton = { TextButton(onClick = { linkBloqueado = false }) { Text(tr("OK")) } }, + ) + } +} diff --git a/app/src/test/java/com/keyflow/computador/app/FiltroDaSaidaDoServidorTest.kt b/app/src/test/java/com/keyflow/computador/app/FiltroDaSaidaDoServidorTest.kt new file mode 100644 index 00000000..d2b8facc --- /dev/null +++ b/app/src/test/java/com/keyflow/computador/app/FiltroDaSaidaDoServidorTest.kt @@ -0,0 +1,74 @@ +package com.keyflow.computador.app + +import java.io.ByteArrayOutputStream +import kotlin.random.Random +import org.junit.Assert.assertArrayEquals +import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Test + +/** O filtro de entrada tem estado (a rede parte as sequências onde quiser): o resultado não pode depender de onde parte. */ +class FiltroDaSaidaDoServidorTest { + private fun inteiro(bytes: ByteArray) = FiltroDaSaidaDoServidor().processar(bytes) + + private fun emPedacos(bytes: ByteArray, sorteio: Random): ByteArray { + val f = FiltroDaSaidaDoServidor() + val saida = ByteArrayOutputStream() + var i = 0 + while (i < bytes.size) { + val n = 1 + sorteio.nextInt(7) + val fim = minOf(bytes.size, i + n) + saida.write(f.processar(bytes.copyOfRange(i, fim))) + i = fim + } + return saida.toByteArray() + } + + private val vocabulario: List = Hostil.segmentos.map { it.second.toByteArray(Charsets.UTF_8) } + listOf( + "texto simples\r\n", "\u001b[1;31mcor\u001b[0m", "\u001b[2J", "\u001b]8;;https://a.b/c\u001b\\", "\u001b[?1049h", "ação ✓ 日本", + "\u001b[21", "\u001b]52;", "\u001bP", "\u001b", "\u0018", "\u0007", "t", "?", ";", + ).map { it.toByteArray(Charsets.UTF_8) } + + @Test fun qualquerDivisaoDaOMesmoResultado() { + val sorteio = Random(20261031) + repeat(400) { + val fluxo = ByteArrayOutputStream() + repeat(1 + sorteio.nextInt(12)) { fluxo.write(vocabulario[sorteio.nextInt(vocabulario.size)]) } + val bytes = fluxo.toByteArray() + val esperado = inteiro(bytes) + repeat(5) { assertArrayEquals("fluxo ${bytes.toList()}", esperado, emPedacos(bytes, sorteio)) } + } + } + + @Test fun bytesAleatoriosNuncaQuebramEUmByteDeCadaVez() { + val sorteio = Random(7) + repeat(300) { + val bytes = ByteArray(sorteio.nextInt(1, 300)) { (if (sorteio.nextInt(3) == 0) 0x1b else sorteio.nextInt(256)).toByte() } + val esperado = inteiro(bytes) + assertArrayEquals(esperado, emPedacos(bytes, sorteio)) + } + } + + @Test fun nadaProibidoSobraDepoisDoFiltroMesmoComRemocoesQueSeEmendam() { + val sorteio = Random(99) + val proibidos = listOf("\u001b[21t", "\u001b[20t", "\u001bP\$q", "\u001b]52;c;?", "\u001b]52;;?", "\u001b]21", "\u0005") + repeat(600) { + val fluxo = ByteArrayOutputStream() + repeat(1 + sorteio.nextInt(14)) { fluxo.write(vocabulario[sorteio.nextInt(vocabulario.size)]) } + val saiu = inteiro(fluxo.toByteArray()) + for (p in proibidos) assertFalse("sobrou ${p.replace("\u001b", "ESC")} em ${fluxo.toByteArray().toList()}", saiu.contem(p)) + } + } + + @Test fun textoComumPassaIgual() { + val comum = "ls -la\r\ntotal 0\r\n\u001b[1;32mok\u001b[0m ação\r\n".toByteArray(Charsets.UTF_8) + assertArrayEquals(comum, inteiro(comum)) + } + + @Test fun reiniciarLimpaOQueEstavaSegurado() { + val f = FiltroDaSaidaDoServidor() + f.processar("\u001b[2".toByteArray()) + f.reiniciar() + assertEquals("1t", String(f.processar("1t".toByteArray()))) + } +} diff --git a/app/src/test/java/com/keyflow/computador/app/Hostil.kt b/app/src/test/java/com/keyflow/computador/app/Hostil.kt new file mode 100644 index 00000000..085c97b2 --- /dev/null +++ b/app/src/test/java/com/keyflow/computador/app/Hostil.kt @@ -0,0 +1,48 @@ +package com.keyflow.computador.app + +/** A gravação "hostil" (CMP-35): um trecho por ataque ou consulta. O arquivo `hostil.bin` é a concatenação, e o teste confere. */ +object Hostil { + const val ESC = "\u001b" + const val BEL = "\u0007" + const val ST = "\u001b\\" + + val segmentos: List> = listOf( + "texto" to "Olá, terminal!\r\n", + "da1" to "$ESC[c", + "da2" to "$ESC[>c", + "dsr" to "$ESC[5n", + "cpr" to "$ESC[6n", + "cor10" to "$ESC]10;?$BEL", + "cor11" to "$ESC]11;?$BEL", + "kitty-q" to "${ESC}_Ga=q,t=d,f=24,s=1,v=1,i=50;AAAA$ST", + "osc52-leitura" to "$ESC]52;c;?$BEL", + "osc52-leitura-st" to "$ESC]52;;?$ST", + "osc52-escrita" to "$ESC]52;c;aGVsbG8=$BEL", + "relatorio-titulo-21" to "$ESC[21t", + "relatorio-titulo-20" to "$ESC[20t", + "osc21" to "$ESC]21;?$ST", + "decrqss" to "${ESC}P\$qm$ST", + "enq" to "\u0005", + "titulo" to "$ESC]0;build-box: ~/app$BEL", + "link-javascript" to "$ESC]8;;javascript:alert(1)${ST}clique$ESC]8;;$ST", + "link-file" to "$ESC]8;;file:///etc/passwd${ST}arquivo$ESC]8;;$ST", + "link-https" to "$ESC]8;;https://exemplo.org/a${ST}site$ESC]8;;$ST", + "final" to "fim\r\n", + ) + + fun trecho(nome: String): String = segmentos.first { it.first == nome }.second + fun tudo(): ByteArray = segmentos.joinToString("") { it.second }.toByteArray(Charsets.UTF_8) + fun bytes(nome: String): ByteArray = trecho(nome).toByteArray(Charsets.UTF_8) +} + +/** Procura uma sequência de bytes dentro de outra (os testes comparam bytes, não texto). */ +fun ByteArray.contem(trecho: ByteArray): Boolean { + if (trecho.isEmpty()) return true + outer@ for (i in 0..size - trecho.size) { + for (j in trecho.indices) if (this[i + j] != trecho[j]) continue@outer + return true + } + return false +} + +fun ByteArray.contem(texto: String) = contem(texto.toByteArray(Charsets.ISO_8859_1)) diff --git a/app/src/test/java/com/keyflow/computador/app/PoliticasDoTerminalTest.kt b/app/src/test/java/com/keyflow/computador/app/PoliticasDoTerminalTest.kt new file mode 100644 index 00000000..9123a773 --- /dev/null +++ b/app/src/test/java/com/keyflow/computador/app/PoliticasDoTerminalTest.kt @@ -0,0 +1,73 @@ +package com.keyflow.computador.app + +import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Assert.assertNull +import org.junit.Assert.assertTrue +import org.junit.Test + +class PoliticasDoTerminalTest { + private val ESC = "\u001b" + + @Test fun colarUmaLinhaNaoPedeConfirmacao() { + val p = PoliticaDeColar.preparar("ls -la") + assertFalse(p.precisaConfirmar) + assertEquals(1, p.linhas) + assertEquals("ls -la", p.texto) + } + + @Test fun colarVariasLinhasPedeConfirmacaoEContaAsLinhas() { + val p = PoliticaDeColar.preparar("a\nb") + assertTrue(p.precisaConfirmar) + assertEquals(2, p.linhas) + assertEquals(3, PoliticaDeColar.preparar("a\r\nb\rc").linhas) + // Uma quebra no fim executa o comando: também confirma. + assertTrue(PoliticaDeColar.preparar("rm -rf x\n").precisaConfirmar) + assertTrue(PoliticaDeColar.preparar("a\rb").precisaConfirmar) + } + + @Test fun colarRemoveOFimDoBracketedPaste() { + assertEquals("ab", PoliticaDeColar.preparar("a$ESC[201~b").texto) + assertEquals("ab", PoliticaDeColar.preparar("a$ESC[200~b").texto) + } + + @Test fun colarComMarcaAninhadaNaoReconstroiOFim() { + // Remover uma vez só deixaria `ESC [ 2 0 1 ~` de pé: o texto de dentro forma a marca de novo. + val p = PoliticaDeColar.preparar("a$ESC$ESC[201~[201~b; rm -rf ~") + assertFalse(p.texto.contains("[201~")) + assertFalse(p.texto.contains(ESC)) + } + + @Test fun colarRemoveControlesMasMantemTabENovaLinha() { + val p = PoliticaDeColar.preparar("a\tb\u0001\u0007\u007f\u009bc\nd") + assertEquals("a\tbc\nd", p.texto) + } + + @Test fun colarVazioNaoTemLinhas() { + assertEquals(0, PoliticaDeColar.preparar("").linhas) + assertEquals("", PoliticaDeColar.preparar("$ESC[201~").texto) + } + + @Test fun linksSoHttpHttpsEMailto() { + assertEquals("https://exemplo.org/a?b=c#d", PoliticaDeLinks.aceitar(" https://exemplo.org/a?b=c#d ")) + assertEquals("HTTP://exemplo.org", PoliticaDeLinks.aceitar("HTTP://exemplo.org")) + assertEquals("mailto:yan@exemplo.org", PoliticaDeLinks.aceitar("mailto:yan@exemplo.org")) + for (ruim in listOf( + "javascript:alert(1)", "JaVaScRiPt:alert(1)", "file:///etc/passwd", "intent://x#Intent;end", "content://x/y", "data:text/html,x", "tel:123", "ssh://h", + "https:exemplo.org", "https://", "https://user@exemplo.org", "https://exemplo.org/a b", "https://a.b/\u0000", "https://a.b/‮", "/relativo", "", "sem-esquema", + "https://" + "a".repeat(3000), "ht tp://a.b", "java\nscript:x", + )) assertNull("devia recusar: $ruim", PoliticaDeLinks.aceitar(ruim)) + } + + @Test fun rotuloSemControlesEAte40() { + assertEquals("build-box", RotuloDeAba.sanitizar(" build-box \u0001")) + assertEquals("a b", RotuloDeAba.sanitizar("a\n\n b")) + assertNull(RotuloDeAba.sanitizar("\u0001\u0002 ‮")) + assertEquals(40, RotuloDeAba.sanitizar("x".repeat(100))!!.length) + assertEquals("日本語ação", RotuloDeAba.sanitizar("日本語ação")) + // Par substituto (emoji) nunca é cortado ao meio. + val emoji = RotuloDeAba.sanitizar("😀".repeat(60))!! + assertEquals(40, emoji.codePointCount(0, emoji.length)) + assertFalse(emoji.last().isHighSurrogate()) + } +} diff --git a/app/src/test/java/com/keyflow/computador/app/SequenciasHostisTest.kt b/app/src/test/java/com/keyflow/computador/app/SequenciasHostisTest.kt new file mode 100644 index 00000000..08262b14 --- /dev/null +++ b/app/src/test/java/com/keyflow/computador/app/SequenciasHostisTest.kt @@ -0,0 +1,124 @@ +package com.keyflow.computador.app + +import java.io.File +import org.junit.Assert.assertArrayEquals +import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Assert.assertNull +import org.junit.Assert.assertTrue +import org.junit.Test + +/** + * CMP-35 com a gravação hostil: o que **chega** ao emulador (já filtrado) e o que **sai** dele rumo ao servidor. + * As respostas do emulador real a estas consultas são conferidas no instrumentado (`LigacaoEmuladorTest`); aqui as respostas são escritas à mão, + * pelo que um emulador **poderia** devolver, para provar que a lista de permitidos as separa. + */ +class SequenciasHostisTest { + private val ESC = "\u001b" + private val BEL = "\u0007" + private val ST = "\u001b\\" + + private fun entrada(bytes: ByteArray): ByteArray = FiltroDaSaidaDoServidor().processar(bytes) + private fun saida(texto: String): ByteArray = FiltroDeRespostas().filtrar(texto.toByteArray(Charsets.ISO_8859_1)) + + @Test fun oArquivoEAConcatenacaoDosTrechos() { + val arquivo = File("src/test/resources/computador/gravacoes/hostil.bin").readBytes() + assertArrayEquals(Hostil.tudo(), arquivo) + } + + @Test fun oQueChegaAoEmuladorNaoTemOQueNaoPodeSerRespondido() { + val chegou = entrada(Hostil.tudo()) + assertFalse("ENQ", chegou.contains(0x05)) + assertFalse("CSI 21 t", chegou.contem("${ESC}[21t")) + assertFalse("CSI 20 t", chegou.contem("${ESC}[20t")) + assertFalse("OSC 21", chegou.contem("${ESC}]21")) + assertFalse("DECRQSS", chegou.contem("${ESC}P\$q")) + assertFalse("OSC 52 de leitura", chegou.contem("52;c;?") || chegou.contem("52;;?")) + } + + @Test fun oQuePrecisaPassarPassa() { + val chegou = entrada(Hostil.tudo()) + for (nome in listOf("texto", "da1", "da2", "dsr", "cpr", "cor10", "cor11", "kitty-q", "osc52-escrita", "titulo", "link-https", "final")) { + assertTrue("Faltou $nome", chegou.contem(Hostil.bytes(nome))) + } + // O OSC 52 de **escrita** chega ao termlib, que o entrega ao consentimento. + assertTrue(chegou.contem("52;c;aGVsbG8=")) + } + + @Test fun cadaAtaqueEConsumidoSozinho() { + for (nome in listOf("osc52-leitura", "osc52-leitura-st", "relatorio-titulo-21", "relatorio-titulo-20", "osc21", "decrqss", "enq")) { + assertEquals("O trecho $nome devia sumir inteiro", 0, entrada(Hostil.bytes(nome)).size) + } + } + + @Test fun osLinksPerigososNuncaViramIntent() { + // O OSC 8 chega ao emulador (o texto "clique" aparece); quem decide abrir é `PoliticaDeLinks`, que recusa o esquema. + assertNull(PoliticaDeLinks.aceitar("javascript:alert(1)")) + assertNull(PoliticaDeLinks.aceitar("file:///etc/passwd")) + assertEquals("https://exemplo.org/a", PoliticaDeLinks.aceitar("https://exemplo.org/a")) + } + + @Test fun respostasPermitidasSaemEAsOutrasNao() { + // As que o emulador devolve (lista de permitidos). + for (r in listOf( + "$ESC[?1;2c", "$ESC[>0;0;0c", "$ESC[0n", "$ESC[12;40R", "$ESC[8;24;80t", "$ESC[4;384;640t", + "$ESC]10;rgb:ffff/ffff/ffff$BEL", "$ESC]11;rgb:0000/0000/0000$ST", "${ESC}_Gi=50;OK$ST", + )) assertArrayEquals(r, r.toByteArray(Charsets.ISO_8859_1), saida(r)) + // As que **não** podem sair, mesmo que um emulador as produza. + for (r in listOf( + "${ESC}P1\$r0m$ST", // resposta ao DECRQSS + "$ESC]lbuild-box$ST", // relatório de título + "${ESC}[21t", // pedido disfarçado de resposta + "$ESC]52;c;c2VnZWRv$BEL", // conteúdo do clipboard + "$ESC]52;c;?$BEL", + "$ESC]21;?$ST", + "${ESC}_Gi=50;ENOTSUP:" + "x".repeat(400) + ST, // mensagem enorme + "$ESC]10;rgb:ffff/ffff/ffff;extra$BEL", + )) assertEquals("Devia ser descartada: ${r.replace(ESC, "ESC")}", 0, saida(r).size) + } + + @Test fun teclasDoUsuarioSaemIntactas() { + val teclas = listOf( + "ls -la\r", "\u0003", "$ESC[A", "${ESC}OA", "${ESC}x", "$ESC[15~", "$ESC[1;5C", "$ESC[Z", "$ESC[200~", "$ESC[201~", ESC, "$ESC[3~", + "${ESC}[<0;5;3M", "$ESC[I", "${ESC}P", "${ESC}_", + ) + for (t in teclas) assertArrayEquals(t.replace(ESC, "ESC"), t.toByteArray(Charsets.ISO_8859_1), saida(t)) + assertEquals("ação é UTF-8", "ação", String(FiltroDeRespostas().filtrar("ação".toByteArray(Charsets.UTF_8)), Charsets.UTF_8)) + } + + @Test fun sequenciaTruncadaNaoVazaOResto() { + assertEquals(0, saida("$ESC]52;c;c2VnZWRv").size) + assertEquals(0, saida("${ESC}P1\$r0m").size) + assertEquals(0, saida("$ESC[1;").size) + } + + @Test fun naoSeJuntaUmaSequenciaProibidaRemovendoOMeio() { + // `ESC [ 2`, ENQ, `1 t`: um emulador tolerante junta tudo em CSI 21 t. O filtro descarta o pedaço aberto, então nada sobra para juntar. + val entrada = "${ESC}[2\u00051t".toByteArray(Charsets.ISO_8859_1) + val saiu = FiltroDaSaidaDoServidor().processar(entrada) + assertFalse(saiu.contem("${ESC}[21t")) + assertFalse(saiu.contem("${ESC}[2")) + // Controle dentro do CSI + o pedido de verdade logo depois. + val dois = FiltroDaSaidaDoServidor().processar("${ESC}[2\n${ESC}[21t1t".toByteArray(Charsets.ISO_8859_1)) + assertFalse(dois.contem("${ESC}[21t")) + assertFalse(dois.contem("[21t")) + // OSC 52 de leitura escondido atrás de um ESC que aborta o prefixo. + val tres = FiltroDaSaidaDoServidor().processar("${ESC}]5${ESC}[21t2;c;?$BEL".toByteArray(Charsets.ISO_8859_1)) + assertFalse(tres.contem("52;c;?")) + assertFalse(tres.contem("[21t")) + } + + @Test fun oTituloVira40CaracteresSemControles() { + val rotulos = mutableListOf() + FiltroDaSaidaDoServidor { rotulos += it }.processar(Hostil.bytes("titulo")) + assertEquals(listOf("build-box: ~/app"), rotulos) + val longo = mutableListOf() + FiltroDaSaidaDoServidor { longo += it }.processar("$ESC]2;${"x".repeat(200)}\u0007\u0001".toByteArray()) + assertEquals(40, longo.single().length) + val controles = mutableListOf() + FiltroDaSaidaDoServidor { controles += it }.processar("$ESC]0;a\u0001\u0002b‮evil$ST".toByteArray(Charsets.UTF_8)) + assertEquals("abevil", controles.single()) + } +} + +private fun ByteArray.contains(b: Int) = any { it.toInt() == b } diff --git a/app/src/test/java/com/keyflow/computador/app/TerminalActivityRegrasTest.kt b/app/src/test/java/com/keyflow/computador/app/TerminalActivityRegrasTest.kt new file mode 100644 index 00000000..686a9ce3 --- /dev/null +++ b/app/src/test/java/com/keyflow/computador/app/TerminalActivityRegrasTest.kt @@ -0,0 +1,45 @@ +package com.keyflow.computador.app + +import java.io.File +import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Assert.assertTrue +import org.junit.Test + +/** D17 e CMP-24: regras do terminal que se lê no código e no manifesto (o instrumentado confere a janela de verdade). */ +class TerminalActivityRegrasTest { + private val raizes = listOf(File("src/main/java/com/keyflow/computador/app"), File("src/main/java/com/keyflow/ui/terminal")) + private fun fontes() = raizes.flatMap { r -> r.walkTopDown().filter { it.isFile && it.extension == "kt" }.toList() } + + @Test fun nenhumArquivoDoTerminalPedeFlagSecure() { + val achados = fontes().filter { f -> f.readLines().any { l -> "FLAG_SECURE" in l && !l.trimStart().startsWith("//") && !l.trimStart().startsWith("*") && !l.trimStart().startsWith("/*") } }.map { it.name } + assertEquals("FLAG_SECURE no terminal (D17: a Visão precisa capturar a tela)", emptyList(), achados) + assertFalse(fontes().any { "setSecure" in it.readText() }) + assertTrue(fontes().isNotEmpty()) + } + + @Test fun aActivityNaoSaiDoApp() { + val manifesto = File("src/main/AndroidManifest.xml").readText() + val bloco = manifesto.substringAfter("android:name=\".computador.app.TerminalActivity\"").substringBefore("/>") + assertTrue(bloco.contains("android:exported=\"false\"")) + assertTrue(bloco.contains("android:windowSoftInputMode=\"adjustResize\"")) + assertTrue(bloco.contains("android:launchMode=\"singleTask\"")) + assertFalse("sem intent-filter", bloco.contains("intent-filter")) + } + + @Test fun aBancadaDaT1FoiRemovida() { + assertFalse(File("src/debug/java/com/keyflow/computador/app/TerminalSpikeActivity.kt").exists()) + assertFalse(File("src/debug/AndroidManifest.xml").readText().contains("TerminalSpike")) + } + + @Test fun aTelaDoTerminalNaoTemAnuncio() { + val tela = fontes().joinToString("\n") { it.readText() } + for (proibido in listOf("AdMob", "AdView", "adsController", "Interstitial", "gms.ads")) assertFalse(proibido, tela.contains(proibido)) + } + + @Test fun aFonteEmbutidaTemLicencaOfl() { + assertTrue(File("src/main/assets/fonts/JetBrainsMonoNerdFontMono-Regular.ttf").length() > 100_000) + val licenca = File("licenses/OFL_JetBrainsMonoNerdFont.txt").readText() + assertTrue(licenca.contains("SIL OPEN FONT LICENSE Version 1.1")) + } +} diff --git a/app/src/test/resources/computador/gravacoes/README.md b/app/src/test/resources/computador/gravacoes/README.md index bd447b9b..65be3933 100644 --- a/app/src/test/resources/computador/gravacoes/README.md +++ b/app/src/test/resources/computador/gravacoes/README.md @@ -13,6 +13,7 @@ Os executáveis geradores não são dependências do app, não são copiados par | `iterm2.bin` | Script oficial `gnachman/iTerm2-shell-integration`, `utilities/imgcat`: `bash imgcat -W 4 -H 2 keyflow-fixture.png` | | `img2sixel.bin` | libsixel 1.10.3: `img2sixel keyflow-fixture.png` | | `chafa.bin` | Chafa 1.12.4: `chafa --format=sixels --size=4x2 --animate=off keyflow-fixture.png` | +| `hostil.bin` | **Escrita à mão**, não de uma ferramenta: uma sequência de cada ataque da CMP-35 (OSC 52 de leitura e de escrita, `CSI 20/21 t`, `OSC 21`, DECRQSS, ENQ, título, links `javascript:`, `file:` e `https:`) mais as consultas permitidas (DA1, DA2, DSR, CPR, cores, kitty `a=q`). Os trechos estão em `SequenciasHostisTest` e o teste confere que a concatenação é este arquivo. | | `herdr.bin` | Herdr 0.9.5 real, sessão isolada `keyflow-cmp`, PTY 80×24/640×384; no pane, o comando de kitty acima. Captura até o primeiro placement completo da imagem. | Herdr: `HERDR_CONFIG_PATH` e todos os `XDG_*_HOME` apontaram para uma área de teste em `/tmp`; diff --git a/app/src/test/resources/computador/gravacoes/SHA256SUMS b/app/src/test/resources/computador/gravacoes/SHA256SUMS index 469e85fa..c1c07146 100644 --- a/app/src/test/resources/computador/gravacoes/SHA256SUMS +++ b/app/src/test/resources/computador/gravacoes/SHA256SUMS @@ -1,5 +1,6 @@ 66165840e9d5d338cf241bb339057de83fdaacfb90e2a4e7a71d9fd0d866cdde chafa.bin 77bd60ba474ce68d9d62af6e25836aba23e067a63c3e08cbe8b7b449f596097e herdr.bin +15bca99916584e449b47500a2234ef94de9bcb274c6b97a960a9ca0d6ef527d2 hostil.bin d486609cd5ccc3d28ce1edb6fe7027491b23a04e799117bdf19483806353dc9a img2sixel.bin a016f7bd56c85f4a34006316bc85a6313d7fd7c5ecd06d70640f4caffe331886 iterm2.bin b3672a4957ea188f9a9dfec557f2bb37a1d6907edca5d832f431a4d80a2a1659 keyflow-fixture.png diff --git a/app/src/test/resources/computador/gravacoes/hostil.bin b/app/src/test/resources/computador/gravacoes/hostil.bin new file mode 100644 index 00000000..a7589d17 --- /dev/null +++ b/app/src/test/resources/computador/gravacoes/hostil.bin @@ -0,0 +1,2 @@ +Olá, terminal! +[>c]10;?]11;?_Ga=q,t=d,f=24,s=1,v=1,i=50;AAAA\]52;c;?]52;;?\]52;c;aGVsbG8=]21;?\P$qm\]0;build-box: ~/app]8;;javascript:alert(1)\clique]8;;\]8;;file:///etc/passwd\arquivo]8;;\]8;;https://exemplo.org/a\site]8;;\fim From aecbcc696849de0dfe9a0ba4001ed6a6befe1a6d Mon Sep 17 00:00:00 2001 From: Yan Lucas Date: Sat, 31 Oct 2026 12:58:19 +0000 Subject: [PATCH 02/12] =?UTF-8?q?fix(computador):=20itens=20P3=20da=20revi?= =?UTF-8?q?s=C3=A3o=20do=20#92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Marca de invalidação gravada com proteção (bloqueada em memória se o cofre falhar), inscrição nos eventos antes de conferir as sessões vivas, contrato dos coletores do gerenciador, ipVersion do builder no transporte e relógio de 45 s que pausa enquanto o usuário decide a impressão digital. --- .../computador/app/ChavesAndroidTest.kt | 21 +++++++++++++++++++ .../keyflow/computador/app/LigacaoSessoes.kt | 7 +++++-- .../computador/app/ProvedorDeChavesAndroid.kt | 14 +++++++++++-- .../computador/sessao/GerenciadorDeSessoes.kt | 6 +++++- .../keyflow/computador/ssh/ConexaoCbssh.kt | 11 ++++++---- 5 files changed, 50 insertions(+), 9 deletions(-) diff --git a/app/src/androidTest/java/com/keyflow/computador/app/ChavesAndroidTest.kt b/app/src/androidTest/java/com/keyflow/computador/app/ChavesAndroidTest.kt index f74c8ead..fbc07b2d 100644 --- a/app/src/androidTest/java/com/keyflow/computador/app/ChavesAndroidTest.kt +++ b/app/src/androidTest/java/com/keyflow/computador/app/ChavesAndroidTest.kt @@ -390,6 +390,27 @@ class ChavesAndroidTest { assertEquals("sem prompt", promptsAntes, aut.prompts) } + @Test fun cofreQueLancaNaGravacaoDaMarcaBloqueiaSemExcecao() { + val d = DetectorFalso() + val aut = AutenticadorFalso() + val p = provedor(autenticador = aut, aplicarBio = false, detector = d) + val chave = gerar(p, TipoDeChave.ECDSA_P256, bio = true) + val quebrado = object : CofreDeSegredos by cofre { + override fun gravar(chave: String, valor: String) { if (chave.startsWith("ssh_inv.")) throw SecurityException("cofre cheio") else cofre.gravar(chave, valor) } + } + val q = ProvedorDeChavesAndroid(quebrado, aut, RelogioFalso(), aplicarBiometriaNoKeystore = false, detector = d) + d.invalida = true // outra digital cadastrada + val a = q.assinador(chave) + // `assinar` descobre a invalidação, a gravação da marca falha, e mesmo assim: null, sem exceção, e a chave segue bloqueada. + assertNull(runBlocking { a.assinar(dados) }) + assertTrue(a.invalidada) + assertEquals(EstadoChave.INVALIDADA, q.estado(chave)) + assertNull(runBlocking { a.assinar(dados) }) + // `estado()` também não deixa a exceção escapar. + val e = ProvedorDeChavesAndroid(quebrado, aut, RelogioFalso(), aplicarBiometriaNoKeystore = false, detector = d) + assertEquals(EstadoChave.INVALIDADA, e.estado(chave)) + } + @Test fun excluirApagaASentinela() { val d = DetectorFalso() val p = provedor(aplicarBio = false, detector = d) diff --git a/app/src/main/java/com/keyflow/computador/app/LigacaoSessoes.kt b/app/src/main/java/com/keyflow/computador/app/LigacaoSessoes.kt index 1b2db9ad..7026edce 100644 --- a/app/src/main/java/com/keyflow/computador/app/LigacaoSessoes.kt +++ b/app/src/main/java/com/keyflow/computador/app/LigacaoSessoes.kt @@ -4,6 +4,7 @@ import com.keyflow.computador.sessao.EventoGerenciador import com.keyflow.computador.sessao.GerenciadorDeSessoes import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineStart +import kotlinx.coroutines.flow.onSubscription import kotlinx.coroutines.launch /** @@ -13,7 +14,9 @@ import kotlinx.coroutines.launch */ internal fun observarPrimeiraSessao(gerenciador: GerenciadorDeSessoes, escopo: CoroutineScope, iniciar: () -> Unit) { escopo.launch(start = CoroutineStart.UNDISPATCHED) { - if (gerenciador.resumos.value.any { !it.estado.terminal }) iniciar() - gerenciador.eventos.collect { if (it == EventoGerenciador.PrimeiraSessao) iniciar() } + // `onSubscription` roda **depois** de a inscrição existir: uma sessão que abre entre conferir as vivas e assinar não se perde. + gerenciador.eventos + .onSubscription { if (gerenciador.resumos.value.any { !it.estado.terminal }) iniciar() } + .collect { if (it == EventoGerenciador.PrimeiraSessao) iniciar() } } } diff --git a/app/src/main/java/com/keyflow/computador/app/ProvedorDeChavesAndroid.kt b/app/src/main/java/com/keyflow/computador/app/ProvedorDeChavesAndroid.kt index 4be89bc3..e07b25d7 100644 --- a/app/src/main/java/com/keyflow/computador/app/ProvedorDeChavesAndroid.kt +++ b/app/src/main/java/com/keyflow/computador/app/ProvedorDeChavesAndroid.kt @@ -69,8 +69,17 @@ class ProvedorDeChavesAndroid( // O estado INVALIDADA é **persistente** (no cofre): sobrevive a reinício do processo e a OTA, e uma chave invalidada não volta a funcionar. private fun marcaInvalidada(id: String) = "$PREFIXO_INVALIDADA$id" /** Leitura incerta = bloqueado (fail-closed): se o cofre não responde, a chave conta como invalidada e não assina. */ - private fun jaInvalidada(id: String): Boolean = try { cofre.ler(marcaInvalidada(id)) != null } catch (e: Exception) { true } - private fun invalidar(id: String) = cofre.gravar(marcaInvalidada(id), "1") + private fun jaInvalidada(id: String): Boolean = id in invalidadasNestaExecucao || try { cofre.ler(marcaInvalidada(id)) != null } catch (e: Exception) { true } + + /** + * Marca a chave como invalidada. Se o cofre não gravar, a marca vale **em memória** nesta execução (a chave continua bloqueada) e a exceção + * não escapa de `estado`/`assinar`: o contrato é "bloqueado, `null`, sem exceção". + */ + private fun invalidar(id: String) { + invalidadasNestaExecucao += id + try { cofre.gravar(marcaInvalidada(id), "1") } catch (e: Exception) { /* só em memória */ } + } + private val invalidadasNestaExecucao: MutableSet = java.util.concurrent.ConcurrentHashMap.newKeySet() private fun novoId() = UUID.randomUUID().toString().replace("-", "").take(8) @@ -161,6 +170,7 @@ class ProvedorDeChavesAndroid( envelope.apagar(id) cofre.apagar("$PREFIXO_PUBLICA$id") janelas.remove(id) + invalidadasNestaExecucao -= id cofre.apagar(marcaInvalidada(id)) } diff --git a/app/src/main/java/com/keyflow/computador/sessao/GerenciadorDeSessoes.kt b/app/src/main/java/com/keyflow/computador/sessao/GerenciadorDeSessoes.kt index ca784d21..e10d40d8 100644 --- a/app/src/main/java/com/keyflow/computador/sessao/GerenciadorDeSessoes.kt +++ b/app/src/main/java/com/keyflow/computador/sessao/GerenciadorDeSessoes.kt @@ -104,7 +104,11 @@ class GerenciadorDeSessoes( private var vivasAntes = 0 - /** Publica a lista e emite `PrimeiraSessao`/`SemSessoes` quando o número de sessões **vivas** (não terminais) passa por zero. */ + /** + * Publica a lista e emite `PrimeiraSessao`/`SemSessoes` quando o número de sessões **vivas** (não terminais) passa por zero. + * Contrato dos coletores de [resumos] e [eventos]: **não podem bloquear** nem chamar o gerenciador de volta de forma síncrona (a publicação + * roda sob a trava; um coletor que bloqueia segura todas as sessões, e um que reentra no gerenciador espera por si mesmo). + */ private fun publicar() { // Tudo sob a trava: o resumo gravado é sempre o do instante em que a lista foi lida (duas publicações simultâneas não se cruzam, e // o último `_resumos.value` nunca é de uma lista mais velha). `tryEmit` não suspende, então segurar a trava aqui é seguro. diff --git a/app/src/main/java/com/keyflow/computador/ssh/ConexaoCbssh.kt b/app/src/main/java/com/keyflow/computador/ssh/ConexaoCbssh.kt index 0b1019d6..acf59c28 100644 --- a/app/src/main/java/com/keyflow/computador/ssh/ConexaoCbssh.kt +++ b/app/src/main/java/com/keyflow/computador/ssh/ConexaoCbssh.kt @@ -35,7 +35,6 @@ import org.connectbot.sshlib.PublicKey import org.connectbot.sshlib.SshClient import org.connectbot.sshlib.SshClientConfig import org.connectbot.sshlib.SshSession -import org.connectbot.sshlib.transport.IpVersion import org.connectbot.sshlib.transport.KtorTcpTransportFactory import org.connectbot.sshlib.transport.TransportFactory import kotlinx.coroutines.withTimeout @@ -187,7 +186,7 @@ class ConexaoCbssh( this.handshakeTimeoutMs = 0 ajustar(this) // O limite do TCP vai por cima do transporte escolhido (o padrão do cbssh, ou o do teste): conectar o socket tem 15 s. - val base = this.transportFactory ?: KtorTcpTransportFactory(endereco, h.porta, IpVersion.AUTO) + val base = this.transportFactory ?: KtorTcpTransportFactory(endereco, h.porta, this.ipVersion) this.transportFactory = TransportFactory { withTimeout(tempoTcpMs) { base.create() } } } val c = SshClient(config) @@ -229,9 +228,13 @@ class ConexaoCbssh( private suspend fun conectarComLimite(c: SshClient, estado: EstadoDaConexao): ConnectResult = coroutineScope { val tarefa = async { c.connect() } val relogio = launch { + // O relógio de 45 s (TCP + troca de chaves) só conta enquanto o usuário **não** está decidindo a impressão digital. + val passo = 250L + var contado = 0L while (isActive) { - delay(tempoTcpMs + tempoTrocaDeChavesMs) - if (!estado.aguardandoUsuario.get()) { estado.estourou = true; tarefa.cancel(); return@launch } + delay(passo) + if (!estado.aguardandoUsuario.get()) contado += passo + if (contado >= tempoTcpMs + tempoTrocaDeChavesMs) { estado.estourou = true; tarefa.cancel(); return@launch } } } try { From faa3811aae2950a011ef58d0e724f9dd374cfd63 Mon Sep 17 00:00:00 2001 From: Yan Lucas Date: Sat, 31 Oct 2026 14:31:52 +0000 Subject: [PATCH 03/12] =?UTF-8?q?feat(computador):=20teclas=20extras,=20te?= =?UTF-8?q?clado=20f=C3=ADsico=20e=20ditado=20no=20terminal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mapa de teclas do xterm (Ctrl/Alt, setas com DECCKM, F1–F12), deduplicação do mesmo KeyEvent por dois caminhos, Ctrl e Alt pegajosos, guarda que pede confirmação para ditado ou colagem com quebra de linha e teclas extras acessíveis. --- .../computador/app/EntradaTerminalImeTest.kt | 137 ++++++++++++++ .../computador/app/EntradaDoTerminal.kt | 78 ++++++++ .../computador/app/FiltroDeRespostas.kt | 11 +- .../keyflow/computador/app/LigacaoEmulador.kt | 46 ++++- .../computador/app/MapaTecladoFisico.kt | 177 ++++++++++++++++++ .../java/com/keyflow/i18n/en/Computador.kt | 16 ++ .../java/com/keyflow/i18n/es/Computador.kt | 16 ++ .../ui/terminal/EntradaParaTerminal.kt | 14 -- .../com/keyflow/ui/terminal/TeclasExtras.kt | 108 +++++++++++ .../com/keyflow/ui/terminal/TerminalScreen.kt | 28 ++- .../computador/app/MapaTecladoFisicoTest.kt | 153 +++++++++++++++ .../computador/app/TeclasExtrasTest.kt | 29 +++ 12 files changed, 778 insertions(+), 35 deletions(-) create mode 100644 app/src/androidTest/java/com/keyflow/computador/app/EntradaTerminalImeTest.kt create mode 100644 app/src/main/java/com/keyflow/computador/app/EntradaDoTerminal.kt create mode 100644 app/src/main/java/com/keyflow/computador/app/MapaTecladoFisico.kt delete mode 100644 app/src/main/java/com/keyflow/ui/terminal/EntradaParaTerminal.kt create mode 100644 app/src/main/java/com/keyflow/ui/terminal/TeclasExtras.kt create mode 100644 app/src/test/java/com/keyflow/computador/app/MapaTecladoFisicoTest.kt create mode 100644 app/src/test/java/com/keyflow/computador/app/TeclasExtrasTest.kt diff --git a/app/src/androidTest/java/com/keyflow/computador/app/EntradaTerminalImeTest.kt b/app/src/androidTest/java/com/keyflow/computador/app/EntradaTerminalImeTest.kt new file mode 100644 index 00000000..6958c4bd --- /dev/null +++ b/app/src/androidTest/java/com/keyflow/computador/app/EntradaTerminalImeTest.kt @@ -0,0 +1,137 @@ +package com.keyflow.computador.app + +import android.content.Context +import android.view.KeyEvent +import android.view.View +import android.view.ViewGroup +import android.view.inputmethod.EditorInfo +import androidx.compose.ui.graphics.Color +import androidx.test.core.app.ActivityScenario +import androidx.test.ext.junit.runners.AndroidJUnit4 +import androidx.test.platform.app.InstrumentationRegistry +import com.keyflow.computador.AutenticacaoHost +import com.keyflow.computador.Host +import com.keyflow.computador.sessao.DonoDaSessao +import com.keyflow.computador.sessao.EstadoSessao +import com.keyflow.computador.sessao.ResultadoAbertura +import org.junit.After +import org.junit.Assert.assertEquals +import org.junit.Assert.assertNotNull +import org.junit.Assert.assertTrue +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith + +/** + * CMP-27 e CMP-31 com o KeyFlow IME como teclado atual: o `InputConnection` real do campo do terminal recebe o que um teclado de tela + * entrega, e o servidor (conexão falsa) vê **uma** vez cada tecla. Não substitui o toque no teclado de verdade (T21, manual). + */ +@RunWith(AndroidJUnit4::class) +class EntradaTerminalImeTest { + private val instr = InstrumentationRegistry.getInstrumentation() + private val ctx: Context get() = instr.targetContext + private val host = Host(id = "h1", nome = "dev-server", endereco = "dev.example.org", usuario = "yan", autenticacao = AutenticacaoHost.Senha) + private val deps = DependenciasFalsas() + private var imeAnterior: String? = null + private val imeKeyFlow = "com.keyflow/.ime.KeyFlowKeyboardService" + + private fun shell(cmd: String): String = instr.uiAutomation.executeShellCommand(cmd).use { f -> java.io.FileInputStream(f.fileDescriptor).bufferedReader().readText() } + + @Before fun ativarOKeyFlowIme() { + imeAnterior = shell("settings get secure default_input_method").trim().takeIf { it.isNotEmpty() && it != "null" } + shell("ime enable $imeKeyFlow") + shell("ime set $imeKeyFlow") + } + + @After fun restaurarIme() { imeAnterior?.let { shell("ime set $it") } } + + private fun campo(v: View): View? { + if (v.javaClass.simpleName == "ImeInputView") return v + if (v is ViewGroup) repeat(v.childCount) { campo(v.getChildAt(it))?.let { c -> return c } } + return null + } + + private fun esperar(ms: Long = 10_000, c: () -> Boolean) { + val fim = System.currentTimeMillis() + ms + while (!c()) { if (System.currentTimeMillis() > fim) throw AssertionError("tempo esgotado"); instr.waitForIdleSync(); Thread.sleep(25) } + } + + private fun hex(s: String) = s.toByteArray(Charsets.UTF_8).joinToString(" ") { "%02x".format(it) } + + private fun escrito(): String = String(deps.conexoes.first().tudoQueFoiEscrito(), Charsets.UTF_8) + + private fun comTerminal(bloco: (ComputadorApp, View) -> T): T { + val app = ComputadorApp.paraTeste(ctx, deps) + val s = (app.abrirSessao(host, DonoDaSessao.USUARIO, Color.White, Color.Black) as ResultadoAbertura.Aberta).sessao + esperar { app.gerenciador.resumos.value.any { it.estado == EstadoSessao.Aberta } } + val intent = TerminalActivity.intent(ctx, sessaoId = s.id).addFlags(android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK) + ActivityScenario.launch(intent).use { cenario -> + var view: View? = null + esperar { cenario.onActivity { a -> view = campo(a.window.decorView) }; view != null } + return try { bloco(app, view!!) } finally { kotlinx.coroutines.runBlocking { app.gerenciador.fecharTodas() } } + } + } + + private fun conexao(view: View, aoCriar: (android.view.inputmethod.InputConnection) -> Unit) { + instr.runOnMainSync { + view.requestFocus() + val ic = view.onCreateInputConnection(EditorInfo()) + assertNotNull(ic) + aoCriar(ic!!) + } + instr.waitForIdleSync() + } + + @Test fun digitarLsLaEEnterChegaExatamenteUmaVez() = comTerminal { _, view -> + val enter = KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ENTER) + val soltar = KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_ENTER) + conexao(view) { ic -> ic.commitText("ls -la", 1) } + // O termlib solta texto de vários caracteres numa thread própria, um instante depois; uma pessoa não aperta Enter no mesmo milissegundo. + esperar { escrito() == "ls -la" } + conexao(view) { ic -> + // O mesmo evento por dois caminhos (o `aa` da T1): só um chega. + ic.sendKeyEvent(enter); view.dispatchKeyEvent(enter) + ic.sendKeyEvent(soltar); view.dispatchKeyEvent(soltar) + } + esperar { escrito().contains("\r") } + Thread.sleep(300) + assertEquals(hex("ls -la\r"), hex(escrito())) + } + + @Test fun acentosChegamEmUtf8EBackspaceApagaUmCaractere() = comTerminal { _, view -> + val apagar = KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DEL) + conexao(view) { ic -> ic.commitText("ç", 1); ic.commitText("é", 1); ic.sendKeyEvent(apagar); view.dispatchKeyEvent(apagar) } + esperar { escrito().contains("\u007f") } + Thread.sleep(300) + assertEquals(hex("çé\u007f"), hex(escrito())) + assertTrue(deps.conexoes.first().tudoQueFoiEscrito().toList().windowed(1).isNotEmpty()) + } + + @Test fun ditadoChegaSemQuebraDeLinha() = comTerminal { _, view -> + conexao(view) { ic -> ic.commitText("olá mundo", 1) } + esperar { escrito().isNotEmpty() } + Thread.sleep(300) + assertEquals(hex("olá mundo"), hex(escrito())) + assertTrue(!escrito().contains('\n') && !escrito().contains('\r')) + } + + @Test fun ditadoComQuebraDeLinhaPedeConfirmacaoEPorTantoNaoExecuta() = comTerminal { app, view -> + conexao(view) { ic -> ic.commitText("echo a\necho b", 1) } + val ligacao = app.emuladores.de(app.gerenciador.resumos.value.first().id)!! + esperar { ligacao.pedidoDeColar.value != null } + assertEquals("", escrito()) + assertEquals(2, ligacao.pedidoDeColar.value!!.linhas) + ligacao.cancelarColar() + Thread.sleep(300) + assertEquals("cancelar não envia nada", "", escrito()) + } + + @Test fun ctrlCPeloTecladoFisicoViraETX() = comTerminal { _, view -> + val t = System.currentTimeMillis() + val ctrlC = KeyEvent(t, t, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_C, 0, KeyEvent.META_CTRL_ON or KeyEvent.META_CTRL_LEFT_ON) + conexao(view) { _ -> view.dispatchKeyEvent(ctrlC) } + esperar { escrito().isNotEmpty() } + Thread.sleep(300) + assertEquals(hex("\u0003"), hex(escrito())) + } +} diff --git a/app/src/main/java/com/keyflow/computador/app/EntradaDoTerminal.kt b/app/src/main/java/com/keyflow/computador/app/EntradaDoTerminal.kt new file mode 100644 index 00000000..0eac6ef4 --- /dev/null +++ b/app/src/main/java/com/keyflow/computador/app/EntradaDoTerminal.kt @@ -0,0 +1,78 @@ +package com.keyflow.computador.app + +import android.view.KeyEvent as AndroidKeyEvent +import androidx.compose.ui.input.key.KeyEvent +import org.connectbot.terminal.ModifierManager + +/** Do código de tecla do Android para a [Tecla] que o app mapeia sozinho (`null` = deixa para o termlib). */ +internal fun teclaDoAndroid(codigo: Int): Tecla? = when (codigo) { + in AndroidKeyEvent.KEYCODE_A..AndroidKeyEvent.KEYCODE_Z -> Tecla.Caractere('a' + (codigo - AndroidKeyEvent.KEYCODE_A)) + AndroidKeyEvent.KEYCODE_SPACE -> Tecla.Caractere(' ') + AndroidKeyEvent.KEYCODE_LEFT_BRACKET -> Tecla.Caractere('[') + AndroidKeyEvent.KEYCODE_RIGHT_BRACKET -> Tecla.Caractere(']') + AndroidKeyEvent.KEYCODE_BACKSLASH -> Tecla.Caractere('\\') + AndroidKeyEvent.KEYCODE_SLASH -> Tecla.Caractere('/') + AndroidKeyEvent.KEYCODE_ENTER, AndroidKeyEvent.KEYCODE_NUMPAD_ENTER -> Tecla.Enter + AndroidKeyEvent.KEYCODE_TAB -> Tecla.Tab + AndroidKeyEvent.KEYCODE_ESCAPE -> Tecla.Esc + AndroidKeyEvent.KEYCODE_DEL -> Tecla.Backspace + AndroidKeyEvent.KEYCODE_FORWARD_DEL -> Tecla.Delete + AndroidKeyEvent.KEYCODE_INSERT -> Tecla.Insert + AndroidKeyEvent.KEYCODE_DPAD_UP -> Tecla.Cima + AndroidKeyEvent.KEYCODE_DPAD_DOWN -> Tecla.Baixo + AndroidKeyEvent.KEYCODE_DPAD_LEFT -> Tecla.Esquerda + AndroidKeyEvent.KEYCODE_DPAD_RIGHT -> Tecla.Direita + AndroidKeyEvent.KEYCODE_MOVE_HOME -> Tecla.Home + AndroidKeyEvent.KEYCODE_MOVE_END -> Tecla.End + AndroidKeyEvent.KEYCODE_PAGE_UP -> Tecla.PageUp + AndroidKeyEvent.KEYCODE_PAGE_DOWN -> Tecla.PageDown + in AndroidKeyEvent.KEYCODE_F1..AndroidKeyEvent.KEYCODE_F12 -> Tecla.F(codigo - AndroidKeyEvent.KEYCODE_F1 + 1) + else -> null +} + +/** + * A entrada do terminal (CMP-26, 27): liga ao `Terminal` do termlib a interceptação de teclas e os modificadores pegajosos. + * + * O `KeyEvent` chega por **dois** caminhos conforme o teclado (a InputConnection e a view; a T1 mediu `aa`): [DeduplicadorDeTeclas] ignora o + * segundo. As teclas que o app mapeia (Ctrl/Alt+letra, Enter, Tab, Esc, Backspace, setas, Home/End, PageUp/Down, F1–F12) viram bytes por + * [MapaTecladoFisico] e saem por [LigacaoEmulador.enviar]; as demais (letras e símbolos soltos) seguem ao termlib, que cuida da composição. + * O texto digitado/ditado pelo teclado de tela chega como `commitText` (UTF-8, sem Enter), pelo caminho normal do termlib. + */ +class EntradaDoTerminal(private val ligacao: LigacaoEmulador) { + val pegajosos = ModificadoresPegajosos() + private val dedup = DeduplicadorDeTeclas() + + /** O termlib consulta isto para as teclas de texto que ele mesmo trata (Ctrl ou Alt travados nas teclas extras valem para elas). */ + val modificadores: ModifierManager = object : ModifierManager { + override fun isCtrlActive() = pegajosos.atuais().ctrl + override fun isAltActive() = pegajosos.atuais().alt + override fun isShiftActive() = false + override fun clearTransients() = pegajosos.consumir() + } + + val interceptar: (KeyEvent) -> Boolean = { evento -> aoTecla(evento.nativeKeyEvent) } + + internal fun aoTecla(k: AndroidKeyEvent): Boolean { + if (dedup.duplicada(k.action, k.keyCode, k.downTime, k.eventTime, k.repeatCount)) return true + val tecla = teclaDoAndroid(k.keyCode) ?: return false + val mods = Modificadores(k.isCtrlPressed, k.isAltPressed, k.isShiftPressed) + pegajosos.atuais() + val bytes = MapaTecladoFisico.bytes(tecla, mods, ligacao.modoAplicacaoDasSetas) ?: return false + if (k.action == AndroidKeyEvent.ACTION_DOWN) { ligacao.enviar(bytes); pegajosos.consumir() } + return true + } + + /** Uma tecla extra tocada (já em bytes): sai pelo mesmo caminho, com Ctrl/Alt pegajosos aplicados. */ + fun teclaExtra(tecla: Tecla) { + val bytes = MapaTecladoFisico.bytes(tecla, pegajosos.atuais(), ligacao.modoAplicacaoDasSetas) ?: return + ligacao.enviar(bytes) + pegajosos.consumir() + } + + /** Um caractere das teclas extras (`|`, `~`, `/`, `-`): com Ctrl/Alt pegajoso vira Ctrl+/ etc.; sem, o caractere puro. */ + fun caractereExtra(c: Char) { + val m = pegajosos.atuais() + val bytes = MapaTecladoFisico.bytes(Tecla.Caractere(c), m) ?: c.toString().toByteArray(Charsets.UTF_8) + ligacao.enviar(bytes) + pegajosos.consumir() + } +} diff --git a/app/src/main/java/com/keyflow/computador/app/FiltroDeRespostas.kt b/app/src/main/java/com/keyflow/computador/app/FiltroDeRespostas.kt index 3252f374..30e5e93a 100644 --- a/app/src/main/java/com/keyflow/computador/app/FiltroDeRespostas.kt +++ b/app/src/main/java/com/keyflow/computador/app/FiltroDeRespostas.kt @@ -167,6 +167,10 @@ class FiltroDaSaidaDoServidor(private val aoTitulo: (String) -> Unit = {}) { @Volatile var consumidos: Int = 0 private set + /** DECCKM (`CSI ? 1 h` / `l`): o servidor ligou o modo de aplicação das setas? O termlib não publica; o mapa do teclado precisa. */ + @Volatile var modoAplicacaoDasSetas: Boolean = false + private set + /** Processa [entrada] e devolve o que segue para o emulador. Não é seguro chamar de duas threads ao mesmo tempo. */ fun processar(entrada: ByteArray): ByteArray { saida = ByteArrayOutputStream(entrada.size) @@ -174,7 +178,7 @@ class FiltroDaSaidaDoServidor(private val aoTitulo: (String) -> Unit = {}) { return saida.toByteArray() } - fun reiniciar() { estado = E.NORMAL; seguro.reset(); titulo.reset(); descartados = 0 } + fun reiniciar() { modoAplicacaoDasSetas = false; estado = E.NORMAL; seguro.reset(); titulo.reset(); descartados = 0 } private fun emitirSegurados() { seguro.writeTo(saida); seguro.reset() } private fun passa(b: Int) { saida.write(b) } @@ -199,7 +203,10 @@ class FiltroDaSaidaDoServidor(private val aoTitulo: (String) -> Unit = {}) { b in 0x20..0x3f -> { seguro.write(b); if (seguro.size() > MAX_CSI) { seguro.reset(); estado = E.CSI_DESCARTA } } b in 0x40..0x7e -> { val corpo = seguro.toByteArray().copyOfRange(2, seguro.size()).toString(Charsets.ISO_8859_1) - if (b == 't'.code && (corpo == "21" || corpo == "20")) { consumidos++; seguro.reset() } else { seguro.write(b); emitirSegurados() } + if (b == 't'.code && (corpo == "21" || corpo == "20")) { consumidos++; seguro.reset() } else { + if ((b == 'h'.code || b == 'l'.code) && corpo.startsWith("?") && "1" in corpo.substring(1).split(';')) modoAplicacaoDasSetas = b == 'h'.code + seguro.write(b); emitirSegurados() + } estado = E.NORMAL } // Byte que não pertence a um CSI (controle, ESC, UTF-8): o pedaço segurado é **descartado**, não emitido. Emitir deixaria o emulador no diff --git a/app/src/main/java/com/keyflow/computador/app/LigacaoEmulador.kt b/app/src/main/java/com/keyflow/computador/app/LigacaoEmulador.kt index be57e373..f524197a 100644 --- a/app/src/main/java/com/keyflow/computador/app/LigacaoEmulador.kt +++ b/app/src/main/java/com/keyflow/computador/app/LigacaoEmulador.kt @@ -46,6 +46,8 @@ class LigacaoEmulador( private val destino = CompletableDeferred() private val filtroDeSaida = FiltroDeRespostas() private val filtroDeEntrada = FiltroDaSaidaDoServidor { _titulo.value = it } + private val guarda = GuardaDeLinhas() + private val _pedidoDeColar = MutableStateFlow(null) private val _titulo = MutableStateFlow(null) private val _pedidoDeClipboard = MutableStateFlow(null) @Volatile private var fechada = false @@ -53,6 +55,12 @@ class LigacaoEmulador( /** O rótulo que o servidor pediu para a aba (já sanitizado), ou `null`. */ val titulo: StateFlow = _titulo + /** Texto com quebra de linha (colado, ditado) esperando a confirmação (CMP-28). */ + val pedidoDeColar: StateFlow = _pedidoDeColar + + /** O servidor ligou o modo de aplicação das setas (DECCKM)? */ + val modoAplicacaoDasSetas: Boolean get() = filtroDeEntrada.modoAplicacaoDasSetas + /** Texto que o servidor quer copiar (`OSC 52` de escrita) e que espera o consentimento da pessoa. Padrão: negar. */ val pedidoDeClipboard: StateFlow = _pedidoDeClipboard @@ -63,7 +71,13 @@ class LigacaoEmulador( defaultBackground = corFundo, onKeyboardInput = { bytes -> val ok = filtroDeSaida.filtrar(bytes) - if (ok.isNotEmpty() && !fechada) fila.trySend(Saida.Bytes(ok.copyOf())) + if (ok.isNotEmpty() && !fechada) { + when (val d = guarda.avaliar(ok, System.currentTimeMillis())) { + GuardaDeLinhas.Decisao.Enviar -> fila.trySend(Saida.Bytes(ok.copyOf())) + // Ditado ou colagem do teclado com quebra de linha: pede confirmação em vez de executar. + is GuardaDeLinhas.Decisao.Segurar -> _pedidoDeColar.value = PoliticaDeColar.preparar(d.texto) + } + } }, onResize = { dim -> if (!fechada) fila.trySend(Saida.Tamanho(PtyInfo(dim.columns, dim.rows, dim.widthPixels, dim.heightPixels))) }, onClipboardCopy = { texto -> if (!fechada) _pedidoDeClipboard.value = texto }, @@ -118,7 +132,35 @@ class LigacaoEmulador( } /** Cola [texto] já preparado por [PoliticaDeColar] (o emulador respeita o bracketed paste). */ - fun colar(texto: String) { if (!fechada && texto.isNotEmpty()) emulador.pasteText(texto) } + fun colar(texto: String) { + if (fechada || texto.isEmpty()) return + guarda.liberar(System.currentTimeMillis()) + emulador.pasteText(texto) + } + + /** Pede para colar [original]: uma linha só vai direto; com quebra de linha espera [confirmarColar]. */ + fun pedirColar(original: String) { + val p = PoliticaDeColar.preparar(original) + if (p.texto.isEmpty()) return + if (p.precisaConfirmar) _pedidoDeColar.value = p else colar(p.texto) + } + + fun confirmarColar() { val p = _pedidoDeColar.value; _pedidoDeColar.value = null; if (p != null) colar(p.texto) } + fun cancelarColar() { _pedidoDeColar.value = null } + + /** Bytes de teclas que o app mesmo mapeou (teclas extras, teclado físico): passam pelo mesmo filtro e pela mesma fila, na ordem. */ + fun enviar(bytes: ByteArray) { + val ok = filtroDeSaida.filtrar(bytes) + if (ok.isEmpty() || fechada) return + // O texto digitado ou ditado sai do termlib por um callback **postado** no looper principal (`postAtTime`); uma tecla mapeada que fosse direto + // para a fila passaria à frente dele (medido: Enter chegando antes de `ls -la`). O termlib processa o texto numa thread própria e posta o callback depois; um atraso curto (e igual para todas as teclas mapeadas, que + // seguem em ordem) deixa o texto sair primeiro. Limite conhecido: duas entradas dos dois caminhos no mesmo instante podem trocar de ordem. + principal.postDelayed({ if (!fechada) fila.trySend(Saida.Bytes(ok.copyOf())) }, ATRASO_DE_ORDEM_MS) + } + + private val principal = android.os.Handler(android.os.Looper.getMainLooper()) + + private companion object { const val ATRASO_DE_ORDEM_MS = 40L } /** Visível aos testes: quantos pedaços o filtro de saída descartou. */ val descartesDeSaida: Int get() = filtroDeSaida.descartes diff --git a/app/src/main/java/com/keyflow/computador/app/MapaTecladoFisico.kt b/app/src/main/java/com/keyflow/computador/app/MapaTecladoFisico.kt new file mode 100644 index 00000000..a5dc6abf --- /dev/null +++ b/app/src/main/java/com/keyflow/computador/app/MapaTecladoFisico.kt @@ -0,0 +1,177 @@ +package com.keyflow.computador.app + +/** As teclas que o app mapeia sozinho (as outras seguem para o termlib: letras e símbolos sem Ctrl/Alt, com a composição do teclado). */ +sealed interface Tecla { + /** Uma tecla de caractere (`a`..`z` e símbolos), em minúscula. */ + data class Caractere(val c: Char) : Tecla + data object Enter : Tecla + data object Tab : Tecla + data object Esc : Tecla + data object Backspace : Tecla + data object Delete : Tecla + data object Insert : Tecla + data object Cima : Tecla + data object Baixo : Tecla + data object Esquerda : Tecla + data object Direita : Tecla + data object Home : Tecla + data object End : Tecla + data object PageUp : Tecla + data object PageDown : Tecla + data class F(val n: Int) : Tecla { init { require(n in 1..12) } } +} + +data class Modificadores(val ctrl: Boolean = false, val alt: Boolean = false, val shift: Boolean = false) { + val algum: Boolean get() = ctrl || alt || shift + + /** O número do xterm: 1 + shift(1) + alt(2) + ctrl(4). */ + val codigoXterm: Int get() = 1 + (if (shift) 1 else 0) + (if (alt) 2 else 0) + (if (ctrl) 4 else 0) + + operator fun plus(o: Modificadores) = Modificadores(ctrl || o.ctrl, alt || o.alt, shift || o.shift) + + companion object { val Nenhum = Modificadores() } +} + +/** + * O que cada tecla vira em bytes (CMP-26), com as sequências do xterm. **Setas e Home/End** dependem do modo de aplicação (DECCKM, + * `CSI ? 1 h`): `ESC O A` em vez de `ESC [ A`. Com modificador a forma é sempre `ESC [ 1 ; m A` (m = [Modificadores.codigoXterm]). + * Devolve `null` para o que o app **não** mapeia (letra sem Ctrl/Alt, símbolo sem Ctrl/Alt): quem trata é o termlib, que cuida da + * composição do teclado. + */ +object MapaTecladoFisico { + private const val ESC = 0x1b.toByte() + + fun bytes(tecla: Tecla, m: Modificadores = Modificadores.Nenhum, modoAplicacao: Boolean = false): ByteArray? = when (tecla) { + is Tecla.Caractere -> caractere(tecla.c, m) + Tecla.Enter -> comAlt(m, byteArrayOf(0x0d)) + Tecla.Tab -> if (m.shift) csi("Z") else comAlt(m, byteArrayOf(0x09)) + Tecla.Esc -> byteArrayOf(ESC) + Tecla.Backspace -> comAlt(m, byteArrayOf(if (m.ctrl) 0x08 else 0x7f)) + Tecla.Delete -> tilde(3, m) + Tecla.Insert -> tilde(2, m) + Tecla.Cima -> cursor('A', m, modoAplicacao) + Tecla.Baixo -> cursor('B', m, modoAplicacao) + Tecla.Direita -> cursor('C', m, modoAplicacao) + Tecla.Esquerda -> cursor('D', m, modoAplicacao) + Tecla.Home -> cursor('H', m, modoAplicacao) + Tecla.End -> cursor('F', m, modoAplicacao) + Tecla.PageUp -> tilde(5, m) + Tecla.PageDown -> tilde(6, m) + is Tecla.F -> funcao(tecla.n, m) + } + + private fun caractere(c: Char, m: Modificadores): ByteArray? { + if (!m.ctrl && !m.alt) return null + val base: Int = if (m.ctrl) { + when (c.lowercaseChar()) { + in 'a'..'z' -> c.lowercaseChar().code - 'a'.code + 1 + ' ', '2', '@' -> 0 + '[' -> 0x1b + '\\' -> 0x1c + ']' -> 0x1d + '^', '6' -> 0x1e + '_', '/', '-' -> 0x1f + else -> return null + } + } else (if (m.shift) c.uppercaseChar() else c).code + val bytes = if (base < 0x80) byteArrayOf(base.toByte()) else String(Character.toChars(base)).toByteArray(Charsets.UTF_8) + return if (m.alt) byteArrayOf(ESC) + bytes else bytes + } + + private fun comAlt(m: Modificadores, b: ByteArray) = if (m.alt) byteArrayOf(ESC) + b else b + + private fun csi(s: String) = byteArrayOf(ESC, '['.code.toByte()) + s.toByteArray(Charsets.ISO_8859_1) + + private fun cursor(final: Char, m: Modificadores, aplicacao: Boolean): ByteArray = when { + m.algum -> csi("1;${m.codigoXterm}$final") + aplicacao -> byteArrayOf(ESC, 'O'.code.toByte(), final.code.toByte()) + else -> csi(final.toString()) + } + + private fun tilde(n: Int, m: Modificadores): ByteArray = if (m.algum) csi("$n;${m.codigoXterm}~") else csi("$n~") + + private val codigosF = mapOf(5 to 15, 6 to 17, 7 to 18, 8 to 19, 9 to 20, 10 to 21, 11 to 23, 12 to 24) + + private fun funcao(n: Int, m: Modificadores): ByteArray = if (n <= 4) { + val letra = "PQRS"[n - 1] + if (m.algum) csi("1;${m.codigoXterm}$letra") else byteArrayOf(ESC, 'O'.code.toByte(), letra.code.toByte()) + } else tilde(codigosF.getValue(n), m) +} + +/** + * O `aa` da T1: o mesmo `KeyEvent` chegando por dois caminhos (InputConnection e a view). Dois eventos **distintos** (duas teclas iguais + * seguidas) nunca têm o mesmo `downTime`/`eventTime`; o repetir da tecla segurada muda `repeatCount` e `eventTime`. + */ +class DeduplicadorDeTeclas(private val memoria: Int = 8) { + private data class Chave(val acao: Int, val codigo: Int, val downTime: Long, val eventTime: Long, val repeticao: Int) + + private val vistos = ArrayDeque() + + /** `true` se este evento já foi visto (e deve ser ignorado). Registra o que for novo. */ + @Synchronized fun duplicada(acao: Int, codigo: Int, downTime: Long, eventTime: Long, repeticao: Int): Boolean { + val c = Chave(acao, codigo, downTime, eventTime, repeticao) + if (c in vistos) return true + vistos.addLast(c) + while (vistos.size > memoria) vistos.removeFirst() + return false + } +} + +enum class EstadoPegajoso { DESLIGADO, UMA_VEZ, TRAVADO } + +/** + * Ctrl e Alt das teclas extras: um toque vale para a **próxima** tecla; outro toque trava; outro solta. Depois de uma tecla, o "uma vez" se + * desfaz e o travado fica. + */ +class ModificadoresPegajosos { + private var ctrl = EstadoPegajoso.DESLIGADO + private var alt = EstadoPegajoso.DESLIGADO + + @Synchronized fun estadoCtrl() = ctrl + @Synchronized fun estadoAlt() = alt + + @Synchronized fun tocarCtrl() { ctrl = proximo(ctrl) } + @Synchronized fun tocarAlt() { alt = proximo(alt) } + + /** O que vale agora. */ + @Synchronized fun atuais() = Modificadores(ctrl = ctrl != EstadoPegajoso.DESLIGADO, alt = alt != EstadoPegajoso.DESLIGADO) + + /** Depois de usar uma tecla: o "uma vez" some. */ + @Synchronized fun consumir() { + if (ctrl == EstadoPegajoso.UMA_VEZ) ctrl = EstadoPegajoso.DESLIGADO + if (alt == EstadoPegajoso.UMA_VEZ) alt = EstadoPegajoso.DESLIGADO + } + + private fun proximo(e: EstadoPegajoso) = when (e) { + EstadoPegajoso.DESLIGADO -> EstadoPegajoso.UMA_VEZ + EstadoPegajoso.UMA_VEZ -> EstadoPegajoso.TRAVADO + EstadoPegajoso.TRAVADO -> EstadoPegajoso.DESLIGADO + } +} + +/** + * CMP-27/28: texto com **quebra de linha** que chega ao `onKeyboardInput` junto de outros caracteres (ditado da orbe, "colar" do teclado, + * texto sugerido) não vai direto ao servidor: uma quebra executa o comando. O **Enter** do usuário chega sozinho (`\r`), e o que o app mesmo + * colou (já confirmado) passa durante [janelaMs]. Sequências de escape nunca são seguradas. + */ +class GuardaDeLinhas(private val janelaMs: Long = 3_000) { + sealed interface Decisao { + data object Enviar : Decisao + class Segurar(val texto: String) : Decisao + } + + @Volatile private var liberadoAte = 0L + + /** O app vai colar algo já confirmado: o que sair do emulador nos próximos [janelaMs] passa. */ + fun liberar(agoraMs: Long) { liberadoAte = agoraMs + janelaMs } + + fun avaliar(bytes: ByteArray, agoraMs: Long): Decisao { + if (agoraMs < liberadoAte) return Decisao.Enviar + if (bytes.size < 2 || bytes[0].toInt() == 0x1b) return Decisao.Enviar + if (bytes.none { it.toInt() == 0x0a || it.toInt() == 0x0d }) return Decisao.Enviar + val texto = String(bytes, Charsets.UTF_8) + // Várias teclas de controle juntas (não é texto): não seguro. + if (texto.all { it == '\r' || it == '\n' }) return Decisao.Enviar + return Decisao.Segurar(texto) + } +} diff --git a/app/src/main/java/com/keyflow/i18n/en/Computador.kt b/app/src/main/java/com/keyflow/i18n/en/Computador.kt index fbabcc6b..a986de83 100644 --- a/app/src/main/java/com/keyflow/i18n/en/Computador.kt +++ b/app/src/main/java/com/keyflow/i18n/en/Computador.kt @@ -10,20 +10,26 @@ internal val Computador: Map = mapOf( "Abrir este link?" to "Open this link?", "Agente %d" to "Agent %d", "Aguardando a confirmação do servidor…" to "Waiting for server confirmation…", + "Alt: um toque vale para a próxima tecla, dois travam" to "Alt: one tap applies to the next key, two lock it", "Autenticando…" to "Authenticating…", "Autenticação cancelada." to "Authentication cancelled.", + "Barra" to "Slash", + "Barra vertical" to "Vertical bar", "Cadastre um servidor na aba Computador." to "Add a server in the Computer tab.", "Caiu: %s" to "Dropped: %s", "Colar %d linhas?" to "Paste %d lines?", "Conectado" to "Connected", "Conexão cancelada" to "Connection cancelled", "Confirme o servidor no aplicativo." to "Confirm the server in the app.", + "Ctrl: um toque vale para a próxima tecla, dois travam" to "Ctrl: one tap applies to the next key, two lock it", "Desconectar todas" to "Disconnect all", "Elas podem ser executadas." to "They may be executed.", "Este servidor só oferece algoritmos antigos que o KeyFlow não usa." to "This server only offers old algorithms that KeyFlow does not use.", "Falha na comunicação com o servidor." to "Communication with the server failed.", "Fechar a sessão %s" to "Close session %s", + "Hífen" to "Hyphen", "Link bloqueado" to "Link blocked", + "Mostrar ou esconder as teclas F1 a F12" to "Show or hide the F1 to F12 keys", "Nenhuma sessão aberta. Toque em + para abrir uma." to "No open session. Tap + to open one.", "Nova sessão" to "New session", "Não achei um app para abrir este link." to "I couldn't find an app to open this link.", @@ -45,7 +51,17 @@ internal val Computador: Map = mapOf( "Sessão encerrada" to "Session ended", "Sessões SSH mantidas conectadas em segundo plano" to "SSH sessions kept connected in the background", "Sessões do Computador" to "Computer sessions", + "Seta para a direita" to "Right arrow", + "Seta para a esquerda" to "Left arrow", + "Seta para baixo" to "Down arrow", + "Seta para cima" to "Up arrow", + "Tecla Esc" to "Esc key", + "Tecla F%d" to "F%d key", + "Tecla Tab" to "Tab key", "Terminal %d" to "Terminal %d", + "Til" to "Tilde", "Toque para reconectar" to "Tap to reconnect", "Usuário ou senha incorretos." to "Wrong username or password.", + "ligada para a próxima tecla" to "on for the next key", + "travada" to "locked", ) diff --git a/app/src/main/java/com/keyflow/i18n/es/Computador.kt b/app/src/main/java/com/keyflow/i18n/es/Computador.kt index 5542afcd..d101e804 100644 --- a/app/src/main/java/com/keyflow/i18n/es/Computador.kt +++ b/app/src/main/java/com/keyflow/i18n/es/Computador.kt @@ -10,20 +10,26 @@ internal val Computador: Map = mapOf( "Abrir este link?" to "¿Abrir este enlace?", "Agente %d" to "Agente %d", "Aguardando a confirmação do servidor…" to "Esperando la confirmación del servidor…", + "Alt: um toque vale para a próxima tecla, dois travam" to "Alt: un toque vale para la siguiente tecla, dos la bloquean", "Autenticando…" to "Autenticando…", "Autenticação cancelada." to "Autenticación cancelada.", + "Barra" to "Barra", + "Barra vertical" to "Barra vertical", "Cadastre um servidor na aba Computador." to "Registra un servidor en la pestaña Computadora.", "Caiu: %s" to "Se cayó: %s", "Colar %d linhas?" to "¿Pegar %d líneas?", "Conectado" to "Conectado", "Conexão cancelada" to "Conexión cancelada", "Confirme o servidor no aplicativo." to "Confirma el servidor en la aplicación.", + "Ctrl: um toque vale para a próxima tecla, dois travam" to "Ctrl: un toque vale para la siguiente tecla, dos la bloquean", "Desconectar todas" to "Desconectar todas", "Elas podem ser executadas." to "Podrían ejecutarse.", "Este servidor só oferece algoritmos antigos que o KeyFlow não usa." to "Este servidor solo ofrece algoritmos antiguos que KeyFlow no usa.", "Falha na comunicação com o servidor." to "Falló la comunicación con el servidor.", "Fechar a sessão %s" to "Cerrar la sesión %s", + "Hífen" to "Guion", "Link bloqueado" to "Enlace bloqueado", + "Mostrar ou esconder as teclas F1 a F12" to "Mostrar u ocultar las teclas F1 a F12", "Nenhuma sessão aberta. Toque em + para abrir uma." to "Ninguna sesión abierta. Toca + para abrir una.", "Nova sessão" to "Nueva sesión", "Não achei um app para abrir este link." to "No encontré una app para abrir este enlace.", @@ -45,7 +51,17 @@ internal val Computador: Map = mapOf( "Sessão encerrada" to "Sesión terminada", "Sessões SSH mantidas conectadas em segundo plano" to "Sesiones SSH mantenidas conectadas en segundo plano", "Sessões do Computador" to "Sesiones del Computador", + "Seta para a direita" to "Flecha derecha", + "Seta para a esquerda" to "Flecha izquierda", + "Seta para baixo" to "Flecha abajo", + "Seta para cima" to "Flecha arriba", + "Tecla Esc" to "Tecla Esc", + "Tecla F%d" to "Tecla F%d", + "Tecla Tab" to "Tecla Tab", "Terminal %d" to "Terminal %d", + "Til" to "Tilde", "Toque para reconectar" to "Toca para reconectar", "Usuário ou senha incorretos." to "Usuario o contraseña incorrectos.", + "ligada para a próxima tecla" to "activada para la siguiente tecla", + "travada" to "bloqueada", ) diff --git a/app/src/main/java/com/keyflow/ui/terminal/EntradaParaTerminal.kt b/app/src/main/java/com/keyflow/ui/terminal/EntradaParaTerminal.kt deleted file mode 100644 index 2230c3c3..00000000 --- a/app/src/main/java/com/keyflow/ui/terminal/EntradaParaTerminal.kt +++ /dev/null @@ -1,14 +0,0 @@ -package com.keyflow.ui.terminal - -import androidx.compose.ui.input.key.KeyEvent -import org.connectbot.terminal.ModifierManager - -/** O que a tela liga ao `Terminal` do termlib para a entrada: interceptação de teclas e Ctrl/Alt pegajosos (a CMP-T14 preenche). */ -class EntradaParaTerminal( - val interceptar: ((KeyEvent) -> Boolean)? = null, - val modificadores: ModifierManager? = null, -) { - companion object { - val Padrao = EntradaParaTerminal() - } -} diff --git a/app/src/main/java/com/keyflow/ui/terminal/TeclasExtras.kt b/app/src/main/java/com/keyflow/ui/terminal/TeclasExtras.kt new file mode 100644 index 00000000..3a12d919 --- /dev/null +++ b/app/src/main/java/com/keyflow/ui/terminal/TeclasExtras.kt @@ -0,0 +1,108 @@ +package com.keyflow.ui.terminal + +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.horizontalScroll +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.heightIn +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.widthIn +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableIntStateOf +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.platform.testTag +import androidx.compose.ui.semantics.Role +import androidx.compose.ui.semantics.contentDescription +import androidx.compose.ui.semantics.role +import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.semantics.stateDescription +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.keyflow.computador.app.EntradaDoTerminal +import com.keyflow.computador.app.EstadoPegajoso +import com.keyflow.computador.app.Tecla +import com.keyflow.i18n.tr +import com.keyflow.ui.theme.LocalKeyFlowPalette +import com.keyflow.ui.theme.SpaceMono + +const val TERMINAL_TECLAS_TAG = "terminal-teclas-extras" +fun teclaExtraTag(id: String) = "terminal-tecla-$id" + +/** Uma tecla extra: o rótulo curto e a descrição para o leitor de tela. [id] estável (usado nos testes). */ +class TeclaExtra(val id: String, val rotulo: String, val descricao: String, val acao: (EntradaDoTerminal) -> Unit, val pegajosa: Boolean = false) + +/** A lista das teclas (CMP-26): primeira linha Esc, Tab, Ctrl, Alt, setas, `| ~ / -`; segunda linha F1–F12. */ +fun teclasExtras(): List = listOf( + TeclaExtra("esc", "Esc", tr("Tecla Esc"), { it.teclaExtra(Tecla.Esc) }), + TeclaExtra("tab", "Tab", tr("Tecla Tab"), { it.teclaExtra(Tecla.Tab) }), + TeclaExtra("ctrl", "Ctrl", tr("Ctrl: um toque vale para a próxima tecla, dois travam"), { it.pegajosos.tocarCtrl() }, pegajosa = true), + TeclaExtra("alt", "Alt", tr("Alt: um toque vale para a próxima tecla, dois travam"), { it.pegajosos.tocarAlt() }, pegajosa = true), + TeclaExtra("esq", "←", tr("Seta para a esquerda"), { it.teclaExtra(Tecla.Esquerda) }), + TeclaExtra("baixo", "↓", tr("Seta para baixo"), { it.teclaExtra(Tecla.Baixo) }), + TeclaExtra("cima", "↑", tr("Seta para cima"), { it.teclaExtra(Tecla.Cima) }), + TeclaExtra("dir", "→", tr("Seta para a direita"), { it.teclaExtra(Tecla.Direita) }), + TeclaExtra("pipe", "|", tr("Barra vertical"), { it.caractereExtra('|') }), + TeclaExtra("til", "~", tr("Til"), { it.caractereExtra('~') }), + TeclaExtra("barra", "/", tr("Barra"), { it.caractereExtra('/') }), + TeclaExtra("hifen", "-", tr("Hífen"), { it.caractereExtra('-') }), +) + +fun teclasDeFuncao(): List = (1..12).map { n -> TeclaExtra("f$n", "F$n", tr("Tecla F%d", n), { it.teclaExtra(Tecla.F(n)) }) } + +/** As teclas extras acima do teclado (CMP-26, 31): alvos de 48 dp, descrição em todas, Ctrl/Alt mostram o estado também por texto. */ +@Composable +fun TeclasExtras(entrada: EntradaDoTerminal, modifier: Modifier = Modifier) { + val palette = LocalKeyFlowPalette.current + var funcoes by remember { mutableStateOf(false) } + var versao by remember { mutableIntStateOf(0) } + val principal = remember { teclasExtras() } + val fs = remember { teclasDeFuncao() } + + @Composable + fun Linha(teclas: List) { + Row(Modifier.horizontalScroll(rememberScrollState()).padding(horizontal = 6.dp), horizontalArrangement = Arrangement.spacedBy(4.dp), verticalAlignment = Alignment.CenterVertically) { + for (t in teclas) { + val estado = when (t.id) { "ctrl" -> entrada.pegajosos.estadoCtrl(); "alt" -> entrada.pegajosos.estadoAlt(); else -> EstadoPegajoso.DESLIGADO } + val textoEstado = when (estado) { EstadoPegajoso.DESLIGADO -> ""; EstadoPegajoso.UMA_VEZ -> tr("ligada para a próxima tecla"); EstadoPegajoso.TRAVADO -> tr("travada") } + Box( + Modifier + .heightIn(min = 48.dp).widthIn(min = 48.dp) + .clip(RoundedCornerShape(8.dp)) + .background(if (estado != EstadoPegajoso.DESLIGADO) palette.tealLight else palette.kbKey) + .border(1.dp, if (estado == EstadoPegajoso.TRAVADO) palette.teal else palette.kbKeyBorder, RoundedCornerShape(8.dp)) + .clickable { t.acao(entrada); versao++ } + .testTag(teclaExtraTag(t.id)) + .semantics { role = Role.Button; contentDescription = t.descricao; if (textoEstado.isNotEmpty()) stateDescription = textoEstado }, + contentAlignment = Alignment.Center, + ) { Text(t.rotulo + if (estado == EstadoPegajoso.TRAVADO) "•" else "", color = palette.fg, fontFamily = SpaceMono, fontSize = 13.sp, modifier = Modifier.padding(horizontal = 8.dp)) } + } + if (teclas === principal) { + Box( + Modifier.heightIn(min = 48.dp).widthIn(min = 48.dp).clip(RoundedCornerShape(8.dp)).background(palette.kbModifier).clickable { funcoes = !funcoes } + .testTag(teclaExtraTag("fn")).semantics { role = Role.Button; contentDescription = tr("Mostrar ou esconder as teclas F1 a F12") }, + contentAlignment = Alignment.Center, + ) { Text(if (funcoes) "F ▾" else "F ▸", color = palette.fg, fontFamily = SpaceMono, fontSize = 13.sp, modifier = Modifier.padding(horizontal = 8.dp)) } + } + } + } + // `versao` força a releitura do estado pegajoso depois de cada toque. + @Suppress("UNUSED_EXPRESSION") versao + Column(modifier.fillMaxWidth().background(palette.kbTray).testTag(TERMINAL_TECLAS_TAG), verticalArrangement = Arrangement.spacedBy(2.dp)) { + Linha(principal) + if (funcoes) Linha(fs) + } +} diff --git a/app/src/main/java/com/keyflow/ui/terminal/TerminalScreen.kt b/app/src/main/java/com/keyflow/ui/terminal/TerminalScreen.kt index 39d20e0d..d75ff4f8 100644 --- a/app/src/main/java/com/keyflow/ui/terminal/TerminalScreen.kt +++ b/app/src/main/java/com/keyflow/ui/terminal/TerminalScreen.kt @@ -25,6 +25,7 @@ import androidx.compose.ui.platform.testTag import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.keyflow.computador.Host +import com.keyflow.computador.app.EntradaDoTerminal import com.keyflow.computador.app.LigacaoEmulador import com.keyflow.computador.app.PoliticaDeColar import com.keyflow.computador.app.PoliticaDeLinks @@ -73,16 +74,15 @@ fun TerminalScreen( onCopiar: (String) -> Unit, lerAreaDeTransferencia: () -> String?, modifier: Modifier = Modifier, - barraDeEntrada: @Composable (LigacaoEmulador) -> Unit = {}, - entradaDoTerminal: EntradaParaTerminal = EntradaParaTerminal.Padrao, ) { val palette = LocalKeyFlowPalette.current val contexto = LocalContext.current val tipo = remember { fonteDoTerminal(contexto) } val ativa = sessoes.firstOrNull { it.id == ativaId } ?: sessoes.firstOrNull() val ligacao = ativa?.let { ligacaoDe(it.id) } + val entrada = remember(ligacao) { ligacao?.let { EntradaDoTerminal(it) } } + val pedidoDeColar by (ligacao?.pedidoDeColar ?: remember { kotlinx.coroutines.flow.MutableStateFlow(null) }).collectAsStateOnMain() val titulos = sessoes.associate { it.id to ligacaoDe(it.id)?.titulo?.value } - var colar by remember { mutableStateOf(null) } var link by remember { mutableStateOf(null) } var linkBloqueado by remember { mutableStateOf(false) } @@ -111,15 +111,9 @@ fun TerminalScreen( keyboardEnabled = true, showSoftKeyboard = true, onHyperlinkClick = { url -> if (PoliticaDeLinks.aceitar(url) != null) link = url.trim() else linkBloqueado = true }, - onPasteRequest = { - val texto = lerAreaDeTransferencia() - if (!texto.isNullOrEmpty()) { - val p = PoliticaDeColar.preparar(texto) - if (p.texto.isNotEmpty()) { if (p.precisaConfirmar) colar = p else ligacao.colar(p.texto) } - } - }, - onInterceptKey = entradaDoTerminal.interceptar, - modifierManager = entradaDoTerminal.modificadores, + onPasteRequest = { lerAreaDeTransferencia()?.takeIf { it.isNotEmpty() }?.let(ligacao::pedirColar) }, + onInterceptKey = entrada!!.interceptar, + modifierManager = entrada.modificadores, ) pedidoOsc52?.let { texto -> AlertDialog( @@ -138,20 +132,20 @@ fun TerminalScreen( } } } - if (ligacao != null) barraDeEntrada(ligacao) + if (entrada != null) TeclasExtras(entrada) AbasDeSessao(sessoes, ativa?.id, hosts, titulos, onSelecionar, onFecharAba, onNovaSessao) } - colar?.let { p -> + pedidoDeColar?.let { p -> AlertDialog( modifier = Modifier.testTag(TERMINAL_COLAR_DIALOGO_TAG), - onDismissRequest = { colar = null }, + onDismissRequest = { ligacao?.cancelarColar() }, title = { Text(tr("Colar %d linhas?", p.linhas)) }, text = { Text(tr("Elas podem ser executadas.")) }, confirmButton = { - TextButton(onClick = { ligacao?.colar(p.texto); colar = null }, modifier = Modifier.testTag(TERMINAL_COLAR_CONFIRMAR_TAG)) { Text(tr("Colar")) } + TextButton(onClick = { ligacao?.confirmarColar() }, modifier = Modifier.testTag(TERMINAL_COLAR_CONFIRMAR_TAG)) { Text(tr("Colar")) } }, - dismissButton = { TextButton(onClick = { colar = null }, modifier = Modifier.testTag(TERMINAL_COLAR_CANCELAR_TAG)) { Text(tr("Cancelar")) } }, + dismissButton = { TextButton(onClick = { ligacao?.cancelarColar() }, modifier = Modifier.testTag(TERMINAL_COLAR_CANCELAR_TAG)) { Text(tr("Cancelar")) } }, ) } link?.let { url -> diff --git a/app/src/test/java/com/keyflow/computador/app/MapaTecladoFisicoTest.kt b/app/src/test/java/com/keyflow/computador/app/MapaTecladoFisicoTest.kt new file mode 100644 index 00000000..fbde7b1a --- /dev/null +++ b/app/src/test/java/com/keyflow/computador/app/MapaTecladoFisicoTest.kt @@ -0,0 +1,153 @@ +package com.keyflow.computador.app + +import org.junit.Assert.assertArrayEquals +import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Assert.assertNull +import org.junit.Assert.assertTrue +import org.junit.Test + +class MapaTecladoFisicoTest { + private fun b(s: String) = s.toByteArray(Charsets.ISO_8859_1) + private val ESC = "\u001b" + private val ctrl = Modificadores(ctrl = true) + private val alt = Modificadores(alt = true) + + private fun mapa(t: Tecla, m: Modificadores = Modificadores.Nenhum, app: Boolean = false) = MapaTecladoFisico.bytes(t, m, app) + + @Test fun ctrlLetraVira0x01a0x1a() { + assertArrayEquals(byteArrayOf(0x03), mapa(Tecla.Caractere('c'), ctrl)) + assertArrayEquals(byteArrayOf(0x01), mapa(Tecla.Caractere('a'), ctrl)) + assertArrayEquals(byteArrayOf(0x1a), mapa(Tecla.Caractere('z'), ctrl)) + assertArrayEquals(byteArrayOf(0x04), mapa(Tecla.Caractere('d'), ctrl)) + } + + @Test fun ctrlAltLetraTemEscNaFrente() { + assertArrayEquals(byteArrayOf(0x1b, 0x03), mapa(Tecla.Caractere('c'), Modificadores(ctrl = true, alt = true))) + } + + @Test fun altLetraViraEscLetra() { + assertArrayEquals(b("${ESC}x"), mapa(Tecla.Caractere('x'), alt)) + assertArrayEquals(b("${ESC}X"), mapa(Tecla.Caractere('x'), Modificadores(alt = true, shift = true))) + } + + @Test fun letraSemModificadorNaoEMapeada() { + assertNull(mapa(Tecla.Caractere('a'))) + assertNull(mapa(Tecla.Caractere('a'), Modificadores(shift = true))) + } + + @Test fun controlesEspeciais() { + assertArrayEquals(byteArrayOf(0x00), mapa(Tecla.Caractere(' '), ctrl)) + assertArrayEquals(byteArrayOf(0x1b), mapa(Tecla.Caractere('['), ctrl)) + assertArrayEquals(byteArrayOf(0x1c), mapa(Tecla.Caractere('\\'), ctrl)) + } + + @Test fun enterTabEscBackspace() { + assertArrayEquals(byteArrayOf(0x0d), mapa(Tecla.Enter)) + assertArrayEquals(byteArrayOf(0x09), mapa(Tecla.Tab)) + assertArrayEquals(b("$ESC[Z"), mapa(Tecla.Tab, Modificadores(shift = true))) + assertArrayEquals(byteArrayOf(0x1b), mapa(Tecla.Esc)) + assertArrayEquals(byteArrayOf(0x7f), mapa(Tecla.Backspace)) + assertArrayEquals(byteArrayOf(0x1b, 0x7f), mapa(Tecla.Backspace, alt)) + assertArrayEquals(b("$ESC[3~"), mapa(Tecla.Delete)) + } + + @Test fun setasNormaisEEmModoDeAplicacao() { + assertArrayEquals(b("$ESC[A"), mapa(Tecla.Cima)) + assertArrayEquals(b("$ESC[B"), mapa(Tecla.Baixo)) + assertArrayEquals(b("$ESC[C"), mapa(Tecla.Direita)) + assertArrayEquals(b("$ESC[D"), mapa(Tecla.Esquerda)) + assertArrayEquals(b("${ESC}OA"), mapa(Tecla.Cima, app = true)) + assertArrayEquals(b("${ESC}OD"), mapa(Tecla.Esquerda, app = true)) + assertArrayEquals(b("${ESC}OH"), mapa(Tecla.Home, app = true)) + assertArrayEquals(b("$ESC[H"), mapa(Tecla.Home)) + assertArrayEquals(b("$ESC[F"), mapa(Tecla.End)) + } + + @Test fun setaComModificadorUsaFormaDoXterm() { + assertArrayEquals(b("$ESC[1;5C"), mapa(Tecla.Direita, ctrl)) + assertArrayEquals(b("$ESC[1;3A"), mapa(Tecla.Cima, alt, app = true)) + assertArrayEquals(b("$ESC[1;2B"), mapa(Tecla.Baixo, Modificadores(shift = true))) + assertArrayEquals(b("$ESC[1;7D"), mapa(Tecla.Esquerda, Modificadores(ctrl = true, alt = true))) + } + + @Test fun paginasEFuncoes() { + assertArrayEquals(b("$ESC[5~"), mapa(Tecla.PageUp)) + assertArrayEquals(b("$ESC[6~"), mapa(Tecla.PageDown)) + assertArrayEquals(b("${ESC}OP"), mapa(Tecla.F(1))) + assertArrayEquals(b("${ESC}OS"), mapa(Tecla.F(4))) + assertArrayEquals(b("$ESC[15~"), mapa(Tecla.F(5))) + assertArrayEquals(b("$ESC[17~"), mapa(Tecla.F(6))) + assertArrayEquals(b("$ESC[21~"), mapa(Tecla.F(10))) + assertArrayEquals(b("$ESC[23~"), mapa(Tecla.F(11))) + assertArrayEquals(b("$ESC[24~"), mapa(Tecla.F(12))) + assertArrayEquals(b("$ESC[15;5~"), mapa(Tecla.F(5), ctrl)) + assertArrayEquals(b("$ESC[1;2P"), mapa(Tecla.F(1), Modificadores(shift = true))) + } + + @Test fun todasAsTeclasSaemPeloFiltroDeRespostas() { + // O que o mapa produz nunca é barrado pelo filtro de saída (senão a tecla morreria em silêncio). + val filtro = FiltroDeRespostas() + val teclas = listOf(Tecla.Enter, Tecla.Tab, Tecla.Esc, Tecla.Backspace, Tecla.Delete, Tecla.Insert, Tecla.Cima, Tecla.Baixo, Tecla.Esquerda, Tecla.Direita, Tecla.Home, Tecla.End, Tecla.PageUp, Tecla.PageDown) + + (1..12).map { Tecla.F(it) } + ('a'..'z').map { Tecla.Caractere(it) } + for (t in teclas) for (m in listOf(Modificadores.Nenhum, ctrl, alt, Modificadores(ctrl = true, alt = true, shift = true))) for (app in listOf(false, true)) { + val x = mapa(t, m, app) ?: continue + assertArrayEquals("$t $m $app", x, filtro.filtrar(x)) + } + } + + @Test fun duplicataDoMesmoEventoEIgnoradaMasTeclasIguaisSeguidasNao() { + val d = DeduplicadorDeTeclas() + assertFalse(d.duplicada(0, 29, 1000, 1000, 0)) + assertTrue("mesmo evento por outro caminho", d.duplicada(0, 29, 1000, 1000, 0)) + assertFalse("outra pressão do 'a' (outro downTime)", d.duplicada(0, 29, 1500, 1500, 0)) + assertFalse("tecla segurada repetindo", d.duplicada(0, 29, 1500, 1540, 1)) + assertFalse("soltar é outro evento", d.duplicada(1, 29, 1500, 1600, 0)) + assertTrue(d.duplicada(1, 29, 1500, 1600, 0)) + } + + @Test fun pegajososUmToqueUmaVezDoisTravamTresSoltam() { + val p = ModificadoresPegajosos() + assertEquals(Modificadores.Nenhum, p.atuais()) + p.tocarCtrl() + assertEquals(EstadoPegajoso.UMA_VEZ, p.estadoCtrl()) + assertTrue(p.atuais().ctrl) + p.consumir() + assertFalse("uma vez se desfaz", p.atuais().ctrl) + p.tocarCtrl(); p.tocarCtrl() + assertEquals(EstadoPegajoso.TRAVADO, p.estadoCtrl()) + p.consumir() + assertTrue("travado fica", p.atuais().ctrl) + p.tocarCtrl() + assertEquals(EstadoPegajoso.DESLIGADO, p.estadoCtrl()) + p.tocarAlt() + assertEquals(Modificadores(alt = true), p.atuais()) + } + + @Test fun guardaSeguraTextoComQuebraMasNaoOEnterNemOsEscapes() { + val g = GuardaDeLinhas(janelaMs = 1000) + fun av(s: String, t: Long = 0) = g.avaliar(s.toByteArray(), t) + assertTrue(av("\r") === GuardaDeLinhas.Decisao.Enviar) + assertTrue(av("ls -la") === GuardaDeLinhas.Decisao.Enviar) + assertTrue(av("olá mundo") === GuardaDeLinhas.Decisao.Enviar) + assertTrue(av("${ESC}[200~a\nb${ESC}[201~") === GuardaDeLinhas.Decisao.Enviar) + val segurou = av("olá\nmundo") + assertTrue(segurou is GuardaDeLinhas.Decisao.Segurar) + assertEquals("olá\nmundo", (segurou as GuardaDeLinhas.Decisao.Segurar).texto) + // Colagem já confirmada passa pela janela e volta a segurar depois dela. + g.liberar(10_000) + assertTrue(av("a\nb", 10_500) === GuardaDeLinhas.Decisao.Enviar) + assertTrue(av("a\nb", 11_500) is GuardaDeLinhas.Decisao.Segurar) + } + + @Test fun modoDeAplicacaoVemDoDeckmDoServidor() { + val f = FiltroDaSaidaDoServidor() + assertFalse(f.modoAplicacaoDasSetas) + f.processar("${ESC}[?1h".toByteArray()) + assertTrue(f.modoAplicacaoDasSetas) + f.processar("${ESC}[?25l${ESC}[?1;7l".toByteArray()) + assertFalse(f.modoAplicacaoDasSetas) + f.processar("${ESC}[?1049h".toByteArray()) + assertFalse("1049 não é 1", f.modoAplicacaoDasSetas) + } +} diff --git a/app/src/test/java/com/keyflow/computador/app/TeclasExtrasTest.kt b/app/src/test/java/com/keyflow/computador/app/TeclasExtrasTest.kt new file mode 100644 index 00000000..71186d28 --- /dev/null +++ b/app/src/test/java/com/keyflow/computador/app/TeclasExtrasTest.kt @@ -0,0 +1,29 @@ +package com.keyflow.computador.app + +import com.keyflow.ui.terminal.teclasDeFuncao +import com.keyflow.ui.terminal.teclasExtras +import org.junit.Assert.assertEquals +import org.junit.Assert.assertTrue +import org.junit.Test + +/** CMP-26 e CMP-31: as teclas extras que o spec lista, todas com descrição para o leitor de tela. */ +class TeclasExtrasTest { + @Test fun primeiraLinhaTemAsTeclasDoSpec() { + assertEquals(listOf("esc", "tab", "ctrl", "alt", "esq", "baixo", "cima", "dir", "pipe", "til", "barra", "hifen"), teclasExtras().map { it.id }) + assertEquals(listOf("Esc", "Tab", "Ctrl", "Alt", "←", "↓", "↑", "→", "|", "~", "/", "-"), teclasExtras().map { it.rotulo }) + } + + @Test fun segundaLinhaTemF1AteF12() { + assertEquals((1..12).map { "F$it" }, teclasDeFuncao().map { it.rotulo }) + } + + @Test fun todaTeclaTemDescricaoUnica() { + val todas = teclasExtras() + teclasDeFuncao() + assertTrue(todas.all { it.descricao.isNotBlank() }) + assertEquals(todas.size, todas.map { it.descricao }.toSet().size) + } + + @Test fun apenasCtrlEAltSaoPegajosas() { + assertEquals(listOf("ctrl", "alt"), (teclasExtras() + teclasDeFuncao()).filter { it.pegajosa }.map { it.id }) + } +} From ba999f3c645dfc22dabbfc806ef985d3844dee0c Mon Sep 17 00:00:00 2001 From: Yan Lucas Date: Sat, 31 Oct 2026 14:31:52 +0000 Subject: [PATCH 04/12] =?UTF-8?q?feat(computador):=20painel=20de=20hosts?= =?UTF-8?q?=20com=20teste=20de=20conex=C3=A3o=20real?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hosts · Chaves · Sessões, cartões e modal do host (autenticação, agente com aviso e confirmação, imagens, impressão digital conhecida), Testar conexão de verdade com confiança efêmera, exclusão com confirmação e fim do delay simulado. Fonte do terminal em app/licenses, status das tasks, rastreabilidade e lição da frente. --- .specs/features/computer-terminal/spec.md | 32 +-- .specs/features/computer-terminal/tasks.md | 6 +- .../project/licoes/2026-10-31-computador-d.md | 40 +++ app/licenses/README.md | 1 + .../keyflow/ui/config/ComputadorHostsTest.kt | 193 +++++++++++++ .../com/keyflow/computador/EdicaoDeHost.kt | 31 +++ .../computador/app/AcoesDeHostReais.kt | 61 +++++ .../computador/app/RepositorioComputador.kt | 1 + .../computador/app/TestadorDeConexao.kt | 55 ++++ .../computador/app/TextosComputador.kt | 22 ++ .../computador/sessao/GerenciadorDeSessoes.kt | 7 + .../java/com/keyflow/i18n/en/Computador.kt | 56 ++++ .../main/java/com/keyflow/i18n/en/Fluxos.kt | 14 - .../java/com/keyflow/i18n/es/Computador.kt | 56 ++++ .../main/java/com/keyflow/i18n/es/Fluxos.kt | 14 - .../keyflow/ui/config/ComputadorHostModal.kt | 255 ++++++++++++++++++ .../com/keyflow/ui/config/ComputadorHosts.kt | 118 ++++++++ .../com/keyflow/ui/config/ComputadorPanel.kt | 186 +++---------- .../keyflow/computador/EdicaoDeHostTest.kt | 57 ++++ .../app/ComputadorPanelArquiteturaTest.kt | 20 ++ .../computador/app/TestadorDeConexaoTest.kt | 85 ++++++ .../sessao/GerenciadorDeSessoesTest.kt | 16 ++ 22 files changed, 1125 insertions(+), 201 deletions(-) create mode 100644 .specs/project/licoes/2026-10-31-computador-d.md create mode 100644 app/src/androidTest/java/com/keyflow/ui/config/ComputadorHostsTest.kt create mode 100644 app/src/main/java/com/keyflow/computador/EdicaoDeHost.kt create mode 100644 app/src/main/java/com/keyflow/computador/app/AcoesDeHostReais.kt create mode 100644 app/src/main/java/com/keyflow/computador/app/TestadorDeConexao.kt create mode 100644 app/src/main/java/com/keyflow/ui/config/ComputadorHostModal.kt create mode 100644 app/src/main/java/com/keyflow/ui/config/ComputadorHosts.kt create mode 100644 app/src/test/java/com/keyflow/computador/EdicaoDeHostTest.kt create mode 100644 app/src/test/java/com/keyflow/computador/app/ComputadorPanelArquiteturaTest.kt create mode 100644 app/src/test/java/com/keyflow/computador/app/TestadorDeConexaoTest.kt diff --git a/.specs/features/computer-terminal/spec.md b/.specs/features/computer-terminal/spec.md index c8a25dc2..8fdb9078 100644 --- a/.specs/features/computer-terminal/spec.md +++ b/.specs/features/computer-terminal/spec.md @@ -386,11 +386,11 @@ Nenhuma. Q1–Q13 foram respondidas em 29/10 (D12–D24). Q8, Q9, Q10, Q11 e Q13 | CMP-02 | P0 | CMP-T1 | Verified — termlib 0.3.14/fork e cbssh 0.6.6; 126 componentes com POMs/hashes/licenças e 4/4 catracas; build/lint, 2.709 JVM e 20 instrumentados verdes; limites e riscos na [lição](../../project/licoes/2026-10-30-computador-a.md) | | CMP-03 | P0 | CMP-T1, CMP-T3 | Verified — JNI do CI com SHA fixado; 3 ABIs no APK, ELF/ZIP 16 KB e hashes conferidos, 6/6 catracas; [lição](../../project/licoes/2026-10-30-computador-a.md) | | CMP-04 | P0 | CMP-T4 | Verified (2026-10-30) | -| CMP-05 | P1-A | CMP-T5, CMP-T11, CMP-T15 | Parcial — modelo/codec (CMP-T5) verificados; faltam T11 e T15 | +| CMP-05 | P1-A | CMP-T5, CMP-T11, CMP-T15 | Parcial — modelo/codec (T5), persistência (T11) e gravação pelo modal (`EdicaoDeHost`, T15) verificados; faltam a aba ligada na tela (T17) | | CMP-06 | P1-A | CMP-T5, CMP-T11 | Parcial — migração pura (CMP-T5) verificada; falta T11 | -| CMP-07 | P1-A | CMP-T11, CMP-T15 | Pending | -| CMP-08 | P1-A | CMP-T9, CMP-T15 | Pending | -| CMP-09 | P1-A | CMP-T5, CMP-T15 | Parcial — regra `podeMarcar` (CMP-T5) verificada; falta T15 | +| CMP-07 | P1-A | CMP-T11, CMP-T15 | Verificada (T11 e T15: exclusão com confirmação, aviso de nova impressão ao mudar endereço/porta) | +| CMP-08 | P1-A | CMP-T9, CMP-T15 | Verificada (T9 + `TestadorDeConexao` contra o `SshFixtureServer`; modal mostra impressão, método e latência; sem `delay`) | +| CMP-09 | P1-A | CMP-T5, CMP-T15 | Verificada (regra T5 + aviso e confirmação no modal, motivo quando bloqueado, desligar fecha sessões do agente) | | CMP-10 | P1-B | CMP-T7, CMP-T8, CMP-T16 | Parcial — geração no Keystore/envelope (CMP-T8) implementada; falta T16 | | CMP-11 | P1-B | CMP-T2, CMP-T8, CMP-T16 | Parcial — sonda e envelope (CMP-T8); falta T2 e T16 | | CMP-12 | P1-B | CMP-T7, CMP-T16 | Parcial — importação (CMP-T7) verificada; falta T16 | @@ -404,20 +404,20 @@ Nenhuma. Q1–Q13 foram respondidas em 29/10 (D12–D24). Q8, Q9, Q10, Q11 e Q13 | CMP-20 | P1-C | CMP-T9, CMP-T16 | Pending | | CMP-21 | P1-C | CMP-T9, CMP-T16 | Pending | | CMP-22 | P1-C | CMP-T10, CMP-T20 | Parcial — reconexão, backoff, biometria e buffer (CMP-T10) verificados; falta a tela | -| CMP-23 | P1-C | CMP-T9, CMP-T13 | Pending | -| CMP-24 | P1-D | CMP-T13, CMP-T17 | Pending | -| CMP-25 | P1-D | CMP-T13 | Pending | -| CMP-26 | P1-D | CMP-T14 | Pending | -| CMP-27 | P1-D | CMP-T14 | Pending | -| CMP-28 | P1-D | CMP-T13 | Pending | -| CMP-29 | P1-D | CMP-T10, CMP-T13 | Parcial — limites 8/3 e ociosidade do agente (CMP-T10) verificados | -| CMP-30 | P1-D | CMP-T13 | Pending | -| CMP-31 | P1-D | CMP-T14, CMP-T17 | Pending | +| CMP-23 | P1-C | CMP-T9, CMP-T13 | Verificada (`window-change` com colunas, linhas e pixels ao girar, `TerminalActivityTest`) | +| CMP-24 | P1-D | CMP-T13, CMP-T17 | Parcial — `TerminalActivity`, abas, barra de estado e Voltar sem fechar sessões verificados (T13); falta a lista de sessões na aba (T17) | +| CMP-25 | P1-D | CMP-T13 | Verificada, salvo mouse (fica para a Fase 2/T27) e tamanho de fonte persistido (termlib sem retorno) | +| CMP-26 | P1-D | CMP-T14 | Verificada (`MapaTecladoFisicoTest`, `TeclasExtrasTest`) | +| CMP-27 | P1-D | CMP-T14 | Verificada com o KeyFlow IME como teclado atual via `InputConnection`; Gboard e toque real: T21 (manual) | +| CMP-28 | P1-D | CMP-T13 | Verificada (colar e ditado com quebra de linha pedem confirmação; `ESC[201~` removido até não sobrar) | +| CMP-29 | P1-D | CMP-T10, CMP-T13 | Verificada (9ª sessão mostra o motivo; `onTrimMemory` não perde o texto) | +| CMP-30 | P1-D | CMP-T13 | Verificada (sem `FLAG_SECURE`, teste de código e de janela; fonte JetBrains Mono Nerd, OFL; tamanho de fonte não persiste) | +| CMP-31 | P1-D | CMP-T14, CMP-T17 | Parcial — alvos de 48 dp e `contentDescription` nas abas e teclas extras, estado por texto (T13/T14); falta T17 | | CMP-32 | P1-E | CMP-T12, CMP-T20 | Parcial — serviço `specialUse`, notificação só com contagem (CMP-T12) verificados | | CMP-33 | P1-E | CMP-T12, CMP-T19 | Parcial — manifesto, `property` e checklist da Play (CMP-T12); declaração no Console é [YAN] | | CMP-34 | P1-E | CMP-T10, CMP-T12 | Parcial — serviço sobe com a 1ª sessão e cai com a última (CMP-T12); falta a tela | -| CMP-35 | P1-F | CMP-T13 | Pending | -| CMP-36 | P1-F | CMP-T10, CMP-T13 | Parcial — buffer só em memória (CMP-T10) verificado; falta o emulador (T13) | +| CMP-35 | P1-F | CMP-T13 | Verificada (`SequenciasHostisTest` com a gravação hostil, `FiltroDaSaidaDoServidorTest`, respostas do emulador real em `LigacaoEmuladorTest`) | +| CMP-36 | P1-F | CMP-T10, CMP-T13 | Verificada (texto e scrollback só em memória; emulador no registro do processo) | | CMP-37 | P2-G | CMP-T22 | Pending | | CMP-38 | P2-G | CMP-T23 | Pending | | CMP-39 | P2-G | CMP-T23 | Pending | @@ -440,7 +440,7 @@ Nenhuma. Q1–Q13 foram respondidas em 29/10 (D12–D24). Q8, Q9, Q10, Q11 e Q13 | CMP-56 | P3-H | CMP-T32, CMP-T35 | Pending | | CMP-57 | P3-H | CMP-T19, CMP-T33, CMP-T36 | Pending | | CMP-58 | P3-H | CMP-T31, CMP-T35 | Pending | -| CMP-59 | P2-I | CMP-T15, CMP-T17 | Pending | +| CMP-59 | P2-I | CMP-T15, CMP-T17 | Parcial — seção Hosts pronta (T15), Chaves e Sessões são avisos até T16/T17 | | CMP-60 | P2-I | CMP-T17 | Pending | | CMP-61 | P2-I | CMP-T15, CMP-T16, CMP-T33 | Pending | | CMP-62 | P2-I | CMP-T5, CMP-T31 | Parcial — regra de arquitetura `computador/` (CMP-T5) ativa; falta T31 | diff --git a/.specs/features/computer-terminal/tasks.md b/.specs/features/computer-terminal/tasks.md index 0ac30bff..e13cd46e 100644 --- a/.specs/features/computer-terminal/tasks.md +++ b/.specs/features/computer-terminal/tasks.md @@ -231,7 +231,7 @@ para permitir essa verificação sem reescrever a branch; detalhes na [lição]( o `PLAYSTORE_CHECKLIST.md` tem o texto da justificativa; com a opção desligada (padrão) o teste não vê `WakeLock`; com ela ligada, há `PARTIAL_WAKE_LOCK` enquanto a sessão do usuário está aberta e o painel mostra o aviso de bateria. O `ManifestSessoesTest` segue conferindo `specialUse`, a permissão do serviço e a `property`. - **Tests**: unit + instrumentado. **Gate**: `quick` + `pool instrumentar com.keyflow.computador.app.SessoesServiceTest`. **Commit**: `feat(computador): serviço em primeiro plano para manter as sessões`. -### CMP-T13 — O terminal na tela: `TerminalActivity`, emulador, abas e segurança das sequências — **Status: pendente** +### CMP-T13 — O terminal na tela: `TerminalActivity`, emulador, abas e segurança das sequências — **Status: concluída em 2026-10-31 (ver a lição computador-d: imagens ficam Off até a Fase 2; sem persistir o tamanho da fonte)** - **What**: `TerminalActivity` (própria, `exported=false`, sem anúncios, `adjustResize`, borda a borda) e `TerminalScreen` (Compose) com o `Terminal` do termlib; `LigacaoEmulador` (bytes do cbssh → `writeInput`; `onKeyboardInput` → `escrever`; `onResize` → `resizeTerminal` com pixels), abas de sessão (`[Terminal 1][Agente 2 ●][+]`), barra de estado da conexão (Conectando… / Reconectando… / Caiu), zoom por pinça, seleção, colar (`pasteText`), links OSC 8 com confirmação; **segurança**: respostas do emulador limitadas à lista de permitidos (CMP-35), OSC 52 e título tratados, colar com várias linhas pede confirmação sem bracketed paste e remove `ESC[201~`. A activity **não** pede `FLAG_SECURE` e não há opção que ligue (D17); um teste falha se pedir. Fonte com glifos Nerd (D16): licença conferida, OFL aceitável; se não for OFL nem compatível com Apache-2.0, **não entra** e a task registra a monoespaçada do sistema. Scrollback conforme a CMP-T1 (hoje 1 000 linhas no termlib). - **Where**: `computador/app/{TerminalActivity,LigacaoEmulador,FiltroDeRespostas}.kt`, `ui/terminal/{TerminalScreen,AbasDeSessao,BarraDeEstado}.kt`, fonte em `res/font/` com a licença em `app/licenses/` (ou a monoespaçada do sistema, se a licença não servir); testes `LigacaoEmuladorTest`, `FiltroDeRespostasTest`, `SequenciasHostisTest` (JVM com a gravação "hostil"), `TerminalScreenTest` (instrumentado). @@ -241,7 +241,7 @@ para permitir essa verificação sem reescrever a branch; detalhes na [lição]( `Back` sai da activity **sem** fechar as sessões; fechar a aba fecha a sessão; 9ª sessão mostra o motivo; `onTrimMemory` com a activity invisível não perde o scrollback de texto; um teste falha se a activity pedir `FLAG_SECURE`; a fonte embutida tem glifos Nerd e licença OFL ou compatível com Apache-2.0, ou a lição registra a monoespaçada do sistema. - **Tests**: unit + instrumentado. **Gate**: `quick` + `pool instrumentar com.keyflow.ui.terminal.TerminalScreenTest com.keyflow.computador.app.LigacaoEmuladorTest`. **Commit**: `feat(computador): terminal na tela com abas e proteção contra sequências do servidor`. -### CMP-T14 — Entrada: KeyFlow IME, Gboard, teclado físico, teclas extras e ditado — **Status: pendente** +### CMP-T14 — Entrada: KeyFlow IME, Gboard, teclado físico, teclas extras e ditado — **Status: concluída em 2026-10-31 (Gboard e toque real no KeyFlow IME ficam para a T21 manual)** - **What**: teclas extras (Esc, Tab, Ctrl e Alt "pegajosos", setas, `|`, `~`, `/`, `-`, F1–F12 numa segunda linha) em Compose acima do teclado; mapeamento de teclado físico (Ctrl+letra, Alt, Home/End, PageUp/Down, F-keys); o campo de entrada do terminal conversa com o **KeyFlow IME** sem duplicar caractere nem deixar composição pendurada (`TYPE_NULL`; ver "bug do Termius" no Bloco 1 do `DEVELOPMENT-ORDER.md`), e o **ditado da orbe** insere o texto transcrito como entrada (nunca acrescenta Enter; quebra de linha ditada segue a regra de colar do CMP-28). - **Where**: `ui/terminal/{TeclasExtras,MapaTecladoFisico}.kt`, `computador/app/EntradaDoTerminal.kt`, ajustes mínimos em `ime/KeyFlowKeyboardService.kt` **só se a T1 provar defeito** (registrar `SPEC_DEVIATION`); testes `MapaTecladoFisicoTest`, `TeclasExtrasTest`, `EntradaTerminalImeTest` (instrumentado com o KeyFlow IME). @@ -253,7 +253,7 @@ para permitir essa verificação sem reescrever a branch; detalhes na [lição]( ### Fase 1D — Telas -### CMP-T15 — Painel Hosts: lista, modal, "Testar conexão" real e "pode ser usado pelo agente" — **Status: pendente** +### CMP-T15 — Painel Hosts: lista, modal, "Testar conexão" real e "pode ser usado pelo agente" — **Status: concluída em 2026-10-31** - **What**: `ComputadorPanel` reescrito com segmentado **Hosts · Chaves · Sessões** (`ComputadorHosts`): cartões de host (nome, `usuário@host:porta`, tipo de auth, chip "Agente: permitido/não", estado da sessão), "+ Novo host", modal do host (campos, escolha da chave/senha, interruptor "Pode ser usado pelo agente" com o aviso e a confirmação do CMP-09, "Testar conexão" **real** pela T9, impressão digital conhecida, esquecer servidor, excluir com confirmação). Remove o conteúdo antigo (segmentado SSH/Local, o `delay(600)`, a chave colada num campo). Local **some** da interface. A aba ainda **não** sai do "Em breve" (T17). - **Where**: `ui/config/{ComputadorPanel,ComputadorHosts,ComputadorHostModal}.kt`, `i18n/{en,es}/Computador.kt`, registro em `TranslationsEn/Es`; testes `ComputadorHostsTest`. diff --git a/.specs/project/licoes/2026-10-31-computador-d.md b/.specs/project/licoes/2026-10-31-computador-d.md new file mode 100644 index 00000000..80f9fbc9 --- /dev/null +++ b/.specs/project/licoes/2026-10-31-computador-d.md @@ -0,0 +1,40 @@ +# 2026-10-31 — Computador D: terminal na tela, entrada e painel de hosts (CMP-T13..T15) + +Branch `equipe/computador-d` (base: `equipe/computador-c` + `origin/main` com #89 e #92). Mais os P3 da revisão do #92 num commit à parte. + +## O que entrou +- **T13** `computador/app/{TerminalActivity,LigacaoEmulador,EmuladoresDeSessao,ComputadorApp,FiltroDeRespostas,...}` e `ui/terminal/{TerminalScreen,AbasDeSessao,BarraDeEstado}`: + o emulador mora num registro do processo (girar ou voltar não perde a tela), os bytes do servidor passam por `FiltroDaSaidaDoServidor` e a saída do emulador por `FiltroDeRespostas`. + Fonte **JetBrains Mono Nerd Font Mono Regular** (OFL 1.1, `assets/fonts`, licença em `app/licenses`). A bancada `TerminalSpikeActivity` e o `TerminalSpikeTest` saíram. +- **T14** `MapaTecladoFisico` (xterm, DECCKM lido do próprio fluxo do servidor), `DeduplicadorDeTeclas` (o `aa`), `ModificadoresPegajosos`, `GuardaDeLinhas` (ditado com quebra de linha vira confirmação) e `TeclasExtras`. +- **T15** `ComputadorPanel` reescrito (Hosts · Chaves · Sessões), `ComputadorHosts`, `ComputadorHostModal`, `EdicaoDeHost` (regra pura), `TestadorDeConexao` (confiança efêmera: testar nunca passa a confiar) e `AcoesDeHostReais`. + +## Lições +- **Origem das respostas**: a flag de origem não serve (T1). O filtro olha **o que é**: lista fechada de teclas e respostas na saída; na entrada consome ENQ, DECRQSS, `CSI 20/21 t`, `OSC 21` e `OSC 52 ?`. + O risco novo é a **junção**: remover o meio de uma sequência pode emendar as pontas numa sequência proibida (`ESC[2` + ENQ + `1t`). Regra: byte que não pertence ao CSI/OSC/DCS em curso **descarta** o trecho segurado (nunca o emite). O teste por sorteio achou 3 furos (ESC dentro de DCS, ENQ dentro de string, link com caractere de formato bidi). +- **Colar**: remover `ESC[201~` em uma passada deixa `ESC ESC[201~[201~` virar a marca de novo; a remoção repete até não sobrar. +- **Ordem**: o termlib processa texto de vários caracteres numa thread própria e posta o callback depois; tecla mapeada pelo app (Enter, Backspace) que vá direto para a fila passa à frente. `LigacaoEmulador.enviar` posta com 40 ms de atraso, igual para todas. **Limite conhecido**: entradas dos dois caminhos no mesmo instante podem trocar de ordem; uma pessoa digitando não chega perto. +- **kitty `a=q`** só responde com imagens ligadas; na T13 elas ficam `Off` (a política por host é da Fase 2), então o instrumentado não exige o `OK`. +- `ConfigModal` já rola o conteúdo: `Column(verticalScroll)` dentro dele estoura por altura infinita. O `Column` do modal junta (merge) os filhos: testes de texto com `testTag` usam `useUnmergedTree = true`. +- `createComposeRule` depois de `ActivityScenario` singleTask no mesmo processo falhou ("No compose hierarchies"); os testes de tela e de activity ficaram em classes separadas e a intent leva `CLEAR_TASK`. +- Strings do núcleo (`CausaSsh`, `MotivoHost`, `MotivoAgente`, `MotivoRecusa`) viram texto por `when` exaustivo com `tr("…")` literal em `TextosComputador.kt` (o `TranslationsTest` só enxerga literais). + +## SPEC_DEVIATION / pendente +- **Gboard e toque no KeyFlow IME de verdade**: o instrumentado usa o `InputConnection` real do campo com o KeyFlow IME como teclado atual (`ime set`); o toque nas teclas e o Gboard ficam para a T21. +- **SSH real nos instrumentados**: o `SshFixtureServer` é JVM e o `pool instrumentar` não sobe o fixture; os instrumentados usam `ConexaoFalsa`. O SSH real (T9) e o `TestadorDeConexao` rodam contra o fixture nos unitários. +- **Tamanho da fonte por pinça não persiste** (o termlib não devolve o valor) e **o título da aba** vem do nosso filtro (o termlib 0.3.14 não o publica). +- **"Permitir neste host" do OSC 52** não existe (padrão negar; só "permitir desta vez"): exigiria campo novo no `Host`. +- **Imagens** (kitty, iTerm2, sixel) seguem desligadas no emulador até a Fase 2. **Mouse**: não ligado. +- **Licença da fonte**: o arquivo é OFL, mas o README do Nerd Fonts lista um conjunto de ícones ("Font Logos") como "unlicensed". Decisão do Yan se isso basta; trocar por uma subfonte sem esse conjunto é possível. +- `InteracaoDoApp` recusa tudo enquanto não houver tela (T16): nenhuma tela do app abre sessão sozinha ainda (a aba continua "Em breve"). +- A aba **não** sai do "Em breve" (T17); `ComputadorPanel` só é exercitado pelos testes. + +## Mutações (uma por task, vermelho confirmado) +T13 `FiltroDeRespostas` deixando passar `OSC 52` (`SequenciasHostisTest`); T14 `Ctrl+letra` sem o `+1` (`MapaTecladoFisicoTest`); T15 `EdicaoDeHost` sem a `RegraAgente` (`EdicaoDeHostTest`). Todas revertidas. + +## Gates +Unitários, `lintDebug` e `assembleDebugAndroidTest` verdes. Instrumentados: `TerminalScreenTest` 3/3, `TerminalActivityTest` 4/4 (inclui girar a tela → `window-change`), `LigacaoEmuladorTest` 10/10, `ComputadorHostsTest` 9/9, `ChavesAndroidTest` (inclui o P3 do cofre que lança na gravação) verde. +O emulador chegou a ficar com a tela apagada numa rodada ("No compose hierarchies" em tudo): não mexi no SystemUI nem no keyguard, e a rodada seguinte passou. + +## P3 do #92 +`invalidar()` protegido (marca em memória se o cofre falhar), `observarPrimeiraSessao` inscreve antes de conferir as vivas (`onSubscription`), contrato dos coletores no `GerenciadorDeSessoes`, `ipVersion` do builder no `ConexaoCbssh` e relógio de 45 s que pausa enquanto o usuário decide. diff --git a/app/licenses/README.md b/app/licenses/README.md index 96747bfa..fa51c6dd 100644 --- a/app/licenses/README.md +++ b/app/licenses/README.md @@ -4,6 +4,7 @@ |---|---|---| | Space Grotesk (fonte) | SIL OFL 1.1 | `OFL_SpaceGrotesk.txt` | | Space Mono (fonte) | SIL OFL 1.1 | `OFL_SpaceMono.txt` | +| JetBrains Mono Nerd Font Mono Regular v3.5.1 (fonte do terminal; JetBrains Mono 2.304 + ícones Nerd Fonts) | SIL OFL 1.1 (ícones: MIT, Apache-2.0, CC BY 4.0, OFL; ver README do Nerd Fonts) | `OFL_JetBrainsMonoNerdFont.txt` | | sherpa-onnx 1.13.8 (AAR recompilado sem TTS, reconhecimento de voz no aparelho) | Apache-2.0 | `Apache-2.0_sherpa-onnx.txt` | | ONNX Runtime (`libonnxruntime.so`, dentro do AAR do sherpa-onnx) | MIT | `MIT_onnxruntime.txt` | | Whisper base/small (OpenAI) — modelos baixados sob demanda | MIT (código e pesos, repositório oficial) | `MIT_whisper.txt` | diff --git a/app/src/androidTest/java/com/keyflow/ui/config/ComputadorHostsTest.kt b/app/src/androidTest/java/com/keyflow/ui/config/ComputadorHostsTest.kt new file mode 100644 index 00000000..83d7442c --- /dev/null +++ b/app/src/androidTest/java/com/keyflow/ui/config/ComputadorHostsTest.kt @@ -0,0 +1,193 @@ +package com.keyflow.ui.config + +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.setValue +import androidx.compose.ui.test.assertIsDisplayed +import androidx.compose.ui.test.hasText +import androidx.compose.ui.test.junit4.createComposeRule +import androidx.compose.ui.test.onNodeWithTag +import androidx.compose.ui.test.performClick +import androidx.compose.ui.test.performScrollTo +import androidx.compose.ui.test.performTextInput +import androidx.compose.ui.test.performTextReplacement +import androidx.test.ext.junit.runners.AndroidJUnit4 +import com.keyflow.computador.AutenticacaoHost +import com.keyflow.computador.ChaveDoServidor +import com.keyflow.computador.ConfigHosts +import com.keyflow.computador.EdicaoDeHost +import com.keyflow.computador.ErroHost +import com.keyflow.computador.Host +import com.keyflow.computador.ImpressaoDigital +import com.keyflow.computador.PoliticaAgente +import com.keyflow.computador.ResultadoEdicao +import com.keyflow.computador.ssh.CausaSsh +import com.keyflow.computador.ssh.ResultadoTeste +import com.keyflow.ui.theme.KeyFlowTheme +import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Assert.assertTrue +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith + +/** CMP-05, 07, 08, 09, 59, 61: o painel de hosts com a regra de gravação de verdade e um teste de conexão de mentira. */ +@RunWith(AndroidJUnit4::class) +class ComputadorHostsTest { + @get:Rule val regra = createComposeRule() + + private class Acoes(inicial: List = emptyList()) : AcoesDeHost { + var hosts by mutableStateOf(ConfigHosts(inicial)) + val excluidos = mutableListOf() + val agenteDesligadoEm = mutableListOf() + var resultadoDoTeste: ResultadoTeste = ResultadoTeste.Falhou(CausaSsh.RECUSADA) + val testados = mutableListOf>() + val senhas = mutableMapOf() + + override suspend fun salvar(host: Host, senha: String?): List = when (val r = EdicaoDeHost.aplicar(hosts, host)) { + is ResultadoEdicao.Erros -> r.erros + is ResultadoEdicao.Ok -> { hosts = r.config; senha?.let { senhas[r.host.id] = it }; emptyList() } + } + override suspend fun excluir(host: Host) { excluidos += host.id; hosts = ConfigHosts(hosts.hosts.filter { it.id != host.id }) } + override suspend fun testar(host: Host, senha: String?): ResultadoTeste { testados += host to senha; return resultadoDoTeste } + override fun impressoesConhecidas(host: Host): List = emptyList() + override fun esquecerServidor(host: Host) = Unit + override suspend fun desligarAgente(host: Host) { agenteDesligadoEm += host.id } + override fun novoId(existentes: Collection) = "%08x".format(existentes.size + 100) + } + + private fun mostrar(acoes: Acoes, dark: Boolean = false) { + regra.setContent { KeyFlowTheme(dark = dark) { ComputadorPanel(hosts = acoes.hosts, chaves = emptyList(), sessoes = emptyList(), acoes = acoes) } } + } + + private fun nt(tag: String) = regra.onNodeWithTag(tag, useUnmergedTree = true) + private fun nh(texto: String, substring: Boolean = false) = regra.onNode(hasText(texto, substring = substring), useUnmergedTree = true) + + private fun digitar(tag: String, texto: String) { + nt(tag).performScrollTo().performTextReplacement(texto) + } + + private fun preencher(nome: String, endereco: String = "dev.example.org", usuario: String = "yan", porta: String? = null) { + digitar(COMPUTADOR_HOST_NOME_TAG, nome) + digitar(COMPUTADOR_HOST_ENDERECO_TAG, endereco) + digitar(COMPUTADOR_HOST_USUARIO_TAG, usuario) + porta?.let { digitar(COMPUTADOR_HOST_PORTA_TAG, it) } + } + + private fun clicar(tag: String) { nt(tag).performScrollTo().performClick() } + + private fun senhaLembrada(id: String = "00000001") = Host(id, "dev", "dev.example.org", 22, "yan", AutenticacaoHost.Senha, lembrarSenha = true) + + @Test fun tresSecoesEHostsVazioMostraOConvite() { + mostrar(Acoes()) + nt(COMPUTADOR_SECAO_HOSTS_TAG).assertIsDisplayed() + nt(COMPUTADOR_SECAO_CHAVES_TAG).assertIsDisplayed() + nt(COMPUTADOR_SECAO_SESSOES_TAG).assertIsDisplayed() + nt(COMPUTADOR_HOSTS_VAZIO_TAG).assertIsDisplayed() + } + + @Test fun criarHostValidoGrava() { + val a = Acoes() + mostrar(a) + clicar(COMPUTADOR_NOVO_HOST_TAG) + preencher("dev-server") + clicar(COMPUTADOR_HOST_SALVAR_TAG) + regra.waitForIdle() + val h = a.hosts.hosts.single() + assertEquals("dev-server", h.nome) + assertEquals("dev.example.org", h.endereco) + assertEquals(22, h.porta) + assertEquals(PoliticaAgente.PROIBIDO, h.agente) + nt(computadorHostCardTag(h.id)).assertIsDisplayed() + } + + @Test fun porta0ENomeRepetidoMostramOMotivo() { + val a = Acoes(listOf(senhaLembrada())) + mostrar(a) + clicar(COMPUTADOR_NOVO_HOST_TAG) + preencher("DEV", porta = "0") + clicar(COMPUTADOR_HOST_SALVAR_TAG) + nt("computador-erro-porta").performScrollTo().assertIsDisplayed() + nh("A porta vai de 1 a 65535.").assertIsDisplayed() + nh("Já existe um servidor com esse nome.").assertIsDisplayed() + assertEquals(1, a.hosts.hosts.size) + } + + @Test fun testarConexaoMostraImpressaoELatenciaEUsaASenhaDigitada() { + val a = Acoes() + a.resultadoDoTeste = ResultadoTeste.Ok("ssh-ed25519", ImpressaoDigital.de(ByteArray(8) { 3 }), "password", 42) + mostrar(a) + clicar(COMPUTADOR_NOVO_HOST_TAG) + preencher("dev") + clicar(COMPUTADOR_HOST_AUTH_SENHA_TAG) + digitar(COMPUTADOR_HOST_SENHA_TAG, "senha-falsa") + clicar(COMPUTADOR_HOST_TESTAR_TAG) + regra.waitUntil(5_000) { a.testados.isNotEmpty() } + nt(COMPUTADOR_HOST_TESTE_RESULTADO_TAG).performScrollTo() + nh("SHA256:", substring = true).assertIsDisplayed() + nh("42 ms", substring = true).assertIsDisplayed() + assertEquals("senha-falsa", a.testados.single().second) + assertTrue("o teste não grava o host", a.hosts.hosts.isEmpty()) + } + + @Test fun testarContraPortaFechadaDizOMotivoENuncaAFraseAntiga() { + val a = Acoes() + mostrar(a) + clicar(COMPUTADOR_NOVO_HOST_TAG) + preencher("dev") + clicar(COMPUTADOR_HOST_TESTAR_TAG) + regra.waitUntil(5_000) { a.testados.isNotEmpty() } + nt(COMPUTADOR_HOST_TESTE_RESULTADO_TAG).performScrollTo() + nh("O servidor recusou a conexão.").assertIsDisplayed() + nh("Configuração SSH válida", substring = true).assertDoesNotExist() + } + + @Test fun marcarAgenteMostraOAvisoESoLigaAoConfirmar() { + val a = Acoes(listOf(senhaLembrada())) + mostrar(a) + clicar(computadorHostCardTag("00000001")) + clicar(COMPUTADOR_HOST_AGENTE_TAG) + nt(COMPUTADOR_AGENTE_AVISO_TAG).assertIsDisplayed() + nh("O agente poderá abrir terminais neste servidor e ler o texto da tela; esse texto é enviado ao provedor do modelo.").assertIsDisplayed() + nt(COMPUTADOR_AGENTE_AVISO_CANCELAR_TAG).performClick() + clicar(COMPUTADOR_HOST_SALVAR_TAG); regra.waitForIdle() + assertEquals("cancelar não liga", PoliticaAgente.PROIBIDO, a.hosts.hosts.single().agente) + clicar(computadorHostCardTag("00000001")) + clicar(COMPUTADOR_HOST_AGENTE_TAG) + nt(COMPUTADOR_AGENTE_AVISO_CONFIRMAR_TAG).performClick() + clicar(COMPUTADOR_HOST_SALVAR_TAG); regra.waitForIdle() + assertEquals(PoliticaAgente.PERMITIDO, a.hosts.hosts.single().agente) + } + + @Test fun hostComAutenticacaoPerguntarNaoDeixaMarcarEDizOMotivo() { + val a = Acoes(listOf(Host("00000001", "dev", "dev.example.org", 22, "yan", AutenticacaoHost.Perguntar))) + mostrar(a) + clicar(computadorHostCardTag("00000001")) + nt(COMPUTADOR_HOST_AGENTE_MOTIVO_TAG).performScrollTo().assertIsDisplayed() + clicar(COMPUTADOR_HOST_AGENTE_TAG) + nt(COMPUTADOR_AGENTE_AVISO_TAG).assertDoesNotExist() + assertEquals(PoliticaAgente.PROIBIDO, a.hosts.hosts.single().agente) + } + + @Test fun desligarAMarcaFechaAsSessoesDoAgente() { + val a = Acoes(listOf(senhaLembrada().copy(agente = PoliticaAgente.PERMITIDO))) + mostrar(a) + clicar(computadorHostCardTag("00000001")) + clicar(COMPUTADOR_HOST_AGENTE_TAG) + clicar(COMPUTADOR_HOST_SALVAR_TAG); regra.waitForIdle() + assertEquals(PoliticaAgente.PROIBIDO, a.hosts.hosts.single().agente) + assertEquals(listOf("00000001"), a.agenteDesligadoEm) + } + + @Test fun excluirPedeConfirmacao() { + val a = Acoes(listOf(senhaLembrada())) + mostrar(a, dark = true) + clicar(computadorHostCardTag("00000001")) + clicar(COMPUTADOR_HOST_EXCLUIR_TAG) + assertTrue("só pedir não exclui", a.excluidos.isEmpty()) + nt(COMPUTADOR_HOST_EXCLUIR_CONFIRMAR_TAG).performClick() + regra.waitForIdle() + assertEquals(listOf("00000001"), a.excluidos) + assertFalse(a.hosts.hosts.any()) + } +} diff --git a/app/src/main/java/com/keyflow/computador/EdicaoDeHost.kt b/app/src/main/java/com/keyflow/computador/EdicaoDeHost.kt new file mode 100644 index 00000000..1cad283a --- /dev/null +++ b/app/src/main/java/com/keyflow/computador/EdicaoDeHost.kt @@ -0,0 +1,31 @@ +package com.keyflow.computador + +/** O resultado de gravar um host editado na tela (CMP-05, 07, 09). */ +sealed interface ResultadoEdicao { + data class Ok(val config: ConfigHosts, val host: Host) : ResultadoEdicao + data class Erros(val erros: List) : ResultadoEdicao +} + +/** + * A regra de gravar um host vindo do modal, em função **pura** (roda dentro da transação do DataStore): normaliza (espaços das pontas), valida + * contra os outros hosts, aplica a [RegraAgente] (a marca do agente nunca fica ligada em host que o app não autentica sozinho) e troca ou + * acrescenta o host na lista. Não mexe em segredo. + */ +object EdicaoDeHost { + fun aplicar(config: ConfigHosts, editado: Host, chavePedePassphrase: (String) -> Boolean = { false }): ResultadoEdicao { + var host = editado.copy(nome = editado.nome.trim(), endereco = editado.endereco.trim(), usuario = editado.usuario.trim()) + if (host.autenticacao !is AutenticacaoHost.Senha) host = host.copy(lembrarSenha = false) + if (host.agente == PoliticaAgente.PERMITIDO && RegraAgente.podeMarcar(host, chavePedePassphrase) !is PodeMarcar.Sim) host = host.copy(agente = PoliticaAgente.PROIBIDO) + val outros = config.hosts.filter { it.id != host.id } + val erros = ValidadorHost.validar(host, config.hosts) + if (erros.isNotEmpty()) return ResultadoEdicao.Erros(erros) + val novos = if (config.hosts.any { it.id == host.id }) config.hosts.map { if (it.id == host.id) host else it } else outros + host + return ResultadoEdicao.Ok(ConfigHosts(novos), host) + } + + /** Id novo de 8 hex que não colide com os existentes. */ + fun novoId(existentes: Collection, sorteio: () -> String = { java.util.UUID.randomUUID().toString().replace("-", "").take(8) }): String { + repeat(32) { val id = sorteio(); if (id !in existentes) return id } + error("não achei um id livre") + } +} diff --git a/app/src/main/java/com/keyflow/computador/app/AcoesDeHostReais.kt b/app/src/main/java/com/keyflow/computador/app/AcoesDeHostReais.kt new file mode 100644 index 00000000..f653014c --- /dev/null +++ b/app/src/main/java/com/keyflow/computador/app/AcoesDeHostReais.kt @@ -0,0 +1,61 @@ +package com.keyflow.computador.app + +import com.keyflow.computador.AutenticacaoHost +import com.keyflow.computador.ChaveDoServidor +import com.keyflow.computador.EdicaoDeHost +import com.keyflow.computador.ErroHost +import com.keyflow.computador.Host +import com.keyflow.computador.ResultadoEdicao +import com.keyflow.computador.sessao.GerenciadorDeSessoes +import com.keyflow.computador.ssh.CausaSsh +import com.keyflow.computador.ssh.ResultadoTeste +import com.keyflow.ui.config.AcoesDeHost + +/** As ações do painel de hosts ligadas ao repositório, ao gerenciador de sessões e ao teste real. */ +class AcoesDeHostReais( + private val repositorio: RepositorioComputador, + private val gerenciador: GerenciadorDeSessoes, + private val testador: TestadorDeConexao, + private val provedorDeChaves: ProvedorDeChavesAndroid, +) : AcoesDeHost { + private fun enderecoDeConfianca(h: Host) = h.endereco.removePrefix("[").removeSuffix("]") + + override suspend fun salvar(host: Host, senha: String?): List { + val antes = repositorio.hostsOnce().porId(host.id) + var resultado: ResultadoEdicao? = null + repositorio.atualizarHosts { c -> + val r = EdicaoDeHost.aplicar(c, host) + resultado = r + if (r is ResultadoEdicao.Ok) r.config else c + } + return when (val r = resultado) { + is ResultadoEdicao.Erros -> r.erros + is ResultadoEdicao.Ok -> { + if (r.host.autenticacao == AutenticacaoHost.Senha) { + if (r.host.lembrarSenha) senha?.let { repositorio.lembrarSenha(r.host.id, it) } else repositorio.esquecerSenha(r.host.id) + } else repositorio.esquecerSenha(r.host.id) + // `known_hosts` é por `host:porta`: o endereço antigo deixa de valer para este host. + if (antes != null && (antes.endereco != r.host.endereco || antes.porta != r.host.porta)) repositorio.confianca.esquecer(enderecoDeConfianca(antes), antes.porta) + emptyList() + } + null -> emptyList() + } + } + + override suspend fun excluir(host: Host) = repositorio.excluirHost(host.id) { gerenciador.fecharDoHost(it) } + + override suspend fun testar(host: Host, senha: String?): ResultadoTeste { + val chave = (host.autenticacao as? AutenticacaoHost.Chave)?.let { a -> repositorio.chavesOnce().firstOrNull { it.id == a.keyId } } + if (host.autenticacao is AutenticacaoHost.Chave && chave == null) return ResultadoTeste.Falhou(CausaSsh.CHAVE_NAO_ACEITA) + val lembrada = if (host.autenticacao == AutenticacaoHost.Senha && host.lembrarSenha) repositorio.senhaLembrada(host.id) else null + return testador.testar(host, senha ?: lembrada, chave?.let(provedorDeChaves::assinador)) + } + + override fun impressoesConhecidas(host: Host): List = repositorio.confianca.chavesConhecidas(enderecoDeConfianca(host), host.porta) + + override fun esquecerServidor(host: Host) = repositorio.confianca.esquecer(enderecoDeConfianca(host), host.porta) + + override suspend fun desligarAgente(host: Host) = gerenciador.fecharDoAgenteNoHost(host.id) + + override fun novoId(existentes: Collection): String = EdicaoDeHost.novoId(existentes) +} diff --git a/app/src/main/java/com/keyflow/computador/app/RepositorioComputador.kt b/app/src/main/java/com/keyflow/computador/app/RepositorioComputador.kt index 576e522e..21d1eea7 100644 --- a/app/src/main/java/com/keyflow/computador/app/RepositorioComputador.kt +++ b/app/src/main/java/com/keyflow/computador/app/RepositorioComputador.kt @@ -33,6 +33,7 @@ class RepositorioComputador( fun senhaLembrada(hostId: String): String? = cofre.ler("$PREFIXO_SENHA$hostId") fun lembrarSenha(hostId: String, senha: String) = cofre.gravar("$PREFIXO_SENHA$hostId", senha) + fun esquecerSenha(hostId: String) = cofre.apagar("$PREFIXO_SENHA$hostId") /** * CMP-07: fecha as sessões do host, apaga a entrada do `known_hosts`, a senha lembrada, e tira o host da lista (a marca do agente vai diff --git a/app/src/main/java/com/keyflow/computador/app/TestadorDeConexao.kt b/app/src/main/java/com/keyflow/computador/app/TestadorDeConexao.kt new file mode 100644 index 00000000..a866c9c8 --- /dev/null +++ b/app/src/main/java/com/keyflow/computador/app/TestadorDeConexao.kt @@ -0,0 +1,55 @@ +package com.keyflow.computador.app + +import com.keyflow.computador.AutenticacaoHost +import com.keyflow.computador.ChaveDoServidor +import com.keyflow.computador.Host +import com.keyflow.computador.ImpressaoDigital +import com.keyflow.computador.RepositorioDeConfianca +import com.keyflow.computador.chaves.Assinador +import com.keyflow.computador.ssh.CausaSsh +import com.keyflow.computador.ssh.ConexaoCbssh +import com.keyflow.computador.ssh.ConexaoSsh +import com.keyflow.computador.ssh.DestinoSsh +import com.keyflow.computador.ssh.InteracaoComUsuario +import com.keyflow.computador.ssh.ResultadoTeste +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.withTimeoutOrNull + +/** + * A confiança **só de leitura** do "Testar conexão" (CMP-08): enxerga o `known_hosts` de verdade (um servidor conhecido com chave diferente + * continua sendo "mudou"), mas o que o teste aceita fica em memória e **morre com ele**. Testar nunca passa a confiar num servidor. + */ +class ConfiancaEfemera(private val base: RepositorioDeConfianca) : RepositorioDeConfianca { + private val aceitas = mutableListOf>() + + override fun chavesConhecidas(host: String, porta: Int): List = + base.chavesConhecidas(host, porta) + aceitas.filter { it.first == host && it.second == porta }.map { it.third } + + @Synchronized override fun confiar(host: String, porta: Int, chave: ChaveDoServidor) { aceitas += Triple(host, porta, chave) } + override fun esquecer(host: String, porta: Int) = Unit +} + +/** O "Testar conexão" **real** (CMP-08): TCP, troca de chaves, verificação do servidor e autenticação, sem abrir o shell. Máximo de 15 s. */ +class TestadorDeConexao( + private val confianca: RepositorioDeConfianca, + private val escopo: CoroutineScope, + private val limiteMs: Long = 15_000, + private val fabrica: (RepositorioDeConfianca, InteracaoComUsuario, CoroutineScope) -> ConexaoSsh = { c, i, e -> ConexaoCbssh(c, i, e) }, +) { + /** + * @param senha a senha **digitada na tela** (ou a lembrada); o teste nunca abre diálogo. Host "perguntar" sem senha falha com [CausaSsh.AUTENTICACAO]. + * @param assinador para host com chave; `null` com host de chave falha por [CausaSsh.CHAVE_NAO_ACEITA]. + */ + suspend fun testar(host: Host, senha: String?, assinador: Assinador?): ResultadoTeste { + val efemera = ConfiancaEfemera(confianca) + val interacao = object : InteracaoComUsuario { + // O teste mostra a impressão digital no resultado; aceitar aqui vale só para esta conexão (confiança efêmera). + override suspend fun confirmarServidor(host: String, porta: Int, algoritmo: String, impressao: ImpressaoDigital) = true + override suspend fun pedirSenha(): String? = senha + override suspend fun pedirCodigo(nome: String, instrucao: String, perguntas: List, eco: List): List? = null + } + val conexao = fabrica(efemera, interacao, escopo) + val destino = DestinoSsh(host, senhaLembrada = senha.takeIf { host.autenticacao !is AutenticacaoHost.Chave }, assinador = assinador, confiarSozinho = true) + return withTimeoutOrNull(limiteMs) { conexao.testar(destino) } ?: ResultadoTeste.Falhou(CausaSsh.TEMPO) + } +} diff --git a/app/src/main/java/com/keyflow/computador/app/TextosComputador.kt b/app/src/main/java/com/keyflow/computador/app/TextosComputador.kt index 38292da1..a1f08585 100644 --- a/app/src/main/java/com/keyflow/computador/app/TextosComputador.kt +++ b/app/src/main/java/com/keyflow/computador/app/TextosComputador.kt @@ -1,5 +1,7 @@ package com.keyflow.computador.app +import com.keyflow.computador.MotivoAgente +import com.keyflow.computador.MotivoHost import com.keyflow.computador.sessao.MotivoRecusa import com.keyflow.computador.ssh.CausaSsh import com.keyflow.i18n.tr @@ -30,3 +32,23 @@ fun MotivoRecusa.texto(): String = when (this) { MotivoRecusa.LIMITE_TOTAL -> tr("O limite é de 8 sessões abertas. Feche uma para abrir outra.") MotivoRecusa.LIMITE_DO_AGENTE -> tr("O agente já tem 3 sessões abertas.") } +fun MotivoHost.texto(): String = when (this) { + MotivoHost.NOME_VAZIO -> tr("Dê um nome ao servidor.") + MotivoHost.NOME_LONGO -> tr("O nome pode ter no máximo 40 caracteres.") + MotivoHost.NOME_REPETIDO -> tr("Já existe um servidor com esse nome.") + MotivoHost.ENDERECO_VAZIO -> tr("Informe o endereço do servidor.") + MotivoHost.ENDERECO_LONGO -> tr("O endereço pode ter no máximo 253 caracteres.") + MotivoHost.ENDERECO_INVALIDO -> tr("O endereço não é um nome, um IPv4 nem um IPv6 válido.") + MotivoHost.IPV6_SEM_COLCHETES -> tr("Endereço IPv6 vai entre colchetes, por exemplo [::1].") + MotivoHost.PORTA_INVALIDA -> tr("A porta vai de 1 a 65535.") + MotivoHost.USUARIO_VAZIO -> tr("Informe o usuário.") + MotivoHost.USUARIO_LONGO -> tr("O usuário pode ter no máximo 64 caracteres.") + MotivoHost.USUARIO_INVALIDO -> tr("O usuário não pode ter espaços nem caracteres de controle.") + MotivoHost.LISTA_CHEIA -> tr("O limite é de 50 servidores.") +} + +fun MotivoAgente.texto(): String = when (this) { + MotivoAgente.PERGUNTA_SEMPRE -> tr("Este servidor pede a autenticação na hora; o agente não tem como digitá-la. Guarde uma chave ou a senha.") + MotivoAgente.SENHA_NAO_LEMBRADA -> tr("A senha não está guardada. Ligue \"lembrar senha\" para o agente poder usar este servidor.") + MotivoAgente.CHAVE_COM_PASSPHRASE -> tr("Esta chave pede a senha dela na hora; o agente não pode usá-la.") +} diff --git a/app/src/main/java/com/keyflow/computador/sessao/GerenciadorDeSessoes.kt b/app/src/main/java/com/keyflow/computador/sessao/GerenciadorDeSessoes.kt index e10d40d8..9244241a 100644 --- a/app/src/main/java/com/keyflow/computador/sessao/GerenciadorDeSessoes.kt +++ b/app/src/main/java/com/keyflow/computador/sessao/GerenciadorDeSessoes.kt @@ -83,6 +83,13 @@ class GerenciadorDeSessoes( suspend fun fecharDoHost(hostId: String) = copia().filter { it.host.id == hostId }.forEach { fechar(it.id, MotivoEncerramento.HOST_REMOVIDO) } + /** CMP-09: o agente deixou de poder usar o host. Fecha as sessões **do agente** nele e desfaz o compartilhamento das do usuário. */ + suspend fun fecharDoAgenteNoHost(hostId: String) { + copia().filter { it.host.id == hostId && it.compartilhada && it.dono == DonoDaSessao.USUARIO }.forEach { it.compartilhada = false } + copia().filter { it.host.id == hostId && it.dono == DonoDaSessao.AGENTE }.forEach { fechar(it.id, MotivoEncerramento.AGENTE_PARADO) } + publicar() + } + suspend fun fecharDoAgente() = copia().filter { it.dono == DonoDaSessao.AGENTE }.forEach { fechar(it.id, MotivoEncerramento.AGENTE_PARADO) } suspend fun fecharTodas() = copia().forEach { fechar(it.id) } diff --git a/app/src/main/java/com/keyflow/i18n/en/Computador.kt b/app/src/main/java/com/keyflow/i18n/en/Computador.kt index a986de83..38d7d033 100644 --- a/app/src/main/java/com/keyflow/i18n/en/Computador.kt +++ b/app/src/main/java/com/keyflow/i18n/en/Computador.kt @@ -4,51 +4,105 @@ package com.keyflow.i18n.en internal val Computador: Map = mapOf( "%d sessão SSH aberta" to "%d SSH session open", "%d sessões SSH abertas" to "%d SSH sessions open", + "+ Novo host" to "+ New host", "A chave foi invalidada pela biometria." to "The key was invalidated by biometrics.", "A identificação deste servidor mudou." to "This server's identity has changed.", + "A lista de sessões chega na próxima etapa." to "The session list arrives in the next step.", + "A porta vai de 1 a 65535." to "The port ranges from 1 to 65535.", + "A senha não está guardada. Ligue \"lembrar senha\" para o agente poder usar este servidor." to "The password is not saved. Turn on \"remember password\" so the agent can use this server.", + "A senha é pedida a cada conexão." to "The password is asked on every connection.", "Abrir" to "Open", "Abrir este link?" to "Open this link?", "Agente %d" to "Agent %d", + "Agente: não" to "Agent: no", + "Agente: permitido" to "Agent: allowed", "Aguardando a confirmação do servidor…" to "Waiting for server confirmation…", + "Ainda não confiei neste servidor." to "I don't trust this server yet.", "Alt: um toque vale para a próxima tecla, dois travam" to "Alt: one tap applies to the next key, two lock it", + "As chaves SSH ganham a própria seção na próxima etapa." to "SSH keys get their own section in the next step.", + "As sessões abertas deste servidor fecham e a senha guardada é apagada. A chave não é apagada." to "Open sessions on this server close and the saved password is erased. The key is not erased.", "Autenticando…" to "Authenticating…", + "Autenticação" to "Authentication", "Autenticação cancelada." to "Authentication cancelled.", "Barra" to "Slash", "Barra vertical" to "Vertical bar", "Cadastre um servidor na aba Computador." to "Add a server in the Computer tab.", "Caiu: %s" to "Dropped: %s", + "Cancelar o teste" to "Cancel the test", + "Chave" to "Key", + "Chaves" to "Keys", "Colar %d linhas?" to "Paste %d lines?", "Conectado" to "Connected", "Conexão cancelada" to "Connection cancelled", "Confirme o servidor no aplicativo." to "Confirm the server in the app.", "Ctrl: um toque vale para a próxima tecla, dois travam" to "Ctrl: one tap applies to the next key, two lock it", + "Desconectado" to "Disconnected", "Desconectar todas" to "Disconnect all", + "Desligado" to "Off", + "Dê um nome ao servidor." to "Give the server a name.", "Elas podem ser executadas." to "They may be executed.", + "Endereço" to "Address", + "Endereço IPv6 vai entre colchetes, por exemplo [::1]." to "IPv6 addresses go in brackets, for example [::1].", + "Esquecer servidor" to "Forget server", + "Esta chave pede a senha dela na hora; o agente não pode usá-la." to "This key asks for its passphrase on the spot; the agent cannot use it.", + "Este servidor pede a autenticação na hora; o agente não tem como digitá-la. Guarde uma chave ou a senha." to "This server asks for authentication on the spot; the agent cannot type it. Save a key or the password.", "Este servidor só oferece algoritmos antigos que o KeyFlow não usa." to "This server only offers old algorithms that KeyFlow does not use.", + "Excluir" to "Delete", + "Excluir %s?" to "Delete %s?", + "Excluir host" to "Delete host", "Falha na comunicação com o servidor." to "Communication with the server failed.", "Fechar a sessão %s" to "Close session %s", + "Guarda a senha cifrada neste aparelho. Sem isso, o agente não pode usar este servidor." to "Saves the password encrypted on this device. Without it, the agent cannot use this server.", + "Host" to "Host", + "Hosts" to "Hosts", "Hífen" to "Hyphen", + "Imagens no terminal" to "Images in the terminal", + "Informe o endereço do servidor." to "Enter the server address.", + "Informe o usuário." to "Enter the username.", + "Já existe um servidor com esse nome." to "A server with that name already exists.", + "Lembrar a senha" to "Remember the password", + "Liberar este servidor para o agente?" to "Allow the agent to use this server?", + "Ligado" to "On", "Link bloqueado" to "Link blocked", "Mostrar ou esconder as teclas F1 a F12" to "Show or hide the F1 to F12 keys", + "Mudar o endereço ou a porta pede uma nova confirmação da impressão digital na próxima conexão." to "Changing the address or port asks for a new fingerprint confirmation on the next connection.", + "Nenhum servidor ainda. Cadastre o primeiro para abrir um terminal." to "No servers yet. Add the first one to open a terminal.", + "Nenhuma chave guardada. Gere ou importe uma na seção Chaves." to "No saved key. Generate or import one in the Keys section.", "Nenhuma sessão aberta. Toque em + para abrir uma." to "No open session. Tap + to open one.", "Nova sessão" to "New session", + "Novo host" to "New host", "Não achei um app para abrir este link." to "I couldn't find an app to open this link.", "Não encontrei esse endereço." to "I couldn't find that address.", "O Android encerrou a sessão." to "Android ended the session.", "O KeyFlow só abre links http, https e mailto." to "KeyFlow only opens http, https and mailto links.", "O agente já tem 3 sessões abertas." to "The agent already has 3 open sessions.", + "O agente poderá abrir terminais neste servidor e ler o texto da tela; esse texto é enviado ao provedor do modelo." to "The agent will be able to open terminals on this server and read the screen text; that text is sent to the model provider.", + "O agente só age em servidores marcados e em sessões dele." to "The agent only acts on marked servers and in its own sessions.", + "O endereço não é um nome, um IPv4 nem um IPv6 válido." to "The address is not a valid name, IPv4 or IPv6.", + "O endereço pode ter no máximo 253 caracteres." to "The address can have at most 253 characters.", + "O limite é de 50 servidores." to "The limit is 50 servers.", "O limite é de 8 sessões abertas. Feche uma para abrir outra." to "The limit is 8 open sessions. Close one to open another.", + "O nome pode ter no máximo 40 caracteres." to "The name can have at most 40 characters.", "O servidor encerrou a conexão." to "The server closed the connection.", "O servidor não aceitou esta chave. Autorize a chave pública no servidor." to "The server did not accept this key. Authorize the public key on the server.", "O servidor não respondeu a tempo." to "The server did not respond in time.", "O servidor pediu para colocar %d caracteres na área de transferência. Só permita se foi você quem pediu." to "The server asked to put %d characters on the clipboard. Only allow it if you asked for it.", "O servidor quer copiar texto" to "The server wants to copy text", "O servidor recusou a conexão." to "The server refused the connection.", + "O usuário não pode ter espaços nem caracteres de controle." to "The username cannot have spaces or control characters.", + "O usuário pode ter no máximo 64 caracteres." to "The username can have at most 64 characters.", "OK" to "OK", "Parar o agente" to "Stop the agent", + "Pergunta sempre" to "Always ask", + "Pode ser usado pelo agente" to "Can be used by the agent", + "Reconectando…" to "Reconnecting…", "Reconectando… (tentativa %d)" to "Reconnecting… (attempt %d)", + "Salvar" to "Save", "Servidor" to "Server", + "Servidor confirmado. Impressão digital %s (%s). Autenticação: %s. Latência: %d ms." to "Server confirmed. Fingerprint %s (%s). Authentication: %s. Latency: %d ms.", + "Servidor conhecido" to "Known server", "Sessão encerrada" to "Session ended", + "Sessões" to "Sessions", "Sessões SSH mantidas conectadas em segundo plano" to "SSH sessions kept connected in the background", "Sessões do Computador" to "Computer sessions", "Seta para a direita" to "Right arrow", @@ -59,6 +113,8 @@ internal val Computador: Map = mapOf( "Tecla F%d" to "F%d key", "Tecla Tab" to "Tab key", "Terminal %d" to "Terminal %d", + "Testando a conexão…" to "Testing the connection…", + "Testar conexão" to "Test connection", "Til" to "Tilde", "Toque para reconectar" to "Tap to reconnect", "Usuário ou senha incorretos." to "Wrong username or password.", diff --git a/app/src/main/java/com/keyflow/i18n/en/Fluxos.kt b/app/src/main/java/com/keyflow/i18n/en/Fluxos.kt index fccdd4c3..be87dc36 100644 --- a/app/src/main/java/com/keyflow/i18n/en/Fluxos.kt +++ b/app/src/main/java/com/keyflow/i18n/en/Fluxos.kt @@ -9,20 +9,14 @@ internal val Fluxos: Map = mapOf( "Adicione ao menos uma etapa" to "Add at least one step", "Agente" to "Agent", "Algo deu errado nesta etapa." to "Something went wrong in this step.", - "Autenticação SSH" to "SSH authentication", "Botão do teclado" to "Keyboard button", "Capturar" to "Capture", "Carregando fluxos…" to "Loading flows…", - "Chave Privada" to "Private Key", - "Chave privada OpenSSH" to "OpenSSH private key", "Complete as etapas para rodar" to "Complete the steps to run", "Conceda permissão de sobreposição para capturar a tela." to "Allow display over other apps to capture the screen.", "Conecte na aba %s" to "Connect in the %s tab", - "Conexão SSH" to "SSH Connection", - "Configuração SSH válida. Pronto para conectar." to "Valid SSH configuration. Ready to connect.", "Da aba" to "From the tab", "Ditar" to "Dictate", - "Em breve você poderá executar scripts, ferramentas de linha de comando e automações locais diretamente no aparelho." to "Soon you will be able to run scripts, command-line tools, and local automations directly on the device.", "Em execução · %s" to "Running · %s", "Entrada" to "Input", "Esta etapa não existe nesta versão do app." to "This step doesn't exist in this version of the app.", @@ -32,10 +26,8 @@ internal val Fluxos: Map = mapOf( "Falar" to "Speak", "Fluxo incompleto: abra a aba Fluxos" to "Incomplete flow: open the Flows tab", "Fluxo: %s" to "Flow: %s", - "Host / Endereço IP" to "Host / IP address", "Incompleto" to "Incomplete", "Indisponível: %s" to "Unavailable: %s", - "Informe o host e usuário para testar." to "Enter host and user to test.", "Inserir" to "Insert", "Instrução (vazio: ler o texto)" to "Instruction (empty: read the text)", "Instrução do sistema (opcional)" to "System instruction (optional)", @@ -51,7 +43,6 @@ internal val Fluxos: Map = mapOf( "Modelo ausente: escolha outro ou instale de novo" to "Model missing: pick another or install it again", "Modelo indisponível" to "Model unavailable", "Modelo · %s" to "Model · %s", - "Modo de execução" to "Execution mode", "Mover a etapa %d, %s, para baixo" to "Move step %d, %s, down", "Mover a etapa %d, %s, para cima" to "Move step %d, %s, up", "Mover para baixo" to "Move down", @@ -67,7 +58,6 @@ internal val Fluxos: Map = mapOf( "O PaddleOCR só lê o texto da imagem: a instrução desta etapa é ignorada." to "PaddleOCR only reads the text in the image: this step's instruction is ignored.", "O fluxo parou em “%s”: %s" to "The flow stopped at “%s”: %s", "O resultado será descartado: termine com Falar, Inserir ou Agente" to "The result will be discarded: end with Speak, Insert or Agent", - "O suporte a shell local está em análise e desenvolvimento para integração com ambiente Linux embarcado." to "Local shell support is under analysis and development for integration with embedded Linux environment.", "Os fluxos padrão já estão como no original" to "The default flows already match the originals", "Ouvir e responder" to "Listen and answer", "Pedir ao agente e colar" to "Ask the agent and paste", @@ -81,19 +71,15 @@ internal val Fluxos: Map = mapOf( "Restaurar" to "Restore", "Restaurar fluxos padrão" to "Restore default flows", "Rodar agora" to "Run now", - "SSH Remoto" to "Remote SSH", "Saída" to "Output", "Sem atalho" to "No shortcut", "Sem espaço (limite de 20): %s" to "No space (limit of 20): %s", "Senha" to "Password", "Será recriado: %s" to "Will be recreated: %s", "Será reescrito: %s" to "Will be reset: %s", - "Shell Local" to "Local Shell", "Sugestão: %s" to "Suggestion: %s", "Só pode ser a primeira etapa" to "Can only be the first step", "Tempo esgotado." to "Timed out.", - "Testando conexão…" to "Testing connection…", - "Testar conexão SSH" to "Test SSH connection", "Toque em “+ Etapa” para começar. Ditar e Capturar abrem o fluxo." to "Tap “+ Step” to start. Dictate and Capture open the flow.", "Usuário" to "User", "Você ainda não tem fluxos. Crie um com “+” ou restaure os padrão." to "You have no flows yet. Create one with “+” or restore the defaults.", diff --git a/app/src/main/java/com/keyflow/i18n/es/Computador.kt b/app/src/main/java/com/keyflow/i18n/es/Computador.kt index d101e804..3135e6d1 100644 --- a/app/src/main/java/com/keyflow/i18n/es/Computador.kt +++ b/app/src/main/java/com/keyflow/i18n/es/Computador.kt @@ -4,51 +4,105 @@ package com.keyflow.i18n.es internal val Computador: Map = mapOf( "%d sessão SSH aberta" to "%d sesión SSH abierta", "%d sessões SSH abertas" to "%d sesiones SSH abiertas", + "+ Novo host" to "+ Nuevo host", "A chave foi invalidada pela biometria." to "La clave fue invalidada por la biometría.", "A identificação deste servidor mudou." to "La identidad de este servidor cambió.", + "A lista de sessões chega na próxima etapa." to "La lista de sesiones llega en el siguiente paso.", + "A porta vai de 1 a 65535." to "El puerto va de 1 a 65535.", + "A senha não está guardada. Ligue \"lembrar senha\" para o agente poder usar este servidor." to "La contraseña no está guardada. Activa \"recordar contraseña\" para que el agente pueda usar este servidor.", + "A senha é pedida a cada conexão." to "La contraseña se pide en cada conexión.", "Abrir" to "Abrir", "Abrir este link?" to "¿Abrir este enlace?", "Agente %d" to "Agente %d", + "Agente: não" to "Agente: no", + "Agente: permitido" to "Agente: permitido", "Aguardando a confirmação do servidor…" to "Esperando la confirmación del servidor…", + "Ainda não confiei neste servidor." to "Aún no confío en este servidor.", "Alt: um toque vale para a próxima tecla, dois travam" to "Alt: un toque vale para la siguiente tecla, dos la bloquean", + "As chaves SSH ganham a própria seção na próxima etapa." to "Las claves SSH tendrán su propia sección en el siguiente paso.", + "As sessões abertas deste servidor fecham e a senha guardada é apagada. A chave não é apagada." to "Las sesiones abiertas de este servidor se cierran y la contraseña guardada se borra. La clave no se borra.", "Autenticando…" to "Autenticando…", + "Autenticação" to "Autenticación", "Autenticação cancelada." to "Autenticación cancelada.", "Barra" to "Barra", "Barra vertical" to "Barra vertical", "Cadastre um servidor na aba Computador." to "Registra un servidor en la pestaña Computadora.", "Caiu: %s" to "Se cayó: %s", + "Cancelar o teste" to "Cancelar la prueba", + "Chave" to "Clave", + "Chaves" to "Claves", "Colar %d linhas?" to "¿Pegar %d líneas?", "Conectado" to "Conectado", "Conexão cancelada" to "Conexión cancelada", "Confirme o servidor no aplicativo." to "Confirma el servidor en la aplicación.", "Ctrl: um toque vale para a próxima tecla, dois travam" to "Ctrl: un toque vale para la siguiente tecla, dos la bloquean", + "Desconectado" to "Desconectado", "Desconectar todas" to "Desconectar todas", + "Desligado" to "Apagado", + "Dê um nome ao servidor." to "Ponle un nombre al servidor.", "Elas podem ser executadas." to "Podrían ejecutarse.", + "Endereço" to "Dirección", + "Endereço IPv6 vai entre colchetes, por exemplo [::1]." to "Las direcciones IPv6 van entre corchetes, por ejemplo [::1].", + "Esquecer servidor" to "Olvidar servidor", + "Esta chave pede a senha dela na hora; o agente não pode usá-la." to "Esta clave pide su contraseña en el momento; el agente no puede usarla.", + "Este servidor pede a autenticação na hora; o agente não tem como digitá-la. Guarde uma chave ou a senha." to "Este servidor pide la autenticación en el momento; el agente no puede escribirla. Guarda una clave o la contraseña.", "Este servidor só oferece algoritmos antigos que o KeyFlow não usa." to "Este servidor solo ofrece algoritmos antiguos que KeyFlow no usa.", + "Excluir" to "Eliminar", + "Excluir %s?" to "¿Eliminar %s?", + "Excluir host" to "Eliminar host", "Falha na comunicação com o servidor." to "Falló la comunicación con el servidor.", "Fechar a sessão %s" to "Cerrar la sesión %s", + "Guarda a senha cifrada neste aparelho. Sem isso, o agente não pode usar este servidor." to "Guarda la contraseña cifrada en este dispositivo. Sin esto, el agente no puede usar este servidor.", + "Host" to "Host", + "Hosts" to "Hosts", "Hífen" to "Guion", + "Imagens no terminal" to "Imágenes en la terminal", + "Informe o endereço do servidor." to "Indica la dirección del servidor.", + "Informe o usuário." to "Indica el usuario.", + "Já existe um servidor com esse nome." to "Ya existe un servidor con ese nombre.", + "Lembrar a senha" to "Recordar la contraseña", + "Liberar este servidor para o agente?" to "¿Permitir que el agente use este servidor?", + "Ligado" to "Encendido", "Link bloqueado" to "Enlace bloqueado", "Mostrar ou esconder as teclas F1 a F12" to "Mostrar u ocultar las teclas F1 a F12", + "Mudar o endereço ou a porta pede uma nova confirmação da impressão digital na próxima conexão." to "Cambiar la dirección o el puerto pide una nueva confirmación de la huella en la próxima conexión.", + "Nenhum servidor ainda. Cadastre o primeiro para abrir um terminal." to "Aún no hay servidores. Registra el primero para abrir una terminal.", + "Nenhuma chave guardada. Gere ou importe uma na seção Chaves." to "No hay claves guardadas. Genera o importa una en la sección Claves.", "Nenhuma sessão aberta. Toque em + para abrir uma." to "Ninguna sesión abierta. Toca + para abrir una.", "Nova sessão" to "Nueva sesión", + "Novo host" to "Nuevo host", "Não achei um app para abrir este link." to "No encontré una app para abrir este enlace.", "Não encontrei esse endereço." to "No encontré esa dirección.", "O Android encerrou a sessão." to "Android terminó la sesión.", "O KeyFlow só abre links http, https e mailto." to "KeyFlow solo abre enlaces http, https y mailto.", "O agente já tem 3 sessões abertas." to "El agente ya tiene 3 sesiones abiertas.", + "O agente poderá abrir terminais neste servidor e ler o texto da tela; esse texto é enviado ao provedor do modelo." to "El agente podrá abrir terminales en este servidor y leer el texto de la pantalla; ese texto se envía al proveedor del modelo.", + "O agente só age em servidores marcados e em sessões dele." to "El agente solo actúa en servidores marcados y en sus propias sesiones.", + "O endereço não é um nome, um IPv4 nem um IPv6 válido." to "La dirección no es un nombre, IPv4 ni IPv6 válido.", + "O endereço pode ter no máximo 253 caracteres." to "La dirección puede tener como máximo 253 caracteres.", + "O limite é de 50 servidores." to "El límite es de 50 servidores.", "O limite é de 8 sessões abertas. Feche uma para abrir outra." to "El límite es de 8 sesiones abiertas. Cierra una para abrir otra.", + "O nome pode ter no máximo 40 caracteres." to "El nombre puede tener como máximo 40 caracteres.", "O servidor encerrou a conexão." to "El servidor cerró la conexión.", "O servidor não aceitou esta chave. Autorize a chave pública no servidor." to "El servidor no aceptó esta clave. Autoriza la clave pública en el servidor.", "O servidor não respondeu a tempo." to "El servidor no respondió a tiempo.", "O servidor pediu para colocar %d caracteres na área de transferência. Só permita se foi você quem pediu." to "El servidor pidió poner %d caracteres en el portapapeles. Permítelo solo si lo pediste tú.", "O servidor quer copiar texto" to "El servidor quiere copiar texto", "O servidor recusou a conexão." to "El servidor rechazó la conexión.", + "O usuário não pode ter espaços nem caracteres de controle." to "El usuario no puede tener espacios ni caracteres de control.", + "O usuário pode ter no máximo 64 caracteres." to "El usuario puede tener como máximo 64 caracteres.", "OK" to "OK", "Parar o agente" to "Detener al agente", + "Pergunta sempre" to "Preguntar siempre", + "Pode ser usado pelo agente" to "Puede usarlo el agente", + "Reconectando…" to "Reconectando…", "Reconectando… (tentativa %d)" to "Reconectando… (intento %d)", + "Salvar" to "Guardar", "Servidor" to "Servidor", + "Servidor confirmado. Impressão digital %s (%s). Autenticação: %s. Latência: %d ms." to "Servidor confirmado. Huella %s (%s). Autenticación: %s. Latencia: %d ms.", + "Servidor conhecido" to "Servidor conocido", "Sessão encerrada" to "Sesión terminada", + "Sessões" to "Sesiones", "Sessões SSH mantidas conectadas em segundo plano" to "Sesiones SSH mantenidas conectadas en segundo plano", "Sessões do Computador" to "Sesiones del Computador", "Seta para a direita" to "Flecha derecha", @@ -59,6 +113,8 @@ internal val Computador: Map = mapOf( "Tecla F%d" to "Tecla F%d", "Tecla Tab" to "Tecla Tab", "Terminal %d" to "Terminal %d", + "Testando a conexão…" to "Probando la conexión…", + "Testar conexão" to "Probar conexión", "Til" to "Tilde", "Toque para reconectar" to "Toca para reconectar", "Usuário ou senha incorretos." to "Usuario o contraseña incorrectos.", diff --git a/app/src/main/java/com/keyflow/i18n/es/Fluxos.kt b/app/src/main/java/com/keyflow/i18n/es/Fluxos.kt index 51a95973..77590090 100644 --- a/app/src/main/java/com/keyflow/i18n/es/Fluxos.kt +++ b/app/src/main/java/com/keyflow/i18n/es/Fluxos.kt @@ -9,20 +9,14 @@ internal val Fluxos: Map = mapOf( "Adicione ao menos uma etapa" to "Añade al menos un paso", "Agente" to "Agente", "Algo deu errado nesta etapa." to "Algo salió mal en este paso.", - "Autenticação SSH" to "Autenticación SSH", "Botão do teclado" to "Botón del teclado", "Capturar" to "Capturar", "Carregando fluxos…" to "Cargando flujos…", - "Chave Privada" to "Clave privada", - "Chave privada OpenSSH" to "Clave privada OpenSSH", "Complete as etapas para rodar" to "Completa los pasos para ejecutar", "Conceda permissão de sobreposição para capturar a tela." to "Permite mostrar sobre otras aplicaciones para capturar la pantalla.", "Conecte na aba %s" to "Conecta en la pestaña %s", - "Conexão SSH" to "Conexión SSH", - "Configuração SSH válida. Pronto para conectar." to "Configuración SSH válida. Listo para conectar.", "Da aba" to "De la pestaña", "Ditar" to "Dictar", - "Em breve você poderá executar scripts, ferramentas de linha de comando e automações locais diretamente no aparelho." to "Pronto podrá ejecutar scripts, herramientas de línea de comandos y automatizaciones locales directamente en el dispositivo.", "Em execução · %s" to "En ejecución · %s", "Entrada" to "Entrada", "Esta etapa não existe nesta versão do app." to "Este paso no existe en esta versión de la app.", @@ -32,10 +26,8 @@ internal val Fluxos: Map = mapOf( "Falar" to "Hablar", "Fluxo incompleto: abra a aba Fluxos" to "Flujo incompleto: abre la pestaña Flujos", "Fluxo: %s" to "Flujo: %s", - "Host / Endereço IP" to "Host / Dirección IP", "Incompleto" to "Incompleto", "Indisponível: %s" to "No disponible: %s", - "Informe o host e usuário para testar." to "Ingrese el host y usuario para probar.", "Inserir" to "Insertar", "Instrução (vazio: ler o texto)" to "Instrucción (vacío: leer el texto)", "Instrução do sistema (opcional)" to "Instrucción del sistema (opcional)", @@ -51,7 +43,6 @@ internal val Fluxos: Map = mapOf( "Modelo ausente: escolha outro ou instale de novo" to "Modelo ausente: elige otro o instálalo de nuevo", "Modelo indisponível" to "Modelo no disponible", "Modelo · %s" to "Modelo · %s", - "Modo de execução" to "Modo de ejecución", "Mover a etapa %d, %s, para baixo" to "Bajar el paso %d, %s", "Mover a etapa %d, %s, para cima" to "Subir el paso %d, %s", "Mover para baixo" to "Bajar", @@ -67,7 +58,6 @@ internal val Fluxos: Map = mapOf( "O PaddleOCR só lê o texto da imagem: a instrução desta etapa é ignorada." to "PaddleOCR solo lee el texto de la imagen: la instrucción de este paso se ignora.", "O fluxo parou em “%s”: %s" to "El flujo se detuvo en “%s”: %s", "O resultado será descartado: termine com Falar, Inserir ou Agente" to "El resultado se descartará: termina con Hablar, Insertar o Agente", - "O suporte a shell local está em análise e desenvolvimento para integração com ambiente Linux embarcado." to "El soporte de shell local está en análisis y desarrollo para integración con entorno Linux integrado.", "Os fluxos padrão já estão como no original" to "Los flujos predeterminados ya están como los originales", "Ouvir e responder" to "Escuchar y responder", "Pedir ao agente e colar" to "Pedir al agente y pegar", @@ -81,19 +71,15 @@ internal val Fluxos: Map = mapOf( "Restaurar" to "Restaurar", "Restaurar fluxos padrão" to "Restaurar flujos predeterminados", "Rodar agora" to "Ejecutar ahora", - "SSH Remoto" to "SSH remoto", "Saída" to "Salida", "Sem atalho" to "Sin atajo", "Sem espaço (limite de 20): %s" to "Sin espacio (límite de 20): %s", "Senha" to "Contraseña", "Será recriado: %s" to "Se volverá a crear: %s", "Será reescrito: %s" to "Se restablecerá: %s", - "Shell Local" to "Shell local", "Sugestão: %s" to "Sugerencia: %s", "Só pode ser a primeira etapa" to "Solo puede ser el primer paso", "Tempo esgotado." to "Tiempo agotado.", - "Testando conexão…" to "Probando conexión…", - "Testar conexão SSH" to "Probar conexión SSH", "Toque em “+ Etapa” para começar. Ditar e Capturar abrem o fluxo." to "Toca “+ Paso” para empezar. Dictar y Capturar abren el flujo.", "Usuário" to "Usuario", "Você ainda não tem fluxos. Crie um com “+” ou restaure os padrão." to "Todavía no tienes flujos. Crea uno con “+” o restaura los predeterminados.", diff --git a/app/src/main/java/com/keyflow/ui/config/ComputadorHostModal.kt b/app/src/main/java/com/keyflow/ui/config/ComputadorHostModal.kt new file mode 100644 index 00000000..1fa4cbef --- /dev/null +++ b/app/src/main/java/com/keyflow/ui/config/ComputadorHostModal.kt @@ -0,0 +1,255 @@ +package com.keyflow.ui.config + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.heightIn +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.AlertDialog +import androidx.compose.material3.Text +import androidx.compose.material3.TextButton +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.testTag +import androidx.compose.ui.text.input.KeyboardType +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.keyflow.computador.AutenticacaoHost +import com.keyflow.computador.CampoHost +import com.keyflow.computador.ErroHost +import com.keyflow.computador.Host +import com.keyflow.computador.LimitesHost +import com.keyflow.computador.PodeMarcar +import com.keyflow.computador.PoliticaAgente +import com.keyflow.computador.PoliticaImagens +import com.keyflow.computador.RegraAgente +import com.keyflow.computador.app.texto +import com.keyflow.computador.chaves.ChaveSsh +import com.keyflow.computador.ssh.ResultadoTeste +import com.keyflow.i18n.tr +import com.keyflow.i18n.trKey +import com.keyflow.ui.theme.LocalKeyFlowPalette +import com.keyflow.ui.theme.SpaceGrotesk +import kotlinx.coroutines.CancellationException +import kotlinx.coroutines.Job +import kotlinx.coroutines.launch + +const val COMPUTADOR_MODAL_FECHAR_TAG = "computador-modal-fechar" +const val COMPUTADOR_HOST_NOME_TAG = "computador-host-nome" +const val COMPUTADOR_HOST_ENDERECO_TAG = "computador-host-endereco" +const val COMPUTADOR_HOST_PORTA_TAG = "computador-host-porta" +const val COMPUTADOR_HOST_USUARIO_TAG = "computador-host-usuario" +const val COMPUTADOR_HOST_SENHA_TAG = "computador-host-senha" +const val COMPUTADOR_HOST_CHAVE_TAG = "computador-host-chave" +const val COMPUTADOR_HOST_AUTH_SENHA_TAG = "computador-host-auth-senha" +const val COMPUTADOR_HOST_AUTH_CHAVE_TAG = "computador-host-auth-chave" +const val COMPUTADOR_HOST_AUTH_PERGUNTAR_TAG = "computador-host-auth-perguntar" +const val COMPUTADOR_HOST_LEMBRAR_TAG = "computador-host-lembrar-senha" +const val COMPUTADOR_HOST_AGENTE_TAG = "computador-host-agente" +const val COMPUTADOR_HOST_AGENTE_MOTIVO_TAG = "computador-host-agente-motivo" +const val COMPUTADOR_AGENTE_AVISO_TAG = "computador-agente-aviso" +const val COMPUTADOR_AGENTE_AVISO_CONFIRMAR_TAG = "computador-agente-aviso-confirmar" +const val COMPUTADOR_AGENTE_AVISO_CANCELAR_TAG = "computador-agente-aviso-cancelar" +const val COMPUTADOR_HOST_TESTAR_TAG = "computador-host-testar" +const val COMPUTADOR_HOST_TESTE_RESULTADO_TAG = "computador-host-teste-resultado" +const val COMPUTADOR_HOST_SALVAR_TAG = "computador-host-salvar" +const val COMPUTADOR_HOST_EXCLUIR_TAG = "computador-host-excluir" +const val COMPUTADOR_HOST_EXCLUIR_CONFIRMAR_TAG = "computador-host-excluir-confirmar" +const val COMPUTADOR_HOST_ESQUECER_TAG = "computador-host-esquecer-servidor" +const val COMPUTADOR_HOST_IMPRESSAO_TAG = "computador-host-impressao" +fun computadorErroTag(campo: CampoHost) = "computador-erro-${campo.name.lowercase()}" +fun computadorImagensTag(p: PoliticaImagens) = "computador-host-imagens-${p.name.lowercase()}" + +private enum class TipoAuth(private val rotuloPt: String) { + CHAVE(trKey("Chave")), SENHA(trKey("Senha")), PERGUNTAR(trKey("Perguntar")); + val rotulo: String get() = tr(rotuloPt) +} + +private fun PoliticaImagens.rotulo() = when (this) { + PoliticaImagens.DESLIGADO -> tr("Desligado") + PoliticaImagens.PERGUNTAR -> tr("Perguntar") + PoliticaImagens.LIGADO -> tr("Ligado") +} + +private sealed interface Teste { + data object Rodando : Teste + class Resultado(val texto: String, val ok: Boolean) : Teste +} + +private fun ResultadoTeste.paraTexto(): Teste.Resultado = when (this) { + is ResultadoTeste.Ok -> Teste.Resultado( + tr("Servidor confirmado. Impressão digital %s (%s). Autenticação: %s. Latência: %d ms.", impressao.texto, algoritmoDoServidor, metodo.ifEmpty { "—" }, latenciaMs), + ok = true, + ) + is ResultadoTeste.Falhou -> Teste.Resultado(causa.texto() ?: tr("Conexão cancelada"), ok = false) +} + +/** + * O modal do host (CMP-05, 07, 08, 09): campos, autenticação, "Pode ser usado pelo agente" (com aviso e confirmação), imagens, impressão + * digital conhecida, **Testar conexão** de verdade, salvar e excluir com confirmação. O que se digita fica num rascunho; só **Salvar** grava. + * [host] `null` = novo. + */ +@Composable +internal fun ComputadorHostModal(host: Host?, hosts: List, chaves: List, acoes: AcoesDeHost, onDismiss: () -> Unit) { + val palette = LocalKeyFlowPalette.current + val scope = rememberCoroutineScope() + val inicial = remember(host?.id) { host ?: Host(id = acoes.novoId(hosts.map { it.id }), nome = "", endereco = "", usuario = "", autenticacao = AutenticacaoHost.Perguntar) } + var rascunho by remember(inicial.id) { mutableStateOf(inicial) } + var senha by remember(inicial.id) { mutableStateOf("") } + var erros by remember { mutableStateOf>(emptyList()) } + var teste by remember { mutableStateOf(null) } + var testeJob by remember { mutableStateOf(null) } + var avisoAgente by remember { mutableStateOf(false) } + var confirmarExclusao by remember { mutableStateOf(false) } + var impressoes by remember(inicial.id) { mutableStateOf(host?.let(acoes::impressoesConhecidas).orEmpty()) } + val pending = remember { PendingEdits() } + // Os campos de texto só entregam ao desfocar; o rascunho vivo (para Salvar/Testar) é lido daqui, depois do `pending.confirm()`. + val vivo = remember(inicial.id) { arrayOf(inicial) } + fun mudar(f: (Host) -> Host) { vivo[0] = f(vivo[0]); rascunho = vivo[0] } + fun erro(c: CampoHost) = erros.firstOrNull { it.campo == c }?.motivo?.texto() + val tipo = when (rascunho.autenticacao) { is AutenticacaoHost.Chave -> TipoAuth.CHAVE; AutenticacaoHost.Senha -> TipoAuth.SENHA; AutenticacaoHost.Perguntar -> TipoAuth.PERGUNTAR } + val podeAgente = RegraAgente.podeMarcar(rascunho) + + ConfigModal(if (host == null) tr("Novo host") else rascunho.nome.ifBlank { tr("Host") }, onDismiss, COMPUTADOR_MODAL_FECHAR_TAG, accessibleHeader = true) { + Column(Modifier.padding(top = 14.dp), verticalArrangement = Arrangement.spacedBy(14.dp)) { + AutoSaveField(tr("Nome"), rascunho.nome, { v -> mudar { it.copy(nome = v) } }, COMPUTADOR_HOST_NOME_TAG, pending = pending) + erro(CampoHost.NOME)?.let { MensagemDeErro(it, computadorErroTag(CampoHost.NOME)) } + AutoSaveField(tr("Endereço"), rascunho.endereco, { v -> mudar { it.copy(endereco = v) } }, COMPUTADOR_HOST_ENDERECO_TAG, keyboardType = KeyboardType.Uri, pending = pending) + erro(CampoHost.ENDERECO)?.let { MensagemDeErro(it, computadorErroTag(CampoHost.ENDERECO)) } + Row(horizontalArrangement = Arrangement.spacedBy(14.dp)) { + Column(Modifier.weight(0.35f)) { + AutoSaveField(tr("Porta"), rascunho.porta.toString(), { v -> mudar { it.copy(porta = v.trim().toIntOrNull() ?: 0) } }, COMPUTADOR_HOST_PORTA_TAG, keyboardType = KeyboardType.Number, pending = pending) + erro(CampoHost.PORTA)?.let { MensagemDeErro(it, computadorErroTag(CampoHost.PORTA)) } + } + Column(Modifier.weight(0.65f)) { + AutoSaveField(tr("Usuário"), rascunho.usuario, { v -> mudar { it.copy(usuario = v) } }, COMPUTADOR_HOST_USUARIO_TAG, pending = pending) + erro(CampoHost.USUARIO)?.let { MensagemDeErro(it, computadorErroTag(CampoHost.USUARIO)) } + } + } + if (host != null && (host.endereco != rascunho.endereco.trim() || host.porta != rascunho.porta)) { + SettingSub(tr("Mudar o endereço ou a porta pede uma nova confirmação da impressão digital na próxima conexão.")) + } + erro(CampoHost.LIMITE)?.let { MensagemDeErro(it, computadorErroTag(CampoHost.LIMITE)) } + + Eyebrow(tr("Autenticação")) + Segmented( + options = TipoAuth.entries, selected = tipo, label = { it.rotulo }, + tag = { when (it) { TipoAuth.CHAVE -> COMPUTADOR_HOST_AUTH_CHAVE_TAG; TipoAuth.SENHA -> COMPUTADOR_HOST_AUTH_SENHA_TAG; TipoAuth.PERGUNTAR -> COMPUTADOR_HOST_AUTH_PERGUNTAR_TAG } }, + onSelect = { novo -> + mudar { h -> + when (novo) { + TipoAuth.CHAVE -> h.copy(autenticacao = AutenticacaoHost.Chave(chaves.firstOrNull()?.id ?: ""), lembrarSenha = false) + TipoAuth.SENHA -> h.copy(autenticacao = AutenticacaoHost.Senha) + TipoAuth.PERGUNTAR -> h.copy(autenticacao = AutenticacaoHost.Perguntar, lembrarSenha = false) + } + } + // Mudar o jeito de autenticar pode tirar a base da marca do agente (CMP-09). + if (RegraAgente.podeMarcar(vivo[0]) !is PodeMarcar.Sim && vivo[0].agente == PoliticaAgente.PERMITIDO) mudar { it.copy(agente = PoliticaAgente.PROIBIDO) } + }, + ) + when (tipo) { + TipoAuth.CHAVE -> if (chaves.isEmpty()) { + InfoNote(tr("Nenhuma chave guardada. Gere ou importe uma na seção Chaves."), "computador-host-sem-chaves") + } else { + val atual = (rascunho.autenticacao as? AutenticacaoHost.Chave)?.keyId.orEmpty() + Dropdown( + label = tr("Chave"), options = chaves.map { it.id }, selected = atual.takeIf { id -> chaves.any { it.id == id } } ?: chaves.first().id, + onSelect = { id -> mudar { it.copy(autenticacao = AutenticacaoHost.Chave(id)) } }, tag = COMPUTADOR_HOST_CHAVE_TAG, + display = { id -> chaves.firstOrNull { it.id == id }?.nome ?: id }, + ) + } + TipoAuth.SENHA -> { + AutoSaveField(tr("Senha"), senha, { senha = it }, COMPUTADOR_HOST_SENHA_TAG, keyboardType = KeyboardType.Password, pending = pending) + ToggleRow(tr("Lembrar a senha"), tr("Guarda a senha cifrada neste aparelho. Sem isso, o agente não pode usar este servidor."), rascunho.lembrarSenha, + { v -> mudar { h -> h.copy(lembrarSenha = v) }; if (!v && vivo[0].agente == PoliticaAgente.PERMITIDO) mudar { it.copy(agente = PoliticaAgente.PROIBIDO) } }, COMPUTADOR_HOST_LEMBRAR_TAG) + } + TipoAuth.PERGUNTAR -> SettingSub(tr("A senha é pedida a cada conexão.")) + } + + ToggleRow( + tr("Pode ser usado pelo agente"), tr("O agente só age em servidores marcados e em sessões dele."), rascunho.agentePodeUsar, + { v -> if (v) avisoAgente = true else mudar { it.copy(agente = PoliticaAgente.PROIBIDO) } }, + COMPUTADOR_HOST_AGENTE_TAG, enabled = podeAgente is PodeMarcar.Sim || rascunho.agentePodeUsar, + ) + (podeAgente as? PodeMarcar.Nao)?.let { if (!rascunho.agentePodeUsar) MensagemDeErro(it.motivo.texto(), COMPUTADOR_HOST_AGENTE_MOTIVO_TAG) } + + Eyebrow(tr("Imagens no terminal")) + Segmented( + options = PoliticaImagens.entries, selected = rascunho.imagens, label = { it.rotulo() }, tag = ::computadorImagensTag, + onSelect = { p -> mudar { it.copy(imagens = p) } }, + ) + + if (host != null) { + Eyebrow(tr("Servidor conhecido")) + if (impressoes.isEmpty()) SettingSub(tr("Ainda não confiei neste servidor.")) + impressoes.forEach { SettingSub("${it.algoritmo} ${it.impressao.texto}") } + if (impressoes.isNotEmpty()) { + SecondaryButton(tr("Esquecer servidor"), COMPUTADOR_HOST_ESQUECER_TAG, { acoes.esquecerServidor(host); impressoes = acoes.impressoesConhecidas(host) }) + } + } + + SecondaryButton( + if (teste is Teste.Rodando) tr("Cancelar o teste") else tr("Testar conexão"), COMPUTADOR_HOST_TESTAR_TAG, + onClick = { + if (teste is Teste.Rodando) { testeJob?.cancel(); teste = null; return@SecondaryButton } + pending.confirm() + val h = vivo[0].copy(nome = vivo[0].nome.ifBlank { "teste" }, endereco = vivo[0].endereco.trim(), usuario = vivo[0].usuario.trim()) + teste = Teste.Rodando + testeJob = scope.launch { + try { teste = acoes.testar(h, senha.takeIf { it.isNotEmpty() }).paraTexto() } catch (e: CancellationException) { throw e } + } + }, + ) + when (val t = teste) { + null -> Unit + Teste.Rodando -> Text(tr("Testando a conexão…"), color = palette.muted, fontFamily = SpaceGrotesk, fontSize = 12.sp, modifier = Modifier.testTag(COMPUTADOR_HOST_TESTE_RESULTADO_TAG)) + is Teste.Resultado -> Text(t.texto, color = if (t.ok) palette.teal else palette.terracotta, fontFamily = SpaceGrotesk, fontSize = 12.sp, modifier = Modifier.testTag(COMPUTADOR_HOST_TESTE_RESULTADO_TAG)) + } + + PrimaryButton(tr("Salvar"), COMPUTADOR_HOST_SALVAR_TAG, { + pending.confirm() + val h = vivo[0] + scope.launch { + val e = acoes.salvar(h, senha.takeIf { it.isNotEmpty() && h.autenticacao == AutenticacaoHost.Senha }) + erros = e + if (e.isEmpty()) { + if (host?.agentePodeUsar == true && !h.agentePodeUsar) acoes.desligarAgente(h) + onDismiss() + } + } + }, Modifier.heightIn(min = 48.dp)) + if (host != null) SecondaryButton(tr("Excluir host"), COMPUTADOR_HOST_EXCLUIR_TAG, { confirmarExclusao = true }, accent = palette.terracotta) + } + } + + if (avisoAgente) { + AlertDialog( + modifier = Modifier.testTag(COMPUTADOR_AGENTE_AVISO_TAG), + onDismissRequest = { avisoAgente = false }, + title = { Text(tr("Liberar este servidor para o agente?")) }, + text = { Text(tr("O agente poderá abrir terminais neste servidor e ler o texto da tela; esse texto é enviado ao provedor do modelo.")) }, + confirmButton = { TextButton(onClick = { avisoAgente = false; mudar { it.copy(agente = PoliticaAgente.PERMITIDO) } }, modifier = Modifier.testTag(COMPUTADOR_AGENTE_AVISO_CONFIRMAR_TAG)) { Text(tr("Permitir")) } }, + dismissButton = { TextButton(onClick = { avisoAgente = false }, modifier = Modifier.testTag(COMPUTADOR_AGENTE_AVISO_CANCELAR_TAG)) { Text(tr("Cancelar")) } }, + ) + } + if (confirmarExclusao && host != null) { + AlertDialog( + onDismissRequest = { confirmarExclusao = false }, + title = { Text(tr("Excluir %s?", host.nome)) }, + text = { Text(tr("As sessões abertas deste servidor fecham e a senha guardada é apagada. A chave não é apagada.")) }, + confirmButton = { TextButton(onClick = { confirmarExclusao = false; scope.launch { acoes.excluir(host); onDismiss() } }, modifier = Modifier.testTag(COMPUTADOR_HOST_EXCLUIR_CONFIRMAR_TAG)) { Text(tr("Excluir")) } }, + dismissButton = { TextButton(onClick = { confirmarExclusao = false }) { Text(tr("Cancelar")) } }, + ) + } +} + +@Composable +private fun MensagemDeErro(texto: String, tag: String) { + Text(texto, color = LocalKeyFlowPalette.current.terracotta, fontFamily = SpaceGrotesk, fontSize = 12.sp, modifier = Modifier.padding(top = 2.dp).testTag(tag)) +} diff --git a/app/src/main/java/com/keyflow/ui/config/ComputadorHosts.kt b/app/src/main/java/com/keyflow/ui/config/ComputadorHosts.kt new file mode 100644 index 00000000..7487256e --- /dev/null +++ b/app/src/main/java/com/keyflow/ui/config/ComputadorHosts.kt @@ -0,0 +1,118 @@ +package com.keyflow.ui.config + +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.heightIn +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.platform.testTag +import androidx.compose.ui.semantics.Role +import androidx.compose.ui.semantics.role +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.keyflow.computador.AutenticacaoHost +import com.keyflow.computador.ChaveDoServidor +import com.keyflow.computador.Host +import com.keyflow.computador.ErroHost +import com.keyflow.computador.chaves.ChaveSsh +import com.keyflow.computador.sessao.EstadoSessao +import com.keyflow.computador.sessao.SessaoResumo +import com.keyflow.computador.ssh.ResultadoTeste +import com.keyflow.i18n.tr +import com.keyflow.ui.icons.KfIcons +import com.keyflow.ui.theme.LocalKeyFlowPalette +import com.keyflow.ui.theme.SpaceGrotesk +import com.keyflow.ui.theme.SpaceMono + +const val COMPUTADOR_NOVO_HOST_TAG = "computador-novo-host" +const val COMPUTADOR_HOSTS_VAZIO_TAG = "computador-hosts-vazio" +fun computadorHostCardTag(id: String) = "computador-host-$id" + +/** Tudo que o painel de hosts faz fora da tela (gravar, testar, excluir…). O app liga ao repositório; os testes trocam por fakes. */ +interface AcoesDeHost { + /** Valida e grava [host] (novo ou editado), com a [senha] digitada se houver. Devolve os erros por campo ou a lista vazia. */ + suspend fun salvar(host: Host, senha: String?): List + + /** CMP-07: fecha as sessões do host, apaga `known_hosts`, a senha e o host. A chave fica. */ + suspend fun excluir(host: Host) + + /** CMP-08: o teste real (sem abrir o shell). [senha] é a digitada na tela. */ + suspend fun testar(host: Host, senha: String?): ResultadoTeste + + /** O que o `known_hosts` já sabe deste `endereço:porta`. */ + fun impressoesConhecidas(host: Host): List + fun esquecerServidor(host: Host) + + /** CMP-09: o agente deixou de poder usar o host (fecha as sessões do agente nele e desfaz compartilhamento). */ + suspend fun desligarAgente(host: Host) + + /** O id de um host novo. */ + fun novoId(existentes: Collection): String +} + +private fun Host.textoDeAutenticacao(chaves: List): String = when (val a = autenticacao) { + is AutenticacaoHost.Chave -> tr("Chave") + (chaves.firstOrNull { it.id == a.keyId }?.let { " · ${it.nome}" } ?: "") + AutenticacaoHost.Senha -> tr("Senha") + AutenticacaoHost.Perguntar -> tr("Pergunta sempre") +} + +private fun EstadoSessao?.texto(): String = when (this) { + null -> "○ " + tr("Desconectado") + EstadoSessao.Aberta -> "● " + tr("Conectado") + is EstadoSessao.Reconectando -> "⟳ " + tr("Reconectando…") + EstadoSessao.Conectando, EstadoSessao.AguardandoServidor, EstadoSessao.Autenticando -> "⟳ " + tr("Conectando…") + EstadoSessao.PrecisaDoUsuario -> "⚠ " + tr("Toque para reconectar") + is EstadoSessao.Encerrada, is EstadoSessao.Falhou -> "○ " + tr("Desconectado") +} + +/** A lista de servidores (CMP-59, design §11.1): cartões, "+ Novo host" e o modal. */ +@Composable +internal fun ComputadorHosts(hosts: List, chaves: List, sessoes: List, acoes: AcoesDeHost) { + val palette = LocalKeyFlowPalette.current + var editando by remember { mutableStateOf(null) } + var criando by remember { mutableStateOf(false) } + Column(verticalArrangement = Arrangement.spacedBy(12.dp)) { + if (hosts.isEmpty()) InfoNote(tr("Nenhum servidor ainda. Cadastre o primeiro para abrir um terminal."), COMPUTADOR_HOSTS_VAZIO_TAG) + hosts.forEach { h -> + val estado = sessoes.firstOrNull { it.hostId == h.id && !it.estado.terminal }?.estado + Column( + Modifier.fillMaxWidth().clip(RoundedCornerShape(16.dp)).background(palette.card).border(1.dp, palette.line2, RoundedCornerShape(16.dp)) + .clickable(role = Role.Button) { editando = h }.heightIn(min = 48.dp).padding(14.dp).testTag(computadorHostCardTag(h.id)), + verticalArrangement = Arrangement.spacedBy(4.dp), + ) { + Row(verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(8.dp)) { + Text(h.nome, color = palette.fg, fontFamily = SpaceGrotesk, fontWeight = FontWeight.Medium, fontSize = 14.sp, modifier = Modifier.weight(1f)) + Text(estado.texto(), color = if (estado == EstadoSessao.Aberta) palette.teal else palette.muted, fontFamily = SpaceGrotesk, fontSize = 11.sp) + } + Text("${h.usuario}@${h.endereco}:${h.porta}", color = palette.muted, fontFamily = SpaceMono, fontSize = 11.sp) + Text( + h.textoDeAutenticacao(chaves) + " · " + (if (h.agentePodeUsar) tr("Agente: permitido") else tr("Agente: não")), + color = if (h.agentePodeUsar) palette.terracotta else palette.faint, fontFamily = SpaceGrotesk, fontSize = 11.sp, + ) + } + } + SecondaryButton(tr("+ Novo host"), COMPUTADOR_NOVO_HOST_TAG, { criando = true }, icon = KfIcons.Plus) + } + if (criando) ComputadorHostModal(host = null, hosts = hosts, chaves = chaves, acoes = acoes, onDismiss = { criando = false }) + editando?.let { atual -> + // O host pode ter mudado por baixo (outro lugar): o modal sempre abre com o que está na lista. + val corrente = hosts.firstOrNull { it.id == atual.id } + if (corrente == null) editando = null + else ComputadorHostModal(host = corrente, hosts = hosts, chaves = chaves, acoes = acoes, onDismiss = { editando = null }) + } +} diff --git a/app/src/main/java/com/keyflow/ui/config/ComputadorPanel.kt b/app/src/main/java/com/keyflow/ui/config/ComputadorPanel.kt index 3ccde6a2..efcf441f 100644 --- a/app/src/main/java/com/keyflow/ui/config/ComputadorPanel.kt +++ b/app/src/main/java/com/keyflow/ui/config/ComputadorPanel.kt @@ -2,7 +2,6 @@ package com.keyflow.ui.config import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState @@ -11,64 +10,49 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember -import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag -import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.unit.dp -import com.keyflow.data.Settings +import com.keyflow.computador.ConfigHosts +import com.keyflow.computador.chaves.ChaveSsh +import com.keyflow.computador.sessao.SessaoResumo import com.keyflow.i18n.tr import com.keyflow.i18n.trKey import com.keyflow.ui.common.verticalScrollbar import com.keyflow.ui.theme.LocalKeyFlowPalette -import kotlinx.coroutines.delay -import kotlinx.coroutines.launch const val COMPUTADOR_PANEL_TAG = "computador-panel" -const val COMPUTADOR_MODE_SSH_TAG = "computador-mode-ssh" -const val COMPUTADOR_MODE_LOCAL_TAG = "computador-mode-local" -const val COMPUTADOR_SSH_HOST_TAG = "computador-ssh-host" -const val COMPUTADOR_SSH_PORT_TAG = "computador-ssh-port" -const val COMPUTADOR_SSH_USER_TAG = "computador-ssh-user" -const val COMPUTADOR_SSH_PASSWORD_TAG = "computador-ssh-password" -const val COMPUTADOR_SSH_KEY_TAG = "computador-ssh-key" -const val COMPUTADOR_SSH_TEST_TAG = "computador-ssh-testar" -const val COMPUTADOR_SSH_RESULT_TAG = "computador-ssh-resultado" -const val COMPUTADOR_LOCAL_INFO_TAG = "computador-local-info" +const val COMPUTADOR_SECAO_HOSTS_TAG = "computador-secao-hosts" +const val COMPUTADOR_SECAO_CHAVES_TAG = "computador-secao-chaves" +const val COMPUTADOR_SECAO_SESSOES_TAG = "computador-secao-sessoes" +const val COMPUTADOR_EM_BREVE_TAG = "computador-secao-em-breve" -enum class ComputerMode(private val labelPt: String) { - SSH(trKey("SSH Remoto")), - LOCAL(trKey("Shell Local")), +/** As três seções da aba (CMP-59). */ +enum class SecaoComputador(private val rotuloPt: String) { + HOSTS(trKey("Hosts")), + CHAVES(trKey("Chaves")), + SESSOES(trKey("Sessões")), ; - val label: String get() = tr(labelPt) -} - -enum class SshAuthType(private val labelPt: String) { - PASSWORD(trKey("Senha")), - KEY(trKey("Chave Privada")), - ; - val label: String get() = tr(labelPt) + val rotulo: String get() = tr(rotuloPt) } /** - * Aba Computador: execução remota via SSH e shell local para automação e comandos do modelo. + * Aba Computador: **Hosts · Chaves · Sessões** (CMP-59), sem banner. Os hosts vêm do [dados]; as chaves e as sessões ganham tela nas próximas + * etapas (CMP-T16 e T17) e aqui só avisam. Sem `delay` simulado: o "Testar conexão" é o real ([AcoesDeHost.testar]). */ @Composable fun ComputadorPanel( - settings: Settings, - onSettingsChange: (Settings) -> Unit, + hosts: ConfigHosts, + chaves: List, + sessoes: List, + acoes: AcoesDeHost, modifier: Modifier = Modifier, + secaoInicial: SecaoComputador = SecaoComputador.HOSTS, ) { val palette = LocalKeyFlowPalette.current val scroll = rememberScrollState() - val scope = rememberCoroutineScope() - var testRunning by remember { mutableStateOf(false) } - var testResult by remember { mutableStateOf(null) } - - val currentMode = if (settings.computerMode == "local") ComputerMode.LOCAL else ComputerMode.SSH - val currentAuth = if (settings.computerSshAuthType == "key") SshAuthType.KEY else SshAuthType.PASSWORD - + var secao by remember { mutableStateOf(secaoInicial) } Column( modifier .fillMaxWidth() @@ -78,123 +62,17 @@ fun ComputadorPanel( .padding(top = 20.dp, bottom = 32.dp), verticalArrangement = Arrangement.spacedBy(GROUP_GAP), ) { - SettingsGroup(tr("Modo de execução")) { - Column(Modifier.padding(vertical = 16.dp)) { - Segmented( - options = ComputerMode.entries, - selected = currentMode, - label = { it.label }, - tag = { if (it == ComputerMode.SSH) COMPUTADOR_MODE_SSH_TAG else COMPUTADOR_MODE_LOCAL_TAG }, - onSelect = { mode -> - onSettingsChange(settings.copy(computerMode = if (mode == ComputerMode.LOCAL) "local" else "ssh")) - }, - ) - } - } - - if (currentMode == ComputerMode.SSH) { - SettingsGroup(tr("Conexão SSH")) { - Column(Modifier.padding(vertical = 16.dp), verticalArrangement = Arrangement.spacedBy(14.dp)) { - AutoSaveField( - label = tr("Host / Endereço IP"), - value = settings.computerSshHost, - onCommit = { onSettingsChange(settings.copy(computerSshHost = it)) }, - tag = COMPUTADOR_SSH_HOST_TAG, - keyboardType = KeyboardType.Uri, - ) - - Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.spacedBy(14.dp)) { - AutoSaveField( - label = tr("Porta"), - value = settings.computerSshPort.toString(), - onCommit = { - val port = it.toIntOrNull() ?: 22 - onSettingsChange(settings.copy(computerSshPort = port)) - }, - tag = COMPUTADOR_SSH_PORT_TAG, - keyboardType = KeyboardType.Number, - modifier = Modifier.weight(0.35f), - ) - AutoSaveField( - label = tr("Usuário"), - value = settings.computerSshUser, - onCommit = { onSettingsChange(settings.copy(computerSshUser = it)) }, - tag = COMPUTADOR_SSH_USER_TAG, - modifier = Modifier.weight(0.65f), - ) - } - } - } - - SettingsGroup(tr("Autenticação SSH")) { - Column(Modifier.padding(vertical = 16.dp), verticalArrangement = Arrangement.spacedBy(14.dp)) { - Segmented( - options = SshAuthType.entries, - selected = currentAuth, - label = { it.label }, - tag = { "computador-ssh-auth-${it.name.lowercase()}" }, - onSelect = { auth -> - onSettingsChange(settings.copy(computerSshAuthType = if (auth == SshAuthType.KEY) "key" else "password")) - }, - ) - - if (currentAuth == SshAuthType.PASSWORD) { - AutoSaveField( - label = tr("Senha"), - value = settings.computerSshPassword, - onCommit = { onSettingsChange(settings.copy(computerSshPassword = it)) }, - tag = COMPUTADOR_SSH_PASSWORD_TAG, - keyboardType = KeyboardType.Password, - ) - } else { - AutoSaveField( - label = tr("Chave privada OpenSSH"), - value = settings.computerSshKey, - onCommit = { onSettingsChange(settings.copy(computerSshKey = it)) }, - tag = COMPUTADOR_SSH_KEY_TAG, - ) - } - - SecondaryButton( - text = if (testRunning) tr("Testando conexão…") else tr("Testar conexão SSH"), - tag = COMPUTADOR_SSH_TEST_TAG, - onClick = { - testRunning = true - testResult = null - scope.launch { - delay(600) - testRunning = false - testResult = if (settings.computerSshHost.isBlank()) { - tr("Informe o host e usuário para testar.") - } else { - tr("Configuração SSH válida. Pronto para conectar.") - } - } - }, - modifier = Modifier.padding(top = 4.dp), - ) - - testResult?.let { msg -> - InfoNote( - text = msg, - tag = COMPUTADOR_SSH_RESULT_TAG, - modifier = Modifier.padding(top = 8.dp), - ) - } - } - } - } else { - SettingsGroup(tr("Shell Local")) { - Column(Modifier.padding(vertical = 16.dp), verticalArrangement = Arrangement.spacedBy(12.dp)) { - InfoNote( - text = tr("O suporte a shell local está em análise e desenvolvimento para integração com ambiente Linux embarcado."), - tag = COMPUTADOR_LOCAL_INFO_TAG, - ) - SettingSub( - tr("Em breve você poderá executar scripts, ferramentas de linha de comando e automações locais diretamente no aparelho."), - ) - } - } + Segmented( + options = SecaoComputador.entries, + selected = secao, + label = { it.rotulo }, + tag = { when (it) { SecaoComputador.HOSTS -> COMPUTADOR_SECAO_HOSTS_TAG; SecaoComputador.CHAVES -> COMPUTADOR_SECAO_CHAVES_TAG; SecaoComputador.SESSOES -> COMPUTADOR_SECAO_SESSOES_TAG } }, + onSelect = { secao = it }, + ) + when (secao) { + SecaoComputador.HOSTS -> ComputadorHosts(hosts.hosts, chaves, sessoes, acoes) + SecaoComputador.CHAVES -> InfoNote(tr("As chaves SSH ganham a própria seção na próxima etapa."), COMPUTADOR_EM_BREVE_TAG) + SecaoComputador.SESSOES -> InfoNote(tr("A lista de sessões chega na próxima etapa."), COMPUTADOR_EM_BREVE_TAG) } } } diff --git a/app/src/test/java/com/keyflow/computador/EdicaoDeHostTest.kt b/app/src/test/java/com/keyflow/computador/EdicaoDeHostTest.kt new file mode 100644 index 00000000..bef0badd --- /dev/null +++ b/app/src/test/java/com/keyflow/computador/EdicaoDeHostTest.kt @@ -0,0 +1,57 @@ +package com.keyflow.computador + +import org.junit.Assert.assertEquals +import org.junit.Assert.assertTrue +import org.junit.Test + +class EdicaoDeHostTest { + private fun host(id: String = "aaaaaaaa", nome: String = "dev", auth: AutenticacaoHost = AutenticacaoHost.Senha, lembrar: Boolean = true, agente: PoliticaAgente = PoliticaAgente.PROIBIDO, porta: Int = 22) = + Host(id, nome, "dev.example.org", porta, "yan", auth, lembrar, agente) + + @Test fun hostValidoEAcrescentadoComEspacosAparados() { + val r = EdicaoDeHost.aplicar(ConfigHosts(), host(nome = " dev ")) as ResultadoEdicao.Ok + assertEquals("dev", r.host.nome) + assertEquals(1, r.config.hosts.size) + } + + @Test fun porta0ENomeRepetidoVoltamOMotivo() { + val base = ConfigHosts(listOf(host(id = "11111111", nome = "dev"))) + val r = EdicaoDeHost.aplicar(base, host(id = "22222222", nome = "DEV", porta = 0)) as ResultadoEdicao.Erros + assertTrue(r.erros.any { it.campo == CampoHost.PORTA && it.motivo == MotivoHost.PORTA_INVALIDA }) + assertTrue(r.erros.any { it.campo == CampoHost.NOME && it.motivo == MotivoHost.NOME_REPETIDO }) + } + + @Test fun editarOProprioHostNaoColideComOProprioNome() { + val base = ConfigHosts(listOf(host(nome = "dev"))) + val r = EdicaoDeHost.aplicar(base, host(nome = "dev").copy(usuario = "outro")) as ResultadoEdicao.Ok + assertEquals(1, r.config.hosts.size) + assertEquals("outro", r.config.hosts.single().usuario) + } + + @Test fun agenteNuncaFicaLigadoEmHostQueOAppNaoAutenticaSozinho() { + val perguntar = EdicaoDeHost.aplicar(ConfigHosts(), host(auth = AutenticacaoHost.Perguntar, lembrar = false, agente = PoliticaAgente.PERMITIDO)) as ResultadoEdicao.Ok + assertEquals(PoliticaAgente.PROIBIDO, perguntar.host.agente) + val semSenha = EdicaoDeHost.aplicar(ConfigHosts(), host(auth = AutenticacaoHost.Senha, lembrar = false, agente = PoliticaAgente.PERMITIDO)) as ResultadoEdicao.Ok + assertEquals(PoliticaAgente.PROIBIDO, semSenha.host.agente) + val ok = EdicaoDeHost.aplicar(ConfigHosts(), host(auth = AutenticacaoHost.Senha, lembrar = true, agente = PoliticaAgente.PERMITIDO)) as ResultadoEdicao.Ok + assertEquals(PoliticaAgente.PERMITIDO, ok.host.agente) + val chavePassphrase = EdicaoDeHost.aplicar(ConfigHosts(), host(auth = AutenticacaoHost.Chave("k1"), lembrar = false, agente = PoliticaAgente.PERMITIDO)) { true } as ResultadoEdicao.Ok + assertEquals(PoliticaAgente.PROIBIDO, chavePassphrase.host.agente) + } + + @Test fun lembrarSenhaSoVaiComAutenticacaoPorSenha() { + val r = EdicaoDeHost.aplicar(ConfigHosts(), host(auth = AutenticacaoHost.Chave("k"), lembrar = true)) as ResultadoEdicao.Ok + assertEquals(false, r.host.lembrarSenha) + } + + @Test fun cinquentaHostsEOLimite() { + val cheio = ConfigHosts((1..50).map { host(id = "%08x".format(it), nome = "h$it") }) + val r = EdicaoDeHost.aplicar(cheio, host(id = "ffffffff", nome = "novo")) as ResultadoEdicao.Erros + assertTrue(r.erros.any { it.motivo == MotivoHost.LISTA_CHEIA }) + } + + @Test fun idNovoNaoColide() { + val ids = ArrayDeque(listOf("aaaaaaaa", "aaaaaaaa", "bbbbbbbb")) + assertEquals("bbbbbbbb", EdicaoDeHost.novoId(setOf("aaaaaaaa")) { ids.removeFirst() }) + } +} diff --git a/app/src/test/java/com/keyflow/computador/app/ComputadorPanelArquiteturaTest.kt b/app/src/test/java/com/keyflow/computador/app/ComputadorPanelArquiteturaTest.kt new file mode 100644 index 00000000..64c66db3 --- /dev/null +++ b/app/src/test/java/com/keyflow/computador/app/ComputadorPanelArquiteturaTest.kt @@ -0,0 +1,20 @@ +package com.keyflow.computador.app + +import java.io.File +import org.junit.Assert.assertFalse +import org.junit.Test + +/** CMP-08: sem teste simulado. O painel não importa `delay` e a frase fixa antiga sumiu do código. */ +class ComputadorPanelArquiteturaTest { + private val arquivos = listOf("ComputadorPanel.kt", "ComputadorHosts.kt", "ComputadorHostModal.kt").map { File("src/main/java/com/keyflow/ui/config/$it") } + + @Test fun painelNaoImportaDelay() { + for (f in arquivos) assertFalse("${f.name} importa delay", f.readLines().any { it.trim() == "import kotlinx.coroutines.delay" }) + } + + @Test fun fraseFixaESemSimulacaoSairamDoCodigo() { + val todo = File("src/main/java").walkTopDown().filter { it.isFile && it.extension == "kt" }.joinToString("\n") { it.readText() } + assertFalse(todo.contains("Configuração SSH válida")) + assertFalse(arquivos.any { Regex("""\bdelay\(""").containsMatchIn(it.readText()) }) + } +} diff --git a/app/src/test/java/com/keyflow/computador/app/TestadorDeConexaoTest.kt b/app/src/test/java/com/keyflow/computador/app/TestadorDeConexaoTest.kt new file mode 100644 index 00000000..303ff1d9 --- /dev/null +++ b/app/src/test/java/com/keyflow/computador/app/TestadorDeConexaoTest.kt @@ -0,0 +1,85 @@ +package com.keyflow.computador.app + +import com.keyflow.computador.AutenticacaoHost +import com.keyflow.computador.ChaveDoServidor +import com.keyflow.computador.Host +import com.keyflow.computador.RepositorioDeConfianca +import com.keyflow.computador.fixture.SshFixtureServer +import com.keyflow.computador.ssh.CausaSsh +import com.keyflow.computador.ssh.ResultadoTeste +import java.net.ServerSocket +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.SupervisorJob +import kotlinx.coroutines.runBlocking +import org.junit.Assert.assertEquals +import org.junit.Assert.assertTrue +import org.junit.Test + +/** CMP-08 contra o `SshFixtureServer` de verdade: o teste é real, mostra impressão e latência e nunca passa a confiar no servidor. */ +class TestadorDeConexaoTest { + private val escopo = CoroutineScope(SupervisorJob() + Dispatchers.IO) + + private class ConfiancaMem : RepositorioDeConfianca { + val itens = mutableListOf>() + override fun chavesConhecidas(host: String, porta: Int) = itens.filter { it.first == host && it.second == porta }.map { it.third } + override fun confiar(host: String, porta: Int, chave: ChaveDoServidor) { itens += Triple(host, porta, chave) } + override fun esquecer(host: String, porta: Int) { itens.removeAll { it.first == host && it.second == porta } } + } + + private fun host(porta: Int, usuario: String = "senha", auth: AutenticacaoHost = AutenticacaoHost.Senha) = Host("a1b2c3d4", "fixture", "127.0.0.1", porta, usuario, auth) + + @Test fun mostraImpressaoMetodoELatenciaENaoPassaAConfiarNoServidor() = runBlocking(Dispatchers.IO) { + SshFixtureServer().use { s -> + val base = ConfiancaMem() + val r = TestadorDeConexao(base, escopo).testar(host(s.porta), SshFixtureServer.SENHA_FALSA, null) + r as ResultadoTeste.Ok + assertEquals(s.hostSha256, r.impressao.texto) + assertEquals("password", r.metodo) + assertTrue(r.latenciaMs >= 0) + assertTrue("o teste não grava no known_hosts", base.itens.isEmpty()) + // E uma segunda vez também pergunta de novo (nada ficou). + assertTrue(TestadorDeConexao(base, escopo).testar(host(s.porta), SshFixtureServer.SENHA_FALSA, null) is ResultadoTeste.Ok) + } + } + + @Test fun senhaErradaEAutenticacaoESemSenhaTambem() = runBlocking(Dispatchers.IO) { + SshFixtureServer().use { s -> + val t = TestadorDeConexao(ConfiancaMem(), escopo) + assertEquals(ResultadoTeste.Falhou(CausaSsh.AUTENTICACAO), t.testar(host(s.porta), "errada", null)) + assertEquals(ResultadoTeste.Falhou(CausaSsh.AUTENTICACAO), t.testar(host(s.porta, auth = AutenticacaoHost.Perguntar), null, null)) + } + } + + @Test fun portaFechadaDizOServidorRecusouEnuncaAFraseFixaAntiga() = runBlocking(Dispatchers.IO) { + val livre = ServerSocket(0).use { it.localPort } + val r = TestadorDeConexao(ConfiancaMem(), escopo).testar(host(livre), "x", null) + assertEquals(ResultadoTeste.Falhou(CausaSsh.RECUSADA), r) + assertEquals("O servidor recusou a conexão.", CausaSsh.RECUSADA.frase) + } + + @Test fun servidorConhecidoComChaveDiferenteContinuaBloqueado() = runBlocking(Dispatchers.IO) { + SshFixtureServer().use { s -> + val base = ConfiancaMem() + base.confiar("127.0.0.1", s.porta, ChaveDoServidor("ecdsa-sha2-nistp256", ByteArray(8) { 1 })) + val r = TestadorDeConexao(base, escopo).testar(host(s.porta), SshFixtureServer.SENHA_FALSA, null) + assertEquals(ResultadoTeste.Falhou(CausaSsh.CHAVE_DO_SERVIDOR_MUDOU), r) + } + } + + @Test fun tempoMaximoVira15SegundosDeTempo() = runBlocking(Dispatchers.IO) { + val parado = com.keyflow.computador.ssh.ResultadoTeste.Falhou(CausaSsh.TEMPO) + val fabrica = { _: RepositorioDeConfianca, _: com.keyflow.computador.ssh.InteracaoComUsuario, _: CoroutineScope -> + object : com.keyflow.computador.ssh.ConexaoSsh { + override val eventos = kotlinx.coroutines.flow.MutableSharedFlow() + override val saida = kotlinx.coroutines.flow.emptyFlow() + override suspend fun conectar(destino: com.keyflow.computador.ssh.DestinoSsh, pty: com.keyflow.computador.ssh.PtyInfo): com.keyflow.computador.ssh.ResultadoConexao = error("não") + override suspend fun testar(destino: com.keyflow.computador.ssh.DestinoSsh): ResultadoTeste = kotlinx.coroutines.awaitCancellation() + override suspend fun escrever(bytes: ByteArray) = Unit + override suspend fun redimensionar(pty: com.keyflow.computador.ssh.PtyInfo) = Unit + override suspend fun fechar() = Unit + } + } + assertEquals(parado, TestadorDeConexao(ConfiancaMem(), escopo, limiteMs = 200, fabrica = fabrica).testar(host(1), null, null)) + } +} diff --git a/app/src/test/java/com/keyflow/computador/sessao/GerenciadorDeSessoesTest.kt b/app/src/test/java/com/keyflow/computador/sessao/GerenciadorDeSessoesTest.kt index a56a8332..c2ee3f5f 100644 --- a/app/src/test/java/com/keyflow/computador/sessao/GerenciadorDeSessoesTest.kt +++ b/app/src/test/java/com/keyflow/computador/sessao/GerenciadorDeSessoesTest.kt @@ -149,4 +149,20 @@ class GerenciadorDeSessoesTest { escopo.cancel() } } + + @Test fun desligarOAgenteNoHostFechaSoAsSessoesDoAgenteNeleEDesfazOCompartilhamento() = runTest { + val g = gerenciador(DependenciasFalsas { currentTime }) + val agenteNoHost = aberta(g.abrir(h(1), DonoDaSessao.AGENTE)) + val agenteOutro = aberta(g.abrir(h(2), DonoDaSessao.AGENTE)) + val usuario = aberta(g.abrir(h(1), DonoDaSessao.USUARIO)) + runCurrent() + g.compartilhar(usuario.id, true) + g.fecharDoAgenteNoHost(h(1).id) + runCurrent() + assertEquals(EstadoSessao.Encerrada(MotivoEncerramento.AGENTE_PARADO), agenteNoHost.estado.value) + assertEquals(EstadoSessao.Aberta, agenteOutro.estado.value) + assertEquals(EstadoSessao.Aberta, usuario.estado.value) + assertEquals(false, usuario.compartilhada) + assertTrue(g.sessoesVisiveisAoAgente().map { it.id } == listOf(agenteOutro.id)) + } } From 251daa768e1a7b2c336dd8512da073d19382dad4 Mon Sep 17 00:00:00 2001 From: Yan Lucas Date: Sat, 31 Oct 2026 18:34:40 +0000 Subject: [PATCH 05/12] Corrige os filtros do terminal conforme o parser do libvterm --- .specs/features/computer-terminal/spec.md | 2 +- .specs/features/computer-terminal/tasks.md | 2 + .../2026-10-31-computador-d-correcao.md | 13 + .../computador/app/FiltroDeRespostas.kt | 320 +++--------------- .../com/keyflow/computador/app/ParserVt.kt | 197 +++++++++++ .../app/DivergenciasDoParserTest.kt | 86 +++++ .../computador/app/ParserLibvtermTest.kt | 112 ++++++ .../resources/computador/parser/oraculo.c | 74 ++++ 8 files changed, 538 insertions(+), 268 deletions(-) create mode 100644 .specs/project/licoes/2026-10-31-computador-d-correcao.md create mode 100644 app/src/main/java/com/keyflow/computador/app/ParserVt.kt create mode 100644 app/src/test/java/com/keyflow/computador/app/DivergenciasDoParserTest.kt create mode 100644 app/src/test/java/com/keyflow/computador/app/ParserLibvtermTest.kt create mode 100644 app/src/test/resources/computador/parser/oraculo.c diff --git a/.specs/features/computer-terminal/spec.md b/.specs/features/computer-terminal/spec.md index 8fdb9078..7550d807 100644 --- a/.specs/features/computer-terminal/spec.md +++ b/.specs/features/computer-terminal/spec.md @@ -416,7 +416,7 @@ Nenhuma. Q1–Q13 foram respondidas em 29/10 (D12–D24). Q8, Q9, Q10, Q11 e Q13 | CMP-32 | P1-E | CMP-T12, CMP-T20 | Parcial — serviço `specialUse`, notificação só com contagem (CMP-T12) verificados | | CMP-33 | P1-E | CMP-T12, CMP-T19 | Parcial — manifesto, `property` e checklist da Play (CMP-T12); declaração no Console é [YAN] | | CMP-34 | P1-E | CMP-T10, CMP-T12 | Parcial — serviço sobe com a 1ª sessão e cai com a última (CMP-T12); falta a tela | -| CMP-35 | P1-F | CMP-T13 | Verificada (`SequenciasHostisTest` com a gravação hostil, `FiltroDaSaidaDoServidorTest`, respostas do emulador real em `LigacaoEmuladorTest`) | +| CMP-35 | P1-F | CMP-T13 | Verificada; revisão #96: números normalizados, C1/S8C1T, C0/DEL, CAN/SUB e limites sem vazamento (`DivergenciasDoParserTest`, fuzz diferencial com o parser C em `ParserLibvtermTest`, mais gravação hostil/fragmentação e `LigacaoEmuladorTest`) | | CMP-36 | P1-F | CMP-T10, CMP-T13 | Verificada (texto e scrollback só em memória; emulador no registro do processo) | | CMP-37 | P2-G | CMP-T22 | Pending | | CMP-38 | P2-G | CMP-T23 | Pending | diff --git a/.specs/features/computer-terminal/tasks.md b/.specs/features/computer-terminal/tasks.md index e13cd46e..ed346127 100644 --- a/.specs/features/computer-terminal/tasks.md +++ b/.specs/features/computer-terminal/tasks.md @@ -241,6 +241,8 @@ para permitir essa verificação sem reescrever a branch; detalhes na [lição]( `Back` sai da activity **sem** fechar as sessões; fechar a aba fecha a sessão; 9ª sessão mostra o motivo; `onTrimMemory` com a activity invisível não perde o scrollback de texto; um teste falha se a activity pedir `FLAG_SECURE`; a fonte embutida tem glifos Nerd e licença OFL ou compatível com Apache-2.0, ou a lição registra a monoespaçada do sistema. - **Tests**: unit + instrumentado. **Gate**: `quick` + `pool instrumentar com.keyflow.ui.terminal.TerminalScreenTest com.keyflow.computador.app.LigacaoEmuladorTest`. **Commit**: `feat(computador): terminal na tela com abas e proteção contra sequências do servidor`. +**Correção da revisão #96 (2026-10-31):** CMP-35 usa tokenização compatível com o parser C fixado, normaliza números, bloqueia S8C1T e filtra respostas C1. Strings são retidas até a decisão; limite de 1 MiB descarta até o final/cancelamento, sem liberar prefixos. Regressões e fuzz contra o libvterm real: 25/25; mutação liberando S8C1T detectada e revertida. Mouse SGR da tela continua pendente em CMP-25/T27. + ### CMP-T14 — Entrada: KeyFlow IME, Gboard, teclado físico, teclas extras e ditado — **Status: concluída em 2026-10-31 (Gboard e toque real no KeyFlow IME ficam para a T21 manual)** - **What**: teclas extras (Esc, Tab, Ctrl e Alt "pegajosos", setas, `|`, `~`, `/`, `-`, F1–F12 numa segunda linha) em Compose acima do teclado; mapeamento de teclado físico (Ctrl+letra, Alt, Home/End, PageUp/Down, F-keys); o campo de entrada do terminal conversa com o **KeyFlow IME** sem duplicar caractere nem deixar composição pendurada (`TYPE_NULL`; ver "bug do Termius" no Bloco 1 do `DEVELOPMENT-ORDER.md`), e o **ditado da orbe** insere o texto transcrito como entrada (nunca acrescenta Enter; quebra de linha ditada segue a regra de colar do CMP-28). diff --git a/.specs/project/licoes/2026-10-31-computador-d-correcao.md b/.specs/project/licoes/2026-10-31-computador-d-correcao.md new file mode 100644 index 00000000..2fec46a5 --- /dev/null +++ b/.specs/project/licoes/2026-10-31-computador-d-correcao.md @@ -0,0 +1,13 @@ +# 2026-10-31 — Correções da revisão do Computador D (#96) + +## CMP-35: a gramática vem do parser, não da representação textual + +`ParserVt` acompanha o `parser.c` fixado: C0/DEL não terminam CSI/DCS, CAN/SUB cancelam e ESC dentro de string só é elevado a C1 quando é ST. Prefixos nunca são entregues antes da decisão. Números decimais perdem zeros à esquerda; argumentos fora da faixa e sequências acima de 1 MiB são descartados até o final/cancelamento, sem mudar para passagem livre. O limite retém no máximo 1 MiB por sequência; imagens seguem Off nesta fase, e a integração de imagens deverá respeitar esse orçamento ou fornecer sua própria fronteira segura. + +Os controles do teclado continuam sendo teclas: Ctrl+E e Alt+Ctrl+X/Z precisam conservar seus bytes. A direção do fluxo distingue o ENQ do servidor dos controles produzidos pelo teclado; isso não tenta identificar a origem de callbacks nativos. A regressão adicional confere todos os controles com/sem Alt, Alt+Esc e Alt+Unicode; a matriz de `MapaTecladoFisicoTest` confere cada combinação mapeada. O lote final do filtro e do mapa passou em 42/42 testes. Bytes inválidos após ESC também são ignorados na decisão, como no C; o orçamento não é reiniciado ao reconhecer um introduzidor depois deles. + +O filtro de respostas reconhece C1 bruto sem confundi-lo com continuação UTF-8. O servidor não pode ligar S8C1T; a saída ainda aplica a lista fechada mesmo se receber respostas C1. Títulos cancelados não são publicados. Remover a sequência inteira evita deixar o emulador preso em uma string cujo ESC foi consumido. + +`ParserLibvtermTest` compila o C original com o compilador do host dentro dos unitários do pool (sem NDK/JNI), consulta os callbacks do parser e compara 500 fluxos fragmentados e 300 fluxos de bytes arbitrários: consultas proibidas ausentes, DECCKM igual e texto posterior visível. Testes do filtro: 25/25. A mutação que liberou S8C1T derrubou três testes (incluindo o fuzz); revertida e 25/25 novamente. + +Mouse SGR na tela continua para CMP-25/T27; esta correção não o conecta. diff --git a/app/src/main/java/com/keyflow/computador/app/FiltroDeRespostas.kt b/app/src/main/java/com/keyflow/computador/app/FiltroDeRespostas.kt index 30e5e93a..cf8bfae2 100644 --- a/app/src/main/java/com/keyflow/computador/app/FiltroDeRespostas.kt +++ b/app/src/main/java/com/keyflow/computador/app/FiltroDeRespostas.kt @@ -2,308 +2,94 @@ package com.keyflow.computador.app import java.io.ByteArrayOutputStream -/** - * CMP-35, lado da **saída do emulador para o servidor**. O termlib devolve pelo mesmo `onKeyboardInput` as teclas do usuário e as respostas do - * emulador, e a origem não se separa por flag (a saída nativa vai por `Handler.postAtTime`: medido na CMP-T1). Então o filtro olha **o que é**: - * texto e teclas passam; entre as sequências de escape só passa o que está na lista fechada de teclas e de respostas permitidas - * (DA1/DA2, DSR/CPR, tamanho, cores, kitty `a=q`). Todo o resto (DCS inteiro, OSC 52, relatório de título, DECRQSS, qualquer final de CSI - * desconhecido) é descartado antes de chegar ao servidor. - * - * Sem estado: o termlib entrega cada tecla ou resposta num pedaço só. Uma sequência que **não termina** no pedaço é descartada - * inteira (mas `ESC` sozinho, ou `ESC` + uma letra, é a tecla Esc/Alt e passa). - */ +/** CMP-35: lista fechada de teclas/respostas, inclusive C1 de oito bits. Cada callback traz uma resposta completa. */ class FiltroDeRespostas { - /** Quantos pedaços de sequência foram descartados desde que o filtro nasceu (para os testes e o diagnóstico; nunca guarda conteúdo). */ @Volatile var descartes: Int = 0 private set fun filtrar(entrada: ByteArray): ByteArray { - if (entrada.none { it.toInt() == ESC }) return entrada val saida = ByteArrayOutputStream(entrada.size) - val n = entrada.size - var i = 0 - while (i < n) { - val b = entrada[i].toInt() and 0xff - if (b != ESC) { saida.write(b); i++; continue } - if (i + 1 >= n) { saida.write(ESC); i++; continue } - when (entrada[i + 1].toInt() and 0xff) { - '['.code -> { - if (i + 2 >= n) { saida.write(entrada, i, 2); i += 2; continue } - val fim = fimDeCsi(entrada, i + 2) - if (fim < 0) { descartes++; break } - if (csiPermitido(entrada, i + 2, fim)) saida.write(entrada, i, fim - i + 1) else descartes++ - i = fim + 1 - } - ']'.code -> { - if (i + 2 >= n) { saida.write(entrada, i, 2); i += 2; continue } - val fim = fimDeString(entrada, i + 2) - if (fim.fimDoConteudo < 0) { descartes++; break } - if (oscPermitido(entrada, i + 2, fim.fimDoConteudo)) saida.write(entrada, i, fim.proximo - i) else descartes++ - i = fim.proximo - } - '_'.code -> { - if (i + 2 >= n) { saida.write(entrada, i, 2); i += 2; continue } - val fim = fimDeString(entrada, i + 2) - if (fim.fimDoConteudo < 0) { descartes++; break } - if (apcDoKittyPermitido(entrada, i + 2, fim.fimDoConteudo)) saida.write(entrada, i, fim.proximo - i) else descartes++ - i = fim.proximo - } - 'P'.code, 'X'.code, '^'.code -> { - // DCS, SOS e PM: o usuário nunca gera (Alt+P chega sozinho, tratado acima pelo tamanho do pedaço); o emulador não responde com eles. - if (i + 2 >= n) { saida.write(entrada, i, 2); i += 2; continue } - val fim = fimDeString(entrada, i + 2) - descartes++ - if (fim.fimDoConteudo < 0) break - i = fim.proximo - } - 'O'.code -> { - // SS3 (teclas em modo aplicação): ESC O . - if (i + 2 < n && (entrada[i + 2].toInt() and 0xff) in 0x40..0x7e) { saida.write(entrada, i, 3); i += 3 } else { saida.write(ESC); i++ } + val parser = ParserVt( + texto = { saida.write(it) }, + descarte = { descartes++ }, + saidaDoEmulador = true, + sequencia = { tipo, bruto, corpo -> + val t = corpo.toString(Charsets.ISO_8859_1) + val permitir = when (tipo) { + ParserVt.Tipo.ESC -> t.length == 1 || t == " F" + ParserVt.Tipo.CSI -> CsiVt.ler(t)?.let(::csiPermitido) == true + ParserVt.Tipo.OSC -> OscVt.ler(t)?.let { cor.matches("${it.comando};${it.texto}") } == true + ParserVt.Tipo.APC -> apcDoKittyPermitido(t) + else -> false } - else -> { saida.write(ESC); i++ } // Alt+tecla: o próximo byte é tratado no laço (inclusive outro ESC). - } - } + if (permitir) saida.write(bruto) else descartes++ + }, + ) + parser.processar(entrada) + parser.terminarResposta() return saida.toByteArray() } - private class FimDeString(val fimDoConteudo: Int, val proximo: Int) - - /** Índice do byte final do CSI (0x40..0x7e) depois de parâmetros e intermediários, ou -1 se não termina ou se tem byte inválido. */ - private fun fimDeCsi(d: ByteArray, de: Int): Int { - var i = de - while (i < d.size) { - val b = d[i].toInt() and 0xff - when { - b in 0x20..0x3f -> i++ - b in 0x40..0x7e -> return i - else -> return -1 - } - } - return -1 - } - - /** Termina em BEL ou `ESC \`. [FimDeString.fimDoConteudo] é onde o conteúdo acaba; [FimDeString.proximo], o primeiro byte depois do terminador. */ - private fun fimDeString(d: ByteArray, de: Int): FimDeString { - var i = de - while (i < d.size) { - val b = d[i].toInt() and 0xff - if (b == BEL) return FimDeString(i, i + 1) - if (b == ESC && i + 1 < d.size && d[i + 1].toInt() == '\\'.code) return FimDeString(i, i + 2) - i++ - } - return FimDeString(-1, d.size) - } - - private fun csiPermitido(d: ByteArray, de: Int, fim: Int): Boolean { - val final = (d[fim].toInt() and 0xff).toChar() - val corpo = String(d, de, fim - de, Charsets.ISO_8859_1) - // Nenhum intermediário (espaço, `$`, `"`, `'`…): DECRQM, DECSCUSR e afins não estão na lista. - if (corpo.any { it.code in 0x20..0x2f }) return false - val prefixo = corpo.firstOrNull()?.takeIf { it in "<=>?" } - val numeros = if (prefixo != null) corpo.substring(1) else corpo - if (numeros.any { it !in '0'..'9' && it != ';' && it != ':' }) return false - return when (final) { - // Teclas: setas, Home/End, F1–F4, Shift+Tab, PageUp/Down e F5+ (`~`), kitty `u`, foco (I/O). - 'A', 'B', 'C', 'D', 'E', 'F', 'H', 'P', 'Q', 'S', 'Z', '~', 'u' -> prefixo == null || (final == 'u' && prefixo == '?') - 'I', 'O' -> prefixo == null && numeros.isEmpty() - // CPR (`r;c R`) e F3 (`1;mod R`). - 'R' -> prefixo == null && numeros.isNotEmpty() - // DA1 (`? … c`) e DA2 (`> … c`). - 'c' -> prefixo == '?' || prefixo == '>' - // DSR: `0 n` ou `? … n`. - 'n' -> (prefixo == null && numeros == "0") || prefixo == '?' - // Mouse SGR. - 'M', 'm' -> prefixo == '<' && numeros.isNotEmpty() - // Tamanho: `4;h;w t` (pixels) e `8;linhas;colunas t` (células); `6;ch;cw t` (célula). - 't' -> prefixo == null && numeros.substringBefore(';') in setOf("4", "6", "8") + private fun csiPermitido(c: CsiVt): Boolean { + if (c.intermediarios.isNotEmpty()) return false + val a = c.argumentos + return when (c.final) { + 'A', 'B', 'C', 'D', 'E', 'F', 'H', 'P', 'Q', 'S', 'Z', '~', 'u' -> c.lider.isEmpty() || (c.final == 'u' && c.lider == "?") + 'I', 'O' -> c.lider.isEmpty() && a == listOf(null) + 'R' -> c.lider.isEmpty() && a.any { it != null } + 'c' -> c.lider == "?" || c.lider == ">" + 'n' -> (c.lider.isEmpty() && a == listOf(0)) || c.lider == "?" + 'M', 'm' -> c.lider == "<" && a.any { it != null } + 't' -> c.lider.isEmpty() && a.first() in setOf(4, 6, 8) else -> false } } private val cor = Regex("^(?:(?:10|11|12);|4;[0-9]{1,3};)rgb:[0-9a-fA-F]{1,4}/[0-9a-fA-F]{1,4}/[0-9a-fA-F]{1,4}$") - - private fun oscPermitido(d: ByteArray, de: Int, fimConteudo: Int): Boolean { - if (fimConteudo - de > 64) return false - return cor.matches(String(d, de, fimConteudo - de, Charsets.ISO_8859_1)) - } - - /** Resposta do kitty `a=q`: `G` + chaves `k=v` separadas por vírgula + `;` + texto imprimível curto (`OK`, `ENOTSUP:…`). */ - private fun apcDoKittyPermitido(d: ByteArray, de: Int, fimConteudo: Int): Boolean { - if (fimConteudo - de < 2 || fimConteudo - de > 300) return false - val texto = String(d, de, fimConteudo - de, Charsets.ISO_8859_1) - if (texto[0] != 'G') return false - val ponto = texto.indexOf(';') - if (ponto < 0) return false - val chaves = texto.substring(1, ponto) - val mensagem = texto.substring(ponto + 1) - return chaves.all { it.isLetterOrDigit() || it == '=' || it == ',' } && mensagem.all { it.code in 0x20..0x7e } - } - - private companion object { - const val ESC = 0x1b - const val BEL = 0x07 + private fun apcDoKittyPermitido(t: String): Boolean { + if (t.length !in 2..300 || t[0] != 'G') return false + val ponto = t.indexOf(';') + return ponto >= 0 && t.substring(1, ponto).all { it.isLetterOrDigit() || it == '=' || it == ',' } && t.substring(ponto+1).all { it.code in 0x20..0x7e } } } /** - * CMP-35, lado do **servidor para o emulador**: consome, antes do termlib, o que o app não quer que seja respondido ou exibido — - * `ENQ`, `DECRQSS` (`DCS $ q … ST`), relatório de título (`CSI 20 t` e `CSI 21 t`), `OSC 21` e a **leitura** do clipboard (`OSC 52 ; … ; ?`). - * A escrita (`OSC 52` com dados) passa: o termlib a entrega ao `onClipboardCopy`, onde o consentimento mora. - * - * Também lê o título (`OSC 0` e `OSC 2`) **sem alterá-lo**, para o rótulo da aba (o termlib 0.3.14 não publica o título), e o entrega a - * [aoTitulo] já sanitizado por [RotuloDeAba]. - * - * Com estado: sequências partidas entre pedaços (a rede parte onde quiser) são seguradas até a decisão. O resultado de qualquer divisão em - * pedaços é igual ao do fluxo inteiro (`FiltroDaSaidaDoServidorTest` confere por sorteio). + * CMP-35: o fluxo do servidor é tokenizado antes de decidir. Prefixos e strings só saem completos; + * cancelamento descarta o trecho ainda retido. Assim retirar uma consulta nunca deixa um OSC/DCS aberto no libvterm. */ class FiltroDaSaidaDoServidor(private val aoTitulo: (String) -> Unit = {}) { - private enum class E { NORMAL, ESC, CSI, CSI_DESCARTA, OSC, DCS, STRING_PASSA, STRING_PASSA_ESC, STRING_DESCARTA, STRING_DESCARTA_ESC, TITULO, TITULO_ESC } - - private var estado = E.NORMAL - private val seguro = ByteArrayOutputStream() - private val titulo = ByteArrayOutputStream() private var saida = ByteArrayOutputStream() - private var descartados = 0 @Volatile var consumidos: Int = 0 private set - - /** DECCKM (`CSI ? 1 h` / `l`): o servidor ligou o modo de aplicação das setas? O termlib não publica; o mapa do teclado precisa. */ @Volatile var modoAplicacaoDasSetas: Boolean = false private set + private val parser = ParserVt(texto = { saida.write(it) }, descarte = { consumidos++ }, sequencia = ::sequencia) - /** Processa [entrada] e devolve o que segue para o emulador. Não é seguro chamar de duas threads ao mesmo tempo. */ fun processar(entrada: ByteArray): ByteArray { saida = ByteArrayOutputStream(entrada.size) - for (x in entrada) passo(x.toInt() and 0xff) + parser.processar(entrada) return saida.toByteArray() } + fun reiniciar() { modoAplicacaoDasSetas = false; parser.reiniciar() } - fun reiniciar() { modoAplicacaoDasSetas = false; estado = E.NORMAL; seguro.reset(); titulo.reset(); descartados = 0 } - - private fun emitirSegurados() { seguro.writeTo(saida); seguro.reset() } - private fun passa(b: Int) { saida.write(b) } - - private fun iniciarEsc() { seguro.reset(); seguro.write(ESC); estado = E.ESC } - - private fun passo(b: Int) { - when (estado) { - E.NORMAL -> when (b) { - ESC -> iniciarEsc() - ENQ -> consumidos++ - else -> passa(b) - } - E.ESC -> when (b) { - '['.code -> { seguro.write(b); estado = E.CSI } - ']'.code -> { seguro.write(b); estado = E.OSC } - 'P'.code -> { seguro.write(b); estado = E.DCS } - ESC -> passa(ESC) // o primeiro ESC passa; o segundo continua segurado - else -> { emitirSegurados(); estado = E.NORMAL; passo(b) } - } - E.CSI -> when { - b in 0x20..0x3f -> { seguro.write(b); if (seguro.size() > MAX_CSI) { seguro.reset(); estado = E.CSI_DESCARTA } } - b in 0x40..0x7e -> { - val corpo = seguro.toByteArray().copyOfRange(2, seguro.size()).toString(Charsets.ISO_8859_1) - if (b == 't'.code && (corpo == "21" || corpo == "20")) { consumidos++; seguro.reset() } else { - if ((b == 'h'.code || b == 'l'.code) && corpo.startsWith("?") && "1" in corpo.substring(1).split(';')) modoAplicacaoDasSetas = b == 'h'.code - seguro.write(b); emitirSegurados() - } - estado = E.NORMAL - } - // Byte que não pertence a um CSI (controle, ESC, UTF-8): o pedaço segurado é **descartado**, não emitido. Emitir deixaria o emulador no - // meio de um CSI enquanto o filtro volta ao normal, e uma remoção seguinte (ENQ, CSI 21 t) poderia juntar as duas pontas numa sequência proibida. - else -> { seguro.reset(); estado = E.NORMAL; consumidos++; passo(b) } - } - E.CSI_DESCARTA -> when { - b in 0x20..0x3f -> Unit - b in 0x40..0x7e -> estado = E.NORMAL - else -> { estado = E.NORMAL; passo(b) } - } - E.OSC -> { - if (b == BEL) { emitirSegurados(); passa(b); estado = E.NORMAL; return } - if (b == ESC) { seguro.reset(); consumidos++; iniciarEsc(); return } - // Controle dentro do prefixo do OSC: malformado, engolido até o terminador (pelo mesmo motivo do CSI). - if (b < 0x20) { seguro.reset(); descartados = 0; consumidos++; estado = E.STRING_DESCARTA; return } - seguro.write(b) - val corpo = seguro.toByteArray().copyOfRange(2, seguro.size()).toString(Charsets.ISO_8859_1) - when (decidirOsc(corpo)) { - Decisao.AINDA_NAO -> if (seguro.size() > MAX_PREFIXO_OSC) { emitirSegurados(); estado = E.STRING_PASSA } - Decisao.PASSA -> { emitirSegurados(); estado = E.STRING_PASSA } - Decisao.DESCARTA -> { consumidos++; seguro.reset(); descartados = 0; estado = E.STRING_DESCARTA } - Decisao.TITULO -> { emitirSegurados(); titulo.reset(); estado = E.TITULO } - } - } - E.DCS -> { - // ESC dentro do prefixo aborta o DCS: o `ESC P` segurado some (emiti-lo deixaria o emulador numa string aberta e o que vem depois sairia como conteúdo). - if (b == ESC) { seguro.reset(); consumidos++; iniciarEsc(); return } - seguro.write(b) - val corpo = seguro.toByteArray().copyOfRange(2, seguro.size()).toString(Charsets.ISO_8859_1) - when { - corpo == "$" -> Unit - corpo == "\$q" -> { consumidos++; seguro.reset(); descartados = 0; estado = E.STRING_DESCARTA } - else -> { emitirSegurados(); estado = E.STRING_PASSA } - } - } - E.STRING_PASSA -> if (b == ENQ) consumidos++ else if (b == ESC) { seguro.reset(); seguro.write(ESC); estado = E.STRING_PASSA_ESC } else { passa(b); if (b == BEL) estado = E.NORMAL } - E.STRING_PASSA_ESC -> { - if (b == '\\'.code) { emitirSegurados(); passa(b); estado = E.NORMAL } else { estado = E.ESC; passo(b) } + private fun sequencia(tipo: ParserVt.Tipo, bruto: ByteArray, corpo: ByteArray) { + val t = corpo.toString(Charsets.ISO_8859_1) + when (tipo) { + ParserVt.Tipo.ESC -> if (t == " G") { consumidos++; return } + ParserVt.Tipo.CSI -> { + val c = CsiVt.ler(t) ?: run { consumidos++; return } + if (c.lider.isEmpty() && c.intermediarios.isEmpty() && c.final == 't' && c.argumentos.first() in setOf(20, 21)) { consumidos++; return } + if (c.lider == "?" && c.intermediarios.isEmpty() && c.final in "hl" && 1 in c.argumentos) modoAplicacaoDasSetas = c.final == 'h' } - E.STRING_DESCARTA -> when { - b == BEL -> estado = E.NORMAL - b == ESC -> estado = E.STRING_DESCARTA_ESC - else -> if (++descartados > MAX_STRING_DESCARTADA) estado = E.NORMAL + ParserVt.Tipo.OSC -> { + val osc = OscVt.ler(t) ?: run { consumidos++; return } + if (osc.comando == 21 || (osc.comando == 52 && osc.texto.substringAfter(';', "").startsWith("?"))) { consumidos++; return } + if (osc.comando == 0 || osc.comando == 2) RotuloDeAba.sanitizar(osc.texto.toByteArray(Charsets.ISO_8859_1).toString(Charsets.UTF_8))?.let(aoTitulo) } - E.STRING_DESCARTA_ESC -> { - if (b == '\\'.code) estado = E.NORMAL else { iniciarEsc(); passo(b) } - } - E.TITULO -> when (b) { - BEL -> { entregarTitulo(); passa(b); estado = E.NORMAL } - ESC -> { seguro.reset(); seguro.write(ESC); estado = E.TITULO_ESC } - ENQ -> consumidos++ - else -> { passa(b); if (titulo.size() <= MAX_TITULO_BRUTO) titulo.write(b) } - } - E.TITULO_ESC -> { - if (b == '\\'.code) { entregarTitulo(); emitirSegurados(); passa(b); estado = E.NORMAL } else { titulo.reset(); estado = E.ESC; passo(b) } - } - } - } - - private enum class Decisao { AINDA_NAO, PASSA, DESCARTA, TITULO } - - private fun decidirOsc(corpo: String): Decisao { - val ponto = corpo.indexOf(';') - val numero = if (ponto < 0) corpo else corpo.substring(0, ponto) - if (numero.isNotEmpty() && numero.any { it !in '0'..'9' }) return Decisao.PASSA - if (ponto < 0) return if (numero.length > 4) Decisao.PASSA else Decisao.AINDA_NAO - return when (numero) { - "0", "2" -> Decisao.TITULO - "21" -> Decisao.DESCARTA - "52" -> { - // `52 ; ; `: só a leitura (`?`) é descartada. - val resto = corpo.substring(ponto + 1) - val p2 = resto.indexOf(';') - if (p2 < 0) Decisao.AINDA_NAO - else if (p2 + 1 >= resto.length) Decisao.AINDA_NAO - else if (resto[p2 + 1] == '?') Decisao.DESCARTA else Decisao.PASSA - } - else -> Decisao.PASSA + ParserVt.Tipo.DCS -> if (t.startsWith("\$q")) { consumidos++; return } + else -> Unit } - } - - private fun entregarTitulo() { - val bruto = titulo.toByteArray().toString(Charsets.UTF_8) - // O corpo ainda traz o prefixo "0;" ou "2;" que já foi segurado; o que sobra em [titulo] é só o texto. - RotuloDeAba.sanitizar(bruto)?.let(aoTitulo) - titulo.reset() - } - - private companion object { - const val ESC = 0x1b - const val BEL = 0x07 - const val ENQ = 0x05 - const val MAX_CSI = 48 - const val MAX_PREFIXO_OSC = 24 - const val MAX_STRING_DESCARTADA = 8192 - const val MAX_TITULO_BRUTO = 512 + saida.write(bruto) } } diff --git a/app/src/main/java/com/keyflow/computador/app/ParserVt.kt b/app/src/main/java/com/keyflow/computador/app/ParserVt.kt new file mode 100644 index 00000000..aa18edf8 --- /dev/null +++ b/app/src/main/java/com/keyflow/computador/app/ParserVt.kt @@ -0,0 +1,197 @@ +package com.keyflow.computador.app + +import java.io.ByteArrayOutputStream + +/** + * Fronteira de sequências conforme o parser.c fixado no fork: C0/DEL não encerram comandos, CAN/SUB cancelam, + * ESC reinicia comandos e, dentro de strings, só ESC \\ vira C1. Nenhum prefixo é entregue antes da decisão. + * O orçamento descarta a sequência inteira até o cancelamento/final; nunca muda para "passar" por excesso. + */ +internal class ParserVt( + private val texto: (Int) -> Unit, + private val sequencia: (Tipo, ByteArray, ByteArray) -> Unit, + private val descarte: () -> Unit, + private val saidaDoEmulador: Boolean = false, +) { + enum class Tipo { ESC, CSI, OSC, DCS, APC, PM, SOS } + private enum class Estado { NORMAL, ESC, CSI_LIDER, CSI_ARGS, CSI_INTERMED, OSC_COMANDO, DCS_COMANDO, STRING } + private var estado = Estado.NORMAL + private var tipo = Tipo.ESC + private val bruto = ByteArrayOutputStream() + private val semControles = ByteArrayOutputStream() + private var excedeu = false + private var escNaString = false + private var utf8 = true + private var continuacoes = 0 + + fun reiniciar() { limpar(); utf8 = true; continuacoes = 0 } + + private fun limpar() { estado = Estado.NORMAL; bruto.reset(); semControles.reset(); excedeu = false; escNaString = false } + private fun guardar(b: Int, semantico: Boolean = true) { + if (excedeu) return + if (bruto.size() >= MAX_SEQUENCIA) { bruto.reset(); semControles.reset(); excedeu = true; return } + bruto.write(b) + if (semantico) semControles.write(b) + } + private fun iniciar(t: Tipo, bytes: IntArray) { + limpar(); tipo = t + estado = when (t) { + Tipo.ESC -> Estado.ESC + Tipo.CSI -> Estado.CSI_LIDER + Tipo.OSC -> Estado.OSC_COMANDO + Tipo.DCS -> Estado.DCS_COMANDO + else -> Estado.STRING + } + for (b in bytes) guardar(b, false) + } + private fun concluir() { + if (excedeu) descarte() else { + val conteudo = semControles.toByteArray() + if (tipo == Tipo.ESC) { + if (conteudo.contentEquals(byteArrayOf('%'.code.toByte(), '@'.code.toByte()))) utf8 = false + if (conteudo.contentEquals(byteArrayOf('%'.code.toByte(), 'G'.code.toByte()))) utf8 = true + } + sequencia(tipo, bruto.toByteArray(), conteudo) + } + limpar() + } + + /** O callback de saída entrega teclas/respostas completas; ESC sozinho e Alt+introduzidor continuam sendo teclas. */ + fun terminarResposta() { + if (estado == Estado.NORMAL) return + val b = bruto.toByteArray() + if (!excedeu && b.size in 1..2 && b[0].toInt() == ESC) b.forEach { texto(it.toInt() and 255) } else descarte() + limpar() + } + + fun processar(bytes: ByteArray) { for (b in bytes) passo(b.toInt() and 255) } + + private fun emString() = estado == Estado.OSC_COMANDO || estado == Estado.DCS_COMANDO || estado == Estado.STRING + private fun comum(b: Int) { if (estado == Estado.NORMAL) texto(b) else guardar(b) } + + private fun passo(b: Int) { + // Um byte de continuação UTF-8 não é um controle C1 (por exemplo, ћ contém 0x9b). + if (!escNaString && utf8 && continuacoes > 0 && b in 0x80..0xbf) { continuacoes--; comum(b); return } + continuacoes = 0 + if (!escNaString && utf8 && (estado == Estado.NORMAL || emString()) && b in 0xc2..0xf4) { + continuacoes = when { b < 0xe0 -> 1; b < 0xf0 -> 2; else -> 3 } + comum(b); return + } + if (b == CAN || b == SUB) { + if (saidaDoEmulador && estado == Estado.ESC && bruto.size() == 1) texto(ESC) + else if (estado != Estado.NORMAL) descarte() + limpar(); texto(b); return + } + if (b == ESC) { + if (emString()) { guardar(b, false); escNaString = true } else { + // Alt+Esc é uma tecla legítima; os prefixos de protocolos continuam retidos/descartados. + if (saidaDoEmulador && estado == Estado.ESC && bruto.size() == 1) texto(ESC) + else if (estado != Estado.NORMAL) descarte() + iniciar(Tipo.ESC, intArrayOf(ESC)) + } + return + } + if (b == 0 || b == 127 || (b < 32 && !(b == BEL && emString()))) { + if (b == ENQ && !saidaDoEmulador) descarte() else if (estado == Estado.NORMAL) texto(b) else guardar(b, false) + return + } + if (escNaString) { + if (b == '\\'.code) { guardar(b, false); concluir(); return } + // No libvterm, ESC [ dentro de uma string CANCELA a string e vira escape '[', não um CSI. + // O prefixo não foi emitido: consumir esse escape evita inventar um CSI no emulador agora em NORMAL. + descarte(); limpar() + if (b in 0x40..0x5f) return + iniciar(Tipo.ESC, intArrayOf(ESC)) + } + if (saidaDoEmulador && estado == Estado.ESC && bruto.size() == 1 && b in 0xc2..0xf4) { + // Alt+caractere Unicode não é uma resposta ANSI; mantém também continuações que parecem C1. + bruto.toByteArray().forEach { texto(it.toInt() and 255) } + limpar(); passo(b); return + } + when (estado) { + Estado.NORMAL -> { + val t = if (!utf8 || saidaDoEmulador) when (b) { + 0x90 -> Tipo.DCS; 0x98 -> Tipo.SOS; 0x9b -> Tipo.CSI + 0x9d -> Tipo.OSC; 0x9e -> Tipo.PM; 0x9f -> Tipo.APC + else -> null + } else null + if (t != null) iniciar(t, intArrayOf(b)) else if (saidaDoEmulador && b in 0x80..0x9f) descarte() else texto(b) + } + Estado.ESC -> { + val t = if (semControles.size() == 0) when (b) { + '['.code -> Tipo.CSI; ']'.code -> Tipo.OSC; 'P'.code -> Tipo.DCS + '_'.code -> Tipo.APC; '^'.code -> Tipo.PM; 'X'.code -> Tipo.SOS + else -> null + } else null + if (t != null) { + // C0 entre ESC e o introduzidor foi segurado e precisa conservar a ordem. + val prefixo = bruto.toByteArray() + val jaExcedeu = excedeu + iniciar(t, intArrayOf()) + excedeu = jaExcedeu + prefixo.forEach { guardar(it.toInt() and 255, false) } + guardar(b, false) + } else { + // Bytes fora de intermediários/final são ignorados pelo libvterm, mantendo in_esc. + guardar(b, semantico = b in 0x20..0x7e) + if (b in 0x30..0x7e) concluir() + } + } + Estado.CSI_LIDER -> if (b in 0x3c..0x3f) guardar(b) else { estado = Estado.CSI_ARGS; csi(b) } + Estado.CSI_ARGS, Estado.CSI_INTERMED -> csi(b) + Estado.OSC_COMANDO -> when { + b in '0'.code..'9'.code -> guardar(b) + b == ';'.code -> { guardar(b); estado = Estado.STRING } + else -> { estado = Estado.STRING; string(b) } + } + Estado.DCS_COMANDO -> { guardar(b); if (b in 0x40..0x7e) estado = Estado.STRING } + Estado.STRING -> string(b) + } + } + private fun csi(b: Int) { + if (estado == Estado.CSI_ARGS && (b in '0'.code..'9'.code || b == ';'.code || b == ':'.code)) { guardar(b); return } + estado = Estado.CSI_INTERMED + when (b) { + in 0x20..0x2f -> guardar(b) + in 0x40..0x7e -> { guardar(b); concluir() } + else -> { descarte(); limpar() } + } + } + private fun string(b: Int) { + if (b == BEL || (b == 0x9c && (!utf8 || saidaDoEmulador))) { guardar(b, false); concluir() } else guardar(b) + } + private companion object { + const val ESC = 27; const val CAN = 24; const val SUB = 26; const val BEL = 7; const val ENQ = 5 + const val MAX_SEQUENCIA = 1_048_576 + } +} + +/** Valores fora da faixa do parser são recusados; não podem dar a volta e virar um comando conhecido. */ +internal fun decimalVt(texto: String): Int? { + val n = texto.trimStart('0').ifEmpty { "0" } + return n.toIntOrNull()?.takeIf { it >= 0 && it < Int.MAX_VALUE } +} + +internal data class CsiVt(val lider: String, val argumentos: List, val intermediarios: String, val final: Char) { + companion object { + private val formato = Regex("^([<=>?]*)([0-9;:]*)([ -/]*)([@-~])$") + fun ler(conteudo: String): CsiVt? { + val m = formato.matchEntire(conteudo) ?: return null + if (m.groupValues[1].length > 1 || m.groupValues[3].length > 15) return null + val partes = m.groupValues[2].split(';', ':') + if (partes.size > 16) return null + val args = partes.map { if (it.isEmpty()) null else decimalVt(it) ?: return null } + return CsiVt(m.groupValues[1], args, m.groupValues[3], m.groupValues[4][0]) + } + } +} + +internal data class OscVt(val comando: Int, val texto: String) { + companion object { + fun ler(conteudo: String): OscVt? { + val n = conteudo.takeWhile { it in '0'..'9' } + val comando = if (n.isEmpty()) -1 else decimalVt(n) ?: return null + return OscVt(comando, conteudo.substring(n.length).removePrefix(";")) + } + } +} diff --git a/app/src/test/java/com/keyflow/computador/app/DivergenciasDoParserTest.kt b/app/src/test/java/com/keyflow/computador/app/DivergenciasDoParserTest.kt new file mode 100644 index 00000000..12922098 --- /dev/null +++ b/app/src/test/java/com/keyflow/computador/app/DivergenciasDoParserTest.kt @@ -0,0 +1,86 @@ +package com.keyflow.computador.app + +import org.junit.Assert.assertArrayEquals +import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Assert.assertTrue +import org.junit.Test + +/** Regressões da revisão: equivalências que o parser C reconhece e comparações literais não reconheciam. */ +class DivergenciasDoParserTest { + private fun bytes(s: String) = s.toByteArray(Charsets.ISO_8859_1) + private fun filtrar(s: String) = FiltroDaSaidaDoServidor().processar(bytes(s)) + + @Test fun s8c1tNaoLigaRespostasEmOitoBits() { + assertEquals(0, filtrar("\u001b G").size) + assertEquals(0, filtrar("\u001b \u0000\u007fG").size) + } + + @Test fun respostasC1SemEscTambemPassamPelaListaFechada() { + for (s in listOf("\u0090\$r0m\u009c", "\u009b21t", "\u009b>0q", "\u009b?1;1\$y", "\u009d52;c;c2VncmVkbw==\u009c")) { + assertEquals(s.toList().toString(), 0, FiltroDeRespostas().filtrar(bytes(s)).size) + } + assertArrayEquals(bytes("\u009b0n"), FiltroDeRespostas().filtrar(bytes("\u009b0n"))) + val utf8 = "ação ЛћÜ 日本".toByteArray() + assertArrayEquals(utf8, FiltroDeRespostas().filtrar(utf8)) + } + + @Test fun parametrosNumericosSaoNormalizados() { + for (s in listOf("\u001b[021t", "\u001b[00020t", "\u001b]052;c;?\u0007", "\u001b]021;?\u0007")) { + assertEquals(s.toList().toString(), 0, filtrar(s).size) + } + val titulos = mutableListOf() + val f = FiltroDaSaidaDoServidor { titulos += it } + val titulo = bytes("\u001b]00;servidor\u0007") + assertArrayEquals(titulo, f.processar(titulo)) + assertEquals(listOf("servidor"), titulos) + f.processar(bytes("\u001b[?01h")) + assertTrue(f.modoAplicacaoDasSetas) + f.processar(bytes("\u001b[?0001l")) + assertFalse(f.modoAplicacaoDasSetas) + } + + @Test fun seletoresDoClipboardNaoTemAtalhoQueLibereConsultaLonga() { + for (n in listOf(30, 9_000, 100_000, 1_100_000)) { + assertEquals(0, filtrar("\u001b]052;${"c".repeat(n)};?\u001b\\").size) + } + } + + @Test fun c0EDelNaoInterrompemCsiOuComandoDcs() { + for (c in listOf('\u0000', '\u0001', '\u0005', '\n', '\u007f')) { + assertEquals(0, filtrar("\u001b[02${c}1t").size) + assertEquals(0, filtrar("\u001bP${c}\$qm\u001b\\").size) + assertEquals(0, filtrar("\u001b]05${c}2;c;?\u0007").size) + } + } + + @Test fun cancelarTituloNaoPublicaTituloNemPrendeOProximoTexto() { + for (c in listOf('\u0018', '\u001a')) { + val titulos = mutableListOf() + val f = FiltroDaSaidaDoServidor { titulos += it } + val saiu = f.processar(bytes("\u001b]0;velho${c}texto\u001b]00;novo\u0007")) + assertEquals(listOf("novo"), titulos) + assertTrue(String(saiu, Charsets.ISO_8859_1).contains("texto")) + } + } + @Test fun controlesDoUsuarioIncluindoCtrlENaoSaoConsultasDoServidor() { + for (codigo in (0..31).toList()+127) { + val tecla = byteArrayOf(codigo.toByte()) + assertArrayEquals("Ctrl de código $codigo", tecla, FiltroDeRespostas().filtrar(tecla)) + val alt = byteArrayOf(27) + tecla + assertArrayEquals("Alt+Ctrl de código $codigo", alt, FiltroDeRespostas().filtrar(alt)) + } + assertEquals("ENQ do servidor continua bloqueado", 0, filtrar("\u0005").size) + val altEsc = byteArrayOf(27, 27) + assertArrayEquals(altEsc, FiltroDeRespostas().filtrar(altEsc)) + val altUnicode = byteArrayOf(27) + "ћ".toByteArray() + assertArrayEquals(altUnicode, FiltroDeRespostas().filtrar(altUnicode)) + } + @Test fun bytesIgnoradosDentroDeEscNaoEscondemComandos() { + for (codigo in 128..255) { + val ignorado = codigo.toChar() + assertEquals("S8C1T com $codigo", 0, filtrar("\u001b${ignorado} G").size) + assertEquals("CSI com $codigo", 0, filtrar("\u001b${ignorado}[021t").size) + } + } +} diff --git a/app/src/test/java/com/keyflow/computador/app/ParserLibvtermTest.kt b/app/src/test/java/com/keyflow/computador/app/ParserLibvtermTest.kt new file mode 100644 index 00000000..fd54d0e3 --- /dev/null +++ b/app/src/test/java/com/keyflow/computador/app/ParserLibvtermTest.kt @@ -0,0 +1,112 @@ +package com.keyflow.computador.app + +import java.io.ByteArrayOutputStream +import java.io.File +import java.util.concurrent.TimeUnit +import kotlin.random.Random +import org.junit.Assert.assertEquals +import org.junit.Assert.assertTrue +import org.junit.ClassRule +import org.junit.Test +import org.junit.rules.TemporaryFolder + +/** O oráculo compila o C original DURANTE os unitários do pool: não simula o parser em Kotlin. */ +class ParserLibvtermTest { + private fun bytes(s: String) = s.toByteArray(Charsets.ISO_8859_1) + private fun hex(b: ByteArray) = b.joinToString("") { "%02x".format(it.toInt() and 255) } + private data class Observado(val proibidos: Int, val modo: Boolean, val estado: Int, val texto: String) + + private fun analisar(fluxos: List, oitoBits: Boolean = false): List { + val out = temporarios.newFile() + val erro = temporarios.newFile() + val cmd = mutableListOf(executavel().absolutePath).apply { if (oitoBits) add("8bit") } + val p = ProcessBuilder(cmd).redirectOutput(out).redirectError(erro).start() + p.outputStream.bufferedWriter().use { w -> fluxos.forEach { w.write(hex(it)); w.newLine() } } + assertTrue("oráculo excedeu 20 s", p.waitFor(20, TimeUnit.SECONDS)) + assertEquals(erro.readText(), 0, p.exitValue()) + return out.readLines().map { + val c = it.split(' ', limit = 4) + Observado(c[0].toInt(), c[1] == "1", c[2].toInt(), c.getOrElse(3) { "" }) + }.also { assertEquals(fluxos.size, it.size) } + } + + @Test fun oraculoReconheceOsAtaquesDaRevisao() { + val ataques = listOf("\u0005", "\u001b G", "\u001b[021t", "\u001b\u00ff G", "\u001b\u00ff[021t", "\u001b]021;?\u0007", "\u001b]052;${"c".repeat(40)};?\u001b\\", "\u001bP\u0000\$qm\u001b\\") + val brutos = analisar(ataques.map(::bytes)) + assertEquals(listOf(1, 2, 4, 2, 4, 8, 16, 32), brutos.map { it.proibidos }) + val filtrados = analisar(ataques.map { FiltroDaSaidaDoServidor().processar(bytes(it)) }) + assertTrue(filtrados.all { it.proibidos == 0 && it.estado == 0 }) + } + + @Test fun escapeDentroDeStringNaoPrendeOLibvtermDepoisDaRemocao() { + val fluxos = listOf("\u001b]0;velho\u001b[21tMARCADOR", "\u001bPzvelho\u001b]52;c;?\u0007MARCADOR") + val original = analisar(fluxos.map(::bytes)) + val filtrado = analisar(fluxos.map { FiltroDaSaidaDoServidor().processar(bytes(it)) }) + original.zip(filtrado).forEach { (a, b) -> + assertEquals(0, b.proibidos) + assertEquals(0, b.estado) + assertTrue(a.texto.endsWith(hex(bytes("MARCADOR")))) + assertTrue(b.texto.endsWith(hex(bytes("MARCADOR")))) + } + } + + @Test fun fuzzComparaFluxosFiltradosComOParserRealEConfereDecckm() { + val r = Random(20261031) + val vocabulario = listOf("\u001b\u00ff G", "\u001b\u00ff[021t", "texto", "\u001b[021t", "\u001b[20t", "\u001b]052;cccc;?\u0007", "\u001b]021;?\u001b\\", "\u001bP\u0000\$qm\u001b\\", "\u001b G", "\u001b[?01h", "\u001b[?1l", "\u001b[2\u00051t", "\u001b]00;nome\u001b\\", "\u0018", "\u001a", "\u007f", "\u0000", "\u001b", "\u001b]8;;https://a.b/\u001b\\", "\u001bP", "\u001b]52;", "\u0007") + val modos = mutableListOf() + val filtrados = List(500) { + val original = buildString { repeat(r.nextInt(1, 15)) { append(vocabulario.random(r)) }; append("\u0018FIM") } + val f = FiltroDaSaidaDoServidor() + val out = ByteArrayOutputStream() + val b = bytes(original) + var i = 0 + while (i < b.size) { val fim = minOf(b.size, i+r.nextInt(1, 8)); out.write(f.processar(b.copyOfRange(i, fim))); i=fim } + modos += f.modoAplicacaoDasSetas + out.toByteArray() + } + analisar(filtrados).forEachIndexed { i, o -> + assertEquals("fluxo $i: ${hex(filtrados[i])}", 0, o.proibidos) + assertEquals("estado do fluxo $i", 0, o.estado) + assertEquals("DECCKM do fluxo $i", modos[i], o.modo) + assertTrue("texto posterior ao fluxo $i", o.texto.endsWith(hex(bytes("FIM")))) + } + } + + @Test fun bytesArbitrariosFiltradosNaoDeixamConsultaNemPrefixoAbertoNoParserReal() { + val r = Random(96) + val fim = bytes("FIM") + val filtrados = List(300) { + val b = ByteArray(r.nextInt(1, 300)) { (if (r.nextInt(3) == 0) 27 else r.nextInt(256)).toByte() } + FiltroDaSaidaDoServidor().processar(b)+fim + } + analisar(filtrados).forEachIndexed { i, o -> + assertEquals("consultas do fluxo $i", 0, o.proibidos) + assertEquals("estado do fluxo $i", 0, o.estado) + assertTrue("texto posterior do fluxo $i: ${hex(filtrados[i])}", o.texto.endsWith(hex(fim))) + } + } + + @Test fun respostasC1ProibidasNaoChegamAoParserDoServidor() { + val ataques = listOf("\u0090\$qm\u009c", "\u009b021t", "\u009d052;c;?\u009c") + assertEquals(listOf(32, 4, 16), analisar(ataques.map(::bytes), true).map { it.proibidos }) + assertTrue(analisar(ataques.map { FiltroDeRespostas().filtrar(bytes(it)) }, true).all { it.proibidos == 0 }) + } + + companion object { + @get:ClassRule @JvmStatic val temporarios = TemporaryFolder() + private var oraculo: File? = null + @Synchronized private fun executavel(): File { + oraculo?.let { return it } + val lib = File("../third_party/termlib/src/main/cpp/libvterm").canonicalFile + val exe = File(temporarios.root, "parser-libvterm") + val log = File(temporarios.root, "compilacao.log") + val fontes = lib.resolve("src").listFiles()!!.filter { it.extension == "c" }.map { it.path } + val cmd = listOf("cc", "-std=gnu11", "-DVTERM_STATIC", "-I${lib.resolve("include")}", "-I${lib.resolve("src")}", "src/test/resources/computador/parser/oraculo.c") + fontes + listOf("-o", exe.path) + val p = ProcessBuilder(cmd).redirectErrorStream(true).redirectOutput(log).start() + assertTrue("compilação do oráculo excedeu 30 s", p.waitFor(30, TimeUnit.SECONDS)) + assertEquals(log.readText(), 0, p.exitValue()) + oraculo = exe + return exe + } + } +} diff --git a/app/src/test/resources/computador/parser/oraculo.c b/app/src/test/resources/computador/parser/oraculo.c new file mode 100644 index 00000000..836db2a8 --- /dev/null +++ b/app/src/test/resources/computador/parser/oraculo.c @@ -0,0 +1,74 @@ +/* Oráculo de teste: usa o parser.c real, sem JNI nem uma segunda implementação do parser. */ +#include "vterm_internal.h" +#include +#include +#include + +typedef struct { + VTerm *vt; + unsigned proibidos; + int modo, selecao; + unsigned char ultimos[16]; + size_t textos; +} Observacao; +static int texto(const char *bytes, size_t len, void *user) { + Observacao *o = user; + size_t i = 0; + for (; i < len; i++) { + unsigned char b = bytes[i]; + if (b < 32 || b == 127 || (!vterm_get_utf8(o->vt) && b >= 128 && b < 160)) break; + o->ultimos[o->textos++ % 16] = b; + } + return i; +} +static int controle(unsigned char c, void *user) { + if (c == 5) ((Observacao *)user)->proibidos |= 1; + return 1; +} +static int escape(const char *s, size_t n, void *user) { + Observacao *o = user; + if (n == 2 && !memcmp(s, " G", 2)) o->proibidos |= 2; + if (n == 2 && !memcmp(s, "%@", 2)) vterm_set_utf8(o->vt, 0); + if (n == 2 && !memcmp(s, "%G", 2)) vterm_set_utf8(o->vt, 1); + return 1; +} +static int csi(const char *lider, const long args[], int n, const char *inter, char final, void *user) { + Observacao *o = user; + if (!lider && !inter && final == 't' && (CSI_ARG(args[0]) == 20 || CSI_ARG(args[0]) == 21)) o->proibidos |= 4; + if (lider && !strcmp(lider, "?") && !inter && (final == 'h' || final == 'l')) { + for (int i = 0; i < n; i++) if (CSI_ARG(args[i]) == 1) o->modo = final == 'h'; + } + return 1; +} +static int osc(int comando, VTermStringFragment f, void *user) { + Observacao *o = user; + if (comando == 21) o->proibidos |= 8; + if (f.initial) o->selecao = 0; + if (comando == 52) for (size_t i = 0; i < f.len; i++) { + if (o->selecao == 0) { if (f.str[i] == ';') o->selecao = 1; } + else if (o->selecao == 1) { if (f.str[i] == '?') o->proibidos |= 16; o->selecao = 2; } + } + return 1; +} +static int dcs(const char *comando, size_t n, VTermStringFragment f, void *user) { + (void)f; + if (n == 2 && !memcmp(comando, "$q", 2)) ((Observacao *)user)->proibidos |= 32; + return 1; +} +int main(int argc, char **argv) { + char *linha = NULL; size_t cap = 0; ssize_t n; + const VTermParserCallbacks cb = { .text = texto, .control = controle, .escape = escape, .csi = csi, .osc = osc, .dcs = dcs }; + while ((n = getline(&linha, &cap, stdin)) > 0) { + Observacao o = {0}; o.vt = vterm_new(24, 80); + vterm_set_utf8(o.vt, argc < 2 || strcmp(argv[1], "8bit")); + vterm_parser_set_callbacks(o.vt, &cb, &o); + unsigned char *bytes = malloc((size_t)n/2+1); size_t len = 0; + for (ssize_t i = 0; i+1 < n && linha[i] != '\n'; i += 2) { unsigned x; if (sscanf(linha+i, "%2x", &x) != 1) return 2; bytes[len++] = x; } + vterm_input_write(o.vt, (const char *)bytes, len); + printf("%u %d %d ", o.proibidos, o.modo, o.vt->parser.state); + size_t inicio = o.textos > 16 ? o.textos-16 : 0; + for (size_t i = inicio; i < o.textos; i++) printf("%02x", o.ultimos[i % 16]); + printf("\n"); free(bytes); vterm_free(o.vt); + } + free(linha); return 0; +} From fa547251f04e89f1866765a3ccb8c6fea6a91fff Mon Sep 17 00:00:00 2001 From: Yan Lucas Date: Sat, 31 Oct 2026 18:48:32 +0000 Subject: [PATCH 06/12] Enfileira teclas mapeadas junto com o texto do terminal --- .specs/features/computer-terminal/spec.md | 2 +- .specs/features/computer-terminal/tasks.md | 2 + .../2026-10-31-computador-d-correcao.md | 6 +++ .../computador/app/EntradaTerminalImeTest.kt | 44 +++++++++++++++++-- .../keyflow/computador/app/LigacaoEmulador.kt | 14 ++---- third_party/termlib/UPSTREAM.md | 6 +++ third_party/termlib/build.gradle.kts | 1 + .../connectbot/terminal/TerminalDispatcher.kt | 6 +++ .../connectbot/terminal/TerminalEmulator.kt | 10 +++++ .../terminal/KeyboardOrderingTest.kt | 39 ++++++++++++++++ 10 files changed, 115 insertions(+), 15 deletions(-) create mode 100644 third_party/termlib/src/test/java/org/connectbot/terminal/KeyboardOrderingTest.kt diff --git a/.specs/features/computer-terminal/spec.md b/.specs/features/computer-terminal/spec.md index 7550d807..86301340 100644 --- a/.specs/features/computer-terminal/spec.md +++ b/.specs/features/computer-terminal/spec.md @@ -407,7 +407,7 @@ Nenhuma. Q1–Q13 foram respondidas em 29/10 (D12–D24). Q8, Q9, Q10, Q11 e Q13 | CMP-23 | P1-C | CMP-T9, CMP-T13 | Verificada (`window-change` com colunas, linhas e pixels ao girar, `TerminalActivityTest`) | | CMP-24 | P1-D | CMP-T13, CMP-T17 | Parcial — `TerminalActivity`, abas, barra de estado e Voltar sem fechar sessões verificados (T13); falta a lista de sessões na aba (T17) | | CMP-25 | P1-D | CMP-T13 | Verificada, salvo mouse (fica para a Fase 2/T27) e tamanho de fonte persistido (termlib sem retorno) | -| CMP-26 | P1-D | CMP-T14 | Verificada (`MapaTecladoFisicoTest`, `TeclasExtrasTest`) | +| CMP-26 | P1-D | CMP-T14 | Mapeamento verificado; revisão #96: FIFO única com texto/IME e `KeyboardOrderingTest` 3/3, mutação revertida. Novos casos de ordem no IME pendentes por ANR do SystemUI antes da instalação | | CMP-27 | P1-D | CMP-T14 | Verificada com o KeyFlow IME como teclado atual via `InputConnection`; Gboard e toque real: T21 (manual) | | CMP-28 | P1-D | CMP-T13 | Verificada (colar e ditado com quebra de linha pedem confirmação; `ESC[201~` removido até não sobrar) | | CMP-29 | P1-D | CMP-T10, CMP-T13 | Verificada (9ª sessão mostra o motivo; `onTrimMemory` não perde o texto) | diff --git a/.specs/features/computer-terminal/tasks.md b/.specs/features/computer-terminal/tasks.md index ed346127..a142264c 100644 --- a/.specs/features/computer-terminal/tasks.md +++ b/.specs/features/computer-terminal/tasks.md @@ -253,6 +253,8 @@ para permitir essa verificação sem reescrever a branch; detalhes na [lição]( com o Gboard (se instalado no emulador) o mesmo resultado; alvos ≥ 48 dp; `contentDescription` em toda tecla extra. - **Tests**: unit + instrumentado. **Gate**: `quick` + `pool instrumentar com.keyflow.computador.app.EntradaTerminalImeTest`. **Commit**: `feat(computador): teclas extras, teclado físico e ditado no terminal`. +**Correção da revisão #96 (2026-10-31):** teclas mapeadas usam `dispatchKeyboardInput` na mesma FIFO do texto/IME, sem atraso de 40 ms. Os três unitários da fila real passaram; mutação emitindo fora da fila derrubou 3/3 e foi revertida. `EntradaTerminalImeTest` agora inclui Esc+i, Backspace+letra e texto+Enter rápidos. Instrumentados pendentes: a verificação prévia detectou ANR ativo do SystemUI e a execução foi suspensa, sem instalar ou reiniciar para contornar. + ### Fase 1D — Telas ### CMP-T15 — Painel Hosts: lista, modal, "Testar conexão" real e "pode ser usado pelo agente" — **Status: concluída em 2026-10-31** diff --git a/.specs/project/licoes/2026-10-31-computador-d-correcao.md b/.specs/project/licoes/2026-10-31-computador-d-correcao.md index 2fec46a5..94e162dc 100644 --- a/.specs/project/licoes/2026-10-31-computador-d-correcao.md +++ b/.specs/project/licoes/2026-10-31-computador-d-correcao.md @@ -11,3 +11,9 @@ O filtro de respostas reconhece C1 bruto sem confundi-lo com continuação UTF-8 `ParserLibvtermTest` compila o C original com o compilador do host dentro dos unitários do pool (sem NDK/JNI), consulta os callbacks do parser e compara 500 fluxos fragmentados e 300 fluxos de bytes arbitrários: consultas proibidas ausentes, DECCKM igual e texto posterior visível. Testes do filtro: 25/25. A mutação que liberou S8C1T derrubou três testes (incluindo o fuzz); revertida e 25/25 novamente. Mouse SGR na tela continua para CMP-25/T27; esta correção não o conecta. + +## CMP-26/27: ordem depende de uma fila, não de um atraso + +O texto do Compose passa por `QueuedTerminal` e pela `TerminalDispatcher`; as teclas do app agora entram na mesma FIFO com `dispatchKeyboardInput`. O callback continua único e aplica o filtro antes do consumidor SSH. O atraso de 40 ms saiu. Três testes JVM retêm o worker e conferem Esc+i, Backspace+letra e texto+Enter sem relógio: 3/3; mutação emitindo fora da fila: 3/3 vermelhos, revertida, 3/3 verdes. + +Os nove instrumentados de entrada foram preparados (inclusive o componente correto do IME), mas não executados. Antes da instalação, a verificação sob Gradle → emulador encontrou `Application Not Responding: com.android.systemui`, com lastanr `executing service ...SystemUIAuxiliaryDumpService`. Conforme a tarefa, os instrumentados foram suspensos; sem fechar diálogo, esconder erro, reiniciar ou mudar o AVD. A compilação dos APKs passou; após as correções restantes, a compilação final também confere os testes novos. diff --git a/app/src/androidTest/java/com/keyflow/computador/app/EntradaTerminalImeTest.kt b/app/src/androidTest/java/com/keyflow/computador/app/EntradaTerminalImeTest.kt index 6958c4bd..6f2e393e 100644 --- a/app/src/androidTest/java/com/keyflow/computador/app/EntradaTerminalImeTest.kt +++ b/app/src/androidTest/java/com/keyflow/computador/app/EntradaTerminalImeTest.kt @@ -33,7 +33,7 @@ class EntradaTerminalImeTest { private val host = Host(id = "h1", nome = "dev-server", endereco = "dev.example.org", usuario = "yan", autenticacao = AutenticacaoHost.Senha) private val deps = DependenciasFalsas() private var imeAnterior: String? = null - private val imeKeyFlow = "com.keyflow/.ime.KeyFlowKeyboardService" + private val imeKeyFlow get() = "${ctx.packageName}/com.keyflow.ime.KeyFlowKeyboardService" private fun shell(cmd: String): String = instr.uiAutomation.executeShellCommand(cmd).use { f -> java.io.FileInputStream(f.fileDescriptor).bufferedReader().readText() } @@ -41,6 +41,7 @@ class EntradaTerminalImeTest { imeAnterior = shell("settings get secure default_input_method").trim().takeIf { it.isNotEmpty() && it != "null" } shell("ime enable $imeKeyFlow") shell("ime set $imeKeyFlow") + assertEquals(imeKeyFlow, shell("settings get secure default_input_method").trim()) } @After fun restaurarIme() { imeAnterior?.let { shell("ime set $it") } } @@ -85,10 +86,8 @@ class EntradaTerminalImeTest { @Test fun digitarLsLaEEnterChegaExatamenteUmaVez() = comTerminal { _, view -> val enter = KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ENTER) val soltar = KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_ENTER) - conexao(view) { ic -> ic.commitText("ls -la", 1) } - // O termlib solta texto de vários caracteres numa thread própria, um instante depois; uma pessoa não aperta Enter no mesmo milissegundo. - esperar { escrito() == "ls -la" } conexao(view) { ic -> + ic.commitText("ls -la", 1) // O mesmo evento por dois caminhos (o `aa` da T1): só um chega. ic.sendKeyEvent(enter); view.dispatchKeyEvent(enter) ic.sendKeyEvent(soltar); view.dispatchKeyEvent(soltar) @@ -98,6 +97,43 @@ class EntradaTerminalImeTest { assertEquals(hex("ls -la\r"), hex(escrito())) } + private fun tecla(view: View, ic: android.view.inputmethod.InputConnection, codigo: Int) { + for (acao in listOf(KeyEvent.ACTION_DOWN, KeyEvent.ACTION_UP)) { + val evento = KeyEvent(acao, codigo) + ic.sendKeyEvent(evento); view.dispatchKeyEvent(evento) + } + } + + @Test fun escEImeNaMesmaChamadaNaoInvertemAOrdem() = comTerminal { _, view -> + conexao(view) { ic -> tecla(view, ic, KeyEvent.KEYCODE_ESCAPE); ic.commitText("i", 1) } + esperar { escrito().length >= 2 } + assertEquals(hex("\u001bi"), hex(escrito())) + } + + @Test fun escEILetrasFisicasNaoInvertemAOrdem() = comTerminal { _, view -> + conexao(view) { _ -> + for (codigo in listOf(KeyEvent.KEYCODE_ESCAPE, KeyEvent.KEYCODE_I)) { + view.dispatchKeyEvent(KeyEvent(KeyEvent.ACTION_DOWN, codigo)) + view.dispatchKeyEvent(KeyEvent(KeyEvent.ACTION_UP, codigo)) + } + } + esperar { escrito().length >= 2 } + assertEquals(hex("\u001bi"), hex(escrito())) + } + + @Test fun backspaceETextoRapidosNaoInvertemAOrdem() = comTerminal { _, view -> + conexao(view) { ic -> tecla(view, ic, KeyEvent.KEYCODE_DEL); ic.commitText("a", 1) } + esperar { escrito().length >= 2 } + assertEquals(hex("\u007fa"), hex(escrito())) + } + + @Test fun enterEsperaTodoOTextoEnfileiradoSemAtrasoArbitrario() = comTerminal { _, view -> + val texto = "x".repeat(10_000) + conexao(view) { ic -> ic.commitText(texto, 1); tecla(view, ic, KeyEvent.KEYCODE_ENTER) } + esperar { escrito().endsWith("\r") } + assertEquals(texto+"\r", escrito()) + } + @Test fun acentosChegamEmUtf8EBackspaceApagaUmCaractere() = comTerminal { _, view -> val apagar = KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DEL) conexao(view) { ic -> ic.commitText("ç", 1); ic.commitText("é", 1); ic.sendKeyEvent(apagar); view.dispatchKeyEvent(apagar) } diff --git a/app/src/main/java/com/keyflow/computador/app/LigacaoEmulador.kt b/app/src/main/java/com/keyflow/computador/app/LigacaoEmulador.kt index f524197a..76209bcf 100644 --- a/app/src/main/java/com/keyflow/computador/app/LigacaoEmulador.kt +++ b/app/src/main/java/com/keyflow/computador/app/LigacaoEmulador.kt @@ -150,18 +150,12 @@ class LigacaoEmulador( /** Bytes de teclas que o app mesmo mapeou (teclas extras, teclado físico): passam pelo mesmo filtro e pela mesma fila, na ordem. */ fun enviar(bytes: ByteArray) { - val ok = filtroDeSaida.filtrar(bytes) - if (ok.isEmpty() || fechada) return - // O texto digitado ou ditado sai do termlib por um callback **postado** no looper principal (`postAtTime`); uma tecla mapeada que fosse direto - // para a fila passaria à frente dele (medido: Enter chegando antes de `ls -la`). O termlib processa o texto numa thread própria e posta o callback depois; um atraso curto (e igual para todas as teclas mapeadas, que - // seguem em ordem) deixa o texto sair primeiro. Limite conhecido: duas entradas dos dois caminhos no mesmo instante podem trocar de ordem. - principal.postDelayed({ if (!fechada) fila.trySend(Saida.Bytes(ok.copyOf())) }, ATRASO_DE_ORDEM_MS) + if (bytes.isEmpty() || fechada) return + // A mesma FIFO do QueuedTerminal serializa texto/IME e teclas mapeadas antes de postar callbacks. + // O único onKeyboardInput acima aplica o filtro e entrega ao consumidor SSH, sem depender de milissegundos. + try { emulador.dispatchKeyboardInput(bytes) } catch (_: IllegalStateException) { /* fechou durante o envio */ } } - private val principal = android.os.Handler(android.os.Looper.getMainLooper()) - - private companion object { const val ATRASO_DE_ORDEM_MS = 40L } - /** Visível aos testes: quantos pedaços o filtro de saída descartou. */ val descartesDeSaida: Int get() = filtroDeSaida.descartes diff --git a/third_party/termlib/UPSTREAM.md b/third_party/termlib/UPSTREAM.md index a8f75067..e232e424 100644 --- a/third_party/termlib/UPSTREAM.md +++ b/third_party/termlib/UPSTREAM.md @@ -46,3 +46,9 @@ Auditoria do NDK efetivamente usado: `clang_source_info.md` do CI registra LLVM `toolchain/llvm_android@1dab3288f660d43a6cb2479107e2b54b3ab0a2a1`. Os quatro `LICENSE.TXT` dessa base foram baixados e são **bit-idênticos** aos textos preservados neste diretório. Prova e hashes: `.equipe/provas/computador-a/t3-licencas-ndk-real.json` (fora do git). + +## Entrada ordenada do app (revisão #96) + +`dispatchKeyboardInput` enfileira os bytes já mapeados na mesma `TerminalDispatcher` usada pelo +`QueuedTerminal` do Compose. A produção e a postagem dos callbacks seguem essa FIFO, sem atrasos arbitrários. +É uma alteração Kotlin; não muda o JNI nem os binários fixados. diff --git a/third_party/termlib/build.gradle.kts b/third_party/termlib/build.gradle.kts index 291935b9..582f1cd6 100644 --- a/third_party/termlib/build.gradle.kts +++ b/third_party/termlib/build.gradle.kts @@ -28,6 +28,7 @@ extensions.configure("android") { tasks.named("preBuild") { dependsOn(":app:prepareTermlibJni") } dependencies { + testImplementation("junit:junit:4.13.2") // Apenas APIs usadas no fonte: sem AppCompat/Material Views ou plugins de publicação upstream. implementation("org.slf4j:slf4j-api:2.0.20") implementation("androidx.core:core-ktx:1.13.1") diff --git a/third_party/termlib/src/main/java/org/connectbot/terminal/TerminalDispatcher.kt b/third_party/termlib/src/main/java/org/connectbot/terminal/TerminalDispatcher.kt index c034502f..364c481e 100644 --- a/third_party/termlib/src/main/java/org/connectbot/terminal/TerminalDispatcher.kt +++ b/third_party/termlib/src/main/java/org/connectbot/terminal/TerminalDispatcher.kt @@ -23,6 +23,12 @@ internal class TerminalDispatcher { schedule() } + /** Bytes mapeados entram antes da produção do callback, na mesma fila do texto/IME. */ + fun keyboardInput(data: ByteArray, output: (ByteArray) -> Unit) { + val copia = data.copyOf() + execute { output(copia) } + } + fun executeAfter(delayMillis: Long, action: () -> Unit) { workers.schedule({ execute(action) }, delayMillis, TimeUnit.MILLISECONDS) } diff --git a/third_party/termlib/src/main/java/org/connectbot/terminal/TerminalEmulator.kt b/third_party/termlib/src/main/java/org/connectbot/terminal/TerminalEmulator.kt index 3f782bc2..72537621 100644 --- a/third_party/termlib/src/main/java/org/connectbot/terminal/TerminalEmulator.kt +++ b/third_party/termlib/src/main/java/org/connectbot/terminal/TerminalEmulator.kt @@ -101,6 +101,9 @@ sealed interface TerminalEmulator : AutoCloseable { /** Queue pasted text in the same FIFO as keyboard/IME input, honoring bracketed paste. */ fun pasteText(text: String) + /** Bytes já mapeados pelo app, na mesma FIFO de texto/IME e com o mesmo callback de saída. */ + fun dispatchKeyboardInput(data: ByteArray) + /** Policy controlling whether incoming inline image commands are accepted. */ val inlineImages: InlineImages @@ -728,6 +731,13 @@ internal class TerminalEmulatorImpl( } } + override fun dispatchKeyboardInput(data: ByteArray) { + checkNotClosed() + commands.keyboardInput(data) { copia -> + synchronized(damageLock) { if (!closed) postCallback { onKeyboardInput.invoke(copia) } } + } + } + override fun pasteText(text: String) { enqueueCommand { batchOutput { diff --git a/third_party/termlib/src/test/java/org/connectbot/terminal/KeyboardOrderingTest.kt b/third_party/termlib/src/test/java/org/connectbot/terminal/KeyboardOrderingTest.kt new file mode 100644 index 00000000..bd3d7ebc --- /dev/null +++ b/third_party/termlib/src/test/java/org/connectbot/terminal/KeyboardOrderingTest.kt @@ -0,0 +1,39 @@ +package org.connectbot.terminal + +import java.util.concurrent.CopyOnWriteArrayList +import java.util.concurrent.CountDownLatch +import java.util.concurrent.TimeUnit +import org.junit.Assert.assertEquals +import org.junit.Assert.assertTrue +import org.junit.Test + +/** A fila de produção real sob um comando retido: nenhuma suposição sobre "40 ms bastam". */ +class KeyboardOrderingTest { + private fun verificar(antes: String, depois: String, teclaPrimeiro: Boolean) { + val fila = TerminalDispatcher() + val entrou = CountDownLatch(1) + val liberar = CountDownLatch(1) + val terminou = CountDownLatch(1) + val escritos = CopyOnWriteArrayList() + fila.execute { entrou.countDown(); check(liberar.await(5, TimeUnit.SECONDS)) } + assertTrue(entrou.await(5, TimeUnit.SECONDS)) + try { + if (teclaPrimeiro) { + fila.keyboardInput(antes.toByteArray()) { escritos += it } + fila.execute { escritos += depois.toByteArray() } + } else { + fila.execute { escritos += antes.toByteArray() } + fila.keyboardInput(depois.toByteArray()) { escritos += it } + } + // Se a tecla sair por fora da fila, passa à frente do trabalho retido. + assertEquals(0, escritos.size) + fila.execute { terminou.countDown() } + } finally { liberar.countDown() } + assertTrue(terminou.await(5, TimeUnit.SECONDS)) + assertEquals(antes+depois, escritos.joinToString("") { String(it) }) + } + + @Test fun escAntesDeI() = verificar("\u001b", "i", true) + @Test fun backspaceAntesDeLetra() = verificar("\u007f", "a", true) + @Test fun textoAntesDeEnterMesmoComAFilaOcupada() = verificar("x".repeat(10_000), "\r", false) +} From aec7358fe39a5369318b2e8b23effe333089bf61 Mon Sep 17 00:00:00 2001 From: Yan Lucas Date: Sat, 31 Oct 2026 18:58:14 +0000 Subject: [PATCH 07/12] Exige credencial guardada antes de permitir o agente no host --- .specs/features/computer-terminal/spec.md | 2 +- .specs/features/computer-terminal/tasks.md | 2 + .../2026-10-31-computador-d-correcao.md | 8 ++ .../keyflow/ui/config/ComputadorHostsTest.kt | 43 ++++++- .../java/com/keyflow/computador/CodecHosts.kt | 4 +- .../com/keyflow/computador/EdicaoDeHost.kt | 6 +- .../com/keyflow/computador/GravadorDeHosts.kt | 65 ++++++++++ .../com/keyflow/computador/RegraAgente.kt | 13 +- .../com/keyflow/computador/ValidadorHost.kt | 15 ++- .../computador/app/AcoesDeHostReais.kt | 24 ++-- .../computador/app/RepositorioComputador.kt | 15 +-- .../computador/app/TextosComputador.kt | 5 + .../java/com/keyflow/i18n/en/Computador.kt | 3 + .../java/com/keyflow/i18n/es/Computador.kt | 3 + .../keyflow/ui/config/ComputadorHostModal.kt | 47 +++++-- .../com/keyflow/ui/config/ComputadorHosts.kt | 3 + .../com/keyflow/ui/config/ConfigFields.kt | 2 + .../keyflow/computador/CodecHostsFuzzTest.kt | 2 +- .../computador/CodecHostsPropertyTest.kt | 2 +- .../keyflow/computador/EdicaoDeHostTest.kt | 21 ++-- .../keyflow/computador/GravadorDeHostsTest.kt | 118 ++++++++++++++++++ .../com/keyflow/computador/RegraAgenteTest.kt | 14 ++- .../keyflow/computador/ValidadorHostTest.kt | 6 + 23 files changed, 363 insertions(+), 60 deletions(-) create mode 100644 app/src/main/java/com/keyflow/computador/GravadorDeHosts.kt create mode 100644 app/src/test/java/com/keyflow/computador/GravadorDeHostsTest.kt diff --git a/.specs/features/computer-terminal/spec.md b/.specs/features/computer-terminal/spec.md index 86301340..74367747 100644 --- a/.specs/features/computer-terminal/spec.md +++ b/.specs/features/computer-terminal/spec.md @@ -390,7 +390,7 @@ Nenhuma. Q1–Q13 foram respondidas em 29/10 (D12–D24). Q8, Q9, Q10, Q11 e Q13 | CMP-06 | P1-A | CMP-T5, CMP-T11 | Parcial — migração pura (CMP-T5) verificada; falta T11 | | CMP-07 | P1-A | CMP-T11, CMP-T15 | Verificada (T11 e T15: exclusão com confirmação, aviso de nova impressão ao mudar endereço/porta) | | CMP-08 | P1-A | CMP-T9, CMP-T15 | Verificada (T9 + `TestadorDeConexao` contra o `SshFixtureServer`; modal mostra impressão, método e latência; sem `delay`) | -| CMP-09 | P1-A | CMP-T5, CMP-T15 | Verificada (regra T5 + aviso e confirmação no modal, motivo quando bloqueado, desligar fecha sessões do agente) | +| CMP-09 | P1-A | CMP-T5, CMP-T15 | Revisão #96: disponibilidade real de credencial, chave vazia recusada e segredo confirmado antes da permissão (`RegraAgenteTest`, `ValidadorHostTest`, `GravadorDeHostsTest`); aviso/confirmar mantidos. Novos instrumentados compilados e pendentes por ANR do SystemUI | | CMP-10 | P1-B | CMP-T7, CMP-T8, CMP-T16 | Parcial — geração no Keystore/envelope (CMP-T8) implementada; falta T16 | | CMP-11 | P1-B | CMP-T2, CMP-T8, CMP-T16 | Parcial — sonda e envelope (CMP-T8); falta T2 e T16 | | CMP-12 | P1-B | CMP-T7, CMP-T16 | Parcial — importação (CMP-T7) verificada; falta T16 | diff --git a/.specs/features/computer-terminal/tasks.md b/.specs/features/computer-terminal/tasks.md index a142264c..55871855 100644 --- a/.specs/features/computer-terminal/tasks.md +++ b/.specs/features/computer-terminal/tasks.md @@ -267,6 +267,8 @@ para permitir essa verificação sem reescrever a branch; detalhes na [lição]( desligar fecha sessões do agente (fake); excluir host pede confirmação; `TranslationsTest` verde; sem `delay` simulado no código (teste de arquitetura: `ComputadorPanel` não importa `kotlinx.coroutines.delay`). - **Tests**: instrumentado (Compose + servidor de teste). **Gate**: `quick` + `pool instrumentar com.keyflow.ui.config.ComputadorHostsTest`. **Commit**: `feat(computador): painel de hosts com teste de conexão real`. +**Correção da revisão #96 (2026-10-31):** chave vazia/indisponível é recusada; a regra do agente recebe disponibilidade conferida no cofre/registro. `GravadorDeHosts` confirma o segredo antes de publicar a preferência/permissão e restaura a senha anterior se a configuração falhar. O modal desabilita Chave sem chaves e consulta apenas a existência da senha. Unitários de hosts/codec e traduções verdes, mutação de `lembrarSenha` sem credencial detectada/revertida. Os quatro novos casos de `ComputadorHostsTest` compilaram; execução pendente por ANR prévio do SystemUI. + ### CMP-T16 — Painel Chaves e os diálogos de confiança, senha e biometria — **Status: pendente** - **What**: `ComputadorChaves` (lista com tipo, impressão, proteção — "Protegida pelo hardware do aparelho" / "Protegida pelo Keystore (por software)" / "Guardada cifrada no cofre do aparelho" —, biometria, hosts que usam), "Gerar chave" **pergunta o tipo** (Ed25519 ou ECDSA P-256, D13), "Importar" (arquivo pelo seletor do sistema ou colar; passphrase em diálogo), "Copiar chave pública", ligar/desligar biometria com o aviso da nova digital e a janela de 5 minutos (D14), renomear, excluir; diálogos `ConfirmarServidor` (Nova: host:porta, algoritmo, `SHA256:…`, botões **Confiar e continuar** / **Cancelar**), `ServidorMudou` (alerta, impressão antiga × nova, **Cancelar** em destaque, **Substituir e continuar** em segundo passo), `PedirSenha`, `CodigoDeVerificacao` (keyboard-interactive) e a mensagem de cada `CausaSsh`. diff --git a/.specs/project/licoes/2026-10-31-computador-d-correcao.md b/.specs/project/licoes/2026-10-31-computador-d-correcao.md index 94e162dc..2b026403 100644 --- a/.specs/project/licoes/2026-10-31-computador-d-correcao.md +++ b/.specs/project/licoes/2026-10-31-computador-d-correcao.md @@ -17,3 +17,11 @@ Mouse SGR na tela continua para CMP-25/T27; esta correção não o conecta. O texto do Compose passa por `QueuedTerminal` e pela `TerminalDispatcher`; as teclas do app agora entram na mesma FIFO com `dispatchKeyboardInput`. O callback continua único e aplica o filtro antes do consumidor SSH. O atraso de 40 ms saiu. Três testes JVM retêm o worker e conferem Esc+i, Backspace+letra e texto+Enter sem relógio: 3/3; mutação emitindo fora da fila: 3/3 vermelhos, revertida, 3/3 verdes. Os nove instrumentados de entrada foram preparados (inclusive o componente correto do IME), mas não executados. Antes da instalação, a verificação sob Gradle → emulador encontrou `Application Not Responding: com.android.systemui`, com lastanr `executing service ...SystemUIAuxiliaryDumpService`. Conforme a tarefa, os instrumentados foram suspensos; sem fechar diálogo, esconder erro, reiniciar ou mudar o AVD. A compilação dos APKs passou; após as correções restantes, a compilação final também confere os testes novos. + +## CMP-09: preferência de lembrar não é existência de credencial + +`RegraAgente` recebe um fato de disponibilidade e recusa por padrão; `Chave("")` é inválida. O codec valida estrutura e mantém a intenção nos metadados; a gravação consulta o cofre/registro. `DadosDaEdicaoDeHost` permite testar a persistência usada por `AcoesDeHostReais`: segredo confirmado antes de publicar a marca, senha anterior preservada na edição e restaurada se a configuração falhar. Falha silenciosa ou exceção do cofre não publica host/permissão. Não se grava `lembrarSenha=true` sem senha disponível. + +Depois da validação, a fase segredo → confirmação do DataStore → limpeza é protegida contra cancelamento do modal. Um teste reproduziu o ator que confirma a configuração antes de entregar uma resposta cancelada: desfazer apenas a senha nessa janela deixava permissão sem credencial. O teste ficou vermelho, a fase foi protegida com `NonCancellable` e os nove testes do gravador passaram. + +O modal consulta só a existência da senha (IO), acompanha a presença do rascunho para habilitar a marca e desabilita Chave quando não há chaves. Estado de tela após IO volta a Main. Os testes de persistência/regra/validação/codec e traduções passaram; a mutação que ignorou a disponibilidade da senha derrubou `lembrarNaoEProvaDeSegredoGuardado`, foi revertida e a rodada final passou. Os instrumentados novos compilaram; a execução continua suspensa pelo ANR observado antes da instalação. diff --git a/app/src/androidTest/java/com/keyflow/ui/config/ComputadorHostsTest.kt b/app/src/androidTest/java/com/keyflow/ui/config/ComputadorHostsTest.kt index 83d7442c..c6b765aa 100644 --- a/app/src/androidTest/java/com/keyflow/ui/config/ComputadorHostsTest.kt +++ b/app/src/androidTest/java/com/keyflow/ui/config/ComputadorHostsTest.kt @@ -4,6 +4,7 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue import androidx.compose.ui.test.assertIsDisplayed +import androidx.compose.ui.test.assertIsNotEnabled import androidx.compose.ui.test.hasText import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.ui.test.onNodeWithTag @@ -42,12 +43,13 @@ class ComputadorHostsTest { val agenteDesligadoEm = mutableListOf() var resultadoDoTeste: ResultadoTeste = ResultadoTeste.Falhou(CausaSsh.RECUSADA) val testados = mutableListOf>() - val senhas = mutableMapOf() + val senhas = inicial.filter { it.autenticacao == AutenticacaoHost.Senha && it.lembrarSenha }.associate { it.id to "senha-falsa" }.toMutableMap() - override suspend fun salvar(host: Host, senha: String?): List = when (val r = EdicaoDeHost.aplicar(hosts, host)) { + override suspend fun salvar(host: Host, senha: String?): List = when (val r = EdicaoDeHost.aplicar(hosts, host, credencialDisponivel = !senha.isNullOrEmpty() || !senhas[host.id].isNullOrEmpty())) { is ResultadoEdicao.Erros -> r.erros is ResultadoEdicao.Ok -> { hosts = r.config; senha?.let { senhas[r.host.id] = it }; emptyList() } } + override suspend fun temSenhaGuardada(host: Host) = !senhas[host.id].isNullOrEmpty() override suspend fun excluir(host: Host) { excluidos += host.id; hosts = ConfigHosts(hosts.hosts.filter { it.id != host.id }) } override suspend fun testar(host: Host, senha: String?): ResultadoTeste { testados += host to senha; return resultadoDoTeste } override fun impressoesConhecidas(host: Host): List = emptyList() @@ -190,4 +192,41 @@ class ComputadorHostsTest { assertEquals(listOf("00000001"), a.excluidos) assertFalse(a.hosts.hosts.any()) } + @Test fun semChavesNaoCriaChaveComReferenciaVazia() { + val a = Acoes(); mostrar(a) + clicar(COMPUTADOR_NOVO_HOST_TAG); preencher("dev") + nt(COMPUTADOR_HOST_AUTH_CHAVE_TAG).performScrollTo().assertIsNotEnabled() + clicar(COMPUTADOR_HOST_SALVAR_TAG); regra.waitForIdle() + assertEquals(AutenticacaoHost.Perguntar, a.hosts.hosts.single().autenticacao) + } + + @Test fun lembrarSemSenhaNaoLiberaAgenteNemGrava() { + val a = Acoes(); mostrar(a) + clicar(COMPUTADOR_NOVO_HOST_TAG); preencher("dev") + clicar(COMPUTADOR_HOST_AUTH_SENHA_TAG); clicar(COMPUTADOR_HOST_LEMBRAR_TAG) + nt(COMPUTADOR_HOST_AGENTE_TAG).performScrollTo().assertIsNotEnabled() + clicar(COMPUTADOR_HOST_SALVAR_TAG) + nt(computadorErroTag(com.keyflow.computador.CampoHost.AUTENTICACAO)).performScrollTo().assertIsDisplayed() + assertTrue(a.hosts.hosts.isEmpty()); assertTrue(a.senhas.isEmpty()) + } + + @Test fun preferenciaAntigaSemSegredoNaoPermiteMarcar() { + val a = Acoes(listOf(senhaLembrada())); a.senhas.clear(); mostrar(a) + clicar(computadorHostCardTag("00000001")) + nt(COMPUTADOR_HOST_AGENTE_TAG).performScrollTo().assertIsNotEnabled() + clicar(COMPUTADOR_HOST_SALVAR_TAG) + nt(computadorErroTag(com.keyflow.computador.CampoHost.AUTENTICACAO)).performScrollTo().assertIsDisplayed() + assertFalse(a.hosts.hosts.single().agentePodeUsar) + } + + @Test fun senhaDigitadaPermiteConfirmarEGravarAgente() { + val a = Acoes(); mostrar(a) + clicar(COMPUTADOR_NOVO_HOST_TAG); preencher("dev") + clicar(COMPUTADOR_HOST_AUTH_SENHA_TAG); digitar(COMPUTADOR_HOST_SENHA_TAG, "senha-falsa") + clicar(COMPUTADOR_HOST_LEMBRAR_TAG); clicar(COMPUTADOR_HOST_AGENTE_TAG) + nt(COMPUTADOR_AGENTE_AVISO_CONFIRMAR_TAG).performClick() + clicar(COMPUTADOR_HOST_SALVAR_TAG); regra.waitForIdle() + val h = a.hosts.hosts.single() + assertTrue(h.agentePodeUsar); assertEquals("senha-falsa", a.senhas[h.id]) + } } diff --git a/app/src/main/java/com/keyflow/computador/CodecHosts.kt b/app/src/main/java/com/keyflow/computador/CodecHosts.kt index b15fbef4..cd29628d 100644 --- a/app/src/main/java/com/keyflow/computador/CodecHosts.kt +++ b/app/src/main/java/com/keyflow/computador/CodecHosts.kt @@ -74,8 +74,8 @@ object CodecHosts { imagens = imagens, ) if (ValidadorHost.validar(host).any { it.campo != CampoHost.LIMITE }) return null - // Defesa em profundidade (CMP-09): arquivo editado à mão não liga o agente num host que o app não resolve sozinho. - if (host.agentePodeUsar && RegraAgente.podeMarcar(host) !is PodeMarcar.Sim) host = host.copy(agente = PoliticaAgente.PROIBIDO) + // Aqui só há metadados: a disponibilidade real é conferida no cofre/registro antes de gravar ou marcar no modal. + if (host.agentePodeUsar && RegraAgente.podeMarcar(host, credencialDisponivel = host.lembrarSenha || host.autenticacao is AutenticacaoHost.Chave) !is PodeMarcar.Sim) host = host.copy(agente = PoliticaAgente.PROIBIDO) return host } diff --git a/app/src/main/java/com/keyflow/computador/EdicaoDeHost.kt b/app/src/main/java/com/keyflow/computador/EdicaoDeHost.kt index 1cad283a..83b55ba8 100644 --- a/app/src/main/java/com/keyflow/computador/EdicaoDeHost.kt +++ b/app/src/main/java/com/keyflow/computador/EdicaoDeHost.kt @@ -12,12 +12,12 @@ sealed interface ResultadoEdicao { * acrescenta o host na lista. Não mexe em segredo. */ object EdicaoDeHost { - fun aplicar(config: ConfigHosts, editado: Host, chavePedePassphrase: (String) -> Boolean = { false }): ResultadoEdicao { + fun aplicar(config: ConfigHosts, editado: Host, credencialDisponivel: Boolean = false, chavePedePassphrase: (String) -> Boolean = { false }): ResultadoEdicao { var host = editado.copy(nome = editado.nome.trim(), endereco = editado.endereco.trim(), usuario = editado.usuario.trim()) if (host.autenticacao !is AutenticacaoHost.Senha) host = host.copy(lembrarSenha = false) - if (host.agente == PoliticaAgente.PERMITIDO && RegraAgente.podeMarcar(host, chavePedePassphrase) !is PodeMarcar.Sim) host = host.copy(agente = PoliticaAgente.PROIBIDO) + if (host.agente == PoliticaAgente.PERMITIDO && RegraAgente.podeMarcar(host, credencialDisponivel, chavePedePassphrase) !is PodeMarcar.Sim) host = host.copy(agente = PoliticaAgente.PROIBIDO) val outros = config.hosts.filter { it.id != host.id } - val erros = ValidadorHost.validar(host, config.hosts) + val erros = ValidadorHost.validar(host, config.hosts, credencialDisponivel) if (erros.isNotEmpty()) return ResultadoEdicao.Erros(erros) val novos = if (config.hosts.any { it.id == host.id }) config.hosts.map { if (it.id == host.id) host else it } else outros + host return ResultadoEdicao.Ok(ConfigHosts(novos), host) diff --git a/app/src/main/java/com/keyflow/computador/GravadorDeHosts.kt b/app/src/main/java/com/keyflow/computador/GravadorDeHosts.kt new file mode 100644 index 00000000..c3ff10d3 --- /dev/null +++ b/app/src/main/java/com/keyflow/computador/GravadorDeHosts.kt @@ -0,0 +1,65 @@ +package com.keyflow.computador + +import com.keyflow.computador.chaves.ChaveSsh +import kotlinx.coroutines.CancellationException +import kotlinx.coroutines.NonCancellable +import kotlinx.coroutines.withContext +import kotlinx.coroutines.sync.Mutex +import kotlinx.coroutines.sync.withLock + +/** Porta da gravação: metadados no DataStore, senhas no cofre; permite provar a ordem sem Android. */ +interface DadosDaEdicaoDeHost { + suspend fun hostsOnce(): ConfigHosts + suspend fun atualizarHosts(f: (ConfigHosts) -> ConfigHosts): ConfigHosts + suspend fun chavesOnce(): List + fun senhaLembrada(hostId: String): String? + fun lembrarSenha(hostId: String, senha: String) + fun esquecerSenha(hostId: String) +} + +/** CMP-09: a preferência não prova que existe segredo. Publica a permissão só depois de confirmar o cofre. */ +class GravadorDeHosts(private val dados: DadosDaEdicaoDeHost) { + private val trava = Mutex() + + suspend fun salvar(host: Host, senha: String?): ResultadoEdicao = trava.withLock { + val guardar = host.autenticacao == AutenticacaoHost.Senha && host.lembrarSenha + val antiga = if (guardar) dados.senhaLembrada(host.id)?.takeIf { it.isNotEmpty() } else null + val nova = senha?.takeIf { it.isNotEmpty() } + val disponivel = when (val a = host.autenticacao) { + AutenticacaoHost.Senha -> nova != null || antiga != null + is AutenticacaoHost.Chave -> a.keyId.isNotBlank() && dados.chavesOnce().any { it.id == a.keyId } + AutenticacaoHost.Perguntar -> false + } + val previa = EdicaoDeHost.aplicar(dados.hostsOnce(), host, credencialDisponivel = disponivel) + if (previa is ResultadoEdicao.Erros) return@withLock previa + + // Depois do primeiro efeito, fechar o modal não pode desfazer só o segredo de uma configuração já confirmada. + withContext(NonCancellable) { + fun restaurar() { runCatching { if (antiga == null) dados.esquecerSenha(host.id) else dados.lembrarSenha(host.id, antiga) } } + val mudouSenha = guardar && nova != null && nova != antiga + if (mudouSenha) { + try { + dados.lembrarSenha(host.id, nova) + check(dados.senhaLembrada(host.id) == nova) { "cofre não confirmou a senha" } + } catch (e: CancellationException) { restaurar(); throw e + } catch (_: Exception) { + restaurar() + return@withContext ResultadoEdicao.Erros(listOf(ErroHost(CampoHost.AUTENTICACAO, MotivoHost.SENHA_NAO_GUARDADA))) + } + } + var resultado: ResultadoEdicao = previa + try { + dados.atualizarHosts { config -> + // Revalida nome/limite contra a lista mais recente, já com a senha efetivamente gravada. + val temCredencial = if (guardar) !dados.senhaLembrada(host.id).isNullOrEmpty() else disponivel + val r = EdicaoDeHost.aplicar(config, host, credencialDisponivel = temCredencial) + resultado = r + if (r is ResultadoEdicao.Ok) r.config else config + } + } catch (e: Exception) { if (mudouSenha) restaurar(); throw e } + if (resultado is ResultadoEdicao.Erros) { if (mudouSenha) restaurar() } + else if (!guardar) dados.esquecerSenha(host.id) + resultado + } + } +} diff --git a/app/src/main/java/com/keyflow/computador/RegraAgente.kt b/app/src/main/java/com/keyflow/computador/RegraAgente.kt index 88652681..ecff3862 100644 --- a/app/src/main/java/com/keyflow/computador/RegraAgente.kt +++ b/app/src/main/java/com/keyflow/computador/RegraAgente.kt @@ -9,18 +9,25 @@ sealed interface PodeMarcar { enum class MotivoAgente(val frase: String) { PERGUNTA_SEMPRE("Este servidor pede a autenticação na hora; o agente não tem como digitá-la. Guarde uma chave ou a senha."), SENHA_NAO_LEMBRADA("A senha não está guardada. Ligue \"lembrar senha\" para o agente poder usar este servidor."), + CHAVE_NAO_GUARDADA("Escolha uma chave guardada."), + SENHA_INDISPONIVEL("Informe uma senha para guardá-la neste aparelho."), CHAVE_COM_PASSPHRASE("Esta chave pede a senha dela na hora; o agente não pode usá-la."), } /** A marca "Pode ser usado pelo agente" só vale para host cuja autenticação o **app** resolve sozinho (CMP-09, D5). */ object RegraAgente { /** + * @param credencialDisponivel fato conferido no cofre/registro (ou senha digitada no rascunho); o padrão recusa. * @param chavePedePassphrase diz se a chave [AutenticacaoHost.Chave.keyId] precisa de passphrase digitada na hora. As chaves * do app (Keystore/envelope) nunca guardam passphrase, então o padrão é não. */ - fun podeMarcar(host: Host, chavePedePassphrase: (String) -> Boolean = { false }): PodeMarcar = when (val a = host.autenticacao) { + fun podeMarcar(host: Host, credencialDisponivel: Boolean = false, chavePedePassphrase: (String) -> Boolean = { false }): PodeMarcar = when (val a = host.autenticacao) { AutenticacaoHost.Perguntar -> PodeMarcar.Nao(MotivoAgente.PERGUNTA_SEMPRE) - AutenticacaoHost.Senha -> if (host.lembrarSenha) PodeMarcar.Sim else PodeMarcar.Nao(MotivoAgente.SENHA_NAO_LEMBRADA) - is AutenticacaoHost.Chave -> if (chavePedePassphrase(a.keyId)) PodeMarcar.Nao(MotivoAgente.CHAVE_COM_PASSPHRASE) else PodeMarcar.Sim + AutenticacaoHost.Senha -> when { + !host.lembrarSenha -> PodeMarcar.Nao(MotivoAgente.SENHA_NAO_LEMBRADA) + !credencialDisponivel -> PodeMarcar.Nao(MotivoAgente.SENHA_INDISPONIVEL) + else -> PodeMarcar.Sim + } + is AutenticacaoHost.Chave -> if (a.keyId.isBlank() || !credencialDisponivel) PodeMarcar.Nao(MotivoAgente.CHAVE_NAO_GUARDADA) else if (chavePedePassphrase(a.keyId)) PodeMarcar.Nao(MotivoAgente.CHAVE_COM_PASSPHRASE) else PodeMarcar.Sim } } diff --git a/app/src/main/java/com/keyflow/computador/ValidadorHost.kt b/app/src/main/java/com/keyflow/computador/ValidadorHost.kt index 6010da54..4622406d 100644 --- a/app/src/main/java/com/keyflow/computador/ValidadorHost.kt +++ b/app/src/main/java/com/keyflow/computador/ValidadorHost.kt @@ -1,7 +1,7 @@ package com.keyflow.computador /** Campo de um host que a validação sabe julgar. */ -enum class CampoHost { NOME, ENDERECO, PORTA, USUARIO, LIMITE } +enum class CampoHost { NOME, ENDERECO, PORTA, USUARIO, AUTENTICACAO, LIMITE } /** Motivo da recusa, por campo. O texto da interface sai de `tr(…)` na tela; aqui só o código e uma frase em português. */ enum class MotivoHost(val frase: String) { @@ -16,6 +16,9 @@ enum class MotivoHost(val frase: String) { USUARIO_VAZIO("Informe o usuário."), USUARIO_LONGO("O usuário pode ter no máximo 64 caracteres."), USUARIO_INVALIDO("O usuário não pode ter espaços nem caracteres de controle."), + CHAVE_NAO_GUARDADA("Escolha uma chave guardada."), + SENHA_NAO_INFORMADA("Informe uma senha para guardá-la neste aparelho."), + SENHA_NAO_GUARDADA("Não foi possível guardar a senha neste aparelho."), LISTA_CHEIA("O limite é de 50 servidores."), } @@ -25,8 +28,11 @@ object ValidadorHost { private val rotuloDns = Regex("^[A-Za-z0-9_]([A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?$") private val ipv4 = Regex("^(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$") - /** Valida [host] contra os [outros] já cadastrados (o próprio id é ignorado ao conferir o nome único). Lista vazia = válido. */ - fun validar(host: Host, outros: List = emptyList()): List { + /** + * Valida [host] contra [outros]. [credencialDisponivel] é obrigatório na gravação; `null` só valida + * estrutura ao ler JSON, que não contém segredos e não autoriza acesso ao cofre. + */ + fun validar(host: Host, outros: List = emptyList(), credencialDisponivel: Boolean? = null): List { val erros = mutableListOf() val nome = host.nome.trim() when { @@ -43,6 +49,9 @@ object ValidadorHost { host.usuario.any { it.isWhitespace() || it.isISOControl() } -> erros += ErroHost(CampoHost.USUARIO, MotivoHost.USUARIO_INVALIDO) } if (outros.none { it.id == host.id } && outros.size >= LimitesHost.MAX_HOSTS) erros += ErroHost(CampoHost.LIMITE, MotivoHost.LISTA_CHEIA) + val chave = host.autenticacao as? AutenticacaoHost.Chave + if (chave != null && (chave.keyId.isBlank() || credencialDisponivel == false)) erros += ErroHost(CampoHost.AUTENTICACAO, MotivoHost.CHAVE_NAO_GUARDADA) + if (host.autenticacao == AutenticacaoHost.Senha && host.lembrarSenha && credencialDisponivel == false) erros += ErroHost(CampoHost.AUTENTICACAO, MotivoHost.SENHA_NAO_INFORMADA) return erros } diff --git a/app/src/main/java/com/keyflow/computador/app/AcoesDeHostReais.kt b/app/src/main/java/com/keyflow/computador/app/AcoesDeHostReais.kt index f653014c..e1e43b53 100644 --- a/app/src/main/java/com/keyflow/computador/app/AcoesDeHostReais.kt +++ b/app/src/main/java/com/keyflow/computador/app/AcoesDeHostReais.kt @@ -3,6 +3,7 @@ package com.keyflow.computador.app import com.keyflow.computador.AutenticacaoHost import com.keyflow.computador.ChaveDoServidor import com.keyflow.computador.EdicaoDeHost +import com.keyflow.computador.GravadorDeHosts import com.keyflow.computador.ErroHost import com.keyflow.computador.Host import com.keyflow.computador.ResultadoEdicao @@ -10,6 +11,8 @@ import com.keyflow.computador.sessao.GerenciadorDeSessoes import com.keyflow.computador.ssh.CausaSsh import com.keyflow.computador.ssh.ResultadoTeste import com.keyflow.ui.config.AcoesDeHost +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext /** As ações do painel de hosts ligadas ao repositório, ao gerenciador de sessões e ao teste real. */ class AcoesDeHostReais( @@ -18,30 +21,27 @@ class AcoesDeHostReais( private val testador: TestadorDeConexao, private val provedorDeChaves: ProvedorDeChavesAndroid, ) : AcoesDeHost { + private val gravador = GravadorDeHosts(repositorio) + private fun enderecoDeConfianca(h: Host) = h.endereco.removePrefix("[").removeSuffix("]") - override suspend fun salvar(host: Host, senha: String?): List { + override suspend fun salvar(host: Host, senha: String?): List = withContext(Dispatchers.IO) { val antes = repositorio.hostsOnce().porId(host.id) - var resultado: ResultadoEdicao? = null - repositorio.atualizarHosts { c -> - val r = EdicaoDeHost.aplicar(c, host) - resultado = r - if (r is ResultadoEdicao.Ok) r.config else c - } - return when (val r = resultado) { + val resultado = gravador.salvar(host, senha) + when (val r = resultado) { is ResultadoEdicao.Erros -> r.erros is ResultadoEdicao.Ok -> { - if (r.host.autenticacao == AutenticacaoHost.Senha) { - if (r.host.lembrarSenha) senha?.let { repositorio.lembrarSenha(r.host.id, it) } else repositorio.esquecerSenha(r.host.id) - } else repositorio.esquecerSenha(r.host.id) // `known_hosts` é por `host:porta`: o endereço antigo deixa de valer para este host. if (antes != null && (antes.endereco != r.host.endereco || antes.porta != r.host.porta)) repositorio.confianca.esquecer(enderecoDeConfianca(antes), antes.porta) emptyList() } - null -> emptyList() } } + override suspend fun temSenhaGuardada(host: Host): Boolean = withContext(Dispatchers.IO) { + try { !repositorio.senhaLembrada(host.id).isNullOrEmpty() } catch (_: Exception) { false } + } + override suspend fun excluir(host: Host) = repositorio.excluirHost(host.id) { gerenciador.fecharDoHost(it) } override suspend fun testar(host: Host, senha: String?): ResultadoTeste { diff --git a/app/src/main/java/com/keyflow/computador/app/RepositorioComputador.kt b/app/src/main/java/com/keyflow/computador/app/RepositorioComputador.kt index 21d1eea7..492a0ce4 100644 --- a/app/src/main/java/com/keyflow/computador/app/RepositorioComputador.kt +++ b/app/src/main/java/com/keyflow/computador/app/RepositorioComputador.kt @@ -2,6 +2,7 @@ package com.keyflow.computador.app import com.keyflow.computador.AutenticacaoHost import com.keyflow.computador.ConfigHosts +import com.keyflow.computador.DadosDaEdicaoDeHost import com.keyflow.computador.Host import com.keyflow.computador.MigracaoHostUnico import com.keyflow.computador.PoliticaAgente @@ -21,19 +22,19 @@ class RepositorioComputador( private val settings: SettingsRepository, private val cofre: CofreDeSegredos, arquivoKnownHosts: File, -) { +) : DadosDaEdicaoDeHost { val confianca: RepositorioDeConfianca = RepositorioKnownHostsArquivo(arquivoKnownHosts) fun hostsFlow(): Flow = settings.hostsFlow() - suspend fun hostsOnce(): ConfigHosts = settings.hostsOnce() - suspend fun atualizarHosts(f: (ConfigHosts) -> ConfigHosts): ConfigHosts = settings.atualizarHosts(f) + override suspend fun hostsOnce(): ConfigHosts = settings.hostsOnce() + override suspend fun atualizarHosts(f: (ConfigHosts) -> ConfigHosts): ConfigHosts = settings.atualizarHosts(f) fun chavesFlow(): Flow> = settings.chavesFlow() - suspend fun chavesOnce(): List = settings.chavesOnce() + override suspend fun chavesOnce(): List = settings.chavesOnce() suspend fun atualizarChaves(f: (List) -> List): List = settings.atualizarChaves(f) - fun senhaLembrada(hostId: String): String? = cofre.ler("$PREFIXO_SENHA$hostId") - fun lembrarSenha(hostId: String, senha: String) = cofre.gravar("$PREFIXO_SENHA$hostId", senha) - fun esquecerSenha(hostId: String) = cofre.apagar("$PREFIXO_SENHA$hostId") + override fun senhaLembrada(hostId: String): String? = cofre.ler("$PREFIXO_SENHA$hostId") + override fun lembrarSenha(hostId: String, senha: String) = cofre.gravar("$PREFIXO_SENHA$hostId", senha) + override fun esquecerSenha(hostId: String) = cofre.apagar("$PREFIXO_SENHA$hostId") /** * CMP-07: fecha as sessões do host, apaga a entrada do `known_hosts`, a senha lembrada, e tira o host da lista (a marca do agente vai diff --git a/app/src/main/java/com/keyflow/computador/app/TextosComputador.kt b/app/src/main/java/com/keyflow/computador/app/TextosComputador.kt index a1f08585..b40f0b07 100644 --- a/app/src/main/java/com/keyflow/computador/app/TextosComputador.kt +++ b/app/src/main/java/com/keyflow/computador/app/TextosComputador.kt @@ -44,11 +44,16 @@ fun MotivoHost.texto(): String = when (this) { MotivoHost.USUARIO_VAZIO -> tr("Informe o usuário.") MotivoHost.USUARIO_LONGO -> tr("O usuário pode ter no máximo 64 caracteres.") MotivoHost.USUARIO_INVALIDO -> tr("O usuário não pode ter espaços nem caracteres de controle.") + MotivoHost.CHAVE_NAO_GUARDADA -> tr("Escolha uma chave guardada.") + MotivoHost.SENHA_NAO_INFORMADA -> tr("Informe uma senha para guardá-la neste aparelho.") + MotivoHost.SENHA_NAO_GUARDADA -> tr("Não foi possível guardar a senha neste aparelho.") MotivoHost.LISTA_CHEIA -> tr("O limite é de 50 servidores.") } fun MotivoAgente.texto(): String = when (this) { MotivoAgente.PERGUNTA_SEMPRE -> tr("Este servidor pede a autenticação na hora; o agente não tem como digitá-la. Guarde uma chave ou a senha.") MotivoAgente.SENHA_NAO_LEMBRADA -> tr("A senha não está guardada. Ligue \"lembrar senha\" para o agente poder usar este servidor.") + MotivoAgente.CHAVE_NAO_GUARDADA -> tr("Escolha uma chave guardada.") + MotivoAgente.SENHA_INDISPONIVEL -> tr("Informe uma senha para guardá-la neste aparelho.") MotivoAgente.CHAVE_COM_PASSPHRASE -> tr("Esta chave pede a senha dela na hora; o agente não pode usá-la.") } diff --git a/app/src/main/java/com/keyflow/i18n/en/Computador.kt b/app/src/main/java/com/keyflow/i18n/en/Computador.kt index 38d7d033..a31090bb 100644 --- a/app/src/main/java/com/keyflow/i18n/en/Computador.kt +++ b/app/src/main/java/com/keyflow/i18n/en/Computador.kt @@ -43,6 +43,7 @@ internal val Computador: Map = mapOf( "Elas podem ser executadas." to "They may be executed.", "Endereço" to "Address", "Endereço IPv6 vai entre colchetes, por exemplo [::1]." to "IPv6 addresses go in brackets, for example [::1].", + "Escolha uma chave guardada." to "Choose a saved key.", "Esquecer servidor" to "Forget server", "Esta chave pede a senha dela na hora; o agente não pode usá-la." to "This key asks for its passphrase on the spot; the agent cannot use it.", "Este servidor pede a autenticação na hora; o agente não tem como digitá-la. Guarde uma chave ou a senha." to "This server asks for authentication on the spot; the agent cannot type it. Save a key or the password.", @@ -59,6 +60,7 @@ internal val Computador: Map = mapOf( "Imagens no terminal" to "Images in the terminal", "Informe o endereço do servidor." to "Enter the server address.", "Informe o usuário." to "Enter the username.", + "Informe uma senha para guardá-la neste aparelho." to "Enter a password to save it on this device.", "Já existe um servidor com esse nome." to "A server with that name already exists.", "Lembrar a senha" to "Remember the password", "Liberar este servidor para o agente?" to "Allow the agent to use this server?", @@ -73,6 +75,7 @@ internal val Computador: Map = mapOf( "Novo host" to "New host", "Não achei um app para abrir este link." to "I couldn't find an app to open this link.", "Não encontrei esse endereço." to "I couldn't find that address.", + "Não foi possível guardar a senha neste aparelho." to "Could not save the password on this device.", "O Android encerrou a sessão." to "Android ended the session.", "O KeyFlow só abre links http, https e mailto." to "KeyFlow only opens http, https and mailto links.", "O agente já tem 3 sessões abertas." to "The agent already has 3 open sessions.", diff --git a/app/src/main/java/com/keyflow/i18n/es/Computador.kt b/app/src/main/java/com/keyflow/i18n/es/Computador.kt index 3135e6d1..b1e22603 100644 --- a/app/src/main/java/com/keyflow/i18n/es/Computador.kt +++ b/app/src/main/java/com/keyflow/i18n/es/Computador.kt @@ -43,6 +43,7 @@ internal val Computador: Map = mapOf( "Elas podem ser executadas." to "Podrían ejecutarse.", "Endereço" to "Dirección", "Endereço IPv6 vai entre colchetes, por exemplo [::1]." to "Las direcciones IPv6 van entre corchetes, por ejemplo [::1].", + "Escolha uma chave guardada." to "Elige una clave guardada.", "Esquecer servidor" to "Olvidar servidor", "Esta chave pede a senha dela na hora; o agente não pode usá-la." to "Esta clave pide su contraseña en el momento; el agente no puede usarla.", "Este servidor pede a autenticação na hora; o agente não tem como digitá-la. Guarde uma chave ou a senha." to "Este servidor pide la autenticación en el momento; el agente no puede escribirla. Guarda una clave o la contraseña.", @@ -59,6 +60,7 @@ internal val Computador: Map = mapOf( "Imagens no terminal" to "Imágenes en la terminal", "Informe o endereço do servidor." to "Indica la dirección del servidor.", "Informe o usuário." to "Indica el usuario.", + "Informe uma senha para guardá-la neste aparelho." to "Introduce una contraseña para guardarla en este dispositivo.", "Já existe um servidor com esse nome." to "Ya existe un servidor con ese nombre.", "Lembrar a senha" to "Recordar la contraseña", "Liberar este servidor para o agente?" to "¿Permitir que el agente use este servidor?", @@ -73,6 +75,7 @@ internal val Computador: Map = mapOf( "Novo host" to "Nuevo host", "Não achei um app para abrir este link." to "No encontré una app para abrir este enlace.", "Não encontrei esse endereço." to "No encontré esa dirección.", + "Não foi possível guardar a senha neste aparelho." to "No se pudo guardar la contraseña en este dispositivo.", "O Android encerrou a sessão." to "Android terminó la sesión.", "O KeyFlow só abre links http, https e mailto." to "KeyFlow solo abre enlaces http, https y mailto.", "O agente já tem 3 sessões abertas." to "El agente ya tiene 3 sesiones abiertas.", diff --git a/app/src/main/java/com/keyflow/ui/config/ComputadorHostModal.kt b/app/src/main/java/com/keyflow/ui/config/ComputadorHostModal.kt index 1fa4cbef..bf3e3ef9 100644 --- a/app/src/main/java/com/keyflow/ui/config/ComputadorHostModal.kt +++ b/app/src/main/java/com/keyflow/ui/config/ComputadorHostModal.kt @@ -10,6 +10,7 @@ import androidx.compose.material3.AlertDialog import androidx.compose.material3.Text import androidx.compose.material3.TextButton import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember @@ -38,6 +39,8 @@ import com.keyflow.ui.theme.LocalKeyFlowPalette import com.keyflow.ui.theme.SpaceGrotesk import kotlinx.coroutines.CancellationException import kotlinx.coroutines.Job +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext import kotlinx.coroutines.launch const val COMPUTADOR_MODAL_FECHAR_TAG = "computador-modal-fechar" @@ -102,6 +105,12 @@ internal fun ComputadorHostModal(host: Host?, hosts: List, chaves: List>(emptyList()) } var teste by remember { mutableStateOf(null) } var testeJob by remember { mutableStateOf(null) } @@ -114,7 +123,15 @@ internal fun ComputadorHostModal(host: Host?, hosts: List, chaves: List Host) { vivo[0] = f(vivo[0]); rascunho = vivo[0] } fun erro(c: CampoHost) = erros.firstOrNull { it.campo == c }?.motivo?.texto() val tipo = when (rascunho.autenticacao) { is AutenticacaoHost.Chave -> TipoAuth.CHAVE; AutenticacaoHost.Senha -> TipoAuth.SENHA; AutenticacaoHost.Perguntar -> TipoAuth.PERGUNTAR } - val podeAgente = RegraAgente.podeMarcar(rascunho) + fun podeMarcar(h: Host): PodeMarcar { + val disponivel = when (val a = h.autenticacao) { + AutenticacaoHost.Senha -> senhaDigitada || senhaGuardada + is AutenticacaoHost.Chave -> chaves.any { it.id == a.keyId } + AutenticacaoHost.Perguntar -> false + } + return RegraAgente.podeMarcar(h, credencialDisponivel = disponivel) + } + val podeAgente = podeMarcar(rascunho) ConfigModal(if (host == null) tr("Novo host") else rascunho.nome.ifBlank { tr("Host") }, onDismiss, COMPUTADOR_MODAL_FECHAR_TAG, accessibleHeader = true) { Column(Modifier.padding(top = 14.dp), verticalArrangement = Arrangement.spacedBy(14.dp)) { @@ -140,23 +157,23 @@ internal fun ComputadorHostModal(host: Host?, hosts: List, chaves: List COMPUTADOR_HOST_AUTH_CHAVE_TAG; TipoAuth.SENHA -> COMPUTADOR_HOST_AUTH_SENHA_TAG; TipoAuth.PERGUNTAR -> COMPUTADOR_HOST_AUTH_PERGUNTAR_TAG } }, onSelect = { novo -> mudar { h -> when (novo) { - TipoAuth.CHAVE -> h.copy(autenticacao = AutenticacaoHost.Chave(chaves.firstOrNull()?.id ?: ""), lembrarSenha = false) + TipoAuth.CHAVE -> chaves.firstOrNull()?.let { h.copy(autenticacao = AutenticacaoHost.Chave(it.id), lembrarSenha = false) } ?: h TipoAuth.SENHA -> h.copy(autenticacao = AutenticacaoHost.Senha) TipoAuth.PERGUNTAR -> h.copy(autenticacao = AutenticacaoHost.Perguntar, lembrarSenha = false) } } // Mudar o jeito de autenticar pode tirar a base da marca do agente (CMP-09). - if (RegraAgente.podeMarcar(vivo[0]) !is PodeMarcar.Sim && vivo[0].agente == PoliticaAgente.PERMITIDO) mudar { it.copy(agente = PoliticaAgente.PROIBIDO) } + if (podeMarcar(vivo[0]) !is PodeMarcar.Sim && vivo[0].agente == PoliticaAgente.PERMITIDO) mudar { it.copy(agente = PoliticaAgente.PROIBIDO) } }, ) + if (chaves.isEmpty()) InfoNote(tr("Nenhuma chave guardada. Gere ou importe uma na seção Chaves."), "computador-host-sem-chaves") when (tipo) { - TipoAuth.CHAVE -> if (chaves.isEmpty()) { - InfoNote(tr("Nenhuma chave guardada. Gere ou importe uma na seção Chaves."), "computador-host-sem-chaves") - } else { + TipoAuth.CHAVE -> if (chaves.isNotEmpty()) { val atual = (rascunho.autenticacao as? AutenticacaoHost.Chave)?.keyId.orEmpty() Dropdown( label = tr("Chave"), options = chaves.map { it.id }, selected = atual.takeIf { id -> chaves.any { it.id == id } } ?: chaves.first().id, @@ -165,16 +182,18 @@ internal fun ComputadorHostModal(host: Host?, hosts: List, chaves: List { - AutoSaveField(tr("Senha"), senha, { senha = it }, COMPUTADOR_HOST_SENHA_TAG, keyboardType = KeyboardType.Password, pending = pending) + AutoSaveField(tr("Senha"), senha, { senha = it }, COMPUTADOR_HOST_SENHA_TAG, keyboardType = KeyboardType.Password, pending = pending, onDraftChange = { senhaDigitada = it.isNotEmpty() }) ToggleRow(tr("Lembrar a senha"), tr("Guarda a senha cifrada neste aparelho. Sem isso, o agente não pode usar este servidor."), rascunho.lembrarSenha, { v -> mudar { h -> h.copy(lembrarSenha = v) }; if (!v && vivo[0].agente == PoliticaAgente.PERMITIDO) mudar { it.copy(agente = PoliticaAgente.PROIBIDO) } }, COMPUTADOR_HOST_LEMBRAR_TAG) } TipoAuth.PERGUNTAR -> SettingSub(tr("A senha é pedida a cada conexão.")) } + erro(CampoHost.AUTENTICACAO)?.let { MensagemDeErro(it, computadorErroTag(CampoHost.AUTENTICACAO)) } + ToggleRow( tr("Pode ser usado pelo agente"), tr("O agente só age em servidores marcados e em sessões dele."), rascunho.agentePodeUsar, - { v -> if (v) avisoAgente = true else mudar { it.copy(agente = PoliticaAgente.PROIBIDO) } }, + { v -> pending.confirm(); if (v && podeMarcar(vivo[0]) is PodeMarcar.Sim) avisoAgente = true else mudar { it.copy(agente = PoliticaAgente.PROIBIDO) } }, COMPUTADOR_HOST_AGENTE_TAG, enabled = podeAgente is PodeMarcar.Sim || rascunho.agentePodeUsar, ) (podeAgente as? PodeMarcar.Nao)?.let { if (!rascunho.agentePodeUsar) MensagemDeErro(it.motivo.texto(), COMPUTADOR_HOST_AGENTE_MOTIVO_TAG) } @@ -217,10 +236,12 @@ internal fun ComputadorHostModal(host: Host?, hosts: List, chaves: List, chaves: List + /** Consulta só a existência do segredo, sem entregá-lo à interface. */ + suspend fun temSenhaGuardada(host: Host): Boolean = false + /** CMP-07: fecha as sessões do host, apaga `known_hosts`, a senha e o host. A chave fica. */ suspend fun excluir(host: Host) diff --git a/app/src/main/java/com/keyflow/ui/config/ConfigFields.kt b/app/src/main/java/com/keyflow/ui/config/ConfigFields.kt index 405b528f..4945303c 100644 --- a/app/src/main/java/com/keyflow/ui/config/ConfigFields.kt +++ b/app/src/main/java/com/keyflow/ui/config/ConfigFields.kt @@ -799,6 +799,7 @@ internal fun AutoSaveField( keyboardType: KeyboardType = KeyboardType.Text, masked: Boolean = false, pending: PendingEdits? = null, + onDraftChange: ((String) -> Unit)? = null, ) { val palette = LocalKeyFlowPalette.current val focusManager = LocalFocusManager.current @@ -840,6 +841,7 @@ internal fun AutoSaveField( // desfoque/Done/descarte. val pasted = new.length - text.length > 1 text = new + onDraftChange?.invoke(new) if (masked) maskedEditDirty = true if (pasted) commitIfChanged() }, diff --git a/app/src/test/java/com/keyflow/computador/CodecHostsFuzzTest.kt b/app/src/test/java/com/keyflow/computador/CodecHostsFuzzTest.kt index 8246b20f..9154d37e 100644 --- a/app/src/test/java/com/keyflow/computador/CodecHostsFuzzTest.kt +++ b/app/src/test/java/com/keyflow/computador/CodecHostsFuzzTest.kt @@ -45,7 +45,7 @@ class CodecHostsFuzzTest { assertEquals(config.hosts.size, config.hosts.map { it.id }.distinct().size) for (h in config.hosts) { assertTrue("host inválido sobreviveu: $h de $entrada", ValidadorHost.validar(h).none { it.campo != CampoHost.LIMITE }) - if (h.agentePodeUsar) assertTrue(RegraAgente.podeMarcar(h) is PodeMarcar.Sim) + if (h.agentePodeUsar) assertTrue(RegraAgente.podeMarcar(h, credencialDisponivel = true) is PodeMarcar.Sim) } } } diff --git a/app/src/test/java/com/keyflow/computador/CodecHostsPropertyTest.kt b/app/src/test/java/com/keyflow/computador/CodecHostsPropertyTest.kt index ca9e2fc0..de708239 100644 --- a/app/src/test/java/com/keyflow/computador/CodecHostsPropertyTest.kt +++ b/app/src/test/java/com/keyflow/computador/CodecHostsPropertyTest.kt @@ -26,7 +26,7 @@ class CodecHostsPropertyTest { ) { id, nome, endereco, porta, usuario, auth, lembrar, agente, imagens -> val h = Host(id, nome, endereco, porta, usuario, auth, lembrar, if (agente) PoliticaAgente.PERMITIDO else PoliticaAgente.PROIBIDO, imagens) // O codec aplica a regra do agente; o gerador só produz o que o app produziria. - if (h.agentePodeUsar && RegraAgente.podeMarcar(h) !is PodeMarcar.Sim) h.copy(agente = PoliticaAgente.PROIBIDO) else h + if (h.agentePodeUsar && RegraAgente.podeMarcar(h, credencialDisponivel = true) !is PodeMarcar.Sim) h.copy(agente = PoliticaAgente.PROIBIDO) else h } private val configs = Arb.list(hostsArb, 0..12).map { lista -> diff --git a/app/src/test/java/com/keyflow/computador/EdicaoDeHostTest.kt b/app/src/test/java/com/keyflow/computador/EdicaoDeHostTest.kt index bef0badd..65546b78 100644 --- a/app/src/test/java/com/keyflow/computador/EdicaoDeHostTest.kt +++ b/app/src/test/java/com/keyflow/computador/EdicaoDeHostTest.kt @@ -8,45 +8,48 @@ class EdicaoDeHostTest { private fun host(id: String = "aaaaaaaa", nome: String = "dev", auth: AutenticacaoHost = AutenticacaoHost.Senha, lembrar: Boolean = true, agente: PoliticaAgente = PoliticaAgente.PROIBIDO, porta: Int = 22) = Host(id, nome, "dev.example.org", porta, "yan", auth, lembrar, agente) + private fun aplicar(c: ConfigHosts, h: Host, passphrase: (String) -> Boolean = { false }) = + EdicaoDeHost.aplicar(c, h, credencialDisponivel = true, chavePedePassphrase = passphrase) + @Test fun hostValidoEAcrescentadoComEspacosAparados() { - val r = EdicaoDeHost.aplicar(ConfigHosts(), host(nome = " dev ")) as ResultadoEdicao.Ok + val r = aplicar(ConfigHosts(), host(nome = " dev ")) as ResultadoEdicao.Ok assertEquals("dev", r.host.nome) assertEquals(1, r.config.hosts.size) } @Test fun porta0ENomeRepetidoVoltamOMotivo() { val base = ConfigHosts(listOf(host(id = "11111111", nome = "dev"))) - val r = EdicaoDeHost.aplicar(base, host(id = "22222222", nome = "DEV", porta = 0)) as ResultadoEdicao.Erros + val r = aplicar(base, host(id = "22222222", nome = "DEV", porta = 0)) as ResultadoEdicao.Erros assertTrue(r.erros.any { it.campo == CampoHost.PORTA && it.motivo == MotivoHost.PORTA_INVALIDA }) assertTrue(r.erros.any { it.campo == CampoHost.NOME && it.motivo == MotivoHost.NOME_REPETIDO }) } @Test fun editarOProprioHostNaoColideComOProprioNome() { val base = ConfigHosts(listOf(host(nome = "dev"))) - val r = EdicaoDeHost.aplicar(base, host(nome = "dev").copy(usuario = "outro")) as ResultadoEdicao.Ok + val r = aplicar(base, host(nome = "dev").copy(usuario = "outro")) as ResultadoEdicao.Ok assertEquals(1, r.config.hosts.size) assertEquals("outro", r.config.hosts.single().usuario) } @Test fun agenteNuncaFicaLigadoEmHostQueOAppNaoAutenticaSozinho() { - val perguntar = EdicaoDeHost.aplicar(ConfigHosts(), host(auth = AutenticacaoHost.Perguntar, lembrar = false, agente = PoliticaAgente.PERMITIDO)) as ResultadoEdicao.Ok + val perguntar = aplicar(ConfigHosts(), host(auth = AutenticacaoHost.Perguntar, lembrar = false, agente = PoliticaAgente.PERMITIDO)) as ResultadoEdicao.Ok assertEquals(PoliticaAgente.PROIBIDO, perguntar.host.agente) - val semSenha = EdicaoDeHost.aplicar(ConfigHosts(), host(auth = AutenticacaoHost.Senha, lembrar = false, agente = PoliticaAgente.PERMITIDO)) as ResultadoEdicao.Ok + val semSenha = aplicar(ConfigHosts(), host(auth = AutenticacaoHost.Senha, lembrar = false, agente = PoliticaAgente.PERMITIDO)) as ResultadoEdicao.Ok assertEquals(PoliticaAgente.PROIBIDO, semSenha.host.agente) - val ok = EdicaoDeHost.aplicar(ConfigHosts(), host(auth = AutenticacaoHost.Senha, lembrar = true, agente = PoliticaAgente.PERMITIDO)) as ResultadoEdicao.Ok + val ok = aplicar(ConfigHosts(), host(auth = AutenticacaoHost.Senha, lembrar = true, agente = PoliticaAgente.PERMITIDO)) as ResultadoEdicao.Ok assertEquals(PoliticaAgente.PERMITIDO, ok.host.agente) - val chavePassphrase = EdicaoDeHost.aplicar(ConfigHosts(), host(auth = AutenticacaoHost.Chave("k1"), lembrar = false, agente = PoliticaAgente.PERMITIDO)) { true } as ResultadoEdicao.Ok + val chavePassphrase = aplicar(ConfigHosts(), host(auth = AutenticacaoHost.Chave("k1"), lembrar = false, agente = PoliticaAgente.PERMITIDO)) { true } as ResultadoEdicao.Ok assertEquals(PoliticaAgente.PROIBIDO, chavePassphrase.host.agente) } @Test fun lembrarSenhaSoVaiComAutenticacaoPorSenha() { - val r = EdicaoDeHost.aplicar(ConfigHosts(), host(auth = AutenticacaoHost.Chave("k"), lembrar = true)) as ResultadoEdicao.Ok + val r = aplicar(ConfigHosts(), host(auth = AutenticacaoHost.Chave("k"), lembrar = true)) as ResultadoEdicao.Ok assertEquals(false, r.host.lembrarSenha) } @Test fun cinquentaHostsEOLimite() { val cheio = ConfigHosts((1..50).map { host(id = "%08x".format(it), nome = "h$it") }) - val r = EdicaoDeHost.aplicar(cheio, host(id = "ffffffff", nome = "novo")) as ResultadoEdicao.Erros + val r = aplicar(cheio, host(id = "ffffffff", nome = "novo")) as ResultadoEdicao.Erros assertTrue(r.erros.any { it.motivo == MotivoHost.LISTA_CHEIA }) } diff --git a/app/src/test/java/com/keyflow/computador/GravadorDeHostsTest.kt b/app/src/test/java/com/keyflow/computador/GravadorDeHostsTest.kt new file mode 100644 index 00000000..bebc3ea0 --- /dev/null +++ b/app/src/test/java/com/keyflow/computador/GravadorDeHostsTest.kt @@ -0,0 +1,118 @@ +package com.keyflow.computador + +import com.keyflow.computador.chaves.ChaveSsh +import java.io.IOException +import kotlinx.coroutines.test.runTest +import kotlinx.coroutines.CompletableDeferred +import kotlinx.coroutines.NonCancellable +import kotlinx.coroutines.currentCoroutineContext +import kotlinx.coroutines.ensureActive +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext +import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Assert.assertTrue +import org.junit.Test + +class GravadorDeHostsTest { + private class Dados : DadosDaEdicaoDeHost { + var config = ConfigHosts() + val segredos = mutableMapOf() + val eventos = mutableListOf() + var falhaNoCofre = false + var ignoraCofre = false + var falhaNoConfig = false + override suspend fun hostsOnce() = config + override suspend fun chavesOnce() = emptyList() + override fun senhaLembrada(hostId: String) = segredos[hostId] + override fun lembrarSenha(hostId: String, senha: String) { + eventos += "senha" + if (falhaNoCofre) throw IOException("cofre falso indisponível") + if (!ignoraCofre) segredos[hostId] = senha + } + override fun esquecerSenha(hostId: String) { eventos += "apagar"; segredos.remove(hostId) } + override suspend fun atualizarHosts(f: (ConfigHosts) -> ConfigHosts): ConfigHosts { + if (falhaNoConfig) throw IOException("DataStore falso indisponível") + config = f(config) + eventos += "config" + for (h in config.hosts) if (h.agentePodeUsar && h.autenticacao == AutenticacaoHost.Senha) { + assertTrue("a marca não pode ser publicada antes do segredo", !senhaLembrada(h.id).isNullOrEmpty()) + } + return config + } + } + private fun h(auth: AutenticacaoHost = AutenticacaoHost.Senha, lembrar: Boolean = true) = + Host("aaaaaaaa", "dev", "dev.example.org", 22, "yan", auth, lembrar, PoliticaAgente.PERMITIDO) + + @Test fun lembrarSemSenhaNaoGravaHostNemPermiteAgente() = runTest { + for (senha in listOf(null, "")) { + val d = Dados() + val r = GravadorDeHosts(d).salvar(h(), senha) as ResultadoEdicao.Erros + assertTrue(r.erros.any { it.motivo == MotivoHost.SENHA_NAO_INFORMADA }) + assertTrue(d.config.hosts.isEmpty()); assertTrue(d.eventos.isEmpty()) + } + } + @Test fun segredoEConfirmadoAntesDaPublicacaoDaMarca() = runTest { + val d = Dados() + val r = GravadorDeHosts(d).salvar(h(), "senha-falsa") as ResultadoEdicao.Ok + assertEquals(listOf("senha", "config"), d.eventos) + assertTrue(r.host.agentePodeUsar); assertEquals("senha-falsa", d.segredos[r.host.id]) + } + @Test fun edicaoSemNovaSenhaPreservaOSegredoAnterior() = runTest { + val d = Dados(); d.segredos["aaaaaaaa"] = "senha-falsa" + val r = GravadorDeHosts(d).salvar(h(), null) as ResultadoEdicao.Ok + assertTrue(r.host.agentePodeUsar); assertEquals(listOf("config"), d.eventos) + assertEquals("senha-falsa", d.segredos[r.host.id]) + } + @Test fun cofreQueFalhaOuIgnoraAGravacaoNaoPublicaPermissao() = runTest { + for (ignora in listOf(false, true)) { + val d = Dados(); d.falhaNoCofre = !ignora; d.ignoraCofre = ignora + val r = GravadorDeHosts(d).salvar(h(), "senha-falsa") as ResultadoEdicao.Erros + assertEquals(MotivoHost.SENHA_NAO_GUARDADA, r.erros.single().motivo) + assertTrue(d.config.hosts.isEmpty()); assertFalse(d.eventos.contains("config")) + } + } + @Test fun erroNosCamposNaoTocaNoCofre() = runTest { + val d = Dados() + assertTrue(GravadorDeHosts(d).salvar(h().copy(porta = 0), "senha-falsa") is ResultadoEdicao.Erros) + assertTrue(d.eventos.isEmpty()) + } + @Test fun erroNoDataStoreRestauraSenhaAnterior() = runTest { + val d = Dados(); d.segredos["aaaaaaaa"] = "anterior-falsa"; d.falhaNoConfig = true + try { GravadorDeHosts(d).salvar(h(), "nova-falsa"); throw AssertionError("deveria falhar") } catch (_: IOException) { } + assertEquals("anterior-falsa", d.segredos["aaaaaaaa"]); assertTrue(d.config.hosts.isEmpty()) + } + @Test fun chaveVaziaOuQueNaoExisteNaoPodeSerGravada() = runTest { + for (id in listOf("", " ", "inexistente")) { + val d = Dados() + val r = GravadorDeHosts(d).salvar(h(AutenticacaoHost.Chave(id), false), null) as ResultadoEdicao.Erros + assertEquals(MotivoHost.CHAVE_NAO_GUARDADA, r.erros.single().motivo) + assertTrue(d.config.hosts.isEmpty()) + } + } + @Test fun esquecerSenhaPrimeiroPublicaHostSemPermissaoEDepoisApaga() = runTest { + val d = Dados(); d.config = ConfigHosts(listOf(h())); d.segredos["aaaaaaaa"] = "senha-falsa" + val r = GravadorDeHosts(d).salvar(h(lembrar = false), null) as ResultadoEdicao.Ok + assertFalse(r.host.agentePodeUsar); assertFalse(r.host.lembrarSenha) + assertEquals(listOf("config", "apagar"), d.eventos); assertTrue(d.segredos.isEmpty()) + } + @Test fun cancelarEnquantoODataStoreConfirmaNaoDeixaPermissaoSemSenha() = runTest { + val d = Dados() + val iniciou = CompletableDeferred() + val liberar = CompletableDeferred() + val porta = object : DadosDaEdicaoDeHost by d { + override suspend fun atualizarHosts(f: (ConfigHosts) -> ConfigHosts): ConfigHosts { + // Como um ator persistente: pode confirmar antes de o chamador receber a resposta cancelada. + withContext(NonCancellable) { + iniciou.complete(Unit); liberar.await(); d.atualizarHosts(f) + } + currentCoroutineContext().ensureActive() + return d.config + } + } + val job = launch { GravadorDeHosts(porta).salvar(h(), "senha-falsa") } + iniciou.await(); job.cancel(); liberar.complete(Unit); job.join() + assertTrue(d.config.hosts.single().agentePodeUsar) + assertEquals("senha-falsa", d.segredos["aaaaaaaa"]) + } +} diff --git a/app/src/test/java/com/keyflow/computador/RegraAgenteTest.kt b/app/src/test/java/com/keyflow/computador/RegraAgenteTest.kt index f6da766f..28f71634 100644 --- a/app/src/test/java/com/keyflow/computador/RegraAgenteTest.kt +++ b/app/src/test/java/com/keyflow/computador/RegraAgenteTest.kt @@ -11,11 +11,19 @@ class RegraAgenteTest { @Test fun senhaSoComLembrar() { assertEquals(PodeMarcar.Nao(MotivoAgente.SENHA_NAO_LEMBRADA), RegraAgente.podeMarcar(h(AutenticacaoHost.Senha))) - assertEquals(PodeMarcar.Sim, RegraAgente.podeMarcar(h(AutenticacaoHost.Senha, lembrar = true))) + assertEquals(PodeMarcar.Sim, RegraAgente.podeMarcar(h(AutenticacaoHost.Senha, lembrar = true), credencialDisponivel = true)) } @Test fun chaveGuardadaPodeMasComPassphraseNaHoraNao() { - assertEquals(PodeMarcar.Sim, RegraAgente.podeMarcar(h(AutenticacaoHost.Chave("k1")))) - assertEquals(PodeMarcar.Nao(MotivoAgente.CHAVE_COM_PASSPHRASE), RegraAgente.podeMarcar(h(AutenticacaoHost.Chave("k1"))) { true }) + assertEquals(PodeMarcar.Sim, RegraAgente.podeMarcar(h(AutenticacaoHost.Chave("k1")), credencialDisponivel = true)) + assertEquals(PodeMarcar.Nao(MotivoAgente.CHAVE_COM_PASSPHRASE), RegraAgente.podeMarcar(h(AutenticacaoHost.Chave("k1")), credencialDisponivel = true) { true }) + } + @Test fun lembrarNaoEProvaDeSegredoGuardado() { + assertEquals(PodeMarcar.Nao(MotivoAgente.SENHA_INDISPONIVEL), RegraAgente.podeMarcar(h(AutenticacaoHost.Senha, lembrar = true))) + } + + @Test fun chaveVaziaOuIndisponivelNaoPermiteAgente() { + for (id in listOf("", " ")) assertEquals(PodeMarcar.Nao(MotivoAgente.CHAVE_NAO_GUARDADA), RegraAgente.podeMarcar(h(AutenticacaoHost.Chave(id)), credencialDisponivel = true)) + assertEquals(PodeMarcar.Nao(MotivoAgente.CHAVE_NAO_GUARDADA), RegraAgente.podeMarcar(h(AutenticacaoHost.Chave("k1")))) } } diff --git a/app/src/test/java/com/keyflow/computador/ValidadorHostTest.kt b/app/src/test/java/com/keyflow/computador/ValidadorHostTest.kt index c4727147..5599840f 100644 --- a/app/src/test/java/com/keyflow/computador/ValidadorHostTest.kt +++ b/app/src/test/java/com/keyflow/computador/ValidadorHostTest.kt @@ -58,4 +58,10 @@ class ValidadorHostTest { assertEquals(listOf(CampoHost.LIMITE to MotivoHost.LISTA_CHEIA), motivos(host(nome = "novo", id = "ffffffff"), cheios)) assertTrue(motivos(cheios[3], cheios).isEmpty()) } + @Test fun autenticacaoExigeReferenciaValidaEFatoSobreOSegredo() { + assertTrue(ValidadorHost.validar(host().copy(autenticacao = AutenticacaoHost.Chave(""))).any { it.motivo == MotivoHost.CHAVE_NAO_GUARDADA }) + val senha = host().copy(autenticacao = AutenticacaoHost.Senha, lembrarSenha = true) + assertTrue(ValidadorHost.validar(senha, credencialDisponivel = false).any { it.motivo == MotivoHost.SENHA_NAO_INFORMADA }) + assertTrue(ValidadorHost.validar(senha, credencialDisponivel = true).isEmpty()) + } } From c76b3c8b89ce0bdf849a6067622e58163c6d4682 Mon Sep 17 00:00:00 2001 From: Yan Lucas Date: Sat, 31 Oct 2026 18:59:13 +0000 Subject: [PATCH 08/12] Completa os copyrights e avisos dos glifos Nerd Fonts --- .specs/features/computer-terminal/spec.md | 2 +- .specs/features/computer-terminal/tasks.md | 2 +- .../2026-10-31-computador-d-correcao.md | 8 + app/licenses/OFL_JetBrainsMonoNerdFont.txt | 1458 ++++++++++++++++- app/licenses/README.md | 33 +- 5 files changed, 1499 insertions(+), 4 deletions(-) diff --git a/.specs/features/computer-terminal/spec.md b/.specs/features/computer-terminal/spec.md index 74367747..3a505555 100644 --- a/.specs/features/computer-terminal/spec.md +++ b/.specs/features/computer-terminal/spec.md @@ -411,7 +411,7 @@ Nenhuma. Q1–Q13 foram respondidas em 29/10 (D12–D24). Q8, Q9, Q10, Q11 e Q13 | CMP-27 | P1-D | CMP-T14 | Verificada com o KeyFlow IME como teclado atual via `InputConnection`; Gboard e toque real: T21 (manual) | | CMP-28 | P1-D | CMP-T13 | Verificada (colar e ditado com quebra de linha pedem confirmação; `ESC[201~` removido até não sobrar) | | CMP-29 | P1-D | CMP-T10, CMP-T13 | Verificada (9ª sessão mostra o motivo; `onTrimMemory` não perde o texto) | -| CMP-30 | P1-D | CMP-T13 | Verificada (sem `FLAG_SECURE`, teste de código e de janela; fonte JetBrains Mono Nerd, OFL; tamanho de fonte não persiste) | +| CMP-30 | P1-D | CMP-T13 | Sem `FLAG_SECURE` verificado; fonte JetBrains Mono Nerd mantida pelo Yan. Revisão #96: copyrights e avisos completos dos 14 conjuntos, Nerd Fonts e base, com OFL/MIT/Apache-2.0/CC BY 4.0/Unlicense e aviso Bitstream da origem. Tamanho da fonte ainda não persiste | | CMP-31 | P1-D | CMP-T14, CMP-T17 | Parcial — alvos de 48 dp e `contentDescription` nas abas e teclas extras, estado por texto (T13/T14); falta T17 | | CMP-32 | P1-E | CMP-T12, CMP-T20 | Parcial — serviço `specialUse`, notificação só com contagem (CMP-T12) verificados | | CMP-33 | P1-E | CMP-T12, CMP-T19 | Parcial — manifesto, `property` e checklist da Play (CMP-T12); declaração no Console é [YAN] | diff --git a/.specs/features/computer-terminal/tasks.md b/.specs/features/computer-terminal/tasks.md index 55871855..f0baa94f 100644 --- a/.specs/features/computer-terminal/tasks.md +++ b/.specs/features/computer-terminal/tasks.md @@ -241,7 +241,7 @@ para permitir essa verificação sem reescrever a branch; detalhes na [lição]( `Back` sai da activity **sem** fechar as sessões; fechar a aba fecha a sessão; 9ª sessão mostra o motivo; `onTrimMemory` com a activity invisível não perde o scrollback de texto; um teste falha se a activity pedir `FLAG_SECURE`; a fonte embutida tem glifos Nerd e licença OFL ou compatível com Apache-2.0, ou a lição registra a monoespaçada do sistema. - **Tests**: unit + instrumentado. **Gate**: `quick` + `pool instrumentar com.keyflow.ui.terminal.TerminalScreenTest com.keyflow.computador.app.LigacaoEmuladorTest`. **Commit**: `feat(computador): terminal na tela com abas e proteção contra sequências do servidor`. -**Correção da revisão #96 (2026-10-31):** CMP-35 usa tokenização compatível com o parser C fixado, normaliza números, bloqueia S8C1T e filtra respostas C1. Strings são retidas até a decisão; limite de 1 MiB descarta até o final/cancelamento, sem liberar prefixos. Regressões e fuzz contra o libvterm real: 25/25; mutação liberando S8C1T detectada e revertida. Mouse SGR da tela continua pendente em CMP-25/T27. +**Correção da revisão #96 (2026-10-31):** CMP-35 usa tokenização compatível com o parser C fixado, normaliza números, bloqueia S8C1T e filtra respostas C1. Strings são retidas até a decisão; limite de 1 MiB descarta até o final/cancelamento, sem liberar prefixos. Regressões e fuzz contra o libvterm real: 25/25; mutação liberando S8C1T detectada e revertida. Fonte mantida por decisão do Yan, com copyrights e licenças completos em `OFL_JetBrainsMonoNerdFont.txt` (14 conjuntos de glifos e Nerd Fonts/base). Mouse SGR da tela continua pendente em CMP-25/T27. ### CMP-T14 — Entrada: KeyFlow IME, Gboard, teclado físico, teclas extras e ditado — **Status: concluída em 2026-10-31 (Gboard e toque real no KeyFlow IME ficam para a T21 manual)** - **What**: teclas extras (Esc, Tab, Ctrl e Alt "pegajosos", setas, `|`, `~`, `/`, `-`, F1–F12 numa segunda linha) em Compose acima do teclado; mapeamento de teclado físico (Ctrl+letra, Alt, Home/End, PageUp/Down, F-keys); o campo de entrada do terminal conversa com o **KeyFlow IME** sem duplicar caractere nem deixar composição pendurada diff --git a/.specs/project/licoes/2026-10-31-computador-d-correcao.md b/.specs/project/licoes/2026-10-31-computador-d-correcao.md index 2b026403..ea3bb9c6 100644 --- a/.specs/project/licoes/2026-10-31-computador-d-correcao.md +++ b/.specs/project/licoes/2026-10-31-computador-d-correcao.md @@ -25,3 +25,11 @@ Os nove instrumentados de entrada foram preparados (inclusive o componente corre Depois da validação, a fase segredo → confirmação do DataStore → limpeza é protegida contra cancelamento do modal. Um teste reproduziu o ator que confirma a configuração antes de entregar uma resposta cancelada: desfazer apenas a senha nessa janela deixava permissão sem credencial. O teste ficou vermelho, a fase foi protegida com `NonCancellable` e os nove testes do gravador passaram. O modal consulta só a existência da senha (IO), acompanha a presença do rascunho para habilitar a marca e desabilita Chave quando não há chaves. Estado de tela após IO volta a Main. Os testes de persistência/regra/validação/codec e traduções passaram; a mutação que ignorou a disponibilidade da senha derrubou `lembrarNaoEProvaDeSegredoGuardado`, foi revertida e a rodada final passou. Os instrumentados novos compilaram; a execução continua suspensa pelo ANR observado antes da instalação. + +## CMP-30: avisos de todos os conjuntos incorporados + +A decisão do Yan mantém JetBrains Mono Nerd Font Mono 3.5.1. A OFL da JetBrains Mono 2.304 foi complementada com o LICENSE completo do Nerd Fonts (Ryan L McIntyre, 2014), os avisos MIT de Devicons, Font Awesome Extension, Octicons, Seti, Powerline/Extra e IEC, os textos OFL de Pomicons/Weather/Font Awesome, CC BY 4.0 de Codicons/ícones Font Awesome e Apache-2.0 de Material Design. O aviso do extraglyphs/Hack conserva também a origem Bitstream. Espaços finais/fins de linha foram normalizados sem alterar as palavras das licenças. + +O inventário de `src/glyphs/README.md` na tag 3.5.1 traz Pomicons como OFL 1.1 com RFN. Font Logos 1.3.0 possui Unlicense no upstream; a tabela do Nerd Fonts ainda o chama de “unlicensed”. O texto Unlicense e o copyright 2014–2026 de Lukas W presente na fonte foram preservados. README e arquivo de avisos apontam as fontes exatas; fontes sem data publicada não receberam datas inventadas. + +O asset permaneceu inalterado, SHA-256 `f2a5ea6cfab397445ffab00c0370927b66d61e560a05db5db271b42006381c1a`. A conferência verificou 16 atribuições (base, Nerd Fonts e 14 conjuntos) e os textos integrais; nenhum teste foi acrescentado para comparar texto de licença com ele mesmo. diff --git a/app/licenses/OFL_JetBrainsMonoNerdFont.txt b/app/licenses/OFL_JetBrainsMonoNerdFont.txt index 8bee4148..d9c93d8b 100644 --- a/app/licenses/OFL_JetBrainsMonoNerdFont.txt +++ b/app/licenses/OFL_JetBrainsMonoNerdFont.txt @@ -18,7 +18,7 @@ with others. The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, +fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The @@ -91,3 +91,1459 @@ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. + + +============================================================ +Nerd Fonts e conjuntos de ícones incorporados — avisos adicionais +============================================================ + +Asset: JetBrainsMonoNerdFontMono-Regular.ttf, Nerd Fonts 3.5.1, base JetBrains Mono 2.304. +O KeyFlow distribui o asset recebido sem alterações. O Nerd Fonts incorporou e remapeou os glifos +para a variante Mono; as atribuições abaixo identificam os projetos de origem e suas licenças. +Não há endosso dos autores, fabricantes ou donos das marcas representadas pelos ícones. + +Inventário e versões: https://github.com/ryanoasis/nerd-fonts/blob/v3.5.1/src/glyphs/README.md +README do release: https://github.com/ryanoasis/nerd-fonts/blob/v3.5.1/readme.md + +A tabela do Nerd Fonts chama Font Logos de "unlicensed"; o LICENSE do upstream v1.3.0 contém +Unlicense (domínio público). Esse texto e o copyright presente na fonte são preservados abaixo. +Pomicons é OFL 1.1 com RFN. O aviso do Hack conserva também a licença Bitstream da origem. +Os textos recebidos são reproduzidos completos, inclusive os avisos adicionais e os RFNs. + + +------------------------------------------------------------ +Nerd Fonts 3.5.1 — Ryan L McIntyre; fonte modificada OFL e fontes do projeto MIT +Fonte: https://github.com/ryanoasis/nerd-fonts/blob/v3.5.1/LICENSE +------------------------------------------------------------ + +# Nerd Fonts Licensing + +There are various sources used under various licenses: + +* Nerd Fonts source fonts, patched fonts, and folders with explict OFL SIL files are licensed under SIL OPEN FONT LICENSE Version 1.1 (see below). +* Nerd Fonts original source code files (such as `.sh`, `.py`, `font-patcher` and others) are licensed under the MIT License (MIT) (see below). +* Many other licenses are present in this project for even more detailed breakdown see: [License Audit](https://github.com/ryanoasis/nerd-fonts/blob/-/license-audit.md). + +## Source files not in folders containing an explicit license are using the MIT License (MIT) + +The MIT License (MIT) + +Copyright (c) 2014 Ryan L McIntyre + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +## Various Fonts, Patched Fonts, SVGs, Glyph Fonts, and any files in a folder with explicit SIL OFL 1.1 License + +Copyright (c) 2014, Ryan L McIntyre (https://ryanlmcintyre.com). + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. + + + +------------------------------------------------------------ +Devicons 2.17.0.custom — Copyright (c) 2015 konpa — MIT +Fonte: https://github.com/devicons/devicon/blob/v2.17.0/LICENSE +------------------------------------------------------------ + +The MIT License (MIT) + +Copyright (c) 2015 konpa + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + + +------------------------------------------------------------ +Font Awesome Extension 0.0.3 — Copyright (c) 2017 André Luiz Gava — MIT +Fonte: https://github.com/AndreLZGava/font-awesome-extension/blob/master/LICENCE +------------------------------------------------------------ + +MIT License + +Copyright (c) 2017 André Luiz Gava + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + +------------------------------------------------------------ +Octicons 18.3.0 — Copyright (c) 2023 GitHub Inc. — MIT +Fonte: https://github.com/ryanoasis/nerd-fonts/blob/v3.5.1/src/glyphs/octicons/LICENSE +------------------------------------------------------------ + +MIT License + +Copyright (c) 2023 GitHub Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + +------------------------------------------------------------ +Seti UI 0.8.1 — Copyright (c) 2014 Jesse Weed — MIT; glifos originais do Nerd Fonts sob MIT +Fonte: https://github.com/jesseweed/seti-ui/blob/v0.8.1/LICENSE.md +------------------------------------------------------------ + +Copyright (c) 2014 Jesse Weed + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + + +------------------------------------------------------------ +Powerline Symbols — Copyright 2013 Kim Silkebækken and other contributors — MIT +Fonte: https://github.com/ryanoasis/nerd-fonts/blob/v3.5.1/src/glyphs/powerline-symbols/LICENSE.txt +------------------------------------------------------------ + +Copyright 2013 Kim Silkebækken and other contributors +https://github.com/powerline/powerline + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + + +------------------------------------------------------------ +Powerline Extra 1.200 — Copyright (c) 2016 Ryan L McIntyre — MIT +Fonte: https://github.com/ryanoasis/nerd-fonts/blob/v3.5.1/src/glyphs/powerline-extra/LICENSE +------------------------------------------------------------ + +MIT License + +Copyright (c) 2016 Ryan L McIntyre + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + +------------------------------------------------------------ +IEC Power Symbols — Copyright (c) 2013 Joe Loughry — MIT +Fonte: https://github.com/jloughry/Unicode/blob/master/LICENSE.txt +------------------------------------------------------------ + +The MIT License (MIT) + +Copyright (c) 2013 Joe Loughry + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + + +------------------------------------------------------------ +Extraglyphs do Hack 3.003 — Source Foundry Authors / Bitstream Inc. — MIT e aviso Bitstream preservados +Fonte: https://github.com/source-foundry/Hack/blob/v3.003/LICENSE.md +------------------------------------------------------------ + +The work in the Hack project is Copyright 2018 Source Foundry Authors and licensed under the MIT License + +The work in the DejaVu project was committed to the public domain. + +Bitstream Vera Sans Mono Copyright 2003 Bitstream Inc. and licensed under the Bitstream Vera License with Reserved Font Names "Bitstream" and "Vera" + +### MIT License + +Copyright (c) 2018 Source Foundry Authors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +### BITSTREAM VERA LICENSE + +Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is a trademark of Bitstream, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy of the fonts accompanying this license ("Fonts") and associated documentation files (the "Font Software"), to reproduce and distribute the Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions: + +The above copyright and trademark notices and this permission notice shall be included in all copies of one or more of the Font Software typefaces. + +The Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or characters may be added to the Fonts, only if the fonts are renamed to names not containing either the words "Bitstream" or the word "Vera". + +This License becomes null and void to the extent applicable to Fonts or Font Software that has been modified and is distributed under the "Bitstream Vera" names. + +The Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself. + +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. + +Except as contained in this notice, the names of Gnome, the Gnome Foundation, and Bitstream Inc., shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Font Software without prior written authorization from the Gnome Foundation or Bitstream Inc., respectively. For further information, contact: fonts at gnome dot org. + + + +------------------------------------------------------------ +Pomicons 1.001 — Copyright (c) 2021 Gabriele Lana; Reserved Font Name Pomicons — OFL 1.1 +Fonte: https://github.com/ryanoasis/nerd-fonts/blob/v3.5.1/src/glyphs/pomicons/LICENSE +------------------------------------------------------------ + +Copyright (c) 2021, Gabriele Lana gabriele.lana@gmail.com +with Reserved Font Name Pomicons. + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. + + + +------------------------------------------------------------ +Weather Icons 2.0.10 — Erik Flowers — OFL 1.1; cabeçalho recebido preservado, sem preencher datas ausentes +Fonte: https://github.com/ryanoasis/nerd-fonts/blob/v3.5.1/src/glyphs/weather-icons/OFL.txt +------------------------------------------------------------ + +Copyright (c) , (), +with Reserved Font Name . +Copyright (c) , (), +with Reserved Font Name . +Copyright (c) , (). + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. + + + +------------------------------------------------------------ +Font Awesome Free 6.5.1 — Fonticons, Inc.; copyright e RFN recebidos abaixo — fontes OFL 1.1 e ícones SVG/JS CC BY 4.0 +Fonte: https://github.com/ryanoasis/nerd-fonts/blob/v3.5.1/src/glyphs/font-awesome/LICENSE.txt +------------------------------------------------------------ + +Fonticons, Inc. (https://fontawesome.com) + +-------------------------------------------------------------------------------- + +Font Awesome Free License + +Font Awesome Free is free, open source, and GPL friendly. You can use it for +commercial projects, open source projects, or really almost whatever you want. +Full Font Awesome Free license: https://fontawesome.com/license/free. + +-------------------------------------------------------------------------------- + +# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/) + +The Font Awesome Free download is licensed under a Creative Commons +Attribution 4.0 International License and applies to all icons packaged +as SVG and JS file types. + +-------------------------------------------------------------------------------- + +# Fonts: SIL OFL 1.1 License + +In the Font Awesome Free download, the SIL OFL license applies to all icons +packaged as web and desktop font files. + +Copyright (c) 2022 Fonticons, Inc. (https://fontawesome.com) +with Reserved Font Name: "Font Awesome". + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + +SIL OPEN FONT LICENSE +Version 1.1 - 26 February 2007 + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting — in part or in whole — any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. + +-------------------------------------------------------------------------------- + +# Code: MIT License (https://opensource.org/licenses/MIT) + +In the Font Awesome Free download, the MIT license applies to all non-font and +non-icon files. + +Copyright 2022 Fonticons, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in the +Software without restriction, including without limitation the rights to use, copy, +modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, +and to permit persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +-------------------------------------------------------------------------------- + +# Attribution + +Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font +Awesome Free files already contain embedded comments with sufficient +attribution, so you shouldn't need to do anything additional when using these +files normally. + +We've kept attribution comments terse, so we ask that you do not actively work +to remove them from files, especially code. They're a great way for folks to +learn about Font Awesome. + +-------------------------------------------------------------------------------- + +# Brand Icons + +All brand icons are trademarks of their respective owners. The use of these +trademarks does not indicate endorsement of the trademark holder by Font +Awesome, nor vice versa. **Please do not use brand logos for any purpose except +to represent the company, product, or service to which they refer.** + + + +------------------------------------------------------------ +Codicons 0.0.45 — Microsoft Corporation e contribuidores — CC BY 4.0; o texto também acompanha a atribuição dos ícones Font Awesome +Fonte: https://github.com/ryanoasis/nerd-fonts/blob/v3.5.1/src/glyphs/codicons/LICENSE.txt +------------------------------------------------------------ + +Attribution 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution 4.0 International Public License ("Public License"). To the +extent this Public License may be interpreted as a contract, You are +granted the Licensed Rights in consideration of Your acceptance of +these terms and conditions, and the Licensor grants You such rights in +consideration of benefits the Licensor receives from making the +Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part; and + + b. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public +licenses. Notwithstanding, Creative Commons may elect to apply one of +its public licenses to material it publishes and in those instances +will be considered the “Licensor.” The text of the Creative Commons +public licenses is dedicated to the public domain under the CC0 Public +Domain Dedication. Except for the limited purpose of indicating that +material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the +public licenses. + +Creative Commons may be contacted at creativecommons.org. + + +------------------------------------------------------------ +Material Design Icons — Pictogrammers / Templarian, fonte de 06/10/2022 — Apache-2.0 +Fonte: https://github.com/ryanoasis/nerd-fonts/blob/v3.5.1/src/glyphs/materialdesign/LICENSE +------------------------------------------------------------ + +Pictogrammers Free License +-------------------------- + +This icon collection is released as free, open source, and GPL friendly by +the [Pictogrammers](http://pictogrammers.com/) icon group. You may use it +for commercial projects, open source projects, or anything really. + +# Icons: Apache 2.0 (https://www.apache.org/licenses/LICENSE-2.0) +Some of the icons are redistributed under the Apache 2.0 license. All other +icons are either redistributed under their respective licenses or are +distributed under the Apache 2.0 license. + +# Fonts: Apache 2.0 (https://www.apache.org/licenses/LICENSE-2.0) +All web and desktop fonts are distributed under the Apache 2.0 license. Web +and desktop fonts contain some icons that are redistributed under the Apache +2.0 license. All other icons are either redistributed under their respective +licenses or are distributed under the Apache 2.0 license. + +# Code: MIT (https://opensource.org/licenses/MIT) +The MIT license applies to all non-font and non-icon files. + + + +------------------------------------------------------------ +Texto completo Apache-2.0 aplicável ao Material Design Icons +Fonte: https://www.apache.org/licenses/LICENSE-2.0.txt +------------------------------------------------------------ + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + +------------------------------------------------------------ +Font Logos 1.3.0 — Copyright (c) 2014-2026, Lukas W (metadado da fonte) — Unlicense +Fonte: https://github.com/lukas-w/font-logos/blob/v1.3.0/LICENSE +------------------------------------------------------------ + +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to diff --git a/app/licenses/README.md b/app/licenses/README.md index fa51c6dd..eb5d9d24 100644 --- a/app/licenses/README.md +++ b/app/licenses/README.md @@ -4,7 +4,7 @@ |---|---|---| | Space Grotesk (fonte) | SIL OFL 1.1 | `OFL_SpaceGrotesk.txt` | | Space Mono (fonte) | SIL OFL 1.1 | `OFL_SpaceMono.txt` | -| JetBrains Mono Nerd Font Mono Regular v3.5.1 (fonte do terminal; JetBrains Mono 2.304 + ícones Nerd Fonts) | SIL OFL 1.1 (ícones: MIT, Apache-2.0, CC BY 4.0, OFL; ver README do Nerd Fonts) | `OFL_JetBrainsMonoNerdFont.txt` | +| JetBrains Mono Nerd Font Mono Regular v3.5.1 (fonte do terminal; JetBrains Mono 2.304 + ícones Nerd Fonts) | OFL 1.1; conjuntos incorporados MIT, Apache-2.0, CC BY 4.0, OFL e Unlicense; aviso Bitstream da origem Hack preservado | `OFL_JetBrainsMonoNerdFont.txt` (copyright e textos completos de cada conjunto) | | sherpa-onnx 1.13.8 (AAR recompilado sem TTS, reconhecimento de voz no aparelho) | Apache-2.0 | `Apache-2.0_sherpa-onnx.txt` | | ONNX Runtime (`libonnxruntime.so`, dentro do AAR do sherpa-onnx) | MIT | `MIT_onnxruntime.txt` | | Whisper base/small (OpenAI) — modelos baixados sob demanda | MIT (código e pesos, repositório oficial) | `MIT_whisper.txt` | @@ -113,3 +113,34 @@ Os avisos recebidos nos AARs/JARs estão em `computador/`, sem remover copyright Aviso embutido adicional: o cbssh conserva trechos Bouncy Castle sob MIT (`MIT_bouncycastle-cbssh.txt`). Textos completos das licenças não Apache também em `MIT_kaitai.txt`, `ISC_jbcrypt.txt`, `BSL-1.0_kstatemachine.txt` e `BSD-3-Clause_protobuf.txt`. + +## Fonte do terminal — Nerd Fonts 3.5.1 (revisão #96) + +A fonte permanece por decisão do Yan. O asset é o original do release, sem alterações pelo KeyFlow. +As versões dos glifos vêm do [inventário do Nerd Fonts 3.5.1](https://github.com/ryanoasis/nerd-fonts/blob/v3.5.1/src/glyphs/README.md); +o [README](https://github.com/ryanoasis/nerd-fonts/blob/v3.5.1/readme.md) e o +[LICENSE](https://github.com/ryanoasis/nerd-fonts/blob/v3.5.1/LICENSE) registram o trabalho de Ryan L McIntyre (copyright 2014, MIT/OFL). +`OFL_JetBrainsMonoNerdFont.txt` preserva a OFL da base e reúne os copyrights, RFNs e textos completos abaixo. + +| Conjunto | Autor/atribuição | Licença dos glifos/fontes e avisos preservados | +| --- | --- | --- | +| JetBrains Mono 2.304 | The JetBrains Mono Project Authors (2020) | OFL 1.1 | +| Nerd Fonts 3.5.1 / glifos originais | Ryan L McIntyre (2014) | OFL 1.1 / MIT | +| Codicons 0.0.45 | Microsoft Corporation e contribuidores | CC BY 4.0 | +| Devicons 2.17.0.custom | konpa (2015) / projeto Devicon | MIT | +| Extraglyphs (Hack 3.003) | Source Foundry Authors (2018), Bitstream Inc. (2003) | MIT; aviso Bitstream da origem preservado | +| Font Awesome Free 6.5.1 | Fonticons, Inc. (copyright/RFN do aviso recebido) | OFL 1.1 nas fontes; CC BY 4.0 nos ícones SVG/JS | +| Font Awesome Extension 0.0.3 | André Luiz Gava (2017) | MIT | +| Font Logos 1.3.0 | Lukas W (2014–2026, metadado da fonte) | Unlicense | +| Material Design Icons (06/10/2022) | Pictogrammers / Templarian | Apache-2.0 (texto completo e aviso recebidos) | +| Octicons 18.3.0 | GitHub Inc. (2023) | MIT | +| Seti UI 0.8.1 | Jesse Weed (2014) | MIT | +| Pomicons 1.001 | Gabriele Lana (2021), RFN Pomicons | OFL 1.1 | +| Powerline Symbols 1.000 | Kim Silkebækken e contribuidores (2013) | MIT | +| Powerline Extra 1.200 | Ryan L McIntyre (2016) | MIT | +| IEC Power Symbols | Joe Loughry (2013) | MIT | +| Weather Icons 2.0.10 | Erik Flowers | OFL 1.1, texto original preservado sem inventar datas | + +Font Logos é rotulado como “unlicensed” na tabela do Nerd Fonts; o [LICENSE do upstream v1.3.0](https://github.com/lukas-w/font-logos/blob/v1.3.0/LICENSE) +contém Unlicense. Os glifos foram incorporados/remapeados pelo Nerd Fonts para a variante Mono; o KeyFlow não alterou a fonte. +As marcas representadas pertencem aos respectivos titulares e não indicam endosso. From 03fed8b127a5eeaef28379392c6f4f8b294ce58d Mon Sep 17 00:00:00 2001 From: Yan Lucas Date: Sat, 31 Oct 2026 18:59:13 +0000 Subject: [PATCH 09/12] =?UTF-8?q?Remove=20a=20condi=C3=A7=C3=A3o=20redunda?= =?UTF-8?q?nte=20da=20sess=C3=A3o=20ativa=20no=20terminal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .specs/project/licoes/2026-10-31-computador-d-correcao.md | 4 ++++ app/src/main/java/com/keyflow/ui/terminal/TerminalScreen.kt | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.specs/project/licoes/2026-10-31-computador-d-correcao.md b/.specs/project/licoes/2026-10-31-computador-d-correcao.md index ea3bb9c6..2632f2c9 100644 --- a/.specs/project/licoes/2026-10-31-computador-d-correcao.md +++ b/.specs/project/licoes/2026-10-31-computador-d-correcao.md @@ -33,3 +33,7 @@ A decisão do Yan mantém JetBrains Mono Nerd Font Mono 3.5.1. A OFL da JetBrain O inventário de `src/glyphs/README.md` na tag 3.5.1 traz Pomicons como OFL 1.1 com RFN. Font Logos 1.3.0 possui Unlicense no upstream; a tabela do Nerd Fonts ainda o chama de “unlicensed”. O texto Unlicense e o copyright 2014–2026 de Lukas W presente na fonte foram preservados. README e arquivo de avisos apontam as fontes exatas; fontes sem data publicada não receberam datas inventadas. O asset permaneceu inalterado, SHA-256 `f2a5ea6cfab397445ffab00c0370927b66d61e560a05db5db271b42006381c1a`. A conferência verificou 16 atribuições (base, Nerd Fonts e 14 conjuntos) e os textos integrais; nenhum teste foi acrescentado para comparar texto de licença com ele mesmo. + +## Condição redundante e mouse + +`TerminalScreen` verifica só a ligação nula: uma ligação não nula já implica sessão ativa. O compilador apontava a segunda condição como sempre falsa. Mouse SGR na tela permanece pendente em CMP-25/T27. diff --git a/app/src/main/java/com/keyflow/ui/terminal/TerminalScreen.kt b/app/src/main/java/com/keyflow/ui/terminal/TerminalScreen.kt index d75ff4f8..c790a4b3 100644 --- a/app/src/main/java/com/keyflow/ui/terminal/TerminalScreen.kt +++ b/app/src/main/java/com/keyflow/ui/terminal/TerminalScreen.kt @@ -95,7 +95,7 @@ fun TerminalScreen( Text(it, color = palette.terracotta, fontSize = 12.sp, modifier = Modifier.fillMaxWidth().padding(horizontal = 12.dp, vertical = 4.dp).testTag(TERMINAL_AVISO_TAG)) } Box(Modifier.weight(1f).fillMaxWidth()) { - if (ligacao == null || ativa == null) { + if (ligacao == null) { Text(tr("Nenhuma sessão aberta. Toque em + para abrir uma."), color = palette.muted, fontSize = 14.sp, modifier = Modifier.padding(20.dp).testTag(TERMINAL_VAZIO_TAG)) } else { key(ativa.id) { From b15a2faa699003ee4b16eb6f25a6b73729657d72 Mon Sep 17 00:00:00 2001 From: Yan Lucas Date: Sat, 31 Oct 2026 20:10:16 +0000 Subject: [PATCH 10/12] =?UTF-8?q?fix(computador):=20tecla=20/=20com=20chav?= =?UTF-8?q?e=20de=20tradu=C3=A7=C3=A3o=20pr=C3=B3pria=20ap=C3=B3s=20o=20me?= =?UTF-8?q?rge=20com=20Fluxos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit "Barra" já é a barra da orbe em Fluxos; a tecla / passa a "Tecla barra". "Excluir" fica só no mapa de Fluxos. --- app/src/main/java/com/keyflow/i18n/en/Computador.kt | 3 +-- app/src/main/java/com/keyflow/i18n/es/Computador.kt | 3 +-- app/src/main/java/com/keyflow/ui/terminal/TeclasExtras.kt | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/keyflow/i18n/en/Computador.kt b/app/src/main/java/com/keyflow/i18n/en/Computador.kt index a31090bb..48028e24 100644 --- a/app/src/main/java/com/keyflow/i18n/en/Computador.kt +++ b/app/src/main/java/com/keyflow/i18n/en/Computador.kt @@ -24,7 +24,6 @@ internal val Computador: Map = mapOf( "Autenticando…" to "Authenticating…", "Autenticação" to "Authentication", "Autenticação cancelada." to "Authentication cancelled.", - "Barra" to "Slash", "Barra vertical" to "Vertical bar", "Cadastre um servidor na aba Computador." to "Add a server in the Computer tab.", "Caiu: %s" to "Dropped: %s", @@ -48,7 +47,6 @@ internal val Computador: Map = mapOf( "Esta chave pede a senha dela na hora; o agente não pode usá-la." to "This key asks for its passphrase on the spot; the agent cannot use it.", "Este servidor pede a autenticação na hora; o agente não tem como digitá-la. Guarde uma chave ou a senha." to "This server asks for authentication on the spot; the agent cannot type it. Save a key or the password.", "Este servidor só oferece algoritmos antigos que o KeyFlow não usa." to "This server only offers old algorithms that KeyFlow does not use.", - "Excluir" to "Delete", "Excluir %s?" to "Delete %s?", "Excluir host" to "Delete host", "Falha na comunicação com o servidor." to "Communication with the server failed.", @@ -115,6 +113,7 @@ internal val Computador: Map = mapOf( "Tecla Esc" to "Esc key", "Tecla F%d" to "F%d key", "Tecla Tab" to "Tab key", + "Tecla barra" to "Slash key", "Terminal %d" to "Terminal %d", "Testando a conexão…" to "Testing the connection…", "Testar conexão" to "Test connection", diff --git a/app/src/main/java/com/keyflow/i18n/es/Computador.kt b/app/src/main/java/com/keyflow/i18n/es/Computador.kt index b1e22603..0b094dd5 100644 --- a/app/src/main/java/com/keyflow/i18n/es/Computador.kt +++ b/app/src/main/java/com/keyflow/i18n/es/Computador.kt @@ -24,7 +24,6 @@ internal val Computador: Map = mapOf( "Autenticando…" to "Autenticando…", "Autenticação" to "Autenticación", "Autenticação cancelada." to "Autenticación cancelada.", - "Barra" to "Barra", "Barra vertical" to "Barra vertical", "Cadastre um servidor na aba Computador." to "Registra un servidor en la pestaña Computadora.", "Caiu: %s" to "Se cayó: %s", @@ -48,7 +47,6 @@ internal val Computador: Map = mapOf( "Esta chave pede a senha dela na hora; o agente não pode usá-la." to "Esta clave pide su contraseña en el momento; el agente no puede usarla.", "Este servidor pede a autenticação na hora; o agente não tem como digitá-la. Guarde uma chave ou a senha." to "Este servidor pide la autenticación en el momento; el agente no puede escribirla. Guarda una clave o la contraseña.", "Este servidor só oferece algoritmos antigos que o KeyFlow não usa." to "Este servidor solo ofrece algoritmos antiguos que KeyFlow no usa.", - "Excluir" to "Eliminar", "Excluir %s?" to "¿Eliminar %s?", "Excluir host" to "Eliminar host", "Falha na comunicação com o servidor." to "Falló la comunicación con el servidor.", @@ -115,6 +113,7 @@ internal val Computador: Map = mapOf( "Tecla Esc" to "Tecla Esc", "Tecla F%d" to "Tecla F%d", "Tecla Tab" to "Tecla Tab", + "Tecla barra" to "Tecla barra", "Terminal %d" to "Terminal %d", "Testando a conexão…" to "Probando la conexión…", "Testar conexão" to "Probar conexión", diff --git a/app/src/main/java/com/keyflow/ui/terminal/TeclasExtras.kt b/app/src/main/java/com/keyflow/ui/terminal/TeclasExtras.kt index 3a12d919..92f124bc 100644 --- a/app/src/main/java/com/keyflow/ui/terminal/TeclasExtras.kt +++ b/app/src/main/java/com/keyflow/ui/terminal/TeclasExtras.kt @@ -57,7 +57,7 @@ fun teclasExtras(): List = listOf( TeclaExtra("dir", "→", tr("Seta para a direita"), { it.teclaExtra(Tecla.Direita) }), TeclaExtra("pipe", "|", tr("Barra vertical"), { it.caractereExtra('|') }), TeclaExtra("til", "~", tr("Til"), { it.caractereExtra('~') }), - TeclaExtra("barra", "/", tr("Barra"), { it.caractereExtra('/') }), + TeclaExtra("barra", "/", tr("Tecla barra"), { it.caractereExtra('/') }), TeclaExtra("hifen", "-", tr("Hífen"), { it.caractereExtra('-') }), ) From 77074650e966afde38412c029053a0b5011ac1e4 Mon Sep 17 00:00:00 2001 From: Yan Lucas Date: Sat, 31 Oct 2026 20:10:16 +0000 Subject: [PATCH 11/12] fix(computador): filtro segue a libvterm, que ignora ESC % @ e volta as setas em RIS/DECSTR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit O app fixa UTF-8 (Terminal.cpp) e a libvterm não trata ESC % @: o filtro deixava 0x9c fechar OSC 52 e títulos depois dele. O oráculo deixa de simular a troca. ESC c e CSI ! p desligam o modo de aplicação das setas. --- .../computador/app/FiltroDeRespostas.kt | 6 +++++- .../com/keyflow/computador/app/ParserVt.kt | 4 ---- .../computador/app/DivergenciasDoParserTest.kt | 18 ++++++++++++++++++ .../test/resources/computador/parser/oraculo.c | 2 -- 4 files changed, 23 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/keyflow/computador/app/FiltroDeRespostas.kt b/app/src/main/java/com/keyflow/computador/app/FiltroDeRespostas.kt index cf8bfae2..7381d6f1 100644 --- a/app/src/main/java/com/keyflow/computador/app/FiltroDeRespostas.kt +++ b/app/src/main/java/com/keyflow/computador/app/FiltroDeRespostas.kt @@ -75,11 +75,15 @@ class FiltroDaSaidaDoServidor(private val aoTitulo: (String) -> Unit = {}) { private fun sequencia(tipo: ParserVt.Tipo, bruto: ByteArray, corpo: ByteArray) { val t = corpo.toString(Charsets.ISO_8859_1) when (tipo) { - ParserVt.Tipo.ESC -> if (t == " G") { consumidos++; return } + ParserVt.Tipo.ESC -> { + if (t == " G") { consumidos++; return } + if (t == "c") modoAplicacaoDasSetas = false // RIS: a libvterm volta as setas ao modo normal + } ParserVt.Tipo.CSI -> { val c = CsiVt.ler(t) ?: run { consumidos++; return } if (c.lider.isEmpty() && c.intermediarios.isEmpty() && c.final == 't' && c.argumentos.first() in setOf(20, 21)) { consumidos++; return } if (c.lider == "?" && c.intermediarios.isEmpty() && c.final in "hl" && 1 in c.argumentos) modoAplicacaoDasSetas = c.final == 'h' + if (c.lider.isEmpty() && c.intermediarios == "!" && c.final == 'p') modoAplicacaoDasSetas = false // DECSTR } ParserVt.Tipo.OSC -> { val osc = OscVt.ler(t) ?: run { consumidos++; return } diff --git a/app/src/main/java/com/keyflow/computador/app/ParserVt.kt b/app/src/main/java/com/keyflow/computador/app/ParserVt.kt index aa18edf8..374aeaf2 100644 --- a/app/src/main/java/com/keyflow/computador/app/ParserVt.kt +++ b/app/src/main/java/com/keyflow/computador/app/ParserVt.kt @@ -47,10 +47,6 @@ internal class ParserVt( private fun concluir() { if (excedeu) descarte() else { val conteudo = semControles.toByteArray() - if (tipo == Tipo.ESC) { - if (conteudo.contentEquals(byteArrayOf('%'.code.toByte(), '@'.code.toByte()))) utf8 = false - if (conteudo.contentEquals(byteArrayOf('%'.code.toByte(), 'G'.code.toByte()))) utf8 = true - } sequencia(tipo, bruto.toByteArray(), conteudo) } limpar() diff --git a/app/src/test/java/com/keyflow/computador/app/DivergenciasDoParserTest.kt b/app/src/test/java/com/keyflow/computador/app/DivergenciasDoParserTest.kt index 12922098..bb017f98 100644 --- a/app/src/test/java/com/keyflow/computador/app/DivergenciasDoParserTest.kt +++ b/app/src/test/java/com/keyflow/computador/app/DivergenciasDoParserTest.kt @@ -25,6 +25,24 @@ class DivergenciasDoParserTest { assertArrayEquals(utf8, FiltroDeRespostas().filtrar(utf8)) } + /** A libvterm do app fica sempre em UTF-8 (Terminal.cpp) e ignora `ESC % @`: 0x9c não fecha a string depois dele. */ + @Test fun escPercentArrobaNaoDesligaUtf8() { + assertArrayEquals(bytes("\u001b%@"), filtrar("\u001b%@\u001b]52;c\u009c;?\u0007")) + val titulos = mutableListOf() + FiltroDaSaidaDoServidor { titulos += it }.processar(bytes("\u001b%@\u001b]0;\u009cTITULO\u0007")) + assertTrue(titulos.toString(), titulos.any { "TITULO" in it }) + } + + @Test fun risEDecstrVoltamAsSetasAoModoNormal() { + for (reset in listOf("\u001bc", "\u001b[!p")) { + val f = FiltroDaSaidaDoServidor() + f.processar(bytes("\u001b[?1h")) + assertTrue(f.modoAplicacaoDasSetas) + f.processar(bytes(reset)) + assertFalse(reset, f.modoAplicacaoDasSetas) + } + } + @Test fun parametrosNumericosSaoNormalizados() { for (s in listOf("\u001b[021t", "\u001b[00020t", "\u001b]052;c;?\u0007", "\u001b]021;?\u0007")) { assertEquals(s.toList().toString(), 0, filtrar(s).size) diff --git a/app/src/test/resources/computador/parser/oraculo.c b/app/src/test/resources/computador/parser/oraculo.c index 836db2a8..9dad11e7 100644 --- a/app/src/test/resources/computador/parser/oraculo.c +++ b/app/src/test/resources/computador/parser/oraculo.c @@ -28,8 +28,6 @@ static int controle(unsigned char c, void *user) { static int escape(const char *s, size_t n, void *user) { Observacao *o = user; if (n == 2 && !memcmp(s, " G", 2)) o->proibidos |= 2; - if (n == 2 && !memcmp(s, "%@", 2)) vterm_set_utf8(o->vt, 0); - if (n == 2 && !memcmp(s, "%G", 2)) vterm_set_utf8(o->vt, 1); return 1; } static int csi(const char *lider, const long args[], int n, const char *inter, char final, void *user) { From 8f6a8e409d2e719d28242dcc8729c91d2dbc499a Mon Sep 17 00:00:00 2001 From: Yan Lucas Date: Sat, 31 Oct 2026 20:37:11 +0000 Subject: [PATCH 12/12] =?UTF-8?q?fix(computador):=20"Ligado"=20fica=20s?= =?UTF-8?q?=C3=B3=20no=20mapa=20de=20Fluxos=20ap=C3=B3s=20o=20merge?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/keyflow/i18n/en/Computador.kt | 1 - app/src/main/java/com/keyflow/i18n/es/Computador.kt | 1 - 2 files changed, 2 deletions(-) diff --git a/app/src/main/java/com/keyflow/i18n/en/Computador.kt b/app/src/main/java/com/keyflow/i18n/en/Computador.kt index 48028e24..88a3a01a 100644 --- a/app/src/main/java/com/keyflow/i18n/en/Computador.kt +++ b/app/src/main/java/com/keyflow/i18n/en/Computador.kt @@ -62,7 +62,6 @@ internal val Computador: Map = mapOf( "Já existe um servidor com esse nome." to "A server with that name already exists.", "Lembrar a senha" to "Remember the password", "Liberar este servidor para o agente?" to "Allow the agent to use this server?", - "Ligado" to "On", "Link bloqueado" to "Link blocked", "Mostrar ou esconder as teclas F1 a F12" to "Show or hide the F1 to F12 keys", "Mudar o endereço ou a porta pede uma nova confirmação da impressão digital na próxima conexão." to "Changing the address or port asks for a new fingerprint confirmation on the next connection.", diff --git a/app/src/main/java/com/keyflow/i18n/es/Computador.kt b/app/src/main/java/com/keyflow/i18n/es/Computador.kt index 0b094dd5..c279227e 100644 --- a/app/src/main/java/com/keyflow/i18n/es/Computador.kt +++ b/app/src/main/java/com/keyflow/i18n/es/Computador.kt @@ -62,7 +62,6 @@ internal val Computador: Map = mapOf( "Já existe um servidor com esse nome." to "Ya existe un servidor con ese nombre.", "Lembrar a senha" to "Recordar la contraseña", "Liberar este servidor para o agente?" to "¿Permitir que el agente use este servidor?", - "Ligado" to "Encendido", "Link bloqueado" to "Enlace bloqueado", "Mostrar ou esconder as teclas F1 a F12" to "Mostrar u ocultar las teclas F1 a F12", "Mudar o endereço ou a porta pede uma nova confirmação da impressão digital na próxima conexão." to "Cambiar la dirección o el puerto pide una nueva confirmación de la huella en la próxima conexión.",

  • !1$t0-)y~XW5Byaa_<>=IbsOQ_9stc5;vRsJP+~EX7wbw^nY& zs^*V4>M-EbJ@GU=4cCqMvD4yjtq=|95jTnZPxKZsjS1facogJ?@_VP1Z!peMm6=vC)kLCPZ6^#X6sLo!1sDpA2sPNZt#(nd|5_y54Xv&Tzd@Zq98? z1+a|0kt42qTl?MaDKFny-yuQT!xBZjO8n`W$ZqAQhGROAD2^8b)T*~3+{ksk+R$|@ zd%zosZINstleh9k%dxe6setR!mc6!v9)1XH-8Ad*ChCavX=@efIya`vjpNgrOe(S; zUU9E=OdBjQ@pGdLDF6R-+e2iQF2Zr$f?R+Ea^dOX=O7z+6hS6s*DCO()6e{j!eoeI z6eUSTHtVvtt60MHl=kgx#5*2?cNel?V(`bWzn5SE#iDbO{QhD-Pte37fHHG0xmR4!u09wI5#pbbtUV1ovQ$2$T`x7RAd)+%49+>nJTMc2W52JGwg z$d25~b0J97xn|(+#=hg%v7Rsbjm*_IfNq^t`@)I7Tj_f>tpwiKjiz)b9^*isu<}vU zwbF+QMLbMQMuPsVRe&adP|{G=D_$m-()} zJQ?)qc_%slhZ~a4pl$?{Nlx@Tb1Oo8Gyt7a}5)b$^Rla7-NzukS()+gghqaQZxnOxMG(k89w zzy)@g@@~9uE8nUn&f z$=}oURl}Mc8YXgiAm}*3sUW=Af#&j|+K2bi*S8`Uw)Gug&$+QrqU`Sztwo7IH$A-F zOkbc_z<+-KBQOcVp3|}ER<+mfY7|61Q24$#JZIItepM;dZcI=b;72q&8FpT*S1I&P z7{eWjw0+JG)v%Hg^;%G9c@suxYu2bk*?sN@Z^Q91l%~gujr% zKg-$`_6D`BEBb45IvddXgTcs5-tjXqW@K>1z<6PUSe4Ag<4Jp|&(ndS}Fi>n+!)QsA=rc@ElAJ zPs36$MEucpW~oefG-Z{^rjJnw!1jcq;nObyoYo$?&8K@kX4Loy&mT6UVcmOs=h}e% zp!U0FINhTK<>V=ft7fm?@HK4kXEJF zx-WE#u(2?);v|eDgD;$|?$+R2xdWvY!a_1ES+yTZrHF${WE0Nu9A!6NZF4a69Gd}^ z0Bk3domvYs`r4)KVSahjX?z+vXvl;0=K=eaH&9_0icq2W*(0B4AXY!N?UY?F5@coucqNZ(ZJdo)lpW1$aQ|{=4AbzDKd49O%2Q z?{1`4W112j3X@G?4faX?Uk(ww{UMu%+B23T$?cZvtb{2=z}&ELnwmx;w19tsSLs#h6$(BJ!M2_m(DPU1;e=1e$FhUP5yHrse8~t}fs58pmI`_a zigJlFZ@IW+7^NMHLs`x2d^2)IKC>S$z(eh7HXhGb-UMw@EKBLCx&8uprp)~2^_fCC zHI!M;CR-|6sd!*$C=gG>Dnbx&P%)awZ_RQ1YB7zP$f3$H@;+|tEGlz*^THw)Rjn#L)`x5P0oEP)g zZKxkCB(wYX_ooU6JO6D=#Jv6&m%RIub=QvtjV~6e)xsAo|Ja*m_r3=bIoGGQo;LqB zK8*!5LXcGwFP982rOOEYZ8u;eNgo~n4w8XH@Ls3W(Eg;ySk{w-*-6~OR>x{P*0q1Mteswu?%U}#3A}qep4CrDh~lZ$MzAwB_H;BEwSqb^?mx>7JRJ%> z9fCm$PL!vksZ{h5J!<^gT}IS2t&_n>@T6s;6YbGe&IdY;;irbfYAT`CN%+uik47&x z^6{TUEua2U*n4p>c(FI!`El5{Ls%}Y(8b1JLi5K5&0R2@wcB1Q9eAft3f1w+X>Vi& zJ|qZB+8n%+*Y({&&n#JA%@hDsh7sLYAv=`Ag%_+yxougsd@enetYSX9NRPN1aBy`F z;0iz+L{Ef&M4%(mx%50bqUa*fo^*T7l@oGCG!udqv<`8?m#-YrD=-63mti%fP0Tkn-iOBa`oON%3JRV(7 zrMA3hi=kBjJ_2EshXy(|OpcpwfcE(YXB;JMJm9qulKj;QA}1-4l7F&Rv5Vt1Fo4gX z02(#BTxMy5{6lsI8u_NJ7c!N4AWHG5ndF3Q>Y<3=%;RgRC&+ z!>4TasVs%HIydJMcHnTpeoida=M+0-&dEv$_S>odp2%r8JbECNOB4fTD?!m?dwgwv zZZuNF==8>RBoYa2y)XLSfW0P>fd??;PwAmVC=;ffM?O!cQU)^e=Z4#>Rl!Z|eFqYW z_{C9Q+?OhaN9GC_j)!95M#35n6cYn+S&Jf{-pN|rN^D|{_)7&dflseHH_p#i_X*5f zqV2*_N|@9kezWt48d`bd4dcV~2ki3+wu$v4FzZqIOz7XXfi2Gle zAH#<~)_J?`_dAAmw;2S)(rwQ>XwNpcJ#A(Gg5~J$E6X{`T|;?NllF*f3;yp zeHR+W6-G>ZGo?n`{`0Dic20Cljvk}nXnA6|aDJ)My|jmJLU%mVH$=?glUPr$V;#W- zD|;P|q>?Ne<)#oogDeu|q)=SaDxnk(Tl|6O8K#s};i*dOWI_eS)HlKUsaJ~E8L6bt z=s(i+hDpr|GiptQ!#_$SJc)MtX%imArxO&vN?aK4{FGNDW}2nL#YD`PYbHEHT44d7 zqZv2RLULJ>gak$8FZ~0DqN88&itF0W+mKoo*{RBqgWaxUzmA`leVj zdRZy+nanT>mG(rYRLU3!qo=?188h^C+y45qr2c&~WIpqZ8T#6W&z~?I^NsYx8_lqB z!l(Tp!_Q*}%}fa-z@j?CXELQj(O(H#&pzu9bf%vDdhqj~@dv*in%c18rZ<`9n|u!c zd~Y%#ELx6{_2b=zN>fQpCbnxKR42NWxDqpBVXScY2?Cz%5XCK{jr)T+yh$E&o>*-j}8XQM)0)qRDXh<_}G>H|KPFP(2ULr3#}Z^V|g zOA+l|jiI}r{r@@`IRhr-MiUZaqtTE%ZZ@Rj8~+!2{HyB3T;!Y!iX2(?Nr*0RL~>-7 ziyypdM12XweU>F&W%4Rhd{UL4RIUj@Cik@S_T;iXZdQ6`INoe=WaD+N?|cX8rMpK( zt6l4jP?Gzr%4bbw4zJR{9qM^>@!F`?*+L+(cIs?J+;w%=nfVI3t({u-E06@vsp;ey z!?@gtX!EXTB2TuIovPJvL=+QH0RqrQgSJ@?#hgXiSW(wwhE1|-(?RL(x-|-sKy7EP zR;l;ou;AcM5}SX$@@nHyQ0lSLkVVnPs#AZ;6(iP;ZUEI*eM9v^9|u1NZ0*{!ZeB0j z@lwDsX}L&5IPv1ydC%Xy`XL&VfQ*FRpqok z-IED~fi;7JMd0 zjfGe&%~Tu%dW}lb5SzwD%8Pa;z8bbm1L<)KL0Yhz%0{JvDA;PZNY zg-D7ThaGA_4tf^>p4J z!plf$MzfHpQ>4)cF?qn}c)1YOAVdCqx=vZ<&WD3O0PDKXOLYw>Q*_HTb-$U2uHvM= zRZiOUQ#aD|XgJ#M%D zH6a7_CB5MHQ?P-XkqC}%`vST@tnRUFQe@cHsa5Io27PJz!Zfw3i?1uaE$#O=uju?J zlDdAtjBNLN%}e|J!_4yc7t`9_LLpzgqL{p3r1Rq(#soDl4GPGSQJ#~^4_PNF)iJr2 zdNY)jH}!3Lz~@E8Ft9!^CG2!R6(;FZrUN)ZZ&=W$v1F$bKv@P zc!%GgzARmQKQn*WpVfBLzT1m$C?-cQnCCh%_o_5Ru4;NcWK6)P!ZrIzY^T5`cjxLg zyTG#CPNkJ`q7Luv`ylJWRXLW3xrEsU-ODTyJ(D4GBl^S{L|06gs-}8q&g{-fm4!E4QdD45CEmIiyvTPS%f#8dXRtaV1nY;=A&N_DL|=NZRX`@HEIG0FKC;qP^C^5JZhlY{fVzG?9I*C7k{oZG3cS3}qB^F%S0e3%4nB_;HLsl8 z#%w^(?--?2t`r+K>{cGHwqZ%iPfB^UX?NGFT`Z!lu!Y2Ec0J#SZ0ve{mi<2*Dc{5{ z*3s=`-*1w=mhu1zK$AFLRAgLqcEpny6$lz!GgauPMMuP$HjCrLUqZcXvRQ zc?xTjN!hd4yq&6zQp*Q|KYOFJweCh4#)q%{jin7`08#jj#fwtKV(OG`q^X@A?6>{@ zRVMKc%NPwgPixDPYd%l@J|xY--1 zCvs2UM`Z3Qw?=xJA#?rQvYX0W6}6Ae0nbl&`<+f_nz{qY>> zdI)Xw7V7(Y6E+wCuQv}005t|HMdzPeHdr*Aj+Y+o{FDXny~`U*#k_aDpEA5sWIJH+ zrtR2|pQS0Ka`ygwMC+*QiN155)4CPONlMo z^GlCli@r%_BC-*po+PK;{g4+}R4bj+6PB|}w$fdM!}b`!@^=Oovc+hIdK1rB!J~v;y-qaj^*t-G zx7ES$Vs>aYTP*c|x|I2QD;V(47W>z&bWYEPtlgv~aZcOZ6O7us!S;@o`ad5IlF?1Z zlK*HlNd6H~INRU(9&z1hDH|`RwQQyw&lYbETAgoO!LMbDHR&tagKOv!9|d(Hxny&~ zbK<6u0SIsp@E|D&jz~%AMWKHIz=KZbY7XcW5OyF~Tk^olM46^<$Rq}2B{5c+Q(%FZ zFw*IQU277N%d-!obud?2yEBChf2T^5#o}bCN=F5wA?})Nc_WHg5A7^g^AIDwa`Rg}3 zJ2N{w`#k%g)oQg`t#;RISzfJHyRxDvilWGhVjSZ*j^Y?&f-f}?LP(735?=^u8bZn| z1Zq-_QZ5Hv2$bUjp=rzYMJaGxuI$6)GR&ES-s!wc6k?8h^ z1uOe7p$2Jl(;9qVBe+9ijC*lN(ts$vd@ffn6zaL)`@Vv#Z2h}0*cQw|$sP9=^oSkU z4v|qYM9+@vvM3CM3wau;gr$u^&=mW^+Wdui5p3w zDha!nAO2L35sH8MJNBMzH)ZRK(#$U|pv3>-FJ$8njc z_sc}g;H(-E`TE84_!)kcSy7OCXP~0p%Mcdn1cx8;pfc*mcKPZ*=geC1Z$~rdGP8AK zWH5d%IXh~c%hk;I;5U=A_2TE)Km2#{Gl(~_WgE>+Y3#-p|3`6r5FV@37&Z2dQX@1t+`{HKyqkS+Nr{5X^>CQ~m< z$+|owyg?bp5%p!pQl{ zXV!7WoTPJ3XjWs(gjUDmZkMD~$W$2m(+=6N9*w)Rc&+=0&$t<;BTgnh_#qQa?~G@i zT!NH$c%{ox>8*q0JoOa5>&fV4?PiYX@La4iZ0TcuVcR{)D5qM5aSjUSn(fQn)QFq9 zr2YKQCY z5T{#h9=Dzciu1fqM-qsflP_6h%i!^jM@AL4 zsV~?NH!a3#86=K6D$K@j8Z!cXEE>xL!6+6Eddhka?89TVnQx^ z&NLP!U6{HfZnXXM;E`OXQt41~P<^pk8hpRh^8HrnC^DkoVZr8iojpbd^DPA4JQ9x=liTv{(=!@iyU=EY# z7o7-Ka9~LBToHaE_zFN-P^C#6ge2r-TEf~yf6~lK;53Qu>4rED8YLOpCFSu~Q=NEh z+Nc~SdM#}qZ_Q3D7R{7OSHcsox_TmFM9p`BUM8^h9-qE@isGp6O3fs^X(eYo>Y^wA z2EgHDcWPCs$5JVG=IZW_Q@?j5T3ibxYMXROp-$39Bb<JZf_*5bS50mow)4aW#ww~hUyOWgiNJ3wW{TX>z7_RYFU)#N$=~d z+%(-9JSj0F>Zh&cTFF7F^O{peE4NVXOvQVrApy-^bv`$3Og90COdQ)+npgt}XbJpG z0(o^p?i9? z0pxG%zO}`1QY#Uc-ZzsCqnO-w7)Bz>gN7Bga=});*2}4>IjJ{sZI$qK0-^^WkGj4X zl(jApEOFyglclX?(s*v~H!}O?4s$kN`@SJbv4i5Ae>*@!Aj?-!GlOTO0Fl(uz)w3K zQS75jj0VppaacF=d~cG>*a8m)_s5tQ{!E;h9f}L?8BByA);oBht@%R61%VhCbuyV` zYN_`f70vmm>zj9&=AAh4qu^WhT)OJs>AH8gb^oRNeVqK+Ur1NB_TTKLJU8;kj_-U4 zH}S~eP`;Q>eIdOg^T#RQO@ZBC*rh(cz3Y$CS^cj1Jj*#G)H*dmHh4U$%>%CGBtAKy zbvTeS;6>C5Mwv!+`%-~blMC&i0+>$9$^cLicwKskxTp=WIizhUlRKh3Y67AafK1^3K)@eKgr~$ z4sO+AdHLH9?mcz&RuztJIQ(^qGX9304jbn#R%tl@wTmSr)L9&O{!(W2H>ldJ$NY=m zW1M^&pE6z92vKJ)r5y<5QZkOEUxbSa^F#QIAN#B_O7R!3E zbm*1;;+1OZan~PqpLO{+?7NQ-zPA7Vm!)*BNb&Vaa;?uHd+p(EiSPP-+yXpCryfEA zLxeEI?s!-zs=2iVSY*nGA^zvMd?5xB% zQ#AC(ZuiEH9mauki6HsK2s*vJv}Bu3DzZr6{1SfsVZx}NaByuc)@!9?+;V)XbT3a8 z{4b_+X2JJA?=IAZQa9(_!Oxtv-Z8cOEi4|zzCDl;0)}~+OKLWL=UPMuRnj|W|jV495|F>7Y-UJ$&?r16ZJu+!} zVN&E|Qv~GU)!R5KUvmxhJKY;~aaX$hinx17QW8XBapy3-d?R=E#CES<+SA`$nJ+i# z*#$?Lx@VWCSpIy@@C#-RXBD*?^zGmz`DN#8_1n9LgRuMVk)9hrBy6j` z()!#^hkP}yN^5@a$#r9))tX;Fxp%JR)JER3Yt7l!KmVV0T|Pa1`L6f!pCy&5>6K`1EdRW7^{(FfdT)Bw8T^H_Hr3g;(QU0cg-U;yv$pF!m7P16Tdngy zlY&vLma6SsX2Z^a7j5B=Qa6aK|3UBoriLxUzZTOdtf95ZfUq0aKQ&Ui;x>W{u6*6{ zj{TJN&VFx_ zj!JCB#MjNNkqzD)RCZNQqKljn8K=5SJ-54hDJc639>Z&$UpAf4GSxVCS)_~K zJEN9o_SW0gYFo>hfnRxryQkC9Pz`$yv67)8f#MRit4&h80b}UboMgiJeZn(-*CIwW z{NP`1KClr&xxe@I>X#m%NT^|w!NK%C?NF-r!NuFx$bubr58q*E+35F;n?eQTb;cuz zyQyQVn8#fX^^S5!LD2;49HTZ0F#8GZkrAMM)O^@WhVvlB{ z&3HOBnob`l2^ij<+2~h{Yf1MXJO8_1iDpZJhYGH+jlU05n*i;T87ioVLC{Gs9Y_s8 zBnDh!8&eQ=vQtf6T77Eh5-A5VrSsW%&TZ=Cc0oCcd#SrF$~o^5tnYVF7Sd5I{|5GP zsgSye6=0|@0^c|~F!NF%9FcoPfszbO`Pq6SB>U?ZVF3HmI~B!QOJBOn^wbfZMQqJ7 zzO)GW>xBvRNY)Q!a@FGCnqoDVS!mu64W9!k29Nwb!SeUd9BQ|(f3-NSx2}`mm+KO0 zbZ2b1f?dEms8Q+R(njy!)$-3eR&>M~&(w>Plf`HzymLA^(Vt&@>`Wh zBI2AhJX@f)X2cySf2-V%;6B{1g~PFoxdUru(y;Xiu#Hs0wL`|56mlE<3JE=@D`67P z*XAQh1YOZxgFcWv?wX{Fdy?laFku-YuHJY$?|jx zkzad2MX$PQr1@*ykIa*xPQ)1RMdbernwVUA8%ouF?fRa``#jqxp_JruF4Ss;Gt{9W zq25XPUOdB=KRa{g(}Rk7&Nxj8=&u!Oi|Im|e~Yz(nkv)=mBmE`+>FjN^eB9IfqXT@ zwM>d_T!_779T&d|DcCT1>Gg$4Fz!Y4#(m+dgQx3DwY9F(*+&Uur@K~L8oXQl6BJ2t zNJQeLEAz|qm9+P0ZK>YfXOU99x!SV!^=eDCuTDt@l&Q2=nXmBAlQ2L{4}*6@69Xf81I`O3mCk$z~jGUU3Ta;)jnfW-9Hp%0nH{p?uWlH7i2s;X^o8?OIA z$m$R3!+Ot+H{#)UqYgl5$7~gfctnJF9DHHxQqS-$@^vR*m!X3n`e_I+62}O$~0^W)2(t}4!5Yx1p4Hmj}oc*EOWh0=}2#NEh^m2-E{G(rRZ+)k6hC0C+Sm(&6C zT?z_3j2CXwI#ikVU^(pMi}0`Q#rJYcawFV9x*~P9D#0=?LP_#vOL)M=Uu6IDTlCi< zgT$4>gLoOz?cH8R3#yhq14G%8JmDxaBJXSMKntll9hsQ$8@y%w4@HgFSqg|IB$jYC z8%Pvt7s?FkMtnyf%n)Z(z`a-`n=~V;ylV_4vA^S>6eRuN+MB47Wlq-Afwv!A{pHos z$k?sv#nm;bPWs(IUr|%@%}ODOPYi`+dCINjR=KS6=rrf=rPk;}2b#@v{OrnO4;`3V zJ@ddq^0igBYOI}p=*;RRIRj%@SeiWdWkkr`IP@0A{9FK~Q^A0AEv!k%s(8cj{8U1f zG0pI&JE*zW&r{|A5ME$j8L2v|7jm6tw!?uT&OE>5QUW0o1X80VL3BId2@D(HQlln$ zdRJf^2Jm;RJ9FjkigDU?PkHCsmUU;LTpv8$u~s^@@+tS^+S*!C7TEAv*;R2l$m^`i z36FB_sop`ivsf&c&DCZhm+O^&Ze4w5-Z59a)#>;e{=P{~A z^XuDmG2kU{W`tc4nwucC)i)rV8ZIybr)5LfvZt@4~;BtoX zTEn=nNR)4Z@R*~wl-k|H#3v*d-fUrua7(4vRwP9q}}d$D2m!);Kjktdm8& z@7wcj<7x6n5B z{!Xf!7^Nu14RNq}!{B)q%|2foK{o0P7iUKLh;Er9@!RLZwzw*;;RzurkcHByTF1w_4w*V`NNe$C5VFDBb zLD`T{_8LN~=!XFD2gN~j@Y5$>*xVcp4lOJkS}5hxX|?asvrlero_+L%g(ls1sD%9M zzW82ae`p??_W}Iw$sGvrwDlp@Mn1tBCbJ74d~`^{gOLo4RHS|G0)3!iTcRUKPMJOl z-Qdyq@Q9h5y^<_RmWdMOpsoB#TafOBX2mN=K4N+klR1|JT-2ZEaF65f6HAtCHOnQo z;g`vIMEEd+47eT678Xln$|}T9Cu=U%q}V!mBpxptrFi^wIZg_vq#7bKlk2AU&mSou zt=Fg`ezdk;C`?V2OZ%lHM|wS->vr0$sn)4O2S0qeb+}OIbaOt0P4t(;#tGxi)RdEG zbY^23wN+jS9SE-=RG9ZCIvo8doy$_Fr&rOhOcrQNo*RAT#iy|GjKV{2V%+KxgNB5Jn@4H;`6ZNj z$wW}^Q?5(K7LUu=!aqS`$9Ed+U~_*~YMtR(ymbV#ssHxf?FWxP7$xbD<2`ukZ_<0P z%`TN{Craav0?!G%!P*E>+@D0~&U?Hj&?)~(=%J`MlcKi4$)s*NH{oS{n zTvDy>ZXds@v;(iRLh|Z658aTMk8uWd4LncHCvLdmjaLV|j@)}M6<{vWS3_9vqP+DX zVu8mM|HE6qsxo*^&CB=TnTyNDIkvKGc<|S1Z1C4KrS+>@Y4XU}eKKKa5=Rl+Zo{K3=BF%{BF=gkdujn7>32mhVy z4Hw6Z)Gi&$pdrAbc)Bh2G^9yrpON2fyk6b2Yq?U{HMnor^0Ep|Q`I1!OeRC4%e&6M zao2cddD?jAuI2MLRC4(W*?OmW7cXfapOjx{A6J^Z9-Z3g_>wD7K110~^!8{n8U6Wd zj8Q$ragsSSQjHI6jr%0pQ&oFniQ)F*gY+(3f~ibe+0^**u1g-~KW<;RrCof{KJh295fNKnSd+2DAd`_PKw9iPW z8|rpHT`HyhL5W}WwNjm*!BnaK`%KJgRlYiK6eK3sDHNgF__(u{eEf{#8$Al>V299iVq>=*y{(6v0 zXF)IDk+(t$2+gF0gw@GXL%-nD)6c2b4%h1WPjoL|>Na7i2sBBBAX3ADqs<1ugCX}My`|Ft%b{J`n!6@Sq zi?i_sykbt_@+EmP=mzv8k-Lx_Sw{$CI1K`8tbTpIR9x&Xk_ZyfrGh;+U0*WF^NYn|)}FCV+f_#0FdiW& zwrqypX&CP`!pOl!6R(eqD%$qoJLI-VPR3CV#}e;MB;FaX44yA1-l;Ope6EWqR*ZVo zaag;UA;`Y5@uhJ_DMnQwM7J5JrWiMc#} zeB{xX?d#v*JJ_P8DiukE{lMdo-@j6=Jn_Kl%6GrSLbakcS5}^>RGz6kaN@)RPgEb^ z=fsJjA#p7H5!ZU2Yx&@;2Zrt)x_{`gp(lo(9Qp(1JD1VvZV{-n6EgvLo@e7sfUnHW z%*q@QiKM}e2`S*kfVGJTDTz7p=*Z`UY)fr=$i-yU2GP%H36>Jl`W=hP%=_(Y4lgfw zj`=1&Ird!L=30|8*t-!B8Z&cDJ)MaS`86-6=NefIBXjj?p8vGmk@9*3G|tW5QYaRY z@f;F8=GsMA!t^p*sz$X~cy|%k`dSf@t^?YNs~^xuvDTq>=>usf3$Z?~ZxM-+OqVR* zAP*YNKz1P zst_=U_aW?xH$7DZFGCe4Xta(_?l^ueM=TJ+Oxl;c0i{y0%+_YPXo;*t3+ij_Ti*A+ zTiS~!-tmqTi-V)M^&yP$O_7FQT*e6Co%zMhmma=-NV+3H+{i+k!TytXZ->WfsuoT~SymV2;*j(^F z^U|%C9DB(Dg$oT_Tncu7g3~WzmLu+Vm|k2FPmbnrjJb{l@Omjxr04*6&ifw+DVo7T~rS@vAlYj`i+TeH+C*GCnuYO@4#Wk#@<;=)F_i= zp9I5>$EoHRi`L47xo9lt47_-AD30%jcn$^gP^1!>)pnyR)VeRZ^@K;`(~=V)5*>qt zdra=UugNwOupu+IPZYRFK?EynD&L0!W0;59>jjAeoe*syp|DPY=r^Q88tUBW=oo^6 zk*X$>5%({YkDnN65**SSs8D6C-D+LV1Pe`L(M;z_!fe`q9(CR5SU8@50!CSYZXS(z zN|j%e8%Lc{e$=fDM;Tj#KLzHs3YByer{dq)Q5mzR55iQ*gLj;Wf%I@8{*_s*jVf#< zrZ0Dz`hxbkRMU_cLLYthcvNE&7O8Ih62#Njy%1@^m?BB~qJwsuf51ZdZ z*AMivG5Yj(hblpT(oLEW^7>kxVLS zXS=gnr?`hcd^u0FhbYEZ@KnUh*x>3D_HM(P!@rGy?gm*MsdJeF^&K;M1S{%v5j+hK z&*+^M@mUMq@`N&u<~JTetc!{_-*_4cYC+(+t=%T0r-!~i^g|U>$bK0sfZljkdSGHko>rJ_KDU5?)e$?4 zKm__A7DXcC)1RfZr<@UdX+*DPpdhm8IUW1mrJ-|wo5Q9Fh>vh4&$9ghAE<>VSuH2(>Ia}MW#MJf^ip7kFa?ehb@3WE(mBseqkP2O+OtNPR741$j6)p@>Q!n*MeRc@qRMV5?RLEti$h=`R)PEFNJ$S@Qx zoCq=E4LE*GyoLz4iulEl5d$DiB&~=UPI-8%M93Wjtulx#w_FucgQr!Bz${CJxO+3? z#vqtbSy>E$AmYh^h2aNYBvOdSluAe3h@(oy5Q~<53zQ%BCe4MYq)LRmp(vkfDgx-p zG9-U0?14bqg3O}Uhu>--aoDyQ;T+mkL^}R^o-f2*%Nt-Dw?b9ZSvy1< z(x9Vwm&_;0;dq*uz?(r}B~zY|WoChr(aT5`CuS5*nGG=T1a!sj=kknDvFo9y3R5>` zZI|!`WuN~`NOx-C&kHkGQA41-Kw{bm+a@>tr zgO_mz=iPbNZ{ib|H*G6+BpSmcJ2Cdw)p%suwZe5OF<*~#&+Sqh=*6KRU->Y8s;eM6 z+(W{U+(h*WZV>H9W(05pIH=6Se5!$jqK%MYc_uvr4Kh{AOcxrNwT$b-3|{*$e>-O8 zQmOdKdh?nqa?$9IG9(aIxAYGzwU-8u=3#VE@yd<7<3ucE5Nn%?w-5f%CT&z`-~4InF^Ies2h%~^1N5|AB-I46_WqYRHXhkVxVl%KqojrK_@T1FJQ;XF!hJv^c&>1vEGp-h<|PxMdns*pw~ zHTcYomoM1wB5S5PTlBJ(B+s5^V6$4f$PlBzQM=Uas{z_kh>|T(u4cLhWZ1Bdu;H{0E?S3 zUTyrAMysxYONcZe9u-+sY`Jw1VQtJo5ufcC0i2oFdJUb3M2j$>8D$=MR*QamEQx{I zuFGK}I{<+iFUw}V^5{3-xqi*sUO!uYXRSwl?oWb<15Sc<{y}YIWM%>5hcjFl|KdC2 z@u|J*Wk1^*{V)JJS+F=xed^HVleKieo8_ZsTt}Sa&8*Ap9! zU{sJ3Er~Hj^`J(>wXmqlgq2aQsm(Tf<{a5ROPLfFw$XL<4`%cOWPysC;pkBkwnmRf z%tiPDs=v8UZsWoC2 zkAfzMZ(1;`scEL)6(mID0Gvg%swB@vkO~A!>j$&EKZG^roz}OvF@b(PXHRe_u#mjb zEott8nl5kGS08_IXsz2hv99E&)BO?ElNgj%y$uS(`+3a8R9?XG`40F$ntIxq$`${V*-2^=r>4qn{b>8LEM%8n2Jn_r1i z^Y0aQ2wgdEdzM=$x(@tjxX_s%9wD*%+x#pg7zv}aF^FTu^x_Y*SS0(JQ^3 zC3WO7Z}30wm>O%rvQw$CR&Vg*!Ux|otzLHZFJBoW~qQFSI(RnE@b{Wh{e#*D|t6> zWb_1f#SH!hBScb*2kK6^*DP4ZWuO_A z_z^ouVnhB*(gOAMjT0vaA6uN>IMZTCd-e2snKES5T-_iSXT4ZDST`yQO)`1RyVDD$ zrS#*+svC>*_0{shwb$m3Y@ShrrS5`LpT^s^R@pyYXdfw5ipzDs-bzjZdUU+9w;cD= zJ^wG9L-FJL((3@{_j=zcFO^n{r{aHA->e3FZk`$w?*RqR5wR-q{-HU$pKWLwDHI}~ z)$XrQRIMj$sSEP68^VG_#{h(;%!yn?IK2g`E^$*@r&qOjr-b9%C7?$utNG9US8h5d} z0Gj!Ozx(Le3%~hc`|3okwsW>och}t02lk&n|M^T<#gYFb2!uu`<{7z~n*ndT(wnT$ z^bUkq!)FdI_hQA2?@Ccc!wH+oXbS8wlm?GR&<@7iTNn#3M~a|LB%5igM{p9?@$!0Tt%BxhGtyZgPsP|G2p;%m=nwkQR zS*+Iff78ON;kE1Q8@+CaJR+s!Ey4AxT>m3j8zn{!LazH5M8eR*lYk)L5e%l3P;WkS zs+M%WpDW@o>(Ae^SgkCzJM(qRDdv8VT$-MewExEAp%amMVaL=|zjyq|SRzrL-gW%8 zT~j*>^~i|>gGRaC?)PS95YvMBCNZ)JX28&--OyZwD`I1XI!Wx2h>#$<#%A-2OZ$(m ztlamR`&vJJ$B9no9o^2YtuJ*}R*oIJ|Ndhei_Kft*E`*AXMG(#;ip4W$b^qGv#uoW zKpU;-Tw*?bp9>0JZD0h%4wa$`5|ye?YJQIsc{U6I#bKlEME<>F{}U&2J83N=H%6Sx9Ov6_aw2U1M#OoQ6FKYH zPGo~>QeDS+ZcoJdPZ8unlV`h?@%P%H7_@H*sbgr!w;CdGz-WLXdkg|yXI_Mh-D)o1 z%Zu*_d$z0&`gLxBB7zhRVWkqcYa@-N88c0xS}7iznqGRhS*3tog(|)Gm7B-eK$@O! zV=wZoS`iN7b_+0fr_jN-ZF=$0;^HCo_p5EdTiu9t&(!p5r|?ZG)+-Npee=Pksp;v# zo7W1!PHqt+RF2%&mN8vaj-0xv_0(7JTzBz2-xE5{v^KJBDi|~LcuNA+Lf#B0oE9o2 zS*QL;9^36@Jyd4}D4VbvY@86*-S0sOszMFssxx|6BX5ctIfw9xg@djLXlT%&bkA(r zUDOnKqSPa00=F_5k((P3`XqmtAIY_ z2RK4@z@UT0e7;`JmNB7G+Qys&)CpSv5C&glbpBsZ(6K8X3*b-7E zxCo#WZ#?)jJ$%lp_@8Pw224wC0pD1V4^z-1`2%s%XG+aKaeFZFb_3P&J)$9GC!TY< zF$?drHdZMCO>nsr2uPp3wbzF4%t$vvfd+WA#EXN zp}EtvxW|EJ;dSSLX<3%`MUvbtA0Hwau*zo>R&O@nPlTZH#K0jxH1b3z<{SClimyHr z24-924P)J`bk@iNPyXoQp;PN6*){pe|7S!@4iU7| zS-zj^NWhF{UJO}n{?QUbz}~c~(${J>G#^D<8?{9_o6Dn1bA}khvn=4D_m6F1GdoeW zQSJ2EsC<2WroNQc;U}`PSIpPq^4Fi3nVrGx)TgsCXwTUbjqHrExw3kUBx=cHE355R zv2gzD?WxWK$Li(W@s*W%eAj>qDc^)fg91bb3J1X3GH*x8qu3FNDg=wfJY56o1BBzR z=UlQ()=9@8myuI-7Az8q8R=pXu#*inXP)83;Mn?82S8KIYOUQOk#){&R^rp8sb#ZP zJ~|LGXtH^dorRhtY2DxY0t%4ogU(87(VRs#HCY~%8I1A45r zDb!>w{nUkB`1x9QYk}=sddI)WC6eHN6?f0lRBm6GwAiRZ*0sjiRBlH!%D!C1eRT!j zw zqY}==vj%=-cooX~5qB~1@|1D_I!1yCil3h#Sg<7?iubtX3x>6nTF+Y^VJwj1lrXR# zYEQ3~xD_r|iYT)y+T}~HCzG)lTcm$4%8N;Ihy4P2)R%lpT#6pFF={gVxTj!d3VWj5 zZM^6YOutz4RdU}k$Lf+|pM|s-4f~`*V;_yWJq~%izm{Z=HVn=?70wpFVZk z$PFI<#3xi`@dLNs`e*ysOY6%U;!}=Hw`qI{Dab`D%%Q1^kD;u~ z>%EU{{S7`}OR7IfSL&>v|BjQ!$0hl6Irk~oc;K-Q8jraEFuS5r|Mi7FBsLEe8fbo_3*TUbi0tJf z5Op;!56&kxDyNgz609LE-+LeY34Byx}XSFGUdBeor}d>|PZ#t8NbEL0}K&D~xk zRva#8V(*f=fE)x5h(uiAJ(E*JR^k)`8xDDik*hkb>UfNt!&E3pCI2)PGHWB5Z+N}JK8gNwOF+1y@#}6Mx+KOciWb`$ zdSvLghdw&=yF;JjTC^-21a&e`eL{^rUQW_Lp|D}i_q&Y_P6WIsBCYvYP`c| zK~5y`LOjE?kV7vdyxbyf=ga1g-2g>UT_3+>a5V|v{gqOG!pq|SCdBqDjmxxrz-{4z@ zRgfIf-U;F57{l>&FkMOmIbOirg<~TFAeo9lYC(Bn=J-A#o~J?R#LpkICpJN^?B4rs z1WB5q+$bB66UP2-f!2uB!&QXB$CX1c4_N>DKn)Zd2`VRR^2;gvxV$*lb!hFp!iyJ)GDcbro zsU_6oF+{pW3OWU30-uEm^FWs@cUkt5Jf>ypv9=HYiu<9OuY@k6z8G3U(>i00;0lf1 zGqHW!7Z*e{Dg;QhF`3$MiY=pykb^+D(~~&OcKL|yhy#+3{}j2Hmk0xVIB<;=YM2m1!qRi-ZS-|LL@#=QYu!RdGN8`mvBsMsbQ+K`*H=NAKZ~yj4 zGozko!dciIcN)jRKUVM*x?lSPex3f%)>2KpG{A#8h`uQ6GB)J{9zquw`f1Tmw_1wb`RE2Bm$*c2nU*YGg;QIjDFXwQKs{ zlUXcmwIF`^YBrs+>@+bmZX)fHnMit+`@V$cr*%F>A@*CbACNvw z#JJNV_3~yV@l`NDrUNKMkHfr7F?r<-rJg|tA~F`qxR6d0Ecl1!$`Q)4#C^(KCvhM% zF&#*9SL_YGd+@zkuPWk$wkAu#VcaU&Z2?mf5J3(}i54gcA z3=NY=aDZ&j0krW{aYH0v!LT`rkB+v)jaJUlr}U6AE;&bL(?lb9>@fpZoGiY@LXxx^ z%Uqb#f^EWxODfO_u|d|kvUpYtF7xVm&J1;h`x+r@jB!qFsxTHlOwJRs6;y@qF$x4J zV@@CzCmB&Mr>G9qqR5ucAy#;d5oeea6i-B6sp^x!K!UU6AfUGoPtS_&0h%?}tqN_F;i=!q)($oWpPi}=E+=+hPr0u6V?W^WCsC67@pFR2RPVcqr?UuEgHj6(d%3bQy2pjf^hcT#DQ>=h2!MiX1 z38Dj+h7IPLou(SX_kBwjuAvzhii6wRz0G@;mo_(-mP%#ynrlvW=hm+|Sq!DFv|AnJ z*byI!K^J*pz^;@Pjui`GD+a+7XCUd#Fmj-+QpM7UQuDc#x_oebjf&#K6Y5{_OCI~d z%Zg_=4=+RRmo^vLNMYNyP{H!0hUl-tZOD0Lljh295VLJyrfTqiH;I-+q~br0r!dpN zS_Q-;VOrw4jrBBp$(a+piGS==;Hd<-CWq>v0}Z&=-;gn@QT>G^c2-SPd6V%J$W z)|_r>-S^v_a&kUdCQE~94+L`RyNY`1TdWAD=+j$s{lX4r4*~@mcmfI>ap0~}EDQ<^Y+P24b1kEy!U-U6; z&BXjGBU$3&@*xYa1Uff20s#pGAU%@7(L_2$LeF+);q#1mfVNqfungx6ryvc%%GpA? z@eJe#1P;LpSb~3JJ6c!2HLqgr9mc_zSFd~3NH)j37W`Gv-dGGTT($q?)t4EaoG8*Cr=3=%dE*6gGXy;H&&P8@o5~XO>zhJ(7WG< zzP*5E{W?Y}vsLpQE11hD3^Kii0X3NKq6Y>$MA5?@6zGInF$`<O7>+m#9h?%)$n5Or`;+yA?}P{=YDOsZ*Bptu z)MmGnRyc}~5L0)XA@WV9LIRXm-qb0Lq{7wK;6^-B!)9XNHP>8@C)#LvA|FyzQ78_p zGIqXnET3~RIPFN`=u$e;tCU8S(V2N_b?J&$FCTHt$l~GQcH>|vDnSDw2r^!7QSZ9! zL@isJ7|ZhNtlW-Qo!gyC)%L$1!fTT}cv7gTlZq0;VuRj^j<-&1dy?4p7#WR*CPNb$ zJ%%Kc`LG~cHc+TK^4Oi9cyQnTQ|C@}SC1Hvb$>Q^zdF12nRo2l_p{^bg!=A@+rCI! zYG@~I?V>FVMEO)`7BBu#>c`KVIQOw*-#V$LNxgJj{p9>Z0|Z+8#h(rR5UlubK;GI& z8f!@XuN}Ha``6<3l|!c@iyHPlabeAATM7| zVc%$gbJ&)(^NNW504p;VdL2GlLcsBsotVRAm)t~++5Aj@R^IgOv6NB3{j}hP9D>Ur z*NlFH8qH)DNcv%loa6BmAF;hC9UlLsRq_d|WNM^YDvf85-qOG97u4*;NZuUgMG`-t zie4^(jz2aMe;p2#7A}~f_Gq;_+M!m0`a;4;mQ-rYNRu)gU>4@d)c_S}1^KO*9T~x! znIVF$Wt_{5q*CgNf4&}}$hvwgm#X0%n9rmMiuP~L7l=oVam!?)S<7XdU%TzLUoW^& z6yC&8V5bgasjY%g-3S_W_s~1o4!|~t+ZL{g+P9>Ci6EU7|0yDPHgGJ z#ax#_Gw(K%onXc_(|)PxCku|@zcyDa7V3sz*~AiB>SOcsuZS@rK*+y2cvqH~p{#lX za(O)Qi1H}o7WIx0vdJ|>@PKhc0aXlNN>+(N$|illn@qCVDn5*6mrOHH<0_4%jJycx z^vOeqPFnGliW5;SwChFY#tG&|f=K+f_=rq0CN*`@!@1uf)u>34I|atzBV8^OiBtrs zIQY~g3YdJfCP)go{-QE6{^)o!WXy*g`+qI?>5m-~KU}-hXiV>(51YSrVC9-CuX}#7 zS9B4=PRHVzOl#+!cFPQ(TDzw+Un7DpSua&7;AA{_{I)~i+C)}sPqh{nPj^4Hzf!85 z|Dv(a?CslMz4v&1vtF-MyvhUX_kC;q37#j;|0mJc$3Z(^rL8;2IZt|&K5g<$Cfz& z7rq<;D=VnxrB}!{?AiQWR_(Mx63#`vQAH#$4xdUT@ZiPdlMFj?ynlO^CI9Lpqj+h< zo}($1p=t!9lT`z)(u;?!*-!{es#tYJ-o)4{;0~fAY!@k9g#Mq&S`}3`P8$h+t86v* za8PIu2`0=vCjVsFjI)y?r&NZ>9Q`k&{_TXcks`RqFc!k$iI9n@Xb*Zc0{cD}mq`83 zRX^k^d(6-REiHujS;L+0NrSz>qDoZ&9mW*@u22z3U-)vvxID#_3sDX|G-jG(!NOuD z%WXj%1<|r15)dSyiV(|?xs&G%Aq`uY%;3Q2Pw3}ifos4J%+T9z;#B1up_Yiolvy=f zraXl*ZZeH=rN)g{{7asWt}x7%Fsle>;Z6D~WBk+Y$H;9j-d(5Z$(8N(Pi zLRaZi#|8DptDPy}@n3!#^ry7St`#n*7iQJ3h;xYGt1HH>#y_JTz)7qz2q1yzqJ+gQ$ z@oc6$`|4CUyE7cy#j6m0*tNo?Qo>pe$7fnQieWLF^OotWqOx{0*Xh6vqO!RFu07Id zRELw?&5<{!&4xC1UxPb_!e*$m&)uCS>dKYoDpC0-makS44{b1-P z2q)S#UwVYV6+U!??n@!LS}~-H=xA_U=}3P0q31vmMc3yS?nOs7IGxSxl+MJVR&S6v zTRCm3w?!`5YE6W2D^K()O=xYFdB1Cx{Z@^6VOk_Lc|uItl^nTduq6|TBXL?@2^K>xK5%2d z*rVD|{29kBmN82b=2Ix+&vrVQrda1Wicdp_YS_!U9iv(~0#-??f1BzQN4iPI zE81{4G}~wtJ+BhsaSb9=YrWCB}wx`QhX!ByeQ-`cy1rk=t&y zoaGLS#kZt+!qQ=9w7e6^+yTXe$d+T?;PaD>dJXSGyvDLIMBF!p?9pn-2`5^m5@=|m zpG0xbT-IpNx5gy%E^MGoIEiy{303j4BL%!9w1KPIL`&v2_rL*eqI&UX;O1YWeWE~c4`!r7P();$6Z?0dX^I?3l%Ob~+OGnlL-3AJ9)@Wj z$xghb7}{G-VK%mK&9_lP%SO1`Ph)z!5xw=JD7ElcUWEZbM&)_8^bhS+oLU34^lC2;av*f>=qaDw!g92hq>Q ziDoicu8_M2{FjNr8vY7?GR|w4KSuH3Q!+Q=O-ihjPm2jdjvrzeq}8;)_FS`4(x+pJ z;ru!l6wW8sc>8?Qe5718j#z}^#tWqimC15`uTW6$PJ2a+D;09y5%wlC%^@F`@Ng&T zR+vrX+^1IRyjQ`&gp56&>`a!(i;2 zotN{U@T8rhZUzze(sqJo3}dND{n`qd@%&t^n)8=%@emuuVCX(%ziV0k2Sk~g+NI`@ zXZyekkS-C3gjC795n6j;3+oM}9_W>95=~B1G@Y(evow7&LUB-5`3h(maH%NY9H%WE zuA3koXY39Z+bZF(q+L!pLdV zhJC8|{W@8_DV0bFA9e+DsZCT1VU>4c(Qw+ehheMKodfStsF#sgRO;0-Y!Q6KX$Ju( zk?;}cJg`*QG$sa@tk9ylhN-AbS#p?aYQAKHOeWS5j>gCRtQpFc=Wg0ruP<1UkIk&^c6Az2e}ZQIYx}gQhAZ6HFln=R+COu!+Qz5zbR_6JSfP$=e}J zaEA&;)VBZU%T;TbI0Q~ahE2wkDI8s}7o;pOPje*aOT1EfBpmnhahux-nUOHr?T`Y^ zkmmxkO_u9I)KiqAA>U9sL3EQ-O$;MTb7R!!t|x|34ar(ssiSJ=bGck0(H)(sP~*5* z-vRhSoMjjzCE7doBX~)xRY}CX+@7UuChcd5J4QASCsiCh6fIRAk$bfXV4`dZ=r&?2 z*D+J;DbvRFS5fWQPFaawipgvP=9AkyNg(FiDm$cC4LUuMN(1eOUp)h}3OR{f48|a! zxJ?kvbb?&oCht5O$>Z7;)48rhj{GHfz-yr3I5Vl)2>vB~g5@UY@n_#W_}buWKUm&3 z`0De|t-bGk#>oMK=jqd}!9D7}!A}&yQ-Y}neuV~j0Zb*+&xeRAY=n?=$u^MxpZ$Jc zO-&C5)9Sl__=kHZAFHdw_usD$-!{1O;fK}3wDkDk$T5J*A&H%apKhu@;a(!NmBBl_ zhab$J4E+V|YQB^gMF-436M?Pnv{24m4Kdb>n2-6a1 z9;8LH8F-7NfXHcuk)jJ(@zIkk5p3Ox$=hB>Ji26Wufrv~7GJRv*x;Veo3@S$%T zOG|9Ea$I{cnTGi+E*jrH^oKa>_-cQ%NiLD*{MjQ%&YU@O`|Y@4wDCX$!{BNjk=NS$ zm565-hjzg|*rh-49d4hTy1s&}PVMRkmXb`3#hA|Xv(Urq!^C;73$h;TS zWbM#V@6i~k1L}@*>ohl!e!@!{cnD4pe*a@$vKpVh)hTT4Od9WSSj@Q`NW8cA1nvjk z^jBpeDaYYRNiNwF)A4G6x&L?Uh0npwER|F(brqwS`$4^72uUo9_GGs$hUQ#DGzJ-@ zB5PZG%i0{i`{JUl*?{mhRyFn4N6x_>Xh=9-@DZc|l|mAEfQ<3z)F)FVstd}AjBVKr zOA@=e1VN*Ta1f2N8tg~AW60~n&wwUCcZIY(z3Kk6cLqHQG!;k58FH#D;q+c~Y`G^5Oz zMKGcnIsff&3>YH}O}B<#OoUOzLS`bvb$B{>5!3Jh>AMm&TUZu%*yZL~ z;{hx`66p!B0jmSGVOAm~*vxzqO2LaFF14EzUX-{U9>udI#}B?i6&u`vONHPW*lplx z(IjotSsX>m7MH?au_)=qxe7Ff6nrGAmJXMR9f_za)?_jh5KKi!D5E82WEFB}Q1M|$ zy(vGF!HLDPOT!~0K7p5hCLZI?!J3Q-Ec&EfB1sFTYo36{Ei*bL@77A&_*S5GF(eRa zY^%f(+?JUzA_y(`>bucfXA@4;YezG+wI{$>;?r7>V2_e#3g(sq;ZRMiejvE~6 zOJR)E1PMih|A!AB{`g^~_;DDlVmf1wceTGA%3)CMUsCLcsz`MKz_l z#ZVs&P9}0dc`j2uThun73n;Jv5wjgoXK4fx_~Ln8AdM{D2%Q$HUA40iH;r3xVIg$W zLR%nXWM#}t<1|b*N3JemEf=q#FYsV0otc=Z&t}v^#I7UC7Hp^AKij(=BtYJ`Opp-6 zgWzDCGKH|nl-k-tGB{=pqGiZEfv@EwWl>a@asj`Z3I-h4>E+|FVH&dv`G$Yl zBmx!}D*xY6^A`8aC(q{AXos($F4Vc4ud2XJ`JG=l@)O&+qw8UsHg2MkM%>Iu+8!V{6ec6mCQT zV%jYh-K-YfcOO6gc<<*wQxrfWEN?|u} zZm{zbs#yjd!xtkHK#R(YT(GyFcy)L!5M?ywJlSMF6>5EbI}`C3nfz!B8mtEW{j9H+ z*6&1Fo5-mSx6hpx3E|F#AAb$LUq6v#;NIwfHM3kCM~_SYN4e%6j>EjSf zRwbe~PA=;tBsU;xT$_KA!6IF&aynSGlGSp_$Ji_Lc|Ohrl=WSfym4{Xvv!J&&S`4` za3*U^zy!pUfk0)DYDmdcG-zPIjMU46Rm~pp zf5{HsnkuENx!MOlfC|C9{~~=6C7%GcR>t|p??z)m5l(B>hCTRD&~~M<{;pmqRIAlm zp^!)%y7D9Uo}PPP`l`Xf8;`GO&wlXC&)jmyK0T5sh^z;QpQTF0>G_5BO9j|AFwsYE zSU&ww^OZSQCXQjFe-w0jRlXf{12+iMo-RON5p@5QF@+VYG!u7U`)>;aM=N1_V#}6F z>vVmS)A!(>_^*5kdo5ZG4J;;;S^dc9!L^6I2iomtZ$7b9i4VV2Chqy1x)i*GdvpuVp`*vU_}VvXy4rtSJbE*c_ZiRJEE9?LVO?o`^#M43@*i_f;;D;)nV= z#&?WONVc7#5}REpL6a29r}pnwS64}Ek{p&z?(e{yfhM?4AsYHbABA~zwDi|spN-Klb4Y8q@0LFkx<|qUY zbRcL0J$!>Md&s9_r@;~}ZYXv{@J(5gFm#4D`6xhZR{Loyl;yMHVB>aFR6#yF%-bpX zn32^gVs+r!mC6uaiw}yn{;O^X{rw{odmHUghxN?#Ja=o`51IF_^Np*p$K zlHiwjs!qm>*R8=jlw$Gf$2l8k*U^JOVdKR!qzM6IcRwp0Ksm>qtPO0CNz0{3Y94KQ zh7Wm5DPcq6trE8()f+(~sewjNt{Ix~S;C0n-=NJYzU&Tm;Ha02Kk%=YCHcEVHNFNj9 zhto_k#@&lj8U(o|RZ$H19^O22d0*{tUOb`w!Z_#G8GC|jpIqIv*N4oY8 z*HAUbP}~tbUhH44&S#@-Pd2 zLiGs|1G z0bQk2Q5QfSNaxdm7STQW6qLRUCrtU6WjyR<>SXd6ENBbots0S3a8svZ5NVI<#^OpU zQ^&zSH%h4me%i~GQU+z2W2nZEt>ju&u6r0O9aJn|nBu%L&1C@c<0b5?YagprbxxbI zOEwgif-h9$+q^Gz8T5xb52pYyq_mq;`TVevIFRBtLL4Zc$C64o-uz7oUUz{c{V<89GAXzTQU~Res<|*8c)@%iq4Cgf$fxG@1XWlfnM^FlAxt{i z`2!*zd>v{~1d2aqoYBfEuR3i;TD{yjtGQeOUoZDAKQLwD(B!q1$jMi@Tt2;ECANc= z5Pi7^zAG&{NP5fm&fj+a7K<*fo{v8Dl=i2utvuDaS$o*^VYz+= z2u-s&86U3|!KW}DQkhJu)LAazu1S@uKf38d2M#@cN{GKcl+F}7yNYSvC}_XQvv&J` z{?Cs+*7?Qfp8Lpo7`r*XVelcZnlUtFr!_uapr zB))HxEc1x`XvcZgs4p(=r?MZpBR~9Mt91+(otE;;NgeW!fCH>hE0=r1WJwD&LH$8k zgM!UpOzB=-)!)m?!(pQ9*TneI{w@<9i)hi$CzAKaW1F`%W5FweiO)yQ_lHng;K3Q^&r7}+iXfHW zt}@4>9&Bq2j4IR=CLZdgJ6UpTmzvDz=u*LBcJrbn7u5ijmu55%Vb^X!FYk%do+wN; ziJR5hgOs_FVpX*^gg$B2gef25n~0z4f8IpHOS_FLtty|Ix_)M_p$*-+KEBx78`Y90 z5B%Qpq-p)tWpm5Fw@2&MXZ!jt+rIp@J(>|6=a|0#v_89PgePf%lb3%@-#s2p^(~I? zUT>JIAK&w}<+%eOjXQrcx%{;Qw^}iCvpKo^dk0SX+ZS(LZ)iK$CnKo%pIPs&IRzO1aRNP=S16F6*Aoz!W7d4LDS(XRUujGzgDiLuwQMl(R1z6Rt_!BqR zm4veGk~gaoU+twrAfU2ig}YbsWwlSJq*|2<`z}eFl@!~+n4_LZkL}K9Y44rn9$pJJ z?h#rVETPP0v3I+hlJmxxRlCyVDcTY>RWb@hpN9JkV3KQpZ^gP*13Tqm8OFR}5tQ*g z$SV}??yI=^EN2wq;BI3|Z)~bGCj5P6!0cp&vRj!;cpmT^k;pL%DWhKXFy^3fBU<#) zxUajdS0Ox{jdL7>o{IHwmiUZYo^N5@{{N&~Y4<$R!prIWA=@N}Sn5DL&t}}RCACq$ zz%F`!Q7`zfh6I$Eq`w=DNlsEVOmv=gJgKO7k38Z&ulqbU^8MX-1kd(PEck}O)P^~6OTmcBq>(EQk)G#3q` zkYD(A&|2gdidFH!ioPzn{7RzWqu^Liu~r-usVK4IBE6)rX5%lcuY+1B#IpD3YX?*F z)#D*}Uz~TutZIW*ij}NUJu#O#xOQ(QL5-u(s&)?)hT5T0Y}9HNI{T>wXpKfHo@t5` z7VKF56OXUYWJa@2X>NJnjesF4&Z(^3tjc0%REF=pYp&#EM>8|)kAET`vkQFlkA7q3 zVE#xX0(?A0C72^bR}Cdc1&bf=a!Kvz*+mN!r2#HXOOVO~vbM-S#S*j(q-ZtH2>_+!`gwRWiy>FeqksGHKso_#DCCl|E`wOZcB}q zjY7I}QyOB`iqorIm(?F{;HtzWG)mJy`6Y3YO3Ln+o{U7$3)&Wh^0wXJ0Ly;uk6>n6 zavbR-P%%p>*QfVStj+(A%Jsese@Ty4meDDCw&aSYSeJP%o_F045VE+>#ljT00y0D9 zz1to#vx%3=y^3s++#`2*7F#`T^SN!KjXs{i31p>#re!kAfp7@kD?PBhH)8D$*6`;4CR{0w6bF{ z;0yhCLlqK>P0Berw>3HKL|X%xd!^aChboCeU-goGCsWzq`n^cv^4YDgeRFtt^PXU^ zHySPVhMYaU+6iiUN%3O^# zN_**wTp{t$UZ1k6O*ZDN_UUSUdV25P>FN4`OyW>tVSxvdRGn;WSf5`wa(HoJ7@7b| z20vVY#PfzqtOcb@p|emR;MIy%^yrCNec#mdKCSj{w68~k!D@Ev>XC~U78b5v-I}dt zJ7;GP6|Rj&3u$7(#aQIp0++6G54OTz`%8Gs7QmXVu}{`5xnhBr($lh7xkK0WwMc|V z20ZqTVU}vRPG!8yF>)+V$ffg#___a((yzfNDw^WHS0ij8MKCR z^F`N|XCgxj3qz5a^09@tfmA2Z7>V}QO>z!macx&(^MH{{b{zwyb7Q4aopaF6F~;pV<=>IM zeU-8Qmqd1F$iO0BH?D@f+^uqIw9_K56tY(CnW+HC2iZ$AFb7`WI!`X2Kk%p2VaNea zf|yj%M~KGZPdvA#~N zuVOYr`OlJo8wxiP5dqwsQV_aY!W34xo1}Y2Uvl=kh;*;A*4)>nJWsm|G-eJ6*51Nvw3ajqdBM{-B!(F7ODx{Pk9`W-^Jds)9zLE%HRVK;nZ`QP;R*MwpZcX=g zUY6&Sw)+1ac$*W0+3%q%Zp8TTByem)p>PRk8Q|4z2|$@V^@`RmghR3nXOi&Y~?F3<>QH_)1PUXM6)@CgM;_FH z(Rn_fSYKCe0w%wehmRAOVHSJ!8>{y;8Vd`nQu*@RoC{l>LUk$lB3Kvqa$>YO@Q309 zNKvIOl@}r`5D4t(+(lL21dereDmKa1GbBAg=`zpjSLq2x)I`tCJ@4)L#h(95$qMd_ z8)6YO8Rg=d<^E;~vM&6P@Iql)PPL&|-va?e2SY$CD zblpsxC7EKJ5npgk;hIb4gnHqIxeR4n$Tud^)owZE?|G`&Wu7ZRYxd&7BhZ@zn$>`TQZ*Vp z4do1jAtw+TjYVV8(Ngp#+8R3NuYSSf`GO}HFP!n%#;xEI5$F6##P$qa{ zzzdSO$n2WoYDMyh3Yi8~%CC$qbTMYyFpkWIHpbEN0kl&5qUX-fhc|+u?&-T{7mtei z0_~2+?paw`Sa|H7D$8T%TTdvz&XTxr@b4@EQ^6?=>W6tF2myc%;z8r@M1CPJ9MJHH z;%64;d%|lyfLor*1E8@5=6v1{%yjApml~ciZ=~|7yyV2VC^<1|0LSBU^XexG3whAj zlt|^9@W&~SA9>pUSf8&B&LoVv@cC9$_yPGiKZLzxZM>SX zbt~5XDCp#A{F>eQ;%TGRod1kJWZjL^#ybh-ZqRCJ152Z$OC&z)CqeMqFI3RtLnrb`CZqa- z{r%HRttMVw>m5udFaAfbccNmo&a_IU(M)DZNVVm;M#Mi=cm1)g9{5MKQ=S{ho#CoZ+T4*ZyXxQi*r|*V6dCi#u8~`C`3O)UtX!;MqPD za0;-DMkCH3uo>rKM|T2E?cpPZVzD?pvY-{T1&DIA=+ZdlgvMt+ww(WH=WqP+dTGev z(7p1RD$E=H#Xx}%&Uxw|FBbW*h?4W|VoOD-8?3wJ&~dq>#VPO-lT&hd^NL0j1557B zL#J`OEXtyEyW1Soj*Dv&mn2BV;ZbXT;pi!^oj9@lA^6sAZb7xTomUzPG0p^G-Y!|#1?tN3(4qQ$q02M@o&O1zABEfanohG_PDMi#`?z!sJ@AVUf-&cZTtG++HqtJlZOIlsn@s89M0T!-~m9ni9~2MRiZMx z9Fsxan8iVav&V=WjmQ(8B4b$X0<(afsNQ^Z%RI0 zRo}PsqpQwnm%b-l4~MnjZbLf|r3UcEAwXh{M?AfJcTLb@TyVrJs(lfvxSf0R z+(x~7GYUs5eeohVzz+I~uo~CN%US@t+A|ncYm8b3Js@_<fC!FRrT>JZz}XzX{PcJTwej2F(_ ze(XUkV_D2umSyaAbuuN}UDI&NqbNI3?9|(?fhUq*4Rj=|jQE;d5iNP)QDs1CR*My` zL3S|khkL2#mrtE-qK&l-yP>MpJ|&OZN(Q`VEK`Ts^4vT6tp}(W3Zcn?a42~@tc8h0 z-|a*-JO6M1vK8AnQ15$>;xd%S&Od~r@lVBKp$pz~*M+^T3wPlMsG-5YErW`VceYwK zUBitVQlmxMu~uZkkeQek51gyb(=r=(23ens9Hsc<(^Lw+Y5b|zc;4`Smm(KW^;K5~ zQYliT2Rd_XGza#am{#7?X*{QcL@>7SO1!*V81#c|L*(ln838%mNBP*?hYyAr`3U!&2~?tUKxgZDXv$s1G~0OO7S!*kEz^*Kvwxvv8A-B_?;AI3M+=FZrsP@ z1Qp~JL1j$e_bgOlL`k3B`+#0qgqWSG5AzkT4X;VFsU06}pMG}j;OU8${>l?XC%sR+ zvd=iMAh6>3gGMSdx26v_=VTdH`AzS{#@vsjti!KABld$dH}i@1R(3Q3T@?-rVLu=b zQS_B#cybW3lB(ELD6xRS+v5`p>$ygLp;Q_hUGz0;qoaNI=3;wCMsx3pc}k_D<&rkJ zo%@|D{eBDv&Pk>bbMsY1^3Z~998*tFkY|4Me?x7dx!@Tu!&Ziq?_ zdMfo-!iFr@jsDPW$6lfwTy;!zS{WE3xLt>)gbcyNrIb&M2ArtHl@SOPjc68_LD(;h zkRKhZRwFa2>W(VDLtUNO$irA&4Wg$H(6o8y*<}ngT6`TwPFw#$F4xTE8y!d0;L*O{ z$mg0(vGxE#g*q?DF^==hvijt@L&|_!U(dVV7O|#%JxBkYSFNixMQQF_b-KH3$kdfF zUH0;}x;wci5tke9FzL-Vy|-5&5tK`n$Fmr$MDSh^<=5^!0;y^DjXTfneF41so8S7& z1zcK=6b~cJuK@VK-;Kx5?Tru&$L-6yA#GxUySy5o-)&^pjT4F32N%on9$^L-SB{{2 z5@d8>N{B0OiaEekCg7Hq2|>3h^-9KM4Mz^nfvy^*M1t5?>L3^G=B~^e>qteoUS!cv zd);TTV72`eyo3F}udnmpBT0%T>X9IXyktaOdT{3g1 z`6PJnq(K$E-e^47z&{WgNS-{Iywe2jDBr@le?I|96x2tn@)86jDKOTpA@X2=0q5k= zhE`n7=Lquii|C?@)V;lg)^sg&Q9Z|GuJTJATVxF_xM90jCyNRss5CiZI^t$w?k9^A zQ=XzYUbG@KO&pK4O3AsbcDQ+k$Je0Zj^*84{%8?8{u$ra($&y9;1vsY4oJ<`;MF6S zUAgJ%Y&4e9o(b;m{6R9Py)#IJXFM6~yf1i7X?Sx<|6(R~{OaabkGD_kaZf&rmgA{; zhDt|nhye_j^JV4nEmx0h+19xFcnnZP%<0&vWKw$@4+pcb&%1j3)%Zeg!()VE9+4$M zBtkruR;sDQ31|Qe2nkquP%qL-2^YR4SGvjj)mkFBnvBKFYexHDgg8%7O z!MdkbG?^>n5S3LAs`6BOie*oEYTQ^yK0Lq*PNgc86LD$Ic|yUe6V!jxgEwA}syD;< zD?gEqAF?d7GH6D$LvbgVjdfm%XZ5w_KfOfJuhC+ zJ@M>&DXM2=GH}GdmxDedN1QLKWB4)Wk%$taFiZxz@*Yz~szqRQ^0x(ZCq2HPa?vRh|2>I_+4-Z2GRv;PcFpc{qzM9Ay*%EaaS?4oc)YOu{(?EZV*`9 zPpukP)8_oiBUi7q|MUC2?BPDU=!gw86|yEZermX+&6kE#E1AL%fNFhk-uUZ2uN$96Vr zvhynz9_80we+Q z*Mfib>b0deT@l=Q_)h#tSE65BtgsiZv7zP@iBKU)Vq`8VlS6r2r`n|93M>!WMKxWO z^07@DB9%kdaJo%)GtQ>krEYvg`)d85EL`?6$4E7etW~{Dd@Y83#<5Zjyh9IBHYpp* zJI-o#f?4FmUd+GBXy)%l%YGEwZ?36dGR_D5A%Fe|l!04JoEwH+x+Q5PuynTS=xf>d=GbzqH=6GTZwLFb6IC8~_mrgQksIhpJW4jZ zuK`i19hSB^p8bp6hu+EwvzQJ%1!+1Jmvh^%m$=+c)}JeSZcttunom|C+6*6zn9{DA zomRnFc69^t?qRBJeTX|(+INjwLA-Vk>z+qm5#{R+uLoO&)C!T#6Sb?Zjz(oPGZZYBKuzn zOxNNAO*WCGc08EavM(Sb>Hgk|7IO}9L@blftCo}(vWEi?slj&WeD32q`E@;#;_6;D z^GCVBNhZ|QsE`SSUFV8l-_!tFGgubx*L9SLvqXYf(rlo5RBU&IbTtreC;*NXYtFkH z2M(Yj*!FxgBGp(($L{?7vL0Jli0R)>WREXO+M#7F#wHewh;1y4F5ua;y^Hz-ReV2` z?y_Q=FR~O9F-_b1XgwS9- z&m!i{G@IKuU)sBwQw++vzTk6KY-7AsDwZa2*5z$;qF7p_Ahe8Uak#kt%oahLjmAIM z_U;A~TQ<}!VNIXcUsER%g+*_Kh8%Z`XEmuPaB}GM*rLk!1F+S|t8XRB|=NJmXU} z?cwT)ibJH{?)*k!*cvXBO7I{{W%EZ)otV|%H+ainpg>Mq=eLRkRLqg0wiF0N!l}+n zw`^51@ml2n+Z7^RDp87!sdN?Qv-l!Kq?g8#WbL1_KNVS+UVxS$70TuIwj=jXPk%ZU znU`HoDw4~x>%Qq}eH!j3SYtYmRdd;PRa^h9KYHViu6$n851});6)}5cHNm21^e~|0 zYLsF~3siB1iGtnT;}i8@n^u%TH#k{L%6}sEL&y0c^MqxC90>~cbj~^;Qq>FX>z%K% zkNAYuc~U#xIjbH2fVL@~H?Q~kt~bNsc;`=)_uKw~O!yzjHZ1OjJvqtdTW4nv?b*}y zhr6|Zib%vB*lzIUund$~L{p|*uR`T<6Zq?7q|5R`gEA$?@#F~3EA_}4P~)NI>2K}8 z&+2+?o6Ug*O!FiA_lH8&9Q=!Q3WVT2fFcFVzqmr<7_aYBo?Y#o1I;q(_+KP~A=K?q z=qfHXWL-tjPu4rPZ~Ktbw+TZteXA^R>09RL#s#uBS}JtaZE-_M!75%VdqL83<%NQ3 zp@7pLU4xZ!=Ex|yVMXH9T>>#@H&#*>1Y&9@zSJld5}^j(_c& zCZsk-Ogk~s8XrmK>lHsZS_1caz#D_oDXL$#ck<+=EA1=D-j_qQUz3lSdgrESG!kU# z6p8^|3z_-;*7j;e`HCJv2F(zm-NrRCTo`6(6kJcgRups9rxuY7eN(JmaqM-iUKw0@ znES_z$QZ^RpoJAe@GTsvdayiyWltMAqc*-UK8b$J8PP8wNRmw}Pf-jNm z+q}82;oTj^p`~ZzpHyqRO#M&dD)MDQoAY@!-(8zE-Lp=#wP#R(iDQy-Co@{LE3?Ej zbP-Klym+o$(Zxl4ImLz*;o7(NerII(Hz*!8=XA6h@QBnS-z zc*q8^5i5~ak8*{t*7VWWLMP?1sb@ks!%wCgnA3>IjF$#tR9A#mlltQZh!Ha6yjsLI zJAW|JKRB2hEv5IQOE4ny6peyC==5x3JbV}o@I?|wC3^*5CcjDAMEL{--zA?zgCxrnDi-#Z%lYfcY9L#Jz?V<2%+(#AFS9f|7=YNX)`o=HnE3p~ z(^I>=eSJAVBHpG`$@LF4Mz7f>E62#-VBHRQs@fFGz8h^OaE8rGGSMOJ52*mg+RLO= zCWPqBY53M(cN$2Ji?FzFMaHPf>l-VNP3cQ_SBF3KDZDR(*EJEG85 zN!0Sr(~wNSW7@f$etY+|IeHo=k5=us?I5FpBRG&+Xr5dY{#cd_HO`L`zc|s8Af5vP zJ1*v*7)cUaKzbnGN;R+RdOml#a$!H^a((5e)8Ok1uuiAvGwJk=b~d1maZRCr*VT7^ zNz=ZQTEG*79!_FiDRq-=AI!xf_Ob5WRCxxjV>7x~JGdD%RQEn44s$ED)ZPP%kod9; z375iCRy0~vs-mZvVY1s$)`n6fWUjjL841^nGjhh;V^cyWj9_OF$_PVabcY$xByqBz zYl%1MIA2*?wBUoG5KGKX+CfI1$U-ZrWrGkn_B&9QNt`7}SyCIW7C*&Fd*OtaIR~c7 zNWtou({i?B5-btMmj9DR)DHn36MI3zSZ*SvtZb2dNz4eO02VrBZAmUAbzA_PvdwYe zy3n3-1=3wrjLYi$b`JW@qus^_0nV6`)(6~ZcxnB`^V>cG-sU3OUhrCC&vmW4sW*5^xG3{smkM0_kU_D#V8#6Nvy^#Iy|K_Eiw;naA!PgTfe_EvfK34$S6g&Xx&K8#(>R( zrq9OaGqEFC6|r=*FEf}?jm&mwoPAo7eyR)r66L*Fv9u3KuVdPGE3=`0E0E-Ny`uJ z*vvKt3bjS8^q?K8-lL5)x6L-OTt9Qx_sgbp>q;n{o@n&~2h~0o44%x$nx8ot41SI@ z!QR$HIvrZMHE8^@@2u$@+O|cT*@kxo+&p^r?daK8g5}uPbBHKi+FJCiJ!Fq|TI+VF3p`K*i(U@UN{agJM7~5$w zr0yLau8^A#m{gTd= zM?M-!UDg}jvri~x6VByf|LC@?-xMY+E$0jL{nr!2YYr$|sSKemw)4j)99ShC5LId| zcX6~KI90A^EF>}3N~Ww`(yb;crBb(r{7rx+uFI`PLZq6@7;xkRZm8O#k}~u~H{r8N z`x5u2GH#g(cwoD5HSJ@D{hr=l2{8BfN8l9oefB3NSkJqflG zIj}SN{zju8SBlB%=9QF_g1=N8PNXn^1Q?J2!%uQ{gMudc+$vSBOv9S#%_oBBqPC`D zSDcD-v6;;0D~*{3hqIiL^)gZ_1$}2B|FKy%X&3o_5IL~WGl=cB4PWNvWbjf248vo? z(I8WvQgu4*h2rj_ZcscyxO*mrp8~;{9v9S^yUl<*f7|!(I7Y9kki(JHdEr8^^79i% z+~~u@)fvm0sh;&d>3zc=QKhG3-vy5gxzvw)lA&;=0hdA{2D_`)LojZ5aB#Tuy|mX$ zff#KeoHOc;lCZOZL4#yT9BwUEcckx$@R@Wz)~?pV&4xvDdme5RC@+#mO|e zU+eh=%zkIH!Vk1I@v`V-r`Dn?vnQL-!pj7BBBSeF`#uYdDZjMLw*28E(vV zL?LPp(Nkhnso*68&~>epi(<1D#e*uN+>KhW3@I5vDM1_-23@IEYO#Vr0gJarEVa}) zS(EZP$?MRsIA#WJ62HU=0U#GgI$ubJ{6Wp`?kW~XhDS6(7#BJ%^dzcLU#Gyz5DGa` zp;<~PYgZIVAWQ}H^1`i_E>)EmMn($7G&SJW3oyz{jgf_7vEzev(4+YSZ@Y;17lxa= z?D9h!3Flf<4kj_(UAtVrV2Egqx_?uk%hE5@TaYAWbmf+ zih56b|9^C)Z0FaG?p(a@S{}479T35ZM4l-o;?wa&y)PI49lVCf&c($q->2L~x;M6KYHEqb?-QSA5(uV(c1+X+tk{k3 zi3Gt9JTa@SWFxWROk`Ss0n{NV^7~k^li##=7WdAIA_BVQdr;U|2rBj zy-FUpre8Ky$$TR1I~DQI5*~`Z3WnP6pMRtG?^Hhk^jF1i+Ea$7XA+*C3fSBp3d#xa zBTXG6l#cE&SH`p}T-4%Htd)1_rKEN^RnmK{nJtH}aFxdoeh`wmQhM$1%ogiT&FlYr z51dN*Oy`e|?%kXC4245fA<<0fGl{*c$L_qX$NKS)e*Ayy*Xb;m_*;Yx^Gwgf)cp7? z@>GVVib!oma3~iXRPr19SXbJ@i7AUBzafc8q*HMSYb5~~W6|V?cM|E1R;&H}ut1X4C!yVJ@8&AtCp#K@erz@io2wUI zLjW(hejuu0z61vKT&`T|iyigo{h^R2Z2CqE`Do_4iz|&Czx=*m*z7f?CZd5T{`27c z6aQg3371aitZ9`sZFF%mnZD-uMSi2;(+0-|@_0DzdU7wK#5A|x{I+;FcE@eIb!{{5 z1dnNkZ_+|J)0bq6Vs~l3KOn5Q{`&Tzp;|USkb%GqEV_xeCQU+9zC9Yp@1yzqhbeoI zjrlzBQeL?4Nj|gv2ry@OxsTLtt8=I|(T|qx^Xt)kUv)ftO@s+*qzS}C!j9&JbH~Vf z^b{CBW68jIr`th)J#44KLG3J{1Jf)5{P#%hUFX%1Q3?A~RI0(X2|uTXopMH86Nk{f6bMIyOZW@kzG^PxpO@8zKa zK>8XBjJOb?&L%2Np_Eu9TY&?dTHqOA6u4SKZE)k%8J;dcKr!L9s>8$i!aj;kpeq}C zWtMX46Br>J1iN+)-ww3-5qK{%`bD7}i)%#l%>h5)N3+HWsybdzAYcj0sU)uYQXmWr zbW+9kdkETN_W4+wydJ8vz^ocRx@i;JkRK02Js*kmW|FyB-0A9R!b1{P43bl{6htG! z)sECuiVEv7MG?xA%3tnMUdekK_-~{r{&1EO?atB>y3aUG+~qVx8fTtqH1FF>0PNtw zGsl;fSC-f3Pn0Ul%i5>k^}!Fm%QOj_Z`RWAbeaDm^2Ikkf;n! zvnsP!b>Dy+6MLrftkxL1?~*&#t~?kEYP*-OZwyw4<7mnHE#_#h)Y`NuzoJ=H-@7lq z)oS*Z>Xllxkid}ZEwS=FYArA8A9AlA(yw=|-Cb>5zq}j_mJ&(2e0-p!50ifigehP} zw7@On5IGJH>)B1&fEi}`5}OL_tn|NS7jPtr{kghggt$)|yIEN_BBf;I7A>J2mzGw) zleKfjPB8E$6%|ZPg)gQir_!PoBf`=g%V;&L%5@68tJXa8%z?$leRmvMTU}Z@P+!ha zIghy8qc=wu@;Rr{m_BG1ayesPXk~fdkteJNkKeU=%(91<>ZMRFTPGo`0$I$ncV2OS zb&&hL@REw=KAOH6Y>a=U%(_Su>OFonld#lo`O;J#LP_;TFl-O}Y1Y zY;|?-USqlPsI#*ChYR}Z9ri;vtlXGiFYO!6P3&78{)zjNkb69io~Jd378gfSp^?R6 zjobQEznR+B9xT7*!KKmWwzoL9z5l%X38VX|HB#Nr>!b81CyNmE$iH0hzdlWzmtTH) zV|4v%bK}{GiEGCRL7YEFBv*-SNq3HjR|NRwRCQ2gAShC>VFg5(su{>IN}wiW=61)2 zJ63AU5h)Z)#y1bm#ghfC^UtM$-gtAPeymn_k`xGRm52}VX*D0YRB*eoY&QpQD>TA}PF zf0tbswzP<%2ahYU^c$$9RKGc}u+V_Dl(i;va?b1IGlj-#gkWT(bYU;N_KFft54wU% zTOld}1<7UFC+{AOIQ5q+sqcUJc<@BeJ}zWeOa=IBlB3-9Ja zdHXN=_Tu1S4*Y8rCt#6^>7$V**$?5-ECNA};k16f?C*OovbmVL`4V3t7N%sP{f2cNQ80U8k^uKvC&3wk|fFr)RdCY zd5ID#=aspM0V$g-bi6>5lovm}wT^+bun7-A?};q~69HAJQ+i4$w#C)?`ZG0yKweOa zL;^@e<7^lQ_<;_k9l;sSgb=kt;2IpIwnWkBu6qBPT$+bW(Y%XQ&~tQeKnvU+v9fKy z9;lt5#1IvZu3n?2u1`OHGHe+)USqjCwVQVOjKE<*8OVQDfXDvcclaz69pk_WRn4AH z`>uV502^OlD`hUdz32XaM-Q?5NoNSkLzRv|EXj`HM zUQ60ML9l?`1o3#E!vq-v-7JTq>m7i?fGS<+hdI?BZ_*Dx$W7YbKz2PC+`B6nyy6%+ zOjlkW3|=!y(9c{mb0s<@{I;ML+<9#Gj^CuPgJ0|O`}+V4 zWc|ELdeeEFsM7XZk8)0<9;09&5` z60yKQ4L!+Bf1(vyyyvC6?s~JK_)**Zb8*#N1lr-xLlh-3FM8lzLC@HwUwFfPOe2d| z{vD&p!0dJFOKwy!;^I*+(=r0EH>*@S7Qe#eo6OAnms?a&gf_4x8}zS{&CX8f^T@B} z3U?WKQwhC0-kD9mL0@_Aqj{RPT}PefWjla2gr)YhhdKJ2${%60n*?k?@ytTY$l zF}V)LfgWuf29%mOgwy4TNhSh%<)l)jsh%f!8c7i};%EiB(k-gZ4r(}g6%^V?OijXo zE(S45-*FUfrJ#z0=hPz14HGEWkwSLHtLGB+Y~HA3O9?%%=VO%|PDE?IUeD_V z?>vfOrPcXHBb#kxzn2L$;qJ&}J9k20UN;I9i>%_(!e>@5=!pc?TtD@>*4wPmoIm22 z_z4V8I+rn>xbx9HsaULRnFE?b;oiEtkr)6w{jg-5Izn^cMn{vqKekICvpo zXdomcx29De=&uIzb-dU72#*TG&-B~CTjC|J<)qDG)RXEhrIP-rzq!!)gxA;VqI z1&)l8FzvZm+Lw*lnZn48msjdo_wn9bV`NirrdC@j^d~jF*^ebG_AFiyY26R(X^r&7BU`m#5H*@? zoMd%4t?3CnK#F8K+YX04n|ANII0ah(*=H0`66T#mHYj;q?|=Ue8jI94zkL&!6NFtX zmz#-1qtpcKkI_O%@*VwsiO51Bo1n(gH{Y_WJV#$hK+;Po)S!`ML4j9_#2&AAGU=nD zK)}v1S(=atwt69wvT6&}AoYIofSW1C6s{JEFM|XtH4|C9GfBFbGC{p$RVQ$Jl7QMQ zt@J-p3k1@!fkTHzf`nHx|3R(WXYj}D1E;hFU!IByVZ4=5gizFJD9l`%(1(X^5?Uu( zJnvCvAzC#dB6b32|P9ke+>Q1UA;COhcDy+3i<8WbIMK)ik^v|zX2vfX=pUR$1|#Iy-D-<2w6t2yq*$rI7{&7|(GVVWHeEOw2a1Gf*W~julSe>dFnak_V^Y>Y z*&#>EG?&g)t|!1LNOJXM;)%k^NGgSUEgyzM?$lKKNPojhKR&xV701N#PuNs>7)|uT4`Sn)tAr`4516*pQ z^T+TnmdBjx4eefm|Jub;(Z zwSCEzpPWsJSJgYWaKrkONn%y{#4fW`8Ul}7F1H3}L;E`KGpQSHdIJ8i-veT17BL;| zUmi6GmtA?w?GtS+(1#?q;*JHWoe#5Lx?hOyOn;#_hG#jtGKl#R@>oN2(Wrn@qg;rt z7eTI|jC!!|K-ZDT6QW?67vU|k+r>)v;rAe3;+jU%hd+Ur-l7rb#E{ymr7QRNSH@ts zPbEwLCU?RJJ2S}Kxhx9^&4vvlifT6-4rX_F* z!}#v#Xl{0P1zB-W2ow%xA}h1AAHwdOpSO$(Aa&^ODCOkN-P>80uY!}KS9saL520VG z>1n!=^9>SZvEb00SUSY&mUvX^s^ziPa;36f{`q6Ou2?z-1+vq5h$1(a-a!`PtQm@# z&9@T#1&gKq>iY8Xdbv{hmtDt>?UGb(ZTJq;+-5?-#4#`|x%Q@;M;BDSsd@3RZG@(! zGtwx@3hbMfV6W;Ok-4hp;5ouUDcT$z-Bvk=0@V9BbD4=F)2DHHf7XJYw%B=^T(7aQ z@6>81U@fkns9o=<)WTsmlW@SRuT?|_$mh!c?9cRV!oA5NwKO_*n@e_FtJj~l%-M|; zK{5_yjEcQ{Qa`L80Yy`y63yLm{VrhqWf(WFku|)SC+Jo-0!CH}0@kdu)xw@z; z!Dw_@N?fl77G2ei79;lffGD#{7`BmkNXawYMAcJgOn+t?Xp+L$GlH_fYHv!(=4h5v7qhkhwc8X)8VfDTlgtOkuKAXbH zJ_`1cI!K)UO5z(TJRJ<_NBE}Y8@}b~i(0vGA{-Cm<1m99=E!Bn8|o=DKr22g*qP5Be%KTH@Wde+N3x zmDm`0^16wy^r$hSltq9!3>^h-J2!L&Wfc;@4nx@l=H|xWX;IC4tWsHOwJN33nFEWX z6-R2;bp9ubY-?0|h1E8@nB%%$x?|xKI4e;|Lhy9TU|G^+-0T~vI^iuLNv2`M%!dRH z(YKHb{Q4a`?(lge7-mf~+Be4g8eAX_Okcy2E6D5<<<{+MbX(-8^7{#Vq*nEb@hHC6 zjlESyJ%gM(kk1@)FS^nit=!ofT{^IIj7#Wzhzr+e&RDTX!J3|5v+R4;3i(*BLaaQm z{VHh-?pXgPuJzbXNrLo8gHf|l9n7w6XN0^uP-_hqlKFwPyj-*7_C#stFA|}?2>IJi z16~zF&doaDB5TAEWZ_rwav+6jo)Yk7cuIs;O)WGUndoc(5(zquhW^`{HmMUL75d_fcTwM^wd-Q% zinj{Sn;CfPQ8UBE>z$uBW7nJJ^>HgTHN6~V0z`Lhk+C6j)s;0eUTUBnesa9z2ytyp z)2Vhvl2PiXrxkkf5cL^>O&uq_tF=@qA$_buKEFhLIL1(G+3Rf@AwDvbh0DszRzAlo zV)&Kk$n48z&eQFBd&;hE$GC>x*Te=@*VzTY#EEOsE$CL2hqR?*<+9ddxV}NJ`?K#u ziv1xca#+9Y#Mok`Jho{*@QpVrb$|6cdc@gr)SZJaekuSfte{P4LzG8Z(nU1WlH!r+ ze(zKpsF!L%mOn+*DbCGys=Le~7E7A3zO2Lcx?H(yEtO3ju_B_4(02CTY~+SeXo(tR zp>;yB6)8i3$2X=OXW$SlA8l3k8-;udN*QOVHM$yGm)yt25JzYCG9ecz=ESr9*h z0d&WDK0 zqcSv?4`*V}8IM@c#WIJNt&l$2)V{%JWJsUa8Wc zq3{^9$xs-Rlsw7POpVbU8(IswK~p$sWdH+oz~AgHOiJ|-!`DcfjBa;v>U!2>JkfOm zuBs~A*i~qhle$Y#%sWb{QTzzX)iWuRMpiv(O$kCOn_8_SydhY0G(HvIlCOSJF=A-K zijhdoHDCKC)PD6;La)C7ey~}|LG=K#oSA?C&@*HJieH#lgk$n59Mky@17o>;)ca_C zMvifJ<1AL>cr2tC%TP@xQg?zNkx-8OAuHi?XFj6Z&_8Su%@LDXNTxZA+HIr&k+kce znS)+If~aGVU+VK8lJpippj7q#vZCZb;!6(m+_RhV{r-?SRYvDfOc;IH!CZ>-Vj-rc zG3y{e$3o!C0)``Y9%dgnxWL4U7X8$89h3@opDE@h>6<)J5!?x>#424&r>&s>Bf1%j z!eVYib%BSH7LLR`kl1ME0T~ zj=&ojj`)iC+|WXAV&%%Hb&tpAL_51-^)i?x|NhNGq@WjqbD$@|@I3@C$-zxdgLaQd? zcPg(z=gn)yp~*4QAw)ZPE-{7B$EuWrQ2mvrVFdv}uh1np=jfEGdVxld-(7q@Vowsi z>auIn$6Q0#SD>_f7jrH-Z4=_;W8rAw-czfiTo+@3ui(r$lI82$S|#E{C|Qf!6A_sr zTJGe*1KUo8EHEdOk;F-A=UOS;8=)f!$HF$XLH!|l(c}@drI6hm4M8+_q*{taGS0#% zENYHjavWILDEi~zEv-7C83^sFm6D#VMnV7(a-o*u*Z?os$i~R<#ICfTEM#&8D`6MV zkrEN=6viqoBSDo1gQRZ^z=(d+K&)Zq8@ogVjO574;A<$Z4Sv!5{G4LHw(s zL|;Fphj6wI4p!rbux=?8R1f-6khli|WC(gmR|K4B`?Ir}T>|XsEe9x0;nP|b19zoS zX=y%xR&*2%zg?Sg^r%z`As8mVO8Ml0KS`_ScUT`GiIV^sp0hcYd4=FrFWs6AV0~Sm zDw>$-;+X~r!I(_cS{h|ShD35wav4)e+-oM&76&2w<)K<5ac)l1&(R@(uDW}PF39i@ zg+S^x7-(gZz-c?f`TXG-@AN3oloDkp%ZM$5!5gFFbsXHbL;n)DuSU?tD-vCxep85) ze(F`l;GNa=;lhCfxn|d=-pCy|P^z=clKd2*&@n}7Niie-sb_O6$@M}W4?7zr(7v!< zu!56l_yQ4zY_4L&P>@qIi4=MQY-y=%cA^;yRVFNJ7su??>H-S)srWIF*4Y_`okwqR_9h6XTD*a6eTbgY3FnM zo4Qkt#U_SZ36|b!ePQwNFysUinQWy}0PR{TVcwJT_v0VGLN3z((mtwvUVB;l2Oa6` z>w17_SLPuKmH0MQchfs6zATek1xHzPF>3+8NL5g=LO6W8@+nkBP}3`@fde8EP_H;j z%oPfb%JFhE=R=&xS=*C}3|buTXlsPv_+la?f(w&j1#F5(cpBWxz*JW20xF#Jd__>8Jg4Q`IZ`x1Yy_UV@faA_Bx1;M?ntEyj@+FZ z>xf8x)g~Jv(6~c&TsJ-=LXBTFWYw*?SFG+GEf!!{0x%e#LwA+Zb0Tkv8JP@t8NdXR z<=SW;xm;QM8yf??L74rR5Oufk=l^&x*XwV?rYP;AOx5!%9{@L2vp`e3H7AX2co#%L|x=Zj?nS7 zQI!rAm0hZQsvDG$x7qT*)+FbVKO#pST!)+*+9;DfLBwU8kdeHD@<*PE-!H%+FU%*t z-hl0c$AXtsF!715?1!03_n4e3$g6-I3wgu}@;<62J=RqM?TTVFAN)Hi9sc zBB|Rk&P^x6rcPNE0NoP!;FIe1yk^D#&@K1OL68A&=FC2C1fj|~^b^uLLffL6j7NEO zuN~1n$PEx&H-uwo`_t9Pmg#gt@9Wp@yeN~dH?~-{>P*%T1BfRPZ-XQW_LddX5*AtRVi`Hett&SQm5KY=884TvA%@%7n+cA95y6O#)ASfC zgp(K^5C;bQ5j*bC4VLB05c-ZHu>5g4RnKU?L{L7cqK1quE+mog2k2;O96BDZij#(U zNX6)HkCl|zw=|~uqm8MJ)pk;F?@xjCq3Y|dM!w9g6RM>0EOX*G3|3Ob^twOX^)C0WRi{{ zZUZgkjOf}&q%M$HcD8w-H&0qv#473fVDZqFnZLA#8nc_XHa7Jwj*{l02 zkA8p8UuqTYI${M6=wIaKrSb~S4P7Li{K}l>H-V&Law~D5B;ZELC8Us&M`j6$Mnt|= zs+t>;S47IjuS80bmm*zUKWuFRxr;hCd7h+m)4)6@Wk~Mk^ zA-;JHiWg3Tkt4<=#28|7JVc4dlf17-&E-vq8a|0h5T$v)&%b&ud-0XzlXouNb+7;R z`9Ig+BSclq-age_dkq^x*;dO%p+xwGADj@I1+){s{fuA#wW|dg!OxQTc`3I4d)ni~ z_TC$;WGc#pr%Es7_J2FJUg2Fg{wfmLc^EmT8j|o#a{aBXdlZOzul|~>Sj6wk%f;3& zPb$L6@|Ea#{YV9P3QyP;gkVp@(qs#=2FiM&*chz?C@ZxtKb%X_8Eth|%x^L~6VwU`>k~qu5L1UUOL3^aijBY)v?((}(G^*3o zTp*TLfBQRaz_Qq@gH%BJv8f?_O0@4>EL{8)hCG&AZ89^((W{arI^r24 ztDgjv8E<+bI}UvEkWR}97m(=}`D3bO(g5tLR`H9=r|%%aF}bqSojyl^Zb!yo9XU@t zu^5MxrslT~P3^CFswJe8R9%$M-`dj5sPz|V>LClN*4qbq_0`=moX6F;>Vl^HWo4OIyda^FWn>fx*g)Ec~ z5*Q$bImBFw2{J(1D5)kCO+j-H0AEJPXV zqiA&J`FugAStNB%@ngVLhr+s%3I{RT*;dA-rjYA!l;pIrcml3~1sx?C=3lfzlunO! z4>X{wxDq5NULqROqL_FL9r}w20|zIJd0`yN#<(1GiZhgmj*R)nxFS%fG>)Cq@DiEuC;rJnJKDQ(NM_~)hCGkgQzAS*Sn?^!X4 zVqcBYbF6Q0GPWMKQ=ArWWR^3AiKag+Uxpd>>eW%6nF?mJoDLgy8s7_ivEer0&&rkg zP5HR=Hf2>e%4>Nm1B=jLexk9-y^#zol8j90L>okLI$We_o?+{SB8LN&>~OD!CkWl( z{}g#d2oxNUL9OugPCMf!qERy$aP$U#oy8=hOGb#iN{^N@ybR!r(hG`gUaXf`1O(Ys;#SbTeywG-Z>SKmk zlre7r+$#)e&}{z;Qw%nd9V6xma}m!FxJie=p4bdlX&#wfdBPoCSV8|m;S?iFFdT~ zJ~%)&R}kQY06Jr+&b^^zS)GPLn8lJW#hE6%JlV3wFoFxOf00!J7u8j(HM?H6f6*udl>n8A{RI8h!eLE zPem7T9zG@ypvO9eZnBkasSsbaj3L{oU(p%L5{zJ2R||m0womVUrNyccC+m$|hVE*L zO?9{2rF07Zv;38CY-$UV?9D)6&`!X%!w3&#lJL0c;+A?<)6v`*bf#Xl1L=NL z@J4a;%B4pZcGU9000#D{DEwo$zU%yema+_c4vw3iw*u*@`lfyt2`CO}XENKsCj`Qb zBrjO+Azf`lLKc}rv)S@^#!iXDDELjB}7)KI(AqEBdKr$yh0+)GEX z{sLQ!nNWC{$=0LpodPd&XY7$fdk=*|d^{4nvr@U!ee}?tt9AYAJzrTGA3eN-kJ0g^ z(H$g{tW@+J`oo7VJ`@P>!TtSQ{j1kpd`&3C$FI6~##8C|oo;??bjJmUwXxCr#>U2W z9A3gHl|+jW>>XRSo*dVWf zg#X~f*$>CV9#(}cRYtY7`kh5v-8n?ttZr4YeIcW(%1;}oKSFqC9#!vPpYy8K*NN}a zcGQIa8&<6mpMBw@mtFS4zRNDtPCjw;=++0DPrq>B=o8Oe(td+{qjTG@Tmp`F{ZyTAASrF!+I-M{8!vQZvr^vXCC+d>u{<$vq? zWY=$YJ=OI)U4PK^m9DRK{jaWXcKvnN_t0CK4Sv!2!%*W3uCh_ePOBkgBO9WB_*EB8 z3TKICvObNhA;g2rgabznGYsqNmGlPcoN2TyWC227B%yu66GKJNd=pgAAw)_^)$mMi zCC#n8o}tfgOKcSNMyNxwR&`3ga%oCBl}8|Ch{l~ij|WRRMc2-?b6VY~v%?>$)+lLb zvo*~u8rJ(;+MFAYu_8m#5tN060~XDutI~-Ia`r$D%-!xtcf~1(`#BphD@MGib$6Gt z<6!m1b7|58;IFCMZy;FjfpB&jOy(_0Tdv*B?ZPjd17K!EgY{HHP(%!XC!x%=-gemP`840oGySL zPJ_Q31k>3WZ(2>eY2~Y-;bgE%g16&GkPywNV5B5_vq$tdcydmBiN8rJ*KdxinCYwO=5e z7Y`&`ZE%RYb0`bp=u6FXq8fB~LF9kE;kitvFPivJH2R@LwCpXu!Cl)K#LtC!eR}=3 z;UgpY9ew!F5a+HrN^UZO^t@R4lW%y#RfDJ3zAUvaciKStm$lIEd%nxvVPt}+>eJApl#7{I_Ixa^X8EGJ zc3Vog#or`uc0l35v>#LOFi)28UKR+h zi^@%4DpCa_1cLAG5WMhi9)z>RMYlK0AN=6oBoet=u2SJ6k+|IfF5fFh6h9~NB^QHa zfyZ#IE_Fb`Enr9D6ygKLO%syK5$Wd65$uT-Ex2Q#wF4)M^wRv`QW9xy8Q{+3(jZA1 zP_8Yv2Hw$~gR8Z*w`Htu_%WFI69fz+8HTm{%pielR;K;dFwC>cXDPk~lKbfdW!cOK z+uwCFV+?(~&l$?>@of+ktELq1QdE>vN`*k_xGpUNk0zf^sB0;1L#ex%ZXqsJ+7ub3 ztM{whVJE0oZb^NwN4#9>Y&%=U5I4Q8a9^wd*q@*S%iFh#Y#J*Aigg&iT(n+#J zeL=a3;QqsDZoy+D1pb%HQ}PINa#9`DFBsaqd649C1ZWx2=`FLF_P}RQpea57Va7H9+qHed_7S_W=K7;A30gSLYTZ6m_E2=1`4o2UyYW znLG!0pP~A7HMcmpNRp&Oyq7j)6&IiH04z5yk2DozsE$!YTA0nOzUSHM##G{@$kYBM zG(J4z}9~fueB<+l4S5EUW&OlDDry{J|n6kzpZ|S*0@=!tjM}C~uV`nTbSS2ID!~ z9WIeEC@$b?04je`8I-5MvC=N=q%Qteq6`qNN^dpS{%oOK+m+92D)CLeF+N$Xk^k{! zTw<$W5ec>wkWuY_B1>^C3vfF+6}X&XmzdR>pUS3||7^83=_5u?)~c)J7k|-FV!|lD zpKJ>r7Pu~HJ|Y~HKY`l9ZC7-6szPe|P;~HWnImZaV0ZnX3vIC|D_zJg-sl~yJSeZCJ(mV>Uv6eDyZPM7ry=v$-X}tY&GI zb4*nOM``*@DUPSaXeZ8S)RM3+afy&~T-K{)74p1)T~LlQ2~^EJ7}aL$ApC&7*wV09-0_tijvK*rgfJZ1%i(6)wEi7*$#Td=E8n;mx`ly z;HpZ&Oh(;Jl|1T!W2J6HzKT}wE)7b4Cj;(|D}!dKUIgnrF_=p9x^FJB(P*_AT%y*c z)f{~pBFkHdQ9w`&5e!xE7Nn(w{Y{&7C}<~XhsjtKbPtjFp!A};r&&7U%l)hg3QhSJ z$S%JKCgh<9T2u3^Af!URc>97ZEXH>`Xn&e1D2AF1zTbtNO!R$+=37&mj~&0Tutyd$ z6-%MRI~_-7aFF$r{GLoJVT=SQ5A$mX%A`POhalfE*nEJ8A?u2>zzz-jM97aS|D^WG zf$ot^88l~e_pU9CpyeimO}$ZL!wv_UZ{A@O(S|Zq+tZyJN~+x8G5ugMpGIs?TXXY= z-NS^|S@w+w`NGz7V++$IoHnMdd^MMwQ;wvuq{6^@GwaZ$;>D`0H$FQjgOR4~AH(n! zQnaZN81tuAXPk;QLtV>AQzKVfoWrfmIb<`Th&FJNqbw5n_P5v#jp8_{4qI1~0x>iv zJU37QaNtUVK zWk{LCXUpg6H+vs3&CUt)BPA6`{iay+e>8C zM!J<^rVXQ^kj!BI8m6#xeb;bV$Hb*dwXHO*pZ{4kGJaCDql{&-071akI-t&}wYyZ0 z?AJa~%^~Sj+xyh_{Z$FS1vk;z<$uXgd7_%f36zakY=$5fzL8uUf?QxiWRLjKe0P8Q zvQ9GkPx7R$L0jY`(v=nvGjvg54!eF}z6im@g2 zUluNy&X;v_LkkE%Ce`VTF1>?RqYiW-)NeQ=7400LqNi2(>z!&zlC8Q?pf0DZTds?(AQ^!BtsUv&7PSeK`lfFG?pLT8RxHCIP zbJjcJ>?Uuw*IU=eWL|xjw4-D=y&Saf*U*-s&SdqQ@U&)b`BSpfx;{D;;>Y;3f6r@b zWg$;8%1C{#T3bG!TWe*%>B0Jx@%36-{sECW)ia}vsn!1Y!FszNmwqK1we!IGF+YxA zwS5E=cI&zOV{Nv`%n}bBHKl}(t)2NP^JvDeri`d3UfYbhzv|DCoO68R%-E=ZmGQIr z+Z#`-XCKesme&l=}TYs2{m>w{cqmBbVIZ7BNG8he8FF8Z`_ zlrH`j%hR+90m1Iw=ZB?fw+_ro4uRPL|GT$0{ip4a3d+-7mM{HgPH{BdwmTbI=H2TN zgBxUy0)EAC)jn~^ii$*dk|C{6I8n;6RjVozNQVhQJVI*XNFkNdBxwso_jvpHH~6gk z`JkXH=3Y+dqXN~NDzuL&h8|^p*!~U0)yuwLZ;^RKeyj*Lq$RL)uf9=;m54T;&eW0h zj4=amEQ*Wu0*c_MUDWriWSBvu=)u< zwTcmGv{yzdzfApP$*%d~*wLg6TcYhN%x=3JvABr&l(} z=Q6JC;A(DCxw^ajyx12?{&W$y#1*Ae%#MsjxnNq9uOPL-LxD~cKV)3#gzJ~?V`#yR z!Pj(bOz^sNF+(e@y``Mb=?BPKfSc&4!;_+erQ__|L}^hzSl&(IyjXA#zEy>MJ>+5z zIwZNFW9{b)^?`x=_61Qm;tPZj6w@#9yix%_woD=(xAq^F%tCbW?FHOh%cWhYZj5DI zQuRQ+m9YZkq8E{~Uby_iU00jEnbgfOLc83w>VJQ3UI1^lArF|(K~Z$^yF`xhbsf@c zy+JA{!VO9zg~+TpOMlQXds8x!h1bGC6Q*ADH()OpKVL@uI!Eel@^9DC#(362FPE>t z1K#tMGkCA$XfEPkUv`-)NMTKMHS7n409eOMC@e<NsU; zf#zl&&4xZouf=_O@niC*93X!RNGmCsQwH*l5mK_(W*LSdI|Wt#=R%$}m({$a0_K6-X-`VV=M(yQcx5Ey+Q%ckg~%sx z{c{s#^BwKy*ElStM+`s*PbhhFgxK-j*bbqAta3tGL`5PaP$W;*28N3NM-gTGU_Pug zvJx3wACkc&GLxdt>H#to-+=pqb|Yc%N#_GalDP6US4=J$*4tvijKHPk<979nABcwk z{!KmkdhuIHtTffJ_Df26ty$d(l78qTsGh}nCOJnI*STmichC$>hT{88^d`>eT=?Z8 zp>1D-eF_JwqNe61+E&)}uY!5h?#f{$9aUOrDYQ%(U;Lszi2n7dnyheCQDI?WdnLYn}4_gFV-qLD+-^CcZ4D@wY9iqEvV^J-IXh@;V(5-Fwr=g3GW>-2jB`J=m zOs_4UnN{qNHcB2ofSsLOo^*zI=C@8zlUOl7w7C zT4)rj7HJ7C=()Oe*@@ozKx6u4S)1ga*MKLl!2=T9< zc;$=wTs!lY1LPe2@uaHHtKaEd7mzChavA?cpm=VU|G-DN5W=mg>x%yK%+B+Q`rIpD z)LvM9oW9|m;@RK1D#a65-+YI5d;5XT^?~JAn&cta_ReRYJT;-WBFu7i%|w zPb?Zr^=Ook0ab;m38GEp?fRaz=N@umd%QVfl68IF8uoS<4yht&H>^Jy7cO_J6WJS! zZ5}OLF-il{atmj2a0gZ91(rot$o1mB*ar$)J%|S)VHkKT^o0>?D;+`8!l)j7Pi|3yYrFsJS~$+ZC~I}=OdN& zPWhU1t%;ro#e4f{(~PX`JTHi5viPhW(qBl&r>AY(|Hp?b_sUQfNWNCfw*7xtr=0%h z@)+(E>SDJ4(5Evz=aCJErB7v2`0?D`*gWP~jjjMU@#nkV$Z;XsKIN7*M(Cs%9bjVv zorZu~cJy-->qnF>sei)P$Z>_gUl*ZYlrF>rs+;`X8ty87t{MalwdQG4S~-_IRu~v4 zwEvm_x`Dzm>rx4v4uUl#-iM*N)jc?v&@33X!BAO!J|bCl9J_4aS5~QwJ*WK)>SJ5F0-&Ik5h5gBT(ugWoD6IrC&bbug7zA5Tgf z%E0n@<}KtfhZSbYR$1hUTAc1=FsBs=UxKX@Ci09;8GA4`&k<>#yg8Yin?a?BZ|dy$ ztYkKy9hZIV{v24{nwfKl<pn4lGn!Ls%}0;>LUDyGAf;2T1g$Cs?a)Xi|$#g zi!fIC^c>@h5vRT^z4J9IsDeP^L_BpSFrzd{Fd@tX!2>guB33p3xwh6$!@;PzIkhy|uk}?Ywf8D%H|)Iky?~w} z$8Pu*F_;70`D*)rSG)82cd7sn0n&r4YaLJ8#5Z<60rWs1-4E~w03g0j@Qv_Lhd{3x z$Mfw#*G=;4`v$%RTN_eVT!dP$-CYfPO2| zaq0{Fko(q8gKTof*?+}xkX*O9rQD~4 z6{N1tSKLSKQb&x}<4L`C&eGP-!8RDd-&`6+U|s4a5Y>`|EdDdd;KC5;$mEjaKGRi~ zRwr}GErLO0k@ruFg&zUkLkv4ta6I&viPCM4wc8+vN>$^1Joimea` zcmD`$MEK6g5hraP-5#?Jg|zl(^OLoD&pRTK6~U6~U>AukH^-{K74H(bCSM04K4~z~ z9geAgsujYXC#0j1VzC&}rpA>^tq8utuF+XBjSOM_CEC5Chbon1aweDe$mWnH_&J^Q z4t}+gCv#BpWWHV{9<~lacWkr;<1@)*rE;iE-^ywIKmq8)o)oULM8u;A!yn;};_c&A z?T%#o*8wjz@9+<@dL~mn{k?_4dFrGuqloZw7;+fx{c*3AMru$+IVmMKM_R7Tfz2#D-QkgUk5QWBUfX$oRN&%dTpvT_wyh6(9dt1n))?$vAU7I7vs*V4K>-&G%FK!d7sw9y3GNc;|YCY@X!$Z9ds=!{tE!{^WIA&gZ zVe8IoP7dCDY*%e%S~fSm-?mnyuHWVXl1D=OMW3!G+-#=_xD%jT>&LXliiMt3fAwFx z_UPB?ZwIMIw4``U%0N^9{ug~BgC3C?wSaV>km_v`(ngzP`ta2r*Dvg@4u^xFR}AvM zzqfZN7~YJ5Y9XA^-i>2=I5<#jKiWG;bY>`%)D9;z1Y9)shqSW#(L&9k`q5ad{V$sS z-W`&VZO41Dc8A{oenat*J|>pH@+njrHYd-naR9^c(=B#iI7o=ae?YM2-luqBo`LJC)b?Ov= z96)rOdeO({Vr)n`-UV&G5HIBdqoWJ&Mp;8T>w?F86U9PjS2T6fR3hzik*htU6m0Ez z*IvN5{Y)oUAiLUADBd`Z!JWf;s>1~RS27BUNj(yIUk7yMj4}GguDiP43L4?NHro1A zBHN3|FDTd@^PAeLVAy1XPo+1_cFb}LAY16Y3bbZP_8F!Q&<9*p=a8>PRk(U$z3?~i zjm?@_{^cq7^-Xu22fjdj$H0K$+D2n)5#9()<@2XxAFrZ@FiD)AIv=McLS7fA8U`v@ zxt>ph6N?jowl<+{)!4>Go$=Uh5j)=6yY_*5paP-`Q$SsWEYw zG4Xmd1e4+ini6bkhMn{{=eT&I89S|mo`6T?%h7Hp<0DR^1 z_G9)8o+XbJ>J`tOcTd?4uB@ko{dP{VpF43%*zr@abbNTl_B=yK-#juBo*BU>yj~bd zY;&_$ru^jCsnzc*v+g!mYk%qxETre6aFNeLD11ru$52x?1RqOJvgt9h)nI_9Ru#&M zK1@KLI-CJ>j`E5MO{r`eC6GZ1s!s^(gNjLvwt~yHUKMv^jiCkGf z5G??^TBytWE!b8&oy-51WW1w&(0z_*(Hj4RqPBKCE8~4;R7j7QfRj zIBI{vs5DqgFkGl&N#bKcy=Vz3Rsp!aG8iFKSr*u%tU4~`)991cO$bNGTUxU_zdWh& zk-r?z==g|hSQ)SBSwVNP8K2!YH!{}{wG3p@Em?@ z)@%RmT5eWhme%u=Zh}|&8IA~zVUUQ#uCFbMb+rsqNT{|L9;HX>s;%K?=0PZ7TtSu? zNd)kwP2A>XnG{%V<)*1jRz>1#G*5f4pRSagrK6oi@(xgA%w#L6l8joF$%%gJajH>; zL5P{h0JtU~-3&z|U!vqTDE=5_h$Fkzgu^te5&deFwp2b;22@!yx4IhP@5GYBm)C06 zE#$@JrNE$-eWD~NszvtRnEJ+EEb z{*+G&hRc=3VVVC9Zx{Wr%Q*Qx^lnvj!&6+lG8az5hAX zek*9nm**4O7445Doxev8CAu`QkD$eoSa4H#d_24QhjM%boWl8zxGdH<#jib!zr^N?Ru1``{5s z?t@3hk4)CeN4AuzV=M$#qDaEPL|5?De|zOULM$h&eGI9G3j%%PL=pcH)aM<_X; z&=CKV4Jg{iPj&%TQJ>glg*Wo=olc@wSK}YO15TCFCPZrUIN)6$wVOi8=sXU)Re8j<}Ty_(sKi!F9`QS*~0Hx9wk2EV{6CoN%99 zzF}FfS0^W{?YAts0t#71DI1#$@!0YGpx9{lf;C+LU_T#o7jd?74vh13{rmDHqWwy} zE=HBUN+Jf!-xEvn%(xXN*p1j`^)|Vt7`3^k&vkp?^xb%+FYcOduezrF`5Ts(d3#l> zwZHbLR_ckxiK7b#?vG)zx+sc&(xvx<=paEY`I7c%6n`B#tav<`FOM=`MzKFl(*cDh4rRrJZO~?SvGTHvULi)qD{b4L^3x#C5{bgXE#>Wvv zF#(K@TjEbPIx4mU!QZsB@3sH6kWQt3#g0YoU%|Kf0vD6n*ccgekZ$+}Ialqc{axQL zTCU7@p)jMqy4>3Y(jg(Wu*-1GqwkoAz@ad3v^==cOS(+o@Q_8Ocic(E$o6=RUpzVL$#@P`2eKcy9 z%i_(Q58JcVp;V*&xxW5w zno`0Dm)ALip@v#vUi8z8SZ2(5Q~>TW?kl&;5%=n9&k=XQTF=tObUzQM~0^=cxPKyVbprlNVy)&h4hK2 zm4x5$Q5=<)SzM_*3g;(Y{uH2BI8)(~9DB8kZ8jXX59oPULnF*jvi%s}5(9<!IlgVhp6H^UBnUHEYHhk*akr5TE(Mf*HBCNsz>n)++EOM=Bt>Og-JQoj; zrDbq|Vgt$CaNP#hYjn6uhBw<;wrn7WmmT87s>9=TlD`ku~Q~xDDMn{$pA(9FN*0=tO<^k_uby#@g60n3>8p8CnFMmA>Xv589GK*H7i=Gm1 z&gk*>$K>GSczRZ%4`?$SWOdc_U0>(2o5XJ~8s$>)%X^ATHRo~ejdJA{c}!At-1@6O zR7`}{Mf&!fx zw>~h6a^}GNV6~cV@1_6W!pL}P5eX0%oU0G=9dj0+((Wu2_Z14bvE(FYRda6sfbP|; z{l%j5xjQiq!|X!G-8(-=F;(07@_SCKcqy5}$_ape&h$yYPccuSv@p`Xnq#un9v&6P zm-LaP#aDi?w0I=R-q-cA9DC(keCikCRMW6`uN*nLYbDZPr+q@)Y+%>nHD1Q2;t)O+ zy=V(&ls-=h9~)TmUg7k0_#m^M}pC;v06Ck7g!D3#NzH*8hw z;{=0Ns-pmioU@LD_TW#csFd2ttkRlUF3B8mA}$Hyn>%u z`*|cXJ5u8bltp;^Cs~gQT}h`%o-Drahgbo`@1tKv zmF$R3RkRer&c5&E;&+6ML4TDJZ(4r~#fA81yrxrg+W+<$lXjo58OdpJAO5O*yoj>? zML!$Iiy=d6z~X;Esro-aX7#@T=7aNcy1(-sbc~CB+EKkw&Ar$Oo#HzQzW$uNi;utL zUSGd&tZgmGqy59{2Rk-Nx%Qj~SAE{aE)c;oP{K0vI(mXe?1;S6Xxn|huOhiYU}+$0 zb%w?|Q5FTVUo+qI0K-1!5*FOk zV>y!Jfp2!hd_~yR!g(^Ie7kexj0;wGwZNBmE-Nuu3Droz2Q;%epT)EI<;N!kT@1{J(!nSW znW&jYoijpDre$?tMxlFFY_vidZwLf~(!w*GwGZ3#gY$EEG0ojv2iF_D)98JB=4KZ| z$py(Nzr#!0K}Z)?ic9UqL*;UA79oIDVZpVYT{T|o)tqb<|$3ZhcG7kigxkU zo;Sd9GkYPL5JbESXW1EO4)2?qTDWlTE+~l^()I5Z%6DBb8H`1<7u|a7qHI2(PbLd* z_fH1G`qs(H1yA>6bIChot+?L}yvd=fE$2-E_kKBYM{+d(bY-##AkM`Ev)LfPz|sL3 z#6Yn7`fR~2?`4U<9GIvuPYo$-a6fKJ{NN>T3%qj@;}k7{>P<$!@^P3B`V|tew$`*5 z*@SKI#v6zX5FgqCN;M6L*y^%KoBYK`-@SM5yZ2qXv@|%dcZc@SOu1fgl6JHH_7LgH ziKZ&-`bfPvJ6mmnE$b9iV6I+8Xuh;OKk)3pe3|&EQc1Sl_s!&@=4Mo>1SsL+s9x6XSMy$K1*gE#p@lB+<=zNmvDZa zJ=Z0|8r2B$QY_>ik-)H!z0XPx;QeVAiO>#uB=zub!9!Pn=~=JPo>!ugeqeC+*(1Uh zst5A)({|d&QI(*gkhEI_pWzg4#j5UnK_`#Wo+Qy|mL&;ue7SJ7y>J&icUzfCGLo#W zGL;$Q%wt+bX0bTrpH=C3(c_OwN+icQCfvd;Fm3FOo>ha72uJbgD5r~D=^T^HDUJh+ z;?rD-oxdG_t_iW~De+WwC3aSoeMOiA1UbAz!6Oh7t5o`;(U(CfDi_SO^}=K6*vTiv zweks3tNehFi-&F-fbq7iOD+CX6As*VQi3r~#?tr3((Z8-E(7`FyA+6+SN(f8e&_H2SA^vOtj@X6}@JVX1kF5Y_gllt24BhCA!yHL|oF z5`;VM+`NShM5d)ZeMgCtez^O0sCkTe!r-;f8a1a4_0x7v6}%%n1vSeNuP}auAOHd# zM0;SJK^yAy+XFwT9jerC!*pMp-aes_`7SY8vIHuELADX$i4-XutB6NFya1Gg1%HC< zB&*!!6r@$m=#8-{E?H%{h2Y9EBC!r!icd#l_R6dE(4Uj^@+QF_rt7-R(J2H(1wYqtI^CZs!kvun0 zPm9wJp(nVT5tz(lxCl2?J6PbB7#G>zVBI6xybv>1a(NRa!sSlq3Ypiz(`fXH#L1j{ zG&0h%YN#oLqOxxZjJ2Nu8Mez;nywNdiJli`ihK>|BGaL>+VZ==TUcaGFY3V~; zXExKKNs{*XI4l;sttFJxt@@>x!g-(7GB+k;cORkNB;L{WL!;bCwNS_c4`Gdx6@XLL z=)9fJ6$V;&&nNRqzpfpf!Y*>X3i_9-tBfu*^w6nnzgkAnDONg5$?8g?4B4{wD4Moa z7b>En{uRL!54?$NzaisJ8L`jE61Vsm{eJS=7>NNS%S#@vN_UekDDw0P zu!$u1q5tefKp^LJMwB9v>Ez#@JgJRxA5u0zM=#vF>)qsM#O}c}^xN+xnr!&mXmWcz zMxM~fCSuFNlT5Xsk&aik*dUF9I+6@)F3F3*tr+N0XczZ7aiYDQ(yo&8$M4$pE;6|2 z1YK+opRo>2{iG2Q7{lD)cf4A7q^)E)$P5!H{H#8oAGOJ)a7@zQu)4_NGO9kEvwF9^ zi&cnai$E&=;J=;GM`5;gu|)a2@HlJHBdkSYMTVghmOxgTRpmbYNS{a=KeJCl-Riyw zq%`2yA6dW<`&2&vca_7Hhbon0*YaSee9JMA6i-fuLQh$tg*g;(@TmIxuUp7-=`z<= zez7t(+JEf22*)G;_c7C+FwLh-b777|3*i1xF5%^_rd-GIwHlIjC@JMSy>LqMn$E(h zomQ|=MKXd(nT1ZFPAsJh;r-Lzy!We~_eaG`i+2@^hcCCa-=Fwd&?PTwhC+{oLerBr z=7=3LgwV7AOAStGY5j28-q-THN4WFZV)1V7JiO12JvVtcWOLJ_q0r1EBsksvYxvXh zr7WYDmJ4ah9pZnUvOh#-&&_CG4&wtN5midzfEdBRhpYmmKq(d9VJHg&g;ok&p__o- zD6<2;_{z@EQSCyT{TLk+7FNkDa#ksRX&P@;yTCmh6uPVA84+#d08fWx)3ats%JaPBZi9t(GdNweBEmDT+`4DbM%pU>7v90zu_umn6A&yq4*_;OtEC%^=$_GIc zgO%g34tiK_-=RfalD*O2L7A1~)pQUdqPzDGlH1k+u`5)!temS|HzFfq-(6CVg(T0(HVLSJkga!ralQq7ls&rh`0Q4B7>eIVzcu7tR`FH(b91j zMd#5`f(V>}Qtrv{6J08!NQPy0qaNcM;^cPVr6-;hy`u14;TL@V3-y8%e(scXp?m~} z#X}iizvP})YtM|qvy(D*OmQBLfg~o>De<=pvjaRyWVbfG;UzJpIh%U z9g;*Vt9{JWkk(MTK&rpCB@*ApRv75GOw}XFU~H~dEfpo=&l$M-a^Djk$Ive+mw1J+ zvZ0pZ0U_1=Wg}+y;bq?kqP zWr7QzlEIjrnC`3V5e#anAFU`*7x&mP|9j;}iE#J}&+KY{Tz?qMz8^m)R9}&P=eZvP z$aiYjs=ie8WP3&TfwjzML?8#N!VlldcL+)^GLX<2xPL`k)S4u8LzZlx^;bzG*(nJ* z>#u<7*BPMC5oL=<78Yva4}oAdtO`lv2AxVd!~!_)=LJrm>YhdN!t2$A*0A2-|KU#?IsAt9-Xr&R_uJOShnDoR7Z84Gf| z@^zto)G{dQL6*Zxqav~+C`Up#I9Wm{3a&N7Qp7DR#gl-ELyAfizQ@L@7ffWw(}_)l zGDxZ=FdDF7yA1whA`0sn3|z8(LHomUZ;T;BVv>sfig=95Y}9@;)nlcNoI9Mc!`|kY z8?ef;Qk)jEvpm(#8ZNmi0wEH|#p4bcmsZ^wlypsGu^45S2(HFa(8HV@tIIYC!0rnKobu#0f*jN*vHnX+|!i8P;{K zb=X^)hH)a+6#Q3EE2`FI(2$*|?z4BN!d8Hs^Rr}k$E_m}#R=APFiB@pC^Ep=phse(v4@V3n1IYKkw7vT z0omTFk_s*cQnaJBqMi19)(x2&jHf)_W{G4$f+gkEWahBUuc7L*Y9`K4tZp@vG3e8M z!D9L0Xnm%{+c^t_u9D|`djT#E9peTBUF0yq zm^vqk)86;x2leIUFF&|^&jD!s6E7WTe@O_sRj=2N)pz3v%#x0X^~JB`#UDNY71VUe zG$fDJ3$+I%PjQ_dm0b7H8huHq`V$A*--dwCs2`uI*VCz%DCr74sq{tXpn(5AI_}$w zsUh*n!Y2Q_==k3!ys%fR9jMm$PE5^gdHOZd@$bXuR5IywxhvRg z>rYsV&Z>hf!hS{8)}?bTLuVELkXWRsg5ZJ4I&_W|==735seJ0ad+@5qJRvr#Gt0e0 zJZ4^Fxf^4Xq84B^6}~dlKNj*?Z{bVecN-I{=hZbrAG5f$Rgs>a7zZ`ecjsd;BkFmL|AZDD4jWl=)Y)ZnUyNxH=T^xVx^x*- zQ`xCXF}w(J!rVP^_rb9Z)8SYv;r;%9pr!S$fL6|ioj{h*-^K1!EdDcLJrg&=QymA+ z`DwxHJfC1?LDdX`k04m{ni|Y$< zc~;7`aw&1IF9SG%mWMYKSiR4lv$L!iueI*@)+jMhmI#q>WG@QL;xE`|f@yKNgC(-6QVZ`>)t3iDoW8`nrIA`SnL1ibluCQIj1pt-C+9 z91Q+^%pDlmL|QVEz9igm?_RB+G#!y!EkJXFi=^-{Ec5xGah}?;0_x;#KrptgN_Q@i zBK1fhv@ex7W9^tgs`y#PVaMn$#BSZs-1j7xVYcd5>xK?{JgEyB1OsggR2L#zop4O$l~9=V^gtSni{an)Zpi4LWy_?6X^Uo|F;Mn%-{ zXumS#36qEVvm=HJyW*I5VAfL$H^W>W%IIcI_6dPnx9I>`xW|MFs^@o@dv%qs4PZuL8^6hCNO)qBypY@7Xf+azIf>*w$=Mxq31C-;4i3h`)`xgm7-N9S z8O3mqCk7HkAO%iw4?ir{8fPV46DKuS&T3d$8zfk9!$xp!xmukgadtv-&1|Vvt2J%g z!6nH+s9$kHo85W^kJpW*&3_xw@SIDfNVz0wWCDTnVv>zzyS$d{dXXsUPbp-fTrNbC zq=yQG!w02ghzTTRk@NvZcgFKF-3&fIlM@9aw^U5h&ulmwl=W+U4eLYCIgJknF#zJm z=})07DnY-~@Gnra0BZ~#y)Iv>)ZLaTpOBRR!al^UP-W85SH)=EYLnNWblKCy@%O{#3^+6_m= zJ!R+Y)?y+$@1%t}7L_1sxR_g--P-CfUfO-D3Xd`%=)Ml*FE&S$s6%Wg8QrX+T{gCd z#L&#+2MaHHR(r?*R->4~duD?KCJ{ZA0$T>OkdYc!%Yw&L=&Wzksn^grLm7#4TX}RP zLOQBU^R(6(SX<&`;nOBq0oPZ)+D~hyLU~Ncc{WSzOJuBEh`GhBvs0@L^{86;yr5bY zjo|o1kdz-}i9c;sZ2$P|wi9{M*J+f9Y1vM6>}8Cm6U6o6_Hd3NwK}4T5QdJvLhPib zC}(Od+eKxi4V9yuG&JOp;PI)#={F0N0ZK~o!O3H>wv6~5!6dYoKx=3^d5iaife z7R4U{U8n5~mAwUZX2B~zUe5689~hEr#aBq(c=`i$YXRjaz8YNZy6qP>?!6#~>t}^^5wI0jJA__nbs8e}!n}MJKviYh_ANVOyQ5i7AIPi|dW& zyO=d1Lxc;?Eq&d}NRt}b$%@QBP0p5F+9~a1%=e3_w?h@)u zNsF$X^1LRexIk{gZFT(&$DVAKuau)#5-}*7T&%X|GG4j!BK&1vlo#^tADmmiy!qnB zn;1Gum+Hqo=COB){#~fZnzc)5jzz+yE)8RSxO9fVlyB);YY_Mt*t?xOHKwSL2sdY1 z%k6ucrKBtChMT0o+9gtfPMoaX+PQq>E>T|HbvLt}EtF1o9o_kFrKS^!pTb#}Fv<@! zOS@?}aBJj%wn6_ph?Zuzl=-Y8gIA`;tFL_*By>N-!Z^L-TX^+$#(}CM_G`tTcFI3D z^ftGzhIs^zBwH&d-j<5TmfL^kNApq*t+uf)DAQJLV^7@uv7xzwZ%YBuHTAKhJCA$u zcer%djNHNp&G8PZ)9Hgf*c{(Z&BU9%OPg*eK+&4;)(TEEKyA=8z|s*iLQJ?{IXXqV z`cvia-vU$|o)$5X)xQ}l>?znqd&ahJ+_8svo834@XpQgnefsF$p7=Mz(QUC*BGUe9 zrq{N&aNRpE;35?61_i+fqHC6NoB}WT5Pm41WuC}LP)o`Lc~#+Ngi}@7?M2vvJypN3 zzo1Hz{xk)P%T5t-fol~5iU2KKstl@rf*M(^d~aOI&}&c)o)8NFSEcP6ub232{i_P==3rB?a7EW0)(esi9-Mf+`iv(4qVA#3?fhhWtxC`4) zQcx7qW-RJNV#$3|q9uCQKz`E84B(h!7`c2;TnyM@JbcI{HQZa^?gbQ6JgI;_O1s_; zgET2V3OQ8H!m*N^0aZ6TgMAZ{_3z$GwS1ibk4H69j75`$Xh7@f>B)Elu{cq`*%qLR zu{hAIA!Bqdt9=KBSTtI9qP1!*pU;pqFPrai zI2aWl?D`Es%wT4zI0+Ua34&IOIZa!~)I%_xKlKt7T3u{{osctA3}6EIM!Rl2tor7R z%Qhk$b-WtXWpuT_3(1v-2{raZA!OO8_nW+o>B>1X%dc3+Gp`7<-kkC;$)l zAVv(-7}#Cv_n!*%62bhSE(zqq>O;{rP-n{r?u;{iy^ zJw>vh*+b! zbkt{ReKTZ4{A2#-x3Rj{Msv9uPX6?t$c?L5b(8QTH+J2*aYoTm>k|s1hcLK0yOhP( zp94y4G{i8M@fQP;^-<@OyLxgvdHGu4{qmcYHDh{`P|wbljr!C&)5rDNuMd#D7Jsu? za#p_XkX-`q*cC*rWc%~3br@o|u;bba8J{tN;lPXk77ZLMRA!pib5&2y2ZvpMW0bV* z!H4MDv|CB*v-ZqDx-^LWFX=>5PI}8FNQ}vEMrInR67Fe|hR04t(_8l9mJm+vw<5P= z((4f*Ug))vaM7Q!X@}z>?Y%v>BmMWt1rM^p`neMKwEUSo{$W28$GLUMDI6vkg=*Pi zE#VjPHN8b_p3+*%5t4PQe+%o^rFc^te zIMUOL5(-ThT2j)WqRv8Zsu4zi#t~BwgnD}%>+`SC#-+tbej;fHQ8a?+0pK<;i~$o|be??|7a z%CuUZS6f$>YJah&d8b;L)d6`{6U(U$ZNJ{e|9_dMJ|mq#4qqG__;EVjfqv+qo?Sgl&^y9wh%s#6dCyFHKZvltj8r0;xJ(#!=}rzZ)qzT_}CFES>uwuz>k` ztE;eEm%482dUMzNx;~1Y0ZtCyYE_v~H${)R*3T2IM!!E_)YSP&ohyrt@O?6W(93Vp zTN%7|RQFD@0F116ZU?5spE|PqtZObhJf2u|c-aPv4ie1+IALtril`vMMaDBoSl$WV zIyxa4uYtxtSHHsK03@R38H^lFj>?B4E)#EcnuYJ~7-1hpsUc#zC^dX3J#sjdOI3pg z=?1Q|VtU?4*OSTj0M?LGDvF5_(v%yux>9BEp?y+1mOlH*9n1UGT$JwiC#Y=%MN{d| zMSG7JhDFcjtSdig7Ax{!x=jPdIh6_)sLu_Vx*f4M=pjYNAt+wpcbj zw8h&^jR>s3YwApz-QRV7*U!DSGEc7>rT>$S)~DA{^vVATlYB!PNdEf&$Yec7TeW_& z4(s&(mE`lv_;qeup%}Z*Z7MvyF(Ut7JK=_EYvzpMVFy&!!3{>j34`$)@XrMiJlA#U zt7G{5*ESy3$MCsSbp4fct;eTVZ*??(qNAPb-qYQg_hdpmTRXR*a-DHa!g*25g?f5S zf|w+G`zntoxO%Ow1?8oNZ4FF2k%~YX#q~uvby4IY0t-21Izln~g=tq&ILt+2!c-u! zA!HTST7jGS^S4*;CtbF$yFlqAkvk%OC7pN)BfhEqChH00FghO~bBPnx|63qm&+7?w zGVW;afQMQ!Hy6DXFCPD`KZ^@|N&BBkY6`~ia1P@@`=3~T;LTvlEHi~L9ZexfnsS|K zp_Gbox>!S~2FA%NYHr-Cef6vP)E%jO=S$ik0$xN7eZt4U^s5jpwT)SROV_WHv-%IT zvPS=kl0eJ>=AhnRG3yw~#DLr3uoUe#{Uty|7%?nzu{4xYaJRf%`4Nh02FOF7eP{h?gz64u+@VV0gUj zvm^@e88`X|T1Hmjo5VM+R~esMqKHsWmxtFU#h9mxBi<$O=G-O^?-WFyDSmSu1_<_@ zGE339j^lw$dSYxoK&5@*d5U~2Q6aXBe!gs85zx1X34aXN$Xm5w$i_&T*~w%w>O)kQC2o>*vX{=?H#>& zA}TXYyo_}(qYWQO4@YBpt9Eky0?$aKwA;1Dyq@m6v8k0F%|+9h%V(#9x)Cl!^{A%D zLniqLopi4OYG$U+K*M2B4+JxW$p!+c>$k+>-KnApJ{aq`9_}3~&*qbX%y{gNH6j(s zp46jhg`$Q}QMHdX*3dR-cUn$2`Mcxz$5Anf5()>f_6LPW7E>W4pJo*MV-|8HzhrPe zDC~kXi-?0E!bhN6I`CN>LXi-%wM5iS1g%0ioanB$D*Z{@u2x%O z7{7?JnYSZ@L*q^=Rje>6^Huu_ZM;$<$4xp@>Q1G8?T)1ct|&#_zIyq{kQMEDPml+M zqF}{qdef_>@X^S37sEl+Kw2;nC>jGcr65{{zN&O5ilm;=(BT9#edR*fXjW5(8BLcq zIg(-}md=vmf{wMgB}LioB&kgR|6_F!cd4uvF?De#Q#!yy%-LgIi7v^pC72^J<>1~> z>~uWCvI&OYREv~^Ld#54ZVcpvsgf5Pi3YHxO2wni(O_iuX$o*vea9ZKzwZ$EwP)`k z4l8)l@wA7YEfn2+-Ysi`met!^+@GIZ)@s$s+HF77<|1MZ)<*GrZU1c|q(vu^G-3PY zDaqK9Pb{>5yyZ_eHPY#ZT02fJv(Oe1^iC^yc4MLA=+@Q?JxvDG)pFOxLZ&?Lv)adZ z3~a1|pqEPxPPM<;se!BQC>H!m0Gg4j5L>GKQ|&f@t=4Pv?u`|3&28G7PpgRefySmz zUH%8&D1t8%mH38s*B1KWVd79~^ouOy4S=15>!DV%bgP(}iGa@_v%g)_vkT>CKKLFt z?1hhpbEH1GzI#V^JXzlS(C#bV)En~xq1^u6`ojwcOMf6&aZxzzS=V=WyUB9nOAe!^P>Yy?NDYA$xeE2B z9FfsIi0d(hR7znaPb+$lXYbuNr+xj7xqTPg*?Ul?wL^2;K7NO`ZSLdSJ{*Vz@&Qos znW2M0_)8|HmtQj@ zzuD<2PIo@Fz$V;qF7ti6pV0ntdAU?xUM`n54XA(ZS2u0Cc+)0rsS_~K{@jhrH!fe5 z&0fXVjoB=q3VS=Boq6Z$^@RVCjD_o-I4u9-7ocRbtauN=)+y0?ZA;kpb9e=R96tTE z`22q2+_L|=OOO>74KxjHy@CtMihc;!ewjq zq?)0tXBpLKj-_trauNDN30T1+kI%7Te6~acNx2ty!dBjeDLAE^9psoFwbIjbE?1zf zDr_a^o&vYIJ83AKNh6WZl6b;5Rok5t%3$T6Q4uSJJ!D#u@zRN1j)2G{wi*?4mreD7 zqLG5}K)K2knO4|48rCIR00p=*p=f!_3%w<%FSPd)(zsV?Kko*#hLEfFv)T{5Lcwd} zgn`~(|ECZa+HFgF$qKdqFNqFR2_c;JcZ+EWOCF4oSW2)kd<<|)MsAm6`t65XFod;~ z5yHQyx51lDN7`W%2g`Gl+*-j5KSrcG#J`3`cff?qFfOmQTDuSgRpKNDwKZj$InQ` z_RCB~+i&=DmdDBR*6%07ByWOBd<#fpIyf2JfrdP|Ky>b~tG9@`wRLySxra|Vh=Mmb z>1f3x%R9!$^~v!aJ0{yN0sw%-Lz)*N3iKNRj2o}K(yor@^40G+U}R1b$y^^Et=fZ= z#eDuPlY@oD8y&kkI$U@3!O6u(A3P!tS{@%Ce>aI5Bni588ZMLrqMmq((g)%MG@_d& z9ridb9EZ#?cxxtH#uWBld$Q21=L_W@IJ=yJv)l1-WP0vch}0uw;B&oWbL{KK%Y~l$ zVDHzQ6(=8EajwNMH+xLdwTWUPU>^IkxEEmU{gKMo_HdW&&+t_MhlZJD`IYo){`*Cj zsiu6^tWT#{fVKac>M5jJsnp{8dp{VQh}7E8W)h!q9H6kUAdk9<&}Urh2B-dU{cR~O zn@OGbaQ6r8$7{~(%=m8`M9Aep#!4izk?3!eg?gqIk*NeG*pIt>oS!hrbR&ZHf&`%$ zg4TFg1CWkV$>KVlGDW0eOG?Z^33%MDjrUIh?@$5xL3VX@EBdw(O>gvg-g);fdh_j? zHh6FQ&m)OD-JH>HI4^$Ude^-=0ausRRs`~Ux2C-~1v{p8Ry0iFSGmLuUa!BUKp?^* z&uCw(4ap<8J?Gw;aJ1^<*UKeWQy*><*zpzZA6vTxxm+GF%oDW4^*;T;9wM@G1v}#w zB51l&;%NidP|}gONpf0a}vl}aV4B$b}6R!eHBr(e^p?v{Gm?e@6co*B-=0Yw6t^*4j0viG`A$ZsF{hoiR zXU2(H?!EiD^N>na|9btO=lss^oMWrlRI&7{zI*=Dt3j7Bk@ojC9xxM!qsTic%PQ`? zT704NiP+%kqL^7w<%iEF@rysjEWJiOYooel7ewji5j4YBraqojKDDITX|jmP_Jszm zf0Xze~p~^ksvXheR>_re^n#D(!aVjPa=x>&u6e zcfE_~p_!zV(xE8B^IGn^e)-BU{^SFHf*ICg#+P&Q zL?)JnL?)zgJAaNg{mPU)zzQl;dUz=AfV;8?wryRx;c6pDtom|uGDNozh~xG0+S-zQ zZ>O+$MfTlOA%G`en?sd$u_-g+`+w^&~vBP+v$BjbI87=u0IcSwGkgai=9lP=6Vy($yQ=?=L^3 zKD2I$XFW9oR3fB)J*K6kM#Ms4_lq;#8;6cC7sgA)Ull_DzA)tlGN_mfLes&XduIPG zf;1f8kamd|#va}J2TvR0^2=nl3y9BTC zjaW-*KEZXvGX?b4xcqss3nwL7)r6L@=#8{!H=pY)v>EKWPii`hhJ55eGphxlX@QVX zsYR<^Q<4afg*#Axap<*5Xi#?^SCP)B`r*s=+jh>+vUJv~2f+c}2t6B1Q0w5R=S`6- z&G9Ek=cabdse4vwx2FynmJ#XBZ%ICT5f}+EQzd#B+CL#hhftbkY}9+N}b^V5?u zS4q2_VSKI9)8pWDU1o(%;Sb`V*oZRnn|LWkMUoUiQod;_4hh_d{-@2#h)15}y_EH3 zv0F!`6RPRj){&U{+`)ruTj~VyvfJ&Yd&}khgvZX6iMep<%&k@bX0Lp>+?MDs{@^Jx zakk6qUyg3+KTl6o%1doNWN-FQiPjOkDU-h`Th6wHH6we=ZJu59)c5lI7trJO!+pF# zo?ReRfkTCE&%@bFTDT|Zscy)ex`^3L7);@d$UIDWv1u-N5=BiUCieAhf^_j$#;1(! z=y;D)oi|K+a!=ZZ{8B!Z3dRyDQZgO6+IANZnwp! zO`sidpORM%=b`_<3@!E6%1VnU1jL<)^)A0+DHbO!g^e)6-T#+e1pjJMb;uS)#)8#V zowgu;%l~(~i;Wz3r*W-u5}R5FhW}31%)aDW(!z(9M|76kFkS=ohNQyK5dW8Ta<(jX z?0z$4EcO@KTr4c^H2QY4aJza_kj_LGtgJu!r3;AxoP0(nxxMfYN3*`Q5NSLX|8eKT z@#DF8?sjL+dBWN0+@6nT!NwfpBt*6ERD(d`_&Bk$za9kD?*!HL8|2TN{^ZND7z8r5 z!x({MJoyOIP5}NTe`T)G+6^;Q*sc4E0rIS6hn_3Jr69Ji%~>fapZ2Yk1O?a8@Dw2yXv>#jHD1& zd6p2{08PwlNrTD@ozt~kFMj8UNRoh@c@eo)o{RCPi7!m59PRg>Zv^e)B>A<2Ty2iA zQ9cwfxe+(IRnBbyoYt76iyrRybIx3Ktxib71Jfkg+A|gu5*ZR0XY2l2dcIO=l**YU zE9zO9Xf{_X`RTD8&B|sbJKBctlR*8@e%)bS!33T@JGABEvXSG=Ew}UhQh(YK)9>M~ zfNZMO!!R#MYpBiYpdG%f1|pOaphAB!u(rKCWSj-MA!J?!y|IRizn*A2ZH*h~p?KyX z3JmFJ9wZ0F{6?cVc!5MRs!Uq?$#S(f*{;rEQI&P=KD|b{?oE!Qu3_i)H-6syk#G_^ z%Fs>2a>k=*p?BPYemeN_&W(+o&l87%<@5GK)vBsgg;KBXkfK52;^F!^9XfvmiFwVO zl3V;VyM~FBo;tfW%AEYe%*j`w(eA`n31UR6%e+a`5~*6&2exEES!(GHAl0E|IST2C zH!91F207un%Bn(dkUFs=Vb7qPjx|mxeW^cvrg5^>XuLB$??3G~=KbG*#F2 zhqq!dA!8hRCgu+QvT z6(fYoPaqG(pJ_Chvj~5Z$vhKNx4*2^Gg2z{WAef26qC3p8BX5DYb0LlEP4(IwdTn2 zR+bR1bq~@WLm>_kvXR&h<)tj~?9^?(Uu~}(%=z`=;D*45Htif-nJoJ`BPebVz^548 zH+V?htA4TUXAk!MT68UJRMJ$W{Qkjgwp1D$n~>IS*Tx2a53nrp#do8xNFHJ2>+kjR z)2@6y_+*P+S?WXAzMV>K9{Q+H^w#@p2KD@b4|r9hcE9WRA3bD|%)+wnrO#dWpl7Wa zrynnySp4sQiVUx@qeo-8%v1L#>Sp=z)Zn0b@!P%lYjQ^NO(BL9#>k8@-Y(TqJtW(c z$Wc)lC^~|nP!;GXP5IVXR+#g1h)XjNg`qg)9%}rt{R;6j|C0E7r(NZT5z)cZ(%$C< zRnrkHyJU(y-CEiX4ESBx(**f=`IqtdsZ&<$e!{5_p5P)nOkl27%dJkSll(qKLZYSC zsWTGgPM?h}?(^sWV0e7b`Yd=abK@(o&;O>Em~|FpGhV^n_m!N$t`EZ+zk*f!m0Y|o z8Ad9W=MCk1u}7rgs81qM%*#r+opV(;k2FoR*U2!}nXwtHN-s8oo;6i7zeoa)H7RK!wVH;eyvpzmP zK9|7Gy>udxxHUl*p~26CQQ{vE7|8?t8T`2fI?{28Y;t`MMm|N}f)tubM{qS3XWfx_ z3i=b+k<97Ly!5rUNVr-z>&r_BO*RzHfl*P2G0(~>C7gE7WDo0=URI?LW!1)etlC(; zmYKr#m-fwvUVRBM>4+$G$<(K_*_F1+WvkWfM<#bnb>i^9idF2T1nElF#=7&JS#qgZ z#?0h=mrO849QC}>qLk_!narx+I&J3juA8@B{Z{2T)wok#kqCBGV$mb1%|*DBosGdxz^tV0N^hbrj=<-B1M@P=jwoJw{gwCAD{x1s*#d_S z59v2Qcf`^uRL~2=JF%(JMVZ~@uU6l56=@5+pa$PlNm8RfUK`!fu8zW0glzAzg0K-! zdO1aq+IFRiMH2UW@_Nc{m)&BZ9jkr5HU^{r!v6#L}lYU!`;DF$~G{WY0C7Q1D z$nJ8xUiRD%OfqC}P~TlFPu5m&yR|HD@&x8dZ$=&7Xp;(FvX=UXR}dkqm>`UgS=J*~ zF){daw`jd58huZc%pa=BkJArz=8L7b%|*#?ntNz=mLz6QV%lJiE6r5Og&+v{RP*zy zP%L5}A%^oC!I!RP#^}fl(UMiZAMI=Hf*vLk9=iP)+LZ`TbefP3F(JUsaP|gb66zs1 zfV$_=TdS%tcaLpEEx0Hz{xS3dVmR6#Z0(GDh8NG~@~c^Y@NF!DLP^2Fn-KRAYi#D; zTlY__eD(0Pl$BG|$K-U|u->$5Es-dWj&9A&jFvD%OV(OzhD1#CCVtG&j#2)fvPfvt;M-k~wpi>9)vRb79x` zk2AGYHcs&RNavc}W~aWtkQ;n5>ElfPNn*n%v!8@{D6ZvdqmbV}-j1)I(0c!?>1TJ4 zw{#r8z6~DV##AyyQMD3#f$A5u?+6nUR)d|m_v@&nqS*t>%6x_0pEPT{2M6Yqx_LvT znQ!8b_u}7$^Y$kXd}7Ru&Qem9y}gDxYW|ry+K>9>N?EB=IyHEAYo&jYlZdR1nfviA z-+G3ii6U=TW6l?YV_O6Wn_5|2OM6!Flh(0Aq!K!`ju(+EXF+bNiPn%&NSlKv2C5Aw~e!2VW-kQIK4t9+z1Wx_P9V6y8Jj; zh#b?!&nCN)gjat*y?cne4if`i31mBX3CAJXARU~T;xbZ1siX_$C<$z!UkpoKF-1A{s#Q^wKh>5I#m<36Rr(<#Yi&R$lo;JVr4+n4=_E~YQcZaM8!)BNFjbVIGbK1BQO z14|^I5?U593lJIvDwL&{S%mIZfOY^S%MhSP<`HRE4FO{p!WJsrEBTV%dNx2f?GE0d z{&99yIpkih9ok!~?YX>mMI^d5-Ru#pI#~~hSLUYD^Q9G%jzQ&nZiTn&RXCr4yRg(udUUhdQ#eUdsNys*_U2y{TDRuYV7Cx1b=Lm=w zKn-=s@y-Hja~ZPrZu1fn+Mo4eaM@FmNm-;#z2<|TNPm)s7^=M-k?7@Nv{US=evT;2 zh}s6jT&th?F@r_+><`IItxM=EcWhy?GC&MOQ)T@*d+s8Wy`;iBCGJ9~4`1ZZJQl zvC8l`Bk`C1X2dt{G(JhM7(*i5iEMEZQ3{UZON!M*GS&3kedabjt26NU#T<@0#c*Tn z1xUu4V#`V{qnka29>bky<{PnC7!d-y3CmVAf4N?$7t0Dk%Hg0G6d@u0mwl6ycg`O> zHh<^j>49kmNpUpnRP_Z6!ey%A`-O*LRjCl zwMphQk+x}M@wU++-m-E&_oNd3OU4fOzqzCfn-ylR#Fo zNWFIO`_*hDp#txl>0t17wYx;y|r*sKAi~vUc z^FQ^t5D|j99e!xLq^@gDroQD8C~p1US1Rpnwo=Mv4J!$uzLL(QQbOA(nW=Qi^mCsn zwT)8UEH%+3OwpJbBPDmSSgYa|n=4mxc|xjT z9<#`~)hJn$Wj7w3Dp#_JxoWLgbi4$9#YPD%J6ly><`SW<@*4Wd?ToJlaI>Q$ucf~* z3ym|Z$JdqM(-PEGL`La10&xs8QOah2SsTjw1xC;Jdi)OaO@P))@0th=M_fDiBW)T!F67Z zt!kQHaHB*4_JOdNO&1pRFtbu7^Q#0^3O_Nc^b2hmA2K>cBbTrZHAN|j@g`B`JIpA0 z%Vd1eN2nL65t(GQqeWpj<8oAZ7cvDuk&BKVbZk}0Oy*N*Y?4hLR7GFqL`>)64!JlE zj{ZTys((JB5?}D7 z&&8^@&ONa^<{kXz+!~hSx>YQ1bR(y&VsWEu)rlD7Pdanuk4#mqNIB;f5emybxXwR? z_VYn@@7C7ki65{wXJ;`V*Mt1jxc>0nTkw~-zEoF@!GDcoX;s8uj-klJ(%ZIlksq#Q z%-l6{Ok(5=EnT7JDS@Ld4Cio>;ba08`AtAV(M-41Q!!*PPr`)Jc$PL}p|xmrd{HLP zfDXs1eF2iWW`;|#{tdqfjF~}aLag=5^=Q=2L?rS$$pcizcHlOZ1&T%i&1Ae>&KrC= zRL*nR59ORU#A)!ga)h)4ce9zeux#7~%KG_Udz?UBUg9mWnF_fWqg@*h4!hfx5K3Lg zYE<(<>@7OZ&Uhy2p2>kfYFt(41Uc!&ZiqRFL-@?tdPByT)K9p!WUx^PvL~>qHfm|n zv_H|7Fba$kdVmNbJX9FUwz(WvpD zM=>a{FAl%2jYXpF27zNVsJ+5upe`mzd;D66b%Ixg&nEbMQTQlXsC(lJJJpn02rK^r zhV#NW9zI$&Vl5jF7qq2*CR_)*g>jL(Snw>2)}Y~I>VcfAiq@17X%&T1Voecr!Of{3 zZFTw8Ee^h3p6AHS48P{f3hpPrx)dYFUt~&so5I<|fl_H-v2*~}|G~GrY)wy>O3j6m zDwZf+Qq$ArQnS@{4p`}_O!UC^dq|A?xa5%~-=iiAwU?s3IjzlwvZ~Bs3@ip4wLIhi zJ*ECngM_QLk!*Lm-A*S-c~2zg>+hRiFdiM!@IP#$ZAI*Pz~tK4P8;VTnt1JC8#0Lj zc3B1gdYU+;5+y81GygS+94};~uB2r~SYBGDzC>GOQKYt-jEdf3Pmf{o?aK4KtdSI2 ztP)xdvB4@BYlHxLe&zY9O7b-qD-zQ^K*6%6K?iO&q4dn7`w^DLz@TkU+Uf^6h%-;o zXwMJ+rd)jZ;rWLjE*2kt@#{e`Vi3YR?XUEXTh{vA{SG?cJfJQ?kRy-X8?)-W4Qp=0 zh=9b34B0}LUqY83Wq~MIJTa`ke2#C{JDxI+sYV0@G@AwT(Eo5E_W2d>T91GK;Kc8b zThSMfd6qL+`fblM-%3aP<9{M_$9K--+@z4{7ln^1nq5JtF=81X&o@Oe*Q`eAPOPsJ zb^#N(unMU?ZOes~!!9NRQ9#(mN3XjE{ZicwAh0%g|JoYrt+B)sH&q*~)TR_Bev5QQ z)||yZ-?MJk8!|~-a>Q2yGKZ*)U;5U!z9k6+Ws*(P@`IVLLOig!1bNLZjTJNy)7w_`gtB6aY`SR7h-ZsqehOT z({!QgOMI*E?mqWp{nut@o_hIj<6+mmhY%(AgkSen&uv$a4btA(2eFH|=pxpE!MDX6AJ9P_J4he}`rd>~L?|tDP?P zE-r2tU0mENL;$t-CU-~L`744(uM;(Azh5>jk=ND6-)_MWhEAOK}{n4OUFt@J7dnbtjMKXD?Lt}w!GqLSLn97%|1%M8VA3s zi6@tsJj56j5=LZ6T!b`a!?Z(!=;sT4A>1{M8P@b-ZZINCJ9DnT8vc3a_{!?4F^-Zr z`0J1^t11G;{`Kef?fcxRefv(CH(rloeSTl5W4|D__7Hms^27UML#KD3(#U^#3^H>I zp?+D8=j`E9Fs&H896ZlLN^y2Pi_=Og9cVi(`Wi$8-FqHXN7iZaYc@7kiRKCm<>P~o zitEa4&oN4&x`kguLoPZ3{t-c#0EHjQB1+t#NJl%cv2pEjvaHaN1l&BJqcn-EYsp$C z|3h0_54RCNo)(MY0-Z=JOpi*Lk=PU$1G=S$jb=j zr5bhE$HyLPrQ{9?C8s`KKq#)F*75=(iPF4n{)fsgYRFPs9I!Zm#2V4${_yv(glNLu z{!qsHopN5HujaAm;r0>y1%p$M(yWld^kzaGtg~h?k`v?sm6bqNh`%3_te-8kW8V_x z|68$awm^)^pzzCr*ramoVoPhd&gIP;{VBmXx`ub zjGH5HT$)1`(#<1p9C^pcPiv1c&Ha_RTO^w0zSN~2ER5_>`6Z+sYuUNTXVGC1ZG_Y! zqEx;v&b**Qt`+*Broc`#A@=39qBZPqxX&=elan;Dp#7=wH$OlKBV&sPM zCv&Q_4;9J`99HtVX4(!{r&~c<1OcCsG4$D#IE1v>x#GIb^b9_9(xJ93^p)>##E_qH zu4#wODC(`g0qy*KMQ+foCaEoFs_k0!bJTD;Y&z2I>Ncq6a9#WCR27z;G?d|~RlPNA z6X<8FZID3FYuf&r^IJ4*G~I%_O?6X~&F`MDTMS#?I6^aSkRGUA-I%J?HaWOTE-T%b zE!vSkG$c)BRfD2FP^9h7ZqXwKA6=blRNK5nV`_B+)Xvmme9i z;AaVTbp!IzE}e7no{_iXI}*;XBHzi>%IuX=4S`e8v)CoFAe-g_ADuP>kE~RJ)U})K zf~+4heGBbhAMVQ;%Myf81Y}OtN0$g|_3}OJw-g^@am*3W$})>JCr(tg$W|p*FyqTVd~Z8u6yoh4*nRP( z7|fLE#7X3dmCcMKJ?|a*H?WudPPtwJFZDRW>GbT*rer#Z%r~30u@~wWJcc-xbiI`A zPnuRaRXrU6Kei%fHoCSmLsIRysuCECKp>`(@(~OqMBmqDc0HD{cliEFBK6qn_~nlC zFA`(QNF|BqA5T%5a2Ey&sO*Tx)BKQJIz$*#3hyy9YujU7&uVln!i=H!Ip~vz&?htK zNWzQO_F>Ka!z>?)k$wmbYNXH?Rb#m35LQ9EOIkV1#PgfSkKc3evEz-#$M-E6#qz#x z@lpLrhSBSXd(4&1`4_)?@9|^C@#FUzvH3>hMQ^FqDg!gL%F5UmZj{Skl;6aS2sw(O zAEAi`_hTbJG4kBVH(1{Di=94l1S-N%=8~*OjLN3w1=u1{2#zJF79U+L`_gxMiy-H8 zA#tJRuP7b-CETLUGa}ns6riVAP3fv)yOM6hETa4D(7&%IKdhls4Czed7W#tW^#Kg@ z^<`#}%X4+UJKLAn7YwhzJiNZ1*|?~dJ=P&Tu!741&ibvqd*>GR9&ky|uEYQ2iAb=X zU(4@qw$=mjG4b6q`H^mqZpEKVTGj6>9YePN=pab4o(l3gL1u;NVRiI5G1Ush3@q z^e@pjg#Jn_T^ctz1HQV7R(Jt&8d-ltS0KPKU1Ci9lg{?gVNfV^1;8f>3MKX@y?w5? z=0vIkG;V1(Xd#TKs}KC-AC|LQ)$C2PXZrxC{@C=)x)O*#+!)*L3DRz=LoM^|s=?MR z*>d4W&enAtTHM(Bv?#m7jj+<6(ao)Esw|XJErUL1T&=#vR+9PqN<1ar&)h&*D!bF{ zqtBuZ39B(*VEXQBrjB-B7Ef*%qrHBU8X&@;=4&uQ^z6OZw?Zw{#_Mc?LVCPd9kEi_ z9WXaQ4dMMjn-oJa^ACK<#Q^b&n%W66&6r@HTn;!>mJYdmGvE8!yLaNqea&VfTE3Dn zKx!4#5PAc%pEA19v>nAGV9mNPl2|ZQ1-hqGw1rz3LHo4gk)uqAYTi&E^GE3=><@k} zlC~|s17-&YHDZ26#qU&Z0?HdXNUC<+yD{!6$^Z-S6M z5p%2_!L`rrY1+o6!KLKZ!cOQA@D`6%T19so+$$qft)|CSDTrs`DrVMC<0f`I5Jrs{F+=u z9U@S{qn>vLf*lnC(2R#tgo_-RDeIz8?_#|Op^~AyI^AJ%dU?-t`1q>$H|i-kBa^kn z^CCI>vW8vqblE(pZCe=7ysgIYbzUE>DGN-}H-(_kl~|eT1vFoyv9VeA%J@7y`sn6= z_z(Ae(=Fb*`w-Y=t-gD0X{mADgGR4CxS?IGR$=1ep|Li9!@(n4#-r8B+Vpr>RQ4l=_CZ1c>qz{$DCHs@JQbDw;Om9^Mt6hG>x=NliD ztz*YFjl}dnZ0pw``W?Dgd3gOOqyTw-60#pF~jJ`AK86)--|E8P@bAE#dI~+Dm{j5mrbjJ{5wjZp-uDcRBif8dI<+ z%9dzHp&A@$O?u*7?-)iD7h3rD6k66jWY~$eFI;$qt4Y}La~hdGVR3l9?LJ5ex!id_ z^$8M;UKF=;H(6Gny*XDd=N{dveM`PYcV;~>*2FE+vewGEEkL*}8mA6vPk#=6o2iM- z8j-TWaSoo_tg%C#Ia@Fi8GQBS2Ok`sBLyRo2fpXv%Py-{xpqz8Q%*{s+XNqa*&$>4 zZRPAANeIV3+RDOfMNqRX=aRDuR1_?GA<;~91Z1zC z409Gc&LCF$?C#ZayF2S5D6`VC-Y2Yrx$@L^uR3w!svEIMlis0L^+t`7jaZpZR$)-a zW5g?j1VVO&sFWa}0G|95QWa?cbjAXX35XK$bo_03n8swF;K~s%(QaLI`Hc_n-AjHT z^?C>JC1YBCqn3#w+9Q8sd?IH(>Kt~ixK9j3m61YeoP8Q&sY(f8B(sQAFZ=k_R1fajb;Z)0A04Zp1;>%RVo}GOxbyMVyRW=Q z9lUuW;zUI=* z&}gU=+z_?Mg0oC01%si-fRxY+3{&nzQ3Eq2YDbI{ylN2uOBdj^dlNIi#Icpo^pFC+Z~&E^N?cn=9#fBn{SpVQ*WLzzB^O9 zKL~1Fu-Cz}butCj)#gmSTbsGRCN3=+I}3fVqa)YAy}TJ;<~NMIY2+>BzI`uG5EM{e z3yVE%N9-V`=YxD8ZAoYqk*`JjpyBf3;6=N!i600PKBx4TCAqo;rIKY_wd&)#Io8SR{gy}y8l$H3sdqY&{Z{c-L)(_phBN6JK+A4#llH9hKI_)w^h$=8=eH`Q??esQTPKmm}abLdO$-!e?Tu)|h+aGaO%H9(F` zzcqP^{j0@2Ey6u|Q#wDke5ju%0l`%3ve3g>ZT6JhRk>=1qtXetm{QIT#nltsQuQ{K zz}DPTIpP)V?uheLn6>1waD4#HR=tH?j(O1j$*7;|PW*aTu6~NpNV`g=wpRTh@K?8j20<=Pc~i#*A5tT^ zZf-y~8?4u7zWA)He{}h0!-O3#|7kRx+4)~O6$djU^c=6KCactul+$z@QOHS3>P* z#4Ai zccD=vTx^ALf&Fnr8_mekz@U_QMlWa$Z5R^yi*=AbGlaVYhmuKLI*C3ornc8dk*Bt2 zaHecn*u}E?OgZ6ZZoi07m%cJDNq$N-v}LVL{CgMYN$57Ft$c?Jo334i*b*(N44G~W z(;`WdxKk3;lVHPkGz*3UNz1hhDo<|9xPi=QtHNBU9X` z8AqY-E48GBesrp{-{uga(KrplAp=JgM-YxhQ5{7FrP+l8gD0oh@#SwggQGq$AL=C! z8QPap?82bPr=0XaQNr%QWL=>r%=2H2>ta-gSc+3$t9?@E$vN4UKTu7@^v*x;3-#cj zyZfLJHjGEp5-|p)S$~B;_-r2tQU{$x8jETAR62O}y?5O4-e-q-Z^9pe>_3H>O%ZJ( zaiAS{2mf1;658!8ZRos2c|2E7yI~V-p%Y1mrvvHg(Xx}qCAFpyAW5D3h5Up9p|e(_ zkZP-`R70HsD?*vb1=JhW9THcT`jb7GS*mReQAji%-?8wUR_mpU&P}cE{H=s8yh*0$ zJ=d>V*6MtB#j@@T<6Z==x&$WOH*(c#?lBRGK8@wKn*FqFK8EqPn)`;(=Zcw>dulSz zu6E;{-T_ zby8jrqmo##7lK7Qk`If$6#;;nYGW8kXb+817E7u}L_evqBEmpk~H1n{isySL7w8)HCl zuBw_2${TQg6&SiwS+2SR$>FC$!DHF#d1A zLOqQKjW_IUhYFHf7Qz>NPNHtfEFqp=3rwiGsu@QZ#-*{OppAz$GmLm9%M3~rGlAm3 zyVPvt?M_=FPa_NPk!#{R&IH3)#BBF+ruJb z?%`VxC+lX6zP_OBQPS@;Gh-$xdO(aV_z+V@M*PQA0!DU`hz6M1R2F3e)*6WM`FlN; zOQ-OkLPJFL1(Y4jv}mT7anbTY^?k^d4`SuwC`4FFH7$8#2w%9-t;Q*#IeMKl8psKq~abqcX~v7{$S`Ga(8}KRS_@_F<<8 zoH|JA1XV8lJw_3;BC;rLp$YMiF7dOr6-4b_*UQ9zkmONX&xmpcp?*AV;I*288U_c=d0(zfy|k`rGof}Fpa7)*IjY(d36!d}9qv}!d!VnWy^^Zitz+9*#>&h_S_F4{*%JY}<~^+T_^yqabClZ#=d zu@@^Xg-e6T?Bc94-bmzy$&^Uv6XSKLFNptYqC)<02x*4maZ86^bvecWa&0J;$p9=S zqdWU^hs%vhumj`>|5GLvrTn#t)>thQJ~c*s({tv2qR^QP+VjWtSFxbwmNn#-pJL?h z);-F|(|u@b(PCKcP#Yz@A#&>We}q~c6G8gUu$0IkONH)*ggVIjziajJ6~rasc{d^M zJc*TP^uW&jyAI3|9Jo&cE8sB4)knoM*jeF$sm8kug%1lswy21rRcGJV^q;>`6BxmW z18Cbeas`;=eVn1#%?if(Y6y%owSLBKT14BHDo*MW#gH zWM!8gDTz|xhGI6p1`_(0d6S&%&8B%NiSjCMO)q2t~P#`J->)orI&jUmzD;R$SXbK*VXa^k(`R;Jq!hnE=0sgXJ?(o1;fo55$E8TstU7e@YM_Jp8%APwK{yuw{D*^m&pG(q9DZQUZaQ!prZ7?+SHfP<-GYxqUVtL0%PZ{6c zs@1l>?;GJT9v%s?BH_Vo5gFy^$ZK@uPjUBV2|$tOFAX*>;GLe^1*hY$DWgRK@Q4Fb z*ja{gsl(<)OO>NIN6Mlj#q=sAN-}$Ns8sglw3i9ErMfL0NzdS9@0!@6tAmeKgS^b- zOp^RA3hDXT*oY86E4SDaw@yVPI9Q6ns_8!E^z{=wv~v@xfAQRET#q7A=i>3WEbo*RxtjscqDi36ExeW zEluP-d$Ld`6mubKyqjmV^rK?c$VLybEXN}m&xnx(Hj&OSA8@fmv@o4aLBK%XMxayC z(>$hIkChMht5t5kF?WY#U&#BlLOvnPH-qUI36ZDdSt4Gn7NjK_CPf=N)=wNOjb(Xf z#CXU>vY{7WR{Ch(TU0O%Jhy6?tPpi#+-G#33GJxKk-r~#0UU{nX1vI1Bu!0lBRUD< z5krN}lCwJVjizRP0hObou+ZwRq4iARUu(KH-9iL8p!n?uW!($=8jVjskRHHais%Az z7f12 zyatW+>(qn*efDMhpR**Qi3sPBE^y06*@H8RZM#vXOO=aMHHn!~FbTGq4zQSDLKO{^ z1R8`GLvWKnayq*JpTh!P(SSgTdv44Sj|4p4#O%tMHN0QhLK7uraT&6+>~xEST7jFv zjr?-18X>2;-d}8SKkTC0_s9XGVaL^X$G{^$#4(6X90`Lmv`S5T;Mvc6CnIpRNmNXp zi9)&-kJmB*26sQxMJ>rxED(QL0xmKiUp zAj}uCb{2C*DaisMXH~Q}Ig(c`SJB1D{}n4clqz6wAdQF=BF{p^;%y_K2wXdpil-FH zhRm;!iPI$NBe=4W0cfda{H{FY*tw@4%37gMtBF5z3Td$p+P!QCoj#Ty+~A{~Jk2e$ ze_m1#g_?u1ZkvDg2d`L$Z*=!<>(|v@cX+TJiTxe#-kQGQN57D~=%S++zHaN?iPtV( zc=Z0{7akru0Bp~%Z$huU5*B}lIFk5WNbe6tmEnTYmNB507L@n?5JZhOm*sHI`XgtL z^sapb3D|0sX``*6{qgJe=gP*^{_B9GpLZ#sqI=@W8w+0XPqs=e@eADglTxy9Ywx*o z_ITxIp6j`l$=6_|6s~*;%=Z=s+&pggtlNXItQQ1PtPk@hHx)gQNJx;v=hmg>wf3 zLN&cbb6)toe((~T_(h zrlh0>!_2-t z-%A;vKDJh?9fP4Yc;KB6m8WuasHN6=?S{EW>h0djzI4QxBuU*VKbF(>s5fZYsw=VP z#rIbO8uUt;A4M2vVjap)Oq%SF4k4D&aDT7ERIMLXq^02@Efh${W=a={f#DE-3jSD7 zm!W;wu64>y>}O&rdLQhRO9;3k2}dJ@-d5IOR%gT9=?I_EJS=2I_G+QG+xZ!(Y}3!4ex!?d#nU3|(JukW}$l$V6c5wkBxvmuqTowTfE%rc`7$DPad zfdg7by?w{-#8kvjZ3T8QlGrR{pA2uU$5NWH{V9zB?jAWw9m#^FJs!8$o1xDkZK#N9 zjF8f4o5BPY+)nT#B$p7~6TeSFvW7zn^oY(NLXuvNG?>@0)mI3^zrQ!Qf7tJIZ=6y; zI(Sl@V5GUHojMXmQ3z8J{M3*PtbqS@%(mYm_fU5V*e2$BOZyEn6u2I1fiuN!<5RH4 z21h~Uq>m=Alu`F9e(}Y@mBkhl^sXxY(vjR)lwePp3=&6lEGL|3vued3?shBD7#z#} z%gYlJgtd=FD+;c>?mM9kw>WYW^@2lVshcuBs6)XT{P^&8QOFxhVLqllB5(QgEW99>4tJN5w>vcy#B!eK*{= zci+Cfd9kkyDJozyLQ#?Y`6Nj+z4 zD#9%kkIH|mrfki8mr9}*w4bWhcZx}NNYtKC=JB#%j{Q?1xcQsZD6Hh*w zb5`aKOsLOh$#fDg6tnGb@1MJ|un`{qqU@~~bzeKpJav>c_7Z9kuC&N-)Xg+vx0s%W zgOMdbEL!?QM9XtIfKYezfD@HR+AHW9nT15}A?N)Lx}*3aHiV zKlSF-r4%v(S4rIX$Rjr<1hNK7TfE@()#^2%4o2II9z{i1i{f@g4?Pf#?x%?SxB$Oz z`)JhsyBD6yUnpT%Xe0@Zu0f7Cr)Qo-BnhlySSd~ zPEYSyS=lrF;Pjq80b|4Q@kZwUYex!<+a*EmG)6FL2-#H>gi!*Oi9!taxD95}h!co+ z=ddW0BvEZ>SXmAbQDpW<$EJ-#TMtH$hU45>_HG5tiQSy8s<|@Z6>$ggi-T*{1n*fB zL)Mo?AWmbvGSWChMQZXPzY+e~!E9GEj>TdpgVyW50-ge;YwIhoBfr9rzQ8FPo_`-w z{|hg0&HH?BBN90hiImYj%8?k(&isq836m@J(!c85Z0{#x&ihAx9vJ)qqi9r&W#b~_ zsPS6kcH;xa$BgHw2`2GE6Xh$EXe2kZ4Ybxa!)BnGjL8$r}pEwgh53|By0<@oG6HWASf)dQe4D0&QQpK@dYg-}05ztb0XNJIN;$OCEYh%2)* zkKMr*_#&vu*b6HB)&uuZX*&~7=RA)g!#OA(k8#{^xDJyKo#qpq?AoKL_f{dmK%3unD7jJ zQL_mjTHuP|MdWriXV39~eY+pNBDM>uKWL3YixJg?fAVAuJ%%5z$40?3Z3%PT=lUF? z!%EfZ+7q9ZPQL)bj>qa#l|9C)U6|m_Y|o^(Ln7xnSWBAAsOY>_U@=eid!qPLxjYQv z4&e;2n#kL>g>Hu_ZIRAoaVcJ})5tfP9d3+-%r!`9-dpVSf&z=pP_vhLf{wwBX zS$Ss1{-Q36d@8le9qb-VcHwW*Cud>4uq~YvVOO*?TU%8F(sy2j*OY0dV#&vD zd)?))QpMO#H6BqpKaQ2#!j$h%v?G-<{JYSA!DS31+BCdn{BhDwJvLg7Om!5%9>#8x zdnZ73l$R=ah`2G}p!jI~$BGW2X;N6$1bbEvE`#^$E!HPYk=sO|z3P^|+8?QGNn`+y?lR;LPu)luK` z5aHuy-ebrYmZH(d&nJkEmdezPDzpvdcT+4k+$&mzE{y$TB^R`JyGb6AY9{KDky;v! zH!RaBBlwyiZMX^9aIjFD#R&*A70zjND}GC@$v>%LV(7)nrh9y8Y#C3yi6)6l;aEkn z_i&nlYif`vBQR%-Sa)t^)QsjcgFlXwuO0P6{t#$A9gXAvXEXq56IP|#z=Q@3mS9W) zS=h0JNi%O?R0p%Cim?3|##}^|;z?3+D|JLgeX4|JF2y4;u6!v~F^SYUOjB<`yw zezvAZIGDIV%5rN`IY(_`;4YYWU3q3YkNnZjCDXi{L+*NMdU2S-4hJw81tYoFjure& zGV}U}_g;1@=wW4fMs824X=^lV7jcf9ZDwp*EzU!jQOjYGFIUx4-8YK3M527*VaR@9 zK?RXGff)kZvYX414hKGWFk1Xj8tBDyBW~IRH&ui@ceC+gGOJS!SbmC{00y)2Z7*4p zmM|T6M|;t#=accMk%X`;R!=}!8qcJ!l@R9_$au_- zCPzofC*ksjxpDAMGsy0#`pIal)fyu(m6^=YeeiNC(xC{1lLV_zMdOuPA-9lc7%Mm3 ziR3d?9$lH~V&GHS823($!buoQS4u@?5nVfqT!pe3kE`WTUf(nwTNY+zCa40sY}h9S zNtUhfj~(%=1j<}oiOB+NB+L>$NM<1!#gT?NUS~4NM&ill)N` zMA*l>4!$Bo4YejWibsgpioHtG$0LtFbc{rrEDD4mOT-V^F(Z!aXjQp5;4w0iIFY(G z*V2EOA2EZ98Yyy=@O?upSrEBVWZr#n?yevz-&HU$u0`t*i=Tw7#F8+c8PBvrcRf~9 ziR44&y0zyK|FAsvEW1#_L3^^wx5ddupCnOKbC* z`j8l`2G^($)#S^Se5CA)5B|z_7US_n2N8L0mLVLChCgvmnv3)sd*|mDDwWri%exwd z^4<#d0zNd1!Pg($pT&B z5V@8l_soF<>C9KpMleZyP0sxqpO`8_+fvxJ?;QC_;#Nq8*bvX)9pp7w@KO6&hiOJg5$v_Z*U==#QIf+8?r-QOdI)h74U<1yG|0T-13mK*W7W85B!`wiG7=`A66H&4DVl7r zb!M>&iY-TL${4*xPo~DZu24=fgfy+w@)nAnkE0K71pUoy%h>(Q&uC+TAPzu z$wsTwq79L0fl(L>=E*yg9vFq zDRDi2#($@L{aE&teEpz5cup zEPU5G?8+d+QXl;=OEz+u8N2yrMzJ4z*Spxk)DY)4RcqpW_OAaKoAKUOw^V9Pl`~wA zNrNGR_b!%uIL$>(kKk^1$@S&3voj{H;O5$z-r<`wvvPeFe3NKhdOf&?x_txvZj$j} zlP5!_M4hHWpoVNmD^dcZ>P}NrCW$%K+ZX>i2}vve!V7sXm3+R7Bb}Q_da)flNJK?C zmzz$XK5eY655Abrl_-%)aHgs?nv2gm-JMzcy(~~6Ho9M^#8%oKW9P5Ke&r$ zk+~c#aMakIqQx^iM051=O}orVR0f)ARFqznL1q}{7y_Sl3nV;PyvSJYEiQBm`VyiO zi|R>d5Ob}J6q&qb7o9_0kF5+wj{cqc;VoGvz*@ELNNUpsY{~K_H!Y1?H3-<;kY*Dux|#4 zR7C`072Q33!(6p81`Qbs`1li>yU_>>E*T*6_D&!K{O>|ei-R@+X%o%z%IGdInD*{yv_Q$Hn2dkSp zc+thhly~uBchB)Xi{0JT(#3;+R)1V^^Kb);lD@_rd|0y6@C#OakT8B^@C`;ysWkda zzr+c^O?!XomqxqZ;9qA7)A@YvfzS{Afd_{9Y#zwv^V5Z}|J}p9w?!n>b)GxSqAM*T zP2ZEnT$T+%EM#fO!i?3{I7Y1&T_{ly{Dv2xx2XSv6r`3@&t;G7O4|t(mZkmiOnTf{ z+hN{Xo2kDv(yo-J#w+D^DVKM%MdE{3GO(n?tH!U_+q;fHoJ5{7#?xdr%XkNF9o#Hs z%56gU5R4s*n@g_dnL3r9%S*k7KA|Ug{v~invDQEz;Yno5wuhV_`Wx>e!8$A*h?5GI zL3NQKeYfAUXrPeOf*=yro{L)U&8cdmo9lYhNwPa)vHSrVR~oVD>tGAKq-C5 znww)?j~z}Lo_)!N{o^d4rA8*x_0^|l#$K9OnyOdI6UC{7ygZSwedBnBf+Kd`FHWTiulMZzut1b2*l!i3D$F8+kQvGhhN1^;yvf2&{DKgB>89lRr`Z`A|K zjX#MvuGE8Tek$K+Bj)3n7>Q;^{Y4lvwaOkZ4n%CnUuC7UuTJN(YYA^>?S0&Zn;pg3 zAxyc3#Fh@X3Q^~%&T0IfDIY7AK&9_^qYDi9dsU^`F3c*3`r5Z;c(s z6~>#4_Z!a|zhnGg#(y>b$@mv~V+2_@BXtz9oAAj|Z(4nO8B|WAei=qsS8zPNG%haz z&dCJIOfY4Dr8R6I!LIgrWdHIKy?9lNz@+_=QcXfM;h((9XlEGmml?-qx|4}p|AqOw zv?!gwn`hQtluNJDT~*4spq9cDQnbvoSOZ8rlI5ZE7f3e7&hEo?Jpq%cQ_-5ji`o%tfh8X&=Gz^SNdN zdpGKiesQZIZNpwW*O2Ozw&SqgCt8nKJv!n7BF+T3`BM=%cj$VQn}FPka@1@HV@ZOx zNp-Rc@FarPN!frP9LkYz5@^29L@>28gFmEG_FNq^ESKbv-b-UD#4w9KRr1 zC2yJfY-u!kP&}on7U>SCR0Q7SQJX=ZTTpK5}I z;km|JoS73RX5Nr8h}m8pH6x>=<#O`Y!-C663DOZ^`2vr{p+4@E+cA{2q-mKmJdVaj zxJz`Fl7_3QaiA1j_>J2CaPUTh^Ubq{C{?L64Q!vva&aR^_kk_|tbcS2FzfzzkFHXocLu(9j~cvQE`vznU%ipd@-MNXE| zoGL}-ACH5oD(@4)io=En{wsDt9A~WDh@*wyba4r+3+`upau%rz8 zv9r#~b0G?enk+|ETmldj9ibme36Yj%CbptkWJ=g!oD=nQ%W%|KqPFB=2%)c1IF9(~hNrcjF=?t^z6X)`}+4k`*j{ z%D9&K20j!#2A-`ZwQ79kN$xoKRqDq6K=i}Z)$xe&{!CSsZYZVVDyas)dxqBQA1+91 z`bkOYXG~(?A2zhqw=%OQ#N$S)j3+YVKEWv>4i8TUZJ-<&;Jk*>!aHhnvq^zp$5zRU z3UsX0f>~PZmVcjWo1X4=qX^71v%m2{8mlCLHUErXpw)o&)97bo$YN2m`jA|YRW5=W zFMYluaJ1#7@PJG>((`u!kaK@7&x?t>0o(LV;6Tf+HmgA(xkR8KD2#hlN4-=n6mF+W zL`a<{r#W$g*2zmkprQU3dTO!ETVY$B6%&;OgVH-U5Ps_%U3TuJv{NmtU9bakatsZ`oZQma(zTBYjh>T>+qh{Q4>68$j3F#u0z-%=VZaa%afl}*EE8Y|Ve#zRQn z%Y=jpAq)g2!w?=5%kTR?SJiH_d?ue)i*%QBw{y?=@BiPwB*Qr=a{l(mm^iUy4MSan zy1DpZqI?+=muSSTOg4&#pCTKPH-(8il#y1;5wlNb`WR6lC)DS$SPam79~=8s5QctV z<42~{n8-4+?EC_y8BnElRwtC0kXfHExCIQe ziTlf1=;tjDh6)GEH<5xnNIwwfW+11F0El$gxBS+U)$-tiunlN^z@LGpYicbG%YKV{ zY%Mkiq;0{z1hJHFEi`zzYjgc&-y)fGdC6MHnLfK0&3b>?tHT_)i`E=ML=)ewX>oq5 zPo@>HM1CITltU4_wGEW;c-FNKONiEtlzuHl<-EqJs=5Bn`Z{iK4+A0n5QhbL@kjmADjq>DfcT< ziU>Qns^|MHIB?I9+r>gj*EAUk^a=;@`c)H_hJBG?^WqONws1mdGnPFTYD^RC*3vL+ zfEB4)QUrf-y1z2kHA*l*okET zn2DK7j^C$=z8IJ1G-9Vce=v>Zwr*TWf*!HQnX5VPo^z9>V!@?)auc#44nH350MF9y zn3PCr?5A=1JO zg$fF(lTWBGBvj7IZJX>3<0AxDLo)U>@g;LX+Osb_Um$jg6wLjWvDcg`N3PeW;_Tu} z#LA5ua$N!VgpPA%>coiiR31tQDgh^QI@~{U$8r-$Sh58!$7y&(K1E~^PH4be zg!;msITT(j4Q|%=BOSoahvG1Gc<)ql!j2_UepXH;)@{QW=;x#nrw=Ey+_sm|vI8@~t$S}6_l{#o&Zc=b= z*0T25;fB?^iF+iFoVQL2CQfXIs&E?K3HM?dmL>LQaZm*@j8fZEYGdPt$x2YRNXwK- zo7TQ4sIWG3VB=gwbB3TnL`39X7L8|8f?)=NxhVhnL0#f8*z_w5M5^Q1>VZNn;}(Wx zEaJ7|JCbf?W4-1kA3Da3!Rei2`?}pPE_K`O?h^H|)Kihfb%}`imao;uhm%yt0~lF- zb-Xrw-wg%NQ-A4Yf1!orIsQ}}#@AYEFTVTJzxa!vE>ftJ9|P~rd5-zI!=#9^$v6LBQnXu;TyxQ zeH+&2Rbp5Vg_BZ;mf8LcISiY&8-9=!ey}#}6|ql~BH?@)C|`TiFuvq48ST&8l#Gv= zr==|IZER3Spdzs^5&d}^GxceSpt=c&iQfWH#r&e<&=6lXpPa}*9>N)Y4$0p9Fmx}C zEN<2yf%cu~>FOrjXX>2kN47zF#{V_aka;J83N?&=!%txXj3y#SRPCr5!~IT z!eVG&9Q_sLMV}z^=M$#01F0*9eBf9gk44{Sn!gq!RWi2Mi#{8RJO>=G}dk z`VnQRR;;7VcnP{J&(c7`YbE}je%BRFBJxJk@=5|fDdDf*jKy9U3;qq3W6pCm;G+1C z)xN|Pjb~l=XH6$zK4S7$j9m4zW@7kPj5YI40AF$6BQ|0ZAAY};xs$$9)r8pkL)e0Y z{M7=Ukb~Tp=%W%jBY{w8*~}JmCPWfKKzd?ndhPDQ1QwDZ96Sm>GVv`7>&5~v6hMS7dHO{`zSc4DyU1{}cw9s` zKOz=H7I9P&{AD5|sRMHi-)0+v<(w(I-C|$rVd51iS5EuIwQgl~_>h2OK!que!6;+E zce;-o9sCH%;rn9ct- zEHdfkI;E)H@}}bIx?7H)Q*-nCK~D-nJqFcD{7YzXQ`xp1og~j85<}PLFe8?olDGlM zBM#_u8h^;@*rBl-z%_a!zUKFh{nps$HM#(OEyIgD=SJm4N}b0*pu;5*q$tX6foIU+ z=VJ5F#493{NOo~7&&k`JmWRedqgVAX*S(@gxVCD_+ph-Z`>oN=rpVST2-@^%5zLCM zV?r`<#S*1wt{ksXzRqvaUH_6cvPC_du^VCEX_W17?1+~E@1Yh35()<)usMw|g?^ir z8c{dH&zBoaa_T{PVb42)diq*3bA*uiaE2IB=XwI+jp6-ADA7!;k8{1C>3e|cQ!NU4 ziB(*->ND5BxHde%M!m;Xf3&q|+mDL79QrBJBeYn)ZKU$^WOH1l?y zd5lG&e+RDE4%xF~gqg6l5`DrY1&JLOe!v{9;im-|N#c_)5)`&bZ}@jx8^%Z8p&!|D zp-d10nR7SMDu*ci99qnyDKLb@pr`GmGIG!aSe1Fg=t2W9Ej}2A;?R*n$Of$4GQb9X zqRkfZwRM#_{K4=Cn{)m`7qB8TjM3jnX1t`mfY8}3m4U~)NtxICcE#=$z(O_92>5fG zt}O@HHJ2#fMq@#BhtCb4^Hf0fu z|J?QCcE#GxS#1NIxJihhL2)pPIt+DE_R>((Ps>R;_20p*#z*pz_~^6b((OTxcvO3O zcS7b6d5CltpBDB^99yAa(2wFbMkQaEIk0*G){+6OZM`znM1%;$fq+kl8<0K|GNb1n zG)AW!VAK__q7YpoZ)Hy9McX4hK%b1B7BNJ&bf-SymL|blM&DFsg<`ASwS|&^*2?xZ8w`7TiiT=(9^qjY$>D(?QbaM1cMywAi2m|014f=oE zNv2+&dS5b?!*hIEbxD2K9^_n#WOmA|bV`rsCnk%rrAjH^@0Gp(ohxmtQsJ%haFJ3L zCkQvNtoRAaT^rx0Aj^k8>?e-{XKAo}@4bFmz8?=tt1NisvUgfOnoNjtGnrhwwf4BI zpUc!TtH(N>)kdk<0J;f|SgXJqL}nWG%Qm>!<|ul@`&pE#LbTZkY=8)&Vm-0fg z=$4bF>!|nN`wT_6hQL}=Gl=-QWIq<0bKSXEtdBkVtsUUsI2{ip#f4ZB*OB)52l7>i zdNE@XAtLTJaY=5;$qaT#jR+AQr3{QO*6i?gv!vc|(1$A$%(Js`S9#O+En|2o@Siv{p7>|Pt zLK_jR?fd>9%rW+NDVn zdw$tGB#W4EHFm@rp~<5ItPh|<8)?afhK^mhiI?4lP#ZL zl|AL``D1=)&-t@Kq&a5P(C%WlJ()_K)G3>zg%>xyxMXj&I=?CVZ$TK*@pC7C1b!rd z9dR=MR&qcC{VR|)o7e&1`Gc&?z<{eU?JPJ{oefK5aT0lIKq04$Y_qks2x%qi5Pqeq zdW7mAFkbtibETE1dF76=2QmNl?j*CIfMop2dPKcqi8(#&8b zWJhEkbpAnB7NA&i3;F|(RQAt3iCa`63Bw0ZD{oo9TW31c`=xc1E%ATBB0K1kmxAAYip1A$Ah-&wGt@d zV#+F~6DiA%Ch>x}UO`PU>Z#%q-i6gq0O!*Q5xI*I30bI=@M99KOj=pFJT<8o(qWgt zw@}ElmzEAPc*;wwf^B<%m^cezhR-8FG6ZXv=)ebpEy7(iQA~lHGi+=lkis>SAofKq zC!Oc3k#G7V^!pTmn5eUs8xs7$JmQnAO)Y_Z7L7`Jo3l3_-z(pDG@~XE>2|c|W)C7L z7f98PzF$J;csd9r0tCY$SUV*b*7@KhK%k2RYhueY_}{Acej_{wHSYWiK)@*>vNDTd zm?HEDj}?4O1ax_;a2m}AME}RQ#W2?79M8Aj%~0nIbqXR%+ykbI{*wC73h*oJ6A}CB zT*40d5ieaY*qL-GnJC9WPqg5kRz6=V&ae2V53f|O4B)rSJh>b$t^m+*SHvDcE)5ds z>y2LZ*Tj19urkImYEE&^_{A;~)#CO-b~c?$XRhz>wH8gnoM|M%S(f42EUH}(X*IbU*EWz zM?_qHL+hAnopU_-g5CcUSq-M6{Nbi+4NnC18Z zO8B&kPZ3)h`?_u3)YSN3_sxkw!2Ly;hrciJ|Bw*TqO_e+Pd^DP@)0wh-e5#13IABp$YgQmzEFPSqiikY&UJ^?X;VX9$s2L zoz1SaRTk9XtUA5|JI$^%m1oTT`Bn4t488eOYCau}&Cg#oyOQmYHyQQlADw#?Rj94Ur_9-{`gT_kWh#|v0Pkz@%C+g4@p@jY3KmCZ7(G`}AMvr# zcC>M%zmOZSC4lKIAx!dB&ib8u9(*iYBmg4Y{q_i*>tv5C;9}+p{n`5t^+Jl-$K_*I z3kG__U1!g#?pdkYwnibcY$72MX^^jSBEc%Y3i<WgiF1GNMwjO75;i-v@E-kMW*& zV!?X<*l&(~n&%WpuPCxXT^7wdM0(hIGMFgau&B1Q5;s!C#ACUr$&_$q=^Fz0cm>!b z2yN69P3zE_WX*(Rc97$`%V3faa*B;i4hcRyYtj$}JP=xgsx^xkY&fPRe4d6f?etvo z1JP9^ayER3r*{zt3u~azfRs*u*m28=r8J?AlT)1q;Vxa&1pcw9q+85Dqcy)!?TVeC zOk{Q)aP?j5$JJx%`1-C?%87-XrKz>4V$mV1$W&l719U_EoWv^wTz9~l*7v@ zDb>Qlb+wgPD3VA5YP2xFp|0MwzH8TsX}{>HNSZjpi5j)csBIE;NgWG=XUFp+f?E?n zzfGvKTQ}lF@EXY733CkQ_M4z@`?2MF63IiJE>C?Mc)WWZ9Z2ZdlaCg6Z{I0u>cl$TV*G=llbY^xI=%Z3i)k}wg$-T6_ znd@|No9#O;oA0QZc?wtsy750U?*3xT!p?n^En>n&ZGoLRv*`G~|8`Dd)-rE6oSrOC5hyhL=FV*edpc79Ts@K0boD--`zY1> z>cjy{W`d?E0V&lf9Dr`}7Dh%A;xPL>lAe$P5~wGIrsfN2_}txUqEnhw|BfN#c@w23 zbo{#0AMLEVaWw`{uhxt*RTuoDxLa<<8uEDtnyG8hs& zQF&wPo4r;s4bGC&&gXaRxcu@RE5omX{X(=janpZQ7~vHSUuCD$?mv9X&5$1oYWcIz zV)CMtOgjCof57)hN^-Et@VbZmNjWr;naoc&yL%TF)xyG?K$4My-dv`kzY>YJ$qDYc zM@}Xup!7EvxL{k2O;#qYvC!|~Jzc{b86)^Q&rsA_1yUJUVwN#ukqLz*?fEZRhOr-L z;^Ae~5wyfN{+ni0*EwG$ruhk7ol#)2wQxu)Y*wo&=Q!&;64GjA# za{VPq+iHd>3m=P28=4$tlz;Ig zG4>m;e3=>Ek)FusA(WA50$ZbFC8AK^e10Om8jie-OHqO7WtnF3l8Opnf+hus@#a)K zUx-yU;~tbez8O)K-Gp1bOp@LG*l9D=oUK+idd-L&9>-iHhwrYa$R@z|z{LRbpeCRKZ37HJ| zpJ!2rR}>?eBBR2gnjva<4h8{+PT`Mw8i~*pcppWG$Nl)5yVQ(T&VI+s#Nx61$~N`L zk;&4^w)SMHbhL=`{Wyryk>ZAb>--h*Q~BQxw@~}&v?yZDdUR=lJ^n@;SYBoDi$tksr7;Dk6rjw zO!2qEK1Tk@(^%79J@$sNUx0rI3zy)0SU*E_iO%zBQhx8j|pSEb)X=@fP)&OnrZ2$KfpMvnle z?sTSXcTeL=N;*CkjM$PGEZSZH>tXUx#*u&_r}sH6KqTu^4c8X(Q-` zHs;_bPnT~!x!whc@_S@x(L$G_v*&itHM}A+yI(L$fD(F{J1X@`go0YJLOhbqQJE+; zGoBa+vmnO>AQy#bE*d3-H8_8WY)Cf1v`ssrZz5uwvYJa;s(kX~NiNu3e`sV=le8`C zlDYa!Ar&eVrfTDGPVvcKLmrRd3FfhL&Vg!!of#Vl@~?n}EG}dikVHaM5t&jjQ^Bja zK(^9ZO*1OO3xw%3rSy)4jEkA%;%lm@w^F{pe`Dpp7TVC~@EbB@f{4!XEYDK{@o7#FpM>p;T4)LTVRXQ4g#2k% z8Hk#GFpae6!We5v%A-(MOdrNXfJFG}G!CS4axz&k%T_skN02C5mRuLat_;~J>QxJp z_0q@~rAFa9<7ui!L{n=M$;4VJLs3VzWF8@rMYo0Z)Z{?PYT3uiQAg497KdUj~S&(seuko+UXF>09XaPS+v9eGK?2AWb`Xn|81!A3$_46)MQ?dmW;PpoY}YUh}hZ#X%63$aOUIbO#JRhv?4yEjcN%!iY{$nPVy%azb_`c)tPuWeIP&w(tdGkyk7^sUpgQP=}Aa z$t%uiCmiMg#xFY|s`-)hBkw<=o1-KM`4k$Wr$5D5IhDGC^zUg&yWKu~SX{ulp5Z5StN2N$i(1hnXe`@oAF$v2Fyp{b>pC9 zm8k-D6NuLLpc#I4?0MA!G2|BYhO3gH0RDxaQ3)=MB?T9`5=&1P{u zg!PT&5yk_FGLm#V5G@}FARXp9Z{pnsV4LVxIfu}>ym-CmO^d9~vX*yp+=dUHl0F5E z3Gi*rOFj*uu|h2ez9k-XSa@?VZxYw*=kjtqr<1Qf#}hm@4-lrnDvC%9ACj7jTmptf z)$0~%KAe|OXbz}z7x~2{G~JptPaGS1t3{ymMYzQz6Dlv^(jfjU^_POu9C_V)3=n>~ zW3hBCp&?7q2mb6nr=&giIp92Ao%0b`EbDo0nn+@fLVV<$n198m&o`TZZIZ4eLK-HU zqXi{{2lE`pJCGHL4QeqO^TcosBp`(|$eU@_@`L53fD`dXTRiTdPAf^D;U2WIPQ!Ui zK#)>oPAx7;c?$m`9OC-2qPh7dZ8@2Un%q7!d3j0e?zus3K^~s753JUJAplkrYjSE? zlXa^_xAK0a1)u!OLn6+aR$e%moK#-EH4tXUY-00ZnJaEL1XpPpLNH)kYhd+9Z$B^9 z5kZAwP|{~UCCtIyV(1YS&Ip4{a|66Pi9fH`5Xhww=at9D=Sg(6mur4O1W+)P<7#hM zEp0n_r39bO%=S7neF;l_x3Z;nguDF}mtRhS3^A)22xt=b8xA3!T5(lWx!wJZyE+QA zp```#dac6xZtj5e1tM0H!1+*#OobA@Lvd2X6e3Z{Ss{wm4iQl+*#xAoIE29xSgL>3 zqFhG8X|b0ppk4GDL9~uql7LwGmyli{#aTc@A*NTEI+Ry3eb}Kw(`=$W=M(9N3W`L- zMu~l41L+0a6O$dJZyj|@bDy&6$SILf6j&ySE|z<1Q}V;eNWd`RE!5(mcDj{KQ5=+5 zTSv;_AaqGi3UEWj8UWHmJT_=Y9NCkr(+rLgWJ{2CBR>+C8zp;&l9L=62e>3naI6j6 zRX7Fi7j_s8m0KAM zF4~o?AS#9;f{r7drbC^HfAj~WafK#IZX$jn1gK1SypeXYz8$hcew8E>-kO=KO~gs9 zZ51O^23cKUBbz2|KNStFI$klN(z)VvxN!W)`g(mWn?)e8h7S@z8hxYA95N&0YiDY; zInq#axqY|oT3iCPdikFvVaZ@v$TttN3Br;cohH87vr|br!%S@;3N{V%AjWQ^mP|$> zor##OehmS2JY+tx+`o)`7`oD+h;A%ZjFR>gEAV!_7WIa`iL6RbO!js!ZL8IKB^Y&~ z*8qLyf0#rsg2=-x%sAl(?eO@7x%sbjPt%zQ7>pQ`;X~lJenp_|L_i3jXQjue??Sl} zorJ>;>ezTiMm^n*8mC7lZ&bq6X&g5EAW~djg`A6EaG;&&dx0J1@XGK@oZ+yMxQ@dt{DaS$j1U`*)Hm>We+ zl7KJnfr}CQz?EJ@A{n6x_-+`gAx16x`610t&ZcjQ(ZsKs zYJ%sPe~e{LDKYD$0FlLHaBs{Hj^Z{6DhzRj7S(FG3v>i-HEQrsz+)cN{2`ilZUiwF_l>VNl=F@C#xV9F6>EI$fsd)T4_~d+7lyC8?W}4Hm(?SGyCp|UEY}RR{~jEB zo3@Mr&li}-U^pTq@ELd^dME)+3yNI}l!Hi4c#=rUNK9n63V+gy0~y6wrjfElkI;Ih z{vtL&p?xuVo$HEArc!qhiv?&wmEwydq!(q=& z*T}>McmB_Ms2jbCtKKrb7I*Ezp=PDJ(u_qlN=&XesY=CMwQ@1_t^_H9iztDWVIdA) zOeoCR{8Tu^l}EU`T#4OrGA9LTH}?Lt+e7o=da_XK5i}z@{WS~FkaoDH4ukZzCE9_i>^%iC?PWfP$ zUg1m^H0%%5|B5?iJXf5UXi5mY8Ey5WkxWB1N_KPl(&5)Y9-phPb|w%(a>aU~U`!$` z7siLbo)Lw{!&h%s&9fAyAspW0i?w^$Rn;qOi@h>fqoJ%BcdCNrbjF*-2__kSn5Jr` zEB(Y=r82yuJh^Rp#Z;YDDlw+U3pLdELcUxtj88dUbb%|G`pb#MWNqu~f^CGyUeHk7 zS6X-6iN5<7lJ*=i57=9?qmKOX--f{XlP#^J6=u zYoBbyNErFh54Q;VCMI)Kd0D7Hsnm+u06$f#bu5B2whOi7O$Ef6mPjV#^m+(86O>4$ z1l{safEwAKO@;8ASlM*uC=@VKju5G(zhgJKVOd3u8@psZUQ9??1p6&Z#m6CLcoGLoiEuz zoLD|M>cX7@UnNIjI6_pP0l*U5KxuE(`NGuBY0w!Fh$wPG?bzXOHL>uREi&nexQ*}i z)tQrIz~CCCrWW?plSPqfqCP^FE5M^(7P$vm3+3TjAZ2r~#Ly4#Ks38y z&YsGl90-P1D3@ZD8~RB*vcw<#qnQlWVKBYp%}CbQ)9s&9~0V@|7o!-*E6!|IC@$wG$^UShMUz@29T2{Ho*PDoZ4O z9^OaZM#gGuhcYssRl0DKL^~P3TgdqNY$KnyVuk!XBQ=^0&xBL4*;eYPUv0&vv)Qia zmSeL`_e#IQx|d;nDmpvuc7f0hXBxd$F89-c&+e-0yH|CObuXi|%Fl330=o!U*63tF zm0f>$7 z;|It*rK_WVPJ*nHWe*EBu0rf*fsL~w`1ukdG>MF(0~_SxRdH^M)f4lA(9h8Ml90MI zq$lV%Tcsm=;=Kb0Wm(m-j=T3}N5nQH$l-cm%?vp=@3pP}>)`f-EBq_9f?Hx#G7`^? zl!T;6xkDo@6lyFnPQr|_hrj-W{&^1) zOM5cD8LYZ*`%5NLwics>oCOcb0@9zcNtUZ^9Iuhrc(!u;#!Y+nY^?lI43%(0ci-d4 z#TYjceVZ;7;|bZ5EbVtbt_S^XjXhH$#*hl;g0H4CfIoO zu3c(<*VVzw`iT>PAK(P>3-=L^oki-ra_pzUW_xJt&0|lFeU8e>|IgU>#)f19jH^06 zfj6qh)jwn9DTAhP$dFnT08|Wso5;5?(TG}{1-Qek6G`SF>)=resH@Iy0$s(qCmn%#%7}>I~aR1 z?)+)d#zmB$5{J7SEdxvDpz62e>?r1(9wRyy5E{s@0HSaT+1tcByyb4;w4y@DRyhc* zUG@j<#4#Yw{eizIJDM$un8_){-N8nESvktb_l{SG_bYF7r<#{Op#=yk^XH$OBFN|a z0G|x~KVy)wZ_q|ww(kG)3&HS_4#QAL>VYI8n7hs|-He?NOI#Y89^!~tg0BdLs0W`9 zhf`Ru!`Q^I$WfaXOCYwdBq*Hx9K(qzNDm1C!k}(pI1!6nL!cdr^(Dz+#A`F+qq@X85bv z5w+EQb_PC~%TH%hrMXj;f?Dzmjith5JfEA+sLot(dwD!}q98^m(`;5^#YmLEMtl#` zt#lUiXdL9%V!4scVBe3pnR1WhO3Fq6t35?w*2(fZc>VN=88zFDT#6C|UbZ-1p7scn z2Mem)ZiEt8I58661@e^ul)%;uGC8@Llqv-=A8i1$DE3wiT6CZEAb9U-5Sm82)Z>9>|?(wUMI8CvJ18DSQ~Id41?DuN)*CRgI~O<$GPssB#W z{W`|g?$i?I;emj5aD*T}8JqGx3^l<=X*0(A4~^iIRbOu3I5cfu`iBNlc$9 z6>P%@q{{u#eLj>ajsu{ZzP>kk;9w}exjUXe9GjvCtkkw`7o#4;qFyC4HC{~LI6J8h z9T+viQfq9hxT#KOJ@Te#A?_4>Ny3arD)m^t%57b|dsuE?6N}WV@#3UmT#T{z1LNDU za8sr`R$^pQyC4#t@S>q&75jQRJ#K_1%iyDh%9E7-Zt$9?EH|Ie7YcC98&eY@ zRhyvUBt~a@J`!~*=&OZWjXphq#d4VrST;_M9xW9H9+t9U)H!&u#~8_~bj#>1!TChT zc^nyF6+RGf!$(Isw!+@3jTe>6tzvSbcVdK)a#1PcN9)XK%~oe6XesFB`jSUbZI z4k0i)LJn4`S*+%wb@l`buLfX;a-;g5SpQRDfCeyehEqhVG(3Dep>QG3D2ilpP8FRu z$?ISzwXhh(kO{$|RuPZc5-vUpp4J411iSJD*#*ca?unukdG=&^r(~`WY9SQ>bN)KK zTj!@dt3TEI;FjxaXG3|M6nG@Y#StRL@la?ygNH7h$2^bv8+z#;W*Vp02ZerU7ek7p z-dPSx1I}tjJv-&|Gc{YjP@z3}K`hoJh#b4dE|YwPOd#26={C=&n9%4nVFmm}=up;C zL$r{#I9eBWDni?0{fGAV^})eT@wt`}D|*dZuU0BS6uax?O1Dt!^=hvnod2K6DLUKZ`ErDUb62KG`mS}zlqWe@4BPaE|)Xu$?*D2w>(uYx9`;DR%sMXo_ulf z#ic`{Aj)1#_d%dFK(mns@bT&|ti3Ogcc+DNnm!0!7fu-hc&i`=*%mcYS&yKVIP!sx;B6 zjOQml&1tZz-gbET(<;>4v1fka^rfq_hVkisb9hlLFNJIV39=$60{>*<$jPU9_?Pra zZmfsJ5Uk-btp!VHp(#dsExpq@fz0}&-6BcbqPqS_r%0sz`A*THz`9S21eF?4$>MJg zx&y=KmvLTP&?g^iHZSaukBiHJ9ufVG4v8DtN&t1AyI%K2wR$(^vckrI=f*-CoQb zUpeqG!|C)$E{|1~z-`@e$Ee29Ej>?|5qWi;w}?WPT9lWF z6rx#!@QRixz*E{Bj%8Dbl*N3)#n5b#s0~Ro1GKj0U>em@@28K1H0ZcWaiM*syyWfJ zcyeP$Zk(#~xs^s`_*|vFnhQN~L%W%2klc03t^MrAWgnPxzTH+X;V zfL3h7ce5M2MpaKVCKiMNY9an2cbbz6zdrC*J0lYqb5hGineA zL}KFoEG|ggn}py7#DOQ%q(@VPCXXm42YFN;Q$Du{iFl1#vR@A5SBp&8ThJe@MlP6Vub37O7*97b7&7%7hy2y~}F&gOPusq*5P` z$BX1Eg;b(b^3`<|5Xn(o&Wic5WM=pRIr8CdvpF7fvib4_{5QvV+_xp`)13@7q*m-Z zO<@Rnu*o*Yo_2x2FVd1WAq_NeWS|7Vfpzv--v1j+)2H6k?E&=T8;1|wPM|Scu75yG z^Q0iSv3rR^F*4*Kd%GE+bC?@tB)U2@`sCrm*Gee$D-T^3zZsGCfm1qo8etw>!Qua# zuj%lCJLcyf5%HBNUvXXiEP^NayZCV0M9v3(v-7E=LKR`SRdf>kAHWM%#c~h#Z7yd6 zkyYdWh+xh$zq?U*nhLT`a-*2>o`0%YT2H>!IDy%G*eNw{!&QT_@CIr_g2ZV2heD>) zkz(bUj+ZHIY?PW5Gym@J(GnD+NW`kN6#eB595$liFW%?s|DXGmn07Rcf7xxSH;6Oj zUvQVlQMMfWcx;rfUZyWUf(AH-U2qE0N+*HwD>E-8_Cf6kCU$ze*dDb3QqS=hSBc9e z$XM?YfMTYmSQbt7Cq$1WUZ0@$1<3`;=tCHJ2l2Q1$gL>XM1O#r( z>~xy#f*EtqTu&Hm`Q3OX>>~}<55)u}Ge#_u&c_y02 zRs8~1z__(pNSTRz>R3A3$9H4I_t}vT*Z0;x%m42-_SV%8JlC>{6Kk$Fab~}@{n+^T z(@9zVK{RW{-D~%wE$j^?R-oLA(8}vZX4TXe50xZEY{$9sgc*&QQ;^N*^lZnnT1`JgN;C<~j2)$} z**IA!Y`c4J#Kp$9>z5EdqHnvHBCCj>wE3xl8gglwl;8AG9Z_ZU|SYB7uVUSgirqBuk?4^Cf*C9B4xe(Deg$mwim z;u$A=6eCY}>ZlccW&$t*lu+5XVrpnM?c^L@>PmnRNM4bTMmf35Mdi~~(VOKW+`;wd z*MsZceBpXQ-i_d51@9(=RGK1dY=S)G88o2*RQM8X1qa72M>fFgrSjIY1&m&cnw2@L zwTyPmat{ARKF6*)1ud7Sm$B&Q>aFP<`DV+5R*0>wA8;U5FPAxdF;8Y0 zyYS-(4)J16J!WFh(C0|!2Q_U6us1K^iEJv?x0=bV35-P<|mo$EfZ z-Z}HJ?#;@-waaR!bMty6ZIP=5&@6>drh(>lfI@y>u5HLuCBxiw{h0jWsF0_Q9EK52DRZ!4mHtMDWv8svo zsJF34YrY~V=`<42k98!UoK7M~#8+q;{!_ftjGOEom(rhI(>&e-K|I6cl}%fi+H1q21oaI0!%?YHg?+oc`SI;G*cIJbO zJAl38AI!LkxvSYcgC9Xom6qm-?N^g8#x`YLrEl#i$5nKhj)B;NjQKF*3Xa5V4t|j= zCEinKV~8|J|DbM*6ey`Hq7XEv zYwe`gg#F0m&Z%M@$&q*i^Ij7b>UcA8%ZHX%-P>G~7Pj@4aey4^RP%@=t$T@K|BXl# zI40kB5;e_RTlHSF|*;Czx>?5C4EOetUi-ZN=!cdxk*wVaZ@NCV6hDPgTD=nq$D$g;IPy(zYys_I6)*ZG5w%x90SAlLv_SqZqC4PRlRn6q z(=0}07WHwb3t<#q?{<_})9DI4x$&t3;jjCB@7>{JyLa!4nTNj7Z#>lOdxfR@ z{1YyPO4gBL&GaP2GNcel#9V+7jYo=c2NNb+7D1s0Dy3u+mAijop;Rh4B#$X{i%Xd= zZx(qD&wv<}b@mtHKmJ4>MGO*ndguDf3t~;yYrNYs4+?YhMB)&QQMHX7JJetWFHNa* zY<4z`t5a>~N4yi4?B+ujPR`D%wo)fgs{TY#4F<-JuOB|#ZW`@Qr)^-KHa0d57xY8p zQ^vy5!a^BK%md|$airNc+U+B}EAego4C7R=7}C6}ipE!$4&9oNeaa*(<{@2+B*ik< z1z{#q-3mi*)mhh3w^g{AEG)O=Sg6BJwRC;)Ccz7tz%TagpDn(k`ihC##0?pY1Imd$ z|5rwiv}#hgfx*oYaDhR1_z_lEU`^M~j2K5Bgzp-W6BtMz)IXUMWDGmiT5!Mzg5%{_ zj{HD0M$Jve+?Kyao@tyJcro#!H!~qQF8_eTM<_&E}=$=yKIPoq>LMK}rX`2Tk z5`L#@RZYnxmcR~#5$M#q5Irf#(G1u#TzLDjJmqLiseo<%+1-Wf%BPa}qB3t);dC;d zbgptE<4*09b=CVU5e(V5X>**%2 z`?F2S`^{)Z6KphEy%)T+jXizb}!f{pYR72MIA znm&x*Z@RuH_6QY#5fjDACo!$&AtVP>kwfSt^wj|(x!xje5d%brg6%g+1Ndv!-x$O- zz45|t$2!02rzGA<*LwMnBi?;EIkmiLic1SKCVP<=)?!u-7R3gL7FFkdp&z-$9BOz zwzF0&7`@)jD@(Crp=X0JLMr_uOLutQ+OX3NH|{Irf9L-rOZ=SZ_Ithl{l#Xt11?9i z+ij@Jb`%N@h7LdNq{_g3RPE^g54Xk>KUGu>J4 zcPgd1xf1_Dyiy?BB!utqc6p83W60Bst4BvU5O*T;SOzn_u+vz!Fk4U^jR8!OpFDrv zf^BP&n=v3nsy|o~$kk`={d&ps)E|I?4AiS>7_}uvD8^`Fx8^pD&0eQc33nl%rrQN- z3|KGpNJ3Z72=MCnp8@Vl?P^UFfn9S-tIP8fwM=GwBAq6EZ)2{vS)QEPtB9Ib#YMLW z;6{|f_lBZAs=VhHej9AW0$Tr~#-6xFyj@ z2cpdAYn(Dksivv07o=hR)p5+x~O;KgExAf ztOcJcbI0t4TAx*SEN#q&W;ZGoJ}aM9v+EnPy-M|t*-Ay=0q$6$*~aW0#%njPH|FLx z+xrTBqtV{HvGeHe8?WEpsWp7R**F?}ofA;Scc0wYI9aY#{y|nMmENsJsa)v++W6%! zZ=BpPAaOd@?;d!~Nyh#rqy851l+Qusa68Bw!;HurmP}50h0rjubU?)bjwam0ax;kS@W62%CV= zIyD1ih_`x00QEt&1xUgcbX#OLm&gfl&NJcgqsV1qY3SY2E>*m8$*VDFuqGFuEk9fI zDANAygI@8AEOv!rn5CX=tonkIZdqQ0!PJdZa$iI@&8lv;m=!D<%P`DrKC1HsOC^*| z)V6nl$BL&k4>VA**(Bz^AtUlR_`y@m-o0kC35sSAbJB@k_##gV;unQCxLTN4mpCw{bxo)~#_p*16U+KJO zk8`E5FJ^~39b$H3Z)(cOlSyJ#Oz;MvoKjLdUmaANh64tRu`^OE)`x#q zFBT)K6e+k;J?sw;7_S0iXn1?AfR#O8SMMNv`fnbW@hQ4P;Fo^c*w2BH@?Pk&4k8o* z2o;w(7HA3x!dhb>bc$gpyR@Xi6ht7_SU`F*(_G>$VaFU0Xu~7j1LDQfPF)MJnZ=#W zaT;wxPjQJ`)Vt+!d0tBcs;Ey@%V@l5O#npaRx53CRH)~(K=250A^BLc5|88@VDVEq zf{Egkv89Fswa>_gv83K$*RV4;>Dp$h& zR;l?}m&xH8>x+xSk}igR;`?(kH`3JRgK3fvubs3Km|?>P$#!tSP$5Q&Fo8y%<3^Iy zW5}Yg6eAAr$uueBMlz>40#A=(9ukx@QZ7*d0861rbDL=6;V(s$?Is=SQRMt>;VJIH zjZ>$mTJHr_)=#LvBuzvg&~%<`@|#@_J?v zNHqA=^DjsMy+i%BQSIW<2DOe$g3xP`Q<5JFzK9276W21vZhqkx)jx(-(8tSMPe&nh zVj=JhNrINm5e1XgZ!}Bb80rsY^VMulux@{R z+Y{-0OHWM+x`@nLQ9vxSha-IJcY%p3mb8H{;jaui7$nk;QQdCaE0M_DwZ&3)B1JOc zRQui=lkG|`CGd9Hi4)ChGe%^E?Azi0Bmy8vFEk$6&PuV_NjLA z#(Ucpa%pz*+Jy1RR~2 zi6LWOtK5%lYwf&-IKMaYP~p9|MvRH&v+cGTJeO!Do?B_Rjhn6HwI?JU`1RzVTX$X) zwhl~rbK7@Whn7C)IG7)T$U$h@?nmB9S;1XbNsYZ(3^nPO4gGEo?=} z^35bGcr%i2wRXX#sUG6TrRg-6m@}qpoSF;FWgaB@j4RgWGC#=WC)3GJE~5)IhB-@X zN}s0E;56h|$(d6VjirAd*4Iu4*Usn5tqbm_QQ;PQY_g;G^AK_!J?C~(ll)z1%9~?j z`l;yzdN_qxPT$E8g`#aI#$jHlv;JiuXq*Wd!%W8Jn6?Fq@!QL<>^Sv@Sw#N!%)Zpl zxMk(aGvS2_S%F+Ov^*&`0ypX(n%!YJiR|!eJnMahsO=`eb&S6DH-74hBh`Jt7Id76 zh4y`cJt5xctO$&IzNIc3{_VC0E{m`1=xwh&|AR|UfBq76_>$i*Gx9FAZwlIn_{}0RIxej9OXoMjzO-}2WYRGtbhHD#%JcaU zGM-3gmESj5MGp{SU&g<8S}&fKMfDqa*HOMVzPlOou$nI%z4GYM zW!ZzR)}I=#YZI;d%vAUG;dc{Zay0=Q#D`9qDl#spNQKyb;g02hFWco~_!&D+l^C;c ztk^aPJRLWca^HV`_ZBvi*#2GY5NCqE(D^8%t{CKzGy@q`t1A8M0*(x+s;y&}T67TF z*`f?7Mif{y76IGxi*j!Q0Zd2HA=r>;FPgjFXA=8cLxrpOLrJm7@6;MY;^eNmquGgDz>{?EEbfil=^eG)}uC%{qYaad0C8dM2nD% zOmX8%DHgAGAD*?XTq++M3%1KIM4v$@4t2dM8)Q(@^`^hrkBBoCw3*QhHTI(> zCW5Fz!^+erk5bbDROCj3k5s*U)Q&_c4O7L=WyA{Oljspqf!Uy1msbICpGq#s(Tv;_ zQ0qBQpf=DnCX2&=DwP%VHIuGPs8)Jng7nN}D(|M+e#R-LvP4@_AGbU;4McOv%~d8! zkx<*u#R?%ZNM=3XPXlxhN&z4Gld&7mW^%qaJ4cDE95geNF65e{cM;@5=9tlA(^VmT zs7pe-#T=$(PGTm677Cx!BKETSv*CS*t=kWWH_xOy`H6P8zM%Z)zfs7j`vtdicpn1N zCsnqTKYaVqji)Bc3-xN@^Rj0q5VyAEY?(JD=!ixYBLh>*(mCn=kviOL0hJ_-+Nuhp z#^THb5OrC2aX*3|N?fIuAQr=GE;x%?qC4=c_;*$u&@|W#Qfwjc zDlxYXMp4`yeue5WlxP7xLj4z@Z^zlTYk9d5wG+cnCf=DWn*|{ElJ891P|W$xJHarH zHg4U;71Rm=vVm-oV(4gHKHvuyGg)GpcZwxeqIj`KE$ONydi+cy2Ft_oj-c?6L3xU; z=UWOMP0z4;AT0$Fn)>;VJ@CNC9(Xyz{`a3zR}a5&%=L^!k4NlOtI2F8IRo2Fmewbe zvFIb!8Jle8?FnM+-Jh#qk;4)fH}-S<10NgS!wH_b_udoF`Kk3z%uejj-eB7VmZTye zpq3N&H?#YbC_tTc#9}OYI!m(>8%w@0eBoQXtN%83KOWF`jeULWpVWSJrMh0-uFk24 z)w|RO)U(iCYLgCwc61aqLoVF&dOq>}RNyX8maZ_QhkyL=#R4PTxkU(JJtd}BP+#A)= zz!orLkz71&mn^V_Eo#XpL#S+ItQV@8%!ILTF*QFZ*w^+WWXaTP!B;colTx~N^5%xU zRXnI1e+62ILb~GBXN(y0I=>%8eT)?w`7#+7%H?> zDq?Z3*Sp2ypIR=J?d{UK)wucEoh10gW2|G$0tXCRXDVsKo=LhQG02NYipi)dIB~%> zibj>i!$=TRoN9jws}zY@lc6h?8jX;#(vOATi^@z9xw3Ct?@9r!H9nq6q}`62Ug_`7 zk*?q0>=V z@JiD2bLcygmLXmzc|LJJNni0$nDT)`c2m&vI05)(!pe>pw;RhVw$WQO)nm1KeQJtC zUj3z>Nj51CGgn?}mkBWy1TAuwC@+#SfdJy1f(_5+BoJ9qP)JEjBP&V^Ss@_jA_<~! z9K(rVUif7=Z_-U96fBxwxiz5NymEV~JQvUTnQRg(BX~ohIH5ZU>co?4#jpZ<&CsV+ zX|91sl%oWPo~T&J91uTbfJLUG6QzEdgfnya4`z9Gdo`S1D^5J=tmjE_i`kQ+w_kq(lomyx#n{KhF z_Nak<3rWF=L@FuCx2@x*)9#cTlOd*BsXIQNO9&Pi`ju78%$=!|ywGU!_!V8Z=N{<$ zHE1@1XR~+gtiLDlt@wX07{jo638R%+#RX3Vy}m*?NU-NPvm`J#x2s*{n7EE zWp-bLq%y)|8PIO)SYdwz(TK%=Q~-#!2aC;Ou^C4vjYSg~ss)Ej(YZ;xoTsoNiA?cK zLehrchrJg}2ON~v6Z(MpG^qdpAz{QJetvvvYJ5C40j!Y|0o)IRnj|5kIg4$pAQvcp z=PYlWEaJDPOtIEp2i`yRWv)Y3gcQ78Y+Gm50g4U|4@D`&gPZ)>sI{t(9R4CT=%^#( zJJ*y6b;)MR*T_+1P+FE5P1_$0?tI@l;yRP!Zv<@koMXD3-sye&GG^ls zE(rM~1oTJ3J3n)-s-H;9Hq~=Z!%Xkp_wwG1Yd&yc)TeYD?+zRIsQzJ=7^6i!zel4y zu$-pleJqX?+mWfPPu}*(J8-L0jFeqzf|r#|5RtST&-_#$21l&jyZ%g;#OLm=<8-+#(hEmXXA2R zJ9!M8Z1vMB-fq*~p^lT1#oo&s*<^y!~@{Ac)6Z!3EXr~miMPh(s;{lv?EKzYlB z(>%qwQfFAvk71nXtPY=(RzEmRRm#)+4DZ0kvLH(fRB${U#5V-7t4Z#<4;sdeycIoq zWLW88Ba!K%ok`@9=w*TF2M3OZXb4JbKwg#veaj+cL5rnYu^V7y0CWrYj|?*D3SK4w z{_4w=(;*I*@Y_-bbZRH_B|LYhk4TLj$2n69mjP#Y4%}sDO1CF#MfEJ4AMnu9Yl*9K z?AKCf&K`cq_UAH3OfYE7Bd$->6S?1~`vmm|Xa4^= zR;$%&Wm#VDYIn8k^?JRm?PXaTV~jDzF%CEmID{BO9B_!^kU$bb2zB{@p((liX+nUK zlw3;EByCdKq=eEm%^_)%(_3=Ve^dTxLtC1Y8`JZB-qG4?aL)hq_#%zwKJUEm^FEi~ z^LutwEo*0KAE!K^ki2`YEo{rXmiKQ*aeyDT3zZ{aMNK_l<^)z=H>prdt;`*q&ER}Q zmkbcd>fLrxXz<^z0EroJX{~|b}~FLm>UYGwXuyFjGkj!IybOZ3lYl-1=ec$ z{gK1kw<90<;=SGrhn>fl4mgLs7aqCxu%UY&)F1qacHoKQ(k%&{zlti zePPGzW19Cz+F$+Jd)zhC&Zjfp$6kCbx1i!}!^|D`;$Lp6+(qB%uV#%Pk_+=05hhho zdWMy%d4`bu=!e!K_Z?eGU2t7xAO-Ix{a#j zl_<+>{cwCw!8kEY7;X9#?~Rc_1DUDumN#bx@5~5l8qSfRIfuq`pj0ZFnOT&*2$tPu z*PvE!G%2lOrxEkk4gMXO3OGr!cT#tzCC6+a4FvSgJ(FLeWCc zKZRoOlV(s+RfVuVO&g-fUTH(ga1uab!WA=@!JgWk<+V|vB5MNjvIDw`t@%7JHW7g< zyRN4lmB^zpltl~jNalsW*d$XWE-y8ARwUElbYU6Vh#sp@r7{*IfGa~(!v4$1k5L#L z{Apw?9g=ZDQ!?ey)??by1|9(1P}GIF7tgm5nX1f2tV&~Fes9K!RA{Or98ZDZgskKuo{Yjcc?yk(SU;Mff2NA!d$X$!Zqoy{gL z#Mdf z#&-`=L)f`U`kd%or|9?7$Yf@kG~=I6rJAGD3WAG}nFJBxfB5ll+F*kwcp%X^#7C?A zIexp*@Tl*4ur}}N#gXB07hj2Km87zQX`wI7d}apF1Zsi4FjDc_q916_;N&K+nz*(W zte3-Ux(kU!c1UrS@F6uZOZ?$rf%bS$MuHxRM6RCKpq6ASRHFML2T5AnVwcrKCnur;>z|<2zy=>2( z%e<#Em4H$9@jhjQq?R5a1e^0$kfajVHlwqpD}m6;o#Y_dN3wsv7Kz6Vg0loeU5w3; zOO+eh6px2jy*rzcgbc15fL^**-FVS!?>_(hXU<?rO)_Ik3pGHd>x0z?;}*EW+Pc6NLhJN?LbbVY(na4ghg={4S0O= zKX5tWBJ8 z8gldJLxF4{I_o-rL-JJ_dQ|zB);)<4FlAFz@Q_+GR?q838$h%?Dv?w+`?xsp1?aimzRwb9=CEDm!$p1y!=t^+% z$G{6bfSxOk7rYTz5yB^@guYJq^=EE14NH?CplA_h2!UyI_Ri7amEaPm88v8>e}mpk zm&C^@3v^L~&MGd?<@IVcJvOy+JvtZfKmisce?oTFP8ty_GKE94K#~%LH|O>+JIqX_ z3QrVLQ!^~@nIm8jG+eX5PSYS)3~PS>y#7G}MhODW*o@3$t~V%OO~_uYDw!bUSi{8Z ze;Y6$c$B9GbfLqDjY@yy)VoP&l3*#J527 zzzoG)*_HZ~IAZffNwBAcn;Id~!9OA}dPrEdGI$h-N zDM$phhAyq*SAK24AXdo^vg_Xf_urkovw>`GEQjBjSEfqg;ChoTF4ZcRV}4?(DaqP- zg>8Aqfw~mJ?Nz*E@+w8+$Mbb&5wTqJHMr%iqV;zI(Lzv=KR9#f0wm4) zcsr6u1rE2zql!{0I+m)NrM~8m;aVsc;c6_T-5v$^A=ozhbr6tJ40=U-(n^;7`p-&MR6g{ZybaGCeUC zWE#)4sCi1`i}08JPtVo&9NlL{@8%Kqt((S;`-FFWHap!%MqpogTVGjw@-+{ZPC?(# zyFXRhzWp`Y@h7w=jt_Mg=(o&4BR%|4`r4m!?EuxwBG4-=0O5)svl1b~Uszk^Xmtx9v03U|B$pAG=s*R6kRhsE)bu9KM`23| z1dTeO(0Ia(5oeOGL)hqMl(d$pq<}@Bdo&_zlSVXSWc#R-(@gdng-mau916yxRQ`pE zM|sIW$0HbFcsFc2nW<1BK#vtjpvQ-m&&=#zJKh>_(~NSwP~eIJfkk4Du)|aJkg82| z6p#%lNNzW@KQSDG(M$kBqNpU7!R~M4ePu3{ssef;4hABieT0)pO#(770gs_|#c-}M z?qe}K^ft$L-jTsZfCef#-t{oRTP_`m=N5#E8x{%3Z%By}4xhenV)!+<6aEFFLvGd_MkatUCv=MQd0 z8^;{nN#aY?dDTiM^J~u9*qB`oJy=jiGQ=@14PLIVk>T%AnUE46rw>6y@S-T8w(AMi zfMaKV{&OK7cpBw2Q+hgM>u+m7Cn+Uf6Q5t^{`)PJ2diBn!56`)`Ek2Zbf^ov2!UeP zb_A42GGB6un?Z%_q&%0BICM%pQ~olYuhVy>lPT}MIM2yk7|4n$<(s^Uy0on4<0x-mEDmq&tA^M2lS_-QQ5_N6a~nn1Z_A* zH&Ba779Y{HPjE8MDU72cU!+a^yq^lViJiipqG%s;5_nP+9D*}qWFm4zS3xh~Sp#se z!M{8pQb0tKvKal1_XZ-k7ZrN@q*Gg}23S0euizOGot9eqwQ`c4uz5(ywi7?aHLdCJP@#IUl7% zry^TJkximahPH--X43muJ{(cX4*rlXgV>|!b@yU3yD+OcsM&+v{J$m;k2H@M6UQP;&k#H`)TKueeRg!La8I} zw%CWs2mjDNqX*~#e4d)4C8)H)qV=;62>`@<52^D@D6EDN-s*ozs$FMMz8*bmqfV}# zDA8r}{AK3RpI~8aAC*(eRn|=^<}Ono-`ni_f?VPYXcjBZr=?c@fam*Vo26a(zXH|Auyc$ zzbZDmJaNhls$v2CNqn9D4!-b_Ns&kQ{|>5iAku7*$>b%vzDB^IoHR%8baUAnixNig zXW5|%7BC8B2oKdhG;Ve0!CYpvad218Z*KegjW_OPFc6c>_4m&-0{UR7+-Jven8zxl zrZE}KOt;2v8K0P%8m35IYG`O-e!e<@TOTxq_sQgVkwOIywyiZWQLu904~gy>p%b~> zRCl)6qZLR%CiB19Y&x*;p^xDXiEE`l{ywUUn_cyhhjE$*wd?DZxV_f<(7<#qm(4m3 zMm}LG2SE>S0`oQOb2T^Ht?dnIObn&I)z7RdmvcG5cBNiW8~J>$T>ciOVyLeVGr0hP z#^DDHGc`kTTgcX#{c?T4N}XZhma|MQ^6>8YHp?F_+D0pA0o=Of3jNDY8>6_VjUA^w+wC@cxj@J7*#J?JSIBw!!;)#uh?kI3f72Na26Ob$>oRq| zWmn@#@8pxRn@g2E!_cjKS=9ja?Oeg29O$~P>tlE!mOHETWuARl1AQ_E+I~BtZ z!72a!brRHO2_b=ssWel6P{^nD*O@AyLerc#T$(|e!fyyecM2$22uCy&Co(00Ngf*m z4N_v}BSMS8pkyL&1glZhRN?~~m1|WpY}56llJP>)413$fDvhTHN$Y2WiAy$8%2YGK z2xu{fm(Mlc z7G$(ctaLLe%BE}w-&jx@iai;?HO6>Etc~7>eAXJt=SznQx~i*Hgu#LIk^LsIt47k`VAp_ zG?H6eIuC-hVzHG=l@Nu7J5r=RXkTEyJnC(T=g0d>_5Q$YPa|u0$E!wmD8C`l<0RVY zbS{@+#43AF#+T@*Uq;4MiDF3RQ%-PPK30@^c4Ax)`B4~BoW}Ym`YYiySSa5w2Z5Jw zQZucn_n=r%M7oRAS!!!<@4(4?P}yqlZ4} zJrAt&YQ(X=abg>Wfp-Z`I*t&~|6px`>Y$fe+OauH?Zfewf4E`H`KqhxKV4TLH?Ifp zgyzJ2rP#H_->N*TlM|vxiX3fgsqxLbtJM)4#+AJHM82Yzn7=xk1gth_`kt2_DN||Fx%zHS4&j08 zYPX~Yvrn1Y$p`O8zX37ZcfYbtu0Y>=Bgnq(oJ+96$}NoEhBt##$+;zM#rI-}`-570 zwC(9i=B~U0pThyVb&~AFVo-?Vuzp!4-p}OXeX3ZiNa`!a%o6eF^{fSBHyQVy3R9Gd z;$0!r7z>8N{b94E>KcbzW>~w{&OAceRIT_39P8!}BgTQ6O?71Z#E3PHJZ~YLDDBh2 zfn-KnCd)<;x;7O<=)@+w=~KhP4=9dA9FfS{6(K#*UE8k8lS8>0A5y+E7HXA%bTqn? zdXS3o%LBj&rdLEJi;WrQo(477vCi(8ZZt~8>0P(mrq%@HO-+J>JsDqjK6#9|BC=$_fvn6;E~aW&hW&_AXz1dVg`HMMS^$50{@Jzs}5?7B=rFYy8N* zO5=cfB1g2F%9=_<;U~tj5`ik>3p-2b1UG8hPBi|{TW-nvqIvb6@tN(j<9q7)@(D9? zlqiU69feQL$j?Komf359y*%N@z96-+z8G_UZO_Dp?K9(hR^`G)J#tjaa~+MCC;D^b zC72X_h$w8L*n(Ffd#(pty5MJ0i^oUl-TsHj9`RzU^o?d-oHR2_w20CE}Aw^b^I8Uvguos88?DrEqSK?g0??NUik z8TE20<)|#gOsU)mf;6*=cc{oZ1+Xo!uN~*@wS>hXi8490yhHKD{VQ_j@5qi>gXt{F zJ5Me%jo7{7p%PIM4v1pHBPtM{-vCIq6Avvc)a#kl;>`5o;`9vFZ0q%fZ=@WwhRArS zAlZ?2zK|GRyLIc%%@-`bqrOUOteQLTfb{=>*Bn?wEI z(w;IfE}}i(4%%PgAsR(hRqa z_bd_nzc0|2yfRKMf%Fl>GlnZ3nB}~7lGFhmGLdq51UfA@KUcAJ!*-9zp-iH34*na% za#mt6-cMT9YO9jk&M7!mrZSv&E52^^kF>!*!RO1|C<0lATuyy3e~GIXRm#_|CK)tj zN$C=~mDj4JTgham7obPBr_|7H-2Tbko1$APy?WTr*c6$_CiNdu)Z6>FRINAND2-fs z(T&=avF=st*7WA}&@K_Shs{zW^^FA_m%U==Z5WO8h4v3WZ~W^kZ2U9G)N7BS2lzkQ%C5|h9jz&Kc zdTce%uck~kO~Xu!DkRaP)p~;oTl~Frs15qBn!81&>Fs{78+c4B-N}5$<^e1#S?CuC zB!800yw-n?*%}^qZSfHd2*Q{YwBRTX&8r_r^`%$L(NYm*MLfTW1$l+U^Hn*PUa4D! z+8}r7&sq|1RRng}IUNN8i%HZxnZ$TxhVv`tIWpOaT@Bzo5sL|-6p)dmCi>-J-+CVB zY1v7cKj8Zm%7WN}r%o?8_N@l=xS~T)XbSr|(HyJzE){7Kv zaehE}UwUR=*m_`^Ci6R(rusj$jd_>XQ1XL#jOqnmBGW1Hj=p8IFYlYkjep5tg#G8&=%GfNUnzAE5d4m`0LVvwVs7 z|Lzh89zFf`&!0E%?a@wtB-R4HGz;kNZUTP=5OR;l((Q<+gH%`cP2mzhPf+_zJoh!#T1ZSU(8@R~}(*9|)2lg{}8jne|AdZg&8Z}DrZQeOKIi) zwcdM3#!68n%4u2g44CiN8e!86hhvFSuU*u0gz`)~&aG%5pn<~Zp(5fP7A7Y~azc+? z(z+uYk%;G`j<9dU^nqRAw4!guiKN51Uav?Z!&2Q(`Km8XwNuG@BoZh6HYT zO!b$NL|Yl7$Zl$3Q>u`ZYXYY%CQTfv(IjNmmA)jrBQlK9;{xE_f%*F!j1DsCOUh?5 zM31_NNY(4T_Y3@O?gH^7}n6#(3a3$M*vQ1B< zUkQDTRE}g6g$IVhL*OK_(jgti@udCLc&)b7_D;a9YAc=tyO3&V@9-Yc_6TCr`$no- zLy%e9s)l77)g?f0MyF<|5>C3u3 z$hrV=tOEGUE^xWo!Lw9kWE_KzCSkRRY9s9XPFSnkr@Sv~KSU^%^PaFXryT7^Omj`I z!P@efmERd0JVG&ptvQM<^OKbDVM*a6S&>xZ!{_|Zfh)kh#|WoAeb<&64rq=sZcoKTqQ&f1-(&=vRv)wiA zAL8cgF+k$carua9@u%nz#>AJB_!lVPZ$`u_;O_qEB>Mx|g`Yn1rAmwr{naTbVO-{oo>DG+m#Y-HUPl?WUXBPkqJx zDR;in$fsWVC2S^*##0#+0xtf#q@DAnXSRb>2#y%W2y{30c7wF3gZg-Dp^Za+PSt90 zzaL3mZ5UUlB5r$XQDLVSrrX-xE>JExi~0-3<%O=Aen@`|O!5@+q6^0%f>cBSe|?;a zAXVsx63j8e89rQkAClD zz%Oehd-zzv&J-x5j7YOlWb_B@)O>qte$EC=I$b2))Cszo#{QE?k3yrluzlyw9Sge( zr8^7bO%AfrA%Nz(#J9dYH#H5*aH?gR?Z;D#l_NiF+hEO6mRu5f^`Q4mWqdb*^BuF( z%?8#=9}8|)A( z&`>zVq^nNk%AqWcs|1j7s2Mnt^R7jdb2-)c;4DNopfapxmJ{wPc91RpRR{v9w?ZeD z1rjFHsvv;eoqZmp4z9}2X!?>K2HeAt