Forgot playlist moving

Forgot playlist moving

--- Espera.Network/RequestAction.cs
+++ Espera.Network/RequestAction.cs
@@ -40,43 +40,53 @@
         RemovePlaylistSong = 203,

         /// <summary>
+        /// Moves the song up in the playlist.
+        /// </summary>
+        MovePlaylistSongUp = 204,
+
+        /// <summary>
+        /// Moves the song down in the playlist.
+        /// </summary>
+        MovePlaylistSongDown = 205,
+
+        /// <summary>
         /// Play a song in the playlist.
         /// </summary>
-        PlayPlaylistSong = 204,
+        PlayPlaylistSong = 206,

         /// <summary>
         /// Pause the currently playing song.
         /// </summary>
-        PauseSong = 205,
+        PauseSong = 207,

         /// <summary>
         /// Continue the currently paused song.
         /// </summary>
-        ContinueSong = 206,
+        ContinueSong = 208,

         /// <summary>
         /// Play the next song in the playlist.
         /// </summary>
-        PlayNextSong = 207,
+        PlayNextSong = 209,

         /// <summary>
         /// Play the previous song in the playlist.
         /// </summary>
-        PlayPreviousSong = 208,
+        PlayPreviousSong = 210,

         /// <summary>
         /// Gets the current volume.
         /// </summary>
-        GetVolume = 209,
+        GetVolume = 211,

         /// <summary>
         /// Sets the current volume.
         /// </summary>
-        SetVolume = 210,
+        SetVolume = 212,

         /// <summary>
         /// Votes for a song.
         /// </summary>
-        VoteForSong = 211,
+        VoteForSong = 213,
     }
 }


Removed unnecessary openXDA prefix

Removed unnecessary openXDA prefix

--- Source/Libraries/openXDA.Model/SystemCenter/ExternalDBField.cs
+++ Source/Libraries/openXDA.Model/SystemCenter/ExternalDBField.cs
@@ -36,7 +36,7 @@
         /// <summary>
         /// This is the ID of the Corresponding XDA object
         /// </summary>
-        public int OpenXDAParentTableID { get; set; }
+        public int ParentTableID { get; set; }
         /// <summary>
         /// This is the ID of the Additional Field id it is an AdditionalField in System Center
         /// </summary>


FileInfoService.cs processed white space in file names

--- Source/Services/Showcase.Services.Data/Base/FileInfoService.cs
+++ Source/Services/Showcase.Services.Data/Base/FileInfoService.cs
@@ -7,9 +7,12 @@
     using Showcase.Services.Common.Extensions;
     using Showcase.Services.Data.Models;
     using Showcase.Services.Logic.Contracts;
+    using System;

     public abstract class FileInfoService
     {
+        private const char WhiteSpace = ' ';
+
         private readonly IObjectFactory objectFactory;

         public FileInfoService(IObjectFactory objectFactory)
@@ -20,7 +23,8 @@
         public async Task<T> SaveFileInfo<T>(RawFile file)
             where T : FileInfo, new()
         {
-            var databaseFile = new T { OriginalFileName = file.OriginalFileName, FileExtension = file.FileExtension };
+            var processedFileName = string.Join(WhiteSpace.ToString(), file.OriginalFileName.Split(new[] { WhiteSpace }, StringSplitOptions.RemoveEmptyEntries));
+            var databaseFile = new T { OriginalFileName = processedFileName, FileExtension = file.FileExtension };

             var filesContext = this.objectFactory.GetInstance<ShowcaseDbContext>();
             filesContext.Set<T>().Add(databaseFile);


[Toolkit.Input] made a few methods static

--- Source/Toolkit/SharpDX.Toolkit.Input/PointerPlatformDesktop.cs
+++ Source/Toolkit/SharpDX.Toolkit.Input/PointerPlatformDesktop.cs
@@ -135,7 +135,7 @@
                    };
         }

-        private PointerUpdateKind TranslateMouseButtonDown(MouseButtons button)
+        private static PointerUpdateKind TranslateMouseButtonDown(MouseButtons button)
         {
             switch (button)
             {
@@ -156,7 +156,7 @@
             }
         }

-        private PointerUpdateKind TranslateMouseButtonUp(MouseButtons button)
+        private static PointerUpdateKind TranslateMouseButtonUp(MouseButtons button)
         {
             switch (button)
             {


Fixing wrong timestep assignment

Fixing wrong timestep assignment

--- SpiceSharp/Simulations/IntegrationMethods/IntegrationMethod.cs
+++ SpiceSharp/Simulations/IntegrationMethods/IntegrationMethod.cs
@@ -79,7 +79,7 @@
             MaxOrder = maxOrder;

             // Allocate history of timesteps and solutions
-            IntegrationStates = new ArrayHistory<IntegrationState>(maxOrder + 1);
+            IntegrationStates = new ArrayHistory<IntegrationState>(maxOrder + 2);
         }

         /// <summary>
@@ -189,12 +189,12 @@
             var args = new ModifyTimestepEventArgs(simulation, delta);
             OnContinue(args);

-            // Update the new timestep
-            IntegrationStates[0].Delta = args.Delta;
-
             // Shift the solutions and overwrite index 0 with the current solution
             IntegrationStates.Cycle();
             BaseTime = Time;
+
+            // Update the new timestep
+            IntegrationStates[0].Delta = args.Delta;
         }

         /// <summary>


Added Qh.NotIn option

Added Qh.NotIn option

--- Figlotech.BDados/Builders/Qh.cs
+++ Figlotech.BDados/Builders/Qh.cs
@@ -14,7 +14,11 @@

         public static bool In<T>(object input, string column, List<T> o, Func<T, object> fn) {
             var refl = new ObjectReflector(input);
-            return o.Any(item=> fn(item) == refl[column]);
+            return o.Any(item => fn(item) == refl[column]);
+        }
+        public static bool NotIn<T>(object input, string column, List<T> o, Func<T, object> fn) {
+            var refl = new ObjectReflector(input);
+            return o.Any(item => fn(item) == refl[column]);
         }
     }
 }


cleanup

cleanup

--- Tests.Integration.Presentation.Web/ItSystem/ItIterfacesTest.cs
+++ Tests.Integration.Presentation.Web/ItSystem/ItIterfacesTest.cs
@@ -21,7 +21,6 @@
             //Arrange
             var interFacePrefixName = CreateInterFacePrefixName();
             var interfacesCreated = await GenerateTestInterfaces(interFacePrefixName);
-            //var interfaceResult = GetInterfacesByName(interFacePrefixName);
             var url = TestEnvironment.CreateUrl($"odata/ItInterfaces");
             var token = await HttpApi.GetTokenAsync(OrganizationRole.GlobalAdmin);


- Added Mosa.Runtime.Runtime.Throw to VmCalls in TestAssemblyLinker

--- Tests/Runtime/CompilerFramework/BaseCode/TestAssemblyLinker.cs
+++ Tests/Runtime/CompilerFramework/BaseCode/TestAssemblyLinker.cs
@@ -43,6 +43,8 @@

 		private readonly AllocateObjectDelegate allocateObjectHandler;

+        private readonly ThrowDelegate throwHandler;
+
 		#endregion // Data members

 		#region Construction
@@ -59,6 +61,7 @@

 			this.allocateArrayHandler = new AllocateArrayDelegate(global::Mosa.Runtime.Runtime.AllocateArray);
 			this.allocateObjectHandler = new AllocateObjectDelegate(global::Mosa.Runtime.Runtime.AllocateObject);
+            this.throwHandler = new ThrowDelegate(global::Mosa.Runtime.Runtime.Throw);
 		}

 		#endregion // Construction
@@ -191,6 +194,9 @@
 		[UnmanagedFunctionPointer(System.Runtime.InteropServices.CallingConvention.Cdecl)]
 		private unsafe delegate void* AllocateArrayDelegate(void* methodTable, uint elementSize, uint elements);

+        [UnmanagedFunctionPointer(System.Runtime.InteropServices.CallingConvention.Cdecl)]
+        private unsafe delegate void ThrowDelegate(object exception);
+
 		protected override unsafe void AddVmCalls(IDictionary<string, LinkerSymbol> virtualMachineCalls)
 		{
 			Trace.WriteLine(@"TestAssemblyLinker adding VM calls:");
@@ -214,6 +220,16 @@
 			symbol = new LinkerSymbol(allocateObjectMethod, SectionKind.Text, virtualAddress);
 			symbol.VirtualAddress = new IntPtr(symbol.SectionAddress);
 			virtualMachineCalls.Add(allocateObjectMethod, symbol);
+
+            IntPtr throwDelegate = Marshal.GetFunctionPointerForDelegate(this.throwHandler);
+
+            const string throwMethod = @"Mosa.Runtime.Runtime.Throw(Object exception)";
+            virtualAddress = throwDelegate.ToInt64();
+            Trace.WriteLine(String.Format("\t{0} at 0x{1:x08}", throwMethod, virtualAddress));
+
+            symbol = new LinkerSymbol(throwMethod, SectionKind.Text, virtualAddress);
+            symbol.VirtualAddress = new IntPtr(symbol.SectionAddress);
+            virtualMachineCalls.Add(throwMethod, symbol);
 		}

 		/// <summary>


Added more json serialisation settings to try and allow interfaces.

git-svn-id: d0def854dd7af056e86ca9c2262ea22710193966@95 72444466-9f5c-4d9b-9c6f-db583910f96c

--- Cqrs/Framework/Cqrs.EventStore/EventFactory.cs
+++ Cqrs/Framework/Cqrs.EventStore/EventFactory.cs
@@ -39,6 +39,7 @@
 				DateParseHandling = DateParseHandling.DateTimeOffset,
 				DateTimeZoneHandling = DateTimeZoneHandling.Utc,
 				Converters = new List<JsonConverter> { new StringEnumConverter() },
+				TypeNameHandling = TypeNameHandling.Auto
 			};
 		}


Add Byte Overloads to `RegexSet`

Add Byte Overloads to `RegexSet`

Allow `IsMatch` and `Matches` to work with byte arrays as well as
strings.

--- src/IronRure/RegexSet.cs
+++ src/IronRure/RegexSet.cs
@@ -45,24 +45,34 @@
         /// <summary>
         ///   Is Match - Checks if any of the patterns in the set match.
         /// </summary>
-        public bool IsMatch(string haystack)
+        public bool IsMatch(string haystack) =>
+            IsMatch(Encoding.UTF8.GetBytes(haystack));
+
+        /// <summary>
+        ///   Is match - Check if any of the patterns in the set match.
+        /// </summary>
+        public bool IsMatch(byte[] haystack)
         {
-            var haystackBytes = Encoding.UTF8.GetBytes(haystack);
-            return RureFfi.rure_set_is_match(Raw, haystackBytes,
-                                             new UIntPtr((uint)haystackBytes.Length),
+            return RureFfi.rure_set_is_match(Raw, haystack,
+                                             new UIntPtr((uint)haystack.Length),
                                              UIntPtr.Zero);
         }

         /// <summary>
         ///   Matches - Retrieve information about which patterns in the set match.
         /// </summary>
-        public SetMatch Matches(string haystack)
+        public SetMatch Matches(string haystack) =>
+            Matches(Encoding.UTF8.GetBytes(haystack));
+
+        /// <summary>
+        ///   Matches - Retrieve information abut which patterns in the set match.
+        /// </summary>
+        public SetMatch Matches(byte[] haystack)
         {
-            var haystackBytes = Encoding.UTF8.GetBytes(haystack);
             var results = new bool[_arity];
             var overall = RureFfi.rure_set_matches(Raw,
-                                                   haystackBytes,
-                                                   new UIntPtr((uint)haystackBytes.Length),
+                                                   haystack,
+                                                   new UIntPtr((uint)haystack.Length),
                                                    UIntPtr.Zero,
                                                    results);
             return new SetMatch(overall, results);


shotgunstuff

shotgunstuff

--- UnityProject/Assets/Scripts/Items/Weapons/MagazineBehaviour.cs
+++ UnityProject/Assets/Scripts/Items/Weapons/MagazineBehaviour.cs
@@ -43,7 +43,7 @@
 	public bool isCell = false;

 	[SerializeField, FormerlySerializedAs("Projectile")]
-	private GameObject initalProjectile;
+	public GameObject initalProjectile;
 	public int ProjectilesFired = 1;

 	[HideInInspector]
@@ -92,7 +92,7 @@
 	{
 		containedBullets.Clear();
 		containedProjectilesFired.Clear();
-		for (int i = magazineSize + 1; i != 0; i--)
+		for (int i = magazineSize; i != 0; i--)
 		{
 			containedBullets.Add(initalProjectile);
 			containedProjectilesFired.Add(ProjectilesFired);
@@ -204,9 +204,9 @@
 		clip.ExpendAmmo(toTransfer);
 		if (!isClip && !isCell)
 		{
-			for (int i = 0;i != toTransfer;i++)
+			for (int i = toTransfer;i != 0;i--)
 			{
-				containedBullets.Add(clip.containedBullets[i]);
+				containedBullets.Add(clip.initalProjectile);
 				containedProjectilesFired.Add(clip.ProjectilesFired);
 			}
 		}


add initial structure for fluent api mapping

--- VideoRentalSystem/VideoRentalSystem/Data/VideoRentalContext.cs
+++ VideoRentalSystem/VideoRentalSystem/Data/VideoRentalContext.cs
@@ -6,7 +6,7 @@
     public class VideoRentalContext : DbContext
     {
         public VideoRentalContext()
-            :base("VideoRentalDBConnection")
+            : base("VideoRentalDBConnection")
         {

         }
@@ -14,5 +14,10 @@
         public DbSet<Country> CountriesTable { get; set; }

         public DbSet<Employee> EmployeesTable { get; set; }
+
+        protected override void OnModelCreating(DbModelBuilder modelBuilder)
+        {
+            base.OnModelCreating(modelBuilder);
+        }
     }
 }


add validation to the inputs of the distribution information at regional level

--- Web/Areas/Logistics/Models/DistributionByAgeDetailViewModel.cs
+++ Web/Areas/Logistics/Models/DistributionByAgeDetailViewModel.cs
@@ -1,11 +1,12 @@
 using System;
 using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
 using System.Linq;
 using System.Web;

 namespace Cats.Areas.Logistics.Models
 {
-    public class WoredaDistributionDetailViewModel
+    public class WoredaDistributionDetailViewModel:IValidatableObject
     {
         public int FdpId { get; set; }
         public string FDP { get; set; }
@@ -47,6 +48,24 @@
         public int FemaleBetween5And18Years { get; set; }
         public int MaleAbove18Years { get; set; }
         public int FemaleAbove18Years { get; set; }
+
+        public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
+        {
+            if (TotalOut > (TotalIn + BeginingBalance))
+            {
+                yield return new ValidationResult("Total out can not be greater than the stock available");
+            }
+
+            if (DistributedAmount > TotalOut)
+            {
+                yield return new ValidationResult("Amount to be distributed can not be greater than the 'Total out' amount");
+            }
+
+            if (LossAmount > DistributedAmount)
+            {
+                yield return new ValidationResult("Loss amount can not be greater than the amount allocated for distribution");
+            }
+        }

     }
     public class RequisitionDetailViewModel


Update

Update

--- YourFood.Services/Controllers/OData/ShoppingListsController.cs
+++ YourFood.Services/Controllers/OData/ShoppingListsController.cs
@@ -25,9 +25,13 @@

         // GET: api/ShoppingLists
         [EnableQuery]
-        public IQueryable<ShoppingList> GetShoppingLists()
+        public SingleResult<ShoppingList> GetShoppingLists()
         {
-            return this.Data.ShoppingLists.All();
+            var list = this.Data.ShoppingLists
+                .All()
+                .Where(sl => sl.UserId == this.userInfoProvider.GetUserId() && !sl.IsFinished);
+
+            return SingleResult.Create(list);
         }

         // GET: api/ShoppingLists(5)
@@ -81,8 +85,11 @@
         }

         // POST: api/ShoppingLists
-        public IHttpActionResult Post(ShoppingList shoppingList)
+        public IHttpActionResult Post()
         {
+            ShoppingList shoppingList = new ShoppingList();
+            shoppingList.DateCreated = DateTime.Now;
+            shoppingList.IsFinished = false;
             shoppingList.UserId = this.userInfoProvider.GetUserId();

             if (!this.ModelState.IsValid)


Camera can now be accessed easily, and provides a way of transforming mouse location into a world position.

--- Fruitless/OrthographicCamera.cs
+++ Fruitless/OrthographicCamera.cs
@@ -4,6 +4,11 @@

 namespace Fruitless {
     public class OrthographicCamera : Camera {
+        public static OrthographicCamera Main {
+            get;
+            private set;
+        }
+
         Matrix4 _projection;
         Matrix4 _view;

@@ -11,20 +16,11 @@

         float _zoom;

-        public float Scale {
-            get {
-                return _zoom;
+        public OrthographicCamera(Size boundsInPixels) {
+            if (Main == null) {
+                Main = this;
             }
-            set {
-                if (_zoom != value) {
-                    _zoom = value;
-
-                    Build();
-                }
-            }
-        }

-        public OrthographicCamera(Size boundsInPixels) {
             Bounds = boundsInPixels;
             Scale = 1.0f;
         }
@@ -42,6 +38,16 @@
             GL.ClearColor(Background);
         }

+        public Vector2 GetWorldPositionFromScreen(int x, int y) {
+            float centerX = Bounds.Width / 2;
+            float centerY = Bounds.Height / 2;
+
+            float deltaX = x - centerX;
+            float deltaY = centerY - y;
+
+            return new Vector2(deltaX, deltaY) * Scale;
+        }
+
         public Size Bounds {
             get {
                 return _boundsInPixels;
@@ -49,6 +55,19 @@
             set {
                 if (_boundsInPixels != value) {
                     _boundsInPixels = value;
+
+                    Build();
+                }
+            }
+        }
+
+        public float Scale {
+            get {
+                return _zoom;
+            }
+            set {
+                if (_zoom != value) {
+                    _zoom = value;

                     Build();
                 }


added WordWrapping setter

added WordWrapping setter

--- GameOverlay/Graphics/D2DFont.cs
+++ GameOverlay/Graphics/D2DFont.cs
@@ -156,6 +156,10 @@
             {
                 return Font.WordWrapping != SharpDX.DirectWrite.WordWrapping.NoWrap;
             }
+            set
+            {
+                Font.SetWordWrapping(value ? SharpDX.DirectWrite.WordWrapping.Wrap : SharpDX.DirectWrite.WordWrapping.NoWrap);
+            }
         }

         /// <summary>
@@ -167,5 +171,16 @@
         {
             return font.Font;
         }
+
+        /// <summary>
+        /// Returns a <see cref="System.String" /> that represents this instance.
+        /// </summary>
+        /// <returns>
+        /// A <see cref="System.String" /> that represents this instance.
+        /// </returns>
+        public override string ToString()
+        {
+            return "{FontFamilyName=" + Font.FontFamilyName + ", Size=" + Font.FontSize + "}";
+        }
     }
 }


Methode zum Laden einer Entity hinzugefügt.

--- src/Micro+/IDbSession.cs
+++ src/Micro+/IDbSession.cs
@@ -15,6 +15,7 @@
         V GetColumnValue<T, V>(Expression<Func<T, V>> selector, Expression<Func<T, bool>> criteria);
         T GetObject<T>(Expression<Func<T, bool>> criteria);
         T GetObject<T>(object primaryKey, string additionalPredicate = null, params object[] args);
+        TEntity Load<TEntity>(TEntity entity);
         ObjectSet<T> GetObjectSet<T>();
         ObjectSet<T> GetObjectSet<T>(Expression<Func<T, bool>> condition);
         ObjectSet<T> GetObjectSet<T>(string sql, params object[] args);


removed console log args

removed console log args

--- src/MiniCover/Program.cs
+++ src/MiniCover/Program.cs
@@ -18,7 +18,6 @@
         static int Main(string[] args)
         {
             Console.OutputEncoding = Encoding.UTF8;
-            Console.WriteLine(String.Join(' ', args));

             var commandLineApplication = new CommandLineApplication();
             commandLineApplication.Name = "MiniCover";


Add some method to IHandler.

Add some method to IHandler.

--- src/NLogging/IHandler.cs
+++ src/NLogging/IHandler.cs
@@ -7,5 +7,8 @@
 {
     public interface IHandler
     {
+        void push(Record record);
+        void flush();
+        void SetFormatter(IFormatter formatter);
     }
 }


Add another test

Add another test

--- src/NTDll.Tests/NTDll.cs
+++ src/NTDll.Tests/NTDll.cs
@@ -13,6 +13,7 @@
     {
         Assert.Equal(Win32ErrorCode.ERROR_IO_PENDING, RtlNtStatusToDosError(NTStatus.STATUS_PENDING));
         Assert.Equal(Win32ErrorCode.ERROR_SUCCESS, RtlNtStatusToDosError(NTStatus.STATUS_SUCCESS));
+        Assert.Equal(Win32ErrorCode.ERROR_OBJECT_ALREADY_EXISTS, RtlNtStatusToDosError(NTStatus.STATUS_DUPLICATE_OBJECTID));

         // You'd think these would be more or less obviously correct return values, but this API
         // actually does a pitiful job of producing valid return values.
@@ -20,6 +21,5 @@
         ////Assert.Equal(Win32ErrorCode.ERROR_PROFILE_NOT_FOUND, RtlNtStatusToDosError(NTStatus.STATUS_PCP_PROFILE_NOT_FOUND));
         ////Assert.Equal(Win32ErrorCode.ERROR_FILE_NOT_FOUND, RtlNtStatusToDosError(NTStatus.STATUS_NDIS_FILE_NOT_FOUND));
         ////Assert.Equal(Win32ErrorCode.ERROR_MUI_FILE_NOT_FOUND, RtlNtStatusToDosError(NTStatus.STATUS_MUI_FILE_NOT_FOUND));
-
     }
 }


better path.combine and compare file names operations

--- Assets/Plugins/Editor/JetBrains/RiderAssetPostprocessor.cs
+++ Assets/Plugins/Editor/JetBrains/RiderAssetPostprocessor.cs
@@ -11,16 +11,16 @@
 {
   public class RiderAssetPostprocessor : AssetPostprocessor
   {
-    private const string UNITY_PLAYER_PROJECT_NAME = "\\Assembly-CSharp.csproj";
-    private const string UNITY_EDITOR_PROJECT_NAME = "\\Assembly-CSharp-Editor.csproj";
+    private const string UNITY_PLAYER_PROJECT_NAME = "Assembly-CSharp.csproj";
+    private const string UNITY_EDITOR_PROJECT_NAME = "Assembly-CSharp-Editor.csproj";
     private const string UNITY_UNSAFE_KEYWORD = "-unsafe";
     private const string UNITY_DEFINE_KEYWORD = "-define:";
-    private const string PLAYER_PROJECT_MANUAL_CONFIG_RELATIVE_FILE_PATH = "/smcs.rsp";
+    private const string PLAYER_PROJECT_MANUAL_CONFIG_RELATIVE_FILE_PATH = "smcs.rsp";
     private static readonly string  PLAYER_PROJECT_MANUAL_CONFIG_ABSOLUTE_FILE_PATH
-      = UnityEngine.Application.dataPath + PLAYER_PROJECT_MANUAL_CONFIG_RELATIVE_FILE_PATH;
-    private const string EDITOR_PROJECT_MANUAL_CONFIG_RELATIVE_FILE_PATH = "/gmcs.rsp";
+      = Path.Combine(UnityEngine.Application.dataPath, PLAYER_PROJECT_MANUAL_CONFIG_RELATIVE_FILE_PATH);
+    private const string EDITOR_PROJECT_MANUAL_CONFIG_RELATIVE_FILE_PATH = "gmcs.rsp";
     private static readonly string  EDITOR_PROJECT_MANUAL_CONFIG_ABSOLUTE_FILE_PATH
-      = UnityEngine.Application.dataPath + EDITOR_PROJECT_MANUAL_CONFIG_RELATIVE_FILE_PATH;
+      = Path.Combine(UnityEngine.Application.dataPath, EDITOR_PROJECT_MANUAL_CONFIG_RELATIVE_FILE_PATH);

     public static void OnGeneratedCSProjectFiles()
     {
@@ -85,7 +85,7 @@

     private static void SetManuallyDefinedComilingSettings(string projectFile, XElement projectContentElement, XNamespace xmlns)
     {
-      var configPath = "";
+      string configPath;

       if (IsPlayerProjectFile(projectFile))
         configPath = PLAYER_PROJECT_MANUAL_CONFIG_ABSOLUTE_FILE_PATH;
@@ -164,12 +164,12 @@

     private static bool IsPlayerProjectFile(string projectFile)
     {
-      return projectFile.EndsWith(UNITY_PLAYER_PROJECT_NAME);
+      return Path.GetFileName(projectFile) == UNITY_PLAYER_PROJECT_NAME;
     }

     private static bool IsEditorProjectFile(string projectFile)
     {
-      return projectFile.EndsWith(UNITY_EDITOR_PROJECT_NAME);
+      return Path.GetFileName(projectFile) == UNITY_EDITOR_PROJECT_NAME;
     }

     // Helps resolve System.Linq under mono 4 - RIDER-573


IA: Event when controller is available for the first time

- fire event when controller model is initialized

--- Assets/VRTK/Scripts/Interactions/VRTK_ControllerActions.cs
+++ Assets/VRTK/Scripts/Interactions/VRTK_ControllerActions.cs
@@ -63,6 +63,11 @@
         public VRTK_ControllerElementHighlighters elementHighlighterOverrides;

         /// <summary>
+        /// Emitted when the controller model is available / rendered / initialised for the first time.
+        /// </summary>
+        public event ControllerActionsEventHandler ControllerModelAvailable;
+
+        /// <summary>
         /// Emitted when the controller model is toggled to be visible.
         /// </summary>
         [Obsolete("`VRTK_ControllerActions.ControllerModelVisible` has been replaced with `VRTK_ControllerEvents.ControllerVisible`. This method will be removed in a future version of VRTK.")]
@@ -85,6 +90,18 @@
             if (ControllerModelVisible != null)
             {
                 ControllerModelVisible(this, e);
+            }
+
+            // fire the event that the controllers are ready now
+            var controllerIndex = VRTK_DeviceFinder.GetControllerIndex(gameObject);
+            OnControllerModelAvailable(SetActionEvent(controllerIndex));
+        }
+
+        public virtual void OnControllerModelAvailable(ControllerActionsEventArgs e)
+        {
+            if (ControllerModelAvailable != null)
+            {
+                ControllerModelAvailable(this, e);
             }
         }


Tweak code gen.

Tweak code gen.

--- Gu.Roslyn.Asserts.Tests/Dump.cs
+++ Gu.Roslyn.Asserts.Tests/Dump.cs
@@ -14,23 +14,23 @@
     [Explicit("Script")]
     public static class Dump
     {
-        private static readonly Type[] NodeTypes = typeof(CompilationUnitSyntax)
-                                                   .Assembly.GetTypes()
-                                                   .Where(x => typeof(CSharpSyntaxNode).IsAssignableFrom(x) && x.IsPublic)
-                                                   .ToArray();
-
-        private static readonly Dictionary<Type, MethodInfo[]> Methods = typeof(SyntaxFactory)
+        private static readonly Dictionary<Type, MethodInfo[]> TypeFactoryMethodMap = typeof(SyntaxFactory)
                                                                                .GetMethods(BindingFlags.Public | BindingFlags.Static)
-                                                                                .Where(x => NodeTypes.Contains(x.ReturnType))
+                                                                                .Where(x => !x.IsAbstract && typeof(CSharpSyntaxNode).IsAssignableFrom(typeof(CSharpSyntaxNode)))
                                                                                .OrderBy(x => x.Name)
                                                                                .GroupBy(x => x.ReturnType)
                                                                                .ToDictionary(x => x.Key, x => x.ToArray());

-        [TestCaseSource(nameof(NodeTypes))]
-        public static void CodeGenNodes(Type type)
+        private static readonly Type[] NodeTypes = TypeFactoryMethodMap.Keys.ToArray();
+
+        [Test]
+        public static void CodeGenNodes()
         {
-            if (Methods.TryGetValue(type, out var candidates))
+            var stringBuilder = new StringBuilder();
+            foreach (var kvp in TypeFactoryMethodMap)
             {
+                var type = kvp.Key;
+                var candidates = kvp.Value;
                 var method = candidates.MaxBy(x => x.GetParameters().Length);
                 var parameters = method.GetParameters();
                 var variable = type.Name.Substring(0, 1).ToLower() + type.Name.Substring(1);
@@ -39,23 +39,22 @@
                     variable = variable.Substring(0, variable.Length - 6);
                 }

-                var stringBuilder = new StringBuilder()
-                    .AppendLine($"                case {type.Name} {variable}:")
-                    .AppendLine($"                    return this.AppendLine(\"SyntaxFactory.{method.Name}(\")")
-                    .AppendLine($"                               .PushIndent()");
-                foreach (var parameter in parameters)
+                stringBuilder.AppendLine($"                case {type.Name} {variable}:")
+                             .AppendLine($"                    return this.AppendLine(\"SyntaxFactory.{method.Name}(\")")
+                             .AppendLine($"                               .PushIndent()");
+                for (var i = 0; i < parameters.Length; i++)
                 {
-                    var commaOrParen = ReferenceEquals(parameter, parameters.Last()) ? ")" : ",";
-                    stringBuilder.AppendLine($"                                .WriteArgument(\"{parameter.Name}\", {variable}.{parameter.Name.Substring(0, 1).ToUpper() + parameter.Name.Substring(1)}, \"{commaOrParen}\")");
+                    var parameter = parameters[i];
+                    var property = parameter.Name.Substring(0, 1).ToUpper() + parameter.Name.Substring(1);
+                    var closeArg = i == parameters.Length - 1 ? ", closeArgumentList: true" : string.Empty;
+                    stringBuilder.AppendLine($"                                .WriteArgument(\"{parameter.Name}\", {variable}.{property}{closeArg})");
                 }

                 stringBuilder.AppendLine("                               .PopIndent();");
-                Console.Write(stringBuilder.ToString());
             }
-            else
-            {
-                Assert.Inconclusive();
-            }
+
+            var code = stringBuilder.ToString();
+            Console.Write(code);
         }

         [Test]


Reduce unnecessary profile update calls.

--- Aurora/Modules/Avatar/AuroraProfile/AvatarProfileModule.cs
+++ Aurora/Modules/Avatar/AuroraProfile/AvatarProfileModule.cs
@@ -576,13 +576,20 @@
         {
             IUserProfileInfo UPI = ProfileFrontend.GetUserProfile(remoteClient.AgentId);
             if (UPI == null)
-                return;
-            UPI.Interests.WantToMask = wantmask;
-            UPI.Interests.WantToText = wanttext;
-            UPI.Interests.CanDoMask = skillsmask;
-            UPI.Interests.CanDoText = skillstext;
-            UPI.Interests.Languages = languages;
-            ProfileFrontend.UpdateUserProfile(UPI);
+                return;
+            if (UPI.Interests.WantToMask != wantmask ||
+                UPI.Interests.WantToText != wanttext ||
+                UPI.Interests.CanDoMask != skillsmask ||
+                UPI.Interests.CanDoText != skillstext ||
+                UPI.Interests.Languages != languages)
+            {
+                UPI.Interests.WantToMask = wantmask;
+                UPI.Interests.WantToText = wanttext;
+                UPI.Interests.CanDoMask = skillsmask;
+                UPI.Interests.CanDoText = skillstext;
+                UPI.Interests.Languages = languages;
+                ProfileFrontend.UpdateUserProfile(UPI);
+            }
         }

         #endregion
@@ -638,18 +645,26 @@
         {
             IUserProfileInfo UPI = ProfileFrontend.GetUserProfile(remoteClient.AgentId);
             if (UPI == null)
-                return;
-
-            UPI.PrincipalID = remoteClient.AgentId;
-            UPI.Image = ImageID;
-            UPI.FirstLifeImage = FLImageID;
-            UPI.AboutText = AboutText;
-            UPI.FirstLifeAboutText = FLAboutText;
-            UPI.WebURL = WebProfileURL;
-
-            UPI.AllowPublish = allowpublish;
-            UPI.MaturePublish = maturepublish;
-            ProfileFrontend.UpdateUserProfile(UPI);
+                return;
+
+            if (UPI.Image != ImageID ||
+                UPI.FirstLifeImage != FLImageID ||
+                 UPI.AboutText != AboutText ||
+                 UPI.FirstLifeAboutText != FLAboutText ||
+                 UPI.WebURL != WebProfileURL ||
+                 UPI.AllowPublish != allowpublish ||
+                 UPI.MaturePublish != maturepublish)
+            {
+                UPI.Image = ImageID;
+                UPI.FirstLifeImage = FLImageID;
+                UPI.AboutText = AboutText;
+                UPI.FirstLifeAboutText = FLAboutText;
+                UPI.WebURL = WebProfileURL;
+
+                UPI.AllowPublish = allowpublish;
+                UPI.MaturePublish = maturepublish;
+                ProfileFrontend.UpdateUserProfile(UPI);
+            }
             SendProfile(remoteClient, UPI, remoteClient.AgentId, 16);
         }


Logic error if no handlers are registered

--- PusherClient/Pusher.cs
+++ PusherClient/Pusher.cs
@@ -364,6 +364,8 @@

             if (handler != null)
                 handler(this, error);
+            else
+                Pusher.Trace.TraceEvent(TraceEventType.Error, 0, error.ToString());
         }

         private bool AlreadySubscribed(string channelName)


Clarifies --date-filter help text.

Clarifies --date-filter help text.

--- src/gitnstats/Options.cs
+++ src/gitnstats/Options.cs
@@ -15,7 +15,7 @@
         [Option('b', "branch", HelpText = "Defaults to the currently active branch.")]
         public string BranchName { get; set; }

-        [Option('d', "date-filter", HelpText = "Specifies the oldest date to return. Defaults to no filter.")]
+        [Option('d', "date-filter", HelpText = "Get commits on or after this date. Defaults to no filter.")]
         public DateTime? DateFilter { get; set; }

         [Usage]


Removed using around private key access check

--- source/Core/Extensions/X509Certificate2Extensions.cs
+++ source/Core/Extensions/X509Certificate2Extensions.cs
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 using System.Security.Cryptography;
 using System.Security.Cryptography.X509Certificates;

@@ -24,10 +25,8 @@
         {
             try
             {
-                using (var pk = cert.PrivateKey)
-                {
-                    return true;
-                }
+                var pk = cert.PrivateKey;
+                return true;
             }
             catch (CryptographicException)
             {
@@ -35,4 +34,4 @@
             }
         }
     }
-}
+}


Heatmap changes to be able to call updates

--- ChalmersxTools/Views/TemperatureMeasurementToolView.cshtml
+++ ChalmersxTools/Views/TemperatureMeasurementToolView.cshtml
@@ -53,83 +53,85 @@
     <script src="https://github.com/pa7/heatmap.js/raw/develop/build/heatmap.min.js"></script>
     <script src="https://github.com/pa7/heatmap.js/raw/develop/plugins/gmaps-heatmap.js"></script>
     <script>
-        window.onload=function(){
-            // don't forget to add gmaps-heatmap.js
-            var myLatlng = new google.maps.LatLng(20.0, 15.0);
-            // map options,
-            var myOptions = {
-                zoom: 2,
-                center: myLatlng
-            };
-            // standard map
-            map = new google.maps.Map(document.getElementById("map-canvas"), myOptions);
-            // heatmap layer
-            heatmap = new HeatmapOverlay(map,
-              {
-                  // radius should be small ONLY if scaleRadius is true (or small radius is intended)
-                  "radius": 2,
-                  "maxOpacity": 1,
-                  // scales the radius based on map zoom
-                  "scaleRadius": true,
-                  // if set to false the heatmap uses the global maximum for colorization
-                  // if activated: uses the data maximum within the current map boundaries
-                  //   (there will always be a red spot with useLocalExtremas true)
-                  "useLocalExtrema": true,
-                  // which field name in your data represents the latitude - default "lat"
-                  latField: 'lat',
-                  // which field name in your data represents the longitude - default "lng"
-                  lngField: 'lng',
-                  // which field name in your data represents the data value - default "value"
-                  valueField: 'count'
-              }
-            );
+        // don't forget to add gmaps-heatmap.js
+        var myLatlng = new google.maps.LatLng(20.0, 15.0);
+        // map options,
+        var myOptions = {
+            zoom: 2,
+            center: myLatlng
+        };
+        // standard map
+        map = new google.maps.Map(document.getElementById("map-canvas"), myOptions);
+        // heatmap layer
+        heatmap = new HeatmapOverlay(map,
+            {
+                // radius should be small ONLY if scaleRadius is true (or small radius is intended)
+                "radius": 2,
+                "maxOpacity": 1,
+                // scales the radius based on map zoom
+                "scaleRadius": true,
+                // if set to false the heatmap uses the global maximum for colorization
+                // if activated: uses the data maximum within the current map boundaries
+                //   (there will always be a red spot with useLocalExtremas true)
+                "useLocalExtrema": true,
+                // which field name in your data represents the latitude - default "lat"
+                latField: 'lat',
+                // which field name in your data represents the longitude - default "lng"
+                lngField: 'lng',
+                // which field name in your data represents the data value - default "value"
+                valueField: 'count'
+            }
+        );

-            var day1 = {
-                min: -50,
-                max: 50,
-                data: [
-                    @for (int i = 0; i < @Model.Measurements.Count; i++)
+        var day1 = {
+            min: -50,
+            max: 50,
+            data: [
+                @for (int i = 0; i < @Model.Measurements.Count; i++)
+                {
+                    var measurement = Model.Measurements[i];
+                    <text>{ lat: @measurement.Coordinate.Latitude,
+                    lng: @measurement.Coordinate.Longitude,
+                    count: @measurement.Measurement1}
+                    </text>
+                    if (i < Model.Measurements.Count - 1)
                     {
-                        var measurement = Model.Measurements[i];
-                        <text>{ lat: @measurement.Coordinate.Latitude,
+                        <text>,</text>
+                    }
+                }
+            ]
+        };
+
+        var day2 = {
+            min: -50,
+            max: 50,
+            data: [
+                @for (int i = 0; i < @Model.Measurements.Count; i++)
+                {
+                    var measurement = Model.Measurements[i];
+                    <text>{ lat: @measurement.Coordinate.Latitude,
                         lng: @measurement.Coordinate.Longitude,
-                        count: @measurement.Measurement1}
-                        </text>
-                        if (i < Model.Measurements.Count - 1)
-                        {
-                            <text>,</text>
-                        }
+                        count: @measurement.Measurement2}
+                    </text>
+                    if (i < Model.Measurements.Count - 1)
+                    {
+                        <text>,</text>
                     }
-                ]
-            };
-
-            var day2 = {
-                min: -50,
-                max: 50,
-                data: [
-                    @for (int i = 0; i < @Model.Measurements.Count; i++)
-                    {
-                        var measurement = Model.Measurements[i];
-                        <text>{ lat: @measurement.Coordinate.Latitude,
-                            lng: @measurement.Coordinate.Longitude,
-                            count: @measurement.Measurement2}
-                        </text>
-                        if (i < Model.Measurements.Count - 1)
-                        {
-                            <text>,</text>
-                        }
-                    }
-                ]
-            };
+                }
+            ]
+        };

-            heatmap.setData(day1);
-        };
         function Day1() {
             heatmap.setData(day1);
         }
+
         function Day2() {
             heatmap.setData(day2);
         }
+
+        window.onload=function(){
+            heatmap.setData(day1);
+        };
     </script>
 </body>
 </html>


Code refactoring

Code refactoring

--- CyberDot.Encoding.Base65536.Tests/TheoryData/DataReader.cs
+++ CyberDot.Encoding.Base65536.Tests/TheoryData/DataReader.cs
@@ -17,7 +17,7 @@
         private static ReadOnlyDictionary<string, byte[]> singleBytesBinFiles;
         private static ReadOnlyDictionary<string, byte[]> singleBytesTxtFiles;

-        public static Tuple<string, byte[]> ReadString(string filePath)
+        public static Tuple<string, byte[]> Read(string filePath)
         {
             var fileInfo = new FileInfo(filePath);

@@ -27,7 +27,7 @@
         {
             var files = Directory.GetFiles($"..\\..\\..\\{folderPath}");
             return new ReadOnlyDictionary<string, byte[]>(
-                files.Select(ReadString).ToDictionary<Tuple<string, byte[]>, string, byte[]>(k => k.Item1, v => v.Item2));
+                files.Select(Read).ToDictionary<Tuple<string, byte[]>, string, byte[]>(k => k.Item1, v => v.Item2));
         }

         public static ReadOnlyDictionary<string, byte[]> DoubleBytesBinFiles


Revert "Revert "Bug Windows Store App""

Revert "Revert "Bug Windows Store App""

This reverts commit 9e3d6616911a3723fed023623fa23beb5af7ea1d.

--- client/Assets/Scripts/GameOverScript.cs
+++ client/Assets/Scripts/GameOverScript.cs
@@ -83,7 +83,7 @@
     void Update()
     {
         screenUpTime += Time.deltaTime*2;
-        if (refererScreen == "GameScreen" && (Input.GetKeyDown(KeyCode.Return) || Input.GetKeyDown(KeyCode.R) || Input.GetKeyDown(KeyCode.JoystickButton7)))
+        if (refererScreen == "GameScreen" && (Input.GetKeyDown(KeyCode.Return) /*|| Input.GetKeyDown(KeyCode.R)*/ || Input.GetKeyDown(KeyCode.JoystickButton7)))
         {
             PlayAgain();
         }


fix #186

fix #186

--- DamageMeter.Core/Database/Structures/Skills.cs
+++ DamageMeter.Core/Database/Structures/Skills.cs
@@ -116,7 +116,7 @@
                     where skills.Critic
                     select skills.Amount;
             }
-            var max = result.Count();
+            var max = result.Sum();
             _caching.Add(key, max);
             return max;
         }


Remove unused usings

Remove unused usings

--- src/AppHarbor.Tests/CommandDispatcherTest.cs
+++ src/AppHarbor.Tests/CommandDispatcherTest.cs
@@ -1,12 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using Castle.MicroKernel;
-using Moq;
-using Xunit;
-using Xunit.Extensions;
-
-namespace AppHarbor.Tests
+namespace AppHarbor.Tests
 {
 	public class CommandDispatcherTest
 	{


Don't report toggle-state for non-togglable items

--- src/Avalonia.FreeDesktop/DBusMenuExporter.cs
+++ src/Avalonia.FreeDesktop/DBusMenuExporter.cs
@@ -244,10 +244,8 @@

                     if (name == "toggle-state")
                     {
-                        if (item.IsChecked)
-                            return 1;
                         if (item.ToggleType != NativeMenuItemToggleType.None)
-                            return 0;
+                            return item.IsChecked ? 1 : 0;
                     }

                     if (name == "children-display")


Use a monospaced font for LINQPad logging output. (#915)

--- src/BenchmarkDotNet/Loggers/LinqPadLogger.cs
+++ src/BenchmarkDotNet/Loggers/LinqPadLogger.cs
@@ -57,7 +57,7 @@
         public void WriteLine(LogKind logKind, string text) => Write(logKind, Console.WriteLine, text);

         private void Write(LogKind logKind, Action<object> write, string text) =>
-            write(WithStyle(text, "color:" + GetColor(logKind)));
+            write(WithStyle(text, "color:" + GetColor(logKind) + ";font-family:Consolas,'Lucida Console','Courier New',monospace"));

         private object WithStyle(object data, string htmlStyle) =>
             withStyle.Invoke(null, new[] { data, htmlStyle });


fix!: removing misspelled field, add correctly spelled field

PiperOrigin-RevId: 428023165

Source-Link: https://github.com/googleapis/googleapis/commit/63d374da58fba5cf1308cf1df74b0b2afa1454f1

Source-Link: https://github.com/googleapis/googleapis-gen/commit/6be9b6c6b6c85face18adbdbdd3fc06356810b4a
Copy-Tag: eyJwIjoiYXBpcy9Hb29nbGUuQ2xvdWQuUHViU3ViLlYxLy5Pd2xCb3QueWFtbCIsImgiOiI2YmU5YjZjNmI2Yzg1ZmFjZTE4YWRiZGJkZDNmYzA2MzU2ODEwYjRhIn0=

--- apis/Google.Cloud.PubSub.V1/Google.Cloud.PubSub.V1/Pubsub.g.cs
+++ apis/Google.Cloud.PubSub.V1/Google.Cloud.PubSub.V1/Pubsub.g.cs
@@ -144,148 +144,148 @@
             "b2RpZnlfZGVhZGxpbmVfYWNrX2lkcxgEIAMoCRIoChtzdHJlYW1fYWNrX2Rl",
             "YWRsaW5lX3NlY29uZHMYBSABKAVCA+BBAhIRCgljbGllbnRfaWQYBiABKAkS",
             "IAoYbWF4X291dHN0YW5kaW5nX21lc3NhZ2VzGAcgASgDEh0KFW1heF9vdXRz",
-            "dGFuZGluZ19ieXRlcxgIIAEoAyKrBQoVU3RyZWFtaW5nUHVsbFJlc3BvbnNl",
+            "dGFuZGluZ19ieXRlcxgIIAEoAyKyBQoVU3RyZWFtaW5nUHVsbFJlc3BvbnNl",
             "EjwKEXJlY2VpdmVkX21lc3NhZ2VzGAEgAygLMiEuZ29vZ2xlLnB1YnN1Yi52",
-            "MS5SZWNlaXZlZE1lc3NhZ2USYAoXYWNrbm93bGVnZV9jb25maXJtYXRpb24Y",
-            "AiABKAsyPy5nb29nbGUucHVic3ViLnYxLlN0cmVhbWluZ1B1bGxSZXNwb25z",
-            "ZS5BY2tub3dsZWRnZUNvbmZpcm1hdGlvbhJvCiBtb2RpZnlfYWNrX2RlYWRs",
-            "aW5lX2NvbmZpcm1hdGlvbhgDIAEoCzJFLmdvb2dsZS5wdWJzdWIudjEuU3Ry",
-            "ZWFtaW5nUHVsbFJlc3BvbnNlLk1vZGlmeUFja0RlYWRsaW5lQ29uZmlybWF0",
-            "aW9uEl8KF3N1YnNjcmlwdGlvbl9wcm9wZXJ0aWVzGAQgASgLMj4uZ29vZ2xl",
-            "LnB1YnN1Yi52MS5TdHJlYW1pbmdQdWxsUmVzcG9uc2UuU3Vic2NyaXB0aW9u",
-            "UHJvcGVydGllcxpqChdBY2tub3dsZWRnZUNvbmZpcm1hdGlvbhITCgdhY2tf",
-            "aWRzGAEgAygJQgIIARIbCg9pbnZhbGlkX2Fja19pZHMYAiADKAlCAggBEh0K",
-            "EXVub3JkZXJlZF9hY2tfaWRzGAMgAygJQgIIARpRCh1Nb2RpZnlBY2tEZWFk",
-            "bGluZUNvbmZpcm1hdGlvbhITCgdhY2tfaWRzGAEgAygJQgIIARIbCg9pbnZh",
-            "bGlkX2Fja19pZHMYAiADKAlCAggBGmEKFlN1YnNjcmlwdGlvblByb3BlcnRp",
-            "ZXMSJQodZXhhY3RseV9vbmNlX2RlbGl2ZXJ5X2VuYWJsZWQYASABKAgSIAoY",
-            "bWVzc2FnZV9vcmRlcmluZ19lbmFibGVkGAIgASgIIoMCChVDcmVhdGVTbmFw",
-            "c2hvdFJlcXVlc3QSNAoEbmFtZRgBIAEoCUIm4EEC+kEgCh5wdWJzdWIuZ29v",
-            "Z2xlYXBpcy5jb20vU25hcHNob3QSQAoMc3Vic2NyaXB0aW9uGAIgASgJQirg",
-            "QQL6QSQKInB1YnN1Yi5nb29nbGVhcGlzLmNvbS9TdWJzY3JpcHRpb24SQwoG",
-            "bGFiZWxzGAMgAygLMjMuZ29vZ2xlLnB1YnN1Yi52MS5DcmVhdGVTbmFwc2hv",
-            "dFJlcXVlc3QuTGFiZWxzRW50cnkaLQoLTGFiZWxzRW50cnkSCwoDa2V5GAEg",
-            "ASgJEg0KBXZhbHVlGAIgASgJOgI4ASKAAQoVVXBkYXRlU25hcHNob3RSZXF1",
-            "ZXN0EjEKCHNuYXBzaG90GAEgASgLMhouZ29vZ2xlLnB1YnN1Yi52MS5TbmFw",
-            "c2hvdEID4EECEjQKC3VwZGF0ZV9tYXNrGAIgASgLMhouZ29vZ2xlLnByb3Rv",
-            "YnVmLkZpZWxkTWFza0ID4EECIq8CCghTbmFwc2hvdBIMCgRuYW1lGAEgASgJ",
-            "Ei8KBXRvcGljGAIgASgJQiD6QR0KG3B1YnN1Yi5nb29nbGVhcGlzLmNvbS9U",
-            "b3BpYxIvCgtleHBpcmVfdGltZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5U",
-            "aW1lc3RhbXASNgoGbGFiZWxzGAQgAygLMiYuZ29vZ2xlLnB1YnN1Yi52MS5T",
-            "bmFwc2hvdC5MYWJlbHNFbnRyeRotCgtMYWJlbHNFbnRyeRILCgNrZXkYASAB",
-            "KAkSDQoFdmFsdWUYAiABKAk6AjgBOkzqQUkKHnB1YnN1Yi5nb29nbGVhcGlz",
-            "LmNvbS9TbmFwc2hvdBIncHJvamVjdHMve3Byb2plY3R9L3NuYXBzaG90cy97",
-            "c25hcHNob3R9Ik4KEkdldFNuYXBzaG90UmVxdWVzdBI4CghzbmFwc2hvdBgB",
-            "IAEoCUIm4EEC+kEgCh5wdWJzdWIuZ29vZ2xlYXBpcy5jb20vU25hcHNob3Qi",
-            "gwEKFExpc3RTbmFwc2hvdHNSZXF1ZXN0EkQKB3Byb2plY3QYASABKAlCM+BB",
-            "AvpBLQorY2xvdWRyZXNvdXJjZW1hbmFnZXIuZ29vZ2xlYXBpcy5jb20vUHJv",
-            "amVjdBIRCglwYWdlX3NpemUYAiABKAUSEgoKcGFnZV90b2tlbhgDIAEoCSJf",
-            "ChVMaXN0U25hcHNob3RzUmVzcG9uc2USLQoJc25hcHNob3RzGAEgAygLMhou",
-            "Z29vZ2xlLnB1YnN1Yi52MS5TbmFwc2hvdBIXCg9uZXh0X3BhZ2VfdG9rZW4Y",
-            "AiABKAkiUQoVRGVsZXRlU25hcHNob3RSZXF1ZXN0EjgKCHNuYXBzaG90GAEg",
-            "ASgJQibgQQL6QSAKHnB1YnN1Yi5nb29nbGVhcGlzLmNvbS9TbmFwc2hvdCK+",
-            "AQoLU2Vla1JlcXVlc3QSQAoMc3Vic2NyaXB0aW9uGAEgASgJQirgQQL6QSQK",
-            "InB1YnN1Yi5nb29nbGVhcGlzLmNvbS9TdWJzY3JpcHRpb24SKgoEdGltZRgC",
-            "IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIABI3CghzbmFwc2hv",
-            "dBgDIAEoCUIj+kEgCh5wdWJzdWIuZ29vZ2xlYXBpcy5jb20vU25hcHNob3RI",
-            "AEIICgZ0YXJnZXQiDgoMU2Vla1Jlc3BvbnNlMqMLCglQdWJsaXNoZXIScQoL",
-            "Q3JlYXRlVG9waWMSFy5nb29nbGUucHVic3ViLnYxLlRvcGljGhcuZ29vZ2xl",
-            "LnB1YnN1Yi52MS5Ub3BpYyIwgtPkkwIjGh4vdjEve25hbWU9cHJvamVjdHMv",
-            "Ki90b3BpY3MvKn06ASraQQRuYW1lEn0KC1VwZGF0ZVRvcGljEiQuZ29vZ2xl",
-            "LnB1YnN1Yi52MS5VcGRhdGVUb3BpY1JlcXVlc3QaFy5nb29nbGUucHVic3Vi",
-            "LnYxLlRvcGljIi+C0+STAikyJC92MS97dG9waWMubmFtZT1wcm9qZWN0cy8q",
-            "L3RvcGljcy8qfToBKhKTAQoHUHVibGlzaBIgLmdvb2dsZS5wdWJzdWIudjEu",
-            "UHVibGlzaFJlcXVlc3QaIS5nb29nbGUucHVic3ViLnYxLlB1Ymxpc2hSZXNw",
-            "b25zZSJDgtPkkwIsIicvdjEve3RvcGljPXByb2plY3RzLyovdG9waWNzLyp9",
-            "OnB1Ymxpc2g6ASraQQ50b3BpYyxtZXNzYWdlcxJ3CghHZXRUb3BpYxIhLmdv",
-            "b2dsZS5wdWJzdWIudjEuR2V0VG9waWNSZXF1ZXN0GhcuZ29vZ2xlLnB1YnN1",
-            "Yi52MS5Ub3BpYyIvgtPkkwIhEh8vdjEve3RvcGljPXByb2plY3RzLyovdG9w",
-            "aWNzLyp92kEFdG9waWMSigEKCkxpc3RUb3BpY3MSIy5nb29nbGUucHVic3Vi",
-            "LnYxLkxpc3RUb3BpY3NSZXF1ZXN0GiQuZ29vZ2xlLnB1YnN1Yi52MS5MaXN0",
-            "VG9waWNzUmVzcG9uc2UiMYLT5JMCIRIfL3YxL3twcm9qZWN0PXByb2plY3Rz",
-            "Lyp9L3RvcGljc9pBB3Byb2plY3QSugEKFkxpc3RUb3BpY1N1YnNjcmlwdGlv",
-            "bnMSLy5nb29nbGUucHVic3ViLnYxLkxpc3RUb3BpY1N1YnNjcmlwdGlvbnNS",
-            "ZXF1ZXN0GjAuZ29vZ2xlLnB1YnN1Yi52MS5MaXN0VG9waWNTdWJzY3JpcHRp",
-            "b25zUmVzcG9uc2UiPYLT5JMCLxItL3YxL3t0b3BpYz1wcm9qZWN0cy8qL3Rv",
-            "cGljcy8qfS9zdWJzY3JpcHRpb25z2kEFdG9waWMSqgEKEkxpc3RUb3BpY1Nu",
-            "YXBzaG90cxIrLmdvb2dsZS5wdWJzdWIudjEuTGlzdFRvcGljU25hcHNob3Rz",
-            "UmVxdWVzdBosLmdvb2dsZS5wdWJzdWIudjEuTGlzdFRvcGljU25hcHNob3Rz",
-            "UmVzcG9uc2UiOYLT5JMCKxIpL3YxL3t0b3BpYz1wcm9qZWN0cy8qL3RvcGlj",
-            "cy8qfS9zbmFwc2hvdHPaQQV0b3BpYxJ8CgtEZWxldGVUb3BpYxIkLmdvb2ds",
-            "ZS5wdWJzdWIudjEuRGVsZXRlVG9waWNSZXF1ZXN0GhYuZ29vZ2xlLnByb3Rv",
-            "YnVmLkVtcHR5Ii+C0+STAiEqHy92MS97dG9waWM9cHJvamVjdHMvKi90b3Bp",
-            "Y3MvKn3aQQV0b3BpYxKtAQoSRGV0YWNoU3Vic2NyaXB0aW9uEisuZ29vZ2xl",
-            "LnB1YnN1Yi52MS5EZXRhY2hTdWJzY3JpcHRpb25SZXF1ZXN0GiwuZ29vZ2xl",
-            "LnB1YnN1Yi52MS5EZXRhY2hTdWJzY3JpcHRpb25SZXNwb25zZSI8gtPkkwI2",
-            "IjQvdjEve3N1YnNjcmlwdGlvbj1wcm9qZWN0cy8qL3N1YnNjcmlwdGlvbnMv",
-            "Kn06ZGV0YWNoGnDKQRVwdWJzdWIuZ29vZ2xlYXBpcy5jb23SQVVodHRwczov",
-            "L3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL2Nsb3VkLXBsYXRmb3JtLGh0dHBz",
-            "Oi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvcHVic3ViMqAVCgpTdWJzY3Jp",
-            "YmVyErQBChJDcmVhdGVTdWJzY3JpcHRpb24SHi5nb29nbGUucHVic3ViLnYx",
-            "LlN1YnNjcmlwdGlvbhoeLmdvb2dsZS5wdWJzdWIudjEuU3Vic2NyaXB0aW9u",
-            "Il6C0+STAioaJS92MS97bmFtZT1wcm9qZWN0cy8qL3N1YnNjcmlwdGlvbnMv",
-            "Kn06ASraQStuYW1lLHRvcGljLHB1c2hfY29uZmlnLGFja19kZWFkbGluZV9z",
-            "ZWNvbmRzEqEBCg9HZXRTdWJzY3JpcHRpb24SKC5nb29nbGUucHVic3ViLnYx",
-            "LkdldFN1YnNjcmlwdGlvblJlcXVlc3QaHi5nb29nbGUucHVic3ViLnYxLlN1",
-            "YnNjcmlwdGlvbiJEgtPkkwIvEi0vdjEve3N1YnNjcmlwdGlvbj1wcm9qZWN0",
-            "cy8qL3N1YnNjcmlwdGlvbnMvKn3aQQxzdWJzY3JpcHRpb24SoAEKElVwZGF0",
-            "ZVN1YnNjcmlwdGlvbhIrLmdvb2dsZS5wdWJzdWIudjEuVXBkYXRlU3Vic2Ny",
-            "aXB0aW9uUmVxdWVzdBoeLmdvb2dsZS5wdWJzdWIudjEuU3Vic2NyaXB0aW9u",
-            "Ij2C0+STAjcyMi92MS97c3Vic2NyaXB0aW9uLm5hbWU9cHJvamVjdHMvKi9z",
-            "dWJzY3JpcHRpb25zLyp9OgEqEqYBChFMaXN0U3Vic2NyaXB0aW9ucxIqLmdv",
-            "b2dsZS5wdWJzdWIudjEuTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0GisuZ29v",
-            "Z2xlLnB1YnN1Yi52MS5MaXN0U3Vic2NyaXB0aW9uc1Jlc3BvbnNlIjiC0+ST",
-            "AigSJi92MS97cHJvamVjdD1wcm9qZWN0cy8qfS9zdWJzY3JpcHRpb25z2kEH",
-            "cHJvamVjdBKfAQoSRGVsZXRlU3Vic2NyaXB0aW9uEisuZ29vZ2xlLnB1YnN1",
-            "Yi52MS5EZWxldGVTdWJzY3JpcHRpb25SZXF1ZXN0GhYuZ29vZ2xlLnByb3Rv",
-            "YnVmLkVtcHR5IkSC0+STAi8qLS92MS97c3Vic2NyaXB0aW9uPXByb2plY3Rz",
-            "Lyovc3Vic2NyaXB0aW9ucy8qfdpBDHN1YnNjcmlwdGlvbhLPAQoRTW9kaWZ5",
-            "QWNrRGVhZGxpbmUSKi5nb29nbGUucHVic3ViLnYxLk1vZGlmeUFja0RlYWRs",
-            "aW5lUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSJ2gtPkkwJEIj8v",
-            "djEve3N1YnNjcmlwdGlvbj1wcm9qZWN0cy8qL3N1YnNjcmlwdGlvbnMvKn06",
-            "bW9kaWZ5QWNrRGVhZGxpbmU6ASraQSlzdWJzY3JpcHRpb24sYWNrX2lkcyxh",
-            "Y2tfZGVhZGxpbmVfc2Vjb25kcxKoAQoLQWNrbm93bGVkZ2USJC5nb29nbGUu",
-            "cHVic3ViLnYxLkFja25vd2xlZGdlUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1",
-            "Zi5FbXB0eSJbgtPkkwI+IjkvdjEve3N1YnNjcmlwdGlvbj1wcm9qZWN0cy8q",
-            "L3N1YnNjcmlwdGlvbnMvKn06YWNrbm93bGVkZ2U6ASraQRRzdWJzY3JpcHRp",
-            "b24sYWNrX2lkcxLQAQoEUHVsbBIdLmdvb2dsZS5wdWJzdWIudjEuUHVsbFJl",
-            "cXVlc3QaHi5nb29nbGUucHVic3ViLnYxLlB1bGxSZXNwb25zZSKIAYLT5JMC",
-            "NyIyL3YxL3tzdWJzY3JpcHRpb249cHJvamVjdHMvKi9zdWJzY3JpcHRpb25z",
-            "Lyp9OnB1bGw6ASraQSxzdWJzY3JpcHRpb24scmV0dXJuX2ltbWVkaWF0ZWx5",
-            "LG1heF9tZXNzYWdlc9pBGXN1YnNjcmlwdGlvbixtYXhfbWVzc2FnZXMSZgoN",
-            "U3RyZWFtaW5nUHVsbBImLmdvb2dsZS5wdWJzdWIudjEuU3RyZWFtaW5nUHVs",
-            "bFJlcXVlc3QaJy5nb29nbGUucHVic3ViLnYxLlN0cmVhbWluZ1B1bGxSZXNw",
-            "b25zZSIAKAEwARK7AQoQTW9kaWZ5UHVzaENvbmZpZxIpLmdvb2dsZS5wdWJz",
-            "dWIudjEuTW9kaWZ5UHVzaENvbmZpZ1JlcXVlc3QaFi5nb29nbGUucHJvdG9i",
-            "dWYuRW1wdHkiZILT5JMCQyI+L3YxL3tzdWJzY3JpcHRpb249cHJvamVjdHMv",
-            "Ki9zdWJzY3JpcHRpb25zLyp9Om1vZGlmeVB1c2hDb25maWc6ASraQRhzdWJz",
-            "Y3JpcHRpb24scHVzaF9jb25maWcSiQEKC0dldFNuYXBzaG90EiQuZ29vZ2xl",
-            "LnB1YnN1Yi52MS5HZXRTbmFwc2hvdFJlcXVlc3QaGi5nb29nbGUucHVic3Vi",
-            "LnYxLlNuYXBzaG90IjiC0+STAicSJS92MS97c25hcHNob3Q9cHJvamVjdHMv",
-            "Ki9zbmFwc2hvdHMvKn3aQQhzbmFwc2hvdBKWAQoNTGlzdFNuYXBzaG90cxIm",
-            "Lmdvb2dsZS5wdWJzdWIudjEuTGlzdFNuYXBzaG90c1JlcXVlc3QaJy5nb29n",
-            "bGUucHVic3ViLnYxLkxpc3RTbmFwc2hvdHNSZXNwb25zZSI0gtPkkwIkEiIv",
-            "djEve3Byb2plY3Q9cHJvamVjdHMvKn0vc25hcHNob3Rz2kEHcHJvamVjdBKX",
-            "AQoOQ3JlYXRlU25hcHNob3QSJy5nb29nbGUucHVic3ViLnYxLkNyZWF0ZVNu",
-            "YXBzaG90UmVxdWVzdBoaLmdvb2dsZS5wdWJzdWIudjEuU25hcHNob3QiQILT",
-            "5JMCJhohL3YxL3tuYW1lPXByb2plY3RzLyovc25hcHNob3RzLyp9OgEq2kER",
-            "bmFtZSxzdWJzY3JpcHRpb24SjAEKDlVwZGF0ZVNuYXBzaG90EicuZ29vZ2xl",
-            "LnB1YnN1Yi52MS5VcGRhdGVTbmFwc2hvdFJlcXVlc3QaGi5nb29nbGUucHVi",
-            "c3ViLnYxLlNuYXBzaG90IjWC0+STAi8yKi92MS97c25hcHNob3QubmFtZT1w",
-            "cm9qZWN0cy8qL3NuYXBzaG90cy8qfToBKhKLAQoORGVsZXRlU25hcHNob3QS",
-            "Jy5nb29nbGUucHVic3ViLnYxLkRlbGV0ZVNuYXBzaG90UmVxdWVzdBoWLmdv",
-            "b2dsZS5wcm90b2J1Zi5FbXB0eSI4gtPkkwInKiUvdjEve3NuYXBzaG90PXBy",
-            "b2plY3RzLyovc25hcHNob3RzLyp92kEIc25hcHNob3QShAEKBFNlZWsSHS5n",
-            "b29nbGUucHVic3ViLnYxLlNlZWtSZXF1ZXN0Gh4uZ29vZ2xlLnB1YnN1Yi52",
-            "MS5TZWVrUmVzcG9uc2UiPYLT5JMCNyIyL3YxL3tzdWJzY3JpcHRpb249cHJv",
-            "amVjdHMvKi9zdWJzY3JpcHRpb25zLyp9OnNlZWs6ASoacMpBFXB1YnN1Yi5n",
-            "b29nbGVhcGlzLmNvbdJBVWh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1",
-            "dGgvY2xvdWQtcGxhdGZvcm0saHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20v",
-            "YXV0aC9wdWJzdWJCrgEKFGNvbS5nb29nbGUucHVic3ViLnYxQgtQdWJzdWJQ",
-            "cm90b1ABWjZnb29nbGUuZ29sYW5nLm9yZy9nZW5wcm90by9nb29nbGVhcGlz",
-            "L3B1YnN1Yi92MTtwdWJzdWL4AQGqAhZHb29nbGUuQ2xvdWQuUHViU3ViLlYx",
-            "ygIWR29vZ2xlXENsb3VkXFB1YlN1YlxWMeoCGUdvb2dsZTo6Q2xvdWQ6OlB1",
-            "YlN1Yjo6VjFiBnByb3RvMw=="));
+            "MS5SZWNlaXZlZE1lc3NhZ2USYQoYYWNrbm93bGVkZ2VfY29uZmlybWF0aW9u",
+            "GAUgASgLMj8uZ29vZ2xlLnB1YnN1Yi52MS5TdHJlYW1pbmdQdWxsUmVzcG9u",
+            "c2UuQWNrbm93bGVkZ2VDb25maXJtYXRpb24SbwogbW9kaWZ5X2Fja19kZWFk",
+            "bGluZV9jb25maXJtYXRpb24YAyABKAsyRS5nb29nbGUucHVic3ViLnYxLlN0",
+            "cmVhbWluZ1B1bGxSZXNwb25zZS5Nb2RpZnlBY2tEZWFkbGluZUNvbmZpcm1h",
+            "dGlvbhJfChdzdWJzY3JpcHRpb25fcHJvcGVydGllcxgEIAEoCzI+Lmdvb2ds",
+            "ZS5wdWJzdWIudjEuU3RyZWFtaW5nUHVsbFJlc3BvbnNlLlN1YnNjcmlwdGlv",
+            "blByb3BlcnRpZXMaagoXQWNrbm93bGVkZ2VDb25maXJtYXRpb24SEwoHYWNr",
+            "X2lkcxgBIAMoCUICCAESGwoPaW52YWxpZF9hY2tfaWRzGAIgAygJQgIIARId",
+            "ChF1bm9yZGVyZWRfYWNrX2lkcxgDIAMoCUICCAEaUQodTW9kaWZ5QWNrRGVh",
+            "ZGxpbmVDb25maXJtYXRpb24SEwoHYWNrX2lkcxgBIAMoCUICCAESGwoPaW52",
+            "YWxpZF9hY2tfaWRzGAIgAygJQgIIARphChZTdWJzY3JpcHRpb25Qcm9wZXJ0",
+            "aWVzEiUKHWV4YWN0bHlfb25jZV9kZWxpdmVyeV9lbmFibGVkGAEgASgIEiAK",
+            "GG1lc3NhZ2Vfb3JkZXJpbmdfZW5hYmxlZBgCIAEoCEoECAIQAyKDAgoVQ3Jl",
+            "YXRlU25hcHNob3RSZXF1ZXN0EjQKBG5hbWUYASABKAlCJuBBAvpBIAoecHVi",
+            "c3ViLmdvb2dsZWFwaXMuY29tL1NuYXBzaG90EkAKDHN1YnNjcmlwdGlvbhgC",
+            "IAEoCUIq4EEC+kEkCiJwdWJzdWIuZ29vZ2xlYXBpcy5jb20vU3Vic2NyaXB0",
+            "aW9uEkMKBmxhYmVscxgDIAMoCzIzLmdvb2dsZS5wdWJzdWIudjEuQ3JlYXRl",
+            "U25hcHNob3RSZXF1ZXN0LkxhYmVsc0VudHJ5Gi0KC0xhYmVsc0VudHJ5EgsK",
+            "A2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEigAEKFVVwZGF0ZVNuYXBz",
+            "aG90UmVxdWVzdBIxCghzbmFwc2hvdBgBIAEoCzIaLmdvb2dsZS5wdWJzdWIu",
+            "djEuU25hcHNob3RCA+BBAhI0Cgt1cGRhdGVfbWFzaxgCIAEoCzIaLmdvb2ds",
+            "ZS5wcm90b2J1Zi5GaWVsZE1hc2tCA+BBAiKvAgoIU25hcHNob3QSDAoEbmFt",
+            "ZRgBIAEoCRIvCgV0b3BpYxgCIAEoCUIg+kEdChtwdWJzdWIuZ29vZ2xlYXBp",
+            "cy5jb20vVG9waWMSLwoLZXhwaXJlX3RpbWUYAyABKAsyGi5nb29nbGUucHJv",
+            "dG9idWYuVGltZXN0YW1wEjYKBmxhYmVscxgEIAMoCzImLmdvb2dsZS5wdWJz",
+            "dWIudjEuU25hcHNob3QuTGFiZWxzRW50cnkaLQoLTGFiZWxzRW50cnkSCwoD",
+            "a2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ATpM6kFJCh5wdWJzdWIuZ29v",
+            "Z2xlYXBpcy5jb20vU25hcHNob3QSJ3Byb2plY3RzL3twcm9qZWN0fS9zbmFw",
+            "c2hvdHMve3NuYXBzaG90fSJOChJHZXRTbmFwc2hvdFJlcXVlc3QSOAoIc25h",
+            "cHNob3QYASABKAlCJuBBAvpBIAoecHVic3ViLmdvb2dsZWFwaXMuY29tL1Nu",
+            "YXBzaG90IoMBChRMaXN0U25hcHNob3RzUmVxdWVzdBJECgdwcm9qZWN0GAEg",
+            "ASgJQjPgQQL6QS0KK2Nsb3VkcmVzb3VyY2VtYW5hZ2VyLmdvb2dsZWFwaXMu",
+            "Y29tL1Byb2plY3QSEQoJcGFnZV9zaXplGAIgASgFEhIKCnBhZ2VfdG9rZW4Y",
+            "AyABKAkiXwoVTGlzdFNuYXBzaG90c1Jlc3BvbnNlEi0KCXNuYXBzaG90cxgB",
+            "IAMoCzIaLmdvb2dsZS5wdWJzdWIudjEuU25hcHNob3QSFwoPbmV4dF9wYWdl",
+            "X3Rva2VuGAIgASgJIlEKFURlbGV0ZVNuYXBzaG90UmVxdWVzdBI4CghzbmFw",
+            "c2hvdBgBIAEoCUIm4EEC+kEgCh5wdWJzdWIuZ29vZ2xlYXBpcy5jb20vU25h",
+            "cHNob3QivgEKC1NlZWtSZXF1ZXN0EkAKDHN1YnNjcmlwdGlvbhgBIAEoCUIq",
+            "4EEC+kEkCiJwdWJzdWIuZ29vZ2xlYXBpcy5jb20vU3Vic2NyaXB0aW9uEioK",
+            "BHRpbWUYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAASNwoI",
+            "c25hcHNob3QYAyABKAlCI/pBIAoecHVic3ViLmdvb2dsZWFwaXMuY29tL1Nu",
+            "YXBzaG90SABCCAoGdGFyZ2V0Ig4KDFNlZWtSZXNwb25zZTKjCwoJUHVibGlz",
+            "aGVyEnEKC0NyZWF0ZVRvcGljEhcuZ29vZ2xlLnB1YnN1Yi52MS5Ub3BpYxoX",
+            "Lmdvb2dsZS5wdWJzdWIudjEuVG9waWMiMILT5JMCIxoeL3YxL3tuYW1lPXBy",
+            "b2plY3RzLyovdG9waWNzLyp9OgEq2kEEbmFtZRJ9CgtVcGRhdGVUb3BpYxIk",
+            "Lmdvb2dsZS5wdWJzdWIudjEuVXBkYXRlVG9waWNSZXF1ZXN0GhcuZ29vZ2xl",
+            "LnB1YnN1Yi52MS5Ub3BpYyIvgtPkkwIpMiQvdjEve3RvcGljLm5hbWU9cHJv",
+            "amVjdHMvKi90b3BpY3MvKn06ASoSkwEKB1B1Ymxpc2gSIC5nb29nbGUucHVi",
+            "c3ViLnYxLlB1Ymxpc2hSZXF1ZXN0GiEuZ29vZ2xlLnB1YnN1Yi52MS5QdWJs",
+            "aXNoUmVzcG9uc2UiQ4LT5JMCLCInL3YxL3t0b3BpYz1wcm9qZWN0cy8qL3Rv",
+            "cGljcy8qfTpwdWJsaXNoOgEq2kEOdG9waWMsbWVzc2FnZXMSdwoIR2V0VG9w",
+            "aWMSIS5nb29nbGUucHVic3ViLnYxLkdldFRvcGljUmVxdWVzdBoXLmdvb2ds",
+            "ZS5wdWJzdWIudjEuVG9waWMiL4LT5JMCIRIfL3YxL3t0b3BpYz1wcm9qZWN0",
+            "cy8qL3RvcGljcy8qfdpBBXRvcGljEooBCgpMaXN0VG9waWNzEiMuZ29vZ2xl",
+            "LnB1YnN1Yi52MS5MaXN0VG9waWNzUmVxdWVzdBokLmdvb2dsZS5wdWJzdWIu",
+            "djEuTGlzdFRvcGljc1Jlc3BvbnNlIjGC0+STAiESHy92MS97cHJvamVjdD1w",
+            "cm9qZWN0cy8qfS90b3BpY3PaQQdwcm9qZWN0EroBChZMaXN0VG9waWNTdWJz",
+            "Y3JpcHRpb25zEi8uZ29vZ2xlLnB1YnN1Yi52MS5MaXN0VG9waWNTdWJzY3Jp",
+            "cHRpb25zUmVxdWVzdBowLmdvb2dsZS5wdWJzdWIudjEuTGlzdFRvcGljU3Vi",
+            "c2NyaXB0aW9uc1Jlc3BvbnNlIj2C0+STAi8SLS92MS97dG9waWM9cHJvamVj",
+            "dHMvKi90b3BpY3MvKn0vc3Vic2NyaXB0aW9uc9pBBXRvcGljEqoBChJMaXN0",
+            "VG9waWNTbmFwc2hvdHMSKy5nb29nbGUucHVic3ViLnYxLkxpc3RUb3BpY1Nu",
+            "YXBzaG90c1JlcXVlc3QaLC5nb29nbGUucHVic3ViLnYxLkxpc3RUb3BpY1Nu",
+            "YXBzaG90c1Jlc3BvbnNlIjmC0+STAisSKS92MS97dG9waWM9cHJvamVjdHMv",
+            "Ki90b3BpY3MvKn0vc25hcHNob3Rz2kEFdG9waWMSfAoLRGVsZXRlVG9waWMS",
+            "JC5nb29nbGUucHVic3ViLnYxLkRlbGV0ZVRvcGljUmVxdWVzdBoWLmdvb2ds",
+            "ZS5wcm90b2J1Zi5FbXB0eSIvgtPkkwIhKh8vdjEve3RvcGljPXByb2plY3Rz",
+            "LyovdG9waWNzLyp92kEFdG9waWMSrQEKEkRldGFjaFN1YnNjcmlwdGlvbhIr",
+            "Lmdvb2dsZS5wdWJzdWIudjEuRGV0YWNoU3Vic2NyaXB0aW9uUmVxdWVzdBos",
+            "Lmdvb2dsZS5wdWJzdWIudjEuRGV0YWNoU3Vic2NyaXB0aW9uUmVzcG9uc2Ui",
+            "PILT5JMCNiI0L3YxL3tzdWJzY3JpcHRpb249cHJvamVjdHMvKi9zdWJzY3Jp",
+            "cHRpb25zLyp9OmRldGFjaBpwykEVcHVic3ViLmdvb2dsZWFwaXMuY29t0kFV",
+            "aHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9jbG91ZC1wbGF0Zm9y",
+            "bSxodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL3B1YnN1YjKgFQoK",
+            "U3Vic2NyaWJlchK0AQoSQ3JlYXRlU3Vic2NyaXB0aW9uEh4uZ29vZ2xlLnB1",
+            "YnN1Yi52MS5TdWJzY3JpcHRpb24aHi5nb29nbGUucHVic3ViLnYxLlN1YnNj",
+            "cmlwdGlvbiJegtPkkwIqGiUvdjEve25hbWU9cHJvamVjdHMvKi9zdWJzY3Jp",
+            "cHRpb25zLyp9OgEq2kErbmFtZSx0b3BpYyxwdXNoX2NvbmZpZyxhY2tfZGVh",
+            "ZGxpbmVfc2Vjb25kcxKhAQoPR2V0U3Vic2NyaXB0aW9uEiguZ29vZ2xlLnB1",
+            "YnN1Yi52MS5HZXRTdWJzY3JpcHRpb25SZXF1ZXN0Gh4uZ29vZ2xlLnB1YnN1",
+            "Yi52MS5TdWJzY3JpcHRpb24iRILT5JMCLxItL3YxL3tzdWJzY3JpcHRpb249",
+            "cHJvamVjdHMvKi9zdWJzY3JpcHRpb25zLyp92kEMc3Vic2NyaXB0aW9uEqAB",
+            "ChJVcGRhdGVTdWJzY3JpcHRpb24SKy5nb29nbGUucHVic3ViLnYxLlVwZGF0",
+            "ZVN1YnNjcmlwdGlvblJlcXVlc3QaHi5nb29nbGUucHVic3ViLnYxLlN1YnNj",
+            "cmlwdGlvbiI9gtPkkwI3MjIvdjEve3N1YnNjcmlwdGlvbi5uYW1lPXByb2pl",
+            "Y3RzLyovc3Vic2NyaXB0aW9ucy8qfToBKhKmAQoRTGlzdFN1YnNjcmlwdGlv",
+            "bnMSKi5nb29nbGUucHVic3ViLnYxLkxpc3RTdWJzY3JpcHRpb25zUmVxdWVz",
+            "dBorLmdvb2dsZS5wdWJzdWIudjEuTGlzdFN1YnNjcmlwdGlvbnNSZXNwb25z",
+            "ZSI4gtPkkwIoEiYvdjEve3Byb2plY3Q9cHJvamVjdHMvKn0vc3Vic2NyaXB0",
+            "aW9uc9pBB3Byb2plY3QSnwEKEkRlbGV0ZVN1YnNjcmlwdGlvbhIrLmdvb2ds",
+            "ZS5wdWJzdWIudjEuRGVsZXRlU3Vic2NyaXB0aW9uUmVxdWVzdBoWLmdvb2ds",
+            "ZS5wcm90b2J1Zi5FbXB0eSJEgtPkkwIvKi0vdjEve3N1YnNjcmlwdGlvbj1w",
+            "cm9qZWN0cy8qL3N1YnNjcmlwdGlvbnMvKn3aQQxzdWJzY3JpcHRpb24SzwEK",
+            "EU1vZGlmeUFja0RlYWRsaW5lEiouZ29vZ2xlLnB1YnN1Yi52MS5Nb2RpZnlB",
+            "Y2tEZWFkbGluZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkidoLT",
+            "5JMCRCI/L3YxL3tzdWJzY3JpcHRpb249cHJvamVjdHMvKi9zdWJzY3JpcHRp",
+            "b25zLyp9Om1vZGlmeUFja0RlYWRsaW5lOgEq2kEpc3Vic2NyaXB0aW9uLGFj",
+            "a19pZHMsYWNrX2RlYWRsaW5lX3NlY29uZHMSqAEKC0Fja25vd2xlZGdlEiQu",
+            "Z29vZ2xlLnB1YnN1Yi52MS5BY2tub3dsZWRnZVJlcXVlc3QaFi5nb29nbGUu",
+            "cHJvdG9idWYuRW1wdHkiW4LT5JMCPiI5L3YxL3tzdWJzY3JpcHRpb249cHJv",
+            "amVjdHMvKi9zdWJzY3JpcHRpb25zLyp9OmFja25vd2xlZGdlOgEq2kEUc3Vi",
+            "c2NyaXB0aW9uLGFja19pZHMS0AEKBFB1bGwSHS5nb29nbGUucHVic3ViLnYx",
+            "LlB1bGxSZXF1ZXN0Gh4uZ29vZ2xlLnB1YnN1Yi52MS5QdWxsUmVzcG9uc2Ui",
+            "iAGC0+STAjciMi92MS97c3Vic2NyaXB0aW9uPXByb2plY3RzLyovc3Vic2Ny",
+            "aXB0aW9ucy8qfTpwdWxsOgEq2kEsc3Vic2NyaXB0aW9uLHJldHVybl9pbW1l",
+            "ZGlhdGVseSxtYXhfbWVzc2FnZXPaQRlzdWJzY3JpcHRpb24sbWF4X21lc3Nh",
+            "Z2VzEmYKDVN0cmVhbWluZ1B1bGwSJi5nb29nbGUucHVic3ViLnYxLlN0cmVh",
+            "bWluZ1B1bGxSZXF1ZXN0GicuZ29vZ2xlLnB1YnN1Yi52MS5TdHJlYW1pbmdQ",
+            "dWxsUmVzcG9uc2UiACgBMAESuwEKEE1vZGlmeVB1c2hDb25maWcSKS5nb29n",
+            "bGUucHVic3ViLnYxLk1vZGlmeVB1c2hDb25maWdSZXF1ZXN0GhYuZ29vZ2xl",
+            "LnByb3RvYnVmLkVtcHR5ImSC0+STAkMiPi92MS97c3Vic2NyaXB0aW9uPXBy",
+            "b2plY3RzLyovc3Vic2NyaXB0aW9ucy8qfTptb2RpZnlQdXNoQ29uZmlnOgEq",
+            "2kEYc3Vic2NyaXB0aW9uLHB1c2hfY29uZmlnEokBCgtHZXRTbmFwc2hvdBIk",
+            "Lmdvb2dsZS5wdWJzdWIudjEuR2V0U25hcHNob3RSZXF1ZXN0GhouZ29vZ2xl",
+            "LnB1YnN1Yi52MS5TbmFwc2hvdCI4gtPkkwInEiUvdjEve3NuYXBzaG90PXBy",
+            "b2plY3RzLyovc25hcHNob3RzLyp92kEIc25hcHNob3QSlgEKDUxpc3RTbmFw",
+            "c2hvdHMSJi5nb29nbGUucHVic3ViLnYxLkxpc3RTbmFwc2hvdHNSZXF1ZXN0",
+            "GicuZ29vZ2xlLnB1YnN1Yi52MS5MaXN0U25hcHNob3RzUmVzcG9uc2UiNILT",
+            "5JMCJBIiL3YxL3twcm9qZWN0PXByb2plY3RzLyp9L3NuYXBzaG90c9pBB3By",
+            "b2plY3QSlwEKDkNyZWF0ZVNuYXBzaG90EicuZ29vZ2xlLnB1YnN1Yi52MS5D",
+            "cmVhdGVTbmFwc2hvdFJlcXVlc3QaGi5nb29nbGUucHVic3ViLnYxLlNuYXBz",
+            "aG90IkCC0+STAiYaIS92MS97bmFtZT1wcm9qZWN0cy8qL3NuYXBzaG90cy8q",
+            "fToBKtpBEW5hbWUsc3Vic2NyaXB0aW9uEowBCg5VcGRhdGVTbmFwc2hvdBIn",
+            "Lmdvb2dsZS5wdWJzdWIudjEuVXBkYXRlU25hcHNob3RSZXF1ZXN0GhouZ29v",
+            "Z2xlLnB1YnN1Yi52MS5TbmFwc2hvdCI1gtPkkwIvMiovdjEve3NuYXBzaG90",
+            "Lm5hbWU9cHJvamVjdHMvKi9zbmFwc2hvdHMvKn06ASoSiwEKDkRlbGV0ZVNu",
+            "YXBzaG90EicuZ29vZ2xlLnB1YnN1Yi52MS5EZWxldGVTbmFwc2hvdFJlcXVl",
+            "c3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiOILT5JMCJyolL3YxL3tzbmFw",
+            "c2hvdD1wcm9qZWN0cy8qL3NuYXBzaG90cy8qfdpBCHNuYXBzaG90EoQBCgRT",
+            "ZWVrEh0uZ29vZ2xlLnB1YnN1Yi52MS5TZWVrUmVxdWVzdBoeLmdvb2dsZS5w",
+            "dWJzdWIudjEuU2Vla1Jlc3BvbnNlIj2C0+STAjciMi92MS97c3Vic2NyaXB0",
+            "aW9uPXByb2plY3RzLyovc3Vic2NyaXB0aW9ucy8qfTpzZWVrOgEqGnDKQRVw",
+            "dWJzdWIuZ29vZ2xlYXBpcy5jb23SQVVodHRwczovL3d3dy5nb29nbGVhcGlz",
+            "LmNvbS9hdXRoL2Nsb3VkLXBsYXRmb3JtLGh0dHBzOi8vd3d3Lmdvb2dsZWFw",
+            "aXMuY29tL2F1dGgvcHVic3ViQq4BChRjb20uZ29vZ2xlLnB1YnN1Yi52MUIL",
+            "UHVic3ViUHJvdG9QAVo2Z29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29v",
+            "Z2xlYXBpcy9wdWJzdWIvdjE7cHVic3Vi+AEBqgIWR29vZ2xlLkNsb3VkLlB1",
+            "YlN1Yi5WMcoCFkdvb2dsZVxDbG91ZFxQdWJTdWJcVjHqAhlHb29nbGU6OkNs",
+            "b3VkOjpQdWJTdWI6OlYxYgZwcm90bzM="));
       descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
           new pbr::FileDescriptor[] { global::Google.Api.AnnotationsReflection.Descriptor, global::Google.Api.ClientReflection.Descriptor, global::Google.Api.FieldBehaviorReflection.Descriptor, global::Google.Api.ResourceReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.DurationReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.EmptyReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.FieldMaskReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, global::Google.Cloud.PubSub.V1.SchemaReflection.Descriptor, },
           new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
@@ -324,7 +324,7 @@
             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.PubSub.V1.ModifyAckDeadlineRequest), global::Google.Cloud.PubSub.V1.ModifyAckDeadlineRequest.Parser, new[]{ "Subscription", "AckIds", "AckDeadlineSeconds" }, null, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.PubSub.V1.AcknowledgeRequest), global::Google.Cloud.PubSub.V1.AcknowledgeRequest.Parser, new[]{ "Subscription", "AckIds" }, null, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.PubSub.V1.StreamingPullRequest), global::Google.Cloud.PubSub.V1.StreamingPullRequest.Parser, new[]{ "Subscription", "AckIds", "ModifyDeadlineSeconds", "ModifyDeadlineAckIds", "StreamAckDeadlineSeconds", "ClientId", "MaxOutstandingMessages", "MaxOutstandingBytes" }, null, null, null, null),
-            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.PubSub.V1.StreamingPullResponse), global::Google.Cloud.PubSub.V1.StreamingPullResponse.Parser, new[]{ "ReceivedMessages", "AcknowlegeConfirmation", "ModifyAckDeadlineConfirmation", "SubscriptionProperties" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.PubSub.V1.StreamingPullResponse.Types.AcknowledgeConfirmation), global::Google.Cloud.PubSub.V1.StreamingPullResponse.Types.AcknowledgeConfirmation.Parser, new[]{ "AckIds", "InvalidAckIds", "UnorderedAckIds" }, null, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.PubSub.V1.StreamingPullResponse), global::Google.Cloud.PubSub.V1.StreamingPullResponse.Parser, new[]{ "ReceivedMessages", "AcknowledgeConfirmation", "ModifyAckDeadlineConfirmation", "SubscriptionProperties" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.PubSub.V1.StreamingPullResponse.Types.AcknowledgeConfirmation), global::Google.Cloud.PubSub.V1.StreamingPullResponse.Types.AcknowledgeConfirmation.Parser, new[]{ "AckIds", "InvalidAckIds", "UnorderedAckIds" }, null, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.PubSub.V1.StreamingPullResponse.Types.ModifyAckDeadlineConfirmation), global::Google.Cloud.PubSub.V1.StreamingPullResponse.Types.ModifyAckDeadlineConfirmation.Parser, new[]{ "AckIds", "InvalidAckIds" }, null, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.PubSub.V1.StreamingPullResponse.Types.SubscriptionProperties), global::Google.Cloud.PubSub.V1.StreamingPullResponse.Types.SubscriptionProperties.Parser, new[]{ "ExactlyOnceDeliveryEnabled", "MessageOrderingEnabled" }, null, null, null, null)}),
             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.PubSub.V1.CreateSnapshotRequest), global::Google.Cloud.PubSub.V1.CreateSnapshotRequest.Parser, new[]{ "Name", "Subscription", "Labels" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, }),
@@ -9932,7 +9932,7 @@
     [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
     public StreamingPullResponse(StreamingPullResponse other) : this() {
       receivedMessages_ = other.receivedMessages_.Clone();
-      acknowlegeConfirmation_ = other.acknowlegeConfirmation_ != null ? other.acknowlegeConfirmation_.Clone() : null;
+      acknowledgeConfirmation_ = other.acknowledgeConfirmation_ != null ? other.acknowledgeConfirmation_.Clone() : null;
       modifyAckDeadlineConfirmation_ = other.modifyAckDeadlineConfirmation_ != null ? other.modifyAckDeadlineConfirmation_.Clone() : null;
       subscriptionProperties_ = other.subscriptionProperties_ != null ? other.subscriptionProperties_.Clone() : null;
       _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
@@ -9958,19 +9958,19 @@
       get { return receivedMessages_; }
     }

-    /// <summary>Field number for the "acknowlege_confirmation" field.</summary>
-    public const int AcknowlegeConfirmationFieldNumber = 2;
-    private global::Google.Cloud.PubSub.V1.StreamingPullResponse.Types.AcknowledgeConfirmation acknowlegeConfirmation_;
+    /// <summary>Field number for the "acknowledge_confirmation" field.</summary>
+    public const int AcknowledgeConfirmationFieldNumber = 5;
+    private global::Google.Cloud.PubSub.V1.StreamingPullResponse.Types.AcknowledgeConfirmation acknowledgeConfirmation_;
     /// <summary>
     /// This field will only be set if `enable_exactly_once_delivery` is set to
     /// `true`.
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
-    public global::Google.Cloud.PubSub.V1.StreamingPullResponse.Types.AcknowledgeConfirmation AcknowlegeConfirmation {
-      get { return acknowlegeConfirmation_; }
+    public global::Google.Cloud.PubSub.V1.StreamingPullResponse.Types.AcknowledgeConfirmation AcknowledgeConfirmation {
+      get { return acknowledgeConfirmation_; }
       set {
-        acknowlegeConfirmation_ = value;
+        acknowledgeConfirmation_ = value;
       }
     }

@@ -10021,7 +10021,7 @@
         return true;
       }
       if(!receivedMessages_.Equals(other.receivedMessages_)) return false;
-      if (!object.Equals(AcknowlegeConfirmation, other.AcknowlegeConfirmation)) return false;
+      if (!object.Equals(AcknowledgeConfirmation, other.AcknowledgeConfirmation)) return false;
       if (!object.Equals(ModifyAckDeadlineConfirmation, other.ModifyAckDeadlineConfirmation)) return false;
       if (!object.Equals(SubscriptionProperties, other.SubscriptionProperties)) return false;
       return Equals(_unknownFields, other._unknownFields);
@@ -10032,7 +10032,7 @@
     public override int GetHashCode() {
       int hash = 1;
       hash ^= receivedMessages_.GetHashCode();
-      if (acknowlegeConfirmation_ != null) hash ^= AcknowlegeConfirmation.GetHashCode();
+      if (acknowledgeConfirmation_ != null) hash ^= AcknowledgeConfirmation.GetHashCode();
       if (modifyAckDeadlineConfirmation_ != null) hash ^= ModifyAckDeadlineConfirmation.GetHashCode();
       if (subscriptionProperties_ != null) hash ^= SubscriptionProperties.GetHashCode();
       if (_unknownFields != null) {
@@ -10054,10 +10054,6 @@
       output.WriteRawMessage(this);
     #else
       receivedMessages_.WriteTo(output, _repeated_receivedMessages_codec);
-      if (acknowlegeConfirmation_ != null) {
-        output.WriteRawTag(18);
-        output.WriteMessage(AcknowlegeConfirmation);
-      }
       if (modifyAckDeadlineConfirmation_ != null) {
         output.WriteRawTag(26);
         output.WriteMessage(ModifyAckDeadlineConfirmation);
@@ -10066,6 +10062,10 @@
         output.WriteRawTag(34);
         output.WriteMessage(SubscriptionProperties);
       }
+      if (acknowledgeConfirmation_ != null) {
+        output.WriteRawTag(42);
+        output.WriteMessage(AcknowledgeConfirmation);
+      }
       if (_unknownFields != null) {
         _unknownFields.WriteTo(output);
       }
@@ -10077,10 +10077,6 @@
     [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
     void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
       receivedMessages_.WriteTo(ref output, _repeated_receivedMessages_codec);
-      if (acknowlegeConfirmation_ != null) {
-        output.WriteRawTag(18);
-        output.WriteMessage(AcknowlegeConfirmation);
-      }
       if (modifyAckDeadlineConfirmation_ != null) {
         output.WriteRawTag(26);
         output.WriteMessage(ModifyAckDeadlineConfirmation);
@@ -10089,6 +10085,10 @@
         output.WriteRawTag(34);
         output.WriteMessage(SubscriptionProperties);
       }
+      if (acknowledgeConfirmation_ != null) {
+        output.WriteRawTag(42);
+        output.WriteMessage(AcknowledgeConfirmation);
+      }
       if (_unknownFields != null) {
         _unknownFields.WriteTo(ref output);
       }
@@ -10100,8 +10100,8 @@
     public int CalculateSize() {
       int size = 0;
       size += receivedMessages_.CalculateSize(_repeated_receivedMessages_codec);
-      if (acknowlegeConfirmation_ != null) {
-        size += 1 + pb::CodedOutputStream.ComputeMessageSize(AcknowlegeConfirmation);
+      if (acknowledgeConfirmation_ != null) {
+        size += 1 + pb::CodedOutputStream.ComputeMessageSize(AcknowledgeConfirmation);
       }
       if (modifyAckDeadlineConfirmation_ != null) {
         size += 1 + pb::CodedOutputStream.ComputeMessageSize(ModifyAckDeadlineConfirmation);
@@ -10122,11 +10122,11 @@
         return;
       }
       receivedMessages_.Add(other.receivedMessages_);
-      if (other.acknowlegeConfirmation_ != null) {
-        if (acknowlegeConfirmation_ == null) {
-          AcknowlegeConfirmation = new global::Google.Cloud.PubSub.V1.StreamingPullResponse.Types.AcknowledgeConfirmation();
-        }
-        AcknowlegeConfirmation.MergeFrom(other.AcknowlegeConfirmation);
+      if (other.acknowledgeConfirmation_ != null) {
+        if (acknowledgeConfirmation_ == null) {
+          AcknowledgeConfirmation = new global::Google.Cloud.PubSub.V1.StreamingPullResponse.Types.AcknowledgeConfirmation();
+        }
+        AcknowledgeConfirmation.MergeFrom(other.AcknowledgeConfirmation);
       }
       if (other.modifyAckDeadlineConfirmation_ != null) {
         if (modifyAckDeadlineConfirmation_ == null) {
@@ -10159,13 +10159,6 @@
             receivedMessages_.AddEntriesFrom(input, _repeated_receivedMessages_codec);
             break;
           }
-          case 18: {
-            if (acknowlegeConfirmation_ == null) {
-              AcknowlegeConfirmation = new global::Google.Cloud.PubSub.V1.StreamingPullResponse.Types.AcknowledgeConfirmation();
-            }
-            input.ReadMessage(AcknowlegeConfirmation);
-            break;
-          }
           case 26: {
             if (modifyAckDeadlineConfirmation_ == null) {
               ModifyAckDeadlineConfirmation = new global::Google.Cloud.PubSub.V1.StreamingPullResponse.Types.ModifyAckDeadlineConfirmation();
@@ -10178,6 +10171,13 @@
               SubscriptionProperties = new global::Google.Cloud.PubSub.V1.StreamingPullResponse.Types.SubscriptionProperties();
             }
             input.ReadMessage(SubscriptionProperties);
+            break;
+          }
+          case 42: {
+            if (acknowledgeConfirmation_ == null) {
+              AcknowledgeConfirmation = new global::Google.Cloud.PubSub.V1.StreamingPullResponse.Types.AcknowledgeConfirmation();
+            }
+            input.ReadMessage(AcknowledgeConfirmation);
             break;
           }
         }
@@ -10199,13 +10199,6 @@
             receivedMessages_.AddEntriesFrom(ref input, _repeated_receivedMessages_codec);
             break;
           }
-          case 18: {
-            if (acknowlegeConfirmation_ == null) {
-              AcknowlegeConfirmation = new global::Google.Cloud.PubSub.V1.StreamingPullResponse.Types.AcknowledgeConfirmation();
-            }
-            input.ReadMessage(AcknowlegeConfirmation);
-            break;
-          }
           case 26: {
             if (modifyAckDeadlineConfirmation_ == null) {
               ModifyAckDeadlineConfirmation = new global::Google.Cloud.PubSub.V1.StreamingPullResponse.Types.ModifyAckDeadlineConfirmation();
@@ -10218,6 +10211,13 @@
               SubscriptionProperties = new global::Google.Cloud.PubSub.V1.StreamingPullResponse.Types.SubscriptionProperties();
             }
             input.ReadMessage(SubscriptionProperties);
+            break;
+          }
+          case 42: {
+            if (acknowledgeConfirmation_ == null) {
+              AcknowledgeConfirmation = new global::Google.Cloud.PubSub.V1.StreamingPullResponse.Types.AcknowledgeConfirmation();
+            }
+            input.ReadMessage(AcknowledgeConfirmation);
             break;
           }
         }


Update HidingRowsAndColumns.cs

Update HidingRowsAndColumns.cs

--- Examples/CSharp/RowsColumns/Hiding/HidingRowsAndColumns.cs
+++ Examples/CSharp/RowsColumns/Hiding/HidingRowsAndColumns.cs
@@ -8,6 +8,7 @@
     {
         public static void Main(string[] args)
         {
+            //ExStart:1
             // The path to the documents directory.
             string dataDir = Aspose.Cells.Examples.Utils.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

@@ -32,8 +33,9 @@

             //Closing the file stream to free all resources
             fstream.Close();
+            //ExEnd:1

         }
     }
-}+}


Don't check in js files.

Don't check in js files.

--- src/BloomExe/SendReceive/BloomChorusRules.cs
+++ src/BloomExe/SendReceive/BloomChorusRules.cs
@@ -8,6 +8,7 @@
 		{
 			config.ExcludePatterns.Add("**.back");
 			config.ExcludePatterns.Add("**.js");
+			config.ExcludePatterns.Add("**.bak");
 			ProjectFolderConfiguration.AddExcludedVideoExtensions(config); // For now at least.

 			config.IncludePatterns.Add("**.html");
@@ -15,7 +16,6 @@
 			config.IncludePatterns.Add("**.png");
 			config.IncludePatterns.Add("**.jpg");
 			config.IncludePatterns.Add("**.css");
-			config.IncludePatterns.Add("**.js");
 			config.IncludePatterns.Add("**.txt");
 			config.IncludePatterns.Add("*.bloomCollection");
 		}


chore(Compare Comply Example): Removed unused fullserializer

--- Examples/ServiceExamples/Scripts/ExampleCompareComplyV1.cs
+++ Examples/ServiceExamples/Scripts/ExampleCompareComplyV1.cs
@@ -43,7 +43,6 @@
     #endregion

     private CompareComply compareComply;
-    private fsSerializer _serializer = new fsSerializer();
     private bool convertToHtmlTested = false;
     private bool classifyElementsTested = false;
     private bool extractTablesTested = false;


Added the calculation for Game Winning Steal.

--- src/BolfTracker.Core/Services/GameService.cs
+++ src/BolfTracker.Core/Services/GameService.cs
@@ -106,71 +106,75 @@

             var game = _gameRepository.GetById(gameId);
             var gameShots = _shotRepository.GetByGame(gameId);
-            var players = _playerRepository.GetByGame(gameId);

-            int maxPoints = 0;
+            // Watch out for games that were created but never started
+            if (gameShots.Any())
+            {
+                var players = _playerRepository.GetByGame(gameId);

-            // The first thing that we want to calculate is the max number of points scored (the winner's points). This way
-            // we can easily determine who the winner is later when actually adding the stats to the repository.
-            foreach (var player in players)
-            {
-                int playerPoints = gameShots.Where(s => s.Player.Id == player.Id).Sum(s => s.Points);
-
-                if (playerPoints > maxPoints)
-                {
-                    maxPoints = playerPoints;
-                }
-            }
-
-            // Calculate all of the game statistics for each player individually
-            foreach (var player in players)
-            {
-                var playerGameStatistics = new PlayerGameStatistics();
-
-                var playerShots = gameShots.Where(s => s.Player.Id == player.Id);
-
-                playerGameStatistics.Game = game;
-                playerGameStatistics.Player = player;
-                playerGameStatistics.Points = playerShots.Sum(s => s.Points);
-                playerGameStatistics.ShotsMade = playerShots.Count(s => s.ShotMade);
-                playerGameStatistics.Attempts = playerShots.Sum(s => s.Attempts);
-                playerGameStatistics.ShootingPercentage = Decimal.Round((decimal)playerGameStatistics.ShotsMade / (decimal)playerGameStatistics.Attempts, 3, MidpointRounding.AwayFromZero);
-                playerGameStatistics.Pushes = playerShots.Count(s => s.ShotType.Id == ShotTypePush);
-                playerGameStatistics.Steals = playerShots.Count(s => s.ShotType.Id == ShotTypeSteal);
-                playerGameStatistics.SugarFreeSteals = playerShots.Count(s => s.ShotType.Id == ShotTypeSugarFreeSteal);
-                playerGameStatistics.Winner = (playerGameStatistics.Points == maxPoints);
-                playerGameStatistics.OvertimeWin = playerShots.Max(s => s.Hole.Id > 10 && playerGameStatistics.Winner);
-
+                int maxPlayerPoints = 0;
+                int maxHole = gameShots.Max(s => s.Hole.Id);
                 int totalGamePoints = gameShots.Sum(s => s.Points);

-                playerGameStatistics.Shutout = playerGameStatistics.Points == totalGamePoints;
-                playerGameStatistics.PerfectGame = playerGameStatistics.Shutout && (playerGameStatistics.ShotsMade == playerGameStatistics.Attempts);
+                // The first thing that we want to calculate is the max number of points scored (the winner's points). This way
+                // we can easily determine who the winner is later when actually adding the stats to the repository.
+                foreach (var player in players)
+                {
+                    int playerPoints = gameShots.Where(s => s.Player.Id == player.Id).Sum(s => s.Points);

-                _playerGameStatisticsRepository.Add(playerGameStatistics);
+                    if (playerPoints > maxPlayerPoints)
+                    {
+                        maxPlayerPoints = playerPoints;
+                    }
+                }
+
+                // Calculate all of the game statistics for each player individually
+                foreach (var player in players)
+                {
+                    var playerShots = gameShots.Where(s => s.Player.Id == player.Id);
+                    var playerGameStatistics = new PlayerGameStatistics();
+
+                    playerGameStatistics.Game = game;
+                    playerGameStatistics.Player = player;
+                    playerGameStatistics.Points = playerShots.Sum(s => s.Points);
+                    playerGameStatistics.ShotsMade = playerShots.Count(s => s.ShotMade);
+                    playerGameStatistics.Attempts = playerShots.Sum(s => s.Attempts);
+                    playerGameStatistics.ShootingPercentage = Decimal.Round((decimal)playerGameStatistics.ShotsMade / (decimal)playerGameStatistics.Attempts, 3, MidpointRounding.AwayFromZero);
+                    playerGameStatistics.Pushes = playerShots.Count(s => s.ShotType.Id == ShotTypePush);
+                    playerGameStatistics.Steals = playerShots.Count(s => s.ShotType.Id == ShotTypeSteal);
+                    playerGameStatistics.SugarFreeSteals = playerShots.Count(s => s.ShotType.Id == ShotTypeSugarFreeSteal);
+                    playerGameStatistics.Winner = (playerGameStatistics.Points == maxPlayerPoints);
+                    playerGameStatistics.OvertimeWin = playerShots.Max(s => s.Hole.Id > 10 && playerGameStatistics.Winner);
+                    playerGameStatistics.GameWinningSteal = playerShots.Any(s => s.Hole.Id == maxHole && (s.ShotType.Id == ShotTypeSteal || s.ShotType.Id == ShotTypeSugarFreeSteal));
+                    playerGameStatistics.Shutout = playerGameStatistics.Points == totalGamePoints;
+                    playerGameStatistics.PerfectGame = playerGameStatistics.Shutout && (playerGameStatistics.ShotsMade == playerGameStatistics.Attempts);
+
+                    _playerGameStatisticsRepository.Add(playerGameStatistics);
+                }
+
+                // Calculate the total stats for the game
+                var gameStatistics = new GameStatistics();
+
+                gameStatistics.Game = game;
+                gameStatistics.HoleCount = maxHole;
+
+                // if HoleCount mod NumberOfHoles = 0 --> OvertimeCount = HoleCount / NumberOfHoles
+                // else OvertimeCount = (HoleCount - (HoleCount mod NumberOfHoles)) / NumberOfHoles
+
+                gameStatistics.OvertimeCount = (maxHole > 10) ? 1 : 0;
+                gameStatistics.PlayerCount = gameShots.Select(s => s.Player.Id).Distinct().Count();
+                gameStatistics.Points = gameShots.Sum(s => s.Points);
+                gameStatistics.ShotsMade = gameShots.Count(s => s.ShotMade);
+                gameStatistics.Attempts = gameShots.Sum(s => s.Attempts);
+                gameStatistics.ShotsMissed = gameStatistics.Attempts - gameStatistics.ShotsMade;
+                gameStatistics.ShootingPercentage = Decimal.Round((decimal)gameStatistics.ShotsMade / (decimal)gameStatistics.Attempts, 3, MidpointRounding.AwayFromZero);
+                gameStatistics.Pushes = gameShots.Count(s => s.ShotType.Id == ShotTypePush);
+                gameStatistics.Steals = gameShots.Count(s => s.ShotType.Id == ShotTypeSteal);
+                gameStatistics.SugarFreeSteals = gameShots.Count(s => s.ShotType.Id == ShotTypeSugarFreeSteal);
+                gameStatistics.StainlessSteals = gameShots.Count(s => (s.ShotType.Id == ShotTypeSteal || s.ShotType.Id == ShotTypeSugarFreeSteal) && s.ShotMade && s.Attempts == 1);
+
+                _gameStatisticsRepository.Add(gameStatistics);
             }
-
-            // Calculate the total stats for the game
-            var gameStatistics = new GameStatistics();
-
-            gameStatistics.Game = game;
-            gameStatistics.HoleCount = gameShots.Select(s => s.Hole.Id).Distinct().Count();
-
-            // if HoleCount mod NumberOfHoles = 0 --> OvertimeCount = HoleCount / NumberOfHoles
-            // else OvertimeCount = (HoleCount - (HoleCount mod NumberOfHoles)) / NumberOfHoles
-
-            gameStatistics.OvertimeCount = (gameShots.Max(s => s.Hole.Id) > 10) ? 1 : 0;
-            gameStatistics.PlayerCount = gameShots.Select(s => s.Player.Id).Distinct().Count();
-            gameStatistics.Points = gameShots.Sum(s => s.Points);
-            gameStatistics.ShotsMade = gameShots.Count(s => s.ShotMade);
-            gameStatistics.Attempts = gameShots.Sum(s => s.Attempts);
-            gameStatistics.ShotsMissed = gameStatistics.Attempts - gameStatistics.ShotsMade;
-            gameStatistics.ShootingPercentage = Decimal.Round((decimal)gameStatistics.ShotsMade / (decimal)gameStatistics.Attempts, 3, MidpointRounding.AwayFromZero);
-            gameStatistics.Pushes = gameShots.Count(s => s.ShotType.Id == ShotTypePush);
-            gameStatistics.Steals = gameShots.Count(s => s.ShotType.Id == ShotTypeSteal);
-            gameStatistics.SugarFreeSteals = gameShots.Count(s => s.ShotType.Id == ShotTypeSugarFreeSteal);
-            gameStatistics.StainlessSteals = gameShots.Count(s => (s.ShotType.Id == ShotTypeSteal || s.ShotType.Id == ShotTypeSugarFreeSteal) && s.ShotMade && s.Attempts == 1);
-
-            _gameStatisticsRepository.Add(gameStatistics);
         }

         private void DeleteGameStatistics()


Behave like Apache

Behave like Apache

--- FubarDev.WebDavServer.FileSystem.DotNet/DotNetDirectory.cs
+++ FubarDev.WebDavServer.FileSystem.DotNet/DotNetDirectory.cs
@@ -5,10 +5,14 @@
 using System;
 using System.Collections.Generic;
 using System.IO;
+using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;

 using FubarDev.WebDavServer.Model;
+using FubarDev.WebDavServer.Props.Converters;
+using FubarDev.WebDavServer.Props.Dead;
+using FubarDev.WebDavServer.Props.Live;
 using FubarDev.WebDavServer.Props.Store;

 namespace FubarDev.WebDavServer.FileSystem.DotNet
@@ -89,6 +93,27 @@
             return this.EnumerateEntries(maxDepth);
         }

+        protected override IEnumerable<ILiveProperty> GetLiveProperties()
+        {
+            return base.GetLiveProperties()
+                .Concat(new ILiveProperty[]
+                {
+                    new ContentLengthProperty(ct => Task.FromResult(0L)),
+                });
+        }
+
+        protected override IEnumerable<IDeadProperty> GetPredefinedDeadProperties()
+        {
+            var contentType = DotNetFileSystem.DeadPropertyFactory
+                .Create(FileSystem.PropertyStore, this, GetContentTypeProperty.PropertyName);
+            contentType.Init(new StringConverter().ToElement(GetContentTypeProperty.PropertyName, "httpd/unix-directory"));
+            return base.GetPredefinedDeadProperties()
+                .Concat(new[]
+                {
+                    contentType,
+                });
+        }
+
         private IEntry CreateEntry(FileSystemInfo fsInfo)
         {
             var fileInfo = fsInfo as FileInfo;


rearrange file

rearrange file

--- src/Core/Models/Api/CipherSecureNoteModel.cs
+++ src/Core/Models/Api/CipherSecureNoteModel.cs
@@ -7,11 +7,11 @@
     {
         public CipherSecureNoteModel() { }

-        public SecureNoteType Type { get; set; }
-
         public CipherSecureNoteModel(CipherSecureNoteData data)
         {
             Type = data.Type;
         }
+
+        public SecureNoteType Type { get; set; }
     }
 }


Don't replace valid service provider with null.

--- src/Core/ServiceProviders/ServiceProvider.cs
+++ src/Core/ServiceProviders/ServiceProvider.cs
@@ -11,7 +11,7 @@
         public static IServiceProvider Current
         {
             get { return _serviceProvider ?? _defaultServiceProvider.Value; }
-            set { _serviceProvider = value; }
+            set { _serviceProvider = value ?? Current; }
         }

         internal static IServiceProvider FindServiceProvider(Assembly[] assembliesToSearch = null) {


Update DockFactory.cs

Update DockFactory.cs

--- src/Core2D/ViewModels/Docking/DockFactory.cs
+++ src/Core2D/ViewModels/Docking/DockFactory.cs
@@ -240,7 +240,6 @@
             {
                 Id = "HomeView",
                 Title = "Home",
-                Proportion = 1,
                 ActiveDockable = homeLayout,
                 VisibleDockables = CreateList<IDockable>(homeLayout)
             };
@@ -264,9 +263,9 @@
                     homeStatusBarViewModel
                 )
             };
-
+
             // Dashboard
-
+
             var dashboardMenuViewModel = new DashboardMenuViewModel()
             {
                 Id = "DashboardMenuView",


To think I have shown MS how bad my coding is.

--- src/Crystal3/Navigation/NavigationManager.cs
+++ src/Crystal3/Navigation/NavigationManager.cs
@@ -115,13 +115,7 @@

         internal IEnumerable<NavigationService> GetAllServices()
         {
-            List<NavigationService> services = new List<NavigationService>();
-
-            //services.Add(RootNavigationService); - no longer needed if every navigationservice registers itself in the constructor
-
-            services.AddRange(navigationServices);
-
-            return services;
+            return navigationServices;
         }
     }
 }


Change the primary key to use varbinary to ensure lexigraphical sort order

--- src/Server/SqlStorage.cs
+++ src/Server/SqlStorage.cs
@@ -99,7 +99,7 @@
                     sb.Append(" = @key");

                     command.CommandText = StringBuilderCache.GetStringAndRelease(sb);
-                    command.Parameters.AddWithValue("@key", key);
+                    command.Parameters.AddWithValue("@key", SqlColumn.ToBytes(key));

                     using (var reader = await command.ExecuteReaderAsync().ConfigureAwait(false))
                     {
@@ -264,7 +264,7 @@
                     sb.Append(" = @key");

                     command.CommandText = StringBuilderCache.GetStringAndRelease(sb);
-                    command.Parameters.AddWithValue("@key", key);
+                    command.Parameters.AddWithValue("@key", SqlColumn.ToBytes(key));

                     return await command.ExecuteNonQueryAsync().ConfigureAwait(false) == 1;
                 }
@@ -314,8 +314,8 @@

                     command.CommandText = StringBuilderCache.GetStringAndRelease(sb);

-                    if (hasMin) command.Parameters.AddWithValue("@min", minKey);
-                    if (hasMax) command.Parameters.AddWithValue("@max", maxKey);
+                    if (hasMin) command.Parameters.AddWithValue("@min", SqlColumn.ToBytes(minKey));
+                    if (hasMax) command.Parameters.AddWithValue("@max", SqlColumn.ToBytes(maxKey));

                     var result = new List<T>();
                     using (var reader = await command.ExecuteReaderAsync().ConfigureAwait(false))


Fixed swapped doccomments in HtmlLiteral

--- src/DotVVM.Framework/Controls/HtmlLiteral.cs
+++ src/DotVVM.Framework/Controls/HtmlLiteral.cs
@@ -27,9 +27,8 @@
         public static readonly DotvvmProperty HtmlProperty =
             DotvvmProperty.Register<string, HtmlLiteral>(t => t.Html, "");

-
         /// <summary>
-        /// Gets or sets whether the control should render a wrapper element.
+        /// Gets or sets the name of the tag that wraps the HtmlLiteral.
         /// </summary>
         [MarkupOptions(AllowBinding = false)]
         public string WrapperTagName
@@ -40,10 +39,9 @@
         public static readonly DotvvmProperty WrapperTagNameProperty
             = DotvvmProperty.Register<string, HtmlLiteral>(c => c.WrapperTagName, "div");

-
         /// <summary>
-        /// Gets or sets the name of the tag that wraps the HtmlLiteral.
-        /// </summary>
+        /// Gets or sets whether the control should render a wrapper element.
+        /// </summary>
         [MarkupOptions(AllowBinding = false)]
         public bool RenderWrapperTag
         {