diff --git a/services/tunnelbroker/build.rs b/services/tunnelbroker/build.rs
--- a/services/tunnelbroker/build.rs
+++ b/services/tunnelbroker/build.rs
@@ -1,57 +1 @@
-use cxx_build::CFG;
-use glob::glob;
-use std::fs;
-use std::path::Path;
-
-fn get_cpp_sources(path: &str) -> Vec<String> {
-  let mut sources = vec![];
-  let files = glob(String::from(path.to_owned() + "/**/*.cpp").as_str())
-    .expect("Error gathering .cpp file paths");
-  for entry in files {
-    sources.push(entry.unwrap().display().to_string());
-  }
-  sources
-}
-
-fn add_import_path(import_path: &str) {
-  let shared_headers_import_path =
-    fs::canonicalize(import_path).expect("Error getting full import path");
-  CFG.exported_header_dirs.push(&shared_headers_import_path);
-}
-
-fn main() {
-  add_import_path("../lib/src");
-  add_import_path("src/libcpp/src");
-  add_import_path("src/libcpp/src/Amqp");
-  add_import_path("src/libcpp/src/Database");
-  add_import_path("src/libcpp/src/DeliveryBroker");
-  add_import_path("src/libcpp/src/Tools");
-
-  cxx_build::bridge("src/cxx_bridge.rs")
-    .files(get_cpp_sources("../lib/src"))
-    .files(get_cpp_sources("src/libcpp/src"))
-    .file(Path::new("src/libcpp/Tunnelbroker.cpp"))
-    .flag_if_supported("-std=c++17")
-    .flag_if_supported("-w")
-    .compile("tunnelbroker");
-
-  println!("cargo:rustc-link-lib=boost_program_options");
-  println!("cargo:rustc-link-lib=boost_system");
-  println!("cargo:rustc-link-lib=folly");
-  println!("cargo:rustc-link-lib=double-conversion");
-  println!("cargo:rustc-link-lib=gflags");
-  println!("cargo:rustc-link-lib=amqpcpp");
-  println!("cargo:rustc-link-lib=glog");
-  println!("cargo:rustc-link-lib=ssl");
-  println!("cargo:rustc-link-lib=uv");
-  println!("cargo:rustc-link-lib=aws-cpp-sdk-core");
-  println!("cargo:rustc-link-lib=aws-cpp-sdk-dynamodb");
-
-  println!("cargo:rerun-if-changed=src/main.rs");
-  println!("cargo:rerun-if-changed=src/libcpp/Tunnelbroker.h");
-  println!("cargo:rerun-if-changed=src/libcpp/Tunnelbroker.cpp");
-
-  println!("cargo:rerun-if-changed=../../shared/protos/tunnelbroker.proto");
-  tonic_build::compile_protos("../../shared/protos/tunnelbroker.proto")
-    .expect("Failed to compile protobuf file");
-}
+fn main() {}
diff --git a/services/tunnelbroker/src/main.rs b/services/tunnelbroker/src/main.rs
--- a/services/tunnelbroker/src/main.rs
+++ b/services/tunnelbroker/src/main.rs
@@ -1,7 +1,4 @@
 pub mod constants;
-pub mod cxx_bridge;
-pub mod notifications;
-pub mod server;
 pub mod websockets;
 use std::io;
 use tracing;
@@ -12,6 +9,5 @@
   tracing::subscriber::set_global_default(subscriber)
     .expect("Unable to configure tracing");
 
-  cxx_bridge::ffi::initialize();
   websockets::create_server().await
 }
diff --git a/shared/protos/CMakeLists.txt b/shared/protos/CMakeLists.txt
--- a/shared/protos/CMakeLists.txt
+++ b/shared/protos/CMakeLists.txt
@@ -13,7 +13,7 @@
   HINTS "${_GRPC_CPP_PLUGIN_EXECUTABLE}")
 
 set(_proto_dir "${CMAKE_CURRENT_SOURCE_DIR}")
-set(_components backup blob tunnelbroker identity)
+set(_components backup blob identity)
 set(TARGETS)
 
 # Iterate through each protobuf file
diff --git a/shared/protos/_generated/tunnelbroker.grpc.pb.h b/shared/protos/_generated/tunnelbroker.grpc.pb.h
deleted file mode 100644
--- a/shared/protos/_generated/tunnelbroker.grpc.pb.h
+++ /dev/null
@@ -1,528 +0,0 @@
-// @generated by the gRPC C++ plugin.
-// If you make any local change, they will be lost.
-// source: tunnelbroker.proto
-#ifndef GRPC_tunnelbroker_2eproto__INCLUDED
-#define GRPC_tunnelbroker_2eproto__INCLUDED
-
-#include "tunnelbroker.pb.h"
-
-#include <functional>
-#include <grpcpp/impl/codegen/async_generic_service.h>
-#include <grpcpp/impl/codegen/async_stream.h>
-#include <grpcpp/impl/codegen/async_unary_call.h>
-#include <grpcpp/impl/codegen/client_callback.h>
-#include <grpcpp/impl/codegen/client_context.h>
-#include <grpcpp/impl/codegen/completion_queue.h>
-#include <grpcpp/impl/codegen/message_allocator.h>
-#include <grpcpp/impl/codegen/method_handler.h>
-#include <grpcpp/impl/codegen/proto_utils.h>
-#include <grpcpp/impl/codegen/rpc_method.h>
-#include <grpcpp/impl/codegen/server_callback.h>
-#include <grpcpp/impl/codegen/server_callback_handlers.h>
-#include <grpcpp/impl/codegen/server_context.h>
-#include <grpcpp/impl/codegen/service_type.h>
-#include <grpcpp/impl/codegen/status.h>
-#include <grpcpp/impl/codegen/stub_options.h>
-#include <grpcpp/impl/codegen/sync_stream.h>
-
-namespace tunnelbroker {
-
-class TunnelbrokerService final {
- public:
-  static constexpr char const* service_full_name() {
-    return "tunnelbroker.TunnelbrokerService";
-  }
-  class StubInterface {
-   public:
-    virtual ~StubInterface() {}
-    virtual ::grpc::Status SessionSignature(::grpc::ClientContext* context, const ::tunnelbroker::SessionSignatureRequest& request, ::tunnelbroker::SessionSignatureResponse* response) = 0;
-    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::tunnelbroker::SessionSignatureResponse>> AsyncSessionSignature(::grpc::ClientContext* context, const ::tunnelbroker::SessionSignatureRequest& request, ::grpc::CompletionQueue* cq) {
-      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::tunnelbroker::SessionSignatureResponse>>(AsyncSessionSignatureRaw(context, request, cq));
-    }
-    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::tunnelbroker::SessionSignatureResponse>> PrepareAsyncSessionSignature(::grpc::ClientContext* context, const ::tunnelbroker::SessionSignatureRequest& request, ::grpc::CompletionQueue* cq) {
-      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::tunnelbroker::SessionSignatureResponse>>(PrepareAsyncSessionSignatureRaw(context, request, cq));
-    }
-    virtual ::grpc::Status NewSession(::grpc::ClientContext* context, const ::tunnelbroker::NewSessionRequest& request, ::tunnelbroker::NewSessionResponse* response) = 0;
-    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::tunnelbroker::NewSessionResponse>> AsyncNewSession(::grpc::ClientContext* context, const ::tunnelbroker::NewSessionRequest& request, ::grpc::CompletionQueue* cq) {
-      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::tunnelbroker::NewSessionResponse>>(AsyncNewSessionRaw(context, request, cq));
-    }
-    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::tunnelbroker::NewSessionResponse>> PrepareAsyncNewSession(::grpc::ClientContext* context, const ::tunnelbroker::NewSessionRequest& request, ::grpc::CompletionQueue* cq) {
-      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::tunnelbroker::NewSessionResponse>>(PrepareAsyncNewSessionRaw(context, request, cq));
-    }
-    std::unique_ptr< ::grpc::ClientReaderWriterInterface< ::tunnelbroker::MessageToTunnelbroker, ::tunnelbroker::MessageToClient>> MessagesStream(::grpc::ClientContext* context) {
-      return std::unique_ptr< ::grpc::ClientReaderWriterInterface< ::tunnelbroker::MessageToTunnelbroker, ::tunnelbroker::MessageToClient>>(MessagesStreamRaw(context));
-    }
-    std::unique_ptr< ::grpc::ClientAsyncReaderWriterInterface< ::tunnelbroker::MessageToTunnelbroker, ::tunnelbroker::MessageToClient>> AsyncMessagesStream(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) {
-      return std::unique_ptr< ::grpc::ClientAsyncReaderWriterInterface< ::tunnelbroker::MessageToTunnelbroker, ::tunnelbroker::MessageToClient>>(AsyncMessagesStreamRaw(context, cq, tag));
-    }
-    std::unique_ptr< ::grpc::ClientAsyncReaderWriterInterface< ::tunnelbroker::MessageToTunnelbroker, ::tunnelbroker::MessageToClient>> PrepareAsyncMessagesStream(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq) {
-      return std::unique_ptr< ::grpc::ClientAsyncReaderWriterInterface< ::tunnelbroker::MessageToTunnelbroker, ::tunnelbroker::MessageToClient>>(PrepareAsyncMessagesStreamRaw(context, cq));
-    }
-    class async_interface {
-     public:
-      virtual ~async_interface() {}
-      virtual void SessionSignature(::grpc::ClientContext* context, const ::tunnelbroker::SessionSignatureRequest* request, ::tunnelbroker::SessionSignatureResponse* response, std::function<void(::grpc::Status)>) = 0;
-      virtual void SessionSignature(::grpc::ClientContext* context, const ::tunnelbroker::SessionSignatureRequest* request, ::tunnelbroker::SessionSignatureResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0;
-      virtual void NewSession(::grpc::ClientContext* context, const ::tunnelbroker::NewSessionRequest* request, ::tunnelbroker::NewSessionResponse* response, std::function<void(::grpc::Status)>) = 0;
-      virtual void NewSession(::grpc::ClientContext* context, const ::tunnelbroker::NewSessionRequest* request, ::tunnelbroker::NewSessionResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0;
-      virtual void MessagesStream(::grpc::ClientContext* context, ::grpc::ClientBidiReactor< ::tunnelbroker::MessageToTunnelbroker,::tunnelbroker::MessageToClient>* reactor) = 0;
-    };
-    typedef class async_interface experimental_async_interface;
-    virtual class async_interface* async() { return nullptr; }
-    class async_interface* experimental_async() { return async(); }
-   private:
-    virtual ::grpc::ClientAsyncResponseReaderInterface< ::tunnelbroker::SessionSignatureResponse>* AsyncSessionSignatureRaw(::grpc::ClientContext* context, const ::tunnelbroker::SessionSignatureRequest& request, ::grpc::CompletionQueue* cq) = 0;
-    virtual ::grpc::ClientAsyncResponseReaderInterface< ::tunnelbroker::SessionSignatureResponse>* PrepareAsyncSessionSignatureRaw(::grpc::ClientContext* context, const ::tunnelbroker::SessionSignatureRequest& request, ::grpc::CompletionQueue* cq) = 0;
-    virtual ::grpc::ClientAsyncResponseReaderInterface< ::tunnelbroker::NewSessionResponse>* AsyncNewSessionRaw(::grpc::ClientContext* context, const ::tunnelbroker::NewSessionRequest& request, ::grpc::CompletionQueue* cq) = 0;
-    virtual ::grpc::ClientAsyncResponseReaderInterface< ::tunnelbroker::NewSessionResponse>* PrepareAsyncNewSessionRaw(::grpc::ClientContext* context, const ::tunnelbroker::NewSessionRequest& request, ::grpc::CompletionQueue* cq) = 0;
-    virtual ::grpc::ClientReaderWriterInterface< ::tunnelbroker::MessageToTunnelbroker, ::tunnelbroker::MessageToClient>* MessagesStreamRaw(::grpc::ClientContext* context) = 0;
-    virtual ::grpc::ClientAsyncReaderWriterInterface< ::tunnelbroker::MessageToTunnelbroker, ::tunnelbroker::MessageToClient>* AsyncMessagesStreamRaw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) = 0;
-    virtual ::grpc::ClientAsyncReaderWriterInterface< ::tunnelbroker::MessageToTunnelbroker, ::tunnelbroker::MessageToClient>* PrepareAsyncMessagesStreamRaw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq) = 0;
-  };
-  class Stub final : public StubInterface {
-   public:
-    Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions());
-    ::grpc::Status SessionSignature(::grpc::ClientContext* context, const ::tunnelbroker::SessionSignatureRequest& request, ::tunnelbroker::SessionSignatureResponse* response) override;
-    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::tunnelbroker::SessionSignatureResponse>> AsyncSessionSignature(::grpc::ClientContext* context, const ::tunnelbroker::SessionSignatureRequest& request, ::grpc::CompletionQueue* cq) {
-      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::tunnelbroker::SessionSignatureResponse>>(AsyncSessionSignatureRaw(context, request, cq));
-    }
-    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::tunnelbroker::SessionSignatureResponse>> PrepareAsyncSessionSignature(::grpc::ClientContext* context, const ::tunnelbroker::SessionSignatureRequest& request, ::grpc::CompletionQueue* cq) {
-      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::tunnelbroker::SessionSignatureResponse>>(PrepareAsyncSessionSignatureRaw(context, request, cq));
-    }
-    ::grpc::Status NewSession(::grpc::ClientContext* context, const ::tunnelbroker::NewSessionRequest& request, ::tunnelbroker::NewSessionResponse* response) override;
-    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::tunnelbroker::NewSessionResponse>> AsyncNewSession(::grpc::ClientContext* context, const ::tunnelbroker::NewSessionRequest& request, ::grpc::CompletionQueue* cq) {
-      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::tunnelbroker::NewSessionResponse>>(AsyncNewSessionRaw(context, request, cq));
-    }
-    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::tunnelbroker::NewSessionResponse>> PrepareAsyncNewSession(::grpc::ClientContext* context, const ::tunnelbroker::NewSessionRequest& request, ::grpc::CompletionQueue* cq) {
-      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::tunnelbroker::NewSessionResponse>>(PrepareAsyncNewSessionRaw(context, request, cq));
-    }
-    std::unique_ptr< ::grpc::ClientReaderWriter< ::tunnelbroker::MessageToTunnelbroker, ::tunnelbroker::MessageToClient>> MessagesStream(::grpc::ClientContext* context) {
-      return std::unique_ptr< ::grpc::ClientReaderWriter< ::tunnelbroker::MessageToTunnelbroker, ::tunnelbroker::MessageToClient>>(MessagesStreamRaw(context));
-    }
-    std::unique_ptr<  ::grpc::ClientAsyncReaderWriter< ::tunnelbroker::MessageToTunnelbroker, ::tunnelbroker::MessageToClient>> AsyncMessagesStream(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) {
-      return std::unique_ptr< ::grpc::ClientAsyncReaderWriter< ::tunnelbroker::MessageToTunnelbroker, ::tunnelbroker::MessageToClient>>(AsyncMessagesStreamRaw(context, cq, tag));
-    }
-    std::unique_ptr<  ::grpc::ClientAsyncReaderWriter< ::tunnelbroker::MessageToTunnelbroker, ::tunnelbroker::MessageToClient>> PrepareAsyncMessagesStream(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq) {
-      return std::unique_ptr< ::grpc::ClientAsyncReaderWriter< ::tunnelbroker::MessageToTunnelbroker, ::tunnelbroker::MessageToClient>>(PrepareAsyncMessagesStreamRaw(context, cq));
-    }
-    class async final :
-      public StubInterface::async_interface {
-     public:
-      void SessionSignature(::grpc::ClientContext* context, const ::tunnelbroker::SessionSignatureRequest* request, ::tunnelbroker::SessionSignatureResponse* response, std::function<void(::grpc::Status)>) override;
-      void SessionSignature(::grpc::ClientContext* context, const ::tunnelbroker::SessionSignatureRequest* request, ::tunnelbroker::SessionSignatureResponse* response, ::grpc::ClientUnaryReactor* reactor) override;
-      void NewSession(::grpc::ClientContext* context, const ::tunnelbroker::NewSessionRequest* request, ::tunnelbroker::NewSessionResponse* response, std::function<void(::grpc::Status)>) override;
-      void NewSession(::grpc::ClientContext* context, const ::tunnelbroker::NewSessionRequest* request, ::tunnelbroker::NewSessionResponse* response, ::grpc::ClientUnaryReactor* reactor) override;
-      void MessagesStream(::grpc::ClientContext* context, ::grpc::ClientBidiReactor< ::tunnelbroker::MessageToTunnelbroker,::tunnelbroker::MessageToClient>* reactor) override;
-     private:
-      friend class Stub;
-      explicit async(Stub* stub): stub_(stub) { }
-      Stub* stub() { return stub_; }
-      Stub* stub_;
-    };
-    class async* async() override { return &async_stub_; }
-
-   private:
-    std::shared_ptr< ::grpc::ChannelInterface> channel_;
-    class async async_stub_{this};
-    ::grpc::ClientAsyncResponseReader< ::tunnelbroker::SessionSignatureResponse>* AsyncSessionSignatureRaw(::grpc::ClientContext* context, const ::tunnelbroker::SessionSignatureRequest& request, ::grpc::CompletionQueue* cq) override;
-    ::grpc::ClientAsyncResponseReader< ::tunnelbroker::SessionSignatureResponse>* PrepareAsyncSessionSignatureRaw(::grpc::ClientContext* context, const ::tunnelbroker::SessionSignatureRequest& request, ::grpc::CompletionQueue* cq) override;
-    ::grpc::ClientAsyncResponseReader< ::tunnelbroker::NewSessionResponse>* AsyncNewSessionRaw(::grpc::ClientContext* context, const ::tunnelbroker::NewSessionRequest& request, ::grpc::CompletionQueue* cq) override;
-    ::grpc::ClientAsyncResponseReader< ::tunnelbroker::NewSessionResponse>* PrepareAsyncNewSessionRaw(::grpc::ClientContext* context, const ::tunnelbroker::NewSessionRequest& request, ::grpc::CompletionQueue* cq) override;
-    ::grpc::ClientReaderWriter< ::tunnelbroker::MessageToTunnelbroker, ::tunnelbroker::MessageToClient>* MessagesStreamRaw(::grpc::ClientContext* context) override;
-    ::grpc::ClientAsyncReaderWriter< ::tunnelbroker::MessageToTunnelbroker, ::tunnelbroker::MessageToClient>* AsyncMessagesStreamRaw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) override;
-    ::grpc::ClientAsyncReaderWriter< ::tunnelbroker::MessageToTunnelbroker, ::tunnelbroker::MessageToClient>* PrepareAsyncMessagesStreamRaw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq) override;
-    const ::grpc::internal::RpcMethod rpcmethod_SessionSignature_;
-    const ::grpc::internal::RpcMethod rpcmethod_NewSession_;
-    const ::grpc::internal::RpcMethod rpcmethod_MessagesStream_;
-  };
-  static std::unique_ptr<Stub> NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions());
-
-  class Service : public ::grpc::Service {
-   public:
-    Service();
-    virtual ~Service();
-    virtual ::grpc::Status SessionSignature(::grpc::ServerContext* context, const ::tunnelbroker::SessionSignatureRequest* request, ::tunnelbroker::SessionSignatureResponse* response);
-    virtual ::grpc::Status NewSession(::grpc::ServerContext* context, const ::tunnelbroker::NewSessionRequest* request, ::tunnelbroker::NewSessionResponse* response);
-    virtual ::grpc::Status MessagesStream(::grpc::ServerContext* context, ::grpc::ServerReaderWriter< ::tunnelbroker::MessageToClient, ::tunnelbroker::MessageToTunnelbroker>* stream);
-  };
-  template <class BaseClass>
-  class WithAsyncMethod_SessionSignature : public BaseClass {
-   private:
-    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
-   public:
-    WithAsyncMethod_SessionSignature() {
-      ::grpc::Service::MarkMethodAsync(0);
-    }
-    ~WithAsyncMethod_SessionSignature() override {
-      BaseClassMustBeDerivedFromService(this);
-    }
-    // disable synchronous version of this method
-    ::grpc::Status SessionSignature(::grpc::ServerContext* /*context*/, const ::tunnelbroker::SessionSignatureRequest* /*request*/, ::tunnelbroker::SessionSignatureResponse* /*response*/) override {
-      abort();
-      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
-    }
-    void RequestSessionSignature(::grpc::ServerContext* context, ::tunnelbroker::SessionSignatureRequest* request, ::grpc::ServerAsyncResponseWriter< ::tunnelbroker::SessionSignatureResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
-      ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag);
-    }
-  };
-  template <class BaseClass>
-  class WithAsyncMethod_NewSession : public BaseClass {
-   private:
-    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
-   public:
-    WithAsyncMethod_NewSession() {
-      ::grpc::Service::MarkMethodAsync(1);
-    }
-    ~WithAsyncMethod_NewSession() override {
-      BaseClassMustBeDerivedFromService(this);
-    }
-    // disable synchronous version of this method
-    ::grpc::Status NewSession(::grpc::ServerContext* /*context*/, const ::tunnelbroker::NewSessionRequest* /*request*/, ::tunnelbroker::NewSessionResponse* /*response*/) override {
-      abort();
-      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
-    }
-    void RequestNewSession(::grpc::ServerContext* context, ::tunnelbroker::NewSessionRequest* request, ::grpc::ServerAsyncResponseWriter< ::tunnelbroker::NewSessionResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
-      ::grpc::Service::RequestAsyncUnary(1, context, request, response, new_call_cq, notification_cq, tag);
-    }
-  };
-  template <class BaseClass>
-  class WithAsyncMethod_MessagesStream : public BaseClass {
-   private:
-    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
-   public:
-    WithAsyncMethod_MessagesStream() {
-      ::grpc::Service::MarkMethodAsync(2);
-    }
-    ~WithAsyncMethod_MessagesStream() override {
-      BaseClassMustBeDerivedFromService(this);
-    }
-    // disable synchronous version of this method
-    ::grpc::Status MessagesStream(::grpc::ServerContext* /*context*/, ::grpc::ServerReaderWriter< ::tunnelbroker::MessageToClient, ::tunnelbroker::MessageToTunnelbroker>* /*stream*/)  override {
-      abort();
-      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
-    }
-    void RequestMessagesStream(::grpc::ServerContext* context, ::grpc::ServerAsyncReaderWriter< ::tunnelbroker::MessageToClient, ::tunnelbroker::MessageToTunnelbroker>* stream, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
-      ::grpc::Service::RequestAsyncBidiStreaming(2, context, stream, new_call_cq, notification_cq, tag);
-    }
-  };
-  typedef WithAsyncMethod_SessionSignature<WithAsyncMethod_NewSession<WithAsyncMethod_MessagesStream<Service > > > AsyncService;
-  template <class BaseClass>
-  class WithCallbackMethod_SessionSignature : public BaseClass {
-   private:
-    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
-   public:
-    WithCallbackMethod_SessionSignature() {
-      ::grpc::Service::MarkMethodCallback(0,
-          new ::grpc::internal::CallbackUnaryHandler< ::tunnelbroker::SessionSignatureRequest, ::tunnelbroker::SessionSignatureResponse>(
-            [this](
-                   ::grpc::CallbackServerContext* context, const ::tunnelbroker::SessionSignatureRequest* request, ::tunnelbroker::SessionSignatureResponse* response) { return this->SessionSignature(context, request, response); }));}
-    void SetMessageAllocatorFor_SessionSignature(
-        ::grpc::MessageAllocator< ::tunnelbroker::SessionSignatureRequest, ::tunnelbroker::SessionSignatureResponse>* allocator) {
-      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(0);
-      static_cast<::grpc::internal::CallbackUnaryHandler< ::tunnelbroker::SessionSignatureRequest, ::tunnelbroker::SessionSignatureResponse>*>(handler)
-              ->SetMessageAllocator(allocator);
-    }
-    ~WithCallbackMethod_SessionSignature() override {
-      BaseClassMustBeDerivedFromService(this);
-    }
-    // disable synchronous version of this method
-    ::grpc::Status SessionSignature(::grpc::ServerContext* /*context*/, const ::tunnelbroker::SessionSignatureRequest* /*request*/, ::tunnelbroker::SessionSignatureResponse* /*response*/) override {
-      abort();
-      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
-    }
-    virtual ::grpc::ServerUnaryReactor* SessionSignature(
-      ::grpc::CallbackServerContext* /*context*/, const ::tunnelbroker::SessionSignatureRequest* /*request*/, ::tunnelbroker::SessionSignatureResponse* /*response*/)  { return nullptr; }
-  };
-  template <class BaseClass>
-  class WithCallbackMethod_NewSession : public BaseClass {
-   private:
-    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
-   public:
-    WithCallbackMethod_NewSession() {
-      ::grpc::Service::MarkMethodCallback(1,
-          new ::grpc::internal::CallbackUnaryHandler< ::tunnelbroker::NewSessionRequest, ::tunnelbroker::NewSessionResponse>(
-            [this](
-                   ::grpc::CallbackServerContext* context, const ::tunnelbroker::NewSessionRequest* request, ::tunnelbroker::NewSessionResponse* response) { return this->NewSession(context, request, response); }));}
-    void SetMessageAllocatorFor_NewSession(
-        ::grpc::MessageAllocator< ::tunnelbroker::NewSessionRequest, ::tunnelbroker::NewSessionResponse>* allocator) {
-      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(1);
-      static_cast<::grpc::internal::CallbackUnaryHandler< ::tunnelbroker::NewSessionRequest, ::tunnelbroker::NewSessionResponse>*>(handler)
-              ->SetMessageAllocator(allocator);
-    }
-    ~WithCallbackMethod_NewSession() override {
-      BaseClassMustBeDerivedFromService(this);
-    }
-    // disable synchronous version of this method
-    ::grpc::Status NewSession(::grpc::ServerContext* /*context*/, const ::tunnelbroker::NewSessionRequest* /*request*/, ::tunnelbroker::NewSessionResponse* /*response*/) override {
-      abort();
-      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
-    }
-    virtual ::grpc::ServerUnaryReactor* NewSession(
-      ::grpc::CallbackServerContext* /*context*/, const ::tunnelbroker::NewSessionRequest* /*request*/, ::tunnelbroker::NewSessionResponse* /*response*/)  { return nullptr; }
-  };
-  template <class BaseClass>
-  class WithCallbackMethod_MessagesStream : public BaseClass {
-   private:
-    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
-   public:
-    WithCallbackMethod_MessagesStream() {
-      ::grpc::Service::MarkMethodCallback(2,
-          new ::grpc::internal::CallbackBidiHandler< ::tunnelbroker::MessageToTunnelbroker, ::tunnelbroker::MessageToClient>(
-            [this](
-                   ::grpc::CallbackServerContext* context) { return this->MessagesStream(context); }));
-    }
-    ~WithCallbackMethod_MessagesStream() override {
-      BaseClassMustBeDerivedFromService(this);
-    }
-    // disable synchronous version of this method
-    ::grpc::Status MessagesStream(::grpc::ServerContext* /*context*/, ::grpc::ServerReaderWriter< ::tunnelbroker::MessageToClient, ::tunnelbroker::MessageToTunnelbroker>* /*stream*/)  override {
-      abort();
-      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
-    }
-    virtual ::grpc::ServerBidiReactor< ::tunnelbroker::MessageToTunnelbroker, ::tunnelbroker::MessageToClient>* MessagesStream(
-      ::grpc::CallbackServerContext* /*context*/)
-      { return nullptr; }
-  };
-  typedef WithCallbackMethod_SessionSignature<WithCallbackMethod_NewSession<WithCallbackMethod_MessagesStream<Service > > > CallbackService;
-  typedef CallbackService ExperimentalCallbackService;
-  template <class BaseClass>
-  class WithGenericMethod_SessionSignature : public BaseClass {
-   private:
-    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
-   public:
-    WithGenericMethod_SessionSignature() {
-      ::grpc::Service::MarkMethodGeneric(0);
-    }
-    ~WithGenericMethod_SessionSignature() override {
-      BaseClassMustBeDerivedFromService(this);
-    }
-    // disable synchronous version of this method
-    ::grpc::Status SessionSignature(::grpc::ServerContext* /*context*/, const ::tunnelbroker::SessionSignatureRequest* /*request*/, ::tunnelbroker::SessionSignatureResponse* /*response*/) override {
-      abort();
-      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
-    }
-  };
-  template <class BaseClass>
-  class WithGenericMethod_NewSession : public BaseClass {
-   private:
-    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
-   public:
-    WithGenericMethod_NewSession() {
-      ::grpc::Service::MarkMethodGeneric(1);
-    }
-    ~WithGenericMethod_NewSession() override {
-      BaseClassMustBeDerivedFromService(this);
-    }
-    // disable synchronous version of this method
-    ::grpc::Status NewSession(::grpc::ServerContext* /*context*/, const ::tunnelbroker::NewSessionRequest* /*request*/, ::tunnelbroker::NewSessionResponse* /*response*/) override {
-      abort();
-      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
-    }
-  };
-  template <class BaseClass>
-  class WithGenericMethod_MessagesStream : public BaseClass {
-   private:
-    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
-   public:
-    WithGenericMethod_MessagesStream() {
-      ::grpc::Service::MarkMethodGeneric(2);
-    }
-    ~WithGenericMethod_MessagesStream() override {
-      BaseClassMustBeDerivedFromService(this);
-    }
-    // disable synchronous version of this method
-    ::grpc::Status MessagesStream(::grpc::ServerContext* /*context*/, ::grpc::ServerReaderWriter< ::tunnelbroker::MessageToClient, ::tunnelbroker::MessageToTunnelbroker>* /*stream*/)  override {
-      abort();
-      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
-    }
-  };
-  template <class BaseClass>
-  class WithRawMethod_SessionSignature : public BaseClass {
-   private:
-    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
-   public:
-    WithRawMethod_SessionSignature() {
-      ::grpc::Service::MarkMethodRaw(0);
-    }
-    ~WithRawMethod_SessionSignature() override {
-      BaseClassMustBeDerivedFromService(this);
-    }
-    // disable synchronous version of this method
-    ::grpc::Status SessionSignature(::grpc::ServerContext* /*context*/, const ::tunnelbroker::SessionSignatureRequest* /*request*/, ::tunnelbroker::SessionSignatureResponse* /*response*/) override {
-      abort();
-      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
-    }
-    void RequestSessionSignature(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
-      ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag);
-    }
-  };
-  template <class BaseClass>
-  class WithRawMethod_NewSession : public BaseClass {
-   private:
-    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
-   public:
-    WithRawMethod_NewSession() {
-      ::grpc::Service::MarkMethodRaw(1);
-    }
-    ~WithRawMethod_NewSession() override {
-      BaseClassMustBeDerivedFromService(this);
-    }
-    // disable synchronous version of this method
-    ::grpc::Status NewSession(::grpc::ServerContext* /*context*/, const ::tunnelbroker::NewSessionRequest* /*request*/, ::tunnelbroker::NewSessionResponse* /*response*/) override {
-      abort();
-      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
-    }
-    void RequestNewSession(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
-      ::grpc::Service::RequestAsyncUnary(1, context, request, response, new_call_cq, notification_cq, tag);
-    }
-  };
-  template <class BaseClass>
-  class WithRawMethod_MessagesStream : public BaseClass {
-   private:
-    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
-   public:
-    WithRawMethod_MessagesStream() {
-      ::grpc::Service::MarkMethodRaw(2);
-    }
-    ~WithRawMethod_MessagesStream() override {
-      BaseClassMustBeDerivedFromService(this);
-    }
-    // disable synchronous version of this method
-    ::grpc::Status MessagesStream(::grpc::ServerContext* /*context*/, ::grpc::ServerReaderWriter< ::tunnelbroker::MessageToClient, ::tunnelbroker::MessageToTunnelbroker>* /*stream*/)  override {
-      abort();
-      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
-    }
-    void RequestMessagesStream(::grpc::ServerContext* context, ::grpc::ServerAsyncReaderWriter< ::grpc::ByteBuffer, ::grpc::ByteBuffer>* stream, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
-      ::grpc::Service::RequestAsyncBidiStreaming(2, context, stream, new_call_cq, notification_cq, tag);
-    }
-  };
-  template <class BaseClass>
-  class WithRawCallbackMethod_SessionSignature : public BaseClass {
-   private:
-    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
-   public:
-    WithRawCallbackMethod_SessionSignature() {
-      ::grpc::Service::MarkMethodRawCallback(0,
-          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
-            [this](
-                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->SessionSignature(context, request, response); }));
-    }
-    ~WithRawCallbackMethod_SessionSignature() override {
-      BaseClassMustBeDerivedFromService(this);
-    }
-    // disable synchronous version of this method
-    ::grpc::Status SessionSignature(::grpc::ServerContext* /*context*/, const ::tunnelbroker::SessionSignatureRequest* /*request*/, ::tunnelbroker::SessionSignatureResponse* /*response*/) override {
-      abort();
-      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
-    }
-    virtual ::grpc::ServerUnaryReactor* SessionSignature(
-      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
-  };
-  template <class BaseClass>
-  class WithRawCallbackMethod_NewSession : public BaseClass {
-   private:
-    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
-   public:
-    WithRawCallbackMethod_NewSession() {
-      ::grpc::Service::MarkMethodRawCallback(1,
-          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
-            [this](
-                   ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->NewSession(context, request, response); }));
-    }
-    ~WithRawCallbackMethod_NewSession() override {
-      BaseClassMustBeDerivedFromService(this);
-    }
-    // disable synchronous version of this method
-    ::grpc::Status NewSession(::grpc::ServerContext* /*context*/, const ::tunnelbroker::NewSessionRequest* /*request*/, ::tunnelbroker::NewSessionResponse* /*response*/) override {
-      abort();
-      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
-    }
-    virtual ::grpc::ServerUnaryReactor* NewSession(
-      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)  { return nullptr; }
-  };
-  template <class BaseClass>
-  class WithRawCallbackMethod_MessagesStream : public BaseClass {
-   private:
-    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
-   public:
-    WithRawCallbackMethod_MessagesStream() {
-      ::grpc::Service::MarkMethodRawCallback(2,
-          new ::grpc::internal::CallbackBidiHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
-            [this](
-                   ::grpc::CallbackServerContext* context) { return this->MessagesStream(context); }));
-    }
-    ~WithRawCallbackMethod_MessagesStream() override {
-      BaseClassMustBeDerivedFromService(this);
-    }
-    // disable synchronous version of this method
-    ::grpc::Status MessagesStream(::grpc::ServerContext* /*context*/, ::grpc::ServerReaderWriter< ::tunnelbroker::MessageToClient, ::tunnelbroker::MessageToTunnelbroker>* /*stream*/)  override {
-      abort();
-      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
-    }
-    virtual ::grpc::ServerBidiReactor< ::grpc::ByteBuffer, ::grpc::ByteBuffer>* MessagesStream(
-      ::grpc::CallbackServerContext* /*context*/)
-      { return nullptr; }
-  };
-  template <class BaseClass>
-  class WithStreamedUnaryMethod_SessionSignature : public BaseClass {
-   private:
-    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
-   public:
-    WithStreamedUnaryMethod_SessionSignature() {
-      ::grpc::Service::MarkMethodStreamed(0,
-        new ::grpc::internal::StreamedUnaryHandler<
-          ::tunnelbroker::SessionSignatureRequest, ::tunnelbroker::SessionSignatureResponse>(
-            [this](::grpc::ServerContext* context,
-                   ::grpc::ServerUnaryStreamer<
-                     ::tunnelbroker::SessionSignatureRequest, ::tunnelbroker::SessionSignatureResponse>* streamer) {
-                       return this->StreamedSessionSignature(context,
-                         streamer);
-                  }));
-    }
-    ~WithStreamedUnaryMethod_SessionSignature() override {
-      BaseClassMustBeDerivedFromService(this);
-    }
-    // disable regular version of this method
-    ::grpc::Status SessionSignature(::grpc::ServerContext* /*context*/, const ::tunnelbroker::SessionSignatureRequest* /*request*/, ::tunnelbroker::SessionSignatureResponse* /*response*/) override {
-      abort();
-      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
-    }
-    // replace default version of method with streamed unary
-    virtual ::grpc::Status StreamedSessionSignature(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::tunnelbroker::SessionSignatureRequest,::tunnelbroker::SessionSignatureResponse>* server_unary_streamer) = 0;
-  };
-  template <class BaseClass>
-  class WithStreamedUnaryMethod_NewSession : public BaseClass {
-   private:
-    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
-   public:
-    WithStreamedUnaryMethod_NewSession() {
-      ::grpc::Service::MarkMethodStreamed(1,
-        new ::grpc::internal::StreamedUnaryHandler<
-          ::tunnelbroker::NewSessionRequest, ::tunnelbroker::NewSessionResponse>(
-            [this](::grpc::ServerContext* context,
-                   ::grpc::ServerUnaryStreamer<
-                     ::tunnelbroker::NewSessionRequest, ::tunnelbroker::NewSessionResponse>* streamer) {
-                       return this->StreamedNewSession(context,
-                         streamer);
-                  }));
-    }
-    ~WithStreamedUnaryMethod_NewSession() override {
-      BaseClassMustBeDerivedFromService(this);
-    }
-    // disable regular version of this method
-    ::grpc::Status NewSession(::grpc::ServerContext* /*context*/, const ::tunnelbroker::NewSessionRequest* /*request*/, ::tunnelbroker::NewSessionResponse* /*response*/) override {
-      abort();
-      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
-    }
-    // replace default version of method with streamed unary
-    virtual ::grpc::Status StreamedNewSession(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::tunnelbroker::NewSessionRequest,::tunnelbroker::NewSessionResponse>* server_unary_streamer) = 0;
-  };
-  typedef WithStreamedUnaryMethod_SessionSignature<WithStreamedUnaryMethod_NewSession<Service > > StreamedUnaryService;
-  typedef Service SplitStreamedService;
-  typedef WithStreamedUnaryMethod_SessionSignature<WithStreamedUnaryMethod_NewSession<Service > > StreamedService;
-};
-
-}  // namespace tunnelbroker
-
-
-#endif  // GRPC_tunnelbroker_2eproto__INCLUDED
diff --git a/shared/protos/_generated/tunnelbroker.grpc.pb.cc b/shared/protos/_generated/tunnelbroker.grpc.pb.cc
deleted file mode 100644
--- a/shared/protos/_generated/tunnelbroker.grpc.pb.cc
+++ /dev/null
@@ -1,162 +0,0 @@
-// @generated by the gRPC C++ plugin.
-// If you make any local change, they will be lost.
-// source: tunnelbroker.proto
-
-#include "tunnelbroker.pb.h"
-#include "tunnelbroker.grpc.pb.h"
-
-#include <functional>
-#include <grpcpp/impl/codegen/async_stream.h>
-#include <grpcpp/impl/codegen/async_unary_call.h>
-#include <grpcpp/impl/codegen/channel_interface.h>
-#include <grpcpp/impl/codegen/client_unary_call.h>
-#include <grpcpp/impl/codegen/client_callback.h>
-#include <grpcpp/impl/codegen/message_allocator.h>
-#include <grpcpp/impl/codegen/method_handler.h>
-#include <grpcpp/impl/codegen/rpc_service_method.h>
-#include <grpcpp/impl/codegen/server_callback.h>
-#include <grpcpp/impl/codegen/server_callback_handlers.h>
-#include <grpcpp/impl/codegen/server_context.h>
-#include <grpcpp/impl/codegen/service_type.h>
-#include <grpcpp/impl/codegen/sync_stream.h>
-namespace tunnelbroker {
-
-static const char* TunnelbrokerService_method_names[] = {
-  "/tunnelbroker.TunnelbrokerService/SessionSignature",
-  "/tunnelbroker.TunnelbrokerService/NewSession",
-  "/tunnelbroker.TunnelbrokerService/MessagesStream",
-};
-
-std::unique_ptr< TunnelbrokerService::Stub> TunnelbrokerService::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) {
-  (void)options;
-  std::unique_ptr< TunnelbrokerService::Stub> stub(new TunnelbrokerService::Stub(channel, options));
-  return stub;
-}
-
-TunnelbrokerService::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options)
-  : channel_(channel), rpcmethod_SessionSignature_(TunnelbrokerService_method_names[0], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
-  , rpcmethod_NewSession_(TunnelbrokerService_method_names[1], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
-  , rpcmethod_MessagesStream_(TunnelbrokerService_method_names[2], options.suffix_for_stats(),::grpc::internal::RpcMethod::BIDI_STREAMING, channel)
-  {}
-
-::grpc::Status TunnelbrokerService::Stub::SessionSignature(::grpc::ClientContext* context, const ::tunnelbroker::SessionSignatureRequest& request, ::tunnelbroker::SessionSignatureResponse* response) {
-  return ::grpc::internal::BlockingUnaryCall< ::tunnelbroker::SessionSignatureRequest, ::tunnelbroker::SessionSignatureResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_SessionSignature_, context, request, response);
-}
-
-void TunnelbrokerService::Stub::async::SessionSignature(::grpc::ClientContext* context, const ::tunnelbroker::SessionSignatureRequest* request, ::tunnelbroker::SessionSignatureResponse* response, std::function<void(::grpc::Status)> f) {
-  ::grpc::internal::CallbackUnaryCall< ::tunnelbroker::SessionSignatureRequest, ::tunnelbroker::SessionSignatureResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_SessionSignature_, context, request, response, std::move(f));
-}
-
-void TunnelbrokerService::Stub::async::SessionSignature(::grpc::ClientContext* context, const ::tunnelbroker::SessionSignatureRequest* request, ::tunnelbroker::SessionSignatureResponse* response, ::grpc::ClientUnaryReactor* reactor) {
-  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_SessionSignature_, context, request, response, reactor);
-}
-
-::grpc::ClientAsyncResponseReader< ::tunnelbroker::SessionSignatureResponse>* TunnelbrokerService::Stub::PrepareAsyncSessionSignatureRaw(::grpc::ClientContext* context, const ::tunnelbroker::SessionSignatureRequest& request, ::grpc::CompletionQueue* cq) {
-  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::tunnelbroker::SessionSignatureResponse, ::tunnelbroker::SessionSignatureRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_SessionSignature_, context, request);
-}
-
-::grpc::ClientAsyncResponseReader< ::tunnelbroker::SessionSignatureResponse>* TunnelbrokerService::Stub::AsyncSessionSignatureRaw(::grpc::ClientContext* context, const ::tunnelbroker::SessionSignatureRequest& request, ::grpc::CompletionQueue* cq) {
-  auto* result =
-    this->PrepareAsyncSessionSignatureRaw(context, request, cq);
-  result->StartCall();
-  return result;
-}
-
-::grpc::Status TunnelbrokerService::Stub::NewSession(::grpc::ClientContext* context, const ::tunnelbroker::NewSessionRequest& request, ::tunnelbroker::NewSessionResponse* response) {
-  return ::grpc::internal::BlockingUnaryCall< ::tunnelbroker::NewSessionRequest, ::tunnelbroker::NewSessionResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_NewSession_, context, request, response);
-}
-
-void TunnelbrokerService::Stub::async::NewSession(::grpc::ClientContext* context, const ::tunnelbroker::NewSessionRequest* request, ::tunnelbroker::NewSessionResponse* response, std::function<void(::grpc::Status)> f) {
-  ::grpc::internal::CallbackUnaryCall< ::tunnelbroker::NewSessionRequest, ::tunnelbroker::NewSessionResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_NewSession_, context, request, response, std::move(f));
-}
-
-void TunnelbrokerService::Stub::async::NewSession(::grpc::ClientContext* context, const ::tunnelbroker::NewSessionRequest* request, ::tunnelbroker::NewSessionResponse* response, ::grpc::ClientUnaryReactor* reactor) {
-  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_NewSession_, context, request, response, reactor);
-}
-
-::grpc::ClientAsyncResponseReader< ::tunnelbroker::NewSessionResponse>* TunnelbrokerService::Stub::PrepareAsyncNewSessionRaw(::grpc::ClientContext* context, const ::tunnelbroker::NewSessionRequest& request, ::grpc::CompletionQueue* cq) {
-  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::tunnelbroker::NewSessionResponse, ::tunnelbroker::NewSessionRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_NewSession_, context, request);
-}
-
-::grpc::ClientAsyncResponseReader< ::tunnelbroker::NewSessionResponse>* TunnelbrokerService::Stub::AsyncNewSessionRaw(::grpc::ClientContext* context, const ::tunnelbroker::NewSessionRequest& request, ::grpc::CompletionQueue* cq) {
-  auto* result =
-    this->PrepareAsyncNewSessionRaw(context, request, cq);
-  result->StartCall();
-  return result;
-}
-
-::grpc::ClientReaderWriter< ::tunnelbroker::MessageToTunnelbroker, ::tunnelbroker::MessageToClient>* TunnelbrokerService::Stub::MessagesStreamRaw(::grpc::ClientContext* context) {
-  return ::grpc::internal::ClientReaderWriterFactory< ::tunnelbroker::MessageToTunnelbroker, ::tunnelbroker::MessageToClient>::Create(channel_.get(), rpcmethod_MessagesStream_, context);
-}
-
-void TunnelbrokerService::Stub::async::MessagesStream(::grpc::ClientContext* context, ::grpc::ClientBidiReactor< ::tunnelbroker::MessageToTunnelbroker,::tunnelbroker::MessageToClient>* reactor) {
-  ::grpc::internal::ClientCallbackReaderWriterFactory< ::tunnelbroker::MessageToTunnelbroker,::tunnelbroker::MessageToClient>::Create(stub_->channel_.get(), stub_->rpcmethod_MessagesStream_, context, reactor);
-}
-
-::grpc::ClientAsyncReaderWriter< ::tunnelbroker::MessageToTunnelbroker, ::tunnelbroker::MessageToClient>* TunnelbrokerService::Stub::AsyncMessagesStreamRaw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) {
-  return ::grpc::internal::ClientAsyncReaderWriterFactory< ::tunnelbroker::MessageToTunnelbroker, ::tunnelbroker::MessageToClient>::Create(channel_.get(), cq, rpcmethod_MessagesStream_, context, true, tag);
-}
-
-::grpc::ClientAsyncReaderWriter< ::tunnelbroker::MessageToTunnelbroker, ::tunnelbroker::MessageToClient>* TunnelbrokerService::Stub::PrepareAsyncMessagesStreamRaw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq) {
-  return ::grpc::internal::ClientAsyncReaderWriterFactory< ::tunnelbroker::MessageToTunnelbroker, ::tunnelbroker::MessageToClient>::Create(channel_.get(), cq, rpcmethod_MessagesStream_, context, false, nullptr);
-}
-
-TunnelbrokerService::Service::Service() {
-  AddMethod(new ::grpc::internal::RpcServiceMethod(
-      TunnelbrokerService_method_names[0],
-      ::grpc::internal::RpcMethod::NORMAL_RPC,
-      new ::grpc::internal::RpcMethodHandler< TunnelbrokerService::Service, ::tunnelbroker::SessionSignatureRequest, ::tunnelbroker::SessionSignatureResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
-          [](TunnelbrokerService::Service* service,
-             ::grpc::ServerContext* ctx,
-             const ::tunnelbroker::SessionSignatureRequest* req,
-             ::tunnelbroker::SessionSignatureResponse* resp) {
-               return service->SessionSignature(ctx, req, resp);
-             }, this)));
-  AddMethod(new ::grpc::internal::RpcServiceMethod(
-      TunnelbrokerService_method_names[1],
-      ::grpc::internal::RpcMethod::NORMAL_RPC,
-      new ::grpc::internal::RpcMethodHandler< TunnelbrokerService::Service, ::tunnelbroker::NewSessionRequest, ::tunnelbroker::NewSessionResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
-          [](TunnelbrokerService::Service* service,
-             ::grpc::ServerContext* ctx,
-             const ::tunnelbroker::NewSessionRequest* req,
-             ::tunnelbroker::NewSessionResponse* resp) {
-               return service->NewSession(ctx, req, resp);
-             }, this)));
-  AddMethod(new ::grpc::internal::RpcServiceMethod(
-      TunnelbrokerService_method_names[2],
-      ::grpc::internal::RpcMethod::BIDI_STREAMING,
-      new ::grpc::internal::BidiStreamingHandler< TunnelbrokerService::Service, ::tunnelbroker::MessageToTunnelbroker, ::tunnelbroker::MessageToClient>(
-          [](TunnelbrokerService::Service* service,
-             ::grpc::ServerContext* ctx,
-             ::grpc::ServerReaderWriter<::tunnelbroker::MessageToClient,
-             ::tunnelbroker::MessageToTunnelbroker>* stream) {
-               return service->MessagesStream(ctx, stream);
-             }, this)));
-}
-
-TunnelbrokerService::Service::~Service() {
-}
-
-::grpc::Status TunnelbrokerService::Service::SessionSignature(::grpc::ServerContext* context, const ::tunnelbroker::SessionSignatureRequest* request, ::tunnelbroker::SessionSignatureResponse* response) {
-  (void) context;
-  (void) request;
-  (void) response;
-  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
-}
-
-::grpc::Status TunnelbrokerService::Service::NewSession(::grpc::ServerContext* context, const ::tunnelbroker::NewSessionRequest* request, ::tunnelbroker::NewSessionResponse* response) {
-  (void) context;
-  (void) request;
-  (void) response;
-  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
-}
-
-::grpc::Status TunnelbrokerService::Service::MessagesStream(::grpc::ServerContext* context, ::grpc::ServerReaderWriter< ::tunnelbroker::MessageToClient, ::tunnelbroker::MessageToTunnelbroker>* stream) {
-  (void) context;
-  (void) stream;
-  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
-}
-
-
-}  // namespace tunnelbroker
-
diff --git a/shared/protos/_generated/tunnelbroker.pb.h b/shared/protos/_generated/tunnelbroker.pb.h
deleted file mode 100644
--- a/shared/protos/_generated/tunnelbroker.pb.h
+++ /dev/null
@@ -1,3866 +0,0 @@
-// @generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: tunnelbroker.proto
-
-#ifndef GOOGLE_PROTOBUF_INCLUDED_tunnelbroker_2eproto
-#define GOOGLE_PROTOBUF_INCLUDED_tunnelbroker_2eproto
-
-#include <limits>
-#include <string>
-
-#include <google/protobuf/port_def.inc>
-#if PROTOBUF_VERSION < 3015000
-#error This file was generated by a newer version of protoc which is
-#error incompatible with your Protocol Buffer headers. Please update
-#error your headers.
-#endif
-#if 3015008 < PROTOBUF_MIN_PROTOC_VERSION
-#error This file was generated by an older version of protoc which is
-#error incompatible with your Protocol Buffer headers. Please
-#error regenerate this file with a newer version of protoc.
-#endif
-
-#include <google/protobuf/port_undef.inc>
-#include <google/protobuf/io/coded_stream.h>
-#include <google/protobuf/arena.h>
-#include <google/protobuf/arenastring.h>
-#include <google/protobuf/generated_message_table_driven.h>
-#include <google/protobuf/generated_message_util.h>
-#include <google/protobuf/metadata_lite.h>
-#include <google/protobuf/generated_message_reflection.h>
-#include <google/protobuf/message.h>
-#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
-#include <google/protobuf/extension_set.h>  // IWYU pragma: export
-#include <google/protobuf/generated_enum_reflection.h>
-#include <google/protobuf/unknown_field_set.h>
-#include <google/protobuf/empty.pb.h>
-// @@protoc_insertion_point(includes)
-#include <google/protobuf/port_def.inc>
-#define PROTOBUF_INTERNAL_EXPORT_tunnelbroker_2eproto
-PROTOBUF_NAMESPACE_OPEN
-namespace internal {
-class AnyMetadata;
-}  // namespace internal
-PROTOBUF_NAMESPACE_CLOSE
-
-// Internal implementation detail -- do not use these members.
-struct TableStruct_tunnelbroker_2eproto {
-  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxiliaryParseTableField aux[]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[11]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
-  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
-  static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[];
-};
-extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_tunnelbroker_2eproto;
-::PROTOBUF_NAMESPACE_ID::Metadata descriptor_table_tunnelbroker_2eproto_metadata_getter(int index);
-namespace tunnelbroker {
-class MessageToClient;
-struct MessageToClientDefaultTypeInternal;
-extern MessageToClientDefaultTypeInternal _MessageToClient_default_instance_;
-class MessageToClientStruct;
-struct MessageToClientStructDefaultTypeInternal;
-extern MessageToClientStructDefaultTypeInternal _MessageToClientStruct_default_instance_;
-class MessageToTunnelbroker;
-struct MessageToTunnelbrokerDefaultTypeInternal;
-extern MessageToTunnelbrokerDefaultTypeInternal _MessageToTunnelbroker_default_instance_;
-class MessageToTunnelbrokerStruct;
-struct MessageToTunnelbrokerStructDefaultTypeInternal;
-extern MessageToTunnelbrokerStructDefaultTypeInternal _MessageToTunnelbrokerStruct_default_instance_;
-class MessagesToDeliver;
-struct MessagesToDeliverDefaultTypeInternal;
-extern MessagesToDeliverDefaultTypeInternal _MessagesToDeliver_default_instance_;
-class MessagesToSend;
-struct MessagesToSendDefaultTypeInternal;
-extern MessagesToSendDefaultTypeInternal _MessagesToSend_default_instance_;
-class NewSessionRequest;
-struct NewSessionRequestDefaultTypeInternal;
-extern NewSessionRequestDefaultTypeInternal _NewSessionRequest_default_instance_;
-class NewSessionResponse;
-struct NewSessionResponseDefaultTypeInternal;
-extern NewSessionResponseDefaultTypeInternal _NewSessionResponse_default_instance_;
-class ProcessedMessages;
-struct ProcessedMessagesDefaultTypeInternal;
-extern ProcessedMessagesDefaultTypeInternal _ProcessedMessages_default_instance_;
-class SessionSignatureRequest;
-struct SessionSignatureRequestDefaultTypeInternal;
-extern SessionSignatureRequestDefaultTypeInternal _SessionSignatureRequest_default_instance_;
-class SessionSignatureResponse;
-struct SessionSignatureResponseDefaultTypeInternal;
-extern SessionSignatureResponseDefaultTypeInternal _SessionSignatureResponse_default_instance_;
-}  // namespace tunnelbroker
-PROTOBUF_NAMESPACE_OPEN
-template<> ::tunnelbroker::MessageToClient* Arena::CreateMaybeMessage<::tunnelbroker::MessageToClient>(Arena*);
-template<> ::tunnelbroker::MessageToClientStruct* Arena::CreateMaybeMessage<::tunnelbroker::MessageToClientStruct>(Arena*);
-template<> ::tunnelbroker::MessageToTunnelbroker* Arena::CreateMaybeMessage<::tunnelbroker::MessageToTunnelbroker>(Arena*);
-template<> ::tunnelbroker::MessageToTunnelbrokerStruct* Arena::CreateMaybeMessage<::tunnelbroker::MessageToTunnelbrokerStruct>(Arena*);
-template<> ::tunnelbroker::MessagesToDeliver* Arena::CreateMaybeMessage<::tunnelbroker::MessagesToDeliver>(Arena*);
-template<> ::tunnelbroker::MessagesToSend* Arena::CreateMaybeMessage<::tunnelbroker::MessagesToSend>(Arena*);
-template<> ::tunnelbroker::NewSessionRequest* Arena::CreateMaybeMessage<::tunnelbroker::NewSessionRequest>(Arena*);
-template<> ::tunnelbroker::NewSessionResponse* Arena::CreateMaybeMessage<::tunnelbroker::NewSessionResponse>(Arena*);
-template<> ::tunnelbroker::ProcessedMessages* Arena::CreateMaybeMessage<::tunnelbroker::ProcessedMessages>(Arena*);
-template<> ::tunnelbroker::SessionSignatureRequest* Arena::CreateMaybeMessage<::tunnelbroker::SessionSignatureRequest>(Arena*);
-template<> ::tunnelbroker::SessionSignatureResponse* Arena::CreateMaybeMessage<::tunnelbroker::SessionSignatureResponse>(Arena*);
-PROTOBUF_NAMESPACE_CLOSE
-namespace tunnelbroker {
-
-enum NewSessionRequest_DeviceTypes : int {
-  NewSessionRequest_DeviceTypes_MOBILE = 0,
-  NewSessionRequest_DeviceTypes_WEB = 1,
-  NewSessionRequest_DeviceTypes_KEYSERVER = 2,
-  NewSessionRequest_DeviceTypes_NewSessionRequest_DeviceTypes_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
-  NewSessionRequest_DeviceTypes_NewSessionRequest_DeviceTypes_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
-};
-bool NewSessionRequest_DeviceTypes_IsValid(int value);
-constexpr NewSessionRequest_DeviceTypes NewSessionRequest_DeviceTypes_DeviceTypes_MIN = NewSessionRequest_DeviceTypes_MOBILE;
-constexpr NewSessionRequest_DeviceTypes NewSessionRequest_DeviceTypes_DeviceTypes_MAX = NewSessionRequest_DeviceTypes_KEYSERVER;
-constexpr int NewSessionRequest_DeviceTypes_DeviceTypes_ARRAYSIZE = NewSessionRequest_DeviceTypes_DeviceTypes_MAX + 1;
-
-const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* NewSessionRequest_DeviceTypes_descriptor();
-template<typename T>
-inline const std::string& NewSessionRequest_DeviceTypes_Name(T enum_t_value) {
-  static_assert(::std::is_same<T, NewSessionRequest_DeviceTypes>::value ||
-    ::std::is_integral<T>::value,
-    "Incorrect type passed to function NewSessionRequest_DeviceTypes_Name.");
-  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
-    NewSessionRequest_DeviceTypes_descriptor(), enum_t_value);
-}
-inline bool NewSessionRequest_DeviceTypes_Parse(
-    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, NewSessionRequest_DeviceTypes* value) {
-  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<NewSessionRequest_DeviceTypes>(
-    NewSessionRequest_DeviceTypes_descriptor(), name, value);
-}
-// ===================================================================
-
-class SessionSignatureRequest PROTOBUF_FINAL :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:tunnelbroker.SessionSignatureRequest) */ {
- public:
-  inline SessionSignatureRequest() : SessionSignatureRequest(nullptr) {}
-  virtual ~SessionSignatureRequest();
-  explicit constexpr SessionSignatureRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
-
-  SessionSignatureRequest(const SessionSignatureRequest& from);
-  SessionSignatureRequest(SessionSignatureRequest&& from) noexcept
-    : SessionSignatureRequest() {
-    *this = ::std::move(from);
-  }
-
-  inline SessionSignatureRequest& operator=(const SessionSignatureRequest& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline SessionSignatureRequest& operator=(SessionSignatureRequest&& from) noexcept {
-    if (GetArena() == from.GetArena()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
-    return GetDescriptor();
-  }
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
-    return GetMetadataStatic().descriptor;
-  }
-  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
-    return GetMetadataStatic().reflection;
-  }
-  static const SessionSignatureRequest& default_instance() {
-    return *internal_default_instance();
-  }
-  static inline const SessionSignatureRequest* internal_default_instance() {
-    return reinterpret_cast<const SessionSignatureRequest*>(
-               &_SessionSignatureRequest_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    0;
-
-  friend void swap(SessionSignatureRequest& a, SessionSignatureRequest& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(SessionSignatureRequest* other) {
-    if (other == this) return;
-    if (GetArena() == other->GetArena()) {
-      InternalSwap(other);
-    } else {
-      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
-    }
-  }
-  void UnsafeArenaSwap(SessionSignatureRequest* other) {
-    if (other == this) return;
-    GOOGLE_DCHECK(GetArena() == other->GetArena());
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline SessionSignatureRequest* New() const final {
-    return CreateMaybeMessage<SessionSignatureRequest>(nullptr);
-  }
-
-  SessionSignatureRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<SessionSignatureRequest>(arena);
-  }
-  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
-  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
-  void CopyFrom(const SessionSignatureRequest& from);
-  void MergeFrom(const SessionSignatureRequest& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(SessionSignatureRequest* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "tunnelbroker.SessionSignatureRequest";
-  }
-  protected:
-  explicit SessionSignatureRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena);
-  private:
-  static void ArenaDtor(void* object);
-  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
-  public:
-
-  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
-  private:
-  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
-    return ::descriptor_table_tunnelbroker_2eproto_metadata_getter(kIndexInFileMessages);
-  }
-
-  public:
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kDeviceIDFieldNumber = 1,
-  };
-  // string deviceID = 1;
-  void clear_deviceid();
-  const std::string& deviceid() const;
-  void set_deviceid(const std::string& value);
-  void set_deviceid(std::string&& value);
-  void set_deviceid(const char* value);
-  void set_deviceid(const char* value, size_t size);
-  std::string* mutable_deviceid();
-  std::string* release_deviceid();
-  void set_allocated_deviceid(std::string* deviceid);
-  private:
-  const std::string& _internal_deviceid() const;
-  void _internal_set_deviceid(const std::string& value);
-  std::string* _internal_mutable_deviceid();
-  public:
-
-  // @@protoc_insertion_point(class_scope:tunnelbroker.SessionSignatureRequest)
- private:
-  class _Internal;
-
-  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
-  typedef void InternalArenaConstructable_;
-  typedef void DestructorSkippable_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr deviceid_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_tunnelbroker_2eproto;
-};
-// -------------------------------------------------------------------
-
-class SessionSignatureResponse PROTOBUF_FINAL :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:tunnelbroker.SessionSignatureResponse) */ {
- public:
-  inline SessionSignatureResponse() : SessionSignatureResponse(nullptr) {}
-  virtual ~SessionSignatureResponse();
-  explicit constexpr SessionSignatureResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
-
-  SessionSignatureResponse(const SessionSignatureResponse& from);
-  SessionSignatureResponse(SessionSignatureResponse&& from) noexcept
-    : SessionSignatureResponse() {
-    *this = ::std::move(from);
-  }
-
-  inline SessionSignatureResponse& operator=(const SessionSignatureResponse& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline SessionSignatureResponse& operator=(SessionSignatureResponse&& from) noexcept {
-    if (GetArena() == from.GetArena()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
-    return GetDescriptor();
-  }
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
-    return GetMetadataStatic().descriptor;
-  }
-  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
-    return GetMetadataStatic().reflection;
-  }
-  static const SessionSignatureResponse& default_instance() {
-    return *internal_default_instance();
-  }
-  static inline const SessionSignatureResponse* internal_default_instance() {
-    return reinterpret_cast<const SessionSignatureResponse*>(
-               &_SessionSignatureResponse_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    1;
-
-  friend void swap(SessionSignatureResponse& a, SessionSignatureResponse& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(SessionSignatureResponse* other) {
-    if (other == this) return;
-    if (GetArena() == other->GetArena()) {
-      InternalSwap(other);
-    } else {
-      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
-    }
-  }
-  void UnsafeArenaSwap(SessionSignatureResponse* other) {
-    if (other == this) return;
-    GOOGLE_DCHECK(GetArena() == other->GetArena());
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline SessionSignatureResponse* New() const final {
-    return CreateMaybeMessage<SessionSignatureResponse>(nullptr);
-  }
-
-  SessionSignatureResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<SessionSignatureResponse>(arena);
-  }
-  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
-  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
-  void CopyFrom(const SessionSignatureResponse& from);
-  void MergeFrom(const SessionSignatureResponse& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(SessionSignatureResponse* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "tunnelbroker.SessionSignatureResponse";
-  }
-  protected:
-  explicit SessionSignatureResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
-  private:
-  static void ArenaDtor(void* object);
-  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
-  public:
-
-  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
-  private:
-  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
-    return ::descriptor_table_tunnelbroker_2eproto_metadata_getter(kIndexInFileMessages);
-  }
-
-  public:
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kToSignFieldNumber = 1,
-  };
-  // string toSign = 1;
-  void clear_tosign();
-  const std::string& tosign() const;
-  void set_tosign(const std::string& value);
-  void set_tosign(std::string&& value);
-  void set_tosign(const char* value);
-  void set_tosign(const char* value, size_t size);
-  std::string* mutable_tosign();
-  std::string* release_tosign();
-  void set_allocated_tosign(std::string* tosign);
-  private:
-  const std::string& _internal_tosign() const;
-  void _internal_set_tosign(const std::string& value);
-  std::string* _internal_mutable_tosign();
-  public:
-
-  // @@protoc_insertion_point(class_scope:tunnelbroker.SessionSignatureResponse)
- private:
-  class _Internal;
-
-  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
-  typedef void InternalArenaConstructable_;
-  typedef void DestructorSkippable_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr tosign_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_tunnelbroker_2eproto;
-};
-// -------------------------------------------------------------------
-
-class NewSessionRequest PROTOBUF_FINAL :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:tunnelbroker.NewSessionRequest) */ {
- public:
-  inline NewSessionRequest() : NewSessionRequest(nullptr) {}
-  virtual ~NewSessionRequest();
-  explicit constexpr NewSessionRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
-
-  NewSessionRequest(const NewSessionRequest& from);
-  NewSessionRequest(NewSessionRequest&& from) noexcept
-    : NewSessionRequest() {
-    *this = ::std::move(from);
-  }
-
-  inline NewSessionRequest& operator=(const NewSessionRequest& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline NewSessionRequest& operator=(NewSessionRequest&& from) noexcept {
-    if (GetArena() == from.GetArena()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
-    return GetDescriptor();
-  }
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
-    return GetMetadataStatic().descriptor;
-  }
-  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
-    return GetMetadataStatic().reflection;
-  }
-  static const NewSessionRequest& default_instance() {
-    return *internal_default_instance();
-  }
-  static inline const NewSessionRequest* internal_default_instance() {
-    return reinterpret_cast<const NewSessionRequest*>(
-               &_NewSessionRequest_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    2;
-
-  friend void swap(NewSessionRequest& a, NewSessionRequest& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(NewSessionRequest* other) {
-    if (other == this) return;
-    if (GetArena() == other->GetArena()) {
-      InternalSwap(other);
-    } else {
-      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
-    }
-  }
-  void UnsafeArenaSwap(NewSessionRequest* other) {
-    if (other == this) return;
-    GOOGLE_DCHECK(GetArena() == other->GetArena());
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline NewSessionRequest* New() const final {
-    return CreateMaybeMessage<NewSessionRequest>(nullptr);
-  }
-
-  NewSessionRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<NewSessionRequest>(arena);
-  }
-  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
-  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
-  void CopyFrom(const NewSessionRequest& from);
-  void MergeFrom(const NewSessionRequest& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(NewSessionRequest* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "tunnelbroker.NewSessionRequest";
-  }
-  protected:
-  explicit NewSessionRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena);
-  private:
-  static void ArenaDtor(void* object);
-  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
-  public:
-
-  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
-  private:
-  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
-    return ::descriptor_table_tunnelbroker_2eproto_metadata_getter(kIndexInFileMessages);
-  }
-
-  public:
-
-  // nested types ----------------------------------------------------
-
-  typedef NewSessionRequest_DeviceTypes DeviceTypes;
-  static constexpr DeviceTypes MOBILE =
-    NewSessionRequest_DeviceTypes_MOBILE;
-  static constexpr DeviceTypes WEB =
-    NewSessionRequest_DeviceTypes_WEB;
-  static constexpr DeviceTypes KEYSERVER =
-    NewSessionRequest_DeviceTypes_KEYSERVER;
-  static inline bool DeviceTypes_IsValid(int value) {
-    return NewSessionRequest_DeviceTypes_IsValid(value);
-  }
-  static constexpr DeviceTypes DeviceTypes_MIN =
-    NewSessionRequest_DeviceTypes_DeviceTypes_MIN;
-  static constexpr DeviceTypes DeviceTypes_MAX =
-    NewSessionRequest_DeviceTypes_DeviceTypes_MAX;
-  static constexpr int DeviceTypes_ARRAYSIZE =
-    NewSessionRequest_DeviceTypes_DeviceTypes_ARRAYSIZE;
-  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
-  DeviceTypes_descriptor() {
-    return NewSessionRequest_DeviceTypes_descriptor();
-  }
-  template<typename T>
-  static inline const std::string& DeviceTypes_Name(T enum_t_value) {
-    static_assert(::std::is_same<T, DeviceTypes>::value ||
-      ::std::is_integral<T>::value,
-      "Incorrect type passed to function DeviceTypes_Name.");
-    return NewSessionRequest_DeviceTypes_Name(enum_t_value);
-  }
-  static inline bool DeviceTypes_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
-      DeviceTypes* value) {
-    return NewSessionRequest_DeviceTypes_Parse(name, value);
-  }
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kDeviceIDFieldNumber = 1,
-    kPublicKeyFieldNumber = 2,
-    kSignatureFieldNumber = 3,
-    kNotifyTokenFieldNumber = 4,
-    kDeviceAppVersionFieldNumber = 6,
-    kDeviceOSFieldNumber = 7,
-    kDeviceTypeFieldNumber = 5,
-  };
-  // string deviceID = 1;
-  void clear_deviceid();
-  const std::string& deviceid() const;
-  void set_deviceid(const std::string& value);
-  void set_deviceid(std::string&& value);
-  void set_deviceid(const char* value);
-  void set_deviceid(const char* value, size_t size);
-  std::string* mutable_deviceid();
-  std::string* release_deviceid();
-  void set_allocated_deviceid(std::string* deviceid);
-  private:
-  const std::string& _internal_deviceid() const;
-  void _internal_set_deviceid(const std::string& value);
-  std::string* _internal_mutable_deviceid();
-  public:
-
-  // string publicKey = 2;
-  void clear_publickey();
-  const std::string& publickey() const;
-  void set_publickey(const std::string& value);
-  void set_publickey(std::string&& value);
-  void set_publickey(const char* value);
-  void set_publickey(const char* value, size_t size);
-  std::string* mutable_publickey();
-  std::string* release_publickey();
-  void set_allocated_publickey(std::string* publickey);
-  private:
-  const std::string& _internal_publickey() const;
-  void _internal_set_publickey(const std::string& value);
-  std::string* _internal_mutable_publickey();
-  public:
-
-  // string signature = 3;
-  void clear_signature();
-  const std::string& signature() const;
-  void set_signature(const std::string& value);
-  void set_signature(std::string&& value);
-  void set_signature(const char* value);
-  void set_signature(const char* value, size_t size);
-  std::string* mutable_signature();
-  std::string* release_signature();
-  void set_allocated_signature(std::string* signature);
-  private:
-  const std::string& _internal_signature() const;
-  void _internal_set_signature(const std::string& value);
-  std::string* _internal_mutable_signature();
-  public:
-
-  // string notifyToken = 4;
-  bool has_notifytoken() const;
-  private:
-  bool _internal_has_notifytoken() const;
-  public:
-  void clear_notifytoken();
-  const std::string& notifytoken() const;
-  void set_notifytoken(const std::string& value);
-  void set_notifytoken(std::string&& value);
-  void set_notifytoken(const char* value);
-  void set_notifytoken(const char* value, size_t size);
-  std::string* mutable_notifytoken();
-  std::string* release_notifytoken();
-  void set_allocated_notifytoken(std::string* notifytoken);
-  private:
-  const std::string& _internal_notifytoken() const;
-  void _internal_set_notifytoken(const std::string& value);
-  std::string* _internal_mutable_notifytoken();
-  public:
-
-  // string deviceAppVersion = 6;
-  void clear_deviceappversion();
-  const std::string& deviceappversion() const;
-  void set_deviceappversion(const std::string& value);
-  void set_deviceappversion(std::string&& value);
-  void set_deviceappversion(const char* value);
-  void set_deviceappversion(const char* value, size_t size);
-  std::string* mutable_deviceappversion();
-  std::string* release_deviceappversion();
-  void set_allocated_deviceappversion(std::string* deviceappversion);
-  private:
-  const std::string& _internal_deviceappversion() const;
-  void _internal_set_deviceappversion(const std::string& value);
-  std::string* _internal_mutable_deviceappversion();
-  public:
-
-  // string deviceOS = 7;
-  void clear_deviceos();
-  const std::string& deviceos() const;
-  void set_deviceos(const std::string& value);
-  void set_deviceos(std::string&& value);
-  void set_deviceos(const char* value);
-  void set_deviceos(const char* value, size_t size);
-  std::string* mutable_deviceos();
-  std::string* release_deviceos();
-  void set_allocated_deviceos(std::string* deviceos);
-  private:
-  const std::string& _internal_deviceos() const;
-  void _internal_set_deviceos(const std::string& value);
-  std::string* _internal_mutable_deviceos();
-  public:
-
-  // .tunnelbroker.NewSessionRequest.DeviceTypes deviceType = 5;
-  void clear_devicetype();
-  ::tunnelbroker::NewSessionRequest_DeviceTypes devicetype() const;
-  void set_devicetype(::tunnelbroker::NewSessionRequest_DeviceTypes value);
-  private:
-  ::tunnelbroker::NewSessionRequest_DeviceTypes _internal_devicetype() const;
-  void _internal_set_devicetype(::tunnelbroker::NewSessionRequest_DeviceTypes value);
-  public:
-
-  // @@protoc_insertion_point(class_scope:tunnelbroker.NewSessionRequest)
- private:
-  class _Internal;
-
-  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
-  typedef void InternalArenaConstructable_;
-  typedef void DestructorSkippable_;
-  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr deviceid_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr publickey_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr signature_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr notifytoken_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr deviceappversion_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr deviceos_;
-  int devicetype_;
-  friend struct ::TableStruct_tunnelbroker_2eproto;
-};
-// -------------------------------------------------------------------
-
-class NewSessionResponse PROTOBUF_FINAL :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:tunnelbroker.NewSessionResponse) */ {
- public:
-  inline NewSessionResponse() : NewSessionResponse(nullptr) {}
-  virtual ~NewSessionResponse();
-  explicit constexpr NewSessionResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
-
-  NewSessionResponse(const NewSessionResponse& from);
-  NewSessionResponse(NewSessionResponse&& from) noexcept
-    : NewSessionResponse() {
-    *this = ::std::move(from);
-  }
-
-  inline NewSessionResponse& operator=(const NewSessionResponse& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline NewSessionResponse& operator=(NewSessionResponse&& from) noexcept {
-    if (GetArena() == from.GetArena()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
-    return GetDescriptor();
-  }
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
-    return GetMetadataStatic().descriptor;
-  }
-  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
-    return GetMetadataStatic().reflection;
-  }
-  static const NewSessionResponse& default_instance() {
-    return *internal_default_instance();
-  }
-  static inline const NewSessionResponse* internal_default_instance() {
-    return reinterpret_cast<const NewSessionResponse*>(
-               &_NewSessionResponse_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    3;
-
-  friend void swap(NewSessionResponse& a, NewSessionResponse& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(NewSessionResponse* other) {
-    if (other == this) return;
-    if (GetArena() == other->GetArena()) {
-      InternalSwap(other);
-    } else {
-      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
-    }
-  }
-  void UnsafeArenaSwap(NewSessionResponse* other) {
-    if (other == this) return;
-    GOOGLE_DCHECK(GetArena() == other->GetArena());
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline NewSessionResponse* New() const final {
-    return CreateMaybeMessage<NewSessionResponse>(nullptr);
-  }
-
-  NewSessionResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<NewSessionResponse>(arena);
-  }
-  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
-  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
-  void CopyFrom(const NewSessionResponse& from);
-  void MergeFrom(const NewSessionResponse& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(NewSessionResponse* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "tunnelbroker.NewSessionResponse";
-  }
-  protected:
-  explicit NewSessionResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
-  private:
-  static void ArenaDtor(void* object);
-  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
-  public:
-
-  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
-  private:
-  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
-    return ::descriptor_table_tunnelbroker_2eproto_metadata_getter(kIndexInFileMessages);
-  }
-
-  public:
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kSessionIDFieldNumber = 1,
-  };
-  // string sessionID = 1;
-  void clear_sessionid();
-  const std::string& sessionid() const;
-  void set_sessionid(const std::string& value);
-  void set_sessionid(std::string&& value);
-  void set_sessionid(const char* value);
-  void set_sessionid(const char* value, size_t size);
-  std::string* mutable_sessionid();
-  std::string* release_sessionid();
-  void set_allocated_sessionid(std::string* sessionid);
-  private:
-  const std::string& _internal_sessionid() const;
-  void _internal_set_sessionid(const std::string& value);
-  std::string* _internal_mutable_sessionid();
-  public:
-
-  // @@protoc_insertion_point(class_scope:tunnelbroker.NewSessionResponse)
- private:
-  class _Internal;
-
-  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
-  typedef void InternalArenaConstructable_;
-  typedef void DestructorSkippable_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr sessionid_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_tunnelbroker_2eproto;
-};
-// -------------------------------------------------------------------
-
-class ProcessedMessages PROTOBUF_FINAL :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:tunnelbroker.ProcessedMessages) */ {
- public:
-  inline ProcessedMessages() : ProcessedMessages(nullptr) {}
-  virtual ~ProcessedMessages();
-  explicit constexpr ProcessedMessages(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
-
-  ProcessedMessages(const ProcessedMessages& from);
-  ProcessedMessages(ProcessedMessages&& from) noexcept
-    : ProcessedMessages() {
-    *this = ::std::move(from);
-  }
-
-  inline ProcessedMessages& operator=(const ProcessedMessages& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline ProcessedMessages& operator=(ProcessedMessages&& from) noexcept {
-    if (GetArena() == from.GetArena()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
-    return GetDescriptor();
-  }
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
-    return GetMetadataStatic().descriptor;
-  }
-  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
-    return GetMetadataStatic().reflection;
-  }
-  static const ProcessedMessages& default_instance() {
-    return *internal_default_instance();
-  }
-  static inline const ProcessedMessages* internal_default_instance() {
-    return reinterpret_cast<const ProcessedMessages*>(
-               &_ProcessedMessages_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    4;
-
-  friend void swap(ProcessedMessages& a, ProcessedMessages& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(ProcessedMessages* other) {
-    if (other == this) return;
-    if (GetArena() == other->GetArena()) {
-      InternalSwap(other);
-    } else {
-      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
-    }
-  }
-  void UnsafeArenaSwap(ProcessedMessages* other) {
-    if (other == this) return;
-    GOOGLE_DCHECK(GetArena() == other->GetArena());
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline ProcessedMessages* New() const final {
-    return CreateMaybeMessage<ProcessedMessages>(nullptr);
-  }
-
-  ProcessedMessages* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<ProcessedMessages>(arena);
-  }
-  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
-  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
-  void CopyFrom(const ProcessedMessages& from);
-  void MergeFrom(const ProcessedMessages& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(ProcessedMessages* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "tunnelbroker.ProcessedMessages";
-  }
-  protected:
-  explicit ProcessedMessages(::PROTOBUF_NAMESPACE_ID::Arena* arena);
-  private:
-  static void ArenaDtor(void* object);
-  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
-  public:
-
-  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
-  private:
-  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
-    return ::descriptor_table_tunnelbroker_2eproto_metadata_getter(kIndexInFileMessages);
-  }
-
-  public:
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kMessageIDFieldNumber = 1,
-  };
-  // repeated string messageID = 1;
-  int messageid_size() const;
-  private:
-  int _internal_messageid_size() const;
-  public:
-  void clear_messageid();
-  const std::string& messageid(int index) const;
-  std::string* mutable_messageid(int index);
-  void set_messageid(int index, const std::string& value);
-  void set_messageid(int index, std::string&& value);
-  void set_messageid(int index, const char* value);
-  void set_messageid(int index, const char* value, size_t size);
-  std::string* add_messageid();
-  void add_messageid(const std::string& value);
-  void add_messageid(std::string&& value);
-  void add_messageid(const char* value);
-  void add_messageid(const char* value, size_t size);
-  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& messageid() const;
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_messageid();
-  private:
-  const std::string& _internal_messageid(int index) const;
-  std::string* _internal_add_messageid();
-  public:
-
-  // @@protoc_insertion_point(class_scope:tunnelbroker.ProcessedMessages)
- private:
-  class _Internal;
-
-  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
-  typedef void InternalArenaConstructable_;
-  typedef void DestructorSkippable_;
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> messageid_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_tunnelbroker_2eproto;
-};
-// -------------------------------------------------------------------
-
-class MessageToTunnelbrokerStruct PROTOBUF_FINAL :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:tunnelbroker.MessageToTunnelbrokerStruct) */ {
- public:
-  inline MessageToTunnelbrokerStruct() : MessageToTunnelbrokerStruct(nullptr) {}
-  virtual ~MessageToTunnelbrokerStruct();
-  explicit constexpr MessageToTunnelbrokerStruct(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
-
-  MessageToTunnelbrokerStruct(const MessageToTunnelbrokerStruct& from);
-  MessageToTunnelbrokerStruct(MessageToTunnelbrokerStruct&& from) noexcept
-    : MessageToTunnelbrokerStruct() {
-    *this = ::std::move(from);
-  }
-
-  inline MessageToTunnelbrokerStruct& operator=(const MessageToTunnelbrokerStruct& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline MessageToTunnelbrokerStruct& operator=(MessageToTunnelbrokerStruct&& from) noexcept {
-    if (GetArena() == from.GetArena()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
-    return GetDescriptor();
-  }
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
-    return GetMetadataStatic().descriptor;
-  }
-  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
-    return GetMetadataStatic().reflection;
-  }
-  static const MessageToTunnelbrokerStruct& default_instance() {
-    return *internal_default_instance();
-  }
-  static inline const MessageToTunnelbrokerStruct* internal_default_instance() {
-    return reinterpret_cast<const MessageToTunnelbrokerStruct*>(
-               &_MessageToTunnelbrokerStruct_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    5;
-
-  friend void swap(MessageToTunnelbrokerStruct& a, MessageToTunnelbrokerStruct& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(MessageToTunnelbrokerStruct* other) {
-    if (other == this) return;
-    if (GetArena() == other->GetArena()) {
-      InternalSwap(other);
-    } else {
-      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
-    }
-  }
-  void UnsafeArenaSwap(MessageToTunnelbrokerStruct* other) {
-    if (other == this) return;
-    GOOGLE_DCHECK(GetArena() == other->GetArena());
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline MessageToTunnelbrokerStruct* New() const final {
-    return CreateMaybeMessage<MessageToTunnelbrokerStruct>(nullptr);
-  }
-
-  MessageToTunnelbrokerStruct* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<MessageToTunnelbrokerStruct>(arena);
-  }
-  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
-  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
-  void CopyFrom(const MessageToTunnelbrokerStruct& from);
-  void MergeFrom(const MessageToTunnelbrokerStruct& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(MessageToTunnelbrokerStruct* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "tunnelbroker.MessageToTunnelbrokerStruct";
-  }
-  protected:
-  explicit MessageToTunnelbrokerStruct(::PROTOBUF_NAMESPACE_ID::Arena* arena);
-  private:
-  static void ArenaDtor(void* object);
-  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
-  public:
-
-  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
-  private:
-  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
-    return ::descriptor_table_tunnelbroker_2eproto_metadata_getter(kIndexInFileMessages);
-  }
-
-  public:
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kBlobHashesFieldNumber = 3,
-    kToDeviceIDFieldNumber = 1,
-    kPayloadFieldNumber = 2,
-  };
-  // repeated string blobHashes = 3;
-  int blobhashes_size() const;
-  private:
-  int _internal_blobhashes_size() const;
-  public:
-  void clear_blobhashes();
-  const std::string& blobhashes(int index) const;
-  std::string* mutable_blobhashes(int index);
-  void set_blobhashes(int index, const std::string& value);
-  void set_blobhashes(int index, std::string&& value);
-  void set_blobhashes(int index, const char* value);
-  void set_blobhashes(int index, const char* value, size_t size);
-  std::string* add_blobhashes();
-  void add_blobhashes(const std::string& value);
-  void add_blobhashes(std::string&& value);
-  void add_blobhashes(const char* value);
-  void add_blobhashes(const char* value, size_t size);
-  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& blobhashes() const;
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_blobhashes();
-  private:
-  const std::string& _internal_blobhashes(int index) const;
-  std::string* _internal_add_blobhashes();
-  public:
-
-  // string toDeviceID = 1;
-  void clear_todeviceid();
-  const std::string& todeviceid() const;
-  void set_todeviceid(const std::string& value);
-  void set_todeviceid(std::string&& value);
-  void set_todeviceid(const char* value);
-  void set_todeviceid(const char* value, size_t size);
-  std::string* mutable_todeviceid();
-  std::string* release_todeviceid();
-  void set_allocated_todeviceid(std::string* todeviceid);
-  private:
-  const std::string& _internal_todeviceid() const;
-  void _internal_set_todeviceid(const std::string& value);
-  std::string* _internal_mutable_todeviceid();
-  public:
-
-  // string payload = 2;
-  void clear_payload();
-  const std::string& payload() const;
-  void set_payload(const std::string& value);
-  void set_payload(std::string&& value);
-  void set_payload(const char* value);
-  void set_payload(const char* value, size_t size);
-  std::string* mutable_payload();
-  std::string* release_payload();
-  void set_allocated_payload(std::string* payload);
-  private:
-  const std::string& _internal_payload() const;
-  void _internal_set_payload(const std::string& value);
-  std::string* _internal_mutable_payload();
-  public:
-
-  // @@protoc_insertion_point(class_scope:tunnelbroker.MessageToTunnelbrokerStruct)
- private:
-  class _Internal;
-
-  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
-  typedef void InternalArenaConstructable_;
-  typedef void DestructorSkippable_;
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> blobhashes_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr todeviceid_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr payload_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_tunnelbroker_2eproto;
-};
-// -------------------------------------------------------------------
-
-class MessagesToSend PROTOBUF_FINAL :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:tunnelbroker.MessagesToSend) */ {
- public:
-  inline MessagesToSend() : MessagesToSend(nullptr) {}
-  virtual ~MessagesToSend();
-  explicit constexpr MessagesToSend(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
-
-  MessagesToSend(const MessagesToSend& from);
-  MessagesToSend(MessagesToSend&& from) noexcept
-    : MessagesToSend() {
-    *this = ::std::move(from);
-  }
-
-  inline MessagesToSend& operator=(const MessagesToSend& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline MessagesToSend& operator=(MessagesToSend&& from) noexcept {
-    if (GetArena() == from.GetArena()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
-    return GetDescriptor();
-  }
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
-    return GetMetadataStatic().descriptor;
-  }
-  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
-    return GetMetadataStatic().reflection;
-  }
-  static const MessagesToSend& default_instance() {
-    return *internal_default_instance();
-  }
-  static inline const MessagesToSend* internal_default_instance() {
-    return reinterpret_cast<const MessagesToSend*>(
-               &_MessagesToSend_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    6;
-
-  friend void swap(MessagesToSend& a, MessagesToSend& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(MessagesToSend* other) {
-    if (other == this) return;
-    if (GetArena() == other->GetArena()) {
-      InternalSwap(other);
-    } else {
-      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
-    }
-  }
-  void UnsafeArenaSwap(MessagesToSend* other) {
-    if (other == this) return;
-    GOOGLE_DCHECK(GetArena() == other->GetArena());
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline MessagesToSend* New() const final {
-    return CreateMaybeMessage<MessagesToSend>(nullptr);
-  }
-
-  MessagesToSend* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<MessagesToSend>(arena);
-  }
-  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
-  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
-  void CopyFrom(const MessagesToSend& from);
-  void MergeFrom(const MessagesToSend& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(MessagesToSend* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "tunnelbroker.MessagesToSend";
-  }
-  protected:
-  explicit MessagesToSend(::PROTOBUF_NAMESPACE_ID::Arena* arena);
-  private:
-  static void ArenaDtor(void* object);
-  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
-  public:
-
-  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
-  private:
-  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
-    return ::descriptor_table_tunnelbroker_2eproto_metadata_getter(kIndexInFileMessages);
-  }
-
-  public:
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kMessagesFieldNumber = 1,
-  };
-  // repeated .tunnelbroker.MessageToTunnelbrokerStruct messages = 1;
-  int messages_size() const;
-  private:
-  int _internal_messages_size() const;
-  public:
-  void clear_messages();
-  ::tunnelbroker::MessageToTunnelbrokerStruct* mutable_messages(int index);
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tunnelbroker::MessageToTunnelbrokerStruct >*
-      mutable_messages();
-  private:
-  const ::tunnelbroker::MessageToTunnelbrokerStruct& _internal_messages(int index) const;
-  ::tunnelbroker::MessageToTunnelbrokerStruct* _internal_add_messages();
-  public:
-  const ::tunnelbroker::MessageToTunnelbrokerStruct& messages(int index) const;
-  ::tunnelbroker::MessageToTunnelbrokerStruct* add_messages();
-  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tunnelbroker::MessageToTunnelbrokerStruct >&
-      messages() const;
-
-  // @@protoc_insertion_point(class_scope:tunnelbroker.MessagesToSend)
- private:
-  class _Internal;
-
-  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
-  typedef void InternalArenaConstructable_;
-  typedef void DestructorSkippable_;
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tunnelbroker::MessageToTunnelbrokerStruct > messages_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_tunnelbroker_2eproto;
-};
-// -------------------------------------------------------------------
-
-class MessageToTunnelbroker PROTOBUF_FINAL :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:tunnelbroker.MessageToTunnelbroker) */ {
- public:
-  inline MessageToTunnelbroker() : MessageToTunnelbroker(nullptr) {}
-  virtual ~MessageToTunnelbroker();
-  explicit constexpr MessageToTunnelbroker(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
-
-  MessageToTunnelbroker(const MessageToTunnelbroker& from);
-  MessageToTunnelbroker(MessageToTunnelbroker&& from) noexcept
-    : MessageToTunnelbroker() {
-    *this = ::std::move(from);
-  }
-
-  inline MessageToTunnelbroker& operator=(const MessageToTunnelbroker& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline MessageToTunnelbroker& operator=(MessageToTunnelbroker&& from) noexcept {
-    if (GetArena() == from.GetArena()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
-    return GetDescriptor();
-  }
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
-    return GetMetadataStatic().descriptor;
-  }
-  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
-    return GetMetadataStatic().reflection;
-  }
-  static const MessageToTunnelbroker& default_instance() {
-    return *internal_default_instance();
-  }
-  enum DataCase {
-    kMessagesToSend = 1,
-    kProcessedMessages = 2,
-    kNewNotifyToken = 3,
-    DATA_NOT_SET = 0,
-  };
-
-  static inline const MessageToTunnelbroker* internal_default_instance() {
-    return reinterpret_cast<const MessageToTunnelbroker*>(
-               &_MessageToTunnelbroker_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    7;
-
-  friend void swap(MessageToTunnelbroker& a, MessageToTunnelbroker& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(MessageToTunnelbroker* other) {
-    if (other == this) return;
-    if (GetArena() == other->GetArena()) {
-      InternalSwap(other);
-    } else {
-      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
-    }
-  }
-  void UnsafeArenaSwap(MessageToTunnelbroker* other) {
-    if (other == this) return;
-    GOOGLE_DCHECK(GetArena() == other->GetArena());
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline MessageToTunnelbroker* New() const final {
-    return CreateMaybeMessage<MessageToTunnelbroker>(nullptr);
-  }
-
-  MessageToTunnelbroker* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<MessageToTunnelbroker>(arena);
-  }
-  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
-  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
-  void CopyFrom(const MessageToTunnelbroker& from);
-  void MergeFrom(const MessageToTunnelbroker& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(MessageToTunnelbroker* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "tunnelbroker.MessageToTunnelbroker";
-  }
-  protected:
-  explicit MessageToTunnelbroker(::PROTOBUF_NAMESPACE_ID::Arena* arena);
-  private:
-  static void ArenaDtor(void* object);
-  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
-  public:
-
-  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
-  private:
-  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
-    return ::descriptor_table_tunnelbroker_2eproto_metadata_getter(kIndexInFileMessages);
-  }
-
-  public:
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kMessagesToSendFieldNumber = 1,
-    kProcessedMessagesFieldNumber = 2,
-    kNewNotifyTokenFieldNumber = 3,
-  };
-  // .tunnelbroker.MessagesToSend messagesToSend = 1;
-  bool has_messagestosend() const;
-  private:
-  bool _internal_has_messagestosend() const;
-  public:
-  void clear_messagestosend();
-  const ::tunnelbroker::MessagesToSend& messagestosend() const;
-  ::tunnelbroker::MessagesToSend* release_messagestosend();
-  ::tunnelbroker::MessagesToSend* mutable_messagestosend();
-  void set_allocated_messagestosend(::tunnelbroker::MessagesToSend* messagestosend);
-  private:
-  const ::tunnelbroker::MessagesToSend& _internal_messagestosend() const;
-  ::tunnelbroker::MessagesToSend* _internal_mutable_messagestosend();
-  public:
-  void unsafe_arena_set_allocated_messagestosend(
-      ::tunnelbroker::MessagesToSend* messagestosend);
-  ::tunnelbroker::MessagesToSend* unsafe_arena_release_messagestosend();
-
-  // .tunnelbroker.ProcessedMessages processedMessages = 2;
-  bool has_processedmessages() const;
-  private:
-  bool _internal_has_processedmessages() const;
-  public:
-  void clear_processedmessages();
-  const ::tunnelbroker::ProcessedMessages& processedmessages() const;
-  ::tunnelbroker::ProcessedMessages* release_processedmessages();
-  ::tunnelbroker::ProcessedMessages* mutable_processedmessages();
-  void set_allocated_processedmessages(::tunnelbroker::ProcessedMessages* processedmessages);
-  private:
-  const ::tunnelbroker::ProcessedMessages& _internal_processedmessages() const;
-  ::tunnelbroker::ProcessedMessages* _internal_mutable_processedmessages();
-  public:
-  void unsafe_arena_set_allocated_processedmessages(
-      ::tunnelbroker::ProcessedMessages* processedmessages);
-  ::tunnelbroker::ProcessedMessages* unsafe_arena_release_processedmessages();
-
-  // string newNotifyToken = 3;
-  bool has_newnotifytoken() const;
-  private:
-  bool _internal_has_newnotifytoken() const;
-  public:
-  void clear_newnotifytoken();
-  const std::string& newnotifytoken() const;
-  void set_newnotifytoken(const std::string& value);
-  void set_newnotifytoken(std::string&& value);
-  void set_newnotifytoken(const char* value);
-  void set_newnotifytoken(const char* value, size_t size);
-  std::string* mutable_newnotifytoken();
-  std::string* release_newnotifytoken();
-  void set_allocated_newnotifytoken(std::string* newnotifytoken);
-  private:
-  const std::string& _internal_newnotifytoken() const;
-  void _internal_set_newnotifytoken(const std::string& value);
-  std::string* _internal_mutable_newnotifytoken();
-  public:
-
-  void clear_data();
-  DataCase data_case() const;
-  // @@protoc_insertion_point(class_scope:tunnelbroker.MessageToTunnelbroker)
- private:
-  class _Internal;
-  void set_has_messagestosend();
-  void set_has_processedmessages();
-  void set_has_newnotifytoken();
-
-  inline bool has_data() const;
-  inline void clear_has_data();
-
-  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
-  typedef void InternalArenaConstructable_;
-  typedef void DestructorSkippable_;
-  union DataUnion {
-    constexpr DataUnion() : _constinit_{} {}
-      ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized _constinit_;
-    ::tunnelbroker::MessagesToSend* messagestosend_;
-    ::tunnelbroker::ProcessedMessages* processedmessages_;
-    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr newnotifytoken_;
-  } data_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1];
-
-  friend struct ::TableStruct_tunnelbroker_2eproto;
-};
-// -------------------------------------------------------------------
-
-class MessageToClientStruct PROTOBUF_FINAL :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:tunnelbroker.MessageToClientStruct) */ {
- public:
-  inline MessageToClientStruct() : MessageToClientStruct(nullptr) {}
-  virtual ~MessageToClientStruct();
-  explicit constexpr MessageToClientStruct(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
-
-  MessageToClientStruct(const MessageToClientStruct& from);
-  MessageToClientStruct(MessageToClientStruct&& from) noexcept
-    : MessageToClientStruct() {
-    *this = ::std::move(from);
-  }
-
-  inline MessageToClientStruct& operator=(const MessageToClientStruct& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline MessageToClientStruct& operator=(MessageToClientStruct&& from) noexcept {
-    if (GetArena() == from.GetArena()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
-    return GetDescriptor();
-  }
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
-    return GetMetadataStatic().descriptor;
-  }
-  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
-    return GetMetadataStatic().reflection;
-  }
-  static const MessageToClientStruct& default_instance() {
-    return *internal_default_instance();
-  }
-  static inline const MessageToClientStruct* internal_default_instance() {
-    return reinterpret_cast<const MessageToClientStruct*>(
-               &_MessageToClientStruct_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    8;
-
-  friend void swap(MessageToClientStruct& a, MessageToClientStruct& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(MessageToClientStruct* other) {
-    if (other == this) return;
-    if (GetArena() == other->GetArena()) {
-      InternalSwap(other);
-    } else {
-      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
-    }
-  }
-  void UnsafeArenaSwap(MessageToClientStruct* other) {
-    if (other == this) return;
-    GOOGLE_DCHECK(GetArena() == other->GetArena());
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline MessageToClientStruct* New() const final {
-    return CreateMaybeMessage<MessageToClientStruct>(nullptr);
-  }
-
-  MessageToClientStruct* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<MessageToClientStruct>(arena);
-  }
-  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
-  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
-  void CopyFrom(const MessageToClientStruct& from);
-  void MergeFrom(const MessageToClientStruct& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(MessageToClientStruct* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "tunnelbroker.MessageToClientStruct";
-  }
-  protected:
-  explicit MessageToClientStruct(::PROTOBUF_NAMESPACE_ID::Arena* arena);
-  private:
-  static void ArenaDtor(void* object);
-  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
-  public:
-
-  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
-  private:
-  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
-    return ::descriptor_table_tunnelbroker_2eproto_metadata_getter(kIndexInFileMessages);
-  }
-
-  public:
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kBlobHashesFieldNumber = 4,
-    kMessageIDFieldNumber = 1,
-    kFromDeviceIDFieldNumber = 2,
-    kPayloadFieldNumber = 3,
-  };
-  // repeated string blobHashes = 4;
-  int blobhashes_size() const;
-  private:
-  int _internal_blobhashes_size() const;
-  public:
-  void clear_blobhashes();
-  const std::string& blobhashes(int index) const;
-  std::string* mutable_blobhashes(int index);
-  void set_blobhashes(int index, const std::string& value);
-  void set_blobhashes(int index, std::string&& value);
-  void set_blobhashes(int index, const char* value);
-  void set_blobhashes(int index, const char* value, size_t size);
-  std::string* add_blobhashes();
-  void add_blobhashes(const std::string& value);
-  void add_blobhashes(std::string&& value);
-  void add_blobhashes(const char* value);
-  void add_blobhashes(const char* value, size_t size);
-  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& blobhashes() const;
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_blobhashes();
-  private:
-  const std::string& _internal_blobhashes(int index) const;
-  std::string* _internal_add_blobhashes();
-  public:
-
-  // string messageID = 1;
-  void clear_messageid();
-  const std::string& messageid() const;
-  void set_messageid(const std::string& value);
-  void set_messageid(std::string&& value);
-  void set_messageid(const char* value);
-  void set_messageid(const char* value, size_t size);
-  std::string* mutable_messageid();
-  std::string* release_messageid();
-  void set_allocated_messageid(std::string* messageid);
-  private:
-  const std::string& _internal_messageid() const;
-  void _internal_set_messageid(const std::string& value);
-  std::string* _internal_mutable_messageid();
-  public:
-
-  // string fromDeviceID = 2;
-  void clear_fromdeviceid();
-  const std::string& fromdeviceid() const;
-  void set_fromdeviceid(const std::string& value);
-  void set_fromdeviceid(std::string&& value);
-  void set_fromdeviceid(const char* value);
-  void set_fromdeviceid(const char* value, size_t size);
-  std::string* mutable_fromdeviceid();
-  std::string* release_fromdeviceid();
-  void set_allocated_fromdeviceid(std::string* fromdeviceid);
-  private:
-  const std::string& _internal_fromdeviceid() const;
-  void _internal_set_fromdeviceid(const std::string& value);
-  std::string* _internal_mutable_fromdeviceid();
-  public:
-
-  // string payload = 3;
-  void clear_payload();
-  const std::string& payload() const;
-  void set_payload(const std::string& value);
-  void set_payload(std::string&& value);
-  void set_payload(const char* value);
-  void set_payload(const char* value, size_t size);
-  std::string* mutable_payload();
-  std::string* release_payload();
-  void set_allocated_payload(std::string* payload);
-  private:
-  const std::string& _internal_payload() const;
-  void _internal_set_payload(const std::string& value);
-  std::string* _internal_mutable_payload();
-  public:
-
-  // @@protoc_insertion_point(class_scope:tunnelbroker.MessageToClientStruct)
- private:
-  class _Internal;
-
-  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
-  typedef void InternalArenaConstructable_;
-  typedef void DestructorSkippable_;
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> blobhashes_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr messageid_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr fromdeviceid_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr payload_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_tunnelbroker_2eproto;
-};
-// -------------------------------------------------------------------
-
-class MessagesToDeliver PROTOBUF_FINAL :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:tunnelbroker.MessagesToDeliver) */ {
- public:
-  inline MessagesToDeliver() : MessagesToDeliver(nullptr) {}
-  virtual ~MessagesToDeliver();
-  explicit constexpr MessagesToDeliver(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
-
-  MessagesToDeliver(const MessagesToDeliver& from);
-  MessagesToDeliver(MessagesToDeliver&& from) noexcept
-    : MessagesToDeliver() {
-    *this = ::std::move(from);
-  }
-
-  inline MessagesToDeliver& operator=(const MessagesToDeliver& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline MessagesToDeliver& operator=(MessagesToDeliver&& from) noexcept {
-    if (GetArena() == from.GetArena()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
-    return GetDescriptor();
-  }
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
-    return GetMetadataStatic().descriptor;
-  }
-  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
-    return GetMetadataStatic().reflection;
-  }
-  static const MessagesToDeliver& default_instance() {
-    return *internal_default_instance();
-  }
-  static inline const MessagesToDeliver* internal_default_instance() {
-    return reinterpret_cast<const MessagesToDeliver*>(
-               &_MessagesToDeliver_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    9;
-
-  friend void swap(MessagesToDeliver& a, MessagesToDeliver& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(MessagesToDeliver* other) {
-    if (other == this) return;
-    if (GetArena() == other->GetArena()) {
-      InternalSwap(other);
-    } else {
-      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
-    }
-  }
-  void UnsafeArenaSwap(MessagesToDeliver* other) {
-    if (other == this) return;
-    GOOGLE_DCHECK(GetArena() == other->GetArena());
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline MessagesToDeliver* New() const final {
-    return CreateMaybeMessage<MessagesToDeliver>(nullptr);
-  }
-
-  MessagesToDeliver* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<MessagesToDeliver>(arena);
-  }
-  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
-  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
-  void CopyFrom(const MessagesToDeliver& from);
-  void MergeFrom(const MessagesToDeliver& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(MessagesToDeliver* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "tunnelbroker.MessagesToDeliver";
-  }
-  protected:
-  explicit MessagesToDeliver(::PROTOBUF_NAMESPACE_ID::Arena* arena);
-  private:
-  static void ArenaDtor(void* object);
-  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
-  public:
-
-  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
-  private:
-  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
-    return ::descriptor_table_tunnelbroker_2eproto_metadata_getter(kIndexInFileMessages);
-  }
-
-  public:
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kMessagesFieldNumber = 1,
-  };
-  // repeated .tunnelbroker.MessageToClientStruct messages = 1;
-  int messages_size() const;
-  private:
-  int _internal_messages_size() const;
-  public:
-  void clear_messages();
-  ::tunnelbroker::MessageToClientStruct* mutable_messages(int index);
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tunnelbroker::MessageToClientStruct >*
-      mutable_messages();
-  private:
-  const ::tunnelbroker::MessageToClientStruct& _internal_messages(int index) const;
-  ::tunnelbroker::MessageToClientStruct* _internal_add_messages();
-  public:
-  const ::tunnelbroker::MessageToClientStruct& messages(int index) const;
-  ::tunnelbroker::MessageToClientStruct* add_messages();
-  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tunnelbroker::MessageToClientStruct >&
-      messages() const;
-
-  // @@protoc_insertion_point(class_scope:tunnelbroker.MessagesToDeliver)
- private:
-  class _Internal;
-
-  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
-  typedef void InternalArenaConstructable_;
-  typedef void DestructorSkippable_;
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tunnelbroker::MessageToClientStruct > messages_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_tunnelbroker_2eproto;
-};
-// -------------------------------------------------------------------
-
-class MessageToClient PROTOBUF_FINAL :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:tunnelbroker.MessageToClient) */ {
- public:
-  inline MessageToClient() : MessageToClient(nullptr) {}
-  virtual ~MessageToClient();
-  explicit constexpr MessageToClient(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
-
-  MessageToClient(const MessageToClient& from);
-  MessageToClient(MessageToClient&& from) noexcept
-    : MessageToClient() {
-    *this = ::std::move(from);
-  }
-
-  inline MessageToClient& operator=(const MessageToClient& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline MessageToClient& operator=(MessageToClient&& from) noexcept {
-    if (GetArena() == from.GetArena()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
-    return GetDescriptor();
-  }
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
-    return GetMetadataStatic().descriptor;
-  }
-  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
-    return GetMetadataStatic().reflection;
-  }
-  static const MessageToClient& default_instance() {
-    return *internal_default_instance();
-  }
-  enum DataCase {
-    kMessagesToDeliver = 1,
-    kProcessedMessages = 2,
-    kNewNotifyTokenRequired = 3,
-    DATA_NOT_SET = 0,
-  };
-
-  static inline const MessageToClient* internal_default_instance() {
-    return reinterpret_cast<const MessageToClient*>(
-               &_MessageToClient_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    10;
-
-  friend void swap(MessageToClient& a, MessageToClient& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(MessageToClient* other) {
-    if (other == this) return;
-    if (GetArena() == other->GetArena()) {
-      InternalSwap(other);
-    } else {
-      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
-    }
-  }
-  void UnsafeArenaSwap(MessageToClient* other) {
-    if (other == this) return;
-    GOOGLE_DCHECK(GetArena() == other->GetArena());
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline MessageToClient* New() const final {
-    return CreateMaybeMessage<MessageToClient>(nullptr);
-  }
-
-  MessageToClient* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<MessageToClient>(arena);
-  }
-  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
-  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
-  void CopyFrom(const MessageToClient& from);
-  void MergeFrom(const MessageToClient& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const final;
-  void InternalSwap(MessageToClient* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "tunnelbroker.MessageToClient";
-  }
-  protected:
-  explicit MessageToClient(::PROTOBUF_NAMESPACE_ID::Arena* arena);
-  private:
-  static void ArenaDtor(void* object);
-  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
-  public:
-
-  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
-  private:
-  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
-    return ::descriptor_table_tunnelbroker_2eproto_metadata_getter(kIndexInFileMessages);
-  }
-
-  public:
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kMessagesToDeliverFieldNumber = 1,
-    kProcessedMessagesFieldNumber = 2,
-    kNewNotifyTokenRequiredFieldNumber = 3,
-  };
-  // .tunnelbroker.MessagesToDeliver messagesToDeliver = 1;
-  bool has_messagestodeliver() const;
-  private:
-  bool _internal_has_messagestodeliver() const;
-  public:
-  void clear_messagestodeliver();
-  const ::tunnelbroker::MessagesToDeliver& messagestodeliver() const;
-  ::tunnelbroker::MessagesToDeliver* release_messagestodeliver();
-  ::tunnelbroker::MessagesToDeliver* mutable_messagestodeliver();
-  void set_allocated_messagestodeliver(::tunnelbroker::MessagesToDeliver* messagestodeliver);
-  private:
-  const ::tunnelbroker::MessagesToDeliver& _internal_messagestodeliver() const;
-  ::tunnelbroker::MessagesToDeliver* _internal_mutable_messagestodeliver();
-  public:
-  void unsafe_arena_set_allocated_messagestodeliver(
-      ::tunnelbroker::MessagesToDeliver* messagestodeliver);
-  ::tunnelbroker::MessagesToDeliver* unsafe_arena_release_messagestodeliver();
-
-  // .tunnelbroker.ProcessedMessages processedMessages = 2;
-  bool has_processedmessages() const;
-  private:
-  bool _internal_has_processedmessages() const;
-  public:
-  void clear_processedmessages();
-  const ::tunnelbroker::ProcessedMessages& processedmessages() const;
-  ::tunnelbroker::ProcessedMessages* release_processedmessages();
-  ::tunnelbroker::ProcessedMessages* mutable_processedmessages();
-  void set_allocated_processedmessages(::tunnelbroker::ProcessedMessages* processedmessages);
-  private:
-  const ::tunnelbroker::ProcessedMessages& _internal_processedmessages() const;
-  ::tunnelbroker::ProcessedMessages* _internal_mutable_processedmessages();
-  public:
-  void unsafe_arena_set_allocated_processedmessages(
-      ::tunnelbroker::ProcessedMessages* processedmessages);
-  ::tunnelbroker::ProcessedMessages* unsafe_arena_release_processedmessages();
-
-  // .google.protobuf.Empty newNotifyTokenRequired = 3;
-  bool has_newnotifytokenrequired() const;
-  private:
-  bool _internal_has_newnotifytokenrequired() const;
-  public:
-  void clear_newnotifytokenrequired();
-  const PROTOBUF_NAMESPACE_ID::Empty& newnotifytokenrequired() const;
-  PROTOBUF_NAMESPACE_ID::Empty* release_newnotifytokenrequired();
-  PROTOBUF_NAMESPACE_ID::Empty* mutable_newnotifytokenrequired();
-  void set_allocated_newnotifytokenrequired(PROTOBUF_NAMESPACE_ID::Empty* newnotifytokenrequired);
-  private:
-  const PROTOBUF_NAMESPACE_ID::Empty& _internal_newnotifytokenrequired() const;
-  PROTOBUF_NAMESPACE_ID::Empty* _internal_mutable_newnotifytokenrequired();
-  public:
-  void unsafe_arena_set_allocated_newnotifytokenrequired(
-      PROTOBUF_NAMESPACE_ID::Empty* newnotifytokenrequired);
-  PROTOBUF_NAMESPACE_ID::Empty* unsafe_arena_release_newnotifytokenrequired();
-
-  void clear_data();
-  DataCase data_case() const;
-  // @@protoc_insertion_point(class_scope:tunnelbroker.MessageToClient)
- private:
-  class _Internal;
-  void set_has_messagestodeliver();
-  void set_has_processedmessages();
-  void set_has_newnotifytokenrequired();
-
-  inline bool has_data() const;
-  inline void clear_has_data();
-
-  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
-  typedef void InternalArenaConstructable_;
-  typedef void DestructorSkippable_;
-  union DataUnion {
-    constexpr DataUnion() : _constinit_{} {}
-      ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized _constinit_;
-    ::tunnelbroker::MessagesToDeliver* messagestodeliver_;
-    ::tunnelbroker::ProcessedMessages* processedmessages_;
-    PROTOBUF_NAMESPACE_ID::Empty* newnotifytokenrequired_;
-  } data_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1];
-
-  friend struct ::TableStruct_tunnelbroker_2eproto;
-};
-// ===================================================================
-
-
-// ===================================================================
-
-#ifdef __GNUC__
-  #pragma GCC diagnostic push
-  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
-#endif  // __GNUC__
-// SessionSignatureRequest
-
-// string deviceID = 1;
-inline void SessionSignatureRequest::clear_deviceid() {
-  deviceid_.ClearToEmpty();
-}
-inline const std::string& SessionSignatureRequest::deviceid() const {
-  // @@protoc_insertion_point(field_get:tunnelbroker.SessionSignatureRequest.deviceID)
-  return _internal_deviceid();
-}
-inline void SessionSignatureRequest::set_deviceid(const std::string& value) {
-  _internal_set_deviceid(value);
-  // @@protoc_insertion_point(field_set:tunnelbroker.SessionSignatureRequest.deviceID)
-}
-inline std::string* SessionSignatureRequest::mutable_deviceid() {
-  // @@protoc_insertion_point(field_mutable:tunnelbroker.SessionSignatureRequest.deviceID)
-  return _internal_mutable_deviceid();
-}
-inline const std::string& SessionSignatureRequest::_internal_deviceid() const {
-  return deviceid_.Get();
-}
-inline void SessionSignatureRequest::_internal_set_deviceid(const std::string& value) {
-  
-  deviceid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArena());
-}
-inline void SessionSignatureRequest::set_deviceid(std::string&& value) {
-  
-  deviceid_.Set(
-    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::move(value), GetArena());
-  // @@protoc_insertion_point(field_set_rvalue:tunnelbroker.SessionSignatureRequest.deviceID)
-}
-inline void SessionSignatureRequest::set_deviceid(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  deviceid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(value), GetArena());
-  // @@protoc_insertion_point(field_set_char:tunnelbroker.SessionSignatureRequest.deviceID)
-}
-inline void SessionSignatureRequest::set_deviceid(const char* value,
-    size_t size) {
-  
-  deviceid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(
-      reinterpret_cast<const char*>(value), size), GetArena());
-  // @@protoc_insertion_point(field_set_pointer:tunnelbroker.SessionSignatureRequest.deviceID)
-}
-inline std::string* SessionSignatureRequest::_internal_mutable_deviceid() {
-  
-  return deviceid_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArena());
-}
-inline std::string* SessionSignatureRequest::release_deviceid() {
-  // @@protoc_insertion_point(field_release:tunnelbroker.SessionSignatureRequest.deviceID)
-  return deviceid_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
-}
-inline void SessionSignatureRequest::set_allocated_deviceid(std::string* deviceid) {
-  if (deviceid != nullptr) {
-    
-  } else {
-    
-  }
-  deviceid_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), deviceid,
-      GetArena());
-  // @@protoc_insertion_point(field_set_allocated:tunnelbroker.SessionSignatureRequest.deviceID)
-}
-
-// -------------------------------------------------------------------
-
-// SessionSignatureResponse
-
-// string toSign = 1;
-inline void SessionSignatureResponse::clear_tosign() {
-  tosign_.ClearToEmpty();
-}
-inline const std::string& SessionSignatureResponse::tosign() const {
-  // @@protoc_insertion_point(field_get:tunnelbroker.SessionSignatureResponse.toSign)
-  return _internal_tosign();
-}
-inline void SessionSignatureResponse::set_tosign(const std::string& value) {
-  _internal_set_tosign(value);
-  // @@protoc_insertion_point(field_set:tunnelbroker.SessionSignatureResponse.toSign)
-}
-inline std::string* SessionSignatureResponse::mutable_tosign() {
-  // @@protoc_insertion_point(field_mutable:tunnelbroker.SessionSignatureResponse.toSign)
-  return _internal_mutable_tosign();
-}
-inline const std::string& SessionSignatureResponse::_internal_tosign() const {
-  return tosign_.Get();
-}
-inline void SessionSignatureResponse::_internal_set_tosign(const std::string& value) {
-  
-  tosign_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArena());
-}
-inline void SessionSignatureResponse::set_tosign(std::string&& value) {
-  
-  tosign_.Set(
-    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::move(value), GetArena());
-  // @@protoc_insertion_point(field_set_rvalue:tunnelbroker.SessionSignatureResponse.toSign)
-}
-inline void SessionSignatureResponse::set_tosign(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  tosign_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(value), GetArena());
-  // @@protoc_insertion_point(field_set_char:tunnelbroker.SessionSignatureResponse.toSign)
-}
-inline void SessionSignatureResponse::set_tosign(const char* value,
-    size_t size) {
-  
-  tosign_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(
-      reinterpret_cast<const char*>(value), size), GetArena());
-  // @@protoc_insertion_point(field_set_pointer:tunnelbroker.SessionSignatureResponse.toSign)
-}
-inline std::string* SessionSignatureResponse::_internal_mutable_tosign() {
-  
-  return tosign_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArena());
-}
-inline std::string* SessionSignatureResponse::release_tosign() {
-  // @@protoc_insertion_point(field_release:tunnelbroker.SessionSignatureResponse.toSign)
-  return tosign_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
-}
-inline void SessionSignatureResponse::set_allocated_tosign(std::string* tosign) {
-  if (tosign != nullptr) {
-    
-  } else {
-    
-  }
-  tosign_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), tosign,
-      GetArena());
-  // @@protoc_insertion_point(field_set_allocated:tunnelbroker.SessionSignatureResponse.toSign)
-}
-
-// -------------------------------------------------------------------
-
-// NewSessionRequest
-
-// string deviceID = 1;
-inline void NewSessionRequest::clear_deviceid() {
-  deviceid_.ClearToEmpty();
-}
-inline const std::string& NewSessionRequest::deviceid() const {
-  // @@protoc_insertion_point(field_get:tunnelbroker.NewSessionRequest.deviceID)
-  return _internal_deviceid();
-}
-inline void NewSessionRequest::set_deviceid(const std::string& value) {
-  _internal_set_deviceid(value);
-  // @@protoc_insertion_point(field_set:tunnelbroker.NewSessionRequest.deviceID)
-}
-inline std::string* NewSessionRequest::mutable_deviceid() {
-  // @@protoc_insertion_point(field_mutable:tunnelbroker.NewSessionRequest.deviceID)
-  return _internal_mutable_deviceid();
-}
-inline const std::string& NewSessionRequest::_internal_deviceid() const {
-  return deviceid_.Get();
-}
-inline void NewSessionRequest::_internal_set_deviceid(const std::string& value) {
-  
-  deviceid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArena());
-}
-inline void NewSessionRequest::set_deviceid(std::string&& value) {
-  
-  deviceid_.Set(
-    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::move(value), GetArena());
-  // @@protoc_insertion_point(field_set_rvalue:tunnelbroker.NewSessionRequest.deviceID)
-}
-inline void NewSessionRequest::set_deviceid(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  deviceid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(value), GetArena());
-  // @@protoc_insertion_point(field_set_char:tunnelbroker.NewSessionRequest.deviceID)
-}
-inline void NewSessionRequest::set_deviceid(const char* value,
-    size_t size) {
-  
-  deviceid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(
-      reinterpret_cast<const char*>(value), size), GetArena());
-  // @@protoc_insertion_point(field_set_pointer:tunnelbroker.NewSessionRequest.deviceID)
-}
-inline std::string* NewSessionRequest::_internal_mutable_deviceid() {
-  
-  return deviceid_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArena());
-}
-inline std::string* NewSessionRequest::release_deviceid() {
-  // @@protoc_insertion_point(field_release:tunnelbroker.NewSessionRequest.deviceID)
-  return deviceid_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
-}
-inline void NewSessionRequest::set_allocated_deviceid(std::string* deviceid) {
-  if (deviceid != nullptr) {
-    
-  } else {
-    
-  }
-  deviceid_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), deviceid,
-      GetArena());
-  // @@protoc_insertion_point(field_set_allocated:tunnelbroker.NewSessionRequest.deviceID)
-}
-
-// string publicKey = 2;
-inline void NewSessionRequest::clear_publickey() {
-  publickey_.ClearToEmpty();
-}
-inline const std::string& NewSessionRequest::publickey() const {
-  // @@protoc_insertion_point(field_get:tunnelbroker.NewSessionRequest.publicKey)
-  return _internal_publickey();
-}
-inline void NewSessionRequest::set_publickey(const std::string& value) {
-  _internal_set_publickey(value);
-  // @@protoc_insertion_point(field_set:tunnelbroker.NewSessionRequest.publicKey)
-}
-inline std::string* NewSessionRequest::mutable_publickey() {
-  // @@protoc_insertion_point(field_mutable:tunnelbroker.NewSessionRequest.publicKey)
-  return _internal_mutable_publickey();
-}
-inline const std::string& NewSessionRequest::_internal_publickey() const {
-  return publickey_.Get();
-}
-inline void NewSessionRequest::_internal_set_publickey(const std::string& value) {
-  
-  publickey_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArena());
-}
-inline void NewSessionRequest::set_publickey(std::string&& value) {
-  
-  publickey_.Set(
-    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::move(value), GetArena());
-  // @@protoc_insertion_point(field_set_rvalue:tunnelbroker.NewSessionRequest.publicKey)
-}
-inline void NewSessionRequest::set_publickey(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  publickey_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(value), GetArena());
-  // @@protoc_insertion_point(field_set_char:tunnelbroker.NewSessionRequest.publicKey)
-}
-inline void NewSessionRequest::set_publickey(const char* value,
-    size_t size) {
-  
-  publickey_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(
-      reinterpret_cast<const char*>(value), size), GetArena());
-  // @@protoc_insertion_point(field_set_pointer:tunnelbroker.NewSessionRequest.publicKey)
-}
-inline std::string* NewSessionRequest::_internal_mutable_publickey() {
-  
-  return publickey_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArena());
-}
-inline std::string* NewSessionRequest::release_publickey() {
-  // @@protoc_insertion_point(field_release:tunnelbroker.NewSessionRequest.publicKey)
-  return publickey_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
-}
-inline void NewSessionRequest::set_allocated_publickey(std::string* publickey) {
-  if (publickey != nullptr) {
-    
-  } else {
-    
-  }
-  publickey_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), publickey,
-      GetArena());
-  // @@protoc_insertion_point(field_set_allocated:tunnelbroker.NewSessionRequest.publicKey)
-}
-
-// string signature = 3;
-inline void NewSessionRequest::clear_signature() {
-  signature_.ClearToEmpty();
-}
-inline const std::string& NewSessionRequest::signature() const {
-  // @@protoc_insertion_point(field_get:tunnelbroker.NewSessionRequest.signature)
-  return _internal_signature();
-}
-inline void NewSessionRequest::set_signature(const std::string& value) {
-  _internal_set_signature(value);
-  // @@protoc_insertion_point(field_set:tunnelbroker.NewSessionRequest.signature)
-}
-inline std::string* NewSessionRequest::mutable_signature() {
-  // @@protoc_insertion_point(field_mutable:tunnelbroker.NewSessionRequest.signature)
-  return _internal_mutable_signature();
-}
-inline const std::string& NewSessionRequest::_internal_signature() const {
-  return signature_.Get();
-}
-inline void NewSessionRequest::_internal_set_signature(const std::string& value) {
-  
-  signature_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArena());
-}
-inline void NewSessionRequest::set_signature(std::string&& value) {
-  
-  signature_.Set(
-    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::move(value), GetArena());
-  // @@protoc_insertion_point(field_set_rvalue:tunnelbroker.NewSessionRequest.signature)
-}
-inline void NewSessionRequest::set_signature(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  signature_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(value), GetArena());
-  // @@protoc_insertion_point(field_set_char:tunnelbroker.NewSessionRequest.signature)
-}
-inline void NewSessionRequest::set_signature(const char* value,
-    size_t size) {
-  
-  signature_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(
-      reinterpret_cast<const char*>(value), size), GetArena());
-  // @@protoc_insertion_point(field_set_pointer:tunnelbroker.NewSessionRequest.signature)
-}
-inline std::string* NewSessionRequest::_internal_mutable_signature() {
-  
-  return signature_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArena());
-}
-inline std::string* NewSessionRequest::release_signature() {
-  // @@protoc_insertion_point(field_release:tunnelbroker.NewSessionRequest.signature)
-  return signature_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
-}
-inline void NewSessionRequest::set_allocated_signature(std::string* signature) {
-  if (signature != nullptr) {
-    
-  } else {
-    
-  }
-  signature_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), signature,
-      GetArena());
-  // @@protoc_insertion_point(field_set_allocated:tunnelbroker.NewSessionRequest.signature)
-}
-
-// string notifyToken = 4;
-inline bool NewSessionRequest::_internal_has_notifytoken() const {
-  bool value = (_has_bits_[0] & 0x00000001u) != 0;
-  return value;
-}
-inline bool NewSessionRequest::has_notifytoken() const {
-  return _internal_has_notifytoken();
-}
-inline void NewSessionRequest::clear_notifytoken() {
-  notifytoken_.ClearToEmpty();
-  _has_bits_[0] &= ~0x00000001u;
-}
-inline const std::string& NewSessionRequest::notifytoken() const {
-  // @@protoc_insertion_point(field_get:tunnelbroker.NewSessionRequest.notifyToken)
-  return _internal_notifytoken();
-}
-inline void NewSessionRequest::set_notifytoken(const std::string& value) {
-  _internal_set_notifytoken(value);
-  // @@protoc_insertion_point(field_set:tunnelbroker.NewSessionRequest.notifyToken)
-}
-inline std::string* NewSessionRequest::mutable_notifytoken() {
-  // @@protoc_insertion_point(field_mutable:tunnelbroker.NewSessionRequest.notifyToken)
-  return _internal_mutable_notifytoken();
-}
-inline const std::string& NewSessionRequest::_internal_notifytoken() const {
-  return notifytoken_.Get();
-}
-inline void NewSessionRequest::_internal_set_notifytoken(const std::string& value) {
-  _has_bits_[0] |= 0x00000001u;
-  notifytoken_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArena());
-}
-inline void NewSessionRequest::set_notifytoken(std::string&& value) {
-  _has_bits_[0] |= 0x00000001u;
-  notifytoken_.Set(
-    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::move(value), GetArena());
-  // @@protoc_insertion_point(field_set_rvalue:tunnelbroker.NewSessionRequest.notifyToken)
-}
-inline void NewSessionRequest::set_notifytoken(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  _has_bits_[0] |= 0x00000001u;
-  notifytoken_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(value), GetArena());
-  // @@protoc_insertion_point(field_set_char:tunnelbroker.NewSessionRequest.notifyToken)
-}
-inline void NewSessionRequest::set_notifytoken(const char* value,
-    size_t size) {
-  _has_bits_[0] |= 0x00000001u;
-  notifytoken_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(
-      reinterpret_cast<const char*>(value), size), GetArena());
-  // @@protoc_insertion_point(field_set_pointer:tunnelbroker.NewSessionRequest.notifyToken)
-}
-inline std::string* NewSessionRequest::_internal_mutable_notifytoken() {
-  _has_bits_[0] |= 0x00000001u;
-  return notifytoken_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArena());
-}
-inline std::string* NewSessionRequest::release_notifytoken() {
-  // @@protoc_insertion_point(field_release:tunnelbroker.NewSessionRequest.notifyToken)
-  if (!_internal_has_notifytoken()) {
-    return nullptr;
-  }
-  _has_bits_[0] &= ~0x00000001u;
-  return notifytoken_.ReleaseNonDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
-}
-inline void NewSessionRequest::set_allocated_notifytoken(std::string* notifytoken) {
-  if (notifytoken != nullptr) {
-    _has_bits_[0] |= 0x00000001u;
-  } else {
-    _has_bits_[0] &= ~0x00000001u;
-  }
-  notifytoken_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), notifytoken,
-      GetArena());
-  // @@protoc_insertion_point(field_set_allocated:tunnelbroker.NewSessionRequest.notifyToken)
-}
-
-// .tunnelbroker.NewSessionRequest.DeviceTypes deviceType = 5;
-inline void NewSessionRequest::clear_devicetype() {
-  devicetype_ = 0;
-}
-inline ::tunnelbroker::NewSessionRequest_DeviceTypes NewSessionRequest::_internal_devicetype() const {
-  return static_cast< ::tunnelbroker::NewSessionRequest_DeviceTypes >(devicetype_);
-}
-inline ::tunnelbroker::NewSessionRequest_DeviceTypes NewSessionRequest::devicetype() const {
-  // @@protoc_insertion_point(field_get:tunnelbroker.NewSessionRequest.deviceType)
-  return _internal_devicetype();
-}
-inline void NewSessionRequest::_internal_set_devicetype(::tunnelbroker::NewSessionRequest_DeviceTypes value) {
-  
-  devicetype_ = value;
-}
-inline void NewSessionRequest::set_devicetype(::tunnelbroker::NewSessionRequest_DeviceTypes value) {
-  _internal_set_devicetype(value);
-  // @@protoc_insertion_point(field_set:tunnelbroker.NewSessionRequest.deviceType)
-}
-
-// string deviceAppVersion = 6;
-inline void NewSessionRequest::clear_deviceappversion() {
-  deviceappversion_.ClearToEmpty();
-}
-inline const std::string& NewSessionRequest::deviceappversion() const {
-  // @@protoc_insertion_point(field_get:tunnelbroker.NewSessionRequest.deviceAppVersion)
-  return _internal_deviceappversion();
-}
-inline void NewSessionRequest::set_deviceappversion(const std::string& value) {
-  _internal_set_deviceappversion(value);
-  // @@protoc_insertion_point(field_set:tunnelbroker.NewSessionRequest.deviceAppVersion)
-}
-inline std::string* NewSessionRequest::mutable_deviceappversion() {
-  // @@protoc_insertion_point(field_mutable:tunnelbroker.NewSessionRequest.deviceAppVersion)
-  return _internal_mutable_deviceappversion();
-}
-inline const std::string& NewSessionRequest::_internal_deviceappversion() const {
-  return deviceappversion_.Get();
-}
-inline void NewSessionRequest::_internal_set_deviceappversion(const std::string& value) {
-  
-  deviceappversion_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArena());
-}
-inline void NewSessionRequest::set_deviceappversion(std::string&& value) {
-  
-  deviceappversion_.Set(
-    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::move(value), GetArena());
-  // @@protoc_insertion_point(field_set_rvalue:tunnelbroker.NewSessionRequest.deviceAppVersion)
-}
-inline void NewSessionRequest::set_deviceappversion(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  deviceappversion_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(value), GetArena());
-  // @@protoc_insertion_point(field_set_char:tunnelbroker.NewSessionRequest.deviceAppVersion)
-}
-inline void NewSessionRequest::set_deviceappversion(const char* value,
-    size_t size) {
-  
-  deviceappversion_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(
-      reinterpret_cast<const char*>(value), size), GetArena());
-  // @@protoc_insertion_point(field_set_pointer:tunnelbroker.NewSessionRequest.deviceAppVersion)
-}
-inline std::string* NewSessionRequest::_internal_mutable_deviceappversion() {
-  
-  return deviceappversion_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArena());
-}
-inline std::string* NewSessionRequest::release_deviceappversion() {
-  // @@protoc_insertion_point(field_release:tunnelbroker.NewSessionRequest.deviceAppVersion)
-  return deviceappversion_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
-}
-inline void NewSessionRequest::set_allocated_deviceappversion(std::string* deviceappversion) {
-  if (deviceappversion != nullptr) {
-    
-  } else {
-    
-  }
-  deviceappversion_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), deviceappversion,
-      GetArena());
-  // @@protoc_insertion_point(field_set_allocated:tunnelbroker.NewSessionRequest.deviceAppVersion)
-}
-
-// string deviceOS = 7;
-inline void NewSessionRequest::clear_deviceos() {
-  deviceos_.ClearToEmpty();
-}
-inline const std::string& NewSessionRequest::deviceos() const {
-  // @@protoc_insertion_point(field_get:tunnelbroker.NewSessionRequest.deviceOS)
-  return _internal_deviceos();
-}
-inline void NewSessionRequest::set_deviceos(const std::string& value) {
-  _internal_set_deviceos(value);
-  // @@protoc_insertion_point(field_set:tunnelbroker.NewSessionRequest.deviceOS)
-}
-inline std::string* NewSessionRequest::mutable_deviceos() {
-  // @@protoc_insertion_point(field_mutable:tunnelbroker.NewSessionRequest.deviceOS)
-  return _internal_mutable_deviceos();
-}
-inline const std::string& NewSessionRequest::_internal_deviceos() const {
-  return deviceos_.Get();
-}
-inline void NewSessionRequest::_internal_set_deviceos(const std::string& value) {
-  
-  deviceos_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArena());
-}
-inline void NewSessionRequest::set_deviceos(std::string&& value) {
-  
-  deviceos_.Set(
-    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::move(value), GetArena());
-  // @@protoc_insertion_point(field_set_rvalue:tunnelbroker.NewSessionRequest.deviceOS)
-}
-inline void NewSessionRequest::set_deviceos(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  deviceos_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(value), GetArena());
-  // @@protoc_insertion_point(field_set_char:tunnelbroker.NewSessionRequest.deviceOS)
-}
-inline void NewSessionRequest::set_deviceos(const char* value,
-    size_t size) {
-  
-  deviceos_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(
-      reinterpret_cast<const char*>(value), size), GetArena());
-  // @@protoc_insertion_point(field_set_pointer:tunnelbroker.NewSessionRequest.deviceOS)
-}
-inline std::string* NewSessionRequest::_internal_mutable_deviceos() {
-  
-  return deviceos_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArena());
-}
-inline std::string* NewSessionRequest::release_deviceos() {
-  // @@protoc_insertion_point(field_release:tunnelbroker.NewSessionRequest.deviceOS)
-  return deviceos_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
-}
-inline void NewSessionRequest::set_allocated_deviceos(std::string* deviceos) {
-  if (deviceos != nullptr) {
-    
-  } else {
-    
-  }
-  deviceos_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), deviceos,
-      GetArena());
-  // @@protoc_insertion_point(field_set_allocated:tunnelbroker.NewSessionRequest.deviceOS)
-}
-
-// -------------------------------------------------------------------
-
-// NewSessionResponse
-
-// string sessionID = 1;
-inline void NewSessionResponse::clear_sessionid() {
-  sessionid_.ClearToEmpty();
-}
-inline const std::string& NewSessionResponse::sessionid() const {
-  // @@protoc_insertion_point(field_get:tunnelbroker.NewSessionResponse.sessionID)
-  return _internal_sessionid();
-}
-inline void NewSessionResponse::set_sessionid(const std::string& value) {
-  _internal_set_sessionid(value);
-  // @@protoc_insertion_point(field_set:tunnelbroker.NewSessionResponse.sessionID)
-}
-inline std::string* NewSessionResponse::mutable_sessionid() {
-  // @@protoc_insertion_point(field_mutable:tunnelbroker.NewSessionResponse.sessionID)
-  return _internal_mutable_sessionid();
-}
-inline const std::string& NewSessionResponse::_internal_sessionid() const {
-  return sessionid_.Get();
-}
-inline void NewSessionResponse::_internal_set_sessionid(const std::string& value) {
-  
-  sessionid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArena());
-}
-inline void NewSessionResponse::set_sessionid(std::string&& value) {
-  
-  sessionid_.Set(
-    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::move(value), GetArena());
-  // @@protoc_insertion_point(field_set_rvalue:tunnelbroker.NewSessionResponse.sessionID)
-}
-inline void NewSessionResponse::set_sessionid(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  sessionid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(value), GetArena());
-  // @@protoc_insertion_point(field_set_char:tunnelbroker.NewSessionResponse.sessionID)
-}
-inline void NewSessionResponse::set_sessionid(const char* value,
-    size_t size) {
-  
-  sessionid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(
-      reinterpret_cast<const char*>(value), size), GetArena());
-  // @@protoc_insertion_point(field_set_pointer:tunnelbroker.NewSessionResponse.sessionID)
-}
-inline std::string* NewSessionResponse::_internal_mutable_sessionid() {
-  
-  return sessionid_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArena());
-}
-inline std::string* NewSessionResponse::release_sessionid() {
-  // @@protoc_insertion_point(field_release:tunnelbroker.NewSessionResponse.sessionID)
-  return sessionid_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
-}
-inline void NewSessionResponse::set_allocated_sessionid(std::string* sessionid) {
-  if (sessionid != nullptr) {
-    
-  } else {
-    
-  }
-  sessionid_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), sessionid,
-      GetArena());
-  // @@protoc_insertion_point(field_set_allocated:tunnelbroker.NewSessionResponse.sessionID)
-}
-
-// -------------------------------------------------------------------
-
-// ProcessedMessages
-
-// repeated string messageID = 1;
-inline int ProcessedMessages::_internal_messageid_size() const {
-  return messageid_.size();
-}
-inline int ProcessedMessages::messageid_size() const {
-  return _internal_messageid_size();
-}
-inline void ProcessedMessages::clear_messageid() {
-  messageid_.Clear();
-}
-inline std::string* ProcessedMessages::add_messageid() {
-  // @@protoc_insertion_point(field_add_mutable:tunnelbroker.ProcessedMessages.messageID)
-  return _internal_add_messageid();
-}
-inline const std::string& ProcessedMessages::_internal_messageid(int index) const {
-  return messageid_.Get(index);
-}
-inline const std::string& ProcessedMessages::messageid(int index) const {
-  // @@protoc_insertion_point(field_get:tunnelbroker.ProcessedMessages.messageID)
-  return _internal_messageid(index);
-}
-inline std::string* ProcessedMessages::mutable_messageid(int index) {
-  // @@protoc_insertion_point(field_mutable:tunnelbroker.ProcessedMessages.messageID)
-  return messageid_.Mutable(index);
-}
-inline void ProcessedMessages::set_messageid(int index, const std::string& value) {
-  // @@protoc_insertion_point(field_set:tunnelbroker.ProcessedMessages.messageID)
-  messageid_.Mutable(index)->assign(value);
-}
-inline void ProcessedMessages::set_messageid(int index, std::string&& value) {
-  // @@protoc_insertion_point(field_set:tunnelbroker.ProcessedMessages.messageID)
-  messageid_.Mutable(index)->assign(std::move(value));
-}
-inline void ProcessedMessages::set_messageid(int index, const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  messageid_.Mutable(index)->assign(value);
-  // @@protoc_insertion_point(field_set_char:tunnelbroker.ProcessedMessages.messageID)
-}
-inline void ProcessedMessages::set_messageid(int index, const char* value, size_t size) {
-  messageid_.Mutable(index)->assign(
-    reinterpret_cast<const char*>(value), size);
-  // @@protoc_insertion_point(field_set_pointer:tunnelbroker.ProcessedMessages.messageID)
-}
-inline std::string* ProcessedMessages::_internal_add_messageid() {
-  return messageid_.Add();
-}
-inline void ProcessedMessages::add_messageid(const std::string& value) {
-  messageid_.Add()->assign(value);
-  // @@protoc_insertion_point(field_add:tunnelbroker.ProcessedMessages.messageID)
-}
-inline void ProcessedMessages::add_messageid(std::string&& value) {
-  messageid_.Add(std::move(value));
-  // @@protoc_insertion_point(field_add:tunnelbroker.ProcessedMessages.messageID)
-}
-inline void ProcessedMessages::add_messageid(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  messageid_.Add()->assign(value);
-  // @@protoc_insertion_point(field_add_char:tunnelbroker.ProcessedMessages.messageID)
-}
-inline void ProcessedMessages::add_messageid(const char* value, size_t size) {
-  messageid_.Add()->assign(reinterpret_cast<const char*>(value), size);
-  // @@protoc_insertion_point(field_add_pointer:tunnelbroker.ProcessedMessages.messageID)
-}
-inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
-ProcessedMessages::messageid() const {
-  // @@protoc_insertion_point(field_list:tunnelbroker.ProcessedMessages.messageID)
-  return messageid_;
-}
-inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
-ProcessedMessages::mutable_messageid() {
-  // @@protoc_insertion_point(field_mutable_list:tunnelbroker.ProcessedMessages.messageID)
-  return &messageid_;
-}
-
-// -------------------------------------------------------------------
-
-// MessageToTunnelbrokerStruct
-
-// string toDeviceID = 1;
-inline void MessageToTunnelbrokerStruct::clear_todeviceid() {
-  todeviceid_.ClearToEmpty();
-}
-inline const std::string& MessageToTunnelbrokerStruct::todeviceid() const {
-  // @@protoc_insertion_point(field_get:tunnelbroker.MessageToTunnelbrokerStruct.toDeviceID)
-  return _internal_todeviceid();
-}
-inline void MessageToTunnelbrokerStruct::set_todeviceid(const std::string& value) {
-  _internal_set_todeviceid(value);
-  // @@protoc_insertion_point(field_set:tunnelbroker.MessageToTunnelbrokerStruct.toDeviceID)
-}
-inline std::string* MessageToTunnelbrokerStruct::mutable_todeviceid() {
-  // @@protoc_insertion_point(field_mutable:tunnelbroker.MessageToTunnelbrokerStruct.toDeviceID)
-  return _internal_mutable_todeviceid();
-}
-inline const std::string& MessageToTunnelbrokerStruct::_internal_todeviceid() const {
-  return todeviceid_.Get();
-}
-inline void MessageToTunnelbrokerStruct::_internal_set_todeviceid(const std::string& value) {
-  
-  todeviceid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArena());
-}
-inline void MessageToTunnelbrokerStruct::set_todeviceid(std::string&& value) {
-  
-  todeviceid_.Set(
-    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::move(value), GetArena());
-  // @@protoc_insertion_point(field_set_rvalue:tunnelbroker.MessageToTunnelbrokerStruct.toDeviceID)
-}
-inline void MessageToTunnelbrokerStruct::set_todeviceid(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  todeviceid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(value), GetArena());
-  // @@protoc_insertion_point(field_set_char:tunnelbroker.MessageToTunnelbrokerStruct.toDeviceID)
-}
-inline void MessageToTunnelbrokerStruct::set_todeviceid(const char* value,
-    size_t size) {
-  
-  todeviceid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(
-      reinterpret_cast<const char*>(value), size), GetArena());
-  // @@protoc_insertion_point(field_set_pointer:tunnelbroker.MessageToTunnelbrokerStruct.toDeviceID)
-}
-inline std::string* MessageToTunnelbrokerStruct::_internal_mutable_todeviceid() {
-  
-  return todeviceid_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArena());
-}
-inline std::string* MessageToTunnelbrokerStruct::release_todeviceid() {
-  // @@protoc_insertion_point(field_release:tunnelbroker.MessageToTunnelbrokerStruct.toDeviceID)
-  return todeviceid_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
-}
-inline void MessageToTunnelbrokerStruct::set_allocated_todeviceid(std::string* todeviceid) {
-  if (todeviceid != nullptr) {
-    
-  } else {
-    
-  }
-  todeviceid_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), todeviceid,
-      GetArena());
-  // @@protoc_insertion_point(field_set_allocated:tunnelbroker.MessageToTunnelbrokerStruct.toDeviceID)
-}
-
-// string payload = 2;
-inline void MessageToTunnelbrokerStruct::clear_payload() {
-  payload_.ClearToEmpty();
-}
-inline const std::string& MessageToTunnelbrokerStruct::payload() const {
-  // @@protoc_insertion_point(field_get:tunnelbroker.MessageToTunnelbrokerStruct.payload)
-  return _internal_payload();
-}
-inline void MessageToTunnelbrokerStruct::set_payload(const std::string& value) {
-  _internal_set_payload(value);
-  // @@protoc_insertion_point(field_set:tunnelbroker.MessageToTunnelbrokerStruct.payload)
-}
-inline std::string* MessageToTunnelbrokerStruct::mutable_payload() {
-  // @@protoc_insertion_point(field_mutable:tunnelbroker.MessageToTunnelbrokerStruct.payload)
-  return _internal_mutable_payload();
-}
-inline const std::string& MessageToTunnelbrokerStruct::_internal_payload() const {
-  return payload_.Get();
-}
-inline void MessageToTunnelbrokerStruct::_internal_set_payload(const std::string& value) {
-  
-  payload_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArena());
-}
-inline void MessageToTunnelbrokerStruct::set_payload(std::string&& value) {
-  
-  payload_.Set(
-    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::move(value), GetArena());
-  // @@protoc_insertion_point(field_set_rvalue:tunnelbroker.MessageToTunnelbrokerStruct.payload)
-}
-inline void MessageToTunnelbrokerStruct::set_payload(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  payload_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(value), GetArena());
-  // @@protoc_insertion_point(field_set_char:tunnelbroker.MessageToTunnelbrokerStruct.payload)
-}
-inline void MessageToTunnelbrokerStruct::set_payload(const char* value,
-    size_t size) {
-  
-  payload_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(
-      reinterpret_cast<const char*>(value), size), GetArena());
-  // @@protoc_insertion_point(field_set_pointer:tunnelbroker.MessageToTunnelbrokerStruct.payload)
-}
-inline std::string* MessageToTunnelbrokerStruct::_internal_mutable_payload() {
-  
-  return payload_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArena());
-}
-inline std::string* MessageToTunnelbrokerStruct::release_payload() {
-  // @@protoc_insertion_point(field_release:tunnelbroker.MessageToTunnelbrokerStruct.payload)
-  return payload_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
-}
-inline void MessageToTunnelbrokerStruct::set_allocated_payload(std::string* payload) {
-  if (payload != nullptr) {
-    
-  } else {
-    
-  }
-  payload_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), payload,
-      GetArena());
-  // @@protoc_insertion_point(field_set_allocated:tunnelbroker.MessageToTunnelbrokerStruct.payload)
-}
-
-// repeated string blobHashes = 3;
-inline int MessageToTunnelbrokerStruct::_internal_blobhashes_size() const {
-  return blobhashes_.size();
-}
-inline int MessageToTunnelbrokerStruct::blobhashes_size() const {
-  return _internal_blobhashes_size();
-}
-inline void MessageToTunnelbrokerStruct::clear_blobhashes() {
-  blobhashes_.Clear();
-}
-inline std::string* MessageToTunnelbrokerStruct::add_blobhashes() {
-  // @@protoc_insertion_point(field_add_mutable:tunnelbroker.MessageToTunnelbrokerStruct.blobHashes)
-  return _internal_add_blobhashes();
-}
-inline const std::string& MessageToTunnelbrokerStruct::_internal_blobhashes(int index) const {
-  return blobhashes_.Get(index);
-}
-inline const std::string& MessageToTunnelbrokerStruct::blobhashes(int index) const {
-  // @@protoc_insertion_point(field_get:tunnelbroker.MessageToTunnelbrokerStruct.blobHashes)
-  return _internal_blobhashes(index);
-}
-inline std::string* MessageToTunnelbrokerStruct::mutable_blobhashes(int index) {
-  // @@protoc_insertion_point(field_mutable:tunnelbroker.MessageToTunnelbrokerStruct.blobHashes)
-  return blobhashes_.Mutable(index);
-}
-inline void MessageToTunnelbrokerStruct::set_blobhashes(int index, const std::string& value) {
-  // @@protoc_insertion_point(field_set:tunnelbroker.MessageToTunnelbrokerStruct.blobHashes)
-  blobhashes_.Mutable(index)->assign(value);
-}
-inline void MessageToTunnelbrokerStruct::set_blobhashes(int index, std::string&& value) {
-  // @@protoc_insertion_point(field_set:tunnelbroker.MessageToTunnelbrokerStruct.blobHashes)
-  blobhashes_.Mutable(index)->assign(std::move(value));
-}
-inline void MessageToTunnelbrokerStruct::set_blobhashes(int index, const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  blobhashes_.Mutable(index)->assign(value);
-  // @@protoc_insertion_point(field_set_char:tunnelbroker.MessageToTunnelbrokerStruct.blobHashes)
-}
-inline void MessageToTunnelbrokerStruct::set_blobhashes(int index, const char* value, size_t size) {
-  blobhashes_.Mutable(index)->assign(
-    reinterpret_cast<const char*>(value), size);
-  // @@protoc_insertion_point(field_set_pointer:tunnelbroker.MessageToTunnelbrokerStruct.blobHashes)
-}
-inline std::string* MessageToTunnelbrokerStruct::_internal_add_blobhashes() {
-  return blobhashes_.Add();
-}
-inline void MessageToTunnelbrokerStruct::add_blobhashes(const std::string& value) {
-  blobhashes_.Add()->assign(value);
-  // @@protoc_insertion_point(field_add:tunnelbroker.MessageToTunnelbrokerStruct.blobHashes)
-}
-inline void MessageToTunnelbrokerStruct::add_blobhashes(std::string&& value) {
-  blobhashes_.Add(std::move(value));
-  // @@protoc_insertion_point(field_add:tunnelbroker.MessageToTunnelbrokerStruct.blobHashes)
-}
-inline void MessageToTunnelbrokerStruct::add_blobhashes(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  blobhashes_.Add()->assign(value);
-  // @@protoc_insertion_point(field_add_char:tunnelbroker.MessageToTunnelbrokerStruct.blobHashes)
-}
-inline void MessageToTunnelbrokerStruct::add_blobhashes(const char* value, size_t size) {
-  blobhashes_.Add()->assign(reinterpret_cast<const char*>(value), size);
-  // @@protoc_insertion_point(field_add_pointer:tunnelbroker.MessageToTunnelbrokerStruct.blobHashes)
-}
-inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
-MessageToTunnelbrokerStruct::blobhashes() const {
-  // @@protoc_insertion_point(field_list:tunnelbroker.MessageToTunnelbrokerStruct.blobHashes)
-  return blobhashes_;
-}
-inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
-MessageToTunnelbrokerStruct::mutable_blobhashes() {
-  // @@protoc_insertion_point(field_mutable_list:tunnelbroker.MessageToTunnelbrokerStruct.blobHashes)
-  return &blobhashes_;
-}
-
-// -------------------------------------------------------------------
-
-// MessagesToSend
-
-// repeated .tunnelbroker.MessageToTunnelbrokerStruct messages = 1;
-inline int MessagesToSend::_internal_messages_size() const {
-  return messages_.size();
-}
-inline int MessagesToSend::messages_size() const {
-  return _internal_messages_size();
-}
-inline void MessagesToSend::clear_messages() {
-  messages_.Clear();
-}
-inline ::tunnelbroker::MessageToTunnelbrokerStruct* MessagesToSend::mutable_messages(int index) {
-  // @@protoc_insertion_point(field_mutable:tunnelbroker.MessagesToSend.messages)
-  return messages_.Mutable(index);
-}
-inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tunnelbroker::MessageToTunnelbrokerStruct >*
-MessagesToSend::mutable_messages() {
-  // @@protoc_insertion_point(field_mutable_list:tunnelbroker.MessagesToSend.messages)
-  return &messages_;
-}
-inline const ::tunnelbroker::MessageToTunnelbrokerStruct& MessagesToSend::_internal_messages(int index) const {
-  return messages_.Get(index);
-}
-inline const ::tunnelbroker::MessageToTunnelbrokerStruct& MessagesToSend::messages(int index) const {
-  // @@protoc_insertion_point(field_get:tunnelbroker.MessagesToSend.messages)
-  return _internal_messages(index);
-}
-inline ::tunnelbroker::MessageToTunnelbrokerStruct* MessagesToSend::_internal_add_messages() {
-  return messages_.Add();
-}
-inline ::tunnelbroker::MessageToTunnelbrokerStruct* MessagesToSend::add_messages() {
-  // @@protoc_insertion_point(field_add:tunnelbroker.MessagesToSend.messages)
-  return _internal_add_messages();
-}
-inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tunnelbroker::MessageToTunnelbrokerStruct >&
-MessagesToSend::messages() const {
-  // @@protoc_insertion_point(field_list:tunnelbroker.MessagesToSend.messages)
-  return messages_;
-}
-
-// -------------------------------------------------------------------
-
-// MessageToTunnelbroker
-
-// .tunnelbroker.MessagesToSend messagesToSend = 1;
-inline bool MessageToTunnelbroker::_internal_has_messagestosend() const {
-  return data_case() == kMessagesToSend;
-}
-inline bool MessageToTunnelbroker::has_messagestosend() const {
-  return _internal_has_messagestosend();
-}
-inline void MessageToTunnelbroker::set_has_messagestosend() {
-  _oneof_case_[0] = kMessagesToSend;
-}
-inline void MessageToTunnelbroker::clear_messagestosend() {
-  if (_internal_has_messagestosend()) {
-    if (GetArena() == nullptr) {
-      delete data_.messagestosend_;
-    }
-    clear_has_data();
-  }
-}
-inline ::tunnelbroker::MessagesToSend* MessageToTunnelbroker::release_messagestosend() {
-  // @@protoc_insertion_point(field_release:tunnelbroker.MessageToTunnelbroker.messagesToSend)
-  if (_internal_has_messagestosend()) {
-    clear_has_data();
-      ::tunnelbroker::MessagesToSend* temp = data_.messagestosend_;
-    if (GetArena() != nullptr) {
-      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
-    }
-    data_.messagestosend_ = nullptr;
-    return temp;
-  } else {
-    return nullptr;
-  }
-}
-inline const ::tunnelbroker::MessagesToSend& MessageToTunnelbroker::_internal_messagestosend() const {
-  return _internal_has_messagestosend()
-      ? *data_.messagestosend_
-      : reinterpret_cast< ::tunnelbroker::MessagesToSend&>(::tunnelbroker::_MessagesToSend_default_instance_);
-}
-inline const ::tunnelbroker::MessagesToSend& MessageToTunnelbroker::messagestosend() const {
-  // @@protoc_insertion_point(field_get:tunnelbroker.MessageToTunnelbroker.messagesToSend)
-  return _internal_messagestosend();
-}
-inline ::tunnelbroker::MessagesToSend* MessageToTunnelbroker::unsafe_arena_release_messagestosend() {
-  // @@protoc_insertion_point(field_unsafe_arena_release:tunnelbroker.MessageToTunnelbroker.messagesToSend)
-  if (_internal_has_messagestosend()) {
-    clear_has_data();
-    ::tunnelbroker::MessagesToSend* temp = data_.messagestosend_;
-    data_.messagestosend_ = nullptr;
-    return temp;
-  } else {
-    return nullptr;
-  }
-}
-inline void MessageToTunnelbroker::unsafe_arena_set_allocated_messagestosend(::tunnelbroker::MessagesToSend* messagestosend) {
-  clear_data();
-  if (messagestosend) {
-    set_has_messagestosend();
-    data_.messagestosend_ = messagestosend;
-  }
-  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:tunnelbroker.MessageToTunnelbroker.messagesToSend)
-}
-inline ::tunnelbroker::MessagesToSend* MessageToTunnelbroker::_internal_mutable_messagestosend() {
-  if (!_internal_has_messagestosend()) {
-    clear_data();
-    set_has_messagestosend();
-    data_.messagestosend_ = CreateMaybeMessage< ::tunnelbroker::MessagesToSend >(GetArena());
-  }
-  return data_.messagestosend_;
-}
-inline ::tunnelbroker::MessagesToSend* MessageToTunnelbroker::mutable_messagestosend() {
-  // @@protoc_insertion_point(field_mutable:tunnelbroker.MessageToTunnelbroker.messagesToSend)
-  return _internal_mutable_messagestosend();
-}
-
-// .tunnelbroker.ProcessedMessages processedMessages = 2;
-inline bool MessageToTunnelbroker::_internal_has_processedmessages() const {
-  return data_case() == kProcessedMessages;
-}
-inline bool MessageToTunnelbroker::has_processedmessages() const {
-  return _internal_has_processedmessages();
-}
-inline void MessageToTunnelbroker::set_has_processedmessages() {
-  _oneof_case_[0] = kProcessedMessages;
-}
-inline void MessageToTunnelbroker::clear_processedmessages() {
-  if (_internal_has_processedmessages()) {
-    if (GetArena() == nullptr) {
-      delete data_.processedmessages_;
-    }
-    clear_has_data();
-  }
-}
-inline ::tunnelbroker::ProcessedMessages* MessageToTunnelbroker::release_processedmessages() {
-  // @@protoc_insertion_point(field_release:tunnelbroker.MessageToTunnelbroker.processedMessages)
-  if (_internal_has_processedmessages()) {
-    clear_has_data();
-      ::tunnelbroker::ProcessedMessages* temp = data_.processedmessages_;
-    if (GetArena() != nullptr) {
-      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
-    }
-    data_.processedmessages_ = nullptr;
-    return temp;
-  } else {
-    return nullptr;
-  }
-}
-inline const ::tunnelbroker::ProcessedMessages& MessageToTunnelbroker::_internal_processedmessages() const {
-  return _internal_has_processedmessages()
-      ? *data_.processedmessages_
-      : reinterpret_cast< ::tunnelbroker::ProcessedMessages&>(::tunnelbroker::_ProcessedMessages_default_instance_);
-}
-inline const ::tunnelbroker::ProcessedMessages& MessageToTunnelbroker::processedmessages() const {
-  // @@protoc_insertion_point(field_get:tunnelbroker.MessageToTunnelbroker.processedMessages)
-  return _internal_processedmessages();
-}
-inline ::tunnelbroker::ProcessedMessages* MessageToTunnelbroker::unsafe_arena_release_processedmessages() {
-  // @@protoc_insertion_point(field_unsafe_arena_release:tunnelbroker.MessageToTunnelbroker.processedMessages)
-  if (_internal_has_processedmessages()) {
-    clear_has_data();
-    ::tunnelbroker::ProcessedMessages* temp = data_.processedmessages_;
-    data_.processedmessages_ = nullptr;
-    return temp;
-  } else {
-    return nullptr;
-  }
-}
-inline void MessageToTunnelbroker::unsafe_arena_set_allocated_processedmessages(::tunnelbroker::ProcessedMessages* processedmessages) {
-  clear_data();
-  if (processedmessages) {
-    set_has_processedmessages();
-    data_.processedmessages_ = processedmessages;
-  }
-  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:tunnelbroker.MessageToTunnelbroker.processedMessages)
-}
-inline ::tunnelbroker::ProcessedMessages* MessageToTunnelbroker::_internal_mutable_processedmessages() {
-  if (!_internal_has_processedmessages()) {
-    clear_data();
-    set_has_processedmessages();
-    data_.processedmessages_ = CreateMaybeMessage< ::tunnelbroker::ProcessedMessages >(GetArena());
-  }
-  return data_.processedmessages_;
-}
-inline ::tunnelbroker::ProcessedMessages* MessageToTunnelbroker::mutable_processedmessages() {
-  // @@protoc_insertion_point(field_mutable:tunnelbroker.MessageToTunnelbroker.processedMessages)
-  return _internal_mutable_processedmessages();
-}
-
-// string newNotifyToken = 3;
-inline bool MessageToTunnelbroker::_internal_has_newnotifytoken() const {
-  return data_case() == kNewNotifyToken;
-}
-inline bool MessageToTunnelbroker::has_newnotifytoken() const {
-  return _internal_has_newnotifytoken();
-}
-inline void MessageToTunnelbroker::set_has_newnotifytoken() {
-  _oneof_case_[0] = kNewNotifyToken;
-}
-inline void MessageToTunnelbroker::clear_newnotifytoken() {
-  if (_internal_has_newnotifytoken()) {
-    data_.newnotifytoken_.Destroy(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArena());
-    clear_has_data();
-  }
-}
-inline const std::string& MessageToTunnelbroker::newnotifytoken() const {
-  // @@protoc_insertion_point(field_get:tunnelbroker.MessageToTunnelbroker.newNotifyToken)
-  return _internal_newnotifytoken();
-}
-inline void MessageToTunnelbroker::set_newnotifytoken(const std::string& value) {
-  _internal_set_newnotifytoken(value);
-  // @@protoc_insertion_point(field_set:tunnelbroker.MessageToTunnelbroker.newNotifyToken)
-}
-inline std::string* MessageToTunnelbroker::mutable_newnotifytoken() {
-  // @@protoc_insertion_point(field_mutable:tunnelbroker.MessageToTunnelbroker.newNotifyToken)
-  return _internal_mutable_newnotifytoken();
-}
-inline const std::string& MessageToTunnelbroker::_internal_newnotifytoken() const {
-  if (_internal_has_newnotifytoken()) {
-    return data_.newnotifytoken_.Get();
-  }
-  return ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited();
-}
-inline void MessageToTunnelbroker::_internal_set_newnotifytoken(const std::string& value) {
-  if (!_internal_has_newnotifytoken()) {
-    clear_data();
-    set_has_newnotifytoken();
-    data_.newnotifytoken_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  }
-  data_.newnotifytoken_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArena());
-}
-inline void MessageToTunnelbroker::set_newnotifytoken(std::string&& value) {
-  // @@protoc_insertion_point(field_set:tunnelbroker.MessageToTunnelbroker.newNotifyToken)
-  if (!_internal_has_newnotifytoken()) {
-    clear_data();
-    set_has_newnotifytoken();
-    data_.newnotifytoken_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  }
-  data_.newnotifytoken_.Set(
-    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::move(value), GetArena());
-  // @@protoc_insertion_point(field_set_rvalue:tunnelbroker.MessageToTunnelbroker.newNotifyToken)
-}
-inline void MessageToTunnelbroker::set_newnotifytoken(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  if (!_internal_has_newnotifytoken()) {
-    clear_data();
-    set_has_newnotifytoken();
-    data_.newnotifytoken_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  }
-  data_.newnotifytoken_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{},
-      ::std::string(value), GetArena());
-  // @@protoc_insertion_point(field_set_char:tunnelbroker.MessageToTunnelbroker.newNotifyToken)
-}
-inline void MessageToTunnelbroker::set_newnotifytoken(const char* value,
-                             size_t size) {
-  if (!_internal_has_newnotifytoken()) {
-    clear_data();
-    set_has_newnotifytoken();
-    data_.newnotifytoken_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  }
-  data_.newnotifytoken_.Set(
-      ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(
-      reinterpret_cast<const char*>(value), size),
-      GetArena());
-  // @@protoc_insertion_point(field_set_pointer:tunnelbroker.MessageToTunnelbroker.newNotifyToken)
-}
-inline std::string* MessageToTunnelbroker::_internal_mutable_newnotifytoken() {
-  if (!_internal_has_newnotifytoken()) {
-    clear_data();
-    set_has_newnotifytoken();
-    data_.newnotifytoken_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  }
-  return data_.newnotifytoken_.Mutable(
-      ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArena());
-}
-inline std::string* MessageToTunnelbroker::release_newnotifytoken() {
-  // @@protoc_insertion_point(field_release:tunnelbroker.MessageToTunnelbroker.newNotifyToken)
-  if (_internal_has_newnotifytoken()) {
-    clear_has_data();
-    return data_.newnotifytoken_.ReleaseNonDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
-  } else {
-    return nullptr;
-  }
-}
-inline void MessageToTunnelbroker::set_allocated_newnotifytoken(std::string* newnotifytoken) {
-  if (has_data()) {
-    clear_data();
-  }
-  if (newnotifytoken != nullptr) {
-    set_has_newnotifytoken();
-    data_.newnotifytoken_.UnsafeSetDefault(newnotifytoken);
-    ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena();
-    if (arena != nullptr) {
-      arena->Own(newnotifytoken);
-    }
-  }
-  // @@protoc_insertion_point(field_set_allocated:tunnelbroker.MessageToTunnelbroker.newNotifyToken)
-}
-
-inline bool MessageToTunnelbroker::has_data() const {
-  return data_case() != DATA_NOT_SET;
-}
-inline void MessageToTunnelbroker::clear_has_data() {
-  _oneof_case_[0] = DATA_NOT_SET;
-}
-inline MessageToTunnelbroker::DataCase MessageToTunnelbroker::data_case() const {
-  return MessageToTunnelbroker::DataCase(_oneof_case_[0]);
-}
-// -------------------------------------------------------------------
-
-// MessageToClientStruct
-
-// string messageID = 1;
-inline void MessageToClientStruct::clear_messageid() {
-  messageid_.ClearToEmpty();
-}
-inline const std::string& MessageToClientStruct::messageid() const {
-  // @@protoc_insertion_point(field_get:tunnelbroker.MessageToClientStruct.messageID)
-  return _internal_messageid();
-}
-inline void MessageToClientStruct::set_messageid(const std::string& value) {
-  _internal_set_messageid(value);
-  // @@protoc_insertion_point(field_set:tunnelbroker.MessageToClientStruct.messageID)
-}
-inline std::string* MessageToClientStruct::mutable_messageid() {
-  // @@protoc_insertion_point(field_mutable:tunnelbroker.MessageToClientStruct.messageID)
-  return _internal_mutable_messageid();
-}
-inline const std::string& MessageToClientStruct::_internal_messageid() const {
-  return messageid_.Get();
-}
-inline void MessageToClientStruct::_internal_set_messageid(const std::string& value) {
-  
-  messageid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArena());
-}
-inline void MessageToClientStruct::set_messageid(std::string&& value) {
-  
-  messageid_.Set(
-    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::move(value), GetArena());
-  // @@protoc_insertion_point(field_set_rvalue:tunnelbroker.MessageToClientStruct.messageID)
-}
-inline void MessageToClientStruct::set_messageid(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  messageid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(value), GetArena());
-  // @@protoc_insertion_point(field_set_char:tunnelbroker.MessageToClientStruct.messageID)
-}
-inline void MessageToClientStruct::set_messageid(const char* value,
-    size_t size) {
-  
-  messageid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(
-      reinterpret_cast<const char*>(value), size), GetArena());
-  // @@protoc_insertion_point(field_set_pointer:tunnelbroker.MessageToClientStruct.messageID)
-}
-inline std::string* MessageToClientStruct::_internal_mutable_messageid() {
-  
-  return messageid_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArena());
-}
-inline std::string* MessageToClientStruct::release_messageid() {
-  // @@protoc_insertion_point(field_release:tunnelbroker.MessageToClientStruct.messageID)
-  return messageid_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
-}
-inline void MessageToClientStruct::set_allocated_messageid(std::string* messageid) {
-  if (messageid != nullptr) {
-    
-  } else {
-    
-  }
-  messageid_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), messageid,
-      GetArena());
-  // @@protoc_insertion_point(field_set_allocated:tunnelbroker.MessageToClientStruct.messageID)
-}
-
-// string fromDeviceID = 2;
-inline void MessageToClientStruct::clear_fromdeviceid() {
-  fromdeviceid_.ClearToEmpty();
-}
-inline const std::string& MessageToClientStruct::fromdeviceid() const {
-  // @@protoc_insertion_point(field_get:tunnelbroker.MessageToClientStruct.fromDeviceID)
-  return _internal_fromdeviceid();
-}
-inline void MessageToClientStruct::set_fromdeviceid(const std::string& value) {
-  _internal_set_fromdeviceid(value);
-  // @@protoc_insertion_point(field_set:tunnelbroker.MessageToClientStruct.fromDeviceID)
-}
-inline std::string* MessageToClientStruct::mutable_fromdeviceid() {
-  // @@protoc_insertion_point(field_mutable:tunnelbroker.MessageToClientStruct.fromDeviceID)
-  return _internal_mutable_fromdeviceid();
-}
-inline const std::string& MessageToClientStruct::_internal_fromdeviceid() const {
-  return fromdeviceid_.Get();
-}
-inline void MessageToClientStruct::_internal_set_fromdeviceid(const std::string& value) {
-  
-  fromdeviceid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArena());
-}
-inline void MessageToClientStruct::set_fromdeviceid(std::string&& value) {
-  
-  fromdeviceid_.Set(
-    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::move(value), GetArena());
-  // @@protoc_insertion_point(field_set_rvalue:tunnelbroker.MessageToClientStruct.fromDeviceID)
-}
-inline void MessageToClientStruct::set_fromdeviceid(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  fromdeviceid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(value), GetArena());
-  // @@protoc_insertion_point(field_set_char:tunnelbroker.MessageToClientStruct.fromDeviceID)
-}
-inline void MessageToClientStruct::set_fromdeviceid(const char* value,
-    size_t size) {
-  
-  fromdeviceid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(
-      reinterpret_cast<const char*>(value), size), GetArena());
-  // @@protoc_insertion_point(field_set_pointer:tunnelbroker.MessageToClientStruct.fromDeviceID)
-}
-inline std::string* MessageToClientStruct::_internal_mutable_fromdeviceid() {
-  
-  return fromdeviceid_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArena());
-}
-inline std::string* MessageToClientStruct::release_fromdeviceid() {
-  // @@protoc_insertion_point(field_release:tunnelbroker.MessageToClientStruct.fromDeviceID)
-  return fromdeviceid_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
-}
-inline void MessageToClientStruct::set_allocated_fromdeviceid(std::string* fromdeviceid) {
-  if (fromdeviceid != nullptr) {
-    
-  } else {
-    
-  }
-  fromdeviceid_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), fromdeviceid,
-      GetArena());
-  // @@protoc_insertion_point(field_set_allocated:tunnelbroker.MessageToClientStruct.fromDeviceID)
-}
-
-// string payload = 3;
-inline void MessageToClientStruct::clear_payload() {
-  payload_.ClearToEmpty();
-}
-inline const std::string& MessageToClientStruct::payload() const {
-  // @@protoc_insertion_point(field_get:tunnelbroker.MessageToClientStruct.payload)
-  return _internal_payload();
-}
-inline void MessageToClientStruct::set_payload(const std::string& value) {
-  _internal_set_payload(value);
-  // @@protoc_insertion_point(field_set:tunnelbroker.MessageToClientStruct.payload)
-}
-inline std::string* MessageToClientStruct::mutable_payload() {
-  // @@protoc_insertion_point(field_mutable:tunnelbroker.MessageToClientStruct.payload)
-  return _internal_mutable_payload();
-}
-inline const std::string& MessageToClientStruct::_internal_payload() const {
-  return payload_.Get();
-}
-inline void MessageToClientStruct::_internal_set_payload(const std::string& value) {
-  
-  payload_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArena());
-}
-inline void MessageToClientStruct::set_payload(std::string&& value) {
-  
-  payload_.Set(
-    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::move(value), GetArena());
-  // @@protoc_insertion_point(field_set_rvalue:tunnelbroker.MessageToClientStruct.payload)
-}
-inline void MessageToClientStruct::set_payload(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  payload_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(value), GetArena());
-  // @@protoc_insertion_point(field_set_char:tunnelbroker.MessageToClientStruct.payload)
-}
-inline void MessageToClientStruct::set_payload(const char* value,
-    size_t size) {
-  
-  payload_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, ::std::string(
-      reinterpret_cast<const char*>(value), size), GetArena());
-  // @@protoc_insertion_point(field_set_pointer:tunnelbroker.MessageToClientStruct.payload)
-}
-inline std::string* MessageToClientStruct::_internal_mutable_payload() {
-  
-  return payload_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArena());
-}
-inline std::string* MessageToClientStruct::release_payload() {
-  // @@protoc_insertion_point(field_release:tunnelbroker.MessageToClientStruct.payload)
-  return payload_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
-}
-inline void MessageToClientStruct::set_allocated_payload(std::string* payload) {
-  if (payload != nullptr) {
-    
-  } else {
-    
-  }
-  payload_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), payload,
-      GetArena());
-  // @@protoc_insertion_point(field_set_allocated:tunnelbroker.MessageToClientStruct.payload)
-}
-
-// repeated string blobHashes = 4;
-inline int MessageToClientStruct::_internal_blobhashes_size() const {
-  return blobhashes_.size();
-}
-inline int MessageToClientStruct::blobhashes_size() const {
-  return _internal_blobhashes_size();
-}
-inline void MessageToClientStruct::clear_blobhashes() {
-  blobhashes_.Clear();
-}
-inline std::string* MessageToClientStruct::add_blobhashes() {
-  // @@protoc_insertion_point(field_add_mutable:tunnelbroker.MessageToClientStruct.blobHashes)
-  return _internal_add_blobhashes();
-}
-inline const std::string& MessageToClientStruct::_internal_blobhashes(int index) const {
-  return blobhashes_.Get(index);
-}
-inline const std::string& MessageToClientStruct::blobhashes(int index) const {
-  // @@protoc_insertion_point(field_get:tunnelbroker.MessageToClientStruct.blobHashes)
-  return _internal_blobhashes(index);
-}
-inline std::string* MessageToClientStruct::mutable_blobhashes(int index) {
-  // @@protoc_insertion_point(field_mutable:tunnelbroker.MessageToClientStruct.blobHashes)
-  return blobhashes_.Mutable(index);
-}
-inline void MessageToClientStruct::set_blobhashes(int index, const std::string& value) {
-  // @@protoc_insertion_point(field_set:tunnelbroker.MessageToClientStruct.blobHashes)
-  blobhashes_.Mutable(index)->assign(value);
-}
-inline void MessageToClientStruct::set_blobhashes(int index, std::string&& value) {
-  // @@protoc_insertion_point(field_set:tunnelbroker.MessageToClientStruct.blobHashes)
-  blobhashes_.Mutable(index)->assign(std::move(value));
-}
-inline void MessageToClientStruct::set_blobhashes(int index, const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  blobhashes_.Mutable(index)->assign(value);
-  // @@protoc_insertion_point(field_set_char:tunnelbroker.MessageToClientStruct.blobHashes)
-}
-inline void MessageToClientStruct::set_blobhashes(int index, const char* value, size_t size) {
-  blobhashes_.Mutable(index)->assign(
-    reinterpret_cast<const char*>(value), size);
-  // @@protoc_insertion_point(field_set_pointer:tunnelbroker.MessageToClientStruct.blobHashes)
-}
-inline std::string* MessageToClientStruct::_internal_add_blobhashes() {
-  return blobhashes_.Add();
-}
-inline void MessageToClientStruct::add_blobhashes(const std::string& value) {
-  blobhashes_.Add()->assign(value);
-  // @@protoc_insertion_point(field_add:tunnelbroker.MessageToClientStruct.blobHashes)
-}
-inline void MessageToClientStruct::add_blobhashes(std::string&& value) {
-  blobhashes_.Add(std::move(value));
-  // @@protoc_insertion_point(field_add:tunnelbroker.MessageToClientStruct.blobHashes)
-}
-inline void MessageToClientStruct::add_blobhashes(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  blobhashes_.Add()->assign(value);
-  // @@protoc_insertion_point(field_add_char:tunnelbroker.MessageToClientStruct.blobHashes)
-}
-inline void MessageToClientStruct::add_blobhashes(const char* value, size_t size) {
-  blobhashes_.Add()->assign(reinterpret_cast<const char*>(value), size);
-  // @@protoc_insertion_point(field_add_pointer:tunnelbroker.MessageToClientStruct.blobHashes)
-}
-inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
-MessageToClientStruct::blobhashes() const {
-  // @@protoc_insertion_point(field_list:tunnelbroker.MessageToClientStruct.blobHashes)
-  return blobhashes_;
-}
-inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
-MessageToClientStruct::mutable_blobhashes() {
-  // @@protoc_insertion_point(field_mutable_list:tunnelbroker.MessageToClientStruct.blobHashes)
-  return &blobhashes_;
-}
-
-// -------------------------------------------------------------------
-
-// MessagesToDeliver
-
-// repeated .tunnelbroker.MessageToClientStruct messages = 1;
-inline int MessagesToDeliver::_internal_messages_size() const {
-  return messages_.size();
-}
-inline int MessagesToDeliver::messages_size() const {
-  return _internal_messages_size();
-}
-inline void MessagesToDeliver::clear_messages() {
-  messages_.Clear();
-}
-inline ::tunnelbroker::MessageToClientStruct* MessagesToDeliver::mutable_messages(int index) {
-  // @@protoc_insertion_point(field_mutable:tunnelbroker.MessagesToDeliver.messages)
-  return messages_.Mutable(index);
-}
-inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tunnelbroker::MessageToClientStruct >*
-MessagesToDeliver::mutable_messages() {
-  // @@protoc_insertion_point(field_mutable_list:tunnelbroker.MessagesToDeliver.messages)
-  return &messages_;
-}
-inline const ::tunnelbroker::MessageToClientStruct& MessagesToDeliver::_internal_messages(int index) const {
-  return messages_.Get(index);
-}
-inline const ::tunnelbroker::MessageToClientStruct& MessagesToDeliver::messages(int index) const {
-  // @@protoc_insertion_point(field_get:tunnelbroker.MessagesToDeliver.messages)
-  return _internal_messages(index);
-}
-inline ::tunnelbroker::MessageToClientStruct* MessagesToDeliver::_internal_add_messages() {
-  return messages_.Add();
-}
-inline ::tunnelbroker::MessageToClientStruct* MessagesToDeliver::add_messages() {
-  // @@protoc_insertion_point(field_add:tunnelbroker.MessagesToDeliver.messages)
-  return _internal_add_messages();
-}
-inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::tunnelbroker::MessageToClientStruct >&
-MessagesToDeliver::messages() const {
-  // @@protoc_insertion_point(field_list:tunnelbroker.MessagesToDeliver.messages)
-  return messages_;
-}
-
-// -------------------------------------------------------------------
-
-// MessageToClient
-
-// .tunnelbroker.MessagesToDeliver messagesToDeliver = 1;
-inline bool MessageToClient::_internal_has_messagestodeliver() const {
-  return data_case() == kMessagesToDeliver;
-}
-inline bool MessageToClient::has_messagestodeliver() const {
-  return _internal_has_messagestodeliver();
-}
-inline void MessageToClient::set_has_messagestodeliver() {
-  _oneof_case_[0] = kMessagesToDeliver;
-}
-inline void MessageToClient::clear_messagestodeliver() {
-  if (_internal_has_messagestodeliver()) {
-    if (GetArena() == nullptr) {
-      delete data_.messagestodeliver_;
-    }
-    clear_has_data();
-  }
-}
-inline ::tunnelbroker::MessagesToDeliver* MessageToClient::release_messagestodeliver() {
-  // @@protoc_insertion_point(field_release:tunnelbroker.MessageToClient.messagesToDeliver)
-  if (_internal_has_messagestodeliver()) {
-    clear_has_data();
-      ::tunnelbroker::MessagesToDeliver* temp = data_.messagestodeliver_;
-    if (GetArena() != nullptr) {
-      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
-    }
-    data_.messagestodeliver_ = nullptr;
-    return temp;
-  } else {
-    return nullptr;
-  }
-}
-inline const ::tunnelbroker::MessagesToDeliver& MessageToClient::_internal_messagestodeliver() const {
-  return _internal_has_messagestodeliver()
-      ? *data_.messagestodeliver_
-      : reinterpret_cast< ::tunnelbroker::MessagesToDeliver&>(::tunnelbroker::_MessagesToDeliver_default_instance_);
-}
-inline const ::tunnelbroker::MessagesToDeliver& MessageToClient::messagestodeliver() const {
-  // @@protoc_insertion_point(field_get:tunnelbroker.MessageToClient.messagesToDeliver)
-  return _internal_messagestodeliver();
-}
-inline ::tunnelbroker::MessagesToDeliver* MessageToClient::unsafe_arena_release_messagestodeliver() {
-  // @@protoc_insertion_point(field_unsafe_arena_release:tunnelbroker.MessageToClient.messagesToDeliver)
-  if (_internal_has_messagestodeliver()) {
-    clear_has_data();
-    ::tunnelbroker::MessagesToDeliver* temp = data_.messagestodeliver_;
-    data_.messagestodeliver_ = nullptr;
-    return temp;
-  } else {
-    return nullptr;
-  }
-}
-inline void MessageToClient::unsafe_arena_set_allocated_messagestodeliver(::tunnelbroker::MessagesToDeliver* messagestodeliver) {
-  clear_data();
-  if (messagestodeliver) {
-    set_has_messagestodeliver();
-    data_.messagestodeliver_ = messagestodeliver;
-  }
-  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:tunnelbroker.MessageToClient.messagesToDeliver)
-}
-inline ::tunnelbroker::MessagesToDeliver* MessageToClient::_internal_mutable_messagestodeliver() {
-  if (!_internal_has_messagestodeliver()) {
-    clear_data();
-    set_has_messagestodeliver();
-    data_.messagestodeliver_ = CreateMaybeMessage< ::tunnelbroker::MessagesToDeliver >(GetArena());
-  }
-  return data_.messagestodeliver_;
-}
-inline ::tunnelbroker::MessagesToDeliver* MessageToClient::mutable_messagestodeliver() {
-  // @@protoc_insertion_point(field_mutable:tunnelbroker.MessageToClient.messagesToDeliver)
-  return _internal_mutable_messagestodeliver();
-}
-
-// .tunnelbroker.ProcessedMessages processedMessages = 2;
-inline bool MessageToClient::_internal_has_processedmessages() const {
-  return data_case() == kProcessedMessages;
-}
-inline bool MessageToClient::has_processedmessages() const {
-  return _internal_has_processedmessages();
-}
-inline void MessageToClient::set_has_processedmessages() {
-  _oneof_case_[0] = kProcessedMessages;
-}
-inline void MessageToClient::clear_processedmessages() {
-  if (_internal_has_processedmessages()) {
-    if (GetArena() == nullptr) {
-      delete data_.processedmessages_;
-    }
-    clear_has_data();
-  }
-}
-inline ::tunnelbroker::ProcessedMessages* MessageToClient::release_processedmessages() {
-  // @@protoc_insertion_point(field_release:tunnelbroker.MessageToClient.processedMessages)
-  if (_internal_has_processedmessages()) {
-    clear_has_data();
-      ::tunnelbroker::ProcessedMessages* temp = data_.processedmessages_;
-    if (GetArena() != nullptr) {
-      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
-    }
-    data_.processedmessages_ = nullptr;
-    return temp;
-  } else {
-    return nullptr;
-  }
-}
-inline const ::tunnelbroker::ProcessedMessages& MessageToClient::_internal_processedmessages() const {
-  return _internal_has_processedmessages()
-      ? *data_.processedmessages_
-      : reinterpret_cast< ::tunnelbroker::ProcessedMessages&>(::tunnelbroker::_ProcessedMessages_default_instance_);
-}
-inline const ::tunnelbroker::ProcessedMessages& MessageToClient::processedmessages() const {
-  // @@protoc_insertion_point(field_get:tunnelbroker.MessageToClient.processedMessages)
-  return _internal_processedmessages();
-}
-inline ::tunnelbroker::ProcessedMessages* MessageToClient::unsafe_arena_release_processedmessages() {
-  // @@protoc_insertion_point(field_unsafe_arena_release:tunnelbroker.MessageToClient.processedMessages)
-  if (_internal_has_processedmessages()) {
-    clear_has_data();
-    ::tunnelbroker::ProcessedMessages* temp = data_.processedmessages_;
-    data_.processedmessages_ = nullptr;
-    return temp;
-  } else {
-    return nullptr;
-  }
-}
-inline void MessageToClient::unsafe_arena_set_allocated_processedmessages(::tunnelbroker::ProcessedMessages* processedmessages) {
-  clear_data();
-  if (processedmessages) {
-    set_has_processedmessages();
-    data_.processedmessages_ = processedmessages;
-  }
-  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:tunnelbroker.MessageToClient.processedMessages)
-}
-inline ::tunnelbroker::ProcessedMessages* MessageToClient::_internal_mutable_processedmessages() {
-  if (!_internal_has_processedmessages()) {
-    clear_data();
-    set_has_processedmessages();
-    data_.processedmessages_ = CreateMaybeMessage< ::tunnelbroker::ProcessedMessages >(GetArena());
-  }
-  return data_.processedmessages_;
-}
-inline ::tunnelbroker::ProcessedMessages* MessageToClient::mutable_processedmessages() {
-  // @@protoc_insertion_point(field_mutable:tunnelbroker.MessageToClient.processedMessages)
-  return _internal_mutable_processedmessages();
-}
-
-// .google.protobuf.Empty newNotifyTokenRequired = 3;
-inline bool MessageToClient::_internal_has_newnotifytokenrequired() const {
-  return data_case() == kNewNotifyTokenRequired;
-}
-inline bool MessageToClient::has_newnotifytokenrequired() const {
-  return _internal_has_newnotifytokenrequired();
-}
-inline void MessageToClient::set_has_newnotifytokenrequired() {
-  _oneof_case_[0] = kNewNotifyTokenRequired;
-}
-inline PROTOBUF_NAMESPACE_ID::Empty* MessageToClient::release_newnotifytokenrequired() {
-  // @@protoc_insertion_point(field_release:tunnelbroker.MessageToClient.newNotifyTokenRequired)
-  if (_internal_has_newnotifytokenrequired()) {
-    clear_has_data();
-      PROTOBUF_NAMESPACE_ID::Empty* temp = data_.newnotifytokenrequired_;
-    if (GetArena() != nullptr) {
-      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
-    }
-    data_.newnotifytokenrequired_ = nullptr;
-    return temp;
-  } else {
-    return nullptr;
-  }
-}
-inline const PROTOBUF_NAMESPACE_ID::Empty& MessageToClient::_internal_newnotifytokenrequired() const {
-  return _internal_has_newnotifytokenrequired()
-      ? *data_.newnotifytokenrequired_
-      : reinterpret_cast< PROTOBUF_NAMESPACE_ID::Empty&>(PROTOBUF_NAMESPACE_ID::_Empty_default_instance_);
-}
-inline const PROTOBUF_NAMESPACE_ID::Empty& MessageToClient::newnotifytokenrequired() const {
-  // @@protoc_insertion_point(field_get:tunnelbroker.MessageToClient.newNotifyTokenRequired)
-  return _internal_newnotifytokenrequired();
-}
-inline PROTOBUF_NAMESPACE_ID::Empty* MessageToClient::unsafe_arena_release_newnotifytokenrequired() {
-  // @@protoc_insertion_point(field_unsafe_arena_release:tunnelbroker.MessageToClient.newNotifyTokenRequired)
-  if (_internal_has_newnotifytokenrequired()) {
-    clear_has_data();
-    PROTOBUF_NAMESPACE_ID::Empty* temp = data_.newnotifytokenrequired_;
-    data_.newnotifytokenrequired_ = nullptr;
-    return temp;
-  } else {
-    return nullptr;
-  }
-}
-inline void MessageToClient::unsafe_arena_set_allocated_newnotifytokenrequired(PROTOBUF_NAMESPACE_ID::Empty* newnotifytokenrequired) {
-  clear_data();
-  if (newnotifytokenrequired) {
-    set_has_newnotifytokenrequired();
-    data_.newnotifytokenrequired_ = newnotifytokenrequired;
-  }
-  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:tunnelbroker.MessageToClient.newNotifyTokenRequired)
-}
-inline PROTOBUF_NAMESPACE_ID::Empty* MessageToClient::_internal_mutable_newnotifytokenrequired() {
-  if (!_internal_has_newnotifytokenrequired()) {
-    clear_data();
-    set_has_newnotifytokenrequired();
-    data_.newnotifytokenrequired_ = CreateMaybeMessage< PROTOBUF_NAMESPACE_ID::Empty >(GetArena());
-  }
-  return data_.newnotifytokenrequired_;
-}
-inline PROTOBUF_NAMESPACE_ID::Empty* MessageToClient::mutable_newnotifytokenrequired() {
-  // @@protoc_insertion_point(field_mutable:tunnelbroker.MessageToClient.newNotifyTokenRequired)
-  return _internal_mutable_newnotifytokenrequired();
-}
-
-inline bool MessageToClient::has_data() const {
-  return data_case() != DATA_NOT_SET;
-}
-inline void MessageToClient::clear_has_data() {
-  _oneof_case_[0] = DATA_NOT_SET;
-}
-inline MessageToClient::DataCase MessageToClient::data_case() const {
-  return MessageToClient::DataCase(_oneof_case_[0]);
-}
-#ifdef __GNUC__
-  #pragma GCC diagnostic pop
-#endif  // __GNUC__
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-
-// @@protoc_insertion_point(namespace_scope)
-
-}  // namespace tunnelbroker
-
-PROTOBUF_NAMESPACE_OPEN
-
-template <> struct is_proto_enum< ::tunnelbroker::NewSessionRequest_DeviceTypes> : ::std::true_type {};
-template <>
-inline const EnumDescriptor* GetEnumDescriptor< ::tunnelbroker::NewSessionRequest_DeviceTypes>() {
-  return ::tunnelbroker::NewSessionRequest_DeviceTypes_descriptor();
-}
-
-PROTOBUF_NAMESPACE_CLOSE
-
-// @@protoc_insertion_point(global_scope)
-
-#include <google/protobuf/port_undef.inc>
-#endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_tunnelbroker_2eproto
diff --git a/shared/protos/_generated/tunnelbroker.pb.cc b/shared/protos/_generated/tunnelbroker.pb.cc
deleted file mode 100644
--- a/shared/protos/_generated/tunnelbroker.pb.cc
+++ /dev/null
@@ -1,3336 +0,0 @@
-// @generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: tunnelbroker.proto
-
-#include "tunnelbroker.pb.h"
-
-#include <algorithm>
-
-#include <google/protobuf/io/coded_stream.h>
-#include <google/protobuf/extension_set.h>
-#include <google/protobuf/wire_format_lite.h>
-#include <google/protobuf/descriptor.h>
-#include <google/protobuf/generated_message_reflection.h>
-#include <google/protobuf/reflection_ops.h>
-#include <google/protobuf/wire_format.h>
-// @@protoc_insertion_point(includes)
-#include <google/protobuf/port_def.inc>
-
-PROTOBUF_PRAGMA_INIT_SEG
-namespace tunnelbroker {
-constexpr SessionSignatureRequest::SessionSignatureRequest(
-  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
-  : deviceid_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string){}
-struct SessionSignatureRequestDefaultTypeInternal {
-  constexpr SessionSignatureRequestDefaultTypeInternal()
-    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
-  ~SessionSignatureRequestDefaultTypeInternal() {}
-  union {
-    SessionSignatureRequest _instance;
-  };
-};
-PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SessionSignatureRequestDefaultTypeInternal _SessionSignatureRequest_default_instance_;
-constexpr SessionSignatureResponse::SessionSignatureResponse(
-  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
-  : tosign_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string){}
-struct SessionSignatureResponseDefaultTypeInternal {
-  constexpr SessionSignatureResponseDefaultTypeInternal()
-    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
-  ~SessionSignatureResponseDefaultTypeInternal() {}
-  union {
-    SessionSignatureResponse _instance;
-  };
-};
-PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SessionSignatureResponseDefaultTypeInternal _SessionSignatureResponse_default_instance_;
-constexpr NewSessionRequest::NewSessionRequest(
-  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
-  : deviceid_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
-  , publickey_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
-  , signature_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
-  , notifytoken_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
-  , deviceappversion_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
-  , deviceos_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
-  , devicetype_(0)
-{}
-struct NewSessionRequestDefaultTypeInternal {
-  constexpr NewSessionRequestDefaultTypeInternal()
-    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
-  ~NewSessionRequestDefaultTypeInternal() {}
-  union {
-    NewSessionRequest _instance;
-  };
-};
-PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT NewSessionRequestDefaultTypeInternal _NewSessionRequest_default_instance_;
-constexpr NewSessionResponse::NewSessionResponse(
-  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
-  : sessionid_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string){}
-struct NewSessionResponseDefaultTypeInternal {
-  constexpr NewSessionResponseDefaultTypeInternal()
-    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
-  ~NewSessionResponseDefaultTypeInternal() {}
-  union {
-    NewSessionResponse _instance;
-  };
-};
-PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT NewSessionResponseDefaultTypeInternal _NewSessionResponse_default_instance_;
-constexpr ProcessedMessages::ProcessedMessages(
-  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
-  : messageid_(){}
-struct ProcessedMessagesDefaultTypeInternal {
-  constexpr ProcessedMessagesDefaultTypeInternal()
-    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
-  ~ProcessedMessagesDefaultTypeInternal() {}
-  union {
-    ProcessedMessages _instance;
-  };
-};
-PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ProcessedMessagesDefaultTypeInternal _ProcessedMessages_default_instance_;
-constexpr MessageToTunnelbrokerStruct::MessageToTunnelbrokerStruct(
-  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
-  : blobhashes_()
-  , todeviceid_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
-  , payload_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string){}
-struct MessageToTunnelbrokerStructDefaultTypeInternal {
-  constexpr MessageToTunnelbrokerStructDefaultTypeInternal()
-    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
-  ~MessageToTunnelbrokerStructDefaultTypeInternal() {}
-  union {
-    MessageToTunnelbrokerStruct _instance;
-  };
-};
-PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT MessageToTunnelbrokerStructDefaultTypeInternal _MessageToTunnelbrokerStruct_default_instance_;
-constexpr MessagesToSend::MessagesToSend(
-  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
-  : messages_(){}
-struct MessagesToSendDefaultTypeInternal {
-  constexpr MessagesToSendDefaultTypeInternal()
-    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
-  ~MessagesToSendDefaultTypeInternal() {}
-  union {
-    MessagesToSend _instance;
-  };
-};
-PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT MessagesToSendDefaultTypeInternal _MessagesToSend_default_instance_;
-constexpr MessageToTunnelbroker::MessageToTunnelbroker(
-  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
-  : _oneof_case_{}{}
-struct MessageToTunnelbrokerDefaultTypeInternal {
-  constexpr MessageToTunnelbrokerDefaultTypeInternal()
-    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
-  ~MessageToTunnelbrokerDefaultTypeInternal() {}
-  union {
-    MessageToTunnelbroker _instance;
-  };
-};
-PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT MessageToTunnelbrokerDefaultTypeInternal _MessageToTunnelbroker_default_instance_;
-constexpr MessageToClientStruct::MessageToClientStruct(
-  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
-  : blobhashes_()
-  , messageid_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
-  , fromdeviceid_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
-  , payload_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string){}
-struct MessageToClientStructDefaultTypeInternal {
-  constexpr MessageToClientStructDefaultTypeInternal()
-    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
-  ~MessageToClientStructDefaultTypeInternal() {}
-  union {
-    MessageToClientStruct _instance;
-  };
-};
-PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT MessageToClientStructDefaultTypeInternal _MessageToClientStruct_default_instance_;
-constexpr MessagesToDeliver::MessagesToDeliver(
-  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
-  : messages_(){}
-struct MessagesToDeliverDefaultTypeInternal {
-  constexpr MessagesToDeliverDefaultTypeInternal()
-    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
-  ~MessagesToDeliverDefaultTypeInternal() {}
-  union {
-    MessagesToDeliver _instance;
-  };
-};
-PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT MessagesToDeliverDefaultTypeInternal _MessagesToDeliver_default_instance_;
-constexpr MessageToClient::MessageToClient(
-  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
-  : _oneof_case_{}{}
-struct MessageToClientDefaultTypeInternal {
-  constexpr MessageToClientDefaultTypeInternal()
-    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
-  ~MessageToClientDefaultTypeInternal() {}
-  union {
-    MessageToClient _instance;
-  };
-};
-PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT MessageToClientDefaultTypeInternal _MessageToClient_default_instance_;
-}  // namespace tunnelbroker
-static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_tunnelbroker_2eproto[11];
-static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_tunnelbroker_2eproto[1];
-static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_tunnelbroker_2eproto = nullptr;
-
-const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_tunnelbroker_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::SessionSignatureRequest, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::SessionSignatureRequest, deviceid_),
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::SessionSignatureResponse, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::SessionSignatureResponse, tosign_),
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::NewSessionRequest, _has_bits_),
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::NewSessionRequest, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::NewSessionRequest, deviceid_),
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::NewSessionRequest, publickey_),
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::NewSessionRequest, signature_),
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::NewSessionRequest, notifytoken_),
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::NewSessionRequest, devicetype_),
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::NewSessionRequest, deviceappversion_),
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::NewSessionRequest, deviceos_),
-  ~0u,
-  ~0u,
-  ~0u,
-  0,
-  ~0u,
-  ~0u,
-  ~0u,
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::NewSessionResponse, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::NewSessionResponse, sessionid_),
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::ProcessedMessages, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::ProcessedMessages, messageid_),
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::MessageToTunnelbrokerStruct, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::MessageToTunnelbrokerStruct, todeviceid_),
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::MessageToTunnelbrokerStruct, payload_),
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::MessageToTunnelbrokerStruct, blobhashes_),
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::MessagesToSend, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::MessagesToSend, messages_),
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::MessageToTunnelbroker, _internal_metadata_),
-  ~0u,  // no _extensions_
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::MessageToTunnelbroker, _oneof_case_[0]),
-  ~0u,  // no _weak_field_map_
-  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
-  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
-  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::MessageToTunnelbroker, data_),
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::MessageToClientStruct, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::MessageToClientStruct, messageid_),
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::MessageToClientStruct, fromdeviceid_),
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::MessageToClientStruct, payload_),
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::MessageToClientStruct, blobhashes_),
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::MessagesToDeliver, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::MessagesToDeliver, messages_),
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::MessageToClient, _internal_metadata_),
-  ~0u,  // no _extensions_
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::MessageToClient, _oneof_case_[0]),
-  ~0u,  // no _weak_field_map_
-  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
-  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
-  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
-  PROTOBUF_FIELD_OFFSET(::tunnelbroker::MessageToClient, data_),
-};
-static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
-  { 0, -1, sizeof(::tunnelbroker::SessionSignatureRequest)},
-  { 6, -1, sizeof(::tunnelbroker::SessionSignatureResponse)},
-  { 12, 24, sizeof(::tunnelbroker::NewSessionRequest)},
-  { 31, -1, sizeof(::tunnelbroker::NewSessionResponse)},
-  { 37, -1, sizeof(::tunnelbroker::ProcessedMessages)},
-  { 43, -1, sizeof(::tunnelbroker::MessageToTunnelbrokerStruct)},
-  { 51, -1, sizeof(::tunnelbroker::MessagesToSend)},
-  { 57, -1, sizeof(::tunnelbroker::MessageToTunnelbroker)},
-  { 66, -1, sizeof(::tunnelbroker::MessageToClientStruct)},
-  { 75, -1, sizeof(::tunnelbroker::MessagesToDeliver)},
-  { 81, -1, sizeof(::tunnelbroker::MessageToClient)},
-};
-
-static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
-  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::tunnelbroker::_SessionSignatureRequest_default_instance_),
-  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::tunnelbroker::_SessionSignatureResponse_default_instance_),
-  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::tunnelbroker::_NewSessionRequest_default_instance_),
-  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::tunnelbroker::_NewSessionResponse_default_instance_),
-  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::tunnelbroker::_ProcessedMessages_default_instance_),
-  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::tunnelbroker::_MessageToTunnelbrokerStruct_default_instance_),
-  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::tunnelbroker::_MessagesToSend_default_instance_),
-  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::tunnelbroker::_MessageToTunnelbroker_default_instance_),
-  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::tunnelbroker::_MessageToClientStruct_default_instance_),
-  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::tunnelbroker::_MessagesToDeliver_default_instance_),
-  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::tunnelbroker::_MessageToClient_default_instance_),
-};
-
-const char descriptor_table_protodef_tunnelbroker_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
-  "\n\022tunnelbroker.proto\022\014tunnelbroker\032\033goog"
-  "le/protobuf/empty.proto\"+\n\027SessionSignat"
-  "ureRequest\022\020\n\010deviceID\030\001 \001(\t\"*\n\030SessionS"
-  "ignatureResponse\022\016\n\006toSign\030\001 \001(\t\"\225\002\n\021New"
-  "SessionRequest\022\020\n\010deviceID\030\001 \001(\t\022\021\n\tpubl"
-  "icKey\030\002 \001(\t\022\021\n\tsignature\030\003 \001(\t\022\030\n\013notify"
-  "Token\030\004 \001(\tH\000\210\001\001\022\?\n\ndeviceType\030\005 \001(\0162+.t"
-  "unnelbroker.NewSessionRequest.DeviceType"
-  "s\022\030\n\020deviceAppVersion\030\006 \001(\t\022\020\n\010deviceOS\030"
-  "\007 \001(\t\"1\n\013DeviceTypes\022\n\n\006MOBILE\020\000\022\007\n\003WEB\020"
-  "\001\022\r\n\tKEYSERVER\020\002B\016\n\014_notifyToken\"\'\n\022NewS"
-  "essionResponse\022\021\n\tsessionID\030\001 \001(\t\"&\n\021Pro"
-  "cessedMessages\022\021\n\tmessageID\030\001 \003(\t\"V\n\033Mes"
-  "sageToTunnelbrokerStruct\022\022\n\ntoDeviceID\030\001"
-  " \001(\t\022\017\n\007payload\030\002 \001(\t\022\022\n\nblobHashes\030\003 \003("
-  "\t\"M\n\016MessagesToSend\022;\n\010messages\030\001 \003(\0132)."
-  "tunnelbroker.MessageToTunnelbrokerStruct"
-  "\"\257\001\n\025MessageToTunnelbroker\0226\n\016messagesTo"
-  "Send\030\001 \001(\0132\034.tunnelbroker.MessagesToSend"
-  "H\000\022<\n\021processedMessages\030\002 \001(\0132\037.tunnelbr"
-  "oker.ProcessedMessagesH\000\022\030\n\016newNotifyTok"
-  "en\030\003 \001(\tH\000B\006\n\004data\"e\n\025MessageToClientStr"
-  "uct\022\021\n\tmessageID\030\001 \001(\t\022\024\n\014fromDeviceID\030\002"
-  " \001(\t\022\017\n\007payload\030\003 \001(\t\022\022\n\nblobHashes\030\004 \003("
-  "\t\"J\n\021MessagesToDeliver\0225\n\010messages\030\001 \003(\013"
-  "2#.tunnelbroker.MessageToClientStruct\"\317\001"
-  "\n\017MessageToClient\022<\n\021messagesToDeliver\030\001"
-  " \001(\0132\037.tunnelbroker.MessagesToDeliverH\000\022"
-  "<\n\021processedMessages\030\002 \001(\0132\037.tunnelbroke"
-  "r.ProcessedMessagesH\000\0228\n\026newNotifyTokenR"
-  "equired\030\003 \001(\0132\026.google.protobuf.EmptyH\000B"
-  "\006\n\004data2\251\002\n\023TunnelbrokerService\022c\n\020Sessi"
-  "onSignature\022%.tunnelbroker.SessionSignat"
-  "ureRequest\032&.tunnelbroker.SessionSignatu"
-  "reResponse\"\000\022Q\n\nNewSession\022\037.tunnelbroke"
-  "r.NewSessionRequest\032 .tunnelbroker.NewSe"
-  "ssionResponse\"\000\022Z\n\016MessagesStream\022#.tunn"
-  "elbroker.MessageToTunnelbroker\032\035.tunnelb"
-  "roker.MessageToClient\"\000(\0010\001b\006proto3"
-  ;
-static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_tunnelbroker_2eproto_deps[1] = {
-  &::descriptor_table_google_2fprotobuf_2fempty_2eproto,
-};
-static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_tunnelbroker_2eproto_once;
-const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_tunnelbroker_2eproto = {
-  false, false, 1555, descriptor_table_protodef_tunnelbroker_2eproto, "tunnelbroker.proto", 
-  &descriptor_table_tunnelbroker_2eproto_once, descriptor_table_tunnelbroker_2eproto_deps, 1, 11,
-  schemas, file_default_instances, TableStruct_tunnelbroker_2eproto::offsets,
-  file_level_metadata_tunnelbroker_2eproto, file_level_enum_descriptors_tunnelbroker_2eproto, file_level_service_descriptors_tunnelbroker_2eproto,
-};
-PROTOBUF_ATTRIBUTE_WEAK ::PROTOBUF_NAMESPACE_ID::Metadata
-descriptor_table_tunnelbroker_2eproto_metadata_getter(int index) {
-  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_tunnelbroker_2eproto);
-  return descriptor_table_tunnelbroker_2eproto.file_level_metadata[index];
-}
-
-// Force running AddDescriptors() at dynamic initialization time.
-PROTOBUF_ATTRIBUTE_INIT_PRIORITY static ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptorsRunner dynamic_init_dummy_tunnelbroker_2eproto(&descriptor_table_tunnelbroker_2eproto);
-namespace tunnelbroker {
-const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* NewSessionRequest_DeviceTypes_descriptor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_tunnelbroker_2eproto);
-  return file_level_enum_descriptors_tunnelbroker_2eproto[0];
-}
-bool NewSessionRequest_DeviceTypes_IsValid(int value) {
-  switch (value) {
-    case 0:
-    case 1:
-    case 2:
-      return true;
-    default:
-      return false;
-  }
-}
-
-#if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
-constexpr NewSessionRequest_DeviceTypes NewSessionRequest::MOBILE;
-constexpr NewSessionRequest_DeviceTypes NewSessionRequest::WEB;
-constexpr NewSessionRequest_DeviceTypes NewSessionRequest::KEYSERVER;
-constexpr NewSessionRequest_DeviceTypes NewSessionRequest::DeviceTypes_MIN;
-constexpr NewSessionRequest_DeviceTypes NewSessionRequest::DeviceTypes_MAX;
-constexpr int NewSessionRequest::DeviceTypes_ARRAYSIZE;
-#endif  // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
-
-// ===================================================================
-
-class SessionSignatureRequest::_Internal {
- public:
-};
-
-SessionSignatureRequest::SessionSignatureRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
-  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
-  SharedCtor();
-  RegisterArenaDtor(arena);
-  // @@protoc_insertion_point(arena_constructor:tunnelbroker.SessionSignatureRequest)
-}
-SessionSignatureRequest::SessionSignatureRequest(const SessionSignatureRequest& from)
-  : ::PROTOBUF_NAMESPACE_ID::Message() {
-  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
-  deviceid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_deviceid().empty()) {
-    deviceid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_deviceid(), 
-      GetArena());
-  }
-  // @@protoc_insertion_point(copy_constructor:tunnelbroker.SessionSignatureRequest)
-}
-
-void SessionSignatureRequest::SharedCtor() {
-deviceid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-
-SessionSignatureRequest::~SessionSignatureRequest() {
-  // @@protoc_insertion_point(destructor:tunnelbroker.SessionSignatureRequest)
-  SharedDtor();
-  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
-}
-
-void SessionSignatureRequest::SharedDtor() {
-  GOOGLE_DCHECK(GetArena() == nullptr);
-  deviceid_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-
-void SessionSignatureRequest::ArenaDtor(void* object) {
-  SessionSignatureRequest* _this = reinterpret_cast< SessionSignatureRequest* >(object);
-  (void)_this;
-}
-void SessionSignatureRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
-}
-void SessionSignatureRequest::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-
-void SessionSignatureRequest::Clear() {
-// @@protoc_insertion_point(message_clear_start:tunnelbroker.SessionSignatureRequest)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  deviceid_.ClearToEmpty();
-  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
-}
-
-const char* SessionSignatureRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // string deviceID = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          auto str = _internal_mutable_deviceid();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "tunnelbroker.SessionSignatureRequest.deviceID"));
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag,
-            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
-            ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* SessionSignatureRequest::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:tunnelbroker.SessionSignatureRequest)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // string deviceID = 1;
-  if (this->deviceid().size() > 0) {
-    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
-      this->_internal_deviceid().data(), static_cast<int>(this->_internal_deviceid().length()),
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
-      "tunnelbroker.SessionSignatureRequest.deviceID");
-    target = stream->WriteStringMaybeAliased(
-        1, this->_internal_deviceid(), target);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:tunnelbroker.SessionSignatureRequest)
-  return target;
-}
-
-size_t SessionSignatureRequest::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:tunnelbroker.SessionSignatureRequest)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // string deviceID = 1;
-  if (this->deviceid().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
-        this->_internal_deviceid());
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
-        _internal_metadata_, total_size, &_cached_size_);
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void SessionSignatureRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:tunnelbroker.SessionSignatureRequest)
-  GOOGLE_DCHECK_NE(&from, this);
-  const SessionSignatureRequest* source =
-      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<SessionSignatureRequest>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:tunnelbroker.SessionSignatureRequest)
-    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:tunnelbroker.SessionSignatureRequest)
-    MergeFrom(*source);
-  }
-}
-
-void SessionSignatureRequest::MergeFrom(const SessionSignatureRequest& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:tunnelbroker.SessionSignatureRequest)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (from.deviceid().size() > 0) {
-    _internal_set_deviceid(from._internal_deviceid());
-  }
-}
-
-void SessionSignatureRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:tunnelbroker.SessionSignatureRequest)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void SessionSignatureRequest::CopyFrom(const SessionSignatureRequest& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:tunnelbroker.SessionSignatureRequest)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool SessionSignatureRequest::IsInitialized() const {
-  return true;
-}
-
-void SessionSignatureRequest::InternalSwap(SessionSignatureRequest* other) {
-  using std::swap;
-  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
-  deviceid_.Swap(&other->deviceid_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
-}
-
-::PROTOBUF_NAMESPACE_ID::Metadata SessionSignatureRequest::GetMetadata() const {
-  return GetMetadataStatic();
-}
-
-
-// ===================================================================
-
-class SessionSignatureResponse::_Internal {
- public:
-};
-
-SessionSignatureResponse::SessionSignatureResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
-  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
-  SharedCtor();
-  RegisterArenaDtor(arena);
-  // @@protoc_insertion_point(arena_constructor:tunnelbroker.SessionSignatureResponse)
-}
-SessionSignatureResponse::SessionSignatureResponse(const SessionSignatureResponse& from)
-  : ::PROTOBUF_NAMESPACE_ID::Message() {
-  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
-  tosign_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_tosign().empty()) {
-    tosign_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_tosign(), 
-      GetArena());
-  }
-  // @@protoc_insertion_point(copy_constructor:tunnelbroker.SessionSignatureResponse)
-}
-
-void SessionSignatureResponse::SharedCtor() {
-tosign_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-
-SessionSignatureResponse::~SessionSignatureResponse() {
-  // @@protoc_insertion_point(destructor:tunnelbroker.SessionSignatureResponse)
-  SharedDtor();
-  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
-}
-
-void SessionSignatureResponse::SharedDtor() {
-  GOOGLE_DCHECK(GetArena() == nullptr);
-  tosign_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-
-void SessionSignatureResponse::ArenaDtor(void* object) {
-  SessionSignatureResponse* _this = reinterpret_cast< SessionSignatureResponse* >(object);
-  (void)_this;
-}
-void SessionSignatureResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
-}
-void SessionSignatureResponse::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-
-void SessionSignatureResponse::Clear() {
-// @@protoc_insertion_point(message_clear_start:tunnelbroker.SessionSignatureResponse)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  tosign_.ClearToEmpty();
-  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
-}
-
-const char* SessionSignatureResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // string toSign = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          auto str = _internal_mutable_tosign();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "tunnelbroker.SessionSignatureResponse.toSign"));
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag,
-            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
-            ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* SessionSignatureResponse::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:tunnelbroker.SessionSignatureResponse)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // string toSign = 1;
-  if (this->tosign().size() > 0) {
-    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
-      this->_internal_tosign().data(), static_cast<int>(this->_internal_tosign().length()),
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
-      "tunnelbroker.SessionSignatureResponse.toSign");
-    target = stream->WriteStringMaybeAliased(
-        1, this->_internal_tosign(), target);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:tunnelbroker.SessionSignatureResponse)
-  return target;
-}
-
-size_t SessionSignatureResponse::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:tunnelbroker.SessionSignatureResponse)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // string toSign = 1;
-  if (this->tosign().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
-        this->_internal_tosign());
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
-        _internal_metadata_, total_size, &_cached_size_);
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void SessionSignatureResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:tunnelbroker.SessionSignatureResponse)
-  GOOGLE_DCHECK_NE(&from, this);
-  const SessionSignatureResponse* source =
-      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<SessionSignatureResponse>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:tunnelbroker.SessionSignatureResponse)
-    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:tunnelbroker.SessionSignatureResponse)
-    MergeFrom(*source);
-  }
-}
-
-void SessionSignatureResponse::MergeFrom(const SessionSignatureResponse& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:tunnelbroker.SessionSignatureResponse)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (from.tosign().size() > 0) {
-    _internal_set_tosign(from._internal_tosign());
-  }
-}
-
-void SessionSignatureResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:tunnelbroker.SessionSignatureResponse)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void SessionSignatureResponse::CopyFrom(const SessionSignatureResponse& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:tunnelbroker.SessionSignatureResponse)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool SessionSignatureResponse::IsInitialized() const {
-  return true;
-}
-
-void SessionSignatureResponse::InternalSwap(SessionSignatureResponse* other) {
-  using std::swap;
-  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
-  tosign_.Swap(&other->tosign_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
-}
-
-::PROTOBUF_NAMESPACE_ID::Metadata SessionSignatureResponse::GetMetadata() const {
-  return GetMetadataStatic();
-}
-
-
-// ===================================================================
-
-class NewSessionRequest::_Internal {
- public:
-  using HasBits = decltype(std::declval<NewSessionRequest>()._has_bits_);
-  static void set_has_notifytoken(HasBits* has_bits) {
-    (*has_bits)[0] |= 1u;
-  }
-};
-
-NewSessionRequest::NewSessionRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
-  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
-  SharedCtor();
-  RegisterArenaDtor(arena);
-  // @@protoc_insertion_point(arena_constructor:tunnelbroker.NewSessionRequest)
-}
-NewSessionRequest::NewSessionRequest(const NewSessionRequest& from)
-  : ::PROTOBUF_NAMESPACE_ID::Message(),
-      _has_bits_(from._has_bits_) {
-  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
-  deviceid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_deviceid().empty()) {
-    deviceid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_deviceid(), 
-      GetArena());
-  }
-  publickey_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_publickey().empty()) {
-    publickey_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_publickey(), 
-      GetArena());
-  }
-  signature_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_signature().empty()) {
-    signature_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_signature(), 
-      GetArena());
-  }
-  notifytoken_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (from._internal_has_notifytoken()) {
-    notifytoken_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_notifytoken(), 
-      GetArena());
-  }
-  deviceappversion_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_deviceappversion().empty()) {
-    deviceappversion_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_deviceappversion(), 
-      GetArena());
-  }
-  deviceos_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_deviceos().empty()) {
-    deviceos_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_deviceos(), 
-      GetArena());
-  }
-  devicetype_ = from.devicetype_;
-  // @@protoc_insertion_point(copy_constructor:tunnelbroker.NewSessionRequest)
-}
-
-void NewSessionRequest::SharedCtor() {
-deviceid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-publickey_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-signature_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-notifytoken_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-deviceappversion_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-deviceos_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-devicetype_ = 0;
-}
-
-NewSessionRequest::~NewSessionRequest() {
-  // @@protoc_insertion_point(destructor:tunnelbroker.NewSessionRequest)
-  SharedDtor();
-  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
-}
-
-void NewSessionRequest::SharedDtor() {
-  GOOGLE_DCHECK(GetArena() == nullptr);
-  deviceid_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  publickey_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  signature_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  notifytoken_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  deviceappversion_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  deviceos_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-
-void NewSessionRequest::ArenaDtor(void* object) {
-  NewSessionRequest* _this = reinterpret_cast< NewSessionRequest* >(object);
-  (void)_this;
-}
-void NewSessionRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
-}
-void NewSessionRequest::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-
-void NewSessionRequest::Clear() {
-// @@protoc_insertion_point(message_clear_start:tunnelbroker.NewSessionRequest)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  deviceid_.ClearToEmpty();
-  publickey_.ClearToEmpty();
-  signature_.ClearToEmpty();
-  cached_has_bits = _has_bits_[0];
-  if (cached_has_bits & 0x00000001u) {
-    notifytoken_.ClearNonDefaultToEmpty();
-  }
-  deviceappversion_.ClearToEmpty();
-  deviceos_.ClearToEmpty();
-  devicetype_ = 0;
-  _has_bits_.Clear();
-  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
-}
-
-const char* NewSessionRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  _Internal::HasBits has_bits{};
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // string deviceID = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          auto str = _internal_mutable_deviceid();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "tunnelbroker.NewSessionRequest.deviceID"));
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // string publicKey = 2;
-      case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
-          auto str = _internal_mutable_publickey();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "tunnelbroker.NewSessionRequest.publicKey"));
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // string signature = 3;
-      case 3:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
-          auto str = _internal_mutable_signature();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "tunnelbroker.NewSessionRequest.signature"));
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // string notifyToken = 4;
-      case 4:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
-          auto str = _internal_mutable_notifytoken();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "tunnelbroker.NewSessionRequest.notifyToken"));
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // .tunnelbroker.NewSessionRequest.DeviceTypes deviceType = 5;
-      case 5:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
-          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
-          CHK_(ptr);
-          _internal_set_devicetype(static_cast<::tunnelbroker::NewSessionRequest_DeviceTypes>(val));
-        } else goto handle_unusual;
-        continue;
-      // string deviceAppVersion = 6;
-      case 6:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
-          auto str = _internal_mutable_deviceappversion();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "tunnelbroker.NewSessionRequest.deviceAppVersion"));
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // string deviceOS = 7;
-      case 7:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
-          auto str = _internal_mutable_deviceos();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "tunnelbroker.NewSessionRequest.deviceOS"));
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag,
-            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
-            ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  _has_bits_.Or(has_bits);
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* NewSessionRequest::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:tunnelbroker.NewSessionRequest)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // string deviceID = 1;
-  if (this->deviceid().size() > 0) {
-    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
-      this->_internal_deviceid().data(), static_cast<int>(this->_internal_deviceid().length()),
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
-      "tunnelbroker.NewSessionRequest.deviceID");
-    target = stream->WriteStringMaybeAliased(
-        1, this->_internal_deviceid(), target);
-  }
-
-  // string publicKey = 2;
-  if (this->publickey().size() > 0) {
-    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
-      this->_internal_publickey().data(), static_cast<int>(this->_internal_publickey().length()),
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
-      "tunnelbroker.NewSessionRequest.publicKey");
-    target = stream->WriteStringMaybeAliased(
-        2, this->_internal_publickey(), target);
-  }
-
-  // string signature = 3;
-  if (this->signature().size() > 0) {
-    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
-      this->_internal_signature().data(), static_cast<int>(this->_internal_signature().length()),
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
-      "tunnelbroker.NewSessionRequest.signature");
-    target = stream->WriteStringMaybeAliased(
-        3, this->_internal_signature(), target);
-  }
-
-  // string notifyToken = 4;
-  if (_internal_has_notifytoken()) {
-    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
-      this->_internal_notifytoken().data(), static_cast<int>(this->_internal_notifytoken().length()),
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
-      "tunnelbroker.NewSessionRequest.notifyToken");
-    target = stream->WriteStringMaybeAliased(
-        4, this->_internal_notifytoken(), target);
-  }
-
-  // .tunnelbroker.NewSessionRequest.DeviceTypes deviceType = 5;
-  if (this->devicetype() != 0) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
-      5, this->_internal_devicetype(), target);
-  }
-
-  // string deviceAppVersion = 6;
-  if (this->deviceappversion().size() > 0) {
-    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
-      this->_internal_deviceappversion().data(), static_cast<int>(this->_internal_deviceappversion().length()),
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
-      "tunnelbroker.NewSessionRequest.deviceAppVersion");
-    target = stream->WriteStringMaybeAliased(
-        6, this->_internal_deviceappversion(), target);
-  }
-
-  // string deviceOS = 7;
-  if (this->deviceos().size() > 0) {
-    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
-      this->_internal_deviceos().data(), static_cast<int>(this->_internal_deviceos().length()),
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
-      "tunnelbroker.NewSessionRequest.deviceOS");
-    target = stream->WriteStringMaybeAliased(
-        7, this->_internal_deviceos(), target);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:tunnelbroker.NewSessionRequest)
-  return target;
-}
-
-size_t NewSessionRequest::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:tunnelbroker.NewSessionRequest)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // string deviceID = 1;
-  if (this->deviceid().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
-        this->_internal_deviceid());
-  }
-
-  // string publicKey = 2;
-  if (this->publickey().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
-        this->_internal_publickey());
-  }
-
-  // string signature = 3;
-  if (this->signature().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
-        this->_internal_signature());
-  }
-
-  // string notifyToken = 4;
-  cached_has_bits = _has_bits_[0];
-  if (cached_has_bits & 0x00000001u) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
-        this->_internal_notifytoken());
-  }
-
-  // string deviceAppVersion = 6;
-  if (this->deviceappversion().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
-        this->_internal_deviceappversion());
-  }
-
-  // string deviceOS = 7;
-  if (this->deviceos().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
-        this->_internal_deviceos());
-  }
-
-  // .tunnelbroker.NewSessionRequest.DeviceTypes deviceType = 5;
-  if (this->devicetype() != 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_devicetype());
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
-        _internal_metadata_, total_size, &_cached_size_);
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void NewSessionRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:tunnelbroker.NewSessionRequest)
-  GOOGLE_DCHECK_NE(&from, this);
-  const NewSessionRequest* source =
-      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<NewSessionRequest>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:tunnelbroker.NewSessionRequest)
-    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:tunnelbroker.NewSessionRequest)
-    MergeFrom(*source);
-  }
-}
-
-void NewSessionRequest::MergeFrom(const NewSessionRequest& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:tunnelbroker.NewSessionRequest)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (from.deviceid().size() > 0) {
-    _internal_set_deviceid(from._internal_deviceid());
-  }
-  if (from.publickey().size() > 0) {
-    _internal_set_publickey(from._internal_publickey());
-  }
-  if (from.signature().size() > 0) {
-    _internal_set_signature(from._internal_signature());
-  }
-  if (from._internal_has_notifytoken()) {
-    _internal_set_notifytoken(from._internal_notifytoken());
-  }
-  if (from.deviceappversion().size() > 0) {
-    _internal_set_deviceappversion(from._internal_deviceappversion());
-  }
-  if (from.deviceos().size() > 0) {
-    _internal_set_deviceos(from._internal_deviceos());
-  }
-  if (from.devicetype() != 0) {
-    _internal_set_devicetype(from._internal_devicetype());
-  }
-}
-
-void NewSessionRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:tunnelbroker.NewSessionRequest)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void NewSessionRequest::CopyFrom(const NewSessionRequest& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:tunnelbroker.NewSessionRequest)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool NewSessionRequest::IsInitialized() const {
-  return true;
-}
-
-void NewSessionRequest::InternalSwap(NewSessionRequest* other) {
-  using std::swap;
-  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
-  swap(_has_bits_[0], other->_has_bits_[0]);
-  deviceid_.Swap(&other->deviceid_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
-  publickey_.Swap(&other->publickey_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
-  signature_.Swap(&other->signature_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
-  notifytoken_.Swap(&other->notifytoken_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
-  deviceappversion_.Swap(&other->deviceappversion_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
-  deviceos_.Swap(&other->deviceos_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
-  swap(devicetype_, other->devicetype_);
-}
-
-::PROTOBUF_NAMESPACE_ID::Metadata NewSessionRequest::GetMetadata() const {
-  return GetMetadataStatic();
-}
-
-
-// ===================================================================
-
-class NewSessionResponse::_Internal {
- public:
-};
-
-NewSessionResponse::NewSessionResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
-  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
-  SharedCtor();
-  RegisterArenaDtor(arena);
-  // @@protoc_insertion_point(arena_constructor:tunnelbroker.NewSessionResponse)
-}
-NewSessionResponse::NewSessionResponse(const NewSessionResponse& from)
-  : ::PROTOBUF_NAMESPACE_ID::Message() {
-  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
-  sessionid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_sessionid().empty()) {
-    sessionid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_sessionid(), 
-      GetArena());
-  }
-  // @@protoc_insertion_point(copy_constructor:tunnelbroker.NewSessionResponse)
-}
-
-void NewSessionResponse::SharedCtor() {
-sessionid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-
-NewSessionResponse::~NewSessionResponse() {
-  // @@protoc_insertion_point(destructor:tunnelbroker.NewSessionResponse)
-  SharedDtor();
-  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
-}
-
-void NewSessionResponse::SharedDtor() {
-  GOOGLE_DCHECK(GetArena() == nullptr);
-  sessionid_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-
-void NewSessionResponse::ArenaDtor(void* object) {
-  NewSessionResponse* _this = reinterpret_cast< NewSessionResponse* >(object);
-  (void)_this;
-}
-void NewSessionResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
-}
-void NewSessionResponse::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-
-void NewSessionResponse::Clear() {
-// @@protoc_insertion_point(message_clear_start:tunnelbroker.NewSessionResponse)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  sessionid_.ClearToEmpty();
-  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
-}
-
-const char* NewSessionResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // string sessionID = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          auto str = _internal_mutable_sessionid();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "tunnelbroker.NewSessionResponse.sessionID"));
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag,
-            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
-            ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* NewSessionResponse::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:tunnelbroker.NewSessionResponse)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // string sessionID = 1;
-  if (this->sessionid().size() > 0) {
-    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
-      this->_internal_sessionid().data(), static_cast<int>(this->_internal_sessionid().length()),
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
-      "tunnelbroker.NewSessionResponse.sessionID");
-    target = stream->WriteStringMaybeAliased(
-        1, this->_internal_sessionid(), target);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:tunnelbroker.NewSessionResponse)
-  return target;
-}
-
-size_t NewSessionResponse::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:tunnelbroker.NewSessionResponse)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // string sessionID = 1;
-  if (this->sessionid().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
-        this->_internal_sessionid());
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
-        _internal_metadata_, total_size, &_cached_size_);
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void NewSessionResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:tunnelbroker.NewSessionResponse)
-  GOOGLE_DCHECK_NE(&from, this);
-  const NewSessionResponse* source =
-      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<NewSessionResponse>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:tunnelbroker.NewSessionResponse)
-    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:tunnelbroker.NewSessionResponse)
-    MergeFrom(*source);
-  }
-}
-
-void NewSessionResponse::MergeFrom(const NewSessionResponse& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:tunnelbroker.NewSessionResponse)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (from.sessionid().size() > 0) {
-    _internal_set_sessionid(from._internal_sessionid());
-  }
-}
-
-void NewSessionResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:tunnelbroker.NewSessionResponse)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void NewSessionResponse::CopyFrom(const NewSessionResponse& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:tunnelbroker.NewSessionResponse)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool NewSessionResponse::IsInitialized() const {
-  return true;
-}
-
-void NewSessionResponse::InternalSwap(NewSessionResponse* other) {
-  using std::swap;
-  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
-  sessionid_.Swap(&other->sessionid_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
-}
-
-::PROTOBUF_NAMESPACE_ID::Metadata NewSessionResponse::GetMetadata() const {
-  return GetMetadataStatic();
-}
-
-
-// ===================================================================
-
-class ProcessedMessages::_Internal {
- public:
-};
-
-ProcessedMessages::ProcessedMessages(::PROTOBUF_NAMESPACE_ID::Arena* arena)
-  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
-  messageid_(arena) {
-  SharedCtor();
-  RegisterArenaDtor(arena);
-  // @@protoc_insertion_point(arena_constructor:tunnelbroker.ProcessedMessages)
-}
-ProcessedMessages::ProcessedMessages(const ProcessedMessages& from)
-  : ::PROTOBUF_NAMESPACE_ID::Message(),
-      messageid_(from.messageid_) {
-  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
-  // @@protoc_insertion_point(copy_constructor:tunnelbroker.ProcessedMessages)
-}
-
-void ProcessedMessages::SharedCtor() {
-}
-
-ProcessedMessages::~ProcessedMessages() {
-  // @@protoc_insertion_point(destructor:tunnelbroker.ProcessedMessages)
-  SharedDtor();
-  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
-}
-
-void ProcessedMessages::SharedDtor() {
-  GOOGLE_DCHECK(GetArena() == nullptr);
-}
-
-void ProcessedMessages::ArenaDtor(void* object) {
-  ProcessedMessages* _this = reinterpret_cast< ProcessedMessages* >(object);
-  (void)_this;
-}
-void ProcessedMessages::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
-}
-void ProcessedMessages::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-
-void ProcessedMessages::Clear() {
-// @@protoc_insertion_point(message_clear_start:tunnelbroker.ProcessedMessages)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  messageid_.Clear();
-  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
-}
-
-const char* ProcessedMessages::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // repeated string messageID = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          ptr -= 1;
-          do {
-            ptr += 1;
-            auto str = _internal_add_messageid();
-            ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-            CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "tunnelbroker.ProcessedMessages.messageID"));
-            CHK_(ptr);
-            if (!ctx->DataAvailable(ptr)) break;
-          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag,
-            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
-            ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* ProcessedMessages::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:tunnelbroker.ProcessedMessages)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // repeated string messageID = 1;
-  for (int i = 0, n = this->_internal_messageid_size(); i < n; i++) {
-    const auto& s = this->_internal_messageid(i);
-    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
-      s.data(), static_cast<int>(s.length()),
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
-      "tunnelbroker.ProcessedMessages.messageID");
-    target = stream->WriteString(1, s, target);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:tunnelbroker.ProcessedMessages)
-  return target;
-}
-
-size_t ProcessedMessages::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:tunnelbroker.ProcessedMessages)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // repeated string messageID = 1;
-  total_size += 1 *
-      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(messageid_.size());
-  for (int i = 0, n = messageid_.size(); i < n; i++) {
-    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
-      messageid_.Get(i));
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
-        _internal_metadata_, total_size, &_cached_size_);
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void ProcessedMessages::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:tunnelbroker.ProcessedMessages)
-  GOOGLE_DCHECK_NE(&from, this);
-  const ProcessedMessages* source =
-      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ProcessedMessages>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:tunnelbroker.ProcessedMessages)
-    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:tunnelbroker.ProcessedMessages)
-    MergeFrom(*source);
-  }
-}
-
-void ProcessedMessages::MergeFrom(const ProcessedMessages& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:tunnelbroker.ProcessedMessages)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  messageid_.MergeFrom(from.messageid_);
-}
-
-void ProcessedMessages::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:tunnelbroker.ProcessedMessages)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void ProcessedMessages::CopyFrom(const ProcessedMessages& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:tunnelbroker.ProcessedMessages)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool ProcessedMessages::IsInitialized() const {
-  return true;
-}
-
-void ProcessedMessages::InternalSwap(ProcessedMessages* other) {
-  using std::swap;
-  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
-  messageid_.InternalSwap(&other->messageid_);
-}
-
-::PROTOBUF_NAMESPACE_ID::Metadata ProcessedMessages::GetMetadata() const {
-  return GetMetadataStatic();
-}
-
-
-// ===================================================================
-
-class MessageToTunnelbrokerStruct::_Internal {
- public:
-};
-
-MessageToTunnelbrokerStruct::MessageToTunnelbrokerStruct(::PROTOBUF_NAMESPACE_ID::Arena* arena)
-  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
-  blobhashes_(arena) {
-  SharedCtor();
-  RegisterArenaDtor(arena);
-  // @@protoc_insertion_point(arena_constructor:tunnelbroker.MessageToTunnelbrokerStruct)
-}
-MessageToTunnelbrokerStruct::MessageToTunnelbrokerStruct(const MessageToTunnelbrokerStruct& from)
-  : ::PROTOBUF_NAMESPACE_ID::Message(),
-      blobhashes_(from.blobhashes_) {
-  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
-  todeviceid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_todeviceid().empty()) {
-    todeviceid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_todeviceid(), 
-      GetArena());
-  }
-  payload_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_payload().empty()) {
-    payload_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_payload(), 
-      GetArena());
-  }
-  // @@protoc_insertion_point(copy_constructor:tunnelbroker.MessageToTunnelbrokerStruct)
-}
-
-void MessageToTunnelbrokerStruct::SharedCtor() {
-todeviceid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-payload_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-
-MessageToTunnelbrokerStruct::~MessageToTunnelbrokerStruct() {
-  // @@protoc_insertion_point(destructor:tunnelbroker.MessageToTunnelbrokerStruct)
-  SharedDtor();
-  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
-}
-
-void MessageToTunnelbrokerStruct::SharedDtor() {
-  GOOGLE_DCHECK(GetArena() == nullptr);
-  todeviceid_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  payload_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-
-void MessageToTunnelbrokerStruct::ArenaDtor(void* object) {
-  MessageToTunnelbrokerStruct* _this = reinterpret_cast< MessageToTunnelbrokerStruct* >(object);
-  (void)_this;
-}
-void MessageToTunnelbrokerStruct::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
-}
-void MessageToTunnelbrokerStruct::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-
-void MessageToTunnelbrokerStruct::Clear() {
-// @@protoc_insertion_point(message_clear_start:tunnelbroker.MessageToTunnelbrokerStruct)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  blobhashes_.Clear();
-  todeviceid_.ClearToEmpty();
-  payload_.ClearToEmpty();
-  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
-}
-
-const char* MessageToTunnelbrokerStruct::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // string toDeviceID = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          auto str = _internal_mutable_todeviceid();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "tunnelbroker.MessageToTunnelbrokerStruct.toDeviceID"));
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // string payload = 2;
-      case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
-          auto str = _internal_mutable_payload();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "tunnelbroker.MessageToTunnelbrokerStruct.payload"));
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // repeated string blobHashes = 3;
-      case 3:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
-          ptr -= 1;
-          do {
-            ptr += 1;
-            auto str = _internal_add_blobhashes();
-            ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-            CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "tunnelbroker.MessageToTunnelbrokerStruct.blobHashes"));
-            CHK_(ptr);
-            if (!ctx->DataAvailable(ptr)) break;
-          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag,
-            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
-            ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* MessageToTunnelbrokerStruct::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:tunnelbroker.MessageToTunnelbrokerStruct)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // string toDeviceID = 1;
-  if (this->todeviceid().size() > 0) {
-    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
-      this->_internal_todeviceid().data(), static_cast<int>(this->_internal_todeviceid().length()),
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
-      "tunnelbroker.MessageToTunnelbrokerStruct.toDeviceID");
-    target = stream->WriteStringMaybeAliased(
-        1, this->_internal_todeviceid(), target);
-  }
-
-  // string payload = 2;
-  if (this->payload().size() > 0) {
-    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
-      this->_internal_payload().data(), static_cast<int>(this->_internal_payload().length()),
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
-      "tunnelbroker.MessageToTunnelbrokerStruct.payload");
-    target = stream->WriteStringMaybeAliased(
-        2, this->_internal_payload(), target);
-  }
-
-  // repeated string blobHashes = 3;
-  for (int i = 0, n = this->_internal_blobhashes_size(); i < n; i++) {
-    const auto& s = this->_internal_blobhashes(i);
-    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
-      s.data(), static_cast<int>(s.length()),
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
-      "tunnelbroker.MessageToTunnelbrokerStruct.blobHashes");
-    target = stream->WriteString(3, s, target);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:tunnelbroker.MessageToTunnelbrokerStruct)
-  return target;
-}
-
-size_t MessageToTunnelbrokerStruct::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:tunnelbroker.MessageToTunnelbrokerStruct)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // repeated string blobHashes = 3;
-  total_size += 1 *
-      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(blobhashes_.size());
-  for (int i = 0, n = blobhashes_.size(); i < n; i++) {
-    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
-      blobhashes_.Get(i));
-  }
-
-  // string toDeviceID = 1;
-  if (this->todeviceid().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
-        this->_internal_todeviceid());
-  }
-
-  // string payload = 2;
-  if (this->payload().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
-        this->_internal_payload());
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
-        _internal_metadata_, total_size, &_cached_size_);
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void MessageToTunnelbrokerStruct::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:tunnelbroker.MessageToTunnelbrokerStruct)
-  GOOGLE_DCHECK_NE(&from, this);
-  const MessageToTunnelbrokerStruct* source =
-      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<MessageToTunnelbrokerStruct>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:tunnelbroker.MessageToTunnelbrokerStruct)
-    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:tunnelbroker.MessageToTunnelbrokerStruct)
-    MergeFrom(*source);
-  }
-}
-
-void MessageToTunnelbrokerStruct::MergeFrom(const MessageToTunnelbrokerStruct& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:tunnelbroker.MessageToTunnelbrokerStruct)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  blobhashes_.MergeFrom(from.blobhashes_);
-  if (from.todeviceid().size() > 0) {
-    _internal_set_todeviceid(from._internal_todeviceid());
-  }
-  if (from.payload().size() > 0) {
-    _internal_set_payload(from._internal_payload());
-  }
-}
-
-void MessageToTunnelbrokerStruct::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:tunnelbroker.MessageToTunnelbrokerStruct)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void MessageToTunnelbrokerStruct::CopyFrom(const MessageToTunnelbrokerStruct& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:tunnelbroker.MessageToTunnelbrokerStruct)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool MessageToTunnelbrokerStruct::IsInitialized() const {
-  return true;
-}
-
-void MessageToTunnelbrokerStruct::InternalSwap(MessageToTunnelbrokerStruct* other) {
-  using std::swap;
-  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
-  blobhashes_.InternalSwap(&other->blobhashes_);
-  todeviceid_.Swap(&other->todeviceid_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
-  payload_.Swap(&other->payload_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
-}
-
-::PROTOBUF_NAMESPACE_ID::Metadata MessageToTunnelbrokerStruct::GetMetadata() const {
-  return GetMetadataStatic();
-}
-
-
-// ===================================================================
-
-class MessagesToSend::_Internal {
- public:
-};
-
-MessagesToSend::MessagesToSend(::PROTOBUF_NAMESPACE_ID::Arena* arena)
-  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
-  messages_(arena) {
-  SharedCtor();
-  RegisterArenaDtor(arena);
-  // @@protoc_insertion_point(arena_constructor:tunnelbroker.MessagesToSend)
-}
-MessagesToSend::MessagesToSend(const MessagesToSend& from)
-  : ::PROTOBUF_NAMESPACE_ID::Message(),
-      messages_(from.messages_) {
-  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
-  // @@protoc_insertion_point(copy_constructor:tunnelbroker.MessagesToSend)
-}
-
-void MessagesToSend::SharedCtor() {
-}
-
-MessagesToSend::~MessagesToSend() {
-  // @@protoc_insertion_point(destructor:tunnelbroker.MessagesToSend)
-  SharedDtor();
-  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
-}
-
-void MessagesToSend::SharedDtor() {
-  GOOGLE_DCHECK(GetArena() == nullptr);
-}
-
-void MessagesToSend::ArenaDtor(void* object) {
-  MessagesToSend* _this = reinterpret_cast< MessagesToSend* >(object);
-  (void)_this;
-}
-void MessagesToSend::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
-}
-void MessagesToSend::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-
-void MessagesToSend::Clear() {
-// @@protoc_insertion_point(message_clear_start:tunnelbroker.MessagesToSend)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  messages_.Clear();
-  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
-}
-
-const char* MessagesToSend::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // repeated .tunnelbroker.MessageToTunnelbrokerStruct messages = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          ptr -= 1;
-          do {
-            ptr += 1;
-            ptr = ctx->ParseMessage(_internal_add_messages(), ptr);
-            CHK_(ptr);
-            if (!ctx->DataAvailable(ptr)) break;
-          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag,
-            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
-            ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* MessagesToSend::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:tunnelbroker.MessagesToSend)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // repeated .tunnelbroker.MessageToTunnelbrokerStruct messages = 1;
-  for (unsigned int i = 0,
-      n = static_cast<unsigned int>(this->_internal_messages_size()); i < n; i++) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(1, this->_internal_messages(i), target, stream);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:tunnelbroker.MessagesToSend)
-  return target;
-}
-
-size_t MessagesToSend::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:tunnelbroker.MessagesToSend)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // repeated .tunnelbroker.MessageToTunnelbrokerStruct messages = 1;
-  total_size += 1UL * this->_internal_messages_size();
-  for (const auto& msg : this->messages_) {
-    total_size +=
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
-        _internal_metadata_, total_size, &_cached_size_);
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void MessagesToSend::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:tunnelbroker.MessagesToSend)
-  GOOGLE_DCHECK_NE(&from, this);
-  const MessagesToSend* source =
-      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<MessagesToSend>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:tunnelbroker.MessagesToSend)
-    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:tunnelbroker.MessagesToSend)
-    MergeFrom(*source);
-  }
-}
-
-void MessagesToSend::MergeFrom(const MessagesToSend& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:tunnelbroker.MessagesToSend)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  messages_.MergeFrom(from.messages_);
-}
-
-void MessagesToSend::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:tunnelbroker.MessagesToSend)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void MessagesToSend::CopyFrom(const MessagesToSend& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:tunnelbroker.MessagesToSend)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool MessagesToSend::IsInitialized() const {
-  return true;
-}
-
-void MessagesToSend::InternalSwap(MessagesToSend* other) {
-  using std::swap;
-  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
-  messages_.InternalSwap(&other->messages_);
-}
-
-::PROTOBUF_NAMESPACE_ID::Metadata MessagesToSend::GetMetadata() const {
-  return GetMetadataStatic();
-}
-
-
-// ===================================================================
-
-class MessageToTunnelbroker::_Internal {
- public:
-  static const ::tunnelbroker::MessagesToSend& messagestosend(const MessageToTunnelbroker* msg);
-  static const ::tunnelbroker::ProcessedMessages& processedmessages(const MessageToTunnelbroker* msg);
-};
-
-const ::tunnelbroker::MessagesToSend&
-MessageToTunnelbroker::_Internal::messagestosend(const MessageToTunnelbroker* msg) {
-  return *msg->data_.messagestosend_;
-}
-const ::tunnelbroker::ProcessedMessages&
-MessageToTunnelbroker::_Internal::processedmessages(const MessageToTunnelbroker* msg) {
-  return *msg->data_.processedmessages_;
-}
-void MessageToTunnelbroker::set_allocated_messagestosend(::tunnelbroker::MessagesToSend* messagestosend) {
-  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
-  clear_data();
-  if (messagestosend) {
-    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
-      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(messagestosend);
-    if (message_arena != submessage_arena) {
-      messagestosend = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
-          message_arena, messagestosend, submessage_arena);
-    }
-    set_has_messagestosend();
-    data_.messagestosend_ = messagestosend;
-  }
-  // @@protoc_insertion_point(field_set_allocated:tunnelbroker.MessageToTunnelbroker.messagesToSend)
-}
-void MessageToTunnelbroker::set_allocated_processedmessages(::tunnelbroker::ProcessedMessages* processedmessages) {
-  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
-  clear_data();
-  if (processedmessages) {
-    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
-      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(processedmessages);
-    if (message_arena != submessage_arena) {
-      processedmessages = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
-          message_arena, processedmessages, submessage_arena);
-    }
-    set_has_processedmessages();
-    data_.processedmessages_ = processedmessages;
-  }
-  // @@protoc_insertion_point(field_set_allocated:tunnelbroker.MessageToTunnelbroker.processedMessages)
-}
-MessageToTunnelbroker::MessageToTunnelbroker(::PROTOBUF_NAMESPACE_ID::Arena* arena)
-  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
-  SharedCtor();
-  RegisterArenaDtor(arena);
-  // @@protoc_insertion_point(arena_constructor:tunnelbroker.MessageToTunnelbroker)
-}
-MessageToTunnelbroker::MessageToTunnelbroker(const MessageToTunnelbroker& from)
-  : ::PROTOBUF_NAMESPACE_ID::Message() {
-  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
-  clear_has_data();
-  switch (from.data_case()) {
-    case kMessagesToSend: {
-      _internal_mutable_messagestosend()->::tunnelbroker::MessagesToSend::MergeFrom(from._internal_messagestosend());
-      break;
-    }
-    case kProcessedMessages: {
-      _internal_mutable_processedmessages()->::tunnelbroker::ProcessedMessages::MergeFrom(from._internal_processedmessages());
-      break;
-    }
-    case kNewNotifyToken: {
-      _internal_set_newnotifytoken(from._internal_newnotifytoken());
-      break;
-    }
-    case DATA_NOT_SET: {
-      break;
-    }
-  }
-  // @@protoc_insertion_point(copy_constructor:tunnelbroker.MessageToTunnelbroker)
-}
-
-void MessageToTunnelbroker::SharedCtor() {
-clear_has_data();
-}
-
-MessageToTunnelbroker::~MessageToTunnelbroker() {
-  // @@protoc_insertion_point(destructor:tunnelbroker.MessageToTunnelbroker)
-  SharedDtor();
-  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
-}
-
-void MessageToTunnelbroker::SharedDtor() {
-  GOOGLE_DCHECK(GetArena() == nullptr);
-  if (has_data()) {
-    clear_data();
-  }
-}
-
-void MessageToTunnelbroker::ArenaDtor(void* object) {
-  MessageToTunnelbroker* _this = reinterpret_cast< MessageToTunnelbroker* >(object);
-  (void)_this;
-}
-void MessageToTunnelbroker::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
-}
-void MessageToTunnelbroker::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-
-void MessageToTunnelbroker::clear_data() {
-// @@protoc_insertion_point(one_of_clear_start:tunnelbroker.MessageToTunnelbroker)
-  switch (data_case()) {
-    case kMessagesToSend: {
-      if (GetArena() == nullptr) {
-        delete data_.messagestosend_;
-      }
-      break;
-    }
-    case kProcessedMessages: {
-      if (GetArena() == nullptr) {
-        delete data_.processedmessages_;
-      }
-      break;
-    }
-    case kNewNotifyToken: {
-      data_.newnotifytoken_.Destroy(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArena());
-      break;
-    }
-    case DATA_NOT_SET: {
-      break;
-    }
-  }
-  _oneof_case_[0] = DATA_NOT_SET;
-}
-
-
-void MessageToTunnelbroker::Clear() {
-// @@protoc_insertion_point(message_clear_start:tunnelbroker.MessageToTunnelbroker)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  clear_data();
-  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
-}
-
-const char* MessageToTunnelbroker::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // .tunnelbroker.MessagesToSend messagesToSend = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          ptr = ctx->ParseMessage(_internal_mutable_messagestosend(), ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // .tunnelbroker.ProcessedMessages processedMessages = 2;
-      case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
-          ptr = ctx->ParseMessage(_internal_mutable_processedmessages(), ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // string newNotifyToken = 3;
-      case 3:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
-          auto str = _internal_mutable_newnotifytoken();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "tunnelbroker.MessageToTunnelbroker.newNotifyToken"));
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag,
-            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
-            ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* MessageToTunnelbroker::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:tunnelbroker.MessageToTunnelbroker)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // .tunnelbroker.MessagesToSend messagesToSend = 1;
-  if (_internal_has_messagestosend()) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(
-        1, _Internal::messagestosend(this), target, stream);
-  }
-
-  // .tunnelbroker.ProcessedMessages processedMessages = 2;
-  if (_internal_has_processedmessages()) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(
-        2, _Internal::processedmessages(this), target, stream);
-  }
-
-  // string newNotifyToken = 3;
-  if (_internal_has_newnotifytoken()) {
-    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
-      this->_internal_newnotifytoken().data(), static_cast<int>(this->_internal_newnotifytoken().length()),
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
-      "tunnelbroker.MessageToTunnelbroker.newNotifyToken");
-    target = stream->WriteStringMaybeAliased(
-        3, this->_internal_newnotifytoken(), target);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:tunnelbroker.MessageToTunnelbroker)
-  return target;
-}
-
-size_t MessageToTunnelbroker::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:tunnelbroker.MessageToTunnelbroker)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  switch (data_case()) {
-    // .tunnelbroker.MessagesToSend messagesToSend = 1;
-    case kMessagesToSend: {
-      total_size += 1 +
-        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-          *data_.messagestosend_);
-      break;
-    }
-    // .tunnelbroker.ProcessedMessages processedMessages = 2;
-    case kProcessedMessages: {
-      total_size += 1 +
-        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-          *data_.processedmessages_);
-      break;
-    }
-    // string newNotifyToken = 3;
-    case kNewNotifyToken: {
-      total_size += 1 +
-        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
-          this->_internal_newnotifytoken());
-      break;
-    }
-    case DATA_NOT_SET: {
-      break;
-    }
-  }
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
-        _internal_metadata_, total_size, &_cached_size_);
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void MessageToTunnelbroker::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:tunnelbroker.MessageToTunnelbroker)
-  GOOGLE_DCHECK_NE(&from, this);
-  const MessageToTunnelbroker* source =
-      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<MessageToTunnelbroker>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:tunnelbroker.MessageToTunnelbroker)
-    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:tunnelbroker.MessageToTunnelbroker)
-    MergeFrom(*source);
-  }
-}
-
-void MessageToTunnelbroker::MergeFrom(const MessageToTunnelbroker& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:tunnelbroker.MessageToTunnelbroker)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  switch (from.data_case()) {
-    case kMessagesToSend: {
-      _internal_mutable_messagestosend()->::tunnelbroker::MessagesToSend::MergeFrom(from._internal_messagestosend());
-      break;
-    }
-    case kProcessedMessages: {
-      _internal_mutable_processedmessages()->::tunnelbroker::ProcessedMessages::MergeFrom(from._internal_processedmessages());
-      break;
-    }
-    case kNewNotifyToken: {
-      _internal_set_newnotifytoken(from._internal_newnotifytoken());
-      break;
-    }
-    case DATA_NOT_SET: {
-      break;
-    }
-  }
-}
-
-void MessageToTunnelbroker::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:tunnelbroker.MessageToTunnelbroker)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void MessageToTunnelbroker::CopyFrom(const MessageToTunnelbroker& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:tunnelbroker.MessageToTunnelbroker)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool MessageToTunnelbroker::IsInitialized() const {
-  return true;
-}
-
-void MessageToTunnelbroker::InternalSwap(MessageToTunnelbroker* other) {
-  using std::swap;
-  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
-  swap(data_, other->data_);
-  swap(_oneof_case_[0], other->_oneof_case_[0]);
-}
-
-::PROTOBUF_NAMESPACE_ID::Metadata MessageToTunnelbroker::GetMetadata() const {
-  return GetMetadataStatic();
-}
-
-
-// ===================================================================
-
-class MessageToClientStruct::_Internal {
- public:
-};
-
-MessageToClientStruct::MessageToClientStruct(::PROTOBUF_NAMESPACE_ID::Arena* arena)
-  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
-  blobhashes_(arena) {
-  SharedCtor();
-  RegisterArenaDtor(arena);
-  // @@protoc_insertion_point(arena_constructor:tunnelbroker.MessageToClientStruct)
-}
-MessageToClientStruct::MessageToClientStruct(const MessageToClientStruct& from)
-  : ::PROTOBUF_NAMESPACE_ID::Message(),
-      blobhashes_(from.blobhashes_) {
-  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
-  messageid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_messageid().empty()) {
-    messageid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_messageid(), 
-      GetArena());
-  }
-  fromdeviceid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_fromdeviceid().empty()) {
-    fromdeviceid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_fromdeviceid(), 
-      GetArena());
-  }
-  payload_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_payload().empty()) {
-    payload_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_payload(), 
-      GetArena());
-  }
-  // @@protoc_insertion_point(copy_constructor:tunnelbroker.MessageToClientStruct)
-}
-
-void MessageToClientStruct::SharedCtor() {
-messageid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-fromdeviceid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-payload_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-
-MessageToClientStruct::~MessageToClientStruct() {
-  // @@protoc_insertion_point(destructor:tunnelbroker.MessageToClientStruct)
-  SharedDtor();
-  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
-}
-
-void MessageToClientStruct::SharedDtor() {
-  GOOGLE_DCHECK(GetArena() == nullptr);
-  messageid_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  fromdeviceid_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  payload_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-
-void MessageToClientStruct::ArenaDtor(void* object) {
-  MessageToClientStruct* _this = reinterpret_cast< MessageToClientStruct* >(object);
-  (void)_this;
-}
-void MessageToClientStruct::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
-}
-void MessageToClientStruct::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-
-void MessageToClientStruct::Clear() {
-// @@protoc_insertion_point(message_clear_start:tunnelbroker.MessageToClientStruct)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  blobhashes_.Clear();
-  messageid_.ClearToEmpty();
-  fromdeviceid_.ClearToEmpty();
-  payload_.ClearToEmpty();
-  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
-}
-
-const char* MessageToClientStruct::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // string messageID = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          auto str = _internal_mutable_messageid();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "tunnelbroker.MessageToClientStruct.messageID"));
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // string fromDeviceID = 2;
-      case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
-          auto str = _internal_mutable_fromdeviceid();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "tunnelbroker.MessageToClientStruct.fromDeviceID"));
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // string payload = 3;
-      case 3:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
-          auto str = _internal_mutable_payload();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "tunnelbroker.MessageToClientStruct.payload"));
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // repeated string blobHashes = 4;
-      case 4:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
-          ptr -= 1;
-          do {
-            ptr += 1;
-            auto str = _internal_add_blobhashes();
-            ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-            CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "tunnelbroker.MessageToClientStruct.blobHashes"));
-            CHK_(ptr);
-            if (!ctx->DataAvailable(ptr)) break;
-          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(ptr));
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag,
-            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
-            ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* MessageToClientStruct::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:tunnelbroker.MessageToClientStruct)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // string messageID = 1;
-  if (this->messageid().size() > 0) {
-    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
-      this->_internal_messageid().data(), static_cast<int>(this->_internal_messageid().length()),
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
-      "tunnelbroker.MessageToClientStruct.messageID");
-    target = stream->WriteStringMaybeAliased(
-        1, this->_internal_messageid(), target);
-  }
-
-  // string fromDeviceID = 2;
-  if (this->fromdeviceid().size() > 0) {
-    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
-      this->_internal_fromdeviceid().data(), static_cast<int>(this->_internal_fromdeviceid().length()),
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
-      "tunnelbroker.MessageToClientStruct.fromDeviceID");
-    target = stream->WriteStringMaybeAliased(
-        2, this->_internal_fromdeviceid(), target);
-  }
-
-  // string payload = 3;
-  if (this->payload().size() > 0) {
-    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
-      this->_internal_payload().data(), static_cast<int>(this->_internal_payload().length()),
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
-      "tunnelbroker.MessageToClientStruct.payload");
-    target = stream->WriteStringMaybeAliased(
-        3, this->_internal_payload(), target);
-  }
-
-  // repeated string blobHashes = 4;
-  for (int i = 0, n = this->_internal_blobhashes_size(); i < n; i++) {
-    const auto& s = this->_internal_blobhashes(i);
-    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
-      s.data(), static_cast<int>(s.length()),
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
-      "tunnelbroker.MessageToClientStruct.blobHashes");
-    target = stream->WriteString(4, s, target);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:tunnelbroker.MessageToClientStruct)
-  return target;
-}
-
-size_t MessageToClientStruct::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:tunnelbroker.MessageToClientStruct)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // repeated string blobHashes = 4;
-  total_size += 1 *
-      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(blobhashes_.size());
-  for (int i = 0, n = blobhashes_.size(); i < n; i++) {
-    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
-      blobhashes_.Get(i));
-  }
-
-  // string messageID = 1;
-  if (this->messageid().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
-        this->_internal_messageid());
-  }
-
-  // string fromDeviceID = 2;
-  if (this->fromdeviceid().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
-        this->_internal_fromdeviceid());
-  }
-
-  // string payload = 3;
-  if (this->payload().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
-        this->_internal_payload());
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
-        _internal_metadata_, total_size, &_cached_size_);
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void MessageToClientStruct::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:tunnelbroker.MessageToClientStruct)
-  GOOGLE_DCHECK_NE(&from, this);
-  const MessageToClientStruct* source =
-      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<MessageToClientStruct>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:tunnelbroker.MessageToClientStruct)
-    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:tunnelbroker.MessageToClientStruct)
-    MergeFrom(*source);
-  }
-}
-
-void MessageToClientStruct::MergeFrom(const MessageToClientStruct& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:tunnelbroker.MessageToClientStruct)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  blobhashes_.MergeFrom(from.blobhashes_);
-  if (from.messageid().size() > 0) {
-    _internal_set_messageid(from._internal_messageid());
-  }
-  if (from.fromdeviceid().size() > 0) {
-    _internal_set_fromdeviceid(from._internal_fromdeviceid());
-  }
-  if (from.payload().size() > 0) {
-    _internal_set_payload(from._internal_payload());
-  }
-}
-
-void MessageToClientStruct::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:tunnelbroker.MessageToClientStruct)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void MessageToClientStruct::CopyFrom(const MessageToClientStruct& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:tunnelbroker.MessageToClientStruct)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool MessageToClientStruct::IsInitialized() const {
-  return true;
-}
-
-void MessageToClientStruct::InternalSwap(MessageToClientStruct* other) {
-  using std::swap;
-  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
-  blobhashes_.InternalSwap(&other->blobhashes_);
-  messageid_.Swap(&other->messageid_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
-  fromdeviceid_.Swap(&other->fromdeviceid_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
-  payload_.Swap(&other->payload_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
-}
-
-::PROTOBUF_NAMESPACE_ID::Metadata MessageToClientStruct::GetMetadata() const {
-  return GetMetadataStatic();
-}
-
-
-// ===================================================================
-
-class MessagesToDeliver::_Internal {
- public:
-};
-
-MessagesToDeliver::MessagesToDeliver(::PROTOBUF_NAMESPACE_ID::Arena* arena)
-  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
-  messages_(arena) {
-  SharedCtor();
-  RegisterArenaDtor(arena);
-  // @@protoc_insertion_point(arena_constructor:tunnelbroker.MessagesToDeliver)
-}
-MessagesToDeliver::MessagesToDeliver(const MessagesToDeliver& from)
-  : ::PROTOBUF_NAMESPACE_ID::Message(),
-      messages_(from.messages_) {
-  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
-  // @@protoc_insertion_point(copy_constructor:tunnelbroker.MessagesToDeliver)
-}
-
-void MessagesToDeliver::SharedCtor() {
-}
-
-MessagesToDeliver::~MessagesToDeliver() {
-  // @@protoc_insertion_point(destructor:tunnelbroker.MessagesToDeliver)
-  SharedDtor();
-  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
-}
-
-void MessagesToDeliver::SharedDtor() {
-  GOOGLE_DCHECK(GetArena() == nullptr);
-}
-
-void MessagesToDeliver::ArenaDtor(void* object) {
-  MessagesToDeliver* _this = reinterpret_cast< MessagesToDeliver* >(object);
-  (void)_this;
-}
-void MessagesToDeliver::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
-}
-void MessagesToDeliver::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-
-void MessagesToDeliver::Clear() {
-// @@protoc_insertion_point(message_clear_start:tunnelbroker.MessagesToDeliver)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  messages_.Clear();
-  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
-}
-
-const char* MessagesToDeliver::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // repeated .tunnelbroker.MessageToClientStruct messages = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          ptr -= 1;
-          do {
-            ptr += 1;
-            ptr = ctx->ParseMessage(_internal_add_messages(), ptr);
-            CHK_(ptr);
-            if (!ctx->DataAvailable(ptr)) break;
-          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag,
-            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
-            ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* MessagesToDeliver::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:tunnelbroker.MessagesToDeliver)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // repeated .tunnelbroker.MessageToClientStruct messages = 1;
-  for (unsigned int i = 0,
-      n = static_cast<unsigned int>(this->_internal_messages_size()); i < n; i++) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(1, this->_internal_messages(i), target, stream);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:tunnelbroker.MessagesToDeliver)
-  return target;
-}
-
-size_t MessagesToDeliver::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:tunnelbroker.MessagesToDeliver)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // repeated .tunnelbroker.MessageToClientStruct messages = 1;
-  total_size += 1UL * this->_internal_messages_size();
-  for (const auto& msg : this->messages_) {
-    total_size +=
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
-        _internal_metadata_, total_size, &_cached_size_);
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void MessagesToDeliver::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:tunnelbroker.MessagesToDeliver)
-  GOOGLE_DCHECK_NE(&from, this);
-  const MessagesToDeliver* source =
-      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<MessagesToDeliver>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:tunnelbroker.MessagesToDeliver)
-    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:tunnelbroker.MessagesToDeliver)
-    MergeFrom(*source);
-  }
-}
-
-void MessagesToDeliver::MergeFrom(const MessagesToDeliver& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:tunnelbroker.MessagesToDeliver)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  messages_.MergeFrom(from.messages_);
-}
-
-void MessagesToDeliver::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:tunnelbroker.MessagesToDeliver)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void MessagesToDeliver::CopyFrom(const MessagesToDeliver& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:tunnelbroker.MessagesToDeliver)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool MessagesToDeliver::IsInitialized() const {
-  return true;
-}
-
-void MessagesToDeliver::InternalSwap(MessagesToDeliver* other) {
-  using std::swap;
-  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
-  messages_.InternalSwap(&other->messages_);
-}
-
-::PROTOBUF_NAMESPACE_ID::Metadata MessagesToDeliver::GetMetadata() const {
-  return GetMetadataStatic();
-}
-
-
-// ===================================================================
-
-class MessageToClient::_Internal {
- public:
-  static const ::tunnelbroker::MessagesToDeliver& messagestodeliver(const MessageToClient* msg);
-  static const ::tunnelbroker::ProcessedMessages& processedmessages(const MessageToClient* msg);
-  static const PROTOBUF_NAMESPACE_ID::Empty& newnotifytokenrequired(const MessageToClient* msg);
-};
-
-const ::tunnelbroker::MessagesToDeliver&
-MessageToClient::_Internal::messagestodeliver(const MessageToClient* msg) {
-  return *msg->data_.messagestodeliver_;
-}
-const ::tunnelbroker::ProcessedMessages&
-MessageToClient::_Internal::processedmessages(const MessageToClient* msg) {
-  return *msg->data_.processedmessages_;
-}
-const PROTOBUF_NAMESPACE_ID::Empty&
-MessageToClient::_Internal::newnotifytokenrequired(const MessageToClient* msg) {
-  return *msg->data_.newnotifytokenrequired_;
-}
-void MessageToClient::set_allocated_messagestodeliver(::tunnelbroker::MessagesToDeliver* messagestodeliver) {
-  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
-  clear_data();
-  if (messagestodeliver) {
-    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
-      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(messagestodeliver);
-    if (message_arena != submessage_arena) {
-      messagestodeliver = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
-          message_arena, messagestodeliver, submessage_arena);
-    }
-    set_has_messagestodeliver();
-    data_.messagestodeliver_ = messagestodeliver;
-  }
-  // @@protoc_insertion_point(field_set_allocated:tunnelbroker.MessageToClient.messagesToDeliver)
-}
-void MessageToClient::set_allocated_processedmessages(::tunnelbroker::ProcessedMessages* processedmessages) {
-  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
-  clear_data();
-  if (processedmessages) {
-    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
-      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(processedmessages);
-    if (message_arena != submessage_arena) {
-      processedmessages = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
-          message_arena, processedmessages, submessage_arena);
-    }
-    set_has_processedmessages();
-    data_.processedmessages_ = processedmessages;
-  }
-  // @@protoc_insertion_point(field_set_allocated:tunnelbroker.MessageToClient.processedMessages)
-}
-void MessageToClient::set_allocated_newnotifytokenrequired(PROTOBUF_NAMESPACE_ID::Empty* newnotifytokenrequired) {
-  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
-  clear_data();
-  if (newnotifytokenrequired) {
-    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
-      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(newnotifytokenrequired)->GetArena();
-    if (message_arena != submessage_arena) {
-      newnotifytokenrequired = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
-          message_arena, newnotifytokenrequired, submessage_arena);
-    }
-    set_has_newnotifytokenrequired();
-    data_.newnotifytokenrequired_ = newnotifytokenrequired;
-  }
-  // @@protoc_insertion_point(field_set_allocated:tunnelbroker.MessageToClient.newNotifyTokenRequired)
-}
-void MessageToClient::clear_newnotifytokenrequired() {
-  if (_internal_has_newnotifytokenrequired()) {
-    if (GetArena() == nullptr) {
-      delete data_.newnotifytokenrequired_;
-    }
-    clear_has_data();
-  }
-}
-MessageToClient::MessageToClient(::PROTOBUF_NAMESPACE_ID::Arena* arena)
-  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
-  SharedCtor();
-  RegisterArenaDtor(arena);
-  // @@protoc_insertion_point(arena_constructor:tunnelbroker.MessageToClient)
-}
-MessageToClient::MessageToClient(const MessageToClient& from)
-  : ::PROTOBUF_NAMESPACE_ID::Message() {
-  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
-  clear_has_data();
-  switch (from.data_case()) {
-    case kMessagesToDeliver: {
-      _internal_mutable_messagestodeliver()->::tunnelbroker::MessagesToDeliver::MergeFrom(from._internal_messagestodeliver());
-      break;
-    }
-    case kProcessedMessages: {
-      _internal_mutable_processedmessages()->::tunnelbroker::ProcessedMessages::MergeFrom(from._internal_processedmessages());
-      break;
-    }
-    case kNewNotifyTokenRequired: {
-      _internal_mutable_newnotifytokenrequired()->PROTOBUF_NAMESPACE_ID::Empty::MergeFrom(from._internal_newnotifytokenrequired());
-      break;
-    }
-    case DATA_NOT_SET: {
-      break;
-    }
-  }
-  // @@protoc_insertion_point(copy_constructor:tunnelbroker.MessageToClient)
-}
-
-void MessageToClient::SharedCtor() {
-clear_has_data();
-}
-
-MessageToClient::~MessageToClient() {
-  // @@protoc_insertion_point(destructor:tunnelbroker.MessageToClient)
-  SharedDtor();
-  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
-}
-
-void MessageToClient::SharedDtor() {
-  GOOGLE_DCHECK(GetArena() == nullptr);
-  if (has_data()) {
-    clear_data();
-  }
-}
-
-void MessageToClient::ArenaDtor(void* object) {
-  MessageToClient* _this = reinterpret_cast< MessageToClient* >(object);
-  (void)_this;
-}
-void MessageToClient::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
-}
-void MessageToClient::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-
-void MessageToClient::clear_data() {
-// @@protoc_insertion_point(one_of_clear_start:tunnelbroker.MessageToClient)
-  switch (data_case()) {
-    case kMessagesToDeliver: {
-      if (GetArena() == nullptr) {
-        delete data_.messagestodeliver_;
-      }
-      break;
-    }
-    case kProcessedMessages: {
-      if (GetArena() == nullptr) {
-        delete data_.processedmessages_;
-      }
-      break;
-    }
-    case kNewNotifyTokenRequired: {
-      if (GetArena() == nullptr) {
-        delete data_.newnotifytokenrequired_;
-      }
-      break;
-    }
-    case DATA_NOT_SET: {
-      break;
-    }
-  }
-  _oneof_case_[0] = DATA_NOT_SET;
-}
-
-
-void MessageToClient::Clear() {
-// @@protoc_insertion_point(message_clear_start:tunnelbroker.MessageToClient)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  clear_data();
-  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
-}
-
-const char* MessageToClient::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // .tunnelbroker.MessagesToDeliver messagesToDeliver = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          ptr = ctx->ParseMessage(_internal_mutable_messagestodeliver(), ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // .tunnelbroker.ProcessedMessages processedMessages = 2;
-      case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
-          ptr = ctx->ParseMessage(_internal_mutable_processedmessages(), ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // .google.protobuf.Empty newNotifyTokenRequired = 3;
-      case 3:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
-          ptr = ctx->ParseMessage(_internal_mutable_newnotifytokenrequired(), ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag,
-            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
-            ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* MessageToClient::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:tunnelbroker.MessageToClient)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // .tunnelbroker.MessagesToDeliver messagesToDeliver = 1;
-  if (_internal_has_messagestodeliver()) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(
-        1, _Internal::messagestodeliver(this), target, stream);
-  }
-
-  // .tunnelbroker.ProcessedMessages processedMessages = 2;
-  if (_internal_has_processedmessages()) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(
-        2, _Internal::processedmessages(this), target, stream);
-  }
-
-  // .google.protobuf.Empty newNotifyTokenRequired = 3;
-  if (_internal_has_newnotifytokenrequired()) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(
-        3, _Internal::newnotifytokenrequired(this), target, stream);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:tunnelbroker.MessageToClient)
-  return target;
-}
-
-size_t MessageToClient::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:tunnelbroker.MessageToClient)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  switch (data_case()) {
-    // .tunnelbroker.MessagesToDeliver messagesToDeliver = 1;
-    case kMessagesToDeliver: {
-      total_size += 1 +
-        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-          *data_.messagestodeliver_);
-      break;
-    }
-    // .tunnelbroker.ProcessedMessages processedMessages = 2;
-    case kProcessedMessages: {
-      total_size += 1 +
-        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-          *data_.processedmessages_);
-      break;
-    }
-    // .google.protobuf.Empty newNotifyTokenRequired = 3;
-    case kNewNotifyTokenRequired: {
-      total_size += 1 +
-        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-          *data_.newnotifytokenrequired_);
-      break;
-    }
-    case DATA_NOT_SET: {
-      break;
-    }
-  }
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
-        _internal_metadata_, total_size, &_cached_size_);
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void MessageToClient::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:tunnelbroker.MessageToClient)
-  GOOGLE_DCHECK_NE(&from, this);
-  const MessageToClient* source =
-      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<MessageToClient>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:tunnelbroker.MessageToClient)
-    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:tunnelbroker.MessageToClient)
-    MergeFrom(*source);
-  }
-}
-
-void MessageToClient::MergeFrom(const MessageToClient& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:tunnelbroker.MessageToClient)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  switch (from.data_case()) {
-    case kMessagesToDeliver: {
-      _internal_mutable_messagestodeliver()->::tunnelbroker::MessagesToDeliver::MergeFrom(from._internal_messagestodeliver());
-      break;
-    }
-    case kProcessedMessages: {
-      _internal_mutable_processedmessages()->::tunnelbroker::ProcessedMessages::MergeFrom(from._internal_processedmessages());
-      break;
-    }
-    case kNewNotifyTokenRequired: {
-      _internal_mutable_newnotifytokenrequired()->PROTOBUF_NAMESPACE_ID::Empty::MergeFrom(from._internal_newnotifytokenrequired());
-      break;
-    }
-    case DATA_NOT_SET: {
-      break;
-    }
-  }
-}
-
-void MessageToClient::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:tunnelbroker.MessageToClient)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void MessageToClient::CopyFrom(const MessageToClient& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:tunnelbroker.MessageToClient)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool MessageToClient::IsInitialized() const {
-  return true;
-}
-
-void MessageToClient::InternalSwap(MessageToClient* other) {
-  using std::swap;
-  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
-  swap(data_, other->data_);
-  swap(_oneof_case_[0], other->_oneof_case_[0]);
-}
-
-::PROTOBUF_NAMESPACE_ID::Metadata MessageToClient::GetMetadata() const {
-  return GetMetadataStatic();
-}
-
-
-// @@protoc_insertion_point(namespace_scope)
-}  // namespace tunnelbroker
-PROTOBUF_NAMESPACE_OPEN
-template<> PROTOBUF_NOINLINE ::tunnelbroker::SessionSignatureRequest* Arena::CreateMaybeMessage< ::tunnelbroker::SessionSignatureRequest >(Arena* arena) {
-  return Arena::CreateMessageInternal< ::tunnelbroker::SessionSignatureRequest >(arena);
-}
-template<> PROTOBUF_NOINLINE ::tunnelbroker::SessionSignatureResponse* Arena::CreateMaybeMessage< ::tunnelbroker::SessionSignatureResponse >(Arena* arena) {
-  return Arena::CreateMessageInternal< ::tunnelbroker::SessionSignatureResponse >(arena);
-}
-template<> PROTOBUF_NOINLINE ::tunnelbroker::NewSessionRequest* Arena::CreateMaybeMessage< ::tunnelbroker::NewSessionRequest >(Arena* arena) {
-  return Arena::CreateMessageInternal< ::tunnelbroker::NewSessionRequest >(arena);
-}
-template<> PROTOBUF_NOINLINE ::tunnelbroker::NewSessionResponse* Arena::CreateMaybeMessage< ::tunnelbroker::NewSessionResponse >(Arena* arena) {
-  return Arena::CreateMessageInternal< ::tunnelbroker::NewSessionResponse >(arena);
-}
-template<> PROTOBUF_NOINLINE ::tunnelbroker::ProcessedMessages* Arena::CreateMaybeMessage< ::tunnelbroker::ProcessedMessages >(Arena* arena) {
-  return Arena::CreateMessageInternal< ::tunnelbroker::ProcessedMessages >(arena);
-}
-template<> PROTOBUF_NOINLINE ::tunnelbroker::MessageToTunnelbrokerStruct* Arena::CreateMaybeMessage< ::tunnelbroker::MessageToTunnelbrokerStruct >(Arena* arena) {
-  return Arena::CreateMessageInternal< ::tunnelbroker::MessageToTunnelbrokerStruct >(arena);
-}
-template<> PROTOBUF_NOINLINE ::tunnelbroker::MessagesToSend* Arena::CreateMaybeMessage< ::tunnelbroker::MessagesToSend >(Arena* arena) {
-  return Arena::CreateMessageInternal< ::tunnelbroker::MessagesToSend >(arena);
-}
-template<> PROTOBUF_NOINLINE ::tunnelbroker::MessageToTunnelbroker* Arena::CreateMaybeMessage< ::tunnelbroker::MessageToTunnelbroker >(Arena* arena) {
-  return Arena::CreateMessageInternal< ::tunnelbroker::MessageToTunnelbroker >(arena);
-}
-template<> PROTOBUF_NOINLINE ::tunnelbroker::MessageToClientStruct* Arena::CreateMaybeMessage< ::tunnelbroker::MessageToClientStruct >(Arena* arena) {
-  return Arena::CreateMessageInternal< ::tunnelbroker::MessageToClientStruct >(arena);
-}
-template<> PROTOBUF_NOINLINE ::tunnelbroker::MessagesToDeliver* Arena::CreateMaybeMessage< ::tunnelbroker::MessagesToDeliver >(Arena* arena) {
-  return Arena::CreateMessageInternal< ::tunnelbroker::MessagesToDeliver >(arena);
-}
-template<> PROTOBUF_NOINLINE ::tunnelbroker::MessageToClient* Arena::CreateMaybeMessage< ::tunnelbroker::MessageToClient >(Arena* arena) {
-  return Arena::CreateMessageInternal< ::tunnelbroker::MessageToClient >(arena);
-}
-PROTOBUF_NAMESPACE_CLOSE
-
-// @@protoc_insertion_point(global_scope)
-#include <google/protobuf/port_undef.inc>
diff --git a/shared/protos/tunnelbroker.proto b/shared/protos/tunnelbroker.proto
deleted file mode 100644
--- a/shared/protos/tunnelbroker.proto
+++ /dev/null
@@ -1,88 +0,0 @@
-syntax = "proto3";
-
-package tunnelbroker;
-
-import "google/protobuf/empty.proto";
-
-service TunnelbrokerService {
-  rpc SessionSignature(SessionSignatureRequest) returns (SessionSignatureResponse) {}
-  rpc NewSession(NewSessionRequest) returns (NewSessionResponse) {}
-  rpc MessagesStream(stream MessageToTunnelbroker) returns (stream MessageToClient) {}
-}
-
-// Session
-
-message SessionSignatureRequest {
-  string deviceID = 1;
-}
-
-message SessionSignatureResponse {
-  string toSign = 1;
-}
-
-message NewSessionRequest {
-  string deviceID = 1;
-  string publicKey = 2;
-  string signature = 3;
-  optional string notifyToken = 4;
-  DeviceTypes deviceType = 5;
-  string deviceAppVersion = 6;
-  string deviceOS = 7;
-  // Nested enum devices type
-  enum DeviceTypes {
-    MOBILE = 0;
-    WEB = 1;
-    KEYSERVER = 2;
-  }
-}
-
-message NewSessionResponse {
-  string sessionID = 1;
-}
-
-// Common messages structures for the MessagesStream
-
-message ProcessedMessages {
-  repeated string messageID = 1;
-}
-
-// The messages from the Client to the Tunnelbroker
-
-message MessageToTunnelbrokerStruct {
-  string toDeviceID = 1;
-  string payload = 2;
-  repeated string blobHashes = 3;
-}
-
-message MessagesToSend {
-  repeated MessageToTunnelbrokerStruct messages = 1;
-}
-
-message MessageToTunnelbroker {
-  oneof data {
-    MessagesToSend messagesToSend = 1;
-    ProcessedMessages processedMessages = 2;
-    string newNotifyToken = 3;
-  }
-}
-
-// The messages from the Tunnelbroker to the Client
-
-message MessageToClientStruct {
-  string messageID = 1;
-  string fromDeviceID = 2;
-  string payload = 3;
-  repeated string blobHashes = 4;
-}
-
-message MessagesToDeliver {
-  repeated MessageToClientStruct messages = 1;
-}
-
-message MessageToClient {
-  oneof data {
-    MessagesToDeliver messagesToDeliver = 1;
-    ProcessedMessages processedMessages = 2;
-    google.protobuf.Empty newNotifyTokenRequired = 3;
-  }
-}