diff --git a/ModeliRpc.capnp b/ModeliRpc.capnp
deleted file mode 100644
index f760a1975f2df0c16ea898791036f2f7292d80cf..0000000000000000000000000000000000000000
--- a/ModeliRpc.capnp
+++ /dev/null
@@ -1,64 +0,0 @@
-# This protocol is used by the ModeliChart backend to transfer data to the frontend.
-# Since this is a fmu simulator all int results are fmi2Status
-# The default port is 52062	
-@0xb51166b0ce5aa3a5;
-
-# This interface offers methods for common simulation tasks
-interface ModeliBackend {
-  # Start Simulation
-  play @0 () -> (result : Int16);
-  # Simulate as quick as possible
-  playFast @1 (timeToPlay : Float64) -> (result : Int16);
-  # Pause simulation
-  pause @2 ();
-  # Stop and reset simulation
-  stop @3 () -> (result : Int16);
-  
-  # Add a new Fmu to the simulation, returns false on fail
-  addFmu @4 (instanceName : Text, fmuFile : Data) -> (result : Bool);
-  # Remove a Fmu from the simulation, returns false on fail
-  removeFmu @5 (instanceName : Text) -> (result : Bool);
- 
-  # Add a ChannelLink to the simulation, returns false on fail
-  addChannelLink @6 (channelLink : ChannelLink) -> (result : Bool);
-  # Remove matching ChannelLink from the simulation, returns false on fail
-  removeChannelLink @7 (channelLink : ChannelLink) -> (result : Bool);
-  # This struct defines a channel link.
-  struct ChannelLink {
-    masterInstanceName @0 : Text;
-    slaveInstanceName @1 : Text;
-    masterValueRef @2 : UInt32;
-    slaveValueRef @3 : UInt32;
-    factor @4 : Float64;
-    offset @5 : Float64;
-  }
-  
-  # Set values in the simulation
-  setValues @8 (values : Values) -> (result : Int16);
-  
-  # Register frontend so we can call the callbacks
-  registerFrontend @9 (frontend : ModeliFrontend);
-  
-  # Test the connection
-  ping @10 ();
-}
-
-interface ModeliFrontend {
-  # new values from the simulation
-  newValues @0 (timestamp : Float64, values : Values);
-  # Send a log message to the frontend
-  log @1 (instanceName : Text, status : Int16, message : Text);
-} 
-
-# Send all values of one fmu in one struct
-struct Values {
-  instanceName @0 : Text;
-  integerValueRefs @1 : List(UInt32);
-  integerValues @2 : List(Int32);
-  realValueRefs @3 : List(UInt32);
-  realValues @4 : List(Float64);
-  boolValueRefs @5 : List(UInt32);  # fmi2Bool is an int (0 = false, 1 = true)
-  boolValues @6 : List(Int32);
-  stringValueRefs @7 : List(UInt32);
-  stringValues @8 : List(Text);
-}   
\ No newline at end of file
diff --git a/ModeliRpc.proto b/ModeliRpc.proto
new file mode 100644
index 0000000000000000000000000000000000000000..3f83b030ab6029a069a4b53771e9f202c1c62192
--- /dev/null
+++ b/ModeliRpc.proto
@@ -0,0 +1,144 @@
+// Language defintion
+syntax = "proto3";
+// Will be the default namespace
+package ModeliRpc;
+
+// Service must be offered by a ModeliChart Backend
+// Default Port ist 52062
+service ModeliBackend {
+    // Simulation state control
+    rpc Play (PlayRequest) returns (PlayResponse);
+    rpc PlayFast (PlayFastRequest) returns (PlayFastResponse);
+    rpc Pause (PauseRequest) returns (PauseResponse);
+    rpc Stop (StopRequest) returns (StopResponse);
+    
+    // Fmu management
+    // Transfer FMU via stream and use chunking
+    rpc AddFmu (stream AddFmuRequest) returns (AddFmuResponse);
+    rpc RemoveFmu (RemoveFmuRequest) returns (RemoveFmuResponse);
+    
+    // ChannelLink management
+    rpc AddChannelLink (AddChannelLinkRequest) returns (AddChannelLinkResponse);
+    rpc RemoveChannelLink (RemoveChannelLinkRequest) returns (RemoveChannelLinkResponse);
+    
+    // Transfer settable channel values
+    rpc SetValues (SetValuesReqest) returns (SetValuesResponse);
+    
+    // Stream simulation results to the client
+    rpc NewValues (NewValuesRequest) returns (stream NewValuesResponse);
+    // Stream log messages to the client
+    rpc Log (LogRequest) returns (stream LogResponse);
+}
+
+// From Fmi2Standard
+enum Fmi2Status {
+    FMI2_OK = 0;
+    FMI2_WARNING = 1;
+    FMI2_DISCARD = 2;
+    FMI2_ERROR = 3;
+    FMI2_FATAL = 4;
+    FMI2_PENDING = 5;
+}
+
+// Contains values from and for the fmu
+message Values {
+    string instance_name =  1;
+    repeated uint32 int_vrs = 2;
+    repeated int32 int_values = 3;
+    repeated uint32 real_vrs = 4;
+    repeated double real_values = 5;
+    repeated uint32 bool_vrs = 6;
+    repeated int32 bool_values = 7;     // fmi2Bool = int32 (0 = false, 1 = true)
+    repeated uint32 string_vrs = 8;
+    repeated string string_values = 9;
+}
+
+// The metadata of a ChannelLink
+message ChannelLink {
+    string master_instance_name = 1;
+    string slave_instance_name = 2;
+    uint32 master_vr = 3;
+    uint32 slave_vr = 4;
+    double factor = 5;
+    double offset = 6;
+}
+
+// Request & Response definitions
+message PlayRequest {}
+
+message PlayResponse {
+    Fmi2Status status = 1;
+}
+
+message PlayFastRequest {
+    double  time = 1;
+}
+
+message PlayFastResponse {
+    Fmi2Status status = 1;
+}
+
+message PauseRequest {}
+
+message PauseResponse {}
+
+message StopRequest {}
+
+message StopResponse {
+    Fmi2Status status = 1;
+}
+
+message AddFmuRequest {
+    string instance_name = 1;
+    bytes data = 2;
+}
+
+message AddFmuResponse {
+    bool success = 1;
+}
+
+message RemoveFmuRequest {
+    string instance_name = 1;
+}
+
+message RemoveFmuResponse {
+    bool success = 1;
+}
+
+message AddChannelLinkRequest {
+    ChannelLink channel_link = 1;
+}
+
+message AddChannelLinkResponse {
+    bool success = 1;
+}
+
+message RemoveChannelLinkRequest {
+    ChannelLink channel_link = 1;
+}
+
+message RemoveChannelLinkResponse {
+    bool success = 1;
+}
+
+message SetValuesReqest {
+    Values values = 1;
+}
+
+message SetValuesResponse {
+    Fmi2Status status = 1;
+}
+
+message NewValuesRequest {}
+
+message NewValuesResponse {
+    Values values = 1;
+}
+
+message LogRequest {}
+
+message LogResponse {
+    string instance_name = 1;
+    Fmi2Status status = 2;
+    string message = 3;
+}
\ No newline at end of file
diff --git a/ModeliRpc/ModeliRpc.sln b/ModeliRpc/ModeliRpc.sln
deleted file mode 100644
index bbfe37dc7fd54be18d820cfe2c43bb0dbdde43ac..0000000000000000000000000000000000000000
--- a/ModeliRpc/ModeliRpc.sln
+++ /dev/null
@@ -1,41 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.27130.2003
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ModeliRpcCLR", "ModeliRpcCLR\ModeliRpcCLR.vcxproj", "{A8187A41-1D24-438F-9B5D-0F7BF270130E}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ModeliRpcNative", "ModeliRpcNative\ModeliRpcNative.vcxproj", "{171ED599-C0C6-4342-8328-E7ABE7F7FEAA}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|x64 = Debug|x64
-		Debug|x86 = Debug|x86
-		Release|x64 = Release|x64
-		Release|x86 = Release|x86
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{A8187A41-1D24-438F-9B5D-0F7BF270130E}.Debug|x64.ActiveCfg = Debug|x64
-		{A8187A41-1D24-438F-9B5D-0F7BF270130E}.Debug|x64.Build.0 = Debug|x64
-		{A8187A41-1D24-438F-9B5D-0F7BF270130E}.Debug|x86.ActiveCfg = Debug|Win32
-		{A8187A41-1D24-438F-9B5D-0F7BF270130E}.Debug|x86.Build.0 = Debug|Win32
-		{A8187A41-1D24-438F-9B5D-0F7BF270130E}.Release|x64.ActiveCfg = Release|x64
-		{A8187A41-1D24-438F-9B5D-0F7BF270130E}.Release|x64.Build.0 = Release|x64
-		{A8187A41-1D24-438F-9B5D-0F7BF270130E}.Release|x86.ActiveCfg = Release|Win32
-		{A8187A41-1D24-438F-9B5D-0F7BF270130E}.Release|x86.Build.0 = Release|Win32
-		{171ED599-C0C6-4342-8328-E7ABE7F7FEAA}.Debug|x64.ActiveCfg = Debug|x64
-		{171ED599-C0C6-4342-8328-E7ABE7F7FEAA}.Debug|x64.Build.0 = Debug|x64
-		{171ED599-C0C6-4342-8328-E7ABE7F7FEAA}.Debug|x86.ActiveCfg = Debug|Win32
-		{171ED599-C0C6-4342-8328-E7ABE7F7FEAA}.Debug|x86.Build.0 = Debug|Win32
-		{171ED599-C0C6-4342-8328-E7ABE7F7FEAA}.Release|x64.ActiveCfg = Release|x64
-		{171ED599-C0C6-4342-8328-E7ABE7F7FEAA}.Release|x64.Build.0 = Release|x64
-		{171ED599-C0C6-4342-8328-E7ABE7F7FEAA}.Release|x86.ActiveCfg = Release|Win32
-		{171ED599-C0C6-4342-8328-E7ABE7F7FEAA}.Release|x86.Build.0 = Release|Win32
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-	GlobalSection(ExtensibilityGlobals) = postSolution
-		SolutionGuid = {E1F47424-6A4D-43F9-982C-D5C9154CA77F}
-	EndGlobalSection
-EndGlobal
diff --git a/ModeliRpc/ModeliRpcNative/CapnConverter.cpp b/ModeliRpc/ModeliRpcNative/CapnConverter.cpp
deleted file mode 100644
index 4db94196f1c8957bd035a4d7e0afcbbe70c0df4b..0000000000000000000000000000000000000000
--- a/ModeliRpc/ModeliRpcNative/CapnConverter.cpp
+++ /dev/null
@@ -1,142 +0,0 @@
-#include "stdafx.h"
-#include "CapnConverter.h"
-#include "capnp/message.h"
-
-CapnConverter::CapnConverter()
-{
-}
-
-
-CapnConverter::~CapnConverter()
-{
-}
-
-ValuesStruct CapnConverter::convertValues(Values::Reader reader)
-{
-    // Read the data into std types
-    std::string instanceName = reader.getInstanceName();
-
-    // int
-    std::vector<uint32_t> intVrs;
-    for (auto element : reader.getIntegerValueRefs())
-    {
-        intVrs.push_back(element);
-    }
-    std::vector<int32_t> intValues;
-    for (auto element : reader.getIntegerValues())
-    {
-        intValues.push_back(element);
-    }
-    // real
-    std::vector<uint32_t> realVrs;
-    for (auto element : reader.getRealValueRefs())
-    {
-        realVrs.push_back(element);
-    }
-    std::vector<double> realValues;
-    for (auto element : reader.getRealValues())
-    {
-        realValues.push_back(element);
-    }
-    // bool
-    std::vector<uint32_t> boolVrs;
-    for (auto element : reader.getBoolValueRefs())
-    {
-        boolVrs.push_back(element);
-    }
-    std::vector<int32_t> boolValues;
-    for (auto element : reader.getBoolValues())
-    {
-        boolValues.push_back(element);
-    }
-    // string
-    std::vector<uint32_t> stringVrs;
-    for (auto element : reader.getStringValueRefs())
-    {
-        stringVrs.push_back(element);
-    }
-    std::vector<std::string> stringValues;
-    for (auto textReader : reader.getStringValues())
-    {
-        // std copy does not work because we have to convert the textreader implicity
-        stringValues.push_back(textReader);
-    }
-    // assemble
-    return ValuesStruct{
-        instanceName,
-        intVrs,
-        intValues,
-        realVrs,
-        realValues,
-        boolVrs,
-        boolValues,
-        stringVrs,
-        stringValues
-    };
-}
-
-Values::Builder CapnConverter::convertValues(ValuesStruct values)
-{
-    capnp::MallocMessageBuilder builder;
-    auto retVal = builder.initRoot<Values>();
-    retVal.setInstanceName(values.instanceName);
-
-    // int
-    auto intVrs = retVal.initIntegerValueRefs(values.integerValueRefs.size());
-    for (int i = 0; i < intVrs.size(); i++)
-    {
-        intVrs.set(i, values.integerValueRefs[i]);
-    }
-    auto intValues = retVal.initIntegerValues(values.integerValues.size());
-    for (int i = 0; i < intValues.size(); i++)
-    {
-        intValues.set(i, values.integerValues[i]);
-    }
-    // real
-    auto realVrs = retVal.initRealValueRefs(values.realValueRefs.size());
-    for (int i = 0; i < realVrs.size(); i++)
-    {
-        realVrs.set(i, values.realValueRefs[i]);
-    }
-    auto realValues = retVal.initRealValues(values.realValues.size());
-    for (int i = 0; i < realValues.size(); i++)
-    {
-        realValues.set(i, values.realValues[i]);
-    }
-    // bool
-    auto boolVrs = retVal.initBoolValueRefs(values.boolValueRefs.size());
-    for (int i = 0; i < boolVrs.size(); i++)
-    {
-        boolVrs.set(i, values.boolValueRefs[i]);
-    }
-    auto boolValues = retVal.initBoolValues(values.boolValues.size());
-    for (int i = 0; i < boolValues.size(); i++)
-    {
-        boolValues.set(i, values.boolValues[i]);
-    }
-    // string
-    auto stringVrs = retVal.initStringValueRefs(values.stringValueRefs.size());
-    for (int i = 0; i < stringVrs.size(); i++)
-    {
-        stringVrs.set(i, values.stringValueRefs[i]);
-    }
-    auto stringValues = retVal.initStringValues(values.stringValues.size());
-    for (int i = 0; i < stringValues.size(); i++)
-    {
-        stringValues.set(i, values.stringValues[i]);
-    }
-    return retVal;
-}
-
-ModeliBackend::ChannelLink::Builder CapnConverter::convertChannelLink(ChannelLink channelLink)
-{
-    capnp::MallocMessageBuilder builder;
-    auto retVal = builder.initRoot<ModeliBackend::ChannelLink>();
-    retVal.setMasterInstanceName(channelLink.masterInstanceName);
-    retVal.setSlaveInstanceName(channelLink.slaveInstanceName);
-    retVal.setMasterValueRef(channelLink.masterValueRef);
-    retVal.setSlaveValueRef(channelLink.slaveValueRef);
-    retVal.setFactor(channelLink.factor);
-    retVal.setOffset(channelLink.offset);
-    return retVal;
-}
diff --git a/ModeliRpc/ModeliRpcNative/CapnConverter.h b/ModeliRpc/ModeliRpcNative/CapnConverter.h
deleted file mode 100644
index e186717f7f6f660da544ac180c4e2ab98200bf7d..0000000000000000000000000000000000000000
--- a/ModeliRpc/ModeliRpcNative/CapnConverter.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#pragma once
-#include <string>
-#include <vector>
-#include "ModeliRpc.capnp.h"
-#include "IRpcFrontend.h"
-
-/// Several helper methods to convert our capn protocol
-class CapnConverter
-{
-public:
-    CapnConverter();
-    ~CapnConverter();
-
-    static ValuesStruct convertValues(Values::Reader reader);
-    static Values::Builder convertValues(ValuesStruct values);
-    static ModeliBackend::ChannelLink::Builder convertChannelLink(ChannelLink channelLink);
-};
-
diff --git a/ModeliRpc/ModeliRpcNative/IRpcFrontend.h b/ModeliRpc/ModeliRpcNative/IRpcFrontend.h
deleted file mode 100644
index a830cd0f07b6c6c1052c9018cfe1839c009d6248..0000000000000000000000000000000000000000
--- a/ModeliRpc/ModeliRpcNative/IRpcFrontend.h
+++ /dev/null
@@ -1,59 +0,0 @@
-#pragma once
-#include <string>
-#include <vector>
-
-// Struct that will be used for the NewValues callback
-struct ValuesStruct
-{
-    std::string instanceName;
-    std::vector<uint32_t> integerValueRefs;
-    std::vector<int32_t> integerValues;
-    std::vector<uint32_t> realValueRefs;
-    std::vector<double> realValues;
-    std::vector<uint32_t> boolValueRefs;
-    std::vector<int32_t> boolValues;
-    std::vector<uint32_t> stringValueRefs;
-    std::vector<std::string> stringValues;
-};
-
-// Definition of a channel link
-struct ChannelLink
-{
-    std::string masterInstanceName;
-    std::string slaveInstanceName;
-    uint32_t masterValueRef;
-    uint32_t slaveValueRef;
-    double factor;
-    double offset;
-};
-
-// Callback definitions shall be easy to marshall
-typedef void(__stdcall *NewValuesCallback)(double timestamp, ValuesStruct values);
-typedef void(__stdcall *LogCallback)(std::string instanceName, int status, std::string message);
-
-
-/// This interface hides the rpc (framework) implementation.
-/// We can compile a pure native library and do not have to worry about CLI compiler errors.
-class IRpcFrontend
-{
-public:
-    virtual void destroy() = 0;
-    virtual void connect(std::string address, unsigned int port) = 0;
-    virtual void registerCallbacks(NewValuesCallback newValuesCallback, LogCallback logCallback) = 0;
-    /// Returns fmi2Status
-    virtual int play() = 0;
-    /// Returns fmi2Status
-    virtual int playFast(double timeToPlay) = 0;
-    virtual void pause() = 0;
-    /// Returns fmi2Status
-    virtual int stop() = 0;
-    virtual bool addFmu(std::string instanceName, std::vector<unsigned char> fmuFile) = 0;
-    virtual bool removeFmu(std::string instanceName) = 0;
-    virtual bool addChannelLink(ChannelLink channelLink) = 0;
-    virtual bool removeChannelink(ChannelLink channelLink) = 0;
-    /// Returns fmi2Status
-    virtual int setValues(ValuesStruct values) = 0;
-};
-
-// Export a function of this type
-typedef IRpcFrontend* (*createRpcFrontendType)();
\ No newline at end of file
diff --git a/ModeliRpc/ModeliRpcNative/ModeliFrontendImpl.cpp b/ModeliRpc/ModeliRpcNative/ModeliFrontendImpl.cpp
deleted file mode 100644
index d456bc21f38694f954b56dc2ec2ab337be30ae35..0000000000000000000000000000000000000000
--- a/ModeliRpc/ModeliRpcNative/ModeliFrontendImpl.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-#include "stdafx.h"
-#include "ModeliFrontendImpl.h"
-#include "CapnConverter.h"
-
-
-ModeliFrontendImpl::ModeliFrontendImpl(NewValuesCallback newValuesCallback, LogCallback logCallback) :
-    _newValuesCallback(newValuesCallback), _logCallback(logCallback)
-{
-}
-
-ModeliFrontendImpl::~ModeliFrontendImpl()
-{
-}
-
-kj::Promise<void> ModeliFrontendImpl::newValues(NewValuesContext context)
-{
-    _newValuesCallback(context.getParams().getTimestamp(), CapnConverter::convertValues(context.getParams().getValues()));
-    // Return to client
-    return kj::READY_NOW;
-}
-
-kj::Promise<void> ModeliFrontendImpl::log(LogContext context)
-{
-    _logCallback(context.getParams().getInstanceName(), context.getParams().getStatus(), context.getParams().getMessage());
-    // Return to client
-    return kj::READY_NOW;
-}
diff --git a/ModeliRpc/ModeliRpcNative/ModeliFrontendImpl.h b/ModeliRpc/ModeliRpcNative/ModeliFrontendImpl.h
deleted file mode 100644
index 94a3c313b44a2bc1b611308c22167accda77969d..0000000000000000000000000000000000000000
--- a/ModeliRpc/ModeliRpcNative/ModeliFrontendImpl.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#pragma 
-#include "ModeliRpc.capnp.h"
-#include "IRpcFrontend.h"
-#include <string>
-#include <vector>
-
-
-/// This class serves as a forwarder of the callbacks.
-class ModeliFrontendImpl final : public ModeliFrontend::Server
-{
-private:
-    NewValuesCallback _newValuesCallback;
-    LogCallback _logCallback;
-public:
-    ModeliFrontendImpl(NewValuesCallback newValuesCallback, LogCallback logCallback);
-    ~ModeliFrontendImpl();
-
-    // Overrides of the ModeliFrontend::Server interface
-    kj::Promise<void> newValues(NewValuesContext context) override;
-    kj::Promise<void> log(LogContext context) override;
-};
diff --git a/ModeliRpc/ModeliRpcNative/ModeliRpc.capnp.c++ b/ModeliRpc/ModeliRpcNative/ModeliRpc.capnp.c++
deleted file mode 100644
index 4e842cc8bceb4d9be6e3c93d59d51cc4411c561b..0000000000000000000000000000000000000000
--- a/ModeliRpc/ModeliRpcNative/ModeliRpc.capnp.c++
+++ /dev/null
@@ -1,2129 +0,0 @@
-// Generated by Cap'n Proto compiler, DO NOT EDIT
-// source: ModeliRpc.capnp
-
-#include "ModeliRpc.capnp.h"
-
-namespace capnp {
-namespace schemas {
-static const ::capnp::_::AlignedData<141> b_c189361aa8d3ec0a = {
-  {   0,   0,   0,   0,   5,   0,   6,   0,
-     10, 236, 211, 168,  26,  54, 137, 193,
-     16,   0,   0,   0,   3,   0,   0,   0,
-    165, 163,  90, 206, 176, 102,  17, 181,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     21,   0,   0,   0, 242,   0,   0,   0,
-     33,   0,   0,   0,  23,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     45,   0,   0,   0, 199,   2,   0,   0,
-      5,   2,   0,   0,   7,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     77, 111, 100, 101, 108, 105,  82, 112,
-     99,  46,  99,  97, 112, 110, 112,  58,
-     77, 111, 100, 101, 108, 105,  66,  97,
-     99, 107, 101, 110, 100,   0,   0,   0,
-      4,   0,   0,   0,   1,   0,   1,   0,
-     84,  43, 232, 178,  87, 193,   8, 174,
-      1,   0,   0,   0,  98,   0,   0,   0,
-     67, 104,  97, 110, 110, 101, 108,  76,
-    105, 110, 107,   0,   0,   0,   0,   0,
-     44,   0,   0,   0,   3,   0,   5,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      5,  56,  43, 188,  82, 153,  97, 235,
-     47,   7,  46, 236,  44, 131,  92, 147,
-     81,   1,   0,   0,  42,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     69,   1,   0,   0,   7,   0,   0,   0,
-      1,   0,   0,   0,   0,   0,   0,   0,
-    254, 246, 209, 214, 117, 135, 213, 146,
-     88,  61, 155, 234,  21, 143, 231, 220,
-     57,   1,   0,   0,  74,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     49,   1,   0,   0,   7,   0,   0,   0,
-      2,   0,   0,   0,   0,   0,   0,   0,
-     62,   4,   3,  50, 160, 227,  99, 146,
-     93, 181, 195, 175, 214, 105, 123, 142,
-     37,   1,   0,   0,  50,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     25,   1,   0,   0,   7,   0,   0,   0,
-      3,   0,   0,   0,   0,   0,   0,   0,
-    214, 231, 151, 231,  56, 111,  46, 131,
-     78,  71, 200, 119,  21, 194, 180, 201,
-     13,   1,   0,   0,  42,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      1,   1,   0,   0,   7,   0,   0,   0,
-      4,   0,   0,   0,   0,   0,   0,   0,
-     24,  58, 213,  67,  42, 183,  62, 206,
-    255, 190,  93, 229, 238,  75, 112, 148,
-    245,   0,   0,   0,  58,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    233,   0,   0,   0,   7,   0,   0,   0,
-      5,   0,   0,   0,   0,   0,   0,   0,
-    159, 204, 110, 218, 169, 177,  82, 163,
-    219, 213, 116,  86,  27, 175, 202, 134,
-    221,   0,   0,   0,  82,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    213,   0,   0,   0,   7,   0,   0,   0,
-      6,   0,   0,   0,   0,   0,   0,   0,
-    103, 126,  58, 227, 215, 186,  36, 255,
-     22, 199, 152,  43, 178, 255, 212, 138,
-    201,   0,   0,   0, 122,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    193,   0,   0,   0,   7,   0,   0,   0,
-      7,   0,   0,   0,   0,   0,   0,   0,
-     11, 111,  14,  62, 127, 221, 158, 135,
-    202, 134, 214, 251, 109,  26, 175, 152,
-    181,   0,   0,   0, 146,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    177,   0,   0,   0,   7,   0,   0,   0,
-      8,   0,   0,   0,   0,   0,   0,   0,
-     45, 233, 149,  52,  53, 158, 225, 128,
-     60, 226,  78,  51,  53,  87,  35, 233,
-    165,   0,   0,   0,  82,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    157,   0,   0,   0,   7,   0,   0,   0,
-      9,   0,   0,   0,   0,   0,   0,   0,
-    162, 164, 186, 153,  85,  94,  47, 195,
-    234, 153, 155, 234, 247, 207, 135, 176,
-    145,   0,   0,   0, 138,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    141,   0,   0,   0,   7,   0,   0,   0,
-     10,   0,   0,   0,   0,   0,   0,   0,
-     73, 246, 163,  97,  63,  51, 191, 246,
-    179, 221,  70, 157,  48,  29, 159, 245,
-    129,   0,   0,   0,  42,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    117,   0,   0,   0,   7,   0,   0,   0,
-    112, 108,  97, 121,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   1,   0,
-    112, 108,  97, 121,  70,  97, 115, 116,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   1,   0,
-    112,  97, 117, 115, 101,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   1,   0,
-    115, 116, 111, 112,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   1,   0,
-     97, 100, 100,  70, 109, 117,   0,   0,
-      0,   0,   0,   0,   0,   0,   1,   0,
-    114, 101, 109, 111, 118, 101,  70, 109,
-    117,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   1,   0,
-     97, 100, 100,  67, 104,  97, 110, 110,
-    101, 108,  76, 105, 110, 107,   0,   0,
-      0,   0,   0,   0,   0,   0,   1,   0,
-    114, 101, 109, 111, 118, 101,  67, 104,
-     97, 110, 110, 101, 108,  76, 105, 110,
-    107,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   1,   0,
-    115, 101, 116,  86,  97, 108, 117, 101,
-    115,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   1,   0,
-    114, 101, 103, 105, 115, 116, 101, 114,
-     70, 114, 111, 110, 116, 101, 110, 100,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   1,   0,
-    112, 105, 110, 103,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   1,   0,
-      0,   0,   0,   0,   1,   0,   1,   0, }
-};
-::capnp::word const* const bp_c189361aa8d3ec0a = b_c189361aa8d3ec0a.words;
-#if !CAPNP_LITE
-static const ::capnp::_::RawSchema* const d_c189361aa8d3ec0a[] = {
-  &s_80e19e353495e92d,
-  &s_832e6f38e797e7d6,
-  &s_86caaf1b5674d5db,
-  &s_879edd7f3e0e6f0b,
-  &s_8ad4ffb22b98c716,
-  &s_8e7b69d6afc3b55d,
-  &s_9263e3a03203043e,
-  &s_92d58775d6d1f6fe,
-  &s_935c832cec2e072f,
-  &s_94704beee55dbeff,
-  &s_98af1a6dfbd686ca,
-  &s_a352b1a9da6ecc9f,
-  &s_b087cff7ea9b99ea,
-  &s_c32f5e5599baa4a2,
-  &s_c9b4c21577c8474e,
-  &s_ce3eb72a43d53a18,
-  &s_dce78f15ea9b3d58,
-  &s_e9235735334ee23c,
-  &s_eb619952bc2b3805,
-  &s_f59f1d309d46ddb3,
-  &s_f6bf333f61a3f649,
-  &s_ff24bad7e33a7e67,
-};
-static const uint16_t m_c189361aa8d3ec0a[] = {6, 4, 2, 10, 0, 1, 9, 7, 5, 8, 3};
-const ::capnp::_::RawSchema s_c189361aa8d3ec0a = {
-  0xc189361aa8d3ec0a, b_c189361aa8d3ec0a.words, 141, d_c189361aa8d3ec0a, m_c189361aa8d3ec0a,
-  22, 11, nullptr, nullptr, nullptr, { &s_c189361aa8d3ec0a, nullptr, nullptr, 0, 0, nullptr }
-};
-#endif  // !CAPNP_LITE
-static const ::capnp::_::AlignedData<116> b_ae08c157b2e82b54 = {
-  {   0,   0,   0,   0,   5,   0,   6,   0,
-     84,  43, 232, 178,  87, 193,   8, 174,
-     30,   0,   0,   0,   1,   0,   3,   0,
-     10, 236, 211, 168,  26,  54, 137, 193,
-      2,   0,   7,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     21,   0,   0,   0,  82,   1,   0,   0,
-     41,   0,   0,   0,   7,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     37,   0,   0,   0,  87,   1,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     77, 111, 100, 101, 108, 105,  82, 112,
-     99,  46,  99,  97, 112, 110, 112,  58,
-     77, 111, 100, 101, 108, 105,  66,  97,
-     99, 107, 101, 110, 100,  46,  67, 104,
-     97, 110, 110, 101, 108,  76, 105, 110,
-    107,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   1,   0,   1,   0,
-     24,   0,   0,   0,   3,   0,   4,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   1,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    153,   0,   0,   0, 154,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    156,   0,   0,   0,   3,   0,   1,   0,
-    168,   0,   0,   0,   2,   0,   1,   0,
-      1,   0,   0,   0,   1,   0,   0,   0,
-      0,   0,   1,   0,   1,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    165,   0,   0,   0, 146,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    168,   0,   0,   0,   3,   0,   1,   0,
-    180,   0,   0,   0,   2,   0,   1,   0,
-      2,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   1,   0,   2,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    177,   0,   0,   0, 122,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    176,   0,   0,   0,   3,   0,   1,   0,
-    188,   0,   0,   0,   2,   0,   1,   0,
-      3,   0,   0,   0,   1,   0,   0,   0,
-      0,   0,   1,   0,   3,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    185,   0,   0,   0, 114,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    184,   0,   0,   0,   3,   0,   1,   0,
-    196,   0,   0,   0,   2,   0,   1,   0,
-      4,   0,   0,   0,   1,   0,   0,   0,
-      0,   0,   1,   0,   4,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    193,   0,   0,   0,  58,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    188,   0,   0,   0,   3,   0,   1,   0,
-    200,   0,   0,   0,   2,   0,   1,   0,
-      5,   0,   0,   0,   2,   0,   0,   0,
-      0,   0,   1,   0,   5,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    197,   0,   0,   0,  58,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    192,   0,   0,   0,   3,   0,   1,   0,
-    204,   0,   0,   0,   2,   0,   1,   0,
-    109,  97, 115, 116, 101, 114,  73, 110,
-    115, 116,  97, 110,  99, 101,  78,  97,
-    109, 101,   0,   0,   0,   0,   0,   0,
-     12,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     12,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    115, 108,  97, 118, 101,  73, 110, 115,
-    116,  97, 110,  99, 101,  78,  97, 109,
-    101,   0,   0,   0,   0,   0,   0,   0,
-     12,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     12,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    109,  97, 115, 116, 101, 114,  86,  97,
-    108, 117, 101,  82, 101, 102,   0,   0,
-      8,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      8,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    115, 108,  97, 118, 101,  86,  97, 108,
-    117, 101,  82, 101, 102,   0,   0,   0,
-      8,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      8,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    102,  97,  99, 116, 111, 114,   0,   0,
-     11,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     11,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    111, 102, 102, 115, 101, 116,   0,   0,
-     11,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     11,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0, }
-};
-::capnp::word const* const bp_ae08c157b2e82b54 = b_ae08c157b2e82b54.words;
-#if !CAPNP_LITE
-static const uint16_t m_ae08c157b2e82b54[] = {4, 0, 2, 5, 1, 3};
-static const uint16_t i_ae08c157b2e82b54[] = {0, 1, 2, 3, 4, 5};
-const ::capnp::_::RawSchema s_ae08c157b2e82b54 = {
-  0xae08c157b2e82b54, b_ae08c157b2e82b54.words, 116, nullptr, m_ae08c157b2e82b54,
-  0, 6, i_ae08c157b2e82b54, nullptr, nullptr, { &s_ae08c157b2e82b54, nullptr, nullptr, 0, 0, nullptr }
-};
-#endif  // !CAPNP_LITE
-static const ::capnp::_::AlignedData<18> b_eb619952bc2b3805 = {
-  {   0,   0,   0,   0,   5,   0,   6,   0,
-      5,  56,  43, 188,  82, 153,  97, 235,
-     30,   0,   0,   0,   1,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   7,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     21,   0,   0,   0,  82,   1,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     77, 111, 100, 101, 108, 105,  82, 112,
-     99,  46,  99,  97, 112, 110, 112,  58,
-     77, 111, 100, 101, 108, 105,  66,  97,
-     99, 107, 101, 110, 100,  46, 112, 108,
-     97, 121,  36,  80,  97, 114,  97, 109,
-    115,   0,   0,   0,   0,   0,   0,   0, }
-};
-::capnp::word const* const bp_eb619952bc2b3805 = b_eb619952bc2b3805.words;
-#if !CAPNP_LITE
-const ::capnp::_::RawSchema s_eb619952bc2b3805 = {
-  0xeb619952bc2b3805, b_eb619952bc2b3805.words, 18, nullptr, nullptr,
-  0, 0, nullptr, nullptr, nullptr, { &s_eb619952bc2b3805, nullptr, nullptr, 0, 0, nullptr }
-};
-#endif  // !CAPNP_LITE
-static const ::capnp::_::AlignedData<34> b_935c832cec2e072f = {
-  {   0,   0,   0,   0,   5,   0,   6,   0,
-     47,   7,  46, 236,  44, 131,  92, 147,
-     30,   0,   0,   0,   1,   0,   1,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   7,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     21,   0,   0,   0,  90,   1,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     33,   0,   0,   0,  63,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     77, 111, 100, 101, 108, 105,  82, 112,
-     99,  46,  99,  97, 112, 110, 112,  58,
-     77, 111, 100, 101, 108, 105,  66,  97,
-     99, 107, 101, 110, 100,  46, 112, 108,
-     97, 121,  36,  82, 101, 115, 117, 108,
-    116, 115,   0,   0,   0,   0,   0,   0,
-      4,   0,   0,   0,   3,   0,   4,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   1,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     13,   0,   0,   0,  58,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      8,   0,   0,   0,   3,   0,   1,   0,
-     20,   0,   0,   0,   2,   0,   1,   0,
-    114, 101, 115, 117, 108, 116,   0,   0,
-      3,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      3,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0, }
-};
-::capnp::word const* const bp_935c832cec2e072f = b_935c832cec2e072f.words;
-#if !CAPNP_LITE
-static const uint16_t m_935c832cec2e072f[] = {0};
-static const uint16_t i_935c832cec2e072f[] = {0};
-const ::capnp::_::RawSchema s_935c832cec2e072f = {
-  0x935c832cec2e072f, b_935c832cec2e072f.words, 34, nullptr, m_935c832cec2e072f,
-  0, 1, i_935c832cec2e072f, nullptr, nullptr, { &s_935c832cec2e072f, nullptr, nullptr, 0, 0, nullptr }
-};
-#endif  // !CAPNP_LITE
-static const ::capnp::_::AlignedData<35> b_92d58775d6d1f6fe = {
-  {   0,   0,   0,   0,   5,   0,   6,   0,
-    254, 246, 209, 214, 117, 135, 213, 146,
-     30,   0,   0,   0,   1,   0,   1,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   7,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     21,   0,   0,   0, 114,   1,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     33,   0,   0,   0,  63,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     77, 111, 100, 101, 108, 105,  82, 112,
-     99,  46,  99,  97, 112, 110, 112,  58,
-     77, 111, 100, 101, 108, 105,  66,  97,
-     99, 107, 101, 110, 100,  46, 112, 108,
-     97, 121,  70,  97, 115, 116,  36,  80,
-     97, 114,  97, 109, 115,   0,   0,   0,
-      4,   0,   0,   0,   3,   0,   4,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   1,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     13,   0,   0,   0,  90,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     12,   0,   0,   0,   3,   0,   1,   0,
-     24,   0,   0,   0,   2,   0,   1,   0,
-    116, 105, 109, 101,  84, 111,  80, 108,
-     97, 121,   0,   0,   0,   0,   0,   0,
-     11,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     11,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0, }
-};
-::capnp::word const* const bp_92d58775d6d1f6fe = b_92d58775d6d1f6fe.words;
-#if !CAPNP_LITE
-static const uint16_t m_92d58775d6d1f6fe[] = {0};
-static const uint16_t i_92d58775d6d1f6fe[] = {0};
-const ::capnp::_::RawSchema s_92d58775d6d1f6fe = {
-  0x92d58775d6d1f6fe, b_92d58775d6d1f6fe.words, 35, nullptr, m_92d58775d6d1f6fe,
-  0, 1, i_92d58775d6d1f6fe, nullptr, nullptr, { &s_92d58775d6d1f6fe, nullptr, nullptr, 0, 0, nullptr }
-};
-#endif  // !CAPNP_LITE
-static const ::capnp::_::AlignedData<34> b_dce78f15ea9b3d58 = {
-  {   0,   0,   0,   0,   5,   0,   6,   0,
-     88,  61, 155, 234,  21, 143, 231, 220,
-     30,   0,   0,   0,   1,   0,   1,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   7,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     21,   0,   0,   0, 122,   1,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     33,   0,   0,   0,  63,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     77, 111, 100, 101, 108, 105,  82, 112,
-     99,  46,  99,  97, 112, 110, 112,  58,
-     77, 111, 100, 101, 108, 105,  66,  97,
-     99, 107, 101, 110, 100,  46, 112, 108,
-     97, 121,  70,  97, 115, 116,  36,  82,
-    101, 115, 117, 108, 116, 115,   0,   0,
-      4,   0,   0,   0,   3,   0,   4,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   1,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     13,   0,   0,   0,  58,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      8,   0,   0,   0,   3,   0,   1,   0,
-     20,   0,   0,   0,   2,   0,   1,   0,
-    114, 101, 115, 117, 108, 116,   0,   0,
-      3,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      3,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0, }
-};
-::capnp::word const* const bp_dce78f15ea9b3d58 = b_dce78f15ea9b3d58.words;
-#if !CAPNP_LITE
-static const uint16_t m_dce78f15ea9b3d58[] = {0};
-static const uint16_t i_dce78f15ea9b3d58[] = {0};
-const ::capnp::_::RawSchema s_dce78f15ea9b3d58 = {
-  0xdce78f15ea9b3d58, b_dce78f15ea9b3d58.words, 34, nullptr, m_dce78f15ea9b3d58,
-  0, 1, i_dce78f15ea9b3d58, nullptr, nullptr, { &s_dce78f15ea9b3d58, nullptr, nullptr, 0, 0, nullptr }
-};
-#endif  // !CAPNP_LITE
-static const ::capnp::_::AlignedData<18> b_9263e3a03203043e = {
-  {   0,   0,   0,   0,   5,   0,   6,   0,
-     62,   4,   3,  50, 160, 227,  99, 146,
-     30,   0,   0,   0,   1,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   7,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     21,   0,   0,   0,  90,   1,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     77, 111, 100, 101, 108, 105,  82, 112,
-     99,  46,  99,  97, 112, 110, 112,  58,
-     77, 111, 100, 101, 108, 105,  66,  97,
-     99, 107, 101, 110, 100,  46, 112,  97,
-    117, 115, 101,  36,  80,  97, 114,  97,
-    109, 115,   0,   0,   0,   0,   0,   0, }
-};
-::capnp::word const* const bp_9263e3a03203043e = b_9263e3a03203043e.words;
-#if !CAPNP_LITE
-const ::capnp::_::RawSchema s_9263e3a03203043e = {
-  0x9263e3a03203043e, b_9263e3a03203043e.words, 18, nullptr, nullptr,
-  0, 0, nullptr, nullptr, nullptr, { &s_9263e3a03203043e, nullptr, nullptr, 0, 0, nullptr }
-};
-#endif  // !CAPNP_LITE
-static const ::capnp::_::AlignedData<18> b_8e7b69d6afc3b55d = {
-  {   0,   0,   0,   0,   5,   0,   6,   0,
-     93, 181, 195, 175, 214, 105, 123, 142,
-     30,   0,   0,   0,   1,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   7,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     21,   0,   0,   0,  98,   1,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     77, 111, 100, 101, 108, 105,  82, 112,
-     99,  46,  99,  97, 112, 110, 112,  58,
-     77, 111, 100, 101, 108, 105,  66,  97,
-     99, 107, 101, 110, 100,  46, 112,  97,
-    117, 115, 101,  36,  82, 101, 115, 117,
-    108, 116, 115,   0,   0,   0,   0,   0, }
-};
-::capnp::word const* const bp_8e7b69d6afc3b55d = b_8e7b69d6afc3b55d.words;
-#if !CAPNP_LITE
-const ::capnp::_::RawSchema s_8e7b69d6afc3b55d = {
-  0x8e7b69d6afc3b55d, b_8e7b69d6afc3b55d.words, 18, nullptr, nullptr,
-  0, 0, nullptr, nullptr, nullptr, { &s_8e7b69d6afc3b55d, nullptr, nullptr, 0, 0, nullptr }
-};
-#endif  // !CAPNP_LITE
-static const ::capnp::_::AlignedData<18> b_832e6f38e797e7d6 = {
-  {   0,   0,   0,   0,   5,   0,   6,   0,
-    214, 231, 151, 231,  56, 111,  46, 131,
-     30,   0,   0,   0,   1,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   7,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     21,   0,   0,   0,  82,   1,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     77, 111, 100, 101, 108, 105,  82, 112,
-     99,  46,  99,  97, 112, 110, 112,  58,
-     77, 111, 100, 101, 108, 105,  66,  97,
-     99, 107, 101, 110, 100,  46, 115, 116,
-    111, 112,  36,  80,  97, 114,  97, 109,
-    115,   0,   0,   0,   0,   0,   0,   0, }
-};
-::capnp::word const* const bp_832e6f38e797e7d6 = b_832e6f38e797e7d6.words;
-#if !CAPNP_LITE
-const ::capnp::_::RawSchema s_832e6f38e797e7d6 = {
-  0x832e6f38e797e7d6, b_832e6f38e797e7d6.words, 18, nullptr, nullptr,
-  0, 0, nullptr, nullptr, nullptr, { &s_832e6f38e797e7d6, nullptr, nullptr, 0, 0, nullptr }
-};
-#endif  // !CAPNP_LITE
-static const ::capnp::_::AlignedData<34> b_c9b4c21577c8474e = {
-  {   0,   0,   0,   0,   5,   0,   6,   0,
-     78,  71, 200, 119,  21, 194, 180, 201,
-     30,   0,   0,   0,   1,   0,   1,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   7,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     21,   0,   0,   0,  90,   1,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     33,   0,   0,   0,  63,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     77, 111, 100, 101, 108, 105,  82, 112,
-     99,  46,  99,  97, 112, 110, 112,  58,
-     77, 111, 100, 101, 108, 105,  66,  97,
-     99, 107, 101, 110, 100,  46, 115, 116,
-    111, 112,  36,  82, 101, 115, 117, 108,
-    116, 115,   0,   0,   0,   0,   0,   0,
-      4,   0,   0,   0,   3,   0,   4,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   1,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     13,   0,   0,   0,  58,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      8,   0,   0,   0,   3,   0,   1,   0,
-     20,   0,   0,   0,   2,   0,   1,   0,
-    114, 101, 115, 117, 108, 116,   0,   0,
-      3,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      3,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0, }
-};
-::capnp::word const* const bp_c9b4c21577c8474e = b_c9b4c21577c8474e.words;
-#if !CAPNP_LITE
-static const uint16_t m_c9b4c21577c8474e[] = {0};
-static const uint16_t i_c9b4c21577c8474e[] = {0};
-const ::capnp::_::RawSchema s_c9b4c21577c8474e = {
-  0xc9b4c21577c8474e, b_c9b4c21577c8474e.words, 34, nullptr, m_c9b4c21577c8474e,
-  0, 1, i_c9b4c21577c8474e, nullptr, nullptr, { &s_c9b4c21577c8474e, nullptr, nullptr, 0, 0, nullptr }
-};
-#endif  // !CAPNP_LITE
-static const ::capnp::_::AlignedData<50> b_ce3eb72a43d53a18 = {
-  {   0,   0,   0,   0,   5,   0,   6,   0,
-     24,  58, 213,  67,  42, 183,  62, 206,
-     30,   0,   0,   0,   1,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      2,   0,   7,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     21,   0,   0,   0,  98,   1,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     33,   0,   0,   0, 119,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     77, 111, 100, 101, 108, 105,  82, 112,
-     99,  46,  99,  97, 112, 110, 112,  58,
-     77, 111, 100, 101, 108, 105,  66,  97,
-     99, 107, 101, 110, 100,  46,  97, 100,
-    100,  70, 109, 117,  36,  80,  97, 114,
-     97, 109, 115,   0,   0,   0,   0,   0,
-      8,   0,   0,   0,   3,   0,   4,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   1,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     41,   0,   0,   0, 106,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     40,   0,   0,   0,   3,   0,   1,   0,
-     52,   0,   0,   0,   2,   0,   1,   0,
-      1,   0,   0,   0,   1,   0,   0,   0,
-      0,   0,   1,   0,   1,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     49,   0,   0,   0,  66,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     44,   0,   0,   0,   3,   0,   1,   0,
-     56,   0,   0,   0,   2,   0,   1,   0,
-    105, 110, 115, 116,  97, 110,  99, 101,
-     78,  97, 109, 101,   0,   0,   0,   0,
-     12,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     12,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    102, 109, 117,  70, 105, 108, 101,   0,
-     13,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     13,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0, }
-};
-::capnp::word const* const bp_ce3eb72a43d53a18 = b_ce3eb72a43d53a18.words;
-#if !CAPNP_LITE
-static const uint16_t m_ce3eb72a43d53a18[] = {1, 0};
-static const uint16_t i_ce3eb72a43d53a18[] = {0, 1};
-const ::capnp::_::RawSchema s_ce3eb72a43d53a18 = {
-  0xce3eb72a43d53a18, b_ce3eb72a43d53a18.words, 50, nullptr, m_ce3eb72a43d53a18,
-  0, 2, i_ce3eb72a43d53a18, nullptr, nullptr, { &s_ce3eb72a43d53a18, nullptr, nullptr, 0, 0, nullptr }
-};
-#endif  // !CAPNP_LITE
-static const ::capnp::_::AlignedData<34> b_94704beee55dbeff = {
-  {   0,   0,   0,   0,   5,   0,   6,   0,
-    255, 190,  93, 229, 238,  75, 112, 148,
-     30,   0,   0,   0,   1,   0,   1,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   7,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     21,   0,   0,   0, 106,   1,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     33,   0,   0,   0,  63,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     77, 111, 100, 101, 108, 105,  82, 112,
-     99,  46,  99,  97, 112, 110, 112,  58,
-     77, 111, 100, 101, 108, 105,  66,  97,
-     99, 107, 101, 110, 100,  46,  97, 100,
-    100,  70, 109, 117,  36,  82, 101, 115,
-    117, 108, 116, 115,   0,   0,   0,   0,
-      4,   0,   0,   0,   3,   0,   4,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   1,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     13,   0,   0,   0,  58,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      8,   0,   0,   0,   3,   0,   1,   0,
-     20,   0,   0,   0,   2,   0,   1,   0,
-    114, 101, 115, 117, 108, 116,   0,   0,
-      1,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      1,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0, }
-};
-::capnp::word const* const bp_94704beee55dbeff = b_94704beee55dbeff.words;
-#if !CAPNP_LITE
-static const uint16_t m_94704beee55dbeff[] = {0};
-static const uint16_t i_94704beee55dbeff[] = {0};
-const ::capnp::_::RawSchema s_94704beee55dbeff = {
-  0x94704beee55dbeff, b_94704beee55dbeff.words, 34, nullptr, m_94704beee55dbeff,
-  0, 1, i_94704beee55dbeff, nullptr, nullptr, { &s_94704beee55dbeff, nullptr, nullptr, 0, 0, nullptr }
-};
-#endif  // !CAPNP_LITE
-static const ::capnp::_::AlignedData<35> b_a352b1a9da6ecc9f = {
-  {   0,   0,   0,   0,   5,   0,   6,   0,
-    159, 204, 110, 218, 169, 177,  82, 163,
-     30,   0,   0,   0,   1,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      1,   0,   7,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     21,   0,   0,   0, 122,   1,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     33,   0,   0,   0,  63,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     77, 111, 100, 101, 108, 105,  82, 112,
-     99,  46,  99,  97, 112, 110, 112,  58,
-     77, 111, 100, 101, 108, 105,  66,  97,
-     99, 107, 101, 110, 100,  46, 114, 101,
-    109, 111, 118, 101,  70, 109, 117,  36,
-     80,  97, 114,  97, 109, 115,   0,   0,
-      4,   0,   0,   0,   3,   0,   4,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   1,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     13,   0,   0,   0, 106,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     12,   0,   0,   0,   3,   0,   1,   0,
-     24,   0,   0,   0,   2,   0,   1,   0,
-    105, 110, 115, 116,  97, 110,  99, 101,
-     78,  97, 109, 101,   0,   0,   0,   0,
-     12,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     12,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0, }
-};
-::capnp::word const* const bp_a352b1a9da6ecc9f = b_a352b1a9da6ecc9f.words;
-#if !CAPNP_LITE
-static const uint16_t m_a352b1a9da6ecc9f[] = {0};
-static const uint16_t i_a352b1a9da6ecc9f[] = {0};
-const ::capnp::_::RawSchema s_a352b1a9da6ecc9f = {
-  0xa352b1a9da6ecc9f, b_a352b1a9da6ecc9f.words, 35, nullptr, m_a352b1a9da6ecc9f,
-  0, 1, i_a352b1a9da6ecc9f, nullptr, nullptr, { &s_a352b1a9da6ecc9f, nullptr, nullptr, 0, 0, nullptr }
-};
-#endif  // !CAPNP_LITE
-static const ::capnp::_::AlignedData<34> b_86caaf1b5674d5db = {
-  {   0,   0,   0,   0,   5,   0,   6,   0,
-    219, 213, 116,  86,  27, 175, 202, 134,
-     30,   0,   0,   0,   1,   0,   1,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   7,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     21,   0,   0,   0, 130,   1,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     33,   0,   0,   0,  63,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     77, 111, 100, 101, 108, 105,  82, 112,
-     99,  46,  99,  97, 112, 110, 112,  58,
-     77, 111, 100, 101, 108, 105,  66,  97,
-     99, 107, 101, 110, 100,  46, 114, 101,
-    109, 111, 118, 101,  70, 109, 117,  36,
-     82, 101, 115, 117, 108, 116, 115,   0,
-      4,   0,   0,   0,   3,   0,   4,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   1,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     13,   0,   0,   0,  58,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      8,   0,   0,   0,   3,   0,   1,   0,
-     20,   0,   0,   0,   2,   0,   1,   0,
-    114, 101, 115, 117, 108, 116,   0,   0,
-      1,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      1,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0, }
-};
-::capnp::word const* const bp_86caaf1b5674d5db = b_86caaf1b5674d5db.words;
-#if !CAPNP_LITE
-static const uint16_t m_86caaf1b5674d5db[] = {0};
-static const uint16_t i_86caaf1b5674d5db[] = {0};
-const ::capnp::_::RawSchema s_86caaf1b5674d5db = {
-  0x86caaf1b5674d5db, b_86caaf1b5674d5db.words, 34, nullptr, m_86caaf1b5674d5db,
-  0, 1, i_86caaf1b5674d5db, nullptr, nullptr, { &s_86caaf1b5674d5db, nullptr, nullptr, 0, 0, nullptr }
-};
-#endif  // !CAPNP_LITE
-static const ::capnp::_::AlignedData<36> b_ff24bad7e33a7e67 = {
-  {   0,   0,   0,   0,   5,   0,   6,   0,
-    103, 126,  58, 227, 215, 186,  36, 255,
-     30,   0,   0,   0,   1,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      1,   0,   7,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     21,   0,   0,   0, 162,   1,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     37,   0,   0,   0,  63,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     77, 111, 100, 101, 108, 105,  82, 112,
-     99,  46,  99,  97, 112, 110, 112,  58,
-     77, 111, 100, 101, 108, 105,  66,  97,
-     99, 107, 101, 110, 100,  46,  97, 100,
-    100,  67, 104,  97, 110, 110, 101, 108,
-     76, 105, 110, 107,  36,  80,  97, 114,
-     97, 109, 115,   0,   0,   0,   0,   0,
-      4,   0,   0,   0,   3,   0,   4,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   1,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     13,   0,   0,   0,  98,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     12,   0,   0,   0,   3,   0,   1,   0,
-     24,   0,   0,   0,   2,   0,   1,   0,
-     99, 104,  97, 110, 110, 101, 108,  76,
-    105, 110, 107,   0,   0,   0,   0,   0,
-     16,   0,   0,   0,   0,   0,   0,   0,
-     84,  43, 232, 178,  87, 193,   8, 174,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     16,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0, }
-};
-::capnp::word const* const bp_ff24bad7e33a7e67 = b_ff24bad7e33a7e67.words;
-#if !CAPNP_LITE
-static const ::capnp::_::RawSchema* const d_ff24bad7e33a7e67[] = {
-  &s_ae08c157b2e82b54,
-};
-static const uint16_t m_ff24bad7e33a7e67[] = {0};
-static const uint16_t i_ff24bad7e33a7e67[] = {0};
-const ::capnp::_::RawSchema s_ff24bad7e33a7e67 = {
-  0xff24bad7e33a7e67, b_ff24bad7e33a7e67.words, 36, d_ff24bad7e33a7e67, m_ff24bad7e33a7e67,
-  1, 1, i_ff24bad7e33a7e67, nullptr, nullptr, { &s_ff24bad7e33a7e67, nullptr, nullptr, 0, 0, nullptr }
-};
-#endif  // !CAPNP_LITE
-static const ::capnp::_::AlignedData<35> b_8ad4ffb22b98c716 = {
-  {   0,   0,   0,   0,   5,   0,   6,   0,
-     22, 199, 152,  43, 178, 255, 212, 138,
-     30,   0,   0,   0,   1,   0,   1,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   7,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     21,   0,   0,   0, 170,   1,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     37,   0,   0,   0,  63,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     77, 111, 100, 101, 108, 105,  82, 112,
-     99,  46,  99,  97, 112, 110, 112,  58,
-     77, 111, 100, 101, 108, 105,  66,  97,
-     99, 107, 101, 110, 100,  46,  97, 100,
-    100,  67, 104,  97, 110, 110, 101, 108,
-     76, 105, 110, 107,  36,  82, 101, 115,
-    117, 108, 116, 115,   0,   0,   0,   0,
-      4,   0,   0,   0,   3,   0,   4,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   1,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     13,   0,   0,   0,  58,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      8,   0,   0,   0,   3,   0,   1,   0,
-     20,   0,   0,   0,   2,   0,   1,   0,
-    114, 101, 115, 117, 108, 116,   0,   0,
-      1,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      1,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0, }
-};
-::capnp::word const* const bp_8ad4ffb22b98c716 = b_8ad4ffb22b98c716.words;
-#if !CAPNP_LITE
-static const uint16_t m_8ad4ffb22b98c716[] = {0};
-static const uint16_t i_8ad4ffb22b98c716[] = {0};
-const ::capnp::_::RawSchema s_8ad4ffb22b98c716 = {
-  0x8ad4ffb22b98c716, b_8ad4ffb22b98c716.words, 35, nullptr, m_8ad4ffb22b98c716,
-  0, 1, i_8ad4ffb22b98c716, nullptr, nullptr, { &s_8ad4ffb22b98c716, nullptr, nullptr, 0, 0, nullptr }
-};
-#endif  // !CAPNP_LITE
-static const ::capnp::_::AlignedData<36> b_879edd7f3e0e6f0b = {
-  {   0,   0,   0,   0,   5,   0,   6,   0,
-     11, 111,  14,  62, 127, 221, 158, 135,
-     30,   0,   0,   0,   1,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      1,   0,   7,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     21,   0,   0,   0, 186,   1,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     37,   0,   0,   0,  63,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     77, 111, 100, 101, 108, 105,  82, 112,
-     99,  46,  99,  97, 112, 110, 112,  58,
-     77, 111, 100, 101, 108, 105,  66,  97,
-     99, 107, 101, 110, 100,  46, 114, 101,
-    109, 111, 118, 101,  67, 104,  97, 110,
-    110, 101, 108,  76, 105, 110, 107,  36,
-     80,  97, 114,  97, 109, 115,   0,   0,
-      4,   0,   0,   0,   3,   0,   4,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   1,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     13,   0,   0,   0,  98,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     12,   0,   0,   0,   3,   0,   1,   0,
-     24,   0,   0,   0,   2,   0,   1,   0,
-     99, 104,  97, 110, 110, 101, 108,  76,
-    105, 110, 107,   0,   0,   0,   0,   0,
-     16,   0,   0,   0,   0,   0,   0,   0,
-     84,  43, 232, 178,  87, 193,   8, 174,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     16,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0, }
-};
-::capnp::word const* const bp_879edd7f3e0e6f0b = b_879edd7f3e0e6f0b.words;
-#if !CAPNP_LITE
-static const ::capnp::_::RawSchema* const d_879edd7f3e0e6f0b[] = {
-  &s_ae08c157b2e82b54,
-};
-static const uint16_t m_879edd7f3e0e6f0b[] = {0};
-static const uint16_t i_879edd7f3e0e6f0b[] = {0};
-const ::capnp::_::RawSchema s_879edd7f3e0e6f0b = {
-  0x879edd7f3e0e6f0b, b_879edd7f3e0e6f0b.words, 36, d_879edd7f3e0e6f0b, m_879edd7f3e0e6f0b,
-  1, 1, i_879edd7f3e0e6f0b, nullptr, nullptr, { &s_879edd7f3e0e6f0b, nullptr, nullptr, 0, 0, nullptr }
-};
-#endif  // !CAPNP_LITE
-static const ::capnp::_::AlignedData<35> b_98af1a6dfbd686ca = {
-  {   0,   0,   0,   0,   5,   0,   6,   0,
-    202, 134, 214, 251, 109,  26, 175, 152,
-     30,   0,   0,   0,   1,   0,   1,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   7,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     21,   0,   0,   0, 194,   1,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     37,   0,   0,   0,  63,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     77, 111, 100, 101, 108, 105,  82, 112,
-     99,  46,  99,  97, 112, 110, 112,  58,
-     77, 111, 100, 101, 108, 105,  66,  97,
-     99, 107, 101, 110, 100,  46, 114, 101,
-    109, 111, 118, 101,  67, 104,  97, 110,
-    110, 101, 108,  76, 105, 110, 107,  36,
-     82, 101, 115, 117, 108, 116, 115,   0,
-      4,   0,   0,   0,   3,   0,   4,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   1,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     13,   0,   0,   0,  58,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      8,   0,   0,   0,   3,   0,   1,   0,
-     20,   0,   0,   0,   2,   0,   1,   0,
-    114, 101, 115, 117, 108, 116,   0,   0,
-      1,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      1,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0, }
-};
-::capnp::word const* const bp_98af1a6dfbd686ca = b_98af1a6dfbd686ca.words;
-#if !CAPNP_LITE
-static const uint16_t m_98af1a6dfbd686ca[] = {0};
-static const uint16_t i_98af1a6dfbd686ca[] = {0};
-const ::capnp::_::RawSchema s_98af1a6dfbd686ca = {
-  0x98af1a6dfbd686ca, b_98af1a6dfbd686ca.words, 35, nullptr, m_98af1a6dfbd686ca,
-  0, 1, i_98af1a6dfbd686ca, nullptr, nullptr, { &s_98af1a6dfbd686ca, nullptr, nullptr, 0, 0, nullptr }
-};
-#endif  // !CAPNP_LITE
-static const ::capnp::_::AlignedData<34> b_80e19e353495e92d = {
-  {   0,   0,   0,   0,   5,   0,   6,   0,
-     45, 233, 149,  52,  53, 158, 225, 128,
-     30,   0,   0,   0,   1,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      1,   0,   7,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     21,   0,   0,   0, 122,   1,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     33,   0,   0,   0,  63,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     77, 111, 100, 101, 108, 105,  82, 112,
-     99,  46,  99,  97, 112, 110, 112,  58,
-     77, 111, 100, 101, 108, 105,  66,  97,
-     99, 107, 101, 110, 100,  46, 115, 101,
-    116,  86,  97, 108, 117, 101, 115,  36,
-     80,  97, 114,  97, 109, 115,   0,   0,
-      4,   0,   0,   0,   3,   0,   4,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   1,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     13,   0,   0,   0,  58,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      8,   0,   0,   0,   3,   0,   1,   0,
-     20,   0,   0,   0,   2,   0,   1,   0,
-    118,  97, 108, 117, 101, 115,   0,   0,
-     16,   0,   0,   0,   0,   0,   0,   0,
-    165, 137, 134,  10, 148,   1,  49, 164,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     16,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0, }
-};
-::capnp::word const* const bp_80e19e353495e92d = b_80e19e353495e92d.words;
-#if !CAPNP_LITE
-static const ::capnp::_::RawSchema* const d_80e19e353495e92d[] = {
-  &s_a43101940a8689a5,
-};
-static const uint16_t m_80e19e353495e92d[] = {0};
-static const uint16_t i_80e19e353495e92d[] = {0};
-const ::capnp::_::RawSchema s_80e19e353495e92d = {
-  0x80e19e353495e92d, b_80e19e353495e92d.words, 34, d_80e19e353495e92d, m_80e19e353495e92d,
-  1, 1, i_80e19e353495e92d, nullptr, nullptr, { &s_80e19e353495e92d, nullptr, nullptr, 0, 0, nullptr }
-};
-#endif  // !CAPNP_LITE
-static const ::capnp::_::AlignedData<34> b_e9235735334ee23c = {
-  {   0,   0,   0,   0,   5,   0,   6,   0,
-     60, 226,  78,  51,  53,  87,  35, 233,
-     30,   0,   0,   0,   1,   0,   1,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   7,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     21,   0,   0,   0, 130,   1,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     33,   0,   0,   0,  63,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     77, 111, 100, 101, 108, 105,  82, 112,
-     99,  46,  99,  97, 112, 110, 112,  58,
-     77, 111, 100, 101, 108, 105,  66,  97,
-     99, 107, 101, 110, 100,  46, 115, 101,
-    116,  86,  97, 108, 117, 101, 115,  36,
-     82, 101, 115, 117, 108, 116, 115,   0,
-      4,   0,   0,   0,   3,   0,   4,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   1,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     13,   0,   0,   0,  58,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      8,   0,   0,   0,   3,   0,   1,   0,
-     20,   0,   0,   0,   2,   0,   1,   0,
-    114, 101, 115, 117, 108, 116,   0,   0,
-      3,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      3,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0, }
-};
-::capnp::word const* const bp_e9235735334ee23c = b_e9235735334ee23c.words;
-#if !CAPNP_LITE
-static const uint16_t m_e9235735334ee23c[] = {0};
-static const uint16_t i_e9235735334ee23c[] = {0};
-const ::capnp::_::RawSchema s_e9235735334ee23c = {
-  0xe9235735334ee23c, b_e9235735334ee23c.words, 34, nullptr, m_e9235735334ee23c,
-  0, 1, i_e9235735334ee23c, nullptr, nullptr, { &s_e9235735334ee23c, nullptr, nullptr, 0, 0, nullptr }
-};
-#endif  // !CAPNP_LITE
-static const ::capnp::_::AlignedData<36> b_c32f5e5599baa4a2 = {
-  {   0,   0,   0,   0,   5,   0,   6,   0,
-    162, 164, 186, 153,  85,  94,  47, 195,
-     30,   0,   0,   0,   1,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      1,   0,   7,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     21,   0,   0,   0, 178,   1,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     37,   0,   0,   0,  63,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     77, 111, 100, 101, 108, 105,  82, 112,
-     99,  46,  99,  97, 112, 110, 112,  58,
-     77, 111, 100, 101, 108, 105,  66,  97,
-     99, 107, 101, 110, 100,  46, 114, 101,
-    103, 105, 115, 116, 101, 114,  70, 114,
-    111, 110, 116, 101, 110, 100,  36,  80,
-     97, 114,  97, 109, 115,   0,   0,   0,
-      4,   0,   0,   0,   3,   0,   4,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   1,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     13,   0,   0,   0,  74,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     12,   0,   0,   0,   3,   0,   1,   0,
-     24,   0,   0,   0,   2,   0,   1,   0,
-    102, 114, 111, 110, 116, 101, 110, 100,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     17,   0,   0,   0,   0,   0,   0,   0,
-    244, 122, 161, 110, 145,  80,  69, 204,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     17,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0, }
-};
-::capnp::word const* const bp_c32f5e5599baa4a2 = b_c32f5e5599baa4a2.words;
-#if !CAPNP_LITE
-static const ::capnp::_::RawSchema* const d_c32f5e5599baa4a2[] = {
-  &s_cc4550916ea17af4,
-};
-static const uint16_t m_c32f5e5599baa4a2[] = {0};
-static const uint16_t i_c32f5e5599baa4a2[] = {0};
-const ::capnp::_::RawSchema s_c32f5e5599baa4a2 = {
-  0xc32f5e5599baa4a2, b_c32f5e5599baa4a2.words, 36, d_c32f5e5599baa4a2, m_c32f5e5599baa4a2,
-  1, 1, i_c32f5e5599baa4a2, nullptr, nullptr, { &s_c32f5e5599baa4a2, nullptr, nullptr, 0, 0, nullptr }
-};
-#endif  // !CAPNP_LITE
-static const ::capnp::_::AlignedData<19> b_b087cff7ea9b99ea = {
-  {   0,   0,   0,   0,   5,   0,   6,   0,
-    234, 153, 155, 234, 247, 207, 135, 176,
-     30,   0,   0,   0,   1,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   7,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     21,   0,   0,   0, 186,   1,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     77, 111, 100, 101, 108, 105,  82, 112,
-     99,  46,  99,  97, 112, 110, 112,  58,
-     77, 111, 100, 101, 108, 105,  66,  97,
-     99, 107, 101, 110, 100,  46, 114, 101,
-    103, 105, 115, 116, 101, 114,  70, 114,
-    111, 110, 116, 101, 110, 100,  36,  82,
-    101, 115, 117, 108, 116, 115,   0,   0, }
-};
-::capnp::word const* const bp_b087cff7ea9b99ea = b_b087cff7ea9b99ea.words;
-#if !CAPNP_LITE
-const ::capnp::_::RawSchema s_b087cff7ea9b99ea = {
-  0xb087cff7ea9b99ea, b_b087cff7ea9b99ea.words, 19, nullptr, nullptr,
-  0, 0, nullptr, nullptr, nullptr, { &s_b087cff7ea9b99ea, nullptr, nullptr, 0, 0, nullptr }
-};
-#endif  // !CAPNP_LITE
-static const ::capnp::_::AlignedData<18> b_f6bf333f61a3f649 = {
-  {   0,   0,   0,   0,   5,   0,   6,   0,
-     73, 246, 163,  97,  63,  51, 191, 246,
-     30,   0,   0,   0,   1,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   7,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     21,   0,   0,   0,  82,   1,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     77, 111, 100, 101, 108, 105,  82, 112,
-     99,  46,  99,  97, 112, 110, 112,  58,
-     77, 111, 100, 101, 108, 105,  66,  97,
-     99, 107, 101, 110, 100,  46, 112, 105,
-    110, 103,  36,  80,  97, 114,  97, 109,
-    115,   0,   0,   0,   0,   0,   0,   0, }
-};
-::capnp::word const* const bp_f6bf333f61a3f649 = b_f6bf333f61a3f649.words;
-#if !CAPNP_LITE
-const ::capnp::_::RawSchema s_f6bf333f61a3f649 = {
-  0xf6bf333f61a3f649, b_f6bf333f61a3f649.words, 18, nullptr, nullptr,
-  0, 0, nullptr, nullptr, nullptr, { &s_f6bf333f61a3f649, nullptr, nullptr, 0, 0, nullptr }
-};
-#endif  // !CAPNP_LITE
-static const ::capnp::_::AlignedData<18> b_f59f1d309d46ddb3 = {
-  {   0,   0,   0,   0,   5,   0,   6,   0,
-    179, 221,  70, 157,  48,  29, 159, 245,
-     30,   0,   0,   0,   1,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   7,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     21,   0,   0,   0,  90,   1,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     77, 111, 100, 101, 108, 105,  82, 112,
-     99,  46,  99,  97, 112, 110, 112,  58,
-     77, 111, 100, 101, 108, 105,  66,  97,
-     99, 107, 101, 110, 100,  46, 112, 105,
-    110, 103,  36,  82, 101, 115, 117, 108,
-    116, 115,   0,   0,   0,   0,   0,   0, }
-};
-::capnp::word const* const bp_f59f1d309d46ddb3 = b_f59f1d309d46ddb3.words;
-#if !CAPNP_LITE
-const ::capnp::_::RawSchema s_f59f1d309d46ddb3 = {
-  0xf59f1d309d46ddb3, b_f59f1d309d46ddb3.words, 18, nullptr, nullptr,
-  0, 0, nullptr, nullptr, nullptr, { &s_f59f1d309d46ddb3, nullptr, nullptr, 0, 0, nullptr }
-};
-#endif  // !CAPNP_LITE
-static const ::capnp::_::AlignedData<40> b_cc4550916ea17af4 = {
-  {   0,   0,   0,   0,   5,   0,   6,   0,
-    244, 122, 161, 110, 145,  80,  69, 204,
-     16,   0,   0,   0,   3,   0,   0,   0,
-    165, 163,  90, 206, 176, 102,  17, 181,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     21,   0,   0,   0, 250,   0,   0,   0,
-     33,   0,   0,   0,   7,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     29,   0,   0,   0, 135,   0,   0,   0,
-    113,   0,   0,   0,   7,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     77, 111, 100, 101, 108, 105,  82, 112,
-     99,  46,  99,  97, 112, 110, 112,  58,
-     77, 111, 100, 101, 108, 105,  70, 114,
-    111, 110, 116, 101, 110, 100,   0,   0,
-      0,   0,   0,   0,   1,   0,   1,   0,
-      8,   0,   0,   0,   3,   0,   5,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     97, 131,  38, 152, 135,  44, 130, 137,
-    196,  70, 234, 233, 228, 203, 200, 222,
-     49,   0,   0,   0,  82,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     41,   0,   0,   0,   7,   0,   0,   0,
-      1,   0,   0,   0,   0,   0,   0,   0,
-    131, 104, 219,  16,  14, 240,  39, 162,
-     92, 122, 223, 109,  28, 150, 140, 236,
-     29,   0,   0,   0,  34,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     17,   0,   0,   0,   7,   0,   0,   0,
-    110, 101, 119,  86,  97, 108, 117, 101,
-    115,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   1,   0,
-    108, 111, 103,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   1,   0,
-      0,   0,   0,   0,   1,   0,   1,   0, }
-};
-::capnp::word const* const bp_cc4550916ea17af4 = b_cc4550916ea17af4.words;
-#if !CAPNP_LITE
-static const ::capnp::_::RawSchema* const d_cc4550916ea17af4[] = {
-  &s_89822c8798268361,
-  &s_a227f00e10db6883,
-  &s_dec8cbe4e9ea46c4,
-  &s_ec8c961c6ddf7a5c,
-};
-static const uint16_t m_cc4550916ea17af4[] = {1, 0};
-const ::capnp::_::RawSchema s_cc4550916ea17af4 = {
-  0xcc4550916ea17af4, b_cc4550916ea17af4.words, 40, d_cc4550916ea17af4, m_cc4550916ea17af4,
-  4, 2, nullptr, nullptr, nullptr, { &s_cc4550916ea17af4, nullptr, nullptr, 0, 0, nullptr }
-};
-#endif  // !CAPNP_LITE
-static const ::capnp::_::AlignedData<50> b_89822c8798268361 = {
-  {   0,   0,   0,   0,   5,   0,   6,   0,
-     97, 131,  38, 152, 135,  44, 130, 137,
-     31,   0,   0,   0,   1,   0,   1,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      1,   0,   7,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     21,   0,   0,   0, 130,   1,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     33,   0,   0,   0, 119,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     77, 111, 100, 101, 108, 105,  82, 112,
-     99,  46,  99,  97, 112, 110, 112,  58,
-     77, 111, 100, 101, 108, 105,  70, 114,
-    111, 110, 116, 101, 110, 100,  46, 110,
-    101, 119,  86,  97, 108, 117, 101, 115,
-     36,  80,  97, 114,  97, 109, 115,   0,
-      8,   0,   0,   0,   3,   0,   4,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   1,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     41,   0,   0,   0,  82,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     40,   0,   0,   0,   3,   0,   1,   0,
-     52,   0,   0,   0,   2,   0,   1,   0,
-      1,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   1,   0,   1,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     49,   0,   0,   0,  58,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     44,   0,   0,   0,   3,   0,   1,   0,
-     56,   0,   0,   0,   2,   0,   1,   0,
-    116, 105, 109, 101, 115, 116,  97, 109,
-    112,   0,   0,   0,   0,   0,   0,   0,
-     11,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     11,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    118,  97, 108, 117, 101, 115,   0,   0,
-     16,   0,   0,   0,   0,   0,   0,   0,
-    165, 137, 134,  10, 148,   1,  49, 164,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     16,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0, }
-};
-::capnp::word const* const bp_89822c8798268361 = b_89822c8798268361.words;
-#if !CAPNP_LITE
-static const ::capnp::_::RawSchema* const d_89822c8798268361[] = {
-  &s_a43101940a8689a5,
-};
-static const uint16_t m_89822c8798268361[] = {0, 1};
-static const uint16_t i_89822c8798268361[] = {0, 1};
-const ::capnp::_::RawSchema s_89822c8798268361 = {
-  0x89822c8798268361, b_89822c8798268361.words, 50, d_89822c8798268361, m_89822c8798268361,
-  1, 2, i_89822c8798268361, nullptr, nullptr, { &s_89822c8798268361, nullptr, nullptr, 0, 0, nullptr }
-};
-#endif  // !CAPNP_LITE
-static const ::capnp::_::AlignedData<19> b_dec8cbe4e9ea46c4 = {
-  {   0,   0,   0,   0,   5,   0,   6,   0,
-    196,  70, 234, 233, 228, 203, 200, 222,
-     31,   0,   0,   0,   1,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   7,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     21,   0,   0,   0, 138,   1,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     77, 111, 100, 101, 108, 105,  82, 112,
-     99,  46,  99,  97, 112, 110, 112,  58,
-     77, 111, 100, 101, 108, 105,  70, 114,
-    111, 110, 116, 101, 110, 100,  46, 110,
-    101, 119,  86,  97, 108, 117, 101, 115,
-     36,  82, 101, 115, 117, 108, 116, 115,
-      0,   0,   0,   0,   0,   0,   0,   0, }
-};
-::capnp::word const* const bp_dec8cbe4e9ea46c4 = b_dec8cbe4e9ea46c4.words;
-#if !CAPNP_LITE
-const ::capnp::_::RawSchema s_dec8cbe4e9ea46c4 = {
-  0xdec8cbe4e9ea46c4, b_dec8cbe4e9ea46c4.words, 19, nullptr, nullptr,
-  0, 0, nullptr, nullptr, nullptr, { &s_dec8cbe4e9ea46c4, nullptr, nullptr, 0, 0, nullptr }
-};
-#endif  // !CAPNP_LITE
-static const ::capnp::_::AlignedData<65> b_a227f00e10db6883 = {
-  {   0,   0,   0,   0,   5,   0,   6,   0,
-    131, 104, 219,  16,  14, 240,  39, 162,
-     31,   0,   0,   0,   1,   0,   1,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      2,   0,   7,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     21,   0,   0,   0,  82,   1,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     33,   0,   0,   0, 175,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     77, 111, 100, 101, 108, 105,  82, 112,
-     99,  46,  99,  97, 112, 110, 112,  58,
-     77, 111, 100, 101, 108, 105,  70, 114,
-    111, 110, 116, 101, 110, 100,  46, 108,
-    111, 103,  36,  80,  97, 114,  97, 109,
-    115,   0,   0,   0,   0,   0,   0,   0,
-     12,   0,   0,   0,   3,   0,   4,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   1,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     69,   0,   0,   0, 106,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     68,   0,   0,   0,   3,   0,   1,   0,
-     80,   0,   0,   0,   2,   0,   1,   0,
-      1,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   1,   0,   1,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     77,   0,   0,   0,  58,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     72,   0,   0,   0,   3,   0,   1,   0,
-     84,   0,   0,   0,   2,   0,   1,   0,
-      2,   0,   0,   0,   1,   0,   0,   0,
-      0,   0,   1,   0,   2,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     81,   0,   0,   0,  66,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     76,   0,   0,   0,   3,   0,   1,   0,
-     88,   0,   0,   0,   2,   0,   1,   0,
-    105, 110, 115, 116,  97, 110,  99, 101,
-     78,  97, 109, 101,   0,   0,   0,   0,
-     12,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     12,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    115, 116,  97, 116, 117, 115,   0,   0,
-      3,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      3,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    109, 101, 115, 115,  97, 103, 101,   0,
-     12,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     12,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0, }
-};
-::capnp::word const* const bp_a227f00e10db6883 = b_a227f00e10db6883.words;
-#if !CAPNP_LITE
-static const uint16_t m_a227f00e10db6883[] = {0, 2, 1};
-static const uint16_t i_a227f00e10db6883[] = {0, 1, 2};
-const ::capnp::_::RawSchema s_a227f00e10db6883 = {
-  0xa227f00e10db6883, b_a227f00e10db6883.words, 65, nullptr, m_a227f00e10db6883,
-  0, 3, i_a227f00e10db6883, nullptr, nullptr, { &s_a227f00e10db6883, nullptr, nullptr, 0, 0, nullptr }
-};
-#endif  // !CAPNP_LITE
-static const ::capnp::_::AlignedData<18> b_ec8c961c6ddf7a5c = {
-  {   0,   0,   0,   0,   5,   0,   6,   0,
-     92, 122, 223, 109,  28, 150, 140, 236,
-     31,   0,   0,   0,   1,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   7,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     21,   0,   0,   0,  90,   1,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     77, 111, 100, 101, 108, 105,  82, 112,
-     99,  46,  99,  97, 112, 110, 112,  58,
-     77, 111, 100, 101, 108, 105,  70, 114,
-    111, 110, 116, 101, 110, 100,  46, 108,
-    111, 103,  36,  82, 101, 115, 117, 108,
-    116, 115,   0,   0,   0,   0,   0,   0, }
-};
-::capnp::word const* const bp_ec8c961c6ddf7a5c = b_ec8c961c6ddf7a5c.words;
-#if !CAPNP_LITE
-const ::capnp::_::RawSchema s_ec8c961c6ddf7a5c = {
-  0xec8c961c6ddf7a5c, b_ec8c961c6ddf7a5c.words, 18, nullptr, nullptr,
-  0, 0, nullptr, nullptr, nullptr, { &s_ec8c961c6ddf7a5c, nullptr, nullptr, 0, 0, nullptr }
-};
-#endif  // !CAPNP_LITE
-static const ::capnp::_::AlignedData<194> b_a43101940a8689a5 = {
-  {   0,   0,   0,   0,   5,   0,   6,   0,
-    165, 137, 134,  10, 148,   1,  49, 164,
-     16,   0,   0,   0,   1,   0,   0,   0,
-    165, 163,  90, 206, 176, 102,  17, 181,
-      9,   0,   7,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     21,   0,   0,   0, 186,   0,   0,   0,
-     29,   0,   0,   0,   7,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     25,   0,   0,   0, 255,   1,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     77, 111, 100, 101, 108, 105,  82, 112,
-     99,  46,  99,  97, 112, 110, 112,  58,
-     86,  97, 108, 117, 101, 115,   0,   0,
-      0,   0,   0,   0,   1,   0,   1,   0,
-     36,   0,   0,   0,   3,   0,   4,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   1,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    237,   0,   0,   0, 106,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    236,   0,   0,   0,   3,   0,   1,   0,
-    248,   0,   0,   0,   2,   0,   1,   0,
-      1,   0,   0,   0,   1,   0,   0,   0,
-      0,   0,   1,   0,   1,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    245,   0,   0,   0, 138,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    248,   0,   0,   0,   3,   0,   1,   0,
-     20,   1,   0,   0,   2,   0,   1,   0,
-      2,   0,   0,   0,   2,   0,   0,   0,
-      0,   0,   1,   0,   2,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     17,   1,   0,   0, 114,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     16,   1,   0,   0,   3,   0,   1,   0,
-     44,   1,   0,   0,   2,   0,   1,   0,
-      3,   0,   0,   0,   3,   0,   0,   0,
-      0,   0,   1,   0,   3,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     41,   1,   0,   0, 114,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     40,   1,   0,   0,   3,   0,   1,   0,
-     68,   1,   0,   0,   2,   0,   1,   0,
-      4,   0,   0,   0,   4,   0,   0,   0,
-      0,   0,   1,   0,   4,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     65,   1,   0,   0,  90,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     64,   1,   0,   0,   3,   0,   1,   0,
-     92,   1,   0,   0,   2,   0,   1,   0,
-      5,   0,   0,   0,   5,   0,   0,   0,
-      0,   0,   1,   0,   5,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     89,   1,   0,   0, 114,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     88,   1,   0,   0,   3,   0,   1,   0,
-    116,   1,   0,   0,   2,   0,   1,   0,
-      6,   0,   0,   0,   6,   0,   0,   0,
-      0,   0,   1,   0,   6,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    113,   1,   0,   0,  90,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    112,   1,   0,   0,   3,   0,   1,   0,
-    140,   1,   0,   0,   2,   0,   1,   0,
-      7,   0,   0,   0,   7,   0,   0,   0,
-      0,   0,   1,   0,   7,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    137,   1,   0,   0, 130,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    136,   1,   0,   0,   3,   0,   1,   0,
-    164,   1,   0,   0,   2,   0,   1,   0,
-      8,   0,   0,   0,   8,   0,   0,   0,
-      0,   0,   1,   0,   8,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    161,   1,   0,   0, 106,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    160,   1,   0,   0,   3,   0,   1,   0,
-    188,   1,   0,   0,   2,   0,   1,   0,
-    105, 110, 115, 116,  97, 110,  99, 101,
-     78,  97, 109, 101,   0,   0,   0,   0,
-     12,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     12,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    105, 110, 116, 101, 103, 101, 114,  86,
-     97, 108, 117, 101,  82, 101, 102, 115,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     14,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   3,   0,   1,   0,
-      8,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     14,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    105, 110, 116, 101, 103, 101, 114,  86,
-     97, 108, 117, 101, 115,   0,   0,   0,
-     14,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   3,   0,   1,   0,
-      4,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     14,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    114, 101,  97, 108,  86,  97, 108, 117,
-    101,  82, 101, 102, 115,   0,   0,   0,
-     14,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   3,   0,   1,   0,
-      8,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     14,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    114, 101,  97, 108,  86,  97, 108, 117,
-    101, 115,   0,   0,   0,   0,   0,   0,
-     14,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   3,   0,   1,   0,
-     11,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     14,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     98, 111, 111, 108,  86,  97, 108, 117,
-    101,  82, 101, 102, 115,   0,   0,   0,
-     14,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   3,   0,   1,   0,
-      8,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     14,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     98, 111, 111, 108,  86,  97, 108, 117,
-    101, 115,   0,   0,   0,   0,   0,   0,
-     14,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   3,   0,   1,   0,
-      4,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     14,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    115, 116, 114, 105, 110, 103,  86,  97,
-    108, 117, 101,  82, 101, 102, 115,   0,
-     14,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   3,   0,   1,   0,
-      8,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     14,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-    115, 116, 114, 105, 110, 103,  86,  97,
-    108, 117, 101, 115,   0,   0,   0,   0,
-     14,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   3,   0,   1,   0,
-     12,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-     14,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0, }
-};
-::capnp::word const* const bp_a43101940a8689a5 = b_a43101940a8689a5.words;
-#if !CAPNP_LITE
-static const uint16_t m_a43101940a8689a5[] = {5, 6, 0, 1, 2, 3, 4, 7, 8};
-static const uint16_t i_a43101940a8689a5[] = {0, 1, 2, 3, 4, 5, 6, 7, 8};
-const ::capnp::_::RawSchema s_a43101940a8689a5 = {
-  0xa43101940a8689a5, b_a43101940a8689a5.words, 194, nullptr, m_a43101940a8689a5,
-  0, 9, i_a43101940a8689a5, nullptr, nullptr, { &s_a43101940a8689a5, nullptr, nullptr, 0, 0, nullptr }
-};
-#endif  // !CAPNP_LITE
-}  // namespace schemas
-}  // namespace capnp
-
-// =======================================================================================
-
-
-#if !CAPNP_LITE
-::capnp::Request< ::ModeliBackend::PlayParams,  ::ModeliBackend::PlayResults>
-ModeliBackend::Client::playRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) {
-  return newCall< ::ModeliBackend::PlayParams,  ::ModeliBackend::PlayResults>(
-      0xc189361aa8d3ec0aull, 0, sizeHint);
-}
-::kj::Promise<void> ModeliBackend::Server::play(PlayContext) {
-  return ::capnp::Capability::Server::internalUnimplemented(
-      "ModeliRpc.capnp:ModeliBackend", "play",
-      0xc189361aa8d3ec0aull, 0);
-}
-::capnp::Request< ::ModeliBackend::PlayFastParams,  ::ModeliBackend::PlayFastResults>
-ModeliBackend::Client::playFastRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) {
-  return newCall< ::ModeliBackend::PlayFastParams,  ::ModeliBackend::PlayFastResults>(
-      0xc189361aa8d3ec0aull, 1, sizeHint);
-}
-::kj::Promise<void> ModeliBackend::Server::playFast(PlayFastContext) {
-  return ::capnp::Capability::Server::internalUnimplemented(
-      "ModeliRpc.capnp:ModeliBackend", "playFast",
-      0xc189361aa8d3ec0aull, 1);
-}
-::capnp::Request< ::ModeliBackend::PauseParams,  ::ModeliBackend::PauseResults>
-ModeliBackend::Client::pauseRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) {
-  return newCall< ::ModeliBackend::PauseParams,  ::ModeliBackend::PauseResults>(
-      0xc189361aa8d3ec0aull, 2, sizeHint);
-}
-::kj::Promise<void> ModeliBackend::Server::pause(PauseContext) {
-  return ::capnp::Capability::Server::internalUnimplemented(
-      "ModeliRpc.capnp:ModeliBackend", "pause",
-      0xc189361aa8d3ec0aull, 2);
-}
-::capnp::Request< ::ModeliBackend::StopParams,  ::ModeliBackend::StopResults>
-ModeliBackend::Client::stopRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) {
-  return newCall< ::ModeliBackend::StopParams,  ::ModeliBackend::StopResults>(
-      0xc189361aa8d3ec0aull, 3, sizeHint);
-}
-::kj::Promise<void> ModeliBackend::Server::stop(StopContext) {
-  return ::capnp::Capability::Server::internalUnimplemented(
-      "ModeliRpc.capnp:ModeliBackend", "stop",
-      0xc189361aa8d3ec0aull, 3);
-}
-::capnp::Request< ::ModeliBackend::AddFmuParams,  ::ModeliBackend::AddFmuResults>
-ModeliBackend::Client::addFmuRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) {
-  return newCall< ::ModeliBackend::AddFmuParams,  ::ModeliBackend::AddFmuResults>(
-      0xc189361aa8d3ec0aull, 4, sizeHint);
-}
-::kj::Promise<void> ModeliBackend::Server::addFmu(AddFmuContext) {
-  return ::capnp::Capability::Server::internalUnimplemented(
-      "ModeliRpc.capnp:ModeliBackend", "addFmu",
-      0xc189361aa8d3ec0aull, 4);
-}
-::capnp::Request< ::ModeliBackend::RemoveFmuParams,  ::ModeliBackend::RemoveFmuResults>
-ModeliBackend::Client::removeFmuRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) {
-  return newCall< ::ModeliBackend::RemoveFmuParams,  ::ModeliBackend::RemoveFmuResults>(
-      0xc189361aa8d3ec0aull, 5, sizeHint);
-}
-::kj::Promise<void> ModeliBackend::Server::removeFmu(RemoveFmuContext) {
-  return ::capnp::Capability::Server::internalUnimplemented(
-      "ModeliRpc.capnp:ModeliBackend", "removeFmu",
-      0xc189361aa8d3ec0aull, 5);
-}
-::capnp::Request< ::ModeliBackend::AddChannelLinkParams,  ::ModeliBackend::AddChannelLinkResults>
-ModeliBackend::Client::addChannelLinkRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) {
-  return newCall< ::ModeliBackend::AddChannelLinkParams,  ::ModeliBackend::AddChannelLinkResults>(
-      0xc189361aa8d3ec0aull, 6, sizeHint);
-}
-::kj::Promise<void> ModeliBackend::Server::addChannelLink(AddChannelLinkContext) {
-  return ::capnp::Capability::Server::internalUnimplemented(
-      "ModeliRpc.capnp:ModeliBackend", "addChannelLink",
-      0xc189361aa8d3ec0aull, 6);
-}
-::capnp::Request< ::ModeliBackend::RemoveChannelLinkParams,  ::ModeliBackend::RemoveChannelLinkResults>
-ModeliBackend::Client::removeChannelLinkRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) {
-  return newCall< ::ModeliBackend::RemoveChannelLinkParams,  ::ModeliBackend::RemoveChannelLinkResults>(
-      0xc189361aa8d3ec0aull, 7, sizeHint);
-}
-::kj::Promise<void> ModeliBackend::Server::removeChannelLink(RemoveChannelLinkContext) {
-  return ::capnp::Capability::Server::internalUnimplemented(
-      "ModeliRpc.capnp:ModeliBackend", "removeChannelLink",
-      0xc189361aa8d3ec0aull, 7);
-}
-::capnp::Request< ::ModeliBackend::SetValuesParams,  ::ModeliBackend::SetValuesResults>
-ModeliBackend::Client::setValuesRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) {
-  return newCall< ::ModeliBackend::SetValuesParams,  ::ModeliBackend::SetValuesResults>(
-      0xc189361aa8d3ec0aull, 8, sizeHint);
-}
-::kj::Promise<void> ModeliBackend::Server::setValues(SetValuesContext) {
-  return ::capnp::Capability::Server::internalUnimplemented(
-      "ModeliRpc.capnp:ModeliBackend", "setValues",
-      0xc189361aa8d3ec0aull, 8);
-}
-::capnp::Request< ::ModeliBackend::RegisterFrontendParams,  ::ModeliBackend::RegisterFrontendResults>
-ModeliBackend::Client::registerFrontendRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) {
-  return newCall< ::ModeliBackend::RegisterFrontendParams,  ::ModeliBackend::RegisterFrontendResults>(
-      0xc189361aa8d3ec0aull, 9, sizeHint);
-}
-::kj::Promise<void> ModeliBackend::Server::registerFrontend(RegisterFrontendContext) {
-  return ::capnp::Capability::Server::internalUnimplemented(
-      "ModeliRpc.capnp:ModeliBackend", "registerFrontend",
-      0xc189361aa8d3ec0aull, 9);
-}
-::capnp::Request< ::ModeliBackend::PingParams,  ::ModeliBackend::PingResults>
-ModeliBackend::Client::pingRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) {
-  return newCall< ::ModeliBackend::PingParams,  ::ModeliBackend::PingResults>(
-      0xc189361aa8d3ec0aull, 10, sizeHint);
-}
-::kj::Promise<void> ModeliBackend::Server::ping(PingContext) {
-  return ::capnp::Capability::Server::internalUnimplemented(
-      "ModeliRpc.capnp:ModeliBackend", "ping",
-      0xc189361aa8d3ec0aull, 10);
-}
-::kj::Promise<void> ModeliBackend::Server::dispatchCall(
-    uint64_t interfaceId, uint16_t methodId,
-    ::capnp::CallContext< ::capnp::AnyPointer, ::capnp::AnyPointer> context) {
-  switch (interfaceId) {
-    case 0xc189361aa8d3ec0aull:
-      return dispatchCallInternal(methodId, context);
-    default:
-      return internalUnimplemented("ModeliRpc.capnp:ModeliBackend", interfaceId);
-  }
-}
-::kj::Promise<void> ModeliBackend::Server::dispatchCallInternal(
-    uint16_t methodId,
-    ::capnp::CallContext< ::capnp::AnyPointer, ::capnp::AnyPointer> context) {
-  switch (methodId) {
-    case 0:
-      return play(::capnp::Capability::Server::internalGetTypedContext<
-           ::ModeliBackend::PlayParams,  ::ModeliBackend::PlayResults>(context));
-    case 1:
-      return playFast(::capnp::Capability::Server::internalGetTypedContext<
-           ::ModeliBackend::PlayFastParams,  ::ModeliBackend::PlayFastResults>(context));
-    case 2:
-      return pause(::capnp::Capability::Server::internalGetTypedContext<
-           ::ModeliBackend::PauseParams,  ::ModeliBackend::PauseResults>(context));
-    case 3:
-      return stop(::capnp::Capability::Server::internalGetTypedContext<
-           ::ModeliBackend::StopParams,  ::ModeliBackend::StopResults>(context));
-    case 4:
-      return addFmu(::capnp::Capability::Server::internalGetTypedContext<
-           ::ModeliBackend::AddFmuParams,  ::ModeliBackend::AddFmuResults>(context));
-    case 5:
-      return removeFmu(::capnp::Capability::Server::internalGetTypedContext<
-           ::ModeliBackend::RemoveFmuParams,  ::ModeliBackend::RemoveFmuResults>(context));
-    case 6:
-      return addChannelLink(::capnp::Capability::Server::internalGetTypedContext<
-           ::ModeliBackend::AddChannelLinkParams,  ::ModeliBackend::AddChannelLinkResults>(context));
-    case 7:
-      return removeChannelLink(::capnp::Capability::Server::internalGetTypedContext<
-           ::ModeliBackend::RemoveChannelLinkParams,  ::ModeliBackend::RemoveChannelLinkResults>(context));
-    case 8:
-      return setValues(::capnp::Capability::Server::internalGetTypedContext<
-           ::ModeliBackend::SetValuesParams,  ::ModeliBackend::SetValuesResults>(context));
-    case 9:
-      return registerFrontend(::capnp::Capability::Server::internalGetTypedContext<
-           ::ModeliBackend::RegisterFrontendParams,  ::ModeliBackend::RegisterFrontendResults>(context));
-    case 10:
-      return ping(::capnp::Capability::Server::internalGetTypedContext<
-           ::ModeliBackend::PingParams,  ::ModeliBackend::PingResults>(context));
-    default:
-      (void)context;
-      return ::capnp::Capability::Server::internalUnimplemented(
-          "ModeliRpc.capnp:ModeliBackend",
-          0xc189361aa8d3ec0aull, methodId);
-  }
-}
-#endif  // !CAPNP_LITE
-
-// ModeliBackend
-#if !CAPNP_LITE
-constexpr ::capnp::Kind ModeliBackend::_capnpPrivate::kind;
-constexpr ::capnp::_::RawSchema const* ModeliBackend::_capnpPrivate::schema;
-#endif  // !CAPNP_LITE
-
-// ModeliBackend::ChannelLink
-constexpr uint16_t ModeliBackend::ChannelLink::_capnpPrivate::dataWordSize;
-constexpr uint16_t ModeliBackend::ChannelLink::_capnpPrivate::pointerCount;
-#if !CAPNP_LITE
-constexpr ::capnp::Kind ModeliBackend::ChannelLink::_capnpPrivate::kind;
-constexpr ::capnp::_::RawSchema const* ModeliBackend::ChannelLink::_capnpPrivate::schema;
-#endif  // !CAPNP_LITE
-
-// ModeliBackend::PlayParams
-constexpr uint16_t ModeliBackend::PlayParams::_capnpPrivate::dataWordSize;
-constexpr uint16_t ModeliBackend::PlayParams::_capnpPrivate::pointerCount;
-#if !CAPNP_LITE
-constexpr ::capnp::Kind ModeliBackend::PlayParams::_capnpPrivate::kind;
-constexpr ::capnp::_::RawSchema const* ModeliBackend::PlayParams::_capnpPrivate::schema;
-#endif  // !CAPNP_LITE
-
-// ModeliBackend::PlayResults
-constexpr uint16_t ModeliBackend::PlayResults::_capnpPrivate::dataWordSize;
-constexpr uint16_t ModeliBackend::PlayResults::_capnpPrivate::pointerCount;
-#if !CAPNP_LITE
-constexpr ::capnp::Kind ModeliBackend::PlayResults::_capnpPrivate::kind;
-constexpr ::capnp::_::RawSchema const* ModeliBackend::PlayResults::_capnpPrivate::schema;
-#endif  // !CAPNP_LITE
-
-// ModeliBackend::PlayFastParams
-constexpr uint16_t ModeliBackend::PlayFastParams::_capnpPrivate::dataWordSize;
-constexpr uint16_t ModeliBackend::PlayFastParams::_capnpPrivate::pointerCount;
-#if !CAPNP_LITE
-constexpr ::capnp::Kind ModeliBackend::PlayFastParams::_capnpPrivate::kind;
-constexpr ::capnp::_::RawSchema const* ModeliBackend::PlayFastParams::_capnpPrivate::schema;
-#endif  // !CAPNP_LITE
-
-// ModeliBackend::PlayFastResults
-constexpr uint16_t ModeliBackend::PlayFastResults::_capnpPrivate::dataWordSize;
-constexpr uint16_t ModeliBackend::PlayFastResults::_capnpPrivate::pointerCount;
-#if !CAPNP_LITE
-constexpr ::capnp::Kind ModeliBackend::PlayFastResults::_capnpPrivate::kind;
-constexpr ::capnp::_::RawSchema const* ModeliBackend::PlayFastResults::_capnpPrivate::schema;
-#endif  // !CAPNP_LITE
-
-// ModeliBackend::PauseParams
-constexpr uint16_t ModeliBackend::PauseParams::_capnpPrivate::dataWordSize;
-constexpr uint16_t ModeliBackend::PauseParams::_capnpPrivate::pointerCount;
-#if !CAPNP_LITE
-constexpr ::capnp::Kind ModeliBackend::PauseParams::_capnpPrivate::kind;
-constexpr ::capnp::_::RawSchema const* ModeliBackend::PauseParams::_capnpPrivate::schema;
-#endif  // !CAPNP_LITE
-
-// ModeliBackend::PauseResults
-constexpr uint16_t ModeliBackend::PauseResults::_capnpPrivate::dataWordSize;
-constexpr uint16_t ModeliBackend::PauseResults::_capnpPrivate::pointerCount;
-#if !CAPNP_LITE
-constexpr ::capnp::Kind ModeliBackend::PauseResults::_capnpPrivate::kind;
-constexpr ::capnp::_::RawSchema const* ModeliBackend::PauseResults::_capnpPrivate::schema;
-#endif  // !CAPNP_LITE
-
-// ModeliBackend::StopParams
-constexpr uint16_t ModeliBackend::StopParams::_capnpPrivate::dataWordSize;
-constexpr uint16_t ModeliBackend::StopParams::_capnpPrivate::pointerCount;
-#if !CAPNP_LITE
-constexpr ::capnp::Kind ModeliBackend::StopParams::_capnpPrivate::kind;
-constexpr ::capnp::_::RawSchema const* ModeliBackend::StopParams::_capnpPrivate::schema;
-#endif  // !CAPNP_LITE
-
-// ModeliBackend::StopResults
-constexpr uint16_t ModeliBackend::StopResults::_capnpPrivate::dataWordSize;
-constexpr uint16_t ModeliBackend::StopResults::_capnpPrivate::pointerCount;
-#if !CAPNP_LITE
-constexpr ::capnp::Kind ModeliBackend::StopResults::_capnpPrivate::kind;
-constexpr ::capnp::_::RawSchema const* ModeliBackend::StopResults::_capnpPrivate::schema;
-#endif  // !CAPNP_LITE
-
-// ModeliBackend::AddFmuParams
-constexpr uint16_t ModeliBackend::AddFmuParams::_capnpPrivate::dataWordSize;
-constexpr uint16_t ModeliBackend::AddFmuParams::_capnpPrivate::pointerCount;
-#if !CAPNP_LITE
-constexpr ::capnp::Kind ModeliBackend::AddFmuParams::_capnpPrivate::kind;
-constexpr ::capnp::_::RawSchema const* ModeliBackend::AddFmuParams::_capnpPrivate::schema;
-#endif  // !CAPNP_LITE
-
-// ModeliBackend::AddFmuResults
-constexpr uint16_t ModeliBackend::AddFmuResults::_capnpPrivate::dataWordSize;
-constexpr uint16_t ModeliBackend::AddFmuResults::_capnpPrivate::pointerCount;
-#if !CAPNP_LITE
-constexpr ::capnp::Kind ModeliBackend::AddFmuResults::_capnpPrivate::kind;
-constexpr ::capnp::_::RawSchema const* ModeliBackend::AddFmuResults::_capnpPrivate::schema;
-#endif  // !CAPNP_LITE
-
-// ModeliBackend::RemoveFmuParams
-constexpr uint16_t ModeliBackend::RemoveFmuParams::_capnpPrivate::dataWordSize;
-constexpr uint16_t ModeliBackend::RemoveFmuParams::_capnpPrivate::pointerCount;
-#if !CAPNP_LITE
-constexpr ::capnp::Kind ModeliBackend::RemoveFmuParams::_capnpPrivate::kind;
-constexpr ::capnp::_::RawSchema const* ModeliBackend::RemoveFmuParams::_capnpPrivate::schema;
-#endif  // !CAPNP_LITE
-
-// ModeliBackend::RemoveFmuResults
-constexpr uint16_t ModeliBackend::RemoveFmuResults::_capnpPrivate::dataWordSize;
-constexpr uint16_t ModeliBackend::RemoveFmuResults::_capnpPrivate::pointerCount;
-#if !CAPNP_LITE
-constexpr ::capnp::Kind ModeliBackend::RemoveFmuResults::_capnpPrivate::kind;
-constexpr ::capnp::_::RawSchema const* ModeliBackend::RemoveFmuResults::_capnpPrivate::schema;
-#endif  // !CAPNP_LITE
-
-// ModeliBackend::AddChannelLinkParams
-constexpr uint16_t ModeliBackend::AddChannelLinkParams::_capnpPrivate::dataWordSize;
-constexpr uint16_t ModeliBackend::AddChannelLinkParams::_capnpPrivate::pointerCount;
-#if !CAPNP_LITE
-constexpr ::capnp::Kind ModeliBackend::AddChannelLinkParams::_capnpPrivate::kind;
-constexpr ::capnp::_::RawSchema const* ModeliBackend::AddChannelLinkParams::_capnpPrivate::schema;
-#endif  // !CAPNP_LITE
-
-// ModeliBackend::AddChannelLinkResults
-constexpr uint16_t ModeliBackend::AddChannelLinkResults::_capnpPrivate::dataWordSize;
-constexpr uint16_t ModeliBackend::AddChannelLinkResults::_capnpPrivate::pointerCount;
-#if !CAPNP_LITE
-constexpr ::capnp::Kind ModeliBackend::AddChannelLinkResults::_capnpPrivate::kind;
-constexpr ::capnp::_::RawSchema const* ModeliBackend::AddChannelLinkResults::_capnpPrivate::schema;
-#endif  // !CAPNP_LITE
-
-// ModeliBackend::RemoveChannelLinkParams
-constexpr uint16_t ModeliBackend::RemoveChannelLinkParams::_capnpPrivate::dataWordSize;
-constexpr uint16_t ModeliBackend::RemoveChannelLinkParams::_capnpPrivate::pointerCount;
-#if !CAPNP_LITE
-constexpr ::capnp::Kind ModeliBackend::RemoveChannelLinkParams::_capnpPrivate::kind;
-constexpr ::capnp::_::RawSchema const* ModeliBackend::RemoveChannelLinkParams::_capnpPrivate::schema;
-#endif  // !CAPNP_LITE
-
-// ModeliBackend::RemoveChannelLinkResults
-constexpr uint16_t ModeliBackend::RemoveChannelLinkResults::_capnpPrivate::dataWordSize;
-constexpr uint16_t ModeliBackend::RemoveChannelLinkResults::_capnpPrivate::pointerCount;
-#if !CAPNP_LITE
-constexpr ::capnp::Kind ModeliBackend::RemoveChannelLinkResults::_capnpPrivate::kind;
-constexpr ::capnp::_::RawSchema const* ModeliBackend::RemoveChannelLinkResults::_capnpPrivate::schema;
-#endif  // !CAPNP_LITE
-
-// ModeliBackend::SetValuesParams
-constexpr uint16_t ModeliBackend::SetValuesParams::_capnpPrivate::dataWordSize;
-constexpr uint16_t ModeliBackend::SetValuesParams::_capnpPrivate::pointerCount;
-#if !CAPNP_LITE
-constexpr ::capnp::Kind ModeliBackend::SetValuesParams::_capnpPrivate::kind;
-constexpr ::capnp::_::RawSchema const* ModeliBackend::SetValuesParams::_capnpPrivate::schema;
-#endif  // !CAPNP_LITE
-
-// ModeliBackend::SetValuesResults
-constexpr uint16_t ModeliBackend::SetValuesResults::_capnpPrivate::dataWordSize;
-constexpr uint16_t ModeliBackend::SetValuesResults::_capnpPrivate::pointerCount;
-#if !CAPNP_LITE
-constexpr ::capnp::Kind ModeliBackend::SetValuesResults::_capnpPrivate::kind;
-constexpr ::capnp::_::RawSchema const* ModeliBackend::SetValuesResults::_capnpPrivate::schema;
-#endif  // !CAPNP_LITE
-
-// ModeliBackend::RegisterFrontendParams
-constexpr uint16_t ModeliBackend::RegisterFrontendParams::_capnpPrivate::dataWordSize;
-constexpr uint16_t ModeliBackend::RegisterFrontendParams::_capnpPrivate::pointerCount;
-#if !CAPNP_LITE
-constexpr ::capnp::Kind ModeliBackend::RegisterFrontendParams::_capnpPrivate::kind;
-constexpr ::capnp::_::RawSchema const* ModeliBackend::RegisterFrontendParams::_capnpPrivate::schema;
-#endif  // !CAPNP_LITE
-
-// ModeliBackend::RegisterFrontendResults
-constexpr uint16_t ModeliBackend::RegisterFrontendResults::_capnpPrivate::dataWordSize;
-constexpr uint16_t ModeliBackend::RegisterFrontendResults::_capnpPrivate::pointerCount;
-#if !CAPNP_LITE
-constexpr ::capnp::Kind ModeliBackend::RegisterFrontendResults::_capnpPrivate::kind;
-constexpr ::capnp::_::RawSchema const* ModeliBackend::RegisterFrontendResults::_capnpPrivate::schema;
-#endif  // !CAPNP_LITE
-
-// ModeliBackend::PingParams
-constexpr uint16_t ModeliBackend::PingParams::_capnpPrivate::dataWordSize;
-constexpr uint16_t ModeliBackend::PingParams::_capnpPrivate::pointerCount;
-#if !CAPNP_LITE
-constexpr ::capnp::Kind ModeliBackend::PingParams::_capnpPrivate::kind;
-constexpr ::capnp::_::RawSchema const* ModeliBackend::PingParams::_capnpPrivate::schema;
-#endif  // !CAPNP_LITE
-
-// ModeliBackend::PingResults
-constexpr uint16_t ModeliBackend::PingResults::_capnpPrivate::dataWordSize;
-constexpr uint16_t ModeliBackend::PingResults::_capnpPrivate::pointerCount;
-#if !CAPNP_LITE
-constexpr ::capnp::Kind ModeliBackend::PingResults::_capnpPrivate::kind;
-constexpr ::capnp::_::RawSchema const* ModeliBackend::PingResults::_capnpPrivate::schema;
-#endif  // !CAPNP_LITE
-
-#if !CAPNP_LITE
-::capnp::Request< ::ModeliFrontend::NewValuesParams,  ::ModeliFrontend::NewValuesResults>
-ModeliFrontend::Client::newValuesRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) {
-  return newCall< ::ModeliFrontend::NewValuesParams,  ::ModeliFrontend::NewValuesResults>(
-      0xcc4550916ea17af4ull, 0, sizeHint);
-}
-::kj::Promise<void> ModeliFrontend::Server::newValues(NewValuesContext) {
-  return ::capnp::Capability::Server::internalUnimplemented(
-      "ModeliRpc.capnp:ModeliFrontend", "newValues",
-      0xcc4550916ea17af4ull, 0);
-}
-::capnp::Request< ::ModeliFrontend::LogParams,  ::ModeliFrontend::LogResults>
-ModeliFrontend::Client::logRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) {
-  return newCall< ::ModeliFrontend::LogParams,  ::ModeliFrontend::LogResults>(
-      0xcc4550916ea17af4ull, 1, sizeHint);
-}
-::kj::Promise<void> ModeliFrontend::Server::log(LogContext) {
-  return ::capnp::Capability::Server::internalUnimplemented(
-      "ModeliRpc.capnp:ModeliFrontend", "log",
-      0xcc4550916ea17af4ull, 1);
-}
-::kj::Promise<void> ModeliFrontend::Server::dispatchCall(
-    uint64_t interfaceId, uint16_t methodId,
-    ::capnp::CallContext< ::capnp::AnyPointer, ::capnp::AnyPointer> context) {
-  switch (interfaceId) {
-    case 0xcc4550916ea17af4ull:
-      return dispatchCallInternal(methodId, context);
-    default:
-      return internalUnimplemented("ModeliRpc.capnp:ModeliFrontend", interfaceId);
-  }
-}
-::kj::Promise<void> ModeliFrontend::Server::dispatchCallInternal(
-    uint16_t methodId,
-    ::capnp::CallContext< ::capnp::AnyPointer, ::capnp::AnyPointer> context) {
-  switch (methodId) {
-    case 0:
-      return newValues(::capnp::Capability::Server::internalGetTypedContext<
-           ::ModeliFrontend::NewValuesParams,  ::ModeliFrontend::NewValuesResults>(context));
-    case 1:
-      return log(::capnp::Capability::Server::internalGetTypedContext<
-           ::ModeliFrontend::LogParams,  ::ModeliFrontend::LogResults>(context));
-    default:
-      (void)context;
-      return ::capnp::Capability::Server::internalUnimplemented(
-          "ModeliRpc.capnp:ModeliFrontend",
-          0xcc4550916ea17af4ull, methodId);
-  }
-}
-#endif  // !CAPNP_LITE
-
-// ModeliFrontend
-#if !CAPNP_LITE
-constexpr ::capnp::Kind ModeliFrontend::_capnpPrivate::kind;
-constexpr ::capnp::_::RawSchema const* ModeliFrontend::_capnpPrivate::schema;
-#endif  // !CAPNP_LITE
-
-// ModeliFrontend::NewValuesParams
-constexpr uint16_t ModeliFrontend::NewValuesParams::_capnpPrivate::dataWordSize;
-constexpr uint16_t ModeliFrontend::NewValuesParams::_capnpPrivate::pointerCount;
-#if !CAPNP_LITE
-constexpr ::capnp::Kind ModeliFrontend::NewValuesParams::_capnpPrivate::kind;
-constexpr ::capnp::_::RawSchema const* ModeliFrontend::NewValuesParams::_capnpPrivate::schema;
-#endif  // !CAPNP_LITE
-
-// ModeliFrontend::NewValuesResults
-constexpr uint16_t ModeliFrontend::NewValuesResults::_capnpPrivate::dataWordSize;
-constexpr uint16_t ModeliFrontend::NewValuesResults::_capnpPrivate::pointerCount;
-#if !CAPNP_LITE
-constexpr ::capnp::Kind ModeliFrontend::NewValuesResults::_capnpPrivate::kind;
-constexpr ::capnp::_::RawSchema const* ModeliFrontend::NewValuesResults::_capnpPrivate::schema;
-#endif  // !CAPNP_LITE
-
-// ModeliFrontend::LogParams
-constexpr uint16_t ModeliFrontend::LogParams::_capnpPrivate::dataWordSize;
-constexpr uint16_t ModeliFrontend::LogParams::_capnpPrivate::pointerCount;
-#if !CAPNP_LITE
-constexpr ::capnp::Kind ModeliFrontend::LogParams::_capnpPrivate::kind;
-constexpr ::capnp::_::RawSchema const* ModeliFrontend::LogParams::_capnpPrivate::schema;
-#endif  // !CAPNP_LITE
-
-// ModeliFrontend::LogResults
-constexpr uint16_t ModeliFrontend::LogResults::_capnpPrivate::dataWordSize;
-constexpr uint16_t ModeliFrontend::LogResults::_capnpPrivate::pointerCount;
-#if !CAPNP_LITE
-constexpr ::capnp::Kind ModeliFrontend::LogResults::_capnpPrivate::kind;
-constexpr ::capnp::_::RawSchema const* ModeliFrontend::LogResults::_capnpPrivate::schema;
-#endif  // !CAPNP_LITE
-
-// Values
-constexpr uint16_t Values::_capnpPrivate::dataWordSize;
-constexpr uint16_t Values::_capnpPrivate::pointerCount;
-#if !CAPNP_LITE
-constexpr ::capnp::Kind Values::_capnpPrivate::kind;
-constexpr ::capnp::_::RawSchema const* Values::_capnpPrivate::schema;
-#endif  // !CAPNP_LITE
-
-
-
diff --git a/ModeliRpc/ModeliRpcNative/ModeliRpc.capnp.h b/ModeliRpc/ModeliRpcNative/ModeliRpc.capnp.h
deleted file mode 100644
index 4200b6a317c6294ffdff97a0bb3792c25f893324..0000000000000000000000000000000000000000
--- a/ModeliRpc/ModeliRpcNative/ModeliRpc.capnp.h
+++ /dev/null
@@ -1,4028 +0,0 @@
-// Generated by Cap'n Proto compiler, DO NOT EDIT
-// source: ModeliRpc.capnp
-
-#ifndef CAPNP_INCLUDED_b51166b0ce5aa3a5_
-#define CAPNP_INCLUDED_b51166b0ce5aa3a5_
-
-#include <capnp/generated-header-support.h>
-#if !CAPNP_LITE
-#include <capnp/capability.h>
-#endif  // !CAPNP_LITE
-
-#if CAPNP_VERSION != 6001
-#error "Version mismatch between generated code and library headers.  You must use the same version of the Cap'n Proto compiler and library."
-#endif
-
-
-namespace capnp {
-namespace schemas {
-
-CAPNP_DECLARE_SCHEMA(c189361aa8d3ec0a);
-CAPNP_DECLARE_SCHEMA(ae08c157b2e82b54);
-CAPNP_DECLARE_SCHEMA(eb619952bc2b3805);
-CAPNP_DECLARE_SCHEMA(935c832cec2e072f);
-CAPNP_DECLARE_SCHEMA(92d58775d6d1f6fe);
-CAPNP_DECLARE_SCHEMA(dce78f15ea9b3d58);
-CAPNP_DECLARE_SCHEMA(9263e3a03203043e);
-CAPNP_DECLARE_SCHEMA(8e7b69d6afc3b55d);
-CAPNP_DECLARE_SCHEMA(832e6f38e797e7d6);
-CAPNP_DECLARE_SCHEMA(c9b4c21577c8474e);
-CAPNP_DECLARE_SCHEMA(ce3eb72a43d53a18);
-CAPNP_DECLARE_SCHEMA(94704beee55dbeff);
-CAPNP_DECLARE_SCHEMA(a352b1a9da6ecc9f);
-CAPNP_DECLARE_SCHEMA(86caaf1b5674d5db);
-CAPNP_DECLARE_SCHEMA(ff24bad7e33a7e67);
-CAPNP_DECLARE_SCHEMA(8ad4ffb22b98c716);
-CAPNP_DECLARE_SCHEMA(879edd7f3e0e6f0b);
-CAPNP_DECLARE_SCHEMA(98af1a6dfbd686ca);
-CAPNP_DECLARE_SCHEMA(80e19e353495e92d);
-CAPNP_DECLARE_SCHEMA(e9235735334ee23c);
-CAPNP_DECLARE_SCHEMA(c32f5e5599baa4a2);
-CAPNP_DECLARE_SCHEMA(b087cff7ea9b99ea);
-CAPNP_DECLARE_SCHEMA(f6bf333f61a3f649);
-CAPNP_DECLARE_SCHEMA(f59f1d309d46ddb3);
-CAPNP_DECLARE_SCHEMA(cc4550916ea17af4);
-CAPNP_DECLARE_SCHEMA(89822c8798268361);
-CAPNP_DECLARE_SCHEMA(dec8cbe4e9ea46c4);
-CAPNP_DECLARE_SCHEMA(a227f00e10db6883);
-CAPNP_DECLARE_SCHEMA(ec8c961c6ddf7a5c);
-CAPNP_DECLARE_SCHEMA(a43101940a8689a5);
-
-}  // namespace schemas
-}  // namespace capnp
-
-
-struct ModeliBackend {
-  ModeliBackend() = delete;
-
-#if !CAPNP_LITE
-  class Client;
-  class Server;
-#endif  // !CAPNP_LITE
-
-  struct ChannelLink;
-  struct PlayParams;
-  struct PlayResults;
-  struct PlayFastParams;
-  struct PlayFastResults;
-  struct PauseParams;
-  struct PauseResults;
-  struct StopParams;
-  struct StopResults;
-  struct AddFmuParams;
-  struct AddFmuResults;
-  struct RemoveFmuParams;
-  struct RemoveFmuResults;
-  struct AddChannelLinkParams;
-  struct AddChannelLinkResults;
-  struct RemoveChannelLinkParams;
-  struct RemoveChannelLinkResults;
-  struct SetValuesParams;
-  struct SetValuesResults;
-  struct RegisterFrontendParams;
-  struct RegisterFrontendResults;
-  struct PingParams;
-  struct PingResults;
-
-  #if !CAPNP_LITE
-  struct _capnpPrivate {
-    CAPNP_DECLARE_INTERFACE_HEADER(c189361aa8d3ec0a)
-    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
-  };
-  #endif  // !CAPNP_LITE
-};
-
-struct ModeliBackend::ChannelLink {
-  ChannelLink() = delete;
-
-  class Reader;
-  class Builder;
-  class Pipeline;
-
-  struct _capnpPrivate {
-    CAPNP_DECLARE_STRUCT_HEADER(ae08c157b2e82b54, 3, 2)
-    #if !CAPNP_LITE
-    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
-    #endif  // !CAPNP_LITE
-  };
-};
-
-struct ModeliBackend::PlayParams {
-  PlayParams() = delete;
-
-  class Reader;
-  class Builder;
-  class Pipeline;
-
-  struct _capnpPrivate {
-    CAPNP_DECLARE_STRUCT_HEADER(eb619952bc2b3805, 0, 0)
-    #if !CAPNP_LITE
-    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
-    #endif  // !CAPNP_LITE
-  };
-};
-
-struct ModeliBackend::PlayResults {
-  PlayResults() = delete;
-
-  class Reader;
-  class Builder;
-  class Pipeline;
-
-  struct _capnpPrivate {
-    CAPNP_DECLARE_STRUCT_HEADER(935c832cec2e072f, 1, 0)
-    #if !CAPNP_LITE
-    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
-    #endif  // !CAPNP_LITE
-  };
-};
-
-struct ModeliBackend::PlayFastParams {
-  PlayFastParams() = delete;
-
-  class Reader;
-  class Builder;
-  class Pipeline;
-
-  struct _capnpPrivate {
-    CAPNP_DECLARE_STRUCT_HEADER(92d58775d6d1f6fe, 1, 0)
-    #if !CAPNP_LITE
-    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
-    #endif  // !CAPNP_LITE
-  };
-};
-
-struct ModeliBackend::PlayFastResults {
-  PlayFastResults() = delete;
-
-  class Reader;
-  class Builder;
-  class Pipeline;
-
-  struct _capnpPrivate {
-    CAPNP_DECLARE_STRUCT_HEADER(dce78f15ea9b3d58, 1, 0)
-    #if !CAPNP_LITE
-    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
-    #endif  // !CAPNP_LITE
-  };
-};
-
-struct ModeliBackend::PauseParams {
-  PauseParams() = delete;
-
-  class Reader;
-  class Builder;
-  class Pipeline;
-
-  struct _capnpPrivate {
-    CAPNP_DECLARE_STRUCT_HEADER(9263e3a03203043e, 0, 0)
-    #if !CAPNP_LITE
-    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
-    #endif  // !CAPNP_LITE
-  };
-};
-
-struct ModeliBackend::PauseResults {
-  PauseResults() = delete;
-
-  class Reader;
-  class Builder;
-  class Pipeline;
-
-  struct _capnpPrivate {
-    CAPNP_DECLARE_STRUCT_HEADER(8e7b69d6afc3b55d, 0, 0)
-    #if !CAPNP_LITE
-    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
-    #endif  // !CAPNP_LITE
-  };
-};
-
-struct ModeliBackend::StopParams {
-  StopParams() = delete;
-
-  class Reader;
-  class Builder;
-  class Pipeline;
-
-  struct _capnpPrivate {
-    CAPNP_DECLARE_STRUCT_HEADER(832e6f38e797e7d6, 0, 0)
-    #if !CAPNP_LITE
-    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
-    #endif  // !CAPNP_LITE
-  };
-};
-
-struct ModeliBackend::StopResults {
-  StopResults() = delete;
-
-  class Reader;
-  class Builder;
-  class Pipeline;
-
-  struct _capnpPrivate {
-    CAPNP_DECLARE_STRUCT_HEADER(c9b4c21577c8474e, 1, 0)
-    #if !CAPNP_LITE
-    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
-    #endif  // !CAPNP_LITE
-  };
-};
-
-struct ModeliBackend::AddFmuParams {
-  AddFmuParams() = delete;
-
-  class Reader;
-  class Builder;
-  class Pipeline;
-
-  struct _capnpPrivate {
-    CAPNP_DECLARE_STRUCT_HEADER(ce3eb72a43d53a18, 0, 2)
-    #if !CAPNP_LITE
-    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
-    #endif  // !CAPNP_LITE
-  };
-};
-
-struct ModeliBackend::AddFmuResults {
-  AddFmuResults() = delete;
-
-  class Reader;
-  class Builder;
-  class Pipeline;
-
-  struct _capnpPrivate {
-    CAPNP_DECLARE_STRUCT_HEADER(94704beee55dbeff, 1, 0)
-    #if !CAPNP_LITE
-    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
-    #endif  // !CAPNP_LITE
-  };
-};
-
-struct ModeliBackend::RemoveFmuParams {
-  RemoveFmuParams() = delete;
-
-  class Reader;
-  class Builder;
-  class Pipeline;
-
-  struct _capnpPrivate {
-    CAPNP_DECLARE_STRUCT_HEADER(a352b1a9da6ecc9f, 0, 1)
-    #if !CAPNP_LITE
-    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
-    #endif  // !CAPNP_LITE
-  };
-};
-
-struct ModeliBackend::RemoveFmuResults {
-  RemoveFmuResults() = delete;
-
-  class Reader;
-  class Builder;
-  class Pipeline;
-
-  struct _capnpPrivate {
-    CAPNP_DECLARE_STRUCT_HEADER(86caaf1b5674d5db, 1, 0)
-    #if !CAPNP_LITE
-    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
-    #endif  // !CAPNP_LITE
-  };
-};
-
-struct ModeliBackend::AddChannelLinkParams {
-  AddChannelLinkParams() = delete;
-
-  class Reader;
-  class Builder;
-  class Pipeline;
-
-  struct _capnpPrivate {
-    CAPNP_DECLARE_STRUCT_HEADER(ff24bad7e33a7e67, 0, 1)
-    #if !CAPNP_LITE
-    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
-    #endif  // !CAPNP_LITE
-  };
-};
-
-struct ModeliBackend::AddChannelLinkResults {
-  AddChannelLinkResults() = delete;
-
-  class Reader;
-  class Builder;
-  class Pipeline;
-
-  struct _capnpPrivate {
-    CAPNP_DECLARE_STRUCT_HEADER(8ad4ffb22b98c716, 1, 0)
-    #if !CAPNP_LITE
-    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
-    #endif  // !CAPNP_LITE
-  };
-};
-
-struct ModeliBackend::RemoveChannelLinkParams {
-  RemoveChannelLinkParams() = delete;
-
-  class Reader;
-  class Builder;
-  class Pipeline;
-
-  struct _capnpPrivate {
-    CAPNP_DECLARE_STRUCT_HEADER(879edd7f3e0e6f0b, 0, 1)
-    #if !CAPNP_LITE
-    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
-    #endif  // !CAPNP_LITE
-  };
-};
-
-struct ModeliBackend::RemoveChannelLinkResults {
-  RemoveChannelLinkResults() = delete;
-
-  class Reader;
-  class Builder;
-  class Pipeline;
-
-  struct _capnpPrivate {
-    CAPNP_DECLARE_STRUCT_HEADER(98af1a6dfbd686ca, 1, 0)
-    #if !CAPNP_LITE
-    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
-    #endif  // !CAPNP_LITE
-  };
-};
-
-struct ModeliBackend::SetValuesParams {
-  SetValuesParams() = delete;
-
-  class Reader;
-  class Builder;
-  class Pipeline;
-
-  struct _capnpPrivate {
-    CAPNP_DECLARE_STRUCT_HEADER(80e19e353495e92d, 0, 1)
-    #if !CAPNP_LITE
-    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
-    #endif  // !CAPNP_LITE
-  };
-};
-
-struct ModeliBackend::SetValuesResults {
-  SetValuesResults() = delete;
-
-  class Reader;
-  class Builder;
-  class Pipeline;
-
-  struct _capnpPrivate {
-    CAPNP_DECLARE_STRUCT_HEADER(e9235735334ee23c, 1, 0)
-    #if !CAPNP_LITE
-    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
-    #endif  // !CAPNP_LITE
-  };
-};
-
-struct ModeliBackend::RegisterFrontendParams {
-  RegisterFrontendParams() = delete;
-
-  class Reader;
-  class Builder;
-  class Pipeline;
-
-  struct _capnpPrivate {
-    CAPNP_DECLARE_STRUCT_HEADER(c32f5e5599baa4a2, 0, 1)
-    #if !CAPNP_LITE
-    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
-    #endif  // !CAPNP_LITE
-  };
-};
-
-struct ModeliBackend::RegisterFrontendResults {
-  RegisterFrontendResults() = delete;
-
-  class Reader;
-  class Builder;
-  class Pipeline;
-
-  struct _capnpPrivate {
-    CAPNP_DECLARE_STRUCT_HEADER(b087cff7ea9b99ea, 0, 0)
-    #if !CAPNP_LITE
-    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
-    #endif  // !CAPNP_LITE
-  };
-};
-
-struct ModeliBackend::PingParams {
-  PingParams() = delete;
-
-  class Reader;
-  class Builder;
-  class Pipeline;
-
-  struct _capnpPrivate {
-    CAPNP_DECLARE_STRUCT_HEADER(f6bf333f61a3f649, 0, 0)
-    #if !CAPNP_LITE
-    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
-    #endif  // !CAPNP_LITE
-  };
-};
-
-struct ModeliBackend::PingResults {
-  PingResults() = delete;
-
-  class Reader;
-  class Builder;
-  class Pipeline;
-
-  struct _capnpPrivate {
-    CAPNP_DECLARE_STRUCT_HEADER(f59f1d309d46ddb3, 0, 0)
-    #if !CAPNP_LITE
-    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
-    #endif  // !CAPNP_LITE
-  };
-};
-
-struct ModeliFrontend {
-  ModeliFrontend() = delete;
-
-#if !CAPNP_LITE
-  class Client;
-  class Server;
-#endif  // !CAPNP_LITE
-
-  struct NewValuesParams;
-  struct NewValuesResults;
-  struct LogParams;
-  struct LogResults;
-
-  #if !CAPNP_LITE
-  struct _capnpPrivate {
-    CAPNP_DECLARE_INTERFACE_HEADER(cc4550916ea17af4)
-    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
-  };
-  #endif  // !CAPNP_LITE
-};
-
-struct ModeliFrontend::NewValuesParams {
-  NewValuesParams() = delete;
-
-  class Reader;
-  class Builder;
-  class Pipeline;
-
-  struct _capnpPrivate {
-    CAPNP_DECLARE_STRUCT_HEADER(89822c8798268361, 1, 1)
-    #if !CAPNP_LITE
-    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
-    #endif  // !CAPNP_LITE
-  };
-};
-
-struct ModeliFrontend::NewValuesResults {
-  NewValuesResults() = delete;
-
-  class Reader;
-  class Builder;
-  class Pipeline;
-
-  struct _capnpPrivate {
-    CAPNP_DECLARE_STRUCT_HEADER(dec8cbe4e9ea46c4, 0, 0)
-    #if !CAPNP_LITE
-    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
-    #endif  // !CAPNP_LITE
-  };
-};
-
-struct ModeliFrontend::LogParams {
-  LogParams() = delete;
-
-  class Reader;
-  class Builder;
-  class Pipeline;
-
-  struct _capnpPrivate {
-    CAPNP_DECLARE_STRUCT_HEADER(a227f00e10db6883, 1, 2)
-    #if !CAPNP_LITE
-    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
-    #endif  // !CAPNP_LITE
-  };
-};
-
-struct ModeliFrontend::LogResults {
-  LogResults() = delete;
-
-  class Reader;
-  class Builder;
-  class Pipeline;
-
-  struct _capnpPrivate {
-    CAPNP_DECLARE_STRUCT_HEADER(ec8c961c6ddf7a5c, 0, 0)
-    #if !CAPNP_LITE
-    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
-    #endif  // !CAPNP_LITE
-  };
-};
-
-struct Values {
-  Values() = delete;
-
-  class Reader;
-  class Builder;
-  class Pipeline;
-
-  struct _capnpPrivate {
-    CAPNP_DECLARE_STRUCT_HEADER(a43101940a8689a5, 0, 9)
-    #if !CAPNP_LITE
-    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
-    #endif  // !CAPNP_LITE
-  };
-};
-
-// =======================================================================================
-
-#if !CAPNP_LITE
-class ModeliBackend::Client
-    : public virtual ::capnp::Capability::Client {
-public:
-  typedef ModeliBackend Calls;
-  typedef ModeliBackend Reads;
-
-  Client(decltype(nullptr));
-  explicit Client(::kj::Own< ::capnp::ClientHook>&& hook);
-  template <typename _t, typename = ::kj::EnableIf< ::kj::canConvert<_t*, Server*>()>>
-  Client(::kj::Own<_t>&& server);
-  template <typename _t, typename = ::kj::EnableIf< ::kj::canConvert<_t*, Client*>()>>
-  Client(::kj::Promise<_t>&& promise);
-  Client(::kj::Exception&& exception);
-  Client(Client&) = default;
-  Client(Client&&) = default;
-  Client& operator=(Client& other);
-  Client& operator=(Client&& other);
-
-  ::capnp::Request< ::ModeliBackend::PlayParams,  ::ModeliBackend::PlayResults> playRequest(
-      ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr);
-  ::capnp::Request< ::ModeliBackend::PlayFastParams,  ::ModeliBackend::PlayFastResults> playFastRequest(
-      ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr);
-  ::capnp::Request< ::ModeliBackend::PauseParams,  ::ModeliBackend::PauseResults> pauseRequest(
-      ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr);
-  ::capnp::Request< ::ModeliBackend::StopParams,  ::ModeliBackend::StopResults> stopRequest(
-      ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr);
-  ::capnp::Request< ::ModeliBackend::AddFmuParams,  ::ModeliBackend::AddFmuResults> addFmuRequest(
-      ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr);
-  ::capnp::Request< ::ModeliBackend::RemoveFmuParams,  ::ModeliBackend::RemoveFmuResults> removeFmuRequest(
-      ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr);
-  ::capnp::Request< ::ModeliBackend::AddChannelLinkParams,  ::ModeliBackend::AddChannelLinkResults> addChannelLinkRequest(
-      ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr);
-  ::capnp::Request< ::ModeliBackend::RemoveChannelLinkParams,  ::ModeliBackend::RemoveChannelLinkResults> removeChannelLinkRequest(
-      ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr);
-  ::capnp::Request< ::ModeliBackend::SetValuesParams,  ::ModeliBackend::SetValuesResults> setValuesRequest(
-      ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr);
-  ::capnp::Request< ::ModeliBackend::RegisterFrontendParams,  ::ModeliBackend::RegisterFrontendResults> registerFrontendRequest(
-      ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr);
-  ::capnp::Request< ::ModeliBackend::PingParams,  ::ModeliBackend::PingResults> pingRequest(
-      ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr);
-
-protected:
-  Client() = default;
-};
-
-class ModeliBackend::Server
-    : public virtual ::capnp::Capability::Server {
-public:
-  typedef ModeliBackend Serves;
-
-  ::kj::Promise<void> dispatchCall(uint64_t interfaceId, uint16_t methodId,
-      ::capnp::CallContext< ::capnp::AnyPointer, ::capnp::AnyPointer> context)
-      override;
-
-protected:
-  typedef  ::ModeliBackend::PlayParams PlayParams;
-  typedef  ::ModeliBackend::PlayResults PlayResults;
-  typedef ::capnp::CallContext<PlayParams, PlayResults> PlayContext;
-  virtual ::kj::Promise<void> play(PlayContext context);
-  typedef  ::ModeliBackend::PlayFastParams PlayFastParams;
-  typedef  ::ModeliBackend::PlayFastResults PlayFastResults;
-  typedef ::capnp::CallContext<PlayFastParams, PlayFastResults> PlayFastContext;
-  virtual ::kj::Promise<void> playFast(PlayFastContext context);
-  typedef  ::ModeliBackend::PauseParams PauseParams;
-  typedef  ::ModeliBackend::PauseResults PauseResults;
-  typedef ::capnp::CallContext<PauseParams, PauseResults> PauseContext;
-  virtual ::kj::Promise<void> pause(PauseContext context);
-  typedef  ::ModeliBackend::StopParams StopParams;
-  typedef  ::ModeliBackend::StopResults StopResults;
-  typedef ::capnp::CallContext<StopParams, StopResults> StopContext;
-  virtual ::kj::Promise<void> stop(StopContext context);
-  typedef  ::ModeliBackend::AddFmuParams AddFmuParams;
-  typedef  ::ModeliBackend::AddFmuResults AddFmuResults;
-  typedef ::capnp::CallContext<AddFmuParams, AddFmuResults> AddFmuContext;
-  virtual ::kj::Promise<void> addFmu(AddFmuContext context);
-  typedef  ::ModeliBackend::RemoveFmuParams RemoveFmuParams;
-  typedef  ::ModeliBackend::RemoveFmuResults RemoveFmuResults;
-  typedef ::capnp::CallContext<RemoveFmuParams, RemoveFmuResults> RemoveFmuContext;
-  virtual ::kj::Promise<void> removeFmu(RemoveFmuContext context);
-  typedef  ::ModeliBackend::AddChannelLinkParams AddChannelLinkParams;
-  typedef  ::ModeliBackend::AddChannelLinkResults AddChannelLinkResults;
-  typedef ::capnp::CallContext<AddChannelLinkParams, AddChannelLinkResults> AddChannelLinkContext;
-  virtual ::kj::Promise<void> addChannelLink(AddChannelLinkContext context);
-  typedef  ::ModeliBackend::RemoveChannelLinkParams RemoveChannelLinkParams;
-  typedef  ::ModeliBackend::RemoveChannelLinkResults RemoveChannelLinkResults;
-  typedef ::capnp::CallContext<RemoveChannelLinkParams, RemoveChannelLinkResults> RemoveChannelLinkContext;
-  virtual ::kj::Promise<void> removeChannelLink(RemoveChannelLinkContext context);
-  typedef  ::ModeliBackend::SetValuesParams SetValuesParams;
-  typedef  ::ModeliBackend::SetValuesResults SetValuesResults;
-  typedef ::capnp::CallContext<SetValuesParams, SetValuesResults> SetValuesContext;
-  virtual ::kj::Promise<void> setValues(SetValuesContext context);
-  typedef  ::ModeliBackend::RegisterFrontendParams RegisterFrontendParams;
-  typedef  ::ModeliBackend::RegisterFrontendResults RegisterFrontendResults;
-  typedef ::capnp::CallContext<RegisterFrontendParams, RegisterFrontendResults> RegisterFrontendContext;
-  virtual ::kj::Promise<void> registerFrontend(RegisterFrontendContext context);
-  typedef  ::ModeliBackend::PingParams PingParams;
-  typedef  ::ModeliBackend::PingResults PingResults;
-  typedef ::capnp::CallContext<PingParams, PingResults> PingContext;
-  virtual ::kj::Promise<void> ping(PingContext context);
-
-  inline  ::ModeliBackend::Client thisCap() {
-    return ::capnp::Capability::Server::thisCap()
-        .template castAs< ::ModeliBackend>();
-  }
-
-  ::kj::Promise<void> dispatchCallInternal(uint16_t methodId,
-      ::capnp::CallContext< ::capnp::AnyPointer, ::capnp::AnyPointer> context);
-};
-#endif  // !CAPNP_LITE
-
-class ModeliBackend::ChannelLink::Reader {
-public:
-  typedef ChannelLink Reads;
-
-  Reader() = default;
-  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
-
-  inline ::capnp::MessageSize totalSize() const {
-    return _reader.totalSize().asPublic();
-  }
-
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const {
-    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
-  }
-#endif  // !CAPNP_LITE
-
-  inline bool hasMasterInstanceName() const;
-  inline  ::capnp::Text::Reader getMasterInstanceName() const;
-
-  inline bool hasSlaveInstanceName() const;
-  inline  ::capnp::Text::Reader getSlaveInstanceName() const;
-
-  inline  ::uint32_t getMasterValueRef() const;
-
-  inline  ::uint32_t getSlaveValueRef() const;
-
-  inline double getFactor() const;
-
-  inline double getOffset() const;
-
-private:
-  ::capnp::_::StructReader _reader;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::List;
-  friend class ::capnp::MessageBuilder;
-  friend class ::capnp::Orphanage;
-};
-
-class ModeliBackend::ChannelLink::Builder {
-public:
-  typedef ChannelLink Builds;
-
-  Builder() = delete;  // Deleted to discourage incorrect usage.
-                       // You can explicitly initialize to nullptr instead.
-  inline Builder(decltype(nullptr)) {}
-  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
-  inline operator Reader() const { return Reader(_builder.asReader()); }
-  inline Reader asReader() const { return *this; }
-
-  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const { return asReader().toString(); }
-#endif  // !CAPNP_LITE
-
-  inline bool hasMasterInstanceName();
-  inline  ::capnp::Text::Builder getMasterInstanceName();
-  inline void setMasterInstanceName( ::capnp::Text::Reader value);
-  inline  ::capnp::Text::Builder initMasterInstanceName(unsigned int size);
-  inline void adoptMasterInstanceName(::capnp::Orphan< ::capnp::Text>&& value);
-  inline ::capnp::Orphan< ::capnp::Text> disownMasterInstanceName();
-
-  inline bool hasSlaveInstanceName();
-  inline  ::capnp::Text::Builder getSlaveInstanceName();
-  inline void setSlaveInstanceName( ::capnp::Text::Reader value);
-  inline  ::capnp::Text::Builder initSlaveInstanceName(unsigned int size);
-  inline void adoptSlaveInstanceName(::capnp::Orphan< ::capnp::Text>&& value);
-  inline ::capnp::Orphan< ::capnp::Text> disownSlaveInstanceName();
-
-  inline  ::uint32_t getMasterValueRef();
-  inline void setMasterValueRef( ::uint32_t value);
-
-  inline  ::uint32_t getSlaveValueRef();
-  inline void setSlaveValueRef( ::uint32_t value);
-
-  inline double getFactor();
-  inline void setFactor(double value);
-
-  inline double getOffset();
-  inline void setOffset(double value);
-
-private:
-  ::capnp::_::StructBuilder _builder;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  friend class ::capnp::Orphanage;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-};
-
-#if !CAPNP_LITE
-class ModeliBackend::ChannelLink::Pipeline {
-public:
-  typedef ChannelLink Pipelines;
-
-  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
-  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
-      : _typeless(kj::mv(typeless)) {}
-
-private:
-  ::capnp::AnyPointer::Pipeline _typeless;
-  friend class ::capnp::PipelineHook;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-};
-#endif  // !CAPNP_LITE
-
-class ModeliBackend::PlayParams::Reader {
-public:
-  typedef PlayParams Reads;
-
-  Reader() = default;
-  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
-
-  inline ::capnp::MessageSize totalSize() const {
-    return _reader.totalSize().asPublic();
-  }
-
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const {
-    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
-  }
-#endif  // !CAPNP_LITE
-
-private:
-  ::capnp::_::StructReader _reader;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::List;
-  friend class ::capnp::MessageBuilder;
-  friend class ::capnp::Orphanage;
-};
-
-class ModeliBackend::PlayParams::Builder {
-public:
-  typedef PlayParams Builds;
-
-  Builder() = delete;  // Deleted to discourage incorrect usage.
-                       // You can explicitly initialize to nullptr instead.
-  inline Builder(decltype(nullptr)) {}
-  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
-  inline operator Reader() const { return Reader(_builder.asReader()); }
-  inline Reader asReader() const { return *this; }
-
-  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const { return asReader().toString(); }
-#endif  // !CAPNP_LITE
-
-private:
-  ::capnp::_::StructBuilder _builder;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  friend class ::capnp::Orphanage;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-};
-
-#if !CAPNP_LITE
-class ModeliBackend::PlayParams::Pipeline {
-public:
-  typedef PlayParams Pipelines;
-
-  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
-  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
-      : _typeless(kj::mv(typeless)) {}
-
-private:
-  ::capnp::AnyPointer::Pipeline _typeless;
-  friend class ::capnp::PipelineHook;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-};
-#endif  // !CAPNP_LITE
-
-class ModeliBackend::PlayResults::Reader {
-public:
-  typedef PlayResults Reads;
-
-  Reader() = default;
-  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
-
-  inline ::capnp::MessageSize totalSize() const {
-    return _reader.totalSize().asPublic();
-  }
-
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const {
-    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
-  }
-#endif  // !CAPNP_LITE
-
-  inline  ::int16_t getResult() const;
-
-private:
-  ::capnp::_::StructReader _reader;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::List;
-  friend class ::capnp::MessageBuilder;
-  friend class ::capnp::Orphanage;
-};
-
-class ModeliBackend::PlayResults::Builder {
-public:
-  typedef PlayResults Builds;
-
-  Builder() = delete;  // Deleted to discourage incorrect usage.
-                       // You can explicitly initialize to nullptr instead.
-  inline Builder(decltype(nullptr)) {}
-  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
-  inline operator Reader() const { return Reader(_builder.asReader()); }
-  inline Reader asReader() const { return *this; }
-
-  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const { return asReader().toString(); }
-#endif  // !CAPNP_LITE
-
-  inline  ::int16_t getResult();
-  inline void setResult( ::int16_t value);
-
-private:
-  ::capnp::_::StructBuilder _builder;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  friend class ::capnp::Orphanage;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-};
-
-#if !CAPNP_LITE
-class ModeliBackend::PlayResults::Pipeline {
-public:
-  typedef PlayResults Pipelines;
-
-  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
-  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
-      : _typeless(kj::mv(typeless)) {}
-
-private:
-  ::capnp::AnyPointer::Pipeline _typeless;
-  friend class ::capnp::PipelineHook;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-};
-#endif  // !CAPNP_LITE
-
-class ModeliBackend::PlayFastParams::Reader {
-public:
-  typedef PlayFastParams Reads;
-
-  Reader() = default;
-  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
-
-  inline ::capnp::MessageSize totalSize() const {
-    return _reader.totalSize().asPublic();
-  }
-
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const {
-    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
-  }
-#endif  // !CAPNP_LITE
-
-  inline double getTimeToPlay() const;
-
-private:
-  ::capnp::_::StructReader _reader;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::List;
-  friend class ::capnp::MessageBuilder;
-  friend class ::capnp::Orphanage;
-};
-
-class ModeliBackend::PlayFastParams::Builder {
-public:
-  typedef PlayFastParams Builds;
-
-  Builder() = delete;  // Deleted to discourage incorrect usage.
-                       // You can explicitly initialize to nullptr instead.
-  inline Builder(decltype(nullptr)) {}
-  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
-  inline operator Reader() const { return Reader(_builder.asReader()); }
-  inline Reader asReader() const { return *this; }
-
-  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const { return asReader().toString(); }
-#endif  // !CAPNP_LITE
-
-  inline double getTimeToPlay();
-  inline void setTimeToPlay(double value);
-
-private:
-  ::capnp::_::StructBuilder _builder;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  friend class ::capnp::Orphanage;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-};
-
-#if !CAPNP_LITE
-class ModeliBackend::PlayFastParams::Pipeline {
-public:
-  typedef PlayFastParams Pipelines;
-
-  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
-  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
-      : _typeless(kj::mv(typeless)) {}
-
-private:
-  ::capnp::AnyPointer::Pipeline _typeless;
-  friend class ::capnp::PipelineHook;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-};
-#endif  // !CAPNP_LITE
-
-class ModeliBackend::PlayFastResults::Reader {
-public:
-  typedef PlayFastResults Reads;
-
-  Reader() = default;
-  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
-
-  inline ::capnp::MessageSize totalSize() const {
-    return _reader.totalSize().asPublic();
-  }
-
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const {
-    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
-  }
-#endif  // !CAPNP_LITE
-
-  inline  ::int16_t getResult() const;
-
-private:
-  ::capnp::_::StructReader _reader;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::List;
-  friend class ::capnp::MessageBuilder;
-  friend class ::capnp::Orphanage;
-};
-
-class ModeliBackend::PlayFastResults::Builder {
-public:
-  typedef PlayFastResults Builds;
-
-  Builder() = delete;  // Deleted to discourage incorrect usage.
-                       // You can explicitly initialize to nullptr instead.
-  inline Builder(decltype(nullptr)) {}
-  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
-  inline operator Reader() const { return Reader(_builder.asReader()); }
-  inline Reader asReader() const { return *this; }
-
-  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const { return asReader().toString(); }
-#endif  // !CAPNP_LITE
-
-  inline  ::int16_t getResult();
-  inline void setResult( ::int16_t value);
-
-private:
-  ::capnp::_::StructBuilder _builder;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  friend class ::capnp::Orphanage;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-};
-
-#if !CAPNP_LITE
-class ModeliBackend::PlayFastResults::Pipeline {
-public:
-  typedef PlayFastResults Pipelines;
-
-  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
-  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
-      : _typeless(kj::mv(typeless)) {}
-
-private:
-  ::capnp::AnyPointer::Pipeline _typeless;
-  friend class ::capnp::PipelineHook;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-};
-#endif  // !CAPNP_LITE
-
-class ModeliBackend::PauseParams::Reader {
-public:
-  typedef PauseParams Reads;
-
-  Reader() = default;
-  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
-
-  inline ::capnp::MessageSize totalSize() const {
-    return _reader.totalSize().asPublic();
-  }
-
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const {
-    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
-  }
-#endif  // !CAPNP_LITE
-
-private:
-  ::capnp::_::StructReader _reader;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::List;
-  friend class ::capnp::MessageBuilder;
-  friend class ::capnp::Orphanage;
-};
-
-class ModeliBackend::PauseParams::Builder {
-public:
-  typedef PauseParams Builds;
-
-  Builder() = delete;  // Deleted to discourage incorrect usage.
-                       // You can explicitly initialize to nullptr instead.
-  inline Builder(decltype(nullptr)) {}
-  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
-  inline operator Reader() const { return Reader(_builder.asReader()); }
-  inline Reader asReader() const { return *this; }
-
-  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const { return asReader().toString(); }
-#endif  // !CAPNP_LITE
-
-private:
-  ::capnp::_::StructBuilder _builder;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  friend class ::capnp::Orphanage;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-};
-
-#if !CAPNP_LITE
-class ModeliBackend::PauseParams::Pipeline {
-public:
-  typedef PauseParams Pipelines;
-
-  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
-  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
-      : _typeless(kj::mv(typeless)) {}
-
-private:
-  ::capnp::AnyPointer::Pipeline _typeless;
-  friend class ::capnp::PipelineHook;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-};
-#endif  // !CAPNP_LITE
-
-class ModeliBackend::PauseResults::Reader {
-public:
-  typedef PauseResults Reads;
-
-  Reader() = default;
-  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
-
-  inline ::capnp::MessageSize totalSize() const {
-    return _reader.totalSize().asPublic();
-  }
-
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const {
-    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
-  }
-#endif  // !CAPNP_LITE
-
-private:
-  ::capnp::_::StructReader _reader;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::List;
-  friend class ::capnp::MessageBuilder;
-  friend class ::capnp::Orphanage;
-};
-
-class ModeliBackend::PauseResults::Builder {
-public:
-  typedef PauseResults Builds;
-
-  Builder() = delete;  // Deleted to discourage incorrect usage.
-                       // You can explicitly initialize to nullptr instead.
-  inline Builder(decltype(nullptr)) {}
-  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
-  inline operator Reader() const { return Reader(_builder.asReader()); }
-  inline Reader asReader() const { return *this; }
-
-  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const { return asReader().toString(); }
-#endif  // !CAPNP_LITE
-
-private:
-  ::capnp::_::StructBuilder _builder;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  friend class ::capnp::Orphanage;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-};
-
-#if !CAPNP_LITE
-class ModeliBackend::PauseResults::Pipeline {
-public:
-  typedef PauseResults Pipelines;
-
-  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
-  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
-      : _typeless(kj::mv(typeless)) {}
-
-private:
-  ::capnp::AnyPointer::Pipeline _typeless;
-  friend class ::capnp::PipelineHook;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-};
-#endif  // !CAPNP_LITE
-
-class ModeliBackend::StopParams::Reader {
-public:
-  typedef StopParams Reads;
-
-  Reader() = default;
-  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
-
-  inline ::capnp::MessageSize totalSize() const {
-    return _reader.totalSize().asPublic();
-  }
-
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const {
-    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
-  }
-#endif  // !CAPNP_LITE
-
-private:
-  ::capnp::_::StructReader _reader;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::List;
-  friend class ::capnp::MessageBuilder;
-  friend class ::capnp::Orphanage;
-};
-
-class ModeliBackend::StopParams::Builder {
-public:
-  typedef StopParams Builds;
-
-  Builder() = delete;  // Deleted to discourage incorrect usage.
-                       // You can explicitly initialize to nullptr instead.
-  inline Builder(decltype(nullptr)) {}
-  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
-  inline operator Reader() const { return Reader(_builder.asReader()); }
-  inline Reader asReader() const { return *this; }
-
-  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const { return asReader().toString(); }
-#endif  // !CAPNP_LITE
-
-private:
-  ::capnp::_::StructBuilder _builder;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  friend class ::capnp::Orphanage;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-};
-
-#if !CAPNP_LITE
-class ModeliBackend::StopParams::Pipeline {
-public:
-  typedef StopParams Pipelines;
-
-  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
-  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
-      : _typeless(kj::mv(typeless)) {}
-
-private:
-  ::capnp::AnyPointer::Pipeline _typeless;
-  friend class ::capnp::PipelineHook;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-};
-#endif  // !CAPNP_LITE
-
-class ModeliBackend::StopResults::Reader {
-public:
-  typedef StopResults Reads;
-
-  Reader() = default;
-  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
-
-  inline ::capnp::MessageSize totalSize() const {
-    return _reader.totalSize().asPublic();
-  }
-
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const {
-    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
-  }
-#endif  // !CAPNP_LITE
-
-  inline  ::int16_t getResult() const;
-
-private:
-  ::capnp::_::StructReader _reader;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::List;
-  friend class ::capnp::MessageBuilder;
-  friend class ::capnp::Orphanage;
-};
-
-class ModeliBackend::StopResults::Builder {
-public:
-  typedef StopResults Builds;
-
-  Builder() = delete;  // Deleted to discourage incorrect usage.
-                       // You can explicitly initialize to nullptr instead.
-  inline Builder(decltype(nullptr)) {}
-  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
-  inline operator Reader() const { return Reader(_builder.asReader()); }
-  inline Reader asReader() const { return *this; }
-
-  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const { return asReader().toString(); }
-#endif  // !CAPNP_LITE
-
-  inline  ::int16_t getResult();
-  inline void setResult( ::int16_t value);
-
-private:
-  ::capnp::_::StructBuilder _builder;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  friend class ::capnp::Orphanage;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-};
-
-#if !CAPNP_LITE
-class ModeliBackend::StopResults::Pipeline {
-public:
-  typedef StopResults Pipelines;
-
-  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
-  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
-      : _typeless(kj::mv(typeless)) {}
-
-private:
-  ::capnp::AnyPointer::Pipeline _typeless;
-  friend class ::capnp::PipelineHook;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-};
-#endif  // !CAPNP_LITE
-
-class ModeliBackend::AddFmuParams::Reader {
-public:
-  typedef AddFmuParams Reads;
-
-  Reader() = default;
-  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
-
-  inline ::capnp::MessageSize totalSize() const {
-    return _reader.totalSize().asPublic();
-  }
-
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const {
-    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
-  }
-#endif  // !CAPNP_LITE
-
-  inline bool hasInstanceName() const;
-  inline  ::capnp::Text::Reader getInstanceName() const;
-
-  inline bool hasFmuFile() const;
-  inline  ::capnp::Data::Reader getFmuFile() const;
-
-private:
-  ::capnp::_::StructReader _reader;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::List;
-  friend class ::capnp::MessageBuilder;
-  friend class ::capnp::Orphanage;
-};
-
-class ModeliBackend::AddFmuParams::Builder {
-public:
-  typedef AddFmuParams Builds;
-
-  Builder() = delete;  // Deleted to discourage incorrect usage.
-                       // You can explicitly initialize to nullptr instead.
-  inline Builder(decltype(nullptr)) {}
-  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
-  inline operator Reader() const { return Reader(_builder.asReader()); }
-  inline Reader asReader() const { return *this; }
-
-  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const { return asReader().toString(); }
-#endif  // !CAPNP_LITE
-
-  inline bool hasInstanceName();
-  inline  ::capnp::Text::Builder getInstanceName();
-  inline void setInstanceName( ::capnp::Text::Reader value);
-  inline  ::capnp::Text::Builder initInstanceName(unsigned int size);
-  inline void adoptInstanceName(::capnp::Orphan< ::capnp::Text>&& value);
-  inline ::capnp::Orphan< ::capnp::Text> disownInstanceName();
-
-  inline bool hasFmuFile();
-  inline  ::capnp::Data::Builder getFmuFile();
-  inline void setFmuFile( ::capnp::Data::Reader value);
-  inline  ::capnp::Data::Builder initFmuFile(unsigned int size);
-  inline void adoptFmuFile(::capnp::Orphan< ::capnp::Data>&& value);
-  inline ::capnp::Orphan< ::capnp::Data> disownFmuFile();
-
-private:
-  ::capnp::_::StructBuilder _builder;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  friend class ::capnp::Orphanage;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-};
-
-#if !CAPNP_LITE
-class ModeliBackend::AddFmuParams::Pipeline {
-public:
-  typedef AddFmuParams Pipelines;
-
-  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
-  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
-      : _typeless(kj::mv(typeless)) {}
-
-private:
-  ::capnp::AnyPointer::Pipeline _typeless;
-  friend class ::capnp::PipelineHook;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-};
-#endif  // !CAPNP_LITE
-
-class ModeliBackend::AddFmuResults::Reader {
-public:
-  typedef AddFmuResults Reads;
-
-  Reader() = default;
-  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
-
-  inline ::capnp::MessageSize totalSize() const {
-    return _reader.totalSize().asPublic();
-  }
-
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const {
-    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
-  }
-#endif  // !CAPNP_LITE
-
-  inline bool getResult() const;
-
-private:
-  ::capnp::_::StructReader _reader;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::List;
-  friend class ::capnp::MessageBuilder;
-  friend class ::capnp::Orphanage;
-};
-
-class ModeliBackend::AddFmuResults::Builder {
-public:
-  typedef AddFmuResults Builds;
-
-  Builder() = delete;  // Deleted to discourage incorrect usage.
-                       // You can explicitly initialize to nullptr instead.
-  inline Builder(decltype(nullptr)) {}
-  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
-  inline operator Reader() const { return Reader(_builder.asReader()); }
-  inline Reader asReader() const { return *this; }
-
-  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const { return asReader().toString(); }
-#endif  // !CAPNP_LITE
-
-  inline bool getResult();
-  inline void setResult(bool value);
-
-private:
-  ::capnp::_::StructBuilder _builder;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  friend class ::capnp::Orphanage;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-};
-
-#if !CAPNP_LITE
-class ModeliBackend::AddFmuResults::Pipeline {
-public:
-  typedef AddFmuResults Pipelines;
-
-  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
-  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
-      : _typeless(kj::mv(typeless)) {}
-
-private:
-  ::capnp::AnyPointer::Pipeline _typeless;
-  friend class ::capnp::PipelineHook;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-};
-#endif  // !CAPNP_LITE
-
-class ModeliBackend::RemoveFmuParams::Reader {
-public:
-  typedef RemoveFmuParams Reads;
-
-  Reader() = default;
-  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
-
-  inline ::capnp::MessageSize totalSize() const {
-    return _reader.totalSize().asPublic();
-  }
-
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const {
-    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
-  }
-#endif  // !CAPNP_LITE
-
-  inline bool hasInstanceName() const;
-  inline  ::capnp::Text::Reader getInstanceName() const;
-
-private:
-  ::capnp::_::StructReader _reader;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::List;
-  friend class ::capnp::MessageBuilder;
-  friend class ::capnp::Orphanage;
-};
-
-class ModeliBackend::RemoveFmuParams::Builder {
-public:
-  typedef RemoveFmuParams Builds;
-
-  Builder() = delete;  // Deleted to discourage incorrect usage.
-                       // You can explicitly initialize to nullptr instead.
-  inline Builder(decltype(nullptr)) {}
-  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
-  inline operator Reader() const { return Reader(_builder.asReader()); }
-  inline Reader asReader() const { return *this; }
-
-  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const { return asReader().toString(); }
-#endif  // !CAPNP_LITE
-
-  inline bool hasInstanceName();
-  inline  ::capnp::Text::Builder getInstanceName();
-  inline void setInstanceName( ::capnp::Text::Reader value);
-  inline  ::capnp::Text::Builder initInstanceName(unsigned int size);
-  inline void adoptInstanceName(::capnp::Orphan< ::capnp::Text>&& value);
-  inline ::capnp::Orphan< ::capnp::Text> disownInstanceName();
-
-private:
-  ::capnp::_::StructBuilder _builder;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  friend class ::capnp::Orphanage;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-};
-
-#if !CAPNP_LITE
-class ModeliBackend::RemoveFmuParams::Pipeline {
-public:
-  typedef RemoveFmuParams Pipelines;
-
-  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
-  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
-      : _typeless(kj::mv(typeless)) {}
-
-private:
-  ::capnp::AnyPointer::Pipeline _typeless;
-  friend class ::capnp::PipelineHook;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-};
-#endif  // !CAPNP_LITE
-
-class ModeliBackend::RemoveFmuResults::Reader {
-public:
-  typedef RemoveFmuResults Reads;
-
-  Reader() = default;
-  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
-
-  inline ::capnp::MessageSize totalSize() const {
-    return _reader.totalSize().asPublic();
-  }
-
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const {
-    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
-  }
-#endif  // !CAPNP_LITE
-
-  inline bool getResult() const;
-
-private:
-  ::capnp::_::StructReader _reader;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::List;
-  friend class ::capnp::MessageBuilder;
-  friend class ::capnp::Orphanage;
-};
-
-class ModeliBackend::RemoveFmuResults::Builder {
-public:
-  typedef RemoveFmuResults Builds;
-
-  Builder() = delete;  // Deleted to discourage incorrect usage.
-                       // You can explicitly initialize to nullptr instead.
-  inline Builder(decltype(nullptr)) {}
-  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
-  inline operator Reader() const { return Reader(_builder.asReader()); }
-  inline Reader asReader() const { return *this; }
-
-  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const { return asReader().toString(); }
-#endif  // !CAPNP_LITE
-
-  inline bool getResult();
-  inline void setResult(bool value);
-
-private:
-  ::capnp::_::StructBuilder _builder;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  friend class ::capnp::Orphanage;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-};
-
-#if !CAPNP_LITE
-class ModeliBackend::RemoveFmuResults::Pipeline {
-public:
-  typedef RemoveFmuResults Pipelines;
-
-  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
-  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
-      : _typeless(kj::mv(typeless)) {}
-
-private:
-  ::capnp::AnyPointer::Pipeline _typeless;
-  friend class ::capnp::PipelineHook;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-};
-#endif  // !CAPNP_LITE
-
-class ModeliBackend::AddChannelLinkParams::Reader {
-public:
-  typedef AddChannelLinkParams Reads;
-
-  Reader() = default;
-  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
-
-  inline ::capnp::MessageSize totalSize() const {
-    return _reader.totalSize().asPublic();
-  }
-
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const {
-    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
-  }
-#endif  // !CAPNP_LITE
-
-  inline bool hasChannelLink() const;
-  inline  ::ModeliBackend::ChannelLink::Reader getChannelLink() const;
-
-private:
-  ::capnp::_::StructReader _reader;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::List;
-  friend class ::capnp::MessageBuilder;
-  friend class ::capnp::Orphanage;
-};
-
-class ModeliBackend::AddChannelLinkParams::Builder {
-public:
-  typedef AddChannelLinkParams Builds;
-
-  Builder() = delete;  // Deleted to discourage incorrect usage.
-                       // You can explicitly initialize to nullptr instead.
-  inline Builder(decltype(nullptr)) {}
-  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
-  inline operator Reader() const { return Reader(_builder.asReader()); }
-  inline Reader asReader() const { return *this; }
-
-  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const { return asReader().toString(); }
-#endif  // !CAPNP_LITE
-
-  inline bool hasChannelLink();
-  inline  ::ModeliBackend::ChannelLink::Builder getChannelLink();
-  inline void setChannelLink( ::ModeliBackend::ChannelLink::Reader value);
-  inline  ::ModeliBackend::ChannelLink::Builder initChannelLink();
-  inline void adoptChannelLink(::capnp::Orphan< ::ModeliBackend::ChannelLink>&& value);
-  inline ::capnp::Orphan< ::ModeliBackend::ChannelLink> disownChannelLink();
-
-private:
-  ::capnp::_::StructBuilder _builder;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  friend class ::capnp::Orphanage;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-};
-
-#if !CAPNP_LITE
-class ModeliBackend::AddChannelLinkParams::Pipeline {
-public:
-  typedef AddChannelLinkParams Pipelines;
-
-  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
-  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
-      : _typeless(kj::mv(typeless)) {}
-
-  inline  ::ModeliBackend::ChannelLink::Pipeline getChannelLink();
-private:
-  ::capnp::AnyPointer::Pipeline _typeless;
-  friend class ::capnp::PipelineHook;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-};
-#endif  // !CAPNP_LITE
-
-class ModeliBackend::AddChannelLinkResults::Reader {
-public:
-  typedef AddChannelLinkResults Reads;
-
-  Reader() = default;
-  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
-
-  inline ::capnp::MessageSize totalSize() const {
-    return _reader.totalSize().asPublic();
-  }
-
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const {
-    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
-  }
-#endif  // !CAPNP_LITE
-
-  inline bool getResult() const;
-
-private:
-  ::capnp::_::StructReader _reader;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::List;
-  friend class ::capnp::MessageBuilder;
-  friend class ::capnp::Orphanage;
-};
-
-class ModeliBackend::AddChannelLinkResults::Builder {
-public:
-  typedef AddChannelLinkResults Builds;
-
-  Builder() = delete;  // Deleted to discourage incorrect usage.
-                       // You can explicitly initialize to nullptr instead.
-  inline Builder(decltype(nullptr)) {}
-  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
-  inline operator Reader() const { return Reader(_builder.asReader()); }
-  inline Reader asReader() const { return *this; }
-
-  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const { return asReader().toString(); }
-#endif  // !CAPNP_LITE
-
-  inline bool getResult();
-  inline void setResult(bool value);
-
-private:
-  ::capnp::_::StructBuilder _builder;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  friend class ::capnp::Orphanage;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-};
-
-#if !CAPNP_LITE
-class ModeliBackend::AddChannelLinkResults::Pipeline {
-public:
-  typedef AddChannelLinkResults Pipelines;
-
-  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
-  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
-      : _typeless(kj::mv(typeless)) {}
-
-private:
-  ::capnp::AnyPointer::Pipeline _typeless;
-  friend class ::capnp::PipelineHook;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-};
-#endif  // !CAPNP_LITE
-
-class ModeliBackend::RemoveChannelLinkParams::Reader {
-public:
-  typedef RemoveChannelLinkParams Reads;
-
-  Reader() = default;
-  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
-
-  inline ::capnp::MessageSize totalSize() const {
-    return _reader.totalSize().asPublic();
-  }
-
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const {
-    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
-  }
-#endif  // !CAPNP_LITE
-
-  inline bool hasChannelLink() const;
-  inline  ::ModeliBackend::ChannelLink::Reader getChannelLink() const;
-
-private:
-  ::capnp::_::StructReader _reader;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::List;
-  friend class ::capnp::MessageBuilder;
-  friend class ::capnp::Orphanage;
-};
-
-class ModeliBackend::RemoveChannelLinkParams::Builder {
-public:
-  typedef RemoveChannelLinkParams Builds;
-
-  Builder() = delete;  // Deleted to discourage incorrect usage.
-                       // You can explicitly initialize to nullptr instead.
-  inline Builder(decltype(nullptr)) {}
-  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
-  inline operator Reader() const { return Reader(_builder.asReader()); }
-  inline Reader asReader() const { return *this; }
-
-  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const { return asReader().toString(); }
-#endif  // !CAPNP_LITE
-
-  inline bool hasChannelLink();
-  inline  ::ModeliBackend::ChannelLink::Builder getChannelLink();
-  inline void setChannelLink( ::ModeliBackend::ChannelLink::Reader value);
-  inline  ::ModeliBackend::ChannelLink::Builder initChannelLink();
-  inline void adoptChannelLink(::capnp::Orphan< ::ModeliBackend::ChannelLink>&& value);
-  inline ::capnp::Orphan< ::ModeliBackend::ChannelLink> disownChannelLink();
-
-private:
-  ::capnp::_::StructBuilder _builder;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  friend class ::capnp::Orphanage;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-};
-
-#if !CAPNP_LITE
-class ModeliBackend::RemoveChannelLinkParams::Pipeline {
-public:
-  typedef RemoveChannelLinkParams Pipelines;
-
-  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
-  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
-      : _typeless(kj::mv(typeless)) {}
-
-  inline  ::ModeliBackend::ChannelLink::Pipeline getChannelLink();
-private:
-  ::capnp::AnyPointer::Pipeline _typeless;
-  friend class ::capnp::PipelineHook;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-};
-#endif  // !CAPNP_LITE
-
-class ModeliBackend::RemoveChannelLinkResults::Reader {
-public:
-  typedef RemoveChannelLinkResults Reads;
-
-  Reader() = default;
-  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
-
-  inline ::capnp::MessageSize totalSize() const {
-    return _reader.totalSize().asPublic();
-  }
-
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const {
-    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
-  }
-#endif  // !CAPNP_LITE
-
-  inline bool getResult() const;
-
-private:
-  ::capnp::_::StructReader _reader;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::List;
-  friend class ::capnp::MessageBuilder;
-  friend class ::capnp::Orphanage;
-};
-
-class ModeliBackend::RemoveChannelLinkResults::Builder {
-public:
-  typedef RemoveChannelLinkResults Builds;
-
-  Builder() = delete;  // Deleted to discourage incorrect usage.
-                       // You can explicitly initialize to nullptr instead.
-  inline Builder(decltype(nullptr)) {}
-  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
-  inline operator Reader() const { return Reader(_builder.asReader()); }
-  inline Reader asReader() const { return *this; }
-
-  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const { return asReader().toString(); }
-#endif  // !CAPNP_LITE
-
-  inline bool getResult();
-  inline void setResult(bool value);
-
-private:
-  ::capnp::_::StructBuilder _builder;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  friend class ::capnp::Orphanage;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-};
-
-#if !CAPNP_LITE
-class ModeliBackend::RemoveChannelLinkResults::Pipeline {
-public:
-  typedef RemoveChannelLinkResults Pipelines;
-
-  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
-  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
-      : _typeless(kj::mv(typeless)) {}
-
-private:
-  ::capnp::AnyPointer::Pipeline _typeless;
-  friend class ::capnp::PipelineHook;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-};
-#endif  // !CAPNP_LITE
-
-class ModeliBackend::SetValuesParams::Reader {
-public:
-  typedef SetValuesParams Reads;
-
-  Reader() = default;
-  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
-
-  inline ::capnp::MessageSize totalSize() const {
-    return _reader.totalSize().asPublic();
-  }
-
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const {
-    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
-  }
-#endif  // !CAPNP_LITE
-
-  inline bool hasValues() const;
-  inline  ::Values::Reader getValues() const;
-
-private:
-  ::capnp::_::StructReader _reader;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::List;
-  friend class ::capnp::MessageBuilder;
-  friend class ::capnp::Orphanage;
-};
-
-class ModeliBackend::SetValuesParams::Builder {
-public:
-  typedef SetValuesParams Builds;
-
-  Builder() = delete;  // Deleted to discourage incorrect usage.
-                       // You can explicitly initialize to nullptr instead.
-  inline Builder(decltype(nullptr)) {}
-  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
-  inline operator Reader() const { return Reader(_builder.asReader()); }
-  inline Reader asReader() const { return *this; }
-
-  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const { return asReader().toString(); }
-#endif  // !CAPNP_LITE
-
-  inline bool hasValues();
-  inline  ::Values::Builder getValues();
-  inline void setValues( ::Values::Reader value);
-  inline  ::Values::Builder initValues();
-  inline void adoptValues(::capnp::Orphan< ::Values>&& value);
-  inline ::capnp::Orphan< ::Values> disownValues();
-
-private:
-  ::capnp::_::StructBuilder _builder;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  friend class ::capnp::Orphanage;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-};
-
-#if !CAPNP_LITE
-class ModeliBackend::SetValuesParams::Pipeline {
-public:
-  typedef SetValuesParams Pipelines;
-
-  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
-  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
-      : _typeless(kj::mv(typeless)) {}
-
-  inline  ::Values::Pipeline getValues();
-private:
-  ::capnp::AnyPointer::Pipeline _typeless;
-  friend class ::capnp::PipelineHook;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-};
-#endif  // !CAPNP_LITE
-
-class ModeliBackend::SetValuesResults::Reader {
-public:
-  typedef SetValuesResults Reads;
-
-  Reader() = default;
-  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
-
-  inline ::capnp::MessageSize totalSize() const {
-    return _reader.totalSize().asPublic();
-  }
-
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const {
-    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
-  }
-#endif  // !CAPNP_LITE
-
-  inline  ::int16_t getResult() const;
-
-private:
-  ::capnp::_::StructReader _reader;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::List;
-  friend class ::capnp::MessageBuilder;
-  friend class ::capnp::Orphanage;
-};
-
-class ModeliBackend::SetValuesResults::Builder {
-public:
-  typedef SetValuesResults Builds;
-
-  Builder() = delete;  // Deleted to discourage incorrect usage.
-                       // You can explicitly initialize to nullptr instead.
-  inline Builder(decltype(nullptr)) {}
-  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
-  inline operator Reader() const { return Reader(_builder.asReader()); }
-  inline Reader asReader() const { return *this; }
-
-  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const { return asReader().toString(); }
-#endif  // !CAPNP_LITE
-
-  inline  ::int16_t getResult();
-  inline void setResult( ::int16_t value);
-
-private:
-  ::capnp::_::StructBuilder _builder;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  friend class ::capnp::Orphanage;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-};
-
-#if !CAPNP_LITE
-class ModeliBackend::SetValuesResults::Pipeline {
-public:
-  typedef SetValuesResults Pipelines;
-
-  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
-  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
-      : _typeless(kj::mv(typeless)) {}
-
-private:
-  ::capnp::AnyPointer::Pipeline _typeless;
-  friend class ::capnp::PipelineHook;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-};
-#endif  // !CAPNP_LITE
-
-class ModeliBackend::RegisterFrontendParams::Reader {
-public:
-  typedef RegisterFrontendParams Reads;
-
-  Reader() = default;
-  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
-
-  inline ::capnp::MessageSize totalSize() const {
-    return _reader.totalSize().asPublic();
-  }
-
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const {
-    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
-  }
-#endif  // !CAPNP_LITE
-
-  inline bool hasFrontend() const;
-#if !CAPNP_LITE
-  inline  ::ModeliFrontend::Client getFrontend() const;
-#endif  // !CAPNP_LITE
-
-private:
-  ::capnp::_::StructReader _reader;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::List;
-  friend class ::capnp::MessageBuilder;
-  friend class ::capnp::Orphanage;
-};
-
-class ModeliBackend::RegisterFrontendParams::Builder {
-public:
-  typedef RegisterFrontendParams Builds;
-
-  Builder() = delete;  // Deleted to discourage incorrect usage.
-                       // You can explicitly initialize to nullptr instead.
-  inline Builder(decltype(nullptr)) {}
-  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
-  inline operator Reader() const { return Reader(_builder.asReader()); }
-  inline Reader asReader() const { return *this; }
-
-  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const { return asReader().toString(); }
-#endif  // !CAPNP_LITE
-
-  inline bool hasFrontend();
-#if !CAPNP_LITE
-  inline  ::ModeliFrontend::Client getFrontend();
-  inline void setFrontend( ::ModeliFrontend::Client&& value);
-  inline void setFrontend( ::ModeliFrontend::Client& value);
-  inline void adoptFrontend(::capnp::Orphan< ::ModeliFrontend>&& value);
-  inline ::capnp::Orphan< ::ModeliFrontend> disownFrontend();
-#endif  // !CAPNP_LITE
-
-private:
-  ::capnp::_::StructBuilder _builder;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  friend class ::capnp::Orphanage;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-};
-
-#if !CAPNP_LITE
-class ModeliBackend::RegisterFrontendParams::Pipeline {
-public:
-  typedef RegisterFrontendParams Pipelines;
-
-  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
-  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
-      : _typeless(kj::mv(typeless)) {}
-
-  inline  ::ModeliFrontend::Client getFrontend();
-private:
-  ::capnp::AnyPointer::Pipeline _typeless;
-  friend class ::capnp::PipelineHook;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-};
-#endif  // !CAPNP_LITE
-
-class ModeliBackend::RegisterFrontendResults::Reader {
-public:
-  typedef RegisterFrontendResults Reads;
-
-  Reader() = default;
-  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
-
-  inline ::capnp::MessageSize totalSize() const {
-    return _reader.totalSize().asPublic();
-  }
-
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const {
-    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
-  }
-#endif  // !CAPNP_LITE
-
-private:
-  ::capnp::_::StructReader _reader;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::List;
-  friend class ::capnp::MessageBuilder;
-  friend class ::capnp::Orphanage;
-};
-
-class ModeliBackend::RegisterFrontendResults::Builder {
-public:
-  typedef RegisterFrontendResults Builds;
-
-  Builder() = delete;  // Deleted to discourage incorrect usage.
-                       // You can explicitly initialize to nullptr instead.
-  inline Builder(decltype(nullptr)) {}
-  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
-  inline operator Reader() const { return Reader(_builder.asReader()); }
-  inline Reader asReader() const { return *this; }
-
-  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const { return asReader().toString(); }
-#endif  // !CAPNP_LITE
-
-private:
-  ::capnp::_::StructBuilder _builder;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  friend class ::capnp::Orphanage;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-};
-
-#if !CAPNP_LITE
-class ModeliBackend::RegisterFrontendResults::Pipeline {
-public:
-  typedef RegisterFrontendResults Pipelines;
-
-  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
-  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
-      : _typeless(kj::mv(typeless)) {}
-
-private:
-  ::capnp::AnyPointer::Pipeline _typeless;
-  friend class ::capnp::PipelineHook;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-};
-#endif  // !CAPNP_LITE
-
-class ModeliBackend::PingParams::Reader {
-public:
-  typedef PingParams Reads;
-
-  Reader() = default;
-  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
-
-  inline ::capnp::MessageSize totalSize() const {
-    return _reader.totalSize().asPublic();
-  }
-
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const {
-    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
-  }
-#endif  // !CAPNP_LITE
-
-private:
-  ::capnp::_::StructReader _reader;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::List;
-  friend class ::capnp::MessageBuilder;
-  friend class ::capnp::Orphanage;
-};
-
-class ModeliBackend::PingParams::Builder {
-public:
-  typedef PingParams Builds;
-
-  Builder() = delete;  // Deleted to discourage incorrect usage.
-                       // You can explicitly initialize to nullptr instead.
-  inline Builder(decltype(nullptr)) {}
-  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
-  inline operator Reader() const { return Reader(_builder.asReader()); }
-  inline Reader asReader() const { return *this; }
-
-  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const { return asReader().toString(); }
-#endif  // !CAPNP_LITE
-
-private:
-  ::capnp::_::StructBuilder _builder;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  friend class ::capnp::Orphanage;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-};
-
-#if !CAPNP_LITE
-class ModeliBackend::PingParams::Pipeline {
-public:
-  typedef PingParams Pipelines;
-
-  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
-  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
-      : _typeless(kj::mv(typeless)) {}
-
-private:
-  ::capnp::AnyPointer::Pipeline _typeless;
-  friend class ::capnp::PipelineHook;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-};
-#endif  // !CAPNP_LITE
-
-class ModeliBackend::PingResults::Reader {
-public:
-  typedef PingResults Reads;
-
-  Reader() = default;
-  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
-
-  inline ::capnp::MessageSize totalSize() const {
-    return _reader.totalSize().asPublic();
-  }
-
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const {
-    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
-  }
-#endif  // !CAPNP_LITE
-
-private:
-  ::capnp::_::StructReader _reader;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::List;
-  friend class ::capnp::MessageBuilder;
-  friend class ::capnp::Orphanage;
-};
-
-class ModeliBackend::PingResults::Builder {
-public:
-  typedef PingResults Builds;
-
-  Builder() = delete;  // Deleted to discourage incorrect usage.
-                       // You can explicitly initialize to nullptr instead.
-  inline Builder(decltype(nullptr)) {}
-  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
-  inline operator Reader() const { return Reader(_builder.asReader()); }
-  inline Reader asReader() const { return *this; }
-
-  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const { return asReader().toString(); }
-#endif  // !CAPNP_LITE
-
-private:
-  ::capnp::_::StructBuilder _builder;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  friend class ::capnp::Orphanage;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-};
-
-#if !CAPNP_LITE
-class ModeliBackend::PingResults::Pipeline {
-public:
-  typedef PingResults Pipelines;
-
-  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
-  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
-      : _typeless(kj::mv(typeless)) {}
-
-private:
-  ::capnp::AnyPointer::Pipeline _typeless;
-  friend class ::capnp::PipelineHook;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-};
-#endif  // !CAPNP_LITE
-
-#if !CAPNP_LITE
-class ModeliFrontend::Client
-    : public virtual ::capnp::Capability::Client {
-public:
-  typedef ModeliFrontend Calls;
-  typedef ModeliFrontend Reads;
-
-  Client(decltype(nullptr));
-  explicit Client(::kj::Own< ::capnp::ClientHook>&& hook);
-  template <typename _t, typename = ::kj::EnableIf< ::kj::canConvert<_t*, Server*>()>>
-  Client(::kj::Own<_t>&& server);
-  template <typename _t, typename = ::kj::EnableIf< ::kj::canConvert<_t*, Client*>()>>
-  Client(::kj::Promise<_t>&& promise);
-  Client(::kj::Exception&& exception);
-  Client(Client&) = default;
-  Client(Client&&) = default;
-  Client& operator=(Client& other);
-  Client& operator=(Client&& other);
-
-  ::capnp::Request< ::ModeliFrontend::NewValuesParams,  ::ModeliFrontend::NewValuesResults> newValuesRequest(
-      ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr);
-  ::capnp::Request< ::ModeliFrontend::LogParams,  ::ModeliFrontend::LogResults> logRequest(
-      ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr);
-
-protected:
-  Client() = default;
-};
-
-class ModeliFrontend::Server
-    : public virtual ::capnp::Capability::Server {
-public:
-  typedef ModeliFrontend Serves;
-
-  ::kj::Promise<void> dispatchCall(uint64_t interfaceId, uint16_t methodId,
-      ::capnp::CallContext< ::capnp::AnyPointer, ::capnp::AnyPointer> context)
-      override;
-
-protected:
-  typedef  ::ModeliFrontend::NewValuesParams NewValuesParams;
-  typedef  ::ModeliFrontend::NewValuesResults NewValuesResults;
-  typedef ::capnp::CallContext<NewValuesParams, NewValuesResults> NewValuesContext;
-  virtual ::kj::Promise<void> newValues(NewValuesContext context);
-  typedef  ::ModeliFrontend::LogParams LogParams;
-  typedef  ::ModeliFrontend::LogResults LogResults;
-  typedef ::capnp::CallContext<LogParams, LogResults> LogContext;
-  virtual ::kj::Promise<void> log(LogContext context);
-
-  inline  ::ModeliFrontend::Client thisCap() {
-    return ::capnp::Capability::Server::thisCap()
-        .template castAs< ::ModeliFrontend>();
-  }
-
-  ::kj::Promise<void> dispatchCallInternal(uint16_t methodId,
-      ::capnp::CallContext< ::capnp::AnyPointer, ::capnp::AnyPointer> context);
-};
-#endif  // !CAPNP_LITE
-
-class ModeliFrontend::NewValuesParams::Reader {
-public:
-  typedef NewValuesParams Reads;
-
-  Reader() = default;
-  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
-
-  inline ::capnp::MessageSize totalSize() const {
-    return _reader.totalSize().asPublic();
-  }
-
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const {
-    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
-  }
-#endif  // !CAPNP_LITE
-
-  inline double getTimestamp() const;
-
-  inline bool hasValues() const;
-  inline  ::Values::Reader getValues() const;
-
-private:
-  ::capnp::_::StructReader _reader;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::List;
-  friend class ::capnp::MessageBuilder;
-  friend class ::capnp::Orphanage;
-};
-
-class ModeliFrontend::NewValuesParams::Builder {
-public:
-  typedef NewValuesParams Builds;
-
-  Builder() = delete;  // Deleted to discourage incorrect usage.
-                       // You can explicitly initialize to nullptr instead.
-  inline Builder(decltype(nullptr)) {}
-  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
-  inline operator Reader() const { return Reader(_builder.asReader()); }
-  inline Reader asReader() const { return *this; }
-
-  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const { return asReader().toString(); }
-#endif  // !CAPNP_LITE
-
-  inline double getTimestamp();
-  inline void setTimestamp(double value);
-
-  inline bool hasValues();
-  inline  ::Values::Builder getValues();
-  inline void setValues( ::Values::Reader value);
-  inline  ::Values::Builder initValues();
-  inline void adoptValues(::capnp::Orphan< ::Values>&& value);
-  inline ::capnp::Orphan< ::Values> disownValues();
-
-private:
-  ::capnp::_::StructBuilder _builder;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  friend class ::capnp::Orphanage;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-};
-
-#if !CAPNP_LITE
-class ModeliFrontend::NewValuesParams::Pipeline {
-public:
-  typedef NewValuesParams Pipelines;
-
-  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
-  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
-      : _typeless(kj::mv(typeless)) {}
-
-  inline  ::Values::Pipeline getValues();
-private:
-  ::capnp::AnyPointer::Pipeline _typeless;
-  friend class ::capnp::PipelineHook;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-};
-#endif  // !CAPNP_LITE
-
-class ModeliFrontend::NewValuesResults::Reader {
-public:
-  typedef NewValuesResults Reads;
-
-  Reader() = default;
-  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
-
-  inline ::capnp::MessageSize totalSize() const {
-    return _reader.totalSize().asPublic();
-  }
-
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const {
-    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
-  }
-#endif  // !CAPNP_LITE
-
-private:
-  ::capnp::_::StructReader _reader;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::List;
-  friend class ::capnp::MessageBuilder;
-  friend class ::capnp::Orphanage;
-};
-
-class ModeliFrontend::NewValuesResults::Builder {
-public:
-  typedef NewValuesResults Builds;
-
-  Builder() = delete;  // Deleted to discourage incorrect usage.
-                       // You can explicitly initialize to nullptr instead.
-  inline Builder(decltype(nullptr)) {}
-  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
-  inline operator Reader() const { return Reader(_builder.asReader()); }
-  inline Reader asReader() const { return *this; }
-
-  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const { return asReader().toString(); }
-#endif  // !CAPNP_LITE
-
-private:
-  ::capnp::_::StructBuilder _builder;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  friend class ::capnp::Orphanage;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-};
-
-#if !CAPNP_LITE
-class ModeliFrontend::NewValuesResults::Pipeline {
-public:
-  typedef NewValuesResults Pipelines;
-
-  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
-  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
-      : _typeless(kj::mv(typeless)) {}
-
-private:
-  ::capnp::AnyPointer::Pipeline _typeless;
-  friend class ::capnp::PipelineHook;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-};
-#endif  // !CAPNP_LITE
-
-class ModeliFrontend::LogParams::Reader {
-public:
-  typedef LogParams Reads;
-
-  Reader() = default;
-  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
-
-  inline ::capnp::MessageSize totalSize() const {
-    return _reader.totalSize().asPublic();
-  }
-
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const {
-    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
-  }
-#endif  // !CAPNP_LITE
-
-  inline bool hasInstanceName() const;
-  inline  ::capnp::Text::Reader getInstanceName() const;
-
-  inline  ::int16_t getStatus() const;
-
-  inline bool hasMessage() const;
-  inline  ::capnp::Text::Reader getMessage() const;
-
-private:
-  ::capnp::_::StructReader _reader;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::List;
-  friend class ::capnp::MessageBuilder;
-  friend class ::capnp::Orphanage;
-};
-
-class ModeliFrontend::LogParams::Builder {
-public:
-  typedef LogParams Builds;
-
-  Builder() = delete;  // Deleted to discourage incorrect usage.
-                       // You can explicitly initialize to nullptr instead.
-  inline Builder(decltype(nullptr)) {}
-  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
-  inline operator Reader() const { return Reader(_builder.asReader()); }
-  inline Reader asReader() const { return *this; }
-
-  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const { return asReader().toString(); }
-#endif  // !CAPNP_LITE
-
-  inline bool hasInstanceName();
-  inline  ::capnp::Text::Builder getInstanceName();
-  inline void setInstanceName( ::capnp::Text::Reader value);
-  inline  ::capnp::Text::Builder initInstanceName(unsigned int size);
-  inline void adoptInstanceName(::capnp::Orphan< ::capnp::Text>&& value);
-  inline ::capnp::Orphan< ::capnp::Text> disownInstanceName();
-
-  inline  ::int16_t getStatus();
-  inline void setStatus( ::int16_t value);
-
-  inline bool hasMessage();
-  inline  ::capnp::Text::Builder getMessage();
-  inline void setMessage( ::capnp::Text::Reader value);
-  inline  ::capnp::Text::Builder initMessage(unsigned int size);
-  inline void adoptMessage(::capnp::Orphan< ::capnp::Text>&& value);
-  inline ::capnp::Orphan< ::capnp::Text> disownMessage();
-
-private:
-  ::capnp::_::StructBuilder _builder;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  friend class ::capnp::Orphanage;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-};
-
-#if !CAPNP_LITE
-class ModeliFrontend::LogParams::Pipeline {
-public:
-  typedef LogParams Pipelines;
-
-  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
-  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
-      : _typeless(kj::mv(typeless)) {}
-
-private:
-  ::capnp::AnyPointer::Pipeline _typeless;
-  friend class ::capnp::PipelineHook;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-};
-#endif  // !CAPNP_LITE
-
-class ModeliFrontend::LogResults::Reader {
-public:
-  typedef LogResults Reads;
-
-  Reader() = default;
-  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
-
-  inline ::capnp::MessageSize totalSize() const {
-    return _reader.totalSize().asPublic();
-  }
-
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const {
-    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
-  }
-#endif  // !CAPNP_LITE
-
-private:
-  ::capnp::_::StructReader _reader;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::List;
-  friend class ::capnp::MessageBuilder;
-  friend class ::capnp::Orphanage;
-};
-
-class ModeliFrontend::LogResults::Builder {
-public:
-  typedef LogResults Builds;
-
-  Builder() = delete;  // Deleted to discourage incorrect usage.
-                       // You can explicitly initialize to nullptr instead.
-  inline Builder(decltype(nullptr)) {}
-  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
-  inline operator Reader() const { return Reader(_builder.asReader()); }
-  inline Reader asReader() const { return *this; }
-
-  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const { return asReader().toString(); }
-#endif  // !CAPNP_LITE
-
-private:
-  ::capnp::_::StructBuilder _builder;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  friend class ::capnp::Orphanage;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-};
-
-#if !CAPNP_LITE
-class ModeliFrontend::LogResults::Pipeline {
-public:
-  typedef LogResults Pipelines;
-
-  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
-  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
-      : _typeless(kj::mv(typeless)) {}
-
-private:
-  ::capnp::AnyPointer::Pipeline _typeless;
-  friend class ::capnp::PipelineHook;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-};
-#endif  // !CAPNP_LITE
-
-class Values::Reader {
-public:
-  typedef Values Reads;
-
-  Reader() = default;
-  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
-
-  inline ::capnp::MessageSize totalSize() const {
-    return _reader.totalSize().asPublic();
-  }
-
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const {
-    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
-  }
-#endif  // !CAPNP_LITE
-
-  inline bool hasInstanceName() const;
-  inline  ::capnp::Text::Reader getInstanceName() const;
-
-  inline bool hasIntegerValueRefs() const;
-  inline  ::capnp::List< ::uint32_t>::Reader getIntegerValueRefs() const;
-
-  inline bool hasIntegerValues() const;
-  inline  ::capnp::List< ::int32_t>::Reader getIntegerValues() const;
-
-  inline bool hasRealValueRefs() const;
-  inline  ::capnp::List< ::uint32_t>::Reader getRealValueRefs() const;
-
-  inline bool hasRealValues() const;
-  inline  ::capnp::List<double>::Reader getRealValues() const;
-
-  inline bool hasBoolValueRefs() const;
-  inline  ::capnp::List< ::uint32_t>::Reader getBoolValueRefs() const;
-
-  inline bool hasBoolValues() const;
-  inline  ::capnp::List< ::int32_t>::Reader getBoolValues() const;
-
-  inline bool hasStringValueRefs() const;
-  inline  ::capnp::List< ::uint32_t>::Reader getStringValueRefs() const;
-
-  inline bool hasStringValues() const;
-  inline  ::capnp::List< ::capnp::Text>::Reader getStringValues() const;
-
-private:
-  ::capnp::_::StructReader _reader;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::List;
-  friend class ::capnp::MessageBuilder;
-  friend class ::capnp::Orphanage;
-};
-
-class Values::Builder {
-public:
-  typedef Values Builds;
-
-  Builder() = delete;  // Deleted to discourage incorrect usage.
-                       // You can explicitly initialize to nullptr instead.
-  inline Builder(decltype(nullptr)) {}
-  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
-  inline operator Reader() const { return Reader(_builder.asReader()); }
-  inline Reader asReader() const { return *this; }
-
-  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
-#if !CAPNP_LITE
-  inline ::kj::StringTree toString() const { return asReader().toString(); }
-#endif  // !CAPNP_LITE
-
-  inline bool hasInstanceName();
-  inline  ::capnp::Text::Builder getInstanceName();
-  inline void setInstanceName( ::capnp::Text::Reader value);
-  inline  ::capnp::Text::Builder initInstanceName(unsigned int size);
-  inline void adoptInstanceName(::capnp::Orphan< ::capnp::Text>&& value);
-  inline ::capnp::Orphan< ::capnp::Text> disownInstanceName();
-
-  inline bool hasIntegerValueRefs();
-  inline  ::capnp::List< ::uint32_t>::Builder getIntegerValueRefs();
-  inline void setIntegerValueRefs( ::capnp::List< ::uint32_t>::Reader value);
-  inline void setIntegerValueRefs(::kj::ArrayPtr<const  ::uint32_t> value);
-  inline  ::capnp::List< ::uint32_t>::Builder initIntegerValueRefs(unsigned int size);
-  inline void adoptIntegerValueRefs(::capnp::Orphan< ::capnp::List< ::uint32_t>>&& value);
-  inline ::capnp::Orphan< ::capnp::List< ::uint32_t>> disownIntegerValueRefs();
-
-  inline bool hasIntegerValues();
-  inline  ::capnp::List< ::int32_t>::Builder getIntegerValues();
-  inline void setIntegerValues( ::capnp::List< ::int32_t>::Reader value);
-  inline void setIntegerValues(::kj::ArrayPtr<const  ::int32_t> value);
-  inline  ::capnp::List< ::int32_t>::Builder initIntegerValues(unsigned int size);
-  inline void adoptIntegerValues(::capnp::Orphan< ::capnp::List< ::int32_t>>&& value);
-  inline ::capnp::Orphan< ::capnp::List< ::int32_t>> disownIntegerValues();
-
-  inline bool hasRealValueRefs();
-  inline  ::capnp::List< ::uint32_t>::Builder getRealValueRefs();
-  inline void setRealValueRefs( ::capnp::List< ::uint32_t>::Reader value);
-  inline void setRealValueRefs(::kj::ArrayPtr<const  ::uint32_t> value);
-  inline  ::capnp::List< ::uint32_t>::Builder initRealValueRefs(unsigned int size);
-  inline void adoptRealValueRefs(::capnp::Orphan< ::capnp::List< ::uint32_t>>&& value);
-  inline ::capnp::Orphan< ::capnp::List< ::uint32_t>> disownRealValueRefs();
-
-  inline bool hasRealValues();
-  inline  ::capnp::List<double>::Builder getRealValues();
-  inline void setRealValues( ::capnp::List<double>::Reader value);
-  inline void setRealValues(::kj::ArrayPtr<const double> value);
-  inline  ::capnp::List<double>::Builder initRealValues(unsigned int size);
-  inline void adoptRealValues(::capnp::Orphan< ::capnp::List<double>>&& value);
-  inline ::capnp::Orphan< ::capnp::List<double>> disownRealValues();
-
-  inline bool hasBoolValueRefs();
-  inline  ::capnp::List< ::uint32_t>::Builder getBoolValueRefs();
-  inline void setBoolValueRefs( ::capnp::List< ::uint32_t>::Reader value);
-  inline void setBoolValueRefs(::kj::ArrayPtr<const  ::uint32_t> value);
-  inline  ::capnp::List< ::uint32_t>::Builder initBoolValueRefs(unsigned int size);
-  inline void adoptBoolValueRefs(::capnp::Orphan< ::capnp::List< ::uint32_t>>&& value);
-  inline ::capnp::Orphan< ::capnp::List< ::uint32_t>> disownBoolValueRefs();
-
-  inline bool hasBoolValues();
-  inline  ::capnp::List< ::int32_t>::Builder getBoolValues();
-  inline void setBoolValues( ::capnp::List< ::int32_t>::Reader value);
-  inline void setBoolValues(::kj::ArrayPtr<const  ::int32_t> value);
-  inline  ::capnp::List< ::int32_t>::Builder initBoolValues(unsigned int size);
-  inline void adoptBoolValues(::capnp::Orphan< ::capnp::List< ::int32_t>>&& value);
-  inline ::capnp::Orphan< ::capnp::List< ::int32_t>> disownBoolValues();
-
-  inline bool hasStringValueRefs();
-  inline  ::capnp::List< ::uint32_t>::Builder getStringValueRefs();
-  inline void setStringValueRefs( ::capnp::List< ::uint32_t>::Reader value);
-  inline void setStringValueRefs(::kj::ArrayPtr<const  ::uint32_t> value);
-  inline  ::capnp::List< ::uint32_t>::Builder initStringValueRefs(unsigned int size);
-  inline void adoptStringValueRefs(::capnp::Orphan< ::capnp::List< ::uint32_t>>&& value);
-  inline ::capnp::Orphan< ::capnp::List< ::uint32_t>> disownStringValueRefs();
-
-  inline bool hasStringValues();
-  inline  ::capnp::List< ::capnp::Text>::Builder getStringValues();
-  inline void setStringValues( ::capnp::List< ::capnp::Text>::Reader value);
-  inline void setStringValues(::kj::ArrayPtr<const  ::capnp::Text::Reader> value);
-  inline  ::capnp::List< ::capnp::Text>::Builder initStringValues(unsigned int size);
-  inline void adoptStringValues(::capnp::Orphan< ::capnp::List< ::capnp::Text>>&& value);
-  inline ::capnp::Orphan< ::capnp::List< ::capnp::Text>> disownStringValues();
-
-private:
-  ::capnp::_::StructBuilder _builder;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-  friend class ::capnp::Orphanage;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::_::PointerHelpers;
-};
-
-#if !CAPNP_LITE
-class Values::Pipeline {
-public:
-  typedef Values Pipelines;
-
-  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
-  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
-      : _typeless(kj::mv(typeless)) {}
-
-private:
-  ::capnp::AnyPointer::Pipeline _typeless;
-  friend class ::capnp::PipelineHook;
-  template <typename, ::capnp::Kind>
-  friend struct ::capnp::ToDynamic_;
-};
-#endif  // !CAPNP_LITE
-
-// =======================================================================================
-
-#if !CAPNP_LITE
-inline ModeliBackend::Client::Client(decltype(nullptr))
-    : ::capnp::Capability::Client(nullptr) {}
-inline ModeliBackend::Client::Client(
-    ::kj::Own< ::capnp::ClientHook>&& hook)
-    : ::capnp::Capability::Client(::kj::mv(hook)) {}
-template <typename _t, typename>
-inline ModeliBackend::Client::Client(::kj::Own<_t>&& server)
-    : ::capnp::Capability::Client(::kj::mv(server)) {}
-template <typename _t, typename>
-inline ModeliBackend::Client::Client(::kj::Promise<_t>&& promise)
-    : ::capnp::Capability::Client(::kj::mv(promise)) {}
-inline ModeliBackend::Client::Client(::kj::Exception&& exception)
-    : ::capnp::Capability::Client(::kj::mv(exception)) {}
-inline  ::ModeliBackend::Client& ModeliBackend::Client::operator=(Client& other) {
-  ::capnp::Capability::Client::operator=(other);
-  return *this;
-}
-inline  ::ModeliBackend::Client& ModeliBackend::Client::operator=(Client&& other) {
-  ::capnp::Capability::Client::operator=(kj::mv(other));
-  return *this;
-}
-
-#endif  // !CAPNP_LITE
-inline bool ModeliBackend::ChannelLink::Reader::hasMasterInstanceName() const {
-  return !_reader.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
-}
-inline bool ModeliBackend::ChannelLink::Builder::hasMasterInstanceName() {
-  return !_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
-}
-inline  ::capnp::Text::Reader ModeliBackend::ChannelLink::Reader::getMasterInstanceName() const {
-  return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_reader.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-inline  ::capnp::Text::Builder ModeliBackend::ChannelLink::Builder::getMasterInstanceName() {
-  return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-inline void ModeliBackend::ChannelLink::Builder::setMasterInstanceName( ::capnp::Text::Reader value) {
-  ::capnp::_::PointerHelpers< ::capnp::Text>::set(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS), value);
-}
-inline  ::capnp::Text::Builder ModeliBackend::ChannelLink::Builder::initMasterInstanceName(unsigned int size) {
-  return ::capnp::_::PointerHelpers< ::capnp::Text>::init(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS), size);
-}
-inline void ModeliBackend::ChannelLink::Builder::adoptMasterInstanceName(
-    ::capnp::Orphan< ::capnp::Text>&& value) {
-  ::capnp::_::PointerHelpers< ::capnp::Text>::adopt(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value));
-}
-inline ::capnp::Orphan< ::capnp::Text> ModeliBackend::ChannelLink::Builder::disownMasterInstanceName() {
-  return ::capnp::_::PointerHelpers< ::capnp::Text>::disown(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-
-inline bool ModeliBackend::ChannelLink::Reader::hasSlaveInstanceName() const {
-  return !_reader.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS).isNull();
-}
-inline bool ModeliBackend::ChannelLink::Builder::hasSlaveInstanceName() {
-  return !_builder.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS).isNull();
-}
-inline  ::capnp::Text::Reader ModeliBackend::ChannelLink::Reader::getSlaveInstanceName() const {
-  return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_reader.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS));
-}
-inline  ::capnp::Text::Builder ModeliBackend::ChannelLink::Builder::getSlaveInstanceName() {
-  return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_builder.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS));
-}
-inline void ModeliBackend::ChannelLink::Builder::setSlaveInstanceName( ::capnp::Text::Reader value) {
-  ::capnp::_::PointerHelpers< ::capnp::Text>::set(_builder.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS), value);
-}
-inline  ::capnp::Text::Builder ModeliBackend::ChannelLink::Builder::initSlaveInstanceName(unsigned int size) {
-  return ::capnp::_::PointerHelpers< ::capnp::Text>::init(_builder.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS), size);
-}
-inline void ModeliBackend::ChannelLink::Builder::adoptSlaveInstanceName(
-    ::capnp::Orphan< ::capnp::Text>&& value) {
-  ::capnp::_::PointerHelpers< ::capnp::Text>::adopt(_builder.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS), kj::mv(value));
-}
-inline ::capnp::Orphan< ::capnp::Text> ModeliBackend::ChannelLink::Builder::disownSlaveInstanceName() {
-  return ::capnp::_::PointerHelpers< ::capnp::Text>::disown(_builder.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS));
-}
-
-inline  ::uint32_t ModeliBackend::ChannelLink::Reader::getMasterValueRef() const {
-  return _reader.getDataField< ::uint32_t>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
-}
-
-inline  ::uint32_t ModeliBackend::ChannelLink::Builder::getMasterValueRef() {
-  return _builder.getDataField< ::uint32_t>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
-}
-inline void ModeliBackend::ChannelLink::Builder::setMasterValueRef( ::uint32_t value) {
-  _builder.setDataField< ::uint32_t>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS, value);
-}
-
-inline  ::uint32_t ModeliBackend::ChannelLink::Reader::getSlaveValueRef() const {
-  return _reader.getDataField< ::uint32_t>(
-      ::capnp::bounded<1>() * ::capnp::ELEMENTS);
-}
-
-inline  ::uint32_t ModeliBackend::ChannelLink::Builder::getSlaveValueRef() {
-  return _builder.getDataField< ::uint32_t>(
-      ::capnp::bounded<1>() * ::capnp::ELEMENTS);
-}
-inline void ModeliBackend::ChannelLink::Builder::setSlaveValueRef( ::uint32_t value) {
-  _builder.setDataField< ::uint32_t>(
-      ::capnp::bounded<1>() * ::capnp::ELEMENTS, value);
-}
-
-inline double ModeliBackend::ChannelLink::Reader::getFactor() const {
-  return _reader.getDataField<double>(
-      ::capnp::bounded<1>() * ::capnp::ELEMENTS);
-}
-
-inline double ModeliBackend::ChannelLink::Builder::getFactor() {
-  return _builder.getDataField<double>(
-      ::capnp::bounded<1>() * ::capnp::ELEMENTS);
-}
-inline void ModeliBackend::ChannelLink::Builder::setFactor(double value) {
-  _builder.setDataField<double>(
-      ::capnp::bounded<1>() * ::capnp::ELEMENTS, value);
-}
-
-inline double ModeliBackend::ChannelLink::Reader::getOffset() const {
-  return _reader.getDataField<double>(
-      ::capnp::bounded<2>() * ::capnp::ELEMENTS);
-}
-
-inline double ModeliBackend::ChannelLink::Builder::getOffset() {
-  return _builder.getDataField<double>(
-      ::capnp::bounded<2>() * ::capnp::ELEMENTS);
-}
-inline void ModeliBackend::ChannelLink::Builder::setOffset(double value) {
-  _builder.setDataField<double>(
-      ::capnp::bounded<2>() * ::capnp::ELEMENTS, value);
-}
-
-inline  ::int16_t ModeliBackend::PlayResults::Reader::getResult() const {
-  return _reader.getDataField< ::int16_t>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
-}
-
-inline  ::int16_t ModeliBackend::PlayResults::Builder::getResult() {
-  return _builder.getDataField< ::int16_t>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
-}
-inline void ModeliBackend::PlayResults::Builder::setResult( ::int16_t value) {
-  _builder.setDataField< ::int16_t>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS, value);
-}
-
-inline double ModeliBackend::PlayFastParams::Reader::getTimeToPlay() const {
-  return _reader.getDataField<double>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
-}
-
-inline double ModeliBackend::PlayFastParams::Builder::getTimeToPlay() {
-  return _builder.getDataField<double>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
-}
-inline void ModeliBackend::PlayFastParams::Builder::setTimeToPlay(double value) {
-  _builder.setDataField<double>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS, value);
-}
-
-inline  ::int16_t ModeliBackend::PlayFastResults::Reader::getResult() const {
-  return _reader.getDataField< ::int16_t>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
-}
-
-inline  ::int16_t ModeliBackend::PlayFastResults::Builder::getResult() {
-  return _builder.getDataField< ::int16_t>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
-}
-inline void ModeliBackend::PlayFastResults::Builder::setResult( ::int16_t value) {
-  _builder.setDataField< ::int16_t>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS, value);
-}
-
-inline  ::int16_t ModeliBackend::StopResults::Reader::getResult() const {
-  return _reader.getDataField< ::int16_t>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
-}
-
-inline  ::int16_t ModeliBackend::StopResults::Builder::getResult() {
-  return _builder.getDataField< ::int16_t>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
-}
-inline void ModeliBackend::StopResults::Builder::setResult( ::int16_t value) {
-  _builder.setDataField< ::int16_t>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS, value);
-}
-
-inline bool ModeliBackend::AddFmuParams::Reader::hasInstanceName() const {
-  return !_reader.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
-}
-inline bool ModeliBackend::AddFmuParams::Builder::hasInstanceName() {
-  return !_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
-}
-inline  ::capnp::Text::Reader ModeliBackend::AddFmuParams::Reader::getInstanceName() const {
-  return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_reader.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-inline  ::capnp::Text::Builder ModeliBackend::AddFmuParams::Builder::getInstanceName() {
-  return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-inline void ModeliBackend::AddFmuParams::Builder::setInstanceName( ::capnp::Text::Reader value) {
-  ::capnp::_::PointerHelpers< ::capnp::Text>::set(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS), value);
-}
-inline  ::capnp::Text::Builder ModeliBackend::AddFmuParams::Builder::initInstanceName(unsigned int size) {
-  return ::capnp::_::PointerHelpers< ::capnp::Text>::init(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS), size);
-}
-inline void ModeliBackend::AddFmuParams::Builder::adoptInstanceName(
-    ::capnp::Orphan< ::capnp::Text>&& value) {
-  ::capnp::_::PointerHelpers< ::capnp::Text>::adopt(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value));
-}
-inline ::capnp::Orphan< ::capnp::Text> ModeliBackend::AddFmuParams::Builder::disownInstanceName() {
-  return ::capnp::_::PointerHelpers< ::capnp::Text>::disown(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-
-inline bool ModeliBackend::AddFmuParams::Reader::hasFmuFile() const {
-  return !_reader.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS).isNull();
-}
-inline bool ModeliBackend::AddFmuParams::Builder::hasFmuFile() {
-  return !_builder.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS).isNull();
-}
-inline  ::capnp::Data::Reader ModeliBackend::AddFmuParams::Reader::getFmuFile() const {
-  return ::capnp::_::PointerHelpers< ::capnp::Data>::get(_reader.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS));
-}
-inline  ::capnp::Data::Builder ModeliBackend::AddFmuParams::Builder::getFmuFile() {
-  return ::capnp::_::PointerHelpers< ::capnp::Data>::get(_builder.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS));
-}
-inline void ModeliBackend::AddFmuParams::Builder::setFmuFile( ::capnp::Data::Reader value) {
-  ::capnp::_::PointerHelpers< ::capnp::Data>::set(_builder.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS), value);
-}
-inline  ::capnp::Data::Builder ModeliBackend::AddFmuParams::Builder::initFmuFile(unsigned int size) {
-  return ::capnp::_::PointerHelpers< ::capnp::Data>::init(_builder.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS), size);
-}
-inline void ModeliBackend::AddFmuParams::Builder::adoptFmuFile(
-    ::capnp::Orphan< ::capnp::Data>&& value) {
-  ::capnp::_::PointerHelpers< ::capnp::Data>::adopt(_builder.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS), kj::mv(value));
-}
-inline ::capnp::Orphan< ::capnp::Data> ModeliBackend::AddFmuParams::Builder::disownFmuFile() {
-  return ::capnp::_::PointerHelpers< ::capnp::Data>::disown(_builder.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS));
-}
-
-inline bool ModeliBackend::AddFmuResults::Reader::getResult() const {
-  return _reader.getDataField<bool>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
-}
-
-inline bool ModeliBackend::AddFmuResults::Builder::getResult() {
-  return _builder.getDataField<bool>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
-}
-inline void ModeliBackend::AddFmuResults::Builder::setResult(bool value) {
-  _builder.setDataField<bool>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS, value);
-}
-
-inline bool ModeliBackend::RemoveFmuParams::Reader::hasInstanceName() const {
-  return !_reader.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
-}
-inline bool ModeliBackend::RemoveFmuParams::Builder::hasInstanceName() {
-  return !_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
-}
-inline  ::capnp::Text::Reader ModeliBackend::RemoveFmuParams::Reader::getInstanceName() const {
-  return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_reader.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-inline  ::capnp::Text::Builder ModeliBackend::RemoveFmuParams::Builder::getInstanceName() {
-  return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-inline void ModeliBackend::RemoveFmuParams::Builder::setInstanceName( ::capnp::Text::Reader value) {
-  ::capnp::_::PointerHelpers< ::capnp::Text>::set(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS), value);
-}
-inline  ::capnp::Text::Builder ModeliBackend::RemoveFmuParams::Builder::initInstanceName(unsigned int size) {
-  return ::capnp::_::PointerHelpers< ::capnp::Text>::init(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS), size);
-}
-inline void ModeliBackend::RemoveFmuParams::Builder::adoptInstanceName(
-    ::capnp::Orphan< ::capnp::Text>&& value) {
-  ::capnp::_::PointerHelpers< ::capnp::Text>::adopt(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value));
-}
-inline ::capnp::Orphan< ::capnp::Text> ModeliBackend::RemoveFmuParams::Builder::disownInstanceName() {
-  return ::capnp::_::PointerHelpers< ::capnp::Text>::disown(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-
-inline bool ModeliBackend::RemoveFmuResults::Reader::getResult() const {
-  return _reader.getDataField<bool>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
-}
-
-inline bool ModeliBackend::RemoveFmuResults::Builder::getResult() {
-  return _builder.getDataField<bool>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
-}
-inline void ModeliBackend::RemoveFmuResults::Builder::setResult(bool value) {
-  _builder.setDataField<bool>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS, value);
-}
-
-inline bool ModeliBackend::AddChannelLinkParams::Reader::hasChannelLink() const {
-  return !_reader.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
-}
-inline bool ModeliBackend::AddChannelLinkParams::Builder::hasChannelLink() {
-  return !_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
-}
-inline  ::ModeliBackend::ChannelLink::Reader ModeliBackend::AddChannelLinkParams::Reader::getChannelLink() const {
-  return ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::get(_reader.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-inline  ::ModeliBackend::ChannelLink::Builder ModeliBackend::AddChannelLinkParams::Builder::getChannelLink() {
-  return ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::get(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-#if !CAPNP_LITE
-inline  ::ModeliBackend::ChannelLink::Pipeline ModeliBackend::AddChannelLinkParams::Pipeline::getChannelLink() {
-  return  ::ModeliBackend::ChannelLink::Pipeline(_typeless.getPointerField(0));
-}
-#endif  // !CAPNP_LITE
-inline void ModeliBackend::AddChannelLinkParams::Builder::setChannelLink( ::ModeliBackend::ChannelLink::Reader value) {
-  ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::set(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS), value);
-}
-inline  ::ModeliBackend::ChannelLink::Builder ModeliBackend::AddChannelLinkParams::Builder::initChannelLink() {
-  return ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::init(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-inline void ModeliBackend::AddChannelLinkParams::Builder::adoptChannelLink(
-    ::capnp::Orphan< ::ModeliBackend::ChannelLink>&& value) {
-  ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::adopt(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value));
-}
-inline ::capnp::Orphan< ::ModeliBackend::ChannelLink> ModeliBackend::AddChannelLinkParams::Builder::disownChannelLink() {
-  return ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::disown(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-
-inline bool ModeliBackend::AddChannelLinkResults::Reader::getResult() const {
-  return _reader.getDataField<bool>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
-}
-
-inline bool ModeliBackend::AddChannelLinkResults::Builder::getResult() {
-  return _builder.getDataField<bool>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
-}
-inline void ModeliBackend::AddChannelLinkResults::Builder::setResult(bool value) {
-  _builder.setDataField<bool>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS, value);
-}
-
-inline bool ModeliBackend::RemoveChannelLinkParams::Reader::hasChannelLink() const {
-  return !_reader.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
-}
-inline bool ModeliBackend::RemoveChannelLinkParams::Builder::hasChannelLink() {
-  return !_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
-}
-inline  ::ModeliBackend::ChannelLink::Reader ModeliBackend::RemoveChannelLinkParams::Reader::getChannelLink() const {
-  return ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::get(_reader.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-inline  ::ModeliBackend::ChannelLink::Builder ModeliBackend::RemoveChannelLinkParams::Builder::getChannelLink() {
-  return ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::get(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-#if !CAPNP_LITE
-inline  ::ModeliBackend::ChannelLink::Pipeline ModeliBackend::RemoveChannelLinkParams::Pipeline::getChannelLink() {
-  return  ::ModeliBackend::ChannelLink::Pipeline(_typeless.getPointerField(0));
-}
-#endif  // !CAPNP_LITE
-inline void ModeliBackend::RemoveChannelLinkParams::Builder::setChannelLink( ::ModeliBackend::ChannelLink::Reader value) {
-  ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::set(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS), value);
-}
-inline  ::ModeliBackend::ChannelLink::Builder ModeliBackend::RemoveChannelLinkParams::Builder::initChannelLink() {
-  return ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::init(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-inline void ModeliBackend::RemoveChannelLinkParams::Builder::adoptChannelLink(
-    ::capnp::Orphan< ::ModeliBackend::ChannelLink>&& value) {
-  ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::adopt(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value));
-}
-inline ::capnp::Orphan< ::ModeliBackend::ChannelLink> ModeliBackend::RemoveChannelLinkParams::Builder::disownChannelLink() {
-  return ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::disown(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-
-inline bool ModeliBackend::RemoveChannelLinkResults::Reader::getResult() const {
-  return _reader.getDataField<bool>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
-}
-
-inline bool ModeliBackend::RemoveChannelLinkResults::Builder::getResult() {
-  return _builder.getDataField<bool>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
-}
-inline void ModeliBackend::RemoveChannelLinkResults::Builder::setResult(bool value) {
-  _builder.setDataField<bool>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS, value);
-}
-
-inline bool ModeliBackend::SetValuesParams::Reader::hasValues() const {
-  return !_reader.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
-}
-inline bool ModeliBackend::SetValuesParams::Builder::hasValues() {
-  return !_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
-}
-inline  ::Values::Reader ModeliBackend::SetValuesParams::Reader::getValues() const {
-  return ::capnp::_::PointerHelpers< ::Values>::get(_reader.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-inline  ::Values::Builder ModeliBackend::SetValuesParams::Builder::getValues() {
-  return ::capnp::_::PointerHelpers< ::Values>::get(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-#if !CAPNP_LITE
-inline  ::Values::Pipeline ModeliBackend::SetValuesParams::Pipeline::getValues() {
-  return  ::Values::Pipeline(_typeless.getPointerField(0));
-}
-#endif  // !CAPNP_LITE
-inline void ModeliBackend::SetValuesParams::Builder::setValues( ::Values::Reader value) {
-  ::capnp::_::PointerHelpers< ::Values>::set(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS), value);
-}
-inline  ::Values::Builder ModeliBackend::SetValuesParams::Builder::initValues() {
-  return ::capnp::_::PointerHelpers< ::Values>::init(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-inline void ModeliBackend::SetValuesParams::Builder::adoptValues(
-    ::capnp::Orphan< ::Values>&& value) {
-  ::capnp::_::PointerHelpers< ::Values>::adopt(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value));
-}
-inline ::capnp::Orphan< ::Values> ModeliBackend::SetValuesParams::Builder::disownValues() {
-  return ::capnp::_::PointerHelpers< ::Values>::disown(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-
-inline  ::int16_t ModeliBackend::SetValuesResults::Reader::getResult() const {
-  return _reader.getDataField< ::int16_t>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
-}
-
-inline  ::int16_t ModeliBackend::SetValuesResults::Builder::getResult() {
-  return _builder.getDataField< ::int16_t>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
-}
-inline void ModeliBackend::SetValuesResults::Builder::setResult( ::int16_t value) {
-  _builder.setDataField< ::int16_t>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS, value);
-}
-
-inline bool ModeliBackend::RegisterFrontendParams::Reader::hasFrontend() const {
-  return !_reader.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
-}
-inline bool ModeliBackend::RegisterFrontendParams::Builder::hasFrontend() {
-  return !_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
-}
-#if !CAPNP_LITE
-inline  ::ModeliFrontend::Client ModeliBackend::RegisterFrontendParams::Reader::getFrontend() const {
-  return ::capnp::_::PointerHelpers< ::ModeliFrontend>::get(_reader.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-inline  ::ModeliFrontend::Client ModeliBackend::RegisterFrontendParams::Builder::getFrontend() {
-  return ::capnp::_::PointerHelpers< ::ModeliFrontend>::get(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-inline  ::ModeliFrontend::Client ModeliBackend::RegisterFrontendParams::Pipeline::getFrontend() {
-  return  ::ModeliFrontend::Client(_typeless.getPointerField(0).asCap());
-}
-inline void ModeliBackend::RegisterFrontendParams::Builder::setFrontend( ::ModeliFrontend::Client&& cap) {
-  ::capnp::_::PointerHelpers< ::ModeliFrontend>::set(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(cap));
-}
-inline void ModeliBackend::RegisterFrontendParams::Builder::setFrontend( ::ModeliFrontend::Client& cap) {
-  ::capnp::_::PointerHelpers< ::ModeliFrontend>::set(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS), cap);
-}
-inline void ModeliBackend::RegisterFrontendParams::Builder::adoptFrontend(
-    ::capnp::Orphan< ::ModeliFrontend>&& value) {
-  ::capnp::_::PointerHelpers< ::ModeliFrontend>::adopt(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value));
-}
-inline ::capnp::Orphan< ::ModeliFrontend> ModeliBackend::RegisterFrontendParams::Builder::disownFrontend() {
-  return ::capnp::_::PointerHelpers< ::ModeliFrontend>::disown(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-#endif  // !CAPNP_LITE
-
-#if !CAPNP_LITE
-inline ModeliFrontend::Client::Client(decltype(nullptr))
-    : ::capnp::Capability::Client(nullptr) {}
-inline ModeliFrontend::Client::Client(
-    ::kj::Own< ::capnp::ClientHook>&& hook)
-    : ::capnp::Capability::Client(::kj::mv(hook)) {}
-template <typename _t, typename>
-inline ModeliFrontend::Client::Client(::kj::Own<_t>&& server)
-    : ::capnp::Capability::Client(::kj::mv(server)) {}
-template <typename _t, typename>
-inline ModeliFrontend::Client::Client(::kj::Promise<_t>&& promise)
-    : ::capnp::Capability::Client(::kj::mv(promise)) {}
-inline ModeliFrontend::Client::Client(::kj::Exception&& exception)
-    : ::capnp::Capability::Client(::kj::mv(exception)) {}
-inline  ::ModeliFrontend::Client& ModeliFrontend::Client::operator=(Client& other) {
-  ::capnp::Capability::Client::operator=(other);
-  return *this;
-}
-inline  ::ModeliFrontend::Client& ModeliFrontend::Client::operator=(Client&& other) {
-  ::capnp::Capability::Client::operator=(kj::mv(other));
-  return *this;
-}
-
-#endif  // !CAPNP_LITE
-inline double ModeliFrontend::NewValuesParams::Reader::getTimestamp() const {
-  return _reader.getDataField<double>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
-}
-
-inline double ModeliFrontend::NewValuesParams::Builder::getTimestamp() {
-  return _builder.getDataField<double>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
-}
-inline void ModeliFrontend::NewValuesParams::Builder::setTimestamp(double value) {
-  _builder.setDataField<double>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS, value);
-}
-
-inline bool ModeliFrontend::NewValuesParams::Reader::hasValues() const {
-  return !_reader.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
-}
-inline bool ModeliFrontend::NewValuesParams::Builder::hasValues() {
-  return !_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
-}
-inline  ::Values::Reader ModeliFrontend::NewValuesParams::Reader::getValues() const {
-  return ::capnp::_::PointerHelpers< ::Values>::get(_reader.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-inline  ::Values::Builder ModeliFrontend::NewValuesParams::Builder::getValues() {
-  return ::capnp::_::PointerHelpers< ::Values>::get(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-#if !CAPNP_LITE
-inline  ::Values::Pipeline ModeliFrontend::NewValuesParams::Pipeline::getValues() {
-  return  ::Values::Pipeline(_typeless.getPointerField(0));
-}
-#endif  // !CAPNP_LITE
-inline void ModeliFrontend::NewValuesParams::Builder::setValues( ::Values::Reader value) {
-  ::capnp::_::PointerHelpers< ::Values>::set(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS), value);
-}
-inline  ::Values::Builder ModeliFrontend::NewValuesParams::Builder::initValues() {
-  return ::capnp::_::PointerHelpers< ::Values>::init(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-inline void ModeliFrontend::NewValuesParams::Builder::adoptValues(
-    ::capnp::Orphan< ::Values>&& value) {
-  ::capnp::_::PointerHelpers< ::Values>::adopt(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value));
-}
-inline ::capnp::Orphan< ::Values> ModeliFrontend::NewValuesParams::Builder::disownValues() {
-  return ::capnp::_::PointerHelpers< ::Values>::disown(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-
-inline bool ModeliFrontend::LogParams::Reader::hasInstanceName() const {
-  return !_reader.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
-}
-inline bool ModeliFrontend::LogParams::Builder::hasInstanceName() {
-  return !_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
-}
-inline  ::capnp::Text::Reader ModeliFrontend::LogParams::Reader::getInstanceName() const {
-  return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_reader.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-inline  ::capnp::Text::Builder ModeliFrontend::LogParams::Builder::getInstanceName() {
-  return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-inline void ModeliFrontend::LogParams::Builder::setInstanceName( ::capnp::Text::Reader value) {
-  ::capnp::_::PointerHelpers< ::capnp::Text>::set(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS), value);
-}
-inline  ::capnp::Text::Builder ModeliFrontend::LogParams::Builder::initInstanceName(unsigned int size) {
-  return ::capnp::_::PointerHelpers< ::capnp::Text>::init(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS), size);
-}
-inline void ModeliFrontend::LogParams::Builder::adoptInstanceName(
-    ::capnp::Orphan< ::capnp::Text>&& value) {
-  ::capnp::_::PointerHelpers< ::capnp::Text>::adopt(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value));
-}
-inline ::capnp::Orphan< ::capnp::Text> ModeliFrontend::LogParams::Builder::disownInstanceName() {
-  return ::capnp::_::PointerHelpers< ::capnp::Text>::disown(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-
-inline  ::int16_t ModeliFrontend::LogParams::Reader::getStatus() const {
-  return _reader.getDataField< ::int16_t>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
-}
-
-inline  ::int16_t ModeliFrontend::LogParams::Builder::getStatus() {
-  return _builder.getDataField< ::int16_t>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
-}
-inline void ModeliFrontend::LogParams::Builder::setStatus( ::int16_t value) {
-  _builder.setDataField< ::int16_t>(
-      ::capnp::bounded<0>() * ::capnp::ELEMENTS, value);
-}
-
-inline bool ModeliFrontend::LogParams::Reader::hasMessage() const {
-  return !_reader.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS).isNull();
-}
-inline bool ModeliFrontend::LogParams::Builder::hasMessage() {
-  return !_builder.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS).isNull();
-}
-inline  ::capnp::Text::Reader ModeliFrontend::LogParams::Reader::getMessage() const {
-  return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_reader.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS));
-}
-inline  ::capnp::Text::Builder ModeliFrontend::LogParams::Builder::getMessage() {
-  return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_builder.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS));
-}
-inline void ModeliFrontend::LogParams::Builder::setMessage( ::capnp::Text::Reader value) {
-  ::capnp::_::PointerHelpers< ::capnp::Text>::set(_builder.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS), value);
-}
-inline  ::capnp::Text::Builder ModeliFrontend::LogParams::Builder::initMessage(unsigned int size) {
-  return ::capnp::_::PointerHelpers< ::capnp::Text>::init(_builder.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS), size);
-}
-inline void ModeliFrontend::LogParams::Builder::adoptMessage(
-    ::capnp::Orphan< ::capnp::Text>&& value) {
-  ::capnp::_::PointerHelpers< ::capnp::Text>::adopt(_builder.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS), kj::mv(value));
-}
-inline ::capnp::Orphan< ::capnp::Text> ModeliFrontend::LogParams::Builder::disownMessage() {
-  return ::capnp::_::PointerHelpers< ::capnp::Text>::disown(_builder.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS));
-}
-
-inline bool Values::Reader::hasInstanceName() const {
-  return !_reader.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
-}
-inline bool Values::Builder::hasInstanceName() {
-  return !_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
-}
-inline  ::capnp::Text::Reader Values::Reader::getInstanceName() const {
-  return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_reader.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-inline  ::capnp::Text::Builder Values::Builder::getInstanceName() {
-  return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-inline void Values::Builder::setInstanceName( ::capnp::Text::Reader value) {
-  ::capnp::_::PointerHelpers< ::capnp::Text>::set(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS), value);
-}
-inline  ::capnp::Text::Builder Values::Builder::initInstanceName(unsigned int size) {
-  return ::capnp::_::PointerHelpers< ::capnp::Text>::init(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS), size);
-}
-inline void Values::Builder::adoptInstanceName(
-    ::capnp::Orphan< ::capnp::Text>&& value) {
-  ::capnp::_::PointerHelpers< ::capnp::Text>::adopt(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value));
-}
-inline ::capnp::Orphan< ::capnp::Text> Values::Builder::disownInstanceName() {
-  return ::capnp::_::PointerHelpers< ::capnp::Text>::disown(_builder.getPointerField(
-      ::capnp::bounded<0>() * ::capnp::POINTERS));
-}
-
-inline bool Values::Reader::hasIntegerValueRefs() const {
-  return !_reader.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS).isNull();
-}
-inline bool Values::Builder::hasIntegerValueRefs() {
-  return !_builder.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS).isNull();
-}
-inline  ::capnp::List< ::uint32_t>::Reader Values::Reader::getIntegerValueRefs() const {
-  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::get(_reader.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS));
-}
-inline  ::capnp::List< ::uint32_t>::Builder Values::Builder::getIntegerValueRefs() {
-  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::get(_builder.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS));
-}
-inline void Values::Builder::setIntegerValueRefs( ::capnp::List< ::uint32_t>::Reader value) {
-  ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::set(_builder.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS), value);
-}
-inline void Values::Builder::setIntegerValueRefs(::kj::ArrayPtr<const  ::uint32_t> value) {
-  ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::set(_builder.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS), value);
-}
-inline  ::capnp::List< ::uint32_t>::Builder Values::Builder::initIntegerValueRefs(unsigned int size) {
-  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::init(_builder.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS), size);
-}
-inline void Values::Builder::adoptIntegerValueRefs(
-    ::capnp::Orphan< ::capnp::List< ::uint32_t>>&& value) {
-  ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::adopt(_builder.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS), kj::mv(value));
-}
-inline ::capnp::Orphan< ::capnp::List< ::uint32_t>> Values::Builder::disownIntegerValueRefs() {
-  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::disown(_builder.getPointerField(
-      ::capnp::bounded<1>() * ::capnp::POINTERS));
-}
-
-inline bool Values::Reader::hasIntegerValues() const {
-  return !_reader.getPointerField(
-      ::capnp::bounded<2>() * ::capnp::POINTERS).isNull();
-}
-inline bool Values::Builder::hasIntegerValues() {
-  return !_builder.getPointerField(
-      ::capnp::bounded<2>() * ::capnp::POINTERS).isNull();
-}
-inline  ::capnp::List< ::int32_t>::Reader Values::Reader::getIntegerValues() const {
-  return ::capnp::_::PointerHelpers< ::capnp::List< ::int32_t>>::get(_reader.getPointerField(
-      ::capnp::bounded<2>() * ::capnp::POINTERS));
-}
-inline  ::capnp::List< ::int32_t>::Builder Values::Builder::getIntegerValues() {
-  return ::capnp::_::PointerHelpers< ::capnp::List< ::int32_t>>::get(_builder.getPointerField(
-      ::capnp::bounded<2>() * ::capnp::POINTERS));
-}
-inline void Values::Builder::setIntegerValues( ::capnp::List< ::int32_t>::Reader value) {
-  ::capnp::_::PointerHelpers< ::capnp::List< ::int32_t>>::set(_builder.getPointerField(
-      ::capnp::bounded<2>() * ::capnp::POINTERS), value);
-}
-inline void Values::Builder::setIntegerValues(::kj::ArrayPtr<const  ::int32_t> value) {
-  ::capnp::_::PointerHelpers< ::capnp::List< ::int32_t>>::set(_builder.getPointerField(
-      ::capnp::bounded<2>() * ::capnp::POINTERS), value);
-}
-inline  ::capnp::List< ::int32_t>::Builder Values::Builder::initIntegerValues(unsigned int size) {
-  return ::capnp::_::PointerHelpers< ::capnp::List< ::int32_t>>::init(_builder.getPointerField(
-      ::capnp::bounded<2>() * ::capnp::POINTERS), size);
-}
-inline void Values::Builder::adoptIntegerValues(
-    ::capnp::Orphan< ::capnp::List< ::int32_t>>&& value) {
-  ::capnp::_::PointerHelpers< ::capnp::List< ::int32_t>>::adopt(_builder.getPointerField(
-      ::capnp::bounded<2>() * ::capnp::POINTERS), kj::mv(value));
-}
-inline ::capnp::Orphan< ::capnp::List< ::int32_t>> Values::Builder::disownIntegerValues() {
-  return ::capnp::_::PointerHelpers< ::capnp::List< ::int32_t>>::disown(_builder.getPointerField(
-      ::capnp::bounded<2>() * ::capnp::POINTERS));
-}
-
-inline bool Values::Reader::hasRealValueRefs() const {
-  return !_reader.getPointerField(
-      ::capnp::bounded<3>() * ::capnp::POINTERS).isNull();
-}
-inline bool Values::Builder::hasRealValueRefs() {
-  return !_builder.getPointerField(
-      ::capnp::bounded<3>() * ::capnp::POINTERS).isNull();
-}
-inline  ::capnp::List< ::uint32_t>::Reader Values::Reader::getRealValueRefs() const {
-  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::get(_reader.getPointerField(
-      ::capnp::bounded<3>() * ::capnp::POINTERS));
-}
-inline  ::capnp::List< ::uint32_t>::Builder Values::Builder::getRealValueRefs() {
-  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::get(_builder.getPointerField(
-      ::capnp::bounded<3>() * ::capnp::POINTERS));
-}
-inline void Values::Builder::setRealValueRefs( ::capnp::List< ::uint32_t>::Reader value) {
-  ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::set(_builder.getPointerField(
-      ::capnp::bounded<3>() * ::capnp::POINTERS), value);
-}
-inline void Values::Builder::setRealValueRefs(::kj::ArrayPtr<const  ::uint32_t> value) {
-  ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::set(_builder.getPointerField(
-      ::capnp::bounded<3>() * ::capnp::POINTERS), value);
-}
-inline  ::capnp::List< ::uint32_t>::Builder Values::Builder::initRealValueRefs(unsigned int size) {
-  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::init(_builder.getPointerField(
-      ::capnp::bounded<3>() * ::capnp::POINTERS), size);
-}
-inline void Values::Builder::adoptRealValueRefs(
-    ::capnp::Orphan< ::capnp::List< ::uint32_t>>&& value) {
-  ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::adopt(_builder.getPointerField(
-      ::capnp::bounded<3>() * ::capnp::POINTERS), kj::mv(value));
-}
-inline ::capnp::Orphan< ::capnp::List< ::uint32_t>> Values::Builder::disownRealValueRefs() {
-  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::disown(_builder.getPointerField(
-      ::capnp::bounded<3>() * ::capnp::POINTERS));
-}
-
-inline bool Values::Reader::hasRealValues() const {
-  return !_reader.getPointerField(
-      ::capnp::bounded<4>() * ::capnp::POINTERS).isNull();
-}
-inline bool Values::Builder::hasRealValues() {
-  return !_builder.getPointerField(
-      ::capnp::bounded<4>() * ::capnp::POINTERS).isNull();
-}
-inline  ::capnp::List<double>::Reader Values::Reader::getRealValues() const {
-  return ::capnp::_::PointerHelpers< ::capnp::List<double>>::get(_reader.getPointerField(
-      ::capnp::bounded<4>() * ::capnp::POINTERS));
-}
-inline  ::capnp::List<double>::Builder Values::Builder::getRealValues() {
-  return ::capnp::_::PointerHelpers< ::capnp::List<double>>::get(_builder.getPointerField(
-      ::capnp::bounded<4>() * ::capnp::POINTERS));
-}
-inline void Values::Builder::setRealValues( ::capnp::List<double>::Reader value) {
-  ::capnp::_::PointerHelpers< ::capnp::List<double>>::set(_builder.getPointerField(
-      ::capnp::bounded<4>() * ::capnp::POINTERS), value);
-}
-inline void Values::Builder::setRealValues(::kj::ArrayPtr<const double> value) {
-  ::capnp::_::PointerHelpers< ::capnp::List<double>>::set(_builder.getPointerField(
-      ::capnp::bounded<4>() * ::capnp::POINTERS), value);
-}
-inline  ::capnp::List<double>::Builder Values::Builder::initRealValues(unsigned int size) {
-  return ::capnp::_::PointerHelpers< ::capnp::List<double>>::init(_builder.getPointerField(
-      ::capnp::bounded<4>() * ::capnp::POINTERS), size);
-}
-inline void Values::Builder::adoptRealValues(
-    ::capnp::Orphan< ::capnp::List<double>>&& value) {
-  ::capnp::_::PointerHelpers< ::capnp::List<double>>::adopt(_builder.getPointerField(
-      ::capnp::bounded<4>() * ::capnp::POINTERS), kj::mv(value));
-}
-inline ::capnp::Orphan< ::capnp::List<double>> Values::Builder::disownRealValues() {
-  return ::capnp::_::PointerHelpers< ::capnp::List<double>>::disown(_builder.getPointerField(
-      ::capnp::bounded<4>() * ::capnp::POINTERS));
-}
-
-inline bool Values::Reader::hasBoolValueRefs() const {
-  return !_reader.getPointerField(
-      ::capnp::bounded<5>() * ::capnp::POINTERS).isNull();
-}
-inline bool Values::Builder::hasBoolValueRefs() {
-  return !_builder.getPointerField(
-      ::capnp::bounded<5>() * ::capnp::POINTERS).isNull();
-}
-inline  ::capnp::List< ::uint32_t>::Reader Values::Reader::getBoolValueRefs() const {
-  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::get(_reader.getPointerField(
-      ::capnp::bounded<5>() * ::capnp::POINTERS));
-}
-inline  ::capnp::List< ::uint32_t>::Builder Values::Builder::getBoolValueRefs() {
-  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::get(_builder.getPointerField(
-      ::capnp::bounded<5>() * ::capnp::POINTERS));
-}
-inline void Values::Builder::setBoolValueRefs( ::capnp::List< ::uint32_t>::Reader value) {
-  ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::set(_builder.getPointerField(
-      ::capnp::bounded<5>() * ::capnp::POINTERS), value);
-}
-inline void Values::Builder::setBoolValueRefs(::kj::ArrayPtr<const  ::uint32_t> value) {
-  ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::set(_builder.getPointerField(
-      ::capnp::bounded<5>() * ::capnp::POINTERS), value);
-}
-inline  ::capnp::List< ::uint32_t>::Builder Values::Builder::initBoolValueRefs(unsigned int size) {
-  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::init(_builder.getPointerField(
-      ::capnp::bounded<5>() * ::capnp::POINTERS), size);
-}
-inline void Values::Builder::adoptBoolValueRefs(
-    ::capnp::Orphan< ::capnp::List< ::uint32_t>>&& value) {
-  ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::adopt(_builder.getPointerField(
-      ::capnp::bounded<5>() * ::capnp::POINTERS), kj::mv(value));
-}
-inline ::capnp::Orphan< ::capnp::List< ::uint32_t>> Values::Builder::disownBoolValueRefs() {
-  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::disown(_builder.getPointerField(
-      ::capnp::bounded<5>() * ::capnp::POINTERS));
-}
-
-inline bool Values::Reader::hasBoolValues() const {
-  return !_reader.getPointerField(
-      ::capnp::bounded<6>() * ::capnp::POINTERS).isNull();
-}
-inline bool Values::Builder::hasBoolValues() {
-  return !_builder.getPointerField(
-      ::capnp::bounded<6>() * ::capnp::POINTERS).isNull();
-}
-inline  ::capnp::List< ::int32_t>::Reader Values::Reader::getBoolValues() const {
-  return ::capnp::_::PointerHelpers< ::capnp::List< ::int32_t>>::get(_reader.getPointerField(
-      ::capnp::bounded<6>() * ::capnp::POINTERS));
-}
-inline  ::capnp::List< ::int32_t>::Builder Values::Builder::getBoolValues() {
-  return ::capnp::_::PointerHelpers< ::capnp::List< ::int32_t>>::get(_builder.getPointerField(
-      ::capnp::bounded<6>() * ::capnp::POINTERS));
-}
-inline void Values::Builder::setBoolValues( ::capnp::List< ::int32_t>::Reader value) {
-  ::capnp::_::PointerHelpers< ::capnp::List< ::int32_t>>::set(_builder.getPointerField(
-      ::capnp::bounded<6>() * ::capnp::POINTERS), value);
-}
-inline void Values::Builder::setBoolValues(::kj::ArrayPtr<const  ::int32_t> value) {
-  ::capnp::_::PointerHelpers< ::capnp::List< ::int32_t>>::set(_builder.getPointerField(
-      ::capnp::bounded<6>() * ::capnp::POINTERS), value);
-}
-inline  ::capnp::List< ::int32_t>::Builder Values::Builder::initBoolValues(unsigned int size) {
-  return ::capnp::_::PointerHelpers< ::capnp::List< ::int32_t>>::init(_builder.getPointerField(
-      ::capnp::bounded<6>() * ::capnp::POINTERS), size);
-}
-inline void Values::Builder::adoptBoolValues(
-    ::capnp::Orphan< ::capnp::List< ::int32_t>>&& value) {
-  ::capnp::_::PointerHelpers< ::capnp::List< ::int32_t>>::adopt(_builder.getPointerField(
-      ::capnp::bounded<6>() * ::capnp::POINTERS), kj::mv(value));
-}
-inline ::capnp::Orphan< ::capnp::List< ::int32_t>> Values::Builder::disownBoolValues() {
-  return ::capnp::_::PointerHelpers< ::capnp::List< ::int32_t>>::disown(_builder.getPointerField(
-      ::capnp::bounded<6>() * ::capnp::POINTERS));
-}
-
-inline bool Values::Reader::hasStringValueRefs() const {
-  return !_reader.getPointerField(
-      ::capnp::bounded<7>() * ::capnp::POINTERS).isNull();
-}
-inline bool Values::Builder::hasStringValueRefs() {
-  return !_builder.getPointerField(
-      ::capnp::bounded<7>() * ::capnp::POINTERS).isNull();
-}
-inline  ::capnp::List< ::uint32_t>::Reader Values::Reader::getStringValueRefs() const {
-  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::get(_reader.getPointerField(
-      ::capnp::bounded<7>() * ::capnp::POINTERS));
-}
-inline  ::capnp::List< ::uint32_t>::Builder Values::Builder::getStringValueRefs() {
-  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::get(_builder.getPointerField(
-      ::capnp::bounded<7>() * ::capnp::POINTERS));
-}
-inline void Values::Builder::setStringValueRefs( ::capnp::List< ::uint32_t>::Reader value) {
-  ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::set(_builder.getPointerField(
-      ::capnp::bounded<7>() * ::capnp::POINTERS), value);
-}
-inline void Values::Builder::setStringValueRefs(::kj::ArrayPtr<const  ::uint32_t> value) {
-  ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::set(_builder.getPointerField(
-      ::capnp::bounded<7>() * ::capnp::POINTERS), value);
-}
-inline  ::capnp::List< ::uint32_t>::Builder Values::Builder::initStringValueRefs(unsigned int size) {
-  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::init(_builder.getPointerField(
-      ::capnp::bounded<7>() * ::capnp::POINTERS), size);
-}
-inline void Values::Builder::adoptStringValueRefs(
-    ::capnp::Orphan< ::capnp::List< ::uint32_t>>&& value) {
-  ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::adopt(_builder.getPointerField(
-      ::capnp::bounded<7>() * ::capnp::POINTERS), kj::mv(value));
-}
-inline ::capnp::Orphan< ::capnp::List< ::uint32_t>> Values::Builder::disownStringValueRefs() {
-  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::disown(_builder.getPointerField(
-      ::capnp::bounded<7>() * ::capnp::POINTERS));
-}
-
-inline bool Values::Reader::hasStringValues() const {
-  return !_reader.getPointerField(
-      ::capnp::bounded<8>() * ::capnp::POINTERS).isNull();
-}
-inline bool Values::Builder::hasStringValues() {
-  return !_builder.getPointerField(
-      ::capnp::bounded<8>() * ::capnp::POINTERS).isNull();
-}
-inline  ::capnp::List< ::capnp::Text>::Reader Values::Reader::getStringValues() const {
-  return ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::Text>>::get(_reader.getPointerField(
-      ::capnp::bounded<8>() * ::capnp::POINTERS));
-}
-inline  ::capnp::List< ::capnp::Text>::Builder Values::Builder::getStringValues() {
-  return ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::Text>>::get(_builder.getPointerField(
-      ::capnp::bounded<8>() * ::capnp::POINTERS));
-}
-inline void Values::Builder::setStringValues( ::capnp::List< ::capnp::Text>::Reader value) {
-  ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::Text>>::set(_builder.getPointerField(
-      ::capnp::bounded<8>() * ::capnp::POINTERS), value);
-}
-inline void Values::Builder::setStringValues(::kj::ArrayPtr<const  ::capnp::Text::Reader> value) {
-  ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::Text>>::set(_builder.getPointerField(
-      ::capnp::bounded<8>() * ::capnp::POINTERS), value);
-}
-inline  ::capnp::List< ::capnp::Text>::Builder Values::Builder::initStringValues(unsigned int size) {
-  return ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::Text>>::init(_builder.getPointerField(
-      ::capnp::bounded<8>() * ::capnp::POINTERS), size);
-}
-inline void Values::Builder::adoptStringValues(
-    ::capnp::Orphan< ::capnp::List< ::capnp::Text>>&& value) {
-  ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::Text>>::adopt(_builder.getPointerField(
-      ::capnp::bounded<8>() * ::capnp::POINTERS), kj::mv(value));
-}
-inline ::capnp::Orphan< ::capnp::List< ::capnp::Text>> Values::Builder::disownStringValues() {
-  return ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::Text>>::disown(_builder.getPointerField(
-      ::capnp::bounded<8>() * ::capnp::POINTERS));
-}
-
-
-#endif  // CAPNP_INCLUDED_b51166b0ce5aa3a5_
diff --git a/ModeliRpc/ModeliRpcNative/ModeliRpcNative.vcxproj b/ModeliRpc/ModeliRpcNative/ModeliRpcNative.vcxproj
deleted file mode 100644
index 51988ea612bac91468b818280934003fdf7a84b1..0000000000000000000000000000000000000000
--- a/ModeliRpc/ModeliRpcNative/ModeliRpcNative.vcxproj
+++ /dev/null
@@ -1,214 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Debug|x64">
-      <Configuration>Debug</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|x64">
-      <Configuration>Release</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <VCProjectVersion>15.0</VCProjectVersion>
-    <ProjectGuid>{171ED599-C0C6-4342-8328-E7ABE7F7FEAA}</ProjectGuid>
-    <Keyword>Win32Proj</Keyword>
-    <RootNamespace>ModeliRpcNative</RootNamespace>
-    <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <PlatformToolset>v141</PlatformToolset>
-    <CharacterSet>Unicode</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <PlatformToolset>v141</PlatformToolset>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <CharacterSet>Unicode</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <PlatformToolset>v141</PlatformToolset>
-    <CharacterSet>Unicode</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <PlatformToolset>v141</PlatformToolset>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <CharacterSet>Unicode</CharacterSet>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Label="Shared" />
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <LinkIncremental>true</LinkIncremental>
-    <OutDir>$(Platform)\$(Configuration)\</OutDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <LinkIncremental>true</LinkIncremental>
-    <OutDir>$(Platform)\$(Configuration)\</OutDir>
-    <IntDir>$(Platform)\$(Configuration)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <LinkIncremental>false</LinkIncremental>
-    <OutDir>$(Platform)\$(Configuration)\</OutDir>
-    <IntDir>$(Platform)\$(Configuration)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <LinkIncremental>false</LinkIncremental>
-    <OutDir>$(Platform)\$(Configuration)\</OutDir>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <ClCompile>
-      <PrecompiledHeader>Use</PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>Disabled</Optimization>
-      <SDLCheck>true</SDLCheck>
-      <PreprocessorDefinitions>_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <ConformanceMode>true</ConformanceMode>
-      <AdditionalIncludeDirectories>C:\capnproto\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-    </ClCompile>
-    <Link>
-      <SubSystem>Windows</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalLibraryDirectories>C:\capnproto\lib\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <AdditionalDependencies>capnp.lib;capnp-rpc.lib;kj.lib;kj-async.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-    </Link>
-    <Lib>
-      <AdditionalLibraryDirectories>C:\capnproto\lib\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <AdditionalDependencies>capnp.lib;kj.lib;%(AdditionalDependencies)</AdditionalDependencies>
-    </Lib>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <PrecompiledHeader>Use</PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>Disabled</Optimization>
-      <SDLCheck>true</SDLCheck>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <ConformanceMode>true</ConformanceMode>
-      <AdditionalIncludeDirectories>C:\capnproto\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-    </ClCompile>
-    <Link>
-      <SubSystem>Windows</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalLibraryDirectories>C:\capnproto\lib\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <AdditionalDependencies>capnp.lib;capnp-rpc.lib;kj.lib;kj-async.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-    </Link>
-    <Lib>
-      <AdditionalLibraryDirectories>C:\capnproto\lib\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <AdditionalDependencies>capnp.lib;kj.lib;%(AdditionalDependencies)</AdditionalDependencies>
-    </Lib>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <ClCompile>
-      <PrecompiledHeader>Use</PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>MaxSpeed</Optimization>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <SDLCheck>true</SDLCheck>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <ConformanceMode>true</ConformanceMode>
-      <AdditionalIncludeDirectories>C:\capnproto\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-    </ClCompile>
-    <Link>
-      <SubSystem>Windows</SubSystem>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <OptimizeReferences>true</OptimizeReferences>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalLibraryDirectories>C:\capnproto\lib\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <AdditionalDependencies>capnp.lib;capnp-rpc.lib;kj.lib;kj-async.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-    </Link>
-    <Lib>
-      <AdditionalLibraryDirectories>C:\capnproto\lib\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <AdditionalDependencies>capnp.lib;kj.lib;%(AdditionalDependencies)</AdditionalDependencies>
-    </Lib>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <ClCompile>
-      <PrecompiledHeader>Use</PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>MaxSpeed</Optimization>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <SDLCheck>true</SDLCheck>
-      <PreprocessorDefinitions>NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <ConformanceMode>true</ConformanceMode>
-      <AdditionalIncludeDirectories>C:\capnproto\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-    </ClCompile>
-    <Link>
-      <SubSystem>Windows</SubSystem>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <OptimizeReferences>true</OptimizeReferences>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalLibraryDirectories>C:\capnproto\lib\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <AdditionalDependencies>capnp.lib;capnp-rpc.lib;kj.lib;kj-async.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-    </Link>
-    <Lib>
-      <AdditionalLibraryDirectories>C:\capnproto\lib\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <AdditionalDependencies>capnp.lib;kj.lib;%(AdditionalDependencies)</AdditionalDependencies>
-    </Lib>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClInclude Include="IRpcFrontend.h" />
-    <ClInclude Include="CapnConverter.h" />
-    <ClInclude Include="ModeliFrontendImpl.h" />
-    <ClInclude Include="ModeliRpc.capnp.h" />
-    <ClInclude Include="RpcFrontend.h" />
-    <ClInclude Include="stdafx.h" />
-    <ClInclude Include="targetver.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="CapnConverter.cpp" />
-    <ClCompile Include="ModeliFrontendImpl.cpp" />
-    <ClCompile Include="RpcFrontend.cpp" />
-    <ClCompile Include="stdafx.cpp">
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
-    </ClCompile>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="ModeliRpc.capnp.c++">
-      <FileType>Document</FileType>
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
-    </ClCompile>
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-</Project>
\ No newline at end of file
diff --git a/ModeliRpc/ModeliRpcNative/ModeliRpcNative.vcxproj.filters b/ModeliRpc/ModeliRpcNative/ModeliRpcNative.vcxproj.filters
deleted file mode 100644
index 88394638939e8a5834177effe5ec7f0a58c27102..0000000000000000000000000000000000000000
--- a/ModeliRpc/ModeliRpcNative/ModeliRpcNative.vcxproj.filters
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <Filter Include="Source Files">
-      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
-      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
-    </Filter>
-    <Filter Include="Header Files">
-      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
-      <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
-    </Filter>
-    <Filter Include="Resource Files">
-      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
-      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="stdafx.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="targetver.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="ModeliFrontendImpl.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="CapnConverter.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="ModeliRpc.capnp.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="IRpcFrontend.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="RpcFrontend.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="stdafx.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="CapnConverter.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="ModeliFrontendImpl.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="ModeliRpc.capnp.c++">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="RpcFrontend.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-  </ItemGroup>
-</Project>
\ No newline at end of file
diff --git a/ModeliRpc/ModeliRpcNative/RpcFrontend.cpp b/ModeliRpc/ModeliRpcNative/RpcFrontend.cpp
deleted file mode 100644
index ace8bced215cd7cc857e8d86e55b18fce773ef6f..0000000000000000000000000000000000000000
--- a/ModeliRpc/ModeliRpcNative/RpcFrontend.cpp
+++ /dev/null
@@ -1,147 +0,0 @@
-#include "stdafx.h"
-#include "RpcFrontend.h"
-#include "CapnConverter.h"
-#include "ModeliRpc.capnp.h"
-#include "ModeliFrontendImpl.h"
-#include "capnp/ez-rpc.h"
-
-RpcFrontend::RpcFrontend()
-{
-}
-
-RpcFrontend::~RpcFrontend()
-{
-}
-
-void RpcFrontend::destroy()
-{
-    delete(this);
-}
-
-void RpcFrontend::connect(std::string address, unsigned int port)
-{
-    // Create client
-    _client = std::make_unique<capnp::EzRpcClient>(address, port);
-    // Test connection by pinging
-    auto backend = _client->getMain<ModeliBackend>();
-    backend.pingRequest().send().wait(_client->getWaitScope());
-}
-
-void RpcFrontend::registerCallbacks(NewValuesCallback newValuesCallback, LogCallback logCallback)
-{
-    if (!_client)
-    {
-        return;
-    }
-    auto backend = _client->getMain<ModeliBackend>();
-    auto regRequest = backend.registerFrontendRequest();
-    regRequest.setFrontend(kj::heap<ModeliFrontendImpl>(newValuesCallback, logCallback));
-    regRequest.send().wait(_client->getWaitScope());
-
-}
-
-int RpcFrontend::play()
-{
-    if (!_client)
-    {
-        return FMI2_ERROR;
-    }
-    auto backend = _client->getMain<ModeliBackend>();
-    return backend.playRequest().send().wait(_client->getWaitScope()).getResult();
-}
-
-int RpcFrontend::playFast(double timeToPlay)
-{
-    if (!_client)
-    {
-        return FMI2_ERROR;
-    }
-    auto backend = _client->getMain<ModeliBackend>();
-    auto request = backend.playFastRequest();
-    request.setTimeToPlay(timeToPlay);
-    request.send().wait(_client->getWaitScope()).getResult();
-}
-
-void RpcFrontend::pause()
-{
-    if (!_client)
-    {
-        return;
-    }
-    auto backend = _client->getMain<ModeliBackend>();
-    backend.pauseRequest().send().wait(_client->getWaitScope());
-}
-
-int RpcFrontend::stop()
-{
-    if (!_client)
-    {
-        return FMI2_ERROR;
-    }
-    auto backend = _client->getMain<ModeliBackend>();
-    return backend.stopRequest().send().wait(_client->getWaitScope()).getResult();
-}
-
-bool RpcFrontend::addFmu(std::string instanceName, std::vector<unsigned char> fmuFile)
-{
-    if (!_client)
-    {
-        return false;
-    }
-    auto backend = _client->getMain<ModeliBackend>();
-    auto addFmuReq = backend.addFmuRequest();
-    addFmuReq.setInstanceName(instanceName);
-    addFmuReq.setFmuFile(kj::arrayPtr(fmuFile.data(), fmuFile.size()));
-    return addFmuReq.send().wait(_client->getWaitScope()).getResult();
-}
-
-bool RpcFrontend::removeFmu(std::string instanceName)
-{
-    if (!_client)
-    {
-        return false;
-    }
-    auto backend = _client->getMain<ModeliBackend>();
-    auto removefmuReq = backend.removeFmuRequest();
-    removefmuReq.setInstanceName(instanceName);
-    return removefmuReq.send().wait(_client->getWaitScope()).getResult();
-}
-
-bool RpcFrontend::addChannelLink(ChannelLink channelLink)
-{
-    if (!_client)
-    {
-        return false;
-    }
-    // Send request
-    auto backend = _client->getMain<ModeliBackend>();
-    auto request = backend.addChannelLinkRequest();
-    request.setChannelLink(CapnConverter::convertChannelLink(channelLink));
-    return request.send().wait(_client->getWaitScope()).getResult();
-}
-
-bool RpcFrontend::removeChannelink(ChannelLink channelLink)
-{
-    if (!_client)
-    {
-        return false;
-    }
-    // Send request
-    auto backend = _client->getMain<ModeliBackend>();
-    auto request = backend.removeChannelLinkRequest();
-    request.setChannelLink(CapnConverter::convertChannelLink(channelLink));
-    return request.send().wait(_client->getWaitScope()).getResult();
-}
-
-int RpcFrontend::setValues(ValuesStruct values)
-{
-    if (!_client)
-    {
-        return FMI2_ERROR;
-    }
-    // Send request
-    auto backend = _client->getMain<ModeliBackend>();
-    auto request = backend.setValuesRequest();
-    request.setValues(CapnConverter::convertValues(values));
-    return request.send().wait(_client->getWaitScope()).getResult();
-}
diff --git a/ModeliRpc/ModeliRpcNative/RpcFrontend.h b/ModeliRpc/ModeliRpcNative/RpcFrontend.h
deleted file mode 100644
index 8b514da0c16219df7d59ecdbb8d44ce63c98503c..0000000000000000000000000000000000000000
--- a/ModeliRpc/ModeliRpcNative/RpcFrontend.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#pragma once
-#include "IRpcFrontend.h"
-#include <memory>
-
-
-namespace capnp
-{
-    class EzRpcClient;
-}
-
-class RpcFrontend : public IRpcFrontend
-{
-public:
-    RpcFrontend();
-    ~RpcFrontend();
-private:
-    std::unique_ptr<capnp::EzRpcClient> _client;
-    const int FMI2_ERROR = 3;
-
-    // Inherited via IModeliFrontend
-    void destroy() override;
-    void connect(std::string address, unsigned int port) override;
-    void registerCallbacks(NewValuesCallback newValuesCallback, LogCallback logCallback) override;
-    int play() override;
-    int playFast(double timeToPlay) override;
-    void pause() override;
-    int stop() override;
-    bool addFmu(std::string instanceName, std::vector<unsigned char> fmuFile) override;
-    bool removeFmu(std::string instanceName) override;
-    bool addChannelLink(ChannelLink channelLink) override;
-    bool removeChannelink(ChannelLink channelLink) override;
-    int setValues(ValuesStruct values) override;
-};
-
-/// Factory method that returns an implementation of IRpcFrontend.
-extern "C" __declspec(dllexport) IRpcFrontend* createRpcFrontend()
-{
-    return new RpcFrontend();
-}
\ No newline at end of file
diff --git a/ModeliRpc/ModeliRpcNative/stdafx.cpp b/ModeliRpc/ModeliRpcNative/stdafx.cpp
deleted file mode 100644
index 0276f103440753b20c16291ffbf967b3c08fa225..0000000000000000000000000000000000000000
Binary files a/ModeliRpc/ModeliRpcNative/stdafx.cpp and /dev/null differ
diff --git a/ModeliRpc/ModeliRpcNative/stdafx.h b/ModeliRpc/ModeliRpcNative/stdafx.h
deleted file mode 100644
index 397a1e5546242261ad688b4ccfa061124b11e936..0000000000000000000000000000000000000000
Binary files a/ModeliRpc/ModeliRpcNative/stdafx.h and /dev/null differ
diff --git a/ModeliRpc/ModeliRpcNative/targetver.h b/ModeliRpc/ModeliRpcNative/targetver.h
deleted file mode 100644
index 567cd346efccbe2d1f43a4056bdcb58a2b93e1a8..0000000000000000000000000000000000000000
Binary files a/ModeliRpc/ModeliRpcNative/targetver.h and /dev/null differ
diff --git a/ModeliRpc_Cpp/ModeliRpc.grpc.pb.cc b/ModeliRpc_Cpp/ModeliRpc.grpc.pb.cc
new file mode 100644
index 0000000000000000000000000000000000000000..f96c5af1d67fb7bf333fd90a1e3ebb02f4374115
--- /dev/null
+++ b/ModeliRpc_Cpp/ModeliRpc.grpc.pb.cc
@@ -0,0 +1,324 @@
+// Generated by the gRPC C++ plugin.
+// If you make any local change, they will be lost.
+// source: ModeliRpc.proto
+
+#include "ModeliRpc.pb.h"
+#include "ModeliRpc.grpc.pb.h"
+
+#include <grpc++/impl/codegen/async_stream.h>
+#include <grpc++/impl/codegen/async_unary_call.h>
+#include <grpc++/impl/codegen/channel_interface.h>
+#include <grpc++/impl/codegen/client_unary_call.h>
+#include <grpc++/impl/codegen/method_handler_impl.h>
+#include <grpc++/impl/codegen/rpc_service_method.h>
+#include <grpc++/impl/codegen/service_type.h>
+#include <grpc++/impl/codegen/sync_stream.h>
+namespace ModeliRpc {
+
+static const char* ModeliBackend_method_names[] = {
+  "/ModeliRpc.ModeliBackend/Play",
+  "/ModeliRpc.ModeliBackend/PlayFast",
+  "/ModeliRpc.ModeliBackend/Pause",
+  "/ModeliRpc.ModeliBackend/Stop",
+  "/ModeliRpc.ModeliBackend/AddFmu",
+  "/ModeliRpc.ModeliBackend/RemoveFmu",
+  "/ModeliRpc.ModeliBackend/AddChannelLink",
+  "/ModeliRpc.ModeliBackend/RemoveChannelLink",
+  "/ModeliRpc.ModeliBackend/SetValues",
+  "/ModeliRpc.ModeliBackend/NewValues",
+  "/ModeliRpc.ModeliBackend/Log",
+};
+
+std::unique_ptr< ModeliBackend::Stub> ModeliBackend::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) {
+  (void)options;
+  std::unique_ptr< ModeliBackend::Stub> stub(new ModeliBackend::Stub(channel));
+  return stub;
+}
+
+ModeliBackend::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel)
+  : channel_(channel), rpcmethod_Play_(ModeliBackend_method_names[0], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
+  , rpcmethod_PlayFast_(ModeliBackend_method_names[1], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
+  , rpcmethod_Pause_(ModeliBackend_method_names[2], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
+  , rpcmethod_Stop_(ModeliBackend_method_names[3], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
+  , rpcmethod_AddFmu_(ModeliBackend_method_names[4], ::grpc::internal::RpcMethod::CLIENT_STREAMING, channel)
+  , rpcmethod_RemoveFmu_(ModeliBackend_method_names[5], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
+  , rpcmethod_AddChannelLink_(ModeliBackend_method_names[6], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
+  , rpcmethod_RemoveChannelLink_(ModeliBackend_method_names[7], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
+  , rpcmethod_SetValues_(ModeliBackend_method_names[8], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
+  , rpcmethod_NewValues_(ModeliBackend_method_names[9], ::grpc::internal::RpcMethod::SERVER_STREAMING, channel)
+  , rpcmethod_Log_(ModeliBackend_method_names[10], ::grpc::internal::RpcMethod::SERVER_STREAMING, channel)
+  {}
+
+::grpc::Status ModeliBackend::Stub::Play(::grpc::ClientContext* context, const ::ModeliRpc::PlayRequest& request, ::ModeliRpc::PlayResponse* response) {
+  return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_Play_, context, request, response);
+}
+
+::grpc::ClientAsyncResponseReader< ::ModeliRpc::PlayResponse>* ModeliBackend::Stub::AsyncPlayRaw(::grpc::ClientContext* context, const ::ModeliRpc::PlayRequest& request, ::grpc::CompletionQueue* cq) {
+  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::ModeliRpc::PlayResponse>::Create(channel_.get(), cq, rpcmethod_Play_, context, request, true);
+}
+
+::grpc::ClientAsyncResponseReader< ::ModeliRpc::PlayResponse>* ModeliBackend::Stub::PrepareAsyncPlayRaw(::grpc::ClientContext* context, const ::ModeliRpc::PlayRequest& request, ::grpc::CompletionQueue* cq) {
+  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::ModeliRpc::PlayResponse>::Create(channel_.get(), cq, rpcmethod_Play_, context, request, false);
+}
+
+::grpc::Status ModeliBackend::Stub::PlayFast(::grpc::ClientContext* context, const ::ModeliRpc::PlayFastRequest& request, ::ModeliRpc::PlayFastResponse* response) {
+  return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_PlayFast_, context, request, response);
+}
+
+::grpc::ClientAsyncResponseReader< ::ModeliRpc::PlayFastResponse>* ModeliBackend::Stub::AsyncPlayFastRaw(::grpc::ClientContext* context, const ::ModeliRpc::PlayFastRequest& request, ::grpc::CompletionQueue* cq) {
+  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::ModeliRpc::PlayFastResponse>::Create(channel_.get(), cq, rpcmethod_PlayFast_, context, request, true);
+}
+
+::grpc::ClientAsyncResponseReader< ::ModeliRpc::PlayFastResponse>* ModeliBackend::Stub::PrepareAsyncPlayFastRaw(::grpc::ClientContext* context, const ::ModeliRpc::PlayFastRequest& request, ::grpc::CompletionQueue* cq) {
+  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::ModeliRpc::PlayFastResponse>::Create(channel_.get(), cq, rpcmethod_PlayFast_, context, request, false);
+}
+
+::grpc::Status ModeliBackend::Stub::Pause(::grpc::ClientContext* context, const ::ModeliRpc::PauseRequest& request, ::ModeliRpc::PauseResponse* response) {
+  return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_Pause_, context, request, response);
+}
+
+::grpc::ClientAsyncResponseReader< ::ModeliRpc::PauseResponse>* ModeliBackend::Stub::AsyncPauseRaw(::grpc::ClientContext* context, const ::ModeliRpc::PauseRequest& request, ::grpc::CompletionQueue* cq) {
+  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::ModeliRpc::PauseResponse>::Create(channel_.get(), cq, rpcmethod_Pause_, context, request, true);
+}
+
+::grpc::ClientAsyncResponseReader< ::ModeliRpc::PauseResponse>* ModeliBackend::Stub::PrepareAsyncPauseRaw(::grpc::ClientContext* context, const ::ModeliRpc::PauseRequest& request, ::grpc::CompletionQueue* cq) {
+  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::ModeliRpc::PauseResponse>::Create(channel_.get(), cq, rpcmethod_Pause_, context, request, false);
+}
+
+::grpc::Status ModeliBackend::Stub::Stop(::grpc::ClientContext* context, const ::ModeliRpc::StopRequest& request, ::ModeliRpc::StopResponse* response) {
+  return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_Stop_, context, request, response);
+}
+
+::grpc::ClientAsyncResponseReader< ::ModeliRpc::StopResponse>* ModeliBackend::Stub::AsyncStopRaw(::grpc::ClientContext* context, const ::ModeliRpc::StopRequest& request, ::grpc::CompletionQueue* cq) {
+  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::ModeliRpc::StopResponse>::Create(channel_.get(), cq, rpcmethod_Stop_, context, request, true);
+}
+
+::grpc::ClientAsyncResponseReader< ::ModeliRpc::StopResponse>* ModeliBackend::Stub::PrepareAsyncStopRaw(::grpc::ClientContext* context, const ::ModeliRpc::StopRequest& request, ::grpc::CompletionQueue* cq) {
+  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::ModeliRpc::StopResponse>::Create(channel_.get(), cq, rpcmethod_Stop_, context, request, false);
+}
+
+::grpc::ClientWriter< ::ModeliRpc::AddFmuRequest>* ModeliBackend::Stub::AddFmuRaw(::grpc::ClientContext* context, ::ModeliRpc::AddFmuResponse* response) {
+  return ::grpc::internal::ClientWriterFactory< ::ModeliRpc::AddFmuRequest>::Create(channel_.get(), rpcmethod_AddFmu_, context, response);
+}
+
+::grpc::ClientAsyncWriter< ::ModeliRpc::AddFmuRequest>* ModeliBackend::Stub::AsyncAddFmuRaw(::grpc::ClientContext* context, ::ModeliRpc::AddFmuResponse* response, ::grpc::CompletionQueue* cq, void* tag) {
+  return ::grpc::internal::ClientAsyncWriterFactory< ::ModeliRpc::AddFmuRequest>::Create(channel_.get(), cq, rpcmethod_AddFmu_, context, response, true, tag);
+}
+
+::grpc::ClientAsyncWriter< ::ModeliRpc::AddFmuRequest>* ModeliBackend::Stub::PrepareAsyncAddFmuRaw(::grpc::ClientContext* context, ::ModeliRpc::AddFmuResponse* response, ::grpc::CompletionQueue* cq) {
+  return ::grpc::internal::ClientAsyncWriterFactory< ::ModeliRpc::AddFmuRequest>::Create(channel_.get(), cq, rpcmethod_AddFmu_, context, response, false, nullptr);
+}
+
+::grpc::Status ModeliBackend::Stub::RemoveFmu(::grpc::ClientContext* context, const ::ModeliRpc::RemoveFmuRequest& request, ::ModeliRpc::RemoveFmuResponse* response) {
+  return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_RemoveFmu_, context, request, response);
+}
+
+::grpc::ClientAsyncResponseReader< ::ModeliRpc::RemoveFmuResponse>* ModeliBackend::Stub::AsyncRemoveFmuRaw(::grpc::ClientContext* context, const ::ModeliRpc::RemoveFmuRequest& request, ::grpc::CompletionQueue* cq) {
+  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::ModeliRpc::RemoveFmuResponse>::Create(channel_.get(), cq, rpcmethod_RemoveFmu_, context, request, true);
+}
+
+::grpc::ClientAsyncResponseReader< ::ModeliRpc::RemoveFmuResponse>* ModeliBackend::Stub::PrepareAsyncRemoveFmuRaw(::grpc::ClientContext* context, const ::ModeliRpc::RemoveFmuRequest& request, ::grpc::CompletionQueue* cq) {
+  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::ModeliRpc::RemoveFmuResponse>::Create(channel_.get(), cq, rpcmethod_RemoveFmu_, context, request, false);
+}
+
+::grpc::Status ModeliBackend::Stub::AddChannelLink(::grpc::ClientContext* context, const ::ModeliRpc::AddChannelLinkRequest& request, ::ModeliRpc::AddChannelLinkResponse* response) {
+  return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_AddChannelLink_, context, request, response);
+}
+
+::grpc::ClientAsyncResponseReader< ::ModeliRpc::AddChannelLinkResponse>* ModeliBackend::Stub::AsyncAddChannelLinkRaw(::grpc::ClientContext* context, const ::ModeliRpc::AddChannelLinkRequest& request, ::grpc::CompletionQueue* cq) {
+  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::ModeliRpc::AddChannelLinkResponse>::Create(channel_.get(), cq, rpcmethod_AddChannelLink_, context, request, true);
+}
+
+::grpc::ClientAsyncResponseReader< ::ModeliRpc::AddChannelLinkResponse>* ModeliBackend::Stub::PrepareAsyncAddChannelLinkRaw(::grpc::ClientContext* context, const ::ModeliRpc::AddChannelLinkRequest& request, ::grpc::CompletionQueue* cq) {
+  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::ModeliRpc::AddChannelLinkResponse>::Create(channel_.get(), cq, rpcmethod_AddChannelLink_, context, request, false);
+}
+
+::grpc::Status ModeliBackend::Stub::RemoveChannelLink(::grpc::ClientContext* context, const ::ModeliRpc::RemoveChannelLinkRequest& request, ::ModeliRpc::RemoveChannelLinkResponse* response) {
+  return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_RemoveChannelLink_, context, request, response);
+}
+
+::grpc::ClientAsyncResponseReader< ::ModeliRpc::RemoveChannelLinkResponse>* ModeliBackend::Stub::AsyncRemoveChannelLinkRaw(::grpc::ClientContext* context, const ::ModeliRpc::RemoveChannelLinkRequest& request, ::grpc::CompletionQueue* cq) {
+  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::ModeliRpc::RemoveChannelLinkResponse>::Create(channel_.get(), cq, rpcmethod_RemoveChannelLink_, context, request, true);
+}
+
+::grpc::ClientAsyncResponseReader< ::ModeliRpc::RemoveChannelLinkResponse>* ModeliBackend::Stub::PrepareAsyncRemoveChannelLinkRaw(::grpc::ClientContext* context, const ::ModeliRpc::RemoveChannelLinkRequest& request, ::grpc::CompletionQueue* cq) {
+  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::ModeliRpc::RemoveChannelLinkResponse>::Create(channel_.get(), cq, rpcmethod_RemoveChannelLink_, context, request, false);
+}
+
+::grpc::Status ModeliBackend::Stub::SetValues(::grpc::ClientContext* context, const ::ModeliRpc::SetValuesReqest& request, ::ModeliRpc::SetValuesResponse* response) {
+  return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_SetValues_, context, request, response);
+}
+
+::grpc::ClientAsyncResponseReader< ::ModeliRpc::SetValuesResponse>* ModeliBackend::Stub::AsyncSetValuesRaw(::grpc::ClientContext* context, const ::ModeliRpc::SetValuesReqest& request, ::grpc::CompletionQueue* cq) {
+  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::ModeliRpc::SetValuesResponse>::Create(channel_.get(), cq, rpcmethod_SetValues_, context, request, true);
+}
+
+::grpc::ClientAsyncResponseReader< ::ModeliRpc::SetValuesResponse>* ModeliBackend::Stub::PrepareAsyncSetValuesRaw(::grpc::ClientContext* context, const ::ModeliRpc::SetValuesReqest& request, ::grpc::CompletionQueue* cq) {
+  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::ModeliRpc::SetValuesResponse>::Create(channel_.get(), cq, rpcmethod_SetValues_, context, request, false);
+}
+
+::grpc::ClientReader< ::ModeliRpc::NewValuesResponse>* ModeliBackend::Stub::NewValuesRaw(::grpc::ClientContext* context, const ::ModeliRpc::NewValuesRequest& request) {
+  return ::grpc::internal::ClientReaderFactory< ::ModeliRpc::NewValuesResponse>::Create(channel_.get(), rpcmethod_NewValues_, context, request);
+}
+
+::grpc::ClientAsyncReader< ::ModeliRpc::NewValuesResponse>* ModeliBackend::Stub::AsyncNewValuesRaw(::grpc::ClientContext* context, const ::ModeliRpc::NewValuesRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
+  return ::grpc::internal::ClientAsyncReaderFactory< ::ModeliRpc::NewValuesResponse>::Create(channel_.get(), cq, rpcmethod_NewValues_, context, request, true, tag);
+}
+
+::grpc::ClientAsyncReader< ::ModeliRpc::NewValuesResponse>* ModeliBackend::Stub::PrepareAsyncNewValuesRaw(::grpc::ClientContext* context, const ::ModeliRpc::NewValuesRequest& request, ::grpc::CompletionQueue* cq) {
+  return ::grpc::internal::ClientAsyncReaderFactory< ::ModeliRpc::NewValuesResponse>::Create(channel_.get(), cq, rpcmethod_NewValues_, context, request, false, nullptr);
+}
+
+::grpc::ClientReader< ::ModeliRpc::LogResponse>* ModeliBackend::Stub::LogRaw(::grpc::ClientContext* context, const ::ModeliRpc::LogRequest& request) {
+  return ::grpc::internal::ClientReaderFactory< ::ModeliRpc::LogResponse>::Create(channel_.get(), rpcmethod_Log_, context, request);
+}
+
+::grpc::ClientAsyncReader< ::ModeliRpc::LogResponse>* ModeliBackend::Stub::AsyncLogRaw(::grpc::ClientContext* context, const ::ModeliRpc::LogRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
+  return ::grpc::internal::ClientAsyncReaderFactory< ::ModeliRpc::LogResponse>::Create(channel_.get(), cq, rpcmethod_Log_, context, request, true, tag);
+}
+
+::grpc::ClientAsyncReader< ::ModeliRpc::LogResponse>* ModeliBackend::Stub::PrepareAsyncLogRaw(::grpc::ClientContext* context, const ::ModeliRpc::LogRequest& request, ::grpc::CompletionQueue* cq) {
+  return ::grpc::internal::ClientAsyncReaderFactory< ::ModeliRpc::LogResponse>::Create(channel_.get(), cq, rpcmethod_Log_, context, request, false, nullptr);
+}
+
+ModeliBackend::Service::Service() {
+  AddMethod(new ::grpc::internal::RpcServiceMethod(
+      ModeliBackend_method_names[0],
+      ::grpc::internal::RpcMethod::NORMAL_RPC,
+      new ::grpc::internal::RpcMethodHandler< ModeliBackend::Service, ::ModeliRpc::PlayRequest, ::ModeliRpc::PlayResponse>(
+          std::mem_fn(&ModeliBackend::Service::Play), this)));
+  AddMethod(new ::grpc::internal::RpcServiceMethod(
+      ModeliBackend_method_names[1],
+      ::grpc::internal::RpcMethod::NORMAL_RPC,
+      new ::grpc::internal::RpcMethodHandler< ModeliBackend::Service, ::ModeliRpc::PlayFastRequest, ::ModeliRpc::PlayFastResponse>(
+          std::mem_fn(&ModeliBackend::Service::PlayFast), this)));
+  AddMethod(new ::grpc::internal::RpcServiceMethod(
+      ModeliBackend_method_names[2],
+      ::grpc::internal::RpcMethod::NORMAL_RPC,
+      new ::grpc::internal::RpcMethodHandler< ModeliBackend::Service, ::ModeliRpc::PauseRequest, ::ModeliRpc::PauseResponse>(
+          std::mem_fn(&ModeliBackend::Service::Pause), this)));
+  AddMethod(new ::grpc::internal::RpcServiceMethod(
+      ModeliBackend_method_names[3],
+      ::grpc::internal::RpcMethod::NORMAL_RPC,
+      new ::grpc::internal::RpcMethodHandler< ModeliBackend::Service, ::ModeliRpc::StopRequest, ::ModeliRpc::StopResponse>(
+          std::mem_fn(&ModeliBackend::Service::Stop), this)));
+  AddMethod(new ::grpc::internal::RpcServiceMethod(
+      ModeliBackend_method_names[4],
+      ::grpc::internal::RpcMethod::CLIENT_STREAMING,
+      new ::grpc::internal::ClientStreamingHandler< ModeliBackend::Service, ::ModeliRpc::AddFmuRequest, ::ModeliRpc::AddFmuResponse>(
+          std::mem_fn(&ModeliBackend::Service::AddFmu), this)));
+  AddMethod(new ::grpc::internal::RpcServiceMethod(
+      ModeliBackend_method_names[5],
+      ::grpc::internal::RpcMethod::NORMAL_RPC,
+      new ::grpc::internal::RpcMethodHandler< ModeliBackend::Service, ::ModeliRpc::RemoveFmuRequest, ::ModeliRpc::RemoveFmuResponse>(
+          std::mem_fn(&ModeliBackend::Service::RemoveFmu), this)));
+  AddMethod(new ::grpc::internal::RpcServiceMethod(
+      ModeliBackend_method_names[6],
+      ::grpc::internal::RpcMethod::NORMAL_RPC,
+      new ::grpc::internal::RpcMethodHandler< ModeliBackend::Service, ::ModeliRpc::AddChannelLinkRequest, ::ModeliRpc::AddChannelLinkResponse>(
+          std::mem_fn(&ModeliBackend::Service::AddChannelLink), this)));
+  AddMethod(new ::grpc::internal::RpcServiceMethod(
+      ModeliBackend_method_names[7],
+      ::grpc::internal::RpcMethod::NORMAL_RPC,
+      new ::grpc::internal::RpcMethodHandler< ModeliBackend::Service, ::ModeliRpc::RemoveChannelLinkRequest, ::ModeliRpc::RemoveChannelLinkResponse>(
+          std::mem_fn(&ModeliBackend::Service::RemoveChannelLink), this)));
+  AddMethod(new ::grpc::internal::RpcServiceMethod(
+      ModeliBackend_method_names[8],
+      ::grpc::internal::RpcMethod::NORMAL_RPC,
+      new ::grpc::internal::RpcMethodHandler< ModeliBackend::Service, ::ModeliRpc::SetValuesReqest, ::ModeliRpc::SetValuesResponse>(
+          std::mem_fn(&ModeliBackend::Service::SetValues), this)));
+  AddMethod(new ::grpc::internal::RpcServiceMethod(
+      ModeliBackend_method_names[9],
+      ::grpc::internal::RpcMethod::SERVER_STREAMING,
+      new ::grpc::internal::ServerStreamingHandler< ModeliBackend::Service, ::ModeliRpc::NewValuesRequest, ::ModeliRpc::NewValuesResponse>(
+          std::mem_fn(&ModeliBackend::Service::NewValues), this)));
+  AddMethod(new ::grpc::internal::RpcServiceMethod(
+      ModeliBackend_method_names[10],
+      ::grpc::internal::RpcMethod::SERVER_STREAMING,
+      new ::grpc::internal::ServerStreamingHandler< ModeliBackend::Service, ::ModeliRpc::LogRequest, ::ModeliRpc::LogResponse>(
+          std::mem_fn(&ModeliBackend::Service::Log), this)));
+}
+
+ModeliBackend::Service::~Service() {
+}
+
+::grpc::Status ModeliBackend::Service::Play(::grpc::ServerContext* context, const ::ModeliRpc::PlayRequest* request, ::ModeliRpc::PlayResponse* response) {
+  (void) context;
+  (void) request;
+  (void) response;
+  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+}
+
+::grpc::Status ModeliBackend::Service::PlayFast(::grpc::ServerContext* context, const ::ModeliRpc::PlayFastRequest* request, ::ModeliRpc::PlayFastResponse* response) {
+  (void) context;
+  (void) request;
+  (void) response;
+  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+}
+
+::grpc::Status ModeliBackend::Service::Pause(::grpc::ServerContext* context, const ::ModeliRpc::PauseRequest* request, ::ModeliRpc::PauseResponse* response) {
+  (void) context;
+  (void) request;
+  (void) response;
+  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+}
+
+::grpc::Status ModeliBackend::Service::Stop(::grpc::ServerContext* context, const ::ModeliRpc::StopRequest* request, ::ModeliRpc::StopResponse* response) {
+  (void) context;
+  (void) request;
+  (void) response;
+  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+}
+
+::grpc::Status ModeliBackend::Service::AddFmu(::grpc::ServerContext* context, ::grpc::ServerReader< ::ModeliRpc::AddFmuRequest>* reader, ::ModeliRpc::AddFmuResponse* response) {
+  (void) context;
+  (void) reader;
+  (void) response;
+  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+}
+
+::grpc::Status ModeliBackend::Service::RemoveFmu(::grpc::ServerContext* context, const ::ModeliRpc::RemoveFmuRequest* request, ::ModeliRpc::RemoveFmuResponse* response) {
+  (void) context;
+  (void) request;
+  (void) response;
+  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+}
+
+::grpc::Status ModeliBackend::Service::AddChannelLink(::grpc::ServerContext* context, const ::ModeliRpc::AddChannelLinkRequest* request, ::ModeliRpc::AddChannelLinkResponse* response) {
+  (void) context;
+  (void) request;
+  (void) response;
+  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+}
+
+::grpc::Status ModeliBackend::Service::RemoveChannelLink(::grpc::ServerContext* context, const ::ModeliRpc::RemoveChannelLinkRequest* request, ::ModeliRpc::RemoveChannelLinkResponse* response) {
+  (void) context;
+  (void) request;
+  (void) response;
+  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+}
+
+::grpc::Status ModeliBackend::Service::SetValues(::grpc::ServerContext* context, const ::ModeliRpc::SetValuesReqest* request, ::ModeliRpc::SetValuesResponse* response) {
+  (void) context;
+  (void) request;
+  (void) response;
+  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+}
+
+::grpc::Status ModeliBackend::Service::NewValues(::grpc::ServerContext* context, const ::ModeliRpc::NewValuesRequest* request, ::grpc::ServerWriter< ::ModeliRpc::NewValuesResponse>* writer) {
+  (void) context;
+  (void) request;
+  (void) writer;
+  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+}
+
+::grpc::Status ModeliBackend::Service::Log(::grpc::ServerContext* context, const ::ModeliRpc::LogRequest* request, ::grpc::ServerWriter< ::ModeliRpc::LogResponse>* writer) {
+  (void) context;
+  (void) request;
+  (void) writer;
+  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+}
+
+
+}  // namespace ModeliRpc
+
diff --git a/ModeliRpc_Cpp/ModeliRpc.grpc.pb.h b/ModeliRpc_Cpp/ModeliRpc.grpc.pb.h
new file mode 100644
index 0000000000000000000000000000000000000000..4ae86f36a4f30ace6e6759426dd82b83df50c086
--- /dev/null
+++ b/ModeliRpc_Cpp/ModeliRpc.grpc.pb.h
@@ -0,0 +1,924 @@
+// Generated by the gRPC C++ plugin.
+// If you make any local change, they will be lost.
+// source: ModeliRpc.proto
+// Original file comments:
+// Language defintion
+#ifndef GRPC_ModeliRpc_2eproto__INCLUDED
+#define GRPC_ModeliRpc_2eproto__INCLUDED
+
+#include "ModeliRpc.pb.h"
+
+#include <grpc++/impl/codegen/async_stream.h>
+#include <grpc++/impl/codegen/async_unary_call.h>
+#include <grpc++/impl/codegen/method_handler_impl.h>
+#include <grpc++/impl/codegen/proto_utils.h>
+#include <grpc++/impl/codegen/rpc_method.h>
+#include <grpc++/impl/codegen/service_type.h>
+#include <grpc++/impl/codegen/status.h>
+#include <grpc++/impl/codegen/stub_options.h>
+#include <grpc++/impl/codegen/sync_stream.h>
+
+namespace grpc {
+class CompletionQueue;
+class Channel;
+class ServerCompletionQueue;
+class ServerContext;
+}  // namespace grpc
+
+namespace ModeliRpc {
+
+// Service must be offered by a ModeliChart Backend
+// Default Port ist 52062
+class ModeliBackend final {
+ public:
+  static constexpr char const* service_full_name() {
+    return "ModeliRpc.ModeliBackend";
+  }
+  class StubInterface {
+   public:
+    virtual ~StubInterface() {}
+    // Simulation state control
+    virtual ::grpc::Status Play(::grpc::ClientContext* context, const ::ModeliRpc::PlayRequest& request, ::ModeliRpc::PlayResponse* response) = 0;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::PlayResponse>> AsyncPlay(::grpc::ClientContext* context, const ::ModeliRpc::PlayRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::PlayResponse>>(AsyncPlayRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::PlayResponse>> PrepareAsyncPlay(::grpc::ClientContext* context, const ::ModeliRpc::PlayRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::PlayResponse>>(PrepareAsyncPlayRaw(context, request, cq));
+    }
+    virtual ::grpc::Status PlayFast(::grpc::ClientContext* context, const ::ModeliRpc::PlayFastRequest& request, ::ModeliRpc::PlayFastResponse* response) = 0;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::PlayFastResponse>> AsyncPlayFast(::grpc::ClientContext* context, const ::ModeliRpc::PlayFastRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::PlayFastResponse>>(AsyncPlayFastRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::PlayFastResponse>> PrepareAsyncPlayFast(::grpc::ClientContext* context, const ::ModeliRpc::PlayFastRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::PlayFastResponse>>(PrepareAsyncPlayFastRaw(context, request, cq));
+    }
+    virtual ::grpc::Status Pause(::grpc::ClientContext* context, const ::ModeliRpc::PauseRequest& request, ::ModeliRpc::PauseResponse* response) = 0;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::PauseResponse>> AsyncPause(::grpc::ClientContext* context, const ::ModeliRpc::PauseRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::PauseResponse>>(AsyncPauseRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::PauseResponse>> PrepareAsyncPause(::grpc::ClientContext* context, const ::ModeliRpc::PauseRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::PauseResponse>>(PrepareAsyncPauseRaw(context, request, cq));
+    }
+    virtual ::grpc::Status Stop(::grpc::ClientContext* context, const ::ModeliRpc::StopRequest& request, ::ModeliRpc::StopResponse* response) = 0;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::StopResponse>> AsyncStop(::grpc::ClientContext* context, const ::ModeliRpc::StopRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::StopResponse>>(AsyncStopRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::StopResponse>> PrepareAsyncStop(::grpc::ClientContext* context, const ::ModeliRpc::StopRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::StopResponse>>(PrepareAsyncStopRaw(context, request, cq));
+    }
+    // Fmu management
+    // Transfer FMU via stream and use chunking
+    std::unique_ptr< ::grpc::ClientWriterInterface< ::ModeliRpc::AddFmuRequest>> AddFmu(::grpc::ClientContext* context, ::ModeliRpc::AddFmuResponse* response) {
+      return std::unique_ptr< ::grpc::ClientWriterInterface< ::ModeliRpc::AddFmuRequest>>(AddFmuRaw(context, response));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncWriterInterface< ::ModeliRpc::AddFmuRequest>> AsyncAddFmu(::grpc::ClientContext* context, ::ModeliRpc::AddFmuResponse* response, ::grpc::CompletionQueue* cq, void* tag) {
+      return std::unique_ptr< ::grpc::ClientAsyncWriterInterface< ::ModeliRpc::AddFmuRequest>>(AsyncAddFmuRaw(context, response, cq, tag));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncWriterInterface< ::ModeliRpc::AddFmuRequest>> PrepareAsyncAddFmu(::grpc::ClientContext* context, ::ModeliRpc::AddFmuResponse* response, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncWriterInterface< ::ModeliRpc::AddFmuRequest>>(PrepareAsyncAddFmuRaw(context, response, cq));
+    }
+    virtual ::grpc::Status RemoveFmu(::grpc::ClientContext* context, const ::ModeliRpc::RemoveFmuRequest& request, ::ModeliRpc::RemoveFmuResponse* response) = 0;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::RemoveFmuResponse>> AsyncRemoveFmu(::grpc::ClientContext* context, const ::ModeliRpc::RemoveFmuRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::RemoveFmuResponse>>(AsyncRemoveFmuRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::RemoveFmuResponse>> PrepareAsyncRemoveFmu(::grpc::ClientContext* context, const ::ModeliRpc::RemoveFmuRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::RemoveFmuResponse>>(PrepareAsyncRemoveFmuRaw(context, request, cq));
+    }
+    // ChannelLink management
+    virtual ::grpc::Status AddChannelLink(::grpc::ClientContext* context, const ::ModeliRpc::AddChannelLinkRequest& request, ::ModeliRpc::AddChannelLinkResponse* response) = 0;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::AddChannelLinkResponse>> AsyncAddChannelLink(::grpc::ClientContext* context, const ::ModeliRpc::AddChannelLinkRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::AddChannelLinkResponse>>(AsyncAddChannelLinkRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::AddChannelLinkResponse>> PrepareAsyncAddChannelLink(::grpc::ClientContext* context, const ::ModeliRpc::AddChannelLinkRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::AddChannelLinkResponse>>(PrepareAsyncAddChannelLinkRaw(context, request, cq));
+    }
+    virtual ::grpc::Status RemoveChannelLink(::grpc::ClientContext* context, const ::ModeliRpc::RemoveChannelLinkRequest& request, ::ModeliRpc::RemoveChannelLinkResponse* response) = 0;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::RemoveChannelLinkResponse>> AsyncRemoveChannelLink(::grpc::ClientContext* context, const ::ModeliRpc::RemoveChannelLinkRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::RemoveChannelLinkResponse>>(AsyncRemoveChannelLinkRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::RemoveChannelLinkResponse>> PrepareAsyncRemoveChannelLink(::grpc::ClientContext* context, const ::ModeliRpc::RemoveChannelLinkRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::RemoveChannelLinkResponse>>(PrepareAsyncRemoveChannelLinkRaw(context, request, cq));
+    }
+    // Transfer settable channel values
+    virtual ::grpc::Status SetValues(::grpc::ClientContext* context, const ::ModeliRpc::SetValuesReqest& request, ::ModeliRpc::SetValuesResponse* response) = 0;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::SetValuesResponse>> AsyncSetValues(::grpc::ClientContext* context, const ::ModeliRpc::SetValuesReqest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::SetValuesResponse>>(AsyncSetValuesRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::SetValuesResponse>> PrepareAsyncSetValues(::grpc::ClientContext* context, const ::ModeliRpc::SetValuesReqest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::SetValuesResponse>>(PrepareAsyncSetValuesRaw(context, request, cq));
+    }
+    // Stream simulation results to the client
+    std::unique_ptr< ::grpc::ClientReaderInterface< ::ModeliRpc::NewValuesResponse>> NewValues(::grpc::ClientContext* context, const ::ModeliRpc::NewValuesRequest& request) {
+      return std::unique_ptr< ::grpc::ClientReaderInterface< ::ModeliRpc::NewValuesResponse>>(NewValuesRaw(context, request));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::ModeliRpc::NewValuesResponse>> AsyncNewValues(::grpc::ClientContext* context, const ::ModeliRpc::NewValuesRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
+      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::ModeliRpc::NewValuesResponse>>(AsyncNewValuesRaw(context, request, cq, tag));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::ModeliRpc::NewValuesResponse>> PrepareAsyncNewValues(::grpc::ClientContext* context, const ::ModeliRpc::NewValuesRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::ModeliRpc::NewValuesResponse>>(PrepareAsyncNewValuesRaw(context, request, cq));
+    }
+    // Stream log messages to the client
+    std::unique_ptr< ::grpc::ClientReaderInterface< ::ModeliRpc::LogResponse>> Log(::grpc::ClientContext* context, const ::ModeliRpc::LogRequest& request) {
+      return std::unique_ptr< ::grpc::ClientReaderInterface< ::ModeliRpc::LogResponse>>(LogRaw(context, request));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::ModeliRpc::LogResponse>> AsyncLog(::grpc::ClientContext* context, const ::ModeliRpc::LogRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
+      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::ModeliRpc::LogResponse>>(AsyncLogRaw(context, request, cq, tag));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::ModeliRpc::LogResponse>> PrepareAsyncLog(::grpc::ClientContext* context, const ::ModeliRpc::LogRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::ModeliRpc::LogResponse>>(PrepareAsyncLogRaw(context, request, cq));
+    }
+  private:
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::PlayResponse>* AsyncPlayRaw(::grpc::ClientContext* context, const ::ModeliRpc::PlayRequest& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::PlayResponse>* PrepareAsyncPlayRaw(::grpc::ClientContext* context, const ::ModeliRpc::PlayRequest& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::PlayFastResponse>* AsyncPlayFastRaw(::grpc::ClientContext* context, const ::ModeliRpc::PlayFastRequest& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::PlayFastResponse>* PrepareAsyncPlayFastRaw(::grpc::ClientContext* context, const ::ModeliRpc::PlayFastRequest& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::PauseResponse>* AsyncPauseRaw(::grpc::ClientContext* context, const ::ModeliRpc::PauseRequest& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::PauseResponse>* PrepareAsyncPauseRaw(::grpc::ClientContext* context, const ::ModeliRpc::PauseRequest& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::StopResponse>* AsyncStopRaw(::grpc::ClientContext* context, const ::ModeliRpc::StopRequest& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::StopResponse>* PrepareAsyncStopRaw(::grpc::ClientContext* context, const ::ModeliRpc::StopRequest& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientWriterInterface< ::ModeliRpc::AddFmuRequest>* AddFmuRaw(::grpc::ClientContext* context, ::ModeliRpc::AddFmuResponse* response) = 0;
+    virtual ::grpc::ClientAsyncWriterInterface< ::ModeliRpc::AddFmuRequest>* AsyncAddFmuRaw(::grpc::ClientContext* context, ::ModeliRpc::AddFmuResponse* response, ::grpc::CompletionQueue* cq, void* tag) = 0;
+    virtual ::grpc::ClientAsyncWriterInterface< ::ModeliRpc::AddFmuRequest>* PrepareAsyncAddFmuRaw(::grpc::ClientContext* context, ::ModeliRpc::AddFmuResponse* response, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::RemoveFmuResponse>* AsyncRemoveFmuRaw(::grpc::ClientContext* context, const ::ModeliRpc::RemoveFmuRequest& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::RemoveFmuResponse>* PrepareAsyncRemoveFmuRaw(::grpc::ClientContext* context, const ::ModeliRpc::RemoveFmuRequest& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::AddChannelLinkResponse>* AsyncAddChannelLinkRaw(::grpc::ClientContext* context, const ::ModeliRpc::AddChannelLinkRequest& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::AddChannelLinkResponse>* PrepareAsyncAddChannelLinkRaw(::grpc::ClientContext* context, const ::ModeliRpc::AddChannelLinkRequest& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::RemoveChannelLinkResponse>* AsyncRemoveChannelLinkRaw(::grpc::ClientContext* context, const ::ModeliRpc::RemoveChannelLinkRequest& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::RemoveChannelLinkResponse>* PrepareAsyncRemoveChannelLinkRaw(::grpc::ClientContext* context, const ::ModeliRpc::RemoveChannelLinkRequest& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::SetValuesResponse>* AsyncSetValuesRaw(::grpc::ClientContext* context, const ::ModeliRpc::SetValuesReqest& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::SetValuesResponse>* PrepareAsyncSetValuesRaw(::grpc::ClientContext* context, const ::ModeliRpc::SetValuesReqest& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientReaderInterface< ::ModeliRpc::NewValuesResponse>* NewValuesRaw(::grpc::ClientContext* context, const ::ModeliRpc::NewValuesRequest& request) = 0;
+    virtual ::grpc::ClientAsyncReaderInterface< ::ModeliRpc::NewValuesResponse>* AsyncNewValuesRaw(::grpc::ClientContext* context, const ::ModeliRpc::NewValuesRequest& request, ::grpc::CompletionQueue* cq, void* tag) = 0;
+    virtual ::grpc::ClientAsyncReaderInterface< ::ModeliRpc::NewValuesResponse>* PrepareAsyncNewValuesRaw(::grpc::ClientContext* context, const ::ModeliRpc::NewValuesRequest& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientReaderInterface< ::ModeliRpc::LogResponse>* LogRaw(::grpc::ClientContext* context, const ::ModeliRpc::LogRequest& request) = 0;
+    virtual ::grpc::ClientAsyncReaderInterface< ::ModeliRpc::LogResponse>* AsyncLogRaw(::grpc::ClientContext* context, const ::ModeliRpc::LogRequest& request, ::grpc::CompletionQueue* cq, void* tag) = 0;
+    virtual ::grpc::ClientAsyncReaderInterface< ::ModeliRpc::LogResponse>* PrepareAsyncLogRaw(::grpc::ClientContext* context, const ::ModeliRpc::LogRequest& request, ::grpc::CompletionQueue* cq) = 0;
+  };
+  class Stub final : public StubInterface {
+   public:
+    Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel);
+    ::grpc::Status Play(::grpc::ClientContext* context, const ::ModeliRpc::PlayRequest& request, ::ModeliRpc::PlayResponse* response) override;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::PlayResponse>> AsyncPlay(::grpc::ClientContext* context, const ::ModeliRpc::PlayRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::PlayResponse>>(AsyncPlayRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::PlayResponse>> PrepareAsyncPlay(::grpc::ClientContext* context, const ::ModeliRpc::PlayRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::PlayResponse>>(PrepareAsyncPlayRaw(context, request, cq));
+    }
+    ::grpc::Status PlayFast(::grpc::ClientContext* context, const ::ModeliRpc::PlayFastRequest& request, ::ModeliRpc::PlayFastResponse* response) override;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::PlayFastResponse>> AsyncPlayFast(::grpc::ClientContext* context, const ::ModeliRpc::PlayFastRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::PlayFastResponse>>(AsyncPlayFastRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::PlayFastResponse>> PrepareAsyncPlayFast(::grpc::ClientContext* context, const ::ModeliRpc::PlayFastRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::PlayFastResponse>>(PrepareAsyncPlayFastRaw(context, request, cq));
+    }
+    ::grpc::Status Pause(::grpc::ClientContext* context, const ::ModeliRpc::PauseRequest& request, ::ModeliRpc::PauseResponse* response) override;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::PauseResponse>> AsyncPause(::grpc::ClientContext* context, const ::ModeliRpc::PauseRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::PauseResponse>>(AsyncPauseRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::PauseResponse>> PrepareAsyncPause(::grpc::ClientContext* context, const ::ModeliRpc::PauseRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::PauseResponse>>(PrepareAsyncPauseRaw(context, request, cq));
+    }
+    ::grpc::Status Stop(::grpc::ClientContext* context, const ::ModeliRpc::StopRequest& request, ::ModeliRpc::StopResponse* response) override;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::StopResponse>> AsyncStop(::grpc::ClientContext* context, const ::ModeliRpc::StopRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::StopResponse>>(AsyncStopRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::StopResponse>> PrepareAsyncStop(::grpc::ClientContext* context, const ::ModeliRpc::StopRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::StopResponse>>(PrepareAsyncStopRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientWriter< ::ModeliRpc::AddFmuRequest>> AddFmu(::grpc::ClientContext* context, ::ModeliRpc::AddFmuResponse* response) {
+      return std::unique_ptr< ::grpc::ClientWriter< ::ModeliRpc::AddFmuRequest>>(AddFmuRaw(context, response));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncWriter< ::ModeliRpc::AddFmuRequest>> AsyncAddFmu(::grpc::ClientContext* context, ::ModeliRpc::AddFmuResponse* response, ::grpc::CompletionQueue* cq, void* tag) {
+      return std::unique_ptr< ::grpc::ClientAsyncWriter< ::ModeliRpc::AddFmuRequest>>(AsyncAddFmuRaw(context, response, cq, tag));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncWriter< ::ModeliRpc::AddFmuRequest>> PrepareAsyncAddFmu(::grpc::ClientContext* context, ::ModeliRpc::AddFmuResponse* response, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncWriter< ::ModeliRpc::AddFmuRequest>>(PrepareAsyncAddFmuRaw(context, response, cq));
+    }
+    ::grpc::Status RemoveFmu(::grpc::ClientContext* context, const ::ModeliRpc::RemoveFmuRequest& request, ::ModeliRpc::RemoveFmuResponse* response) override;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::RemoveFmuResponse>> AsyncRemoveFmu(::grpc::ClientContext* context, const ::ModeliRpc::RemoveFmuRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::RemoveFmuResponse>>(AsyncRemoveFmuRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::RemoveFmuResponse>> PrepareAsyncRemoveFmu(::grpc::ClientContext* context, const ::ModeliRpc::RemoveFmuRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::RemoveFmuResponse>>(PrepareAsyncRemoveFmuRaw(context, request, cq));
+    }
+    ::grpc::Status AddChannelLink(::grpc::ClientContext* context, const ::ModeliRpc::AddChannelLinkRequest& request, ::ModeliRpc::AddChannelLinkResponse* response) override;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::AddChannelLinkResponse>> AsyncAddChannelLink(::grpc::ClientContext* context, const ::ModeliRpc::AddChannelLinkRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::AddChannelLinkResponse>>(AsyncAddChannelLinkRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::AddChannelLinkResponse>> PrepareAsyncAddChannelLink(::grpc::ClientContext* context, const ::ModeliRpc::AddChannelLinkRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::AddChannelLinkResponse>>(PrepareAsyncAddChannelLinkRaw(context, request, cq));
+    }
+    ::grpc::Status RemoveChannelLink(::grpc::ClientContext* context, const ::ModeliRpc::RemoveChannelLinkRequest& request, ::ModeliRpc::RemoveChannelLinkResponse* response) override;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::RemoveChannelLinkResponse>> AsyncRemoveChannelLink(::grpc::ClientContext* context, const ::ModeliRpc::RemoveChannelLinkRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::RemoveChannelLinkResponse>>(AsyncRemoveChannelLinkRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::RemoveChannelLinkResponse>> PrepareAsyncRemoveChannelLink(::grpc::ClientContext* context, const ::ModeliRpc::RemoveChannelLinkRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::RemoveChannelLinkResponse>>(PrepareAsyncRemoveChannelLinkRaw(context, request, cq));
+    }
+    ::grpc::Status SetValues(::grpc::ClientContext* context, const ::ModeliRpc::SetValuesReqest& request, ::ModeliRpc::SetValuesResponse* response) override;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::SetValuesResponse>> AsyncSetValues(::grpc::ClientContext* context, const ::ModeliRpc::SetValuesReqest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::SetValuesResponse>>(AsyncSetValuesRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::SetValuesResponse>> PrepareAsyncSetValues(::grpc::ClientContext* context, const ::ModeliRpc::SetValuesReqest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::ModeliRpc::SetValuesResponse>>(PrepareAsyncSetValuesRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientReader< ::ModeliRpc::NewValuesResponse>> NewValues(::grpc::ClientContext* context, const ::ModeliRpc::NewValuesRequest& request) {
+      return std::unique_ptr< ::grpc::ClientReader< ::ModeliRpc::NewValuesResponse>>(NewValuesRaw(context, request));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncReader< ::ModeliRpc::NewValuesResponse>> AsyncNewValues(::grpc::ClientContext* context, const ::ModeliRpc::NewValuesRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
+      return std::unique_ptr< ::grpc::ClientAsyncReader< ::ModeliRpc::NewValuesResponse>>(AsyncNewValuesRaw(context, request, cq, tag));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncReader< ::ModeliRpc::NewValuesResponse>> PrepareAsyncNewValues(::grpc::ClientContext* context, const ::ModeliRpc::NewValuesRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncReader< ::ModeliRpc::NewValuesResponse>>(PrepareAsyncNewValuesRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientReader< ::ModeliRpc::LogResponse>> Log(::grpc::ClientContext* context, const ::ModeliRpc::LogRequest& request) {
+      return std::unique_ptr< ::grpc::ClientReader< ::ModeliRpc::LogResponse>>(LogRaw(context, request));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncReader< ::ModeliRpc::LogResponse>> AsyncLog(::grpc::ClientContext* context, const ::ModeliRpc::LogRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
+      return std::unique_ptr< ::grpc::ClientAsyncReader< ::ModeliRpc::LogResponse>>(AsyncLogRaw(context, request, cq, tag));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncReader< ::ModeliRpc::LogResponse>> PrepareAsyncLog(::grpc::ClientContext* context, const ::ModeliRpc::LogRequest& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncReader< ::ModeliRpc::LogResponse>>(PrepareAsyncLogRaw(context, request, cq));
+    }
+
+   private:
+    std::shared_ptr< ::grpc::ChannelInterface> channel_;
+    ::grpc::ClientAsyncResponseReader< ::ModeliRpc::PlayResponse>* AsyncPlayRaw(::grpc::ClientContext* context, const ::ModeliRpc::PlayRequest& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientAsyncResponseReader< ::ModeliRpc::PlayResponse>* PrepareAsyncPlayRaw(::grpc::ClientContext* context, const ::ModeliRpc::PlayRequest& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientAsyncResponseReader< ::ModeliRpc::PlayFastResponse>* AsyncPlayFastRaw(::grpc::ClientContext* context, const ::ModeliRpc::PlayFastRequest& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientAsyncResponseReader< ::ModeliRpc::PlayFastResponse>* PrepareAsyncPlayFastRaw(::grpc::ClientContext* context, const ::ModeliRpc::PlayFastRequest& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientAsyncResponseReader< ::ModeliRpc::PauseResponse>* AsyncPauseRaw(::grpc::ClientContext* context, const ::ModeliRpc::PauseRequest& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientAsyncResponseReader< ::ModeliRpc::PauseResponse>* PrepareAsyncPauseRaw(::grpc::ClientContext* context, const ::ModeliRpc::PauseRequest& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientAsyncResponseReader< ::ModeliRpc::StopResponse>* AsyncStopRaw(::grpc::ClientContext* context, const ::ModeliRpc::StopRequest& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientAsyncResponseReader< ::ModeliRpc::StopResponse>* PrepareAsyncStopRaw(::grpc::ClientContext* context, const ::ModeliRpc::StopRequest& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientWriter< ::ModeliRpc::AddFmuRequest>* AddFmuRaw(::grpc::ClientContext* context, ::ModeliRpc::AddFmuResponse* response) override;
+    ::grpc::ClientAsyncWriter< ::ModeliRpc::AddFmuRequest>* AsyncAddFmuRaw(::grpc::ClientContext* context, ::ModeliRpc::AddFmuResponse* response, ::grpc::CompletionQueue* cq, void* tag) override;
+    ::grpc::ClientAsyncWriter< ::ModeliRpc::AddFmuRequest>* PrepareAsyncAddFmuRaw(::grpc::ClientContext* context, ::ModeliRpc::AddFmuResponse* response, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientAsyncResponseReader< ::ModeliRpc::RemoveFmuResponse>* AsyncRemoveFmuRaw(::grpc::ClientContext* context, const ::ModeliRpc::RemoveFmuRequest& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientAsyncResponseReader< ::ModeliRpc::RemoveFmuResponse>* PrepareAsyncRemoveFmuRaw(::grpc::ClientContext* context, const ::ModeliRpc::RemoveFmuRequest& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientAsyncResponseReader< ::ModeliRpc::AddChannelLinkResponse>* AsyncAddChannelLinkRaw(::grpc::ClientContext* context, const ::ModeliRpc::AddChannelLinkRequest& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientAsyncResponseReader< ::ModeliRpc::AddChannelLinkResponse>* PrepareAsyncAddChannelLinkRaw(::grpc::ClientContext* context, const ::ModeliRpc::AddChannelLinkRequest& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientAsyncResponseReader< ::ModeliRpc::RemoveChannelLinkResponse>* AsyncRemoveChannelLinkRaw(::grpc::ClientContext* context, const ::ModeliRpc::RemoveChannelLinkRequest& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientAsyncResponseReader< ::ModeliRpc::RemoveChannelLinkResponse>* PrepareAsyncRemoveChannelLinkRaw(::grpc::ClientContext* context, const ::ModeliRpc::RemoveChannelLinkRequest& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientAsyncResponseReader< ::ModeliRpc::SetValuesResponse>* AsyncSetValuesRaw(::grpc::ClientContext* context, const ::ModeliRpc::SetValuesReqest& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientAsyncResponseReader< ::ModeliRpc::SetValuesResponse>* PrepareAsyncSetValuesRaw(::grpc::ClientContext* context, const ::ModeliRpc::SetValuesReqest& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientReader< ::ModeliRpc::NewValuesResponse>* NewValuesRaw(::grpc::ClientContext* context, const ::ModeliRpc::NewValuesRequest& request) override;
+    ::grpc::ClientAsyncReader< ::ModeliRpc::NewValuesResponse>* AsyncNewValuesRaw(::grpc::ClientContext* context, const ::ModeliRpc::NewValuesRequest& request, ::grpc::CompletionQueue* cq, void* tag) override;
+    ::grpc::ClientAsyncReader< ::ModeliRpc::NewValuesResponse>* PrepareAsyncNewValuesRaw(::grpc::ClientContext* context, const ::ModeliRpc::NewValuesRequest& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientReader< ::ModeliRpc::LogResponse>* LogRaw(::grpc::ClientContext* context, const ::ModeliRpc::LogRequest& request) override;
+    ::grpc::ClientAsyncReader< ::ModeliRpc::LogResponse>* AsyncLogRaw(::grpc::ClientContext* context, const ::ModeliRpc::LogRequest& request, ::grpc::CompletionQueue* cq, void* tag) override;
+    ::grpc::ClientAsyncReader< ::ModeliRpc::LogResponse>* PrepareAsyncLogRaw(::grpc::ClientContext* context, const ::ModeliRpc::LogRequest& request, ::grpc::CompletionQueue* cq) override;
+    const ::grpc::internal::RpcMethod rpcmethod_Play_;
+    const ::grpc::internal::RpcMethod rpcmethod_PlayFast_;
+    const ::grpc::internal::RpcMethod rpcmethod_Pause_;
+    const ::grpc::internal::RpcMethod rpcmethod_Stop_;
+    const ::grpc::internal::RpcMethod rpcmethod_AddFmu_;
+    const ::grpc::internal::RpcMethod rpcmethod_RemoveFmu_;
+    const ::grpc::internal::RpcMethod rpcmethod_AddChannelLink_;
+    const ::grpc::internal::RpcMethod rpcmethod_RemoveChannelLink_;
+    const ::grpc::internal::RpcMethod rpcmethod_SetValues_;
+    const ::grpc::internal::RpcMethod rpcmethod_NewValues_;
+    const ::grpc::internal::RpcMethod rpcmethod_Log_;
+  };
+  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();
+    // Simulation state control
+    virtual ::grpc::Status Play(::grpc::ServerContext* context, const ::ModeliRpc::PlayRequest* request, ::ModeliRpc::PlayResponse* response);
+    virtual ::grpc::Status PlayFast(::grpc::ServerContext* context, const ::ModeliRpc::PlayFastRequest* request, ::ModeliRpc::PlayFastResponse* response);
+    virtual ::grpc::Status Pause(::grpc::ServerContext* context, const ::ModeliRpc::PauseRequest* request, ::ModeliRpc::PauseResponse* response);
+    virtual ::grpc::Status Stop(::grpc::ServerContext* context, const ::ModeliRpc::StopRequest* request, ::ModeliRpc::StopResponse* response);
+    // Fmu management
+    // Transfer FMU via stream and use chunking
+    virtual ::grpc::Status AddFmu(::grpc::ServerContext* context, ::grpc::ServerReader< ::ModeliRpc::AddFmuRequest>* reader, ::ModeliRpc::AddFmuResponse* response);
+    virtual ::grpc::Status RemoveFmu(::grpc::ServerContext* context, const ::ModeliRpc::RemoveFmuRequest* request, ::ModeliRpc::RemoveFmuResponse* response);
+    // ChannelLink management
+    virtual ::grpc::Status AddChannelLink(::grpc::ServerContext* context, const ::ModeliRpc::AddChannelLinkRequest* request, ::ModeliRpc::AddChannelLinkResponse* response);
+    virtual ::grpc::Status RemoveChannelLink(::grpc::ServerContext* context, const ::ModeliRpc::RemoveChannelLinkRequest* request, ::ModeliRpc::RemoveChannelLinkResponse* response);
+    // Transfer settable channel values
+    virtual ::grpc::Status SetValues(::grpc::ServerContext* context, const ::ModeliRpc::SetValuesReqest* request, ::ModeliRpc::SetValuesResponse* response);
+    // Stream simulation results to the client
+    virtual ::grpc::Status NewValues(::grpc::ServerContext* context, const ::ModeliRpc::NewValuesRequest* request, ::grpc::ServerWriter< ::ModeliRpc::NewValuesResponse>* writer);
+    // Stream log messages to the client
+    virtual ::grpc::Status Log(::grpc::ServerContext* context, const ::ModeliRpc::LogRequest* request, ::grpc::ServerWriter< ::ModeliRpc::LogResponse>* writer);
+  };
+  template <class BaseClass>
+  class WithAsyncMethod_Play : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithAsyncMethod_Play() {
+      ::grpc::Service::MarkMethodAsync(0);
+    }
+    ~WithAsyncMethod_Play() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status Play(::grpc::ServerContext* context, const ::ModeliRpc::PlayRequest* request, ::ModeliRpc::PlayResponse* response) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    void RequestPlay(::grpc::ServerContext* context, ::ModeliRpc::PlayRequest* request, ::grpc::ServerAsyncResponseWriter< ::ModeliRpc::PlayResponse>* 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_PlayFast : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithAsyncMethod_PlayFast() {
+      ::grpc::Service::MarkMethodAsync(1);
+    }
+    ~WithAsyncMethod_PlayFast() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status PlayFast(::grpc::ServerContext* context, const ::ModeliRpc::PlayFastRequest* request, ::ModeliRpc::PlayFastResponse* response) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    void RequestPlayFast(::grpc::ServerContext* context, ::ModeliRpc::PlayFastRequest* request, ::grpc::ServerAsyncResponseWriter< ::ModeliRpc::PlayFastResponse>* 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_Pause : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithAsyncMethod_Pause() {
+      ::grpc::Service::MarkMethodAsync(2);
+    }
+    ~WithAsyncMethod_Pause() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status Pause(::grpc::ServerContext* context, const ::ModeliRpc::PauseRequest* request, ::ModeliRpc::PauseResponse* response) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    void RequestPause(::grpc::ServerContext* context, ::ModeliRpc::PauseRequest* request, ::grpc::ServerAsyncResponseWriter< ::ModeliRpc::PauseResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
+      ::grpc::Service::RequestAsyncUnary(2, context, request, response, new_call_cq, notification_cq, tag);
+    }
+  };
+  template <class BaseClass>
+  class WithAsyncMethod_Stop : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithAsyncMethod_Stop() {
+      ::grpc::Service::MarkMethodAsync(3);
+    }
+    ~WithAsyncMethod_Stop() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status Stop(::grpc::ServerContext* context, const ::ModeliRpc::StopRequest* request, ::ModeliRpc::StopResponse* response) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    void RequestStop(::grpc::ServerContext* context, ::ModeliRpc::StopRequest* request, ::grpc::ServerAsyncResponseWriter< ::ModeliRpc::StopResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
+      ::grpc::Service::RequestAsyncUnary(3, context, request, response, new_call_cq, notification_cq, tag);
+    }
+  };
+  template <class BaseClass>
+  class WithAsyncMethod_AddFmu : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithAsyncMethod_AddFmu() {
+      ::grpc::Service::MarkMethodAsync(4);
+    }
+    ~WithAsyncMethod_AddFmu() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status AddFmu(::grpc::ServerContext* context, ::grpc::ServerReader< ::ModeliRpc::AddFmuRequest>* reader, ::ModeliRpc::AddFmuResponse* response) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    void RequestAddFmu(::grpc::ServerContext* context, ::grpc::ServerAsyncReader< ::ModeliRpc::AddFmuResponse, ::ModeliRpc::AddFmuRequest>* reader, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
+      ::grpc::Service::RequestAsyncClientStreaming(4, context, reader, new_call_cq, notification_cq, tag);
+    }
+  };
+  template <class BaseClass>
+  class WithAsyncMethod_RemoveFmu : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithAsyncMethod_RemoveFmu() {
+      ::grpc::Service::MarkMethodAsync(5);
+    }
+    ~WithAsyncMethod_RemoveFmu() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status RemoveFmu(::grpc::ServerContext* context, const ::ModeliRpc::RemoveFmuRequest* request, ::ModeliRpc::RemoveFmuResponse* response) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    void RequestRemoveFmu(::grpc::ServerContext* context, ::ModeliRpc::RemoveFmuRequest* request, ::grpc::ServerAsyncResponseWriter< ::ModeliRpc::RemoveFmuResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
+      ::grpc::Service::RequestAsyncUnary(5, context, request, response, new_call_cq, notification_cq, tag);
+    }
+  };
+  template <class BaseClass>
+  class WithAsyncMethod_AddChannelLink : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithAsyncMethod_AddChannelLink() {
+      ::grpc::Service::MarkMethodAsync(6);
+    }
+    ~WithAsyncMethod_AddChannelLink() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status AddChannelLink(::grpc::ServerContext* context, const ::ModeliRpc::AddChannelLinkRequest* request, ::ModeliRpc::AddChannelLinkResponse* response) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    void RequestAddChannelLink(::grpc::ServerContext* context, ::ModeliRpc::AddChannelLinkRequest* request, ::grpc::ServerAsyncResponseWriter< ::ModeliRpc::AddChannelLinkResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
+      ::grpc::Service::RequestAsyncUnary(6, context, request, response, new_call_cq, notification_cq, tag);
+    }
+  };
+  template <class BaseClass>
+  class WithAsyncMethod_RemoveChannelLink : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithAsyncMethod_RemoveChannelLink() {
+      ::grpc::Service::MarkMethodAsync(7);
+    }
+    ~WithAsyncMethod_RemoveChannelLink() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status RemoveChannelLink(::grpc::ServerContext* context, const ::ModeliRpc::RemoveChannelLinkRequest* request, ::ModeliRpc::RemoveChannelLinkResponse* response) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    void RequestRemoveChannelLink(::grpc::ServerContext* context, ::ModeliRpc::RemoveChannelLinkRequest* request, ::grpc::ServerAsyncResponseWriter< ::ModeliRpc::RemoveChannelLinkResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
+      ::grpc::Service::RequestAsyncUnary(7, context, request, response, new_call_cq, notification_cq, tag);
+    }
+  };
+  template <class BaseClass>
+  class WithAsyncMethod_SetValues : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithAsyncMethod_SetValues() {
+      ::grpc::Service::MarkMethodAsync(8);
+    }
+    ~WithAsyncMethod_SetValues() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status SetValues(::grpc::ServerContext* context, const ::ModeliRpc::SetValuesReqest* request, ::ModeliRpc::SetValuesResponse* response) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    void RequestSetValues(::grpc::ServerContext* context, ::ModeliRpc::SetValuesReqest* request, ::grpc::ServerAsyncResponseWriter< ::ModeliRpc::SetValuesResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
+      ::grpc::Service::RequestAsyncUnary(8, context, request, response, new_call_cq, notification_cq, tag);
+    }
+  };
+  template <class BaseClass>
+  class WithAsyncMethod_NewValues : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithAsyncMethod_NewValues() {
+      ::grpc::Service::MarkMethodAsync(9);
+    }
+    ~WithAsyncMethod_NewValues() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status NewValues(::grpc::ServerContext* context, const ::ModeliRpc::NewValuesRequest* request, ::grpc::ServerWriter< ::ModeliRpc::NewValuesResponse>* writer) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    void RequestNewValues(::grpc::ServerContext* context, ::ModeliRpc::NewValuesRequest* request, ::grpc::ServerAsyncWriter< ::ModeliRpc::NewValuesResponse>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
+      ::grpc::Service::RequestAsyncServerStreaming(9, context, request, writer, new_call_cq, notification_cq, tag);
+    }
+  };
+  template <class BaseClass>
+  class WithAsyncMethod_Log : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithAsyncMethod_Log() {
+      ::grpc::Service::MarkMethodAsync(10);
+    }
+    ~WithAsyncMethod_Log() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status Log(::grpc::ServerContext* context, const ::ModeliRpc::LogRequest* request, ::grpc::ServerWriter< ::ModeliRpc::LogResponse>* writer) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    void RequestLog(::grpc::ServerContext* context, ::ModeliRpc::LogRequest* request, ::grpc::ServerAsyncWriter< ::ModeliRpc::LogResponse>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
+      ::grpc::Service::RequestAsyncServerStreaming(10, context, request, writer, new_call_cq, notification_cq, tag);
+    }
+  };
+  typedef WithAsyncMethod_Play<WithAsyncMethod_PlayFast<WithAsyncMethod_Pause<WithAsyncMethod_Stop<WithAsyncMethod_AddFmu<WithAsyncMethod_RemoveFmu<WithAsyncMethod_AddChannelLink<WithAsyncMethod_RemoveChannelLink<WithAsyncMethod_SetValues<WithAsyncMethod_NewValues<WithAsyncMethod_Log<Service > > > > > > > > > > > AsyncService;
+  template <class BaseClass>
+  class WithGenericMethod_Play : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithGenericMethod_Play() {
+      ::grpc::Service::MarkMethodGeneric(0);
+    }
+    ~WithGenericMethod_Play() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status Play(::grpc::ServerContext* context, const ::ModeliRpc::PlayRequest* request, ::ModeliRpc::PlayResponse* response) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+  };
+  template <class BaseClass>
+  class WithGenericMethod_PlayFast : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithGenericMethod_PlayFast() {
+      ::grpc::Service::MarkMethodGeneric(1);
+    }
+    ~WithGenericMethod_PlayFast() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status PlayFast(::grpc::ServerContext* context, const ::ModeliRpc::PlayFastRequest* request, ::ModeliRpc::PlayFastResponse* response) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+  };
+  template <class BaseClass>
+  class WithGenericMethod_Pause : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithGenericMethod_Pause() {
+      ::grpc::Service::MarkMethodGeneric(2);
+    }
+    ~WithGenericMethod_Pause() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status Pause(::grpc::ServerContext* context, const ::ModeliRpc::PauseRequest* request, ::ModeliRpc::PauseResponse* response) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+  };
+  template <class BaseClass>
+  class WithGenericMethod_Stop : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithGenericMethod_Stop() {
+      ::grpc::Service::MarkMethodGeneric(3);
+    }
+    ~WithGenericMethod_Stop() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status Stop(::grpc::ServerContext* context, const ::ModeliRpc::StopRequest* request, ::ModeliRpc::StopResponse* response) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+  };
+  template <class BaseClass>
+  class WithGenericMethod_AddFmu : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithGenericMethod_AddFmu() {
+      ::grpc::Service::MarkMethodGeneric(4);
+    }
+    ~WithGenericMethod_AddFmu() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status AddFmu(::grpc::ServerContext* context, ::grpc::ServerReader< ::ModeliRpc::AddFmuRequest>* reader, ::ModeliRpc::AddFmuResponse* response) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+  };
+  template <class BaseClass>
+  class WithGenericMethod_RemoveFmu : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithGenericMethod_RemoveFmu() {
+      ::grpc::Service::MarkMethodGeneric(5);
+    }
+    ~WithGenericMethod_RemoveFmu() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status RemoveFmu(::grpc::ServerContext* context, const ::ModeliRpc::RemoveFmuRequest* request, ::ModeliRpc::RemoveFmuResponse* response) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+  };
+  template <class BaseClass>
+  class WithGenericMethod_AddChannelLink : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithGenericMethod_AddChannelLink() {
+      ::grpc::Service::MarkMethodGeneric(6);
+    }
+    ~WithGenericMethod_AddChannelLink() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status AddChannelLink(::grpc::ServerContext* context, const ::ModeliRpc::AddChannelLinkRequest* request, ::ModeliRpc::AddChannelLinkResponse* response) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+  };
+  template <class BaseClass>
+  class WithGenericMethod_RemoveChannelLink : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithGenericMethod_RemoveChannelLink() {
+      ::grpc::Service::MarkMethodGeneric(7);
+    }
+    ~WithGenericMethod_RemoveChannelLink() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status RemoveChannelLink(::grpc::ServerContext* context, const ::ModeliRpc::RemoveChannelLinkRequest* request, ::ModeliRpc::RemoveChannelLinkResponse* response) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+  };
+  template <class BaseClass>
+  class WithGenericMethod_SetValues : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithGenericMethod_SetValues() {
+      ::grpc::Service::MarkMethodGeneric(8);
+    }
+    ~WithGenericMethod_SetValues() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status SetValues(::grpc::ServerContext* context, const ::ModeliRpc::SetValuesReqest* request, ::ModeliRpc::SetValuesResponse* response) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+  };
+  template <class BaseClass>
+  class WithGenericMethod_NewValues : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithGenericMethod_NewValues() {
+      ::grpc::Service::MarkMethodGeneric(9);
+    }
+    ~WithGenericMethod_NewValues() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status NewValues(::grpc::ServerContext* context, const ::ModeliRpc::NewValuesRequest* request, ::grpc::ServerWriter< ::ModeliRpc::NewValuesResponse>* writer) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+  };
+  template <class BaseClass>
+  class WithGenericMethod_Log : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithGenericMethod_Log() {
+      ::grpc::Service::MarkMethodGeneric(10);
+    }
+    ~WithGenericMethod_Log() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status Log(::grpc::ServerContext* context, const ::ModeliRpc::LogRequest* request, ::grpc::ServerWriter< ::ModeliRpc::LogResponse>* writer) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+  };
+  template <class BaseClass>
+  class WithStreamedUnaryMethod_Play : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithStreamedUnaryMethod_Play() {
+      ::grpc::Service::MarkMethodStreamed(0,
+        new ::grpc::internal::StreamedUnaryHandler< ::ModeliRpc::PlayRequest, ::ModeliRpc::PlayResponse>(std::bind(&WithStreamedUnaryMethod_Play<BaseClass>::StreamedPlay, this, std::placeholders::_1, std::placeholders::_2)));
+    }
+    ~WithStreamedUnaryMethod_Play() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable regular version of this method
+    ::grpc::Status Play(::grpc::ServerContext* context, const ::ModeliRpc::PlayRequest* request, ::ModeliRpc::PlayResponse* response) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    // replace default version of method with streamed unary
+    virtual ::grpc::Status StreamedPlay(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::ModeliRpc::PlayRequest,::ModeliRpc::PlayResponse>* server_unary_streamer) = 0;
+  };
+  template <class BaseClass>
+  class WithStreamedUnaryMethod_PlayFast : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithStreamedUnaryMethod_PlayFast() {
+      ::grpc::Service::MarkMethodStreamed(1,
+        new ::grpc::internal::StreamedUnaryHandler< ::ModeliRpc::PlayFastRequest, ::ModeliRpc::PlayFastResponse>(std::bind(&WithStreamedUnaryMethod_PlayFast<BaseClass>::StreamedPlayFast, this, std::placeholders::_1, std::placeholders::_2)));
+    }
+    ~WithStreamedUnaryMethod_PlayFast() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable regular version of this method
+    ::grpc::Status PlayFast(::grpc::ServerContext* context, const ::ModeliRpc::PlayFastRequest* request, ::ModeliRpc::PlayFastResponse* response) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    // replace default version of method with streamed unary
+    virtual ::grpc::Status StreamedPlayFast(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::ModeliRpc::PlayFastRequest,::ModeliRpc::PlayFastResponse>* server_unary_streamer) = 0;
+  };
+  template <class BaseClass>
+  class WithStreamedUnaryMethod_Pause : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithStreamedUnaryMethod_Pause() {
+      ::grpc::Service::MarkMethodStreamed(2,
+        new ::grpc::internal::StreamedUnaryHandler< ::ModeliRpc::PauseRequest, ::ModeliRpc::PauseResponse>(std::bind(&WithStreamedUnaryMethod_Pause<BaseClass>::StreamedPause, this, std::placeholders::_1, std::placeholders::_2)));
+    }
+    ~WithStreamedUnaryMethod_Pause() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable regular version of this method
+    ::grpc::Status Pause(::grpc::ServerContext* context, const ::ModeliRpc::PauseRequest* request, ::ModeliRpc::PauseResponse* response) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    // replace default version of method with streamed unary
+    virtual ::grpc::Status StreamedPause(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::ModeliRpc::PauseRequest,::ModeliRpc::PauseResponse>* server_unary_streamer) = 0;
+  };
+  template <class BaseClass>
+  class WithStreamedUnaryMethod_Stop : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithStreamedUnaryMethod_Stop() {
+      ::grpc::Service::MarkMethodStreamed(3,
+        new ::grpc::internal::StreamedUnaryHandler< ::ModeliRpc::StopRequest, ::ModeliRpc::StopResponse>(std::bind(&WithStreamedUnaryMethod_Stop<BaseClass>::StreamedStop, this, std::placeholders::_1, std::placeholders::_2)));
+    }
+    ~WithStreamedUnaryMethod_Stop() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable regular version of this method
+    ::grpc::Status Stop(::grpc::ServerContext* context, const ::ModeliRpc::StopRequest* request, ::ModeliRpc::StopResponse* response) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    // replace default version of method with streamed unary
+    virtual ::grpc::Status StreamedStop(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::ModeliRpc::StopRequest,::ModeliRpc::StopResponse>* server_unary_streamer) = 0;
+  };
+  template <class BaseClass>
+  class WithStreamedUnaryMethod_RemoveFmu : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithStreamedUnaryMethod_RemoveFmu() {
+      ::grpc::Service::MarkMethodStreamed(5,
+        new ::grpc::internal::StreamedUnaryHandler< ::ModeliRpc::RemoveFmuRequest, ::ModeliRpc::RemoveFmuResponse>(std::bind(&WithStreamedUnaryMethod_RemoveFmu<BaseClass>::StreamedRemoveFmu, this, std::placeholders::_1, std::placeholders::_2)));
+    }
+    ~WithStreamedUnaryMethod_RemoveFmu() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable regular version of this method
+    ::grpc::Status RemoveFmu(::grpc::ServerContext* context, const ::ModeliRpc::RemoveFmuRequest* request, ::ModeliRpc::RemoveFmuResponse* response) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    // replace default version of method with streamed unary
+    virtual ::grpc::Status StreamedRemoveFmu(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::ModeliRpc::RemoveFmuRequest,::ModeliRpc::RemoveFmuResponse>* server_unary_streamer) = 0;
+  };
+  template <class BaseClass>
+  class WithStreamedUnaryMethod_AddChannelLink : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithStreamedUnaryMethod_AddChannelLink() {
+      ::grpc::Service::MarkMethodStreamed(6,
+        new ::grpc::internal::StreamedUnaryHandler< ::ModeliRpc::AddChannelLinkRequest, ::ModeliRpc::AddChannelLinkResponse>(std::bind(&WithStreamedUnaryMethod_AddChannelLink<BaseClass>::StreamedAddChannelLink, this, std::placeholders::_1, std::placeholders::_2)));
+    }
+    ~WithStreamedUnaryMethod_AddChannelLink() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable regular version of this method
+    ::grpc::Status AddChannelLink(::grpc::ServerContext* context, const ::ModeliRpc::AddChannelLinkRequest* request, ::ModeliRpc::AddChannelLinkResponse* response) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    // replace default version of method with streamed unary
+    virtual ::grpc::Status StreamedAddChannelLink(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::ModeliRpc::AddChannelLinkRequest,::ModeliRpc::AddChannelLinkResponse>* server_unary_streamer) = 0;
+  };
+  template <class BaseClass>
+  class WithStreamedUnaryMethod_RemoveChannelLink : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithStreamedUnaryMethod_RemoveChannelLink() {
+      ::grpc::Service::MarkMethodStreamed(7,
+        new ::grpc::internal::StreamedUnaryHandler< ::ModeliRpc::RemoveChannelLinkRequest, ::ModeliRpc::RemoveChannelLinkResponse>(std::bind(&WithStreamedUnaryMethod_RemoveChannelLink<BaseClass>::StreamedRemoveChannelLink, this, std::placeholders::_1, std::placeholders::_2)));
+    }
+    ~WithStreamedUnaryMethod_RemoveChannelLink() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable regular version of this method
+    ::grpc::Status RemoveChannelLink(::grpc::ServerContext* context, const ::ModeliRpc::RemoveChannelLinkRequest* request, ::ModeliRpc::RemoveChannelLinkResponse* response) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    // replace default version of method with streamed unary
+    virtual ::grpc::Status StreamedRemoveChannelLink(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::ModeliRpc::RemoveChannelLinkRequest,::ModeliRpc::RemoveChannelLinkResponse>* server_unary_streamer) = 0;
+  };
+  template <class BaseClass>
+  class WithStreamedUnaryMethod_SetValues : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithStreamedUnaryMethod_SetValues() {
+      ::grpc::Service::MarkMethodStreamed(8,
+        new ::grpc::internal::StreamedUnaryHandler< ::ModeliRpc::SetValuesReqest, ::ModeliRpc::SetValuesResponse>(std::bind(&WithStreamedUnaryMethod_SetValues<BaseClass>::StreamedSetValues, this, std::placeholders::_1, std::placeholders::_2)));
+    }
+    ~WithStreamedUnaryMethod_SetValues() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable regular version of this method
+    ::grpc::Status SetValues(::grpc::ServerContext* context, const ::ModeliRpc::SetValuesReqest* request, ::ModeliRpc::SetValuesResponse* response) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    // replace default version of method with streamed unary
+    virtual ::grpc::Status StreamedSetValues(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::ModeliRpc::SetValuesReqest,::ModeliRpc::SetValuesResponse>* server_unary_streamer) = 0;
+  };
+  typedef WithStreamedUnaryMethod_Play<WithStreamedUnaryMethod_PlayFast<WithStreamedUnaryMethod_Pause<WithStreamedUnaryMethod_Stop<WithStreamedUnaryMethod_RemoveFmu<WithStreamedUnaryMethod_AddChannelLink<WithStreamedUnaryMethod_RemoveChannelLink<WithStreamedUnaryMethod_SetValues<Service > > > > > > > > StreamedUnaryService;
+  template <class BaseClass>
+  class WithSplitStreamingMethod_NewValues : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithSplitStreamingMethod_NewValues() {
+      ::grpc::Service::MarkMethodStreamed(9,
+        new ::grpc::internal::SplitServerStreamingHandler< ::ModeliRpc::NewValuesRequest, ::ModeliRpc::NewValuesResponse>(std::bind(&WithSplitStreamingMethod_NewValues<BaseClass>::StreamedNewValues, this, std::placeholders::_1, std::placeholders::_2)));
+    }
+    ~WithSplitStreamingMethod_NewValues() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable regular version of this method
+    ::grpc::Status NewValues(::grpc::ServerContext* context, const ::ModeliRpc::NewValuesRequest* request, ::grpc::ServerWriter< ::ModeliRpc::NewValuesResponse>* writer) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    // replace default version of method with split streamed
+    virtual ::grpc::Status StreamedNewValues(::grpc::ServerContext* context, ::grpc::ServerSplitStreamer< ::ModeliRpc::NewValuesRequest,::ModeliRpc::NewValuesResponse>* server_split_streamer) = 0;
+  };
+  template <class BaseClass>
+  class WithSplitStreamingMethod_Log : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service *service) {}
+   public:
+    WithSplitStreamingMethod_Log() {
+      ::grpc::Service::MarkMethodStreamed(10,
+        new ::grpc::internal::SplitServerStreamingHandler< ::ModeliRpc::LogRequest, ::ModeliRpc::LogResponse>(std::bind(&WithSplitStreamingMethod_Log<BaseClass>::StreamedLog, this, std::placeholders::_1, std::placeholders::_2)));
+    }
+    ~WithSplitStreamingMethod_Log() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable regular version of this method
+    ::grpc::Status Log(::grpc::ServerContext* context, const ::ModeliRpc::LogRequest* request, ::grpc::ServerWriter< ::ModeliRpc::LogResponse>* writer) final override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    // replace default version of method with split streamed
+    virtual ::grpc::Status StreamedLog(::grpc::ServerContext* context, ::grpc::ServerSplitStreamer< ::ModeliRpc::LogRequest,::ModeliRpc::LogResponse>* server_split_streamer) = 0;
+  };
+  typedef WithSplitStreamingMethod_NewValues<WithSplitStreamingMethod_Log<Service > > SplitStreamedService;
+  typedef WithStreamedUnaryMethod_Play<WithStreamedUnaryMethod_PlayFast<WithStreamedUnaryMethod_Pause<WithStreamedUnaryMethod_Stop<WithStreamedUnaryMethod_RemoveFmu<WithStreamedUnaryMethod_AddChannelLink<WithStreamedUnaryMethod_RemoveChannelLink<WithStreamedUnaryMethod_SetValues<WithSplitStreamingMethod_NewValues<WithSplitStreamingMethod_Log<Service > > > > > > > > > > StreamedService;
+};
+
+}  // namespace ModeliRpc
+
+
+#endif  // GRPC_ModeliRpc_2eproto__INCLUDED
diff --git a/ModeliRpc_Cpp/ModeliRpc.pb.cc b/ModeliRpc_Cpp/ModeliRpc.pb.cc
new file mode 100644
index 0000000000000000000000000000000000000000..bfbfe4ec973af62e6ad824f34fdfd5a3f2526e78
--- /dev/null
+++ b/ModeliRpc_Cpp/ModeliRpc.pb.cc
@@ -0,0 +1,7410 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: ModeliRpc.proto
+
+#include "ModeliRpc.pb.h"
+
+#include <algorithm>
+
+#include <google/protobuf/stubs/common.h>
+#include <google/protobuf/stubs/port.h>
+#include <google/protobuf/stubs/once.h>
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/wire_format_lite_inl.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>
+// This is a temporary google only hack
+#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+#include "third_party/protobuf/version.h"
+#endif
+// @@protoc_insertion_point(includes)
+namespace ModeliRpc {
+class ValuesDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<Values>
+      _instance;
+} _Values_default_instance_;
+class ChannelLinkDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<ChannelLink>
+      _instance;
+} _ChannelLink_default_instance_;
+class PlayRequestDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<PlayRequest>
+      _instance;
+} _PlayRequest_default_instance_;
+class PlayResponseDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<PlayResponse>
+      _instance;
+} _PlayResponse_default_instance_;
+class PlayFastRequestDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<PlayFastRequest>
+      _instance;
+} _PlayFastRequest_default_instance_;
+class PlayFastResponseDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<PlayFastResponse>
+      _instance;
+} _PlayFastResponse_default_instance_;
+class PauseRequestDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<PauseRequest>
+      _instance;
+} _PauseRequest_default_instance_;
+class PauseResponseDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<PauseResponse>
+      _instance;
+} _PauseResponse_default_instance_;
+class StopRequestDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<StopRequest>
+      _instance;
+} _StopRequest_default_instance_;
+class StopResponseDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<StopResponse>
+      _instance;
+} _StopResponse_default_instance_;
+class AddFmuRequestDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<AddFmuRequest>
+      _instance;
+} _AddFmuRequest_default_instance_;
+class AddFmuResponseDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<AddFmuResponse>
+      _instance;
+} _AddFmuResponse_default_instance_;
+class RemoveFmuRequestDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<RemoveFmuRequest>
+      _instance;
+} _RemoveFmuRequest_default_instance_;
+class RemoveFmuResponseDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<RemoveFmuResponse>
+      _instance;
+} _RemoveFmuResponse_default_instance_;
+class AddChannelLinkRequestDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<AddChannelLinkRequest>
+      _instance;
+} _AddChannelLinkRequest_default_instance_;
+class AddChannelLinkResponseDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<AddChannelLinkResponse>
+      _instance;
+} _AddChannelLinkResponse_default_instance_;
+class RemoveChannelLinkRequestDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<RemoveChannelLinkRequest>
+      _instance;
+} _RemoveChannelLinkRequest_default_instance_;
+class RemoveChannelLinkResponseDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<RemoveChannelLinkResponse>
+      _instance;
+} _RemoveChannelLinkResponse_default_instance_;
+class SetValuesReqestDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<SetValuesReqest>
+      _instance;
+} _SetValuesReqest_default_instance_;
+class SetValuesResponseDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<SetValuesResponse>
+      _instance;
+} _SetValuesResponse_default_instance_;
+class NewValuesRequestDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<NewValuesRequest>
+      _instance;
+} _NewValuesRequest_default_instance_;
+class NewValuesResponseDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<NewValuesResponse>
+      _instance;
+} _NewValuesResponse_default_instance_;
+class LogRequestDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<LogRequest>
+      _instance;
+} _LogRequest_default_instance_;
+class LogResponseDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<LogResponse>
+      _instance;
+} _LogResponse_default_instance_;
+}  // namespace ModeliRpc
+namespace protobuf_ModeliRpc_2eproto {
+void InitDefaultsValuesImpl() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
+#else
+  ::google::protobuf::internal::InitProtobufDefaults();
+#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  {
+    void* ptr = &::ModeliRpc::_Values_default_instance_;
+    new (ptr) ::ModeliRpc::Values();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::ModeliRpc::Values::InitAsDefaultInstance();
+}
+
+void InitDefaultsValues() {
+  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsValuesImpl);
+}
+
+void InitDefaultsChannelLinkImpl() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
+#else
+  ::google::protobuf::internal::InitProtobufDefaults();
+#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  {
+    void* ptr = &::ModeliRpc::_ChannelLink_default_instance_;
+    new (ptr) ::ModeliRpc::ChannelLink();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::ModeliRpc::ChannelLink::InitAsDefaultInstance();
+}
+
+void InitDefaultsChannelLink() {
+  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsChannelLinkImpl);
+}
+
+void InitDefaultsPlayRequestImpl() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
+#else
+  ::google::protobuf::internal::InitProtobufDefaults();
+#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  {
+    void* ptr = &::ModeliRpc::_PlayRequest_default_instance_;
+    new (ptr) ::ModeliRpc::PlayRequest();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::ModeliRpc::PlayRequest::InitAsDefaultInstance();
+}
+
+void InitDefaultsPlayRequest() {
+  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsPlayRequestImpl);
+}
+
+void InitDefaultsPlayResponseImpl() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
+#else
+  ::google::protobuf::internal::InitProtobufDefaults();
+#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  {
+    void* ptr = &::ModeliRpc::_PlayResponse_default_instance_;
+    new (ptr) ::ModeliRpc::PlayResponse();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::ModeliRpc::PlayResponse::InitAsDefaultInstance();
+}
+
+void InitDefaultsPlayResponse() {
+  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsPlayResponseImpl);
+}
+
+void InitDefaultsPlayFastRequestImpl() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
+#else
+  ::google::protobuf::internal::InitProtobufDefaults();
+#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  {
+    void* ptr = &::ModeliRpc::_PlayFastRequest_default_instance_;
+    new (ptr) ::ModeliRpc::PlayFastRequest();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::ModeliRpc::PlayFastRequest::InitAsDefaultInstance();
+}
+
+void InitDefaultsPlayFastRequest() {
+  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsPlayFastRequestImpl);
+}
+
+void InitDefaultsPlayFastResponseImpl() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
+#else
+  ::google::protobuf::internal::InitProtobufDefaults();
+#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  {
+    void* ptr = &::ModeliRpc::_PlayFastResponse_default_instance_;
+    new (ptr) ::ModeliRpc::PlayFastResponse();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::ModeliRpc::PlayFastResponse::InitAsDefaultInstance();
+}
+
+void InitDefaultsPlayFastResponse() {
+  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsPlayFastResponseImpl);
+}
+
+void InitDefaultsPauseRequestImpl() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
+#else
+  ::google::protobuf::internal::InitProtobufDefaults();
+#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  {
+    void* ptr = &::ModeliRpc::_PauseRequest_default_instance_;
+    new (ptr) ::ModeliRpc::PauseRequest();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::ModeliRpc::PauseRequest::InitAsDefaultInstance();
+}
+
+void InitDefaultsPauseRequest() {
+  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsPauseRequestImpl);
+}
+
+void InitDefaultsPauseResponseImpl() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
+#else
+  ::google::protobuf::internal::InitProtobufDefaults();
+#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  {
+    void* ptr = &::ModeliRpc::_PauseResponse_default_instance_;
+    new (ptr) ::ModeliRpc::PauseResponse();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::ModeliRpc::PauseResponse::InitAsDefaultInstance();
+}
+
+void InitDefaultsPauseResponse() {
+  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsPauseResponseImpl);
+}
+
+void InitDefaultsStopRequestImpl() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
+#else
+  ::google::protobuf::internal::InitProtobufDefaults();
+#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  {
+    void* ptr = &::ModeliRpc::_StopRequest_default_instance_;
+    new (ptr) ::ModeliRpc::StopRequest();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::ModeliRpc::StopRequest::InitAsDefaultInstance();
+}
+
+void InitDefaultsStopRequest() {
+  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsStopRequestImpl);
+}
+
+void InitDefaultsStopResponseImpl() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
+#else
+  ::google::protobuf::internal::InitProtobufDefaults();
+#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  {
+    void* ptr = &::ModeliRpc::_StopResponse_default_instance_;
+    new (ptr) ::ModeliRpc::StopResponse();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::ModeliRpc::StopResponse::InitAsDefaultInstance();
+}
+
+void InitDefaultsStopResponse() {
+  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsStopResponseImpl);
+}
+
+void InitDefaultsAddFmuRequestImpl() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
+#else
+  ::google::protobuf::internal::InitProtobufDefaults();
+#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  {
+    void* ptr = &::ModeliRpc::_AddFmuRequest_default_instance_;
+    new (ptr) ::ModeliRpc::AddFmuRequest();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::ModeliRpc::AddFmuRequest::InitAsDefaultInstance();
+}
+
+void InitDefaultsAddFmuRequest() {
+  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsAddFmuRequestImpl);
+}
+
+void InitDefaultsAddFmuResponseImpl() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
+#else
+  ::google::protobuf::internal::InitProtobufDefaults();
+#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  {
+    void* ptr = &::ModeliRpc::_AddFmuResponse_default_instance_;
+    new (ptr) ::ModeliRpc::AddFmuResponse();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::ModeliRpc::AddFmuResponse::InitAsDefaultInstance();
+}
+
+void InitDefaultsAddFmuResponse() {
+  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsAddFmuResponseImpl);
+}
+
+void InitDefaultsRemoveFmuRequestImpl() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
+#else
+  ::google::protobuf::internal::InitProtobufDefaults();
+#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  {
+    void* ptr = &::ModeliRpc::_RemoveFmuRequest_default_instance_;
+    new (ptr) ::ModeliRpc::RemoveFmuRequest();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::ModeliRpc::RemoveFmuRequest::InitAsDefaultInstance();
+}
+
+void InitDefaultsRemoveFmuRequest() {
+  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsRemoveFmuRequestImpl);
+}
+
+void InitDefaultsRemoveFmuResponseImpl() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
+#else
+  ::google::protobuf::internal::InitProtobufDefaults();
+#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  {
+    void* ptr = &::ModeliRpc::_RemoveFmuResponse_default_instance_;
+    new (ptr) ::ModeliRpc::RemoveFmuResponse();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::ModeliRpc::RemoveFmuResponse::InitAsDefaultInstance();
+}
+
+void InitDefaultsRemoveFmuResponse() {
+  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsRemoveFmuResponseImpl);
+}
+
+void InitDefaultsAddChannelLinkRequestImpl() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
+#else
+  ::google::protobuf::internal::InitProtobufDefaults();
+#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  protobuf_ModeliRpc_2eproto::InitDefaultsChannelLink();
+  {
+    void* ptr = &::ModeliRpc::_AddChannelLinkRequest_default_instance_;
+    new (ptr) ::ModeliRpc::AddChannelLinkRequest();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::ModeliRpc::AddChannelLinkRequest::InitAsDefaultInstance();
+}
+
+void InitDefaultsAddChannelLinkRequest() {
+  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsAddChannelLinkRequestImpl);
+}
+
+void InitDefaultsAddChannelLinkResponseImpl() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
+#else
+  ::google::protobuf::internal::InitProtobufDefaults();
+#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  {
+    void* ptr = &::ModeliRpc::_AddChannelLinkResponse_default_instance_;
+    new (ptr) ::ModeliRpc::AddChannelLinkResponse();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::ModeliRpc::AddChannelLinkResponse::InitAsDefaultInstance();
+}
+
+void InitDefaultsAddChannelLinkResponse() {
+  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsAddChannelLinkResponseImpl);
+}
+
+void InitDefaultsRemoveChannelLinkRequestImpl() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
+#else
+  ::google::protobuf::internal::InitProtobufDefaults();
+#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  protobuf_ModeliRpc_2eproto::InitDefaultsChannelLink();
+  {
+    void* ptr = &::ModeliRpc::_RemoveChannelLinkRequest_default_instance_;
+    new (ptr) ::ModeliRpc::RemoveChannelLinkRequest();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::ModeliRpc::RemoveChannelLinkRequest::InitAsDefaultInstance();
+}
+
+void InitDefaultsRemoveChannelLinkRequest() {
+  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsRemoveChannelLinkRequestImpl);
+}
+
+void InitDefaultsRemoveChannelLinkResponseImpl() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
+#else
+  ::google::protobuf::internal::InitProtobufDefaults();
+#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  {
+    void* ptr = &::ModeliRpc::_RemoveChannelLinkResponse_default_instance_;
+    new (ptr) ::ModeliRpc::RemoveChannelLinkResponse();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::ModeliRpc::RemoveChannelLinkResponse::InitAsDefaultInstance();
+}
+
+void InitDefaultsRemoveChannelLinkResponse() {
+  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsRemoveChannelLinkResponseImpl);
+}
+
+void InitDefaultsSetValuesReqestImpl() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
+#else
+  ::google::protobuf::internal::InitProtobufDefaults();
+#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  protobuf_ModeliRpc_2eproto::InitDefaultsValues();
+  {
+    void* ptr = &::ModeliRpc::_SetValuesReqest_default_instance_;
+    new (ptr) ::ModeliRpc::SetValuesReqest();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::ModeliRpc::SetValuesReqest::InitAsDefaultInstance();
+}
+
+void InitDefaultsSetValuesReqest() {
+  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsSetValuesReqestImpl);
+}
+
+void InitDefaultsSetValuesResponseImpl() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
+#else
+  ::google::protobuf::internal::InitProtobufDefaults();
+#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  {
+    void* ptr = &::ModeliRpc::_SetValuesResponse_default_instance_;
+    new (ptr) ::ModeliRpc::SetValuesResponse();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::ModeliRpc::SetValuesResponse::InitAsDefaultInstance();
+}
+
+void InitDefaultsSetValuesResponse() {
+  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsSetValuesResponseImpl);
+}
+
+void InitDefaultsNewValuesRequestImpl() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
+#else
+  ::google::protobuf::internal::InitProtobufDefaults();
+#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  {
+    void* ptr = &::ModeliRpc::_NewValuesRequest_default_instance_;
+    new (ptr) ::ModeliRpc::NewValuesRequest();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::ModeliRpc::NewValuesRequest::InitAsDefaultInstance();
+}
+
+void InitDefaultsNewValuesRequest() {
+  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsNewValuesRequestImpl);
+}
+
+void InitDefaultsNewValuesResponseImpl() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
+#else
+  ::google::protobuf::internal::InitProtobufDefaults();
+#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  protobuf_ModeliRpc_2eproto::InitDefaultsValues();
+  {
+    void* ptr = &::ModeliRpc::_NewValuesResponse_default_instance_;
+    new (ptr) ::ModeliRpc::NewValuesResponse();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::ModeliRpc::NewValuesResponse::InitAsDefaultInstance();
+}
+
+void InitDefaultsNewValuesResponse() {
+  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsNewValuesResponseImpl);
+}
+
+void InitDefaultsLogRequestImpl() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
+#else
+  ::google::protobuf::internal::InitProtobufDefaults();
+#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  {
+    void* ptr = &::ModeliRpc::_LogRequest_default_instance_;
+    new (ptr) ::ModeliRpc::LogRequest();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::ModeliRpc::LogRequest::InitAsDefaultInstance();
+}
+
+void InitDefaultsLogRequest() {
+  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsLogRequestImpl);
+}
+
+void InitDefaultsLogResponseImpl() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
+#else
+  ::google::protobuf::internal::InitProtobufDefaults();
+#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+  {
+    void* ptr = &::ModeliRpc::_LogResponse_default_instance_;
+    new (ptr) ::ModeliRpc::LogResponse();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::ModeliRpc::LogResponse::InitAsDefaultInstance();
+}
+
+void InitDefaultsLogResponse() {
+  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsLogResponseImpl);
+}
+
+::google::protobuf::Metadata file_level_metadata[24];
+const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors[1];
+
+const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+  ~0u,  // no _has_bits_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::Values, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::Values, instance_name_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::Values, int_vrs_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::Values, int_values_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::Values, real_vrs_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::Values, real_values_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::Values, bool_vrs_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::Values, bool_values_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::Values, string_vrs_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::Values, string_values_),
+  ~0u,  // no _has_bits_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::ChannelLink, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::ChannelLink, master_instance_name_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::ChannelLink, slave_instance_name_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::ChannelLink, master_vr_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::ChannelLink, slave_vr_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::ChannelLink, factor_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::ChannelLink, offset_),
+  ~0u,  // no _has_bits_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::PlayRequest, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  ~0u,  // no _has_bits_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::PlayResponse, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::PlayResponse, status_),
+  ~0u,  // no _has_bits_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::PlayFastRequest, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::PlayFastRequest, time_),
+  ~0u,  // no _has_bits_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::PlayFastResponse, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::PlayFastResponse, status_),
+  ~0u,  // no _has_bits_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::PauseRequest, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  ~0u,  // no _has_bits_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::PauseResponse, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  ~0u,  // no _has_bits_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::StopRequest, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  ~0u,  // no _has_bits_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::StopResponse, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::StopResponse, status_),
+  ~0u,  // no _has_bits_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::AddFmuRequest, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::AddFmuRequest, instance_name_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::AddFmuRequest, data_),
+  ~0u,  // no _has_bits_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::AddFmuResponse, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::AddFmuResponse, success_),
+  ~0u,  // no _has_bits_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::RemoveFmuRequest, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::RemoveFmuRequest, instance_name_),
+  ~0u,  // no _has_bits_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::RemoveFmuResponse, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::RemoveFmuResponse, success_),
+  ~0u,  // no _has_bits_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::AddChannelLinkRequest, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::AddChannelLinkRequest, channel_link_),
+  ~0u,  // no _has_bits_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::AddChannelLinkResponse, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::AddChannelLinkResponse, success_),
+  ~0u,  // no _has_bits_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::RemoveChannelLinkRequest, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::RemoveChannelLinkRequest, channel_link_),
+  ~0u,  // no _has_bits_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::RemoveChannelLinkResponse, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::RemoveChannelLinkResponse, success_),
+  ~0u,  // no _has_bits_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::SetValuesReqest, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::SetValuesReqest, values_),
+  ~0u,  // no _has_bits_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::SetValuesResponse, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::SetValuesResponse, status_),
+  ~0u,  // no _has_bits_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::NewValuesRequest, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  ~0u,  // no _has_bits_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::NewValuesResponse, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::NewValuesResponse, values_),
+  ~0u,  // no _has_bits_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::LogRequest, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  ~0u,  // no _has_bits_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::LogResponse, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::LogResponse, instance_name_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::LogResponse, status_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::LogResponse, message_),
+};
+static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+  { 0, -1, sizeof(::ModeliRpc::Values)},
+  { 14, -1, sizeof(::ModeliRpc::ChannelLink)},
+  { 25, -1, sizeof(::ModeliRpc::PlayRequest)},
+  { 30, -1, sizeof(::ModeliRpc::PlayResponse)},
+  { 36, -1, sizeof(::ModeliRpc::PlayFastRequest)},
+  { 42, -1, sizeof(::ModeliRpc::PlayFastResponse)},
+  { 48, -1, sizeof(::ModeliRpc::PauseRequest)},
+  { 53, -1, sizeof(::ModeliRpc::PauseResponse)},
+  { 58, -1, sizeof(::ModeliRpc::StopRequest)},
+  { 63, -1, sizeof(::ModeliRpc::StopResponse)},
+  { 69, -1, sizeof(::ModeliRpc::AddFmuRequest)},
+  { 76, -1, sizeof(::ModeliRpc::AddFmuResponse)},
+  { 82, -1, sizeof(::ModeliRpc::RemoveFmuRequest)},
+  { 88, -1, sizeof(::ModeliRpc::RemoveFmuResponse)},
+  { 94, -1, sizeof(::ModeliRpc::AddChannelLinkRequest)},
+  { 100, -1, sizeof(::ModeliRpc::AddChannelLinkResponse)},
+  { 106, -1, sizeof(::ModeliRpc::RemoveChannelLinkRequest)},
+  { 112, -1, sizeof(::ModeliRpc::RemoveChannelLinkResponse)},
+  { 118, -1, sizeof(::ModeliRpc::SetValuesReqest)},
+  { 124, -1, sizeof(::ModeliRpc::SetValuesResponse)},
+  { 130, -1, sizeof(::ModeliRpc::NewValuesRequest)},
+  { 135, -1, sizeof(::ModeliRpc::NewValuesResponse)},
+  { 141, -1, sizeof(::ModeliRpc::LogRequest)},
+  { 146, -1, sizeof(::ModeliRpc::LogResponse)},
+};
+
+static ::google::protobuf::Message const * const file_default_instances[] = {
+  reinterpret_cast<const ::google::protobuf::Message*>(&::ModeliRpc::_Values_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::ModeliRpc::_ChannelLink_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::ModeliRpc::_PlayRequest_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::ModeliRpc::_PlayResponse_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::ModeliRpc::_PlayFastRequest_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::ModeliRpc::_PlayFastResponse_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::ModeliRpc::_PauseRequest_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::ModeliRpc::_PauseResponse_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::ModeliRpc::_StopRequest_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::ModeliRpc::_StopResponse_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::ModeliRpc::_AddFmuRequest_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::ModeliRpc::_AddFmuResponse_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::ModeliRpc::_RemoveFmuRequest_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::ModeliRpc::_RemoveFmuResponse_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::ModeliRpc::_AddChannelLinkRequest_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::ModeliRpc::_AddChannelLinkResponse_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::ModeliRpc::_RemoveChannelLinkRequest_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::ModeliRpc::_RemoveChannelLinkResponse_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::ModeliRpc::_SetValuesReqest_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::ModeliRpc::_SetValuesResponse_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::ModeliRpc::_NewValuesRequest_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::ModeliRpc::_NewValuesResponse_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::ModeliRpc::_LogRequest_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::ModeliRpc::_LogResponse_default_instance_),
+};
+
+void protobuf_AssignDescriptors() {
+  AddDescriptors();
+  ::google::protobuf::MessageFactory* factory = NULL;
+  AssignDescriptors(
+      "ModeliRpc.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+      file_level_metadata, file_level_enum_descriptors, NULL);
+}
+
+void protobuf_AssignDescriptorsOnce() {
+  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+  ::google::protobuf::GoogleOnceInit(&once, &protobuf_AssignDescriptors);
+}
+
+void protobuf_RegisterTypes(const ::std::string&) GOOGLE_PROTOBUF_ATTRIBUTE_COLD;
+void protobuf_RegisterTypes(const ::std::string&) {
+  protobuf_AssignDescriptorsOnce();
+  ::google::protobuf::internal::RegisterAllTypes(file_level_metadata, 24);
+}
+
+void AddDescriptorsImpl() {
+  InitDefaults();
+  static const char descriptor[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+      "\n\017ModeliRpc.proto\022\tModeliRpc\"\275\001\n\006Values\022"
+      "\025\n\rinstance_name\030\001 \001(\t\022\017\n\007int_vrs\030\002 \003(\r\022"
+      "\022\n\nint_values\030\003 \003(\005\022\020\n\010real_vrs\030\004 \003(\r\022\023\n"
+      "\013real_values\030\005 \003(\001\022\020\n\010bool_vrs\030\006 \003(\r\022\023\n\013"
+      "bool_values\030\007 \003(\005\022\022\n\nstring_vrs\030\010 \003(\r\022\025\n"
+      "\rstring_values\030\t \003(\t\"\215\001\n\013ChannelLink\022\034\n\024"
+      "master_instance_name\030\001 \001(\t\022\033\n\023slave_inst"
+      "ance_name\030\002 \001(\t\022\021\n\tmaster_vr\030\003 \001(\r\022\020\n\010sl"
+      "ave_vr\030\004 \001(\r\022\016\n\006factor\030\005 \001(\001\022\016\n\006offset\030\006"
+      " \001(\001\"\r\n\013PlayRequest\"5\n\014PlayResponse\022%\n\006s"
+      "tatus\030\001 \001(\0162\025.ModeliRpc.Fmi2Status\"\037\n\017Pl"
+      "ayFastRequest\022\014\n\004time\030\001 \001(\001\"9\n\020PlayFastR"
+      "esponse\022%\n\006status\030\001 \001(\0162\025.ModeliRpc.Fmi2"
+      "Status\"\016\n\014PauseRequest\"\017\n\rPauseResponse\""
+      "\r\n\013StopRequest\"5\n\014StopResponse\022%\n\006status"
+      "\030\001 \001(\0162\025.ModeliRpc.Fmi2Status\"4\n\rAddFmuR"
+      "equest\022\025\n\rinstance_name\030\001 \001(\t\022\014\n\004data\030\002 "
+      "\001(\014\"!\n\016AddFmuResponse\022\017\n\007success\030\001 \001(\010\")"
+      "\n\020RemoveFmuRequest\022\025\n\rinstance_name\030\001 \001("
+      "\t\"$\n\021RemoveFmuResponse\022\017\n\007success\030\001 \001(\010\""
+      "E\n\025AddChannelLinkRequest\022,\n\014channel_link"
+      "\030\001 \001(\0132\026.ModeliRpc.ChannelLink\")\n\026AddCha"
+      "nnelLinkResponse\022\017\n\007success\030\001 \001(\010\"H\n\030Rem"
+      "oveChannelLinkRequest\022,\n\014channel_link\030\001 "
+      "\001(\0132\026.ModeliRpc.ChannelLink\",\n\031RemoveCha"
+      "nnelLinkResponse\022\017\n\007success\030\001 \001(\010\"4\n\017Set"
+      "ValuesReqest\022!\n\006values\030\001 \001(\0132\021.ModeliRpc"
+      ".Values\":\n\021SetValuesResponse\022%\n\006status\030\001"
+      " \001(\0162\025.ModeliRpc.Fmi2Status\"\022\n\020NewValues"
+      "Request\"6\n\021NewValuesResponse\022!\n\006values\030\001"
+      " \001(\0132\021.ModeliRpc.Values\"\014\n\nLogRequest\"\\\n"
+      "\013LogResponse\022\025\n\rinstance_name\030\001 \001(\t\022%\n\006s"
+      "tatus\030\002 \001(\0162\025.ModeliRpc.Fmi2Status\022\017\n\007me"
+      "ssage\030\003 \001(\t*o\n\nFmi2Status\022\013\n\007FMI2_OK\020\000\022\020"
+      "\n\014FMI2_WARNING\020\001\022\020\n\014FMI2_DISCARD\020\002\022\016\n\nFM"
+      "I2_ERROR\020\003\022\016\n\nFMI2_FATAL\020\004\022\020\n\014FMI2_PENDI"
+      "NG\020\0052\213\006\n\rModeliBackend\0227\n\004Play\022\026.ModeliR"
+      "pc.PlayRequest\032\027.ModeliRpc.PlayResponse\022"
+      "C\n\010PlayFast\022\032.ModeliRpc.PlayFastRequest\032"
+      "\033.ModeliRpc.PlayFastResponse\022:\n\005Pause\022\027."
+      "ModeliRpc.PauseRequest\032\030.ModeliRpc.Pause"
+      "Response\0227\n\004Stop\022\026.ModeliRpc.StopRequest"
+      "\032\027.ModeliRpc.StopResponse\022\?\n\006AddFmu\022\030.Mo"
+      "deliRpc.AddFmuRequest\032\031.ModeliRpc.AddFmu"
+      "Response(\001\022F\n\tRemoveFmu\022\033.ModeliRpc.Remo"
+      "veFmuRequest\032\034.ModeliRpc.RemoveFmuRespon"
+      "se\022U\n\016AddChannelLink\022 .ModeliRpc.AddChan"
+      "nelLinkRequest\032!.ModeliRpc.AddChannelLin"
+      "kResponse\022^\n\021RemoveChannelLink\022#.ModeliR"
+      "pc.RemoveChannelLinkRequest\032$.ModeliRpc."
+      "RemoveChannelLinkResponse\022E\n\tSetValues\022\032"
+      ".ModeliRpc.SetValuesReqest\032\034.ModeliRpc.S"
+      "etValuesResponse\022H\n\tNewValues\022\033.ModeliRp"
+      "c.NewValuesRequest\032\034.ModeliRpc.NewValues"
+      "Response0\001\0226\n\003Log\022\025.ModeliRpc.LogRequest"
+      "\032\026.ModeliRpc.LogResponse0\001b\006proto3"
+  };
+  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+      descriptor, 2234);
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+    "ModeliRpc.proto", &protobuf_RegisterTypes);
+}
+
+void AddDescriptors() {
+  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+  ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at dynamic initialization time.
+struct StaticDescriptorInitializer {
+  StaticDescriptorInitializer() {
+    AddDescriptors();
+  }
+} static_descriptor_initializer;
+}  // namespace protobuf_ModeliRpc_2eproto
+namespace ModeliRpc {
+const ::google::protobuf::EnumDescriptor* Fmi2Status_descriptor() {
+  protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_ModeliRpc_2eproto::file_level_enum_descriptors[0];
+}
+bool Fmi2Status_IsValid(int value) {
+  switch (value) {
+    case 0:
+    case 1:
+    case 2:
+    case 3:
+    case 4:
+    case 5:
+      return true;
+    default:
+      return false;
+  }
+}
+
+
+// ===================================================================
+
+void Values::InitAsDefaultInstance() {
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int Values::kInstanceNameFieldNumber;
+const int Values::kIntVrsFieldNumber;
+const int Values::kIntValuesFieldNumber;
+const int Values::kRealVrsFieldNumber;
+const int Values::kRealValuesFieldNumber;
+const int Values::kBoolVrsFieldNumber;
+const int Values::kBoolValuesFieldNumber;
+const int Values::kStringVrsFieldNumber;
+const int Values::kStringValuesFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+Values::Values()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    ::protobuf_ModeliRpc_2eproto::InitDefaultsValues();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:ModeliRpc.Values)
+}
+Values::Values(const Values& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      int_vrs_(from.int_vrs_),
+      int_values_(from.int_values_),
+      real_vrs_(from.real_vrs_),
+      real_values_(from.real_values_),
+      bool_vrs_(from.bool_vrs_),
+      bool_values_(from.bool_values_),
+      string_vrs_(from.string_vrs_),
+      string_values_(from.string_values_),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  instance_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.instance_name().size() > 0) {
+    instance_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.instance_name_);
+  }
+  // @@protoc_insertion_point(copy_constructor:ModeliRpc.Values)
+}
+
+void Values::SharedCtor() {
+  instance_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  _cached_size_ = 0;
+}
+
+Values::~Values() {
+  // @@protoc_insertion_point(destructor:ModeliRpc.Values)
+  SharedDtor();
+}
+
+void Values::SharedDtor() {
+  instance_name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void Values::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* Values::descriptor() {
+  ::protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const Values& Values::default_instance() {
+  ::protobuf_ModeliRpc_2eproto::InitDefaultsValues();
+  return *internal_default_instance();
+}
+
+Values* Values::New(::google::protobuf::Arena* arena) const {
+  Values* n = new Values;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void Values::Clear() {
+// @@protoc_insertion_point(message_clear_start:ModeliRpc.Values)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  int_vrs_.Clear();
+  int_values_.Clear();
+  real_vrs_.Clear();
+  real_values_.Clear();
+  bool_vrs_.Clear();
+  bool_values_.Clear();
+  string_vrs_.Clear();
+  string_values_.Clear();
+  instance_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  _internal_metadata_.Clear();
+}
+
+bool Values::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:ModeliRpc.Values)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // string instance_name = 1;
+      case 1: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_instance_name()));
+          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+            this->instance_name().data(), static_cast<int>(this->instance_name().length()),
+            ::google::protobuf::internal::WireFormatLite::PARSE,
+            "ModeliRpc.Values.instance_name"));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // repeated uint32 int_vrs = 2;
+      case 2: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
+                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+                 input, this->mutable_int_vrs())));
+        } else if (
+            static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
+          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
+                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+                 1, 18u, input, this->mutable_int_vrs())));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // repeated int32 int_values = 3;
+      case 3: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(26u /* 26 & 0xFF */)) {
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 input, this->mutable_int_values())));
+        } else if (
+            static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
+          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 1, 26u, input, this->mutable_int_values())));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // repeated uint32 real_vrs = 4;
+      case 4: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(34u /* 34 & 0xFF */)) {
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
+                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+                 input, this->mutable_real_vrs())));
+        } else if (
+            static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(32u /* 32 & 0xFF */)) {
+          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
+                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+                 1, 34u, input, this->mutable_real_vrs())));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // repeated double real_values = 5;
+      case 5: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(42u /* 42 & 0xFF */)) {
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
+                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
+                 input, this->mutable_real_values())));
+        } else if (
+            static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(41u /* 41 & 0xFF */)) {
+          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
+                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
+                 1, 42u, input, this->mutable_real_values())));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // repeated uint32 bool_vrs = 6;
+      case 6: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(50u /* 50 & 0xFF */)) {
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
+                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+                 input, this->mutable_bool_vrs())));
+        } else if (
+            static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(48u /* 48 & 0xFF */)) {
+          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
+                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+                 1, 50u, input, this->mutable_bool_vrs())));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // repeated int32 bool_values = 7;
+      case 7: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(58u /* 58 & 0xFF */)) {
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 input, this->mutable_bool_values())));
+        } else if (
+            static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(56u /* 56 & 0xFF */)) {
+          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 1, 58u, input, this->mutable_bool_values())));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // repeated uint32 string_vrs = 8;
+      case 8: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(66u /* 66 & 0xFF */)) {
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
+                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+                 input, this->mutable_string_vrs())));
+        } else if (
+            static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(64u /* 64 & 0xFF */)) {
+          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
+                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+                 1, 66u, input, this->mutable_string_vrs())));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // repeated string string_values = 9;
+      case 9: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(74u /* 74 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->add_string_values()));
+          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+            this->string_values(this->string_values_size() - 1).data(),
+            static_cast<int>(this->string_values(this->string_values_size() - 1).length()),
+            ::google::protobuf::internal::WireFormatLite::PARSE,
+            "ModeliRpc.Values.string_values"));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:ModeliRpc.Values)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:ModeliRpc.Values)
+  return false;
+#undef DO_
+}
+
+void Values::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:ModeliRpc.Values)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // string instance_name = 1;
+  if (this->instance_name().size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+      this->instance_name().data(), static_cast<int>(this->instance_name().length()),
+      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+      "ModeliRpc.Values.instance_name");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      1, this->instance_name(), output);
+  }
+
+  // repeated uint32 int_vrs = 2;
+  if (this->int_vrs_size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteTag(2, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
+    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
+        _int_vrs_cached_byte_size_));
+  }
+  for (int i = 0, n = this->int_vrs_size(); i < n; i++) {
+    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
+      this->int_vrs(i), output);
+  }
+
+  // repeated int32 int_values = 3;
+  if (this->int_values_size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteTag(3, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
+    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
+        _int_values_cached_byte_size_));
+  }
+  for (int i = 0, n = this->int_values_size(); i < n; i++) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt32NoTag(
+      this->int_values(i), output);
+  }
+
+  // repeated uint32 real_vrs = 4;
+  if (this->real_vrs_size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteTag(4, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
+    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
+        _real_vrs_cached_byte_size_));
+  }
+  for (int i = 0, n = this->real_vrs_size(); i < n; i++) {
+    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
+      this->real_vrs(i), output);
+  }
+
+  // repeated double real_values = 5;
+  if (this->real_values_size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteTag(5, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
+    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
+        _real_values_cached_byte_size_));
+    ::google::protobuf::internal::WireFormatLite::WriteDoubleArray(
+      this->real_values().data(), this->real_values_size(), output);
+  }
+
+  // repeated uint32 bool_vrs = 6;
+  if (this->bool_vrs_size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteTag(6, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
+    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
+        _bool_vrs_cached_byte_size_));
+  }
+  for (int i = 0, n = this->bool_vrs_size(); i < n; i++) {
+    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
+      this->bool_vrs(i), output);
+  }
+
+  // repeated int32 bool_values = 7;
+  if (this->bool_values_size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteTag(7, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
+    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
+        _bool_values_cached_byte_size_));
+  }
+  for (int i = 0, n = this->bool_values_size(); i < n; i++) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt32NoTag(
+      this->bool_values(i), output);
+  }
+
+  // repeated uint32 string_vrs = 8;
+  if (this->string_vrs_size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteTag(8, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
+    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
+        _string_vrs_cached_byte_size_));
+  }
+  for (int i = 0, n = this->string_vrs_size(); i < n; i++) {
+    ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
+      this->string_vrs(i), output);
+  }
+
+  // repeated string string_values = 9;
+  for (int i = 0, n = this->string_values_size(); i < n; i++) {
+    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+      this->string_values(i).data(), static_cast<int>(this->string_values(i).length()),
+      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+      "ModeliRpc.Values.string_values");
+    ::google::protobuf::internal::WireFormatLite::WriteString(
+      9, this->string_values(i), output);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
+  }
+  // @@protoc_insertion_point(serialize_end:ModeliRpc.Values)
+}
+
+::google::protobuf::uint8* Values::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:ModeliRpc.Values)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // string instance_name = 1;
+  if (this->instance_name().size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+      this->instance_name().data(), static_cast<int>(this->instance_name().length()),
+      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+      "ModeliRpc.Values.instance_name");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        1, this->instance_name(), target);
+  }
+
+  // repeated uint32 int_vrs = 2;
+  if (this->int_vrs_size() > 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
+      2,
+      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
+      target);
+    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
+        static_cast< ::google::protobuf::int32>(
+            _int_vrs_cached_byte_size_), target);
+    target = ::google::protobuf::internal::WireFormatLite::
+      WriteUInt32NoTagToArray(this->int_vrs_, target);
+  }
+
+  // repeated int32 int_values = 3;
+  if (this->int_values_size() > 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
+      3,
+      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
+      target);
+    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
+        static_cast< ::google::protobuf::int32>(
+            _int_values_cached_byte_size_), target);
+    target = ::google::protobuf::internal::WireFormatLite::
+      WriteInt32NoTagToArray(this->int_values_, target);
+  }
+
+  // repeated uint32 real_vrs = 4;
+  if (this->real_vrs_size() > 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
+      4,
+      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
+      target);
+    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
+        static_cast< ::google::protobuf::int32>(
+            _real_vrs_cached_byte_size_), target);
+    target = ::google::protobuf::internal::WireFormatLite::
+      WriteUInt32NoTagToArray(this->real_vrs_, target);
+  }
+
+  // repeated double real_values = 5;
+  if (this->real_values_size() > 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
+      5,
+      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
+      target);
+    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
+        static_cast< ::google::protobuf::int32>(
+            _real_values_cached_byte_size_), target);
+    target = ::google::protobuf::internal::WireFormatLite::
+      WriteDoubleNoTagToArray(this->real_values_, target);
+  }
+
+  // repeated uint32 bool_vrs = 6;
+  if (this->bool_vrs_size() > 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
+      6,
+      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
+      target);
+    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
+        static_cast< ::google::protobuf::int32>(
+            _bool_vrs_cached_byte_size_), target);
+    target = ::google::protobuf::internal::WireFormatLite::
+      WriteUInt32NoTagToArray(this->bool_vrs_, target);
+  }
+
+  // repeated int32 bool_values = 7;
+  if (this->bool_values_size() > 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
+      7,
+      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
+      target);
+    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
+        static_cast< ::google::protobuf::int32>(
+            _bool_values_cached_byte_size_), target);
+    target = ::google::protobuf::internal::WireFormatLite::
+      WriteInt32NoTagToArray(this->bool_values_, target);
+  }
+
+  // repeated uint32 string_vrs = 8;
+  if (this->string_vrs_size() > 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
+      8,
+      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
+      target);
+    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
+        static_cast< ::google::protobuf::int32>(
+            _string_vrs_cached_byte_size_), target);
+    target = ::google::protobuf::internal::WireFormatLite::
+      WriteUInt32NoTagToArray(this->string_vrs_, target);
+  }
+
+  // repeated string string_values = 9;
+  for (int i = 0, n = this->string_values_size(); i < n; i++) {
+    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+      this->string_values(i).data(), static_cast<int>(this->string_values(i).length()),
+      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+      "ModeliRpc.Values.string_values");
+    target = ::google::protobuf::internal::WireFormatLite::
+      WriteStringToArray(9, this->string_values(i), target);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:ModeliRpc.Values)
+  return target;
+}
+
+size_t Values::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:ModeliRpc.Values)
+  size_t total_size = 0;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
+  }
+  // repeated uint32 int_vrs = 2;
+  {
+    size_t data_size = ::google::protobuf::internal::WireFormatLite::
+      UInt32Size(this->int_vrs_);
+    if (data_size > 0) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::Int32Size(
+            static_cast< ::google::protobuf::int32>(data_size));
+    }
+    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
+    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+    _int_vrs_cached_byte_size_ = cached_size;
+    GOOGLE_SAFE_CONCURRENT_WRITES_END();
+    total_size += data_size;
+  }
+
+  // repeated int32 int_values = 3;
+  {
+    size_t data_size = ::google::protobuf::internal::WireFormatLite::
+      Int32Size(this->int_values_);
+    if (data_size > 0) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::Int32Size(
+            static_cast< ::google::protobuf::int32>(data_size));
+    }
+    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
+    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+    _int_values_cached_byte_size_ = cached_size;
+    GOOGLE_SAFE_CONCURRENT_WRITES_END();
+    total_size += data_size;
+  }
+
+  // repeated uint32 real_vrs = 4;
+  {
+    size_t data_size = ::google::protobuf::internal::WireFormatLite::
+      UInt32Size(this->real_vrs_);
+    if (data_size > 0) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::Int32Size(
+            static_cast< ::google::protobuf::int32>(data_size));
+    }
+    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
+    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+    _real_vrs_cached_byte_size_ = cached_size;
+    GOOGLE_SAFE_CONCURRENT_WRITES_END();
+    total_size += data_size;
+  }
+
+  // repeated double real_values = 5;
+  {
+    unsigned int count = static_cast<unsigned int>(this->real_values_size());
+    size_t data_size = 8UL * count;
+    if (data_size > 0) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::Int32Size(
+            static_cast< ::google::protobuf::int32>(data_size));
+    }
+    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
+    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+    _real_values_cached_byte_size_ = cached_size;
+    GOOGLE_SAFE_CONCURRENT_WRITES_END();
+    total_size += data_size;
+  }
+
+  // repeated uint32 bool_vrs = 6;
+  {
+    size_t data_size = ::google::protobuf::internal::WireFormatLite::
+      UInt32Size(this->bool_vrs_);
+    if (data_size > 0) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::Int32Size(
+            static_cast< ::google::protobuf::int32>(data_size));
+    }
+    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
+    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+    _bool_vrs_cached_byte_size_ = cached_size;
+    GOOGLE_SAFE_CONCURRENT_WRITES_END();
+    total_size += data_size;
+  }
+
+  // repeated int32 bool_values = 7;
+  {
+    size_t data_size = ::google::protobuf::internal::WireFormatLite::
+      Int32Size(this->bool_values_);
+    if (data_size > 0) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::Int32Size(
+            static_cast< ::google::protobuf::int32>(data_size));
+    }
+    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
+    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+    _bool_values_cached_byte_size_ = cached_size;
+    GOOGLE_SAFE_CONCURRENT_WRITES_END();
+    total_size += data_size;
+  }
+
+  // repeated uint32 string_vrs = 8;
+  {
+    size_t data_size = ::google::protobuf::internal::WireFormatLite::
+      UInt32Size(this->string_vrs_);
+    if (data_size > 0) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::Int32Size(
+            static_cast< ::google::protobuf::int32>(data_size));
+    }
+    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
+    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+    _string_vrs_cached_byte_size_ = cached_size;
+    GOOGLE_SAFE_CONCURRENT_WRITES_END();
+    total_size += data_size;
+  }
+
+  // repeated string string_values = 9;
+  total_size += 1 *
+      ::google::protobuf::internal::FromIntSize(this->string_values_size());
+  for (int i = 0, n = this->string_values_size(); i < n; i++) {
+    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
+      this->string_values(i));
+  }
+
+  // string instance_name = 1;
+  if (this->instance_name().size() > 0) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->instance_name());
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void Values::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:ModeliRpc.Values)
+  GOOGLE_DCHECK_NE(&from, this);
+  const Values* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const Values>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ModeliRpc.Values)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:ModeliRpc.Values)
+    MergeFrom(*source);
+  }
+}
+
+void Values::MergeFrom(const Values& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:ModeliRpc.Values)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  int_vrs_.MergeFrom(from.int_vrs_);
+  int_values_.MergeFrom(from.int_values_);
+  real_vrs_.MergeFrom(from.real_vrs_);
+  real_values_.MergeFrom(from.real_values_);
+  bool_vrs_.MergeFrom(from.bool_vrs_);
+  bool_values_.MergeFrom(from.bool_values_);
+  string_vrs_.MergeFrom(from.string_vrs_);
+  string_values_.MergeFrom(from.string_values_);
+  if (from.instance_name().size() > 0) {
+
+    instance_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.instance_name_);
+  }
+}
+
+void Values::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:ModeliRpc.Values)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void Values::CopyFrom(const Values& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:ModeliRpc.Values)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool Values::IsInitialized() const {
+  return true;
+}
+
+void Values::Swap(Values* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void Values::InternalSwap(Values* other) {
+  using std::swap;
+  int_vrs_.InternalSwap(&other->int_vrs_);
+  int_values_.InternalSwap(&other->int_values_);
+  real_vrs_.InternalSwap(&other->real_vrs_);
+  real_values_.InternalSwap(&other->real_values_);
+  bool_vrs_.InternalSwap(&other->bool_vrs_);
+  bool_values_.InternalSwap(&other->bool_values_);
+  string_vrs_.InternalSwap(&other->string_vrs_);
+  string_values_.InternalSwap(&other->string_values_);
+  instance_name_.Swap(&other->instance_name_);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata Values::GetMetadata() const {
+  protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+
+// ===================================================================
+
+void ChannelLink::InitAsDefaultInstance() {
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int ChannelLink::kMasterInstanceNameFieldNumber;
+const int ChannelLink::kSlaveInstanceNameFieldNumber;
+const int ChannelLink::kMasterVrFieldNumber;
+const int ChannelLink::kSlaveVrFieldNumber;
+const int ChannelLink::kFactorFieldNumber;
+const int ChannelLink::kOffsetFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+ChannelLink::ChannelLink()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    ::protobuf_ModeliRpc_2eproto::InitDefaultsChannelLink();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:ModeliRpc.ChannelLink)
+}
+ChannelLink::ChannelLink(const ChannelLink& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  master_instance_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.master_instance_name().size() > 0) {
+    master_instance_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.master_instance_name_);
+  }
+  slave_instance_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.slave_instance_name().size() > 0) {
+    slave_instance_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.slave_instance_name_);
+  }
+  ::memcpy(&master_vr_, &from.master_vr_,
+    static_cast<size_t>(reinterpret_cast<char*>(&offset_) -
+    reinterpret_cast<char*>(&master_vr_)) + sizeof(offset_));
+  // @@protoc_insertion_point(copy_constructor:ModeliRpc.ChannelLink)
+}
+
+void ChannelLink::SharedCtor() {
+  master_instance_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  slave_instance_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  ::memset(&master_vr_, 0, static_cast<size_t>(
+      reinterpret_cast<char*>(&offset_) -
+      reinterpret_cast<char*>(&master_vr_)) + sizeof(offset_));
+  _cached_size_ = 0;
+}
+
+ChannelLink::~ChannelLink() {
+  // @@protoc_insertion_point(destructor:ModeliRpc.ChannelLink)
+  SharedDtor();
+}
+
+void ChannelLink::SharedDtor() {
+  master_instance_name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  slave_instance_name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void ChannelLink::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* ChannelLink::descriptor() {
+  ::protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const ChannelLink& ChannelLink::default_instance() {
+  ::protobuf_ModeliRpc_2eproto::InitDefaultsChannelLink();
+  return *internal_default_instance();
+}
+
+ChannelLink* ChannelLink::New(::google::protobuf::Arena* arena) const {
+  ChannelLink* n = new ChannelLink;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void ChannelLink::Clear() {
+// @@protoc_insertion_point(message_clear_start:ModeliRpc.ChannelLink)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  master_instance_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  slave_instance_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  ::memset(&master_vr_, 0, static_cast<size_t>(
+      reinterpret_cast<char*>(&offset_) -
+      reinterpret_cast<char*>(&master_vr_)) + sizeof(offset_));
+  _internal_metadata_.Clear();
+}
+
+bool ChannelLink::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:ModeliRpc.ChannelLink)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // string master_instance_name = 1;
+      case 1: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_master_instance_name()));
+          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+            this->master_instance_name().data(), static_cast<int>(this->master_instance_name().length()),
+            ::google::protobuf::internal::WireFormatLite::PARSE,
+            "ModeliRpc.ChannelLink.master_instance_name"));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // string slave_instance_name = 2;
+      case 2: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_slave_instance_name()));
+          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+            this->slave_instance_name().data(), static_cast<int>(this->slave_instance_name().length()),
+            ::google::protobuf::internal::WireFormatLite::PARSE,
+            "ModeliRpc.ChannelLink.slave_instance_name"));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // uint32 master_vr = 3;
+      case 3: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
+
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+                 input, &master_vr_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // uint32 slave_vr = 4;
+      case 4: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(32u /* 32 & 0xFF */)) {
+
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+                 input, &slave_vr_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // double factor = 5;
+      case 5: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(41u /* 41 & 0xFF */)) {
+
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
+                 input, &factor_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // double offset = 6;
+      case 6: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(49u /* 49 & 0xFF */)) {
+
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
+                 input, &offset_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:ModeliRpc.ChannelLink)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:ModeliRpc.ChannelLink)
+  return false;
+#undef DO_
+}
+
+void ChannelLink::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:ModeliRpc.ChannelLink)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // string master_instance_name = 1;
+  if (this->master_instance_name().size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+      this->master_instance_name().data(), static_cast<int>(this->master_instance_name().length()),
+      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+      "ModeliRpc.ChannelLink.master_instance_name");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      1, this->master_instance_name(), output);
+  }
+
+  // string slave_instance_name = 2;
+  if (this->slave_instance_name().size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+      this->slave_instance_name().data(), static_cast<int>(this->slave_instance_name().length()),
+      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+      "ModeliRpc.ChannelLink.slave_instance_name");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      2, this->slave_instance_name(), output);
+  }
+
+  // uint32 master_vr = 3;
+  if (this->master_vr() != 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteUInt32(3, this->master_vr(), output);
+  }
+
+  // uint32 slave_vr = 4;
+  if (this->slave_vr() != 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteUInt32(4, this->slave_vr(), output);
+  }
+
+  // double factor = 5;
+  if (this->factor() != 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteDouble(5, this->factor(), output);
+  }
+
+  // double offset = 6;
+  if (this->offset() != 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteDouble(6, this->offset(), output);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
+  }
+  // @@protoc_insertion_point(serialize_end:ModeliRpc.ChannelLink)
+}
+
+::google::protobuf::uint8* ChannelLink::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:ModeliRpc.ChannelLink)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // string master_instance_name = 1;
+  if (this->master_instance_name().size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+      this->master_instance_name().data(), static_cast<int>(this->master_instance_name().length()),
+      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+      "ModeliRpc.ChannelLink.master_instance_name");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        1, this->master_instance_name(), target);
+  }
+
+  // string slave_instance_name = 2;
+  if (this->slave_instance_name().size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+      this->slave_instance_name().data(), static_cast<int>(this->slave_instance_name().length()),
+      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+      "ModeliRpc.ChannelLink.slave_instance_name");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        2, this->slave_instance_name(), target);
+  }
+
+  // uint32 master_vr = 3;
+  if (this->master_vr() != 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(3, this->master_vr(), target);
+  }
+
+  // uint32 slave_vr = 4;
+  if (this->slave_vr() != 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(4, this->slave_vr(), target);
+  }
+
+  // double factor = 5;
+  if (this->factor() != 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(5, this->factor(), target);
+  }
+
+  // double offset = 6;
+  if (this->offset() != 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(6, this->offset(), target);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:ModeliRpc.ChannelLink)
+  return target;
+}
+
+size_t ChannelLink::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:ModeliRpc.ChannelLink)
+  size_t total_size = 0;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
+  }
+  // string master_instance_name = 1;
+  if (this->master_instance_name().size() > 0) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->master_instance_name());
+  }
+
+  // string slave_instance_name = 2;
+  if (this->slave_instance_name().size() > 0) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->slave_instance_name());
+  }
+
+  // uint32 master_vr = 3;
+  if (this->master_vr() != 0) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::UInt32Size(
+        this->master_vr());
+  }
+
+  // uint32 slave_vr = 4;
+  if (this->slave_vr() != 0) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::UInt32Size(
+        this->slave_vr());
+  }
+
+  // double factor = 5;
+  if (this->factor() != 0) {
+    total_size += 1 + 8;
+  }
+
+  // double offset = 6;
+  if (this->offset() != 0) {
+    total_size += 1 + 8;
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void ChannelLink::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:ModeliRpc.ChannelLink)
+  GOOGLE_DCHECK_NE(&from, this);
+  const ChannelLink* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const ChannelLink>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ModeliRpc.ChannelLink)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:ModeliRpc.ChannelLink)
+    MergeFrom(*source);
+  }
+}
+
+void ChannelLink::MergeFrom(const ChannelLink& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:ModeliRpc.ChannelLink)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (from.master_instance_name().size() > 0) {
+
+    master_instance_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.master_instance_name_);
+  }
+  if (from.slave_instance_name().size() > 0) {
+
+    slave_instance_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.slave_instance_name_);
+  }
+  if (from.master_vr() != 0) {
+    set_master_vr(from.master_vr());
+  }
+  if (from.slave_vr() != 0) {
+    set_slave_vr(from.slave_vr());
+  }
+  if (from.factor() != 0) {
+    set_factor(from.factor());
+  }
+  if (from.offset() != 0) {
+    set_offset(from.offset());
+  }
+}
+
+void ChannelLink::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:ModeliRpc.ChannelLink)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void ChannelLink::CopyFrom(const ChannelLink& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:ModeliRpc.ChannelLink)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool ChannelLink::IsInitialized() const {
+  return true;
+}
+
+void ChannelLink::Swap(ChannelLink* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void ChannelLink::InternalSwap(ChannelLink* other) {
+  using std::swap;
+  master_instance_name_.Swap(&other->master_instance_name_);
+  slave_instance_name_.Swap(&other->slave_instance_name_);
+  swap(master_vr_, other->master_vr_);
+  swap(slave_vr_, other->slave_vr_);
+  swap(factor_, other->factor_);
+  swap(offset_, other->offset_);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata ChannelLink::GetMetadata() const {
+  protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+
+// ===================================================================
+
+void PlayRequest::InitAsDefaultInstance() {
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+PlayRequest::PlayRequest()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    ::protobuf_ModeliRpc_2eproto::InitDefaultsPlayRequest();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:ModeliRpc.PlayRequest)
+}
+PlayRequest::PlayRequest(const PlayRequest& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  // @@protoc_insertion_point(copy_constructor:ModeliRpc.PlayRequest)
+}
+
+void PlayRequest::SharedCtor() {
+  _cached_size_ = 0;
+}
+
+PlayRequest::~PlayRequest() {
+  // @@protoc_insertion_point(destructor:ModeliRpc.PlayRequest)
+  SharedDtor();
+}
+
+void PlayRequest::SharedDtor() {
+}
+
+void PlayRequest::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* PlayRequest::descriptor() {
+  ::protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const PlayRequest& PlayRequest::default_instance() {
+  ::protobuf_ModeliRpc_2eproto::InitDefaultsPlayRequest();
+  return *internal_default_instance();
+}
+
+PlayRequest* PlayRequest::New(::google::protobuf::Arena* arena) const {
+  PlayRequest* n = new PlayRequest;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void PlayRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:ModeliRpc.PlayRequest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  _internal_metadata_.Clear();
+}
+
+bool PlayRequest::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:ModeliRpc.PlayRequest)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+  handle_unusual:
+    if (tag == 0) {
+      goto success;
+    }
+    DO_(::google::protobuf::internal::WireFormat::SkipField(
+          input, tag, _internal_metadata_.mutable_unknown_fields()));
+  }
+success:
+  // @@protoc_insertion_point(parse_success:ModeliRpc.PlayRequest)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:ModeliRpc.PlayRequest)
+  return false;
+#undef DO_
+}
+
+void PlayRequest::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:ModeliRpc.PlayRequest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
+  }
+  // @@protoc_insertion_point(serialize_end:ModeliRpc.PlayRequest)
+}
+
+::google::protobuf::uint8* PlayRequest::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:ModeliRpc.PlayRequest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:ModeliRpc.PlayRequest)
+  return target;
+}
+
+size_t PlayRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:ModeliRpc.PlayRequest)
+  size_t total_size = 0;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
+  }
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void PlayRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:ModeliRpc.PlayRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  const PlayRequest* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const PlayRequest>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ModeliRpc.PlayRequest)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:ModeliRpc.PlayRequest)
+    MergeFrom(*source);
+  }
+}
+
+void PlayRequest::MergeFrom(const PlayRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:ModeliRpc.PlayRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+}
+
+void PlayRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:ModeliRpc.PlayRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void PlayRequest::CopyFrom(const PlayRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:ModeliRpc.PlayRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool PlayRequest::IsInitialized() const {
+  return true;
+}
+
+void PlayRequest::Swap(PlayRequest* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void PlayRequest::InternalSwap(PlayRequest* other) {
+  using std::swap;
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata PlayRequest::GetMetadata() const {
+  protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+
+// ===================================================================
+
+void PlayResponse::InitAsDefaultInstance() {
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int PlayResponse::kStatusFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+PlayResponse::PlayResponse()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    ::protobuf_ModeliRpc_2eproto::InitDefaultsPlayResponse();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:ModeliRpc.PlayResponse)
+}
+PlayResponse::PlayResponse(const PlayResponse& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  status_ = from.status_;
+  // @@protoc_insertion_point(copy_constructor:ModeliRpc.PlayResponse)
+}
+
+void PlayResponse::SharedCtor() {
+  status_ = 0;
+  _cached_size_ = 0;
+}
+
+PlayResponse::~PlayResponse() {
+  // @@protoc_insertion_point(destructor:ModeliRpc.PlayResponse)
+  SharedDtor();
+}
+
+void PlayResponse::SharedDtor() {
+}
+
+void PlayResponse::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* PlayResponse::descriptor() {
+  ::protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const PlayResponse& PlayResponse::default_instance() {
+  ::protobuf_ModeliRpc_2eproto::InitDefaultsPlayResponse();
+  return *internal_default_instance();
+}
+
+PlayResponse* PlayResponse::New(::google::protobuf::Arena* arena) const {
+  PlayResponse* n = new PlayResponse;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void PlayResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:ModeliRpc.PlayResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  status_ = 0;
+  _internal_metadata_.Clear();
+}
+
+bool PlayResponse::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:ModeliRpc.PlayResponse)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // .ModeliRpc.Fmi2Status status = 1;
+      case 1: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
+          int value;
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
+                 input, &value)));
+          set_status(static_cast< ::ModeliRpc::Fmi2Status >(value));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:ModeliRpc.PlayResponse)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:ModeliRpc.PlayResponse)
+  return false;
+#undef DO_
+}
+
+void PlayResponse::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:ModeliRpc.PlayResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // .ModeliRpc.Fmi2Status status = 1;
+  if (this->status() != 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteEnum(
+      1, this->status(), output);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
+  }
+  // @@protoc_insertion_point(serialize_end:ModeliRpc.PlayResponse)
+}
+
+::google::protobuf::uint8* PlayResponse::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:ModeliRpc.PlayResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // .ModeliRpc.Fmi2Status status = 1;
+  if (this->status() != 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
+      1, this->status(), target);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:ModeliRpc.PlayResponse)
+  return target;
+}
+
+size_t PlayResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:ModeliRpc.PlayResponse)
+  size_t total_size = 0;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
+  }
+  // .ModeliRpc.Fmi2Status status = 1;
+  if (this->status() != 0) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::EnumSize(this->status());
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void PlayResponse::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:ModeliRpc.PlayResponse)
+  GOOGLE_DCHECK_NE(&from, this);
+  const PlayResponse* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const PlayResponse>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ModeliRpc.PlayResponse)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:ModeliRpc.PlayResponse)
+    MergeFrom(*source);
+  }
+}
+
+void PlayResponse::MergeFrom(const PlayResponse& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:ModeliRpc.PlayResponse)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (from.status() != 0) {
+    set_status(from.status());
+  }
+}
+
+void PlayResponse::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:ModeliRpc.PlayResponse)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void PlayResponse::CopyFrom(const PlayResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:ModeliRpc.PlayResponse)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool PlayResponse::IsInitialized() const {
+  return true;
+}
+
+void PlayResponse::Swap(PlayResponse* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void PlayResponse::InternalSwap(PlayResponse* other) {
+  using std::swap;
+  swap(status_, other->status_);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata PlayResponse::GetMetadata() const {
+  protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+
+// ===================================================================
+
+void PlayFastRequest::InitAsDefaultInstance() {
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int PlayFastRequest::kTimeFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+PlayFastRequest::PlayFastRequest()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    ::protobuf_ModeliRpc_2eproto::InitDefaultsPlayFastRequest();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:ModeliRpc.PlayFastRequest)
+}
+PlayFastRequest::PlayFastRequest(const PlayFastRequest& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  time_ = from.time_;
+  // @@protoc_insertion_point(copy_constructor:ModeliRpc.PlayFastRequest)
+}
+
+void PlayFastRequest::SharedCtor() {
+  time_ = 0;
+  _cached_size_ = 0;
+}
+
+PlayFastRequest::~PlayFastRequest() {
+  // @@protoc_insertion_point(destructor:ModeliRpc.PlayFastRequest)
+  SharedDtor();
+}
+
+void PlayFastRequest::SharedDtor() {
+}
+
+void PlayFastRequest::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* PlayFastRequest::descriptor() {
+  ::protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const PlayFastRequest& PlayFastRequest::default_instance() {
+  ::protobuf_ModeliRpc_2eproto::InitDefaultsPlayFastRequest();
+  return *internal_default_instance();
+}
+
+PlayFastRequest* PlayFastRequest::New(::google::protobuf::Arena* arena) const {
+  PlayFastRequest* n = new PlayFastRequest;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void PlayFastRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:ModeliRpc.PlayFastRequest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  time_ = 0;
+  _internal_metadata_.Clear();
+}
+
+bool PlayFastRequest::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:ModeliRpc.PlayFastRequest)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // double time = 1;
+      case 1: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(9u /* 9 & 0xFF */)) {
+
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
+                 input, &time_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:ModeliRpc.PlayFastRequest)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:ModeliRpc.PlayFastRequest)
+  return false;
+#undef DO_
+}
+
+void PlayFastRequest::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:ModeliRpc.PlayFastRequest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // double time = 1;
+  if (this->time() != 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteDouble(1, this->time(), output);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
+  }
+  // @@protoc_insertion_point(serialize_end:ModeliRpc.PlayFastRequest)
+}
+
+::google::protobuf::uint8* PlayFastRequest::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:ModeliRpc.PlayFastRequest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // double time = 1;
+  if (this->time() != 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(1, this->time(), target);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:ModeliRpc.PlayFastRequest)
+  return target;
+}
+
+size_t PlayFastRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:ModeliRpc.PlayFastRequest)
+  size_t total_size = 0;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
+  }
+  // double time = 1;
+  if (this->time() != 0) {
+    total_size += 1 + 8;
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void PlayFastRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:ModeliRpc.PlayFastRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  const PlayFastRequest* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const PlayFastRequest>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ModeliRpc.PlayFastRequest)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:ModeliRpc.PlayFastRequest)
+    MergeFrom(*source);
+  }
+}
+
+void PlayFastRequest::MergeFrom(const PlayFastRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:ModeliRpc.PlayFastRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (from.time() != 0) {
+    set_time(from.time());
+  }
+}
+
+void PlayFastRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:ModeliRpc.PlayFastRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void PlayFastRequest::CopyFrom(const PlayFastRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:ModeliRpc.PlayFastRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool PlayFastRequest::IsInitialized() const {
+  return true;
+}
+
+void PlayFastRequest::Swap(PlayFastRequest* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void PlayFastRequest::InternalSwap(PlayFastRequest* other) {
+  using std::swap;
+  swap(time_, other->time_);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata PlayFastRequest::GetMetadata() const {
+  protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+
+// ===================================================================
+
+void PlayFastResponse::InitAsDefaultInstance() {
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int PlayFastResponse::kStatusFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+PlayFastResponse::PlayFastResponse()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    ::protobuf_ModeliRpc_2eproto::InitDefaultsPlayFastResponse();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:ModeliRpc.PlayFastResponse)
+}
+PlayFastResponse::PlayFastResponse(const PlayFastResponse& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  status_ = from.status_;
+  // @@protoc_insertion_point(copy_constructor:ModeliRpc.PlayFastResponse)
+}
+
+void PlayFastResponse::SharedCtor() {
+  status_ = 0;
+  _cached_size_ = 0;
+}
+
+PlayFastResponse::~PlayFastResponse() {
+  // @@protoc_insertion_point(destructor:ModeliRpc.PlayFastResponse)
+  SharedDtor();
+}
+
+void PlayFastResponse::SharedDtor() {
+}
+
+void PlayFastResponse::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* PlayFastResponse::descriptor() {
+  ::protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const PlayFastResponse& PlayFastResponse::default_instance() {
+  ::protobuf_ModeliRpc_2eproto::InitDefaultsPlayFastResponse();
+  return *internal_default_instance();
+}
+
+PlayFastResponse* PlayFastResponse::New(::google::protobuf::Arena* arena) const {
+  PlayFastResponse* n = new PlayFastResponse;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void PlayFastResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:ModeliRpc.PlayFastResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  status_ = 0;
+  _internal_metadata_.Clear();
+}
+
+bool PlayFastResponse::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:ModeliRpc.PlayFastResponse)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // .ModeliRpc.Fmi2Status status = 1;
+      case 1: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
+          int value;
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
+                 input, &value)));
+          set_status(static_cast< ::ModeliRpc::Fmi2Status >(value));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:ModeliRpc.PlayFastResponse)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:ModeliRpc.PlayFastResponse)
+  return false;
+#undef DO_
+}
+
+void PlayFastResponse::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:ModeliRpc.PlayFastResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // .ModeliRpc.Fmi2Status status = 1;
+  if (this->status() != 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteEnum(
+      1, this->status(), output);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
+  }
+  // @@protoc_insertion_point(serialize_end:ModeliRpc.PlayFastResponse)
+}
+
+::google::protobuf::uint8* PlayFastResponse::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:ModeliRpc.PlayFastResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // .ModeliRpc.Fmi2Status status = 1;
+  if (this->status() != 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
+      1, this->status(), target);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:ModeliRpc.PlayFastResponse)
+  return target;
+}
+
+size_t PlayFastResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:ModeliRpc.PlayFastResponse)
+  size_t total_size = 0;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
+  }
+  // .ModeliRpc.Fmi2Status status = 1;
+  if (this->status() != 0) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::EnumSize(this->status());
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void PlayFastResponse::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:ModeliRpc.PlayFastResponse)
+  GOOGLE_DCHECK_NE(&from, this);
+  const PlayFastResponse* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const PlayFastResponse>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ModeliRpc.PlayFastResponse)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:ModeliRpc.PlayFastResponse)
+    MergeFrom(*source);
+  }
+}
+
+void PlayFastResponse::MergeFrom(const PlayFastResponse& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:ModeliRpc.PlayFastResponse)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (from.status() != 0) {
+    set_status(from.status());
+  }
+}
+
+void PlayFastResponse::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:ModeliRpc.PlayFastResponse)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void PlayFastResponse::CopyFrom(const PlayFastResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:ModeliRpc.PlayFastResponse)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool PlayFastResponse::IsInitialized() const {
+  return true;
+}
+
+void PlayFastResponse::Swap(PlayFastResponse* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void PlayFastResponse::InternalSwap(PlayFastResponse* other) {
+  using std::swap;
+  swap(status_, other->status_);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata PlayFastResponse::GetMetadata() const {
+  protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+
+// ===================================================================
+
+void PauseRequest::InitAsDefaultInstance() {
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+PauseRequest::PauseRequest()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    ::protobuf_ModeliRpc_2eproto::InitDefaultsPauseRequest();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:ModeliRpc.PauseRequest)
+}
+PauseRequest::PauseRequest(const PauseRequest& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  // @@protoc_insertion_point(copy_constructor:ModeliRpc.PauseRequest)
+}
+
+void PauseRequest::SharedCtor() {
+  _cached_size_ = 0;
+}
+
+PauseRequest::~PauseRequest() {
+  // @@protoc_insertion_point(destructor:ModeliRpc.PauseRequest)
+  SharedDtor();
+}
+
+void PauseRequest::SharedDtor() {
+}
+
+void PauseRequest::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* PauseRequest::descriptor() {
+  ::protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const PauseRequest& PauseRequest::default_instance() {
+  ::protobuf_ModeliRpc_2eproto::InitDefaultsPauseRequest();
+  return *internal_default_instance();
+}
+
+PauseRequest* PauseRequest::New(::google::protobuf::Arena* arena) const {
+  PauseRequest* n = new PauseRequest;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void PauseRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:ModeliRpc.PauseRequest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  _internal_metadata_.Clear();
+}
+
+bool PauseRequest::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:ModeliRpc.PauseRequest)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+  handle_unusual:
+    if (tag == 0) {
+      goto success;
+    }
+    DO_(::google::protobuf::internal::WireFormat::SkipField(
+          input, tag, _internal_metadata_.mutable_unknown_fields()));
+  }
+success:
+  // @@protoc_insertion_point(parse_success:ModeliRpc.PauseRequest)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:ModeliRpc.PauseRequest)
+  return false;
+#undef DO_
+}
+
+void PauseRequest::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:ModeliRpc.PauseRequest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
+  }
+  // @@protoc_insertion_point(serialize_end:ModeliRpc.PauseRequest)
+}
+
+::google::protobuf::uint8* PauseRequest::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:ModeliRpc.PauseRequest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:ModeliRpc.PauseRequest)
+  return target;
+}
+
+size_t PauseRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:ModeliRpc.PauseRequest)
+  size_t total_size = 0;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
+  }
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void PauseRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:ModeliRpc.PauseRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  const PauseRequest* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const PauseRequest>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ModeliRpc.PauseRequest)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:ModeliRpc.PauseRequest)
+    MergeFrom(*source);
+  }
+}
+
+void PauseRequest::MergeFrom(const PauseRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:ModeliRpc.PauseRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+}
+
+void PauseRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:ModeliRpc.PauseRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void PauseRequest::CopyFrom(const PauseRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:ModeliRpc.PauseRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool PauseRequest::IsInitialized() const {
+  return true;
+}
+
+void PauseRequest::Swap(PauseRequest* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void PauseRequest::InternalSwap(PauseRequest* other) {
+  using std::swap;
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata PauseRequest::GetMetadata() const {
+  protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+
+// ===================================================================
+
+void PauseResponse::InitAsDefaultInstance() {
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+PauseResponse::PauseResponse()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    ::protobuf_ModeliRpc_2eproto::InitDefaultsPauseResponse();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:ModeliRpc.PauseResponse)
+}
+PauseResponse::PauseResponse(const PauseResponse& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  // @@protoc_insertion_point(copy_constructor:ModeliRpc.PauseResponse)
+}
+
+void PauseResponse::SharedCtor() {
+  _cached_size_ = 0;
+}
+
+PauseResponse::~PauseResponse() {
+  // @@protoc_insertion_point(destructor:ModeliRpc.PauseResponse)
+  SharedDtor();
+}
+
+void PauseResponse::SharedDtor() {
+}
+
+void PauseResponse::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* PauseResponse::descriptor() {
+  ::protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const PauseResponse& PauseResponse::default_instance() {
+  ::protobuf_ModeliRpc_2eproto::InitDefaultsPauseResponse();
+  return *internal_default_instance();
+}
+
+PauseResponse* PauseResponse::New(::google::protobuf::Arena* arena) const {
+  PauseResponse* n = new PauseResponse;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void PauseResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:ModeliRpc.PauseResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  _internal_metadata_.Clear();
+}
+
+bool PauseResponse::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:ModeliRpc.PauseResponse)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+  handle_unusual:
+    if (tag == 0) {
+      goto success;
+    }
+    DO_(::google::protobuf::internal::WireFormat::SkipField(
+          input, tag, _internal_metadata_.mutable_unknown_fields()));
+  }
+success:
+  // @@protoc_insertion_point(parse_success:ModeliRpc.PauseResponse)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:ModeliRpc.PauseResponse)
+  return false;
+#undef DO_
+}
+
+void PauseResponse::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:ModeliRpc.PauseResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
+  }
+  // @@protoc_insertion_point(serialize_end:ModeliRpc.PauseResponse)
+}
+
+::google::protobuf::uint8* PauseResponse::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:ModeliRpc.PauseResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:ModeliRpc.PauseResponse)
+  return target;
+}
+
+size_t PauseResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:ModeliRpc.PauseResponse)
+  size_t total_size = 0;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
+  }
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void PauseResponse::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:ModeliRpc.PauseResponse)
+  GOOGLE_DCHECK_NE(&from, this);
+  const PauseResponse* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const PauseResponse>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ModeliRpc.PauseResponse)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:ModeliRpc.PauseResponse)
+    MergeFrom(*source);
+  }
+}
+
+void PauseResponse::MergeFrom(const PauseResponse& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:ModeliRpc.PauseResponse)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+}
+
+void PauseResponse::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:ModeliRpc.PauseResponse)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void PauseResponse::CopyFrom(const PauseResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:ModeliRpc.PauseResponse)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool PauseResponse::IsInitialized() const {
+  return true;
+}
+
+void PauseResponse::Swap(PauseResponse* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void PauseResponse::InternalSwap(PauseResponse* other) {
+  using std::swap;
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata PauseResponse::GetMetadata() const {
+  protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+
+// ===================================================================
+
+void StopRequest::InitAsDefaultInstance() {
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+StopRequest::StopRequest()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    ::protobuf_ModeliRpc_2eproto::InitDefaultsStopRequest();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:ModeliRpc.StopRequest)
+}
+StopRequest::StopRequest(const StopRequest& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  // @@protoc_insertion_point(copy_constructor:ModeliRpc.StopRequest)
+}
+
+void StopRequest::SharedCtor() {
+  _cached_size_ = 0;
+}
+
+StopRequest::~StopRequest() {
+  // @@protoc_insertion_point(destructor:ModeliRpc.StopRequest)
+  SharedDtor();
+}
+
+void StopRequest::SharedDtor() {
+}
+
+void StopRequest::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* StopRequest::descriptor() {
+  ::protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const StopRequest& StopRequest::default_instance() {
+  ::protobuf_ModeliRpc_2eproto::InitDefaultsStopRequest();
+  return *internal_default_instance();
+}
+
+StopRequest* StopRequest::New(::google::protobuf::Arena* arena) const {
+  StopRequest* n = new StopRequest;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void StopRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:ModeliRpc.StopRequest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  _internal_metadata_.Clear();
+}
+
+bool StopRequest::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:ModeliRpc.StopRequest)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+  handle_unusual:
+    if (tag == 0) {
+      goto success;
+    }
+    DO_(::google::protobuf::internal::WireFormat::SkipField(
+          input, tag, _internal_metadata_.mutable_unknown_fields()));
+  }
+success:
+  // @@protoc_insertion_point(parse_success:ModeliRpc.StopRequest)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:ModeliRpc.StopRequest)
+  return false;
+#undef DO_
+}
+
+void StopRequest::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:ModeliRpc.StopRequest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
+  }
+  // @@protoc_insertion_point(serialize_end:ModeliRpc.StopRequest)
+}
+
+::google::protobuf::uint8* StopRequest::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:ModeliRpc.StopRequest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:ModeliRpc.StopRequest)
+  return target;
+}
+
+size_t StopRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:ModeliRpc.StopRequest)
+  size_t total_size = 0;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
+  }
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void StopRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:ModeliRpc.StopRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  const StopRequest* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const StopRequest>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ModeliRpc.StopRequest)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:ModeliRpc.StopRequest)
+    MergeFrom(*source);
+  }
+}
+
+void StopRequest::MergeFrom(const StopRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:ModeliRpc.StopRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+}
+
+void StopRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:ModeliRpc.StopRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void StopRequest::CopyFrom(const StopRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:ModeliRpc.StopRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool StopRequest::IsInitialized() const {
+  return true;
+}
+
+void StopRequest::Swap(StopRequest* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void StopRequest::InternalSwap(StopRequest* other) {
+  using std::swap;
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata StopRequest::GetMetadata() const {
+  protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+
+// ===================================================================
+
+void StopResponse::InitAsDefaultInstance() {
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int StopResponse::kStatusFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+StopResponse::StopResponse()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    ::protobuf_ModeliRpc_2eproto::InitDefaultsStopResponse();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:ModeliRpc.StopResponse)
+}
+StopResponse::StopResponse(const StopResponse& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  status_ = from.status_;
+  // @@protoc_insertion_point(copy_constructor:ModeliRpc.StopResponse)
+}
+
+void StopResponse::SharedCtor() {
+  status_ = 0;
+  _cached_size_ = 0;
+}
+
+StopResponse::~StopResponse() {
+  // @@protoc_insertion_point(destructor:ModeliRpc.StopResponse)
+  SharedDtor();
+}
+
+void StopResponse::SharedDtor() {
+}
+
+void StopResponse::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* StopResponse::descriptor() {
+  ::protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const StopResponse& StopResponse::default_instance() {
+  ::protobuf_ModeliRpc_2eproto::InitDefaultsStopResponse();
+  return *internal_default_instance();
+}
+
+StopResponse* StopResponse::New(::google::protobuf::Arena* arena) const {
+  StopResponse* n = new StopResponse;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void StopResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:ModeliRpc.StopResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  status_ = 0;
+  _internal_metadata_.Clear();
+}
+
+bool StopResponse::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:ModeliRpc.StopResponse)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // .ModeliRpc.Fmi2Status status = 1;
+      case 1: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
+          int value;
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
+                 input, &value)));
+          set_status(static_cast< ::ModeliRpc::Fmi2Status >(value));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:ModeliRpc.StopResponse)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:ModeliRpc.StopResponse)
+  return false;
+#undef DO_
+}
+
+void StopResponse::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:ModeliRpc.StopResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // .ModeliRpc.Fmi2Status status = 1;
+  if (this->status() != 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteEnum(
+      1, this->status(), output);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
+  }
+  // @@protoc_insertion_point(serialize_end:ModeliRpc.StopResponse)
+}
+
+::google::protobuf::uint8* StopResponse::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:ModeliRpc.StopResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // .ModeliRpc.Fmi2Status status = 1;
+  if (this->status() != 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
+      1, this->status(), target);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:ModeliRpc.StopResponse)
+  return target;
+}
+
+size_t StopResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:ModeliRpc.StopResponse)
+  size_t total_size = 0;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
+  }
+  // .ModeliRpc.Fmi2Status status = 1;
+  if (this->status() != 0) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::EnumSize(this->status());
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void StopResponse::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:ModeliRpc.StopResponse)
+  GOOGLE_DCHECK_NE(&from, this);
+  const StopResponse* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const StopResponse>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ModeliRpc.StopResponse)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:ModeliRpc.StopResponse)
+    MergeFrom(*source);
+  }
+}
+
+void StopResponse::MergeFrom(const StopResponse& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:ModeliRpc.StopResponse)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (from.status() != 0) {
+    set_status(from.status());
+  }
+}
+
+void StopResponse::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:ModeliRpc.StopResponse)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void StopResponse::CopyFrom(const StopResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:ModeliRpc.StopResponse)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool StopResponse::IsInitialized() const {
+  return true;
+}
+
+void StopResponse::Swap(StopResponse* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void StopResponse::InternalSwap(StopResponse* other) {
+  using std::swap;
+  swap(status_, other->status_);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata StopResponse::GetMetadata() const {
+  protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+
+// ===================================================================
+
+void AddFmuRequest::InitAsDefaultInstance() {
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int AddFmuRequest::kInstanceNameFieldNumber;
+const int AddFmuRequest::kDataFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+AddFmuRequest::AddFmuRequest()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    ::protobuf_ModeliRpc_2eproto::InitDefaultsAddFmuRequest();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:ModeliRpc.AddFmuRequest)
+}
+AddFmuRequest::AddFmuRequest(const AddFmuRequest& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  instance_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.instance_name().size() > 0) {
+    instance_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.instance_name_);
+  }
+  data_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.data().size() > 0) {
+    data_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.data_);
+  }
+  // @@protoc_insertion_point(copy_constructor:ModeliRpc.AddFmuRequest)
+}
+
+void AddFmuRequest::SharedCtor() {
+  instance_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  data_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  _cached_size_ = 0;
+}
+
+AddFmuRequest::~AddFmuRequest() {
+  // @@protoc_insertion_point(destructor:ModeliRpc.AddFmuRequest)
+  SharedDtor();
+}
+
+void AddFmuRequest::SharedDtor() {
+  instance_name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  data_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void AddFmuRequest::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* AddFmuRequest::descriptor() {
+  ::protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const AddFmuRequest& AddFmuRequest::default_instance() {
+  ::protobuf_ModeliRpc_2eproto::InitDefaultsAddFmuRequest();
+  return *internal_default_instance();
+}
+
+AddFmuRequest* AddFmuRequest::New(::google::protobuf::Arena* arena) const {
+  AddFmuRequest* n = new AddFmuRequest;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void AddFmuRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:ModeliRpc.AddFmuRequest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  instance_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  data_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  _internal_metadata_.Clear();
+}
+
+bool AddFmuRequest::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:ModeliRpc.AddFmuRequest)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // string instance_name = 1;
+      case 1: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_instance_name()));
+          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+            this->instance_name().data(), static_cast<int>(this->instance_name().length()),
+            ::google::protobuf::internal::WireFormatLite::PARSE,
+            "ModeliRpc.AddFmuRequest.instance_name"));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // bytes data = 2;
+      case 2: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
+                input, this->mutable_data()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:ModeliRpc.AddFmuRequest)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:ModeliRpc.AddFmuRequest)
+  return false;
+#undef DO_
+}
+
+void AddFmuRequest::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:ModeliRpc.AddFmuRequest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // string instance_name = 1;
+  if (this->instance_name().size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+      this->instance_name().data(), static_cast<int>(this->instance_name().length()),
+      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+      "ModeliRpc.AddFmuRequest.instance_name");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      1, this->instance_name(), output);
+  }
+
+  // bytes data = 2;
+  if (this->data().size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
+      2, this->data(), output);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
+  }
+  // @@protoc_insertion_point(serialize_end:ModeliRpc.AddFmuRequest)
+}
+
+::google::protobuf::uint8* AddFmuRequest::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:ModeliRpc.AddFmuRequest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // string instance_name = 1;
+  if (this->instance_name().size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+      this->instance_name().data(), static_cast<int>(this->instance_name().length()),
+      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+      "ModeliRpc.AddFmuRequest.instance_name");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        1, this->instance_name(), target);
+  }
+
+  // bytes data = 2;
+  if (this->data().size() > 0) {
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteBytesToArray(
+        2, this->data(), target);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:ModeliRpc.AddFmuRequest)
+  return target;
+}
+
+size_t AddFmuRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:ModeliRpc.AddFmuRequest)
+  size_t total_size = 0;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
+  }
+  // string instance_name = 1;
+  if (this->instance_name().size() > 0) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->instance_name());
+  }
+
+  // bytes data = 2;
+  if (this->data().size() > 0) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::BytesSize(
+        this->data());
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void AddFmuRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:ModeliRpc.AddFmuRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  const AddFmuRequest* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const AddFmuRequest>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ModeliRpc.AddFmuRequest)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:ModeliRpc.AddFmuRequest)
+    MergeFrom(*source);
+  }
+}
+
+void AddFmuRequest::MergeFrom(const AddFmuRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:ModeliRpc.AddFmuRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (from.instance_name().size() > 0) {
+
+    instance_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.instance_name_);
+  }
+  if (from.data().size() > 0) {
+
+    data_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.data_);
+  }
+}
+
+void AddFmuRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:ModeliRpc.AddFmuRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void AddFmuRequest::CopyFrom(const AddFmuRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:ModeliRpc.AddFmuRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool AddFmuRequest::IsInitialized() const {
+  return true;
+}
+
+void AddFmuRequest::Swap(AddFmuRequest* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void AddFmuRequest::InternalSwap(AddFmuRequest* other) {
+  using std::swap;
+  instance_name_.Swap(&other->instance_name_);
+  data_.Swap(&other->data_);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata AddFmuRequest::GetMetadata() const {
+  protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+
+// ===================================================================
+
+void AddFmuResponse::InitAsDefaultInstance() {
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int AddFmuResponse::kSuccessFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+AddFmuResponse::AddFmuResponse()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    ::protobuf_ModeliRpc_2eproto::InitDefaultsAddFmuResponse();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:ModeliRpc.AddFmuResponse)
+}
+AddFmuResponse::AddFmuResponse(const AddFmuResponse& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  success_ = from.success_;
+  // @@protoc_insertion_point(copy_constructor:ModeliRpc.AddFmuResponse)
+}
+
+void AddFmuResponse::SharedCtor() {
+  success_ = false;
+  _cached_size_ = 0;
+}
+
+AddFmuResponse::~AddFmuResponse() {
+  // @@protoc_insertion_point(destructor:ModeliRpc.AddFmuResponse)
+  SharedDtor();
+}
+
+void AddFmuResponse::SharedDtor() {
+}
+
+void AddFmuResponse::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* AddFmuResponse::descriptor() {
+  ::protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const AddFmuResponse& AddFmuResponse::default_instance() {
+  ::protobuf_ModeliRpc_2eproto::InitDefaultsAddFmuResponse();
+  return *internal_default_instance();
+}
+
+AddFmuResponse* AddFmuResponse::New(::google::protobuf::Arena* arena) const {
+  AddFmuResponse* n = new AddFmuResponse;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void AddFmuResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:ModeliRpc.AddFmuResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  success_ = false;
+  _internal_metadata_.Clear();
+}
+
+bool AddFmuResponse::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:ModeliRpc.AddFmuResponse)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // bool success = 1;
+      case 1: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
+
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+                 input, &success_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:ModeliRpc.AddFmuResponse)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:ModeliRpc.AddFmuResponse)
+  return false;
+#undef DO_
+}
+
+void AddFmuResponse::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:ModeliRpc.AddFmuResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // bool success = 1;
+  if (this->success() != 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteBool(1, this->success(), output);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
+  }
+  // @@protoc_insertion_point(serialize_end:ModeliRpc.AddFmuResponse)
+}
+
+::google::protobuf::uint8* AddFmuResponse::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:ModeliRpc.AddFmuResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // bool success = 1;
+  if (this->success() != 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(1, this->success(), target);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:ModeliRpc.AddFmuResponse)
+  return target;
+}
+
+size_t AddFmuResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:ModeliRpc.AddFmuResponse)
+  size_t total_size = 0;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
+  }
+  // bool success = 1;
+  if (this->success() != 0) {
+    total_size += 1 + 1;
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void AddFmuResponse::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:ModeliRpc.AddFmuResponse)
+  GOOGLE_DCHECK_NE(&from, this);
+  const AddFmuResponse* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const AddFmuResponse>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ModeliRpc.AddFmuResponse)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:ModeliRpc.AddFmuResponse)
+    MergeFrom(*source);
+  }
+}
+
+void AddFmuResponse::MergeFrom(const AddFmuResponse& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:ModeliRpc.AddFmuResponse)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (from.success() != 0) {
+    set_success(from.success());
+  }
+}
+
+void AddFmuResponse::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:ModeliRpc.AddFmuResponse)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void AddFmuResponse::CopyFrom(const AddFmuResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:ModeliRpc.AddFmuResponse)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool AddFmuResponse::IsInitialized() const {
+  return true;
+}
+
+void AddFmuResponse::Swap(AddFmuResponse* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void AddFmuResponse::InternalSwap(AddFmuResponse* other) {
+  using std::swap;
+  swap(success_, other->success_);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata AddFmuResponse::GetMetadata() const {
+  protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+
+// ===================================================================
+
+void RemoveFmuRequest::InitAsDefaultInstance() {
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int RemoveFmuRequest::kInstanceNameFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+RemoveFmuRequest::RemoveFmuRequest()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    ::protobuf_ModeliRpc_2eproto::InitDefaultsRemoveFmuRequest();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:ModeliRpc.RemoveFmuRequest)
+}
+RemoveFmuRequest::RemoveFmuRequest(const RemoveFmuRequest& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  instance_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.instance_name().size() > 0) {
+    instance_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.instance_name_);
+  }
+  // @@protoc_insertion_point(copy_constructor:ModeliRpc.RemoveFmuRequest)
+}
+
+void RemoveFmuRequest::SharedCtor() {
+  instance_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  _cached_size_ = 0;
+}
+
+RemoveFmuRequest::~RemoveFmuRequest() {
+  // @@protoc_insertion_point(destructor:ModeliRpc.RemoveFmuRequest)
+  SharedDtor();
+}
+
+void RemoveFmuRequest::SharedDtor() {
+  instance_name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void RemoveFmuRequest::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* RemoveFmuRequest::descriptor() {
+  ::protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const RemoveFmuRequest& RemoveFmuRequest::default_instance() {
+  ::protobuf_ModeliRpc_2eproto::InitDefaultsRemoveFmuRequest();
+  return *internal_default_instance();
+}
+
+RemoveFmuRequest* RemoveFmuRequest::New(::google::protobuf::Arena* arena) const {
+  RemoveFmuRequest* n = new RemoveFmuRequest;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void RemoveFmuRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:ModeliRpc.RemoveFmuRequest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  instance_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  _internal_metadata_.Clear();
+}
+
+bool RemoveFmuRequest::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:ModeliRpc.RemoveFmuRequest)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // string instance_name = 1;
+      case 1: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_instance_name()));
+          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+            this->instance_name().data(), static_cast<int>(this->instance_name().length()),
+            ::google::protobuf::internal::WireFormatLite::PARSE,
+            "ModeliRpc.RemoveFmuRequest.instance_name"));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:ModeliRpc.RemoveFmuRequest)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:ModeliRpc.RemoveFmuRequest)
+  return false;
+#undef DO_
+}
+
+void RemoveFmuRequest::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:ModeliRpc.RemoveFmuRequest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // string instance_name = 1;
+  if (this->instance_name().size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+      this->instance_name().data(), static_cast<int>(this->instance_name().length()),
+      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+      "ModeliRpc.RemoveFmuRequest.instance_name");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      1, this->instance_name(), output);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
+  }
+  // @@protoc_insertion_point(serialize_end:ModeliRpc.RemoveFmuRequest)
+}
+
+::google::protobuf::uint8* RemoveFmuRequest::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:ModeliRpc.RemoveFmuRequest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // string instance_name = 1;
+  if (this->instance_name().size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+      this->instance_name().data(), static_cast<int>(this->instance_name().length()),
+      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+      "ModeliRpc.RemoveFmuRequest.instance_name");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        1, this->instance_name(), target);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:ModeliRpc.RemoveFmuRequest)
+  return target;
+}
+
+size_t RemoveFmuRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:ModeliRpc.RemoveFmuRequest)
+  size_t total_size = 0;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
+  }
+  // string instance_name = 1;
+  if (this->instance_name().size() > 0) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->instance_name());
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void RemoveFmuRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:ModeliRpc.RemoveFmuRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  const RemoveFmuRequest* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const RemoveFmuRequest>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ModeliRpc.RemoveFmuRequest)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:ModeliRpc.RemoveFmuRequest)
+    MergeFrom(*source);
+  }
+}
+
+void RemoveFmuRequest::MergeFrom(const RemoveFmuRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:ModeliRpc.RemoveFmuRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (from.instance_name().size() > 0) {
+
+    instance_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.instance_name_);
+  }
+}
+
+void RemoveFmuRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:ModeliRpc.RemoveFmuRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void RemoveFmuRequest::CopyFrom(const RemoveFmuRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:ModeliRpc.RemoveFmuRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool RemoveFmuRequest::IsInitialized() const {
+  return true;
+}
+
+void RemoveFmuRequest::Swap(RemoveFmuRequest* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void RemoveFmuRequest::InternalSwap(RemoveFmuRequest* other) {
+  using std::swap;
+  instance_name_.Swap(&other->instance_name_);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata RemoveFmuRequest::GetMetadata() const {
+  protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+
+// ===================================================================
+
+void RemoveFmuResponse::InitAsDefaultInstance() {
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int RemoveFmuResponse::kSuccessFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+RemoveFmuResponse::RemoveFmuResponse()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    ::protobuf_ModeliRpc_2eproto::InitDefaultsRemoveFmuResponse();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:ModeliRpc.RemoveFmuResponse)
+}
+RemoveFmuResponse::RemoveFmuResponse(const RemoveFmuResponse& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  success_ = from.success_;
+  // @@protoc_insertion_point(copy_constructor:ModeliRpc.RemoveFmuResponse)
+}
+
+void RemoveFmuResponse::SharedCtor() {
+  success_ = false;
+  _cached_size_ = 0;
+}
+
+RemoveFmuResponse::~RemoveFmuResponse() {
+  // @@protoc_insertion_point(destructor:ModeliRpc.RemoveFmuResponse)
+  SharedDtor();
+}
+
+void RemoveFmuResponse::SharedDtor() {
+}
+
+void RemoveFmuResponse::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* RemoveFmuResponse::descriptor() {
+  ::protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const RemoveFmuResponse& RemoveFmuResponse::default_instance() {
+  ::protobuf_ModeliRpc_2eproto::InitDefaultsRemoveFmuResponse();
+  return *internal_default_instance();
+}
+
+RemoveFmuResponse* RemoveFmuResponse::New(::google::protobuf::Arena* arena) const {
+  RemoveFmuResponse* n = new RemoveFmuResponse;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void RemoveFmuResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:ModeliRpc.RemoveFmuResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  success_ = false;
+  _internal_metadata_.Clear();
+}
+
+bool RemoveFmuResponse::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:ModeliRpc.RemoveFmuResponse)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // bool success = 1;
+      case 1: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
+
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+                 input, &success_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:ModeliRpc.RemoveFmuResponse)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:ModeliRpc.RemoveFmuResponse)
+  return false;
+#undef DO_
+}
+
+void RemoveFmuResponse::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:ModeliRpc.RemoveFmuResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // bool success = 1;
+  if (this->success() != 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteBool(1, this->success(), output);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
+  }
+  // @@protoc_insertion_point(serialize_end:ModeliRpc.RemoveFmuResponse)
+}
+
+::google::protobuf::uint8* RemoveFmuResponse::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:ModeliRpc.RemoveFmuResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // bool success = 1;
+  if (this->success() != 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(1, this->success(), target);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:ModeliRpc.RemoveFmuResponse)
+  return target;
+}
+
+size_t RemoveFmuResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:ModeliRpc.RemoveFmuResponse)
+  size_t total_size = 0;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
+  }
+  // bool success = 1;
+  if (this->success() != 0) {
+    total_size += 1 + 1;
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void RemoveFmuResponse::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:ModeliRpc.RemoveFmuResponse)
+  GOOGLE_DCHECK_NE(&from, this);
+  const RemoveFmuResponse* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const RemoveFmuResponse>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ModeliRpc.RemoveFmuResponse)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:ModeliRpc.RemoveFmuResponse)
+    MergeFrom(*source);
+  }
+}
+
+void RemoveFmuResponse::MergeFrom(const RemoveFmuResponse& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:ModeliRpc.RemoveFmuResponse)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (from.success() != 0) {
+    set_success(from.success());
+  }
+}
+
+void RemoveFmuResponse::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:ModeliRpc.RemoveFmuResponse)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void RemoveFmuResponse::CopyFrom(const RemoveFmuResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:ModeliRpc.RemoveFmuResponse)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool RemoveFmuResponse::IsInitialized() const {
+  return true;
+}
+
+void RemoveFmuResponse::Swap(RemoveFmuResponse* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void RemoveFmuResponse::InternalSwap(RemoveFmuResponse* other) {
+  using std::swap;
+  swap(success_, other->success_);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata RemoveFmuResponse::GetMetadata() const {
+  protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+
+// ===================================================================
+
+void AddChannelLinkRequest::InitAsDefaultInstance() {
+  ::ModeliRpc::_AddChannelLinkRequest_default_instance_._instance.get_mutable()->channel_link_ = const_cast< ::ModeliRpc::ChannelLink*>(
+      ::ModeliRpc::ChannelLink::internal_default_instance());
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int AddChannelLinkRequest::kChannelLinkFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+AddChannelLinkRequest::AddChannelLinkRequest()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    ::protobuf_ModeliRpc_2eproto::InitDefaultsAddChannelLinkRequest();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:ModeliRpc.AddChannelLinkRequest)
+}
+AddChannelLinkRequest::AddChannelLinkRequest(const AddChannelLinkRequest& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from.has_channel_link()) {
+    channel_link_ = new ::ModeliRpc::ChannelLink(*from.channel_link_);
+  } else {
+    channel_link_ = NULL;
+  }
+  // @@protoc_insertion_point(copy_constructor:ModeliRpc.AddChannelLinkRequest)
+}
+
+void AddChannelLinkRequest::SharedCtor() {
+  channel_link_ = NULL;
+  _cached_size_ = 0;
+}
+
+AddChannelLinkRequest::~AddChannelLinkRequest() {
+  // @@protoc_insertion_point(destructor:ModeliRpc.AddChannelLinkRequest)
+  SharedDtor();
+}
+
+void AddChannelLinkRequest::SharedDtor() {
+  if (this != internal_default_instance()) delete channel_link_;
+}
+
+void AddChannelLinkRequest::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* AddChannelLinkRequest::descriptor() {
+  ::protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const AddChannelLinkRequest& AddChannelLinkRequest::default_instance() {
+  ::protobuf_ModeliRpc_2eproto::InitDefaultsAddChannelLinkRequest();
+  return *internal_default_instance();
+}
+
+AddChannelLinkRequest* AddChannelLinkRequest::New(::google::protobuf::Arena* arena) const {
+  AddChannelLinkRequest* n = new AddChannelLinkRequest;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void AddChannelLinkRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:ModeliRpc.AddChannelLinkRequest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  if (GetArenaNoVirtual() == NULL && channel_link_ != NULL) {
+    delete channel_link_;
+  }
+  channel_link_ = NULL;
+  _internal_metadata_.Clear();
+}
+
+bool AddChannelLinkRequest::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:ModeliRpc.AddChannelLinkRequest)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // .ModeliRpc.ChannelLink channel_link = 1;
+      case 1: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
+               input, mutable_channel_link()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:ModeliRpc.AddChannelLinkRequest)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:ModeliRpc.AddChannelLinkRequest)
+  return false;
+#undef DO_
+}
+
+void AddChannelLinkRequest::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:ModeliRpc.AddChannelLinkRequest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // .ModeliRpc.ChannelLink channel_link = 1;
+  if (this->has_channel_link()) {
+    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+      1, *this->channel_link_, output);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
+  }
+  // @@protoc_insertion_point(serialize_end:ModeliRpc.AddChannelLinkRequest)
+}
+
+::google::protobuf::uint8* AddChannelLinkRequest::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:ModeliRpc.AddChannelLinkRequest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // .ModeliRpc.ChannelLink channel_link = 1;
+  if (this->has_channel_link()) {
+    target = ::google::protobuf::internal::WireFormatLite::
+      InternalWriteMessageToArray(
+        1, *this->channel_link_, deterministic, target);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:ModeliRpc.AddChannelLinkRequest)
+  return target;
+}
+
+size_t AddChannelLinkRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:ModeliRpc.AddChannelLinkRequest)
+  size_t total_size = 0;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
+  }
+  // .ModeliRpc.ChannelLink channel_link = 1;
+  if (this->has_channel_link()) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::MessageSize(
+        *this->channel_link_);
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void AddChannelLinkRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:ModeliRpc.AddChannelLinkRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  const AddChannelLinkRequest* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const AddChannelLinkRequest>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ModeliRpc.AddChannelLinkRequest)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:ModeliRpc.AddChannelLinkRequest)
+    MergeFrom(*source);
+  }
+}
+
+void AddChannelLinkRequest::MergeFrom(const AddChannelLinkRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:ModeliRpc.AddChannelLinkRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (from.has_channel_link()) {
+    mutable_channel_link()->::ModeliRpc::ChannelLink::MergeFrom(from.channel_link());
+  }
+}
+
+void AddChannelLinkRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:ModeliRpc.AddChannelLinkRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void AddChannelLinkRequest::CopyFrom(const AddChannelLinkRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:ModeliRpc.AddChannelLinkRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool AddChannelLinkRequest::IsInitialized() const {
+  return true;
+}
+
+void AddChannelLinkRequest::Swap(AddChannelLinkRequest* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void AddChannelLinkRequest::InternalSwap(AddChannelLinkRequest* other) {
+  using std::swap;
+  swap(channel_link_, other->channel_link_);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata AddChannelLinkRequest::GetMetadata() const {
+  protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+
+// ===================================================================
+
+void AddChannelLinkResponse::InitAsDefaultInstance() {
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int AddChannelLinkResponse::kSuccessFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+AddChannelLinkResponse::AddChannelLinkResponse()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    ::protobuf_ModeliRpc_2eproto::InitDefaultsAddChannelLinkResponse();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:ModeliRpc.AddChannelLinkResponse)
+}
+AddChannelLinkResponse::AddChannelLinkResponse(const AddChannelLinkResponse& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  success_ = from.success_;
+  // @@protoc_insertion_point(copy_constructor:ModeliRpc.AddChannelLinkResponse)
+}
+
+void AddChannelLinkResponse::SharedCtor() {
+  success_ = false;
+  _cached_size_ = 0;
+}
+
+AddChannelLinkResponse::~AddChannelLinkResponse() {
+  // @@protoc_insertion_point(destructor:ModeliRpc.AddChannelLinkResponse)
+  SharedDtor();
+}
+
+void AddChannelLinkResponse::SharedDtor() {
+}
+
+void AddChannelLinkResponse::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* AddChannelLinkResponse::descriptor() {
+  ::protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const AddChannelLinkResponse& AddChannelLinkResponse::default_instance() {
+  ::protobuf_ModeliRpc_2eproto::InitDefaultsAddChannelLinkResponse();
+  return *internal_default_instance();
+}
+
+AddChannelLinkResponse* AddChannelLinkResponse::New(::google::protobuf::Arena* arena) const {
+  AddChannelLinkResponse* n = new AddChannelLinkResponse;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void AddChannelLinkResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:ModeliRpc.AddChannelLinkResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  success_ = false;
+  _internal_metadata_.Clear();
+}
+
+bool AddChannelLinkResponse::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:ModeliRpc.AddChannelLinkResponse)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // bool success = 1;
+      case 1: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
+
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+                 input, &success_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:ModeliRpc.AddChannelLinkResponse)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:ModeliRpc.AddChannelLinkResponse)
+  return false;
+#undef DO_
+}
+
+void AddChannelLinkResponse::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:ModeliRpc.AddChannelLinkResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // bool success = 1;
+  if (this->success() != 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteBool(1, this->success(), output);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
+  }
+  // @@protoc_insertion_point(serialize_end:ModeliRpc.AddChannelLinkResponse)
+}
+
+::google::protobuf::uint8* AddChannelLinkResponse::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:ModeliRpc.AddChannelLinkResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // bool success = 1;
+  if (this->success() != 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(1, this->success(), target);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:ModeliRpc.AddChannelLinkResponse)
+  return target;
+}
+
+size_t AddChannelLinkResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:ModeliRpc.AddChannelLinkResponse)
+  size_t total_size = 0;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
+  }
+  // bool success = 1;
+  if (this->success() != 0) {
+    total_size += 1 + 1;
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void AddChannelLinkResponse::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:ModeliRpc.AddChannelLinkResponse)
+  GOOGLE_DCHECK_NE(&from, this);
+  const AddChannelLinkResponse* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const AddChannelLinkResponse>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ModeliRpc.AddChannelLinkResponse)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:ModeliRpc.AddChannelLinkResponse)
+    MergeFrom(*source);
+  }
+}
+
+void AddChannelLinkResponse::MergeFrom(const AddChannelLinkResponse& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:ModeliRpc.AddChannelLinkResponse)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (from.success() != 0) {
+    set_success(from.success());
+  }
+}
+
+void AddChannelLinkResponse::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:ModeliRpc.AddChannelLinkResponse)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void AddChannelLinkResponse::CopyFrom(const AddChannelLinkResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:ModeliRpc.AddChannelLinkResponse)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool AddChannelLinkResponse::IsInitialized() const {
+  return true;
+}
+
+void AddChannelLinkResponse::Swap(AddChannelLinkResponse* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void AddChannelLinkResponse::InternalSwap(AddChannelLinkResponse* other) {
+  using std::swap;
+  swap(success_, other->success_);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata AddChannelLinkResponse::GetMetadata() const {
+  protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+
+// ===================================================================
+
+void RemoveChannelLinkRequest::InitAsDefaultInstance() {
+  ::ModeliRpc::_RemoveChannelLinkRequest_default_instance_._instance.get_mutable()->channel_link_ = const_cast< ::ModeliRpc::ChannelLink*>(
+      ::ModeliRpc::ChannelLink::internal_default_instance());
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int RemoveChannelLinkRequest::kChannelLinkFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+RemoveChannelLinkRequest::RemoveChannelLinkRequest()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    ::protobuf_ModeliRpc_2eproto::InitDefaultsRemoveChannelLinkRequest();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:ModeliRpc.RemoveChannelLinkRequest)
+}
+RemoveChannelLinkRequest::RemoveChannelLinkRequest(const RemoveChannelLinkRequest& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from.has_channel_link()) {
+    channel_link_ = new ::ModeliRpc::ChannelLink(*from.channel_link_);
+  } else {
+    channel_link_ = NULL;
+  }
+  // @@protoc_insertion_point(copy_constructor:ModeliRpc.RemoveChannelLinkRequest)
+}
+
+void RemoveChannelLinkRequest::SharedCtor() {
+  channel_link_ = NULL;
+  _cached_size_ = 0;
+}
+
+RemoveChannelLinkRequest::~RemoveChannelLinkRequest() {
+  // @@protoc_insertion_point(destructor:ModeliRpc.RemoveChannelLinkRequest)
+  SharedDtor();
+}
+
+void RemoveChannelLinkRequest::SharedDtor() {
+  if (this != internal_default_instance()) delete channel_link_;
+}
+
+void RemoveChannelLinkRequest::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* RemoveChannelLinkRequest::descriptor() {
+  ::protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const RemoveChannelLinkRequest& RemoveChannelLinkRequest::default_instance() {
+  ::protobuf_ModeliRpc_2eproto::InitDefaultsRemoveChannelLinkRequest();
+  return *internal_default_instance();
+}
+
+RemoveChannelLinkRequest* RemoveChannelLinkRequest::New(::google::protobuf::Arena* arena) const {
+  RemoveChannelLinkRequest* n = new RemoveChannelLinkRequest;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void RemoveChannelLinkRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:ModeliRpc.RemoveChannelLinkRequest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  if (GetArenaNoVirtual() == NULL && channel_link_ != NULL) {
+    delete channel_link_;
+  }
+  channel_link_ = NULL;
+  _internal_metadata_.Clear();
+}
+
+bool RemoveChannelLinkRequest::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:ModeliRpc.RemoveChannelLinkRequest)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // .ModeliRpc.ChannelLink channel_link = 1;
+      case 1: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
+               input, mutable_channel_link()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:ModeliRpc.RemoveChannelLinkRequest)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:ModeliRpc.RemoveChannelLinkRequest)
+  return false;
+#undef DO_
+}
+
+void RemoveChannelLinkRequest::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:ModeliRpc.RemoveChannelLinkRequest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // .ModeliRpc.ChannelLink channel_link = 1;
+  if (this->has_channel_link()) {
+    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+      1, *this->channel_link_, output);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
+  }
+  // @@protoc_insertion_point(serialize_end:ModeliRpc.RemoveChannelLinkRequest)
+}
+
+::google::protobuf::uint8* RemoveChannelLinkRequest::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:ModeliRpc.RemoveChannelLinkRequest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // .ModeliRpc.ChannelLink channel_link = 1;
+  if (this->has_channel_link()) {
+    target = ::google::protobuf::internal::WireFormatLite::
+      InternalWriteMessageToArray(
+        1, *this->channel_link_, deterministic, target);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:ModeliRpc.RemoveChannelLinkRequest)
+  return target;
+}
+
+size_t RemoveChannelLinkRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:ModeliRpc.RemoveChannelLinkRequest)
+  size_t total_size = 0;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
+  }
+  // .ModeliRpc.ChannelLink channel_link = 1;
+  if (this->has_channel_link()) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::MessageSize(
+        *this->channel_link_);
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void RemoveChannelLinkRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:ModeliRpc.RemoveChannelLinkRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  const RemoveChannelLinkRequest* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const RemoveChannelLinkRequest>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ModeliRpc.RemoveChannelLinkRequest)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:ModeliRpc.RemoveChannelLinkRequest)
+    MergeFrom(*source);
+  }
+}
+
+void RemoveChannelLinkRequest::MergeFrom(const RemoveChannelLinkRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:ModeliRpc.RemoveChannelLinkRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (from.has_channel_link()) {
+    mutable_channel_link()->::ModeliRpc::ChannelLink::MergeFrom(from.channel_link());
+  }
+}
+
+void RemoveChannelLinkRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:ModeliRpc.RemoveChannelLinkRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void RemoveChannelLinkRequest::CopyFrom(const RemoveChannelLinkRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:ModeliRpc.RemoveChannelLinkRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool RemoveChannelLinkRequest::IsInitialized() const {
+  return true;
+}
+
+void RemoveChannelLinkRequest::Swap(RemoveChannelLinkRequest* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void RemoveChannelLinkRequest::InternalSwap(RemoveChannelLinkRequest* other) {
+  using std::swap;
+  swap(channel_link_, other->channel_link_);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata RemoveChannelLinkRequest::GetMetadata() const {
+  protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+
+// ===================================================================
+
+void RemoveChannelLinkResponse::InitAsDefaultInstance() {
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int RemoveChannelLinkResponse::kSuccessFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+RemoveChannelLinkResponse::RemoveChannelLinkResponse()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    ::protobuf_ModeliRpc_2eproto::InitDefaultsRemoveChannelLinkResponse();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:ModeliRpc.RemoveChannelLinkResponse)
+}
+RemoveChannelLinkResponse::RemoveChannelLinkResponse(const RemoveChannelLinkResponse& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  success_ = from.success_;
+  // @@protoc_insertion_point(copy_constructor:ModeliRpc.RemoveChannelLinkResponse)
+}
+
+void RemoveChannelLinkResponse::SharedCtor() {
+  success_ = false;
+  _cached_size_ = 0;
+}
+
+RemoveChannelLinkResponse::~RemoveChannelLinkResponse() {
+  // @@protoc_insertion_point(destructor:ModeliRpc.RemoveChannelLinkResponse)
+  SharedDtor();
+}
+
+void RemoveChannelLinkResponse::SharedDtor() {
+}
+
+void RemoveChannelLinkResponse::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* RemoveChannelLinkResponse::descriptor() {
+  ::protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const RemoveChannelLinkResponse& RemoveChannelLinkResponse::default_instance() {
+  ::protobuf_ModeliRpc_2eproto::InitDefaultsRemoveChannelLinkResponse();
+  return *internal_default_instance();
+}
+
+RemoveChannelLinkResponse* RemoveChannelLinkResponse::New(::google::protobuf::Arena* arena) const {
+  RemoveChannelLinkResponse* n = new RemoveChannelLinkResponse;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void RemoveChannelLinkResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:ModeliRpc.RemoveChannelLinkResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  success_ = false;
+  _internal_metadata_.Clear();
+}
+
+bool RemoveChannelLinkResponse::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:ModeliRpc.RemoveChannelLinkResponse)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // bool success = 1;
+      case 1: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
+
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+                 input, &success_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:ModeliRpc.RemoveChannelLinkResponse)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:ModeliRpc.RemoveChannelLinkResponse)
+  return false;
+#undef DO_
+}
+
+void RemoveChannelLinkResponse::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:ModeliRpc.RemoveChannelLinkResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // bool success = 1;
+  if (this->success() != 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteBool(1, this->success(), output);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
+  }
+  // @@protoc_insertion_point(serialize_end:ModeliRpc.RemoveChannelLinkResponse)
+}
+
+::google::protobuf::uint8* RemoveChannelLinkResponse::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:ModeliRpc.RemoveChannelLinkResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // bool success = 1;
+  if (this->success() != 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(1, this->success(), target);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:ModeliRpc.RemoveChannelLinkResponse)
+  return target;
+}
+
+size_t RemoveChannelLinkResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:ModeliRpc.RemoveChannelLinkResponse)
+  size_t total_size = 0;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
+  }
+  // bool success = 1;
+  if (this->success() != 0) {
+    total_size += 1 + 1;
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void RemoveChannelLinkResponse::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:ModeliRpc.RemoveChannelLinkResponse)
+  GOOGLE_DCHECK_NE(&from, this);
+  const RemoveChannelLinkResponse* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const RemoveChannelLinkResponse>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ModeliRpc.RemoveChannelLinkResponse)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:ModeliRpc.RemoveChannelLinkResponse)
+    MergeFrom(*source);
+  }
+}
+
+void RemoveChannelLinkResponse::MergeFrom(const RemoveChannelLinkResponse& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:ModeliRpc.RemoveChannelLinkResponse)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (from.success() != 0) {
+    set_success(from.success());
+  }
+}
+
+void RemoveChannelLinkResponse::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:ModeliRpc.RemoveChannelLinkResponse)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void RemoveChannelLinkResponse::CopyFrom(const RemoveChannelLinkResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:ModeliRpc.RemoveChannelLinkResponse)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool RemoveChannelLinkResponse::IsInitialized() const {
+  return true;
+}
+
+void RemoveChannelLinkResponse::Swap(RemoveChannelLinkResponse* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void RemoveChannelLinkResponse::InternalSwap(RemoveChannelLinkResponse* other) {
+  using std::swap;
+  swap(success_, other->success_);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata RemoveChannelLinkResponse::GetMetadata() const {
+  protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+
+// ===================================================================
+
+void SetValuesReqest::InitAsDefaultInstance() {
+  ::ModeliRpc::_SetValuesReqest_default_instance_._instance.get_mutable()->values_ = const_cast< ::ModeliRpc::Values*>(
+      ::ModeliRpc::Values::internal_default_instance());
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int SetValuesReqest::kValuesFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+SetValuesReqest::SetValuesReqest()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    ::protobuf_ModeliRpc_2eproto::InitDefaultsSetValuesReqest();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:ModeliRpc.SetValuesReqest)
+}
+SetValuesReqest::SetValuesReqest(const SetValuesReqest& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from.has_values()) {
+    values_ = new ::ModeliRpc::Values(*from.values_);
+  } else {
+    values_ = NULL;
+  }
+  // @@protoc_insertion_point(copy_constructor:ModeliRpc.SetValuesReqest)
+}
+
+void SetValuesReqest::SharedCtor() {
+  values_ = NULL;
+  _cached_size_ = 0;
+}
+
+SetValuesReqest::~SetValuesReqest() {
+  // @@protoc_insertion_point(destructor:ModeliRpc.SetValuesReqest)
+  SharedDtor();
+}
+
+void SetValuesReqest::SharedDtor() {
+  if (this != internal_default_instance()) delete values_;
+}
+
+void SetValuesReqest::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* SetValuesReqest::descriptor() {
+  ::protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const SetValuesReqest& SetValuesReqest::default_instance() {
+  ::protobuf_ModeliRpc_2eproto::InitDefaultsSetValuesReqest();
+  return *internal_default_instance();
+}
+
+SetValuesReqest* SetValuesReqest::New(::google::protobuf::Arena* arena) const {
+  SetValuesReqest* n = new SetValuesReqest;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void SetValuesReqest::Clear() {
+// @@protoc_insertion_point(message_clear_start:ModeliRpc.SetValuesReqest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  if (GetArenaNoVirtual() == NULL && values_ != NULL) {
+    delete values_;
+  }
+  values_ = NULL;
+  _internal_metadata_.Clear();
+}
+
+bool SetValuesReqest::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:ModeliRpc.SetValuesReqest)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // .ModeliRpc.Values values = 1;
+      case 1: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
+               input, mutable_values()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:ModeliRpc.SetValuesReqest)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:ModeliRpc.SetValuesReqest)
+  return false;
+#undef DO_
+}
+
+void SetValuesReqest::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:ModeliRpc.SetValuesReqest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // .ModeliRpc.Values values = 1;
+  if (this->has_values()) {
+    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+      1, *this->values_, output);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
+  }
+  // @@protoc_insertion_point(serialize_end:ModeliRpc.SetValuesReqest)
+}
+
+::google::protobuf::uint8* SetValuesReqest::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:ModeliRpc.SetValuesReqest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // .ModeliRpc.Values values = 1;
+  if (this->has_values()) {
+    target = ::google::protobuf::internal::WireFormatLite::
+      InternalWriteMessageToArray(
+        1, *this->values_, deterministic, target);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:ModeliRpc.SetValuesReqest)
+  return target;
+}
+
+size_t SetValuesReqest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:ModeliRpc.SetValuesReqest)
+  size_t total_size = 0;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
+  }
+  // .ModeliRpc.Values values = 1;
+  if (this->has_values()) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::MessageSize(
+        *this->values_);
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void SetValuesReqest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:ModeliRpc.SetValuesReqest)
+  GOOGLE_DCHECK_NE(&from, this);
+  const SetValuesReqest* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const SetValuesReqest>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ModeliRpc.SetValuesReqest)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:ModeliRpc.SetValuesReqest)
+    MergeFrom(*source);
+  }
+}
+
+void SetValuesReqest::MergeFrom(const SetValuesReqest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:ModeliRpc.SetValuesReqest)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (from.has_values()) {
+    mutable_values()->::ModeliRpc::Values::MergeFrom(from.values());
+  }
+}
+
+void SetValuesReqest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:ModeliRpc.SetValuesReqest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void SetValuesReqest::CopyFrom(const SetValuesReqest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:ModeliRpc.SetValuesReqest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool SetValuesReqest::IsInitialized() const {
+  return true;
+}
+
+void SetValuesReqest::Swap(SetValuesReqest* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void SetValuesReqest::InternalSwap(SetValuesReqest* other) {
+  using std::swap;
+  swap(values_, other->values_);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata SetValuesReqest::GetMetadata() const {
+  protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+
+// ===================================================================
+
+void SetValuesResponse::InitAsDefaultInstance() {
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int SetValuesResponse::kStatusFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+SetValuesResponse::SetValuesResponse()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    ::protobuf_ModeliRpc_2eproto::InitDefaultsSetValuesResponse();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:ModeliRpc.SetValuesResponse)
+}
+SetValuesResponse::SetValuesResponse(const SetValuesResponse& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  status_ = from.status_;
+  // @@protoc_insertion_point(copy_constructor:ModeliRpc.SetValuesResponse)
+}
+
+void SetValuesResponse::SharedCtor() {
+  status_ = 0;
+  _cached_size_ = 0;
+}
+
+SetValuesResponse::~SetValuesResponse() {
+  // @@protoc_insertion_point(destructor:ModeliRpc.SetValuesResponse)
+  SharedDtor();
+}
+
+void SetValuesResponse::SharedDtor() {
+}
+
+void SetValuesResponse::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* SetValuesResponse::descriptor() {
+  ::protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const SetValuesResponse& SetValuesResponse::default_instance() {
+  ::protobuf_ModeliRpc_2eproto::InitDefaultsSetValuesResponse();
+  return *internal_default_instance();
+}
+
+SetValuesResponse* SetValuesResponse::New(::google::protobuf::Arena* arena) const {
+  SetValuesResponse* n = new SetValuesResponse;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void SetValuesResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:ModeliRpc.SetValuesResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  status_ = 0;
+  _internal_metadata_.Clear();
+}
+
+bool SetValuesResponse::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:ModeliRpc.SetValuesResponse)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // .ModeliRpc.Fmi2Status status = 1;
+      case 1: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
+          int value;
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
+                 input, &value)));
+          set_status(static_cast< ::ModeliRpc::Fmi2Status >(value));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:ModeliRpc.SetValuesResponse)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:ModeliRpc.SetValuesResponse)
+  return false;
+#undef DO_
+}
+
+void SetValuesResponse::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:ModeliRpc.SetValuesResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // .ModeliRpc.Fmi2Status status = 1;
+  if (this->status() != 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteEnum(
+      1, this->status(), output);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
+  }
+  // @@protoc_insertion_point(serialize_end:ModeliRpc.SetValuesResponse)
+}
+
+::google::protobuf::uint8* SetValuesResponse::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:ModeliRpc.SetValuesResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // .ModeliRpc.Fmi2Status status = 1;
+  if (this->status() != 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
+      1, this->status(), target);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:ModeliRpc.SetValuesResponse)
+  return target;
+}
+
+size_t SetValuesResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:ModeliRpc.SetValuesResponse)
+  size_t total_size = 0;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
+  }
+  // .ModeliRpc.Fmi2Status status = 1;
+  if (this->status() != 0) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::EnumSize(this->status());
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void SetValuesResponse::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:ModeliRpc.SetValuesResponse)
+  GOOGLE_DCHECK_NE(&from, this);
+  const SetValuesResponse* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const SetValuesResponse>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ModeliRpc.SetValuesResponse)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:ModeliRpc.SetValuesResponse)
+    MergeFrom(*source);
+  }
+}
+
+void SetValuesResponse::MergeFrom(const SetValuesResponse& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:ModeliRpc.SetValuesResponse)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (from.status() != 0) {
+    set_status(from.status());
+  }
+}
+
+void SetValuesResponse::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:ModeliRpc.SetValuesResponse)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void SetValuesResponse::CopyFrom(const SetValuesResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:ModeliRpc.SetValuesResponse)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool SetValuesResponse::IsInitialized() const {
+  return true;
+}
+
+void SetValuesResponse::Swap(SetValuesResponse* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void SetValuesResponse::InternalSwap(SetValuesResponse* other) {
+  using std::swap;
+  swap(status_, other->status_);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata SetValuesResponse::GetMetadata() const {
+  protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+
+// ===================================================================
+
+void NewValuesRequest::InitAsDefaultInstance() {
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+NewValuesRequest::NewValuesRequest()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    ::protobuf_ModeliRpc_2eproto::InitDefaultsNewValuesRequest();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:ModeliRpc.NewValuesRequest)
+}
+NewValuesRequest::NewValuesRequest(const NewValuesRequest& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  // @@protoc_insertion_point(copy_constructor:ModeliRpc.NewValuesRequest)
+}
+
+void NewValuesRequest::SharedCtor() {
+  _cached_size_ = 0;
+}
+
+NewValuesRequest::~NewValuesRequest() {
+  // @@protoc_insertion_point(destructor:ModeliRpc.NewValuesRequest)
+  SharedDtor();
+}
+
+void NewValuesRequest::SharedDtor() {
+}
+
+void NewValuesRequest::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* NewValuesRequest::descriptor() {
+  ::protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const NewValuesRequest& NewValuesRequest::default_instance() {
+  ::protobuf_ModeliRpc_2eproto::InitDefaultsNewValuesRequest();
+  return *internal_default_instance();
+}
+
+NewValuesRequest* NewValuesRequest::New(::google::protobuf::Arena* arena) const {
+  NewValuesRequest* n = new NewValuesRequest;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void NewValuesRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:ModeliRpc.NewValuesRequest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  _internal_metadata_.Clear();
+}
+
+bool NewValuesRequest::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:ModeliRpc.NewValuesRequest)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+  handle_unusual:
+    if (tag == 0) {
+      goto success;
+    }
+    DO_(::google::protobuf::internal::WireFormat::SkipField(
+          input, tag, _internal_metadata_.mutable_unknown_fields()));
+  }
+success:
+  // @@protoc_insertion_point(parse_success:ModeliRpc.NewValuesRequest)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:ModeliRpc.NewValuesRequest)
+  return false;
+#undef DO_
+}
+
+void NewValuesRequest::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:ModeliRpc.NewValuesRequest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
+  }
+  // @@protoc_insertion_point(serialize_end:ModeliRpc.NewValuesRequest)
+}
+
+::google::protobuf::uint8* NewValuesRequest::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:ModeliRpc.NewValuesRequest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:ModeliRpc.NewValuesRequest)
+  return target;
+}
+
+size_t NewValuesRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:ModeliRpc.NewValuesRequest)
+  size_t total_size = 0;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
+  }
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void NewValuesRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:ModeliRpc.NewValuesRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  const NewValuesRequest* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const NewValuesRequest>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ModeliRpc.NewValuesRequest)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:ModeliRpc.NewValuesRequest)
+    MergeFrom(*source);
+  }
+}
+
+void NewValuesRequest::MergeFrom(const NewValuesRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:ModeliRpc.NewValuesRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+}
+
+void NewValuesRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:ModeliRpc.NewValuesRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void NewValuesRequest::CopyFrom(const NewValuesRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:ModeliRpc.NewValuesRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool NewValuesRequest::IsInitialized() const {
+  return true;
+}
+
+void NewValuesRequest::Swap(NewValuesRequest* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void NewValuesRequest::InternalSwap(NewValuesRequest* other) {
+  using std::swap;
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata NewValuesRequest::GetMetadata() const {
+  protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+
+// ===================================================================
+
+void NewValuesResponse::InitAsDefaultInstance() {
+  ::ModeliRpc::_NewValuesResponse_default_instance_._instance.get_mutable()->values_ = const_cast< ::ModeliRpc::Values*>(
+      ::ModeliRpc::Values::internal_default_instance());
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int NewValuesResponse::kValuesFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+NewValuesResponse::NewValuesResponse()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    ::protobuf_ModeliRpc_2eproto::InitDefaultsNewValuesResponse();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:ModeliRpc.NewValuesResponse)
+}
+NewValuesResponse::NewValuesResponse(const NewValuesResponse& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from.has_values()) {
+    values_ = new ::ModeliRpc::Values(*from.values_);
+  } else {
+    values_ = NULL;
+  }
+  // @@protoc_insertion_point(copy_constructor:ModeliRpc.NewValuesResponse)
+}
+
+void NewValuesResponse::SharedCtor() {
+  values_ = NULL;
+  _cached_size_ = 0;
+}
+
+NewValuesResponse::~NewValuesResponse() {
+  // @@protoc_insertion_point(destructor:ModeliRpc.NewValuesResponse)
+  SharedDtor();
+}
+
+void NewValuesResponse::SharedDtor() {
+  if (this != internal_default_instance()) delete values_;
+}
+
+void NewValuesResponse::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* NewValuesResponse::descriptor() {
+  ::protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const NewValuesResponse& NewValuesResponse::default_instance() {
+  ::protobuf_ModeliRpc_2eproto::InitDefaultsNewValuesResponse();
+  return *internal_default_instance();
+}
+
+NewValuesResponse* NewValuesResponse::New(::google::protobuf::Arena* arena) const {
+  NewValuesResponse* n = new NewValuesResponse;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void NewValuesResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:ModeliRpc.NewValuesResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  if (GetArenaNoVirtual() == NULL && values_ != NULL) {
+    delete values_;
+  }
+  values_ = NULL;
+  _internal_metadata_.Clear();
+}
+
+bool NewValuesResponse::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:ModeliRpc.NewValuesResponse)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // .ModeliRpc.Values values = 1;
+      case 1: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
+               input, mutable_values()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:ModeliRpc.NewValuesResponse)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:ModeliRpc.NewValuesResponse)
+  return false;
+#undef DO_
+}
+
+void NewValuesResponse::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:ModeliRpc.NewValuesResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // .ModeliRpc.Values values = 1;
+  if (this->has_values()) {
+    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+      1, *this->values_, output);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
+  }
+  // @@protoc_insertion_point(serialize_end:ModeliRpc.NewValuesResponse)
+}
+
+::google::protobuf::uint8* NewValuesResponse::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:ModeliRpc.NewValuesResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // .ModeliRpc.Values values = 1;
+  if (this->has_values()) {
+    target = ::google::protobuf::internal::WireFormatLite::
+      InternalWriteMessageToArray(
+        1, *this->values_, deterministic, target);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:ModeliRpc.NewValuesResponse)
+  return target;
+}
+
+size_t NewValuesResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:ModeliRpc.NewValuesResponse)
+  size_t total_size = 0;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
+  }
+  // .ModeliRpc.Values values = 1;
+  if (this->has_values()) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::MessageSize(
+        *this->values_);
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void NewValuesResponse::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:ModeliRpc.NewValuesResponse)
+  GOOGLE_DCHECK_NE(&from, this);
+  const NewValuesResponse* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const NewValuesResponse>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ModeliRpc.NewValuesResponse)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:ModeliRpc.NewValuesResponse)
+    MergeFrom(*source);
+  }
+}
+
+void NewValuesResponse::MergeFrom(const NewValuesResponse& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:ModeliRpc.NewValuesResponse)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (from.has_values()) {
+    mutable_values()->::ModeliRpc::Values::MergeFrom(from.values());
+  }
+}
+
+void NewValuesResponse::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:ModeliRpc.NewValuesResponse)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void NewValuesResponse::CopyFrom(const NewValuesResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:ModeliRpc.NewValuesResponse)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool NewValuesResponse::IsInitialized() const {
+  return true;
+}
+
+void NewValuesResponse::Swap(NewValuesResponse* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void NewValuesResponse::InternalSwap(NewValuesResponse* other) {
+  using std::swap;
+  swap(values_, other->values_);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata NewValuesResponse::GetMetadata() const {
+  protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+
+// ===================================================================
+
+void LogRequest::InitAsDefaultInstance() {
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+LogRequest::LogRequest()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    ::protobuf_ModeliRpc_2eproto::InitDefaultsLogRequest();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:ModeliRpc.LogRequest)
+}
+LogRequest::LogRequest(const LogRequest& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  // @@protoc_insertion_point(copy_constructor:ModeliRpc.LogRequest)
+}
+
+void LogRequest::SharedCtor() {
+  _cached_size_ = 0;
+}
+
+LogRequest::~LogRequest() {
+  // @@protoc_insertion_point(destructor:ModeliRpc.LogRequest)
+  SharedDtor();
+}
+
+void LogRequest::SharedDtor() {
+}
+
+void LogRequest::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* LogRequest::descriptor() {
+  ::protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const LogRequest& LogRequest::default_instance() {
+  ::protobuf_ModeliRpc_2eproto::InitDefaultsLogRequest();
+  return *internal_default_instance();
+}
+
+LogRequest* LogRequest::New(::google::protobuf::Arena* arena) const {
+  LogRequest* n = new LogRequest;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void LogRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:ModeliRpc.LogRequest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  _internal_metadata_.Clear();
+}
+
+bool LogRequest::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:ModeliRpc.LogRequest)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+  handle_unusual:
+    if (tag == 0) {
+      goto success;
+    }
+    DO_(::google::protobuf::internal::WireFormat::SkipField(
+          input, tag, _internal_metadata_.mutable_unknown_fields()));
+  }
+success:
+  // @@protoc_insertion_point(parse_success:ModeliRpc.LogRequest)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:ModeliRpc.LogRequest)
+  return false;
+#undef DO_
+}
+
+void LogRequest::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:ModeliRpc.LogRequest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
+  }
+  // @@protoc_insertion_point(serialize_end:ModeliRpc.LogRequest)
+}
+
+::google::protobuf::uint8* LogRequest::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:ModeliRpc.LogRequest)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:ModeliRpc.LogRequest)
+  return target;
+}
+
+size_t LogRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:ModeliRpc.LogRequest)
+  size_t total_size = 0;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
+  }
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void LogRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:ModeliRpc.LogRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  const LogRequest* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const LogRequest>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ModeliRpc.LogRequest)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:ModeliRpc.LogRequest)
+    MergeFrom(*source);
+  }
+}
+
+void LogRequest::MergeFrom(const LogRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:ModeliRpc.LogRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+}
+
+void LogRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:ModeliRpc.LogRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void LogRequest::CopyFrom(const LogRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:ModeliRpc.LogRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool LogRequest::IsInitialized() const {
+  return true;
+}
+
+void LogRequest::Swap(LogRequest* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void LogRequest::InternalSwap(LogRequest* other) {
+  using std::swap;
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata LogRequest::GetMetadata() const {
+  protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+
+// ===================================================================
+
+void LogResponse::InitAsDefaultInstance() {
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int LogResponse::kInstanceNameFieldNumber;
+const int LogResponse::kStatusFieldNumber;
+const int LogResponse::kMessageFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+LogResponse::LogResponse()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    ::protobuf_ModeliRpc_2eproto::InitDefaultsLogResponse();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:ModeliRpc.LogResponse)
+}
+LogResponse::LogResponse(const LogResponse& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  instance_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.instance_name().size() > 0) {
+    instance_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.instance_name_);
+  }
+  message_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.message().size() > 0) {
+    message_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.message_);
+  }
+  status_ = from.status_;
+  // @@protoc_insertion_point(copy_constructor:ModeliRpc.LogResponse)
+}
+
+void LogResponse::SharedCtor() {
+  instance_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  message_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  status_ = 0;
+  _cached_size_ = 0;
+}
+
+LogResponse::~LogResponse() {
+  // @@protoc_insertion_point(destructor:ModeliRpc.LogResponse)
+  SharedDtor();
+}
+
+void LogResponse::SharedDtor() {
+  instance_name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  message_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void LogResponse::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* LogResponse::descriptor() {
+  ::protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const LogResponse& LogResponse::default_instance() {
+  ::protobuf_ModeliRpc_2eproto::InitDefaultsLogResponse();
+  return *internal_default_instance();
+}
+
+LogResponse* LogResponse::New(::google::protobuf::Arena* arena) const {
+  LogResponse* n = new LogResponse;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void LogResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:ModeliRpc.LogResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  instance_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  message_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  status_ = 0;
+  _internal_metadata_.Clear();
+}
+
+bool LogResponse::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:ModeliRpc.LogResponse)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // string instance_name = 1;
+      case 1: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_instance_name()));
+          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+            this->instance_name().data(), static_cast<int>(this->instance_name().length()),
+            ::google::protobuf::internal::WireFormatLite::PARSE,
+            "ModeliRpc.LogResponse.instance_name"));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // .ModeliRpc.Fmi2Status status = 2;
+      case 2: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
+          int value;
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
+                 input, &value)));
+          set_status(static_cast< ::ModeliRpc::Fmi2Status >(value));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // string message = 3;
+      case 3: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(26u /* 26 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_message()));
+          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+            this->message().data(), static_cast<int>(this->message().length()),
+            ::google::protobuf::internal::WireFormatLite::PARSE,
+            "ModeliRpc.LogResponse.message"));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:ModeliRpc.LogResponse)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:ModeliRpc.LogResponse)
+  return false;
+#undef DO_
+}
+
+void LogResponse::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:ModeliRpc.LogResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // string instance_name = 1;
+  if (this->instance_name().size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+      this->instance_name().data(), static_cast<int>(this->instance_name().length()),
+      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+      "ModeliRpc.LogResponse.instance_name");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      1, this->instance_name(), output);
+  }
+
+  // .ModeliRpc.Fmi2Status status = 2;
+  if (this->status() != 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteEnum(
+      2, this->status(), output);
+  }
+
+  // string message = 3;
+  if (this->message().size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+      this->message().data(), static_cast<int>(this->message().length()),
+      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+      "ModeliRpc.LogResponse.message");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      3, this->message(), output);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
+  }
+  // @@protoc_insertion_point(serialize_end:ModeliRpc.LogResponse)
+}
+
+::google::protobuf::uint8* LogResponse::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:ModeliRpc.LogResponse)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // string instance_name = 1;
+  if (this->instance_name().size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+      this->instance_name().data(), static_cast<int>(this->instance_name().length()),
+      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+      "ModeliRpc.LogResponse.instance_name");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        1, this->instance_name(), target);
+  }
+
+  // .ModeliRpc.Fmi2Status status = 2;
+  if (this->status() != 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
+      2, this->status(), target);
+  }
+
+  // string message = 3;
+  if (this->message().size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+      this->message().data(), static_cast<int>(this->message().length()),
+      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+      "ModeliRpc.LogResponse.message");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        3, this->message(), target);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:ModeliRpc.LogResponse)
+  return target;
+}
+
+size_t LogResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:ModeliRpc.LogResponse)
+  size_t total_size = 0;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
+  }
+  // string instance_name = 1;
+  if (this->instance_name().size() > 0) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->instance_name());
+  }
+
+  // string message = 3;
+  if (this->message().size() > 0) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->message());
+  }
+
+  // .ModeliRpc.Fmi2Status status = 2;
+  if (this->status() != 0) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::EnumSize(this->status());
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void LogResponse::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:ModeliRpc.LogResponse)
+  GOOGLE_DCHECK_NE(&from, this);
+  const LogResponse* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const LogResponse>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ModeliRpc.LogResponse)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:ModeliRpc.LogResponse)
+    MergeFrom(*source);
+  }
+}
+
+void LogResponse::MergeFrom(const LogResponse& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:ModeliRpc.LogResponse)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (from.instance_name().size() > 0) {
+
+    instance_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.instance_name_);
+  }
+  if (from.message().size() > 0) {
+
+    message_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.message_);
+  }
+  if (from.status() != 0) {
+    set_status(from.status());
+  }
+}
+
+void LogResponse::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:ModeliRpc.LogResponse)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void LogResponse::CopyFrom(const LogResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:ModeliRpc.LogResponse)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool LogResponse::IsInitialized() const {
+  return true;
+}
+
+void LogResponse::Swap(LogResponse* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void LogResponse::InternalSwap(LogResponse* other) {
+  using std::swap;
+  instance_name_.Swap(&other->instance_name_);
+  message_.Swap(&other->message_);
+  swap(status_, other->status_);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata LogResponse::GetMetadata() const {
+  protobuf_ModeliRpc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_ModeliRpc_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+
+// @@protoc_insertion_point(namespace_scope)
+}  // namespace ModeliRpc
+
+// @@protoc_insertion_point(global_scope)
diff --git a/ModeliRpc_Cpp/ModeliRpc.pb.h b/ModeliRpc_Cpp/ModeliRpc.pb.h
new file mode 100644
index 0000000000000000000000000000000000000000..03a959792c55a2042ae04c7d3582881ffd2b8c1b
--- /dev/null
+++ b/ModeliRpc_Cpp/ModeliRpc.pb.h
@@ -0,0 +1,4079 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: ModeliRpc.proto
+
+#ifndef PROTOBUF_ModeliRpc_2eproto__INCLUDED
+#define PROTOBUF_ModeliRpc_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3005000
+#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 3005000 < GOOGLE_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/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.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>
+// @@protoc_insertion_point(includes)
+
+namespace protobuf_ModeliRpc_2eproto {
+// Internal implementation detail -- do not use these members.
+struct TableStruct {
+  static const ::google::protobuf::internal::ParseTableField entries[];
+  static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+  static const ::google::protobuf::internal::ParseTable schema[24];
+  static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+  static const ::google::protobuf::internal::SerializationTable serialization_table[];
+  static const ::google::protobuf::uint32 offsets[];
+};
+void AddDescriptors();
+void InitDefaultsValuesImpl();
+void InitDefaultsValues();
+void InitDefaultsChannelLinkImpl();
+void InitDefaultsChannelLink();
+void InitDefaultsPlayRequestImpl();
+void InitDefaultsPlayRequest();
+void InitDefaultsPlayResponseImpl();
+void InitDefaultsPlayResponse();
+void InitDefaultsPlayFastRequestImpl();
+void InitDefaultsPlayFastRequest();
+void InitDefaultsPlayFastResponseImpl();
+void InitDefaultsPlayFastResponse();
+void InitDefaultsPauseRequestImpl();
+void InitDefaultsPauseRequest();
+void InitDefaultsPauseResponseImpl();
+void InitDefaultsPauseResponse();
+void InitDefaultsStopRequestImpl();
+void InitDefaultsStopRequest();
+void InitDefaultsStopResponseImpl();
+void InitDefaultsStopResponse();
+void InitDefaultsAddFmuRequestImpl();
+void InitDefaultsAddFmuRequest();
+void InitDefaultsAddFmuResponseImpl();
+void InitDefaultsAddFmuResponse();
+void InitDefaultsRemoveFmuRequestImpl();
+void InitDefaultsRemoveFmuRequest();
+void InitDefaultsRemoveFmuResponseImpl();
+void InitDefaultsRemoveFmuResponse();
+void InitDefaultsAddChannelLinkRequestImpl();
+void InitDefaultsAddChannelLinkRequest();
+void InitDefaultsAddChannelLinkResponseImpl();
+void InitDefaultsAddChannelLinkResponse();
+void InitDefaultsRemoveChannelLinkRequestImpl();
+void InitDefaultsRemoveChannelLinkRequest();
+void InitDefaultsRemoveChannelLinkResponseImpl();
+void InitDefaultsRemoveChannelLinkResponse();
+void InitDefaultsSetValuesReqestImpl();
+void InitDefaultsSetValuesReqest();
+void InitDefaultsSetValuesResponseImpl();
+void InitDefaultsSetValuesResponse();
+void InitDefaultsNewValuesRequestImpl();
+void InitDefaultsNewValuesRequest();
+void InitDefaultsNewValuesResponseImpl();
+void InitDefaultsNewValuesResponse();
+void InitDefaultsLogRequestImpl();
+void InitDefaultsLogRequest();
+void InitDefaultsLogResponseImpl();
+void InitDefaultsLogResponse();
+inline void InitDefaults() {
+  InitDefaultsValues();
+  InitDefaultsChannelLink();
+  InitDefaultsPlayRequest();
+  InitDefaultsPlayResponse();
+  InitDefaultsPlayFastRequest();
+  InitDefaultsPlayFastResponse();
+  InitDefaultsPauseRequest();
+  InitDefaultsPauseResponse();
+  InitDefaultsStopRequest();
+  InitDefaultsStopResponse();
+  InitDefaultsAddFmuRequest();
+  InitDefaultsAddFmuResponse();
+  InitDefaultsRemoveFmuRequest();
+  InitDefaultsRemoveFmuResponse();
+  InitDefaultsAddChannelLinkRequest();
+  InitDefaultsAddChannelLinkResponse();
+  InitDefaultsRemoveChannelLinkRequest();
+  InitDefaultsRemoveChannelLinkResponse();
+  InitDefaultsSetValuesReqest();
+  InitDefaultsSetValuesResponse();
+  InitDefaultsNewValuesRequest();
+  InitDefaultsNewValuesResponse();
+  InitDefaultsLogRequest();
+  InitDefaultsLogResponse();
+}
+}  // namespace protobuf_ModeliRpc_2eproto
+namespace ModeliRpc {
+class AddChannelLinkRequest;
+class AddChannelLinkRequestDefaultTypeInternal;
+extern AddChannelLinkRequestDefaultTypeInternal _AddChannelLinkRequest_default_instance_;
+class AddChannelLinkResponse;
+class AddChannelLinkResponseDefaultTypeInternal;
+extern AddChannelLinkResponseDefaultTypeInternal _AddChannelLinkResponse_default_instance_;
+class AddFmuRequest;
+class AddFmuRequestDefaultTypeInternal;
+extern AddFmuRequestDefaultTypeInternal _AddFmuRequest_default_instance_;
+class AddFmuResponse;
+class AddFmuResponseDefaultTypeInternal;
+extern AddFmuResponseDefaultTypeInternal _AddFmuResponse_default_instance_;
+class ChannelLink;
+class ChannelLinkDefaultTypeInternal;
+extern ChannelLinkDefaultTypeInternal _ChannelLink_default_instance_;
+class LogRequest;
+class LogRequestDefaultTypeInternal;
+extern LogRequestDefaultTypeInternal _LogRequest_default_instance_;
+class LogResponse;
+class LogResponseDefaultTypeInternal;
+extern LogResponseDefaultTypeInternal _LogResponse_default_instance_;
+class NewValuesRequest;
+class NewValuesRequestDefaultTypeInternal;
+extern NewValuesRequestDefaultTypeInternal _NewValuesRequest_default_instance_;
+class NewValuesResponse;
+class NewValuesResponseDefaultTypeInternal;
+extern NewValuesResponseDefaultTypeInternal _NewValuesResponse_default_instance_;
+class PauseRequest;
+class PauseRequestDefaultTypeInternal;
+extern PauseRequestDefaultTypeInternal _PauseRequest_default_instance_;
+class PauseResponse;
+class PauseResponseDefaultTypeInternal;
+extern PauseResponseDefaultTypeInternal _PauseResponse_default_instance_;
+class PlayFastRequest;
+class PlayFastRequestDefaultTypeInternal;
+extern PlayFastRequestDefaultTypeInternal _PlayFastRequest_default_instance_;
+class PlayFastResponse;
+class PlayFastResponseDefaultTypeInternal;
+extern PlayFastResponseDefaultTypeInternal _PlayFastResponse_default_instance_;
+class PlayRequest;
+class PlayRequestDefaultTypeInternal;
+extern PlayRequestDefaultTypeInternal _PlayRequest_default_instance_;
+class PlayResponse;
+class PlayResponseDefaultTypeInternal;
+extern PlayResponseDefaultTypeInternal _PlayResponse_default_instance_;
+class RemoveChannelLinkRequest;
+class RemoveChannelLinkRequestDefaultTypeInternal;
+extern RemoveChannelLinkRequestDefaultTypeInternal _RemoveChannelLinkRequest_default_instance_;
+class RemoveChannelLinkResponse;
+class RemoveChannelLinkResponseDefaultTypeInternal;
+extern RemoveChannelLinkResponseDefaultTypeInternal _RemoveChannelLinkResponse_default_instance_;
+class RemoveFmuRequest;
+class RemoveFmuRequestDefaultTypeInternal;
+extern RemoveFmuRequestDefaultTypeInternal _RemoveFmuRequest_default_instance_;
+class RemoveFmuResponse;
+class RemoveFmuResponseDefaultTypeInternal;
+extern RemoveFmuResponseDefaultTypeInternal _RemoveFmuResponse_default_instance_;
+class SetValuesReqest;
+class SetValuesReqestDefaultTypeInternal;
+extern SetValuesReqestDefaultTypeInternal _SetValuesReqest_default_instance_;
+class SetValuesResponse;
+class SetValuesResponseDefaultTypeInternal;
+extern SetValuesResponseDefaultTypeInternal _SetValuesResponse_default_instance_;
+class StopRequest;
+class StopRequestDefaultTypeInternal;
+extern StopRequestDefaultTypeInternal _StopRequest_default_instance_;
+class StopResponse;
+class StopResponseDefaultTypeInternal;
+extern StopResponseDefaultTypeInternal _StopResponse_default_instance_;
+class Values;
+class ValuesDefaultTypeInternal;
+extern ValuesDefaultTypeInternal _Values_default_instance_;
+}  // namespace ModeliRpc
+namespace ModeliRpc {
+
+enum Fmi2Status {
+  FMI2_OK = 0,
+  FMI2_WARNING = 1,
+  FMI2_DISCARD = 2,
+  FMI2_ERROR = 3,
+  FMI2_FATAL = 4,
+  FMI2_PENDING = 5,
+  Fmi2Status_INT_MIN_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32min,
+  Fmi2Status_INT_MAX_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32max
+};
+bool Fmi2Status_IsValid(int value);
+const Fmi2Status Fmi2Status_MIN = FMI2_OK;
+const Fmi2Status Fmi2Status_MAX = FMI2_PENDING;
+const int Fmi2Status_ARRAYSIZE = Fmi2Status_MAX + 1;
+
+const ::google::protobuf::EnumDescriptor* Fmi2Status_descriptor();
+inline const ::std::string& Fmi2Status_Name(Fmi2Status value) {
+  return ::google::protobuf::internal::NameOfEnum(
+    Fmi2Status_descriptor(), value);
+}
+inline bool Fmi2Status_Parse(
+    const ::std::string& name, Fmi2Status* value) {
+  return ::google::protobuf::internal::ParseNamedEnum<Fmi2Status>(
+    Fmi2Status_descriptor(), name, value);
+}
+// ===================================================================
+
+class Values : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:ModeliRpc.Values) */ {
+ public:
+  Values();
+  virtual ~Values();
+
+  Values(const Values& from);
+
+  inline Values& operator=(const Values& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  #if LANG_CXX11
+  Values(Values&& from) noexcept
+    : Values() {
+    *this = ::std::move(from);
+  }
+
+  inline Values& operator=(Values&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const Values& default_instance();
+
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const Values* internal_default_instance() {
+    return reinterpret_cast<const Values*>(
+               &_Values_default_instance_);
+  }
+  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+    0;
+
+  void Swap(Values* other);
+  friend void swap(Values& a, Values& b) {
+    a.Swap(&b);
+  }
+
+  // implements Message ----------------------------------------------
+
+  inline Values* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  Values* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const Values& from);
+  void MergeFrom(const Values& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(Values* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // repeated uint32 int_vrs = 2;
+  int int_vrs_size() const;
+  void clear_int_vrs();
+  static const int kIntVrsFieldNumber = 2;
+  ::google::protobuf::uint32 int_vrs(int index) const;
+  void set_int_vrs(int index, ::google::protobuf::uint32 value);
+  void add_int_vrs(::google::protobuf::uint32 value);
+  const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
+      int_vrs() const;
+  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
+      mutable_int_vrs();
+
+  // repeated int32 int_values = 3;
+  int int_values_size() const;
+  void clear_int_values();
+  static const int kIntValuesFieldNumber = 3;
+  ::google::protobuf::int32 int_values(int index) const;
+  void set_int_values(int index, ::google::protobuf::int32 value);
+  void add_int_values(::google::protobuf::int32 value);
+  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
+      int_values() const;
+  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
+      mutable_int_values();
+
+  // repeated uint32 real_vrs = 4;
+  int real_vrs_size() const;
+  void clear_real_vrs();
+  static const int kRealVrsFieldNumber = 4;
+  ::google::protobuf::uint32 real_vrs(int index) const;
+  void set_real_vrs(int index, ::google::protobuf::uint32 value);
+  void add_real_vrs(::google::protobuf::uint32 value);
+  const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
+      real_vrs() const;
+  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
+      mutable_real_vrs();
+
+  // repeated double real_values = 5;
+  int real_values_size() const;
+  void clear_real_values();
+  static const int kRealValuesFieldNumber = 5;
+  double real_values(int index) const;
+  void set_real_values(int index, double value);
+  void add_real_values(double value);
+  const ::google::protobuf::RepeatedField< double >&
+      real_values() const;
+  ::google::protobuf::RepeatedField< double >*
+      mutable_real_values();
+
+  // repeated uint32 bool_vrs = 6;
+  int bool_vrs_size() const;
+  void clear_bool_vrs();
+  static const int kBoolVrsFieldNumber = 6;
+  ::google::protobuf::uint32 bool_vrs(int index) const;
+  void set_bool_vrs(int index, ::google::protobuf::uint32 value);
+  void add_bool_vrs(::google::protobuf::uint32 value);
+  const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
+      bool_vrs() const;
+  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
+      mutable_bool_vrs();
+
+  // repeated int32 bool_values = 7;
+  int bool_values_size() const;
+  void clear_bool_values();
+  static const int kBoolValuesFieldNumber = 7;
+  ::google::protobuf::int32 bool_values(int index) const;
+  void set_bool_values(int index, ::google::protobuf::int32 value);
+  void add_bool_values(::google::protobuf::int32 value);
+  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
+      bool_values() const;
+  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
+      mutable_bool_values();
+
+  // repeated uint32 string_vrs = 8;
+  int string_vrs_size() const;
+  void clear_string_vrs();
+  static const int kStringVrsFieldNumber = 8;
+  ::google::protobuf::uint32 string_vrs(int index) const;
+  void set_string_vrs(int index, ::google::protobuf::uint32 value);
+  void add_string_vrs(::google::protobuf::uint32 value);
+  const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
+      string_vrs() const;
+  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
+      mutable_string_vrs();
+
+  // repeated string string_values = 9;
+  int string_values_size() const;
+  void clear_string_values();
+  static const int kStringValuesFieldNumber = 9;
+  const ::std::string& string_values(int index) const;
+  ::std::string* mutable_string_values(int index);
+  void set_string_values(int index, const ::std::string& value);
+  #if LANG_CXX11
+  void set_string_values(int index, ::std::string&& value);
+  #endif
+  void set_string_values(int index, const char* value);
+  void set_string_values(int index, const char* value, size_t size);
+  ::std::string* add_string_values();
+  void add_string_values(const ::std::string& value);
+  #if LANG_CXX11
+  void add_string_values(::std::string&& value);
+  #endif
+  void add_string_values(const char* value);
+  void add_string_values(const char* value, size_t size);
+  const ::google::protobuf::RepeatedPtrField< ::std::string>& string_values() const;
+  ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_string_values();
+
+  // string instance_name = 1;
+  void clear_instance_name();
+  static const int kInstanceNameFieldNumber = 1;
+  const ::std::string& instance_name() const;
+  void set_instance_name(const ::std::string& value);
+  #if LANG_CXX11
+  void set_instance_name(::std::string&& value);
+  #endif
+  void set_instance_name(const char* value);
+  void set_instance_name(const char* value, size_t size);
+  ::std::string* mutable_instance_name();
+  ::std::string* release_instance_name();
+  void set_allocated_instance_name(::std::string* instance_name);
+
+  // @@protoc_insertion_point(class_scope:ModeliRpc.Values)
+ private:
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > int_vrs_;
+  mutable int _int_vrs_cached_byte_size_;
+  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > int_values_;
+  mutable int _int_values_cached_byte_size_;
+  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > real_vrs_;
+  mutable int _real_vrs_cached_byte_size_;
+  ::google::protobuf::RepeatedField< double > real_values_;
+  mutable int _real_values_cached_byte_size_;
+  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > bool_vrs_;
+  mutable int _bool_vrs_cached_byte_size_;
+  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > bool_values_;
+  mutable int _bool_values_cached_byte_size_;
+  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > string_vrs_;
+  mutable int _string_vrs_cached_byte_size_;
+  ::google::protobuf::RepeatedPtrField< ::std::string> string_values_;
+  ::google::protobuf::internal::ArenaStringPtr instance_name_;
+  mutable int _cached_size_;
+  friend struct ::protobuf_ModeliRpc_2eproto::TableStruct;
+  friend void ::protobuf_ModeliRpc_2eproto::InitDefaultsValuesImpl();
+};
+// -------------------------------------------------------------------
+
+class ChannelLink : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:ModeliRpc.ChannelLink) */ {
+ public:
+  ChannelLink();
+  virtual ~ChannelLink();
+
+  ChannelLink(const ChannelLink& from);
+
+  inline ChannelLink& operator=(const ChannelLink& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  #if LANG_CXX11
+  ChannelLink(ChannelLink&& from) noexcept
+    : ChannelLink() {
+    *this = ::std::move(from);
+  }
+
+  inline ChannelLink& operator=(ChannelLink&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const ChannelLink& default_instance();
+
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const ChannelLink* internal_default_instance() {
+    return reinterpret_cast<const ChannelLink*>(
+               &_ChannelLink_default_instance_);
+  }
+  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+    1;
+
+  void Swap(ChannelLink* other);
+  friend void swap(ChannelLink& a, ChannelLink& b) {
+    a.Swap(&b);
+  }
+
+  // implements Message ----------------------------------------------
+
+  inline ChannelLink* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  ChannelLink* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const ChannelLink& from);
+  void MergeFrom(const ChannelLink& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(ChannelLink* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // string master_instance_name = 1;
+  void clear_master_instance_name();
+  static const int kMasterInstanceNameFieldNumber = 1;
+  const ::std::string& master_instance_name() const;
+  void set_master_instance_name(const ::std::string& value);
+  #if LANG_CXX11
+  void set_master_instance_name(::std::string&& value);
+  #endif
+  void set_master_instance_name(const char* value);
+  void set_master_instance_name(const char* value, size_t size);
+  ::std::string* mutable_master_instance_name();
+  ::std::string* release_master_instance_name();
+  void set_allocated_master_instance_name(::std::string* master_instance_name);
+
+  // string slave_instance_name = 2;
+  void clear_slave_instance_name();
+  static const int kSlaveInstanceNameFieldNumber = 2;
+  const ::std::string& slave_instance_name() const;
+  void set_slave_instance_name(const ::std::string& value);
+  #if LANG_CXX11
+  void set_slave_instance_name(::std::string&& value);
+  #endif
+  void set_slave_instance_name(const char* value);
+  void set_slave_instance_name(const char* value, size_t size);
+  ::std::string* mutable_slave_instance_name();
+  ::std::string* release_slave_instance_name();
+  void set_allocated_slave_instance_name(::std::string* slave_instance_name);
+
+  // uint32 master_vr = 3;
+  void clear_master_vr();
+  static const int kMasterVrFieldNumber = 3;
+  ::google::protobuf::uint32 master_vr() const;
+  void set_master_vr(::google::protobuf::uint32 value);
+
+  // uint32 slave_vr = 4;
+  void clear_slave_vr();
+  static const int kSlaveVrFieldNumber = 4;
+  ::google::protobuf::uint32 slave_vr() const;
+  void set_slave_vr(::google::protobuf::uint32 value);
+
+  // double factor = 5;
+  void clear_factor();
+  static const int kFactorFieldNumber = 5;
+  double factor() const;
+  void set_factor(double value);
+
+  // double offset = 6;
+  void clear_offset();
+  static const int kOffsetFieldNumber = 6;
+  double offset() const;
+  void set_offset(double value);
+
+  // @@protoc_insertion_point(class_scope:ModeliRpc.ChannelLink)
+ private:
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::ArenaStringPtr master_instance_name_;
+  ::google::protobuf::internal::ArenaStringPtr slave_instance_name_;
+  ::google::protobuf::uint32 master_vr_;
+  ::google::protobuf::uint32 slave_vr_;
+  double factor_;
+  double offset_;
+  mutable int _cached_size_;
+  friend struct ::protobuf_ModeliRpc_2eproto::TableStruct;
+  friend void ::protobuf_ModeliRpc_2eproto::InitDefaultsChannelLinkImpl();
+};
+// -------------------------------------------------------------------
+
+class PlayRequest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:ModeliRpc.PlayRequest) */ {
+ public:
+  PlayRequest();
+  virtual ~PlayRequest();
+
+  PlayRequest(const PlayRequest& from);
+
+  inline PlayRequest& operator=(const PlayRequest& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  #if LANG_CXX11
+  PlayRequest(PlayRequest&& from) noexcept
+    : PlayRequest() {
+    *this = ::std::move(from);
+  }
+
+  inline PlayRequest& operator=(PlayRequest&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const PlayRequest& default_instance();
+
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const PlayRequest* internal_default_instance() {
+    return reinterpret_cast<const PlayRequest*>(
+               &_PlayRequest_default_instance_);
+  }
+  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+    2;
+
+  void Swap(PlayRequest* other);
+  friend void swap(PlayRequest& a, PlayRequest& b) {
+    a.Swap(&b);
+  }
+
+  // implements Message ----------------------------------------------
+
+  inline PlayRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  PlayRequest* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const PlayRequest& from);
+  void MergeFrom(const PlayRequest& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(PlayRequest* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // @@protoc_insertion_point(class_scope:ModeliRpc.PlayRequest)
+ private:
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  mutable int _cached_size_;
+  friend struct ::protobuf_ModeliRpc_2eproto::TableStruct;
+  friend void ::protobuf_ModeliRpc_2eproto::InitDefaultsPlayRequestImpl();
+};
+// -------------------------------------------------------------------
+
+class PlayResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:ModeliRpc.PlayResponse) */ {
+ public:
+  PlayResponse();
+  virtual ~PlayResponse();
+
+  PlayResponse(const PlayResponse& from);
+
+  inline PlayResponse& operator=(const PlayResponse& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  #if LANG_CXX11
+  PlayResponse(PlayResponse&& from) noexcept
+    : PlayResponse() {
+    *this = ::std::move(from);
+  }
+
+  inline PlayResponse& operator=(PlayResponse&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const PlayResponse& default_instance();
+
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const PlayResponse* internal_default_instance() {
+    return reinterpret_cast<const PlayResponse*>(
+               &_PlayResponse_default_instance_);
+  }
+  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+    3;
+
+  void Swap(PlayResponse* other);
+  friend void swap(PlayResponse& a, PlayResponse& b) {
+    a.Swap(&b);
+  }
+
+  // implements Message ----------------------------------------------
+
+  inline PlayResponse* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  PlayResponse* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const PlayResponse& from);
+  void MergeFrom(const PlayResponse& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(PlayResponse* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // .ModeliRpc.Fmi2Status status = 1;
+  void clear_status();
+  static const int kStatusFieldNumber = 1;
+  ::ModeliRpc::Fmi2Status status() const;
+  void set_status(::ModeliRpc::Fmi2Status value);
+
+  // @@protoc_insertion_point(class_scope:ModeliRpc.PlayResponse)
+ private:
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  int status_;
+  mutable int _cached_size_;
+  friend struct ::protobuf_ModeliRpc_2eproto::TableStruct;
+  friend void ::protobuf_ModeliRpc_2eproto::InitDefaultsPlayResponseImpl();
+};
+// -------------------------------------------------------------------
+
+class PlayFastRequest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:ModeliRpc.PlayFastRequest) */ {
+ public:
+  PlayFastRequest();
+  virtual ~PlayFastRequest();
+
+  PlayFastRequest(const PlayFastRequest& from);
+
+  inline PlayFastRequest& operator=(const PlayFastRequest& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  #if LANG_CXX11
+  PlayFastRequest(PlayFastRequest&& from) noexcept
+    : PlayFastRequest() {
+    *this = ::std::move(from);
+  }
+
+  inline PlayFastRequest& operator=(PlayFastRequest&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const PlayFastRequest& default_instance();
+
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const PlayFastRequest* internal_default_instance() {
+    return reinterpret_cast<const PlayFastRequest*>(
+               &_PlayFastRequest_default_instance_);
+  }
+  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+    4;
+
+  void Swap(PlayFastRequest* other);
+  friend void swap(PlayFastRequest& a, PlayFastRequest& b) {
+    a.Swap(&b);
+  }
+
+  // implements Message ----------------------------------------------
+
+  inline PlayFastRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  PlayFastRequest* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const PlayFastRequest& from);
+  void MergeFrom(const PlayFastRequest& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(PlayFastRequest* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // double time = 1;
+  void clear_time();
+  static const int kTimeFieldNumber = 1;
+  double time() const;
+  void set_time(double value);
+
+  // @@protoc_insertion_point(class_scope:ModeliRpc.PlayFastRequest)
+ private:
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  double time_;
+  mutable int _cached_size_;
+  friend struct ::protobuf_ModeliRpc_2eproto::TableStruct;
+  friend void ::protobuf_ModeliRpc_2eproto::InitDefaultsPlayFastRequestImpl();
+};
+// -------------------------------------------------------------------
+
+class PlayFastResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:ModeliRpc.PlayFastResponse) */ {
+ public:
+  PlayFastResponse();
+  virtual ~PlayFastResponse();
+
+  PlayFastResponse(const PlayFastResponse& from);
+
+  inline PlayFastResponse& operator=(const PlayFastResponse& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  #if LANG_CXX11
+  PlayFastResponse(PlayFastResponse&& from) noexcept
+    : PlayFastResponse() {
+    *this = ::std::move(from);
+  }
+
+  inline PlayFastResponse& operator=(PlayFastResponse&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const PlayFastResponse& default_instance();
+
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const PlayFastResponse* internal_default_instance() {
+    return reinterpret_cast<const PlayFastResponse*>(
+               &_PlayFastResponse_default_instance_);
+  }
+  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+    5;
+
+  void Swap(PlayFastResponse* other);
+  friend void swap(PlayFastResponse& a, PlayFastResponse& b) {
+    a.Swap(&b);
+  }
+
+  // implements Message ----------------------------------------------
+
+  inline PlayFastResponse* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  PlayFastResponse* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const PlayFastResponse& from);
+  void MergeFrom(const PlayFastResponse& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(PlayFastResponse* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // .ModeliRpc.Fmi2Status status = 1;
+  void clear_status();
+  static const int kStatusFieldNumber = 1;
+  ::ModeliRpc::Fmi2Status status() const;
+  void set_status(::ModeliRpc::Fmi2Status value);
+
+  // @@protoc_insertion_point(class_scope:ModeliRpc.PlayFastResponse)
+ private:
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  int status_;
+  mutable int _cached_size_;
+  friend struct ::protobuf_ModeliRpc_2eproto::TableStruct;
+  friend void ::protobuf_ModeliRpc_2eproto::InitDefaultsPlayFastResponseImpl();
+};
+// -------------------------------------------------------------------
+
+class PauseRequest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:ModeliRpc.PauseRequest) */ {
+ public:
+  PauseRequest();
+  virtual ~PauseRequest();
+
+  PauseRequest(const PauseRequest& from);
+
+  inline PauseRequest& operator=(const PauseRequest& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  #if LANG_CXX11
+  PauseRequest(PauseRequest&& from) noexcept
+    : PauseRequest() {
+    *this = ::std::move(from);
+  }
+
+  inline PauseRequest& operator=(PauseRequest&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const PauseRequest& default_instance();
+
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const PauseRequest* internal_default_instance() {
+    return reinterpret_cast<const PauseRequest*>(
+               &_PauseRequest_default_instance_);
+  }
+  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+    6;
+
+  void Swap(PauseRequest* other);
+  friend void swap(PauseRequest& a, PauseRequest& b) {
+    a.Swap(&b);
+  }
+
+  // implements Message ----------------------------------------------
+
+  inline PauseRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  PauseRequest* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const PauseRequest& from);
+  void MergeFrom(const PauseRequest& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(PauseRequest* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // @@protoc_insertion_point(class_scope:ModeliRpc.PauseRequest)
+ private:
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  mutable int _cached_size_;
+  friend struct ::protobuf_ModeliRpc_2eproto::TableStruct;
+  friend void ::protobuf_ModeliRpc_2eproto::InitDefaultsPauseRequestImpl();
+};
+// -------------------------------------------------------------------
+
+class PauseResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:ModeliRpc.PauseResponse) */ {
+ public:
+  PauseResponse();
+  virtual ~PauseResponse();
+
+  PauseResponse(const PauseResponse& from);
+
+  inline PauseResponse& operator=(const PauseResponse& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  #if LANG_CXX11
+  PauseResponse(PauseResponse&& from) noexcept
+    : PauseResponse() {
+    *this = ::std::move(from);
+  }
+
+  inline PauseResponse& operator=(PauseResponse&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const PauseResponse& default_instance();
+
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const PauseResponse* internal_default_instance() {
+    return reinterpret_cast<const PauseResponse*>(
+               &_PauseResponse_default_instance_);
+  }
+  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+    7;
+
+  void Swap(PauseResponse* other);
+  friend void swap(PauseResponse& a, PauseResponse& b) {
+    a.Swap(&b);
+  }
+
+  // implements Message ----------------------------------------------
+
+  inline PauseResponse* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  PauseResponse* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const PauseResponse& from);
+  void MergeFrom(const PauseResponse& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(PauseResponse* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // @@protoc_insertion_point(class_scope:ModeliRpc.PauseResponse)
+ private:
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  mutable int _cached_size_;
+  friend struct ::protobuf_ModeliRpc_2eproto::TableStruct;
+  friend void ::protobuf_ModeliRpc_2eproto::InitDefaultsPauseResponseImpl();
+};
+// -------------------------------------------------------------------
+
+class StopRequest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:ModeliRpc.StopRequest) */ {
+ public:
+  StopRequest();
+  virtual ~StopRequest();
+
+  StopRequest(const StopRequest& from);
+
+  inline StopRequest& operator=(const StopRequest& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  #if LANG_CXX11
+  StopRequest(StopRequest&& from) noexcept
+    : StopRequest() {
+    *this = ::std::move(from);
+  }
+
+  inline StopRequest& operator=(StopRequest&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const StopRequest& default_instance();
+
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const StopRequest* internal_default_instance() {
+    return reinterpret_cast<const StopRequest*>(
+               &_StopRequest_default_instance_);
+  }
+  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+    8;
+
+  void Swap(StopRequest* other);
+  friend void swap(StopRequest& a, StopRequest& b) {
+    a.Swap(&b);
+  }
+
+  // implements Message ----------------------------------------------
+
+  inline StopRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  StopRequest* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const StopRequest& from);
+  void MergeFrom(const StopRequest& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(StopRequest* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // @@protoc_insertion_point(class_scope:ModeliRpc.StopRequest)
+ private:
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  mutable int _cached_size_;
+  friend struct ::protobuf_ModeliRpc_2eproto::TableStruct;
+  friend void ::protobuf_ModeliRpc_2eproto::InitDefaultsStopRequestImpl();
+};
+// -------------------------------------------------------------------
+
+class StopResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:ModeliRpc.StopResponse) */ {
+ public:
+  StopResponse();
+  virtual ~StopResponse();
+
+  StopResponse(const StopResponse& from);
+
+  inline StopResponse& operator=(const StopResponse& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  #if LANG_CXX11
+  StopResponse(StopResponse&& from) noexcept
+    : StopResponse() {
+    *this = ::std::move(from);
+  }
+
+  inline StopResponse& operator=(StopResponse&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const StopResponse& default_instance();
+
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const StopResponse* internal_default_instance() {
+    return reinterpret_cast<const StopResponse*>(
+               &_StopResponse_default_instance_);
+  }
+  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+    9;
+
+  void Swap(StopResponse* other);
+  friend void swap(StopResponse& a, StopResponse& b) {
+    a.Swap(&b);
+  }
+
+  // implements Message ----------------------------------------------
+
+  inline StopResponse* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  StopResponse* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const StopResponse& from);
+  void MergeFrom(const StopResponse& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(StopResponse* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // .ModeliRpc.Fmi2Status status = 1;
+  void clear_status();
+  static const int kStatusFieldNumber = 1;
+  ::ModeliRpc::Fmi2Status status() const;
+  void set_status(::ModeliRpc::Fmi2Status value);
+
+  // @@protoc_insertion_point(class_scope:ModeliRpc.StopResponse)
+ private:
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  int status_;
+  mutable int _cached_size_;
+  friend struct ::protobuf_ModeliRpc_2eproto::TableStruct;
+  friend void ::protobuf_ModeliRpc_2eproto::InitDefaultsStopResponseImpl();
+};
+// -------------------------------------------------------------------
+
+class AddFmuRequest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:ModeliRpc.AddFmuRequest) */ {
+ public:
+  AddFmuRequest();
+  virtual ~AddFmuRequest();
+
+  AddFmuRequest(const AddFmuRequest& from);
+
+  inline AddFmuRequest& operator=(const AddFmuRequest& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  #if LANG_CXX11
+  AddFmuRequest(AddFmuRequest&& from) noexcept
+    : AddFmuRequest() {
+    *this = ::std::move(from);
+  }
+
+  inline AddFmuRequest& operator=(AddFmuRequest&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const AddFmuRequest& default_instance();
+
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const AddFmuRequest* internal_default_instance() {
+    return reinterpret_cast<const AddFmuRequest*>(
+               &_AddFmuRequest_default_instance_);
+  }
+  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+    10;
+
+  void Swap(AddFmuRequest* other);
+  friend void swap(AddFmuRequest& a, AddFmuRequest& b) {
+    a.Swap(&b);
+  }
+
+  // implements Message ----------------------------------------------
+
+  inline AddFmuRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  AddFmuRequest* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const AddFmuRequest& from);
+  void MergeFrom(const AddFmuRequest& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(AddFmuRequest* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // string instance_name = 1;
+  void clear_instance_name();
+  static const int kInstanceNameFieldNumber = 1;
+  const ::std::string& instance_name() const;
+  void set_instance_name(const ::std::string& value);
+  #if LANG_CXX11
+  void set_instance_name(::std::string&& value);
+  #endif
+  void set_instance_name(const char* value);
+  void set_instance_name(const char* value, size_t size);
+  ::std::string* mutable_instance_name();
+  ::std::string* release_instance_name();
+  void set_allocated_instance_name(::std::string* instance_name);
+
+  // bytes data = 2;
+  void clear_data();
+  static const int kDataFieldNumber = 2;
+  const ::std::string& data() const;
+  void set_data(const ::std::string& value);
+  #if LANG_CXX11
+  void set_data(::std::string&& value);
+  #endif
+  void set_data(const char* value);
+  void set_data(const void* value, size_t size);
+  ::std::string* mutable_data();
+  ::std::string* release_data();
+  void set_allocated_data(::std::string* data);
+
+  // @@protoc_insertion_point(class_scope:ModeliRpc.AddFmuRequest)
+ private:
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::ArenaStringPtr instance_name_;
+  ::google::protobuf::internal::ArenaStringPtr data_;
+  mutable int _cached_size_;
+  friend struct ::protobuf_ModeliRpc_2eproto::TableStruct;
+  friend void ::protobuf_ModeliRpc_2eproto::InitDefaultsAddFmuRequestImpl();
+};
+// -------------------------------------------------------------------
+
+class AddFmuResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:ModeliRpc.AddFmuResponse) */ {
+ public:
+  AddFmuResponse();
+  virtual ~AddFmuResponse();
+
+  AddFmuResponse(const AddFmuResponse& from);
+
+  inline AddFmuResponse& operator=(const AddFmuResponse& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  #if LANG_CXX11
+  AddFmuResponse(AddFmuResponse&& from) noexcept
+    : AddFmuResponse() {
+    *this = ::std::move(from);
+  }
+
+  inline AddFmuResponse& operator=(AddFmuResponse&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const AddFmuResponse& default_instance();
+
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const AddFmuResponse* internal_default_instance() {
+    return reinterpret_cast<const AddFmuResponse*>(
+               &_AddFmuResponse_default_instance_);
+  }
+  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+    11;
+
+  void Swap(AddFmuResponse* other);
+  friend void swap(AddFmuResponse& a, AddFmuResponse& b) {
+    a.Swap(&b);
+  }
+
+  // implements Message ----------------------------------------------
+
+  inline AddFmuResponse* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  AddFmuResponse* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const AddFmuResponse& from);
+  void MergeFrom(const AddFmuResponse& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(AddFmuResponse* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // bool success = 1;
+  void clear_success();
+  static const int kSuccessFieldNumber = 1;
+  bool success() const;
+  void set_success(bool value);
+
+  // @@protoc_insertion_point(class_scope:ModeliRpc.AddFmuResponse)
+ private:
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  bool success_;
+  mutable int _cached_size_;
+  friend struct ::protobuf_ModeliRpc_2eproto::TableStruct;
+  friend void ::protobuf_ModeliRpc_2eproto::InitDefaultsAddFmuResponseImpl();
+};
+// -------------------------------------------------------------------
+
+class RemoveFmuRequest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:ModeliRpc.RemoveFmuRequest) */ {
+ public:
+  RemoveFmuRequest();
+  virtual ~RemoveFmuRequest();
+
+  RemoveFmuRequest(const RemoveFmuRequest& from);
+
+  inline RemoveFmuRequest& operator=(const RemoveFmuRequest& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  #if LANG_CXX11
+  RemoveFmuRequest(RemoveFmuRequest&& from) noexcept
+    : RemoveFmuRequest() {
+    *this = ::std::move(from);
+  }
+
+  inline RemoveFmuRequest& operator=(RemoveFmuRequest&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const RemoveFmuRequest& default_instance();
+
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const RemoveFmuRequest* internal_default_instance() {
+    return reinterpret_cast<const RemoveFmuRequest*>(
+               &_RemoveFmuRequest_default_instance_);
+  }
+  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+    12;
+
+  void Swap(RemoveFmuRequest* other);
+  friend void swap(RemoveFmuRequest& a, RemoveFmuRequest& b) {
+    a.Swap(&b);
+  }
+
+  // implements Message ----------------------------------------------
+
+  inline RemoveFmuRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  RemoveFmuRequest* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const RemoveFmuRequest& from);
+  void MergeFrom(const RemoveFmuRequest& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(RemoveFmuRequest* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // string instance_name = 1;
+  void clear_instance_name();
+  static const int kInstanceNameFieldNumber = 1;
+  const ::std::string& instance_name() const;
+  void set_instance_name(const ::std::string& value);
+  #if LANG_CXX11
+  void set_instance_name(::std::string&& value);
+  #endif
+  void set_instance_name(const char* value);
+  void set_instance_name(const char* value, size_t size);
+  ::std::string* mutable_instance_name();
+  ::std::string* release_instance_name();
+  void set_allocated_instance_name(::std::string* instance_name);
+
+  // @@protoc_insertion_point(class_scope:ModeliRpc.RemoveFmuRequest)
+ private:
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::ArenaStringPtr instance_name_;
+  mutable int _cached_size_;
+  friend struct ::protobuf_ModeliRpc_2eproto::TableStruct;
+  friend void ::protobuf_ModeliRpc_2eproto::InitDefaultsRemoveFmuRequestImpl();
+};
+// -------------------------------------------------------------------
+
+class RemoveFmuResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:ModeliRpc.RemoveFmuResponse) */ {
+ public:
+  RemoveFmuResponse();
+  virtual ~RemoveFmuResponse();
+
+  RemoveFmuResponse(const RemoveFmuResponse& from);
+
+  inline RemoveFmuResponse& operator=(const RemoveFmuResponse& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  #if LANG_CXX11
+  RemoveFmuResponse(RemoveFmuResponse&& from) noexcept
+    : RemoveFmuResponse() {
+    *this = ::std::move(from);
+  }
+
+  inline RemoveFmuResponse& operator=(RemoveFmuResponse&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const RemoveFmuResponse& default_instance();
+
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const RemoveFmuResponse* internal_default_instance() {
+    return reinterpret_cast<const RemoveFmuResponse*>(
+               &_RemoveFmuResponse_default_instance_);
+  }
+  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+    13;
+
+  void Swap(RemoveFmuResponse* other);
+  friend void swap(RemoveFmuResponse& a, RemoveFmuResponse& b) {
+    a.Swap(&b);
+  }
+
+  // implements Message ----------------------------------------------
+
+  inline RemoveFmuResponse* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  RemoveFmuResponse* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const RemoveFmuResponse& from);
+  void MergeFrom(const RemoveFmuResponse& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(RemoveFmuResponse* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // bool success = 1;
+  void clear_success();
+  static const int kSuccessFieldNumber = 1;
+  bool success() const;
+  void set_success(bool value);
+
+  // @@protoc_insertion_point(class_scope:ModeliRpc.RemoveFmuResponse)
+ private:
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  bool success_;
+  mutable int _cached_size_;
+  friend struct ::protobuf_ModeliRpc_2eproto::TableStruct;
+  friend void ::protobuf_ModeliRpc_2eproto::InitDefaultsRemoveFmuResponseImpl();
+};
+// -------------------------------------------------------------------
+
+class AddChannelLinkRequest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:ModeliRpc.AddChannelLinkRequest) */ {
+ public:
+  AddChannelLinkRequest();
+  virtual ~AddChannelLinkRequest();
+
+  AddChannelLinkRequest(const AddChannelLinkRequest& from);
+
+  inline AddChannelLinkRequest& operator=(const AddChannelLinkRequest& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  #if LANG_CXX11
+  AddChannelLinkRequest(AddChannelLinkRequest&& from) noexcept
+    : AddChannelLinkRequest() {
+    *this = ::std::move(from);
+  }
+
+  inline AddChannelLinkRequest& operator=(AddChannelLinkRequest&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const AddChannelLinkRequest& default_instance();
+
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const AddChannelLinkRequest* internal_default_instance() {
+    return reinterpret_cast<const AddChannelLinkRequest*>(
+               &_AddChannelLinkRequest_default_instance_);
+  }
+  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+    14;
+
+  void Swap(AddChannelLinkRequest* other);
+  friend void swap(AddChannelLinkRequest& a, AddChannelLinkRequest& b) {
+    a.Swap(&b);
+  }
+
+  // implements Message ----------------------------------------------
+
+  inline AddChannelLinkRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  AddChannelLinkRequest* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const AddChannelLinkRequest& from);
+  void MergeFrom(const AddChannelLinkRequest& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(AddChannelLinkRequest* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // .ModeliRpc.ChannelLink channel_link = 1;
+  bool has_channel_link() const;
+  void clear_channel_link();
+  static const int kChannelLinkFieldNumber = 1;
+  const ::ModeliRpc::ChannelLink& channel_link() const;
+  ::ModeliRpc::ChannelLink* release_channel_link();
+  ::ModeliRpc::ChannelLink* mutable_channel_link();
+  void set_allocated_channel_link(::ModeliRpc::ChannelLink* channel_link);
+
+  // @@protoc_insertion_point(class_scope:ModeliRpc.AddChannelLinkRequest)
+ private:
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::ModeliRpc::ChannelLink* channel_link_;
+  mutable int _cached_size_;
+  friend struct ::protobuf_ModeliRpc_2eproto::TableStruct;
+  friend void ::protobuf_ModeliRpc_2eproto::InitDefaultsAddChannelLinkRequestImpl();
+};
+// -------------------------------------------------------------------
+
+class AddChannelLinkResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:ModeliRpc.AddChannelLinkResponse) */ {
+ public:
+  AddChannelLinkResponse();
+  virtual ~AddChannelLinkResponse();
+
+  AddChannelLinkResponse(const AddChannelLinkResponse& from);
+
+  inline AddChannelLinkResponse& operator=(const AddChannelLinkResponse& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  #if LANG_CXX11
+  AddChannelLinkResponse(AddChannelLinkResponse&& from) noexcept
+    : AddChannelLinkResponse() {
+    *this = ::std::move(from);
+  }
+
+  inline AddChannelLinkResponse& operator=(AddChannelLinkResponse&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const AddChannelLinkResponse& default_instance();
+
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const AddChannelLinkResponse* internal_default_instance() {
+    return reinterpret_cast<const AddChannelLinkResponse*>(
+               &_AddChannelLinkResponse_default_instance_);
+  }
+  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+    15;
+
+  void Swap(AddChannelLinkResponse* other);
+  friend void swap(AddChannelLinkResponse& a, AddChannelLinkResponse& b) {
+    a.Swap(&b);
+  }
+
+  // implements Message ----------------------------------------------
+
+  inline AddChannelLinkResponse* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  AddChannelLinkResponse* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const AddChannelLinkResponse& from);
+  void MergeFrom(const AddChannelLinkResponse& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(AddChannelLinkResponse* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // bool success = 1;
+  void clear_success();
+  static const int kSuccessFieldNumber = 1;
+  bool success() const;
+  void set_success(bool value);
+
+  // @@protoc_insertion_point(class_scope:ModeliRpc.AddChannelLinkResponse)
+ private:
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  bool success_;
+  mutable int _cached_size_;
+  friend struct ::protobuf_ModeliRpc_2eproto::TableStruct;
+  friend void ::protobuf_ModeliRpc_2eproto::InitDefaultsAddChannelLinkResponseImpl();
+};
+// -------------------------------------------------------------------
+
+class RemoveChannelLinkRequest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:ModeliRpc.RemoveChannelLinkRequest) */ {
+ public:
+  RemoveChannelLinkRequest();
+  virtual ~RemoveChannelLinkRequest();
+
+  RemoveChannelLinkRequest(const RemoveChannelLinkRequest& from);
+
+  inline RemoveChannelLinkRequest& operator=(const RemoveChannelLinkRequest& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  #if LANG_CXX11
+  RemoveChannelLinkRequest(RemoveChannelLinkRequest&& from) noexcept
+    : RemoveChannelLinkRequest() {
+    *this = ::std::move(from);
+  }
+
+  inline RemoveChannelLinkRequest& operator=(RemoveChannelLinkRequest&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const RemoveChannelLinkRequest& default_instance();
+
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const RemoveChannelLinkRequest* internal_default_instance() {
+    return reinterpret_cast<const RemoveChannelLinkRequest*>(
+               &_RemoveChannelLinkRequest_default_instance_);
+  }
+  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+    16;
+
+  void Swap(RemoveChannelLinkRequest* other);
+  friend void swap(RemoveChannelLinkRequest& a, RemoveChannelLinkRequest& b) {
+    a.Swap(&b);
+  }
+
+  // implements Message ----------------------------------------------
+
+  inline RemoveChannelLinkRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  RemoveChannelLinkRequest* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const RemoveChannelLinkRequest& from);
+  void MergeFrom(const RemoveChannelLinkRequest& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(RemoveChannelLinkRequest* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // .ModeliRpc.ChannelLink channel_link = 1;
+  bool has_channel_link() const;
+  void clear_channel_link();
+  static const int kChannelLinkFieldNumber = 1;
+  const ::ModeliRpc::ChannelLink& channel_link() const;
+  ::ModeliRpc::ChannelLink* release_channel_link();
+  ::ModeliRpc::ChannelLink* mutable_channel_link();
+  void set_allocated_channel_link(::ModeliRpc::ChannelLink* channel_link);
+
+  // @@protoc_insertion_point(class_scope:ModeliRpc.RemoveChannelLinkRequest)
+ private:
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::ModeliRpc::ChannelLink* channel_link_;
+  mutable int _cached_size_;
+  friend struct ::protobuf_ModeliRpc_2eproto::TableStruct;
+  friend void ::protobuf_ModeliRpc_2eproto::InitDefaultsRemoveChannelLinkRequestImpl();
+};
+// -------------------------------------------------------------------
+
+class RemoveChannelLinkResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:ModeliRpc.RemoveChannelLinkResponse) */ {
+ public:
+  RemoveChannelLinkResponse();
+  virtual ~RemoveChannelLinkResponse();
+
+  RemoveChannelLinkResponse(const RemoveChannelLinkResponse& from);
+
+  inline RemoveChannelLinkResponse& operator=(const RemoveChannelLinkResponse& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  #if LANG_CXX11
+  RemoveChannelLinkResponse(RemoveChannelLinkResponse&& from) noexcept
+    : RemoveChannelLinkResponse() {
+    *this = ::std::move(from);
+  }
+
+  inline RemoveChannelLinkResponse& operator=(RemoveChannelLinkResponse&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const RemoveChannelLinkResponse& default_instance();
+
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const RemoveChannelLinkResponse* internal_default_instance() {
+    return reinterpret_cast<const RemoveChannelLinkResponse*>(
+               &_RemoveChannelLinkResponse_default_instance_);
+  }
+  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+    17;
+
+  void Swap(RemoveChannelLinkResponse* other);
+  friend void swap(RemoveChannelLinkResponse& a, RemoveChannelLinkResponse& b) {
+    a.Swap(&b);
+  }
+
+  // implements Message ----------------------------------------------
+
+  inline RemoveChannelLinkResponse* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  RemoveChannelLinkResponse* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const RemoveChannelLinkResponse& from);
+  void MergeFrom(const RemoveChannelLinkResponse& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(RemoveChannelLinkResponse* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // bool success = 1;
+  void clear_success();
+  static const int kSuccessFieldNumber = 1;
+  bool success() const;
+  void set_success(bool value);
+
+  // @@protoc_insertion_point(class_scope:ModeliRpc.RemoveChannelLinkResponse)
+ private:
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  bool success_;
+  mutable int _cached_size_;
+  friend struct ::protobuf_ModeliRpc_2eproto::TableStruct;
+  friend void ::protobuf_ModeliRpc_2eproto::InitDefaultsRemoveChannelLinkResponseImpl();
+};
+// -------------------------------------------------------------------
+
+class SetValuesReqest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:ModeliRpc.SetValuesReqest) */ {
+ public:
+  SetValuesReqest();
+  virtual ~SetValuesReqest();
+
+  SetValuesReqest(const SetValuesReqest& from);
+
+  inline SetValuesReqest& operator=(const SetValuesReqest& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  #if LANG_CXX11
+  SetValuesReqest(SetValuesReqest&& from) noexcept
+    : SetValuesReqest() {
+    *this = ::std::move(from);
+  }
+
+  inline SetValuesReqest& operator=(SetValuesReqest&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const SetValuesReqest& default_instance();
+
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const SetValuesReqest* internal_default_instance() {
+    return reinterpret_cast<const SetValuesReqest*>(
+               &_SetValuesReqest_default_instance_);
+  }
+  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+    18;
+
+  void Swap(SetValuesReqest* other);
+  friend void swap(SetValuesReqest& a, SetValuesReqest& b) {
+    a.Swap(&b);
+  }
+
+  // implements Message ----------------------------------------------
+
+  inline SetValuesReqest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  SetValuesReqest* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const SetValuesReqest& from);
+  void MergeFrom(const SetValuesReqest& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(SetValuesReqest* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // .ModeliRpc.Values values = 1;
+  bool has_values() const;
+  void clear_values();
+  static const int kValuesFieldNumber = 1;
+  const ::ModeliRpc::Values& values() const;
+  ::ModeliRpc::Values* release_values();
+  ::ModeliRpc::Values* mutable_values();
+  void set_allocated_values(::ModeliRpc::Values* values);
+
+  // @@protoc_insertion_point(class_scope:ModeliRpc.SetValuesReqest)
+ private:
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::ModeliRpc::Values* values_;
+  mutable int _cached_size_;
+  friend struct ::protobuf_ModeliRpc_2eproto::TableStruct;
+  friend void ::protobuf_ModeliRpc_2eproto::InitDefaultsSetValuesReqestImpl();
+};
+// -------------------------------------------------------------------
+
+class SetValuesResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:ModeliRpc.SetValuesResponse) */ {
+ public:
+  SetValuesResponse();
+  virtual ~SetValuesResponse();
+
+  SetValuesResponse(const SetValuesResponse& from);
+
+  inline SetValuesResponse& operator=(const SetValuesResponse& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  #if LANG_CXX11
+  SetValuesResponse(SetValuesResponse&& from) noexcept
+    : SetValuesResponse() {
+    *this = ::std::move(from);
+  }
+
+  inline SetValuesResponse& operator=(SetValuesResponse&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const SetValuesResponse& default_instance();
+
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const SetValuesResponse* internal_default_instance() {
+    return reinterpret_cast<const SetValuesResponse*>(
+               &_SetValuesResponse_default_instance_);
+  }
+  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+    19;
+
+  void Swap(SetValuesResponse* other);
+  friend void swap(SetValuesResponse& a, SetValuesResponse& b) {
+    a.Swap(&b);
+  }
+
+  // implements Message ----------------------------------------------
+
+  inline SetValuesResponse* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  SetValuesResponse* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const SetValuesResponse& from);
+  void MergeFrom(const SetValuesResponse& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(SetValuesResponse* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // .ModeliRpc.Fmi2Status status = 1;
+  void clear_status();
+  static const int kStatusFieldNumber = 1;
+  ::ModeliRpc::Fmi2Status status() const;
+  void set_status(::ModeliRpc::Fmi2Status value);
+
+  // @@protoc_insertion_point(class_scope:ModeliRpc.SetValuesResponse)
+ private:
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  int status_;
+  mutable int _cached_size_;
+  friend struct ::protobuf_ModeliRpc_2eproto::TableStruct;
+  friend void ::protobuf_ModeliRpc_2eproto::InitDefaultsSetValuesResponseImpl();
+};
+// -------------------------------------------------------------------
+
+class NewValuesRequest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:ModeliRpc.NewValuesRequest) */ {
+ public:
+  NewValuesRequest();
+  virtual ~NewValuesRequest();
+
+  NewValuesRequest(const NewValuesRequest& from);
+
+  inline NewValuesRequest& operator=(const NewValuesRequest& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  #if LANG_CXX11
+  NewValuesRequest(NewValuesRequest&& from) noexcept
+    : NewValuesRequest() {
+    *this = ::std::move(from);
+  }
+
+  inline NewValuesRequest& operator=(NewValuesRequest&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const NewValuesRequest& default_instance();
+
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const NewValuesRequest* internal_default_instance() {
+    return reinterpret_cast<const NewValuesRequest*>(
+               &_NewValuesRequest_default_instance_);
+  }
+  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+    20;
+
+  void Swap(NewValuesRequest* other);
+  friend void swap(NewValuesRequest& a, NewValuesRequest& b) {
+    a.Swap(&b);
+  }
+
+  // implements Message ----------------------------------------------
+
+  inline NewValuesRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  NewValuesRequest* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const NewValuesRequest& from);
+  void MergeFrom(const NewValuesRequest& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(NewValuesRequest* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // @@protoc_insertion_point(class_scope:ModeliRpc.NewValuesRequest)
+ private:
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  mutable int _cached_size_;
+  friend struct ::protobuf_ModeliRpc_2eproto::TableStruct;
+  friend void ::protobuf_ModeliRpc_2eproto::InitDefaultsNewValuesRequestImpl();
+};
+// -------------------------------------------------------------------
+
+class NewValuesResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:ModeliRpc.NewValuesResponse) */ {
+ public:
+  NewValuesResponse();
+  virtual ~NewValuesResponse();
+
+  NewValuesResponse(const NewValuesResponse& from);
+
+  inline NewValuesResponse& operator=(const NewValuesResponse& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  #if LANG_CXX11
+  NewValuesResponse(NewValuesResponse&& from) noexcept
+    : NewValuesResponse() {
+    *this = ::std::move(from);
+  }
+
+  inline NewValuesResponse& operator=(NewValuesResponse&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const NewValuesResponse& default_instance();
+
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const NewValuesResponse* internal_default_instance() {
+    return reinterpret_cast<const NewValuesResponse*>(
+               &_NewValuesResponse_default_instance_);
+  }
+  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+    21;
+
+  void Swap(NewValuesResponse* other);
+  friend void swap(NewValuesResponse& a, NewValuesResponse& b) {
+    a.Swap(&b);
+  }
+
+  // implements Message ----------------------------------------------
+
+  inline NewValuesResponse* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  NewValuesResponse* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const NewValuesResponse& from);
+  void MergeFrom(const NewValuesResponse& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(NewValuesResponse* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // .ModeliRpc.Values values = 1;
+  bool has_values() const;
+  void clear_values();
+  static const int kValuesFieldNumber = 1;
+  const ::ModeliRpc::Values& values() const;
+  ::ModeliRpc::Values* release_values();
+  ::ModeliRpc::Values* mutable_values();
+  void set_allocated_values(::ModeliRpc::Values* values);
+
+  // @@protoc_insertion_point(class_scope:ModeliRpc.NewValuesResponse)
+ private:
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::ModeliRpc::Values* values_;
+  mutable int _cached_size_;
+  friend struct ::protobuf_ModeliRpc_2eproto::TableStruct;
+  friend void ::protobuf_ModeliRpc_2eproto::InitDefaultsNewValuesResponseImpl();
+};
+// -------------------------------------------------------------------
+
+class LogRequest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:ModeliRpc.LogRequest) */ {
+ public:
+  LogRequest();
+  virtual ~LogRequest();
+
+  LogRequest(const LogRequest& from);
+
+  inline LogRequest& operator=(const LogRequest& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  #if LANG_CXX11
+  LogRequest(LogRequest&& from) noexcept
+    : LogRequest() {
+    *this = ::std::move(from);
+  }
+
+  inline LogRequest& operator=(LogRequest&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const LogRequest& default_instance();
+
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const LogRequest* internal_default_instance() {
+    return reinterpret_cast<const LogRequest*>(
+               &_LogRequest_default_instance_);
+  }
+  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+    22;
+
+  void Swap(LogRequest* other);
+  friend void swap(LogRequest& a, LogRequest& b) {
+    a.Swap(&b);
+  }
+
+  // implements Message ----------------------------------------------
+
+  inline LogRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  LogRequest* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const LogRequest& from);
+  void MergeFrom(const LogRequest& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(LogRequest* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // @@protoc_insertion_point(class_scope:ModeliRpc.LogRequest)
+ private:
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  mutable int _cached_size_;
+  friend struct ::protobuf_ModeliRpc_2eproto::TableStruct;
+  friend void ::protobuf_ModeliRpc_2eproto::InitDefaultsLogRequestImpl();
+};
+// -------------------------------------------------------------------
+
+class LogResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:ModeliRpc.LogResponse) */ {
+ public:
+  LogResponse();
+  virtual ~LogResponse();
+
+  LogResponse(const LogResponse& from);
+
+  inline LogResponse& operator=(const LogResponse& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  #if LANG_CXX11
+  LogResponse(LogResponse&& from) noexcept
+    : LogResponse() {
+    *this = ::std::move(from);
+  }
+
+  inline LogResponse& operator=(LogResponse&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const LogResponse& default_instance();
+
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const LogResponse* internal_default_instance() {
+    return reinterpret_cast<const LogResponse*>(
+               &_LogResponse_default_instance_);
+  }
+  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+    23;
+
+  void Swap(LogResponse* other);
+  friend void swap(LogResponse& a, LogResponse& b) {
+    a.Swap(&b);
+  }
+
+  // implements Message ----------------------------------------------
+
+  inline LogResponse* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  LogResponse* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const LogResponse& from);
+  void MergeFrom(const LogResponse& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(LogResponse* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // string instance_name = 1;
+  void clear_instance_name();
+  static const int kInstanceNameFieldNumber = 1;
+  const ::std::string& instance_name() const;
+  void set_instance_name(const ::std::string& value);
+  #if LANG_CXX11
+  void set_instance_name(::std::string&& value);
+  #endif
+  void set_instance_name(const char* value);
+  void set_instance_name(const char* value, size_t size);
+  ::std::string* mutable_instance_name();
+  ::std::string* release_instance_name();
+  void set_allocated_instance_name(::std::string* instance_name);
+
+  // string message = 3;
+  void clear_message();
+  static const int kMessageFieldNumber = 3;
+  const ::std::string& message() const;
+  void set_message(const ::std::string& value);
+  #if LANG_CXX11
+  void set_message(::std::string&& value);
+  #endif
+  void set_message(const char* value);
+  void set_message(const char* value, size_t size);
+  ::std::string* mutable_message();
+  ::std::string* release_message();
+  void set_allocated_message(::std::string* message);
+
+  // .ModeliRpc.Fmi2Status status = 2;
+  void clear_status();
+  static const int kStatusFieldNumber = 2;
+  ::ModeliRpc::Fmi2Status status() const;
+  void set_status(::ModeliRpc::Fmi2Status value);
+
+  // @@protoc_insertion_point(class_scope:ModeliRpc.LogResponse)
+ private:
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::ArenaStringPtr instance_name_;
+  ::google::protobuf::internal::ArenaStringPtr message_;
+  int status_;
+  mutable int _cached_size_;
+  friend struct ::protobuf_ModeliRpc_2eproto::TableStruct;
+  friend void ::protobuf_ModeliRpc_2eproto::InitDefaultsLogResponseImpl();
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#ifdef __GNUC__
+  #pragma GCC diagnostic push
+  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif  // __GNUC__
+// Values
+
+// string instance_name = 1;
+inline void Values::clear_instance_name() {
+  instance_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& Values::instance_name() const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.Values.instance_name)
+  return instance_name_.GetNoArena();
+}
+inline void Values::set_instance_name(const ::std::string& value) {
+  
+  instance_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:ModeliRpc.Values.instance_name)
+}
+#if LANG_CXX11
+inline void Values::set_instance_name(::std::string&& value) {
+  
+  instance_name_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:ModeliRpc.Values.instance_name)
+}
+#endif
+inline void Values::set_instance_name(const char* value) {
+  GOOGLE_DCHECK(value != NULL);
+  
+  instance_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:ModeliRpc.Values.instance_name)
+}
+inline void Values::set_instance_name(const char* value, size_t size) {
+  
+  instance_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:ModeliRpc.Values.instance_name)
+}
+inline ::std::string* Values::mutable_instance_name() {
+  
+  // @@protoc_insertion_point(field_mutable:ModeliRpc.Values.instance_name)
+  return instance_name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* Values::release_instance_name() {
+  // @@protoc_insertion_point(field_release:ModeliRpc.Values.instance_name)
+  
+  return instance_name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Values::set_allocated_instance_name(::std::string* instance_name) {
+  if (instance_name != NULL) {
+    
+  } else {
+    
+  }
+  instance_name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), instance_name);
+  // @@protoc_insertion_point(field_set_allocated:ModeliRpc.Values.instance_name)
+}
+
+// repeated uint32 int_vrs = 2;
+inline int Values::int_vrs_size() const {
+  return int_vrs_.size();
+}
+inline void Values::clear_int_vrs() {
+  int_vrs_.Clear();
+}
+inline ::google::protobuf::uint32 Values::int_vrs(int index) const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.Values.int_vrs)
+  return int_vrs_.Get(index);
+}
+inline void Values::set_int_vrs(int index, ::google::protobuf::uint32 value) {
+  int_vrs_.Set(index, value);
+  // @@protoc_insertion_point(field_set:ModeliRpc.Values.int_vrs)
+}
+inline void Values::add_int_vrs(::google::protobuf::uint32 value) {
+  int_vrs_.Add(value);
+  // @@protoc_insertion_point(field_add:ModeliRpc.Values.int_vrs)
+}
+inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
+Values::int_vrs() const {
+  // @@protoc_insertion_point(field_list:ModeliRpc.Values.int_vrs)
+  return int_vrs_;
+}
+inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
+Values::mutable_int_vrs() {
+  // @@protoc_insertion_point(field_mutable_list:ModeliRpc.Values.int_vrs)
+  return &int_vrs_;
+}
+
+// repeated int32 int_values = 3;
+inline int Values::int_values_size() const {
+  return int_values_.size();
+}
+inline void Values::clear_int_values() {
+  int_values_.Clear();
+}
+inline ::google::protobuf::int32 Values::int_values(int index) const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.Values.int_values)
+  return int_values_.Get(index);
+}
+inline void Values::set_int_values(int index, ::google::protobuf::int32 value) {
+  int_values_.Set(index, value);
+  // @@protoc_insertion_point(field_set:ModeliRpc.Values.int_values)
+}
+inline void Values::add_int_values(::google::protobuf::int32 value) {
+  int_values_.Add(value);
+  // @@protoc_insertion_point(field_add:ModeliRpc.Values.int_values)
+}
+inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
+Values::int_values() const {
+  // @@protoc_insertion_point(field_list:ModeliRpc.Values.int_values)
+  return int_values_;
+}
+inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
+Values::mutable_int_values() {
+  // @@protoc_insertion_point(field_mutable_list:ModeliRpc.Values.int_values)
+  return &int_values_;
+}
+
+// repeated uint32 real_vrs = 4;
+inline int Values::real_vrs_size() const {
+  return real_vrs_.size();
+}
+inline void Values::clear_real_vrs() {
+  real_vrs_.Clear();
+}
+inline ::google::protobuf::uint32 Values::real_vrs(int index) const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.Values.real_vrs)
+  return real_vrs_.Get(index);
+}
+inline void Values::set_real_vrs(int index, ::google::protobuf::uint32 value) {
+  real_vrs_.Set(index, value);
+  // @@protoc_insertion_point(field_set:ModeliRpc.Values.real_vrs)
+}
+inline void Values::add_real_vrs(::google::protobuf::uint32 value) {
+  real_vrs_.Add(value);
+  // @@protoc_insertion_point(field_add:ModeliRpc.Values.real_vrs)
+}
+inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
+Values::real_vrs() const {
+  // @@protoc_insertion_point(field_list:ModeliRpc.Values.real_vrs)
+  return real_vrs_;
+}
+inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
+Values::mutable_real_vrs() {
+  // @@protoc_insertion_point(field_mutable_list:ModeliRpc.Values.real_vrs)
+  return &real_vrs_;
+}
+
+// repeated double real_values = 5;
+inline int Values::real_values_size() const {
+  return real_values_.size();
+}
+inline void Values::clear_real_values() {
+  real_values_.Clear();
+}
+inline double Values::real_values(int index) const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.Values.real_values)
+  return real_values_.Get(index);
+}
+inline void Values::set_real_values(int index, double value) {
+  real_values_.Set(index, value);
+  // @@protoc_insertion_point(field_set:ModeliRpc.Values.real_values)
+}
+inline void Values::add_real_values(double value) {
+  real_values_.Add(value);
+  // @@protoc_insertion_point(field_add:ModeliRpc.Values.real_values)
+}
+inline const ::google::protobuf::RepeatedField< double >&
+Values::real_values() const {
+  // @@protoc_insertion_point(field_list:ModeliRpc.Values.real_values)
+  return real_values_;
+}
+inline ::google::protobuf::RepeatedField< double >*
+Values::mutable_real_values() {
+  // @@protoc_insertion_point(field_mutable_list:ModeliRpc.Values.real_values)
+  return &real_values_;
+}
+
+// repeated uint32 bool_vrs = 6;
+inline int Values::bool_vrs_size() const {
+  return bool_vrs_.size();
+}
+inline void Values::clear_bool_vrs() {
+  bool_vrs_.Clear();
+}
+inline ::google::protobuf::uint32 Values::bool_vrs(int index) const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.Values.bool_vrs)
+  return bool_vrs_.Get(index);
+}
+inline void Values::set_bool_vrs(int index, ::google::protobuf::uint32 value) {
+  bool_vrs_.Set(index, value);
+  // @@protoc_insertion_point(field_set:ModeliRpc.Values.bool_vrs)
+}
+inline void Values::add_bool_vrs(::google::protobuf::uint32 value) {
+  bool_vrs_.Add(value);
+  // @@protoc_insertion_point(field_add:ModeliRpc.Values.bool_vrs)
+}
+inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
+Values::bool_vrs() const {
+  // @@protoc_insertion_point(field_list:ModeliRpc.Values.bool_vrs)
+  return bool_vrs_;
+}
+inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
+Values::mutable_bool_vrs() {
+  // @@protoc_insertion_point(field_mutable_list:ModeliRpc.Values.bool_vrs)
+  return &bool_vrs_;
+}
+
+// repeated int32 bool_values = 7;
+inline int Values::bool_values_size() const {
+  return bool_values_.size();
+}
+inline void Values::clear_bool_values() {
+  bool_values_.Clear();
+}
+inline ::google::protobuf::int32 Values::bool_values(int index) const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.Values.bool_values)
+  return bool_values_.Get(index);
+}
+inline void Values::set_bool_values(int index, ::google::protobuf::int32 value) {
+  bool_values_.Set(index, value);
+  // @@protoc_insertion_point(field_set:ModeliRpc.Values.bool_values)
+}
+inline void Values::add_bool_values(::google::protobuf::int32 value) {
+  bool_values_.Add(value);
+  // @@protoc_insertion_point(field_add:ModeliRpc.Values.bool_values)
+}
+inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
+Values::bool_values() const {
+  // @@protoc_insertion_point(field_list:ModeliRpc.Values.bool_values)
+  return bool_values_;
+}
+inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
+Values::mutable_bool_values() {
+  // @@protoc_insertion_point(field_mutable_list:ModeliRpc.Values.bool_values)
+  return &bool_values_;
+}
+
+// repeated uint32 string_vrs = 8;
+inline int Values::string_vrs_size() const {
+  return string_vrs_.size();
+}
+inline void Values::clear_string_vrs() {
+  string_vrs_.Clear();
+}
+inline ::google::protobuf::uint32 Values::string_vrs(int index) const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.Values.string_vrs)
+  return string_vrs_.Get(index);
+}
+inline void Values::set_string_vrs(int index, ::google::protobuf::uint32 value) {
+  string_vrs_.Set(index, value);
+  // @@protoc_insertion_point(field_set:ModeliRpc.Values.string_vrs)
+}
+inline void Values::add_string_vrs(::google::protobuf::uint32 value) {
+  string_vrs_.Add(value);
+  // @@protoc_insertion_point(field_add:ModeliRpc.Values.string_vrs)
+}
+inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
+Values::string_vrs() const {
+  // @@protoc_insertion_point(field_list:ModeliRpc.Values.string_vrs)
+  return string_vrs_;
+}
+inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
+Values::mutable_string_vrs() {
+  // @@protoc_insertion_point(field_mutable_list:ModeliRpc.Values.string_vrs)
+  return &string_vrs_;
+}
+
+// repeated string string_values = 9;
+inline int Values::string_values_size() const {
+  return string_values_.size();
+}
+inline void Values::clear_string_values() {
+  string_values_.Clear();
+}
+inline const ::std::string& Values::string_values(int index) const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.Values.string_values)
+  return string_values_.Get(index);
+}
+inline ::std::string* Values::mutable_string_values(int index) {
+  // @@protoc_insertion_point(field_mutable:ModeliRpc.Values.string_values)
+  return string_values_.Mutable(index);
+}
+inline void Values::set_string_values(int index, const ::std::string& value) {
+  // @@protoc_insertion_point(field_set:ModeliRpc.Values.string_values)
+  string_values_.Mutable(index)->assign(value);
+}
+#if LANG_CXX11
+inline void Values::set_string_values(int index, ::std::string&& value) {
+  // @@protoc_insertion_point(field_set:ModeliRpc.Values.string_values)
+  string_values_.Mutable(index)->assign(std::move(value));
+}
+#endif
+inline void Values::set_string_values(int index, const char* value) {
+  GOOGLE_DCHECK(value != NULL);
+  string_values_.Mutable(index)->assign(value);
+  // @@protoc_insertion_point(field_set_char:ModeliRpc.Values.string_values)
+}
+inline void Values::set_string_values(int index, const char* value, size_t size) {
+  string_values_.Mutable(index)->assign(
+    reinterpret_cast<const char*>(value), size);
+  // @@protoc_insertion_point(field_set_pointer:ModeliRpc.Values.string_values)
+}
+inline ::std::string* Values::add_string_values() {
+  // @@protoc_insertion_point(field_add_mutable:ModeliRpc.Values.string_values)
+  return string_values_.Add();
+}
+inline void Values::add_string_values(const ::std::string& value) {
+  string_values_.Add()->assign(value);
+  // @@protoc_insertion_point(field_add:ModeliRpc.Values.string_values)
+}
+#if LANG_CXX11
+inline void Values::add_string_values(::std::string&& value) {
+  string_values_.Add(std::move(value));
+  // @@protoc_insertion_point(field_add:ModeliRpc.Values.string_values)
+}
+#endif
+inline void Values::add_string_values(const char* value) {
+  GOOGLE_DCHECK(value != NULL);
+  string_values_.Add()->assign(value);
+  // @@protoc_insertion_point(field_add_char:ModeliRpc.Values.string_values)
+}
+inline void Values::add_string_values(const char* value, size_t size) {
+  string_values_.Add()->assign(reinterpret_cast<const char*>(value), size);
+  // @@protoc_insertion_point(field_add_pointer:ModeliRpc.Values.string_values)
+}
+inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
+Values::string_values() const {
+  // @@protoc_insertion_point(field_list:ModeliRpc.Values.string_values)
+  return string_values_;
+}
+inline ::google::protobuf::RepeatedPtrField< ::std::string>*
+Values::mutable_string_values() {
+  // @@protoc_insertion_point(field_mutable_list:ModeliRpc.Values.string_values)
+  return &string_values_;
+}
+
+// -------------------------------------------------------------------
+
+// ChannelLink
+
+// string master_instance_name = 1;
+inline void ChannelLink::clear_master_instance_name() {
+  master_instance_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& ChannelLink::master_instance_name() const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.ChannelLink.master_instance_name)
+  return master_instance_name_.GetNoArena();
+}
+inline void ChannelLink::set_master_instance_name(const ::std::string& value) {
+  
+  master_instance_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:ModeliRpc.ChannelLink.master_instance_name)
+}
+#if LANG_CXX11
+inline void ChannelLink::set_master_instance_name(::std::string&& value) {
+  
+  master_instance_name_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:ModeliRpc.ChannelLink.master_instance_name)
+}
+#endif
+inline void ChannelLink::set_master_instance_name(const char* value) {
+  GOOGLE_DCHECK(value != NULL);
+  
+  master_instance_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:ModeliRpc.ChannelLink.master_instance_name)
+}
+inline void ChannelLink::set_master_instance_name(const char* value, size_t size) {
+  
+  master_instance_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:ModeliRpc.ChannelLink.master_instance_name)
+}
+inline ::std::string* ChannelLink::mutable_master_instance_name() {
+  
+  // @@protoc_insertion_point(field_mutable:ModeliRpc.ChannelLink.master_instance_name)
+  return master_instance_name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* ChannelLink::release_master_instance_name() {
+  // @@protoc_insertion_point(field_release:ModeliRpc.ChannelLink.master_instance_name)
+  
+  return master_instance_name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void ChannelLink::set_allocated_master_instance_name(::std::string* master_instance_name) {
+  if (master_instance_name != NULL) {
+    
+  } else {
+    
+  }
+  master_instance_name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), master_instance_name);
+  // @@protoc_insertion_point(field_set_allocated:ModeliRpc.ChannelLink.master_instance_name)
+}
+
+// string slave_instance_name = 2;
+inline void ChannelLink::clear_slave_instance_name() {
+  slave_instance_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& ChannelLink::slave_instance_name() const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.ChannelLink.slave_instance_name)
+  return slave_instance_name_.GetNoArena();
+}
+inline void ChannelLink::set_slave_instance_name(const ::std::string& value) {
+  
+  slave_instance_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:ModeliRpc.ChannelLink.slave_instance_name)
+}
+#if LANG_CXX11
+inline void ChannelLink::set_slave_instance_name(::std::string&& value) {
+  
+  slave_instance_name_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:ModeliRpc.ChannelLink.slave_instance_name)
+}
+#endif
+inline void ChannelLink::set_slave_instance_name(const char* value) {
+  GOOGLE_DCHECK(value != NULL);
+  
+  slave_instance_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:ModeliRpc.ChannelLink.slave_instance_name)
+}
+inline void ChannelLink::set_slave_instance_name(const char* value, size_t size) {
+  
+  slave_instance_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:ModeliRpc.ChannelLink.slave_instance_name)
+}
+inline ::std::string* ChannelLink::mutable_slave_instance_name() {
+  
+  // @@protoc_insertion_point(field_mutable:ModeliRpc.ChannelLink.slave_instance_name)
+  return slave_instance_name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* ChannelLink::release_slave_instance_name() {
+  // @@protoc_insertion_point(field_release:ModeliRpc.ChannelLink.slave_instance_name)
+  
+  return slave_instance_name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void ChannelLink::set_allocated_slave_instance_name(::std::string* slave_instance_name) {
+  if (slave_instance_name != NULL) {
+    
+  } else {
+    
+  }
+  slave_instance_name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), slave_instance_name);
+  // @@protoc_insertion_point(field_set_allocated:ModeliRpc.ChannelLink.slave_instance_name)
+}
+
+// uint32 master_vr = 3;
+inline void ChannelLink::clear_master_vr() {
+  master_vr_ = 0u;
+}
+inline ::google::protobuf::uint32 ChannelLink::master_vr() const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.ChannelLink.master_vr)
+  return master_vr_;
+}
+inline void ChannelLink::set_master_vr(::google::protobuf::uint32 value) {
+  
+  master_vr_ = value;
+  // @@protoc_insertion_point(field_set:ModeliRpc.ChannelLink.master_vr)
+}
+
+// uint32 slave_vr = 4;
+inline void ChannelLink::clear_slave_vr() {
+  slave_vr_ = 0u;
+}
+inline ::google::protobuf::uint32 ChannelLink::slave_vr() const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.ChannelLink.slave_vr)
+  return slave_vr_;
+}
+inline void ChannelLink::set_slave_vr(::google::protobuf::uint32 value) {
+  
+  slave_vr_ = value;
+  // @@protoc_insertion_point(field_set:ModeliRpc.ChannelLink.slave_vr)
+}
+
+// double factor = 5;
+inline void ChannelLink::clear_factor() {
+  factor_ = 0;
+}
+inline double ChannelLink::factor() const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.ChannelLink.factor)
+  return factor_;
+}
+inline void ChannelLink::set_factor(double value) {
+  
+  factor_ = value;
+  // @@protoc_insertion_point(field_set:ModeliRpc.ChannelLink.factor)
+}
+
+// double offset = 6;
+inline void ChannelLink::clear_offset() {
+  offset_ = 0;
+}
+inline double ChannelLink::offset() const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.ChannelLink.offset)
+  return offset_;
+}
+inline void ChannelLink::set_offset(double value) {
+  
+  offset_ = value;
+  // @@protoc_insertion_point(field_set:ModeliRpc.ChannelLink.offset)
+}
+
+// -------------------------------------------------------------------
+
+// PlayRequest
+
+// -------------------------------------------------------------------
+
+// PlayResponse
+
+// .ModeliRpc.Fmi2Status status = 1;
+inline void PlayResponse::clear_status() {
+  status_ = 0;
+}
+inline ::ModeliRpc::Fmi2Status PlayResponse::status() const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.PlayResponse.status)
+  return static_cast< ::ModeliRpc::Fmi2Status >(status_);
+}
+inline void PlayResponse::set_status(::ModeliRpc::Fmi2Status value) {
+  
+  status_ = value;
+  // @@protoc_insertion_point(field_set:ModeliRpc.PlayResponse.status)
+}
+
+// -------------------------------------------------------------------
+
+// PlayFastRequest
+
+// double time = 1;
+inline void PlayFastRequest::clear_time() {
+  time_ = 0;
+}
+inline double PlayFastRequest::time() const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.PlayFastRequest.time)
+  return time_;
+}
+inline void PlayFastRequest::set_time(double value) {
+  
+  time_ = value;
+  // @@protoc_insertion_point(field_set:ModeliRpc.PlayFastRequest.time)
+}
+
+// -------------------------------------------------------------------
+
+// PlayFastResponse
+
+// .ModeliRpc.Fmi2Status status = 1;
+inline void PlayFastResponse::clear_status() {
+  status_ = 0;
+}
+inline ::ModeliRpc::Fmi2Status PlayFastResponse::status() const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.PlayFastResponse.status)
+  return static_cast< ::ModeliRpc::Fmi2Status >(status_);
+}
+inline void PlayFastResponse::set_status(::ModeliRpc::Fmi2Status value) {
+  
+  status_ = value;
+  // @@protoc_insertion_point(field_set:ModeliRpc.PlayFastResponse.status)
+}
+
+// -------------------------------------------------------------------
+
+// PauseRequest
+
+// -------------------------------------------------------------------
+
+// PauseResponse
+
+// -------------------------------------------------------------------
+
+// StopRequest
+
+// -------------------------------------------------------------------
+
+// StopResponse
+
+// .ModeliRpc.Fmi2Status status = 1;
+inline void StopResponse::clear_status() {
+  status_ = 0;
+}
+inline ::ModeliRpc::Fmi2Status StopResponse::status() const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.StopResponse.status)
+  return static_cast< ::ModeliRpc::Fmi2Status >(status_);
+}
+inline void StopResponse::set_status(::ModeliRpc::Fmi2Status value) {
+  
+  status_ = value;
+  // @@protoc_insertion_point(field_set:ModeliRpc.StopResponse.status)
+}
+
+// -------------------------------------------------------------------
+
+// AddFmuRequest
+
+// string instance_name = 1;
+inline void AddFmuRequest::clear_instance_name() {
+  instance_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& AddFmuRequest::instance_name() const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.AddFmuRequest.instance_name)
+  return instance_name_.GetNoArena();
+}
+inline void AddFmuRequest::set_instance_name(const ::std::string& value) {
+  
+  instance_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:ModeliRpc.AddFmuRequest.instance_name)
+}
+#if LANG_CXX11
+inline void AddFmuRequest::set_instance_name(::std::string&& value) {
+  
+  instance_name_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:ModeliRpc.AddFmuRequest.instance_name)
+}
+#endif
+inline void AddFmuRequest::set_instance_name(const char* value) {
+  GOOGLE_DCHECK(value != NULL);
+  
+  instance_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:ModeliRpc.AddFmuRequest.instance_name)
+}
+inline void AddFmuRequest::set_instance_name(const char* value, size_t size) {
+  
+  instance_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:ModeliRpc.AddFmuRequest.instance_name)
+}
+inline ::std::string* AddFmuRequest::mutable_instance_name() {
+  
+  // @@protoc_insertion_point(field_mutable:ModeliRpc.AddFmuRequest.instance_name)
+  return instance_name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* AddFmuRequest::release_instance_name() {
+  // @@protoc_insertion_point(field_release:ModeliRpc.AddFmuRequest.instance_name)
+  
+  return instance_name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void AddFmuRequest::set_allocated_instance_name(::std::string* instance_name) {
+  if (instance_name != NULL) {
+    
+  } else {
+    
+  }
+  instance_name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), instance_name);
+  // @@protoc_insertion_point(field_set_allocated:ModeliRpc.AddFmuRequest.instance_name)
+}
+
+// bytes data = 2;
+inline void AddFmuRequest::clear_data() {
+  data_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& AddFmuRequest::data() const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.AddFmuRequest.data)
+  return data_.GetNoArena();
+}
+inline void AddFmuRequest::set_data(const ::std::string& value) {
+  
+  data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:ModeliRpc.AddFmuRequest.data)
+}
+#if LANG_CXX11
+inline void AddFmuRequest::set_data(::std::string&& value) {
+  
+  data_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:ModeliRpc.AddFmuRequest.data)
+}
+#endif
+inline void AddFmuRequest::set_data(const char* value) {
+  GOOGLE_DCHECK(value != NULL);
+  
+  data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:ModeliRpc.AddFmuRequest.data)
+}
+inline void AddFmuRequest::set_data(const void* value, size_t size) {
+  
+  data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:ModeliRpc.AddFmuRequest.data)
+}
+inline ::std::string* AddFmuRequest::mutable_data() {
+  
+  // @@protoc_insertion_point(field_mutable:ModeliRpc.AddFmuRequest.data)
+  return data_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* AddFmuRequest::release_data() {
+  // @@protoc_insertion_point(field_release:ModeliRpc.AddFmuRequest.data)
+  
+  return data_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void AddFmuRequest::set_allocated_data(::std::string* data) {
+  if (data != NULL) {
+    
+  } else {
+    
+  }
+  data_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), data);
+  // @@protoc_insertion_point(field_set_allocated:ModeliRpc.AddFmuRequest.data)
+}
+
+// -------------------------------------------------------------------
+
+// AddFmuResponse
+
+// bool success = 1;
+inline void AddFmuResponse::clear_success() {
+  success_ = false;
+}
+inline bool AddFmuResponse::success() const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.AddFmuResponse.success)
+  return success_;
+}
+inline void AddFmuResponse::set_success(bool value) {
+  
+  success_ = value;
+  // @@protoc_insertion_point(field_set:ModeliRpc.AddFmuResponse.success)
+}
+
+// -------------------------------------------------------------------
+
+// RemoveFmuRequest
+
+// string instance_name = 1;
+inline void RemoveFmuRequest::clear_instance_name() {
+  instance_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& RemoveFmuRequest::instance_name() const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.RemoveFmuRequest.instance_name)
+  return instance_name_.GetNoArena();
+}
+inline void RemoveFmuRequest::set_instance_name(const ::std::string& value) {
+  
+  instance_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:ModeliRpc.RemoveFmuRequest.instance_name)
+}
+#if LANG_CXX11
+inline void RemoveFmuRequest::set_instance_name(::std::string&& value) {
+  
+  instance_name_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:ModeliRpc.RemoveFmuRequest.instance_name)
+}
+#endif
+inline void RemoveFmuRequest::set_instance_name(const char* value) {
+  GOOGLE_DCHECK(value != NULL);
+  
+  instance_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:ModeliRpc.RemoveFmuRequest.instance_name)
+}
+inline void RemoveFmuRequest::set_instance_name(const char* value, size_t size) {
+  
+  instance_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:ModeliRpc.RemoveFmuRequest.instance_name)
+}
+inline ::std::string* RemoveFmuRequest::mutable_instance_name() {
+  
+  // @@protoc_insertion_point(field_mutable:ModeliRpc.RemoveFmuRequest.instance_name)
+  return instance_name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* RemoveFmuRequest::release_instance_name() {
+  // @@protoc_insertion_point(field_release:ModeliRpc.RemoveFmuRequest.instance_name)
+  
+  return instance_name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void RemoveFmuRequest::set_allocated_instance_name(::std::string* instance_name) {
+  if (instance_name != NULL) {
+    
+  } else {
+    
+  }
+  instance_name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), instance_name);
+  // @@protoc_insertion_point(field_set_allocated:ModeliRpc.RemoveFmuRequest.instance_name)
+}
+
+// -------------------------------------------------------------------
+
+// RemoveFmuResponse
+
+// bool success = 1;
+inline void RemoveFmuResponse::clear_success() {
+  success_ = false;
+}
+inline bool RemoveFmuResponse::success() const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.RemoveFmuResponse.success)
+  return success_;
+}
+inline void RemoveFmuResponse::set_success(bool value) {
+  
+  success_ = value;
+  // @@protoc_insertion_point(field_set:ModeliRpc.RemoveFmuResponse.success)
+}
+
+// -------------------------------------------------------------------
+
+// AddChannelLinkRequest
+
+// .ModeliRpc.ChannelLink channel_link = 1;
+inline bool AddChannelLinkRequest::has_channel_link() const {
+  return this != internal_default_instance() && channel_link_ != NULL;
+}
+inline void AddChannelLinkRequest::clear_channel_link() {
+  if (GetArenaNoVirtual() == NULL && channel_link_ != NULL) {
+    delete channel_link_;
+  }
+  channel_link_ = NULL;
+}
+inline const ::ModeliRpc::ChannelLink& AddChannelLinkRequest::channel_link() const {
+  const ::ModeliRpc::ChannelLink* p = channel_link_;
+  // @@protoc_insertion_point(field_get:ModeliRpc.AddChannelLinkRequest.channel_link)
+  return p != NULL ? *p : *reinterpret_cast<const ::ModeliRpc::ChannelLink*>(
+      &::ModeliRpc::_ChannelLink_default_instance_);
+}
+inline ::ModeliRpc::ChannelLink* AddChannelLinkRequest::release_channel_link() {
+  // @@protoc_insertion_point(field_release:ModeliRpc.AddChannelLinkRequest.channel_link)
+  
+  ::ModeliRpc::ChannelLink* temp = channel_link_;
+  channel_link_ = NULL;
+  return temp;
+}
+inline ::ModeliRpc::ChannelLink* AddChannelLinkRequest::mutable_channel_link() {
+  
+  if (channel_link_ == NULL) {
+    channel_link_ = new ::ModeliRpc::ChannelLink;
+  }
+  // @@protoc_insertion_point(field_mutable:ModeliRpc.AddChannelLinkRequest.channel_link)
+  return channel_link_;
+}
+inline void AddChannelLinkRequest::set_allocated_channel_link(::ModeliRpc::ChannelLink* channel_link) {
+  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
+  if (message_arena == NULL) {
+    delete channel_link_;
+  }
+  if (channel_link) {
+    ::google::protobuf::Arena* submessage_arena = NULL;
+    if (message_arena != submessage_arena) {
+      channel_link = ::google::protobuf::internal::GetOwnedMessage(
+          message_arena, channel_link, submessage_arena);
+    }
+    
+  } else {
+    
+  }
+  channel_link_ = channel_link;
+  // @@protoc_insertion_point(field_set_allocated:ModeliRpc.AddChannelLinkRequest.channel_link)
+}
+
+// -------------------------------------------------------------------
+
+// AddChannelLinkResponse
+
+// bool success = 1;
+inline void AddChannelLinkResponse::clear_success() {
+  success_ = false;
+}
+inline bool AddChannelLinkResponse::success() const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.AddChannelLinkResponse.success)
+  return success_;
+}
+inline void AddChannelLinkResponse::set_success(bool value) {
+  
+  success_ = value;
+  // @@protoc_insertion_point(field_set:ModeliRpc.AddChannelLinkResponse.success)
+}
+
+// -------------------------------------------------------------------
+
+// RemoveChannelLinkRequest
+
+// .ModeliRpc.ChannelLink channel_link = 1;
+inline bool RemoveChannelLinkRequest::has_channel_link() const {
+  return this != internal_default_instance() && channel_link_ != NULL;
+}
+inline void RemoveChannelLinkRequest::clear_channel_link() {
+  if (GetArenaNoVirtual() == NULL && channel_link_ != NULL) {
+    delete channel_link_;
+  }
+  channel_link_ = NULL;
+}
+inline const ::ModeliRpc::ChannelLink& RemoveChannelLinkRequest::channel_link() const {
+  const ::ModeliRpc::ChannelLink* p = channel_link_;
+  // @@protoc_insertion_point(field_get:ModeliRpc.RemoveChannelLinkRequest.channel_link)
+  return p != NULL ? *p : *reinterpret_cast<const ::ModeliRpc::ChannelLink*>(
+      &::ModeliRpc::_ChannelLink_default_instance_);
+}
+inline ::ModeliRpc::ChannelLink* RemoveChannelLinkRequest::release_channel_link() {
+  // @@protoc_insertion_point(field_release:ModeliRpc.RemoveChannelLinkRequest.channel_link)
+  
+  ::ModeliRpc::ChannelLink* temp = channel_link_;
+  channel_link_ = NULL;
+  return temp;
+}
+inline ::ModeliRpc::ChannelLink* RemoveChannelLinkRequest::mutable_channel_link() {
+  
+  if (channel_link_ == NULL) {
+    channel_link_ = new ::ModeliRpc::ChannelLink;
+  }
+  // @@protoc_insertion_point(field_mutable:ModeliRpc.RemoveChannelLinkRequest.channel_link)
+  return channel_link_;
+}
+inline void RemoveChannelLinkRequest::set_allocated_channel_link(::ModeliRpc::ChannelLink* channel_link) {
+  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
+  if (message_arena == NULL) {
+    delete channel_link_;
+  }
+  if (channel_link) {
+    ::google::protobuf::Arena* submessage_arena = NULL;
+    if (message_arena != submessage_arena) {
+      channel_link = ::google::protobuf::internal::GetOwnedMessage(
+          message_arena, channel_link, submessage_arena);
+    }
+    
+  } else {
+    
+  }
+  channel_link_ = channel_link;
+  // @@protoc_insertion_point(field_set_allocated:ModeliRpc.RemoveChannelLinkRequest.channel_link)
+}
+
+// -------------------------------------------------------------------
+
+// RemoveChannelLinkResponse
+
+// bool success = 1;
+inline void RemoveChannelLinkResponse::clear_success() {
+  success_ = false;
+}
+inline bool RemoveChannelLinkResponse::success() const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.RemoveChannelLinkResponse.success)
+  return success_;
+}
+inline void RemoveChannelLinkResponse::set_success(bool value) {
+  
+  success_ = value;
+  // @@protoc_insertion_point(field_set:ModeliRpc.RemoveChannelLinkResponse.success)
+}
+
+// -------------------------------------------------------------------
+
+// SetValuesReqest
+
+// .ModeliRpc.Values values = 1;
+inline bool SetValuesReqest::has_values() const {
+  return this != internal_default_instance() && values_ != NULL;
+}
+inline void SetValuesReqest::clear_values() {
+  if (GetArenaNoVirtual() == NULL && values_ != NULL) {
+    delete values_;
+  }
+  values_ = NULL;
+}
+inline const ::ModeliRpc::Values& SetValuesReqest::values() const {
+  const ::ModeliRpc::Values* p = values_;
+  // @@protoc_insertion_point(field_get:ModeliRpc.SetValuesReqest.values)
+  return p != NULL ? *p : *reinterpret_cast<const ::ModeliRpc::Values*>(
+      &::ModeliRpc::_Values_default_instance_);
+}
+inline ::ModeliRpc::Values* SetValuesReqest::release_values() {
+  // @@protoc_insertion_point(field_release:ModeliRpc.SetValuesReqest.values)
+  
+  ::ModeliRpc::Values* temp = values_;
+  values_ = NULL;
+  return temp;
+}
+inline ::ModeliRpc::Values* SetValuesReqest::mutable_values() {
+  
+  if (values_ == NULL) {
+    values_ = new ::ModeliRpc::Values;
+  }
+  // @@protoc_insertion_point(field_mutable:ModeliRpc.SetValuesReqest.values)
+  return values_;
+}
+inline void SetValuesReqest::set_allocated_values(::ModeliRpc::Values* values) {
+  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
+  if (message_arena == NULL) {
+    delete values_;
+  }
+  if (values) {
+    ::google::protobuf::Arena* submessage_arena = NULL;
+    if (message_arena != submessage_arena) {
+      values = ::google::protobuf::internal::GetOwnedMessage(
+          message_arena, values, submessage_arena);
+    }
+    
+  } else {
+    
+  }
+  values_ = values;
+  // @@protoc_insertion_point(field_set_allocated:ModeliRpc.SetValuesReqest.values)
+}
+
+// -------------------------------------------------------------------
+
+// SetValuesResponse
+
+// .ModeliRpc.Fmi2Status status = 1;
+inline void SetValuesResponse::clear_status() {
+  status_ = 0;
+}
+inline ::ModeliRpc::Fmi2Status SetValuesResponse::status() const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.SetValuesResponse.status)
+  return static_cast< ::ModeliRpc::Fmi2Status >(status_);
+}
+inline void SetValuesResponse::set_status(::ModeliRpc::Fmi2Status value) {
+  
+  status_ = value;
+  // @@protoc_insertion_point(field_set:ModeliRpc.SetValuesResponse.status)
+}
+
+// -------------------------------------------------------------------
+
+// NewValuesRequest
+
+// -------------------------------------------------------------------
+
+// NewValuesResponse
+
+// .ModeliRpc.Values values = 1;
+inline bool NewValuesResponse::has_values() const {
+  return this != internal_default_instance() && values_ != NULL;
+}
+inline void NewValuesResponse::clear_values() {
+  if (GetArenaNoVirtual() == NULL && values_ != NULL) {
+    delete values_;
+  }
+  values_ = NULL;
+}
+inline const ::ModeliRpc::Values& NewValuesResponse::values() const {
+  const ::ModeliRpc::Values* p = values_;
+  // @@protoc_insertion_point(field_get:ModeliRpc.NewValuesResponse.values)
+  return p != NULL ? *p : *reinterpret_cast<const ::ModeliRpc::Values*>(
+      &::ModeliRpc::_Values_default_instance_);
+}
+inline ::ModeliRpc::Values* NewValuesResponse::release_values() {
+  // @@protoc_insertion_point(field_release:ModeliRpc.NewValuesResponse.values)
+  
+  ::ModeliRpc::Values* temp = values_;
+  values_ = NULL;
+  return temp;
+}
+inline ::ModeliRpc::Values* NewValuesResponse::mutable_values() {
+  
+  if (values_ == NULL) {
+    values_ = new ::ModeliRpc::Values;
+  }
+  // @@protoc_insertion_point(field_mutable:ModeliRpc.NewValuesResponse.values)
+  return values_;
+}
+inline void NewValuesResponse::set_allocated_values(::ModeliRpc::Values* values) {
+  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
+  if (message_arena == NULL) {
+    delete values_;
+  }
+  if (values) {
+    ::google::protobuf::Arena* submessage_arena = NULL;
+    if (message_arena != submessage_arena) {
+      values = ::google::protobuf::internal::GetOwnedMessage(
+          message_arena, values, submessage_arena);
+    }
+    
+  } else {
+    
+  }
+  values_ = values;
+  // @@protoc_insertion_point(field_set_allocated:ModeliRpc.NewValuesResponse.values)
+}
+
+// -------------------------------------------------------------------
+
+// LogRequest
+
+// -------------------------------------------------------------------
+
+// LogResponse
+
+// string instance_name = 1;
+inline void LogResponse::clear_instance_name() {
+  instance_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& LogResponse::instance_name() const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.LogResponse.instance_name)
+  return instance_name_.GetNoArena();
+}
+inline void LogResponse::set_instance_name(const ::std::string& value) {
+  
+  instance_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:ModeliRpc.LogResponse.instance_name)
+}
+#if LANG_CXX11
+inline void LogResponse::set_instance_name(::std::string&& value) {
+  
+  instance_name_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:ModeliRpc.LogResponse.instance_name)
+}
+#endif
+inline void LogResponse::set_instance_name(const char* value) {
+  GOOGLE_DCHECK(value != NULL);
+  
+  instance_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:ModeliRpc.LogResponse.instance_name)
+}
+inline void LogResponse::set_instance_name(const char* value, size_t size) {
+  
+  instance_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:ModeliRpc.LogResponse.instance_name)
+}
+inline ::std::string* LogResponse::mutable_instance_name() {
+  
+  // @@protoc_insertion_point(field_mutable:ModeliRpc.LogResponse.instance_name)
+  return instance_name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* LogResponse::release_instance_name() {
+  // @@protoc_insertion_point(field_release:ModeliRpc.LogResponse.instance_name)
+  
+  return instance_name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void LogResponse::set_allocated_instance_name(::std::string* instance_name) {
+  if (instance_name != NULL) {
+    
+  } else {
+    
+  }
+  instance_name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), instance_name);
+  // @@protoc_insertion_point(field_set_allocated:ModeliRpc.LogResponse.instance_name)
+}
+
+// .ModeliRpc.Fmi2Status status = 2;
+inline void LogResponse::clear_status() {
+  status_ = 0;
+}
+inline ::ModeliRpc::Fmi2Status LogResponse::status() const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.LogResponse.status)
+  return static_cast< ::ModeliRpc::Fmi2Status >(status_);
+}
+inline void LogResponse::set_status(::ModeliRpc::Fmi2Status value) {
+  
+  status_ = value;
+  // @@protoc_insertion_point(field_set:ModeliRpc.LogResponse.status)
+}
+
+// string message = 3;
+inline void LogResponse::clear_message() {
+  message_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& LogResponse::message() const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.LogResponse.message)
+  return message_.GetNoArena();
+}
+inline void LogResponse::set_message(const ::std::string& value) {
+  
+  message_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:ModeliRpc.LogResponse.message)
+}
+#if LANG_CXX11
+inline void LogResponse::set_message(::std::string&& value) {
+  
+  message_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:ModeliRpc.LogResponse.message)
+}
+#endif
+inline void LogResponse::set_message(const char* value) {
+  GOOGLE_DCHECK(value != NULL);
+  
+  message_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:ModeliRpc.LogResponse.message)
+}
+inline void LogResponse::set_message(const char* value, size_t size) {
+  
+  message_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:ModeliRpc.LogResponse.message)
+}
+inline ::std::string* LogResponse::mutable_message() {
+  
+  // @@protoc_insertion_point(field_mutable:ModeliRpc.LogResponse.message)
+  return message_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* LogResponse::release_message() {
+  // @@protoc_insertion_point(field_release:ModeliRpc.LogResponse.message)
+  
+  return message_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void LogResponse::set_allocated_message(::std::string* message) {
+  if (message != NULL) {
+    
+  } else {
+    
+  }
+  message_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), message);
+  // @@protoc_insertion_point(field_set_allocated:ModeliRpc.LogResponse.message)
+}
+
+#ifdef __GNUC__
+  #pragma GCC diagnostic pop
+#endif  // __GNUC__
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+
+// @@protoc_insertion_point(namespace_scope)
+
+}  // namespace ModeliRpc
+
+namespace google {
+namespace protobuf {
+
+template <> struct is_proto_enum< ::ModeliRpc::Fmi2Status> : ::google::protobuf::internal::true_type {};
+template <>
+inline const EnumDescriptor* GetEnumDescriptor< ::ModeliRpc::Fmi2Status>() {
+  return ::ModeliRpc::Fmi2Status_descriptor();
+}
+
+}  // namespace protobuf
+}  // namespace google
+
+// @@protoc_insertion_point(global_scope)
+
+#endif  // PROTOBUF_ModeliRpc_2eproto__INCLUDED
diff --git a/ModeliRpc_Cs/ModeliRpc.cs b/ModeliRpc_Cs/ModeliRpc.cs
new file mode 100644
index 0000000000000000000000000000000000000000..b3991380cff6172cf1d1c032b611110a844c2524
--- /dev/null
+++ b/ModeliRpc_Cs/ModeliRpc.cs
@@ -0,0 +1,3194 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: ModeliRpc.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.Protobuf;
+using pbc = global::Google.Protobuf.Collections;
+using pbr = global::Google.Protobuf.Reflection;
+using scg = global::System.Collections.Generic;
+namespace ModeliRpc {
+
+  /// <summary>Holder for reflection information generated from ModeliRpc.proto</summary>
+  public static partial class ModeliRpcReflection {
+
+    #region Descriptor
+    /// <summary>File descriptor for ModeliRpc.proto</summary>
+    public static pbr::FileDescriptor Descriptor {
+      get { return descriptor; }
+    }
+    private static pbr::FileDescriptor descriptor;
+
+    static ModeliRpcReflection() {
+      byte[] descriptorData = global::System.Convert.FromBase64String(
+          string.Concat(
+            "Cg9Nb2RlbGlScGMucHJvdG8SCU1vZGVsaVJwYyK9AQoGVmFsdWVzEhUKDWlu",
+            "c3RhbmNlX25hbWUYASABKAkSDwoHaW50X3ZycxgCIAMoDRISCgppbnRfdmFs",
+            "dWVzGAMgAygFEhAKCHJlYWxfdnJzGAQgAygNEhMKC3JlYWxfdmFsdWVzGAUg",
+            "AygBEhAKCGJvb2xfdnJzGAYgAygNEhMKC2Jvb2xfdmFsdWVzGAcgAygFEhIK",
+            "CnN0cmluZ192cnMYCCADKA0SFQoNc3RyaW5nX3ZhbHVlcxgJIAMoCSKNAQoL",
+            "Q2hhbm5lbExpbmsSHAoUbWFzdGVyX2luc3RhbmNlX25hbWUYASABKAkSGwoT",
+            "c2xhdmVfaW5zdGFuY2VfbmFtZRgCIAEoCRIRCgltYXN0ZXJfdnIYAyABKA0S",
+            "EAoIc2xhdmVfdnIYBCABKA0SDgoGZmFjdG9yGAUgASgBEg4KBm9mZnNldBgG",
+            "IAEoASINCgtQbGF5UmVxdWVzdCI1CgxQbGF5UmVzcG9uc2USJQoGc3RhdHVz",
+            "GAEgASgOMhUuTW9kZWxpUnBjLkZtaTJTdGF0dXMiHwoPUGxheUZhc3RSZXF1",
+            "ZXN0EgwKBHRpbWUYASABKAEiOQoQUGxheUZhc3RSZXNwb25zZRIlCgZzdGF0",
+            "dXMYASABKA4yFS5Nb2RlbGlScGMuRm1pMlN0YXR1cyIOCgxQYXVzZVJlcXVl",
+            "c3QiDwoNUGF1c2VSZXNwb25zZSINCgtTdG9wUmVxdWVzdCI1CgxTdG9wUmVz",
+            "cG9uc2USJQoGc3RhdHVzGAEgASgOMhUuTW9kZWxpUnBjLkZtaTJTdGF0dXMi",
+            "NAoNQWRkRm11UmVxdWVzdBIVCg1pbnN0YW5jZV9uYW1lGAEgASgJEgwKBGRh",
+            "dGEYAiABKAwiIQoOQWRkRm11UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIp",
+            "ChBSZW1vdmVGbXVSZXF1ZXN0EhUKDWluc3RhbmNlX25hbWUYASABKAkiJAoR",
+            "UmVtb3ZlRm11UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCJFChVBZGRDaGFu",
+            "bmVsTGlua1JlcXVlc3QSLAoMY2hhbm5lbF9saW5rGAEgASgLMhYuTW9kZWxp",
+            "UnBjLkNoYW5uZWxMaW5rIikKFkFkZENoYW5uZWxMaW5rUmVzcG9uc2USDwoH",
+            "c3VjY2VzcxgBIAEoCCJIChhSZW1vdmVDaGFubmVsTGlua1JlcXVlc3QSLAoM",
+            "Y2hhbm5lbF9saW5rGAEgASgLMhYuTW9kZWxpUnBjLkNoYW5uZWxMaW5rIiwK",
+            "GVJlbW92ZUNoYW5uZWxMaW5rUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCI0",
+            "Cg9TZXRWYWx1ZXNSZXFlc3QSIQoGdmFsdWVzGAEgASgLMhEuTW9kZWxpUnBj",
+            "LlZhbHVlcyI6ChFTZXRWYWx1ZXNSZXNwb25zZRIlCgZzdGF0dXMYASABKA4y",
+            "FS5Nb2RlbGlScGMuRm1pMlN0YXR1cyISChBOZXdWYWx1ZXNSZXF1ZXN0IjYK",
+            "EU5ld1ZhbHVlc1Jlc3BvbnNlEiEKBnZhbHVlcxgBIAEoCzIRLk1vZGVsaVJw",
+            "Yy5WYWx1ZXMiDAoKTG9nUmVxdWVzdCJcCgtMb2dSZXNwb25zZRIVCg1pbnN0",
+            "YW5jZV9uYW1lGAEgASgJEiUKBnN0YXR1cxgCIAEoDjIVLk1vZGVsaVJwYy5G",
+            "bWkyU3RhdHVzEg8KB21lc3NhZ2UYAyABKAkqbwoKRm1pMlN0YXR1cxILCgdG",
+            "TUkyX09LEAASEAoMRk1JMl9XQVJOSU5HEAESEAoMRk1JMl9ESVNDQVJEEAIS",
+            "DgoKRk1JMl9FUlJPUhADEg4KCkZNSTJfRkFUQUwQBBIQCgxGTUkyX1BFTkRJ",
+            "TkcQBTKLBgoNTW9kZWxpQmFja2VuZBI3CgRQbGF5EhYuTW9kZWxpUnBjLlBs",
+            "YXlSZXF1ZXN0GhcuTW9kZWxpUnBjLlBsYXlSZXNwb25zZRJDCghQbGF5RmFz",
+            "dBIaLk1vZGVsaVJwYy5QbGF5RmFzdFJlcXVlc3QaGy5Nb2RlbGlScGMuUGxh",
+            "eUZhc3RSZXNwb25zZRI6CgVQYXVzZRIXLk1vZGVsaVJwYy5QYXVzZVJlcXVl",
+            "c3QaGC5Nb2RlbGlScGMuUGF1c2VSZXNwb25zZRI3CgRTdG9wEhYuTW9kZWxp",
+            "UnBjLlN0b3BSZXF1ZXN0GhcuTW9kZWxpUnBjLlN0b3BSZXNwb25zZRI/CgZB",
+            "ZGRGbXUSGC5Nb2RlbGlScGMuQWRkRm11UmVxdWVzdBoZLk1vZGVsaVJwYy5B",
+            "ZGRGbXVSZXNwb25zZSgBEkYKCVJlbW92ZUZtdRIbLk1vZGVsaVJwYy5SZW1v",
+            "dmVGbXVSZXF1ZXN0GhwuTW9kZWxpUnBjLlJlbW92ZUZtdVJlc3BvbnNlElUK",
+            "DkFkZENoYW5uZWxMaW5rEiAuTW9kZWxpUnBjLkFkZENoYW5uZWxMaW5rUmVx",
+            "dWVzdBohLk1vZGVsaVJwYy5BZGRDaGFubmVsTGlua1Jlc3BvbnNlEl4KEVJl",
+            "bW92ZUNoYW5uZWxMaW5rEiMuTW9kZWxpUnBjLlJlbW92ZUNoYW5uZWxMaW5r",
+            "UmVxdWVzdBokLk1vZGVsaVJwYy5SZW1vdmVDaGFubmVsTGlua1Jlc3BvbnNl",
+            "EkUKCVNldFZhbHVlcxIaLk1vZGVsaVJwYy5TZXRWYWx1ZXNSZXFlc3QaHC5N",
+            "b2RlbGlScGMuU2V0VmFsdWVzUmVzcG9uc2USSAoJTmV3VmFsdWVzEhsuTW9k",
+            "ZWxpUnBjLk5ld1ZhbHVlc1JlcXVlc3QaHC5Nb2RlbGlScGMuTmV3VmFsdWVz",
+            "UmVzcG9uc2UwARI2CgNMb2cSFS5Nb2RlbGlScGMuTG9nUmVxdWVzdBoWLk1v",
+            "ZGVsaVJwYy5Mb2dSZXNwb25zZTABYgZwcm90bzM="));
+      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
+          new pbr::FileDescriptor[] { },
+          new pbr::GeneratedClrTypeInfo(new[] {typeof(global::ModeliRpc.Fmi2Status), }, new pbr::GeneratedClrTypeInfo[] {
+            new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.Values), global::ModeliRpc.Values.Parser, new[]{ "InstanceName", "IntVrs", "IntValues", "RealVrs", "RealValues", "BoolVrs", "BoolValues", "StringVrs", "StringValues" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.ChannelLink), global::ModeliRpc.ChannelLink.Parser, new[]{ "MasterInstanceName", "SlaveInstanceName", "MasterVr", "SlaveVr", "Factor", "Offset" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.PlayRequest), global::ModeliRpc.PlayRequest.Parser, null, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.PlayResponse), global::ModeliRpc.PlayResponse.Parser, new[]{ "Status" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.PlayFastRequest), global::ModeliRpc.PlayFastRequest.Parser, new[]{ "Time" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.PlayFastResponse), global::ModeliRpc.PlayFastResponse.Parser, new[]{ "Status" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.PauseRequest), global::ModeliRpc.PauseRequest.Parser, null, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.PauseResponse), global::ModeliRpc.PauseResponse.Parser, null, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.StopRequest), global::ModeliRpc.StopRequest.Parser, null, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.StopResponse), global::ModeliRpc.StopResponse.Parser, new[]{ "Status" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.AddFmuRequest), global::ModeliRpc.AddFmuRequest.Parser, new[]{ "InstanceName", "Data" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.AddFmuResponse), global::ModeliRpc.AddFmuResponse.Parser, new[]{ "Success" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.RemoveFmuRequest), global::ModeliRpc.RemoveFmuRequest.Parser, new[]{ "InstanceName" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.RemoveFmuResponse), global::ModeliRpc.RemoveFmuResponse.Parser, new[]{ "Success" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.AddChannelLinkRequest), global::ModeliRpc.AddChannelLinkRequest.Parser, new[]{ "ChannelLink" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.AddChannelLinkResponse), global::ModeliRpc.AddChannelLinkResponse.Parser, new[]{ "Success" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.RemoveChannelLinkRequest), global::ModeliRpc.RemoveChannelLinkRequest.Parser, new[]{ "ChannelLink" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.RemoveChannelLinkResponse), global::ModeliRpc.RemoveChannelLinkResponse.Parser, new[]{ "Success" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.SetValuesReqest), global::ModeliRpc.SetValuesReqest.Parser, new[]{ "Values" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.SetValuesResponse), global::ModeliRpc.SetValuesResponse.Parser, new[]{ "Status" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.NewValuesRequest), global::ModeliRpc.NewValuesRequest.Parser, null, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.NewValuesResponse), global::ModeliRpc.NewValuesResponse.Parser, new[]{ "Values" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.LogRequest), global::ModeliRpc.LogRequest.Parser, null, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.LogResponse), global::ModeliRpc.LogResponse.Parser, new[]{ "InstanceName", "Status", "Message" }, null, null, null)
+          }));
+    }
+    #endregion
+
+  }
+  #region Enums
+  /// <summary>
+  /// From Fmi2Standard
+  /// </summary>
+  public enum Fmi2Status {
+    [pbr::OriginalName("FMI2_OK")] Fmi2Ok = 0,
+    [pbr::OriginalName("FMI2_WARNING")] Fmi2Warning = 1,
+    [pbr::OriginalName("FMI2_DISCARD")] Fmi2Discard = 2,
+    [pbr::OriginalName("FMI2_ERROR")] Fmi2Error = 3,
+    [pbr::OriginalName("FMI2_FATAL")] Fmi2Fatal = 4,
+    [pbr::OriginalName("FMI2_PENDING")] Fmi2Pending = 5,
+  }
+
+  #endregion
+
+  #region Messages
+  /// <summary>
+  /// Contains values from and for the fmu
+  /// </summary>
+  public sealed partial class Values : pb::IMessage<Values> {
+    private static readonly pb::MessageParser<Values> _parser = new pb::MessageParser<Values>(() => new Values());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<Values> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::ModeliRpc.ModeliRpcReflection.Descriptor.MessageTypes[0]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public Values() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public Values(Values other) : this() {
+      instanceName_ = other.instanceName_;
+      intVrs_ = other.intVrs_.Clone();
+      intValues_ = other.intValues_.Clone();
+      realVrs_ = other.realVrs_.Clone();
+      realValues_ = other.realValues_.Clone();
+      boolVrs_ = other.boolVrs_.Clone();
+      boolValues_ = other.boolValues_.Clone();
+      stringVrs_ = other.stringVrs_.Clone();
+      stringValues_ = other.stringValues_.Clone();
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public Values Clone() {
+      return new Values(this);
+    }
+
+    /// <summary>Field number for the "instance_name" field.</summary>
+    public const int InstanceNameFieldNumber = 1;
+    private string instanceName_ = "";
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public string InstanceName {
+      get { return instanceName_; }
+      set {
+        instanceName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    /// <summary>Field number for the "int_vrs" field.</summary>
+    public const int IntVrsFieldNumber = 2;
+    private static readonly pb::FieldCodec<uint> _repeated_intVrs_codec
+        = pb::FieldCodec.ForUInt32(18);
+    private readonly pbc::RepeatedField<uint> intVrs_ = new pbc::RepeatedField<uint>();
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public pbc::RepeatedField<uint> IntVrs {
+      get { return intVrs_; }
+    }
+
+    /// <summary>Field number for the "int_values" field.</summary>
+    public const int IntValuesFieldNumber = 3;
+    private static readonly pb::FieldCodec<int> _repeated_intValues_codec
+        = pb::FieldCodec.ForInt32(26);
+    private readonly pbc::RepeatedField<int> intValues_ = new pbc::RepeatedField<int>();
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public pbc::RepeatedField<int> IntValues {
+      get { return intValues_; }
+    }
+
+    /// <summary>Field number for the "real_vrs" field.</summary>
+    public const int RealVrsFieldNumber = 4;
+    private static readonly pb::FieldCodec<uint> _repeated_realVrs_codec
+        = pb::FieldCodec.ForUInt32(34);
+    private readonly pbc::RepeatedField<uint> realVrs_ = new pbc::RepeatedField<uint>();
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public pbc::RepeatedField<uint> RealVrs {
+      get { return realVrs_; }
+    }
+
+    /// <summary>Field number for the "real_values" field.</summary>
+    public const int RealValuesFieldNumber = 5;
+    private static readonly pb::FieldCodec<double> _repeated_realValues_codec
+        = pb::FieldCodec.ForDouble(42);
+    private readonly pbc::RepeatedField<double> realValues_ = new pbc::RepeatedField<double>();
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public pbc::RepeatedField<double> RealValues {
+      get { return realValues_; }
+    }
+
+    /// <summary>Field number for the "bool_vrs" field.</summary>
+    public const int BoolVrsFieldNumber = 6;
+    private static readonly pb::FieldCodec<uint> _repeated_boolVrs_codec
+        = pb::FieldCodec.ForUInt32(50);
+    private readonly pbc::RepeatedField<uint> boolVrs_ = new pbc::RepeatedField<uint>();
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public pbc::RepeatedField<uint> BoolVrs {
+      get { return boolVrs_; }
+    }
+
+    /// <summary>Field number for the "bool_values" field.</summary>
+    public const int BoolValuesFieldNumber = 7;
+    private static readonly pb::FieldCodec<int> _repeated_boolValues_codec
+        = pb::FieldCodec.ForInt32(58);
+    private readonly pbc::RepeatedField<int> boolValues_ = new pbc::RepeatedField<int>();
+    /// <summary>
+    /// fmi2Bool = int32 (0 = false, 1 = true)
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public pbc::RepeatedField<int> BoolValues {
+      get { return boolValues_; }
+    }
+
+    /// <summary>Field number for the "string_vrs" field.</summary>
+    public const int StringVrsFieldNumber = 8;
+    private static readonly pb::FieldCodec<uint> _repeated_stringVrs_codec
+        = pb::FieldCodec.ForUInt32(66);
+    private readonly pbc::RepeatedField<uint> stringVrs_ = new pbc::RepeatedField<uint>();
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public pbc::RepeatedField<uint> StringVrs {
+      get { return stringVrs_; }
+    }
+
+    /// <summary>Field number for the "string_values" field.</summary>
+    public const int StringValuesFieldNumber = 9;
+    private static readonly pb::FieldCodec<string> _repeated_stringValues_codec
+        = pb::FieldCodec.ForString(74);
+    private readonly pbc::RepeatedField<string> stringValues_ = new pbc::RepeatedField<string>();
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public pbc::RepeatedField<string> StringValues {
+      get { return stringValues_; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as Values);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(Values other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (InstanceName != other.InstanceName) return false;
+      if(!intVrs_.Equals(other.intVrs_)) return false;
+      if(!intValues_.Equals(other.intValues_)) return false;
+      if(!realVrs_.Equals(other.realVrs_)) return false;
+      if(!realValues_.Equals(other.realValues_)) return false;
+      if(!boolVrs_.Equals(other.boolVrs_)) return false;
+      if(!boolValues_.Equals(other.boolValues_)) return false;
+      if(!stringVrs_.Equals(other.stringVrs_)) return false;
+      if(!stringValues_.Equals(other.stringValues_)) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (InstanceName.Length != 0) hash ^= InstanceName.GetHashCode();
+      hash ^= intVrs_.GetHashCode();
+      hash ^= intValues_.GetHashCode();
+      hash ^= realVrs_.GetHashCode();
+      hash ^= realValues_.GetHashCode();
+      hash ^= boolVrs_.GetHashCode();
+      hash ^= boolValues_.GetHashCode();
+      hash ^= stringVrs_.GetHashCode();
+      hash ^= stringValues_.GetHashCode();
+      return hash;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override string ToString() {
+      return pb::JsonFormatter.ToDiagnosticString(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void WriteTo(pb::CodedOutputStream output) {
+      if (InstanceName.Length != 0) {
+        output.WriteRawTag(10);
+        output.WriteString(InstanceName);
+      }
+      intVrs_.WriteTo(output, _repeated_intVrs_codec);
+      intValues_.WriteTo(output, _repeated_intValues_codec);
+      realVrs_.WriteTo(output, _repeated_realVrs_codec);
+      realValues_.WriteTo(output, _repeated_realValues_codec);
+      boolVrs_.WriteTo(output, _repeated_boolVrs_codec);
+      boolValues_.WriteTo(output, _repeated_boolValues_codec);
+      stringVrs_.WriteTo(output, _repeated_stringVrs_codec);
+      stringValues_.WriteTo(output, _repeated_stringValues_codec);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (InstanceName.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeStringSize(InstanceName);
+      }
+      size += intVrs_.CalculateSize(_repeated_intVrs_codec);
+      size += intValues_.CalculateSize(_repeated_intValues_codec);
+      size += realVrs_.CalculateSize(_repeated_realVrs_codec);
+      size += realValues_.CalculateSize(_repeated_realValues_codec);
+      size += boolVrs_.CalculateSize(_repeated_boolVrs_codec);
+      size += boolValues_.CalculateSize(_repeated_boolValues_codec);
+      size += stringVrs_.CalculateSize(_repeated_stringVrs_codec);
+      size += stringValues_.CalculateSize(_repeated_stringValues_codec);
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(Values other) {
+      if (other == null) {
+        return;
+      }
+      if (other.InstanceName.Length != 0) {
+        InstanceName = other.InstanceName;
+      }
+      intVrs_.Add(other.intVrs_);
+      intValues_.Add(other.intValues_);
+      realVrs_.Add(other.realVrs_);
+      realValues_.Add(other.realValues_);
+      boolVrs_.Add(other.boolVrs_);
+      boolValues_.Add(other.boolValues_);
+      stringVrs_.Add(other.stringVrs_);
+      stringValues_.Add(other.stringValues_);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 10: {
+            InstanceName = input.ReadString();
+            break;
+          }
+          case 18:
+          case 16: {
+            intVrs_.AddEntriesFrom(input, _repeated_intVrs_codec);
+            break;
+          }
+          case 26:
+          case 24: {
+            intValues_.AddEntriesFrom(input, _repeated_intValues_codec);
+            break;
+          }
+          case 34:
+          case 32: {
+            realVrs_.AddEntriesFrom(input, _repeated_realVrs_codec);
+            break;
+          }
+          case 42:
+          case 41: {
+            realValues_.AddEntriesFrom(input, _repeated_realValues_codec);
+            break;
+          }
+          case 50:
+          case 48: {
+            boolVrs_.AddEntriesFrom(input, _repeated_boolVrs_codec);
+            break;
+          }
+          case 58:
+          case 56: {
+            boolValues_.AddEntriesFrom(input, _repeated_boolValues_codec);
+            break;
+          }
+          case 66:
+          case 64: {
+            stringVrs_.AddEntriesFrom(input, _repeated_stringVrs_codec);
+            break;
+          }
+          case 74: {
+            stringValues_.AddEntriesFrom(input, _repeated_stringValues_codec);
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  /// <summary>
+  /// The metadata of a ChannelLink
+  /// </summary>
+  public sealed partial class ChannelLink : pb::IMessage<ChannelLink> {
+    private static readonly pb::MessageParser<ChannelLink> _parser = new pb::MessageParser<ChannelLink>(() => new ChannelLink());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<ChannelLink> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::ModeliRpc.ModeliRpcReflection.Descriptor.MessageTypes[1]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public ChannelLink() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public ChannelLink(ChannelLink other) : this() {
+      masterInstanceName_ = other.masterInstanceName_;
+      slaveInstanceName_ = other.slaveInstanceName_;
+      masterVr_ = other.masterVr_;
+      slaveVr_ = other.slaveVr_;
+      factor_ = other.factor_;
+      offset_ = other.offset_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public ChannelLink Clone() {
+      return new ChannelLink(this);
+    }
+
+    /// <summary>Field number for the "master_instance_name" field.</summary>
+    public const int MasterInstanceNameFieldNumber = 1;
+    private string masterInstanceName_ = "";
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public string MasterInstanceName {
+      get { return masterInstanceName_; }
+      set {
+        masterInstanceName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    /// <summary>Field number for the "slave_instance_name" field.</summary>
+    public const int SlaveInstanceNameFieldNumber = 2;
+    private string slaveInstanceName_ = "";
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public string SlaveInstanceName {
+      get { return slaveInstanceName_; }
+      set {
+        slaveInstanceName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    /// <summary>Field number for the "master_vr" field.</summary>
+    public const int MasterVrFieldNumber = 3;
+    private uint masterVr_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public uint MasterVr {
+      get { return masterVr_; }
+      set {
+        masterVr_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "slave_vr" field.</summary>
+    public const int SlaveVrFieldNumber = 4;
+    private uint slaveVr_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public uint SlaveVr {
+      get { return slaveVr_; }
+      set {
+        slaveVr_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "factor" field.</summary>
+    public const int FactorFieldNumber = 5;
+    private double factor_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public double Factor {
+      get { return factor_; }
+      set {
+        factor_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "offset" field.</summary>
+    public const int OffsetFieldNumber = 6;
+    private double offset_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public double Offset {
+      get { return offset_; }
+      set {
+        offset_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as ChannelLink);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(ChannelLink other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (MasterInstanceName != other.MasterInstanceName) return false;
+      if (SlaveInstanceName != other.SlaveInstanceName) return false;
+      if (MasterVr != other.MasterVr) return false;
+      if (SlaveVr != other.SlaveVr) return false;
+      if (Factor != other.Factor) return false;
+      if (Offset != other.Offset) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (MasterInstanceName.Length != 0) hash ^= MasterInstanceName.GetHashCode();
+      if (SlaveInstanceName.Length != 0) hash ^= SlaveInstanceName.GetHashCode();
+      if (MasterVr != 0) hash ^= MasterVr.GetHashCode();
+      if (SlaveVr != 0) hash ^= SlaveVr.GetHashCode();
+      if (Factor != 0D) hash ^= Factor.GetHashCode();
+      if (Offset != 0D) hash ^= Offset.GetHashCode();
+      return hash;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override string ToString() {
+      return pb::JsonFormatter.ToDiagnosticString(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void WriteTo(pb::CodedOutputStream output) {
+      if (MasterInstanceName.Length != 0) {
+        output.WriteRawTag(10);
+        output.WriteString(MasterInstanceName);
+      }
+      if (SlaveInstanceName.Length != 0) {
+        output.WriteRawTag(18);
+        output.WriteString(SlaveInstanceName);
+      }
+      if (MasterVr != 0) {
+        output.WriteRawTag(24);
+        output.WriteUInt32(MasterVr);
+      }
+      if (SlaveVr != 0) {
+        output.WriteRawTag(32);
+        output.WriteUInt32(SlaveVr);
+      }
+      if (Factor != 0D) {
+        output.WriteRawTag(41);
+        output.WriteDouble(Factor);
+      }
+      if (Offset != 0D) {
+        output.WriteRawTag(49);
+        output.WriteDouble(Offset);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (MasterInstanceName.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeStringSize(MasterInstanceName);
+      }
+      if (SlaveInstanceName.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeStringSize(SlaveInstanceName);
+      }
+      if (MasterVr != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(MasterVr);
+      }
+      if (SlaveVr != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(SlaveVr);
+      }
+      if (Factor != 0D) {
+        size += 1 + 8;
+      }
+      if (Offset != 0D) {
+        size += 1 + 8;
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(ChannelLink other) {
+      if (other == null) {
+        return;
+      }
+      if (other.MasterInstanceName.Length != 0) {
+        MasterInstanceName = other.MasterInstanceName;
+      }
+      if (other.SlaveInstanceName.Length != 0) {
+        SlaveInstanceName = other.SlaveInstanceName;
+      }
+      if (other.MasterVr != 0) {
+        MasterVr = other.MasterVr;
+      }
+      if (other.SlaveVr != 0) {
+        SlaveVr = other.SlaveVr;
+      }
+      if (other.Factor != 0D) {
+        Factor = other.Factor;
+      }
+      if (other.Offset != 0D) {
+        Offset = other.Offset;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 10: {
+            MasterInstanceName = input.ReadString();
+            break;
+          }
+          case 18: {
+            SlaveInstanceName = input.ReadString();
+            break;
+          }
+          case 24: {
+            MasterVr = input.ReadUInt32();
+            break;
+          }
+          case 32: {
+            SlaveVr = input.ReadUInt32();
+            break;
+          }
+          case 41: {
+            Factor = input.ReadDouble();
+            break;
+          }
+          case 49: {
+            Offset = input.ReadDouble();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  /// <summary>
+  /// Request &amp; Response definitions
+  /// </summary>
+  public sealed partial class PlayRequest : pb::IMessage<PlayRequest> {
+    private static readonly pb::MessageParser<PlayRequest> _parser = new pb::MessageParser<PlayRequest>(() => new PlayRequest());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<PlayRequest> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::ModeliRpc.ModeliRpcReflection.Descriptor.MessageTypes[2]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public PlayRequest() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public PlayRequest(PlayRequest other) : this() {
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public PlayRequest Clone() {
+      return new PlayRequest(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as PlayRequest);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(PlayRequest other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      return hash;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override string ToString() {
+      return pb::JsonFormatter.ToDiagnosticString(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void WriteTo(pb::CodedOutputStream output) {
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(PlayRequest other) {
+      if (other == null) {
+        return;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class PlayResponse : pb::IMessage<PlayResponse> {
+    private static readonly pb::MessageParser<PlayResponse> _parser = new pb::MessageParser<PlayResponse>(() => new PlayResponse());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<PlayResponse> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::ModeliRpc.ModeliRpcReflection.Descriptor.MessageTypes[3]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public PlayResponse() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public PlayResponse(PlayResponse other) : this() {
+      status_ = other.status_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public PlayResponse Clone() {
+      return new PlayResponse(this);
+    }
+
+    /// <summary>Field number for the "status" field.</summary>
+    public const int StatusFieldNumber = 1;
+    private global::ModeliRpc.Fmi2Status status_ = 0;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public global::ModeliRpc.Fmi2Status Status {
+      get { return status_; }
+      set {
+        status_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as PlayResponse);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(PlayResponse other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Status != other.Status) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Status != 0) hash ^= Status.GetHashCode();
+      return hash;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override string ToString() {
+      return pb::JsonFormatter.ToDiagnosticString(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void WriteTo(pb::CodedOutputStream output) {
+      if (Status != 0) {
+        output.WriteRawTag(8);
+        output.WriteEnum((int) Status);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Status != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Status);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(PlayResponse other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Status != 0) {
+        Status = other.Status;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 8: {
+            status_ = (global::ModeliRpc.Fmi2Status) input.ReadEnum();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class PlayFastRequest : pb::IMessage<PlayFastRequest> {
+    private static readonly pb::MessageParser<PlayFastRequest> _parser = new pb::MessageParser<PlayFastRequest>(() => new PlayFastRequest());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<PlayFastRequest> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::ModeliRpc.ModeliRpcReflection.Descriptor.MessageTypes[4]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public PlayFastRequest() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public PlayFastRequest(PlayFastRequest other) : this() {
+      time_ = other.time_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public PlayFastRequest Clone() {
+      return new PlayFastRequest(this);
+    }
+
+    /// <summary>Field number for the "time" field.</summary>
+    public const int TimeFieldNumber = 1;
+    private double time_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public double Time {
+      get { return time_; }
+      set {
+        time_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as PlayFastRequest);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(PlayFastRequest other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Time != other.Time) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Time != 0D) hash ^= Time.GetHashCode();
+      return hash;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override string ToString() {
+      return pb::JsonFormatter.ToDiagnosticString(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void WriteTo(pb::CodedOutputStream output) {
+      if (Time != 0D) {
+        output.WriteRawTag(9);
+        output.WriteDouble(Time);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Time != 0D) {
+        size += 1 + 8;
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(PlayFastRequest other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Time != 0D) {
+        Time = other.Time;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 9: {
+            Time = input.ReadDouble();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class PlayFastResponse : pb::IMessage<PlayFastResponse> {
+    private static readonly pb::MessageParser<PlayFastResponse> _parser = new pb::MessageParser<PlayFastResponse>(() => new PlayFastResponse());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<PlayFastResponse> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::ModeliRpc.ModeliRpcReflection.Descriptor.MessageTypes[5]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public PlayFastResponse() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public PlayFastResponse(PlayFastResponse other) : this() {
+      status_ = other.status_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public PlayFastResponse Clone() {
+      return new PlayFastResponse(this);
+    }
+
+    /// <summary>Field number for the "status" field.</summary>
+    public const int StatusFieldNumber = 1;
+    private global::ModeliRpc.Fmi2Status status_ = 0;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public global::ModeliRpc.Fmi2Status Status {
+      get { return status_; }
+      set {
+        status_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as PlayFastResponse);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(PlayFastResponse other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Status != other.Status) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Status != 0) hash ^= Status.GetHashCode();
+      return hash;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override string ToString() {
+      return pb::JsonFormatter.ToDiagnosticString(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void WriteTo(pb::CodedOutputStream output) {
+      if (Status != 0) {
+        output.WriteRawTag(8);
+        output.WriteEnum((int) Status);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Status != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Status);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(PlayFastResponse other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Status != 0) {
+        Status = other.Status;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 8: {
+            status_ = (global::ModeliRpc.Fmi2Status) input.ReadEnum();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class PauseRequest : pb::IMessage<PauseRequest> {
+    private static readonly pb::MessageParser<PauseRequest> _parser = new pb::MessageParser<PauseRequest>(() => new PauseRequest());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<PauseRequest> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::ModeliRpc.ModeliRpcReflection.Descriptor.MessageTypes[6]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public PauseRequest() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public PauseRequest(PauseRequest other) : this() {
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public PauseRequest Clone() {
+      return new PauseRequest(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as PauseRequest);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(PauseRequest other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      return hash;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override string ToString() {
+      return pb::JsonFormatter.ToDiagnosticString(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void WriteTo(pb::CodedOutputStream output) {
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(PauseRequest other) {
+      if (other == null) {
+        return;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class PauseResponse : pb::IMessage<PauseResponse> {
+    private static readonly pb::MessageParser<PauseResponse> _parser = new pb::MessageParser<PauseResponse>(() => new PauseResponse());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<PauseResponse> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::ModeliRpc.ModeliRpcReflection.Descriptor.MessageTypes[7]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public PauseResponse() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public PauseResponse(PauseResponse other) : this() {
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public PauseResponse Clone() {
+      return new PauseResponse(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as PauseResponse);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(PauseResponse other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      return hash;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override string ToString() {
+      return pb::JsonFormatter.ToDiagnosticString(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void WriteTo(pb::CodedOutputStream output) {
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(PauseResponse other) {
+      if (other == null) {
+        return;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class StopRequest : pb::IMessage<StopRequest> {
+    private static readonly pb::MessageParser<StopRequest> _parser = new pb::MessageParser<StopRequest>(() => new StopRequest());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<StopRequest> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::ModeliRpc.ModeliRpcReflection.Descriptor.MessageTypes[8]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public StopRequest() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public StopRequest(StopRequest other) : this() {
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public StopRequest Clone() {
+      return new StopRequest(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as StopRequest);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(StopRequest other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      return hash;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override string ToString() {
+      return pb::JsonFormatter.ToDiagnosticString(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void WriteTo(pb::CodedOutputStream output) {
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(StopRequest other) {
+      if (other == null) {
+        return;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class StopResponse : pb::IMessage<StopResponse> {
+    private static readonly pb::MessageParser<StopResponse> _parser = new pb::MessageParser<StopResponse>(() => new StopResponse());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<StopResponse> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::ModeliRpc.ModeliRpcReflection.Descriptor.MessageTypes[9]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public StopResponse() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public StopResponse(StopResponse other) : this() {
+      status_ = other.status_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public StopResponse Clone() {
+      return new StopResponse(this);
+    }
+
+    /// <summary>Field number for the "status" field.</summary>
+    public const int StatusFieldNumber = 1;
+    private global::ModeliRpc.Fmi2Status status_ = 0;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public global::ModeliRpc.Fmi2Status Status {
+      get { return status_; }
+      set {
+        status_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as StopResponse);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(StopResponse other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Status != other.Status) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Status != 0) hash ^= Status.GetHashCode();
+      return hash;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override string ToString() {
+      return pb::JsonFormatter.ToDiagnosticString(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void WriteTo(pb::CodedOutputStream output) {
+      if (Status != 0) {
+        output.WriteRawTag(8);
+        output.WriteEnum((int) Status);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Status != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Status);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(StopResponse other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Status != 0) {
+        Status = other.Status;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 8: {
+            status_ = (global::ModeliRpc.Fmi2Status) input.ReadEnum();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class AddFmuRequest : pb::IMessage<AddFmuRequest> {
+    private static readonly pb::MessageParser<AddFmuRequest> _parser = new pb::MessageParser<AddFmuRequest>(() => new AddFmuRequest());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<AddFmuRequest> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::ModeliRpc.ModeliRpcReflection.Descriptor.MessageTypes[10]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public AddFmuRequest() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public AddFmuRequest(AddFmuRequest other) : this() {
+      instanceName_ = other.instanceName_;
+      data_ = other.data_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public AddFmuRequest Clone() {
+      return new AddFmuRequest(this);
+    }
+
+    /// <summary>Field number for the "instance_name" field.</summary>
+    public const int InstanceNameFieldNumber = 1;
+    private string instanceName_ = "";
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public string InstanceName {
+      get { return instanceName_; }
+      set {
+        instanceName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    /// <summary>Field number for the "data" field.</summary>
+    public const int DataFieldNumber = 2;
+    private pb::ByteString data_ = pb::ByteString.Empty;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public pb::ByteString Data {
+      get { return data_; }
+      set {
+        data_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as AddFmuRequest);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(AddFmuRequest other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (InstanceName != other.InstanceName) return false;
+      if (Data != other.Data) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (InstanceName.Length != 0) hash ^= InstanceName.GetHashCode();
+      if (Data.Length != 0) hash ^= Data.GetHashCode();
+      return hash;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override string ToString() {
+      return pb::JsonFormatter.ToDiagnosticString(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void WriteTo(pb::CodedOutputStream output) {
+      if (InstanceName.Length != 0) {
+        output.WriteRawTag(10);
+        output.WriteString(InstanceName);
+      }
+      if (Data.Length != 0) {
+        output.WriteRawTag(18);
+        output.WriteBytes(Data);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (InstanceName.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeStringSize(InstanceName);
+      }
+      if (Data.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeBytesSize(Data);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(AddFmuRequest other) {
+      if (other == null) {
+        return;
+      }
+      if (other.InstanceName.Length != 0) {
+        InstanceName = other.InstanceName;
+      }
+      if (other.Data.Length != 0) {
+        Data = other.Data;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 10: {
+            InstanceName = input.ReadString();
+            break;
+          }
+          case 18: {
+            Data = input.ReadBytes();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class AddFmuResponse : pb::IMessage<AddFmuResponse> {
+    private static readonly pb::MessageParser<AddFmuResponse> _parser = new pb::MessageParser<AddFmuResponse>(() => new AddFmuResponse());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<AddFmuResponse> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::ModeliRpc.ModeliRpcReflection.Descriptor.MessageTypes[11]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public AddFmuResponse() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public AddFmuResponse(AddFmuResponse other) : this() {
+      success_ = other.success_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public AddFmuResponse Clone() {
+      return new AddFmuResponse(this);
+    }
+
+    /// <summary>Field number for the "success" field.</summary>
+    public const int SuccessFieldNumber = 1;
+    private bool success_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Success {
+      get { return success_; }
+      set {
+        success_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as AddFmuResponse);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(AddFmuResponse other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Success != other.Success) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Success != false) hash ^= Success.GetHashCode();
+      return hash;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override string ToString() {
+      return pb::JsonFormatter.ToDiagnosticString(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void WriteTo(pb::CodedOutputStream output) {
+      if (Success != false) {
+        output.WriteRawTag(8);
+        output.WriteBool(Success);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Success != false) {
+        size += 1 + 1;
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(AddFmuResponse other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Success != false) {
+        Success = other.Success;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 8: {
+            Success = input.ReadBool();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class RemoveFmuRequest : pb::IMessage<RemoveFmuRequest> {
+    private static readonly pb::MessageParser<RemoveFmuRequest> _parser = new pb::MessageParser<RemoveFmuRequest>(() => new RemoveFmuRequest());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<RemoveFmuRequest> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::ModeliRpc.ModeliRpcReflection.Descriptor.MessageTypes[12]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public RemoveFmuRequest() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public RemoveFmuRequest(RemoveFmuRequest other) : this() {
+      instanceName_ = other.instanceName_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public RemoveFmuRequest Clone() {
+      return new RemoveFmuRequest(this);
+    }
+
+    /// <summary>Field number for the "instance_name" field.</summary>
+    public const int InstanceNameFieldNumber = 1;
+    private string instanceName_ = "";
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public string InstanceName {
+      get { return instanceName_; }
+      set {
+        instanceName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as RemoveFmuRequest);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(RemoveFmuRequest other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (InstanceName != other.InstanceName) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (InstanceName.Length != 0) hash ^= InstanceName.GetHashCode();
+      return hash;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override string ToString() {
+      return pb::JsonFormatter.ToDiagnosticString(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void WriteTo(pb::CodedOutputStream output) {
+      if (InstanceName.Length != 0) {
+        output.WriteRawTag(10);
+        output.WriteString(InstanceName);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (InstanceName.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeStringSize(InstanceName);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(RemoveFmuRequest other) {
+      if (other == null) {
+        return;
+      }
+      if (other.InstanceName.Length != 0) {
+        InstanceName = other.InstanceName;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 10: {
+            InstanceName = input.ReadString();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class RemoveFmuResponse : pb::IMessage<RemoveFmuResponse> {
+    private static readonly pb::MessageParser<RemoveFmuResponse> _parser = new pb::MessageParser<RemoveFmuResponse>(() => new RemoveFmuResponse());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<RemoveFmuResponse> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::ModeliRpc.ModeliRpcReflection.Descriptor.MessageTypes[13]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public RemoveFmuResponse() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public RemoveFmuResponse(RemoveFmuResponse other) : this() {
+      success_ = other.success_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public RemoveFmuResponse Clone() {
+      return new RemoveFmuResponse(this);
+    }
+
+    /// <summary>Field number for the "success" field.</summary>
+    public const int SuccessFieldNumber = 1;
+    private bool success_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Success {
+      get { return success_; }
+      set {
+        success_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as RemoveFmuResponse);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(RemoveFmuResponse other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Success != other.Success) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Success != false) hash ^= Success.GetHashCode();
+      return hash;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override string ToString() {
+      return pb::JsonFormatter.ToDiagnosticString(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void WriteTo(pb::CodedOutputStream output) {
+      if (Success != false) {
+        output.WriteRawTag(8);
+        output.WriteBool(Success);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Success != false) {
+        size += 1 + 1;
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(RemoveFmuResponse other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Success != false) {
+        Success = other.Success;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 8: {
+            Success = input.ReadBool();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class AddChannelLinkRequest : pb::IMessage<AddChannelLinkRequest> {
+    private static readonly pb::MessageParser<AddChannelLinkRequest> _parser = new pb::MessageParser<AddChannelLinkRequest>(() => new AddChannelLinkRequest());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<AddChannelLinkRequest> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::ModeliRpc.ModeliRpcReflection.Descriptor.MessageTypes[14]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public AddChannelLinkRequest() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public AddChannelLinkRequest(AddChannelLinkRequest other) : this() {
+      ChannelLink = other.channelLink_ != null ? other.ChannelLink.Clone() : null;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public AddChannelLinkRequest Clone() {
+      return new AddChannelLinkRequest(this);
+    }
+
+    /// <summary>Field number for the "channel_link" field.</summary>
+    public const int ChannelLinkFieldNumber = 1;
+    private global::ModeliRpc.ChannelLink channelLink_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public global::ModeliRpc.ChannelLink ChannelLink {
+      get { return channelLink_; }
+      set {
+        channelLink_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as AddChannelLinkRequest);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(AddChannelLinkRequest other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (!object.Equals(ChannelLink, other.ChannelLink)) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (channelLink_ != null) hash ^= ChannelLink.GetHashCode();
+      return hash;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override string ToString() {
+      return pb::JsonFormatter.ToDiagnosticString(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void WriteTo(pb::CodedOutputStream output) {
+      if (channelLink_ != null) {
+        output.WriteRawTag(10);
+        output.WriteMessage(ChannelLink);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (channelLink_ != null) {
+        size += 1 + pb::CodedOutputStream.ComputeMessageSize(ChannelLink);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(AddChannelLinkRequest other) {
+      if (other == null) {
+        return;
+      }
+      if (other.channelLink_ != null) {
+        if (channelLink_ == null) {
+          channelLink_ = new global::ModeliRpc.ChannelLink();
+        }
+        ChannelLink.MergeFrom(other.ChannelLink);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 10: {
+            if (channelLink_ == null) {
+              channelLink_ = new global::ModeliRpc.ChannelLink();
+            }
+            input.ReadMessage(channelLink_);
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class AddChannelLinkResponse : pb::IMessage<AddChannelLinkResponse> {
+    private static readonly pb::MessageParser<AddChannelLinkResponse> _parser = new pb::MessageParser<AddChannelLinkResponse>(() => new AddChannelLinkResponse());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<AddChannelLinkResponse> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::ModeliRpc.ModeliRpcReflection.Descriptor.MessageTypes[15]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public AddChannelLinkResponse() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public AddChannelLinkResponse(AddChannelLinkResponse other) : this() {
+      success_ = other.success_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public AddChannelLinkResponse Clone() {
+      return new AddChannelLinkResponse(this);
+    }
+
+    /// <summary>Field number for the "success" field.</summary>
+    public const int SuccessFieldNumber = 1;
+    private bool success_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Success {
+      get { return success_; }
+      set {
+        success_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as AddChannelLinkResponse);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(AddChannelLinkResponse other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Success != other.Success) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Success != false) hash ^= Success.GetHashCode();
+      return hash;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override string ToString() {
+      return pb::JsonFormatter.ToDiagnosticString(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void WriteTo(pb::CodedOutputStream output) {
+      if (Success != false) {
+        output.WriteRawTag(8);
+        output.WriteBool(Success);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Success != false) {
+        size += 1 + 1;
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(AddChannelLinkResponse other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Success != false) {
+        Success = other.Success;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 8: {
+            Success = input.ReadBool();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class RemoveChannelLinkRequest : pb::IMessage<RemoveChannelLinkRequest> {
+    private static readonly pb::MessageParser<RemoveChannelLinkRequest> _parser = new pb::MessageParser<RemoveChannelLinkRequest>(() => new RemoveChannelLinkRequest());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<RemoveChannelLinkRequest> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::ModeliRpc.ModeliRpcReflection.Descriptor.MessageTypes[16]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public RemoveChannelLinkRequest() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public RemoveChannelLinkRequest(RemoveChannelLinkRequest other) : this() {
+      ChannelLink = other.channelLink_ != null ? other.ChannelLink.Clone() : null;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public RemoveChannelLinkRequest Clone() {
+      return new RemoveChannelLinkRequest(this);
+    }
+
+    /// <summary>Field number for the "channel_link" field.</summary>
+    public const int ChannelLinkFieldNumber = 1;
+    private global::ModeliRpc.ChannelLink channelLink_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public global::ModeliRpc.ChannelLink ChannelLink {
+      get { return channelLink_; }
+      set {
+        channelLink_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as RemoveChannelLinkRequest);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(RemoveChannelLinkRequest other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (!object.Equals(ChannelLink, other.ChannelLink)) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (channelLink_ != null) hash ^= ChannelLink.GetHashCode();
+      return hash;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override string ToString() {
+      return pb::JsonFormatter.ToDiagnosticString(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void WriteTo(pb::CodedOutputStream output) {
+      if (channelLink_ != null) {
+        output.WriteRawTag(10);
+        output.WriteMessage(ChannelLink);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (channelLink_ != null) {
+        size += 1 + pb::CodedOutputStream.ComputeMessageSize(ChannelLink);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(RemoveChannelLinkRequest other) {
+      if (other == null) {
+        return;
+      }
+      if (other.channelLink_ != null) {
+        if (channelLink_ == null) {
+          channelLink_ = new global::ModeliRpc.ChannelLink();
+        }
+        ChannelLink.MergeFrom(other.ChannelLink);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 10: {
+            if (channelLink_ == null) {
+              channelLink_ = new global::ModeliRpc.ChannelLink();
+            }
+            input.ReadMessage(channelLink_);
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class RemoveChannelLinkResponse : pb::IMessage<RemoveChannelLinkResponse> {
+    private static readonly pb::MessageParser<RemoveChannelLinkResponse> _parser = new pb::MessageParser<RemoveChannelLinkResponse>(() => new RemoveChannelLinkResponse());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<RemoveChannelLinkResponse> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::ModeliRpc.ModeliRpcReflection.Descriptor.MessageTypes[17]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public RemoveChannelLinkResponse() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public RemoveChannelLinkResponse(RemoveChannelLinkResponse other) : this() {
+      success_ = other.success_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public RemoveChannelLinkResponse Clone() {
+      return new RemoveChannelLinkResponse(this);
+    }
+
+    /// <summary>Field number for the "success" field.</summary>
+    public const int SuccessFieldNumber = 1;
+    private bool success_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Success {
+      get { return success_; }
+      set {
+        success_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as RemoveChannelLinkResponse);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(RemoveChannelLinkResponse other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Success != other.Success) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Success != false) hash ^= Success.GetHashCode();
+      return hash;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override string ToString() {
+      return pb::JsonFormatter.ToDiagnosticString(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void WriteTo(pb::CodedOutputStream output) {
+      if (Success != false) {
+        output.WriteRawTag(8);
+        output.WriteBool(Success);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Success != false) {
+        size += 1 + 1;
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(RemoveChannelLinkResponse other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Success != false) {
+        Success = other.Success;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 8: {
+            Success = input.ReadBool();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class SetValuesReqest : pb::IMessage<SetValuesReqest> {
+    private static readonly pb::MessageParser<SetValuesReqest> _parser = new pb::MessageParser<SetValuesReqest>(() => new SetValuesReqest());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<SetValuesReqest> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::ModeliRpc.ModeliRpcReflection.Descriptor.MessageTypes[18]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public SetValuesReqest() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public SetValuesReqest(SetValuesReqest other) : this() {
+      Values = other.values_ != null ? other.Values.Clone() : null;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public SetValuesReqest Clone() {
+      return new SetValuesReqest(this);
+    }
+
+    /// <summary>Field number for the "values" field.</summary>
+    public const int ValuesFieldNumber = 1;
+    private global::ModeliRpc.Values values_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public global::ModeliRpc.Values Values {
+      get { return values_; }
+      set {
+        values_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as SetValuesReqest);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(SetValuesReqest other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (!object.Equals(Values, other.Values)) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (values_ != null) hash ^= Values.GetHashCode();
+      return hash;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override string ToString() {
+      return pb::JsonFormatter.ToDiagnosticString(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void WriteTo(pb::CodedOutputStream output) {
+      if (values_ != null) {
+        output.WriteRawTag(10);
+        output.WriteMessage(Values);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (values_ != null) {
+        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Values);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(SetValuesReqest other) {
+      if (other == null) {
+        return;
+      }
+      if (other.values_ != null) {
+        if (values_ == null) {
+          values_ = new global::ModeliRpc.Values();
+        }
+        Values.MergeFrom(other.Values);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 10: {
+            if (values_ == null) {
+              values_ = new global::ModeliRpc.Values();
+            }
+            input.ReadMessage(values_);
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class SetValuesResponse : pb::IMessage<SetValuesResponse> {
+    private static readonly pb::MessageParser<SetValuesResponse> _parser = new pb::MessageParser<SetValuesResponse>(() => new SetValuesResponse());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<SetValuesResponse> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::ModeliRpc.ModeliRpcReflection.Descriptor.MessageTypes[19]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public SetValuesResponse() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public SetValuesResponse(SetValuesResponse other) : this() {
+      status_ = other.status_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public SetValuesResponse Clone() {
+      return new SetValuesResponse(this);
+    }
+
+    /// <summary>Field number for the "status" field.</summary>
+    public const int StatusFieldNumber = 1;
+    private global::ModeliRpc.Fmi2Status status_ = 0;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public global::ModeliRpc.Fmi2Status Status {
+      get { return status_; }
+      set {
+        status_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as SetValuesResponse);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(SetValuesResponse other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Status != other.Status) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Status != 0) hash ^= Status.GetHashCode();
+      return hash;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override string ToString() {
+      return pb::JsonFormatter.ToDiagnosticString(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void WriteTo(pb::CodedOutputStream output) {
+      if (Status != 0) {
+        output.WriteRawTag(8);
+        output.WriteEnum((int) Status);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Status != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Status);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(SetValuesResponse other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Status != 0) {
+        Status = other.Status;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 8: {
+            status_ = (global::ModeliRpc.Fmi2Status) input.ReadEnum();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class NewValuesRequest : pb::IMessage<NewValuesRequest> {
+    private static readonly pb::MessageParser<NewValuesRequest> _parser = new pb::MessageParser<NewValuesRequest>(() => new NewValuesRequest());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<NewValuesRequest> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::ModeliRpc.ModeliRpcReflection.Descriptor.MessageTypes[20]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public NewValuesRequest() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public NewValuesRequest(NewValuesRequest other) : this() {
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public NewValuesRequest Clone() {
+      return new NewValuesRequest(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as NewValuesRequest);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(NewValuesRequest other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      return hash;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override string ToString() {
+      return pb::JsonFormatter.ToDiagnosticString(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void WriteTo(pb::CodedOutputStream output) {
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(NewValuesRequest other) {
+      if (other == null) {
+        return;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class NewValuesResponse : pb::IMessage<NewValuesResponse> {
+    private static readonly pb::MessageParser<NewValuesResponse> _parser = new pb::MessageParser<NewValuesResponse>(() => new NewValuesResponse());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<NewValuesResponse> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::ModeliRpc.ModeliRpcReflection.Descriptor.MessageTypes[21]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public NewValuesResponse() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public NewValuesResponse(NewValuesResponse other) : this() {
+      Values = other.values_ != null ? other.Values.Clone() : null;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public NewValuesResponse Clone() {
+      return new NewValuesResponse(this);
+    }
+
+    /// <summary>Field number for the "values" field.</summary>
+    public const int ValuesFieldNumber = 1;
+    private global::ModeliRpc.Values values_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public global::ModeliRpc.Values Values {
+      get { return values_; }
+      set {
+        values_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as NewValuesResponse);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(NewValuesResponse other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (!object.Equals(Values, other.Values)) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (values_ != null) hash ^= Values.GetHashCode();
+      return hash;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override string ToString() {
+      return pb::JsonFormatter.ToDiagnosticString(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void WriteTo(pb::CodedOutputStream output) {
+      if (values_ != null) {
+        output.WriteRawTag(10);
+        output.WriteMessage(Values);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (values_ != null) {
+        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Values);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(NewValuesResponse other) {
+      if (other == null) {
+        return;
+      }
+      if (other.values_ != null) {
+        if (values_ == null) {
+          values_ = new global::ModeliRpc.Values();
+        }
+        Values.MergeFrom(other.Values);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 10: {
+            if (values_ == null) {
+              values_ = new global::ModeliRpc.Values();
+            }
+            input.ReadMessage(values_);
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class LogRequest : pb::IMessage<LogRequest> {
+    private static readonly pb::MessageParser<LogRequest> _parser = new pb::MessageParser<LogRequest>(() => new LogRequest());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<LogRequest> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::ModeliRpc.ModeliRpcReflection.Descriptor.MessageTypes[22]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public LogRequest() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public LogRequest(LogRequest other) : this() {
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public LogRequest Clone() {
+      return new LogRequest(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as LogRequest);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(LogRequest other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      return hash;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override string ToString() {
+      return pb::JsonFormatter.ToDiagnosticString(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void WriteTo(pb::CodedOutputStream output) {
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(LogRequest other) {
+      if (other == null) {
+        return;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class LogResponse : pb::IMessage<LogResponse> {
+    private static readonly pb::MessageParser<LogResponse> _parser = new pb::MessageParser<LogResponse>(() => new LogResponse());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<LogResponse> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::ModeliRpc.ModeliRpcReflection.Descriptor.MessageTypes[23]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public LogResponse() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public LogResponse(LogResponse other) : this() {
+      instanceName_ = other.instanceName_;
+      status_ = other.status_;
+      message_ = other.message_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public LogResponse Clone() {
+      return new LogResponse(this);
+    }
+
+    /// <summary>Field number for the "instance_name" field.</summary>
+    public const int InstanceNameFieldNumber = 1;
+    private string instanceName_ = "";
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public string InstanceName {
+      get { return instanceName_; }
+      set {
+        instanceName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    /// <summary>Field number for the "status" field.</summary>
+    public const int StatusFieldNumber = 2;
+    private global::ModeliRpc.Fmi2Status status_ = 0;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public global::ModeliRpc.Fmi2Status Status {
+      get { return status_; }
+      set {
+        status_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "message" field.</summary>
+    public const int MessageFieldNumber = 3;
+    private string message_ = "";
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public string Message {
+      get { return message_; }
+      set {
+        message_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as LogResponse);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(LogResponse other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (InstanceName != other.InstanceName) return false;
+      if (Status != other.Status) return false;
+      if (Message != other.Message) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (InstanceName.Length != 0) hash ^= InstanceName.GetHashCode();
+      if (Status != 0) hash ^= Status.GetHashCode();
+      if (Message.Length != 0) hash ^= Message.GetHashCode();
+      return hash;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override string ToString() {
+      return pb::JsonFormatter.ToDiagnosticString(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void WriteTo(pb::CodedOutputStream output) {
+      if (InstanceName.Length != 0) {
+        output.WriteRawTag(10);
+        output.WriteString(InstanceName);
+      }
+      if (Status != 0) {
+        output.WriteRawTag(16);
+        output.WriteEnum((int) Status);
+      }
+      if (Message.Length != 0) {
+        output.WriteRawTag(26);
+        output.WriteString(Message);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (InstanceName.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeStringSize(InstanceName);
+      }
+      if (Status != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Status);
+      }
+      if (Message.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeStringSize(Message);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(LogResponse other) {
+      if (other == null) {
+        return;
+      }
+      if (other.InstanceName.Length != 0) {
+        InstanceName = other.InstanceName;
+      }
+      if (other.Status != 0) {
+        Status = other.Status;
+      }
+      if (other.Message.Length != 0) {
+        Message = other.Message;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 10: {
+            InstanceName = input.ReadString();
+            break;
+          }
+          case 16: {
+            status_ = (global::ModeliRpc.Fmi2Status) input.ReadEnum();
+            break;
+          }
+          case 26: {
+            Message = input.ReadString();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/ModeliRpc_Cs/ModeliRpcGrpc.cs b/ModeliRpc_Cs/ModeliRpcGrpc.cs
new file mode 100644
index 0000000000000000000000000000000000000000..7ca987ecdb791d7d41c92cec845a3477279a9449
--- /dev/null
+++ b/ModeliRpc_Cs/ModeliRpcGrpc.cs
@@ -0,0 +1,557 @@
+// <auto-generated>
+//     Generated by the protocol buffer compiler.  DO NOT EDIT!
+//     source: ModeliRpc.proto
+// </auto-generated>
+// Original file comments:
+// Language defintion
+#pragma warning disable 1591
+#region Designer generated code
+
+using System;
+using System.Threading;
+using System.Threading.Tasks;
+using grpc = global::Grpc.Core;
+
+namespace ModeliRpc {
+  /// <summary>
+  /// Service must be offered by a ModeliChart Backend
+  /// Default Port ist 52062
+  /// </summary>
+  public static partial class ModeliBackend
+  {
+    static readonly string __ServiceName = "ModeliRpc.ModeliBackend";
+
+    static readonly grpc::Marshaller<global::ModeliRpc.PlayRequest> __Marshaller_PlayRequest = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::ModeliRpc.PlayRequest.Parser.ParseFrom);
+    static readonly grpc::Marshaller<global::ModeliRpc.PlayResponse> __Marshaller_PlayResponse = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::ModeliRpc.PlayResponse.Parser.ParseFrom);
+    static readonly grpc::Marshaller<global::ModeliRpc.PlayFastRequest> __Marshaller_PlayFastRequest = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::ModeliRpc.PlayFastRequest.Parser.ParseFrom);
+    static readonly grpc::Marshaller<global::ModeliRpc.PlayFastResponse> __Marshaller_PlayFastResponse = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::ModeliRpc.PlayFastResponse.Parser.ParseFrom);
+    static readonly grpc::Marshaller<global::ModeliRpc.PauseRequest> __Marshaller_PauseRequest = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::ModeliRpc.PauseRequest.Parser.ParseFrom);
+    static readonly grpc::Marshaller<global::ModeliRpc.PauseResponse> __Marshaller_PauseResponse = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::ModeliRpc.PauseResponse.Parser.ParseFrom);
+    static readonly grpc::Marshaller<global::ModeliRpc.StopRequest> __Marshaller_StopRequest = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::ModeliRpc.StopRequest.Parser.ParseFrom);
+    static readonly grpc::Marshaller<global::ModeliRpc.StopResponse> __Marshaller_StopResponse = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::ModeliRpc.StopResponse.Parser.ParseFrom);
+    static readonly grpc::Marshaller<global::ModeliRpc.AddFmuRequest> __Marshaller_AddFmuRequest = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::ModeliRpc.AddFmuRequest.Parser.ParseFrom);
+    static readonly grpc::Marshaller<global::ModeliRpc.AddFmuResponse> __Marshaller_AddFmuResponse = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::ModeliRpc.AddFmuResponse.Parser.ParseFrom);
+    static readonly grpc::Marshaller<global::ModeliRpc.RemoveFmuRequest> __Marshaller_RemoveFmuRequest = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::ModeliRpc.RemoveFmuRequest.Parser.ParseFrom);
+    static readonly grpc::Marshaller<global::ModeliRpc.RemoveFmuResponse> __Marshaller_RemoveFmuResponse = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::ModeliRpc.RemoveFmuResponse.Parser.ParseFrom);
+    static readonly grpc::Marshaller<global::ModeliRpc.AddChannelLinkRequest> __Marshaller_AddChannelLinkRequest = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::ModeliRpc.AddChannelLinkRequest.Parser.ParseFrom);
+    static readonly grpc::Marshaller<global::ModeliRpc.AddChannelLinkResponse> __Marshaller_AddChannelLinkResponse = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::ModeliRpc.AddChannelLinkResponse.Parser.ParseFrom);
+    static readonly grpc::Marshaller<global::ModeliRpc.RemoveChannelLinkRequest> __Marshaller_RemoveChannelLinkRequest = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::ModeliRpc.RemoveChannelLinkRequest.Parser.ParseFrom);
+    static readonly grpc::Marshaller<global::ModeliRpc.RemoveChannelLinkResponse> __Marshaller_RemoveChannelLinkResponse = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::ModeliRpc.RemoveChannelLinkResponse.Parser.ParseFrom);
+    static readonly grpc::Marshaller<global::ModeliRpc.SetValuesReqest> __Marshaller_SetValuesReqest = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::ModeliRpc.SetValuesReqest.Parser.ParseFrom);
+    static readonly grpc::Marshaller<global::ModeliRpc.SetValuesResponse> __Marshaller_SetValuesResponse = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::ModeliRpc.SetValuesResponse.Parser.ParseFrom);
+    static readonly grpc::Marshaller<global::ModeliRpc.NewValuesRequest> __Marshaller_NewValuesRequest = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::ModeliRpc.NewValuesRequest.Parser.ParseFrom);
+    static readonly grpc::Marshaller<global::ModeliRpc.NewValuesResponse> __Marshaller_NewValuesResponse = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::ModeliRpc.NewValuesResponse.Parser.ParseFrom);
+    static readonly grpc::Marshaller<global::ModeliRpc.LogRequest> __Marshaller_LogRequest = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::ModeliRpc.LogRequest.Parser.ParseFrom);
+    static readonly grpc::Marshaller<global::ModeliRpc.LogResponse> __Marshaller_LogResponse = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::ModeliRpc.LogResponse.Parser.ParseFrom);
+
+    static readonly grpc::Method<global::ModeliRpc.PlayRequest, global::ModeliRpc.PlayResponse> __Method_Play = new grpc::Method<global::ModeliRpc.PlayRequest, global::ModeliRpc.PlayResponse>(
+        grpc::MethodType.Unary,
+        __ServiceName,
+        "Play",
+        __Marshaller_PlayRequest,
+        __Marshaller_PlayResponse);
+
+    static readonly grpc::Method<global::ModeliRpc.PlayFastRequest, global::ModeliRpc.PlayFastResponse> __Method_PlayFast = new grpc::Method<global::ModeliRpc.PlayFastRequest, global::ModeliRpc.PlayFastResponse>(
+        grpc::MethodType.Unary,
+        __ServiceName,
+        "PlayFast",
+        __Marshaller_PlayFastRequest,
+        __Marshaller_PlayFastResponse);
+
+    static readonly grpc::Method<global::ModeliRpc.PauseRequest, global::ModeliRpc.PauseResponse> __Method_Pause = new grpc::Method<global::ModeliRpc.PauseRequest, global::ModeliRpc.PauseResponse>(
+        grpc::MethodType.Unary,
+        __ServiceName,
+        "Pause",
+        __Marshaller_PauseRequest,
+        __Marshaller_PauseResponse);
+
+    static readonly grpc::Method<global::ModeliRpc.StopRequest, global::ModeliRpc.StopResponse> __Method_Stop = new grpc::Method<global::ModeliRpc.StopRequest, global::ModeliRpc.StopResponse>(
+        grpc::MethodType.Unary,
+        __ServiceName,
+        "Stop",
+        __Marshaller_StopRequest,
+        __Marshaller_StopResponse);
+
+    static readonly grpc::Method<global::ModeliRpc.AddFmuRequest, global::ModeliRpc.AddFmuResponse> __Method_AddFmu = new grpc::Method<global::ModeliRpc.AddFmuRequest, global::ModeliRpc.AddFmuResponse>(
+        grpc::MethodType.ClientStreaming,
+        __ServiceName,
+        "AddFmu",
+        __Marshaller_AddFmuRequest,
+        __Marshaller_AddFmuResponse);
+
+    static readonly grpc::Method<global::ModeliRpc.RemoveFmuRequest, global::ModeliRpc.RemoveFmuResponse> __Method_RemoveFmu = new grpc::Method<global::ModeliRpc.RemoveFmuRequest, global::ModeliRpc.RemoveFmuResponse>(
+        grpc::MethodType.Unary,
+        __ServiceName,
+        "RemoveFmu",
+        __Marshaller_RemoveFmuRequest,
+        __Marshaller_RemoveFmuResponse);
+
+    static readonly grpc::Method<global::ModeliRpc.AddChannelLinkRequest, global::ModeliRpc.AddChannelLinkResponse> __Method_AddChannelLink = new grpc::Method<global::ModeliRpc.AddChannelLinkRequest, global::ModeliRpc.AddChannelLinkResponse>(
+        grpc::MethodType.Unary,
+        __ServiceName,
+        "AddChannelLink",
+        __Marshaller_AddChannelLinkRequest,
+        __Marshaller_AddChannelLinkResponse);
+
+    static readonly grpc::Method<global::ModeliRpc.RemoveChannelLinkRequest, global::ModeliRpc.RemoveChannelLinkResponse> __Method_RemoveChannelLink = new grpc::Method<global::ModeliRpc.RemoveChannelLinkRequest, global::ModeliRpc.RemoveChannelLinkResponse>(
+        grpc::MethodType.Unary,
+        __ServiceName,
+        "RemoveChannelLink",
+        __Marshaller_RemoveChannelLinkRequest,
+        __Marshaller_RemoveChannelLinkResponse);
+
+    static readonly grpc::Method<global::ModeliRpc.SetValuesReqest, global::ModeliRpc.SetValuesResponse> __Method_SetValues = new grpc::Method<global::ModeliRpc.SetValuesReqest, global::ModeliRpc.SetValuesResponse>(
+        grpc::MethodType.Unary,
+        __ServiceName,
+        "SetValues",
+        __Marshaller_SetValuesReqest,
+        __Marshaller_SetValuesResponse);
+
+    static readonly grpc::Method<global::ModeliRpc.NewValuesRequest, global::ModeliRpc.NewValuesResponse> __Method_NewValues = new grpc::Method<global::ModeliRpc.NewValuesRequest, global::ModeliRpc.NewValuesResponse>(
+        grpc::MethodType.ServerStreaming,
+        __ServiceName,
+        "NewValues",
+        __Marshaller_NewValuesRequest,
+        __Marshaller_NewValuesResponse);
+
+    static readonly grpc::Method<global::ModeliRpc.LogRequest, global::ModeliRpc.LogResponse> __Method_Log = new grpc::Method<global::ModeliRpc.LogRequest, global::ModeliRpc.LogResponse>(
+        grpc::MethodType.ServerStreaming,
+        __ServiceName,
+        "Log",
+        __Marshaller_LogRequest,
+        __Marshaller_LogResponse);
+
+    /// <summary>Service descriptor</summary>
+    public static global::Google.Protobuf.Reflection.ServiceDescriptor Descriptor
+    {
+      get { return global::ModeliRpc.ModeliRpcReflection.Descriptor.Services[0]; }
+    }
+
+    /// <summary>Base class for server-side implementations of ModeliBackend</summary>
+    public abstract partial class ModeliBackendBase
+    {
+      /// <summary>
+      /// Simulation state control
+      /// </summary>
+      /// <param name="request">The request received from the client.</param>
+      /// <param name="context">The context of the server-side call handler being invoked.</param>
+      /// <returns>The response to send back to the client (wrapped by a task).</returns>
+      public virtual global::System.Threading.Tasks.Task<global::ModeliRpc.PlayResponse> Play(global::ModeliRpc.PlayRequest request, grpc::ServerCallContext context)
+      {
+        throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
+      }
+
+      public virtual global::System.Threading.Tasks.Task<global::ModeliRpc.PlayFastResponse> PlayFast(global::ModeliRpc.PlayFastRequest request, grpc::ServerCallContext context)
+      {
+        throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
+      }
+
+      public virtual global::System.Threading.Tasks.Task<global::ModeliRpc.PauseResponse> Pause(global::ModeliRpc.PauseRequest request, grpc::ServerCallContext context)
+      {
+        throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
+      }
+
+      public virtual global::System.Threading.Tasks.Task<global::ModeliRpc.StopResponse> Stop(global::ModeliRpc.StopRequest request, grpc::ServerCallContext context)
+      {
+        throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
+      }
+
+      /// <summary>
+      /// Fmu management
+      /// Transfer FMU via stream and use chunking
+      /// </summary>
+      /// <param name="requestStream">Used for reading requests from the client.</param>
+      /// <param name="context">The context of the server-side call handler being invoked.</param>
+      /// <returns>The response to send back to the client (wrapped by a task).</returns>
+      public virtual global::System.Threading.Tasks.Task<global::ModeliRpc.AddFmuResponse> AddFmu(grpc::IAsyncStreamReader<global::ModeliRpc.AddFmuRequest> requestStream, grpc::ServerCallContext context)
+      {
+        throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
+      }
+
+      public virtual global::System.Threading.Tasks.Task<global::ModeliRpc.RemoveFmuResponse> RemoveFmu(global::ModeliRpc.RemoveFmuRequest request, grpc::ServerCallContext context)
+      {
+        throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
+      }
+
+      /// <summary>
+      /// ChannelLink management
+      /// </summary>
+      /// <param name="request">The request received from the client.</param>
+      /// <param name="context">The context of the server-side call handler being invoked.</param>
+      /// <returns>The response to send back to the client (wrapped by a task).</returns>
+      public virtual global::System.Threading.Tasks.Task<global::ModeliRpc.AddChannelLinkResponse> AddChannelLink(global::ModeliRpc.AddChannelLinkRequest request, grpc::ServerCallContext context)
+      {
+        throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
+      }
+
+      public virtual global::System.Threading.Tasks.Task<global::ModeliRpc.RemoveChannelLinkResponse> RemoveChannelLink(global::ModeliRpc.RemoveChannelLinkRequest request, grpc::ServerCallContext context)
+      {
+        throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
+      }
+
+      /// <summary>
+      /// Transfer settable channel values
+      /// </summary>
+      /// <param name="request">The request received from the client.</param>
+      /// <param name="context">The context of the server-side call handler being invoked.</param>
+      /// <returns>The response to send back to the client (wrapped by a task).</returns>
+      public virtual global::System.Threading.Tasks.Task<global::ModeliRpc.SetValuesResponse> SetValues(global::ModeliRpc.SetValuesReqest request, grpc::ServerCallContext context)
+      {
+        throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
+      }
+
+      /// <summary>
+      /// Stream simulation results to the client
+      /// </summary>
+      /// <param name="request">The request received from the client.</param>
+      /// <param name="responseStream">Used for sending responses back to the client.</param>
+      /// <param name="context">The context of the server-side call handler being invoked.</param>
+      /// <returns>A task indicating completion of the handler.</returns>
+      public virtual global::System.Threading.Tasks.Task NewValues(global::ModeliRpc.NewValuesRequest request, grpc::IServerStreamWriter<global::ModeliRpc.NewValuesResponse> responseStream, grpc::ServerCallContext context)
+      {
+        throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
+      }
+
+      /// <summary>
+      /// Stream log messages to the client
+      /// </summary>
+      /// <param name="request">The request received from the client.</param>
+      /// <param name="responseStream">Used for sending responses back to the client.</param>
+      /// <param name="context">The context of the server-side call handler being invoked.</param>
+      /// <returns>A task indicating completion of the handler.</returns>
+      public virtual global::System.Threading.Tasks.Task Log(global::ModeliRpc.LogRequest request, grpc::IServerStreamWriter<global::ModeliRpc.LogResponse> responseStream, grpc::ServerCallContext context)
+      {
+        throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
+      }
+
+    }
+
+    /// <summary>Client for ModeliBackend</summary>
+    public partial class ModeliBackendClient : grpc::ClientBase<ModeliBackendClient>
+    {
+      /// <summary>Creates a new client for ModeliBackend</summary>
+      /// <param name="channel">The channel to use to make remote calls.</param>
+      public ModeliBackendClient(grpc::Channel channel) : base(channel)
+      {
+      }
+      /// <summary>Creates a new client for ModeliBackend that uses a custom <c>CallInvoker</c>.</summary>
+      /// <param name="callInvoker">The callInvoker to use to make remote calls.</param>
+      public ModeliBackendClient(grpc::CallInvoker callInvoker) : base(callInvoker)
+      {
+      }
+      /// <summary>Protected parameterless constructor to allow creation of test doubles.</summary>
+      protected ModeliBackendClient() : base()
+      {
+      }
+      /// <summary>Protected constructor to allow creation of configured clients.</summary>
+      /// <param name="configuration">The client configuration.</param>
+      protected ModeliBackendClient(ClientBaseConfiguration configuration) : base(configuration)
+      {
+      }
+
+      /// <summary>
+      /// Simulation state control
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the call.</param>
+      /// <returns>The response received from the server.</returns>
+      public virtual global::ModeliRpc.PlayResponse Play(global::ModeliRpc.PlayRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+      {
+        return Play(request, new grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      /// <summary>
+      /// Simulation state control
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The response received from the server.</returns>
+      public virtual global::ModeliRpc.PlayResponse Play(global::ModeliRpc.PlayRequest request, grpc::CallOptions options)
+      {
+        return CallInvoker.BlockingUnaryCall(__Method_Play, null, options, request);
+      }
+      /// <summary>
+      /// Simulation state control
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the call.</param>
+      /// <returns>The call object.</returns>
+      public virtual grpc::AsyncUnaryCall<global::ModeliRpc.PlayResponse> PlayAsync(global::ModeliRpc.PlayRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+      {
+        return PlayAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      /// <summary>
+      /// Simulation state control
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The call object.</returns>
+      public virtual grpc::AsyncUnaryCall<global::ModeliRpc.PlayResponse> PlayAsync(global::ModeliRpc.PlayRequest request, grpc::CallOptions options)
+      {
+        return CallInvoker.AsyncUnaryCall(__Method_Play, null, options, request);
+      }
+      public virtual global::ModeliRpc.PlayFastResponse PlayFast(global::ModeliRpc.PlayFastRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+      {
+        return PlayFast(request, new grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      public virtual global::ModeliRpc.PlayFastResponse PlayFast(global::ModeliRpc.PlayFastRequest request, grpc::CallOptions options)
+      {
+        return CallInvoker.BlockingUnaryCall(__Method_PlayFast, null, options, request);
+      }
+      public virtual grpc::AsyncUnaryCall<global::ModeliRpc.PlayFastResponse> PlayFastAsync(global::ModeliRpc.PlayFastRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+      {
+        return PlayFastAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      public virtual grpc::AsyncUnaryCall<global::ModeliRpc.PlayFastResponse> PlayFastAsync(global::ModeliRpc.PlayFastRequest request, grpc::CallOptions options)
+      {
+        return CallInvoker.AsyncUnaryCall(__Method_PlayFast, null, options, request);
+      }
+      public virtual global::ModeliRpc.PauseResponse Pause(global::ModeliRpc.PauseRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+      {
+        return Pause(request, new grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      public virtual global::ModeliRpc.PauseResponse Pause(global::ModeliRpc.PauseRequest request, grpc::CallOptions options)
+      {
+        return CallInvoker.BlockingUnaryCall(__Method_Pause, null, options, request);
+      }
+      public virtual grpc::AsyncUnaryCall<global::ModeliRpc.PauseResponse> PauseAsync(global::ModeliRpc.PauseRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+      {
+        return PauseAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      public virtual grpc::AsyncUnaryCall<global::ModeliRpc.PauseResponse> PauseAsync(global::ModeliRpc.PauseRequest request, grpc::CallOptions options)
+      {
+        return CallInvoker.AsyncUnaryCall(__Method_Pause, null, options, request);
+      }
+      public virtual global::ModeliRpc.StopResponse Stop(global::ModeliRpc.StopRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+      {
+        return Stop(request, new grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      public virtual global::ModeliRpc.StopResponse Stop(global::ModeliRpc.StopRequest request, grpc::CallOptions options)
+      {
+        return CallInvoker.BlockingUnaryCall(__Method_Stop, null, options, request);
+      }
+      public virtual grpc::AsyncUnaryCall<global::ModeliRpc.StopResponse> StopAsync(global::ModeliRpc.StopRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+      {
+        return StopAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      public virtual grpc::AsyncUnaryCall<global::ModeliRpc.StopResponse> StopAsync(global::ModeliRpc.StopRequest request, grpc::CallOptions options)
+      {
+        return CallInvoker.AsyncUnaryCall(__Method_Stop, null, options, request);
+      }
+      /// <summary>
+      /// Fmu management
+      /// Transfer FMU via stream and use chunking
+      /// </summary>
+      /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the call.</param>
+      /// <returns>The call object.</returns>
+      public virtual grpc::AsyncClientStreamingCall<global::ModeliRpc.AddFmuRequest, global::ModeliRpc.AddFmuResponse> AddFmu(grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+      {
+        return AddFmu(new grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      /// <summary>
+      /// Fmu management
+      /// Transfer FMU via stream and use chunking
+      /// </summary>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The call object.</returns>
+      public virtual grpc::AsyncClientStreamingCall<global::ModeliRpc.AddFmuRequest, global::ModeliRpc.AddFmuResponse> AddFmu(grpc::CallOptions options)
+      {
+        return CallInvoker.AsyncClientStreamingCall(__Method_AddFmu, null, options);
+      }
+      public virtual global::ModeliRpc.RemoveFmuResponse RemoveFmu(global::ModeliRpc.RemoveFmuRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+      {
+        return RemoveFmu(request, new grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      public virtual global::ModeliRpc.RemoveFmuResponse RemoveFmu(global::ModeliRpc.RemoveFmuRequest request, grpc::CallOptions options)
+      {
+        return CallInvoker.BlockingUnaryCall(__Method_RemoveFmu, null, options, request);
+      }
+      public virtual grpc::AsyncUnaryCall<global::ModeliRpc.RemoveFmuResponse> RemoveFmuAsync(global::ModeliRpc.RemoveFmuRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+      {
+        return RemoveFmuAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      public virtual grpc::AsyncUnaryCall<global::ModeliRpc.RemoveFmuResponse> RemoveFmuAsync(global::ModeliRpc.RemoveFmuRequest request, grpc::CallOptions options)
+      {
+        return CallInvoker.AsyncUnaryCall(__Method_RemoveFmu, null, options, request);
+      }
+      /// <summary>
+      /// ChannelLink management
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the call.</param>
+      /// <returns>The response received from the server.</returns>
+      public virtual global::ModeliRpc.AddChannelLinkResponse AddChannelLink(global::ModeliRpc.AddChannelLinkRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+      {
+        return AddChannelLink(request, new grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      /// <summary>
+      /// ChannelLink management
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The response received from the server.</returns>
+      public virtual global::ModeliRpc.AddChannelLinkResponse AddChannelLink(global::ModeliRpc.AddChannelLinkRequest request, grpc::CallOptions options)
+      {
+        return CallInvoker.BlockingUnaryCall(__Method_AddChannelLink, null, options, request);
+      }
+      /// <summary>
+      /// ChannelLink management
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the call.</param>
+      /// <returns>The call object.</returns>
+      public virtual grpc::AsyncUnaryCall<global::ModeliRpc.AddChannelLinkResponse> AddChannelLinkAsync(global::ModeliRpc.AddChannelLinkRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+      {
+        return AddChannelLinkAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      /// <summary>
+      /// ChannelLink management
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The call object.</returns>
+      public virtual grpc::AsyncUnaryCall<global::ModeliRpc.AddChannelLinkResponse> AddChannelLinkAsync(global::ModeliRpc.AddChannelLinkRequest request, grpc::CallOptions options)
+      {
+        return CallInvoker.AsyncUnaryCall(__Method_AddChannelLink, null, options, request);
+      }
+      public virtual global::ModeliRpc.RemoveChannelLinkResponse RemoveChannelLink(global::ModeliRpc.RemoveChannelLinkRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+      {
+        return RemoveChannelLink(request, new grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      public virtual global::ModeliRpc.RemoveChannelLinkResponse RemoveChannelLink(global::ModeliRpc.RemoveChannelLinkRequest request, grpc::CallOptions options)
+      {
+        return CallInvoker.BlockingUnaryCall(__Method_RemoveChannelLink, null, options, request);
+      }
+      public virtual grpc::AsyncUnaryCall<global::ModeliRpc.RemoveChannelLinkResponse> RemoveChannelLinkAsync(global::ModeliRpc.RemoveChannelLinkRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+      {
+        return RemoveChannelLinkAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      public virtual grpc::AsyncUnaryCall<global::ModeliRpc.RemoveChannelLinkResponse> RemoveChannelLinkAsync(global::ModeliRpc.RemoveChannelLinkRequest request, grpc::CallOptions options)
+      {
+        return CallInvoker.AsyncUnaryCall(__Method_RemoveChannelLink, null, options, request);
+      }
+      /// <summary>
+      /// Transfer settable channel values
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the call.</param>
+      /// <returns>The response received from the server.</returns>
+      public virtual global::ModeliRpc.SetValuesResponse SetValues(global::ModeliRpc.SetValuesReqest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+      {
+        return SetValues(request, new grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      /// <summary>
+      /// Transfer settable channel values
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The response received from the server.</returns>
+      public virtual global::ModeliRpc.SetValuesResponse SetValues(global::ModeliRpc.SetValuesReqest request, grpc::CallOptions options)
+      {
+        return CallInvoker.BlockingUnaryCall(__Method_SetValues, null, options, request);
+      }
+      /// <summary>
+      /// Transfer settable channel values
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the call.</param>
+      /// <returns>The call object.</returns>
+      public virtual grpc::AsyncUnaryCall<global::ModeliRpc.SetValuesResponse> SetValuesAsync(global::ModeliRpc.SetValuesReqest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+      {
+        return SetValuesAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      /// <summary>
+      /// Transfer settable channel values
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The call object.</returns>
+      public virtual grpc::AsyncUnaryCall<global::ModeliRpc.SetValuesResponse> SetValuesAsync(global::ModeliRpc.SetValuesReqest request, grpc::CallOptions options)
+      {
+        return CallInvoker.AsyncUnaryCall(__Method_SetValues, null, options, request);
+      }
+      /// <summary>
+      /// Stream simulation results to the client
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the call.</param>
+      /// <returns>The call object.</returns>
+      public virtual grpc::AsyncServerStreamingCall<global::ModeliRpc.NewValuesResponse> NewValues(global::ModeliRpc.NewValuesRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+      {
+        return NewValues(request, new grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      /// <summary>
+      /// Stream simulation results to the client
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The call object.</returns>
+      public virtual grpc::AsyncServerStreamingCall<global::ModeliRpc.NewValuesResponse> NewValues(global::ModeliRpc.NewValuesRequest request, grpc::CallOptions options)
+      {
+        return CallInvoker.AsyncServerStreamingCall(__Method_NewValues, null, options, request);
+      }
+      /// <summary>
+      /// Stream log messages to the client
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the call.</param>
+      /// <returns>The call object.</returns>
+      public virtual grpc::AsyncServerStreamingCall<global::ModeliRpc.LogResponse> Log(global::ModeliRpc.LogRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
+      {
+        return Log(request, new grpc::CallOptions(headers, deadline, cancellationToken));
+      }
+      /// <summary>
+      /// Stream log messages to the client
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The call object.</returns>
+      public virtual grpc::AsyncServerStreamingCall<global::ModeliRpc.LogResponse> Log(global::ModeliRpc.LogRequest request, grpc::CallOptions options)
+      {
+        return CallInvoker.AsyncServerStreamingCall(__Method_Log, null, options, request);
+      }
+      /// <summary>Creates a new instance of client from given <c>ClientBaseConfiguration</c>.</summary>
+      protected override ModeliBackendClient NewInstance(ClientBaseConfiguration configuration)
+      {
+        return new ModeliBackendClient(configuration);
+      }
+    }
+
+    /// <summary>Creates service definition that can be registered with a server</summary>
+    /// <param name="serviceImpl">An object implementing the server-side handling logic.</param>
+    public static grpc::ServerServiceDefinition BindService(ModeliBackendBase serviceImpl)
+    {
+      return grpc::ServerServiceDefinition.CreateBuilder()
+          .AddMethod(__Method_Play, serviceImpl.Play)
+          .AddMethod(__Method_PlayFast, serviceImpl.PlayFast)
+          .AddMethod(__Method_Pause, serviceImpl.Pause)
+          .AddMethod(__Method_Stop, serviceImpl.Stop)
+          .AddMethod(__Method_AddFmu, serviceImpl.AddFmu)
+          .AddMethod(__Method_RemoveFmu, serviceImpl.RemoveFmu)
+          .AddMethod(__Method_AddChannelLink, serviceImpl.AddChannelLink)
+          .AddMethod(__Method_RemoveChannelLink, serviceImpl.RemoveChannelLink)
+          .AddMethod(__Method_SetValues, serviceImpl.SetValues)
+          .AddMethod(__Method_NewValues, serviceImpl.NewValues)
+          .AddMethod(__Method_Log, serviceImpl.Log).Build();
+    }
+
+  }
+}
+#endregion
diff --git a/generate_protos.bat b/generate_protos.bat
new file mode 100644
index 0000000000000000000000000000000000000000..3c2091bbb463e96811caaa1f32cdc8141b843503
--- /dev/null
+++ b/generate_protos.bat
@@ -0,0 +1,6 @@
+md ModeliRpc_Cs
+md ModeliRpc_Cpp
+protoc.exe --csharp_out ModeliRpc_Cs  ModeliRpc.proto --grpc_out ModeliRpc_Cs --plugin=protoc-gen-grpc=grpc_csharp_plugin.exe
+protoc.exe --cpp_out ModeliRpc_Cpp  ModeliRpc.proto --grpc_out ModeliRpc_Cpp --plugin=protoc-gen-grpc=grpc_cpp_plugin.exe
+
+cmd /K
\ No newline at end of file
diff --git a/grpc_cpp_plugin.exe b/grpc_cpp_plugin.exe
new file mode 100644
index 0000000000000000000000000000000000000000..800255f314420788858b39b5e64f8dafee508400
Binary files /dev/null and b/grpc_cpp_plugin.exe differ
diff --git a/grpc_csharp_plugin.exe b/grpc_csharp_plugin.exe
new file mode 100644
index 0000000000000000000000000000000000000000..d26c670f9f8cb4f4f7ddcecbff756d66d253a901
Binary files /dev/null and b/grpc_csharp_plugin.exe differ
diff --git a/protoc.exe b/protoc.exe
new file mode 100644
index 0000000000000000000000000000000000000000..e533f068d70f8f1c97205e100de231a5cbb57d48
Binary files /dev/null and b/protoc.exe differ