From 76ece5a4eb1a108d4f8a70dd29eb0f8b7e9738c4 Mon Sep 17 00:00:00 2001 From: wing328 Date: Mon, 29 Jun 2015 12:17:49 +0800 Subject: [PATCH] add file response support for c# (passed test cases) --- .../languages/CSharpClientCodegen.java | 2 +- .../main/resources/csharp/ApiClient.mustache | 53 +++-- .../resources/csharp/Configuration.mustache | 59 +++++- .../src/main/resources/csharp/api.mustache | 61 +++--- .../src/main/csharp/IO/Swagger/Api/PetApi.cs | 193 ++++++++++-------- .../main/csharp/IO/Swagger/Api/StoreApi.cs | 73 ++++--- .../src/main/csharp/IO/Swagger/Api/UserApi.cs | 149 +++++++------- .../csharp/IO/Swagger/Client/ApiClient.cs | 51 +++-- .../csharp/IO/Swagger/Client/Configuration.cs | 59 +++++- .../SwaggerClientTest.userprefs | 9 +- .../bin/Debug/SwaggerClientTest.dll | Bin 51200 -> 53248 bytes .../bin/Debug/SwaggerClientTest.dll.mdb | Bin 15782 -> 16213 bytes .../obj/Debug/SwaggerClientTest.dll | Bin 51200 -> 53248 bytes .../obj/Debug/SwaggerClientTest.dll.mdb | Bin 15782 -> 16213 bytes 14 files changed, 440 insertions(+), 269 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/CSharpClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/CSharpClientCodegen.java index 33ea13b5e31..4f7ad02b95d 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/CSharpClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/CSharpClientCodegen.java @@ -68,7 +68,7 @@ public class CSharpClientCodegen extends DefaultCodegen implements CodegenConfig typeMapping.put("number", "double?"); typeMapping.put("datetime", "DateTime?"); typeMapping.put("date", "DateTime?"); - typeMapping.put("file", "string"); // path to file + typeMapping.put("file", "FileStream"); typeMapping.put("array", "List"); typeMapping.put("list", "List"); typeMapping.put("map", "Dictionary"); diff --git a/modules/swagger-codegen/src/main/resources/csharp/ApiClient.mustache b/modules/swagger-codegen/src/main/resources/csharp/ApiClient.mustache index c6f57bd4a37..5c1fb8d9125 100644 --- a/modules/swagger-codegen/src/main/resources/csharp/ApiClient.mustache +++ b/modules/swagger-codegen/src/main/resources/csharp/ApiClient.mustache @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Text.RegularExpressions; using System.IO; using System.Linq; using System.Net; @@ -19,21 +20,21 @@ namespace {{packageName}}.Client { /// /// The base path. public ApiClient(String basePath="{{basePath}}") { - this.basePath = basePath; - this.restClient = new RestClient(this.basePath); + this.BasePath = basePath; + this.RestClient = new RestClient(this.BasePath); } /// /// Gets or sets the base path. /// /// The base path. - public string basePath { get; set; } + public string BasePath { get; set; } /// /// Gets or sets the RestClient /// /// The RestClient. - public RestClient restClient { get; set; } + public RestClient RestClient { get; set; } private Dictionary defaultHeaderMap = new Dictionary(); @@ -77,7 +78,7 @@ namespace {{packageName}}.Client { request.AddParameter("application/json", PostBody, ParameterType.RequestBody); // http body (model) parameter } - return (Object) await restClient.ExecuteTaskAsync(request); + return (Object) await RestClient.ExecuteTaskAsync(request); } @@ -119,10 +120,12 @@ namespace {{packageName}}.Client { { if (obj is DateTime) { return ((DateTime)obj).ToString ("u"); + } else if (obj is FileStream) { + return ((FileStream)obj).Name; } else if (obj is List) { return String.Join(",", obj as List); } else { - return Convert.ToString (obj); + return Convert.ToString (obj); } } @@ -132,16 +135,38 @@ namespace {{packageName}}.Client { /// JSON string /// Object type /// Object representation of the JSON string - public object Deserialize(string content, Type type) { - if (type.GetType() == typeof(Object)) - return (Object)content; + public object Deserialize(string content, Type type, IList headers=null) { + if (type.GetType() == typeof(Object)) { + return (Object)content; + } else if (type.Name == "FileStream") { + // e.g. Content-Disposition: attachment; filename=checkimage.jpp + String fileName; + String filePath; + if (String.IsNullOrEmpty (Configuration.TempFolderPath)) { + filePath = System.IO.Path.GetTempPath (); + } else { + filePath = Configuration.TempFolderPath; + } + + Regex regex = new Regex(@"Content-Disposition:.*filename=['""]?([^'""\s]+)['""]?$"); + Match match = regex.Match(headers.ToString()); + if (match.Success) { + // replace first and last " or ', if found + fileName = filePath + match.Value.Replace("\"", "").Replace("'",""); + } else { + fileName = filePath + Guid.NewGuid().ToString(); + } + System.IO.File.WriteAllText (fileName, content); + return File.Open (fileName, FileMode.Open); + } + try { return JsonConvert.DeserializeObject(content, type); } catch (IOException e) { - throw new ApiException(500, e.Message); + throw new ApiException(500, e.Message); } } @@ -165,12 +190,12 @@ namespace {{packageName}}.Client { /// /// Object /// API key with prefix - public string GetApiKeyWithPrefix (string apiKey) + public string GetApiKeyWithPrefix (string apiKeyIdentifier) { var apiKeyValue = ""; - Configuration.apiKey.TryGetValue (apiKey, out apiKeyValue); + Configuration.ApiKey.TryGetValue (apiKeyIdentifier, out apiKeyValue); var apiKeyPrefix = ""; - if (Configuration.apiKeyPrefix.TryGetValue (apiKey, out apiKeyPrefix)) { + if (Configuration.ApiKeyPrefix.TryGetValue (apiKeyIdentifier, out apiKeyPrefix)) { return apiKeyPrefix + " " + apiKeyValue; } else { return apiKeyValue; @@ -192,7 +217,7 @@ namespace {{packageName}}.Client { switch(auth) { {{#authMethods}} case "{{name}}": - {{#isApiKey}}{{#isKeyInHeader}}HeaderParams["{{keyParamName}}"] = GetApiKeyWithPrefix("{{keyParamName}}");{{/isKeyInHeader}}{{#isKeyInQuery}}QueryParams["{{keyParamName}}"] = GetApiKeyWithPrefix("{{keyParamName}}");{{/isKeyInQuery}}{{/isApiKey}}{{#isBasic}}HeaderParams["Authorization"] = "Basic " + Base64Encode(Configuration.username + ":" + Configuration.password);{{/isBasic}} + {{#isApiKey}}{{#isKeyInHeader}}HeaderParams["{{keyParamName}}"] = GetApiKeyWithPrefix("{{keyParamName}}");{{/isKeyInHeader}}{{#isKeyInQuery}}QueryParams["{{keyParamName}}"] = GetApiKeyWithPrefix("{{keyParamName}}");{{/isKeyInQuery}}{{/isApiKey}}{{#isBasic}}HeaderParams["Authorization"] = "Basic " + Base64Encode(Configuration.Username + ":" + Configuration.Password);{{/isBasic}} {{#isOAuth}}//TODO support oauth{{/isOAuth}} break; {{/authMethods}} diff --git a/modules/swagger-codegen/src/main/resources/csharp/Configuration.mustache b/modules/swagger-codegen/src/main/resources/csharp/Configuration.mustache index 485d97058ce..8611d2c18b4 100644 --- a/modules/swagger-codegen/src/main/resources/csharp/Configuration.mustache +++ b/modules/swagger-codegen/src/main/resources/csharp/Configuration.mustache @@ -1,4 +1,5 @@ using System; +using System.Reflection; using System.Collections.Generic; using System.IO; using System.Linq; @@ -17,35 +18,81 @@ namespace {{packageName}}.Client { public const string Version = "{{packageVersion}}"; /// - /// Gets or sets the API client. This is the default API client for making HTTP calls. + /// Gets or sets the default API client for making HTTP calls. /// /// The API client. - public static ApiClient apiClient = new ApiClient(); + public static ApiClient DefaultApiClient = new ApiClient(); /// /// Gets or sets the username (HTTP basic authentication) /// /// The username. - public static String username { get; set; } + public static String Username { get; set; } /// /// Gets or sets the password (HTTP basic authentication) /// /// The password. - public static String password { get; set; } + public static String Password { get; set; } /// /// Gets or sets the API key based on the authentication name /// /// The API key. - public static Dictionary apiKey = new Dictionary(); + public static Dictionary ApiKey = new Dictionary(); /// /// Gets or sets the prefix (e.g. Token) of the API key based on the authentication name /// /// The prefix of the API key. - public static Dictionary apiKeyPrefix = new Dictionary(); + public static Dictionary ApiKeyPrefix = new Dictionary(); + private static string _tempFolderPath = Path.GetTempPath(); + /// + /// Gets or sets the temporary folder path to store the files downloaded from the server + /// + /// Folder path + public static String TempFolderPath { + get { + return _tempFolderPath; + } + + set { + if (!String.IsNullOrEmpty(value)) { + _tempFolderPath = value; + return; + } + + // create the directory if it does not exist + if (!Directory.Exists(value)) { + Directory.CreateDirectory(value); + } + + // check if the path contains directory separator at the end + if (value[value.Length - 1] == Path.DirectorySeparatorChar) { + _tempFolderPath = value; + } else { + _tempFolderPath = value + Path.DirectorySeparatorChar; + } + } + } + + /// + /// Return a string contain essential information for debugging + /// + /// Folder path + public static String ToDebugReport() { + String report = "C# SDK ({{invokerPackage}}) Debug Report:\n"; + report += " OS: " + Environment.OSVersion + "\n"; + report += " .NET Framework Version: " + Assembly + .GetExecutingAssembly() + .GetReferencedAssemblies() + .Where(x => x.Name == "System.Core").First().Version.ToString() + "\n"; + report += " Swagger Spec Version: {{version}}\n"; + report += " SDK Package Version: {{version}}\n"; + + return report; + } } } diff --git a/modules/swagger-codegen/src/main/resources/csharp/api.mustache b/modules/swagger-codegen/src/main/resources/csharp/api.mustache index 652d15a30b3..1ae7afbf39a 100644 --- a/modules/swagger-codegen/src/main/resources/csharp/api.mustache +++ b/modules/swagger-codegen/src/main/resources/csharp/api.mustache @@ -1,4 +1,5 @@ using System; +using System.IO; using System.Collections.Generic; using System.Threading.Tasks; using RestSharp; @@ -15,15 +16,15 @@ namespace {{packageName}}.Api { /// /// {{summary}} {{notes}} /// - {{#allParams}}/// {{description}}{{/allParams}} - /// {{#returnType}}{{{returnType}}}{{/returnType}} + {{#allParams}}/// {{description}} + {{/allParams}}/// {{#returnType}}{{{returnType}}}{{/returnType}} {{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}} {{nickname}} ({{#allParams}}{{{dataType}}} {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}); /// /// {{summary}} {{notes}} /// - {{#allParams}}/// {{description}}{{/allParams}} - /// {{#returnType}}{{{returnType}}}{{/returnType}} + {{#allParams}}/// {{description}} + {{/allParams}}/// {{#returnType}}{{{returnType}}}{{/returnType}} {{#returnType}}Task<{{{returnType}}}>{{/returnType}}{{^returnType}}Task{{/returnType}} {{nickname}}Async ({{#allParams}}{{{dataType}}} {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}); {{/operation}} } @@ -40,9 +41,9 @@ namespace {{packageName}}.Api { /// public {{classname}}(ApiClient apiClient = null) { if (apiClient == null) { // use the default one in Configuration - this.apiClient = Configuration.apiClient; + this.ApiClient = Configuration.DefaultApiClient; } else { - this.apiClient = apiClient; + this.ApiClient = apiClient; } } @@ -52,7 +53,7 @@ namespace {{packageName}}.Api { /// public {{classname}}(String basePath) { - this.apiClient = new ApiClient(basePath); + this.ApiClient = new ApiClient(basePath); } /// @@ -60,7 +61,7 @@ namespace {{packageName}}.Api { /// /// The base path public void SetBasePath(String basePath) { - this.apiClient.basePath = basePath; + this.ApiClient.BasePath = basePath; } /// @@ -68,22 +69,22 @@ namespace {{packageName}}.Api { /// /// The base path public String GetBasePath(String basePath) { - return this.apiClient.basePath; + return this.ApiClient.BasePath; } /// /// Gets or sets the API client. /// /// The API client - public ApiClient apiClient {get; set;} + public ApiClient ApiClient {get; set;} {{#operation}} /// /// {{summary}} {{notes}} /// - {{#allParams}}/// {{description}}{{/allParams}} - /// {{#returnType}}{{{returnType}}}{{/returnType}} + {{#allParams}}/// {{description}} + {{/allParams}}/// {{#returnType}}{{{returnType}}}{{/returnType}} public {{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}} {{nickname}} ({{#allParams}}{{{dataType}}} {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) { {{#allParams}}{{#required}} @@ -93,7 +94,7 @@ namespace {{packageName}}.Api { var path = "{{path}}"; path = path.Replace("{format}", "json"); - {{#pathParams}}path = path.Replace("{" + "{{baseName}}" + "}", apiClient.ParameterToString({{{paramName}}})); + {{#pathParams}}path = path.Replace("{" + "{{baseName}}" + "}", ApiClient.ParameterToString({{{paramName}}})); {{/pathParams}} var queryParams = new Dictionary(); @@ -102,33 +103,33 @@ namespace {{packageName}}.Api { var fileParams = new Dictionary(); String postBody = null; - {{#queryParams}} if ({{paramName}} != null) queryParams.Add("{{baseName}}", apiClient.ParameterToString({{paramName}})); // query parameter + {{#queryParams}} if ({{paramName}} != null) queryParams.Add("{{baseName}}", ApiClient.ParameterToString({{paramName}})); // query parameter {{/queryParams}} - {{#headerParams}} if ({{paramName}} != null) headerParams.Add("{{baseName}}", apiClient.ParameterToString({{paramName}})); // header parameter + {{#headerParams}} if ({{paramName}} != null) headerParams.Add("{{baseName}}", ApiClient.ParameterToString({{paramName}})); // header parameter {{/headerParams}} - {{#formParams}}if ({{paramName}} != null) {{#isFile}}fileParams.Add("{{baseName}}", {{paramName}});{{/isFile}}{{^isFile}}formParams.Add("{{baseName}}", apiClient.ParameterToString({{paramName}})); // form parameter{{/isFile}} + {{#formParams}}if ({{paramName}} != null) {{#isFile}}fileParams.Add("{{baseName}}", ApiClient.ParameterToString({{paramName}}));{{/isFile}}{{^isFile}}formParams.Add("{{baseName}}", ApiClient.ParameterToString({{paramName}})); // form parameter{{/isFile}} {{/formParams}} - {{#bodyParam}}postBody = apiClient.Serialize({{paramName}}); // http body (model) parameter + {{#bodyParam}}postBody = ApiClient.Serialize({{paramName}}); // http body (model) parameter {{/bodyParam}} // authentication setting, if any String[] authSettings = new String[] { {{#authMethods}}"{{name}}"{{#hasMore}}, {{/hasMore}}{{/authMethods}} }; // make the HTTP request - IRestResponse response = (IRestResponse) apiClient.CallApi(path, Method.{{httpMethod}}, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.{{httpMethod}}, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling {{nickname}}: " + response.Content, response.Content); } - {{#returnType}}return ({{{returnType}}}) apiClient.Deserialize(response.Content, typeof({{{returnType}}}));{{/returnType}}{{^returnType}} + {{#returnType}}return ({{{returnType}}}) ApiClient.Deserialize(response.Content, typeof({{{returnType}}}));{{/returnType}}{{^returnType}} return;{{/returnType}} } - - /// + + /// /// {{summary}} {{notes}} /// - {{#allParams}}/// {{description}}{{/allParams}} - /// {{#returnType}}{{{returnType}}}{{/returnType}} + {{#allParams}}/// {{description}} + {{/allParams}}/// {{#returnType}}{{{returnType}}}{{/returnType}} public async {{#returnType}}Task<{{{returnType}}}>{{/returnType}}{{^returnType}}Task{{/returnType}} {{nickname}}Async ({{#allParams}}{{{dataType}}} {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) { {{#allParams}}{{#required}} @@ -138,7 +139,7 @@ namespace {{packageName}}.Api { var path = "{{path}}"; path = path.Replace("{format}", "json"); - {{#pathParams}}path = path.Replace("{" + "{{baseName}}" + "}", apiClient.ParameterToString({{{paramName}}})); + {{#pathParams}}path = path.Replace("{" + "{{baseName}}" + "}", ApiClient.ParameterToString({{{paramName}}})); {{/pathParams}} var queryParams = new Dictionary(); @@ -147,24 +148,24 @@ namespace {{packageName}}.Api { var fileParams = new Dictionary(); String postBody = null; - {{#queryParams}} if ({{paramName}} != null) queryParams.Add("{{baseName}}", apiClient.ParameterToString({{paramName}})); // query parameter + {{#queryParams}} if ({{paramName}} != null) queryParams.Add("{{baseName}}", ApiClient.ParameterToString({{paramName}})); // query parameter {{/queryParams}} - {{#headerParams}} if ({{paramName}} != null) headerParams.Add("{{baseName}}", apiClient.ParameterToString({{paramName}})); // header parameter + {{#headerParams}} if ({{paramName}} != null) headerParams.Add("{{baseName}}", ApiClient.ParameterToString({{paramName}})); // header parameter {{/headerParams}} - {{#formParams}}if ({{paramName}} != null) {{#isFile}}fileParams.Add("{{baseName}}", {{paramName}});{{/isFile}}{{^isFile}}formParams.Add("{{baseName}}", apiClient.ParameterToString({{paramName}})); // form parameter{{/isFile}} + {{#formParams}}if ({{paramName}} != null) {{#isFile}}fileParams.Add("{{baseName}}", ApiClient.ParameterToString({{paramName}}));{{/isFile}}{{^isFile}}formParams.Add("{{baseName}}", ApiClient.ParameterToString({{paramName}})); // form parameter{{/isFile}} {{/formParams}} - {{#bodyParam}}postBody = apiClient.Serialize({{paramName}}); // http body (model) parameter + {{#bodyParam}}postBody = ApiClient.Serialize({{paramName}}); // http body (model) parameter {{/bodyParam}} // authentication setting, if any String[] authSettings = new String[] { {{#authMethods}}"{{name}}"{{#hasMore}}, {{/hasMore}}{{/authMethods}} }; // make the HTTP request - IRestResponse response = (IRestResponse) await apiClient.CallApiAsync(path, Method.{{httpMethod}}, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.{{httpMethod}}, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling {{nickname}}: " + response.Content, response.Content); } - {{#returnType}}return ({{{returnType}}}) apiClient.Deserialize(response.Content, typeof({{{returnType}}}));{{/returnType}}{{^returnType}} + {{#returnType}}return ({{{returnType}}}) ApiClient.Deserialize(response.Content, typeof({{{returnType}}}));{{/returnType}}{{^returnType}} return;{{/returnType}} } {{/operation}} diff --git a/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Api/PetApi.cs b/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Api/PetApi.cs index 5fdb38f2da9..f41cb46baa1 100644 --- a/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Api/PetApi.cs +++ b/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Api/PetApi.cs @@ -1,4 +1,5 @@ using System; +using System.IO; using System.Collections.Generic; using System.Threading.Tasks; using RestSharp; @@ -83,44 +84,54 @@ namespace IO.Swagger.Api { /// /// Updates a pet in the store with form data /// - /// ID of pet that needs to be updated/// Updated name of the pet/// Updated status of the pet + /// ID of pet that needs to be updated + /// Updated name of the pet + /// Updated status of the pet /// void UpdatePetWithForm (string PetId, string Name, string Status); /// /// Updates a pet in the store with form data /// - /// ID of pet that needs to be updated/// Updated name of the pet/// Updated status of the pet + /// ID of pet that needs to be updated + /// Updated name of the pet + /// Updated status of the pet /// Task UpdatePetWithFormAsync (string PetId, string Name, string Status); /// /// Deletes a pet /// - /// /// Pet id to delete + /// + /// Pet id to delete /// void DeletePet (string ApiKey, long? PetId); /// /// Deletes a pet /// - /// /// Pet id to delete + /// + /// Pet id to delete /// Task DeletePetAsync (string ApiKey, long? PetId); /// /// uploads an image /// - /// ID of pet to update/// Additional data to pass to server/// file to upload + /// ID of pet to update + /// Additional data to pass to server + /// file to upload /// - void UploadFile (long? PetId, string AdditionalMetadata, string File); + void UploadFile (long? PetId, string AdditionalMetadata, FileStream File); /// /// uploads an image /// - /// ID of pet to update/// Additional data to pass to server/// file to upload + /// ID of pet to update + /// Additional data to pass to server + /// file to upload /// - Task UploadFileAsync (long? PetId, string AdditionalMetadata, string File); + Task UploadFileAsync (long? PetId, string AdditionalMetadata, FileStream File); } @@ -136,9 +147,9 @@ namespace IO.Swagger.Api { /// public PetApi(ApiClient apiClient = null) { if (apiClient == null) { // use the default one in Configuration - this.apiClient = Configuration.apiClient; + this.ApiClient = Configuration.DefaultApiClient; } else { - this.apiClient = apiClient; + this.ApiClient = apiClient; } } @@ -148,7 +159,7 @@ namespace IO.Swagger.Api { /// public PetApi(String basePath) { - this.apiClient = new ApiClient(basePath); + this.ApiClient = new ApiClient(basePath); } /// @@ -156,7 +167,7 @@ namespace IO.Swagger.Api { /// /// The base path public void SetBasePath(String basePath) { - this.apiClient.basePath = basePath; + this.ApiClient.BasePath = basePath; } /// @@ -164,14 +175,14 @@ namespace IO.Swagger.Api { /// /// The base path public String GetBasePath(String basePath) { - return this.apiClient.basePath; + return this.ApiClient.BasePath; } /// /// Gets or sets the API client. /// /// The API client - public ApiClient apiClient {get; set;} + public ApiClient ApiClient {get; set;} @@ -197,14 +208,14 @@ namespace IO.Swagger.Api { - postBody = apiClient.Serialize(Body); // http body (model) parameter + postBody = ApiClient.Serialize(Body); // http body (model) parameter // authentication setting, if any String[] authSettings = new String[] { "petstore_auth" }; // make the HTTP request - IRestResponse response = (IRestResponse) apiClient.CallApi(path, Method.PUT, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.PUT, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling UpdatePet: " + response.Content, response.Content); @@ -212,8 +223,8 @@ namespace IO.Swagger.Api { return; } - - /// + + /// /// Update an existing pet /// /// Pet object that needs to be added to the store @@ -235,14 +246,14 @@ namespace IO.Swagger.Api { - postBody = apiClient.Serialize(Body); // http body (model) parameter + postBody = ApiClient.Serialize(Body); // http body (model) parameter // authentication setting, if any String[] authSettings = new String[] { "petstore_auth" }; // make the HTTP request - IRestResponse response = (IRestResponse) await apiClient.CallApiAsync(path, Method.PUT, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.PUT, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling UpdatePet: " + response.Content, response.Content); } @@ -272,14 +283,14 @@ namespace IO.Swagger.Api { - postBody = apiClient.Serialize(Body); // http body (model) parameter + postBody = ApiClient.Serialize(Body); // http body (model) parameter // authentication setting, if any String[] authSettings = new String[] { "petstore_auth" }; // make the HTTP request - IRestResponse response = (IRestResponse) apiClient.CallApi(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling AddPet: " + response.Content, response.Content); @@ -287,8 +298,8 @@ namespace IO.Swagger.Api { return; } - - /// + + /// /// Add a new pet to the store /// /// Pet object that needs to be added to the store @@ -310,14 +321,14 @@ namespace IO.Swagger.Api { - postBody = apiClient.Serialize(Body); // http body (model) parameter + postBody = ApiClient.Serialize(Body); // http body (model) parameter // authentication setting, if any String[] authSettings = new String[] { "petstore_auth" }; // make the HTTP request - IRestResponse response = (IRestResponse) await apiClient.CallApiAsync(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling AddPet: " + response.Content, response.Content); } @@ -344,7 +355,7 @@ namespace IO.Swagger.Api { var fileParams = new Dictionary(); String postBody = null; - if (Status != null) queryParams.Add("status", apiClient.ParameterToString(Status)); // query parameter + if (Status != null) queryParams.Add("status", ApiClient.ParameterToString(Status)); // query parameter @@ -354,15 +365,15 @@ namespace IO.Swagger.Api { String[] authSettings = new String[] { "petstore_auth" }; // make the HTTP request - IRestResponse response = (IRestResponse) apiClient.CallApi(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling FindPetsByStatus: " + response.Content, response.Content); } - return (List) apiClient.Deserialize(response.Content, typeof(List)); + return (List) ApiClient.Deserialize(response.Content, typeof(List)); } - - /// + + /// /// Finds Pets by status Multiple status values can be provided with comma seperated strings /// /// Status values that need to be considered for filter @@ -381,7 +392,7 @@ namespace IO.Swagger.Api { var fileParams = new Dictionary(); String postBody = null; - if (Status != null) queryParams.Add("status", apiClient.ParameterToString(Status)); // query parameter + if (Status != null) queryParams.Add("status", ApiClient.ParameterToString(Status)); // query parameter @@ -391,11 +402,11 @@ namespace IO.Swagger.Api { String[] authSettings = new String[] { "petstore_auth" }; // make the HTTP request - IRestResponse response = (IRestResponse) await apiClient.CallApiAsync(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling FindPetsByStatus: " + response.Content, response.Content); } - return (List) apiClient.Deserialize(response.Content, typeof(List)); + return (List) ApiClient.Deserialize(response.Content, typeof(List)); } /// @@ -417,7 +428,7 @@ namespace IO.Swagger.Api { var fileParams = new Dictionary(); String postBody = null; - if (Tags != null) queryParams.Add("tags", apiClient.ParameterToString(Tags)); // query parameter + if (Tags != null) queryParams.Add("tags", ApiClient.ParameterToString(Tags)); // query parameter @@ -427,15 +438,15 @@ namespace IO.Swagger.Api { String[] authSettings = new String[] { "petstore_auth" }; // make the HTTP request - IRestResponse response = (IRestResponse) apiClient.CallApi(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling FindPetsByTags: " + response.Content, response.Content); } - return (List) apiClient.Deserialize(response.Content, typeof(List)); + return (List) ApiClient.Deserialize(response.Content, typeof(List)); } - - /// + + /// /// Finds Pets by tags Muliple tags can be provided with comma seperated strings. Use tag1, tag2, tag3 for testing. /// /// Tags to filter by @@ -454,7 +465,7 @@ namespace IO.Swagger.Api { var fileParams = new Dictionary(); String postBody = null; - if (Tags != null) queryParams.Add("tags", apiClient.ParameterToString(Tags)); // query parameter + if (Tags != null) queryParams.Add("tags", ApiClient.ParameterToString(Tags)); // query parameter @@ -464,11 +475,11 @@ namespace IO.Swagger.Api { String[] authSettings = new String[] { "petstore_auth" }; // make the HTTP request - IRestResponse response = (IRestResponse) await apiClient.CallApiAsync(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling FindPetsByTags: " + response.Content, response.Content); } - return (List) apiClient.Deserialize(response.Content, typeof(List)); + return (List) ApiClient.Deserialize(response.Content, typeof(List)); } /// @@ -485,7 +496,7 @@ namespace IO.Swagger.Api { var path = "/pet/{petId}"; path = path.Replace("{format}", "json"); - path = path.Replace("{" + "petId" + "}", apiClient.ParameterToString(PetId)); + path = path.Replace("{" + "petId" + "}", ApiClient.ParameterToString(PetId)); var queryParams = new Dictionary(); @@ -503,15 +514,15 @@ namespace IO.Swagger.Api { String[] authSettings = new String[] { "api_key", "petstore_auth" }; // make the HTTP request - IRestResponse response = (IRestResponse) apiClient.CallApi(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling GetPetById: " + response.Content, response.Content); } - return (Pet) apiClient.Deserialize(response.Content, typeof(Pet)); + return (Pet) ApiClient.Deserialize(response.Content, typeof(Pet)); } - - /// + + /// /// Find pet by ID Returns a pet when ID < 10. ID > 10 or nonintegers will simulate API error conditions /// /// ID of pet that needs to be fetched @@ -525,7 +536,7 @@ namespace IO.Swagger.Api { var path = "/pet/{petId}"; path = path.Replace("{format}", "json"); - path = path.Replace("{" + "petId" + "}", apiClient.ParameterToString(PetId)); + path = path.Replace("{" + "petId" + "}", ApiClient.ParameterToString(PetId)); var queryParams = new Dictionary(); @@ -543,17 +554,19 @@ namespace IO.Swagger.Api { String[] authSettings = new String[] { "api_key", "petstore_auth" }; // make the HTTP request - IRestResponse response = (IRestResponse) await apiClient.CallApiAsync(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling GetPetById: " + response.Content, response.Content); } - return (Pet) apiClient.Deserialize(response.Content, typeof(Pet)); + return (Pet) ApiClient.Deserialize(response.Content, typeof(Pet)); } /// /// Updates a pet in the store with form data /// - /// ID of pet that needs to be updated/// Updated name of the pet/// Updated status of the pet + /// ID of pet that needs to be updated + /// Updated name of the pet + /// Updated status of the pet /// public void UpdatePetWithForm (string PetId, string Name, string Status) { @@ -564,7 +577,7 @@ namespace IO.Swagger.Api { var path = "/pet/{petId}"; path = path.Replace("{format}", "json"); - path = path.Replace("{" + "petId" + "}", apiClient.ParameterToString(PetId)); + path = path.Replace("{" + "petId" + "}", ApiClient.ParameterToString(PetId)); var queryParams = new Dictionary(); @@ -575,8 +588,8 @@ namespace IO.Swagger.Api { - if (Name != null) formParams.Add("name", apiClient.ParameterToString(Name)); // form parameter - if (Status != null) formParams.Add("status", apiClient.ParameterToString(Status)); // form parameter + if (Name != null) formParams.Add("name", ApiClient.ParameterToString(Name)); // form parameter + if (Status != null) formParams.Add("status", ApiClient.ParameterToString(Status)); // form parameter @@ -584,7 +597,7 @@ namespace IO.Swagger.Api { String[] authSettings = new String[] { "petstore_auth" }; // make the HTTP request - IRestResponse response = (IRestResponse) apiClient.CallApi(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling UpdatePetWithForm: " + response.Content, response.Content); @@ -592,11 +605,13 @@ namespace IO.Swagger.Api { return; } - - /// + + /// /// Updates a pet in the store with form data /// - /// ID of pet that needs to be updated/// Updated name of the pet/// Updated status of the pet + /// ID of pet that needs to be updated + /// Updated name of the pet + /// Updated status of the pet /// public async Task UpdatePetWithFormAsync (string PetId, string Name, string Status) { @@ -607,7 +622,7 @@ namespace IO.Swagger.Api { var path = "/pet/{petId}"; path = path.Replace("{format}", "json"); - path = path.Replace("{" + "petId" + "}", apiClient.ParameterToString(PetId)); + path = path.Replace("{" + "petId" + "}", ApiClient.ParameterToString(PetId)); var queryParams = new Dictionary(); @@ -618,8 +633,8 @@ namespace IO.Swagger.Api { - if (Name != null) formParams.Add("name", apiClient.ParameterToString(Name)); // form parameter - if (Status != null) formParams.Add("status", apiClient.ParameterToString(Status)); // form parameter + if (Name != null) formParams.Add("name", ApiClient.ParameterToString(Name)); // form parameter + if (Status != null) formParams.Add("status", ApiClient.ParameterToString(Status)); // form parameter @@ -627,7 +642,7 @@ namespace IO.Swagger.Api { String[] authSettings = new String[] { "petstore_auth" }; // make the HTTP request - IRestResponse response = (IRestResponse) await apiClient.CallApiAsync(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling UpdatePetWithForm: " + response.Content, response.Content); } @@ -638,7 +653,8 @@ namespace IO.Swagger.Api { /// /// Deletes a pet /// - /// /// Pet id to delete + /// + /// Pet id to delete /// public void DeletePet (string ApiKey, long? PetId) { @@ -649,7 +665,7 @@ namespace IO.Swagger.Api { var path = "/pet/{petId}"; path = path.Replace("{format}", "json"); - path = path.Replace("{" + "petId" + "}", apiClient.ParameterToString(PetId)); + path = path.Replace("{" + "petId" + "}", ApiClient.ParameterToString(PetId)); var queryParams = new Dictionary(); @@ -659,7 +675,7 @@ namespace IO.Swagger.Api { String postBody = null; - if (ApiKey != null) headerParams.Add("api_key", apiClient.ParameterToString(ApiKey)); // header parameter + if (ApiKey != null) headerParams.Add("api_key", ApiClient.ParameterToString(ApiKey)); // header parameter @@ -668,7 +684,7 @@ namespace IO.Swagger.Api { String[] authSettings = new String[] { "petstore_auth" }; // make the HTTP request - IRestResponse response = (IRestResponse) apiClient.CallApi(path, Method.DELETE, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.DELETE, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling DeletePet: " + response.Content, response.Content); @@ -676,11 +692,12 @@ namespace IO.Swagger.Api { return; } - - /// + + /// /// Deletes a pet /// - /// /// Pet id to delete + /// + /// Pet id to delete /// public async Task DeletePetAsync (string ApiKey, long? PetId) { @@ -691,7 +708,7 @@ namespace IO.Swagger.Api { var path = "/pet/{petId}"; path = path.Replace("{format}", "json"); - path = path.Replace("{" + "petId" + "}", apiClient.ParameterToString(PetId)); + path = path.Replace("{" + "petId" + "}", ApiClient.ParameterToString(PetId)); var queryParams = new Dictionary(); @@ -701,7 +718,7 @@ namespace IO.Swagger.Api { String postBody = null; - if (ApiKey != null) headerParams.Add("api_key", apiClient.ParameterToString(ApiKey)); // header parameter + if (ApiKey != null) headerParams.Add("api_key", ApiClient.ParameterToString(ApiKey)); // header parameter @@ -710,7 +727,7 @@ namespace IO.Swagger.Api { String[] authSettings = new String[] { "petstore_auth" }; // make the HTTP request - IRestResponse response = (IRestResponse) await apiClient.CallApiAsync(path, Method.DELETE, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.DELETE, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling DeletePet: " + response.Content, response.Content); } @@ -721,9 +738,11 @@ namespace IO.Swagger.Api { /// /// uploads an image /// - /// ID of pet to update/// Additional data to pass to server/// file to upload + /// ID of pet to update + /// Additional data to pass to server + /// file to upload /// - public void UploadFile (long? PetId, string AdditionalMetadata, string File) { + public void UploadFile (long? PetId, string AdditionalMetadata, FileStream File) { // verify the required parameter 'PetId' is set @@ -732,7 +751,7 @@ namespace IO.Swagger.Api { var path = "/pet/{petId}/uploadImage"; path = path.Replace("{format}", "json"); - path = path.Replace("{" + "petId" + "}", apiClient.ParameterToString(PetId)); + path = path.Replace("{" + "petId" + "}", ApiClient.ParameterToString(PetId)); var queryParams = new Dictionary(); @@ -743,8 +762,8 @@ namespace IO.Swagger.Api { - if (AdditionalMetadata != null) formParams.Add("additionalMetadata", apiClient.ParameterToString(AdditionalMetadata)); // form parameter - if (File != null) fileParams.Add("file", File); + if (AdditionalMetadata != null) formParams.Add("additionalMetadata", ApiClient.ParameterToString(AdditionalMetadata)); // form parameter + if (File != null) fileParams.Add("file", ApiClient.ParameterToString(File)); @@ -752,7 +771,7 @@ namespace IO.Swagger.Api { String[] authSettings = new String[] { "petstore_auth" }; // make the HTTP request - IRestResponse response = (IRestResponse) apiClient.CallApi(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling UploadFile: " + response.Content, response.Content); @@ -760,13 +779,15 @@ namespace IO.Swagger.Api { return; } - - /// + + /// /// uploads an image /// - /// ID of pet to update/// Additional data to pass to server/// file to upload + /// ID of pet to update + /// Additional data to pass to server + /// file to upload /// - public async Task UploadFileAsync (long? PetId, string AdditionalMetadata, string File) { + public async Task UploadFileAsync (long? PetId, string AdditionalMetadata, FileStream File) { // verify the required parameter 'PetId' is set @@ -775,7 +796,7 @@ namespace IO.Swagger.Api { var path = "/pet/{petId}/uploadImage"; path = path.Replace("{format}", "json"); - path = path.Replace("{" + "petId" + "}", apiClient.ParameterToString(PetId)); + path = path.Replace("{" + "petId" + "}", ApiClient.ParameterToString(PetId)); var queryParams = new Dictionary(); @@ -786,8 +807,8 @@ namespace IO.Swagger.Api { - if (AdditionalMetadata != null) formParams.Add("additionalMetadata", apiClient.ParameterToString(AdditionalMetadata)); // form parameter - if (File != null) fileParams.Add("file", File); + if (AdditionalMetadata != null) formParams.Add("additionalMetadata", ApiClient.ParameterToString(AdditionalMetadata)); // form parameter + if (File != null) fileParams.Add("file", ApiClient.ParameterToString(File)); @@ -795,7 +816,7 @@ namespace IO.Swagger.Api { String[] authSettings = new String[] { "petstore_auth" }; // make the HTTP request - IRestResponse response = (IRestResponse) await apiClient.CallApiAsync(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling UploadFile: " + response.Content, response.Content); } diff --git a/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Api/StoreApi.cs b/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Api/StoreApi.cs index 739c9d30be3..b728accf45e 100644 --- a/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Api/StoreApi.cs +++ b/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Api/StoreApi.cs @@ -1,4 +1,5 @@ using System; +using System.IO; using System.Collections.Generic; using System.Threading.Tasks; using RestSharp; @@ -13,14 +14,12 @@ namespace IO.Swagger.Api { /// /// Returns pet inventories by status Returns a map of status codes to quantities /// - /// Dictionary Dictionary GetInventory (); /// /// Returns pet inventories by status Returns a map of status codes to quantities /// - /// Dictionary Task> GetInventoryAsync (); @@ -80,9 +79,9 @@ namespace IO.Swagger.Api { /// public StoreApi(ApiClient apiClient = null) { if (apiClient == null) { // use the default one in Configuration - this.apiClient = Configuration.apiClient; + this.ApiClient = Configuration.DefaultApiClient; } else { - this.apiClient = apiClient; + this.ApiClient = apiClient; } } @@ -92,7 +91,7 @@ namespace IO.Swagger.Api { /// public StoreApi(String basePath) { - this.apiClient = new ApiClient(basePath); + this.ApiClient = new ApiClient(basePath); } /// @@ -100,7 +99,7 @@ namespace IO.Swagger.Api { /// /// The base path public void SetBasePath(String basePath) { - this.apiClient.basePath = basePath; + this.ApiClient.BasePath = basePath; } /// @@ -108,21 +107,20 @@ namespace IO.Swagger.Api { /// /// The base path public String GetBasePath(String basePath) { - return this.apiClient.basePath; + return this.ApiClient.BasePath; } /// /// Gets or sets the API client. /// /// The API client - public ApiClient apiClient {get; set;} + public ApiClient ApiClient {get; set;} /// /// Returns pet inventories by status Returns a map of status codes to quantities /// - /// Dictionary public Dictionary GetInventory () { @@ -147,18 +145,17 @@ namespace IO.Swagger.Api { String[] authSettings = new String[] { "api_key" }; // make the HTTP request - IRestResponse response = (IRestResponse) apiClient.CallApi(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling GetInventory: " + response.Content, response.Content); } - return (Dictionary) apiClient.Deserialize(response.Content, typeof(Dictionary)); + return (Dictionary) ApiClient.Deserialize(response.Content, typeof(Dictionary)); } - - /// + + /// /// Returns pet inventories by status Returns a map of status codes to quantities /// - /// Dictionary public async Task> GetInventoryAsync () { @@ -183,11 +180,11 @@ namespace IO.Swagger.Api { String[] authSettings = new String[] { "api_key" }; // make the HTTP request - IRestResponse response = (IRestResponse) await apiClient.CallApiAsync(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling GetInventory: " + response.Content, response.Content); } - return (Dictionary) apiClient.Deserialize(response.Content, typeof(Dictionary)); + return (Dictionary) ApiClient.Deserialize(response.Content, typeof(Dictionary)); } /// @@ -212,22 +209,22 @@ namespace IO.Swagger.Api { - postBody = apiClient.Serialize(Body); // http body (model) parameter + postBody = ApiClient.Serialize(Body); // http body (model) parameter // authentication setting, if any String[] authSettings = new String[] { }; // make the HTTP request - IRestResponse response = (IRestResponse) apiClient.CallApi(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling PlaceOrder: " + response.Content, response.Content); } - return (Order) apiClient.Deserialize(response.Content, typeof(Order)); + return (Order) ApiClient.Deserialize(response.Content, typeof(Order)); } - - /// + + /// /// Place an order for a pet /// /// order placed for purchasing the pet @@ -249,18 +246,18 @@ namespace IO.Swagger.Api { - postBody = apiClient.Serialize(Body); // http body (model) parameter + postBody = ApiClient.Serialize(Body); // http body (model) parameter // authentication setting, if any String[] authSettings = new String[] { }; // make the HTTP request - IRestResponse response = (IRestResponse) await apiClient.CallApiAsync(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling PlaceOrder: " + response.Content, response.Content); } - return (Order) apiClient.Deserialize(response.Content, typeof(Order)); + return (Order) ApiClient.Deserialize(response.Content, typeof(Order)); } /// @@ -277,7 +274,7 @@ namespace IO.Swagger.Api { var path = "/store/order/{orderId}"; path = path.Replace("{format}", "json"); - path = path.Replace("{" + "orderId" + "}", apiClient.ParameterToString(OrderId)); + path = path.Replace("{" + "orderId" + "}", ApiClient.ParameterToString(OrderId)); var queryParams = new Dictionary(); @@ -295,15 +292,15 @@ namespace IO.Swagger.Api { String[] authSettings = new String[] { }; // make the HTTP request - IRestResponse response = (IRestResponse) apiClient.CallApi(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling GetOrderById: " + response.Content, response.Content); } - return (Order) apiClient.Deserialize(response.Content, typeof(Order)); + return (Order) ApiClient.Deserialize(response.Content, typeof(Order)); } - - /// + + /// /// Find purchase order by ID For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions /// /// ID of pet that needs to be fetched @@ -317,7 +314,7 @@ namespace IO.Swagger.Api { var path = "/store/order/{orderId}"; path = path.Replace("{format}", "json"); - path = path.Replace("{" + "orderId" + "}", apiClient.ParameterToString(OrderId)); + path = path.Replace("{" + "orderId" + "}", ApiClient.ParameterToString(OrderId)); var queryParams = new Dictionary(); @@ -335,11 +332,11 @@ namespace IO.Swagger.Api { String[] authSettings = new String[] { }; // make the HTTP request - IRestResponse response = (IRestResponse) await apiClient.CallApiAsync(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling GetOrderById: " + response.Content, response.Content); } - return (Order) apiClient.Deserialize(response.Content, typeof(Order)); + return (Order) ApiClient.Deserialize(response.Content, typeof(Order)); } /// @@ -356,7 +353,7 @@ namespace IO.Swagger.Api { var path = "/store/order/{orderId}"; path = path.Replace("{format}", "json"); - path = path.Replace("{" + "orderId" + "}", apiClient.ParameterToString(OrderId)); + path = path.Replace("{" + "orderId" + "}", ApiClient.ParameterToString(OrderId)); var queryParams = new Dictionary(); @@ -374,7 +371,7 @@ namespace IO.Swagger.Api { String[] authSettings = new String[] { }; // make the HTTP request - IRestResponse response = (IRestResponse) apiClient.CallApi(path, Method.DELETE, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.DELETE, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling DeleteOrder: " + response.Content, response.Content); @@ -382,8 +379,8 @@ namespace IO.Swagger.Api { return; } - - /// + + /// /// Delete purchase order by ID For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors /// /// ID of the order that needs to be deleted @@ -397,7 +394,7 @@ namespace IO.Swagger.Api { var path = "/store/order/{orderId}"; path = path.Replace("{format}", "json"); - path = path.Replace("{" + "orderId" + "}", apiClient.ParameterToString(OrderId)); + path = path.Replace("{" + "orderId" + "}", ApiClient.ParameterToString(OrderId)); var queryParams = new Dictionary(); @@ -415,7 +412,7 @@ namespace IO.Swagger.Api { String[] authSettings = new String[] { }; // make the HTTP request - IRestResponse response = (IRestResponse) await apiClient.CallApiAsync(path, Method.DELETE, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.DELETE, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling DeleteOrder: " + response.Content, response.Content); } diff --git a/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Api/UserApi.cs b/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Api/UserApi.cs index ffee3f5fdd2..beda2ebe362 100644 --- a/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Api/UserApi.cs +++ b/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Api/UserApi.cs @@ -1,4 +1,5 @@ using System; +using System.IO; using System.Collections.Generic; using System.Threading.Tasks; using RestSharp; @@ -55,28 +56,28 @@ namespace IO.Swagger.Api { /// /// Logs user into the system /// - /// The user name for login/// The password for login in clear text + /// The user name for login + /// The password for login in clear text /// string string LoginUser (string Username, string Password); /// /// Logs user into the system /// - /// The user name for login/// The password for login in clear text + /// The user name for login + /// The password for login in clear text /// string Task LoginUserAsync (string Username, string Password); /// /// Logs out current logged in user session /// - /// void LogoutUser (); /// /// Logs out current logged in user session /// - /// Task LogoutUserAsync (); @@ -97,14 +98,16 @@ namespace IO.Swagger.Api { /// /// Updated user This can only be done by the logged in user. /// - /// name that need to be deleted/// Updated user object + /// name that need to be deleted + /// Updated user object /// void UpdateUser (string Username, User Body); /// /// Updated user This can only be done by the logged in user. /// - /// name that need to be deleted/// Updated user object + /// name that need to be deleted + /// Updated user object /// Task UpdateUserAsync (string Username, User Body); @@ -136,9 +139,9 @@ namespace IO.Swagger.Api { /// public UserApi(ApiClient apiClient = null) { if (apiClient == null) { // use the default one in Configuration - this.apiClient = Configuration.apiClient; + this.ApiClient = Configuration.DefaultApiClient; } else { - this.apiClient = apiClient; + this.ApiClient = apiClient; } } @@ -148,7 +151,7 @@ namespace IO.Swagger.Api { /// public UserApi(String basePath) { - this.apiClient = new ApiClient(basePath); + this.ApiClient = new ApiClient(basePath); } /// @@ -156,7 +159,7 @@ namespace IO.Swagger.Api { /// /// The base path public void SetBasePath(String basePath) { - this.apiClient.basePath = basePath; + this.ApiClient.BasePath = basePath; } /// @@ -164,14 +167,14 @@ namespace IO.Swagger.Api { /// /// The base path public String GetBasePath(String basePath) { - return this.apiClient.basePath; + return this.ApiClient.BasePath; } /// /// Gets or sets the API client. /// /// The API client - public ApiClient apiClient {get; set;} + public ApiClient ApiClient {get; set;} @@ -197,14 +200,14 @@ namespace IO.Swagger.Api { - postBody = apiClient.Serialize(Body); // http body (model) parameter + postBody = ApiClient.Serialize(Body); // http body (model) parameter // authentication setting, if any String[] authSettings = new String[] { }; // make the HTTP request - IRestResponse response = (IRestResponse) apiClient.CallApi(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling CreateUser: " + response.Content, response.Content); @@ -212,8 +215,8 @@ namespace IO.Swagger.Api { return; } - - /// + + /// /// Create user This can only be done by the logged in user. /// /// Created user object @@ -235,14 +238,14 @@ namespace IO.Swagger.Api { - postBody = apiClient.Serialize(Body); // http body (model) parameter + postBody = ApiClient.Serialize(Body); // http body (model) parameter // authentication setting, if any String[] authSettings = new String[] { }; // make the HTTP request - IRestResponse response = (IRestResponse) await apiClient.CallApiAsync(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling CreateUser: " + response.Content, response.Content); } @@ -272,14 +275,14 @@ namespace IO.Swagger.Api { - postBody = apiClient.Serialize(Body); // http body (model) parameter + postBody = ApiClient.Serialize(Body); // http body (model) parameter // authentication setting, if any String[] authSettings = new String[] { }; // make the HTTP request - IRestResponse response = (IRestResponse) apiClient.CallApi(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling CreateUsersWithArrayInput: " + response.Content, response.Content); @@ -287,8 +290,8 @@ namespace IO.Swagger.Api { return; } - - /// + + /// /// Creates list of users with given input array /// /// List of user object @@ -310,14 +313,14 @@ namespace IO.Swagger.Api { - postBody = apiClient.Serialize(Body); // http body (model) parameter + postBody = ApiClient.Serialize(Body); // http body (model) parameter // authentication setting, if any String[] authSettings = new String[] { }; // make the HTTP request - IRestResponse response = (IRestResponse) await apiClient.CallApiAsync(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling CreateUsersWithArrayInput: " + response.Content, response.Content); } @@ -347,14 +350,14 @@ namespace IO.Swagger.Api { - postBody = apiClient.Serialize(Body); // http body (model) parameter + postBody = ApiClient.Serialize(Body); // http body (model) parameter // authentication setting, if any String[] authSettings = new String[] { }; // make the HTTP request - IRestResponse response = (IRestResponse) apiClient.CallApi(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling CreateUsersWithListInput: " + response.Content, response.Content); @@ -362,8 +365,8 @@ namespace IO.Swagger.Api { return; } - - /// + + /// /// Creates list of users with given input array /// /// List of user object @@ -385,14 +388,14 @@ namespace IO.Swagger.Api { - postBody = apiClient.Serialize(Body); // http body (model) parameter + postBody = ApiClient.Serialize(Body); // http body (model) parameter // authentication setting, if any String[] authSettings = new String[] { }; // make the HTTP request - IRestResponse response = (IRestResponse) await apiClient.CallApiAsync(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling CreateUsersWithListInput: " + response.Content, response.Content); } @@ -403,7 +406,8 @@ namespace IO.Swagger.Api { /// /// Logs user into the system /// - /// The user name for login/// The password for login in clear text + /// The user name for login + /// The password for login in clear text /// string public string LoginUser (string Username, string Password) { @@ -419,8 +423,8 @@ namespace IO.Swagger.Api { var fileParams = new Dictionary(); String postBody = null; - if (Username != null) queryParams.Add("username", apiClient.ParameterToString(Username)); // query parameter - if (Password != null) queryParams.Add("password", apiClient.ParameterToString(Password)); // query parameter + if (Username != null) queryParams.Add("username", ApiClient.ParameterToString(Username)); // query parameter + if (Password != null) queryParams.Add("password", ApiClient.ParameterToString(Password)); // query parameter @@ -430,18 +434,19 @@ namespace IO.Swagger.Api { String[] authSettings = new String[] { }; // make the HTTP request - IRestResponse response = (IRestResponse) apiClient.CallApi(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling LoginUser: " + response.Content, response.Content); } - return (string) apiClient.Deserialize(response.Content, typeof(string)); + return (string) ApiClient.Deserialize(response.Content, typeof(string)); } - - /// + + /// /// Logs user into the system /// - /// The user name for login/// The password for login in clear text + /// The user name for login + /// The password for login in clear text /// string public async Task LoginUserAsync (string Username, string Password) { @@ -457,8 +462,8 @@ namespace IO.Swagger.Api { var fileParams = new Dictionary(); String postBody = null; - if (Username != null) queryParams.Add("username", apiClient.ParameterToString(Username)); // query parameter - if (Password != null) queryParams.Add("password", apiClient.ParameterToString(Password)); // query parameter + if (Username != null) queryParams.Add("username", ApiClient.ParameterToString(Username)); // query parameter + if (Password != null) queryParams.Add("password", ApiClient.ParameterToString(Password)); // query parameter @@ -468,17 +473,16 @@ namespace IO.Swagger.Api { String[] authSettings = new String[] { }; // make the HTTP request - IRestResponse response = (IRestResponse) await apiClient.CallApiAsync(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling LoginUser: " + response.Content, response.Content); } - return (string) apiClient.Deserialize(response.Content, typeof(string)); + return (string) ApiClient.Deserialize(response.Content, typeof(string)); } /// /// Logs out current logged in user session /// - /// public void LogoutUser () { @@ -503,7 +507,7 @@ namespace IO.Swagger.Api { String[] authSettings = new String[] { }; // make the HTTP request - IRestResponse response = (IRestResponse) apiClient.CallApi(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling LogoutUser: " + response.Content, response.Content); @@ -511,11 +515,10 @@ namespace IO.Swagger.Api { return; } - - /// + + /// /// Logs out current logged in user session /// - /// public async Task LogoutUserAsync () { @@ -540,7 +543,7 @@ namespace IO.Swagger.Api { String[] authSettings = new String[] { }; // make the HTTP request - IRestResponse response = (IRestResponse) await apiClient.CallApiAsync(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling LogoutUser: " + response.Content, response.Content); } @@ -562,7 +565,7 @@ namespace IO.Swagger.Api { var path = "/user/{username}"; path = path.Replace("{format}", "json"); - path = path.Replace("{" + "username" + "}", apiClient.ParameterToString(Username)); + path = path.Replace("{" + "username" + "}", ApiClient.ParameterToString(Username)); var queryParams = new Dictionary(); @@ -580,15 +583,15 @@ namespace IO.Swagger.Api { String[] authSettings = new String[] { }; // make the HTTP request - IRestResponse response = (IRestResponse) apiClient.CallApi(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling GetUserByName: " + response.Content, response.Content); } - return (User) apiClient.Deserialize(response.Content, typeof(User)); + return (User) ApiClient.Deserialize(response.Content, typeof(User)); } - - /// + + /// /// Get user by user name /// /// The name that needs to be fetched. Use user1 for testing. @@ -602,7 +605,7 @@ namespace IO.Swagger.Api { var path = "/user/{username}"; path = path.Replace("{format}", "json"); - path = path.Replace("{" + "username" + "}", apiClient.ParameterToString(Username)); + path = path.Replace("{" + "username" + "}", ApiClient.ParameterToString(Username)); var queryParams = new Dictionary(); @@ -620,17 +623,18 @@ namespace IO.Swagger.Api { String[] authSettings = new String[] { }; // make the HTTP request - IRestResponse response = (IRestResponse) await apiClient.CallApiAsync(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling GetUserByName: " + response.Content, response.Content); } - return (User) apiClient.Deserialize(response.Content, typeof(User)); + return (User) ApiClient.Deserialize(response.Content, typeof(User)); } /// /// Updated user This can only be done by the logged in user. /// - /// name that need to be deleted/// Updated user object + /// name that need to be deleted + /// Updated user object /// public void UpdateUser (string Username, User Body) { @@ -641,7 +645,7 @@ namespace IO.Swagger.Api { var path = "/user/{username}"; path = path.Replace("{format}", "json"); - path = path.Replace("{" + "username" + "}", apiClient.ParameterToString(Username)); + path = path.Replace("{" + "username" + "}", ApiClient.ParameterToString(Username)); var queryParams = new Dictionary(); @@ -653,14 +657,14 @@ namespace IO.Swagger.Api { - postBody = apiClient.Serialize(Body); // http body (model) parameter + postBody = ApiClient.Serialize(Body); // http body (model) parameter // authentication setting, if any String[] authSettings = new String[] { }; // make the HTTP request - IRestResponse response = (IRestResponse) apiClient.CallApi(path, Method.PUT, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.PUT, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling UpdateUser: " + response.Content, response.Content); @@ -668,11 +672,12 @@ namespace IO.Swagger.Api { return; } - - /// + + /// /// Updated user This can only be done by the logged in user. /// - /// name that need to be deleted/// Updated user object + /// name that need to be deleted + /// Updated user object /// public async Task UpdateUserAsync (string Username, User Body) { @@ -683,7 +688,7 @@ namespace IO.Swagger.Api { var path = "/user/{username}"; path = path.Replace("{format}", "json"); - path = path.Replace("{" + "username" + "}", apiClient.ParameterToString(Username)); + path = path.Replace("{" + "username" + "}", ApiClient.ParameterToString(Username)); var queryParams = new Dictionary(); @@ -695,14 +700,14 @@ namespace IO.Swagger.Api { - postBody = apiClient.Serialize(Body); // http body (model) parameter + postBody = ApiClient.Serialize(Body); // http body (model) parameter // authentication setting, if any String[] authSettings = new String[] { }; // make the HTTP request - IRestResponse response = (IRestResponse) await apiClient.CallApiAsync(path, Method.PUT, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.PUT, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling UpdateUser: " + response.Content, response.Content); } @@ -724,7 +729,7 @@ namespace IO.Swagger.Api { var path = "/user/{username}"; path = path.Replace("{format}", "json"); - path = path.Replace("{" + "username" + "}", apiClient.ParameterToString(Username)); + path = path.Replace("{" + "username" + "}", ApiClient.ParameterToString(Username)); var queryParams = new Dictionary(); @@ -742,7 +747,7 @@ namespace IO.Swagger.Api { String[] authSettings = new String[] { }; // make the HTTP request - IRestResponse response = (IRestResponse) apiClient.CallApi(path, Method.DELETE, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.DELETE, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling DeleteUser: " + response.Content, response.Content); @@ -750,8 +755,8 @@ namespace IO.Swagger.Api { return; } - - /// + + /// /// Delete user This can only be done by the logged in user. /// /// The name that needs to be deleted @@ -765,7 +770,7 @@ namespace IO.Swagger.Api { var path = "/user/{username}"; path = path.Replace("{format}", "json"); - path = path.Replace("{" + "username" + "}", apiClient.ParameterToString(Username)); + path = path.Replace("{" + "username" + "}", ApiClient.ParameterToString(Username)); var queryParams = new Dictionary(); @@ -783,7 +788,7 @@ namespace IO.Swagger.Api { String[] authSettings = new String[] { }; // make the HTTP request - IRestResponse response = (IRestResponse) await apiClient.CallApiAsync(path, Method.DELETE, queryParams, postBody, headerParams, formParams, fileParams, authSettings); + IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.DELETE, queryParams, postBody, headerParams, formParams, fileParams, authSettings); if (((int)response.StatusCode) >= 400) { throw new ApiException ((int)response.StatusCode, "Error calling DeleteUser: " + response.Content, response.Content); } diff --git a/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Client/ApiClient.cs b/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Client/ApiClient.cs index b001a38845c..321e9bc2a36 100644 --- a/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Client/ApiClient.cs +++ b/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Client/ApiClient.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Text.RegularExpressions; using System.IO; using System.Linq; using System.Net; @@ -19,21 +20,21 @@ namespace IO.Swagger.Client { /// /// The base path. public ApiClient(String basePath="http://petstore.swagger.io/v2") { - this.basePath = basePath; - this.restClient = new RestClient(this.basePath); + this.BasePath = basePath; + this.RestClient = new RestClient(this.BasePath); } /// /// Gets or sets the base path. /// /// The base path. - public string basePath { get; set; } + public string BasePath { get; set; } /// /// Gets or sets the RestClient /// /// The RestClient. - public RestClient restClient { get; set; } + public RestClient RestClient { get; set; } private Dictionary defaultHeaderMap = new Dictionary(); @@ -77,7 +78,7 @@ namespace IO.Swagger.Client { request.AddParameter("application/json", PostBody, ParameterType.RequestBody); // http body (model) parameter } - return (Object) await restClient.ExecuteTaskAsync(request); + return (Object) await RestClient.ExecuteTaskAsync(request); } @@ -119,10 +120,12 @@ namespace IO.Swagger.Client { { if (obj is DateTime) { return ((DateTime)obj).ToString ("u"); + } else if (obj is FileStream) { + return ((FileStream)obj).Name; } else if (obj is List) { return String.Join(",", obj as List); } else { - return Convert.ToString (obj); + return Convert.ToString (obj); } } @@ -132,16 +135,38 @@ namespace IO.Swagger.Client { /// JSON string /// Object type /// Object representation of the JSON string - public object Deserialize(string content, Type type) { - if (type.GetType() == typeof(Object)) - return (Object)content; + public object Deserialize(string content, Type type, IList headers=null) { + if (type.GetType() == typeof(Object)) { + return (Object)content; + } else if (type.Name == "FileStream") { + // e.g. Content-Disposition: attachment; filename=checkimage.jpp + String fileName; + String filePath; + if (String.IsNullOrEmpty (Configuration.TempFolderPath)) { + filePath = System.IO.Path.GetTempPath (); + } else { + filePath = Configuration.TempFolderPath; + } + + Regex regex = new Regex(@"Content-Disposition:.*filename=['""]?([^'""\s]+)['""]?$"); + Match match = regex.Match(headers.ToString()); + if (match.Success) { + // replace first and last " or ', if found + fileName = filePath + match.Value.Replace("\"", "").Replace("'",""); + } else { + fileName = filePath + Guid.NewGuid().ToString(); + } + System.IO.File.WriteAllText (fileName, content); + return File.Open (fileName, FileMode.Open); + } + try { return JsonConvert.DeserializeObject(content, type); } catch (IOException e) { - throw new ApiException(500, e.Message); + throw new ApiException(500, e.Message); } } @@ -165,12 +190,12 @@ namespace IO.Swagger.Client { /// /// Object /// API key with prefix - public string GetApiKeyWithPrefix (string apiKey) + public string GetApiKeyWithPrefix (string apiKeyIdentifier) { var apiKeyValue = ""; - Configuration.apiKey.TryGetValue (apiKey, out apiKeyValue); + Configuration.ApiKey.TryGetValue (apiKeyIdentifier, out apiKeyValue); var apiKeyPrefix = ""; - if (Configuration.apiKeyPrefix.TryGetValue (apiKey, out apiKeyPrefix)) { + if (Configuration.ApiKeyPrefix.TryGetValue (apiKeyIdentifier, out apiKeyPrefix)) { return apiKeyPrefix + " " + apiKeyValue; } else { return apiKeyValue; diff --git a/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Client/Configuration.cs b/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Client/Configuration.cs index ab24fc1252c..5d3029e7cc3 100644 --- a/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Client/Configuration.cs +++ b/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Client/Configuration.cs @@ -1,4 +1,5 @@ using System; +using System.Reflection; using System.Collections.Generic; using System.IO; using System.Linq; @@ -17,35 +18,81 @@ namespace IO.Swagger.Client { public const string Version = "1.0.0"; /// - /// Gets or sets the API client. This is the default API client for making HTTP calls. + /// Gets or sets the default API client for making HTTP calls. /// /// The API client. - public static ApiClient apiClient = new ApiClient(); + public static ApiClient DefaultApiClient = new ApiClient(); /// /// Gets or sets the username (HTTP basic authentication) /// /// The username. - public static String username { get; set; } + public static String Username { get; set; } /// /// Gets or sets the password (HTTP basic authentication) /// /// The password. - public static String password { get; set; } + public static String Password { get; set; } /// /// Gets or sets the API key based on the authentication name /// /// The API key. - public static Dictionary apiKey = new Dictionary(); + public static Dictionary ApiKey = new Dictionary(); /// /// Gets or sets the prefix (e.g. Token) of the API key based on the authentication name /// /// The prefix of the API key. - public static Dictionary apiKeyPrefix = new Dictionary(); + public static Dictionary ApiKeyPrefix = new Dictionary(); + private static string _tempFolderPath = Path.GetTempPath(); + /// + /// Gets or sets the temporary folder path to store the files downloaded from the server + /// + /// Folder path + public static String TempFolderPath { + get { + return _tempFolderPath; + } + + set { + if (!String.IsNullOrEmpty(value)) { + _tempFolderPath = value; + return; + } + + // create the directory if it does not exist + if (!Directory.Exists(value)) { + Directory.CreateDirectory(value); + } + + // check if the path contains directory separator at the end + if (value[value.Length - 1] == Path.DirectorySeparatorChar) { + _tempFolderPath = value; + } else { + _tempFolderPath = value + Path.DirectorySeparatorChar; + } + } + } + + /// + /// Return a string contain essential information for debugging + /// + /// Folder path + public static String ToDebugReport() { + String report = "C# SDK () Debug Report:\n"; + report += " OS: " + Environment.OSVersion + "\n"; + report += " .NET Framework Version: " + Assembly + .GetExecutingAssembly() + .GetReferencedAssemblies() + .Where(x => x.Name == "System.Core").First().Version.ToString() + "\n"; + report += " Swagger Spec Version: 1.0.0\n"; + report += " SDK Package Version: 1.0.0\n"; + + return report; + } } } diff --git a/samples/client/petstore/csharp/SwaggerClientTest/SwaggerClientTest.userprefs b/samples/client/petstore/csharp/SwaggerClientTest/SwaggerClientTest.userprefs index 4fa44c936ae..929ee8f320f 100644 --- a/samples/client/petstore/csharp/SwaggerClientTest/SwaggerClientTest.userprefs +++ b/samples/client/petstore/csharp/SwaggerClientTest/SwaggerClientTest.userprefs @@ -1,9 +1,12 @@  - + - - + + + + + diff --git a/samples/client/petstore/csharp/SwaggerClientTest/bin/Debug/SwaggerClientTest.dll b/samples/client/petstore/csharp/SwaggerClientTest/bin/Debug/SwaggerClientTest.dll index bac89714b9cad85af8d64fd3230169073c376c63..5541f7ccaa24dec882eb9e104daee63e000b3b28 100755 GIT binary patch literal 53248 zcmeHw34D~*x%YYB*(b>)Gf7wj1O*)dAqXg7RKgw$f)KZgg&`Rrnq=ZkBH)|RptjX& zU2eVFR;-|Pt+jTswb})%b!n~j-rHVlZ@JYjw%*#?#qRCZ@Be?!JMS_X5bSOH`+naS zopYY;Jm;L}Jm)#f`_8cXo!6^?QYwhgn{O)hFmnDalJwxoFxZJnk0jJ*V&9nju(9eJ zlRLI`7n=L?xvlw3Z*ym+uP-;yygA#PAM9)H?rUDUW_@#St}8pUrY1hcR=swaQmYKM z!2NqknUkxGs8UaZ7S{CVeuBK2uz}Aa4V${%q_X|;w+MXD`4>=&-mO%f{O{&AszuZ= z^u9x2Lq+|~&=SptsnSAQNnh=D1CzgIr8dpX z7xJCJblcE3cJyn)c9KOf$jp4UCkH`kE7~kJc+L?K0CJ1{6r~=dUGc}ZnJT1Oib}0L zUt3uihnd`ErcrrZ1s0}Q(!3;&CZ|Vn9OuV`642PRb+)7#D4^Y8p-x+<%yc8LKrV}P zno{*GhH5}LC{5bDTo+jJ`BWC3Mt%YiOqVn*+NZ=h!VDCNPlJw_x*swa-lWQd)*lb& ztB~atxFo?nzOXtwHfSQdW zXj(F*0>u`9DPY!*bH^lkI-D zdHM}UhAoDevELYef4^Tw|6yB<_noNl@Wwl^U^Gfc^3R}TY3zHUE>{D?9$@%K9i|yx zIG7o9rM5>rkG_ph!^h(dxjuRp@%pH^NHVI&S^EjxNbI%Bw$~bMuUh)aT5T_8v=@AS zdOGRx6W3m2jkjyB1t|Hqvey#mKHzkDoA$yy7JI$Zw%2(cd%a8Biy7^ODd@LX6f+GI zFsW*dG$LJm)EmYEtTakydVUvLTR?aZU!4DaMRSJpNz*abHPAjjCm!~ev1m*w`b3tKXK5C4a3L1AgGz^6X%xkovY`K*@XG2esOkKJOia?j?iy2OaMJzWY7`-EU=S z*MBjo#DA|7dj^X)NggWREV)_yu;kk2w+KAMj5bGzc5ObsC9a-=&9N3@uQv}OakH_= zJiH8xB6hFvZSeQsiA0&Q(<@?u44S6JtZdJxS+dP5PN$RxXSm?8E;y55Lva=})8Y^#&=Pf))M!a%megahSgxB}j?oO9$5YD?(=-M* zzHlPDH(Gjb%GOUaO`34}{=3Q5(&Hd4JJBjLQapiLOp96ZIKmB@WD)UfQ-MN(OO>sv zjXT>_53aYY`&nxLSR~c|5i7wbmu%UPoGt+8AW{>~L z0QL9_uWbBJ86nR~N1K*ZXh{)EYP6&>OX{&$%rpK=sbz?%Z~WPFQ?|gGX{O`u_=~h} z{FhPOw3rna5pF07$s#gx{2gk3JNLm_$}|4LCthj%-KP1+-=!bg_%BA&eB&R(M6Z?k ze>zwkf9CG^kAeT}{|OSz|2xs{;&QOjYi8x+FDyO&D=4MGl`h!sf~OK}D87T4wF>Ei zqgaQVxLs3W;k&#Z}Q1dT{QwSc06UZ6X)TM}P zr|@;sk*#>5sdfWMjXkQm8?kgV^zE-_2lQxbdNe&5bc6+840#Si|2=%hf^NqU+9HrX zLJKp7xIVNIEcy`h%09%?P_YAS7>QZA4+%><&KZ=_;F&IXmJ6Ouu%UPkGwYp5Z69L6 zyd0ja^8ngDM1ceQ(7E8ENgjE&1U@9Kuyh^L3`<&IN#z!cd35Or2whYAQxL+e+YC;H&9-|;H06|7?1UWb$gJGWyev66 zS{G1hBen>pMg3)aaji=`V;9wGFzbR_TyQJFhT=A6mCu*OZt_fTrEC%0O_W!X$-rapJ0<;)<>CyC5Mj`K>=a2A{2;9UIuV{!s`Y1PE zb%37`Un_z|Ut{k28ZQ_39|s|E^Rl#$S&*`QjCyr63ZP*{ zk<~txr$!AHTyVez2MIP5FJfkGM{0*Xis%!#<*A4Qp0H=_C@b)ctUI0p6z~)%TWfcM zi~f4#*>r5cq}i5kl(gHDCR@^4i^V*SdkM7+G4(kvhryJywq}Zlls4cZ?Q`5qDQ;TK ziWd`ZC<@6UGSYD!YM!?Rrk3(JuJB#Q-H-8iH{fp5{2MTrt~X#_UmOP);!Uc@7l+U? z-~Ow`@x^PvqAxOceX)nWm=Iqa8V09A+;cA(Y@gf(IoO3+xlejo+9%&fr8@3We|g-K z0@@odqgoAK?t)ji;JXPn6yL+ldM{GjF)6JtDlAWJ6gaS-T}dUTSDq~yYg*C@OV=UI zu%rc+RBo}D$IsqREkjIwenu0Uau1=IX1dnh=!^6?OiJgVcP+(Di&^n1!VN_sSwu$q znM2L<0>#u)9zPTQf&9#En%~b{`bamdibFe~>nFH8H`hpANi8TFU@nH12@bpzFE@Sj}p11@+Y z!G_{LGqY|&YWo>Q@^Xn|d1|A8$Iq;r-2zmk?{&NdDBvkj763m8E;{Y0fK5jLlxADH zQPOTpnrumHEf(`Q=B?B+#MI}Q91~M6Yc$hL*SU@<(mu!h2*pi{S@A=J8;U}*h>Ubh zhnnYolc}XVjw$>DIi}k*zhk;|`vmGgKO7C0n&~wg~x*Ttj=Lvk8$!3HP z_c=l;bdU={t<%0Qd_G$CIE%RdIl?jMPYV6vv(CHGOWXq<%}vKW0uM3c-5|O=Jq=ms z`N7vvu3qf03e7n@JLonB?K z7Ndj&E?pVUrJ~f5B9>^iM4=_REEe;uZue2k5L4gk#@?9{ZZuP#wUn;XMB2ByeT?F! z#jJQ2;fA7+EFvRUH;0;M@HDj)S2O!6P58u1S81M3I=qU}wCr5!b|aRa34NujG?yMt z&jQ_dF6I8}WB824XkyHH7tgpGNViZ@-^ITM{uuFx&w)jMVD9?EpHX)I*B}IcU_>t7 z4>l~stlS@jrJdm8l+xe>F8B!-e2`#6@srFVCdj>~+7cV>=jf$ThA;-$F1Coj? z5w)ZyODeHMzr|u6A9V%o0&cv{|Ca5*-$c zdEDtqY8hhcb0-?dlod%c&Gcy3okZH_PES$Xw3rpYLb#zQB#X#McXFtCuC%6>qWjn( zNBG1`A;)7xhj%FM6?U2%cGwPadRNbED^Otn;)q@z?FZq3h zy*udnY#sKl?)glx5$7{f<$QKJfXe4Hat?AnLu~P#&xq^u8FnG|yQinZOow|e(GAL> za__l>)bQb+OU^v>eIn+d?3=%bUho|DeaZDZ8ZQYv#Eknyh`RekzH96D_nLofe;+>d z{$d(PfB(zw@6SE`{cqi0X6!FS57gi4=s$FPk4N&_3sHZ6e+NZPD6jHY9(I3A@7C@?Ni(f|yO$HI2Fs3qu_==Ol*9B~Y`JGk@%_U+ zTRw3x+vt{fZYT`zn~qVw%I$gKw)76!1lxvqZxM4OSd2(+7UPnq=W(-9CGZe4+7f1) zo<0E#Y@y}-?3<7yQoxpfIBZ+~l@>|G-qKt2{lhV6<3#DJSsbnV7GvM=t_9D}%-A=W z!|x}UOKKAP<~={JM6LGu`Rf2jM#FIa=b-z10|q+y8~T5xB?9q-Sii`ethZp>&mn09)4p~ok%ppCqDI0bF|U$>j?n?5s*SX~bH z8x4;h%!)etXn$IO{!O;+Gfiv}EY6nPEY6i&uQT%m9%4p2!Ik{}h0WneJN@c!VW%?x zI^6r2-l~K6mp?8aVcP|-gUGtO*kcd8Q$W9AMti`;Tzl}n7M{ftC~sOXBXo0b%-r1@ zBgU)!JlNwr&Yei{-@(Rqk6HN!SXg=|`vRpj_#GE~(FMOtu%Y-L%uI_r1qtk?^*w<4 zJT5$K#Ui$WWpbZQPvZNAA^jj?E+3@~=T85bVHoWYyIrNglH2IcLX~Qeh zSiapyWj~~#X)!DQC*g*okSro2H@prt&#jcHr92y6;U8$j>o(25;dSZuhS$5_eYc_1 z2k^lrt8@>;&iS5|x#Ru|usH6_D~~&OWW^tWjb1Y=A9rEt!TvF&H28`O{=@};O0c2$ zDl^mKj>#T(Zld(K3(p?+pN)`XWf*s<$P!UYYOQ1jeUnp(;;?!rINxVugBkGo4hv~g$W z4lwTj0~W`fdF65E&b0Vzu+eK~<>M|aJ=m{PN`t>~!QZ;z?+7*&f6vUc{*25X_dfvC z<1RdV-2XU2j+J5Dr6Nm2Evdc*aoFEXu4p)1%m_|iXmneH@)_AY!=MR zhTh`V*LDU9cpghz+#P!h$R^)gfC8QZw)fzRR&2XRF`JC*HfgS<8zb$tq^Xv)(qb`> z_ta3!5L2J`&~Bz|&Nb8Ii(94JTag~;T`dw6H!Wtx7~zJZkSro2y~m;EdH683l*fC7 z?|P4~lMatJ{3A{yWw*C(H)82lG`Mub@6w~`lk^7DySCt~X(|La@vJR8rv%a`Ygz6o z?tqNmQ{YWl@ipeIuVJ-U`*%SIzQz+wu@-FDh*`O>2}?Uz9i=pwbitGh))Q$7)LEbOnsifUYT-~(M*%C>Xp_Hk@k7Q zc#4}Av*IYi4MibYL`HgoL(TKhWojvpCkWs5g#9q5dr{^#%^ycxdWAUBjUm~Nk7sOo zPV>bP-p#|`5l4;&i*baxJGMBWICt|r$9V2i-BX;I=P|B00el#QS^2PgS#q?qco?#W zka|6LsUoZWVj?waaFPo)yWnJk4aFmv*)DP^dls=o1X@b$DiEOt?f_K!H4yjmHU&IrTvMAM%$mL*W*tjtDR^DHEQr! z7o6#Wvj{d6TbP-aM<>swdRrqr+t-d8A;-$_)h?;X5>ZQPvZNAA^jj?E@wF4EWr(TI z*JwCXPQIFH@(q|$I1*`}ug#}8zT||gIEQdUQAie%k-p|o^E|WT>ui+r_?m-P`f88c zG=Dg9>2^5sJ==K}!~R{r|L|Pzi%0Y??LSMwqW>^={YT=_)7pO)faCEW_tbCu&qDBF z5oYE7<7H|8fn%2Zhk8B!BeL3QPNYT+wz}X+E_gD*hThlpA$CTRu%{0?#*GEL!=OfE0jxRzXE4C4CC<@6UGSWvJ zYM!?j_{tllJU-&!m3+i)n%_rUdLhH82s%FC|QLE*wuHu)F~ zTU8{t9B{SV2H{s7c*op_dNJ+gxx`wO;vMtpl81`xB~OHk9U6!h&(J`)xIqJv;zkVw zi<<>7i=C3ESD>O|m%u~Jc$ox~O;5LjG3{hTXWBRrlskFbmRLv>+zY?KBFvI8#fEY4 zXlE60$YQqv(9t*02Vrny0o)N6c6Snvr&Rt9_*ME;R9Q8D6&Zu|6iSKE0O8y_ggHx? zXux>+V!q1Xje>ze64EG$;&^s|^6Axr5ROb6-x5?+XcU^CgyWtD*7N9<-bts|09}BM zHA=ai=9F%bGJP`HGF(!slN6}YQ;y0>s zI<$_5f78H#lTfjs3UDC(E)>B6g4Yi9S)xiSi&WBOsIlWz{b=Z-&tg2)4C<0j#xH^0 zf`OFEZG^_7gjRJ4VmxSu&=z2z`CBXVV2E&f6QruOdBe_BfG-8rWso|SdP6d9p=-Mr zVuGsqy+~B3YE<=n7(_*)AC9Z=f@J{1@&>;Q=0X}IEWebY@n+!jnb@!SYteoP}d#jp1*LCQ7tHk?=3-uYa(-ZO}ra&`+tcR#}aA! zLYRVu$d;IxJD+9F1UjE{9^ECJzJS!T0GXEP8zP+U0oBwXTsY2O_K6>5m&gHL_(k}d z{?@#xd1DkN?)V&hH2yu-%7*9)&jwVgkg%@s96+TC3ELG4=&evnlvhY%d4=r1uJE0J zN)-~;6`l*IR3TxzLII^h*o!@s66F<=SY9EQFE|A`Oj(-F74bVMbg?=GY7 zv*|S`?3KrNH5G%#r5-v^o)1(Frt5foJa-%1#@O@z2s3>#I;f^CHiK!4kQtzX!qeVW zMleI^ourrcfwLvfMzAcD_A&eoIpXeK@i>ve2EZpn+#Bx=RfBe-YspKnpgN)x&0(Sl zU9xX-WUBo#L`yR4FZHNPYCS?MA5e%<`p=X-%0iUGAPiG*{#t_RA^Js3$mt?rdQ|Qb z0He>zVQ&+^WEjaJw!~P^d zAPtiwbiS)Roi8R&&t1g=+**mU^!oro*M924=n$S%OGxx$f6#02D#)jh!R+vlh9R?pwAF@eTL&_ zTJUb43~|bs3Ugh}qdg1P>fU@BwdSq^d{j99LJ2n0Fj-iC5AAxkjfO2r{n(XyFQkO* z6Zm~e;Ha=zvb0HI{V=)qF>`eKhPUi%eOW(n1C7uu zR|=ySz6RYLpBpib?XJ{6Q3@TdAl2zg-3Y0XqrKA=xQS|DlL~77_k048*k@nj?iehP zF&I}SL)?|oV~Jh0PY-cdW})b5Dw84Z%A6=NI6(RI5O-yCT@%Y>h*QQ?e<+`iA1ImA zKOb+QX>ppZVA_wDN|@WaMo^Dx#rUYghf!l3Cj|-=ur$PTyFm%(|AUR%BjD=< z?*drBHY{8fnKb`=Es5P%IFgUlfqf-F=Zki8K)Jo}&rnufxEG9?m{3edY69+rTLw;>0*OO?lzFqFjG8FLqu|n zjDkmUjH3CUQGPb$wXSQHVr!&XqjHG%@thNcv=;W<$7lGl6*6w;CnTZpI5vQWjO0ih z#bJrtQd}SM=THj!&gqlpU$acAlx5@H;7P>Om2q$)IpJ`ZCq!&q=>yMhrdACgY=%6ct7V7T%O|a z@4VAmzUUqy&SLf{+OwZ-!MzaGH@&7Y2tx z`AG0lr1=oJcZBW<;cZlbzZ+ty>M+w&!sMPECij2B(FkrgBP?~Sq^Cv5-4mhYV?y~I zC}DMdjIH`jj5W@RPcy32QrIG{HpkhjA4&S_I7=N_HM1(Nu8u_`3H8pZO;rhXsig0g z^k$@Sb#E0VzaL=jPgg}FDfKT^`$2yba9pjcKDRoozE{l}e_hQQkFA+zj8dy=*tVe> z%G@gH3pLd9JxPBjX*j{!TO~a^alAQ7ZA_e>h^xDBFF8(KpSUYAPCbq^u3ku-Tb)v` zCH7ZMRKHJD*G^PTwM?f=dXl8?KpI!uYFW#6q@(R#-&RM;H&g43uzDfIc8(wQXmGkQ z3w{w-Cy$yG)>OsMtL_QWzlOD$}yw<7b(8~$NG(!uXY7aSZzeW3BPJU{@ksO)$0^zlA-Y!^fY#ir8g9E{b%n zQH`|MXh3?UF`0E($(9&udVuM2NjFK#wi#-> zz}E&QBeLBWI2GR%_-QbN^w+^^q=69AMoFhiIxj@-gMsZxmxL^&XM`?A+8MeWX?N(o zNUsXfCQBo~G7a^?2)X|#oeu?0MD3N@ISv1s%G+z_7Y)Ag~tA^~-CjH}fhLb+ey z&rAA*q~DBjwdxFE{l@OsEpCqwtvF0a9+PyU_^JyP3IgYBA)Jr5pFIQ)Au^nLKK z(UQL>L$B9vslgV>#@?vyui?&^e@})Ib(hrew8XzBL(O&XuHku*e@})^sC$164sG)H zWT>s~=9+p3TU&Q~4KDL--nn%T)QnMUn~A<>%x?pa){IvdJJ{Yxle$i0>VmqxkqK&# zjcu=|(^&NKy06wuQs1?)8|oef_9MYwF=(@9wR^I{-zx@fHd%eo#%Qx6)Qvpw zfk&GislH`nwAmE(1g=lWqs^wO;1rF~W=E;t*cfegw3<6r^JufQT6vVlXtQI~l{QA3 zO;fvh5QR?K>{#`hjnQT;>X&KFqs@*}^N-OOZ8leJn5Hq>>;!`N!`RkcmcUKF{5=`^ zY~6Jp?CH8a9_-)h?oOQONdB;&y;o%%MV;`2Qmu!rESfReNNb}f-m1<0z#@L5;^-~*TA5J9$e@})cC70K}LnFYZ zC0Et*et>^Zh88B**RIwGu#V(;wWm2)0lYO1b`5xI9qhj3x$1NW`%H3M?Rp1$Jh@Jt z;b6}tZ}njRnatO^yw{RDYR_~e-%MUsi%SmqdomPHT~&LIgN;k=jhyRXQ&V3_Y*5ch z7xfsOr~cqzdn4~sHPYet$QW%@O*Y0c+N4@FCS#OQXWAIYD5EwB_KHE9ZB}(+s8uD3DTtWWi?qiJ5ji<4K?_N#|&j5f=wD`j9_ zF=(@bx(^N4v1e~&Kz&DJ(Rry}HK=}VV~bI4Q2oWm)}%(&U8F{3rCjt~sb*l!8dJTg zqw2P+58BvZs-x~wmD(bb>ax^u-Fwv(8~Z@&J#|;9MK<=))N#?P)Y&%n$JpAvMv)=GBi&en_QlY)Sp3W@y| zqTZo-Qp0Z5A=pjPY<*XBx9YXAeEp2%ZneY4E(Pyab%Tvv1KzD_w~c)WypO1dZR~#V zKB8Lsb&tLb-fil;g55CY8}+l3x2ft2$-6;)t9~A^7Qr|J)~P*ezQ&?ItzVSfqt@Bj zFY4C<+hAk=9`D8N%|$l$yZXJ6y=qvnC)GE=yIrZg*hRfrPpnB}Qp4?PipHdd+ttZ7 z#u{!{D{U;?uqb(l+H7NW4Qqk**x0y+P05d{_t@Cc4gJ8bx3RemJCk>+`)sVO;c8%? zv9Z${devR(IU75tVQ=Iv^&K1QYWU~m-Rjpic45Pv!2Tkb?$JG}fsYX3OYG4-szqbc zqkGhRjY*I0QR{4sJ-SD2u(3-T9!TD+F0!$!8y*HWY-6I^0kzJ?*rNy31{-6mKcOzNF}C^>YFIE`!-M#Gm|Mexs!3x~!-Hyy z#-xS^)yX!-8Xiu{>({r0TJ;C(*x8srT5}x6r>&sq1a*2jG2L-DhLJ z0PoZ4GdA`Y@IIrSv$1gF-pFUvcWmrZ)c273wT)ea`W{k$v9Y?wUiDcuYKOMxIF$RW zYPPW{jhm96QwwcuPGdi?rGjZoJglzY>007pb-%{M5)Z3=Hg9p`I{e$X*IcY6R|xj7 zjja*v2}|?dCD`sEjSUEPzrE9WwVGOX&miv=*u-UzM%Hl7d3Gs(a3Id0$lz+ZcIIsy(v#&^mFy zY-8j-rK&f$<(^VaHb&ml>Zj+qyrd2T)cj2@?-{ky#>o4c+OgT?eNA0yW8{5Z z?UuDzx8>{VTv_pS)PGiW33j<^uK!Klv+8^2Yb`AIta?ILJYDWtwOb_hIDA7rYfEyB z__WO=bQUs;i|9<*=bh(Wz;Bf|k)5 zO5DS1t+#eBTwc4kRfp3O?GM@qbb57+eY_qi??v#88}}l7@_Ikgu=+gGh6pt2-x+m7W#QLq;ExPs1i&K z{BD&YwQx3VC+LE;Taw5dW~%Q|GlV`v=re>qL+God-c?fXDyg?aC>=uS z5XvekyGqKglCrC$Y=_W0gx(?a4xw)l4I4zm2GP(ZlrEuk31x$n-5_N*NZAciwoB+; zLhllKm(XMAMCwtwK7w>hx&L(A?2g=S17oqNQ+)wbv{#?@6X z8ncbts(RG|>Bm8 z>LUWzsN1R*#$HzcT73%WuU5ZkTxh(3)&FI@jCBg=V`^3)om#U-;Im^fbz;p0u^Yv6 zc8lli7N6OL-f@pvO7}*tGTu|OF?yBp{+ivfHubTZJCJ_1=I&V1*jIBu;G2V=i0w6g zTJw;=kH$V})FvK7IwkQ`?4vRk&lndaei(bk7)luN&l{H|YT_(a511ByQEGfy(pT;D z$BEAPtHzHL=f`QW3*&zjx?!?aQ=oH2UWWRzEdo;tBD4QZrRm=(<#!(A$Kb5jZ38E`fImyjS480>3Qq%L2cuz8*Le zwd$1m4TJhK2H}jroknNyOx0~%5F8)hCG=fFzg*~7fqruQ4uS6#na2fw2Jp`K4+VY| z@NIF!q|Si(0ceYv7X+VLcU0{Wc(0wZmOBK#7u=KM`viW>PRV^-;Ag-sR=q6n%cAp#0>276zS|pE zf?lXVCrY0NX!V;K@QiQs84iA0J;NWf!6B4^*4b+eBuG!0nJZIi3+X zBlJ#zyQS=~lpRLdvyELs-z74a3w#x1o~_y|@Lr+cA@IGR|F&wMl--B2A2J>j`eP#V zxWLaqW>WRb0>3Qu9}4^`=qsyLQ2HC}RKGHep!7E={S`PCydc3aT z`_0FM@|eg!F7V5CN_itB?GF*&6ec_@>Ao=gxG&tPK84Mb^f%IpcgYqBya;exa9H4B zz{A1jILj`QbU04=;drO|@8CXx_W?dGq^d+uRi`S3774rv@V7(50uKXDhW81)5Abo$A)`B7qkH{%&}CioB7qtTZjy9Z(mj$kk0O1Mq?;rimUNG# z`y_oyQZ-uYl5~-znDuRNe^vYY+W)By)K%AwuUlDnaou%wx7K~C?uoju)%~FEzw7=| zXC_A_k4&~ES0>L%ZcAR4yfyjhvMBX`Ut0C5 zq`#K*YN7u@;5SgCiJd+BJ_@O+=D-GcS4}K&I&5L6bx2Ls1$!9Sy~hA=fkh0p6{)E% zf?e=d7*bR1fNczg9U))~=LbU#AvIMImNV2PNKJJqYBSU@Qd7MfX9)xM%cB9m7na3) zaY#*d4J>S^_aimcwK!K8>N=!2o#Jd^;0}Kh;D5r7!cZSTYT|jtk%0dhsfp(qQvu(M z)Ks^~`+0Dx!C^S2?=Ln=;rpz(K63u134+TX z=kI~k21xP5@BTfII^NW@kVE`jYCq2B<#O2yW$(h-n&@EMO!6Fw8*dlT`QgikX*lkqtMpCj>^g3naU&!g}; z8c?J9AU^vcbE+{}-Dn)6UNaii(PpFS#^-Kxjv5n~qvixoQ77TEIlU~`Be1lDj55^dUveW_%luge~!(; zSDWV;Rrrj<=LpdvJHXt|+Sd={@>vob zp#6+OHcv_^_h?ws)1B=bP~f`IvK^h-{()}%T*8uE-WAwnr_=3}m4yT80U+ta057iS9D zwV8o!BRT6(S}PpEb6JYu`fZtfzv{|v$qe=ktjuQ6yw#b0wY0mFJ;~&EZaPk_-&q*Q z_Rd_A>*>h~xiE7@wlACS?o_SI^7&kT2|78Vq7tib0CpR}Ju{mx&~Qt2%}y^>D{bGG z>8+q}ZKhDzp38TQP=?a)$nNCWAX}TyZt32kHloS>%X2;G5N)Jd+eel=ZLp^&v$-d` zX|~-*)p}axnzI8HinpFVnCTnn9@sgeL9Oezb@wmDppW2?*wNjaRjum>G6RE!5dy7C za=raM*$PElOI|dx%-U_af!rDSo{{QSbr%NEy;iu}NM`Hu?tEdOa+gk58PeaA>CCEjP8EFmbA5%Z+L|5Ms2fbjS1Shw`aP&UTTa6qrywE& zCjcWvXJ!EYzIl)lY5hR9zhhfIH@J1%h_)^5&TQ?=6$ZLH3z!c5=yn!1X)EmP>pZ!0 zv0F@45kp9$C>0Rptt&q&ygWt znJJtpUet;fp{~U{+q?X7Ft{_WXLS#3TaMB3OJER|W*G)X^c90~Mt@H()5V$KFLZ*; z4)|_1)2nRzwy$w~ZgD=hy})?qnzZDO4ofVrrewBfx(BlP7U^}HM$mcm$3~>1?S)dX z>QX{Kqpy(Jl3mm1l2HQl25XC&QW(JM)uP-*6CUP6Y{62SR(5xFW&7N=qP*i23T36K zwv(uKv4oE#Yb_!PN1?s%B1}T8z zHcu#m2{JuBSmqf9+xl{SvUA%xUo9W(>x6q^x{F`hj#QHNcLrmg&mv+L1`x|yWD~Sb z<7!GzuJfV{ynb2VU~d+iIjkwIzP%BO%vRWB$oyWL>CR(&WS7DK^)m!R#GzpQy9pr+~)J~x|h8YZN*X|OX8`y?mpFSH&E|gu(Vv1MSShF zmzn{_NxcLVN?pA=yT#tysrCZ5MQifQdix;? zujs%=N=9;Bc58M=sYFM1$G}Wb275C3Wjp$@K5#!*P^&Woo!it3tZe-<7V8H)v8)!b z1@0dh%U|-B{+c+a*6Mk9gD8(?hjtO@FpeLK%0@>eNCG0Y!Ha;sdB9w`E`^ z$p~$5*>3de;;g+BXkX*T6dG+cD$i`i5>zIKEd<7~9T8@rdrLP~v5x#sbXGU5fP(GV zK&k;YXIWoojw_V6>(aL~I+o9;g%tv>Q7UiR{?86O^5kJL9m7 zV3o$YNgpdAvXOEqvbHYUk?q7Di7TDV8MSmL;#ha58-uf@?Y`=@?P^o>CTD4P9=kCf zbe8Qvbi%01`tOn*NSu!yT$SzHiYOud##y9*9@sk8XE`UJZ3*Z~l4X4tb?0+^y(R0c zSzkIwz-4&&>f5Rv8q0VAPTnI9th)uCmk5u~!pfc48*0&R3}Hz?W}1vqrgusw_9598 z9b=9wg$B&Lk~^&G?z>Q(wGG9y$vmSr#?Tj zh@PXK0CW6bvU~%#1!wo3-YDSmIu^j zV9wGRT*3gRzXVD;Ggc}4qJY7~#U#MUY(rC>Z3&Azh*s`yOq2^c{dG1bEa@QLt_acY zjJr*-XCzl^52(wP?JwM&h)1&09;KY^Y)lTw(Dgan6y-n;!``Kk*kLj}R zM#Ua!XJca9Lb_hIXAw7chLQv3AX|Z8KVe^|DDph0y&u8qCi@cI1o*mrtzn04G}=#C zR_M(1XYGZ;jlreG-m|KycKZbHNVzK+yAQ|05<%y-?>+1p$Vgwnj*8nSrPn1{#&Cc- zxtIGM_RG1vk#4z|ho|E@du_8dff6(%mWQkqb`Wx$eJ{&72szwKcrIngFC%s2WdDzo zcMhRvW~UtNTYXfw1K8bDg`G*%?#Ri;K$;;J3DO3ENGo00NI3@~r*vf_90w7OzMP;U z9x!lEL2BuYBk~R+9Gp|+wvQ!Bmo`$yxu=mrF2+(4-B>~ZQk>fvk#;fiO4l>Oau9Ol zdPc|^A`Lb5>2cB!X&f=TJFL}%wqwyyOM0@IKJ4MRBCK$Ns-RAgcVenud?cKg&eh^{ z5)ECy^0`pixMK{R;c%?)nAJ6vYX+y+x}Umdo^JRqR@p)X0A9XSIss#Iz`bUnbYsAZ zu@-Oc=6=~-5PJ)qxqMIeW@RtmOK^j%`UbhkZgCe`ednyBKkJ>@)zgD}>DVmQk0(KR z={{-USx^pNeCWl~iUB<5QL*z?0TjGGJ6_8aK&M1jZG_Aquxlx3jcV1Q4v>IA(9 z|8=9(R^Vqqdza|L!Bgs42&y{vU}f4+qRT6NWT}m_&_Zg){T!Z5;n!hA^B`KOYS=cm zTd=l+>0fT^(CsOV&?POLRJqO$)UlQI#aNp_Cmn8GB^^@F;A*s{fd5JsqjfJtFS^Cf zU9eU^YRco&EB4EZosYKd(+*o44Vmp22@E=*@)1}erF36uHI`6g-QHRD_>+z?uPw(j z;CExZFMuAr=s)jZy{%N2^m6#}zjZf9I@(!iHXU@i?bIsPXB$y1Ianv&T9b6C@VD;K zQW(5P2Cp=A4nEaJ%Kv>FjP~k*jWci{PA#@s%|4KW&4O#Y^6e6Awz9-jmhX}=>xMRt zRS#ZAV`w6WQ#*rc#{eKT9MlmjwMncoc^0NxDTvL2u0A~U=ETu7I5>V8|G?o)J9ztu zQlcA^%B!0Ju?xEMZ!u}sqCXi-+pJpSln{Nzx9ef9o}2$mdKuk_sdd-U8pU)*-66Am{1mCHz*tLWKK(|_(ANw& zt2VZ*?ppB&s$V|ZAmd%vWnuRUNarpVk^_bn1&0>Df#QS8l6z2Jnow8wI z2y6ybFC+|KdB`_oaYnmq*lsS(VnwlQDNYC_RHW1duO@d1v~|=|hdwtrn#PiLI>s*} zK1cuBsp}BVdTh75(aWWFtE8?*mZ8s?DdG@In@}+IA=6GAB>$h8Em+|*l%8b`- z-3EQM?HRB|59}j6>AmmFHP%~$=GZli_i{?})?0gtR+>R>?VO$TzX2yA>)xM#6qvR}3zb@;7bF2RxKd@t#kjh`=m`}1NJ;zX%0 z&81W6k&Goe>h&S#%w!a7M$IK3R8y z#&Vt-&r#lv)|c*NT>B~fx(Q=A4@!!YV5;-4Hal1ou2H80d` z7^#!y8fup3#Y9{j&*Zx${oT{ucTwd2+Ie7!uk=&NO8kqXGY(KvKi2UVgVRNtO`~4b z8@gk2!wU5$+p1uJWrp;1Zrla&JzygBQrW6#vuaGW1H(T`dHextb)Nz03rv6gm^f_q z+68zY`z;kzdWT1aWZYnDlY_R*NX@k~>g~Y46xwnCz3xS+ze#g-lg`FJu6e=%ijKHc z^=rV-B(U-g2N^~Gb1P>QkH;<|oLbG&n-0=+_c52h;uGkGhLJoYN{{3p9rzrhDa2uF z;&1`0r_Df&x0oiKuWq6d!#{6Ek~kswbi(r_%{r`=4z!A#dgb729jL>B&UT;;4zwvQ zGmZlmMK>F2Z6Cud6dF>xTnVKWx+*wE=@sDV2Yp$HhHSB2qD8wz3pH*#!BEGQjjOA% z?CG5|FqkJS-1An=@ju;jira49Ki^Pu4p_JL3HR}zQyQe#W&P>bGLN2Mo?PV;Ts4K2mD(+^RV^HkE` zIGB+Rz063!gPEd*!^0IOiqlR1!%C+~u&9*1;$S8!dz|SMMu4#Ws#W_{tLVD2f^RtO zK(HZP`GqarmTL~y7WYZ1-y#SYQu*}1tk)VsiKhxDkIUv z<@zLiZOBZWlsXCPJeZ)H3H%I6BHV1GhHt>?uad*Jf(IQ@Wu{gqlEZi6pMGpgq)v)9 zn`XVL!@8>i*dkCiHT+3L)(IiNMq)xJ7)}k}D9zvf4*X2DXX+fV`5ao$yLL{uyhH8| z)b21$n@D!Yxh@Q%HQWSW4o*jluMRN`o_N=;1;e=zQz3%T(aekOsHJPM-+uqg|0_texRmie~WM8hwJ zo7IHW@cuaT4!?{h?Kj~rHZ;1+LSR3ZUOKo8l1(@@aY{AsPDLY7h8r6Z|6qtNd}Qr)a33Pq-_U zO?#xGcmYtpu<(|G1^fF8l?0FSXbj`MAUqJSB<8EQ)BaLJB|+J3MKO@v9Sg#LO~x@? z6tB(8TFNj3JED{p*$9)z1%ORv1kQ zEa|Daj7LpP(KsY{l0nF+SNP{C1Qm%HF$RQPV?mEdjxyX4&ZTe9OU0#2JwA){5nbU_B`(V(jouO5`8oZ$ut;TTC zF+fBNZs%aLy{%6BTM-vA=&4q&AoGy3t^p=Hm<&yRt9~Uy5E~wr^oqCcRjUYIDd{zm zULTc?C7k}Wrp}{7g;0MgBu*BZ+#GGfvS>Sp&b;Y_L{$U}-;L~IQ`6Mur~n5qA(elS zdl_s6Y#&HOBYN!N(%4XhB4#p~NHhnyJ!nkrnrx(YO-)83O^HNm`2E;VU@wsx{y4hz7BPfUQhyCL-F&pdOan4SuYNLueXN3dyxW~q?Lahbt!nIYpcLwdqH7@7^a2xe(pD?ZpYF7o}b7GUy?5oZgz1m^q?b$*WmI?dwN!9 z@T~-SJ1U#CUw2aK&8ez+k+;}k!u*$g6u#fAhW!QEL-}{qN6;y^5}&gn@t{de|2=5p zfThk<>+yEYnRv3X4p2LueVhio9qDqw{QF|?7jN*r%n2%aipf#&@9|M;lC50 zy9K{Buo$ZE) zA??5&I-X{+f2)9RmD22KKl(vSZN(iiWt#EP{cz>9#k)|B_x^d@U(+gDwgcauH{>M{ z>Y&Bhu2R2Bx952F|Ca5WiMwIGg~xGbJJ+J79B6~Eq5FKIRIl!fU#8rO%@qEB_3tJ9 R@7O($YlQ#*_y3*+{tveqyB+`l literal 51200 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 diff --git a/samples/client/petstore/csharp/SwaggerClientTest/bin/Debug/SwaggerClientTest.dll.mdb b/samples/client/petstore/csharp/SwaggerClientTest/bin/Debug/SwaggerClientTest.dll.mdb index a7a6c4d4364bdf59f6d3b8fd0b9f68752a88cea2..6cfbe6bdc2282421418c7e8b501b55b189932769 100644 GIT binary patch literal 16213 zcmd5@d0Z1$*FKX;n1p~!f~d$2f`EtyPz)#-Ko9}<4OhT`SVaohYTLI}v@W=7weH$} zR#Dr!Ra>=Mm)g2k>(bWUs&%XTQngn7o;#Ba1Y+NQe|%Q*d-6PU?&O|(=G=SdW^Qm< z`rcE&fGddxlKw6)zu&8{Pk!3x9&v9CU(&RoODs_VivANp6sS&1N04) zmuVm@f9!MY?>YX|U~AC_Tv(SPb74`~n|Xr<$7FXz+TSEb!j|6<)mQg(Vv;Qa%;m#CLt-h8}I>EmwPXSCqeYkcCc zY;!?z-jIAd?caa=?3quO#J=C|K)b#Ut=6=og|ArqzuvC4e-{WrM=vGmFi+Lkfr6x%PE`8L8Mbh*zhMT9-3gH-E#cGhn5r zw=3*#F0|9`*LQdsdp7xC*(SIAb?b(&&ZQZz)+NW(Zl~49rf#V={MJ#Euk(|ZCl>Fz z_NukIb7rocR?qW@>A3FQd;6Ac?>B2;{Js11%G^YyKEkGTJIz+SezWX|PyX6=O%25d ze7e-3{{Mfses=%2pYniD-=>H6wFg!%F*wHMd^?ReA_Wmoq$E-iIS>g%SfXHs;z*>G zmNp8GEnKQQ*Ok~SkoXxKXVl{rZq&Pl>xtu>!URuEHK7`y;%4dSLtUAURZaXNj*Hg2 z8N%5~Dxr>(iu+MVhjm9R#bq3)*BM!9Bf-g4#ogA?9o=0^;c8ZB$VOpfLGPjBCh2Li zeu`eI_$!V>fe*JrPb>AG+86`4Z}hZHza2(3DGM@-2N0)yeWB!4%)v#Za2jCF z#9+1@@{Tz}3I|&bl#V%hgUpr#mAYU^QL$-A|Ka4|lsU9`Kqqr?abA9I5ee!-b5X&N z{30`2Azq*n+)|GC?HuPCoz)^bIyyd3XKX!5S31b8MDI3mprHkeGC&aYb=~UJ5d@vP zAT%}#ZjCfyS;f_H*^cVzE0>)vVsto@8&`|Q*D9^`FT^lW@wYMf*^8m?>nw)Zwdk)} zV_oGK_Pf#n*B@~F67w*HTaP^aTpokJ(PT96f&v|=JR31OQ|Sy`<`&jq)b35=8ptWh zd%L>e*4$skopPmZwfEJQBU)I87S&l?=U<3uF)wH3ZzF0hN91ORL4UJ!vfSa8h(51F z)9Ws%D@Sy@F5Rhn7soF#M;o|P$kA0qRFcsmIxE_gWe|r9uU7EffvQ;w65PBI7GklC z9&1$DL#qoe;hrjPgd1ISyX7WF^<6#szTWP7FEy$Y+z18no0OcZQHshaMHRq0U^shg zR-p%q^Fey$!0I+O`U~|UT9zkn;5%$&{Zx-Ox$kn9<6G)M%RI_FUTS>%xI4(&bXDc7 z)n}naRSqqxQfO-TC{vK!9i=&Mg9pv^{KQj^>Mu`v>iG=EFR?FP<)$EOSE@v1$y$n? ztaYsvnh==U)gXwetJpDB+(a+B?e)Y?cs5AE^UE0+$kxw9%R`OsybD{^VEcxzRR z_NDiI$M{-n6s-Y@xxO^dcRs8yF-L{7ITrIf@(d_W6cu`$bvloNkmiE-_$Ps;+< z2FP(u2&9RDlLG&hxK8}nxWoy((TjrW{|2UQ#k@dz9$4Byj_7m)I@91RJGL_c@ce`- z3+u+^GXQ_10o`oyT&hgT^B-1TTJtM{Xl2l+L83RDu-JBS&F>4M{XqxhVsY(VzP#qI z1<~(8*X3fYzA;RE`0>G18ayG`TB&3X;1>teN5LP%{IZ7+&u@I;@DWpjRb16IHXA!C z{>xyR7xGDnH68r*5V{d^6UQ$RQ5%o!gvvbkk_RZzbF)r=2#Seh0wW%*BZ)E ztPQ1gp1T1%*7IJFD5abpI2#Z zEiTr?uM8FPV!g-2S%Xr08WV!WH~DVEmNm7T`l$GEVRSw0VVE4O!puFBQMsK$F5}hs$x@38%Z^_i+3YJKj=mznGh6RpPQY88ojP zQ>8_LiXRz4zeU`RkYm~vN#8|&ANf*avgYbAmePN}BCy;!UyvxN_Z^F*jZMF8Do6BT zGn(COPBZaXspJDV9e;~Gmr^)l(d-uPW)Pn-IY&Ds2~I+2T_=@tSu-kYwp{*%C%c__ zDvvj#6U|QATK$x_n$hiMcVw$SJJ(Ib&ev1e8@@e=B3>Z+7$qG(IhR;d~kD9=aHg{X^iwHcf~g*_XJQRCdZQFJfr zzFd~Y>0d*UQLR!=ZcbC0Pi<~(%xj!J9wiM0m9nfkEpNVpl_;f0QBDC8H;I=x-7K-W zkhStnPM@WJD?3YX1hTUAy8fs~CAe$6tJT-|RtwbBuBNG@QtoI@JDXobttw8<9*L!A z4mK+kqHK>xY6@Oeh`q^S3Z-grW^wiag#%|+t0h16{3MRLgmrduJ5JH17pExUR^ezp z_oL-`*(L72McwDdqv=Y1JX^1nWa#5{85ypI41KgwAMIj@b~D7gWw`j3lw=!GoXwJ* zt9R?~rZ*X4(DEKajT)iaYPD;JhPx&NX>|>>+Pd0MFKsQ)>LE?ywYuuT5n8RAwzi=4 z6g;#+HC4*lM%rn7YGeuI5R%kZ&P`&sP}Y<+9Ot4peW24DMIS+ewjpvESRDz9rianv zVo0GNZDv7UTl4U)nS+MnDWH>d)V|Q1lQ+z|ybFz!YK==~wc_ERJ~|~jIweCtPoE%O zbpek71G;OfX;jKpF?1m23~I*Az@9a7N`?4f(Pbps=~>Jve2X~VuZUH27!|!8q3amz zq8>WX5Yen@1b?S1D4bdEox}+m!K+57t8-voXJ@V8rBaS>LDO0+Yr!0-i_OD| zO~Z@L?8~H*zm58g(PFoa2x%;MsFc@Q&>t-x;#_uuim%NXb*R*-p1W#ROZu?o?3UIN zPtJslpv;&oIH^>tThf}AYvod3u~aPYW>!0^omHwITGGLmhvYM~tg-H@+b!u%%e%H# zAJv#x8XG$<*6OP!JJ(M&Kb986F0{2aR;`Vtb+KPaR-ERrJC^pu?zNodzE7LvA1QbpLFi%IC?*BOq}H1ffud84s+vZUfg`y8pY|^Xm@tjIINDN zHF0ZMiFF*-k+Sa>B5^`ni96(y(t(dbZ$~F@iZ@+!EjLpM>+tLJVr6y1YSwgi52;zt z+1bOjO-*N)ny7zo9PNv{j`}%rC^Q!gDJ*8mao{_nS8ZAu9j*>B7z`6$8^q>?V2!4s zMz7a5i%rsKG%AM`t>}wZ>swi4sm<{^MRl%UFPw_ATpTX7qRXwW$mJQFE(1lL-rf#l zOf=Rs&Ln;kCSkFOJ~DkQ9V-Q1%t>uwwTaf4*4kR#h3`!Cy=k{>b!FGpO*mzu)21`F zRxjbMiSC*1!^)AOD2qiV@Scdw7-KYMWZ=z!H>r;{s3ABCj=uE*1V?|5VCb4EVO%^- zj-L`Q1t{>1IK3Ooi@V^a626b8-SK;*GT77?;^|`iZ>Q(bn2~AhWb*y|C2~d5!CiFNQV-C zw6*%Ge@moGiI-uOFS(jGRJ`QkbuWKo84z<(B@OjG8w!pMd<>Si0IxYfaBvk4Tcv)mT!anVdvZlBU{P-8D;+=#!+SvQ>b4D2aYdIxJho)VOIbCDG-iE4EfI&0k6MH0haa6;o4RGd-DRB!7@> zZJB5d)|4gF^5hk=RZNYCW@|Eilf2E=>Z>`LOvjRclC5HD+%?yd>G$O8wpJg_h&D8` zO-Y*ysnOV`M$Cnsw<@U-vmy?YAm0effD!Y9)M#e4q4{kVzzrL38opv`G*8>mvo_DA zGNi_FP72LUnU^A+>u5=hhAbW3T;c-E?cEh<9IBEeoFb-*6QW>dkS4o zxdE%(3myLt1K)9ETN>MTTw80iDh_5grL3NmTt7Y zX=`=YmZZ|C)X}L@y;^DDdunH=(wx+}wpKsw=c%+Rb+v32dzY8?+f>?>`kk%SUwa~z zPNtrctztj&)ZR{|JE?bVt$x}uX*4!%T$;5FV(+S_ou5Vv(iYlUy|ru8XkFSDvQ_L| zp4#1Mv?pz^t<_I^CXLRfos+F$Y?7#_y`M%8(*CfudTUG5X+rwMbZZ+T*twqC#p(1> z`p33bKkbHe`ZE11Smjh|*=^2t4i_hKyKii!vEP5it}FKB@|i|d!G2A}`Cq#~oerlT zksH*#!X%^pz8&pux2K&Hf)g*Uj~tyYw4;mdeuLG4xB}wT*_NNCkU~>1U`X+hE`@`N zi06wlakp0Dy@*r}_~jjb{=^206JLXKi5?h^P4I~5j-a<<#G{OO-*Bu@BMtGs5x7#k zlhT2`>L{J@@~Ea%<5f$tDP5FW-sy2WTG{^7_UxM3R3E~*=%S~yl@%|YIHCiUc9_tC ztvszK+I|6X;v=x6h#nYij9~jsh6r6o_&{9faNIk^12D6tFcU16s@;@YWvEseBEHuT zZlqNjnni1sjlnTmWkapf7e&qD(A4D}XlsXW{cXKW$Ee7TJlzmTeMC$&@Gz%Sium^|0S-Hd2UCXr5&D1FJ+xN&UKV3 zCsm*mB=0n%6K(3WuM>KU<@?E5#WbGO{ACWCldjp*d+T~iuOw4epU)JFIIXcnZ!9e} zv{19?ny{x2bpl}i&I>w=JrU<}H#*bJ&bQdHt*^C;f8?u?eP7aM z{L{|#tn>ITvajP^=tP&3?AZFfOR<#2^;czI30c##qz&_m(Zv|EO4Sqa+4PD|E!*Z| zi1McS)h=|c%Y$;yN4nC{uE)Ao@w|(#6y<;MoMPiy+TIpD%bVL5y3)n2x0omV;rbrv zMn7~r*sa|2BK}7f^EB)xajqX{w8);`b8e|YPAQ%$3EYheIhCU}YCZj#du&0MXIBut zvj-O9CiLlUbf()?=1uaxuRHDUexQ4~_v`#ZCF@C|_bkbKR=M}q?81k$w`LWuywtCH z*lR$A?P9Sh(q{3=?sTgAW#(6E$B`a%w8ya? z))l==o4OZz(8V6Nm^aD$j~R40<48ui_s9H7b`@qi*!TXoS0U3*6Dn@M$_Y_%zh=<+ zj2q0a)Q;ml=|sp-t^k3TEM^P)$)bID+P{Vv+ZA$#yAhbZouo$N)YdR=BdB%j~(rft2q z_b&HY!ha$8Tqln6s=ZDO)~@eXT5tA)CAMQ%xzEdcb_aXYq24E%Ka2l9w5`wfK6d<% z5=Z+#@GtfE<}Y?G?X4Z`Lx=jDWS%6?8~f6xzMK1&dzP*?ujbEI&M%v}D@H7N41e*Z zR`GlK(%!zuSnZ-Wepx>%>$kk09d9ct&!_giCENFA+2i@LAAQwtC#zm^H!G7q%$%KR z$K8W}<}S&;JIiLw(o9;Gxt3KgxqCm0#$=7nDtEVlKZst0Yq`VjoGngT;)Y4Z%PNnW z4i%kO+%}P?4RO|EZ37~7x5 z^`Ftd+<$+1)c-L%w%nZ;@`t1=zFeH8tBxD{-73MJZ<}dD#g8@9IP(m%?E9XX?wcR5 zV~cM&_9rj!T_twwn0;a3(p4XoL!)!1smO?t-qWGNWR7VwKEo;Ni`9(@j z*u_7x94}H%Q*oLN%4?QKb@Ns0RaoZZ`3G(VE``1JM(PHZn0gM(GUT0asWbgEY0Nv{ zB1=Cv+C}lM6IzYu|Ftk(n@rVBnxL4PCX)~uSv^wY)39b_q$GnPWa%F!ORr!iJv221 zJltQFOJ%tu2UxF|a#0>F&ig2@JXb#F@Vpoe4@SfFiZafzr52Bel?=jfG_l?;N^fHbYXR(0Kgx*1pFRQAG%`=qQ6)fbQW}9 zAPjmT_&uO8^j7dnpb7LT@IC}?S0Pufa4gp{fAQJivcoEPP`X=~y zpc(XXT;NXX?K$ju0uK``5zXGoZxoZ26{lJBH@pqGoX7x_W*iAS4Z-XLHC08f_4XbLth5Z0s25c1m6exLT^R~ zc^&8ny$`$_$b_DR&XNdZK`#K$1+t+Jf>!|jp??FP0l!0EQ9eFz7Py zB49Z5R`7b@E$AP>`+&EhFM>}3??C?vz61ORx&{W20K5ww0QLahgN_4-10$dpg9ig6 zp-+J~0430Wfv*Cipj~|sFEAQ90PF|64;=#z2gX2m1h)akLJt7<1;#|1XvH<9-IVhfX)H;2EK%T2V4Yv1w9=+9@q$723`bgg5C;V4{U}$3f>2N z4Sfy#E3gHc0*M|%Z-sV+b_TwIZV2`Rwn3Y~&4KOETfm)x9nif?fok2z&?a6NLJpzlRf3&FVeLGOXihV}&ZLKlGxfPK&h!KJ`{=(FHc zzyatsAs7qLKS1|@?g|`)-U%)M4nZGb4EzY)sv*%e=)=$*pwodP(0jlGfTPgI!9M}V zpp!z0ZnI(e^MPNW&w@_@$Dvy_LVKW3KzD#n2Tnq-2M+*FLGJ?Z08T?k zhQS7X209Vi1e}Fl1?~l$gZ>8mHSjC6M`N@F`aEW#4n|ow+bD_I~rkj-}t8nTMo_Rf_s0qZ3efi`k6&H7mmJ?F)J@=1TB5~8lN;K zCvRkF!H6Oo?caa$%;|M2J5EYJkUqpNep5Ovd&=6MFrp~GVCbmgtj7d!Wmi&>f6q7f zY~gmj>hmyj8ZCNS0(b^<*|6Y*tkS%pBZ^HeG7w!N@R z_q4UTSJqG)t-f&IxoYrBhjUI1b3Z-lkzHeYYHp&^7-7@8jb>lFadM5@7mjmQ=>lJv zTb;0ga{vEs{p|j4JLP`s#?kM0v8EPMwziT#eL<%CFNJ*q3vLh0RutdQM#hyqj zEo~GWTevi8;3Bc7Kk-vJ&Y;ID%%FD-(-X%z1PdOThC)L?#Vyd$LfvW|tD5+E9B0(K zhK8||RD!dEiaVmC?{r7ahnI4kUT0uOg9HaB6?a2NH+8qn2P@dY&>S2L5%lgVZib#_ z>fg{y6|d(w9Pr}S>ghfGIxC|ew_Q&=^gCfxlX7HM>9fRXpC6T1{9?DP;;i8%q;PmP zFAEp5xyak+k0>5)E-3Bu3x?&H3o7-<5hbOj5xFmtokP~B(r0_-m6jG14J{!-U7S}k zazs%{9$F!G(0HzrBYq3VIT^EKj7DREzs}HUhHlz0*D}3pVPR+ti_%XJ^e(Q>&VrzG z6NC_h;2NX}&Ms|)Zu?$OpE!QyC`N}fxv5R5yy>*2|3VC}DgH4AA6qdDd7j0vs44x~ zbc&N4!+s|^;B*k>CzyvfxXsAJ{+bwk4JJb@pj}di{BXSLm#&|OivY{`UBii6h zb6l3X$PwLep_?wZP=10r+QL;KN2d`{Sw@U8+i1!T6)zcHt>C!>^|KTpxVAu8h{b&M zSfa`q)kts*^H6c)UFm}Bbyqp6J|?P_kRis}}0 zsl@~KS=_4?{J=W*RK-d!s_?4xvK-H|x~VF5dC_jKJ@V1vR(Dm!IWIczbwNHlO1!Nq z#(UFi-eumF8bzz0Vu3d;^j-w(6U%rY^K-PQ|)XX;OOfpQ$R)(C7&IYqQkDem~t z3Ey+RawzY&q>U{%wS1zXEaJWpW0{GYto2kU=Eg=$A%dGXo4`Y(>rCJ*MPgjrThhCJ z8~o(BrufrT|8oC-C9a?TYh2>w9rU=Ma$mp%pjhZn5B(>%k|R3VicYoqk(F&s0KAPw zbx6$&z+Y-bms>rQDpT_Hm(_e_0IdpG9Uywc33V3M{N4ciI^Y}maGj+!e=&f54XBn6 zn-|yoq(GV+I3>_hsbu!!-wLFqfy-ci(w7fkcYR%JsEH}T3avvjP z(!p1^rc13aqx|H9sI$PX8-%1~n)2zLhik}!v)xo!e<>e%QPSu;5<#2W?`SVaG&hpwMb3{D%St8R zlGE|m*)u7HJr>QbVXmR#^Q8txhh)J)XzSvjQob8WDKW2qNq1v<+z#$Kv!aw?sI5{pIG{WoMQ5VU%GLJg^l9w5P_!E7UW=mZQ8(mcS)Bek95Sd? z%4r?w^$ycJSQ=Bv=@W3Iji6Gl>_8PAD%lZUdJN^@Cvm$JiBo#B*1f>#v-M+hvh~?H zdR;C)s}kHaEgJf3nl)53Q7OOZK-)WZ? z-VhqiS|&7ZtP!*xg1g4QkxDtyK;?$T2J1>VSE&-$wycsx9OtMv&9hVxAZXj5o7jiH zG0;K78GKkl+N_ZUo%3GolQnD<9_6UztD#Yh?j;|qDk5W$IUBdA`C9I-PQPH?? zU5`LV^{B$o@W}Sz{55f$aUAccXut->3{KDpo{if&HSl+7&_FAAs+4DqRBe1DI#8G9 zjVU#~SenQFPE+#7QJ=vmj)?HqA%eR~xigv$L?4Wn5~<>waRwbKb!hIUx*AQ_qOZ$G zJUA0ZHtXaR!9k^(5<^pC%3~~_^A?Ya$NT1~8>kzoR24B)8M8`0L(3ZLrrH}rU&nl7 zZS_+96ho(D&dAm#>|7t!?HIZfbJyA$qAHK2X|b=zik@+r-SSv^JN6x^thD2u*=JkY zy&p>(V>ek_1MPOl(w^A8veiR6_s3YOiv7vj8fbSjmTtw~maRID*C`rtnW$Z_*V|3$ zNK-qOceJ!ZsOU(Q9al+ZrNE03G!r&=q%9pkwzj$n-*%+^9S_J>C)NsA;pdKYuH$)Y ztEcdLN4nqf4_G-;lw`9k3cLqKmm%6<$jHE3DBh%uwrVWc3-;d4{RDeo_dw_-Dq%(( z&5fHEC#6Z?gE+k_n-1IrSCz0ojt;~fl#aosu8yNiahJ{Ks?8y&@5j*}aSyDmZt9uw z^hW%wc&T1BFNL698BZ1QmDW~I_11X$EdF!Z+MI>!ral}`N8-P;wtA^A#?!Cy)v~n( zJJ(D7XFUBC|H#_vr=DY?xu$t0OB-5B^{zJ28q->9tC#u<6Kyx`kgb92TzB>NCi=m2 z%-ZU$zHFi^rr%)YEM2bVLu+@r*zYxOECXUL>ZPHjM;pPul~<_w&CfH)tdJV@_yn4q zFeSm#{IpuBQU97i)d`oRV`!;nLLyB}oRlb?t1+iWGdGduCC<0Dx@p!V(%QuLWUH8( z7Mksev?Fn+wY8<@heSG-cwDxMsd3d@Nu=KruUcC@HLoR6S<-|gOB=-0wA3t2qD4t> zT3Z7(>yv0h()+SiOpUwdt0dZ$wAh@tzv52G}n{pM$%1dtCwa{Cz{-8 zN~c<>(O9QO%!Q4&dZ`h!B3>o|-r?p8M$8XVqgm34-s!XgZrJsv;cKTxQSn(ynRX}dk*(5IV}B}{eoU^iwtCv%NT!>~ zw_ue=q5c2i!ndECLeo=bq(~vyTV43}yHjXS%3kRhLeT!4Lg!M>o6psnL(tw#p<5}p zt*vg_DXBCywLDd-S1Vok9@?d;v@CVGwbe)aVJdx;x>>f0qsvqKO)Bk6{npy*t38uS zXH$Qct>WnN(B4g@d#S%$TYa>zr_uDZ8EKX_h@-2y_MJ3Zk@l{&wT1TMH2Ng%Q`stx zE)VU2G&-1e$lB_oJ)cGw(teSx!EBOfuKgp89;7|Awzkl|(V1p-p558fhH!SShqj_K zRd!xwZS~Q9)|o!4#_^u}fy+v8Upy5dN#nQ257=+j=D|FuUt z)A7zH zck!?i;`!37p;%Dhy@XVD`1%*VgTpQs2fi`qXeom)W)+=ELJ{${0W1-Oy&Ne+l!*v;9h3MHZ+&jernAy^p2^MqJu1c-4tybAu zd~X>Tq*aDS8nwz0aI{w0MyvG3p~yHibwgMBs_U+QY(Zz%g5t7pG$IVHbQ$KRi0xpG z%}#x_O6C`}!*#G$8K6~)uHlP!*qBbc)Ayv4LRk~3eMxCn>8O$}1tq1V5Qc%U(~k5Y zBOEU+D}7(!xX`|w!qA7MXAo=2*l1UyPFLt^WIN`eVf>%snv&c5dLT zR5_^p9Uys!Mcrt7x5M2qTFl$aXB4w}Qu9?DcF3G^<_yvekY35A?7{05%Q>x~OmCPr zEi^{WqHD+g40aJ*1!ug($4Iqyniq7Zh22+l7e^w_OivP)1kZoVm zj&NBIn$Tlr582o09(1P1Syndtx}&IMaow!zD=~XcwzO+oJGy8?cA5Hhe70+Cr{=v| zF+_Ri_F50R-s3@y=Mz2YWY1GQ>v`VF*NO7KcuuqOEbXz1p5-0Z>Yj9|=N;w=|IokR z^`fJ_zVB7zc{zWC#XK3?8l2OLjF_A`0~SvUl~anx8v=K=R!-%p4O$OuGl~14HQ5zJ z@9ZyUaVPX#FFN1r8uKQ3Kir#+^!~1QjrZU9WlDHIA$rf2yl2;V@5DMjjJ-wH?s;ik z^|#f4T6>maQ=}csv%Tr(-oG)wQaeucp_6@1^{Hvc*Zc$43+q(2dm)K6A*y~85^OZV zytgQNmv$Db`_QF6cbGTH`?0=syzhy=HQq1rOIRU9s-?e4?jW5y}ZwLxgTBW zcaM1xJu3G1rvv>D_OJ1HTv5)89xvDR$mWsZw#J;%${~CDB!?(&+*I|apZZrbACk`< z8MHIw%ZwVIW&B5y&n@CLUVp@i!P@j4uWf;iaBF<5}u${xP$5?T96hVUO=> z6~AvFeLL_Nt6lWQuO38e2CW@r!<)@{yS}#++uqC@4WA66PY3N{)l2Rc4yHwe-yCei z-L1M)cio{R1($5woq0!K)nHmZ_(N8`{k;q@|gwS>2Ma`D$kmiRpUR4{>Xa3%H})sGXAjC<157(y8d-zJI{%>d|OQ$Dt>A$4yC_TmaoD(&aCDLDQ-w?HA4w<$L8oa%eU6!W@p z1HW9!3A_3G=JImoY!#>3qP(n>9%a6z+N{D7U(L6}4au>1;Jyf5VVP+_VRmT2xmbKz z?SGPnf^#w1`o%^^#VZbIH6B7Y#dK{lH8N=eqMMjZLPSKP2#r^pCJ_;m3<#H{Z?G&q z1DSN!G!gKGd37$W$t}yX^qBJPe0nE;MLx>rTzQ?vlT|c401ekGR&(|P)a} z?#hk%v?>2HcD6Xmm8bLRO#WGvo8bGV$@rpa0HA};2loQ>&=bHVfFtzV;8{RZ=*{5u zfD`mS@RvX{=vVM<)kMG=;B61et<7@8TeJ8C3M%u zM1Qhl(1W1|0Kw3U!Q+4s=&j&YKs)FY;JpBTaAbE6{0o2|7uh+W^LQW}+8gWwL_nVc zF9F&^Uk3jQL_$}fgL8l==*{2{fDX_vqqBnn12n!|OVa=&bUHd-0Pv$GyCL9#z%$Tq zfnNf;LT>}F0n(wX!25u1&=0|vfbP&bBux$UfDQnA0zIKmgI55(ps#_i0KK7CBC$h( zKF}Y5HvxU23z6iuKtJfQ;L$*T=oBRU4s-@|Kj_}T0B9|ee*}6UbaQBDU=Z|q@O)q} z^ldP{`ba~dKgIwV4rD^_1@8i~pvy5>;(=`FH^B>l9O!Ssl|U}^&)^dP9{Jn-4!#ED zLpQ+SQUXJveZa23v(UZ3MxX#X7n}tYLXQVO4?G9G7(4?Q2K^Cu6)+t70r(_P1l zwmC2Y`Xz8CFcSJ07+rQC2fPT~6c>jBFc!Kc*c%uJZ3Kq`FF|()rvNWQ4+RefUV(lYTnfAj zy#zcB7!Um(cs1}E^iJ?6KpFIL@Ihb#^i}W$U?Mb+i}C^VBxnulJgKh|HhHeY?1-3vZfDORM(EY*PfKQ-Dfb)S*p(lY~0=7ag z0nY(GgT~kKXf^OT^j`26z&2=;AFf|kh8_%^4s3@m1wRMufPM)60N4rb>rd1K_!7Dj zoCJIY-LMt<6M7f)bm;EDZs=<8yTBgk`{294Ug%x{M2p>x4mz&Fqb!Q+5^(5Jya z0^dTX1md&M`=R?m_XZ9??*Weh4niLT9|aCUcWq5{75XsrVCVtB5$OHkQNVZ5Rp67r zQRr@Mkay_sp);We0Y5;02_6j`gZ>VD2sjSizAdgh=o8SLpc8KcN0<;dg5%3Fi5jX(22>l9p9PlgjHSm0(8u}6VA#e%0upQJ-|(X>(EYNm=~dMK>I=a05_p~fun(2(7E6&fFtofAuh=L zQQ%R=0*?Izh!!ct-vLo?80}DQ3Zno%23CV-tE68qr{bVJ%725k;LSM60Xz&RvHEX; vQ5D?esDd7WS^bETdzaIP_?WJMB diff --git a/samples/client/petstore/csharp/SwaggerClientTest/obj/Debug/SwaggerClientTest.dll b/samples/client/petstore/csharp/SwaggerClientTest/obj/Debug/SwaggerClientTest.dll index bac89714b9cad85af8d64fd3230169073c376c63..5541f7ccaa24dec882eb9e104daee63e000b3b28 100755 GIT binary patch literal 53248 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 R@7O($YlQ#*_y3*+{tveqyB+`l literal 51200 zcmd^o3w&Hvo&WFN$viSiCYdB{DJ><1whV1;Q(B-vfTk}RY@zhQL#t&-rfne2gvo?b zZbpKjf`FnRB2syYfQq7m4@4{?RS*=!MNzw31gj{nxQj09^Z)(+&Yk<1OiRnI?*2bJ z?fsqK>-^3+zwJ74gunqPCITE0k1?XAD+=WHZYrYNunYI<}34Yo{&Yo2mEOdjZ zb=w7m9rX=dfzJXsWL6>9mxrRMtLuXu0VSZ&TNvhuw9~Knux_?Q<-Uuc*TYu7vCk*$ z46-IAa%?jV*zc%Cl`~`6kMn_o6EW2ERj#HT8AQEf%AJ0!*qJe)BKaKPbdi>JOInc) zM$@h=kLtye^Jy$Lo$?gTLT)?Iswqnju_GnY(_y1lJ`EjoZ(0iA4J2cQIwXaI0PW~8wL;^}CjHeHjBNh2geqQ0j@(SY?+}ScKfb5#Gs69Kgi~hmiRqZ5-MbkvYhMs->GHQhF26 zX0c1{nr2W!vIIGJ!%U_&3w=K$gQg|nx_?Z&$L(jkx9oen;W=&hac;X$2((EVfg(+xk|n;T4_ZbUqV zwoS+&#*_Je1{TSdghog@;l&6-NPX4i`f9oHRU>0$h4B>=`U>$rBa;rqi0`ZM)*JQJ zG06G%^3@{P-s4bt1HQueRbQRq`sytKU%l1%iV1y%p%?a593u<^FD;E$1~Xi8>|d>8 zu)>Ir@WLgi=^&={*hPi^sOrjCA#Hn(x(e1O-7RFz%@hKDf6vKK3CwXs-Ac%o<;Yq8BkN>6*g5kVf~mRPArfJ^+KS z=Uy*nQ3;LNtJH@zrE4{fmafy(E`3;2AN(20h$Iv0*B6XAo^I&17Ob z+->Qe)OOwkG|ye2k%i}k(yUSXtjGbjqXjx@&e0MbEzHq!9A?X7Zj9x}ak89CE5n4D z13(`;iOn0QEw^=>XM{FgIAiCXlp5^=p{={lIy+vPM=Q3&q%@m&t6@1L0$Wlz6b5{5 zVG$=kLwj4(0ByFXJDF?ecz}AhQ%uzonF*-GPOOU(;%6p;JzYAH@Pj^;tI=&A#YH1H z9au*h3y}=k%Y`A_{|iuS_CM3T^#74;sqHYS?0*%RPCtrT20hwGF;A4am?!A4W0}|v zcb#tkb0cc{Uu6~j-!V#`g^sfwEzr>{j+W?XVUCvLFk7JiJ85N@Fx3BSxjoG7t`XW9 zthnX=SM5;$FQlUFFex2RytSk(hs5aq_qc^E+W$%i`ro6g^}k=WaR2-Ked~WVF4X@C z40LQ@G5$}1i2cvh@Baf3KRb5=VEl8JUqbM*)l4e;Uqz#xP>2TP$(S;3Xe8H z5o)9-t9E*+--!yE`J=(@RMU#uOdIEq7S`W%w&5o-lQ}B{=Z`1R?LWa4m_O);NahfK z{_x{x9Yl;Drq$zzC!f-35W_)CD&t2*CTLbs%b=@$bd8U$CE8j#or!Y>pc_BTSkQx# z^A@0P{7_-f@pC4ms8T?mH9`DnEgVyZR>RR6I9j;FY=QWB8?6izhT@0ru!nipF+w|2 z@5hg7hvMh$RJ0u?rL%~)mXzg?7#%+zx4;9OZL|XMqjJ*a_z5)9lkG$N_^k-XkI&z? z_@N&{@iQ0mPm|6+=R(BzVd}>Znk74Np5tiaxu?p;+CLE5dLk^H4L$gfNo9xyMS4nf zHqq!9Yz=IO_ABI}~btRJ0u?rH#Z}OUiOcj1D!ATj0Ug zHd=vDQ+Y7d0-p6`PoYMYC*6vv%5Oz&W=deH^7)C(RGol=bJc5zlNiEeym)&ZIwF#p z=Fe4YAjiH4Yu!Z$}PEnRaVszko+yd_m*hVW5xGMJp*Izif@%F10-gxi8(SnOjgrZg6ZOORBV_xu|QZcM%ddhiRA%9sp_OiaFqM$NoO z`<3&aW-!rsG0hru#78gj(RUJUEnUjQxeU+^Olq5(5>B8rD(pGV-bEvJP@gp!Z#!BG z$CRPfaI^-F7Va=xAkN-PE5n4LIHQYgz2{(rcBawa;H!2h&aR}o?Jz05n|NzUSq_QO zaprLgyjfx!Eyk5TdkE0gHu!$k!g1#FN5|P85F<4RkwBbX4o)b}PJ=w9bKXZFVw^Gc zGRpv&Am(ZcFKE=)o^cD&s6DGI91{8Z~i7`;~E~8BB1!k7f<} zejmNYM?XNcwe&$I&b5GUoKdBqH*B0hX;cWrnR6X8jAcU|8q#|>wsQ4GPUWHEL(oAZ z0|r@DOn6#N$5cY=>1Y+zsO>OYAP{e)m0`kAAhHi^y(wdacBaV>MAZ%j;zy}&J4{N~ z6K^dk%ONp35It^zx0P(86$nI?ldcwse$~Q(==0r^riAV_j6(=b4aedQsGJ*%)t^|- z!;>E0H6DiMA}MY7@GSKy&4LpW?E$WBmsLuZR!PGILcWhdsWAzD&=Z*cn3%X(7y-^?DN0JP9 z!`$DWgLbv5KO&{ist@ea=Z#;c(=T5zeqlntz;!b+GXs8ksqB~FGn1Q8NB5b@fw5}d ziWQcDU-rvp1}C?Adwu#{;kW&bqID>6k9Uv5QM9jq!;G!>n7`!uZF|6P4;#NRq2CZX zVZVJ7enXSP&zi1B9sk~b+uw&8&GEhXZ9ZBd-m~Aau0I}i{qbGnk6Omj_l!T7&>sl7 z@ICe)VvQY#{I>H6sBjHt>aW4SKtVh2hZ63waV9F=1Tp4&CY1}Uip(Opjaml%n2+A< zqqh)kE#1l_JYSV=BhPj?OX$R93d1>6jXIjeQLBy`bkvr^Y=PD7PFfiz46SZ#ovqW2 z5$bc4@;OwsL#x|eRJR=_rQ3qBO;l3evFL8HpRrqHy~n+F!f_(8uIUaRb#~A938k<;jd73flE~B z%aFr)Oe(`CDAHxi*$yo?ENIv4pd+Z5F=OKEE3|0P2YmFaKKdZh*3#FQxZ(5=aXVql@$@Um zQ#$871rg(kX+=DJ8%j7Hag7ValfQDi@w5YSc#lbCJOxE2p1un$H=bxW5KpRWg6Lbc zXwYx_=wm+mIMLS9cbK^G^aOF+3D~DW+$m6Fj;cCp%~3;++HjaH5Km9j$}nLlp6DEV zm@B#w+LV^>NU3%xp1w~-+hJ0Al6Y%LSq_QO@#Jv}+=19eD~2)VE@3JsUG0G8S1o)% z^ZDfiTJWA!l{ts4+w1vk751+F`An%%=QDEke0Ca;>gO{`_HsVM+!8vUkv8WuEZpw< zq$k5o`+F`i70RRV;JJj{*#4eNPT%)^BF3QZo1a4~cnVLMqU*7ljVi;(9f8nDn!4y*=D6XvC*c;WM& zFmUI~KU-?-@9)|2n|t$(sY&1tg%x;wx(PG+qIO;e_+iI6u zP1|bOwlSt{OxQNKBOE6$A>YAlTkyWaGL-6`pT7fi^lTU_{096`Y`{VLdf(v<#YQB# z7f*y^qY)d6Kx~j46&rKV?lw0z@UDQ)pNAN~VGt%uhZ?^zq2J)z8JS}PF@Ys_^nHgD zQOEywznQj~Gt;QmWq-e=@YTI}(ab*n*qQA5=P>m}O=*^~LW}P`g@nI(P6GAB* zU)bu7_S5hF9)7AAY5RMBW^>(M;wwBaAL9DuDAyk+2K=$W_=5@kfe`ck!FS-k?(L2L z8B;g+#!UUa@t@$Yo!fM8T;NWm^bEwZg_t@N{@x%Jgx;fs_JM-juzsmeTUfs8{U7Rm0`lrhL@AUuF$hFzu#Ymi2csAdcSi=R(c*{w3eum0`kAzq7^mFt@5k zXlD-f`(3p|{r+bv+76S_e-LjiDa#=-y5Bu+fm>_aXa)LR<$LOPziQ!r_xbzQ?`&MC z-{;sOXeI8$*J3GPzccmwz0<-x-v}k#cjXSf^cS|&c9>N5yNXO_|CL$>{hN;pOuJl* zXlu!4;&9XJKDTDZf^O&?ZhhTgphEDuHFw9s47$k=W}reKgBv|ja8dVwVOANp+qAll zsf^aw(W*LHONZG4(SxsHAV3I1(L=x4x;ZyOn{R5BZ?~y-D0=FsZaYj$_#zUWp)7~Q z=;-md1s*eRsj?GqE;815f+^KQ3?DJ6j5QUR0BfL@K~p~3 z=%YeBvaHs#B3BPLLdBo>e znMZojC0lR>_6=-YXddCcdBi*Bktq(xaWj!;ssBv>UjWs=6jFCeWfmC;I3?K01kLYw2JnZiuuIw}bX+5Fw(*994DH znxlpswc#*ZAVj9p$}nLlMCcrQn5Q-)wE0eEd9qOLP>8^LtP7LUWa6zQWjQ29hls~5 z@HA>0tw4yV+z*jZBR$zujiZmJ6_bVEirUPAz+~a`6PZpk{)2Nxm3#B_L?pA&pDXy@ zs+lY1Ld1At>c`VU#?y-cxHr#pUm%|R)2$m%8OY&1CYA9N6q$J9q0x;e+6}~$>Y5-r zoE8l_-A8Bm=uD!mr8hCLoq$cAP0e;zWp1p^9;L^^@D(mC$Wc{COLDXjN9{Yz7KpWZ zv@%Q>iZwdU)|0Oh+I$11JRPZaDAtaoI=;+=q|{ElwWKVE#OPS_xCNfs@wGK-1!B#k zt8Hifs)eT`pYKjbp|$1-bo-BS1?D53>qGO=uOK(^(+Lsdhp8VwIv;)8#LrQX1med( z^}F$NH01CIlgjuBicI{R2rV~$Xg3f)s%wH~J}nv)-^(bY$NK1TL|aQ8Oxzebp1AD< z?9(8g?Wi$FRUNhFs3AvfILsD^5sVuI17Rpe=p1`^fhV*x89zo;I}{^}sE98-At{|e zytSk(hs5X@@wf%vy}(!7s1=A2kFFLYe$~P;;`6J;$i3*=hr%(!*10kA8Q1x!Lyh-y zAekKQ9ou%M2g%?fOhuWEz_8IN|JDc0VSTGXp5SkNkmj=)^Lrpz>7f&?&>>A7Th7Cb zH4Qq0I7h~ku}En#Y89&~EnyNZEoG9bDV?Ngw6sjqSgA|Xcoo0|kX_Y}@ zrLznYFRe33O=-O%cIj+QGbf>-QdaR{CcK#hm(9p@K`{LU%+B<2q(<+_yS~K2A_y=1 zu8IoF&Qu>JA)}uq;<43lXMm5kfjl(y+>W@)oQxvt=Fg^J2xUyr z@6}7;PRI-+^Jdj((7c)DN)V4v$2%ytECGrtrV*SgAbScmH@oG`DIkxDLyTHYW{yZr z=2Y;^_P9>kUPYbb`ITUq`>G5Zv6`rQh@{%31-UGi!P?DW84@|B4tRufMG`|8ujTE{ znz3cc_yeV7ENrn)(O#KJTZK=diOF}=)6>n8$MeVJH09O318oJ*Qrl%3{SZ|`;=rI&W-`9IA0$Ap629Rjo*!uZz0TNH#n3UKtbXrW` zXwR&H#bd`PjZhmfbQ|dT1nz6^Ms)z0@@v`hB;{%z2*P#Tne~bI`+85@_P4+N4Nl~k znE?JQ)+cj1a@cvqLNXc4oQb4PV>~{6k{QJ&))6Q4Gh*E?4!GtLjhAFzi4O8gz ze1hG*v?CwB#{(6v8BF~(<4)-9d<8%-_tCJ!@#mr($1cjT?4lgcF3KV8q8!yO%7N{o z9NR9+;hpKFkH(>qrA?F!6NV;j*3KSgbBxgDo0>CrB3MyDqt02o)I$x2ur7QW@C_s~ z=u+>n=kw#4w}Ov;F!7g?AO2j%Gyd=n7YmML)*1N(#Lcou*?;FiME^1M{r3{~bUUX( ziT>jxgfG|v4!(_*JXLAVD)^?TLe56`z9C@de7J&{DAqY6|90kC4RZcm(_G@2_2jMr zW;<$cn0V%FaBYKTf#%Nvm}U=aj&9(`ehsl^zCEtYzmCPgoxsQQ$)B=RR>Tyz7FfAJ z;-L01jnoy#%kenm;(*_K>lu4a#}gOGH43E_sHj;c*Th~1!v@@7DXY5?a<{0fhXjhCnKT~+r`FwZObzTQE zFvWRy1+E8hHRIxk{C~zpK8^$-KI*Rgn=1I*U48>H2kr14ASaEB1ALI&KTAUdLjhM{ zugzuN9ruUWnSL}-rZ2Q>GI?V7nYAr&;PkgwFzje%EBWPp(j1*(w$oUlLz+6a6k!L^pO(P_+=nOFjrI6xxIy64 zVuiV7+|FErx|#0@AxE;%S(ZR+Ng1~@mqJT3hZN2zD@=>!hmgCxXtI3Fbm}|&)<@<7 z)<753nCIYff0?#IJJeRvep`(Wwl*Oh(!S1->JLO;NQbnqbCl||ROpcQb&OwID|ATv zI!CJ=Y)C?7k*1C<^)M3h{o8y;1$}?{o_+6>bJ&^p?pf>ozSdRLLNzDkix%bu7TF*-hR$k_#n+-wXS03zb__WKjdH1ejgy55dYZ4gmg&zI;JlVsL&zp z>l~wYFbjq3koI+sRUK@3LOP^<9a9!|lp!6`)UoBY%JKN`Wp{?h>5oIa|!wxPit z!FJ{&?4eN|9T>15t=ff$`4+ZSwXn!nxVfrAAWCknTEu@}|4*#&CFx3kA5@`3+V~sJ z36H_G<)(%G{Ry;U5B?6g^RB;hTPIbtgLGwE53bN5U8&Pnp+mY-XL5xO=}MhLDs)I! z>Kt03L%LFDN`($-U&qYZQ!8{xQ^ywEk_z`B4*S*CuzU90hgX(!*qP5(?ZZ2Kh0j%0 zc-U9?LRE#I_zL$|Rrsy1@TIB>wJC34f2FFzLB7IQp|FQ}eosSBeYvOg_!PTsEhsgV&?PBzCS;7~G1*C4U1rvBGhz)J=-6CVCst!4ZJE_`&nf zHJa}P882+4_%fj07o)BP=eEI%V61-d4hR}*gZ6PAj@1_KXRf<77q&k3)Uma<4LZot zQWHzp7SG?vB$59ZlEM#>VGt`m-a$@BV|mQsxLd;e85k+j!M3yxV$*=e6vi}i zm+rR+vFqyo6}raeBp66tnxtPl?9TCrSW>h+!zZq!Z&D5U_ zePipYc5ID|Xlx!1OXj^v$XH>^Lvl_(u0hV*g%S@tm zpqr0*Nt$c86;3utZ6FAktJd#yDk0dD$9|6oM}#gIe;tcmhkNp$uJ=4_+zC5wlOBa+ z;p&qYTHGz;gTsMbFmG1-thw!T=Nv;$RB+alS7zdUig$>tdy~kgvClhnb+ORfzj2Tn ziG{fDi2;7-+SSs&%KRSqp(m~FS`66&&^(kKy0DM;C-h@O<&1-GtF29f{G&BjU)lnC z6t2T?;f9d>8`8&dVHC-`aYcE755MtuJO$mYKfaB2Y0YuM;`c7~_nk$qZ#Aun$-&li zD=AB?Re<&OI6H~cAmMLqa`=i(QpVQIsY%Kiz+8H0$vuS^#14r z(WE@B_{&k|niL~EEk^0NF-jZb)Ss^K&2jR##i{d}F}Kn^2dO%-auqtXy3`r{+NUTKzNi z2g)meNvUc0U|q9}ZytIl z$YS(yQdYOlsex17*kFv@3TiwgZwYWjo|vSeb@(CW2dlyU@xfQRhdM`W=GpNjXx!rBr*2)FRAA)I49Q z)8so!ZBuGJYjoB>$w;45jXtA1bv}sV~WM zN_8vssQg5!4=DAF>{RO0N}D)n1=Ua7w+^%r?Tsqr}dKZ$eU&y|{|)OhO` zO081rFzY3yHY;_M^=qY`12tY2Tfb2%j&6TaR#?AP>gyPWPfCyVJNWavxWe!yj93eL z3BY+)J>X`m74ULv9ESTREXK>dRuu4Yz_IcobjHfBRr59LKxj^~X~E$0Y;xXgPX^4{ z8Nka`dW+re={#T`4cz4VfqfkCKiCUB&CxdNBeXwFVW+~kDl90xO5yF1$+$uL^~lM1 zhx(5-QNWsLJ>VFHhbcT-;Ym?SAB}7QTpM)&H%2c89Ex5F=tSQG_|Ygm&>8=YZOMn? zl>SfId^~a-O0QPW>G<0bZ>*kA@2AaYBM0uI2ddR`XVrQ>i(cC|ul`guA6Hn-e)ay^ z_c}lSceDIUwfv|3w7)Nr7WTutBaGYk0=}_$cr@}$aZ_8Rn6w&ShX7N zyUqRW{e8Dwt+v%YaCt39)77=N#UpZEE!V7DlykS@UsU+8!Y69ES`A@y9g$$JgOlI& z@|s*mbAIys;4e@97_eXQEsDQW@hcTK_ODmY&B`%leNs7JP>!jODc6bq4A#m~acpfw zzF#*E_4#StW%xrqVd-yheBftC^pg$m=B;l1?1t;gm}KRcp-fsAJfes)CbQ@7$v0p_zK+Lro4JvK!8*%6(Q`Wp7z zW$L)pcj|dA;b%v5Me6(YJbCf6BifVtaXk+H`q>ffPrX==d;Ts}O8vGTH^g1)^3)&e z50I5@B;S2Nye8H#K`!#BZSjfnenZI(scrFtxO>UYj`0Tdmv&r&Pm!i)Ok?RgIGWzUL`GHH(XH#T5Zd5QIeKu8Jj3q^% zO_P_W7#V$bn9PKjGWskd3#J*0K091ST#7!MF4ytM2Tl6yP4c2k(P!=Q%Z!oHXGci; z;fA8m=E<_@hN91oCW;UGHuYq~v4#NkLh8o>>i4N%2PkR$w}#_9&8Eh`G~gbMes)9; zYK)|C7sjP#H*Smb+{w?5=y8n=sT0LkvFW1)GSj2B#XF_bP})ZeWu;58j~2;*p|p<{ z%X?jleY9AvQ);)xHY|}IEpoTTHY|~wT#9X2BE=I~m)#cIuvG4IDYoGx`Sb!KV;h#q z%Pz$>bjgFAM#eUrOcb9T(dCUFNWIw*pw4LgaB8_nZEXBlYK2E#(s)1!!pHoobR)ajn)%%&$(XL!`n zO+QGT>PQ~rRcM6nWApnZP8~v@&lKm&vMeLPTXzLXB*_3E=8Yhlp1yE zZi_zKBnfrtZi_xUS5~?deby(hx)goZCo|REyDj>xPo}85cU$z?X6bP$`mA3T^DYeH zg+3dQt6YjcE66(SnB5kAHYo4tp(cH{EnbvQ8!B;5(`Ffx9WIqez9D(arG}fbjTgwT zT84qU zD`cii{d3a`jqjCfTz;vSN{gT;4+4V9j zJ-O+FvSYJqqJ696TKS$wbv9iqyFBWorVq($hDt0GPYm$>)_~udI@7@}Qv-Uri4|_N+^NBmFK=yIktA^k(^({L!VppWYV#7+(Bf z8+OR!$<1=JT&C2!Qs1XPR!4SuS-@^L9}4U21ysX1QHfxzv%(+v2y&I+t3| z{CLyHio-d{C+^eMT|P}-tT$%BT{7JW*dbt$&!Q?kpY zSnE&AA6<&I{a%FWXXF)^dJwYDN^;0}@NvjKE3Gc|BgpQRSuXW+$nKT-F7~djM~$`mzV4$)za!s%+Bjl&R-e_K@|w@gO%p#0h0T~PKl z`ST**=GUZtv7sn?NZOYAvWKMIr6~Kl3@r0yUzZV=qHMcdr|YySZ@b*I+PC?zT(;KF z_pn^&Qq1=a8P;us$@dMp%B3iKM2fnJFtSJFGMA$4o3cx{6h`(V)poni7DYAWGr%K6_~^Gbil66A#8{gSd_R8;ry2 z0Bdl6gHH+X28_uU0ps#8U_zb%#Pb5c{n39YNqtk+H-KBRL*c(F{|^DqiyE=4gRP}U z+!8OVW3G?YlYbYWk2f_%gS;02`Z^NIBvlahyFoNEU;@Mpszm}PnEFLRo z@mtne{O)sB#^4%@YaFfvaE-@xAg&3xCgM5>*CbpA<7&e-8P_4W4#hPE*EC#*;hH1d zV;`fiQ{GlhFpnQ ztF=|?V~1K3q0oo5=&AU$X z_9(wc`8~?-QGPAjxGmlXcyGK{UaS3Le4hNdc2cCMmWyf`XH@ueGR`!!5}oo)@|eVb z0$-HaDt}5Y1B}$INLbd4y0wYV$?CezVp;3!7A5K>U$+kWch}?qBXxb?ICZU7+WJ^s zA(6K3th*3)?yY-AqNsH%YTb%jx1!eVIn-)5a{Z$2H;K#S_jP|uTqRchq{vlLTc56d zPFm{6)?Oyl>z}hGTPI?TeojsT=Q%m6eiGn@`e};KuC0~f`h~UEX^-EeJ${q+^&E@+ z`#J4p!fo+ml+&rO%Z1Gi_tth<%?)3wouj8Zw(g#BxTkbblwTR*I@740h4e-rJR6#1sM;#TP2m;RjQYQ~%UD=_*ji*N`q zB~M%D#GB=9_6m%w7C9a83-Y2pOJ>x3H9bq_)_gPFsr*jmbKIVe@j{(T6u(6ATNS@m z@#htPUh$XYyvXS&&p_t2EavUBh<7U9WnCHBRGU>!Ryp0)rO4F_{*|?tDt?9P+^+cD zz<1O>tojeD{v*nN4E&dCpI83#%6~!mFM&TMY1vx3&C({Pr{`HK|q0w48MJgfX}#e2cOHF=5Rmni>I#jgPW%Gz5Lztx2-{dUFghV=2| zcEuldA*GKf{urdMCZAXQdA0e1;xB=J0{*D{B6v?C-Ex;$5p7pQ+ogDIg!P=P_+;fD zs`%mHUs=0A^DaQ%pGl|kJ5^_q;$50It9VxV-HP{uKfZ26^Nt|znbsxBzeIH|Rs0I* zEUdd#@mrODyW)3)-&eO?^KM7pk5~^Y|6$d6MDfR<^P#%u6@Om&FDU*J_+PD)8f|Y) zxBSksYP7vI+Fr$LYp#sEST|Ym$;v-e@x#GS)-TY!3y^oF-KqRe)mfx?)`hgzt@w!Q zk3hfQzC<~fsQ#sj-|9l@->&#})!z>NyX;4lb9Rh198tJE#+q-BbqoI7Ok7(L@5ZKQ zf#M5*A73+~_z3XfnzkhKE>Jj?bLP4*60Go7XW`cI->Xp z@P^oS#kT`LD<<`-Uk}g67AU>|__MJQJk2;=Zc(^h;Vy-34b*RI=$7Bdx2LGHOQAFp zZ&P@-!V!hHDBP~Ftx4;z@N9)63MH+16)sSCw!#sGwL{GjLe2uk7b||Y;v))gQMg^|1p&alCYTkCh3#|VEzXm*8;fTWR2mBg7m+^!P z6pkp|u22qCzQPfO+ZDR9?a8JYi4UaUmq)tdJN^MA;ml{Y7rQVbJY3ljZ z?$obS4UH|0;~P5~7d9?yJf-oB#tn_vHa^<;w zsp)-9+nT=A^!=t^HvOq-OgfW3A-yPlayo+DYZSZjxNs*~gTFf;!#ijRyibUC1M#l` zt62)W$42ZN1t-z&bQm_&Yy#(omOjASTh0f(r)3E6ftIa+k0^Yir3Cz^5o#Lz*$6q` zYk3#ok6Nw#TYBILyjKNi%LaJEl8u12TmX+)cw4mr z_=WI_C0hY)aj^TgWEjwv5>{zT-T`RKB`D3px2(qizZ5%hOD+S%nGd^hORfO4<-ORE zTXH3!EmvVzZpqbvw!9BJb4%V2Xv;O&Jy`MqKwCa2hXTJA(3TI&RNyxN+VT;7!|+Bx zTRw_!&|7$$?r`AS@GW$lv;b|~)qWH3TL5jme>fZXZGg6X0=s+*cXQ_ezYAWm^{O3-IFTD8uSOn?E{}a8{!)By;kwRr;=(=^{hGizEP+0q3R^ee+6kSLt;uqob-282jgiCbG180c zc6+Y0M&`=w$cb_cuCB;QvKsW;aBakOe&jT{J938n3D^9ZF|q~cxcjlTejV3iHFM<| z@P3Z#@aPyRMmNiMkj7(!vN|?KuEq6KY_2rK=gK%-ljB=t2GXPO#$G4V<+#p>Un!5r zKOn!wbw%O}@)KO^YX2fD>i;5V;@XHSuYQw`75Sc_zT64Yb?U6uTe2HB<_fbq2YRJz zWvg&z*7X?xuTXJD{ZlKtk@0UgS{tdkwhYDGx z0@+ZPT%Rn;7IPc(g{^XGp(j^h4P;GrqZT7>6^+$dYjT4{6}xFiwp`!|=dEAAFx!0| z-T`0Qo9pY5j&rhuxs}=CrqPlDavOuAWUD-p5M8|~TNsd@+=lE>UvXJ3i|Vb&4#?u( zZnh*_*n0L6vU=-aF}HcvqI_RpPT7OAPRjM?3ccOZv7}JQ7Z#zBqY5gE`it<}D5=*h z=@^33`?H&?SQy9-4sOX8daC7qb8f4^2$GeB+=ku@rK4-K-YG+Uec5yRa%azR8zCL1 zR4oZEuadpvw4rQ&vA4K&R0TR#Z|WUbj9wijA#+Xd=A3k_E@q2EgQFBW7Uee&^yR8# z?I?%I=sYVo<%{{Xg}%||miG=8(Yy}C(`aD_1G&0ym-ZG0i`AX6Ji8~!lFixPzAClb zQ$KZ}-ugI z`-JZG>$61KrDK4T!TR;U&L7GZwyw+;vYQ9NKzMA@q3v;wkd6)c!e)=23mWe6=y@=P z^4JZ?f24F|hl-n4=ZZys0|lI;q@&dar zq064Ka*-@5o~}{Uff}K#gSURc-IDDs<_hiFz)nM;ov6A?Xq&nQ%M)3TD1UAL zV0J_9)PA3h92g>4SY*mz5ldIQ_$wxYDMYx6r)qerT8z?Md>gh zuX~Eh5$lTv+3TH!LUwCc|G-ei*hYOSG&${8QAFLA=QsBDk1h-&9FqJ{akL1rht`t6 za4TonurCmICNf87MBo`uj20b@_7^va8UJ#cKOM*+b~m(Fy70kHxWr^VAg>P zvVDD+{5j)w_UHR`+qQMSEFJ3aMtEXmYh1d4RMrkR27O-0VR9TSV%log9ndO6%ap!+ z_XSx*{gVEn%{lDkuzYlcHb%%YN3ithP+pnsEnsit=0XPzaJGet$3tI~d2`Ep=!G(G zUYWWr8l zSij`_p==*^E^_i<9wX8ypOV{B#CnzAP@F|J<_7e6FZ3?TxvOT^sewUhwtZcvs#{m& z1_!enF>zPqSX0=FV$JL}h^ej%TSY16E-b>2-FZ&qQl8hz+z6GmYnIMuT^DXGVtHMY zUxG7i$vo01jEHmt$MPF?)i=*v6o@iiK=<(a+>Mu)ISlcY!%3Wa(>!*Cm5fR?-8K43-pb6tb64O1YI1uODzCtP#mXF`=q@8%>=@G%EDAR3> zzpS~NHO}q<)a0vJkNlM@pjmBAs}y?+*&YR^Ja1VO5Ay`>szyn0fn#g^RV_@Jy#B)G z_O!Qz|&F!Z18)o=(-+NuRKpt0G(Bo$Iv` zJ{6Fe8H;Un#fCwRAw-OBf++O}O3FuiHR}jLTr z$S$l4vZybY?H?M@rQ;-j3gsFwdfGJWiyo`Wrz!~y1V5ZYkuy~Gi5C~>Vy_>)Zu9!X z_p$FK&nd(zlf_%y20U)f{y?)hj_ull(M-Wotj1zelee>wH@VXl9= z;EThcvjshYJ_lCW11D)N(^h(oIb^)wI>+sQ^3mswm2?*JUi9~Qu!9$!kK9{ptCgj# z9J%!G-OSN}b_S}=0A1<^wbb^zPLxG^YsBkY(k2c5y<4;x4)4>>D-WH$54F+y|Cj)y zzxv?gECPr_i*=ScdkV1G2yI`#ODCI+%rTYud$iAbVU2y&hgXg`HBrK$oyD-@1fV7C zH4v-SNxd<7HilYx5}OTM{dnZbfn#_GaQq7No~JVt;9a9~scj6ZplwcwJ+O^$ckH#U zE76`ThAnO!dpXoz>5WF1Z)abp2S0~5MZ9TGt(lF7!G7D^X``hIZy!84x?F9!^N(nG zaJ=~SkfZn3|JCzoo$DCcgZt3mi_ptCjprPeN0UP>%@c?RF6fOVo*DHTH#tS1{PJ82}mu*y(JuX-_XOoROHYHv5sW*40xg2uA z+~P*z-e<+-o~@9tF;>f#XJh=ayu5m1?_z)>GgP z?hFJ|o8KhI!^?KDwvVaGJ#KHEX(qgC<^9(NYT07Bc6)Dia7ixb+9vu6zke)VJ@>T^{kC2?=-}2R+nUM;I^7_RI(b|xn8tvG32b7mNkZX zR)a3@{*|lxi%|2;>Md>~T>bIETAA|Q8o7Cl?Q*Nt+5}VAO|Zv}!dm#F5A9N!wm!6{ z50zjfZV3~DWtZb3SbCXP9v6P;+*%b-W-;t(t@CpAa)m_wyF@ow+%oxIS*hCo1ga9Z zH`v1dvZoGWtIIVS<>7IQP@7G#Re*=v)W58qv}6%WS=5$&e-0q#rWu34%ROPvDB;K| zw-+%uIjlQ?GQwW3)L_r^tXZ}(2S2Cz#>c>H#53#0wzQQ`J%_GR&VYJ{OLiOD$1#${ zWnxI?RO-x`^qjRhr)!IGeJ#lnizHb)xs$a)SnM`0WZ$a(LXMW#*(l`Ja zPubia>lf?gj)cAXqVb0;yW^yb-rAh~?)xMXYi_e+DJ0Q&Y)o^lol4oUgdLk0i;YP) zSV@y4AOn?78`6gQOrXtUtQ2#Nv6|=Gv82AZhRMyUvGCeiv<4rKXi4}9!m8eC73%&;c8>xu-Yq+!Ef)qt^w~^gjapM2!gnK^h@vu!E*5_dZXmkgziL7k#C`;y4l*T*LI)(U;pu!=9 zImDgbI%wm5W@+z_6)dLd^@#^o0n7UlGx4QTb+rl2f zWTAy$v$xC@&)~dOmdby8Y<)hae`^L90HJDkjM5c4K zW14$07hu-HqH0Y%pry%DauQY>BbbCg17}S{uy1B>oR2k@=@3#ABbf9MBNNpOJTd9MhHL>QA>$GM!;g5_h4UCFC){MOt zcyq_Aaj-Z2KDa3cucgwtB&YoIQ75kL>Lle1l{s`58q#862hconHGF7NtQ8TZQ%QqN zOpkns{#|P|Ppxayu4tYL4eS{3mCmVUi3ynIsp*j$4zchW{+d(`pFY~XJ!|ZyC7XN8 zk7v!hB~t<_HGHC1O)1u9HILkpGRZ_ZJcYX4JvERuI=}~-)$(QnS_!<>qc0@CuHvBk zesVR%X#tC|L45#PO)XS#xBJp^HAUUJB;Y=7HI?9>74RIFz+0~R%(Plw{8?I0v38*R zmUA`DkfV!u(XyISsN5mN@#I5GGws->b8_z?dVd|h% z^HgYIhX}B2TD-Q3lF6p3ruNibPO$Qj*UQj6k9une&LmhzaCST%sl_~VRzti7sWIAo zR;^Oa^P119=jo%oVQeDN1y`0CbZ>ied(xe+fTG#W?Qj&7;KlY7=_6CqU$1h$N!F_8 z^&8Vpy-fst1OsWe{^go^ZD@D**&QYnI!vG;7CKOC^cKScOq=!Pf&ylTSN{&oisYCWHgV#_sci{G_MSrvzkyqWR7y{vjM_xp^gTiv>vJ@2 zr_*#07v@;pp4dF{F7Qy*Xq=048iOZXjTra`r4lt*qTv`Dt99H&6l}pwH$h%Ik^N;` z2^hxD#iu6X(3!v}N^s+n05K5+wgwho; z<%zN!h-OTu**IM!G(r?}Gudt?yPU~p56ol_%+wy3smj))h3 z^T)(-$D(@$+_Fk!Zi?)ZL%|#Akk!xc;ddCw=MFled^-aT#X*rHtWkbr5g! z=^)nb>EZRJ!s5QZ6CgX{6*(gz`F2|_!Q7xfJ=e%^R=4a{*{jhDnBQ> z4BlP~m{sm#KnqrR_qP1do{!{sH;|tx!dz=0<(>FJy_Z{l)LXJ=9SGL54f^f)eksledPh2kHuI?m-?z~>n^ZmvI^|37bOFC}0uQrJ)a8BU zKJTtOp1tC}ssH?B5oEn?3)W~oa1R`R6NT+t4tk^JW=jXq4ti=M?(tHm4VP($uV*~o zgM54otAP8@^or44gKyee`jP-`(BrIExn1SE-}_R(S-7{$x3t*LtmjIUlm~AJKJ=d= il*=`33F}mPv5m_AS3gggzoE3UJmCJX`r-d*yZ;{~WweF> diff --git a/samples/client/petstore/csharp/SwaggerClientTest/obj/Debug/SwaggerClientTest.dll.mdb b/samples/client/petstore/csharp/SwaggerClientTest/obj/Debug/SwaggerClientTest.dll.mdb index a7a6c4d4364bdf59f6d3b8fd0b9f68752a88cea2..6cfbe6bdc2282421418c7e8b501b55b189932769 100644 GIT binary patch literal 16213 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 vQ5D?esDd7WS^bETdzaIP_?WJMB