Manual PseIntTabla de contenidos 1 Introducción 2 Utilización del entorno 2.1 Elementos de la Ventana 2.2 Información de Ejecución 3 Sintaxis del PseudoCódigo 3.1 Consideraciones Previas 3.2 Algoritmos 3.3 Acerca de constantes, identificadores y palabras reservadas 3.4 Asignación 3.5 Entrada 3.6 Salida 3.7 Dimensionamiento 3.8 Condicional 3.9 Selección Multiple 3.10 Mientras Hacer 3.11 Repetir Hasta Que 3.12 Para 3.13 Operadores 4 Funciones Matemáticas 5 Mensajes de Error 5.1 Asignación incompleta 5.2 Caracter no válido 5.3 Constante o Identificador no válido 5.4 Demasiados Parámetros 5.5 División por cero 5.6 Entonces mal colocado 5.7 Falta cerrar comillas 5.8 Falta cerrar paréntesis 5.9 Falta cerrar Si/Para/Mientras/Repetir/Según 5.10 Falta condición 5.11 Falta Hacer 5.12 Falta Hasta 5.13 Falta nombre de proceso 22 No coinciden los tipos 5. No es necesario ser programador para esto último (aunque mejor si lo sos). PseInt es un editor e intérprete de programas escritos en PseudoCódigo.15 Faltan Parámetros 5. Segun) y ciclos (Mientras.17 FinSegun/FinSi/FinPara/FinMientras/FinProceso/Hasta que mal colocado 5.29 Se esperaba <opción>: 5.28 Se cerraron paréntesis demás 5.31 Se esperaba Con Paso o fin de instrucción 5. También provee funciones de entrada/salida y algunas funciones matemáticas. Este proyecto se encuentra en http://pseint.23 No lleva punto y coma 5.27 Raíz de negativo 5.18 Identificador no válido 5. otras veces se necesita de quien . acceder al foro de soporte y también unirse al equipo de desarrollo del programa. lógicos. y también usar valores numéricos (números decimales).14 Falta punto y coma 5.32 Se esperaba Entonces 5. en muchas ocasiones es necesario el ojo crítico de un docente que usa el programa o de un alumno que quiere proponer mejoras. por sus siglas en inglés) para PseudoCódigo.21 Logaritmo de 0 o negativo 5. un lenguaje de programación imperativa simple y en castellano.35 Sino mal colocado 5. Para). almacenar. Su interfaz gráfica permite crear.30 Se esperaba asignación 5.5. Es decir.26 Parámetro nulo 5.16 Faltan subíndices 5. ejecutar y corregir fácilmente programas en PseudoCódigo.net y de allí se puede descargar la última versión del programa.19 Instrucción fuera de proceso 5. Hasta Que. La sencillez del lenguaje PseudoCódigo lo hacen ideal para la enseñanza de la programación. caracteres y arreglos.24 Número de parámetros o subíndices incorrecto 5.sourceforge.33 Se esperaba espacio o coma 5.20 La instrucción no debe tener parámetros 5.34 Se esperaba Proceso <nombre> 5. Permite escribir programas con instrucciones condicionales (Si-EntoncesSino.36 Subíndices fuera de rango Introducción PseInt (Pseudo Intérprete) es un Entorno de Desarrollo Integrado (IDE.25 Operador incorrecto 5. Para solucionar este problema. En ella aparecen los errores encontrados.1 se puede redimensionar esta área manipulando la línea divisoria entre dicha área y el área de trabajo. Si no se encuentra allí. manteniendo el botón izquierdo apretado podemos cambiar las dimensiones de las áreas. es posible que el entorno no funcione correctamente si el sistema operativo Windows no se encuentra en el directorio "c:\windows". el desarrollador principal les espera. consulte la documentación adjunta. . Notar que al pasar por sobre esa línea divisoria. automáticamente se seleccionará la línea que contiene dicho error en el área de trabajo. Al hacer click sobre los mismos. A partir de la versión 1. dicha información no puede ser actualizada. Esto siempre debe ser así. Si intentó actualizar el intérprete. Nótese que la ruta termina en "\". Utilización del entorno Elementos de la Ventana Barra de Título Menú de Opciones Barra de Acceso Rápido Área de Trabajo Área de Información de Ejecución Barras de scroll Información de Ejecución La Información de Ejecución se actualiza cada vez que se ejecuta el algoritmo. Problemas con el Entorno Debido a que la comunicación entre el entorno y el intérprete propiamente dicho se realiza a través de archivos temporales. Windows se encuentra en la carpeta "e:\windows". se debe editar el archivo Pselnt. ya sean de sintaxis (antes de ejecutarse) o errores en tiempo de ejecución. Si la ejecución se interrumpe de forma anormal (presionando Ctrl+Pause o finalizando el proceso por medio del sistema operativo). el cursor del ratón se mostrará como una doble flecha.quiera aportar documentación (esta página dinámica está para eso). No seria correcto "e:\windows". debe ser creado en la carpeta junto a los ejecutables.exe desde el directorio donde instaló la aplicación. En dicho archivo se debe agregar (en cualquier lugar) la siguiente línea: WinDir=E:\windows\ En este ejemplo.ini que se encuentra en el directorio de instalación. En cualquiera de los casos. Debe asegurarse de ejecutar VPSeInt. Otro posible problema que puede presentarse al ejecutar la aplicación es que un mensaje indique que no se encontró el intérprete. Consideraciones Previas En las secciones siguientes. Note que no puede haber instrucciones fuera del programa. Segun. aunque sí comentarios. Las palabras reservadas no llevan acentos. o nombres de variables. <instrucción>. el punto ( . Las constantes de tipo carácter se escriben entre comillas ( " ). comenzando siempre con una letra. las reglas que permiten decir si un programa está bien escrito) es definida usando una notación similar a la notación BNF (Backus-Naur Form). Algoritmos Un programa escrito en PseudoCódigo comienza con la palabra clave Proceso seguida del nombre del programa.com y describa con detalle el error en cuestión. pero la estructura contenida debe comenzar y finalizar dentro de la contenedora. Las constantes lógicas son Verdadero y Falso. Por ejemplo. por ejemplo: Proceso. identificadores y palabras reservadas Los identificadores. . hasta el fin de la línea.Si esto no soluciona su problema. Proceso <nombre> <secuencia de instrucciones> FinProceso Donde una secuencia de instrucciones es una lista de una o más instrucciones. cada una terminada en punto y coma. En las constantes numéricas.. pueden contener otras adentro. por ejemplo: <condición>. deben constar sólo de letras y números.. Se pueden introducir comentarios luego de una instrucción. luego le sigue una secuencia de instrucciones y finaliza con la palabra FinProceso. mediante el uso de la doble barra ( // ). Las palabras y símbolos que pertenecen al pseudocódigo se escriben tal como deben ir. Es decir. . la sintaxis del lenguaje PseudoCódigo (es decir. Todo lo que precede a //. Las estructuras no secuenciales pueden anidarse. no será tomado en cuenta al interpretar el algoritmo. Dimension. <instrucción>. ) es el separador decimal. escriba a zaskar @hotmail. <instrucción>. Acerca de constantes. o en líneas separadas. mientras que los nombres de variables y otros símbolos y expresiones que pueden variar son escritos entre corchetes angulares. . . <exprN> . . <variableN> .. // incrementa el valor del Acumulador en 1 Entrada La instrucción Leer permite ingresar información desde el ambiente. Esta instrucción imprime al ambiente (en este caso en la pantalla) los valores obtenidos de evaluar N expresiones. El tipo de la variable y el de la expresión deben coincidir. <expr2> . // asigna el número 1 a var Acumulador <. .. .Acumulador + 1..Asignación La instrucción de asignación permite almacenar una valor en una variable. primero se evalúa la expresión de la derecha y luego se asigna el resultado a la variable de la izquierda.Valor2. . Escribir <exprl> .1. Esta instrucción lee N valores desde el ambiente (en este caso el teclado) y los asigna a las N variables mencionadas. indicando sus dimensiones. Ejemplos : var <. Ejemplos : Leer Cantidad. Pueden incluirse una o más variables. Dado que puede incluir una o más expresiones. <variable2> .Valor3. <variable> <. Leer <variablel> . Salida La instrucción Escribir permite mostrar valores al ambiente.<expresión> . Dimensionamiento La instrucción Dimension permite definir un arreglo. Al ejecutarse la asignación. Ejemplos: Escribir "Ingrese el nombre:". por lo tanto el comando leerá uno o más valores. mostrará uno o más valores. Escribir "Resultado:" . Leer Valorl. x*2 . se evalúa la condición y se ejecutan las instrucciones que correspondan: las instrucciones que le siguen al Entonces si la condición es verdadera.3.).Dimesion <identificador> (<maxl>..5. .. La condición debe ser una expresión lógica. En ese caso.. <identM> (<maxM1>.. pero la cláusla Sino puede no estar. si la condición es falsa no se ejecuta ninguna instrucción y la ejecución del programa continúa con la instrucción siguiente. Esta instrucción define un arreglo con el nombre indicado en <indentificador> y N dimensiones. Dimension Tabla (10. Ejemplos: Dimension Alumnos (10). Condicional La secuencia de instrucciones ejecutadas por la instrucción Si-Entonces-Sino depende del valor de una condición lógica.<max1N>)...... Escribir Tabla (1.. Sino Escribir "Es menor o igual". La cantidad de dimensiones puede ser una o más...3). o las instrucciones que le siguen al Sino si la condición es falsa. y la máxima cantidad de elementos debe ser una expresión numérica positiva.. Leer Alumno (1).. Si <condición> Entonces <instrucciones> Sino <instrucciones> FinSi Al ejecutarse esta instrucción. que al ser evaluada retorna Verdadero o Falso. Ejemplos : Si A>B Entonces Escribir "Es mayor". Se pueden definir más de un arreglo en una misma instrucción.2). Resultados (5)..<maxN>).<maxMN>) Es importante notar que es necesario definir un arreglo antes de utilizarlo. separándolos con una coma (. Dimension <ident1> (<max11>.. Los N parámetros indican la cantidad de dimensiones y el valor máximo de cada una de ellas. La cláusula Entonces debe aparecer siempre. Ejemplo : Leer a.. FinSegun Mientras Hacer La instrucción Mientras ejecuta una secuencia de instrucciones mientras una condición sea verdadera.> De Otro Modo: <instrucciones> FinSegun Esta instrucción permite ejecutar opcionalmente varias acciones posibles.6: Escribir "Condicional". Segun <variable> Hacer <número1>: <instrucciones> <número2>.3: Escribir "Desaprobado". Sino Escribir "Solo se consideraran los 10 primeros. FinSi Selección Multiple La secuencia de instrucciones ejecutada por una instrucción Segun depende del valor de una variable numérica. dos puntos y una secuencia de instrucciones. Cada opción está formada por uno o más números separados por comas. la secuencia de instrucciones asociada se debe ejecutar cuando el valor de la variable es uno de esos números. se evalúa el contenido de la variable y se ejecuta la secuencia de instrucciones asociada con dicho valor. Si una opción incluye varios números. Mientras <condición> Hacer <instrucciones> . cuya secuencia de instrucciones asociada se ejecutará sólo si el valor almacenado en la variable no coincide con ninguna de las opciones anteriores.2. Al ejecutarse. Segun a Hacer 0. se puede agregar una opción final.FinSi Leer Muchos. 10: Escribir "Excelente!". dependiendo del valor almacenado en una variable de tipo numérico.".1. Opcionalmente. De Otro Modo: Escribir "Aprobado".5.<número3>: <instrucciones> <.. 4. Si Muchos = 10 Entonces Escribir "Demasiados articulos. denominada De Otro Modo.". Si la condición es falsa. Note que. las instrucciones del cuerpo del ciclo deben contener alguna instrucción que modifique la o las variables involucradas en la condición.Tot+a. Si la condición siempre es verdadera.Tot. Además. Ejemplo : Escribir "Ingrese un número (0 para salir)". al ejecutar esta instrucción se produce un ciclo infinito. Esto se repite hasta que la condición sea verdadera. Repetir Hasta Que La instrucción Repetir-Hasta Que ejecuta una secuencia de instrucciones hasta que la condición sea verdadera. dado que la condición se evalúa al final. si es verdadera. Estos pasos se repiten mientras la condición sea verdadera. el cuerpo del ciclo debe contener alguna instrucción que modifique la o las variables involucradas en la condición de modo que en algún momento la condición sea verdadera y se finalice la ejecución del ciclo. Mientras a<>0 Hacer Tot <.FinMientras Al ejecutarse esta instrucción. A fin de evitarlo. la secuencia de instrucciones que forma el cuerpo del ciclo se ejecuta una vez y luego se evalúa la condición. a fin de evitar ciclos infinitos. Ejemplo : . Note que las instrucciones del cuerpo del ciclo pueden no ejecutarse nunca. FinMientras Escribir "Total:". Leer a. de modo que ésta sea falsificada en algún momento y así finalice la ejecución del ciclo. la ejecución se repite. Escribir "Ingrese otro número (0 para salir)". Leer a. se ejecuta una vez la secuencia de instrucciones que forman el cuerpo del ciclo. Repetir <instrucciones> Hasta Que <condición> Al ejecutarse esta instrucción. si al evaluar por primera vez la condición resulta ser falsa. Si la condición resulta verdadera. la condición es evaluada. el cuerpo del ciclo se ejecuta nuevamente y se vuelve a evaluar la condición. las instrucciones del cuerpo del ciclo serán ejecutadas al menos una vez. Al finalizar la ejecución del cuerpo del ciclo se vuelve a evaluar la condición y. Repetir Tot <. la variable <variable> recibe el valor <inicial> y se ejecuta la secuencia de instrucciones que forma el cuerpo del ciclo. la variable <variable> se incrementará en 1. Ejemplo : Escribir "Números pares de 10 a 20:". (7>4) & (2=1) //falso . FinPara Operadores Operador Relacionales > < = <= >= Lógicos & Significado Mayor que Menor que Igual que Ejemplo 3>2 'ABC'<'abc' 4=3 Menor o igual que 'a'<='b' Mayor o igual que 4>=5 Conjunción (y). Luego se incrementa la variable <variable> en <paso> unidades y se evalúa si el valor almacenado en <variable> superó al valor <final>.Tot. Para a<-10 Hasta 20 Con Paso 2 Hacer Escribir a.<inicial> Hasta <final> ( Con Paso <paso> ) Hacer <instrucciones> FinPara Al ingresar al bloque. Para La instrucción Para ejecuta una secuencia de instrucciones un número determinado de veces.Tot+a. Para <variable> <. Leer a. Escribir "Ingrese un número (0 para salir)". Escribir "Total:". Si esto es falso se repite hasta que <variable> supere a <final>. Si se omite la cláusula Con Paso <paso>. Hasta Que a=0. Ejemplos : . junto con su explicación. (1=1 | 2=1) //verdadero ~(2<5) //falso Suma Multiplicación División Potenciación La jerarquía de los operadores matemáticos es igual a la del álgebra. Los errores están en orden alfabético. Funciones Matemáticas Función RC(X) ABS(X) LN(X) EXP(X) SEN(X) COS(X) ATAN(X) Significado Raíz Cuadrada de X Valor Absoluto de X Logaritmo Natural de X Función Exponencial de X Seno de X Coseno de X Arcotangente de X TRUNC(X) Parte entera de X REDON(X) Entero más cercano a X La función raíz cuadrada no debe recibir un argumento negativo. La función exponencial no debe recibir un argumento menor o igual a cero. aunque puede alterarse mediante el uso de paréntesis. Negación (no). Mensajes de Error La siguiente es una lista de errores posibles en un programa que son detectados por el intérprete.| ~ Algebraicos * / ^ Disyunción (o). Asignación incompleta Este error se produce por la ausencia de alguna de las dos partes de una asignación: la variable o la expresión a asignar. 1.3. // No puede empezar con número Tot <. // el símbolo '_' no puede ser parte de un identificador Escribir 3. °. Ejemplos: &. // 1 y 3 son dos parámetros División por cero Una expresión matemática no debe intentar dividir por cero.0. %. Estos símbolos sólo pueden aparecer dentro de constantes de tipo caracter. -. Ejemplos : Escribir 1erVar. #. // el número tiene dos puntos decimales Escribir Para.Tot + Primer_Var. Caracter no válido Se encontró un caracter no permitido en el PseudoCódigo. Tampoco pueden usarse palabras reservadas como identificadores. // 'Para' es una palabra reservada Demasiados Parámetros Ocurre cuando una instrucción que admite sólo un parámetro recibe más de uno. Escribir 7/a.4. Entonces mal colocado La cláusula Entonces siempre debe estar después de un Si. Falta cerrar comillas . Constante o Identificador no válido Los identificadores deben comenzar siempre con una letra y pueden continuar sólo con letras o números. de lo contrario está mal colocada. Ejemplo: a <.Para <-3 hasta 5 hacer a<-.5. Ejemplo: a <. Este error puede ser causado también por una constante incorrectamente escrita. \. // la operación 7/a equivale a 7/0 y es imposible. Ejemplo: Escribir "Total:. Falta cerrar Si/Para/Mientras/Repetir/Según Todas las estructuras deben tener un comienzo y un final dentro del algoritmo. Mientras y Segun deben ser seguidas por la palabra Hacer. Tot. Ejemplos: Para a<. Este error se produce porque falta la palabra reservada FinSi/FinPara/FinMientras/Hasta Que/FinSegun o porque una de esas palabras está mal ubicada. Falta condición Las estructuras de control repetitivas (Mientras y Repetir-Hasta Que) y las condicionales (Si y Segun) requieren que exista una condición lógica. Falta cerrar paréntesis Este error se produce cuando en alguna expresión se abre un paréntesis que luego no se cierra. Ejemplos: . Ejemplo: Escribir (3+4/(2*a). Ejemplos: Si Hasta Que Según Hacer Mientras Falta Hacer Las condiciones lógicas en las instrucciones Para.1 Hasta c Según a Falta Hasta La instrucción Para siempre debe contener la cláusula Hasta <final>.Este error es ocasionado por una constante de tipo caracter incorrecta. Se deben cerrar todos los paréntesis que se abren. Se deben delimitar con comillas ( " ) tanto el inicio como el final de la misma. Ejemplos: Escribir 1 Leer a Dimension b(10) Faltan Parámetros Este error se produce cuando se intenta ejecutar una instrucción sin los parámetros mínimos necesarios.Para a<-1 hacer Falta nombre de proceso Todos los programas deben comenzar con la palabra reservada Proceso y a continuación un nombre válido (un identificador) para el programa. . el Proceso es único y debe ser el primero en abrirse y el último en cerrarse. // falta identificador de arreglo Para B // falta asignación y valor final Faltan subíndices En la declaración de un arreglo siempre deben indicarse las dimensiones y sus cantidades máximas de elementos.). En el caso de un programa. FinSegun/FinSi/FinPara/FinMientras/FinProceso/Hasta que mal colocado Estas estructuras deben tener su comienzo y su final en el mismo nivel. Ejemplo: Dimensión C. Ejemplos: Escribir . es decir que si están anidadas deben incluirse completamente una dentro de otra. // falta expresión Leer . // falta identificador de variable Dimension . Ejemplo: Proceso // aquí se coloca el nombre Falta punto y coma Cada instrucción en una secuencia debe finalizar siempre con punto y coma (. Ejemplos: a <-'b'. // No puede empezar con número Leer Para. // a es caracter Según a. expresiones y variables deben ser siempre de tipo numérico. Repetir. ). FinProceso y FinSegun no llevan parámetros. FinSi. FinMientras. En las instrucciones Segun y Para la constantes.Identificador no válido Los identificadores deben comenzar siempre con una letra y pueden continuar sólo con letras o números. FinPara. Escribir. // a es caracter Si 1='3' // '3' es caracter. No pueden ser palabras reservadas. <-) deben finalizar con punto y coma ( . Ejemplos: . Dimension. // Para es palabra reservada Instrucción fuera de proceso Todas las acciones deben estar contenidas dentro del programa.5+a. Ejemplos : Leer 1erVar. Cualquier acción posterior a la palabra FinProceso ocasiona este error. No coinciden los tipos Este error se produce cuando se utilizan variables. La instrucción no debe tener parámetros Este error ocurre cuando una instrucción que no espera parámetros los recibe. 1 es numérica No lleva punto y coma Sólo las instrucciones secuenciales (Leer. Logaritmo de 0 o negativo No se puede calcular el logaritmo de un número menor o igual a cero. constantes u operadores correspondientes a tipos de datos diferentes. c <. Si a=1. Repetir. Ejemplos : a <.4). multiplicación y división) seguidos Escribir 5_2.Para a<-1 Hasta 3 Hacer. // el arreglo a fue definido como bidimensional Operador incorrecto Este error se produce cuando se encuentra un operador mal ubicado o desconocido. Ejemplos : Escribir a.5*/3.. Escribir a(2). // el 2do parámetro está vacío Escribir (). También ocurre cuando se encuentran dos operadores seguidos sin una constante o variable en medio.2). Número de parámetros o subíndices incorrecto Este error puede ser causado por acceder a un elemento de un arreglo utilizando una cantidad de índices diferente a las dimensiones declaradas o al invocar una función matemática con más de un parámetro. Ejemplos: Escribir Cos(20. // dos operadores ('*' y '/'. por lo que no se puede calcular la raíz cuadrada de un número negativo.. // el parámetro () es un parámetro nulo Raíz de negativo PseudoCódigo sólo trabaja con números reales. Se cerraron paréntesis demás Este error se produce cuando en alguna expresión matemática sobran paréntesis. // el 2do parámetro está vacío Leer b. Ejemplo : .2. // el símbolo '_' no es un operador Parámetro nulo Este error se produce cuando falta un parámetro. // Cos es la función matemática coseno Dimension a(10. una secuencia de instrucciones a ejecutarse cuando la condición es verdadera). Se esperaba Entonces La instrucción condicional Si siempre debe tener una cláusula Entonces (es decir. Se esperaba asignación La instrucción Para siempre debe contener la asignación que inicialice la variable de control. Ejemplo: Para a Hasta 5 Hacer Se esperaba Con Paso o fin de instrucción Este error se produce cuando en una instrucción Para se incluye un parámetro (u otra instrucción) no válido. Se esperaba <opción>: La instrucción de selección múltiple Segun deben incluir al menos una opción. Para estar bien construída. seguidos por dos puntos ( : ) y luego la secuencia de instrucciones a ejecutar. Ejemplos : Si a=1 Sino Escribir 2. la opción debe constar de uno o más números. Ejemplo : Segun a Hacer Escribir b. Ejemplos : Para a<-1 Hasta 3 Leer a.Escribir 2+(2*a)-b) . FinSi // Para evitar este error se puede negar la condición: a<>1 // y transformar la cláusula Sino en una cláusula Entonces Se esperaba espacio o coma . de lo contrario está mal colocada. Ejemplo : Escribir C B. Escribir a(6). // el arreglo a sólo tiene 5 elementos . Subíndices fuera de rango Este error se produce cuando se usa como índice de un arreglo a un valor fuera de las posiciones definidas en la instrucción Dimension que se usó para declarar el arreglo. Todas las acciones deben estar contenidas dentro del programa.Este error se produce cuando se encuentran dos variables o constantes consecutivas sin ningún separador en medio. Ejemplo : Dimension a(5). Sino mal colocado La cláusula Sino siempre debe estar dentro de un Si. // falta coma u operador Mientras a='A'Hacer // falta un espacio Se esperaba Proceso <nombre> Todos los programas deben comenzar con la palabra Proceso y a continuación un nombre válido (un identificador) para el programa. // falta coma u operador Escribir "21" B. %4/446:0570..0/0. . 07.8 3./03974 5074.7808/0.43:3.83480.:03.4203.-08 /0-03./05747.42039.3908/0954. .3/4802570.:36:08J.9:7.3908O../47/0.-7.84 .. .42.3/.70..7 5:0/03..4389.03948!4700254 $0:3 203843 . 34807E 942..3908 /0391.8 O O O O O 48/0391.47924 4906:0345:0/0.0897:.85.J30.8340.013/0.8.:039.713.4390307497./4708 4342-708/0./074..7./0-0.4203.8320748 .43081:07.9078008.2.097.39083:2F7.7-0303970..8843'07/../.89. ..-7.7/03974/0.870807. ..085:0/03.7....8.39075709..8 05:394 080805./0./47085....748 .-073897:. .9:7./.4389.78O4/0097.870807.43903/./403.4389.4389..2.7E.8.3..4389.439030/47.8.80897:. .-0 .7.05708O3/0....83..-00/0.:9. 0708:9.O3/0..6:07/.2.7.83.:0480..05708O3/0-03 .O3 572074800.7:3.03....83.3897:..-0/0.83./4...O3507290./070...O3 .4703:3.7 ../7 02548 .-0 05708O3 00.954/0.7.43.7..780..... . :2:./47 ..032074.7 ./47 .83..:2:.. . 3/4 007E:3442E8.83...3..O300..-0 .:780:3.39/..39.3897:.84090.O325720./46:05:0/03../.47 $.47084-903/48/0 0. .3/48:8/20384308 .702039.O30075072903708..7.3897:..42E8057084308 24897../.43.47 '..7..3897:.-0 89.8 ./4 48.7-750729024897.7.4708 02548 8.8!:0/033..7057084308..-08 54749.47 '. 48.. .7-7057 057 057 89.O3/08/00.3897:.-0 .3897:.:2:..4708.2-0390 030890.O3203843507290/0137:3.5.:.2-0390 030890./4 203843.-08203.47/0.O38./4703 397.7..731472.7.7E:3442E8 .7-7370800342-70 8../.42E8..7704 3/..42.4708 02548 007.2-0390 007.8403...:7:3...7./ 007'.0.2-0390 8.3940.7-7#08:9....20394 .4708/08/00.. :9.:03... 2.39/.088.43..O3 805./4033/0391.3897:.8.O3/0-0807:3..O3O.O3$ 3943.. /039 825479..4393.:./00.O3.43086:008:03./07..47/0:3.3908/0:9.348000./03897:../ /000203948/0-0807:3. 43/.08 $34/0503/0/0 .3897:.$348...:.3897:..282.73080 .7-78203474:.7704.43086:008:03..8./0744.4308 $34 3897:.70.5489..430800. $.07/. 6:0.3897:.8..7E3/448.43/.. ./47 2.E:8./.43/...83897:.83897:. 203843/039 2..5.O3/0130:3..33:3.390349.709473...:9.84 8..O3081.'07/.8547.780089.43086:0 ...:3..42..-.O308.42E8 .43/.3897:. .770403:3.05708O33:2F7..3943.43:3.07802570 5074..O3/05747.76:00830./48 8.3.//0/203843085:0/0807:3.:9..7-782. 89... 4 . #08:9.E:8:.7-7%.74/0137:3.7E2097483/.00. 05708O3O..7704.O3 800.43/.O38:0390 02548 $ 3943.47 $34 8.43/../. .39/.08. $05:0/03/01372E8/0:3.43/. 2./..O3 3943..4308 3$ 00.08 8....08 3897:.47708543/.39/.43/.2...$345:0/034089. 2.O38000..84 ...08/0-0.43./47 /20384308485.3.20843/0391..2E2. 2.8070..-.80..O3081.//0/203843080.3943.:9.3897:.472E24/0 .430342-703/.3.83897:.74 02548 203843:2348 007:234 203843%. 4308$:3.430800......3897:./.4308./0..:03.43903/4/0 ./.:9.47.79.47/0 :3...7.42.4333:3../4 3$0:3 0397./0 3897:.-08000../.3/40..43.O30397.0 9744/4 .7.:03.45.:9.:9..0..43/.00390 0 9744/48..43.:3./03897:..45.... 80./403.780 800.07 320743897:..O3.. 80..7.80...7-7./.80.8.43...O3:950 ..O3$0:3/0503/0/0.2./0.47 ./.07/..-008:34/00848 320748 5.07 .348 5720748 3$ $00..43/.:03.7E8O480.47.O3089E1472.07 3897:.O380..:0.:03.-0 34.7./03897:.48 3943.4308 32074 320743897:..O33. 8.2....:....:9.4308.800./48547. .7.4308 3$0:3 89./4 8./03897:./.547:3442E8320748805..7-7$4480. $0:3...:9.48 $:.3897:.745../07.748320748 .4.80.430820397.8.45.7-702..7:3./03897:.7.7./.20390 805:0/0..4308.7-7574-.7.O350729000.84../403:3..8.4308 ..43/.80/0-000.70..47/0.574-..400.03.438/07.39074708 0254 007..84.07 8.-0/09543:2F7.7-743/.8.8:3.20390.8000.80.03..7..:..:9.3$ 007:.7.:03.547:3./48. /03423. 0397...:48 $34 8..:03.4308548-08 /0503/03/4/0 .84.-03:2F7.-0.08 8.845./03897:.4308..43.4308 0 9744/43897:.. $0:3.3897:.:9.7-708.8 /485:3948:3.O313. .3897:.80..:0754/0 ...:.3897:.0 /02E8 .":0 .803. ./07.4 3139413/00. 0397.43/.8.00..:3.8.7.:0754/0.43/..89.4308/0.20348:3.O3$.-083.O3081..4308/0.0.43/.07/..O3708:9.O36:024/16:0..:0754/0.0:04800..":000...0.O3/0.07/.45:0/033400.O3/0.7.4 0254 ..7..43/..:9.43/.4308. %49 #05097.7.0./07.8 8.00..O3 .O380257008.. 3897:.:03.4/0-0.O3 00.480.4 13.7803:3..0.:9.O3807059089485.$.89.7..00.O380./03897:.43/.4308/0.803./.43086:01472.4/0-03.:03../07./.4390307.:9.9.6:0.83897:.89....8.4 807E300. .8.8071.:0754/0.:0754/0.:.O3708:9.:9.:9.13./03897:.8.07 %49 %49 .43/...8J13.13/00.4390307.43/.8 00.07/.O3 808 .. .83897:.48313948 0.07/.89.43086:01472.7-7%49.0. 8.4.7089..7.43/..48000.:0..0../07./. ...3 2420394.7-737080497432074 5.:.83897:.8013...:9.30..3897:.43/.6:0.30397.4.O3800..07/..80..7 007.:0.:9.0.43/.00.O380.:...O3 .32420394.0:3./07.4:.00. 80.780089.43/.O380..:3...89. 4906:0 /.7.0. 4906:0.7..O3/0.3:0.8.4:.0.:3..3897:.43/..3897:.:0754/0.O380./46:0... 8000...780089./03897:. 8.:.O3080.07/.8..:9....43/.:9. $..../07.:..O3#05097 .O3 /024/46:0F89.O3/024/46:003.O380574/:.8...2039080.4 0254 8.8..4 8000.07/.1..4308 . . .:3.43/.7 007.9.O3 6:024/16:0. #05097 3897:./.80.7.74 .7547 57207..81.:..:. . 0.-083.:3.:0754/0...43/./07.":0..:0754/0.O38948070590.0.:03.7.03.8488070590320397.7-737080:332074 5./. 30397.. /03897:./03897:..$804290.7.7.4713.:9.43086:01472.7.-46:0 ./4/0 ..7.:03.07 3897:./4708 507.473.-0 .-0035...$0894081.08 !. 3708.4:04803.845.13.7../4 #0.84 .-08:507O.-0.08 ..89..O3!.#05097 %49 %49 .8... 3!.476:0 O.7.6:0.:9...7. %49 !.7.":0..80.7.7.13.7-7207485.:0754/0.4308 3!.. 03474:.-0 3.7.48 03476:0 :. 80...6:0 0254 ..89.708/0 .. 43!. 8.6:0.8000.7-7... .84.84:3/.03.474:.7.-08:5070.4308:332074/090723.-00.7.702039.. .7 007..89..6:0 43:3./403.0.. 43!.7.43!.80.2.. ..702039.7E03 0254 8.845.0.7...89. .7-737080:332074 5. 507.07 8..-0. 8..7-7%49./47 $31. !.7.47.:3.00.:03.-070. .7.-.43...O3 .E:8:...848070590.3897:. .. .84 ..-0803../08800. . 1.84 . .48 . = 0-7. ..O3 34 :95.. ) 8:3.8O3 !4903.O3 4 0..O3 ..O3 . . .07/./074 = . . 84 $:2.8/485..8:039008:3.1.7:20394203474:./0 '.05708O3.47-84:94/0 4.9./0 # 390742E8.O33.83.O3.1... . 8900774780574/:.O3 # $ ! $ $ $31..-04.O3480774708089E30347/03.7.07./4 #. ..0547./485470 39F757090 :394./.O37.07./0..7F39088 :3.7908/0:3./00774708548-0803:35747.30390/0 %#& !.83.4 83.:803.:3..79003907.76:J..1:3./47082. .1:3.89.O354303./0E0-7.-F9.907....J:..780 20/.4308.6:0843/090.902E9./0..3900:84/05.438:05.4808:.7 02548 .42509...49..8 :3././7.902E9.9:7.34.-7:3.-7:3./0 :3.:36:05:0/0./0 $034/0 48034/0 % 7./0484507.:.J.08/07747 . 34/0-070. ./7.074 038.34/0-070...7:2039430.O3054303.9.2.4.7924. .07/03974/0...097.7.5./49.8.43:3.07 .7.7-707'.3903.E/4 48/0391..89.43 097.4770.4389.././4708/0-03. ./4734.4389.... .2039008.5:0/03../4708890 077475:0/0807.79.4203.7805.4393:.84320748%.7802570.3904/0391..7.424/0391.E/4 $003.9.2-F3547:3..!.870807.:8.7.90734.9073450729/4030!80:/4O/402548 S8948 8J2-4488O45:0/03.3908/0954.45:0/03:8.254.-7. 02548 8.78O4.7.4397O:3...907 4389.70.. . 45:0/00250.7.4332074 %49 %49 !7207*'.7. . /47 8.08J2-44 * 345:0/08075.7-7..790/0:3 /0391. . 7.0320749030/485:3948/0..08 8.7-7!.2. . 3897:. !. . 08:3.7.7E2097470.O36:0./48!..70807.. 02.7E209748 .:770.5.8././2908O4:35.:..-02E8/0:34 0254 .3/4:3.-7. . 7/.074 0254 .34/0-039039.05708O32..902E9.843/485.074 &3./7547. 8.8O3547.7-7.7E209748 . .. . O3.4507... ...06:.0. .. 082548-0 3943.4397..E:8:.082.44..44.42.08802570/0-0089.077.7.8 ./.3943. ./4 .9. .74089E2..7/085:F8/0:3$ /04. 282.7-7%49.:.424013.9.3/403.:3.390/0954.9073.$0/0-03/029.077.75.0.9.8 9..4770.794/48485.-703 0254 8.077../0.43../4547:3..843.077. %49 .7F390886:0:043480 .4389.-70:35.7 .$0/0-03.7F390886:080. 0254 8.4.39403..42.05708O380.7.7-7 .89007747084.7F39088 8900774780574/:. 7$.077. . .9.. !.7. 0397.8. #05097. -7./..5.479248900774780 574/:.8/0-0390307:3.42034:313.9./03974/0.9:7.3$.8.80897:..05476:01..$03 %4/.70807. 7.3!. 8.30397. . ":0.89. .$03..":0 ./.13.43/.8#05097 .83897:.8.803..4390307.8 0397.O3O.07 02548 !.E:8:.4308!.:-. ...9.. .07 ..85.O3 .3$0:345476:0:3.43/..7.070397.43..9.08 $$0:3 706:07036:0089.O3!.43/.8089E2.9.7.43/.4308O..8/0.. 02548 .80897:./008.7.802570/0-0.89... 0397.:3..":0 $03. 02548 $ .-7...89.3897:.-7.89..8 547.9:7..89.8$0:3/0-0380780:/.89.8 ..43974705099.. ..5.8. !74..084.05747.E/4 :3/0391.342-70/0574./47 5.-7.2.O3:3 342-70.70807....084.07 .9.4393:./.084 %4/48485747. .7.7..!.5.43..2.7. 0254 !74..4203.8/0-03. . ..9.80.0342-70 .9.O303:3.7802570.. 203843.7E209748 8900774780574/:.3897:.748 02548 8./0-013.O383485.5:394.:03.00./. .0.44.435:394.:. .3/48039039.42.3!.7E2097482J3248 30. 02548 8.08.:9.7-7.3897:.6:J80.7-7 007..42..7:3.. . 9.05708O3 007.1. . -0 203843.7.1../0391./47/0.9.. . 7./0391.1..9..7704 !./47/0. . . ./08 2E2..83.O3/0:3..38:-J3/..O3.7704802570/0-033/./0.780.9.39/.8/000203948 0254 2038O3 3$0:3..7.1.08 3..4713.9.8/203843088:8.. 3$. 7.3!. 8.30397. 084.3!74. 30./4 89.9:7..4/0-0807057207403. 0 !74.:780.780 .20390:3.0 08/0.077..03028243.8/0-033.2.084083.80897:.76:08089E3 ./.84/0:35747.-7780092403.6:02.8/0-03903078:.42509..44.3/..89.420348:13./03974/0497. /0391.43 097.E/4 48/0391.8 02548 00707'././4708/0-03.-7.870807.8432074845:0/038075./4734.7...4203.4393:.43:3.097.5:0/03...78O4.7802570. . 7..4332074 007!.45:0/00250.7. . ..O31:07.. 30397.074 4.089007747 ...-7.7E209748 4. 3897:.43.-08/0-03807802570 /09543:2F7.8.../03489548 8900774780574/:..5.3908 057084308.-03$ #05097 3!.7.0844..0843$0:3340.3908:4507.3897:.3/4:3.:.4389.4 02548 .O36:03408507./0574...4389.-08 .5.43903/./..085.47708543/03908.7..2.!..9548/0/.7924/0:332074203474:.35.4308$0:3!.0.7.7924/0 430.948/10703908 3..7.704.3/480:9.8.. . .7E2097484870.70807.:.9.3!74... .83897:.4 4805:0/0...843.084 %4/.3.:770.8/03974/05747.8 3!74..-7.7.4308/0-03089.6:07..3897:.O354890747 .:.7./4708 ..7E209748 890077474.:.O334/0-0903075. . 08.907 $03.....7. . .7..907 $ ..08. . 02548 .7.42...83897:...5:394.42.7-7 203843 /0-0313.7..:03.08 007 8. $O4.430880.43 5:394.907 083:2F7. 08.. 40.. 083.0/07.08/1070390.:30020394/0:3. 2074/05...7E20974848:-J3/.7-748 .7E20974 02548 8..84.. .432E8/0:35.!.//0J3/.4.4770.7...07 #05097 $..7:3. ..7../4547.89./.7704:9.3.:8..8/20384308/0.902E9..3/4:3..O3 2.1:3.39/.94 890077475:0/0807. . .O32.4808.48034 203843. ..7-7.902E9. 8.1:3. . 3904..:-.424-/203843.3/48003../472. .:./470880:/4883:3.94 8900774780574/:..4770.-0 0320/4 02548 .:34507.2-F34./44/08.3/484507./473.0.:0397./4 %.:770.0. 507.3/48003.1:0/013/4.4389.:0397.7.7704.434.:. . . /4708 ./484507. 2:95.O3/..7-7*.8O3 80:/48 8.. . :.7E20974 02548 8.:35.0./47 !.08J2-44 * 3408:34507.3/41.7E209743:4 8900774780574/:. .9.7-7. . J4 007..0/45...7E20974089E. . .0/45..7E20974089E.J4 8.7-7 . . 7F39088 0254 ./7.J/030.4 !80:/4O/48O497..7F39088/02E8 8900774780574/:.J .4 $0.35../0:33207430.7E20974 08:35.7.3/403.9.4332074870..-.902E9.05708O32./..08 54746:034805:0/0.7.9.7435.0.:..:.84-7.:.077.05.:3.7E209743:4 #. 89.7.07/..3943...007..0.89.4308.7.3897:.$802570/0-090307:3.-0/0 .43897:J/..7-7- $008507..83.O3 .O3!....7-7 3$ .7.:9.-.7.83.20348:3.O3/0-0.45..4308.43/.089. .43!.O3 8900774780574/:...O3!.3897:.3897:.7 :3.E/4 02548 !..803..07 $008507.43/..O3!. .7 -03..:7.4389.43.O32950$0:3/0-033.:.4390307..08 08/0./03897:.7.-..0.780.-.O308. 02548 $.3943..7-7 .7/0:3442E8320748 80:/48547/485:3948 :04.:.802570/0-0.E:8:.:9..7. 80...7 0254 $0:3.:0:35.00.45. $008507.O3 .80./03897:.:03.45.. $008507.3897:.3/4.08 .7E20974 :497.43974 0254 !.O3..07 8.:03.O3 34.8.O3/0800. 3897:.-..84413/03897:..O36:03./07..3/403:3.. . $34 8.00. . 43/.7089007747805:0/030.7.7.9..O3. .!.0. . .E:8:.97.08 $008507. ..-.7.E:8:.42..44.381472.085.3943.$3403:3. 4389.7.-084.883 333805.3/48.4380..:0397.:9..8900774780574/:.7-7.0.3/48003.:./470320/4 0254 8.7.3908. . /47 8.1.9.7-7.42.:4507.. . 42.8. ./47 0397.9..1.:4507.07.. . 8/0-03.43..8.3/480:8.%4/.44.084.:.7704 0254 203843.34 8900774780574/:..7.0/0:3.084342-70 %4/48485747.. $342.7.4393:.7.4203././4 ..70.7704.4 $008507.E/4 :3/0391. ..43903/.05747.2./47 5.3897:.2.471:07..7-7../07.4308/0-03089.$34802570/0-0089.8 548.!74./0..!74..-7.5...8.8 /03974/05747.:3.9.O32038436:080:8O5..1.7.E:8:.2.424J3/./0.7/03974/0:3$ /04.4308/013/.-.44.0.74089E2..803. 8. $:-J3/..081:07.7.:3085.4397.O3:3342-70 ... . 8O4903000203948 .0.7704.