elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


  Mostrar Temas
Páginas: 1 [2] 3 4
11  Media / Juegos y Consolas / ¿Cómo le pongo música al Need for Speed - UnderGround 2? en: 17 Noviembre 2007, 22:03 pm
Me pregunta mi hermano que, cómo le puede poner música propia al Need for Speed - UnderGround 2?

Es decir, que cuando este conduciendo y tal suene algun mp3 que le indiquemos y no las emisoras que trae.

Nada solo eso... y no he pillado nada en el Google.

Un saludo!
12  Programación / PHP / session_start(): Cannot send session cache limiter - headers already sent en: 6 Noviembre 2007, 17:30 pm
Hola...

Me gustaría que alguien me aclarara el siguiente error que me saca un programa que estoy haciendo en PHP:

Código:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\manuel\index.php:1) in C:\xampp\htdocs\manuel\index.php on line 3

Cierto es que si buscas en Google encuentras cientas de páginas donde ya se ha tratado el tema. Incluso aquí mismo se ha tratado... pero antes de que digan cualquier cosa, me gustaría que se fijen en el código que tengo:

El archivo es index.php, y solo tiene:

Código
  1. <?php
  2. session_name("inmobiliaria");
  3. include("funciones.php");
  4. ?>

Ahí me saca el error. Lo más HIJUEPUTA de todo (perdonen la expresión pero estoy demasiado molesto), es que tengo otro archivo con lo mismo, y no arroja el error:

El otro archivo es temp.php y tiene lo mismo:

Código
  1. <?php
  2. session_name("inmobiliaria");
  3. include("funciones.php");
  4. ?>

Ahora me pregunto... ¿cómo putas es posible que si son iguales los archivos, en uno saque error y en el otro no?

Gracias por leer.
13  Media / Juegos y Consolas / ¿Cómo se llama este juego? en: 11 Octubre 2007, 21:14 pm
Haber... la cosa es que necesito encontrar un juego que jugué (valga la redundancia) cuando era pequeño. Lo jugaba en esas máquinitas tipo NEO-GEO. De seguro alguno de ustedes lo ha jugado alguna vez... paso a explicarles lo que recuerda mi mente borrosa:

  • Era en máquinas tipo NEO-GEO, de esas que les echas moneda y hasta que te maten tienes que volver a echar.
  • Era de ese tipo de juegos en los que uno puede mover los personajes hacia adelante, atrás, arriba, abajo.
  • ¿Recuerdan un juego en el que uno iba avanzando y tenía que pegarles a unos "malechores" y a veces a unos dinosaurios? Pues ese no es, pero es uno parecido.
  • Solo se podían escoger 2 personajes (hombres). Uno de ellos se parece a un personaje que aparece en el juego de Spiderman I, de Play Station. Ese personaje tiene un traje negro, señido al cuerpo, y con una cadavera dibujada en el pecho.
  • Uno avanzaba con los personajes, le pegaba a los "malos", podía coger armas (palos, botellas, un lanza llamas, etc.), cogía sangre (por lo genreal eran pollos asados en el suelo).
  • Recuerdo que en el último nivel, aparecía un gordo enorme de traje blanco.
  • Además, al presionar tres o cuatro botones al mismo tiempo, el presonaje hacía una jugada especial (girando), pegándole a los que estuvieran a su al rededor (pero creo que quitaba sangre).

Nada, solo recuerdo eso. Si alguien me puede decir como se llama, se lo agradecería mucho.

Un saludo!
14  Programación / PHP / Problemas con cURL y páginas con redirección en: 22 Agosto 2007, 00:26 am
Hola a todos,

Les comento mi problema... tengo el siguiente código fuente, que me sirve para capturar el código una página web en un archivo de texto:

Código
  1. <?php
  2. $url=$HTTP_GET_VARS["u"];
  3. if($url!=null)
  4. {
  5. $url=ereg_replace("aquivaunputoampersand", "&", $url);
  6. $ch = curl_init();
  7. $fp = fopen ("archivo.txt", "w");
  8. curl_setopt($ch, CURLOPT_URL, $url);
  9. curl_setopt ($ch, CURLOPT_FILE, $fp);
  10. curl_setopt ($ch, CURLOPT_HEADER, 0);
  11. curl_exec ($ch);
  12. curl_close ($ch);
  13. fclose ($fp);
  14. $gestor = @fopen("archivo.txt", "r");
  15. if ($gestor) {
  16.    while (!feof($gestor)) {
  17.        $bufer .= fgets($gestor, 4096);
  18.    }
  19.    fclose ($gestor);
  20. }
  21. }
  22. ?>

Se usa de la siguiente forma, por ejemplo:

Código:
http://www.pagina.com/programa.php?u=http://www.google.com.co

El programa funciona bien con páginas simples (como en el ejemplo anterior), pero en páginas que hagan una redirección no es posible obtener el código fuente , como por ejemplo en esta:

Código
  1. <?
  2. header('Location: http://www.google.com.co');
  3. ?>

¿existe alguna manera de obtener el código fuente de la página? Obvianmente no el código fuente de esa página, sino de la página a la cual es redireccionada.

Un saludo!!!
15  Programación / Scripting / Ayuda con este script (JaSiLDBG). [XMLHttpRequest.open] en: 8 Enero 2007, 21:41 pm
Umm, estoy intentando hacer unas operaciones con javascript, y resulta que al intentar esto:

Código:
javascript:if(!window.ActiveXObject){ActiveXObject=XMLHttpRequest;}var cxx=new ActiveXObject("Microsoft.XMLHTTP");cxx.open('GET',"http://www.google.com",false);var a=cxx.responseText;

Me sale este error:

Código:
Error: uncaught exception: Permiso denegado al llamar al método XMLHttpRequest.open

Solo me funciona si lo hago con servidores locales, pero con servidores externos no.

@Sdc: Me basé en aquel proyecto que hizo un mono (el que murió con el rayo)...
16  Programación / Java / Cómo crear interfaces gráficas con Look And Feel en Java en: 7 Noviembre 2006, 18:12 pm
Cómo crear interfaces gráficas con Look And Feel en Java

Java posee una API (Interfaz para porgramación de Aplicaciones) que es la encargada de manipular las interfaces gráficas hechas con Swing. Esta nos permite crear GUI's realmente bonitas. Pero primero necesitamos tener unos conceptos claros, como por ejemplo que es Swing y eso del Java look and feel (llamado a veces "Metal").

Los componentes de Swing están escritos en Java, sin ningún código de especificación de ventanas. Esto facilita la creación de interfaces gráficas sin tomar en cuenta el sistema de graficación de ventanas donde se trabaje, y simplificando el desarrollo de aplicaciones. Swing además soporta una arquitectura de visualización (Look And Feel). Ésta caracterí­stica dota a los usuarios con la habilidad de cambiar la apariencia de una aplicación sin reiniciarla y sin que el desarrollador se tenga que cambiar por completo su conjunto de subclases.

Java Look And Feel (de ahora en adelante J&F) es un API multiplataforma proporcionada por JavaSoft. Voy a ser breve, así­ que si necesitas información especí­fica puedes buscar en san google.
Java L&F implementa todas las funcionalidades básicas de Swing, pero tambén se extiende en otras áreas incluyendo:

  • Temas
  • Sliders (barras de selección de rangos)
  • Toolbars (Barras de herramientas)
  • Trees (arboles de contenido)
Ahora, y para ver de que estamos hablando vamos a tomar como ejemplo un programa hecho por los maestros del L&F: Michael Albers, Tom Santos, Jeff Shapiro y Steve Wilson.

El programa lo puedes encontrar en los demos que se encuentran en los JSDK. Vas a donde tienes instalado el SDK de Java y buscas la carpeta demo/jfc/Metalworks, allí­ encontrarás la aplicación que vamos a tomar como objeto de ejemplo.

Para ejecutar el programa que ya está compilado (Metalworks.jar), digitas desde una shell:

java -jar Metalworks.jar

Y lo que veras es un programa como este (ten en cuenta que según tu versión del SDK el programa puede cambiar o no estar; yo utilizo el J2SDK 1.5):


Como puedes observar es una interfaz gráfica realmente bonita y llamativa. Aunque es la que viene por defecto con el L&F en su versión 5. Puedes jugar con este programita que te dará más de una sorpresa agradable. Por ejemplo vas al menú Theme y seleccionas el que quieras, veras cosas como estas:


La interfaz de usuario cambia de aspecto sin necesidad de recompilar o reiniciar la aplicación, es decir, cambia en tiempo de ejecución. Pero lo que nosotros queremos es saber como hacer esto, veámos:


Creando un JFrame con el Look And Feel activado

Esto es muy sencillo de hacer. Lo único que tenemos que hacer es activar el Look And Feel, pasando true como parámetro al método estático setDefaultLookAndFeelDecorated de JFrame y de JDialog. Por ej.:

Código:
//Ejemplo1Look .java
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class Ejemplo1Look extends JFrame
{
   public Ejemplo1Look()
   {
      super("Ejemplo 1");
      JButton boton = new JButton("Mostrar dialogo");
      boton.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
               JOptionPane.showMessageDialog(null,
               "Y así­ se ve un cuadro de dialogo de error",
               "Mensaje",JOptionPane.ERROR_MESSAGE);
            }
         }
      );
      getContentPane().add(new JLabel("Asi se ve un Frame"),
         BorderLayout.NORTH);
      getContentPane().add(boton);
      setSize(200,80);
      setVisible(true);
   }
   public static void main(String args[])
   {
      JFrame.setDefaultLookAndFeelDecorated(true);
      JDialog.setDefaultLookAndFeelDecorated(true);
      Ejemplo1Look ventana = new Ejemplo1Look();
      ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   }
}


Este programa tiene la siguiente salida:



Creando estilos visuales a partir de archivos de texto plano

Este es uno de los tantos métodos para crear estilos o temas y consiste en crear un archivo de texto plano, que contendrá la configuración de visualización. Un ejemplo sencillo puede ser este:

Código:
#Aquí­ puedes colocar comentarios
name=Payaso
primary1=200,0,66
primary2=0,0,255
primary3=0,255,0
secondary1=255,255,0
secondary2=0,255,255
secondary3=255,0,255
black=255,255,200
white=25,80,150

Puedes usar comentarios para documentar el tema; estos deben comenzar con el sí­mbolo numeral (#). Y la sintaxis del tema es nombreEtiqueta=valor. Vamos a ver que significa cada etiqueta:

name=Payaso indica que el tema se llama Payaso.
primary1=200,0,66 es el color del borde externo
primary2=0,0,255 es el color del borde interno y el foco
primary3=0,255,0 es el color de la barra de titulo
secondary1=255,255,0 color del borde de los botones, labels, etc
secondary2=0,255,255 color de los botones al estar presionados
secondary3=255,0,255 color de fondo de los botones, labels, etc
black=255,255,200 color de las letras sobre las cajas de texto, etc
white=25,80,150 color del fondo de las cajas de texto, areas, etc

El programa que utiliza este archivo de estilo es:

Código:
//Ejemplo2Look .java
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.io.*;
import javax.swing.plaf.metal.*;
public class Ejemplo2Look extends JFrame
{
   public Ejemplo2Look()
   {
      super("Ejemplo 2");
      JButton boton = new JButton("Cargar tema");
      boton.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
               cargarTema();
            }
         }
      );
      getContentPane().add(boton);
      getContentPane().add(new JLabel("Así­ se ven las labels"), BorderLayout.NORTH);
      getContentPane().add(new JTextField("Y así­ las cajas de texto"), BorderLayout.SOUTH);
      getContentPane().add(new JScrollPane(new JTextArea("Area de texto")), BorderLayout.WEST);
      getContentPane().add(new JSlider(SwingConstants.VERTICAL, 0, 200, 10 ),  BorderLayout.EAST);
      setSize(400,200);
      UIManager.addPropertyChangeListener(new UISwitchListener((JComponent)getRootPane()));
      setVisible(true);
   }
   public void cargarTema()
   {
      MetalTheme miTema = null;
      try{
         InputStream flujoEntrada = getClass().getResourceAsStream("Tema.theme");
         miTema =  new PropertiesMetalTheme(flujoEntrada);
      }catch(NullPointerException npe) {System.out.println(npe);}
      MetalLookAndFeel.setCurrentTheme(miTema);
      try{
         UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
      }catch (Exception ex){
         System.out.println("Falló la carga del tema");
         System.out.println(ex);
      }
   }
   public static void main(String args[])
   {
      UIManager.put("swing.boldMetal", Boolean.FALSE);
      JFrame.setDefaultLookAndFeelDecorated(true);
      JDialog.setDefaultLookAndFeelDecorated(true);
      Toolkit.getDefaultToolkit().setDynamicLayout(true);
      System.setProperty("sun.awt.noerasebackground","true");
      try{
         UIManager.setLookAndFeel(new MetalLookAndFeel());
      }catch ( UnsupportedLookAndFeelException e ){
         System.out.println ("Metal Look & Feel no es soportada en esta plataforma");
         System.exit(0);
      }
      Ejemplo2Look ventana = new Ejemplo2Look();
      ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   }
}

Esta es la salida del programa, y sí­, ya se que es horrible, pero es la única forma de mostrar bien para que es cada etiqueta:


Ahora, antes que se me olvide, tengo que aclarar algo. Para que el programa funcione perfectamente tenemos que usar dos programas creados por el maestro Steve Wilson: PropertiesMetalTheme.java y UISwitchListener.java.

PropertiesMetalTheme, es una clase que crea un flujo hacia el archivo de texto que contenga la configuración del tema, y carga las propiedades que se encuentren allí­. No voy a explicar en detalle el funcionamiento de esta clase ya que eso está fuera de los lí­mites de este artí­culo, y además es muy fácil de comprender.

UISwitchListener, es una clase que permite cambiar la interfaz de usuario en tiempo de ejecución, sin problemas inesperados.


Creando estilos visuales simples a partir de clases

Bueno, ahora vamos a ver una manera de crear estilos visuales a partir de un programa (una clase) hecho en Java. El primer programa que vamos a tomar como ejemplo es EstiloHalloween.java:

Código:
//Ejemplo simple de tema en clase
//EstiloHalloween .java
import javax.swing.plaf.*;
import javax.swing.plaf.metal.*;
import javax.swing.*;
public class EstiloHalloween extends DefaultMetalTheme
{
   public String getName() { return "Halloween"; }
   
   private final ColorUIResource primary1 = new ColorUIResource(204, 102, 0);
   private final ColorUIResource primary2 = new ColorUIResource(255, 0, 0);
   private final ColorUIResource primary3 = new ColorUIResource(255, 204,102);
   
   protected ColorUIResource getPrimary1() { return primary1; }
   protected ColorUIResource getPrimary2() { return primary2; }
   protected ColorUIResource getPrimary3() { return primary3; }
}

Como ven todo es muy fácil; simplemente declaramos una clase que herede de DefaultMetalTheme, y creamos tres objetos de la clase ColorUIResource que sean privados (private) y constantes (final). Cada uno vá a simbolizar un color para la interfaz de usuario. Si no comprendes bien es porque no has leí­do lo de primary1, primary2, etc. allí­ arriba. Los objetos ColorUIResource los inicializamos con tres números separados por comas que representan un color en formato RGB.
Por último declaramos tres métodos protected que retornen el valor de los  objetos ColorUIResource.

El programa que utiliza la clase EstiloHalloween es:

Código:
// Ejemplo3Look .java
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.plaf.metal.*;
public class Ejemplo3Look extends JFrame
{
   public Ejemplo3Look()
   {
      super("Ejemplo 3 - Halloween");
      JButton boton = new JButton("Mostrar dialogo");
      boton.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
               JOptionPane.showMessageDialog(null,
               "Y así­­ se ve un cuadro de dialogo de alerta",
               "Mensaje",JOptionPane.WARNING_MESSAGE);
            }
         }
      );
      getContentPane().add(new JLabel("Asi se ve un Frame"), BorderLayout.NORTH);
      getContentPane().add(boton);
      setSize(200,80);
      setVisible(true);
   }
   public static void main(String args[])
   {
      MetalLookAndFeel.setCurrentTheme(new EstiloHalloween());
      try{
         UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
      } catch (Exception ex) {
         System.out.println("Falló la carga del tema");
         System.out.println(ex);
      }
      JFrame.setDefaultLookAndFeelDecorated(true);
      JDialog.setDefaultLookAndFeelDecorated(true);
      Ejemplo3Look ventana = new Ejemplo3Look();
      ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   }
}

Como puedes ver estamos utilizando únicamente los tres colores primarios para interfaces gráficas (primary1, primary2 y primary3). La salida del programa es:


Pero ahora vamos a ver un programa que utiliza todas las combinaciones de colores; la clase es EstiloHalloween2:

Código:
// EstiloHalloween2.java
import javax.swing.plaf.*;
import javax.swing.plaf.metal.*;
import javax.swing.*;
public class EstiloHalloween2 extends DefaultMetalTheme
{
   public String getName() { return "Halloween"; }
   
   private final ColorUIResource primary1 = new ColorUIResource(204, 102, 0);
   private final ColorUIResource primary2 = new ColorUIResource(255, 0, 0);
   private final ColorUIResource primary3 = new ColorUIResource(255, 204, 102);

   private final ColorUIResource secondary1 = new ColorUIResource( 111,  111,  111);
   private final ColorUIResource secondary2 = new ColorUIResource(255, 204, 102);
   private final ColorUIResource secondary3 = new ColorUIResource(204, 102, 0);

   private final ColorUIResource black = new ColorUIResource(255, 255, 255);
   private final ColorUIResource white = new ColorUIResource(0, 0, 0);

   protected ColorUIResource getPrimary1() { return primary1; }
   protected ColorUIResource getPrimary2() { return primary2; }
   protected ColorUIResource getPrimary3() { return primary3; }

   protected ColorUIResource getSecondary1() { return secondary1; }
   protected ColorUIResource getSecondary2() { return secondary2; }
   protected ColorUIResource getSecondary3() { return secondary3; }
   
   protected ColorUIResource getBlack() { return black; }
   protected ColorUIResource getWhite() { return white; }
}

No explico esta clase ya que tiene la misma escencia de la primera, solo que, aparte de utilizar primary1, primary2 y primary3, utiliza secondary1, secondary2 y secondary3, y el color de fondo de las cajas de texto (white) y de las letras (black).

La aplicación que utiliza la clase EstiloHalloween2 es esta:

Código:
// Ejemplo4Look .java
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.io.*;
import javax.swing.plaf.metal.*;
public class Ejemplo4Look extends JFrame
{
   public Ejemplo4Look()
   {
      super("Ejemplo 4 - Halloween");
      getContentPane().add(new JButton("Los botones XD"));
      getContentPane().add(new JLabel("Así­ se ven las labels"), BorderLayout.NORTH);
      getContentPane().add(new JTextField("Y así­ las cajas de texto"), BorderLayout.SOUTH);
      getContentPane().add(new JScrollPane(new JTextArea("Area de\ntexto")), BorderLayout.WEST);
      getContentPane().add(new JSlider(SwingConstants.VERTICAL, 0, 200, 10 ),  BorderLayout.EAST);
      setSize(400,200);
      setVisible(true);
   }
   public static void main(String args[])
   {
      MetalLookAndFeel.setCurrentTheme(new EstiloHalloween2());
      try{
         UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
      }catch (Exception ex){
         System.out.println("Falló la carga del tema");
         System.out.println(ex);
      }
      JFrame.setDefaultLookAndFeelDecorated(true);
      JDialog.setDefaultLookAndFeelDecorated(true);
      try{
         UIManager.setLookAndFeel(new MetalLookAndFeel());
      }catch ( UnsupportedLookAndFeelException e ){
         System.out.println ("Metal Look & Feel no es soportada en esta plataforma");
         System.exit(0);
      }
      Ejemplo4Look ventana = new Ejemplo4Look();
      ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   }
}

Esta es la apriencia del programa:


Y de nuevo: mil disculpas si se víé horrible, pero no soy diseíñador así­ que no me jodan XD.

Adjunto la versión en PDF
Y los ejercicios realizados (abajo)


Bien, espero que les haya gustado el artí­culo, y si estás buscando algo más avanzado puedes buscar entre la documentación en lí­nea de Java o en los demos del SDK. Y cualquier duda, sugerencia, insultos y demás, me pueden escribir al correo castidiablo@gmail.com, o por PM.

Umm, se me olvidaba algo: podeis hacer con el tuto lo que quieras: copias, modificaciones, ampliaciones, etc. ¿derechos de autor? mis polainas.

Saludos!!!
17  Seguridad Informática / Hacking / Sigo con proplemas [ettercap] en: 10 Octubre 2006, 21:30 pm

Pues el problema que supuestamente crei solucionado http://foro.elhacker.net/index.php/topic,142945.0.html aun sigue.

Resulta que efectivamente instalando el wincap desaparecen un monton de errores, pero solo si estás trabajando con Windows XP.

Pero si trabajo con Windows 2000 profesional, sigue apareceindo el mismo error.

Alguna sugerencia????
18  Informática / Software / Problema con mi quemadora... BOOOM!!!! Hijo de ... (ya se imaginarán) en: 29 Septiembre 2006, 01:44 am
Hola a todos...

Haber, ¿como empezar a desahogarme XD? Hace unos dias intenté quemar unas cosillas con el nero... pero aparecía un error todo extraño (algo así como DMA error - no recuerdo). Bien, pensé que era problema del cd.

Hoy con la misma quemadora borré un disco, y todo bien... pensé que ya no había problemas pero al momento de tratar de quemar sobre el mismo CD me sale el mismo error.

Así que decidí verificar si al menos servía para leer datos... y decidí hacer una copia del Ubuntu 6.06 LTS (original), meto el CD y comienza el proceso...... cuando depronto BOOOOOOM!!!!!!!!!!!!



No saben lo difícil que es obtener ese put0 cd de Ubuntu original aqui en Colombia.... maldita SEA!!!!!!!!


Las preguntas son.... ¿porqué pasó eso? ¿que es eso de DMA error? ¿como arreglo (destaparla y limpiarle los residuos) la quemadora yo mismo? Es que no tengo plata.

Saludos!!!
19  Programación / Scripting / Analizar el contenido de una página web con javascript en: 14 Septiembre 2006, 23:05 pm
Hola a todos...

Como puedo hacer en javascript para analizar el contenido de una página web que no sea el actual documento; me explico:

Por ejemplo tengo mi página http://mi.dominio.com/pagina1.htm y esta contiene una página común y corriente, pero necesito implementar en ella un código en javascript que pueda analizar otra página externa, por ej. http://otro.dominio.com/pagina2.html y pueda tener acceso a sus etiquetas y propiedades.

¿Es posible hacer esto?... ¿cómo?
20  Programación / .NET (C#, VB.NET, ASP) / Crear código nativo con Mono en: 26 Julio 2006, 19:36 pm

Si, ya sé que para crear codigo nativo se utiliza la bandera --aot. Al utilizar esto en linux en un archivo llamado programa.exe (por ejemplo), se crea un archivo llamado programa.exe.so. Pero vaya sorpresa me llevo, al darme cuenta que al intentar ejecutarlo me sale el siguiente error:


Código:
Violación de segmento

Pero, ¿què coñ0s es eso? Analicé el archivo con el comando file, y todo normal, el archivo programa.exe.so es un ELF de 32 bits. Inclusive, miré su código en assembler con el comando objdump, y parece estar bien.

Intenté probarlo en windows, y nisiquiera  puedo crear el archivo que estaría supuestamente en código nativo.

Espero vuestra ayuda....
Páginas: 1 [2] 3 4
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines