aboutsummaryrefslogtreecommitdiff
path: root/minilibx/test
diff options
context:
space:
mode:
Diffstat (limited to 'minilibx/test')
-rwxr-xr-xminilibx/test/Makefile.mk24
-rwxr-xr-xminilibx/test/main.c284
-rwxr-xr-xminilibx/test/new_win.c31
-rwxr-xr-xminilibx/test/open.xpm1439
-rwxr-xr-xminilibx/test/open24.xpm230
-rwxr-xr-xminilibx/test/open30.xpm1439
6 files changed, 3447 insertions, 0 deletions
diff --git a/minilibx/test/Makefile.mk b/minilibx/test/Makefile.mk
new file mode 100755
index 0000000..5238a12
--- /dev/null
+++ b/minilibx/test/Makefile.mk
@@ -0,0 +1,24 @@
+
+
+INC=%%%%
+
+INCLIB=$(INC)/../lib
+
+CC=gcc
+
+CFLAGS= -I$(INC) -O3 -I..
+
+NAME= mlx-test
+SRC = main.c
+OBJ = $(SRC:.c=.o)
+
+all :$(NAME)
+
+$(NAME) :$(OBJ)
+ $(CC) -o $(NAME) $(OBJ) $(shell pkg-config --libs --static mlx)
+
+clean :
+ rm -f $(NAME) $(OBJ) *~ core *.core
+
+
+re : clean all
diff --git a/minilibx/test/main.c b/minilibx/test/main.c
new file mode 100755
index 0000000..ea132b4
--- /dev/null
+++ b/minilibx/test/main.c
@@ -0,0 +1,284 @@
+
+#include "mlx.h"
+#include "mlx_int.h"
+
+#define WIN1_SX 242
+#define WIN1_SY 242
+#define IM1_SX 42
+#define IM1_SY 42
+#define IM3_SX 242
+#define IM3_SY 242
+
+void *mlx;
+void *win1;
+void *win2;
+void *win3;
+void *im1;
+void *im2;
+void *im3;
+void *im4;
+int bpp1;
+int bpp2;
+int bpp3;
+int bpp4;
+int sl1;
+int sl2;
+int sl3;
+int sl4;
+int endian1;
+int endian2;
+int endian3;
+int endian4;
+char *data1;
+char *data2;
+char *data3;
+char *data4;
+int xpm1_x;
+int xpm1_y;
+
+int local_endian;
+
+int expose_win1(void *p)
+{
+ mlx_put_image_to_window(mlx,win1,im3,0,0);
+}
+
+int expose_win2(void *p)
+{
+ mlx_put_image_to_window(mlx,win2,im4,0,0);
+ mlx_put_image_to_window(mlx,win2,im2,0,0);
+}
+
+int key_win1(int key,void *p)
+{
+ printf("Key in Win1 : %d\n",key);
+ if (key==0xFF1B)
+ exit(0);
+}
+
+int key_win2(int key,void *p)
+{
+ printf("Key in Win2 : %d\n",key);
+ if (key==0xFF1B)
+ exit(0);
+}
+
+int key_win3(int key,void *p)
+{
+ printf("Key in Win3 : %d\n",key);
+ if (key==0xFF1B)
+ mlx_destroy_window(mlx,win3);
+}
+
+int mouse_win1(int button,int x,int y, void *p)
+{
+ printf("Mouse in Win1, button %d at %dx%d.\n",button,x,y);
+}
+
+int mouse_win2(int button,int x,int y, void *p)
+{
+ printf("Mouse in Win2, button %d at %dx%d.\n",button,x,y);
+}
+
+int mouse_win3(int x,int y, void *p)
+{
+ printf("Mouse moving in Win3, at %dx%d.\n",x,y);
+}
+
+
+int main()
+{
+ int a;
+
+ printf("MinilibX Test Program\n");
+ a = 0x11223344;
+ if (((unsigned char *)&a)[0] == 0x11)
+ local_endian = 1;
+ else
+ local_endian = 0;
+ printf(" => Local Endian : %d\n",local_endian);
+
+ printf(" => Connection ...");
+ if (!(mlx = mlx_init()))
+ {
+ printf(" !! KO !!\n");
+ exit(1);
+ }
+ printf("OK (use_xshm %d pshm_format %d)\n",((t_xvar *)mlx)->use_xshm,((t_xvar *)mlx)->pshm_format);
+
+ printf(" => Window1 %dx%d \"Title 1\" ...",WIN1_SX,WIN1_SY);
+ if (!(win1 = mlx_new_window(mlx,WIN1_SX,WIN1_SY,"Title1")))
+ {
+ printf(" !! KO !!\n");
+ exit(1);
+ }
+ printf("OK\n");
+
+ printf(" => Colormap sans event ...");
+ color_map_1(win1,WIN1_SX,WIN1_SY);
+ printf("OK\n");
+ sleep(2);
+
+ printf(" => Clear Window ...");
+ mlx_clear_window(mlx,win1);
+ printf("OK\n");
+ sleep(2);
+
+ printf(" => Image1 ZPixmap %dx%d ...",IM1_SX,IM1_SY);
+ if (!(im1 = mlx_new_image(mlx,IM1_SX,IM1_SY)))
+ {
+ printf(" !! KO !!\n");
+ exit(1);
+ }
+ data1 = mlx_get_data_addr(im1,&bpp1,&sl1,&endian1);
+ printf("OK (bpp1: %d, sizeline1: %d endian: %d type: %d)\n",bpp1,sl1,endian1,
+ ((t_img *)im1)->type);
+
+ printf(" => Fill Image1 ...");
+ color_map_2(data1,bpp1,sl1,IM1_SX,IM1_SY,endian1, 1);
+ printf("OK (pixmap : %d)\n",(int)((t_img *)im1)->pix);
+
+ printf(" => Put Image1 ...");
+ mlx_put_image_to_window(mlx,win1,im1,20,20);
+ printf("OK\n");
+ sleep(2);
+
+ printf(" => Destroy Image1 ... ");
+ mlx_destroy_image(mlx, im1);
+ printf("OK\n");
+ sleep(2);
+
+ printf(" => Image3 ZPixmap %dx%d ...",IM3_SX,IM3_SY);
+ if (!(im3 = mlx_new_image(mlx,IM3_SX,IM3_SY)))
+ {
+ printf(" !! KO !!\n");
+ exit(1);
+ }
+ data3 = mlx_get_data_addr(im3,&bpp3,&sl3,&endian3);
+ printf("OK (bpp3 %d, sizeline3 %d endian3 %d type %d)\n",bpp3,sl3,endian3,
+ ((t_img *)im3)->type);
+
+ printf(" => Fill Image3 ...");
+ color_map_2(data3,bpp3,sl3,IM3_SX,IM3_SY,endian3, 1);
+ printf("OK (pixmap : %d)\n",(int)((t_img *)im3)->pix);
+
+ printf(" => Put Image3 ...");
+ mlx_put_image_to_window(mlx,win1,im3,20,20);
+ printf("OK\n");
+ sleep(2);
+
+ printf(" => String ...");
+ mlx_string_put(mlx,win1,5,WIN1_SY/2,0xFF99FF,"String output");
+ mlx_string_put(mlx,win1,15,WIN1_SY/2+20,0x00FFFF,"MinilibX test");
+ printf("OK\n");
+ sleep(2);
+
+ printf(" => Xpm from file ...");
+ if (!(im2 = mlx_xpm_file_to_image(mlx,"open.xpm",&xpm1_x,&xpm1_y)))
+ {
+ printf(" !! KO !!\n");
+ exit(1);
+ }
+ data2 = mlx_get_data_addr(im2,&bpp2,&sl2,&endian2);
+ printf("OK (xpm %dx%d)(img bpp2: %d, sizeline2: %d endian: %d type: %d)\n",
+ xpm1_x,xpm1_y,bpp2,sl2,endian2,((t_img *)im2)->type);
+ sleep(2);
+
+ printf(" => Put xpm ...");
+ mlx_put_image_to_window(mlx,win1,im2,0,0);
+ mlx_put_image_to_window(mlx,win1,im2,100,100);
+ printf("OK\n");
+ sleep(2);
+
+ printf(" => 2nd window,");
+ win2 = mlx_new_window(mlx,WIN1_SX,WIN1_SY,"Title2");
+ if (!(im4 = mlx_new_image(mlx,IM3_SX, IM3_SY)))
+ {
+ printf(" !! KO !!\n");
+ exit(1);
+ }
+ data4 = mlx_get_data_addr(im4,&bpp4,&sl4,&endian4);
+ color_map_2(data4,bpp4,sl4,IM3_SX,IM3_SY,endian4, 2);
+
+ printf(" 3rd window, Installing hooks ...");
+ win3 = mlx_new_window(mlx,WIN1_SX,WIN1_SY,"Title3");
+ mlx_expose_hook(win1,expose_win1,0);
+ mlx_mouse_hook(win1,mouse_win1,0);
+ mlx_key_hook(win1,key_win1,0);
+ mlx_expose_hook(win2,expose_win2,0);
+ mlx_mouse_hook(win2,mouse_win2,0);
+ mlx_key_hook(win2,key_win2,0);
+ mlx_key_hook(win3,key_win3,0);
+
+ mlx_hook(win3, MotionNotify, PointerMotionMask, mouse_win3, 0);
+
+ printf("OK\nNow in Loop. Just play. Esc in 3 to destroy, 1&2 to quit.\n");
+
+ mlx_loop(mlx);
+}
+
+
+int color_map_1(void *win,int w,int h)
+{
+ int x;
+ int y;
+ int color;
+
+ x = w;
+ while (x--)
+ {
+ y = h;
+ while (y--)
+ {
+ color = (x*255)/w+((((w-x)*255)/w)<<16)+(((y*255)/h)<<8);
+ mlx_pixel_put(mlx,win,x,y,color);
+ }
+ }
+}
+
+
+int color_map_2(unsigned char *data,int bpp,int sl,int w,int h,int endian, int type)
+{
+ int x;
+ int y;
+ int opp;
+ int dec;
+ int color;
+ int color2;
+ unsigned char *ptr;
+
+ opp = bpp/8;
+ printf("(opp : %d) ",opp);
+ y = h;
+ while (y--)
+ {
+ ptr = data+y*sl;
+ x = w;
+ while (x--)
+ {
+ if (type==2)
+ color = (y*255)/w+((((w-x)*255)/w)<<16)
+ +(((y*255)/h)<<8);
+ else
+ color = (x*255)/w+((((w-x)*255)/w)<<16)+(((y*255)/h)<<8);
+ color2 = mlx_get_color_value(mlx,color);
+ dec = opp;
+ while (dec--)
+ if (endian==local_endian)
+ {
+ if (endian)
+ *(ptr+x*opp+dec) = ((unsigned char *)(&color2))[4-opp+dec];
+ else
+ *(ptr+x*opp+dec) = ((unsigned char *)(&color2))[dec];
+ }
+ else
+ {
+ if (endian)
+ *(ptr+x*opp+dec) = ((unsigned char *)(&color2))[opp-1-dec];
+ else
+ *(ptr+x*opp+dec) = ((unsigned char *)(&color2))[3-dec];
+ }
+ }
+ }
+
+}
diff --git a/minilibx/test/new_win.c b/minilibx/test/new_win.c
new file mode 100755
index 0000000..62bed4b
--- /dev/null
+++ b/minilibx/test/new_win.c
@@ -0,0 +1,31 @@
+
+
+
+#include "mlx.h"
+
+
+void *mlx;
+void *win1;
+void *win2;
+
+
+
+int gere_mouse(int x,int y,int button,void*toto)
+{
+ printf("Mouse event - new win\n");
+ mlx_destroy_window(mlx,win1);
+ win1 = mlx_new_window(mlx,random()%500,random()%500,"new win");
+ mlx_mouse_hook(win1,gere_mouse,0);
+}
+
+
+int main()
+{
+ srandom(time(0));
+ mlx = mlx_init();
+ win1 = mlx_new_window(mlx,300,300,"win1");
+ win2 = mlx_new_window(mlx,600,600,"win2");
+ mlx_mouse_hook(win1,gere_mouse,0);
+ mlx_mouse_hook(win2,gere_mouse,0);
+ mlx_loop(mlx);
+}
diff --git a/minilibx/test/open.xpm b/minilibx/test/open.xpm
new file mode 100755
index 0000000..87be371
--- /dev/null
+++ b/minilibx/test/open.xpm
@@ -0,0 +1,1439 @@
+/* XPM */
+static char * open30_2_xpm[] = {
+"64 64 1372 2",
+" c None",
+". c #08090D",
+"+ c #1A1E23",
+"@ c #1F2124",
+"# c #060809",
+"$ c #1A1E21",
+"% c #4F606C",
+"& c #3D4145",
+"* c #868D93",
+"= c #454E56",
+"- c #627481",
+"; c #667C8A",
+"> c #2D3031",
+", c #D7E1E7",
+"' c #4D5157",
+") c #8997A5",
+"! c #282E31",
+"~ c #333B41",
+"{ c #A5C6DB",
+"] c #718C9B",
+"^ c #000000",
+"/ c #181B1F",
+"( c #262828",
+"_ c #D2DEE7",
+": c #B8C5D0",
+"< c #151719",
+"[ c #08090B",
+"} c #272B30",
+"| c #2D3037",
+"1 c #26282C",
+"2 c #1A1D1F",
+"3 c #B1CADB",
+"4 c #56646E",
+"5 c #080809",
+"6 c #080A0C",
+"7 c #1E2126",
+"8 c #98B7C9",
+"9 c #A2CAE2",
+"0 c #7FA1B5",
+"a c #06080A",
+"b c #252729",
+"c c #A7ADB2",
+"d c #272B2E",
+"e c #1E2023",
+"f c #C8D8E5",
+"g c #C9DDED",
+"h c #8996A3",
+"i c #6B7782",
+"j c #C7DFF0",
+"k c #CCE0F0",
+"l c #AFC1CF",
+"m c #47535B",
+"n c #B0D3E8",
+"o c #7E99A9",
+"p c #738493",
+"q c #97B4C7",
+"r c #53606A",
+"s c #6E8996",
+"t c #A1CBE3",
+"u c #9CC6DE",
+"v c #90B5CB",
+"w c #171D22",
+"x c #1E2629",
+"y c #020202",
+"z c #ABB3BA",
+"A c #BBC4C8",
+"B c #222323",
+"C c #141617",
+"D c #5D6164",
+"E c #ACB5BC",
+"F c #676D74",
+"G c #BDD4E5",
+"H c #B3D1E7",
+"I c #B0D1E7",
+"J c #728A99",
+"K c #94AEBF",
+"L c #B1D1E7",
+"M c #505C64",
+"N c #7B98A9",
+"O c #A1CBE0",
+"P c #99C3D9",
+"Q c #475863",
+"R c #A0C9DE",
+"S c #9CC6DA",
+"T c #9ECAE1",
+"U c #9CC5DD",
+"V c #9AC4DC",
+"W c #263137",
+"X c #3C4A55",
+"Y c #658190",
+"Z c #66686B",
+"` c #7D8085",
+" . c #363839",
+".. c #797E81",
+"+. c #D2DBE1",
+"@. c #DDE9F4",
+"#. c #CADEEF",
+"$. c #778593",
+"%. c #AED0E5",
+"&. c #9EC9DE",
+"*. c #9EC8DF",
+"=. c #9BC1D8",
+"-. c #9EC8DE",
+";. c #6B8596",
+">. c #9BC5DC",
+",. c #9BC6DF",
+"'. c #9CC5DC",
+"). c #688595",
+"!. c #6B8698",
+"~. c #9CC4DC",
+"{. c #9BC4DC",
+"]. c #9DC5DD",
+"^. c #647D8C",
+"/. c #485864",
+"(. c #161A1D",
+"_. c #36444C",
+":. c #95BDD5",
+"<. c #566E7E",
+"[. c #A4AAAD",
+"}. c #E9F2F7",
+"|. c #DEEAF6",
+"1. c #B5D4E9",
+"2. c #A9CFE3",
+"3. c #90B3C9",
+"4. c #9FCAE1",
+"5. c #9BC4DD",
+"6. c #7490A2",
+"7. c #99C2DB",
+"8. c #81A5BA",
+"9. c #9CC5DE",
+"0. c #98C1DA",
+"a. c #5F7889",
+"b. c #96BFD8",
+"c. c #44545F",
+"d. c #565A5E",
+"e. c #DFE6EC",
+"f. c #E6EEF7",
+"g. c #D6E4F2",
+"h. c #BFD6E9",
+"i. c #A9CCE3",
+"j. c #9FC8DD",
+"k. c #9DC6DD",
+"l. c #9CC4DD",
+"m. c #7D9FB0",
+"n. c #98C0D6",
+"o. c #9AC5DD",
+"p. c #97BFD8",
+"q. c #9BC5DF",
+"r. c #2D3840",
+"s. c #626567",
+"t. c #E7ECF5",
+"u. c #E1EAF5",
+"v. c #CEE3F3",
+"w. c #B7D6EA",
+"x. c #A4CBE0",
+"y. c #8AAFC5",
+"z. c #647F90",
+"A. c #648092",
+"B. c #89B0C7",
+"C. c #9CC6DF",
+"D. c #5D7486",
+"E. c #7B9BAF",
+"F. c #84A8BF",
+"G. c #9BC5DD",
+"H. c #96BED5",
+"I. c #4B5D69",
+"J. c #9BC5DE",
+"K. c #536B77",
+"L. c #2E3B41",
+"M. c #1B2124",
+"N. c #3F4F58",
+"O. c #4D5152",
+"P. c #E7EEF3",
+"Q. c #E2EAF5",
+"R. c #CEE2F2",
+"S. c #BAD5E9",
+"T. c #9DC2D7",
+"U. c #5C7281",
+"V. c #232A31",
+"W. c #08090A",
+"X. c #121418",
+"Y. c #131619",
+"Z. c #131719",
+"`. c #87ACC3",
+" + c #7B9BAE",
+".+ c #87ADC3",
+"++ c #8FB5CB",
+"@+ c #678295",
+"#+ c #96C0D8",
+"$+ c #607787",
+"%+ c #6B8595",
+"&+ c #96C1DB",
+"*+ c #6A8595",
+"=+ c #35424A",
+"-+ c #7090A1",
+";+ c #15191C",
+">+ c #2D3033",
+",+ c #DDE5EB",
+"'+ c #D2E3F1",
+")+ c #BAD7EB",
+"!+ c #A9CFE5",
+"~+ c #272F35",
+"{+ c #1C2227",
+"]+ c #4F697B",
+"^+ c #6B8FA9",
+"/+ c #759CB6",
+"(+ c #7BA0BB",
+"_+ c #80A5BC",
+":+ c #88B0C8",
+"<+ c #96C3DB",
+"[+ c #8FB6CD",
+"}+ c #80A1B3",
+"|+ c #556876",
+"1+ c #96BFD7",
+"2+ c #566B77",
+"3+ c #93B8CD",
+"4+ c #637A8D",
+"5+ c #9DC6DE",
+"6+ c #8FB4CA",
+"7+ c #55697A",
+"8+ c #6F8F9F",
+"9+ c #91BDD5",
+"0+ c #283239",
+"a+ c #050406",
+"b+ c #767B80",
+"c+ c #BDC6CE",
+"d+ c #D4E5F3",
+"e+ c #C1D7EA",
+"f+ c #A7CDE4",
+"g+ c #9FC9DE",
+"h+ c #668596",
+"i+ c #6D90AA",
+"j+ c #5C7994",
+"k+ c #60849F",
+"l+ c #6286A1",
+"m+ c #688CA8",
+"n+ c #7298B2",
+"o+ c #82A8C2",
+"p+ c #8FBAD5",
+"q+ c #96C2DB",
+"r+ c #89ADC4",
+"s+ c #96BED6",
+"t+ c #99C2DA",
+"u+ c #6C899A",
+"v+ c #92BBD2",
+"w+ c #9AC4DD",
+"x+ c #5B717D",
+"y+ c #9EC6DE",
+"z+ c #8BB1C9",
+"A+ c #718EA0",
+"B+ c #94C3DB",
+"C+ c #536B78",
+"D+ c #3E505F",
+"E+ c #4E6373",
+"F+ c #2C333C",
+"G+ c #070708",
+"H+ c #040404",
+"I+ c #1A1C1E",
+"J+ c #202326",
+"K+ c #050606",
+"L+ c #23292E",
+"M+ c #A1C0D4",
+"N+ c #9FC9DD",
+"O+ c #97C2DB",
+"P+ c #80A8C1",
+"Q+ c #668AA6",
+"R+ c #4B5D72",
+"S+ c #4C647A",
+"T+ c #5F80A0",
+"U+ c #60859E",
+"V+ c #678AA6",
+"W+ c #739BB5",
+"X+ c #85AEC7",
+"Y+ c #92BDD7",
+"Z+ c #96BFD5",
+"`+ c #627B8A",
+" @ c #89B1C9",
+".@ c #2B353C",
+"+@ c #7597B2",
+"@@ c #779CB8",
+"#@ c #52697C",
+"$@ c #1D2328",
+"%@ c #445663",
+"&@ c #5E7A8D",
+"*@ c #252F37",
+"=@ c #090909",
+"-@ c #859BB2",
+";@ c #859DB8",
+">@ c #6E8396",
+",@ c #252C33",
+"'@ c #9CC4D7",
+")@ c #92C0D9",
+"!@ c #79A0BA",
+"~@ c #6487A3",
+"{@ c #566979",
+"]@ c #8CB0C2",
+"^@ c #51697C",
+"/@ c #60849D",
+"(@ c #6D8EAC",
+"_@ c #7BA0BC",
+":@ c #8AB4CE",
+"<@ c #95C2DB",
+"[@ c #9AC5DC",
+"}@ c #95C1DA",
+"|@ c #607B8C",
+"1@ c #597488",
+"2@ c #7EA6BF",
+"3@ c #597587",
+"4@ c #455664",
+"5@ c #668598",
+"6@ c #82A9C4",
+"7@ c #617F92",
+"8@ c #1A2328",
+"9@ c #2B3137",
+"0@ c #728FAC",
+"a@ c #51657B",
+"b@ c #6B8AA8",
+"c@ c #8EAEC7",
+"d@ c #A8C8E2",
+"e@ c #92BDD6",
+"f@ c #769DBA",
+"g@ c #526E87",
+"h@ c #7490A0",
+"i@ c #A6CDE4",
+"j@ c #97BFD4",
+"k@ c #55697D",
+"l@ c #6286A0",
+"m@ c #7399B3",
+"n@ c #84ACC5",
+"o@ c #92BFD9",
+"p@ c #99C4DC",
+"q@ c #94C0DA",
+"r@ c #4F6575",
+"s@ c #7DA5BF",
+"t@ c #7FA2BC",
+"u@ c #8FB6CE",
+"v@ c #95C3DB",
+"w@ c #8EB8D2",
+"x@ c #6A879D",
+"y@ c #111318",
+"z@ c #252A30",
+"A@ c #81868C",
+"B@ c #A5ABAD",
+"C@ c #70767C",
+"D@ c #38434F",
+"E@ c #637F9B",
+"F@ c #516980",
+"G@ c #799AB5",
+"H@ c #A5C3D9",
+"I@ c #93BDD6",
+"J@ c #779EBA",
+"K@ c #445A6B",
+"L@ c #93B5C9",
+"M@ c #B6D3E8",
+"N@ c #AECFE4",
+"O@ c #95BDD2",
+"P@ c #52687A",
+"Q@ c #6486A3",
+"R@ c #7092B0",
+"S@ c #90BCD6",
+"T@ c #97C4DC",
+"U@ c #A0C9E0",
+"V@ c #99C5DD",
+"W@ c #86AEC6",
+"X@ c #8FBAD4",
+"Y@ c #91BDD6",
+"Z@ c #7094AC",
+"`@ c #2A353E",
+" # c #0B0E10",
+".# c #888D90",
+"+# c #787D82",
+"@# c #465360",
+"## c #56697F",
+"$# c #A6CADD",
+"%# c #5A7382",
+"&# c #6C8CAA",
+"*# c #A5BED3",
+"=# c #A7CAE0",
+"-# c #94C1DA",
+";# c #7EA4BF",
+"># c #415160",
+",# c #9DC3D5",
+"'# c #B3CFE1",
+")# c #AAC3D4",
+"!# c #A8CDE4",
+"~# c #89ACBE",
+"{# c #567088",
+"]# c #6C91AC",
+"^# c #81A7C2",
+"/# c #96C4DC",
+"(# c #85A9BD",
+"_# c #708C9B",
+":# c #5A6E7B",
+"<# c #6C8695",
+"[# c #97C3DB",
+"}# c #8BB5CE",
+"|# c #425461",
+"1# c #63819E",
+"2# c #415465",
+"3# c #0B0D0E",
+"4# c #607387",
+"5# c #687D8C",
+"6# c #B8D6E9",
+"7# c #7893A2",
+"8# c #576F85",
+"9# c #A7BACF",
+"0# c #B0CEE5",
+"a# c #98C4DC",
+"b# c #88B1CA",
+"c# c #36444E",
+"d# c #8FA0AD",
+"e# c #73818D",
+"f# c #596D81",
+"g# c #B4D0E4",
+"h# c #A3CDE2",
+"i# c #658296",
+"j# c #6A8DAB",
+"k# c #7BA5C0",
+"l# c #94BAD2",
+"m# c #6D899B",
+"n# c #99C3DC",
+"o# c #8EB9D2",
+"p# c #7AA0BA",
+"q# c #6C8FAB",
+"r# c #6484A1",
+"s# c #1F252C",
+"t# c #121619",
+"u# c #7E96B0",
+"v# c #7A8A96",
+"w# c #BCD7EA",
+"x# c #A0C5D9",
+"y# c #3C4B57",
+"z# c #A9BACD",
+"A# c #BCD5E8",
+"B# c #84A6BA",
+"C# c #8EA1AE",
+"D# c #CFD1D4",
+"E# c #ECF6FA",
+"F# c #ABB7C2",
+"G# c #556F84",
+"H# c #57626A",
+"I# c #5C7078",
+"J# c #6C8AA7",
+"K# c #80A6C0",
+"L# c #91B8D0",
+"M# c #94BFD8",
+"N# c #87B0CA",
+"O# c #7CA2BB",
+"P# c #7097AF",
+"Q# c #495E6F",
+"R# c #0C0E11",
+"S# c #3A3F43",
+"T# c #8AA3BB",
+"U# c #778592",
+"V# c #C0D8EB",
+"W# c #B3D5E9",
+"X# c #404A53",
+"Y# c #B2C2D3",
+"Z# c #96A1AC",
+"`# c #9DB2C3",
+" $ c #AEBECE",
+".$ c #EDEFF3",
+"+$ c #F7FAFC",
+"@$ c #B6BFC7",
+"#$ c #556E85",
+"$$ c #121314",
+"%$ c #2B2E2F",
+"&$ c #555A5E",
+"*$ c #3B4C5B",
+"=$ c #6F8EA4",
+"-$ c #92BED8",
+";$ c #9DC7DF",
+">$ c #87ACC1",
+",$ c #546A78",
+"'$ c #516874",
+")$ c #4E6570",
+"!$ c #4D6271",
+"~$ c #4C6271",
+"{$ c #4E677A",
+"]$ c #38454E",
+"^$ c #6C7278",
+"/$ c #86A1B6",
+"($ c #5C656C",
+"_$ c #A4B0BA",
+":$ c #555D64",
+"<$ c #657178",
+"[$ c #A6B0B5",
+"}$ c #939CA1",
+"|$ c #D4E4F1",
+"1$ c #A0BACE",
+"2$ c #B9C7D7",
+"3$ c #F6F7F9",
+"4$ c #C6CED1",
+"5$ c #506A7C",
+"6$ c #060607",
+"7$ c #676A6B",
+"8$ c #91999F",
+"9$ c #7CA3BE",
+"0$ c #96BCD4",
+"a$ c #5B717E",
+"b$ c #4B5F6C",
+"c$ c #455864",
+"d$ c #5B717F",
+"e$ c #81A5B9",
+"f$ c #98C4DD",
+"g$ c #93BFD8",
+"h$ c #87B1CA",
+"i$ c #7BA1BC",
+"j$ c #5A7489",
+"k$ c #222A33",
+"l$ c #838A92",
+"m$ c #9DADBC",
+"n$ c #ECF0F5",
+"o$ c #F1F9FB",
+"p$ c #818A8D",
+"q$ c #4A5155",
+"r$ c #6A6F72",
+"s$ c #7E898F",
+"t$ c #E6F1F7",
+"u$ c #CADCED",
+"v$ c #A0B7CC",
+"w$ c #C6D1DF",
+"x$ c #AFB3B4",
+"y$ c #5F707D",
+"z$ c #CBCFD1",
+"A$ c #F4F5F6",
+"B$ c #66737F",
+"C$ c #87B2CB",
+"D$ c #90B7CD",
+"E$ c #596E7B",
+"F$ c #586F7E",
+"G$ c #8BB0C8",
+"H$ c #91BED6",
+"I$ c #83ADC7",
+"J$ c #6D8EA7",
+"K$ c #3F5161",
+"L$ c #2D3A45",
+"M$ c #1F2020",
+"N$ c #BDC5CC",
+"O$ c #E0EDF5",
+"P$ c #BBCAD8",
+"Q$ c #E1E4E7",
+"R$ c #5E6368",
+"S$ c #5B5F62",
+"T$ c #D9E7F3",
+"U$ c #A4C3D6",
+"V$ c #89A3B3",
+"W$ c #7B91A1",
+"X$ c #627990",
+"Y$ c #42505A",
+"Z$ c #CACCCE",
+"`$ c #F9F9F9",
+" % c #FDFDFD",
+".% c #BCBEC0",
+"+% c #5C7689",
+"@% c #8DB9D3",
+"#% c #8FB5CC",
+"$% c #536471",
+"%% c #98C1D9",
+"&% c #91BED7",
+"*% c #81AAC5",
+"=% c #597386",
+"-% c #41535F",
+";% c #6486A2",
+">% c #4D667D",
+",% c #070809",
+"'% c #44484E",
+")% c #BEC8D0",
+"!% c #8096A6",
+"~% c #516473",
+"{% c #A9ACAF",
+"]% c #8B8F91",
+"^% c #A8B3BD",
+"/% c #C5DAEB",
+"(% c #9FC8E1",
+"_% c #8FBCD6",
+":% c #81A8C2",
+"<% c #6C90AC",
+"[% c #56728C",
+"}% c #585B5F",
+"|% c #CBCDCD",
+"1% c #C1C3C6",
+"2% c #4F565F",
+"3% c #82ABC3",
+"4% c #93BCD3",
+"5% c #95BED7",
+"6% c #8EB9D3",
+"7% c #5B788B",
+"8% c #627E91",
+"9% c #7FA7C1",
+"0% c #6C91AB",
+"a% c #546F87",
+"b% c #6F7376",
+"c% c #D5E2EF",
+"d% c #A9C4D8",
+"e% c #81A1BA",
+"f% c #333940",
+"g% c #5F6B76",
+"h% c #C0D5E8",
+"i% c #AACCE2",
+"j% c #8EB8D3",
+"k% c #7FA5BF",
+"l% c #7095B0",
+"m% c #4E697E",
+"n% c #07090A",
+"o% c #0D0F10",
+"p% c #7193A6",
+"q% c #96C3DC",
+"r% c #8EBCD7",
+"s% c #91BDD7",
+"t% c #8FBBD6",
+"u% c #7699AD",
+"v% c #4D626F",
+"w% c #252D33",
+"x% c #101215",
+"y% c #0C0D0E",
+"z% c #0A0C0E",
+"A% c #06090A",
+"B% c #7F8488",
+"C% c #D7E3F1",
+"D% c #B6D0E4",
+"E% c #A3C2D7",
+"F% c #596872",
+"G% c #A9BED0",
+"H% c #B4D0E5",
+"I% c #9EC8DC",
+"J% c #8FB9D4",
+"K% c #85ADC7",
+"L% c #7FA4BE",
+"M% c #4B606F",
+"N% c #4E6372",
+"O% c #89B6D0",
+"P% c #92C1DA",
+"Q% c #9DC7DD",
+"R% c #95C0DA",
+"S% c #94BED8",
+"T% c #8BB8D1",
+"U% c #7AA0B9",
+"V% c #4E667A",
+"W% c #344151",
+"X% c #0C0D0F",
+"Y% c #8A8F92",
+"Z% c #D4E6F5",
+"`% c #BCD5E9",
+" & c #8599A5",
+".& c #939DA6",
+"+& c #C4DAEB",
+"@& c #89A6B9",
+"#& c #7D9FB5",
+"$& c #98C3DC",
+"%& c #95C0D9",
+"&& c #7CA2B9",
+"*& c #7697AE",
+"=& c #698498",
+"-& c #7394A8",
+";& c #9EC7DF",
+">& c #8DB1C4",
+",& c #6B8594",
+"'& c #50636C",
+")& c #50626C",
+"!& c #7F9FB1",
+"~& c #93B8D0",
+"{& c #627A88",
+"]& c #90B6CC",
+"^& c #93BDD7",
+"/& c #87AFC9",
+"(& c #7291A7",
+"_& c #384651",
+":& c #121618",
+"<& c #12171B",
+"[& c #4F6986",
+"}& c #597998",
+"|& c #324052",
+"1& c #969CA1",
+"2& c #D6E6F5",
+"3& c #C6DCEE",
+"4& c #505A64",
+"5& c #82929F",
+"6& c #99ABBB",
+"7& c #A1B9CA",
+"8& c #87A0B0",
+"9& c #718EA1",
+"0& c #8DB2C9",
+"a& c #8BAEC4",
+"b& c #586D7D",
+"c& c #97C0D9",
+"d& c #8DB3C9",
+"e& c #95B8CD",
+"f& c #9DC0D6",
+"g& c #6F8B9C",
+"h& c #354249",
+"i& c #464E54",
+"j& c #8A98A5",
+"k& c #AABAC7",
+"l& c #86939E",
+"m& c #41494F",
+"n& c #4A5861",
+"o& c #97C1DA",
+"p& c #5E7888",
+"q& c #5C7482",
+"r& c #88ACC2",
+"s& c #91BFD7",
+"t& c #799CB5",
+"u& c #47596A",
+"v& c #0D0F12",
+"w& c #1A2127",
+"x& c #56778D",
+"y& c #688BA9",
+"z& c #5D7F9E",
+"A& c #547391",
+"B& c #0E1013",
+"C& c #9DA6AB",
+"D& c #C8DCED",
+"E& c #7A8996",
+"F& c #B5CEE0",
+"G& c #BCDBEC",
+"H& c #B9D5EA",
+"I& c #8BA2B2",
+"J& c #6C8A9D",
+"K& c #97BFD7",
+"L& c #3E4E59",
+"M& c #92B5CB",
+"N& c #535F68",
+"O& c #454F56",
+"P& c #6F7C87",
+"Q& c #ABC0D1",
+"R& c #C7DCEE",
+"S& c #C5DBED",
+"T& c #C2D7EA",
+"U& c #BFD8EA",
+"V& c #BCD7EB",
+"W& c #62717B",
+"X& c #5B6F7B",
+"Y& c #95C3DC",
+"Z& c #8BB2C9",
+"`& c #485761",
+" * c #42525F",
+".* c #6686A1",
+"+* c #587896",
+"@* c #1B2129",
+"#* c #5C7A94",
+"$* c #7DA2BD",
+"%* c #84AEC7",
+"&* c #749BB5",
+"** c #5C7E9C",
+"=* c #27343F",
+"-* c #A4A9B2",
+";* c #D9E7F4",
+">* c #C8DBEC",
+",* c #B1C8DA",
+"'* c #5D6C76",
+")* c #A8C5D8",
+"!* c #A6BDD0",
+"~* c #B9D6EA",
+"{* c #B9D4E9",
+"]* c #8198A8",
+"^* c #8AADC3",
+"/* c #8CB1CA",
+"(* c #96C2D8",
+"_* c #A3C7DF",
+":* c #ADCDE3",
+"<* c #ABD0E4",
+"[* c #ADCFE3",
+"}* c #AACEE4",
+"|* c #A4CDE3",
+"1* c #A1CBE1",
+"2* c #A3CCE3",
+"3* c #A2C9DF",
+"4* c #41515A",
+"5* c #81A2B5",
+"6* c #94C0D7",
+"7* c #5E7789",
+"8* c #526777",
+"9* c #516777",
+"0* c #6B8CA5",
+"a* c #759CBA",
+"b* c #658AA5",
+"c* c #587798",
+"d* c #1B242B",
+"e* c #0E1110",
+"f* c #101214",
+"g* c #202931",
+"h* c #59758E",
+"i* c #799FBB",
+"j* c #84B1CA",
+"k* c #86ACC6",
+"l* c #354758",
+"m* c #A0A6AE",
+"n* c #DAE6F2",
+"o* c #C4DCEE",
+"p* c #B4D2E8",
+"q* c #3E4A53",
+"r* c #698091",
+"s* c #5D7581",
+"t* c #A3CAE0",
+"u* c #A6CFE5",
+"v* c #A5CCE5",
+"w* c #718A9C",
+"x* c #98C3DB",
+"y* c #83ABC7",
+"z* c #2E3B46",
+"A* c #33414A",
+"B* c #678398",
+"C* c #8AB3CE",
+"D* c #93BED7",
+"E* c #97C4DB",
+"F* c #42525E",
+"G* c #88ACC0",
+"H* c #789EB9",
+"I* c #7A9FBB",
+"J* c #7EA2BD",
+"K* c #779DB5",
+"L* c #577081",
+"M* c #5B7B9B",
+"N* c #1D2229",
+"O* c #547390",
+"P* c #54728D",
+"Q* c #6082A0",
+"R* c #688EA9",
+"S* c #6689A7",
+"T* c #6086A0",
+"U* c #6285A1",
+"V* c #6B8DAA",
+"W* c #718FAB",
+"X* c #3E5568",
+"Y* c #969DA1",
+"Z* c #DBE8F4",
+"`* c #95ACBD",
+" = c #758B9A",
+".= c #A4C9DE",
+"+= c #698190",
+"@= c #667E8A",
+"#= c #7D99AA",
+"$= c #7B9BAD",
+"%= c #6F8C9A",
+"&= c #536976",
+"*= c #84ADC6",
+"== c #6D92AD",
+"-= c #62829E",
+";= c #43576A",
+">= c #2F3B46",
+",= c #5C788A",
+"'= c #86AFC8",
+")= c #93BED8",
+"!= c #93BAD5",
+"~= c #93BAD2",
+"{= c #92BCD4",
+"]= c #7EA2B6",
+"^= c #3D4D56",
+"/= c #485B67",
+"(= c #7596A9",
+"_= c #8CBBD4",
+":= c #90BCD5",
+"<= c #91BFD9",
+"[= c #789BAD",
+"}= c #465B6A",
+"|= c #59789A",
+"1= c #5D7F9D",
+"2= c #5E839C",
+"3= c #59799A",
+"4= c #415569",
+"5= c #2D3A46",
+"6= c #2E3B49",
+"7= c #4A647C",
+"8= c #587690",
+"9= c #39485A",
+"0= c #7F8589",
+"a= c #D9E8F5",
+"b= c #CCDEEE",
+"c= c #8597A5",
+"d= c #B3D2E3",
+"e= c #9BB3C4",
+"f= c #B2CEE1",
+"g= c #B2D1E7",
+"h= c #ABCFE6",
+"i= c #94B7CB",
+"j= c #495C6A",
+"k= c #688498",
+"l= c #617B8A",
+"m= c #85ADC8",
+"n= c #78A0B9",
+"o= c #62819B",
+"p= c #2E3843",
+"q= c #485A6C",
+"r= c #67889C",
+"s= c #8AB5CF",
+"t= c #8EB9D1",
+"u= c #6C899B",
+"v= c #6E91A7",
+"w= c #678399",
+"x= c #6888A1",
+"y= c #323E48",
+"z= c #5B7585",
+"A= c #98C5DD",
+"B= c #83ACC1",
+"C= c #2D373F",
+"D= c #4B637C",
+"E= c #567694",
+"F= c #26313C",
+"G= c #15191F",
+"H= c #4D647A",
+"I= c #252F39",
+"J= c #5D6163",
+"K= c #DDE9F5",
+"L= c #CEDFEE",
+"M= c #8898A5",
+"N= c #B0CBDC",
+"O= c #BFDAEC",
+"P= c #BFDBEC",
+"Q= c #BBDAEC",
+"R= c #BAD7EA",
+"S= c #6B808F",
+"T= c #7297B0",
+"U= c #8CB8D1",
+"V= c #95C1D9",
+"W= c #91BCD6",
+"X= c #86AEC8",
+"Y= c #7496B3",
+"Z= c #6587A2",
+"`= c #384958",
+" - c #323F4B",
+".- c #546A7C",
+"+- c #6C88A1",
+"@- c #779AB1",
+"#- c #658297",
+"$- c #3B4A58",
+"%- c #33404B",
+"&- c #202830",
+"*- c #577287",
+"=- c #86B1CC",
+"-- c #86ACC0",
+";- c #6E8797",
+">- c #9CC7DF",
+",- c #92BCD5",
+"'- c #91BCD5",
+")- c #8EB6CE",
+"!- c #344453",
+"~- c #263039",
+"{- c #364452",
+"]- c #2B3643",
+"^- c #2A2D2E",
+"/- c #E1EBF4",
+"(- c #D2E4F3",
+"_- c #A0B2C3",
+":- c #8094A1",
+"<- c #BAD8EB",
+"[- c #B8D6EA",
+"}- c #485A6A",
+"|- c #789FB9",
+"1- c #90BBD3",
+"2- c #94C4DC",
+"3- c #88B3CD",
+"4- c #7A9EB9",
+"5- c #698BA8",
+"6- c #4D677C",
+"7- c #151A1E",
+"8- c #1A2125",
+"9- c #171C21",
+"0- c #1D2329",
+"a- c #1D262E",
+"b- c #486073",
+"c- c #6A8CAA",
+"d- c #7CA2BE",
+"e- c #90BDD7",
+"f- c #9AC5DE",
+"g- c #7493A2",
+"h- c #708B99",
+"i- c #8CB7D1",
+"j- c #7494AB",
+"k- c #68889F",
+"l- c #6A8FA5",
+"m- c #7BA2BC",
+"n- c #171D21",
+"o- c #1D262F",
+"p- c #212B36",
+"q- c #09090B",
+"r- c #BBC2C9",
+"s- c #D4E4F2",
+"t- c #C1D9EB",
+"u- c #44515A",
+"v- c #92B5C9",
+"w- c #6B8795",
+"x- c #4E687E",
+"y- c #7EA6C0",
+"z- c #91BED8",
+"A- c #93BFD9",
+"B- c #8CB5D0",
+"C- c #7DA4BE",
+"D- c #6F92AE",
+"E- c #6687A5",
+"F- c #526C85",
+"G- c #415669",
+"H- c #384655",
+"I- c #6589A4",
+"J- c #6E92AE",
+"K- c #80A8C2",
+"L- c #92BCD6",
+"M- c #91BFD8",
+"N- c #799AAF",
+"O- c #6A8796",
+"P- c #81AAC3",
+"Q- c #577187",
+"R- c #1F2930",
+"S- c #192027",
+"T- c #1B2227",
+"U- c #0D1010",
+"V- c #0E1012",
+"W- c #070709",
+"X- c #5C6062",
+"Y- c #DCE8F3",
+"Z- c #C4DCEF",
+"`- c #9BB3C6",
+" ; c #3A424F",
+".; c #313A44",
+"+; c #35424C",
+"@; c #374655",
+"#; c #6E91AD",
+"$; c #87B2CC",
+"%; c #799EBA",
+"&; c #618298",
+"*; c #7095AF",
+"=; c #435663",
+"-; c #80A7C0",
+";; c #95C4DC",
+">; c #779CB3",
+",; c #526D7E",
+"'; c #516A7A",
+"); c #526B7B",
+"!; c #465764",
+"~; c #34414E",
+"{; c #5C7E9A",
+"]; c #2B3741",
+"^; c #4B657F",
+"/; c #5C7D9C",
+"(; c #557088",
+"_; c #0F0F10",
+":; c #B9C2CA",
+"<; c #CCDFEF",
+"[; c #B4CDE1",
+"}; c #8DAEC8",
+"|; c #6F93AE",
+"1; c #678CA6",
+"2; c #6E92AF",
+"3; c #81A8C1",
+"4; c #8FBBD5",
+"5; c #8DB9D2",
+"6; c #6D8FA2",
+"7; c #586F82",
+"8; c #394851",
+"9; c #86B0C6",
+"0; c #85AFC8",
+"a; c #6F94AF",
+"b; c #698DA8",
+"c; c #6889A7",
+"d; c #5E7E9F",
+"e; c #475D75",
+"f; c #2E3C4A",
+"g; c #5D7E9D",
+"h; c #405465",
+"i; c #36393B",
+