diff options
author | Bilal Akhtar <bilalakhtar@ubuntu.com> | 2011-05-03 10:34:47 +0530 |
---|---|---|
committer | Bilal Akhtar <bilalakhtar@ubuntu.com> | 2011-05-03 10:34:47 +0530 |
commit | 95ef69053691c5c731d0a6538de118ea52a3cd0a (patch) | |
tree | 60a79db75770323a8af7783831aad06f6aef0a01 /src/libaudgui | |
parent | 2debbc92898682dfe0c81f1ce4999175887ec922 (diff) |
Imported Upstream version 2.5.0
Diffstat (limited to 'src/libaudgui')
-rw-r--r-- | src/libaudgui/Makefile | 7 | ||||
-rw-r--r-- | src/libaudgui/audacious_logo.xpm | 454 | ||||
-rw-r--r-- | src/libaudgui/confirm.c | 36 | ||||
-rw-r--r-- | src/libaudgui/effects-menu.c | 21 | ||||
-rw-r--r-- | src/libaudgui/icons-stock.c | 27 | ||||
-rw-r--r-- | src/libaudgui/iface-menu.c | 8 | ||||
-rw-r--r-- | src/libaudgui/infopopup.c | 15 | ||||
-rw-r--r-- | src/libaudgui/infowin.c | 478 | ||||
-rw-r--r-- | src/libaudgui/libaudgui-gtk.h | 14 | ||||
-rw-r--r-- | src/libaudgui/libaudgui.h | 1 | ||||
-rw-r--r-- | src/libaudgui/library-store.c | 367 | ||||
-rwxr-xr-x | src/libaudgui/list.c | 758 | ||||
-rw-r--r-- | src/libaudgui/list.h | 61 | ||||
-rw-r--r-- | src/libaudgui/ui_about.c | 160 | ||||
-rw-r--r-- | src/libaudgui/ui_credits.c | 92 | ||||
-rw-r--r-- | src/libaudgui/ui_credits.h | 9 | ||||
-rwxr-xr-x[-rw-r--r--] | src/libaudgui/ui_fileopener.c | 4 | ||||
-rw-r--r-- | src/libaudgui/ui_gtk.c | 8 | ||||
-rw-r--r-- | src/libaudgui/ui_jumptotrack.c | 21 | ||||
-rw-r--r-- | src/libaudgui/ui_jumptotrack_cache.c | 9 | ||||
-rw-r--r-- | src/libaudgui/ui_playlist_manager.c | 205 | ||||
-rw-r--r-- | src/libaudgui/ui_regex.h | 39 | ||||
-rw-r--r-- | src/libaudgui/ui_urlopener.c | 7 | ||||
-rw-r--r-- | src/libaudgui/util.c | 117 |
24 files changed, 1275 insertions, 1643 deletions
diff --git a/src/libaudgui/Makefile b/src/libaudgui/Makefile index 448c353..cbf6678 100644 --- a/src/libaudgui/Makefile +++ b/src/libaudgui/Makefile @@ -9,7 +9,7 @@ SRCS = confirm.c \ infopopup.c \ infowin.c \ init.c \ - library-store.c \ + list.c \ ui_gtk.c \ ui_fileopener.c \ ui_urlopener.c \ @@ -23,14 +23,15 @@ SRCS = confirm.c \ util.c INCLUDES = libaudgui.h \ - libaudgui-gtk.h + libaudgui-gtk.h \ + list.h include ../../buildsys.mk include ../../extra.mk includesubdir = libaudgui -CPPFLAGS += -DHAVE_CONFIG_H ${LIB_CPPFLAGS} -I.. -I../.. ${GLIB_CFLASG} ${GTK_CFLAGS} ${DBUS_CFLAGS} ${LIBMCS_CFLAGS} ${AUDACIOUS_DEFINES} ${REGEX_CFLAGS} +CPPFLAGS += -DHAVE_CONFIG_H -I.. -I../.. ${GLIB_CFLASG} ${GTK_CFLAGS} ${DBUS_CFLAGS} ${LIBMCS_CFLAGS} ${AUDACIOUS_DEFINES} ${REGEX_CFLAGS} CFLAGS += -std=gnu99 ${LIB_CFLAGS} LDFLAGS += $(AUDLDFLAGS) LIBS += -lm ${GLIB_LIBS} ${MOWGLI_LIBS} ${GTK_LIBS} ${REGEX_LIBS} -L../libaudcore -laudcore diff --git a/src/libaudgui/audacious_logo.xpm b/src/libaudgui/audacious_logo.xpm deleted file mode 100644 index 4cacca2..0000000 --- a/src/libaudgui/audacious_logo.xpm +++ /dev/null @@ -1,454 +0,0 @@ -/* XPM */ -static char * audacious_logo_xpm[] = { -"488 200 251 2", -" c #FEFEFE", -". c #FDFDFD", -"+ c #FCFCFC", -"@ c #FBFBFB", -"# c #FAFAFA", -"$ c #F9F9F9", -"% c #F8F8F8", -"& c #F7F7F7", -"* c #F6F6F6", -"= c #F5F5F5", -"- c #F4F4F4", -"; c #F3F3F3", -"> c #F2F2F2", -", c #F1F1F1", -"' c #EFEFEF", -") c #EEEEEE", -"! c #EDEDED", -"~ c #ECECEC", -"{ c #EBEBEB", -"] c #F0F0F0", -"^ c #E9E9E9", -"/ c #E7E7E7", -"( c #E5E5E5", -"_ c #E4E4E4", -": c #E3E3E3", -"< c #E2E2E2", -"[ c #E1E1E1", -"} c #E0E0E0", -"| c #EAEAEA", -"1 c #E6E6E6", -"2 c #DFDFDF", -"3 c #DCDCDC", -"4 c #DADADA", -"5 c #D8D8D8", -"6 c #D6D6D6", -"7 c #D5D5D5", -"8 c #D4D4D4", -"9 c #D3D3D3", -"0 c #D7D7D7", -"a c #CFCFCF", -"b c #CCCCCC", -"c c #CACACA", -"d c #C8C8C8", -"e c #C6C6C6", -"f c #C5C5C5", -"g c #C4C4C4", -"h c #C3C3C3", -"i c #C2C2C2", -"j c #C7C7C7", -"k c #D1D1D1", -"l c #CBCBCB", -"m c #BFBFBF", -"n c #BCBCBC", -"o c #B8B8B8", -"p c #B5B5B5", -"q c #B4B4B4", -"r c #B1B1B1", -"s c #B0B0B0", -"t c #AFAFAF", -"u c #CDCDCD", -"v c #AEAEAE", -"w c #A9A9A9", -"x c #A4A4A4", -"y c #A2A2A2", -"z c #9F9F9F", -"A c #9C9C9C", -"B c #9B9B9B", -"C c #9A9A9A", -"D c #999999", -"E c #CECECE", -"F c #B7B7B7", -"G c #ADADAD", -"H c #A5A5A5", -"I c #9D9D9D", -"J c #969696", -"K c #919191", -"L c #8E8E8E", -"M c #8A8A8A", -"N c #888888", -"O c #878787", -"P c #868686", -"Q c #858585", -"R c #848484", -"S c #838383", -"T c #ABABAB", -"U c #959595", -"V c #8B8B8B", -"W c #7D7D7D", -"X c #797979", -"Y c #767676", -"Z c #727272", -"` c #717171", -" . c #707070", -".. c #6F6F6F", -"+. c #6D6D6D", -"@. c #757575", -"#. c #7C7C7C", -"$. c #C9C9C9", -"%. c #BBBBBB", -"&. c #929292", -"*. c #7B7B7B", -"=. c #6C6C6C", -"-. c #656565", -";. c #616161", -">. c #5E5E5E", -",. c #5C5C5C", -"'. c #5B5B5B", -"). c #5A5A5A", -"!. c #585858", -"~. c #575757", -"{. c #7A7A7A", -"]. c #D2D2D2", -"^. c #636363", -"/. c #555555", -"(. c #515151", -"_. c #4D4D4D", -":. c #4B4B4B", -"<. c #4A4A4A", -"[. c #494949", -"}. c #484848", -"|. c #474747", -"1. c #464646", -"2. c #505050", -"3. c #5F5F5F", -"4. c #545454", -"5. c #4C4C4C", -"6. c #454545", -"7. c #404040", -"8. c #3C3C3C", -"9. c #3B3B3B", -"0. c #3A3A3A", -"a. c #393939", -"b. c #383838", -"c. c #363636", -"d. c #353535", -"e. c #444444", -"f. c #BABABA", -"g. c #333333", -"h. c #2F2F2F", -"i. c #2D2D2D", -"j. c #2C2C2C", -"k. c #2B2B2B", -"l. c #2A2A2A", -"m. c #282828", -"n. c #7E7E7E", -"o. c #6B6B6B", -"p. c #262626", -"q. c #242424", -"r. c #222222", -"s. c #212121", -"t. c #202020", -"u. c #1E1E1E", -"v. c #1D1D1D", -"w. c #292929", -"x. c #373737", -"y. c #A1A1A1", -"z. c #8C8C8C", -"A. c #787878", -"B. c #666666", -"C. c #535353", -"D. c #303030", -"E. c #1B1B1B", -"F. c #191919", -"G. c #181818", -"H. c #171717", -"I. c #161616", -"J. c #151515", -"K. c #B3B3B3", -"L. c #898989", -"M. c #4E4E4E", -"N. c #3F3F3F", -"O. c #131313", -"P. c #121212", -"Q. c #111111", -"R. c #0F0F0F", -"S. c #0E0E0E", -"T. c #B2B2B2", -"U. c #737373", -"V. c #3D3D3D", -"W. c #313131", -"X. c #141414", -"Y. c #101010", -"Z. c #0C0C0C", -"`. c #0B0B0B", -" + c #272727", -".+ c #2E2E2E", -"++ c #1A1A1A", -"@+ c #0A0A0A", -"#+ c #080808", -"$+ c #070707", -"%+ c #090909", -"&+ c #060606", -"*+ c #050505", -"=+ c #0D0D0D", -"-+ c #040404", -";+ c #020202", -">+ c #010101", -",+ c #000000", -"'+ c #4F4F4F", -")+ c #C1C1C1", -"!+ c #A7A7A7", -"~+ c #696969", -"{+ c #D9D9D9", -"]+ c #808080", -"^+ c #979797", -"/+ c #B6B6B6", -"(+ c #A8A8A8", -"_+ c #D0D0D0", -":+ c #A3A3A3", -"<+ c #7F7F7F", -"[+ c #949494", -"}+ c #686868", -"|+ c #030303", -"1+ c #AAAAAA", -"2+ c #323232", -"3+ c #909090", -"4+ c #676767", -"5+ c #9E9E9E", -"6+ c #252525", -"7+ c #1F1F1F", -"8+ c #BDBDBD", -"9+ c #6E6E6E", -"0+ c #595959", -"a+ c #ACACAC", -"b+ c #818181", -"c+ c #565656", -"d+ c #8D8D8D", -"e+ c #939393", -"f+ c #A6A6A6", -"g+ c #525252", -"h+ c #232323", -"i+ c #424242", -"j+ c #B9B9B9", -"k+ c #989898", -"l+ c #343434", -"m+ c #414141", -"n+ c #1C1C1C", -"o+ c #777777", -"p+ c #BEBEBE", -"q+ c #6A6A6A", -"r+ c #8F8F8F", -"s+ c #A0A0A0", -"t+ c #C0C0C0", -"u+ c #434343", -"v+ c #747474", -"w+ c #3E3E3E", -"x+ c #646464", -"y+ c #626262", -"z+ c #606060", -"A+ c #828282", -"B+ c #5D5D5D", -" . + @ # $ % & * = = - - - ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; - - - = = * & % $ # @ + . ", -" . + # $ & = - > , ' ) ) ! ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { ~ ~ ~ ~ ~ ~ ~ ~ ~ ! ) ) ' , > - = & $ # + . ", -" . @ # % = ; ] ! { ^ / ( _ : : < < [ [ [ [ [ [ [ } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } [ [ [ [ [ [ < < < : _ ( / ^ { ! ] ; = % # @ . ", -". + # & - , ! | 1 < 2 3 4 5 6 7 7 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 8 8 7 7 6 5 4 3 2 < 1 | ! , - & # + . ", -"+ # % - , ~ / [ 3 0 9 a b c d e f g g h h h h h h i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i h h h h h g g f e j c b a 9 0 3 [ / ~ ] - % # + ", -"@ $ = , ~ 1 2 5 k l g m n o p q r r s s s t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t s s r r q p o n m g l k 5 2 ( { , = $ @ ", -"# & ; ! / 2 6 u g n p v w x y z A A B B C C C C C D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D C C C C C B A A z y x w v p n g u 6 2 / ! ; & # ", -"$ = ] ^ [ 5 E i F G H I J K L M N O P P Q R R R R S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S R R R R P P O N M L K J I x G F i E 5 [ ^ ] = $ ", -"% - ) 1 3 k g F T z U V R W X Y Z ` . ...+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+. . .` Z @.X #.R V U z T F g k 3 1 ) - % ", -"& > { < 0 $.%.G z &.Q *.Z =.-.;.>.,.'.'.).!.!.!.!.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.!.!.!.!.'.'.,.>.;.-.=.Z {.Q K z G %.$.0 < { > & ", -"* , ^ 2 ].f q H U P X +.^.,./.(._.:.<.[.}.|.|.|.|.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.|.|.|.|.[.<.:._.2./.'.^.+.X P U H q f ].2 ^ ] * ", -"= ' / 3 a m v B V {.=.3.4.5.6.7.8.9.0.a.b.c.c.c.c.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.c.c.c.c.a.0.9.8.7.e.5.4.3.=.{.V B v m a 3 / ' = ", -"= ) ( 4 l f.w J S Z ;.4.[.7.a.g.h.i.j.k.l.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.k.j.i.h.g.a.7.[.4.;.` S J w f.l 4 ( ) = ", -"- ! _ 5 $.F x K n.o.).5.7.b.h.l.p.q.r.s.t.u.u.u.u.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.u.u.u.u.s.r.q.p.w.h.x.7.5.).o.#.K x F $.5 _ ! - ", -"- ! : 6 j p y.z.A.B.C.6.0.D.m.r.v.E.F.G.H.I.I.I.I.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.I.I.I.I.G.F.E.v.r.m.D.a.6.C.B.A.z.y.q j 6 : ! - ", -"; ~ < 7 f K.z L.@.;.M.N.g.w.s.E.H.J.O.P.Q.R.R.R.R.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.R.R.R.R.P.O.J.H.E.s.w.g.N.M.;.@.L.z T.f 7 < ~ ; ", -"; ~ < 7 g T.I O U.3._.V.W.m.u.G.X.P.Y.R.S.Z.Z.Z.Z.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.Z.Z.Z.Z.R.Y.P.X.G.u. +W.V._.3.U.O I r g 7 < ~ ; ", -"; ~ [ 9 h s A O .,.[.9..+q.++J.Y.S.Z.`.@+#+#+#+#+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+#+#+#+#+`.Z.S.Y.J.++q.i.9.[.,. .Q A s h 9 [ ~ ; ", -"; ~ [ 9 h s B P .'.}.a.j.r.G.O.S.Z.@+%+#+&+&+&+&+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+&+&+&+&+%+@+Z.S.O.G.r.j.a.}.'. .Q C s h 9 [ ~ ; ", -"; ~ [ 9 i s C Q ..'.}.b.k.s.H.P.=+`.%+#+$+*+*+*+*+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+*+*+*+*+#+%+`.=+P.H.s.k.b.}.)...R C s i 9 [ ~ ; ", -"; ~ [ 9 i s C Q ..'.}.b.k.s.H.P.=+`.%+#+$+*+*+*+*+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+*+*+*+*+#+%+`.=+P.H.s.k.b.}.)...R C s i 9 [ ~ ; ", -"; ~ [ 9 i t D S +.!.|.c.m.u.J.R.Z.#+&+*+-+;+;+;+;+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+;+;+;+;+*+&+#+@+R.J.u.m.d.6.!.+.S D t i 9 [ { > ", -"; ~ [ 9 i t D S +.!.|.c.m.u.J.R.Z.#+&+*+-+;+;+;+;+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+;+;+;+;+*+&+#+@+R.J.u.m.d.6.!.+.S D t i 9 [ { > ", -"; ~ [ 9 i t D S +.!.|.c.m.u.J.R.Z.#+&+*+-+;+;+;+;+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+;+;+;+;+*+&+#+@+R.J.u.m.d.6.!.+.S D t i 9 [ { > ", -"; ~ [ 9 i t D S +.!.|.c.m.u.J.R.Z.#+&+*+-+;+;+;+;+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+;+;+;+;+*+&+#+@+R.J.u.m.d.6.!.+.S D t i 9 [ { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+F.'+#.A f.d ].6 l )+!+P ;.l.;+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+E.~+F {+{+{+{+{+{+{+{+{+{+{+{+{+{+$.]+.+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+k.&.5 {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+v e.;+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+++&.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+v .+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>.k {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+5 n.#+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+R.^+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+r t.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+++/+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+l W.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+++C.P (+g _+0 E )+:+<+}.Y.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+t.g {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+k 9.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+&+4.(+{+{+{+{+{+{+{+{+{+{+{+{+6 [+9.>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+-+W.}+K r d k 6 b m y.]+5.X.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+G.m {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+_+j.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+|+~.h {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+1+2+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+m.W d {+{+{+{+{+{+{+{+{+{+{+{+{+y 2.*+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+E.C.R x )+u 0 k j s 3+4+h.|+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+%+K.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+0 s n {+{+{+{+{+{+{+{+{+{+{+{+j F.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+E.C.R x )+u 0 k j s 3+4+h.|+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+s.G {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+Q @+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+k.C {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+)+'.-+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+=+>.v {+{+{+{+{+{+{+{+{+{+{+{+{+j *.p.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+N {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+5+r.,+,+ +y {+{+{+{+{+{+{+{+{+{+{+!+|+,+,+,+,+,+,+,+,+,+,+,+,+,+=+>.v {+{+{+{+{+{+{+{+{+{+{+{+{+j *.p.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+6+>.3+s $.9 6 l F J }+h.;+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+[._+{+{+{+{+{+{+{+{+{+u S *.f.{+{+{+{+{+{+{+{+{+{+F s.,+,+,+,+,+,+,+,+,+,+,+,+S.S 5 {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+K.W.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+7+!.M T e k 0 u 8+I @.8.#+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+Z.9+b {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+^+l.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+[.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+A.>+,+,+,+,+|+K {+{+{+{+{+{+{+{+{+{+{+o.,+,+,+,+,+,+,+,+,+,+,+Z.9+b {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+^+l.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+@+3.q {+{+{+{+{+{+{+{+{+{+{+{+8+~+S.,+,+,+,+,+,+,+,+,+,+,+,+,+>.{+{+{+{+{+{+{+{+{+{+y X.,+,+|+;.{+{+{+{+{+{+{+{+{+{+$.h.,+,+,+,+,+,+,+,+,+,+W.m {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+0 4+;+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+$+0+a+{+{+{+{+{+{+{+{+{+{+{+{+u b+6+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+[.g {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+0 n.=+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+$+b. .^+o c 7 8 $./+U +.d.*+,+,+,+,+,+,+,+,+,+,+,+,+,+,+=+g {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+8+*+,+,+,+,+,+,+=+a {+{+{+{+{+{+{+{+{+{+9 v.,+,+,+,+,+,+,+,+,+[.g {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+0 n.=+,+,+,+,+,+,+,+,+,+,+,+,+,+-+>.c {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+u ~+&+,+,+,+,+,+,+,+,+,+,+c+{+{+{+{+{+{+{+{+{+{+)+@+,+,+,+,+,+{.{+{+{+{+{+{+{+{+{+{+b +,+,+,+,+,+,+,+,+_.7 {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+d+*+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+$+b. .^+o c 7 8 $./+U +.d.*+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+|+0+f {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+5 L ++,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+%+N {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+n j.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+j.S u {+{+{+{+{+{+{+{+{+{+{+{+c n.p.,+,+,+,+,+,+,+,+,+,+,+,+Y {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+^.,+,+,+,+,+,+,+,+!+{+{+{+{+{+{+{+{+{+{+{+e+,+,+,+,+,+,+,+%+N {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+n j.,+,+,+,+,+,+,+,+,+,+,+q.r {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+o l.,+,+,+,+,+,+,+,+x.0 {+{+{+{+{+{+{+{+{+{+U ,+,+,+,+,+,+5.{+{+{+{+{+{+{+{+{+{+{+h O.,+,+,+,+,+,+0+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+C -+,+,+,+,+,+,+,+,+,+,+,+,+,+j.S u {+{+{+{+{+{+{+{+{+{+{+{+c n.p.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+r.v {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+_+>.>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+X.s {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+8 }.,+,+,+,+,+,+,+,+,+,+,+,+,+k.A {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+J 6+,+,+,+,+,+,+,+,+,+O.k {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+e.,+,+,+,+,+,+,+,+f+{+{+{+{+{+{+{+{+{+{+{+{+6+,+,+,+,+,+X.s {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+8 }.,+,+,+,+,+,+,+,+,+|.k {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+9 M.,+,+,+,+,+,+P.f {+{+{+{+{+{+{+{+{+{+{+_+m.,+,+,+,+>+:+{+{+{+{+{+{+{+{+{+{+{+{+5+>+,+,+,+,+5.5 {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+M >+,+,+,+,+,+,+,+,+,+,+k.A {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+J 6+,+,+,+,+,+,+,+,+,+,+,+,+,+,+}._+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+[+@+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+F.8+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+5 c+,+,+,+,+,+,+,+,+,+,+%+W 0 {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+6 @.&+,+,+,+,+,+,+,+U.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+e.,+,+,+,+,+,+,+,+K.{+{+{+{+{+{+{+{+{+{+{+{+z.,+,+,+,+F.8+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+5 c+,+,+,+,+,+,+,+c+5 {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+,.,+,+,+,+,+L.{+{+{+{+{+{+{+{+{+{+{+{+{+d +,+,+,+g+{+{+{+{+{+{+{+{+{+{+{+{+{+{+2.,+,+,+w.9 {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+3.,+,+,+,+,+,+,+,+%+W 0 {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+6 @.&+,+,+,+,+,+,+,+,+,+,+,+).5 {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+a+Q.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+Q.F {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+5 |.,+,+,+,+,+,+,+,+h+p {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+v u.,+,+,+,+,+|+f {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+k.,+,+,+,+,+,+,+>+l {+{+{+{+{+{+{+{+{+{+{+{+8 S.,+,+Q.F {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+5 |.,+,+,+,+,+:.5 {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+_.,+,+,+j.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+f i+j.9+9 {+{+{+{+{+{+{+{+{+{+{+{+{+{+e %+,+%+f.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+7 l.,+,+,+,+,+,+h+p {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+v u.,+,+,+,+,+,+,+,+,+g+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+v `.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+|+y.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+9 m.,+,+,+,+,+,+2+l {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+d j.,+,+,+,+7.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+6 q m d j+).,+,+,+,+,+,+,+,+u.{+{+{+{+{+{+{+{+{+{+{+{+{+{+~.,+|+y.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+9 m.,+,+,+m.9 {+{+{+{+{+{+{+{+{+{+{+{+{+{+7 f.G &.-.}+S f.{+{+{+{+{+{+8 l.,+,+k+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+3.,+` {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+T ;+,+,+,+,+2+l {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+d j.,+,+,+,+,+,+,+l+6 {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+B ;+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+=.{+{+{+{+{+{+{+{+{+{+{+c 1+^+V '+W.k..+V.>.L E {+{+{+{+{+{+{+{+{+{+{+{+f.@+,+,+,+,+W.k {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+a j.,+,+,+b+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+l b+m+`.,+,+,+,+,+,+,+,+,+,+,+,+,+D.{+{+{+{+{+{+{+{+{+{+{+{+{+{+I ,+=.{+{+{+{+{+{+{+{+{+{+{+c 1+^+V '+W.k..+V.>.L E {+{+{+{+{+{+{+{+{+{+{+{+f.@+,+&+F {+{+{+{+{+{+{+{+{+{+{+{+{+y [.#+,+,+,+,+,+,+>+x.a+{+{+{+{+{+f.#+n+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+7 W !.:+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+n E.7 {+{+{+{+{+{+{+{+{+{+{+{+{+{+l A A.o+o+U l {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+(.,+,+,+W.k {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+a j.,+,+,+,+,+Y.i {+{+{+{+{+{+{+{+{+{+{+{+g C f.G I I I :+p+{+{+{+{+{+{+{+{+{+{+-.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+q.6 {+{+{+{+{+{+{+{+{+8 [.>+,+,+,+,+,+,+,+,+,+,+#+M.p {+{+{+{+{+{+{+{+{+{+{+@.,+,+,+s.l {+{+{+{+{+q k.Q.;.8 {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+j u.,+,+f.{+{+{+{+{+{+{+{+{+{+{+{+{+{+6 .%+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+D.{+{+{+{+{+{+{+{+{+{+{+{+{+{+_+w.6 {+{+{+{+{+{+{+{+{+8 [.>+,+,+,+,+,+,+,+,+,+,+#+M.p {+{+{+{+{+{+{+{+{+{+{+@.,+q+{+{+{+{+{+{+{+{+{+{+{+{+e+7+,+,+,+,+,+,+,+,+,+,+,+-+r+{+{+{+{+{+o.o.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+b W.,+,+;+..{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+q {+{+{+{+{+{+{+{+{+{+{+{+K.;.u.>+,+,+,+,+,+;+m.>.T {+{+{+{+{+{+{+{+{+{+{+{+{+f.|+,+s.l {+{+{+{+{+q k.Q.;.8 {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+j u.,+,+,+,+S {+{+{+{+{+{+{+{+{+u P }.J.,+,+,+,+,+,+,+,+,+j./+{+{+{+{+{+{+{+{+8 7+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+s+{+{+{+{+{+{+{+{+{+5 7.,+,+,+,+,+,+,+,+,+,+,+,+,+,+-+=.{+{+{+{+{+{+{+{+{+{+6 t.,+$+T.{+{+{+{+{+t+O.,+,+,+_.{+{+{+{+{+{+{+{+{+f.g.$+6+#.0 {+{+{+{+{+{+t $+O.{+{+{+{+{+{+{+{+{+{+{+{+{+{+f.i.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+D.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+_+{+{+{+{+{+{+{+{+{+5 7.,+,+,+,+,+,+,+,+,+,+,+,+,+,+-+=.{+{+{+{+{+{+{+{+{+{+6 D.a {+{+{+{+{+{+{+{+{+{+$.m+,+,+,+,+,+,+,+,+,+,+,+,+,+,+#+%.{+{+{+{+_+%.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+m+,+,+,+,+,+N {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+e |.;+,+,+,+,+,+,+,+,+,+,+,+>+'+E {+{+{+{+{+{+{+{+{+{+{+{+|.$+T.{+{+{+{+{+t+O.,+,+,+_.{+{+{+{+{+{+{+{+{+f.g.$+6+#.0 {+{+{+{+{+{+t $+,+,+l.5 {+{+{+{+{+{+{+{+o+=+,+,+,+,+,+,+,+,+,+,+,+,+,+S.t {+{+{+{+{+{+{+{+^+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+d.{+{+{+{+{+{+{+{+{+{+k+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+;.{+{+{+{+{+{+{+{+{+{+L.,+A.{+{+{+{+{+6 j.,+,+,+,+>+(+{+{+{+{+{+{+{+_+v.,+,+,+,+a.k {+{+{+{+{+{+@.d.{+{+{+{+{+{+{+{+{+{+{+{+{+w S.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+k.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+k+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+;.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+f.7+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+C.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+H ,+,+,+,+,+,+|.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+o J.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+r.o {+{+{+{+{+{+{+{+{+{+{+D A.{+{+{+{+{+6 j.,+,+,+,+>+(+{+{+{+{+{+{+{+_+v.,+,+,+,+a.k {+{+{+{+{+{+@.,+,+e+{+{+{+{+{+{+{+{+g+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+n+9 {+{+{+{+{+{+{+{+m.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+B {+{+{+{+{+{+{+{+{+{+r+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+x {+{+{+{+{+{+{+{+{+6 7.6 {+{+{+{+{+*.,+,+,+,+,+,+'.{+{+{+{+{+{+{+]+,+,+,+,+,+,+'.{+{+{+{+{+{+6 {.{+{+{+{+{+{+{+{+{+{+{+{+b I.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+h+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+r+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+x {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+l n+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+s.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+@.,+,+,+,+,+,+h.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+E n+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+X.n {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+*.,+,+,+,+,+,+'.{+{+{+{+{+{+{+]+,+,+,+,+,+,+'.{+{+{+{+{+{+6 6+n+{+{+{+{+{+{+{+{+P ,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+k+{+{+{+{+{+{+{+{+N ,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+G.5 {+{+{+{+{+{+{+{+{+{+_+6+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+u+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+k.,+,+,+,+,+,+s.{+{+{+{+{+{+{+_.,+,+,+,+,+,+Z.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+Z ,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+p.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+_+6+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+u+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+N.,+,+,+,+,+,+,+,+-+X.X.X.S.,+,+,+,+>+Q {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+ .,+,+,+,+,+,+n+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+>.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+t.].{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+k.,+,+,+,+,+,+s.{+{+{+{+{+{+{+_.,+,+,+,+,+,+Z.{+{+{+{+{+{+{+^+=.{+{+{+{+{+{+{+0 ++,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+|+%.{+{+{+{+{+{+{+{+a %+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+^.{+{+{+{+{+{+{+{+{+{+{+{+k N A.I !+!+!+f+o+-+,+,+,+,+,+,+,+,+$+9 {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+$+,+,+,+,+,+,+,+5+{+{+{+{+{+{+0+,+,+,+,+,+,+,+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+6+,+,+,+,+,+,+,+,+>+m+^.<.>+,+,+,+,+,+,+,+,+D.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+k N A.I !+!+!+f+o+-+,+,+,+,+,+,+,+,+$+9 {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+D ,+,+,+,+,+,+,+,+m+h {+{+{+{+:+2+,+Z.P {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+ .,+,+,+,+,+,+S.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+t+*+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+4+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+$+,+,+,+,+,+,+,+5+{+{+{+{+{+{+0+,+,+,+,+,+,+,+{+{+{+{+{+{+{+{+0 {+{+{+{+{+{+{+s+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+ .{+{+{+{+{+{+{+{+{+{+e.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+5+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+q.,+,+,+,+,+,+,+,+,+f+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+&+,+,+,+,+,+,+,+..{+{+{+{+{+{+Y ,+,+,+,+,+,+,+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+l >+,+,+,+,+,+,+,+>+o+{+{+{+W ,+,+,+,+,+,+,+,+D.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+q.,+,+,+,+,+,+,+,+,+f+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+e.,+,+,+,+,+,+,+q.7 {+{+{+{+{+{+{+t+_+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+ .,+,+,+,+,+,+P.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+-.,+,+,+,+,+,+,+,+i+U J J r+7+,+,+,+,+,+,+,+%+E {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+&+,+,+,+,+,+,+,+..{+{+{+{+{+{+Y ,+,+,+,+,+,+,+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+q+,+,+,+,+,+,+,+,+,+,+h+:+<+h+,+,+&+v+{+{+{+{+{+{+{+{+{+{+{+*.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+|+_+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+k M ^.d.,+,+,+,+,+,+,+,+,+,+b+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+G.,+,+,+,+,+,+,+A.{+{+{+{+{+{+'+,+,+,+,+,+,+,+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+(+,+,+,+,+,+,+,+>+o+{+{+{+{+{+%+,+,+,+,+,+,+,+D.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+k M ^.d.,+,+,+,+,+,+,+,+,+,+b+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+X.,+,+,+,+,+,+,+M {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+=.,+,+,+,+,+,+s.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+5 H.,+,+,+,+,+,+,+4.{+{+{+{+{+g 7+,+,+,+,+,+,+,+O {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+G.,+,+,+,+,+,+,+A.{+{+{+{+{+{+'+,+,+,+,+,+,+,+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+5.,+,+,+,+,+,+,+,+,+,+++z s )+T.s+f {+{+{+{+{+{+{+{+{+{+{+{+(+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+7+{+{+{+{+{+{+{+{+{+{+{+{+{+{+0 K ,.w+Z.,+,+,+,+,+,+,+,+,+,+,+,+,+>.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+d.,+,+,+,+,+,+,+U {+{+{+{+{+{+++,+,+,+,+,+,+%+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+L ,+,+,+,+,+,+,+|.{+{+{+{+{+{+E.,+,+,+,+,+,+,+D.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+0 K ,.w+Z.,+,+,+,+,+,+,+,+,+,+,+,+,+>.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+|+,+,+,+,+,+,+>+l {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+'.,+,+,+,+,+,+q.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+a+,+,+,+,+,+,+,+%+b {+{+{+{+{+{+K ,+,+,+,+,+,+,+C.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+d.,+,+,+,+,+,+,+U {+{+{+{+{+{+++,+,+,+,+,+,+%+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+g+,+,+,+,+,+,+,+,+,+,+,+,+,+,+I.*.{+{+{+{+{+{+{+{+{+{+{+{+{+j ,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+7.{+{+{+{+{+{+{+{+{+{+{+{+{+n h.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+N.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+C.,+,+,+,+,+,+,+(+{+{+{+{+{+{+|+,+,+,+,+,+,+0.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+<+,+,+,+,+,+,+,+ .{+{+{+{+{+{+d.,+,+,+,+,+,+,+ +{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+n h.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+N.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+&+,+,+,+,+,+,+G.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+..,+,+,+,+,+,+X.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+n.,+,+,+,+,+,+,+[.{+{+{+{+{+{+{+v ,+,+,+,+,+,+,+i+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+C.,+,+,+,+,+,+,+(+{+{+{+{+{+{+|+,+,+,+,+,+,+0.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+L ,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+o.{+{+{+{+{+{+{+{+{+{+{+{+{+-+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+2.{+{+{+{+{+{+{+{+{+{+{+{+v P.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+D.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+C.,+,+,+,+,+,+,+:+{+{+{+{+{+)+,+,+,+,+,+,+,+e.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+Z ,+,+,+,+,+,+,+ .{+{+{+{+{+{+a.,+,+,+,+,+,+,+7+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+v P.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+D.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+X.,+,+,+,+,+,+ +{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+ .,+,+,+,+,+,+X.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+..,+,+,+,+,+,+,+/.{+{+{+{+{+{+{+(+,+,+,+,+,+,+,+k.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+C.,+,+,+,+,+,+,+:+{+{+{+{+{+)+,+,+,+,+,+,+,+e.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+6 v.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+4.].{+{+{+{+{+{+{+{+{+{+{+S.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+).{+{+{+{+{+{+{+{+{+{+{+p+O.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+g+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+1.,+,+,+,+,+,+,+P {+{+{+{+{+3+,+,+,+,+,+,+,+e.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+9+,+,+,+,+,+,+,++.{+{+{+{+{+{+0+,+,+,+,+,+,+,+i.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+p+O.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+g+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+p.,+,+,+,+,+,+v.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+ .,+,+,+,+,+,+++{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+#.,+,+,+,+,+,+,+W.{+{+{+{+{+{+{+d+,+,+,+,+,+,+,+&+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+1.,+,+,+,+,+,+,+P {+{+{+{+{+3+,+,+,+,+,+,+,+e.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+D >+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+_.{+{+{+{+{+{+{+{+{+{+{+Y.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+'.{+{+{+{+{+{+{+{+{+{+{+l+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+&.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+x+,+,+,+,+,+,+,+^.{+{+{+{+{+A.,+,+,+,+,+,+,+i+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+ .,+,+,+,+,+,+,+e.{+{+{+{+{+{++.,+,+,+,+,+,+,+D.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+l+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+&.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+0.,+,+,+,+,+,+,+e+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+ .,+,+,+,+,+,+v.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+U ,+,+,+,+,+,+,+D.{+{+{+{+{+{+{+y+,+,+,+,+,+,+,+-+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+x+,+,+,+,+,+,+,+^.{+{+{+{+{+A.,+,+,+,+,+,+,+i+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+z+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+&+b {+{+{+{+{+{+{+{+{+{+*+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+(.{+{+{+{+{+{+{+{+{+{+r+,+,+,+,+,+,+,+,+P.1+o F c.,+,+,+,+,+,+,+,+z {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+A+,+,+,+,+,+,+,+|.{+{+{+{+{+~+,+,+,+,+,+,+,+q.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+<+,+,+,+,+,+,+,+*+t+{+{+{+{+{++.,+,+,+,+,+,+,+D.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+r+,+,+,+,+,+,+,+,+P.1+o F c.,+,+,+,+,+,+,+,+z {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+X ,+,+,+,+,+,+,+J.e {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+ .,+,+,+,+,+,+-+k {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+/+,+,+,+,+,+,+,+j.{+{+{+{+{+{+{+6+,+,+,+,+,+,+,+=+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+A+,+,+,+,+,+,+,+|.{+{+{+{+{+~+,+,+,+,+,+,+,+q.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+5 M.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+O {+{+{+{+{+{+{+{+{+u ,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+m+{+{+{+{+{+{+{+{+{+{+o+,+,+,+,+,+,+,+,+'+{+{+{++.,+,+,+,+,+,+,+,+/+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+L.,+,+,+,+,+,+,+h+{+{+{+{+{+~.,+,+,+,+,+,+,+%+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+z ,+,+,+,+,+,+,+,+|.{+{+{+{+{+,.,+,+,+,+,+,+,+k.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+o+,+,+,+,+,+,+,+,+'+{+{+{++.,+,+,+,+,+,+,+,+/+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+)+|+,+,+,+,+,+,+,+j.E {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+ .,+,+,+,+,+,+,+r {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+I.,+,+,+,+,+,+*+d {+{+{+{+{+(+,+,+,+,+,+,+,+,+ +{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+L.,+,+,+,+,+,+,+h+{+{+{+{+{+~.,+,+,+,+,+,+,+%+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+<+F.,+,+,+,+,+,+,+,+,+,+,+,+,+,+'+{+{+{+{+{+{+{+{+{+a+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+t.{+{+{+{+{+{+{+{+{+{+o+,+,+,+,+,+,+,+,+w.6 {+7 9.,+,+,+,+,+,+,+;+8 {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+r+,+,+,+,+,+,+,+,+^+{+{+{+)+P.,+,+,+,+,+,+,+S.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+a *+,+,+,+,+,+,+,+,+0+k {+{+t Z.,+,+,+,+,+,+,+7+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+o+,+,+,+,+,+,+,+,+w.6 {+7 9.,+,+,+,+,+,+,+;+8 {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+_.,+,+,+,+,+,+,+,+k.A {+{+{+8 d+2.4.f {+{+{+{+{+{+{+` {+{+{+{+{+{+{+{+{+{+{+{+{+ .,+,+,+,+,+,+,+C {+{+{+{+{+{+{+{+{+{+{+{+c x {+{+{+{+{+{+{+{+_.,+,+,+,+,+,+,+x+{+{+{+{+5 l+,+,+,+,+,+,+,+,+x+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+r+,+,+,+,+,+,+,+,+^+{+{+{+)+P.,+,+,+,+,+,+,+S.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+6 U n.N.-+,+,+,+,+,+,+,+,+,+,+C.{+{+{+{+{+{+{+{+{+S ,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+-+].{+{+{+{+{+{+{+{+{+*.,+,+,+,+,+,+,+,+,+r.C.2+,+,+,+,+,+,+,+,+#+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+r+,+,+,+,+,+,+,+,+$+}+r+#.P.,+,+,+,+,+,+,+,+@+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+i+,+,+,+,+,+,+,+,+,+H.}+(.*+,+,+,+,+,+,+,+,+R.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+*.,+,+,+,+,+,+,+,+,+r.C.2+,+,+,+,+,+,+,+,+#+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+%.*+,+,+,+,+,+,+,+,+,+`.S.S.#+,+,+,+h+k {+{+{+{+{+l $+z.{+{+{+{+{+{+{+{+{+{+{+{+C.,+,+,+,+,+,+,+@.{+{+{+{+{+{+{+{+{+{+{+{+~.g+{+{+{+{+{+{+{+{+X ,+,+,+,+,+,+,+>+Z 5 {+0 >.,+,+,+,+,+,+,+,+&+)+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+r+,+,+,+,+,+,+,+,+$+}+r+#.P.,+,+,+,+,+,+,+,+@+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+7 [+e+T.5 {+{+{+z.,+,+,+,+,+,+,+,+,+,+@.{+{+{+{+{+{+{+{+{+<.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+y.{+{+{+{+{+{+{+{+{+v ,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+f.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+^+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+{+{+{+{+{+{+{+{+{+f+a {+{+{+{+{+{+{+{+{+y >+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+i {+{+{+{+{+{+{+{+{+{+{+{+9 {+{+{+{+{+{+{+{+{+v ,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+f.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+^.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+I {+{+{+{+{+#.,+X.d {+{+{+{+{+{+{+{+{+{+{+g.,+,+,+,+,+,+,+<.{+{+{+{+{+{+{+{+{+{+{+:+;+`._+{+{+{+{+{+{+{+m |+,+,+,+,+,+,+,+,+6+C.q.,+,+,+,+,+,+,+,+,+o.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+^+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+k .+,+,+,+Y.N.m+m+r.,+,+,+,+,+,+,+,+,+*+m {+{+{+{+{+{+{+{+9 S.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+4+{+{+{+{+{+{+{+{+{+{+++,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+Q {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+l #+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+{+{+{+{+{+{+{+{+{+ .U.{+{+{+{+{+{+{+{+{+{+i+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+G {+{+{+{+{+{+{+{+{+{+{+s+4+{+{+{+{+{+{+{+{+{+{+++,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+Q {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+E u.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+*+e {+{+{+{+8 F.,+,+V.{+{+{+{+{+{+{+{+{+{+{+c+,+,+,+,+,+,+,+e.{+{+{+{+{+{+{+{+{+{+f J.,+,+{.{+{+{+{+{+{+{+{+_.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+i.7 {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+l #+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+A+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+..{+{+{+{+{+{+{+{+{+L ,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+++{+{+{+{+{+{+{+{+{+{+W ,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+3+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+x+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+#+{+{+{+{+{+{+{+{+{+b.`.g {+{+{+{+{+{+{+{+{+f ++,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+r.6 {+{+{+{+{+{+{+{+{+{+6 p.++{+{+{+{+{+{+{+{+{+{+W ,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+3+{+{+{+{+{+{+{+{+{+_+{+{+{+{+{+{+{+{+{+{+F n+,+,+,+,+,+,+,+,+,+,+,+,+,+,+z+{+{+{+{+{+Y ,+,+,+,+>.{+{+{+{+{+{+{+{+{+{+p+%+,+,+,+,+,+,+b+{+{+{+{+{+{+{+{+{+a i.,+,+,+H.9 {+{+{+{+{+{+{+e G.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+J.m {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+x+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+#+{+{+{+{+{+{+{+{+{+b {+{+{+{+{+{+]+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+w+5 {+{+{+{+{+{+{+{+{+.+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+z {+{+{+{+{+{+{+{+{+{+c+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+++_+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+_+++,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+d.{+{+{+{+{+{+{+{+u $+,+[.{+{+{+{+{+{+{+{+{+{+j+7+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+R.q {+{+{+{+{+{+{+{+{+{+{+@.,+,+z {+{+{+{+{+{+{+{+{+{+c+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+++_+{+{+{+{+{+{+{+{+0 s.q {+{+{+{+{+{+{+{+{+{+_+o.S.,+,+,+,+,+,+,+,+,+,+,+_.6 {+{+{+{+m %+,+,+,+,+,+4+{+{+{+{+{+{+{+{+{+{+z.|+,+,+,+,+8.6 {+{+{+{+{+{+{+{+b l+,+,+,+,+,++.{+{+{+{+{+{+{+{+p ++,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+R.r {+{+{+{+{+{+{+{+{+f.9 {+{+{+{+{+{+{+{+_+++,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+d.{+{+{+{+{+{+{+{+u 2+{+{+{+{+{+{+l Y.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+h+u {+{+{+{+{+{+{+{+{+B ,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+b.{+{+{+{+{+{+{+{+{+{+{+{.&+,+,+,+,+,+>+j.9+L 3+6.;+,+,+,+G.q {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+(+&+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+]+{+{+{+{+{+{+{+{+S ,+,+,+M {+{+{+{+{+{+{+{+{+{+E y+&+,+,+,+,+,+v.M l k F *.a.$+,+H.G {+{+{+{+{+{+{+{+{+{+{+t $+,+,+b.{+{+{+{+{+{+{+{+{+{+{+{.&+,+,+,+,+,+>+j.9+L 3+6.;+,+,+,+G.q {+{+{+{+{+{+{+{+{+z.,+p.9 {+{+{+{+{+{+{+{+{+{+{+_+&.b+b+]+'+7+%+|+X.6.I {+{+{+{+{+7 h.,+,+,+,+,+,+,+g+9 {+{+{+{+{+{+{+{+{+:+8.%+E.9+6 {+{+{+{+{+{+{+{+n 6+,+,+,+,+,+,+#+o {+{+{+{+{+{+{+{+c _.>+,+,+,+,+,+,+,+,+,+,+,+,+++q {+{+{+{+{+{+{+{+{+0 D.O {+{+{+{+{+{+{+{+{+(+&+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+]+{+{+{+{+{+{+{+{+S ,+P {+{+{+{+{+{+B $+,+,+,+,+,+,+,+,+,+,+,+,+,+w.8+{+{+{+{+{+{+{+{+{+7 s.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+:+{+{+{+{+{+{+{+{+{+{+{+r C.S.,+|+/.q {+{+{+{+{+o =.4.{.E {+{+{+{+{+{+{+{+{+6 C.{+{+{+{+{+{+{+{+{+{+J $+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+c.6 {+{+{+{+{+{+{+{+j.,+,+,+`.F {+{+{+{+{+{+{+{+{+{+{+t+9+u+x.N.A+7 {+{+{+{+{+{+{+b {+{+{+{+{+{+{+{+{+{+{+{+b u.,+,+,+>+:+{+{+{+{+{+{+{+{+{+{+{+r C.S.,+|+/.q {+{+{+{+{+o =.4.{.E {+{+{+{+{+{+{+{+{+6 h+,+,+5.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+C.,+,+,+,+,+,+,+,+,+m.q {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+L.Z.,+,+,+,+,+,+,+,+m.9 {+{+{+{+{+{+{+{+{+C 6+,+,+,+,+,+,+,+,+,+;+M.l {+{+{+{+{+{+{+{+{+{+x+,+D.{+{+{+{+{+{+{+{+{+{+J $+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+c.6 {+{+{+{+{+{+{+{+j.,+Q.g {+{+{+{+{+{+K.y+[.Y.,+,+,+,+,+,+,+,+6+A+6 {+{+{+{+{+{+{+{+{+{+q+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+p.6 {+{+{+{+{+{+{+{+{+{+{+{+7 q )+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+o+,+s+{+{+{+{+{+{+{+{+{+{+t l+,+,+,+,+|+b.L v v v v R e.0.@.].{+{+{+{+{+{+{+{+A ,+,+,+,+,+n+f {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+].l+,+,+,+,+,+p.6 {+{+{+{+{+{+{+{+{+{+{+{+7 q )+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+o+,+,+,+,+,.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+3.,+,+,+,+,+,+,+,+,+,+,+-+;.$.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+v c.,+,+,+,+,+,+,+,+,+,+,+_.{+{+{+{+{+{+{+{+{+{+5 z./.4.w+V.V.6.'.*.n {+{+{+{+{+{+{+{+{+{+{+d+;+,+,+s+{+{+{+{+{+{+{+{+{+{+t l+,+,+,+,+|+b.L v v v v R e.0.@.].{+{+{+{+{+{+{+{+A ,+,+,+x.6 {+{+{+{+{+{+{+{+0 a+z.x+w+V.|.]+f.{+{+{+{+{+{+{+{+{+{+{+{+5+|+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+..{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+%.`.,+i.5 {+{+{+{+{+{+{+{+{+{+{+f+z+0+M e {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+0 k.,+,+,+,+,+,+m.$.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+8 N.,+,+,+,+,+,+,+..{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+%.`.,+,+,+,+,+2.8 {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+9 _.,+,+,+,+,+,+,+,+,+,+,+,+,+,+@+3.K.{+{+{+{+{+{+{+{+{+{+{+{+8 [+0.>+,+,+,+,+,+,+,+,+,+,+,+,+,+>.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+C *+,+,+,+i.5 {+{+{+{+{+{+{+{+{+{+{+f+z+0+M e {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+0 k.,+,+,+,+/.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+T.S.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+|+:+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+9 l.,+,+,+]+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+W ,+,+,+,+,+,+,+,+r.t+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+l d.,+,+,+,+,+,+,+,+|+:+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+9 l.,+,+,+,+,+,+,+j.f.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+p m.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+q.,.z.v d ].0 E m y.*.1.S.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+4.0 {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+z.*+,+,+,+,+,+]+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+W ,+,+,+,+,+,+>.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+r X.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+P.j+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+5 <.,+,+,+,+@+o {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+p %+,+,+,+,+,+,+,+,+,+I.x {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+q r.,+,+,+,+,+,+,+,+,+,+P.j+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+5 <.,+,+,+,+,+,+,+,+,+#+.._+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+b x+*+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+b.f {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+6 -.;+,+,+,+,+,+,+@+o {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+p %+,+,+,+,+,+,+,+5.k {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+A =+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+++m {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+0+,+,+,+,+,+,+p.u {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+l h+,+,+,+,+,+,+,+,+,+,+,+|+..6 {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+5 W #+,+,+,+,+,+,+,+,+,+,+,+,+++m {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+0+,+,+,+,+,+,+,+,+,+,+,+,+P...)+{+{+{+{+{+{+{+{+{+{+{+{+j+x+=+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+X.L {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+s .+,+,+,+,+,+,+,+,+,+p.u {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+l h+,+,+,+,+,+,+,+,+,+6+s {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+].x+;+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+I.T.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+7 :.,+,+,+,+,+,+,+,+c.9 {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+k 2+,+,+,+,+,+,+,+,+,+,+,+,+,+,+6+H {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+w j.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+I.T.{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+7 :.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+|+g.q+^+j+b 6 8 c K.&.y+l.>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+x.!+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+m !.|+,+,+,+,+,+,+,+,+,+,+,+c.9 {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+k 2+,+,+,+,+,+,+,+,+,+,+,+|+3.d {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+e+n+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+`.V {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+p+.+,+,+,+,+,+,+,+,+,+,+c.E {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+l W.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+V.(+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+f+N.>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+`.V {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+p+.+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+d.M _+{+{+{+{+{+{+{+{+{+{+{+{+0 I _.-+,+,+,+,+,+,+,+,+,+,+,+,+,+,+c.E {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+l W.,+,+,+,+,+,+,+,+,+,+,+,+,+,+@+3.q {+{+{+{+{+{+{+{+{+{+{+{+b A+6+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+<.g {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+5 ]+=+,+,+,+,+,+,+,+,+,+,+,+,+p.o {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+K.s.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+k.#.e {+{+{+{+{+{+{+{+{+{+{+{+{+{+i o+w.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+<.g {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+5 ]+=+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+%+9.` ^+F c 8 6 b 8+z *.|.P.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+p.o {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+K.s.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+6+>.r+s $.9 0 u n A U.8.$+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+Z...b {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+k+k.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+@+]+5 {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+0 {.#+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+;+p.B+Q H t+l 6 7 l p+y b+!.s.>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+Z...b {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+k+k.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+@+]+5 {+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+0 {.#+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+=+>.t {+{+{+{+{+{+{+{+{+{+{+{+{+d #.p.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+i.s+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+A m.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+=+>.t {+{+{+{+{+{+{+{+{+{+{+{+{+d #.p.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+i.s+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+{+A m.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+n+4.R H i E 0 ].d T.K }+W.-+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+D.O a {+{+{+{+{+{+{+{+{+{+{+{+E Q j.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+n+4.R H i E 0 ].d T.K }+W.-+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+D.O a {+{+{+{+{+{+{+{+{+{+{+{+E Q j.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+%+9.` k+j+l 6 7 l o k+ .0.#+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+%+9.` k+j+l 6 7 l o k+ .0.#+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+{+m ,+,+,+,+,++.{+g+,+{+{+{+{+{+{+{+{+{+g+,+{+m ,+,+,+,+,++.{+g+,+{+{+{+{+{+{+{+{+{+g+,+,+,+,+,+,+,+{+{+{+{+{+{+{+{+{+{+{+{+{+E.,+{+m ,+,+,+,+,++.{+g+,+{+{+{+{+{+{+{+{+{+g+,+{+m ,+,+{+{+{+{+{+{+{+{+{+g+,+,+,+,+,+,+,+,+,+,+,+{+m ,+,+,+,+,++.{+g+,+{+{+{+{+{+{+{+{+{+g+,+{+m ,+,+,+,+,++.{+g+,+{+{+{+{+{+{+{+{+{+g+,+,+,+,+,+,+,+{+m ,+,+,+g+{++.,+,+,+:+{+E.,+{+{+{+{+{+{+{+{+{+g+,+{+m ,+,+,+,+,++.{+g+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+{+{+{+{+{+{+{+{+{+g+,+{+{+{+{+{+{+{+{+{+g+,+,+,+,+,+,+,+{+{+{+{+{+{+{+{+{+g+,+{+m ,+,+,+,+,++.{+g+,+{+{+{+{+{+{+{+{+{+g+,+{+{+{+{+{+{+{+{+{+g+,+{+{+{+{+{+{+{+{+{+g+,+{+{+{+{+{+{+{+{+{+g+,+{+m ,+,+{+{+{+{+{+{+{+{+{+g+,+{+{+{+{+{+{+{+{+{+g+,+{+{+{+{+{+{+{+{+{+g+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+{+m ,+,+,+,+,++.{+g+,+{+b +.+.+.+.+.:+{+g+,+{+m ,+,+,+,+,++.{+g+,+{+b +.+.+.+.+.a+{+g+,+,+,+,+,+,+,+{+b +.+.+.J {+:++.+.+.m {+E.,+{+m ,+,+,+,+,++.{+g+,+{+b +.+.+.+.+.+.+.w.,+{+m ,+,+{+b +.+.+.+.+.+.+.w.,+,+,+,+,+,+,+,+,+,+,+{+m ,+,+,+,+,++.{+g+,+{+b +.+.+.+.+.:+{+g+,+{+m ,+,+,+,+,++.{+g+,+{+b +.+.+.+.+.a+{+g+,+,+,+,+,+,+,+{+m ,+,+,+g+{++.,+,+,+:+{+E.,+{+b +.+.+.+.+.:+{+g+,+{+m ,+,+,+,+,++.{+g+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+{+b +.+.+.+.+.:+{+g+,+{+b +.+.+.+.+.:+{+g+,+,+,+,+,+,+,+{+b +.+.+.+.+.+.+.w.,+{+m ,+,+,+,+,++.{+g+,+{+b +.+.+.+.+.+.+.w.,+{+b +.+.+.+.+.+.+.w.,+{+b +.+.+.+.+.:+{+g+,++.+.+.N {+r +.+.+.w.,+{+m ,+,+{+b +.+.+.+.+.:+{+g+,+{+b +.+.+.+.+.:+{+g+,+{+b +.+.+.+.+.+.+.w.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+{+m ,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,+n.{+g+,+,+,+,+,+,+,+{+m ,+,+,+g+{++.,+,+,+:+{+E.,+{+m ,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,+,+,+,+,+{+m ,+,+{+m ,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+{+m ,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,+n.{+g+,+,+,+,+,+,+,+{+m ,+,+,+g+{++.,+,+,+:+{+E.,+{+m ,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,++.{+g+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+{+m ,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,++.{+g+,+,+,+,+,+,+,+{+m ,+,+,+,+,+,+,+,+,+{+m ,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,+,+,+,+,+{+m ,+,+,+,+,+,+,+,+,+{+m ,+,+,+,+,++.{+g+,+,+,+,+c.{+N ,+,+,+,+,+{+m ,+,+{+m ,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+{+_+N N N N N r {+g+,+{+m ,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,++.{+g+,+{+_+N N N N N U.g+7+,+,+,+,+,+,+,+{+m ,+,+,+g+{++.,+,+,+:+{+E.,+{+m ,+,+,+,+,++.{+g+,+{+_+N N N N N N N g.,+{+m ,+,+{+m ,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+{+_+N N N N N r {+g+,+{+m ,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,++.{+g+,+{+_+N N N N N U.g+7+,+,+,+,+,+,+,+{+m ,+,+,+g+{++.,+,+,+:+{+E.,+{+_+N N N N N r {+g+,+{+_+N N N N N r {+g+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+{+m ,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,++.{+g+,+,+,+,+,+,+,+{+_+N N N N N e.,+,+,+g+0+N N N N N +.g+7+,+{+m ,+,+,+,+,+,+,+,+,+{+_+N N N N N e.,+,+,+{+_+N N N N N r {+g+,+,+,+,+c.{+N ,+,+,+,+,+{+m ,+,+{+m ,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,++.{+g+,+{+_+N N N N N N N g.,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+{+{+{+{+{+{+{+{+{+g+,+{+m ,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,++.{+g+,+{+{+{+{+{+{+{++.,+,+,+,+,+,+,+,+,+{+m ,+,+,+g+{++.,+,+,+:+{+E.,+{+m ,+,+,+,+,++.{+g+,+{+{+{+{+{+{+{+{+{+g+,+{+m ,+,+{+m ,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+{+{+{+{+{+{+{+{+{+g+,+{+m ,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,++.{+g+,+{+{+{+{+{+{+{++.,+,+,+,+,+,+,+,+,+{+m ,+,+,+g+{++.,+,+,+:+{+E.,+{+{+{+{+{+{+{+{+{+g+,+{+{+{+{+{+{+{+{+{+g+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+{+m ,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,++.{+g+,+,+,+,+,+,+,+{+{+{+{+{+{+{++.,+,+,+,+E.{+{+{+{+{++.,+,+,+{+m ,+,+,+,+,+,+,+,+,+{+{+{+{+{+{+{++.,+,+,+{+{+{+{+{+{+{+{+{+g+,+,+,+,+c.{+N ,+,+,+,+,+{+m ,+,+{+m ,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,++.{+g+,+{+{+{+{+{+{+{+{+{+g+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+c.c.c.3.{+I c.c.c.X.,+{+m ,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,++.{+g+,+{+f c.c.c.c.c.+.:+V.,+,+,+,+,+,+,+{+m ,+,+,+g+{++.,+,+,+:+{+E.,+{+m ,+,+,+,+,++.{+g+,+c.c.c.c.c.c.c.N {+g+,+{+m ,+,+{+m ,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+c.c.c.c.c.c.c.N {+g+,+{+m ,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,++.{+g+,+{+f c.c.c.c.c.+.:+V.,+,+,+,+,+,+,+{+m ,+,+,+g+{++.,+,+,+:+{+E.,+{+f c.c.c.c.c.N {+g+,+c.c.c.c.c.c.c.N {+g+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+{+m ,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,++.{+g+,+,+,+,+,+,+,+{+f c.c.c.c.c.E.,+,+,+:+J c.c.c.c.c.+.:+V.,+{+m ,+,+,+,+,+,+,+,+,+{+f c.c.c.c.c.E.,+,+,+{+f c.c.c.c.c.c.c.X.,+,+,+,+c.{+N ,+,+,+,+,+{+m ,+,+{+m ,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,++.{+g+,+c.c.c.c.c.c.c.N {+g+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+c.{+N ,+,+,+,+,+{+m ,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,++.{+g+,+,+,+,+,+,+,+{+m ,+,+,+g+{++.,+,+,+:+{+E.,+{+m ,+,+,+,+,++.{+g+,+,+,+,+,+,+,+,++.{+g+,+{+m ,+,+{+m ,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,++.{+g+,+,+,+,+,+,+,+{+m ,+,+,+g+{++.,+,+,+:+{+E.,+{+m ,+,+,+,+,++.{+g+,+,+,+,+,+,+,+,++.{+g+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+{+m ,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,++.{+g+,+,+,+,+,+,+,+{+m ,+,+,+,+,+,+,+,+,+{+m ,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,+,+,+,+,+{+m ,+,+,+,+,+,+,+,+,+{+m ,+,+,+,+,+,+,+,+,+,+,+,+c.{+N ,+,+,+,+,+{+m ,+,+{+m ,+,+,+,+,++.{+g+,+{+m ,+,+,+,+,++.{+g+,+,+,+,+,+,+,+,++.{+g+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+c.{+N ,+,+,+,+,+{+6 m m m m m b {+g+,+{+6 m m m m m b {+g+,+{+m ,+,+,+,+,++.{+g+,+,+,+,+,+,+,+{+m ,+,+,+g+{++.,+,+,+:+{+E.,+{+6 m m m m m b {+g+,+m m m m m m m b {+g+,+{+m ,+,+{+6 m m m m m m m |.,+{+m ,+,+,+,+,+,+,+,+m m m m m m m b {+g+,+{+6 m m m m m b {+g+,+{+6 m m m m m b {+g+,+{+m ,+,+,+,+,++.{+g+,+,+,+,+,+,+,+{+6 m m m $.{+b m m m 9 {+E.,+{+m ,+,+,+,+,++.{+g+,+m m m m m m m b {+g+,+{+m ,+,+,+,+,+,+,+,+,+,+,+,+,+,+{+m ,+,+,+,+,++.{+g+,+{+6 m m m m m b {+g+,+,+,+,+,+,+,+{+6 m m m m m m m |.,+{+m ,+,+,+,+,++.{+g+,+{+6 m m m m m m m |.,+{+6 m m m m m m m |.,+{+m ,+,+,+,+,+,+,+,+,+,+,+,+c.{+N ,+,+,+,+,+{+m ,+,+{+6 m m m m m b {+g+,+{+m ,+,+,+,+,++.{+g+,+m m m m m m m b {+g+,+{+m ,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+c.{+N ,+,+,+,+,+{+{+{+{+{+{+{+{+{+g+,+{+{+{+{+{+{+{+{+{+g+,+{+m ,+,+,+,+,++.{+g+,+,+,+,+,+,+,+{+m ,+,+,+g+{++.,+,+,+:+{+E.,+{+{+{+{+{+{+{+{+{+g+,+{+{+{+{+{+{+{+{+{+g+,+{+m ,+,+{+{+{+{+{+{+{+{+{+g+,+{+m ,+,+,+,+,+,+,+,+{+{+{+{+{+{+{+{+{+g+,+{+{+{+{+{+{+{+{+{+g+,+{+{+{+{+{+{+{+{+{+g+,+{+m ,+,+,+,+,++.{+g+,+,+,+,+,+,+,+{+{+{+{+{+{+{+{+{+{+{+{+{+E.,+{+m ,+,+,+,+,++.{+g+,+{+{+{+{+{+{+{+{+{+g+,+{+m ,+,+,+,+,+,+,+,+,+,+,+,+,+,+{+m ,+,+,+,+,++.{+g+,+{+{+{+{+{+{+{+{+{+g+,+,+,+,+,+,+,+{+{+{+{+{+{+{+{+{+g+,+{+m ,+,+,+,+,++.{+g+,+{+{+{+{+{+{+{+{+{+g+,+{+{+{+{+{+{+{+{+{+g+,+{+m ,+,+,+,+,+,+,+,+,+,+,+,+c.{+N ,+,+,+,+,+{+m ,+,+{+{+{+{+{+{+{+{+{+g+,+{+m ,+,+,+,+,++.{+g+,+{+{+{+{+{+{+{+{+{+g+,+{+m ,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+{+m ,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+{+m ,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; { } 9 i t D S +.~.1.d.m.v.J.S.`.$+*+-+-+>+>+>+>+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+-+*+$+%+S.X.v.m.d.e.~.+.S D v i 9 } { > ", -"; ~ [ 9 i t D S +.!.|.c.m.u.J.R.Z.#+&+*+-+;+;+;+;+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+;+;+;+;+*+&+#+@+R.J.u.m.d.6.!.+.S D t i 9 [ { > ", -"; ~ [ 9 i t D S +.!.|.c.m.u.J.R.Z.#+&+*+-+;+;+;+;+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+;+;+;+;+*+&+#+@+R.J.u.m.d.6.!.+.S D t i 9 [ { > ", -"; ~ [ 9 i t D S +.!.|.c.m.u.J.R.Z.#+&+*+-+;+;+;+;+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+;+;+;+;+*+&+#+@+R.J.u.m.d.6.!.+.S D t i 9 [ { > ", -"; ~ [ 9 i t D S +.!.|.c.m.u.J.R.Z.#+&+*+-+;+;+;+;+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+;+;+;+;+*+&+#+@+R.J.u.m.d.6.!.+.S D t i 9 [ { > ", -"; ~ [ 9 i s C Q ..'.}.b.k.s.H.P.=+`.%+#+$+*+*+*+*+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+*+*+*+*+#+%+`.=+P.H.s.k.b.}.)...R C s i 9 [ ~ ; ", -"; ~ [ 9 h s B P .'.}.a.j.r.G.O.S.Z.@+%+#+&+&+&+&+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+&+&+&+&+%+@+Z.S.O.G.r.j.a.}.'. .Q C s h 9 [ ~ ; ", -"; ~ [ 9 h s A O .,.[.9..+q.++J.Y.S.Z.`.@+#+#+#+#+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+$+#+#+#+#+`.Z.S.Y.J.++q.i.9.[.,. .Q A s h 9 [ ~ ; ", -"; ~ [ 8 g r A O Z B+:.8.h.p.n+H.P.Y.S.=+Z.@+@+@+@+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+@+@+@+@+=+S.Y.P.H.n+6+h.8.:.B+Z P A r g 8 [ ~ ; ", -"; ~ < 7 f K.z L.@.;.M.N.g.w.s.E.H.J.O.P.Q.R.R.R.R.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.S.R.R.R.R.P.O.J.H.E.s.w.g.N.M.;.@.L.z T.f 7 < ~ ; ", -"- ! : 6 j q s+z.A.-.C.e.a.h. +s.n+++G.H.H.J.J.J.J.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.J.J.J.J.H.G.++n+s. +h.a.e.C.-.A.z.s+q j 6 : ! - ", -"- ! _ 5 $.F x K n.o.).5.7.b.h.l.p.q.r.s.t.u.u.u.u.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.u.u.u.u.s.r.q.p.w.h.x.7.5.).o.#.K x F $.5 _ ! - ", -"= ) ( 4 l f.w J S Z ;.4.[.7.a.g.h.i.j.k.l.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.k.j.i.h.g.a.7.[.4.;.` S J w f.l 4 ( ) = ", -"= ' / 3 a m v B V {.=.3.4.5.6.7.8.9.0.a.b.c.c.c.c.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.c.c.c.c.a.0.9.8.7.e.5.4.3.=.{.V B v m a 3 / ' = ", -"* ] ^ 2 ].g q x U Q A.o.;.'.C.'+:.[.}.}.|.6.6.6.6.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.6.6.6.6.}.}.[.:.M.C.).;.o.A.Q U x q g ].2 ^ ] * ", -"& > { < 0 $.%.G z &.Q *.Z =.-.;.>.,.'.'.).!.!.!.!.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.!.!.!.!.'.'.,.>.;.-.=.Z {.Q K z G %.$.0 < { > & ", -"% - ) 1 3 k g F T z U V R W X Y Z ` . ...+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+. . .` Z @.X #.R V U z T F g k 3 1 ) - % ", -"$ = ] ^ [ 5 E i F G H I J K L M N O P P Q R R R R S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S R R R R P P O N M L K J I x G F i E 5 [ ^ ] = $ ", -"# & ; ! / 2 6 u g n p v w x y z A A B B C C C C C D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D C C C C C B A A z y x w v p n g u 6 2 / ! ; & # ", -"@ $ = , { ( 2 0 _+c g m %.F p K.r s s t t t t t t v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v t t t t t s s r K.p F %.m g c _+0 2 ( { , = $ @ ", -"+ # % - , ~ 1 [ 3 0 9 a l $.j e g g h h h i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i h h g g e j $.l a 9 0 3 [ 1 ~ ] - % # + ", -". + # & - , ! | 1 < 2 3 4 5 6 7 7 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 8 8 7 7 6 5 4 3 2 < 1 | ! , - & # + . ", -" . @ # % = ; ] ! { ^ / ( _ : : < < [ [ [ [ [ [ [ } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } [ [ [ [ [ [ < < < : _ ( / ^ { ! ] ; = % # @ . ", -" . @ # $ & = - > ] ' ) ! ! ~ ~ ~ ~ ~ ~ { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { ~ ~ ~ ~ ~ ! ! ) ' ] > - = & $ # @ . ", -" . + @ # $ % & * = = - - ; ; ; ; ; ; ; ; ; ; > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ; ; ; ; ; ; ; ; ; - - = = * & % $ # @ + . "}; diff --git a/src/libaudgui/confirm.c b/src/libaudgui/confirm.c index 1b9c474..2330c07 100644 --- a/src/libaudgui/confirm.c +++ b/src/libaudgui/confirm.c @@ -1,6 +1,6 @@ /* * libaudgui/confirm.c - * Copyright 2010 John Lindgren + * Copyright 2010-2011 John Lindgren * * This file is part of Audacious. * @@ -19,7 +19,10 @@ * using our public API to be a derived work. */ +#include <gtk/gtk.h> + #include <audacious/audconfig.h> +#include <audacious/gtk-compat.h> #include <audacious/i18n.h> #include <audacious/playlist.h> @@ -86,9 +89,7 @@ void audgui_confirm_playlist_delete (gint playlist) button = gtk_button_new_from_stock (GTK_STOCK_YES); gtk_box_pack_end ((GtkBox *) hbox, button, FALSE, FALSE, 0); -#if GTK_CHECK_VERSION (2, 18, 0) gtk_widget_set_can_default (button, TRUE); -#endif gtk_widget_grab_default (button); gtk_widget_grab_focus (button); g_signal_connect ((GObject *) button, "clicked", (GCallback) @@ -98,3 +99,32 @@ void audgui_confirm_playlist_delete (gint playlist) gtk_widget_show_all (window); } + +static void rename_cb (GtkDialog * dialog, gint resp, void * list) +{ + if (resp == GTK_RESPONSE_ACCEPT && GPOINTER_TO_INT (list) < + aud_playlist_count ()) + aud_playlist_set_title (GPOINTER_TO_INT (list), gtk_entry_get_text + ((GtkEntry *) g_object_get_data ((GObject *) dialog, "entry"))); + + gtk_widget_destroy ((GtkWidget *) dialog); +} + +void audgui_show_playlist_rename (gint playlist) +{ + GtkWidget * dialog = gtk_dialog_new_with_buttons (_("Rename Playlist"), + NULL, 0, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, GTK_STOCK_CANCEL, + GTK_RESPONSE_REJECT, NULL); + gtk_dialog_set_default_response ((GtkDialog *) dialog, GTK_RESPONSE_ACCEPT); + + GtkWidget * entry = gtk_entry_new (); + gtk_entry_set_text ((GtkEntry *) entry, aud_playlist_get_title (playlist)); + gtk_entry_set_activates_default ((GtkEntry *) entry, TRUE); + gtk_box_pack_start ((GtkBox *) gtk_dialog_get_content_area ((GtkDialog *) + dialog), entry, FALSE, FALSE, 0); + g_object_set_data ((GObject *) dialog, "entry", entry); + + g_signal_connect (dialog, "response", (GCallback) rename_cb, GINT_TO_POINTER + (playlist)); + gtk_widget_show_all (dialog); +} diff --git a/src/libaudgui/effects-menu.c b/src/libaudgui/effects-menu.c index 93fc18f..67cc118 100644 --- a/src/libaudgui/effects-menu.c +++ b/src/libaudgui/effects-menu.c @@ -27,13 +27,26 @@ #include "libaudgui-gtk.h" -static void enable_cb (GtkCheckMenuItem * item, PluginHandle * plugin) +static gboolean watch_cb (PluginHandle * plugin, GtkCheckMenuItem * item) { - aud_effect_plugin_enable (plugin, gtk_check_menu_item_get_active (item)); + gboolean enabled = aud_plugin_get_enabled (plugin); + gtk_check_menu_item_set_active (item, enabled); GtkWidget * settings = g_object_get_data ((GObject *) item, "settings"); if (settings != NULL) - gtk_widget_set_sensitive (settings, gtk_check_menu_item_get_active (item)); + gtk_widget_set_sensitive (settings, enabled); + + return TRUE; +} + +static void enable_cb (GtkCheckMenuItem * item, PluginHandle * plugin) +{ + aud_plugin_enable (plugin, gtk_check_menu_item_get_active (item)); +} + +static void destroy_cb (GtkCheckMenuItem * item, PluginHandle * plugin) +{ + aud_plugin_remove_watch (plugin, (PluginForEachFunc) watch_cb, item); } static void settings_cb (GtkMenuItem * settings, PluginHandle * plugin) @@ -53,7 +66,9 @@ static gboolean add_item_cb (PluginHandle * plugin, GtkWidget * menu) gtk_check_menu_item_set_active ((GtkCheckMenuItem *) item, aud_plugin_get_enabled (plugin)); gtk_menu_shell_append ((GtkMenuShell *) menu, item); + aud_plugin_add_watch (plugin, (PluginForEachFunc) watch_cb, item); g_signal_connect (item, "toggled", (GCallback) enable_cb, plugin); + g_signal_connect (item, "destroy", (GCallback) destroy_cb, plugin); gtk_widget_show (item); if (aud_plugin_has_configure (plugin)) diff --git a/src/libaudgui/icons-stock.c b/src/libaudgui/icons-stock.c index c96daf3..fd25c94 100644 --- a/src/libaudgui/icons-stock.c +++ b/src/libaudgui/icons-stock.c @@ -23,21 +23,25 @@ #include <gdk/gdk.h> #include <gtk/gtk.h> +#include <audacious/misc.h> -static void -load_stock_icon(gchar *id, gchar *filename, GtkIconFactory *iconfactory) +static void load_stock_icon (gchar * id, gchar * filename, + GtkIconFactory * iconfactory) { - GtkIconSet *iconset; - GdkPixbuf *pixbuf; + gchar * path = g_strdup_printf ("%s/images/%s", + aud_get_path (AUD_PATH_DATA_DIR), filename); - pixbuf = gdk_pixbuf_new_from_file(filename, NULL); + GdkPixbuf * pixbuf = gdk_pixbuf_new_from_file (path, NULL); if (pixbuf == NULL) - return; + goto ERR; - iconset = gtk_icon_set_new_from_pixbuf(pixbuf); + GtkIconSet * iconset = gtk_icon_set_new_from_pixbuf(pixbuf); g_object_unref(pixbuf); gtk_icon_factory_add(iconfactory, id, iconset); + +ERR: + g_free (path); } void @@ -46,14 +50,13 @@ audgui_register_stock_icons(void) GtkIconFactory *iconfactory = gtk_icon_factory_new(); load_stock_icon(AUD_STOCK_PLAYLIST, - DATA_DIR "/images/menu_playlist.png", iconfactory); + "menu_playlist.png", iconfactory); load_stock_icon(AUD_STOCK_PLUGIN, - DATA_DIR "/images/menu_plugin.png", iconfactory); + "menu_plugin.png", iconfactory); load_stock_icon(AUD_STOCK_QUEUETOGGLE, - DATA_DIR "/images/menu_queue_toggle.png", iconfactory); + "menu_queue_toggle.png", iconfactory); load_stock_icon(AUD_STOCK_RANDOMIZEPL, - DATA_DIR "/images/menu_randomize_playlist.png", iconfactory); - + "menu_randomize_playlist.png", iconfactory); gtk_icon_factory_add_default( iconfactory ); g_object_unref( iconfactory ); diff --git a/src/libaudgui/iface-menu.c b/src/libaudgui/iface-menu.c index 3a9b76d..24b2834 100644 --- a/src/libaudgui/iface-menu.c +++ b/src/libaudgui/iface-menu.c @@ -28,13 +28,12 @@ static void switch_cb (GtkMenuItem * item, PluginHandle * plugin) { if (gtk_check_menu_item_get_active ((GtkCheckMenuItem *) item)) - aud_iface_plugin_set_active (plugin); + aud_plugin_enable (plugin, TRUE); } typedef struct { GtkWidget * menu; GSList * group; - PluginHandle * active_plugin; } IfaceMenuAddState; static gboolean add_item_cb (PluginHandle * plugin, IfaceMenuAddState * state) @@ -42,7 +41,7 @@ static gboolean add_item_cb (PluginHandle * plugin, IfaceMenuAddState * state) GtkWidget * item = gtk_radio_menu_item_new_with_label (state->group, aud_plugin_get_name (plugin)); state->group = gtk_radio_menu_item_get_group ((GtkRadioMenuItem *) item); - if (plugin == state->active_plugin) + if (aud_plugin_get_enabled (plugin)) gtk_check_menu_item_set_active ((GtkCheckMenuItem *) item, TRUE); gtk_menu_shell_append ((GtkMenuShell *) state->menu, item); g_signal_connect (item, "activate", (GCallback) switch_cb, plugin); @@ -52,8 +51,7 @@ static gboolean add_item_cb (PluginHandle * plugin, IfaceMenuAddState * state) GtkWidget * audgui_create_iface_menu (void) { - IfaceMenuAddState state = {gtk_menu_new (), NULL, - aud_iface_plugin_get_active ()}; + IfaceMenuAddState state = {gtk_menu_new (), NULL}; aud_plugin_for_each (PLUGIN_TYPE_IFACE, (PluginForEachFunc) add_item_cb, & state); return state.menu; diff --git a/src/libaudgui/infopopup.c b/src/libaudgui/infopopup.c index 55110af..f9c42eb 100644 --- a/src/libaudgui/infopopup.c +++ b/src/libaudgui/infopopup.c @@ -25,8 +25,8 @@ #include <string.h> #include <audacious/audconfig.h> -#include <audacious/compatibility.h> #include <audacious/drct.h> +#include <audacious/gtk-compat.h> #include <audacious/i18n.h> #include <audacious/misc.h> #include <audacious/playlist.h> @@ -35,7 +35,16 @@ #include "libaudgui.h" #include "libaudgui-gtk.h" -#define DEFAULT_ARTWORK DATA_DIR "/images/audio.png" +static const gchar * get_default_artwork (void) +{ + static gchar * path = NULL; + if (! path) + path = g_strdup_printf ("%s/images/audio.png", + aud_get_path (AUD_PATH_DATA_DIR)); + return path; +} + +#define DEFAULT_ARTWORK (get_default_artwork ()) static GtkWidget * infopopup = NULL; @@ -246,8 +255,6 @@ static void infopopup_create (void) /* track progress */ infopopup_progress = gtk_progress_bar_new (); - gtk_progress_bar_set_orientation ((GtkProgressBar *) infopopup_progress, - GTK_PROGRESS_LEFT_TO_RIGHT); gtk_progress_bar_set_text ((GtkProgressBar *) infopopup_progress, ""); gtk_table_attach ((GtkTable *) infopopup_data_table, infopopup_progress, 0, 2, 7, 8, GTK_FILL, 0, 0, 0); diff --git a/src/libaudgui/infowin.c b/src/libaudgui/infowin.c index c103aba..13d1c47 100644 --- a/src/libaudgui/infowin.c +++ b/src/libaudgui/infowin.c @@ -26,6 +26,7 @@ #include <stdarg.h> #include <audacious/audconfig.h> +#include <audacious/gtk-compat.h> #include <audacious/i18n.h> #include <audacious/misc.h> #include <audacious/playlist.h> @@ -36,7 +37,7 @@ #include "libaudgui.h" #include "libaudgui-gtk.h" -#define STATUS_TIMEOUT 3000 +#define AUDGUI_STATUS_TIMEOUT 3000 static GtkWidget * infowin = NULL; @@ -51,14 +52,11 @@ static GtkWidget * entry_genre; static GtkWidget * image_artwork; -static GtkWidget * image_fileicon; static GtkWidget * label_format_name; static GtkWidget * label_quality; static GtkWidget * label_bitrate; static GtkWidget * btn_apply; static GtkWidget * label_mini_status; -static GtkWidget * arrow_rawdata; -static GtkWidget * treeview_rawdata; enum { @@ -68,55 +66,53 @@ enum }; static gchar * current_file = NULL; -static InputPlugin * current_decoder = NULL; +static PluginHandle * current_decoder = NULL; static gboolean can_write = FALSE, something_changed = FALSE; -static const gchar * genre_table[] = -{ - N_("Blues"), N_("Classic Rock"), N_("Country"), N_("Dance"), - N_("Disco"), N_("Funk"), N_("Grunge"), N_("Hip-Hop"), - N_("Jazz"), N_("Metal"), N_("New Age"), N_("Oldies"), - N_("Other"), N_("Pop"), N_("R&B"), N_("Rap"), N_("Reggae"), - N_("Rock"), N_("Techno"), N_("Industrial"), N_("Alternative"), - N_("Ska"), N_("Death Metal"), N_("Pranks"), N_("Soundtrack"), - N_("Euro-Techno"), N_("Ambient"), N_("Trip-Hop"), N_("Vocal"), - N_("Jazz+Funk"), N_("Fusion"), N_("Trance"), N_("Classical"), - N_("Instrumental"), N_("Acid"), N_("House"), N_("Game"), - N_("Sound Clip"), N_("Gospel"), N_("Noise"), N_("AlternRock"), - N_("Bass"), N_("Soul"), N_("Punk"), N_("Space"), - N_("Meditative"), N_("Instrumental Pop"), - N_("Instrumental Rock"), N_("Ethnic"), N_("Gothic"), - N_("Darkwave"), N_("Techno-Industrial"), N_("Electronic"), - N_("Pop-Folk"), N_("Eurodance"), N_("Dream"), - N_("Southern Rock"), N_("Comedy"), N_("Cult"), - N_("Gangsta Rap"), N_("Top 40"), N_("Christian Rap"), - N_("Pop/Funk"), N_("Jungle"), N_("Native American"), - N_("Cabaret"), N_("New Wave"), N_("Psychedelic"), N_("Rave"), - N_("Showtunes"), N_("Trailer"), N_("Lo-Fi"), N_("Tribal"), - N_("Acid Punk"), N_("Acid Jazz"), N_("Polka"), N_("Retro"), - N_("Musical"), N_("Rock & Roll"), N_("Hard Rock"), N_("Folk"), - N_("Folk/Rock"), N_("National Folk"), N_("Swing"), - N_("Fast-Fusion"), N_("Bebob"), N_("Latin"), N_("Revival"), - N_("Celtic"), N_("Bluegrass"), N_("Avantgarde"), - N_("Gothic Rock"), N_("Progressive Rock"), - N_("Psychedelic Rock"), N_("Symphonic Rock"), N_("Slow Rock"), - N_("Big Band"), N_("Chorus"), N_("Easy Listening"), - N_("Acoustic"), N_("Humour"), N_("Speech"), N_("Chanson"), - N_("Opera"), N_("Chamber Music"), N_("Sonata"), N_("Symphony"), - N_("Booty Bass"), N_("Primus"), N_("Porn Groove"), - N_("Satire"), N_("Slow Jam"), N_("Club"), N_("Tango"), - N_("Samba"), N_("Folklore"), N_("Ballad"), N_("Power Ballad"), - N_("Rhythmic Soul"), N_("Freestyle"), N_("Duet"), - N_("Punk Rock"), N_("Drum Solo"), N_("A Cappella"), - N_("Euro-House"), N_("Dance Hall"), N_("Goa"), - N_("Drum & Bass"), N_("Club-House"), N_("Hardcore"), - N_("Terror"), N_("Indie"), N_("BritPop"), N_("Negerpunk"), - N_("Polsk Punk"), N_("Beat"), N_("Christian Gangsta Rap"), - N_("Heavy Metal"), N_("Black Metal"), N_("Crossover"), - N_("Contemporary Christian"), N_("Christian Rock"), - N_("Merengue"), N_("Salsa"), N_("Thrash Metal"), - N_("Anime"), N_("JPop"), N_("Synthpop") -}; +/* This is by no means intended to be a complete list. If it is not short, it + * is useless: scrolling through ten pages of dropdown list is more work than + * typing out the genre. */ + +static const gchar * genre_table[] = { + N_("Acid Jazz"), + N_("Acid Rock"), + N_("Ambient"), + N_("Bebop"), + N_("Bluegrass"), + N_("Blues"), + N_("Chamber Music"), + N_("Classical"), + N_("Country"), + N_("Death Metal"), + N_("Disco"), + N_("Easy Listening"), + N_("Folk"), + N_("Funk"), + N_("Gangsta Rap"), + N_("Gospel"), + N_("Grunge"), + N_("Hard Rock"), + N_("Heavy Metal"), + N_("Hip-hop"), + N_("House"), + N_("Jazz"), + N_("Jungle"), + N_("Metal"), + N_("New Age"), + N_("New Wave"), + N_("Noise"), + N_("Pop"), + N_("Punk Rock"), + N_("Rap"), + N_("Reggae"), + N_("Rock"), + N_("Rock and Roll"), + N_("Rhythm and Blues"), + N_("Ska"), + N_("Soul"), + N_("Swing"), + N_("Techno"), + N_("Trip-hop")}; static void set_entry_str_from_field (GtkWidget * widget, const Tuple * tuple, gint fieldn, gboolean editable) @@ -181,18 +177,14 @@ static void infowin_label_set_text (GtkWidget * widget, const gchar * text) gtk_label_set_use_markup ((GtkLabel *) widget, TRUE); } -static void infowin_entry_set_image (GtkWidget * widget, const char * text) +static void infowin_entry_set_image (GtkWidget * widget, gint list, gint entry) { - GdkPixbuf * pixbuf; - - pixbuf = gdk_pixbuf_new_from_file (text, NULL); - g_return_if_fail (pixbuf != NULL); - - if (strcmp (DATA_DIR "/images/audio.png", text)) - audgui_pixbuf_scale_within (& pixbuf, aud_cfg->filepopup_pixelsize); + GdkPixbuf * p = audgui_pixbuf_for_entry (list, entry); + g_return_if_fail (p); - gtk_image_set_from_pixbuf ((GtkImage *) widget, pixbuf); - g_object_unref (pixbuf); + audgui_pixbuf_scale_within (& p, aud_cfg->filepopup_pixelsize); + gtk_image_set_from_pixbuf ((GtkImage *) widget, p); + g_object_unref ((GObject *) p); } static void clear_infowin (void) @@ -221,8 +213,7 @@ static void clear_infowin (void) something_changed = FALSE; can_write = FALSE; gtk_widget_set_sensitive (btn_apply, FALSE); - - infowin_entry_set_image (image_artwork, DATA_DIR "/images/audio.png"); + gtk_image_clear ((GtkImage *) image_artwork); } static void entry_changed (GtkEditable * editable, void * unused) @@ -252,7 +243,7 @@ static void ministatus_display_message (const gchar * text) gtk_label_set_use_markup ((GtkLabel *) label_mini_status, TRUE); g_free (tmp); - g_timeout_add (STATUS_TIMEOUT, (GSourceFunc) ministatus_timeout_proc, + g_timeout_add (AUDGUI_STATUS_TIMEOUT, (GSourceFunc) ministatus_timeout_proc, label_mini_status); } @@ -281,80 +272,6 @@ static void infowin_update_tuple (void * unused) mowgli_object_unref (tuple); } -/** - * Looks up an icon from a NULL-terminated list of icon names. - * - * size: the requested size - * name: the default name - * ... : a NULL-terminated list of alternates - */ -static GdkPixbuf * themed_icon_lookup (gint size, const gchar * name, ...) -{ - GtkIconTheme * icon_theme; - GdkPixbuf * pixbuf; - const gchar * n; - va_list par; - - icon_theme = gtk_icon_theme_get_default (); - pixbuf = gtk_icon_theme_load_icon (icon_theme, name, size, 0, NULL); - - if (pixbuf != NULL) - return pixbuf; - - /* fallback */ - va_start (par, name); - - while ((n = va_arg (par, const gchar *)) != NULL) - { - pixbuf = gtk_icon_theme_load_icon (icon_theme, n, size, 0, NULL); - - if (pixbuf) - { - va_end (par); - return pixbuf; - } - } - - va_end (par); - return NULL; -} - -/** - * Intelligently looks up an icon for a mimetype. Supports - * HIDEOUSLY BROKEN gnome icon naming scheme too. - * - * size : the requested size - * mime_type: the mime type. - */ -static GdkPixbuf * mime_icon_lookup (gint size, const gchar * mime_type) -{ - gchar * mime_as_is; /* audio-x-mp3 */ - gchar * mime_gnome; /* gnome-mime-audio-x-mp3 */ - gchar * mime_generic; /* audio-x-generic */ - gchar * mime_gnome_generic; /* gnome-mime-audio */ - GdkPixbuf * icon = NULL; - gchar * * s = g_strsplit (mime_type, "/", 2); - - if (s[1] != NULL) - { - mime_as_is = g_strdup_printf ("%s-%s", s[0], s[1]); - mime_gnome = g_strdup_printf ("gnome-mime-%s-%s", s[0], s[1]); - mime_generic = g_strdup_printf ("%s-x-generic", s[0]); - mime_gnome_generic = g_strdup_printf ("gnome-mime-%s", s[0]); - - icon = themed_icon_lookup (size, mime_as_is, mime_gnome, mime_generic, - mime_gnome_generic, s[0], NULL); /* s[0] is category */ - - g_free (mime_gnome_generic); - g_free (mime_generic); - g_free (mime_gnome); - g_free (mime_as_is); - } - - g_strfreev (s); - return icon; -} - gboolean genre_fill (GtkWidget * combo) { GList * list = NULL; @@ -367,7 +284,7 @@ gboolean genre_fill (GtkWidget * combo) list = g_list_sort (list, (GCompareFunc) strcmp); for (node = list; node != NULL; node = node->next) - gtk_combo_box_append_text ((GtkComboBox *) combo, node->data); + gtk_combo_box_text_append_text ((GtkComboBoxText *) combo, node->data); g_list_free (list); return FALSE; @@ -378,9 +295,7 @@ void create_infowin (void) GtkWidget * hbox; GtkWidget * hbox_status_and_bbox; GtkWidget * vbox0; - GtkWidget * vbox1; GtkWidget * vbox2; - GtkWidget * vbox3; GtkWidget * label_title; GtkWidget * label_artist; GtkWidget * label_album; @@ -388,8 +303,6 @@ void create_infowin (void) GtkWidget * label_genre; GtkWidget * label_year; GtkWidget * label_track; - GtkWidget * label_location; - GtkWidget * label_general; GtkWidget * label_format; GtkWidget * label_quality_label; GtkWidget * label_bitrate_label; @@ -399,10 +312,6 @@ void create_infowin (void) GtkWidget * bbox_close; GtkWidget * btn_close; GtkWidget * alignment; - GtkWidget * separator; - GtkWidget * scrolledwindow; - GtkTreeViewColumn * column; - GtkCellRenderer * renderer; infowin = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width ((GtkContainer *) infowin, 6); @@ -416,47 +325,25 @@ void create_infowin (void) hbox = gtk_hbox_new (FALSE, 6); gtk_box_pack_start ((GtkBox *) vbox0, hbox, TRUE, TRUE, 0); - image_artwork = gtk_image_new (); - gtk_box_pack_start ((GtkBox *) hbox, image_artwork, FALSE, FALSE, 0); - gtk_misc_set_alignment ((GtkMisc *) image_artwork, 0.5, 0); - gtk_image_set_from_file ((GtkImage *) image_artwork, DATA_DIR - "/images/audio.png"); - separator = gtk_vseparator_new (); - gtk_box_pack_start ((GtkBox *) hbox, separator, FALSE, FALSE, 0); - - vbox1 = gtk_vbox_new (FALSE, 0); - gtk_box_pack_start ((GtkBox *) hbox, vbox1, TRUE, TRUE, 0); - - alignment = gtk_alignment_new (0.5, 0.5, 1, 1); - gtk_box_pack_start ((GtkBox *) vbox1, alignment, TRUE, TRUE, 0); + vbox2 = gtk_vbox_new (FALSE, 6); + gtk_box_pack_start ((GtkBox *) hbox, vbox2, TRUE, TRUE, 0); - vbox2 = gtk_vbox_new (FALSE, 0); - gtk_container_add ((GtkContainer *) alignment, vbox2); - - alignment = gtk_alignment_new (0.5, 0.5, 1, 1); - gtk_box_pack_start ((GtkBox *) vbox1, alignment, TRUE, TRUE, 0); - - vbox3 = gtk_vbox_new(FALSE, 0); - gtk_container_add ((GtkContainer *) alignment, vbox3); - - label_general = gtk_label_new (_("<span size=\"small\">General</span>")); - gtk_box_pack_start ((GtkBox *) vbox2, label_general, FALSE, FALSE, 0); - gtk_label_set_use_markup ((GtkLabel *) label_general, TRUE); - gtk_misc_set_alignment ((GtkMisc *) label_general, 0, 0.5); + image_artwork = gtk_image_new (); + gtk_box_pack_start ((GtkBox *) vbox2, image_artwork, TRUE, TRUE, 0); - alignment = gtk_alignment_new (0.5, 0.5, 1, 1); - gtk_alignment_set_padding ((GtkAlignment *) alignment, 6, 6, 0, 0); - gtk_box_pack_start ((GtkBox *) vbox2, alignment, FALSE, FALSE, 0); + location_text = gtk_label_new (""); + gtk_widget_set_size_request (location_text, 200, -1); + gtk_label_set_line_wrap ((GtkLabel *) location_text, TRUE); + gtk_label_set_line_wrap_mode ((GtkLabel *) location_text, + PANGO_WRAP_WORD_CHAR); + gtk_label_set_selectable ((GtkLabel *) location_text, TRUE); + gtk_box_pack_start ((GtkBox *) vbox2, location_text, FALSE, FALSE, 0); codec_hbox = gtk_hbox_new (FALSE, 6); - gtk_container_add ((GtkContainer *) alignment, codec_hbox); - - image_fileicon = gtk_image_new_from_stock (GTK_STOCK_MISSING_IMAGE, - GTK_ICON_SIZE_DIALOG); - gtk_box_pack_start ((GtkBox *) codec_hbox, image_fileicon, FALSE, FALSE, 0); + gtk_box_pack_start ((GtkBox *) vbox2, codec_hbox, FALSE, FALSE, 0); codec_table = gtk_table_new(3, 2, FALSE); - gtk_table_set_row_spacings ((GtkTable *) codec_table, 6); + gtk_table_set_row_spacings ((GtkTable *) codec_table, 3); gtk_table_set_col_spacings ((GtkTable *) codec_table, 12); gtk_box_pack_start ((GtkBox *) codec_hbox, codec_table, FALSE, FALSE, 0); @@ -494,6 +381,9 @@ void create_infowin (void) gtk_table_attach ((GtkTable *) codec_table, label_bitrate, 1, 2, 2, 3, GTK_EXPAND | GTK_FILL, 0, 0, 0); + vbox2 = gtk_vbox_new (FALSE, 0); + gtk_box_pack_start ((GtkBox *) hbox, vbox2, TRUE, TRUE, 0); + label_title = gtk_label_new (_("<span size=\"small\">Title</span>")); gtk_box_pack_start ((GtkBox *) vbox2, label_title, FALSE, FALSE, 0); gtk_label_set_use_markup ((GtkLabel *) label_title, TRUE); @@ -550,8 +440,8 @@ void create_infowin (void) alignment = gtk_alignment_new (0.5, 0.5, 1, 1); gtk_box_pack_start ((GtkBox *) vbox2, alignment, FALSE, FALSE, 0); gtk_alignment_set_padding ((GtkAlignment *) alignment, 0, 6, 0, 0); - entry_genre = gtk_combo_box_entry_new_text (); + entry_genre = gtk_combo_box_text_new_with_entry (); gtk_container_add ((GtkContainer *) alignment, entry_genre); g_signal_connect (entry_genre, "changed", (GCallback) entry_changed, NULL); g_idle_add ((GSourceFunc) genre_fill, entry_genre); @@ -585,77 +475,6 @@ void create_infowin (void) GTK_FILL, 0, 0, 0); g_signal_connect (entry_track, "changed", (GCallback) entry_changed, NULL); - label_location = gtk_label_new (_("<span size=\"small\">Location</span>")); - gtk_box_pack_start ((GtkBox *) vbox2, label_location, FALSE, FALSE, 0); - gtk_label_set_use_markup ((GtkLabel *) label_location, TRUE); - gtk_misc_set_alignment ((GtkMisc *) label_location, 0, 0.5); - - alignment = gtk_alignment_new (0, 0, 0, 0); - gtk_alignment_set_padding ((GtkAlignment *) alignment, 3, 6, 25, 0); - gtk_box_pack_start ((GtkBox *) vbox2, alignment, FALSE, FALSE, 0); - - location_text = gtk_label_new (""); - gtk_widget_set_size_request (location_text, 375, -1); - gtk_label_set_line_wrap ((GtkLabel *) location_text, TRUE); -#if GTK_CHECK_VERSION (2, 10, 0) - gtk_label_set_line_wrap_mode ((GtkLabel *) location_text, - PANGO_WRAP_WORD_CHAR); -#endif - gtk_label_set_selectable ((GtkLabel *) location_text, TRUE); - gtk_container_add ((GtkContainer *) alignment, location_text); - - alignment = gtk_alignment_new (0.5, 0.5, 1, 1); - hbox = gtk_hbox_new (FALSE, 0); - gtk_container_add ((GtkContainer *) alignment, hbox); - gtk_box_pack_start ((GtkBox *) vbox3, alignment, TRUE, TRUE, 0); - - alignment = gtk_alignment_new (0.5, 0.5, 1, 1); - gtk_alignment_set_padding ((GtkAlignment *) (alignment), 0, 6, 0, 0); - arrow_rawdata = gtk_expander_new - (_("<span size=\"small\">Raw Metadata</span>")); - gtk_expander_set_use_markup ((GtkExpander *) arrow_rawdata, TRUE); - gtk_container_add ((GtkContainer *) alignment, arrow_rawdata); - gtk_box_pack_start ((GtkBox *) hbox, alignment, TRUE, TRUE, 0); - - scrolledwindow = gtk_scrolled_window_new (NULL, NULL); - gtk_scrolled_window_set_policy ((GtkScrolledWindow *) scrolledwindow, - GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - gtk_scrolled_window_set_shadow_type ((GtkScrolledWindow *) scrolledwindow, - GTK_SHADOW_IN); - gtk_container_add ((GtkContainer *) arrow_rawdata, scrolledwindow); - - treeview_rawdata = gtk_tree_view_new (); - gtk_container_add ((GtkContainer *) scrolledwindow, treeview_rawdata); - gtk_tree_view_set_rules_hint ((GtkTreeView *) treeview_rawdata, TRUE); - gtk_tree_view_set_reorderable ((GtkTreeView *) treeview_rawdata, TRUE); - gtk_widget_set_size_request (treeview_rawdata, -1, 130); - - column = gtk_tree_view_column_new (); - gtk_tree_view_column_set_title (column, _("Key")); - gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_AUTOSIZE); - gtk_tree_view_column_set_spacing (column, 4); - gtk_tree_view_column_set_resizable (column, FALSE); - gtk_tree_view_column_set_fixed_width (column, 50); - - renderer = gtk_cell_renderer_text_new (); - gtk_tree_view_column_pack_start (column, renderer, FALSE); - gtk_tree_view_column_set_attributes (column, renderer, "text", RAWDATA_KEY, - NULL); - gtk_tree_view_append_column ((GtkTreeView *) treeview_rawdata, column); - - column = gtk_tree_view_column_new (); - gtk_tree_view_column_set_title (column, _("Value")); - gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_AUTOSIZE); - gtk_tree_view_column_set_spacing (column, 4); - gtk_tree_view_column_set_resizable (column, FALSE); - gtk_tree_view_column_set_fixed_width (column, 50); - - renderer = gtk_cell_renderer_text_new (); - gtk_tree_view_column_pack_start (column, renderer, FALSE); - gtk_tree_view_column_set_attributes (column, renderer, "text", - RAWDATA_VALUE, NULL); - gtk_tree_view_append_column ((GtkTreeView *) treeview_rawdata, column); - hbox_status_and_bbox = gtk_hbox_new (FALSE, 0); gtk_box_pack_start ((GtkBox *) vbox0, hbox_status_and_bbox, FALSE, FALSE, 0); @@ -686,73 +505,13 @@ void create_infowin (void) audgui_hide_on_escape (infowin); gtk_widget_show_all (vbox0); + gtk_widget_grab_focus (entry_title); } -/* Converts filenames (in place) for easy reading, thus: - * - * file:///home/me/Music/My song.ogg -> Music - * My song.ogg - * - * file:///media/disk/My song.ogg -> / - * media - * disk - * My song.ogg - */ -static gchar * easy_read_filename (gchar * file) -{ - const gchar * home; - gint len; - - if (strncmp (file, "file:///", 8)) - return file; - - home = getenv ("HOME"); - len = (home == NULL) ? 0 : strlen (home); - len = (len > 0 && home[len - 1] == '/') ? len - 1 : len; - - if (len > 0 && ! strncmp (file + 7, home, len) && file[len + 7] == '/') - { - string_replace_char (file + len + 8, '/', '\n'); - return file + len + 8; - } - - string_replace_char (file + 7, '/', '\n'); - return file + 6; -} - -static gboolean set_image_from_album_art (const gchar * filename, InputPlugin * - decoder) +static void infowin_show (gint list, gint entry, const gchar * filename, + const Tuple * tuple, PluginHandle * decoder, gboolean updating_enabled) { - GdkPixbuf * pixbuf = NULL; - void * data; - gint size; - - if (aud_file_read_image (filename, decoder, & data, & size)) - { - pixbuf = audgui_pixbuf_from_data (data, size); - g_free (data); - } - - if (pixbuf == NULL) - return FALSE; - - audgui_pixbuf_scale_within (& pixbuf, aud_cfg->filepopup_pixelsize); - gtk_image_set_from_pixbuf ((GtkImage *) image_artwork, pixbuf); - g_object_unref (pixbuf); - return TRUE; -} - -static void infowin_show (const gchar * filename, const Tuple * tuple, - InputPlugin * decoder, gboolean updating_enabled) -{ - const gchar * string; gchar * tmp; - GdkPixbuf * icon; - GtkTreeIter iter; - GtkListStore * store; - mowgli_dictionary_iteration_state_t state; - TupleValue * tvalue; - gint i; if (infowin == NULL) create_infowin (); @@ -772,18 +531,8 @@ static void infowin_show (const gchar * filename, const Tuple * tuple, set_entry_str_from_field (gtk_bin_get_child ((GtkBin *) entry_genre), tuple, FIELD_GENRE, updating_enabled); - tmp = g_strdup (filename); - string_decode_percent (tmp); - - /* Convert invalid UTF-8 URI's quietly. */ - if (! g_utf8_validate (tmp, -1, NULL)) - { - gchar * copy = str_to_utf8 (tmp); - g_free (tmp); - tmp = copy; - } - - gtk_label_set_text ((GtkLabel *) location_text, easy_read_filename (tmp)); + tmp = uri_to_display (filename); + gtk_label_set_text ((GtkLabel *) location_text, tmp); g_free (tmp); set_entry_int_from_field (entry_year, tuple, FIELD_YEAR, updating_enabled); @@ -805,69 +554,7 @@ static void infowin_show (const gchar * filename, const Tuple * tuple, else infowin_label_set_text (label_bitrate, NULL); - string = tuple_get_string (tuple, FIELD_MIMETYPE, NULL); - icon = mime_icon_lookup (48, string != NULL ? string : "audio/x-generic"); - - if (icon != NULL) - { - gtk_image_set_from_pixbuf ((GtkImage *) image_fileicon, icon); - g_object_unref (icon); - } - - if (! set_image_from_album_art (filename, decoder)) - { - tmp = aud_get_associated_image_file (filename); - - if (tmp != NULL) - { - infowin_entry_set_image (image_artwork, tmp); - g_free (tmp); - } - } - - store = gtk_list_store_new (RAWDATA_N_COLS, G_TYPE_STRING, G_TYPE_STRING); - - for (i = 0; i < FIELD_LAST; i ++) - { - gchar * value; - - if (tuple->values[i] == NULL) - continue; - - if (tuple->values[i]->type == TUPLE_INT) - value = g_strdup_printf ("%d", tuple->values[i]->value.integer); - else if (tuple->values[i]->value.string != NULL) - value = g_strdup (tuple->values[i]->value.string); - else - continue; - - gtk_list_store_append (store, & iter); - gtk_list_store_set (store, & iter, RAWDATA_KEY, tuple_fields[i].name, - RAWDATA_VALUE, value, -1); - g_free (value); - } - - /* non-standard values are stored in a dictionary. */ - MOWGLI_DICTIONARY_FOREACH (tvalue, & state, tuple->dict) - { - gchar * value; - - if (tvalue->type == TUPLE_INT) - value = g_strdup_printf ("%d", tvalue->value.integer); - else if (tvalue->value.string != NULL) - value = g_strdup (tvalue->value.string); - else - continue; - - gtk_list_store_append (store, & iter); - gtk_list_store_set (store, & iter, RAWDATA_KEY, state.cur->key, - RAWDATA_VALUE, value, -1); - g_free (value); - } - - gtk_tree_view_set_model ((GtkTreeView *) treeview_rawdata, (GtkTreeModel *) - store); - g_object_unref (store); + infowin_entry_set_image (image_artwork, list, entry); gtk_window_present ((GtkWindow *) infowin); } @@ -877,7 +564,8 @@ void audgui_infowin_show (gint playlist, gint entry) const gchar * filename = aud_playlist_entry_get_filename (playlist, entry); g_return_if_fail (filename != NULL); - InputPlugin * decoder = aud_file_find_decoder (filename, FALSE); + PluginHandle * decoder = aud_playlist_entry_get_decoder (playlist, entry, + FALSE); if (decoder == NULL) return; @@ -895,8 +583,8 @@ void audgui_infowin_show (gint playlist, gint entry) return; } - infowin_show (filename, tuple, decoder, aud_file_can_write_tuple (filename, - decoder)); + infowin_show (playlist, entry, filename, tuple, decoder, + aud_file_can_write_tuple (filename, decoder)); } void audgui_infowin_show_current (void) diff --git a/src/libaudgui/libaudgui-gtk.h b/src/libaudgui/libaudgui-gtk.h index f9316eb..f093851 100644 --- a/src/libaudgui/libaudgui-gtk.h +++ b/src/libaudgui/libaudgui-gtk.h @@ -34,17 +34,6 @@ void audgui_playlist_manager_update(void); void audgui_playlist_manager_ui_show(GtkWidget *mainwin); void audgui_playlist_manager_destroy(void); -/* library-store.c */ -enum -{ - AUDGUI_LIBRARY_STORE_TITLE, /* G_TYPE_STRING */ - AUDGUI_LIBRARY_STORE_FONT_WEIGHT, /* PANGO_TYPE_WEIGHT */ - AUDGUI_LIBRARY_STORE_ENTRY_COUNT, /* G_TYPE_INT */ - AUDGUI_LIBRARY_STORE_COLUMNS -}; - -GtkTreeModel * audgui_get_library_store (void); - /* util.c */ void audgui_hide_on_delete (GtkWidget * widget); void audgui_hide_on_escape (GtkWidget * widget); @@ -54,7 +43,8 @@ void audgui_simple_message (GtkWidget * * widget, GtkMessageType type, void audgui_connect_check_box (GtkWidget * box, gboolean * setting); GdkPixbuf * audgui_pixbuf_from_data (void * data, gint size); -GdkPixbuf * audgui_pixbuf_for_file (const gchar * filename); +GdkPixbuf * audgui_pixbuf_for_entry (gint playlist, gint entry); +GdkPixbuf * audgui_pixbuf_for_current (void); void audgui_pixbuf_scale_within (GdkPixbuf * * pixbuf, gint size); #endif diff --git a/src/libaudgui/libaudgui.h b/src/libaudgui/libaudgui.h index 7fc4b1c..d96c933 100644 --- a/src/libaudgui/libaudgui.h +++ b/src/libaudgui/libaudgui.h @@ -45,6 +45,7 @@ void audgui_hide_about_window(void); /* confirm.c */ void audgui_confirm_playlist_delete (gint playlist); +void audgui_show_playlist_rename (gint playlist); /* equalizer.c */ void audgui_show_equalizer_window (void); diff --git a/src/libaudgui/library-store.c b/src/libaudgui/library-store.c deleted file mode 100644 index 4439e44..0000000 --- a/src/libaudgui/library-store.c +++ /dev/null @@ -1,367 +0,0 @@ -/* - * libaudgui/library-store.c - * Copyright 2010 John Lindgren - * - * This file is part of Audacious. - * - * Audacious is free software: you can redistribute it and/or modify it under - * the terms of the GNU General Public License as published by the Free Software - * Foundation, version 2 or version 3 of the License. - * - * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - * A PARTICULAR PURPOSE. See the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along with - * Audacious. If not, see <http://www.gnu.org/licenses/>. - * - * The Audacious team does not consider modular code linking to Audacious or - * using our public API to be a derived work. - */ - -#include <audacious/playlist.h> -#include <libaudcore/hook.h> - -#include "libaudgui-gtk.h" - -typedef GObjectClass LibraryStoreClass; - -typedef struct -{ - GObject parent; - gint rows, active; -} -LibraryStore; - -static void library_store_init (LibraryStore * store) -{ - store->rows = aud_playlist_count (); - store->active = aud_playlist_get_active (); -} - -static GtkTreeModelFlags library_store_get_flags (GtkTreeModel * model) -{ - return GTK_TREE_MODEL_LIST_ONLY; -} - -static gint library_store_get_n_columns (GtkTreeModel * model) -{ - return AUDGUI_LIBRARY_STORE_COLUMNS; -} - -static GType library_store_get_column_type (GtkTreeModel * model, gint column) -{ - switch (column) - { - case AUDGUI_LIBRARY_STORE_TITLE: - return G_TYPE_STRING; - case AUDGUI_LIBRARY_STORE_FONT_WEIGHT: - return PANGO_TYPE_WEIGHT; - case AUDGUI_LIBRARY_STORE_ENTRY_COUNT: - return G_TYPE_INT; - default: - return G_TYPE_INVALID; - } -} - -static gboolean library_store_get_iter (GtkTreeModel * model, GtkTreeIter * - iter, GtkTreePath * path) -{ - LibraryStore * store = (LibraryStore *) model; - gint playlist = gtk_tree_path_get_indices (path)[0]; - - if (playlist < 0 || playlist >= store->rows) - return FALSE; - - iter->user_data = GINT_TO_POINTER (playlist); - return TRUE; -} - -static GtkTreePath * library_store_get_path (GtkTreeModel * model, GtkTreeIter * - iter) -{ - return gtk_tree_path_new_from_indices (GPOINTER_TO_INT (iter->user_data), -1); -} - -static void library_store_get_value (GtkTreeModel * model, GtkTreeIter * iter, - gint column, GValue * value) -{ - LibraryStore * store = (LibraryStore *) model; - gint playlist = GPOINTER_TO_INT (iter->user_data); - - switch (column) - { - case AUDGUI_LIBRARY_STORE_TITLE: - g_value_init (value, G_TYPE_STRING); - g_value_set_string (value, aud_playlist_get_title (playlist)); - break; - case AUDGUI_LIBRARY_STORE_FONT_WEIGHT: - g_value_init (value, PANGO_TYPE_WEIGHT); - g_value_set_enum (value, (playlist == store->active) ? PANGO_WEIGHT_BOLD - : PANGO_WEIGHT_NORMAL); - break; - case AUDGUI_LIBRARY_STORE_ENTRY_COUNT: - g_value_init (value, G_TYPE_INT); - g_value_set_int (value, aud_playlist_entry_count (playlist)); - break; - } -} - -static gboolean library_store_iter_next (GtkTreeModel * model, GtkTreeIter * - iter) -{ - if (GPOINTER_TO_INT (iter->user_data) + 1 < aud_playlist_count ()) - { - iter->user_data = GINT_TO_POINTER (GPOINTER_TO_INT (iter->user_data) + 1); - return TRUE; - } - - return FALSE; -} - -static gboolean library_store_iter_children (GtkTreeModel * model, GtkTreeIter * - iter, GtkTreeIter * parent) -{ - if (parent == NULL) /* top level */ - { - /* there is always at least one playlist */ - iter->user_data = GINT_TO_POINTER (0); - return TRUE; - } - - return FALSE; -} - -static gboolean library_store_iter_has_child (GtkTreeModel * model, - GtkTreeIter * iter) -{ - return FALSE; -} - -static gint library_store_iter_n_children (GtkTreeModel * model, GtkTreeIter * - iter) -{ - LibraryStore * store = (LibraryStore *) model; - - if (iter == NULL) /* top level */ - return store->rows; - - return 0; -} - -static gboolean library_store_iter_nth_child (GtkTreeModel * model, - GtkTreeIter * iter, GtkTreeIter * parent, gint n) -{ - LibraryStore * store = (LibraryStore *) model; - - if (parent != NULL) /* not top level */ - return FALSE; - - if (n < 0 || n >= store->rows) - return FALSE; - - iter->user_data = GINT_TO_POINTER (n); - return TRUE; -} - -static gboolean library_store_iter_parent (GtkTreeModel * model, GtkTreeIter * - iter, GtkTreeIter * child) -{ - return FALSE; -} - -static void interface_init (GtkTreeModelIface * interface) -{ - interface->get_flags = library_store_get_flags; - interface->get_n_columns = library_store_get_n_columns; - interface->get_column_type = library_store_get_column_type; - interface->get_iter = library_store_get_iter; - interface->get_path = library_store_get_path; - interface->get_value = library_store_get_value; - interface->iter_next = library_store_iter_next; - interface->iter_children = library_store_iter_children; - interface->iter_has_child = library_store_iter_has_child; - interface->iter_n_children = library_store_iter_n_children; - interface->iter_nth_child = library_store_iter_nth_child; - interface->iter_parent = library_store_iter_parent; -} - -static const GInterfaceInfo interface_info = -{ - .interface_init = (GInterfaceInitFunc) interface_init, - .interface_finalize = NULL, - .interface_data = NULL, -}; - -static gboolean library_store_drag_data_get (GtkTreeDragSource * source, - GtkTreePath * path, GtkSelectionData * data) -{ - return gtk_tree_set_row_drag_data (data, (GtkTreeModel *) source, path); -} - -static gboolean library_store_drag_data_delete (GtkTreeDragSource * source, - GtkTreePath * path) -{ - return TRUE; -} - -static void source_init (GtkTreeDragSourceIface * interface) -{ - interface->drag_data_get = library_store_drag_data_get; - interface->drag_data_delete = library_store_drag_data_delete; -} - -static const GInterfaceInfo source_info = -{ - .interface_init = (GInterfaceInitFunc) source_init, - .interface_finalize = NULL, - .interface_data = NULL, -}; - -static gboolean library_store_drag_data_received (GtkTreeDragDest * dest, - GtkTreePath * dest_path, GtkSelectionData * data) -{ - LibraryStore * store = (LibraryStore *) dest; - GtkTreeModel * model; - GtkTreePath * source_path, * top; - gint from, to, count; - gint order[store->rows]; - - if (! gtk_tree_get_row_drag_data (data, & model, & source_path)) - return FALSE; - - from = gtk_tree_path_get_indices (source_path)[0]; - to = gtk_tree_path_get_indices (dest_path)[0]; - - /* GTK gives us the number of the row before which we are to put the row. - * We want the number of the row where the row will end up. */ - if (to > from) - to --; - - if (from < 0 || from >= store->rows || to < 0 || to >= store->rows) - return FALSE; - - aud_playlist_reorder (from, to, 1); - - for (count = 0; count < from; count ++) - order[count] = count; - - if (from < to) - { - for (count = from; count < to; count ++) - order[count] = count + 1; - } - else - { - for (count = to; count < from; count ++) - order[count + 1] = count; - } - - order[to] = from; - - top = gtk_tree_path_new (); - gtk_tree_model_rows_reordered (model, top, NULL, order); - gtk_tree_path_free (top); - - return TRUE; -} - -gboolean library_store_row_drop_possible (GtkTreeDragDest * dest, - GtkTreePath * path, GtkSelectionData * selection_data) -{ - LibraryStore * store = (LibraryStore *) dest; - gint before = gtk_tree_path_get_indices (path)[0]; - - return (before >= 0 && before <= store->rows); -} - -static void dest_init (GtkTreeDragDestIface * interface) -{ - interface->drag_data_received = library_store_drag_data_received; - interface->row_drop_possible = library_store_row_drop_possible; -} - -static const GInterfaceInfo dest_info = -{ - .interface_init = (GInterfaceInitFunc) dest_init, - .interface_finalize = NULL, - .interface_data = NULL, -}; - -static GType library_store_get_type (void) -{ - static GType type = 0; - - if (! type) - { - type = g_type_register_static_simple (G_TYPE_OBJECT, "LibraryStore", - sizeof (LibraryStoreClass), NULL, sizeof (LibraryStore), - (GInstanceInitFunc) library_store_init, 0); - g_type_add_interface_static (type, GTK_TYPE_TREE_MODEL, & interface_info); - g_type_add_interface_static (type, GTK_TYPE_TREE_DRAG_SOURCE, - & source_info); - g_type_add_interface_static (type, GTK_TYPE_TREE_DRAG_DEST, & dest_info); - } - - return type; -} - -static void library_store_update (GtkTreeModel * model) -{ - LibraryStore * store = (LibraryStore *) model; - gint old_rows = store->rows; - GtkTreePath * path; - GtkTreeIter iter; - gint row; - - store->rows = aud_playlist_count (); - store->active = aud_playlist_get_active (); - - if (store->rows < old_rows) - { - path = gtk_tree_path_new_from_indices (store->rows, -1); - - for (row = store->rows; row < old_rows; row ++) - gtk_tree_model_row_deleted (model, path); - - gtk_tree_path_free (path); - old_rows = store->rows; - } - - path = gtk_tree_path_new_first (); - - for (row = 0; row < old_rows; row ++) - { - iter.user_data = GINT_TO_POINTER (row); - gtk_tree_model_row_changed (model, path, & iter); - gtk_tree_path_next (path); - } - - for (; row < store->rows; row ++) - { - iter.user_data = GINT_TO_POINTER (row); - gtk_tree_model_row_inserted (model, path, & iter); - gtk_tree_path_next (path); - } - - gtk_tree_path_free (path); -} - -static void update_cb (void * data, void * user_data) -{ - if (GPOINTER_TO_INT (data) >= PLAYLIST_UPDATE_STRUCTURE) - library_store_update ((GtkTreeModel *) user_data); -} - -GtkTreeModel * audgui_get_library_store (void) -{ - static GtkTreeModel * store = NULL; - - if (store == NULL) - { - store = (GtkTreeModel *) g_object_new (library_store_get_type (), NULL); - hook_associate ("playlist update", update_cb, store); - } - - return store; -} diff --git a/src/libaudgui/list.c b/src/libaudgui/list.c new file mode 100755 index 0000000..7a39cde --- /dev/null +++ b/src/libaudgui/list.c @@ -0,0 +1,758 @@ +/* + * list.c + * Copyright 2011 John Lindgren + * + * This file is part of Audacious. + * + * Audacious is free software: you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation, version 2 or version 3 of the License. + * + * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + * A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with + * Audacious. If not, see <http://www.gnu.org/licenses/>. + * + * The Audacious team does not consider modular code linking to Audacious or + * using our public API to be a derived work. + */ + +#include "list.h" + +#include <audacious/gtk-compat.h> + +enum {HIGHLIGHT_COLUMN, RESERVED_COLUMNS}; + +#define PATH_IS_SELECTED(w, p) (gtk_tree_selection_path_is_selected \ + (gtk_tree_view_get_selection ((GtkTreeView *) (w)), (p))) + +typedef struct { + GObject parent; + const AudguiListCallbacks * cbs; + void * user; + gint rows, highlight; + gint columns; + GList * column_types; + gboolean frozen, blocked; + gboolean dragging; + gboolean clicked_row, receive_row; + gint scroll_source, scroll_speed; +} ListModel; + +/* ==== MODEL ==== */ + +static GtkTreeModelFlags list_model_get_flags (GtkTreeModel * model) +{ + return GTK_TREE_MODEL_LIST_ONLY; +} + +static gint list_model_get_n_columns (GtkTreeModel * model) +{ + return ((ListModel *) model)->columns; +} + +static GType list_model_get_column_type (GtkTreeModel * _model, gint column) +{ + ListModel * model = (ListModel *) _model; + g_return_val_if_fail (column >= 0 && column < model->columns, G_TYPE_INVALID); + + if (column == HIGHLIGHT_COLUMN) + return PANGO_TYPE_WEIGHT; + + return GPOINTER_TO_INT (g_list_nth_data (model->column_types, column - + RESERVED_COLUMNS)); +} + +static gboolean list_model_get_iter (GtkTreeModel * model, GtkTreeIter * iter, + GtkTreePath * path) +{ + gint row = gtk_tree_path_get_indices (path)[0]; + if (row < 0 || row >= ((ListModel *) model)->rows) + return FALSE; + iter->user_data = GINT_TO_POINTER (row); + return TRUE; +} + +static GtkTreePath * list_model_get_path (GtkTreeModel * model, + GtkTreeIter * iter) +{ + gint row = GPOINTER_TO_INT (iter->user_data); + g_return_val_if_fail (row >= 0 && row < ((ListModel *) model)->rows, NULL); + return gtk_tree_path_new_from_indices (row, -1); +} + +static void list_model_get_value (GtkTreeModel * _model, GtkTreeIter * iter, + gint column, GValue * value) +{ + ListModel * model = (ListModel *) _model; + gint row = GPOINTER_TO_INT (iter->user_data); + g_return_if_fail (column >= 0 && column < model->columns); + g_return_if_fail (row >= 0 && row < model->rows); + + if (column == HIGHLIGHT_COLUMN) + { + g_value_init (value, PANGO_TYPE_WEIGHT); + g_value_set_enum (value, row == model->highlight ? PANGO_WEIGHT_BOLD : + PANGO_WEIGHT_NORMAL); + return; + } + + g_value_init (value, GPOINTER_TO_INT (g_list_nth_data (model->column_types, + column - RESERVED_COLUMNS))); + model->cbs->get_value (model->user, row, column - RESERVED_COLUMNS, value); +} + +static gboolean list_model_iter_next (GtkTreeModel * _model, GtkTreeIter * iter) +{ + ListModel * model = (ListModel *) _model; + gint row = GPOINTER_TO_INT (iter->user_data); + g_return_val_if_fail (row >= 0 && row < model->rows, FALSE); + if (row + 1 >= model->rows) + return FALSE; + iter->user_data = GINT_TO_POINTER (row + 1); + return TRUE; +} + +static gboolean list_model_iter_children (GtkTreeModel * model, + GtkTreeIter * iter, GtkTreeIter * parent) +{ + if (parent || ((ListModel *) model)->rows < 1) + return FALSE; + iter->user_data = GINT_TO_POINTER (0); + return TRUE; +} + +static gboolean list_model_iter_has_child (GtkTreeModel * model, + GtkTreeIter * iter) +{ + return FALSE; +} + +static gint list_model_iter_n_children (GtkTreeModel * model, GtkTreeIter * iter) +{ + return iter ? 0 : ((ListModel *) model)->rows; +} + +static gboolean list_model_iter_nth_child (GtkTreeModel * model, + GtkTreeIter * iter, GtkTreeIter * parent, gint n) +{ + if (parent || n < 0 || n >= ((ListModel *) model)->rows) + return FALSE; + iter->user_data = GINT_TO_POINTER (n); + return TRUE; +} + +static gboolean list_model_iter_parent (GtkTreeModel * model, + GtkTreeIter * iter, GtkTreeIter * child) +{ + return FALSE; +} + +static void iface_init (GtkTreeModelIface * iface) +{ + iface->get_flags = list_model_get_flags; + iface->get_n_columns = list_model_get_n_columns; + iface->get_column_type = list_model_get_column_type; + iface->get_iter = list_model_get_iter; + iface->get_path = list_model_get_path; + iface->get_value = list_model_get_value; + iface->iter_next = list_model_iter_next; + iface->iter_children = list_model_iter_children; + iface->iter_has_child = list_model_iter_has_child; + iface->iter_n_children = list_model_iter_n_children; + iface->iter_nth_child = list_model_iter_nth_child; + iface->iter_parent = list_model_iter_parent; +} + +static const GInterfaceInfo iface_info = +{ + .interface_init = (GInterfaceInitFunc) iface_init, + .interface_finalize = NULL, + .interface_data = NULL, +}; + +static GType list_model_get_type (void) +{ + static GType type = G_TYPE_INVALID; + if (type == G_TYPE_INVALID) + { + type = g_type_register_static_simple (G_TYPE_OBJECT, "AudguiListModel", + sizeof (GObjectClass), NULL, sizeof (ListModel), NULL, 0); + g_type_add_interface_static (type, GTK_TYPE_TREE_MODEL, & iface_info); + } + return type; +} + +/* ==== CALLBACKS ==== */ + +static gboolean select_allow_cb (GtkTreeSelection * sel, GtkTreeModel * model, + GtkTreePath * path, gboolean was, void * user) +{ + return ! ((ListModel *) model)->frozen; +} + +static void select_row_cb (GtkTreeModel * _model, GtkTreePath * path, + GtkTreeIter * iter, void * user) +{ + ListModel * model = (ListModel *) _model; + gint row = gtk_tree_path_get_indices (path)[0]; + g_return_if_fail (row >= 0 && row < model->rows); + model->cbs->set_selected (model->user, row, TRUE); +} + +static void select_cb (GtkTreeSelection * sel, ListModel * model) +{ + if (model->blocked) + return; + model->cbs->select_all (model->user, FALSE); + gtk_tree_selection_selected_foreach (sel, select_row_cb, NULL); +} + +static void activate_cb (GtkTreeView * tree, GtkTreePath * path, + GtkTreeViewColumn * col, ListModel * model) +{ + gint row = gtk_tree_path_get_indices (path)[0]; + g_return_if_fail (row >= 0 && row < model->rows); + model->cbs->activate_row (model->user, row); +} + +static gboolean button_press_cb (GtkWidget * widget, GdkEventButton * event, + ListModel * model) +{ + GtkTreePath * path = NULL; + gtk_tree_view_get_path_at_pos ((GtkTreeView *) widget, event->x, event->y, + & path, NULL, NULL, NULL); + + if (event->type == GDK_BUTTON_PRESS && event->button == 3 && + model->cbs->right_click) + { + /* Only allow GTK to select this row if it is not already selected. We + * don't want to clear a multiple selection. */ + if (path) + { + if (PATH_IS_SELECTED (widget, path)) + model->frozen = TRUE; + gtk_tree_view_set_cursor ((GtkTreeView *) widget, path, NULL, FALSE); + model->frozen = FALSE; + } + + model->cbs->right_click (model->user, event); + + if (path) + gtk_tree_path_free (path); + return TRUE; + } + + /* Only allow GTK to select this row if it is not already selected. If we + * are going to be dragging, we don't want to clear a multiple selection. + * If this is just a simple click, we will clear the multiple selection in + * button_release_cb. */ + if (event->type == GDK_BUTTON_PRESS && event->button == 1 && ! (event->state + & (GDK_SHIFT_MASK | GDK_CONTROL_MASK)) && path && PATH_IS_SELECTED (widget, + path)) + model->frozen = TRUE; + + if (path) + model->clicked_row = gtk_tree_path_get_indices (path)[0]; + else + model->clicked_row = -1; + + if (path) + gtk_tree_path_free (path); + return FALSE; +} + +static gboolean button_release_cb (GtkWidget * widget, GdkEventButton * event, + ListModel * model) +{ + /* If button_press_cb set "frozen", and we were not dragging, we need to + * clear a multiple selection. */ + if (model->frozen && model->clicked_row >= 0 && model->clicked_row < + model->rows) + { + model->frozen = FALSE; + GtkTreePath * path = gtk_tree_path_new_from_indices (model->clicked_row, + -1); + gtk_tree_view_set_cursor ((GtkTreeView *) widget, path, NULL, FALSE); + gtk_tree_path_free (path); + } + + return FALSE; +} + +/* ==== DRAG AND DROP ==== */ + +static void drag_begin (GtkWidget * widget, GdkDragContext * context, + ListModel * model) +{ + g_signal_stop_emission_by_name (widget, "drag-begin"); + + model->dragging = TRUE; +} + +static void drag_end (GtkWidget * widget, GdkDragContext * context, + ListModel * model) +{ + g_signal_stop_emission_by_name (widget, "drag-end"); + + model->dragging = FALSE; + model->clicked_row = -1; +} + +static void drag_data_get (GtkWidget * widget, GdkDragContext * context, + GtkSelectionData * sel, guint info, guint time, ListModel * model) +{ + g_signal_stop_emission_by_name (widget, "drag-data-get"); + + void * data = NULL; + gint length = 0; + model->cbs->get_data (model->user, & data, & length); + gtk_selection_data_set (sel, gdk_atom_intern (model->cbs->data_type, FALSE), + 8, data, length); + g_free (data); +} + +static gint calc_drop_row (ListModel * model, GtkWidget * widget, gint x, gint y) +{ + gint row = audgui_list_row_at_point (widget, x, y); + if (row < 0) + row = model->rows; + return row; +} + +static void stop_autoscroll (ListModel * model) +{ + if (! model->scroll_source) + return; + + g_source_remove (model->scroll_source); + model->scroll_source = 0; + model->scroll_speed = 0; +} + +static gboolean autoscroll (GtkWidget * widget) +{ + ListModel * model = (ListModel *) gtk_tree_view_get_model + ((GtkTreeView *) widget); + + GtkAdjustment * adj = gtk_tree_view_get_vadjustment ((GtkTreeView *) widget); + if (! adj) + return FALSE; + + gint new = gtk_adjustment_get_value (adj) + model->scroll_speed; + gint clamped = CLAMP (new, 0, gtk_adjustment_get_upper (adj) - + gtk_adjustment_get_page_size (adj)); + gtk_adjustment_set_value (adj, clamped); + + if (clamped != new) /* reached top or bottom? */ + return FALSE; + + if (model->scroll_speed > 0) + model->scroll_speed = MIN (model->scroll_speed + 2, 100); + else + model->scroll_speed = MAX (model->scroll_speed - 2, -100); + + return TRUE; +} + +static void start_autoscroll (ListModel * model, GtkWidget * widget, gint speed) +{ + if (model->scroll_source) + return; + + model->scroll_source = g_timeout_add (50, (GSourceFunc) autoscroll, widget); + model->scroll_speed = speed; +} + +static gboolean drag_motion (GtkWidget * widget, GdkDragContext * context, + gint x, gint y, guint time, ListModel * model) +{ + g_signal_stop_emission_by_name (widget, "drag-motion"); + + /* If button_press_cb preserved a multiple selection, tell button_release_cb + * not to clear it. */ + model->frozen = FALSE; + + if (model->dragging && model->cbs->shift_rows) /* dragging within same list */ + gdk_drag_status (context, GDK_ACTION_MOVE, time); + else if (model->cbs->data_type) /* cross-widget dragging */ + gdk_drag_status (context, GDK_ACTION_COPY, time); + else + return FALSE; + + if (model->rows > 0) + { + gint row = calc_drop_row (model, widget, x, y); + if (row == model->rows) + { + GtkTreePath * path = gtk_tree_path_new_from_indices (row - 1, -1); + gtk_tree_view_set_drag_dest_row ((GtkTreeView *) widget, path, + GTK_TREE_VIEW_DROP_AFTER); + gtk_tree_path_free (path); + } + else + { + GtkTreePath * path = gtk_tree_path_new_from_indices (row, -1); + gtk_tree_view_set_drag_dest_row ((GtkTreeView *) widget, path, + GTK_TREE_VIEW_DROP_BEFORE); + gtk_tree_path_free (path); + } + } + + gint height; + gdk_window_get_geometry (gtk_tree_view_get_bin_window ((GtkTreeView *) + widget), NULL, NULL, NULL, & height); + gtk_tree_view_convert_widget_to_bin_window_coords ((GtkTreeView *) widget, + x, y, & x, & y); + + if (y >= 0 && y < 48) + start_autoscroll (model, widget, -2); + else if (y >= height - 48 && y < height) + start_autoscroll (model, widget, 2); + else + stop_autoscroll (model); + + return TRUE; +} + +static void drag_leave (GtkWidget * widget, GdkDragContext * context, + guint time, ListModel * model) +{ + g_signal_stop_emission_by_name (widget, "drag-leave"); + + gtk_tree_view_set_drag_dest_row ((GtkTreeView *) widget, NULL, 0); + stop_autoscroll (model); +} + +static gboolean drag_drop (GtkWidget * widget, GdkDragContext * context, gint x, + gint y, guint time, ListModel * model) +{ + g_signal_stop_emission_by_name (widget, "drag-drop"); + + gboolean success = TRUE; + gint row = calc_drop_row (model, widget, x, y); + + if (model->dragging && model->cbs->shift_rows) /* dragging within same list */ + { + if (model->clicked_row >= 0 && model->clicked_row < model->rows) + model->cbs->shift_rows (model->user, model->clicked_row, row); + else + success = FALSE; + } + else if (model->cbs->data_type) /* cross-widget dragging */ + { + model->receive_row = row; + gtk_drag_get_data (widget, context, gdk_atom_intern + (model->cbs->data_type, FALSE), time); + } + else + success = FALSE; + + gtk_drag_finish (context, success, FALSE, time); + gtk_tree_view_set_drag_dest_row ((GtkTreeView *) widget, NULL, 0); + stop_autoscroll (model); + return TRUE; +} + +static void drag_data_received (GtkWidget * widget, GdkDragContext * context, gint x, + gint y, GtkSelectionData * sel, guint info, guint time, ListModel * model) +{ + g_signal_stop_emission_by_name (widget, "drag-data-received"); + + g_return_if_fail (model->receive_row >= 0 && model->receive_row <= + model->rows); + + const guchar * data = gtk_selection_data_get_data (sel); + gint length = gtk_selection_data_get_length (sel); + + if (data && length) + model->cbs->receive_data (model->user, model->receive_row, data, length); + + model->receive_row = -1; +} + +/* ==== PUBLIC FUNCS ==== */ + +static void destroy_cb (ListModel * model) +{ + stop_autoscroll (model); + g_object_unref (model); +} + +static void update_selection (GtkWidget * list, ListModel * model, gint at, + gint rows) +{ + model->blocked = TRUE; + GtkTreeSelection * sel = gtk_tree_view_get_selection ((GtkTreeView *) list); + + for (gint i = at; i < at + rows; i ++) + { + GtkTreeIter iter = {.user_data = GINT_TO_POINTER (i)}; + if (model->cbs->get_selected (model->user, i)) + gtk_tree_selection_select_iter (sel, & iter); + else + gtk_tree_selection_unselect_iter (sel, & iter); + } + + model->blocked = FALSE; +} + +GtkWidget * audgui_list_new (const AudguiListCallbacks * cbs, void * user, + gint rows) +{ + g_return_val_if_fail (cbs->get_value, NULL); + if (cbs->get_selected) + g_return_val_if_fail (cbs->set_selected && cbs->select_all, NULL); + if (cbs->data_type) + g_return_val_if_fail (cbs->get_data && cbs->receive_data, NULL); + + ListModel * model = (ListModel *) g_object_new (list_model_get_type (), NULL); + model->cbs = cbs; + model->user = user; + model->rows = rows; + model->highlight = -1; + model->columns = RESERVED_COLUMNS; + model->column_types = NULL; + model->frozen = FALSE; + model->blocked = FALSE; + model->dragging = FALSE; + model->clicked_row = -1; + model->receive_row = -1; + model->scroll_source = 0; + model->scroll_speed = 0; + + GtkWidget * list = gtk_tree_view_new_with_model ((GtkTreeModel *) model); + g_signal_connect_swapped (list, "destroy", (GCallback) destroy_cb, model); + + if (cbs->get_selected) + { + GtkTreeSelection * sel = gtk_tree_view_get_selection + ((GtkTreeView *) list); + gtk_tree_selection_set_mode (sel, GTK_SELECTION_MULTIPLE); + gtk_tree_selection_set_select_function (sel, select_allow_cb, NULL, NULL); + g_signal_connect (sel, "changed", (GCallback) select_cb, model); + + update_selection (list, model, 0, rows); + } + + if (cbs->activate_row) + g_signal_connect (list, "row-activated", (GCallback) activate_cb, model); + + g_signal_connect (list, "button-press-event", (GCallback) button_press_cb, + model); + g_signal_connect (list, "button-release-event", (GCallback) + button_release_cb, model); + + if (cbs->data_type) + { + const GtkTargetEntry target = {(gchar *) cbs->data_type, 0, 0}; + + gtk_drag_source_set (list, GDK_BUTTON1_MASK, & target, 1, + GDK_ACTION_COPY); + gtk_drag_dest_set (list, 0, & target, 1, GDK_ACTION_COPY); + + g_signal_connect (list, "drag-data-get", (GCallback) drag_data_get, + model); + g_signal_connect (list, "drag-data-received", (GCallback) + drag_data_received, model); + } + else if (cbs->shift_rows) + { + gtk_drag_source_set (list, GDK_BUTTON1_MASK, NULL, 0, GDK_ACTION_COPY); + gtk_drag_dest_set (list, 0, NULL, 0, GDK_ACTION_COPY); + } + + if (cbs->data_type || cbs->shift_rows) + { + g_signal_connect (list, "drag-begin", (GCallback) drag_begin, model); + g_signal_connect (list, "drag-end", (GCallback) drag_end, model); + g_signal_connect (list, "drag-motion", (GCallback) drag_motion, model); + g_signal_connect (list, "drag-leave", (GCallback) drag_leave, model); + g_signal_connect (list, "drag-drop", (GCallback) drag_drop, model); + } + + return list; +} + +void * audgui_list_get_user (GtkWidget * list) +{ + ListModel * model = (ListModel *) gtk_tree_view_get_model + ((GtkTreeView *) list); + return model->user; +} + +void audgui_list_add_column (GtkWidget * list, const gchar * title, + gint column, GType type, gboolean expand) +{ + ListModel * model = (ListModel *) gtk_tree_view_get_model + ((GtkTreeView *) list); + g_return_if_fail (RESERVED_COLUMNS + column == model->columns); + + model->columns ++; + model->column_types = g_list_append (model->column_types, GINT_TO_POINTER + (type)); + + GtkCellRenderer * renderer = gtk_cell_renderer_text_new (); + GtkTreeViewColumn * tree_column = gtk_tree_view_column_new_with_attributes + (title, renderer, "text", RESERVED_COLUMNS + column, "weight", + HIGHLIGHT_COLUMN, NULL); + + if (expand) + { + gtk_tree_view_column_set_resizable (tree_column, TRUE); + gtk_tree_view_column_set_expand (tree_column, TRUE); + g_object_set ((GObject *) renderer, "ellipsize-set", TRUE, "ellipsize", + PANGO_ELLIPSIZE_END, NULL); + } + else + { + gtk_tree_view_column_set_sizing (tree_column, + GTK_TREE_VIEW_COLUMN_GROW_ONLY); + g_object_set ((GObject *) renderer, "xalign", (gfloat) 1, NULL); + } + + gtk_tree_view_append_column ((GtkTreeView *) list, tree_column); +} + +gint audgui_list_row_count (GtkWidget * list) +{ + return ((ListModel *) gtk_tree_view_get_model ((GtkTreeView *) list))->rows; +} + +void audgui_list_insert_rows (GtkWidget * list, gint at, gint rows) +{ + ListModel * model = (ListModel *) gtk_tree_view_get_model + ((GtkTreeView *) list); + g_return_if_fail (at >= 0 && at <= model->rows && rows >= 0); + + model->rows += rows; + if (model->highlight >= at) + model->highlight += rows; + + GtkTreeIter iter = {.user_data = GINT_TO_POINTER (at)}; + GtkTreePath * path = gtk_tree_path_new_from_indices (at, -1); + + for (gint i = rows; i --; ) + gtk_tree_model_row_inserted ((GtkTreeModel *) model, path, & iter); + + gtk_tree_path_free (path); + + update_selection (list, model, at, rows); +} + +void audgui_list_update_rows (GtkWidget * list, gint at, gint rows) +{ + ListModel * model = (ListModel *) gtk_tree_view_get_model + ((GtkTreeView *) list); + g_return_if_fail (at >= 0 && rows >= 0 && at + rows <= model->rows); + + GtkTreeIter iter = {.user_data = GINT_TO_POINTER (at)}; + GtkTreePath * path = gtk_tree_path_new_from_indices (at, -1); + + while (rows --) + { + gtk_tree_model_row_changed ((GtkTreeModel *) model, path, & iter); + iter.user_data = GINT_TO_POINTER (GPOINTER_TO_INT (iter.user_data) + 1); + gtk_tree_path_next (path); + } + + gtk_tree_path_free (path); +} + +void audgui_list_delete_rows (GtkWidget * list, gint at, gint rows) +{ + ListModel * model = (ListModel *) gtk_tree_view_get_model + ((GtkTreeView *) list); + g_return_if_fail (at >= 0 && rows >= 0 && at + rows <= model->rows); + + model->rows -= rows; + if (model->highlight >= at + rows) + model->highlight -= rows; + else if (model->highlight >= at) + model->highlight = -1; + + model->blocked = TRUE; + GtkTreePath * path = gtk_tree_path_new_from_indices (at, -1); + + while (rows --) + gtk_tree_model_row_deleted ((GtkTreeModel *) model, path); + + gtk_tree_path_free (path); + model->blocked = FALSE; +} + +void audgui_list_update_selection (GtkWidget * list, gint at, gint rows) +{ + ListModel * model = (ListModel *) gtk_tree_view_get_model + ((GtkTreeView *) list); + g_return_if_fail (model->cbs->get_selected); + g_return_if_fail (at >= 0 && rows >= 0 && at + rows <= model->rows); + update_selection (list, model, at, rows); +} + +void audgui_list_set_highlight (GtkWidget * list, gint row) +{ + ListModel * model = (ListModel *) gtk_tree_view_get_model + ((GtkTreeView *) list); + g_return_if_fail (row >= -1 && row < model->rows); + + gint old = model->highlight; + if (row == old) + return; + model->highlight = row; + + if (old >= 0) + audgui_list_update_rows (list, old, 1); + if (row >= 0) + audgui_list_update_rows (list, row, 1); +} + +void audgui_list_set_focus (GtkWidget * list, gint row) +{ + ListModel * model = (ListModel *) gtk_tree_view_get_model + ((GtkTreeView *) list); + g_return_if_fail (row >= -1 && row < model->rows); + + if (row < 0) + { + if (model->rows < 1) + return; + row = 0; + } + + model->frozen = TRUE; + GtkTreePath * path = gtk_tree_path_new_from_indices (row, -1); + gtk_tree_view_set_cursor ((GtkTreeView *) list, path, NULL, FALSE); + gtk_tree_view_scroll_to_cell ((GtkTreeView *) list, path, NULL, FALSE, 0, 0); + gtk_tree_path_free (path); + model->frozen = FALSE; +} + +gint audgui_list_row_at_point (GtkWidget * list, gint x, gint y) +{ + ListModel * model = (ListModel *) gtk_tree_view_get_model ((GtkTreeView *) + list); + + GtkTreePath * path = NULL; + gtk_tree_view_convert_widget_to_bin_window_coords ((GtkTreeView *) list, x, + y, & x, & y); + gtk_tree_view_get_path_at_pos ((GtkTreeView *) list, x, y, & path, NULL, + NULL, NULL); + + if (! path) + return -1; + + gint row = gtk_tree_path_get_indices (path)[0]; + g_return_val_if_fail (row >= 0 && row < model->rows, -1); + + GdkRectangle rect; + gtk_tree_view_get_background_area ((GtkTreeView *) list, path, NULL, + & rect); + if (y > rect.y + rect.height / 2) + row ++; + + gtk_tree_path_free (path); + return row; +} diff --git a/src/libaudgui/list.h b/src/libaudgui/list.h new file mode 100644 index 0000000..0eb1cef --- /dev/null +++ b/src/libaudgui/list.h @@ -0,0 +1,61 @@ +/* + * list.h + * Copyright 2011 John Lindgren + * + * This file is part of Audacious. + * + * Audacious is free software: you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation, version 2 or version 3 of the License. + * + * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + * A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with + * Audacious. If not, see <http://www.gnu.org/licenses/>. + * + * The Audacious team does not consider modular code linking to Audacious or + * using our public API to be a derived work. + */ + +#ifndef AUDGUI_LIST_H +#define AUDGUI_LIST_H + +#include <gtk/gtk.h> + +typedef struct { + void (* get_value) (void * user, gint row, gint column, GValue * value); + + /* selection (optional) */ + gboolean (* get_selected) (void * user, gint row); + void (* set_selected) (void * user, gint row, gboolean selected); + void (* select_all) (void * user, gboolean selected); + + void (* activate_row) (void * user, gint row); /* optional */ + void (* right_click) (void * user, GdkEventButton * event); /* optional */ + void (* shift_rows) (void * user, gint row, gint before); /* optional */ + + /* cross-widget drag and drop (optional) */ + const gchar * data_type; + void (* get_data) (void * user, void * * data, gint * length); /* data will + be freed */ + void (* receive_data) (void * user, gint row, const void * data, gint length); +} AudguiListCallbacks; + +GtkWidget * audgui_list_new (const AudguiListCallbacks * cbs, void * user, + gint rows); +void * audgui_list_get_user (GtkWidget * list); +void audgui_list_add_column (GtkWidget * list, const gchar * title, + gint column, GType type, gboolean expand); + +gint audgui_list_row_count (GtkWidget * list); +void audgui_list_insert_rows (GtkWidget * list, gint at, gint rows); +void audgui_list_update_rows (GtkWidget * list, gint at, gint rows); +void audgui_list_delete_rows (GtkWidget * list, gint at, gint rows); +void audgui_list_update_selection (GtkWidget * list, gint at, gint rows); +void audgui_list_set_highlight (GtkWidget * list, gint row); +void audgui_list_set_focus (GtkWidget * list, gint row); +gint audgui_list_row_at_point (GtkWidget * list, gint x, gint y); + +#endif diff --git a/src/libaudgui/ui_about.c b/src/libaudgui/ui_about.c index 29a2a3d..caeac03 100644 --- a/src/libaudgui/ui_about.c +++ b/src/libaudgui/ui_about.c @@ -24,6 +24,8 @@ * Audacious or using our public API to be a derived work. */ +#include <limits.h> + #ifdef HAVE_CONFIG_H # include "config.h" #endif @@ -34,79 +36,22 @@ #include <gdk/gdk.h> #include <gdk/gdkkeysyms.h> +#include <audacious/gtk-compat.h> #include <audacious/i18n.h> #include <audacious/misc.h> -#include "audacious/compatibility.h" +#include "libaudgui-gtk.h" -#include "ui_credits.h" +/* ui_credits.c */ +GtkWidget * audgui_get_credits_widget (void); static GtkWidget *about_window = NULL; -static GdkPixbuf *about_pixbuf = NULL; -static GdkPixmap *mask_pixmap_window1 = NULL, - *mask_pixmap_window2 = NULL; -static GdkBitmap *mask_bitmap_window1 = NULL, - *mask_bitmap_window2 = NULL; - -static gboolean -on_about_window_expose(GtkWidget *widget, GdkEventExpose *expose, gpointer data) -{ - GdkWindow *window; - - g_return_val_if_fail(widget != NULL, FALSE); - g_return_val_if_fail(GTK_IS_WIDGET (widget), FALSE); - - window = gtk_widget_get_window(widget); - gdk_window_set_back_pixmap(window, mask_pixmap_window2, 0); - gdk_window_clear(window); - - return FALSE; -} - -static gboolean -on_about_window_key_press (GtkWidget *widget, GdkEventKey *event, gpointer data) -{ - g_return_val_if_fail(GTK_IS_WIDGET (widget), FALSE); - - if (event->keyval == GDK_Escape) - { - gtk_widget_hide(widget); - } - - return FALSE; -} - -static gboolean -on_close_button_clicked (GtkWidget *widget, gpointer data) -{ - g_return_val_if_fail(GTK_IS_WIDGET (widget), FALSE); - - gtk_widget_hide(about_window); - - return FALSE; -} - -static gboolean -on_credits_button_clicked (GtkWidget *widget, gpointer data) -{ - g_return_val_if_fail(GTK_IS_WIDGET (widget), FALSE); - - audgui_show_credits_window(); - - return FALSE; -} void audgui_show_about_window(void) { - GtkWidget *about_fixedbox; - GtkWidget *close_button; - GtkWidget *credits_button , *credits_button_hbox, *credits_button_image, *credits_button_label; GtkWidget *brief_label; - gchar *filename = DATA_DIR G_DIR_SEPARATOR_S "images" G_DIR_SEPARATOR_S "about-logo.png"; gchar *text; - PangoAttrList *brief_label_attrs; - PangoAttribute *brief_label_foreground; static const gchar *audacious_brief; if (about_window != NULL) @@ -118,99 +63,38 @@ audgui_show_about_window(void) aud_get_audacious_credits(&audacious_brief, NULL, NULL); about_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); + gtk_container_set_border_width ((GtkContainer *) about_window, 3); g_signal_connect(about_window, "destroy", G_CALLBACK(gtk_widget_destroyed), &about_window); - gtk_widget_realize(about_window); - - about_pixbuf = gdk_pixbuf_new_from_file(filename, NULL); - - gtk_widget_set_size_request(GTK_WIDGET (about_window), - gdk_pixbuf_get_width (about_pixbuf), - gdk_pixbuf_get_height (about_pixbuf)); - - gtk_widget_set_app_paintable(about_window, TRUE); gtk_window_set_title(GTK_WINDOW(about_window), _("About Audacious")); - gtk_window_set_position(GTK_WINDOW(about_window), GTK_WIN_POS_CENTER); gtk_window_set_resizable(GTK_WINDOW(about_window), FALSE); - gtk_window_set_decorated(GTK_WINDOW(about_window), FALSE); - - gdk_pixbuf_render_pixmap_and_mask(about_pixbuf, - &mask_pixmap_window1, - &mask_bitmap_window1, - 0); - - gdk_pixbuf_render_pixmap_and_mask(about_pixbuf, - &mask_pixmap_window2, - &mask_bitmap_window2, - 128); - - gtk_widget_add_events(about_window, GDK_ALL_EVENTS_MASK); - - g_signal_connect(about_window, "expose-event", - G_CALLBACK(on_about_window_expose), &about_window); - - g_signal_connect(about_window, "key-press-event", - G_CALLBACK(on_about_window_key_press), &about_window); - - gtk_widget_shape_combine_mask(GTK_WIDGET(about_window), mask_bitmap_window2, 0, 0); - - /* GtkFixed hasn't got its GdkWindow, this means that it can be used to - display widgets while the logo below will be displayed anyway; - however fixed positions are not that great, cause the button sizes may (will) - vary depending on the gtk style used, so it's not possible to center - them unless a fixed width and heigth is forced (and this may bring to cutted - text if someone, i.e., uses a big font for gtk widgets); - other types of container most likely have their GdkWindow, this simply - means that the logo must be drawn on the container widget, instead of the - window; otherwise, it won't be displayed correctly */ - about_fixedbox = gtk_fixed_new(); - gtk_container_add( GTK_CONTAINER(about_window) , about_fixedbox ); - - close_button = gtk_button_new_from_stock(GTK_STOCK_CLOSE); - - g_signal_connect(close_button, "clicked", - G_CALLBACK(on_close_button_clicked), NULL); - - gtk_fixed_put( GTK_FIXED(about_fixedbox) , close_button , 375 , 220 ); - gtk_widget_set_size_request( close_button , 100 , -1 ); - - credits_button = gtk_button_new(); - credits_button_hbox = gtk_hbox_new( FALSE , 0 ); - credits_button_image = gtk_image_new_from_stock( GTK_STOCK_DIALOG_INFO , GTK_ICON_SIZE_BUTTON ); - gtk_misc_set_alignment( GTK_MISC(credits_button_image) , 1 , 0.5 ); - credits_button_label = gtk_label_new( _("Credits") ); - gtk_misc_set_alignment( GTK_MISC(credits_button_label) , 0 , 0.5 ); - gtk_box_pack_start( GTK_BOX(credits_button_hbox) , credits_button_image , - TRUE , TRUE , 2 ); - gtk_box_pack_start( GTK_BOX(credits_button_hbox) , credits_button_label , - TRUE , TRUE , 2 ); - gtk_container_add( GTK_CONTAINER(credits_button) , credits_button_hbox ); - - g_signal_connect(credits_button, "clicked", - G_CALLBACK(on_credits_button_clicked), NULL); - - gtk_fixed_put( GTK_FIXED(about_fixedbox) , credits_button , 25 , 220 ); - gtk_widget_set_size_request( credits_button , 100 , -1 ); + audgui_destroy_on_escape (about_window); + + GtkWidget * vbox = gtk_vbox_new (FALSE, 6); + gtk_container_add ((GtkContainer *) about_window, vbox); + + gchar name[PATH_MAX]; + snprintf (name, sizeof name, "%s/images/about-logo.png", aud_get_path + (AUD_PATH_DATA_DIR)); + GtkWidget * image = gtk_image_new_from_file (name); + gtk_box_pack_start ((GtkBox *) vbox, image, FALSE, FALSE, 0); brief_label = gtk_label_new(NULL); text = g_strdup_printf(_(audacious_brief), VERSION); - brief_label_foreground = pango_attr_foreground_new(0, 0, 0); - brief_label_attrs = pango_attr_list_new(); - pango_attr_list_insert(brief_label_attrs, brief_label_foreground); - gtk_label_set_markup(GTK_LABEL(brief_label), text); gtk_label_set_justify(GTK_LABEL(brief_label), GTK_JUSTIFY_CENTER); - gtk_label_set_attributes(GTK_LABEL(brief_label), brief_label_attrs); g_free(text); + + gtk_box_pack_start ((GtkBox *) vbox, brief_label, FALSE, FALSE, 0); - gtk_fixed_put(GTK_FIXED(about_fixedbox), brief_label, 20, 145); - gtk_widget_set_size_request( brief_label , 460 , -1 ); + GtkWidget * exp = gtk_expander_new (_("Credits")); + gtk_container_add ((GtkContainer *) exp, audgui_get_credits_widget ()); + gtk_box_pack_start ((GtkBox *) vbox, exp, TRUE, TRUE, 0); gtk_widget_show_all(about_window); - gtk_window_present(GTK_WINDOW(about_window)); } void diff --git a/src/libaudgui/ui_credits.c b/src/libaudgui/ui_credits.c index 4f3732f..ec7f0f6 100644 --- a/src/libaudgui/ui_credits.c +++ b/src/libaudgui/ui_credits.c @@ -30,14 +30,10 @@ #include <glib.h> #include <gtk/gtk.h> +#include <audacious/gtk-compat.h> #include <audacious/i18n.h> #include <audacious/misc.h> -#include "audacious/compatibility.h" - -#include "ui_credits.h" -#include "audacious_logo.xpm" - enum { COL_LEFT, COL_RIGHT, @@ -104,81 +100,22 @@ generate_credit_list(const gchar * text[], gboolean sec_space) GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrollwin), GTK_SHADOW_IN); gtk_container_add(GTK_CONTAINER(scrollwin), treeview); - gtk_container_set_border_width(GTK_CONTAINER(scrollwin), 10); - - gtk_widget_show_all(scrollwin); + gtk_container_set_border_width ((GtkContainer *) scrollwin, 4); return scrollwin; } -void -audgui_show_credits_window(void) +GtkWidget * audgui_get_credits_widget (void) { - static GtkWidget *about_window = NULL; - - GdkPixbuf *logo_pixbuf; - GtkWidget *about_vbox; - GtkWidget *about_credits_logo_box, *about_credits_logo_frame; - GtkWidget *about_credits_logo; GtkWidget *about_notebook; GtkWidget *list; - GtkWidget *bbox, *close_btn; - GtkWidget *label; - gchar *text; - static const gchar *audacious_brief; - static const gchar **credit_text; - static const gchar **translators; - - if (about_window) - return; - - aud_get_audacious_credits(&audacious_brief, &credit_text, &translators); - - about_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - gtk_window_set_type_hint(GTK_WINDOW(about_window), - GDK_WINDOW_TYPE_HINT_DIALOG); - - gtk_window_set_default_size(GTK_WINDOW(about_window), -1, 512); - gtk_window_set_title(GTK_WINDOW(about_window), _("About Audacious")); - gtk_window_set_position(GTK_WINDOW(about_window), GTK_WIN_POS_CENTER); - gtk_window_set_resizable(GTK_WINDOW(about_window), TRUE); - gtk_container_set_border_width(GTK_CONTAINER(about_window), 10); - - g_signal_connect(about_window, "destroy", - G_CALLBACK(gtk_widget_destroyed), &about_window); - - gtk_widget_realize(about_window); + const gchar **credit_text; + const gchar **translators; - about_vbox = gtk_vbox_new(FALSE, 5); - gtk_container_add(GTK_CONTAINER(about_window), about_vbox); - - logo_pixbuf = gdk_pixbuf_new_from_xpm_data((const char **)audacious_logo_xpm); - - about_credits_logo_box = gtk_hbox_new(TRUE, 0); - gtk_box_pack_start(GTK_BOX(about_vbox), about_credits_logo_box, - FALSE, FALSE, 0); - - about_credits_logo_frame = gtk_frame_new(NULL); - gtk_frame_set_shadow_type(GTK_FRAME(about_credits_logo_frame), - GTK_SHADOW_ETCHED_OUT); - gtk_box_pack_start(GTK_BOX(about_credits_logo_box), - about_credits_logo_frame, FALSE, FALSE, 0); - - about_credits_logo = gtk_image_new_from_pixbuf(logo_pixbuf); - gtk_container_add(GTK_CONTAINER(about_credits_logo_frame), - about_credits_logo); - g_object_unref(logo_pixbuf); - - label = gtk_label_new(NULL); - text = g_strdup_printf(_(audacious_brief), VERSION); - gtk_label_set_markup(GTK_LABEL(label), text); - gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_CENTER); - g_free(text); - - gtk_box_pack_start(GTK_BOX(about_vbox), label, FALSE, FALSE, 0); + aud_get_audacious_credits (NULL, &credit_text, &translators); about_notebook = gtk_notebook_new(); - gtk_box_pack_start(GTK_BOX(about_vbox), about_notebook, TRUE, TRUE, 0); + gtk_widget_set_size_request (about_notebook, -1, 250); list = generate_credit_list(credit_text, TRUE); gtk_notebook_append_page(GTK_NOTEBOOK(about_notebook), list, @@ -188,18 +125,5 @@ audgui_show_credits_window(void) gtk_notebook_append_page(GTK_NOTEBOOK(about_notebook), list, gtk_label_new(_("Translators"))); - bbox = gtk_hbutton_box_new(); - gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END); - gtk_box_set_spacing(GTK_BOX(bbox), 5); - gtk_box_pack_start(GTK_BOX(about_vbox), bbox, FALSE, FALSE, 0); - - close_btn = gtk_button_new_from_stock(GTK_STOCK_CLOSE); - g_signal_connect_swapped(close_btn, "clicked", - G_CALLBACK(gtk_widget_destroy), about_window); - - gtk_widget_set_can_default(close_btn, TRUE); - gtk_box_pack_start(GTK_BOX(bbox), close_btn, TRUE, TRUE, 0); - gtk_widget_grab_default(close_btn); - - gtk_widget_show_all(about_window); + return about_notebook; } diff --git a/src/libaudgui/ui_credits.h b/src/libaudgui/ui_credits.h deleted file mode 100644 index fe30775..0000000 --- a/src/libaudgui/ui_credits.h +++ /dev/null @@ -1,9 +0,0 @@ - -#ifndef AUDACIOUS_UI_CREDITS_H -#define AUDACIOUS_UI_CREDITS_H - -void audgui_show_about_window(void); -void audgui_hide_about_window(void); -void audgui_show_credits_window(void); - -#endif /* AUDACIOUS_UI_CREDITS_H */ diff --git a/src/libaudgui/ui_fileopener.c b/src/libaudgui/ui_fileopener.c index a0eb83b..b7d6794 100644..100755 --- a/src/libaudgui/ui_fileopener.c +++ b/src/libaudgui/ui_fileopener.c @@ -22,6 +22,7 @@ #include <audacious/audconfig.h> #include <audacious/i18n.h> #include <audacious/drct.h> +#include <audacious/gtk-compat.h> #include "config.h" #include "libaudgui.h" @@ -144,6 +145,9 @@ run_filebrowser_gtk2style(gboolean play_button, gboolean show) gtk_container_add(GTK_CONTAINER(bbox), close_button); gtk_container_add(GTK_CONTAINER(bbox), action_button); + gtk_widget_set_can_default (action_button, TRUE); + gtk_widget_grab_default (action_button); + /* this storage object holds several other objects which are used in the * callback functions */ diff --git a/src/libaudgui/ui_gtk.c b/src/libaudgui/ui_gtk.c index fa8d4e8..24d2fe5 100644 --- a/src/libaudgui/ui_gtk.c +++ b/src/libaudgui/ui_gtk.c @@ -19,8 +19,14 @@ #include <gtk/gtk.h> +#include <audacious/misc.h> + void audgui_set_default_icon (void) { +#ifdef _WIN32 + gtk_window_set_default_icon_from_file (aud_get_path (AUD_PATH_ICON_FILE), + NULL); +#else gtk_window_set_default_icon_name ("audacious"); +#endif } - diff --git a/src/libaudgui/ui_jumptotrack.c b/src/libaudgui/ui_jumptotrack.c index a97d30e..52f3f24 100644 --- a/src/libaudgui/ui_jumptotrack.c +++ b/src/libaudgui/ui_jumptotrack.c @@ -27,38 +27,25 @@ # include "config.h" #endif - -#include <glib.h> -#include <glib/gprintf.h> -#include <gtk/gtk.h> - -#include <gdk/gdk.h> -#include <gdk/gdkkeysyms.h> - #include <math.h> #include <stdlib.h> #include <string.h> #include <sys/types.h> -#if defined(USE_REGEX_ONIGURUMA) - #include <onigposix.h> -#elif defined(USE_REGEX_PCRE) - #include <pcreposix.h> -#else - #include <regex.h> -#endif +#include <gdk/gdkkeysyms.h> +#include <gtk/gtk.h> #include <audacious/audconfig.h> #include <audacious/drct.h> +#include <audacious/gtk-compat.h> #include <audacious/i18n.h> #include <audacious/playlist.h> #include <libaudcore/hook.h> -#include "audacious/compatibility.h" - #include "icons-stock.h" #include "ui_jumptotrack_cache.h" +#include "ui_regex.h"
static void watchdog (void * hook_data, void * user_data); diff --git a/src/libaudgui/ui_jumptotrack_cache.c b/src/libaudgui/ui_jumptotrack_cache.c index 9d4fd8a..97202d0 100644 --- a/src/libaudgui/ui_jumptotrack_cache.c +++ b/src/libaudgui/ui_jumptotrack_cache.c @@ -28,18 +28,11 @@ # include "sys/types.h" #endif -#if defined(USE_REGEX_ONIGURUMA) - #include <onigposix.h> -#elif defined(USE_REGEX_PCRE) - #include <pcreposix.h> -#else - #include <regex.h> -#endif - #include <audacious/debug.h> #include <audacious/playlist.h> #include "ui_jumptotrack_cache.h" +#include "ui_regex.h"
// Struct to keep information about matches from searches. typedef struct diff --git a/src/libaudgui/ui_playlist_manager.c b/src/libaudgui/ui_playlist_manager.c index e554812..09ec102 100644 --- a/src/libaudgui/ui_playlist_manager.c +++ b/src/libaudgui/ui_playlist_manager.c @@ -1,5 +1,5 @@ /* Audacious - Cross-platform multimedia player - * Copyright (C) 2005-2010 Audacious development team. + * Copyright (C) 2005-2011 Audacious development team. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,7 +17,10 @@ * Audacious or using our public API to be a derived work. */ +#include <gtk/gtk.h> + #include <audacious/audconfig.h> +#include <audacious/gtk-compat.h> #include <audacious/i18n.h> #include <audacious/playlist.h> #include <libaudcore/hook.h> @@ -25,38 +28,9 @@ #include "config.h" #include "libaudgui.h" #include "libaudgui-gtk.h" +#include "list.h" -static gint iter_to_row (GtkTreeModel * model, GtkTreeIter * iter) -{ - GtkTreePath * path = gtk_tree_model_get_path (model, iter); - gint row = gtk_tree_path_get_indices (path)[0]; - - gtk_tree_path_free (path); - return row; -} - -static gint get_selected_row (GtkWidget * list) -{ - GtkTreeSelection * selection = gtk_tree_view_get_selection ((GtkTreeView *) - list); - GtkTreeModel * model; - GtkTreeIter iter; - - if (! gtk_tree_selection_get_selected (selection, & model, & iter)) - return -1; - - return iter_to_row (model, & iter); -} - -static void set_selected_row (GtkWidget * list, gint row) -{ - GtkTreeSelection * selection = gtk_tree_view_get_selection ((GtkTreeView *) - list); - GtkTreePath * path = gtk_tree_path_new_from_indices (row, -1); - - gtk_tree_selection_select_path (selection, path); - gtk_tree_path_free (path); -} +static GtkWidget * playman_win = NULL; static void save_position (GtkWidget * window) { @@ -73,13 +47,9 @@ static gboolean hide_cb (GtkWidget * window) return TRUE; } -static void activate_cb (GtkTreeView * list, GtkTreePath * path, - GtkTreeViewColumn * column, GtkWidget * window) +static void rename_cb (void) { - aud_playlist_set_active (gtk_tree_path_get_indices (path)[0]); - - if (aud_cfg->playlist_manager_close_on_activate) - hide_cb (window); + audgui_show_playlist_rename (aud_playlist_get_active ()); } static void new_cb (GtkButton * button, void * unused) @@ -89,65 +59,115 @@ static void new_cb (GtkButton * button, void * unused) static void delete_cb (GtkButton * button, GtkWidget * list) { - gint playlist = get_selected_row (list); - - if (playlist != -1) - audgui_confirm_playlist_delete (playlist); + audgui_confirm_playlist_delete (aud_playlist_get_active ()); } -static void rename_cb (GtkButton * button, GtkWidget * lv) +static void save_config_cb (void * hook_data, void * user_data) { - GtkTreeSelection *listsel = gtk_tree_view_get_selection( GTK_TREE_VIEW(lv) ); - GtkTreeModel *store; - GtkTreeIter iter; + if (gtk_widget_get_visible ((GtkWidget *) user_data)) + save_position ((GtkWidget *) user_data); +} - if ( gtk_tree_selection_get_selected( listsel , &store , &iter ) == TRUE ) +static void get_value (void * user, gint row, gint column, GValue * value) +{ + switch (column) { - GtkTreePath *path = gtk_tree_model_get_path( GTK_TREE_MODEL(store) , &iter ); - GtkCellRenderer *rndrname = g_object_get_data( G_OBJECT(lv) , "rn" ); - /* set the name renderer to editable and start editing */ - g_object_set( G_OBJECT(rndrname) , "editable" , TRUE , NULL ); - gtk_tree_view_set_cursor_on_cell ((GtkTreeView *) lv, path, - gtk_tree_view_get_column ((GtkTreeView *) lv, - AUDGUI_LIBRARY_STORE_TITLE), rndrname, TRUE); - gtk_tree_path_free( path ); + case 0: + g_value_set_string (value, aud_playlist_get_title (row)); + break; + case 1: + g_value_set_int (value, aud_playlist_entry_count (row)); + break; } } -static void -playlist_manager_cb_lv_name_edited ( GtkCellRendererText *cell , gchar *path_string , - gchar *new_text , gpointer listview ) +static gboolean get_selected (void * user, gint row) +{ + return (row == aud_playlist_get_active ()); +} + +static void set_selected (void * user, gint row, gboolean selected) { - /* this is currently used to change playlist names */ - GtkTreeModel *store = gtk_tree_view_get_model( GTK_TREE_VIEW(listview) ); - GtkTreeIter iter; + if (selected) + aud_playlist_set_active (row); +} - if ( gtk_tree_model_get_iter_from_string( store , &iter , path_string ) == TRUE ) - aud_playlist_set_title (iter_to_row (store, & iter), new_text); +static void select_all (void * user, gboolean selected) +{ +} - /* set the renderer uneditable again */ - g_object_set( G_OBJECT(cell) , "editable" , FALSE , NULL ); +static void activate_row (void * user, gint row) +{ + aud_playlist_set_active (row); + + if (aud_cfg->playlist_manager_close_on_activate) + hide_cb (playman_win); } -static void save_config_cb (void * hook_data, void * user_data) +static void shift_rows (void * user, gint row, gint before) { -#if GTK_CHECK_VERSION (2, 18, 0) - if (gtk_widget_get_visible ((GtkWidget *) user_data)) -#else - if (GTK_WIDGET_VISIBLE ((GtkWidget *) user_data)) -#endif - save_position ((GtkWidget *) user_data); + if (before < row) + aud_playlist_reorder (row, before, 1); + else if (before - 1 > row) + aud_playlist_reorder (row, before - 1, 1); } -static GtkWidget * playman_win = NULL; +static const AudguiListCallbacks callbacks = { + .get_value = get_value, + .get_selected = get_selected, + .set_selected = set_selected, + .select_all = select_all, + .activate_row = activate_row, + .right_click = NULL, + .shift_rows = shift_rows, + .data_type = NULL, + .get_data = NULL, + .receive_data = NULL}; + +static gboolean position_changed = FALSE; + +static void update_hook (void * data, void * list) +{ + if (GPOINTER_TO_INT (data) >= PLAYLIST_UPDATE_STRUCTURE) + { + gint old_rows = audgui_list_row_count (list); + gint rows = aud_playlist_count (); + + if (rows < old_rows) + { + audgui_list_delete_rows (list, rows, old_rows - rows); + old_rows = rows; + } + + audgui_list_update_rows (list, 0, old_rows); + audgui_list_update_selection (list, 0, old_rows); + + if (rows > old_rows) + audgui_list_insert_rows (list, old_rows, rows - old_rows); + + audgui_list_set_focus (list, aud_playlist_get_active ()); + } + + if (GPOINTER_TO_INT (data) >= PLAYLIST_UPDATE_STRUCTURE || position_changed) + { + audgui_list_set_highlight (list, aud_playlist_get_playing ()); + position_changed = FALSE; + } +} + +static void position_hook (void * data, void * list) +{ + if (aud_playlist_update_pending ()) + position_changed = TRUE; + else + audgui_list_set_highlight (list, aud_playlist_get_playing ()); +} void audgui_playlist_manager_ui_show (GtkWidget *mainwin) { GtkWidget *playman_vbox; GtkWidget * playman_pl_lv, * playman_pl_lv_sw; - GtkCellRenderer *playman_pl_lv_textrndr_name, *playman_pl_lv_textrndr_entriesnum; - GtkTreeViewColumn *playman_pl_lv_col_name, *playman_pl_lv_col_entriesnum; GtkWidget *playman_bbar_hbbox; GtkWidget * rename_button, * new_button, * delete_button; GtkWidget * hbox, * button; @@ -179,34 +199,17 @@ audgui_playlist_manager_ui_show (GtkWidget *mainwin) g_signal_connect ((GObject *) playman_win, "delete-event", (GCallback) hide_cb, NULL); + audgui_hide_on_escape (playman_win); playman_vbox = gtk_vbox_new (FALSE, 6); gtk_container_add( GTK_CONTAINER(playman_win) , playman_vbox ); - playman_pl_lv = gtk_tree_view_new_with_model (audgui_get_library_store ()); - gtk_tree_view_set_reorderable ((GtkTreeView *) playman_pl_lv, TRUE); - - playman_pl_lv_textrndr_entriesnum = gtk_cell_renderer_text_new(); /* uneditable */ - playman_pl_lv_textrndr_name = gtk_cell_renderer_text_new(); /* can become editable */ - g_object_set( G_OBJECT(playman_pl_lv_textrndr_entriesnum) , "weight-set" , TRUE , NULL ); - g_object_set( G_OBJECT(playman_pl_lv_textrndr_name) , "weight-set" , TRUE , NULL ); - g_signal_connect( G_OBJECT(playman_pl_lv_textrndr_name) , "edited" , - G_CALLBACK(playlist_manager_cb_lv_name_edited) , playman_pl_lv ); - g_object_set_data( G_OBJECT(playman_pl_lv) , "rn" , playman_pl_lv_textrndr_name ); - - playman_pl_lv_col_name = gtk_tree_view_column_new_with_attributes - (_("Playlist"), playman_pl_lv_textrndr_name, "text", - AUDGUI_LIBRARY_STORE_TITLE, "weight", AUDGUI_LIBRARY_STORE_FONT_WEIGHT, - NULL); - gtk_tree_view_column_set_expand( GTK_TREE_VIEW_COLUMN(playman_pl_lv_col_name) , TRUE ); - gtk_tree_view_append_column( GTK_TREE_VIEW(playman_pl_lv), playman_pl_lv_col_name ); - - playman_pl_lv_col_entriesnum = gtk_tree_view_column_new_with_attributes - (_("Entries"), playman_pl_lv_textrndr_entriesnum, "text", - AUDGUI_LIBRARY_STORE_ENTRY_COUNT, "weight", - AUDGUI_LIBRARY_STORE_FONT_WEIGHT, NULL); - gtk_tree_view_column_set_expand( GTK_TREE_VIEW_COLUMN(playman_pl_lv_col_entriesnum) , FALSE ); - gtk_tree_view_append_column( GTK_TREE_VIEW(playman_pl_lv), playman_pl_lv_col_entriesnum ); + playman_pl_lv = audgui_list_new (& callbacks, NULL, aud_playlist_count ()); + audgui_list_add_column (playman_pl_lv, _("Title"), 0, G_TYPE_STRING, TRUE); + audgui_list_add_column (playman_pl_lv, _("Entries"), 1, G_TYPE_INT, FALSE); + audgui_list_set_highlight (playman_pl_lv, aud_playlist_get_playing ()); + hook_associate ("playlist update", update_hook, playman_pl_lv); + hook_associate ("playlist position", position_hook, playman_pl_lv); playman_pl_lv_sw = gtk_scrolled_window_new( NULL , NULL ); gtk_scrolled_window_set_shadow_type ((GtkScrolledWindow *) playman_pl_lv_sw, @@ -235,8 +238,6 @@ audgui_playlist_manager_ui_show (GtkWidget *mainwin) gtk_box_pack_start( GTK_BOX(playman_vbox) , playman_bbar_hbbox , FALSE , FALSE , 0 ); - g_signal_connect ((GObject *) playman_pl_lv, "row-activated", (GCallback) - activate_cb, playman_win); g_signal_connect ((GObject *) rename_button, "clicked", (GCallback) rename_cb, playman_pl_lv); g_signal_connect ((GObject *) new_button, "clicked", (GCallback) new_cb, @@ -244,8 +245,6 @@ audgui_playlist_manager_ui_show (GtkWidget *mainwin) g_signal_connect ((GObject *) delete_button, "clicked", (GCallback) delete_cb, playman_pl_lv); - set_selected_row (playman_pl_lv, aud_playlist_get_active ()); - hbox = gtk_hbox_new (FALSE, 6); gtk_box_pack_start ((GtkBox *) playman_vbox, hbox, FALSE, FALSE, 0); button = gtk_check_button_new_with_mnemonic diff --git a/src/libaudgui/ui_regex.h b/src/libaudgui/ui_regex.h new file mode 100644 index 0000000..587f8d3 --- /dev/null +++ b/src/libaudgui/ui_regex.h @@ -0,0 +1,39 @@ +/* Audacious - Cross-platform multimedia player
+ * Copyright (C) 2005-2006 Audacious development team.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; under version 3 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses>.
+ *
+ * The Audacious team does not consider modular code linking to
+ * Audacious or using our public API to be a derived work.
+ */
+
+#ifndef __UI_REGEX_H__
+#define __UI_REGEX_H__
+
+#if defined USE_REGEX_ONIGURUMA
+ #include <onigposix.h>
+
+#elif defined USE_REGEX_PCRE
+ #include <pcreposix.h>
+
+#elif defined HAVE_REGEX_H
+ #include <regex.h>
+
+#elif defined HAVE_RXPOSIX_H
+ #include <rxposix.h>
+
+#elif defined HAVE_RX_RXPOSIX_H
+ #include <rx/rxposix.h>
+#endif
+
+#endif
diff --git a/src/libaudgui/ui_urlopener.c b/src/libaudgui/ui_urlopener.c index c6f9ca5..45e39c0 100644 --- a/src/libaudgui/ui_urlopener.c +++ b/src/libaudgui/ui_urlopener.c @@ -31,6 +31,7 @@ #include <gtk/gtk.h> #include <audacious/audconfig.h> +#include <audacious/gtk-compat.h> #include <audacious/i18n.h> #include <audacious/drct.h> #include <audacious/misc.h> @@ -63,7 +64,7 @@ GtkWidget * urlopener_add_url_dialog_new (GCallback func, gboolean open) vbox = gtk_vbox_new(FALSE, 10); gtk_container_add(GTK_CONTAINER(win), vbox); - combo = gtk_combo_box_entry_new_text(); + combo = gtk_combo_box_text_new_with_entry (); gtk_box_pack_start(GTK_BOX(vbox), combo, FALSE, FALSE, 0); entry = gtk_bin_get_child(GTK_BIN(combo)); @@ -71,8 +72,8 @@ GtkWidget * urlopener_add_url_dialog_new (GCallback func, gboolean open) gtk_entry_set_text(GTK_ENTRY(entry), ""); for (url = aud_cfg->url_history; url; url = g_list_next(url)) - gtk_combo_box_append_text(GTK_COMBO_BOX(combo), - (const gchar *) url->data); + gtk_combo_box_text_append_text ((GtkComboBoxText *) combo, + (const gchar *) url->data); g_signal_connect(entry, "activate", G_CALLBACK(urlopener_add_url_callback), diff --git a/src/libaudgui/util.c b/src/libaudgui/util.c index fe2f141..ac3667a 100644 --- a/src/libaudgui/util.c +++ b/src/libaudgui/util.c @@ -24,8 +24,12 @@ #include <gtk/gtk.h> #include <audacious/debug.h> +#include <audacious/gtk-compat.h> +#include <audacious/playlist.h> #include <audacious/plugin.h> #include <audacious/misc.h> +#include <libaudcore/audstrings.h> +#include <libaudcore/hook.h> #include "libaudgui.h" #include "libaudgui-gtk.h" @@ -74,19 +78,34 @@ void audgui_connect_check_box (GtkWidget * box, gboolean * setting) void audgui_simple_message (GtkWidget * * widget, GtkMessageType type, const gchar * title, const gchar * text) { - if (* widget == NULL) + AUDDBG ("%s\n", text); + + if (* widget != NULL) { - * widget = gtk_message_dialog_new (NULL, 0, type, GTK_BUTTONS_OK, "%s", - text); - gtk_window_set_title ((GtkWindow *) * widget, title); - - g_signal_connect (* widget, "response", (GCallback) gtk_widget_destroy, - NULL); - audgui_destroy_on_escape (* widget); - g_signal_connect (* widget, "destroy", (GCallback) gtk_widget_destroyed, - widget); +#if GTK_CHECK_VERSION (2, 10, 0) + const gchar * old = NULL; + g_object_get ((GObject *) * widget, "text", & old, NULL); + g_return_if_fail (old); + + if (! strcmp (old, text)) + goto CREATED; + + gchar both[strlen (old) + strlen (text) + 2]; + snprintf (both, sizeof both, "%s\n%s", old, text); + g_object_set ((GObject *) * widget, "text", both, NULL); +#endif + goto CREATED; } + * widget = gtk_message_dialog_new (NULL, 0, type, GTK_BUTTONS_OK, "%s", text); + gtk_window_set_title ((GtkWindow *) * widget, title); + + g_signal_connect (* widget, "response", (GCallback) gtk_widget_destroy, NULL); + audgui_destroy_on_escape (* widget); + g_signal_connect (* widget, "destroy", (GCallback) gtk_widget_destroyed, + widget); + +CREATED: gtk_window_present ((GtkWindow *) * widget); } @@ -105,16 +124,20 @@ GdkPixbuf * audgui_pixbuf_from_data (void * data, gint size) return pixbuf; } -GdkPixbuf * audgui_pixbuf_for_file (const gchar * name) +GdkPixbuf * audgui_pixbuf_for_entry (gint list, gint entry) { - /* MMS is slow. Skip it. */ - if (! strncmp (name, "mms://", 6)) - return NULL; + const gchar * name = aud_playlist_entry_get_filename (list, entry); + g_return_val_if_fail (name, NULL); - InputPlugin * decoder = aud_file_find_decoder (name, FALSE); + /* Don't get album art for network files -- too slow. */ + if (! strncmp (name, "http://", 7) || ! strncmp (name, "https://", 8) || + ! strncmp (name, "mms://", 6)) + goto FALLBACK; + AUDDBG ("Trying to load pixbuf for %s.\n", name); + PluginHandle * decoder = aud_playlist_entry_get_decoder (list, entry, FALSE); if (! decoder) - return NULL; + goto FALLBACK; void * data; gint size; @@ -123,17 +146,67 @@ GdkPixbuf * audgui_pixbuf_for_file (const gchar * name) { GdkPixbuf * p = audgui_pixbuf_from_data (data, size); g_free (data); - return p; + if (p) + return p; } gchar * assoc = aud_get_associated_image_file (name); - if (! assoc) - return NULL; + if (assoc) + { + GdkPixbuf * p = gdk_pixbuf_new_from_file (assoc, NULL); + g_free (assoc); + if (p) + return p; + } + +FALLBACK:; + AUDDBG ("Using fallback pixbuf.\n"); + static GdkPixbuf * fallback = NULL; + if (! fallback) + { + gchar * path = g_strdup_printf ("%s/images/album.png", + aud_get_path (AUD_PATH_DATA_DIR)); + fallback = gdk_pixbuf_new_from_file (path, NULL); + g_free (path); + } + if (fallback) + g_object_ref ((GObject *) fallback); + return fallback; +} + + +static void clear_cached_pixbuf (void * list, GdkPixbuf * * pixbuf) +{ + if (GPOINTER_TO_INT (list) != aud_playlist_get_playing () || ! * pixbuf) + return; - GdkPixbuf * p = gdk_pixbuf_new_from_file (assoc, NULL); - g_free (assoc); - return p; + AUDDBG ("Clearing cached pixbuf.\n"); + g_object_unref ((GObject *) * pixbuf); + * pixbuf = NULL; +} + +GdkPixbuf * audgui_pixbuf_for_current (void) +{ + static GdkPixbuf * pixbuf = NULL; + static gboolean hooked = FALSE; + + if (! hooked) + { + hook_associate ("playlist position", (HookFunction) clear_cached_pixbuf, + & pixbuf); + hooked = TRUE; + } + + if (! pixbuf) + { + gint list = aud_playlist_get_playing (); + pixbuf = audgui_pixbuf_for_entry (list, aud_playlist_get_position (list)); + } + + if (pixbuf) + g_object_ref ((GObject *) pixbuf); + return pixbuf; } void audgui_pixbuf_scale_within (GdkPixbuf * * pixbuf, gint size) |