public void MergeFrom(pb::CodedInputStream input)
        {
            uint tag;

            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                default:
                    _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
                    break;

                case 8: {
                    TimestampMs = input.ReadInt64();
                    break;
                }

                case 16: {
                    Sfida = input.ReadBool();
                    break;
                }

                case 26: {
                    global::POGOProtos.Data.Logs.CatchPokemonLogEntry subBuilder = new global::POGOProtos.Data.Logs.CatchPokemonLogEntry();
                    if (actionCase_ == ActionOneofCase.CatchPokemon)
                    {
                        subBuilder.MergeFrom(CatchPokemon);
                    }
                    input.ReadMessage(subBuilder);
                    CatchPokemon = subBuilder;
                    break;
                }

                case 34: {
                    global::POGOProtos.Data.Logs.FortSearchLogEntry subBuilder = new global::POGOProtos.Data.Logs.FortSearchLogEntry();
                    if (actionCase_ == ActionOneofCase.FortSearch)
                    {
                        subBuilder.MergeFrom(FortSearch);
                    }
                    input.ReadMessage(subBuilder);
                    FortSearch = subBuilder;
                    break;
                }

                case 42: {
                    global::POGOProtos.Data.Logs.BuddyPokemonLogEntry subBuilder = new global::POGOProtos.Data.Logs.BuddyPokemonLogEntry();
                    if (actionCase_ == ActionOneofCase.BuddyPokemon)
                    {
                        subBuilder.MergeFrom(BuddyPokemon);
                    }
                    input.ReadMessage(subBuilder);
                    BuddyPokemon = subBuilder;
                    break;
                }

                case 50: {
                    global::POGOProtos.Data.Logs.RaidRewardsLogEntry subBuilder = new global::POGOProtos.Data.Logs.RaidRewardsLogEntry();
                    if (actionCase_ == ActionOneofCase.RaidRewards)
                    {
                        subBuilder.MergeFrom(RaidRewards);
                    }
                    input.ReadMessage(subBuilder);
                    RaidRewards = subBuilder;
                    break;
                }

                case 58: {
                    global::POGOProtos.Data.Logs.PasscodeRewardsLogEntry subBuilder = new global::POGOProtos.Data.Logs.PasscodeRewardsLogEntry();
                    if (actionCase_ == ActionOneofCase.PasscodeRewards)
                    {
                        subBuilder.MergeFrom(PasscodeRewards);
                    }
                    input.ReadMessage(subBuilder);
                    PasscodeRewards = subBuilder;
                    break;
                }

                case 66: {
                    global::POGOProtos.Data.Logs.CompleteQuestLogEntry subBuilder = new global::POGOProtos.Data.Logs.CompleteQuestLogEntry();
                    if (actionCase_ == ActionOneofCase.CompleteQuest)
                    {
                        subBuilder.MergeFrom(CompleteQuest);
                    }
                    input.ReadMessage(subBuilder);
                    CompleteQuest = subBuilder;
                    break;
                }

                case 74: {
                    global::POGOProtos.Data.Logs.CompleteQuestStampCardLogEntry subBuilder = new global::POGOProtos.Data.Logs.CompleteQuestStampCardLogEntry();
                    if (actionCase_ == ActionOneofCase.CompleteQuestStampCard)
                    {
                        subBuilder.MergeFrom(CompleteQuestStampCard);
                    }
                    input.ReadMessage(subBuilder);
                    CompleteQuestStampCard = subBuilder;
                    break;
                }

                case 82: {
                    global::POGOProtos.Data.Logs.CompleteQuestPokemonEncounterLogEntry subBuilder = new global::POGOProtos.Data.Logs.CompleteQuestPokemonEncounterLogEntry();
                    if (actionCase_ == ActionOneofCase.CompleteQuestPokemonEncounter)
                    {
                        subBuilder.MergeFrom(CompleteQuestPokemonEncounter);
                    }
                    input.ReadMessage(subBuilder);
                    CompleteQuestPokemonEncounter = subBuilder;
                    break;
                }

                case 98: {
                    global::POGOProtos.Data.Logs.OpenGiftLogEntry subBuilder = new global::POGOProtos.Data.Logs.OpenGiftLogEntry();
                    if (actionCase_ == ActionOneofCase.OpenGift)
                    {
                        subBuilder.MergeFrom(OpenGift);
                    }
                    input.ReadMessage(subBuilder);
                    OpenGift = subBuilder;
                    break;
                }

                case 106: {
                    global::POGOProtos.Data.Logs.SendGiftLogEntry subBuilder = new global::POGOProtos.Data.Logs.SendGiftLogEntry();
                    if (actionCase_ == ActionOneofCase.SendGift)
                    {
                        subBuilder.MergeFrom(SendGift);
                    }
                    input.ReadMessage(subBuilder);
                    SendGift = subBuilder;
                    break;
                }

                case 114: {
                    global::POGOProtos.Data.Logs.TradingLogEntry subBuilder = new global::POGOProtos.Data.Logs.TradingLogEntry();
                    if (actionCase_ == ActionOneofCase.Trading)
                    {
                        subBuilder.MergeFrom(Trading);
                    }
                    input.ReadMessage(subBuilder);
                    Trading = subBuilder;
                    break;
                }
                }
            }
        }
        public void MergeFrom(ActionLogEntry other)
        {
            if (other == null)
            {
                return;
            }
            if (other.TimestampMs != 0L)
            {
                TimestampMs = other.TimestampMs;
            }
            if (other.Sfida != false)
            {
                Sfida = other.Sfida;
            }
            switch (other.ActionCase)
            {
            case ActionOneofCase.CatchPokemon:
                if (CatchPokemon == null)
                {
                    CatchPokemon = new global::POGOProtos.Data.Logs.CatchPokemonLogEntry();
                }
                CatchPokemon.MergeFrom(other.CatchPokemon);
                break;

            case ActionOneofCase.FortSearch:
                if (FortSearch == null)
                {
                    FortSearch = new global::POGOProtos.Data.Logs.FortSearchLogEntry();
                }
                FortSearch.MergeFrom(other.FortSearch);
                break;

            case ActionOneofCase.BuddyPokemon:
                if (BuddyPokemon == null)
                {
                    BuddyPokemon = new global::POGOProtos.Data.Logs.BuddyPokemonLogEntry();
                }
                BuddyPokemon.MergeFrom(other.BuddyPokemon);
                break;

            case ActionOneofCase.RaidRewards:
                if (RaidRewards == null)
                {
                    RaidRewards = new global::POGOProtos.Data.Logs.RaidRewardsLogEntry();
                }
                RaidRewards.MergeFrom(other.RaidRewards);
                break;

            case ActionOneofCase.PasscodeRewards:
                if (PasscodeRewards == null)
                {
                    PasscodeRewards = new global::POGOProtos.Data.Logs.PasscodeRewardsLogEntry();
                }
                PasscodeRewards.MergeFrom(other.PasscodeRewards);
                break;

            case ActionOneofCase.CompleteQuest:
                if (CompleteQuest == null)
                {
                    CompleteQuest = new global::POGOProtos.Data.Logs.CompleteQuestLogEntry();
                }
                CompleteQuest.MergeFrom(other.CompleteQuest);
                break;

            case ActionOneofCase.CompleteQuestStampCard:
                if (CompleteQuestStampCard == null)
                {
                    CompleteQuestStampCard = new global::POGOProtos.Data.Logs.CompleteQuestStampCardLogEntry();
                }
                CompleteQuestStampCard.MergeFrom(other.CompleteQuestStampCard);
                break;

            case ActionOneofCase.CompleteQuestPokemonEncounter:
                if (CompleteQuestPokemonEncounter == null)
                {
                    CompleteQuestPokemonEncounter = new global::POGOProtos.Data.Logs.CompleteQuestPokemonEncounterLogEntry();
                }
                CompleteQuestPokemonEncounter.MergeFrom(other.CompleteQuestPokemonEncounter);
                break;

            case ActionOneofCase.OpenGift:
                if (OpenGift == null)
                {
                    OpenGift = new global::POGOProtos.Data.Logs.OpenGiftLogEntry();
                }
                OpenGift.MergeFrom(other.OpenGift);
                break;

            case ActionOneofCase.SendGift:
                if (SendGift == null)
                {
                    SendGift = new global::POGOProtos.Data.Logs.SendGiftLogEntry();
                }
                SendGift.MergeFrom(other.SendGift);
                break;

            case ActionOneofCase.Trading:
                if (Trading == null)
                {
                    Trading = new global::POGOProtos.Data.Logs.TradingLogEntry();
                }
                Trading.MergeFrom(other.Trading);
                break;
            }

            _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
        }