diff options
author | Hirokazu Takata <takata@linux-m32r.org> | 2005-07-07 17:59:32 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-07-07 18:24:11 -0700 |
commit | 316240f66a64c95e373d52dc401d882d77a594ee (patch) | |
tree | 1d04cba74cd2455bb6b886ed4b85b7bbb73b8544 | |
parent | e34ac862ee6644378bfe6ea65c2e0dda4545513d (diff) |
[PATCH] m32r: framebuffer device support
This patch is for supporting Epson s1d13xxx framebuffer device for m32r. #
Sorry, a little bigger.
The Epson s1d13806 is already supported by 2.6.12 kernel, and its driver is
placed as drivers/video/s1d13xxxfb.c.
For the m32r, a header file include/asm-m32r/s1d13806.h was prepared for
several m32r target platforms. It was originally generated by an Epson
tool S1D13806CFG.EXE, and modified manually for the m32r platforms.
Signed-off-by: Hayato Fujiwara <fujiwara@linux-m32r.org>
Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | arch/m32r/kernel/setup_m32700ut.c | 55 | ||||
-rw-r--r-- | arch/m32r/kernel/setup_mappi.c | 51 | ||||
-rw-r--r-- | arch/m32r/kernel/setup_mappi2.c | 4 | ||||
-rw-r--r-- | arch/m32r/kernel/setup_mappi3.c | 52 | ||||
-rw-r--r-- | arch/m32r/kernel/setup_oaks32r.c | 5 | ||||
-rw-r--r-- | arch/m32r/kernel/setup_opsput.c | 53 | ||||
-rw-r--r-- | drivers/video/logo/Kconfig | 5 | ||||
-rw-r--r-- | drivers/video/logo/Makefile | 1 | ||||
-rw-r--r-- | drivers/video/logo/logo.c | 5 | ||||
-rw-r--r-- | drivers/video/logo/logo_m32r_clut224.ppm | 1292 | ||||
-rw-r--r-- | drivers/video/s1d13xxxfb.c | 10 | ||||
-rw-r--r-- | include/asm-m32r/s1d13806.h | 199 |
12 files changed, 1716 insertions, 16 deletions
diff --git a/arch/m32r/kernel/setup_m32700ut.c b/arch/m32r/kernel/setup_m32700ut.c index b014e2c1e52..a146b24a556 100644 --- a/arch/m32r/kernel/setup_m32700ut.c +++ b/arch/m32r/kernel/setup_m32700ut.c @@ -3,8 +3,8 @@ * * Setup routines for Renesas M32700UT Board * - * Copyright (c) 2002 Hiroyuki Kondo, Hirokazu Takata, - * Hitoshi Yamamoto, Takeo Takahashi + * Copyright (c) 2002-2005 Hiroyuki Kondo, Hirokazu Takata, + * Hitoshi Yamamoto, Takeo Takahashi * * This file is subject to the terms and conditions of the GNU General * Public License. See the file "COPYING" in the main directory of this @@ -435,7 +435,7 @@ void __init init_IRQ(void) icu_data[M32R_IRQ_INT2].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD01; enable_m32700ut_irq(M32R_IRQ_INT2); -//#if defined(CONFIG_VIDEO_M32R_AR) +#if defined(CONFIG_VIDEO_M32R_AR) /* * INT3# is used for AR */ @@ -445,9 +445,11 @@ void __init init_IRQ(void) irq_desc[M32R_IRQ_INT3].depth = 1; icu_data[M32R_IRQ_INT3].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10; disable_m32700ut_irq(M32R_IRQ_INT3); -//#endif /* CONFIG_VIDEO_M32R_AR */ +#endif /* CONFIG_VIDEO_M32R_AR */ } +#if defined(CONFIG_SMC91X) + #define LAN_IOSTART 0x300 #define LAN_IOEND 0x320 static struct resource smc91x_resources[] = { @@ -469,10 +471,55 @@ static struct platform_device smc91x_device = { .num_resources = ARRAY_SIZE(smc91x_resources), .resource = smc91x_resources, }; +#endif + +#if defined(CONFIG_FB_S1D13XXX) + +#include <video/s1d13xxxfb.h> +#include <asm/s1d13806.h> + +static struct s1d13xxxfb_pdata s1d13xxxfb_data = { + .initregs = s1d13xxxfb_initregs, + .initregssize = ARRAY_SIZE(s1d13xxxfb_initregs), + .platform_init_video = NULL, +#ifdef CONFIG_PM + .platform_suspend_video = NULL, + .platform_resume_video = NULL, +#endif +}; + +static struct resource s1d13xxxfb_resources[] = { + [0] = { + .start = 0x10600000UL, + .end = 0x1073FFFFUL, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = 0x10400000UL, + .end = 0x104001FFUL, + .flags = IORESOURCE_MEM, + } +}; + +static struct platform_device s1d13xxxfb_device = { + .name = S1D_DEVICENAME, + .id = 0, + .dev = { + .platform_data = &s1d13xxxfb_data, + }, + .num_resources = ARRAY_SIZE(s1d13xxxfb_resources), + .resource = s1d13xxxfb_resources, +}; +#endif static int __init platform_init(void) { +#if defined(CONFIG_SMC91X) platform_device_register(&smc91x_device); +#endif +#if defined(CONFIG_FB_S1D13XXX) + platform_device_register(&s1d13xxxfb_device); +#endif return 0; } arch_initcall(platform_init); diff --git a/arch/m32r/kernel/setup_mappi.c b/arch/m32r/kernel/setup_mappi.c index aaf8e569b93..4e709809efc 100644 --- a/arch/m32r/kernel/setup_mappi.c +++ b/arch/m32r/kernel/setup_mappi.c @@ -3,14 +3,15 @@ * * Setup routines for Renesas MAPPI Board * - * Copyright (c) 2001, 2002 Hiroyuki Kondo, Hirokazu Takata, - * Hitoshi Yamamoto + * Copyright (c) 2001-2005 Hiroyuki Kondo, Hirokazu Takata, + * Hitoshi Yamamoto */ #include <linux/config.h> #include <linux/irq.h> #include <linux/kernel.h> #include <linux/init.h> +#include <linux/device.h> #include <asm/system.h> #include <asm/m32r.h> @@ -158,3 +159,49 @@ void __init init_IRQ(void) disable_mappi_irq(M32R_IRQ_INT2); #endif /* CONFIG_M32RPCC */ } + +#if defined(CONFIG_FB_S1D13XXX) + +#include <video/s1d13xxxfb.h> +#include <asm/s1d13806.h> + +static struct s1d13xxxfb_pdata s1d13xxxfb_data = { + .initregs = s1d13xxxfb_initregs, + .initregssize = ARRAY_SIZE(s1d13xxxfb_initregs), + .platform_init_video = NULL, +#ifdef CONFIG_PM + .platform_suspend_video = NULL, + .platform_resume_video = NULL, +#endif +}; + +static struct resource s1d13xxxfb_resources[] = { + [0] = { + .start = 0x10200000UL, + .end = 0x1033FFFFUL, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = 0x10000000UL, + .end = 0x100001FFUL, + .flags = IORESOURCE_MEM, + } +}; + +static struct platform_device s1d13xxxfb_device = { + .name = S1D_DEVICENAME, + .id = 0, + .dev = { + .platform_data = &s1d13xxxfb_data, + }, + .num_resources = ARRAY_SIZE(s1d13xxxfb_resources), + .resource = s1d13xxxfb_resources, +}; + +static int __init platform_init(void) +{ + platform_device_register(&s1d13xxxfb_device); + return 0; +} +arch_initcall(platform_init); +#endif diff --git a/arch/m32r/kernel/setup_mappi2.c b/arch/m32r/kernel/setup_mappi2.c index 38d5e9a4142..a1d801598aa 100644 --- a/arch/m32r/kernel/setup_mappi2.c +++ b/arch/m32r/kernel/setup_mappi2.c @@ -3,8 +3,8 @@ * * Setup routines for Renesas MAPPI-II(M3A-ZA36) Board * - * Copyright (c) 2001, 2002 Hiroyuki Kondo, Hirokazu Takata, - * Hitoshi Yamamoto, Mamoru Sakugawa + * Copyright (c) 2001-2005 Hiroyuki Kondo, Hirokazu Takata, + * Hitoshi Yamamoto, Mamoru Sakugawa */ #include <linux/config.h> diff --git a/arch/m32r/kernel/setup_mappi3.c b/arch/m32r/kernel/setup_mappi3.c index 3d60a85aaec..a76412e883e 100644 --- a/arch/m32r/kernel/setup_mappi3.c +++ b/arch/m32r/kernel/setup_mappi3.c @@ -3,8 +3,8 @@ * * Setup routines for Renesas MAPPI-III(M3A-2170) Board * - * Copyright (c) 2001-2005 Hiroyuki Kondo, Hirokazu Takata, - * Hitoshi Yamamoto, Mamoru Sakugawa + * Copyright (c) 2001-2005 Hiroyuki Kondo, Hirokazu Takata, + * Hitoshi Yamamoto, Mamoru Sakugawa */ #include <linux/config.h> @@ -178,6 +178,8 @@ void __init init_IRQ(void) #endif /* CONFIG_M32R_CFC */ } +#if defined(CONFIG_SMC91X) + #define LAN_IOSTART 0x300 #define LAN_IOEND 0x320 static struct resource smc91x_resources[] = { @@ -200,9 +202,55 @@ static struct platform_device smc91x_device = { .resource = smc91x_resources, }; +#endif + +#if defined(CONFIG_FB_S1D13XXX) + +#include <video/s1d13xxxfb.h> +#include <asm/s1d13806.h> + +static struct s1d13xxxfb_pdata s1d13xxxfb_data = { + .initregs = s1d13xxxfb_initregs, + .initregssize = ARRAY_SIZE(s1d13xxxfb_initregs), + .platform_init_video = NULL, +#ifdef CONFIG_PM + .platform_suspend_video = NULL, + .platform_resume_video = NULL, +#endif +}; + +static struct resource s1d13xxxfb_resources[] = { + [0] = { + .start = 0x1d600000UL, + .end = 0x1d73FFFFUL, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = 0x1d400000UL, + .end = 0x1d4001FFUL, + .flags = IORESOURCE_MEM, + } +}; + +static struct platform_device s1d13xxxfb_device = { + .name = S1D_DEVICENAME, + .id = 0, + .dev = { + .platform_data = &s1d13xxxfb_data, + }, + .num_resources = ARRAY_SIZE(s1d13xxxfb_resources), + .resource = s1d13xxxfb_resources, +}; +#endif + static int __init platform_init(void) { +#if defined(CONFIG_SMC91X) platform_device_register(&smc91x_device); +#endif +#if defined(CONFIG_FB_S1D13XXX) + platform_device_register(&s1d13xxxfb_device); +#endif return 0; } arch_initcall(platform_init); diff --git a/arch/m32r/kernel/setup_oaks32r.c b/arch/m32r/kernel/setup_oaks32r.c index d656640badc..45add5b76f1 100644 --- a/arch/m32r/kernel/setup_oaks32r.c +++ b/arch/m32r/kernel/setup_oaks32r.c @@ -3,8 +3,8 @@ * * Setup routines for OAKS32R Board * - * Copyright (c) 2002-2004 Hiroyuki Kondo, Hirokazu Takata, - * Hitoshi Yamamoto, Mamoru Sakugawa + * Copyright (c) 2002-2005 Hiroyuki Kondo, Hirokazu Takata, + * Hitoshi Yamamoto, Mamoru Sakugawa */ #include <linux/config.h> @@ -139,5 +139,4 @@ void __init init_IRQ(void) icu_data[M32R_IRQ_SIO1_S].icucr = 0; disable_oaks32r_irq(M32R_IRQ_SIO1_S); #endif /* CONFIG_SERIAL_M32R_SIO */ - } diff --git a/arch/m32r/kernel/setup_opsput.c b/arch/m32r/kernel/setup_opsput.c index 86f4cf2a86c..f0301f58bcc 100644 --- a/arch/m32r/kernel/setup_opsput.c +++ b/arch/m32r/kernel/setup_opsput.c @@ -3,7 +3,7 @@ * * Setup routines for Renesas OPSPUT Board * - * Copyright (c) 2002-2004 + * Copyright (c) 2002-2005 * Hiroyuki Kondo, Hirokazu Takata, * Hitoshi Yamamoto, Takeo Takahashi, Mamoru Sakugawa * @@ -439,7 +439,7 @@ void __init init_IRQ(void) icu_data[M32R_IRQ_INT2].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD01; enable_opsput_irq(M32R_IRQ_INT2); -//#if defined(CONFIG_VIDEO_M32R_AR) +#if defined(CONFIG_VIDEO_M32R_AR) /* * INT3# is used for AR */ @@ -449,9 +449,11 @@ void __init init_IRQ(void) irq_desc[M32R_IRQ_INT3].depth = 1; icu_data[M32R_IRQ_INT3].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10; disable_opsput_irq(M32R_IRQ_INT3); -//#endif /* CONFIG_VIDEO_M32R_AR */ +#endif /* CONFIG_VIDEO_M32R_AR */ } +#if defined(CONFIG_SMC91X) + #define LAN_IOSTART 0x300 #define LAN_IOEND 0x320 static struct resource smc91x_resources[] = { @@ -473,10 +475,55 @@ static struct platform_device smc91x_device = { .num_resources = ARRAY_SIZE(smc91x_resources), .resource = smc91x_resources, }; +#endif + +#if defined(CONFIG_FB_S1D13XXX) + +#include <video/s1d13xxxfb.h> +#include <asm/s1d13806.h> + +static struct s1d13xxxfb_pdata s1d13xxxfb_data = { + .initregs = s1d13xxxfb_initregs, + .initregssize = ARRAY_SIZE(s1d13xxxfb_initregs), + .platform_init_video = NULL, +#ifdef CONFIG_PM + .platform_suspend_video = NULL, + .platform_resume_video = NULL, +#endif +}; + +static struct resource s1d13xxxfb_resources[] = { + [0] = { + .start = 0x10600000UL, + .end = 0x1073FFFFUL, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = 0x10400000UL, + .end = 0x104001FFUL, + .flags = IORESOURCE_MEM, + } +}; + +static struct platform_device s1d13xxxfb_device = { + .name = S1D_DEVICENAME, + .id = 0, + .dev = { + .platform_data = &s1d13xxxfb_data, + }, + .num_resources = ARRAY_SIZE(s1d13xxxfb_resources), + .resource = s1d13xxxfb_resources, +}; +#endif static int __init platform_init(void) { +#if defined(CONFIG_SMC91X) platform_device_register(&smc91x_device); +#endif +#if defined(CONFIG_FB_S1D13XXX) + platform_device_register(&s1d13xxxfb_device); +#endif return 0; } arch_initcall(platform_init); diff --git a/drivers/video/logo/Kconfig b/drivers/video/logo/Kconfig index 6ba10e3acef..3e9ccf370ab 100644 --- a/drivers/video/logo/Kconfig +++ b/drivers/video/logo/Kconfig @@ -63,5 +63,10 @@ config LOGO_SUPERH_CLUT224 depends on LOGO && SUPERH default y +config LOGO_M32R_CLUT224 + bool "224-color M32R Linux logo" + depends on LOGO && M32R + default y + endmenu diff --git a/drivers/video/logo/Makefile b/drivers/video/logo/Makefile index b0d995020bd..d0244c04af5 100644 --- a/drivers/video/logo/Makefile +++ b/drivers/video/logo/Makefile @@ -12,6 +12,7 @@ obj-$(CONFIG_LOGO_SUN_CLUT224) += logo_sun_clut224.o obj-$(CONFIG_LOGO_SUPERH_MONO) += logo_superh_mono.o obj-$(CONFIG_LOGO_SUPERH_VGA16) += logo_superh_vga16.o obj-$(CONFIG_LOGO_SUPERH_CLUT224) += logo_superh_clut224.o +obj-$(CONFIG_LOGO_M32R_CLUT224) += logo_m32r_clut224.o # How to generate logo's diff --git a/drivers/video/logo/logo.c b/drivers/video/logo/logo.c index 77b62207500..788fa812c87 100644 --- a/drivers/video/logo/logo.c +++ b/drivers/video/logo/logo.c @@ -33,6 +33,7 @@ extern const struct linux_logo logo_sun_clut224; extern const struct linux_logo logo_superh_mono; extern const struct linux_logo logo_superh_vga16; extern const struct linux_logo logo_superh_clut224; +extern const struct linux_logo logo_m32r_clut224; const struct linux_logo *fb_find_logo(int depth) @@ -97,6 +98,10 @@ const struct linux_logo *fb_find_logo(int depth) /* SuperH Linux logo */ logo = &logo_superh_clut224; #endif +#ifdef CONFIG_LOGO_M32R_CLUT224 + /* M32R Linux logo */ + logo = &logo_m32r_clut224; +#endif } return logo; } diff --git a/drivers/video/logo/logo_m32r_clut224.ppm b/drivers/video/logo/logo_m32r_clut224.ppm new file mode 100644 index 00000000000..8b2983c5a0b --- /dev/null +++ b/drivers/video/logo/logo_m32r_clut224.ppm @@ -0,0 +1,1292 @@ +P3 +# CREATOR: The GIMP's PNM Filter Version 1.0 +# +# Note: how to convert ppm to pnm(ascii). +# $ convert -posterize 224 m32r.ppm - | pnm2asc -f5 >logo_m32r_clut224.ppm +# +# convert - imagemagick: /usr/bin/convert +# pnm2asc - pnm to ascii-pnm format converter +# http://www.is.aist.go.jp/etlcdb/util/p2a.htm#English + +80 80 +255 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 2 2 3 2 2 3 2 2 3 2 2 3 2 2 3 + 2 2 3 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 2 2 3 2 2 3 + 2 2 3 2 2 3 2 2 3 2 2 3 2 2 3 + 2 2 3 2 2 3 2 2 3 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 2 2 3 2 2 3 2 2 3 2 2 3 + 2 2 3 2 2 3 2 2 3 2 2 3 2 2 3 + 2 2 3 2 2 3 2 2 3 2 2 3 2 2 3 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 2 2 3 2 2 3 2 2 3 2 2 3 + 2 2 3 2 2 3 2 2 3 2 2 3 2 2 3 + 2 2 3 43 43 43 75 75 75 27 27 27 2 2 3 + 2 2 3 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 2 2 3 2 2 3 2 2 3 2 2 3 2 2 3 + 2 2 3 2 2 3 2 2 3 2 2 3 2 2 3 + 2 2 3 59 59 59 123 123 123 67 67 67 27 27 27 + 2 2 3 2 2 3 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 2 2 3 2 2 3 2 2 3 2 2 3 2 2 3 + 2 2 3 2 2 3 2 2 3 2 2 3 2 2 3 + 10 6 3 59 59 59 80 80 80 43 43 43 27 27 27 + 2 2 3 2 2 3 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 2 2 3 + 2 2 3 2 2 3 2 2 3 2 2 3 2 2 3 + 2 2 3 2 2 3 2 2 3 2 2 3 2 2 3 + 2 2 3 19 19 19 2 2 3 2 2 3 2 2 3 + 2 2 3 2 2 3 2 2 3 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 2 2 3 + 2 2 3 2 2 3 2 2 3 2 2 3 2 2 3 + 2 2 3 2 2 3 2 2 3 2 2 3 2 2 3 + 2 2 3 2 2 3 2 2 3 2 2 3 2 2 3 + 2 2 3 2 2 3 2 2 3 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 2 2 3 + 2 2 3 2 2 3 10 6 3 10 6 3 2 2 3 + 2 2 3 2 2 3 2 2 3 2 2 3 2 2 3 + 10 6 3 11 11 11 11 11 11 2 2 3 2 2 3 + 2 2 3 2 2 3 2 2 3 2 2 3 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 2 2 3 + 2 2 3 2 2 3 2 2 3 27 27 27 10 6 3 + 2 2 3 2 2 3 2 2 3 2 2 3 2 2 3 + 19 19 19 2 2 3 2 2 3 51 51 51 2 2 3 + 2 2 3 2 2 3 2 2 3 2 2 3 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 2 2 3 + 2 2 3 123 123 123 196 196 196 115 115 115 2 2 3 + 2 2 3 2 2 3 2 2 3 75 75 75 141 141 140 + 172 172 172 196 196 196 190 189 188 2 2 3 11 11 11 + 2 2 3 2 2 3 2 2 3 2 2 3 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 2 2 3 + 27 27 27 164 164 164 228 228 228 221 221 220 10 6 3 + 2 2 3 2 2 3 2 2 3 172 172 172 245 245 245 + 254 254 252 254 254 252 221 221 220 35 35 35 2 2 3 + 2 2 3 2 2 3 2 2 3 2 2 3 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 2 2 3 + 164 164 164 228 228 228 35 35 35 236 236 236 236 236 236 + 2 2 3 11 11 11 2 2 3 254 254 252 245 245 245 + 2 2 3 75 75 75 245 245 245 245 245 245 2 2 3 + 2 2 3 2 2 3 2 2 3 2 2 3 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 2 2 3 + 212 212 212 2 2 3 51 51 51 11 11 11 245 245 245 + 27 27 27 80 80 80 10 6 3 254 254 252 2 2 3 + 2 2 3 91 91 91 19 19 19 254 254 252 2 2 3 + 2 2 3 2 2 3 2 2 3 2 2 3 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 2 2 3 + 196 196 196 10 6 3 2 2 3 11 11 11 107 107 107 + 49 35 5 57 42 11 31 22 3 236 236 236 2 2 3 + 2 2 3 2 2 3 2 2 3 254 254 252 2 2 3 + 2 2 3 2 2 3 2 2 3 2 2 3 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 215 150 13 215 150 13 + 215 150 13 215 150 13 215 150 13 2 |