diff --git a/.instructions_page3.txt.swp b/.instructions_page3.txt.swp new file mode 100644 index 0000000..f487c22 Binary files /dev/null and b/.instructions_page3.txt.swp differ diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs index 94e6af4..ac44498 100644 --- a/.settings/org.eclipse.core.resources.prefs +++ b/.settings/org.eclipse.core.resources.prefs @@ -1,2 +1,3 @@ eclipse.preferences.version=1 encoding//src/Map.cpp=UTF-8 +encoding//src/Player.cpp=UTF-8 diff --git a/Debug/src/Map.o b/Debug/src/Map.o index 045661d..0cebf89 100644 Binary files a/Debug/src/Map.o and b/Debug/src/Map.o differ diff --git a/Debug/src/Player.o b/Debug/src/Player.o index 8fb36ee..a1d9f7d 100644 Binary files a/Debug/src/Player.o and b/Debug/src/Player.o differ diff --git a/boss.txt b/boss.txt new file mode 100644 index 0000000..24f5564 --- /dev/null +++ b/boss.txt @@ -0,0 +1,5 @@ + [***] +8)O|||O(8 +8)O|||O(8 +8)O|||O(8 +8)O|||O(8 diff --git a/boss.txt~ b/boss.txt~ new file mode 100644 index 0000000..24f5564 --- /dev/null +++ b/boss.txt~ @@ -0,0 +1,5 @@ + [***] +8)O|||O(8 +8)O|||O(8 +8)O|||O(8 +8)O|||O(8 diff --git a/collisionmap3.txt b/collisionmap3.txt new file mode 100644 index 0000000..7c8a790 --- /dev/null +++ b/collisionmap3.txt @@ -0,0 +1,181 @@ +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +1111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000001111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000011111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000001111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000001111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000001111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000001111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000001111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000011111111111111111110000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000001111111111111111111111111110000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000111111111111111111111111111111100000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111110000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111100000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111110000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111100000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111100000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111110000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111110000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111110000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111110000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111110000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111110000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111110000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111110000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111110000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111110000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111110000000000000000000001 +1110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111110000000000000000000001 +1111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111100000000000000000000001 +1111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111100000000000000000000001 +1111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111100000000000000000000001 +1111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111100000000000000000000001 +1111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111000000000000000000000001 +1111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111000000000000000000000001 +1111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111000000000000000000000001 +1111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111000000000000000000000001 +1111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111110000000000000000000000001 +1111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111110000000000000000000000001 +1111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111110000000000000000000000001 +1111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111110000000000000000000000001 +1111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001 +1111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001 +1111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001 +1111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001 +1111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001 +1111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001 +1111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000001 +1111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001 +1111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001 +1111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001 +1111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001 +1111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001 +1111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111000000000000000000000000000000000000000000000111111111111111111111000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111110000000000000000000000000000000000000000000001111111111111111111111110000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111110000000000000000000000000000000000000000000000111111111111111111111100000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111110000000000000000000000000000000000000000000000111111111111111111111100000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111110000000000000000000000000000000000000000000000111111111111111111111100000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111110000000000000000000000000000000000000000000000111111111111111111111100000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111100000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111110000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111100000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111100000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111110000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111100000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111100000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111100000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 \ No newline at end of file diff --git a/collisionmap4.txt b/collisionmap4.txt new file mode 100644 index 0000000..4bad237 --- /dev/null +++ b/collisionmap4.txt @@ -0,0 +1,181 @@ +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +1111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000001111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000001 +1000011111110000000000000000000000000000001111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000011111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000001 +1001111111111100000000000000000000000001111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000001 +1001111111111110000000000000000000000011111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000001 +1001111111111110000000000000000000000011111111111100000000000000000000000000000001111111000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000001111111111111111111111111111000000000000000000000000000000000000000000000000000000011111111100001 +1001111111111100000000000000000000000011111111111100000000000000000000000000000111111111110000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000111111111111111111111111111110000000000000000000000000000000000000000000000000000000111111111110001 +1000000111111000000000000000000000000011111111111000000000000000000000000000000111111111111000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000111111111111111111111111111100000000000000000000000000000000000000000000000000000000111111111111001 +1000000011100000000000000000000000000000001110000000000000000000000000000000000111111111111000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000001111111111111111111111111111000000000000000000000000000000000000000000000000000000000111111111111001 +1000000011100000000000000000000000000000001110000000000000000000000000000000000111111111110000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000111111111111111111111111111000000000000000000000000000000000000000000000000000000000000111111111110001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000011111100000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000011111100001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000001110000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000001110000001 +1000000000000000000000011110000000000000000000000000000000000000000000000000000000001110000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000001111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000001110000001 +1000000000000000000011111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000001111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011100000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111110000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000011100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000111111111111111100000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000001 +1000000000000000000000011100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000001111111110000000000000000000000000000000000000111111111000000000000001111111111100000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111110000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000001111111111100000000000001111111111110000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011100000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000001111111111110000000000001111111111110000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011100000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000001111111111110000000000001111111111100000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000001111111111110000000000000000111111000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000111111111100000000000000000011100000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000111000000000000000000000011100000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000111000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000111000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000011111111111111111110000000000000000000001111111111100001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000001111111111111111111111111110000000000000000001111111111110001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000111111111111111111111111111111100000000000000001111111111110001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000111111111111111111111111111111111110000000000000001111111111110001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111110000000000000111111111100001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111100000000000000111000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111110000000000000111000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111000000000000111000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111110000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111100000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111000000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111110000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111110000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111100000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111100000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111110000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111110000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111100000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111100000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111110000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111100000000000000000000001 +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111110000000000000000000001 +1110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111110000000000000000000001 +1111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111100000000000000000000001 +1111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111000000000000000000000001 +1111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111100000000000000000000001 +1111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111100000000000000000000001 +1111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111000000000000000000000001 +1111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111110000000000000000000000001 +1111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111000000000000000000000001 +1111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111110000000000000000000000001 +1111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111110000000000000000000000001 +1111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111110000000000000000000000001 +1111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001 +1111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111110000000000000000000000001 +1111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001 +1111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001 +1111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001 +1111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000001111111000000000001111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001 +1111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111110000000001111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001 +1111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111000000011111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000001 +1111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111000000011111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000001 +1111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111110000000111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001 +1111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111100000001111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000001 +1111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001110000000011111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001 +1111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001110000000011111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001 +1111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111000000000000000000000000000000000000000000000111111111111111111111000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111110000000000000000000000000000000000000000000001111111111111111111111110000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111110000000000000000000000000000000000000000000000111111111111111111111100000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111110000000000000000000000000000000000000000000000111111111111111111111100000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111110000000000000000000000000000000000000000000000111111111111111111111100000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111110000000000000000000000000000000000000000000000111111111111111111111100000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111100000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111100000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111110000000000000000000000000000000000000000000000000000000000000000001111111111110000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111100000000000000000000000000000000000000000000000000000000000000001111111111110000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111000000000000000000000000000000000000000000000000000000000000000001111111111110000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111000000000000000000000000000000000000000000000000000000000000000001111111111100000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111000000000000000000000000000000000000000000000000000000000000000000000111000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111000000000000000000000000000000000000000000000000000000000000000000000111000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111110000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111110000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111100000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111100000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111100000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111110000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111100000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011100000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111100000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111100000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111100000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001110000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001110000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001110000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111100000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111100000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111100000000000000000000000000000000000000000000000000000011111111111100000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000000011111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111110000000000000000000000000000000000000000000000000000011111111111000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111000000000000000000000000000000000000000000000000000000001110000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000000000000000000000000000000000000000000111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111000000000000000000000000000000000000000000000000000000001110000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000011111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000011100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000000000000000000011100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000011100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000011100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 \ No newline at end of file diff --git a/instructions.txt~ b/instructions.txt~ new file mode 100644 index 0000000..8718e7e --- /dev/null +++ b/instructions.txt~ @@ -0,0 +1,42 @@ +~ How to play ~ + + + / + >_>\ + /| <- Filippo + / \ + + +Use the arrow keys to move Filippo around the world + +w + + | + T +>_< +/| Your health will regenerate if you don't get hit for a while +/ \ Slaining monsters will sometime raise your attack, defense or maximum health + + <_< >_> q - Special attack + a --|-|\ /|-|-- d + / \ / \ + +s +>_< + |\ +/ \ + | + T + +Goal: Find and defeats this bad guy! + + [***] + 8)O|||O(8 + 8)O|||O(8 + 8)O|||O(8 + 8)O|||O(8 + + +Press 'c' to continue + + diff --git a/instructions_page1.txt b/instructions_page1.txt new file mode 100644 index 0000000..0590ca5 --- /dev/null +++ b/instructions_page1.txt @@ -0,0 +1,14 @@ +~ A Ginger Tale ~ + +Monsters are attacking from everywhere! + +Our hero Filippo is encharged to slain them all + + / +>_>\ +/| <- Filippo +/ \ + +Press 'c' to continue + + diff --git a/instructions_page1.txt~ b/instructions_page1.txt~ new file mode 100644 index 0000000..e8a5f5b --- /dev/null +++ b/instructions_page1.txt~ @@ -0,0 +1,14 @@ +~ A Ginger Tale ~ + +Monsters are attacking from everywhere! + +Our hero Filippo is encharged to slain them all + + / +>_>\ +/| <- Filippo +/ \ + +Press 'c' to continue + + diff --git a/instructions_page2.txt b/instructions_page2.txt new file mode 100644 index 0000000..9a3e6b7 --- /dev/null +++ b/instructions_page2.txt @@ -0,0 +1,24 @@ +~ How to play ~ + +Use the arrow keys to move Filippo around the world + +w + + | + T +>_< +/| +/ \ + + <_< >_> +a --|-|\ /|-|-- d + / \ / \ + +s +>_< +||\ +/ \ + T + | + +Press 'c' to continue diff --git a/instructions_page2.txt~ b/instructions_page2.txt~ new file mode 100644 index 0000000..3031d63 --- /dev/null +++ b/instructions_page2.txt~ @@ -0,0 +1,38 @@ +~ How to play ~ + +Use the arrow keys to move Filippo around the world + +w + + | + T +>_< +/| +/ \ + + <_< >_> +a --|-|\ /|-|-- d + / \ / \ + +s +>_< +||\ +/ \ + T + | + +Your health will regenerate if you don't get hit for a while + +Rewards for slaining monsters: + +IMP + Health +GOB + Health +VAM + Attack +ZOM + Defense +SPI + Max Health +LIC + Attack, Health, Max Power (rare) + +q - unleash the Ginger Power. Depletes the power bar. Damage and area of +effect depends on the number of charges + +Press 'c' to continue diff --git a/instructions_page3.txt b/instructions_page3.txt new file mode 100644 index 0000000..040c820 --- /dev/null +++ b/instructions_page3.txt @@ -0,0 +1,27 @@ +~ Combat ~ + +Your health will regenerate if you don't get hit for a while + +Rewards for slaining monsters: + +IMP + Health +GOB + Health +VAM + Attack +ZOM + Defense +SPI + Max Health +LIC + Attack, Health, Max Power (rare) + +q - unleash the Ginger Power. Depletes the power bar. +Damage and area of effect depends on the number of charges + + ~~~ + ~~~~~ + ~~~~~~~ +~~~>_>~~~ +~~~/|\~~~ +~~~/~\~~~ + ~~~~~~~ + ~~~~~ + ~~~ + +Press 'c' to continue diff --git a/instructions_page3.txt~ b/instructions_page3.txt~ new file mode 100644 index 0000000..9bb49ef --- /dev/null +++ b/instructions_page3.txt~ @@ -0,0 +1,25 @@ +Your health will regenerate if you don't get hit for a while + +Rewards for slaining monsters: + +IMP + Health +GOB + Health +VAM + Attack +ZOM + Defense +SPI + Max Health +LIC + Attack, Health, Max Power (rare) + +q - unleash the Ginger Power. Depletes the power bar. +Damage and area of effect depends on the number of charges + + ~~~ + ~~~~~ + ~~~~~~~ +~~~>_>~~~ +~~~/|\~~~ +~~~/~\~~~ + ~~~~~~~ + ~~~~~ + ~~~ + +Press 'c' to continue diff --git a/instructions_page4.txt b/instructions_page4.txt new file mode 100644 index 0000000..ed29719 --- /dev/null +++ b/instructions_page4.txt @@ -0,0 +1,13 @@ +~ Goal ~ + + +Find and defeats this bad guy! + + [***] +8)O|||O(8 +8)O|||O(8 +8)O|||O(8 +8)O|||O(8 + + +Press 'c' to continue diff --git a/instructions_page4.txt~ b/instructions_page4.txt~ new file mode 100644 index 0000000..59c9122 --- /dev/null +++ b/instructions_page4.txt~ @@ -0,0 +1,15 @@ +~ Goal ~ + + +Find and defeats this bad guy! + + [***] +8)O|||O(8 +8)O|||O(8 +8)O|||O(8 +8)O|||O(8 + + +Press 'c' to continue + + diff --git a/map3.txt b/map3.txt new file mode 100644 index 0000000..cce4232 --- /dev/null +++ b/map3.txt @@ -0,0 +1,181 @@ +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN...........................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.......................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN...................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""".........................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN...........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""""""""""""""""""""""""................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN...........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +............................"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""...................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +..........................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""".....................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +..........................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""".......................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +.........................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""........................................................NMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +..........................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""".........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.......................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +..........................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.....................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +...........................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""".........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN....................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +............................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN...................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""""""""""""""""".........."""""""""""""""""""""""""""""""""""""""""" +............................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""".........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN................................................NNNNNNNNNNNNNNNNNNNNNNNNNNN""""""""""....................................""""""""""""""""""""""""""""" +..............................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""..........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN............................................NNNNNNNNNNNNNNNNNNNNNNNNNNNN..................................................""""""""""""""""""""""""""" +...............................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""...........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN......................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN....................................................."""""""""""""""""""""""" +................................"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""...........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN...........................................................""""""""""""""""""""" +..................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""".........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..........................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.........................."""""""""""""""""""""""................."""""""""""""""""" +...................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""..............................................""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.......................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN........................""""""""""""""""""""""""""""""".................""""""""""""""" +.......................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""...........................................""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN...................NNNNNNNNNNNNNNNNNNNNNNNNNNNN.........................""""""""""""""""""""""""""""""""""""""..............."""""""""""""" +.........................................""""""""""""""""""""""""""""""""""""""""""""""""""""""............................................"""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..................NNNNNNNNNNNNNNNNNNNNNNNN.........................."""""""""""""""""""""""""""""""""""""""""""".............."""""""""""" +.............................................""""""""""""""""""""""""""""""""""""""""""""""""............................................""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..............NNNNNNNNNNNNNNNNNNNN...........................""""""""""""""""""""""""""""""""""""""""""""""".............."""""""""""" +................................................""""""""""""""""""""""""""""""""""""""""""""..........................................."""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN~.........NNNNNNNNNNNNNNNN.............................""""""""""""""""""""""""""""""""""""""""""""""""""..............""""""""""" +.....................................................""""""""""""""""""""""""""""""..................................................."""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..........NNNNNNNNN..............................""""""""""""""""""""""""""""""""""""""""""""""""""""""..............""""""""""" +....................................................................................................................................""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN................................................"""""""""""""""""""""""""""""""""""""""""""""""""""""""..............""""""""""" +...................................................................................................................................""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.............................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""".............""""""""""" +.................................................................................................................................."""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.............................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""............."""""""""""" +..................................................................................................................................""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""".........................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""............."""""""""""" +................................................................................................................................."""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""........................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""............."""""""""""" +................................................................................................................................"""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""........................................"""""""""""""""""""""""""""""""""""""""""""""""""""""""""".............""""""""""""" +..............................................................................................................................."""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""......................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""..............""""""""""""" +..............................................................................................................................""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""......................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""".............."""""""""""""" +..............................................................................................................................""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""........................................"""""""""""""""""""""""""""""""""""""""""""""""""""""...............""""""""""""""" +..............................................................................................................................""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""........................................"""""""""""""""""""""""""""""""""""""""""""""""..................."""""""""""""""" +..............................................................................................................................""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""".........................................."""""""""""""""""""""""""""""""""""""""......................."""""""""""""""""" +............................................................................................................................."""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""..............................................""""".................................................."""""""""""""""""""" +............................................................................................................................."""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""..................................................................................................""""""""""""""""""""""" +............................................................................................................................."""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""..............................................................................................""""""""""""""""""""""""""" +.............................................................................................................................""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""".......................................................................................""""""""""""""""""""""""""""""""" +............................................................................................................................."""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""".............................................................................."""""""""""""""""""""""""""""""""""""""""" +.............................................................................................................................""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""..................................................................""""""""""""""""""""""""""""""""""""""""""""""""""""" +............................................................................................................................""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""..........................................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +............................................................................................................................""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""..........................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +............................................................................................................................""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""......................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +............................................................................................................................""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""..................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +............................................................................................................................""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +..........................................................................................................................."""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"................................"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +...........................................................................................................................""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN".............................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +...........................................................................................................................""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN............................"""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~""""""""""""""""""""""""""""""""""""" +...........................................................................................................................""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN............................""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""""""""""""""" +..........................................................................................................................."""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..........................."""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""""""""""""" +..........................................................................................................................."""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..........................."""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""""""""""" +..........................................................................................................................."""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..........................."""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""""""""" +...........................................................................................................................""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..........................."""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""""""" +............................................................................................................................"""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""..........................."""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""""""""""""""""""""""" +............................................................................................................................""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""".........................."""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""""" +.............................................................................................................................""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""...........................""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""""" +.............................................................................................................................""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""........................."""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""""" +..............................................................................................................................""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""........................"""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""""""""""""""""""""" +.............................................................................................................................."""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""".........................""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""""""""""""""""""""" +.............................................................................................................................."""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""........................"""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""" +................................................................................................................................""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""".......................""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""" +................................................................................................................................."""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""".......................""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""" +.................................................................................................................................""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""........................""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""" +.................................................................................................................................."""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""........................""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""" +...................................................................................................................................""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""".......................""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""" +.................................................................................................................................."""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""......................"""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""" +...................................................................................................................................."""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""......................""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""" +....................................................................................................................................""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""......................""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""" +....................................................................................................................................""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""......................""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""" +....................................................................................................................................."""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""".....................""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""" +~~~...................................................................................................................................""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""""....................."""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""" +~~~~~~~~................................................................................................................................""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""""....................""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""""""""""""""""""""" +~~~~~~~~~~................................................................................................................................"""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""""....................."""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""""""""""""""""""""" +~~~~~~~~~~~~.............................................................................................................................."""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""""......................"""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""""""""""""""""""""" +~~~~~~~~~~~~~..............................................................................................................................""""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""""".....................""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""""""""""""""""""""" +~~~~~~~~~~~~~~~.............................................................................................................................""""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""""""...................."""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~.........................................................................................................................."""""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""""....................."""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~..........................................................................................................................""""""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""""....................""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~..........................................................................................................................""""""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""""....................""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~......................................................................................................................"""""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""""""""..................""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~......................................................................................................................."""""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""""""""""..................""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~....................................................................................................................""""""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""""""""".....................""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..................................................................................................................."""""""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""""""""""......................""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~....................................................................................................................."""""""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""""""""""....................."""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...................................................................................................................."""""""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""""""""""....................""""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...................................................................................................................."""""""""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""""""""""....................""""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~....................................................................................................................""""""""""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""""""""""......................""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...................................................................................................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""......................"""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..................................................................................................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""........................."""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..................................................................................................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""........................."""""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.................................................................................................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""............................""""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~....................................................................................................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""".............................""""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...................................................................................................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""................................."""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.......................................................................................................................""""""""""""""""""""""""""""""""""""""""""""""""""""....................................""""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~............................................................................................................................""""""""""""""""""""""""""""""""""""""............................................."""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..................................................................................................................................""""""""""""""""""""""......................................................""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...........................................................................................................................................................................................................""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.................................................................................................................................._#_________________....................................................."""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~................................................................................................................................/____________________\..................................................."""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~................................................................................................................................| [] [] |...................................................""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..............................................................................................................................| [] |..................................................."""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..............................................................................................................................| [] |..................................................""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~............................................................................................................................| _ |.................................................."""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...........................................................................................................................| |*| |.................................................."""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~................................................................................................................................................................................................""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~................................................................................................................................................................................................""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...............................................................................................................................................................................................""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.................................................................................... _#__________________..................................................................................."""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~................................................................................../_____________________\............................................._#___________________..............."""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...................................................................................| [] [] [] |............................................./______________________\............."""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.................................................................................| |..............................................| [] [] |.............."""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~................................................................................| [] [] [] |..............................................| |.............."""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...............................................................................| _ |..............................................| [] [] |.............."""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~............................................................................| |*| |..............................................| _ |..............""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...............................................................................................................................................| |*| |..............""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~................................................................................................................................................................................."""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...............................................................................................................................................................................""""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~............................................................................................................................................................................"""""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..........................................................................................................................................................................."""""""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~................................................................................................_#_________________.......................................................""""""""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~............................................................................................/____________________\.....................................................""""""""""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...........................................................................................| [] [] [] |......................................................"""""""""""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...........................................................................................| |.......................................................""""""""""""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.........................................................................................| [] [] [] |........................................................"""""""""""""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.......................................................................................| _ |.........................................................""""""""""""""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.......................................................................................| |*| |.........................................................."""""""""""""""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...................................................................................................................................................................."""""""""""""""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.....................................................................................................................................................................""""""""""""""""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.....................................................................................................................................................................""""""""""""""""""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~....................................................................................................................................................................."""""""""""""""""""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~....................................................................................................................................................................."""""""""""""""""""""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.....................................................................................................""""""""""""""""""""""""""""".....................................""""""""""""""""""""""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..............................................................................................."""""""""""""""""""""""""""""""""".....................................""""""""""""""""""""""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~............................................................................................"""""""""""""""""""""""""""""""""""""""""".....................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"""""""""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~........................................................................................""""""""""""""""""""""""""""""""""""""""""""""""...................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~....................................................................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..................................................................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""...................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~................................................................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""...........................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.............................................................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""".........................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~............................................................................"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""........................"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...........................................................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""".......................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...........................................................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""......................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~......................................................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""".........................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~......................................................................"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""........................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...................................................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""".........................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..................................................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""..........................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~................................................................"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""............................"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..............................................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""".............................""""""""""""""""""""""""""""................................................. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..............................................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""..................................................................................................... +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~............................................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""".................................................................................................. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...........................................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""".............................................................................................. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~........................................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""........................................................................................ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~......................................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""".................................................................................... +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~....................................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""............................................................................... +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~....................................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""............................................................""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.................................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~................................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..............................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..............................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~............................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..........................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..........................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.......................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~......................................"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~......................................"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.......................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~......................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~....................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.....................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~......................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" \ No newline at end of file diff --git a/map4.txt b/map4.txt new file mode 100644 index 0000000..f530729 --- /dev/null +++ b/map4.txt @@ -0,0 +1,181 @@ +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN...........................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.......................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN...................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""".........................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN...........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""""""""""""""""""""""""................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN...........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +............................"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""...................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +.....oo8888o...............""""""""""""""",,,.""""""""""""""""""""""""""""""""""""""""""""""""""""""".....................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +...,8888\88/8o............""""""""""""",%%%%%%%%,"""""""""""""""""""""""""""""""""""""""""""""""""""".......................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +...88\88888/88'..........."""""""""""",%%\%%%%%%%,"""""""""""""""""""""""""""""""""""""""""""""""""""........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +...88888\88888'...........""""""""""""%%%%%%%/%%%%"""""""""""""""""""""""""""""""oo8888o""""""""""""".........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.......................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""""""""""""""""""""""""""""""""""""""""""""""""""".oo8888o.""""" +...`88\8 `/88'............""""""""""""%%%%/ %%%%%%""""""""""""""""""""""""""""",8888\88/8o""""""""""""........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.....................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""""""""""""""""""""""""""""""""""""""""""""""""""",8888\88/8o"""" +.......\ '|8'.............."""""""""""`%%\ ` /%%'""""""""""""""""""""""""""""""88\88888/88'""""""""""".........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN....................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""""""""""""""""""""""""""""""""""""""""""""""""""""88\88888/88'""" +........| |.................""""""""""""""|o|""""""""""""""""""""""""""""""""""88888\88888'"""""""""""........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN...................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""""""""""""""""".........."""""""""""""""""""""""""""88888\88888'""" +........| |.................."""""""""""""| |""""""""""""""""""""""""""""""""""`88\8 `/88'""""""""""".........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN................................................NNNNNNNNNNNNNNNNNNNNNNNNNNN""""""""""....................................""""""""""""""`88\8 `/88'"""" +.............................."""""""""""""""""""""""""""""""""""""""""""""""""""""\ '|8'"""""""""""..........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN............................................NNNNNNNNNNNNNNNNNNNNNNNNNNNN..................................................""""""""""""""""\ '|8'""""" +..............................."""""""""""""""""""""""""""""""""""""""""""""""""""""| |""""""""""""...........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN......................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.....................................................""""""""""""""| |""""""" +.......................,,,......""""""""""""""""""""""""""""""""""""""""""""""""""""| |""""""""""""...........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..........................................................."""""""""""| |""""""" +....................,%%%%%%%%,....."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""".........................................................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..........................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.........................."""""""""""""""""""""""................."""""""""""""""""" +...................,%%\%%%%%%%,....."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""..............................................""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.......................NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN........................""""""""""""""""""""""""""""""".................""""""""""""""" +...................%%%%%%%/%%%%........""""""""""""""""""""""""""""""""""""""""""""""""""""""""""........................................,,,."""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN...................NNNNNNNNNNNNNNNNNNNNNNNNNNNN.........................""""""""""""""""""""""""""""""""""""""..............."""""""""""""" +...................%%%%/ %%%%%%.........."""""""""""""""""""""""""""""""""""""""""""""""""""""".......................................,%%%%%%%%,""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..................NNNNNNNNNNNNNNNNNNNNNNNN.........................."""""""""""""""""""""""""""""""""""""""""""".............."""""""""""" +...................`%%\ ` /%%'...............""""""""""""""""""""""""""""""""""""""""""""""""........................................,%%\%%%%%%%,""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..............NNNNNNNNNNNNNNNNNNNN...........................""""""""""""""""""""""""""""""""""""""""""""""".............."""""""""""" +.......................|o|......................"""""""""""""""""""""""""""""""""""""""""""".........................................%%%%%%%/%%%%"""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN~.........NNNNNNNNNNNNNNNN.............................""""""""""""""""""""""""""".oo8888o.""""""""""""""..............""""""""""" +.......................| |...........................""""""""""""""""""""""""""""""..................................................%%%%/ %%%%%%""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..........NNNNNNNNN..............................""""""",@@@@@@@,"""""""""""""",8888\88/8o"""""""""""""..............""""""""""" +...................................................................................................................................."`%%\ ` /%%'""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN................................................""""""",@@@@@@/@@,"""""""""""""88\88888/88'""""""""""""..............""""""""""" +...................................................................................................................................""""""|o|"""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.............................................."""""""""@@@@@/@@@@@@""""""""""""88888\88888'""""""""""""".............""""""""""" +.................................................................................................................................."""""""| |"""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.............................................""""""""""@@@@\@@@/@@@""""""""""""`88\8 `/88'"""""""""""""............."""""""""""" +..................................................................................................................................""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""".........................................."""""""""""@@@\@@/ /@@@""""""""""""""""\ '|8'""""""""""""""............."""""""""""" +................................................................................................................................."""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""".........................................""""""""""""@@\ V /@@'""""""""""""""""""| |""""""""""""""""............."""""""""""" +................................................................................................................................"""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""........................................"""""""""""""""| |""""""""""""""""""""""| |""""""""""""""".............""""""""""""" +..............................................................................................................................."""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""......................................."""""""""""""""| |"""""""""""""""""""""""""""""""""""""""..............""""""""""""" +..............................................................................................................................""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""......................................."""""""""""""""| |"""""""""""""""""""""""""""""""""""""".............."""""""""""""" +..............................................................................................................................""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""........................................"""""""""""""""""""""""""""""""""""""""""""""""""""""...............""""""""""""""" +..............................................................................................................................""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""........................................"""""""""""""""""""""""""""""""""""""""""""""""..................."""""""""""""""" +..............................................................................................................................""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""".........................................."""""""""""""""""""""""""""""""""""""""......................."""""""""""""""""" +............................................................................................................................."""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""..............................................""""".................................................."""""""""""""""""""" +............................................................................................................................."""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""..................................................................................................""""""""""""""""""""""" +............................................................................................................................."""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""..............................................................................................""""""""""""""""""""""""""" +.............................................................................................................................""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""".......................................................................................""""""""""""""""""""""""""""""""" +............................................................................................................................."""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""".............................................................................."""""""""""""""""""""""""""""""""""""""""" +.............................................................................................................................""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""..................................................................""""""""""""""""""""""""""""""""""""""""""""""""""""" +............................................................................................................................""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""..........................................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +............................................................................................................................""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""..........................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +............................................................................................................................""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""......................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +............................................................................................................................""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""..................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +............................................................................................................................""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +..........................................................................................................................."""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"................................"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +...........................................................................................................................""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"..............................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""",@@@@@@@,"""""" +...........................................................................................................................""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN............................"""""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""""""",@@@@@@/@@,""""" +...........................................................................................................................""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN............................""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""""@@@@@/@@@@@@"""" +..........................................................................................................................."""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..........................."""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""@@@@\@@@/@@@"""" +..........................................................................................................................."""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..........................."""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""""@@@\@@/ /@@@"""" +..........................................................................................................................."""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..........................."""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""@@\ V /@@'""""" +...........................................................................................................................""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN..........................."""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""| |""""""""" +............................................................................................................................"""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""..........................."""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""| |""""""""" +............................................................................................................................""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""".........................."""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""| |""""""""" +.............................................................................................................................""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""...........................""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""""""""""" +.............................................................................................................................""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""........................."""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""""""""""""" +..............................................................................................................................""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""........................"""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""""""""" +.............................................................................................................................."""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""".........................""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""""""""""""" +.............................................................................................................................."""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""........................"""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""""""""""" +................................................................................................................................""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""".......................""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""""""""""" +................................................................................................................................."""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""".......................""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""""""""" +.................................................................................................................................""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""........................""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""""""""" +.................................................................................................................................."""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""........................""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""""""""""" +...................................................................................................................................""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""".......................""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ """""""""""""""""""""" +.................................................................................................................................."""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""......................"""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""""""""" +...................................................................................................................................."""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""......................""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""""""""" +....................................................................................................................................""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""......................""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""""""""""" +....................................................................................................................................""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""......................""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""""""""" +....................................................................................................................................."""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""".....................""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""""""""""" +~ ~...................................................................................................................................""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""""....................."""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""""""""""" +~ ~ ~ ~ ................................................................................................................................""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""""....................""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""""""""" +~ ~ ~ ~ ~ ................................................................................................................................"""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""""....................."""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ .............................................................................................................................."""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""""......................"""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~..............................................................................................................................""""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""""".....................""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~.............................................................................................................................""""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""""""...................."""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~.........................................................................................................................."""""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""""....................."""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ..........................................................................................................................""""""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""""....................""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~..........................................................................................................................""""""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""""....................""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~......................................................................................................................."""""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""""""""..................""""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ """"""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~........................................................................................................................"""""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""""""""""..................""""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~.....................................................................................................................""""""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""""""""".....................""""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~...................................................................................................................."""""""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""""""""""......................""""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~....................................................................................................................."""""""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""""""""""....................."""""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ...................................................................................................................."""""""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""""""""""....................""""""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ """""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~...................................................................................................................."""""""""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN""""""""""""""....................""""""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ....................................................................................................................""""""""""""""""""""""""""""NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"""""""""""""......................""""""""""""""".oo8888o.""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~...................................................................................................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""......................""""""""""""""",8888\88/8o"""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~..................................................................................................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""".........................""""""""""""""""88\88888/88'"""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~....................................................................................................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""".........................""""""""""""""""""88888\88888'"""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~..................................................................................................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""............................""""""""""""""""""`88\8 `/88'"""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ...................................................................................................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""............................."""""""""""""""""""""""\ '|8'"""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~.....................................................................................................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""".................................""""""""""""""""""""""""| |""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~........................................................................................................................""""""""""""""""""""""""""""""""""""""""""""""""""""...................................."""""""""""""""""""""""""| |""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~.............................................................................................................................""""""""""""""""""""""""""""""""""""""............................................."""""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~..................................................................................................................................""""""""""""""""""""""......................................................""""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~...........................................................................................................................................................................................................""""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~..................................................................................................................................._#_________________....................................................."""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~................................................................................................................................/____________________\..................................................."""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~.................................................................................................................................| [] [] |...................................................""""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~...............................................................................................................................| [] |..................................................."""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~...............................................................................................................................| [] |..................................................""""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~.............................................................................................................................| _ |.................................................."""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ """"""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~...........................................................................................................................| |*| |.................................................."""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~.................................................................................................................................................................................................""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~.................................................................................................................................................................................................""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~...............................................................................................................................................................................................""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~.................................................................................... _#__________________..................................................................................."""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~................................................................................../_____________________\............................................._#___________________..............."""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~...................................................................................| [] [] [] |............................................./______________________\............."""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~.................................................................................| |..............................................| [] [] |.............."""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~.................................................................................| [] [] [] |..............................................| |.............."""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~...............................................................................| _ |..............................................| [] [] |.............."""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ............................................................................| |*| |..............................................| _ |..............""""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~................................................................................................................................................| |*| |..............""""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ................................................................................................................................................................................."""""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~................................................................................................................................................................................""""""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~............................................................................................................................................................................""""""""""""""",,,.""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~............................................................................................................................................................................"""""""""""",%%%%%%%%,"""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~................................................................................................_#_________________.......................................................""""""""""",%%\%%%%%%%,"""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~............................................................................................./____________________\....................................................."""""""""""%%%%%%%/%%%%"""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~............................................................................................| [] [] [] |......................................................"""""""""""%%%%/ %%%%%%""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~............................................................................................| |.......................................................""""""""""`%%\ ` /%%'"""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~..........................................................................................| [] [] [] |........................................................"""""""""""""| |"""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~........................................................................................| _ |.........................................................""""""""""""| |"""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~........................................................................................| |*| |.........................................................."""""""""""""""""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~....................................................................................................................................................................."""""""""""""""""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~......................................................................................................................................................................""""""""""""""""""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~.....................................................................................................................................................................""""""""""""""""""""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~......................................................................................................................................................................"""""""""""""""""""""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~....................................................................................................................................................................."""""""""""""""""""""""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~......................................................................................................""""""""""""""""""""""""""""".....................................""""""""""""""""""""""""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~................................................................................................"""""""""""""""""""""""""""""""""".....................................""""""""""""""""""""""""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~............................................................................................"""""""""""""""",,,."""""""""""""""""""""".....................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~""""""""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~........................................................................................."""""""""""""""",%%%%%%%%,""""""""""""""""""""""...................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~.....................................................................................""""""""""""""""",%%\%%%%%%%,""""""""""""""""""""""""""................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~....................................................................................""""""""""""""""""%%%%%%%/%%%%"""""""""""""""""""""""""""...................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~..................................................................................""""""""""""""""""""%%%%/ %%%%%%"""""""""""""""""""""""""""""""""""""..........................."""""""""""""""""""""""""""""""",,,.""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~..............................................................................."""""""""""""""""""""`%%\ ` /%%'""""""""""""""""""""""""""""""""""""""""""..........................""""""""""""""""""""""""""",%%%%%%%%,""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~............................................................................""""""""""""""""""""""""""| |""""""""""""""""""""""""""""""""""""""""""""""""""........................"""""""""""""""""""""""",%%\%%%%%%%,"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~............................................................................""""""""""""""""""""""""""| |""""""""""""""""""""""""""""""""""""""""""""""""""""""......................."""""""""""""""""""""%%%%%%%/%%%%"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~............................................................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""......................"""""""""""""""""%%%%/ %%%%%%"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~.......................................................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""........................."""""""""""`%%\ ` /%%'""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ......................................................................"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""........................"""""""""""""| |""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~...................................................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""........................."""""""| |""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~..................................................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""..........................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~................................................................"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""............................"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~..............................................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""".............................""""""""""""""""""""""""""""................................................. +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~..............................................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""..................................................................................................... +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~.............................................................""""""""""""""""""""""""""""""""""""""""""""""""""",@@@@@@@,"""""""""""""""""""""""""""""""""""""""""""""""""""""""".................................................................................................. +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ...........................................................""""""""""""""""""""""""""""""""""""""""""""""""",@@@@@@/@@,""""""""""""""""""""""""""""""""""""""""""""""""""""""""""".............................................................................................. +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~.........................................................."""""""""""""""""""""""""""""""""""""""""""""""""@@@@@/@@@@@@""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""........................................................................................ +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~.......................................................""""""""""""""""""""""""""""""""""""""""""""""""@@@@\@@@/@@@"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""".................................................................................... +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~.....................................................""""""""""""""""""""""""""""""""""""""""""""""""@@@\@@/ /@@@"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""............................................................................... +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~....................................................""""""""""""""""""""""""""""""""""""""""""""""""@@\ V /@@'""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""............................................................""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~.................................................."""""""""""""""""""""""""""""""""""""""""""""""""""| |"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""",,,.""""""""""""""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~.................................................""""""""""""""""""""""""""""""""""""""""""""""""""| |""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""",%%%%%%%%,"""""""""""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~...............................................""""""""""""""""""""""""""""""""""""""""""""""""""| |"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""",%%\%%%%%%%,""""""""""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~..............................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""%%%%%%%/%%%%""""""""""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~............................................""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""",@@@@@@@,""""""""""""""""""""""""""""""""""""""""""""""""""""""%%%%/ %%%%%%""""""""""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~...........................................""""",@@@@@@@,""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""",@@@@@@/@@,"""""""""""""""""""""""""""""""""""""""""""""""""""""`%%\ ` /%%'"""""""""""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~..........................................""",@@@@@@/@@,""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""@@@@@/@@@@@@""""""""""""""""""""""""""""""""""""""""""""""""""""""""| |"""""""""""""""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~........................................"""@@@@@/@@@@@@"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""@@@@\@@@/@@@""""""""""""""""""""""""""""""""""""""""""""""""""""""""| |"""""""""""""""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~.......................................""@@@@\@@@/@@@"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""@@@\@@/ /@@@""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~.......................................""@@@\@@/ /@@@""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""@@\ V /@@'"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~........................................""@@\ V /@@'""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""| |"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~.......................................""""""| |""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""| |"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~......................................"""""| |""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""| |"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~......................................"""""| |""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~......................................."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" \ No newline at end of file diff --git a/save.gb b/save.gb new file mode 100644 index 0000000..12f881f --- /dev/null +++ b/save.gb @@ -0,0 +1,8 @@ +333 +171 +60 +27 +444 +843 +2 +10 diff --git a/src/GingerBeards.cpp b/src/GingerBeards.cpp index f0a8b35..06c1a3b 100644 --- a/src/GingerBeards.cpp +++ b/src/GingerBeards.cpp @@ -1,21 +1,34 @@ -#include "gingerbeards.h" -#include "player.h" -#include "mob.h" +#include "Gingerbeards.h" +#include "Player.h" +#include "mobcontrol.h" #include #include +#include "Menu.h" + using namespace std; const char g_szClassName[] = "myWindowClass"; -Map* mapConstructor = new Map(); +Menu* menu = new Menu(); +Map* mapConstructor; GingerBeards* tempgingerbeards = new GingerBeards(); -Player* firstPlayer = new Player(); -Mob* oneMob = new Mob(); +Player* firstPlayer; +Mob* boss; +MobControl* mobs; + +bool isGameRunning = false; char textToBePrinted[STR_IN_CHAR_LENGTH]; long lfHeight = tempgingerbeards->computeFontHeight(); +enum GameState { + MAIN_MENU, IN_GAME, LOAD_GAME, THE_END, QUIT +}; + +enum GameState gameState = MAIN_MENU; +bool stateShift = false; + // get the height of the font based on device units long GingerBeards::computeFontHeight() { HDC hdc = GetDC(NULL); @@ -26,37 +39,6 @@ long GingerBeards::computeFontHeight() { LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { -// case WM_CREATE: -// area = CreateWindow("static", NULL, -// WS_VISIBLE| WS_CHILD, -// 0 , 0 , 700 , 700, -// hwnd, (HMENU) 1, NULL, NULL -// ); -// break; -// case WM_KEYDOWN: -// mapConstructor->refreshEditLayer(); //this is run everytime we call the a key -// if(wParam == VK_LEFT){ -// oneMob->mobMovement(refMap, firstPlayer); -// firstPlayer->playerMovement(1, refMap, refArea); -// } -// if(wParam == VK_RIGHT){ -// oneMob->mobMovement(refMap, firstPlayer); -// firstPlayer->playerMovement(2, refMap, refArea); -// } -// if(wParam == VK_UP){ -// oneMob->mobMovement(refMap, firstPlayer); -// firstPlayer->playerMovement(3, refMap, refArea); -// } -// if(wParam == VK_DOWN){ -// oneMob->mobMovement(refMap, firstPlayer); -// firstPlayer->playerMovement(4, refMap, refArea); -// } -// if(wParam == VK_F1){ -// oneMob->mobMovement(refMap, firstPlayer); -// firstPlayer->playerMovement(5, refMap, refArea); -// } -// break; - case WM_CLOSE: DestroyWindow(hwnd); break; @@ -71,11 +53,12 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { return 0; } +HWND window; +MSG Msg; + int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { WNDCLASSEX wc; - HWND window; - MSG Msg; wc.cbSize = sizeof(WNDCLASSEX); wc.style = 0; @@ -97,8 +80,8 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, } window = CreateWindowEx( - WS_EX_CLIENTEDGE, g_szClassName, "ASCII RPG", - WS_OVERLAPPEDWINDOW, 50, 100, 1000, 1000, + WS_EX_CLIENTEDGE, g_szClassName, "A Ginger Tale", + WS_OVERLAPPEDWINDOW, 50, 100, 900, 700, NULL, NULL, hInstance, NULL); if (window == NULL) { @@ -107,38 +90,98 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, return 0; } - tempgingerbeards->mapFirstRefresh(); - ShowWindow(window, nCmdShow); UpdateWindow(window); - Map*& refMap = mapConstructor; - while (1) { // LOOP FOREVER - if (PeekMessage(&Msg, NULL, 0, 0, PM_REMOVE)) { - if (Msg.message == WM_QUIT) { - break; // BREAK OUT OF INFINITE LOOP - } else { - TranslateMessage(&Msg); // translates - DispatchMessage(&Msg); // this line RESULTS IN + while (gameState != QUIT) { + stateShift = false; + switch (gameState) { + case MAIN_MENU: + //cout << "main_MAIN_MENU1" << endl; + tempgingerbeards->menuLoop(); + break; + case IN_GAME: + tempgingerbeards->gameLoop(); + break; + case THE_END: + //cout << "main_THE_END1" << endl; + menu->endScreen(textToBePrinted); + isGameRunning = false; + gameState = MAIN_MENU; + while (!stateShift && !GetAsyncKeyState(0x43)) { // c key + //cout << "main_THE_END2" << endl; + tempgingerbeards->peekMessage(); + tempgingerbeards->draw(window); + Sleep(MENU_DELAY_MS); } - } else { - //mapConstructor->refreshEditLayer(); - tempgingerbeards->checkForInput(); - int xplay, yplay; - firstPlayer->playerPossition(&xplay, &yplay); - mapConstructor->mapViewPort(xplay, yplay); - oneMob->mobMovement(refMap, firstPlayer); - firstPlayer->draw(refMap); - mapConstructor->getStrInChar(textToBePrinted); - tempgingerbeards->draw(window); } - Sleep(32); - + Sleep(MENU_DELAY_MS); } return Msg.wParam; } +void GingerBeards::menuLoop() { + if (isGameRunning) { + menu->inGame(); + menu->setMessage("Nice to see you again <3", 24); + } else { + menu->notInGame(); + menu->setMessage("", 0); + } + while (!stateShift) { + tempgingerbeards->peekMessage(); + menu->draw(); + tempgingerbeards->checkForMenuInput(); + menu->getStrInChar(textToBePrinted); + tempgingerbeards->draw(window); + Sleep(MENU_DELAY_MS); + } +} + +void GingerBeards::gameLoop() { + Map*& refMap = mapConstructor; + while (!stateShift) { // LOOP FOREVER + tempgingerbeards->peekMessage(); + tempgingerbeards->checkForGameInput(); + int xplay, yplay; + firstPlayer->playerPosition(&xplay, &yplay); + mapConstructor->mapViewPort(xplay, yplay); + mobs->completeAI(refMap, firstPlayer); + firstPlayer->draw(refMap); + firstPlayer->heal(); + //cout << "GingerBeards::gameLoop1" << endl; + boss->mobMovement(refMap, firstPlayer); + //cout << "GingerBeards::gameLoop2" << endl; + mapConstructor->drawStatsBar(firstPlayer->getMaxHP(), + firstPlayer->getHP(), firstPlayer->getAttackStrength(), + firstPlayer->getDefense(), firstPlayer->getPower(), + firstPlayer->getMaxPower()); + mapConstructor->getStrInChar(textToBePrinted); + tempgingerbeards->draw(window); + if (boss->getHealth() < 1) { + gameState = THE_END; + stateShift = true; + } + if (firstPlayer->hasDied()) { + isGameRunning = false; + } + Sleep(GAME_DELAY_MS); + } +} + +void GingerBeards::peekMessage() { + if (PeekMessage(&Msg, NULL, 0, 0, PM_REMOVE)) { + if (Msg.message == WM_QUIT) { + gameState = QUIT; + stateShift = true; // BREAK OUT OF INFINITE LOOP + } else { + TranslateMessage(&Msg); // translates + DispatchMessage(&Msg); // this line RESULTS IN + } + } +} + void GingerBeards::draw(HWND window) { RECT rect; HDC wdc = GetDC(window); @@ -151,34 +194,153 @@ void GingerBeards::draw(HWND window) { // recttest.right = 920; // recttest.bottom = 320; // recttest.top = 10; +// HBRUSH redbrush = (HBRUSH) CreateSolidBrush(RGB(255,0,0)); +// FillRect(wdc, &recttest, redbrush); +// DeleteObject(redbrush); HFONT hf = CreateFont(lfHeight, 0, 0, 0, 0, FALSE, 0, 0, 0, 0, 0, 0, 0, - "Consolas"); + "Consolas"); HFONT oldFont = (HFONT) SelectObject(wdc, hf); - DrawText(wdc, textToBePrinted, STR_IN_CHAR_LENGTH, &rect, DT_NOCLIP); + SelectObject(wdc, oldFont); + DeleteObject(hf); + ReleaseDC(window, wdc); +} -// HBRUSH redbrush = (HBRUSH) CreateSolidBrush(RGB(255,0,0)); +void GingerBeards::setupGame() { + mapConstructor = new Map(); + firstPlayer = new Player(); + boss = new Mob(); + boss->createBoss(273, 18); + mobs = new MobControl(); + tempgingerbeards->mapFirstRefresh(); + isGameRunning = true; +} -// FillRect(wdc, &recttest, redbrush); +void GingerBeards::checkForMenuInput() { + if (GetAsyncKeyState(VK_UP)) { + menu->cursorUp(); + } else if (GetAsyncKeyState(VK_DOWN)) { + menu->cursorDown(); + } else if (GetAsyncKeyState(0x0D)) { // carriage return + switch (menu->getSelectedItem()) { + case 0: // new game + setupGame(); + gameState = IN_GAME; + intro(); + stateShift = true; + break; + case 1: // continue + stateShift = true; + gameState = IN_GAME; + break; + case 2: // save + tempgingerbeards->saveGame(); + break; + case 3: // load + if (!tempgingerbeards->loadGame()) { + menu->setMessage("No save file found :(", 21); + } else { + stateShift = true; + gameState = IN_GAME; + } + break; + case 4: + // quit + stateShift = true; + gameState = QUIT; + } + } +} - SelectObject(wdc, oldFont); - DeleteObject (hf); -// DeleteObject(redbrush); - ReleaseDC(window, wdc); +bool GingerBeards::saveGame() { +// if (!isGameRunning) +// return false; + int x, y; + ofstream myfile; + myfile.open("save.gb"); + firstPlayer->playerPosition(&x, &y); +// myfile.write(reinterpret_cast(&x), sizeof(x)); + myfile << x << endl; + myfile << y << endl; + myfile << firstPlayer->getAttackStrength() << endl; + myfile << firstPlayer->getDefense() << endl; + myfile << firstPlayer->getHP() << endl; + myfile << firstPlayer->getMaxHP() << endl; + myfile << firstPlayer->getPower() << endl; + myfile << firstPlayer->getMaxPower() << endl; + + menu->setMessage("Save successful ;)", 18); + myfile.close(); + return true; +} +//Save successful ;) + +void GingerBeards::intro() { + char pages[][25] = { "instructions_page1.txt", "instructions_page2.txt", + "instructions_page3.txt", "instructions_page4.txt" }; + //cout << "GingerBeards::checkForMenuInput1" << endl; + for (int i = 0; i < 4; i++) { + menu->readPage(textToBePrinted, pages[i]); + //cout << "GingerBeards::checkForMenuInput2" << endl; + while (!GetAsyncKeyState(0x43)) { + if (stateShift) + return; + peekMessage(); + tempgingerbeards->draw(window); + Sleep(MENU_DELAY_MS); + } + Sleep(MENU_DELAY_MS); + } + //cout << "GingerBeards::checkForMenuInput3" << endl; +} + +bool GingerBeards::loadGame() { + ifstream myfile; + int x, y, attack, defense, HP, maxHP, power, maxPower; + myfile.open("save.gb"); + if (!myfile.is_open()) + return false; + setupGame(); + myfile >> x; + myfile >> y; + myfile >> attack; + myfile >> defense; + myfile >> HP; + myfile >> maxHP; + myfile >> power; + myfile >> maxPower; + firstPlayer->loadCharacter(x, y, attack, defense, HP, maxHP, power, + maxPower); + menu->setMessage("Loading complete :D", 19); + myfile.close(); + return true; } -void GingerBeards::checkForInput() { +void GingerBeards::checkForGameInput() { Map*& refMap = mapConstructor; - if (GetAsyncKeyState( VK_UP)) { + // movement + if (GetAsyncKeyState(VK_UP)) { firstPlayer->playerMovement(3, refMap); - } else if (GetAsyncKeyState( VK_DOWN)) { + } else if (GetAsyncKeyState(VK_DOWN)) { firstPlayer->playerMovement(4, refMap); } else if (GetAsyncKeyState( VK_RIGHT)) { firstPlayer->playerMovement(2, refMap); } else if (GetAsyncKeyState( VK_LEFT)) { firstPlayer->playerMovement(1, refMap); - } else { - firstPlayer->playerMovement(5, refMap); + } + if (GetAsyncKeyState(0x41)) { + firstPlayer->setAttack(1); // a + } else if (GetAsyncKeyState(0x53)) { + firstPlayer->setAttack(4); // s + } else if (GetAsyncKeyState(0x44)) { + firstPlayer->setAttack(2); // d + } else if (GetAsyncKeyState(0x57)) { + firstPlayer->setAttack(3); // w + } else if (GetAsyncKeyState(0x51)) { + firstPlayer->setAttack(5); // q + } else if (GetAsyncKeyState(0x4D)) { + stateShift = true; // m + gameState = MAIN_MENU; } } @@ -186,6 +348,7 @@ void GingerBeards::mapFirstRefresh() { mapConstructor->mapInstantiation(); mapConstructor->borderInstantion(); } + //void GingerBeards::playerMovement(int keypressed){ // playerLook[0] = '('; // playerLook[1] = '"'; diff --git a/src/GingerBeards.h b/src/GingerBeards.h index 4319902..6a16ee9 100644 --- a/src/GingerBeards.h +++ b/src/GingerBeards.h @@ -9,19 +9,30 @@ #define GINGERBEARDS_H_ #include -#include "map.h" +#include "Map.h" const int STR_IN_CHAR_LENGTH = (VIEWPORT_WIDTH + 1) * VIEWPORT_HEIGHT; const int FONT_SIZE = 12; -const char EMPTY = ' '; +// no rending and collision +const char EMPTY = -1; +// not rendered but collision is still checked. +const char INVISIBLE = -2; +const int GAME_DELAY_MS = 32; //don't change class GingerBeards{ public: void mapFirstRefresh(); - void checkForInput(); + void checkForMenuInput(); + void checkForGameInput(); void draw(HWND); long computeFontHeight(); - + void peekMessage(); + void gameLoop(); + void menuLoop(); + void setupGame(); + bool saveGame(); + bool loadGame(); + void intro(); }; diff --git a/src/Map.cpp b/src/Map.cpp index 080dd24..e26a3bd 100644 --- a/src/Map.cpp +++ b/src/Map.cpp @@ -3,24 +3,24 @@ #include #include #include +#include using namespace std; -char mapInChar[MAP_ROWS][MAP_COLUMNS]; +char mapInChar[MAP_HEIGHT][MAP_WIDTH]; char mapInCharEditable[VIEWPORT_HEIGHT][VIEWPORT_WIDTH]; -char borderInChar[MAP_ROWS][MAP_COLUMNS]; +char borderInChar[MAP_HEIGHT][MAP_WIDTH]; +char borderInCharRestore[MAP_HEIGHT][MAP_WIDTH]; int viewportX, viewportY; void Map::mapInCharFunc() { string line; - ifstream myfile("map2.txt"); + ifstream myfile("map4.txt"); if (myfile.is_open()) { - int a = 0; - while (getline(myfile, line)) { - for (unsigned int i = 0; i < line.length(); i++) { - mapInChar[a][i] = line.at(i); + for (int i = 0; i < MAP_HEIGHT && getline(myfile, line); i++) { + for (unsigned int j = 0; j < MAP_WIDTH; j++) { + mapInChar[i][j] = line.at(j); } - a++; } myfile.close(); } else { @@ -29,7 +29,7 @@ void Map::mapInCharFunc() { } void Map::borderInCharFunc() { string line; - ifstream myfile("collisionmap2.txt"); + ifstream myfile("collisionmap4.txt"); if (myfile.is_open()) { int a = 0; while (getline(myfile, line)) { @@ -43,18 +43,6 @@ void Map::borderInCharFunc() { cout << "Unable to open file" << endl; } } -//void Map::getVarOfMap(char* strInChar){ -// mapInCharFunc(); -// int chatAt = 0; -// for(int i = 0; i= MAP_ROWS - || absoluteX >= MAP_COLUMNS) { - mapInCharEditable[yi][xi] = '-'; + if (absoluteY < 0 || absoluteX < 0 || absoluteY >= MAP_HEIGHT + || absoluteX >= MAP_WIDTH) { + mapInCharEditable[yi][xi] = OUT_OF_MAP_CHAR; } else { mapInCharEditable[yi][xi] = mapInChar[absoluteY][absoluteX]; } } } -// for (int i = 0; i < MAP_ROWS; i++){ -// for(int j =0; j < MAP_COLUMNS; j++){ -// } -// } } void Map::getStrInChar(char* strInChar) { @@ -91,21 +75,29 @@ void Map::getStrInChar(char* strInChar) { void Map::borderInstantion() { borderInCharFunc(); + std::copy(&borderInChar[0][0], &borderInChar[0][0] + MAP_HEIGHT * MAP_WIDTH, + &borderInCharRestore[0][0]); } bool Map::testBorder(int x, int y, int width, int height, char** look) { - int widthHelper = width / 2, heightHelper = height / 2; - for (int i = y - heightHelper, li = 0; i <= y + heightHelper; i++, li++) { - for (int j = x - widthHelper, lj = 0; j <= x + widthHelper; j++, lj++) { - if (look[li][lj] != EMPTY && borderInChar[i][j] == '1') { + if ((x >= MAP_WIDTH) || (x < 0) || (y >= MAP_HEIGHT) || (y < 0)) { + return false; + } + //cout << "Map::testBorder1" << endl; + for (int i = y - height / 2, looki = 0; looki < height; i++, looki++) { + //cout << "Map::testBorder2" << endl; + for (int j = x - width / 2, lookj = 0; lookj < width; j++, lookj++) { + //cout << "Map::testBorder3" << endl; + if (look[looki][lookj] != EMPTY && borderInChar[i][j] == '1') { return false; } } } return true; } + void Map::refreshEditLayer() { - std::copy(&mapInChar[0][0], &mapInChar[0][0] + MAP_ROWS * MAP_COLUMNS, + std::copy(&mapInChar[0][0], &mapInChar[0][0] + MAP_HEIGHT * MAP_WIDTH, &mapInCharEditable[0][0]); } @@ -132,16 +124,130 @@ void Map::drawCharacter(int x, int y, int drawWidth, int drawHeight, } else { cout << "The character is longer than the viewport!" << endl; } +} + +void Map::drawStatsBar(int maxHP, int currentHP, int currentAttack, + int currentDefense, int currentPower, int currentMaxPower) { + const int innerWidth = HEALTHBAR_WIDTH - 2; + int numberOfBars = round((float) currentHP / maxHP * innerWidth); + // draw attack and defense + int j = drawStat(0, currentAttack, "Attack: ", 8); + j = drawStat(j, currentDefense, "Defense: ", 9); + // draw health bar + int lengthCurrentHP, lengthMaxHP; + char* scurrentHP = this->toChar(currentHP, &lengthCurrentHP); + char* smaxHP = this->toChar(maxHP, &lengthMaxHP); + mapInCharEditable[0][j++] = '['; + int i = 0; + for (; i < numberOfBars; i++, j++) { + mapInCharEditable[0][j] = '|'; + } + for (; i < innerWidth; i++, j++) { + mapInCharEditable[0][j] = ' '; + } + // draw the middle of the bar + int middle = j - 1 - innerWidth / 2; + mapInCharEditable[0][middle] = '/'; + for (int k = 0; k < lengthMaxHP; k++) { + mapInCharEditable[0][middle + 1 + k] = smaxHP[k]; + } + + for (int k = 0; k < lengthCurrentHP; k++) { + mapInCharEditable[0][middle - lengthCurrentHP + k] = scurrentHP[k]; + } + mapInCharEditable[0][j++] = ']'; + for (int i = 0; i < DIGITS; i++, j++) { + mapInCharEditable[0][j] = ' '; + } + + j = drawPowerBar(j, currentPower, "Power: ", 7); + j = drawStat(j, currentMaxPower, "Max Power: ", 11); + + // draw the trail + for (; j < VIEWPORT_WIDTH; j++) { + mapInCharEditable[0][j] = ' '; + } +} + +int Map::drawPowerBar(int j, int currentPower, char* label, int labelSize) { + // draw label + for (int i = 0; i < labelSize; j++, i++) { + mapInCharEditable[0][j] = label[i]; + } + // draw power points + for (int i = 0; i < currentPower; i++, j++) { + mapInCharEditable[0][j] = '*'; + } + // format power bar + for(int i = POWER_CAP - currentPower; i > 0; i--, j++) { + mapInCharEditable[0][j] = ' '; + } + // add a trailing space + mapInCharEditable[0][j++] = ' '; + return j; } -void Map::drawCharacterXAxis(int leftmostChar, int y, int drawWidth, int i, char** drawPoints) { +int Map::drawStat(int j, int stat, char* label, int labelSize) { + int digitCount; + char* digits; + // draw label + for (int i = 0; i < labelSize; j++, i++) { + mapInCharEditable[0][j] = label[i]; + } + digits = this->toChar(stat, &digitCount); + // draw digits + for (int i = 0; i < digitCount; i++, j++) { + mapInCharEditable[0][j] = digits[i]; + } + // pad with blanks + for (int i = DIGITS - digitCount; i > 0; i--, j++) { + mapInCharEditable[0][j] = ' '; + } + // add one trailing space + mapInCharEditable[0][j++] = ' '; + return j; +} + +char* Map::toChar(int i, int* length) { + if (i <= 0) { + char* result = new char[1]; + result[0] = '0'; + *length = 1; + return result; + } + int c = 0; + for (int j = i; j > 0; j /= 10, c++) + ; + char* result = new char[c]; + for (int j = i, k = c - 1; j > 0; j /= 10, k--) { + result[k] = j % 10 + '0'; + } + *length = c; + return result; +} + +void Map::drawChar(int x, int y, char draw) { + if (borderInChar[y][x] == '1') + return; + int viewportRelativeX = x - viewportX; + int viewportRelativeY = y - viewportY; + mapInCharEditable[viewportRelativeY][viewportRelativeX] = draw; +} + +void Map::drawChar(int x, int y, char draw, char borderCode) { + this->drawChar(x, y, draw); + this->editBorder(x, y, borderCode); +} + +void Map::drawCharacterXAxis(int leftmostChar, int y, int drawWidth, int i, + char** drawPoints) { int rightmostChar; if (leftmostChar >= 0) { for (int j = 0; leftmostChar + j < VIEWPORT_WIDTH && j < drawWidth; j++) { char charToBeDrawn = drawPoints[i][j]; - if (charToBeDrawn != EMPTY) { + if (charToBeDrawn != EMPTY && charToBeDrawn != INVISIBLE) { mapInCharEditable[y][leftmostChar + j] = charToBeDrawn; } } @@ -149,7 +255,7 @@ void Map::drawCharacterXAxis(int leftmostChar, int y, int drawWidth, int i, char < VIEWPORT_WIDTH) { for (int j = 0; rightmostChar - j >= 0 && j < drawWidth; j++) { char charToBeDrawn = drawPoints[i][drawWidth - j - 1]; - if (charToBeDrawn != EMPTY) { + if (charToBeDrawn != EMPTY && charToBeDrawn != INVISIBLE) { mapInCharEditable[y][rightmostChar - j] = charToBeDrawn; } } @@ -158,3 +264,26 @@ void Map::drawCharacterXAxis(int leftmostChar, int y, int drawWidth, int i, char } } +void Map::restoreBorder() { + std::copy(&borderInCharRestore[0][0], + &borderInCharRestore[0][0] + MAP_HEIGHT * MAP_WIDTH, + &borderInChar[0][0]); +} + +void Map::editBorder(int x, int y, char charEdited) { + if (borderInChar[y][x] != '1') { + borderInChar[y][x] = charEdited; + } +} +char Map::getBorderCell(int x, int y) { + return borderInChar[y][x]; +} + +//void Map::getBorders(char** getBorders){ +// for(int i=0; i < MAP_ROWS; i++){ +// for(int j=0; j< MAP_COLUMNS; j++){ +// getBorders[i][j] = borderInChar[i][j]; +// } +// } +//} + diff --git a/src/Map.h b/src/Map.h index 1151ff6..f76d453 100644 --- a/src/Map.h +++ b/src/Map.h @@ -9,10 +9,18 @@ #define MAP_H_ #include -const int XINCREASE = 45, YINCREASE = 15; +const char OUT_OF_MAP_CHAR = '-'; + +const int XINCREASE = 72, YINCREASE = 18; const int VIEWPORT_WIDTH = 2 * XINCREASE + 1; const int VIEWPORT_HEIGHT = 2 * YINCREASE + 1; -const int MAP_ROWS = 181, MAP_COLUMNS= 400; +const int MAP_HEIGHT = 181, MAP_WIDTH= 400; +const int DIGITS = 5; +const int HEALTHBAR_WIDTH = 41; +const int POWER_CAP = 15; + +const char PLAYER_SWING = '6'; +const char AOE_CODE = '7'; class Map{ public: @@ -24,10 +32,22 @@ class Map{ void mapInstantiation(); void borderInstantion(); void drawCharacter(int, int, int, int, char**); + void drawChar(int, int, char); + void drawChar(int, int, char, char); + void drawStatsBar(int, int, int, int, int, int); + void drawMenu(); + int drawPowerBar(int, int, char*, int); void refreshEditLayer(); void getStrInChar(char*); +// void getBorders(char**); + void editBorder(int, int, char); + void restoreBorder(); + void restoreBorderCell(int x, int y); + char getBorderCell(int, int); private: + char* toChar(int, int*); void drawCharacterXAxis(int, int, int, int, char**); + int drawStat(int j, int stat, char* label, int labelSize); }; diff --git a/src/Menu.cpp b/src/Menu.cpp new file mode 100644 index 0000000..ac80937 --- /dev/null +++ b/src/Menu.cpp @@ -0,0 +1,203 @@ +/* + * Menu.cpp + * + * Created on: 26.05.2016 + * Author: Michele + */ + +#include "Map.h" +#include "Menu.h" +#include +#include + +using namespace std; + +char** options; +int* optionsLength; +char screen[VIEWPORT_HEIGHT][VIEWPORT_WIDTH]; +int msgCountDown; + +Menu::Menu() { + cursor = 0; + message = ""; + messageLength = 0; + msgCountDown = MSG_COUNTDOWN_FRAMES; +} + +void Menu::inGame() { + cursor = 0; + numberOfOptions = 5; + optionsLength = new int[5]; + options = new char *[5]; + codes = new int[5]; + options[0] = "New Game"; + options[1] = "Continue"; + options[2] = "Save"; + options[3] = "Load"; + options[4] = "Quit"; + optionsLength[0] = 8; + optionsLength[1] = 8; + optionsLength[2] = 4; + optionsLength[3] = 4; + optionsLength[4] = 4; + for (int i = 0; i < 5; i++) { + codes[i] = i; + } +} + +void Menu::notInGame() { + cursor = 0; + numberOfOptions = 3; + options = new char *[3]; + optionsLength = new int[3]; + codes = new int[3]; + options[0] = "New Game"; + options[1] = "Load"; + options[2] = "Quit"; + optionsLength[0] = 8; + optionsLength[1] = 4; + optionsLength[2] = 4; + codes[0] = 0; + codes[1] = 3; + codes[2] = 4; +} + +void Menu::draw() { + this->clearScreen(); + this->drawOptions(); + // draw the cursor + screen[topmostOption + cursor][VIEWPORT_WIDTH / 2 + - optionsLength[cursor] / 2 - 1] = '>'; + + // draw message + if (msgCountDown > 0) { + for (int i = 0, j = VIEWPORT_WIDTH / 2 - messageLength / 2; + i < messageLength; i++, j++) { + screen[MESSAGE_Y][j] = message[i]; + } + msgCountDown--; + } +} + +void Menu::cursorUp() { + if (cursor > 0) { + cursor--; + } +} + +void Menu::cursorDown() { + if (cursor < numberOfOptions - 1) { + cursor++; + } +} + +void Menu::getStrInChar(char* strInChar) { + for (int i = 0, charAt = 0; i < VIEWPORT_HEIGHT; i++, charAt++) { + for (int j = 0; j < VIEWPORT_WIDTH; j++, charAt++) { + strInChar[charAt] = screen[i][j]; + } + strInChar[charAt] = '\n'; + } +} + +void Menu::setMessage(char* message, int length) { + this->message = message; + messageLength = length; + if (length > 0) { + msgCountDown = MSG_COUNTDOWN_FRAMES; + } +} + +int Menu::getSelectedItem() { + return codes[cursor]; +} + +void Menu::readPage(char* strInChar, const char* page) { + string line; + ifstream myfile(page); + if (myfile.is_open()) { + int i; + const int INSTRUCTIONS_LIMIT = 100; + options = new char *[INSTRUCTIONS_LIMIT]; + optionsLength = new int[INSTRUCTIONS_LIMIT]; + //cout << "Menu::instructionsScreen1" << endl; + for (i = 0; getline(myfile, line); i++) { + //cout << i << endl; + optionsLength[i] = line.length(); + options[i] = new char[line.length()]; + for (unsigned int j = 0; j < line.length(); j++) { + //cout << j << endl; + options[i][j] = line.at(j); + } + } + myfile.close(); + numberOfOptions = i; + } else { + cout << "Unable to open file" << endl; + } + clearScreen(); + //cout << "Menu::instructionsScreen2" << endl; + drawOptions(); + //cout << "Menu::instructionsScreen3" << endl; + getStrInChar(strInChar); + +} + +void Menu::endScreen(char* strInChar) { + numberOfOptions = 11; + + optionsLength = new int[numberOfOptions]; + options = new char *[numberOfOptions]; + options[0] = "The End."; + options[1] = ""; + options[2] = "Thank you for playing!"; + options[3] = ""; + options[4] = "@The authors:"; + options[5] = ""; + options[6] = "Filippo Cardano"; + options[7] = "Marco Brillo"; + options[8] = "Michele Pettinato"; + options[9] = ""; + options[10] = "Press 'c' to continue"; + optionsLength[0] = 8; + optionsLength[1] = 0; + optionsLength[2] = 22; + optionsLength[3] = 0; + optionsLength[4] = 13; + optionsLength[5] = 0; + optionsLength[6] = 15; + optionsLength[7] = 12; + optionsLength[8] = 17; + optionsLength[9] = 0; + optionsLength[10] = 21; + //cout << "Menu::endScreen1" << endl; + clearScreen(); + //cout << "Menu::endScreen1.1" << endl; + drawOptions(); + //cout << "Menu::endScreen2" << endl; + getStrInChar(strInChar); +} + +void Menu::clearScreen() { + for (int i = 0; i < VIEWPORT_HEIGHT; i++) { + for (int j = 0; j < VIEWPORT_WIDTH; j++) { + screen[i][j] = ' '; + } + } +} + +void Menu::drawOptions() { + topmostOption = VIEWPORT_HEIGHT / 2 - numberOfOptions / 2; + //cout << "Menu::drawOptions1" << endl; + for (int i = topmostOption, ki = 0; ki < numberOfOptions; ki++, i++) { + int length = optionsLength[ki]; + //cout << ki << endl; + for (int j = VIEWPORT_WIDTH / 2 - length / 2, kj = 0; kj < length; + kj++, j++) { + //cout << kj << endl; + screen[i][j] = options[ki][kj]; + } + } + //cout << "Menu::drawOptions2" << endl; +} + diff --git a/src/Menu.h b/src/Menu.h new file mode 100644 index 0000000..9ad4dba --- /dev/null +++ b/src/Menu.h @@ -0,0 +1,42 @@ +/* + * Menu.h + * + * Created on: 26.05.2016 + * Author: Michele + */ + +#ifndef SRC_MENU_H_ +#define SRC_MENU_H_ + +const int MESSAGE_Y = (VIEWPORT_HEIGHT / 4) * 3; +const int MENU_DELAY_MS = 64; +const int MSG_COUNTDOWN_SECONDS = 5; +const int MSG_COUNTDOWN_FRAMES = MSG_COUNTDOWN_SECONDS * (1000 / MENU_DELAY_MS); + +class Menu { +public: + Menu(); + void draw(); + void getStrInChar(char*); + void cursorUp(); + void cursorDown(); + int getSelectedItem(); + void setMessage(char*, int); + void inGame(); + void notInGame(); + void endScreen(char*); + void readPage(char*, const char*); +private: + void clearScreen(); + void drawOptions(); + int cursor; + char* message; + int messageLength; + int numberOfOptions; + int topmostOption; + int* codes; +}; + + + +#endif /* SRC_MENU_H_ */ diff --git a/src/Mob.cpp b/src/Mob.cpp index ee3c5ad..0877bc5 100644 --- a/src/Mob.cpp +++ b/src/Mob.cpp @@ -6,99 +6,415 @@ */ #include "Mob.h" -#include "map.h" +#include "Map.h" #include "stdlib.h" #include +#include #include +#include using namespace std; -char** mobLook; +Player* playerposition; -Mob::Mob(void) { +bool isBoss = false; + +Mob::Mob() { + hp = 17; + attackStrength = 15; + speedCount = 0; + xposition = 10; + yposition = 10; + speed = 5; + viewDistance = 400; + aggressive = true; + defenceLoot = 0; + attackLoot = 0; + healthLoot = 0; + healthAddLoot = 0; + maxPowerAddLoot = 0; + width = 0; + height = 0; +} + +void Mob::createBoss(int x, int y) { + string line; + ifstream myfile("boss.txt"); + mobLook = new char *[BOSS_HEIGHT]; + for (int i = 0; i < BOSS_HEIGHT; i++) { + mobLook[i] = new char[BOSS_WIDTH]; + } + if (myfile.is_open()) { + for (int i = 0; i < BOSS_HEIGHT && getline(myfile, line); i++) { + for (unsigned int j = 0; j < BOSS_WIDTH; j++) { + char c = line.at(j); + if (c == ' ') { + c = EMPTY; + } + mobLook[i][j] = c; + } + } + myfile.close(); + // boss' stats + isBoss = true; + xposition = x; + yposition = y; + width = BOSS_WIDTH; + height = BOSS_HEIGHT; + hp = BOSS_MAX_HP; + attackStrength = 80; + speed = 3; + viewDistance = 400; + healthLoot = 2000; + } else { + cout << "Unable to open file" << endl; + } +} + +void Mob::creatingMob(int x, int y, Player*& player) { mobLook = new char *[MOB_HEIGHT]; mobLook[0] = new char[MOB_WIDTH]; mobLook[0][0] = 'G'; mobLook[0][1] = 'O'; mobLook[0][2] = 'B'; -// for(int i = 0; i <10; i++) -// array[i] = new int[10]; + width = MOB_WIDTH; + height = MOB_HEIGHT; + hp = 17; + attackStrength = 15; + speedCount = 0; + xposition = 10; + yposition = 10; + speed = 5; + viewDistance = 400; + aggressive = true; + defenceLoot = 0; + attackLoot = 0; + healthLoot = 0; + healthAddLoot = 0; + int difficulty; + difficulty = (player->getDefense() * 3); + difficulty += (player->getAttackStrength() * 10); + difficulty += (player->getMaxHP() / 2); + difficulty = difficulty / 3; speedCount = 0; - xpossition = 20; - ypossition = 35; - speed = 3; - viewDistance = 900; // sqrt(10) + int type = RTD(1, 100); + if (type < 50) { // imp gob + int monster = RTD(1, 2); + setLook(monster); + setStats(difficulty, monster, player); + } else if (type < 75) { // vam and zom + int monster = RTD(3, 4); + setLook(monster); + setStats(difficulty, monster, player); + } else if (type < 95) { //ang + setLook(5); + setStats(difficulty, 5, player); + } else { // god + setLook(6); + setStats(difficulty, 6, player); + } + xposition = x; + yposition = y; } +void Mob::setStats(int difficulty, int monster, Player*& playerLoot) { + switch (monster) { + case 1: //gob + hp = difficulty / 10; + attackStrength = difficulty / 15; + speed = 10; + viewDistance = 500; // sqrt(10) + healthLoot = playerLoot->getHP() / 12; + break; + case 2: //imp + hp = difficulty / 20; + attackStrength = difficulty / 20; + speed = 2; + viewDistance = 300; + healthLoot = playerLoot->getHP() / 16; + break; + case 3: //vam + hp = difficulty / 10; + attackStrength = difficulty / 15; + speed = 4; + viewDistance = 500; // sqrt(10) + if (RTD(1, 2) == 1) { + attackLoot = 2; + } else { + attackLoot = 4; + } + break; + case 4: //zom + hp = difficulty / 5; + attackStrength = difficulty / 8; //difficulty->getHP()/20; + speed = 12; + viewDistance = 400; + healthLoot = difficulty / 16; + if (RTD(1, 2) == 1) { + defenceLoot = 2; + } else { + defenceLoot = 4; + } + break; + case 5: //spi + hp = difficulty / 4; + attackStrength = difficulty / 8; // difficulty->getHP()/15; + speed = 4; + viewDistance = 1000; // sqrt(10) + healthLoot = difficulty / 12; + if (RTD(1, 2) == 1) { + healthAddLoot = 10; + } else { + healthAddLoot = 20; + } + break; + case 6: //lic + hp = difficulty; + attackStrength = difficulty / 5; //difficulty->getHP()/20; + speed = 7; + viewDistance = 1000; + healthLoot = difficulty / 2; + healthAddLoot = playerLoot->getMaxHP() / 20; + attackLoot = 6; + int bonusPower = RTD(1, 100); + if (bonusPower < 5) { + maxPowerAddLoot = 1; + } + break; + } + int bonus = RTD(1, 100); + if (bonus > 98) { + attackLoot = attackLoot + 5; + defenceLoot = defenceLoot + 5; + healthAddLoot = healthAddLoot + 25; + maxPowerAddLoot += 1; + healthLoot = 1000; + } +} + +int Mob::getPowerAddLoot() { + return maxPowerAddLoot; +} +//void Mob::setStats(Player*& difficulty, int monster){ +// switch(monster){ +// case 1: +// hp = difficulty->getHP()/15; +// attackStrength = 0;// difficulty->getHP()/15; +// speed = 10; +// viewDistance = 500; // sqrt(10) +// healthLoot = difficulty->getHP()/12; +// break; +// case 2: +// hp = difficulty->getHP()/20; +// attackStrength = 0;//difficulty->getHP()/20; +// speed = 3; +// viewDistance = 300; +// healthLoot = difficulty->getHP()/16; +// break; +// case 3: +// hp = difficulty->getHP()/15; +// attackStrength = 0;// difficulty->getHP()/15; +// speed = 10; +// viewDistance = 500; // sqrt(10) +// healthLoot = difficulty->getHP()/12; +// if(RTD(1,2) == 1){ +// attackLoot = difficulty->getAttackStrength()/10; +// }else{ +// attackLoot = difficulty->getAttackStrength()/20; +// } +// break; +// case 4: +// hp = difficulty->getHP()/20; +// attackStrength = 0;//difficulty->getHP()/20; +// speed = 3; +// viewDistance = 300; +// healthLoot = difficulty->getHP()/16; +// break; +// case 5: +// hp = difficulty->getHP()/15; +// attackStrength = 0;// difficulty->getHP()/15; +// speed = 10; +// viewDistance = 500; // sqrt(10) +// healthLoot = difficulty->getHP()/12; +// break; +// case 6: +// hp = difficulty->getHP()/20; +// attackStrength = 0;//difficulty->getHP()/20; +// speed = 3; +// viewDistance = 300; +// healthLoot = difficulty->getHP()/16; +// break; +// } +//} -void Mob::mobMovement(Map*& mapEditor, Player*& xyPlayer){ - int tempx = xpossition; - int tempy = ypossition; +void Mob::setLook(int whichone) { + switch (whichone) { + case 1: + mobLook[0][0] = 'G'; + mobLook[0][1] = 'O'; + mobLook[0][2] = 'B'; + break; + case 2: + mobLook[0][0] = 'I'; + mobLook[0][1] = 'M'; + mobLook[0][2] = 'P'; + break; + case 3: + mobLook[0][0] = 'V'; + mobLook[0][1] = 'A'; + mobLook[0][2] = 'M'; + break; + case 4: + mobLook[0][0] = 'Z'; + mobLook[0][1] = 'O'; + mobLook[0][2] = 'M'; + break; + case 5: + mobLook[0][0] = 'S'; + mobLook[0][1] = 'P'; + mobLook[0][2] = 'I'; + break; + case 6: + mobLook[0][0] = 'L'; + mobLook[0][1] = 'I'; + mobLook[0][2] = 'C'; + break; + } +} + +int Mob::RTD(int from, int to) { + return rand() % (to - from + 1) + from; +} + +void Mob::mobMovement(Map*& mapEditor, Player*& xyPlayer) { + playerposition = xyPlayer; + int tempx = xposition; + int tempy = yposition; int playerx; int playery; - xyPlayer->playerPossition(&playerx, &playery); - int differencex = abs(xpossition - playerx); - int differencey = abs(ypossition - playery); -// if(differencex < 3 && differencey < 2){ - //cout << "Touch" <playerPosition(&playerx, &playery); + differencex = abs(xposition - playerx) - width / 2 - PLAYER_WIDTH / 2 - 1; + differencey = abs(yposition - playery) - height / 2 - PLAYER_HEIGHT / 2 - 1; + if ((speedCount % speed) == 0) { + if (aggressive + && (pow(differencex, 2) + pow(differencey, 2)) < viewDistance) { + if (differencey < 1 && differencex < 1) { + aggressive = playerposition->damage(attackStrength); + } else if (differencey < differencex) { + if (xposition < playerx) { + xposition++; + } else { + xposition--; } - }else{ - if(ypossition < playery){ - ypossition++; - }else{ - ypossition--; + } else { + if (yposition < playery) { + yposition++; + } else { + yposition--; } } - }else{ - int randomMovement = rand() %100; - if(randomMovement < 50){ - if(randomMovement < 25){ - xpossition++; - }else{ - xpossition--; + } else { + int randomMovement = rand() % 100; + if (isBoss) { + hp = min(hp + BOSS_HEAL_RATE, BOSS_MAX_HP); + } + if (randomMovement < 50) { + if (randomMovement < 25) { + xposition++; + } else { + xposition--; } - }else{ - if(randomMovement < 75){ - ypossition++; - }else{ - ypossition--; + } else { + if (randomMovement < 75) { + yposition++; + } else { + yposition--; } } } - while(!mapEditor->testBorder(xpossition, ypossition, MOB_WIDTH, MOB_HEIGHT, mobLook)){ - xpossition = tempx; - ypossition = tempy; - int randomMovement = rand() %100; - if(randomMovement < 50){ - if(randomMovement < 25){ - xpossition++; - }else{ - xpossition--; + //cout << "Mob::mobMovement1" << endl; + const int LIMIT = 1000; // avoid a bad crash if the mob cannot move + for (int i = 0; + i < LIMIT + && !mapEditor->testBorder(xposition, yposition, width, + height, mobLook); i++) { + //cout << "Mob::mobMovement2" << endl; + xposition = tempx; + yposition = tempy; + int randomMovement = rand() % 100; + if (randomMovement < 50) { + if (randomMovement < 25) { + xposition++; + } else { + xposition--; } - }else{ - if(randomMovement < 75){ - ypossition++; - }else{ - ypossition--; + } else { + if (randomMovement < 75) { + yposition++; + } else { + yposition--; } } } } - mapEditor->drawCharacter(xpossition, ypossition, MOB_WIDTH, MOB_HEIGHT, mobLook); + //cout << "Mob::mobMovement3" << endl; + mapEditor->drawCharacter(xposition, yposition, width, height, mobLook); + //cout << "Mob::mobMovement4" << endl; +// if((pow(differencex, 2)+ pow(differencey,2)) < viewDistance){ + detectDamage(mapEditor); + //cout << "Mob::mobMovement5" << endl; +// } speedCount++; - oldx = tempx; - oldy= tempy; } -bool Mob::testTouch(int x, int y){ - +void Mob::detectDamage(Map*& mapChecker) { + for (int i = yposition - height / 2, looki = 0; looki < height; i++, looki++) { + for (int j = xposition - width / 2, lookj = 0; lookj < width; j++, lookj++) { + if (mobLook[looki][lookj] != EMPTY) { + char damageIndicator = mapChecker->getBorderCell(j, i); + if ((damageIndicator != '0') && ((speedCount % 6) == 0)) { //we do this to test if he is getting hit and to make sure he doesn't get hit 100 times + switch (damageIndicator) { + case '6': // sword swing + hp -= playerposition->getAttackStrength(); + return; + case '7': // aoe + hp -= playerposition->getAOEDamage(); + return; + case '8': + return; + case '9': + return; + } + } + } + } + } +} +bool Mob::despawnCheck() { + if ((pow(differencex, 2) + pow(differencey, 2)) > 3600) { + return true; + } return false; } + +int Mob::getHealth() { + return hp; +} + +int Mob::getHealthLoot() { + return healthLoot; +} + +int Mob::getDefenceLoot() { + return defenceLoot; +} + +int Mob::getAttackLoot() { + return attackLoot; +} +int Mob::getHealthAddLoot() { + return healthAddLoot; +} +Mob::~Mob() { +} + diff --git a/src/Mob.h b/src/Mob.h index fa2e1c3..14da195 100644 --- a/src/Mob.h +++ b/src/Mob.h @@ -7,24 +7,52 @@ #ifndef SRC_MOB_H_ #define SRC_MOB_H_ -#include "map.h" -#include "player.h" +#include "Map.h" +#include "Player.h" +#include "GingerBeards.h" const int MOB_HEIGHT = 1, MOB_WIDTH = 3; +const int BOSS_HEIGHT = 5, BOSS_WIDTH = 9; +const int BOSS_MAX_HP = 5000; +const int BOSS_HEAL_RATE = 5; class Mob { public: + void creatingMob(int, int, Player*&); + void createBoss(int, int); void mobMovement(Map*&, Player*&); - bool testTouch(int , int ); + void detectDamage(Map*&); + int getHealth(); + int getPowerAddLoot(); + int RTD(int , int ); + void setLook(int); + void setStats(int, int, Player*&); +// void setStats(Player*&, int); + int getHealthLoot(); + int getDefenceLoot(); + int getAttackLoot(); + int getHealthAddLoot(); + bool despawnCheck(); Mob(); + ~Mob(); private: - int xpossition; - int ypossition; - int oldx; - int oldy; + int xposition; + int yposition; + int height, width; + int differencex; + int differencey; + int hp; + int attackStrength; int speedCount; int speed; - int viewDistance; // sqrt(10) + int viewDistance; + bool aggressive; + int defenceLoot; + int attackLoot; + int healthLoot; + int healthAddLoot; + int maxPowerAddLoot; + char** mobLook; }; #endif /* SRC_MOB_H_ */ diff --git a/src/MobControl.cpp b/src/MobControl.cpp new file mode 100644 index 0000000..6e229f2 --- /dev/null +++ b/src/MobControl.cpp @@ -0,0 +1,106 @@ +/* + * MobControl.cpp + * + * Created on: 19 May 2016 + * Author: Filippo M Cardano + */ + +#include "MobControl.h" +#include "Mob.h" +#include +#include +using namespace std; + +Mob mobArray [30]; + + +MobControl::MobControl(){ + mobArrayLenth = 0; + counter=0; +} + +void MobControl::completeAI(Map*& mapEditor, Player*& xyPlayer){ + moveMobs(mapEditor, xyPlayer); + if(checkHealth(xyPlayer)){ + int x =0; + int y = 0; + xyPlayer->playerPosition(&x, &y); + mapEditor->drawChar(x, y - 2, '*'); + mapEditor->drawChar(x-1, y - 2, '*'); + mapEditor->drawChar(x+1, y - 2, '*'); + } + if((counter % 30) == 0){ + smartSpawn(xyPlayer, mapEditor); + counter = 0; + } + smartDespawn(); + counter++; +} + +void MobControl::moveMobs(Map* mapEditor, Player* xyPlayer){ + for(int i = 0 ; i < mobArrayLenth; i++){ + mobArray[i].mobMovement(mapEditor, xyPlayer); + } +} + +void MobControl::smartDespawn(){ + int tempMobArrayLength = mobArrayLenth; + for(int i = 0 ; i < tempMobArrayLength; i++){ + if(mobArray[i].despawnCheck()){ + mobArrayLenth--; + int tempcounter = 0; + for(int j = 0; j < tempMobArrayLength; j++){ + if(j != i){ + mobArray[tempcounter] = mobArray[j]; + tempcounter++; + } + } + } + } +} + +bool MobControl::checkHealth(Player*& addStats){ + int tempMobArrayLength = mobArrayLenth; + bool what = false; + for(int i = 0 ; i < tempMobArrayLength; i++){ + if(mobArray[i].getHealth() < 1){ + mobArrayLenth--; + addStats->setMaxHP(mobArray[i].getHealthAddLoot()+ addStats->getMaxHP()); + addStats->addHP(mobArray[i].getHealthLoot());//add gets + addStats->addDef(mobArray[i].getDefenceLoot()); + addStats->addAtk(mobArray[i].getAttackLoot()); + addStats->addMaxPower(mobArray[i].getPowerAddLoot()); + addStats->increasePower(); + int tempcounter = 0; + for(int j = 0; j < tempMobArrayLength; j++){ + if(j != i){ + mobArray[tempcounter] = mobArray[j]; + tempcounter++; + } + } + what = true; + } + } + return what; +} +void MobControl::smartSpawn(Player*& playerinfo, Map*& mapChecker){ + int x; + int y; + playerinfo->playerPosition(&x,&y); + int idealx = rand() % 40 + (x - 20); + int idealy = rand() % 30 + (y - 15); + char** mobLook = new char *[MOB_HEIGHT]; + mobLook[0] = new char[MOB_WIDTH]; + mobLook[0][0] = 'M'; + mobLook[0][1] = 'M'; + mobLook[0][2] = 'M'; + //cout << "MobControl::smartSpawn1" << endl; + if(mobArrayLenth < 28 && mapChecker->testBorder(idealx, idealy, 3, 1, mobLook)){ + mobArray[mobArrayLenth].creatingMob(idealx, idealy, playerinfo); + mobArrayLenth++; + } +} +MobControl::~MobControl() { + // TODO Auto-generated destructor stub +} + diff --git a/src/MobControl.h b/src/MobControl.h new file mode 100644 index 0000000..371ea39 --- /dev/null +++ b/src/MobControl.h @@ -0,0 +1,26 @@ +/* + * MobControl.h + * + * Created on: 19 May 2016 + * Author: Filippo M Cardano + */ + +#ifndef SRC_MOBCONTROL_H_ +#define SRC_MOBCONTROL_H_ +#include "Mob.h" + +class MobControl { +public: + MobControl(); + virtual ~MobControl(); + void moveMobs(Map*, Player*); + bool checkHealth(Player*&); + void completeAI(Map*&, Player*&); + void smartSpawn(Player*&, Map*&); + void smartDespawn(); +private: + int mobArrayLenth; + unsigned int counter; +}; + +#endif /* SRC_MOBCONTROL_H_ */ diff --git a/src/Player.cpp b/src/Player.cpp index 1d5a28c..f33341a 100644 --- a/src/Player.cpp +++ b/src/Player.cpp @@ -5,58 +5,474 @@ using namespace std; char** playerLook; +Map* mapDraw; + +bool isDead; +bool chargePower; Player::Player() { + isDead = false; + chargePower = true; playerLook = new char *[PLAYER_HEIGHT]; for (int i = 0; i < PLAYER_HEIGHT; i++) { playerLook[i] = new char[PLAYER_WIDTH]; } - playerLook[0][0] = EMPTY; - playerLook[0][1] = 'o'; - playerLook[0][2] = EMPTY; - - playerLook[1][0] = '/'; - playerLook[1][1] = '|'; - playerLook[1][2] = '\\'; - playerLook[2][0] = '/'; - playerLook[2][1] = EMPTY; - playerLook[2][2] = '\\'; - xpossition = 5; - ypossition = 25; +// (°_ʖ°) +// EMPTY o EMPTY + playerLook[0][0] = '^'; + playerLook[0][1] = '_'; + playerLook[0][2] = '^'; + this->standardLook(); + xposition = 396; + yposition = 162; + attackCounter = 0; + attackDir = 8; + maxHP = 600; + HP = 500; + power = 3; + maxPower = 6; + defense = 1; + attackStrength = 10; + healPerSec = 1; + healDelaySec = 0; } void Player::playerMovement(int keypressed, Map*& mapEditor) { - int tempx = xpossition; - int tempy = ypossition; + int tempx = xposition; + int tempy = yposition; + if (isDead) + return; switch (keypressed) { case 1: - xpossition--; + xposition--; + playerLook[0][0] = '<'; + playerLook[0][1] = '_'; + playerLook[0][2] = '<'; + break; + case 2: + xposition++; + playerLook[0][0] = '>'; + playerLook[0][1] = '_'; + playerLook[0][2] = '>'; + break; + case 3: + yposition--; + playerLook[0][0] = '>'; + playerLook[0][1] = '_'; + playerLook[0][2] = '<'; + break; + case 4: + yposition++; + playerLook[0][0] = '>'; + playerLook[0][1] = '_'; + playerLook[0][2] = '<'; + break; + } + + if (!mapEditor->testBorder(xposition, yposition, PLAYER_WIDTH, + PLAYER_HEIGHT, playerLook)) { + xposition = tempx; + yposition = tempy; + } +} + +void Player::heal() { + if (healDelaySec <= 0) { + if (!isDead) { + HP = min(maxHP, HP + healPerSec); + } + } else { + healDelaySec--; + } +} + +bool Player::hasDied() { + return isDead; +} + +int Player::getAOEDamage() { + return aoeDamage; +} + +// true if the player still lives +bool Player::damage(int amount) { + int damage = amount <= defense ? 1 : amount - defense; + HP -= damage; + healDelaySec = 2 * 1000 / GAME_DELAY_MS; + if (HP <= 0) { + this->standardLook(); + playerLook[0][0] = 'x'; + playerLook[0][2] = 'x'; + isDead = true; + return false; + } + return true; +} + +void Player::playerPosition(int* x, int* y) { + *x = xposition; + *y = yposition; +} + +void Player::draw(Map*& mapEditor) { + mapDraw = mapEditor; + attack(attackDir); + mapEditor->drawCharacter(xposition, yposition, PLAYER_WIDTH, PLAYER_HEIGHT, + playerLook); +} +void Player::setAttack(int direction) { + if (attackCounter == 0) { + attackDir = direction; + } +} + +int Player::getHP() { + return HP; +} + +int Player::getMaxHP() { + return maxHP; +} + +int Player::getAttackStrength() { + return attackStrength; +} + +int Player::getDefense() { + return defense; +} +void Player::addHP(int amount) { + int max = maxHP - HP; + if (max <= amount) { + this->HP = maxHP; + } else { + this->HP = HP + amount; + } +} +void Player::addDef(int def) { + this->defense += def; +} +void Player::addAtk(int atk) { + this->attackStrength += atk; +} + +void Player::setHP(int amount) { + this->HP = amount; +} + +void Player::setMaxHP(int amount) { + this->maxHP = amount; +} + +void Player::teleport(int x, int y) { + xposition = x; + yposition = y; +} + +void Player::leftSwing() { + attackCounter = (attackCounter + 1) % 6; + playerLook[0][0] = '<'; + playerLook[0][1] = '_'; + playerLook[0][2] = '<'; + switch (attackCounter) { + case 1: + playerLook[1][0] = INVISIBLE; + mapDraw->drawChar(xposition - 1, yposition + 2, '\\', PLAYER_SWING); + mapDraw->drawChar(xposition - 2, yposition + 3, '/', PLAYER_SWING); break; case 2: - xpossition++; + mapDraw->drawChar(xposition - 2, yposition + 1, '|', PLAYER_SWING); + mapDraw->drawChar(xposition - 4, yposition + 2, '/', PLAYER_SWING); break; case 3: - ypossition--; + playerLook[1][0] = '-'; + mapDraw->drawChar(xposition - 2, yposition, '-', PLAYER_SWING); + mapDraw->drawChar(xposition - 3, yposition, '|', PLAYER_SWING); + mapDraw->drawChar(xposition - 4, yposition, '-', PLAYER_SWING); + mapDraw->drawChar(xposition - 5, yposition, '-', PLAYER_SWING); break; case 4: - ypossition++; + playerLook[1][0] = INVISIBLE; + mapDraw->drawChar(xposition - 2, yposition - 1, '|', PLAYER_SWING); + mapDraw->drawChar(xposition - 4, yposition - 2, '\\', PLAYER_SWING); break; case 5: + mapDraw->drawChar(xposition - 1, yposition - 2, '/', PLAYER_SWING); + mapDraw->drawChar(xposition - 2, yposition - 3, '\\', PLAYER_SWING); + } +} +void Player::rightSwing() { + attackCounter = (attackCounter + 1) % 6; + playerLook[0][0] = '>'; + playerLook[0][1] = '_'; + playerLook[0][2] = '>'; + switch (attackCounter) { + case 1: + playerLook[1][2] = INVISIBLE; + mapDraw->drawChar(xposition + 1, yposition + 2, '/', PLAYER_SWING); + mapDraw->drawChar(xposition + 2, yposition + 3, '\\', PLAYER_SWING); + break; + case 2: + mapDraw->drawChar(xposition + 2, yposition + 1, '|', PLAYER_SWING); + mapDraw->drawChar(xposition + 4, yposition + 2, '\\', PLAYER_SWING); + break; + case 3: + playerLook[1][2] = '-'; + mapDraw->drawChar(xposition + 2, yposition, '-', PLAYER_SWING); + mapDraw->drawChar(xposition + 3, yposition, '|', PLAYER_SWING); + mapDraw->drawChar(xposition + 4, yposition, '-', PLAYER_SWING); + mapDraw->drawChar(xposition + 5, yposition, '-', PLAYER_SWING); + break; + case 4: + playerLook[1][2] = INVISIBLE; + mapDraw->drawChar(xposition + 2, yposition - 1, '|', PLAYER_SWING); + mapDraw->drawChar(xposition + 4, yposition - 2, '/', PLAYER_SWING); break; + case 5: + mapDraw->drawChar(xposition + 1, yposition - 2, '\\', PLAYER_SWING); + mapDraw->drawChar(xposition + 2, yposition - 3, '/', PLAYER_SWING); } - if (!mapEditor->testBorder(xpossition, ypossition, PLAYER_WIDTH, PLAYER_HEIGHT, playerLook)) { - xpossition = tempx; - ypossition = tempy; +} +void Player::frontSwing() { + attackCounter = (attackCounter + 1) % 6; + playerLook[0][0] = '>'; + playerLook[0][1] = '_'; + playerLook[0][2] = '<'; + switch (attackCounter) { + case 1: + playerLook[1][2] = INVISIBLE; + mapDraw->drawChar(xposition - 2, yposition - 1, '/', PLAYER_SWING); + mapDraw->drawChar(xposition - 3, yposition - 2, '\\', PLAYER_SWING); + break; + case 2: + mapDraw->drawChar(xposition - 1, yposition - 2, '/', PLAYER_SWING); + mapDraw->drawChar(xposition - 2, yposition - 3, '\\', PLAYER_SWING); + break; + case 3: + // mapDraw->drawChar(xposition, yposition - 4, '|', PLAYER_SWING); + mapDraw->drawChar(xposition, yposition - 3, '|', PLAYER_SWING); + mapDraw->drawChar(xposition, yposition - 2, 'T', PLAYER_SWING); + break; + case 4: + mapDraw->drawChar(xposition + 1, yposition - 2, '\\', PLAYER_SWING); + mapDraw->drawChar(xposition + 2, yposition - 3, '/', PLAYER_SWING); + break; + case 5: + mapDraw->drawChar(xposition + 2, yposition - 1, '\\', PLAYER_SWING); + mapDraw->drawChar(xposition + 3, yposition - 2, '/', PLAYER_SWING); } +} +void Player::backSwing() { + attackCounter = (attackCounter + 1) % 6; + mapDraw->restoreBorder(); + playerLook[0][0] = '>'; + playerLook[0][1] = '_'; + playerLook[0][2] = '<'; + switch (attackCounter) { + case 1: + playerLook[1][0] = '\\'; + mapDraw->drawChar(xposition + 2, yposition + 1, '/', PLAYER_SWING); + mapDraw->drawChar(xposition + 3, yposition + 2, '\\', PLAYER_SWING); + break; + case 2: + mapDraw->drawChar(xposition + 1, yposition + 2, '/', PLAYER_SWING); + mapDraw->drawChar(xposition + 2, yposition + 3, '\\', PLAYER_SWING); + break; + case 3: + playerLook[1][0] = '|'; + mapDraw->drawChar(xposition, yposition + 2, '|', PLAYER_SWING); + mapDraw->drawChar(xposition, yposition + 3, 'T', PLAYER_SWING); + // mapDraw->drawChar(xposition, yposition + 4, '|', PLAYER_SWING); + break; + case 4: + playerLook[1][0] = '/'; + mapDraw->drawChar(xposition - 1, yposition + 2, '\\', PLAYER_SWING); + mapDraw->drawChar(xposition - 2, yposition + 3, '-', PLAYER_SWING); + break; + case 5: + mapDraw->drawChar(xposition - 2, yposition + 1, '\\', PLAYER_SWING); + mapDraw->drawChar(xposition - 3, yposition + 2, '/', PLAYER_SWING); + } +} + +// hard coded +void Player::attack(int direction) { + if (isDead) + return; + if (direction == 1) { //a + leftSwing(); + } else if (direction == 2) { //d + rightSwing(); + } else if (direction == 3) { //w + frontSwing(); + } else if (direction == 4) { //s + backSwing(); + } else if (direction == 5) { //aoe f1 + AOEAttack(); + } + if (attackCounter == 0) { + attackDir = 0; + mapDraw->restoreBorder(); + this->standardLook(); + chargePower = true; + } +} +int Player::getPower() { + return power; } -void Player::playerPossition(int* x, int* y) { - *x = xpossition; - *y = ypossition; +void Player::increasePower() { + if (chargePower) { + power = min(power + 1, maxPower); + } } -void Player::draw(Map*& mapEditor) { - mapEditor->drawCharacter(xpossition, ypossition, PLAYER_WIDTH, - PLAYER_HEIGHT, playerLook); +int Player::getMaxPower() { + return maxPower; +} + +void Player::AOEAttack() { + if (attackCounter == 0) { + if (power >= MINIMUM_AOE_COST) { + chargePower = false; // avoid that the player overuses the special ability + playerLook[2][1] = AOE_CHAR; + aoeDamage = (int) attackStrength * (0.5 + 0.1 * power); + aoeRadius = AOE_RADIUS + power / 3; + power = 0; + attackCounter = 1; + } + } else { + attackCounter = (attackCounter + 1) % aoeRadius; + } + int topLeftX = xposition - PLAYER_WIDTH / 2; + int topLeftY = yposition - PLAYER_HEIGHT / 2; + int bottomRightX = xposition + PLAYER_WIDTH / 2; + int bottomRightY = yposition + PLAYER_HEIGHT / 2; + for (int i = 1; i <= attackCounter; i++) { + int x = topLeftX; + int y = topLeftY - i; + // draw north edge + for (int j = 0; j < PLAYER_WIDTH; j++) { + mapDraw->drawChar(x++, y, AOE_CHAR, AOE_CODE); + } + y++; + // draw north east diagonal + while (y < topLeftY) { + mapDraw->drawChar(x++, y++, AOE_CHAR, AOE_CODE); + } + // draw east edge + for (int j = 0; j < PLAYER_HEIGHT; j++) { + mapDraw->drawChar(x, y++, AOE_CHAR, AOE_CODE); + } + x--; + // draw south east diagonal + while (x > bottomRightX) { + mapDraw->drawChar(x--, y++, AOE_CHAR, AOE_CODE); + } + // draw south edge + for (int j = 0; j < PLAYER_WIDTH; j++) { + mapDraw->drawChar(x--, y, AOE_CHAR, AOE_CODE); + } + y--; + // draw south west diagonal + while (y > bottomRightY) { + mapDraw->drawChar(x--, y--, AOE_CHAR, AOE_CODE); + } + // draw west edge + for (int j = 0; j < PLAYER_HEIGHT; j++) { + mapDraw->drawChar(x, y--, AOE_CHAR, AOE_CODE); + } + x++; + // draw north west diagonal + while (x < topLeftX) { + mapDraw->drawChar(x++, y--, AOE_CHAR, AOE_CODE); + } + } +} +// switch (attackCounter) { +// case 1: +// mapDraw->drawChar(xposition - 1, yposition - 2, 'c', AOE); +// mapDraw->drawChar(xposition, yposition - 2, 'c', AOE); +// mapDraw->drawChar(xposition + 1, yposition - 2, 'c', AOE); +// mapDraw->drawChar(xposition - 1, yposition + 2, 'c', AOE); +// mapDraw->drawChar(xposition, yposition + 2, 'c', AOE); +// mapDraw->drawChar(xposition + 1, yposition + 2, 'c', AOE); +// mapDraw->drawChar(xposition + 2, yposition - 1, 'c', AOE); +// mapDraw->drawChar(xposition + 2, yposition, 'c', AOE); +// mapDraw->drawChar(xposition + 2, yposition + 1, 'c', AOE); +// mapDraw->drawChar(xposition - 2, yposition - 1, 'c', AOE); +// mapDraw->drawChar(xposition - 2, yposition, 'c', AOE); +// mapDraw->drawChar(xposition - 2, yposition + 1, 'c', AOE); +// break; +// case 2: +// mapDraw->drawChar(xposition - 1, yposition - 2, 'c', AOE); +// mapDraw->drawChar(xposition, yposition - 2, 'c', AOE); +// mapDraw->drawChar(xposition + 1, yposition - 2, 'c', AOE); +// mapDraw->drawChar(xposition - 1, yposition + 2, 'c', AOE); +// mapDraw->drawChar(xposition, yposition + 2, 'c', AOE); +// mapDraw->drawChar(xposition + 1, yposition + 2, 'c', AOE); +// mapDraw->drawChar(xposition + 2, yposition - 1, 'c', AOE); +// mapDraw->drawChar(xposition + 2, yposition, 'c', AOE); +// mapDraw->drawChar(xposition + 2, yposition + 1, 'c', AOE); +// mapDraw->drawChar(xposition - 2, yposition - 1, 'c', AOE); +// mapDraw->drawChar(xposition - 2, yposition, 'c', AOE); +// mapDraw->drawChar(xposition - 2, yposition + 1, 'c', AOE); +// +// mapDraw->drawChar(xposition - 1, yposition - 3, 'c', AOE); +// mapDraw->drawChar(xposition, yposition - 3, 'c', AOE); +// mapDraw->drawChar(xposition + 1, yposition - 3, 'c', AOE); +// +// mapDraw->drawChar(xposition + 2, yposition - 2, 'c', AOE); +// mapDraw->drawChar(xposition - 1, yposition + 3, 'c', AOE); +// mapDraw->drawChar(xposition, yposition + 3, 'c', AOE); +// mapDraw->drawChar(xposition + 1, yposition + 3, 'c', AOE); +// mapDraw->drawChar(xposition + 2, yposition + 2, 'c', AOE); +// mapDraw->drawChar(xposition + 3, yposition - 1, 'c', AOE); +// mapDraw->drawChar(xposition + 3, yposition, 'c', AOE); +// mapDraw->drawChar(xposition + 3, yposition + 1, 'c', AOE); +// mapDraw->drawChar(xposition - 2, yposition + 2, 'c', AOE); +// mapDraw->drawChar(xposition - 3, yposition - 1, 'c', AOE); +// mapDraw->drawChar(xposition - 3, yposition, 'c', AOE); +// mapDraw->drawChar(xposition - 3, yposition + 1, 'c', AOE); +// mapDraw->drawChar(xposition - 2, yposition - 2, 'c', AOE); +// break; +// case 3: +// //mapDraw->drawChar(xpossition, ypossition+2, '|'); +// break; +// case 4: +// //mapDraw->drawChar(xpossition-1, ypossition+2, '/'); +// break; +// case 5: +// //mapDraw->drawChar(xpossition-2, ypossition+1, '/'); +// break; +// case 6: +// attackCounter = 0; +// break; +// } +// } + +void Player::loadCharacter(int x, int y, int attack, int def, int hp, + int maxhp, int pow, int maxPow) { + this->xposition = x; + this->yposition = y; + this->attackStrength = attack; + this->defense = def; + this->HP = hp; + this->maxHP = maxhp; + this->power = pow; + this->maxPower = maxPow; +} + +void Player::addMaxPower(int amount) { + maxPower = min(POWER_CAP, maxPower + amount); +} + +void Player::standardLook() { + playerLook[1][0] = '/'; + playerLook[1][1] = '|'; + playerLook[1][2] = '\\'; + playerLook[2][0] = '/'; + playerLook[2][1] = EMPTY; + playerLook[2][2] = '\\'; } diff --git a/src/Player.h b/src/Player.h index 4c5a8fa..edf5b5e 100644 --- a/src/Player.h +++ b/src/Player.h @@ -1,27 +1,62 @@ -/* - * Player.h - * - * Created on: 25.04.2016 - * Author: Michele - */ - #ifndef PLAYER_H_ #define PLAYER_H_ -#include "map.h" +#include "Map.h" #include "windows.h" const int PLAYER_WIDTH = 3, PLAYER_HEIGHT = 3; - +// half of the vertical diagonal +const int AOE_RADIUS = YINCREASE / 3; +const char AOE_CHAR= '~'; +const int MINIMUM_AOE_COST = 1; class Player { public: void playerMovement(int, Map*&); - void playerPossition(int*, int*); + void playerPosition(int*, int*); void draw(Map*&); + void setAttack(int); + int getHP(); + int getAttackStrength(); + int getMaxHP(); + int getDefense(); + int getAOEDamage(); + int getMaxPower(); + void setHP(int); + void addHP(int); + void addDef(int); + void addAtk(int); + void addMaxPower(int); + void increasePower(); + void heal(); + bool hasDied(); + void teleport(int, int); + bool damage(int); + int getPower(); + void attack(int); + void setMaxHP(int); + void standardLook(); + void loadCharacter(int, int, int, int, int, int, int, int); + void AOEAttack(); + void leftSwing(); + void rightSwing(); + void frontSwing(); + void backSwing(); Player(); private: - int xpossition; - int ypossition; + int xposition; + int yposition; + int attackDir; + int attackCounter; + int maxHP; + int HP; + int defense; + int attackStrength; + int healPerSec; + int healDelaySec; + int power; + int maxPower; + int aoeDamage; + int aoeRadius; }; #endif /* PLAYER_H_ */