You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
318 lines
21 KiB
318 lines
21 KiB
// <auto-generated>
|
|
// Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
// source: lobby.proto
|
|
// </auto-generated>
|
|
#pragma warning disable 0414, 1591
|
|
#region Designer generated code
|
|
|
|
using grpc = global::Grpc.Core;
|
|
|
|
namespace Lobby {
|
|
/// <summary>
|
|
/// Lobby functionality (client_id required for most of them)
|
|
/// </summary>
|
|
public static partial class Lobby
|
|
{
|
|
static readonly string __ServiceName = "lobby.Lobby";
|
|
|
|
static void __Helper_SerializeMessage(global::Google.Protobuf.IMessage message, grpc::SerializationContext context)
|
|
{
|
|
#if !GRPC_DISABLE_PROTOBUF_BUFFER_SERIALIZATION
|
|
if (message is global::Google.Protobuf.IBufferMessage)
|
|
{
|
|
context.SetPayloadLength(message.CalculateSize());
|
|
global::Google.Protobuf.MessageExtensions.WriteTo(message, context.GetBufferWriter());
|
|
context.Complete();
|
|
return;
|
|
}
|
|
#endif
|
|
context.Complete(global::Google.Protobuf.MessageExtensions.ToByteArray(message));
|
|
}
|
|
|
|
static class __Helper_MessageCache<T>
|
|
{
|
|
public static readonly bool IsBufferMessage = global::System.Reflection.IntrospectionExtensions.GetTypeInfo(typeof(global::Google.Protobuf.IBufferMessage)).IsAssignableFrom(typeof(T));
|
|
}
|
|
|
|
static T __Helper_DeserializeMessage<T>(grpc::DeserializationContext context, global::Google.Protobuf.MessageParser<T> parser) where T : global::Google.Protobuf.IMessage<T>
|
|
{
|
|
#if !GRPC_DISABLE_PROTOBUF_BUFFER_SERIALIZATION
|
|
if (__Helper_MessageCache<T>.IsBufferMessage)
|
|
{
|
|
return parser.ParseFrom(context.PayloadAsReadOnlySequence());
|
|
}
|
|
#endif
|
|
return parser.ParseFrom(context.PayloadAsNewBuffer());
|
|
}
|
|
|
|
static readonly grpc::Marshaller<global::Lobby.CardID> __Marshaller_lobby_CardID = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Lobby.CardID.Parser));
|
|
static readonly grpc::Marshaller<global::Lobby.Image> __Marshaller_lobby_Image = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Lobby.Image.Parser));
|
|
static readonly grpc::Marshaller<global::Google.Protobuf.WellKnownTypes.Empty> __Marshaller_google_protobuf_Empty = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Google.Protobuf.WellKnownTypes.Empty.Parser));
|
|
static readonly grpc::Marshaller<global::Common.Name> __Marshaller_common_Name = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Common.Name.Parser));
|
|
static readonly grpc::Marshaller<global::Lobby.SingleVote> __Marshaller_lobby_SingleVote = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Lobby.SingleVote.Parser));
|
|
static readonly grpc::Marshaller<global::Lobby.LastStatusTimestamp> __Marshaller_lobby_LastStatusTimestamp = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Lobby.LastStatusTimestamp.Parser));
|
|
static readonly grpc::Marshaller<global::Lobby.HasNewStatus> __Marshaller_lobby_HasNewStatus = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Lobby.HasNewStatus.Parser));
|
|
static readonly grpc::Marshaller<global::Lobby.LobbyStatus> __Marshaller_lobby_LobbyStatus = grpc::Marshallers.Create(__Helper_SerializeMessage, context => __Helper_DeserializeMessage(context, global::Lobby.LobbyStatus.Parser));
|
|
|
|
static readonly grpc::Method<global::Lobby.CardID, global::Lobby.Image> __Method_getCardImage = new grpc::Method<global::Lobby.CardID, global::Lobby.Image>(
|
|
grpc::MethodType.Unary,
|
|
__ServiceName,
|
|
"getCardImage",
|
|
__Marshaller_lobby_CardID,
|
|
__Marshaller_lobby_Image);
|
|
|
|
static readonly grpc::Method<global::Google.Protobuf.WellKnownTypes.Empty, global::Common.Name> __Method_users = new grpc::Method<global::Google.Protobuf.WellKnownTypes.Empty, global::Common.Name>(
|
|
grpc::MethodType.ServerStreaming,
|
|
__ServiceName,
|
|
"users",
|
|
__Marshaller_google_protobuf_Empty,
|
|
__Marshaller_common_Name);
|
|
|
|
static readonly grpc::Method<global::Lobby.SingleVote, global::Google.Protobuf.WellKnownTypes.Empty> __Method_vote = new grpc::Method<global::Lobby.SingleVote, global::Google.Protobuf.WellKnownTypes.Empty>(
|
|
grpc::MethodType.Unary,
|
|
__ServiceName,
|
|
"vote",
|
|
__Marshaller_lobby_SingleVote,
|
|
__Marshaller_google_protobuf_Empty);
|
|
|
|
static readonly grpc::Method<global::Google.Protobuf.WellKnownTypes.Empty, global::Google.Protobuf.WellKnownTypes.Empty> __Method_ready = new grpc::Method<global::Google.Protobuf.WellKnownTypes.Empty, global::Google.Protobuf.WellKnownTypes.Empty>(
|
|
grpc::MethodType.Unary,
|
|
__ServiceName,
|
|
"ready",
|
|
__Marshaller_google_protobuf_Empty,
|
|
__Marshaller_google_protobuf_Empty);
|
|
|
|
static readonly grpc::Method<global::Lobby.LastStatusTimestamp, global::Lobby.HasNewStatus> __Method_hasNewStatus = new grpc::Method<global::Lobby.LastStatusTimestamp, global::Lobby.HasNewStatus>(
|
|
grpc::MethodType.Unary,
|
|
__ServiceName,
|
|
"hasNewStatus",
|
|
__Marshaller_lobby_LastStatusTimestamp,
|
|
__Marshaller_lobby_HasNewStatus);
|
|
|
|
static readonly grpc::Method<global::Google.Protobuf.WellKnownTypes.Empty, global::Lobby.LobbyStatus> __Method_getStatus = new grpc::Method<global::Google.Protobuf.WellKnownTypes.Empty, global::Lobby.LobbyStatus>(
|
|
grpc::MethodType.Unary,
|
|
__ServiceName,
|
|
"getStatus",
|
|
__Marshaller_google_protobuf_Empty,
|
|
__Marshaller_lobby_LobbyStatus);
|
|
|
|
static readonly grpc::Method<global::Google.Protobuf.WellKnownTypes.Empty, global::Google.Protobuf.WellKnownTypes.Empty> __Method_leave = new grpc::Method<global::Google.Protobuf.WellKnownTypes.Empty, global::Google.Protobuf.WellKnownTypes.Empty>(
|
|
grpc::MethodType.Unary,
|
|
__ServiceName,
|
|
"leave",
|
|
__Marshaller_google_protobuf_Empty,
|
|
__Marshaller_google_protobuf_Empty);
|
|
|
|
/// <summary>Service descriptor</summary>
|
|
public static global::Google.Protobuf.Reflection.ServiceDescriptor Descriptor
|
|
{
|
|
get { return global::Lobby.LobbyReflection.Descriptor.Services[0]; }
|
|
}
|
|
|
|
/// <summary>Base class for server-side implementations of Lobby</summary>
|
|
[grpc::BindServiceMethod(typeof(Lobby), "BindService")]
|
|
public abstract partial class LobbyBase
|
|
{
|
|
public virtual global::System.Threading.Tasks.Task<global::Lobby.Image> getCardImage(global::Lobby.CardID request, grpc::ServerCallContext context)
|
|
{
|
|
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
|
|
}
|
|
|
|
public virtual global::System.Threading.Tasks.Task users(global::Google.Protobuf.WellKnownTypes.Empty request, grpc::IServerStreamWriter<global::Common.Name> responseStream, grpc::ServerCallContext context)
|
|
{
|
|
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
|
|
}
|
|
|
|
public virtual global::System.Threading.Tasks.Task<global::Google.Protobuf.WellKnownTypes.Empty> vote(global::Lobby.SingleVote request, grpc::ServerCallContext context)
|
|
{
|
|
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
|
|
}
|
|
|
|
public virtual global::System.Threading.Tasks.Task<global::Google.Protobuf.WellKnownTypes.Empty> ready(global::Google.Protobuf.WellKnownTypes.Empty request, grpc::ServerCallContext context)
|
|
{
|
|
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
|
|
}
|
|
|
|
public virtual global::System.Threading.Tasks.Task<global::Lobby.HasNewStatus> hasNewStatus(global::Lobby.LastStatusTimestamp request, grpc::ServerCallContext context)
|
|
{
|
|
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
|
|
}
|
|
|
|
public virtual global::System.Threading.Tasks.Task<global::Lobby.LobbyStatus> getStatus(global::Google.Protobuf.WellKnownTypes.Empty request, grpc::ServerCallContext context)
|
|
{
|
|
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
|
|
}
|
|
|
|
public virtual global::System.Threading.Tasks.Task<global::Google.Protobuf.WellKnownTypes.Empty> leave(global::Google.Protobuf.WellKnownTypes.Empty request, grpc::ServerCallContext context)
|
|
{
|
|
throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
|
|
}
|
|
|
|
}
|
|
|
|
/// <summary>Client for Lobby</summary>
|
|
public partial class LobbyClient : grpc::ClientBase<LobbyClient>
|
|
{
|
|
/// <summary>Creates a new client for Lobby</summary>
|
|
/// <param name="channel">The channel to use to make remote calls.</param>
|
|
public LobbyClient(grpc::ChannelBase channel) : base(channel)
|
|
{
|
|
}
|
|
/// <summary>Creates a new client for Lobby that uses a custom <c>CallInvoker</c>.</summary>
|
|
/// <param name="callInvoker">The callInvoker to use to make remote calls.</param>
|
|
public LobbyClient(grpc::CallInvoker callInvoker) : base(callInvoker)
|
|
{
|
|
}
|
|
/// <summary>Protected parameterless constructor to allow creation of test doubles.</summary>
|
|
protected LobbyClient() : base()
|
|
{
|
|
}
|
|
/// <summary>Protected constructor to allow creation of configured clients.</summary>
|
|
/// <param name="configuration">The client configuration.</param>
|
|
protected LobbyClient(ClientBaseConfiguration configuration) : base(configuration)
|
|
{
|
|
}
|
|
|
|
public virtual global::Lobby.Image getCardImage(global::Lobby.CardID request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
|
|
{
|
|
return getCardImage(request, new grpc::CallOptions(headers, deadline, cancellationToken));
|
|
}
|
|
public virtual global::Lobby.Image getCardImage(global::Lobby.CardID request, grpc::CallOptions options)
|
|
{
|
|
return CallInvoker.BlockingUnaryCall(__Method_getCardImage, null, options, request);
|
|
}
|
|
public virtual grpc::AsyncUnaryCall<global::Lobby.Image> getCardImageAsync(global::Lobby.CardID request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
|
|
{
|
|
return getCardImageAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
|
|
}
|
|
public virtual grpc::AsyncUnaryCall<global::Lobby.Image> getCardImageAsync(global::Lobby.CardID request, grpc::CallOptions options)
|
|
{
|
|
return CallInvoker.AsyncUnaryCall(__Method_getCardImage, null, options, request);
|
|
}
|
|
public virtual grpc::AsyncServerStreamingCall<global::Common.Name> users(global::Google.Protobuf.WellKnownTypes.Empty request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
|
|
{
|
|
return users(request, new grpc::CallOptions(headers, deadline, cancellationToken));
|
|
}
|
|
public virtual grpc::AsyncServerStreamingCall<global::Common.Name> users(global::Google.Protobuf.WellKnownTypes.Empty request, grpc::CallOptions options)
|
|
{
|
|
return CallInvoker.AsyncServerStreamingCall(__Method_users, null, options, request);
|
|
}
|
|
public virtual global::Google.Protobuf.WellKnownTypes.Empty vote(global::Lobby.SingleVote request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
|
|
{
|
|
return vote(request, new grpc::CallOptions(headers, deadline, cancellationToken));
|
|
}
|
|
public virtual global::Google.Protobuf.WellKnownTypes.Empty vote(global::Lobby.SingleVote request, grpc::CallOptions options)
|
|
{
|
|
return CallInvoker.BlockingUnaryCall(__Method_vote, null, options, request);
|
|
}
|
|
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> voteAsync(global::Lobby.SingleVote request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
|
|
{
|
|
return voteAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
|
|
}
|
|
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> voteAsync(global::Lobby.SingleVote request, grpc::CallOptions options)
|
|
{
|
|
return CallInvoker.AsyncUnaryCall(__Method_vote, null, options, request);
|
|
}
|
|
public virtual global::Google.Protobuf.WellKnownTypes.Empty ready(global::Google.Protobuf.WellKnownTypes.Empty request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
|
|
{
|
|
return ready(request, new grpc::CallOptions(headers, deadline, cancellationToken));
|
|
}
|
|
public virtual global::Google.Protobuf.WellKnownTypes.Empty ready(global::Google.Protobuf.WellKnownTypes.Empty request, grpc::CallOptions options)
|
|
{
|
|
return CallInvoker.BlockingUnaryCall(__Method_ready, null, options, request);
|
|
}
|
|
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> readyAsync(global::Google.Protobuf.WellKnownTypes.Empty request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
|
|
{
|
|
return readyAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
|
|
}
|
|
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> readyAsync(global::Google.Protobuf.WellKnownTypes.Empty request, grpc::CallOptions options)
|
|
{
|
|
return CallInvoker.AsyncUnaryCall(__Method_ready, null, options, request);
|
|
}
|
|
public virtual global::Lobby.HasNewStatus hasNewStatus(global::Lobby.LastStatusTimestamp request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
|
|
{
|
|
return hasNewStatus(request, new grpc::CallOptions(headers, deadline, cancellationToken));
|
|
}
|
|
public virtual global::Lobby.HasNewStatus hasNewStatus(global::Lobby.LastStatusTimestamp request, grpc::CallOptions options)
|
|
{
|
|
return CallInvoker.BlockingUnaryCall(__Method_hasNewStatus, null, options, request);
|
|
}
|
|
public virtual grpc::AsyncUnaryCall<global::Lobby.HasNewStatus> hasNewStatusAsync(global::Lobby.LastStatusTimestamp request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
|
|
{
|
|
return hasNewStatusAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
|
|
}
|
|
public virtual grpc::AsyncUnaryCall<global::Lobby.HasNewStatus> hasNewStatusAsync(global::Lobby.LastStatusTimestamp request, grpc::CallOptions options)
|
|
{
|
|
return CallInvoker.AsyncUnaryCall(__Method_hasNewStatus, null, options, request);
|
|
}
|
|
public virtual global::Lobby.LobbyStatus getStatus(global::Google.Protobuf.WellKnownTypes.Empty request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
|
|
{
|
|
return getStatus(request, new grpc::CallOptions(headers, deadline, cancellationToken));
|
|
}
|
|
public virtual global::Lobby.LobbyStatus getStatus(global::Google.Protobuf.WellKnownTypes.Empty request, grpc::CallOptions options)
|
|
{
|
|
return CallInvoker.BlockingUnaryCall(__Method_getStatus, null, options, request);
|
|
}
|
|
public virtual grpc::AsyncUnaryCall<global::Lobby.LobbyStatus> getStatusAsync(global::Google.Protobuf.WellKnownTypes.Empty request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
|
|
{
|
|
return getStatusAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
|
|
}
|
|
public virtual grpc::AsyncUnaryCall<global::Lobby.LobbyStatus> getStatusAsync(global::Google.Protobuf.WellKnownTypes.Empty request, grpc::CallOptions options)
|
|
{
|
|
return CallInvoker.AsyncUnaryCall(__Method_getStatus, null, options, request);
|
|
}
|
|
public virtual global::Google.Protobuf.WellKnownTypes.Empty leave(global::Google.Protobuf.WellKnownTypes.Empty request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
|
|
{
|
|
return leave(request, new grpc::CallOptions(headers, deadline, cancellationToken));
|
|
}
|
|
public virtual global::Google.Protobuf.WellKnownTypes.Empty leave(global::Google.Protobuf.WellKnownTypes.Empty request, grpc::CallOptions options)
|
|
{
|
|
return CallInvoker.BlockingUnaryCall(__Method_leave, null, options, request);
|
|
}
|
|
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> leaveAsync(global::Google.Protobuf.WellKnownTypes.Empty request, grpc::Metadata headers = null, global::System.DateTime? deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
|
|
{
|
|
return leaveAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
|
|
}
|
|
public virtual grpc::AsyncUnaryCall<global::Google.Protobuf.WellKnownTypes.Empty> leaveAsync(global::Google.Protobuf.WellKnownTypes.Empty request, grpc::CallOptions options)
|
|
{
|
|
return CallInvoker.AsyncUnaryCall(__Method_leave, null, options, request);
|
|
}
|
|
/// <summary>Creates a new instance of client from given <c>ClientBaseConfiguration</c>.</summary>
|
|
protected override LobbyClient NewInstance(ClientBaseConfiguration configuration)
|
|
{
|
|
return new LobbyClient(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(LobbyBase serviceImpl)
|
|
{
|
|
return grpc::ServerServiceDefinition.CreateBuilder()
|
|
.AddMethod(__Method_getCardImage, serviceImpl.getCardImage)
|
|
.AddMethod(__Method_users, serviceImpl.users)
|
|
.AddMethod(__Method_vote, serviceImpl.vote)
|
|
.AddMethod(__Method_ready, serviceImpl.ready)
|
|
.AddMethod(__Method_hasNewStatus, serviceImpl.hasNewStatus)
|
|
.AddMethod(__Method_getStatus, serviceImpl.getStatus)
|
|
.AddMethod(__Method_leave, serviceImpl.leave).Build();
|
|
}
|
|
|
|
/// <summary>Register service method with a service binder with or without implementation. Useful when customizing the service binding logic.
|
|
/// Note: this method is part of an experimental API that can change or be removed without any prior notice.</summary>
|
|
/// <param name="serviceBinder">Service methods will be bound by calling <c>AddMethod</c> on this object.</param>
|
|
/// <param name="serviceImpl">An object implementing the server-side handling logic.</param>
|
|
public static void BindService(grpc::ServiceBinderBase serviceBinder, LobbyBase serviceImpl)
|
|
{
|
|
serviceBinder.AddMethod(__Method_getCardImage, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Lobby.CardID, global::Lobby.Image>(serviceImpl.getCardImage));
|
|
serviceBinder.AddMethod(__Method_users, serviceImpl == null ? null : new grpc::ServerStreamingServerMethod<global::Google.Protobuf.WellKnownTypes.Empty, global::Common.Name>(serviceImpl.users));
|
|
serviceBinder.AddMethod(__Method_vote, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Lobby.SingleVote, global::Google.Protobuf.WellKnownTypes.Empty>(serviceImpl.vote));
|
|
serviceBinder.AddMethod(__Method_ready, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Google.Protobuf.WellKnownTypes.Empty, global::Google.Protobuf.WellKnownTypes.Empty>(serviceImpl.ready));
|
|
serviceBinder.AddMethod(__Method_hasNewStatus, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Lobby.LastStatusTimestamp, global::Lobby.HasNewStatus>(serviceImpl.hasNewStatus));
|
|
serviceBinder.AddMethod(__Method_getStatus, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Google.Protobuf.WellKnownTypes.Empty, global::Lobby.LobbyStatus>(serviceImpl.getStatus));
|
|
serviceBinder.AddMethod(__Method_leave, serviceImpl == null ? null : new grpc::UnaryServerMethod<global::Google.Protobuf.WellKnownTypes.Empty, global::Google.Protobuf.WellKnownTypes.Empty>(serviceImpl.leave));
|
|
}
|
|
|
|
}
|
|
}
|
|
#endregion
|
|
|