- Reduce diff against OpenBSD source
   - All OpenSSL includes are now unconditionally referenced as
     openssl/foo.h
   - Pick up formatting changes
   - Other minor changed (typecasts, etc) that I missed
diff --git a/ChangeLog b/ChangeLog
index f23250e..e921e22 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+20000416
+ - Reduce diff against OpenBSD source
+   - All OpenSSL includes are now unconditionally referenced as 
+     openssl/foo.h
+   - Pick up formatting changes
+   - Other minor changed (typecasts, etc) that I missed
+
 20000415
  - OpenBSD CVS updates.
    [ssh.1 ssh.c]
diff --git a/acconfig.h b/acconfig.h
index cbb3a97..b0420e7 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -30,9 +30,6 @@
 /* Define if you want to install preformatted manpages.*/
 #undef MANTYPE
 
-/* Define if your ssl headers are included with #include <ssl/header.h>  */
-#undef HAVE_SSL
-
 /* Define if your ssl headers are included with #include <openssl/header.h>  */
 #undef HAVE_OPENSSL
 
diff --git a/atomicio.c b/atomicio.c
index 1299e5b..3f12344 100644
--- a/atomicio.c
+++ b/atomicio.c
@@ -24,7 +24,7 @@
  */
 
 #include "includes.h"
-RCSID("$Id: atomicio.c,v 1.10 2000/03/17 12:40:15 damien Exp $");
+RCSID("$Id: atomicio.c,v 1.11 2000/04/16 02:31:49 damien Exp $");
 
 #include "xmalloc.h"
 #include "ssh.h"
@@ -43,7 +43,7 @@
 	ssize_t res, pos = 0;
 
 	while (n > pos) {
-		res = (f) (fd, (char*)s + pos, n - pos);
+		res = (f) (fd, s + pos, n - pos);
 		switch (res) {
 		case -1:
 			if (errno == EINTR || errno == EAGAIN)
diff --git a/auth-passwd.c b/auth-passwd.c
index d2c2ea8..662f85f 100644
--- a/auth-passwd.c
+++ b/auth-passwd.c
@@ -11,7 +11,7 @@
 
 #ifndef USE_PAM
 
-RCSID("$Id: auth-passwd.c,v 1.17 2000/04/16 01:18:39 damien Exp $");
+RCSID("$Id: auth-passwd.c,v 1.18 2000/04/16 02:31:49 damien Exp $");
 
 #include "packet.h"
 #include "ssh.h"
diff --git a/auth-rh-rsa.c b/auth-rh-rsa.c
index 150132f..1073ecc 100644
--- a/auth-rh-rsa.c
+++ b/auth-rh-rsa.c
@@ -15,18 +15,7 @@
  */
 
 #include "includes.h"
-RCSID("$Id: auth-rh-rsa.c,v 1.10 2000/04/16 01:18:39 damien Exp $");
-
-#ifdef HAVE_OPENSSL
-#include <openssl/bn.h>
-#include <openssl/rsa.h>
-#include <openssl/dsa.h>
-#endif
-#ifdef HAVE_SSL
-#include <ssl/bn.h>
-#include <ssl/rsa.h>
-#include <ssl/dsa.h>
-#endif
+RCSID("$Id: auth-rh-rsa.c,v 1.11 2000/04/16 02:31:49 damien Exp $");
 
 #include "packet.h"
 #include "ssh.h"
@@ -34,6 +23,8 @@
 #include "uidswap.h"
 #include "servconf.h"
 
+#include <openssl/rsa.h>
+#include <openssl/dsa.h>
 #include "key.h"
 #include "hostfile.h"
 
diff --git a/auth-rsa.c b/auth-rsa.c
index e9d61f6..aa8be2b 100644
--- a/auth-rsa.c
+++ b/auth-rsa.c
@@ -16,7 +16,7 @@
  */
 
 #include "includes.h"
-RCSID("$Id: auth-rsa.c,v 1.16 2000/04/16 01:18:39 damien Exp $");
+RCSID("$Id: auth-rsa.c,v 1.17 2000/04/16 02:31:49 damien Exp $");
 
 #include "rsa.h"
 #include "packet.h"
@@ -27,14 +27,8 @@
 #include "match.h"
 #include "servconf.h"
 
-#ifdef HAVE_OPENSSL
 #include <openssl/rsa.h>
 #include <openssl/md5.h>
-#endif
-#ifdef HAVE_SSL
-#include <ssl/rsa.h>
-#include <ssl/md5.h>
-#endif
 
 /* Flags that may be set in authorized_keys options. */
 extern int no_port_forwarding_flag;
diff --git a/auth-skey.c b/auth-skey.c
index 056efeb..7eb32e8 100644
--- a/auth-skey.c
+++ b/auth-skey.c
@@ -1,17 +1,10 @@
 #include "includes.h"
-
 #ifdef SKEY
 RCSID("$Id: auth-skey.c,v 1.6 2000/04/14 10:30:29 markus Exp $");
 
 #include "ssh.h"
 #include "packet.h"
-
-#ifdef HAVE_OPENSSL
-#include <openssl/sha.h>
-#endif
-#ifdef HAVE_SSL
-#include <ssl/sha.h>
-#endif
+#include <sha1.h>
 
 /* from %OpenBSD: skeylogin.c,v 1.32 1999/08/16 14:46:56 millert Exp % */
 
diff --git a/authfd.c b/authfd.c
index d920b1f..3476e79 100644
--- a/authfd.c
+++ b/authfd.c
@@ -14,7 +14,7 @@
  */
 
 #include "includes.h"
-RCSID("$Id: authfd.c,v 1.12 2000/04/16 01:18:40 damien Exp $");
+RCSID("$Id: authfd.c,v 1.13 2000/04/16 02:31:49 damien Exp $");
 
 #include "ssh.h"
 #include "rsa.h"
@@ -24,12 +24,7 @@
 #include "xmalloc.h"
 #include "getput.h"
 
-#ifdef HAVE_OPENSSL
 #include <openssl/rsa.h>
-#endif
-#ifdef HAVE_SSL
-#include <ssl/rsa.h>
-#endif
 
 /* Returns the number of the authentication fd, or -1 if there is none. */
 
diff --git a/authfile.c b/authfile.c
index d7912d0..e17c603 100644
--- a/authfile.c
+++ b/authfile.c
@@ -15,15 +15,9 @@
  */
 
 #include "includes.h"
-RCSID("$Id: authfile.c,v 1.10 2000/04/16 01:18:40 damien Exp $");
+RCSID("$Id: authfile.c,v 1.11 2000/04/16 02:31:49 damien Exp $");
 
-#ifdef HAVE_OPENSSL
 #include <openssl/bn.h>
-#endif
-#ifdef HAVE_SSL
-#include <ssl/bn.h>
-#endif
-
 #include "xmalloc.h"
 #include "buffer.h"
 #include "bufaux.h"
diff --git a/bufaux.c b/bufaux.c
index b4d5227..9ae5e9e 100644
--- a/bufaux.c
+++ b/bufaux.c
@@ -17,17 +17,10 @@
  */
 
 #include "includes.h"
-RCSID("$Id: bufaux.c,v 1.11 2000/04/16 01:18:40 damien Exp $");
+RCSID("$Id: bufaux.c,v 1.12 2000/04/16 02:31:50 damien Exp $");
 
 #include "ssh.h"
-
-#ifdef HAVE_OPENSSL
 #include <openssl/bn.h>
-#endif
-#ifdef HAVE_SSL
-#include <ssl/bn.h>
-#endif
-
 #include "bufaux.h"
 #include "xmalloc.h"
 #include "getput.h"
@@ -131,7 +124,7 @@
 /*
  * Returns an integer from the buffer (4 bytes, msb first).
  */
-unsigned int 
+unsigned int
 buffer_get_int(Buffer *buffer)
 {
 	unsigned char buf[4];
@@ -142,7 +135,7 @@
 /*
  * Stores an integer in the buffer in 4 bytes, msb first.
  */
-void 
+void
 buffer_put_int(Buffer *buffer, unsigned int value)
 {
 	char buf[4];
@@ -182,13 +175,13 @@
 /*
  * Stores and arbitrary binary string in the buffer.
  */
-void 
+void
 buffer_put_string(Buffer *buffer, const void *buf, unsigned int len)
 {
 	buffer_put_int(buffer, len);
 	buffer_append(buffer, buf, len);
 }
-void 
+void
 buffer_put_cstring(Buffer *buffer, const char *s)
 {
 	buffer_put_string(buffer, s, strlen(s));
@@ -197,7 +190,7 @@
 /*
  * Returns a character from the buffer (0 - 255).
  */
-int 
+int
 buffer_get_char(Buffer *buffer)
 {
 	char ch;
@@ -208,7 +201,7 @@
 /*
  * Stores a character in the buffer.
  */
-void 
+void
 buffer_put_char(Buffer *buffer, int value)
 {
 	char ch = value;
diff --git a/buffer.h b/buffer.h
index bae7405..f33e6f7 100644
--- a/buffer.h
+++ b/buffer.h
@@ -1,19 +1,19 @@
 /*
- * 
+ *
  * buffer.h
- * 
+ *
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
- * 
+ *
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
  *                    All rights reserved
- * 
+ *
  * Created: Sat Mar 18 04:12:25 1995 ylo
- * 
+ *
  * Code for manipulating FIFO buffers.
- * 
+ *
  */
 
-/* RCSID("$Id: buffer.h,v 1.3 1999/11/25 00:54:58 damien Exp $"); */
+/* RCSID("$Id: buffer.h,v 1.4 2000/04/16 02:31:50 damien Exp $"); */
 
 #ifndef BUFFER_H
 #define BUFFER_H
diff --git a/cipher.c b/cipher.c
index edc50dc..639c1ab 100644
--- a/cipher.c
+++ b/cipher.c
@@ -12,18 +12,13 @@
  */
 
 #include "includes.h"
-RCSID("$Id: cipher.c,v 1.19 2000/04/16 01:18:41 damien Exp $");
+RCSID("$Id: cipher.c,v 1.20 2000/04/16 02:31:50 damien Exp $");
 
 #include "ssh.h"
 #include "cipher.h"
 #include "xmalloc.h"
 
-#ifdef HAVE_OPENSSL
 #include <openssl/md5.h>
-#endif
-#ifdef HAVE_SSL
-#include <ssl/md5.h>
-#endif
 
 /*
  * This is used by SSH1:
diff --git a/cipher.h b/cipher.h
index 383e344..0f94fb2 100644
--- a/cipher.h
+++ b/cipher.h
@@ -11,25 +11,15 @@
  *
  */
 
-/* RCSID("$Id: cipher.h,v 1.11 2000/04/16 01:18:41 damien Exp $"); */
+/* RCSID("$Id: cipher.h,v 1.12 2000/04/16 02:31:50 damien Exp $"); */
 
 #ifndef CIPHER_H
 #define CIPHER_H
 
-#include "config.h"
-
-#ifdef HAVE_OPENSSL
 #include <openssl/des.h>
 #include <openssl/blowfish.h>
 #include <openssl/rc4.h>
 #include <openssl/cast.h>
-#endif
-#ifdef HAVE_SSL
-#include <ssl/des.h>
-#include <ssl/blowfish.h>
-#include <ssl/rc4.h>
-#include <ssl/cast.h>
-#endif
 
 /* Cipher types.  New types can be added, but old types should not be removed
    for compatibility.  The maximum allowed value is 31. */
diff --git a/configure.in b/configure.in
index 3c26e3d..b676193 100644
--- a/configure.in
+++ b/configure.in
@@ -213,27 +213,6 @@
 				break;
 			], []
 		)
-		AC_TRY_RUN(
-			[
-				#include <ssl/rsa.h>
-				#include <ssl/bn.h>
-				#include <ssl/sha.h>
-				int main(void) 
-				{
-					RSA *key; char a[2048],b[2048];;
-					memset(a, 0, sizeof(a));memset(b, 0, sizeof(b));
-					RAND_seed(a, sizeof(a));
-					key=RSA_generate_key(32,3,NULL,NULL);
-					if (key==NULL) return(1);
-					return(-1==RSA_private_decrypt(RSA_size(key),a,b,key,RSA_NO_PADDING));
-				}
-			],
-			[
-				AC_DEFINE(HAVE_SSL)
-				found_crypto=1
-				break;
-			], []
-		)
 	done
 
 	if test ! -z "$found_crypto" ; then
diff --git a/entropy.c b/entropy.c
index f304e21..549fe70 100644
--- a/entropy.c
+++ b/entropy.c
@@ -32,16 +32,10 @@
 #include "ssh.h"
 #include "xmalloc.h"
 
-#ifdef HAVE_OPENSSL
-# include <openssl/rand.h>
-# include <openssl/sha.h>
-#endif
-#ifdef HAVE_SSL
-# include <ssl/rand.h>
-# include <ssl/sha.h>
-#endif
+#include <openssl/rand.h>
+#include <openssl/sha.h>
 
-RCSID("$Id: entropy.c,v 1.4 2000/04/08 07:48:56 damien Exp $");
+RCSID("$Id: entropy.c,v 1.5 2000/04/16 02:31:50 damien Exp $");
 
 #ifdef EGD_SOCKET
 #ifndef offsetof
diff --git a/fingerprint.c b/fingerprint.c
index e6f27d0..4b0966d 100644
--- a/fingerprint.c
+++ b/fingerprint.c
@@ -28,16 +28,11 @@
  */
 
 #include "includes.h"
-RCSID("$Id: fingerprint.c,v 1.5 2000/03/16 20:56:14 markus Exp $");
+RCSID("$Id: fingerprint.c,v 1.6 2000/04/12 09:39:10 markus Exp $");
 
 #include "ssh.h"
 #include "xmalloc.h"
-#ifdef HAVE_OPENSSL
 #include <openssl/md5.h>
-#endif
-#ifdef HAVE_SSL
-#include <ssl/md5.h>
-#endif
 
 #define FPRINT "%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x"
 
diff --git a/hostfile.c b/hostfile.c
index b027075..29efe56 100644
--- a/hostfile.c
+++ b/hostfile.c
@@ -16,20 +16,11 @@
 #include "includes.h"
 RCSID("$OpenBSD: hostfile.c,v 1.16 2000/04/14 10:30:31 markus Exp $");
 
-#ifdef HAVE_OPENSSL
-#include <openssl/bn.h>
-#include <openssl/rsa.h>
-#include <openssl/dsa.h>
-#endif
-#ifdef HAVE_SSL
-#include <ssl/bn.h>
-#include <ssl/rsa.h>
-#include <ssl/dsa.h>
-#endif
-
 #include "packet.h"
 #include "match.h"
 #include "ssh.h"
+#include <openssl/rsa.h>
+#include <openssl/dsa.h>
 #include "key.h"
 #include "hostfile.h"
 
diff --git a/includes.h b/includes.h
index 5122667..1a0e76f 100644
--- a/includes.h
+++ b/includes.h
@@ -108,6 +108,9 @@
 #include "fake-getnameinfo.h"
 #include "fake-socket.h"
 
+/* Entropy collection */
+#include "entropy.h"
+
 /* Define this to be the path of the xauth program. */
 #ifndef XAUTH_PATH
 #define XAUTH_PATH "/usr/X11R6/bin/xauth"
diff --git a/kex.h b/kex.h
index 29e1e88..5395ebc 100644
--- a/kex.h
+++ b/kex.h
@@ -29,17 +29,6 @@
 #ifndef KEX_H
 #define KEX_H
 
-#include "config.h"
-
-#ifdef HAVE_OPENSSL
-# include <openssl/bn.h>
-# include <openssl/evp.h>
-#endif
-#ifdef HAVE_SSL
-# include <ssl/bn.h>
-# include <ssl/evp.h>
-#endif
-
 #define	KEX_DH1	"diffie-hellman-group1-sha1"
 #define KEX_DSS	"ssh-dss"
 
diff --git a/key.c b/key.c
index 437a5e2..872313a 100644
--- a/key.c
+++ b/key.c
@@ -32,21 +32,10 @@
  */
 
 #include "includes.h"
-
-#ifdef HAVE_OPENSSL
-#include <openssl/bn.h>
+#include "ssh.h"
 #include <openssl/rsa.h>
 #include <openssl/dsa.h>
 #include <openssl/evp.h>
-#endif
-#ifdef HAVE_SSL
-#include <ssl/bn.h>
-#include <ssl/rsa.h>
-#include <ssl/dsa.h>
-#include <ssl/evp.h>
-#endif
-
-#include "ssh.h"
 #include "xmalloc.h"
 #include "key.h"
 
diff --git a/md5crypt.c b/md5crypt.c
index 16bcf33..a9f0f26 100644
--- a/md5crypt.c
+++ b/md5crypt.c
@@ -21,14 +21,7 @@
 
 #include <unistd.h>
 #include <string.h>
-
-#ifdef HAVE_OPENSSL
 #include <openssl/md5.h>
-#endif
-
-#ifdef HAVE_SSL
-#include <ssl/md5.h>
-#endif
 
 static unsigned char itoa64[] =		/* 0 ... 63 => ascii - 64 */
 	"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
diff --git a/mpaux.c b/mpaux.c
index 4deefe6..2384c82 100644
--- a/mpaux.c
+++ b/mpaux.c
@@ -15,19 +15,13 @@
 */
 
 #include "includes.h"
-RCSID("$Id: mpaux.c,v 1.11 2000/04/16 01:18:43 damien Exp $");
+RCSID("$Id: mpaux.c,v 1.12 2000/04/16 02:31:51 damien Exp $");
 
+#include <openssl/bn.h>
 #include "getput.h"
 #include "xmalloc.h"
 
-#ifdef HAVE_OPENSSL
-#include <openssl/bn.h>
 #include <openssl/md5.h>
-#endif
-#ifdef HAVE_SSL
-#include <ssl/bn.h>
-#include <ssl/md5.h>
-#endif
 
 void
 compute_session_id(unsigned char session_id[16],
diff --git a/packet.c b/packet.c
index cb8fa15..e32c705 100644
--- a/packet.c
+++ b/packet.c
@@ -17,18 +17,7 @@
  */
 
 #include "includes.h"
-RCSID("$Id: packet.c,v 1.18 2000/04/16 01:18:43 damien Exp $");
-
-#ifdef HAVE_OPENSSL
-# include <openssl/bn.h>
-# include <openssl/dh.h>
-# include <openssl/hmac.h>
-#endif /* HAVE_OPENSSL */
-#ifdef HAVE_SSL
-# include <ssl/bn.h>
-# include <ssl/dh.h>
-# include <ssl/hmac.h>
-#endif /* HAVE_SSL */
+RCSID("$Id: packet.c,v 1.19 2000/04/16 02:31:51 damien Exp $");
 
 #include "xmalloc.h"
 #include "buffer.h"
@@ -46,6 +35,9 @@
 #include "compat.h"
 #include "ssh2.h"
 
+#include <openssl/bn.h>
+#include <openssl/dh.h>
+#include <openssl/hmac.h>
 #include "buffer.h"
 #include "kex.h"
 #include "hmac.h"
diff --git a/packet.h b/packet.h
index 93495bb..b5fc196 100644
--- a/packet.h
+++ b/packet.h
@@ -13,17 +13,12 @@
  *
  */
 
-/* RCSID("$Id: packet.h,v 1.14 2000/04/16 01:18:44 damien Exp $"); */
+/* RCSID("$Id: packet.h,v 1.15 2000/04/16 02:31:51 damien Exp $"); */
 
 #ifndef PACKET_H
 #define PACKET_H
 
-#ifdef HAVE_OPENSSL
 #include <openssl/bn.h>
-#endif
-#ifdef HAVE_SSL
-#include <ssl/bn.h>
-#endif
 
 /*
  * Sets the socket used for communication.  Disables encryption until
diff --git a/rsa.h b/rsa.h
index e819c5f..672f20d 100644
--- a/rsa.h
+++ b/rsa.h
@@ -13,24 +13,13 @@
  *
 */
 
-/* RCSID("$Id: rsa.h,v 1.8 2000/04/16 01:18:45 damien Exp $"); */
+/* RCSID("$Id: rsa.h,v 1.9 2000/04/16 02:31:51 damien Exp $"); */
 
 #ifndef RSA_H
 #define RSA_H
 
-#include "config.h"
-
-#ifdef HAVE_OPENSSL
 #include <openssl/bn.h>
 #include <openssl/rsa.h>
-#include <openssl/rand.h>
-#endif
-
-#ifdef HAVE_SSL
-#include <ssl/bn.h>
-#include <ssl/rsa.h>
-#include <ssl/rand.h>
-#endif
 
 /* Calls SSL RSA_generate_key, only copies to prv and pub */
 void    rsa_generate_key(RSA * prv, RSA * pub, unsigned int bits);
diff --git a/session.c b/session.c
index 8d8ff22..24bc25c 100644
--- a/session.c
+++ b/session.c
@@ -1247,6 +1247,8 @@
 	/* Get window size from the packet. */
 	pty_change_window_size(s->ptyfd, s->row, s->col, s->xpixel, s->ypixel);
 
+	/* XXX parse and set terminal modes */
+	xfree(term_modes);
 	return 1;
 }
 
@@ -1286,6 +1288,7 @@
 			success = 1;
 		} else if (strcmp(rtype, "exec") == 0) {
 			char *command = packet_get_string(&len);
+			packet_done();
 			if (s->ttyfd == -1)
 				do_exec_no_pty(s, command, s->pw);
 			else
@@ -1293,8 +1296,7 @@
 			xfree(command);
 			success = 1;
 		} else if (strcmp(rtype, "pty-req") == 0) {
-			if (session_pty_req(s) > 0)
-				success = 1;
+			success =  session_pty_req(s);
 		}
 	}
 	if (strcmp(rtype, "window-change") == 0) {
diff --git a/ssh-agent.c b/ssh-agent.c
index 6643946..fac2a2c 100644
--- a/ssh-agent.c
+++ b/ssh-agent.c
@@ -21,12 +21,7 @@
 #include "getput.h"
 #include "mpaux.h"
 
-#ifdef HAVE_OPENSSL
 #include <openssl/md5.h>
-#endif
-#ifdef HAVE_SSL
-#include <ssl/md5.h>
-#endif
 
 typedef struct {
 	int fd;
diff --git a/sshconnect.c b/sshconnect.c
index bca0bf4..3c5c990 100644
--- a/sshconnect.c
+++ b/sshconnect.c
@@ -12,19 +12,7 @@
 #include "includes.h"
 RCSID("$OpenBSD: sshconnect.c,v 1.68 2000/04/14 10:30:33 markus Exp $");
 
-#ifdef HAVE_OPENSSL
 #include <openssl/bn.h>
-#include <openssl/rsa.h>
-#include <openssl/dsa.h>
-#include <openssl/md5.h>
-#endif
-#ifdef HAVE_SSL
-#include <ssl/bn.h>
-#include <ssl/rsa.h>
-#include <ssl/dsa.h>
-#include <ssl/md5.h>
-#endif
-
 #include "xmalloc.h"
 #include "rsa.h"
 #include "ssh.h"
@@ -38,8 +26,13 @@
 #include "readconf.h"
 
 #include "bufaux.h"
+#include <openssl/rsa.h>
+#include <openssl/dsa.h>
 
 #include "ssh2.h"
+#include <openssl/md5.h>
+#include <openssl/dh.h>
+#include <openssl/hmac.h>
 #include "kex.h"
 #include "myproposal.h"
 #include "key.h"
diff --git a/sshd.c b/sshd.c
index cc6bee9..c8508e9 100644
--- a/sshd.c
+++ b/sshd.c
@@ -29,21 +29,12 @@
 #include "buffer.h"
 
 #include "ssh2.h"
-#ifdef HAVE_OPENSSL
-# include <openssl/dh.h>
-# include <openssl/bn.h>
-# include <openssl/hmac.h>
-# include <openssl/dsa.h>
-# include <openssl/rsa.h>
-#endif
-#ifdef HAVE_SSL
-# include <ssl/dh.h>
-# include <ssl/bn.h>
-# include <ssl/hmac.h>
-# include <ssl/dsa.h>
-# include <ssl/rsa.h>
-#endif
+#include <openssl/dh.h>
+#include <openssl/bn.h>
+#include <openssl/hmac.h>
 #include "kex.h"
+#include <openssl/dsa.h>
+#include <openssl/rsa.h>
 #include "key.h"
 #include "dsa.h"