*
+
*
-
*
+
?
*
-
-
*
*
-
+
+
-
+
-
*
-
+
?
+
?
*
-
+
+
?
+
-
+
-
-
?
?
-
+
+
*
*
*
?
-
?
*
+
-
+
?
?
?
-
-
-
+
+
+
?
+
?
-
+
?
?
?
?
*
+
-
+
*
-
+
*
+
*
+
*
*
+
+
*
+
*
+
+
+
*
*
-
+
?
-
+
+
+
-
-
+
?
-
+
-
?
*
*
*
-
-
+
-
+
+
?
+
?
+
+
*
?
+
-
-
-
*
*
-
-
?
-
+
+
-
?
+
?
+
-
+
?
*
+
*
+
+
*
+
?
-
?
*
?
+
+
*
-
*
+
-
+
+
+
+
+
+
+
+
-
+
+
+
*
-
-
+
+
-
+
+
*
-
+
?
-
-
*
-
-
?
*
-
*
-
+
-
*
+
-
+
*
-
+
?
+
-
+
?
?
?
+
*
?
?
?
-
-
+
+
*
+
+
+
-
-
-
-
?
?
?
?
-
-
?
+
*
-
?
*
+
*
-
-
+
?
+
*
*
*
+
*
+
?
+
?
+
?
-
*
+
+
?
+
*
-
?
-
*
?
*
*
-
-
+
-
+
+
-
?
-
+
-
-
*
-
+
?
+
*
*
+
*
?
?
?
+
-
?
*
?
*
+
+
?
?
+
*
-
*
?
+
-
+
-
?
-
-
+
-
+
+
*
+
*
*
*
*
+
?
+
?
?
*
+
+
?
*
+
-
+
+
-
+
+
+
+
?
+
-
-
*
?
?
+
-
-
+
+
+
?
*
+
+
-
+
+
+
-
-
+
*
-
?
*
-
+
?
*
-
+
*
*
?
-
*
*
+
?
-
+
*
*
+
?
-
-
*
-
*
+
-
-
+
-
?
*
+
-
+
-
-
-
-
-
-
-
-
-
?
?
?
*
*
+
-
-
+
*
*
+
*
?
*
+
-
+
?
-
+
-
*
-
+
?
*
+
+
*
*
+
*
?
-
+
*
+
+
+
?
*
-
-
*
-
+
-
+
+
-
-
-
+
?
-
-
+
-
-
?
+
-
*
+
+
+
*
?
?
*
?
-
?
*
-
+
+
?
-
+
-
?
+
-
?
+
*
-
+
?
?
-
-
+
?
*
+
+
?
?
*
+
+
+
?
*
*
*
-
?
*
?
+
*
+
*
+
*
+
*
+
?
+
*
-
+
*
*
+
+
+
-
*
+
?
-
+
*
-
+
-
-
+
+
*
+
+
-
-
?
-
+
-
?
?
+
+
?
-
-
+
?
-
-
-
+
+
*
?
+
-
-
?
-
*
?
+
+
+
?
-
+
+
?
*
+
+
*
?
?
*
-
-
*
*
-
*
+
*
-
+
+
+
?
?
*
-
-
-
*
+
?
-
+
+
?
*
+
+
*
?
+
*
+
*
-
*
-
+
-
*
+
-
-
-
?
+
*
?
?
-
+
+
+
-
*
*
-
-
*
?
-
*
+
+
-
?
+
-
*
+
+
*
*
*
+
*
+
-
-
-
-
-
-
?
*
+
+
?
-
+
*
?
+
*
?
?
-
-
-
*
-
-
*
?
*
+
?
-
+
-
-
*
*
-
-
+
*
?
+
-
+
+
-
-
+
*
+
-
?
?
+
*
+
+
?
?
-
+
-
?
+
?
*
-
*
?
-
*
+
+
+
*
-
*
?
-
?
*
*
*
*
+
+
+
*
?
+
-
+
?
?
-
*
+
-
?
?
*
?
*
+
*
*
-
?
?
*
*
+
*
+
-
-
-
?
+
+
*
-
*
*
-
*
-
+
-
+
+
*
?
?
+
?
?
-
*
*
-
-
+
-
*
-
-
?
-
+
*
+
-
+
+
*
*
-
+
*
-
-
-
-
?
+
*
+
-
+
+
+
-
-
?
+
-
*
-
+
+
*
-
-
*
?
+
-
-
+
+
+
+
-
?
-
+
-
+
+
+
?
-
?
+
?
*
?
?
-
+
*
+
+
?
-
-
?
*
-
+
?
-
+
*
+
+
+
-
+
+
+
+
-
-
?
?
-
?
+
-
-
?
*
-
-
+
+
+
-
*
+
+
+
?
+
-
-
-
?
+
-
?
-
+
*
*
-
+
*
-
-
+
+
-
*
-
?
+
+
*
?
+
*
-
-
*
*
+
*
+
+
-
-
+
+
-
+
+
+
+
*
+
*
?
+
+
+
?
*
-
-
-
+
?
*
-
*
+
*
+
*
+
+
+
+
+
+
+
-
+
+
-
+
?
*
+
?
?
-
+
*
-
+
*
-
?
-
+
-
+
+
-
*
+
+
?
-
+
+
-
?
+
*
?
*
+
+
-
-
+
+
?
*
+
*
*
?
-
*
+
-
+
-
+
-
?
+
*
+
-
-
*
-
-
?
-
*
?
-
-
+
-
+
+
-
+
+
-
-
+
+
?
*
-
*
?
+
-
?
?
-
*
-
-
?
-
-
+
+
*
+
-
*
?
?
+
*
?
+
+
-
*
?
+
*
-
*
+
+
-
+
-
*
+
-
+
*
-
+
*
+
+
*
?
?
-
-
*
-
+
?
+
+
+
-
+
+
-
+
+
+
+
+
-
+
*
*
*
?
+
+
-
-
+
+
-
+
*
+
-
+
*
*
*
-
+
+
?
?
*
*
*
-
+
*
-
*
-
+
+
?
?
*
*
-
-
+
+
-
*
+
?
+
+
-
+
-
*
*
+
?
+
-
-
+
+
?
-
+
-
-
+
-
-
+
-
+
?
*
*
*
-
-
*
?
*
+
-
-
-
-
*
?
-
-
-
*
-
*
*
+
+
+
-
?
-
+
-
-
-
*
-
-
+
+
?
*
+
+
?
+
-
*
-
-
+
-
+
+
+
?
+
+
-
+
-
+
+
+
+
?
+
-
-
+
+
+
-
+
+
-
*
?
*
+
+
*
-
-
*
+
+
*
*
*
*
+
-
-
?
+
-
-
?
+
?
-
-
?
-
*
+
*
?
?
*
-
*
?
?
-
+
+
+
*
+
+
-
+
+
*
-
+
-
+
?
-
+
?
-
*
?
+
*
-
*
+
?
*
-
?
+
?
*
*
+
+
-
-
-
+
+
+
+
*
?
+
+
?
+
-
+
+
+
-
-
+
+
*
*
*
+
-
+
*
?
?
-
+
+
?
+
?
?
+
+
+
*
*
*
*
*
*
*
-
-
+
+
+
?
+
-
*
-
?
-
-
+
+
+
-
+
-
?
?
?
*
-
-
-
+
+
+
-
?
+
-
-
-
*
*
-
?
?
+
+
+
*
*
-
-
*
-
-
-
?
?
?
-
*
+
-
*
-
-
-
*
?
+
+
-
*
?
-
-
+
+
-
?
-
-
?
?
*
+
+
?
-
+
+
?
+
*
*
-
-
-
+
-
+
-
+
-
-
*
-
+
*
+
*
+
?
*
-
+
-
*
*
-
+
+
*
?
-
*
+
+
+
?
-
*
*
+
+
*
-
*
*
+
*
-
-
-
+
+
*
*
*
+
-
*
?
+
+
+
-
+
-
+
?
*
+
-
?
+
*
*
-
-
-
+
*
-
+
*
+
+
+
*
+
+
-
+
?
+
-
+
+
*
-
*
-
?
?
?
+
+
+
*
*
-
+
-
+
*
*
-
*
+
+
+
-
*
?
-
-
?
*
-
+
-
-
+
+
+
*
?
-
*
*
-
-
?
-
*
-
-
?
?
+
-
+
+
-
*
+
+
+
+
?
+
+
-
-
*
?
+
*
?
-
+
-
+
*
-
*
?
?
*
*
*
-
+
-
-
*
*
*
-
+
*
*
*
?
?
+
-
?
-
+
+
*
+
?
-
*
*
-
-
*
+
+
*
-
*
?
-
+
+
+
-
-
?
?
*
?
+
*
+
?
+
-
-
-
+
-
?
*
*
?
-
-
-
-
-
-
-
+
+
-
+
-
-
-
-
?
-
-
-
+
*
-
*
+
+
+
-
?
+
+
-
-
+
+
-
+
+
+
?
-
*
-
+
-
-
-
-
?
+
*
-
*
*
+
+
?
?
-
*
*
+
-
*
-
+
*
-
+
*
*
+
-
*
+
-
+
?
-
+
-
-
?
*
+
+
+
?
*
-
?
-
-
-
-
*
+
+
-
+
+
+
-
+
*
-
?
?
*
*
-
-
*
*
?
+
*
+
*
?
*
+
*
+
-
*
*
-
-
-
+
-
-
-
*
+
+
+
-
?
-
+
-
-
?
*
*
+
?
*
?
+
-
+
-
+
?
+
+
-
-
+
?
+
+
-
-
?
+
*
-
-
*
-
+
?
*
-
+
+
*
?
*
+
-
?
+
-
+
?
+
*
-
+
-
+
-
+
+
*
-
+
+
+
+
-
?
-
+
*
+
*
+
+
?
+
-
+
*
*
*
+
*
+
+
-
-
*
-
+
*
+
+
?
?
+
-
-
*
+
*
-
-
+
+
+
+
+
+
*
?
-
*
+
*
+
*
-
*
+
-
-
+
*
?
?
+
+
*
-
?
+
*
?
+
+
-
*
+
-
*
*
*
+
?
*
+
+
?
-
?
*
?
?
-
?
?
?
-
-
-
+
?
?
+
+
-
-
*
-
-
?
-
-
+
+
+
*
+
+
+
+
+
*
*
-
+
+
+
-
*
?
+
*
-
-
*
*
-
+
+
+
-
+
?
-
?
+
-
+
-
+
+
*
*
-
-
+
+
+
-
+
*
+
*
-
?
-
-
*
+
+
-
-
+
*
-
-
-
?
+
-
*
+
*
?
-
-
-
?
*
+
?
*
?
+
*
+
+
-
?
+
*
+
+
+
?
+
+
+
-
+
-
+
+
?
*
*
+
+
-
+
+
+
-
-
*
+
+
+
?
*
*
+
+
-
+
+
*
-
*
-
+
?
+
-
-
*
?
+
-
-
?
-
+
+
+
-
-
*
+
-
+
*
*
-
+
?
-
?
*
-
-
?
*
-
-
+
?
-
+
-
*
-
?
+
+
?
*
-
+
+
+
*
?
+
?
-
-
+
-
+
+
+
+
-
?
-
*
-
-
+
-
+
?
*
?
+
?
-
+
?
-
+
-
+
+
+
+
+
+
+
?
+
+
+
*
+
?
?
*
+
+
-
*
?
-
*
-
*
+
?
-
-
*
?
+
*
+
-
+
-
*
*
+
-
*
*
+
-
*
?
*
*
*
-
*
*
*
+
*
+
*
+
-
?
*
?
+
-
?
*
-
*
?
-
+
?
-
-
?
+
*
+
?
*
*
-
*
*
-
+
-
*
+
-
+
-
-
?
?
+
-
+
+
-
-
+
+
-
+
-
?
*
+
?
+
+
*
-
*
-
+
+
?
+
+
*
+
?
-
+
+
?
?
+
?
+
-
-
*
+
-
?
-
*
-
+
+
-
?
*
-
-
*
+
*
*
+
+
+
+
+
?
-
+
-
+
?
+
+
*
+
?
+
-
-
+
+
+
+
+
-
+
+
-
-
-
+
+
-
-
+
-
-
-
+
-
*
-
+
*
+
*
-
*
-
*
*
-
*
-
+
-
+
-
?
+
+
*
?
-
-
+
+
?
-
-
+
-
+
+
+
+
+
?
-
?
*
+
+
?
+
-
-
-
+
*
-
?
*
+
*
-
-
*
*
-
+
-
+
?
?
-
?
-
-
+
+
-
-
*
-
?
?
+
+
+
-
-
+
-
-
-
+
-
-
+
+
-
-
-
-
-
?
*
+
+
+
-
-
-
+
*
-
+
+
-
*
+
*
+
+
-
+
-
*
-
-
-
?
+
-
?
+
*
-
?
+
+
+
-
+
+
?
?
-
?
-
-
?
?
-
+
+
*
-
+
-
+
-
-
-
+
+
-
+
-
-
?
-
+
-
?
+
*
+
*
+
*
?
+
+
*
-
+
-
+
*
-
+
+
+
-
*
+
+
?
+
-
+
-
-
+
-
+
*
-
-
-
+
*
+
-
?
+
+
+
*
+
+
*
-
?
+
-
?
*
-
+
+
-
+
*
-
?
-
+
-
*
+
*
?
-
+
*
+
-
-
?
-
+
+
+
+
+
-
-
-
?
+
+
-
*
+
-
-
-
-
?
?
+
*
+
+
+
*
?
+
*
*
?
?
?
+
?
+
?
+
*
-
-
-
+
-
?
+
-
?
+
?
+
?
*
-
+
-
*
*
+
+
*
+
?
+
+
?
?
+
+
?
*
*
+
-
-
?
-
?
*
-
?
?
-
+
+
*
?
+
?
?
+
+
+
-
*
+
+
+
?
*
*
+
-
-
?
+
?
*
+
+
-
+
*
+
-
+
-
-
-
*
-
+
-
*
?
+
+
+
+
+
+
*
-
-
?
-
+
-
+
*
-
+
*
*
-
-
+
-
-
+
*
+
+
-
*
-
-
*
-
+
-
+
-
*
*
+
?
-
+
-
?
?
-
*
+
+
-
*
+
+
+
+
*
*
-
*
-
*
*
-
?
-
+
*
?
+
?
-
+
-
*
+
?
-
-
-
+
?
+
*
+
+
-
+
?
*
?
+
+
*
-
-
+
+
*
+
-
*
*
+
*
+
-
-
-
*
+
+
+
-
-
+
*
+
-
+
+
*
*
+
?
+
*
-
-
-
-
+
-
-
-
-
*
?
+
+
*
+
+
-
+
-
?
+
-
+
-
+
?
?
?
*
+
-
?
*
+
-
+
*
-
+
*
+
+
?
+
*
*
-
+
-
*
+
*
?
+
-
?
?
+
+
+
?
-
+
+
-
+
-
-
-
+
+
?
-
*
*
?
+
+
*
+
?
+
+
+
?
-
*
-
-
-
+
?
*
?
?
-
*
*
+
-
?
*
+
-
*
-
*
+
*
*
*
*
-
+
*
-
-
-
*
-
+
?
+
?
-
*
+
+
-
-
?
*
*
+
?
?
*
+
+
-
+
-
+
-
*
+
+
*
*
*
+
+
+
+
-
*
-
+
+
-
?
+
*
+
?
+
?
-
+
?
+
+
+
*
?
*
+
-
-
-
+
*
-
+
+
?
+
?
+
+
*
?
-
*
+
+
+
+
*
-
+
*
-
*
?
+
+
-
+
-
+
+
?
*
+
+
-
*
-
?
-
-
+
+
+
-
+
+
+
-
+
*
-
*
+
+
-
?
?
*
+
*
*
+
-
*
-
+
*
+
*
+
+
?
+
*
+
-
*
-
-
*
+
+
*
+
+
*
*
+
-
-
-
+
+
+
?
?
+
+
-
?
+
+
+
-
-
+
*
+
+
*
+
+
-
*
?
+
?
-
-
*
+
+
+
*
*
+
+
+
+
*
?
+
-
*
+
+
-
+
-
+
+
*
-
-
+
-
+
?
+
*
+
*
-
+
-
*
-
*
-
+
*
*
+
?
*
+
+
?
-
-
+
*
+
+
*
+
?
+
*
-
-
+
*
+
-
+
+
*
-
?
*
-
+
+
?
+
-
-
+
+
?
*
+
-
*
-
*
-
+
-
-
-
+
*
+
?
?
-
*
+
-
+
-
-
+
-
+
-
+
-
+
?
*
+
+
?
+
+
+
+
-
-
+
-
-
-
+
+
-
-
-
+
-
?
-
*
+
-
+
-
-
-
-
-
?
*
*
-
?
*
?
+
+
-
-
+
+
?
?
*
-
-
-
-
+
-
+
?
-
-
-
?
+
+
?
+
-
+
+
+
+
*
+
+
-
-
-
*
*
+
?
-
*
*
-
+
?
*
+
*
-
+
-
+
-
+
-
-
+
+
+
+
*
-
?
?
-
?
+
*
?
?
*
+
*
?
-
-
+
-
*
?
*
-
+
?
+
+
+
+
-
+
*
+
?
?
+
?
-
-
?
+
*
+
*
+
?
-
*
?
-
+
+
+
?
*
+
+
+
-
*
-
-
-
-
+
-
+
+
-
-
+
+
+
+
+
+
+
+
*
+
*
*
-
*
?
+
+
-
*
-
+
*
+
-
-
+
-
-
+
?
-
*
+
-
?
-
+
?
-
*
+
+
+
-
*
-
?
*
-
?
*
+
-
-
*
?
+
-
?
+
+
*
+
*
+
+
?
?
+
+
+
?
+
*
+
+
?
+
*
-
?
*
?
+
?
?
+
+
-
-
+
+
-
-
*
?
-
*
-
-
-
?
+
-
+
+
+
*
+
-
-
-
-
-
+
-
+
+
+
*
+
-
-
+
+
-
?
*
+
+
?
-
+
+
-
-
+
+
-
-
+
?
-
*
+
-
+
+
?
-
-
*
+
?
-
*
+
+
+
-
?
?
+
+
?
-
-
*
+
+
-
+
*
-
?
+
*
*
-
-
+
-
?
-
*
+
+
+
*
*
+
*
+
+
+
?
*
+
?
+
-
*
?
*
+
*
*
+
*
+
-
-
?
?
-
?
+
+
?
-
?
-
?
+
+
?
-
+
+
+
?
+
-
+
-
-
+
*
-
+
+
+
?
+
?
+
+
+
*
+
+
-
+
-
+
-
-
-
?
+
+
+
+
*
+
-
?
+
*
+
*
+
*
-
-
-
-
+
*
-
+
+
+
?
*
+
+
?
?
*
-
-
+
-
*
?
+
+
*
-
+
+
+
+
?
-
*
-
-
-
+
?
-
+
+
+
*
*
?
?
-
-
+
-
+
+
?
-
?
-
-
?
?
?
+
-
-
+
*
?
-
-
-
+
?
-
?
-
+
-
?
+
?
?
*
+
-
+
?
-
+
?
+
+
-
-
+
+
?
?
*
+
+
-
+
*
?
-
+
*
+
-
+
-
-
+
*
+
+
?
-
+
*
+
-
+
-
+
?
-
-
-
+
+
*
+
+
*
+
+
+
+
+
+
-
*
+
?
?
*
*
+
+
-
-
+
+
-
*
+
-
-
+
-
-
?
-
-
-
-
-
?
+
*
?
+
-
*
-
+
+
+
*
+
+
?
?
-
-
+
*
+
+
-
-
+
-
?
+
?
+
-
+
-
-
+
-
?
+
*
-
+
+
*
*
-
+
+
?
*
+
-
-
*
+
?
-
?
+
-
*
+
+
+
+
*
-
-
+
+
+
+
+
-
?
+
?
-
*
-
*
-
-
+
+
?
?
+
*
*
+
+
+
+
+
-
+
+
+
-
-
*
+
+
*
+
*
?
*
+
?
-
+
*
-
+
-
-
+
?
-
+
-
-
?
?
+
+
+
+
+
-
+
-
-
-
+
+
-
*
-
+
*
+
+
-
*
-
-
?
-
+
+
-
+
-
-
-
-
?
+
-
?
-
+
-
-
-
-
+
-
+
?
*
-
-
*
?
+
-
+
*
+
*
+
*
+
-
+
*
+
+
+
+
*
?
?
-
*
-
*
?
*
*
+
-
+
+
-
-
+
-
+
-
-
+
-
-
*
+
-
+
-
*
-
+
-
-
+
-
-
-
+
+
*
+
-
-
*
-
+
-
-
+
+
+
?
+
*
-
+
*
+
*
-
+
?
-
-
+
*
+
-
+
-
+
+
+
+
+
-
+
+
+
*
+
-
*
*
+
-
?
+
?
*
*
+
+
*
-
-
+
-
-
-
*
+
-
?
-
+
?
+
?
-
-
?
+
+
?
-
+
-
+
+
?
+
-
*
+
-
+
?
-
-
+
+
-
-
+
+
+
-
-
*
+
+
+
-
+
-
*
*
*
+
-
+
+
+
*
+
-
-
-
-
+
+
+
+
+
-
+
+
-
+
?
-
+
+
-
?
?
-
+
+
-
*
-
-
+
+
-
*
+
-
+
+
?
+
-
-
*
*
-
-
?
+
?
-
*
*
*
-
?
+
+
?
-
+
+
+
*
-
-
*
+
+
?
*
+
-
+
+
+
+
*
-
*
?
-
+
?
+
+
?
?
+
?
?
+
+
+
?
+
+
+
-
+
-
+
-
*
?
?
-
?
+
+
-
+
+
-
+
-
*
+
-
+
-
+
-
+
?
+
*
+
+
?
+
+
-
?
-
-
+
?
?
+
+
*
*
*
+
-
+
+
*
-
+
?
+
*
+
-
+
*
-
+
*
-
+
-
-
*
+
+
-
+
+
-
-
*
-
+
+
-
-
+
*
+
+
+
*
+
+
-
*
+
-
+
-
-
+
?
+
-
-
+
-
-
+
-
+
+
?
-
-
-
+
*
+
+
-
+
+
+
*
+
+
+
-
+
-
+
-
*
-
+
+
-
-
*
?
?
+
*
*
*
-
+
?
*
?
+
+
*
+
?
+
?
+
-
*
-
+
?
?
?
+
?
-
+
-
+
+
?
*
?
-
-
+
*
+
+
+
+
+
?
-
-
+
*
?
+
+
+
-
+
+
*
+
+
-
*
+
-
-
?
*
+
-
*
+
-
-
+
*
-
+
+
+
-
*
+
+
+
-
?
+
-
-
?
+
+
*
-
+
-
+
-
-
+
+
*
+
*
+
+
?
*
-
+
+
+
-
+
+
+
+
+
+
*
*
*
+
+
?
-
+
?
?
+
+
*
-
+
+
+
+
+
*
*
?
+
?
-
*
-
?
*
+
?
-
*
-
+
+
*
+
+
?
+
+
+
-
+
-
?
?
?
-
-
+
*
+
?
*
-
-
+
+
+
+
-
-
+
+
-
-
+
+
?
-
+
+
?
+
+
+
?
+
-
-
?
-
?
-
-
+
?
+
+
?
?
-
+
*
-
+
?
+
-
+
+
-
+
?
*
*
-
*
+
+
+
+
-
-
*
+
-
-
-
-
+
-
?
-
-
+
+
+
+
-
+
+
+
+
+
-
?
-
-
+
?
?
+
+
-
*
+
*
-
+
?
+
-
-
?
-
-
+
?
-
+
*
-
+
-
?
-
+
+
+
-
*
?
+
+
+
+
*
*
*
+
*
+
-
+
-
+
+
+
-
*
*
-
+
+
+
-
+
+
*
+
*
*
*
*
+
+
-
+
-
-
*
+
-
+
-
?
*
-
*
+
+
+
-
*
-
-
+
-
-
-
+
*
-
?
-
-
*
-
*
-
+
*
+
*
-
*
?
-
+
-
-
-
?
?
-
-
+
?
+
-
-
+
-
+
+
?
-
+
?
+
+
*
?
-
+
?
+
+
-
+
-
-
+
+
*
-
+
+
-
+
?
+
+
+
-
-
+
-
?
+
*
+
-
*
+
+
?
?
+
+
+
-
+
+
*
*
+
*
*
+
-
+
-
-
+
-
?
+
?
+
*
+
+
?
+
-
+
*
-
?
?
?
+
-
+
*
+
-
*
+
?
-
-
-
?
-
+
?
?
?
+
*
-
+
+
+
*
+
*
-
-
-
+
+
-
-
*
-
-
+
?
-
+
+
+
+
-
?
*
?
+
+
-
+
+
+
*
+
*
+
?
-
+
-
-
+
?
+
+
+
+
+
+
+
+
-
-
?
?
*
-
*
?
+
-
+
*
-
-
+
+
*
*
-
-
?
+
-
+
+
+
-
*
*
+
?
+
+
+
*
-
-
-
?
+
*
-
+
+
+
*
?
-
+
+
-
?
*
-
-
*
*
-
-
*
-
+
+
*
+
*
+
*
*
+
+
+
-
?
-
-
-
+
-
+
+
?
?
*
-
+
*
+
+
-
-
+
?
?
?
+
-
?
-
-
+
-
?
?
-
+
-
?
?
+
+
*
-
?
+
+
*
?
-
*
+
?
?
+
?
-
+
-
+
+
-
*
+
+
+
-
+
-
*
-
+
*
-
*
+
-
-
+
?
+
*
?
+
-
+
+
+
?
*
-
-
-
*
-
*
-
-
*
?
+
+
?
*
?
+
-
+
-
+
+
-
*
+
+
*
?
*
*
*
-
*
+
-
+
-
+
+
+
-
*
+
+
+
+
+
*
+
+
+
?
?
-
+
+
-
+
?
*
?
*
-
+
-
?
+
?
+
+
-
-
+
*
*
+
?
?
-
-
?
*
+
+
+
+
+
-
-
+
-
+
*
*
-
+
?
-
+
-
+
?
+
+
-
*
-
-
*
-
+
+
-
*
-
*
+
+
+
-
+
+
-
+
+
+
-
?
+
*
-
?
*
-
+
+
+
*
*
*
-
*
*
?
+
*
-
+
?
+
?
?
*
+
*
+
-
*
*
*
+
+
+
-
-
*
+
-
+
?
+
-
+
+
?
?
+
+
*
?
-
+
?
-
-
*
+
?
*
+
?
+
+
+
-
-
*
+
+
+
*
+
?
+
-
+
-
+
+
+
-
-
?
+
+
+
-
-
?
+
-
+
+
?
*
-
*
?
+
+
+
+
+
+
*
+
*
-
?
+
+
+
+
-
+
-
?
-
?
-
*
+
*
?
-
*
-
*
-
*
+
-
-
*
*
+
-
+
-
+
*
+
+
+
+
+
+
+
*
?
*
-
+
-
+
?
-
*
*
?
+
-
+
*
-
-
+
+
*
?
?
-
+
+
*
?
+
?
+
-
+
-
-
*
*
-
+
+
+
-
+
-
?
+
?
+
*
+
-
?
-
-
+
-
+
-
-
-
+
-
+
?
*
+
-
?
-
+
+
?
*
+
+
-
-
?
-
+
*
+
+
-
-
-
?
*
*
-
+
*
+
*
-
+
+
-
+
+
?
-
+
-
-
?
+
+
*
-
-
-
*
+
-
?
-
*
+
+
+
-
-
+
-
+
+
+
+
+
?
?
*
+
?
-
+
?
?
-
*
-
-
+
+
*
-
*
+
-
*
-
?
+
-
+
*
?
-
-
-
+
*
*
-
?
-
+
-
?
-
-
-
*
*
?
-
-
-
-
*
?
*
+
+
+
-
*
?
*
+
-
+
-
*
*
?
?
+
+
+
?
-
+
*
+
+
+
-
+
+
+
*
+
-
*
+
-
+
-
+
?
*
-
-
-
+
+
+
+
+
+
*
*
-
*
+
*
+
?
+
*
-
+
-
+
?
*
+
+
*
+
+
-
?
-
?
-
-
*
?
-
?
*
+
+
+
-
+
-
+
+
+
-
+
-
-
-
+
+
+
?
-
-
+
+
+
?
*
+
*
-
?
-
?
*
-
+
-
-
-
?
+
+
?
-
-
+
*
-
*
+
+
?
-
+
-
-
+
*
+
-
-
+
+
+
-
-
*
+
+
?
?
?
*
?
-
?
-
-
+
+
*
?
+
+
-
*
*
?
?
+
*
+
-
+
+
+
-
?
+
+
+
+
*
+
+
-
+
+
*
-
+
+
?
+
-
*
*
+
*
-
-
+
+
-
*
*
-
*
-
+
-
-
*
+
*
+
-
-
+
?
-
+
-
-
?
-
+
+
?
-
+
+
+
-
+
-
-
+
+
-
*
-
-
-
?
+
+
-
+
?
?
-
*
+
*
?
-
+
+
*
-
+
*
-
+
-
-
-
?
?
+
*
+
+
+
-
-
*
*
+
-
+
*
+
?
?
*
-
+
-
+
*
?
?
+
-
*
-
-
-
+
*
+
-
+
-
+
-
-
-
*
?
+
-
-
-
+
*
-
+
-
+
-
*
-
+
*
-
-
-
-
+
?
?
+
+
-
+
+
-
+
+
*
?
+
-
-
?
+
-
+
-
-
?
-
*
-
*
?
*
-
?
+
-
+
*
-
+
-
*
-
*
-
?
*
*
-
-
+
+
+
+
-
+
+
-
*
+
*
?
*
?
-
?
*
*
-
-
+
+
*
-
?
+
?
-
-
+
-
+
*
-
?
+
-
?
+
+
+
-
?
+
*
+
-
+
-
+
*
?
?
*
?
?
+
-
-
+
-
+
?
*
-
-
-
*
-
+
+
*
-
-
*
*
+
+
?
*
+
-
+
+
-
*
-
-
-
-
?
*
-
-
-
+
-
*
-
-
+
-
*
+
+
+
-
+
*
-
*
*
?
+
+
*
+
-
-
+
-
-
+
+
*
+
-
*
?
-
?
-
*
-
-
?
+
?
-
*
?
-
?
-
-
+
*
-
?
*
-
+
*
?
-
+
+
-
+
+
-
-
-
-
+
*
-
-
-
-
+
+
-
-
-
?
-
?
+
-
?
+
-
*
+
-
*
*
+
-
+
+
-
*
+
*
?
-
+
+
+
-
+
+
+
+
+
-
-
-
-
-
+
+
-
+
-
+
?
?
-
+
-
-
?
?
*
+
-
*
*
+
-
+
+
-
*
-
?
-
*
-
-
*
?
*
*
+
*
*
+
+
*
?
-
-
+
?
*
+
-
?
-
+
+
?
+
+
-
-
+
-
*
-
-
-
+
?
?
-
*
-
?
-
?
*
-
-
-
+
-
*
-
-
+
*
-
-
-
+
-
+
*
?
+
+
-
+
+
-
-
*
*
+
+
+
-
*
+
-
-
-
-
+
+
*
+
+
-
+
?
+
?
?
*
-
-
?
+
+
+
+
*
-
+
?
?
*
+
+
-
*
-
*
?
?
-
?
+
?
+
*
*
-
+
+
+
?
+
*
+
?
*
-
-
*
*
+
-
-
+
?
+
+
*
-
+
?
+
+
*
?
?
-
-
+
-
?
-
*
-
?
-
+
+
-
-
-
?
?
?
+
-
*
+
+
*
*
-
+
-
-
-
*
+
+
-
-
+
*
-
?
+
-
+
-
-
-
-
-
*
-
-
-
-
-
+
-
-
+
*
+
+
+
+
-
+
?
+
+
?
-
+
*
+
+
?
*
-
+
-
*
+
*
-
-
+
*
-
-
-
?
+
+
?
?
-
+
+
-
*
-
+
-
-
*
+
+
+
?
+
-
-
?
-
?
+
*
+
-
?
-
+
*
*
-
-
+
?
*
+
-
*
*
-
*
-
+
*
*
+
?
-
+
-
*
+
-
+
+
*
-
+
*
*
-
+
-
*
*
-
?
-
+
-
-
+
?
+
-
*
?
*
*
+
*
?
*
+
-
*
+
+
*
+
+
+
*
*
*
-
+
-
-
-
-
-
-
*
-
*
?
+
+
+
-
-
-
-
-
+
+
?
+
*
*
-
+
-
+
-
-
+
-
+
+
*
+
*
+
+
-
-
+
-
+
-
?
+
-
+
-
?
-
-
+
-
+
-
*
+
?
-
?
+
+
?
-
+
-
-
-
+
+
-
*
+
+
-
-
+
*
-
?
?
+
*
+
+
+
-
-
+
?
-
*
+
-
-
?
?
-
+
-
*
-
*
+
-
*
-
?
-
?
?
*
+
*
-
*
*
+
+
+
-
+
+
+
+
-
?
*
?
+
*
*
+
?
+
*
-
-
+
-
-
+
+
-
+
+
+
+
+
?
+
+
-
-
-
-
?
-
-
-
+
?
*
-
-
+
+
-
-
+
-
+
-
+
+
-
?
+
+
*
-
-
+
-
?
?
*
-
*
+
*
+
*
+
+
+
-
-
*
+
+
+
?
?
?
+
?
+
+
-
+
*
+
?
*
-
?
+
+
+
*
+
-
+
+
*
*
+
*
?
-
-
+
+
-
-
+
-
-
?
+
?
?
+
+
*
-
-
?
-
+
+
+
+
-
*
+
+
+
?
*
*
-
+
-
+
+
-
+
-
+
+
-
-
-
-
-
+
-
*
*
+
-
-
-
+
*
+
-
*
?
-
+
-
-
+
?
-
*
+
-
-
-
-
+
-
+
+
-
-
-
+
+
?
*
+
-
+
*
-
*
-
+
+
+
-
+
+
+
-
+
*
*
-
-
-
-
-
-
-
+
-
+
?
*
-
?
-
-
-
+
-
+
*
*
?
+
+
-
-
-
?
-
+
*
?
+
+
-
?
?
+
-
+
-
+
*
-
+
?
+
+
-
?
-
*
-
*
*
-
-
-
+
-
+
?
*
+
-
-
-
+
+
-
-
?
-
+
-
?
-
-
*
-
-
+
*
?
-
+
?
-
-
-
-
-
-
-
*
-
+
+
?
+
+
+
+
-
*
-
+
+
*
?
-
*
-
+
+
-
-
+
+
*
+
+
+
-
*
+
*
+
+
-
*
-
?
+
+
-
?
-
+
-
-
+
?
?
-
+
+
+
-
-
?
+
*
+
-
-
-
*
?
*
-
-
-
-
-
*
-
?
*
+
+
?
?
?
?
+
-
+
-
+
-
+
-
*
?
+
?
*
+
-
*
*
-
*
+
-
?
+
-
?
+
+
-
+
-
-
-
+
*
-
-
*
+
*
-
?
-
-
*
+
-
-
?
-
-
+
+
-
-
-
-
*
?
+
+
+
-
+
+
+
+
-
+
-
-
-
?
-
+
?
-
*
+
+
*
*
?
+
+
-
?
+
+
-
+
+
-
+
+
?
-
-
+
-
-
+
-
-
-
+
*
+
+
+
-
+
?
?
-
+
+
-
?
*
*
-
?
-
+
-
-
+
*
+
-
*
*
?
*
+
-
-
-
*
-
-
-
-
?
+
*
*
?
+
+
*
?
+
?
+
+
+
+
-
-
+
-
*
*
-
-
*
+
+
*
-
+
?
-
*
+
-
+
-
?
-
-
+
?
-
-
+
+
-
-
?
-
+
?
+
*
-
-
-
-
-
-
*
+
+
*
-
+
*
*
-
+
*
+
+
-
*
-
+
+
-
+
+
+
?
-
*
+
+
?
+
*
*
+
+
+
-
+
*
*
*
-
+
+
+
+
*
+
*
+
+
*
-
-
+
?
*
?
-
+
?
+
-
-
-
+
+
-
+
+
-
-
-
-
+
+
-
*
+
-
+
?
+
*
*
+
+
+
+
+
-
*
-
+
+
+
-
*
-
+
+
+
-
?
?
-
+
-
*
+
-
+
-
*
*
*
-
?
*
+
-
+
-
-
-
-
-
?
?
+
+
-
-
-
-
+
?
?
-
*
-
+
+
+
*
+
?
*
-
+
?
-
*
+
*
+
*
-
*
*
-
+
?
-
*
+
+
+
-
+
+
?
+
+
+
-
*
-
-
?
+
?
+
*
-
-
-
-
+
*
*
-
?
+
?
?
+
*
*
?
+
-
?
-
-
*
+
-
*
-
+
+
+
+
-
*
*
?
+
-
+
+
-
-
*
?
+
+
+
+
?
?
+
+
+
+
+
+
-
-
-
*
-
*
-
-
-
-
-
-
-
*
*
*
+
-
+
+
+
+
+
+
*
-
*
+
*
-
*
-
+
-
+
-
-
+
-
-
+
-
+
-
+
?
-
*
+
*
*
+
?
?
-
-
*
-
+
-
-
+
+
-
-
-
*
-
*
-
?
?
-
+
-
-
-
?
+
*
*
*
+
+
+
-
*
+
+
+
*
+
+
-
+
+
+
?
-
-
-
+
+
?
?
+
-
+
?
+
?
+
?
+
+
-
*
-
*
-
+
*
+
-
-
-
*
+
+
*
*
-
-
+
?
+
*
?
+
-
?
-
-
*
-
-
+
-
*
-
*
+
-
-
-
+
-
-
+
-
+
*
+
-
-
-
?
-
?
*
-
+
?
-
-
?
-
?
+
-
+
*
-
*
*
-
-
?
+
-
+
*
-
*
-
+
*
*
?
?
+
-
-
*
-
*
?
-
-
*
+
+
?
-
*
?
-
+
-
+
+
*
*
*
-
-
*
*
-
?
-
?
*
*
*
-
-
*
-
+
*
+
+
+
-
-
*
*
*
-
?
+
-
+
+
+
+
+
+
?
?
+
-
+
-
?
+
?
*
+
+
*
-
*
+
+
?
-
-
*
+
-
-
-
-
*
+
?
+
+
-
*
-
+
-
-
+
*
+
+
+
-
-
?
-
+
?
*
*
?
*
*
?
-
*
-
-
*
?
?
+
-
*
-
+
+
-
?
*
-
+
*
?
-
-
-
+
+
-
+
*
*
-
+
-
?
*
-
+
+
-
*
+
*
-
+
-
-
-
+
+
*
*
-
-
+
?
*
?
*
-
+
+
?
+
+
-
+
-
*
-
?
+
-
*
*
+
-
*
+
*
?
+
*
+
?
+
+
+
+
-
+
+
+
-
+
*
*
+
+
-
+
+
-
+
+
+
-
+
+
*
-
?
?
+
+
?
+
-
+
*
+
-
-
-
+
+
-
*
?
-
+
+
-
?
-
*
?
?
*
+
+
*
?
-
*
-
*
-
-
-
+
*
+
*
-
+
-
?
+
-
*
-
*
+
-
+
-
*
*
+
-
+
+
?
*
+
+
-
?
-
?
-
+
-
-
+
-
*
+
-
-
-
+
+
+
+
*
+
+
+
-
-
*
-
+
+
*
-
*
-
-
+
-
*
-
*
+
+
-
-
?
+
-
+
-
+
*
+
?
?
-
-
-
+
+
+
+
+
*
-
-
-
+
?
-
-
+
+
-
+
+
-
-
+
+
*
-
-
*
+
-
+
-
*
?
-
?
+
+
+
*
+
*
+
*
*
-
+
-
-
-
?
+
-
-
+
+
-
-
*
+
+
*
*
-
-
+
+
+
+
-
-
-
-
+
?
+
*
-
+
*
+
?
-
+
+
?
+
+
+
-
+
*
-
-
*
-
?
-
-
?
+
?
+
-
-
?
-
?
-
+
+
-
+
*
-
-
+
?
+
+
+
?
+
?
+
-
-
+
-
*
+
-
-
*
*
+
*
+
*
-
+
-
-
+
*
-
-
+
-
-
?
+
*
?
-
+
-
-
-
-
+
*
+
-
-
+
+
-
+
+
+
-
-
+
*
*
-
*
-
-
*
*
*
*
-
+
?
+
*
+
*
-
*
+
?
?
?
+
-
-
?
*
+
?
+
-
-
?
-
+
+
?
+
-
-
*
+
+
-
-
+
*
+
+
-
+
*
?
-
?
+
+
-
-
+
+
?
+
+
-
-
+
*
+
+
-
-
*
?
+
+
-
*
-
?
*
+
+
+
-
+
*
-
?
*
?
+
+
+
*
-
*
*
*
+
-
?
*
+
+
-
+
+
+
*
+
*
*
*
-
+
+
?
*
-
+
-
+
-
-
+
?
+
-
-
+
-
*
?
+
-
+
+
?
+
?
+
+
-
-
+
?
+
+
*
+
+
-
+
?
-
*
-
?
+
+
+
+
-
+
+
+
-
-
*
+
+
?
+
-
+
*
?
*
*
-
*
+
+
?
+
-
?
*
-
-
+
+
-
+
+
?
+
+
+
-
*
+
+
+
*
?
+
-
+
?
-
?
-
+
+
+
?
+
+
*
+
-
-
+
?
+
*
+
+
-
+
*
+
?
+
+
-
+
*
*
+
+
-
?
-
+
-
+
-
+
+
+
-
+
-
-
-
?
?
-
+
*
*
+
?
*
*
+
+
-
*
?
*
?
-
+
+
-
*
+
+
+
?
*
?
?
*
+
+
?
-
*
-
+
?
-
?
-
+
+
*
-
+
+
+
?
-
+
+
-
-
+
+
-
+
+
+
?
-
+
-
+
*
*
+
-
+
?
-
-
?
*
-
?
*
-
*
-
-
*
*
-
*
*
?
?
-
*
+
-
+
-
*
-
-
?
+
+
+
+
+
+
+
-
?
+
*
+
*
-
-
*
*
+
+
-
?
-
*
+
-
+
+
-
-
+
+
-
?
-
+
+
-
-
?
+
+
-
+
+
*
+
?
+
*
?
?
*
+
-
+
-
-
?
*
*
+
*
-
-
+
*
+
+
+
+
*
-
?
*
+
*
-
?
+
+
-
-
+
*
*
-
+
-
-
+
?
-
-
-
+
+
-
-
?
+
-
?
-
?
?
?
*
-
+
?
*
?
*
-
?
-
-
-
?
+
+
-
+
-
-
+
+
?
*
?
*
?
-
-
+
+
*
-
-
*
-
?
+
-
-
+
+
+
*
+
?
*
-
-
+
-
+
-
-
-
*
-
*
*
-
*
+
-
?
+
-
+
-
?
+
+
*
-
?
-
?
*
-
+
+
?
*
?
-
-
+
-
+
-
-
-
*
+
+
*
*
+
-
+
+
?
+
-
-
-
+
+
+
+
+
-
+
-
+
+
+
+
-
-
+
?
+
-
?
+
?
*
+
*
-
?
-
?
-
+
*
+
+
+
-
+
?
-
-
*
+
*
-
?
?
*
+
+
+
*
-
-
+
-
?
-
-
-
?
*
-
+
+
-
-
-
-
+
-
+
-
?
*
?
+
*
-
*
*
+
-
*
-
-
*
*
-
+
-
+
*
+
+
+
*
?
-
-
-
?
-
+
-
*
-
-
-
+
-
+
-
?
+
*
-
*
-
-
*
?
*
+
?
+
+
-
-
+
?
?
?
?
-
+
*
-
-
+
-
-
+
-
-
-
*
*
+
*
+
?
*
*
-
*
-
-
+
+
?
-
-
?
+
+
+
?
-
+
*
+
?
+
-
-
+
+
+
+
+
-
?
-
-
+
-
-
-
+
-
-
*
-
-
*
*
?
+
+
?
-
*
+
*
+
+
?
+
-
-
-
?
-
*
*
+
-
*
-
*
+
-
?
+
*
-
-
-
*
?
-
*
+
+
+
+
?
+
*
*
+
+
?
*
+
+
+
+
-
+
-
-
-
-
?
+
*
+
+
+
+
-
-
+
+
+
-
-
-
-
+
?
+
*
+
+
?
*
-
-
-
+
-
+
-
*
?
*
*
+
+
-
-
-
?
?
+
*
+
*
-
+
+
+
+
-
-
+
*
-
-
*
*
-
-
-
?
*
-
?
?
-
*
-
+
-
-
+
-
*
+
*
-
+
-
+
+
+
*
?
*
+
?
*
*
+
+
?
+
*
+
+
-
+
+
+
+
-
?
+
-
?
*
*
*
?
-
+
-
-
?
+
-
-
+
?
+
+
+
-
-
*
-
*
+
*
+
?
*
-
-
+
?
-
?
-
*
+
*
+
?
+
+
*
*
+
+
+
-
+
+
+
?
+
*
+
?
*
-
+
-
+
*
?
-
-
?
*
+
-
*
-
-
-
*
?
+
*
*
*
-
+
?
?
*
?
+
-
+
+
-
+
-
*
+
*
-
?
*
+
*
?
*
-
+
?
+
*
-
-
-
?
-
+
*
+
?
+
*
*
-
-
*
+
-
+
+
+
+
-
+
*
*
*
-
?
?
+
?
*
+
?
-
+
-
-
-
?
-
*
-
?
*
-
?
+
*
?
*
?
+
+
-
+
+
*
?
*
?
+
?
+
?
-
+
+
*
+
*
?
-
+
*
-
-
+
+
-
-
?
?
*
-
-
-
-
-
-
*
+
-
-
+
-
-
+
+
-
-
+
+
+
+
*
+
-
+
*
+
+
*
*
*
*
+
*
-
-
+
-
+
-
?
*
+
-
+
+
-
?
+
*
-
?
*
-
-
-
+
+
*
+
+
-
-
?
-
+
+
*
+
-
?
+
-
*
*
?
+
*
-
-
+
+
+
*
*
-
+
+
+
-
+
*
-
+
-
+
+
+
*
-
?
+
?
-
?
*
*
+
+
-
*
+
-
+
*
-
-
+
-
+
+
*
*
+
-
+
+
-
-
-
+
-
-
*
-
?
+
?
+
*
+
?
-
-
+
+
*
-
+
*
*
-
*
+
-
-
+
*
+
+
*
*
-
-
-
?
+
*
+
?
+
+
-
+
?
*
-
+
-
+
?
-
+
?
-
-
-
+
?
+
+
*
+
*
?
+
+
-
?
?
?
*
*
-
*
+
?
+
+
-
*
*
-
*
+
-
+
*
+
-
+
-
+
+
-
*
-
?
+
+
*
-
-
+
-
+
*
+
-
+
+
*
+
+
*
-
-
-
-
-
*
-
+
?
-
-
*
-
-
-
-
+
+
?
-
*
+
?
*
?
*
-
-
+
-
*
?
*
+
-
-
?
*
-
?
-
+
+
*
+
+
*
-
?
-
?
+
+
-
-
-
+
+
+
-
-
+
-
+
-
-
-
*
*
-
-
*
*
+
?
-
+
-
-
*
+
-
-
-
+
+
+
?
+
?
-
+
+
?
-
+
+
*
+
*
-
+
?
+
+
-
?
?
-
*
+
*
-
*
+
-
+
+
+
?
+
*
-
*
+
+
-
+
*
-
-
?
?
+
-
+
-
+
-
*
*
*
+
+
?
+
+
?
*
*
+
-
-
+
*
+
*
+
-
-
-
-
*
+
*
+
-
*
+
*
-
?
*
?
+
+
-
*
-
+
+
*
-
*
*
+
-
-
*
*
-
?
-
-
-
+
?
+
*
+
-
*
-
+
+
+
-
+
?
-
-
-
?
-
*
+
?
-
+
*
-
+
+
+
-
-
-
+
*
*
-
*
+
-
*
+
-
+
-
+
?
*
-
+
-
*
-
-
*
-
-
-
?
?
+
+
+
-
-
?
+
*
*
-
+
?
+
?
+
?
+
*
+
*
*
-
*
?
?
?
+
*
-
-
-
-
-
-
+
*
+
+
+
+
-
-
+
-
-
-
-
-
-
?
-
+
*
+
+
+
-
+
*
-
+
+
+
+
*
-
*
-
*
?
?
-
*
-
-
-
+
?
+
-
?
*
+
-
*
+
*
?
*
+
*
+
*
*
+
+
-
-
+
+
+
?
-
+
+
-
?
?
-
+
+
-
*
+
-
-
-
*
-
-
+
-
+
+
-
-
-
*
-
*
+
-
-
*
+
+
+
?
+
*
*
+
*
+
*
-
*
*
+
+
*
-
?
-
+
*
+
-
-
?
+
+
-
-
-
+
?
+
*
-
+
-
-
+
+
+
-
+
+
-
-
*
-
?
?
+
-
*
+
+
-
?
*
+
-
*
+
+
?
+
+
?
+
*
*
+
+
+
+
-
?
+
-
+
+
?
*
-
+
+
-
+
+
?
-
+
+
-
?
*
+
-
+
-
?
-
-
-
+
+
+
+
-
-
-
+
*
-
*
?
*
+
?
-
+
-
