package com.alterdekim.hearthhack.component;

import com.alterdekim.PegasusGame;
import com.alterdekim.PegasusShared;
import com.alterdekim.hearthhack.component.interfaces.GamePacketCallback;
import com.alterdekim.hearthhack.game.*;
import com.alterdekim.hearthhack.util.PegasusPacket;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Optional;

import static com.alterdekim.PegasusGame.HistoryBlock.Type.*;
import static com.alterdekim.PegasusGame.Option.Type.END_TURN;

@Slf4j
@RequiredArgsConstructor
public class GameConnection extends Thread {

    private final GameServer parent;

    private final Socket client;
    private OutputStream outToClient;
    private long gameId = 0L;
    private long playerId = 0L;
    private boolean isLoggedIn = false;

    private void processPacket( PegasusPacket packet ) throws Exception {
        log.info("PegasusPacket: type={}, context={}, size={}", packet.getType(), packet.getContext(), packet.getSize());
        if( !isLoggedIn && packet.getType() != 168 ) stopListeningAndDisconnect();
        if( packet.getType() == 168 ) {
            PegasusGame.Handshake handshake = PegasusGame.Handshake.parseFrom((byte[]) packet.getBody());
            log.info("Handshake: {}", handshake);
            // game_handle: gameId
            // client_handle: userId
            // password: roomPassword
            Optional<GameRoom> room = parent.getGamePool().getGameRoomById((long) handshake.getGameHandle());
            log.info("Handshake check: {}", room);
            if( room.isEmpty() ||
                    !room.get().getPassword().equals(handshake.getPassword()) ||
                    !room.get().getPlayers().stream().anyMatch(p -> p.getUserId().longValue() == handshake.getClientHandle()) ) {
                log.error("Handshake error details: room={}; password_equals={}; containsPlayer={}", room.isEmpty(),
                        room.get().getPassword().equals(handshake.getPassword()),
                        room.get().getPlayers().stream().anyMatch(p -> p.getUserId().longValue() == handshake.getClientHandle()));
                log.error("Handshake error pwd: client={}; orig={}", handshake.getPassword(), room.get().getPassword());
                log.error("Handshake failed!");
                return;
            }
            log.info("Handshake success!");

            PegasusGame.GameSetup setup = PegasusGame.GameSetup.newBuilder()
                    .setBoard(2)
                    .setMaxFriendlyMinionsPerPlayer(7)
                    .setMaxSecretsPerPlayer(5)
                    .setKeepAliveFrequencySeconds(30)
                    .setDisconnectWhenStuckSeconds(500)
                    .build();
            PegasusPacket result = new PegasusPacket(16, 0, setup);
            this.send(result);
            this.isLoggedIn = true;
            this.gameId = (long) handshake.getGameHandle();
            this.playerId = (long) handshake.getClientHandle();
            return;
        }
        if( packet.getType() == PegasusPacketType.SendPing.getValue() ) {
            pong();
            return;
        }
        // pass to GameRoom
        Optional<GameRoom> room = this.parent.getGamePool().getGameRoomById(gameId);
        room.ifPresent(gameRoom -> {
            gameRoom.updateCallback(this.playerId, packet1 -> {
                try {
                    send(packet1);
                } catch (Exception e) {
                    log.error(e.getMessage());
                }
            });
            gameRoom.getIncomeQueue().add(new IncomeGamePacket(this.playerId, packet));
        });
        log.info("sendThings called!!!!!!!");
       //sendThings();
        //sendThingsThird();
    }

    // TODO: abolish that thing x2
    private void sendThingsCompressed() throws Exception {
        PegasusGame.PowerHistory powerHistory = PegasusGame.PowerHistory.newBuilder()
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setCreateGame(PegasusGame.PowerHistoryCreateGame.newBuilder()
                                .setGameEntity(PegasusGame.Entity.newBuilder()
                                        .setId(1)
                                        .addTags(PegasusGame.Tag.newBuilder()
                                                .setName(GameTag.ENTITY_ID.getValue())
                                                .setValue(1)
                                        )
                                        .addTags(PegasusGame.Tag.newBuilder()
                                                .setName(GameTag.NEXT_STEP.getValue())
                                                .setValue(4)
                                        )
                                        .addTags(PegasusGame.Tag.newBuilder()
                                                .setName(GameTag.ZONE.getValue())
                                                .setValue(1)
                                        )
                                        .addTags(PegasusGame.Tag.newBuilder()
                                                .setName(GameTag.STATE.getValue())
                                                .setValue(2)
                                        )
                                        .addTags(PegasusGame.Tag.newBuilder()
                                                .setName(GameTag.TURN.getValue())
                                                .setValue(1)
                                        )
                                        .addTags(PegasusGame.Tag.newBuilder()
                                                .setName(GameTag.CARDTYPE.getValue())
                                                .setValue(1)
                                        )
                                        .addTags(PegasusGame.Tag.newBuilder()
                                                .setName(10)
                                                .setValue(85)
                                        )
                                )
                                .addPlayers(PegasusGame.Player.newBuilder()
                                        .setId(2)
                                        .setGameAccountId(PegasusShared.BnetId.newBuilder()
                                                .setHi(144115198130930503L)
                                                .setLo(78330215)
                                        )
                                        .setCardBack(0)
                                        .setEntity(PegasusGame.Entity.newBuilder()
                                                .setId(3)
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.CONTROLLER.getValue())
                                                        .setValue(2)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.ENTITY_ID.getValue())
                                                        .setValue(3)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.NUM_CARDS_DRAWN_THIS_TURN.getValue())
                                                        .setValue(3)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.MAXRESOURCES.getValue())
                                                        .setValue(10)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.TIMEOUT.getValue())
                                                        .setValue(75)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.ZONE.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.CARDTYPE.getValue())
                                                        .setValue(2)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.NUM_TURNS_LEFT.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.STARTHANDSIZE.getValue())
                                                        .setValue(4)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.MAXHANDSIZE.getValue())
                                                        .setValue(10)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.PLAYER_ID.getValue())
                                                        .setValue(2)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.TEAM_ID.getValue())
                                                        .setValue(2)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.CURRENT_PLAYER.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.PLAYSTATE.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.HERO_ENTITY.getValue())
                                                        .setValue(66)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.FIRST_PLAYER.getValue())
                                                        .setValue(1)
                                                )
                                        )
                                )
                                .addPlayers(PegasusGame.Player.newBuilder()
                                        .setId(1)
                                        .setGameAccountId(PegasusShared.BnetId.newBuilder()
                                                .setHi(144115198130930503L)
                                                .setLo(77500085)
                                        )
                                        .setCardBack(0)
                                        .setEntity(PegasusGame.Entity.newBuilder()
                                                .setId(2)
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.CONTROLLER.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.ENTITY_ID.getValue())
                                                        .setValue(2)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.NUM_CARDS_DRAWN_THIS_TURN.getValue())
                                                        .setValue(4)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.MAXRESOURCES.getValue())
                                                        .setValue(10)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.TIMEOUT.getValue())
                                                        .setValue(75)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.CARDTYPE.getValue())
                                                        .setValue(2)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.NUM_TURNS_LEFT.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.STARTHANDSIZE.getValue())
                                                        .setValue(4)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.MAXHANDSIZE.getValue())
                                                        .setValue(10)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.PLAYER_ID.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.TEAM_ID.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.ZONE.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.PLAYSTATE.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.HERO_ENTITY.getValue())
                                                        .setValue(64)
                                                )
                                        )
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(34)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(34)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(35)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(35)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(36)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(36)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(37)
                                .setName("EX1_593")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(37)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE_POSITION.getValue())
                                        .setValue(3)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(3)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(321)
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARD_SET.getValue())
                                        .setValue(TagCardSet.CORE.ordinal())
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.BATTLECRY.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.HEALTH.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ATK.getValue())
                                        .setValue(4)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.COST.getValue())
                                        .setValue(4)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARDTYPE.getValue())
                                        .setValue(4)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.RARITY.getValue())
                                        .setValue(TagRarity.FREE.ordinal())
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.FACTION.getValue())
                                        .setValue(TagFaction.NEUTRAL.ordinal())
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(38)
                                .setName("EX1_383")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(38)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE_POSITION.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(TagZone.HAND.ordinal())
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(251)
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.DIVINE_SHIELD.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(321)
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARD_SET.getValue())
                                        .setValue(TagCardSet.EXPERT1.ordinal())
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.TAUNT.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENCHANTMENT_BIRTH_VISUAL.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENCHANTMENT_IDLE_VISUAL.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.HEALTH.getValue())
                                        .setValue(16)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ATK.getValue())
                                        .setValue(3)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ELITE.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.COST.getValue())
                                        .setValue(3)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CLASS.getValue())
                                        .setValue(TagClass.PALADIN.ordinal())
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARDTYPE.getValue())
                                        .setValue(4)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.RARITY.getValue())
                                        .setValue(TagRarity.LEGENDARY.ordinal())
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.DEATHRATTLE.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.FACTION.getValue())
                                        .setValue(TagFaction.NEUTRAL.ordinal())
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(39)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(39)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(40)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(40)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(41)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(41)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(42)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(42)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(43)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(43)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(44)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(44)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(45)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(45)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(46)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(46)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(47)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(47)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(48)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(48)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(49)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(49)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(50)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(50)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(51)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(51)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(52)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(52)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(53)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(53)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(54)
                                .setName("LOEA16_9")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(54)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE_POSITION.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(3)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.COST.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENCHANTMENT_BIRTH_VISUAL.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENCHANTMENT_IDLE_VISUAL.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARDTYPE.getValue())
                                        .setValue(5)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARD_SET.getValue())
                                        .setValue(TagCardSet.LOE.ordinal())
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(55)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(55)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(56)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(56)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(57)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(57)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(58)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(58)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(59)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(59)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(60)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(60)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(61)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(61)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(62)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(62)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(63)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(63)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(4)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(4)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(5)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(5)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(6)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(6)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(7)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(7)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(8)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(8)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(9)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(9)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(10)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(10)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(11)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(11)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE_POSITION.getValue())
                                        .setValue(4)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(3)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(12)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(12)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(13)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(13)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(14)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(14)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(15)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(15)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(16)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(16)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(17)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(17)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE_POSITION.getValue())
                                        .setValue(3)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(3)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(18)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(18)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(19)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(19)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(20)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(20)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(21)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(21)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE_POSITION.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(3)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(22)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(22)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(23)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(23)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(24)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(24)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(25)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(25)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(26)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(26)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE_POSITION.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(3)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(27)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(27)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(28)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(28)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(29)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(29)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(30)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(30)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(31)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(31)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(32)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(32)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(33)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(33)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(66)
                                .setName("LOEA04_01")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(66)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARD_SET.getValue())
                                        .setValue(TagCardSet.LOE.ordinal())
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.SHOWN_HERO_POWER.getValue())
                                        .setValue(16231)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENCHANTMENT_BIRTH_VISUAL.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENCHANTMENT_IDLE_VISUAL.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.HEALTH.getValue())
                                        .setValue(30)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARDTYPE.getValue())
                                        .setValue(3)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(67)
                                .setName("CS1h_001")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CREATOR.getValue())
                                        .setValue(66)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(67)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(251)
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARD_SET.getValue())
                                        .setValue(TagCardSet.CORE.ordinal())
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.COST.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CLASS.getValue())
                                        .setValue(TagClass.PRIEST.ordinal())
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARDTYPE.getValue())
                                        .setValue(10)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.RARITY.getValue())
                                        .setValue(TagRarity.FREE.ordinal())
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.FACTION.getValue())
                                        .setValue(TagFaction.NEUTRAL.ordinal())
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(64)
                                .setName("TB_SPT_Boss")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(64)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ATK.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.HEALTH.getValue())
                                        .setValue(30)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARDTYPE.getValue())
                                        .setValue(3)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARD_SET.getValue())
                                        .setValue(TagCardSet.TB.ordinal())
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.SHOWN_HERO_POWER.getValue())
                                        .setValue(39537)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(65)
                                .setName("CS1h_001")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CREATOR.getValue())
                                        .setValue(64)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(65)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(251)
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARD_SET.getValue())
                                        .setValue(TagCardSet.CORE.ordinal())
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.COST.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CLASS.getValue())
                                        .setValue(TagClass.PRIEST.ordinal())
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARDTYPE.getValue())
                                        .setValue(10)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.RARITY.getValue())
                                        .setValue(TagRarity.FREE.ordinal())
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.FACTION.getValue())
                                        .setValue(TagFaction.NEUTRAL.ordinal())
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(68)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(68)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE_POSITION.getValue())
                                        .setValue(5)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(3)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(10)
                                .setValue(85)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.CARDTYPE.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.TURN.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.STATE.getValue())
                                .setValue(2)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.ZONE.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.NEXT_STEP.getValue())
                                .setValue(4)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.ENTITY_ID.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.STEP.getValue())
                                .setValue(4)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.HERO_ENTITY.getValue())
                                .setValue(64)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.PLAYSTATE.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.ZONE.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.TEAM_ID.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.PLAYER_ID.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.MAXHANDSIZE.getValue())
                                .setValue(10)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.STARTHANDSIZE.getValue())
                                .setValue(4)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.NUM_TURNS_LEFT.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.CARDTYPE.getValue())
                                .setValue(2)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.TIMEOUT.getValue())
                                .setValue(75)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.MAXRESOURCES.getValue())
                                .setValue(10)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.NUM_CARDS_DRAWN_THIS_TURN.getValue())
                                .setValue(4)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.ENTITY_ID.getValue())
                                .setValue(2)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.CONTROLLER.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.MULLIGAN_STATE.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.FIRST_PLAYER.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.HERO_ENTITY.getValue())
                                .setValue(66)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.PLAYSTATE.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.CURRENT_PLAYER.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.TEAM_ID.getValue())
                                .setValue(2)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.PLAYER_ID.getValue())
                                .setValue(2)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.MAXHANDSIZE.getValue())
                                .setValue(10)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.STARTHANDSIZE.getValue())
                                .setValue(4)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.NUM_TURNS_LEFT.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.CARDTYPE.getValue())
                                .setValue(2)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.ZONE.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.TIMEOUT.getValue())
                                .setValue(75)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.MAXRESOURCES.getValue())
                                .setValue(10)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.NUM_CARDS_DRAWN_THIS_TURN.getValue())
                                .setValue(3)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.ENTITY_ID.getValue())
                                .setValue(3)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.CONTROLLER.getValue())
                                .setValue(2)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder()
                                .setType(TRIGGER)
                                .setIndex(-1)
                                .setSource(1)
                                .setTarget(0)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.MULLIGAN_STATE.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.MULLIGAN_STATE.getValue())
                                .setValue(2)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder()
                                .setType(TRIGGER)
                                .setIndex(6)
                                .setSource(3)
                                .setTarget(0)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.MULLIGAN_STATE.getValue())
                                .setValue(3)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerEnd(PegasusGame.PowerHistoryEnd.newBuilder()
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder()
                                .setType(TRIGGER)
                                .setIndex(7)
                                .setSource(3)
                                .setTarget(0)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.MULLIGAN_STATE.getValue())
                                .setValue(4)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerEnd(PegasusGame.PowerHistoryEnd.newBuilder()
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.MULLIGAN_STATE.getValue())
                                .setValue(2)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder()
                                .setType(TRIGGER)
                                .setIndex(6)
                                .setSource(2)
                                .setTarget(0)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.MULLIGAN_STATE.getValue())
                                .setValue(3)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerEnd(PegasusGame.PowerHistoryEnd.newBuilder()
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder()
                                .setType(TRIGGER)
                                .setIndex(7)
                                .setSource(2)
                                .setTarget(0)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.MULLIGAN_STATE.getValue())
                                .setValue(4)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.NEXT_STEP.getValue())
                                .setValue(6)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerEnd(PegasusGame.PowerHistoryEnd.newBuilder()
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.STEP.getValue())
                                .setValue(6)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder()
                                .setType(TRIGGER)
                                .setIndex(1)
                                .setSource(3)
                                .setTarget(0)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.RESOURCES.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.NUM_CARDS_DRAWN_THIS_TURN.getValue())
                                .setValue(0)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.NEXT_STEP.getValue())
                                .setValue(17)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerEnd(PegasusGame.PowerHistoryEnd.newBuilder()
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.STEP.getValue())
                                .setValue(17)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder()
                                .setType(TRIGGER)
                                .setIndex(8)
                                .setSource(3)
                                .setTarget(0)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.NEXT_STEP.getValue())
                                .setValue(9)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerEnd(PegasusGame.PowerHistoryEnd.newBuilder()
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.STEP.getValue())
                                .setValue(9)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder()
                                .setType(TRIGGER)
                                .setIndex(0)
                                .setSource(3)
                                .setTarget(0)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setShowEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(60)
                                .setName("GVG_010")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(321)
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARD_SET.getValue())
                                        .setValue(13)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENCHANTMENT_BIRTH_VISUAL.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENCHANTMENT_IDLE_VISUAL.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.COST.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CLASS.getValue())
                                        .setValue(6)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARDTYPE.getValue())
                                        .setValue(5)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.RARITY.getValue())
                                        .setValue(1)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(60)
                                .setTag(GameTag.ZONE.getValue())
                                .setValue(3)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(60)
                                .setTag(GameTag.ZONE_POSITION.getValue())
                                .setValue(4)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.NUM_CARDS_DRAWN_THIS_TURN.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.NEXT_STEP.getValue())
                                .setValue(10)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerEnd(PegasusGame.PowerHistoryEnd.newBuilder()
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.STEP.getValue())
                                .setValue(10)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder()
                                .setType(TRIGGER)
                                .setIndex(2)
                                .setSource(3)
                                .setTarget(0)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.NEXT_STEP.getValue())
                                .setValue(12)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerEnd(PegasusGame.PowerHistoryEnd.newBuilder()
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder()
                                .setType(PLAY)
                                .setIndex(0)
                                .setSource(38)
                                .setTarget(0)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(38)
                                .setTag(GameTag.EXHAUSTED.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(37)
                                .setTag(GameTag.ZONE_POSITION.getValue())
                                .setValue(2)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(54)
                                .setTag(GameTag.ZONE_POSITION.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(60)
                                .setTag(GameTag.ZONE_POSITION.getValue())
                                .setValue(3)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder()
                                .setType(POWER)
                                .setIndex(-1)
                                .setSource(0)
                                .setTarget(0)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerEnd(PegasusGame.PowerHistoryEnd.newBuilder()
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(69)
                                .setName("CS2_103e2")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(69)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENCHANTMENT_IDLE_VISUAL.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENCHANTMENT_BIRTH_VISUAL.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CLASS.getValue())
                                        .setValue(10)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARDTYPE.getValue())
                                        .setValue(6)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARD_SET.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(69)
                                .setTag(GameTag.ATTACHED.getValue())
                                .setValue(38)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(69)
                                .setTag(GameTag.ZONE_POSITION.getValue())
                                .setValue(0)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(69)
                                .setTag(GameTag.ZONE.getValue())
                                .setValue(6)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(38)
                                .setTag(GameTag.ZONE.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(38)
                                .setTag(GameTag.ZONE_POSITION.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(38)
                                .setTag(GameTag.EXHAUSTED.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerEnd(PegasusGame.PowerHistoryEnd.newBuilder()
                        )
                )
                .build();

        this.send(new PegasusPacket(19, 0, powerHistory.toByteArray()));
    }

    // TODO: abolish that thing
    private void sendThings() throws Exception {
        // GetGameState
        PegasusGame.PowerHistory powerHistory = PegasusGame.PowerHistory.newBuilder()
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setCreateGame(PegasusGame.PowerHistoryCreateGame.newBuilder()
                                .setGameEntity(PegasusGame.Entity.newBuilder()
                                        .setId(1)
                                        .addTags(PegasusGame.Tag.newBuilder()
                                                .setName(GameTag.ENTITY_ID.getValue())
                                                .setValue(1)
                                        )
                                        .addTags(PegasusGame.Tag.newBuilder()
                                                .setName(GameTag.NEXT_STEP.getValue())
                                                .setValue(4)
                                        )
                                        .addTags(PegasusGame.Tag.newBuilder()
                                                .setName(GameTag.ZONE.getValue())
                                                .setValue(1)
                                        )
                                        .addTags(PegasusGame.Tag.newBuilder()
                                                .setName(GameTag.STATE.getValue())
                                                .setValue(2)
                                        )
                                        .addTags(PegasusGame.Tag.newBuilder()
                                                .setName(GameTag.TURN.getValue())
                                                .setValue(1)
                                        )
                                        .addTags(PegasusGame.Tag.newBuilder()
                                                .setName(GameTag.CARDTYPE.getValue())
                                                .setValue(1)
                                        )
                                        .addTags(PegasusGame.Tag.newBuilder()
                                                .setName(10)
                                                .setValue(85)
                                        )
                                )
                                .addPlayers(PegasusGame.Player.newBuilder()
                                        .setId(2)
                                        .setGameAccountId(PegasusShared.BnetId.newBuilder()
                                                .setHi(144115198130930503L)
                                                .setLo(78330215)
                                        )
                                        .setCardBack(0)
                                        .setEntity(PegasusGame.Entity.newBuilder()
                                                .setId(3)
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.CONTROLLER.getValue())
                                                        .setValue(2)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.ENTITY_ID.getValue())
                                                        .setValue(3)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.NUM_CARDS_DRAWN_THIS_TURN.getValue())
                                                        .setValue(3)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.MAXRESOURCES.getValue())
                                                        .setValue(10)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.TIMEOUT.getValue())
                                                        .setValue(75)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.ZONE.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.CARDTYPE.getValue())
                                                        .setValue(2)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.NUM_TURNS_LEFT.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.STARTHANDSIZE.getValue())
                                                        .setValue(4)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.MAXHANDSIZE.getValue())
                                                        .setValue(10)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.PLAYER_ID.getValue())
                                                        .setValue(2)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.TEAM_ID.getValue())
                                                        .setValue(2)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.CURRENT_PLAYER.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.PLAYSTATE.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.HERO_ENTITY.getValue())
                                                        .setValue(66)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.FIRST_PLAYER.getValue())
                                                        .setValue(1)
                                                )
                                        )
                                )
                                .addPlayers(PegasusGame.Player.newBuilder()
                                        .setId(1)
                                        .setGameAccountId(PegasusShared.BnetId.newBuilder()
                                                .setHi(144115198130930503L)
                                                .setLo(77500085)
                                        )
                                        .setCardBack(0)
                                        .setEntity(PegasusGame.Entity.newBuilder()
                                                .setId(2)
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.CONTROLLER.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.ENTITY_ID.getValue())
                                                        .setValue(2)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.NUM_CARDS_DRAWN_THIS_TURN.getValue())
                                                        .setValue(4)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.MAXRESOURCES.getValue())
                                                        .setValue(10)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.TIMEOUT.getValue())
                                                        .setValue(75)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.CARDTYPE.getValue())
                                                        .setValue(2)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.NUM_TURNS_LEFT.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.STARTHANDSIZE.getValue())
                                                        .setValue(4)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.MAXHANDSIZE.getValue())
                                                        .setValue(10)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.PLAYER_ID.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.TEAM_ID.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.ZONE.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.PLAYSTATE.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.HERO_ENTITY.getValue())
                                                        .setValue(64)
                                                )
                                        )
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(34)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(34)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(35)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(35)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(36)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(36)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(37)
                                .setName("EX1_593")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(37)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE_POSITION.getValue())
                                        .setValue(3)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(3)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(321)
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARD_SET.getValue())
                                        .setValue(TagCardSet.CORE.ordinal())
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.BATTLECRY.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.HEALTH.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ATK.getValue())
                                        .setValue(4)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.COST.getValue())
                                        .setValue(4)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARDTYPE.getValue())
                                        .setValue(4)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.RARITY.getValue())
                                        .setValue(TagRarity.FREE.ordinal())
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.FACTION.getValue())
                                        .setValue(TagFaction.NEUTRAL.ordinal())
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(38)
                                .setName("EX1_383")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(38)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE_POSITION.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(TagZone.HAND.ordinal())
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(251)
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.DIVINE_SHIELD.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(321)
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARD_SET.getValue())
                                        .setValue(TagCardSet.EXPERT1.ordinal())
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.TAUNT.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENCHANTMENT_BIRTH_VISUAL.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENCHANTMENT_IDLE_VISUAL.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.HEALTH.getValue())
                                        .setValue(16)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ATK.getValue())
                                        .setValue(3)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ELITE.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.COST.getValue())
                                        .setValue(3)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CLASS.getValue())
                                        .setValue(TagClass.PALADIN.ordinal())
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARDTYPE.getValue())
                                        .setValue(4)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.RARITY.getValue())
                                        .setValue(TagRarity.LEGENDARY.ordinal())
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.DEATHRATTLE.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.FACTION.getValue())
                                        .setValue(TagFaction.NEUTRAL.ordinal())
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(39)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(39)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(40)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(40)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(41)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(41)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(42)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(42)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(43)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(43)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(44)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(44)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(45)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(45)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(46)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(46)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(47)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(47)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(48)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(48)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(49)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(49)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(50)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(50)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(51)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(51)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(52)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(52)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(53)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(53)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(54)
                                .setName("LOEA16_9")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(54)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE_POSITION.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(3)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.COST.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENCHANTMENT_BIRTH_VISUAL.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENCHANTMENT_IDLE_VISUAL.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARDTYPE.getValue())
                                        .setValue(5)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARD_SET.getValue())
                                        .setValue(TagCardSet.LOE.ordinal())
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(55)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(55)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(56)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(56)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(57)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(57)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(58)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(58)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(59)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(59)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(60)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(60)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(61)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(61)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(62)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(62)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(63)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(63)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(4)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(4)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(5)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(5)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(6)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(6)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(7)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(7)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(8)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(8)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(9)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(9)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(10)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(10)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(11)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(11)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE_POSITION.getValue())
                                        .setValue(4)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(3)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(12)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(12)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(13)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(13)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(14)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(14)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(15)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(15)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(16)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(16)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(17)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(17)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE_POSITION.getValue())
                                        .setValue(3)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(3)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(18)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(18)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(19)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(19)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(20)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(20)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(21)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(21)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE_POSITION.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(3)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(22)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(22)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(23)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(23)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(24)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(24)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(25)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(25)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(26)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(26)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE_POSITION.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(3)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(27)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(27)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(28)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(28)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(29)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(29)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(30)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(30)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(31)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(31)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(32)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(32)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(33)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(33)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(66)
                                .setName("LOEA04_01")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(66)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARD_SET.getValue())
                                        .setValue(TagCardSet.LOE.ordinal())
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.SHOWN_HERO_POWER.getValue())
                                        .setValue(16231)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENCHANTMENT_BIRTH_VISUAL.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENCHANTMENT_IDLE_VISUAL.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.HEALTH.getValue())
                                        .setValue(30)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARDTYPE.getValue())
                                        .setValue(3)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(67)
                                .setName("CS1h_001")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CREATOR.getValue())
                                        .setValue(66)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(67)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(251)
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARD_SET.getValue())
                                        .setValue(TagCardSet.CORE.ordinal())
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.COST.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CLASS.getValue())
                                        .setValue(TagClass.PRIEST.ordinal())
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARDTYPE.getValue())
                                        .setValue(10)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.RARITY.getValue())
                                        .setValue(TagRarity.FREE.ordinal())
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.FACTION.getValue())
                                        .setValue(TagFaction.NEUTRAL.ordinal())
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(64)
                                .setName("TB_SPT_Boss")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(64)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ATK.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.HEALTH.getValue())
                                        .setValue(30)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARDTYPE.getValue())
                                        .setValue(3)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARD_SET.getValue())
                                        .setValue(TagCardSet.TB.ordinal())
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.SHOWN_HERO_POWER.getValue())
                                        .setValue(39537)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(65)
                                .setName("CS1h_001")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CREATOR.getValue())
                                        .setValue(64)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(65)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(251)
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARD_SET.getValue())
                                        .setValue(TagCardSet.CORE.ordinal())
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.COST.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CLASS.getValue())
                                        .setValue(TagClass.PRIEST.ordinal())
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARDTYPE.getValue())
                                        .setValue(10)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.RARITY.getValue())
                                        .setValue(TagRarity.FREE.ordinal())
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.FACTION.getValue())
                                        .setValue(TagFaction.NEUTRAL.ordinal())
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(68)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(68)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE_POSITION.getValue())
                                        .setValue(5)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(3)
                                )
                        )
                ).build();
       // log.info("Packet: {}", powerHistory);
        this.send(new PegasusPacket(19, 0, powerHistory.toByteArray()));

      /*  PegasusGame.GetGameState state = PegasusGame.GetGameState.parseFrom((byte[]) packet.getBody());
        log.info("GetGameState: {}", state);*/

        powerHistory = PegasusGame.PowerHistory.newBuilder()
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(10)
                                .setValue(85)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.CARDTYPE.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.TURN.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.STATE.getValue())
                                .setValue(2)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.ZONE.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.NEXT_STEP.getValue())
                                .setValue(4)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.ENTITY_ID.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.STEP.getValue())
                                .setValue(4)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.HERO_ENTITY.getValue())
                                .setValue(64)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.PLAYSTATE.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.ZONE.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.TEAM_ID.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.PLAYER_ID.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.MAXHANDSIZE.getValue())
                                .setValue(10)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.STARTHANDSIZE.getValue())
                                .setValue(4)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.NUM_TURNS_LEFT.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.CARDTYPE.getValue())
                                .setValue(2)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.TIMEOUT.getValue())
                                .setValue(75)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.MAXRESOURCES.getValue())
                                .setValue(10)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.NUM_CARDS_DRAWN_THIS_TURN.getValue())
                                .setValue(4)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.ENTITY_ID.getValue())
                                .setValue(2)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.CONTROLLER.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.MULLIGAN_STATE.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.FIRST_PLAYER.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.HERO_ENTITY.getValue())
                                .setValue(66)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.PLAYSTATE.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.CURRENT_PLAYER.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.TEAM_ID.getValue())
                                .setValue(2)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.PLAYER_ID.getValue())
                                .setValue(2)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.MAXHANDSIZE.getValue())
                                .setValue(10)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.STARTHANDSIZE.getValue())
                                .setValue(4)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.NUM_TURNS_LEFT.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.CARDTYPE.getValue())
                                .setValue(2)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.ZONE.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.TIMEOUT.getValue())
                                .setValue(75)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.MAXRESOURCES.getValue())
                                .setValue(10)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.NUM_CARDS_DRAWN_THIS_TURN.getValue())
                                .setValue(3)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.ENTITY_ID.getValue())
                                .setValue(3)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.CONTROLLER.getValue())
                                .setValue(2)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder()
                                .setType(TRIGGER)
                                .setIndex(-1)
                                .setSource(1)
                                .setTarget(0)
                        )
                )
                .build();
        // TODO: COPY
        this.send(new PegasusPacket(19, 0, powerHistory.toByteArray()));

        PegasusGame.EntityChoices entityChoices = PegasusGame.EntityChoices.newBuilder()
                .setId(1)
                .setChoiceType(1)
                .setCountMin(0)
                .setCountMax(3)
                .addEntities(54)
                .addEntities(38)
                .addEntities(37)
                .setSource(1)
                .setPlayerId(2)
                .build();

       // this.send(new PegasusPacket( 17, 0, entityChoices.toByteArray()));

        entityChoices = PegasusGame.EntityChoices.newBuilder()
                .setId(1)
                .setChoiceType(1)
                .setCountMin(0)
                .setCountMax(5)
                .addEntities(68)
                .addEntities(26)
                .addEntities(21)
                .addEntities(17)
                .addEntities(11)
                .setSource(1)
                .setPlayerId(1)
                .build();

        //this.send(new PegasusPacket( 17, 0, entityChoices.toByteArray()));

        powerHistory = PegasusGame.PowerHistory.newBuilder()
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.MULLIGAN_STATE.getValue())
                                .setValue(1)
                        )
                ).build();
        // TODO: COPY
        this.send(new PegasusPacket( 19, 0, powerHistory.toByteArray()));

        PegasusGame.UserUI userUI = PegasusGame.UserUI.newBuilder()
                .setMouseInfo(PegasusGame.MouseInfo.newBuilder()
                        .setArrowOrigin(0)
                        .setHeldCard(0)
                        .setOverCard(26)
                        .setX(0)
                        .setY(0)
                )
                .setEmote(0)
                .setPlayerId(1)
                .build();

       // this.send(new PegasusPacket( 15, 0, userUI.toByteArray()));

        userUI = PegasusGame.UserUI.newBuilder()
                .setMouseInfo(PegasusGame.MouseInfo.newBuilder()
                        .setArrowOrigin(0)
                        .setHeldCard(0)
                        .setOverCard(21)
                        .setX(0)
                        .setY(0)
                )
                .setEmote(0)
                .setPlayerId(1)
                .build();

        //this.send(new PegasusPacket( 15, 0, userUI.toByteArray()));

        userUI = PegasusGame.UserUI.newBuilder()
                .setMouseInfo(PegasusGame.MouseInfo.newBuilder()
                        .setArrowOrigin(0)
                        .setHeldCard(0)
                        .setOverCard(26)
                        .setX(0)
                        .setY(0)
                )
                .setEmote(0)
                .setPlayerId(1)
                .build();

        //this.send(new PegasusPacket( 15, 0, userUI.toByteArray()));

        userUI = PegasusGame.UserUI.newBuilder()
                .setMouseInfo(PegasusGame.MouseInfo.newBuilder()
                        .setArrowOrigin(0)
                        .setHeldCard(0)
                        .setOverCard(17)
                        .setX(0)
                        .setY(0)
                )
                .setEmote(0)
                .setPlayerId(1)
                .build();

        //this.send(new PegasusPacket( 15, 0, userUI.toByteArray()));

        userUI = PegasusGame.UserUI.newBuilder()
                .setMouseInfo(PegasusGame.MouseInfo.newBuilder()
                        .setArrowOrigin(0)
                        .setHeldCard(0)
                        .setOverCard(11)
                        .setX(0)
                        .setY(0)
                )
                .setEmote(0)
                .setPlayerId(1)
                .build();

        //this.send(new PegasusPacket( 15, 0, userUI.toByteArray()));

        userUI = PegasusGame.UserUI.newBuilder()
                .setMouseInfo(PegasusGame.MouseInfo.newBuilder()
                        .setArrowOrigin(0)
                        .setHeldCard(0)
                        .setOverCard(17)
                        .setX(0)
                        .setY(0)
                )
                .setEmote(0)
                .setPlayerId(1)
                .build();

        //this.send(new PegasusPacket( 15, 0, userUI.toByteArray()));

        userUI = PegasusGame.UserUI.newBuilder()
                .setMouseInfo(PegasusGame.MouseInfo.newBuilder()
                        .setArrowOrigin(0)
                        .setHeldCard(0)
                        .setOverCard(0)
                        .setX(0)
                        .setY(0)
                )
                .setEmote(0)
                .setPlayerId(1)
                .build();

        //this.send(new PegasusPacket( 15, 0, userUI.toByteArray()));



        powerHistory = PegasusGame.PowerHistory.newBuilder()
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.MULLIGAN_STATE.getValue())
                                .setValue(2)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder()
                                .setType(TRIGGER)
                                .setIndex(6)
                                .setSource(3)
                                .setTarget(0)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.MULLIGAN_STATE.getValue())
                                .setValue(3)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerEnd(PegasusGame.PowerHistoryEnd.newBuilder()
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder()
                                .setType(TRIGGER)
                                .setIndex(7)
                                .setSource(3)
                                .setTarget(0)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.MULLIGAN_STATE.getValue())
                                .setValue(4)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerEnd(PegasusGame.PowerHistoryEnd.newBuilder()
                        )
                )
                .build();
        // TODO: COPY
        this.send(new PegasusPacket( 19, 0, powerHistory.toByteArray()));


        powerHistory = PegasusGame.PowerHistory.newBuilder()
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.MULLIGAN_STATE.getValue())
                                .setValue(2)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder()
                                .setType(TRIGGER)
                                .setIndex(6)
                                .setSource(2)
                                .setTarget(0)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.MULLIGAN_STATE.getValue())
                                .setValue(3)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerEnd(PegasusGame.PowerHistoryEnd.newBuilder()
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder()
                                .setType(TRIGGER)
                                .setIndex(7)
                                .setSource(2)
                                .setTarget(0)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(2)
                                .setTag(GameTag.MULLIGAN_STATE.getValue())
                                .setValue(4)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.NEXT_STEP.getValue())
                                .setValue(6)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerEnd(PegasusGame.PowerHistoryEnd.newBuilder()
                        )
                )
                .build();

        // TODO: COPY
        this.send(new PegasusPacket( 19, 0, powerHistory.toByteArray()));

        powerHistory = PegasusGame.PowerHistory.newBuilder()
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.STEP.getValue())
                                .setValue(6)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder()
                                .setType(TRIGGER)
                                .setIndex(1)
                                .setSource(3)
                                .setTarget(0)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.RESOURCES.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.NUM_CARDS_DRAWN_THIS_TURN.getValue())
                                .setValue(0)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.NEXT_STEP.getValue())
                                .setValue(17)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerEnd(PegasusGame.PowerHistoryEnd.newBuilder()
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.STEP.getValue())
                                .setValue(17)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder()
                                .setType(TRIGGER)
                                .setIndex(8)
                                .setSource(3)
                                .setTarget(0)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.NEXT_STEP.getValue())
                                .setValue(9)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerEnd(PegasusGame.PowerHistoryEnd.newBuilder()
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.STEP.getValue())
                                .setValue(9)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder()
                                .setType(TRIGGER)
                                .setIndex(0)
                                .setSource(3)
                                .setTarget(0)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setShowEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(60)
                                .setName("GVG_010")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(321)
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARD_SET.getValue())
                                        .setValue(13)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENCHANTMENT_BIRTH_VISUAL.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENCHANTMENT_IDLE_VISUAL.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.COST.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CLASS.getValue())
                                        .setValue(6)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARDTYPE.getValue())
                                        .setValue(5)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.RARITY.getValue())
                                        .setValue(1)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(60)
                                .setTag(GameTag.ZONE.getValue())
                                .setValue(3)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(60)
                                .setTag(GameTag.ZONE_POSITION.getValue())
                                .setValue(4)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(3)
                                .setTag(GameTag.NUM_CARDS_DRAWN_THIS_TURN.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.NEXT_STEP.getValue())
                                .setValue(10)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerEnd(PegasusGame.PowerHistoryEnd.newBuilder()
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.STEP.getValue())
                                .setValue(10)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder()
                                .setType(TRIGGER)
                                .setIndex(2)
                                .setSource(3)
                                .setTarget(0)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(1)
                                .setTag(GameTag.NEXT_STEP.getValue())
                                .setValue(12)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerEnd(PegasusGame.PowerHistoryEnd.newBuilder()
                        )
                )
                .build();
        // TODO: COPY PARTIAL
        this.send(new PegasusPacket(19, 0, powerHistory.toByteArray()));

        ///////////////



        ////////


        PegasusGame.AllOptions allOptions = PegasusGame.AllOptions.newBuilder()
                .setId(1)
                .addOptions(PegasusGame.Option.newBuilder()
                        .setType(END_TURN)
                )
                .addOptions(PegasusGame.Option.newBuilder()
                        .setType(PegasusGame.Option.Type.POWER)
                        .setMainOption(PegasusGame.SubOption.newBuilder()
                                .setId(67)
                                .addTargets(64)
                                .addTargets(66)
                        )
                )
                .addOptions(PegasusGame.Option.newBuilder()
                        .setType(PegasusGame.Option.Type.POWER)
                        .setMainOption(PegasusGame.SubOption.newBuilder()
                                .setId(60)
                        )
                )
                .addOptions(PegasusGame.Option.newBuilder()
                        .setType(PegasusGame.Option.Type.POWER)
                        .setMainOption(PegasusGame.SubOption.newBuilder()
                                .setId(54)
                        )
                )
                .addOptions(PegasusGame.Option.newBuilder()
                        .setType(PegasusGame.Option.Type.POWER)
                        .setMainOption(PegasusGame.SubOption.newBuilder()
                                .setId(38)
                        )
                )
                .build();

        //this.send(new PegasusPacket( 14, 0, allOptions.toByteArray()));

        userUI = PegasusGame.UserUI.newBuilder()
                .setMouseInfo(PegasusGame.MouseInfo.newBuilder()
                        .setArrowOrigin(0)
                        .setHeldCard(0)
                        .setOverCard(64)
                        .setX(0)
                        .setY(0)
                )
                .setEmote(0)
                .setPlayerId(1)
                .build();


        //this.send(new PegasusPacket( 15, 0, userUI.toByteArray()));

        userUI = PegasusGame.UserUI.newBuilder()
                .setMouseInfo(PegasusGame.MouseInfo.newBuilder()
                        .setArrowOrigin(0)
                        .setHeldCard(0)
                        .setOverCard(0)
                        .setX(0)
                        .setY(0)
                )
                .setEmote(0)
                .setPlayerId(1)
                .build();

        //this.send(new PegasusPacket( 15, 0, userUI.toByteArray()));


        powerHistory = PegasusGame.PowerHistory.newBuilder()
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder()
                                .setType(PLAY)
                                .setIndex(0)
                                .setSource(38)
                                .setTarget(0)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(38)
                                .setTag(GameTag.EXHAUSTED.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(37)
                                .setTag(GameTag.ZONE_POSITION.getValue())
                                .setValue(2)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(54)
                                .setTag(GameTag.ZONE_POSITION.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(60)
                                .setTag(GameTag.ZONE_POSITION.getValue())
                                .setValue(3)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerStart(PegasusGame.PowerHistoryStart.newBuilder()
                                .setType(POWER)
                                .setIndex(-1)
                                .setSource(0)
                                .setTarget(0)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerEnd(PegasusGame.PowerHistoryEnd.newBuilder()
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(69)
                                .setName("CS2_103e2")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(69)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENCHANTMENT_IDLE_VISUAL.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENCHANTMENT_BIRTH_VISUAL.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CLASS.getValue())
                                        .setValue(10)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARDTYPE.getValue())
                                        .setValue(6)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARD_SET.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(69)
                                .setTag(GameTag.ATTACHED.getValue())
                                .setValue(38)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(69)
                                .setTag(GameTag.ZONE_POSITION.getValue())
                                .setValue(0)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(69)
                                .setTag(GameTag.ZONE.getValue())
                                .setValue(6)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(38)
                                .setTag(GameTag.ZONE.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(38)
                                .setTag(GameTag.ZONE_POSITION.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setTagChange(PegasusGame.PowerHistoryTagChange.newBuilder()
                                .setEntity(38)
                                .setTag(GameTag.EXHAUSTED.getValue())
                                .setValue(1)
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setPowerEnd(PegasusGame.PowerHistoryEnd.newBuilder()
                        )
                )
                .build();
        // TODO: COPY PARTIAL
        this.send(new PegasusPacket(19, 0, powerHistory.toByteArray()));

        allOptions = PegasusGame.AllOptions.newBuilder()
                .setId(1)
                .addOptions(PegasusGame.Option.newBuilder()
                        .setType(END_TURN)
                )
                .addOptions(PegasusGame.Option.newBuilder()
                        .setType(PegasusGame.Option.Type.POWER)
                        .setMainOption(PegasusGame.SubOption.newBuilder()
                                .setId(67)
                                .addTargets(64)
                                .addTargets(66)
                                .addTargets(38)
                        )
                )
                .addOptions(PegasusGame.Option.newBuilder()
                        .setType(PegasusGame.Option.Type.POWER)
                        .setMainOption(PegasusGame.SubOption.newBuilder()
                                .setId(60)
                        )
                )
                .addOptions(PegasusGame.Option.newBuilder()
                        .setType(PegasusGame.Option.Type.POWER)
                        .setMainOption(PegasusGame.SubOption.newBuilder()
                                .setId(54)
                        )
                )
                .build();

        //this.send(new PegasusPacket( 14, 0, allOptions.toByteArray()));
    }

    private void sendThingsThird() throws Exception {
        PegasusGame.PowerHistory powerHistory = PegasusGame.PowerHistory.newBuilder()
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setCreateGame(PegasusGame.PowerHistoryCreateGame.newBuilder()
                                .setGameEntity(PegasusGame.Entity.newBuilder()
                                        .setId(1)
                                        .addTags(PegasusGame.Tag.newBuilder()
                                                .setName(10)
                                                .setValue(85)
                                        )
                                        .addTags(PegasusGame.Tag.newBuilder()
                                                .setName(GameTag.CARDTYPE.getValue())
                                                .setValue(1)
                                        )
                                        .addTags(PegasusGame.Tag.newBuilder()
                                                .setName(GameTag.TURN.getValue())
                                                .setValue(1)
                                        )
                                        .addTags(PegasusGame.Tag.newBuilder()
                                                .setName(GameTag.STATE.getValue())
                                                .setValue(2)
                                        )
                                        .addTags(PegasusGame.Tag.newBuilder()
                                                .setName(GameTag.ZONE.getValue())
                                                .setValue(1)
                                        )
                                        .addTags(PegasusGame.Tag.newBuilder()
                                                .setName(GameTag.ENTITY_ID.getValue())
                                                .setValue(1)
                                        )
                                        .addTags(PegasusGame.Tag.newBuilder()
                                                .setName(GameTag.STEP.getValue())
                                                .setValue(4) // 10
                                        )
                                        .addTags(PegasusGame.Tag.newBuilder()
                                                .setName(GameTag.NEXT_STEP.getValue())
                                                .setValue(4) // 12
                                        )
                                )
                                .addPlayers(PegasusGame.Player.newBuilder()
                                        .setId(2)
                                        .setGameAccountId(PegasusShared.BnetId.newBuilder()
                                                .setHi(144115198130930503L)
                                                .setLo(78330215)
                                        )
                                        .setCardBack(0)
                                        .setEntity(PegasusGame.Entity.newBuilder()
                                                .setId(3)
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.FIRST_PLAYER.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.HERO_ENTITY.getValue())
                                                        .setValue(66)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.PLAYSTATE.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.CURRENT_PLAYER.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.TEAM_ID.getValue())
                                                        .setValue(2)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.PLAYER_ID.getValue())
                                                        .setValue(2)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.MAXHANDSIZE.getValue())
                                                        .setValue(10)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.STARTHANDSIZE.getValue())
                                                        .setValue(4)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.NUM_TURNS_LEFT.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.CARDTYPE.getValue())
                                                        .setValue(2)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.ZONE.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.TIMEOUT.getValue())
                                                        .setValue(75)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.MAXRESOURCES.getValue())
                                                        .setValue(10)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.ENTITY_ID.getValue())
                                                        .setValue(3)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.CONTROLLER.getValue())
                                                        .setValue(2)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.MULLIGAN_STATE.getValue())
                                                        .setValue(4)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.RESOURCES.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.NUM_CARDS_DRAWN_THIS_TURN.getValue())
                                                        .setValue(1)
                                                )
                                        )
                                )
                                .addPlayers(PegasusGame.Player.newBuilder()
                                        .setId(1)
                                        .setGameAccountId(PegasusShared.BnetId.newBuilder()
                                                .setHi(144115198130930503L)
                                                .setLo(77500085)
                                        )
                                        .setCardBack(0)
                                        .setEntity(PegasusGame.Entity.newBuilder()
                                                .setId(2)
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.HERO_ENTITY.getValue())
                                                        .setValue(64)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.PLAYSTATE.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.ZONE.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.TEAM_ID.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.PLAYER_ID.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.MAXHANDSIZE.getValue())
                                                        .setValue(10)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.STARTHANDSIZE.getValue())
                                                        .setValue(4)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.NUM_TURNS_LEFT.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.CARDTYPE.getValue())
                                                        .setValue(2)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.TIMEOUT.getValue())
                                                        .setValue(75)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.MAXRESOURCES.getValue())
                                                        .setValue(10)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.NUM_CARDS_DRAWN_THIS_TURN.getValue())
                                                        .setValue(4)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.ENTITY_ID.getValue())
                                                        .setValue(2)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.CONTROLLER.getValue())
                                                        .setValue(1)
                                                )
                                                .addTags(PegasusGame.Tag.newBuilder()
                                                        .setName(GameTag.MULLIGAN_STATE.getValue())
                                                        .setValue(4)
                                                )
                                        )
                                )
                        ))
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(4)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(4)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(5)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(5)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(6)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(6)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(7)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(7)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(8)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(8)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(9)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(9)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(10)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(10)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(11)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(11)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE_POSITION.getValue())
                                        .setValue(4)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(3)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(12)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(12)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(13)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(13)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(14)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(14)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(15)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(15)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(16)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(16)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(17)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(17)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE_POSITION.getValue())
                                        .setValue(3)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(3)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(18)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(18)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(19)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(19)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(20)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(20)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(21)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(21)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE_POSITION.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(3)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(22)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(22)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(23)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(23)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(24)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(24)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(25)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(25)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(26)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(26)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE_POSITION.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(3)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(27)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(27)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(28)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(28)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(29)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(29)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(30)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(30)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(31)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(31)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(32)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(32)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(33)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(33)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(34)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(34)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(35)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(35)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(36)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(36)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(37)
                                .setName("EX1_593")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(37)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(3)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(321)
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARD_SET.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.BATTLECRY.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.HEALTH.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ATK.getValue())
                                        .setValue(4)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.COST.getValue())
                                        .setValue(4)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARDTYPE.getValue())
                                        .setValue(4)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.RARITY.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.FACTION.getValue())
                                        .setValue(3)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE_POSITION.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(38)
                                .setName("EX1_383")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(38)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(251)
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.DIVINE_SHIELD.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(321)
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARD_SET.getValue())
                                        .setValue(3)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.TAUNT.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENCHANTMENT_BIRTH_VISUAL.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENCHANTMENT_IDLE_VISUAL.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.HEALTH.getValue())
                                        .setValue(16)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ATK.getValue())
                                        .setValue(3)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ELITE.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.COST.getValue())
                                        .setValue(3)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CLASS.getValue())
                                        .setValue(5)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARDTYPE.getValue())
                                        .setValue(4)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.RARITY.getValue())
                                        .setValue(5)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.DEATHRATTLE.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.FACTION.getValue())
                                        .setValue(3)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE_POSITION.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.EXHAUSTED.getValue())
                                        .setValue(1)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(39)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(39)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(40)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(40)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(41)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(41)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(42)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(42)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(43)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(43)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(44)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(44)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(45)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(45)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(46)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(46)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(47)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(47)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(48)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(48)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(49)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(49)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(50)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(50)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(51)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(51)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(52)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(52)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(53)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(53)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(54)
                                .setName("LOEA16_9")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(54)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(3)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.COST.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENCHANTMENT_BIRTH_VISUAL.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENCHANTMENT_IDLE_VISUAL.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARDTYPE.getValue())
                                        .setValue(5)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARD_SET.getValue())
                                        .setValue(20)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE_POSITION.getValue())
                                        .setValue(1)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(55)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(55)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(56)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(56)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(57)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(57)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(58)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(58)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(59)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(59)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(60)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(60)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(3)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE_POSITION.getValue())
                                        .setValue(3)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(61)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(61)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(62)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(62)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(63)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(63)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(2)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(64)
                                .setName("TB_SPT_Boss")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(64)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ATK.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.HEALTH.getValue())
                                        .setValue(30)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARDTYPE.getValue())
                                        .setValue(3)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARD_SET.getValue())
                                        .setValue(18)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.SHOWN_HERO_POWER.getValue())
                                        .setValue(39537)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(65)
                                .setName("CS1h_001")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CREATOR.getValue())
                                        .setValue(64)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(65)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(251)
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARD_SET.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.COST.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CLASS.getValue())
                                        .setValue(6)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARDTYPE.getValue())
                                        .setValue(10)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.RARITY.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.FACTION.getValue())
                                        .setValue(3)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(66)
                                .setName("LOEA04_01")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(66)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARD_SET.getValue())
                                        .setValue(20)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.SHOWN_HERO_POWER.getValue())
                                        .setValue(16231)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENCHANTMENT_BIRTH_VISUAL.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENCHANTMENT_IDLE_VISUAL.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.HEALTH.getValue())
                                        .setValue(30)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARDTYPE.getValue())
                                        .setValue(3)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(67)
                                .setName("CS1h_001")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CREATOR.getValue())
                                        .setValue(66)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(67)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(251)
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARD_SET.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.COST.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CLASS.getValue())
                                        .setValue(6)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARDTYPE.getValue())
                                        .setValue(10)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.RARITY.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.FACTION.getValue())
                                        .setValue(3)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(68)
                                .setName("")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(68)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(1)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE_POSITION.getValue())
                                        .setValue(5)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(3)
                                )
                        )
                )
                .addList(PegasusGame.PowerHistoryData.newBuilder()
                        .setFullEntity(PegasusGame.PowerHistoryEntity.newBuilder()
                                .setEntity(69)
                                .setName("CS2_103e2")
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENTITY_ID.getValue())
                                        .setValue(69)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CONTROLLER.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENCHANTMENT_IDLE_VISUAL.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ENCHANTMENT_BIRTH_VISUAL.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CLASS.getValue())
                                        .setValue(10)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARDTYPE.getValue())
                                        .setValue(6)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.CARD_SET.getValue())
                                        .setValue(2)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ATTACHED.getValue())
                                        .setValue(38)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE_POSITION.getValue())
                                        .setValue(0)
                                )
                                .addTags(PegasusGame.Tag.newBuilder()
                                        .setName(GameTag.ZONE.getValue())
                                        .setValue(6)
                                )
                        )
                )

                .build();

        this.send(new PegasusPacket(19, 0, powerHistory.toByteArray()));
    }

    private void pong() throws Exception {
        this.send(new PegasusPacket(116, 0, PegasusGame.Pong.newBuilder().build()));
    }

    @Override
    public void run() {
        try {
            InputStream is = client.getInputStream();
            outToClient = client.getOutputStream();
            while (true) {
                try {
                    int count;
                    byte[] buffer = new byte[4096]; // or 4096, or more
                    ByteArrayOutputStream baos = new ByteArrayOutputStream();
                    while ((count = is.read(buffer)) > 0) {
                        baos.write(buffer, 0, count);
                        byte[] r = baos.toByteArray();
                        PegasusPacket pp = new PegasusPacket();
                        int offset = 0;
                        while( offset < r.length ) {
                            offset += pp.Decode(r, offset, r.length);
                            this.processPacket(pp);
                        }
                        baos.reset();
                    }
                    baos.close();
                } catch (Exception e) {
                    log.error(e.getMessage());
                    break;
                }
            }
        } catch (Exception e) {
            log.error(e.getMessage());
        }
    }

    public void stopListeningAndDisconnect() {
        try {
            this.client.close();
            this.interrupt();
        } catch (IOException e) {
            log.error(e.getMessage());
        }
    }

    public void send(PegasusPacket pp) throws Exception {
        this.outToClient.write(pp.Encode());
        this.outToClient.flush();
    }
}
