Análisis de Experto
Experto verificado
Análisis general del producto
Llevo años trabajando con escapes para BMW y el X7 G07 es un vehículo que presenta un reto interesante: estamos ante un SUV grande y pesado que, con su motor B58 de 3.0 litros turbo, tiene potencial para sonar de maravilla si se le drena correctamente. El sistema WRAX Race Car-grade catback que he tenido oportunidad de instalar en varios X7 de clientes cumple con creces en este aspecto.
Lo primero que hay que decir es que este escape no pretende convertir tu X7 en un coche de carreras. Eso sería absurdo. Lo que busca —y consigue— es dotar a este mastodonte de un carácter más emocional sin sacrificar la practicidad diaria. La válvula remota inalámbrica es el corazón del sistema, permitiéndote alternar entre dos personalidades bien diferenciadas con solo pulsar un botón.
Calidad de fabricación y materiales
El acero inoxidable SS304 empleado en toda la línea de escape es de calidad notable. He visto sistemas similares que escatiman en el grosor de pared del tubo, lo que acaba generando vibraciones y resonancias indeseadas con el tiempo. Aquí no es el caso. Las paredes tienen un calibre suficiente para soportar las temperaturas de trabajo sin deformarse, y el acabado pulido aguanta bien la exposición a laintemperie y los agentes corrosivos.
Las soldaduras TIG son otro punto a favor. Se nota que hay un control de calidad detrás: los cordones de soldadura están limpios, sin salpicaduras ni irregularidades que puedan causar turbulencias internas. En un escape, una soldadura defectuosa no solo es un problema estético, sino que puede generar restricciones en el flujo de gases o, peor aún, fugas de gases de escape hacia el habitáculo.
Los silenciosos tienen un peso contenido pero ofrecen un buen nivel de amortiguación acústica. No son escapes vacíos que solo buscan hacer ruido, sino que hay ingeniería detrás para conseguir un tono equilibrado.
Montaje y compatibilidad
Aquí es donde este sistema brilla con luz propia para el instalador. La conexión es 100% bolt-on, sin necesidad de adaptar nada. Los puntos de fijación originales del X7 encajan perfectamente con los soportes del sistema WRAX. Los aros de goma que sujetan el escape al chasis son del diámetro correcto y no hay que improvisar nada.
Dicho esto, debo advertir un detalle importante: aunque el fabricante indica que la instalación se puede hacer en un par de horas, eso es optimista si no tienes experiencia. Un profesional con las herramientas adecuadas y conocimiento del modelo tardará unas dos horas y media o tres, incluyendo la conexión del módulo de la válvula y la programación del mando. Para alguien que lo haga por primera vez, cuenta con cuatro horas tranquilamente.
Un consejo práctico: antes de instalar los silenciosos, asegúrate de que los aros de goma estén en buen estado. Si el escape original lleva muchos kilómetros, estos soportes pueden estar degradados. Cámbialos sin dudarlo; el coste es mínimo y evitarás vibraciones futuras.
Rendimiento y resultado final
El sonido en válvula abierta es lo que más impresiona. El B58 del X7 tiene un carácter bastante contenido de fábrica, pero con este escape suena profundo y con cuerpo, especialmente entre 2500 y 4500 revoluciones. No es un rugido estridente que te obligue a gritar para hablar con el copiloto, sino un ronroneo deportivo que teput put put put put putputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputputput












