Skip to contentSkip to conversation

psplash fixes

PATCH In review Paul Eggleton 6 participants 18 messages Dec 19, 2011 – Dec 23, 2011

lore
Share & tools
lore
#0 lore raw

cover psplash fixes

Set the default psplash image to the OpenEmbedded logo, and provide a script to allow people to use their own custom image.

Note: there's a corresponding meta-yocto patch which should be applied after this set.

The following changes since commit ae4118a1f78f113c3d687c3aa6a86007cf977cae:

libsdl 1.2.14: fix packaging (2011-12-19 12:17:36 +0000)

are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib paule/oe-psplash
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=paule/oe-psplash

Paul Eggleton (2):
psplash: use OpenEmbedded logo
scripts/contrib: add a script to create a psplash image header

 meta/recipes-core/psplash/files/psplash-img.h      | 1062 ++++++++++++++++++++
 meta/recipes-core/psplash/files/psplash-poky-img.h |  909 -----------------
 meta/recipes-core/psplash/psplash_git.bb           |    6 +-
 scripts/contrib/make-psplash-img-header.sh         |   22 +
 4 files changed, 1087 insertions(+), 912 deletions(-)
 create mode 100644 meta/recipes-core/psplash/files/psplash-img.h
 delete mode 100644 meta/recipes-core/psplash/files/psplash-poky-img.h
 create mode 100755 scripts/contrib/make-psplash-img-header.sh
Signature · 1 line
1.7.5.4
#1 lore raw

PATCH 1/2 psplash: use OpenEmbedded logo

Use the OpenEmbedded logo for psplash in OE-core, and rename the file to psplash-img.h rather than psplash-poky-img.h.

---
 meta/recipes-core/psplash/files/psplash-img.h      | 1059 ++++++++++++++++++++
 meta/recipes-core/psplash/files/psplash-poky-img.h |  909 -----------------
 meta/recipes-core/psplash/psplash_git.bb           |    6 +-
 3 files changed, 1062 insertions(+), 912 deletions(-)
 create mode 100644 meta/recipes-core/psplash/files/psplash-img.h
 delete mode 100644 meta/recipes-core/psplash/files/psplash-poky-img.h
meta/recipes-core/psplash/files/psplash-img.h new file +1059 -0
new file mode 100644
index 0000000..1c85a72
@@ -0,0 +1,1059 @@
+/* OpenEmbedded logo image for psplash */
+
+/* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */
+
+#define POKY_IMG_ROWSTRIDE (1200)
+#define POKY_IMG_WIDTH (300)
+#define POKY_IMG_HEIGHT (241)
+#define POKY_IMG_BYTES_PER_PIXEL (4) /* 3:RGB, 4:RGBA */
+#define POKY_IMG_RLE_PIXEL_DATA ((uint8*) \
+  "\377\0\0\0\0\210\0\0\0\0\11]tt\13_q}+[o|L]p|k\\nz\177]pz\222]o|\245[o" \
+  "{\270]o{\314\202\\o{\335\202\\o{\356\1\\o{\363\202\\o{\377\1\\o{\365" \
+  "\202\\o{\356\13[o{\337\\o{\335\\o{\317[n{\273\\o|\247[nz\224]o{\201]" \
+  "o{n^n{O\\m}/Uww\17\377\0\0\0\0\377\0\0\0\0\212\0\0\0\0\6Xr{\35]n|J[o" \
+  "{x\\o{\246\\oz\312\\o{\352\236\\o{\377\7\\o{\356\\o{\316\\nz\253[o{~" \
+  "[n{Q_m|#\0\0\0\1\377\0\0\0\0\375\0\0\0\0\5amy\25\\o|N[p{\211\\p|\300" \
+  "\\o{\356\252\\o{\377\5\\o{\363\\o{\307]pz\222]nzX^q{\33\377\0\0\0\0\365" \
+  "\0\0\0\0\4`j\200\30]pz`\\p{\240\\n{\331\264\\o{\377\4\\o|\341\\o{\246" \
+  "]p|k\\qx$\377\0\0\0\0\355\0\0\0\0\5@\200\200\4Zo{>[n|\206\\o{\316\\o" \
+  "{\376\273\\o{\377\4\\o{\333]pz\222[m|F``\200\10\377\0\0\0\0\346\0\0\0" \
+  "\0\4U\200\200\6[o|L[p{\242\\o{\360\302\\o{\377\4\\o{\365[oz\255]nzX]" \
+  "tt\13\377\0\0\0\0\340\0\0\0\0\4fff\5[pzI[o{\237\\o{\357\310\\o{\377\4" \
+  "\\o{\365\\p|\251[p|TUqq\11\377\0\0\0\0\333\0\0\0\0\3_m|#\\o{\205\\oz" \
+  "\345\316\\o{\377\3\\o{\356\\o{\223[q}-\377\0\0\0\0\326\0\0\0\0\4U\200" \
+  "\200\6]o{U[n{\273\\o{\375\323\\o{\377\3\\o{\307]o|cUj\200\14\377\0\0" \
+  "\0\0\321\0\0\0\0\3`p\200\20\\ozw\\oz\345\330\\o{\377\3\\o{\357\\o|\210" \
+  "Xl\200\32\377\0\0\0\0\315\0\0\0\0\3Zqx\"]pz\222\\o{\364\334\\o{\377\3" \
+  "\\o{\371\\p{\240[q}-\377\0\0\0\0\311\0\0\0\0\3\\o|']o|\245\\o{\374\341" \
+  "\\o{\377\2\\o{\266[o}5\377\0\0\0\0\305\0\0\0\0\3Zqx\"\\p{\240\\o{\373" \
+  "\344\\o{\377\3\\o{\376\\oz\261\\m}/\377\0\0\0\0\301\0\0\0\0\3\\pz\31" \
+  "\\p{\231\\o{\372\350\\o{\377\3\\o{\376\\o{\252[my*\377\0\0\0\0\275\0" \
+  "\0\0\0\3Uqq\11[pz{\\o{\363\354\\o{\377\3\\o{\373]o|\214`p\200\20\377" \
+  "\0\0\0\0\272\0\0\0\0\2\\p{Y\\o|\341\360\\o{\377\3\\o{\353[o{j@\200\200" \
+  "\4\377\0\0\0\0\266\0\0\0\0\2_q}+\\o{\277\364\\o{\377\2[o{\324^o{<\377" \
+  "\0\0\0\0\263\0\0\0\0\3U\200\200\6\\p|\200\\o{\371\366\\o{\377\3\\o{\375" \
+  "\\o{\225[m\200\16\377\0\0\0\0\260\0\0\0\0\2\\n{:\\o{\325\372\\o{\377" \
+  "\2\\oz\343\\o|N\377\0\0\0\0\255\0\0\0\0\3``\200\10[o{\221\\o{\375\375" \
+  "\\o{\377\2]o{\250Uq\200\22\377\0\0\0\0\252\0\0\0\0\2^oz.[o{\324\377\\" \
+  "o{\377\3\\o{\377]o{\342ZnzA\377\0\0\0\0\247\0\0\0\0\3\0\0\0\1\\p{r\\" \
+  "o{\370\377\\o{\377\203\\o{\377\3\\o{\375[p{\211U\200\200\6\377\0\0\0" \
+  "\0\244\0\0\0\0\2]t\200\26[n{\273\377\\o{\377\207\\o{\377\2\\o{\315Zn" \
+  "|%\377\0\0\0\0\242\0\0\0\0\2[m{8\\o{\344\377\\o{\377\211\\o{\377\2\\" \
+  "o{\357]q{M\377\0\0\0\0\240\0\0\0\0\2]n{h\\o{\370\377\\o{\377\213\\o{" \
+  "\377\3\\o{\376\\p|\202\200\200\200\2\377\0\0\0\0\234\0\0\0\0\2``\200" \
+  "\10\\o{\236\377\\o{\377\217\\o{\377\2\\o{\266Uq\200\22\377\0\0\0\0\232" \
+  "\0\0\0\0\2amy\25[o|\306\377\\o{\377\221\\o{\377\2\\o{\332_m|#\377\0\0" \
+  "\0\0\230\0\0\0\0\2^ry&\\o{\334\377\\o{\377\223\\o{\377\2\\o{\353^py9" \
+  "\377\0\0\0\0\226\0\0\0\0\2\\qy=]o{\355\377\\o{\377\225\\o{\377\2\\o{" \
+  "\367[p|T\377\0\0\0\0\224\0\0\0\0\2\\nzV\\o{\370\377\\o{\377\227\\o{\377" \
+  "\2\\o{\376]o|q\377\0\0\0\0\222\0\0\0\0\2\\n|a\\o{\374\277\\o{\377\14" \
+  "\\o{\374\\o|\341\\o{\301\\o|\241\\p|\200\\o{l\\p{Y[m|FZn}3\\qx$Zqx\"" \
+  "`px\40\202Zix\21\1Xr{\35\202Zqx\"\11Zn}3]p|B[o{W[o{j\\nz}\\n{\233[n{" \
+  "\273\\o{\333\\o{\371\300\\o{\377\1\\p|\200\377\0\0\0\0\220\0\0\0\0\2" \
+  "[o{j\\o{\376\273\\o{\377\6]o{\355\\o{\267[p{\211[ozZ[q}-fff\5\230\0\0" \
+  "\0\0\6UUU\3^ry&]o{U[o{\203[p{\260\\o{\347\274\\o{\377\2\\p{\213\0\0\0" \
+  "\1\377\0\0\0\0\215\0\0\0\0\1]n{v\271\\o{\377\5\\oz\343\\p{\240]o|c]p" \
+  "|)\0\0\0\1\243\0\0\0\0\4Zqx\"[oz\\\\oz\226\\o{\333\271\\o{\377\2[o{\227" \
+  "\200\200\200\2\377\0\0\0\0\213\0\0\0\0\1[pz{\266\\o{\377\4\\o{\374\\" \
+  "o{\275\\ozu[q}-\254\0\0\0\0\4\\qx$\\o{l\\o{\265\\o{\367\266\\o{\377\2" \
+  "\\o{\236\0\0\0\1\377\0\0\0\0\211\0\0\0\0\1[p{p\264\\o{\377\4\\o{\374" \
+  "\\o{\275\\o|gYs\200\24\262\0\0\0\0\4[m\200\16\\p{[\\n{\262\\o{\370\264" \
+  "\\o{\377\1\\o{\223\377\0\0\0\0\210\0\0\0\0\2]n{f\\o{\376\262\\o{\377" \
+  "\3\\o{\333\\ozwYoz\27\270\0\0\0\0\3Uww\17\\p|i\\o{\315\263\\o{\377\1" \
+  "\\o|\210\377\0\0\0\0\206\0\0\0\0\2]n{]\\o{\375\260\\o{\377\4\\o{\373" \
+  "]o{\250ZnzA\0\0\0\1\275\0\0\0\0\3Zn}3\\p{\231\\o{\365\261\\o{\377\1]" \
+  "o{|\377\0\0\0\0\204\0\0\0\0\2\\o|N\\o{\374\257\\o{\377\3\\o{\361]o{\217" \
+  "Zk{\37\302\0\0\0\0\3Ys\200\24[o{~\\o{\351\260\\o{\377\1\\p|i\377\0\0" \
+  "\0\0\202\0\0\0\0\2^m}1\\o{\365\256\\o{\377\3]o{\355\\o{z[m\200\16\306" \
+  "\0\0\0\0\3``\200\10[o{j\\o{\344\256\\o{\377\2\\o{\374\\o|N\377\0\0\0" \
+  "\0\2[m\200\34\\oz\343\255\\o{\377\3\\o{\360\\p|\200Uww\17\312\0\0\0\0" \
+  "\3``\200\10\\n|o\\o{\347\255\\o{\377\2\\o{\365[q}-\375\0\0\0\0\2Uww\17" \
+  "\\o{\322\254\\o{\377\3\\o{\373\\o{\225Uq\200\22\316\0\0\0\0\3ff\200\12" \
+  "]o{|\\o{\366\254\\o{\377\2\\oz\343[m\200\34\373\0\0\0\0\2UUU\3[o{\270" \
+  "\254\\o{\377\2\\o{\267[my*\322\0\0\0\0\3^ow\36\\o{\246\\o{\376\253\\" \
+  "o{\377\2\\o{\321ff\200\12\372\0\0\0\0\1\\o{\205\253\\o{\377\2\\o{\344" \
+  "\\p|P\326\0\0\0\0\2^o{<\\o{\330\253\\o{\377\1\\o{\246\371\0\0\0\0\2\\" \
+  "p|P\\o{\376\251\\o{\377\3\\o{\376\\p{\231Uww\17\330\0\0\0\0\3mmm\7[o" \
+  "{\203\\o{\371\252\\o{\377\1[p{p\367\0\0\0\0\2^ry&\\o{\360\251\\o{\377" \
+  "\2\\o|\341\\p|@\254\0\0\0\0\1\0\304\353\15\202\0\303\341\21\1\0\273\335" \
+  "\17\254\0\0\0\0\2[q}-\\o{\321\251\\o{\377\2\\o{\372\\qy=\365\0\0\0\0" \
+  "\2ff\200\12\\o{\325\251\\o{\377\2\\o|\247`p\200\20\243\0\0\0\0\11\0\277" \
+  "\346\24\0\274\344A\0\275\344h\0\274\344\206\0\274\345\244\0\274\344\303" \
+  "\0\274\343\325\0\274\344\350\0\274\344\372\206\0\274\344\377\11\0\274" \
+  "\344\374\0\275\344\352\0\274\344\330\0\274\344\306\0\275\344\251\0\273" \
+  "\343\213\0\273\343m\0\275\346F\0\275\343\33\243\0\0\0\0\3mmm\7]o{\217" \
+  "\\o{\376\250\\o{\377\2\\o{\347`j\200\30\364\0\0\0\0\1\\p{\231\250\\o" \
+  "{\377\2\\o{\363]n{]\240\0\0\0\0\5\0\303\341\21\0\276\343J\0\274\343\201" \
+  "\0\274\345\267\0\274\344\351\230\0\274\344\377\5\0\274\344\356\0\274" \
+  "\344\277\0\274\345\210\0\275\343Q\0\274\351\27\240\0\0\0\0\2[m|F\\o{" \
+  "\350\250\\o{\377\2\\p{\271\0\0\0\1\362\0\0\0\0\1\\o|N\250\\o{\377\2\\" \
+  "o{\330[my*\235\0\0\0\0\5\0\252\377\3\0\274\346=\0\274\344\205\0\274\344" \
+  "\312\0\274\344\374\241\0\274\344\377\4\0\274\344\322\0\275\344\216\0" \
+  "\274\343H\0\266\333\7\235\0\0\0\0\2^q{\33[o|\306\250\\o{\377\1[p{p\361" \
+  "\0\0\0\0\2\\pz\31\\o{\353\247\\o{\377\2\\oz\257[m\200\16\233\0\0\0\0" \
+  "\4\0\252\377\3\0\273\342G\0\274\344\231\0\274\344\351\250\0\274\344\377" \
+  "\4\0\274\343\361\0\275\345\245\0\273\343R\0\266\333\7\233\0\0\0\0\2U" \
+  "\200\200\6\\o{\225\247\\o{\377\2\\o{\370^oz.\357\0\0\0\0\2\0\0\0\1\\" \
+  "p{\271\247\\o{\377\2[o{\203\0\0\0\1\232\0\0\0\0\3\0\271\346(\0\274\345" \
+  "\210\0\274\344\345\256\0\274\344\377\3\0\274\344\355\0\273\343\223\0" \
+  "\276\3463\233\0\0\0\0\2[o|e\\o{\373\246\\o{\377\2[o{\324Uqq\11\356\0" \
+  "\0\0\0\1]n{h\246\\o{\377\2\\o{\372]pz`\231\0\0\0\0\4\0\200\377\2\0\274" \
+  "\344L\0\274\344\272\0\274\344\376\263\0\274\344\377\3\0\274\345\313\0" \
+  "\274\343[\0\252\325\6\231\0\0\0\0\2\\n|H\\o{\362\246\\o{\377\1\\p{\213" \
+  "\355\0\0\0\0\2[m\200\34\\o{\360\245\\o{\377\2\\o{\361[nzC\230\0\0\0\0" \
+  "\3\0\252\325\6\0\275\343d\0\273\344\333\270\0\274\344\377\3\0\274\345" \
+  "\347\0\273\345u\0\277\352\14\230\0\0\0\0\2\\m}/\\oz\345\245\\o{\377\2" \
+  "\\o{\374Zn}3\354\0\0\0\0\1\\oz\261\245\\o{\377\2]o{\355]q{4\227\0\0\0" \
+  "\0\3\0\277\377\4\0\274\344f\0\274\344\337\274\0\274\344\377\3\0\275\344" \
+  "\352\0\274\344y\0\277\352\14\227\0\0\0\0\2]l|!\\o{\336\245\\o{\377\2" \
+  "\\o{\316@\200\200\4\352\0\0\0\0\1\\nzV\245\\o{\377\2\\o{\350[q}-\227" \
+  "\0\0\0\0\2\0\275\343Q\0\274\344\332\300\0\274\344\377\3\0\274\344\346" \
+  "\0\273\345b\0\200\377\2\226\0\0\0\0\2^q{\33]o{\327\245\\o{\377\1\\oz" \
+  "w\351\0\0\0\0\2`p\200\20\\o{\350\244\\o{\377\2\\o{\344\\o|'\226\0\0\0" \
+  "\0\2\0\271\342,\0\274\344\277\304\0\274\344\377\2\0\274\344\321\0\274" \
+  "\346=\226\0\0\0\0\2]t\200\26\\o{\322\244\\o{\377\2\\o{\366\\qx$\350\0" \
+  "\0\0\0\1\\pz\220\244\\o{\377\2\\o{\352[my*\225\0\0\0\0\3\0\306\343\11" \
+  "\0\273\344\204\0\274\344\371\306\0\274\344\377\3\0\274\344\376\0\274" \
+  "\345\233\0\270\343\22\225\0\0\0\0\2Yoz\27\\o{\333\244\\o{\377\1[p{\260" \
+  "\347\0\0\0\0\2Yly(\\o{\372\243\\o{\377\2\\o{\360Zpz0\225\0\0\0\0\2\0" \
+  "\274\3449\0\273\344\333\312\0\274\344\377\2\0\274\344\351\0\273\345O" \
+  "\225\0\0\0\0\2[m\200\34\\p{\340\244\\o{\377\1\\ozE\346\0\0\0\0\1\\o{" \
+  "\266\243\\o{\377\2\\o{\365]o}7\224\0\0\0\0\3\0\314\314\5\0\273\344\204" \
+  "\0\274\344\373\315\0\274\344\377\2\0\274\343\235\0\304\353\15\224\0\0" \
+  "\0\0\2\\qx$\\o{\352\243\\o{\377\2\\o{\323@\200\200\4\344\0\0\0\0\1]n" \
+  "|J\243\\o{\377\2\\o{\374\\o|N\224\0\0\0\0\2\0\275\346\37\0\274\345\313" \
+  "\320\0\274\344\377\2\0\274\344\334\0\272\3440\224\0\0\0\0\2]o}7\\o{\365" \
+  "\243\\o{\377\1]p|k\343\0\0\0\0\2UUU\3\\o{\326\243\\o{\377\1[ozs\224\0" \
+  "\0\0\0\2\0\274\343H\0\274\344\354\322\0\274\344\377\2\0\274\344\367\0" \
+  "\275\345a\224\0\0\0\0\2\\o|N\\o{\374\242\\o{\377\2\\o{\354Uww\17\342" \
+  "\0\0\0\0\1\\oz^\243\\o{\377\1\\oz\230\224\0\0\0\0\2\0\274\344y\0\274" \
+  "\344\375\325\0\274\344\377\2\0\273\344\227\0\277\377\4\223\0\0\0\0\1" \
+  "\\ozw\243\\o{\377\1\\p|\200\341\0\0\0\0\2@\200\200\4\\o{\335\242\\o{" \
+  "\377\2\\o{\305U\200\200\6\222\0\0\0\0\2\0\314\314\5\0\274\343\235\330" \
+  "\0\274\344\377\2\0\273\343\271\0\266\355\16\222\0\0\0\0\2\0\0\0\1\\o" \
+  "{\252\242\\o{\377\2\\o{\361Uq\200\22\340\0\0\0\0\1[o|e\242\\o{\377\2" \
+  "\\o{\347Xl\200\32\222\0\0\0\0\2\0\304\353\15\0\275\344\274\332\0\274" \
+  "\344\377\2\0\274\344\322\0\277\344\34\222\0\0\0\0\2Uj\200\14\\o{\325" \
+  "\242\\o{\377\1[n|\206\337\0\0\0\0\2U\200\200\6\\o|\341\241\\o{\377\2" \
+  "\\o{\374\\qy=\222\0\0\0\0\2\0\270\343\22\0\274\344\311\334\0\274\344" \
+  "\377\2\0\274\344\337\0\271\350!\222\0\0\0\0\2^ry&\\o{\362\241\\o{\377" \
+  "\2\\o{\364]t\200\26\336\0\0\0\0\1[o|e\242\\o{\377\1]o{\201\222\0\0\0" \
+  "\0\2\0\274\351\27\0\274\344\320\336\0\274\344\377\2\0\274\344\345\0\273" \
+  "\346)\222\0\0\0\0\1]pz`\242\\o{\377\1[p{\211\335\0\0\0\0\2\200\200\200" \
+  "\2\\o{\332\241\\o{\377\2[o|\306@\200\200\4\221\0\0\0\0\2\0\266\347\25" \
+  "\0\275\344\323\340\0\274\344\377\2\0\275\344\352\0\272\343%\222\0\0\0" \
+  "\0\1\\p|\251\241\\o{\377\2\\o{\357Uj\200\14\334\0\0\0\0\1^n{O\241\\o" \
+  "{\377\2\\o{\362Zqx\"\221\0\0\0\0\2\0\273\335\17\0\274\344\315\342\0\274" \
+  "\344\377\2\0\274\344\343\0\275\346\37\221\0\0\0\0\2Zix\21]o{\342\241" \
+  "\\o{\377\1\\p{r\334\0\0\0\0\1\\o{\277\241\\o{\377\1[o{j\221\0\0\0\0\2" \
+  "\0\263\346\12\0\274\344\306\344\0\274\344\377\2\0\273\344\333\0\277\337" \
+  "\30\221\0\0\0\0\1\\n|H\241\\o{\377\2\\o|\341@\200\200\4\332\0\0\0\0\1" \
+  "]o}7\241\\o{\377\2\\o{\303\200\200\200\2\220\0\0\0\0\2\0\200\377\2\0" \
+  "\273\344\261\346\0\274\344\377\2\0\273\344\310\0\263\346\12\221\0\0\0" \
+  "\0\1\\n{\244\241\\o{\377\1]nzX\332\0\0\0\0\1\\o{\246\240\\o{\377\2\\" \
+  "o{\370Yly(\221\0\0\0\0\1\0\275\345\207\350\0\274\344\377\2\0\275\344" \
+  "\255\0\377\377\1\220\0\0\0\0\2amy\25\\o{\353\240\\o{\377\1\\oz\312\331" \
+  "\0\0\0\0\2^ky\23\\o{\370\240\\o{\377\1\\p|\202\221\0\0\0\0\1\0\275\345" \
+  "a\352\0\274\344\377\1\0\274\344\205\221\0\0\0\0\1[pzb\241\\o{\377\1^" \
+  "oz.\330\0\0\0\0\1]o|q\240\\o{\377\2\\oz\343ff\200\12\220\0\0\0\0\2\0" \
+  "\273\3451\0\274\344\366\352\0\274\344\377\2\0\274\344\376\0\276\345N" \
+  "\220\0\0\0\0\2\200\200\200\2\\o{\313\240\\o{\377\1\\o{\225\330\0\0\0" \
+  "\0\1\\o{\325\240\\o{\377\1\\p{[\220\0\0\0\0\2\0\303\341\21\0\274\344" \
+  "\335\354\0\274\344\377\2\0\274\344\356\0\277\347\40\220\0\0\0\0\2^o{" \
+  "<\\o{\376\237\\o{\377\2\\o{\357Uqq\11\326\0\0\0\0\1^o{<\240\\o{\377\2" \
+  "\\oz\310\0\0\0\1\220\0\0\0\0\1\0\274\344\252\356\0\274\344\377\2\0\274" \
+  "\344\312\0\314\314\5\220\0\0\0\0\1\\o|\247\240\\o{\377\1]n{]\326\0\0" \
+  "\0\0\1\\o{\236\240\\o{\377\1ZnzA\220\0\0\0\0\1\0\275\344]\360\0\274\344" \
+  "\377\1\0\274\343\201\220\0\0\0\0\2\\qx$\\o{\373\237\\o{\377\1\\o{\301" \
+  "\325\0\0\0\0\2mmm\7\\o{\360\237\\o{\377\1\\o{\277\220\0\0\0\0\2\0\273" \
+  "\346\36\0\274\344\357\257\0\274\344\377\7\0\274\344\370\0\274\344\306" \
+  "\0\274\344\231\0\275\344p\0\276\343J\0\276\3463\0\271\345\35\202\0\303" \
+  "\341\21\11\0\0\0\0\0\266\355\16\0\271\345\35\0\271\342,\0\276\343J\0" \
+  "\274\345k\0\273\344\217\0\274\345\301\0\274\344\363\257\0\274\344\377" \
+  "\2\0\274\344\372\0\276\3463\220\0\0\0\0\1]n{\235\237\\o{\377\2\\o{\375" \
+  "^q{\33\324\0\0\0\0\1]q{M\240\\o{\377\1^o{<\220\0\0\0\0\1\0\274\344\264" \
+  "\255\0\274\344\377\4\0\274\344\317\0\273\343\200\0\275\345:\0\266\333" \
+  "\7\220\0\0\0\0\5\0\252\377\3\0\273\3451\0\274\344y\0\274\345\301\0\274" \
+  "\344\374\254\0\274\344\377\2\0\274\344\315\0\377\377\1\217\0\0\0\0\2" \
+  "]l|!\\o{\371\237\\o{\377\1[p{p\324\0\0\0\0\1\\n{\244\237\\o{\377\1\\" \
+  "o{\272\220\0\0\0\0\1\0\273\344V\253\0\274\344\377\3\0\274\344\341\0\275" \
+  "\345\177\0\277\347\40\230\0\0\0\0\3\0\272\342\32\0\274\344r\0\274\344" \
+  "\337\251\0\274\344\377\2\0\274\344\371\0\273\343S\221\0\0\0\0\1\\n{\233" \
+  "\237\\o{\377\1[o|\306\323\0\0\0\0\2``\200\10\\o{\362\237\\o{\377\1]o" \
+  "zG\217\0\0\0\0\2\0\266\355\16\0\274\344\346\251\0\274\344\377\3\0\274" \
+  "\344\307\0\274\344L\0\200\377\2\233\0\0\0\0\2\0\274\3425\0\274\344\360" \
+  "\250\0\274\344\377\2\0\274\344\371\0\273\343S\222\0\0\0\0\2]p|)\\o{\375" \
+  "\236\\o{\377\2\\o{\376^ow\36\322\0\0\0\0\1]p|R\237\\o{\377\2\\o{\325" \
+  "\0\0\0\1\217\0\0\0\0\1\0\275\345\207\250\0\274\344\377\2\0\274\344\316" \
+  "\0\272\344C\235\0\0\0\0\2\0\274\3425\0\274\344\360\250\0\274\344\377" \
+  "\2\0\274\344\371\0\273\343S\224\0\0\0\0\1[p{\260\237\\o{\377\1[ozs\322" \
+  "\0\0\0\0\1\\o{\236\237\\o{\377\1]pz`\217\0\0\0\0\2\0\273\346\36\0\274" \
+  "\344\367\246\0\274\344\377\3\0\274\344\346\0\273\345b\0\200\377\2\235" \
+  "\0\0\0\0\2\0\272\3424\0\274\344\360\250\0\274\344\377\2\0\274\344\371" \
+  "\0\273\343R\225\0\0\0\0\1\\p|@\237\\o{\377\1\\o{\277\321\0\0\0\0\2\0" \
+  "\0\0\1\\oz\345\236\\o{\377\2\\o{\354mmm\7\217\0\0\0\0\1\0\274\344\243" \
+  "\246\0\274\344\377\2\0\274\344\243\0\303\341\21\236\0\0\0\0\2\0\272\342" \
+  "4\0\274\344\360\250\0\274\344\377\2\0\274\344\371\0\273\343R\227\0\0" \
+  "\0\0\1\\o{\321\236\\o{\377\2\\o{\372[m\200\16\320\0\0\0\0\1\\m}/\237" \
+  "\\o{\377\1]o{\217\217\0\0\0\0\2\0\276\345'\0\274\344\375\244\0\274\344" \
+  "\377\2\0\274\343\361\0\273\343S\237\0\0\0\0\2\0\272\3424\0\274\344\357" \
+  "\250\0\274\344\377\2\0\274\344\371\0\273\343R\230\0\0\0\0\1]p|k\237\\" \
+  "o{\377\1\\p|P\320\0\0\0\0\1[o{x\237\\o{\377\1[my*\217\0\0\0\0\1\0\274" \
+  "\345\244\244\0\274\344\377\2\0\274\344\326\0\276\345'\237\0\0\0\0\2\0" \
+  "\276\3463\0\274\344\357\250\0\274\344\377\2\0\274\344\371\0\273\343R" \
+  "\231\0\0\0\0\2`p\200\20\\o{\366\236\\o{\377\1\\p{\231\320\0\0\0\0\1\\" \
+  "o{\301\236\\o{\377\1\\o{\303\217\0\0\0\0\2\0\277\343$\0\274\344\374\243" \
+  "\0\274\344\377\2\0\274\344\273\0\304\353\15\237\0\0\0\0\2\0\276\3463" \
+  "\0\274\344\357\250\0\274\344\377\2\0\274\344\371\0\273\343R\233\0\0\0" \
+  "\0\1[p{\242\236\\o{\377\1\\o|\341\317\0\0\0\0\2ff\200\12\\o{\372\236" \
+  "\\o{\377\1\\p|i\217\0\0\0\0\1\0\275\345\222\243\0\274\344\377\2\0\275" \
+  "\344\255\0\252\325\6\237\0\0\0\0\2\0\276\3463\0\274\344\356\250\0\274" \
+  "\344\377\2\0\274\344\371\0\273\343R\234\0\0\0\0\1[m|F\237\\o{\377\1^" \
+  "ry&\316\0\0\0\0\1]my\77\236\\o{\377\2\\o{\374]t\200\26\216\0\0\0\0\2" \
+  "\0\277\337\20\0\274\344\363\242\0\274\344\377\2\0\273\343\246\0\252\377" \
+  "\3\237\0\0\0\0\2\0\275\3462\0\274\344\356\250\0\274\344\377\2\0\274\344" \
+  "\371\0\273\343R\235\0\0\0\0\2fff\5\\o{\353\236\\o{\377\1\\n|a\316\0\0" \
+  "\0\0\1\\o{z\236\\o{\377\1[n{\273\217\0\0\0\0\1\0\273\344q\242\0\274\344" \
+  "\377\2\0\274\344\275\0\252\325\6\237\0\0\0\0\2\0\275\3462\0\274\344\356" \
+  "\250\0\274\344\377\2\0\274\344\371\0\273\343R\237\0\0\0\0\1]o{\232\236" \
+  "\\o{\377\1\\o{\234\316\0\0\0\0\1\\o{\265\236\\o{\377\1[o|e\217\0\0\0" \
+  "\0\1\0\274\345\324\241\0\274\344\377\2\0\273\344\310\0\273\335\17\237" \
+  "\0\0\0\0\2\0\275\3462\0\274\344\355\250\0\274\344\377\2\0\274\344\371" \
+  "\0\273\343R\240\0\0\0\0\1[nzC\236\\o{\377\1\\o{\330\315\0\0\0\0\2\0\0" \
+  "\0\1]o{\355\235\\o{\377\2\\o{\376Xl\200\32\216\0\0\0\0\1\0\275\3436\241" \
+  "\0\274\344\377\2\0\274\344\346\0\271\350\26\237\0\0\0\0\2\0\273\3451" \
+  "\0\274\344\355\250\0\274\344\377\2\0\274\344\371\0\273\343R\241\0\0\0" \
+  "\0\2fff\5\\o{\361\235\\o{\377\2\\o{\376Ys\200\24\314\0\0\0\0\1[my*\236" \
+  "\\o{\377\1\\o{\321\217\0\0\0\0\1\0\275\344\226\240\0\274\344\377\2\0" \
+  "\274\344\374\0\275\344B\237\0\0\0\0\2\0\273\3451\0\274\344\354\250\0" \
+  "\274\344\377\2\0\274\344\371\0\273\343R\223\0\0\0\0\1\0\377\377\1\217" \
+  "\0\0\0\0\1\\oz\257\236\\o{\377\1]q{M\314\0\0\0\0\1[ozZ\236\\o{\377\1" \
+  "]o{\207\216\0\0\0\0\2\0\252\377\3\0\275\344\352\240\0\274\344\377\1\0" \
+  "\273\344\204\237\0\0\0\0\2\0\272\3440\0\274\344\354\250\0\274\344\377" \
+  "\2\0\274\344\371\0\273\343R\223\0\0\0\0\3\0\252\325\6\0\274\344\252\0" \
+  "\274\344\23\216\0\0\0\0\1]n{f\236\\o{\377\1[o{~\314\0\0\0\0\1]o{\207" \
+  "\236\\o{\377\1ZnzA\216\0\0\0\0\1\0\275\344B\240\0\274\344\377\2\0\274" \
+  "\344\314\0\252\377\3\236\0\0\0\0\2\0\272\3440\0\274\344\354\250\0\274" \
+  "\344\377\2\0\274\344\371\0\273\343R\223\0\0\0\0\4\0\252\325\6\0\274\345" \
+  "\256\0\274\344\377\0\274\344_\216\0\0\0\0\1Zk{\37\236\\o{\377\1\\nz\253" \
+  "\314\0\0\0\0\1\\o{\266\235\\o{\377\2\\o{\371``\200\10\216\0\0\0\0\1\0" \
+  "\273\343\223\237\0\274\344\377\2\0\274\344\376\0\273\3448\236\0\0\0\0" \
+  "\2\0\272\3440\0\274\344\353\250\0\274\344\377\2\0\274\344\371\0\273\343" \
+  "R\223\0\0\0\0\2\0\252\325\6\0\274\345\256\202\0\274\344\377\1\0\274\343" \
+  "\257\217\0\0\0\0\1[o{\337\235\\o{\377\1\\o{\330\314\0\0\0\0\1\\o{\344" \
+  "\235\\o{\377\1\\o{\307\217\0\0\0\0\1\0\274\344\337\237\0\274\344\377" \
+  "\1\0\274\344\237\236\0\0\0\0\2\0\276\344/\0\274\344\353\250\0\274\344" \
+  "\377\2\0\274\344\371\0\273\343R\223\0\0\0\0\2\0\252\325\6\0\274\345\256" \
+  "\203\0\274\344\377\2\0\274\344\364\0\306\343\11\216\0\0\0\0\1\\n{\244" \
+  "\235\\o{\377\2\\o{\374Uqq\11\312\0\0\0\0\1Uq\200\22\236\\o{\377\1\\n" \
+  "{\215\216\0\0\0\0\1\0\277\343$\237\0\274\344\377\2\0\274\344\363\0\266" \
+  "\347\25\235\0\0\0\0\2\0\276\344/\0\274\344\353\250\0\274\344\377\2\0" \
+  "\274\344\371\0\273\343R\223\0\0\0\0\2\0\252\325\6\0\274\345\256\205\0" \
+  "\274\344\377\1\0\276\343J\216\0\0\0\0\1\\p|i\236\\o{\377\1Zn}3\312\0" \
+  "\0\0\0\1^o{<\236\\o{\377\1[n{Q\216\0\0\0\0\1\0\273\344i\237\0\274\344" \
+  "\377\1\0\273\343\213\235\0\0\0\0\2\0\276\344/\0\275\344\352\250\0\274" \
+  "\344\377\2\0\274\344\371\0\275\343Q\223\0\0\0\0\2\0\252\325\6\0\274\345" \
+  "\256\206\0\274\344\377\1\0\274\345\210\216\0\0\0\0\1\\m}/\236\\o{\377" \
+  "\1\\oz^\312\0\0\0\0\1[oz\\\236\\o{\377\1]l|!\216\0\0\0\0\1\0\274\344" \
+  "\252\236\0\274\344\377\2\0\274\344\371\0\277\344\34\234\0\0\0\0\2\0\274" \
+  "\343.\0\275\344\352\250\0\274\344\377\2\0\274\344\371\0\275\343Q\223" \
+  "\0\0\0\0\2\0\252\325\6\0\274\345\256\207\0\274\344\377\1\0\274\344\303" \
+  "\216\0\0\0\0\2@\200\200\4\\o{\370\235\\o{\377\1[o{~\312\0\0\0\0\1]o{" \
+  "|\235\\o{\377\2\\o{\362\0\0\0\1\216\0\0\0\0\1\0\274\344\340\236\0\274" \
+  "\344\377\1\0\274\344\237\234\0\0\0\0\2\0\274\343.\0\275\344\352\250\0" \
+  "\274\344\377\2\0\274\344\371\0\275\343Q\223\0\0\0\0\2\0\252\325\6\0\274" \
+  "\345\256\210\0\274\344\377\2\0\274\344\367\0\277\337\10\216\0\0\0\0\1" \
+  "\\o{\317\235\\o{\377\1[o{\237\312\0\0\0\0\1\\o{\234\235\\o{\377\1\\o" \
+  "{\305\216\0\0\0\0\1\0\277\337\30\237\0\274\344\377\1\0\275\3436\233\0" \
+  "\0\0\0\2\0\273\343-\0\275\344\352\250\0\274\344\377\2\0\274\344\371\0" \
+  "\275\343Q\223\0\0\0\0\2\0\252\325\6\0\274\345\256\212\0\274\344\377\1" \
+  "\0\273\346<\216\0\0\0\0\1[p{\242\235\\o{\377\1\\o{\301\312\0\0\0\0\1" \
+  "\\o{\275\235\\o{\377\1\\oz\226\216\0\0\0\0\1\0\276\345N\236\0\274\344" \
+  "\377\1\0\273\344\333\233\0\0\0\0\2\0\271\342,\0\275\344\352\250\0\274" \
+  "\344\377\2\0\274\344\371\0\275\343Q\223\0\0\0\0\2\0\252\325\6\0\274\345" \
+  "\256\213\0\274\344\377\1\0\275\344p\216\0\0\0\0\1]n{v\235\\o{\377\1\\" \
+  "o|\341\312\0\0\0\0\1\\o{\335\235\\o{\377\1\\p{r\216\0\0\0\0\1\0\275\344" \
+  "{\236\0\274\344\377\1\0\273\344\204\232\0\0\0\0\2\0\271\342,\0\275\344" \
+  "\352\250\0\274\344\377\2\0\274\344\371\0\275\343Q\223\0\0\0\0\2\0\252" \
+  "\325\6\0\274\345\256\214\0\274\344\377\1\0\274\344\231\216\0\0\0\0\1" \
+  "\\p|P\235\\o{\377\2\\o{\374fff\5\311\0\0\0\0\1\\o{\366\235\\o{\377\1" \
+  "[n{Q\216\0\0\0\0\1\0\275\345\245\236\0\274\344\377\1\0\273\343-\231\0" \
+  "\0\0\0\2\0\276\341+\0\275\344\352\250\0\274\344\377\2\0\274\344\371\0" \
+  "\275\343Q\223\0\0\0\0\2\0\252\325\6\0\274\343\257\215\0\274\344\377\1" \
+  "\0\274\344\303\216\0\0\0\0\1\\m}/\236\\o{\377\1Xl\200\32\310\0\0\0\0" \
+  "\1ff\200\12\236\\o{\377\1^m}1\216\0\0\0\0\1\0\274\344\322\235\0\274\344" \
+  "\377\1\0\274\344\351\231\0\0\0\0\2\0\270\340\31\0\274\344\343\250\0\274" \
+  "\344\377\2\0\274\344\371\0\275\343Q\223\0\0\0\0\2\0\252\325\6\0\274\343" \
+  "\257\216\0\274\344\377\1\0\274\344\355\216\0\0\0\0\1Uww\17\236\\o{\377" \
+  "\1^oz.\310\0\0\0\0\1Xr{\35\236\\o{\377\1Zix\21\216\0\0\0\0\1\0\274\344" \
+  "\362\235\0\274\344\377\1\0\274\344\253\230\0\0\0\0\2\0\277\337\10\0\273" \
+  "\344\310\250\0\274\344\377\2\0\274\344\371\0\275\343Q\223\0\0\0\0\2\0" \
+  "\252\325\6\0\274\343\257\220\0\274\344\377\1\0\271\350\26\216\0\0\0\0" \
+  "\1\\o{\356\235\\o{\377\1]p|B\310\0\0\0\0\1\\pz2\235\\o{\377\1\\o{\370" \
+  "\216\0\0\0\0\1\0\303\341\21\236\0\274\344\377\1\0\273\343m\230\0\0\0" \
+  "\0\1\0\274\345\210\250\0\274\344\377\2\0\274\344\371\0\275\343Q\223\0" \
+  "\0\0\0\2\0\252\325\6\0\274\343\257\221\0\274\344\377\1\0\272\3424\216" \
+  "\0\0\0\0\1\\o{\325\235\\o{\377\1[p|T\310\0\0\0\0\1^q|D\235\\o{\377\1" \
+  "\\oz\345\216\0\0\0\0\1\0\272\3440\236\0\274\344\377\1\0\274\3449\227" \
+  "\0\0\0\0\2\0\271\345\35\0\274\344\367\247\0\274\344\377\2\0\274\344\371" \
+  "\0\275\343Q\223\0\0\0\0\2\0\252\325\6\0\274\343\257\222\0\274\344\377" \
+  "\1\0\274\344L\216\0\0\0\0\1\\o{\277\235\\o{\377\1]n{h\310\0\0\0\0\1\\" \
+  "nzV\235\\o{\377\1\\o{\321\216\0\0\0\0\1\0\273\342G\236\0\274\344\377" \
+  "\1\0\270\343\22\227\0\0\0\0\1\0\274\343\234\247\0\274\344\377\2\0\274" \
+  "\344\371\0\275\343Q\223\0\0\0\0\2\0\252\325\6\0\274\343\257\223\0\274" \
+  "\344\377\1\0\274\345c\216\0\0\0\0\1[oz\255\235\\o{\377\1[pz{\310\0\0" \
+  "\0\0\1\\oz^\235\\o{\377\1\\o{\275\216\0\0\0\0\1\0\275\345Y\235\0\274" \
+  "\344\377\1\0\274\344\355\227\0\0\0\0\2\0\266\333\7\0\274\344\363\246" \
+  "\0\274\344\377\2\0\274\344\371\0\275\343Q\223\0\0\0\0\2\0\252\325\6\0" \
+  "\274\343\257\224\0\274\344\377\1\0\273\344|\216\0\0\0\0\1\\n{\233\235" \
+  "\\o{\377\1]o{\207\310\0\0\0\0\1\\p|i\235\\o{\377\1\\oz\261\216\0\0\0" \
+  "\0\1\0\275\345l\235\0\274\344\377\1\0\274\344\312\227\0\0\0\0\1\0\276" \
+  "\343J\246\0\274\344\377\2\0\274\344\371\0\275\343Q\223\0\0\0\0\2\0\252" \
+  "\325\6\0\274\343\257\225\0\274\344\377\1\0\274\345\221\216\0\0\0\0\1" \
+  "\\o|\210\235\\o{\377\1]o{\207\310\0\0\0\0\1\\p|i\235\\o{\377\1]o|\245" \
+  "\216\0\0\0\0\1\0\273\343x\235\0\274\344\377\1\0\274\344\264\227\0\0\0" \
+  "\0\1\0\274\343\224\245\0\274\344\377\2\0\274\344\371\0\275\343Q\223\0" \
+  "\0\0\0\2\0\252\325\6\0\274\343\260\226\0\274\344\377\1\0\275\344\226" \
+  "\216\0\0\0\0\1]o{\207\235\\o{\377\1\\o{\225\310\0\0\0\0\1]n{v\235\\o" \
+  "{\377\1]o|\245\216\0\0\0\0\1\0\274\343\201\235\0\274\344\377\1\0\274" \
+  "\344\250\227\0\0\0\0\1\0\275\344\300\244\0\274\344\377\2\0\274\344\371" \
+  "\0\275\343Q\223\0\0\0\0\2\0\252\325\6\0\274\343\260\227\0\274\344\377" \
+  "\1\0\274\344\241\216\0\0\0\0\1\\o{z\235\\o{\377\1\\oz\226\310\0\0\0\0" \
+  "\1[o{x\235\\o{\377\1\\p{\231\216\0\0\0\0\1\0\275\345\207\235\0\274\344" \
+  "\377\1\0\274\343\234\227\0\0\0\0\1\0\274\344\331\243\0\274\344\377\2" \
+  "\0\274\344\371\0\274\346P\223\0\0\0\0\2\0\252\325\6\0\274\343\260\230" \
+  "\0\274\344\377\1\0\275\345\245\216\0\0\0\0\1[o{x\235\\o{\377\1\\p{\240" \
+  "\310\0\0\0\0\1[o{x\235\\o{\377\1\\oz\226\216\0\0\0\0\1\0\275\345\207" \
+  "\235\0\274\344\377\1\0\275\344\226\227\0\0\0\0\1\0\274\344\341\242\0" \
+  "\274\344\377\2\0\274\344\371\0\274\346P\223\0\0\0\0\2\0\252\325\6\0\274" \
+  "\343\260\231\0\274\344\377\1\0\275\344\251\216\0\0\0\0\1[ozs\235\\o{" \
+  "\377\1]o|\245\310\0\0\0\0\1[o{x\235\\o{\377\1\\p{\231\216\0\0\0\0\1\0" \
+  "\275\345\207\235\0\274\344\377\1\0\274\343\234\227\0\0\0\0\1\0\274\344" \
+  "\331\241\0\274\344\377\2\0\274\344\371\0\274\346P\223\0\0\0\0\2\0\252" \
+  "\325\6\0\274\343\260\232\0\274\344\377\1\0\274\344\254\216\0\0\0\0\1" \
+  "[o{x\235\\o{\377\1\\o{\234\310\0\0\0\0\1[n|m\235\\o{\377\1]o|\245\216" \
+  "\0\0\0\0\1\0\274\343\201\235\0\274\344\377\1\0\274\344\250\227\0\0\0" \
+  "\0\1\0\275\344\300\240\0\274\344\377\2\0\274\344\371\0\274\346P\223\0" \
+  "\0\0\0\2\0\252\325\6\0\274\343\260\233\0\274\344\377\1\0\273\344\242" \
+  "\216\0\0\0\0\1]pzy\235\\o{\377\1\\oz\226\310\0\0\0\0\1\\p|i\235\\o{\377" \
+  "\1]o|\245\216\0\0\0\0\1\0\273\343x\235\0\274\344\377\1\0\274\344\264" \
+  "\227\0\0\0\0\1\0\274\343\224\237\0\274\344\377\2\0\274\344\371\0\274" \
+  "\346P\223\0\0\0\0\2\0\252\325\6\0\274\343\260\234\0\274\344\377\1\0\275" \
+  "\344\226\216\0\0\0\0\1]o{\207\235\\o{\377\1\\o|\210\310\0\0\0\0\1[oz" \
+  "Z\235\\o{\377\1[p{\260\216\0\0\0\0\1\0\275\345l\235\0\274\344\377\1\0" \
+  "\274\344\312\227\0\0\0\0\1\0\273\344K\236\0\274\344\377\2\0\274\344\371" \
+  "\0\274\346P\224\0\0\0\0\1\0\274\344\220\235\0\274\344\377\1\0\274\343" \
+  "\211\216\0\0\0\0\1\\o|\210\235\\o{\377\1[o{\203\310\0\0\0\0\1\\nzV\235" \
+  "\\o{\377\1\\o{\275\216\0\0\0\0\1\0\275\345Y\235\0\274\344\377\1\0\274" \
+  "\344\356\227\0\0\0\0\2\0\266\333\7\0\274\344\363\234\0\274\344\377\2" \
+  "\0\274\344\371\0\274\346P\225\0\0\0\0\1\0\274\344\306\235\0\274\344\377" \
+  "\1\0\275\345\177\216\0\0\0\0\1\\n{\233\235\\o{\377\1[o{x\310\0\0\0\0" \
+  "\1\\pzK\235\\o{\377\1\\o{\321\216\0\0\0\0\1\0\275\346F\236\0\274\344" \
+  "\377\1\0\270\343\22\227\0\0\0\0\1\0\274\343\235\233\0\274\344\377\2\0" \
+  "\274\344\371\0\274\346P\226\0\0\0\0\1\0\275\344\352\235\0\274\344\377" \
+  "\1\0\274\345j\216\0\0\0\0\1[oz\255\235\\o{\377\1[p{p\310\0\0\0\0\1[n" \
+  "zC\235\\o{\377\1\\oz\345\216\0\0\0\0\1\0\272\3440\236\0\274\344\377\1" \
+  "\0\274\3449\227\0\0\0\0\2\0\273\346\36\0\274\344\367\231\0\274\344\377" \
+  "\2\0\274\344\371\0\274\346P\226\0\0\0\0\1\0\274\344\23\236\0\274\344" \
+  "\377\1\0\274\344L\216\0\0\0\0\1\\o{\277\235\\o{\377\1\\p|i\310\0\0\0" \
+  "\0\1[m{8\235\\o{\377\1\\o{\367\216\0\0\0\0\1\0\303\341\21\236\0\274\344" \
+  "\377\1\0\273\343m\230\0\0\0\0\1\0\274\343\211\230\0\274\344\377\2\0\274" \
+  "\344\371\0\274\346P\227\0\0\0\0\1\0\276\343J\236\0\274\344\377\1\0\272" \
+  "\3440\216\0\0\0\0\1\\o{\325\235\\o{\377\1\\p{[\310\0\0\0\0\1Zk{\37\236" \
+  "\\o{\377\1^ky\23\216\0\0\0\0\1\0\274\344\362\235\0\274\344\377\1\0\274" \
+  "\344\253\230\0\0\0\0\2\0\263\346\12\0\273\344\310\226\0\274\344\377\2" \
+  "\0\274\344\371\0\274\346P\230\0\0\0\0\1\0\274\344\205\236\0\274\344\377" \
+  "\1\0\274\344\23\216\0\0\0\0\1\\o{\356\235\\o{\377\1[nzC\310\0\0\0\0\2" \
+  "U\200\200\6\\o{\376\235\\o{\377\1Zn}3\216\0\0\0\0\1\0\274\344\321\235" \
+  "\0\274\344\377\2\0\274\344\351\0\377\377\1\230\0\0\0\0\2\0\275\343\33" \
+  "\0\274\344\343\224\0\274\344\377\2\0\274\344\371\0\274\346P\231\0\0\0" \
+  "\0\1\0\275\344\300\235\0\274\344\377\1\0\274\344\363\216\0\0\0\0\1Uw" \
+  "w\17\236\\o{\377\1Yly(\311\0\0\0\0\1\\o{\351\235\\o{\377\1[p|T\216\0" \
+  "\0\0\0\1\0\275\345\245\236\0\274\344\377\1\0\273\343-\231\0\0\0\0\2\0" \
+  "\276\345'\0\274\344\332\222\0\274\344\377\2\0\274\344\355\0\274\345E" \
+  "\231\0\0\0\0\2\0\270\343\22\0\274\344\372\235\0\274\344\377\1\0\274\344" \
+  "\311\216\0\0\0\0\1\\m}/\236\\o{\377\1[m\200\16\311\0\0\0\0\1\\o{\316" \
+  "\235\\o{\377\1\\n{t\216\0\0\0\0\1\0\275\344{\236\0\274\344\377\1\0\273" \
+  "\344\204\232\0\0\0\0\2\0\303\341\21\0\274\345\270\220\0\274\344\377\2" \
+  "\0\274\345\324\0\277\343$\232\0\0\0\0\1\0\275\344`\236\0\274\344\377" \
+  "\1\0\274\344\231\216\0\0\0\0\1^n{O\235\\o{\377\1\\o{\363\312\0\0\0\0" \
+  "\1\\o{\264\235\\o{\377\1\\p{\231\216\0\0\0\0\1\0\276\345N\236\0\274\344" \
+  "\377\1\0\274\344\334\233\0\0\0\0\3\0\377\377\1\0\274\345X\0\273\344\333" \
+  "\214\0\274\344\377\3\0\274\344\353\0\273\344q\0\252\325\6\233\0\0\0\0" \
+  "\1\0\274\344\262\236\0\274\344\377\1\0\275\345l\216\0\0\0\0\1\\ozu\235" \
+  "\\o{\377\1\\o{\330\312\0\0\0\0\1]o{\232\235\\o{\377\1[o|\306\216\0\0" \
+  "\0\0\1\0\277\337\30\237\0\274\344\377\1\0\275\3436\234\0\0\0\0\4\0\252" \
+  "\325\6\0\275\344]\0\275\344\255\0\274\344\364\206\0\274\344\377\4\0\274" \
+  "\344\372\0\274\344\273\0\273\343m\0\277\337\20\234\0\0\0\0\2\0\270\340" \
+  "\31\0\274\344\373\236\0\274\344\377\1\0\273\346<\216\0\0\0\0\1[p{\242" \
+  "\235\\o{\377\1\\o{\274\312\0\0\0\0\1\\nz\177\235\\o{\377\2\\o{\362\0" \
+  "\0\0\1\216\0\0\0\0\1\0\274\344\337\236\0\274\344\377\1\0\274\344\237" \
+  "\237\0\0\0\0\10\0\277\337\10\0\275\345:\0\274\344_\0\275\344p\0\274\344" \
+  "s\0\273\345b\0\274\344A\0\273\335\17\237\0\0\0\0\1\0\275\345\177\236" \
+  "\0\274\344\377\2\0\274\344\373\0\304\353\15\216\0\0\0\0\1\\o{\317\235" \
+  "\\o{\377\1[p{\242\312\0\0\0\0\1\\oz^\236\\o{\377\1]l|!\216\0\0\0\0\1" \
+  "\0\274\344\252\236\0\274\344\377\2\0\274\344\371\0\277\344\34\304\0\0" \
+  "\0\0\2\0\277\377\4\0\274\344\344\236\0\274\344\377\1\0\274\344\307\216" \
+  "\0\0\0\0\2@\200\200\4\\o{\370\235\\o{\377\1]n|\204\312\0\0\0\0\1Zn}3" \
+  "\236\\o{\377\1\\o{S\216\0\0\0\0\1\0\273\344i\237\0\274\344\377\1\0\274" \
+  "\344\214\304\0\0\0\0\1\0\274\344f\237\0\274\344\377\1\0\274\344\205\216" \
+  "\0\0\0\0\1\\m}/\236\\o{\377\1[o{W\312\0\0\0\0\2Uqq\11\\o{\375\235\\o" \
+  "{\377\1\\n{\215\216\0\0\0\0\1\0\277\343$\237\0\274\344\377\2\0\274\344" \
+  "\363\0\271\350\26\302\0\0\0\0\2\0\277\337\10\0\274\344\343\237\0\274" \
+  "\344\377\1\0\274\345D\216\0\0\0\0\1[o{j\236\\o{\377\1[my*\313\0\0\0\0" \
+  "\1\\o{\333\235\\o{\377\1\\oz\310\217\0\0\0\0\1\0\274\343\336\237\0\274" \
+  "\344\377\1\0\274\344\240\302\0\0\0\0\1\0\274\344r\237\0\274\344\377\2" \
+  "\0\274\344\370\0\306\343\11\216\0\0\0\0\1\\n{\244\235\\o{\377\2\\o{\370" \
+  "@\200\200\4\313\0\0\0\0\1\\o{\256\235\\o{\377\2\\o{\371``\200\10\216" \
+  "\0\0\0\0\1\0\273\343\223\237\0\274\344\377\2\0\274\344\376\0\273\344" \
+  "8\300\0\0\0\0\2\0\277\344\34\0\274\344\362\237\0\274\344\377\1\0\274" \
+  "\344\263\217\0\0\0\0\1[o{\337\235\\o{\377\1\\o{\317\314\0\0\0\0\1]o{" \
+  "\201\236\\o{\377\1]p|B\216\0\0\0\0\1\0\273\343@\240\0\274\344\377\2\0" \
+  "\274\344\314\0\252\377\3\277\0\0\0\0\1\0\274\343\260\240\0\274\344\377" \
+  "\1\0\274\344_\216\0\0\0\0\1Zk{\37\236\\o{\377\1]o|\245\314\0\0\0\0\1" \
+  "[p|T\236\\o{\377\1[p{\211\216\0\0\0\0\2\0\252\377\3\0\275\344\352\240" \
+  "\0\274\344\377\1\0\273\344\204\276\0\0\0\0\1\0\274\345X\240\0\274\344" \
+  "\377\2\0\274\344\371\0\277\337\20\216\0\0\0\0\1]n{h\236\\o{\377\1[o{" \
+  "x\314\0\0\0\0\1Yly(\236\\o{\377\1\\o{\322\217\0\0\0\0\1\0\275\344\226" \
+  "\240\0\274\344\377\2\0\274\344\374\0\275\344B\274\0\0\0\0\2\0\274\344" \
+  "&\0\274\343\361\240\0\274\344\377\1\0\273\344\265\217\0\0\0\0\1\\oz\257" \
+  "\236\\o{\377\1\\pzK\314\0\0\0\0\2\200\200\200\2\\o{\356\235\\o{\377\2" \
+  "\\o{\376Xl\200\32\216\0\0\0\0\1\0\275\3436\241\0\274\344\377\2\0\274" \
+  "\344\346\0\271\350\26\272\0\0\0\0\2\0\263\346\12\0\274\344\322\241\0" \
+  "\274\344\377\1\0\274\343\\\216\0\0\0\0\2fff\5\\o{\360\235\\o{\377\2\\" \
+  "o{\376Ys\200\24\315\0\0\0\0\1\\n{\262\236\\o{\377\1\\o|g\217\0\0\0\0" \
+  "\1\0\274\345\324\241\0\274\344\377\2\0\273\344\310\0\277\352\14\270\0" \
+  "\0\0\0\2\0\252\377\3\0\274\344\252\241\0\274\344\377\2\0\274\344\353" \
+  "\0\306\343\11\216\0\0\0\0\1^q|D\236\\o{\377\1[o{\324\316\0\0\0\0\1\\" \
+  "n{t\236\\o{\377\1\\o{\274\217\0\0\0\0\1\0\274\344r\242\0\274\344\377" \
+  "\2\0\274\344\275\0\252\325\6\267\0\0\0\0\1\0\275\344\226\242\0\274\344" \
+  "\377\1\0\273\343\213\217\0\0\0\0\1]o{\232\236\\o{\377\1\\oz\226\316\0" \
+  "\0\0\0\1]q{4\236\\o{\377\2\\o{\374Yoz\27\216\0\0\0\0\2\0\277\337\20\0" \
+  "\274\344\363\242\0\274\344\377\2\0\275\345\245\0\252\377\3\265\0\0\0" \
+  "\0\1\0\273\343\200\242\0\274\344\377\2\0\274\344\375\0\277\343$\216\0" \
+  "\0\0\0\2@\200\200\4\\o{\353\236\\o{\377\1[o{W\316\0\0\0\0\2UUU\3\\o{" \
+  "\361\236\\o{\377\1]n{h\217\0\0\0\0\1\0\275\345\222\243\0\274\344\377" \
+  "\2\0\274\345\256\0\277\337\10\262\0\0\0\0\2\0\377\377\1\0\273\344\217" \
+  "\243\0\274\344\377\1\0\274\345\267\217\0\0\0\0\1\\ozE\237\\o{\377\1\\" \
+  "pz\31\317\0\0\0\0\1\\o{\266\236\\o{\377\1[o|\306\217\0\0\0\0\2\0\277" \
+  "\343$\0\274\344\373\243\0\274\344\377\2\0\274\344\303\0\303\341\21\260" \
+  "\0\0\0\0\2\0\252\325\6\0\274\344\250\244\0\274\344\377\1\0\273\343@\217" \
+  "\0\0\0\0\1\\n{\244\236\\o{\377\1\\n{\331\320\0\0\0\0\1\\ozw\237\\o{\377" \
+  "\1]nz,\217\0\0\0\0\1\0\274\344\243\244\0\274\344\377\2\0\274\345\324" \
+  "\0\271\346(\256\0\0\0\0\2\0\277\337\30\0\275\344\300\244\0\274\344\377" \
+  "\1\0\274\345\301\217\0\0\0\0\2`p\200\20\\o{\366\236\\o{\377\1]o{\232" \
+  "\320\0\0\0\0\1[o}5\237\\o{\377\1]o{\217\217\0\0\0\0\2\0\276\345'\0\274" \
+  "\344\374\244\0\274\344\377\2\0\274\344\363\0\275\344`\254\0\0\0\0\2\0" \
+  "\275\346F\0\274\344\351\245\0\274\344\377\1\0\275\344B\217\0\0\0\0\1" \
+  "[o{j\237\\o{\377\1\\p{Y\320\0\0\0\0\2\0\0\0\1\\oz\343\236\\o{\377\2\\" \
+  "o{\354Uqq\11\217\0\0\0\0\1\0\273\344\242\246\0\274\344\377\2\0\275\345" \
+  "\245\0\270\343\22\250\0\0\0\0\3\0\306\343\11\0\274\343\211\0\274\344" \
+  "\376\245\0\274\344\377\1\0\274\344\303\220\0\0\0\0\1\\p{\320\236\\o{" \
+  "\377\2\\o{\370Uww\17\321\0\0\0\0\1\\o{\223\237\\o{\377\1[o|e\217\0\0" \
+  "\0\0\2\0\273\346\36\0\274\344\367\246\0\274\344\377\3\0\274\344\353\0" \
+  "\275\344h\0\200\377\2\245\0\0\0\0\2\0\275\343Q\0\274\344\341\246\0\274" \
+  "\344\377\2\0\274\344\376\0\274\346=\217\0\0\0\0\1\\p|@\237\\o{\377\1" \
+  "\\o{\266\322\0\0\0\0\1]p|B\237\\o{\377\2\\o{\325\0\0\0\1\217\0\0\0\0" \
+  "\1\0\274\344\206\250\0\274\344\377\2\0\274\344\316\0\275\346F\242\0\0" \
+  "\0\0\2\0\272\3424\0\274\344\273\250\0\274\344\377\1\0\275\345\245\220" \
+  "\0\0\0\0\1[p{\260\237\\o{\377\1[o|e\322\0\0\0\0\2UUU\3\\o{\353\237\\" \
+  "o{\377\1]ozG\217\0\0\0\0\2\0\266\355\16\0\274\344\345\251\0\274\344\377" \
+  "\3\0\274\344\314\0\273\344V\0\252\377\3\235\0\0\0\0\2\0\274\345E\0\275" \
+  "\344\274\251\0\274\344\377\2\0\274\344\363\0\275\343\33\217\0\0\0\0\2" \
+  "Zn|%\\o{\375\236\\o{\377\2\\o{\374]t\200\26\323\0\0\0\0\1\\o{\236\237" \
+  "\\o{\377\1\\o{\275\220\0\0\0\0\1\0\275\344U\253\0\274\344\377\3\0\274" \
+  "\344\335\0\275\344\203\0\274\347*\230\0\0\0\0\3\0\273\346\36\0\273\345" \
+  "u\0\274\344\322\253\0\274\344\377\1\0\273\343x\220\0\0\0\0\1\\o{\234" \
+  "\237\\o{\377\1\\p|\300\324\0\0\0\0\1]q{M\240\\o{\377\1Zo{>\220\0\0\0" \
+  "\0\1\0\274\344\264\255\0\274\344\377\4\0\274\344\320\0\274\343\201\0" \
+  "\275\344B\0\263\346\12\220\0\0\0\0\5\0\314\314\5\0\272\345;\0\274\344" \
+  "y\0\274\344\303\0\274\344\376\254\0\274\344\377\2\0\274\345\324\0\266" \
+  "\333\7\217\0\0\0\0\2]l|!\\o{\372\237\\o{\377\1\\n|o\324\0\0\0\0\2mmm" \
+  "\7\\o{\362\237\\o{\377\1\\o{\277\220\0\0\0\0\2\0\273\346\36\0\274\344" \
+  "\360\257\0\274\344\377\22\0\274\344\372\0\274\344\306\0\274\343\234\0" \
+  "\274\345v\0\273\343R\0\272\3424\0\274\341\"\0\271\350\26\0\271\350\13" \
+  "\0\277\337\10\0\277\346\24\0\274\341\"\0\272\3440\0\276\345N\0\274\344" \
+  "r\0\275\344\226\0\275\344\300\0\274\344\365\257\0\274\344\377\2\0\274" \
+  "\344\371\0\273\3451\220\0\0\0\0\1\\o{\234\237\\o{\377\2\\o{\375Xr{\35" \
+  "\325\0\0\0\0\1\\oz\230\240\\o{\377\1ZnzA\220\0\0\0\0\1\0\275\344]\360" \
+  "\0\274\344\377\1\0\275\344{\220\0\0\0\0\2Zqx\"\\o{\373\237\\o{\377\1" \
+  "[n{\273\326\0\0\0\0\1]q{4\240\\o{\377\2\\o{\313\0\0\0\1\220\0\0\0\0\1" \
+  "\0\274\344\252\356\0\274\344\377\2\0\274\344\307\0\252\377\3\220\0\0" \
+  "\0\0\1\\p|\251\240\\o{\377\1\\nzV\327\0\0\0\0\1\\o{\316\240\\o{\377\1" \
+  "\\oz^\220\0\0\0\0\2\0\303\341\21\0\274\344\335\354\0\274\344\377\2\0" \
+  "\274\344\360\0\277\343$\220\0\0\0\0\2^o{<\\o{\376\237\\o{\377\2\\o{\352" \
+  "U\200\200\6\327\0\0\0\0\1\\p|i\240\\o{\377\2\\o{\344ff\200\12\220\0\0" \
+  "\0\0\2\0\273\3451\0\274\344\366\352\0\274\344\377\2\0\274\344\374\0\276" \
+  "\343J\220\0\0\0\0\2\0\0\0\1\\o{\313\240\\o{\377\1\\p{\213\330\0\0\0\0" \
+  "\2[m\200\16\\o{\364\240\\o{\377\1]n|\204\221\0\0\0\0\1\0\273\345b\352" \
+  "\0\274\344\377\1\0\273\344|\221\0\0\0\0\1\\n|a\240\\o{\377\2\\o{\376" \
+  "\\o|'\331\0\0\0\0\1\\o{\236\240\\o{\377\2\\o{\371_q}+\221\0\0\0\0\1\0" \
+  "\274\345\210\350\0\274\344\377\2\0\274\344\254\0\377\377\1\220\0\0\0" \
+  "\0\2amy\25\\o{\354\240\\o{\377\1\\o{\301\332\0\0\0\0\1]o}7\241\\o{\377" \
+  "\2\\o{\305\200\200\200\2\220\0\0\0\0\2\0\252\377\3\0\273\344\261\346" \
+  "\0\274\344\377\2\0\274\344\312\0\277\352\14\221\0\0\0\0\1\\o|\243\241" \
+  "\\o{\377\1\\p{[\333\0\0\0\0\1\\o{\303\241\\o{\377\1]p|k\221\0\0\0\0\2" \
+  "\0\263\346\12\0\274\344\307\344\0\274\344\377\2\0\275\344\327\0\266\347" \
+  "\25\221\0\0\0\0\1\\ozE\241\\o{\377\2\\o|\341fff\5\333\0\0\0\0\1]n|J\241" \
+  "\\o{\377\2\\o{\364Zn|%\221\0\0\0\0\2\0\273\335\17\0\274\344\317\342\0" \
+  "\274\344\377\2\0\274\344\343\0\277\344\34\221\0\0\0\0\2Zix\21]o{\342" \
+  "\241\\o{\377\1\\o{l\334\0\0\0\0\2\0\0\0\1\\o{\317\241\\o{\377\2\\oz\310" \
+  "@\200\200\4\221\0\0\0\0\2\0\266\347\25\0\274\344\326\340\0\274\344\377" \
+  "\2\0\275\344\352\0\277\343$\222\0\0\0\0\1]o{\250\241\\o{\377\2\\o{\351" \
+  "Uqq\11\335\0\0\0\0\1[o{W\242\\o{\377\1]o{\201\222\0\0\0\0\2\0\277\337" \
+  "\30\0\274\344\322\336\0\274\344\377\2\0\274\344\346\0\276\341+\222\0" \
+  "\0\0\0\1]n{]\242\\o{\377\1]pzy\336\0\0\0\0\2\200\200\200\2\\o{\332\241" \
+  "\\o{\377\2\\o{\374]p|B\222\0\0\0\0\2\0\270\343\22\0\274\345\313\334\0" \
+  "\274\344\377\2\0\274\344\337\0\275\342#\222\0\0\0\0\2Yly(\\o{\362\241" \
+  "\\o{\377\2\\o{\357`p\200\20\337\0\0\0\0\1]o|c\242\\o{\377\2\\o{\351[" \
+  "m\200\34\222\0\0\0\0\2\0\266\355\16\0\275\344\274\332\0\274\344\377\2" \
+  "\0\275\344\323\0\277\344\34\222\0\0\0\0\2Uj\200\14\\o{\325\242\\o{\377" \
+  "\1[n|\206\340\0\0\0\0\2U\200\200\6\\o|\341\242\\o{\377\2\\o{\305U\200" \
+  "\200\6\222\0\0\0\0\2\0\314\314\5\0\274\344\237\330\0\274\344\377\2\0" \
+  "\273\343\271\0\273\335\17\223\0\0\0\0\1]o{\250\242\\o{\377\2\\o{\363" \
+  "]t\200\26\341\0\0\0\0\1\\p{[\243\\o{\377\1[o{\227\224\0\0\0\0\2\0\274" \
+  "\344y\0\274\344\375\325\0\274\344\377\2\0\274\344\231\0\277\377\4\223" \
+  "\0\0\0\0\1[o{x\243\\o{\377\1\\nz\177\342\0\0\0\0\2\0\0\0\1\\oz\312\243" \
+  "\\o{\377\1[o{x\224\0\0\0\0\2\0\274\343H\0\274\344\354\322\0\274\344\377" \
+  "\2\0\274\344\367\0\275\345a\224\0\0\0\0\2\\o|N\\o{\376\242\\o{\377\2" \
+  "\\o{\344ff\200\12\343\0\0\0\0\1^o{<\243\\o{\377\2\\o{\374\\o|N\224\0" \
+  "\0\0\0\2\0\275\346\37\0\274\345\313\320\0\274\344\377\2\0\274\344\334" \
+  "\0\272\3440\224\0\0\0\0\2]o}7\\o{\365\243\\o{\377\1\\n|a\345\0\0\0\0" \
+  "\1\\o{\254\243\\o{\377\2\\o{\365[py;\224\0\0\0\0\3\0\314\314\5\0\273" \
+  "\344\204\0\274\344\374\315\0\274\344\377\2\0\274\343\235\0\304\353\15" \
+  "\224\0\0\0\0\2\\qx$\\o{\352\243\\o{\377\2\\o{\317\200\200\200\2\345\0" \
+  "\0\0\0\2\\qx$\\o{\371\243\\o{\377\2\\o{\360^m}1\225\0\0\0\0\2\0\274\344" \
+  "9\0\273\344\333\312\0\274\344\377\2\0\274\344\351\0\274\346P\225\0\0" \
+  "\0\0\2[m\200\34\\p{\340\244\\o{\377\1[nzC\347\0\0\0\0\1\\oz\216\244\\" \
+  "o{\377\2\\o{\352Yly(\225\0\0\0\0\3\0\306\343\11\0\274\344\205\0\274\344" \
+  "\371\306\0\274\344\377\3\0\274\344\376\0\274\345\233\0\270\343\22\225" \
+  "\0\0\0\0\2amy\25]o{\327\244\\o{\377\1]o{\263\350\0\0\0\0\1@\200\200\4" \
+  "\245Zix\21\1ff\200\12\227\0\0\0\0\2\0\276\341+\0\274\344\277\304\0\274" \
+  "\344\377\2\0\274\344\316\0\273\346<\227\0\0\0\0\1mmm\7\245Zix\21\1mm" \
+  "m\7\377\0\0\0\0\251\0\0\0\0\2\0\275\343Q\0\274\344\330\300\0\274\344" \
+  "\377\3\0\274\344\346\0\273\345b\0\200\377\2\377\0\0\0\0\351\0\0\0\0\3" \
+  "\0\277\377\4\0\274\344f\0\274\344\337\274\0\274\344\377\3\0\275\344\352" \
+  "\0\274\344y\0\277\352\14\377\0\0\0\0\355\0\0\0\0\3\0\314\314\5\0\274" \
+  "\345c\0\274\344\332\270\0\274\344\377\3\0\274\344\346\0\275\345t\0\277" \
+  "\352\14\377\0\0\0\0\361\0\0\0\0\4\0\200\377\2\0\274\344L\0\274\344\273" \
+  "\0\274\344\376\263\0\274\344\377\3\0\274\344\314\0\274\343[\0\252\325" \
+  "\6\377\0\0\0\0\366\0\0\0\0\3\0\271\346(\0\274\345\210\0\274\344\345\256" \
+  "\0\274\344\377\3\0\274\344\355\0\273\343\223\0\272\3424\377\0\0\0\0\373" \
+  "\0\0\0\0\4\0\252\377\3\0\275\346F\0\274\344\231\0\274\344\351\250\0\274" \
+  "\344\377\4\0\274\344\357\0\275\345\245\0\273\343R\0\266\333\7\377\0\0" \
+  "\0\0\377\0\0\0\0\6\0\0\0\0\0\252\377\3\0\274\346=\0\275\344\203\0\273" \
+  "\344\310\0\274\344\374\240\0\274\344\377\5\0\274\344\376\0\274\344\322" \
+  "\0\274\344\215\0\275\346F\0\252\325\6\377\0\0\0\0\377\0\0\0\0\210\0\0" \
+  "\0\0\5\0\303\341\21\0\275\343I\0\274\343\201\0\274\345\267\0\275\344" \
+  "\352\230\0\274\344\377\5\0\274\344\357\0\274\345\301\0\274\345\210\0" \
+  "\275\343Q\0\274\351\27\377\0\0\0\0\377\0\0\0\0\221\0\0\0\0\11\0\277\346" \
+  "\24\0\273\343@\0\275\344h\0\274\344\206\0\275\345\245\0\275\344\304\0" \
+  "\274\344\326\0\274\344\350\0\274\344\373\206\0\274\344\377\11\0\274\344" \
+  "\375\0\274\344\353\0\274\344\331\0\274\344\306\0\274\344\252\0\273\343" \
+  "\213\0\275\345l\0\275\346F\0\275\343\33\377\0\0\0\0\377\0\0\0\0\237\0" \
+  "\0\0\0\1\0\377\377\1\204\0\303\341\21\1\0\252\377\3\377\0\0\0\0\377\0" \
+  "\0\0\0\377\0\0\0\0\377\0\0\0\0\377\0\0\0\0\377\0\0\0\0\377\0\0\0\0\377" \
+  "\0\0\0\0\377\0\0\0\0\377\0\0\0\0\377\0\0\0\0\377\0\0\0\0\377\0\0\0\0" \
+  "\377\0\0\0\0\377\0\0\0\0\377\0\0\0\0\377\0\0\0\0\377\0\0\0\0\367\0\0" \
+  "\0\0\2\0\252\377\3\0\273\335\17\276\0\0\0\0\2\0\273\335\17\0\314\314" \
+  "\5\227\0\0\0\0\1\0\274\344\23\260\0\0\0\0\202\0\306\343\11\377\0\0\0" \
+  "\0\237\0\0\0\0\6\0\252\325\6\0\275\344\226\0\274\344\370\0\274\344\377" \
+  "\0\274\344\341\0\274\344L\272\0\0\0\0\6\0\274\346=\0\274\344\330\0\274" \
+  "\344\377\0\274\344\372\0\274\344\247\0\266\355\16\223\0\0\0\0\5\0\274" \
+  "\345j\0\274\344\356\0\274\344\377\0\274\343\361\0\274\344y\254\0\0\0" \
+  "\0\2\0\275\342#\0\274\343\302\202\0\274\344\375\2\0\274\345\301\0\275" \
+  "\342#\377\0\0\0\0\235\0\0\0\0\1\0\274\344y\204\0\274\344\377\2\0\274" \
+  "\344\364\0\277\344\34\270\0\0\0\0\2\0\273\335\17\0\274\344\351\204\0" \
+  "\274\344\377\1\0\274\343\224\222\0\0\0\0\2\0\275\342>\0\274\344\376\204" \
+  "\0\274\344\377\1\0\273\345O\253\0\0\0\0\1\0\274\344\307\204\0\274\344" \
+  "\377\1\0\275\344\304\377\0\0\0\0\235\0\0\0\0\1\0\274\343\302\205\0\274" \
+  "\344\377\1\0\274\343[\270\0\0\0\0\1\0\274\344A\205\0\274\344\377\1\0" \
+  "\274\344\335\222\0\0\0\0\1\0\274\344\206\205\0\274\344\377\1\0\274\344" \
+  "\231\252\0\0\0\0\1\0\277\337\20\206\0\274\344\377\377\0\0\0\0\235\0\0" \
+  "\0\0\1\0\274\344\322\205\0\274\344\377\1\0\273\343x\270\0\0\0\0\1\0\273" \
+  "\343Z\205\0\274\344\377\1\0\274\344\360\222\0\0\0\0\1\0\275\344\226\205" \
+  "\0\274\344\377\1\0\274\344\264\252\0\0\0\0\1\0\273\343-\206\0\274\344" \
+  "\377\377\0\0\0\0\235\0\0\0\0\1\0\274\344\322\205\0\274\344\377\1\0\273" \
+  "\343x\270\0\0\0\0\1\0\273\343Z\205\0\274\344\377\1\0\274\344\360\222" \
+  "\0\0\0\0\1\0\275\344\226\205\0\274\344\377\1\0\274\344\264\252\0\0\0" \
+  "\0\1\0\273\343-\206\0\274\344\377\377\0\0\0\0\235\0\0\0\0\1\0\274\344" \
+  "\322\205\0\274\344\377\1\0\273\343x\270\0\0\0\0\1\0\273\343Z\205\0\274" \
+  "\344\377\1\0\274\344\360\222\0\0\0\0\1\0\275\344\226\205\0\274\344\377" \
+  "\1\0\274\344\264\252\0\0\0\0\1\0\273\343-\206\0\274\344\377\377\0\0\0" \
+  "\0\235\0\0\0\0\1\0\274\344\322\205\0\274\344\377\1\0\273\343x\270\0\0" \
+  "\0\0\1\0\273\343Z\205\0\274\344\377\1\0\274\344\360\222\0\0\0\0\1\0\275" \
+  "\344\226\205\0\274\344\377\1\0\274\344\264\252\0\0\0\0\1\0\273\343-\206" \
+  "\0\274\344\377\377\0\0\0\0\235\0\0\0\0\1\0\274\344\322\205\0\274\344" \
+  "\377\1\0\273\343x\270\0\0\0\0\1\0\273\343Z\205\0\274\344\377\1\0\274" \
+  "\344\360\222\0\0\0\0\1\0\275\344\226\205\0\274\344\377\1\0\274\344\264" \
+  "\252\0\0\0\0\1\0\273\343-\206\0\274\344\377\377\0\0\0\0\235\0\0\0\0\1" \
+  "\0\274\344\322\205\0\274\344\377\1\0\273\343x\270\0\0\0\0\1\0\273\343" \
+  "Z\205\0\274\344\377\1\0\274\344\360\222\0\0\0\0\1\0\275\344\226\205\0" \
+  "\274\344\377\1\0\274\344\264\252\0\0\0\0\1\0\273\343-\206\0\274\344\377" \
+  "\377\0\0\0\0\235\0\0\0\0\1\0\274\344\322\205\0\274\344\377\1\0\273\343" \
+  "x\270\0\0\0\0\1\0\273\343Z\205\0\274\344\377\1\0\274\344\360\222\0\0" \
+  "\0\0\1\0\275\344\226\205\0\274\344\377\1\0\274\344\264\252\0\0\0\0\1" \
+  "\0\273\343-\206\0\274\344\377\210\0\0\0\0\5mmm\7Xr{\35\\pz2[m\200\34" \
+  "mmm\7\215\0\0\0\0\2@\200\200\4^ry&\211Zn}3\2[my*Zix\21\223\0\0\0\0\4" \
+  "]t\200\26]nz,]p|)Uq\200\22\216\0\0\0\0\2^ky\23\\pz2\210Zn}3\3\\pz2Xr" \
+  "{\35@\200\200\4\222\0\0\0\0\5\0\306\343\11\0\274\341\"\0\273\3451\0\277" \
+  "\344\34\0\252\325\6\215\0\0\0\0\2\0\314\314\5\0\271\346(\220\0\276\346" \
+  "3\2\0\273\343-\0\277\337\30\213\0\0\0\0\1\0\274\344\322\205\0\274\344" \
+  "\377\1\0\273\343\223\205\0\276\3463\3\0\273\3451\0\272\342\32\0\277\377" \
+  "\4\221\0\0\0\0\5\0\377\377\1\0\274\351\27\0\274\343.\0\271\346(\0\273" \
+  "\335\17\223\0\0\0\0\2\0\270\343\22\0\273\343-\205\0\276\3463\1\0\275" \
+  "\344{\205\0\274\344\377\1\0\274\344\360\212\0\0\0\0\3\0\200\377\2\0\272" \
+  "\342\32\0\275\3462\205\0\276\3463\1\0\274\344\253\205\0\274\344\377\1" \
+  "\0\274\344\264\214\0\0\0\0\1\0\270\343\22\202\0\276\341+\1\0\271\350" \
+  "\26\223\0\0\0\0\2\0\277\352\14\0\274\347*\205\0\276\3463\1\0\274\345" \
+  "W\206\0\274\344\377\205\0\0\0\0\4Uj\200\14\\n|o\\o{\301\\o{\374\203\\" \
+  "o{\377\4\\o{\371\\o{\274\\o|gU\200\200\6\211\0\0\0\0\2]p|B\\oz\345\214" \
+  "\\o{\377\3\\o{\321\\ozwUqq\11\215\0\0\0\0\3Zo{>]n{\235\\o{\352\204\\" \
+  "o{\377\3[o{\337\\o{\223]p|)\211\0\0\0\0\2``\200\10\\o{\252\214\\o{\377" \
+  "\3\\o{\360]o|\245^m}1\215\0\0\0\0\4\0\277\337\20\0\273\343x\0\273\344" \
+  "\310\0\274\344\375\203\0\274\344\377\4\0\274\344\367\0\274\344\266\0" \
+  "\273\344^\0\277\377\4\211\0\0\0\0\2\0\273\345O\0\274\344\354\223\0\274" \
+  "\344\377\3\0\274\344\337\0\274\344\215\0\271\350\26\210\0\0\0\0\1\0\274" \
+  "\344\322\215\0\274\344\377\3\0\274\344\355\0\274\345\244\0\273\3451\215" \
+  "\0\0\0\0\3\0\274\345E\0\274\345\244\0\274\344\356\204\0\274\344\377\3" \
+  "\0\274\344\332\0\274\344\215\0\277\347\40\215\0\0\0\0\3\0\274\3425\0" \
+  "\274\344\247\0\274\343\361\215\0\274\344\377\1\0\274\344\360\207\0\0" \
+  "\0\0\4\0\377\377\1\0\274\345X\0\275\344\300\0\274\344\372\215\0\274\344" \
+  "\377\1\0\274\344\264\211\0\0\0\0\3\0\272\3440\0\274\344\225\0\274\344" \
+  "\342\204\0\274\344\377\3\0\274\345\347\0\274\345\233\0\274\3425\215\0" \
+  "\0\0\0\3\0\277\347\40\0\274\343\224\0\274\345\347\216\0\274\344\377\204" \
+  "\0\0\0\0\2\\oz^\\o{\346\211\\o{\377\2\\o{\335]ozG\207\0\0\0\0\2Uqq\11" \
+  "\\o{\350\217\\o{\377\2\\oz\343Zq{6\212\0\0\0\0\2[m\200\34]o{\263\211" \
+  "\\o{\377\3\\o{\373[o{\227Uqq\11\207\0\0\0\0\1\\nz}\217\\o{\377\3\\o{" \
+  "\375\\n{\215UUU\3\212\0\0\0\0\2\0\275\345l\0\274\344\355\211\0\274\344" \
+  "\377\2\0\274\343\325\0\272\345;\207\0\0\0\0\2\0\274\344\23\0\274\344" \
+  "\362\226\0\274\344\377\2\0\274\344\363\0\274\345W\207\0\0\0\0\1\0\274" \
+  "\344\322\217\0\274\344\377\3\0\274\344\375\0\274\343\224\0\277\377\4" \
+  "\211\0\0\0\0\2\0\272\343%\0\274\344\276\211\0\274\344\377\3\0\274\344" \
+  "\371\0\274\345\210\0\314\314\5\211\0\0\0\0\3\0\252\377\3\0\274\344\214" \
+  "\0\274\344\375\217\0\274\344\377\1\0\274\344\360\206\0\0\0\0\2\0\274" \
+  "\344\23\0\274\344\276\220\0\274\344\377\1\0\274\344\264\207\0\0\0\0\3" \
+  "\0\303\341\21\0\274\345\244\0\274\344\375\210\0\274\344\377\3\0\274\344" \
+  "\376\0\274\344\250\0\303\341\21\212\0\0\0\0\2\0\273\343e\0\274\344\366" \
+  "\220\0\274\344\377\202\0\0\0\0\2UUU\3\\pz\220\214\\o{\377\2\\o{\374\\" \
+  "n|o\206\0\0\0\0\1\\pz2\221\\o{\377\2\\o{\366]p|B\210\0\0\0\0\2]o}7\\" \
+  "o{\346\214\\o{\377\2]n{\311\\pz\31\206\0\0\0\0\1\\o{\275\221\\o{\377" \
+  "\2\\o{\256\200\200\200\2\207\0\0\0\0\2\0\252\325\6\0\274\344\241\214" \
+  "\0\274\344\377\2\0\274\344\370\0\273\344^\206\0\0\0\0\1\0\273\342G\230" \
+  "\0\274\344\377\2\0\274\344\376\0\275\344h\206\0\0\0\0\1\0\274\344\322" \
+  "\221\0\274\344\377\2\0\274\344\262\0\252\377\3\207\0\0\0\0\2\0\275\344" \
+  "B\0\274\344\356\214\0\274\344\377\2\0\274\344\275\0\277\337\20\210\0" \
+  "\0\0\0\1\0\274\344\225\221\0\274\344\377\1\0\274\344\360\205\0\0\0\0" \
+  "\2\0\263\346\12\0\274\344\320\221\0\274\344\377\1\0\274\344\264\206\0" \
+  "\0\0\0\2\0\276\345'\0\274\344\332\214\0\274\344\377\2\0\274\344\331\0" \
+  "\272\343%\210\0\0\0\0\1\0\274\345c\222\0\274\344\377\202\0\0\0\0\1]o" \
+  "{\207\217\\o{\377\1\\n|a\205\0\0\0\0\1\\pzK\222\\o{\377\2\\o{\354^ow" \
+  "\36\206\0\0\0\0\2\\qx$]o{\355\216\\o{\377\2]o{\314ff\200\12\205\0\0\0" \
+  "\0\1\\o{\322\222\\o{\377\1\\p|\200\207\0\0\0\0\1\0\274\345\233\216\0" \
+  "\274\344\377\2\0\274\344\374\0\276\345N\205\0\0\0\0\1\0\273\343Z\231" \
+  "\0\274\344\377\2\0\274\344\374\0\273\343@\205\0\0\0\0\1\0\274\344\322" \
+  "\222\0\274\344\377\1\0\274\344\202\206\0\0\0\0\2\0\272\3440\0\274\344" \
+  "\365\216\0\274\344\377\2\0\274\344\275\0\252\325\6\206\0\0\0\0\1\0\275" \
+  "\344U\222\0\274\344\377\1\0\274\344\360\205\0\0\0\0\1\0\274\344\231\222" \
+  "\0\274\344\377\1\0\274\344\264\205\0\0\0\0\2\0\266\347\25\0\274\344\340" \
+  "\216\0\274\344\377\2\0\274\344\334\0\266\347\25\206\0\0\0\0\2\0\273\343" \
+  "-\0\274\344\366\222\0\274\344\377\2\0\0\0\0\\pzK\220\\o{\377\2\\o{\371" \
+  "Zpz0\204\0\0\0\0\1\\pzK\223\\o{\377\1\\o|\243\205\0\0\0\0\2@\200\200" \
+  "\4\\o{\323\220\\o{\377\1\\p{\240\205\0\0\0\0\1\\o{\322\222\\o{\377\2" \
+  "\\o{\370`px\40\205\0\0\0\0\1\0\273\345b\220\0\274\344\377\2\0\274\344" \
+  "\363\0\277\347\40\204\0\0\0\0\1\0\273\343Z\232\0\274\344\377\2\0\274" \
+  "\344\322\0\200\377\2\204\0\0\0\0\1\0\274\344\322\222\0\274\344\377\2" \
+  "\0\274\344\367\0\271\345\35\204\0\0\0\0\2\0\263\346\12\0\274\344\341" \
+  "\220\0\274\344\377\1\0\274\343\212\205\0\0\0\0\2\0\252\325\6\0\274\344" \
+  "\346\222\0\274\344\377\1\0\274\344\360\204\0\0\0\0\1\0\276\3463\223\0" \
+  "\274\344\377\1\0\274\344\264\205\0\0\0\0\1\0\274\344\273\220\0\274\344" \
+  "\377\1\0\275\344\274\206\0\0\0\0\1\0\274\344\275\223\0\274\344\377\2" \
+  "@\200\200\4\\o{\326\221\\o{\377\1\\p{\271\204\0\0\0\0\1\\pzK\223\\o{" \
+  "\377\2\\o{\375]t\200\26\204\0\0\0\0\1\\pzd\221\\o{\377\2\\o{\375^m}1" \
+  "\204\0\0\0\0\1\\o{\322\223\\o{\377\1]o{\207\204\0\0\0\0\2\0\263\346\12" \
+  "\0\274\344\344\221\0\274\344\377\1\0\274\345\244\204\0\0\0\0\1\0\273" \
+  "\343Z\233\0\274\344\377\1\0\275\346F\204\0\0\0\0\1\0\274\344\322\223" \
+  "\0\274\344\377\1\0\274\344}\204\0\0\0\0\1\0\273\343x\221\0\274\344\377" \
+  "\2\0\274\344\371\0\271\350!\204\0\0\0\0\1\0\274\345X\223\0\274\344\377" \
+  "\1\0\274\344\360\204\0\0\0\0\1\0\274\343\235\223\0\274\344\377\1\0\274" \
+  "\344\264\204\0\0\0\0\1\0\275\343I\222\0\274\344\377\1\0\273\344K\204" \
+  "\0\0\0\0\2\0\271\346(\0\274\344\376\223\0\274\344\377\1]q{M\206\\o{\377" \
+  "\6\\o{\374[nz\224[o}5Xr{\35]my\77\\o{\252\207\\o{\377\1]nz,\203\0\0\0" \
+  "\0\1\\pzK\206\\o{\377\1Zk{\37\205Zix\21\2Zpz0\\o{\256\206\\o{\377\1\\" \
+  "p{[\204\0\0\0\0\1]o{\327\206\\o{\377\6\\o{\322]o{UXr{\35\\o|'\\n|o\\" \
+  "o{\352\206\\o{\377\1\\n{\244\204\0\0\0\0\1\\o{\322\205\\o{\377\1]o{\201" \
+  "\205Zix\21\3^q{\33\\n|a\\o{\364\205\\o{\377\1\\o{\317\204\0\0\0\0\1\0" \
+  "\274\345c\206\0\274\344\377\6\0\274\344\372\0\275\345\207\0\276\344/" \
+  "\0\271\345\35\0\272\344C\0\273\344\265\206\0\274\344\377\2\0\274\344" \
+  "\375\0\272\342\32\203\0\0\0\0\1\0\273\343Z\205\0\274\344\377\1\0\274" \
+  "\343\361\204\0\303\341\21\1\0\274\344s\205\0\274\344\377\1\0\274\344" \
+  "\343\202\0\303\341\21\2\0\274\344&\0\274\344\214\206\0\274\344\377\1" \
+  "\0\275\344\216\204\0\0\0\0\1\0\274\344\322\205\0\274\344\377\1\0\274" \
+  "\343\201\205\0\303\341\21\3\0\271\345\35\0\274\344g\0\274\344\367\205" \
+  "\0\274\344\377\1\0\274\344\305\203\0\0\0\0\2\0\200\377\2\0\274\344\351" \
+  "\206\0\274\344\377\6\0\274\344\312\0\275\345M\0\271\345\35\0\274\347" \
+  "*\0\274\344y\0\274\344\360\206\0\274\344\377\1\0\274\344\220\204\0\0" \
+  "\0\0\1\0\274\344\247\205\0\274\344\377\3\0\274\344\376\0\274\344z\0\271" \
+  "\350!\205\0\303\341\21\1\0\273\343e\205\0\274\344\377\1\0\274\344\360" \
+  "\204\0\0\0\0\1\0\274\344\353\205\0\274\344\377\3\0\274\344\353\0\273" \
+  "\344V\0\274\351\27\205\0\303\341\21\1\0\274\343\235\205\0\274\344\377" \
+  "\1\0\274\344\264\204\0\0\0\0\1\0\275\344\274\206\0\274\344\377\6\0\274" \
+  "\344\337\0\274\344_\0\271\350!\0\275\342#\0\275\343d\0\274\344\337\206" \
+  "\0\274\344\377\1\0\274\344\275\204\0\0\0\0\1\0\273\345u\206\0\274\344" \
+  "\377\2\0\273\344\236\0\273\346)\205\0\303\341\21\1\0\272\345;\206\0\274" \
+  "\344\377\1\\n{\233\205\\o{\377\2\\o{\376]nzX\205\0\0\0\0\1[o{~\206\\" \
+  "o{\377\1[o{x\203\0\0\0\0\1\\pzK\206\\o{\377\1Uww\17\206\0\0\0\0\2``\200" \
+  "\10\\o{\351\205\\o{\377\1\\nz\177\203\0\0\0\0\1Yly(\206\\o{\377\2\\o" \
+  "|\304]tt\13\204\0\0\0\0\2Zk{\37\\o{\350\205\\o{\377\2]o{\355UUU\3\203" \
+  "\0\0\0\0\1\\o{\322\205\\o{\377\1[o{x\207\0\0\0\0\1[pz{\205\\o{\377\1" \
+  "\\o{\364\204\0\0\0\0\1\0\274\343\260\205\0\274\344\377\2\0\274\344\373" \
+  "\0\273\342G\204\0\0\0\0\2\0\377\377\1\0\273\343\223\206\0\274\344\377" \
+  "\1\0\275\343d\203\0\0\0\0\1\0\273\343Z\205\0\274\344\377\1\0\274\344" \
+  "\360\204\0\0\0\0\1\0\273\344i\205\0\274\344\377\1\0\274\344\341\204\0" \
+  "\0\0\0\1\0\274\344\277\205\0\274\344\377\1\0\274\345\256\204\0\0\0\0" \
+  "\1\0\274\344\322\205\0\274\344\377\1\0\273\343x\207\0\0\0\0\1\0\275\345" \
+  "\207\205\0\274\344\377\1\0\274\344\350\203\0\0\0\0\1\0\273\346<\206\0" \
+  "\274\344\377\2\0\274\344\262\0\252\325\6\204\0\0\0\0\2\0\273\343-\0\274" \
+  "\343\361\205\0\274\344\377\1\0\274\344\334\204\0\0\0\0\1\0\274\344\307" \
+  "\205\0\274\344\377\1\0\273\344\242\207\0\0\0\0\1\0\273\343Z\205\0\274" \
+  "\344\377\1\0\274\344\360\203\0\0\0\0\1\0\304\353\15\206\0\274\344\377" \
+  "\1\0\273\344^\207\0\0\0\0\1\0\275\344\226\205\0\274\344\377\1\0\274\344" \
+  "\264\203\0\0\0\0\2\0\273\335\17\0\274\344\372\205\0\274\344\377\2\0\275" \
+  "\344\327\0\277\346\24\204\0\0\0\0\2\0\274\344\23\0\274\344\330\205\0" \
+  "\274\344\377\2\0\274\344\372\0\273\335\17\203\0\0\0\0\1\0\275\344\226" \
+  "\205\0\274\344\377\2\0\274\344\321\0\200\377\2\206\0\0\0\0\1\0\273\343" \
+  "-\206\0\274\344\377\1[o{\324\205\\o{\377\1[p{\260\206\0\0\0\0\2\200\200" \
+  "\200\2\\o{\326\205\\o{\377\1\\o{\256\203\0\0\0\0\1\\pzK\206\\o{\377\1" \
+  "Uww\17\207\0\0\0\0\1\\p{\271\205\\o{\377\1\\o{\223\203\0\0\0\0\1[n{_" \
+  "\205\\o{\377\2\\o{\376Zn|%\206\0\0\0\0\1]o|c\206\\o{\377\1^ry&\203\0" \
+  "\0\0\0\1\\o{\322\205\\o{\377\1[o{x\207\0\0\0\0\1[nzC\206\\o{\377\1]t" \
+  "t\13\203\0\0\0\0\1\0\274\344\351\205\0\274\344\377\1\0\274\344\231\206" \
+  "\0\0\0\0\2\0\277\337\10\0\274\344\345\205\0\274\344\377\1\0\274\345\233" \
+  "\203\0\0\0\0\1\0\273\343Z\205\0\274\344\377\1\0\274\344\360\204\0\0\0" \
+  "\0\1\0\273\344i\205\0\274\344\377\1\0\274\344\341\204\0\0\0\0\1\0\273" \
+  "\343\213\205\0\274\344\377\1\0\274\344\303\204\0\0\0\0\1\0\274\344\322" \
+  "\205\0\274\344\377\1\0\273\343x\207\0\0\0\0\1\0\273\345O\205\0\274\344" \
+  "\377\1\0\274\344\375\203\0\0\0\0\1\0\275\345t\205\0\274\344\377\2\0\274" \
+  "\344\370\0\274\351\27\206\0\0\0\0\1\0\275\343w\206\0\274\344\377\1\0" \
+  "\274\344\23\203\0\0\0\0\1\0\274\344\340\205\0\274\344\377\1\0\273\343" \
+  "m\207\0\0\0\0\1\0\273\343Z\205\0\274\344\377\1\0\274\344\360\203\0\0" \
+  "\0\0\1\0\273\346)\206\0\274\344\377\1\0\272\343%\207\0\0\0\0\1\0\275" \
+  "\344\226\205\0\274\344\377\1\0\274\344\264\203\0\0\0\0\1\0\272\344C\206" \
+  "\0\274\344\377\1\0\272\343\77\206\0\0\0\0\1\0\273\342G\206\0\274\344" \
+  "\377\1\0\275\344B\203\0\0\0\0\1\0\273\344\261\205\0\274\344\377\1\0\274" \
+  "\345\233\207\0\0\0\0\1\0\273\343-\206\0\274\344\377\1\\o{\354\205\\o" \
+  "{\377\1\\n|a\207\0\0\0\0\1\\o|\212\205\\o{\377\1]n{\311\203\0\0\0\0\1" \
+  "\\pzK\206\\o{\377\1Uww\17\207\0\0\0\0\1\\o{\264\205\\o{\377\1\\oz\226" \
+  "\203\0\0\0\0\1[o{x\205\\o{\377\1\\o{\326\207\0\0\0\0\1Ys\200\24\206\\" \
+  "o{\377\1Zo{>\203\0\0\0\0\1\\o{\322\205\\o{\377\1[o{x\207\0\0\0\0\1^o" \
+  "{<\206\\o{\377\1Uww\17\202\0\0\0\0\2\0\314\314\5\0\274\344\376\205\0" \
+  "\274\344\377\1\0\274\344L\207\0\0\0\0\1\0\274\344\237\205\0\274\344\377" \
+  "\1\0\274\344\262\203\0\0\0\0\1\0\273\343Z\205\0\274\344\377\1\0\274\344" \
+  "\360\204\0\0\0\0\1\0\273\344i\205\0\274\344\377\1\0\274\344\341\204\0" \
+  "\0\0\0\1\0\275\345\207\205\0\274\344\377\1\0\274\344\303\204\0\0\0\0" \
+  "\1\0\274\344\322\205\0\274\344\377\1\0\273\343x\207\0\0\0\0\1\0\273\344" \
+  "K\206\0\274\344\377\203\0\0\0\0\1\0\275\344\216\205\0\274\344\377\1\0" \
+  "\274\343\302\207\0\0\0\0\1\0\271\346(\206\0\274\344\377\1\0\273\346)" \
+  "\203\0\0\0\0\1\0\274\344\341\205\0\274\344\377\1\0\273\344i\207\0\0\0" \
+  "\0\1\0\273\343Z\205\0\274\344\377\1\0\274\344\360\203\0\0\0\0\1\0\273" \
+  "\343-\206\0\274\344\377\1\0\273\346\36\207\0\0\0\0\1\0\275\344\226\205" \
+  "\0\274\344\377\1\0\274\344\264\203\0\0\0\0\1\0\274\343\\\205\0\274\344" \
+  "\377\2\0\274\344\360\0\377\377\1\206\0\0\0\0\2\0\200\377\2\0\274\344" \
+  "\364\205\0\274\344\377\1\0\273\343Z\203\0\0\0\0\1\0\274\344\264\205\0" \
+  "\274\344\377\1\0\275\344\226\207\0\0\0\0\1\0\273\343-\206\0\274\344\377" \
+  "\206\\o{\377\1\\pzK\207\0\0\0\0\1[o{x\205\\o{\377\1\\o{\322\203\0\0\0" \
+  "\0\1\\pzK\206\\o{\377\1Uww\17\207\0\0\0\0\1\\o{\264\205\\o{\377\1\\o" \
+  "z\226\203\0\0\0\0\1]o{\207\205\\o{\377\1]o{\327\210]o{U\206\\o{\377\1" \
+  "\\pzK\203\0\0\0\0\1\\o{\322\205\\o{\377\1[o{x\207\0\0\0\0\1^o{<\206\\" \
+  "o{\377\1Uww\17\202\0\0\0\0\1\0\273\335\17\206\0\274\344\377\1\0\274\344" \
+  "}\207\0\275\344U\1\0\274\343\257\205\0\274\344\377\1\0\274\344\303\203" \
+  "\0\0\0\0\1\0\273\343Z\205\0\274\344\377\1\0\274\344\360\204\0\0\0\0\1" \
+  "\0\273\344i\205\0\274\344\377\1\0\274\344\341\204\0\0\0\0\1\0\275\345" \
+  "\207\205\0\274\344\377\1\0\274\344\303\204\0\0\0\0\1\0\274\344\322\205" \
+  "\0\274\344\377\1\0\273\343x\207\0\0\0\0\1\0\273\344K\206\0\274\344\377" \
+  "\203\0\0\0\0\1\0\273\344\242\205\0\274\344\377\1\0\274\344\315\207\0" \
+  "\275\344U\1\0\275\344`\206\0\274\344\377\1\0\273\346<\203\0\0\0\0\1\0" \
+  "\274\344\341\205\0\274\344\377\1\0\273\344i\207\0\0\0\0\1\0\273\343Z" \
+  "\205\0\274\344\377\1\0\274\344\360\203\0\0\0\0\1\0\273\343-\206\0\274" \
+  "\344\377\1\0\273\346\36\207\0\0\0\0\1\0\275\344\226\205\0\274\344\377" \
+  "\1\0\274\344\264\203\0\0\0\0\1\0\273\344i\205\0\274\344\377\1\0\274\344" \
+  "\353\210\0\275\344U\1\0\274\344\353\205\0\274\344\377\1\0\273\344i\203" \
+  "\0\0\0\0\1\0\274\344\264\205\0\274\344\377\1\0\275\344\226\207\0\0\0" \
+  "\0\1\0\273\343-\206\0\274\344\377\206\\o{\377\1\\pzK\207\0\0\0\0\1[o" \
+  "{x\205\\o{\377\1\\o{\322\203\0\0\0\0\1\\pzK\206\\o{\377\1Uww\17\207\0" \
+  "\0\0\0\1\\o{\264\205\\o{\377\1\\oz\226\203\0\0\0\0\1]o{\207\224\\o{\377" \
+  "\1\\pzK\203\0\0\0\0\1\\o{\322\205\\o{\377\1[o{x\207\0\0\0\0\1^o{<\206" \
+  "\\o{\377\1Uww\17\202\0\0\0\0\1\0\273\335\17\224\0\274\344\377\1\0\274" \
+  "\344\303\203\0\0\0\0\1\0\273\343Z\205\0\274\344\377\1\0\274\344\360\204" \
+  "\0\0\0\0\1\0\273\344i\205\0\274\344\377\1\0\274\344\341\204\0\0\0\0\1" \
+  "\0\275\345\207\205\0\274\344\377\1\0\274\344\303\204\0\0\0\0\1\0\274" \
+  "\344\322\205\0\274\344\377\1\0\273\343x\207\0\0\0\0\1\0\273\344K\206" \
+  "\0\274\344\377\203\0\0\0\0\1\0\275\345\245\224\0\274\344\377\1\0\273" \
+  "\346<\203\0\0\0\0\1\0\274\344\341\205\0\274\344\377\1\0\273\344i\207" \
+  "\0\0\0\0\1\0\273\343Z\205\0\274\344\377\1\0\274\344\360\203\0\0\0\0\1" \
+  "\0\273\343-\206\0\274\344\377\1\0\273\346\36\207\0\0\0\0\1\0\275\344" \
+  "\226\205\0\274\344\377\1\0\274\344\264\203\0\0\0\0\1\0\273\344i\224\0" \
+  "\274\344\377\1\0\273\344i\203\0\0\0\0\1\0\274\344\264\205\0\274\344\377" \
+  "\1\0\275\344\226\207\0\0\0\0\1\0\273\343-\206\0\274\344\377\206\\o{\377" \
+  "\1\\pzK\207\0\0\0\0\1[o{x\205\\o{\377\1\\o{\322\203\0\0\0\0\1\\pzK\206" \
+  "\\o{\377\1Uww\17\207\0\0\0\0\1\\o{\264\205\\o{\377\1\\oz\226\203\0\0" \
+  "\0\0\1]o{\207\224\\o{\377\1\\pzK\203\0\0\0\0\1\\o{\322\205\\o{\377\1" \
+  "[o{x\207\0\0\0\0\1^o{<\206\\o{\377\1Uww\17\202\0\0\0\0\1\0\273\335\17" \
+  "\224\0\274\344\377\1\0\274\344\303\203\0\0\0\0\1\0\273\343Z\205\0\274" \
+  "\344\377\1\0\274\344\360\204\0\0\0\0\1\0\273\344i\205\0\274\344\377\1" \
+  "\0\274\344\341\204\0\0\0\0\1\0\275\345\207\205\0\274\344\377\1\0\274" \
+  "\344\303\204\0\0\0\0\1\0\274\344\322\205\0\274\344\377\1\0\273\343x\207" \
+  "\0\0\0\0\1\0\273\344K\206\0\274\344\377\203\0\0\0\0\1\0\275\345\245\224" \
+  "\0\274\344\377\1\0\273\346<\203\0\0\0\0\1\0\274\344\341\205\0\274\344" \
+  "\377\1\0\273\344i\207\0\0\0\0\1\0\273\343Z\205\0\274\344\377\1\0\274" \
+  "\344\360\203\0\0\0\0\1\0\273\343-\206\0\274\344\377\1\0\273\346\36\207" \
+  "\0\0\0\0\1\0\275\344\226\205\0\274\344\377\1\0\274\344\264\203\0\0\0" \
+  "\0\1\0\273\344i\224\0\274\344\377\1\0\273\344i\203\0\0\0\0\1\0\274\344" \
+  "\264\205\0\274\344\377\1\0\275\344\226\207\0\0\0\0\1\0\273\343-\206\0" \
+  "\274\344\377\206\\o{\377\1\\pzK\207\0\0\0\0\1[o{x\205\\o{\377\1\\o{\322" \
+  "\203\0\0\0\0\1\\pzK\206\\o{\377\1Uww\17\207\0\0\0\0\1\\o{\264\205\\o" \
+  "{\377\1\\oz\226\203\0\0\0\0\1]o{\207\224\\o{\377\1\\pzK\203\0\0\0\0\1" \
+  "\\o{\322\205\\o{\377\1[o{x\207\0\0\0\0\1^o{<\206\\o{\377\1Uww\17\202" \
+  "\0\0\0\0\1\0\273\335\17\224\0\274\344\377\1\0\274\344\303\203\0\0\0\0" \
+  "\1\0\273\343Z\205\0\274\344\377\1\0\274\344\360\204\0\0\0\0\1\0\273\344" \
+  "i\205\0\274\344\377\1\0\274\344\341\204\0\0\0\0\1\0\275\345\207\205\0" \
+  "\274\344\377\1\0\274\344\303\204\0\0\0\0\1\0\274\344\322\205\0\274\344" \
+  "\377\1\0\273\343x\207\0\0\0\0\1\0\273\344K\206\0\274\344\377\203\0\0" \
+  "\0\0\1\0\275\345\245\224\0\274\344\377\1\0\273\346<\203\0\0\0\0\1\0\274" \
+  "\344\341\205\0\274\344\377\1\0\273\344i\207\0\0\0\0\1\0\273\343Z\205" \
+  "\0\274\344\377\1\0\274\344\360\203\0\0\0\0\1\0\273\343-\206\0\274\344" \
+  "\377\1\0\273\346\36\207\0\0\0\0\1\0\275\344\226\205\0\274\344\377\1\0" \
+  "\274\344\264\203\0\0\0\0\1\0\273\344i\224\0\274\344\377\1\0\273\344i" \
+  "\203\0\0\0\0\1\0\274\344\264\205\0\274\344\377\1\0\275\344\226\207\0" \
+  "\0\0\0\1\0\273\343-\206\0\274\344\377\206\\o{\377\1\\pzK\207\0\0\0\0" \
+  "\1[o{x\205\\o{\377\1\\o{\322\203\0\0\0\0\1\\pzK\206\\o{\377\1Uww\17\207" \
+  "\0\0\0\0\1\\o{\264\205\\o{\377\1\\oz\226\203\0\0\0\0\1]o{\207\224\\o" \
+  "{\377\1\\pzK\203\0\0\0\0\1\\o{\322\205\\o{\377\1[o{x\207\0\0\0\0\1^o" \
+  "{<\206\\o{\377\1Uww\17\202\0\0\0\0\1\0\273\335\17\224\0\274\344\377\1" \
+  "\0\274\344\303\203\0\0\0\0\1\0\273\343Z\205\0\274\344\377\1\0\274\344" \
+  "\360\204\0\0\0\0\1\0\273\344i\205\0\274\344\377\1\0\274\344\341\204\0" \
+  "\0\0\0\1\0\275\345\207\205\0\274\344\377\1\0\274\344\303\204\0\0\0\0" \
+  "\1\0\274\344\322\205\0\274\344\377\1\0\273\343x\207\0\0\0\0\1\0\273\344" \
+  "K\206\0\274\344\377\203\0\0\0\0\1\0\275\345\245\224\0\274\344\377\1\0" \
+  "\273\346<\203\0\0\0\0\1\0\274\344\341\205\0\274\344\377\1\0\273\344i" \
+  "\207\0\0\0\0\1\0\273\343Z\205\0\274\344\377\1\0\274\344\360\203\0\0\0" \
+  "\0\1\0\273\343-\206\0\274\344\377\1\0\273\346\36\207\0\0\0\0\1\0\275" \
+  "\344\226\205\0\274\344\377\1\0\274\344\264\203\0\0\0\0\1\0\273\344i\224" \
+  "\0\274\344\377\1\0\273\344i\203\0\0\0\0\1\0\274\344\264\205\0\274\344" \
+  "\377\1\0\275\344\226\207\0\0\0\0\1\0\273\343-\206\0\274\344\377\206\\" \
+  "o{\377\1\\pzK\207\0\0\0\0\1[o{x\205\\o{\377\1\\o{\322\203\0\0\0\0\1\\" \
+  "pzK\206\\o{\377\1Uww\17\207\0\0\0\0\1\\o{\264\205\\o{\377\1\\oz\226\203" \
+  "\0\0\0\0\1]o{\207\224\\o{\377\1\\pzK\203\0\0\0\0\1\\o{\322\205\\o{\377" \
+  "\1[o{x\207\0\0\0\0\1^o{<\206\\o{\377\1Uww\17\202\0\0\0\0\1\0\273\335" \
+  "\17\224\0\274\344\377\1\0\274\344\303\203\0\0\0\0\1\0\273\343Z\205\0" \
+  "\274\344\377\1\0\274\344\360\204\0\0\0\0\1\0\273\344i\205\0\274\344\377" \
+  "\1\0\274\344\341\204\0\0\0\0\1\0\275\345\207\205\0\274\344\377\1\0\274" \
+  "\344\303\204\0\0\0\0\1\0\274\344\322\205\0\274\344\377\1\0\273\343x\207" \
+  "\0\0\0\0\1\0\273\344K\206\0\274\344\377\203\0\0\0\0\1\0\275\345\245\224" \
+  "\0\274\344\377\1\0\273\346<\203\0\0\0\0\1\0\274\344\341\205\0\274\344" \
+  "\377\1\0\273\344i\207\0\0\0\0\1\0\273\343Z\205\0\274\344\377\1\0\274" \
+  "\344\360\203\0\0\0\0\1\0\273\343-\206\0\274\344\377\1\0\273\346\36\207" \
+  "\0\0\0\0\1\0\275\344\226\205\0\274\344\377\1\0\274\344\264\203\0\0\0" \
+  "\0\1\0\273\344i\224\0\274\344\377\1\0\273\344i\203\0\0\0\0\1\0\274\344" \
+  "\264\205\0\274\344\377\1\0\275\344\226\207\0\0\0\0\1\0\273\343-\206\0" \
+  "\274\344\377\206\\o{\377\1\\pzK\207\0\0\0\0\1[o{x\205\\o{\377\1\\o{\322" \
+  "\203\0\0\0\0\1\\pzK\206\\o{\377\1Uww\17\207\0\0\0\0\1\\o{\264\205\\o" \
+  "{\377\1\\oz\226\203\0\0\0\0\1]o{\207\224\\o{\377\1\\pzK\203\0\0\0\0\1" \
+  "\\o{\322\205\\o{\377\1[o{x\207\0\0\0\0\1^o{<\206\\o{\377\1Uww\17\202" \
+  "\0\0\0\0\1\0\273\335\17\224\0\274\344\377\1\0\274\344\303\203\0\0\0\0" \
+  "\1\0\273\343Z\205\0\274\344\377\1\0\274\344\360\204\0\0\0\0\1\0\273\344" \
+  "i\205\0\274\344\377\1\0\274\344\341\204\0\0\0\0\1\0\275\345\207\205\0" \
+  "\274\344\377\1\0\274\344\303\204\0\0\0\0\1\0\274\344\322\205\0\274\344" \
+  "\377\1\0\273\343x\207\0\0\0\0\1\0\273\344K\206\0\274\344\377\203\0\0" \
+  "\0\0\1\0\275\345\245\224\0\274\344\377\1\0\273\346<\203\0\0\0\0\1\0\274" \
+  "\344\341\205\0\274\344\377\1\0\273\344i\207\0\0\0\0\1\0\273\343Z\205" \
+  "\0\274\344\377\1\0\274\344\360\203\0\0\0\0\1\0\273\343-\206\0\274\344" \
+  "\377\1\0\273\346\36\207\0\0\0\0\1\0\275\344\226\205\0\274\344\377\1\0" \
+  "\274\344\264\203\0\0\0\0\1\0\273\344i\224\0\274\344\377\1\0\273\344i" \
+  "\203\0\0\0\0\1\0\274\344\264\205\0\274\344\377\1\0\275\344\226\207\0" \
+  "\0\0\0\1\0\273\343-\206\0\274\344\377\1\\o{\374\205\\o{\377\1^n{O\207" \
+  "\0\0\0\0\1]pzy\205\\o{\377\1\\o{\322\203\0\0\0\0\1\\pzK\206\\o{\377\1" \
+  "Uww\17\207\0\0\0\0\1\\o{\264\205\\o{\377\1\\oz\226\203\0\0\0\0\1]o{\207" \
+  "\205\\o{\377\1\\o{\303\222\0\0\0\0\1\\o{\322\205\\o{\377\1[o{x\207\0" \
+  "\0\0\0\1^o{<\206\\o{\377\1Uww\17\202\0\0\0\0\1\0\273\335\17\206\0\274" \
+  "\344\377\1\0\273\346<\221\0\0\0\0\1\0\273\343Z\205\0\274\344\377\1\0" \
+  "\274\344\360\204\0\0\0\0\1\0\273\344i\205\0\274\344\377\1\0\274\344\341" \
+  "\204\0\0\0\0\1\0\275\345\207\205\0\274\344\377\1\0\274\344\303\204\0" \
+  "\0\0\0\1\0\274\344\322\205\0\274\344\377\1\0\273\343x\207\0\0\0\0\1\0" \
+  "\273\344K\206\0\274\344\377\203\0\0\0\0\1\0\275\345\245\205\0\274\344" \
+  "\377\1\0\274\344\264\222\0\0\0\0\1\0\274\344\341\205\0\274\344\377\1" \
+  "\0\273\344i\207\0\0\0\0\1\0\273\343Z\205\0\274\344\377\1\0\274\344\360" \
+  "\203\0\0\0\0\1\0\273\343-\206\0\274\344\377\1\0\273\346\36\207\0\0\0" \
+  "\0\1\0\275\344\226\205\0\274\344\377\1\0\274\344\264\203\0\0\0\0\1\0" \
+  "\273\344i\205\0\274\344\377\1\0\274\344\341\222\0\0\0\0\1\0\274\344\264" \
+  "\205\0\274\344\377\1\0\275\344\226\207\0\0\0\0\1\0\273\343-\206\0\274" \
+  "\344\377\1\\o{\350\205\\o{\377\1]o{n\207\0\0\0\0\1\\o{\234\205\\o{\377" \
+  "\1\\o{\275\203\0\0\0\0\1\\pzK\206\\o{\377\1Uww\17\207\0\0\0\0\1\\o{\264" \
+  "\205\\o{\377\1\\oz\226\203\0\0\0\0\1]o{\207\205\\o{\377\1\\o{\303\222" \
+  "\0\0\0\0\1\\o{\322\205\\o{\377\1[o{x\207\0\0\0\0\1^o{<\206\\o{\377\1" \
+  "Uww\17\202\0\0\0\0\1\0\273\335\17\206\0\274\344\377\1\0\273\346<\221" \
+  "\0\0\0\0\1\0\273\343Z\205\0\274\344\377\1\0\274\344\360\204\0\0\0\0\1" \
+  "\0\273\344i\205\0\274\344\377\1\0\274\344\341\204\0\0\0\0\1\0\275\345" \
+  "\207\205\0\274\344\377\1\0\274\344\303\204\0\0\0\0\1\0\274\344\322\205" \
+  "\0\274\344\377\1\0\273\343x\207\0\0\0\0\1\0\273\344K\206\0\274\344\377" \
+  "\203\0\0\0\0\1\0\275\345\245\205\0\274\344\377\1\0\274\344\264\222\0" \
+  "\0\0\0\1\0\274\344\341\205\0\274\344\377\1\0\273\344i\207\0\0\0\0\1\0" \
+  "\273\343Z\205\0\274\344\377\1\0\274\344\360\203\0\0\0\0\1\0\273\343-" \
+  "\206\0\274\344\377\1\0\273\346\36\207\0\0\0\0\1\0\275\344\226\205\0\274" \
+  "\344\377\1\0\274\344\264\203\0\0\0\0\1\0\273\344i\205\0\274\344\377\1" \
+  "\0\274\344\341\222\0\0\0\0\1\0\274\344\264\205\0\274\344\377\1\0\275" \
+  "\344\226\207\0\0\0\0\1\0\273\343-\206\0\274\344\377\1\\o{\313\205\\o" \
+  "{\377\2\\o{\316UUU\3\205\0\0\0\0\2^ky\23\\o{\356\205\\o{\377\1\\o{\236" \
+  "\203\0\0\0\0\1\\pzK\206\\o{\377\1Uww\17\207\0\0\0\0\1\\o|\304\205\\o" \
+  "{\377\1\\oz\216\203\0\0\0\0\1[o{\203\205\\o{\377\1\\o{\317\222\0\0\0" \
+  "\0\1\\o{\322\205\\o{\377\1[o{x\207\0\0\0\0\1^o{<\206\\o{\377\1Uww\17" \
+  "\202\0\0\0\0\1\0\304\353\15\206\0\274\344\377\1\0\275\346F\221\0\0\0" \
+  "\0\1\0\273\343Z\205\0\274\344\377\1\0\274\344\360\204\0\0\0\0\1\0\273" \
+  "\344i\205\0\274\344\377\1\0\274\344\341\204\0\0\0\0\1\0\275\345\207\205" \
+  "\0\274\344\377\1\0\274\344\303\204\0\0\0\0\1\0\274\344\322\205\0\274" \
+  "\344\377\1\0\273\343x\207\0\0\0\0\1\0\273\343Z\205\0\274\344\377\1\0" \
+  "\274\344\370\203\0\0\0\0\1\0\274\345\233\205\0\274\344\377\1\0\274\344" \
+  "\275\222\0\0\0\0\1\0\274\344\335\205\0\274\344\377\1\0\274\345v\207\0" \
+  "\0\0\0\1\0\273\343Z\205\0\274\344\377\1\0\274\344\360\203\0\0\0\0\1\0" \
+  "\272\343%\206\0\274\344\377\1\0\272\3440\207\0\0\0\0\1\0\275\344\226" \
+  "\205\0\274\344\377\1\0\274\344\264\203\0\0\0\0\1\0\274\344f\205\0\274" \
+  "\344\377\1\0\274\344\354\222\0\0\0\0\1\0\275\344\255\205\0\274\344\377" \
+  "\1\0\275\345\245\207\0\0\0\0\1\0\273\343-\206\0\274\344\377\1]o{\207" \
+  "\206\\o{\377\2\\o{\234@\200\200\4\203\0\0\0\0\2Uq\200\22\\p|\300\206" \
+  "\\o{\377\1[ozZ\203\0\0\0\0\1\\pzK\206\\o{\377\1Uww\17\206\0\0\0\0\2^" \
+  "ry&\\o{\370\205\\o{\377\1]n{v\203\0\0\0\0\1\\n|o\205\\o{\377\2\\o{\373" \
+  "\\m}/\221\0\0\0\0\1\\o{\322\205\\o{\377\1[o{x\207\0\0\0\0\1^o{<\206\\" \
+  "o{\377\1Uww\17\203\0\0\0\0\1\0\274\344\370\205\0\274\344\377\1\0\274" \
+  "\344\241\221\0\0\0\0\1\0\273\343Z\205\0\274\344\377\1\0\274\344\360\204" \
+  "\0\0\0\0\1\0\273\344i\205\0\274\344\377\1\0\274\344\341\204\0\0\0\0\1" \
+  "\0\275\345\207\205\0\274\344\377\1\0\274\344\303\204\0\0\0\0\1\0\274" \
+  "\344\322\205\0\274\344\377\1\0\273\343x\207\0\0\0\0\1\0\273\344\261\205" \
+  "\0\274\344\377\1\0\274\344\337\203\0\0\0\0\1\0\274\344\202\205\0\274" \
+  "\344\377\2\0\274\344\364\0\274\341\"\221\0\0\0\0\1\0\274\344\311\205" \
+  "\0\274\344\377\2\0\274\344\315\0\314\314\5\206\0\0\0\0\1\0\273\343Z\205" \
+  "\0\274\344\377\1\0\274\344\360\203\0\0\0\0\1\0\266\355\16\206\0\274\344" \
+  "\377\1\0\273\343\213\207\0\0\0\0\1\0\275\344\226\205\0\274\344\377\1" \
+  "\0\274\344\264\203\0\0\0\0\1\0\273\343R\206\0\274\344\377\1\0\273\342" \
+  "G\221\0\0\0\0\1\0\273\344\227\205\0\274\344\377\2\0\274\344\353\0\271" \
+  "\350\26\206\0\0\0\0\1\0\273\343-\206\0\274\344\377\1Zn}3\207\\o{\377" \
+  "\5\\n{\331[n|\206[n|m[o{\221\\o{\353\206\\o{\377\2\\o{\364Uww\17\203" \
+  "\0\0\0\0\1\\pzK\206\\o{\377\1\\n|o\205]n{f\2]n|\204\\o{\352\206\\o{\377" \
+  "\1[m|F\203\0\0\0\0\1^o{<\206\\o{\377\2\\o{\360\\o|\210\211]n{f\2\\p{" \
+  "Y_m|#\205\0\0\0\0\1\\o{\322\205\\o{\377\1[o{x\207\0\0\0\0\1^o{<\206\\" \
+  "o{\377\1Uww\17\203\0\0\0\0\1\0\273\344\310\206\0\274\344\377\2\0\274" \
+  "\344\266\0\274\343n\210\0\274\344f\3\0\275\343d\0\274\344A\0\277\377" \
+  "\4\204\0\0\0\0\1\0\273\343Z\205\0\274\344\377\1\0\274\344\360\204\0\0" \
+  "\0\0\1\0\273\344i\205\0\274\344\377\1\0\274\344\341\204\0\0\0\0\1\0\275" \
+  "\345\207\205\0\274\344\377\1\0\274\344\303\204\0\0\0\0\1\0\274\344\322" \
+  "\205\0\274\344\377\1\0\274\345\256\205\0\274\344f\2\0\275\344p\0\274" \
+  "\344\275\206\0\274\344\377\1\0\274\343\257\203\0\0\0\0\1\0\275\344U\206" \
+  "\0\274\344\377\2\0\274\344\351\0\275\344\203\211\0\274\344f\2\0\275\344" \
+  "U\0\271\345\35\205\0\0\0\0\1\0\275\344\226\206\0\274\344\377\2\0\274" \
+  "\344\315\0\273\345u\205\0\274\344f\1\0\274\343\234\205\0\274\344\377" \
+  "\1\0\274\344\360\204\0\0\0\0\1\0\274\344\334\206\0\274\344\377\2\0\275" \
+  "\344\255\0\274\345k\205\0\274\344f\1\0\275\344\300\205\0\274\344\377" \
+  "\1\0\274\344\264\203\0\0\0\0\1\0\275\342#\206\0\274\344\377\3\0\274\344" \
+  "\366\0\274\344\220\0\274\344g\210\0\274\344f\2\0\275\344]\0\273\346)" \
+  "\205\0\0\0\0\1\0\273\344i\206\0\274\344\377\2\0\274\344\340\0\274\344" \
+  "}\205\0\274\344f\1\0\274\343\201\206\0\274\344\377\2\0\0\0\0[p{\260\221" \
+  "\\o{\377\1\\p|\202\204\0\0\0\0\1\\pzK\223\\o{\377\2\\o{\356mmm\7\203" \
+  "\0\0\0\0\2UUU\3\\o{\352\221\\o{\377\2\\o{\373\\o{l\204\0\0\0\0\1\\o{" \
+  "\322\205\\o{\377\1[o{x\207\0\0\0\0\1^o{<\206\\o{\377\1Uww\17\203\0\0" \
+  "\0\0\1\0\274\344y\222\0\274\344\377\2\0\274\344\316\0\273\335\17\203" \
+  "\0\0\0\0\1\0\273\343Z\205\0\274\344\377\1\0\274\344\360\204\0\0\0\0\1" \
+  "\0\273\344i\205\0\274\344\377\1\0\274\344\341\204\0\0\0\0\1\0\275\345" \
+  "\207\205\0\274\344\377\1\0\274\344\303\204\0\0\0\0\1\0\274\344\322\223" \
+  "\0\274\344\377\1\0\273\344^\203\0\0\0\0\2\0\273\335\17\0\274\344\365" \
+  "\221\0\274\344\377\2\0\274\344\367\0\274\343\\\204\0\0\0\0\1\0\273\342" \
+  "G\223\0\274\344\377\1\0\274\344\360\204\0\0\0\0\1\0\274\344\215\223\0" \
+  "\274\344\377\1\0\274\344\264\204\0\0\0\0\1\0\275\344\323\221\0\274\344" \
+  "\377\2\0\274\344\376\0\274\344\206\204\0\0\0\0\2\0\271\345\35\0\274\344" \
+  "\373\223\0\274\344\377\3\0\0\0\0Zqx\"\\o{\360\217\\o{\377\2\\o{\333b" \
+  "vv\15\204\0\0\0\0\1\\pzK\223\\o{\377\1\\n{t\205\0\0\0\0\1\\p{r\222\\" \
+  "o{\377\2\\o{\370amy\25\203\0\0\0\0\1\\o{\322\205\\o{\377\1[o{x\207\0" \
+  "\0\0\0\1^o{<\206\\o{\377\1Uww\17\203\0\0\0\0\2\0\273\335\17\0\274\344" \
+  "\355\222\0\274\344\377\1\0\275\344\203\203\0\0\0\0\1\0\273\343Z\205\0" \
+  "\274\344\377\1\0\274\344\360\204\0\0\0\0\1\0\273\344i\205\0\274\344\377" \
+  "\1\0\274\344\341\204\0\0\0\0\1\0\275\345\207\205\0\274\344\377\1\0\274" \
+  "\344\303\204\0\0\0\0\1\0\274\344\322\222\0\274\344\377\2\0\274\344\334" \
+  "\0\314\314\5\204\0\0\0\0\1\0\275\345\207\222\0\274\344\377\2\0\274\343" \
+  "\361\0\277\337\10\203\0\0\0\0\2\0\377\377\1\0\274\345\313\222\0\274\344" \
+  "\377\1\0\274\344\360\204\0\0\0\0\2\0\275\343\33\0\274\344\366\222\0\274" \
+  "\344\377\1\0\274\344\264\204\0\0\0\0\1\0\274\345W\222\0\274\344\377\2" \
+  "\0\274\344\376\0\271\342,\204\0\0\0\0\1\0\274\343\234\223\0\274\344\377" \
+  "\202\0\0\0\0\2\\ozE\\o{\373\215\\o{\377\2\\o{\357Yly(\205\0\0\0\0\1\\" \
+  "pzK\222\\o{\377\2\\o{\303U\200\200\6\205\0\0\0\0\2U\200\200\6[o|\306" \
+  "\222\\o{\377\1ZnzA\203\0\0\0\0\1\\o{\317\205\\o{\377\1[o{x\207\0\0\0" \
+  "\0\1^o{<\206\\o{\377\1Uj\200\14\204\0\0\0\0\2\0\274\345X\0\274\344\376" \
+  "\221\0\274\344\377\1\0\274\345\267\203\0\0\0\0\1\0\274\345X\205\0\274" \
+  "\344\377\1\0\274\344\360\204\0\0\0\0\1\0\273\344i\205\0\274\344\377\1" \
+  "\0\274\343\336\204\0\0\0\0\1\0\274\344\206\205\0\274\344\377\1\0\274" \
+  "\343\302\204\0\0\0\0\1\0\274\344\322\221\0\274\344\377\2\0\274\344\374" \
+  "\0\274\344A\205\0\0\0\0\2\0\266\355\16\0\274\344\322\222\0\274\344\377" \
+  "\1\0\273\343-\204\0\0\0\0\2\0\273\3451\0\274\344\365\221\0\274\344\377" \
+  "\1\0\274\344\360\205\0\0\0\0\1\0\274\345k\222\0\274\344\377\1\0\273\344" \
+  "\261\204\0\0\0\0\2\0\377\377\1\0\274\343\257\222\0\274\344\377\1\0\275" \
+  "\344]\204\0\0\0\0\2\0\266\347\25\0\274\344\340\222\0\274\344\377\203" \
+  "\0\0\0\0\2]p|B\\o{\354\213\\o{\377\2\\o{\333]p|)\206\0\0\0\0\1\\pzK\221" \
+  "\\o{\377\2\\o{\316amy\25\207\0\0\0\0\2`j\200\30\\o{\321\221\\o{\377\1" \
+  "[q}-\203\0\0\0\0\1\\oz\257\205\\o{\377\1]n{]\207\0\0\0\0\1_m|#\205\\" \
+  "o{\377\1\\o{\350\206\0\0\0\0\2\0\274\345v\0\274\344\376\220\0\274\344" \
+  "\377\1\0\273\344\242\203\0\0\0\0\1\0\274\3449\205\0\274\344\377\1\0\274" \
+  "\344\322\204\0\0\0\0\1\0\274\346P\205\0\274\344\377\1\0\274\344\273\204" \
+  "\0\0\0\0\1\0\275\344h\205\0\274\344\377\1\0\274\345\244\204\0\0\0\0\1" \
+  "\0\274\345\270\220\0\274\344\377\2\0\274\344\372\0\275\344`\207\0\0\0" \
+  "\0\2\0\275\342#\0\273\344\333\221\0\274\344\377\1\0\272\342\32\205\0" \
+  "\0\0\0\2\0\274\344L\0\274\344\364\220\0\274\344\377\1\0\274\344\322\206" \
+  "\0\0\0\0\1\0\274\345\210\221\0\274\344\377\1\0\274\344\220\205\0\0\0" \
+  "\0\2\0\304\353\15\0\274\345\301\221\0\274\344\377\1\0\276\343J\205\0" \
+  "\0\0\0\2\0\271\342,\0\274\344\344\220\0\274\344\377\1\0\274\344\374\204" \
+  "\0\0\0\0\3Xr{\35[p{\242\\o{\375\207\\o{\377\3\\o{\366]o{\207Uww\17\207" \
+  "\0\0\0\0\1\\pzK\217\\o{\377\3\\o{\373\\oz\230]tt\13\211\0\0\0\0\3Uj\200" \
+  "\14]o{\232\\o{\373\216\\o{\377\2]n{\311\200\200\200\2\203\0\0\0\0\1^" \
+  "n{O\204\\o{\377\2\\o{\351Uq\200\22\207\0\0\0\0\2\0\0\0\1\\n|\302\204" \
+  "\\o{\377\1]o{\207\207\0\0\0\0\2\0\274\344L\0\274\344\337\216\0\274\344" \
+  "\377\2\0\274\344\376\0\272\344C\203\0\0\0\0\2\0\314\314\5\0\275\344\323" \
+  "\204\0\274\344\377\1\0\273\344q\204\0\0\0\0\2\0\304\353\15\0\274\344" \
+  "\343\204\0\274\344\377\1\0\274\343\\\204\0\0\0\0\2\0\277\337\30\0\274" \
+  "\344\357\203\0\274\344\377\2\0\274\344\376\0\272\344C\204\0\0\0\0\1\0" \
+  "\275\345Y\217\0\274\344\377\2\0\275\344\323\0\273\346<\211\0\0\0\0\3" \
+  "\0\270\343\22\0\275\345\245\0\274\344\375\216\0\274\344\377\1\0\274\345" \
+  "\270\207\0\0\0\0\2\0\273\3451\0\274\345\313\217\0\274\344\377\1\0\275" \
+  "\345t\207\0\0\0\0\2\0\275\345Y\0\274\344\346\216\0\274\344\377\2\0\274" \
+  "\344\374\0\275\3462\206\0\0\0\0\3\0\314\314\5\0\274\343\211\0\274\344" \
+  "\367\216\0\274\344\377\2\0\274\344\337\0\263\346\12\206\0\0\0\0\2\0\272" \
+  "\342\32\0\273\344\261\217\0\274\344\377\1\0\274\345\244\206\0\0\0\0\11" \
+  "\\qx$\\p{r\\n{\262\\o{\315\\o{\335[o|\306\\o|\247[pzbYs\200\24\211\0" \
+  "\0\0\0\1\\pzK\206\\o{\377\1[o{\337\205\\o{\335\4\\o{\326\\o{\275\\nz" \
+  "}\\o|'\215\0\0\0\0\4\\o|'\\nz}\\o{\274\\o{\325\211\\o{\335\3\\o{\322" \
+  "\\oz\230]t\200\26\205\0\0\0\0\5\\nzV]o{\276\\o{\330\\o{\252Yly(\211\0" \
+  "\0\0\0\6^ky\23[nz\224\\o{\321]n{\311\\ozwfff\5\210\0\0\0\0\4\0\252\325" \
+  "\6\0\273\343Z\0\274\344\243\0\274\345\313\211\0\274\344\335\3\0\274\344" \
+  "\334\0\274\344\275\0\275\345M\205\0\0\0\0\6\0\272\342\32\0\274\343\235" \
+  "\0\274\345\324\0\274\344\305\0\274\345k\0\200\377\2\205\0\0\0\0\5\0\275" \
+  "\342#\0\275\345\245\0\275\344\327\0\274\345\301\0\273\344^\206\0\0\0" \
+  "\0\5\0\274\343.\0\274\345\256\0\275\344\327\0\274\344\275\0\273\345O" \
+  "\206\0\0\0\0\2\0\275\344]\0\275\344\300\211\0\274\344\335\5\0\274\344" \
+  "\334\0\274\344\306\0\274\345\233\0\275\345M\0\200\377\2\214\0\0\0\0\4" \
+  "\0\271\342,\0\274\344\202\0\274\344\276\0\275\344\327\211\0\274\344\335" \
+  "\3\0\274\344\320\0\274\344\220\0\277\337\20\210\0\0\0\0\5\0\377\377\1" \
+  "\0\275\343I\0\273\344\227\0\274\344\306\0\273\344\333\211\0\274\344\335" \
+  "\3\0\274\344\305\0\273\343m\0\200\377\2\210\0\0\0\0\4\0\306\343\11\0" \
+  "\274\344_\0\274\344\247\0\274\344\315\211\0\274\344\335\3\0\273\344\333" \
+  "\0\274\345\270\0\275\344B\211\0\0\0\0\4\0\271\345\35\0\273\345u\0\274" \
+  "\344\266\0\274\345\324\211\0\274\344\335\3\0\274\344\326\0\274\344\243" \
+  "\0\271\350!\211\0\0\0\0\4\0\272\3424\0\274\343\211\0\274\345\301\0\274" \
+  "\344\330\211\0\274\344\335\3\0\274\344\315\0\274\344\206\0\271\350\13" \
+  "\230\0\0\0\0\1\\pzK\206\\o{\377\1Uww\17\377\0\0\0\0\377\0\0\0\0\246\0" \
+  "\0\0\0\1\\pzK\206\\o{\377\1Uww\17\377\0\0\0\0\377\0\0\0\0\246\0\0\0\0" \
+  "\1\\pzK\206\\o{\377\1Uww\17\377\0\0\0\0\377\0\0\0\0\246\0\0\0\0\1\\p" \
+  "zK\206\\o{\377\1Uww\17\377\0\0\0\0\377\0\0\0\0\246\0\0\0\0\1\\pzK\206" \
+  "\\o{\377\1Uww\17\377\0\0\0\0\377\0\0\0\0\246\0\0\0\0\1\\pzK\206\\o{\377" \
+  "\1Uww\17\377\0\0\0\0\377\0\0\0\0\246\0\0\0\0\1\\pzK\206\\o{\377\1Uww" \
+  "\17\377\0\0\0\0\377\0\0\0\0\246\0\0\0\0\1[m|F\206\\o{\377\1ff\200\12" \
+  "\377\0\0\0\0\377\0\0\0\0\246\0\0\0\0\1]l|!\205\\o{\377\1\\o|\341\377" \
+  "\0\0\0\0\377\0\0\0\0\250\0\0\0\0\1\\o{\265\204\\o{\377\1[o{x\377\0\0" \
+  "\0\0\377\0\0\0\0\250\0\0\0\0\6Uqq\11\\nz}[n{\273[p{\260\\oz^\0\0\0\1" \
+  "\377\0\0\0\0\377\0\0\0\0\217\0\0\0\0")
+
+
meta/recipes-core/psplash/files/psplash-poky-img.h deleted +0 -909

909 lines not on this page · raw message

meta/recipes-core/psplash/psplash_git.bb +3 -3
index 9112aa9..1a5d6d9 100644
@@ -7,11 +7,11 @@ LIC_FILES_CHKSUM = "file://psplash.h;md5=a87c39812c1e37f3451567cc29a29c8f"
 
 SRCREV = "e05374aae945bcfc6d962ed0d7b2774b77987e1d"
 PV = "0.1+git${SRCPV}"
-PR = "r0"
+PR = "r1"
 
 SRC_URI = "git://git.yoctoproject.org/${BPN};protocol=git \
            file://psplash-init \
-	   file://psplash-poky-img.h"
+	   file://psplash-img.h"
 
 S = "${WORKDIR}/git"
 
@@ -20,7 +20,7 @@ inherit autotools pkgconfig update-rc.d
 FILES_${PN} += "/mnt/.psplash"
 
 do_configure_prepend () {
-	cp -f ${WORKDIR}/psplash-poky-img.h ${S}/
+	cp -f ${WORKDIR}/psplash-img.h ${S}/psplash-poky-img.h
 }
 
 do_install_prepend() {
Signature · 1 line
1.7.5.4
#2 lore raw

Re: [PATCH 1/2] psplash: use OpenEmbedded logo

Dear Paul,

Am Montag, den 19.12.2011, 17:43 +0000 schrieb Paul Eggleton:

Quoted 1 line

Use the OpenEmbedded logo for psplash in OE-core,

please spell the abbreviation like OE-Core for consistency [1].

Quoted 4 lines

and rename the file to psplash-img.h rather than psplash-poky-img.h.

---

Thanks,

Paul

[1] http://lists.linuxtogo.org/pipermail/openembedded-core/2011-December/013987.html

#3 lore raw

PATCH 2/2 scripts/contrib: add a script to create a psplash image header

In reply to Paul Eggleton

Adds a convenience script for converting an image file to a header suitable for use in psplash, as well as a comment pointing to the script in the default OpenEmbedded psplash image header.

---
 meta/recipes-core/psplash/files/psplash-img.h |    5 ++++-
 scripts/contrib/make-psplash-img-header.sh    |   22 ++++++++++++++++++++++
 2 files changed, 26 insertions(+), 1 deletions(-)
 create mode 100755 scripts/contrib/make-psplash-img-header.sh
meta/recipes-core/psplash/files/psplash-img.h +4 -1
index 1c85a72..9530131 100644
@@ -1,4 +1,7 @@
-/* OpenEmbedded logo image for psplash */
+/* OpenEmbedded logo image for psplash
+ *
+ * Created using scripts/contrib/make-psplash-img-header.sh
+ */
 
 /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */
 
scripts/contrib/make-psplash-img-header.sh new file +22 -0
new file mode 100755
index 0000000..23a825d
@@ -0,0 +1,22 @@
+#!/bin/sh
+# Creates a header file from an image suitable for building into psplash
+# Derived from make-image-header.sh from the psplash project
+
+if [ "$1" = "" ] || [ ! -f $1 ] ; then
+	echo "Please specify an input image"
+	exit 1
+fi
+
+res=`which gdk-pixbuf-csource 2>/dev/null`
+if [ $? -ne 0 ] ; then
+	echo "Please install gdk-pixbuf-csource (e.g. libgdk-pixbuf2.0-dev package on Ubuntu/Debian)"
+	exit 1
+fi
+
+imageh="psplash-img.h"
+name="POKY_IMG"
+echo "Writing psplash image header to $imageh"
+gdk-pixbuf-csource --macros $1 > $imageh.tmp
+sed -e "s/MY_PIXBUF/${name}/g" -e "s/guint8/uint8/g" $imageh.tmp > $imageh && rm $imageh.tmp
+
+
Signature · 1 line
1.7.5.4
#4 lore raw
In reply to Paul Eggleton

Op 19 dec. 2011, om 18:43 heeft Paul Eggleton het volgende geschreven:

Quoted 2 lines

Set the default psplash image to the OpenEmbedded logo, and provide a script to allow people to use their own custom image.

What I did in OE-classic and meta-angstrom is to use update-alternatives to provide different psplash images. This way you can choose a different splash for each image instead of having a distro wide one. Is something like that suitable for oe-core as well?

regards,

Koen

#5 lore raw
Quoted 8 lines · On Monday 19 December 2011 18:50:35 Koen Kooi wrote:

Op 19 dec. 2011, om 18:43 heeft Paul Eggleton het volgende geschreven:

Quoted 2 lines

Set the default psplash image to the OpenEmbedded logo, and provide a script to allow people to use their own custom image.

What I did in OE-classic and meta-angstrom is to use update-alternatives to provide different psplash images. This way you can choose a different splash for each image instead of having a distro wide one. Is something like that suitable for oe-core as well?

Sounds like a useful capability, however, does this mean that when you want to override it in the image you end up with both psplash versions installed?

Cheers,
Paul

Signature · 2 lines
Paul Eggleton
Intel Open Source Technology Centre
#6 lore raw

Op 19 dec. 2011, om 19:22 heeft Paul Eggleton het volgende geschreven:

Quoted 5 lines · On Monday 19 December 2011 18:50:35 Koen Kooi wrote:
Quoted 4 lines

Op 19 dec. 2011, om 18:43 heeft Paul Eggleton het volgende geschreven:

Quoted 2 lines

Set the default psplash image to the OpenEmbedded logo, and provide a script to allow people to use their own custom image.

Quoted 7 lines
Quoted 4 lines

What I did in OE-classic and meta-angstrom is to use update-alternatives to provide different psplash images. This way you can choose a different splash for each image instead of having a distro wide one. Is something like that suitable for oe-core as well?

Sounds like a useful capability, however, does this mean that when you want to override it in the image you end up with both psplash versions installed?

in a splashless image you can just do 'IMAGE_INSTALL += psplash-angstrom and it will only install that one. If you want to reuse an existing, unmodified image with psplash and add your own, then you will end up with both.

regards,

Koen

#7 lore raw
Quoted 12 lines · On Monday 19 December 2011 19:27:06 Koen Kooi wrote:

Op 19 dec. 2011, om 19:22 heeft Paul Eggleton het volgende geschreven:

Quoted 11 lines · On Monday 19 December 2011 18:50:35 Koen Kooi wrote:
Quoted 9 lines

Op 19 dec. 2011, om 18:43 heeft Paul Eggleton het volgende geschreven:

Quoted 3 lines

Set the default psplash image to the OpenEmbedded logo, and provide a
script to allow people to use their own custom image.

What I did in OE-classic and meta-angstrom is to use update-alternatives to provide different psplash images. This way you can choose a different splash for each image instead of having a distro wide one. Is something like that suitable for oe-core as well?

Quoted 6 lines
Quoted 3 lines

Sounds like a useful capability, however, does this mean that when you want to override it in the image you end up with both psplash versions installed?

in a splashless image you can just do 'IMAGE_INSTALL += psplash-angstrom and it will only install that one. If you want to reuse an existing, unmodified
image with psplash and add your own, then you will end up with both.

Although I guess another way to do it would be to do a VIRTUAL-RUNTIME type thing like we do for other such selections. At the moment in OE-core, psplash is brought in via task-core-console, and whilst it is a separate variable that could be overridden it's a task which once built really makes it impossible to customise per-image.

What about a "splash" IMAGE_FEATURE and then a VIRTUAL-RUNTIME_splash to select which psplash to install? Would update-alternatives be needed at all in that case?

Cheers,
Paul

Signature · 2 lines
Paul Eggleton
Intel Open Source Technology Centre
#8 lore raw

Op 19 dec. 2011, om 19:32 heeft Paul Eggleton het volgende geschreven:

Quoted 20 lines · On Monday 19 December 2011 19:27:06 Koen Kooi wrote:
Quoted 12 lines

Op 19 dec. 2011, om 19:22 heeft Paul Eggleton het volgende geschreven:

Quoted 11 lines · On Monday 19 December 2011 18:50:35 Koen Kooi wrote:
Quoted 9 lines

Op 19 dec. 2011, om 18:43 heeft Paul Eggleton het volgende geschreven:

Quoted 3 lines

Set the default psplash image to the OpenEmbedded logo, and provide a
script to allow people to use their own custom image.

What I did in OE-classic and meta-angstrom is to use update-alternatives to provide different psplash images. This way you can choose a different splash for each image instead of having a distro wide one. Is something like that suitable for oe-core as well?

Quoted 6 lines
Quoted 3 lines

Sounds like a useful capability, however, does this mean that when you want to override it in the image you end up with both psplash versions installed?

in a splashless image you can just do 'IMAGE_INSTALL += psplash-angstrom and it will only install that one. If you want to reuse an existing, unmodified image with psplash and add your own, then you will end up with both.

Quoted 8 lines

Although I guess another way to do it would be to do a VIRTUAL-RUNTIME type thing like we do for other such selections. At the moment in OE-core, psplash is brought in via task-core-console, and whilst it is a separate variable that could be overridden it's a task which once built really makes it impossible to customise per-image.

What about a "splash" IMAGE_FEATURE and then a VIRTUAL-RUNTIME_splash to select which psplash to install?

I will say again: I absolutely HATE that virtual-runtime nonsense. If you need to change a task, change the task, don't introduce things that make it non deterministic. Guess what happens when you change a virtual-runtime *after* you have built the task already.

Quoted 2 lines

Would update-alternatives be needed at all in
that case?

It would if you want to change it after booting :)

#9 lore raw
Quoted 4 lines · On Monday 19 December 2011 19:48:48 Koen Kooi wrote:

I will say again: I absolutely HATE that virtual-runtime nonsense. If you need to change a task, change the task, don't introduce things that make it non deterministic. Guess what happens when you change a virtual-runtime *after* you have built the task already.

This is the problem I'm trying to avoid. Perhaps it wasn't clear, but what I meant was change things so we do not bring in psplash via a task anymore - instead use the value of VIRTUAL-RUNTIME_splash within core-image.bbclass, controlled via an IMAGE_FEATURE.

Quoted 4 lines
Quoted 2 lines

Would update-alternatives be needed at all in
that case?

It would if you want to change it after booting :)

What's the use case for changing the splash image after booting?

Cheers,
Paul

Signature · 2 lines
Paul Eggleton
Intel Open Source Technology Centre
#10 lore raw

Op 19 dec. 2011, om 19:57 heeft Paul Eggleton het volgende geschreven:

Quoted 10 lines · On Monday 19 December 2011 19:48:48 Koen Kooi wrote:
Quoted 4 lines

I will say again: I absolutely HATE that virtual-runtime nonsense. If you need to change a task, change the task, don't introduce things that make it non deterministic. Guess what happens when you change a virtual-runtime *after* you have built the task already.

This is the problem I'm trying to avoid. Perhaps it wasn't clear, but what I meant was change things so we do not bring in psplash via a task anymore - instead use the value of VIRTUAL-RUNTIME_splash within core-image.bbclass, controlled via an IMAGE_FEATURE.

In OE-classic we had IMAGE_SPLASH. Btw, I'm not using core-image.bbclase.

Quoted 6 lines
Quoted 4 lines
Quoted 2 lines

Would update-alternatives be needed at all in
that case?

It would if you want to change it after booting :)

What's the use case for changing the splash image after booting?

If you splash contains text its nice to be able to exchange it as easily as the rest of the system.

#11 lore raw
Quoted 1 line · On Monday 19 December 2011 20:02:02 Koen Kooi wrote:

In OE-classic we had IMAGE_SPLASH. Btw, I'm not using core-image.bbclase.

Well we could always use IMAGE_SPLASH and bring it in via image.bbclass. It seems to me like something you should be able to enable or exchange easily for any image.

Quoted 9 lines
Quoted 6 lines
Quoted 4 lines
Quoted 2 lines

Would update-alternatives be needed at all in
that case?

It would if you want to change it after booting :)

What's the use case for changing the splash image after booting?

If you splash contains text its nice to be able to exchange it as easily as the rest of the system.

So is this for i18n? Or do you have something in the text that's likely to need changing? Might it be better to provide an alternative channel for displaying text in psplash for that?

Cheers,
Paul

Signature · 2 lines
Paul Eggleton
Intel Open Source Technology Centre
#12 lore raw
Quoted 13 lines · On Monday 19 December 2011 19:12:10 Paul Eggleton wrote:
Quoted 2 lines · On Monday 19 December 2011 20:02:02 Koen Kooi wrote:

In OE-classic we had IMAGE_SPLASH. Btw, I'm not using core-image.bbclase.

Well we could always use IMAGE_SPLASH and bring it in via image.bbclass. It seems to me like something you should be able to enable or exchange easily for any image.

Quoted 5 lines
Quoted 5 lines
Quoted 4 lines
Quoted 2 lines

Would update-alternatives be needed at all in
that case?

It would if you want to change it after booting :)

Quoted 8 lines
Quoted 4 lines
Quoted 1 line

What's the use case for changing the splash image after booting?

If you splash contains text its nice to be able to exchange it as easily as the rest of the system.

So is this for i18n? Or do you have something in the text that's likely to need changing? Might it be better to provide an alternative channel for displaying text in psplash for that?

Ping - if you help me to understand what you're trying to achieve then we can try to figure out the best way to solve it.

Cheers,
Paul

Signature · 2 lines
Paul Eggleton
Intel Open Source Technology Centre
#13 lore raw
In reply to Paul Eggleton
Quoted 11 lines · Paul Eggleton
Quoted 4 lines · On Monday 19 December 2011 19:48:48 Koen Kooi wrote:

I will say again: I absolutely HATE that virtual-runtime nonsense. If you need to change a task, change the task, don't introduce things that make it non deterministic. Guess what happens when you change a virtual-runtime *after* you have built the task already.

This is the problem I'm trying to avoid. Perhaps it wasn't clear, but what I meant was change things so we do not bring in psplash via a task anymore - instead use the value of VIRTUAL-RUNTIME_splash within core-image.bbclass, controlled via an IMAGE_FEATURE.

Quoted 6 lines
Quoted 4 lines
Quoted 2 lines

Would update-alternatives be needed at all in
that case?

It would if you want to change it after booting :)

What's the use case for changing the splash image after booting?

I can see people taking an existing image, adding a few packages to customize it for their application, and changing the splash image to a product specific one.

Philip

#14 lore raw
Quoted 3 lines · On Tuesday 20 December 2011 10:31:52 Philip Balister wrote:

I can see people taking an existing image, adding a few packages to customize it for their application, and changing the splash image to a product specific one.

I'm not entirely convinced this workflow makes sense when you're interested in getting reproducible product images. This is basically the "take some existing distro and hack it up until it fits" approach which taken past a certain point leads to an unmaintainable mess, or at the very least regressions.

People really ought to be able to produce their final images from the metadata with no additional post-build changes (or at least none that are manual). If that's too difficult, that's the problem I think is most worthwhile to attack, even if it requires more work on our part.

Cheers,
Paul

Signature · 2 lines
Paul Eggleton
Intel Open Source Technology Centre
#15 lore raw
Quoted 10 lines · Paul Eggleton
Quoted 3 lines · On Tuesday 20 December 2011 10:31:52 Philip Balister wrote:

I can see people taking an existing image, adding a few packages to customize it for their application, and changing the splash image to a product specific one.

I'm not entirely convinced this workflow makes sense when you're interested in getting reproducible product images. This is basically the "take some existing distro and hack it up until it fits" approach which taken past a certain point leads to an unmaintainable mess, or at the very least regressions.

Quoted 4 lines

People really ought to be able to produce their final images from the metadata with no additional post-build changes (or at least none that are manual). If that's too difficult, that's the problem I think is most worthwhile to attack, even if it requires more work on our part.

Well, I can see people wanting to do this. It falls into the case of the customer is always right, even when he is wrong :)

Philip

#16 lore raw
In reply to Koen Kooi
Quoted 29 lines · Koen Kooi

Op 19 dec. 2011, om 19:32 heeft Paul Eggleton het volgende geschreven:

Quoted 26 lines · On Monday 19 December 2011 19:27:06 Koen Kooi wrote:
Quoted 12 lines

Op 19 dec. 2011, om 19:22 heeft Paul Eggleton het volgende geschreven:

Quoted 11 lines · On Monday 19 December 2011 18:50:35 Koen Kooi wrote:
Quoted 9 lines

Op 19 dec. 2011, om 18:43 heeft Paul Eggleton het volgende geschreven:

Quoted 3 lines

Set the default psplash image to the OpenEmbedded logo, and provide a
script to allow people to use their own custom image.

What I did in OE-classic and meta-angstrom is to use update-alternatives to provide different psplash images. This way you can choose a different splash for each image instead of having a distro wide one. Is something like that suitable for oe-core as well?

Quoted 6 lines
Quoted 3 lines

Sounds like a useful capability, however, does this mean that when you want to override it in the image you end up with both psplash versions installed?

in a splashless image you can just do 'IMAGE_INSTALL += psplash-angstrom and it will only install that one. If you want to reuse an existing, unmodified image with psplash and add your own, then you will end up with both.

Although I guess another way to do it would be to do a VIRTUAL-RUNTIME type thing like we do for other such selections. At the moment in OE-core, psplash is brought in via task-core-console, and whilst it is a separate variable that could be overridden it's a task which once built really makes it impossible to customise per-image.

Quoted 4 lines
Quoted 2 lines

What about a "splash" IMAGE_FEATURE and then a VIRTUAL-RUNTIME_splash to select which psplash to install?

I will say again: I absolutely HATE that virtual-runtime nonsense. If you need to change a task, change the task, don't introduce things that make it non deterministic. Guess what happens when you change a virtual-runtime *after* you have built the task already.

The advantage of virtual-runtime is that something like initscripts, is pulled by more than one recipe, so in order to change initscripts pulled to distro images you have to change 3-4 recipes by .bbappend and bump PR in all.

With VIRTUAL-RUNTIME you have to select VIRTUAL-RUNTIME_initscripts by distro config and add .bbappends only with PRINC bumps for recipes using this variable (easy to find with git grep).
And if someone else adds new recipe also using initscripts then he should use right one wrt VIRTUAL-RUNTIME_initscripts not expecting you to notice that other recipe pulling initscripts is there (I've used BLACKLIST to notice those before, but VIRTUAL-RUNTIME is better).

And it's like DISTRO_FEATURES, nobody should change VIRTUAL-RUNTIME settings without at least PRINC bumps.

Cheers,

Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]
#17 lore raw
In reply to Koen Kooi
Quoted 28 lines · Koen Kooi

Op 19 dec. 2011, om 19:32 heeft Paul Eggleton het volgende geschreven:

Quoted 26 lines · On Monday 19 December 2011 19:27:06 Koen Kooi wrote:
Quoted 12 lines

Op 19 dec. 2011, om 19:22 heeft Paul Eggleton het volgende geschreven:

Quoted 11 lines · On Monday 19 December 2011 18:50:35 Koen Kooi wrote:
Quoted 9 lines

Op 19 dec. 2011, om 18:43 heeft Paul Eggleton het volgende geschreven:

Quoted 3 lines

Set the default psplash image to the OpenEmbedded logo, and provide a
script to allow people to use their own custom image.

What I did in OE-classic and meta-angstrom is to use update-alternatives to provide different psplash images. This way you can choose a different splash for each image instead of having a distro wide one. Is something like that suitable for oe-core as well?

Quoted 6 lines
Quoted 3 lines

Sounds like a useful capability, however, does this mean that when you want to override it in the image you end up with both psplash versions installed?

in a splashless image you can just do 'IMAGE_INSTALL += psplash-angstrom and it will only install that one. If you want to reuse an existing, unmodified image with psplash and add your own, then you will end up with both.

Although I guess another way to do it would be to do a VIRTUAL-RUNTIME type thing like we do for other such selections. At the moment in OE-core, psplash is brought in via task-core-console, and whilst it is a separate variable that could be overridden it's a task which once built really makes it impossible to customise per-image.

Quoted 7 lines
Quoted 2 lines

What about a "splash" IMAGE_FEATURE and then a VIRTUAL-RUNTIME_splash to select which psplash to install?

I will say again: I absolutely HATE that virtual-runtime nonsense. If you need to change a task, change the task, don't introduce things that make it non deterministic. Guess what happens when you change a virtual-runtime *after* you have built the task already.

That virtual-runtime stuff is clearly distro related and should only be changed at the distro level. Doing anything else with it isn't supported.

The splash screen issue strikes me as a distro level issue with different distro's wanting to rebrand as needed. It therefore seems appropriate to handle psplash that way?

Having them parallel installed seems overly complex and a solution in search of a problem :/

And yes, personally I dislike the virtual-runtime stuff too but the alternative is a ton of copies of recipes with one line changes which I dislike more.

Cheers,

Richard