kraus 7 жил өмнө
parent
commit
d552bfb6d0

+ 1 - 1
README.md

@@ -8,5 +8,5 @@ Description: https://github.com/olikraus/u8g2/wiki
 
 Issue Tracker: https://github.com/olikraus/u8g2/issues
 
-Download (2.25.10): https://github.com/olikraus/U8g2_Arduino/archive/master.zip
+Download (2.26.1): https://github.com/olikraus/U8g2_Arduino/archive/master.zip
 

+ 4 - 5
examples/full_buffer/FPS/FPS.ino

@@ -500,11 +500,10 @@ void show_result(const char *s, uint16_t fps) {
   // assign default color value
   u8g2.setColorIndex(draw_color);
   u8g2.setFont(u8g2_font_8x13B_tf);
-  u8g2.firstPage();  
-  do {
-    u8g2.drawStr(0,12, s);
-    u8g2.drawStr(0,24, convert_FPS(fps));
-  } while( u8g2.nextPage() );
+  u8g2.clearBuffer();
+  u8g2.drawStr(0,12, s);
+  u8g2.drawStr(0,24, convert_FPS(fps));
+  u8g2.sendBuffer();
 }
 
 void setup(void) {

+ 1 - 1
examples/page_buffer/FlipMode/FlipMode.ino

@@ -90,7 +90,7 @@
 //U8G2_SSD1306_64X32_1F_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
 //U8G2_SSD1306_96X16_ER_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);   // EastRising 0.69" OLED 
 //U8G2_SSD1322_NHD_256X64_1_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 13, /* data=*/ 11, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);	// Enable U8G2_16BIT in u8g2.h
-//U8G2_SSD1322_NHD_256X64_1_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);	// Enable U8G2_16BIT in u8g2.h
+U8G2_SSD1322_NHD_256X64_1_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);	// Enable U8G2_16BIT in u8g2.h
 //U8G2_SSD1322_NHD_128X64_1_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 13, /* data=*/ 11, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);
 //U8G2_SSD1322_NHD_128X64_1_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);
 //U8G2_SSD1325_NHD_128X64_1_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 13, /* data=*/ 11, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);

+ 6 - 1
keywords.txt

@@ -463,6 +463,12 @@ u8g2_font_open_iconic_text_1x_t	LITERAL1
 u8g2_font_open_iconic_thing_1x_t	LITERAL1
 u8g2_font_open_iconic_weather_1x_t	LITERAL1
 u8g2_font_open_iconic_www_1x_t	LITERAL1
+u8x8_font_open_iconic_arrow_1x1	LITERAL1
+u8x8_font_open_iconic_check_1x1	LITERAL1
+u8x8_font_open_iconic_embedded_1x1	LITERAL1
+u8x8_font_open_iconic_play_1x1	LITERAL1
+u8x8_font_open_iconic_thing_1x1	LITERAL1
+u8x8_font_open_iconic_weather_1x1	LITERAL1
 u8g2_font_open_iconic_all_2x_t	LITERAL1
 u8g2_font_open_iconic_app_2x_t	LITERAL1
 u8g2_font_open_iconic_arrow_2x_t	LITERAL1
@@ -785,7 +791,6 @@ u8g2_font_adventurer_tf	LITERAL1
 u8g2_font_adventurer_tr	LITERAL1
 u8g2_font_adventurer_t_all	LITERAL1
 u8g2_font_bracketedbabies_tr	LITERAL1
-u8g2_font_cosmonazisserif_tr	LITERAL1
 u8g2_font_frikativ_tf	LITERAL1
 u8g2_font_frikativ_tr	LITERAL1
 u8g2_font_frikativ_t_all	LITERAL1

+ 1 - 1
library.properties

@@ -1,5 +1,5 @@
 name=U8g2
-version=2.25.10
+version=2.26.1
 author=oliver <olikraus@gmail.com>
 maintainer=oliver <olikraus@gmail.com>
 sentence=Monochrome LCD, OLED and eInk Library. Display controller: SSD1305, SSD1306, SSD1309, SSD1322, SSD1325, SSD1327, SSD1329, SSD1606, SSD1607, SH1106, SH1107, SH1108, SH1122, T6963, RA8835, LC7981, PCD8544, PCF8812, HX1230, UC1601, UC1604, UC1608, UC1610, UC1611, UC1701, ST7565, ST7567, ST7588, ST75256, NT7534, IST3020, ST7920, LD7032, KS0108, SED1520, SBN1661, IL3820, MAX7219. Interfaces: I2C, SPI, Parallel.

+ 6 - 0
src/U8g2lib.h

@@ -62,6 +62,10 @@ class U8G2 : public Print
     U8G2(void) { cpp_next_cb = u8x8_ascii_next; home(); }
     u8x8_t *getU8x8(void) { return u8g2_GetU8x8(&u8g2); }
     u8g2_t *getU8g2(void) { return &u8g2; }
+    
+    void sendF(const char *fmt, ...) 
+      { va_list va; va_start(va, fmt); u8x8_cad_vsendf(u8g2_GetU8x8(&u8g2), fmt, va); va_end(va); }
+
 
     uint32_t getBusClock(void) { return u8g2_GetU8x8(&u8g2)->bus_clock; }
     void setBusClock(uint32_t clock_speed) { u8g2_GetU8x8(&u8g2)->bus_clock = clock_speed; }
@@ -122,6 +126,8 @@ class U8G2 : public Print
       
     void setDisplayRotation(const u8g2_cb_t *u8g2_cb) {
       u8g2_SetDisplayRotation(&u8g2, u8g2_cb); }
+      
+    
 
     
     bool begin(void) {

+ 3 - 0
src/U8x8lib.h

@@ -161,6 +161,9 @@ class U8X8 : public Print
   
     U8X8(void) { home();  }
     u8x8_t *getU8x8(void) { return &u8x8; }
+
+    void sendF(const char *fmt, ...) 
+      { va_list va; va_start(va, fmt); u8x8_cad_vsendf(&u8x8, fmt, va); va_end(va); }
     
     uint32_t getBusClock(void) { return u8x8.bus_clock; }
     void setBusClock(uint32_t clock_speed) { u8x8.bus_clock = clock_speed; }

+ 2 - 1
src/clib/u8g2.h

@@ -1212,6 +1212,8 @@ u8g2_uint_t u8g2_DrawExtUTF8(u8g2_t *u8g2, u8g2_uint_t x, u8g2_uint_t y, uint8_t
 #define u8g2_GetFontAscent(u8g2) ((u8g2)->font_ref_ascent)
 #define u8g2_GetFontDescent(u8g2) ((u8g2)->font_ref_descent)
 
+uint8_t u8g2_IsAllValidUTF8(u8g2_t *u8g2, const char *str);	// checks whether all codes are valid
+
 u8g2_uint_t u8g2_GetStrWidth(u8g2_t *u8g2, const char *s);
 u8g2_uint_t u8g2_GetUTF8Width(u8g2_t *u8g2, const char *str);
 
@@ -1933,7 +1935,6 @@ extern const uint8_t u8g2_font_adventurer_tf[] U8G2_FONT_SECTION("u8g2_font_adve
 extern const uint8_t u8g2_font_adventurer_tr[] U8G2_FONT_SECTION("u8g2_font_adventurer_tr");
 extern const uint8_t u8g2_font_adventurer_t_all[] U8G2_FONT_SECTION("u8g2_font_adventurer_t_all");
 extern const uint8_t u8g2_font_bracketedbabies_tr[] U8G2_FONT_SECTION("u8g2_font_bracketedbabies_tr");
-extern const uint8_t u8g2_font_cosmonazisserif_tr[] U8G2_FONT_SECTION("u8g2_font_cosmonazisserif_tr");
 extern const uint8_t u8g2_font_frikativ_tf[] U8G2_FONT_SECTION("u8g2_font_frikativ_tf");
 extern const uint8_t u8g2_font_frikativ_tr[] U8G2_FONT_SECTION("u8g2_font_frikativ_tr");
 extern const uint8_t u8g2_font_frikativ_t_all[] U8G2_FONT_SECTION("u8g2_font_frikativ_t_all");

+ 27 - 0
src/clib/u8g2_font.c

@@ -1043,6 +1043,33 @@ void u8g2_SetFont(u8g2_t *u8g2, const uint8_t  *font)
 
 /*===============================================*/
 
+static uint8_t u8g2_is_all_valid(u8g2_t *u8g2, const char *str) U8G2_NOINLINE;
+static uint8_t u8g2_is_all_valid(u8g2_t *u8g2, const char *str)
+{
+  uint16_t e;
+  u8x8_utf8_init(u8g2_GetU8x8(u8g2));
+  for(;;)
+  {
+    e = u8g2->u8x8.next_cb(u8g2_GetU8x8(u8g2), (uint8_t)*str);
+    if ( e == 0x0ffff )
+      break;
+    str++;
+    if ( e != 0x0fffe )
+    {
+      if ( u8g2_font_get_glyph_data(u8g2, e) == NULL )
+	return 0;
+    }
+  }
+  return 1;
+}
+
+uint8_t u8g2_IsAllValidUTF8(u8g2_t *u8g2, const char *str)
+{
+  u8g2->u8x8.next_cb = u8x8_utf8_next;
+  return u8g2_is_all_valid(u8g2, str);
+}
+
+
 /* string calculation is stilll not 100% perfect as it addes the initial string offset to the overall size */
 static u8g2_uint_t u8g2_string_width(u8g2_t *u8g2, const char *str) U8G2_NOINLINE;
 static u8g2_uint_t u8g2_string_width(u8g2_t *u8g2, const char *str)

+ 318 - 372
src/clib/u8g2_fonts.c

@@ -57081,68 +57081,6 @@ const uint8_t u8g2_font_bracketedbabies_tr[1781] U8G2_FONT_SECTION("u8g2_font_br
   "Q\222%Q\22\15C\0{\27\345\311\354$)\211\222(\211\222()U\242$J\242$J\62Q|"
   "\32\305\311l\206\244\224DI\224DI\224DI\224DI\224DI\224$C\2}\14\344\311*\302Z"
   "\307(\353T\3~\10GHq\64i\1\0\0\0\4\377\377\0";
-/*
-  Fontname: -FreeType-CosmonazisSerif-Medium-R-Normal--16-160-72-72-P-82-ISO10646-1
-  Copyright: HYPYRYL
-  Glyphs: 95/107
-  BBX Build Mode: 0
-*/
-const uint8_t u8g2_font_cosmonazisserif_tr[1743] U8G2_FONT_SECTION("u8g2_font_cosmonazisserif_tr") = 
-  "_\0\3\3\4\4\3\5\5\17\17\377\375\14\375\14\376\1\351\4\272\6\262 \5\0\204\25!\7\262\205"
-  "\24\217\4\42\11\65\304\26\22\212$\24#\31\271\204Z\261`,\30\13\35D\261`,\30\13\35D\261"
-  "`,\30\13\1$\34\332|\273a\333\204$\212\210D\221\225p\35P\31E&\242\220d\22\31\235\203"
-  "\0%\31\274\204=T\222L\42\322EH\221\203\344 \11Q\42\322E&\242R\0&\30\312\204[T"
-  "\221P&\33\11%R\252D(\223\20'B\321\250R\31'\7\62\305\24\224\0(\16\345t\226\261\64"
-  "YL\307\240\60\232\0)\16\345t\26\321DaP\246-&\313\10*\13U\275W\61Qe\42\211\0"
-  "+\13x\224yb\265CL\254\6,\10Bu\24\24\11\0-\6\24\245\26\4.\6\42\205\24\4/"
-  "\20\267\204\270\322\250\64*\215J\243\322\250\24\0\60\23\310\204Y\64\221D\310V\262HL\65\242D$"
-  "#\1\61\12\306\204wA%\242~\62\62\16\310\204Y%Q\221(\226\352\353A\0\63\25\310\204Y\64"
-  "\221DH\224\316\346\0\71\200H\224\210d$\0\64\24\310\204\271\302\210L\42\223\210t\221Id\222C"
-  "T\254\2\65\22\310\204\71&\261T,\31Q\24\305bbIT\2\66\22\310\204Y%Q\221,\31Q"
-  "\24\31k\22\221\214\4\67\21\310\204\31\7\251X*\226\212\245b\251XJ\3\70\25\310\204Y\64\221D"
-  "H\224\210d\64\221D\310(\21\311H\0\71\22\310\204Y\64\221D\310Q\42\32\231\211\64Q\11\0:"
-  "\10\202\205\24t\10\1;\11\242u\24t\10E\2<\12x\224\271\63\22m\314<=\10F\235\30v"
-  "\250\1>\16y\224\32t\0\35@\7\14i\254\0\77\24\311\204Z\65\25)U\16\20K\247r\200\34"
-  "I\16\20\2@\34\314\204]G\251,\16\220\210XD\22\212HB\21I\42J\24Q\61\16\134\264\1"
-  "A\32\314\204}t\320\34\64\207\250\3$r\200H*\223\36\202jb\221X\62\36B\33\312\204\33\207"
-  "\230P$\24\11E\62\331!$\234H%R\211T\42\224\34B\0C\27\313\204\134\267\225\251D\134\7"
-  "\311Ar\220\34$\266\212f\263\23\0D\33\313\204\34\7\231p$\235\210%b\211X\42\226\210%b"
-  "\211t\42\234\34b\0E\30\311\204\32\7\211\64\42\7\310\1\242`Q\24\224\3\344\0\71@z\30F"
-  "\30\311\204\32\7\211\64\42\7\310\1\242`Q\24\224\3\344\0\71@L\5G\33\314\204}V\331L*"
-  "\223N\344\60\71Lx\210\3$c\221X\66\242R$\0H\32\313\204\34\304\211T$\25IER\221"
-  "Tt\20IER\221T$\225\20\7I\12\304\205\26\24\221\376\205\0J\30\311\204\272d\71@\16\220"
-  "\3\344\0\71@BR\23\311D\223Y\11\0K\30\313\204\34\303\221P\246(\23\212\244\22\261U\64\224"
-  "\315\204#\251\204\70L\31\311\204\32s\200\34 \7\310\1r\200\34 \7\310\1r\200\34 =\14M"
-  " \315\204\36s\300d:\232\216h$\32I\22\213\210$\232$\232D\221\220\322Hi$\231\305\6N"
-  "\33\313\204\34\323\311PD\23\321D\22\221\212H\213HE$#\311H\302\311T\2O\31\313\204\134\67"
-  "\341H*\221\3\350\0:\200\16\240\3\350\200\262d\66;\1P\31\312\204\33\207\330L$\225H%R"
-  "\211Pt\223C\344\20\71D\16\230\3Q!\334|]G\341L*\222\3$r\200D\16\220\310\1\22"
-  "\71@\42\7Hf\22\321lx\220\3\5R\30\313\204\34\207\340LU$\25IEB\331Q\66\23\216"
-  "\244\42\251d:S\27\312\204{E\321H(\22N\346\220:\240\16\261J\244\222\331\350\2T\32\312\204"
-  "\33\7\232,(\207\310!r\210\34\42\207\310!r\210\34\42\7\320\0U\32\313\204\34C\212T$\25"
-  "IER\221T$\25IER\321P\66\32V\4V\33\313\204\34c\211\70\64\215\11eB\331,*"
-  "\222\212\244\223\70\200\16\240\3\206\0W!\316\204\37s\310D\16\21\311\202\42\231\322H\64\223\214f\22"
-  "\212P\22Q$QGT\341T\11\0X\31\313\204\34\64\212T$T\223J\344\200\71\204,\31\312\204"
-  "JR\11\215\0Y\32\313\204\34\323\211T\246(\223J\304\22\71`\16\221\203\344 \71H\16!\2Z"
-  "\31\312\204\33\207\262\34 \207\310\1r\200\34 \7\310\1r\200\34 >\24[\11\343u\25\25\375/"
-  "\3\134\17\267\204\30\342\260\70,\16\213\303\342\260\0]\11\343u\25\23\375/\5^\12W\274x\321Y"
-  "e\242&_\7\31l\32\7\1`\7#\315\25\42\1a\22\231\204Z\265\221\232\34 \272\314$B\311"
-  "hT\21b\32\311\204\32s\200\34 \7Hf\24\321L\42\224\10%B\311LB\221,\1c\16\230"
-  "\204\71\226\31\221\254Q\42\23U\0d\30\311\204\332c\71@\66\21I(\262\211P\42\224\10%\262\221"
-  "\204\66\31e\20\230\204\71\226Q\221t\220\211\205\22\231\250\2f\20\307\204x\63\211H\42\222\312lR"
-  "\35I\0g\22\310l\71\24\25[\221\333DB\232\20K\242\22\0h\30\311\204\32s\200\34 \7H"
-  "\204\266\221\232H&\222\211d\42\231dDi\13\304\204\65\352\220\310H_\10j\13\364kT\22\361H"
-  "\377T\1k\21\310\204\31cM\23\221.\62\242D&\322\62\32l\11\304\204\25#\375\27\2m\17\234"
-  "\204\35\23\221\354\60\322\377\177\31\211\6n\25\231\204\32\223\331d$\23\311D\62\221L$\23\311$\244"
-  "\1o\16\230\204\71\65\221D\310\243D$#\1p\31\311l\32\223\31E\64\223\10%B\211P\62\223"
-  "PD\222\231\34 \36\3q\32\311lZ\223\211\204\42\233\10%B\211P\42\33Ih\23\71@\16\220"
-  "\3\6r\16\230\204\31\22\322H\42\223\210u%\2s\20\230\204\71%YQ\62\7\320\1\304\232\250\2"
-  "t\15\306\204w\261\241\222I\250W\11\0u\25\232\204\33\263\221P$\24\11EB\221P$\224\211\206"
-  "\24\1v\24\231\204\32\263\211\60$\14\315b\242\340$*\211\222e\0w\26\234\204\35\343\211,\244\247"
-  "\211L\62\221Qh\24\242h*\23\1x\21\230\204\31\63\211H&\221Q\245S\232di\0y\25\311"
-  "l\32C\211\60$S\222I\204\22\351x,\36\222\305\0z\13\230\204\31\207\241T\37\17\3{\14\366"
-  "lw#\241n\252\212\272\16|\7\321v\24\7\3}\15\366l\27S\241\256j\212:\315\0~\12\71"
-  "\244:\63\312\204\66\1\0\0\0\4\377\377\0";
 /*
   Fontname: -FreeType-Frikativ-Medium-R-Normal--16-160-72-72-P-87-ISO10646-1
   Copyright: DominikKrotschec
@@ -83977,11 +83915,11 @@ const uint8_t u8g2_font_unifont_t_japanese3[161625] U8G2_FONT_SECTION("u8g2_font
 /*
   Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1
   Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception.
-  Glyphs: 567/57086
+  Glyphs: 574/57086
   BBX Build Mode: 0
 */
-const uint8_t u8g2_font_unifont_t_korean1[14167] U8G2_FONT_SECTION("u8g2_font_unifont_t_korean1") = 
-  "\67\0\4\3\5\5\4\5\6\20\20\0\376\12\376\13\377\1\276\3x\5R \6\0\240G\1!\10A"
+const uint8_t u8g2_font_unifont_t_korean1[14409] U8G2_FONT_SECTION("u8g2_font_unifont_t_korean1") = 
+  ">\0\4\3\5\5\4\5\6\20\20\0\376\12\376\13\377\1\276\3x\5R \6\0\240G\1!\10A"
   "\61D\341B\0\42\11\205(F!F\233\0#\16F%D%O.B\262\70\311\23\0$\24G%"
   "D'\250\42$D$hl(D$EQ\14\0%\31G%DCF$\42ID\210DTXT"
   "\204HDHD\22\31\11\0&\26G%De&IL\212 \241\210\20\231\10\241\210\30\221\221\0'"
@@ -84024,7 +83962,7 @@ const uint8_t u8g2_font_unifont_t_korean1[14167] U8G2_FONT_SECTION("u8g2_font_un
   "z\12\6%D\301*(\257\14{\21\203\355Cc$&$\42$&$\42$F\0|\7\301\261C"
   "\341\1}\22\203\351CA&$\42$&$\42$&d\2\0~\14g$FCF$DF\2\0"
   "\177'\20\242\203!\42\277\207\220G \17\61B\21\63\22\21\24\25\22A\21\63\22\21\24\65Ba\217"
-  "@\36\201<D\376\0\0\0\0\20\262\350\11\370\274\24\12\227\305\307\13\15\377\377\254\0\34\254\355\203\61"
+  "@\36\201<D\376\0\0\0\0\20\262\350\11\370\274\17\12\240\305\274\13\25\377\377\254\0\34\254\355\203\61"
   "\66\306$\60$\60$\60\204(&.&,(*\215Xl\32\0\254\1\31\315\351\203\65\244*,*"
   ",*\331H\134\210`p<\314ApN\0\254\4\31\315\351\203\65\244*,*,*\331H\134\210`"
   "p\242\340\214\17D\0\254\10\36\315\351\203\65\244*,*,*\331H\134\210`p<\314Ap\324A"
@@ -84118,312 +84056,320 @@ const uint8_t u8g2_font_unifont_t_korean1[14167] U8G2_FONT_SECTION("u8g2_font_un
   "@\4\0\263\331\31\255\345\203\345@(\70\370@\60\70\354\300\36A]TXT\134\21\0\264\30\27\314"
   "\345\203\67\366@FT\351\201Ll\242\260\240\260\3\212\330\4\264P\22\253\351\203\341\240\64\323\3z\270"
   "\3\252\320\254\0\264X\33\255\345\203\345@(\70\370@\36\340\300,\70\360@\70\350@(\370@\4\0"
-  "\264\244\33\314\345\203\67\366`DT\351\301Hl\354\1EPXPXPXPX\0\264\334\20M\245"
-  "\204\343\200$\70\343\3z\244\7\6\264\340\26\255\345\203\345@(\70\370@\36\372\300\36:\70\361\201\10"
-  "\0\264\343\30\255\345\203\345@(\70\370@\36\372\300\36\340@(\70\361\201\10\0\264\344\32\255\345\203\345"
-  "@(\70\370@\36\372\300\36\340@\70\350@(\370@\4\0\264\357\30\255\345\203\345@(\70\370@\36"
-  "\372\300\36IplD\240L\20\0\264\361\30\255\345\203\345@(\70\370@\36\372\300\36A]TXT"
-  "\134\21\0\265\24\20\254\345\203\67\366@FT\247\7\62\261\71\265\60\33\256\345\203\65:\206\202\42&("
-  "MP\232\240\240\242\64Ai((\242s\3\265\70\42\316\345\203\67:db($&,$&\214&"
-  ",db(:\36\352 :\354 ,\372 \4\0\265E\36\316\345\203\67:db($&,$&"
-  "\214&,db(:\36\225]Xv\66\0\265L#\256\345\203\65$\64\244\202\42D(\211P\22\241"
-  "\240\242$BI*(BBCBCBCBC\2\265\240\30\256\345\203;\272\202H(N(N("
-  "\250(N(\256\202(:\7\265\244\30\314\345\203\67\226bH&L&\210&\214b(\66\36\66\333\203"
-  "\1\265\250\35\314\345\203\67\226bH&L&\210&\214b(\66\36\342 \66\350 (\366 \0\265\273"
-  "\35\314\345\203\67\226bH&L&\210&\214b(\66\36(\356@\252,*\254\4\0\266\20\27\215%"
-  "\204\243ITXTXTXTXE=\232\340d\7\6\267;\31\255\345\203\205\202(]P\34\5="
-  "\364\201=\222\340\330\210@\231 \0\267|\32\255\351\203\63\70\346$\62$\62$\346\244\60&\60&\60"
-  "\346$\70\33\0\267\214\35\315\351\203\65\70\304(.(\304\210\62\304(\70\36\350,*,*,*\354"
-  "\4\0\267\221\32\315\351\203\65\70\304(.(\304\210\62\304(\70\36\211Y\252\260\60\33\0\267\227\34\315"
-  "\351\203\65\70\304(.(\304\210\62\304(\70\36,\360@\254.*\256\10\0\267\230\42\255\351\203\63$"
-  "\62\344 $YH\262\220\220\203\220\302\20\301\20\301\220\203\220\224!\221!\221!\1\267\250 \313\351\203"
-  "\61\42\60\342$\42*$\342\204.\342$\42\60\42\36\340(*(*(*\350\0\267\354\26\255\351\203"
-  "\71\370 *,*,\352 \244V\355ATp\6\267\360\25\313\351\203\65\364(*\350\204\362(\64\36"
-  "\60\64\351\301\0\267\374\31\313\351\203\65\364(*\350\204\362(\64\36\340(*(*(*\350\0\267\375"
-  "\31\313\351\203\65\364(*\350\204\362(\64\36 *(*\350(*\350\0\270\7\30\313\351\203\65\364("
-  "*\350\204\362(\64\36$\354@\250*U\11\0\270\10&\255\351\203\65\42\64\342 &\42,&\42,"
-  "&\342 bB\62B\62B\62\342 &\42\64\42\64\42\64\42\0\270$\27\255\351\203\71\370 *,"
-  "*,\344\200JV\260\366 *\70\3\270%\26\313\351\203\65\364(*\344@H\356@(\64\36\364 "
-  "\64\3\270(\26\313\351\203\65\364(*\344@H\356@(\64qh\322\203\1\270\65\33\313\351\203\65\364"
-  "(*\344@H\356@(\64\36 *(*\350(*\350\0\270\71\32\313\351\203\65\364(*\344@H"
-  "\356@(\64\36\326(,&,\310\2\0\270@&\255\351\203\65\42\64\342 &\42,&\42,b\342"
-  " &B\62BnB\62\342 &\42\64\42\64\42\64\42\0\270\134\25\215%\204\345@\70\321\201Pp"
-  "\360\201<Xp\262\3\3\270`\31\315\345\203\345@\70\350@(\370@\60\70\354\300\36:\70\361\201\10"
-  "\0\270m\37\315\345\203\345@\70\350@(\370@\60\70\354\300\36 .(.\350@(.\350@\4\0"
-  "\270o\33\315\345\203\345@\70\350@(\370@\60\70\354\300\36IplD\240L\20\0\270\314\32\215%"
-  "\204\345@\70\321\201Pp\360\201XL`L`L`L\320\201\1\270\350\25\253\351\203\343@\64\311\201"
-  "Hh\350\201\360\1UhV\0\270\371\37\315\345\203\345@\70\350@(\370@\36\340\300,\70\60.("
-  ".\350@(.\350@\4\0\271X\34\255\345\203\345@\70\321\201Pp\360\201<\300\201QL`L`"
-  "L`L\20\0\271m\36\315\345\203\345@\70\350@(\370@\36\340\300(&\60&\36\254.*,*"
-  "\256\10\0\271t\23M\245\204\345@\70\321\201Pp\360\201<\364\201\1\271x\30\315\345\203\345@\70\350"
-  "@(\370@\36\372\300\36:\70\361\201\10\0\271\204\36\315\345\203\345@\70\350@(\370@\36\372\300\36"
-  "\340@(.(.(.\350@\4\0\271\254\26\253\351\203\65\364 &,&,\346 FR\345AL"
-  "h\6\271\260\24\313\351\203\65\364(*\350H\362(\64qh\322\203\1\271\274\31\313\351\203\65\364(*"
-  "\350H\362(\64\36\340(*(*(*\350\0\271\310\42\256\345\203\65:\346 $&,$&,$"
-  "&,\244,$&,$&,$\346 $:\33\0\271\311\35\316\345\203\67\304*$(*$(*"
-  "$(\212(*\304*:\36\352 :'\0\271\314\35\316\345\203\67\304*$(*$(*$(\212"
-  "(*\304*:Ut\326\7\42\0\271\316%\317\345\203\67\306*&(*&(*&(j\42(*"
-  "\306*<\36,.,\350&l*MP\311\10\0\271\320\42\316\345\203\67\304*$(*$(*$"
-  "(\212(*\304*:\36\352 :\354 ,\372 \4\0\271\331\42\316\345\203\67\304*$(*$("
-  "*$(\212(*\304*:\36,*.*\356.*\356\4\0\271\333 \316\345\203\67\304*$(*"
-  "$(*$(\212(*\304*:\36\66:\255D\240P\4\0\271\336!\316\345\203\67\304*$(*"
-  "$(*$(\212(*\304*:\36\354\66:V\42P(\4\0\271\341\37\316\345\203\67\304*$("
-  "*$(*$(\212(*\304*:\36\354.\372.\372\4\0\271\344'\256\345\203\65$\64\344@$"
-  "D,$D,$D,\244,$D,$D,$\344@$iHhHhH\0\272\70\32\256\345"
-  "\203;\372@J,J,J,\244,J,J,\352@*:\3\272\71\27\314\345\203\367J(J("
-  "J(\206(\352*\66\36\372 \66\3\272<\27\314\345\203\367J(J(J(\206(\352*\66\36\66"
-  "\333\203\1\272@\34\314\345\203\367J(J(J(\206(\352*\66\36\342 \66\350 (\366 \0\272"
-  "p\32\256\345\203;\372@J,J,\244,J,J,\244,\352@*:\3\272t\30\314\345\203\367"
-  "J(J(\206(J(\346@*\66yl\332\203\1\272\205\34\314\345\203\367J(J(\206(J("
-  "\346@*\66\36\334*,(,\312\2\0\272\207\34\314\345\203\367J(J(\206(J(\346@*\66"
-  "\36*\360\60\64\42NF\0\272\250\30\215%\204\343\200$\62$\62$\62$\62\344\200\36Mp\262\3"
-  "\3\272\251\32\315\345\203\345@(.(.(.\350@\60\70\354\300\36\340@\70'\0\272\270!\315\345"
-  "\203\345@(.(.(.\350@\60\70\354\300\36\340@(.(.(.\350@\4\0\272\273\35\315"
-  "\345\203\345@(.(.(.\350@\60\70\354\300\36IplD\240L\20\0\273\64\21\253\351\203\341"
-  "\240R\227\7\265\7T\241Y\1\273\70\35\315\345\203\345@(.(.(.\350@\36\372\300,\70\60"
-  "&\60\70\370@\4\0\273;\35\315\345\203\345@(.(.(.\350@\36\340\300,\70\360@(\70"
-  "\361\201\10\0\273<\37\315\345\203\345@(.(.(.\350@\36\340\300,\70\360@\70\350@(\370"
-  "@\4\0\273P(\314\345\203\67\342 $\42,$\42,$\42,$\42,$\42,$\342 $\366"
-  "\200\42(,(\244(,(,\0\273\370\32\254\345\203\67\366@F,F,F,F,F,F,"
-  "\346@&\66\3\273\374\27\314\345\203\367J(J(J(J(\352*\66yl\332\203\1\273\377\30\314"
-  "\345\203\367J(J(J(J(\352*\66\36\344*\66\355\1\274\17\33\314\345\203\367J(J(J"
-  "(J(\352*\66\36*\360\60\64\42NF\0\274\21\31\314\345\203\367J(J(J(J(\352*"
-  "\66\36\344*\366*\366\0\274\24 \255\351\203\63\70&*$&*$&*$\346\244*$&*$"
-  "&*$\346$\70\33\0\274\26\37\316\345\203\67:$(*$(*\304\212(*\304*:\36E\273"
-  "\250\270\250\270\250\20\0\274\30\33\316\345\203\67:$(*$(*\304\212(*\304*:Ut\326\7"
-  "\42\0\274\33\34\316\345\203\67:$(*$(*\304\212(*\304*:\36\354.:\365\11\0\274\34"
-  " \316\345\203\67:$(*$(*\304\212(*\304*:\36\352 :\354 ,\372 \4\0\274\35"
-  "\42\316\345\203\67:$(*$(*\304\212(*\304*:\36\244\242.*\246*&\62\246*\4\0"
-  "\274$ \316\345\203\67:$(*$(*\304\212(*\304*:\36\354.*.*.*\356\4\0"
-  "\274% \316\345\203\67:$(*$(*\304\212(*\304*:\36,*.*\356.*\356\4\0"
-  "\274)\34\316\345\203\67:$(*$(*\304\212(*\304*:\36\225]Xv\66\0\274\60'\255"
-  "\351\203\63$\62D*$D*$D*$\344 \244*$D*$D*$\344 $eHdH"
-  "dH\0\274\204\32\255\351\203\71X*J*J*\352 \244*J*J*\352 *\70\3\274\210\26"
-  "\314\345\203\67V(J(\352\206(\352*\66\36\66\333\203\1\274\214\33\314\345\203\67V(J(\352\206"
-  "(\352*\66\36\342 \66\350 (\366 \0\274\225\30\314\345\203\67V(J(\352\206(\352*\66\36"
-  "$*\253\253T\7\274\275\30\314\345\203\67V(J(\346@J(\346@*\66\36\372 \66\3\274\300"
-  "\30\314\345\203\67V(J(\346@J(\346@*\66yl\332\203\1\274\304\35\314\345\203\67V(J"
-  "(\346@J(\346@*\66\36\342 \66\350 (\366 \0\274\321\34\314\345\203\67V(J(\346@"
-  "J(\346@*\66\36\334*,(,\312\2\0\274\364\32\215%\204%.(.(.\350@(.("
-  ".\350@\36,\70\331\201\1\274\370\33\315\345\203%.(.\350@(.\350@\60\70\354\300\36:\70"
-  "\361\201\10\0\275\4!\315\345\203%.(.\350@(.\350@\60\70\354\300\36\340@(.(.("
-  ".\350@\4\0\275\200\32\253\351\203#.$.$.\344@$.$.\344@\370\200*\64+\0\275"
-  "\204\35\315\345\203%.(.\350@(.\350@\36\372\300,\70\60&\60\70\370@\4\0\275\210\37\315"
-  "\345\203%.(.\350@(.\350@\36\340\300,\70\360@\70\350@(\370@\4\0\275\231\37\315\345"
-  "\203%.(.\350@(.\350@\36\340\300,\70\360@(\370@(\370@\4\0\276\14\30M\245\204"
-  "%.(.(.\350@(.(.\350@\36\372\300\0\276D\32\253\351\203\65T*F*F*\346"
-  " F*F*F*\346 &\64\3\276[\32\314\345\203\67V(J(\352J(\352*\66\36*\360"
-  "\60\64\42NF\0\276`\31\255\351\203\63\70&$\233\220lB\262\71)\311&$\233\223\340\334\0\276"
-  "h\37\316\345\203\67$\243\220\214B\62\12\71\42I\24r\24\35\17u\20\35v\20\26}\20\2\276|"
-  "\42\255\351\203\63$\62D$\23\221LD\62\71\10)\311D$\223\203\220\224!\221!\221!\221!\1"
-  "\277\320\35\315\345\203#(IP\222\3\222\240$\7\364\300\7f\301\201\61\201\301\301\7\42\0\300X\30"
-  "M\245\204#(IP\222\240$\7$AI\202\222\34\320\3\37\30\300\254\33\256\345\203\65:\60(\60"
-  "(.*.\212&\42(*&\215THtn\0\300\260\27\316\345\203\67:,Wb#\251B\204R"
-  "\247\212\316\372@\4\0\300\264\33\316\345\203\67:,Wb#\251B\204R\307C\35D\207\35\204E\37"
-  "\204\0\300\266\37\316\345\203\67:,Wb#\251B\204R\307\203T\324E\304\304T\304\244\212\211\251("
-  "\1\300\274\33\316\345\203\67:,Wb#\251B\204R\307\203\335E\305E\305E\305\235\0\300\301\30\316"
-  "\345\203\67:,Wb#\251B\204R\307\243\262\13\313\316\6\0\300\310&\256\345\203\65$\64$*("
-  "$*($(*$(\212&\42($M\222\251\220\244!\241!\241!\241!\1\300\335\37\314\345\203"
-  "\63\42\62\42(EP\212\30\241\221\64\21C!\21\221\21\361\10\312\242\62\253\0\301\34\30\256\345\203;"
-  "U\134T\134P`P\24MD\134HL\330T\352\34\301\35\26\314\345\203\67QXPX\214\320H\252"
-  "\241\264\361\320\7\261\31\301 \26\314\345\203\67QXPX\214\320H\252\241\264\361\260\331\36\14\301$\33"
-  "\314\345\203\67QXPX\214\320H\252\241\264\361\20\7\261A\7A\261\7\1\301-\30\314\345\203\67Q"
-  "XPX\214\320H\252\241\264\361 QY]\245:\301\61\32\314\345\203\67QXPX\214\320H\252\241"
-  "\264\361\340VaAaQ\26\0\301\70(\256\345\203\67\42\66\42*ET\212\240\260\210\240\240\211\230\210"
-  "\250\210\220\230\240\210\251\230\210\330\210\330\210\330\210\330\210\0\301<\37\314\345\203\63\42\62\42(EP\212"
-  "\30\221\211\220\64\21C!\21\221\21\361\0\261\331\36\10\301H\37\314\345\203\63\42\62\42(EP\212\30"
-  "\221\211\220\64\21C!\21\221\21\361 W\371\352\0\301\214\26\215%\204/\70\66\70\66\42\62&L*"
-  "\36.\70\331\201\1\301\215\27\315\345\203/\70V\64$N(\62\70\354\300\36\340@\70'\0\301\220\30"
-  "\315\345\203/\70V\64$N(\62\70\354\300\36:\70\361\201\10\0\301\241\32\315\345\203/\70V\64$"
-  "N(\62\70\354\300\36A]TXT\134\21\0\302\30\26\253\351\203-\64\62\64\62\42.&H*\372"
-  "\200*\64+\0\302\34\32\315\345\203/\70V\64$N(\36\374\300,\70\60&\60\70\370@\4\0\302"
-  " \34\315\345\203/\70V\64$N(\36\342\300,\70\360@\70\350@(\370@\4\0\302\62\35\315\345"
-  "\203/\70V\64$N(\36\342\300,\70\36\354@,&\60&\354@\4\0\302l \314\345\203\67*"
-  "GaAa\61\21Q!\61AS\61\261\7\24AaAaAaAa\1\302}\33\354\345\203+G"
-  "R\61!A\21B\61\261\7\24Q\331\3Feu\225\352\0\302\244\24M\245\204/\70\66\70\66\42\62"
-  "&L*\36\374\300\0\302\250\27\315\345\203/\70V\64$N(\36\374\300\36:\70\361\201\10\0\302\264"
-  "\35\315\345\203/\70V\64$N(\36\374\300\36\340@(.(.(.\350@\4\0\302\265\35\315\345"
-  "\203/\70V\64$N(\36\374\300\36 .(.\350@(.\350@\4\0\302\267\31\315\345\203/\70"
-  "V\64$N(\36\374\300\36IplD\240L\20\0\302\334\26\254\345\203\67U\216\302\202\302b\42\242"
-  "Bb\202\246bbs\302\335\26\314\345\203\67QXPX\214XH\252\241\264\361\320\7\261\31\302\340\26"
-  "\314\345\203\67QXPX\214XH\252\241\264\311c\323\36\14\302\344\33\314\345\203\67QXPX\214X"
-  "H\252\241\264\361\20\7\261A\7A\261\7\1\302\353\37\316\345\203\67:,WbA!Q!B\251\343"
-  "A\212\2#.jf\302bBjF\0\302\354\27\314\345\203\67QXPX\214XH\252\241\264\361 "
-  "W\371\352\0\302\366\33\314\345\203\67QXPX\214XH\252\241\264\361\300\7R\61q\61Q\7\2\302"
-  "\370\42\257\341\203\67<.&$.&$.&$L$\206&\42MTLDH\214\210LDxn"
-  "\0\303\0!\316\345\203\67:($*($*F\42l\42\253\220\214\242\343\241\16\242\303\16\302\242\17"
-  "B\0\303h\37\257\341\203=QLTPLTPLT\214H\14MD\262\220\230\210\250\21\231\240\360"
-  "\34\304\360\32-\245\204+&\60&\60&N$\60\42]LD\220\210L<\300\201\1\305\0 \255\345"
-  "\203+&\60&.&.\42\253\230\364\0\7\366\0\7BqAqAqA\7\42\0\305(\35\255\341"
-  "\203\71QL\242\230D\61iD\202b\42\22\205\304D\304\214\310\204\4\347\0\305,\31\314\345\203\67I"
-  "\252\220T\21\22a\21Y\211$\212M\36\233\366`\0\305; \315\345\203\67\70&$*&$*D"
-  "\42,$\42UDH\242\340x\310\340\244\22qB\1\305D\31\256\345\203\65:\212(\233d!\61a"
-  "!e!Ai\242\210\242s\3\305E\32\315\351\203\65\206*$(IP\222\240 \242\64T\301\361\60"
-  "\7\301\71\1\305H\32\315\351\203\65\206*$(IP\222\240 \242\64T\301\211\202\63>\20\1\305I"
-  " \315\351\203\65\206*$(IP\222\240 \242\64T\301\361\340A\65qAaB\24\42\22\0\305J"
-  "#\316\351\203\65\210*&(MP\232\240\240\211\240DT\321\361@qQA'aCQ\61\61%#"
-  "\0\305L\37\315\351\203\65\206*$(IP\222\240 \242\64T\301\361\60\7\301Q\7Q\301\7!\0"
-  "\305Y\34\315\351\203\65\206*$(IP\222\240 \242\64T\301\361H\314R\205\205\331\0\305^\37\315"
-  "\351\203\65\206*$(IP\222\240 \242\64T\301\361\10\16\304b\2c\302\16D\0\305`(\256\345"
-  "\203\65$\64$\204($\42(&D,$D,\244,$EPLH\10QHhHhHhH"
-  "hH\0\305|\31\256\345\203\65:\212(\233d!e!\61a!AiH\210\242s\3\305}\33\315"
-  "\351\203\65\206*$(IP\20Q\222\240\240\11\252\340x\230\203\340\234\0\305\221\35\315\351\203\65\206*"
-  "$(IP\20Q\222\240\240\11\252\340x$f\251\302\302l\0\305\230'\256\345\203\65$\64$\204("
-  "$\42(&D,\244,$D,$EP\14\11QHhHhHhHhH\0\305\264\31\256\345"
-  "\203;\11]DP\230X\224XHYTDPX\10]t\16\305\265\30\313\351\203\65\202J(H("
-  "H(\204(\5Uh<\350Ah\6\305\270\31\313\351\203\65\202J(H(H(\204(\5Uh<"
-  "`h\322\203\1\305\273\31\313\351\203\65\202J(H(H(\204(\5Uh<\300Qh\322\3\305\274"
-  "\34\313\351\203\65\202J(H(H(\204(\5Uh\370Ah\314AL\350A\0\305\304\35\313\351\203"
-  "\65\202J(H(H(\204(\5Uh<\300QTPTPT\320\1\305\305\35\313\351\203\65\202J"
-  "(H(H(\204(\5Uh<@TPT\320QT\320\1\305\306$\315\351\203\65\206*$(I"
-  "P\222\240\220\221\240\64T\301\361\0AI\202\222\30\205\4\305DDX\310\4\305\307\35\314\351\203\65\204"
-  "*\42(EP\212\240\220\211\240$T\261\361p\261)%\302\204\2\305\354\31\256\345\203;\11]DP"
-  "\230XHY\224XTDP\14\11]t\16\305\355\31\313\351\203\65\202J(H(\204(H(d\202"
-  "*\64\36\364 \64\3\305\360\31\313\351\203\65\202J(H(\204(H(d\202*\64qh\322\203\1"
-  "\305\364\35\313\351\203\65\202J(H(\204(H(d\202*\64\374 \64\346 &\364 \0\306\1\35"
-  "\313\351\203\65\202J(H(\204(H(d\202*\64\36\326(,&,\310\2\0\306\6\36\313\351\203"
-  "\65\202J(H(\204(H(d\202*\64\36\362@(&,&\350@\0\306\10'\256\345\203\67\42"
-  "\66\42\204*\42Q\12\261\210\11\261\230\10\261\230\210D!\23!T\21\261\21\261\21\261\21\261\21\1\306"
-  "\33&\315\351\203\61\42\206&\42$($\42$\210\42$($\42$\210\42\206&\42\64\42\36\64\70"
-  "\251D\234P\0\306$\26\255%\204\251.*]P\134P\134T\272zd\301\311\16\14\306,\35\315\345"
-  "\203\251.*,*,*\256\64\70\354\300\36\340@\70\350@(\370@\4\0\306.!\315\345\203\251."
-  "*,*,*\256\64\70\354\300\274\242,\42&\244\42&$*&\244\242\2\0\306\67\33\315\345\203\251"
-  ".*,*,*\256\64\70\354\300\36IplD\240L\20\0\306D\36\316\345\203\67\250(&*&"
-  "U\314DTLPQX\222\203\211x\240\350\254\17D\0\306\134-\316\345\203\65$\64$\244&$\42"
-  "*$D.\42D.\42D.\202\42*$IMHPTHPT\310\301DHhHhH\0\306"
-  "x\36\314\345\203\67IQDT\214\134\210\134\210\134HDTLHQ\262\240\260\3\212\330\4\306\224\34"
-  "\255%\204\251.*]P\134P\134T\272z\260\230\300\230\300\230\300\230\240\3\3\306\251\35\315\345\203\251"
-  ".*,*,*\256\60&\60&\350\300\36A]TXT\134\21\0\306\260\27\253\351\203\247*M\134"
-  "H\134H\134LTT\371\1UhV\0\306\261\30\315\345\203\251.*,*,*\256\36\344\300,\70"
-  "\360@\70'\0\306\264\33\315\345\203\251.*,*,*\256\36\301\201Yp`L`p\360\201\10\0"
-  "\306\270\35\315\345\203\251.*,*,*\256\36\344\300,\70\360@\70\350@(\370@\4\0\306\300\37"
-  "\315\345\203\251.*,*,*\256\36\344\300,\70\360@(.(.(.\350@\4\0\306\303\34\315"
-  "\345\203\251.*,*,*\256\36\344\300,\70\36\64\70\66\42P&\10\0\306\320\37\354\345\203\245("
-  "\42*&\42*&\42*&\244(\66\366\200\42*\204*'\261i\17\6\306\324#\354\345\203\245(\42"
-  "*&\42*&\42*&\244(\366\200\42*\204*=\304Al\320AP\354A\0\307\4#\314\345\203"
-  "\67\244(\42*F.D.D.$\42*&\244(\366\200\42(,(,(,(,\0\307 \35"
-  "\255\345\203\251.*]P\134P\134T\272z\220\3\243\230\300\230\300\230\300\230 \0\307!\32\315\345\203"
-  "\251.*,*,*\256\36\344\300(&\60&\354@\70'\0\307<\24m\245\204\251.*]P\134"
-  "P\134T\272z\324\7\6\307@\30\315\345\203\251.*,*,*\256\36\301\201=tp\342\3\21\0"
-  "\307D\34\315\345\203\251.*,*,*\256\36\301\201=\300\201p\320\201P\360\201\10\0\307L\36\315"
-  "\345\203\251.*,*,*\256\36\301\201=\300\201P\134P\134P\134\320\201\10\0\307X\34\314\345\203"
-  "\67IQDT\214\134\210\134\210\134HDTLHQ\354\1El\6\307t\30\254\345\203\67\11UD"
-  "P\220X\214X\214XLDP\22\252\330\34\307x\30\313\351\203\65\202J(H(H(H(\5U"
-  "h\342\320\244\7\3\307|\34\313\351\203\65\202J(H(H(H(\5Uh\370Ah\314AL\350"
-  "A\0\307}\33\313\351\203\65\202J(H(H(H(\5UhlEQ\224\225\244U\0\307\203\42"
-  "\315\351\203\65\206*$(IP\222\240$Ai\250\202\343\1\212\342\42\16jF\302b\42jF\0\307"
-  "\204\35\313\351\203\65\202J(H(H(H(\5Uh<\300QTPTPT\320\1\307\205\35\313"
-  "\351\203\65\202J(H(H(H(\5Uh<@TPT\320QT\320\1\307\207\34\314\351\203\65"
-  "\204*\42(EP\212\240\24AI\250b\343\341bSJ\204\11\5\307\210\42\315\351\203\65\206*$("
-  "IP\222\240$Ai\250\202\343\341B\42C\2#\322\305D\4\211\310\4\307\212\34\313\351\203\65\202J"
-  "(H(H(H(\5Uh<\300ah\240D\224P\0\307\220\33\255\351\203\63\70\346$\60&\60"
-  "&.\210F(*$&F($\70\67\0\307\221\30\316\345\203\67:\304*,\263\21\211\250\20\241\324"
-  "\361P\7\321\71\1\307\224\30\316\345\203\67:\304*,\263\21\211\250\20\241\324\251\242\263>\20\1\307\230"
-  "\35\316\345\203\67:\304*,\263\21\211\250\20\241\324\361P\7\321a\7a\321\7!\0\307\240\35\316\345"
-  "\203\67:\304*,\263\21\211\250\20\241\324\361`wQqQqQq'\0\307\241\35\316\345\203\67:"
-  "\304*,\263\21\211\250\20\241\324\361`QqQqwQq'\0\307\245\31\316\345\203\67:\304*,"
-  "\263\21\211\250\20\241\324\361\250\354\302\262\263\1\307\254$\255\351\203\63$\62\344 $ULHTLH"
-  "P\20\215PH\66!C!)C\42C\42C\42C\2\307\301 \314\345\203\63\42\62\342&\42(E"
-  "P\320\210DL\304PHDdD<\202\262\250\314*\0\310\0\27\255\351\203\71\370 *YTXP"
-  "\20\215\134H\262\241\250\340\34\310\1\27\314\345\203\67\366*(,(hD\42j(m<\364Al\6"
-  "\310\4\27\314\345\203\67\366*(,(hD\42j(m<l\266\7\3\310\10\34\314\345\203\67\366*"
-  "(,(hD\42j(m<\304Al\320AP\354A\0\310\12\37\314\345\203\67\366*(,(h"
-  "D\42j(mtEUDLDELDTLD\3\310\20\27\314\345\203\67\366*(,(hD"
-  "\42j(m<\310U\276:\310\21\31\314\345\203\67\366*(,(hD\42j(m<HTVW"
-  "\251\16\310\25\33\314\345\203\67\366*(,(hD\42j(m<\270UXPX\224\5\0\310\34("
-  "\255\351\203\65\42\64\342 &\42*(\42*(\42(f\42F*\42$Q\304PLDhDhD"
-  "hDhD\0\310p\25\215%\204\347\66\70\66V\64$N(\36.\70\331\201\1\310q\27\315\345\203"
-  "\307\66T\42N(\36.\70\354\300\36\340@\70'\0\310t\30\315\345\203\307\66T\42N(\36.\70"
-  "\354\300\36:\70\361\201\10\0\310\200\36\315\345\203\307\66T\42N(\36.\70\354\300\36\340@(.("
-  ".(.\350@\4\0\310\205\32\315\345\203\307\66T\42N(\36.\70\354\300\36A]TXT\134\21"
-  "\0\310\213\33\315\345\203\307\66T\42N(\36.\70\354\300\36(\360@\254.*\256\10\0\310\374\25\253"
-  "\351\203\345\62\64\62R\60$J(\372\200*\64+\0\310\375\27\315\345\203\307\66\70T\42N(\36\342"
-  "\300,\70\360@\70'\0\311\0\32\315\345\203\307\66\70T\42N(\36\374\300,\70\60&\60\70\370@"
-  "\4\0\311\4\34\315\345\203\307\66\70T\42N(\36\342\300,\70\360@\70\350@(\370@\4\0\311\21"
-  "\33\315\345\203\307\66\70T\42N(\36\342\300,\70\36\260.*,*\256\10\0\311\211\25\315\345\203\307"
-  "\66T\42N(\36\361\201=\300\201pN\0\311\220\32\315\345\203\307\66T\42N(\36\361\201=\300\201"
-  "p\320\201P\360\201\10\0\311\230\34\315\345\203\307\66T\42N(\36\361\201=\300\201P\134P\134P\134"
-  "\320\201\10\0\311\300\27\253\351\203\65\364 &*(*(U\214TH\242\241\230\320\34\311\301\27\314\345"
-  "\203\67\366*(,(,D\42j(m<\364Al\6\311\304\27\314\345\203\67\366*(,(,D"
-  "\42j(m\362\330\264\7\3\311\310\34\314\345\203\67\366*(,(,D\42j(m<\304Al\320"
-  "AP\354A\0\311\321\31\314\345\203\67\366*(,(,D\42j(m<HTVW\251\16\311\323"
-  "\33\315\345\203\67\70\302*YTX\214DT\204P\342x\310\340\244\22qB\1\311\325\33\314\345\203\67"
-  "\366*(,(,D\42j(m<\270UXPX\224\5\0\311\347%\317\341\203\71<fb(M"
-  "TPL\324D\216Bb\62\217\7\252\210\11\214\210\11\252(\212\212\11\252(\1\311\370+\257\341\203\67"
-  "$\66$\202b$QLH\242\230\220\64\42\61\64\21iB\322D\204\204\214\310D\204\304\206\304\206\304"
-  "\206\304\206\4\312L\37\257\341\203=\5\305TPLTPLT\214H\14MD\262\220\230\210\250\21\231"
-  "\240\360\34\312\275\31\315\345\203\203]L\134L\134DV\61)\203\303\16\354\1\16\204s\2\314(\34\255"
-  "\351\203\63,*,*\346$\60&.\210F(*$&F($\70\67\0\314,\32\316\345\203\67:"
-  "*.\304*\335HDX\210LTt\252\350\254\17D\0\314.\42\317\345\203\67<,.\306*,n"
-  "&\42,F&*<\36,.,\350&l*MP\311\10\0\314\60\37\316\345\203\67:*.\304*"
-  "\335HDX\210LTt<\324At\330AX\364A\10\0\314\70\37\316\345\203\67:*.\304*\335"
-  "HDX\210LTt<\330]T\134T\134T\334\11\0\314>\36\316\345\203\67:*.\304*\335H"
-  "DX\210LTt<\330mt\254D\240P\10\0\314D%\255\351\203\63$&*$&*\344 $"
-  "ULHP\20\215PH\66!C!)C\42C\42C\42C\2\314E\36\314\345\203\63\42\62\42&"
-  "*\342&\42&j$\42(b&EdD<\304Al\16\314\230\30\255\351\203\71&\60&\360 *"
-  "YP\20\215\134H\262\241\250\340\34\314\234\27\314\345\203\67M\334UL\324HD\330LTl<l\266"
-  "\7\3\314\253\35\315\345\203\67\70(.\302*(j&\42,B&*\70\36\62\70\251D\234P\0\314"
-  "\255\33\314\345\203\67M\334UL\324HD\330LTl<\270UXPX\224\5\0\314\264)\255\351\203"
-  "\65\42&,\42&,\342 &\42*(\42(f\42F*\42$Q\304PLDhDhDhD"
-  "hD\0\315\10\25\255%\204-\70\362\66\255hH\234P<\134p\262\3\3\315\134 \314\345\203\67("
-  ",(,\342&,(*\221TLHP\204PLPXP\330\1El\2\315\224\25\313\351\203-\64"
-  "\356\62\245`H\224P\360\1UhV\0\316\65\31\315\345\203-\322\64\66\42P&\36\301\201=\202\272"
-  "\250\260\250\270\42\0\316X\30\253\351\203\65&,&\354 &*(U\214TH\242\241\230\320\34\316\134"
-  "\27\314\345\203\67M\334UL\134HD\330LTl\362\330\264\7\3\316`\34\314\345\203\67M\334UL"
-  "\134HD\330LTl<\304Al\320AP\354A\0\316h\27\314\345\203\67M\334UL\134HD\330"
-  "LTl<\310U\276:\316\344\25\254\355\203\67\366*\237\34\210\5\205\305\304\205\4N\306&\316\364\25"
-  "\314\345\203\367*W\67Ca!r\223\361 W\371\352\0\317T\25M%\204\343\200\70\311\1qXT"
-  "XTXp\334\201\1\320l\17\15\245\204\343\200\70\311\1q\26\7\6\320|\34\255\345\203\345@\70\350"
-  "@\70=\300\201=\300\201P\134P\134P\134\320\201\10\0\320\244\27\252\355\203\63\362&*&*&*"
-  "\306(\233\250\220\260\271\310\4\320\300\30\255\351\203\63\70\346$&\60&\60\346\244\60&\60\346$\70\67"
-  "\0\320\325\31\316\345\203\67:\304*$\64\304\212\64\304*:\36\225]Xv\66\0\320\334\42\255\351\203"
-  "\63$\62\344 $D\60D\60\344 \244\60D\60\344 $eHdHdHdH\0\321\60\24\255"
-  "\351\203\71\370 JV\366 \244V\366 *\70\7\321T \314\345\203\63\42\62\342&B\60\342bB"
-  "\60\342&\42\62\42\36\342 \66\350 (\366 \0\321\265\33\315\345\203\345@(\370@(\370@\60\70"
-  "\354\300\36A]TXT\134\21\0\322,\24\253\351\203\341\240\64\364\240\64\364\200\366\200*\64+\0\322"
-  "\270\24m\245\204\343\200$\70\370\200$\70\370\200\36\351\201\1\322\271\27\315\345\203\345@(\370@(\370"
-  "@\36\372\300\36\340@\70'\0\322\360\24\253\351\203\65\364 FR\362 FR\362 &\64\7\323\0"
-  "\23\314\345\203\67\366J\364J\364*\66\36\344*_\35\323\14\34\256\345\203\65:\346@\42*&UL"
-  "\252\230\30\222\230T\61i\16$\242s\3\323\24\42\316\345\203\67:\344 &($*($j$U"
-  "\310ALt<\324At\330AX\364A\10\0\323|\35\256\345\203;\372`($&,$&,$"
-  "&\206$&,$&\354`(:\7\323\264\35\256\345\203;\372`($&,$&\206$&,$"
-  "&,$&\346\300(:\7\323\270\30\314\345\203\67\366@&$\315H\252\220\64\7\64\261\311c\323\36"
-  "\14\323\311\34\314\345\203\67\366@&$\315H\252\220\64\7\64\261\361\340VaAaQ\26\0\324\134\35"
-  "\215%\204\343\200(*,*,*,*\350\200\36&aL`L`L\320\201\1\324\200\37\315\345\203"
-  "\345@,&\60&\60&\354@\36\340\300,\70\360@\70\350@(\370@\4\0\324\210!\315\345\203\345"
-  "@,&\60&\60&\354@\36\340\300,\70\360@(.(.(.\350@\4\0\324\350\37\255\345\203"
-  "\343\200(*,*,*,*\350\200\36\370\300(&\60&\60&\60&\10\0\325\4\26M\245\204\343"
-  "\200(*,*,*,*\350\200\36\351\201\1\325<\34\254\345\203\67\366`$MPHLPHL"
-  "PHLPHL\320\301Hl\16\325D\35\314\345\203\67\366@&$UH\252\220T\7\62\261\361\20"
-  "\7\261A\7A\261\7\1\325X\35\255\351\203'*,*\346$j(MV!U!\61Q!A\61"
-  "\251\206\202\263\1\325Y\34\316\345\203'.\344(h,&UL\252\211\230\250\240\261\350x\250\203\350\234"
-  "\0\325\134\34\316\345\203'.\344(h,&UL\252\211\230\250\240\261\350T\321Y\37\210\0\325`!"
-  "\316\345\203'.\344(h,&UL\252\211\230\250\240\261\350x\250\203\350\260\203\260\350\203\20\0\325h"
-  "!\316\345\203'.\344(h,&UL\252\211\230\250\240\261\350x\260\273\250\270\250\270\250\270\23\0\325"
-  "m\35\316\345\203'.\344(h,&UL\252\211\230\250\240\261\350xTva\331\331\0\325t(\255"
-  "\351\203'*$&*\344 $\311PHDL\22\251\220\252\220\20\251\220\24\61IB\206B\42C\42"
-  "C\42C\2\325\211\42\314\345\203'*\342 $\42d(\42M\212\64\61\23\61)B\206\42\42#\342"
-  "\21\224EeV\1\325\245\35\316\345\203'.\344(h,&\325DLTL\252\221\261\350xTva"
-  "\331\331\0\325\330\35\314\345\203'\356 (d,\42&*\42&f\42&*d,\66\36\344*_\35"
-  "\326\0\36\255\351\203'\60&\360 *d.\42&\246*J*J*\204\42&,d.\70\3\326\4"
-  "\35\314\345\203'\356 (d,\42&f\42&*\42&fd,\66yl\332\203\1\326\25!\314\345"
-  "\203'\356 (d,\42&f\42&*\42&fd,\66\36\334*,(,\312\2\0\326\70\26\255"
-  "%\204-\70\362\36\252.*,*\256\36\60\70\331\201\1\326\71\30\355\345\203-\362\256.*,*\256"
-  "\64\70\354\300\36\340@\70'\0\326<\31\355\345\203-\362\256.*,*\256\64\70\354\300\36:\70\361"
-  "\201\10\0\326T\42\316\345\203\65.*.*\350$:\252&(*\204\42*$\252&.*.*\346"
-  "@\42:\15\0\326U\36\316\345\203),\346&j*(&h$&(j*,\311\301D<\324A"
-  "tN\0\326X\37\316\345\203),\346&j*(&h$&(j*,\311\301D<Pt\326\7"
-  "\42\0\326\134#\316\345\203),\346&j*(&h$&(j*,\311\301D<\324At\330A"
-  "X\364A\10\0\326i\37\316\345\203),\346&j*(&h$&(j*,\311\301D<*\273"
-  "\260\354l\0\326\214\37\314\345\203\67(,(,\342&\66\244(\42*&\42*&\244(YP\330\1"
-  "El\2\326\215\35\314\345\203),\342&f*$&($&(f*(\354\200\42\36\342 \66\7"
-  "\326\250\33\255%\204-\70\362\36\252.*,*\256\60&\60&\60&\60&\350\300\0\326\304\25\313\351"
-  "\203+\64\356\36\242*QTT\371\1UhV\0\326\314\35\355\345\203-\362\256.*,*\256\36\344"
-  "\300,\70\360@\70\350@(\370@\4\0\326\350!\354\345\203),\342&f*$&(f*\366\200"
-  "\42*\204*=\304Al\320AP\354A\0\327P\24m\245\204-\70\362\36\252.*,*\256\36\301"
-  "\201\1\327T\30\355\345\203-\362\256.*,*\256\36\301\201=tp\342\3\21\0\327\210\36\253\351\203"
-  "',&\354 &d*\42&H*F*F*&\42&(d*\64\3\327\230\35\314\345\203'\356"
-  " (d,\42&*\42&*\42&*d,\66\36\344*_\35\0";
+  "\264\244\33\314\345\203\67\366`DT\351\301Hl\354\1EPXPXPXPX\0\264\300\31\255\345"
+  "\203\343\200$\70\343\3z\340\3\243\230\300\230\300\230\300\230 \0\264\334\20M\245\204\343\200$\70\343\3"
+  "z\244\7\6\264\340\26\255\345\203\345@(\70\370@\36\372\300\36:\70\361\201\10\0\264\343\30\255\345\203"
+  "\345@(\70\370@\36\372\300\36\340@(\70\361\201\10\0\264\344\32\255\345\203\345@(\70\370@\36\372"
+  "\300\36\340@\70\350@(\370@\4\0\264\357\30\255\345\203\345@(\70\370@\36\372\300\36IplD"
+  "\240L\20\0\264\361\30\255\345\203\345@(\70\370@\36\372\300\36A]TXT\134\21\0\265\24\20\254"
+  "\345\203\67\366@FT\247\7\62\261\71\265\60\33\256\345\203\65:\206\202\42&(MP\232\240\240\242\64"
+  "Ai((\242s\3\265\70\42\316\345\203\67:db($&,$&\214&,db(:\36\352"
+  " :\354 ,\372 \4\0\265E\36\316\345\203\67:db($&,$&\214&,db(:"
+  "\36\225]Xv\66\0\265L#\256\345\203\65$\64\244\202\42D(\211P\22\241\240\242$BI*("
+  "BBCBCBCBC\2\265\240\30\256\345\203;\272\202H(N(N(\250(N(\256\202("
+  ":\7\265\244\30\314\345\203\67\226bH&L&\210&\214b(\66\36\66\333\203\1\265\250\35\314\345\203"
+  "\67\226bH&L&\210&\214b(\66\36\342 \66\350 (\366 \0\265\273\35\314\345\203\67\226b"
+  "H&L&\210&\214b(\66\36(\356@\252,*\254\4\0\266\20\27\215%\204\243ITXTX"
+  "TXTXE=\232\340d\7\6\267;\31\255\345\203\205\202(]P\34\5=\364\201=\222\340\330\210"
+  "@\231 \0\267|\32\255\351\203\63\70\346$\62$\62$\346\244\60&\60&\60\346$\70\33\0\267\214"
+  "\35\315\351\203\65\70\304(.(\304\210\62\304(\70\36\350,*,*,*\354\4\0\267\221\32\315\351"
+  "\203\65\70\304(.(\304\210\62\304(\70\36\211Y\252\260\60\33\0\267\227\34\315\351\203\65\70\304(."
+  "(\304\210\62\304(\70\36,\360@\254.*\256\10\0\267\230\42\255\351\203\63$\62\344 $YH\262"
+  "\220\220\203\220\302\20\301\20\301\220\203\220\224!\221!\221!\1\267\250 \313\351\203\61\42\60\342$\42*"
+  "$\342\204.\342$\42\60\42\36\340(*(*(*\350\0\267\354\26\255\351\203\71\370 *,*,"
+  "\352 \244V\355ATp\6\267\360\25\313\351\203\65\364(*\350\204\362(\64\36\60\64\351\301\0\267\374"
+  "\31\313\351\203\65\364(*\350\204\362(\64\36\340(*(*(*\350\0\267\375\31\313\351\203\65\364("
+  "*\350\204\362(\64\36 *(*\350(*\350\0\270\7\30\313\351\203\65\364(*\350\204\362(\64\36"
+  "$\354@\250*U\11\0\270\10&\255\351\203\65\42\64\342 &\42,&\42,&\342 bB\62B"
+  "\62B\62\342 &\42\64\42\64\42\64\42\0\270$\27\255\351\203\71\370 *,*,\344\200JV\260"
+  "\366 *\70\3\270%\26\313\351\203\65\364(*\344@H\356@(\64\36\364 \64\3\270(\26\313\351"
+  "\203\65\364(*\344@H\356@(\64qh\322\203\1\270\65\33\313\351\203\65\364(*\344@H\356@"
+  "(\64\36 *(*\350(*\350\0\270\71\32\313\351\203\65\364(*\344@H\356@(\64\36\326("
+  ",&,\310\2\0\270@&\255\351\203\65\42\64\342 &\42,&\42,b\342 &B\62BnB"
+  "\62\342 &\42\64\42\64\42\64\42\0\270\134\25\215%\204\345@\70\321\201Pp\360\201<Xp\262\3"
+  "\3\270`\31\315\345\203\345@\70\350@(\370@\60\70\354\300\36:\70\361\201\10\0\270m\37\315\345\203"
+  "\345@\70\350@(\370@\60\70\354\300\36 .(.\350@(.\350@\4\0\270o\33\315\345\203\345"
+  "@\70\350@(\370@\60\70\354\300\36IplD\240L\20\0\270\314\32\215%\204\345@\70\321\201P"
+  "p\360\201XL`L`L`L\320\201\1\270\350\25\253\351\203\343@\64\311\201Hh\350\201\360\1U"
+  "hV\0\270\371\37\315\345\203\345@\70\350@(\370@\36\340\300,\70\60.(.\350@(.\350@"
+  "\4\0\271X\34\255\345\203\345@\70\321\201Pp\360\201<\300\201QL`L`L`L\20\0\271m"
+  "\36\315\345\203\345@\70\350@(\370@\36\340\300(&\60&\36\254.*,*\256\10\0\271t\23M"
+  "\245\204\345@\70\321\201Pp\360\201<\364\201\1\271x\30\315\345\203\345@\70\350@(\370@\36\372\300"
+  "\36:\70\361\201\10\0\271\204\36\315\345\203\345@\70\350@(\370@\36\372\300\36\340@(.(.("
+  ".\350@\4\0\271\254\26\253\351\203\65\364 &,&,\346 FR\345ALh\6\271\260\24\313\351"
+  "\203\65\364(*\350H\362(\64qh\322\203\1\271\274\31\313\351\203\65\364(*\350H\362(\64\36\340"
+  "(*(*(*\350\0\271\310\42\256\345\203\65:\346 $&,$&,$&,\244,$&,"
+  "$&,$\346 $:\33\0\271\311\35\316\345\203\67\304*$(*$(*$(\212(*\304*"
+  ":\36\352 :'\0\271\314\35\316\345\203\67\304*$(*$(*$(\212(*\304*:Ut"
+  "\326\7\42\0\271\316%\317\345\203\67\306*&(*&(*&(j\42(*\306*<\36,.,"
+  "\350&l*MP\311\10\0\271\320\42\316\345\203\67\304*$(*$(*$(\212(*\304*:"
+  "\36\352 :\354 ,\372 \4\0\271\331\42\316\345\203\67\304*$(*$(*$(\212(*\304"
+  "*:\36,*.*\356.*\356\4\0\271\333 \316\345\203\67\304*$(*$(*$(\212("
+  "*\304*:\36\66:\255D\240P\4\0\271\336!\316\345\203\67\304*$(*$(*$(\212("
+  "*\304*:\36\354\66:V\42P(\4\0\271\341\37\316\345\203\67\304*$(*$(*$(\212"
+  "(*\304*:\36\354.\372.\372\4\0\271\344'\256\345\203\65$\64\344@$D,$D,$D"
+  ",\244,$D,$D,$\344@$iHhHhH\0\272\70\32\256\345\203;\372@J,J"
+  ",J,\244,J,J,\352@*:\3\272\71\27\314\345\203\367J(J(J(\206(\352*\66"
+  "\36\372 \66\3\272<\27\314\345\203\367J(J(J(\206(\352*\66\36\66\333\203\1\272@\34\314"
+  "\345\203\367J(J(J(\206(\352*\66\36\342 \66\350 (\366 \0\272T)\256\345\203\67\42"
+  "\66\342@&B,&B,&B,bB,&B,&B,&\342@&\42\66\42\66\42\66\42"
+  "\0\272p\32\256\345\203;\372@J,J,\244,J,J,\244,\352@*:\3\272t\30\314\345"
+  "\203\367J(J(\206(J(\346@*\66yl\332\203\1\272\205\34\314\345\203\367J(J(\206("
+  "J(\346@*\66\36\334*,(,\312\2\0\272\207\34\314\345\203\367J(J(\206(J(\346@"
+  "*\66\36*\360\60\64\42NF\0\272\250\30\215%\204\343\200$\62$\62$\62$\62\344\200\36Mp"
+  "\262\3\3\272\251\32\315\345\203\345@(.(.(.\350@\60\70\354\300\36\340@\70'\0\272\270!"
+  "\315\345\203\345@(.(.(.\350@\60\70\354\300\36\340@(.(.(.\350@\4\0\272\273"
+  "\35\315\345\203\345@(.(.(.\350@\60\70\354\300\36IplD\240L\20\0\273\64\21\253\351"
+  "\203\341\240R\227\7\265\7T\241Y\1\273\70\35\315\345\203\345@(.(.(.\350@\36\372\300,"
+  "\70\60&\60\70\370@\4\0\273;\35\315\345\203\345@(.(.(.\350@\36\340\300,\70\360@"
+  "(\70\361\201\10\0\273<\37\315\345\203\345@(.(.(.\350@\36\340\300,\70\360@\70\350@"
+  "(\370@\4\0\273P(\314\345\203\67\342 $\42,$\42,$\42,$\42,$\42,$\342 "
+  "$\366\200\42(,(\244(,(,\0\273\370\32\254\345\203\67\366@F,F,F,F,F,"
+  "F,\346@&\66\3\273\374\27\314\345\203\367J(J(J(J(\352*\66yl\332\203\1\273\377"
+  "\30\314\345\203\367J(J(J(J(\352*\66\36\344*\66\355\1\274\17\33\314\345\203\367J(J"
+  "(J(J(\352*\66\36*\360\60\64\42NF\0\274\21\31\314\345\203\367J(J(J(J("
+  "\352*\66\36\344*\366*\366\0\274\24 \255\351\203\63\70&*$&*$&*$\346\244*$&"
+  "*$&*$\346$\70\33\0\274\26\37\316\345\203\67:$(*$(*\304\212(*\304*:\36"
+  "E\273\250\270\250\270\250\20\0\274\30\33\316\345\203\67:$(*$(*\304\212(*\304*:Ut"
+  "\326\7\42\0\274\33\34\316\345\203\67:$(*$(*\304\212(*\304*:\36\354.:\365\11\0"
+  "\274\34 \316\345\203\67:$(*$(*\304\212(*\304*:\36\352 :\354 ,\372 \4\0"
+  "\274\35\42\316\345\203\67:$(*$(*\304\212(*\304*:\36\244\242.*\246*&\62\246*"
+  "\4\0\274$ \316\345\203\67:$(*$(*\304\212(*\304*:\36\354.*.*.*\356"
+  "\4\0\274% \316\345\203\67:$(*$(*\304\212(*\304*:\36,*.*\356.*\356"
+  "\4\0\274)\34\316\345\203\67:$(*$(*\304\212(*\304*:\36\225]Xv\66\0\274\60"
+  "'\255\351\203\63$\62D*$D*$D*$\344 \244*$D*$D*$\344 $eH"
+  "dHdH\0\274\204\32\255\351\203\71X*J*J*\352 \244*J*J*\352 *\70\3\274"
+  "\210\26\314\345\203\67V(J(\352\206(\352*\66\36\66\333\203\1\274\214\33\314\345\203\67V(J("
+  "\352\206(\352*\66\36\342 \66\350 (\366 \0\274\225\30\314\345\203\67V(J(\352\206(\352*"
+  "\66\36$*\253\253T\7\274\275\30\314\345\203\67V(J(\346@J(\346@*\66\36\372 \66\3"
+  "\274\300\30\314\345\203\67V(J(\346@J(\346@*\66yl\332\203\1\274\304\35\314\345\203\67V"
+  "(J(\346@J(\346@*\66\36\342 \66\350 (\366 \0\274\321\34\314\345\203\67V(J("
+  "\346@J(\346@*\66\36\334*,(,\312\2\0\274\364\32\215%\204%.(.(.\350@("
+  ".(.\350@\36,\70\331\201\1\274\370\33\315\345\203%.(.\350@(.\350@\60\70\354\300\36"
+  ":\70\361\201\10\0\275\4!\315\345\203%.(.\350@(.\350@\60\70\354\300\36\340@(.("
+  ".(.\350@\4\0\275\200\32\253\351\203#.$.$.\344@$.$.\344@\370\200*\64+"
+  "\0\275\204\35\315\345\203%.(.\350@(.\350@\36\372\300,\70\60&\60\70\370@\4\0\275\210"
+  "\37\315\345\203%.(.\350@(.\350@\36\340\300,\70\360@\70\350@(\370@\4\0\275\231\37"
+  "\315\345\203%.(.\350@(.\350@\36\340\300,\70\360@(\370@(\370@\4\0\276\14\30M"
+  "\245\204%.(.(.\350@(.(.\350@\36\372\300\0\276D\32\253\351\203\65T*F*F"
+  "*\346 F*F*F*\346 &\64\3\276[\32\314\345\203\67V(J(\352J(\352*\66\36"
+  "*\360\60\64\42NF\0\276`\31\255\351\203\63\70&$\233\220lB\262\71)\311&$\233\223\340\334"
+  "\0\276h\37\316\345\203\67$\243\220\214B\62\12\71\42I\24r\24\35\17u\20\35v\20\26}\20\2"
+  "\276|\42\255\351\203\63$\62D$\23\221LD\62\71\10)\311D$\223\203\220\224!\221!\221!\221"
+  "!\1\277\320\35\315\345\203#(IP\222\3\222\240$\7\364\300\7f\301\201\61\201\301\301\7\42\0\300"
+  "X\30M\245\204#(IP\222\240$\7$AI\202\222\34\320\3\37\30\300\254\33\256\345\203\65:\60"
+  "(\60(.*.\212&\42(*&\215THtn\0\300\260\27\316\345\203\67:,Wb#\251B"
+  "\204R\247\212\316\372@\4\0\300\264\33\316\345\203\67:,Wb#\251B\204R\307C\35D\207\35\204"
+  "E\37\204\0\300\266\37\316\345\203\67:,Wb#\251B\204R\307\203T\324E\304\304T\304\244\212\211"
+  "\251(\1\300\274\33\316\345\203\67:,Wb#\251B\204R\307\203\335E\305E\305E\305\235\0\300\301"
+  "\30\316\345\203\67:,Wb#\251B\204R\307\243\262\13\313\316\6\0\300\310&\256\345\203\65$\64$"
+  "*($*($(*$(\212&\42($M\222\251\220\244!\241!\241!\241!\1\300\335\37\314"
+  "\345\203\63\42\62\42(EP\212\30\241\221\64\21C!\21\221\21\361\10\312\242\62\253\0\301\34\30\256\345"
+  "\203;U\134T\134P`P\24MD\134HL\330T\352\34\301\35\26\314\345\203\67QXPX\214\320"
+  "H\252\241\264\361\320\7\261\31\301 \26\314\345\203\67QXPX\214\320H\252\241\264\361\260\331\36\14\301"
+  "$\33\314\345\203\67QXPX\214\320H\252\241\264\361\20\7\261A\7A\261\7\1\301-\30\314\345\203"
+  "\67QXPX\214\320H\252\241\264\361 QY]\245:\301\61\32\314\345\203\67QXPX\214\320H"
+  "\252\241\264\361\340VaAaQ\26\0\301\70(\256\345\203\67\42\66\42*ET\212\240\260\210\240\240\211"
+  "\230\210\250\210\220\230\240\210\251\230\210\330\210\330\210\330\210\330\210\0\301<\37\314\345\203\63\42\62\42(E"
+  "P\212\30\221\211\220\64\21C!\21\221\21\361\0\261\331\36\10\301H\37\314\345\203\63\42\62\42(EP"
+  "\212\30\221\211\220\64\21C!\21\221\21\361 W\371\352\0\301\214\26\215%\204/\70\66\70\66\42\62&"
+  "L*\36.\70\331\201\1\301\215\27\315\345\203/\70V\64$N(\62\70\354\300\36\340@\70'\0\301"
+  "\220\30\315\345\203/\70V\64$N(\62\70\354\300\36:\70\361\201\10\0\301\241\32\315\345\203/\70V"
+  "\64$N(\62\70\354\300\36A]TXT\134\21\0\301\340\34\314\345\203\67U\216\302\202\302b\42\242"
+  "Bb\202\246b\202\302\202\302\16(b\23\302\30\26\253\351\203-\64\62\64\62\42.&H*\372\200*"
+  "\64+\0\302\34\32\315\345\203/\70V\64$N(\36\374\300,\70\60&\60\70\370@\4\0\302 \34"
+  "\315\345\203/\70V\64$N(\36\342\300,\70\360@\70\350@(\370@\4\0\302\62\35\315\345\203/"
+  "\70V\64$N(\36\342\300,\70\36\354@,&\60&\354@\4\0\302P.\316\345\203\67\42*E"
+  "T\212\240\260\210\240\260\210\230\210\250\210\220\230\240\210\251\230\210\330\210\3\212Da\21A\61\24Aa\21"
+  "Aa\21\1\302l \314\345\203\67*GaAa\61\21Q!\61AS\61\261\7\24AaAaA"
+  "aAa\1\302}\33\354\345\203+GR\61!A\21B\61\261\7\24Q\331\3Feu\225\352\0\302"
+  "\244\24M\245\204/\70\66\70\66\42\62&L*\36\374\300\0\302\250\27\315\345\203/\70V\64$N("
+  "\36\374\300\36:\70\361\201\10\0\302\264\35\315\345\203/\70V\64$N(\36\374\300\36\340@(.("
+  ".(.\350@\4\0\302\265\35\315\345\203/\70V\64$N(\36\374\300\36 .(.\350@(."
+  "\350@\4\0\302\267\31\315\345\203/\70V\64$N(\36\374\300\36IplD\240L\20\0\302\334\26"
+  "\254\345\203\67U\216\302\202\302b\42\242Bb\202\246bbs\302\335\26\314\345\203\67QXPX\214X"
+  "H\252\241\264\361\320\7\261\31\302\340\26\314\345\203\67QXPX\214XH\252\241\264\311c\323\36\14\302"
+  "\344\33\314\345\203\67QXPX\214XH\252\241\264\361\20\7\261A\7A\261\7\1\302\353\37\316\345\203"
+  "\67:,WbA!Q!B\251\343A\212\2#.jf\302bBjF\0\302\354\27\314\345\203\67"
+  "QXPX\214XH\252\241\264\361 W\371\352\0\302\366\33\314\345\203\67QXPX\214XH\252\241"
+  "\264\361\300\7R\61q\61Q\7\2\302\370\42\257\341\203\67<.&$.&$.&$L$\206&"
+  "\42MTLDH\214\210LDxn\0\303\0!\316\345\203\67:($*($*F\42l\42\253"
+  "\220\214\242\343\241\16\242\303\16\302\242\17B\0\303h\37\257\341\203=QLTPLTPLT\214H"
+  "\14MD\262\220\230\210\250\21\231\240\360\34\304\360\32-\245\204+&\60&\60&N$\60\42]LD"
+  "\220\210L<\300\201\1\305\0 \255\345\203+&\60&.&.\42\253\230\364\0\7\366\0\7BqA"
+  "qAqA\7\42\0\305(\35\255\341\203\71QL\242\230D\61iD\202b\42\22\205\304D\304\214\310"
+  "\204\4\347\0\305,\31\314\345\203\67I\252\220T\21\22a\21Y\211$\212M\36\233\366`\0\305; "
+  "\315\345\203\67\70&$*&$*D\42,$\42UDH\242\340x\310\340\244\22qB\1\305D\31"
+  "\256\345\203\65:\212(\233d!\61a!e!Ai\242\210\242s\3\305E\32\315\351\203\65\206*$"
+  "(IP\222\240 \242\64T\301\361\60\7\301\71\1\305H\32\315\351\203\65\206*$(IP\222\240 "
+  "\242\64T\301\211\202\63>\20\1\305I \315\351\203\65\206*$(IP\222\240 \242\64T\301\361\340"
+  "A\65qAaB\24\42\22\0\305J#\316\351\203\65\210*&(MP\232\240\240\211\240DT\321\361"
+  "@qQA'aCQ\61\61%#\0\305L\37\315\351\203\65\206*$(IP\222\240 \242\64T"
+  "\301\361\60\7\301Q\7Q\301\7!\0\305Y\34\315\351\203\65\206*$(IP\222\240 \242\64T\301"
+  "\361H\314R\205\205\331\0\305^\37\315\351\203\65\206*$(IP\222\240 \242\64T\301\361\10\16\304"
+  "b\2c\302\16D\0\305`(\256\345\203\65$\64$\204($\42(&D,$D,\244,$E"
+  "PLH\10QHhHhHhHhH\0\305|\31\256\345\203\65:\212(\233d!e!\61a"
+  "!AiH\210\242s\3\305}\33\315\351\203\65\206*$(IP\20Q\222\240\240\11\252\340x\230\203"
+  "\340\234\0\305\221\35\315\351\203\65\206*$(IP\20Q\222\240\240\11\252\340x$f\251\302\302l\0"
+  "\305\230'\256\345\203\65$\64$\204($\42(&D,\244,$D,$EP\14\11QHhH"
+  "hHhHhH\0\305\264\31\256\345\203;\11]DP\230X\224XHYTDPX\10]t\16"
+  "\305\265\30\313\351\203\65\202J(H(H(\204(\5Uh<\350Ah\6\305\270\31\313\351\203\65\202"
+  "J(H(H(\204(\5Uh<`h\322\203\1\305\273\31\313\351\203\65\202J(H(H(\204"
+  "(\5Uh<\300Qh\322\3\305\274\34\313\351\203\65\202J(H(H(\204(\5Uh\370Ah"
+  "\314AL\350A\0\305\304\35\313\351\203\65\202J(H(H(\204(\5Uh<\300QTPTP"
+  "T\320\1\305\305\35\313\351\203\65\202J(H(H(\204(\5Uh<@TPT\320QT\320\1"
+  "\305\306$\315\351\203\65\206*$(IP\222\240\220\221\240\64T\301\361\0AI\202\222\30\205\4\305D"
+  "DX\310\4\305\307\35\314\351\203\65\204*\42(EP\212\240\220\211\240$T\261\361p\261)%\302\204"
+  "\2\305\354\31\256\345\203;\11]DP\230XHY\224XTDP\14\11]t\16\305\355\31\313\351\203"
+  "\65\202J(H(\204(H(d\202*\64\36\364 \64\3\305\360\31\313\351\203\65\202J(H(\204"
+  "(H(d\202*\64qh\322\203\1\305\364\35\313\351\203\65\202J(H(\204(H(d\202*\64"
+  "\374 \64\346 &\364 \0\306\1\35\313\351\203\65\202J(H(\204(H(d\202*\64\36\326("
+  ",&,\310\2\0\306\6\36\313\351\203\65\202J(H(\204(H(d\202*\64\36\362@(&,"
+  "&\350@\0\306\10'\256\345\203\67\42\66\42\204*\42Q\12\261\210\11\261\230\10\261\230\210D!\23!"
+  "T\21\261\21\261\21\261\21\261\21\1\306\33&\315\351\203\61\42\206&\42$($\42$\210\42$($"
+  "\42$\210\42\206&\42\64\42\36\64\70\251D\234P\0\306$\26\255%\204\251.*]P\134P\134T"
+  "\272zd\301\311\16\14\306,\35\315\345\203\251.*,*,*\256\64\70\354\300\36\340@\70\350@("
+  "\370@\4\0\306.!\315\345\203\251.*,*,*\256\64\70\354\300\274\242,\42&\244\42&$*"
+  "&\244\242\2\0\306\67\33\315\345\203\251.*,*,*\256\64\70\354\300\36IplD\240L\20\0"
+  "\306D\36\316\345\203\67\250(&*&U\314DTLPQX\222\203\211x\240\350\254\17D\0\306\134"
+  "-\316\345\203\65$\64$\244&$\42*$D.\42D.\42D.\202\42*$IMHPTH"
+  "PT\310\301DHhHhH\0\306x\36\314\345\203\67IQDT\214\134\210\134\210\134HDTL"
+  "HQ\262\240\260\3\212\330\4\306\224\34\255%\204\251.*]P\134P\134T\272z\260\230\300\230\300\230"
+  "\300\230\240\3\3\306\251\35\315\345\203\251.*,*,*\256\60&\60&\350\300\36A]TXT\134"
+  "\21\0\306\260\27\253\351\203\247*M\134H\134H\134LTT\371\1UhV\0\306\261\30\315\345\203\251"
+  ".*,*,*\256\36\344\300,\70\360@\70'\0\306\264\33\315\345\203\251.*,*,*\256\36"
+  "\301\201Yp`L`p\360\201\10\0\306\270\35\315\345\203\251.*,*,*\256\36\344\300,\70\360"
+  "@\70\350@(\370@\4\0\306\300\37\315\345\203\251.*,*,*\256\36\344\300,\70\360@(."
+  "(.(.\350@\4\0\306\303\34\315\345\203\251.*,*,*\256\36\344\300,\70\36\64\70\66\42"
+  "P&\10\0\306\320\37\354\345\203\245(\42*&\42*&\42*&\244(\66\366\200\42*\204*'\261"
+  "i\17\6\306\324#\354\345\203\245(\42*&\42*&\42*&\244(\366\200\42*\204*=\304Al"
+  "\320AP\354A\0\307\4#\314\345\203\67\244(\42*F.D.D.$\42*&\244(\366\200\42"
+  "(,(,(,(,\0\307 \35\255\345\203\251.*]P\134P\134T\272z\220\3\243\230\300\230"
+  "\300\230\300\230 \0\307!\32\315\345\203\251.*,*,*\256\36\344\300(&\60&\354@\70'\0"
+  "\307<\24m\245\204\251.*]P\134P\134T\272z\324\7\6\307@\30\315\345\203\251.*,*,"
+  "*\256\36\301\201=tp\342\3\21\0\307D\34\315\345\203\251.*,*,*\256\36\301\201=\300\201"
+  "p\320\201P\360\201\10\0\307L\36\315\345\203\251.*,*,*\256\36\301\201=\300\201P\134P\134"
+  "P\134\320\201\10\0\307X\34\314\345\203\67IQDT\214\134\210\134\210\134HDTLHQ\354\1E"
+  "l\6\307t\30\254\345\203\67\11UDP\220X\214X\214XLDP\22\252\330\34\307x\30\313\351\203"
+  "\65\202J(H(H(H(\5Uh\342\320\244\7\3\307|\34\313\351\203\65\202J(H(H("
+  "H(\5Uh\370Ah\314AL\350A\0\307}\33\313\351\203\65\202J(H(H(H(\5U"
+  "hlEQ\224\225\244U\0\307\203\42\315\351\203\65\206*$(IP\222\240$Ai\250\202\343\1\212"
+  "\342\42\16jF\302b\42jF\0\307\204\35\313\351\203\65\202J(H(H(H(\5Uh<\300"
+  "QTPTPT\320\1\307\205\35\313\351\203\65\202J(H(H(H(\5Uh<@TPT"
+  "\320QT\320\1\307\207\34\314\351\203\65\204*\42(EP\212\240\24AI\250b\343\341bSJ\204\11"
+  "\5\307\210\42\315\351\203\65\206*$(IP\222\240$Ai\250\202\343\341B\42C\2#\322\305D\4"
+  "\211\310\4\307\212\34\313\351\203\65\202J(H(H(H(\5Uh<\300ah\240D\224P\0\307"
+  "\220\33\255\351\203\63\70\346$\60&\60&.\210F(*$&F($\70\67\0\307\221\30\316\345\203"
+  "\67:\304*,\263\21\211\250\20\241\324\361P\7\321\71\1\307\224\30\316\345\203\67:\304*,\263\21\211"
+  "\250\20\241\324\251\242\263>\20\1\307\230\35\316\345\203\67:\304*,\263\21\211\250\20\241\324\361P\7\321"
+  "a\7a\321\7!\0\307\240\35\316\345\203\67:\304*,\263\21\211\250\20\241\324\361`wQqQq"
+  "Qq'\0\307\241\35\316\345\203\67:\304*,\263\21\211\250\20\241\324\361`QqQqwQq'"
+  "\0\307\245\31\316\345\203\67:\304*,\263\21\211\250\20\241\324\361\250\354\302\262\263\1\307\254$\255\351\203"
+  "\63$\62\344 $ULHTLHP\20\215PH\66!C!)C\42C\42C\42C\2\307\301"
+  " \314\345\203\63\42\62\342&\42(EP\320\210DL\304PHDdD<\202\262\250\314*\0\310\0"
+  "\27\255\351\203\71\370 *YTXP\20\215\134H\262\241\250\340\34\310\1\27\314\345\203\67\366*(,"
+  "(hD\42j(m<\364Al\6\310\4\27\314\345\203\67\366*(,(hD\42j(m<l"
+  "\266\7\3\310\10\34\314\345\203\67\366*(,(hD\42j(m<\304Al\320AP\354A\0\310"
+  "\12\37\314\345\203\67\366*(,(hD\42j(mtEUDLDELDTLD\3\310\20"
+  "\27\314\345\203\67\366*(,(hD\42j(m<\310U\276:\310\21\31\314\345\203\67\366*(,"
+  "(hD\42j(m<HTVW\251\16\310\25\33\314\345\203\67\366*(,(hD\42j(m"
+  "<\270UXPX\224\5\0\310\34(\255\351\203\65\42\64\342 &\42*(\42*(\42(f\42F"
+  "*\42$Q\304PLDhDhDhDhD\0\310p\25\215%\204\347\66\70\66V\64$N("
+  "\36.\70\331\201\1\310q\27\315\345\203\307\66T\42N(\36.\70\354\300\36\340@\70'\0\310t\30"
+  "\315\345\203\307\66T\42N(\36.\70\354\300\36:\70\361\201\10\0\310\200\36\315\345\203\307\66T\42N"
+  "(\36.\70\354\300\36\340@(.(.(.\350@\4\0\310\205\32\315\345\203\307\66T\42N(\36"
+  ".\70\354\300\36A]TXT\134\21\0\310\213\33\315\345\203\307\66T\42N(\36.\70\354\300\36("
+  "\360@\254.*\256\10\0\310\374\25\253\351\203\345\62\64\62R\60$J(\372\200*\64+\0\310\375\27"
+  "\315\345\203\307\66\70T\42N(\36\342\300,\70\360@\70'\0\311\0\32\315\345\203\307\66\70T\42N"
+  "(\36\374\300,\70\60&\60\70\370@\4\0\311\4\34\315\345\203\307\66\70T\42N(\36\342\300,\70"
+  "\360@\70\350@(\370@\4\0\311\21\33\315\345\203\307\66\70T\42N(\36\342\300,\70\36\260.*"
+  ",*\256\10\0\311\211\25\315\345\203\307\66T\42N(\36\361\201=\300\201pN\0\311\220\32\315\345\203"
+  "\307\66T\42N(\36\361\201=\300\201p\320\201P\360\201\10\0\311\230\34\315\345\203\307\66T\42N("
+  "\36\361\201=\300\201P\134P\134P\134\320\201\10\0\311\300\27\253\351\203\65\364 &*(*(U\214"
+  "TH\242\241\230\320\34\311\301\27\314\345\203\67\366*(,(,D\42j(m<\364Al\6\311\304"
+  "\27\314\345\203\67\366*(,(,D\42j(m\362\330\264\7\3\311\310\34\314\345\203\67\366*(,"
+  "(,D\42j(m<\304Al\320AP\354A\0\311\321\31\314\345\203\67\366*(,(,D\42"
+  "j(m<HTVW\251\16\311\323\33\315\345\203\67\70\302*YTX\214DT\204P\342x\310\340"
+  "\244\22qB\1\311\325\33\314\345\203\67\366*(,(,D\42j(m<\270UXPX\224\5\0"
+  "\311\347%\317\341\203\71<fb(MTPL\324D\216Bb\62\217\7\252\210\11\214\210\11\252(\212"
+  "\212\11\252(\1\311\370+\257\341\203\67$\66$\202b$QLH\242\230\220\64\42\61\64\21iB\322"
+  "D\204\204\214\310D\204\304\206\304\206\304\206\304\206\4\312L\37\257\341\203=\5\305TPLTPLT"
+  "\214H\14MD\262\220\230\210\250\21\231\240\360\34\312\275\31\315\345\203\203]L\134L\134DV\61)\203"
+  "\303\16\354\1\16\204s\2\314(\34\255\351\203\63,*,*\346$\60&.\210F(*$&F("
+  "$\70\67\0\314,\32\316\345\203\67:*.\304*\335HDX\210LTt\252\350\254\17D\0\314."
+  "\42\317\345\203\67<,.\306*,n&\42,F&*<\36,.,\350&l*MP\311\10\0"
+  "\314\60\37\316\345\203\67:*.\304*\335HDX\210LTt<\324At\330AX\364A\10\0\314"
+  "\70\37\316\345\203\67:*.\304*\335HDX\210LTt<\330]T\134T\134T\334\11\0\314>"
+  "\36\316\345\203\67:*.\304*\335HDX\210LTt<\330mt\254D\240P\10\0\314D%\255"
+  "\351\203\63$&*$&*\344 $ULHP\20\215PH\66!C!)C\42C\42C\42C"
+  "\2\314E\36\314\345\203\63\42\62\42&*\342&\42&j$\42(b&EdD<\304Al\16\314"
+  "\230\30\255\351\203\71&\60&\360 *YP\20\215\134H\262\241\250\340\34\314\234\27\314\345\203\67M\334"
+  "UL\324HD\330LTl<l\266\7\3\314\253\35\315\345\203\67\70(.\302*(j&\42,B"
+  "&*\70\36\62\70\251D\234P\0\314\255\33\314\345\203\67M\334UL\324HD\330LTl<\270U"
+  "XPX\224\5\0\314\264)\255\351\203\65\42&,\42&,\342 &\42*(\42(f\42F*\42"
+  "$Q\304PLDhDhDhDhD\0\315\10\25\255%\204-\70\362\66\255hH\234P<\134"
+  "p\262\3\3\315\134 \314\345\203\67(,(,\342&,(*\221TLHP\204PLPXP\330"
+  "\1El\2\315\224\25\313\351\203-\64\356\62\245`H\224P\360\1UhV\0\316\65\31\315\345\203-"
+  "\322\64\66\42P&\36\301\201=\202\272\250\260\250\270\42\0\316X\30\253\351\203\65&,&\354 &*"
+  "(U\214TH\242\241\230\320\34\316\134\27\314\345\203\67M\334UL\134HD\330LTl\362\330\264\7"
+  "\3\316`\34\314\345\203\67M\334UL\134HD\330LTl<\304Al\320AP\354A\0\316h\27"
+  "\314\345\203\67M\334UL\134HD\330LTl<\310U\276:\316t\34\254\355\203\61\66\306$\60$"
+  "\60$\60\344@&.&,(*\215Xl\32\0\316\344\25\254\355\203\67\366*\237\34\210\5\205\305\304"
+  "\205\4N\306&\316\364\25\314\345\203\367*W\67Ca!r\223\361 W\371\352\0\317\0&\254\355\203"
+  "\63\42\62\342&\42*&\42*&\42*b\302(\42(ELTDHX\304\134DdDdD\0"
+  "\317T\25M%\204\343\200\70\311\1qXTXTXp\334\201\1\320l\17\15\245\204\343\200\70\311\1"
+  "q\26\7\6\320|\34\255\345\203\345@\70\350@\70=\300\201=\300\201P\134P\134P\134\320\201\10\0"
+  "\320\244\27\252\355\203\63\362&*&*&*\306(\233\250\220\260\271\310\4\320\300\30\255\351\203\63\70\346"
+  "$&\60&\60\346\244\60&\60\346$\70\67\0\320\325\31\316\345\203\67:\304*$\64\304\212\64\304*"
+  ":\36\225]Xv\66\0\320\334\42\255\351\203\63$\62\344 $D\60D\60\344 \244\60D\60\344 "
+  "$eHdHdHdH\0\321\60\24\255\351\203\71\370 JV\366 \244V\366 *\70\7\321L"
+  "$\255\351\203\65\42\64\342 &B\62B\62\342 bB\62B\62\342 &\42\64\42\64\42\64\42\64"
+  "\42\0\321T \314\345\203\63\42\62\342&B\60\342bB\60\342&\42\62\42\36\342 \66\350 (\366"
+  " \0\321\265\33\315\345\203\345@(\370@(\370@\60\70\354\300\36A]TXT\134\21\0\322,\24"
+  "\253\351\203\341\240\64\364\240\64\364\200\366\200*\64+\0\322\270\24m\245\204\343\200$\70\370\200$\70\370"
+  "\200\36\351\201\1\322\271\27\315\345\203\345@(\370@(\370@\36\372\300\36\340@\70'\0\322\360\24\253"
+  "\351\203\65\364 FR\362 FR\362 &\64\7\323\0\23\314\345\203\67\366J\364J\364*\66\36\344"
+  "*_\35\323\14\34\256\345\203\65:\346@\42*&UL\252\230\30\222\230T\61i\16$\242s\3\323"
+  "\24\42\316\345\203\67:\344 &($*($j$U\310ALt<\324At\330AX\364A\10"
+  "\0\323|\35\256\345\203;\372`($&,$&,$&\206$&,$&\354`(:\7\323\264"
+  "\35\256\345\203;\372`($&,$&\206$&,$&,$&\346\300(:\7\323\270\30\314\345"
+  "\203\67\366@&$\315H\252\220\64\7\64\261\311c\323\36\14\323\311\34\314\345\203\67\366@&$\315H"
+  "\252\220\64\7\64\261\361\340VaAaQ\26\0\324\134\35\215%\204\343\200(*,*,*,*\350"
+  "\200\36&aL`L`L\320\201\1\324\200\37\315\345\203\345@,&\60&\60&\354@\36\340\300,"
+  "\70\360@\70\350@(\370@\4\0\324\210!\315\345\203\345@,&\60&\60&\354@\36\340\300,\70"
+  "\360@(.(.(.\350@\4\0\324\350\37\255\345\203\343\200(*,*,*,*\350\200\36\370"
+  "\300(&\60&\60&\60&\10\0\325\4\26M\245\204\343\200(*,*,*,*\350\200\36\351\201"
+  "\1\325<\34\254\345\203\67\366`$MPHLPHLPHLPHL\320\301Hl\16\325D\35"
+  "\314\345\203\67\366@&$UH\252\220T\7\62\261\361\20\7\261A\7A\261\7\1\325X\35\255\351\203"
+  "'*,*\346$j(MV!U!\61Q!A\61\251\206\202\263\1\325Y\34\316\345\203'.\344"
+  "(h,&UL\252\211\230\250\240\261\350x\250\203\350\234\0\325\134\34\316\345\203'.\344(h,&"
+  "UL\252\211\230\250\240\261\350T\321Y\37\210\0\325`!\316\345\203'.\344(h,&UL\252\211"
+  "\230\250\240\261\350x\250\203\350\260\203\260\350\203\20\0\325h!\316\345\203'.\344(h,&UL\252"
+  "\211\230\250\240\261\350x\260\273\250\270\250\270\250\270\23\0\325m\35\316\345\203'.\344(h,&UL"
+  "\252\211\230\250\240\261\350xTva\331\331\0\325t(\255\351\203'*$&*\344 $\311PHD"
+  "L\22\251\220\252\220\20\251\220\24\61IB\206B\42C\42C\42C\2\325\211\42\314\345\203'*\342 "
+  "$\42d(\42M\212\64\61\23\61)B\206\42\42#\342\21\224EeV\1\325\245\35\316\345\203'."
+  "\344(h,&\325DLTL\252\221\261\350xTva\331\331\0\325\330\35\314\345\203'\356 (d"
+  ",\42&*\42&f\42&*d,\66\36\344*_\35\326\0\36\255\351\203'\60&\360 *d."
+  "\42&\246*J*J*\204\42&,d.\70\3\326\4\35\314\345\203'\356 (d,\42&f\42"
+  "&*\42&fd,\66yl\332\203\1\326\25!\314\345\203'\356 (d,\42&f\42&*\42"
+  "&fd,\66\36\334*,(,\312\2\0\326\70\26\255%\204-\70\362\36\252.*,*\256\36\60"
+  "\70\331\201\1\326\71\30\355\345\203-\362\256.*,*\256\64\70\354\300\36\340@\70'\0\326<\31\355"
+  "\345\203-\362\256.*,*\256\64\70\354\300\36:\70\361\201\10\0\326T\42\316\345\203\65.*.*"
+  "\350$:\252&(*\204\42*$\252&.*.*\346@\42:\15\0\326U\36\316\345\203),\346"
+  "&j*(&h$&(j*,\311\301D<\324AtN\0\326X\37\316\345\203),\346&j"
+  "*(&h$&(j*,\311\301D<Pt\326\7\42\0\326\134#\316\345\203),\346&j*"
+  "(&h$&(j*,\311\301D<\324At\330AX\364A\10\0\326i\37\316\345\203),\346"
+  "&j*(&h$&(j*,\311\301D<*\273\260\354l\0\326\214\37\314\345\203\67(,("
+  ",\342&\66\244(\42*&\42*&\244(YP\330\1El\2\326\215\35\314\345\203),\342&f"
+  "*$&($&(f*(\354\200\42\36\342 \66\7\326\250\33\255%\204-\70\362\36\252.*,"
+  "*\256\60&\60&\60&\60&\350\300\0\326\304\25\313\351\203+\64\356\36\242*QTT\371\1Uh"
+  "V\0\326\314\35\355\345\203-\362\256.*,*\256\36\344\300,\70\360@\70\350@(\370@\4\0\326"
+  "\350!\354\345\203),\342&f*$&(f*\366\200\42*\204*=\304Al\320AP\354A\0"
+  "\327P\24m\245\204-\70\362\36\252.*,*\256\36\301\201\1\327T\30\355\345\203-\362\256.*,"
+  "*\256\36\301\201=tp\342\3\21\0\327\210\36\253\351\203',&\354 &d*\42&H*F*"
+  "F*&\42&(d*\64\3\327\230\35\314\345\203'\356 (d,\42&*\42&*\42&*d"
+  ",\66\36\344*_\35\0";
 /*
   Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1
   Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception.

+ 9 - 0
src/clib/u8x8.h

@@ -109,6 +109,7 @@
 
 
 #include <stdint.h>
+#include <stdarg.h>
 #include <stddef.h>
 #include <limits.h>
 
@@ -599,6 +600,8 @@ uint8_t u8x8_cad_SendMultipleArg(u8x8_t *u8x8, uint8_t cnt, uint8_t arg) U8X8_NO
 uint8_t u8x8_cad_SendData(u8x8_t *u8x8, uint8_t cnt, uint8_t *data) U8X8_NOINLINE;
 uint8_t u8x8_cad_StartTransfer(u8x8_t *u8x8) U8X8_NOINLINE;
 uint8_t u8x8_cad_EndTransfer(u8x8_t *u8x8) U8X8_NOINLINE;
+void u8x8_cad_vsendf(u8x8_t * u8x8, const char *fmt, va_list va);
+void u8x8_SendF(u8x8_t * u8x8, const char *fmt, ...);
 
 /*
 #define U8X8_C(c0)				(0x04), (c0)
@@ -1036,6 +1039,12 @@ extern const uint8_t u8x8_font_7x14_1x2_n[] U8X8_FONT_SECTION("u8x8_font_7x14_1x
 extern const uint8_t u8x8_font_7x14B_1x2_f[] U8X8_FONT_SECTION("u8x8_font_7x14B_1x2_f");
 extern const uint8_t u8x8_font_7x14B_1x2_r[] U8X8_FONT_SECTION("u8x8_font_7x14B_1x2_r");
 extern const uint8_t u8x8_font_7x14B_1x2_n[] U8X8_FONT_SECTION("u8x8_font_7x14B_1x2_n");
+extern const uint8_t u8x8_font_open_iconic_arrow_1x1[] U8X8_FONT_SECTION("u8x8_font_open_iconic_arrow_1x1");
+extern const uint8_t u8x8_font_open_iconic_check_1x1[] U8X8_FONT_SECTION("u8x8_font_open_iconic_check_1x1");
+extern const uint8_t u8x8_font_open_iconic_embedded_1x1[] U8X8_FONT_SECTION("u8x8_font_open_iconic_embedded_1x1");
+extern const uint8_t u8x8_font_open_iconic_play_1x1[] U8X8_FONT_SECTION("u8x8_font_open_iconic_play_1x1");
+extern const uint8_t u8x8_font_open_iconic_thing_1x1[] U8X8_FONT_SECTION("u8x8_font_open_iconic_thing_1x1");
+extern const uint8_t u8x8_font_open_iconic_weather_1x1[] U8X8_FONT_SECTION("u8x8_font_open_iconic_weather_1x1");
 extern const uint8_t u8x8_font_open_iconic_arrow_2x2[] U8X8_FONT_SECTION("u8x8_font_open_iconic_arrow_2x2");
 extern const uint8_t u8x8_font_open_iconic_check_2x2[] U8X8_FONT_SECTION("u8x8_font_open_iconic_check_2x2");
 extern const uint8_t u8x8_font_open_iconic_embedded_2x2[] U8X8_FONT_SECTION("u8x8_font_open_iconic_embedded_2x2");

+ 26 - 0
src/clib/u8x8_cad.c

@@ -120,6 +120,32 @@ uint8_t u8x8_cad_EndTransfer(u8x8_t *u8x8)
   return u8x8->cad_cb(u8x8, U8X8_MSG_CAD_END_TRANSFER, 0, NULL);
 }
 
+void u8x8_cad_vsendf(u8x8_t * u8x8, const char *fmt, va_list va)
+{
+  uint8_t d;
+  u8x8_cad_StartTransfer(u8x8);
+  while( *fmt != '\0' )
+  {
+    d = (uint8_t)va_arg(va, int);
+    switch(*fmt)
+    {
+      case 'a':  u8x8_cad_SendArg(u8x8, d); break;
+      case 'c':  u8x8_cad_SendCmd(u8x8, d); break;
+      case 'd':  u8x8_cad_SendData(u8x8, 1, &d); break;
+    }
+    fmt++;
+  }
+  u8x8_cad_EndTransfer(u8x8);
+}
+
+void u8x8_SendF(u8x8_t * u8x8, const char *fmt, ...)
+{
+  va_list va;
+  va_start(va, fmt);
+  u8x8_cad_vsendf(u8x8, fmt, va);
+  va_end(va);
+}
+
 /*
   21 c		send command c
   22 a		send arg a

+ 0 - 91
src/clib/u8x8_d_ssd1306_128x32.c

@@ -217,97 +217,6 @@ uint8_t u8x8_d_ssd1306_128x32_univision(u8x8_t *u8x8, uint8_t msg, uint8_t arg_i
 #define	    ADDR_MODE	0 //0:horizontal, 1:vertical, 2:page
 
 
-/* From WEO012832DWPP3N00000 Datasheet and Winstar Example Constructors */
-static const uint8_t u8x8_d_ssd1306_128x32_winstar_init_seq[] = {
-    
-  U8X8_START_TRANSFER(),             	// enable chip, delay is part of the transfer start 
-  
-  //*/taken from WEO012832.c example provided by Winstar as an example
-  U8X8_C(0x8D), 
-  U8X8_C(0x14), //Enable embedded DC/DC converter
-
-  U8X8_C(0xae),		                // display off 
-
-  U8X8_C(0xd5),
-  U8X8_C(0xA0),		// display clock
-
-  U8X8_C(0x0a8),
-  U8X8_C(0x01f),		// multiplex ratio 
-
-  U8X8_C(0xd3),
-  U8X8_C(0x00),		// display offset 
-
-  U8X8_C(0x40),                 //start line
-  
-  U8X8_C(0x00),                 //Set Lower Column Start Address for Page Addressing Mode  efault => 0x00
-  U8X8_C(0x10),                 //Set Higher Column Start Address for Page Addressing Mode;Default => 0x10	
-
-  U8X8_C(0xA1),                //segment remapping
-
-  U8X8_C(0xC8),                 //Com/Row scan direction
-
-  U8X8_C(0xDA),
-  U8X8_C(0x02),                 //Set alternative configuration
-
-  U8X8_C(0x91),
-  U8X8_C(0x3F),
-  U8X8_C(0x3F),
-  U8X8_C(0x3F),
-  U8X8_C(0x3F),
-
-  U8X8_C(0x81),
-  U8X8_C(0x30), //Set SEG output current
-
-  U8X8_C(0xD9),
-  U8X8_C(0x77), //set precharge as 15 clocks and discharge as 1 clock
-
-  U8X8_C(0xDB),
-  U8X8_C(0x00), //set VCOM Deselect level
-
-  U8X8_C(0xA4), //set entire display on
-
-  U8X8_C(0xA6), //Disable reverse display on
-
-  U8X8_C(0xAF), //display on
- //*/
-
-
-  U8X8_END_TRANSFER(),             	// disable chip 
-  U8X8_END()             			// end of sequence 
-};
-
-static const uint8_t u8x8_d_ssd1306_128x32_winstar_powersave0_seq[] = {
-  U8X8_START_TRANSFER(),             	/* enable chip, delay is part of the transfer start */
-  U8X8_C(0x0af),		                /* display on */
-  U8X8_END_TRANSFER(),             	/* disable chip */
-  U8X8_END()             			/* end of sequence */
-};
-
-static const uint8_t u8x8_d_ssd1306_128x32_winstar_powersave1_seq[] = {
-  U8X8_START_TRANSFER(),             	/* enable chip, delay is part of the transfer start */
-  U8X8_C(0x0ae),		                /* display off */
-  U8X8_END_TRANSFER(),             	/* disable chip */
-  U8X8_END()             			/* end of sequence */
-};
-
-static const uint8_t u8x8_d_ssd1306_128x32_winstar_flip0_seq[] = {
-  U8X8_START_TRANSFER(),             	/* enable chip, delay is part of the transfer start */
-  U8X8_C(0x0a1),				/* segment remap a0/a1*/
-  U8X8_C(0x0c8),				/* c0: scan dir normal, c8: reverse */
-  U8X8_END_TRANSFER(),             	/* disable chip */
-  U8X8_END()             			/* end of sequence */
-};
-
-static const uint8_t u8x8_d_ssd1306_128x32_winstar_flip1_seq[] = {
-  U8X8_START_TRANSFER(),             	/* enable chip, delay is part of the transfer start */
-  U8X8_C(0x0a0),				/* segment remap a0/a1*/
-  U8X8_C(0x0c0),				/* c0: scan dir normal, c8: reverse */
-  U8X8_END_TRANSFER(),             	/* disable chip */
-  U8X8_END()             			/* end of sequence */
-};
-
-
-
 static const u8x8_display_info_t u8x8_ssd1306_128x32_winstar_display_info =
 {
   /* chip_enable_level = */ 0,

+ 69 - 0
src/clib/u8x8_fonts.c

@@ -1138,6 +1138,75 @@ const uint8_t u8x8_font_7x14B_1x2_n[436] U8X8_FONT_SECTION("u8x8_font_7x14B_1x2_
   "\20\37\17\0\0\340\360\230\210\270\60\0\0\17\37\20\20\37\17\0\0\70\70\210\350x\30\0\0\0\0\37"
   "\37\0\0\0\0p\370\210\210\370p\0\0\16\37\21\21\37\16\0\0\360\370\10\10\370\360\0\0\14\35\21"
   "\31\17\7\0\0\0\0``\0\0\0\0\0\0\14\14\0\0";
+/*
+  Fontname: open_iconic_arrow_1x
+  Copyright: https://github.com/iconic/open-iconic, SIL OPEN FONT LICENSE
+  Glyphs: 28/28
+  BBX Build Mode: 3
+*/
+const uint8_t u8x8_font_open_iconic_arrow_1x1[229] U8X8_FONT_SECTION("u8x8_font_open_iconic_arrow_1x1") = 
+  "@[\1\1\0 `\377` \0\0\10\34>\10\10\10\10\10\10\10\10\10\10>\34\10\0\4\6\377"
+  "\6\4\0\0<n\317\201\201\317n<<f\303\201\347\347f<<f\347\347\201\303f<<v\363\201"
+  "\201\363v<\0\0 \177\377 \0\0\20\30<\30\30\30\30\30\30\30\30\30\30<\34\10\0\0\6\377"
+  "\376\4\0\0\0\4\14\34\34\14\4\0\0\0\0\30<~\0\0\0\0~<\30\0\0\0\0 \60\70"
+  "\70\60 \0\4\16\34\70\70\34\16\4\0\0\30<fB\0\0\0B\347~<\30\0\0\0\60\30\14"
+  "\14\30\60\0\200\200\210\237\237\210\200\200\1\1\21\371\371\21\1\1&r\42\42\42\42'\62\20<\26\2"
+  "@h<\10\20\373\221\201\201\211\337\10Bf<\30$B\347B\60\30\14\14\14\37\16\4\177AAD"
+  "Ff\6\2";
+/*
+  Fontname: open_iconic_check_1x
+  Copyright: https://github.com/iconic/open-iconic, SIL OPEN FONT LICENSE
+  Glyphs: 5/5
+  BBX Build Mode: 3
+*/
+const uint8_t u8x8_font_open_iconic_check_1x1[45] U8X8_FONT_SECTION("u8x8_font_open_iconic_check_1x1") = 
+  "@D\1\1\20\70pp\70\34\16\4<~\357\357\347\363~<<~\333\347\347\333~<\177AAI"
+  "IDr\0B\347~<<~\347B";
+/*
+  Fontname: open_iconic_embedded_1x
+  Copyright: https://github.com/iconic/open-iconic, SIL OPEN FONT LICENSE
+  Glyphs: 17/17
+  BBX Build Mode: 3
+*/
+const uint8_t u8x8_font_open_iconic_embedded_1x1[140] U8X8_FONT_SECTION("u8x8_font_open_iconic_embedded_1x1") = 
+  "@P\1\1~BBBBB~\30 \60>\277\277>\60 \30~~\347\347~~\30\0\0dg"
+  "=\4\0\0\0|~\37\37~|\0\300\340p\70\30\0\2\0\20\60<\16\70\30\20\20\300\370\376\247"
+  "\376\360\300\0\300\340p>\37\30\30\10~~~~~~~\30\0$<\333Z$\0\0<~\377\377"
+  "\201\201B<\357\357\357\357\357\257\357\0\0\12*\277\65\24\0\0\70D\200\217\200D\70\0<B\201\201"
+  "\201\205\6\6\2\1\11\311\311\1\2";
+/*
+  Fontname: open_iconic_play_1x
+  Copyright: https://github.com/iconic/open-iconic, SIL OPEN FONT LICENSE
+  Glyphs: 18/18
+  BBX Build Mode: 3
+*/
+const uint8_t u8x8_font_open_iconic_play_1x1[148] U8X8_FONT_SECTION("u8x8_font_open_iconic_play_1x1") = 
+  "@Q\1\1\30\0~\0\377\0<\0\14\34|\36\36\0\77\0\320\330\334\336\336\334\330\320p~\3\1"
+  "\1\3~p\0~~\0\0~~\0\0~<<\30\30\0\0\0<~~~~<\0\0\30<~"
+  "\0\30<~~<\30\0~<\30\0~~\0\30\30<~\0~<\30\30\0~~\0\0~~~"
+  "~~~\0\0\34\260\257\357\260\34\0\340\340\376\3\3ss\177<~\377\303\347\377~<<<~\377"
+  "\0Zf<\0<<~\377\0\30\0\0\0<<~\377\0";
+/*
+  Fontname: open_iconic_thing_1x
+  Copyright: https://github.com/iconic/open-iconic, SIL OPEN FONT LICENSE
+  Glyphs: 19/19
+  BBX Build Mode: 3
+*/
+const uint8_t u8x8_font_open_iconic_thing_1x1[156] U8X8_FONT_SECTION("u8x8_font_open_iconic_thing_1x1") = 
+  "@R\1\1\10\370\234\373\373\234\370\10\334\334\337\335\335\337\334\334zZzZzzzz\300\360\370>"
+  "\77\31\31\16\0\360\362\361\361\376\360\0p\310\264\242Q\11\6\0\374\374\77\77\374\374\60\60\200\340\360p"
+  "\14\16\6\1\0x\334\276\376\374x\0`~bBBb~`\34\42AAAb\374\300\0\377\301\301"
+  "\301\377\0\0\0\6\6\377\14\14\0\0T|~\17~|T\0p\374\77\216\340\370\360\0\0x~y"
+  "y~x\0\77\241\241\341\341\241\241\77\10\11\17\177\17\11\10\0\377\301\301\301\301\301\377";
+/*
+  Fontname: open_iconic_weather_1x
+  Copyright: https://github.com/iconic/open-iconic, SIL OPEN FONT LICENSE
+  Glyphs: 6/6
+  BBX Build Mode: 3
+*/
+const uint8_t u8x8_font_open_iconic_weather_1x1[52] U8X8_FONT_SECTION("u8x8_font_open_iconic_weather_1x1") = 
+  "@E\1\1\60x|~~~|pf\367\373\375\374\374\370\340<~~\360\340``\0\30\334\16\357"
+  "\17\337\36\70\0\10x<<x\10\0\0B\30<<\30B";
 /*
   Fontname: open_iconic_arrow_2x
   Copyright: https://github.com/iconic/open-iconic, SIL OPEN FONT LICENSE