RareGaZz19:(phrack58-0x05.txt):27/03/2002 << Back To RareGaZz19


==Phrack Inc.== Volumen 0x0b, Numero 0x3a, Archivo #0x05 de 0x0e |=---=[ Blindando el ELF: Encriptacion Binaria en la platforma UNIX ]=---=| |=-----------------------------------------------------------------------=| |=-------=[ grugq <grugq@lokmail.net>, scut <scut@team-teso.net> ]=------=| --[ Contenidos - Introduccion - Por que encriptar? - Que es encriptacion binaria? - La amenaza - Formato ELF - ELF cabeceras - ELF secciones - ELF segmentos - ELF soporte e historia - ELF carga - ELF carga - Linux - ELF Linux - vectores auxiliares - ELF mapeo - Teoria de encriptacion binaria - Tecnicas de desencriptacion runtime - ELF acercamiento parasito - Packing/Userspace cargador de ELF - El futuro - Referencias --[ Introduccion El mundo UNIX se ha retrasado lejos detras del mundo Microsoft (incluyendo ambos MS-DOS y MS Windows) en el reino mellizo de proteccion binaria y reverse engineering (ingenieria reversa). La variedad y tipos de proteccion binaria son un area principal de diferencia. Los binarios PE de MS Windows pueden ser encriptados, empaquetados, envueltos y ofuscados hasta el final, y despues desencriptados, desempaquetados, desenvueltos y reconstruidos. A la inversa, lo mejor que puede ser hecho a un binario ELF de UNIX es strippear la tabla de simbolos de debug. No hay deconstructores, no envolvedores, no encriptadores, y solo un solo empaquetador (UPX [12], objetivo en decrementar el espacio en disco, no incrementar la proteccion) para el ELF. Claramente el binario ELF de UNIX esta desnudo comparado a las poderosas protecciones que le permite lujos al formato binario PE de Windows. La cantidad y calidad de herramientas de ingenieria reversa son otras areas clave de abismo significante. El entorno de runtime del binario PE, y ciertamente el sistema operativo sobre el que se ejecuta, esta en la compasion del debugger SoftICE. Mientras tanto el ELF corriendo solo puede ser examinado una palabra por vez via la paralizada system call ptrace(), imperfectamente interfaceada via adb y su primo sin cerebro: gdb. El procfs (sistema de archivos proc) en esos sistemas en los que esta presente, tipicamente solo provee la habilidad de examinar un proceso mas que controlarlo. Realmente, el mundo UNIX es una pesadilla sin realizar para la ingenieria reversa de UNIX. Sin realizar porque desde antes hasta ahora nadie se ha molestado en proteger un binario ELF. --[ Por que encriptar? El principal motivador para proteger archivos en plataformas MS ha sido imponer la proteccion de copia en un intento fallido para asegurar el pago para aplicaciones shareware. Como hasta ahora, no hay tal motivacion en el lado UNIX, pero hay otras razones para proteger binarios, Desde el punto de vista de un atacante la razones para proteger binarios pueden ser enlistadas como: - entorpecer analisis forenses en caso de deteccion - entorpecer copias de datos confidenciales (posiblemente por otros atacantes o investigadores foresnses motivados comercialmente*) - agregar funcionalidad al binario protegido. Desde el punto de vista de un defensor, hay tambien buenas razones para proteger binarios. Estas pueden ser enumeradas como - agregar un nivel de chequeos de autorizacion - entorpecer el analisis de herramientas de deteccion de intrusos personalizadas (herramientas que un atacante podria figurarse como evadir, ser ellas para descubrir su proposito) - agregar funcionalidad al binario protegido La necesidad de proteger binarios desde analisis en el mundo UNIX ha salido a la superficie claramente. * Ciertas cinco grandes compa~ias vendieron sus colecciones de exploits recopilados para un honorario anual. --[ Que es encriptacion binaria? Las razones para proteger un binario son claras, ahora tenemos que venir con un buen dise~o para la proteccion en si misma. Cuando hablamos de proteger binarios es importante saber que tipo de proteccion esperamos alcanzar, debemos definir nuestros requerimientos. Los requerimientos para esta implementacion son estos: - Solo individuos autorizados pueden ejecutar el binario. - El binario en disco debe ser inmune para todos los metodos de analisis estatico que podrian revelar cualquier cosa sustancial acerca de los propositos/metodos del binario. - La imagen del proceso del binario, algo que desafortunadamente no puede ser escondido, debe obscurecer los propositos/metodos del binario. - El mecanismo para proteger el binario debe ser produccion de calidad, y ser ambos, robusto y fiable. El mejor mecanismo para cumplir todos estos requerimientos es con algunos desde la encriptacion. Conocemos suficiente de lo que queremos que podamos ahora definir el termino "encriptacion binaria" como el proceso de proteger un binario de ingenieria reversa y analisis, mientras se mantiene intacto y ejecutable para el sistema operativo subyacente. Por consiguiente, cuando hablemos de encriptacion binaria nos referimos a un mecanismo robusto de seguridad para proteger binarios. --[ La amenaza Hoy muchos de las tan llamados "analisis forenses" que tienen muy pocas herramientas y conocimiento en mano para contar algo mas sofisicado que rm, strip y algun atacante poco preventivo. Esto ha sido demostrado en el analisis publico del binario x2 [14]. Dos investigadores forenses seminales han sido completamente dejados perplejos por una simple relativa proteccion binaria. Es peor mencionar que dos ingenieros reversos pasaron completamente el binario x2 a codigo fuente C en aproximadamente un dia. El investigador forense de Unix tienen un rango extremadamente limitado de herramientas a su disposicion para analisis de una maquina comprometida. Estas herramientas tienden a ser puestas como objetivo al debuggear un sistema comportandose mal. Mientras localte, find, lsof y netstat estan bien cuando se intenta mantener un sistema de produccion desde caerle encima, cuando viene a investigar un quiebre, ellos caen cortos en utilidad. Incluso TCT esta severamente limitado en sus capacidades (aunque eso es el asunto de otro texto). Si el analisis amplio de un sistema entero es tan entorpecido, los analisis de binarios lo son aun mas. El analista forense esta equipado con herramientas dise~adas para debuggear binarios simples desde el final de un compilador acomodado, no los binarios hostiles empaquetados por un atacante de oficio. La lista de herramientas es corta, pero para complementar lo presentado aqui: string, objdump, readelf, ltrace, strace y gdb. Estas herramientas son todas basadas en dos interfaces desperfectas: libbfd y ptrace(). Hay herramientas superiores actualmente en desarrollo, pero estan orientadas primariamente para, y usadas por, ingenieros inversos de Unix y otros individuos con motivaciones "alternativas". Salvo estas aplicaciones privadas de ingenieria reversa, no existen herramientas Unix para abordar codigo hostil sofisticado. Esto es por que los ganchos basicos de dubugging en Unix son muy limitados. El omnipresente ptrace() puede ser facilmente subvertido y confundido, y mientras la interface /proc es mas rica en caracteristicas, no es uniforme entre plataformas. Adicionalmente la interfaz de debugging /proc tipicamente provee solo informacion acerca de entorno de runtime de un proceso, no control sobre su ejecucion. Incluso el mas sofisticado procfs no necesita de ninguna ayuda del analista, si el binario esta suficientemente protegido. Eso dicho, ha habido algunas mejoras superficiales en la cantidad de herramientas de analisis. El poderoso solo desensamblador de Windows - IDA - ahora provee completo soporte para el formato binario ELF. Realmente, la ultima version de IDA puede finalmente manejar binarios ELF sin una tabla de seccion de cabecera (gracias Ilfak). Estas mejoras en las herramientas disponibles son menos significantes sin embargo, salvo que hay un incremento de acompa~amiento en conocimiento y tecnica para los analistas forenses. Dado que hay ingenieros inversos no tecnicos en analisis forense (basados en el material publicado uno puede facilmente concluir en que no hay ninguno), los hackers tendran la mano mas alta al principio de esta carrera de brazos. Como el mundo underground lucha con el numero de exploits trascendidos y full vs. no-revelacion, mas hackers veran la encriptacion binaria como un significado de asegurar su propiedad intelectual. Simultaneamente la comunidad de seguridad sera expuesta a mas binarios encriptados, y tendran que aprender a analizar un binario hostil. --[ Formato ELF El 'Executable and Linking Format' (Formato Ejecutable y Linkeado) es un formato de archivo estandarizado para codigo ejecutable. Es mayormente usado para archivos ejecutables (ET_EXEC) o para shared libraries (librerias compartidas) (ET_DYN). Actualmente casi todas las variantes modernas Unix soportan el formato ELF por su portabilidad, caracteristicas estandarizadas y limpieza dise~ada-desde-surco. La actual version del estandar ELF es 1.2. Hay multiples documentos cubriendo el estandar, lee [1]. El formato binario ELF fue dise~ado para reunir los requerimientos de ambos linkers (tipicamente utilizados durante el tiempo de compilacion) y loaders [cargadores] (tipicamente utilizados solo durante tiempo de ejecucion). Esto requirio la incorporacion de dos interfaces distintas para describir los datos contenidos dentro del archivo binario. Estas dos interfaces no tienen dependencia una de otra. Esta seccion actuara como una abreviacion para ambas interfaces del ELF. --[ ELF cabeceras Un archivo ELF debe contener como minimo una cabecera ELF. La cabecera ELF contiene informacion respecto a como los contenidos del archivo binario deberian ser interpretados, como las ubicaciones de las otras estructuras describiendo el binario. La cabecera ELF empieza en el offset 0 dentro del archivo, y tiene el siguiente formato: #define EI_NIDENT (16) typedef struct { unsigned char e_ident[EI_NIDENT]; /* Numero magico y otra info */ Elf32_Half e_type; /* Tipo de archivo object */ Elf32_Half e_machine; /* Arquitectura */ Elf32_Word e_version; /* Version de archivo objeto */ Elf32_Addr e_entry; /* Direccion virtual de punto de entrada */ Elf32_Off e_phoff; /* Program header table file offset */ Elf32_Off e_shoff; /* Section header table file offset */ Elf32_Word e_flags; /* Flags especificas del procesador */ Elf32_Half e_ehsize; /* Tama~o de las cabeceras ELF en bytes */ Elf32_Half e_phentsize; /* Program header table entry size */ Elf32_Half e_phnum; /* Program header table entry count */ Elf32_Half e_shentsize; /* Section header table entry size */ Elf32_Half e_shnum; /* Section header table entry count */ Elf32_Half e_shstrndx; /* Section header string table index */ } Elf32_Ehdr; Los campos son explicados en detalle a continuacion: * e_ident tiene ciertos offsets conocidos que contienen informacion acerca de como tratar e interpretar el binario. Esta antento a que Linux define indices y valores adicionales que no estan contenidas en el SysV ABI, y son por lo tanto no-portables. Hay offsets oficiales conocidos, y sus potenciales valores: #define EI_MAG0 0 /* Byte Index 0 de Identificacion de Archivo */ #define ELFMAG0 0x7f /* Byte Numero Magico 0 */ #define EI_MAG1 1 /* Byte Index 1 de Identificacion de Archivo */ #define ELFMAG1 'E' /* Byte Numero Magico 1 */ #define EI_MAG2 2 /* Byte Index 2 de Identificacion de Archivo */ #define ELFMAG2 'L' /* Byte Numero Magico 2 */ #define EI_MAG3 3 /* Byte Index 3 de Identificacion de Archivo */ #define ELFMAG3 'F' /* Byte Numero Magico 3 */ #define EI_CLASS 4 /* Byte Index de clase de archivo */ #define ELFCLASSNONE 0 /* Clase invalida */ #define ELFCLASS32 1 /* Objetos 32-bit */ #define ELFCLASS64 2 /* Objetos 64-bit */ #define EI_DATA 5 /* Byte Index de codificacion de datos */ #define ELFDATANONE 0 /* Codificacion de data invalida */ #define ELFDATA2LSB 1 /* Complemento de 2, little endian */ #define ELFDATA2MSB 2 /* Complemento de 2, big endian */ #define EI_VERSION 6 /* Byte Index de version de archivo */ #define EV_CURRENT 1 /* Valor debe ser EV_CURRENT */ * e_type describe como el binario es pretendido para ser utilizado. Los siguientes son valores legales: #define ET_NONE 0 /* No tipo archivo */ #define ET_REL 1 /* Archivo relocalizable */ #define ET_EXEC 2 /* Archivo ejecutable */ #define ET_DYN 3 /* Archivo objeto compartido */ #define ET_CORE 4 /* Archivo Core */ * e_machine indica para que arquitectura esta propuesto el archivo objeto. La siguiente es una lista corta de los valores mas comunes: #define EM_SPARC 2 /* SUN SPARC */ #define EM_386 3 /* Intel 80386 */ #define EM_SPARCV9 43 /* SPARC v9 64-bit */ #define EM_IA_64 50 /* Intel Merced */ * e_version indica que version de ELF conforma el archivo ELF tambien. Actualmente debe ser seteado a EV_CURRENT, indico a e_ident[EI_VERSION]. * e_entry contiene la direccion virtual relativa del punto de entrada al binario. Esta es tradicionalmente la funcion _start() que esta ubicada en el comienzo de la seccion de texto (lee despues). Este campo solo tiene sentido para objetos ET_EXEX. * e_phoff contiene el offset desde el principio del archivo a la primer Cabecera de Programa (lee despues). Este campo es solo significante en ET_EXEC y objetos ET_DYN. * e_shoff contiene el offset desde el comienzo del archivo a la primer Cabecera de Seccion (lee despues). Este campo es siempre util para la ingenieria reversa, pero solo requerido en archivos ET_REL. * e_flags contiene flags especificas del procesador.Este campo no es usado en sistemas i386 o SPARC, por lo que puede ser ignorado tranquilamente. * e_ehsize contiene el tama~o de la cabecera ELF. Esto es para chequeo de errores y debe ser seteado a sizeof(Elf32_Ehdr). * e_phentsize contiene el tama~o de una Cabecera de Programa. Esto es para chequeo de errores y debe ser seteado a sizeof(Elf32_Phdr). * e_phnum contiene el numero de cabeceras de Programa.La tabla de cabecera de programa es un array de Elf32_Phdr con elementos e_phnum. * e_shentsize contiene el tama~o de una Cabecera de Seccion. Esto es para chequeo de errores y debe ser seteado a sizeof(Elf32_Shdr). * e_shnum contiene el numero de cabeceras de Seccion. La cabecera de seccion es un array de Elf32_Shdr con elementos e_shnum. * e_shstrndx contiene el indice dentro de la tabla de cabeceras de seccion de la seccion conteniendo la tabla de strings de nombres de seccion (lee despues). Las siguientes dos ejecuciones describen en detalle la interface linkeadora e interface de ejecucion al ELF, respectivamente. --[ ELF Secciones La interface usada cuando se linkean multiples archivos de objeto juntos es la interface Seccion. El archivo binario es visto como una coleccion de secciones: cada uno como array de bytes del cual ningun byte puede residir en mas de una seccion. Los contenidos de una seccion pueden ser interpretados en cualquier forma por la aplicacion inspectora, aunque hay informacion de ayuda para activar una aplicacion para interpretar correctamente los contenidos de una seccion. Cada seccion es descripta por una cabecera de seccion, conteniendo dentro una tabla de cabeceras de seccion tipicamente ubicada al final del objeto. La tabla de cabeceras de seccion es un array de cabeceras de seccion en orden arbitrario, aunque usualmente en el mismo orden como aparecen en el archivo, con la unica excepcion de que la entrada 0 es la seccion NULL: una seccion que es seteada a 0 y no describe ninguna parte del binario. Cada cabecera de seccion tiene el siguiente formato: typedef struct { Elf32_Word sh_name; /* Nombre de Seccion (string tbl index) */ Elf32_Word sh_type; /* Tipo de Seccion */ Elf32_Word sh_flags; /* Flags de Seccion */ Elf32_Addr sh_addr; /* Seccion virtual addr en ejecucion */ Elf32_Off sh_offset; /* Offset de Seccion de Archivo */ Elf32_Word sh_size; /* Tama~o de Seccion en bytes */ Elf32_Word sh_link; /* Link a otra seccion */ Elf32_Word sh_info; /* Informacion adicional de seccion */ Elf32_Word sh_addralign; /* Alineamiento de Seccion */ Elf32_Word sh_entsize; /* Tama~o de Entrada si la seccion */ } Elf32_Shdr; /* mantiene tabla. Los campos de la cabecera de seccion tienen los siguientes significados: * sh_name contiene un indice dentro de los contenidos de la seccion de la tabla de string e_shstrndx. Este indice es el principio de un string terminado en null para ser usado como el nombre de la seccion. Hay nombres reservados, los mas importantes serian: .text Codigo objeto Ejecutable .rodata Strings solo lectura .data Datos "static" inicializados .bss Datos "static" inicializados a 0, y la base de la pila. * sh_type contiene el tipo de seccion, ayudando a la aplicacion inspectora a determinar como interpretar los contenidos de las secciones. Los siguientes son valores legales: #define SHT_NULL 0 /* Entrada de tabla de cabeceras de seccion sin uso */ #define SHT_PROGBITS 1 /* Datos del Programa */ #define SHT_SYMTAB 2 /* Tabla de Simbolos */ #define SHT_STRTAB 3 /* Tabla String */ #define SHT_RELA 4 /* Entrada reubicada con addends */ #define SHT_HASH 5 /* Tabla de Simbolos Hash */ #define SHT_DYNAMIC 6 /* Informacion de linkeado dinamico */ #define SHT_NOTE 7 /* Notas */ #define SHT_NOBITS 8 /* Espacio de programa sin data (bss) */ #define SHT_REL 9 /* Entradas de reubicacion, no addends */ #define SHT_SHLIB 10 /* Reservado */ #define SHT_DYNSYM 11 /* Tabla de simbolos de linker dinamico */ * sh_flags contienen un bitmap definiendo como los contenidos de la seccion deben ser tratados en runtime (tiempo de ejecucion). Cualquier valor bitwise OR'd de los siguientes es legal: #define SHF_WRITE (1 << 0) /* Escribible */ #define SHF_ALLOC (1 << 1) /* Ocupa memoria durante ejecucion */ #define SHF_EXECINSTR (1 << 2) /* Ejecutable */ * sh_addr contiene el offset desde el principio del archivo al primer byte de la seccion. * sh_size contiene el tama~o en bytes de la seccion. * sh_link es usado para linkear secciones asociadas juntas. Esto es tipicamente usado para linkear una tabla de string a una seccion cuyos contenidos requieren una tabla de string para correcta interpretacion, p.e. tablas de simbolos. * sh_info es usado para contener informacion extra para asistir en edicion de link. Este campo tiene exactamente dos usos, indicando que seccion aplica una reubicacion para secciones SHT_REL[A], y mantener el maximo numero de elementos mas uno dentro de la tabla de simbolo. * sh_addralign contiene el requerimiento de alineacion de los contenidos de seccion tipicamente 0/1 (ambos significando no alineacion) o 4. * sh_entsize, si la seccion mantiene una tabla, contiene el tama~o de cada elemento. Utilizado para chequeo de errores. --[ ELF Segmentos La interface de segmento ELF es usada durante la creacion de una imagen de proceso. Cada segmento, un stream contiguo de bytes, (no confundir con un segmento de memoria, ej. una pagina) es descripto por una cabecera de programa. Las cabeceras de programa estan contenidas en una tabla de cabeceras de programa descripta por la cabecera ELF. Esta tabla puede ser localizada en cualquier lado, pero es tipicamente localizada inmediatamente despues de la cabecera ELF *. La cabecera de programa es ahora descripta en profundidad: typedef struct { Elf32_Word p_type; /* Tipo de Segmento */ Elf32_Off p_offset; /* Offset de archivo de Segmento */ Elf32_Addr p_vaddr; /* Direccion virtual de Segmento */ Elf32_Addr p_paddr; /* Direccion fisica de Segmento */ Elf32_Word p_filesz; /* Tama~o de segmento en archivo */ Elf32_Word p_memsz; /* Tama~o de segmento en memoria */ Elf32_Word p_flags; /* Flags de Segmento */ Elf32_Word p_align; /* Alineacion de Segmento */ } Elf32_Phdr; Los campos tienen los siguientes significados: * p_type describe como tratar los contenidos de un segmento. Los siguientes son valores legales: #define PT_NULL 0 /* Program header table entry sin uso */ #define PT_LOAD 1 /* Segmento de programa cargable */ #define PT_DYNAMIC 2 /* Informacion de linkeado dinamico */ #define PT_INTERP 3 /* Interpretador del programa */ #define PT_NOTE 4 /* Informacion auxiliar */ #define PT_SHLIB 5 /* Reservado */ #define PT_PHDR 6 /* Entrada para la tabla de cabeceras en si misma. */ * p_offset contiene el offset dentro del archivo del primer byte del segmento. * p_vaddr contiene la direccion virtual relativa que el segmento espera para ser cargado dentro de memoria. * p_paddr contiene la direccion fisica que el segmento espera para ser cargado en memoria. Este campo no tiene significado salvo el soporte de hardware y requiere esta informacion. Tipicamente este campo es seteado para cualquier 0 o el mismo valor como p_vaddr. * p_filesz contiene el tama~o en bytes del segmento dentro del archivo. * p_memsz contiene el tama~o en bytes del segmento una vez cargado en memoria. Si el segmento tiene un p_memsz mas largo que p_filesz, el espacio faltante es inicializado a 0. Este es el mecanismo usado para crear el .bss durante la carga del programa. * p_flags contiene los flags de proteccion de memoria para el segmento una vez cargado. Cualquier combinacion bit wise OR'd de las siguientes son valores legales: #define PF_X (1 << 0) /* Segmento es ejecutable */ #define PF_W (1 << 1) /* Segmento es escribible */ #define PF_R (1 << 2) /* Segmento es legible */ * p_align contiene la alineacion para el segmento en memoria. Si el segmento es de tipo PT_LOAD, entonces la alineacion sera el tama~o de pagina esperado. * El linker dinamico de FreeBSD requiere que la tabla de cabeceras del programa sea ubicada dentro de la primera pagina (4096 bytes) del binario. --[ ELF formato - soporte e historia El formato ELF ha ganado aceptacion ampliamente como un fiable y maduro formato ejecutable. Es flexible, tiene permitido soportar diferentes arquitecturas, 32 y 64 bits de la misma forma, sin comprometer demasiado de su dise~o. Hasta ahora, los siguientes sistemas soportan el formato ELF: DGUX | ELF, ?, ? FreeBSD | ELF, 32/64 bit, little/big endian IRIX | ELF, 64 bit, big endian Linux | ELF, 32/64 bit, little/big endian NetBSD | ELF, 32/64 bit, little/big endian Solaris | ELF, 32/64 bit, little/big endian UnixWare | ELF, 32 bit, little endian Las diferencias de 32/64 bits en un sistema solo es debido a las diferentes arquitecturas en las que el sistema operativo puede correr. --[ ELF carga Un binario ELF es cargado mapeando todos los segmentos PT_LOAD en memoria en las ubicaciones correctas (p_vaddr), el binario es chequeado por dependencias de libreria y si existen esas librerias son cargadas. Finalmente, cualquier reubicaciones que necesiten ser terminadas son llevadas a cabo, y el control es transferido al punto de entrada principal del ejecutable. El codigo que acompa~a en load.c demuestra un metodo de hacer esto (basado en el linker dinamico GNU). --[ ELF carga - Linux Una vez que el userspace recibe el control, tenemos esta situacion: - Todos los segmentos PT_LOAD del binario, o si su linkeado es dinamicamente: el linker dinamico, son mapeados apropiadamente. - Punto de Entrada: En caso de que haya un segmento PT_INTERP, el contador del programa es seteado al punto de entrada del interprete del programa. - Punto de entrada: En caso de que no haya un segmento PT_INTERP, el contador del programa es inicializado al punto de entrada de las cabeceras ELF. - El tope de la pila es inicilizado con datos importantes, lee despues. Cuando el userspace recibe control, la composicion de la pila tiene un formato arreglado. El orden desigual es este: <argumentos> <entorno> <auxv> <datos string> la composicion detallada, asumiendo arquitectura IA32, es esta (Linux kernel series 2.2/2.4): posicion contenido tama~o (bytes) + comentario ------------------------------------------------------------------------ stack pointer -> [ argc = number of args ] 4 [ argv[0] (pointer) ] 4 (nombre de programa) [ argv[1] (pointer) ] 4 [ argv[..] (pointer) ] 4 * x [ argv[n - 1] (pointer) ] 4 [ argv[n] (pointer) ] 4 (= NULL) [ envp[0] (pointer) ] 4 [ envp[1] (pointer) ] 4 [ envp[..] (pointer) ] 4 [ envp[term] (pointer) ] 4 (= NULL) [ auxv[0] (Elf32_auxv_t) ] 8 [ auxv[1] (Elf32_auxv_t) ] 8 [ auxv[..] (Elf32_auxv_t) ] 8 [ auxv[term] (Elf32_auxv_t) ] 8 (= AT_NULL vector) [ padding ] 0 - 16 [ argument ASCIIZ strings ] >= 0 [ environment ASCIIZ str. ] >= 0 (0xbffffffc) [ end marker ] 4 (= NULL) (0xc0000000) < top of stack > 0 (virtual) ------------------------------------------------------------------------ Cuando el linker de runtime (rtld) hizo su deber de mapear y resolver todas las librerias y simbolos requeridos, hace un poco de trabajo de inicializacion y entrega el control al punto de entrada real del programa despues. Para que esto pase, las condiciones son: - Todas las librerias requeridas mapeadas desde 0x40000000 en adelante. - Todos los registros de la CPU seteados a cero, excepto el stack pointer ($sp) y el contador del programa ($eip/$ip o $pc). El ABI puede especificar valores iniciales mas adelante, la ABI de i386 requiere que %edx sea seteado a la direccion de la funcion DT_FINI. --[ ELF carga - vectores auxiliares (Elf32_auxv_t). La inicializacion del stack es algo familiar para un programador de C, ya que el conoce los punteros de entorno argc, argv desde los parametros de su funcion 'main'. Es llamado por el codigo de soporte del compilador de C con exactamente estos parametros: main (argc, &argv[0], &envp[0]); No obstante, lo que es mas que un misterio, y usualmente no discutido del todo, es el array de vectores 'Elf32_auxv_t'. La estructura es definida en el archivo include elf.h: typedef struct { int a_type; /* Tipo de Entrada */ union { long int a_val; /* Valor Entero */ void *a_ptr; /* Valor Puntero */ void (*a_fcn) (void); /* Valor de Funcion de Puntero */ } a_un; } Elf32_auxv_t; Es una estructura de relacion generica de tipo-a-valor usada para transferir datos muy importantes desde el kernelspace al userspace. El array es inicializado en una ejecucion exitosa, pero normalmente es usado solo por el programa interpretador. Echemos un vistazo a los valores 'a_type', que definen que tipo de datos contiene la estructura. Los tipos son encontrados en el archivo 'elf.h', y aunque cada arquitectura implementa el estandar ELF es libre de definirlas, hay un monton de similitudes entre ellas. La siguiente lista es del kernel Linux 2.4. /* Valores legales para a_type (tipo de entrada). */ #define AT_NULL 0 /* Final de vector */ #define AT_IGNORE 1 /* Entrada debe ser ignorada */ #define AT_EXECFD 2 /* Descriptor de archivo de programa */ #define AT_PHDR 3 /* Cabeceras de programa para programa */ #define AT_PHENT 4 /* Tama~o de entrada de cabecera de programa */ #define AT_PHNUM 5 /* Numero de cabeceras de programa */ #define AT_PAGESZ 6 /* Tama~o de pagina de Sistema */ #define AT_BASE 7 /* Direccion base del interpretador */ #define AT_FLAGS 8 /* Flags */ #define AT_ENTRY 9 /* Punto de Entrada de programa */ #define AT_NOTELF 10 /* El programa no es ELF */ #define AT_UID 11 /* Real uid */ #define AT_EUID 12 /* Effective uid */ #define AT_GID 13 /* Real gid */ #define AT_EGID 14 /* Effective gid */ #define AT_CLKTCK 17 /* Frecuencia de times() */ Algunos tipos son obligatorios para la runtime del linker dinamico, mientras algunos son simplemente endulzados y permanecen sin uso. Tambien, el kernel no tiene que usar cada tipo, en realidad, el orden y acontecimiento de los elementos estan sujetos a cambios entre diferentes versiones de kernel. Esto se vuelve imporante cuando escribimos nuetro cargador userspace ELF, ya que el runtime del linker dinamico puede esperar un cierto formato, o aun peor, las cabeceras que recibimos por el kernel nosostros mismos estan en diferente orden o diferentes sistemas (cambio de comportamiento del Linux 2.2 a 2.4, por ejemplo). De todas maneras, si nos clavamos a algunas pocas simples reglas cuando parseamos y seteamos las cabeceras, algunas cosas pueden ir mal: - Simpre saltea sizeof(Elf32_auxv_t) bytes en un tiempo - Saltea cualquier tipo AT_* desconocido. - Ignora tipos AT_IGNORE. - Para de procesar solo en el vector AT_NULL En Linux, la runtime del linker requiere las siguientes estructuras Elf32_auxv_t: AT_PHDR, un puntero a las cabeceras del programa del ejecutable. AT_PHENT, setea al elemento 'e_phentsize' de la cabecera ELF (constante) AT_PHNUM, numero de cabeceras de programa, 'e_phnum' de la cabecera ELF AT_PAGESZ, setea a constante 'PAGE_SIZE' (tama~o de pagina) (4096 en x86) AT_ENTRY, punto de entrada real del ejecutable (de la cabecera ELF) En otras arquitecturas hay requerimientos similares para vectores auxiliares muy importantes, con los cuales el runtime del linker no puede estar habilitado para funcionar. Algunos detalles mas adelantados acerca de la forma en la que Linux arranca un ejecutable pueden ser encontrados en [11]. --[ Teoria de Encriptacion Binaria No hay nada nuevo acerca de encriptacion de binarios, ciertamente desde los '80 han habido varios mecanismos desarrollados para proteger binarios en computadoras personales. Los mayores desarrolladores de protecciones de binarios han sido escritores de virus y desarrolladores de shareware. Mientras estas tecnicas se han involucrado con avances en procesamiento de poder y arquitectura de sistemas operativos, muchas de los componentes basicos continuan siendo los mismos. Escencialmente un motor de desencriptacion texto plano ejecutara primero y desencriptara la siguiente seccion de codigo encriptada, esto podria ser el principal .text, o podria ser otra tecnica de desencriptacion. Salvo una desperfecta y facil de crackear tecnica de encriptacion (ej. XOR con un valor ajustado), el primer decriptor plaintext es usualmente el punto de debilidad de cualquier binario encriptado. Debido a esta debilidad, un numero de varios metodos ha sido desarrollado para hacer el motor de desencriptacion inicial tan dificil para la ingenieria reversa como sea posible. La siguiente es solo una breve lista de metodos que han sido usados para proteger el motor de desencriptacion inicial: * Codigo auto modificando: codigo que se altera a si mismo durante runtime, por lo que el analisis del archivo binario en disco es diferente de los analisis de la imagen de memoria. * Motores Polimorficos: crean un unico motor de desencriptacion cada vez que es usado por lo que es mas dificil comparar dos archivos. Tambien es ligeramente mas dificil hacerle ingenieria inversa. * Trucos Anti-Desensamblamiento/Debugging: trucos que intentan confundir las herramientas usadas para la ingenieria reversa. Esto le dificulta al analista el descubrir que esta haciendo el codigo de objeto. La siguiente es una lista corta de metodos de encriptacion que han sido usados para proteger el principal codigo objeto del ejecutable: * XOR: El favorito de cualquier hacker aspirante, xor es frecuentemente usado para ofuscar codigo con una simple encriptacion.Esto es usualmente muy facilmente rompible, pero extiende ligeramente el tiempo que toma hacerle ingeniera reversa. * Stream Ciphers: ideal para encriptacion binaria, este es usualmente fuerte, chico y puede desencriptar un numero arbitrario de bytes. Un binario apropiadamente encriptado con un cifrado stream es impenetrable para analisis. * Block Ciphers: Estos son mas dificiles de usar para encriptacion binaria por los requerimientos de alineamiento de bloques. * Virtual CPUs: Un minucioso y poderoso metodo de asegurar un binario. El object code realmente corre en una CPU virtual que necesita ser analizada primero independientemente. Muy dolorosa para un ingeniero reverso (y tambien el desarrollador). Hay incluso mecanismos para matener el plaintext tan a salvo como sea posible en memoria. Aqui hay una lista parcial de algunos de estos mecanismos: * Linea de Codigo Corriendo: Esto es cuando solo el codigo inmediatamente necesitado es desencriptado, y despues encriptado de nuevo despues de usar CPU intensivo, pero extremadamente dificil de analizar. * Formatos Binarios Propietarios: Si el object code es guardado en un formato desconocido, es totalmente dificultoso para el ingeniero reverso determinar que es la data y que es el texto. --[ Tecnicas de Encriptacion Runtime --[ El acercamiento virus Agregando codigo a un ejecutable ELF esta lejos de ser nuevo. Han habido conocidos virus ELF desde cerca de 1997, y Silvio fue el primero en publicar acerca de el [2]. [3]. Una propiedad desagradabe acerca del formato ELF es su dise~o de meta "facil carga". Las cabeceras del programa y los segmentos asociados mapean directamente dentro de memoria, acelerando la preparacion del ejecutable cuando se lo esta ejecutando. La forma de su implementacion en el formato ELF hace dificil de cambiar el dise~o del archivo despues de linkear. Para agregar codigo o para modificar la estructura basica se convierte en casi imposible, ya que un monton de valores hardcodeados no pueden ser ajustados sin conocer la informacion pre-linkeado, como informacion de reubicacion, simbolos, cabeceras de seccion y la forma. Pero la mayoria de esa informacion esta ida de cualquier forma en el binario o incompleta. Incluso con esa informacion, modificar la estructura del ELF ejecutable es dificil (sin usar una libreria sofisticada como libbfd). Para una discusion a fondo acerca de reducir el dolor cuando se modifican shared libraries con la mayoria de la informacion de simbolos intacta, klog ha escrito un articulo acerca de eso [4]. Por las dificultades muchos intentos en el pasado se han focalizado en exploitear 'gaps' (huecos) dentro del binario ELF, que queda mapeado en memoria cuando se lo carga, pero permanece sin usar. Esas areas son necesitadas para alinear la memoria en paginas. Como fue mencionado antes, ELF ha sido dise~ado para carga rapida, y esta alineacion en el archivo garantiza mapeo uno-a-uno del archivo en memoria. Tambien, como veremos abajo, este alineamiento permite facil implementacion de granularidad prudente en pagina para lectura, escritura y permisos de ejecucion. Entonces el virus 'usual' ELF busca a traves del host executable por esos huecos y en caso de que un area suficientemente larga haya sido encontrada escribe una copia de si mismo dentro de el. Despues redirecciona el flujo de ejecucion del programa a su propia area, con frecuencia solo modificando el punto de entrada del programa en la cabecera ELF. Han habido numerosos ejemplos para esos virus, mas notablemente el 'VIT' [5] y el virii 'Brundle-Fly' [6]. Mientras este acercamiento funciona moderadamente bien en la practica, no puede infectar cada ejecutable ELF ET_EXEC. El tama~o de la pagina (PAGE_SIZE) en un sistema UNIX es con frecuencia 40%, y ya que el relleno puede tomar como maximo una pagina entera, las chances de encontrar un posible hueco depende en el tama~o del virus y el host ejecutable. Un virus aventajado del tipo mencionado arriba toma cerca de 2000 bytes y por lo tanto puede infectar solo cerca del 50% de todos los ejecutables. Mientras para el virii eso agrega diversion no-determinadora y no importa, para una encriptacion binaria fiable este acercamiento tiene serias desventajas. No obstante, ha habido gente loca usando este acercamiento para propositos de encriptacion binaria basica. El programa que hace esto es llamado dacryfile. Hay una copia de demostracion de dacryfile* disponible desde [7]. Dacryfile usa un parasito de data inyectado para llevar a cabo la desencriptacion runtime del archivo host. Mientras dacryfile esta sin documentacion, una cantidad de informacion limitada es provista aqui para el curioso. Dacryfile es una coleccion de herramientas que implementan el siguiente concepto. El archivo host es encriptado desde el principio de la seccion .text, al final del segmento .text. El archivo ahora tiene su object code y su data solo lectura protegida por encriptacion, mientras toda su data y objetos dinamicos son abiertos para inspeccion. El archivo host es inyectado con un parasito que puede ser de tama~o arbitrario porque es apendizado al final del segmento de data. El mapa de link por defecto de un ELF producido por gcc de Linux tiene la seccion .dynamic como la de ultima prioridad a la seccion .bss. La seccion dinamica es un array de estructuras Elf32_Dyn, terminada por un tag NULL struct. Por lo tanto, sin tener en cuenta cuan grande es la seccion .dynamic; procesando sus contenidos se parara cuando la estructura Elf32_Dyn terminante es encontrada. Un parasito puede ser inyectado al final de la seccion sin da~ar el archivo host de ninguna manera. El programa dacryfile "inject" apendiza la seccion .text desde un archivo de objeto parasito sobre la seccion .dynamic de un host binario. El parasito en si mismo es por lejos simple, utilizando la libreria linkeadora dinamica subversiva de Linux para acceder a las funciones de libc, y rc4 para desencriptar el host. La coleccion dacryfile no es soportada y esta indocumentada, esa y toda la primera generacion de encriptadores binarios, son un final muerto. Sin embargo, un binario protegido por dacryfile sera extremadamente inmune a los recientes intentos lastimosos en ingenieria reversa por los expertos forenses. Provista la passphrase de encriptacion permanece secreta, y es fuertemente suficiente para resistir a ataques de fuerza bruta, un binario protegido con dacryfile mantendra su object code o data de solo lectura segura de examinacion. La tabla de string dinamico seguira estando disponible, pero eso proveera informacion limitada acerca de la funcionalidad del binario. Tambien es incluido con el articulo un ya strippeado pero funcional cargador de las runtimes burneye de programas de encriptacion. Esta comentado y deberia funcionar bien. * dacryphilia es un fetiche en el cual uno gana exitacion sexual a traves de lagrimas de su compa~ero. --[ Packing/Userspace cargador ELF El acercamiento mas flexible para envolver un ejecutable ha sido inventado por los desarrolladores del packer UPX [12], por John Reiser para ser exacto :). Ellos cargan el binario en userspace, tanto como el kernel lo hace. Cuando termina apropiadamente no hay cambio visible en el comportamiento al programa envuelto, mientras no tiene limitaciones tanto en el envolvedor como en el ejecutable envuelto, como tienen las tecnicas mencionadas antes. Por lo que esta es la forma que queremos para encriptar binarios, cargandolos desde userspace. Normalmente el kernel es responsable de cargar el ejecutable ELF en memoria, seteando permisos de pagina y destinando almacenamiento. Luego pasa el control al codigo en el ejecutable. En los sistemas de hoy esto no es mas del todo cierto. El kernel sigue haciendo un monton de trabajo inicial, pero despues interactua con un linker runtime de userspace (rltd) para resolver dependencias de librerias, simbolos y preparaciones linkeadoras. Solo despues que el rltd ha terminado todo el trabajo de backstage, el control es pasado a los puntos de entrada reales del programa. El programa se encuentra asimismo en un entorno saludable con todos los simbolos de libreria resueltos, un bien preparado dise~o de memoria y un cuidado linker runtime observador de fondo. En sistemas normales usar esto es una operacion muy escondida y ya que funciona tan suave a nadie realmente le importa. Pero como nosotros vamos a escribir un cargador ELF userspace, tenemos que pasar el rato con los detalles. Para Tener una cruda impresion, solo escribe un simple programa "hola mundo" en C, compilalo, y en vez de ejecutarlo, haz un strace en el. Te has imaginado que pasa cuando tantas syscalls son enumeradas por tu ejecutable de una linea? Este es el linker runtime en accion, tratando de resolver tu simbolo 'printf' despues que es mapeada la libreria C entera en memoria y preparados los permisos de pagina. Muchos detalles interesantes acerca de la historia de los linkers y cargas de programas pueden ser encontrados en [8]. --[ El futuro Los trabajos forenses en binarios ejecutables se convertiran en mas dificultosos, y mucha de la gente que hace forense en estos dias se saldra del campo. Mas probablemente alguna gente de la 'scene' de la ingenieria reversa se inclinara mas a la seguridad de redes y se convertiran en forenses. Hay acercamientos prometedores para incoporar decompilacion y tecnicas de analisis de flujo de datos/codigo en encriptacion binaria para implementar protecciones mas adelante contra el forcejeo, analizando y desprotegiendo tales binarios. La fuerza de las siguientes protecciones contara con las interfaces de debugging fallidas en la mayoria de los UNIXs, que pueden tratar con codigo hostil. La generacion de protecciones que viene despues contara solamente con sus sofisticados acercamientos de ofuscacion para denegar intentos de tipos de analisis estatico y listado-muerto. Hay acercamientos para reemplazar la interface sobre-impuesta ptrace [9] con interfaces de debug mas poderosas que pueden tratar con codigo hostil. Tambien el trabajo en los debuggers de espacio de kernel ha sido terminado, tal como el Pice debugger [10]. Ademas de herramientas de debug pobres y malos ganchos de debugging, la unica cosa que puede ser usada para blindar el binario runtime es ofuscacion pesada que podra hacerlo mas dificil para un ingeniero reverso para ver que esta pasando realmente. Tienes que recordar que un ingeniero reverso puede ver cada operacion atomica que es llevada a cabo, tan bien como que esta pasando en memoria (ej. cambiar variables, nuevos mmaps, read()s, etc, etc. Si esto va a ser derrotado ellos lloran cada vez que tienen que reiniciar sus debuggers! --[ Referencias [1] Tool Interface Standard, Executeable and Linking Format, Version 1.2 http://segfault.net/~scut/cpu/generic/TIS-ELF_v1.2.pdf http://www.caldera.com/developers/gabi/latest/contents.html http://www.caldera.com/developers/devspecs/gabi41.pdf additional per-architecture information is available from http://www.caldera.com/developers/devspecs/ [2] Silvio Cesare, Unix viruses http://www.big.net.au/~silvio/unix-viruses.txt [3] Silvio Cesare, Unix ELF parasites and virus http://www.big.net.au/~silvio/elf-pv.txt [4] klog, Phrack #56 article 9, Backdooring binary objects http://www.phrack.org/show.php?p=56&a=9 [5] Silvio Cesare, The 'VIT' virus http://www.big.net.au/~silvio/vit.html [6] Konrad Rieck, Konrad Kretschmer 'Brundle-Fly', a good-natured Linux ELF virus http://www.roqe.org/brundle-fly/ [7] The grugq, dacryfile binary encryptor http://hcunix.7350.org/grugq/src/dacryfile.tgz [8] John R. Levine, Linkers & Loaders ISBN 1-55860-496-0 [9] Linux ptrace man page (see if you can catch the three errors) http://www.die.net/doc/linux/man/man2/ptrace.2.html [10] PrivateICE Linux system level symbolic source debugger http://pice.sourceforge.net/ [11] Konstantin Boldyshev, Startup state of Linux/i386 ELF binary http://linuxassembly.org/startup.html [12] UPX, the Ultimate Packer for eXecutables http://upx.sourceforge.net/ [13] GNU binutils ftp://ftp.gnu.org [14] Forensic analysis of a burneye protected binary http://www.incidents.org/papers/ssh_exploit.pdf http://staff.washington.edu/dittrich/misc/ssh-analysis.txt [15] The grugq, Subversive Dynamic Linking http://hcunix.7350.org/grugq/doc/subversivedl.pdf begin 644 binary-encryption.tar.gz M'XL(`#^^+#P``^S\97`>3;,V"%K,S,S,8#%8S,QD,3,S6,S,;+$LM%@6,S,S M,S/K7MG/^[QPSG=F-F:^V(V-G9:C[^KLK*S$*ZM^M`W,;?0=W.F,;0P=W.V< MS&UM&#[];[\8&5D9V=D_?_S^N?[K[U]C=E8F%B86]@_>3XQ,+,PLGS\1?O[? MK\I_OYP=G?0="`D_.=C:.OT?\?V?O?__T<O@O\7?RE;?B-[P?^<:C$R,C&QL MK/]3_-G86?X9?S9V-J8/?E86%M9/A(S_.Y7XGZ[_/X\_B;F-H96SD3$AC[&5 M";T9'_2_"":&-DY6_TER=#(RM_UO)"MS@_^D.=N8?Y#_"Y^[(\-_6^(WT=I: MW^:_4S^BXO3?J4[N=L:.O\G0)$;&)N8VQH3R`F(B2A*:(E`BTJ*Z(NHB0KI_ M4P@9J`E9&3G9"*D9H*&AS6V<H$WTG?2M*`W-/N)-[4@%[0D-96?LX&#K0.E( MQ0T-9>QF[D3)_#'RAH9VMG$T-[4Q-B*TLK4QA?Y=$;H?NE-^""$T,:(E%+$R M86'6%3$S^A!D_''_FR+_AV+WA_+7,M0.QDZ_I_Y9[3^D0A$2VOP6;&AMY$C( M2\A("PT%]4&SUK>S,K8Q=3+[T.@/VP=-W\C(X>/Q8_7?3^9_<UKKFECIF_Z> M+",@KRNO**$JH"SRKY=V#K9.'^\HY17EE'45102$O?Z,U!0EE$5^V_M;02@H M:L(/[73-K?5-C3]H_S+CXX7=;QT<G1R<#9T(_Z$IX8<5?ZGUH>?OPG'ZL][' M@[&-T9^AT8>/_Q[K6UG9&GX\?(B!LC4QT77ZS?@Q^'CV_ENBH]9O!]+Q&>O: MF=DX6^O0$E(36G%#0T-9&UL[&CM1DO_-1TO(Z,;(2$OH:.YA;&M"^9]Z47W, M^@\Y5+]%F-@Z$%*:_W'NAS$?O[\CPTUH3LCSG\P?)!J:WRPT-%1_+'1T-7<R M-".DM#.CX[/3_9UT?]$-]1T_,DY95UI.0)CKMX6_B5#_U4?4AA]+_5-OK7]& MF89&A_L/OR$=W]_N^Z/4[T5<?@>9D)S0YQ^+ZEM]I`HA'2$3U;_/^7#F[Y!2 M_OL<FG](,#&W,G;T(*3YPP[USRKX+>*/W/^@_$OJ/P+V7Q3Y3Z'_9/X[HO\# M]^^8>?R[OA_!_B?KQ_@CH/^SB=X?MX^BUG>V<OKC6P,'8WW+WV\^7GR4))35 MAZ2_7?DG0?ZNE'^C_\O9O^7JT/]37SI"JW\Y_??L#W`P_%C`R9A0G_!#;5L' M]]^E1VAK0NAD9DSH:F9K94QH9*QO]1L]H,Q-/GS^SSKY6.\#L^PH956DI6G_ M5;"T?Q<=[3]+D_8/6C!24?'R_F:F^C#F`P^<'3ZL9OJMQ!_G?<3S=T51_=L" M_Z'MGU3^9[%[_57MHA+J(L(?SG$U^PC0AX"/E/Y?9)S.7VG[6WVK?^8/WW\( M_U.^OZVA=+$U-Z*FHORM$\V_<]`2_FON?RCVI\:A_@>CK?Z._Q_U_U;AG_'X MH\0_4N\O)7]'A-[`T9'0T=CP]S[DH]+-;)VMC`@-C`D]C!ULC8WH">U,3$R< MB/Z$Y$^Z6-'0</^5'!^3U8P)_^'<WQ'\;=,'TGYTA0\(^$/Z"#'5GZE_8_)O MS_^%TE3_CH'_$/)O0.S]5_LP<K:VT_WH$7_-^><46L+_P/4_>/H;I/Y`_M^8 M_4]L%?D+6W_CSW_'VX^^\=L3_X#>_]HNC&V<=/^@YX>]O^?_UO_?.]%_6&'W M'PQ_-:9_3S&:?X/`OZ/T?P4O_Q';?X-*0E[>OS'R`WC("8G^O?RI_JVR/ZSX MRZ*/E?Z6_T'YJ$2Z?T>7WXQV#A^.-*$D%OGS^B]17(1D5LZTA+I_X>AOCW]0 M?A/,;<S_]:QM0TQ+^'O1?ZSU;PWD8YJNHYFQE175/XF_I_Z#]L<CT/],!\9_ MIL%?L*'[NV9^[P=^N_1WPO^5%;;.3KHV^M;&_\M^_W=F_*N7_V8W,?IG,R8D MM/N(C=;?2*WSCVSXF/<1LP\O?62SC(#8OZC_I6__G^36G\3Y$ZR_EOT0:/M1 MU91_ZTQ+**>K**RFZ"6G*_2Q7U#^0"XVQ@_P^AU0.J;?D?MK`T4L]+LN;2B< M_DS_;8.=\\>^Z`.(B/\X[?<2'SXRHOS;-79_JN0?+O[]\"&3B/<_"?^2_GOJ M'QPV=OR0JO\AUN@ON?_+G+?[RP&_U_R`<4-K.\J_4\G<Z"/DM/]P'BVATE_. MH_HW$*:D^]-Z_L(.&^./0/U&C@\T,W70MR8T^]##V,&1T,GV[T[Q!U?^ZA5_ M%=%O-/E?%YK=_U1C_VPEOZW_1^?ZL[?\VUE_[2?_VD.2_S/&'Q[C(60D_*>; M""F)Q9VMG6U,;9T="?]L8O](,O_`G]^0]]>I[E_A^!NZ_@VT_@E3OP7_F_M_ ML_X6\]O8WS']CQ#\EN7J8.YD_(\4HB7\7TK\".Z_4/!?DLW_)(VKK8/E7]+^ M#@,CU3^+RUK_`ZS_U)6^@ZGA/W?1'P\N_\130L)_E<P_2NA#0RWFSVPZOU/\ M+RU_3_^M!_-?W>5O`'%V_%#U`Q<</XXWOXW[".Y'(?-]8,3O);08=?[L1?YY M%/C36_Z$[%_E\H>12>>O:I&3E=;X7U3(G\+XRW&$OU'U=R[_9;.CS3]4^5OO M?Q;&WP0J0CH.6D)B,D?Z#\T^>MC?NC']T>W?T.>W^_\YB?N_0-7_N^>__W[^ M-]+_&/Z62?^!D/2F'O_WSYC_Q^=_%B8F)M;_<OYG^W_.__\?N@@B(#_EH5+S M?`(YY7ES7!Z,?T)[0\.KD>CLQ[Q<R,(K3M;CW$)CX^O,>$3&D!,',0.)SR8] MO;1Q]'UQ?HAL_[0RU-[KJ8*@LB3.PKOV\<?"RTNG$7PT$7(O;,7_9*Y66*/% MN;C2LR%YIU<EV)%T?$X/^'$BL:?7J+E2H6J1=)P@6:^ZQ.T&[,D?4[B;#O9] M"X0'ZZEVBO\\",7G$A.6]]RX[YE@<5RNYMO%-.`<_LC7U]2V`C#0A/RF97#\ MC@ORB/^F9K^I]H/[L64>8*@-\USLNZ?W:FBN_"/IY5979(WF30W^WM7L?6.M M=#;[R]Y`S<_G9_8%0&TQSQ6$H8PGFTM`]>GS/>4"#DPNS@H3^9=YA7G6&<BM MSYC&*%_;_'UT;7/N7Y995I@H6*0ZRPCKK!IY?"K,*2<GV;IP\[4=<1B##0<[ M4!+",OBG65>@ZDOUN>6;[*W+2MYBDDF^!+:0-3U4\O^$E!V1^'3I9<5,NYL# M<<GC]CPTE**G[;]"W+WKA33N):S255REV9O`QBRSZ$!T#L]4\:2TB'V=13[Z M$^:IX7A#_RN-[4!U'&:@80WJY4*.Y_?J1$QIAB!V_]EAX^0\8-EA-"I>P?C) M[6539.2!36"Z%2QHQS1*X%XZXO2&&VY_Q8T\[,7K3S1K71<KV5LXQNP&.\*, M/BM89%Z(1:@$>MCP'.=TL*"@WVT]LZLE$2^MH62`;09$*6T"=>E3ZCN67186 M.GS(;@"T=12^3\^Z/1$+@+5CCS??2$L!@`,;509_(G@%X$5Q@^96EY=C<2EL M'I#UQOL1*OSTW@^N0$M/H0`XLZ9U7(PZ>\@@422+$E1(>P&#M$2H7+ZT3R"@ MFS")O5'5)9D_N+IKS+TQ<X&:X3&CP2AIM+L)[4S;J9I`U:A[<GHF[XJ!*M== M./;[0'W7-,35BRJ-$:QOF1#%H&!U_2A>2_&FB0^?SJ.LMV1"(Q!8V)RFLIKZ M@F"E%WY:6:`BHENPHVT1K:F-P)2#;<*39$MC>"=3'>.WH,1S"ZI'??,44I%$ M#P1E&!"Q%4U$[(;7\W^$E!%,;DG9@PI+1^G)WJ:6X+`8B23L2A0F%JW.F8=- M>^%L]3LM[#9JWK>BSIP,36R(>K;[N1Y"57G9;BWM+WQ9SBB8>0[N:E,\VJ"O M?H@2Z/*%-.%>^!-0J1TE[.V<\!<+BILO[<THW[AA;16LP^F209&OR/N]OE,$ M/V'A)815B_I?XO]`_\3;36*,X7\MAM*K][V%V7XJYEN75]</UY$O/BF&TB** M`:\3$I.[P$3%E/(8O"PC=V&6.9`R:XS;:G%PL>&V&[$]P7-+V2*J\-\HI&OL M'<R''KUK;"@$A>?Q027+E1<]%TX%&[V7/74O#OT>,++N;<=0WD#7M?4+X>]& MUEM<(-[?'SPPRG3;`Y^?H-YU%`S?>D3$+ER`3C),,2K(&P19LY[=JTI=I29Y M;.OHY=(/;*4N]VL@#L[PZ])-Q_#][Y;)NF7%D[4$7U#';V5W\/CF-UBUQM;1 ME'BM[\?#5JFFRWI$VF8LV>BU[N"UM5WHEW7Z1=LXS%UP*CQNI/FI0)B_!0H` M9/@O!!YTVN8D'XZCHG'G-NJ:J/)Y.[KW\=JF2.X36L##0=/,DW(]O[.G.^7[ M3L;=>!S\$'ZSK9MH>?;5(49416Y(>-9XH[LOO/1#E5^/&HGV$7W5[VA)L?W5 M9G)14]RSXO)2(%6"Z*UV\3IO=;A&8E;?0IL[4OE5D+B-*T&,EA*OO$A6QR6# MMGC?7>["B9[!8^S>/0ZQS;)#3("PUMG*NYO9.L<Q1X'\;!QMB\R]>E#J\CTK M>@\/F<BE:J$T@?97FVSM%(D5E7C!LJ6K1^EX=_-[PYQ760Z[TP]KE+R'L<JO MPG"?6T`G$Q,W%I82EU-6O:?AKLEME9(U#.`$;U"/*3H^A[F#17I<L"5%U<E! M*3W47,E*Y$1Z:6G5>X^BRIP*-%CM;X(:T75OH=O7R;,A-/0T4_A;74TZ=4LT M0$J$#MEIO5^^HSUDZ(T5?=U(WQG5RP#S9@Z$*^_3(5^_;RD*R,(*JR9('??3 M$X95C%]9AZ.F!=)?MC-16BXG3F'E?^+`2/-K^6KU4^G$M1>TL=V'(")&SU-+ MM8QSZ2&J.5D(MQF7$+)FG##4UJ^65387R@YQZV2\.)(A50X+,P?B'%30D!') MHGCL+F`I]N3*-700W)_"1C,@J*^I)`49E7LH]Y'&U-I>K`R4^_XS1QYY.98$ M'NO929PHU\]>1.;IPTE?U*E>9]'F2LRIVW5;+O5>LCJ%BQ/9PXD85JJU5:=U M"BB"N$J'IFO8U2_RDWY,6[='H2M\.[).8G'@E2;H(FZD+>X&@>#HZH^.B4<< MSEI"5PC?Y;_8<?0[ZPMB@KSD=..A8ZK]5`_<,>3HL*H/UZ0/%YLD(<X(-R<4 MM-#V'TZ1!'N82BO"W5M<UPN3%(@-Y<5X09W,$]I3CD>NC6JQIX,X8BN)"&*; M30D2A;&^!`CB:$0[/%@CT7[)IZ-S2/I)C3^D*-][?M4]N:D0QT!2Z4#9'O@4 MC[JPYJ_4U(0SX#?V$AJ;#?G&7M<_4+'`4U#M3H1O6JU`2JI51=?PC@D_@-8M MHE)`O!C-BL8N:ASW(YCMER;EPNR@T(/EL8PP9;L,[`:Y/P$)$'-4@6F:K!3\ M4O_,F\%]>ZV8&:P99,P<!7._>AE'"YWYYSD<\Z*-,J+,=/Q:?@X5>BJHE]@T MKI!S6#Q/A_-:'05*=[87:L.R86:1'%;W@U-V3DUUO^@:&$@Z@JMIPQOA0G)! M;*6A4\D2->>::I6]3W3G-KEZ!#NS!X;<5OG@^TB+E]0>^T%CZZO"N6-CQ!51 MG-D/0+`30A,OE-2+FUE`6V-@A\H9AG4!\U3.>1LMOR9A^/1KL[YK):I+@^C< MR_H>\-^_8$1E+1.A[Q6\M<H77!T9!N9Y.B=WVXT9.<0'!+K.3HB!.X0(9:Y6 MA37BVHN(2DCG\:(CJR\&HCHI;*^*]V#`@(D8)A2TWW%!OK#W&Y&'5]=/HF>( M=ETJO<"(V/-S/ED]%2-^?R'B\56M//79TGO*XN`+(H5QPQ=G)$-D'@A$P<:( MJ$A]004ZCP;%?NQ^',WJ[<MI-&X\MS*8DAW^(N)D;SAYJ#O_X&J^0J.&/'$I MT_0T4=[0KJNV40568WI:P7D'[:[YL/\`\RVRE7B,&DE4C`Y$_))LQRV,9I<( MNK@[3W]1>]@W3C$<CO!L4>]*[9F"_-O@9).3V<K)(-F!7?TOU._&%51!N7:] MDZDRW3UUU"TYUA,D$\W:T7!4-GZC7E$4J=!R#%-=\#(L#2B;/CF!&0[>)+[0 M;(>KWPXR14(L@B:2THWQ,S.2Q**!W?0W6*YH9<8X#$64;MINT-+I/*R+V`_Z MR7)]A&UP&+A&N5MLFF<3Q_1##8-ER:\BQ>)*BY&[8QV<]1V;N4A>$R<3TK)D MK=5/:4CA(Y!#Q+<?0C7N'_09]N"9-AJ!NVOJ\@<2F8;P-20'?VRP3.2A18FI MNT@D6";S-1Q^4MB4:XW6&6262Z9;PNR2+$)"7RHZ@%!E69K4,COD7674`-^K M$:MK^!K1SMY?D:GY!`E'[Y.>F<(3?/E<IT5<A]'V/C3G_E:^1&E2M$2V6!Q1 M#1-)R@)_)W!%-`N;Z$[NJ))J"POSTHK%/V,N<#E!!N,=[!AY!FF6G7V?<1#E MKU83T8F[70>%K]'D#:H[@PVW^PE2E>IS6:=*>'3B\`WMIZ=?21W*7:.=0M3[ M9,*<I:V@R>Z?J!0ZU3'1;2JFVJ0R,^O"E;+A+'[-5>;@BI8MS6#:<3")=D5$ MS+R_$.-(,U>@["EA69QH2U(CT1M_=@@3)_'GG_PA^T(0S?S9"K1@=C28%TQ@ M92/I4\_86`L&Q?$@HZ:IH9(BY1[P5TE#9:EC8M*5T\9/'JZ??+S-/ANQP$?& MB2-CS79#)Y9=6ARNM0;'L.9<$;U_]BH8^EPM9!]51K<]6D;B61D=SA.:R]S' MGNN/6Y,+2OW)_Z&W\M%@)_SR^]))SGQ&Q4AT]F@6\X(_L$(P/W/^Y2PXWZIP M0)0#J]GRG%D2^;6%%5#DBU`X^V86QD8<O$I_?VK%I]T2^;$9$<A2D>_8R];! M[;;1;\!3[^K-]%TC9RE3U4KRZM+YD=2(6=2DCE,.C8:"VI2I#E,.;=6$GL*' M=F/8^!XA[.ZXA1P0QV=*YH)3D,Q*/?M[EV1:FJ.\>8*X&@F)L=F!M_C!K7&Q MDE(/6$UU:096*IK1OX"T(M?VU^#O0L%EE0E%A/5J<*90PGX4]4NNXI"MY</N M:*NWJ0H;4K!L[5FRVL8/-Q=W4XEGDID]<%-<<)/=^D9<2G)V95]Z+S#LKD"* MO]M:#4W':1O'02$QB/2^0`D/8@BH3)I+"@`J-II.G6YOOC)]Q<6,<=(`-S!R ME*-S*M`L?@LV,%RZP]IFY:7:O2M1X.L2"R`/F'B9>;3S28XP='$O&L09V-Q& MU.;`N7R5@37")3W&#4<$2T.4`.EURI,'2NTWZO[):SF=LQB`'#H9:6\*`GUJ M0D\X(8AJ^#I=D6").Y#T:$6;O5'-4D-3'A6JO3R0-+Y)'6]>$DB()[Q=8P%A M**GY[-W??PVV-V3$LX'WU*]<4=V5=VF@NXO_1)4:2GJ4H2K^JM(J&>5ZE]W* M>Y;#RMU69A9/XA9&!?+>/G-Z%(&J5-W7.SW[*FB7A@*][SY%\E)T`PAZC6'9 MJ<TM)D@WM/-]%RMTD*_@*\4]/<4_O3@[)QA\C5E>YP+L,%5^?2%VS:1)^>S. M5[+3HUH+JS6F"ZVN$FG;D`]26[%_3WO9:#XHER=(]T.Y6JDNCSEJQ3S7G*,9 MUW]841DK6O-<;4:+,F(9?E*7:"'H&/Y;9,VI8&)RP9X/%2OVX!QD%TYQQ?.* M#=(%ZH7(\+.R>CXZ4G`%5#2EC%*O0>^Q.Y"C?PR*!$FNRJ:]!K3D72`RH[<C M!DP-SR!%7W>/C@&ZSQ.:CWN0`Q-%M]UDS.:L7-KTKV^I[.\/$^2&])&`I@#^ MZ7Y\3,!+O68B0&UIA3?W%;`6,'SN\<K?7S\.T#SPK;CIF'_2/7FM<GY?T$T# MU"<&)XWMY>47[TT?S=KA2U]J9C$W9&HV4$=%KK)+0D48K%!N]R^)=%$"V1Q! M]#V"3FT6PY]MUO'GD(@V.KQ0`/EO*W"-8Z(5"4:AFK\.,F4SN@A7/?DQ/B[L M^&^@!HI!W?%'<(J`7U&$#8_8$04=4%%7GJ]M75(.H6A!XCM<,D':S(ATBA!8 M>KXL((D?EG&[#Q<A#PWR(7)!SDPQ8Q'D\]X9H$J#=19HJ_1*XQ\WVP>.T1<A M2#'$(MB>X@#1TR6?M,*:I[$,'.\J?Z82QLMU!&F58><.?.TV5Z^;\S547Y4) M$L?[HB@A(5D@_'T&JF_XL-2-H"WX!-;ZEE)UJC6`-$\05D7P&4TY466I.>_] M5IV9F*JLCFU(E[R*[IO^?CSFAD,@@OORCZ)N/-!DN`L)4B%%JV_^Y@S)^<S* MC3\4@*("K^^*@M7TE`2?D@)B$52EY#NQFA<N#N\2^!]E@W5G]=\TWO)B+!7$ M^*GBH,1:'2)SXJ%CCU!!A('$:)$;E87%\?'1XN/\HV)Q$FM22G_%JHP>F1PW M08H-/N!3KGF;B!<++8$("7>X74)H+07P`2>$&5ITAZ5&JM],*H@T!HMZZR>Y MY_VH_D%Y$`R<1TV7B4LLTHL6\!:6._?\K+_0_:[;3^K#&`5Q#X#@;JGO>^CX M`7'R!LC7_KAY`#K6`54/@#]#`,`90."K(<Q5X,1J,985LW"8OVU"YSM]DI`B M]]3@577"(9Y7'*%:E=_X"Y#EX;-R+B)W<;SF.L4;CF#-Y?.+2XJ7*-SC^0,C MY,P(J4@E\+;%53Y/9%R]4?'URI_=/*?A[[24/*P7(K::-Z9'H?Z<M0X.0R5: MVCL\$O9U?&+S.#PBF';VY6X1YVWKTI_CM^V08UDM_NZ;9,*M%=])NDHJ7Q.9 M*'3A8[^J?Q?A+-&[970N;W&YVDR2X*@"2^QS-=JDDW3R!(?EW7I$\*.-;SGC M\@UYUU@(BMAU6&%9ERYAW-])Y1YB/8Z!;B8)`T5/;7JSX2%^LV)S:LT\6ZPT MBC"$<5^V9D+8WH&>1U$"F4/)_=(A`LM435]K^`M\%-*4/(C4WG;)E\&!@_G/ MNU)Z%/JARF5J-5-IL';"UION7V3ROF5TZH[P9$,]16@(5Z5YE<DD,+:Z=;7< ML&8YW9&OS>`AC4^J?'JBQ2++>*BT1?M)-MZBDQGB>=<XEH!`A1]^&3YD\B59 MG':>[TLDN)XW&E6H&5,O-;."2+@@N)'\%3\,A#(F%34]C^]]X2"10(9B]\Q% M_7?[$CUD!V+'>:OWIU^I*S@AK/47T.;K"7EMMZJ?VCQ)O_F#FNUE`!>A_-C4 MX[C+4WA//-IS>!2ZB+23D1VQ'CRP'8+AXVN_L!9.HJ^J6;T2B+ZB3$2.G&)P M*6<XNGH?(-",UFZQE8W3%<B`Z/`2^JD)/`2R(!!.).8EP;&MAALM+JY0\W/T M7O>0G9>A`_ZG^-=P=.5$+0MV:)C"#=]%HT+K-OC^ZSV4I,22`CD&M\)8J213 M1PLR`;2,\?[.VJUSN6@/$/+8&ZCQO!D]9?G&:"U*])U!UXJF:$I>)[(K`DFU M)T[6]I.7F)>6U[>)NX<<_(/A8T!Q`8`W%=`HQ.G[D<HMGG,6=WHY'0#UBLH= MWQC[^HU7.M?,E\";J[$4/CSH9)U-L7'MD:L*:9CVTJT;BK2)XCUR=*LGO6?] M))1U1#B*'A$"W$2TD,/95^H.WD7&P]%1!V.K0$'A/0>L_7-87")#VD16R-!, M$B:S2/]N:J$5A.Y7;W=;34K@X7+=9\;\Y!&?)":?Y-)O)\[?JHQ>B^/9?!FC M0OI]"QLH!@!`A<!J9J\+U!`G5P!,M?QO/;Y&Z>G2O(6W&_<>9J\OVD./Q2A7 M+&^FDVYZKPL_/*\>""Q?,@%:W(M:,0"QYFC`:*&YDQ4S(_`SMA\9;"<9+U]& M[:Y:L/W.\`7ETNT;FEC1$>D!";$#WJY@%=:K=T(SU[?XH,PY@8,H0.J2CX,7 MR@O5[A>]KDRY-VG7<$MN7RY.I\\@_;4*NR*#IPDK/ZVCR?*[PS:\:QZE4!=% M'V]++75A@V+>_2$A.0EHXSIVUL&OT?(.U\B<U,"!KX/YJX4V+L^&>*KXQJZ# M8A)CB:R.FVZ]81+:\X6+3<@)ZLTK$[I4DKMW4<F>IDS&S;!P@.*_R!8V$N\> MZ&XS").@^<*[J&\;..3;6#ME`1.QJ@;B=5><^,(G1I+R?^,FNX,UR4?"*YEJ M9'DMY?F4F!.1MTFKF-=#[8Y]VM2X_"GG-&[GV=^9EHF8C9LP1G:5,*:_%P?G MZMN"$@?ML&R0$^Q@3J*H^51<-I<D;=?HSX+LQCU/S<30>%.$V-5F'J3F<"YG M2X[OP<BNJ_(UL0ZW!7SZ;(COR:FQ%KO%_0(^XCP>1Q%)VYW6KU%GR-ZCW0<, MKH1\/KQ1LBK>KFS88E6+4V(:LQ`3BW!1BA9YKO5[6]_1<?IJML1^T8A`U(X" MX[U"H3N4H.J"QV-XTQN?*M)OI,ZA3$IU.'XY8>=/\9OSPV=*;]#WD;U5"D[& MN9ZZ!]2[GHU9XTB\OZ/Q]ZE?!2260DCP(M-<Z\1'G2AG1"C];%3TU&"`(19` M8H*<!*4*RWCD>W$&_#(%QU2,3UAT.`=6UB`'O\G.SC[/]HG,7T+$6!$B[L#( M;[:<*X"*<]F?%49A$;\1W,*@R39U$!A"[%E(/*CC,+TBW.;6U#'Q7W0RESG< MYR2=;+4DKN6,R)^5N4;9@4<!/C:7CMVP86UHO&NO+Z)^#XWA!_##7DQ,6-\" M!!K5P@$]M[X7N3-E$X`6-SYSKSQRCVPU4W%$!E>/:VIV677W!)F'X$#YFKXD M]\=)IK.HI&YT.HLP`[:273'B.4]'LO)H58MDW04,#C+H`.1-9CK3-6Q4!X.` M.;Z=D71-J:,]^I3XD:SYW1KE;7:M;>],B@*`:W:6#V![[\5Z1_5E@[<*L,!I M]*2+<)5S_`;8(A#VD`@15=WXDB")]FHW*!<V&QZFIZ$)'5BK/7Y]JGUD6-@Y M;10_BB-)7SJ,AKLL'T\!DTKK65%W]D3,4NXANHMJ69UVPQ%A*ADER%[9M0N^ ME>5E4OJ@CQ]P:+2]2YQ&5V*^_*YQ;2+@!3QE'PCD,@I3Y%#A@77[&AH8!GX# MY@WV^7/(UP6SN(:D1PK(0>4S64JV$G+DO=*&7CWI0+*M9^Q+[2_"9PL;/"0_ M+$!_83NA0EH_@[^)-5G$?J%GSB6E7Q8.Y$QQ.Y0T3$<M-P*/.K3W*?VI$C@N MD[J:CT89S\)TA;DO+,8Y#4WXPCT5M0'HC"'8!3]<&`"<.'.'W+U-Z/!L/7-K M`#R5@3NP`*XQF$MJ=QT(7)Z?WSL2BN<!E7<=EF\7FH"6/T/^RG=V)0)+01?A M/B/7+*A&5'6<R0#^\O1@&N^$474GF'R;%_,9)-X=F8M]=6D^J)'L._W><"W8 M.<==X:G@!.U3I=$W<J/T?H-?6353;AVZM##W/^?U/4\:0O6^DPVQ%56_5.Z? M2/#9U%L/CS5$K1J+3[%R+>0XN?5;GE"I;]3RF_I.K0I83]\G:OR*4[]PR!9H M']QG5P.9<B[%/UJ-JO_LT@C+J#B,?&Q@)1HA;2.XJH((5-89,/Y*3!/OV#ZB MK[8.IWJVX__KTWG^`D=0N%[A9/^B1E:.$(+R7089=R(*IYCCZ$_I!ZW]G\H% M7-7E#.ZR.0/[WY=:L*DBB"N5!_9S*/97>;PM?KT,E.QOA3WEW.S4,.]@ID=R MV10(S^?XLBP1T;LE8.:-8\TU+R&SN\5Q/$28[IG'FEM+)Y_N>V;+971-4LTM MG<T`!6FD]AU`L9S.F1L4:C#9%2D.%&JGTD33&SH;P5S-N%M]ECM*DDP%*@O@ M?QY8)WD?DB`3:S!%>EP8];K:+IM1BE*/G7CT.6@BHS=AR@>9/_*I>RCIFV;Q M>,E<Y_,DK84&I-Q6_."D(VLO273;EZS^5K.4?!$C8VJKLU2BZ%*GR`8]K-KJ M,MV:G3K^_=7+"WBBV'8N@4#NH;\_N1<\E@JMWOLS:@X5I!]E(2]3&G.]:$3Z ME/!/W0DHZP0B.>?^]/HV5?>MK1R@LN@88UAY9:1N[<2*&8ZR2CX*\N]X[HYE M>CH;%<VC$MV.W60Q,EW[NX[O"6X!#F/C9>._1DM$H1,_!SV\+E(!V.:BX]0$ M.+#A7["V2O;9AY9TMPWTD(H\9<`\^D[*'?=:OU=;?OG^YM:;C5,'64@<'O-8 ML,9,KSK!6ZEA3==;`72F()FW<339;L4O\S*CX;7U.ENSW>3,;XDO\RE$_)"0 MZ!I*A[2`[SL&^2D)T0,4A#CF8V"/FDM+*;>BDT0WC#TM8J8H[L67SY5,!3BW M=5C4:!YH$TD05&921;F9^,+LU*YYYKSK)U8;J/N0V>R-.1&=TC9V1.B)0H&R MMLDF3.CR'>B0(8GP63.0"Z!J2>9BK2*2_6O&8*Z4#XZ72!E^K_=@2%SJ(YEO MQ=G%4LVD9*.:PAB"*X;@RGQ0XT//@%;V:::D7&)NFT74BC;4AD)<AT+H@XYT MU4U;20:.1P9NN2$[FS(2--.C@I?OCH\_QG;`7O*(FOULJ$`&J)ZN;2>^9KZS ML^3&QYS\V,^?"1-=&%!I<FXA[C)];-CH/T0\J+`#MHV0B3MCEM3=^2$V3O]P M%Z6*+(&9?>EHKVTM5`&S6^ZF%O->-F^`SF+E9X)#;=2/-4ZR$D),_BM657JU MPX'O'J:'D>"S&M#T,]>6U[>J!`=Z5J<T5$.5^J9(=9N(%B*+Z_A%"7_N?4J, MS1C74-/(?:2+"(J5EL-!>K<O%`4-V#C6=$A(+U[FX?;,\9C:#H`DH#&EN=`% M$3E8[V\*[:E`M_BEE5+*C%1^94R#<JFKU5(#GZ4/6,Y!](8AP5>-C<B@_(&* M^008-T<I;GFZ$P*]8RY)MPC+43$O%;90HF,17P+E>#63`B=B&1V@LJJ+LZ+% MUN,G[P:UD#VZU+E>!/BYII7(G:B_6AFIC=";L+--=+SM7XRKW&E&4L;V_$!] M(G4YO(S``)#5H`JFAJ-@M7_A4.N,4-2<K[@R+M=2FV.F7S)DX4'\&9!A,W(J M:_K4F:?AA.T6\#(&Z/&.SA^#^BK??%>HQ"O!@:O#K)W>5W>&6@L5C1;2KW;E METL]3A^OD;WE$?(%SV^<?U4&[$%H=?NAZY2U:S_7I9.Z$T>V:N_:#)<,M$G! M(_OBTG7W"8A:,8AR6!A\1LQ[0-T5I@&M:`JCO_]'@,F8'B[-?(P`^+`UV@7$ M<E>M68-5RVP#72#TJ;R])F5EIZQA%$Z7[S&^%01OHHD2NM.1@YEIWV=V<>_D M/K@=SA%G9MW2Q`WK2Y^]PIIB$/%DBTQ$6F*OMQ(\C"QXB?ZZ;R0$J=J^0H!> M\`@Y2`Q-P?J4.A95<.,'7F[@^/9I3G.!@:?%#0^26Y^BW5KOQMZ6DZS/MQ[Y M^!=]7HA\^XU-NK`SG??,<%.M/$(.;_MW4XC3D2PA(^(LL*9:>TLBODRZN!)' M8TP`P"SJ\@;5LR4^DC7WVOJ\;#B=5ECU/<7-[!.CPTE7=C8K;%"&DWS"GAFV M+9/ZT>?OMI>M/UKZDF&W.S/,LU;+FD4.D&91>"R=Y+`1UTD/L-&O?LY+*EVF M9]F&K;Y,K;_/S<VQO?/5>%CD99*G!\^94S'2Y62P6Q8%?0_'44XMY4A9B%`S MF1Z9X4T2A\U<`VDH1QCAG.'QK8!VCEMCS:."H/8>^6):CGQ>P`PW5@H'8%3B MR/!_+PJT3IE,"J0QWJ.^E=I2_X*5ZJ3"Y28[<$%&X)LRB0:V)W"2C0IV[W\2 M6%5]R@D3<>KO#(ZD12Q@L$Z,HT4PU#Q<Q8L'UKN%"KF&YF'$IB(XWM5&/+AU M5#>>>\Z.LC>!)-1EU06<6QND3`II@UX,59+)$?!.G'@S#546QXSJ$!@N:'OR M[5"YB3>'#O3%_OVB9*4)U5RT*3N4=MCJJ!!8!L_^V?$<%M:)/FQY(&K*/5J2 M(X4"(!`FK)',\'-*PWE3^6W_I\N.I6M'A<ZXF"84S.73_";PPYH"UX#PH4P[ M/YXL6,C.O2&3H7VZ]BE*W=?J<:H4/&3?ME191W^XV#1[5IPOM8I06LIU)-_: MS7I)B#M*$@QQ79"T%`WY_#Z+O/A1NBSUE8-;VCE_\OY4&6+.EZV6K:<RSTOV M@RYHN#=08LU(4">LIKFMKV89RC1/E#6ALW*OWC1J6T-Z0%E@!BDR*Y@-FRP@ MD"AVH"<]ESZD>%F(L-`1Q1O&G\A-16$TY-,19C@T=.>0$3)"@IGLK#EKGD@S MZ1=*)V0C?C\@7)I2/^S9,9"<M:K\F^DNR4-Y.9FH+T3"GU`F80>L^[B8T27" M#@+P7N-V4`JX:TW-\>%>-F5D(U,2GW16V1"*`\\S;=M_6/+5*D;=S&)P'&M9 MVV:M\/%^L8T>(CO'3L2/YUP(`]YH#3<P`AQ&`@&+<*N9I'F"GM/2^]D[26)] M-I(.WJ_=@]_`-5EI17-C`ZQ=XP)WU6*5E3!F`,.AE-U;HFF4=T!^R_!)1&81 MV)B\)Y2$B)BMS(71R>+>-F!K9&`FKNR!;XR$_E[BTS#IW>7][?G7^3$M5B^H MVZKEO0W2KT9&2[7B[;EJ09]LZC=8,J?JTKJ>%/*@5"QN=>=T;>M;,4CA^2;7 M0W@WQ)4Y,1#PZ)T1NG5/X35/&#!_[VYIVGLA,`\LS@P$)>6B=3/ABG=UIJ+; MVM!D_ZY#M\6?H`7/8$R6.BZ$S58`W6%G!X.5;BC3XG,K)C>\B;1<IW%ZLB^E MZ#I&W#U\/`+AQ=)/3<Q7"URWL29]%;*%^F$$VA;L9I?)T%OUQ9I$P(_K7_63 M5KN1;,L&7ZVLP%!`H1?V2/@R7-*:Z7+&^BNIT@7Z"7I$^U`J9-"N$",8LLH/ M,5=[M%Z3OJU&PG6],&'?7I<5H0R%<X333(9&4(\H4AG%DSD2;,%>4XSXI!C1 M:Q'76286EI"-\VSN!3'(K;94[YF>\R820"JUGZT3\5(^W2)N%6'0-V;BRI9X M7@%Y:G&8CIACN'L@I1Q16(+D/:B"67$\5H,PD5FPC$XM#YY&=NI%]I@26=FD MVJ*?I;HS*^R$'=79:4:9U(@?#+%&@34>SAJ"TNF)NM:P]!<9Y46`DOGYQUKH M%79AQS?9#8Z7-EQC-V`6YL,3KR1()/K3_!1>$LY#8M9!@C,I+Y0GYL@EH68C ME`TO4$=VD7>HC%B+;01-$`HTSSN8Z$"I?&)H9L%"IF;D`G'EQPS-'*&V$3W5 MX8PRJ4IAOEVC-HH"'DP'BT6#B$53(Z+QRSPKSM?`[<A8Y8V]27R>17AFA7U. M!/<^AIC,AICDJQ#T-(<EIAY9?2FV'&"5WE)\(HFA7NTQ9_S!@ZFB@*=B/INS MI&`#VH,:4+3!+!L!?<;T#1@>3!-T$*B/=0"38W(D;4"5HZ,O-;%LUC(9F1I; MC:%(FT%RUL!-PW%,)PH-G)$^74SBET,:D+^?IP&#`FQ'TPER?LYPV+QI*O0- MI_*R!JL;W/975#0W+<%*6L\.83>]4?U"%U@N=^*WG9A?^&RLJZLU&)%Z4$&= M\%$TC;4HY?[*!2GDY^1[RW?B]IB%79IVLR_U-*0PPDN^3WVK.(!H$0NW;R`< MWP<'^4A/:<1<5^*O@!O"RC.=".FR'AJ@(+;FJM#G05VGV,E;&+4_L8-RL?37 MLDY`9?0QVGYBQ1ZMXC_<6[=XBT+;3_-UG)0C$WA=LCW=`IQ/ZB8G<N=6KD\: M5VFD]'3?5ZU0HW7]:#&N#U3&$D@V\L-S!MJ@Z*;]OL-Q(J7[,JSU^4&3_6LW M])N?,0-Z`%`2)MTCLZF@F+?5&2.1(E(6`KJ4D-E"<!I=*G2#2U06:SHDB%W@ M,'MN;YZZ<&D+1\A;=VN=O=%JUV!@K]*DAM@NT[3RF_]>P:];2E8:=P?/GYF7 M>.L.>?J8@5X/ZTO]:6TMN%^/H@H%VI_*U=L*83I%-!W%W[//X-G(S695$+?# M@WCH%0#*03LT/R+!/\UYR`9\C;,N,,9O:DU&?U!C=%%@DT+FC;W+"`YJ5^>` M7'=/HJTPV\OP3P]1*UQ7/_;-;./JUTX[=IU](RELFY9OD'(I+`KPH*VU%'@Y ML<V^&FX][7A]<=6]<6O(0;_A6W$%T=-M]5KRO6^T[;`H)>G;;XM'Q)UY6%P4 MK'F$AQ4V#R5(BGD96F;+2D:+&T&-<M@N@<*_0$)[4\HN(6<QZJ;UQ:8EIS[3 MX?1(FJO+:@J=%K'"&K/D''.`79O>SSAPU,[+WDM@(9(4D=ZSODY)J.5!`\^D MT@AFF(L*%@96&J51VV59+I=KR-B#V^>94VE$?"AI_F4JB4T?Z4[K585,<`2- M\W8O2UM450_`[.A@LVD`')[BX3EGO@THJ)WQ6P!T7:]G[PGJW\2L`0HKOG^& M`VLKOH-'/04ZOUC8%J=QD"WD[-)JT7)[@5>C=_$.\9=B%UJ)HY77XR:SA+30 M&A4[W]*3#BO<%D55$G7KYH\2B/E*`)&A\@=\B`AL!QEUU>:#'B0#*(D,O-\: MU-<"8M,O?21.>8V_HV.TPY)>IRXNA3%'ZB%O78E=W'?2*D),5DOF0LE\QQ8F MSD<RNBJTE9"Y%[M$Z!,,<9P7UQJNDZ_\=OA%XT*A)%3]\"DS=;Y/;Q3E]K4* M'<^Z-="=Y_L]$DTZ:>1U.%`66*0Z5-=7X'R;U98!K0>835H&R**>[Y,1`D=O M>:$P([=R8VV>-<#32L[<P/E0\]MH("")2A5TB:*"!!JS_'[*@B@N2&14)T*; MO3O9UZ5)%X?RL6-*//!7C0*/'",%"J)?3)\W,GV&4AIO`8V^;\\O/@!^'<;! MSSF2^Z+8_=T']ZI?O.A6P3W[.KC.S%S6S=-\6>UT5@&[*$VJ`Q2&_&_2@%2X M/`M(].BCBHV8<(D..2\/25,.&#$VC8"#]_6Y8L^,V[7#FUZK;.&,HC#_BN,0 MW@+?E[:&)0O;;(7P2RT9UK'*7F^DD3J[#<UV&MN%R)H6E\3'I;V<-1QPVN;( ML;NI_O5U7.7X7QW>7!Z-,A`^]X^F%VLFHM"86ILQK!)GBF3W2[BJ#G?KWM3. M),3AH5EJK6EP`[P7];E2<3/S!Z!1F#TX3RC$:_%Q#)225S@OGCEXX3YKB[]V M4HN$502'<K\+B*15F9(>!.GB]GTC4U/U`)&@.==2L3E*4I=</J44<5N12LIM MZ$C-[*,T8\B`TEFZMI02(D5-C%*2[Z&D;1P5D#BO8%`_MTS5(?64E04GNL8= M^"XI_=J4J3PQM#+<+&)<G:[%[/D99UQW2MO>7Q<ISH%3/%-!-FA<6[RO*;>V MPD[GL\0,$,QP7S2ANN`L\%6UDDL=A;=7W&Y$]PJQCA*F*Z6`_F)P(DRX+)QG ML3Z4*I`/*GOQUZ>>-)7RS^)31.R-O8C%<^6IGZ>3]>_6NU9EZ]-/;C4+NXN: M^U*`Z5K8NYF;F$H2<_>-R+5D+$VA8>0J<KN8K\SHO72E,8-D@L>+IZRF$ZVU M*SKDBFO6W96Y"C&P*G79E5>:BS2;H03:<.5"X\#R@_6:3\-#SZ@&W+S'':8P MM*6C/-02<:+W(IA.;-ZB`PS8=9(&R=0^`\ZV[ZI[L<T-%GN&H]0=T)V^7&5O M26@7*KF1*[^C#`-R:^MOMMN&4VVN`'/<I_B:3QM3`C%O@',")TL`PT?M7G=H MOJN-`"R>=.D`97N^K@R`E45.N9O:V5N&2F&=CBT?WBWYFPB#3!N>T!`UO;E< M!98+1RL&J:`3,.XK3&&H%40V#QR>ZBXCCC%M;<Y\"-3JX<W3[G1(IPD(4;E6 M/!'MT=*GPQ_6CPS3/L/O08<&;PJ)!8%35B:5CNER2CO/(U\WEBY)#FN,LG8Q MCOJ]NPVM$A\)\>7W^&6*3`QA.B[.7Q&..A"VP)[9`%4O;.\C[PI5C2&/<KC@ M>46`\TWWI]>6J(2HK*S@S9`J=MG1_ONCZ"6^MHT"6[H'0S4Y51=+4F)9&88^ M.`M6+PZJL`O$WAA%M1EDAO`U*CGK4\H*6OZ7TJG+IQS,BYB:G_8=3W-JF4J" M<Y<,9ZQW#IU3Q>>`D&9`,P)?8:NT(0GUJ>TX68YM.-7=3XP]>((.0,32)@(B M0.ZUPP7AP1)0Y7JMO+#1K^H>,ZX+.'-YRPE8_[H)</8%5-\#?"GDQ@`+K[[_ MO`%RY@`G!U^/GHY^@(?(;<8V:5]B^U:@.&=,LX&T=^A3E+QVN(:EU_"K&>UE M6O)4N-3GL9IF)9]8(C7^X"F4-0^S5B2YV@1&>6^:Y##H0^FCR$J^.ZDY)M@. M._&J79B&#U62Q-6C,X/O8I%61IVYHJ4V>)NW7&HR+:NW2'Y#S[)>66BH:(;7 M_`%*>-$R_NV'J!7**/0:WHDKT#1*K4[]+7M+B]7-9.,XQ*(ST&OU?MY&@3N2 MUJ7N-.(MN3Q6YOTXCB0XCNEC:TN+`&^T:=IJS4]+KK'W<?@32+?GJATR+:5) MW_6OP=^VL2%\<]H5<7"RG5]N%C<B8CY;=^^KSR?1P*ZN97DZ1JA&1ZR4K25; M-G^<+.79")ZD-K*RLI+92>[8D@SX6\<3:W9JY"394IL(T/)/KI8-=-0B*4X+ MO(XXPQ:2#^VA[$?U@2=P7?0N+WZ.4XDM05![5EYSUO2!OM<OBWHY=)+$-Q%3 M>UYR</[\#M@,.LQ^&:9/C0C9X#T!3%)[PL3_K+`']J=^S;UWQ[FP*:B>4=E+ MI::US;#XX<<2)1EAG6,&#M2ZIO/>&?5@#+/2XO).FQKP-J>`OQ($LK+2+O1I MCGGN;9I-IEWNPK$N5_?R).3BJ-6JGMKF$AZ$9ONF,YP#OCSTX!O:%6LU<30P MS39Q-3']#]7>7B6N1\5#74N"5O3):/]V.=N?GQ':,(T$-@X$-L3FVE->J%>N M&EWO6G++%";GB`\MD)SN)"95'(74C&6=7:9&ZG5>E:TM.1=B+`3`K4B_MBYV MX7+W:MS,L:EA;P3H>8DPMOL:=7V:B\H?+9,E.TZ9=9.<Y=PQ8CWFZ2026^$I M0#"H;+7,XOPJ&LI'5GR/R$?@XM++`N/IGCNFR_AT_E8ET5;3,5)/@',_'"SA M-9K3AX?#/9:A6>R^VL-9C7??Z%X"`>\J1AV8A5,"+(IRG!^R2'W0)GVV#]JB M/!EJ94)?='2CHKRSMK]:#:K6A9RJ!X8/2NCBS!*:E')Y^$R6.8&+UCM@,4/> M)%+K\_FI?BQV]]7B^F'^HL^]5]<++;=U0I+-V].JY>'G'M?%L_*>K_16N^X2 M`7_C$>`6OL4#X+BXM')!]&[:V`!H21B`Z/KD6JOA;*ZC+3KSON2`'_(3(L\% M,W0KLA$-.HG),C8L_OD4HCR&;N1XD![L12W,R,CH%\YUE@7>:B%#J=C`"1_Y M$F/[L3:@M.4<15NE!3J"B1LVD&+"S26R0/2(H:8&A^*8:(5Z!F>KW[#X@+;Y M$-3,`DW0=3EE0N9A<[*-N4_#7=+ZM<0=$T[5`V5?5*RR((W0&:MH^+5<YNQY M=H,=G>KN9KE=5=,R^?N6V-$R#9M(%3S@9[+>C1>KF_48OB:!ZDEN@`!R09%: MA2195*XM#[_,VUWJTCX$&B5O@TQ[_=X&6^07/@+1K0:_#F>$B^=V^.4QKNHV M39C1D94MCA+RG*SKT$J(:SV^/8:`I$XUK*_);,Y/0/<A.80YS^/50?#L5:<U M%2`I2<0\Z45.M^'?K=UEAA3CT+ZT7!,VP.:>I%.K<E7"H#KUS[FOF=F43`=D M;T@#>*:HK3UII'8ZN<1=S(J`H?$G:-..NT(VO/Q6_2_+[(I*3]T9:G(:B'UX MN>E=O2)T_!Z%=@#PQB[L<DGO+XQ,F[9S@*43J#?7R25NKLT7P-O7XGE`<\+` M$6"U8&['*<!&%2XOX;;O0;?T'4$=*B!'MBRWG*!WXV;XP'46?AFKVF;BC?SS MW#,:E\`"U4LJ/[O@Y8LNQA7(X:>VEO>)=86'0_G'CC=-P`%]]MP=!,'CUQ4W MUS>Y$<#%`[S%ZP>XZ@D5TTKL'#!#H4T:YA*$83H7['BT]ZU>)H6)K,Q7H>&L M$G_F\,%0I=WLU083M7A<C'`(F3A^]P7@=]K<`>9X'1X[:A$`NFT]/1Z`C3ZE M$\#<LV_]NVX%0.VO(:!J&;"0TPE0.ULKNS]7\7SXT>8YM]YF<?&UWK5JN64! M8'CQ]4Z)_W_\=V/J\XZA-!$#^PD3Z/_;G[+\/]?_A>N_?_]EX.Q@8^QN3.?H MY&#^^_NS__N?@?T??__UF8V5D>7?OO_Z_?__L+,SLOT_WW_]?^+Z_?U77S'5 MG^^_+%U7V&J>)-^A9ZV1A^*,)%Q.Y\-G?D3'NRW\]+;BM&:_F_HN+FX@\TV3 MSZJLI;GC;1SV$W(!O@N[]7FS:<^,)C)^0%>KZ2>35%'_"7=>66)?MIWU^7Q^ M@#F;:[KG1$Z/:6W]0ZNYS_&!@J-M\=RZC>W%^2FO14.#5L4\R?TK0Z?QEL1. M;QBF)VJ+>8W-JO<;0"Y'/PU@O_N^Q'PI_]YXG^XI@[NPO+ZV\M8-F+BBW?/- M+.CA5X!\1P2XQ@&X6R9<VR\!CCQE3X#QYGT2_LV<=M':.:OS\]/R;5]+VXOF M?<"Y;`O8CFNC5BY@3$[W^?V@(Q/0P+\-,$JRI<8G*-JQH$-5>;F\LW\8`_-T MZ3PV?+0]A3M3<Y\I4VLC8-CH//!\-G#<>B)I<9WF!QC;N7@X39M"6`U":)-. MK=)+\W!A:=\R^-:-@?DX^/O-B=E0&N"O^>&.XZ;4/IO#1A&7(RCQBWMUM9>* M?U%9X7N[LL4X[4R_U.O/%QWTVJ*X_,8<06"`_D2,]5EPI:'#1(CB7@<<%_^& MM*$C&%W[PB^J>1/I=K/<@]*_&1L$A#@:9%?.A7O+OQG)]5,8DQ,GD`R0.-NG MY49$?@:H'L)D2%COJ=3)89M.O#B!>NOG-ELM)7D:57XC\^T>4HOZ"C/H%>,, M/X")X?'H)L.GZ3%6!QIRN#GK0/;(H7968(9Q7W'4HFALO=SO/VESWV7`PC23 MM#Y]:4!SC.G3ZNWIH@7UM_%68E+77C-@J)DZ-0:"68'F4?6%:,D%:LKBLJO5 M%:['-P&=&4EY(/^6UC)1M/MB)GU?43ZW?4YJA%,:^O;3#Z\)A2)O'>C6I\D` M`H>\$@7.:[MP)FT=D?BVAC&\%QS*.):)8AU82H#>*N/+><8E3J6UMQ(G3_GV M_)CS2;%U(7C?U&"76[\.@1&\,2Y_&%$D9EY<W':'[50QBIRU5.>&MGYL'@_F MU@])I9JX^WSG>UV#&]/%5/Y-@&M.8[H9H$O?ZPJ0L],<`_`51;6+`=@VK*Q@ M`;16!@%M66<,[X!:GF4,@EV70=5V&2QB<FO;+A^)D4*(+[4.XT^0UM5SVH;2 M^U".Q11=5`BF`-V$W8[C9CD`6@R_>=3+K:\K12.@P@7GKJ.MY4T$P#]@F#&Q MT&X7,+MS*I+IYK.8VDK+!O9>O9@,39#^<RSX"^E/JNUR/2?@KC"M_$^1UMT/ M&0AJ*B^ZB'9H@BP=AG6=M",9WX@L7,HK9/8YPTA(\.`)&_2`3ER`HT-5"*$? MU`LU#.5>L2U5B`HL5;$Z&UZ1RCX%#I37C\!_@E\D&8D_^E1F]?KKI\+9)]3\ MO866@;'[-=&HIQH(<B'9Z6.>3_-5P-\U"/33.6]I/L]B+BD(N2/>&,C-0V2Y M^G13M^7$/`=$C/3TK/>!L8)<=JQBKA<#EOU\A[%/[@AF`&!OONNK3WD?;@22 M2:!=-PW9LL)_VH&")'Z\G'?=\%:S!?%<M!OWB?02-YG`(TC\V:^X]4V6'&5\ M/5-[V2JAK<L*>SJAU@GSBZ+W:0ON]!,X-]12!8I(M/@^G$L7)S</[\O>X2X< M3A#2C=NV7^!GJVD;:Z5RD1E#.B;>1?!P5OJ&*TKDPM+FH.$5T4IQ_^E1/64K MOU<SJ<^")Y`N/`9O-R/9;Y^];L`:+T.,ZVLVJEH&,"8GZSJ2P9`R^SP&JB!" M!M8B8.J(+@/:;1MK)=KT6`]E6B$[K!J/++]?T%YPY_,Q$X^87)R79\-Y6S3T MPKJM0^Q#F0YK<!"+CN?9X7(J#<%.AH(NBO?CP+!`Y9NB0&P5C"LBVF"+Q.8P MCZ+/]W0A0<,#']<LYHQWUH"\=)?PV8/::44N4:+9;(?D=84VC`ZL/L^G#=!N M0Z73Q>Q"SHMB!8+9-%TVVSE&$D;N*0!A.,E42_=UFJ/XR.TP_:+HM2&%<P(K M`.>RL-JQ;YW8!>B56TJC?.^_9;.0%CA$_!26V9MFQ6%M?]RD(/Z(;YTUG`4L M7;"U"-%J#)-QS>'2C]N8;@`53*VD'M"-%^]DF`*)@GXC;"/-XA6X(DA;#NV3 M$-!AFDL.JLFFO,27+S!'O154B5K@Y4^@4"C989B'!TF3,"9>&QMDWMLOP`%* MUV'?B0T+LLAN%R[.OW7^61H&2T5PFW7[4X_$)H)>!`"*S4$;$CK4I.8"'5RV MF_5R,?:17:8/$^W7:`5Q^"+SM85T!)\=PKO%^I",(:@`_Q33SBWT>*?]Y]BZ M#4[QD,R@]5^3GSC#C/"1'`V/!YB@#4)9[802IWH+I`.\V"M!"WB$B8T*>E+[ M@>1+H$AOM+!$=57L*IZE^"YY)U,0VO*[6LXS]I.8D1ZS>-T-M"+I<!:8^^OG M(RUQ=I8M^ZUQ=AK*.,&@02G/2ZHM<\.%3O=[5XK5IYVV,44"OC?;!WY*,VGT M86:"&YMQBV.$.6P[OF]1&R1ES7_,#\3/$P'^;&\`G@S7%`Q.J9LLKP.5'6D/ MGN/#:_5MA?%:W$X5TN\''G<<-U#($3T&2!0\9C#4895HOJ?/HPL:NG*(JBK# M0%%U9-BD)_Y3/J=^X&#_,BWVCRAMYB9@56,>L%1H#5YJ`>OBY?R)A<LH.;LT M[5)J38D1@Z3PT!8]$?U$4X.$N#I8=W!T1@W@UU.^S4)O.MH"B;MEC$V:_<_F MP\SF)D->#<'.BU)>)P@>_`_P`B.+\95J'9F)\L(O<%NH'3N(2LC6W[XSN9&> MS_5LV79*@F_)[@K?X$I\)LB'/U.>K!O3XP4&ZN>&K+_Z^M.Z&3WMABHG^)-/ MVL\Q`7I,K3/&H40+\.HQF4QD2Y+(7CQ2=!_*U:'CO598,9+["U^6?)&"&>=T M"#:=B\%5"5E<Y"@0U4^0VV76+;U5ANIZ2\!*19WWDQ6;@Q8:\;(SH"JB\<=E M5C^=946[DVR"5Z7(DG=+%$<"7D>X]BN2(*HYD=6T87:!@*WP9;H:Q+]_JA&: MS(WZA'D$2OQ""I,<NWP8,L3Y@FD8YVTO$$$(],6^L!;";N]!`E,2K<RI#W>5 M_U1VC-"&*S^0&4)=$-^@Q"S8'X_+DL6/!/,PQ0(XUF)8NW#3\%,.4>IGTUZB M+]>OB\[$,9Y1%AJY$:S-8K$J9;M$^R^T-+*@1*=&2I=:0V)41^YZV4&-K!K0 MHOKTI4)14&0LQ$"'/C:^])W&A-R,Y?D)HM9U3"73<\E[#5HKQR%#<EW)="5P M%ONU21;*T\3I;WFX7ZA232S;Q_@<'M-OL!@_"["W&10W$A*^@L<6$<?^'*H/ MIDM8C(\1=-6X4C`D\A`SP6,L?<?;[P$/7SFK-IUXQ7Y-4PA\9-!83YM*U3"9 MGW@.2!C9^2@.LD#_,,/$;-X1;/GKG0UN!U)!%#=HJK-O12FYFLCPCY2EA<8R M4S6UDD<)D#6DN?,7/-"&\AX^![O4,<]PW]4%^?W6BRKYHZS[5CR0YT.8TT/0 M6F=5:C^K/6;MAI,0IH82FHHU;'E`^B6K7Y*(E-<1:%3)]$T34BK[RP*$RI;6 MFS7+%(IH+7,=_#&(`X3I8[`MQ&KF]`+W\S*EVV(M;BR93T!;QX6C=&X]?`FT M;Y]5(M-I.BT8S^Z2TW49S_7RC++[JZ@`5TEW#=#P0B2@.%3/,#_!R=&^&`N7 M%*'HJ>"C889X)4U5?<50@U9MRT[8)U'J,;?E$,*\F@PB>36BS_].AB4]E8:& MQZ9N91W>R8H`(J9]T'[S79$7CJ@]2^HLFHHA*YA]U4XRT3H^UN$'4J)@)M(3 M?.@L7BLJ$4V&")`NNOPA8@HNJD#L_>#([I)6F2*,A?RJ*)/I9Y"2)'S3^AXF M7#AWE)XTW*AY>7*3'7F_=5*S<#*-(TEI60UKRRE\BF5/'(F+83L.<L#5-6$/ M=E+5HH1"PE0P>N-JD=";`_>E@INK^^;=E!,-%C_>12.K[#;/+J%Z)VG=UV7K M0>#`!%N5VD:!:FV*9*4:**%HMHE82SIE6NE:*R@SJ7J:5JX>(AH7NUW=_?#$ M#*HX'`RJJ$%PI_"U:3HJ9E\C=0TC*73*%R;&M#+T44(+NJH4.RKN9K)T!-;L M9ZBF3TS[)4^-<3F4OJ#R2;#]5H=ZZ>0R7S"?#$<W:A#1[W!560+]C#C)(1-? MDM#JFXZ%;K)#?E0,AP::Z]H:\10GSVH-S94'MWY*TU%N7*7[#.>K/$ZG35TA M86M_`G/$X&331AI$Q`6X$M0PIS._K*D_7SG_97=.!$HI7$F3Q9+VG3@[XJL[ M+KF3.M&7J7KO*:8N$)#MS$!J&&V[(RG&[Q+B"#*UA:EF@O?`D!$BS*5RU?@X M.%\]"/SQKEAC6CN-OOW<"LX8CEQ[.](*V]3,TJ4M@,8LW*7W_KY`&QW$,OI% MK6ELVI^D#2:O:+[(>#>"H\*;_PJZ"%QS-M6[MA9S4#J+<_$&IX!T'0@NGS+K M6T2NGJ@(531#R3GRN`'Z>@D+DVOX``:N7.=,:>09\/EJ+HB`6(30(?Z1-:;. MRO1$/%H`OX++_G=!"VABNZ0YL6,-4+VHUNAHY-V?L7VUF$3<\`;73,:-F*H8 MP&;0?7.PVC/2NF*Q4`5??,W%F->)D@FIK&FO$),KRA!JFM[JWA/52^#5V>BO M2@QU-U`]O)U6+5FQ.\+AM$B:O_]2]I%3H_EVHKX$]FO;6QPK*BK/3I.V!"@5 M./=ADX41W8(]O=!PW*5VJ7R*J=B]7T,X/V8`4]/82SM&2!LI&AF1N%KI&\_Y M;?A!'AAD&;PXT7(H):5CL#UF`:HFY,ZDL@Z>_+7Y5P1*R$:^!&!5Q*$,M7`B M5-LO"<>?LJP$U+]E"H\$4M&*8%UF<.3+U3'&$=L()4#P=V-AH%F5_ISI>BK+ M&7?&!VECF#V#T90UI=(+M8,GBL&;R#8W5X!+S7XDWNM'"Z^B[LO'5WZCV+7^ MLK@+%/P!&\)I</X(&D&L`^AE_!:9S.-R=1I,_1@SJOY94<S!:#W/Q(MD\A%= M0=_LS27K?XG3KC@$,/9[JZ:DU4I#=*1T7_WR=/)R7S=\(=-X:KK&'SI^(7B$ M0+22YGN*[O)^Z+B_?=M8VQ\_OZ=?!ZPM6?HV`ZXX\>T,)4$)-8M=P7`10;Y) M5*':70H=%AXW^=[I$)R8D#C31\^$((:+W8`'JR_A`']^&BL<?&5SN&2FZA0X M894D<?#"C]&)_7+K_2P(J?.KVJ>5A__H;3J?76R]G8N@=4RV%</3JGQB2P8N M=G]6)M5]*Q+8\59;LA)B=^^R"&NQU9XY#@EJWXX9'1@W63J;TY''!*LS<UI[ MKM9@G=*NWWZ@ID2:09?W.SGN>QQ5XI>UNW5Z.Z&+7_RZN&_YIBK*G1H*.YWR MAV6X.5[\5FWOOMM]<G?E"X`L5<_&PCN`NR/&A2__QLJ;`^"EE@?L;4(74U"! M?&V#V38HV4;B)]R=,8SPZXJ)8<W/`BG=3N:7V1:MH(;1-:M!+0'FDHAB+990 M9!R4FQ\C&@]P9F\K^0O>97/T]?'M=?0Q2Q$8M`1J=-$>"VV/+2I/.2;A^9IG M%I6NQ1>>![:>:VJJ+<TWUO/0X1P<(%%U#2OWS"3YP`:AV>"(@?GQ0GJ@_17K MW;&8)/,J)D#%1L&AQQ3*E>'J**9%VYJ!C7D<&N2?+#@A;<VH^WOBJ%TZK<)/ M!^L^C930![A67$Z"^0>+L`;[!=:$E_Y*!",R1MZ6-<P*,6,JI1TUE?4XF%=V M1F[?@$4.)=A2,J717AWETYXC3&6*3\&>D8!3A;81)+`%'CI"0A!\B*$%183^ M5&VGHA$<X[ZB+DBS_L4$/NMJ-I(,@EW6#_.'0US@\ETKI%H$1_N&ZI1R<`4X M"6:K$VUH/$69-P(.0NS1_0UM=X"V(W*]G0RDAE*V0LEJ7/DVB/*FR&RXDA'J M+_&][RB.`7E&,';=WM7A91/XS(4-\C.5<5Q,[E2YGQCW=P"PZ\-XU#4SHNSV M:?I.UJ%9Z%\CV_:@N'7\`NS`413N9/'76$J_@.XBIO8S1N]1U66VF7^[9$FS ME``@=+Q1HCXAPLRP+R?@-Q0:T*9-.OQ8Y8[UYQH*G&;Y!9^C98.6S"OB[A/^ M#4M%:N8(L0"\&QR!%F2QU)]+?$6D%`2MYPH>XQ!WOK/4/QVQ+J,XZI5&,&GH MAY<81CZ[ST$3U&[YBK4VI>Q:&!!67OND*EAQ'$&?$P$BIMW(E=YX,34A+`P) MEW2:`>^X0`M+3X^UN-^!`Q1%-L:Y*W!-941*"ZI@Z#._4GG>=V;1!6$Z;U[H M&(]@GN:]8XMO7C18EFY0JK$@IOA%$FS$'<K.<,'Q$*>B\W!F-$Z&2+U!Q^/V MD%;R<;A(5N"AW-7>PJ5=/C`4;K^V!ZJ3,#J&&/AAWW;GL4+R@*"VI,J_ZN_R M*(A)*!TT(KY9`SG"5E^IQOYB_QYKP>Z"?1:<B,A^6^.92"\O^[7.$?3,'KW_ M9\SL)QCP/"KVLD`1LE@_L"NC83S:D*AIOS%WXC>^]LDK#&QO+SQ2-5V-LGAH MY,@:8@YR&+=1`PM@CYY514UQB*<&=QEWP;?PT^.CY$RR"#V.DWZ!_`C]UQI' M@<P\N!C-"]E?IZ.XI7I?=,3[P0I91`73%^-%4@Y=T"?A6CTV(VZCTUQR""D? M8/N)'^98`7Z\3&T/T_)`X"6GPFGH*M]FJ6!$.R6D\UJ<?")S3<U`C!/]?TC7 MQ#B;0(Q,XM+YK4H*$(I'64?D)F>VH!+LM=*]@GDNV;CN$C?;S]TC2Y5^#@[Q M-(.>X7#V!T=WFVR%'N<=%$\(UI1,UT;]`D8O:YH+VQ_T95NF3^4A)L[:D(<( MORB,64Y=VT7@X0=T@7[^#7*&L,I:KEJO,A;1NA8)7!:7H1W3-/:"`TZXZ_(N MK/:G"MIV=ZJ%;@OU;Z6/P--KLF5+%K87/"D77$1R=QG"_,X3<M&RZZ<CDW@7 M-H6"DWW,`@-?$07G!QG]GFUS+VU+"BVG-3H)6NU[.GFJM<1(-W`8V/?<J@-H M@8PSYO(6G4^!!8,DQEH&QFP#N'_Q=)B)_J`ET)Y;O;Y"]E55F%R8--P?ZWI[ M<JOPE0UAK/ZF11]QJY=@6DI;A2)PT[LJ9T0/E/C)>BS('JKA+L7$_I.=+VY! M:&/!P[2`2KUSGW>N`J</Y6DLKQ9(F2$&TLP7WTG6\B.&FLL*>2T!Y;&=:7]1 ML'Q-`YQ3=+1I!"\(U"=P_V!$_SD":%QEIIMID7IFC%`8)!4DX#KE]+D?J@3, MWDL9>#_B015$P@&K`IU';M"<Y%&3()"CPW/(9"K"PT'5DNL:0U6]U$^3HNW? MX[F\^+$W8&@;:*@T!-:#MJK]<2LJF%2:&9,2`?'#BONFT+W4,6W'/>KMT/D6 M&MVPDJ<L7A@UMV)TC=5PC+XC*UHTRRLTRXU5GRAT1IFUFPL2ABNS#]U59!2] MO1M35=#ZTU9P@THO)2O;2!<;L)!+GMRW$P3FQ9##8]UKJ$@(CF9_>?]`GUT$ M[OV\XTGA[9Z[QGC>LL%_MGN=Q22S+WU2[+1Q2_^N8*C1O-L.=3O17M*&:/O# MG?23<E\\/90%NK4)A;$[8CZ>%OZK^'Z2TBJ9$SWC=3D_!]?1P_A$,AUPI>KZ M33Q,XE*+M"EL8%V:.-@9.2QZGFAA&3]0&;A80$YT=`R$;<N%9\"[UB/@4,=V MDM?]LYOK,K_'QAE!5C;L<W'`@AB_T,.4R-?:<SAZN77G"?"VG)<#G3+WD(.8 M/EY9)0%%V^77S<KTE^\O=;C2>O98!<3KAI.Q-,Q;WKDIZM#CPJF_)C4\C#:" M2J?$Y6'G)O5G8.!A@5<M6\5"!D#;R^D5.@V'P=?3!PWWJ8W[W#14R>B2R*R4 M2KW`77#WK\JS51'UO9JQC_0`!R(46BGOD[,9;\DL?D96[_HM66)A[E\B^D!( M`**P1YGH&K-&>.2+,+#%5WJJ7[&F-GM5A)*+]0@I]Z<R$F9NOA;/YH2#)Y4/ MVA^BL$'OWU;O0S-B'ZG^S)%$=D`A;@V*^D(?,<#JG-5<QHYI/-SNQ(ZZAO/R MW1/X"Y6A&`/38TH;V);'VIEKS`.@L:W*UHJD\:K=MU"NJTG&H"^>]HG7);YR MP=YEC=QEW,5EAB)C)JH@CC>J0.&SHE5CQLLI@L^GH2T[T9JV(>.9LKE*DBNT M3Q*(A`)^'FAXR9M,7"C9[$[B(?/=%J6S\6*W&66O*-V6"F(/M(J_V*-<&E*% M_*WZQU>IX:]FI!.:=G8:7O;/Y%9</#?N]VB+K=F8:?8R9E.W`749+J)JR9XL M@?.1-([HFD17J6913$E)"M68[8]`%AH9#$4]4</N.J(Q[*=V3U^1_(S`">;& M8DU%<4'&48=C<K$X&5;PZ+!R:462SYC"6D8XL%LL15.ORZYM>5IDEJ`0V$?= M5Q-`.%DHN2>ZI$@&T2]&SWI?\`X2!=4+.)_8IR,SA[`119=AO\5())F#UXU6 M;"JLL\YIC`!#C(V.PD`ME2[9BUJ<*^R39#?:;M@D8.=(0^0=7)62TXS4!#3V M0`WV)UNK*`Y,7"CP<C;_!*>JB\%ZVCC*07#HE=X[O"0;HHL*MS_8PBPS.L`M MIS1JL&\!RPNRGU$8-:(MQ;/^)L:0LH?)=G`MS,VXVJ!,"%[\N<FQ`5;!`'O; M*MHDP'#3KAOU"JQ%6FD][`Y=VG`5?X"@^WORN#3(4\4"/02O4?^D;G`$&ROF MGO86(L@`'$$^DZ4M9ABCA`E#?!H&,1B.I8=HJ@[0.C"EIS^W+G)3GM&^";%A M6((&D'3SN$HQPTI],=>@$C#G8_,VB)D,E%C<[L`5&5\36_*W(-,(+S9]::(G M'J&Z)+.\$+)&=!US_D;D6I@K*H;>%+&6B2<H#J@N<R#KC;==\V5",A43=%0A M.PEDJ8MPCWZ1M6>O3J+DD$IBD`>PRGC@RLX31`O0RST4%_2N1_DX70L]KAKG M>MRE]*<C.I<U0_3P].NMJ@+/O:@BKB'.?#/:*H*$F)W/:!4VUB6Y>%V;"*9U M;49I!6/K>M/=]4V+#:WN;\F7J=%/6'TD=QN)/1C,34#S:G6I?M>+!1M*U\OL MGJ07SVZ]-TII&@V[D?7*;DAI5TV)Z_?@$JDZ:A[Z.K5NE]3;I<Q.;#=2'7:J MOMU(A>CL1",%(V.?3-0RVKVE0@38J5(9TE[EEDMG4YK&ZG#[]*E&OSC@]@[U MTGG>+[90_[!A'<4C-_,TX96^CYTR9&=IDC$O(/"O[C.>\IBP:<NW^'6\%A7I ML?"Z,1B?9/T9NO]U^-'']8F/C@6??;=2YX=KN>(R.YM#F+^IS1*]Y0^)+QD/ M,34KC+4_Y8B5^)2JV[#AZ\P^7P][VA?Z/[<&TXBRN5RXTS6?1E(=N5+[(/AZ M7&2J9TC,#<I]9_`.R!RGWGZJ3IWT]/09TT?H5%ZB8MS]!*3I!<'"DC)[E.:^ MQIB&>B^1I-EF;]?/PG$&:LGAZF^Q?G1I9K:S'LD04!S-`-+XL[!8\E%B21#: M?IE*;X4<^XI%72@"EG"<RD'SX9MFW8!R:I")H<F5@O;GSG;R7F?&Z/*QCU[" M`&O2=DG7$>0B@95/P!N0G%)%9:2GSL?KX5,G([A#BJT74TN!>[GF)Q1*Q=!* M=#3,JL(_W=\0>0'TAJ7=-Q/8%W`+(E3<VPR<+@!8_9'B])D0O#F+C(U@N(#A MU^D++9^X2["`K,UB3Y96VW';Z0]J)3$WORP?3`G'(E8]OC-8@['YX=O<;QK# M^^U\?%S6>"AI<U7A'0`O+[M?NBHFD\[4J];*]>I^CJ48$+8/"F`;N@0[GZ*/ M)Z\K>6>0W>=\T=1N[(:HR$A'Z=&3^EWXPA/,D+UG&UN>SU;Y.[A$;&1AWRP? M+@\OJZJBUS,O5WX&GW1.?FL-Y:>=3T]Z'95"H^AGT@E]UHE3R7`(YQ)`(/'D MR2DH]/V^AB4M5OWV:4+06GNA&PL](X/CI%MVU73;$LDQ::("#EKE[C*E7\BV M`=LF-*ZTT/IQ`@=J!.+8MSPIUW7VB+6[N$;%99.OP91#..ST>VVI/)U)F(>. M.^V<KWQS@33+_EI04'XH*`O7E+!]^O"VB9W;#XKR)YV1-3Y5E3:^"W)JO%!W M,,Q1"Y.:"6THM&9J)3C''?R?)[&WW^CA,?U#&=KTOY&USK8ZF'B'ZT9N(V<V M5U:+*;!81%8UP/N'CB>='./>LSIPX\?PDS)^J](=R;Y*Y!L)R'EBB4Q1\&DQ MR4,\77V1U4="OG[Z.M7"-@J;K[B1DWDXUFD%?`\>ER0CHT,2L19ZQVWZ[(&+ M^[7Q=E:($X^#C0,K.`4%"ZRV($T#BLU"UGCF(&IX/96R>06-I?BL@)ZS7-BC MDJ/:"'R8/D4[R7W5<[V]#_G)NH%^I)U.^F%?7/73SR_BKE2S;=C4M,2BTFX\ M&5&)Z.C>JVL2!<QI+!.[CJ<>Z&7#,I('O,U92>-=*>L3IVLS<*0"$>]'5^=; M0Q%OAH-2UR67+4YSD^!@T500MY9@4OU^9WE&3YI=9H4]$4+\-\@3G&YI-^_M MW11L#4`[8L$0L^M`J%U$!\QIV2FMI63&X6:GCQ!V!^1Z*1CS)4,(M;5@KT,G M/-/[3_J9WQ_K30PWE7;6E7*^4/;OIA*5A8YEK'/0BDG'N+5)1+"0J/6W2)2- M<VZ>YAO2>(YM,#C8[/&HZ/7+^HLLHL<G]6+V95S3GA_+6/*!:C;/9W9X>>## M]JT=Y.CO>]":5!K`\QQ#]/@1,/8\1K++97JO*:TD.3RE_7KOH?!(FU"L4(UX MTL?,H)T^G^I7%338)SY23VJNX"O]R:HQDO*D<OPF";`^.$DKT+VY8P:S61Q& M$?PN^A*Q+1/9_JI9I31<NU+OP*+N<W*@K=2NW;X9X?B$=V1?L!$GF5>Y0P^O MFINV-:DZ'%'ZJLHVP*V)W`(Y]PD\DW'@5/<GN'Q^C;K`\Z3VU[=<T_2OL()M MF0Y.EDX.=*#/1NH:1?)[,*2'SCRN?8(M:NRBRR[WX;!#*"DIC.25G-]D%^;N MQ#"DVK42LZQ`2%F6\N$83KZ-([\)54<';R>!AYI.[J!I,;G285:YB+\DN:0Z M<"+5U2K_@ESZAK\R34Z0AY1?]I-U&N]Q6AK5GOA:..>:<734<:5WD/_42"Q" M!-*=@1$/ZX0O&:+M6SZZ!A$I/!2)L]"U99?;OB#1JP9H7W.]A6S%:CT/`X2< M9.M&CF;%0"G,`KS0V#K0,:&E[@X:J@V/&&GKS^?Q((V@@?>#J)[6MA@RKK== M-I7$<BB1J7E3L`;!.N'2V?X"ED:)0QT.UF*NHBJY/<$J(4WC(>MC8H,FLKVW M4Y"[9Y&3)D67<3U?[Q^T4:XF:L_-U<@(_9F:MC"66Y#]DJZ901CLE;*;YFJ_ MOH6#1J92J"W.O[(D+5WW2E/4-3N.K1+YM5L/YYAV/BN3[D"_?,FQVI"[Y*># MYDY%'[K+EJ7B'Z'"(R@@*7HO0)_6A:EKH:-%1=VSEQRYGD@+6N*NHHO0552F MQ7J#`3&$=+QQM>UO*I2O3)GZG->LS60$_:S*M<V\I&#M,KPPLL%2<!%,83<1 MW\@BF\-L)X^1:B6B(7J62H)8JU26J`TV[6*#SBWNF3!CB5,9VPHO76N3OXXW M:>N=7#*M%N;2Q-)H-.%D(]N8V;O9TD,#&+>[/SK\W%XU1MF:##2\!NS2,G^2 M9>J0"W=<=>)QSSHN2&Z3#?W%.[%-8#88F*5.E<`%P80-RD^4:0%RH+Q*P<?; M6'NY6T%]J?DF$\YQ:LE?+N<4NFY\*%QU@9;?N.@Z,NW<@WK'M.C]IP[5S",N M32$6C2X*K5PT;9(;Z@5OVY">;@\&)F3KW>C*W&H@/RJLY))F7.A-`<U],;HL MUX'(PFWTFL@[G3QT$69CQGQO]YJE-+ZU^;?^()8UI70T/B#>$Z=>WEU(T;0F M;<DZ16>7Z*QK6O(U](L[**R+<S`O*6E)AP7F/*UO.&GGN"C)HRO[UYF-8R4, MA>+^@$GL'AD2S"HO5X::)K`X;)-57+NPT32]+2DT<X_Y,[\X*5C%7VY[)Z"] MS^POH_<`@^Y>'Q^"A4=?35V6*WYV;,M7O*N.BVU?[Z2)Z+L3?5W*2QM+7J1I MP=>MO:F'%@8I<_F+Z?>5F;>=GO@K?OGUGWS?%T&(P]VGPFOMBTK\;^P<_4L$ MW*S*_-GH`Z_NT:&%>=J9\;?O9ESY./R-.3Q)Q8>Y#Y?Y?&5T>V<ZMI']8K_4 M35%W6,]->%SUJL"[2NNEAS)8Z^%HT>/0-HX43K%R#@CT1T.OI"S_"&H8AF\7 MRE(C>B$)+E)8IX+;CB&C#L$I['\^)C=AFQ/&2UA*&A4U3&`.CP%:Y?96JG#4 M</YZW%1ZW9D?12',76BTW%`ZZXM26F37.92A<]PXQ\5C@U48?VVOM]JTFE=3 MJ,`##'X;14.&I)\:.4RF#I=!84`F'T`5RY4ZR2`"QZN'4)!A%L,1=UP7)6=L M`?+U#)P$R,49C`Z^5\6<L;<'8TV[^;:1[PS(^\A%C`J_U0Y3;F)<Y2SM,WKA M//W.STUQWQ+L^K4HK5\4V>9NA-'21X-.>M@;],7*FCI4,&3-S>-D^-GWSNB$ MW@4-P\9KSPURE)6ID:RXS/MIK0WC(.JE/\L`NVQ2]O1B>_E;;/6@!U,(BP/[ M\/###9_'>HBR"S*88.G=4_VEW"O6XTJU#4IVM3*D,D_?ZR9\!B%3:RF[A-KJ M**'%C:5P10--ZEXMKB=Y)R>VLOA&%RK]F%[-//&(@.[Q26\@:\C+>HQG./O@ MH4][XU&$F]8C!WB$!0GU^<G(R8V"C+1(SNRSKPHV=.`9A.!X1,WLLX(=*N+' M/>H<6GT=/)Q.$TB%XD!Y:&9>Y;W"E+L4\9%Q$8Y@$!@AA/*IWA#?]>V?"4IM M0'MLT#+!IBZ)8/<FB'5TM)I7V2]`P[!PSP'U@8<0QH["<IG2Y+/<@@)SL]C? M<V':&X,^66U*]XGH"$Y^+J2%F6IF(ZE-E-[FP$T*Q:/0D=\DZ!I\=!8O33L" M'90[)5-8QQ@F/8`-X@423;D_],8D3:!AG<G.+CW3)..V)@EZ)#QVL.R!1X83 MY0DV5,>?^"JQ#]J`N,#/$7WEI*0#OSWWA9-I*TYA$KJF!V;DH:]\D\):[8MA M^_!8!P?'JK?$[<K&V\A)?D#/S+6WXZ6,,P@]<?3=Q.5V*TITJ+M(OC$L7@-7 MI@L_[/>?VM4E6I+%3!!K@^-Z.U@%V;UW8L:G'O2N)<=J[N%LPBD*9FU;W]S@ MBTJ%S!?51Y)=&;G#7G1L3CZVDP_X+S]6WEW<I66L4I[MV8^2C:D3I32*N%_% M@O739$`]\9T#ZO&^ED"DRT4=;5AF"'UGON-IR]1BS>A#*Y748`"B3:$CKQ:J MLWAV:A:R(.$WJAW%()U=_[:=6F3'GV?<*OX+?ZK.?Y2"\(#E:4"84O:075P, M`!FN8C(T]F"E%F^B**:XFT9TR5;$N=&M'C)%)6MRHF&_>)ZNX:KP*\7.>T!! MDO-I4Y%#3'.<#<=4S(6K'!21Q*@8[_R2#.G&?101NV4W@)MXJEIIV[K&3+J` M!BM*>3O@42]3:O*TZD=`3UN*;38)/:TP+R_4V7LL/!YXU.9\_D&NY8XPC&XW MX1`PXU%Y5TL+?/B@`8NER,1HEB\+G&/V.P4\+G]'C*AAQ<_F=KX9@"W)':#E MUWH@8"(J*>H.('^2LW%WE^/K^';Q?,4.S^/K2;#0"UA7WWK<*"NCN34U=#[C MYR!]W,]Z!WSF(V^X.Q\JF^\ZGA<]&=OJ&CJZF1US$(B&"X7CL];1VA2C:B,E MIYO]1?5U_\'Z5'0CN((82CT$JX48R*:S*[W^U=;0WQ)2W;CORJ*T0)DE0SI^ M!X*TRBC!?C!R=\Z*66SER[,F&]Z%3UQKMLP^1H/XQF4Z5-X0Y38\6QLVY%3X M;8455_8J\9,]FSO7+-98<(SUXE-H909^>]:-#:OHKY!+4FP[>X2MKA!]6(X, M2Q\6$(D'QG/7\1V8V+RC[Z/]>.(/B.1+2!1C@U<*_7-@T[R9$X(R+6@(!T`% M"`6>E'+6P2&.@CA-=77I)X*F;F84Z=(T^,OY0ZEU#$9N9A!O>CQ?//#/LOL] M^WH\4:7=I\L?#2M>OEH_,LI4QI[J>Q<E\&;V/9`Q\V2&()%4'^NOLK1Y8%*H MD38IU(1<A(3>6DC>3^(YJD,:63W=2!7M_`@Y=2,\LL2O63N"+,6OS#<+[%^` MWF>5U[F1QXO:P8]?>*4*/VK8)\&6'7>C+[?>)0\;OXS=$U_([5Y6K12EO+&@ MXR\6,K=JB\-AD(Z_Z^9L\\=%,)_.\NO_%>*(ZDKN9[Y&L#$N/\U;!Y$O56"S M&\HT;><A+O<RY8=U^JQJ4S0#*.9YMUC+F0D@!*K#P9_/NK''S:^'([!M,V-3 M=;@![ET<9-B-8XR(JO<:7\),,"?AWPQ3OHJ+&0?FFQ;-YM^'1,NSOX*,)36? MW]%6,^0E87M3B:(ENC-A@1!CED'D`DKCDXL8%T7&0DLK:Q:=V#$B-OQY=,-V M/`6[O>\1K6G^U0<OLABR+Z!U3!L?77_U!%PM\42)/"-#%\5TQXVK&WI]6(EB M[&8(Y5[H*XL6GWDEN$?CJN;8V%1[MKH6O@HA9*KFR;LV[(L"#M:[<#.D*(]4 M@X-5-=V,AR7-1@1C*UT,=#5DP>[`^]>!RJ;8+7U;P4G"D9Z.@WUWU,,TN#?[ M:/[#C[N/9&2_@C0P4M3:#C!?G(F'\J>7J$Y'_)>;;\&Y(43>ITC?31W$D2Z7 MEBE[P5>L'FO]%O4XM@R_XOH_LQ`=#9@.#C+$0BHY1+;R#(C?>&5W)10O70Y. MLA]E@#T2\D[0!"DHSN_@YG7VIMSP$5,CWO<6,1R*K/$M7^VUQ@14P!V#<[9; M20D>84][M_LMK9X045"`D$Y58Y`,"/%@.\>F"V4$!1<Q'"%-Q->B[KJ[)4#R M@N*W5XN1S$4AV?H?S8T.>:5'M@]2?$_1?*,?O(CP%GBPQ=R4,G(79L3X.GA= M^@77%=<UM8_=^REF[PEQ3?;ETTP^Y+GTC'0,[1IBE^#,*8^OU5`].8>6HL6S M_]9&\17IIDY'&@K\&-_Z[5Y/MBIB>KO7XOG],\=C$:ZOOS99*YLW4IRJB;\8 MAAZPC*X\K`<4]36P=:6-0Z+8TU#(4TO/.4>K/$/N65:H?PKX935+;HHT6-AK M_[04JP_^G*9WA1JK]U2\V73?$54-CT,]HH&4+8V,[O!I6._<;>'HM^RS]E2H MKP"D(_QF]<;=R%?P$6")&0Q63TA;&X\K\<[>O9\/QF/?@A=26"$NM:DXQ_RQ MNR6\S974IM/XV,\R0W368?SM/Y&?P>0H;HY2;5;1S0#[?C?V2TM#D92A21-L M]^L/JLR+=<]A*%@FUS19L8#SEZ(^@+$"V\O3+ST:J5*TX=G/\PI\C6/U+V(8 M@P_0S[SM07Q=23&#.(V#P'KBM<`]#M,EG"MRQZ?K>HH[5;BXF+'S,DZ+9%B( M-L#7T"W"NQ?_@>>;"*5*.7>\=Q!1;VJ37=475=IVFI]7Q+`>33%N,W6[IS4T M)^@Q@V%'QKXWUQY;=E-_NWJ[ISW4#S[5IRH!YG44#8/(6TQD&R&CNYX$+.IB M^PQ\(0Z?E=Y>S3U=+"NC.SV7IS&#X10VF`5C,Y0O1X&9M554?235G!@G+NKC M"/.,TCZ>-YJ9R'Y:4_ME>!CF/5\`&,G2,F*MC'B]CY*4J)_CX%PWC$A&$(48 MDY3SGB]]&1T?T(#.-[ST-<'H@/DE#FZ@/B;N$1-^P'#9^-:>:*/X^,N>H;"& M\&8A]IN&QM(^AY.<OY%\`*#2.-I+F]]W/XOA.*N<#,51@4=]6KBJ1'=X3?TM MX9W*+5Q98Y=XXG5`-$GDV`,O>:E$C7DJV5+;*V2&U,:B8JB#;RO&61$&0VH8 M_:V`?GSIME%!G[K5^R59WO)N6UV,-[474F]24%(E)>F-[\NJ!=[&%XI9%M9Y M<790'4CM+RD$49L0.;O$8.K5SB9E0:F)MV5SQ/X-FL>&JPCDL&O`YZ4`2.X\ M,,+:"O1L<!B+.$ME)\D`%,AX_M=OW&7B2B)U*1Z1OIP0=BQ@3>&V8Q:,?)8F M^@=.QM.`1L82^CHJ8X7^3.Z7,?$*5.(^7;5+9V-T'T7A-&)=I+EC08J$NNN5 MG[IM\)[OO\*KRM@)`Q-5BVXOI!*H&=P*T7^E9<YMR%;4:\E'=%1NG6@&VPT7 M9CJ(%RLN#SU\-J;V!7&B)39TWB)-J'-1&O[!8[[@BV/^V4I<7:S[V4H38WS: M0M+L_5>E-`F`B[6*GF>"M&+#R__$4Y`RKF+5V3#BX7CC)?L6<'SP_`(0-_#T M$26XN0"H89]4PRUI6UJ5QP(W0[\`QNJY7P!5-TQQJA,]/@`A5GW;QH18I^`; M*\S]C]U613"*U]*K"W%34=S7BF]^Y;L8GB'%#'@1P#N9.-AYCH1>L\]/B^3L M+(6^?.C>TYR0?!9G>!<7V0Y+TB3%`[;P#Z1S,NO>;QZ`2\[Z3?(.,U[?F^>^ M&\52(+2])Z?9F$72C`I4:?'CU%T3-3N?J6=]`&I2>LFM$,=51,3W4MTC8>J* MW.DA&9KOQ2F%TQ9%%)E\<@E+;?)!]=(,8&AU%3^PWEU8)9(IMMP0^R38%L^/ M\+OL!%%_:>M*B07%RTWOHC$\F6:U'Q=V3!Y9FG>N!20$$$@N(PZ2GU^\N9&& MC06CV+'?N%7,'M61<S_QM)H2@O&>CH]F.7V!-%J!1WBXE^5HLN5KJ*+2.:XC M]EI!<L4M6/\!E)V^R+AN,[28'"D!EZU59QC136V"^W"0>+92X\852P,5GB@? M*1\O'_Y8]$MA.DST=8YN[J@59/F"Q3N@IB!+J'0_5TM0'#7FL26`%W`OU6=. M%=5,=R]Q]%2_(]-R1/I-7)'?-$`;&3T354W7V]'#H>G%HN/.`7`9,D/`\M!. M?O(T5;86(*3471;'X.-VZ[5A/5TE/S_SI2?@J%,I1J_WPO6KNUO,_BM1E%2# MWT("'2?\BW[LJ(T$!&%6&C\DUT'@].CK;?2>#E-<R6YQ5@T[<8``XZV@3<:" M9)U?QI*R3V.@N.B24:M>WFR]U?'6%-&P)OPHOIRLSRKONM@(/(Q=:PZA(5F" M_?/"0N;R2$'-#FIGBO6:A\R6F115D4F+PQ0K0ZU4E-7T>L:.(DN&<(:$>5__ MK(GO",?!SVCJ*"&-IHY?FXZ8-ZLRZT%V5M.:A.-4W/EQ\5%?EL2[5S58>6AP M*+I.;\4[AJ5NW=58DR%L@;IUKU^V[095YRP\-3(7C]G=#=--KB8;G.W';?Q& MU_&F>5IJHE#,+5A_]E_UT,,`E29'4Q9Z`13[&K\V0IMW_-!I(3K:QHVSQ+.- M>\9B9D6UC^YI*A5;?J$H8T,N4_!4QQQ`>>KWDA$+Z!=RIO_A_;0SQNR3LEOO M,'0H7)$\%7XX8``5KB"!2J+8%?4UL+'WFH51$ND+B7&(<QX$K";9#2BGMX_5 ME;[/L-E1B>9UGN9.$*S`2/</S/EI6CV,2]K"JO,-A)64#EC?N"]9S.HP`8\D M!YV['=5??GQ:[CV#K2$?^_$-^+.=+!JG0.MQW0@T$;ZQI7:HR9F4SWDE50^' M-S4Q#`ZM?0G]')I'9$^'W)*0-"F1G]@&I3GF-:WQ+_<?=K]$H8*4T-(46L`* M%P.E*.=F"HYA1P.+^]L5F)D6-9CO3*;"+H>F#ME(I[]^A@V[/G^,<I7P6N`Y M7"G`-G00^F%NDD*4*7J.7L=2A+#,K(7/A-.>P;QFF_@5_)EVJ+=4CVAJ,YQ6 MB$G4AKP-&C+8DH=[+M#LS%QN)C)'W#N_#GB3/5,S4#Y9TG_!>K"W,1T0[V0P M2/>]NNW-=EI"^BG*37XN6PU_:ZGN[9O\W@;E3U`O.?E4`;K-1#(,$A<<"ZR$ M91&-L%L9==1V[WQ49D)3\X($Z*->C4:]+2NXQD.J_)BB'MM$0J5F?;M2@>IU M:-W4TV,R%FCR@]7-QG!:O3$#2X%VL'$#YHO-UZAM&KO]JS:X2DB@'$D2]MG] M=M;LH-!?J<B)X#+@+"%Z/]#W%78?+"+RP'U@7S:HH_VF":G\UJ%'SIT*R/QL MG1J0_<#;UG&3M2*7A_-*T#U@L'U&U"LQ67?P;847K8(;A;&J"/'`2=5W(I<X M8Y]$J3Y-PK@I;FF`,]8H0DOY1BY:2:(YG-BPOJOIS8/N'UQ9^("\6#,X@$^E M'-BR7"TALK#?5)RZWX^%9\,^RARTH2N<U?&W9"%2VW[YG+3MHP9)QA^RU<?> M"@UZ39O&"MR7R'RX*NE%TJ`XR-.AD,?8V6B0UI@+CO\Y],T,_2FM"0!>$?$K MU5Y<UZX7VS+LQA<!WXGI9+I3._AUO1\?+&?IGO]1Z<(U8>)B!QN0,[8_7'0% MJ%DW`A#@E-&<N-[SZ^XH\7DX/C^/F9_T35V5K<WT!2%F]RVI^GQSZQG515.R M?7"[&!`A51G>>^N9V>F0?-U"]_R:QRK,P=>5ET%X&`(%]KJ]N<=G3#FNPO#U M_-T.N*/++HH*/@%I%JB=4;?.)]EWO:80"%^Z,(ICCJU$<ZB*$CY)[OY!%B$: M'BN4*X26Y9P)[6<-5T\]W7O+UA7;UUW2\BNQM*I#+5^\@?$8E_C./;SS1E\N MM_8J]*WJM/EQ=]?5=$7?EHT<W#8OQU\=ZE7*DX9'>U-;")\\*Y;,*LLK*QR/ M*?R!LLQMY]>.]/1ZS,()[!:OM8GQ.7_6B(IXPSXK^=P1VD+V"1&;%=BO6I1; M8^&F6462_.IB.`K*PMHV2<E!ZCWK<#9X+.;+N2YT,W]ZZAI:/[^Z,98A$&3C M$;L<%"BQO^@%^53B"[<#Q<R'-.=[8>[]T+QE"@\@"`^X\#AP?&GJ!\SL[Y._ M\E=53EFHKZEK00`V%EMO`+<J?",Q[9MBI<QO<F=(&%ABI@<H]8NE)?L[`S%E MU;^4^3M*VSB\W[1Y!P24>`SF[T%6O\PJ*)QU:Y'_('/S0(OF#U[S2'/\.F#( MY'&EM6ZA?.6:!;"YVAAX?$F=(6!_NJ`&H+'_*#[XS@4_<2F[V%3@PQ*Y.&SA M$)38EDL01\D>Z?_<&BV3?WQ`R!D3;)K@=L@F;/5$Z@?[Q)PM.O2:S-942'?G MS?&.>-]#XXS\0([A-GW/T_O9504/EMLQ8]&C_"N8!++3>+'=4)Q\D!&R3!'* M?9,7MLMXB#T_7TLZPD`R%Q&3,Z+P&\XMY2'+VF?@#`M?:<&'$RX$4MC!_?L& M**F=!`E&Y0V('1>.=H&C#KWV5MA+$Z93UP.UV#A=^P%^!*:)4(P=1FF)=W^0 M^.\*1/[94[;QL5$H+4B/1I[#JHH\OGG"9$7,DL()O4TZ:#VTDOQ"H%*I-/)2 M@1#D>-)$*&=^B4X@>$P*Y`4:Y.@E*0H4N.1NAU?7>K:`2R/?[XJFU?`>VPL\ MQS6VI_:+4$A)//*+`S*.WJ4Z0=\6"9NZ'3N;X!XL0>5'J9'K4:5GGXR8E[]^ M;6]J*M&5MFP;*M&*&3`=^>7QYL5\*%7ERW-H4^;D6N*C/.:A-`5M2\_.EH*# M([QREC1W-C<`S:-TIAL]2U"ZG6+$.L*V7.4R<I*:V?B5&X%;ER&:6C(J<[-O M>?M,@OD(?*?V^8E%Z[E8)Y[FP46W(?OBHHW6&U;3&]L:+=)E%9FBN&6@.*(- M^GKIJP43IHI*U7;R-W/"ZU*YX0IU=0GX55X^#@VF#BW$`"TQAJ^9ISD-[?P< MO#^C4N-QP.TH'FM6%)]S'P;6$N:'MDYV/C9N&&F].=/*:XGGKT87)7>O!9_S M@Z27WITPRT=MT>C?$[O1]1Q^#*,JUJ>[T*VH+.=^CML43A50G)@%#Y'MKL/$ MD6GHL2L9[Q=HB>)<.3FB]$_@PNB0A%E273SQ79P3@)"0QNN"]V$-;DEK#\01 MI@7:)CBMS./+JT?Y+F:TI'K^P%!Z)OR,\$MG/9;QB<]Q(1!K/^Y>LBV*H`K$ M@"8+H7>27G`93$ZB9@,O2J6V%#NF<:&A02W]^.Y&R42/LKUL^2I79K'ZQKL( M]7`I2LS0("[BL='`BAO+R%EP-*ZT[]6B?(>I<X.MN^2!P9_FS`E'`/G795MT M)Z3R3JR1!QLIG>.M-#=S>$"@RPZC_KQALDH5`<I#@8D&H&QABM,"V^6GND!( MG4P7*@&"#&,V]<\T@X'AL9H.ZCE.!&X"9-9O]L`/]>#YX#GPBS3^73#`;QSX M60-ODTY1=/S[?B&E5U:=6^!^0&/PV"\QBYJ+)]57!Z,?FJQ#%4$]"^]0G]YU MCP>^*?G0`S1]"F)*'T>KT9PWVBCZK+<:&1>"\*0EV3<13/SX(LL-0B3(AU^G MO2IJE%Q>Q$ASLQ+#3%(X0--B7$"CLLK@P_IAN%<D;!E_OG7ZQ3%$52]TXV+\ MY,3A?DU8=EMPRWD7-1HO%E>16F9PE?E,%H&TS==L;Z/L<$FK"\VO!#?-5QHG MG?_\Q//IJ^:/Q*=5FZ8ZTK3G$IO!`2?Z:W37Z7C?9=YUWO<M(S3A_9ZQ%05@ M^SVE5[0!@_Z841>A9[=?S;#DV.QA1NGQV2W3:Y!XHF@KF&=<6`5-^7+C4@2C M)D6&QAEK>R24:SV]IH3=\4Q":U`B;?K:U=_ITS>5WDK;,4])XLOKW9,9`)A@ MS_=&B-I?A=>&W,FR'(HD`L=VR)^$Y\V1I@1WM=C1L=R^\ON,*%/`T&!4/"I] MQ2]Y5!';03=V&B_DBZ$A.!E7_WI&]3/P)_OQE1OBZ%=@94F$JCX/BBS\Q/XM MBE/0Z$C?&Z\:(NMTB^*"#5KQQH2<P.#`0$*?8W9NN:3<)`V!0$9CLUTS*OO% M7X$-4)+%/.]#3.$$Z[Y-=">1GDEZG+<8;Y/\&KE2P8C8W`A*PZ)UF^/--DPP M`97G0%U[G\0#J)/<F&GI._NC'[!+7PZG@/,.SA.S[!(:UGNP$2FQ#C,HG='E M#.`DB\QVMMARN+>]HD$P8S:A$%\L8J;Z]T-Y<,92S06:B,I?>"/H(-**8HJ0 M/F<<%9I34O.KU?"KU?(OU/`OU/*SU_"SU_(WUO`3L!!QH%8BE+)$WI^0S%GY MN>:@[*"C2D)J_;`<I.W<\'>H/7PY%$6<E,P7"58[""N_ZZZ$D1H[;AK':YFQ M/^<Y'$F4H+A>G9ZA3=NPV]L3ZT;&"$)B1I@]E>,@2,6_X39E.X(G"R;53'34 M1]!H7V>Y4K$.W4_K@[.6YP)!B<(92)S+3&UF%`J<YGIO#%#+%+DYU`4?JUC1 M6QHS>%H=7]PPM$MG!W^Y?@APW&';]7YIZ=)HP<N%`K&X_]J!LY1FC6@RTBIN MH=+Q?FP#AKX*N]#C`\1V3XM68@='ESE&.E2VL49_H6U"L:T2>"\<JL6*N(]4 M5F2-$[X[=<J8GI5FQ8[VO9H((R&<+-`_WBT8%XZHR4X_OC_`W'?;:L<W/F:I M5>$PX=602^+$#L8'PV9*SK@TIB.F_'#&SAH2=^N!?:0M>E<L33L^/0"R/Q^M MFL9.51C$A])Z#ILW1CK0C:4"G31ULCL:A"]Q1\0\22&V]%U6<?VBI)#LB;JQ M[!?AG?&O::JCW6XG1_)TZ^5QUDKJQT.=-I/)FHKC4XKRU*6:J+I/2I-C94.- MD9NE+#GFS!Q"S_*\O:GSS/5\YD%(0D40(VES3RXYHU:NYE0K-CZ:?AI>1>?; MH_");`'E88G>1VS.!1[9475?Q;TS6K7,6UT3@_@J_6N?A21?MCE-H;OC<I7W M2#GZ.I^HS05A@#5VKOFZ%0S0-HK#Z"FOU9!2GK0HJ6A'UR\<"BS("&0HOL=] MCYD(1L6%,,\MHF*104O''V^23X&@UZ$VH508)".'NO4X6MFW^-4&B_)%*C+= M7#P!I`:W6(GW-2/+3%L>`73&Q_RHS8/ZC<X!QE<1QF&NXV?SG=O#2]O!"P/Z M;$,&9AUW;Q/Z[5,O-]S^V^Q/O2#S8-<W]""1-^LEAL+B9F<\RCTG"W#%@\Q> MK>',MS[5&I:86>#$FY"'A!`57B4F%2-TYQ_@D:?E4XQJS5YST58JT-RU8+&7 ML,3G>S_A]AV*BK+(QO/D6.ZT)98D;00_NVTGAF,E+E3&8;:2K[D_<$;21Z@5 M)4?$K<`IZ<B.K+XIR,$>?YQH4HR3NV/>4&J/>J_Y<7>FY%C/<9?T":F:56<N M/>KFBCWH>2,[#U@=K-MPRQMR,P&(D=NS75^PR;*(SIR;K$#]CO&O4G6#$;(( M$D*ZOW1ZMWN*#Y\;B/$2GB]Y`1E\A^,[\Z*>SD'GR[8[=?RF"D,J)66VU8&/ M+7]GGPUD)$MB`X+'N<F:(G[-L`&8:`!P(+SDV[T^S1,LK`"L*S];OU[L#Z?W M^K;4`AZI";9'F2>/SD+M7U7LE"R\O=W'M]"A:Q1=]<RSLY7LD%3[%6D0NH%D M!VXMJ^E[_2)3*.9*33+9]5T-<-:M2L4*XQS:+BV,I9Q1V*[G6OV.YRVLRM@< M5,'&;X'$3!F'.XETS3E7$?W/K2`=C!.Z:V93$"K68%.->8Z15WN_XI-Y)2G4 M%/6/05]0EI[9"VGAXQ"[BJKIPG`Z&^ZZ4?[B0>VDQ(.KL'Z,8J0!4'@&,BV( M8_$Q"&^-9"4B"\E`3>CY0064''MM?5_-DM!=M&.O43L)>)T>>(^^+YO-OE\G M8KOQ=#*6!@KM]IX_8\1>7X.#2G;#R1$&0!H^*6SEL:*^A3L!?6VG[)ALU4+% MT(^=PW_WGU$4Q&98-%\LD_RZ*O2SEJ.ED6]A.5-W!,`_<)7_KCT`P*&AH0+H M:B&]^QX`KLJ\H!]]/=+D:&A.P*X'WE*J'F+PV&/9NK2^!K6(6?0HXO(J<DZ1 MT#1O%QE;!QDLT&^$@[>:`3K%WE?[3PO;;L#.:Y4`JE[3CBUCAF*$K61JLI9K M/CVHB0=V<UG*'*TL:^^-SZC7OEF/9$:^7I4_`5]M*X\?^#.BQL"]@-@7%C)< MKP%J3XB`A7P99G`OD1K=;J1S..V@SL6Z7^#5D/:`QL?C[!]D6=*=Z]-R+P,4 M$&(AA4$F;0H)Z3!84=O4&L'%<Z3YRG;,MY=6%HL7[GWD:Y3C9'?Y+FQCAP03 MC[TWM)F]).W!<O5(+Z-GK67.R-20K@I,(`,<3#E[EZ$F)-^!35^SG<1Z+<E3 M,SCAP?F4?`*_:KJY*3GO&I^T13K6(Z9,[$TFIIQ=A>">D$\;_3`#PGUAXPY0 M;(=!N[I]"AV<BED1R&&KMT>M>\%>T%X@<Q^Y0SIG$%ZGIYZ>FKX8!38#2=G4 M-%J@!EO7BBK"'8UGK@98\A<\XP;P8LRD:B3-SB<`_]KV?]740\'#ETR4.-0= MZ*@R-*-IYQ&?'2REC%?:\H3EU43[9@8;($ZJF2_)YEL>_N8*BB*^F`J__9WJ M4U>F$9@;H)QH-U9B0-'_&TE`DK@\[GT;%IQ>9+@=AY=!BAUMRGCS,:A0PV*1 M(.(S1=VWQBKEMC&ZL`AY-E&(^LTCENSLK+*^F?P#L14K3P>1;N#Z-82K9>)3 M57U@(>)Q#J@YV4(>0][9Y:E)A>F(8G[E@NRXGV:%08;QN>A-IPV_<DI</4[7 MRR@\5'A>C$.5=/8J<[51"KKH,H-Z$&.@G&"4H4H[I"V8R`<8;CN,4%WR\&'= M^^IFLEB0';I608[+H3\K+N9H,G)>!N6A/VS@9S9\/<5O]7)LU;6'A^S$?N*( M!>V,;AX/ZBESO4A#+4=/EL2K(+H6_APZS;H7#Z>*<2/56P[P3_"/SXI0QR,# M>?777P;STD@86;RC,[-I[4P)?&/$1%CZXLJ%WR=A%JKU$CE1#N[6E%;'T?II M;1:E'AA/9Z)D5+C:Q$28;JP"(VA^F]J::/UK[IS[1>DROP>1*?'\I90/ER@% M?D)N?PG2*N/*B-E!7A,D?N,N!:>6_1(:`H4AZ)AVSN$RL)7?\()L;>QG$GA/ MM8H#1V2ZUG#UMB*0B<;*-Y_5*6-Y:XFLU\?7ICN+A[.A+D`/#QV6,_&:>:+Y MS_0EO6G.V1B0ZIJ7-ZJK1*B?,1=V;0N+Q[K7>U)#@AIWP-I7.AT]9'OBP"VY M9`(J3W[B#X7XZRNT)B>:H3Y8/E<2A^,]H]C\[K6-C;X.V_B):S84#'9"%DA@ M8IU%/5:Y&%^#1:0RXN^&Z3>A!E&3JV-,%RJ\VVJ#6C\`?8'+GC3L2578CO)X M5;T#W0ZW55NVR)IHD=/V+8(><7Q2Z4VAJ-=2AQA//[W,K.`^DO7ZIFFA]H&` M#<FDLZY<S0CM`(O5DSC7O1R\27]_`'^+C#C_:^F02/FM.)7+7+6=K`."/=\V MMG4K/$[V'!P*M<EE31V>&_(G*#?LA6X01[1E##,"A#[[AC-MO:LOE$F58,"] MI.<*!/6YAP`0O0*)U@&`(;IRFUFF]&F"O?^X?Q@%K4ZK#`_(#L;DY#SS7=?I M0?)LS8A*QFPZ7\8*/H!R&QL^?'LC>3\DQ+GO'"MYP_B0L78==KANI]8\3T.; M<4N-%M1=1>2N>IPXM340J;NN9P@L^\6L`-DGR>]!D%9K$H$[M18J$$Q.*@^B M2KG[,2V!-G(%QN1>"BG.TS3:[(N.RY,Y'_:O'/6CL/06>-"KU$B;Q>"QQW*Q M=A,Z/SO_`U'M<'='!;+XM'HWU.>5.)O!;5*N$"IU%:Z<"N1FA$C#&P^GYJP7 MCM#`EE<[Q)@JFTB/TH'S7%K%[2,_4&AU(!$0@\^3!1SR5R)FWM<A0LC17*QX MOWY"WIW%(C_&R3<+Q[.UYLI2$#F1#;[,XG8X$.^9>GWN;FG`TU[IGI8MLY#3 MJ1^3!T4L0LY\M,\=;[9D/2G')W.F`Q:5'*RB5/PLR*,(K>1EYA\!$B9@%RQE M;88:&0P*%VLJMX;HD]3,./*Z<X3HKT^'/Y\GH1C!$&Q0/H#$-\I5SIL%,A1] MIPV4BDN!N1JX3EX>OW^&5!D9RTB3W$E^.BKH:S5/V>1_F6?Z<XUZQ.5"4`[, M5?Y`_BV9F1@CWB6P7S1CY@KYN6XWY!:C:FR<8I^3KNQ;]T'9?06V.9'TQCAG M"$&2.+8^?[L>K\($+-":/!@CJFXB%JH%%ORQB:6;>:5@WTP6>`_-EB%/9YJ" MEL>/ZZP+U"-!W)IN)-DUK#0DXAL5#7@S$^-!P6:FO66O:GDJT$`MK69S2YG& MST2R#+\RH\NM<ME-R",ZOG]E*86A'LTS51`P=7C.:,G02@R3)X\"+P7A_+G9 M/L["XHKZ!0%Z%PS:[TB0-"Q$)XK#,>V0^80;W-/L1?(EIO3F_]7>77Y%'3![ M`$<0:1"0D)#NEFX1%)18Z124;I!.5T)@Q05EP8"E.W?I[A;I6&I!64*6E@4D M?_=Y[NO[#]QS]O-JYC^8.?,]9ZXV)GAE2KOU)1>J75+^2%);SKO'RW2VT,7' MOJ=R:ZO:"E:B(UPW=O&44>WS^\'ZL%J804IVE&5T;.H2D.6."G`KZGU7P-$> M4OV]]8H-:;VS2J@_LK#Q,86OWP6KL&!/[0\3DZI5+%+Z7*MK(?"(1Y92XN%$ MM+_V,$F<DHA+`8M$93:%]LQ$8__]'.D2=%C,%\9<!?=[3YK6+.?BJ<=*:>J9 M+81Y-R..^%HA7^>M7S+VP^:ZCS+H%<+S?-27?'RV,WP%^<O4KH=7DIC@-5^V MLFM8PM\9"?GKP+"6-5ORY+/U;3=:^HQ87^*P>PQB$SFDJA81THEFRN1QH9:1 MY/RKO3-^L5_[[XY$YZ=,"7I(6'D^34E'[ZP9A%KFA;VF8K>\_$XX96/G`/;B M&]=QXB0T<%:)7=]8T)ZO<D;OGU^(9'<ZY;7?:KSOXC'DEY15JJCMBKK6<&\4 M(2.N&[(U@/K\:W3N,__M:L(@P%EWB3*EH1E2WN(:J>ES5<0VJQ5N,'PTE.'$ M=L_8XV*H)73G0W#"?QJ'8]S)=W@D-&Y-D=>*76V.[$!L??0OJ]8RGT5*%(&J M*I:_*`;6SOE![Y??T[R[OOWFNAW1N*^&BB`_`-M]9G['\._]1=/<#4FH']!: MO:AUA3J938.V7JXBCB!AOU=GUSB86E^'AYF5#O0^#P6QB:006"GG`]F!2QM; M;E/^<KVYX'K5L7)4JP"\5TP%&N_DI;,F<RQ=MZ<N_ER$X<=B>-C<=FIR!W`, M";-*R:@-HV15;;/CA#(4G_SF%0)R;8K*EOB\K0N]G[TI<X+>*W&JTQ(]3TX, M#V>X$'II;B+6\'7I?.H/%-W7U/ZF1ZZZ)JKLY#8?/$6#3AJ2C&TPA?$^OA,` MILOV".=V]C->3GQT@.LA8Q%9BE`\GAZI#":O'DDU?$N%HWHRA8/GKC:0["OL M3O\R/%;)8=!GR;MAIP<ZKX36@8>?.RPXH`-6#O1!JOU7'!PC`"H#U][<T-QQ MSN%^G:@AN77L,P9L?53O:>]8!`@C;6J!Z2#$&5"?-@NE:@`6+:S;EX#.@6+/ M1@H&M_#4VRZ<[DJ0"U^G9TJJE+']DYR;Q';<OUUAF/X_F',_]1Q">FI=Y0\P M7G=8EO\#`=^2L:2[.\$_NN3/O]?>[/W\MZSVGZ'0QMKKUS4*^\/=P>F]`L$N M@))/#]X!/"+^N=X3L3!@/2F+?V-)Q;RU$CW:L,RF/Z`A\+/8[O8D;[:2_F$# MK\,6Y'!!6D\!(74BBB0M?.CR^^Y<-M*7*N6%_:88JW'R\6$*[2G-I<H(M=R_ MM<&_$<+A/+I(PQFOWP5(;;OUYL@M%6SP+.F1(V>""!>#>AL(VC]!N.J[+0G6 MXH1+9?)-#>Q,8]#MD;+IIV_NZ&YKL?CG?U9/7A=$+$JEV8PE0OFG>K7<<T$7 MD&!MTT9>NQ"7$4L7AK70R79<-AJ\P_T'3#JXW!"QT>OQXB5($1W&#)7)+,*\ M&:*>2K"%Y`4\D#JUD'Q`TG9?_['%\SN8!+EOCM'*5AV/ULO7*$7M/\7_9+Q: M#EX=[<"$=CKL?UQ_ETGSZ\XBI1++AQ')^>`<(H\Y36(KU5L1H3))RB,@U]AL M,9K#M>P[4I1WGA#D,L+W.ZPM5T/&Y8L2[HY_?MZ3XR\>'$\JZ"WI@O,U*$$$ M:B_.21-13%%)&JPN"G[V7Y#T<M"_T*)OX^Z;S!"E1.GY,$A\@!704_+M85HW M+\NL7&U6#NS$36:)6%C/:KI6W(M/LT$E0](GL<7UT97+@T5AY@C4:J=\4,XB M?PI(T(N(B7;Y'2@>RX6*(/V:L\E(H_9LUA)'NV(QZ&+<,#[1(%=(;)5O:*=: M8,OQ./5^3+ID"%^-&VQHBI`T2BI29UY]YBNCWF'\-R3-3N=\RF\G@G++`:T\ M(96BS!]4%5WRON[?3;8WWMJ_*SGQ;QIMW[J+=0WO23OSJV4)/&=C,:<]I2:! M;!Y%NFFUT9$,4@C*K#+S559>#Q5<#86AZ((*&-_WU_T[*(]L(.A>"#)E+2W@ M-Q0B:'%O*'HD0\1[5)O::FU$.-,PY?4K:"J=>U1(W-Q!IFAI0.TIS&BL?2/$ MFKJ;E@\DUB/05,1,N(0=;G\,NXRZ=@;A0DN'*E'9L;:,_J5O,_GNRJEOQ76U MK801=(S=EM,C(RM%P^2YU7>S'QP`OD:FJBN:CB^:H,^["X:2(%7AHZ+#QO\R M.T+`B(,P""KI6\>?AC%P%Y',%EN*&H%\<^1R=1RO]J%]:B&Y7):X#@1#5RQO M;&D"HJ8&AS2#_5H`I<1*O6X!U&A7W<4);((U@Y72@*M/G@7."AUC>U4I\97R MI)IWE'-=^W#VIGS+Q[9]9?,6,NZ>:>%WSFK[!Z#I1Q=&"]Y,0L2>=-QQ:";2 M?]ZH#V9M22QZA0&MP^;C'8YSEV9A>YL![;ZO#]!Z0BB;L=]1)1#NMDAI1WGX M[I0X-ROQUZSJ1,VM7P\=\E+,W,=+9[),2Z6+C5S,"O?AS]&6:2FN086\Z;/3 M_]LLYBO&,H\2^A@4.IH5SO!7(+.T_HI6A"U\?YG\U]D$.U8ZDVDJ!#<6@IL* M?3<6^OP\3!ZFM)(N:^_4XJA/;E8Q5'S6*@H7)RVWUV3@^;@I/*DT*FK"&#0= MF!ZT99.\\]#?3"BMY'6:K8=]1?/+Y-G"\Z$W"-',`G11GMPMR9#&DQ4K.>;/ M<QKOGMEB.K$WFZU'_1LEI[:0C1]$9@4S1.6"0M."9TWDRN]$P<F__(3L3W+C MJ&7*CN6X&5L#2>J<AHADO>N[3E68UTR\V6XB6:!<*S4QOT.62',V2[->GS:\ MS.!/@,2YUB)(C';I/?UE;S[HZ3H%>\8^%D?$IR*-RQ.LI'T:RU2E/W'KI$>\ M?H:VF,WWHCL5YMZ38O'L=;QTLO%NR7P#J\O?KMKM/',"CWCYUK:(HIV7,CH/ M(-MS/S-]YN:"]_3H0[_$=`Q+:7_BG;Z%X\J2Y<V''AI!BB1VRD4/:J(^Y(]Z ML#+(;Y"U?G2X-:!O^[Q2V)BOS9Z)DN.,64"<E.,K:N0U@.LR_/4L,]I.]06G M2'3[RBHP<HR>?BD6\^9SBIR&'XB;K=LV*X*4<I&UL1HV$C3,J.`Q5;399G'N MX?D/!XH:2(JO^T4S5$'+59K4GE:8HR!L-MFKHS=K(BX/'^")EFH1R>NJ)_@> MFK+D8>/!];M).B!MZ[*X-5Q]C&'%9:C'Z'BQD:%64?OA7D`/;ZE_0*$K<Q/( MQUGMZJ)R,.J^Q#.%O]BD,O<Z!Y!G`">M8ESUF-;SV"/)T,$;+EV*$P\U[(H$ M!?@?YIJ$ADDD^4M9_84?5C(EN]7K0"7T8A>T"M$>YGBK\N_8SK9#227L.GM0 MH-CG[<7YGAVPVFKW-A2PJP08#U)<MB97U7`D-O[,R3<&5F@<IG]C5OWF?*<8 M:*:^%\'H37B\A;)!;D+1M,JK)K@#6''ZX;_ZNO5,);1/A<U4TF@J&,4^FWX@ M1O*$YVS6[,F8^K?(="OW;I'9Y9*"_:#,Z$YLRJY3A?(:XDX7BT83%^?4(85O M#X.H+WNTWL#+WK.;=F_QR+.F5[*JEJ:)BT_*"=+^$D<1."Z\>]UD[5YLXS<T M@.R*9+ZIG(U(37VH\,;'4CB*5;PFJ-GTZ),AXPN!T0F!/33!4\Z'.3P*VXXL M3D^K(^B5(H4O8_V\0L$'%*G@(]#OZ^R&H8O'^W95]8"UF\[5>%H:=&!Q,VX> M0)^#SX6S=Z[*.%?FZIE\*<)Z++[28@W/IZQH=7MR9*,3Q1)B*\EL97^Q'N0- M2:BR<'/H9G0VF0VU%)7FI>F_]+RA>#X=!_]M"_A.*U%I8:P>33!N?]5*W`]8 M;Z+71:NI]%AOTSW(_/YXD8R3%6I'4E#E;\V\E(;;4/JUX^JG\72;./,9W&B) M)["50[(MLFU#9G99V*P!PWV<RY'.E%Y`C.-O).CD6%Y(`&ZR0Z\`BJ:WZ^.! MIW8B&2)"`.ITM1RJ_-]X\UP]9F6RW%P[/LE#.^,_NXRF_X-`:8/._/NEPJ\* ME!M*=[Y]PY0<GA4M`U"0]W7BK,O>^I_1HY6W>^?=P]M'W6<^_[V1@_TY4,/@ M\O].-S:6+RW1%DNQURAGS-C-3GG$CPWC:ZRJZZ!Q$U'"`$Q$EGR0W6+MC_9! M-;59N4JCL>>"6]X/[D(XY!/[$6PB2/"672Y['-HM7M^M1`P3]<$LY.=FX6&@ M');$W'[K%HKB*D?54!*7HQ0QT7/X<6Q08RN&?`!6$J.#<&(M,EOY(RT:P5[2 M7G)?6XR=5=!FL-Z@X(L:R%R][:VE[<=XI%B-E$7_XW7[#Y_F">J9/HJP:7P9 M@=XMMV6KTG.>O/5MA.=N3*U8U9Y>0'U+G_133.^A@X)!!M<RE:E)1ESTNIB` M;W$HVFC`ERXT01("!67=>O*GF[TKD.#JA^'TG@@[-\KH_?/4P=?JE))^TUPK MGTBPE[`MD[48J-`8YW`%F>F$::;:U8N9V5MLY:^T%(65WN`2D=9Q>^;P,"'D M/.GFFB0H7(9SP??N5(GT[Y([5*"'>SS[WLVBSA`TDIYZ\?8];LS*'G'G-0P# M`.>;KPXDV!(:3@L?$-@,`AD[(G/`S@_^)0!1N;H-V&T89V%TD)3*0U&G1#<9 M[+4,D:[L'*XH(2:D_W1<]K6(U>_6WO+$7V5E"5S!:LA9][3084G*UB727M62 MLK>-Y.*D'DZ+:H=?#B^%,F*Z]QB$)&=P0<T_#Y;@P9X;+4>>%5D*X@Q90@V* M;%"'1?AC4[LY-:I7"J[+OO;@>^--?=1G=AV"RB<[6,3MK"->WBQRG4NJ/M.! M"6\OF!0K$IMN4E"55*RY\H1MJ.0VG($X6KVSO41XESC=A[_/]_+0IRH%N5K^ M_FN=PU/?9:+-D$?K6N+2;LPC622]--CQH_,7[/&&T2+('&ENC?0..+38!1P? M@`:8^Q/2%9(>"4:'Z8'7-.[_;&1Z:1^3U%)':Z)(+^Z`<<L[2W14BEXUVK6> M,<[;+]TC/_IC=>Y0AT[,-E#"=/J`Q+.\U3HPDZN;`H/`0IK>MXAF%+@Q#&AL M'CCBF)LSE]]?`2*AXS^/`'L$4*4.6**7#P?`D5X;!L"E</9?CR#V?F'J@B-Y MQ*J]P)7U_/<),\I)54/?^KA*$H0:?QW);8RX[@Y,H6K2F>DD#VF=C\X+HKW# MX>[2ZP:5=]Z%Y95KO3;*ZE&9]UYL2X,'+M6YL>/F$P4N^0WH`M7ZU:)[?>=^ MNN:?=[D`=0NN[^-E6<MT,Y1NIXJP(FXCF$9V5Y_FT.G#[G&V(5WM(')]QZS5 M`N,'Z+UG_G.=]TM9!"+F+`]E=\"1@:8K@"QJ&T2TI9[!6AY\!.[X$1_[)B1_ M+09^K#06^ARQEGLA358T2C7KZ8VH]$%4_3?RD;%16%A8Y[G-^ZT$3>OV*W5I MWMO;"^'SB-4GM?/28#9]-K`^5GTUTOPI#H0DI(U8@'QG9+7L!&[ZC\.:BU(7 M:UVD9ZQKRQX@)L#EN%66ZT8#P,OD/O4)85:[P=K*.N$6A<2:4#4OF<X;R=V9 M$5UYSYTC_L;&P)?A'_+%;N!AJ^`H'AB3H5]5AW&X>=\!72`WJ>G[SRV@@:?3 M0=D?XEZR.YB+M2FJA)0;5*4\4WBA_MEF+%[T`T&XV#C\3LC<66^JX[Y7?7B( M7\YIE]CWBIW147=_?;%ML(:-5MMN_;\`R,N5TOX28O-7R!PS?BO>/[KYOA/3 M^^I\CAIS'M5KN5SO!2)T^,8PO+MSK]M-IKDD"F=G-&OFIT71;:_-Q'K>ZGE: MTEDH_VVU3I]FWS6"4SJ?I':`%Y56P):?7:M=I&1*0J9:F`<UN<EHM!+%QH(< M!6FYV+$V=,/#&18S=-,[$P::X91KY//Y?101N4(?1HE884TDLU%N"_$"7D^O M?!&D;OW=$CI;Z7H+QZA'W\KAX89.66<?2J8@@VA<"#U&`78:@HM[>U!XFO95 M[-3S1[Y4OJ*B'89^9(B2,7N,"D&Y/JQW,;Y/QY/WT*E>^F``&L_C&=QO[4U! MW\P>H#91P(!`)FJTDDP[9EUD))>SRAQO9^NK'DE]BLP":8W2BI*=MWVB":UL MG<LSA,2%$4"-Y4S8/HE3G@U6R(U7?*,SD>_V><(#!WY0HEX'?-82<U(J$>'R M3>K0J@T'+7112$HY+220=Q!8D[1`YB!-MT5%DFC*$V3$(JWO/"P<&$T.H&!0 MN#IIZ;YD&WWX1UWZ,'VBMJ5`38J0E>I!%-2Y-^D=F69X<N[D:'T7T?W;1)9W MR%-DXM`CY(=(F`-S8XB;3JKU"20!-RP^YU"$5/LW?N'/\*%L.96!(Z$GEQE7 M+WLGTJN7N)W96>U;W`DA647F!"FTR>W;Z3,CSD,W\;L<$]##V3O*'7VUVV]7 M]51V0YRINY'*I;5[K<(L8"Y(_5\B%T74M8J3H)2M!5>J*V>6]A*[9DIX$3M8 MMNBVR]\*GX>A<MZJ-60J/7&-]T>_YDJ:M4\\NYMM[R1UF=;?+QJ-HO,6&*BC MP?H^"9I<1)L.<`BJV!+OZB:;HV3(]0:BAW_NPQ)K2^3'^*I&^/\,S[[+O_6C M%MLK9*?P#FV'?3+J$"'K.GBM53M6016^V`7%[KP7$JII5<WCN+CN;!`8H,U_ MRP_BR2D?+QT]PDYVG?V=8A5-P>S<;C)^GB%YUW';3Y9`G9LY=BC#6F^]DL$E MZX4X97:!P(Z!L?;:%VY@YA+>L+LZ>9G*\4C3A]09.]P7HQGVW6/MS;G-Y45@ MV[1#+BK]6_1B4\G<<K/QGO?I]U+@<_0UL8GZS?)3P,.[J@;X6M]ZG(WXVSP- M[.,ZE:\/#(#6_Z/<]S]KOER.W%<+SFX=1V\!^UL`$;=SS'N"3_BW!7AX>'AX F>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'C_S_T/[21E80#(```` ` end |=[ EOF ]=---------------------------------------------------------------=| Traducido por Active Matrix - ActiveMatrix@technologist.com Para RareGaZz - http://raregazz.cjb.net Argentina, 2002 El articulo aqui traducido, mantiene los derechos de autor.