/* protobuf config.h for MSVC.  On other platforms, this is generated
 * automatically by autoheader / autoconf / configure. */

#include <google/protobuf/stubs/pbconfig.h>

#define HASH_MAP_H GOOGLE_PROTOBUF_HASH_MAP_H
#define HASH_NAMESPACE GOOGLE_PROTOBUF_HASH_NAMESPACE
#define HASH_SET_H GOOGLE_PROTOBUF_HASH_SET_H

#ifdef GOOGLE_PROTOBUF_HAVE_HASH_MAP
#define HAVE_HASH_MAP GOOGLE_PROTOBUF_HAVE_HASH_MAP
#endif

#ifdef GOOGLE_PROTOBUF_HAVE_HASH_SET
#define HAVE_HASH_SET GOOGLE_PROTOBUF_HAVE_HASH_SET
#endif

/* define if you want to use zlib.  See readme.txt for additional
 * requirements. */
// #define HAVE_ZLIB 1
